diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 86a1fa9bbdbad..92057006c9309 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -322,7 +322,7 @@ task: build EOF - build_script: su postgres -c 'ninja -C build -j${BUILD_JOBS}' + build_script: su postgres -c 'ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}' upload_caches: ccache test_world_script: | @@ -471,6 +471,7 @@ task: --enable-cassert --enable-injection-points --enable-debug \ --enable-tap-tests --enable-nls \ --with-segsize-blocks=6 \ + --with-libnuma \ --with-liburing \ \ ${LINUX_CONFIGURE_FEATURES} \ @@ -523,11 +524,21 @@ task: -Dllvm=disabled \ --pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \ -DPERL=perl5.36-i386-linux-gnu \ + -Dlibnuma=disabled \ build-32 EOF - build_script: su postgres -c 'ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}' - build_32_script: su postgres -c 'ninja -C build-32 -j${BUILD_JOBS} ${MBUILD_TARGET}' + build_script: | + su postgres <<-EOF + ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET} + ninja -C build -t missingdeps + EOF + + build_32_script: | + su postgres <<-EOF + ninja -C build-32 -j${BUILD_JOBS} ${MBUILD_TARGET} + ninja -C build -t missingdeps + EOF upload_caches: ccache @@ -727,6 +738,7 @@ task: build_script: | vcvarsall x64 ninja -C build %MBUILD_TARGET% + ninja -C build -t missingdeps check_world_script: | vcvarsall x64 diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index e2190a562840e..d132a32b975ed 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -14,6 +14,12 @@ # # $ git log --pretty=format:"%H # %cd%n# %s" $PGINDENTGITHASH -1 --date=iso +918e7287ed20eb1fe280ab6c4056ccf94dcd53a8 # 2025-04-30 19:18:30 +1200 +# Fix broken indentation + +e1a8b1ad587112e67fdc5aa7b388631dde4dbdda # 2025-04-04 09:38:22 -0500 +# Re-pgindent pg_largeobject.c after commit 0d6c477664. + 796bdda484c838313959f65e2b700f14ac7c0e66 # 2025-03-18 09:02:36 -0400 # Fix indentation again. diff --git a/COPYRIGHT b/COPYRIGHT index be2d694b03854..3b79b1b4ca0db 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,5 +1,5 @@ PostgreSQL Database Management System -(formerly known as Postgres, then as Postgres95) +(also known as Postgres, formerly known as Postgres95) Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group diff --git a/config/c-compiler.m4 b/config/c-compiler.m4 index e9e54470e667b..5f3e1d1faf930 100644 --- a/config/c-compiler.m4 +++ b/config/c-compiler.m4 @@ -581,6 +581,43 @@ fi undefine([Ac_cachevar])dnl ])# PGAC_SSE42_CRC32_INTRINSICS +# PGAC_AVX512_PCLMUL_INTRINSICS +# --------------------------- +# Check if the compiler supports AVX-512 carryless multiplication +# and three-way exclusive-or instructions used for computing CRC. +# AVX-512F is assumed to be supported if the above are. +# +# If the intrinsics are supported, sets pgac_avx512_pclmul_intrinsics. +AC_DEFUN([PGAC_AVX512_PCLMUL_INTRINSICS], +[define([Ac_cachevar], [AS_TR_SH([pgac_cv_avx512_pclmul_intrinsics])])dnl +AC_CACHE_CHECK([for _mm512_clmulepi64_epi128], [Ac_cachevar], +[AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + __m512i x; + __m512i y; + + #if defined(__has_attribute) && __has_attribute (target) + __attribute__((target("vpclmulqdq,avx512vl"))) + #endif + static int avx512_pclmul_test(void) + { + __m128i z; + + y = _mm512_clmulepi64_epi128(x, y, 0); + z = _mm_ternarylogic_epi64( + _mm512_castsi512_si128(y), + _mm512_extracti32x4_epi32(y, 1), + _mm512_extracti32x4_epi32(y, 2), + 0x96); + return _mm_crc32_u64(0, _mm_extract_epi64(z, 0)); + }], + [return avx512_pclmul_test();])], + [Ac_cachevar=yes], + [Ac_cachevar=no])]) +if test x"$Ac_cachevar" = x"yes"; then + pgac_avx512_pclmul_intrinsics=yes +fi +undefine([Ac_cachevar])dnl +])# PGAC_AVX512_PCLMUL_INTRINSICS # PGAC_ARMV8_CRC32C_INTRINSICS # ---------------------------- diff --git a/config/config.guess b/config/config.guess index f6d217a49f8f4..48a684601bd23 100644 --- a/config/config.guess +++ b/config/config.guess @@ -4,7 +4,7 @@ # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-01-01' +timestamp='2024-07-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -123,7 +123,7 @@ set_cc_for_build() { dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c89 c99 ; do + for driver in cc gcc c17 c99 c89 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break @@ -634,7 +634,8 @@ EOF sed 's/^ //' << EOF > "$dummy.c" #include - main() + int + main () { if (!__power_pc()) exit(1); @@ -718,7 +719,8 @@ EOF #include #include - int main () + int + main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); @@ -1621,6 +1623,7 @@ cat > "$dummy.c" <&2 exit 1 ;; - kfreebsd*-gnu*- | kopensolaris*-gnu*-) + kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) ;; vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; @@ -1864,6 +2245,8 @@ case $kernel-$os-$obj in ;; os2-emx-) ;; + rtmk-nova-) + ;; *-eabi*- | *-gnueabi*-) ;; none--*) @@ -1890,7 +2273,7 @@ case $vendor in *-riscix*) vendor=acorn ;; - *-sunos*) + *-sunos* | *-solaris*) vendor=sun ;; *-cnk* | *-aix*) diff --git a/config/programs.m4 b/config/programs.m4 index 0a07feb37ccfb..0ad1e58b48d6b 100644 --- a/config/programs.m4 +++ b/config/programs.m4 @@ -286,9 +286,20 @@ AC_DEFUN([PGAC_CHECK_LIBCURL], [ AC_CHECK_HEADER(curl/curl.h, [], [AC_MSG_ERROR([header file is required for --with-libcurl])]) - AC_CHECK_LIB(curl, curl_multi_init, [], + AC_CHECK_LIB(curl, curl_multi_init, [ + AC_DEFINE([HAVE_LIBCURL], [1], [Define to 1 if you have the `curl' library (-lcurl).]) + AC_SUBST(LIBCURL_LDLIBS, -lcurl) + ], [AC_MSG_ERROR([library 'curl' does not provide curl_multi_init])]) + pgac_save_CPPFLAGS=$CPPFLAGS + pgac_save_LDFLAGS=$LDFLAGS + pgac_save_LIBS=$LIBS + + CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS" + LDFLAGS="$LIBCURL_LDFLAGS $LDFLAGS" + LIBS="$LIBCURL_LDLIBS $LIBS" + # Check to see whether the current platform supports threadsafe Curl # initialization. AC_CACHE_CHECK([for curl_global_init thread safety], [pgac_cv__libcurl_threadsafe_init], @@ -338,4 +349,8 @@ AC_DEFUN([PGAC_CHECK_LIBCURL], *** lookups. Rebuild libcurl with the AsynchDNS feature enabled in order *** to use it with libpq.]) fi + + CPPFLAGS=$pgac_save_CPPFLAGS + LDFLAGS=$pgac_save_LDFLAGS + LIBS=$pgac_save_LIBS ])# PGAC_CHECK_LIBCURL diff --git a/configure b/configure index 3d0e701c74513..4f15347cc9503 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PostgreSQL 18devel. +# Generated by GNU Autoconf 2.69 for PostgreSQL 18beta1. # # Report bugs to . # @@ -582,8 +582,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='PostgreSQL' PACKAGE_TARNAME='postgresql' -PACKAGE_VERSION='18devel' -PACKAGE_STRING='PostgreSQL 18devel' +PACKAGE_VERSION='18beta1' +PACKAGE_STRING='PostgreSQL 18beta1' PACKAGE_BUGREPORT='pgsql-bugs@lists.postgresql.org' PACKAGE_URL='https://www.postgresql.org/' @@ -655,6 +655,7 @@ UUID_LIBS LDAP_LIBS_BE LDAP_LIBS_FE with_ssl +LIBCURL_LDLIBS PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC @@ -708,6 +709,11 @@ XML2_LIBS XML2_CFLAGS XML2_CONFIG with_libxml +LIBNUMA_LIBS +LIBNUMA_CFLAGS +with_libnuma +LIBCURL_LDFLAGS +LIBCURL_CPPFLAGS LIBCURL_LIBS LIBCURL_CFLAGS with_libcurl @@ -872,6 +878,7 @@ with_liburing with_uuid with_ossp_uuid with_libcurl +with_libnuma with_libxml with_libxslt with_system_tzdata @@ -906,6 +913,8 @@ LIBURING_CFLAGS LIBURING_LIBS LIBCURL_CFLAGS LIBCURL_LIBS +LIBNUMA_CFLAGS +LIBNUMA_LIBS XML2_CONFIG XML2_CFLAGS XML2_LIBS @@ -1459,7 +1468,7 @@ if test "$ac_init_help" = "long"; then # 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 18devel to adapt to many kinds of systems. +\`configure' configures PostgreSQL 18beta1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1524,7 +1533,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PostgreSQL 18devel:";; + short | recursive ) echo "Configuration of PostgreSQL 18beta1:";; esac cat <<\_ACEOF @@ -1588,6 +1597,7 @@ Optional Packages: --with-uuid=LIB build contrib/uuid-ossp using LIB (bsd,e2fs,ossp) --with-ossp-uuid obsolete spelling of --with-uuid=ossp --with-libcurl build with libcurl support + --with-libnuma build with libnuma support --with-libxml build with XML support --with-libxslt use XSLT support when building contrib/xml2 --with-system-tzdata=DIR @@ -1629,6 +1639,10 @@ Some influential environment variables: C compiler flags for LIBCURL, overriding pkg-config LIBCURL_LIBS linker flags for LIBCURL, overriding pkg-config + LIBNUMA_CFLAGS + C compiler flags for LIBNUMA, overriding pkg-config + LIBNUMA_LIBS + linker flags for LIBNUMA, overriding pkg-config XML2_CONFIG path to xml2-config utility XML2_CFLAGS C compiler flags for XML2, overriding pkg-config XML2_LIBS linker flags for XML2, overriding pkg-config @@ -1710,7 +1724,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PostgreSQL configure 18devel +PostgreSQL configure 18beta1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2463,7 +2477,7 @@ cat >config.log <<_ACEOF 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 18devel, which was +It was created by PostgreSQL $as_me 18beta1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -9042,19 +9056,27 @@ $as_echo "yes" >&6; } fi - # We only care about -I, -D, and -L switches; - # note that -lcurl will be added by PGAC_CHECK_LIBCURL below. + # Curl's flags are kept separate from the standard CPPFLAGS/LDFLAGS. We use + # them only for libpq-oauth. + LIBCURL_CPPFLAGS= + LIBCURL_LDFLAGS= + + # We only care about -I, -D, and -L switches. Note that -lcurl will be added + # to LIBCURL_LDLIBS by PGAC_CHECK_LIBCURL, below. for pgac_option in $LIBCURL_CFLAGS; do case $pgac_option in - -I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";; + -I*|-D*) LIBCURL_CPPFLAGS="$LIBCURL_CPPFLAGS $pgac_option";; esac done for pgac_option in $LIBCURL_LIBS; do case $pgac_option in - -L*) LDFLAGS="$LDFLAGS $pgac_option";; + -L*) LIBCURL_LDFLAGS="$LIBCURL_LDFLAGS $pgac_option";; esac done + + + # OAuth requires python for testing if test "$with_python" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** OAuth support tests require --with-python to run" >&5 @@ -9063,6 +9085,182 @@ $as_echo "$as_me: WARNING: *** OAuth support tests require --with-python to run" fi +# +# libnuma +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build with libnuma support" >&5 +$as_echo_n "checking whether to build with libnuma support... " >&6; } + + + +# Check whether --with-libnuma was given. +if test "${with_libnuma+set}" = set; then : + withval=$with_libnuma; + case $withval in + yes) + +$as_echo "#define USE_LIBNUMA 1" >>confdefs.h + + ;; + no) + : + ;; + *) + as_fn_error $? "no argument expected for --with-libnuma option" "$LINENO" 5 + ;; + esac + +else + with_libnuma=no + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_libnuma" >&5 +$as_echo "$with_libnuma" >&6; } + + +if test "$with_libnuma" = yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for numa_available in -lnuma" >&5 +$as_echo_n "checking for numa_available in -lnuma... " >&6; } +if ${ac_cv_lib_numa_numa_available+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnuma $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char numa_available (); +int +main () +{ +return numa_available (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_numa_numa_available=yes +else + ac_cv_lib_numa_numa_available=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_numa_numa_available" >&5 +$as_echo "$ac_cv_lib_numa_numa_available" >&6; } +if test "x$ac_cv_lib_numa_numa_available" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNUMA 1 +_ACEOF + + LIBS="-lnuma $LIBS" + +else + as_fn_error $? "library 'libnuma' is required for NUMA support" "$LINENO" 5 +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for numa" >&5 +$as_echo_n "checking for numa... " >&6; } + +if test -n "$LIBNUMA_CFLAGS"; then + pkg_cv_LIBNUMA_CFLAGS="$LIBNUMA_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"numa\""; } >&5 + ($PKG_CONFIG --exists --print-errors "numa") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBNUMA_CFLAGS=`$PKG_CONFIG --cflags "numa" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBNUMA_LIBS"; then + pkg_cv_LIBNUMA_LIBS="$LIBNUMA_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"numa\""; } >&5 + ($PKG_CONFIG --exists --print-errors "numa") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBNUMA_LIBS=`$PKG_CONFIG --libs "numa" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBNUMA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "numa" 2>&1` + else + LIBNUMA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "numa" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBNUMA_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (numa) were not met: + +$LIBNUMA_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBNUMA_CFLAGS +and LIBNUMA_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBNUMA_CFLAGS +and LIBNUMA_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + LIBNUMA_CFLAGS=$pkg_cv_LIBNUMA_CFLAGS + LIBNUMA_LIBS=$pkg_cv_LIBNUMA_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi +fi + # # XML # @@ -12517,9 +12715,6 @@ fi fi -# XXX libcurl must link after libgssapi_krb5 on FreeBSD to avoid segfaults -# during gss_acquire_cred(). This is possibly related to Curl's Heimdal -# dependency on that platform? if test "$with_libcurl" = yes ; then ac_fn_c_check_header_mongrel "$LINENO" "curl/curl.h" "ac_cv_header_curl_curl_h" "$ac_includes_default" @@ -12567,17 +12762,26 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_multi_init" >&5 $as_echo "$ac_cv_lib_curl_curl_multi_init" >&6; } if test "x$ac_cv_lib_curl_curl_multi_init" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBCURL 1 -_ACEOF - LIBS="-lcurl $LIBS" + +$as_echo "#define HAVE_LIBCURL 1" >>confdefs.h + + LIBCURL_LDLIBS=-lcurl + else as_fn_error $? "library 'curl' does not provide curl_multi_init" "$LINENO" 5 fi + pgac_save_CPPFLAGS=$CPPFLAGS + pgac_save_LDFLAGS=$LDFLAGS + pgac_save_LIBS=$LIBS + + CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS" + LDFLAGS="$LIBCURL_LDFLAGS $LDFLAGS" + LIBS="$LIBCURL_LDLIBS $LIBS" + # Check to see whether the current platform supports threadsafe Curl # initialization. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_global_init thread safety" >&5 @@ -12681,6 +12885,10 @@ $as_echo "$pgac_cv__libcurl_async_dns" >&6; } *** to use it with libpq." "$LINENO" 5 fi + CPPFLAGS=$pgac_save_CPPFLAGS + LDFLAGS=$pgac_save_LDFLAGS + LIBS=$pgac_save_LIBS + fi if test "$with_gssapi" = yes ; then @@ -12931,7 +13139,7 @@ fi done # Function introduced in OpenSSL 1.1.1, not in LibreSSL. - for ac_func in X509_get_signature_info SSL_CTX_set_num_tickets + for ac_func in X509_get_signature_info SSL_CTX_set_num_tickets SSL_CTX_set_keylog_callback do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -14329,6 +14537,13 @@ done fi +if test "$with_libcurl" = yes ; then + # Error out early if this platform can't support libpq-oauth. + if test "$ac_cv_header_sys_event_h" != yes -a "$ac_cv_header_sys_epoll_h" != yes; then + as_fn_error $? "client-side OAuth is not supported on this platform" "$LINENO" 5 + fi +fi + ## ## Types, structures, compiler characteristics ## @@ -15401,7 +15616,7 @@ fi LIBS_including_readline="$LIBS" LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'` -for ac_func in backtrace_symbols copyfile copy_file_range elf_aux_info getauxval getifaddrs getpeerucred inet_pton kqueue localeconv_l mbstowcs_l memset_s posix_fallocate ppoll pthread_is_threaded_np setproctitle setproctitle_fast strsignal syncfs sync_file_range uselocale wcstombs_l +for ac_func in backtrace_symbols copyfile copy_file_range elf_aux_info getauxval getifaddrs getpeerucred inet_pton kqueue localeconv_l mbstowcs_l posix_fallocate ppoll pthread_is_threaded_np setproctitle setproctitle_fast strsignal syncfs sync_file_range uselocale wcstombs_l do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -15927,6 +16142,16 @@ fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRSEP $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "timingsafe_bcmp" "ac_cv_have_decl_timingsafe_bcmp" "$ac_includes_default" +if test "x$ac_cv_have_decl_timingsafe_bcmp" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TIMINGSAFE_BCMP $ac_have_decl +_ACEOF # We can't use AC_CHECK_FUNCS to detect these functions, because it @@ -15967,6 +16192,19 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRCHRNUL $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "memset_s" "ac_cv_have_decl_memset_s" "#define __STDC_WANT_LIB_EXT1__ 1 +#include +" +if test "x$ac_cv_have_decl_memset_s" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_MEMSET_S $ac_have_decl +_ACEOF + # This is probably only present on macOS, but may as well check always ac_fn_c_check_decl "$LINENO" "F_FULLFSYNC" "ac_cv_have_decl_F_FULLFSYNC" "#include @@ -16099,6 +16337,19 @@ esac fi +ac_fn_c_check_func "$LINENO" "timingsafe_bcmp" "ac_cv_func_timingsafe_bcmp" +if test "x$ac_cv_func_timingsafe_bcmp" = xyes; then : + $as_echo "#define HAVE_TIMINGSAFE_BCMP 1" >>confdefs.h + +else + case " $LIBOBJS " in + *" timingsafe_bcmp.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS timingsafe_bcmp.$ac_objext" + ;; +esac + +fi + ac_fn_c_check_func "$LINENO" "pthread_barrier_wait" "ac_cv_func_pthread_barrier_wait" @@ -17841,17 +18092,21 @@ fi # Select CRC-32C implementation. # -# If we are targeting a processor that has Intel SSE 4.2 instructions, we can -# use the special CRC instructions for calculating CRC-32C. If we're not -# targeting such a processor, but we can nevertheless produce code that uses -# the SSE intrinsics, compile both implementations and select which one to use -# at runtime, depending on whether SSE 4.2 is supported by the processor we're -# running on. +# There are three methods of calculating CRC, in order of increasing +# performance: # -# Similarly, if we are targeting an ARM processor that has the CRC -# instructions that are part of the ARMv8 CRC Extension, use them. And if -# we're not targeting such a processor, but can nevertheless produce code that -# uses the CRC instructions, compile both, and select at runtime. +# 1. The fallback using a lookup table, called slicing-by-8 +# 2. CRC-32C instructions (found in e.g. Intel SSE 4.2 and ARMv8 CRC Extension) +# 3. Algorithms using carryless multiplication instructions +# (e.g. Intel PCLMUL and Arm PMULL) +# +# If we can produce code (via function attributes or additional compiler +# flags) that uses #2 (and possibly #3), we compile all implementations +# and select which one to use at runtime, depending on what is supported +# by the processor we're running on. +# +# If we are targeting a processor that has #2, we can use that without +# runtime selection. # # Note that we do not use __attribute__((target("..."))) for the ARM CRC # instructions because until clang 16, using the ARM intrinsics still requires @@ -17902,7 +18157,7 @@ if test x"$USE_SSE42_CRC32C" = x"1"; then $as_echo "#define USE_SSE42_CRC32C 1" >>confdefs.h - PG_CRC32C_OBJS="pg_crc32c_sse42.o" + PG_CRC32C_OBJS="pg_crc32c_sse42.o pg_crc32c_sse42_choose.o" { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE 4.2" >&5 $as_echo "SSE 4.2" >&6; } else @@ -17951,6 +18206,71 @@ $as_echo "slicing-by-8" >&6; } fi +# Check for carryless multiplication intrinsics to do vectorized CRC calculations. +# +if test x"$host_cpu" = x"x86_64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mm512_clmulepi64_epi128" >&5 +$as_echo_n "checking for _mm512_clmulepi64_epi128... " >&6; } +if ${pgac_cv_avx512_pclmul_intrinsics+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + __m512i x; + __m512i y; + + #if defined(__has_attribute) && __has_attribute (target) + __attribute__((target("vpclmulqdq,avx512vl"))) + #endif + static int avx512_pclmul_test(void) + { + __m128i z; + + y = _mm512_clmulepi64_epi128(x, y, 0); + z = _mm_ternarylogic_epi64( + _mm512_castsi512_si128(y), + _mm512_extracti32x4_epi32(y, 1), + _mm512_extracti32x4_epi32(y, 2), + 0x96); + return _mm_crc32_u64(0, _mm_extract_epi64(z, 0)); + } +int +main () +{ +return avx512_pclmul_test(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + pgac_cv_avx512_pclmul_intrinsics=yes +else + pgac_cv_avx512_pclmul_intrinsics=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_avx512_pclmul_intrinsics" >&5 +$as_echo "$pgac_cv_avx512_pclmul_intrinsics" >&6; } +if test x"$pgac_cv_avx512_pclmul_intrinsics" = x"yes"; then + pgac_avx512_pclmul_intrinsics=yes +fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for vectorized CRC-32C" >&5 +$as_echo_n "checking for vectorized CRC-32C... " >&6; } +if test x"$pgac_avx512_pclmul_intrinsics" = x"yes"; then + +$as_echo "#define USE_AVX512_CRC32C_WITH_RUNTIME_CHECK 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: AVX-512 with runtime check" >&5 +$as_echo "AVX-512 with runtime check" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi # Select semaphore implementation type. if test "$PORTNAME" != "win32"; then @@ -19742,7 +20062,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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 18devel, which was +This file was extended by PostgreSQL $as_me 18beta1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19813,7 +20133,7 @@ _ACEOF 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 18devel +PostgreSQL config.status 18beta1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 47a287926bc5d..4b8335dc6138e 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Read the Autoconf manual for details. dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros -AC_INIT([PostgreSQL], [18devel], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) +AC_INIT([PostgreSQL], [18beta1], [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 @@ -1033,19 +1033,27 @@ if test "$with_libcurl" = yes ; then # to explicitly set TLS 1.3 ciphersuites). PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.61.0]) - # We only care about -I, -D, and -L switches; - # note that -lcurl will be added by PGAC_CHECK_LIBCURL below. + # Curl's flags are kept separate from the standard CPPFLAGS/LDFLAGS. We use + # them only for libpq-oauth. + LIBCURL_CPPFLAGS= + LIBCURL_LDFLAGS= + + # We only care about -I, -D, and -L switches. Note that -lcurl will be added + # to LIBCURL_LDLIBS by PGAC_CHECK_LIBCURL, below. for pgac_option in $LIBCURL_CFLAGS; do case $pgac_option in - -I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";; + -I*|-D*) LIBCURL_CPPFLAGS="$LIBCURL_CPPFLAGS $pgac_option";; esac done for pgac_option in $LIBCURL_LIBS; do case $pgac_option in - -L*) LDFLAGS="$LDFLAGS $pgac_option";; + -L*) LIBCURL_LDFLAGS="$LIBCURL_LDFLAGS $pgac_option";; esac done + AC_SUBST(LIBCURL_CPPFLAGS) + AC_SUBST(LIBCURL_LDFLAGS) + # OAuth requires python for testing if test "$with_python" != yes; then AC_MSG_WARN([*** OAuth support tests require --with-python to run]) @@ -1053,6 +1061,20 @@ if test "$with_libcurl" = yes ; then fi +# +# libnuma +# +AC_MSG_CHECKING([whether to build with libnuma support]) +PGAC_ARG_BOOL(with, libnuma, no, [build with libnuma support], + [AC_DEFINE([USE_LIBNUMA], 1, [Define to build with NUMA support. (--with-libnuma)])]) +AC_MSG_RESULT([$with_libnuma]) +AC_SUBST(with_libnuma) + +if test "$with_libnuma" = yes ; then + AC_CHECK_LIB(numa, numa_available, [], [AC_MSG_ERROR([library 'libnuma' is required for NUMA support])]) + PKG_CHECK_MODULES(LIBNUMA, numa) +fi + # # XML # @@ -1340,9 +1362,6 @@ failure. It is possible the compiler isn't looking in the proper directory. Use --without-zlib to disable zlib support.])]) fi -# XXX libcurl must link after libgssapi_krb5 on FreeBSD to avoid segfaults -# during gss_acquire_cred(). This is possibly related to Curl's Heimdal -# dependency on that platform? if test "$with_libcurl" = yes ; then PGAC_CHECK_LIBCURL fi @@ -1382,7 +1401,7 @@ if test "$with_ssl" = openssl ; then # Function introduced in OpenSSL 1.0.2, not in LibreSSL. AC_CHECK_FUNCS([SSL_CTX_set_cert_cb]) # Function introduced in OpenSSL 1.1.1, not in LibreSSL. - AC_CHECK_FUNCS([X509_get_signature_info SSL_CTX_set_num_tickets]) + AC_CHECK_FUNCS([X509_get_signature_info SSL_CTX_set_num_tickets SSL_CTX_set_keylog_callback]) AC_DEFINE([USE_OPENSSL], 1, [Define to 1 to build with OpenSSL support. (--with-ssl=openssl)]) elif test "$with_ssl" != no ; then AC_MSG_ERROR([--with-ssl must specify openssl]) @@ -1640,6 +1659,13 @@ if test "$PORTNAME" = "win32" ; then AC_CHECK_HEADERS(crtdefs.h) fi +if test "$with_libcurl" = yes ; then + # Error out early if this platform can't support libpq-oauth. + if test "$ac_cv_header_sys_event_h" != yes -a "$ac_cv_header_sys_epoll_h" != yes; then + AC_MSG_ERROR([client-side OAuth is not supported on this platform]) + fi +fi + ## ## Types, structures, compiler characteristics ## @@ -1766,7 +1792,6 @@ AC_CHECK_FUNCS(m4_normalize([ kqueue localeconv_l mbstowcs_l - memset_s posix_fallocate ppoll pthread_is_threaded_np @@ -1805,13 +1830,15 @@ AC_CHECK_DECLS(posix_fadvise, [], [], [#include ]) ]) # fi AC_CHECK_DECLS(fdatasync, [], [], [#include ]) -AC_CHECK_DECLS([strlcat, strlcpy, strnlen, strsep]) +AC_CHECK_DECLS([strlcat, strlcpy, strnlen, strsep, timingsafe_bcmp]) # We can't use AC_CHECK_FUNCS to detect these functions, because it # won't handle deployment target restrictions on macOS AC_CHECK_DECLS([preadv], [], [], [#include ]) AC_CHECK_DECLS([pwritev], [], [], [#include ]) AC_CHECK_DECLS([strchrnul], [], [], [#include ]) +AC_CHECK_DECLS([memset_s], [], [], [#define __STDC_WANT_LIB_EXT1__ 1 +#include ]) # This is probably only present on macOS, but may as well check always AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include ]) @@ -1826,6 +1853,7 @@ AC_REPLACE_FUNCS(m4_normalize([ strlcpy strnlen strsep + timingsafe_bcmp ])) AC_REPLACE_FUNCS(pthread_barrier_wait) @@ -2115,17 +2143,21 @@ AC_SUBST(CFLAGS_CRC) # Select CRC-32C implementation. # -# If we are targeting a processor that has Intel SSE 4.2 instructions, we can -# use the special CRC instructions for calculating CRC-32C. If we're not -# targeting such a processor, but we can nevertheless produce code that uses -# the SSE intrinsics, compile both implementations and select which one to use -# at runtime, depending on whether SSE 4.2 is supported by the processor we're -# running on. +# There are three methods of calculating CRC, in order of increasing +# performance: # -# Similarly, if we are targeting an ARM processor that has the CRC -# instructions that are part of the ARMv8 CRC Extension, use them. And if -# we're not targeting such a processor, but can nevertheless produce code that -# uses the CRC instructions, compile both, and select at runtime. +# 1. The fallback using a lookup table, called slicing-by-8 +# 2. CRC-32C instructions (found in e.g. Intel SSE 4.2 and ARMv8 CRC Extension) +# 3. Algorithms using carryless multiplication instructions +# (e.g. Intel PCLMUL and Arm PMULL) +# +# If we can produce code (via function attributes or additional compiler +# flags) that uses #2 (and possibly #3), we compile all implementations +# and select which one to use at runtime, depending on what is supported +# by the processor we're running on. +# +# If we are targeting a processor that has #2, we can use that without +# runtime selection. # # Note that we do not use __attribute__((target("..."))) for the ARM CRC # instructions because until clang 16, using the ARM intrinsics still requires @@ -2173,7 +2205,7 @@ fi AC_MSG_CHECKING([which CRC-32C implementation to use]) if test x"$USE_SSE42_CRC32C" = x"1"; then AC_DEFINE(USE_SSE42_CRC32C, 1, [Define to 1 use Intel SSE 4.2 CRC instructions.]) - PG_CRC32C_OBJS="pg_crc32c_sse42.o" + PG_CRC32C_OBJS="pg_crc32c_sse42.o pg_crc32c_sse42_choose.o" AC_MSG_RESULT(SSE 4.2) else if test x"$USE_SSE42_CRC32C_WITH_RUNTIME_CHECK" = x"1"; then @@ -2206,6 +2238,19 @@ else fi AC_SUBST(PG_CRC32C_OBJS) +# Check for carryless multiplication intrinsics to do vectorized CRC calculations. +# +if test x"$host_cpu" = x"x86_64"; then + PGAC_AVX512_PCLMUL_INTRINSICS() +fi + +AC_MSG_CHECKING([for vectorized CRC-32C]) +if test x"$pgac_avx512_pclmul_intrinsics" = x"yes"; then + AC_DEFINE(USE_AVX512_CRC32C_WITH_RUNTIME_CHECK, 1, [Define to 1 to use AVX-512 CRC algorithms with a runtime check.]) + AC_MSG_RESULT(AVX-512 with runtime check) +else + AC_MSG_RESULT(none) +fi # Select semaphore implementation type. if test "$PORTNAME" != "win32"; then diff --git a/contrib/amcheck/verify_common.h b/contrib/amcheck/verify_common.h index b2565bfbbab80..e78adb68808f0 100644 --- a/contrib/amcheck/verify_common.h +++ b/contrib/amcheck/verify_common.h @@ -16,7 +16,7 @@ #include "utils/relcache.h" #include "miscadmin.h" -/* Typedefs for callback functions for amcheck_lock_relation */ +/* Typedefs for callback functions for amcheck_lock_relation_and_check */ typedef void (*IndexCheckableCallback) (Relation index); typedef void (*IndexDoCheckCallback) (Relation rel, Relation heaprel, diff --git a/contrib/amcheck/verify_gin.c b/contrib/amcheck/verify_gin.c index b752448e7983f..b5f363562e32a 100644 --- a/contrib/amcheck/verify_gin.c +++ b/contrib/amcheck/verify_gin.c @@ -359,8 +359,8 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting ptr->depth = stack->depth + 1; /* - * Set rightmost parent key to invalid iterm pointer. Its - * value is 'Infinity' and not explicitly stored. + * Set rightmost parent key to invalid item pointer. Its value + * is 'Infinity' and not explicitly stored. */ if (rightlink == InvalidBlockNumber) ItemPointerSetInvalid(&ptr->parentkey); @@ -587,7 +587,7 @@ gin_check_parent_keys_consistency(Relation rel, /* * Check if it is properly adjusted. If succeed, - * procced to the next key. + * proceed to the next key. */ if (ginCompareEntries(&state, attnum, current_key, current_key_category, parent_key, @@ -700,18 +700,18 @@ check_index_page(Relation rel, Buffer buffer, BlockNumber blockNo) if (!GinPageIsLeaf(page)) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("index \"%s\" has deleted internal page %d", + errmsg("index \"%s\" has deleted internal page %u", RelationGetRelationName(rel), blockNo))); if (PageGetMaxOffsetNumber(page) > InvalidOffsetNumber) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("index \"%s\" has deleted page %d with tuples", + errmsg("index \"%s\" has deleted page %u with tuples", RelationGetRelationName(rel), blockNo))); } else if (PageGetMaxOffsetNumber(page) > MaxIndexTuplesPerPage) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("index \"%s\" has page %d with exceeding count of tuples", + errmsg("index \"%s\" has page %u with exceeding count of tuples", RelationGetRelationName(rel), blockNo))); } diff --git a/contrib/amcheck/verify_heapam.c b/contrib/amcheck/verify_heapam.c index 1970fc8620aeb..aa9cccd1da4fe 100644 --- a/contrib/amcheck/verify_heapam.c +++ b/contrib/amcheck/verify_heapam.c @@ -460,7 +460,7 @@ verify_heapam(PG_FUNCTION_ARGS) else { /* - * It would not be safe to naively use use batchmode, as + * It would not be safe to naively use batchmode, as * heapcheck_read_stream_next_unskippable takes locks. It shouldn't be * too hard to convert though. */ @@ -853,8 +853,6 @@ verify_heapam(PG_FUNCTION_ARGS) break; } - /* Ensure that the stream is completely read */ - Assert(read_stream_next_buffer(stream, NULL) == InvalidBuffer); read_stream_end(stream); if (vmbuffer != InvalidBuffer) diff --git a/contrib/auto_explain/auto_explain.c b/contrib/auto_explain/auto_explain.c index cd6625020a730..1f4badb492840 100644 --- a/contrib/auto_explain/auto_explain.c +++ b/contrib/auto_explain/auto_explain.c @@ -81,7 +81,7 @@ static ExecutorRun_hook_type prev_ExecutorRun = NULL; static ExecutorFinish_hook_type prev_ExecutorFinish = NULL; static ExecutorEnd_hook_type prev_ExecutorEnd = NULL; -static bool explain_ExecutorStart(QueryDesc *queryDesc, int eflags); +static void explain_ExecutorStart(QueryDesc *queryDesc, int eflags); static void explain_ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, uint64 count); @@ -261,11 +261,9 @@ _PG_init(void) /* * ExecutorStart hook: start up logging if needed */ -static bool +static void explain_ExecutorStart(QueryDesc *queryDesc, int eflags) { - bool plan_valid; - /* * At the beginning of each top-level statement, decide whether we'll * sample this statement. If nested-statement explaining is enabled, @@ -301,13 +299,9 @@ explain_ExecutorStart(QueryDesc *queryDesc, int eflags) } if (prev_ExecutorStart) - plan_valid = prev_ExecutorStart(queryDesc, eflags); + prev_ExecutorStart(queryDesc, eflags); else - plan_valid = standard_ExecutorStart(queryDesc, eflags); - - /* The plan may have become invalid during standard_ExecutorStart() */ - if (!plan_valid) - return false; + standard_ExecutorStart(queryDesc, eflags); if (auto_explain_enabled()) { @@ -325,8 +319,6 @@ explain_ExecutorStart(QueryDesc *queryDesc, int eflags) MemoryContextSwitchTo(oldcxt); } } - - return true; } /* diff --git a/contrib/bool_plperl/expected/bool_plperl.out b/contrib/bool_plperl/expected/bool_plperl.out index 187df8db96f9e..183dc07b3fbc3 100644 --- a/contrib/bool_plperl/expected/bool_plperl.out +++ b/contrib/bool_plperl/expected/bool_plperl.out @@ -104,9 +104,9 @@ SELECT spi_test(); DROP EXTENSION plperl CASCADE; NOTICE: drop cascades to 6 other objects -DETAIL: drop cascades to function spi_test() -drop cascades to extension bool_plperl +DETAIL: drop cascades to extension bool_plperl drop cascades to function perl2int(integer) drop cascades to function perl2text(text) drop cascades to function perl2undef() drop cascades to function bool2perl(boolean,boolean,boolean) +drop cascades to function spi_test() diff --git a/contrib/bool_plperl/expected/bool_plperlu.out b/contrib/bool_plperl/expected/bool_plperlu.out index 8337d337e992e..1496bbafac8e0 100644 --- a/contrib/bool_plperl/expected/bool_plperlu.out +++ b/contrib/bool_plperl/expected/bool_plperlu.out @@ -104,9 +104,9 @@ SELECT spi_test(); DROP EXTENSION plperlu CASCADE; NOTICE: drop cascades to 6 other objects -DETAIL: drop cascades to function spi_test() -drop cascades to extension bool_plperlu +DETAIL: drop cascades to extension bool_plperlu drop cascades to function perl2int(integer) drop cascades to function perl2text(text) drop cascades to function perl2undef() drop cascades to function bool2perl(boolean,boolean,boolean) +drop cascades to function spi_test() diff --git a/contrib/btree_gist/Makefile b/contrib/btree_gist/Makefile index 7ac2df26c1044..68190ac5e4687 100644 --- a/contrib/btree_gist/Makefile +++ b/contrib/btree_gist/Makefile @@ -34,7 +34,7 @@ DATA = btree_gist--1.0--1.1.sql \ btree_gist--1.1--1.2.sql btree_gist--1.2.sql btree_gist--1.2--1.3.sql \ btree_gist--1.3--1.4.sql btree_gist--1.4--1.5.sql \ btree_gist--1.5--1.6.sql btree_gist--1.6--1.7.sql \ - btree_gist--1.7--1.8.sql + btree_gist--1.7--1.8.sql btree_gist--1.8--1.9.sql PGFILEDESC = "btree_gist - B-tree equivalent GiST operator classes" REGRESS = init int2 int4 int8 float4 float8 cash oid timestamp timestamptz \ diff --git a/contrib/btree_gist/btree_bit.c b/contrib/btree_gist/btree_bit.c index f346b956fa921..0df2ae20d8b21 100644 --- a/contrib/btree_gist/btree_bit.c +++ b/contrib/btree_gist/btree_bit.c @@ -6,18 +6,18 @@ #include "btree_gist.h" #include "btree_utils_var.h" #include "utils/fmgrprotos.h" +#include "utils/sortsupport.h" #include "utils/varbit.h" - -/* -** Bit ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_bit_compress); PG_FUNCTION_INFO_V1(gbt_bit_union); PG_FUNCTION_INFO_V1(gbt_bit_picksplit); PG_FUNCTION_INFO_V1(gbt_bit_consistent); PG_FUNCTION_INFO_V1(gbt_bit_penalty); PG_FUNCTION_INFO_V1(gbt_bit_same); +PG_FUNCTION_INFO_V1(gbt_bit_sortsupport); +PG_FUNCTION_INFO_V1(gbt_varbit_sortsupport); /* define for comparison */ @@ -121,7 +121,7 @@ static const gbtree_vinfo tinfo = /************************************************** - * Bit ops + * GiST support functions **************************************************/ Datum @@ -161,8 +161,6 @@ gbt_bit_consistent(PG_FUNCTION_ARGS) PG_RETURN_BOOL(retval); } - - Datum gbt_bit_union(PG_FUNCTION_ARGS) { @@ -173,7 +171,6 @@ gbt_bit_union(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_bit_picksplit(PG_FUNCTION_ARGS) { @@ -196,7 +193,6 @@ gbt_bit_same(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_bit_penalty(PG_FUNCTION_ARGS) { @@ -207,3 +203,46 @@ gbt_bit_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_var_penalty(result, o, n, PG_GET_COLLATION(), &tinfo, fcinfo->flinfo)); } + +static int +gbt_bit_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + GBT_VARKEY *key1 = PG_DETOAST_DATUM(x); + GBT_VARKEY *key2 = PG_DETOAST_DATUM(y); + + GBT_VARKEY_R arg1 = gbt_var_key_readable(key1); + GBT_VARKEY_R arg2 = gbt_var_key_readable(key2); + Datum result; + + /* for leaf items we expect lower == upper, so only compare lower */ + result = DirectFunctionCall2(byteacmp, + PointerGetDatum(arg1.lower), + PointerGetDatum(arg2.lower)); + + GBT_FREE_IF_COPY(key1, x); + GBT_FREE_IF_COPY(key2, y); + + return DatumGetInt32(result); +} + +Datum +gbt_bit_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_bit_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} + +Datum +gbt_varbit_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_bit_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_bool.c b/contrib/btree_gist/btree_bool.c index adb724e16ac61..1127597bb6017 100644 --- a/contrib/btree_gist/btree_bool.c +++ b/contrib/btree_gist/btree_bool.c @@ -5,6 +5,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" +#include "utils/sortsupport.h" typedef struct boolkey { @@ -12,9 +13,7 @@ typedef struct boolkey bool upper; } boolKEY; -/* -** bool ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_bool_compress); PG_FUNCTION_INFO_V1(gbt_bool_fetch); PG_FUNCTION_INFO_V1(gbt_bool_union); @@ -22,6 +21,7 @@ PG_FUNCTION_INFO_V1(gbt_bool_picksplit); PG_FUNCTION_INFO_V1(gbt_bool_consistent); PG_FUNCTION_INFO_V1(gbt_bool_penalty); PG_FUNCTION_INFO_V1(gbt_bool_same); +PG_FUNCTION_INFO_V1(gbt_bool_sortsupport); static bool gbt_boolgt(const void *a, const void *b, FmgrInfo *flinfo) @@ -82,10 +82,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * bool ops + * GiST support functions **************************************************/ - Datum gbt_bool_compress(PG_FUNCTION_ARGS) { @@ -124,7 +123,6 @@ gbt_bool_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_bool_union(PG_FUNCTION_ARGS) { @@ -135,7 +133,6 @@ gbt_bool_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_bool_penalty(PG_FUNCTION_ARGS) { @@ -166,3 +163,24 @@ gbt_bool_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_bool_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + boolKEY *arg1 = (boolKEY *) DatumGetPointer(x); + boolKEY *arg2 = (boolKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return (int32) arg1->lower - (int32) arg2->lower; +} + +Datum +gbt_bool_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_bool_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_bytea.c b/contrib/btree_gist/btree_bytea.c index 5eacb8c59a05e..26f8710fad5c6 100644 --- a/contrib/btree_gist/btree_bytea.c +++ b/contrib/btree_gist/btree_bytea.c @@ -6,17 +6,16 @@ #include "btree_gist.h" #include "btree_utils_var.h" #include "utils/fmgrprotos.h" +#include "utils/sortsupport.h" - -/* -** Bytea ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_bytea_compress); PG_FUNCTION_INFO_V1(gbt_bytea_union); PG_FUNCTION_INFO_V1(gbt_bytea_picksplit); PG_FUNCTION_INFO_V1(gbt_bytea_consistent); PG_FUNCTION_INFO_V1(gbt_bytea_penalty); PG_FUNCTION_INFO_V1(gbt_bytea_same); +PG_FUNCTION_INFO_V1(gbt_bytea_sortsupport); /* define for comparison */ @@ -69,7 +68,6 @@ gbt_byteacmp(const void *a, const void *b, Oid collation, FmgrInfo *flinfo) PointerGetDatum(b))); } - static const gbtree_vinfo tinfo = { gbt_t_bytea, @@ -86,10 +84,9 @@ static const gbtree_vinfo tinfo = /************************************************** - * Text ops + * GiST support functions **************************************************/ - Datum gbt_bytea_compress(PG_FUNCTION_ARGS) { @@ -98,8 +95,6 @@ gbt_bytea_compress(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_var_compress(entry, &tinfo)); } - - Datum gbt_bytea_consistent(PG_FUNCTION_ARGS) { @@ -121,8 +116,6 @@ gbt_bytea_consistent(PG_FUNCTION_ARGS) PG_RETURN_BOOL(retval); } - - Datum gbt_bytea_union(PG_FUNCTION_ARGS) { @@ -133,7 +126,6 @@ gbt_bytea_union(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_bytea_picksplit(PG_FUNCTION_ARGS) { @@ -156,7 +148,6 @@ gbt_bytea_same(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_bytea_penalty(PG_FUNCTION_ARGS) { @@ -167,3 +158,35 @@ gbt_bytea_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_var_penalty(result, o, n, PG_GET_COLLATION(), &tinfo, fcinfo->flinfo)); } + +static int +gbt_bytea_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + GBT_VARKEY *key1 = PG_DETOAST_DATUM(x); + GBT_VARKEY *key2 = PG_DETOAST_DATUM(y); + + GBT_VARKEY_R xkey = gbt_var_key_readable(key1); + GBT_VARKEY_R ykey = gbt_var_key_readable(key2); + Datum result; + + /* for leaf items we expect lower == upper, so only compare lower */ + result = DirectFunctionCall2(byteacmp, + PointerGetDatum(xkey.lower), + PointerGetDatum(ykey.lower)); + + GBT_FREE_IF_COPY(key1, x); + GBT_FREE_IF_COPY(key2, y); + + return DatumGetInt32(result); +} + +Datum +gbt_bytea_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_bytea_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_cash.c b/contrib/btree_gist/btree_cash.c index c18c34c8b83b2..01c8d5a5f4074 100644 --- a/contrib/btree_gist/btree_cash.c +++ b/contrib/btree_gist/btree_cash.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "common/int.h" #include "utils/cash.h" +#include "utils/sortsupport.h" typedef struct { @@ -14,9 +15,7 @@ typedef struct Cash upper; } cashKEY; -/* -** Cash ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_cash_compress); PG_FUNCTION_INFO_V1(gbt_cash_fetch); PG_FUNCTION_INFO_V1(gbt_cash_union); @@ -25,6 +24,7 @@ PG_FUNCTION_INFO_V1(gbt_cash_consistent); PG_FUNCTION_INFO_V1(gbt_cash_distance); PG_FUNCTION_INFO_V1(gbt_cash_penalty); PG_FUNCTION_INFO_V1(gbt_cash_same); +PG_FUNCTION_INFO_V1(gbt_cash_sortsupport); static bool gbt_cashgt(const void *a, const void *b, FmgrInfo *flinfo) @@ -111,11 +111,11 @@ cash_dist(PG_FUNCTION_ARGS) PG_RETURN_CASH(ra); } + /************************************************** - * Cash ops + * GiST support functions **************************************************/ - Datum gbt_cash_compress(PG_FUNCTION_ARGS) { @@ -155,7 +155,6 @@ gbt_cash_consistent(PG_FUNCTION_ARGS) fcinfo->flinfo)); } - Datum gbt_cash_distance(PG_FUNCTION_ARGS) { @@ -173,7 +172,6 @@ gbt_cash_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_cash_union(PG_FUNCTION_ARGS) { @@ -184,7 +182,6 @@ gbt_cash_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_cash_penalty(PG_FUNCTION_ARGS) { @@ -215,3 +212,29 @@ gbt_cash_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_cash_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + cashKEY *arg1 = (cashKEY *) DatumGetPointer(x); + cashKEY *arg2 = (cashKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (arg1->lower > arg2->lower) + return 1; + else if (arg1->lower < arg2->lower) + return -1; + else + return 0; +} + +Datum +gbt_cash_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_cash_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_date.c b/contrib/btree_gist/btree_date.c index 7a4a9d7a8539e..c008dc61ba5f5 100644 --- a/contrib/btree_gist/btree_date.c +++ b/contrib/btree_gist/btree_date.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "utils/fmgrprotos.h" #include "utils/date.h" +#include "utils/sortsupport.h" typedef struct { @@ -14,9 +15,7 @@ typedef struct DateADT upper; } dateKEY; -/* -** date ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_date_compress); PG_FUNCTION_INFO_V1(gbt_date_fetch); PG_FUNCTION_INFO_V1(gbt_date_union); @@ -25,6 +24,7 @@ PG_FUNCTION_INFO_V1(gbt_date_consistent); PG_FUNCTION_INFO_V1(gbt_date_distance); PG_FUNCTION_INFO_V1(gbt_date_penalty); PG_FUNCTION_INFO_V1(gbt_date_same); +PG_FUNCTION_INFO_V1(gbt_date_sortsupport); static bool gbt_dategt(const void *a, const void *b, FmgrInfo *flinfo) @@ -128,11 +128,9 @@ date_dist(PG_FUNCTION_ARGS) /************************************************** - * date ops + * GiST support functions **************************************************/ - - Datum gbt_date_compress(PG_FUNCTION_ARGS) { @@ -172,7 +170,6 @@ gbt_date_consistent(PG_FUNCTION_ARGS) fcinfo->flinfo)); } - Datum gbt_date_distance(PG_FUNCTION_ARGS) { @@ -190,7 +187,6 @@ gbt_date_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_date_union(PG_FUNCTION_ARGS) { @@ -201,7 +197,6 @@ gbt_date_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_date_penalty(PG_FUNCTION_ARGS) { @@ -238,7 +233,6 @@ gbt_date_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_date_picksplit(PG_FUNCTION_ARGS) { @@ -257,3 +251,26 @@ gbt_date_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_date_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + dateKEY *akey = (dateKEY *) DatumGetPointer(x); + dateKEY *bkey = (dateKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(date_cmp, + DateADTGetDatum(akey->lower), + DateADTGetDatum(bkey->lower))); +} + +Datum +gbt_date_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_date_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_enum.c b/contrib/btree_gist/btree_enum.c index 05d02e704a0d5..83c95c7bb0401 100644 --- a/contrib/btree_gist/btree_enum.c +++ b/contrib/btree_gist/btree_enum.c @@ -7,6 +7,8 @@ #include "btree_utils_num.h" #include "fmgr.h" #include "utils/fmgrprotos.h" +#include "utils/fmgroids.h" +#include "utils/sortsupport.h" /* enums are really Oids, so we just use the same structure */ @@ -16,9 +18,7 @@ typedef struct Oid upper; } oidKEY; -/* -** enum ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_enum_compress); PG_FUNCTION_INFO_V1(gbt_enum_fetch); PG_FUNCTION_INFO_V1(gbt_enum_union); @@ -26,6 +26,7 @@ PG_FUNCTION_INFO_V1(gbt_enum_picksplit); PG_FUNCTION_INFO_V1(gbt_enum_consistent); PG_FUNCTION_INFO_V1(gbt_enum_penalty); PG_FUNCTION_INFO_V1(gbt_enum_same); +PG_FUNCTION_INFO_V1(gbt_enum_sortsupport); static bool @@ -99,10 +100,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * Enum ops + * GiST support functions **************************************************/ - Datum gbt_enum_compress(PG_FUNCTION_ARGS) { @@ -152,7 +152,6 @@ gbt_enum_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_enum_penalty(PG_FUNCTION_ARGS) { @@ -183,3 +182,39 @@ gbt_enum_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_enum_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + oidKEY *arg1 = (oidKEY *) DatumGetPointer(x); + oidKEY *arg2 = (oidKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(CallerFInfoFunctionCall2(enum_cmp, + ssup->ssup_extra, + InvalidOid, + arg1->lower, + arg2->lower)); +} + +Datum +gbt_enum_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + FmgrInfo *flinfo; + + ssup->comparator = gbt_enum_ssup_cmp; + + /* + * Since gbt_enum_ssup_cmp() uses enum_cmp() like the rest of the + * comparison functions, it also needs to pass flinfo when calling it. The + * caller to a SortSupport comparison function doesn't provide an FmgrInfo + * struct, so look it up now, save it in ssup_extra and use it in + * gbt_enum_ssup_cmp() later. + */ + flinfo = MemoryContextAlloc(ssup->ssup_cxt, sizeof(FmgrInfo)); + fmgr_info_cxt(F_ENUM_CMP, flinfo, ssup->ssup_cxt); + ssup->ssup_extra = flinfo; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_float4.c b/contrib/btree_gist/btree_float4.c index d138aa94bf2de..bec026a923a18 100644 --- a/contrib/btree_gist/btree_float4.c +++ b/contrib/btree_gist/btree_float4.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "utils/float.h" +#include "utils/sortsupport.h" typedef struct float4key { @@ -13,9 +14,7 @@ typedef struct float4key float4 upper; } float4KEY; -/* -** float4 ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_float4_compress); PG_FUNCTION_INFO_V1(gbt_float4_fetch); PG_FUNCTION_INFO_V1(gbt_float4_union); @@ -24,6 +23,7 @@ PG_FUNCTION_INFO_V1(gbt_float4_consistent); PG_FUNCTION_INFO_V1(gbt_float4_distance); PG_FUNCTION_INFO_V1(gbt_float4_penalty); PG_FUNCTION_INFO_V1(gbt_float4_same); +PG_FUNCTION_INFO_V1(gbt_float4_sortsupport); static bool gbt_float4gt(const void *a, const void *b, FmgrInfo *flinfo) @@ -107,10 +107,9 @@ float4_dist(PG_FUNCTION_ARGS) /************************************************** - * float4 ops + * GiST support functions **************************************************/ - Datum gbt_float4_compress(PG_FUNCTION_ARGS) { @@ -150,7 +149,6 @@ gbt_float4_consistent(PG_FUNCTION_ARGS) fcinfo->flinfo)); } - Datum gbt_float4_distance(PG_FUNCTION_ARGS) { @@ -168,7 +166,6 @@ gbt_float4_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_float4_union(PG_FUNCTION_ARGS) { @@ -179,7 +176,6 @@ gbt_float4_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_float4_penalty(PG_FUNCTION_ARGS) { @@ -210,3 +206,24 @@ gbt_float4_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_float4_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + float4KEY *arg1 = (float4KEY *) DatumGetPointer(x); + float4KEY *arg2 = (float4KEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return float4_cmp_internal(arg1->lower, arg2->lower); +} + +Datum +gbt_float4_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_float4_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_float8.c b/contrib/btree_gist/btree_float8.c index a74cd200529fa..43e7cde2b6958 100644 --- a/contrib/btree_gist/btree_float8.c +++ b/contrib/btree_gist/btree_float8.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "utils/float.h" +#include "utils/sortsupport.h" typedef struct float8key { @@ -13,9 +14,7 @@ typedef struct float8key float8 upper; } float8KEY; -/* -** float8 ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_float8_compress); PG_FUNCTION_INFO_V1(gbt_float8_fetch); PG_FUNCTION_INFO_V1(gbt_float8_union); @@ -24,6 +23,7 @@ PG_FUNCTION_INFO_V1(gbt_float8_consistent); PG_FUNCTION_INFO_V1(gbt_float8_distance); PG_FUNCTION_INFO_V1(gbt_float8_penalty); PG_FUNCTION_INFO_V1(gbt_float8_same); +PG_FUNCTION_INFO_V1(gbt_float8_sortsupport); static bool @@ -113,11 +113,11 @@ float8_dist(PG_FUNCTION_ARGS) PG_RETURN_FLOAT8(fabs(r)); } + /************************************************** - * float8 ops + * GiST support functions **************************************************/ - Datum gbt_float8_compress(PG_FUNCTION_ARGS) { @@ -157,7 +157,6 @@ gbt_float8_consistent(PG_FUNCTION_ARGS) fcinfo->flinfo)); } - Datum gbt_float8_distance(PG_FUNCTION_ARGS) { @@ -175,7 +174,6 @@ gbt_float8_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_float8_union(PG_FUNCTION_ARGS) { @@ -186,7 +184,6 @@ gbt_float8_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_float8_penalty(PG_FUNCTION_ARGS) { @@ -217,3 +214,24 @@ gbt_float8_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_float8_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + float8KEY *arg1 = (float8KEY *) DatumGetPointer(x); + float8KEY *arg2 = (float8KEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return float8_cmp_internal(arg1->lower, arg2->lower); +} + +Datum +gbt_float8_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_float8_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_gist--1.8--1.9.sql b/contrib/btree_gist/btree_gist--1.8--1.9.sql new file mode 100644 index 0000000000000..4b38749bf5f34 --- /dev/null +++ b/contrib/btree_gist/btree_gist--1.8--1.9.sql @@ -0,0 +1,197 @@ +/* contrib/btree_gist/btree_gist--1.7--1.8.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "ALTER EXTENSION btree_gist UPDATE TO '1.9'" to load this file. \quit + +CREATE FUNCTION gbt_bit_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_varbit_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_bool_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_bytea_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_cash_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_date_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_enum_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_float4_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_float8_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_inet_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_int2_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_int4_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_int8_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_intv_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_macaddr_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_macad8_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_numeric_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_oid_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_text_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_bpchar_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_time_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_ts_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +CREATE FUNCTION gbt_uuid_sortsupport(internal) +RETURNS void +AS 'MODULE_PATHNAME' +LANGUAGE C IMMUTABLE PARALLEL SAFE STRICT; + +ALTER OPERATOR FAMILY gist_bit_ops USING gist ADD + FUNCTION 11 (bit, bit) gbt_bit_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_vbit_ops USING gist ADD + FUNCTION 11 (varbit, varbit) gbt_varbit_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_bool_ops USING gist ADD + FUNCTION 11 (bool, bool) gbt_bool_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_bytea_ops USING gist ADD + FUNCTION 11 (bytea, bytea) gbt_bytea_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_cash_ops USING gist ADD + FUNCTION 11 (money, money) gbt_cash_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_date_ops USING gist ADD + FUNCTION 11 (date, date) gbt_date_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_enum_ops USING gist ADD + FUNCTION 11 (anyenum, anyenum) gbt_enum_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_float4_ops USING gist ADD + FUNCTION 11 (float4, float4) gbt_float4_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_float8_ops USING gist ADD + FUNCTION 11 (float8, float8) gbt_float8_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_inet_ops USING gist ADD + FUNCTION 11 (inet, inet) gbt_inet_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_cidr_ops USING gist ADD + FUNCTION 11 (cidr, cidr) gbt_inet_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_int2_ops USING gist ADD + FUNCTION 11 (int2, int2) gbt_int2_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_int4_ops USING gist ADD + FUNCTION 11 (int4, int4) gbt_int4_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_int8_ops USING gist ADD + FUNCTION 11 (int8, int8) gbt_int8_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_interval_ops USING gist ADD + FUNCTION 11 (interval, interval) gbt_intv_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_macaddr_ops USING gist ADD + FUNCTION 11 (macaddr, macaddr) gbt_macaddr_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_macaddr8_ops USING gist ADD + FUNCTION 11 (macaddr8, macaddr8) gbt_macad8_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_numeric_ops USING gist ADD + FUNCTION 11 (numeric, numeric) gbt_numeric_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_oid_ops USING gist ADD + FUNCTION 11 (oid, oid) gbt_oid_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_text_ops USING gist ADD + FUNCTION 11 (text, text) gbt_text_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_bpchar_ops USING gist ADD + FUNCTION 11 (bpchar, bpchar) gbt_bpchar_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_time_ops USING gist ADD + FUNCTION 11 (time, time) gbt_time_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_timetz_ops USING gist ADD + FUNCTION 11 (timetz, timetz) gbt_time_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_timestamp_ops USING gist ADD + FUNCTION 11 (timestamp, timestamp) gbt_ts_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_timestamptz_ops USING gist ADD + FUNCTION 11 (timestamptz, timestamptz) gbt_ts_sortsupport (internal) ; + +ALTER OPERATOR FAMILY gist_uuid_ops USING gist ADD + FUNCTION 11 (uuid, uuid) gbt_uuid_sortsupport (internal) ; diff --git a/contrib/btree_gist/btree_gist.control b/contrib/btree_gist/btree_gist.control index abf66538f3244..69d9341a0adea 100644 --- a/contrib/btree_gist/btree_gist.control +++ b/contrib/btree_gist/btree_gist.control @@ -1,6 +1,6 @@ # btree_gist extension comment = 'support for indexing common datatypes in GiST' -default_version = '1.8' +default_version = '1.9' module_pathname = '$libdir/btree_gist' relocatable = true trusted = true diff --git a/contrib/btree_gist/btree_inet.c b/contrib/btree_gist/btree_inet.c index 4cffd34909179..8b23853bafbb7 100644 --- a/contrib/btree_gist/btree_inet.c +++ b/contrib/btree_gist/btree_inet.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "catalog/pg_type.h" #include "utils/builtins.h" +#include "utils/sortsupport.h" typedef struct inetkey { @@ -14,15 +15,14 @@ typedef struct inetkey double upper; } inetKEY; -/* -** inet ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_inet_compress); PG_FUNCTION_INFO_V1(gbt_inet_union); PG_FUNCTION_INFO_V1(gbt_inet_picksplit); PG_FUNCTION_INFO_V1(gbt_inet_consistent); PG_FUNCTION_INFO_V1(gbt_inet_penalty); PG_FUNCTION_INFO_V1(gbt_inet_same); +PG_FUNCTION_INFO_V1(gbt_inet_sortsupport); static bool @@ -85,10 +85,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * inet ops + * GiST support functions **************************************************/ - Datum gbt_inet_compress(PG_FUNCTION_ARGS) { @@ -114,7 +113,6 @@ gbt_inet_compress(PG_FUNCTION_ARGS) PG_RETURN_POINTER(retval); } - Datum gbt_inet_consistent(PG_FUNCTION_ARGS) { @@ -142,7 +140,6 @@ gbt_inet_consistent(PG_FUNCTION_ARGS) &strategy, GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_inet_union(PG_FUNCTION_ARGS) { @@ -153,7 +150,6 @@ gbt_inet_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_inet_penalty(PG_FUNCTION_ARGS) { @@ -184,3 +180,29 @@ gbt_inet_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_inet_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + inetKEY *arg1 = (inetKEY *) DatumGetPointer(x); + inetKEY *arg2 = (inetKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (arg1->lower < arg2->lower) + return -1; + else if (arg1->lower > arg2->lower) + return 1; + else + return 0; +} + +Datum +gbt_inet_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_inet_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_int2.c b/contrib/btree_gist/btree_int2.c index 1751a6c055d89..33eccdedd7049 100644 --- a/contrib/btree_gist/btree_int2.c +++ b/contrib/btree_gist/btree_int2.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "common/int.h" +#include "utils/sortsupport.h" typedef struct int16key { @@ -13,9 +14,7 @@ typedef struct int16key int16 upper; } int16KEY; -/* -** int16 ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_int2_compress); PG_FUNCTION_INFO_V1(gbt_int2_fetch); PG_FUNCTION_INFO_V1(gbt_int2_union); @@ -24,6 +23,8 @@ PG_FUNCTION_INFO_V1(gbt_int2_consistent); PG_FUNCTION_INFO_V1(gbt_int2_distance); PG_FUNCTION_INFO_V1(gbt_int2_penalty); PG_FUNCTION_INFO_V1(gbt_int2_same); +PG_FUNCTION_INFO_V1(gbt_int2_sortsupport); + static bool gbt_int2gt(const void *a, const void *b, FmgrInfo *flinfo) @@ -112,10 +113,9 @@ int2_dist(PG_FUNCTION_ARGS) /************************************************** - * int16 ops + * GiST support functions **************************************************/ - Datum gbt_int2_compress(PG_FUNCTION_ARGS) { @@ -154,7 +154,6 @@ gbt_int2_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_int2_distance(PG_FUNCTION_ARGS) { @@ -172,7 +171,6 @@ gbt_int2_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_int2_union(PG_FUNCTION_ARGS) { @@ -183,7 +181,6 @@ gbt_int2_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_int2_penalty(PG_FUNCTION_ARGS) { @@ -214,3 +211,27 @@ gbt_int2_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_int2_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + int16KEY *arg1 = (int16KEY *) DatumGetPointer(x); + int16KEY *arg2 = (int16KEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (arg1->lower < arg2->lower) + return -1; + else if (arg1->lower > arg2->lower) + return 1; + else + return 0; +} + +Datum +gbt_int2_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_int2_ssup_cmp; + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_int4.c b/contrib/btree_gist/btree_int4.c index 90d183be6e82b..a82cee9a58a8c 100644 --- a/contrib/btree_gist/btree_int4.c +++ b/contrib/btree_gist/btree_int4.c @@ -2,10 +2,10 @@ * contrib/btree_gist/btree_int4.c */ #include "postgres.h" - #include "btree_gist.h" #include "btree_utils_num.h" #include "common/int.h" +#include "utils/sortsupport.h" typedef struct int32key { @@ -13,9 +13,7 @@ typedef struct int32key int32 upper; } int32KEY; -/* -** int32 ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_int4_compress); PG_FUNCTION_INFO_V1(gbt_int4_fetch); PG_FUNCTION_INFO_V1(gbt_int4_union); @@ -24,7 +22,7 @@ PG_FUNCTION_INFO_V1(gbt_int4_consistent); PG_FUNCTION_INFO_V1(gbt_int4_distance); PG_FUNCTION_INFO_V1(gbt_int4_penalty); PG_FUNCTION_INFO_V1(gbt_int4_same); - +PG_FUNCTION_INFO_V1(gbt_int4_sortsupport); static bool gbt_int4gt(const void *a, const void *b, FmgrInfo *flinfo) @@ -113,10 +111,9 @@ int4_dist(PG_FUNCTION_ARGS) /************************************************** - * int32 ops + * GiST support functions **************************************************/ - Datum gbt_int4_compress(PG_FUNCTION_ARGS) { @@ -155,7 +152,6 @@ gbt_int4_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_int4_distance(PG_FUNCTION_ARGS) { @@ -173,7 +169,6 @@ gbt_int4_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_int4_union(PG_FUNCTION_ARGS) { @@ -184,7 +179,6 @@ gbt_int4_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_int4_penalty(PG_FUNCTION_ARGS) { @@ -215,3 +209,27 @@ gbt_int4_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_int4_ssup_cmp(Datum a, Datum b, SortSupport ssup) +{ + int32KEY *ia = (int32KEY *) DatumGetPointer(a); + int32KEY *ib = (int32KEY *) DatumGetPointer(b); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (ia->lower < ib->lower) + return -1; + else if (ia->lower > ib->lower) + return 1; + else + return 0; +} + +Datum +gbt_int4_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_int4_ssup_cmp; + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_int8.c b/contrib/btree_gist/btree_int8.c index 661cf8189fc54..f0c56e017269a 100644 --- a/contrib/btree_gist/btree_int8.c +++ b/contrib/btree_gist/btree_int8.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "common/int.h" +#include "utils/sortsupport.h" typedef struct int64key { @@ -13,9 +14,7 @@ typedef struct int64key int64 upper; } int64KEY; -/* -** int64 ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_int8_compress); PG_FUNCTION_INFO_V1(gbt_int8_fetch); PG_FUNCTION_INFO_V1(gbt_int8_union); @@ -24,6 +23,7 @@ PG_FUNCTION_INFO_V1(gbt_int8_consistent); PG_FUNCTION_INFO_V1(gbt_int8_distance); PG_FUNCTION_INFO_V1(gbt_int8_penalty); PG_FUNCTION_INFO_V1(gbt_int8_same); +PG_FUNCTION_INFO_V1(gbt_int8_sortsupport); static bool @@ -113,10 +113,9 @@ int8_dist(PG_FUNCTION_ARGS) /************************************************** - * int64 ops + * GiST support functions **************************************************/ - Datum gbt_int8_compress(PG_FUNCTION_ARGS) { @@ -155,7 +154,6 @@ gbt_int8_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_int8_distance(PG_FUNCTION_ARGS) { @@ -173,7 +171,6 @@ gbt_int8_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_int8_union(PG_FUNCTION_ARGS) { @@ -184,7 +181,6 @@ gbt_int8_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_int8_penalty(PG_FUNCTION_ARGS) { @@ -215,3 +211,28 @@ gbt_int8_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_int8_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + int64KEY *arg1 = (int64KEY *) DatumGetPointer(x); + int64KEY *arg2 = (int64KEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (arg1->lower < arg2->lower) + return -1; + else if (arg1->lower > arg2->lower) + return 1; + else + return 0; + +} + +Datum +gbt_int8_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_int8_ssup_cmp; + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_interval.c b/contrib/btree_gist/btree_interval.c index 8f99a4169652b..b5e365c6e09b4 100644 --- a/contrib/btree_gist/btree_interval.c +++ b/contrib/btree_gist/btree_interval.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "utils/fmgrprotos.h" +#include "utils/sortsupport.h" #include "utils/timestamp.h" typedef struct @@ -14,10 +15,7 @@ typedef struct upper; } intvKEY; - -/* -** Interval ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_intv_compress); PG_FUNCTION_INFO_V1(gbt_intv_fetch); PG_FUNCTION_INFO_V1(gbt_intv_decompress); @@ -27,6 +25,7 @@ PG_FUNCTION_INFO_V1(gbt_intv_consistent); PG_FUNCTION_INFO_V1(gbt_intv_distance); PG_FUNCTION_INFO_V1(gbt_intv_penalty); PG_FUNCTION_INFO_V1(gbt_intv_same); +PG_FUNCTION_INFO_V1(gbt_intv_sortsupport); static bool @@ -137,10 +136,9 @@ interval_dist(PG_FUNCTION_ARGS) /************************************************** - * interval ops + * GiST support functions **************************************************/ - Datum gbt_intv_compress(PG_FUNCTION_ARGS) { @@ -295,3 +293,26 @@ gbt_intv_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_intv_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + intvKEY *arg1 = (intvKEY *) DatumGetPointer(x); + intvKEY *arg2 = (intvKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(interval_cmp, + IntervalPGetDatum(&arg1->lower), + IntervalPGetDatum(&arg2->lower))); +} + +Datum +gbt_intv_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_intv_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_macaddr.c b/contrib/btree_gist/btree_macaddr.c index 558cfa2172fe7..3b2f26719d5dc 100644 --- a/contrib/btree_gist/btree_macaddr.c +++ b/contrib/btree_gist/btree_macaddr.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "utils/fmgrprotos.h" #include "utils/inet.h" +#include "utils/sortsupport.h" typedef struct { @@ -15,9 +16,7 @@ typedef struct char pad[4]; /* make struct size = sizeof(gbtreekey16) */ } macKEY; -/* -** OID ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_macad_compress); PG_FUNCTION_INFO_V1(gbt_macad_fetch); PG_FUNCTION_INFO_V1(gbt_macad_union); @@ -25,6 +24,7 @@ PG_FUNCTION_INFO_V1(gbt_macad_picksplit); PG_FUNCTION_INFO_V1(gbt_macad_consistent); PG_FUNCTION_INFO_V1(gbt_macad_penalty); PG_FUNCTION_INFO_V1(gbt_macad_same); +PG_FUNCTION_INFO_V1(gbt_macaddr_sortsupport); static bool @@ -88,11 +88,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * macaddr ops + * GiST support functions **************************************************/ - - static uint64 mac_2_uint64(macaddr *m) { @@ -105,8 +103,6 @@ mac_2_uint64(macaddr *m) return res; } - - Datum gbt_macad_compress(PG_FUNCTION_ARGS) { @@ -194,3 +190,26 @@ gbt_macad_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_macaddr_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + macKEY *arg1 = (macKEY *) DatumGetPointer(x); + macKEY *arg2 = (macKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(macaddr_cmp, + MacaddrPGetDatum(&arg1->lower), + MacaddrPGetDatum(&arg2->lower))); +} + +Datum +gbt_macaddr_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_macaddr_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_macaddr8.c b/contrib/btree_gist/btree_macaddr8.c index 5d0c5509f5169..f2b104617e680 100644 --- a/contrib/btree_gist/btree_macaddr8.c +++ b/contrib/btree_gist/btree_macaddr8.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "utils/fmgrprotos.h" #include "utils/inet.h" +#include "utils/sortsupport.h" typedef struct { @@ -15,9 +16,7 @@ typedef struct /* make struct size = sizeof(gbtreekey16) */ } mac8KEY; -/* -** OID ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_macad8_compress); PG_FUNCTION_INFO_V1(gbt_macad8_fetch); PG_FUNCTION_INFO_V1(gbt_macad8_union); @@ -25,7 +24,7 @@ PG_FUNCTION_INFO_V1(gbt_macad8_picksplit); PG_FUNCTION_INFO_V1(gbt_macad8_consistent); PG_FUNCTION_INFO_V1(gbt_macad8_penalty); PG_FUNCTION_INFO_V1(gbt_macad8_same); - +PG_FUNCTION_INFO_V1(gbt_macad8_sortsupport); static bool gbt_macad8gt(const void *a, const void *b, FmgrInfo *flinfo) @@ -88,11 +87,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * macaddr ops + * GiST support functions **************************************************/ - - static uint64 mac8_2_uint64(macaddr8 *m) { @@ -105,8 +102,6 @@ mac8_2_uint64(macaddr8 *m) return res; } - - Datum gbt_macad8_compress(PG_FUNCTION_ARGS) { @@ -145,7 +140,6 @@ gbt_macad8_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_macad8_union(PG_FUNCTION_ARGS) { @@ -156,7 +150,6 @@ gbt_macad8_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_macad8_penalty(PG_FUNCTION_ARGS) { @@ -194,3 +187,26 @@ gbt_macad8_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_macaddr8_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + mac8KEY *arg1 = (mac8KEY *) DatumGetPointer(x); + mac8KEY *arg2 = (mac8KEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(macaddr8_cmp, + Macaddr8PGetDatum(&arg1->lower), + Macaddr8PGetDatum(&arg2->lower))); +} + +Datum +gbt_macad8_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_macaddr8_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_numeric.c b/contrib/btree_gist/btree_numeric.c index d533648a295a8..a39c05d9da1cf 100644 --- a/contrib/btree_gist/btree_numeric.c +++ b/contrib/btree_gist/btree_numeric.c @@ -11,16 +11,16 @@ #include "utils/builtins.h" #include "utils/numeric.h" #include "utils/rel.h" +#include "utils/sortsupport.h" -/* -** Bytea ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_numeric_compress); PG_FUNCTION_INFO_V1(gbt_numeric_union); PG_FUNCTION_INFO_V1(gbt_numeric_picksplit); PG_FUNCTION_INFO_V1(gbt_numeric_consistent); PG_FUNCTION_INFO_V1(gbt_numeric_penalty); PG_FUNCTION_INFO_V1(gbt_numeric_same); +PG_FUNCTION_INFO_V1(gbt_numeric_sortsupport); /* define for comparison */ @@ -90,10 +90,9 @@ static const gbtree_vinfo tinfo = /************************************************** - * Text ops + * GiST support functions **************************************************/ - Datum gbt_numeric_compress(PG_FUNCTION_ARGS) { @@ -102,8 +101,6 @@ gbt_numeric_compress(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_var_compress(entry, &tinfo)); } - - Datum gbt_numeric_consistent(PG_FUNCTION_ARGS) { @@ -125,8 +122,6 @@ gbt_numeric_consistent(PG_FUNCTION_ARGS) PG_RETURN_BOOL(retval); } - - Datum gbt_numeric_union(PG_FUNCTION_ARGS) { @@ -137,7 +132,6 @@ gbt_numeric_union(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_numeric_same(PG_FUNCTION_ARGS) { @@ -149,7 +143,6 @@ gbt_numeric_same(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_numeric_penalty(PG_FUNCTION_ARGS) { @@ -215,8 +208,6 @@ gbt_numeric_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - - Datum gbt_numeric_picksplit(PG_FUNCTION_ARGS) { @@ -227,3 +218,35 @@ gbt_numeric_picksplit(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(v); } + +static int +gbt_numeric_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + GBT_VARKEY *key1 = PG_DETOAST_DATUM(x); + GBT_VARKEY *key2 = PG_DETOAST_DATUM(y); + + GBT_VARKEY_R arg1 = gbt_var_key_readable(key1); + GBT_VARKEY_R arg2 = gbt_var_key_readable(key2); + Datum result; + + /* for leaf items we expect lower == upper, so only compare lower */ + result = DirectFunctionCall2(numeric_cmp, + PointerGetDatum(arg1.lower), + PointerGetDatum(arg2.lower)); + + GBT_FREE_IF_COPY(key1, x); + GBT_FREE_IF_COPY(key2, y); + + return DatumGetInt32(result); +} + +Datum +gbt_numeric_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_numeric_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_oid.c b/contrib/btree_gist/btree_oid.c index d1976f4f0910d..ffe0d7983e40f 100644 --- a/contrib/btree_gist/btree_oid.c +++ b/contrib/btree_gist/btree_oid.c @@ -5,6 +5,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" +#include "utils/sortsupport.h" typedef struct { @@ -12,9 +13,7 @@ typedef struct Oid upper; } oidKEY; -/* -** OID ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_oid_compress); PG_FUNCTION_INFO_V1(gbt_oid_fetch); PG_FUNCTION_INFO_V1(gbt_oid_union); @@ -23,6 +22,7 @@ PG_FUNCTION_INFO_V1(gbt_oid_consistent); PG_FUNCTION_INFO_V1(gbt_oid_distance); PG_FUNCTION_INFO_V1(gbt_oid_penalty); PG_FUNCTION_INFO_V1(gbt_oid_same); +PG_FUNCTION_INFO_V1(gbt_oid_sortsupport); static bool @@ -113,10 +113,9 @@ oid_dist(PG_FUNCTION_ARGS) /************************************************** - * Oid ops + * GiST support functions **************************************************/ - Datum gbt_oid_compress(PG_FUNCTION_ARGS) { @@ -155,7 +154,6 @@ gbt_oid_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_oid_distance(PG_FUNCTION_ARGS) { @@ -173,7 +171,6 @@ gbt_oid_distance(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_oid_union(PG_FUNCTION_ARGS) { @@ -184,7 +181,6 @@ gbt_oid_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_oid_penalty(PG_FUNCTION_ARGS) { @@ -215,3 +211,29 @@ gbt_oid_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_oid_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + oidKEY *arg1 = (oidKEY *) DatumGetPointer(x); + oidKEY *arg2 = (oidKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + if (arg1->lower > arg2->lower) + return 1; + else if (arg1->lower < arg2->lower) + return -1; + else + return 0; +} + +Datum +gbt_oid_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_oid_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_text.c b/contrib/btree_gist/btree_text.c index 8f80f54240f8f..ddee42504a192 100644 --- a/contrib/btree_gist/btree_text.c +++ b/contrib/btree_gist/btree_text.c @@ -7,10 +7,9 @@ #include "btree_utils_var.h" #include "mb/pg_wchar.h" #include "utils/fmgrprotos.h" +#include "utils/sortsupport.h" -/* -** Text ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_text_compress); PG_FUNCTION_INFO_V1(gbt_bpchar_compress); PG_FUNCTION_INFO_V1(gbt_text_union); @@ -19,6 +18,8 @@ PG_FUNCTION_INFO_V1(gbt_text_consistent); PG_FUNCTION_INFO_V1(gbt_bpchar_consistent); PG_FUNCTION_INFO_V1(gbt_text_penalty); PG_FUNCTION_INFO_V1(gbt_text_same); +PG_FUNCTION_INFO_V1(gbt_text_sortsupport); +PG_FUNCTION_INFO_V1(gbt_bpchar_sortsupport); /* define for comparison */ @@ -163,10 +164,9 @@ static gbtree_vinfo bptinfo = /************************************************** - * Text ops + * GiST support functions **************************************************/ - Datum gbt_text_compress(PG_FUNCTION_ARGS) { @@ -187,8 +187,6 @@ gbt_bpchar_compress(PG_FUNCTION_ARGS) return gbt_text_compress(fcinfo); } - - Datum gbt_text_consistent(PG_FUNCTION_ARGS) { @@ -216,7 +214,6 @@ gbt_text_consistent(PG_FUNCTION_ARGS) PG_RETURN_BOOL(retval); } - Datum gbt_bpchar_consistent(PG_FUNCTION_ARGS) { @@ -243,7 +240,6 @@ gbt_bpchar_consistent(PG_FUNCTION_ARGS) PG_RETURN_BOOL(retval); } - Datum gbt_text_union(PG_FUNCTION_ARGS) { @@ -254,7 +250,6 @@ gbt_text_union(PG_FUNCTION_ARGS) &tinfo, fcinfo->flinfo)); } - Datum gbt_text_picksplit(PG_FUNCTION_ARGS) { @@ -277,7 +272,6 @@ gbt_text_same(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_text_penalty(PG_FUNCTION_ARGS) { @@ -288,3 +282,69 @@ gbt_text_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_var_penalty(result, o, n, PG_GET_COLLATION(), &tinfo, fcinfo->flinfo)); } + +static int +gbt_text_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + GBT_VARKEY *key1 = PG_DETOAST_DATUM(x); + GBT_VARKEY *key2 = PG_DETOAST_DATUM(y); + + GBT_VARKEY_R arg1 = gbt_var_key_readable(key1); + GBT_VARKEY_R arg2 = gbt_var_key_readable(key2); + Datum result; + + /* for leaf items we expect lower == upper, so only compare lower */ + result = DirectFunctionCall2Coll(bttextcmp, + ssup->ssup_collation, + PointerGetDatum(arg1.lower), + PointerGetDatum(arg2.lower)); + + GBT_FREE_IF_COPY(key1, x); + GBT_FREE_IF_COPY(key2, y); + + return DatumGetInt32(result); +} + +Datum +gbt_text_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_text_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} + +static int +gbt_bpchar_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + GBT_VARKEY *key1 = PG_DETOAST_DATUM(x); + GBT_VARKEY *key2 = PG_DETOAST_DATUM(y); + + GBT_VARKEY_R arg1 = gbt_var_key_readable(key1); + GBT_VARKEY_R arg2 = gbt_var_key_readable(key2); + Datum result; + + /* for leaf items we expect lower == upper, so only compare lower */ + result = DirectFunctionCall2Coll(bpcharcmp, + ssup->ssup_collation, + PointerGetDatum(arg1.lower), + PointerGetDatum(arg2.lower)); + + GBT_FREE_IF_COPY(key1, x); + GBT_FREE_IF_COPY(key2, y); + + return DatumGetInt32(result); +} + +Datum +gbt_bpchar_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_bpchar_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_time.c b/contrib/btree_gist/btree_time.c index 2f7859340f641..1dba95057ba9f 100644 --- a/contrib/btree_gist/btree_time.c +++ b/contrib/btree_gist/btree_time.c @@ -7,6 +7,7 @@ #include "btree_utils_num.h" #include "utils/fmgrprotos.h" #include "utils/date.h" +#include "utils/sortsupport.h" #include "utils/timestamp.h" typedef struct @@ -15,9 +16,7 @@ typedef struct TimeADT upper; } timeKEY; -/* -** time ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_time_compress); PG_FUNCTION_INFO_V1(gbt_timetz_compress); PG_FUNCTION_INFO_V1(gbt_time_fetch); @@ -28,6 +27,8 @@ PG_FUNCTION_INFO_V1(gbt_time_distance); PG_FUNCTION_INFO_V1(gbt_timetz_consistent); PG_FUNCTION_INFO_V1(gbt_time_penalty); PG_FUNCTION_INFO_V1(gbt_time_same); +PG_FUNCTION_INFO_V1(gbt_time_sortsupport); +PG_FUNCTION_INFO_V1(gbt_timetz_sortsupport); #ifdef USE_FLOAT8_BYVAL @@ -92,8 +93,6 @@ gbt_timelt(const void *a, const void *b, FmgrInfo *flinfo) TimeADTGetDatumFast(*bb))); } - - static int gbt_timekey_cmp(const void *a, const void *b, FmgrInfo *flinfo) { @@ -150,11 +149,9 @@ time_dist(PG_FUNCTION_ARGS) /************************************************** - * time ops + * GiST support functions **************************************************/ - - Datum gbt_time_compress(PG_FUNCTION_ARGS) { @@ -163,7 +160,6 @@ gbt_time_compress(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_compress(entry, &tinfo)); } - Datum gbt_timetz_compress(PG_FUNCTION_ARGS) { @@ -262,7 +258,6 @@ gbt_timetz_consistent(PG_FUNCTION_ARGS) GIST_LEAF(entry), &tinfo, fcinfo->flinfo)); } - Datum gbt_time_union(PG_FUNCTION_ARGS) { @@ -273,7 +268,6 @@ gbt_time_union(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_union(out, entryvec, &tinfo, fcinfo->flinfo)); } - Datum gbt_time_penalty(PG_FUNCTION_ARGS) { @@ -313,7 +307,6 @@ gbt_time_penalty(PG_FUNCTION_ARGS) PG_RETURN_POINTER(result); } - Datum gbt_time_picksplit(PG_FUNCTION_ARGS) { @@ -332,3 +325,26 @@ gbt_time_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_timekey_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + timeKEY *arg1 = (timeKEY *) DatumGetPointer(x); + timeKEY *arg2 = (timeKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(time_cmp, + TimeADTGetDatumFast(arg1->lower), + TimeADTGetDatumFast(arg2->lower))); +} + +Datum +gbt_time_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_timekey_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_ts.c b/contrib/btree_gist/btree_ts.c index 9e0d979dda989..eb899c4d21363 100644 --- a/contrib/btree_gist/btree_ts.c +++ b/contrib/btree_gist/btree_ts.c @@ -10,6 +10,7 @@ #include "utils/fmgrprotos.h" #include "utils/timestamp.h" #include "utils/float.h" +#include "utils/sortsupport.h" typedef struct { @@ -17,9 +18,7 @@ typedef struct Timestamp upper; } tsKEY; -/* -** timestamp ops -*/ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_ts_compress); PG_FUNCTION_INFO_V1(gbt_tstz_compress); PG_FUNCTION_INFO_V1(gbt_ts_fetch); @@ -31,6 +30,7 @@ PG_FUNCTION_INFO_V1(gbt_tstz_consistent); PG_FUNCTION_INFO_V1(gbt_tstz_distance); PG_FUNCTION_INFO_V1(gbt_ts_penalty); PG_FUNCTION_INFO_V1(gbt_ts_same); +PG_FUNCTION_INFO_V1(gbt_ts_sortsupport); #ifdef USE_FLOAT8_BYVAL @@ -40,6 +40,8 @@ PG_FUNCTION_INFO_V1(gbt_ts_same); #endif +/* define for comparison */ + static bool gbt_tsgt(const void *a, const void *b, FmgrInfo *flinfo) { @@ -95,7 +97,6 @@ gbt_tslt(const void *a, const void *b, FmgrInfo *flinfo) TimestampGetDatumFast(*bb))); } - static int gbt_tskey_cmp(const void *a, const void *b, FmgrInfo *flinfo) { @@ -126,7 +127,6 @@ gbt_ts_dist(const void *a, const void *b, FmgrInfo *flinfo) return fabs(INTERVAL_TO_SEC(i)); } - static const gbtree_ninfo tinfo = { gbt_t_ts, @@ -190,12 +190,10 @@ tstz_dist(PG_FUNCTION_ARGS) PG_RETURN_INTERVAL_P(abs_interval(r)); } - /************************************************** - * timestamp ops + * GiST support functions **************************************************/ - static inline Timestamp tstz_to_ts_gmt(TimestampTz ts) { @@ -212,7 +210,6 @@ gbt_ts_compress(PG_FUNCTION_ARGS) PG_RETURN_POINTER(gbt_num_compress(entry, &tinfo)); } - Datum gbt_tstz_compress(PG_FUNCTION_ARGS) { @@ -398,3 +395,26 @@ gbt_ts_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_ts_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + tsKEY *arg1 = (tsKEY *) DatumGetPointer(x); + tsKEY *arg2 = (tsKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return DatumGetInt32(DirectFunctionCall2(timestamp_cmp, + TimestampGetDatumFast(arg1->lower), + TimestampGetDatumFast(arg2->lower))); +} + +Datum +gbt_ts_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_ts_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/btree_utils_var.h b/contrib/btree_gist/btree_utils_var.h index 9302d41ced68f..75ad33d24fcd1 100644 --- a/contrib/btree_gist/btree_utils_var.h +++ b/contrib/btree_gist/btree_utils_var.h @@ -41,7 +41,17 @@ typedef struct GBT_VARKEY *(*f_l2n) (GBT_VARKEY *, FmgrInfo *flinfo); /* convert leaf to node */ } gbtree_vinfo; - +/* + * Free ptr1 in case its a copy of ptr2. + * + * This is adapted from varlena's PG_FREE_IF_COPY, though doesn't require + * fcinfo access. + */ +#define GBT_FREE_IF_COPY(ptr1, ptr2) \ + do { \ + if ((Pointer) (ptr1) != DatumGetPointer(ptr2)) \ + pfree(ptr1); \ + } while (0) extern GBT_VARKEY_R gbt_var_key_readable(const GBT_VARKEY *k); diff --git a/contrib/btree_gist/btree_uuid.c b/contrib/btree_gist/btree_uuid.c index f4c5c6e58929e..23a307a6a71d5 100644 --- a/contrib/btree_gist/btree_uuid.c +++ b/contrib/btree_gist/btree_uuid.c @@ -6,6 +6,7 @@ #include "btree_gist.h" #include "btree_utils_num.h" #include "port/pg_bswap.h" +#include "utils/sortsupport.h" #include "utils/uuid.h" typedef struct @@ -15,9 +16,7 @@ typedef struct } uuidKEY; -/* - * UUID ops - */ +/* GiST support functions */ PG_FUNCTION_INFO_V1(gbt_uuid_compress); PG_FUNCTION_INFO_V1(gbt_uuid_fetch); PG_FUNCTION_INFO_V1(gbt_uuid_union); @@ -25,6 +24,7 @@ PG_FUNCTION_INFO_V1(gbt_uuid_picksplit); PG_FUNCTION_INFO_V1(gbt_uuid_consistent); PG_FUNCTION_INFO_V1(gbt_uuid_penalty); PG_FUNCTION_INFO_V1(gbt_uuid_same); +PG_FUNCTION_INFO_V1(gbt_uuid_sortsupport); static int @@ -93,10 +93,9 @@ static const gbtree_ninfo tinfo = /************************************************** - * uuid ops + * GiST support functions **************************************************/ - Datum gbt_uuid_compress(PG_FUNCTION_ARGS) { @@ -233,3 +232,24 @@ gbt_uuid_same(PG_FUNCTION_ARGS) *result = gbt_num_same((void *) b1, (void *) b2, &tinfo, fcinfo->flinfo); PG_RETURN_POINTER(result); } + +static int +gbt_uuid_ssup_cmp(Datum x, Datum y, SortSupport ssup) +{ + uuidKEY *arg1 = (uuidKEY *) DatumGetPointer(x); + uuidKEY *arg2 = (uuidKEY *) DatumGetPointer(y); + + /* for leaf items we expect lower == upper, so only compare lower */ + return uuid_internal_cmp(&arg1->lower, &arg2->lower); +} + +Datum +gbt_uuid_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = gbt_uuid_ssup_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} diff --git a/contrib/btree_gist/expected/enum.out b/contrib/btree_gist/expected/enum.out index c4b769dd4b77c..5782f43883859 100644 --- a/contrib/btree_gist/expected/enum.out +++ b/contrib/btree_gist/expected/enum.out @@ -1,5 +1,8 @@ -- enum check -create type rainbow as enum ('r','o','y','g','b','i','v'); +create type rainbow as enum ('r','o','g','b','i','v'); +-- enum values added later take some different codepaths internally, +-- so make sure we have coverage for those too +alter type rainbow add value 'y' before 'g'; CREATE TABLE enumtmp (a rainbow); \copy enumtmp from 'data/enum.data' SET enable_seqscan=on; diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build index f4fa9574f1fd7..89932dd3844ee 100644 --- a/contrib/btree_gist/meson.build +++ b/contrib/btree_gist/meson.build @@ -51,6 +51,7 @@ install_data( 'btree_gist--1.5--1.6.sql', 'btree_gist--1.6--1.7.sql', 'btree_gist--1.7--1.8.sql', + 'btree_gist--1.8--1.9.sql', kwargs: contrib_data_args, ) diff --git a/contrib/btree_gist/sql/enum.sql b/contrib/btree_gist/sql/enum.sql index 476211e97952c..d662cb6322102 100644 --- a/contrib/btree_gist/sql/enum.sql +++ b/contrib/btree_gist/sql/enum.sql @@ -1,6 +1,10 @@ -- enum check -create type rainbow as enum ('r','o','y','g','b','i','v'); +create type rainbow as enum ('r','o','g','b','i','v'); + +-- enum values added later take some different codepaths internally, +-- so make sure we have coverage for those too +alter type rainbow add value 'y' before 'g'; CREATE TABLE enumtmp (a rainbow); diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index c2e695e364e93..98d4e3d7dac4c 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -3094,6 +3094,13 @@ is_valid_dblink_option(const PQconninfoOption *options, const char *option, if (strcmp(opt->keyword, "client_encoding") == 0) return false; + /* + * Disallow OAuth options for now, since the builtin flow communicates on + * stderr by default and can't cache tokens yet. + */ + if (strncmp(opt->keyword, "oauth_", strlen("oauth_")) == 0) + return false; + /* * If the option is "user" or marked secure, it should be specified only * in USER MAPPING. Others should be specified only in SERVER. @@ -3211,7 +3218,7 @@ appendSCRAMKeysInfo(StringInfo buf) len = pg_b64_enc_len(sizeof(MyProcPort->scram_ClientKey)); /* don't forget the zero-terminator */ client_key = palloc0(len + 1); - encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ClientKey, + encoded_len = pg_b64_encode(MyProcPort->scram_ClientKey, sizeof(MyProcPort->scram_ClientKey), client_key, len); if (encoded_len < 0) @@ -3220,7 +3227,7 @@ appendSCRAMKeysInfo(StringInfo buf) len = pg_b64_enc_len(sizeof(MyProcPort->scram_ServerKey)); /* don't forget the zero-terminator */ server_key = palloc0(len + 1); - encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ServerKey, + encoded_len = pg_b64_encode(MyProcPort->scram_ServerKey, sizeof(MyProcPort->scram_ServerKey), server_key, len); if (encoded_len < 0) @@ -3228,7 +3235,7 @@ appendSCRAMKeysInfo(StringInfo buf) appendStringInfo(buf, "scram_client_key='%s' ", client_key); appendStringInfo(buf, "scram_server_key='%s' ", server_key); - appendStringInfo(buf, "require_auth='scram-sha-256' "); + appendStringInfoString(buf, "require_auth='scram-sha-256' "); pfree(client_key); pfree(server_key); diff --git a/contrib/dblink/expected/dblink.out b/contrib/dblink/expected/dblink.out index 7809f58d96b5f..c70c79574fd1d 100644 --- a/contrib/dblink/expected/dblink.out +++ b/contrib/dblink/expected/dblink.out @@ -898,6 +898,17 @@ CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (server 'localhost'); -- fail, can't specify server here ERROR: invalid option "server" CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (user :'USER'); +-- OAuth options are not allowed in either context +ALTER SERVER fdtest OPTIONS (ADD oauth_issuer 'https://example.com'); +ERROR: invalid option "oauth_issuer" +ALTER SERVER fdtest OPTIONS (ADD oauth_client_id 'myID'); +ERROR: invalid option "oauth_client_id" +ALTER USER MAPPING FOR public SERVER fdtest + OPTIONS (ADD oauth_issuer 'https://example.com'); +ERROR: invalid option "oauth_issuer" +ALTER USER MAPPING FOR public SERVER fdtest + OPTIONS (ADD oauth_client_id 'myID'); +ERROR: invalid option "oauth_client_id" GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user; GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO regress_dblink_user; SET SESSION AUTHORIZATION regress_dblink_user; diff --git a/contrib/dblink/sql/dblink.sql b/contrib/dblink/sql/dblink.sql index 7870ce5d5a43d..365b21036e854 100644 --- a/contrib/dblink/sql/dblink.sql +++ b/contrib/dblink/sql/dblink.sql @@ -469,6 +469,14 @@ CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (server 'localhost'); -- fail, can't specify server here CREATE USER MAPPING FOR public SERVER fdtest OPTIONS (user :'USER'); +-- OAuth options are not allowed in either context +ALTER SERVER fdtest OPTIONS (ADD oauth_issuer 'https://example.com'); +ALTER SERVER fdtest OPTIONS (ADD oauth_client_id 'myID'); +ALTER USER MAPPING FOR public SERVER fdtest + OPTIONS (ADD oauth_issuer 'https://example.com'); +ALTER USER MAPPING FOR public SERVER fdtest + OPTIONS (ADD oauth_client_id 'myID'); + GRANT USAGE ON FOREIGN SERVER fdtest TO regress_dblink_user; GRANT EXECUTE ON FUNCTION dblink_connect_u(text, text) TO regress_dblink_user; diff --git a/contrib/dblink/t/001_auth_scram.pl b/contrib/dblink/t/001_auth_scram.pl index b35d02b660f51..ef3dea6c5ad19 100644 --- a/contrib/dblink/t/001_auth_scram.pl +++ b/contrib/dblink/t/001_auth_scram.pl @@ -251,4 +251,3 @@ sub setup_table } done_testing(); - diff --git a/contrib/hstore_plpython/hstore_plpython.c b/contrib/hstore_plpython/hstore_plpython.c index 8812fb3f3e445..e2bfc6da38e18 100644 --- a/contrib/hstore_plpython/hstore_plpython.c +++ b/contrib/hstore_plpython/hstore_plpython.c @@ -3,7 +3,7 @@ #include "fmgr.h" #include "hstore/hstore.h" #include "plpy_typeio.h" -#include "plpython.h" +#include "plpy_util.h" PG_MODULE_MAGIC_EXT( .name = "hstore_plpython", diff --git a/contrib/intarray/expected/_int.out b/contrib/intarray/expected/_int.out index b39ab82d43d50..d0e68d0447fb7 100644 --- a/contrib/intarray/expected/_int.out +++ b/contrib/intarray/expected/_int.out @@ -492,6 +492,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + SET enable_seqscan = off; -- not all of these would use index by default CREATE INDEX text_idx on test__int using gist ( a gist__int_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; @@ -566,6 +572,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + INSERT INTO test__int SELECT array(SELECT x FROM generate_series(1, 1001) x); -- should fail ERROR: input array is too big (199 maximum allowed, 1001 current), use gist__intbig_ops opclass instead DROP INDEX text_idx; @@ -648,6 +660,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist (a gist__intbig_ops(siglen = 0)); ERROR: value 0 out of bounds for option "siglen" @@ -728,6 +746,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; @@ -802,6 +826,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gin ( a gin__int_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; @@ -876,6 +906,12 @@ SELECT count(*) from test__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + DROP INDEX text_idx; -- Repeat the same queries with an extended data set. The data set is the -- same that we used before, except that each element in the array is @@ -968,4 +1004,10 @@ SELECT count(*) from more__int WHERE a @@ '!20 & !21'; 6344 (1 row) +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; + count +------- + 12 +(1 row) + RESET enable_seqscan; diff --git a/contrib/intarray/sql/_int.sql b/contrib/intarray/sql/_int.sql index 2d4ed1c9ae24f..5668ab4070453 100644 --- a/contrib/intarray/sql/_int.sql +++ b/contrib/intarray/sql/_int.sql @@ -107,6 +107,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; SET enable_seqscan = off; -- not all of these would use index by default @@ -124,6 +125,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; INSERT INTO test__int SELECT array(SELECT x FROM generate_series(1, 1001) x); -- should fail @@ -144,6 +146,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist (a gist__intbig_ops(siglen = 0)); @@ -162,6 +165,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops ); @@ -178,6 +182,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gin ( a gin__int_ops ); @@ -194,6 +199,7 @@ SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from test__int WHERE a @@ '20 | !21'; SELECT count(*) from test__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; DROP INDEX text_idx; @@ -229,6 +235,7 @@ SELECT count(*) from more__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from more__int WHERE a @@ '(20&23)|(50&68)'; SELECT count(*) from more__int WHERE a @@ '20 | !21'; SELECT count(*) from more__int WHERE a @@ '!20 & !21'; +SELECT count(*) from test__int WHERE a @@ '!2733 & (2738 | 254)'; RESET enable_seqscan; diff --git a/contrib/jsonb_plpython/jsonb_plpython.c b/contrib/jsonb_plpython/jsonb_plpython.c index 680445a006fb1..9383615abbfa3 100644 --- a/contrib/jsonb_plpython/jsonb_plpython.c +++ b/contrib/jsonb_plpython/jsonb_plpython.c @@ -2,7 +2,7 @@ #include "plpy_elog.h" #include "plpy_typeio.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/fmgrprotos.h" #include "utils/jsonb.h" #include "utils/numeric.h" diff --git a/contrib/ltree_plpython/ltree_plpython.c b/contrib/ltree_plpython/ltree_plpython.c index ba5926b8be678..0493aeb2423cc 100644 --- a/contrib/ltree_plpython/ltree_plpython.c +++ b/contrib/ltree_plpython/ltree_plpython.c @@ -2,7 +2,7 @@ #include "fmgr.h" #include "ltree/ltree.h" -#include "plpython.h" +#include "plpy_util.h" PG_MODULE_MAGIC_EXT( .name = "ltree_plpython", diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index aa8e1bd6df4a6..377ae30d1fa71 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -212,11 +212,8 @@ heap_page_items(PG_FUNCTION_ARGS) lp_offset + lp_len <= raw_page_size) { HeapTupleHeader tuphdr; - bytea *tuple_data_bytea; - int tuple_data_len; /* Extract information from the tuple header */ - tuphdr = (HeapTupleHeader) PageGetItem(page, id); values[4] = UInt32GetDatum(HeapTupleHeaderGetRawXmin(tuphdr)); @@ -228,31 +225,32 @@ heap_page_items(PG_FUNCTION_ARGS) values[9] = UInt32GetDatum(tuphdr->t_infomask); values[10] = UInt8GetDatum(tuphdr->t_hoff); - /* Copy raw tuple data into bytea attribute */ - tuple_data_len = lp_len - tuphdr->t_hoff; - tuple_data_bytea = (bytea *) palloc(tuple_data_len + VARHDRSZ); - SET_VARSIZE(tuple_data_bytea, tuple_data_len + VARHDRSZ); - memcpy(VARDATA(tuple_data_bytea), (char *) tuphdr + tuphdr->t_hoff, - tuple_data_len); - values[13] = PointerGetDatum(tuple_data_bytea); - /* * We already checked that the item is completely within the raw * page passed to us, with the length given in the line pointer. - * Let's check that t_hoff doesn't point over lp_len, before using - * it to access t_bits and oid. + * But t_hoff could be out of range, so check it before relying on + * it to fetch additional info. */ if (tuphdr->t_hoff >= SizeofHeapTupleHeader && tuphdr->t_hoff <= lp_len && tuphdr->t_hoff == MAXALIGN(tuphdr->t_hoff)) { + int tuple_data_len; + bytea *tuple_data_bytea; + + /* Copy null bitmask and OID, if present */ if (tuphdr->t_infomask & HEAP_HASNULL) { - int bits_len; - - bits_len = - BITMAPLEN(HeapTupleHeaderGetNatts(tuphdr)) * BITS_PER_BYTE; - values[11] = CStringGetTextDatum(bits_to_text(tuphdr->t_bits, bits_len)); + int bitmaplen; + + bitmaplen = BITMAPLEN(HeapTupleHeaderGetNatts(tuphdr)); + /* better range-check the attribute count, too */ + if (bitmaplen <= tuphdr->t_hoff - SizeofHeapTupleHeader) + values[11] = + CStringGetTextDatum(bits_to_text(tuphdr->t_bits, + bitmaplen * BITS_PER_BYTE)); + else + nulls[11] = true; } else nulls[11] = true; @@ -261,11 +259,22 @@ heap_page_items(PG_FUNCTION_ARGS) values[12] = HeapTupleHeaderGetOidOld(tuphdr); else nulls[12] = true; + + /* Copy raw tuple data into bytea attribute */ + tuple_data_len = lp_len - tuphdr->t_hoff; + tuple_data_bytea = (bytea *) palloc(tuple_data_len + VARHDRSZ); + SET_VARSIZE(tuple_data_bytea, tuple_data_len + VARHDRSZ); + if (tuple_data_len > 0) + memcpy(VARDATA(tuple_data_bytea), + (char *) tuphdr + tuphdr->t_hoff, + tuple_data_len); + values[13] = PointerGetDatum(tuple_data_bytea); } else { nulls[11] = true; nulls[12] = true; + nulls[13] = true; } } else diff --git a/contrib/pg_buffercache/Makefile b/contrib/pg_buffercache/Makefile index eae65ead9e502..5f748543e2ea2 100644 --- a/contrib/pg_buffercache/Makefile +++ b/contrib/pg_buffercache/Makefile @@ -8,10 +8,11 @@ OBJS = \ EXTENSION = pg_buffercache DATA = pg_buffercache--1.2.sql pg_buffercache--1.2--1.3.sql \ pg_buffercache--1.1--1.2.sql pg_buffercache--1.0--1.1.sql \ - pg_buffercache--1.3--1.4.sql pg_buffercache--1.4--1.5.sql + pg_buffercache--1.3--1.4.sql pg_buffercache--1.4--1.5.sql \ + pg_buffercache--1.5--1.6.sql PGFILEDESC = "pg_buffercache - monitoring of shared buffer cache in real-time" -REGRESS = pg_buffercache +REGRESS = pg_buffercache pg_buffercache_numa ifdef USE_PGXS PG_CONFIG = pg_config diff --git a/contrib/pg_buffercache/expected/pg_buffercache.out b/contrib/pg_buffercache/expected/pg_buffercache.out index b745dc69eaecf..9a9216dc7b1bf 100644 --- a/contrib/pg_buffercache/expected/pg_buffercache.out +++ b/contrib/pg_buffercache/expected/pg_buffercache.out @@ -55,3 +55,67 @@ SELECT count(*) > 0 FROM pg_buffercache_usage_counts(); t (1 row) +RESET role; +------ +---- Test pg_buffercache_evict* functions +------ +CREATE ROLE regress_buffercache_normal; +SET ROLE regress_buffercache_normal; +-- These should fail because they need to be called as SUPERUSER +SELECT * FROM pg_buffercache_evict(1); +ERROR: must be superuser to use pg_buffercache_evict() +SELECT * FROM pg_buffercache_evict_relation(1); +ERROR: must be superuser to use pg_buffercache_evict_relation() +SELECT * FROM pg_buffercache_evict_all(); +ERROR: must be superuser to use pg_buffercache_evict_all() +RESET ROLE; +-- These should return nothing, because these are STRICT functions +SELECT * FROM pg_buffercache_evict(NULL); + buffer_evicted | buffer_flushed +----------------+---------------- + | +(1 row) + +SELECT * FROM pg_buffercache_evict_relation(NULL); + buffers_evicted | buffers_flushed | buffers_skipped +-----------------+-----------------+----------------- + | | +(1 row) + +-- These should fail because they are not called by valid range of buffers +-- Number of the shared buffers are limited by max integer +SELECT 2147483647 max_buffers \gset +SELECT * FROM pg_buffercache_evict(-1); +ERROR: bad buffer ID: -1 +SELECT * FROM pg_buffercache_evict(0); +ERROR: bad buffer ID: 0 +SELECT * FROM pg_buffercache_evict(:max_buffers); +ERROR: bad buffer ID: 2147483647 +-- This should fail because pg_buffercache_evict_relation() doesn't accept +-- local relations +CREATE TEMP TABLE temp_pg_buffercache(); +SELECT * FROM pg_buffercache_evict_relation('temp_pg_buffercache'); +ERROR: relation uses local buffers, pg_buffercache_evict_relation() is intended to be used for shared buffers only +DROP TABLE temp_pg_buffercache; +-- These shouldn't fail +SELECT buffer_evicted IS NOT NULL FROM pg_buffercache_evict(1); + ?column? +---------- + t +(1 row) + +SELECT buffers_evicted IS NOT NULL FROM pg_buffercache_evict_all(); + ?column? +---------- + t +(1 row) + +CREATE TABLE shared_pg_buffercache(); +SELECT buffers_evicted IS NOT NULL FROM pg_buffercache_evict_relation('shared_pg_buffercache'); + ?column? +---------- + t +(1 row) + +DROP TABLE shared_pg_buffercache; +DROP ROLE regress_buffercache_normal; diff --git a/contrib/pg_buffercache/expected/pg_buffercache_numa.out b/contrib/pg_buffercache/expected/pg_buffercache_numa.out new file mode 100644 index 0000000000000..a10b331a55261 --- /dev/null +++ b/contrib/pg_buffercache/expected/pg_buffercache_numa.out @@ -0,0 +1,29 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +\quit +\endif +-- We expect at least one entry for each buffer +select count(*) >= (select setting::bigint + from pg_settings + where name = 'shared_buffers') +from pg_buffercache_numa; + ?column? +---------- + t +(1 row) + +-- Check that the functions / views can't be accessed by default. To avoid +-- having to create a dedicated user, use the pg_database_owner pseudo-role. +SET ROLE pg_database_owner; +SELECT count(*) > 0 FROM pg_buffercache_numa; +ERROR: permission denied for view pg_buffercache_numa +RESET role; +-- Check that pg_monitor is allowed to query view / function +SET ROLE pg_monitor; +SELECT count(*) > 0 FROM pg_buffercache_numa; + ?column? +---------- + t +(1 row) + +RESET role; diff --git a/contrib/pg_buffercache/expected/pg_buffercache_numa_1.out b/contrib/pg_buffercache/expected/pg_buffercache_numa_1.out new file mode 100644 index 0000000000000..6dd6824b4e4f3 --- /dev/null +++ b/contrib/pg_buffercache/expected/pg_buffercache_numa_1.out @@ -0,0 +1,3 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +\quit diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build index 12d1fe487172f..7cd039a1df9cb 100644 --- a/contrib/pg_buffercache/meson.build +++ b/contrib/pg_buffercache/meson.build @@ -23,6 +23,7 @@ install_data( 'pg_buffercache--1.2.sql', 'pg_buffercache--1.3--1.4.sql', 'pg_buffercache--1.4--1.5.sql', + 'pg_buffercache--1.5--1.6.sql', 'pg_buffercache.control', kwargs: contrib_data_args, ) @@ -34,6 +35,7 @@ tests += { 'regress': { 'sql': [ 'pg_buffercache', + 'pg_buffercache_numa', ], }, } diff --git a/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql b/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql new file mode 100644 index 0000000000000..458f054a69179 --- /dev/null +++ b/contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql @@ -0,0 +1,46 @@ +/* contrib/pg_buffercache/pg_buffercache--1.5--1.6.sql */ + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "ALTER EXTENSION pg_buffercache UPDATE TO '1.6'" to load this file. \quit + +-- Register the new functions. +CREATE OR REPLACE FUNCTION pg_buffercache_numa_pages() +RETURNS SETOF RECORD +AS 'MODULE_PATHNAME', 'pg_buffercache_numa_pages' +LANGUAGE C PARALLEL SAFE; + +-- Create a view for convenient access. +CREATE VIEW pg_buffercache_numa AS + SELECT P.* FROM pg_buffercache_numa_pages() AS P + (bufferid integer, os_page_num bigint, numa_node integer); + +-- Don't want these to be available to public. +REVOKE ALL ON FUNCTION pg_buffercache_numa_pages() FROM PUBLIC; +REVOKE ALL ON pg_buffercache_numa FROM PUBLIC; + +GRANT EXECUTE ON FUNCTION pg_buffercache_numa_pages() TO pg_monitor; +GRANT SELECT ON pg_buffercache_numa TO pg_monitor; + + +DROP FUNCTION pg_buffercache_evict(integer); +CREATE FUNCTION pg_buffercache_evict( + IN int, + OUT buffer_evicted boolean, + OUT buffer_flushed boolean) +AS 'MODULE_PATHNAME', 'pg_buffercache_evict' +LANGUAGE C PARALLEL SAFE VOLATILE STRICT; + +CREATE FUNCTION pg_buffercache_evict_relation( + IN regclass, + OUT buffers_evicted int4, + OUT buffers_flushed int4, + OUT buffers_skipped int4) +AS 'MODULE_PATHNAME', 'pg_buffercache_evict_relation' +LANGUAGE C PARALLEL SAFE VOLATILE STRICT; + +CREATE FUNCTION pg_buffercache_evict_all( + OUT buffers_evicted int4, + OUT buffers_flushed int4, + OUT buffers_skipped int4) +AS 'MODULE_PATHNAME', 'pg_buffercache_evict_all' +LANGUAGE C PARALLEL SAFE VOLATILE; diff --git a/contrib/pg_buffercache/pg_buffercache.control b/contrib/pg_buffercache/pg_buffercache.control index 5ee875f77dd90..b030ba3a6faba 100644 --- a/contrib/pg_buffercache/pg_buffercache.control +++ b/contrib/pg_buffercache/pg_buffercache.control @@ -1,5 +1,5 @@ # pg_buffercache extension comment = 'examine the shared buffer cache' -default_version = '1.5' +default_version = '1.6' module_pathname = '$libdir/pg_buffercache' relocatable = true diff --git a/contrib/pg_buffercache/pg_buffercache_pages.c b/contrib/pg_buffercache/pg_buffercache_pages.c index 62602af1775f3..4b007f6e1b06a 100644 --- a/contrib/pg_buffercache/pg_buffercache_pages.c +++ b/contrib/pg_buffercache/pg_buffercache_pages.c @@ -9,16 +9,24 @@ #include "postgres.h" #include "access/htup_details.h" +#include "access/relation.h" #include "catalog/pg_type.h" #include "funcapi.h" +#include "port/pg_numa.h" #include "storage/buf_internals.h" #include "storage/bufmgr.h" +#include "utils/rel.h" #define NUM_BUFFERCACHE_PAGES_MIN_ELEM 8 #define NUM_BUFFERCACHE_PAGES_ELEM 9 #define NUM_BUFFERCACHE_SUMMARY_ELEM 5 #define NUM_BUFFERCACHE_USAGE_COUNTS_ELEM 4 +#define NUM_BUFFERCACHE_EVICT_ELEM 2 +#define NUM_BUFFERCACHE_EVICT_RELATION_ELEM 3 +#define NUM_BUFFERCACHE_EVICT_ALL_ELEM 3 + +#define NUM_BUFFERCACHE_NUMA_ELEM 3 PG_MODULE_MAGIC_EXT( .name = "pg_buffercache", @@ -58,15 +66,45 @@ typedef struct BufferCachePagesRec *record; } BufferCachePagesContext; +/* + * Record structure holding the to be exposed cache data. + */ +typedef struct +{ + uint32 bufferid; + int64 page_num; + int32 numa_node; +} BufferCacheNumaRec; + +/* + * Function context for data persisting over repeated calls. + */ +typedef struct +{ + TupleDesc tupdesc; + int buffers_per_page; + int pages_per_buffer; + int os_page_size; + BufferCacheNumaRec *record; +} BufferCacheNumaContext; + /* * Function returning data from the shared buffer cache - buffer number, * relation node/tablespace/database/blocknum and dirty indicator. */ PG_FUNCTION_INFO_V1(pg_buffercache_pages); +PG_FUNCTION_INFO_V1(pg_buffercache_numa_pages); PG_FUNCTION_INFO_V1(pg_buffercache_summary); PG_FUNCTION_INFO_V1(pg_buffercache_usage_counts); PG_FUNCTION_INFO_V1(pg_buffercache_evict); +PG_FUNCTION_INFO_V1(pg_buffercache_evict_relation); +PG_FUNCTION_INFO_V1(pg_buffercache_evict_all); + + +/* Only need to touch memory once per backend process lifetime */ +static bool firstNumaTouch = true; + Datum pg_buffercache_pages(PG_FUNCTION_ARGS) @@ -246,6 +284,260 @@ pg_buffercache_pages(PG_FUNCTION_ARGS) SRF_RETURN_DONE(funcctx); } +/* + * Inquire about NUMA memory mappings for shared buffers. + * + * Returns NUMA node ID for each memory page used by the buffer. Buffers may + * be smaller or larger than OS memory pages. For each buffer we return one + * entry for each memory page used by the buffer (if the buffer is smaller, + * it only uses a part of one memory page). + * + * We expect both sizes (for buffers and memory pages) to be a power-of-2, so + * one is always a multiple of the other. + * + * In order to get reliable results we also need to touch memory pages, so + * that the inquiry about NUMA memory node doesn't return -2 (which indicates + * unmapped/unallocated pages). + */ +Datum +pg_buffercache_numa_pages(PG_FUNCTION_ARGS) +{ + FuncCallContext *funcctx; + MemoryContext oldcontext; + BufferCacheNumaContext *fctx; /* User function context. */ + TupleDesc tupledesc; + TupleDesc expected_tupledesc; + HeapTuple tuple; + Datum result; + + if (SRF_IS_FIRSTCALL()) + { + int i, + idx; + Size os_page_size; + void **os_page_ptrs; + int *os_page_status; + uint64 os_page_count; + int pages_per_buffer; + int max_entries; + volatile uint64 touch pg_attribute_unused(); + char *startptr, + *endptr; + + if (pg_numa_init() == -1) + elog(ERROR, "libnuma initialization failed or NUMA is not supported on this platform"); + + /* + * The database block size and OS memory page size are unlikely to be + * the same. The block size is 1-32KB, the memory page size depends on + * platform. On x86 it's usually 4KB, on ARM it's 4KB or 64KB, but + * there are also features like THP etc. Moreover, we don't quite know + * how the pages and buffers "align" in memory - the buffers may be + * shifted in some way, using more memory pages than necessary. + * + * So we need to be careful about mapping buffers to memory pages. We + * calculate the maximum number of pages a buffer might use, so that + * we allocate enough space for the entries. And then we count the + * actual number of entries as we scan the buffers. + * + * This information is needed before calling move_pages() for NUMA + * node id inquiry. + */ + os_page_size = pg_get_shmem_pagesize(); + + /* + * The pages and block size is expected to be 2^k, so one divides the + * other (we don't know in which direction). This does not say + * anything about relative alignment of pages/buffers. + */ + Assert((os_page_size % BLCKSZ == 0) || (BLCKSZ % os_page_size == 0)); + + /* + * How many addresses we are going to query? Simply get the page for + * the first buffer, and first page after the last buffer, and count + * the pages from that. + */ + startptr = (char *) TYPEALIGN_DOWN(os_page_size, + BufferGetBlock(1)); + endptr = (char *) TYPEALIGN(os_page_size, + (char *) BufferGetBlock(NBuffers) + BLCKSZ); + os_page_count = (endptr - startptr) / os_page_size; + + /* Used to determine the NUMA node for all OS pages at once */ + os_page_ptrs = palloc0(sizeof(void *) * os_page_count); + os_page_status = palloc(sizeof(uint64) * os_page_count); + + /* Fill pointers for all the memory pages. */ + idx = 0; + for (char *ptr = startptr; ptr < endptr; ptr += os_page_size) + { + os_page_ptrs[idx++] = ptr; + + /* Only need to touch memory once per backend process lifetime */ + if (firstNumaTouch) + pg_numa_touch_mem_if_required(touch, ptr); + } + + Assert(idx == os_page_count); + + elog(DEBUG1, "NUMA: NBuffers=%d os_page_count=" UINT64_FORMAT " " + "os_page_size=%zu", NBuffers, os_page_count, os_page_size); + + /* + * If we ever get 0xff back from kernel inquiry, then we probably have + * bug in our buffers to OS page mapping code here. + */ + memset(os_page_status, 0xff, sizeof(int) * os_page_count); + + /* Query NUMA status for all the pointers */ + if (pg_numa_query_pages(0, os_page_count, os_page_ptrs, os_page_status) == -1) + elog(ERROR, "failed NUMA pages inquiry: %m"); + + /* Initialize the multi-call context, load entries about buffers */ + + funcctx = SRF_FIRSTCALL_INIT(); + + /* Switch context when allocating stuff to be used in later calls */ + oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); + + /* Create a user function context for cross-call persistence */ + fctx = (BufferCacheNumaContext *) palloc(sizeof(BufferCacheNumaContext)); + + if (get_call_result_type(fcinfo, NULL, &expected_tupledesc) != TYPEFUNC_COMPOSITE) + elog(ERROR, "return type must be a row type"); + + if (expected_tupledesc->natts != NUM_BUFFERCACHE_NUMA_ELEM) + elog(ERROR, "incorrect number of output arguments"); + + /* Construct a tuple descriptor for the result rows. */ + tupledesc = CreateTemplateTupleDesc(expected_tupledesc->natts); + TupleDescInitEntry(tupledesc, (AttrNumber) 1, "bufferid", + INT4OID, -1, 0); + TupleDescInitEntry(tupledesc, (AttrNumber) 2, "os_page_num", + INT8OID, -1, 0); + TupleDescInitEntry(tupledesc, (AttrNumber) 3, "numa_node", + INT4OID, -1, 0); + + fctx->tupdesc = BlessTupleDesc(tupledesc); + + /* + * Each buffer needs at least one entry, but it might be offset in + * some way, and use one extra entry. So we allocate space for the + * maximum number of entries we might need, and then count the exact + * number as we're walking buffers. That way we can do it in one pass, + * without reallocating memory. + */ + pages_per_buffer = Max(1, BLCKSZ / os_page_size) + 1; + max_entries = NBuffers * pages_per_buffer; + + /* Allocate entries for BufferCachePagesRec records. */ + fctx->record = (BufferCacheNumaRec *) + MemoryContextAllocHuge(CurrentMemoryContext, + sizeof(BufferCacheNumaRec) * max_entries); + + /* Return to original context when allocating transient memory */ + MemoryContextSwitchTo(oldcontext); + + if (firstNumaTouch) + elog(DEBUG1, "NUMA: page-faulting the buffercache for proper NUMA readouts"); + + /* + * Scan through all the buffers, saving the relevant fields in the + * fctx->record structure. + * + * We don't hold the partition locks, so we don't get a consistent + * snapshot across all buffers, but we do grab the buffer header + * locks, so the information of each buffer is self-consistent. + * + * This loop touches and stores addresses into os_page_ptrs[] as input + * to one big move_pages(2) inquiry system call. Basically we ask for + * all memory pages for NBuffers. + */ + startptr = (char *) TYPEALIGN_DOWN(os_page_size, (char *) BufferGetBlock(1)); + idx = 0; + for (i = 0; i < NBuffers; i++) + { + char *buffptr = (char *) BufferGetBlock(i + 1); + BufferDesc *bufHdr; + uint32 buf_state; + uint32 bufferid; + int32 page_num; + char *startptr_buff, + *endptr_buff; + + CHECK_FOR_INTERRUPTS(); + + bufHdr = GetBufferDescriptor(i); + + /* Lock each buffer header before inspecting. */ + buf_state = LockBufHdr(bufHdr); + bufferid = BufferDescriptorGetBuffer(bufHdr); + UnlockBufHdr(bufHdr, buf_state); + + /* start of the first page of this buffer */ + startptr_buff = (char *) TYPEALIGN_DOWN(os_page_size, buffptr); + + /* end of the buffer (no need to align to memory page) */ + endptr_buff = buffptr + BLCKSZ; + + Assert(startptr_buff < endptr_buff); + + /* calculate ID of the first page for this buffer */ + page_num = (startptr_buff - startptr) / os_page_size; + + /* Add an entry for each OS page overlapping with this buffer. */ + for (char *ptr = startptr_buff; ptr < endptr_buff; ptr += os_page_size) + { + fctx->record[idx].bufferid = bufferid; + fctx->record[idx].page_num = page_num; + fctx->record[idx].numa_node = os_page_status[page_num]; + + /* advance to the next entry/page */ + ++idx; + ++page_num; + } + } + + Assert((idx >= os_page_count) && (idx <= max_entries)); + + /* Set max calls and remember the user function context. */ + funcctx->max_calls = idx; + funcctx->user_fctx = fctx; + + /* Remember this backend touched the pages */ + firstNumaTouch = false; + } + + funcctx = SRF_PERCALL_SETUP(); + + /* Get the saved state */ + fctx = funcctx->user_fctx; + + if (funcctx->call_cntr < funcctx->max_calls) + { + uint32 i = funcctx->call_cntr; + Datum values[NUM_BUFFERCACHE_NUMA_ELEM]; + bool nulls[NUM_BUFFERCACHE_NUMA_ELEM]; + + values[0] = Int32GetDatum(fctx->record[i].bufferid); + nulls[0] = false; + + values[1] = Int64GetDatum(fctx->record[i].page_num); + nulls[1] = false; + + values[2] = Int32GetDatum(fctx->record[i].numa_node); + nulls[2] = false; + + /* Build and return the tuple. */ + tuple = heap_form_tuple(fctx->tupdesc, values, nulls); + result = HeapTupleGetDatum(tuple); + + SRF_RETURN_NEXT(funcctx, result); + } + else + SRF_RETURN_DONE(funcctx); +} + Datum pg_buffercache_summary(PG_FUNCTION_ARGS) { @@ -352,21 +644,131 @@ pg_buffercache_usage_counts(PG_FUNCTION_ARGS) return (Datum) 0; } +/* + * Helper function to check if the user has superuser privileges. + */ +static void +pg_buffercache_superuser_check(char *func_name) +{ + if (!superuser()) + ereport(ERROR, + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("must be superuser to use %s()", + func_name))); +} + /* * Try to evict a shared buffer. */ Datum pg_buffercache_evict(PG_FUNCTION_ARGS) { + Datum result; + TupleDesc tupledesc; + HeapTuple tuple; + Datum values[NUM_BUFFERCACHE_EVICT_ELEM]; + bool nulls[NUM_BUFFERCACHE_EVICT_ELEM] = {0}; + Buffer buf = PG_GETARG_INT32(0); + bool buffer_flushed; - if (!superuser()) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("must be superuser to use pg_buffercache_evict function"))); + if (get_call_result_type(fcinfo, NULL, &tupledesc) != TYPEFUNC_COMPOSITE) + elog(ERROR, "return type must be a row type"); + + pg_buffercache_superuser_check("pg_buffercache_evict"); if (buf < 1 || buf > NBuffers) elog(ERROR, "bad buffer ID: %d", buf); - PG_RETURN_BOOL(EvictUnpinnedBuffer(buf)); + values[0] = BoolGetDatum(EvictUnpinnedBuffer(buf, &buffer_flushed)); + values[1] = BoolGetDatum(buffer_flushed); + + tuple = heap_form_tuple(tupledesc, values, nulls); + result = HeapTupleGetDatum(tuple); + + PG_RETURN_DATUM(result); +} + +/* + * Try to evict specified relation. + */ +Datum +pg_buffercache_evict_relation(PG_FUNCTION_ARGS) +{ + Datum result; + TupleDesc tupledesc; + HeapTuple tuple; + Datum values[NUM_BUFFERCACHE_EVICT_RELATION_ELEM]; + bool nulls[NUM_BUFFERCACHE_EVICT_RELATION_ELEM] = {0}; + + Oid relOid; + Relation rel; + + int32 buffers_evicted = 0; + int32 buffers_flushed = 0; + int32 buffers_skipped = 0; + + if (get_call_result_type(fcinfo, NULL, &tupledesc) != TYPEFUNC_COMPOSITE) + elog(ERROR, "return type must be a row type"); + + pg_buffercache_superuser_check("pg_buffercache_evict_relation"); + + relOid = PG_GETARG_OID(0); + + rel = relation_open(relOid, AccessShareLock); + + if (RelationUsesLocalBuffers(rel)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("relation uses local buffers, %s() is intended to be used for shared buffers only", + "pg_buffercache_evict_relation"))); + + EvictRelUnpinnedBuffers(rel, &buffers_evicted, &buffers_flushed, + &buffers_skipped); + + relation_close(rel, AccessShareLock); + + values[0] = Int32GetDatum(buffers_evicted); + values[1] = Int32GetDatum(buffers_flushed); + values[2] = Int32GetDatum(buffers_skipped); + + tuple = heap_form_tuple(tupledesc, values, nulls); + result = HeapTupleGetDatum(tuple); + + PG_RETURN_DATUM(result); +} + + +/* + * Try to evict all shared buffers. + */ +Datum +pg_buffercache_evict_all(PG_FUNCTION_ARGS) +{ + Datum result; + TupleDesc tupledesc; + HeapTuple tuple; + Datum values[NUM_BUFFERCACHE_EVICT_ALL_ELEM]; + bool nulls[NUM_BUFFERCACHE_EVICT_ALL_ELEM] = {0}; + + int32 buffers_evicted = 0; + int32 buffers_flushed = 0; + int32 buffers_skipped = 0; + + if (get_call_result_type(fcinfo, NULL, &tupledesc) != TYPEFUNC_COMPOSITE) + elog(ERROR, "return type must be a row type"); + + pg_buffercache_superuser_check("pg_buffercache_evict_all"); + + EvictAllUnpinnedBuffers(&buffers_evicted, &buffers_flushed, + &buffers_skipped); + + values[0] = Int32GetDatum(buffers_evicted); + values[1] = Int32GetDatum(buffers_flushed); + values[2] = Int32GetDatum(buffers_skipped); + + tuple = heap_form_tuple(tupledesc, values, nulls); + result = HeapTupleGetDatum(tuple); + + PG_RETURN_DATUM(result); } diff --git a/contrib/pg_buffercache/sql/pg_buffercache.sql b/contrib/pg_buffercache/sql/pg_buffercache.sql index 944fbb1beaef0..47cca1907c74b 100644 --- a/contrib/pg_buffercache/sql/pg_buffercache.sql +++ b/contrib/pg_buffercache/sql/pg_buffercache.sql @@ -26,3 +26,45 @@ SET ROLE pg_monitor; SELECT count(*) > 0 FROM pg_buffercache; SELECT buffers_used + buffers_unused > 0 FROM pg_buffercache_summary(); SELECT count(*) > 0 FROM pg_buffercache_usage_counts(); +RESET role; + + +------ +---- Test pg_buffercache_evict* functions +------ + +CREATE ROLE regress_buffercache_normal; +SET ROLE regress_buffercache_normal; + +-- These should fail because they need to be called as SUPERUSER +SELECT * FROM pg_buffercache_evict(1); +SELECT * FROM pg_buffercache_evict_relation(1); +SELECT * FROM pg_buffercache_evict_all(); + +RESET ROLE; + +-- These should return nothing, because these are STRICT functions +SELECT * FROM pg_buffercache_evict(NULL); +SELECT * FROM pg_buffercache_evict_relation(NULL); + +-- These should fail because they are not called by valid range of buffers +-- Number of the shared buffers are limited by max integer +SELECT 2147483647 max_buffers \gset +SELECT * FROM pg_buffercache_evict(-1); +SELECT * FROM pg_buffercache_evict(0); +SELECT * FROM pg_buffercache_evict(:max_buffers); + +-- This should fail because pg_buffercache_evict_relation() doesn't accept +-- local relations +CREATE TEMP TABLE temp_pg_buffercache(); +SELECT * FROM pg_buffercache_evict_relation('temp_pg_buffercache'); +DROP TABLE temp_pg_buffercache; + +-- These shouldn't fail +SELECT buffer_evicted IS NOT NULL FROM pg_buffercache_evict(1); +SELECT buffers_evicted IS NOT NULL FROM pg_buffercache_evict_all(); +CREATE TABLE shared_pg_buffercache(); +SELECT buffers_evicted IS NOT NULL FROM pg_buffercache_evict_relation('shared_pg_buffercache'); +DROP TABLE shared_pg_buffercache; + +DROP ROLE regress_buffercache_normal; diff --git a/contrib/pg_buffercache/sql/pg_buffercache_numa.sql b/contrib/pg_buffercache/sql/pg_buffercache_numa.sql new file mode 100644 index 0000000000000..837f3d64e21bc --- /dev/null +++ b/contrib/pg_buffercache/sql/pg_buffercache_numa.sql @@ -0,0 +1,21 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +\quit +\endif + +-- We expect at least one entry for each buffer +select count(*) >= (select setting::bigint + from pg_settings + where name = 'shared_buffers') +from pg_buffercache_numa; + +-- Check that the functions / views can't be accessed by default. To avoid +-- having to create a dedicated user, use the pg_database_owner pseudo-role. +SET ROLE pg_database_owner; +SELECT count(*) > 0 FROM pg_buffercache_numa; +RESET role; + +-- Check that pg_monitor is allowed to query view / function +SET ROLE pg_monitor; +SELECT count(*) > 0 FROM pg_buffercache_numa; +RESET role; diff --git a/contrib/pg_overexplain/expected/pg_overexplain.out b/contrib/pg_overexplain/expected/pg_overexplain.out index 28252dbff6c0d..cb5c396c51925 100644 --- a/contrib/pg_overexplain/expected/pg_overexplain.out +++ b/contrib/pg_overexplain/expected/pg_overexplain.out @@ -119,11 +119,11 @@ $$); Subplans Needing Rewind: none Relation OIDs: NNN... Executor Parameter Types: none - Parse Location: 0 to end + Parse Location: 41 to end RTI 1 (relation, inherited, in-from-clause): Eref: vegetables (id, name, genus) Relation: vegetables - Relation Kind: parititioned_table + Relation Kind: partitioned_table Relation Lock Mode: AccessShareLock Permission Info Index: 1 RTI 2 (group): @@ -240,7 +240,7 @@ $$); none + NNN... + none + - 0 to end + + 53 to end + + + + @@ -250,7 +250,7 @@ $$); true + vegetables (id, name, genus) + vegetables + - parititioned_table + + partitioned_table + AccessShareLock + 1 + false + @@ -344,7 +344,7 @@ $$); Subplans Needing Rewind: none Relation OIDs: NNN... Executor Parameter Types: none - Parse Location: 0 to end + Parse Location: 28 to end (37 rows) SET debug_parallel_query = false; @@ -372,7 +372,7 @@ $$); Subplans Needing Rewind: none Relation OIDs: NNN... Executor Parameter Types: 0 - Parse Location: 0 to end + Parse Location: 28 to end (15 rows) -- Create an index, and then attempt to force a nested loop with inner index @@ -454,7 +454,7 @@ SELECT * FROM vegetables WHERE genus = 'daucus'; RTI 1 (relation, inherited, in-from-clause): Eref: vegetables (id, name, genus) Relation: vegetables - Relation Kind: parititioned_table + Relation Kind: partitioned_table Relation Lock Mode: AccessShareLock Permission Info Index: 1 RTI 2 (relation, in-from-clause): @@ -478,7 +478,7 @@ INSERT INTO vegetables (name, genus) VALUES ('broccoflower', 'brassica'); RTI 1 (relation): Eref: vegetables (id, name, genus) Relation: vegetables - Relation Kind: parititioned_table + Relation Kind: partitioned_table Relation Lock Mode: RowExclusiveLock Permission Info Index: 1 RTI 2 (result): diff --git a/contrib/pg_overexplain/pg_overexplain.c b/contrib/pg_overexplain/pg_overexplain.c index afc34ad5f2f18..de824566f8c90 100644 --- a/contrib/pg_overexplain/pg_overexplain.c +++ b/contrib/pg_overexplain/pg_overexplain.c @@ -54,7 +54,7 @@ static void overexplain_alias(const char *qlabel, Alias *alias, ExplainState *es); static void overexplain_bitmapset(const char *qlabel, Bitmapset *bms, ExplainState *es); -static void overexplain_intlist(const char *qlabel, List *intlist, +static void overexplain_intlist(const char *qlabel, List *list, ExplainState *es); static int es_extension_id; @@ -277,7 +277,7 @@ overexplain_per_plan_hook(PlannedStmt *plannedstmt, * Print out various details from the PlannedStmt that wouldn't otherwise * be displayed. * - * We don't try to print everything here. Information that would be displyed + * We don't try to print everything here. Information that would be displayed * anyway doesn't need to be printed again here, and things with lots of * substructure probably should be printed via separate options, or not at all. */ @@ -292,7 +292,7 @@ overexplain_debug(PlannedStmt *plannedstmt, ExplainState *es) if (es->format == EXPLAIN_FORMAT_TEXT) { ExplainIndentText(es); - appendStringInfo(es->str, "PlannedStmt:\n"); + appendStringInfoString(es->str, "PlannedStmt:\n"); es->indent++; } @@ -329,19 +329,19 @@ overexplain_debug(PlannedStmt *plannedstmt, ExplainState *es) /* Print various properties as a comma-separated list of flags. */ initStringInfo(&flags); if (plannedstmt->hasReturning) - appendStringInfo(&flags, ", hasReturning"); + appendStringInfoString(&flags, ", hasReturning"); if (plannedstmt->hasModifyingCTE) - appendStringInfo(&flags, ", hasModifyingCTE"); + appendStringInfoString(&flags, ", hasModifyingCTE"); if (plannedstmt->canSetTag) - appendStringInfo(&flags, ", canSetTag"); + appendStringInfoString(&flags, ", canSetTag"); if (plannedstmt->transientPlan) - appendStringInfo(&flags, ", transientPlan"); + appendStringInfoString(&flags, ", transientPlan"); if (plannedstmt->dependsOnRole) - appendStringInfo(&flags, ", dependsOnRole"); + appendStringInfoString(&flags, ", dependsOnRole"); if (plannedstmt->parallelModeNeeded) - appendStringInfo(&flags, ", parallelModeNeeded"); + appendStringInfoString(&flags, ", parallelModeNeeded"); if (flags.len == 0) - appendStringInfo(&flags, ", none"); + appendStringInfoString(&flags, ", none"); ExplainPropertyText("Flags", flags.data + 2, es); /* Various lists of integers. */ @@ -517,10 +517,10 @@ overexplain_range_table(PlannedStmt *plannedstmt, ExplainState *es) relkind = "foreign_table"; break; case RELKIND_PARTITIONED_TABLE: - relkind = "parititioned_table"; + relkind = "partitioned_table"; break; case RELKIND_PARTITIONED_INDEX: - relkind = "parititioned_index"; + relkind = "partitioned_index"; break; case '\0': relkind = NULL; @@ -632,7 +632,7 @@ overexplain_range_table(PlannedStmt *plannedstmt, ExplainState *es) } /* - * add_rte_to_flat_rtable will clear coltypes, coltypemods, and + * add_rte_to_flat_rtable will clear coltypes, coltypmods, and * colcollations, so skip those fields. * * If this is an ephemeral named relation, print out ENR-related @@ -675,7 +675,7 @@ overexplain_range_table(PlannedStmt *plannedstmt, ExplainState *es) * Emit a text property describing the contents of an Alias. * * Column lists can be quite long here, so perhaps we should have an option - * to limit the display length by # of columsn or # of characters, but for + * to limit the display length by # of column or # of characters, but for * now, just display everything. */ static void @@ -763,7 +763,7 @@ overexplain_intlist(const char *qlabel, List *list, ExplainState *es) } else { - appendStringInfo(&buf, " not an integer list"); + appendStringInfoString(&buf, " not an integer list"); Assert(false); } diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c index 73485a2323cfb..c52f4d4dc9ea2 100644 --- a/contrib/pg_prewarm/autoprewarm.c +++ b/contrib/pg_prewarm/autoprewarm.c @@ -41,6 +41,7 @@ #include "storage/latch.h" #include "storage/lwlock.h" #include "storage/procsignal.h" +#include "storage/read_stream.h" #include "storage/smgr.h" #include "tcop/tcopprot.h" #include "utils/guc.h" @@ -75,6 +76,28 @@ typedef struct AutoPrewarmSharedState int prewarmed_blocks; } AutoPrewarmSharedState; +/* + * Private data passed through the read stream API for our use in the + * callback. + */ +typedef struct AutoPrewarmReadStreamData +{ + /* The array of records containing the blocks we should prewarm. */ + BlockInfoRecord *block_info; + + /* + * pos is the read stream callback's index into block_info. Because the + * read stream may read ahead, pos is likely to be ahead of the index in + * the main loop in autoprewarm_database_main(). + */ + int pos; + Oid tablespace; + RelFileNumber filenumber; + ForkNumber forknum; + BlockNumber nblocks; +} AutoPrewarmReadStreamData; + + PGDLLEXPORT void autoprewarm_main(Datum main_arg); PGDLLEXPORT void autoprewarm_database_main(Datum main_arg); @@ -422,6 +445,54 @@ apw_load_buffers(void) apw_state->prewarmed_blocks, num_elements))); } +/* + * Return the next block number of a specific relation and fork to read + * according to the array of BlockInfoRecord. + */ +static BlockNumber +apw_read_stream_next_block(ReadStream *stream, + void *callback_private_data, + void *per_buffer_data) +{ + AutoPrewarmReadStreamData *p = callback_private_data; + + CHECK_FOR_INTERRUPTS(); + + while (p->pos < apw_state->prewarm_stop_idx) + { + BlockInfoRecord blk = p->block_info[p->pos]; + + if (!have_free_buffer()) + { + p->pos = apw_state->prewarm_stop_idx; + return InvalidBlockNumber; + } + + if (blk.tablespace != p->tablespace) + return InvalidBlockNumber; + + if (blk.filenumber != p->filenumber) + return InvalidBlockNumber; + + if (blk.forknum != p->forknum) + return InvalidBlockNumber; + + p->pos++; + + /* + * Check whether blocknum is valid and within fork file size. + * Fast-forward through any invalid blocks. We want p->pos to reflect + * the location of the next relation or fork before ending the stream. + */ + if (blk.blocknum >= p->nblocks) + continue; + + return blk.blocknum; + } + + return InvalidBlockNumber; +} + /* * Prewarm all blocks for one database (and possibly also global objects, if * those got grouped with this database). @@ -429,11 +500,9 @@ apw_load_buffers(void) void autoprewarm_database_main(Datum main_arg) { - int pos; BlockInfoRecord *block_info; - Relation rel = NULL; - BlockNumber nblocks = 0; - BlockInfoRecord *old_blk = NULL; + int i; + BlockInfoRecord blk; dsm_segment *seg; /* Establish signal handlers; once that's done, unblock signals. */ @@ -449,108 +518,142 @@ autoprewarm_database_main(Datum main_arg) errmsg("could not map dynamic shared memory segment"))); BackgroundWorkerInitializeConnectionByOid(apw_state->database, InvalidOid, 0); block_info = (BlockInfoRecord *) dsm_segment_address(seg); - pos = apw_state->prewarm_start_idx; + + i = apw_state->prewarm_start_idx; + blk = block_info[i]; /* * Loop until we run out of blocks to prewarm or until we run out of free * buffers. */ - while (pos < apw_state->prewarm_stop_idx && have_free_buffer()) + while (i < apw_state->prewarm_stop_idx && have_free_buffer()) { - BlockInfoRecord *blk = &block_info[pos++]; - Buffer buf; - - CHECK_FOR_INTERRUPTS(); + Oid tablespace = blk.tablespace; + RelFileNumber filenumber = blk.filenumber; + Oid reloid; + Relation rel; /* - * Quit if we've reached records for another database. If previous - * blocks are of some global objects, then continue pre-warming. + * All blocks between prewarm_start_idx and prewarm_stop_idx should + * belong either to global objects or the same database. */ - if (old_blk != NULL && old_blk->database != blk->database && - old_blk->database != 0) - break; + Assert(blk.database == apw_state->database || blk.database == 0); - /* - * As soon as we encounter a block of a new relation, close the old - * relation. Note that rel will be NULL if try_relation_open failed - * previously; in that case, there is nothing to close. - */ - if (old_blk != NULL && old_blk->filenumber != blk->filenumber && - rel != NULL) - { - relation_close(rel, AccessShareLock); - rel = NULL; - CommitTransactionCommand(); - } + StartTransactionCommand(); - /* - * Try to open each new relation, but only once, when we first - * encounter it. If it's been dropped, skip the associated blocks. - */ - if (old_blk == NULL || old_blk->filenumber != blk->filenumber) + reloid = RelidByRelfilenumber(blk.tablespace, blk.filenumber); + if (!OidIsValid(reloid) || + (rel = try_relation_open(reloid, AccessShareLock)) == NULL) { - Oid reloid; + /* We failed to open the relation, so there is nothing to close. */ + CommitTransactionCommand(); - Assert(rel == NULL); - StartTransactionCommand(); - reloid = RelidByRelfilenumber(blk->tablespace, blk->filenumber); - if (OidIsValid(reloid)) - rel = try_relation_open(reloid, AccessShareLock); + /* + * Fast-forward to the next relation. We want to skip all of the + * other records referencing this relation since we know we can't + * open it. That way, we avoid repeatedly trying and failing to + * open the same relation. + */ + for (; i < apw_state->prewarm_stop_idx; i++) + { + blk = block_info[i]; + if (blk.tablespace != tablespace || + blk.filenumber != filenumber) + break; + } - if (!rel) - CommitTransactionCommand(); - } - if (!rel) - { - old_blk = blk; + /* Time to try and open our newfound relation */ continue; } - /* Once per fork, check for fork existence and size. */ - if (old_blk == NULL || - old_blk->filenumber != blk->filenumber || - old_blk->forknum != blk->forknum) + /* + * We have a relation; now let's loop until we find a valid fork of + * the relation or we run out of free buffers. Once we've read from + * all valid forks or run out of options, we'll close the relation and + * move on. + */ + while (i < apw_state->prewarm_stop_idx && + blk.tablespace == tablespace && + blk.filenumber == filenumber && + have_free_buffer()) { + ForkNumber forknum = blk.forknum; + BlockNumber nblocks; + struct AutoPrewarmReadStreamData p; + ReadStream *stream; + Buffer buf; + /* * smgrexists is not safe for illegal forknum, hence check whether * the passed forknum is valid before using it in smgrexists. */ - if (blk->forknum > InvalidForkNumber && - blk->forknum <= MAX_FORKNUM && - smgrexists(RelationGetSmgr(rel), blk->forknum)) - nblocks = RelationGetNumberOfBlocksInFork(rel, blk->forknum); - else - nblocks = 0; - } + if (blk.forknum <= InvalidForkNumber || + blk.forknum > MAX_FORKNUM || + !smgrexists(RelationGetSmgr(rel), blk.forknum)) + { + /* + * Fast-forward to the next fork. We want to skip all of the + * other records referencing this fork since we already know + * it's not valid. + */ + for (; i < apw_state->prewarm_stop_idx; i++) + { + blk = block_info[i]; + if (blk.tablespace != tablespace || + blk.filenumber != filenumber || + blk.forknum != forknum) + break; + } + + /* Time to check if this newfound fork is valid */ + continue; + } - /* Check whether blocknum is valid and within fork file size. */ - if (blk->blocknum >= nblocks) - { - /* Move to next forknum. */ - old_blk = blk; - continue; - } + nblocks = RelationGetNumberOfBlocksInFork(rel, blk.forknum); - /* Prewarm buffer. */ - buf = ReadBufferExtended(rel, blk->forknum, blk->blocknum, RBM_NORMAL, - NULL); - if (BufferIsValid(buf)) - { - apw_state->prewarmed_blocks++; - ReleaseBuffer(buf); - } + p = (struct AutoPrewarmReadStreamData) + { + .block_info = block_info, + .pos = i, + .tablespace = tablespace, + .filenumber = filenumber, + .forknum = forknum, + .nblocks = nblocks, + }; + + stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE | + READ_STREAM_DEFAULT | + READ_STREAM_USE_BATCHING, + NULL, + rel, + p.forknum, + apw_read_stream_next_block, + &p, + 0); - old_blk = blk; - } + /* + * Loop until we've prewarmed all the blocks from this fork. The + * read stream callback will check that we still have free buffers + * before requesting each block from the read stream API. + */ + while ((buf = read_stream_next_buffer(stream, NULL)) != InvalidBuffer) + { + apw_state->prewarmed_blocks++; + ReleaseBuffer(buf); + } - dsm_detach(seg); + read_stream_end(stream); + + /* Advance i past all the blocks just prewarmed. */ + i = p.pos; + blk = block_info[i]; + } - /* Release lock on previous relation. */ - if (rel) - { relation_close(rel, AccessShareLock); CommitTransactionCommand(); } + + dsm_detach(seg); } /* diff --git a/contrib/pg_prewarm/pg_prewarm.c b/contrib/pg_prewarm/pg_prewarm.c index c0efb530c4e5f..50808569bd741 100644 --- a/contrib/pg_prewarm/pg_prewarm.c +++ b/contrib/pg_prewarm/pg_prewarm.c @@ -202,7 +202,8 @@ pg_prewarm(PG_FUNCTION_ARGS) * It is safe to use batchmode as block_range_read_stream_cb takes no * locks. */ - stream = read_stream_begin_relation(READ_STREAM_FULL | + stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE | + READ_STREAM_FULL | READ_STREAM_USE_BATCHING, NULL, rel, diff --git a/contrib/pg_stat_statements/expected/level_tracking.out b/contrib/pg_stat_statements/expected/level_tracking.out index 03bea14d5da09..75e785e1719ea 100644 --- a/contrib/pg_stat_statements/expected/level_tracking.out +++ b/contrib/pg_stat_statements/expected/level_tracking.out @@ -1319,6 +1319,57 @@ SELECT toplevel, calls, query FROM pg_stat_statements t | 1 | SELECT pg_stat_statements_reset() IS NOT NULL AS t (4 rows) +-- DO block --- multiple inner queries with separators +SET pg_stat_statements.track = 'all'; +SET pg_stat_statements.track_utility = TRUE; +CREATE TABLE pgss_do_util_tab_1 (a int); +CREATE TABLE pgss_do_util_tab_2 (a int); +SELECT pg_stat_statements_reset() IS NOT NULL AS t; + t +--- + t +(1 row) + +DO $$ +DECLARE BEGIN + EXECUTE 'CREATE TABLE pgss_do_table (id INT); DROP TABLE pgss_do_table'; + EXECUTE 'SELECT a FROM pgss_do_util_tab_1; SELECT a FROM pgss_do_util_tab_2'; +END $$; +SELECT toplevel, calls, rows, query FROM pg_stat_statements + WHERE toplevel IS FALSE + ORDER BY query COLLATE "C"; + toplevel | calls | rows | query +----------+-------+------+------------------------------------- + f | 1 | 0 | CREATE TABLE pgss_do_table (id INT) + f | 1 | 0 | DROP TABLE pgss_do_table + f | 1 | 0 | SELECT a FROM pgss_do_util_tab_1 + f | 1 | 0 | SELECT a FROM pgss_do_util_tab_2 +(4 rows) + +SELECT pg_stat_statements_reset() IS NOT NULL AS t; + t +--- + t +(1 row) + +-- Note the extra semicolon at the end of the query. +DO $$ +DECLARE BEGIN + EXECUTE 'CREATE TABLE pgss_do_table (id INT); DROP TABLE pgss_do_table;'; + EXECUTE 'SELECT a FROM pgss_do_util_tab_1; SELECT a FROM pgss_do_util_tab_2;'; +END $$; +SELECT toplevel, calls, rows, query FROM pg_stat_statements + WHERE toplevel IS FALSE + ORDER BY query COLLATE "C"; + toplevel | calls | rows | query +----------+-------+------+------------------------------------- + f | 1 | 0 | CREATE TABLE pgss_do_table (id INT) + f | 1 | 0 | DROP TABLE pgss_do_table + f | 1 | 0 | SELECT a FROM pgss_do_util_tab_1 + f | 1 | 0 | SELECT a FROM pgss_do_util_tab_2 +(4 rows) + +DROP TABLE pgss_do_util_tab_1, pgss_do_util_tab_2; -- PL/pgSQL function - top-level tracking. SET pg_stat_statements.track = 'top'; SET pg_stat_statements.track_utility = FALSE; diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c index 9778407cba30b..d8fdf42df7935 100644 --- a/contrib/pg_stat_statements/pg_stat_statements.c +++ b/contrib/pg_stat_statements/pg_stat_statements.c @@ -335,7 +335,7 @@ static PlannedStmt *pgss_planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams); -static bool pgss_ExecutorStart(QueryDesc *queryDesc, int eflags); +static void pgss_ExecutorStart(QueryDesc *queryDesc, int eflags); static void pgss_ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, uint64 count); @@ -989,19 +989,13 @@ pgss_planner(Query *parse, /* * ExecutorStart hook: start up tracking if needed */ -static bool +static void pgss_ExecutorStart(QueryDesc *queryDesc, int eflags) { - bool plan_valid; - if (prev_ExecutorStart) - plan_valid = prev_ExecutorStart(queryDesc, eflags); + prev_ExecutorStart(queryDesc, eflags); else - plan_valid = standard_ExecutorStart(queryDesc, eflags); - - /* The plan may have become invalid during standard_ExecutorStart() */ - if (!plan_valid) - return false; + standard_ExecutorStart(queryDesc, eflags); /* * If query has queryId zero, don't track it. This prevents double @@ -1024,8 +1018,6 @@ pgss_ExecutorStart(QueryDesc *queryDesc, int eflags) MemoryContextSwitchTo(oldcxt); } } - - return true; } /* diff --git a/contrib/pg_stat_statements/sql/level_tracking.sql b/contrib/pg_stat_statements/sql/level_tracking.sql index 6b81230f18691..86f007e85524a 100644 --- a/contrib/pg_stat_statements/sql/level_tracking.sql +++ b/contrib/pg_stat_statements/sql/level_tracking.sql @@ -334,6 +334,32 @@ END; $$; SELECT toplevel, calls, query FROM pg_stat_statements ORDER BY query COLLATE "C", toplevel; +-- DO block --- multiple inner queries with separators +SET pg_stat_statements.track = 'all'; +SET pg_stat_statements.track_utility = TRUE; +CREATE TABLE pgss_do_util_tab_1 (a int); +CREATE TABLE pgss_do_util_tab_2 (a int); +SELECT pg_stat_statements_reset() IS NOT NULL AS t; +DO $$ +DECLARE BEGIN + EXECUTE 'CREATE TABLE pgss_do_table (id INT); DROP TABLE pgss_do_table'; + EXECUTE 'SELECT a FROM pgss_do_util_tab_1; SELECT a FROM pgss_do_util_tab_2'; +END $$; +SELECT toplevel, calls, rows, query FROM pg_stat_statements + WHERE toplevel IS FALSE + ORDER BY query COLLATE "C"; +SELECT pg_stat_statements_reset() IS NOT NULL AS t; +-- Note the extra semicolon at the end of the query. +DO $$ +DECLARE BEGIN + EXECUTE 'CREATE TABLE pgss_do_table (id INT); DROP TABLE pgss_do_table;'; + EXECUTE 'SELECT a FROM pgss_do_util_tab_1; SELECT a FROM pgss_do_util_tab_2;'; +END $$; +SELECT toplevel, calls, rows, query FROM pg_stat_statements + WHERE toplevel IS FALSE + ORDER BY query COLLATE "C"; +DROP TABLE pgss_do_util_tab_1, pgss_do_util_tab_2; + -- PL/pgSQL function - top-level tracking. SET pg_stat_statements.track = 'top'; SET pg_stat_statements.track_utility = FALSE; diff --git a/contrib/pg_stat_statements/sql/squashing.sql b/contrib/pg_stat_statements/sql/squashing.sql index 908be81ff2b7d..03efd4b40c8e7 100644 --- a/contrib/pg_stat_statements/sql/squashing.sql +++ b/contrib/pg_stat_statements/sql/squashing.sql @@ -167,4 +167,3 @@ FROM cte; SELECT pg_stat_statements_reset() IS NOT NULL AS t; SELECT ARRAY[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; SELECT query, calls FROM pg_stat_statements ORDER BY query COLLATE "C"; - diff --git a/contrib/pgcrypto/Makefile b/contrib/pgcrypto/Makefile index 11c4455dd059e..69afa3750116c 100644 --- a/contrib/pgcrypto/Makefile +++ b/contrib/pgcrypto/Makefile @@ -11,6 +11,7 @@ OBJS = \ crypt-des.o \ crypt-gensalt.o \ crypt-md5.o \ + crypt-sha.o \ mbuf.o \ openssl.o \ pgcrypto.o \ @@ -43,7 +44,7 @@ REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \ sha2 des 3des cast5 \ crypt-des crypt-md5 crypt-blowfish crypt-xdes \ pgp-armor pgp-decrypt pgp-encrypt pgp-encrypt-md5 $(CF_PGP_TESTS) \ - pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-info + pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-info crypt-shacrypt ifdef USE_PGXS PG_CONFIG = pg_config diff --git a/contrib/pgcrypto/crypt-gensalt.c b/contrib/pgcrypto/crypt-gensalt.c index 740f3612532b0..7149dce02d5fe 100644 --- a/contrib/pgcrypto/crypt-gensalt.c +++ b/contrib/pgcrypto/crypt-gensalt.c @@ -185,3 +185,85 @@ _crypt_gensalt_blowfish_rn(unsigned long count, return output; } + +/* + * Helper for _crypt_gensalt_sha256_rn and _crypt_gensalt_sha512_rn + */ +static char * +_crypt_gensalt_sha(unsigned long count, + const char *input, int size, char *output, int output_size) +{ + char *s_ptr = output; + unsigned int result_bufsize = PX_SHACRYPT_SALT_BUF_LEN; + int rc; + + /* output buffer must be allocated with PX_MAX_SALT_LEN bytes */ + if (PX_MAX_SALT_LEN < result_bufsize) + ereport(ERROR, + errcode(ERRCODE_SYNTAX_ERROR), + errmsg("invalid size of salt")); + + /* + * Care must be taken to not exceed the buffer size allocated for the + * input character buffer. + */ + if ((PX_SHACRYPT_SALT_MAX_LEN != size) || (output_size < size)) + ereport(ERROR, + errcode(ERRCODE_INTERNAL_ERROR), + errmsg("invalid length of salt buffer")); + + /* Skip magic bytes, set by callers */ + s_ptr += 3; + if ((rc = pg_snprintf(s_ptr, 18, "rounds=%lu$", count)) <= 0) + ereport(ERROR, + errcode(ERRCODE_INTERNAL_ERROR), + errmsg("cannot format salt string")); + + /* s_ptr should now be positioned at the start of the salt string */ + s_ptr += rc; + + /* + * Normalize salt string + * + * size of input buffer was checked above to not exceed + * PX_SHACRYPT_SALT_LEN_MAX. + */ + for (int i = 0; i < size; i++) + { + *s_ptr = _crypt_itoa64[input[i] & 0x3f]; + s_ptr++; + } + + /* We're done */ + return output; +} + +/* gen_list->gen function for sha512 */ +char * +_crypt_gensalt_sha512_rn(unsigned long count, + char const *input, int size, + char *output, int output_size) +{ + memset(output, 0, output_size); + /* set magic byte for sha512crypt */ + output[0] = '$'; + output[1] = '6'; + output[2] = '$'; + + return _crypt_gensalt_sha(count, input, size, output, output_size); +} + +/* gen_list->gen function for sha256 */ +char * +_crypt_gensalt_sha256_rn(unsigned long count, + const char *input, int size, + char *output, int output_size) +{ + memset(output, 0, output_size); + /* set magic byte for sha256crypt */ + output[0] = '$'; + output[1] = '5'; + output[2] = '$'; + + return _crypt_gensalt_sha(count, input, size, output, output_size); +} diff --git a/contrib/pgcrypto/crypt-sha.c b/contrib/pgcrypto/crypt-sha.c new file mode 100644 index 0000000000000..7ec21771a83b7 --- /dev/null +++ b/contrib/pgcrypto/crypt-sha.c @@ -0,0 +1,642 @@ +/* + * contrib/pgcrypto/crypt-sha.c + * + * This implements shacrypt password hash functions and follows the + * public available reference implementation from + * + * https://www.akkadia.org/drepper/SHA-crypt.txt + * + * This code is public domain. + * + * Please see the inline comments for details about the algorithm. + * + * Basically the following code implements password hashing with sha256 and + * sha512 digest via OpenSSL. Additionally, an extended salt generation (see + * crypt-gensalt.c for details) is provided, which generates a salt suitable + * for either sha256crypt and sha512crypt password hash generation. + * + * Official identifiers for suitable password hashes used in salts are + * 5 : sha256crypt and + * 6 : sha512crypt + * + * The hashing code below supports and uses salt length up to 16 bytes. Longer + * input is possible, but any additional byte of the input is disregarded. + * gen_salt(), when called with a sha256crypt or sha512crypt identifier will + * always generate a 16 byte long salt string. + * + * Output is compatible with any sha256crypt and sha512crypt output + * generated by e.g. OpenSSL or libc crypt(). + * + * The described algorithm uses default computing rounds of 5000. Currently, + * even when no specific rounds specification is used, we always explicitly + * print out the rounds option flag with the final hash password string. + * + * The length of the specific password hash (without magic bytes and salt + * string) is: + * + * sha256crypt: 43 bytes and + * sha512crypt: 86 bytes. + * + * Overall hashed password length is: + * + * sha256crypt: 80 bytes and + * sha512crypt: 123 bytes + * + */ +#include "postgres.h" + +#include "common/string.h" +#include "mb/pg_wchar.h" +#include "miscadmin.h" + +#include "px-crypt.h" +#include "px.h" + +typedef enum +{ + PGCRYPTO_SHA256CRYPT = 0, + PGCRYPTO_SHA512CRYPT = 1, + PGCRYPTO_SHA_UNKOWN +} PGCRYPTO_SHA_t; + +static const char _crypt_itoa64[64 + 1] = +"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +/* + * Modern UNIX password, based on SHA crypt hashes + */ +char * +px_crypt_shacrypt(const char *pw, const char *salt, char *passwd, unsigned dstlen) +{ + static const char rounds_prefix[] = "rounds="; + static const char *magic_bytes[2] = {"$5$", "$6$"}; + + /* Used to create the password hash string */ + StringInfo out_buf = NULL; + + PGCRYPTO_SHA_t type = PGCRYPTO_SHA_UNKOWN; + PX_MD *digestA = NULL; + PX_MD *digestB = NULL; + int err; + + const char *dec_salt_binary; /* pointer into the real salt string */ + StringInfo decoded_salt = NULL; /* decoded salt string */ + unsigned char sha_buf[PX_SHACRYPT_DIGEST_MAX_LEN]; + + /* temporary buffer for digests */ + unsigned char sha_buf_tmp[PX_SHACRYPT_DIGEST_MAX_LEN]; + char rounds_custom = 0; + char *p_bytes = NULL; + char *s_bytes = NULL; + char *cp = NULL; + const char *fp = NULL; /* intermediate pointer within salt string */ + const char *ep = NULL; /* holds pointer to the end of the salt string */ + size_t buf_size = 0; /* buffer size for sha256crypt/sha512crypt */ + unsigned int block; /* number of bytes processed */ + uint32 rounds = PX_SHACRYPT_ROUNDS_DEFAULT; + unsigned int len, + salt_len = 0; + + /* Sanity checks */ + if (!passwd) + return NULL; + + if (pw == NULL) + elog(ERROR, "null value for password rejected"); + + if (salt == NULL) + elog(ERROR, "null value for salt rejected"); + + /* + * Make sure result buffers are large enough. + */ + if (dstlen < PX_SHACRYPT_BUF_LEN) + elog(ERROR, "insufficient result buffer size to encrypt password"); + + /* Init result buffer */ + out_buf = makeStringInfoExt(PX_SHACRYPT_BUF_LEN); + decoded_salt = makeStringInfoExt(PX_SHACRYPT_SALT_MAX_LEN); + + /* Init contents of buffers properly */ + memset(&sha_buf, '\0', sizeof(sha_buf)); + memset(&sha_buf_tmp, '\0', sizeof(sha_buf_tmp)); + + /* + * Decode the salt string. We need to know how many rounds and which + * digest we have to use to hash the password. + */ + len = strlen(pw); + dec_salt_binary = salt; + + /* + * Analyze and prepare the salt string + * + * The magic string should be specified in the first three bytes of the + * salt string. Do some sanity checks first. + */ + if (strlen(dec_salt_binary) < 3) + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid salt")); + + /* + * Check format of magic bytes. These should define either 5=sha256crypt + * or 6=sha512crypt in the second byte, enclosed by ascii dollar signs. + */ + if ((dec_salt_binary[0] != '$') || (dec_salt_binary[2] != '$')) + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid format of salt"), + errhint("magic byte format for shacrypt is either \"$5$\" or \"$6$\"")); + + /* + * Check magic byte for supported shacrypt digest. + * + * We're just interested in the very first 3 bytes of the salt string, + * since this defines the digest length to use. + */ + if (strncmp(dec_salt_binary, magic_bytes[0], strlen(magic_bytes[0])) == 0) + { + type = PGCRYPTO_SHA256CRYPT; + dec_salt_binary += strlen(magic_bytes[0]); + } + else if (strncmp(dec_salt_binary, magic_bytes[1], strlen(magic_bytes[1])) == 0) + { + type = PGCRYPTO_SHA512CRYPT; + dec_salt_binary += strlen(magic_bytes[1]); + } + + /* + * dec_salt_binary pointer is positioned after the magic bytes now + * + * We extract any options in the following code branch. The only optional + * setting we need to take care of is the "rounds" option. Note that the + * salt generator already checked for invalid settings before, but we need + * to do it here again to protect against injection of wrong values when + * called without the generator. + * + * If there is any garbage added after the magic byte and the options/salt + * string, we don't treat this special: This is just absorbed as part of + * the salt with up to PX_SHACRYPT_SALT_LEN_MAX. + * + * Unknown magic byte is handled further below. + */ + if (strncmp(dec_salt_binary, + rounds_prefix, sizeof(rounds_prefix) - 1) == 0) + { + const char *num = dec_salt_binary + sizeof(rounds_prefix) - 1; + char *endp; + int srounds = strtoint(num, &endp, 10); + + if (*endp != '$') + ereport(ERROR, + errcode(ERRCODE_SYNTAX_ERROR), + errmsg("could not parse salt options")); + + dec_salt_binary = endp + 1; + + /* + * We violate supported lower or upper bound of rounds, but in this + * case we change this value to the supported lower or upper value. We + * don't do this silently and print a NOTICE in such a case. + * + * Note that a salt string generated with gen_salt() would never + * generated such a salt string, since it would error out. + * + * But Drepper's upstream reference implementation supports this when + * passing the salt string directly, so we maintain compatibility. + */ + if (srounds > PX_SHACRYPT_ROUNDS_MAX) + { + ereport(NOTICE, + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("rounds=%d exceeds maximum supported value (%d), using %d instead", + srounds, PX_SHACRYPT_ROUNDS_MAX, + PX_SHACRYPT_ROUNDS_MAX)); + srounds = PX_SHACRYPT_ROUNDS_MAX; + } + else if (srounds < PX_SHACRYPT_ROUNDS_MIN) + { + ereport(NOTICE, + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("rounds=%d is below supported value (%d), using %d instead", + srounds, PX_SHACRYPT_ROUNDS_MIN, + PX_SHACRYPT_ROUNDS_MIN)); + srounds = PX_SHACRYPT_ROUNDS_MIN; + } + + rounds = (uint32) srounds; + rounds_custom = 1; + } + + /* + * Choose the correct digest length and add the magic bytes to the result + * buffer. Also handle possible invalid magic byte we've extracted above. + */ + switch (type) + { + case PGCRYPTO_SHA256CRYPT: + { + /* Two PX_MD objects required */ + err = px_find_digest("sha256", &digestA); + if (err) + goto error; + + err = px_find_digest("sha256", &digestB); + if (err) + goto error; + + /* digest buffer length is 32 for sha256 */ + buf_size = 32; + + appendStringInfoString(out_buf, magic_bytes[0]); + break; + } + + case PGCRYPTO_SHA512CRYPT: + { + /* Two PX_MD objects required */ + err = px_find_digest("sha512", &digestA); + if (err) + goto error; + + err = px_find_digest("sha512", &digestB); + if (err) + goto error; + + buf_size = PX_SHACRYPT_DIGEST_MAX_LEN; + + appendStringInfoString(out_buf, magic_bytes[1]); + break; + } + + case PGCRYPTO_SHA_UNKOWN: + elog(ERROR, "unknown crypt identifier \"%c\"", salt[1]); + } + + if (rounds_custom > 0) + appendStringInfo(out_buf, "rounds=%u$", rounds); + + /* + * We need the real decoded salt string from salt input, this is every + * character before the last '$' in the preamble. Append every compatible + * character up to PX_SHACRYPT_SALT_MAX_LEN to the result buffer. Note + * that depending on the input, there might be no '$' marker after the + * salt, when there is no password hash attached at the end. + * + * We try hard to recognize mistakes, but since we might get an input + * string which might also have the password hash after the salt string + * section we give up as soon we reach the end of the input or if there + * are any bytes consumed for the salt string until we reach the first '$' + * marker thereafter. + */ + for (ep = dec_salt_binary; + *ep && ep < (dec_salt_binary + PX_SHACRYPT_SALT_MAX_LEN); + ep++) + { + /* + * Filter out any string which shouldn't be here. + * + * First check for accidentally embedded magic strings here. We don't + * support '$' in salt strings anyways and seeing a magic byte trying + * to identify shacrypt hashes might indicate that something went + * wrong when generating this salt string. Note that we later check + * for non-supported literals anyways, but any '$' here confuses us at + * this point. + */ + fp = strstr(dec_salt_binary, magic_bytes[0]); + if (fp != NULL) + elog(ERROR, "bogus magic byte found in salt string"); + + fp = strstr(dec_salt_binary, magic_bytes[1]); + if (fp != NULL) + elog(ERROR, "bogus magic byte found in salt string"); + + /* + * This looks very strict, but we assume the caller did something + * wrong when we see a "rounds=" option here. + */ + fp = strstr(dec_salt_binary, rounds_prefix); + if (fp != NULL) + elog(ERROR, "invalid rounds option specified in salt string"); + + if (*ep != '$') + { + if (strchr(_crypt_itoa64, *ep) != NULL) + appendStringInfoCharMacro(decoded_salt, *ep); + else + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid character in salt string: \"%.*s\"", + pg_mblen(ep), ep)); + } + else + { + /* + * We encountered a '$' marker. Check if we already absorbed some + * bytes from input. If true, we are optimistic and terminate at + * this stage. If not, we try further. + * + * If we already consumed enough bytes for the salt string, + * everything that is after this marker is considered to be part + * of an optionally specified password hash and ignored. + */ + if (decoded_salt->len > 0) + break; + } + } + + salt_len = decoded_salt->len; + appendStringInfoString(out_buf, decoded_salt->data); + elog(DEBUG1, "using salt \"%s\", salt len = %d, rounds = %u", + decoded_salt->data, decoded_salt->len, rounds); + + /* + * Sanity check: at this point the salt string buffer must not exceed + * expected size. + */ + if (out_buf->len > (3 + 17 * rounds_custom + salt_len)) + elog(ERROR, "unexpected length of salt string"); + + /*- + * 1. Start digest A + * 2. Add the password string to digest A + * 3. Add the salt to digest A + */ + px_md_update(digestA, (const unsigned char *) pw, len); + px_md_update(digestA, (const unsigned char *) decoded_salt->data, salt_len); + + /*- + * 4. Create digest B + * 5. Add password to digest B + * 6. Add the salt string to digest B + * 7. Add the password again to digest B + * 8. Finalize digest B + */ + px_md_update(digestB, (const unsigned char *) pw, len); + px_md_update(digestB, (const unsigned char *) dec_salt_binary, salt_len); + px_md_update(digestB, (const unsigned char *) pw, len); + px_md_finish(digestB, sha_buf); + + /* + * 9. For each block (excluding the NULL byte), add digest B to digest A. + */ + for (block = len; block > buf_size; block -= buf_size) + px_md_update(digestA, sha_buf, buf_size); + + /*- + * 10. For the remaining N bytes of the password string, add the first N + * bytes of digest B to A. + */ + px_md_update(digestA, sha_buf, block); + + /*- + * 11. For each bit of the binary representation of the length of the + * password string up to and including the highest 1-digit, starting from + * to lowest bit position (numeric value 1) + * + * a) for a 1-digit add digest B (sha_buf) to digest A + * b) for a 0-digit add the password string + */ + block = len; + while (block) + { + px_md_update(digestA, + (block & 1) ? sha_buf : (const unsigned char *) pw, + (block & 1) ? buf_size : len); + + /* right shift to next byte */ + block >>= 1; + } + + /* 12. Finalize digest A */ + px_md_finish(digestA, sha_buf); + + /* 13. Start digest DP */ + px_md_reset(digestB); + + /*- + * 14 Add every byte of the password string (excluding trailing NULL) + * to the digest DP + */ + for (block = len; block > 0; block--) + px_md_update(digestB, (const unsigned char *) pw, len); + + /* 15. Finalize digest DP */ + px_md_finish(digestB, sha_buf_tmp); + + /*- + * 16. produce byte sequence P with same length as password. + * a) for each block of 32 or 64 bytes of length of the password + * string the entire digest DP is used + * b) for the remaining N (up to 31 or 63) bytes use the + * first N bytes of digest DP + */ + if ((p_bytes = palloc0(len)) == NULL) + { + goto error; + } + + /* N step of 16, copy over the bytes from password */ + for (cp = p_bytes, block = len; block > buf_size; block -= buf_size, cp += buf_size) + memcpy(cp, sha_buf_tmp, buf_size); + memcpy(cp, sha_buf_tmp, block); + + /* + * 17. Start digest DS + */ + px_md_reset(digestB); + + /*- + * 18. Repeat the following 16+A[0] times, where A[0] represents the first + * byte in digest A interpreted as an 8-bit unsigned value + * add the salt to digest DS + */ + for (block = 16 + sha_buf[0]; block > 0; block--) + px_md_update(digestB, (const unsigned char *) dec_salt_binary, salt_len); + + /* + * 19. Finalize digest DS + */ + px_md_finish(digestB, sha_buf_tmp); + + /*- + * 20. Produce byte sequence S of the same length as the salt string where + * + * a) for each block of 32 or 64 bytes of length of the salt string the + * entire digest DS is used + * + * b) for the remaining N (up to 31 or 63) bytes use the first N + * bytes of digest DS + */ + if ((s_bytes = palloc0(salt_len)) == NULL) + goto error; + + for (cp = s_bytes, block = salt_len; block > buf_size; block -= buf_size, cp += buf_size) + memcpy(cp, sha_buf_tmp, buf_size); + memcpy(cp, sha_buf_tmp, block); + + /* Make sure we don't leave something important behind */ + px_memset(&sha_buf_tmp, 0, sizeof sha_buf); + + /*- + * 21. Repeat a loop according to the number specified in the rounds= + * specification in the salt (or the default value if none is + * present). Each round is numbered, starting with 0 and up to N-1. + * + * The loop uses a digest as input. In the first round it is the + * digest produced in step 12. In the latter steps it is the digest + * produced in step 21.h of the previous round. The following text + * uses the notation "digest A/B" to describe this behavior. + */ + for (block = 0; block < rounds; block++) + { + /* + * Make it possible to abort in case large values for "rounds" are + * specified. + */ + CHECK_FOR_INTERRUPTS(); + + /* a) start digest B */ + px_md_reset(digestB); + + /*- + * b) for odd round numbers add the byte sequence P to digest B + * c) for even round numbers add digest A/B + */ + px_md_update(digestB, + (block & 1) ? (const unsigned char *) p_bytes : sha_buf, + (block & 1) ? len : buf_size); + + /* d) for all round numbers not divisible by 3 add the byte sequence S */ + if ((block % 3) != 0) + px_md_update(digestB, (const unsigned char *) s_bytes, salt_len); + + /* e) for all round numbers not divisible by 7 add the byte sequence P */ + if ((block % 7) != 0) + px_md_update(digestB, (const unsigned char *) p_bytes, len); + + /*- + * f) for odd round numbers add digest A/C + * g) for even round numbers add the byte sequence P + */ + px_md_update(digestB, + (block & 1) ? sha_buf : (const unsigned char *) p_bytes, + (block & 1) ? buf_size : len); + + /* h) finish digest C. */ + px_md_finish(digestB, sha_buf); + } + + px_md_free(digestA); + px_md_free(digestB); + + digestA = NULL; + digestB = NULL; + + pfree(s_bytes); + pfree(p_bytes); + + s_bytes = NULL; + p_bytes = NULL; + + /* prepare final result buffer */ + appendStringInfoCharMacro(out_buf, '$'); + +#define b64_from_24bit(B2, B1, B0, N) \ + do { \ + unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ + int i = (N); \ + while (i-- > 0) \ + { \ + appendStringInfoCharMacro(out_buf, _crypt_itoa64[w & 0x3f]); \ + w >>= 6; \ + } \ + } while (0) + + switch (type) + { + case PGCRYPTO_SHA256CRYPT: + { + b64_from_24bit(sha_buf[0], sha_buf[10], sha_buf[20], 4); + b64_from_24bit(sha_buf[21], sha_buf[1], sha_buf[11], 4); + b64_from_24bit(sha_buf[12], sha_buf[22], sha_buf[2], 4); + b64_from_24bit(sha_buf[3], sha_buf[13], sha_buf[23], 4); + b64_from_24bit(sha_buf[24], sha_buf[4], sha_buf[14], 4); + b64_from_24bit(sha_buf[15], sha_buf[25], sha_buf[5], 4); + b64_from_24bit(sha_buf[6], sha_buf[16], sha_buf[26], 4); + b64_from_24bit(sha_buf[27], sha_buf[7], sha_buf[17], 4); + b64_from_24bit(sha_buf[18], sha_buf[28], sha_buf[8], 4); + b64_from_24bit(sha_buf[9], sha_buf[19], sha_buf[29], 4); + b64_from_24bit(0, sha_buf[31], sha_buf[30], 3); + + break; + } + + case PGCRYPTO_SHA512CRYPT: + { + b64_from_24bit(sha_buf[0], sha_buf[21], sha_buf[42], 4); + b64_from_24bit(sha_buf[22], sha_buf[43], sha_buf[1], 4); + b64_from_24bit(sha_buf[44], sha_buf[2], sha_buf[23], 4); + b64_from_24bit(sha_buf[3], sha_buf[24], sha_buf[45], 4); + b64_from_24bit(sha_buf[25], sha_buf[46], sha_buf[4], 4); + b64_from_24bit(sha_buf[47], sha_buf[5], sha_buf[26], 4); + b64_from_24bit(sha_buf[6], sha_buf[27], sha_buf[48], 4); + b64_from_24bit(sha_buf[28], sha_buf[49], sha_buf[7], 4); + b64_from_24bit(sha_buf[50], sha_buf[8], sha_buf[29], 4); + b64_from_24bit(sha_buf[9], sha_buf[30], sha_buf[51], 4); + b64_from_24bit(sha_buf[31], sha_buf[52], sha_buf[10], 4); + b64_from_24bit(sha_buf[53], sha_buf[11], sha_buf[32], 4); + b64_from_24bit(sha_buf[12], sha_buf[33], sha_buf[54], 4); + b64_from_24bit(sha_buf[34], sha_buf[55], sha_buf[13], 4); + b64_from_24bit(sha_buf[56], sha_buf[14], sha_buf[35], 4); + b64_from_24bit(sha_buf[15], sha_buf[36], sha_buf[57], 4); + b64_from_24bit(sha_buf[37], sha_buf[58], sha_buf[16], 4); + b64_from_24bit(sha_buf[59], sha_buf[17], sha_buf[38], 4); + b64_from_24bit(sha_buf[18], sha_buf[39], sha_buf[60], 4); + b64_from_24bit(sha_buf[40], sha_buf[61], sha_buf[19], 4); + b64_from_24bit(sha_buf[62], sha_buf[20], sha_buf[41], 4); + b64_from_24bit(0, 0, sha_buf[63], 2); + + break; + } + + case PGCRYPTO_SHA_UNKOWN: + /* we shouldn't land here ... */ + elog(ERROR, "unsupported digest length"); + } + + /* + * Copy over result to specified buffer. + * + * The passwd character buffer should have at least PX_SHACRYPT_BUF_LEN + * allocated, since we checked above if dstlen is smaller than + * PX_SHACRYPT_BUF_LEN (which also includes the NULL byte). + * + * In that case we would have failed above already. + */ + memcpy(passwd, out_buf->data, out_buf->len); + + /* make sure nothing important is left behind */ + px_memset(&sha_buf, 0, sizeof sha_buf); + destroyStringInfo(out_buf); + destroyStringInfo(decoded_salt); + + /* ...and we're done */ + return passwd; + +error: + if (digestA != NULL) + px_md_free(digestA); + + if (digestB != NULL) + px_md_free(digestB); + + destroyStringInfo(out_buf); + destroyStringInfo(decoded_salt); + + ereport(ERROR, + errcode(ERRCODE_INTERNAL_ERROR), + errmsg("cannot create encrypted password")); + return NULL; /* keep compiler quiet */ +} diff --git a/contrib/pgcrypto/expected/crypt-shacrypt.out b/contrib/pgcrypto/expected/crypt-shacrypt.out new file mode 100644 index 0000000000000..f3b76d5e9136c --- /dev/null +++ b/contrib/pgcrypto/expected/crypt-shacrypt.out @@ -0,0 +1,196 @@ +-- +-- crypt() and gensalt: sha256crypt, sha512crypt +-- +-- $5$ is sha256crypt +SELECT crypt('', '$5$Szzz0yzz'); + crypt +--------------------------------------------------------- + $5$Szzz0yzz$cA.ZFZKqblRYjdsbrWtVTYa/qSwPQnt2uh0LBtyYAAD +(1 row) + +SELECT crypt('foox', '$5$Szzz0yzz'); + crypt +--------------------------------------------------------- + $5$Szzz0yzz$7hI0rUWkO2QdBkzamh.vP.MIPlbZiwSvu2smhSi6064 +(1 row) + +CREATE TABLE ctest (data text, res text, salt text); +INSERT INTO ctest VALUES ('password', '', ''); +-- generate a salt for sha256crypt, default rounds +UPDATE ctest SET salt = gen_salt('sha256crypt'); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + worked +-------- + t +(1 row) + +-- generate a salt for sha256crypt, rounds 9999 +UPDATE ctest SET salt = gen_salt('sha256crypt', 9999); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + worked +-------- + t +(1 row) + +-- should fail, below supported minimum rounds value +UPDATE ctest SET salt = gen_salt('sha256crypt', 10); +ERROR: gen_salt: Incorrect number of rounds +-- should fail, exceeds supported maximum rounds value +UPDATE ctest SET salt = gen_salt('sha256crypt', 1000000000); +ERROR: gen_salt: Incorrect number of rounds +TRUNCATE ctest; +-- $6$ is sha512crypt +SELECT crypt('', '$6$Szzz0yzz'); + crypt +---------------------------------------------------------------------------------------------------- + $6$Szzz0yzz$EGj.JLAovFyAtCJx3YD1DXD1yTXoO9gv4qgLyHBsJJ1lkpnLB8ZPHekm1qXjJCOBc/8thCuHpxNN8Y5xzRYU5. +(1 row) + +SELECT crypt('foox', '$6$Szzz0yzz'); + crypt +---------------------------------------------------------------------------------------------------- + $6$Szzz0yzz$KqDw1Y8kze.VFapkvTc9Y5fbqzltjeRz1aPGC/pkHRhFQZ2aM6PmZpXQjcD7AOH88Bq0CSD.VlmymQzcBMEUl0 +(1 row) + +INSERT INTO ctest VALUES ('password', '', ''); +-- generate a salt for sha512crypt, default rounds +UPDATE ctest SET salt = gen_salt('sha512crypt'); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + worked +-------- + t +(1 row) + +-- generate a salt for sha512crypt, rounds 9999 +UPDATE ctest SET salt = gen_salt('sha512crypt', 9999); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + worked +-------- + t +(1 row) + +-- should fail, below supported minimum rounds value +UPDATE ctest SET salt = gen_salt('sha512crypt', 10); +ERROR: gen_salt: Incorrect number of rounds +-- should fail, exceeds supported maximum rounds value +UPDATE ctest SET salt = gen_salt('sha512crypt', 1000000000); +ERROR: gen_salt: Incorrect number of rounds +-- Extended tests taken from public domain code at +-- https://www.akkadia.org/drepper/SHA-crypt.txt +-- +-- We adapt the tests defined there to make sure we are compatible with the reference +-- implementation. +-- This tests sha256crypt (magic byte $5$ with salt and rounds) +SELECT crypt('Hello world!', '$5$saltstring') + = '$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5' AS result; + result +-------- + t +(1 row) + +SELECT crypt('Hello world!', '$5$rounds=10000$saltstringsaltstring') + = '$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2.opqey6IcA' AS result; + result +-------- + t +(1 row) + +SELECT crypt('This is just a test', '$5$rounds=5000$toolongsaltstring') + = '$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8mGRcvxa5' AS result; + result +-------- + t +(1 row) + + SELECT crypt('a very much longer text to encrypt. This one even stretches over more' + 'than one line.', '$5$rounds=1400$anotherlongsaltstring') + = '$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12oP84Bnq1' AS result; + result +-------- + t +(1 row) + +SELECT crypt('we have a short salt string but not a short password', '$5$rounds=77777$short') + = '$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/' AS result; + result +-------- + t +(1 row) + +SELECT crypt('a short string', '$5$rounds=123456$asaltof16chars..') + = '$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/cZKmF/wJvD' AS result; + result +-------- + t +(1 row) + +SELECT crypt('the minimum number is still observed', '$5$rounds=10$roundstoolow') + = '$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL972bIC' AS result; +NOTICE: rounds=10 is below supported value (1000), using 1000 instead + result +-------- + t +(1 row) + +-- The following tests sha512crypt (magic byte $6$ with salt and rounds) +SELECT crypt('Hello world!', '$6$saltstring') + = '$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJuesI68u4OTLiBFdcbYEdFCoEOfaS35inz1' AS result; + result +-------- + t +(1 row) + +SELECT crypt('Hello world!', '$6$rounds=10000$saltstringsaltstring') + = '$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sbHbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v.' AS result; + result +-------- + t +(1 row) + +SELECT crypt('This is just a test', '$6$rounds=5000$toolongsaltstring') + = '$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQzQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0' AS result; + result +-------- + t +(1 row) + +SELECT crypt('a very much longer text to encrypt. This one even stretches over more' + 'than one line.', '$6$rounds=1400$anotherlongsaltstring') + = '$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wPvMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1' AS result; + result +-------- + t +(1 row) + +SELECT crypt('we have a short salt string but not a short password', '$6$rounds=77777$short') + = '$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0gge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0' AS result; + result +-------- + t +(1 row) + +SELECT crypt('a short string', '$6$rounds=123456$asaltof16chars..') + = '$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwcelCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1' AS result; + result +-------- + t +(1 row) + +SELECT crypt('the minimum number is still observed', '$6$rounds=10$roundstoolow') + = '$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1xhLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX.' AS result; +NOTICE: rounds=10 is below supported value (1000), using 1000 instead + result +-------- + t +(1 row) + +-- cleanup +DROP TABLE ctest; diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build index 7a4e8e76d64c2..7d5ef9b6d3231 100644 --- a/contrib/pgcrypto/meson.build +++ b/contrib/pgcrypto/meson.build @@ -9,6 +9,7 @@ pgcrypto_sources = files( 'crypt-des.c', 'crypt-gensalt.c', 'crypt-md5.c', + 'crypt-sha.c', 'mbuf.c', 'pgcrypto.c', 'pgp-armor.c', @@ -52,6 +53,7 @@ pgcrypto_regress = [ 'pgp-pubkey-decrypt', 'pgp-pubkey-encrypt', 'pgp-info', + 'crypt-shacrypt' ] pgcrypto_openssl_sources = files( diff --git a/contrib/pgcrypto/px-crypt.c b/contrib/pgcrypto/px-crypt.c index 96ce9384aff43..d7729eec9bcae 100644 --- a/contrib/pgcrypto/px-crypt.c +++ b/contrib/pgcrypto/px-crypt.c @@ -67,6 +67,16 @@ run_crypt_bf(const char *psw, const char *salt, return res; } +static char * +run_crypt_sha(const char *psw, const char *salt, + char *buf, unsigned len) +{ + char *res; + + res = px_crypt_shacrypt(psw, salt, buf, len); + return res; +} + struct px_crypt_algo { char *id; @@ -81,6 +91,8 @@ static const struct px_crypt_algo {"$2x$", 4, run_crypt_bf}, {"$2$", 3, NULL}, /* N/A */ {"$1$", 3, run_crypt_md5}, + {"$5$", 3, run_crypt_sha}, + {"$6$", 3, run_crypt_sha}, {"_", 1, run_crypt_des}, {"", 0, run_crypt_des}, {NULL, 0, NULL} @@ -127,6 +139,16 @@ static struct generator gen_list[] = { {"md5", _crypt_gensalt_md5_rn, 6, 0, 0, 0}, {"xdes", _crypt_gensalt_extended_rn, 3, PX_XDES_ROUNDS, 1, 0xFFFFFF}, {"bf", _crypt_gensalt_blowfish_rn, 16, PX_BF_ROUNDS, 4, 31}, + { + "sha256crypt", _crypt_gensalt_sha256_rn, + PX_SHACRYPT_SALT_MAX_LEN, PX_SHACRYPT_ROUNDS_DEFAULT, + PX_SHACRYPT_ROUNDS_MIN, PX_SHACRYPT_ROUNDS_MAX + }, + { + "sha512crypt", _crypt_gensalt_sha512_rn, + PX_SHACRYPT_SALT_MAX_LEN, PX_SHACRYPT_ROUNDS_DEFAULT, + PX_SHACRYPT_ROUNDS_MIN, PX_SHACRYPT_ROUNDS_MAX + }, {NULL, NULL, 0, 0, 0, 0} }; diff --git a/contrib/pgcrypto/px-crypt.h b/contrib/pgcrypto/px-crypt.h index 54de806965530..bb03cf5592ad0 100644 --- a/contrib/pgcrypto/px-crypt.h +++ b/contrib/pgcrypto/px-crypt.h @@ -45,6 +45,30 @@ /* default for blowfish salt */ #define PX_BF_ROUNDS 6 +/* Maximum salt string length of shacrypt. */ +#define PX_SHACRYPT_SALT_MAX_LEN 16 + +/* SHA buffer length */ +#define PX_SHACRYPT_DIGEST_MAX_LEN 64 + +/* calculated buffer size of a buffer to store a shacrypt salt string */ +#define PX_SHACRYPT_SALT_BUF_LEN (3 + 7 + 10 + PX_SHACRYPT_SALT_MAX_LEN + 1) + +/* + * calculated buffer size of a buffer to store complete result of a shacrypt + * digest including salt + */ +#define PX_SHACRYPT_BUF_LEN (PX_SHACRYPT_SALT_BUF_LEN + 86 + 1) + +/* Default number of rounds of shacrypt if not explicitly specified. */ +#define PX_SHACRYPT_ROUNDS_DEFAULT 5000 + +/* Minimum number of rounds of shacrypt. */ +#define PX_SHACRYPT_ROUNDS_MIN 1000 + +/* Maximum number of rounds of shacrypt. */ +#define PX_SHACRYPT_ROUNDS_MAX 999999999 + /* * main interface */ @@ -64,6 +88,10 @@ char *_crypt_gensalt_md5_rn(unsigned long count, const char *input, int size, char *output, int output_size); char *_crypt_gensalt_blowfish_rn(unsigned long count, const char *input, int size, char *output, int output_size); +char *_crypt_gensalt_sha256_rn(unsigned long count, + const char *input, int size, char *output, int output_size); +char *_crypt_gensalt_sha512_rn(unsigned long count, + const char *input, int size, char *output, int output_size); /* disable 'extended DES crypt' */ /* #define DISABLE_XDES */ @@ -79,4 +107,7 @@ char *px_crypt_des(const char *key, const char *setting); char *px_crypt_md5(const char *pw, const char *salt, char *passwd, unsigned dstlen); +/* crypt-sha.c */ +char *px_crypt_shacrypt(const char *pw, const char *salt, char *passwd, unsigned dstlen); + #endif /* _PX_CRYPT_H */ diff --git a/contrib/pgcrypto/sql/crypt-shacrypt.sql b/contrib/pgcrypto/sql/crypt-shacrypt.sql new file mode 100644 index 0000000000000..3ee826f61aa6c --- /dev/null +++ b/contrib/pgcrypto/sql/crypt-shacrypt.sql @@ -0,0 +1,99 @@ +-- +-- crypt() and gensalt: sha256crypt, sha512crypt +-- + +-- $5$ is sha256crypt +SELECT crypt('', '$5$Szzz0yzz'); + +SELECT crypt('foox', '$5$Szzz0yzz'); + +CREATE TABLE ctest (data text, res text, salt text); +INSERT INTO ctest VALUES ('password', '', ''); + +-- generate a salt for sha256crypt, default rounds +UPDATE ctest SET salt = gen_salt('sha256crypt'); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + +-- generate a salt for sha256crypt, rounds 9999 +UPDATE ctest SET salt = gen_salt('sha256crypt', 9999); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + +-- should fail, below supported minimum rounds value +UPDATE ctest SET salt = gen_salt('sha256crypt', 10); + +-- should fail, exceeds supported maximum rounds value +UPDATE ctest SET salt = gen_salt('sha256crypt', 1000000000); + +TRUNCATE ctest; + +-- $6$ is sha512crypt +SELECT crypt('', '$6$Szzz0yzz'); + +SELECT crypt('foox', '$6$Szzz0yzz'); + +INSERT INTO ctest VALUES ('password', '', ''); + +-- generate a salt for sha512crypt, default rounds +UPDATE ctest SET salt = gen_salt('sha512crypt'); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + +-- generate a salt for sha512crypt, rounds 9999 +UPDATE ctest SET salt = gen_salt('sha512crypt', 9999); +UPDATE ctest SET res = crypt(data, salt); +SELECT res = crypt(data, res) AS "worked" +FROM ctest; + +-- should fail, below supported minimum rounds value +UPDATE ctest SET salt = gen_salt('sha512crypt', 10); + +-- should fail, exceeds supported maximum rounds value +UPDATE ctest SET salt = gen_salt('sha512crypt', 1000000000); + +-- Extended tests taken from public domain code at +-- https://www.akkadia.org/drepper/SHA-crypt.txt +-- +-- We adapt the tests defined there to make sure we are compatible with the reference +-- implementation. + +-- This tests sha256crypt (magic byte $5$ with salt and rounds) +SELECT crypt('Hello world!', '$5$saltstring') + = '$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5' AS result; +SELECT crypt('Hello world!', '$5$rounds=10000$saltstringsaltstring') + = '$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2.opqey6IcA' AS result; +SELECT crypt('This is just a test', '$5$rounds=5000$toolongsaltstring') + = '$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8mGRcvxa5' AS result; + SELECT crypt('a very much longer text to encrypt. This one even stretches over more' + 'than one line.', '$5$rounds=1400$anotherlongsaltstring') + = '$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12oP84Bnq1' AS result; +SELECT crypt('we have a short salt string but not a short password', '$5$rounds=77777$short') + = '$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/' AS result; +SELECT crypt('a short string', '$5$rounds=123456$asaltof16chars..') + = '$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/cZKmF/wJvD' AS result; +SELECT crypt('the minimum number is still observed', '$5$rounds=10$roundstoolow') + = '$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL972bIC' AS result; + +-- The following tests sha512crypt (magic byte $6$ with salt and rounds) +SELECT crypt('Hello world!', '$6$saltstring') + = '$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJuesI68u4OTLiBFdcbYEdFCoEOfaS35inz1' AS result; +SELECT crypt('Hello world!', '$6$rounds=10000$saltstringsaltstring') + = '$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sbHbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v.' AS result; +SELECT crypt('This is just a test', '$6$rounds=5000$toolongsaltstring') + = '$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQzQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0' AS result; +SELECT crypt('a very much longer text to encrypt. This one even stretches over more' + 'than one line.', '$6$rounds=1400$anotherlongsaltstring') + = '$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wPvMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1' AS result; +SELECT crypt('we have a short salt string but not a short password', '$6$rounds=77777$short') + = '$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0gge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0' AS result; +SELECT crypt('a short string', '$6$rounds=123456$asaltof16chars..') + = '$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwcelCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1' AS result; +SELECT crypt('the minimum number is still observed', '$6$rounds=10$roundstoolow') + = '$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1xhLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX.' AS result; + +-- cleanup +DROP TABLE ctest; diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index 9fa7f7e95cd1f..304f3c20f8356 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -577,7 +577,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user) len = pg_b64_enc_len(sizeof(MyProcPort->scram_ClientKey)); /* don't forget the zero-terminator */ values[n] = palloc0(len + 1); - encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ClientKey, + encoded_len = pg_b64_encode(MyProcPort->scram_ClientKey, sizeof(MyProcPort->scram_ClientKey), (char *) values[n], len); if (encoded_len < 0) @@ -588,7 +588,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user) len = pg_b64_enc_len(sizeof(MyProcPort->scram_ServerKey)); /* don't forget the zero-terminator */ values[n] = palloc0(len + 1); - encoded_len = pg_b64_encode((const char *) MyProcPort->scram_ServerKey, + encoded_len = pg_b64_encode(MyProcPort->scram_ServerKey, sizeof(MyProcPort->scram_ServerKey), (char *) values[n], len); if (encoded_len < 0) diff --git a/contrib/postgres_fdw/deparse.c b/contrib/postgres_fdw/deparse.c index 6e7dc3d2df982..d9970dd675336 100644 --- a/contrib/postgres_fdw/deparse.c +++ b/contrib/postgres_fdw/deparse.c @@ -3969,17 +3969,17 @@ appendOrderByClause(List *pathkeys, bool has_final_sort, appendStringInfoString(buf, ", "); /* - * 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). + * Lookup the operator corresponding to the compare type 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); + oprid = get_opfamily_member_for_cmptype(pathkey->pk_opfamily, + em->em_datatype, + em->em_datatype, + pathkey->pk_cmptype); if (!OidIsValid(oprid)) elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", - pathkey->pk_strategy, em->em_datatype, em->em_datatype, + pathkey->pk_cmptype, em->em_datatype, em->em_datatype, pathkey->pk_opfamily); deparseExpr(em_expr, context); diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out index d1acee5a5fa51..2185b42bb4f79 100644 --- a/contrib/postgres_fdw/expected/postgres_fdw.out +++ b/contrib/postgres_fdw/expected/postgres_fdw.out @@ -196,6 +196,17 @@ ALTER USER MAPPING FOR public SERVER testserver1 -- permitted to check validation. ALTER USER MAPPING FOR public SERVER testserver1 OPTIONS (ADD sslkey 'value', ADD sslcert 'value'); +-- OAuth options are not allowed in either context +ALTER SERVER testserver1 OPTIONS (ADD oauth_issuer 'https://example.com'); +ERROR: invalid option "oauth_issuer" +ALTER SERVER testserver1 OPTIONS (ADD oauth_client_id 'myID'); +ERROR: invalid option "oauth_client_id" +ALTER USER MAPPING FOR public SERVER testserver1 + OPTIONS (ADD oauth_issuer 'https://example.com'); +ERROR: invalid option "oauth_issuer" +ALTER USER MAPPING FOR public SERVER testserver1 + OPTIONS (ADD oauth_client_id 'myID'); +ERROR: invalid option "oauth_client_id" ALTER FOREIGN TABLE ft1 OPTIONS (schema_name 'S 1', table_name 'T 1'); ALTER FOREIGN TABLE ft2 OPTIONS (schema_name 'S 1', table_name 'T 1'); ALTER FOREIGN TABLE ft1 ALTER COLUMN c1 OPTIONS (column_name 'C 1'); @@ -2554,6 +2565,70 @@ SELECT * FROM ft1, ft2, ft4, ft5, local_tbl WHERE ft1.c1 = ft2.c1 AND ft1.c2 = f 96 | 6 | 00096 | Tue Apr 07 00:00:00 1970 PST | Tue Apr 07 00:00:00 1970 | 6 | 6 | foo | 96 | 6 | 00096 | Tue Apr 07 00:00:00 1970 PST | Tue Apr 07 00:00:00 1970 | 6 | 6 | foo | 6 | 7 | AAA006 | 6 | 7 | AAA006 | 6 | 6 | 0006 (10 rows) +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ft1, ft4, ft5, local_tbl WHERE ft1.c1 = ft4.c1 AND ft1.c1 = ft5.c1 + AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft5.c1 < 100 FOR UPDATE; + QUERY PLAN +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + LockRows + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft4.c1, ft4.c2, ft4.c3, ft5.c1, ft5.c2, ft5.c3, local_tbl.c1, local_tbl.c2, local_tbl.c3, ft1.*, ft4.*, ft5.*, local_tbl.ctid + -> Merge Join + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft4.c1, ft4.c2, ft4.c3, ft5.c1, ft5.c2, ft5.c3, local_tbl.c1, local_tbl.c2, local_tbl.c3, ft1.*, ft4.*, ft5.*, local_tbl.ctid + Merge Cond: (local_tbl.c1 = ft1.c2) + -> Index Scan using local_tbl_pkey on public.local_tbl + Output: local_tbl.c1, local_tbl.c2, local_tbl.c3, local_tbl.ctid + -> Sort + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.* + Sort Key: ft1.c2 + -> Foreign Scan + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.* + Relations: ((public.ft1) INNER JOIN (public.ft4)) INNER JOIN (public.ft5) + Remote SQL: SELECT r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8, CASE WHEN (r1.*)::text IS NOT NULL THEN ROW(r1."C 1", r1.c2, r1.c3, r1.c4, r1.c5, r1.c6, r1.c7, r1.c8) END, r2.c1, r2.c2, r2.c3, CASE WHEN (r2.*)::text IS NOT NULL THEN ROW(r2.c1, r2.c2, r2.c3) END, r3.c1, r3.c2, r3.c3, CASE WHEN (r3.*)::text IS NOT NULL THEN ROW(r3.c1, r3.c2, r3.c3) END FROM (("S 1"."T 1" r1 INNER JOIN "S 1"."T 3" r2 ON (((r1."C 1" = r2.c1)) AND ((r1."C 1" < 100)))) INNER JOIN "S 1"."T 4" r3 ON (((r1."C 1" = r3.c1)) AND ((r3.c1 < 100)))) FOR UPDATE OF r1 FOR UPDATE OF r2 FOR UPDATE OF r3 + -> Merge Join + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft4.c1, ft4.c2, ft4.c3, ft4.*, ft5.c1, ft5.c2, ft5.c3, ft5.* + Merge Cond: (ft1.c1 = ft5.c1) + -> Merge Join + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.*, ft4.c1, ft4.c2, ft4.c3, ft4.* + Merge Cond: (ft1.c1 = ft4.c1) + -> Sort + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.* + Sort Key: ft1.c1 + -> Foreign Scan on public.ft1 + Output: ft1.c1, ft1.c2, ft1.c3, ft1.c4, ft1.c5, ft1.c6, ft1.c7, ft1.c8, ft1.* + Remote SQL: SELECT "C 1", c2, c3, c4, c5, c6, c7, c8 FROM "S 1"."T 1" WHERE (("C 1" < 100)) FOR UPDATE + -> Sort + Output: ft4.c1, ft4.c2, ft4.c3, ft4.* + Sort Key: ft4.c1 + -> Foreign Scan on public.ft4 + Output: ft4.c1, ft4.c2, ft4.c3, ft4.* + Remote SQL: SELECT c1, c2, c3 FROM "S 1"."T 3" FOR UPDATE + -> Sort + Output: ft5.c1, ft5.c2, ft5.c3, ft5.* + Sort Key: ft5.c1 + -> Foreign Scan on public.ft5 + Output: ft5.c1, ft5.c2, ft5.c3, ft5.* + Remote SQL: SELECT c1, c2, c3 FROM "S 1"."T 4" WHERE ((c1 < 100)) FOR UPDATE +(38 rows) + +SELECT * FROM ft1, ft4, ft5, local_tbl WHERE ft1.c1 = ft4.c1 AND ft1.c1 = ft5.c1 + AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft5.c1 < 100 FOR UPDATE; + c1 | c2 | c3 | c4 | c5 | c6 | c7 | c8 | c1 | c2 | c3 | c1 | c2 | c3 | c1 | c2 | c3 +----+----+-------+------------------------------+--------------------------+----+------------+-----+----+----+--------+----+----+--------+----+----+------ + 12 | 2 | 00012 | Tue Jan 13 00:00:00 1970 PST | Tue Jan 13 00:00:00 1970 | 2 | 2 | foo | 12 | 13 | AAA012 | 12 | 13 | AAA012 | 2 | 2 | 0002 + 42 | 2 | 00042 | Thu Feb 12 00:00:00 1970 PST | Thu Feb 12 00:00:00 1970 | 2 | 2 | foo | 42 | 43 | AAA042 | 42 | 43 | AAA042 | 2 | 2 | 0002 + 72 | 2 | 00072 | Sat Mar 14 00:00:00 1970 PST | Sat Mar 14 00:00:00 1970 | 2 | 2 | foo | 72 | 73 | AAA072 | 72 | 73 | | 2 | 2 | 0002 + 24 | 4 | 00024 | Sun Jan 25 00:00:00 1970 PST | Sun Jan 25 00:00:00 1970 | 4 | 4 | foo | 24 | 25 | AAA024 | 24 | 25 | AAA024 | 4 | 4 | 0004 + 54 | 4 | 00054 | Tue Feb 24 00:00:00 1970 PST | Tue Feb 24 00:00:00 1970 | 4 | 4 | foo | 54 | 55 | AAA054 | 54 | 55 | | 4 | 4 | 0004 + 84 | 4 | 00084 | Thu Mar 26 00:00:00 1970 PST | Thu Mar 26 00:00:00 1970 | 4 | 4 | foo | 84 | 85 | AAA084 | 84 | 85 | AAA084 | 4 | 4 | 0004 + 96 | 6 | 00096 | Tue Apr 07 00:00:00 1970 PST | Tue Apr 07 00:00:00 1970 | 6 | 6 | foo | 96 | 97 | AAA096 | 96 | 97 | AAA096 | 6 | 6 | 0006 + 36 | 6 | 00036 | Fri Feb 06 00:00:00 1970 PST | Fri Feb 06 00:00:00 1970 | 6 | 6 | foo | 36 | 37 | AAA036 | 36 | 37 | | 6 | 6 | 0006 + 66 | 6 | 00066 | Sun Mar 08 00:00:00 1970 PST | Sun Mar 08 00:00:00 1970 | 6 | 6 | foo | 66 | 67 | AAA066 | 66 | 67 | AAA066 | 6 | 6 | 0006 + 6 | 6 | 00006 | Wed Jan 07 00:00:00 1970 PST | Wed Jan 07 00:00:00 1970 | 6 | 6 | foo | 6 | 7 | AAA006 | 6 | 7 | AAA006 | 6 | 6 | 0006 + 48 | 8 | 00048 | Wed Feb 18 00:00:00 1970 PST | Wed Feb 18 00:00:00 1970 | 8 | 8 | foo | 48 | 49 | AAA048 | 48 | 49 | AAA048 | 8 | 8 | 0008 + 18 | 8 | 00018 | Mon Jan 19 00:00:00 1970 PST | Mon Jan 19 00:00:00 1970 | 8 | 8 | foo | 18 | 19 | AAA018 | 18 | 19 | | 8 | 8 | 0008 + 78 | 8 | 00078 | Fri Mar 20 00:00:00 1970 PST | Fri Mar 20 00:00:00 1970 | 8 | 8 | foo | 78 | 79 | AAA078 | 78 | 79 | AAA078 | 8 | 8 | 0008 +(13 rows) + RESET enable_nestloop; RESET enable_hashjoin; -- test that add_paths_with_pathkeys_for_rel() arranges for the epq_path to diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c index d0766f007d2f9..c2f936640bca8 100644 --- a/contrib/postgres_fdw/option.c +++ b/contrib/postgres_fdw/option.c @@ -348,6 +348,13 @@ InitPgFdwOptions(void) strcmp(lopt->keyword, "client_encoding") == 0) continue; + /* + * Disallow OAuth options for now, since the builtin flow communicates + * on stderr by default and can't cache tokens yet. + */ + if (strncmp(lopt->keyword, "oauth_", strlen("oauth_")) == 0) + continue; + /* We don't have to copy keyword string, as described above. */ popt->keyword = lopt->keyword; diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index ac14c06c71518..331f3fc088d1b 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -444,7 +444,7 @@ static void adjust_foreign_grouping_path_cost(PlannerInfo *root, double retrieved_rows, double width, double limit_tuples, - int *disabled_nodes, + int *p_disabled_nodes, Cost *p_startup_cost, Cost *p_run_cost); static bool ec_member_matches_foreign(PlannerInfo *root, RelOptInfo *rel, @@ -999,7 +999,7 @@ get_useful_pathkeys_for_relation(PlannerInfo *root, RelOptInfo *rel) /* Looks like we can generate a pathkey, so let's do it. */ pathkey = make_canonical_pathkey(root, cur_ec, linitial_oid(cur_ec->ec_opfamilies), - BTLessStrategyNumber, + COMPARE_LT, false); useful_pathkeys_list = lappend(useful_pathkeys_list, list_make1(pathkey)); @@ -7847,14 +7847,13 @@ conversion_error_callback(void *arg) EquivalenceMember * find_em_for_rel(PlannerInfo *root, EquivalenceClass *ec, RelOptInfo *rel) { - ListCell *lc; - PgFdwRelationInfo *fpinfo = (PgFdwRelationInfo *) rel->fdw_private; + EquivalenceMemberIterator it; + EquivalenceMember *em; - foreach(lc, ec->ec_members) + setup_eclass_member_iterator(&it, ec, rel->relids); + while ((em = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *em = (EquivalenceMember *) lfirst(lc); - /* * Note we require !bms_is_empty, else we'd accept constant * expressions which are not suitable for the purpose. @@ -7908,7 +7907,10 @@ find_em_for_rel_target(PlannerInfo *root, EquivalenceClass *ec, while (expr && IsA(expr, RelabelType)) expr = ((RelabelType *) expr)->arg; - /* Locate an EquivalenceClass member matching this expr, if any */ + /* + * Locate an EquivalenceClass member matching this expr, if any. + * Ignore child members. + */ foreach(lc2, ec->ec_members) { EquivalenceMember *em = (EquivalenceMember *) lfirst(lc2); @@ -7918,9 +7920,8 @@ find_em_for_rel_target(PlannerInfo *root, EquivalenceClass *ec, if (em->em_is_const) continue; - /* Ignore child members */ - if (em->em_is_child) - continue; + /* Child members should not exist in ec_members */ + Assert(!em->em_is_child); /* Match if same expression (after stripping relabel) */ em_expr = em->em_expr; diff --git a/contrib/postgres_fdw/sql/postgres_fdw.sql b/contrib/postgres_fdw/sql/postgres_fdw.sql index ea6287b03fd93..e534b40de3c76 100644 --- a/contrib/postgres_fdw/sql/postgres_fdw.sql +++ b/contrib/postgres_fdw/sql/postgres_fdw.sql @@ -213,6 +213,14 @@ ALTER USER MAPPING FOR public SERVER testserver1 ALTER USER MAPPING FOR public SERVER testserver1 OPTIONS (ADD sslkey 'value', ADD sslcert 'value'); +-- OAuth options are not allowed in either context +ALTER SERVER testserver1 OPTIONS (ADD oauth_issuer 'https://example.com'); +ALTER SERVER testserver1 OPTIONS (ADD oauth_client_id 'myID'); +ALTER USER MAPPING FOR public SERVER testserver1 + OPTIONS (ADD oauth_issuer 'https://example.com'); +ALTER USER MAPPING FOR public SERVER testserver1 + OPTIONS (ADD oauth_client_id 'myID'); + ALTER FOREIGN TABLE ft1 OPTIONS (schema_name 'S 1', table_name 'T 1'); ALTER FOREIGN TABLE ft2 OPTIONS (schema_name 'S 1', table_name 'T 1'); ALTER FOREIGN TABLE ft1 ALTER COLUMN c1 OPTIONS (column_name 'C 1'); @@ -707,6 +715,11 @@ SELECT * FROM ft1, ft2, ft4, ft5, local_tbl WHERE ft1.c1 = ft2.c1 AND ft1.c2 = f AND ft1.c2 = ft5.c1 AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft2.c1 < 100 FOR UPDATE; SELECT * FROM ft1, ft2, ft4, ft5, local_tbl WHERE ft1.c1 = ft2.c1 AND ft1.c2 = ft4.c1 AND ft1.c2 = ft5.c1 AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft2.c1 < 100 FOR UPDATE; +EXPLAIN (VERBOSE, COSTS OFF) +SELECT * FROM ft1, ft4, ft5, local_tbl WHERE ft1.c1 = ft4.c1 AND ft1.c1 = ft5.c1 + AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft5.c1 < 100 FOR UPDATE; +SELECT * FROM ft1, ft4, ft5, local_tbl WHERE ft1.c1 = ft4.c1 AND ft1.c1 = ft5.c1 + AND ft1.c2 = local_tbl.c1 AND ft1.c1 < 100 AND ft5.c1 < 100 FOR UPDATE; RESET enable_nestloop; RESET enable_hashjoin; diff --git a/contrib/postgres_fdw/t/001_auth_scram.pl b/contrib/postgres_fdw/t/001_auth_scram.pl index ba178246eb7a1..b94a6a6293bad 100644 --- a/contrib/postgres_fdw/t/001_auth_scram.pl +++ b/contrib/postgres_fdw/t/001_auth_scram.pl @@ -3,7 +3,7 @@ # Test SCRAM authentication when opening a new connection with a foreign # server. # -# The test is executed by testing the SCRAM authentifcation on a looplback +# The test is executed by testing the SCRAM authentifcation on a loopback # connection on the same server and with different servers. use strict; diff --git a/contrib/sepgsql/t/001_sepgsql.pl b/contrib/sepgsql/t/001_sepgsql.pl index cd00e4963dba9..f5e4645e4e6d0 100644 --- a/contrib/sepgsql/t/001_sepgsql.pl +++ b/contrib/sepgsql/t/001_sepgsql.pl @@ -1,5 +1,5 @@ -# Copyright (c) 2024, PostgreSQL Global Development Group +# Copyright (c) 2024-2025, PostgreSQL Global Development Group use strict; use warnings FATAL => 'all'; diff --git a/contrib/spi/.gitignore b/contrib/spi/.gitignore new file mode 100644 index 0000000000000..5dcb3ff972350 --- /dev/null +++ b/contrib/spi/.gitignore @@ -0,0 +1,4 @@ +# Generated subdirectories +/log/ +/results/ +/tmp_check/ diff --git a/contrib/spi/Makefile b/contrib/spi/Makefile index c9c34ff38895b..7ccbef8c9265e 100644 --- a/contrib/spi/Makefile +++ b/contrib/spi/Makefile @@ -10,6 +10,8 @@ DATA = autoinc--1.0.sql \ refint--1.0.sql PGFILEDESC = "spi - examples of using SPI and triggers" +REGRESS = autoinc refint + DOCS = $(addsuffix .example, $(MODULES)) # this is needed for the regression tests; diff --git a/contrib/spi/expected/autoinc.out b/contrib/spi/expected/autoinc.out new file mode 100644 index 0000000000000..07ae8ad1f2b65 --- /dev/null +++ b/contrib/spi/expected/autoinc.out @@ -0,0 +1,50 @@ +CREATE EXTENSION autoinc; +create sequence aitest_seq increment 10 start 0 minvalue 0; +create table aitest ( + price_id int4, + price_val int4, + price_on int4 +); +create trigger aiserial + before insert or update on aitest + for each row + execute procedure + autoinc (price_on, aitest_seq); +insert into aitest values (1, 1, null); +insert into aitest values (2, 2, 0); +insert into aitest values (3, 3, 1); +select * from aitest; + price_id | price_val | price_on +----------+-----------+---------- + 1 | 1 | 10 + 2 | 2 | 20 + 3 | 3 | 1 +(3 rows) + +update aitest set price_on = 11; +select * from aitest; + price_id | price_val | price_on +----------+-----------+---------- + 1 | 1 | 11 + 2 | 2 | 11 + 3 | 3 | 11 +(3 rows) + +update aitest set price_on = 0; +select * from aitest; + price_id | price_val | price_on +----------+-----------+---------- + 1 | 1 | 30 + 2 | 2 | 40 + 3 | 3 | 50 +(3 rows) + +update aitest set price_on = null; +select * from aitest; + price_id | price_val | price_on +----------+-----------+---------- + 1 | 1 | 60 + 2 | 2 | 70 + 3 | 3 | 80 +(3 rows) + diff --git a/contrib/spi/expected/refint.out b/contrib/spi/expected/refint.out new file mode 100644 index 0000000000000..796336032174e --- /dev/null +++ b/contrib/spi/expected/refint.out @@ -0,0 +1,113 @@ +CREATE EXTENSION refint; +create table pkeys (pkey1 int4 not null, pkey2 text not null); +create table fkeys (fkey1 int4, fkey2 text, fkey3 int); +create table fkeys2 (fkey21 int4, fkey22 text, pkey23 int not null); +create index fkeys_i on fkeys (fkey1, fkey2); +create index fkeys2_i on fkeys2 (fkey21, fkey22); +create index fkeys2p_i on fkeys2 (pkey23); +insert into pkeys values (10, '1'); +insert into pkeys values (20, '2'); +insert into pkeys values (30, '3'); +insert into pkeys values (40, '4'); +insert into pkeys values (50, '5'); +insert into pkeys values (60, '6'); +create unique index pkeys_i on pkeys (pkey1, pkey2); +-- +-- For fkeys: +-- (fkey1, fkey2) --> pkeys (pkey1, pkey2) +-- (fkey3) --> fkeys2 (pkey23) +-- +create trigger check_fkeys_pkey_exist + after insert or update on fkeys + for each row + execute function + check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2'); +create trigger check_fkeys_pkey2_exist + after insert or update on fkeys + for each row + execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23'); +-- +-- For fkeys2: +-- (fkey21, fkey22) --> pkeys (pkey1, pkey2) +-- +create trigger check_fkeys2_pkey_exist + after insert or update on fkeys2 + for each row + execute procedure + check_primary_key ('fkey21', 'fkey22', 'pkeys', 'pkey1', 'pkey2'); +-- +-- For pkeys: +-- ON DELETE/UPDATE (pkey1, pkey2) CASCADE: +-- fkeys (fkey1, fkey2) and fkeys2 (fkey21, fkey22) +-- +create trigger check_pkeys_fkey_cascade + after delete or update on pkeys + for each row + execute procedure + check_foreign_key (2, 'cascade', 'pkey1', 'pkey2', + 'fkeys', 'fkey1', 'fkey2', 'fkeys2', 'fkey21', 'fkey22'); +-- +-- For fkeys2: +-- ON DELETE/UPDATE (pkey23) RESTRICT: +-- fkeys (fkey3) +-- +create trigger check_fkeys2_fkey_restrict + after delete or update on fkeys2 + for each row + execute procedure check_foreign_key (1, 'restrict', 'pkey23', 'fkeys', 'fkey3'); +insert into fkeys2 values (10, '1', 1); +insert into fkeys2 values (30, '3', 2); +insert into fkeys2 values (40, '4', 5); +insert into fkeys2 values (50, '5', 3); +-- no key in pkeys +insert into fkeys2 values (70, '5', 3); +ERROR: tuple references non-existent key +DETAIL: Trigger "check_fkeys2_pkey_exist" found tuple referencing non-existent key in "pkeys". +insert into fkeys values (10, '1', 2); +insert into fkeys values (30, '3', 3); +insert into fkeys values (40, '4', 2); +insert into fkeys values (50, '5', 2); +-- no key in pkeys +insert into fkeys values (70, '5', 1); +ERROR: tuple references non-existent key +DETAIL: Trigger "check_fkeys_pkey_exist" found tuple referencing non-existent key in "pkeys". +-- no key in fkeys2 +insert into fkeys values (60, '6', 4); +ERROR: tuple references non-existent key +DETAIL: Trigger "check_fkeys_pkey2_exist" found tuple referencing non-existent key in "fkeys2". +delete from pkeys where pkey1 = 30 and pkey2 = '3'; +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted +ERROR: "check_fkeys2_fkey_restrict": tuple is referenced in "fkeys" +CONTEXT: SQL statement "delete from fkeys2 where fkey21 = $1 and fkey22 = $2 " +delete from pkeys where pkey1 = 40 and pkey2 = '4'; +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted +update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are updated +NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are updated +update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; +ERROR: duplicate key value violates unique constraint "pkeys_i" +DETAIL: Key (pkey1, pkey2)=(7, 70) already exists. +SELECT trigger_name, event_manipulation, event_object_schema, event_object_table, + action_order, action_condition, action_orientation, action_timing, + action_reference_old_table, action_reference_new_table + FROM information_schema.triggers + WHERE event_object_table in ('pkeys', 'fkeys', 'fkeys2') + ORDER BY trigger_name COLLATE "C", 2; + trigger_name | event_manipulation | event_object_schema | event_object_table | action_order | action_condition | action_orientation | action_timing | action_reference_old_table | action_reference_new_table +----------------------------+--------------------+---------------------+--------------------+--------------+------------------+--------------------+---------------+----------------------------+---------------------------- + check_fkeys2_fkey_restrict | DELETE | public | fkeys2 | 1 | | ROW | AFTER | | + check_fkeys2_fkey_restrict | UPDATE | public | fkeys2 | 1 | | ROW | AFTER | | + check_fkeys2_pkey_exist | INSERT | public | fkeys2 | 1 | | ROW | AFTER | | + check_fkeys2_pkey_exist | UPDATE | public | fkeys2 | 2 | | ROW | AFTER | | + check_fkeys_pkey2_exist | INSERT | public | fkeys | 1 | | ROW | AFTER | | + check_fkeys_pkey2_exist | UPDATE | public | fkeys | 1 | | ROW | AFTER | | + check_fkeys_pkey_exist | INSERT | public | fkeys | 2 | | ROW | AFTER | | + check_fkeys_pkey_exist | UPDATE | public | fkeys | 2 | | ROW | AFTER | | + check_pkeys_fkey_cascade | DELETE | public | pkeys | 1 | | ROW | AFTER | | + check_pkeys_fkey_cascade | UPDATE | public | pkeys | 1 | | ROW | AFTER | | +(10 rows) + +DROP TABLE pkeys; +DROP TABLE fkeys; +DROP TABLE fkeys2; diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build index eeab1ab210b69..3832a91019a43 100644 --- a/contrib/spi/meson.build +++ b/contrib/spi/meson.build @@ -107,3 +107,15 @@ install_data('refint.control', 'refint--1.0.sql', install_data('refint.example', kwargs: contrib_doc_args, ) + +tests += { + 'name': 'spi', + 'sd': meson.current_source_dir(), + 'bd': meson.current_build_dir(), + 'regress': { + 'sql': [ + 'autoinc', + 'refint', + ], + }, +} diff --git a/contrib/spi/refint.c b/contrib/spi/refint.c index d954f5c838f19..d5e25e07ae9e2 100644 --- a/contrib/spi/refint.c +++ b/contrib/spi/refint.c @@ -84,6 +84,10 @@ check_primary_key(PG_FUNCTION_ARGS) /* internal error */ elog(ERROR, "check_primary_key: must be fired for row"); + if (!TRIGGER_FIRED_AFTER(trigdata->tg_event)) + /* internal error */ + elog(ERROR, "check_primary_key: must be fired by AFTER trigger"); + /* If INSERTion then must check Tuple to being inserted */ if (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event)) tuple = trigdata->tg_trigtuple; @@ -287,6 +291,10 @@ check_foreign_key(PG_FUNCTION_ARGS) /* internal error */ elog(ERROR, "check_foreign_key: cannot process INSERT events"); + if (!TRIGGER_FIRED_AFTER(trigdata->tg_event)) + /* internal error */ + elog(ERROR, "check_foreign_key: must be fired by AFTER trigger"); + /* Have to check tg_trigtuple - tuple being deleted */ trigtuple = trigdata->tg_trigtuple; @@ -338,10 +346,10 @@ check_foreign_key(PG_FUNCTION_ARGS) kvals = (Datum *) palloc(nkeys * sizeof(Datum)); /* - * Construct ident string as TriggerName $ TriggeredRelationId and try to - * find prepared execution plan(s). + * Construct ident string as TriggerName $ TriggeredRelationId $ + * OperationType and try to find prepared execution plan(s). */ - snprintf(ident, sizeof(ident), "%s$%u", trigger->tgname, rel->rd_id); + snprintf(ident, sizeof(ident), "%s$%u$%c", trigger->tgname, rel->rd_id, is_update ? 'U' : 'D'); plan = find_plan(ident, &FPlans, &nFPlans); /* if there is no plan(s) then allocate argtypes for preparation */ @@ -573,8 +581,6 @@ check_foreign_key(PG_FUNCTION_ARGS) relname = args[0]; - snprintf(ident, sizeof(ident), "%s$%u", trigger->tgname, rel->rd_id); - plan = find_plan(ident, &FPlans, &nFPlans); ret = SPI_execp(plan->splan[r], kvals, NULL, tcount); /* we have no NULLs - so we pass ^^^^ here */ @@ -596,9 +602,15 @@ check_foreign_key(PG_FUNCTION_ARGS) else { #ifdef REFINT_VERBOSE + const char *operation; + + if (action == 'c') + operation = is_update ? "updated" : "deleted"; + else + operation = "set to null"; + elog(NOTICE, "%s: " UINT64_FORMAT " tuple(s) of %s are %s", - trigger->tgname, SPI_processed, relname, - (action == 'c') ? "deleted" : "set to null"); + trigger->tgname, SPI_processed, relname, operation); #endif } args += nkeys + 1; /* to the next relation */ diff --git a/contrib/spi/sql/autoinc.sql b/contrib/spi/sql/autoinc.sql new file mode 100644 index 0000000000000..b240dcdc082f7 --- /dev/null +++ b/contrib/spi/sql/autoinc.sql @@ -0,0 +1,33 @@ +CREATE EXTENSION autoinc; + +create sequence aitest_seq increment 10 start 0 minvalue 0; + +create table aitest ( + price_id int4, + price_val int4, + price_on int4 +); + +create trigger aiserial + before insert or update on aitest + for each row + execute procedure + autoinc (price_on, aitest_seq); + +insert into aitest values (1, 1, null); +insert into aitest values (2, 2, 0); +insert into aitest values (3, 3, 1); + +select * from aitest; + +update aitest set price_on = 11; + +select * from aitest; + +update aitest set price_on = 0; + +select * from aitest; + +update aitest set price_on = null; + +select * from aitest; diff --git a/contrib/spi/sql/refint.sql b/contrib/spi/sql/refint.sql new file mode 100644 index 0000000000000..63458127917ba --- /dev/null +++ b/contrib/spi/sql/refint.sql @@ -0,0 +1,97 @@ +CREATE EXTENSION refint; + +create table pkeys (pkey1 int4 not null, pkey2 text not null); +create table fkeys (fkey1 int4, fkey2 text, fkey3 int); +create table fkeys2 (fkey21 int4, fkey22 text, pkey23 int not null); + +create index fkeys_i on fkeys (fkey1, fkey2); +create index fkeys2_i on fkeys2 (fkey21, fkey22); +create index fkeys2p_i on fkeys2 (pkey23); + +insert into pkeys values (10, '1'); +insert into pkeys values (20, '2'); +insert into pkeys values (30, '3'); +insert into pkeys values (40, '4'); +insert into pkeys values (50, '5'); +insert into pkeys values (60, '6'); +create unique index pkeys_i on pkeys (pkey1, pkey2); + +-- +-- For fkeys: +-- (fkey1, fkey2) --> pkeys (pkey1, pkey2) +-- (fkey3) --> fkeys2 (pkey23) +-- +create trigger check_fkeys_pkey_exist + after insert or update on fkeys + for each row + execute function + check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2'); + +create trigger check_fkeys_pkey2_exist + after insert or update on fkeys + for each row + execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23'); + +-- +-- For fkeys2: +-- (fkey21, fkey22) --> pkeys (pkey1, pkey2) +-- +create trigger check_fkeys2_pkey_exist + after insert or update on fkeys2 + for each row + execute procedure + check_primary_key ('fkey21', 'fkey22', 'pkeys', 'pkey1', 'pkey2'); + +-- +-- For pkeys: +-- ON DELETE/UPDATE (pkey1, pkey2) CASCADE: +-- fkeys (fkey1, fkey2) and fkeys2 (fkey21, fkey22) +-- +create trigger check_pkeys_fkey_cascade + after delete or update on pkeys + for each row + execute procedure + check_foreign_key (2, 'cascade', 'pkey1', 'pkey2', + 'fkeys', 'fkey1', 'fkey2', 'fkeys2', 'fkey21', 'fkey22'); + +-- +-- For fkeys2: +-- ON DELETE/UPDATE (pkey23) RESTRICT: +-- fkeys (fkey3) +-- +create trigger check_fkeys2_fkey_restrict + after delete or update on fkeys2 + for each row + execute procedure check_foreign_key (1, 'restrict', 'pkey23', 'fkeys', 'fkey3'); + +insert into fkeys2 values (10, '1', 1); +insert into fkeys2 values (30, '3', 2); +insert into fkeys2 values (40, '4', 5); +insert into fkeys2 values (50, '5', 3); +-- no key in pkeys +insert into fkeys2 values (70, '5', 3); + +insert into fkeys values (10, '1', 2); +insert into fkeys values (30, '3', 3); +insert into fkeys values (40, '4', 2); +insert into fkeys values (50, '5', 2); +-- no key in pkeys +insert into fkeys values (70, '5', 1); +-- no key in fkeys2 +insert into fkeys values (60, '6', 4); + +delete from pkeys where pkey1 = 30 and pkey2 = '3'; +delete from pkeys where pkey1 = 40 and pkey2 = '4'; +update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; +update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; + +SELECT trigger_name, event_manipulation, event_object_schema, event_object_table, + action_order, action_condition, action_orientation, action_timing, + action_reference_old_table, action_reference_new_table + FROM information_schema.triggers + WHERE event_object_table in ('pkeys', 'fkeys', 'fkeys2') + ORDER BY trigger_name COLLATE "C", 2; + +DROP TABLE pkeys; +DROP TABLE fkeys; +DROP TABLE fkeys2; diff --git a/contrib/test_decoding/Makefile b/contrib/test_decoding/Makefile index a4ba1a509aec2..02e961f4d3144 100644 --- a/contrib/test_decoding/Makefile +++ b/contrib/test_decoding/Makefile @@ -9,7 +9,7 @@ REGRESS = ddl xact rewrite toast permissions decoding_in_xact \ ISOLATION = mxact delayed_startup ondisk_startup concurrent_ddl_dml \ oldest_xmin snapshot_transfer subxact_without_top concurrent_stream \ twophase_snapshot slot_creation_error catalog_change_snapshot \ - skip_snapshot_restore + skip_snapshot_restore invalidation_distribution REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf ISOLATION_OPTS = --temp-config $(top_srcdir)/contrib/test_decoding/logical.conf diff --git a/contrib/test_decoding/expected/invalidation_distribution.out b/contrib/test_decoding/expected/invalidation_distribution.out new file mode 100644 index 0000000000000..ad0a944cbf303 --- /dev/null +++ b/contrib/test_decoding/expected/invalidation_distribution.out @@ -0,0 +1,20 @@ +Parsed test spec with 2 sessions + +starting permutation: s1_insert_tbl1 s1_begin s1_insert_tbl1 s2_alter_pub_add_tbl s1_commit s1_insert_tbl1 s2_get_binary_changes +step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); +step s1_begin: BEGIN; +step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); +step s2_alter_pub_add_tbl: ALTER PUBLICATION pub ADD TABLE tbl1; +step s1_commit: COMMIT; +step s1_insert_tbl1: INSERT INTO tbl1 (val1, val2) VALUES (1, 1); +step s2_get_binary_changes: SELECT count(data) FROM pg_logical_slot_get_binary_changes('isolation_slot', NULL, NULL, 'proto_version', '4', 'publication_names', 'pub') WHERE get_byte(data, 0) = 73; +count +----- + 1 +(1 row) + +?column? +-------- +stop +(1 row) + diff --git a/contrib/test_decoding/expected/oldest_xmin.out b/contrib/test_decoding/expected/oldest_xmin.out index dd6053f9c1f4b..57268b38d3322 100644 --- a/contrib/test_decoding/expected/oldest_xmin.out +++ b/contrib/test_decoding/expected/oldest_xmin.out @@ -38,3 +38,44 @@ COMMIT stop (1 row) + +starting permutation: s0_begin s0_getxid s1_begin s1_insert s0_alter s0_commit s0_checkpoint s0_advance_slot s0_advance_slot s1_commit s0_vacuum s0_get_changes +step s0_begin: BEGIN; +step s0_getxid: SELECT pg_current_xact_id() IS NULL; +?column? +-------- +f +(1 row) + +step s1_begin: BEGIN; +step s1_insert: INSERT INTO harvest VALUES ((1, 2, 3)); +step s0_alter: ALTER TYPE basket DROP ATTRIBUTE mangos; +step s0_commit: COMMIT; +step s0_checkpoint: CHECKPOINT; +step s0_advance_slot: SELECT slot_name FROM pg_replication_slot_advance('isolation_slot', pg_current_wal_lsn()); +slot_name +-------------- +isolation_slot +(1 row) + +step s0_advance_slot: SELECT slot_name FROM pg_replication_slot_advance('isolation_slot', pg_current_wal_lsn()); +slot_name +-------------- +isolation_slot +(1 row) + +step s1_commit: COMMIT; +step s0_vacuum: VACUUM pg_attribute; +step s0_get_changes: SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +data +------------------------------------------------------ +BEGIN +table public.harvest: INSERT: fruits[basket]:'(1,2,3)' +COMMIT +(3 rows) + +?column? +-------- +stop +(1 row) + diff --git a/contrib/test_decoding/meson.build b/contrib/test_decoding/meson.build index 54d65d3f30f8a..25f6b8a90826b 100644 --- a/contrib/test_decoding/meson.build +++ b/contrib/test_decoding/meson.build @@ -63,6 +63,7 @@ tests += { 'twophase_snapshot', 'slot_creation_error', 'skip_snapshot_restore', + 'invalidation_distribution', ], 'regress_args': [ '--temp-config', files('logical.conf'), diff --git a/contrib/test_decoding/specs/invalidation_distribution.spec b/contrib/test_decoding/specs/invalidation_distribution.spec new file mode 100644 index 0000000000000..decbed627e327 --- /dev/null +++ b/contrib/test_decoding/specs/invalidation_distribution.spec @@ -0,0 +1,32 @@ +# Test that catalog cache invalidation messages are distributed to ongoing +# transactions, ensuring they can access the updated catalog content after +# processing these messages. +setup +{ + SELECT 'init' FROM pg_create_logical_replication_slot('isolation_slot', 'pgoutput'); + CREATE TABLE tbl1(val1 integer, val2 integer); + CREATE PUBLICATION pub; +} + +teardown +{ + DROP TABLE tbl1; + DROP PUBLICATION pub; + SELECT 'stop' FROM pg_drop_replication_slot('isolation_slot'); +} + +session "s1" +setup { SET synchronous_commit=on; } + +step "s1_begin" { BEGIN; } +step "s1_insert_tbl1" { INSERT INTO tbl1 (val1, val2) VALUES (1, 1); } +step "s1_commit" { COMMIT; } + +session "s2" +setup { SET synchronous_commit=on; } + +step "s2_alter_pub_add_tbl" { ALTER PUBLICATION pub ADD TABLE tbl1; } +step "s2_get_binary_changes" { SELECT count(data) FROM pg_logical_slot_get_binary_changes('isolation_slot', NULL, NULL, 'proto_version', '4', 'publication_names', 'pub') WHERE get_byte(data, 0) = 73; } + +# Expect to get one insert change. LOGICAL_REP_MSG_INSERT = 'I' +permutation "s1_insert_tbl1" "s1_begin" "s1_insert_tbl1" "s2_alter_pub_add_tbl" "s1_commit" "s1_insert_tbl1" "s2_get_binary_changes" diff --git a/contrib/test_decoding/specs/oldest_xmin.spec b/contrib/test_decoding/specs/oldest_xmin.spec index 88bd30f5ff76c..7f2fe3d7ed776 100644 --- a/contrib/test_decoding/specs/oldest_xmin.spec +++ b/contrib/test_decoding/specs/oldest_xmin.spec @@ -25,6 +25,7 @@ step "s0_commit" { COMMIT; } step "s0_checkpoint" { CHECKPOINT; } step "s0_vacuum" { VACUUM pg_attribute; } step "s0_get_changes" { SELECT data FROM pg_logical_slot_get_changes('isolation_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); } +step "s0_advance_slot" { SELECT slot_name FROM pg_replication_slot_advance('isolation_slot', pg_current_wal_lsn()); } session "s1" setup { SET synchronous_commit=on; } @@ -40,3 +41,7 @@ step "s1_commit" { COMMIT; } # will be removed (xmax set) before T1 commits. That is, interlocking doesn't # forbid modifying catalog after someone read it (and didn't commit yet). permutation "s0_begin" "s0_getxid" "s1_begin" "s1_insert" "s0_alter" "s0_commit" "s0_checkpoint" "s0_get_changes" "s0_get_changes" "s1_commit" "s0_vacuum" "s0_get_changes" + +# Perform the same testing process as described above, but use advance_slot to +# forces xmin advancement during fast forward decoding. +permutation "s0_begin" "s0_getxid" "s1_begin" "s1_insert" "s0_alter" "s0_commit" "s0_checkpoint" "s0_advance_slot" "s0_advance_slot" "s1_commit" "s0_vacuum" "s0_get_changes" diff --git a/doc/src/sgml/README.non-ASCII b/doc/src/sgml/README.non-ASCII index 9c21e02e8f220..e9065a33ad6f2 100644 --- a/doc/src/sgml/README.non-ASCII +++ b/doc/src/sgml/README.non-ASCII @@ -22,13 +22,14 @@ others only support Latin-1 characters. Specifically, the PDF rendering engine can only display Latin-1 characters; non-Latin-1 Unicode characters are displayed as "###". -Therefore, in the SGML files, we only use Latin-1 characters. We -typically encode these characters as HTML entities, e.g., Álvaro. -It is also possible to safely represent Latin-1 characters in UTF8 -encoding for all output formats. +Therefore, in the SGML files, we can only use Latin-1 characters. We +can use UTF8 representations of Latin-1 characters, or HTML entities of +Latin-1 characters, e.g., Álvaro. Do not use UTF numeric character escapes (&#nnn;). +When building the PDF docs, problem characters will appear as warnings. + HTML entities official: http://www.w3.org/TR/html4/sgml/entities.html one page: http://www.zipcon.net/~swhite/docs/computers/browsers/entities_page.html diff --git a/doc/src/sgml/amcheck.sgml b/doc/src/sgml/amcheck.sgml index 98f836e15e79e..211a0ae1945bb 100644 --- a/doc/src/sgml/amcheck.sgml +++ b/doc/src/sgml/amcheck.sgml @@ -201,7 +201,7 @@ ORDER BY c.relpages DESC LIMIT 10; gin_index_check tests that its target GIN index has consistent parent-child tuples relations (no parent tuples - require tuple adjustement) and page graph respects balanced-tree + require tuple adjustment) and page graph respects balanced-tree invariants (internal pages reference only leaf page or only internal pages). diff --git a/doc/src/sgml/btree-gist.sgml b/doc/src/sgml/btree-gist.sgml index 31e7c78aaef49..a4c1b99be1faf 100644 --- a/doc/src/sgml/btree-gist.sgml +++ b/doc/src/sgml/btree-gist.sgml @@ -52,6 +52,13 @@ oid, and money. + + By default btree_gist builds GiST index with + sortsupport in sorted mode. This usually results in + much faster index built speed. It is still possible to revert to buffered built strategy + by using the buffering parameter when creating the index. + + This module is considered trusted, that is, it can be installed by non-superusers who have CREATE privilege diff --git a/doc/src/sgml/btree.sgml b/doc/src/sgml/btree.sgml index 2b3997988cff0..027361f20bbed 100644 --- a/doc/src/sgml/btree.sgml +++ b/doc/src/sgml/btree.sgml @@ -207,7 +207,7 @@ As shown in , btree defines - one required and four optional support functions. The five + one required and five optional support functions. The six user-defined methods are: @@ -583,6 +583,35 @@ options(relopts local_relopts *) returns + + skipsupport + + + Optionally, a btree operator family may provide a skip + support function, registered under support function number 6. + These functions give the B-tree code a way to iterate through every + possible value that can be represented by an operator class's underlying + input type, in key space order. This is used by the core code when it + applies the skip scan optimization. The APIs involved in this are + defined in src/include/utils/skipsupport.h. + + + Operator classes that do not provide a skip support function are still + eligible to use skip scan. The core code can still use its fallback + strategy, though that might be suboptimal for some discrete types. It + usually doesn't make sense (and may not even be feasible) for operator + classes on continuous types to provide a skip support function. + + + It is not sensible for an operator family to register a cross-type + skipsupport function, and attempting to do so will + result in an error. This is because determining the next indexable value + must happen by incrementing a value copied from an index tuple. The + values generated must all be of the same underlying data type (the + skipped index column's opclass input type). + + + diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index fb05063555153..cbd4e40a320b3 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -1260,7 +1260,7 @@ attnotnull bool - This column has a not-null constraint. + This column has a (possibly invalid) not-null constraint. @@ -2620,7 +2620,6 @@ SCRAM-SHA-256$<iteration count>:&l Is the constraint enforced? - Currently, can be false only for CHECK constraints @@ -3361,7 +3360,8 @@ SCRAM-SHA-256$<iteration count>:&l S = sequence, f = function, T = type, - n = schema + n = schema, + L = large object diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index fea683cb49ce0..ca2a567b2b19f 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -140,7 +140,7 @@ An example of what this file might look like is: # This is a comment -log_connections = yes +log_connections = all log_destination = 'syslog' search_path = '"$user", public' shared_buffers = 128MB @@ -337,7 +337,7 @@ UPDATE pg_settings SET setting = reset_val WHERE name = 'configuration_parameter command-line parameter, or its equivalent variation. For example, -postgres -c log_connections=yes --log-destination='syslog' +postgres -c log_connections=all --log-destination='syslog' Settings provided in this way override those set via postgresql.conf or ALTER SYSTEM, @@ -1155,6 +1155,22 @@ include_dir 'conf.d' + + md5_password_warnings (boolean) + + md5_password_warnings configuration parameter + + + + + Controls whether a WARNING about MD5 password + deprecation is produced when a CREATE ROLE or + ALTER ROLE statement sets an MD5-encrypted password. + The default value is on. + + + + krb_server_keyfile (string) @@ -2347,6 +2363,44 @@ include_dir 'conf.d' + + file_copy_method (enum) + + file_copy_method configuration parameter + + + + + Specifies the method used to copy files. + Possible values are COPY (default) and + CLONE (if operating support is available). + + + + This parameter affects: + + + + + CREATE DATABASE ... STRATEGY=FILE_COPY + + + + + ALTER DATABASE ... SET TABLESPACE ... + + + + + + CLONE uses the copy_file_range() + (Linux, FreeBSD) or copyfile + (macOS) system calls, giving the kernel the opportunity to share disk + blocks or push work down to lower layers on some file systems. + + + + max_notify_queue_pages (integer) @@ -2379,8 +2433,9 @@ include_dir 'conf.d' Sets the maximum number of open files each server subprocess is - allowed to open simultaneously, in addition to the files already open - in postmaster. The default is one thousand files. + allowed to open simultaneously; files already opened in the + postmaster are not counted toward this limit. The default is one + thousand files. If the kernel is enforcing @@ -4473,7 +4528,6 @@ restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows max_replication_slots (integer) max_replication_slots configuration parameter - in a sending server @@ -5244,7 +5298,6 @@ ANY num_sync ( - md5_password_warnings (boolean) - - md5_password_warnings configuration parameter - - - - - Controls whether a WARNING about MD5 password - deprecation is produced when a CREATE ROLE or - ALTER ROLE statement sets an MD5-encrypted password. - The default value is on. - - - - @@ -9513,8 +9556,8 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv; - Note that when eager scanning is enabled, successful page freezes do - not count against the cap on eager freeze failures. Successful page + Note that when eager scanning is enabled, only freeze failures + count against the cap, not successful freezing. Successful page freezes are capped internally at 20% of the all-visible but not all-frozen pages in the relation. Capping successful page freezes helps amortize the overhead across multiple normal vacuums and limits the @@ -10987,16 +11030,17 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' (Use pg_config --sharedir to find out the name of this directory.) For example: -extension_control_path = '/usr/local/share/postgresql/extension:/home/my_project/share/extension:$system' +extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$system' or, in a Windows environment: -extension_control_path = 'C:\tools\postgresql\extension;H:\my_project\share\extension;$system' +extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system' - Note that the path elements should typically end in - extension if the normal installation layouts are - followed. (The value for $system already includes - the extension suffix.) + Note that the specified paths elements are expected to have a + subdirectory extension which will contain the + .control and .sql files; the + extension suffix is automatically appended to + each path element. @@ -11021,7 +11065,7 @@ extension_control_path = 'C:\tools\postgresql\extension;H:\my_project\share\exte linkend="guc-dynamic-library-path"/> to a correspondent location, for example, -extension_control_path = '/usr/local/share/postgresql/extension:$system' +extension_control_path = '/usr/local/share/postgresql:$system' dynamic_library_path = '/usr/local/lib/postgresql:$libdir' diff --git a/doc/src/sgml/contrib-spi.sgml b/doc/src/sgml/contrib-spi.sgml index e7cae4e38dcce..6fa9479d1b992 100644 --- a/doc/src/sgml/contrib-spi.sgml +++ b/doc/src/sgml/contrib-spi.sgml @@ -36,7 +36,7 @@ check_primary_key() checks the referencing table. - To use, create a BEFORE INSERT OR UPDATE trigger using this + To use, create an AFTER INSERT OR UPDATE trigger using this function on a table referencing another table. Specify as the trigger arguments: the referencing table's column name(s) which form the foreign key, the referenced table name, and the column names in the referenced table @@ -46,7 +46,7 @@ check_foreign_key() checks the referenced table. - To use, create a BEFORE DELETE OR UPDATE trigger using this + To use, create an AFTER DELETE OR UPDATE trigger using this function on a table referenced by other table(s). Specify as the trigger arguments: the number of referencing tables for which the function has to perform checking, the action if a referencing key is found @@ -60,6 +60,16 @@ unique index. + + Note that if these triggers are executed from + another BEFORE trigger, they can fail unexpectedly. For + example, if a user inserts row1 and then the BEFORE + trigger inserts row2 and calls a trigger with the + check_foreign_key(), + the check_foreign_key() + function will not see row1 and will fail. + + There are examples in refint.example. @@ -71,10 +81,12 @@ autoinc() is a trigger that stores the next value of a sequence into an integer field. This has some overlap with the - built-in serial column feature, but it is not the same: - autoinc() will override attempts to substitute a - different field value during inserts, and optionally it can be - used to increment the field during updates, too. + built-in serial column feature, but it is not the same. + The trigger will replace the field's value only if that value is + initially zero or null (after the action of the SQL statement that + inserted or updated the row). Also, if the sequence's next value is + zero, nextval() will be called a second time in + order to obtain a non-zero value. diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index cdb1a07e9d3bf..fcd1cb85352fc 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -1764,9 +1764,6 @@ ALTER TABLE products ALTER COLUMN product_no SET NOT NULL; ALTER TABLE products DROP CONSTRAINT some_name; - (If you are dealing with a generated constraint name like $2, - don't forget that you'll need to double-quote it to make it a valid - identifier.) @@ -5075,7 +5072,13 @@ EXPLAIN SELECT count(*) FROM measurement WHERE logdate >= DATE '2008-01-01'; It is possible to determine the number of partitions which were removed during this phase by observing the Subplans Removed property in the - EXPLAIN output. + EXPLAIN output. The query planner obtains locks for + all partitions which are part of the plan. However, when the executor + uses a cached plan, locks are only obtained on the partitions which + remain after partition pruning done during the initialization phase of + execution, i.e., the ones shown in the EXPLAIN + output and not the ones referred to by the + Subplans Removed property. diff --git a/doc/src/sgml/extend.sgml b/doc/src/sgml/extend.sgml index 64f8e133caeb3..63c5ec6d1eb99 100644 --- a/doc/src/sgml/extend.sgml +++ b/doc/src/sgml/extend.sgml @@ -674,7 +674,7 @@ RETURNS anycompatible AS ... The directory containing the extension's SQL script file(s). Unless an absolute path is given, the name is relative to - the installation's SHAREDIR directory. By default, + the directory where the control file was found. By default, the script files are looked for in the same directory where the control file was found. @@ -1344,8 +1344,8 @@ SELECT * FROM pg_extension_update_paths('extension_namesearch_path; do not trust the path provided by CREATE/ALTER EXTENSION to be secure. Best practice is to temporarily - set search_path to 'pg_catalog, - pg_temp' and insert references to the extension's + set search_path to pg_catalog, + pg_temp and insert references to the extension's installation schema explicitly where needed. (This practice might also be helpful for creating views.) Examples can be found in the contrib modules in @@ -1809,10 +1809,36 @@ include $(PGXS) setting PG_CONFIG to point to its pg_config program, either within the makefile or on the make command line. - You can also select a separate installation directory for your extension - by setting the make variable prefix - on the make command line. (But this will then require - additional setup to get the server to find the extension there.) + + + + You can select a separate directory prefix in which to install your + extension's files, by setting the make variable + prefix when executing make install + like so: + +make install prefix=/usr/local/postgresql + + This will install the extension control and SQL files into + /usr/local/postgresql/share and the shared modules into + /usr/local/postgresql/lib. If the prefix does not + include the strings postgres or + pgsql, such as + +make install prefix=/usr/local/extras + + then postgresql will be appended to the directory + names, installing the control and SQL files into + /usr/local/extras/share/postgresql/extension and the + shared modules into /usr/local/extras/lib/postgresql. + Either way, you'll need to set and to enable the + PostgreSQL server to find the files: + +extension_control_path = '/usr/local/extras/share/postgresql:$system' +dynamic_library_path = '/usr/local/extras/lib/postgresql:$libdir' + diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 2488e9ba99825..c67688cbf5f98 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -10905,7 +10905,7 @@ SELECT date_bin('15 minutes', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-0 - <literal>AT TIME ZONE and AT LOCAL</literal> + <literal>AT TIME ZONE</literal> and <literal>AT LOCAL</literal> time zone @@ -25143,6 +25143,19 @@ SELECT * FROM pg_ls_dir('.') WITH ORDINALITY AS t(ls,n); + + + + pg_numa_available + + pg_numa_available () + boolean + + + Returns true if the server has been compiled with NUMA support. + + + @@ -28576,6 +28589,11 @@ acl | {postgres=arwdDxtm/postgres,foo=r/postgres} use false instead. This function corresponds to the SQL command . + + set_config accepts the NULL value for + new_value, but as settings cannot be null, it + is interpreted as a request to reset the setting to its default value. + set_config('log_statement_stats', 'off', false) off @@ -28766,16 +28784,16 @@ One message for each memory context will be logged. For example: LOG: logging memory contexts of PID 10377 STATEMENT: SELECT pg_log_backend_memory_contexts(pg_backend_pid()); -LOG: level: 0; TopMemoryContext: 80800 total in 6 blocks; 14432 free (5 chunks); 66368 used -LOG: level: 1; pgstat TabStatusArray lookup hash table: 8192 total in 1 blocks; 1408 free (0 chunks); 6784 used -LOG: level: 1; TopTransactionContext: 8192 total in 1 blocks; 7720 free (1 chunks); 472 used -LOG: level: 1; RowDescriptionContext: 8192 total in 1 blocks; 6880 free (0 chunks); 1312 used -LOG: level: 1; MessageContext: 16384 total in 2 blocks; 5152 free (0 chunks); 11232 used -LOG: level: 1; Operator class cache: 8192 total in 1 blocks; 512 free (0 chunks); 7680 used -LOG: level: 1; smgr relation table: 16384 total in 2 blocks; 4544 free (3 chunks); 11840 used -LOG: level: 1; TransactionAbortContext: 32768 total in 1 blocks; 32504 free (0 chunks); 264 used +LOG: level: 1; TopMemoryContext: 80800 total in 6 blocks; 14432 free (5 chunks); 66368 used +LOG: level: 2; pgstat TabStatusArray lookup hash table: 8192 total in 1 blocks; 1408 free (0 chunks); 6784 used +LOG: level: 2; TopTransactionContext: 8192 total in 1 blocks; 7720 free (1 chunks); 472 used +LOG: level: 2; RowDescriptionContext: 8192 total in 1 blocks; 6880 free (0 chunks); 1312 used +LOG: level: 2; MessageContext: 16384 total in 2 blocks; 5152 free (0 chunks); 11232 used +LOG: level: 2; Operator class cache: 8192 total in 1 blocks; 512 free (0 chunks); 7680 used +LOG: level: 2; smgr relation table: 16384 total in 2 blocks; 4544 free (3 chunks); 11840 used +LOG: level: 2; TransactionAbortContext: 32768 total in 1 blocks; 32504 free (0 chunks); 264 used ... -LOG: level: 1; ErrorContext: 8192 total in 1 blocks; 7928 free (3 chunks); 264 used +LOG: level: 2; ErrorContext: 8192 total in 1 blocks; 7928 free (3 chunks); 264 used LOG: Grand total: 1651920 bytes in 201 blocks; 622360 free (88 chunks); 1029560 used If there are more than 100 child contexts under the same parent, the first @@ -29598,7 +29616,8 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset The copied physical slot starts to reserve WAL from the same LSN as the source slot. temporary is optional. If temporary - is omitted, the same value as the source slot is used. + is omitted, the same value as the source slot is used. Copy of an + invalidated slot is not allowed. @@ -29623,7 +29642,8 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset The failover option of the source logical slot is not copied and is set to false by default. This is to avoid the risk of being unable to continue logical replication - after failover to standby where the slot is being synchronized. + after failover to standby where the slot is being synchronized. Copy of + an invalidated slot is not allowed. @@ -29749,6 +29769,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset Creates a replication origin with the given external name, and returns the internal ID assigned to it. + The name must be no longer than 512 bytes. @@ -30448,7 +30469,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset arguments are passed as pairs of argname and argvalue in the form: - SELECT pg_restore_relation_stats( +SELECT pg_restore_relation_stats( 'arg1name', 'arg1value'::arg1type, 'arg2name', 'arg2value'::arg2type, 'arg3name', 'arg3value'::arg3type); @@ -30459,7 +30480,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset reltuples values for the table mytable: - SELECT pg_restore_relation_stats( +SELECT pg_restore_relation_stats( 'schemaname', 'myschema', 'relname', 'mytable', 'relpages', 173::integer, @@ -30541,7 +30562,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset arguments are passed as pairs of argname and argvalue in the form: - SELECT pg_restore_attribute_stats( +SELECT pg_restore_attribute_stats( 'arg1name', 'arg1value'::arg1type, 'arg2name', 'arg2value'::arg2type, 'arg3name', 'arg3value'::arg3type); @@ -30553,7 +30574,7 @@ postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset col1 of the table mytable: - SELECT pg_restore_attribute_stats( +SELECT pg_restore_attribute_stats( 'schemaname', 'myschema', 'relname', 'mytable', 'attname', 'col1', diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml index acf3ac0601d23..b47d8b4106efb 100644 --- a/doc/src/sgml/high-availability.sgml +++ b/doc/src/sgml/high-availability.sgml @@ -1535,7 +1535,8 @@ synchronous_standby_names = 'ANY 2 (s1, s2, s3)' When the parameter is set to true on a standby server, it will begin accepting connections once the recovery has - brought the system to a consistent state. All such connections are + brought the system to a consistent state and be ready for hot standby. + All such connections are strictly read-only; not even temporary tables may be written. @@ -1974,9 +1975,12 @@ LOG: database system is ready to accept read-only connections Consistency information is recorded once per checkpoint on the primary. It is not possible to enable hot standby when reading WAL written during a period when wal_level was not set to - replica or logical on the primary. Reaching - a consistent state can also be delayed in the presence of both of these - conditions: + replica or logical on the primary. + Even after reaching a consistent state, the recovery snapshot may not + be ready for hot standby if both of the following conditions are met, + delaying accepting read-only connections. To enable hot standby, + long-lived write transactions with more than 64 subtransactions + need to be closed on the primary. diff --git a/doc/src/sgml/history.sgml b/doc/src/sgml/history.sgml index 856c9b01ded85..8bfa1db670d7a 100644 --- a/doc/src/sgml/history.sgml +++ b/doc/src/sgml/history.sgml @@ -203,11 +203,10 @@ - Many people continue to refer to - PostgreSQL as Postgres - (now rarely in all capital letters) because of tradition or because - it is easier to pronounce. This usage is widely accepted as a - nickname or alias. + Postgres is still considered an official + project name, both because of tradition and because people find it + easier to pronounce Postgres than + PostgreSQL. diff --git a/doc/src/sgml/indexam.sgml b/doc/src/sgml/indexam.sgml index 768b77aa0d2ba..1aa4741a8eaee 100644 --- a/doc/src/sgml/indexam.sgml +++ b/doc/src/sgml/indexam.sgml @@ -835,7 +835,8 @@ amrestrpos (IndexScanDesc scan); Size -amestimateparallelscan (int nkeys, +amestimateparallelscan (Relation indexRelation, + int nkeys, int norderbys); Estimate and return the number of bytes of dynamic shared memory which @@ -894,7 +895,7 @@ amtranslatestrategy (StrategyNumber strategy, Oid opfamily, Oid opcintype); StrategyNumber amtranslatecmptype (CompareType cmptype, Oid opfamily, Oid opcintype); - These functions, if implemented, will be called by the planer and executor + These functions, if implemented, will be called by the planner and executor to convert between fixed CompareType values and the specific strategy numbers used by the access method. These functions can be implemented by access methods that implement functionality similar to the diff --git a/doc/src/sgml/indices.sgml b/doc/src/sgml/indices.sgml index 6d731e0701fdd..9c4f76abf0dcd 100644 --- a/doc/src/sgml/indices.sgml +++ b/doc/src/sgml/indices.sgml @@ -460,20 +460,56 @@ CREATE INDEX test2_mm_idx ON test2 (major, minor); efficient when there are constraints on the leading (leftmost) columns. The exact rule is that equality constraints on leading columns, plus any inequality constraints on the first column that does not have an - equality constraint, will be used to limit the portion of the index + equality constraint, will always be used to limit the portion of the index that is scanned. Constraints on columns to the right of these columns - are checked in the index, so they save visits to the table proper, but - they do not reduce the portion of the index that has to be scanned. + are checked in the index, so they'll always save visits to the table + proper, but they do not necessarily reduce the portion of the index that + has to be scanned. If a B-tree index scan can apply the skip scan + optimization effectively, it will apply every column constraint when + navigating through the index via repeated index searches. This can reduce + the portion of the index that has to be read, even though one or more + columns (prior to the least significant index column from the query + predicate) lacks a conventional equality constraint. Skip scan works by + generating a dynamic equality constraint internally, that matches every + possible value in an index column (though only given a column that lacks + an equality constraint that comes from the query predicate, and only when + the generated constraint can be used in conjunction with a later column + constraint from the query predicate). + + + + For example, given an index on (x, y), and a query + condition WHERE y = 7700, a B-tree index scan might be + able to apply the skip scan optimization. This generally happens when the + query planner expects that repeated WHERE x = N AND y = 7700 + searches for every possible value of N (or for every + x value that is actually stored in the index) is the + fastest possible approach, given the available indexes on the table. This + approach is generally only taken when there are so few distinct + x values that the planner expects the scan to skip over + most of the index (because most of its leaf pages cannot possibly contain + relevant tuples). If there are many distinct x values, + then the entire index will have to be scanned, so in most cases the planner + will prefer a sequential table scan over using the index. + + + + The skip scan optimization can also be applied selectively, during B-tree + scans that have at least some useful constraints from the query predicate. For example, given an index on (a, b, c) and a query condition WHERE a = 5 AND b >= 42 AND c < 77, - the index would have to be scanned from the first entry with - a = 5 and b = 42 up through the last entry with - a = 5. Index entries with c >= 77 would be - skipped, but they'd still have to be scanned through. - This index could in principle be used for queries that have constraints - on b and/or c with no constraint on a - — but the entire index would have to be scanned, so in most cases - the planner would prefer a sequential table scan over using the index. + the index might have to be scanned from the first entry with + a = 5 and b = 42 up through the last + entry with a = 5. Index entries with + c >= 77 will never need to be filtered at the table + level, but it may or may not be profitable to skip over them within the + index. When skipping takes place, the scan starts a new index search to + reposition itself from the end of the current a = 5 and + b = N grouping (i.e. from the position in the index + where the first tuple a = 5 AND b = N AND c >= 77 + appears), to the start of the next such grouping (i.e. the position in the + index where the first tuple a = 5 AND b = N + 1 + appears). @@ -669,9 +705,13 @@ CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST); multicolumn index on (x, y). This index would typically be more efficient than index combination for queries involving both columns, but as discussed in , it - would be almost useless for queries involving only y, so it - should not be the only index. A combination of the multicolumn index - and a separate index on y would serve reasonably well. For + would be less useful for queries involving only y. Just + how useful will depend on how effective the B-tree index skip scan + optimization is; if x has no more than several hundred + distinct values, skip scan will make searches for specific + y values execute reasonably efficiently. A combination + of a multicolumn index on (x, y) and a separate index on + y might also serve reasonably well. For queries involving only x, the multicolumn index could be used, though it would be larger and hence slower than an index on x alone. The last alternative is to create all three diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index cc28f04133071..de19f3ad92952 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -241,7 +241,7 @@ language, you need a Python installation with the header files and the sysconfig module. The minimum - required version is Python 3.2. + supported version is Python 3.6.8. @@ -313,6 +313,14 @@ + + + You need Curl to build an optional module + which implements the OAuth Device + Authorization flow for client applications. + + + You need LZ4, if you want to support @@ -1156,6 +1164,17 @@ build-postgresql: + + + + + Build with libnuma support for basic NUMA support. + Only supported on platforms for which the libnuma + library is implemented. + + + + @@ -2645,6 +2664,17 @@ ninja install + + + + + Build with libnuma support for basic NUMA support. + Only supported on platforms for which the libnuma + library is implemented. The default for this option is auto. + + + + @@ -2739,7 +2769,7 @@ ninja install - + Setting this option allows you to override the value of all diff --git a/doc/src/sgml/legal.sgml b/doc/src/sgml/legal.sgml index af13bf2e055b1..75c1309cf7326 100644 --- a/doc/src/sgml/legal.sgml +++ b/doc/src/sgml/legal.sgml @@ -11,13 +11,15 @@ Legal Notice - PostgreSQL is Copyright © 1996–2025 - by the PostgreSQL Global Development Group. + PostgreSQL Database Management System + (also known as Postgres, formerly known as Postgres95) - Postgres95 is Copyright © 1994–5 - by the Regents of the University of California. + Portions Copyright © 1996-2025, PostgreSQL Global Development Group + + + Portions Copyright © 1994, The Regents of the University of California diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml index b359fbff295b7..695fe958c3ed3 100644 --- a/doc/src/sgml/libpq.sgml +++ b/doc/src/sgml/libpq.sgml @@ -378,7 +378,7 @@ PostgresPollingStatusType PQconnectPoll(PGconn *conn); At any time during connection, the status of the connection can be checked by calling . If this call returns CONNECTION_BAD, then the - connection procedure has failed; if the call returns CONNECTION_OK, then the + connection procedure has failed; if the call returns CONNECTION_OK, then the connection is ready. Both of these states are equally detectable from the return value of PQconnectPoll, described above. Other states might also occur during (and only during) an asynchronous connection procedure. These @@ -1918,6 +1918,30 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname + + sslkeylogfile + + + This parameter specifies the location where libpq + will log keys used in this SSL context. This is useful for debugging + PostgreSQL protocol interactions or client + connections using network inspection tools like + Wireshark. This parameter is ignored if an + SSL connection is not made, or if LibreSSL + is used (LibreSSL does not support key + logging). Keys are logged using the NSS + format. + + + Key logging will expose potentially sensitive information in the + keylog file. Keylog files should be handled with the same care as + files. + + + + + + sslpassword @@ -1932,7 +1956,7 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname Enter PEM pass phrase: prompt that OpenSSL will emit by default when an encrypted client certificate key is provided to - libpq. + libpq. If the key is not encrypted this parameter is ignored. The parameter @@ -2018,7 +2042,7 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname The special value system may be specified instead, in - which case the system's trusted CA roots will be loaded. The exact + which case the trusted CA roots from the SSL implementation will be loaded. The exact locations of these root certificates differ by SSL implementation and platform. For OpenSSL in particular, the locations may be further modified by the SSL_CERT_DIR @@ -2144,6 +2168,54 @@ postgresql://%2Fvar%2Flib%2Fpostgresql/dbname + + min_protocol_version + + + Specifies the minimum protocol version to allow for the connection. + The default is to allow any version of the + PostgreSQL protocol supported by libpq, + which currently means 3.0. If the server + does not support at least this protocol version the connection will be + closed. + + + + The current supported values are + 3.0, 3.2, + and latest. The latest value is + equivalent to the latest protocol version supported by the libpq + version being used, which is currently 3.2. + + + + + + max_protocol_version + + + Specifies the protocol version to request from the server. + The default is to use version 3.0 of the + PostgreSQL protocol, unless the connection + string specifies a feature that relies on a higher protocol version, + in which case the latest version supported by libpq is used. If the + server does not support the protocol version requested by the client, + the connection is automatically downgraded to a lower minor protocol + version that the server supports. After the connection attempt has + completed you can use to + find out which exact protocol version was negotiated. + + + + The current supported values are + 3.0, 3.2, + and latest. The latest value is + equivalent to the latest protocol version supported by the libpq + version being used, which is currently 3.2. + + + + ssl_max_protocol_version @@ -2739,14 +2811,14 @@ ConnStatusType PQstatus(const PGconn *conn); The status can be one of a number of values. However, only two of these are seen outside of an asynchronous connection procedure: - CONNECTION_OK and - CONNECTION_BAD. A good connection to the database - has the status CONNECTION_OK. A failed + CONNECTION_OK and + CONNECTION_BAD. A good connection to the database + has the status CONNECTION_OK. A failed connection attempt is signaled by status - CONNECTION_BAD. Ordinarily, an OK status will + CONNECTION_BAD. Ordinarily, an OK status will remain so until , but a communications failure might result in the status changing to - CONNECTION_BAD prematurely. In that case the + CONNECTION_BAD prematurely. In that case the application could try to recover by calling . @@ -5262,7 +5334,7 @@ unsigned char *PQunescapeBytea(const unsigned char *from, size_t *to_length); , , , - + , , and respectively. @@ -6556,7 +6628,7 @@ PostgresPollingStatusType PQcancelPoll(PGcancelConn *cancelConn); checked by calling . If this call returns CONNECTION_BAD, then the cancel procedure has failed; if the call returns - CONNECTION_OK, then cancel request was + CONNECTION_OK, then cancel request was successfully dispatched. Both of these states are equally detectable from the return value of PQcancelPoll, described above. @@ -6678,15 +6750,15 @@ ConnStatusType PQcancelStatus(const PGcancelConn *cancelConn); The status can be one of a number of values. However, only three of these are seen outside of an asynchronous cancel procedure: - CONNECTION_ALLOCATED, - CONNECTION_OK and - CONNECTION_BAD. The initial state of a + CONNECTION_ALLOCATED, + CONNECTION_OK and + CONNECTION_BAD. The initial state of a PGcancelConn that's successfully created using - is CONNECTION_ALLOCATED. + is CONNECTION_ALLOCATED. A cancel request that was successfully dispatched - has the status CONNECTION_OK. A failed + has the status CONNECTION_OK. A failed cancel attempt is signaled by status - CONNECTION_BAD. An OK status will + CONNECTION_BAD. An OK status will remain so until or is called. @@ -8211,7 +8283,7 @@ size_t PQresultMemorySize(const PGresult *res); - Return the version of libpq that is being used. + Return the version of libpq that is being used. int PQlibVersion(void); @@ -8462,7 +8534,7 @@ typedef struct evtInfo pointer should be cast to a PGEventRegister *. This structure contains a PGconn that should be in the - CONNECTION_OK status; guaranteed if one calls + CONNECTION_OK status; guaranteed if one calls right after obtaining a good PGconn. When returning a failure code, all cleanup must be performed as no PGEVT_CONNDESTROY @@ -9329,6 +9401,26 @@ myEventProc(PGEventId evtId, void *evtInfo, void *passThrough) linkend="libpq-connect-load-balance-hosts"/> connection parameter. + + + + + PGMINPROTOCOLVERSION + + PGMINPROTOCOLVERSION behaves the same as the connection parameter. + + + + + + + PGMAXPROTOCOLVERSION + + PGMAXPROTOCOLVERSION behaves the same as the connection parameter. + + @@ -10134,15 +10226,20 @@ void PQinitSSL(int do_ssl); OAuth Support - libpq implements support for the OAuth v2 Device Authorization client flow, + libpq implements support for the OAuth v2 Device Authorization client flow, documented in RFC 8628, - which it will attempt to use by default if the server + as an optional module. See the + installation documentation for information on how to enable support + for Device Authorization as a builtin flow. + + + When support is enabled and the optional module installed, libpq + will use the builtin flow by default if the server requests a bearer token during authentication. This flow can be utilized even if the system running the client application does not have a usable web browser, for example when - running a client via SSH. Client applications may implement their own flows - instead; see . + running a client via SSH. The builtin flow will, by default, print a URL to visit and a user code to @@ -10159,6 +10256,11 @@ Visit https://example.com/device and enter the code: ABCD-EFGH they match expectations, before continuing. Permissions should not be given to untrusted third parties. + + Client applications may implement their own flows to customize interaction + and integration with applications. See + for more information on how add a custom flow to libpq. + For an OAuth client flow to be usable, the connection string must at minimum contain and @@ -10274,7 +10376,9 @@ typedef struct _PGpromptOAuthDevice - The OAuth Device Authorization flow included in libpq + The OAuth Device Authorization flow which + can be included + in libpq requires the end user to visit a URL with a browser, then enter a code which permits libpq to connect to the server on their behalf. The default prompt simply prints the @@ -10286,7 +10390,8 @@ typedef struct _PGpromptOAuthDevice This callback is only invoked during the builtin device authorization flow. If the application installs a custom OAuth - flow, this authdata type will not be used. + flow, or libpq was not built with + support for the builtin flow, this authdata type will not be used. If a non-NULL verification_uri_complete is @@ -10308,8 +10413,9 @@ typedef struct _PGpromptOAuthDevice - Replaces the entire OAuth flow with a custom implementation. The hook - should either directly return a Bearer token for the current + Adds a custom implementation of a flow, replacing the builtin flow if + it is installed. + The hook should either directly return a Bearer token for the current user/issuer/scope combination, if one is available without blocking, or else set up an asynchronous callback to retrieve one. diff --git a/doc/src/sgml/logicaldecoding.sgml b/doc/src/sgml/logicaldecoding.sgml index 1c4ae38f1b992..3f2bcd45a1ea7 100644 --- a/doc/src/sgml/logicaldecoding.sgml +++ b/doc/src/sgml/logicaldecoding.sgml @@ -898,7 +898,6 @@ typedef void (*LogicalDecodeMessageCB) (struct LogicalDecodingContext *ctx, callback might also error out due to simultaneous rollback of this very same transaction. In that case, the logical decoding of this aborted transaction is stopped gracefully. - The prefix is arbitrary null-terminated prefix which can be used for identifying interesting messages for the current plugin. And finally the message parameter holds diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index a6d67d2fbaa1e..4265a22d4de35 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -168,6 +168,11 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser of the current command being executed by any server process. + + The parameter enables + monitoring of cost-based vacuum delay. + + The parameter controls whether cumulative statistics are collected about table and index accesses. @@ -1156,7 +1161,7 @@ description | Waiting for a newly initialized WAL file to reach durable storage Extensions can add Extension, - InjectionPoint. and LWLock events + InjectionPoint, and LWLock events to the lists shown in and . In some cases, the name of an LWLock assigned by an extension will not be @@ -4061,7 +4066,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage total_vacuum_time double precision - Total time this table has been manually vacuumed, in milliseconds + Total time this table has been manually vacuumed, in milliseconds. + (This includes the time spent sleeping due to cost-based delays.) @@ -4071,7 +4077,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage Total time this table has been vacuumed by the autovacuum daemon, - in milliseconds + in milliseconds. (This includes the time spent sleeping due to + cost-based delays.) @@ -4080,7 +4087,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage total_analyze_time double precision - Total time this table has been manually analyzed, in milliseconds + Total time this table has been manually analyzed, in milliseconds. + (This includes the time spent sleeping due to cost-based delays.) @@ -4090,7 +4098,8 @@ description | Waiting for a newly initialized WAL file to reach durable storage Total time this table has been analyzed by the autovacuum daemon, - in milliseconds + in milliseconds. (This includes the time spent sleeping due to + cost-based delays.) @@ -4263,7 +4272,10 @@ description | Waiting for a newly initialized WAL file to reach durable storage column_name = value2 ... construct, though only when the optimizer transforms the construct into an equivalent - multi-valued array representation. + multi-valued array representation. Similarly, when B-tree index scans use + the skip scan optimization, an index search is performed each time the + scan is repositioned to the next index leaf page that might have matching + tuples (see ). diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml index 387baac7e8c20..106583fb2965d 100644 --- a/doc/src/sgml/perform.sgml +++ b/doc/src/sgml/perform.sgml @@ -860,6 +860,38 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 WHERE thousand IN (1, 2, 3, 4); tenk1_thous_tenthous index leaf page. + + The Index Searches line is also useful with B-tree index + scans that apply the skip scan optimization to + more efficiently traverse through an index: + +EXPLAIN ANALYZE SELECT four, unique1 FROM tenk1 WHERE four BETWEEN 1 AND 3 AND unique1 = 42; + QUERY PLAN +-------------------------------------------------------------------&zwsp;--------------------------------------------------------------- + Index Only Scan using tenk1_four_unique1_idx on tenk1 (cost=0.29..6.90 rows=1 width=8) (actual time=0.006..0.007 rows=1.00 loops=1) + Index Cond: ((four >= 1) AND (four <= 3) AND (unique1 = 42)) + Heap Fetches: 0 + Index Searches: 3 + Buffers: shared hit=7 + Planning Time: 0.029 ms + Execution Time: 0.012 ms + + + Here we see an Index-Only Scan node using + tenk1_four_unique1_idx, a multi-column index on the + tenk1 table's four and + unique1 columns. The scan performs 3 searches + that each read a single index leaf page: + four = 1 AND unique1 = 42, + four = 2 AND unique1 = 42, and + four = 3 AND unique1 = 42. This index + is generally a good target for skip scan, since, as discussed in + , its leading column (the + four column) contains only 4 distinct values, + while its second/final column (the unique1 + column) contains many distinct values. + + Another type of extra information is the number of rows removed by a filter condition: diff --git a/doc/src/sgml/pgbuffercache.sgml b/doc/src/sgml/pgbuffercache.sgml index 802a5112d77d7..537d601494242 100644 --- a/doc/src/sgml/pgbuffercache.sgml +++ b/doc/src/sgml/pgbuffercache.sgml @@ -27,12 +27,24 @@ pg_buffercache_evict + + pg_buffercache_evict_relation + + + + pg_buffercache_evict_all + + This module provides the pg_buffercache_pages() function (wrapped in the pg_buffercache view), - the pg_buffercache_summary() function, the - pg_buffercache_usage_counts() function and - the pg_buffercache_evict() function. + pg_buffercache_numa_pages() function (wrapped in the + pg_buffercache_numa view), the + pg_buffercache_summary() function, the + pg_buffercache_usage_counts() function, the + pg_buffercache_evict(), the + pg_buffercache_evict_relation() function and the + pg_buffercache_evict_all() function. @@ -42,6 +54,15 @@ convenient use. + + The pg_buffercache_numa_pages() provides + NUMA node mappings for shared buffer entries. This + information is not part of pg_buffercache_pages() + itself, as it is much slower to retrieve. + The pg_buffercache_numa view wraps the function for + convenient use. + + The pg_buffercache_summary() function returns a single row summarizing the state of the shared buffer cache. @@ -65,6 +86,19 @@ function is restricted to superusers only. + + The pg_buffercache_evict_relation() function allows all + unpinned shared buffers in the relation to be evicted from the buffer pool + given a relation identifier. Use of this function is restricted to + superusers only. + + + + The pg_buffercache_evict_all() function allows all + unpinned shared buffers to be evicted in the buffer pool. Use of this + function is restricted to superusers only. + + The <structname>pg_buffercache</structname> View @@ -200,6 +234,78 @@ + + The <structname>pg_buffercache_numa</structname> View + + + The definitions of the columns exposed by the view are shown in . + + + + <structname>pg_buffercache_numa</structname> Columns + + + + + Column Type + + + Description + + + + + + + + bufferid integer + + + ID, in the range 1..shared_buffers + + + + + + os_page_num bigint + + + number of OS memory page for this buffer + + + + + + numa_node int + + + ID of NUMA node + + + + + +
+ + + As NUMA node ID inquiry for each page requires memory pages + to be paged-in, the first execution of this function can take a noticeable + amount of time. In all the cases (first execution or not), retrieving this + information is costly and querying the view at a high frequency is not recommended. + + + + + When determining the NUMA node, the view touches + all memory pages for the shared memory segment. This will force + allocation of the shared memory, if it wasn't allocated already, + and the memory may get allocated in a single NUMA + node (depending on system configuration). + + + +
+ The <function>pg_buffercache_summary()</function> Function @@ -369,11 +475,49 @@ The pg_buffercache_evict() function takes a buffer identifier, as shown in the bufferid column of - the pg_buffercache view. It returns true on success, - and false if the buffer wasn't valid, if it couldn't be evicted because it - was pinned, or if it became dirty again after an attempt to write it out. - The result is immediately out of date upon return, as the buffer might - become valid again at any time due to concurrent activity. The function is + the pg_buffercache view. It returns information + about whether the buffer was evicted and flushed. The buffer_evicted + column is true on success, and false if the buffer wasn't valid, if it + couldn't be evicted because it was pinned, or if it became dirty again + after an attempt to write it out. The buffer_flushed column is true if the + buffer was flushed. This does not necessarily mean that buffer was flushed + by us, it might be flushed by someone else. The result is immediately out + of date upon return, as the buffer might become valid again at any time due + to concurrent activity. The function is intended for developer testing + only. + + + + + The <structname>pg_buffercache_evict_relation</structname> Function + + The pg_buffercache_evict_relation() function is very + similar to the pg_buffercache_evict() function. The + difference is that the pg_buffercache_evict_relation() + takes a relation identifier instead of buffer identifier. It tries to + evict all buffers for all forks in that relation. + + It returns the number of evicted buffers, flushed buffers and the number of + buffers that could not be evicted. Flushed buffers haven't necessarily + been flushed by us, they might have been flushed by someone else. The + result is immediately out of date upon return, as buffers might immediately + be read back in due to concurrent activity. The function is intended for + developer testing only. + + + + + The <structname>pg_buffercache_evict_all</structname> Function + + The pg_buffercache_evict_all() function is very + similar to the pg_buffercache_evict() function. The + difference is, the pg_buffercache_evict_all() function + does not take an argument; instead it tries to evict all buffers in the + buffer pool. It returns the number of evicted buffers, flushed buffers and + the number of buffers that could not be evicted. Flushed buffers haven't + necessarily been flushed by us, they might have been flushed by someone + else. The result is immediately out of date upon return, as buffers might + immediately be read back in due to concurrent activity. The function is intended for developer testing only. diff --git a/doc/src/sgml/pgcrypto.sgml b/doc/src/sgml/pgcrypto.sgml index f87668dfaede1..bc5c74ad017fa 100644 --- a/doc/src/sgml/pgcrypto.sgml +++ b/doc/src/sgml/pgcrypto.sgml @@ -146,6 +146,12 @@ hmac(data bytea, key bytea, type text) returns bytea Supported Algorithms for <function>crypt()</function> + + + + + + Algorithm @@ -189,6 +195,29 @@ hmac(data bytea, key bytea, type text) returns bytea 13 Original UNIX crypt + + sha256crypt + unlimited + yes + up to 32 + 80 + Adapted from publicly available reference implementation + Unix crypt using SHA-256 and SHA-512 + + + + + sha512crypt + unlimited + yes + up to 32 + 123 + Adapted from publicly available reference implementation + Unix crypt using SHA-256 and SHA-512 + + + +
@@ -245,7 +274,9 @@ gen_salt(type text [, iter_count integer ]) returns text The type parameter specifies the hashing algorithm. The accepted types are: des, xdes, - md5 and bf. + md5, bf, sha256crypt and + sha512crypt. The last two, sha256crypt and + sha512crypt are modern SHA-2 based password hashes. @@ -284,6 +315,12 @@ gen_salt(type text [, iter_count integer ]) returns text 4 31 + + sha256crypt, sha512crypt + 5000 + 1000 + 999999999 + @@ -313,6 +350,14 @@ gen_salt(type text [, iter_count integer ]) returns text gen_salt. + + The default iter_count for sha256crypt and + sha512crypt of 5000 is considered too low for modern + hardware, but can be adjusted to generate stronger password hashes. + Otherwise both hashes, sha256crypt and sha512crypt are + considered safe. + + Hash Algorithm Speeds diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index 04d8e7d21af9c..c4d3853cbf2c2 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -18,22 +18,10 @@ - This document describes version 3.0 of the protocol, implemented in - PostgreSQL 7.4 and later. For descriptions - of the earlier protocol versions, see previous releases of the - PostgreSQL documentation. A single server - can support multiple protocol versions. The initial startup-request - message tells the server which protocol version the client is attempting to - use. If the major version requested by the client is not supported by - the server, the connection will be rejected (for example, this would occur - if the client requested protocol version 4.0, which does not exist as of - this writing). If the minor version requested by the client is not - supported by the server (e.g., the client requests version 3.1, but the - server supports only 3.0), the server may either reject the connection or - may respond with a NegotiateProtocolVersion message containing the highest - minor protocol version which it supports. The client may then choose either - to continue with the connection using the specified protocol version or - to abort the connection. + This document describes version 3.2 of the protocol, introduced in + PostgreSQL version 18. The server and the libpq + client library are backwards compatible with protocol version 3.0, + implemented in PostgreSQL 7.4 and later. @@ -199,6 +187,90 @@ server versions; the text format is usually the more portable choice. + + + Protocol versions + + + The current, latest version of the protocol is version 3.2. However, for + backwards compatibility with old server versions and middleware that don't + support the version negotiation yet, libpq still uses protocol version 3.0 + by default. + + + + A single server can support multiple protocol versions. The initial + startup-request message tells the server which protocol version the client + is attempting to use. If the major version requested by the client is not + supported by the server, the connection will be rejected (for example, + this would occur if the client requested protocol version 4.0, which does + not exist as of this writing). If the minor version requested by the + client is not supported by the server (e.g., the client requests version + 3.2, but the server supports only 3.0), the server may either reject the + connection or may respond with a NegotiateProtocolVersion message + containing the highest minor protocol version which it supports. The + client may then choose either to continue with the connection using the + specified protocol version or to abort the connection. + + + + The protocol negotiation was introduced in + PostgreSQL version 9.3.21. Earlier versions + would reject the connection if the client requested a minor version that + was not supported by the server. + + + + shows the currently supported + protocol versions. + + +
+ Protocol versions + + + + + Version + Supported by + Description + + + + + + 3.2 + PostgreSQL 18 and later + Current latest version. The secret key used in query + cancellation was enlarged from 4 bytes to a variable length field. The + BackendKeyData message was changed to accommodate that, and the CancelRequest + message was redefined to have a variable length payload. + + + + 3.1 + - + Reserved. Version 3.1 has not been used by any PostgreSQL + version, but it was skipped because old versions of the popular + pgbouncer application had a bug in the protocol negotiation which made + it incorrectly claim that it supported version 3.1. + + + + 3.0 + PostgreSQL 7.4 and later + + + 2.0 + up to PostgreSQL 13 + See previous releases of + the PostgreSQL documentation for + details + + + +
+
@@ -413,8 +485,14 @@ this message indicates the highest supported minor version. This message will also be sent if the client requested unsupported protocol options (i.e., beginning with _pq_.) in the - startup packet. This message will be followed by an ErrorResponse or - a message indicating the success or failure of authentication. + startup packet. + + + After this message, the authentication will continue using the version + indicated by the server. If the client does not support the older + version, it should immediately close the connection. If the server + does not send this message, it supports the client's requested + protocol version and all the protocol options. @@ -3624,10 +3702,10 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;" indicate that it can be sent by a frontend (F), a backend (B), or both (F & B). Notice that although each message includes a byte count at the beginning, - the message format is defined so that the message end can be found without - reference to the byte count. This aids validity checking. (The CopyData - message is an exception, because it forms part of a data stream; the contents - of any individual CopyData message cannot be interpretable on their own.) + most messages are defined so that the message end can be found without + reference to the byte count. This is for historical reasons, as the + original, now-obsolete protocol version 2 did not have an explicit length + field. It also aids validity checking though. @@ -4043,7 +4121,7 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;" - Int32(12) + Int32 Length of message contents in bytes, including self. @@ -4061,14 +4139,29 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;" - Int32 + Byten - The secret key of this backend. + The secret key of this backend. This field extends to the end of the + message, indicated by the length field. + + + The maximum key length is 256 bytes. The + PostgreSQL server only sends keys up to + 32 bytes, but the larger maximum size allows for future server + versions, as well as connection poolers and other middleware, to use + longer keys. One possible use case is augmenting the server's key + with extra information. Middleware is therefore also encouraged to + not use up all of the bytes, in case multiple middleware + applications are layered on top of each other, each of which may + wrap the key with extra data. + + Before protocol version 3.2, the secret key was always 4 bytes long. + @@ -4274,14 +4367,18 @@ psql "dbname=postgres replication=database" -c "IDENTIFY_SYSTEM;" - Int32 + Byten - The secret key for the target backend. + The secret key for the target backend. This field extends to the end of the + message, indicated by the length field. The maximum key length is 256 bytes. + + Before protocol version 3.2, the secret key was always 4 bytes long. + diff --git a/doc/src/sgml/query.sgml b/doc/src/sgml/query.sgml index 59962d6e85633..727a0cb185fb2 100644 --- a/doc/src/sgml/query.sgml +++ b/doc/src/sgml/query.sgml @@ -671,7 +671,7 @@ SELECT max(temp_lo) FROM weather; we might try: -SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG +SELECT city FROM weather WHERE temp_lo = max(temp_lo); -- WRONG but this will not work since the aggregate diff --git a/doc/src/sgml/ref/alter_database.sgml b/doc/src/sgml/ref/alter_database.sgml index 2479c41e8d635..9da8920e12eff 100644 --- a/doc/src/sgml/ref/alter_database.sgml +++ b/doc/src/sgml/ref/alter_database.sgml @@ -82,7 +82,8 @@ ALTER DATABASE name RESET ALL default tablespace to the new tablespace. The new default tablespace must be empty for this database, and no one can be connected to the database. Tables and indexes in non-default tablespaces are - unaffected. + unaffected. The method used to copy files to the new tablespace + is affected by the setting. diff --git a/doc/src/sgml/ref/alter_default_privileges.sgml b/doc/src/sgml/ref/alter_default_privileges.sgml index 89aacec4fab84..6acd0f1df914c 100644 --- a/doc/src/sgml/ref/alter_default_privileges.sgml +++ b/doc/src/sgml/ref/alter_default_privileges.sgml @@ -51,6 +51,11 @@ GRANT { { USAGE | CREATE } ON SCHEMAS TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] +GRANT { { SELECT | UPDATE } + [, ...] | ALL [ PRIVILEGES ] } + ON LARGE OBJECTS + TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ] + REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | MAINTAIN } [, ...] | ALL [ PRIVILEGES ] } @@ -83,6 +88,13 @@ REVOKE [ GRANT OPTION FOR ] ON SCHEMAS FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] + +REVOKE [ GRANT OPTION FOR ] + { { SELECT | UPDATE } + [, ...] | ALL [ PRIVILEGES ] } + ON LARGE OBJECTS + FROM { [ GROUP ] role_name | PUBLIC } [, ...] + [ CASCADE | RESTRICT ] @@ -117,8 +129,8 @@ REVOKE [ GRANT OPTION FOR ] Currently, only the privileges for schemas, tables (including views and foreign - tables), sequences, functions, and types (including domains) can be - altered. For this command, functions include aggregates and procedures. + tables), sequences, functions, types (including domains), and large objects + can be altered. For this command, functions include aggregates and procedures. The words FUNCTIONS and ROUTINES are equivalent in this command. (ROUTINES is preferred going forward as the standard term for functions and procedures taken @@ -161,7 +173,8 @@ REVOKE [ GRANT OPTION FOR ] If IN SCHEMA is omitted, the global default privileges are altered. IN SCHEMA is not allowed when setting privileges - for schemas, since schemas can't be nested. + for schemas and large objects, since schemas can't be nested and + large objects don't belong to a schema. diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 11d1bc7dbe192..d63f3a621acc6 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -58,7 +58,7 @@ ALTER TABLE [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET COMPRESSION compression_method ADD table_constraint [ NOT VALID ] ADD table_constraint_using_index - ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] + ALTER CONSTRAINT constraint_name [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] [ ENFORCED | NOT ENFORCED ] ALTER CONSTRAINT constraint_name [ INHERIT | NO INHERIT ] VALIDATE CONSTRAINT constraint_name DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ] @@ -243,6 +243,8 @@ WITH ( MODULUS numeric_literal, REM entire table; however, if a valid CHECK constraint is found which proves no NULL can exist, then the table scan is skipped. + If a column has an invalid not-null constraint, + SET NOT NULL validates it. @@ -458,8 +460,8 @@ WITH ( MODULUS numeric_literal, REM This form adds a new constraint to a table using the same constraint syntax as CREATE TABLE, plus the option NOT - VALID, which is currently only allowed for foreign key - and CHECK constraints. + VALID, which is currently only allowed for foreign key, + CHECK constraints and not-null constraints. @@ -586,10 +588,11 @@ WITH ( MODULUS numeric_literal, REM VALIDATE CONSTRAINT - This form validates a foreign key or check constraint that was + This form validates a foreign key, check, or not-null constraint that was previously created as NOT VALID, by scanning the table to ensure there are no rows for which the constraint is not - satisfied. Nothing happens if the constraint is already marked valid. + satisfied. If the constraint is not enforced, an error is thrown. + Nothing happens if the constraint is already marked valid. (See below for an explanation of the usefulness of this command.) @@ -1433,22 +1436,31 @@ WITH ( MODULUS numeric_literal, REM Adding a column with a volatile DEFAULT - (e.g., clock_timestamp()), a generated column - (e.g., GENERATED BY DEFAULT AS IDENTITY), a domain - data type with constraints will require the entire table and its - indexes to be rewritten, as will changing the type of an existing - column. As an exception, when changing the type of an existing column, + (e.g., clock_timestamp()), a stored generated column, + an identity column, or a column with a domain data type that has + constraints will cause the entire table and its indexes to be rewritten. + Adding a virtual generated column never requires a rewrite. + + + + Changing the type of an existing column will normally cause the entire table + and its indexes to be rewritten. + As an exception, when changing the type of an existing column, if the USING clause does not change the column contents and the old type is either binary coercible to the new type or an unconstrained domain over the new type, a table rewrite is not - needed. However, indexes must always be rebuilt unless the system + needed. However, indexes will still be rebuilt unless the system can verify that the new index would be logically equivalent to the existing one. For example, if the collation for a column has been changed, an index rebuild is required because the new sort order might be different. However, in the absence of a collation change, a column can be changed from text to varchar (or vice versa) without rebuilding the indexes - because these data types sort identically. Table and/or index + because these data types sort identically. + + + + Table and/or index rebuilds may take a significant amount of time for a large table, and will temporarily require as much as double the disk space. diff --git a/doc/src/sgml/ref/clusterdb.sgml b/doc/src/sgml/ref/clusterdb.sgml index d3145318b361f..0d2051bf6f188 100644 --- a/doc/src/sgml/ref/clusterdb.sgml +++ b/doc/src/sgml/ref/clusterdb.sgml @@ -248,9 +248,8 @@ PostgreSQL documentation - Specifies the name of the database to connect to to discover which - databases should be clustered, - when / is used. + When the / is used, connect + to this database to gather the list of databases to cluster. If not specified, the postgres database will be used, or if that does not exist, template1 will be used. This can be a connection diff --git a/doc/src/sgml/ref/copy.sgml b/doc/src/sgml/ref/copy.sgml index df093da97c5ed..8433344e5b6f5 100644 --- a/doc/src/sgml/ref/copy.sgml +++ b/doc/src/sgml/ref/copy.sgml @@ -520,16 +520,16 @@ COPY count Notes - COPY TO can be used only with plain - tables, not views, and does not copy rows from child tables - or child partitions. For example, COPY table TO copies - the same rows as SELECT * FROM ONLY table. - The syntax COPY (SELECT * FROM table) TO ... can be used to - dump all of the rows in an inheritance hierarchy, partitioned table, - or view. + COPY TO can be used with plain + tables and populated materialized views. + For example, + COPY table + TO copies the same rows as + SELECT * FROM ONLY table. + However it doesn't directly support other relation types, + such as partitioned tables, inheritance child tables, or views. + To copy all rows from such relations, use COPY (SELECT * FROM + table) TO. @@ -677,7 +677,7 @@ COPY count backward compatibility. However, psql uses \. to terminate a COPY FROM STDIN operation (that is, reading - in-line COPY data in a SQL script). In that + in-line COPY data in an SQL script). In that context the rule is needed to be able to end the operation before the end of the script. @@ -844,7 +844,7 @@ COPY count is not normally treated as special when reading CSV data. An exception is that psql will terminate a COPY FROM STDIN operation (that is, reading - in-line COPY data in a SQL script) at a line containing + in-line COPY data in an SQL script) at a line containing only \., whether it is text or CSV mode. diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml index a4b052ba08b77..640c0425faec5 100644 --- a/doc/src/sgml/ref/create_database.sgml +++ b/doc/src/sgml/ref/create_database.sgml @@ -138,7 +138,9 @@ CREATE DATABASE name log volume substantially, especially if the template database is large, it also forces the system to perform a checkpoint both before and after the creation of the new database. In some situations, this may - have a noticeable negative impact on overall system performance. + have a noticeable negative impact on overall system performance. The + FILE_COPY strategy is affected by the setting. diff --git a/doc/src/sgml/ref/create_domain.sgml b/doc/src/sgml/ref/create_domain.sgml index ce55520348620..c111285a69c6d 100644 --- a/doc/src/sgml/ref/create_domain.sgml +++ b/doc/src/sgml/ref/create_domain.sgml @@ -283,7 +283,8 @@ CREATE TABLE us_snail_addy ( The syntax NOT NULL in this command is a PostgreSQL extension. (A standard-conforming - way to write the same would be CHECK (VALUE IS NOT + way to write the same for non-composite data types would be + CHECK (VALUE IS NOT NULL). However, per , such constraints are best avoided in practice anyway.) The NULL constraint is a diff --git a/doc/src/sgml/ref/create_index.sgml b/doc/src/sgml/ref/create_index.sgml index 208389e80060b..147a8f7587c71 100644 --- a/doc/src/sgml/ref/create_index.sgml +++ b/doc/src/sgml/ref/create_index.sgml @@ -387,9 +387,13 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] The optional WITH clause specifies storage - parameters for the index. Each index method has its own set of allowed - storage parameters. The B-tree, hash, GiST and SP-GiST index methods all - accept this parameter: + parameters for the index. Each index method has its own set + of allowed storage parameters. + + + + The B-tree, hash, GiST and SP-GiST index methods all accept this + parameter: @@ -401,7 +405,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - The fillfactor for an index is a percentage that determines how full + Controls how full the index method will try to pack index pages. For B-trees, leaf pages are filled to this percentage during initial index builds, and also when extending the index at the right (adding new largest key values). @@ -488,7 +492,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - Determines whether the buffered build technique described in + Controls whether the buffered build technique described in is used to build the index. With OFF buffering is disabled, with ON it is enabled, and with AUTO it is initially disabled, @@ -503,7 +507,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - GIN indexes accept different parameters: + GIN indexes accept these parameters: @@ -515,8 +519,8 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - This setting controls usage of the fast update technique described in - . It is a Boolean parameter: + Controls usage of the fast update technique described in + . ON enables fast update, OFF disables it. The default is ON. @@ -525,8 +529,9 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] Turning fastupdate off via ALTER INDEX prevents future insertions from going into the list of pending index entries, - but does not in itself flush previous entries. You might want to - VACUUM the table or call gin_clean_pending_list + but does not in itself flush existing entries. You might want to + VACUUM the table or call + the gin_clean_pending_list function afterward to ensure the pending list is emptied. @@ -544,7 +549,8 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - Custom parameter. + Overrides the global setting of + for this index. This value is specified in kilobytes. @@ -552,7 +558,7 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] - BRIN indexes accept different parameters: + BRIN indexes accept these parameters: @@ -580,8 +586,8 @@ CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] Defines whether a summarization run is queued for the previous page - range whenever an insertion is detected on the next one. - See for more details. + range whenever an insertion is detected on the next one + (see for more details). The default is off. diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml index 73f0c8d89fb00..802630f2df116 100644 --- a/doc/src/sgml/ref/create_publication.sgml +++ b/doc/src/sgml/ref/create_publication.sgml @@ -89,10 +89,12 @@ CREATE PUBLICATION name When a column list is specified, only the named columns are replicated. - The column list can contain stored generated columns as well. If no - column list is specified, all table columns (except generated columns) - are replicated through this publication, including any columns added - later. It has no effect on TRUNCATE commands. See + The column list can contain stored generated columns as well. If the + column list is omitted, the publication will replicate all non-generated + columns (including any added in the future) by default. Stored generated + columns can also be replicated if publish_generated_columns + is set to stored. Specifying a column list has no + effect on TRUNCATE commands. See for details about column lists. diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index e5c034d724e48..4a41b2f553007 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -1409,7 +1409,7 @@ WITH ( MODULUS numeric_literal, REM - This is currently only supported for CHECK + This is currently only supported for foreign key and CHECK constraints. diff --git a/doc/src/sgml/ref/explain.sgml b/doc/src/sgml/ref/explain.sgml index 9ed1061b7ff20..6dda680aa0de8 100644 --- a/doc/src/sgml/ref/explain.sgml +++ b/doc/src/sgml/ref/explain.sgml @@ -202,9 +202,7 @@ ROLLBACK; The number of blocks shown for an upper-level node includes those used by all its child nodes. In text format, only non-zero values are printed. Buffers information is - included by default when ANALYZE is used but - otherwise is not included by default, but can be enabled using this - option. + automatically included when ANALYZE is used. diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml index 2f1f9a42f9044..7613174c18b56 100644 --- a/doc/src/sgml/ref/initdb.sgml +++ b/doc/src/sgml/ref/initdb.sgml @@ -543,7 +543,7 @@ PostgreSQL documentation Note that if is used in - conjuction with , some or all of + conjunction with , some or all of the aforementioned files and directories will be synchronized because syncfs processes entire file systems. diff --git a/doc/src/sgml/ref/pg_combinebackup.sgml b/doc/src/sgml/ref/pg_combinebackup.sgml index 55bc46849db58..330a598f7013e 100644 --- a/doc/src/sgml/ref/pg_combinebackup.sgml +++ b/doc/src/sgml/ref/pg_combinebackup.sgml @@ -81,6 +81,35 @@ PostgreSQL documentation + + + + + + Use hard links instead of copying files to the synthetic backup. + Reconstruction of the synthetic backup might be faster (no file copying) + and use less disk space, but care must be taken when using the output + directory, because any modifications to that directory (for example, + starting the server) can also affect the input directories. Likewise, + changes to the input directories (for example, starting the server on + the full backup) could affect the output directory. Thus, this option + is best used when the input directories are only copies that will be + removed after pg_combinebackup has completed. + + + + Requires that the input backups and the output directory are in the + same file system. + + + + If a backup manifest is not available or does not contain checksum of + the right type, hard links will still be created, but the file will be + also read block-by-block for the checksum calculation. + + + + @@ -137,35 +166,6 @@ PostgreSQL documentation - - - - - - Use hard links instead of copying files to the synthetic backup. - Reconstruction of the synthetic backup might be faster (no file copying) - and use less disk space, but care must be taken when using the output - directory, because any modifications to that directory (for example, - starting the server) can also affect the input directories. Likewise, - changes to the input directories (for example, starting the server on - the full backup) could affect the output directory. Thus, this option - is best used when the input directories are only copies that will be - removed after pg_combinebackup has completed. - - - - Requires that the input backups and the output directory are in the - same file system. - - - - If a backup manifest is not available or does not contain checksum of - the right type, hard links will still be created, but the file will be - also read block-by-block for the checksum calculation. - - - - diff --git a/doc/src/sgml/ref/pg_createsubscriber.sgml b/doc/src/sgml/ref/pg_createsubscriber.sgml index 1f0ddd7f9f2c7..4b1d08d5f16da 100644 --- a/doc/src/sgml/ref/pg_createsubscriber.sgml +++ b/doc/src/sgml/ref/pg_createsubscriber.sgml @@ -94,8 +94,11 @@ PostgreSQL documentation Create one subscription per database on the target server. Exceptions are template databases and databases that don't allow connections. - If the database name is not specified in publisher-server, the postgres - database will be used, or if that does not exist, template1 will be used. + To discover the list of all databases, connect to the source server + using the database name specified in the + connection string, or if not specified, the postgres + database will be used, or if that does not exist, template1 + will be used. Automatically generated names for subscriptions, publications, and replication slots are used when this option is specified. This option cannot be used along with , @@ -167,24 +170,31 @@ PostgreSQL documentation - - + + Remove all objects of the specified type from specified databases on the target server. - publications: The "all tables" publications established for this - subscriber are always removed; specifying this object type causes all - other publications replicated from the source server to be dropped as - well. + + + + publications: + The FOR ALL TABLES publications established for this + subscriber are always removed; specifying this object type causes all + other publications replicated from the source server to be dropped as + well. + + + - The objects selected to be dropped are individually logged and do show - up in a --dry-run. There is no opportunity to affect or stop the - dropping of the selected objects so consider taking a backup of them - using pg_dump. + The objects selected to be dropped are individually logged, including during + a . There is no opportunity to affect or stop the + dropping of the selected objects, so consider taking a backup of them + using pg_dump. diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index bfc1e7b352476..c10bca63e55c5 100644 --- a/doc/src/sgml/ref/pg_dump.sgml +++ b/doc/src/sgml/ref/pg_dump.sgml @@ -655,17 +655,6 @@ PostgreSQL documentation - - - - - Dump only the statistics, not the schema (data definitions) or data. - Statistics for tables, materialized views, and indexes are dumped. - - - - - [:detail] @@ -1124,19 +1113,19 @@ PostgreSQL documentation - + - Do not dump security labels. + Do not dump schema (data definitions). - + - Do not dump schema (data definitions). + Do not dump security labels. @@ -1232,33 +1221,6 @@ PostgreSQL documentation - - - - - Dump data. This is the default. - - - - - - - - - Dump schema (data definitions). This is the default. - - - - - - - - - Dump statistics. This is the default. - - - - @@ -1315,7 +1277,7 @@ PostgreSQL documentation The data section contains actual table data, large-object - contents, statitistics for tables and materialized views and + contents, statistics for tables and materialized views and sequence values. Post-data items include definitions of indexes, triggers, rules, statistics for indexes, and constraints other than validated check @@ -1392,6 +1354,16 @@ PostgreSQL documentation + + + + + Dump only the statistics, not the schema (data definitions) or data. + Statistics for tables, materialized views, and indexes are dumped. + + + + @@ -1467,6 +1439,33 @@ PostgreSQL documentation + + + + + Dump data. This is the default. + + + + + + + + + Dump schema (data definitions). This is the default. + + + + + + + + + Dump statistics. This is the default. + + + + diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml index 765b30a3a668e..8c5141d036c76 100644 --- a/doc/src/sgml/ref/pg_dumpall.sgml +++ b/doc/src/sgml/ref/pg_dumpall.sgml @@ -16,7 +16,7 @@ PostgreSQL documentation pg_dumpall - extract a PostgreSQL database cluster into a script file + extract a PostgreSQL database cluster using a specified dump format @@ -33,7 +33,7 @@ PostgreSQL documentation pg_dumpall is a utility for writing out (dumping) all PostgreSQL databases - of a cluster into one script file. The script file contains + of a cluster into an archive. The archive contains SQL commands that can be used as input to to restore the databases. It does this by calling for each database in the cluster. @@ -52,11 +52,16 @@ PostgreSQL documentation - The SQL script will be written to the standard output. Use the + Plain text SQL scripts will be written to the standard output. Use the / option or shell operators to redirect it into a file. + + Archives in other formats will be placed in a directory named using the + /, which is required in this case. + + pg_dumpall needs to connect several times to the PostgreSQL server (once per @@ -121,38 +126,82 @@ PostgreSQL documentation Send output to the specified file. If this is omitted, the standard output is used. + Note: This option can only be omitted when is plain - + + - Specify a filename from which to read patterns for databases excluded - from the dump. The patterns are interpreted according to the same rules - as . - To read from STDIN, use - as the - filename. The option can be specified in - conjunction with for excluding - databases, and can also be specified more than once for multiple filter - files. - - - - The file lists one database pattern per row, with the following format: - -exclude database PATTERN - - - - - Lines starting with # are considered comments and - ignored. Comments can be placed after an object pattern row as well. - Blank lines are also ignored. See - for how to perform quoting in patterns. - - + Specify the format of dump files. In plain format, all the dump data is + sent in a single text stream. This is the default. + + In all other modes, pg_dumpall first creates two files: + global.dat and map.dat, in the directory + specified by . + The first file contains global data, such as roles and tablespaces. The second + contains a mapping between database oids and names. These files are used by + pg_restore. Data for individual databases is placed in + databases subdirectory, named using the database's oid. + + + + d + directory + + + Output directory-format archives for each database, + suitable for input into pg_restore. The directory + will have database oid as its name. + + + + + + p + plain + + + Output a plain-text SQL script file (the default). + + + + + + c + custom + + + Output a custom-format archive for each database, + suitable for input into pg_restore. The archive + will be named dboid.dmp where dboid is the + oid of the database. + + + + + + t + tar + + + Output a tar-format archive for each database, + suitable for input into pg_restore. The archive + will be named dboid.tar where dboid is the + oid of the database. + + + + + + + Note: see for details + of how the various non plain text archives work. + + @@ -265,16 +314,6 @@ exclude database PATTERN - - - - - Dump only the statistics, not the schema (data definitions) or data. - Statistics for tables, materialized views, and indexes are dumped. - - - - @@ -364,6 +403,37 @@ exclude database PATTERN + + + + + Specify a filename from which to read patterns for databases excluded + from the dump. The patterns are interpreted according to the same rules + as . + To read from STDIN, use - as the + filename. The option can be specified in + conjunction with for excluding + databases, and can also be specified more than once for multiple filter + files. + + + + The file lists one database pattern per row, with the following format: + +exclude database PATTERN + + + + + Lines starting with # are considered comments and + ignored. Comments can be placed after an object pattern row as well. + Blank lines are also ignored. See + for how to perform quoting in patterns. + + + + + @@ -560,33 +630,6 @@ exclude database PATTERN - - - - - Dump data. This is the default. - - - - - - - - - Dump schema (data definitions). This is the default. - - - - - - - - - Dump statistics. This is the default. - - - - @@ -642,6 +685,27 @@ exclude database PATTERN + + + + + Dump only the statistics, not the schema (data definitions) or data. + Statistics for tables, materialized views, and indexes are dumped. + + + + + + + + + Include sequence data in the dump. This is the default behavior except + when , , or + is specified. + + + + @@ -655,6 +719,33 @@ exclude database PATTERN + + + + + Dump data. This is the default. + + + + + + + + + Dump schema (data definitions). This is the default. + + + + + + + + + Dump statistics. This is the default. + + + + diff --git a/doc/src/sgml/ref/pg_recvlogical.sgml b/doc/src/sgml/ref/pg_recvlogical.sgml index 2946bdae1e5e5..63a45c7018a45 100644 --- a/doc/src/sgml/ref/pg_recvlogical.sgml +++ b/doc/src/sgml/ref/pg_recvlogical.sgml @@ -79,8 +79,8 @@ PostgreSQL documentation - The can be specified with - to enable decoding of prepared transactions. + The and options + can be specified with . @@ -165,6 +165,16 @@ PostgreSQL documentation + + + + + Enables the slot to be synchronized to the standbys. This option may + only be specified with . + + + + diff --git a/doc/src/sgml/ref/pg_resetwal.sgml b/doc/src/sgml/ref/pg_resetwal.sgml index dd011d246c166..2c019c2aac6eb 100644 --- a/doc/src/sgml/ref/pg_resetwal.sgml +++ b/doc/src/sgml/ref/pg_resetwal.sgml @@ -171,25 +171,6 @@ PostgreSQL documentation - - - - - Manually set the default char signedness. Possible values are - signed and unsigned. - - - For a database cluster that pg_upgrade upgraded from - a PostgreSQL version before 18, the safe - value would be the default char signedness of the platform - that ran the cluster before that upgrade. For all other - clusters, signed would be the safe value. However, - this option is exclusively for use with pg_upgrade - and should not normally be used manually. - - - - @@ -332,34 +313,6 @@ PostgreSQL documentation - - - - - Set the new WAL segment size, in megabytes. The value must be set to a - power of 2 between 1 and 1024 (megabytes). See the same option of for more information. - - - - This option can also be used to change the WAL segment size of an - existing database cluster, avoiding the need to - re-initdb. - - - - - While pg_resetwal will set the WAL starting address - beyond the latest existing WAL segment file, some segment size changes - can cause previous WAL file names to be reused. It is recommended to - use together with this option to manually set the - WAL starting address if WAL file name overlap will cause problems with - your archiving strategy. - - - - - @@ -402,6 +355,53 @@ PostgreSQL documentation + + + + + + Manually set the default char signedness. Possible values are + signed and unsigned. + + + For a database cluster that pg_upgrade upgraded from + a PostgreSQL version before 18, the safe + value would be the default char signedness of the platform + that ran the cluster before that upgrade. For all other + clusters, signed would be the safe value. However, + this option is exclusively for use with pg_upgrade + and should not normally be used manually. + + + + + + + + + Set the new WAL segment size, in megabytes. The value must be set to a + power of 2 between 1 and 1024 (megabytes). See the same option of for more information. + + + + This option can also be used to change the WAL segment size of an + existing database cluster, avoiding the need to + re-initdb. + + + + + While pg_resetwal will set the WAL starting address + beyond the latest existing WAL segment file, some segment size changes + can cause previous WAL file names to be reused. It is recommended to + use together with this option to manually set the + WAL starting address if WAL file name overlap will cause problems with + your archiving strategy. + + + + diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml index c840a807ae90f..2295df62d03a8 100644 --- a/doc/src/sgml/ref/pg_restore.sgml +++ b/doc/src/sgml/ref/pg_restore.sgml @@ -18,8 +18,9 @@ PostgreSQL documentation pg_restore - restore a PostgreSQL database from an - archive file created by pg_dump + restore a PostgreSQL database or cluster + from an archive created by pg_dump or + pg_dumpall @@ -38,13 +39,14 @@ PostgreSQL documentation pg_restore is a utility for restoring a - PostgreSQL database from an archive - created by in one of the non-plain-text + PostgreSQL database or cluster from an archive + created by or + in one of the non-plain-text formats. It will issue the commands necessary to reconstruct the - database to the state it was in at the time it was saved. The - archive files also allow pg_restore to + database or cluster to the state it was in at the time it was saved. The + archives also allow pg_restore to be selective about what is restored, or even to reorder the items - prior to being restored. The archive files are designed to be + prior to being restored. The archive formats are designed to be portable across architectures. @@ -52,10 +54,17 @@ PostgreSQL documentation pg_restore can operate in two modes. If a database name is specified, pg_restore connects to that database and restores archive contents directly into - the database. Otherwise, a script containing the SQL - commands necessary to rebuild the database is created and written + the database. + When restoring from a dump made by pg_dumpall, + each database will be created and then the restoration will be run in that + database. + + Otherwise, when a database name is not specified, a script containing the SQL + commands necessary to rebuild the database or cluster is created and written to a file or standard output. This script output is equivalent to - the plain text output format of pg_dump. + the plain text output format of pg_dump or + pg_dumpall. + Some of the options controlling the output are therefore analogous to pg_dump options. @@ -140,6 +149,8 @@ PostgreSQL documentation commands that mention this database. Access privileges for the database itself are also restored, unless is specified. + is required when restoring multiple databases + from an archive created by pg_dumpall. @@ -190,86 +201,6 @@ PostgreSQL documentation - - - - - Specify a filename from which to read patterns for objects excluded - or included from restore. The patterns are interpreted according to the - same rules as - / for including objects in schemas, - /for excluding objects in schemas, - / for restoring named functions, - / for restoring named indexes, - / for restoring named tables - or / for restoring triggers. - To read from STDIN, use - as the - filename. The option can be specified in - conjunction with the above listed options for including or excluding - objects, and can also be specified more than once for multiple filter - files. - - - - The file lists one database pattern per row, with the following format: - -{ include | exclude } { function | index | schema | table | trigger } PATTERN - - - - - The first keyword specifies whether the objects matched by the pattern - are to be included or excluded. The second keyword specifies the type - of object to be filtered using the pattern: - - - - function: functions, works like the - / option. This keyword - can only be used with the include keyword. - - - - - index: indexes, works like the - / option. This keyword - can only be used with the include keyword. - - - - - schema: schemas, works like the - / and - / options. - - - - - table: tables, works like the - / option. This keyword - can only be used with the include keyword. - - - - - trigger: triggers, works like the - / option. This keyword - can only be used with the include keyword. - - - - - - - Lines starting with # are considered comments and - ignored. Comments can be placed after an object pattern row as well. - Blank lines are also ignored. See - for how to perform quoting in patterns. - - - - - @@ -315,6 +246,19 @@ PostgreSQL documentation + + + + + + Restore only global objects (roles and tablespaces), no databases. + + + This option is only relevant when restoring from an archive made using pg_dumpall. + + + + @@ -600,15 +544,6 @@ PostgreSQL documentation - - - - - Restore only the statistics, not schema (data definitions) or data. - - - - @@ -668,6 +603,108 @@ PostgreSQL documentation + + + + + Do not restore databases whose name matches + pattern. + Multiple patterns can be excluded by writing multiple + switches. The + pattern parameter is + interpreted as a pattern according to the same rules used by + psql's \d + commands (see ), + so multiple databases can also be excluded by writing wildcard + characters in the pattern. When using wildcards, be careful to + quote the pattern if needed to prevent shell wildcard expansion. + + + This option is only relevant when restoring from an archive made using pg_dumpall. + + + + + + + + + Specify a filename from which to read patterns for objects excluded + or included from restore. The patterns are interpreted according to the + same rules as + / for including objects in schemas, + / for excluding objects in schemas, + / for restoring named functions, + / for restoring named indexes, + / for restoring named tables + or / for restoring triggers. + To read from STDIN, use - as the + filename. The option can be specified in + conjunction with the above listed options for including or excluding + objects, and can also be specified more than once for multiple filter + files. + + + + The file lists one database pattern per row, with the following format: + +{ include | exclude } { function | index | schema | table | trigger } PATTERN + + + + + The first keyword specifies whether the objects matched by the pattern + are to be included or excluded. The second keyword specifies the type + of object to be filtered using the pattern: + + + + function: functions, works like the + / option. This keyword + can only be used with the include keyword. + + + + + index: indexes, works like the + / option. This keyword + can only be used with the include keyword. + + + + + schema: schemas, works like the + / and + / options. + + + + + table: tables, works like the + / option. This keyword + can only be used with the include keyword. + + + + + trigger: triggers, works like the + / option. This keyword + can only be used with the include keyword. + + + + + + + Lines starting with # are considered comments and + ignored. Comments can be placed after an object pattern row as well. + Blank lines are also ignored. See + for how to perform quoting in patterns. + + + + + @@ -805,33 +842,6 @@ PostgreSQL documentation - - - - - Dump data. This is the default. - - - - - - - - - Dump schema (data definitions). This is the default. - - - - - - - - - Dump statistics. This is the default. - - - - @@ -851,6 +861,15 @@ PostgreSQL documentation + + + + + Restore only the statistics, not schema (data definitions) or data. + + + + @@ -900,6 +919,33 @@ PostgreSQL documentation + + + + + Dump data. This is the default. + + + + + + + + + Dump schema (data definitions). This is the default. + + + + + + + + + Dump statistics. This is the default. + + + + diff --git a/doc/src/sgml/ref/pg_verifybackup.sgml b/doc/src/sgml/ref/pg_verifybackup.sgml index 53341024cd267..61c12975e4ad5 100644 --- a/doc/src/sgml/ref/pg_verifybackup.sgml +++ b/doc/src/sgml/ref/pg_verifybackup.sgml @@ -143,35 +143,6 @@ PostgreSQL documentation - - - - - - Ignore the specified file or directory, which should be expressed - as a relative path name, when comparing the list of data files - actually present in the backup to those listed in the - backup_manifest file. If a directory is - specified, this option affects the entire subtree rooted at that - location. Complaints about extra files, missing files, file size - differences, or checksum mismatches will be suppressed if the - relative path name matches the specified path name. This option - can be specified multiple times. - - - - - - - - - - Use the manifest file at the specified path, rather than one located - in the root of the backup directory. - - - - @@ -211,6 +182,35 @@ PostgreSQL documentation + + + + + + Ignore the specified file or directory, which should be expressed + as a relative path name, when comparing the list of data files + actually present in the backup to those listed in the + backup_manifest file. If a directory is + specified, this option affects the entire subtree rooted at that + location. Complaints about extra files, missing files, file size + differences, or checksum mismatches will be suppressed if the + relative path name matches the specified path name. This option + can be specified multiple times. + + + + + + + + + + Use the manifest file at the specified path, rather than one located + in the root of the backup directory. + + + + diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml index df13365b287dc..aeeed297437e6 100644 --- a/doc/src/sgml/ref/pgupgrade.sgml +++ b/doc/src/sgml/ref/pgupgrade.sgml @@ -145,15 +145,6 @@ PostgreSQL documentation - - - - - Do not restore statistics from the old cluster into the new cluster. - - - - options options @@ -264,50 +255,10 @@ PostgreSQL documentation - - - - Move the data directories from the old cluster to the new cluster. - Then, replace the catalog files with those generated for the new - cluster. This mode can outperform , - , , and - , especially on clusters with many - relations. - - - However, this mode creates many garbage files in the old cluster, which - can prolong the file synchronization step if - is used. Therefore, it is - recommended to use with - . - - - Additionally, once the file transfer step begins, the old cluster will - be destructively modified and therefore will no longer be safe to - start. See for details. - - - - - - method + - When set to fsync, which is the default, - pg_upgrade will recursively open and synchronize all - files in the upgraded cluster's data directory. The search for files - will follow symbolic links for the WAL directory and each configured - tablespace. - - - On Linux, syncfs may be used instead to ask the - operating system to synchronize the whole file systems that contain the - upgraded cluster's data directory, its WAL files, and each tablespace. - See for information - about the caveats to be aware of when using syncfs. - - - This option has no effect when is used. + Do not restore statistics from the old cluster into the new cluster. @@ -365,6 +316,55 @@ PostgreSQL documentation + + + + + Move the data directories from the old cluster to the new cluster. + Then, replace the catalog files with those generated for the new + cluster. This mode can outperform , + , , and + , especially on clusters with many + relations. + + + However, this mode creates many garbage files in the old cluster, which + can prolong the file synchronization step if + is used. Therefore, it is + recommended to use with + . + + + Additionally, once the file transfer step begins, the old cluster will + be destructively modified and therefore will no longer be safe to + start. See for details. + + + + + + method + + + When set to fsync, which is the default, + pg_upgrade will recursively open and synchronize all + files in the upgraded cluster's data directory. The search for files + will follow symbolic links for the WAL directory and each configured + tablespace. + + + On Linux, syncfs may be used instead to ask the + operating system to synchronize the whole file systems that contain the + upgraded cluster's data directory, its WAL files, and each tablespace. + See for information + about the caveats to be aware of when using syncfs. + + + This option has no effect when is used. + + + + @@ -832,18 +832,20 @@ psql --username=postgres --file=script.sql postgres - Because not all statistics are not transferred by - pg_upgrade, you will be instructed to run a command to + Because not all statistics are transferred by + pg_upgrade, you will be instructed to run commands to regenerate that information at the end of the upgrade. You might need to set connection parameters to match your new cluster. - Using vacuumdb --all --analyze-only --missing-stats-only - can efficiently generate such statistics. Alternatively, + First, use vacuumdb --all --analyze-in-stages --missing-stats-only - can be used to generate minimal statistics quickly. For either command, - the use of can speed it up. + to quickly generate minimal optimizer statistics for relations without + any. Then, use vacuumdb --all --analyze-only to ensure + all relations have updated cumulative statistics for triggering vacuum and + analyze. For both commands, the use of can speed + it up. If vacuum_cost_delay is set to a non-zero value, this can be overridden to speed up statistics generation using PGOPTIONS, e.g., PGOPTIONS='-c diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index f7c8bc16a7fcf..8f7d8758ca02f 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1067,16 +1067,6 @@ INSERT INTO tbls1 VALUES ($1, $2) \parse stmt1 - - \conninfo - - - Outputs information about the current database connection, - including TLS-related information if TLS is in use. - - - - \close prepared_statement_name @@ -1106,6 +1096,16 @@ SELECT $1 \parse stmt1 + + \conninfo + + + Outputs information about the current database connection, + including TLS-related information if TLS is in use. + + + + \copy { table [ ( column_list ) ] } from diff --git a/doc/src/sgml/ref/reindex.sgml b/doc/src/sgml/ref/reindex.sgml index 5b3c769800e9d..c405539714695 100644 --- a/doc/src/sgml/ref/reindex.sgml +++ b/doc/src/sgml/ref/reindex.sgml @@ -465,14 +465,17 @@ Indexes:
If the index marked INVALID is suffixed - ccnew, then it corresponds to the transient + _ccnew, then it corresponds to the transient index created during the concurrent operation, and the recommended recovery method is to drop it using DROP INDEX, then attempt REINDEX CONCURRENTLY again. - If the invalid index is instead suffixed ccold, + If the invalid index is instead suffixed _ccold, it corresponds to the original index which could not be dropped; the recommended recovery method is to just drop said index, since the rebuild proper has been successful. + A nonzero number may be appended to the suffix of the invalid index + names to keep them unique, like _ccnew1, + _ccold2, etc. diff --git a/doc/src/sgml/ref/reindexdb.sgml b/doc/src/sgml/ref/reindexdb.sgml index 98c3333228fb9..abcb041179bb9 100644 --- a/doc/src/sgml/ref/reindexdb.sgml +++ b/doc/src/sgml/ref/reindexdb.sgml @@ -352,9 +352,8 @@ PostgreSQL documentation - Specifies the name of the database to connect to to discover which - databases should be reindexed, - when / is used. + When the / is used, connect + to this database to gather the list of databases to reindex. If not specified, the postgres database will be used, or if that does not exist, template1 will be used. This can be a connection diff --git a/doc/src/sgml/ref/vacuumdb.sgml b/doc/src/sgml/ref/vacuumdb.sgml index d102f9d48406c..b0680a61814cc 100644 --- a/doc/src/sgml/ref/vacuumdb.sgml +++ b/doc/src/sgml/ref/vacuumdb.sgml @@ -560,9 +560,8 @@ PostgreSQL documentation - Specifies the name of the database to connect to to discover which - databases should be vacuumed, - when / is used. + When the / is used, connect + to this database to gather the list of databases to vacuum. If not specified, the postgres database will be used, or if that does not exist, template1 will be used. This can be a connection diff --git a/doc/src/sgml/regress.sgml b/doc/src/sgml/regress.sgml index 0e5e8e8f3090c..bf4ffb3057636 100644 --- a/doc/src/sgml/regress.sgml +++ b/doc/src/sgml/regress.sgml @@ -353,7 +353,7 @@ make check-world PG_TEST_EXTRA='kerberos ldap ssl load_balance libpq_encryption' Runs the test suite under src/test/modules/oauth_validator. - This opens TCP/IP listen sockets for a test-server running HTTPS. + This opens TCP/IP listen sockets for a test server running HTTPS. diff --git a/doc/src/sgml/release-18.sgml b/doc/src/sgml/release-18.sgml index 4f027a07d1ce9..73523289d979c 100644 --- a/doc/src/sgml/release-18.sgml +++ b/doc/src/sgml/release-18.sgml @@ -1,16 +1,3516 @@ - - Release 18 + + Release 18 - - Release date: - 2025-??-?? - + + Release date: + 2025-??-??, CURRENT AS OF 2025-05-01 + - - This is just a placeholder for now. - + + Overview - + + PostgreSQL 18 contains many new features + and enhancements, including: + + + + + + + (to be completed) + + + + + + The above items and other new features of + PostgreSQL 18 are explained in more detail + in the sections below. + + + + + + + Migration to Version 18 + + + A dump/restore using or use of + or logical replication is required for + those wishing to migrate data from any previous release. See for general information on migrating to new + major releases. + + + + Version 18 contains a number of changes that may affect compatibility + with previous releases. Observe the following incompatibilities: + + + + + + + + +Change time zone abbreviation handling (Tom Lane) +§ + + + +The system will now favor the current session's time zone abbreviations before checking the server variable timezone_abbreviations. Previously timezone_abbreviations was +checked first. + + + + + + + +Deprecate MD5 password authentication (Nathan Bossart) +§ + + + +Warnings generated by their use can be disabled by the server variable md5_password_warnings. + + + + + + + +Change VACUUM and ANALYZE to process the inheritance children of a parent (Michael Harris) +§ + + + +The previous behavior can be performed by using the new ONLY option. + + + + + + + +Prevent COPY FROM from treating \. as an end-of-file marker when reading CSV files (Daniel Vérité, Tom Lane) +§ +§ + + + +psql will still treat \. as an end-of-file marker when reading CSV files from STDIN. Older psql clients connecting to Postgres 18 servers might experience \copy problems. This +release also enforces that \. must appear alone on a line. + + + + + + + +Disallow unlogged partitioned tables (Michael Paquier) +§ + + + +Previously ALTER TABLE SET [UN]LOGGED did nothing, and the creation of an unlogged partitioned table did not cause its children to be unlogged. + + + + + + + +Remove non-functional support for RULE privileges in GRANT/REVOKE (Fujii Masao) +§ + + + +These have been non-functional since Postgres 8.2. + + + + + + + +Remove column pg_backend_memory_contexts.parent (Melih Mutlu) +§ + + + +This is now longer needed since pg_backend_memory_contexts.path was added. + + + + + + + +Change pg_backend_memory_contexts.level and pg_log_backend_memory_contexts() to be one-based (Melih Mutlu, Atsushi Torikoshi, David Rowley, Fujii Masao) +§ +§ +§ + + + +These were previously zero-based. + + + + + + + + + Changes + + + Below you will find a detailed account of the changes between + PostgreSQL 18 and the previous major + release. + + + + Server + + + Optimizer + + + + + + + +Remove some unnecessary table self-joins (Andrey Lepikhov, Alexander Kuzmenkov, Alexander Korotkov, Alena Rybakina) +§ + + + +This optimization can be disabled using server variable enable_self_join_elimination. + + + + + + + +Convert some 'IN (VALUES ...)' to 'x = ANY ...' for better optimizer statistics (Alena Rybakina, Andrei Lepikhov) +§ + + + + + + + +Allow transforming OR-clauses to arrays for faster index processing (Alexander Korotkov, Andrey Lepikhov) +§ + + + + + + + +Speed up the processing of INTERSECT, EXCEPT, window aggregates, and view column aliases (Tom Lane, David Rowley) +§ +§ +§ +§ + + + + + + + +Allow the keys of SELECT DISTINCT to be internally reordered to avoid sorting (Richard Guo) +§ + + + +This optimization can be disabled using enable_distinct_reordering. + + + + + + + +Ignore GROUP BY columns that are functionally dependent on other columns (Zhang Mingli, Jian He, David Rowley) +§ + + + +If a GROUP BY clause includes all columns of a unique index, as well as other columns of the same table, those other columns are redundant and can be dropped +from the grouping. This was already true for non-deferred primary keys. + + + + + + + +Allow some HAVING clauses on GROUPING SETS to be pushed to WHERE clauses (Richard Guo) +§ +§ +§ +§ + + + +This allows earlier row filtering. This release also fixes some GROUPING SETS queries that used to return incorrect results. + + + + + + + +Improve row estimates for generate_series() using numeric and timestamp values (David Rowley, Song Jinzhou) +§ +§ + + + + + + + +Allow the optimizer to use "Right Semi Join" plans (Richard Guo) +§ + + + +Semi-joins are used when needing to find if there is at least one match. + + + + + + + +Allow merge joins to use incremental sorts (Richard Guo) +§ + + + + + + + +Improve the efficiency of planning queries accessing many partitions (Ashutosh Bapat, Yuya Watari, David Rowley) +§ +§ + + + + + + + +Allow partitionwise joins in more cases, and reduce its memory usage (Richard Guo, Tom Lane, Ashutosh Bapat) +§ +§ + + + + + + + +Improve cost estimates of partition queries (Nikita Malakhov, Andrei Lepikhov) +§ + + + + + + + +Improve SQL-language function plan caching (Alexander Pyhalov, Tom Lane) +§ +§ + + + + + + + +Improve handling of disabled optimizer features (Robert Haas) +§ + + + + + + + + + Indexes + + + + + + + +Allow skip scans of btree indexes (Peter Geoghegan) +§ +§ + + + +This allows muti-column btree indexes to be used by queries that only +reference the second or later indexed columns. + + + + + + + +Allow non-btree unique indexes to be used as partition keys and in materialized views (Mark Dilger) +§ +§ + + + +The index type must still support equality. + + + + + + + +Allow GIN indexes to be created in parallel (Tomas Vondra, Matthias van de Meent) +§ + + + + + + + +Allow values to be sorted to speed rangetype GiST and btree index builds (Bernd Helmle) +§ + + + + + + + + + General Performance + + + + + + + +Add an asynchronous I/O subsystem (Andres Freund, Thomas Munro, Nazir Bilal Yavuz, Melanie Plageman) +§ +§ +§ +§ +§ +§ +§ +§ +§ +§ +§ + + + +This is enabled by server variable io_method, with server variables io_combine_limit and io_max_combine_limit added to control it. This also enables +effective_io_concurrency and maintenance_io_concurrency values greater than zero for systems without fadvise() support. The new system view pg_aios shows the file handles being used +for asynchronous I/O. + + + + + + + +Improve the locking performance of queries that access many relations (Tomas Vondra) +§ + + + + + + + +Improve the performance and reduce memory usage of hash joins and GROUP BY (David Rowley, Jeff Davis) +§ +§ +§ +§ +§ + + + +This also improves hash set operations used by EXCEPT, and hash lookups of subplan values. + + + + + + + +Allow normal vacuums to freeze some pages, even though they are all-visible (Melanie Plageman) +§ +§ + + + +This reduces the overhead of later full-relation freezing. The aggressiveness of this can be controlled by server variable and per-table setting vacuum_max_eager_freeze_failure_rate. +Previously vacuum never processed all-visible pages until freezing was required. + + + + + + + +Add server variable vacuum_truncate to control file truncation during VACUUM (Nathan Bossart, Gurjeet Singh) +§ + + + +A storage-level parameter with the same name and behavior already existed. + + + + + + + +Increase server variables effective_io_concurrency's and maintenance_io_concurrency's default values to 16 (Melanie Plageman) +§ +§ + + + +This more accurately reflects modern hardware. + + + + + + + + + Monitoring + + + + + + + +Increase the logging granularity of server variable log_connections (Melanie Plageman) +§ +§ + + + +This server variable was previously only boolean; these options are still supported. + + + + + + + +Add log_line_prefix escape "%L" to output the client IP address (Greg Sabino Mullane) +§ + + + + + + + +Add server variable log_lock_failure to log lock acquisition failures (Yuki Seino) +§ + + + +Specifically it reports SELECT ... NOWAIT lock failures. + + + + + + + +Modify pg_stat_all_tables and its variants to report the time spent in vacuum, analyze, and their automatic variants (Sami Imseih) +§ + + + +The new columns are total_vacuum_time, total_autovacuum_time, total_analyze_time, and total_autoanalyze_time. + + + + + + + +Add delay time reporting to VACUUM and ANALYZE (Bertrand Drouvot, Nathan Bossart) +§ +§ + + + +This information appears in the autovacuum logs, the system views pg_stat_progress_vacuum and pg_stat_progress_analyze, and the output of VACUUM and ANALYZE when in VERBOSE +mode; tracking must be enabled with the server variable track_cost_delay_timing. + + + + + + + +Add per-backend I/O statistics reporting (Bertrand Drouvot) +§ +§ + + + +The statistics are accessed via pg_stat_get_backend_io(). Per-backend I/O statistics can be cleared via pg_stat_reset_backend_stats(). + + + + + + + +Add pg_stat_io columns to report I/O activity in bytes (Nazir Bilal Yavuz) +§ + + + +The new columns are read_bytes, write_bytes, and extend_bytes. The op_bytes column, which always equaled BLCKSZ, has been removed. + + + + + + + +Add WAL I/O activity rows to pg_stat_io (Nazir Bilal Yavuz, Bertrand Drouvot, Michael Paquier) +§ +§ +§ + + + +This includes WAL receiver activity and a wait event for such writes. + + + + + + + + +Change server variable track_wal_io_timing to control tracking WAL timing in pg_stat_io instead of pg_stat_wal (Bertrand Drouvot) +§ + + + + + + + +Remove read/sync columns from pg_stat_wal (Bertrand Drouvot) +§ +§ + + + +This removes columns wal_write, wal_sync, wal_write_time, and wal_sync_time. + + + + + + + +Add function pg_stat_get_backend_wal() to return per-backend WAL statistics (Bertrand Drouvot) +§ + + + +Per-backend WAL statistics can be cleared via pg_stat_reset_backend_stats(). + + + + + + + +Add function pg_ls_summariesdir() to specifically list the contents of PGDATA/pg_wal/summaries (Yushi Ogiwara) +§ + + + + + + + +Add column pg_stat_checkpointer.num_done to report the number of completed checkpoints (Anton A. Melnikov) +§ + + + +Columns num_timed and num_requested count both completed and skipped checkpoints. + + + + + + + +Add column pg_stat_checkpointer.slru_written to report SLRU buffers written (Nitin Jadhav) +§ + + + +Also, modify the checkpoint server log message to report separate shared buffer and SLRU buffer values. + + + + + + + +Add columns to pg_stat_database to report parallel workers activity (Benoit Lobréau) +§ + + + +The new columns are parallel_workers_to_launch and parallel_workers_launched. + + + + + + + +Have query jumbling of arrays consider only the first and last array elements (Dmitry Dolgov, Sami Imseih) +§ +§ + + + +Jumbling is used by pg_stat_statements. + + + + + + + +Adjust query jumbling to group together queries using the same relation name (Michael Paquier, Sami Imseih) +§ + + + +This is true even if the tables in different schemas have different column names. + + + + + + + +Add column pg_backend_memory_contexts.type to report the type of memory context (David Rowley) +§ + + + + + + + +Add column pg_backend_memory_contexts.path to show memory context parents (Melih Mutlu) +§ + + + + + + + + + Privileges + + + + + + + +Add function pg_get_acl() to retrieve database access control details (Joel Jacobson) +§ +§ + + + + + + + +Add function has_largeobject_privilege() to check large object privileges (Yugo Nagata) +§ + + + + + + + +Allow ALTER DEFAULT PRIVILEGES to define large object default privileges (Takatsuka Haruka, Yugo Nagata, Laurenz Albe) +§ + + + + + + + +Add predefined role pg_signal_autovacuum_worker (Kirill Reshke) +§ + + + +This allows sending signals to autovacuum workers. + + + + + + + + + Server Configuration + + + + + + + +Add support for the OAuth authentication method (Jacob Champion, Daniel Gustafsson, Thomas Munro) +§ + + + +This adds an "oauth" authentication method to pg_hba.conf, libpq OAuth options, a server variable oauth_validator_libraries to load token validation libraries, and +a configure flag --with-libcurl to add the required compile-time libraries. + + + + + + + +Add server variable ssl_tls13_ciphers to allow specification of multiple colon-separated TLSv1.3 cipher suites (Erica Zhang, Daniel Gustafsson) +§ + + + + + + + +Change server variable ssl_groups's default to include elliptic curve X25519 (Daniel Gustafsson, Jacob Champion) +§ + + + + + + + +Rename server variable ssl_ecdh_curve to ssl_groups and allow multiple colon-separated ECDH curves to be specified (Erica Zhang, Daniel Gustafsson) +§ + + +The previous name still works. + + + + + + + +Add function pg_check_fipsmode() to report the server's FIPS mode (Daniel Gustafsson) +§ + + + + + + + +Make cancel request keys 256 bits (Heikki Linnakangas, Jelte Fennema-Nio) +§ +§ + + + +This is only possible when the server and client support wire protocol version 3.2, introduced in this release. + + + + + + + +Add server variable autovacuum_worker_slots to specify the maximum number of background workers (Nathan Bossart) +§ + + + +With this variable set, autovacuum_max_workers can be adjusted at runtime up to this maximum without a server restart. + + + + + + + +Allow specification of the fixed number of dead tuples that will trigger an autovacuum (Nathan Bossart, Frédéric Yhuel) +§ + + + +The server variable is autovacuum_vacuum_max_threshold. Percentages are still used for triggering. + + + + + + + +Change server variable max_files_per_process to limit only files opened by a backend (Andres Freund) +§ + + + +Previously files opened by the postmaster were also counted toward this limit. + + + + + + + +Add server variable num_os_semaphores to report the required number of semaphores (Nathan Bossart) +§ + + + +This is useful for operating system configuration. + + + + + + + +Add server variable extension_control_path to specify the location of extension control files (Peter Eisentraut, Matheus Alcantara) +§ + + + + + + + + + Streaming Replication and Recovery + + + + + + + +Allow inactive replication slots to be automatically invalided using server variable idle_replication_slot_timeout (Nisha Moond, Bharath Rupireddy) +§ + + + + + + + +Add server variable max_active_replication_origins to control the maximum active replication origins (Euler Taveira) +§ + + + +This was previously controlled by max_replication_slots, but this new setting allows a higher origin count in cases where fewer slots are required. + + + + + + + + + <link linkend="logical-replication">Logical Replication</link> + + + + + + + +Allow the values of generated columns to be logically replicated (Shubham Khanna, Vignesh C, Zhijie Hou, Shlok Kyal, Peter Smith) +§ +§ +§ +§ + + + +If the publication specifies a column list, all specified columns, generated and non-generated, are published. Without a specified column list, publication option publish_generated_columns +controls whether generated columns are published. Previously generated columns were not replicated and the subscriber had to compute the values if possible; this is particularly +useful for non-Postgres subscribers which lack such a capability. + + + + + + + +Change the default CREATE SUBSCRIPTION streaming option from "off" to "parallel" (Vignesh C) +§ + + + + + + + +Allow ALTER SUBSCRIPTION to change the replication slot's two-phase commit behavior (Hayato Kuroda, Ajin Cherian, Amit Kapila, Zhijie Hou) +§ +§ + + + + + + + +Log conflicts while applying logical replication changes (Zhijie Hou, Nisha Moond) +§ +§ +§ +§ +§ + + + +Also report in new columns of pg_stat_subscription_stats. + + + + + + + + + + + Utility Commands + + + + + + + +Allow generated columns to be virtual, and make them the default (Peter Eisentraut, Jian He, Richard Guo, Dean Rasheed) +§ +§ +§ + + + +Virtual generated columns generate their values when the columns are read, not written. The write behavior can still be specified via the STORED option. + + + + + + + +Add OLD/NEW support to RETURNING in DML queries (Dean Rasheed) +§ + + + +Previously RETURNING only returned new values for INSERT and UPDATE, and old values for DELETE; MERGE would return the appropriate value for the internal query executed. This new syntax +allows the RETURNING list of INSERT/UPDATE/DELETE/MERGE to explicitly return old and new values by using the special aliases "old" and "new". These aliases can be renamed to +avoid identifier conflicts. + + + + + + + +Allow foreign tables to be created like existing local tables (Zhang Mingli) +§ + + + +The syntax is CREATE FOREIGN TABLE ... LIKE. + + + + + + + +Allow LIKE with nondeterministic collations (Peter Eisentraut) +§ + + + + + + + +Allow text position search functions with nondeterministic collations (Peter Eisentraut) +§ + + + +These used to generate an error. + + + + + + + +Add builtin collation provider PG_UNICODE_FAST (Jeff Davis) +§ + + + +This locale supports case mapping, but sorts in code point order, not natural language order. + + + + + + + +Allow VACUUM and ANALYZE to process partitioned tables without processing their children (Michael Harris) +§ + + + +This is enabled with the new ONLY option. This is useful since autovacuum does not process partitioned tables, just its children. + + + + + + + +Add functions to modify per-relation and per-column optimizer statistics (Corey Huinker) +§ +§ +§ + + + +The functions are pg_restore_relation_stats(), pg_restore_attribute_stats(), pg_clear_relation_stats(), and pg_clear_attribute_stats. + + + + + + + + +Add server variable file_copy_method to control the file copying method (Nazir Bilal Yavuz) +§ + + + +This controls whether CREATE DATABASE ... STRATEGY=FILE_COPY and ALTER DATABASE ... SET TABLESPACE uses file copy or clone. + + + + + + + <link linkend="ddl-constraints">Constraints</link> + + + + + + + +Allow the specification of non-overlapping PRIMARY KEY and UNIQUE constraints (Paul A. Jungwirth) +§ + + + +This is specified by WITHOUT OVERLAPS on the last column. + + + + + + + +Allow CHECK and foreign key constraints to be specified as NOT ENFORCED (Amul Sul) +§ +§ + + + +This also adds column pg_constraint.conenforced. + + + + + + + +Require primary/foreign key relationships to use either deterministic collations or the the same nondeterministic collations (Peter Eisentraut) +§ + + + +The restore of a pg_dump, also used by pg_upgrade, will fail if these requirements are not met; schema changes must be made for these upgrade methods to succeed. + + + + + + + +Store column NOT NULL specifications in pg_constraint (Álvaro Herrera, Bernd Helmle) +§ + + + +This allows names to be specified for NOT NULL constraint. This also adds NOT NULL constraints to foreign tables and NOT NULL inheritance control to local tables. + + + + + + + +Allow ALTER TABLE to set the NOT VALID attribute of NOT NULL constraints (Rushabh Lathia, Jian He) +§ + + + + + + + +Allow modification of the inheritability of NOT NULL constraints (Suraj Kharage, Álvaro Herrera) +§ +§ + + + +The syntax is ALTER TABLE ... ALTER CONSTRAINT ... [NO] INHERIT. + + + + + + + +Allow NOT VALID foreign key constraints on partitioned tables (Amul Sul) +§ + + + + + + + +Allow dropping of constraints ONLY on partitioned tables (Álvaro Herrera) +§ + + + +This was previously erroneously prohibited. + + + + + + + + <link linkend="sql-copy"><command>COPY</command></link> + + + + + + + +Add REJECT_LIMIT to control the number of invalid rows COPY FROM can ignore (Atsushi Torikoshi) +§ + + + +This is available when ON_ERROR = 'ignore'. + + + + + + + +Allow COPY TO to copy rows from populated materialized view (Jian He) +§ + + + + + + + +Add COPY LOG_VERBOSITY level "silent" to suppress log output of ignored rows (Atsushi Torikoshi) +§ + + + +This new level suppresses output for discarded input rows when on_error = 'ignore'. + + + + + + + +Disallow COPY FREEZE on foreign tables (Nathan Bossart) +§ + + + +Previously, the COPY worked but the FREEZE was ignored, so disallow this command. + + + + + + + + <link linkend="sql-explain"><command>EXPLAIN</command></link> + + + + + + + +Automatically include BUFFERS output in EXPLAIN ANALYZE (Guillaume Lelarge, David Rowley) +§ + + + + + + + +Add WAL, CPU, and average read statistics output to EXPLAIN ANALYZE VERBOSE (Anthonin Bonnefoy) +§ +§ + + + + + + + +Add full WAL buffer count to EXPLAIN (WAL), VACUUM/ANALYZE (VERBOSE), and autovacuum log output (Bertrand Drouvot) +§ +§ + + + + + + + +In EXPLAIN ANALYZE, report the number of index lookups used per index scan node (Peter Geoghegan) +§ + + + + + + + +Modify EXPLAIN to output fractional row counts (Ibrar Ahmed, Ilia Evdokimov, Robert Haas) +§ +§ + + + + + + + +Add memory and disk usage details to Material, Window Aggregate, and common table expression nodes in EXPLAIN (David Rowley, Tatsuo Ishii) +§ +§ +§ +§ + + + + + + + + +Add details about window function arguments to EXPLAIN output (Tom Lane) +§ + + + + + + + +Add "Parallel Bitmap Heap Scan" worker cache statistics to EXPLAIN ANALYZE (David Geier, Heikki Linnakangas, Donghang Lin, Alena Rybakina, David Rowley) +§ + + + + + + + +Indicate disabled nodes in EXPLAIN ANALYZE output (Robert Haas, David Rowley, Laurenz Albe) +§ +§ +§ + + + + + + + + + + + Data Types + + + + + + + +Improve Unicode full case mapping and conversion (Jeff Davis) +§ +§ + + + +This adds the ability to do conditional and title case mapping, and case map single characters to multiple characters. + + + + + + + +Allow jsonb "null" values to be cast to scalar types as NULL (Tom Lane) +§ + + + +Previously such casts generated an error. + + + + + + + +Add optional parameter to json{b}_strip_nulls to allow removal of null array elements (Florents Tselai) +§ + + + + + + + +Add function array_sort() which sorts an array's first dimension (Junwang Zhao, Jian He) +§ + + + + + + + +Add function array_reverse() which reverses an array's first dimension (Aleksander Alekseev) +§ + + + + + + + +Add function reverse() to reverse bytea bytes (Aleksander Alekseev) +§ + + + + + + + +Allow casting between integer types and bytea (Aleksander Alekseev) +§ + + + +The integer values are stored as bytea two's complement values. + + + + + + + +Update Unicode data to Unicode 16.0.0 (Peter Eisentraut) +§ + + + + + + + +Add full text search stemming for Estonian (Tom Lane) +§ + + + + + + + +Improve the XML error codes to more closely match the SQL standard (Tom Lane) +§ + + + +These errors are reported via SQLSTATE. + + + + + + + + + Functions + + + + + + + +Add function CASEFOLD() to allow for more sophisticated case-insensitive matching (Jeff Davis) +§ + + + +Allows more accurate comparison, i.e., a character can have multiple upper or lower case equivalents, or upper or lower case conversion changes the number of characters. + + + + + + + +Allow MIN()/MAX() aggregates on arrays and composite types (Aleksander Alekseev, Marat Buharov) +§ +§ + + + + + + + +Add a WEEK option to EXTRACT() (Tom Lane) +§ + + + + + + + +Improve the output EXTRACT(QUARTER ...) for negative values (Tom Lane) +§ + + + + + + + +Add roman numeral support to to_number() (Hunaid Sohail) +§ + + + +This is accessed via the "RN" pattern. + + + + + + + +Add UUID version 7 generation function uuidv7() (Andrey Borodin) +§ + + + +This UUID value is temporally sortable. Function alias uuidv4() has been added to explicitly generate version 4 UUIDs. + + + + + + + +Add functions crc32() and crc32c() to compute CRC values (Aleksander Alekseev) +§ + + + + + + + +Add math functions gamma() and lgamma() (Dean Rasheed) +§ + + + + + + + +Allow "=>" syntax for named cursor arguments in plpgsql (Pavel Stehule) +§ + + + +We previously only accepted ":=". + + + + + + + +Allow regexp_match[es]/regexp_like/regexp_replace/regexp_count/regexp_instr/regexp_substr/regexp_split_to_table/regexp_split_to_array() to use named arguments (Jian He) +§ + + + + + + + + + <link linkend="libpq">libpq</link> + + + + + + + +Add function PQfullProtocolVersion() to report the full, including minor, protocol version number (Jacob Champion, Jelte Fennema-Nio) +§ + + + + + + + +Add libpq connection parameters and environment variables to specify the minimum and maximum acceptable protocol version for connections (Jelte Fennema-Nio) +§ +§ + + + + + + + +Add libpq function PQservice() to return the connection service name (Michael Banck) +§ + + + + + + + +Report search_path changes to the client (Alexander Kukushkin, Jelte Fennema-Nio, Tomas Vondra) +§ +§ + + + + + + + +Add PQtrace() output for all message types, including authentication (Jelte Fennema-Nio) +§ +§ +§ +§ +§ + + + + + + + +Add libpq connection parameter sslkeylogfile which dumps out SSL key material (Abhishek Chanda, Daniel Gustafsson) +§ + + + +This is useful for debugging. + + + + + + + +Modify some libpq function signatures to use int64_t (Thomas Munro) +§ + + + +These previously used pg_int64, which is now deprecated. + + + + + + + + + <xref linkend="app-psql"/> + + + + + + + +Allow psql to parse, bind, and close named prepared statements (Anthonin Bonnefoy, Michael Paquier) +§ + + + +This is accomplished with new commands \parse, \bind_named, and \close. + + + + + + + +Add psql backslash commands to allowing issuance of pipeline queries (Anthonin Bonnefoy) +§ +§ +§ + + + +The new commands are \startpipeline, \syncpipeline, \sendpipeline, \endpipeline, \flushrequest, \flush, and \getresults. + + + + + + + +Allow adding pipeline status to the psql prompt and add related state variables (Anthonin Bonnefoy) +§ + + + +The new prompt character is "%P" and the new psql variables are PIPELINE_SYNC_COUNT, PIPELINE_COMMAND_COUNT, and PIPELINE_RESULT_COUNT. + + + + + + + +Allow adding the connection service name to the psql prompt or access it via psql variable (Michael Banck) +§ + + + + + + + +Add psql option to use expanded mode on all list commands (Dean Rasheed) +§ + + + +Adding 'x' enables this. + + + + + + + +Change psql's \conninfo to use tabular format and include more information (Álvaro Herrera, Maiquel Grassi, Hunaid Sohail) +§ + + + + + + + +Add function's leakproof indicator to psql's \df+, \do+, \dAo+, and \dC+ outputs (Yugo Nagata) +§ + + + + + + + +Add access method details for partitioned relations in \dP+ (Justin Pryzby) +§ + + + + + + + +Add "default_version" to the psql \dx extension output (Magnus Hagander) +§ + + + + + + + +Add psql variable WATCH_INTERVAL to set the default \watch wait time (Daniel Gustafsson) +§ + + + + + + + + + Server Applications + + + + + + + +Change initdb to default to enabling checksums (Greg Sabino Mullane) +§ +§ + + + +The new initdb option --no-data-checksums disables checksums. + + + + + + + +Add initdb option --no-sync-data-files to avoid syncing heap/index files (Nathan Bossart) +§ + + + +initdb --no-sync is still available to avoid syncing any files. + + + + + + + +Add vacuumdb option --missing-stats-only to compute only missing optimizer statistics (Corey Huinker, Nathan Bossart) +§ +§ + + + +This option can only be used by --analyze-only and --analyze-in-stages. + + + + + + + +Add pg_combinebackup option -k/--link to enable hard linking (Israel Barth Rubio, Robert Haas) +§ + + + +Only some files can be hard linked. This should not be used if the backups will be used independently. + + + + + + + +Allow pg_verifybackup to verify tar-format backups (Amul Sul) +§ + + + + + + + +If pg_rewind's --source-server specifies a database name, use it in --write-recovery-conf output (Masahiko Sawada) +§ + + + + + + + +Add pg_resetwal option --char-signedness to change the default char signedness (Masahiko Sawada) +§ + + + + + + + + <link + linkend="app-pgdump"><application>pg_dump</application></link>/<link + linkend="app-pg-dumpall"><application>pg_dumpall</application></link>/<link + linkend="app-pgrestore"><application>pg_restore</application></link> + + + + + + + +Allow pg_dumpall to dump in the same output formats as pg_dump supports (Mahendra Singh Thalor, Andrew Dunstan) +§ + + + +Also modify pg_restore to handle such dumps. Previously pg_dumpall only supported text format. + + + + + + + +Add pg_dump options --with-schema, --with-data, and --with-statistics (Jeff Davis) +§ + + + + + + + +Add pg_dump option --sequence-data to dump sequence data that would normally be excluded (Nathan Bossart) +§ + + + + + + + +Add pg_dump, pg_dumpall, and pg_restore options --statistics-only, --no-statistics, --no-data, and --no-schema (Corey Huinker, Jeff Davis) +§ + + + + + + + +Add option --no-policies to disable row level security policy processing in pg_dump, pg_dumpall, pg_restore (Nikolay Samokhvalov) +§ + + + +This is useful for migrating to systems with different policies. + + + + + + + + + <link linkend="pgupgrade"><application>pg_upgrade</application></link> + + + + + + + +Allow pg_upgrade to preserve optimizer statistics (Corey Huinker, Jeff Davis, Nathan Bossart) +§ +§ +§ +§ + + + +Extended statistics are not preserved. Also add pg_upgrade option --no-statistics to disable statistics preservation. + + + + + + + +Allow pg_upgrade to process database checks in parallel (Nathan Bossart) +§ +§ +§ +§ +§ +§ +§ +§ +§ +§ +§ + + + +This is controlled by the existing --jobs option. + + + + + + + +Add pg_upgrade option --swap to swap directories rather than copy, clone, or link files (Nathan Bossart) +§ + + + +This mode is potentially the fastest. + + + + + + + +Add pg_upgrade option --set-char-signedness to set the default char signedness of new cluster (Masahiko Sawada) +§ +§ + + + +This is to handle cases where a pre-Postgres 18 cluster's default CPU signedness does not match the new cluster. + + + + + + + + + Logical Replication Applications> + + + + + + + +Add pg_createsubscriber option --all to create logical replicas for all databases (Shubham Khanna) +§ + + + + + + + +Add pg_createsubscriber option --remove to remove publications (Shubham Khanna) +§ + + + + + + + +Add pg_createsubscriber option --enable-two-phase to enable prepared transactions (Shubham Khanna) +§ + + + + + + + +Add pg_recvlogical option --failover to specify failover slots (Hayato Kuroda) +§ + + + + + + + +Allow pg_recvlogical --drop-slot to work without --dbname (Hayato Kuroda) +§ + + + + + + + + + + + Source Code + + + + + + + +Separate the loading and running of injection points (Michael Paquier, Heikki Linnakangas) +§ +§ + + + +Injection points can now be created, but not run, via INJECTION_POINT_LOAD(), and such injection points can be run via INJECTION_POINT_CACHED(). + + + + + + + +Allow inline injection point test code with IS_INJECTION_POINT_ATTACHED() (Heikki Linnakangas) +§ + + + + + + + +Improve the performance of processing long JSON strings using SIMD instructions (David Rowley) +§ + + + + + + + +Speed up CRC32C calculations using x86 AVX-512 instructions (Raghuveer Devulapalli, Paul Amonson) +§ + + + + + + + +Add ARM Neon and SVE CPU intrinsics for popcount (integer bit counting) (Chiranmoy Bhattacharya, Devanga Susmitha, Rama Malladi) +§ +§ + + + + + + + +Improve the speed of multiplication (Joel Jacobson, Dean Rasheed) +§ + + + + + + + +Add configure option --with-libnuma to enable NUMA awareness (Jakub Wartak, Bertrand Drouvot) +§ +§ +§ + + + +The function pg_numa_available() reports on NUMA awareness, and system views pg_shmem_allocations_numa and pg_buffercache_numa which report on shared memory distribution across +NUMA nodes. + + + + + + + +Add TOAST table to pg_index to allow for very large index expression indexes (Nathan Bossart) +§ + + + + + + + +Remove column pg_attribute.attcacheoff (David Rowley) +§ + + + + + + + +Add column pg_class.relallfrozen (Melanie Plageman) +§ + + + + + + + +Add amgettreeheight, amconsistentequality, and amconsistentordering to the index access method API (Mark Dilger) +§ +§ + + + + + + + +Add GiST support function stratnum (Paul A. Jungwirth) +§ + + + + + + + +Record the default CPU signedness of "char" in pg_controldata (Masahiko Sawada) +§ + + + + + + + +Add support for Python "Limited API" in PL/Python (Peter Eisentraut) +§ +§ + + + +This helps prevent problems caused by Python 3.x version mismatches. + + + + + + + +Change the minimum supported Python version to 3.6.8 (Jacob Champion) +§ + + + + + + + +Remove support for OpenSSL versions older than 1.1.1 (Daniel Gustafsson) +§ +§ + + + + + + + +If LLVM is enabled, require version 14 or later (Thomas Munro) +§ + + + + + + + +Add macro PG_MODULE_MAGIC_EXT to allow extensions to report their name and version (Andrei Lepikhov) +§ + + + +This information can be access via the new function pg_get_loaded_modules(). + + + + + + + +Document that SPI_connect/SPI_connect_ext() always returns success (SPI_OK_CONNECT) (Stepan Neretin) +§ + + + +Errors are always reported via ereport(). + + + + + + + +Remove the experimental designation of Meson builds on Windows (Aleksander Alekseev) +§ + + + + + + + +Add documentation section about API and ABI compatibility (David Wheeler, Peter Eisentraut) +§ + + + + + + + +Remove configure options --disable-spinlocks and --disable-atomics (Thomas Munro) +§ +§ + + + +Thirty-two bit atomic operations are now required. + + + + + + + +Remove support for the HPPA/PA-RISC architecture (Tom Lane) +§ + + + + + + + + + Additional Modules + + + + + + + +Add extension pg_logicalinspect to inspect logical snapshots (Bertrand Drouvot) +§ + + + + + + + +Add extension pg_overexplain which adds debug details to EXPLAIN output (Robert Haas) +§ + + + + + + + +Add output columns to postgres_fdw_get_connections() (Hayato Kuroda, Sagar Dilip Shedge) +§ +§ +§ +§ + + + +New output column "used_in_xact" indicates if the foreign data wrapper is being used by a current transaction, "closed" indicates if it is closed, "user_name" indicates the +user name, and "remote_backend_pid" indicates the remote backend process identifier. + + + + + + + +Allow SCRAM authentication from the client to be passed to postgres_fdw servers (Matheus Alcantara, Peter Eisentraut) +§ + + + +This avoids storing postgres_fdw authentication information in the database, and is enabled with the postgres_fdw "use_scram_passthrough" connection option. libpq uses new connection +parameters scram_client_key and scram_server_key. + + + + + + + +Allow SCRAM authentication from the client to be passed to dblink servers (Matheus Alcantara) +§ + + + + + + + +Add on_error and log_verbosity options to file_fdw (Atsushi Torikoshi) +§ + + + +These control how file_fdw handles and reports invalid file rows. + + + + + + + +Add "reject_limit" to control the number of invalid rows file_fdw can ignore (Atsushi Torikoshi) +§ + + + +This is active when ON_ERROR = 'ignore'. + + + + + + + +Add configurable variable min_password_length to passwordcheck (Emanuele Musella, Maurizio Boriani) +§ + + + +This controls the minimum password length. + + + + + + + +Have pgbench report the number of failed, retried, or skipped transactions in per-script reports (Yugo Nagata) +§ + + + + + + + +Add isn server variable "weak" to control invalid check digit acceptance (Viktor Holmberg) +§ + + + +This was previously only controlled by function isn_weak(). + + + + + + + +Allow values to be sorted to speed btree_gist index builds (Bernd Helmle, Andrey Borodin) +§ + + + + + + + +Add amcheck function gin_index_check() to verify GIN indexes (Grigory Kryachko, Heikki Linnakangas, Andrey Borodin) +§ + + + + + + + +Add functions pg_buffercache_evict_relation() and pg_buffercache_evict_all() to evict unpinned shared buffers (Nazir Bilal Yavuz) +§ + + + +The existing function pg_buffercache_evict() now returns the buffer flush status. + + + + + + + +Allow extensions to install custom EXPLAIN options (Robert Haas, Sami Imseih) +§ +§ +§ + + + + + + + +Allow extensions to use the server's cumulative statistics API (Michael Paquier) +§ +§ + + + + + + + <link linkend="pgstatstatements"><application>pg_stat_statements</application></link> + + + + + + + +Allow the queries of CREATE TABLE AS and DECLARE to be tracked by pg_stat_statements (Anthonin Bonnefoy) +§ + + + +They are also now assigned query ids. + + + + + + + +Allow the parameterization of SET values in pg_stat_statements (Greg Sabino Mullane, Michael Paquier) +§ + + + +This reduces the bloat caused by SET statements with differing constants. + + + + + + + +Add pg_stat_statements columns to report parallel activity (Guillaume Lelarge) +§ + + + +The new columns are parallel_workers_to_launch and parallel_workers_launched. + + + + + + + +Add pg_stat_statements.wal_buffers_full to report full WAL buffers (Bertrand Drouvot) +§ + + + + + + + + + <link linkend="pgcrypto"><application>pgcrypto</application></link> + + + + + + + +Add pgcrypto functions sha256crypt() and sha512crypt() (Bernd Helmle) +§ + + + + + + + +Add CFB mode to pgcrypto encryption and decryption (Umar Hayat) +§ + + + + + + + +Add pgcrypto server variable builtin_crypto_enabled to allow disabling builtin non-FIPS mode cryptographic functions (Daniel Gustafsson, Joe Conway) +§ + + + +This is useful for guaranteeing FIPS mode behavior. + + + + + + + + + + + + Acknowledgments + + + The following individuals (in alphabetical order) have contributed + to this release as patch authors, committers, reviewers, testers, + or reporters of issues. + + + + (to be completed) + + + + diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 59f39e8992470..0c60bafac635d 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -782,19 +782,19 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such SEMMNI Maximum number of semaphore identifiers (i.e., sets) - at least ceil(num_os_semaphores / 19) plus room for other applications + at least ceil(num_os_semaphores / 16) plus room for other applications SEMMNS Maximum number of semaphores system-wide - ceil(num_os_semaphores / 19) * 20 plus room for other applications + ceil(num_os_semaphores / 16) * 17 plus room for other applications SEMMSL Maximum number of semaphores per set - at least 20 + at least 17 @@ -841,7 +841,7 @@ psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such (), allowed autovacuum worker process (), allowed WAL sender process (), allowed background - process (), etc., in sets of 19. + process (), etc., in sets of 16. The runtime-computed parameter reports the number of semaphores required. This parameter can be viewed before starting the server with a postgres command like: @@ -851,17 +851,17 @@ $ postgres -D $PGDATA -C num_os_semaphores - Each set of 19 semaphores will - also contain a 20th semaphore which contains a magic + Each set of 16 semaphores will + also contain a 17th semaphore which contains a magic number, to detect collision with semaphore sets used by other applications. The maximum number of semaphores in the system is set by SEMMNS, which consequently must be at least as high as num_os_semaphores plus one extra for - each set of 19 required semaphores (see the formula in ). The parameter SEMMNI determines the limit on the number of semaphore sets that can exist on the system at one time. Hence this parameter must be at - least ceil(num_os_semaphores / 19). + least ceil(num_os_semaphores / 16). Lowering the number of allowed connections is a temporary workaround for failures, which are usually confusingly worded No space @@ -953,10 +953,10 @@ $ postgres -D $PGDATA -C num_os_semaphores The default shared memory settings are usually good enough, unless you have set shared_memory_type to sysv. - You will usually want to increase kern.ipc.semmni + However, you will need to increase kern.ipc.semmni and kern.ipc.semmns, as NetBSD's default settings - for these are uncomfortably small. + for these are unworkably small. @@ -987,11 +987,11 @@ $ postgres -D $PGDATA -C num_os_semaphores The default shared memory settings are usually good enough, unless you have set shared_memory_type to sysv. - You will usually want to + However, you will need to increase kern.seminfo.semmni and kern.seminfo.semmns, as OpenBSD's default settings - for these are uncomfortably small. + for these are unworkably small. @@ -1994,7 +1994,8 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433 sslmode=verify-ca or verify-full and have the appropriate root certificate file installed (). Alternatively the - system CA pool can be used using sslrootcert=system; in + system CA pool, as defined + by the SSL implementation, can be used using sslrootcert=system; in this case, sslmode=verify-full is forced for safety, since it is generally trivial to obtain certificates which are signed by a public CA. diff --git a/doc/src/sgml/system-views.sgml b/doc/src/sgml/system-views.sgml index e9a59af8c34bb..b58c52ea50f5a 100644 --- a/doc/src/sgml/system-views.sgml +++ b/doc/src/sgml/system-views.sgml @@ -181,6 +181,11 @@ shared memory allocations + + pg_shmem_allocations_numa + NUMA node mappings for shared memory allocations + + pg_stats planner statistics @@ -2854,6 +2859,17 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx + + + two_phase_at pg_lsn + + + The address (LSN) from which the decoding of prepared + transactions is enabled. NULL for logical slots + where two_phase is false and for physical slots. + + + inactive_since timestamptz @@ -4040,6 +4056,96 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx + + <structname>pg_shmem_allocations_numa</structname> + + + pg_shmem_allocations_numa + + + + The pg_shmem_allocations_numa shows how shared + memory allocations in the server's main shared memory segment are distributed + across NUMA nodes. This includes both memory allocated by + PostgreSQL itself and memory allocated + by extensions using the mechanisms detailed in + . This view will output multiple rows + for each of the shared memory segments provided that they are spread across + multiple NUMA nodes. This view should not be queried by monitoring systems + as it is very slow and may end up allocating shared memory in case it was not + used earlier. + Current limitation for this view is that won't show anonymous shared memory + allocations. + + + + Note that this view does not include memory allocated using the dynamic + shared memory infrastructure. + + + + + When determining the NUMA node, the view touches + all memory pages for the shared memory segment. This will force + allocation of the shared memory, if it wasn't allocated already, + and the memory may get allocated in a single NUMA + node (depending on system configuration). + + + + + <structname>pg_shmem_allocations_numa</structname> Columns + + + + + Column Type + + + Description + + + + + + + + name text + + + The name of the shared memory allocation. + + + + + + numa_node int4 + + + ID of NUMA node + + + + + + size int8 + + + Size of the allocation on this particular NUMA memory node in bytes + + + + + +
+ + + By default, the pg_shmem_allocations_numa view can be + read only by superusers or roles with privileges of the + pg_read_all_stats role. + +
+ <structname>pg_stats</structname> diff --git a/doc/src/sgml/textsearch.sgml b/doc/src/sgml/textsearch.sgml index d171f8da80116..908857a54af5f 100644 --- a/doc/src/sgml/textsearch.sgml +++ b/doc/src/sgml/textsearch.sgml @@ -1342,7 +1342,7 @@ ts_headline( config <b>
and </b>, which can be suitable - for HTML output. + for HTML output (but see the warning below).
@@ -1354,6 +1354,21 @@ ts_headline( config + + Warning: Cross-site scripting (XSS) safety + + The output from ts_headline is not guaranteed to + be safe for direct inclusion in web pages. When + HighlightAll is false (the + default), some simple XML tags are removed from the document, but this + is not guaranteed to remove all HTML markup. Therefore, this does not + provide an effective defense against attacks such as cross-site + scripting (XSS) attacks, when working with untrusted input. To guard + against such attacks, all HTML markup should be removed from the input + document, or an HTML sanitizer should be used on the output. + + + These option names are recognized case-insensitively. You must double-quote string values if they contain spaces or commas.
@@ -2225,6 +2240,18 @@ LIMIT 10; Specifically, the only non-alphanumeric characters supported for email user names are period, dash, and underscore.
+ + + tag does not support all valid tag names as defined by + W3C Recommendation, XML. + Specifically, the only tag names supported are those starting with an + ASCII letter, underscore, or colon, and containing only letters, digits, + hyphens, underscores, periods, and colons. tag also + includes XML comments starting with <!-- and ending + with -->, and XML declarations (but note that this + includes anything starting with <?x and ending with + >). + diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 35d34f224ef9b..2d81afce8cb9b 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -234,21 +234,6 @@ CALL clean_emp(); whereas returning void is a PostgreSQL extension. - - - The entire body of an SQL function is parsed before any of it is - executed. While an SQL function can contain commands that alter - the system catalogs (e.g., CREATE TABLE), the effects - of such commands will not be visible during parse analysis of - later commands in the function. Thus, for example, - CREATE TABLE foo (...); INSERT INTO foo VALUES(...); - will not work as desired if packaged up into a single SQL function, - since foo won't exist yet when the INSERT - command is parsed. It's recommended to use PL/pgSQL - instead of an SQL function in this type of situation. - - - The syntax of the CREATE FUNCTION command requires the function body to be written as a string constant. It is usually @@ -3844,14 +3829,17 @@ uint32 WaitEventExtensionNew(const char *wait_event_name) An injection point with a given name is declared using macro: -INJECTION_POINT(name); +INJECTION_POINT(name, arg); There are a few injection points already declared at strategic points within the server code. After adding a new injection point the code needs to be compiled in order for that injection point to be available in the binary. Add-ins written in C-language can declare injection points in - their own code using the same macro. + their own code using the same macro. The injection point names should use + lower-case characters, with terms separated by + dashes. arg is an optional argument value given to the + callback at run-time. @@ -3861,7 +3849,7 @@ INJECTION_POINT(name); a two-step approach with the following macros: INJECTION_POINT_LOAD(name); -INJECTION_POINT_CACHED(name); +INJECTION_POINT_CACHED(name, arg); Before entering the critical section, @@ -3894,7 +3882,9 @@ extern void InjectionPointAttach(const char *name, InjectionPointCallback: static void -custom_injection_callback(const char *name, const void *private_data) +custom_injection_callback(const char *name, + const void *private_data, + void *arg) { uint32 wait_event_info = WaitEventInjectionPointNew(name); @@ -3923,7 +3913,7 @@ if (IS_INJECTION_POINT_ATTACHED("before-foobar")) local_var = 123; /* also execute the callback */ - INJECTION_POINT_CACHED("before-foobar"); + INJECTION_POINT_CACHED("before-foobar", NULL); } #endif diff --git a/doc/src/sgml/xindex.sgml b/doc/src/sgml/xindex.sgml index 053619624950c..7e23a7b6e4323 100644 --- a/doc/src/sgml/xindex.sgml +++ b/doc/src/sgml/xindex.sgml @@ -461,6 +461,13 @@ 5 + + + Return the addresses of C-callable skip support function(s) + (optional) + + 6 + @@ -1062,7 +1069,8 @@ DEFAULT FOR TYPE int8 USING btree FAMILY integer_ops AS FUNCTION 1 btint8cmp(int8, int8) , FUNCTION 2 btint8sortsupport(internal) , FUNCTION 3 in_range(int8, int8, int8, boolean, boolean) , - FUNCTION 4 btequalimage(oid) ; + FUNCTION 4 btequalimage(oid) , + FUNCTION 6 btint8skipsupport(internal) ; CREATE OPERATOR CLASS int4_ops DEFAULT FOR TYPE int4 USING btree FAMILY integer_ops AS @@ -1075,7 +1083,8 @@ DEFAULT FOR TYPE int4 USING btree FAMILY integer_ops AS FUNCTION 1 btint4cmp(int4, int4) , FUNCTION 2 btint4sortsupport(internal) , FUNCTION 3 in_range(int4, int4, int4, boolean, boolean) , - FUNCTION 4 btequalimage(oid) ; + FUNCTION 4 btequalimage(oid) , + FUNCTION 6 btint4skipsupport(internal) ; CREATE OPERATOR CLASS int2_ops DEFAULT FOR TYPE int2 USING btree FAMILY integer_ops AS @@ -1088,7 +1097,8 @@ DEFAULT FOR TYPE int2 USING btree FAMILY integer_ops AS FUNCTION 1 btint2cmp(int2, int2) , FUNCTION 2 btint2sortsupport(internal) , FUNCTION 3 in_range(int2, int2, int2, boolean, boolean) , - FUNCTION 4 btequalimage(oid) ; + FUNCTION 4 btequalimage(oid) , + FUNCTION 6 btint2skipsupport(internal) ; ALTER OPERATOR FAMILY integer_ops USING btree ADD -- cross-type comparisons int8 vs int2 diff --git a/meson.build b/meson.build index ba7916d149337..d142e3e408b38 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,7 @@ project('postgresql', ['c'], - version: '18devel', + version: '18beta1', license: 'PostgreSQL', # We want < 0.56 for python 3.5 compatibility on old platforms. EPEL for @@ -107,6 +107,7 @@ os_deps = [] backend_both_deps = [] backend_deps = [] libpq_deps = [] +libpq_oauth_deps = [] pg_sysroot = '' @@ -860,13 +861,13 @@ endif ############################################################### libcurlopt = get_option('libcurl') +oauth_flow_supported = false + if not libcurlopt.disabled() # Check for libcurl 7.61.0 or higher (corresponding to RHEL8 and the ability # to explicitly set TLS 1.3 ciphersuites). libcurl = dependency('libcurl', version: '>= 7.61.0', required: libcurlopt) if libcurl.found() - cdata.set('USE_LIBCURL', 1) - # Check to see whether the current platform supports thread-safe Curl # initialization. libcurl_threadsafe_init = false @@ -938,11 +939,48 @@ if not libcurlopt.disabled() endif endif + # Check that the current platform supports our builtin flow. This requires + # libcurl and one of either epoll or kqueue. + oauth_flow_supported = ( + libcurl.found() + and (cc.check_header('sys/event.h', required: false, + args: test_c_args, include_directories: postgres_inc) + or cc.check_header('sys/epoll.h', required: false, + args: test_c_args, include_directories: postgres_inc)) + ) + + if oauth_flow_supported + cdata.set('USE_LIBCURL', 1) + elif libcurlopt.enabled() + error('client-side OAuth is not supported on this platform') + endif + else libcurl = not_found_dep endif +############################################################### +# Library: libnuma +############################################################### + +libnumaopt = get_option('libnuma') +if not libnumaopt.disabled() + # via pkg-config + libnuma = dependency('numa', required: false) + if not libnuma.found() + libnuma = cc.find_library('numa', required: libnumaopt) + endif + if not cc.has_header('numa.h', dependencies: libnuma, required: libnumaopt) + libnuma = not_found_dep + endif + if libnuma.found() + cdata.set('USE_LIBNUMA', 1) + endif +else + libnuma = not_found_dep +endif + ############################################################### # Library: liburing @@ -1479,6 +1517,7 @@ if sslopt in ['auto', 'openssl'] # Function introduced in OpenSSL 1.1.1, not in LibreSSL. ['X509_get_signature_info'], ['SSL_CTX_set_num_tickets'], + ['SSL_CTX_set_keylog_callback'], ] are_openssl_funcs_complete = true @@ -2348,17 +2387,21 @@ endif ############################################################### # Select CRC-32C implementation. # -# If we are targeting a processor that has Intel SSE 4.2 instructions, we can -# use the special CRC instructions for calculating CRC-32C. If we're not -# targeting such a processor, but we can nevertheless produce code that uses -# the SSE intrinsics, compile both implementations and select which one to use -# at runtime, depending on whether SSE 4.2 is supported by the processor we're -# running on. +# There are three methods of calculating CRC, in order of increasing +# performance: +# +# 1. The fallback using a lookup table, called slicing-by-8 +# 2. CRC-32C instructions (found in e.g. Intel SSE 4.2 and ARMv8 CRC Extension) +# 3. Algorithms using carryless multiplication instructions +# (e.g. Intel PCLMUL and Arm PMULL) # -# Similarly, if we are targeting an ARM processor that has the CRC -# instructions that are part of the ARMv8 CRC Extension, use them. And if -# we're not targeting such a processor, but can nevertheless produce code that -# uses the CRC instructions, compile both, and select at runtime. +# If we can produce code (via function attributes or additional compiler +# flags) that uses #2 (and possibly #3), we compile all implementations +# and select which one to use at runtime, depending on what is supported +# by the processor we're running on. +# +# If we are targeting a processor that has #2, we can use that without +# runtime selection. # # Note that we do not use __attribute__((target("..."))) for the ARM CRC # instructions because until clang 16, using the ARM intrinsics still requires @@ -2392,7 +2435,7 @@ int main(void) } ''' - if not cc.links(prog, name: '_mm_crc32_u8 and _mm_crc32_u32', + if not cc.links(prog, name: 'SSE 4.2 CRC32C', args: test_c_args) # Do not use Intel SSE 4.2 elif (cc.get_define('__SSE4_2__') != '') @@ -2407,6 +2450,38 @@ int main(void) have_optimized_crc = true endif + # Check if the compiler supports AVX-512 carryless multiplication + # and three-way exclusive-or instructions used for computing CRC. + # AVX-512F is assumed to be supported if the above are. + prog = ''' +#include +__m512i x; +__m512i y; + +#if defined(__has_attribute) && __has_attribute (target) +__attribute__((target("vpclmulqdq,avx512vl"))) +#endif +int main(void) +{ + __m128i z; + + y = _mm512_clmulepi64_epi128(x, y, 0); + z = _mm_ternarylogic_epi64( + _mm512_castsi512_si128(y), + _mm512_extracti32x4_epi32(y, 1), + _mm512_extracti32x4_epi32(y, 2), + 0x96); + /* return computed value, to prevent the above being optimized away */ + return _mm_crc32_u64(0, _mm_extract_epi64(z, 0)); +} +''' + + if cc.links(prog, + name: 'AVX-512 CRC32C', + args: test_c_args) + cdata.set('USE_AVX512_CRC32C_WITH_RUNTIME_CHECK', 1) + endif + endif elif host_cpu == 'arm' or host_cpu == 'aarch64' @@ -2569,6 +2644,7 @@ decl_checks = [ ['strlcpy', 'string.h'], ['strnlen', 'string.h'], ['strsep', 'string.h'], + ['timingsafe_bcmp', 'string.h'], ] # Need to check for function declarations for these functions, because @@ -2578,6 +2654,7 @@ decl_checks += [ ['preadv', 'sys/uio.h'], ['pwritev', 'sys/uio.h'], ['strchrnul', 'string.h'], + ['memset_s', 'string.h', '#define __STDC_WANT_LIB_EXT1__ 1'], ] # Check presence of some optional LLVM functions. @@ -2591,21 +2668,23 @@ endif foreach c : decl_checks func = c.get(0) header = c.get(1) - args = c.get(2, {}) + prologue = c.get(2, '') + args = c.get(3, {}) varname = 'HAVE_DECL_' + func.underscorify().to_upper() found = cc.compiles(''' -#include <@0@> +@0@ +#include <@1@> int main() { -#ifndef @1@ - (void) @1@; +#ifndef @2@ + (void) @2@; #endif return 0; } -'''.format(header, func), +'''.format(prologue, header, func), name: 'test whether @0@ is declared'.format(func), # need to add cflags_warn to get at least # -Werror=unguarded-availability-new if applicable @@ -2804,7 +2883,6 @@ func_checks = [ ['kqueue'], ['localeconv_l'], ['mbstowcs_l'], - ['memset_s'], ['mkdtemp'], ['posix_fadvise'], ['posix_fallocate'], @@ -2826,6 +2904,7 @@ func_checks = [ ['strsignal'], ['sync_file_range'], ['syncfs'], + ['timingsafe_bcmp'], ['uselocale'], ['wcstombs_l'], ] @@ -3212,17 +3291,18 @@ libpq_deps += [ gssapi, ldap_r, - # XXX libcurl must link after libgssapi_krb5 on FreeBSD to avoid segfaults - # during gss_acquire_cred(). This is possibly related to Curl's Heimdal - # dependency on that platform? - libcurl, libintl, ssl, ] +libpq_oauth_deps += [ + libcurl, +] + subdir('src/interfaces/libpq') -# fe_utils depends on libpq +# fe_utils and libpq-oauth depends on libpq subdir('src/fe_utils') +subdir('src/interfaces/libpq-oauth') # for frontend binaries frontend_code = declare_dependency( @@ -3240,6 +3320,7 @@ backend_both_deps += [ icu_i18n, ldap, libintl, + libnuma, liburing, libxml, lz4, @@ -3896,6 +3977,7 @@ if meson.version().version_compare('>=0.57') 'icu': icu, 'ldap': ldap, 'libcurl': libcurl, + 'libnuma': libnuma, 'liburing': liburing, 'libxml': libxml, 'libxslt': libxslt, diff --git a/meson_options.txt b/meson_options.txt index dd7126da3a73b..06bf5627d3c03 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -106,6 +106,9 @@ option('libcurl', type : 'feature', value: 'auto', option('libedit_preferred', type: 'boolean', value: false, description: 'Prefer BSD Libedit over GNU Readline') +option('libnuma', type: 'feature', value: 'auto', + description: 'NUMA support') + option('liburing', type : 'feature', value: 'auto', description: 'io_uring support, for asynchronous I/O') diff --git a/src/Makefile.global.in b/src/Makefile.global.in index cce29a37ac506..04952b533ded9 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -196,6 +196,7 @@ with_gssapi = @with_gssapi@ with_krb_srvnam = @with_krb_srvnam@ with_ldap = @with_ldap@ with_libcurl = @with_libcurl@ +with_libnuma = @with_libnuma@ with_liburing = @with_liburing@ with_libxml = @with_libxml@ with_libxslt = @with_libxslt@ @@ -223,6 +224,9 @@ krb_srvtab = @krb_srvtab@ ICU_CFLAGS = @ICU_CFLAGS@ ICU_LIBS = @ICU_LIBS@ +LIBNUMA_CFLAGS = @LIBNUMA_CFLAGS@ +LIBNUMA_LIBS = @LIBNUMA_LIBS@ + LIBURING_CFLAGS = @LIBURING_CFLAGS@ LIBURING_LIBS = @LIBURING_LIBS@ @@ -250,7 +254,7 @@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ PG_SYSROOT = @PG_SYSROOT@ -override CPPFLAGS := $(ICU_CFLAGS) $(LIBURING_CFLAGS) $(CPPFLAGS) +override CPPFLAGS := $(ICU_CFLAGS) $(LIBNUMA_CFLAGS) $(LIBURING_CFLAGS) $(CPPFLAGS) ifdef PGXS override CPPFLAGS := -I$(includedir_server) -I$(includedir_internal) $(CPPFLAGS) @@ -343,6 +347,9 @@ perl_embed_ldflags = @perl_embed_ldflags@ AWK = @AWK@ LN_S = @LN_S@ +LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ +LIBCURL_LDFLAGS = @LIBCURL_LDFLAGS@ +LIBCURL_LDLIBS = @LIBCURL_LDLIBS@ MSGFMT = @MSGFMT@ MSGFMT_FLAGS = @MSGFMT_FLAGS@ MSGMERGE = @MSGMERGE@ @@ -367,10 +374,10 @@ DOWNLOAD = wget -O $@ --no-use-server-timestamps # Pick a release from here: . Note # that the most recent release listed there is often a pre-release; # don't pick that one, except for testing. -UNICODE_VERSION = 15.1.0 +UNICODE_VERSION = 16.0.0 # Pick a release from here: -CLDR_VERSION = 45 +CLDR_VERSION = 47 # Tree-wide build support diff --git a/src/backend/access/common/tupdesc.c b/src/backend/access/common/tupdesc.c index ed2195f14b256..ffd0c78f905a5 100644 --- a/src/backend/access/common/tupdesc.c +++ b/src/backend/access/common/tupdesc.c @@ -22,6 +22,7 @@ #include "access/htup_details.h" #include "access/toast_compression.h" #include "access/tupdesc_details.h" +#include "catalog/catalog.h" #include "catalog/pg_collation.h" #include "catalog/pg_type.h" #include "common/hashfn.h" @@ -74,7 +75,16 @@ populate_compact_attribute_internal(Form_pg_attribute src, dst->atthasmissing = src->atthasmissing; dst->attisdropped = src->attisdropped; dst->attgenerated = (src->attgenerated != '\0'); - dst->attnotnull = src->attnotnull; + + /* + * Assign nullability status for this column. Assuming that a constraint + * exists, at this point we don't know if a not-null constraint is valid, + * so we assign UNKNOWN unless the table is a catalog, in which case we + * know it's valid. + */ + dst->attnullability = !src->attnotnull ? ATTNULLABLE_UNRESTRICTED : + IsCatalogRelationOid(src->attrelid) ? ATTNULLABLE_VALID : + ATTNULLABLE_UNKNOWN; switch (src->attalign) { @@ -144,9 +154,10 @@ verify_compact_attribute(TupleDesc tupdesc, int attnum) /* * Make the attcacheoff match since it's been reset to -1 by - * populate_compact_attribute_internal. + * populate_compact_attribute_internal. Same with attnullability. */ tmp.attcacheoff = cattr->attcacheoff; + tmp.attnullability = cattr->attnullability; /* Check the freshly populated CompactAttribute matches the TupleDesc's */ Assert(memcmp(&tmp, cattr, sizeof(CompactAttribute)) == 0); @@ -333,8 +344,13 @@ CreateTupleDescCopyConstr(TupleDesc tupdesc) desc->natts * sizeof(FormData_pg_attribute)); for (i = 0; i < desc->natts; i++) + { populate_compact_attribute(desc, i); + TupleDescCompactAttr(desc, i)->attnullability = + TupleDescCompactAttr(tupdesc, i)->attnullability; + } + /* Copy the TupleConstr data structure, if any */ if (constr) { @@ -613,6 +629,24 @@ equalTupleDescs(TupleDesc tupdesc1, TupleDesc tupdesc2) return false; if (attr1->attnotnull != attr2->attnotnull) return false; + + /* + * When the column has a not-null constraint, we also need to consider + * its validity aspect, which only manifests in CompactAttribute-> + * attnullability, so verify that. + */ + if (attr1->attnotnull) + { + CompactAttribute *cattr1 = TupleDescCompactAttr(tupdesc1, i); + CompactAttribute *cattr2 = TupleDescCompactAttr(tupdesc2, i); + + Assert(cattr1->attnullability != ATTNULLABLE_UNKNOWN); + Assert((cattr1->attnullability == ATTNULLABLE_UNKNOWN) == + (cattr2->attnullability == ATTNULLABLE_UNKNOWN)); + + if (cattr1->attnullability != cattr2->attnullability) + return false; + } if (attr1->atthasdef != attr2->atthasdef) return false; if (attr1->attidentity != attr2->attidentity) diff --git a/src/backend/access/gin/ginbtree.c b/src/backend/access/gin/ginbtree.c index 26a0bdc2063a3..644d484ea53c6 100644 --- a/src/backend/access/gin/ginbtree.c +++ b/src/backend/access/gin/ginbtree.c @@ -685,9 +685,9 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, #ifdef USE_INJECTION_POINTS if (GinPageIsLeaf(BufferGetPage(stack->buffer))) - INJECTION_POINT("gin-leave-leaf-split-incomplete"); + INJECTION_POINT("gin-leave-leaf-split-incomplete", NULL); else - INJECTION_POINT("gin-leave-internal-split-incomplete"); + INJECTION_POINT("gin-leave-internal-split-incomplete", NULL); #endif /* search parent to lock */ @@ -778,7 +778,7 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, static void ginFinishOldSplit(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats, int access) { - INJECTION_POINT("gin-finish-incomplete-split"); + INJECTION_POINT("gin-finish-incomplete-split", NULL); elog(DEBUG1, "finishing incomplete split of block %u in gin index \"%s\"", stack->blkno, RelationGetRelationName(btree->index)); diff --git a/src/backend/access/gin/gininsert.c b/src/backend/access/gin/gininsert.c index e25d817c1955c..a65acd8910493 100644 --- a/src/backend/access/gin/gininsert.c +++ b/src/backend/access/gin/gininsert.c @@ -167,7 +167,7 @@ typedef struct /* * The sortstate used only within a single worker for the first merge pass - * happenning there. In principle it doesn't need to be part of the build + * happening there. In principle it doesn't need to be part of the build * state and we could pass it around directly, but it's more convenient * this way. And it's part of the build state, after all. */ @@ -180,11 +180,11 @@ static void _gin_begin_parallel(GinBuildState *buildstate, Relation heap, Relati bool isconcurrent, int request); static void _gin_end_parallel(GinLeader *ginleader, GinBuildState *state); static Size _gin_parallel_estimate_shared(Relation heap, Snapshot snapshot); -static double _gin_parallel_heapscan(GinBuildState *buildstate); -static double _gin_parallel_merge(GinBuildState *buildstate); +static double _gin_parallel_heapscan(GinBuildState *state); +static double _gin_parallel_merge(GinBuildState *state); static void _gin_leader_participate_as_worker(GinBuildState *buildstate, Relation heap, Relation index); -static void _gin_parallel_scan_and_build(GinBuildState *buildstate, +static void _gin_parallel_scan_and_build(GinBuildState *state, GinBuildShared *ginshared, Sharedsort *sharedsort, Relation heap, Relation index, @@ -1306,7 +1306,7 @@ GinBufferIsEmpty(GinBuffer *buffer) * Compare if the tuple matches the already accumulated data in the GIN * buffer. Compare scalar fields first, before the actual key. * - * Returns true if the key matches, and the TID belonds to the buffer, or + * Returns true if the key matches, and the TID belongs to the buffer, or * false if the key does not match. */ static bool @@ -1497,7 +1497,7 @@ GinBufferStoreTuple(GinBuffer *buffer, GinTuple *tup) buffer->items = repalloc(buffer->items, (buffer->nitems + tup->nitems) * sizeof(ItemPointerData)); - new = ginMergeItemPointers(&buffer->items[buffer->nfrozen], /* first unfronzen */ + new = ginMergeItemPointers(&buffer->items[buffer->nfrozen], /* first unfrozen */ (buffer->nitems - buffer->nfrozen), /* num of unfrozen */ items, tup->nitems, &nnew); @@ -1531,7 +1531,7 @@ GinBufferReset(GinBuffer *buffer) pfree(DatumGetPointer(buffer->key)); /* - * Not required, but makes it more likely to trigger NULL derefefence if + * Not required, but makes it more likely to trigger NULL dereference if * using the value incorrectly, etc. */ buffer->key = (Datum) 0; @@ -1603,7 +1603,7 @@ GinBufferCanAddKey(GinBuffer *buffer, GinTuple *tup) * * After waiting for all workers to finish, merge the per-worker results into * the complete index. The results from each worker are sorted by block number - * (start of the page range). While combinig the per-worker results we merge + * (start of the page range). While combining the per-worker results we merge * summaries for the same page range, and also fill-in empty summaries for * ranges without any tuples. * @@ -1669,6 +1669,8 @@ _gin_parallel_merge(GinBuildState *state) */ while ((tup = tuplesort_getgintuple(state->bs_sortstate, &tuplen, true)) != NULL) { + MemoryContext oldCtx; + CHECK_FOR_INTERRUPTS(); /* @@ -1685,10 +1687,15 @@ _gin_parallel_merge(GinBuildState *state) */ AssertCheckItemPointers(buffer); + oldCtx = MemoryContextSwitchTo(state->tmpCtx); + ginEntryInsert(&state->ginstate, buffer->attnum, buffer->key, buffer->category, buffer->items, buffer->nitems, &state->buildStats); + MemoryContextSwitchTo(oldCtx); + MemoryContextReset(state->tmpCtx); + /* discard the existing data */ GinBufferReset(buffer); } @@ -1711,10 +1718,15 @@ _gin_parallel_merge(GinBuildState *state) */ AssertCheckItemPointers(buffer); + oldCtx = MemoryContextSwitchTo(state->tmpCtx); + ginEntryInsert(&state->ginstate, buffer->attnum, buffer->key, buffer->category, buffer->items, buffer->nfrozen, &state->buildStats); + MemoryContextSwitchTo(oldCtx); + MemoryContextReset(state->tmpCtx); + /* truncate the data we've just discarded */ GinBufferTrim(buffer); } diff --git a/src/backend/access/gin/ginlogic.c b/src/backend/access/gin/ginlogic.c index 665ff9b9810cd..ff456247cefac 100644 --- a/src/backend/access/gin/ginlogic.c +++ b/src/backend/access/gin/ginlogic.c @@ -140,7 +140,9 @@ shimBoolConsistentFn(GinScanKey key) * every combination is O(n^2), so this is only feasible for a small number of * MAYBE inputs. * - * NB: This function modifies the key->entryRes array! + * NB: This function modifies the key->entryRes array. For now that's okay + * so long as we restore the entry-time contents before returning. This may + * need revisiting if we ever invent multithreaded GIN scans, though. */ static GinTernaryValue shimTriConsistentFn(GinScanKey key) @@ -149,7 +151,7 @@ shimTriConsistentFn(GinScanKey key) int maybeEntries[MAX_MAYBE_ENTRIES]; int i; bool boolResult; - bool recheck = false; + bool recheck; GinTernaryValue curResult; /* @@ -169,8 +171,8 @@ shimTriConsistentFn(GinScanKey key) } /* - * If none of the inputs were MAYBE, so we can just call consistent - * function as is. + * If none of the inputs were MAYBE, we can just call the consistent + * function as-is. */ if (nmaybe == 0) return directBoolConsistentFn(key); @@ -179,6 +181,7 @@ shimTriConsistentFn(GinScanKey key) for (i = 0; i < nmaybe; i++) key->entryRes[maybeEntries[i]] = GIN_FALSE; curResult = directBoolConsistentFn(key); + recheck = key->recheckCurItem; for (;;) { @@ -200,13 +203,20 @@ shimTriConsistentFn(GinScanKey key) recheck |= key->recheckCurItem; if (curResult != boolResult) - return GIN_MAYBE; + { + curResult = GIN_MAYBE; + break; + } } /* TRUE with recheck is taken to mean MAYBE */ if (curResult == GIN_TRUE && recheck) curResult = GIN_MAYBE; + /* We must restore the original state of the entryRes array */ + for (i = 0; i < nmaybe; i++) + key->entryRes[maybeEntries[i]] = GIN_MAYBE; + return curResult; } diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index 1840f04bfbf53..7b24380c97801 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -1048,12 +1048,19 @@ gistFindCorrectParent(Relation r, GISTInsertStack *child, bool is_build) /* * The page has changed since we looked. During normal operation, every * update of a page changes its LSN, so the LSN we memorized should have - * changed too. During index build, however, we don't WAL-log the changes - * until we have built the index, so the LSN doesn't change. There is no - * concurrent activity during index build, but we might have changed the - * parent ourselves. + * changed too. + * + * During index build, however, we don't WAL-log the changes until we have + * built the index, so the LSN doesn't change. There is no concurrent + * activity during index build, but we might have changed the parent + * ourselves. + * + * We will also get here if child->downlinkoffnum is invalid. That happens + * if 'parent' had been updated by an earlier call to this function on its + * grandchild, which had to move right. */ - Assert(parent->lsn != PageGetLSN(parent->page) || is_build); + Assert(parent->lsn != PageGetLSN(parent->page) || is_build || + child->downlinkoffnum == InvalidOffsetNumber); /* * Scan the page to re-find the downlink. If the page was split, it might diff --git a/src/backend/access/gist/gistvacuum.c b/src/backend/access/gist/gistvacuum.c index ce9d78d78d650..dca236b6e5735 100644 --- a/src/backend/access/gist/gistvacuum.c +++ b/src/backend/access/gist/gistvacuum.c @@ -215,7 +215,8 @@ gistvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, * It is safe to use batchmode as block_range_read_stream_cb takes no * locks. */ - stream = read_stream_begin_relation(READ_STREAM_FULL | + stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE | + READ_STREAM_FULL | READ_STREAM_USE_BATCHING, info->strategy, rel, @@ -254,8 +255,6 @@ gistvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, gistvacuumpage(&vstate, buf); } - Assert(read_stream_next_buffer(stream, NULL) == InvalidBuffer); - /* * We have to reset the read stream to use it again. After returning * InvalidBuffer, the read stream API won't invoke our callback again diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index cedaa195cb6fa..9ec8cda1c6801 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -314,31 +314,6 @@ bitmapheap_stream_read_next(ReadStream *pgsr, void *private_data, tbmres->blockno >= hscan->rs_nblocks) continue; - /* - * We can skip fetching the heap page if we don't need any fields from - * the heap, the bitmap entries don't need rechecking, and all tuples - * on the page are visible to our transaction. - */ - if (!(sscan->rs_flags & SO_NEED_TUPLES) && - !tbmres->recheck && - VM_ALL_VISIBLE(sscan->rs_rd, tbmres->blockno, &bscan->rs_vmbuffer)) - { - OffsetNumber offsets[TBM_MAX_TUPLES_PER_PAGE]; - int noffsets; - - /* can't be lossy in the skip_fetch case */ - Assert(!tbmres->lossy); - Assert(bscan->rs_empty_tuples_pending >= 0); - - /* - * We throw away the offsets, but this is the easiest way to get a - * count of tuples. - */ - noffsets = tbm_extract_page_tuple(tbmres, offsets, TBM_MAX_TUPLES_PER_PAGE); - bscan->rs_empty_tuples_pending += noffsets; - continue; - } - return tbmres->blockno; } @@ -1124,8 +1099,10 @@ heap_beginscan(Relation relation, Snapshot snapshot, { BitmapHeapScanDesc bscan = palloc(sizeof(BitmapHeapScanDescData)); - bscan->rs_vmbuffer = InvalidBuffer; - bscan->rs_empty_tuples_pending = 0; + /* + * Bitmap Heap scans do not have any fields that a normal Heap Scan + * does not have, so no special initializations required here. + */ scan = (HeapScanDesc) bscan; } else @@ -1227,13 +1204,8 @@ heap_beginscan(Relation relation, Snapshot snapshot, } else if (scan->rs_base.rs_flags & SO_TYPE_BITMAPSCAN) { - /* - * Currently we can't trivially use batching, due to the - * VM_ALL_VISIBLE check in bitmapheap_stream_read_next. While that - * could be made safe, we are about to remove the all-visible logic - * from bitmap scans due to its unsoundness. - */ - scan->rs_read_stream = read_stream_begin_relation(READ_STREAM_DEFAULT, + scan->rs_read_stream = read_stream_begin_relation(READ_STREAM_DEFAULT | + READ_STREAM_USE_BATCHING, scan->rs_strategy, scan->rs_base.rs_rd, MAIN_FORKNUM, @@ -1280,23 +1252,10 @@ heap_rescan(TableScanDesc sscan, ScanKey key, bool set_params, scan->rs_cbuf = InvalidBuffer; } - if (scan->rs_base.rs_flags & SO_TYPE_BITMAPSCAN) - { - BitmapHeapScanDesc bscan = (BitmapHeapScanDesc) scan; - - /* - * Reset empty_tuples_pending, a field only used by bitmap heap scan, - * to avoid incorrectly emitting NULL-filled tuples from a previous - * scan on rescan. - */ - bscan->rs_empty_tuples_pending = 0; - - if (BufferIsValid(bscan->rs_vmbuffer)) - { - ReleaseBuffer(bscan->rs_vmbuffer); - bscan->rs_vmbuffer = InvalidBuffer; - } - } + /* + * SO_TYPE_BITMAPSCAN would be cleaned up here, but it does not hold any + * additional data vs a normal HeapScan + */ /* * The read stream is reset on rescan. This must be done before @@ -1325,15 +1284,6 @@ heap_endscan(TableScanDesc sscan) if (BufferIsValid(scan->rs_cbuf)) ReleaseBuffer(scan->rs_cbuf); - if (scan->rs_base.rs_flags & SO_TYPE_BITMAPSCAN) - { - BitmapHeapScanDesc bscan = (BitmapHeapScanDesc) sscan; - - bscan->rs_empty_tuples_pending = 0; - if (BufferIsValid(bscan->rs_vmbuffer)) - ReleaseBuffer(bscan->rs_vmbuffer); - } - /* * Must free the read stream before freeing the BufferAccessStrategy. */ @@ -3354,7 +3304,7 @@ heap_update(Relation relation, ItemPointer otid, HeapTuple newtup, interesting_attrs = bms_add_members(interesting_attrs, id_attrs); block = ItemPointerGetBlockNumber(otid); - INJECTION_POINT("heap_update-before-pin"); + INJECTION_POINT("heap_update-before-pin", NULL); buffer = ReadBuffer(relation, block); page = BufferGetPage(buffer); @@ -6557,9 +6507,17 @@ heap_inplace_update_and_unlock(Relation relation, * [crash] * [recovery restores datfrozenxid w/o relfrozenxid] * - * Like in MarkBufferDirtyHint() subroutine XLogSaveBufferForHint(), copy - * the buffer to the stack before logging. Here, that facilitates a FPI - * of the post-mutation block before we accept other sessions seeing it. + * Mimic MarkBufferDirtyHint() subroutine XLogSaveBufferForHint(). + * Specifically, use DELAY_CHKPT_START, and copy the buffer to the stack. + * The stack copy facilitates a FPI of the post-mutation block before we + * accept other sessions seeing it. DELAY_CHKPT_START allows us to + * XLogInsert() before MarkBufferDirty(). Since XLogSaveBufferForHint() + * can operate under BUFFER_LOCK_SHARED, it can't avoid DELAY_CHKPT_START. + * This function, however, likely could avoid it with the following order + * of operations: MarkBufferDirty(), XLogInsert(), memcpy(). Opt to use + * DELAY_CHKPT_START here, too, as a way to have fewer distinct code + * patterns to analyze. Inplace update isn't so frequent that it should + * pursue the small optimization of skipping DELAY_CHKPT_START. */ Assert((MyProc->delayChkptFlags & DELAY_CHKPT_START) == 0); START_CRIT_SECTION(); diff --git a/src/backend/access/heap/heapam_handler.c b/src/backend/access/heap/heapam_handler.c index 24d3765aa201e..ac082fefa77a7 100644 --- a/src/backend/access/heap/heapam_handler.c +++ b/src/backend/access/heap/heapam_handler.c @@ -2137,32 +2137,6 @@ heapam_scan_bitmap_next_tuple(TableScanDesc scan, */ while (hscan->rs_cindex >= hscan->rs_ntuples) { - /* - * Emit empty tuples before advancing to the next block - */ - if (bscan->rs_empty_tuples_pending > 0) - { - /* - * If we don't have to fetch the tuple, just return nulls. - */ - ExecStoreAllNullTuple(slot); - bscan->rs_empty_tuples_pending--; - - /* - * We do not recheck all NULL tuples. Because the streaming read - * API only yields TBMIterateResults for blocks actually fetched - * from the heap, we must unset `recheck` ourselves here to ensure - * correct results. - * - * Our read stream callback accrues a count of empty tuples to - * emit and then emits them after emitting tuples from the next - * fetched block. If no blocks need fetching, we'll emit the - * accrued count at the end of the scan. - */ - *recheck = false; - return true; - } - /* * Returns false if the bitmap is exhausted and there are no further * blocks we need to scan. @@ -2516,24 +2490,8 @@ BitmapHeapScanNextBlock(TableScanDesc scan, if (BufferIsInvalid(hscan->rs_cbuf)) { - if (BufferIsValid(bscan->rs_vmbuffer)) - { - ReleaseBuffer(bscan->rs_vmbuffer); - bscan->rs_vmbuffer = InvalidBuffer; - } - - /* - * The bitmap is exhausted. Now emit any remaining empty tuples. The - * read stream API only returns TBMIterateResults for blocks actually - * fetched from the heap. Our callback will accrue a count of empty - * tuples to emit for all blocks we skipped fetching. So, if we skip - * fetching heap blocks at the end of the relation (or no heap blocks - * are fetched) we need to ensure we emit empty tuples before ending - * the scan. We don't recheck empty tuples so ensure `recheck` is - * unset. - */ - *recheck = false; - return bscan->rs_empty_tuples_pending > 0; + /* the bitmap is exhausted */ + return false; } Assert(per_buffer_data); diff --git a/src/backend/access/index/amapi.c b/src/backend/access/index/amapi.c index d6b8dad4d52c7..f0f4f974bcedb 100644 --- a/src/backend/access/index/amapi.c +++ b/src/backend/access/index/amapi.c @@ -120,6 +120,11 @@ IndexAmTranslateStrategy(StrategyNumber strategy, Oid amoid, Oid opfamily, bool CompareType result; IndexAmRoutine *amroutine; + /* shortcut for common case */ + if (amoid == BTREE_AM_OID && + (strategy > InvalidStrategy && strategy <= BTMaxStrategyNumber)) + return (CompareType) strategy; + amroutine = GetIndexAmRoutineByAmId(amoid, false); if (amroutine->amtranslatestrategy) result = amroutine->amtranslatestrategy(strategy, opfamily); @@ -145,6 +150,11 @@ IndexAmTranslateCompareType(CompareType cmptype, Oid amoid, Oid opfamily, bool m StrategyNumber result; IndexAmRoutine *amroutine; + /* shortcut for common case */ + if (amoid == BTREE_AM_OID && + (cmptype > COMPARE_INVALID && cmptype <= COMPARE_GT)) + return (StrategyNumber) cmptype; + amroutine = GetIndexAmRoutineByAmId(amoid, false); if (amroutine->amtranslatecmptype) result = amroutine->amtranslatecmptype(cmptype, opfamily); diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index 8f532e14590e7..0cb27af131095 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -851,7 +851,7 @@ systable_inplace_update_begin(Relation relation, if (retries++ > 10000) elog(ERROR, "giving up after too many tries to overwrite row"); - INJECTION_POINT("inplace-before-pin"); + INJECTION_POINT("inplace-before-pin", NULL); scan = systable_beginscan(relation, indexId, indexOK, snapshot, nkeys, unconstify(ScanKeyData *, key)); oldtup = systable_getnext(scan); diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c index 55ec4c1035274..219df1971da66 100644 --- a/src/backend/access/index/indexam.c +++ b/src/backend/access/index/indexam.c @@ -489,7 +489,8 @@ index_parallelscan_estimate(Relation indexRelation, int nkeys, int norderbys, if (parallel_aware && indexRelation->rd_indam->amestimateparallelscan != NULL) nbytes = add_size(nbytes, - indexRelation->rd_indam->amestimateparallelscan(nkeys, + indexRelation->rd_indam->amestimateparallelscan(indexRelation, + nkeys, norderbys)); return nbytes; diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c index 291cb8fc15d95..4da5a3c1d161d 100644 --- a/src/backend/access/nbtree/nbtcompare.c +++ b/src/backend/access/nbtree/nbtcompare.c @@ -58,6 +58,7 @@ #include #include "utils/fmgrprotos.h" +#include "utils/skipsupport.h" #include "utils/sortsupport.h" #ifdef STRESS_SORT_INT_MIN @@ -78,6 +79,51 @@ btboolcmp(PG_FUNCTION_ARGS) PG_RETURN_INT32((int32) a - (int32) b); } +static Datum +bool_decrement(Relation rel, Datum existing, bool *underflow) +{ + bool bexisting = DatumGetBool(existing); + + if (bexisting == false) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return BoolGetDatum(bexisting - 1); +} + +static Datum +bool_increment(Relation rel, Datum existing, bool *overflow) +{ + bool bexisting = DatumGetBool(existing); + + if (bexisting == true) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return BoolGetDatum(bexisting + 1); +} + +Datum +btboolskipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = bool_decrement; + sksup->increment = bool_increment; + sksup->low_elem = BoolGetDatum(false); + sksup->high_elem = BoolGetDatum(true); + + PG_RETURN_VOID(); +} + Datum btint2cmp(PG_FUNCTION_ARGS) { @@ -105,6 +151,51 @@ btint2sortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +static Datum +int2_decrement(Relation rel, Datum existing, bool *underflow) +{ + int16 iexisting = DatumGetInt16(existing); + + if (iexisting == PG_INT16_MIN) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return Int16GetDatum(iexisting - 1); +} + +static Datum +int2_increment(Relation rel, Datum existing, bool *overflow) +{ + int16 iexisting = DatumGetInt16(existing); + + if (iexisting == PG_INT16_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return Int16GetDatum(iexisting + 1); +} + +Datum +btint2skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = int2_decrement; + sksup->increment = int2_increment; + sksup->low_elem = Int16GetDatum(PG_INT16_MIN); + sksup->high_elem = Int16GetDatum(PG_INT16_MAX); + + PG_RETURN_VOID(); +} + Datum btint4cmp(PG_FUNCTION_ARGS) { @@ -128,6 +219,51 @@ btint4sortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +static Datum +int4_decrement(Relation rel, Datum existing, bool *underflow) +{ + int32 iexisting = DatumGetInt32(existing); + + if (iexisting == PG_INT32_MIN) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return Int32GetDatum(iexisting - 1); +} + +static Datum +int4_increment(Relation rel, Datum existing, bool *overflow) +{ + int32 iexisting = DatumGetInt32(existing); + + if (iexisting == PG_INT32_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return Int32GetDatum(iexisting + 1); +} + +Datum +btint4skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = int4_decrement; + sksup->increment = int4_increment; + sksup->low_elem = Int32GetDatum(PG_INT32_MIN); + sksup->high_elem = Int32GetDatum(PG_INT32_MAX); + + PG_RETURN_VOID(); +} + Datum btint8cmp(PG_FUNCTION_ARGS) { @@ -171,6 +307,51 @@ btint8sortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +static Datum +int8_decrement(Relation rel, Datum existing, bool *underflow) +{ + int64 iexisting = DatumGetInt64(existing); + + if (iexisting == PG_INT64_MIN) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return Int64GetDatum(iexisting - 1); +} + +static Datum +int8_increment(Relation rel, Datum existing, bool *overflow) +{ + int64 iexisting = DatumGetInt64(existing); + + if (iexisting == PG_INT64_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return Int64GetDatum(iexisting + 1); +} + +Datum +btint8skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = int8_decrement; + sksup->increment = int8_increment; + sksup->low_elem = Int64GetDatum(PG_INT64_MIN); + sksup->high_elem = Int64GetDatum(PG_INT64_MAX); + + PG_RETURN_VOID(); +} + Datum btint48cmp(PG_FUNCTION_ARGS) { @@ -292,6 +473,51 @@ btoidsortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +static Datum +oid_decrement(Relation rel, Datum existing, bool *underflow) +{ + Oid oexisting = DatumGetObjectId(existing); + + if (oexisting == InvalidOid) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return ObjectIdGetDatum(oexisting - 1); +} + +static Datum +oid_increment(Relation rel, Datum existing, bool *overflow) +{ + Oid oexisting = DatumGetObjectId(existing); + + if (oexisting == OID_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return ObjectIdGetDatum(oexisting + 1); +} + +Datum +btoidskipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = oid_decrement; + sksup->increment = oid_increment; + sksup->low_elem = ObjectIdGetDatum(InvalidOid); + sksup->high_elem = ObjectIdGetDatum(OID_MAX); + + PG_RETURN_VOID(); +} + Datum btoidvectorcmp(PG_FUNCTION_ARGS) { @@ -325,3 +551,50 @@ btcharcmp(PG_FUNCTION_ARGS) /* Be careful to compare chars as unsigned */ PG_RETURN_INT32((int32) ((uint8) a) - (int32) ((uint8) b)); } + +static Datum +char_decrement(Relation rel, Datum existing, bool *underflow) +{ + uint8 cexisting = UInt8GetDatum(existing); + + if (cexisting == 0) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return CharGetDatum((uint8) cexisting - 1); +} + +static Datum +char_increment(Relation rel, Datum existing, bool *overflow) +{ + uint8 cexisting = UInt8GetDatum(existing); + + if (cexisting == UCHAR_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return CharGetDatum((uint8) cexisting + 1); +} + +Datum +btcharskipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = char_decrement; + sksup->increment = char_increment; + + /* btcharcmp compares chars as unsigned */ + sksup->low_elem = UInt8GetDatum(0); + sksup->high_elem = UInt8GetDatum(UCHAR_MAX); + + PG_RETURN_VOID(); +} diff --git a/src/backend/access/nbtree/nbtpreprocesskeys.c b/src/backend/access/nbtree/nbtpreprocesskeys.c index 38a87af1cc8b8..a136e4bbfdfb5 100644 --- a/src/backend/access/nbtree/nbtpreprocesskeys.c +++ b/src/backend/access/nbtree/nbtpreprocesskeys.c @@ -45,8 +45,21 @@ static bool _bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey, FmgrInfo *orderproc, BTArrayKeyInfo *array, bool *qual_ok); +static bool _bt_saoparray_shrink(IndexScanDesc scan, ScanKey arraysk, + ScanKey skey, FmgrInfo *orderproc, + BTArrayKeyInfo *array, bool *qual_ok); +static bool _bt_skiparray_shrink(IndexScanDesc scan, ScanKey skey, + BTArrayKeyInfo *array, bool *qual_ok); +static void _bt_skiparray_strat_adjust(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array); +static void _bt_skiparray_strat_decrement(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array); +static void _bt_skiparray_strat_increment(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array); static ScanKey _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys); static void _bt_preprocess_array_keys_final(IndexScanDesc scan, int *keyDataMap); +static int _bt_num_array_keys(IndexScanDesc scan, Oid *skip_eq_ops_out, + int *numSkipArrayKeys_out); static Datum _bt_find_extreme_element(IndexScanDesc scan, ScanKey skey, Oid elemtype, StrategyNumber strat, Datum *elems, int nelems); @@ -89,6 +102,8 @@ static int _bt_compare_array_elements(const void *a, const void *b, void *arg); * within each attribute may be done as a byproduct of the processing here. * That process must leave array scan keys (within an attribute) in the same * order as corresponding entries from the scan's BTArrayKeyInfo array info. + * We might also construct skip array scan keys that weren't present in the + * original input keys; these are also output in standard attribute order. * * The output keys are marked with flags SK_BT_REQFWD and/or SK_BT_REQBKWD * if they must be satisfied in order to continue the scan forward or backward @@ -101,10 +116,16 @@ static int _bt_compare_array_elements(const void *a, const void *b, void *arg); * attributes with "=" keys are marked both SK_BT_REQFWD and SK_BT_REQBKWD. * For the first attribute without an "=" key, any "<" and "<=" keys are * marked SK_BT_REQFWD while any ">" and ">=" keys are marked SK_BT_REQBKWD. - * This can be seen to be correct by considering the above example. Note - * in particular that if there are no keys for a given attribute, the keys for - * subsequent attributes can never be required; for instance "WHERE y = 4" - * requires a full-index scan. + * This can be seen to be correct by considering the above example. + * + * If we never generated skip array scan keys, it would be possible for "gaps" + * to appear that make it unsafe to mark any subsequent input scan keys + * (copied from scan->keyData[]) as required to continue the scan. Prior to + * Postgres 18, a qual like "WHERE y = 4" always resulted in a full scan. + * This qual now becomes "WHERE x = ANY('{every possible x value}') and y = 4" + * on output. In other words, preprocessing now adds a skip array on "x". + * This has the potential to be much more efficient than a full index scan + * (though it behaves like a full scan when there's many distinct "x" values). * * If possible, redundant keys are eliminated: we keep only the tightest * >/>= bound and the tightest keyData[]). + * + * Row comparison keys currently have a couple of notable limitations. + * Right now we just transfer them into the preprocessed array without any * editorialization. We can treat them the same as an ordinary inequality * comparison on the row's first index column, for the purposes of the logic - * about required keys. + * about required keys. Also, we are unable to merge a row comparison key + * into a skip array (only ordinary inequalities are merged). A key that + * comes after a Row comparison key is therefore never marked as required. * * Note: the reason we have to copy the preprocessed scan keys into private * storage is that we are modifying the array based on comparisons of the @@ -200,6 +230,14 @@ _bt_preprocess_keys(IndexScanDesc scan) /* Also maintain keyDataMap for remapping so->orderProcs[] later */ keyDataMap = MemoryContextAlloc(so->arrayContext, numberOfKeys * sizeof(int)); + + /* + * Also enlarge output array when it might otherwise not have room for + * a skip array's scan key + */ + if (numberOfKeys > scan->numberOfKeys) + so->keyData = repalloc(so->keyData, + numberOfKeys * sizeof(ScanKeyData)); } else inkeys = scan->keyData; @@ -229,6 +267,7 @@ _bt_preprocess_keys(IndexScanDesc scan) Assert(so->keyData[0].sk_flags & SK_SEARCHARRAY); Assert(so->keyData[0].sk_strategy != BTEqualStrategyNumber || (so->arrayKeys[0].scan_key == 0 && + !(so->keyData[0].sk_flags & SK_BT_SKIP) && OidIsValid(so->orderProcs[0].fn_oid))); } @@ -288,7 +327,8 @@ _bt_preprocess_keys(IndexScanDesc scan) * redundant. Note that this is no less true if the = key is * SEARCHARRAY; the only real difference is that the inequality * key _becomes_ redundant by making _bt_compare_scankey_args - * eliminate the subset of elements that won't need to be matched. + * eliminate the subset of elements that won't need to be matched + * (with SAOP arrays and skip arrays alike). * * If we have a case like "key = 1 AND key > 2", we set qual_ok to * false and abandon further processing. We'll do the same thing @@ -345,7 +385,6 @@ _bt_preprocess_keys(IndexScanDesc scan) return; } /* else discard the redundant non-equality key */ - Assert(!array || array->num_elems > 0); xform[j].inkey = NULL; xform[j].inkeyi = -1; } @@ -393,6 +432,11 @@ _bt_preprocess_keys(IndexScanDesc scan) * Emit the cleaned-up keys into the so->keyData[] array, and then * mark them if they are required. They are required (possibly * only in one direction) if all attrs before this one had "=". + * + * In practice we'll rarely output non-required scan keys here; + * typically, _bt_preprocess_array_keys has already added "=" keys + * sufficient to form an unbroken series of "=" constraints on all + * attrs prior to the attr from the final scan->keyData[] key. */ for (j = BTMaxStrategyNumber; --j >= 0;) { @@ -481,6 +525,7 @@ _bt_preprocess_keys(IndexScanDesc scan) Assert(array->scan_key == i); Assert(OidIsValid(orderproc->fn_oid)); + Assert(!(inkey->sk_flags & SK_BT_SKIP)); } else if (xform[j].inkey->sk_flags & SK_SEARCHARRAY) { @@ -489,6 +534,7 @@ _bt_preprocess_keys(IndexScanDesc scan) Assert(array->scan_key == xform[j].inkeyi); Assert(OidIsValid(orderproc->fn_oid)); + Assert(!(xform[j].inkey->sk_flags & SK_BT_SKIP)); } /* @@ -508,8 +554,6 @@ _bt_preprocess_keys(IndexScanDesc scan) /* Have all we need to determine redundancy */ if (test_result) { - Assert(!array || array->num_elems > 0); - /* * New key is more restrictive, and so replaces old key... */ @@ -803,6 +847,9 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op, cmp_op; StrategyNumber strat; + Assert(!((leftarg->sk_flags | rightarg->sk_flags) & + (SK_ROW_HEADER | SK_ROW_MEMBER))); + /* * First, deal with cases where one or both args are NULL. This should * only happen when the scankeys represent IS NULL/NOT NULL conditions. @@ -812,6 +859,22 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op, bool leftnull, rightnull; + /* Handle skip array comparison with IS NOT NULL scan key */ + if ((leftarg->sk_flags | rightarg->sk_flags) & SK_BT_SKIP) + { + /* Shouldn't generate skip array in presence of IS NULL key */ + Assert(!((leftarg->sk_flags | rightarg->sk_flags) & SK_SEARCHNULL)); + Assert((leftarg->sk_flags | rightarg->sk_flags) & SK_SEARCHNOTNULL); + + /* Skip array will have no NULL element/IS NULL scan key */ + Assert(array->num_elems == -1); + array->null_elem = false; + + /* IS NOT NULL key (could be leftarg or rightarg) now redundant */ + *result = true; + return true; + } + if (leftarg->sk_flags & SK_ISNULL) { Assert(leftarg->sk_flags & (SK_SEARCHNULL | SK_SEARCHNOTNULL)); @@ -885,6 +948,7 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op, { /* Can't make the comparison */ *result = false; /* suppress compiler warnings */ + Assert(!((leftarg->sk_flags | rightarg->sk_flags) & SK_BT_SKIP)); return false; } @@ -978,24 +1042,56 @@ _bt_compare_scankey_args(IndexScanDesc scan, ScanKey op, * Compare an array scan key to a scalar scan key, eliminating contradictory * array elements such that the scalar scan key becomes redundant. * + * If the opfamily is incomplete we may not be able to determine which + * elements are contradictory. When we return true we'll have validly set + * *qual_ok, guaranteeing that at least the scalar scan key can be considered + * redundant. We return false if the comparison could not be made (caller + * must keep both scan keys when this happens). + * + * Note: it's up to caller to deal with IS [NOT] NULL scan keys, as well as + * row comparison scan keys. We only deal with scalar scan keys. + */ +static bool +_bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey, + FmgrInfo *orderproc, BTArrayKeyInfo *array, + bool *qual_ok) +{ + Assert(arraysk->sk_attno == skey->sk_attno); + Assert(!(arraysk->sk_flags & (SK_ISNULL | SK_ROW_HEADER | SK_ROW_MEMBER))); + Assert((arraysk->sk_flags & SK_SEARCHARRAY) && + arraysk->sk_strategy == BTEqualStrategyNumber); + /* don't expect to have to deal with NULLs/row comparison scan keys */ + Assert(!(skey->sk_flags & (SK_ISNULL | SK_ROW_HEADER | SK_ROW_MEMBER))); + Assert(!(skey->sk_flags & SK_SEARCHARRAY) || + skey->sk_strategy != BTEqualStrategyNumber); + + /* + * Just call the appropriate helper function based on whether it's a SAOP + * array or a skip array. Both helpers will set *qual_ok in passing. + */ + if (array->num_elems != -1) + return _bt_saoparray_shrink(scan, arraysk, skey, orderproc, array, + qual_ok); + else + return _bt_skiparray_shrink(scan, skey, array, qual_ok); +} + +/* + * Preprocessing of SAOP array scan key, used to determine which array + * elements are eliminated as contradictory by a non-array scalar key. + * + * _bt_compare_array_scankey_args helper function. + * * Array elements can be eliminated as contradictory when excluded by some * other operator on the same attribute. For example, with an index scan qual * "WHERE a IN (1, 2, 3) AND a < 2", all array elements except the value "1" * are eliminated, and the < scan key is eliminated as redundant. Cases where * every array element is eliminated by a redundant scalar scan key have an * unsatisfiable qual, which we handle by setting *qual_ok=false for caller. - * - * If the opfamily doesn't supply a complete set of cross-type ORDER procs we - * may not be able to determine which elements are contradictory. If we have - * the required ORDER proc then we return true (and validly set *qual_ok), - * guaranteeing that at least the scalar scan key can be considered redundant. - * We return false if the comparison could not be made (caller must keep both - * scan keys when this happens). */ static bool -_bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey, - FmgrInfo *orderproc, BTArrayKeyInfo *array, - bool *qual_ok) +_bt_saoparray_shrink(IndexScanDesc scan, ScanKey arraysk, ScanKey skey, + FmgrInfo *orderproc, BTArrayKeyInfo *array, bool *qual_ok) { Relation rel = scan->indexRelation; Oid opcintype = rel->rd_opcintype[arraysk->sk_attno - 1]; @@ -1006,14 +1102,8 @@ _bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey FmgrInfo crosstypeproc; FmgrInfo *orderprocp = orderproc; - Assert(arraysk->sk_attno == skey->sk_attno); Assert(array->num_elems > 0); - Assert(!(arraysk->sk_flags & (SK_ISNULL | SK_ROW_HEADER | SK_ROW_MEMBER))); - Assert((arraysk->sk_flags & SK_SEARCHARRAY) && - arraysk->sk_strategy == BTEqualStrategyNumber); - Assert(!(skey->sk_flags & (SK_ISNULL | SK_ROW_HEADER | SK_ROW_MEMBER))); - Assert(!(skey->sk_flags & SK_SEARCHARRAY) || - skey->sk_strategy != BTEqualStrategyNumber); + Assert(!(arraysk->sk_flags & SK_BT_SKIP)); /* * _bt_binsrch_array_skey searches an array for the entry best matching a @@ -1112,6 +1202,271 @@ _bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey return true; } +/* + * Preprocessing of skip array scan key, used to determine redundancy against + * a non-array scalar scan key (must be an inequality). + * + * _bt_compare_array_scankey_args helper function. + * + * Skip arrays work by procedurally generating their elements as needed, so we + * just store the inequality as the skip array's low_compare or high_compare + * (except when there's already a more restrictive low_compare/high_compare). + * The array's final elements are the range of values that still satisfy the + * array's final low_compare and high_compare. + */ +static bool +_bt_skiparray_shrink(IndexScanDesc scan, ScanKey skey, BTArrayKeyInfo *array, + bool *qual_ok) +{ + bool test_result; + + Assert(array->num_elems == -1); + + /* + * Array's index attribute will be constrained by a strict operator/key. + * Array must not "contain a NULL element" (i.e. the scan must not apply + * "IS NULL" qual when it reaches the end of the index that stores NULLs). + */ + array->null_elem = false; + *qual_ok = true; + + /* + * Consider if we should treat caller's scalar scan key as the skip + * array's high_compare or low_compare. + * + * In general the current array element must either be a copy of a value + * taken from an index tuple, or a derivative value generated by opclass's + * skip support function. That way the scan can always safely assume that + * it's okay to use the only-input-opclass-type proc from so->orderProcs[] + * (they can be cross-type with SAOP arrays, but never with skip arrays). + * + * This approach is enabled by MINVAL/MAXVAL sentinel key markings, which + * can be thought of as representing either the lowest or highest matching + * array element (excluding the NULL element, where applicable, though as + * just discussed it isn't applicable to this range skip array anyway). + * Array keys marked MINVAL/MAXVAL never have a valid datum in their + * sk_argument field. The scan directly applies the array's low_compare + * key when it encounters MINVAL in the array key proper (just as it + * applies high_compare when it sees MAXVAL set in the array key proper). + * The scan must never use the array's so->orderProcs[] proc against + * low_compare's/high_compare's sk_argument, either (so->orderProcs[] is + * only intended to be used with rhs datums from the array proper/index). + */ + switch (skey->sk_strategy) + { + case BTLessStrategyNumber: + case BTLessEqualStrategyNumber: + if (array->high_compare) + { + /* replace existing high_compare with caller's key? */ + if (!_bt_compare_scankey_args(scan, array->high_compare, skey, + array->high_compare, NULL, NULL, + &test_result)) + return false; /* can't determine more restrictive key */ + + if (!test_result) + return true; /* no, just discard caller's key */ + + /* yes, replace existing high_compare with caller's key */ + } + + /* caller's key becomes skip array's high_compare */ + array->high_compare = skey; + break; + case BTGreaterEqualStrategyNumber: + case BTGreaterStrategyNumber: + if (array->low_compare) + { + /* replace existing low_compare with caller's key? */ + if (!_bt_compare_scankey_args(scan, array->low_compare, skey, + array->low_compare, NULL, NULL, + &test_result)) + return false; /* can't determine more restrictive key */ + + if (!test_result) + return true; /* no, just discard caller's key */ + + /* yes, replace existing low_compare with caller's key */ + } + + /* caller's key becomes skip array's low_compare */ + array->low_compare = skey; + break; + case BTEqualStrategyNumber: + default: + elog(ERROR, "unrecognized StrategyNumber: %d", + (int) skey->sk_strategy); + break; + } + + return true; +} + +/* + * Applies the opfamily's skip support routine to convert the skip array's > + * low_compare key (if any) into a >= key, and to convert its < high_compare + * key (if any) into a <= key. Decrements the high_compare key's sk_argument, + * and/or increments the low_compare key's sk_argument (also adjusts their + * operator strategies, while changing the operator as appropriate). + * + * This optional optimization reduces the number of descents required within + * _bt_first. Whenever _bt_first is called with a skip array whose current + * array element is the sentinel value MINVAL, using a transformed >= key + * instead of using the original > key makes it safe to include lower-order + * scan keys in the insertion scan key (there must be lower-order scan keys + * after the skip array). We will avoid an extra _bt_first to find the first + * value in the index > sk_argument -- at least when the first real matching + * value in the index happens to be an exact match for the sk_argument value + * that we produced here by incrementing the original input key's sk_argument. + * (Backwards scans derive the same benefit when they encounter the sentinel + * value MAXVAL, by converting the high_compare key from < to <=.) + * + * Note: The transformation is only correct when it cannot allow the scan to + * overlook matching tuples, but we don't have enough semantic information to + * safely make sure that can't happen during scans with cross-type operators. + * That's why we'll never apply the transformation in cross-type scenarios. + * For example, if we attempted to convert "sales_ts > '2024-01-01'::date" + * into "sales_ts >= '2024-01-02'::date" given a "sales_ts" attribute whose + * input opclass is timestamp_ops, the scan would overlook almost all (or all) + * tuples for sales that fell on '2024-01-01'. + * + * Note: We can safely modify array->low_compare/array->high_compare in place + * because they just point to copies of our scan->keyData[] input scan keys + * (namely the copies returned by _bt_preprocess_array_keys to be used as + * input into the standard preprocessing steps in _bt_preprocess_keys). + * Everything will be reset if there's a rescan. + */ +static void +_bt_skiparray_strat_adjust(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array) +{ + BTScanOpaque so = (BTScanOpaque) scan->opaque; + MemoryContext oldContext; + + /* + * Called last among all preprocessing steps, when the skip array's final + * low_compare and high_compare have both been chosen + */ + Assert(arraysk->sk_flags & SK_BT_SKIP); + Assert(array->num_elems == -1 && !array->null_elem && array->sksup); + + oldContext = MemoryContextSwitchTo(so->arrayContext); + + if (array->high_compare && + array->high_compare->sk_strategy == BTLessStrategyNumber) + _bt_skiparray_strat_decrement(scan, arraysk, array); + + if (array->low_compare && + array->low_compare->sk_strategy == BTGreaterStrategyNumber) + _bt_skiparray_strat_increment(scan, arraysk, array); + + MemoryContextSwitchTo(oldContext); +} + +/* + * Convert skip array's > low_compare key into a >= key + */ +static void +_bt_skiparray_strat_decrement(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array) +{ + Relation rel = scan->indexRelation; + Oid opfamily = rel->rd_opfamily[arraysk->sk_attno - 1], + opcintype = rel->rd_opcintype[arraysk->sk_attno - 1], + leop; + RegProcedure cmp_proc; + ScanKey high_compare = array->high_compare; + Datum orig_sk_argument = high_compare->sk_argument, + new_sk_argument; + bool uflow; + + Assert(high_compare->sk_strategy == BTLessStrategyNumber); + + /* + * Only perform the transformation when the operator type matches the + * index attribute's input opclass type + */ + if (high_compare->sk_subtype != opcintype && + high_compare->sk_subtype != InvalidOid) + return; + + /* Decrement, handling underflow by marking the qual unsatisfiable */ + new_sk_argument = array->sksup->decrement(rel, orig_sk_argument, &uflow); + if (uflow) + { + BTScanOpaque so = (BTScanOpaque) scan->opaque; + + so->qual_ok = false; + return; + } + + /* Look up <= operator (might fail) */ + leop = get_opfamily_member(opfamily, opcintype, opcintype, + BTLessEqualStrategyNumber); + if (!OidIsValid(leop)) + return; + cmp_proc = get_opcode(leop); + if (RegProcedureIsValid(cmp_proc)) + { + /* Transform < high_compare key into <= key */ + fmgr_info(cmp_proc, &high_compare->sk_func); + high_compare->sk_argument = new_sk_argument; + high_compare->sk_strategy = BTLessEqualStrategyNumber; + } +} + +/* + * Convert skip array's < low_compare key into a <= key + */ +static void +_bt_skiparray_strat_increment(IndexScanDesc scan, ScanKey arraysk, + BTArrayKeyInfo *array) +{ + Relation rel = scan->indexRelation; + Oid opfamily = rel->rd_opfamily[arraysk->sk_attno - 1], + opcintype = rel->rd_opcintype[arraysk->sk_attno - 1], + geop; + RegProcedure cmp_proc; + ScanKey low_compare = array->low_compare; + Datum orig_sk_argument = low_compare->sk_argument, + new_sk_argument; + bool oflow; + + Assert(low_compare->sk_strategy == BTGreaterStrategyNumber); + + /* + * Only perform the transformation when the operator type matches the + * index attribute's input opclass type + */ + if (low_compare->sk_subtype != opcintype && + low_compare->sk_subtype != InvalidOid) + return; + + /* Increment, handling overflow by marking the qual unsatisfiable */ + new_sk_argument = array->sksup->increment(rel, orig_sk_argument, &oflow); + if (oflow) + { + BTScanOpaque so = (BTScanOpaque) scan->opaque; + + so->qual_ok = false; + return; + } + + /* Look up >= operator (might fail) */ + geop = get_opfamily_member(opfamily, opcintype, opcintype, + BTGreaterEqualStrategyNumber); + if (!OidIsValid(geop)) + return; + cmp_proc = get_opcode(geop); + if (RegProcedureIsValid(cmp_proc)) + { + /* Transform > low_compare key into >= key */ + fmgr_info(cmp_proc, &low_compare->sk_func); + low_compare->sk_argument = new_sk_argument; + low_compare->sk_strategy = BTGreaterEqualStrategyNumber; + } +} + /* * _bt_preprocess_array_keys() -- Preprocess SK_SEARCHARRAY scan keys * @@ -1137,6 +1492,12 @@ _bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey * one equality strategy array scan key per index attribute. We'll always be * able to set things up that way when complete opfamilies are used. * + * We're also responsible for generating skip arrays (and their associated + * scan keys) here. This enables skip scan. We do this for index attributes + * that initially lacked an equality condition within scan->keyData[], iff + * doing so allows a later scan key (that was passed to us in scan->keyData[]) + * to be marked required by our _bt_preprocess_keys caller. + * * We set the scan key references from the scan's BTArrayKeyInfo info array to * offsets into the temp modified input array returned to caller. Scans that * have array keys should call _bt_preprocess_array_keys_final when standard @@ -1144,49 +1505,45 @@ _bt_compare_array_scankey_args(IndexScanDesc scan, ScanKey arraysk, ScanKey skey * references into references to the scan's so->keyData[] output scan keys. * * Note: the reason we need to return a temp scan key array, rather than just - * scribbling on scan->keyData, is that callers are permitted to call btrescan - * without supplying a new set of scankey data. + * modifying scan->keyData[], is that callers are permitted to call btrescan + * without supplying a new set of scankey data. Certain other preprocessing + * routines (e.g., _bt_fix_scankey_strategy) _can_ modify scan->keyData[], but + * we can't make that work here because our modifications are non-idempotent. */ static ScanKey _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) { BTScanOpaque so = (BTScanOpaque) scan->opaque; Relation rel = scan->indexRelation; - int numberOfKeys = scan->numberOfKeys; int16 *indoption = rel->rd_indoption; + Oid skip_eq_ops[INDEX_MAX_KEYS]; int numArrayKeys, - output_ikey = 0; + numSkipArrayKeys, + numArrayKeyData; + AttrNumber attno_skip = 1; int origarrayatt = InvalidAttrNumber, origarraykey = -1; Oid origelemtype = InvalidOid; - ScanKey cur; MemoryContext oldContext; ScanKey arrayKeyData; /* modified copy of scan->keyData */ - Assert(numberOfKeys); - - /* Quick check to see if there are any array keys */ - numArrayKeys = 0; - for (int i = 0; i < numberOfKeys; i++) - { - cur = &scan->keyData[i]; - if (cur->sk_flags & SK_SEARCHARRAY) - { - numArrayKeys++; - Assert(!(cur->sk_flags & (SK_ROW_HEADER | SK_SEARCHNULL | SK_SEARCHNOTNULL))); - /* If any arrays are null as a whole, we can quit right now. */ - if (cur->sk_flags & SK_ISNULL) - { - so->qual_ok = false; - return NULL; - } - } - } + /* + * Check the number of input array keys within scan->keyData[] input keys + * (also checks if we should add extra skip arrays based on input keys) + */ + numArrayKeys = _bt_num_array_keys(scan, skip_eq_ops, &numSkipArrayKeys); /* Quit if nothing to do. */ if (numArrayKeys == 0) return NULL; + /* + * Estimated final size of arrayKeyData[] array we'll return to our caller + * is the size of the original scan->keyData[] input array, plus space for + * any additional skip array scan keys we'll need to generate below + */ + numArrayKeyData = scan->numberOfKeys + numSkipArrayKeys; + /* * Make a scan-lifespan context to hold array-associated data, or reset it * if we already have one from a previous rescan cycle. @@ -1201,18 +1558,21 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) oldContext = MemoryContextSwitchTo(so->arrayContext); /* Create output scan keys in the workspace context */ - arrayKeyData = (ScanKey) palloc(numberOfKeys * sizeof(ScanKeyData)); + arrayKeyData = (ScanKey) palloc(numArrayKeyData * sizeof(ScanKeyData)); /* Allocate space for per-array data in the workspace context */ + so->skipScan = (numSkipArrayKeys > 0); so->arrayKeys = (BTArrayKeyInfo *) palloc(numArrayKeys * sizeof(BTArrayKeyInfo)); /* Allocate space for ORDER procs used to help _bt_checkkeys */ - so->orderProcs = (FmgrInfo *) palloc(numberOfKeys * sizeof(FmgrInfo)); + so->orderProcs = (FmgrInfo *) palloc(numArrayKeyData * sizeof(FmgrInfo)); - /* Now process each array key */ numArrayKeys = 0; - for (int input_ikey = 0; input_ikey < numberOfKeys; input_ikey++) + numArrayKeyData = 0; + for (int input_ikey = 0; input_ikey < scan->numberOfKeys; input_ikey++) { + ScanKey inkey = scan->keyData + input_ikey, + cur; FmgrInfo sortproc; FmgrInfo *sortprocp = &sortproc; Oid elemtype; @@ -1225,21 +1585,113 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) Datum *elem_values; bool *elem_nulls; int num_nonnulls; - int j; + + /* set up next output scan key */ + cur = &arrayKeyData[numArrayKeyData]; + + /* Backfill skip arrays for attrs < or <= input key's attr? */ + while (numSkipArrayKeys && attno_skip <= inkey->sk_attno) + { + Oid opfamily = rel->rd_opfamily[attno_skip - 1]; + Oid opcintype = rel->rd_opcintype[attno_skip - 1]; + Oid collation = rel->rd_indcollation[attno_skip - 1]; + Oid eq_op = skip_eq_ops[attno_skip - 1]; + CompactAttribute *attr; + RegProcedure cmp_proc; + + if (!OidIsValid(eq_op)) + { + /* + * Attribute already has an = input key, so don't output a + * skip array for attno_skip. Just copy attribute's = input + * key into arrayKeyData[] once outside this inner loop. + * + * Note: When we get here there must be a later attribute that + * lacks an equality input key, and still needs a skip array + * (if there wasn't then numSkipArrayKeys would be 0 by now). + */ + Assert(attno_skip == inkey->sk_attno); + /* inkey can't be last input key to be marked required: */ + Assert(input_ikey < scan->numberOfKeys - 1); +#if 0 + /* Could be a redundant input scan key, so can't do this: */ + Assert(inkey->sk_strategy == BTEqualStrategyNumber || + (inkey->sk_flags & SK_SEARCHNULL)); +#endif + + attno_skip++; + break; + } + + cmp_proc = get_opcode(eq_op); + if (!RegProcedureIsValid(cmp_proc)) + elog(ERROR, "missing oprcode for skipping equals operator %u", eq_op); + + ScanKeyEntryInitialize(cur, + SK_SEARCHARRAY | SK_BT_SKIP, /* flags */ + attno_skip, /* skipped att number */ + BTEqualStrategyNumber, /* equality strategy */ + InvalidOid, /* opclass input subtype */ + collation, /* index column's collation */ + cmp_proc, /* equality operator's proc */ + (Datum) 0); /* constant */ + + /* Initialize generic BTArrayKeyInfo fields */ + so->arrayKeys[numArrayKeys].scan_key = numArrayKeyData; + so->arrayKeys[numArrayKeys].num_elems = -1; + + /* Initialize skip array specific BTArrayKeyInfo fields */ + attr = TupleDescCompactAttr(RelationGetDescr(rel), attno_skip - 1); + reverse = (indoption[attno_skip - 1] & INDOPTION_DESC) != 0; + so->arrayKeys[numArrayKeys].attlen = attr->attlen; + so->arrayKeys[numArrayKeys].attbyval = attr->attbyval; + so->arrayKeys[numArrayKeys].null_elem = true; /* for now */ + so->arrayKeys[numArrayKeys].sksup = + PrepareSkipSupportFromOpclass(opfamily, opcintype, reverse); + so->arrayKeys[numArrayKeys].low_compare = NULL; /* for now */ + so->arrayKeys[numArrayKeys].high_compare = NULL; /* for now */ + + /* + * We'll need a 3-way ORDER proc. Set that up now. + */ + _bt_setup_array_cmp(scan, cur, opcintype, + &so->orderProcs[numArrayKeyData], NULL); + + numArrayKeys++; + numArrayKeyData++; /* keep this scan key/array */ + + /* set up next output scan key */ + cur = &arrayKeyData[numArrayKeyData]; + + /* remember having output this skip array and scan key */ + numSkipArrayKeys--; + attno_skip++; + } /* * Provisionally copy scan key into arrayKeyData[] array we'll return * to _bt_preprocess_keys caller */ - cur = &arrayKeyData[output_ikey]; - *cur = scan->keyData[input_ikey]; + *cur = *inkey; if (!(cur->sk_flags & SK_SEARCHARRAY)) { - output_ikey++; /* keep this non-array scan key */ + numArrayKeyData++; /* keep this non-array scan key */ continue; } + /* + * Process SAOP array scan key + */ + Assert(!(cur->sk_flags & (SK_ROW_HEADER | SK_SEARCHNULL | SK_SEARCHNOTNULL))); + + /* If array is null as a whole, the scan qual is unsatisfiable */ + if (cur->sk_flags & SK_ISNULL) + { + so->qual_ok = false; + break; + } + /* * Deconstruct the array into elements */ @@ -1257,7 +1709,7 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) * all btree operators are strict. */ num_nonnulls = 0; - for (j = 0; j < num_elems; j++) + for (int j = 0; j < num_elems; j++) { if (!elem_nulls[j]) elem_values[num_nonnulls++] = elem_values[j]; @@ -1295,7 +1747,7 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) _bt_find_extreme_element(scan, cur, elemtype, BTGreaterStrategyNumber, elem_values, num_nonnulls); - output_ikey++; /* keep this transformed scan key */ + numArrayKeyData++; /* keep this transformed scan key */ continue; case BTEqualStrategyNumber: /* proceed with rest of loop */ @@ -1306,7 +1758,7 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) _bt_find_extreme_element(scan, cur, elemtype, BTLessStrategyNumber, elem_values, num_nonnulls); - output_ikey++; /* keep this transformed scan key */ + numArrayKeyData++; /* keep this transformed scan key */ continue; default: elog(ERROR, "unrecognized StrategyNumber: %d", @@ -1323,7 +1775,7 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) * sortproc just points to the same proc used during binary searches. */ _bt_setup_array_cmp(scan, cur, elemtype, - &so->orderProcs[output_ikey], &sortprocp); + &so->orderProcs[numArrayKeyData], &sortprocp); /* * Sort the non-null elements and eliminate any duplicates. We must @@ -1392,23 +1844,24 @@ _bt_preprocess_array_keys(IndexScanDesc scan, int *new_numberOfKeys) origelemtype = elemtype; } - /* - * And set up the BTArrayKeyInfo data. - * - * Note: _bt_preprocess_array_keys_final will fix-up each array's - * scan_key field later on, after so->keyData[] has been finalized. - */ - so->arrayKeys[numArrayKeys].scan_key = output_ikey; + /* Initialize generic BTArrayKeyInfo fields */ + so->arrayKeys[numArrayKeys].scan_key = numArrayKeyData; so->arrayKeys[numArrayKeys].num_elems = num_elems; + + /* Initialize SAOP array specific BTArrayKeyInfo fields */ so->arrayKeys[numArrayKeys].elem_values = elem_values; + so->arrayKeys[numArrayKeys].cur_elem = -1; /* i.e. invalid */ + numArrayKeys++; - output_ikey++; /* keep this scan key/array */ + numArrayKeyData++; /* keep this scan key/array */ } + Assert(numSkipArrayKeys == 0 || !so->qual_ok); + /* Set final number of equality-type array keys */ so->numArrayKeys = numArrayKeys; - /* Set number of scan keys remaining in arrayKeyData[] */ - *new_numberOfKeys = output_ikey; + /* Set number of scan keys in arrayKeyData[] */ + *new_numberOfKeys = numArrayKeyData; MemoryContextSwitchTo(oldContext); @@ -1514,7 +1967,14 @@ _bt_preprocess_array_keys_final(IndexScanDesc scan, int *keyDataMap) { BTArrayKeyInfo *array = &so->arrayKeys[arrayidx]; - Assert(array->num_elems > 0); + /* + * All skip arrays must be marked required, and final column can + * never have a skip array + */ + Assert(array->num_elems > 0 || array->num_elems == -1); + Assert(array->num_elems != -1 || outkey->sk_flags & SK_BT_REQFWD); + Assert(array->num_elems != -1 || + outkey->sk_attno < IndexRelationGetNumberOfKeyAttributes(rel)); if (array->scan_key == input_ikey) { @@ -1550,6 +2010,15 @@ _bt_preprocess_array_keys_final(IndexScanDesc scan, int *keyDataMap) } else { + /* + * Any skip array low_compare and high_compare scan keys + * are now final. Transform the array's > low_compare key + * into a >= key (and < high_compare keys into a <= key). + */ + if (array->num_elems == -1 && array->sksup && + !array->null_elem) + _bt_skiparray_strat_adjust(scan, outkey, array); + /* Match found, so done with this array */ arrayidx++; } @@ -1575,6 +2044,199 @@ _bt_preprocess_array_keys_final(IndexScanDesc scan, int *keyDataMap) so->numArrayKeys, INDEX_MAX_KEYS))); } +/* + * _bt_num_array_keys() -- determine # of BTArrayKeyInfo entries + * + * _bt_preprocess_array_keys helper function. Returns the estimated size of + * the scan's BTArrayKeyInfo array, which is guaranteed to be large enough to + * fit every so->arrayKeys[] entry. + * + * Also sets *numSkipArrayKeys_out to the number of skip arrays caller must + * add to the scan keys it'll output. Caller must add this many skip arrays: + * one array for each of the most significant attributes that lack a = input + * key (IS NULL keys count as = input keys here). The specific attributes + * that need skip arrays are indicated by initializing skip_eq_ops_out[] arg + * 0-based attribute offset to a valid = op strategy Oid. We'll only ever set + * skip_eq_ops_out[] entries to InvalidOid for attributes that already have an + * equality key in scan->keyData[] input keys -- and only when there's some + * later "attribute gap" for us to "fill-in" with a skip array. + * + * We're optimistic about skipping working out: we always add exactly the skip + * arrays needed to maximize the number of input scan keys that can ultimately + * be marked as required to continue the scan (but no more). Given a + * multi-column index on (a, b, c, d), we add skip arrays as follows: + * + * Input keys Output keys (after all preprocessing) + * ---------- ------------------------------------- + * a = 1 a = 1 (no skip arrays) + * b = 42 skip a AND b = 42 + * a = 1 AND b = 42 a = 1 AND b = 42 (no skip arrays) + * a >= 1 AND b = 42 range skip a AND b = 42 + * a = 1 AND b > 42 a = 1 AND b > 42 (no skip arrays) + * a >= 1 AND a <= 3 AND b = 42 range skip a AND b = 42 + * a = 1 AND c <= 27 a = 1 AND skip b AND c <= 27 + * a = 1 AND d >= 1 a = 1 AND skip b AND skip c AND d >= 1 + * a = 1 AND b >= 42 AND d > 1 a = 1 AND range skip b AND skip c AND d > 1 + */ +static int +_bt_num_array_keys(IndexScanDesc scan, Oid *skip_eq_ops_out, + int *numSkipArrayKeys_out) +{ + Relation rel = scan->indexRelation; + AttrNumber attno_skip = 1, + attno_inkey = 1; + bool attno_has_equal = false, + attno_has_rowcompare = false; + int numSAOPArrayKeys, + numSkipArrayKeys, + prev_numSkipArrayKeys; + + Assert(scan->numberOfKeys); + + /* Initial pass over input scan keys counts the number of SAOP arrays */ + numSAOPArrayKeys = 0; + *numSkipArrayKeys_out = prev_numSkipArrayKeys = numSkipArrayKeys = 0; + for (int i = 0; i < scan->numberOfKeys; i++) + { + ScanKey inkey = scan->keyData + i; + + if (inkey->sk_flags & SK_SEARCHARRAY) + numSAOPArrayKeys++; + } + +#ifdef DEBUG_DISABLE_SKIP_SCAN + /* don't attempt to add skip arrays */ + return numSAOPArrayKeys; +#endif + + for (int i = 0;; i++) + { + ScanKey inkey = scan->keyData + i; + + /* + * Backfill skip arrays for any wholly omitted attributes prior to + * attno_inkey + */ + while (attno_skip < attno_inkey) + { + Oid opfamily = rel->rd_opfamily[attno_skip - 1]; + Oid opcintype = rel->rd_opcintype[attno_skip - 1]; + + /* Look up input opclass's equality operator (might fail) */ + skip_eq_ops_out[attno_skip - 1] = + get_opfamily_member(opfamily, opcintype, opcintype, + BTEqualStrategyNumber); + if (!OidIsValid(skip_eq_ops_out[attno_skip - 1])) + { + /* + * Cannot generate a skip array for this or later attributes + * (input opclass lacks an equality strategy operator) + */ + *numSkipArrayKeys_out = prev_numSkipArrayKeys; + return numSAOPArrayKeys + prev_numSkipArrayKeys; + } + + /* plan on adding a backfill skip array for this attribute */ + numSkipArrayKeys++; + attno_skip++; + } + + prev_numSkipArrayKeys = numSkipArrayKeys; + + /* + * Stop once past the final input scan key. We deliberately never add + * a skip array for the last input scan key's attribute -- even when + * there are only inequality keys on that attribute. + */ + if (i == scan->numberOfKeys) + break; + + /* + * Later preprocessing steps cannot merge a RowCompare into a skip + * array, so stop adding skip arrays once we see one. (Note that we + * can backfill skip arrays before a RowCompare, which will allow keys + * up to and including the RowCompare to be marked required.) + * + * Skip arrays work by maintaining a current array element value, + * which anchors lower-order keys via an implied equality constraint. + * This is incompatible with the current nbtree row comparison design, + * which compares all columns together, as an indivisible group. + * Alternative designs that can be used alongside skip arrays are + * possible, but it's not clear that they're really worth pursuing. + * + * A RowCompare qual "(a, b, c) > (10, 'foo', 42)" is equivalent to + * "(a=10 AND b='foo' AND c>42) OR (a=10 AND b>'foo') OR (a>10)". + * Decomposing this RowCompare into these 3 disjuncts allows each + * disjunct to be executed as a separate "single value" index scan. + * That'll give all 3 scans the ability to add skip arrays in the + * usual way (when there are any scalar keys after the RowCompare). + * Under this scheme, a qual "(a, b, c) > (10, 'foo', 42) AND d = 99" + * performs 3 separate scans, each of which can mark keys up to and + * including its "d = 99" key as required to continue the scan. + */ + if (attno_has_rowcompare) + break; + + /* + * Now consider next attno_inkey (or keep going if this is an + * additional scan key against the same attribute) + */ + if (attno_inkey < inkey->sk_attno) + { + /* + * Now add skip array for previous scan key's attribute, though + * only if the attribute has no equality strategy scan keys + */ + if (attno_has_equal) + { + /* Attributes with an = key must have InvalidOid eq_op set */ + skip_eq_ops_out[attno_skip - 1] = InvalidOid; + } + else + { + Oid opfamily = rel->rd_opfamily[attno_skip - 1]; + Oid opcintype = rel->rd_opcintype[attno_skip - 1]; + + /* Look up input opclass's equality operator (might fail) */ + skip_eq_ops_out[attno_skip - 1] = + get_opfamily_member(opfamily, opcintype, opcintype, + BTEqualStrategyNumber); + + if (!OidIsValid(skip_eq_ops_out[attno_skip - 1])) + { + /* + * Input opclass lacks an equality strategy operator, so + * don't generate a skip array that definitely won't work + */ + break; + } + + /* plan on adding a backfill skip array for this attribute */ + numSkipArrayKeys++; + } + + /* Set things up for this new attribute */ + attno_skip++; + attno_inkey = inkey->sk_attno; + attno_has_equal = false; + } + + /* + * Track if this attribute's scan keys include any equality strategy + * scan keys (IS NULL keys count as equality keys here). Also track + * if it has any RowCompare keys. + */ + if (inkey->sk_strategy == BTEqualStrategyNumber || + (inkey->sk_flags & SK_SEARCHNULL)) + attno_has_equal = true; + if (inkey->sk_flags & SK_ROW_HEADER) + attno_has_rowcompare = true; + } + + *numSkipArrayKeys_out = numSkipArrayKeys; + return numSAOPArrayKeys + numSkipArrayKeys; +} + /* * _bt_find_extreme_element() -- get least or greatest array element * diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index 4a0bf069f9954..765659887af73 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -31,6 +31,7 @@ #include "storage/ipc.h" #include "storage/lmgr.h" #include "storage/read_stream.h" +#include "utils/datum.h" #include "utils/fmgrprotos.h" #include "utils/index_selfuncs.h" #include "utils/memutils.h" @@ -76,14 +77,26 @@ typedef struct BTParallelScanDescData /* * btps_arrElems is used when scans need to schedule another primitive - * index scan. Holds BTArrayKeyInfo.cur_elem offsets for scan keys. + * index scan with one or more SAOP arrays. Holds BTArrayKeyInfo.cur_elem + * offsets for each = scan key associated with a ScalarArrayOp array. */ int btps_arrElems[FLEXIBLE_ARRAY_MEMBER]; + + /* + * Additional space (at the end of the struct) is used when scans need to + * schedule another primitive index scan with one or more skip arrays. + * Holds a flattened datum representation for each = scan key associated + * with a skip array. + */ } BTParallelScanDescData; typedef struct BTParallelScanDescData *BTParallelScanDesc; +static void _bt_parallel_serialize_arrays(Relation rel, BTParallelScanDesc btscan, + BTScanOpaque so); +static void _bt_parallel_restore_arrays(Relation rel, BTParallelScanDesc btscan, + BTScanOpaque so); static void btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, IndexBulkDeleteCallback callback, void *callback_state, BTCycleId cycleid); @@ -336,6 +349,7 @@ btbeginscan(Relation rel, int nkeys, int norderbys) else so->keyData = NULL; + so->skipScan = false; so->needPrimScan = false; so->scanBehind = false; so->oppositeDirCheck = false; @@ -541,10 +555,167 @@ btrestrpos(IndexScanDesc scan) * btestimateparallelscan -- estimate storage for BTParallelScanDescData */ Size -btestimateparallelscan(int nkeys, int norderbys) +btestimateparallelscan(Relation rel, int nkeys, int norderbys) { - /* Pessimistically assume all input scankeys will be output with arrays */ - return offsetof(BTParallelScanDescData, btps_arrElems) + sizeof(int) * nkeys; + int16 nkeyatts = IndexRelationGetNumberOfKeyAttributes(rel); + Size estnbtreeshared, + genericattrspace; + + /* + * Pessimistically assume that every input scan key will be output with + * its own SAOP array + */ + estnbtreeshared = offsetof(BTParallelScanDescData, btps_arrElems) + + sizeof(int) * nkeys; + + /* Single column indexes cannot possibly use a skip array */ + if (nkeyatts == 1) + return estnbtreeshared; + + /* + * Pessimistically assume that all attributes prior to the least + * significant attribute require a skip array (and an associated key) + */ + genericattrspace = datumEstimateSpace((Datum) 0, false, true, + sizeof(Datum)); + for (int attnum = 1; attnum < nkeyatts; attnum++) + { + CompactAttribute *attr; + + /* + * We make the conservative assumption that every index column will + * also require a skip array. + * + * Every skip array must have space to store its scan key's sk_flags. + */ + estnbtreeshared = add_size(estnbtreeshared, sizeof(int)); + + /* Consider space required to store a datum of opclass input type */ + attr = TupleDescCompactAttr(rel->rd_att, attnum - 1); + if (attr->attbyval) + { + /* This index attribute stores pass-by-value datums */ + Size estfixed = datumEstimateSpace((Datum) 0, false, + true, attr->attlen); + + estnbtreeshared = add_size(estnbtreeshared, estfixed); + continue; + } + + /* + * This index attribute stores pass-by-reference datums. + * + * Assume that serializing this array will use just as much space as a + * pass-by-value datum, in addition to space for the largest possible + * whole index tuple (this is not just a per-datum portion of the + * largest possible tuple because that'd be almost as large anyway). + * + * This is quite conservative, but it's not clear how we could do much + * better. The executor requires an up-front storage request size + * that reliably covers the scan's high watermark memory usage. We + * can't be sure of the real high watermark until the scan is over. + */ + estnbtreeshared = add_size(estnbtreeshared, genericattrspace); + estnbtreeshared = add_size(estnbtreeshared, BTMaxItemSize); + } + + return estnbtreeshared; +} + +/* + * _bt_parallel_serialize_arrays() -- Serialize parallel array state. + * + * Caller must have exclusively locked btscan->btps_lock when called. + */ +static void +_bt_parallel_serialize_arrays(Relation rel, BTParallelScanDesc btscan, + BTScanOpaque so) +{ + char *datumshared; + + /* Space for serialized datums begins immediately after btps_arrElems[] */ + datumshared = ((char *) &btscan->btps_arrElems[so->numArrayKeys]); + for (int i = 0; i < so->numArrayKeys; i++) + { + BTArrayKeyInfo *array = &so->arrayKeys[i]; + ScanKey skey = &so->keyData[array->scan_key]; + + if (array->num_elems != -1) + { + /* Save SAOP array's cur_elem (no need to copy key/datum) */ + Assert(!(skey->sk_flags & SK_BT_SKIP)); + btscan->btps_arrElems[i] = array->cur_elem; + continue; + } + + /* Save all mutable state associated with skip array's key */ + Assert(skey->sk_flags & SK_BT_SKIP); + memcpy(datumshared, &skey->sk_flags, sizeof(int)); + datumshared += sizeof(int); + + if (skey->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL)) + { + /* No sk_argument datum to serialize */ + Assert(skey->sk_argument == 0); + continue; + } + + datumSerialize(skey->sk_argument, (skey->sk_flags & SK_ISNULL) != 0, + array->attbyval, array->attlen, &datumshared); + } +} + +/* + * _bt_parallel_restore_arrays() -- Restore serialized parallel array state. + * + * Caller must have exclusively locked btscan->btps_lock when called. + */ +static void +_bt_parallel_restore_arrays(Relation rel, BTParallelScanDesc btscan, + BTScanOpaque so) +{ + char *datumshared; + + /* Space for serialized datums begins immediately after btps_arrElems[] */ + datumshared = ((char *) &btscan->btps_arrElems[so->numArrayKeys]); + for (int i = 0; i < so->numArrayKeys; i++) + { + BTArrayKeyInfo *array = &so->arrayKeys[i]; + ScanKey skey = &so->keyData[array->scan_key]; + bool isnull; + + if (array->num_elems != -1) + { + /* Restore SAOP array using its saved cur_elem */ + Assert(!(skey->sk_flags & SK_BT_SKIP)); + array->cur_elem = btscan->btps_arrElems[i]; + skey->sk_argument = array->elem_values[array->cur_elem]; + continue; + } + + /* Restore skip array by restoring its key directly */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + skey->sk_argument = (Datum) 0; + memcpy(&skey->sk_flags, datumshared, sizeof(int)); + datumshared += sizeof(int); + + Assert(skey->sk_flags & SK_BT_SKIP); + + if (skey->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL)) + { + /* No sk_argument datum to restore */ + continue; + } + + skey->sk_argument = datumRestore(&datumshared, &isnull); + if (isnull) + { + Assert(skey->sk_argument == 0); + Assert(skey->sk_flags & SK_SEARCHNULL); + Assert(skey->sk_flags & SK_ISNULL); + } + } } /* @@ -613,6 +784,7 @@ bool _bt_parallel_seize(IndexScanDesc scan, BlockNumber *next_scan_page, BlockNumber *last_curr_page, bool first) { + Relation rel = scan->indexRelation; BTScanOpaque so = (BTScanOpaque) scan->opaque; bool exit_loop = false, status = true, @@ -679,14 +851,9 @@ _bt_parallel_seize(IndexScanDesc scan, BlockNumber *next_scan_page, { /* Can start scheduled primitive scan right away, so do so */ btscan->btps_pageStatus = BTPARALLEL_ADVANCING; - for (int i = 0; i < so->numArrayKeys; i++) - { - BTArrayKeyInfo *array = &so->arrayKeys[i]; - ScanKey skey = &so->keyData[array->scan_key]; - array->cur_elem = btscan->btps_arrElems[i]; - skey->sk_argument = array->elem_values[array->cur_elem]; - } + /* Restore scan's array keys from serialized values */ + _bt_parallel_restore_arrays(rel, btscan, so); exit_loop = true; } else @@ -831,6 +998,7 @@ _bt_parallel_done(IndexScanDesc scan) void _bt_parallel_primscan_schedule(IndexScanDesc scan, BlockNumber curr_page) { + Relation rel = scan->indexRelation; BTScanOpaque so = (BTScanOpaque) scan->opaque; ParallelIndexScanDesc parallel_scan = scan->parallel_scan; BTParallelScanDesc btscan; @@ -849,12 +1017,7 @@ _bt_parallel_primscan_schedule(IndexScanDesc scan, BlockNumber curr_page) btscan->btps_pageStatus = BTPARALLEL_NEED_PRIMSCAN; /* Serialize scan's current array keys */ - for (int i = 0; i < so->numArrayKeys; i++) - { - BTArrayKeyInfo *array = &so->arrayKeys[i]; - - btscan->btps_arrElems[i] = array->cur_elem; - } + _bt_parallel_serialize_arrays(rel, btscan, so); } LWLockRelease(&btscan->btps_lock); } @@ -1069,7 +1232,8 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, * It is safe to use batchmode as block_range_read_stream_cb takes no * locks. */ - stream = read_stream_begin_relation(READ_STREAM_FULL | + stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE | + READ_STREAM_FULL | READ_STREAM_USE_BATCHING, info->strategy, rel, @@ -1117,8 +1281,6 @@ btvacuumscan(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, current_block); } - Assert(read_stream_next_buffer(stream, NULL) == InvalidBuffer); - /* * We have to reset the read stream to use it again. After returning * InvalidBuffer, the read stream API won't invoke our callback again diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c index 3d46fb5df782a..fe9a3886913d8 100644 --- a/src/backend/access/nbtree/nbtsearch.c +++ b/src/backend/access/nbtree/nbtsearch.c @@ -983,7 +983,21 @@ _bt_first(IndexScanDesc scan, ScanDirection dir) * one we use --- by definition, they are either redundant or * contradictory. * - * Any regular (not SK_SEARCHNULL) key implies a NOT NULL qualifier. + * In practice we rarely see any "attribute boundary key gaps" here. + * Preprocessing can usually backfill skip array keys for any attributes + * that were omitted from the original scan->keyData[] input keys. All + * array keys are always considered = keys, but we'll sometimes need to + * treat the current key value as if we were using an inequality strategy. + * This happens with range skip arrays, which store inequality keys in the + * array's low_compare/high_compare fields (used to find the first/last + * set of matches, when = key will lack a usable sk_argument value). + * These are always preferred over any redundant "standard" inequality + * keys on the same column (per the usual rule about preferring = keys). + * Note also that any column with an = skip array key can never have an + * additional, contradictory = key. + * + * All keys (with the exception of SK_SEARCHNULL keys and SK_BT_SKIP + * array keys whose array is "null_elem=true") imply a NOT NULL qualifier. * If the index stores nulls at the end of the index we'll be starting * from, and we have no boundary key for the column (which means the key * we deduced NOT NULL from is an inequality key that constrains the other @@ -1040,8 +1054,54 @@ _bt_first(IndexScanDesc scan, ScanDirection dir) if (i >= so->numberOfKeys || cur->sk_attno != curattr) { /* - * Done looking at keys for curattr. If we didn't find a - * usable boundary key, see if we can deduce a NOT NULL key. + * Done looking at keys for curattr. + * + * If this is a scan key for a skip array whose current + * element is MINVAL, choose low_compare (when scanning + * backwards it'll be MAXVAL, and we'll choose high_compare). + * + * Note: if the array's low_compare key makes 'chosen' NULL, + * then we behave as if the array's first element is -inf, + * except when !array->null_elem implies a usable NOT NULL + * constraint. + */ + if (chosen != NULL && + (chosen->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL))) + { + int ikey = chosen - so->keyData; + ScanKey skipequalitykey = chosen; + BTArrayKeyInfo *array = NULL; + + for (int arridx = 0; arridx < so->numArrayKeys; arridx++) + { + array = &so->arrayKeys[arridx]; + if (array->scan_key == ikey) + break; + } + + if (ScanDirectionIsForward(dir)) + { + Assert(!(skipequalitykey->sk_flags & SK_BT_MAXVAL)); + chosen = array->low_compare; + } + else + { + Assert(!(skipequalitykey->sk_flags & SK_BT_MINVAL)); + chosen = array->high_compare; + } + + Assert(chosen == NULL || + chosen->sk_attno == skipequalitykey->sk_attno); + + if (!array->null_elem) + impliesNN = skipequalitykey; + else + Assert(chosen == NULL && impliesNN == NULL); + } + + /* + * If we didn't find a usable boundary key, see if we can + * deduce a NOT NULL key */ if (chosen == NULL && impliesNN != NULL && ((impliesNN->sk_flags & SK_BT_NULLS_FIRST) ? @@ -1084,9 +1144,40 @@ _bt_first(IndexScanDesc scan, ScanDirection dir) break; /* - * Done if that was the last attribute, or if next key is not - * in sequence (implying no boundary key is available for the - * next attribute). + * If the key that we just added to startKeys[] is a skip + * array = key whose current element is marked NEXT or PRIOR, + * make strat_total > or < (and stop adding boundary keys). + * This can only happen with opclasses that lack skip support. + */ + if (chosen->sk_flags & (SK_BT_NEXT | SK_BT_PRIOR)) + { + Assert(chosen->sk_flags & SK_BT_SKIP); + Assert(strat_total == BTEqualStrategyNumber); + + if (ScanDirectionIsForward(dir)) + { + Assert(!(chosen->sk_flags & SK_BT_PRIOR)); + strat_total = BTGreaterStrategyNumber; + } + else + { + Assert(!(chosen->sk_flags & SK_BT_NEXT)); + strat_total = BTLessStrategyNumber; + } + + /* + * We're done. We'll never find an exact = match for a + * NEXT or PRIOR sentinel sk_argument value. There's no + * sense in trying to add more keys to startKeys[]. + */ + break; + } + + /* + * Done if that was the last scan key output by preprocessing. + * Also done if there is a gap index attribute that lacks a + * usable key (only possible when preprocessing was unable to + * generate a skip array key to "fill in the gap"). */ if (i >= so->numberOfKeys || cur->sk_attno != curattr + 1) @@ -1557,67 +1648,14 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, pstate.finaltup = NULL; pstate.page = page; pstate.firstpage = firstpage; + pstate.forcenonrequired = false; + pstate.startikey = 0; pstate.offnum = InvalidOffsetNumber; pstate.skip = InvalidOffsetNumber; pstate.continuescan = true; /* default assumption */ - pstate.prechecked = false; - pstate.firstmatch = false; pstate.rechecks = 0; pstate.targetdistance = 0; - - /* - * Prechecking the value of the continuescan flag for the last item on the - * page (for backwards scan it will be the first item on a page). If we - * observe it to be true, then it should be true for all other items. This - * allows us to do significant optimizations in the _bt_checkkeys() - * function for all the items on the page. - * - * With the forward scan, we do this check for the last item on the page - * instead of the high key. It's relatively likely that the most - * significant column in the high key will be different from the - * corresponding value from the last item on the page. So checking with - * the last item on the page would give a more precise answer. - * - * We skip this for the first page read by each (primitive) scan, to avoid - * slowing down point queries. They typically don't stand to gain much - * when the optimization can be applied, and are more likely to notice the - * overhead of the precheck. - * - * The optimization is unsafe and must be avoided whenever _bt_checkkeys - * just set a low-order required array's key to the best available match - * for a truncated -inf attribute value from the prior page's high key - * (array element 0 is always the best available match in this scenario). - * It's quite likely that matches for array element 0 begin on this page, - * but the start of matches won't necessarily align with page boundaries. - * When the start of matches is somewhere in the middle of this page, it - * would be wrong to treat page's final non-pivot tuple as representative. - * Doing so might lead us to treat some of the page's earlier tuples as - * being part of a group of tuples thought to satisfy the required keys. - * - * Note: Conversely, in the case where the scan's arrays just advanced - * using the prior page's HIKEY _without_ advancement setting scanBehind, - * the start of matches must be aligned with page boundaries, which makes - * it safe to attempt the optimization here now. It's also safe when the - * prior page's HIKEY simply didn't need to advance any required array. In - * both cases we can safely assume that the _first_ tuple from this page - * must be >= the current set of array keys/equality constraints. And so - * if the final tuple is == those same keys (and also satisfies any - * required < or <= strategy scan keys) during the precheck, we can safely - * assume that this must also be true of all earlier tuples from the page. - */ - if (!pstate.firstpage && !so->scanBehind && minoff < maxoff) - { - ItemId iid; - IndexTuple itup; - - iid = PageGetItemId(page, ScanDirectionIsForward(dir) ? maxoff : minoff); - itup = (IndexTuple) PageGetItem(page, iid); - - /* Call with arrayKeys=false to avoid undesirable side-effects */ - _bt_checkkeys(scan, &pstate, false, itup, indnatts); - pstate.prechecked = pstate.continuescan; - pstate.continuescan = true; /* reset */ - } + pstate.nskipadvances = 0; if (ScanDirectionIsForward(dir)) { @@ -1646,6 +1684,13 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, so->scanBehind = so->oppositeDirCheck = false; /* reset */ } + /* + * Consider pstate.startikey optimization once the ongoing primitive + * index scan has already read at least one page + */ + if (!pstate.firstpage && minoff < maxoff) + _bt_set_startikey(scan, &pstate); + /* load items[] in ascending order */ itemIndex = 0; @@ -1682,6 +1727,7 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, { Assert(!passes_quals && pstate.continuescan); Assert(offnum < pstate.skip); + Assert(!pstate.forcenonrequired); offnum = pstate.skip; pstate.skip = InvalidOffsetNumber; @@ -1691,7 +1737,6 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, if (passes_quals) { /* tuple passes all scan key conditions */ - pstate.firstmatch = true; if (!BTreeTupleIsPosting(itup)) { /* Remember it */ @@ -1745,8 +1790,13 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, IndexTuple itup = (IndexTuple) PageGetItem(page, iid); int truncatt; + /* Reset arrays, per _bt_set_startikey contract */ + if (pstate.forcenonrequired) + _bt_start_array_keys(scan, dir); + pstate.forcenonrequired = false; + pstate.startikey = 0; /* _bt_set_startikey ignores P_HIKEY */ + truncatt = BTreeTupleGetNAtts(itup, rel); - pstate.prechecked = false; /* precheck didn't cover HIKEY */ _bt_checkkeys(scan, &pstate, arrayKeys, itup, truncatt); } @@ -1785,6 +1835,13 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, so->scanBehind = so->oppositeDirCheck = false; /* reset */ } + /* + * Consider pstate.startikey optimization once the ongoing primitive + * index scan has already read at least one page + */ + if (!pstate.firstpage && minoff < maxoff) + _bt_set_startikey(scan, &pstate); + /* load items[] in descending order */ itemIndex = MaxTIDsPerBTreePage; @@ -1824,9 +1881,31 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, Assert(!BTreeTupleIsPivot(itup)); pstate.offnum = offnum; + if (arrayKeys && offnum == minoff && pstate.forcenonrequired) + { + /* Reset arrays, per _bt_set_startikey contract */ + pstate.forcenonrequired = false; + pstate.startikey = 0; + _bt_start_array_keys(scan, dir); + } passes_quals = _bt_checkkeys(scan, &pstate, arrayKeys, itup, indnatts); + if (arrayKeys && so->scanBehind) + { + /* + * Done scanning this page, but not done with the current + * primscan. + * + * Note: Forward scans don't check this explicitly, since they + * prefer to reuse pstate.skip for this instead. + */ + Assert(!passes_quals && pstate.continuescan); + Assert(!pstate.forcenonrequired); + + break; + } + /* * Check if we need to skip ahead to a later tuple (only possible * when the scan uses array keys) @@ -1835,6 +1914,7 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, { Assert(!passes_quals && pstate.continuescan); Assert(offnum > pstate.skip); + Assert(!pstate.forcenonrequired); offnum = pstate.skip; pstate.skip = InvalidOffsetNumber; @@ -1844,7 +1924,6 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, if (passes_quals && tuple_alive) { /* tuple passes all scan key conditions */ - pstate.firstmatch = true; if (!BTreeTupleIsPosting(itup)) { /* Remember it */ @@ -1900,6 +1979,20 @@ _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum, so->currPos.itemIndex = MaxTIDsPerBTreePage - 1; } + /* + * If _bt_set_startikey told us to temporarily treat the scan's keys as + * nonrequired (possible only during scans with array keys), there must be + * no lasting consequences for the scan's array keys. The scan's arrays + * should now have exactly the same elements as they would have had if the + * nonrequired behavior had never been used. (In general, a scan's arrays + * are expected to track its progress through the index's key space.) + * + * We are required (by _bt_set_startikey) to call _bt_checkkeys against + * pstate.finaltup with pstate.forcenonrequired=false to allow the scan's + * arrays to recover. Assert that that step hasn't been missed. + */ + Assert(!pstate.forcenonrequired); + return (so->currPos.firstItem <= so->currPos.lastItem); } diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c index 2aee9bbf67d2e..1a15dfcb7d357 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -26,11 +26,24 @@ #define LOOK_AHEAD_REQUIRED_RECHECKS 3 #define LOOK_AHEAD_DEFAULT_DISTANCE 5 +#define NSKIPADVANCES_THRESHOLD 3 static inline int32 _bt_compare_array_skey(FmgrInfo *orderproc, Datum tupdatum, bool tupnull, Datum arrdatum, ScanKey cur); -static bool _bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir); +static void _bt_binsrch_skiparray_skey(bool cur_elem_trig, ScanDirection dir, + Datum tupdatum, bool tupnull, + BTArrayKeyInfo *array, ScanKey cur, + int32 *set_elem_result); +static void _bt_skiparray_set_element(Relation rel, ScanKey skey, BTArrayKeyInfo *array, + int32 set_elem_result, Datum tupdatum, bool tupnull); +static void _bt_skiparray_set_isnull(Relation rel, ScanKey skey, BTArrayKeyInfo *array); +static void _bt_array_set_low_or_high(Relation rel, ScanKey skey, + BTArrayKeyInfo *array, bool low_not_high); +static bool _bt_array_decrement(Relation rel, ScanKey skey, BTArrayKeyInfo *array); +static bool _bt_array_increment(Relation rel, ScanKey skey, BTArrayKeyInfo *array); +static bool _bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir, + bool *skip_array_set); static void _bt_rewind_nonrequired_arrays(IndexScanDesc scan, ScanDirection dir); static bool _bt_tuple_before_array_skeys(IndexScanDesc scan, ScanDirection dir, IndexTuple tuple, TupleDesc tupdesc, int tupnatts, @@ -46,11 +59,11 @@ static bool _bt_oppodir_checkkeys(IndexScanDesc scan, ScanDirection dir, IndexTuple finaltup); static bool _bt_check_compare(IndexScanDesc scan, ScanDirection dir, IndexTuple tuple, int tupnatts, TupleDesc tupdesc, - bool advancenonrequired, bool prechecked, bool firstmatch, + bool advancenonrequired, bool forcenonrequired, bool *continuescan, int *ikey); static bool _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts, TupleDesc tupdesc, - ScanDirection dir, bool *continuescan); + ScanDirection dir, bool forcenonrequired, bool *continuescan); static void _bt_checkkeys_look_ahead(IndexScanDesc scan, BTReadPageState *pstate, int tupnatts, TupleDesc tupdesc); static int _bt_keep_natts(Relation rel, IndexTuple lastleft, @@ -207,6 +220,7 @@ _bt_compare_array_skey(FmgrInfo *orderproc, int32 result = 0; Assert(cur->sk_strategy == BTEqualStrategyNumber); + Assert(!(cur->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL))); if (tupnull) /* NULL tupdatum */ { @@ -283,6 +297,8 @@ _bt_binsrch_array_skey(FmgrInfo *orderproc, Datum arrdatum; Assert(cur->sk_flags & SK_SEARCHARRAY); + Assert(!(cur->sk_flags & SK_BT_SKIP)); + Assert(!(cur->sk_flags & SK_ISNULL)); /* SAOP arrays never have NULLs */ Assert(cur->sk_strategy == BTEqualStrategyNumber); if (cur_elem_trig) @@ -405,6 +421,186 @@ _bt_binsrch_array_skey(FmgrInfo *orderproc, return low_elem; } +/* + * _bt_binsrch_skiparray_skey() -- "Binary search" within a skip array + * + * Does not return an index into the array, since skip arrays don't really + * contain elements (they generate their array elements procedurally instead). + * Our interface matches that of _bt_binsrch_array_skey in every other way. + * + * Sets *set_elem_result just like _bt_binsrch_array_skey would with a true + * array. The value 0 indicates that tupdatum/tupnull is within the range of + * the skip array. We return -1 when tupdatum/tupnull is lower that any value + * within the range of the array, and 1 when it is higher than every value. + * Caller should pass *set_elem_result to _bt_skiparray_set_element to advance + * the array. + * + * cur_elem_trig indicates if array advancement was triggered by this array's + * scan key. We use this to optimize-away comparisons that are known by our + * caller to be unnecessary from context, just like _bt_binsrch_array_skey. + */ +static void +_bt_binsrch_skiparray_skey(bool cur_elem_trig, ScanDirection dir, + Datum tupdatum, bool tupnull, + BTArrayKeyInfo *array, ScanKey cur, + int32 *set_elem_result) +{ + Assert(cur->sk_flags & SK_BT_SKIP); + Assert(cur->sk_flags & SK_SEARCHARRAY); + Assert(cur->sk_flags & SK_BT_REQFWD); + Assert(array->num_elems == -1); + Assert(!ScanDirectionIsNoMovement(dir)); + + if (array->null_elem) + { + Assert(!array->low_compare && !array->high_compare); + + *set_elem_result = 0; + return; + } + + if (tupnull) /* NULL tupdatum */ + { + if (cur->sk_flags & SK_BT_NULLS_FIRST) + *set_elem_result = -1; /* NULL "<" NOT_NULL */ + else + *set_elem_result = 1; /* NULL ">" NOT_NULL */ + return; + } + + /* + * Array inequalities determine whether tupdatum is within the range of + * caller's skip array + */ + *set_elem_result = 0; + if (ScanDirectionIsForward(dir)) + { + /* + * Evaluate low_compare first (unless cur_elem_trig tells us that it + * cannot possibly fail to be satisfied), then evaluate high_compare + */ + if (!cur_elem_trig && array->low_compare && + !DatumGetBool(FunctionCall2Coll(&array->low_compare->sk_func, + array->low_compare->sk_collation, + tupdatum, + array->low_compare->sk_argument))) + *set_elem_result = -1; + else if (array->high_compare && + !DatumGetBool(FunctionCall2Coll(&array->high_compare->sk_func, + array->high_compare->sk_collation, + tupdatum, + array->high_compare->sk_argument))) + *set_elem_result = 1; + } + else + { + /* + * Evaluate high_compare first (unless cur_elem_trig tells us that it + * cannot possibly fail to be satisfied), then evaluate low_compare + */ + if (!cur_elem_trig && array->high_compare && + !DatumGetBool(FunctionCall2Coll(&array->high_compare->sk_func, + array->high_compare->sk_collation, + tupdatum, + array->high_compare->sk_argument))) + *set_elem_result = 1; + else if (array->low_compare && + !DatumGetBool(FunctionCall2Coll(&array->low_compare->sk_func, + array->low_compare->sk_collation, + tupdatum, + array->low_compare->sk_argument))) + *set_elem_result = -1; + } + + /* + * Assert that any keys that were assumed to be satisfied already (due to + * caller passing cur_elem_trig=true) really are satisfied as expected + */ +#ifdef USE_ASSERT_CHECKING + if (cur_elem_trig) + { + if (ScanDirectionIsForward(dir) && array->low_compare) + Assert(DatumGetBool(FunctionCall2Coll(&array->low_compare->sk_func, + array->low_compare->sk_collation, + tupdatum, + array->low_compare->sk_argument))); + + if (ScanDirectionIsBackward(dir) && array->high_compare) + Assert(DatumGetBool(FunctionCall2Coll(&array->high_compare->sk_func, + array->high_compare->sk_collation, + tupdatum, + array->high_compare->sk_argument))); + } +#endif +} + +/* + * _bt_skiparray_set_element() -- Set skip array scan key's sk_argument + * + * Caller passes set_elem_result returned by _bt_binsrch_skiparray_skey for + * caller's tupdatum/tupnull. + * + * We copy tupdatum/tupnull into skey's sk_argument iff set_elem_result == 0. + * Otherwise, we set skey to either the lowest or highest value that's within + * the range of caller's skip array (whichever is the best available match to + * tupdatum/tupnull that is still within the range of the skip array according + * to _bt_binsrch_skiparray_skey/set_elem_result). + */ +static void +_bt_skiparray_set_element(Relation rel, ScanKey skey, BTArrayKeyInfo *array, + int32 set_elem_result, Datum tupdatum, bool tupnull) +{ + Assert(skey->sk_flags & SK_BT_SKIP); + Assert(skey->sk_flags & SK_SEARCHARRAY); + + if (set_elem_result) + { + /* tupdatum/tupnull is out of the range of the skip array */ + Assert(!array->null_elem); + + _bt_array_set_low_or_high(rel, skey, array, set_elem_result < 0); + return; + } + + /* Advance skip array to tupdatum (or tupnull) value */ + if (unlikely(tupnull)) + { + _bt_skiparray_set_isnull(rel, skey, array); + return; + } + + /* Free memory previously allocated for sk_argument if needed */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + + /* tupdatum becomes new sk_argument/new current element */ + skey->sk_flags &= ~(SK_SEARCHNULL | SK_ISNULL | + SK_BT_MINVAL | SK_BT_MAXVAL | + SK_BT_NEXT | SK_BT_PRIOR); + skey->sk_argument = datumCopy(tupdatum, array->attbyval, array->attlen); +} + +/* + * _bt_skiparray_set_isnull() -- set skip array scan key to NULL + */ +static void +_bt_skiparray_set_isnull(Relation rel, ScanKey skey, BTArrayKeyInfo *array) +{ + Assert(skey->sk_flags & SK_BT_SKIP); + Assert(skey->sk_flags & SK_SEARCHARRAY); + Assert(array->null_elem && !array->low_compare && !array->high_compare); + + /* Free memory previously allocated for sk_argument if needed */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + + /* NULL becomes new sk_argument/new current element */ + skey->sk_argument = (Datum) 0; + skey->sk_flags &= ~(SK_BT_MINVAL | SK_BT_MAXVAL | + SK_BT_NEXT | SK_BT_PRIOR); + skey->sk_flags |= (SK_SEARCHNULL | SK_ISNULL); +} + /* * _bt_start_array_keys() -- Initialize array keys at start of a scan * @@ -414,29 +610,355 @@ _bt_binsrch_array_skey(FmgrInfo *orderproc, void _bt_start_array_keys(IndexScanDesc scan, ScanDirection dir) { + Relation rel = scan->indexRelation; BTScanOpaque so = (BTScanOpaque) scan->opaque; - int i; Assert(so->numArrayKeys); Assert(so->qual_ok); - for (i = 0; i < so->numArrayKeys; i++) + for (int i = 0; i < so->numArrayKeys; i++) { - BTArrayKeyInfo *curArrayKey = &so->arrayKeys[i]; - ScanKey skey = &so->keyData[curArrayKey->scan_key]; + BTArrayKeyInfo *array = &so->arrayKeys[i]; + ScanKey skey = &so->keyData[array->scan_key]; - Assert(curArrayKey->num_elems > 0); Assert(skey->sk_flags & SK_SEARCHARRAY); - if (ScanDirectionIsBackward(dir)) - curArrayKey->cur_elem = curArrayKey->num_elems - 1; - else - curArrayKey->cur_elem = 0; - skey->sk_argument = curArrayKey->elem_values[curArrayKey->cur_elem]; + _bt_array_set_low_or_high(rel, skey, array, + ScanDirectionIsForward(dir)); } so->scanBehind = so->oppositeDirCheck = false; /* reset */ } +/* + * _bt_array_set_low_or_high() -- Set array scan key to lowest/highest element + * + * Caller also passes associated scan key, which will have its argument set to + * the lowest/highest array value in passing. + */ +static void +_bt_array_set_low_or_high(Relation rel, ScanKey skey, BTArrayKeyInfo *array, + bool low_not_high) +{ + Assert(skey->sk_flags & SK_SEARCHARRAY); + + if (array->num_elems != -1) + { + /* set low or high element for SAOP array */ + int set_elem = 0; + + Assert(!(skey->sk_flags & SK_BT_SKIP)); + + if (!low_not_high) + set_elem = array->num_elems - 1; + + /* + * Just copy over array datum (only skip arrays require freeing and + * allocating memory for sk_argument) + */ + array->cur_elem = set_elem; + skey->sk_argument = array->elem_values[set_elem]; + + return; + } + + /* set low or high element for skip array */ + Assert(skey->sk_flags & SK_BT_SKIP); + Assert(array->num_elems == -1); + + /* Free memory previously allocated for sk_argument if needed */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + + /* Reset flags */ + skey->sk_argument = (Datum) 0; + skey->sk_flags &= ~(SK_SEARCHNULL | SK_ISNULL | + SK_BT_MINVAL | SK_BT_MAXVAL | + SK_BT_NEXT | SK_BT_PRIOR); + + if (array->null_elem && + (low_not_high == ((skey->sk_flags & SK_BT_NULLS_FIRST) != 0))) + { + /* Requested element (either lowest or highest) has the value NULL */ + skey->sk_flags |= (SK_SEARCHNULL | SK_ISNULL); + } + else if (low_not_high) + { + /* Setting array to lowest element (according to low_compare) */ + skey->sk_flags |= SK_BT_MINVAL; + } + else + { + /* Setting array to highest element (according to high_compare) */ + skey->sk_flags |= SK_BT_MAXVAL; + } +} + +/* + * _bt_array_decrement() -- decrement array scan key's sk_argument + * + * Return value indicates whether caller's array was successfully decremented. + * Cannot decrement an array whose current element is already the first one. + */ +static bool +_bt_array_decrement(Relation rel, ScanKey skey, BTArrayKeyInfo *array) +{ + bool uflow = false; + Datum dec_sk_argument; + + Assert(skey->sk_flags & SK_SEARCHARRAY); + Assert(!(skey->sk_flags & (SK_BT_MAXVAL | SK_BT_NEXT | SK_BT_PRIOR))); + + /* SAOP array? */ + if (array->num_elems != -1) + { + Assert(!(skey->sk_flags & (SK_BT_SKIP | SK_BT_MINVAL | SK_BT_MAXVAL))); + if (array->cur_elem > 0) + { + /* + * Just decrement current element, and assign its datum to skey + * (only skip arrays need us to free existing sk_argument memory) + */ + array->cur_elem--; + skey->sk_argument = array->elem_values[array->cur_elem]; + + /* Successfully decremented array */ + return true; + } + + /* Cannot decrement to before first array element */ + return false; + } + + /* Nope, this is a skip array */ + Assert(skey->sk_flags & SK_BT_SKIP); + + /* + * The sentinel value that represents the minimum value within the range + * of a skip array (often just -inf) is never decrementable + */ + if (skey->sk_flags & SK_BT_MINVAL) + return false; + + /* + * When the current array element is NULL, and the lowest sorting value in + * the index is also NULL, we cannot decrement before first array element + */ + if ((skey->sk_flags & SK_ISNULL) && (skey->sk_flags & SK_BT_NULLS_FIRST)) + return false; + + /* + * Opclasses without skip support "decrement" the scan key's current + * element by setting the PRIOR flag. The true prior value is determined + * by repositioning to the last index tuple < existing sk_argument/current + * array element. Note that this works in the usual way when the scan key + * is already marked ISNULL (i.e. when the current element is NULL). + */ + if (!array->sksup) + { + /* Successfully "decremented" array */ + skey->sk_flags |= SK_BT_PRIOR; + return true; + } + + /* + * Opclasses with skip support directly decrement sk_argument + */ + if (skey->sk_flags & SK_ISNULL) + { + Assert(!(skey->sk_flags & SK_BT_NULLS_FIRST)); + + /* + * Existing sk_argument/array element is NULL (for an IS NULL qual). + * + * "Decrement" from NULL to the high_elem value provided by opclass + * skip support routine. + */ + skey->sk_flags &= ~(SK_SEARCHNULL | SK_ISNULL); + skey->sk_argument = datumCopy(array->sksup->high_elem, + array->attbyval, array->attlen); + return true; + } + + /* + * Ask opclass support routine to provide decremented copy of existing + * non-NULL sk_argument + */ + dec_sk_argument = array->sksup->decrement(rel, skey->sk_argument, &uflow); + if (unlikely(uflow)) + { + /* dec_sk_argument has undefined value (so no pfree) */ + if (array->null_elem && (skey->sk_flags & SK_BT_NULLS_FIRST)) + { + _bt_skiparray_set_isnull(rel, skey, array); + + /* Successfully "decremented" array to NULL */ + return true; + } + + /* Cannot decrement to before first array element */ + return false; + } + + /* + * Successfully decremented sk_argument to a non-NULL value. Make sure + * that the decremented value is still within the range of the array. + */ + if (array->low_compare && + !DatumGetBool(FunctionCall2Coll(&array->low_compare->sk_func, + array->low_compare->sk_collation, + dec_sk_argument, + array->low_compare->sk_argument))) + { + /* Keep existing sk_argument after all */ + if (!array->attbyval) + pfree(DatumGetPointer(dec_sk_argument)); + + /* Cannot decrement to before first array element */ + return false; + } + + /* Accept value returned by opclass decrement callback */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + skey->sk_argument = dec_sk_argument; + + /* Successfully decremented array */ + return true; +} + +/* + * _bt_array_increment() -- increment array scan key's sk_argument + * + * Return value indicates whether caller's array was successfully incremented. + * Cannot increment an array whose current element is already the final one. + */ +static bool +_bt_array_increment(Relation rel, ScanKey skey, BTArrayKeyInfo *array) +{ + bool oflow = false; + Datum inc_sk_argument; + + Assert(skey->sk_flags & SK_SEARCHARRAY); + Assert(!(skey->sk_flags & (SK_BT_MINVAL | SK_BT_NEXT | SK_BT_PRIOR))); + + /* SAOP array? */ + if (array->num_elems != -1) + { + Assert(!(skey->sk_flags & (SK_BT_SKIP | SK_BT_MINVAL | SK_BT_MAXVAL))); + if (array->cur_elem < array->num_elems - 1) + { + /* + * Just increment current element, and assign its datum to skey + * (only skip arrays need us to free existing sk_argument memory) + */ + array->cur_elem++; + skey->sk_argument = array->elem_values[array->cur_elem]; + + /* Successfully incremented array */ + return true; + } + + /* Cannot increment past final array element */ + return false; + } + + /* Nope, this is a skip array */ + Assert(skey->sk_flags & SK_BT_SKIP); + + /* + * The sentinel value that represents the maximum value within the range + * of a skip array (often just +inf) is never incrementable + */ + if (skey->sk_flags & SK_BT_MAXVAL) + return false; + + /* + * When the current array element is NULL, and the highest sorting value + * in the index is also NULL, we cannot increment past the final element + */ + if ((skey->sk_flags & SK_ISNULL) && !(skey->sk_flags & SK_BT_NULLS_FIRST)) + return false; + + /* + * Opclasses without skip support "increment" the scan key's current + * element by setting the NEXT flag. The true next value is determined by + * repositioning to the first index tuple > existing sk_argument/current + * array element. Note that this works in the usual way when the scan key + * is already marked ISNULL (i.e. when the current element is NULL). + */ + if (!array->sksup) + { + /* Successfully "incremented" array */ + skey->sk_flags |= SK_BT_NEXT; + return true; + } + + /* + * Opclasses with skip support directly increment sk_argument + */ + if (skey->sk_flags & SK_ISNULL) + { + Assert(skey->sk_flags & SK_BT_NULLS_FIRST); + + /* + * Existing sk_argument/array element is NULL (for an IS NULL qual). + * + * "Increment" from NULL to the low_elem value provided by opclass + * skip support routine. + */ + skey->sk_flags &= ~(SK_SEARCHNULL | SK_ISNULL); + skey->sk_argument = datumCopy(array->sksup->low_elem, + array->attbyval, array->attlen); + return true; + } + + /* + * Ask opclass support routine to provide incremented copy of existing + * non-NULL sk_argument + */ + inc_sk_argument = array->sksup->increment(rel, skey->sk_argument, &oflow); + if (unlikely(oflow)) + { + /* inc_sk_argument has undefined value (so no pfree) */ + if (array->null_elem && !(skey->sk_flags & SK_BT_NULLS_FIRST)) + { + _bt_skiparray_set_isnull(rel, skey, array); + + /* Successfully "incremented" array to NULL */ + return true; + } + + /* Cannot increment past final array element */ + return false; + } + + /* + * Successfully incremented sk_argument to a non-NULL value. Make sure + * that the incremented value is still within the range of the array. + */ + if (array->high_compare && + !DatumGetBool(FunctionCall2Coll(&array->high_compare->sk_func, + array->high_compare->sk_collation, + inc_sk_argument, + array->high_compare->sk_argument))) + { + /* Keep existing sk_argument after all */ + if (!array->attbyval) + pfree(DatumGetPointer(inc_sk_argument)); + + /* Cannot increment past final array element */ + return false; + } + + /* Accept value returned by opclass increment callback */ + if (!array->attbyval && skey->sk_argument) + pfree(DatumGetPointer(skey->sk_argument)); + skey->sk_argument = inc_sk_argument; + + /* Successfully incremented array */ + return true; +} + /* * _bt_advance_array_keys_increment() -- Advance to next set of array elements * @@ -450,8 +972,10 @@ _bt_start_array_keys(IndexScanDesc scan, ScanDirection dir) * advanced (every array remains at its final element for scan direction). */ static bool -_bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir) +_bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir, + bool *skip_array_set) { + Relation rel = scan->indexRelation; BTScanOpaque so = (BTScanOpaque) scan->opaque; /* @@ -461,29 +985,33 @@ _bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir) */ for (int i = so->numArrayKeys - 1; i >= 0; i--) { - BTArrayKeyInfo *curArrayKey = &so->arrayKeys[i]; - ScanKey skey = &so->keyData[curArrayKey->scan_key]; - int cur_elem = curArrayKey->cur_elem; - int num_elems = curArrayKey->num_elems; - bool rolled = false; + BTArrayKeyInfo *array = &so->arrayKeys[i]; + ScanKey skey = &so->keyData[array->scan_key]; - if (ScanDirectionIsForward(dir) && ++cur_elem >= num_elems) + if (array->num_elems == -1) + *skip_array_set = true; + + if (ScanDirectionIsForward(dir)) { - cur_elem = 0; - rolled = true; + if (_bt_array_increment(rel, skey, array)) + return true; } - else if (ScanDirectionIsBackward(dir) && --cur_elem < 0) + else { - cur_elem = num_elems - 1; - rolled = true; + if (_bt_array_decrement(rel, skey, array)) + return true; } - curArrayKey->cur_elem = cur_elem; - skey->sk_argument = curArrayKey->elem_values[cur_elem]; - if (!rolled) - return true; + /* + * Couldn't increment (or decrement) array. Handle array roll over. + * + * Start over at the array's lowest sorting value (or its highest + * value, for backward scans)... + */ + _bt_array_set_low_or_high(rel, skey, array, + ScanDirectionIsForward(dir)); - /* Need to advance next array key, if any */ + /* ...then increment (or decrement) next most significant array */ } /* @@ -507,7 +1035,7 @@ _bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir) } /* - * _bt_rewind_nonrequired_arrays() -- Rewind non-required arrays + * _bt_rewind_nonrequired_arrays() -- Rewind SAOP arrays not marked required * * Called when _bt_advance_array_keys decides to start a new primitive index * scan on the basis of the current scan position being before the position @@ -539,10 +1067,15 @@ _bt_advance_array_keys_increment(IndexScanDesc scan, ScanDirection dir) * * Note: _bt_verify_arrays_bt_first is called by an assertion to enforce that * everybody got this right. + * + * Note: In practice almost all SAOP arrays are marked required during + * preprocessing (if necessary by generating skip arrays). It is hardly ever + * truly necessary to call here, but consistently doing so is simpler. */ static void _bt_rewind_nonrequired_arrays(IndexScanDesc scan, ScanDirection dir) { + Relation rel = scan->indexRelation; BTScanOpaque so = (BTScanOpaque) scan->opaque; int arrayidx = 0; @@ -550,7 +1083,6 @@ _bt_rewind_nonrequired_arrays(IndexScanDesc scan, ScanDirection dir) { ScanKey cur = so->keyData + ikey; BTArrayKeyInfo *array = NULL; - int first_elem_dir; if (!(cur->sk_flags & SK_SEARCHARRAY) || cur->sk_strategy != BTEqualStrategyNumber) @@ -562,16 +1094,10 @@ _bt_rewind_nonrequired_arrays(IndexScanDesc scan, ScanDirection dir) if ((cur->sk_flags & (SK_BT_REQFWD | SK_BT_REQBKWD))) continue; - if (ScanDirectionIsForward(dir)) - first_elem_dir = 0; - else - first_elem_dir = array->num_elems - 1; + Assert(array->num_elems != -1); /* No non-required skip arrays */ - if (array->cur_elem != first_elem_dir) - { - array->cur_elem = first_elem_dir; - cur->sk_argument = array->elem_values[first_elem_dir]; - } + _bt_array_set_low_or_high(rel, cur, array, + ScanDirectionIsForward(dir)); } } @@ -584,7 +1110,7 @@ _bt_rewind_nonrequired_arrays(IndexScanDesc scan, ScanDirection dir) * * readpagetup callers must only call here when _bt_check_compare already set * continuescan=false. We help these callers deal with _bt_check_compare's - * inability to distinguishing between the < and > cases (it uses equality + * inability to distinguish between the < and > cases (it uses equality * operator scan keys, whereas we use 3-way ORDER procs). These callers pass * a _bt_check_compare-set sktrig value that indicates which scan key * triggered the call (!readpagetup callers just pass us sktrig=0 instead). @@ -687,18 +1213,86 @@ _bt_tuple_before_array_skeys(IndexScanDesc scan, ScanDirection dir, return false; /* - * Otherwise we can't give up, since we must check all required - * scan keys (required in either direction) in order to correctly - * track *scanBehind for caller + * Otherwise we can't give up, since we must check all required + * scan keys (required in either direction) in order to correctly + * track *scanBehind for caller + */ + continue; + } + + tupdatum = index_getattr(tuple, cur->sk_attno, tupdesc, &tupnull); + + if (likely(!(cur->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL)))) + { + /* Scankey has a valid/comparable sk_argument value */ + result = _bt_compare_array_skey(&so->orderProcs[ikey], + tupdatum, tupnull, + cur->sk_argument, cur); + + if (result == 0) + { + /* + * Interpret result in a way that takes NEXT/PRIOR into + * account + */ + if (cur->sk_flags & SK_BT_NEXT) + result = -1; + else if (cur->sk_flags & SK_BT_PRIOR) + result = 1; + + Assert(result == 0 || (cur->sk_flags & SK_BT_SKIP)); + } + } + else + { + BTArrayKeyInfo *array = NULL; + + /* + * Current array element/array = scan key value is a sentinel + * value that represents the lowest (or highest) possible value + * that's still within the range of the array. + * + * Like _bt_first, we only see MINVAL keys during forwards scans + * (and similarly only see MAXVAL keys during backwards scans). + * Even if the scan's direction changes, we'll stop at some higher + * order key before we can ever reach any MAXVAL (or MINVAL) keys. + * (However, unlike _bt_first we _can_ get to keys marked either + * NEXT or PRIOR, regardless of the scan's current direction.) + */ + Assert(ScanDirectionIsForward(dir) ? + !(cur->sk_flags & SK_BT_MAXVAL) : + !(cur->sk_flags & SK_BT_MINVAL)); + + /* + * There are no valid sk_argument values in MINVAL/MAXVAL keys. + * Check if tupdatum is within the range of skip array instead. */ - continue; - } + for (int arrayidx = 0; arrayidx < so->numArrayKeys; arrayidx++) + { + array = &so->arrayKeys[arrayidx]; + if (array->scan_key == ikey) + break; + } - tupdatum = index_getattr(tuple, cur->sk_attno, tupdesc, &tupnull); + _bt_binsrch_skiparray_skey(false, dir, tupdatum, tupnull, + array, cur, &result); - result = _bt_compare_array_skey(&so->orderProcs[ikey], - tupdatum, tupnull, - cur->sk_argument, cur); + if (result == 0) + { + /* + * tupdatum satisfies both low_compare and high_compare, so + * it's time to advance the array keys. + * + * Note: It's possible that the skip array will "advance" from + * its MINVAL (or MAXVAL) representation to an alternative, + * logically equivalent representation of the same value: a + * representation where the = key gets a valid datum in its + * sk_argument. This is only possible when low_compare uses + * the >= strategy (or high_compare uses the <= strategy). + */ + return false; + } + } /* * Does this comparison indicate that caller must _not_ advance the @@ -834,9 +1428,10 @@ _bt_start_prim_scan(IndexScanDesc scan, ScanDirection dir) * postcondition's <= operator with a >=. In other words, just swap the * precondition with the postcondition.) * - * We also deal with "advancing" non-required arrays here. Callers whose - * sktrig scan key is non-required specify sktrig_required=false. These calls - * are the only exception to the general rule about always advancing the + * We also deal with "advancing" non-required arrays here (or arrays that are + * treated as non-required for the duration of a _bt_readpage call). Callers + * whose sktrig scan key is non-required specify sktrig_required=false. These + * calls are the only exception to the general rule about always advancing the * required array keys (the scan may not even have a required array). These * callers should just pass a NULL pstate (since there is never any question * of stopping the scan). No call to _bt_tuple_before_array_skeys is required @@ -871,11 +1466,13 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, ScanDirection dir = so->currPos.dir; int arrayidx = 0; bool beyond_end_advance = false, + skip_array_advanced = false, has_required_opposite_direction_only = false, all_required_satisfied = true, all_satisfied = true; Assert(!so->needPrimScan && !so->scanBehind && !so->oppositeDirCheck); + Assert(_bt_verify_keys_with_arraykeys(scan)); if (sktrig_required) { @@ -885,17 +1482,6 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, Assert(!_bt_tuple_before_array_skeys(scan, dir, tuple, tupdesc, tupnatts, false, 0, NULL)); - /* - * Required scan key wasn't satisfied, so required arrays will have to - * advance. Invalidate page-level state that tracks whether the - * scan's required-in-opposite-direction-only keys are known to be - * satisfied by page's remaining tuples. - */ - pstate->firstmatch = false; - - /* Shouldn't have to invalidate 'prechecked', though */ - Assert(!pstate->prechecked); - /* * Once we return we'll have a new set of required array keys, so * reset state used by "look ahead" optimization @@ -903,8 +1489,26 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, pstate->rechecks = 0; pstate->targetdistance = 0; } + else if (sktrig < so->numberOfKeys - 1 && + !(so->keyData[so->numberOfKeys - 1].sk_flags & SK_SEARCHARRAY)) + { + int least_sign_ikey = so->numberOfKeys - 1; + bool continuescan; - Assert(_bt_verify_keys_with_arraykeys(scan)); + /* + * Optimization: perform a precheck of the least significant key + * during !sktrig_required calls when it isn't already our sktrig + * (provided the precheck key is not itself an array). + * + * When the precheck works out we'll avoid an expensive binary search + * of sktrig's array (plus any other arrays before least_sign_ikey). + */ + Assert(so->keyData[sktrig].sk_flags & SK_SEARCHARRAY); + if (!_bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, false, + false, &continuescan, + &least_sign_ikey)) + return false; + } for (int ikey = 0; ikey < so->numberOfKeys; ikey++) { @@ -946,8 +1550,6 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, if (cur->sk_flags & (SK_BT_REQFWD | SK_BT_REQBKWD)) { - Assert(sktrig_required); - required = true; if (cur->sk_attno > tupnatts) @@ -1017,18 +1619,9 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, */ if (beyond_end_advance) { - int final_elem_dir; - - if (ScanDirectionIsBackward(dir) || !array) - final_elem_dir = 0; - else - final_elem_dir = array->num_elems - 1; - - if (array && array->cur_elem != final_elem_dir) - { - array->cur_elem = final_elem_dir; - cur->sk_argument = array->elem_values[final_elem_dir]; - } + if (array) + _bt_array_set_low_or_high(rel, cur, array, + ScanDirectionIsBackward(dir)); continue; } @@ -1053,18 +1646,9 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, */ if (!all_required_satisfied || cur->sk_attno > tupnatts) { - int first_elem_dir; - - if (ScanDirectionIsForward(dir) || !array) - first_elem_dir = 0; - else - first_elem_dir = array->num_elems - 1; - - if (array && array->cur_elem != first_elem_dir) - { - array->cur_elem = first_elem_dir; - cur->sk_argument = array->elem_values[first_elem_dir]; - } + if (array) + _bt_array_set_low_or_high(rel, cur, array, + ScanDirectionIsForward(dir)); continue; } @@ -1080,18 +1664,26 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, bool cur_elem_trig = (sktrig_required && ikey == sktrig); /* - * Binary search for closest match that's available from the array + * "Binary search" by checking if tupdatum/tupnull are within the + * range of the skip array */ - set_elem = _bt_binsrch_array_skey(&so->orderProcs[ikey], - cur_elem_trig, dir, - tupdatum, tupnull, array, cur, - &result); + if (array->num_elems == -1) + _bt_binsrch_skiparray_skey(cur_elem_trig, dir, + tupdatum, tupnull, array, cur, + &result); - Assert(set_elem >= 0 && set_elem < array->num_elems); + /* + * Binary search for the closest match from the SAOP array + */ + else + set_elem = _bt_binsrch_array_skey(&so->orderProcs[ikey], + cur_elem_trig, dir, + tupdatum, tupnull, array, cur, + &result); } else { - Assert(sktrig_required && required); + Assert(required); /* * This is a required non-array equality strategy scan key, which @@ -1133,7 +1725,7 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * be eliminated by _bt_preprocess_keys. It won't matter if some of * our "true" array scan keys (or even all of them) are non-required. */ - if (required && + if (sktrig_required && required && ((ScanDirectionIsForward(dir) && result > 0) || (ScanDirectionIsBackward(dir) && result < 0))) beyond_end_advance = true; @@ -1148,7 +1740,7 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * array scan keys are considered interesting.) */ all_satisfied = false; - if (required) + if (sktrig_required && required) all_required_satisfied = false; else { @@ -1163,11 +1755,22 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, } } - /* Advance array keys, even when set_elem isn't an exact match */ - if (array && array->cur_elem != set_elem) + /* Advance array keys, even when we don't have an exact match */ + if (array) { - array->cur_elem = set_elem; - cur->sk_argument = array->elem_values[set_elem]; + if (array->num_elems == -1) + { + /* Skip array's new element is tupdatum (or MINVAL/MAXVAL) */ + _bt_skiparray_set_element(rel, cur, array, result, + tupdatum, tupnull); + skip_array_advanced = true; + } + else if (array->cur_elem != set_elem) + { + /* SAOP array's new element is set_elem datum */ + array->cur_elem = set_elem; + cur->sk_argument = array->elem_values[set_elem]; + } } } @@ -1177,11 +1780,19 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * higher-order arrays (might exhaust all the scan's arrays instead, which * ends the top-level scan). */ - if (beyond_end_advance && !_bt_advance_array_keys_increment(scan, dir)) + if (beyond_end_advance && + !_bt_advance_array_keys_increment(scan, dir, &skip_array_advanced)) goto end_toplevel_scan; Assert(_bt_verify_keys_with_arraykeys(scan)); + /* + * Maintain a page-level count of the number of times the scan's array + * keys advanced in a way that affected at least one skip array + */ + if (sktrig_required && skip_array_advanced) + pstate->nskipadvances++; + /* * Does tuple now satisfy our new qual? Recheck with _bt_check_compare. * @@ -1198,6 +1809,12 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * of any required scan key). All that matters is whether caller's tuple * satisfies the new qual, so it's safe to just skip the _bt_check_compare * recheck when we've already determined that it can only return 'false'. + * + * Note: In practice most scan keys are marked required by preprocessing, + * if necessary by generating a preceding skip array. We nevertheless + * often handle array keys marked required as if they were nonrequired. + * This behavior is requested by our _bt_check_compare caller, though only + * when it is passed "forcenonrequired=true" by _bt_checkkeys. */ if ((sktrig_required && all_required_satisfied) || (!sktrig_required && all_satisfied)) @@ -1208,9 +1825,9 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, Assert(all_required_satisfied); /* Recheck _bt_check_compare on behalf of caller */ - if (_bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, - false, false, false, - &continuescan, &nsktrig) && + if (_bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, false, + !sktrig_required, &continuescan, + &nsktrig) && !so->scanBehind) { /* This tuple satisfies the new qual */ @@ -1333,7 +1950,7 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * keys for one or more truncated attribute values (scan keys required in * _either_ scan direction). * - * There is a chance that _bt_checkkeys (which checks so->scanBehind) will + * There is a chance that _bt_readpage (which checks so->scanBehind) will * find that even the sibling leaf page's finaltup is < the new array * keys. When that happens, our optimistic policy will have incurred a * single extra leaf page access that could have been avoided. @@ -1345,26 +1962,12 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * Being pessimistic would also give some scans with non-required arrays a * perverse advantage over similar scans that use required arrays instead. * - * You can think of this as a speculative bet on what the scan is likely - * to find on the next page. It's not much of a gamble, though, since the - * untruncated prefix of attributes must strictly satisfy the new qual. + * This is similar to our scan-level heuristics, below. They also set + * scanBehind to speculatively continue the primscan onto the next page. */ if (so->scanBehind) { - /* - * Truncated high key -- _bt_scanbehind_checkkeys recheck scheduled. - * - * Remember if recheck needs to call _bt_oppodir_checkkeys for next - * page's finaltup (see below comments about "Handle inequalities - * marked required in the opposite scan direction" for why). - */ - so->oppositeDirCheck = has_required_opposite_direction_only; - - /* - * Make sure that any SAOP arrays that were not marked required by - * preprocessing are reset to their first element for this direction - */ - _bt_rewind_nonrequired_arrays(scan, dir); + /* Truncated high key -- _bt_scanbehind_checkkeys recheck scheduled */ } /* @@ -1405,6 +2008,10 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, else if (has_required_opposite_direction_only && pstate->finaltup && unlikely(!_bt_oppodir_checkkeys(scan, dir, pstate->finaltup))) { + /* + * Make sure that any SAOP arrays that were not marked required by + * preprocessing are reset to their first element for this direction + */ _bt_rewind_nonrequired_arrays(scan, dir); goto new_prim_scan; } @@ -1431,11 +2038,21 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, if (so->scanBehind) { - /* Optimization: skip by setting "look ahead" mechanism's offnum */ + /* + * Remember if recheck needs to call _bt_oppodir_checkkeys for next + * page's finaltup (see above comments about "Handle inequalities + * marked required in the opposite scan direction" for why). + */ + so->oppositeDirCheck = has_required_opposite_direction_only; + + _bt_rewind_nonrequired_arrays(scan, dir); + + /* + * skip by setting "look ahead" mechanism's offnum for forwards scans + * (backwards scans check scanBehind flag directly instead) + */ if (ScanDirectionIsForward(dir)) pstate->skip = pstate->maxoff + 1; - else - pstate->skip = pstate->minoff - 1; } /* Caller's tuple doesn't match the new qual */ @@ -1454,22 +2071,35 @@ _bt_advance_array_keys(IndexScanDesc scan, BTReadPageState *pstate, * read at least one leaf page before the one we're reading now. This * makes primscan scheduling more efficient when scanning subsets of an * index with many distinct attribute values matching many array elements. - * It encourages fewer, larger primitive scans where that makes sense - * (where index descent costs need to be kept under control). + * It encourages fewer, larger primitive scans where that makes sense. + * This will in turn encourage _bt_readpage to apply the pstate.startikey + * optimization more often. * - * Note: This heuristic isn't as aggressive as you might think. We're + * Also continue the ongoing primitive index scan when it is still on the + * first page if there have been more than NSKIPADVANCES_THRESHOLD calls + * here that each advanced at least one of the scan's skip arrays + * (deliberately ignore advancements that only affected SAOP arrays here). + * A page that cycles through this many skip array elements is quite + * likely to neighbor similar pages, that we'll also need to read. + * + * Note: These heuristics aren't as aggressive as you might think. We're * conservative about allowing a primitive scan to step from the first * leaf page it reads to the page's sibling page (we only allow it on - * first pages whose finaltup strongly suggests that it'll work out). + * first pages whose finaltup strongly suggests that it'll work out, as + * well as first pages that have a large number of skip array advances). * Clearing this first page finaltup hurdle is a strong signal in itself. + * + * Note: The NSKIPADVANCES_THRESHOLD heuristic exists only to avoid + * pathological cases. Specifically, cases where a skip scan should just + * behave like a traditional full index scan, but ends up "skipping" again + * and again, descending to the prior leaf page's direct sibling leaf page + * each time. This misbehavior would otherwise be possible during scans + * that never quite manage to "clear the first page finaltup hurdle". */ - if (!pstate->firstpage) + if (!pstate->firstpage || pstate->nskipadvances > NSKIPADVANCES_THRESHOLD) { /* Schedule a recheck once on the next (or previous) page */ so->scanBehind = true; - so->oppositeDirCheck = has_required_opposite_direction_only; - - _bt_rewind_nonrequired_arrays(scan, dir); /* Continue the current primitive scan after all */ goto continue_scan; @@ -1581,10 +2211,11 @@ _bt_verify_keys_with_arraykeys(IndexScanDesc scan) if (array->scan_key != ikey) return false; - if (array->num_elems <= 0) + if (array->num_elems == 0 || array->num_elems < -1) return false; - if (cur->sk_argument != array->elem_values[array->cur_elem]) + if (array->num_elems != -1 && + cur->sk_argument != array->elem_values[array->cur_elem]) return false; if (last_sk_attno > cur->sk_attno) return false; @@ -1611,17 +2242,14 @@ _bt_verify_keys_with_arraykeys(IndexScanDesc scan) * the page to the right. * * Advances the scan's array keys when necessary for arrayKeys=true callers. - * Caller can avoid all array related side-effects when calling just to do a - * page continuescan precheck -- pass arrayKeys=false for that. Scans without - * any arrays keys must always pass arrayKeys=false. + * Scans without any array keys must always pass arrayKeys=false. * * Also stops and starts primitive index scans for arrayKeys=true callers. * Scans with array keys are required to set up page state that helps us with * this. The page's finaltup tuple (the page high key for a forward scan, or * the page's first non-pivot tuple for a backward scan) must be set in - * pstate.finaltup ahead of the first call here for the page (or possibly the - * first call after an initial continuescan-setting page precheck call). Set - * this to NULL for rightmost page (or the leftmost page for backwards scans). + * pstate.finaltup ahead of the first call here for the page. Set this to + * NULL for rightmost page (or the leftmost page for backwards scans). * * scan: index scan descriptor (containing a search-type scankey) * pstate: page level input and output parameters @@ -1636,42 +2264,46 @@ _bt_checkkeys(IndexScanDesc scan, BTReadPageState *pstate, bool arrayKeys, TupleDesc tupdesc = RelationGetDescr(scan->indexRelation); BTScanOpaque so = (BTScanOpaque) scan->opaque; ScanDirection dir = so->currPos.dir; - int ikey = 0; + int ikey = pstate->startikey; bool res; Assert(BTreeTupleGetNAtts(tuple, scan->indexRelation) == tupnatts); Assert(!so->needPrimScan && !so->scanBehind && !so->oppositeDirCheck); + Assert(arrayKeys || so->numArrayKeys == 0); - res = _bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, - arrayKeys, pstate->prechecked, pstate->firstmatch, - &pstate->continuescan, &ikey); + res = _bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, arrayKeys, + pstate->forcenonrequired, &pstate->continuescan, + &ikey); + /* + * If _bt_check_compare relied on the pstate.startikey optimization, call + * again (in assert-enabled builds) to verify it didn't affect our answer. + * + * Note: we can't do this when !pstate.forcenonrequired, since any arrays + * before pstate.startikey won't have advanced on this page at all. + */ + Assert(!pstate->forcenonrequired || arrayKeys); #ifdef USE_ASSERT_CHECKING - if (!arrayKeys && so->numArrayKeys) - { - /* - * This is a continuescan precheck call for a scan with array keys. - * - * Assert that the scan isn't in danger of becoming confused. - */ - Assert(!so->scanBehind && !so->oppositeDirCheck); - Assert(!pstate->prechecked && !pstate->firstmatch); - Assert(!_bt_tuple_before_array_skeys(scan, dir, tuple, tupdesc, - tupnatts, false, 0, NULL)); - } - if (pstate->prechecked || pstate->firstmatch) + if (pstate->startikey > 0 && !pstate->forcenonrequired) { - bool dcontinuescan; + bool dres, + dcontinuescan; int dikey = 0; + /* Pass arrayKeys=false to avoid array side-effects */ + dres = _bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, false, + pstate->forcenonrequired, &dcontinuescan, + &dikey); + Assert(res == dres); + Assert(pstate->continuescan == dcontinuescan); + /* - * Call relied on continuescan/firstmatch prechecks -- assert that we - * get the same answer without those optimizations + * Should also get the same ikey result. We need a slightly weaker + * assertion during arrayKeys calls, since they might be using an + * array that couldn't be marked required during preprocessing. */ - Assert(res == _bt_check_compare(scan, dir, tuple, tupnatts, tupdesc, - false, false, false, - &dcontinuescan, &dikey)); - Assert(pstate->continuescan == dcontinuescan); + Assert(arrayKeys || ikey == dikey); + Assert(ikey <= dikey); } #endif @@ -1692,6 +2324,7 @@ _bt_checkkeys(IndexScanDesc scan, BTReadPageState *pstate, bool arrayKeys, * It's also possible that the scan is still _before_ the _start_ of * tuples matching the current set of array keys. Check for that first. */ + Assert(!pstate->forcenonrequired); if (_bt_tuple_before_array_skeys(scan, dir, tuple, tupdesc, tupnatts, true, ikey, NULL)) { @@ -1760,11 +2393,27 @@ _bt_scanbehind_checkkeys(IndexScanDesc scan, ScanDirection dir, TupleDesc tupdesc = RelationGetDescr(rel); BTScanOpaque so = (BTScanOpaque) scan->opaque; int nfinaltupatts = BTreeTupleGetNAtts(finaltup, rel); + bool scanBehind; Assert(so->numArrayKeys); if (_bt_tuple_before_array_skeys(scan, dir, finaltup, tupdesc, - nfinaltupatts, false, 0, NULL)) + nfinaltupatts, false, 0, &scanBehind)) + return false; + + /* + * If scanBehind was set, all of the untruncated attribute values from + * finaltup that correspond to an array match the array's current element, + * but there are other keys associated with truncated suffix attributes. + * Array advancement must have incremented the scan's arrays on the + * previous page, resulting in a set of array keys that happen to be an + * exact match for the current page high key's untruncated prefix values. + * + * This page definitely doesn't contain tuples that the scan will need to + * return. The next page may or may not contain relevant tuples. Handle + * this by cutting our losses and starting a new primscan. + */ + if (scanBehind) return false; if (!so->oppositeDirCheck) @@ -1805,8 +2454,9 @@ _bt_oppodir_checkkeys(IndexScanDesc scan, ScanDirection dir, Assert(so->numArrayKeys); - _bt_check_compare(scan, flipped, finaltup, nfinaltupatts, tupdesc, - false, false, false, &continuescan, &ikey); + _bt_check_compare(scan, flipped, finaltup, nfinaltupatts, tupdesc, false, + false, &continuescan, + &ikey); if (!continuescan && so->keyData[ikey].sk_strategy != BTEqualStrategyNumber) return false; @@ -1814,6 +2464,325 @@ _bt_oppodir_checkkeys(IndexScanDesc scan, ScanDirection dir, return true; } +/* + * Determines an offset to the first scan key (an so->keyData[]-wise offset) + * that is _not_ guaranteed to be satisfied by every tuple from pstate.page, + * which is set in pstate.startikey for _bt_checkkeys calls for the page. + * This allows caller to save cycles on comparisons of a prefix of keys while + * reading pstate.page. + * + * Also determines if later calls to _bt_checkkeys (for pstate.page) should be + * forced to treat all required scan keys >= pstate.startikey as nonrequired + * (that is, if they're to be treated as if any SK_BT_REQFWD/SK_BT_REQBKWD + * markings that were set by preprocessing were not set at all, for the + * duration of _bt_checkkeys calls prior to the call for pstate.finaltup). + * This is indicated to caller by setting pstate.forcenonrequired. + * + * Call here at the start of reading a leaf page beyond the first one for the + * primitive index scan. We consider all non-pivot tuples, so it doesn't make + * sense to call here when only a subset of those tuples can ever be read. + * This is also a good idea on performance grounds; not calling here when on + * the first page (first for the current primitive scan) avoids wasting cycles + * during selective point queries. They typically don't stand to gain as much + * when we can set pstate.startikey, and are likely to notice the overhead of + * calling here. (Also, allowing pstate.forcenonrequired to be set on a + * primscan's first page would mislead _bt_advance_array_keys, which expects + * pstate.nskipadvances to be representative of every first page's key space.) + * + * Caller must call _bt_start_array_keys and reset startikey/forcenonrequired + * ahead of the finaltup _bt_checkkeys call when we set forcenonrequired=true. + * This will give _bt_checkkeys the opportunity to call _bt_advance_array_keys + * with sktrig_required=true, restoring the invariant that the scan's required + * arrays always track the scan's progress through the index's key space. + * Caller won't need to do this on the rightmost/leftmost page in the index + * (where pstate.finaltup isn't ever set), since forcenonrequired will never + * be set here in the first place. + */ +void +_bt_set_startikey(IndexScanDesc scan, BTReadPageState *pstate) +{ + BTScanOpaque so = (BTScanOpaque) scan->opaque; + Relation rel = scan->indexRelation; + TupleDesc tupdesc = RelationGetDescr(rel); + ItemId iid; + IndexTuple firsttup, + lasttup; + int startikey = 0, + arrayidx = 0, + firstchangingattnum; + bool start_past_saop_eq = false; + + Assert(!so->scanBehind); + Assert(pstate->minoff < pstate->maxoff); + Assert(!pstate->firstpage); + Assert(pstate->startikey == 0); + Assert(!so->numArrayKeys || pstate->finaltup || + P_RIGHTMOST(BTPageGetOpaque(pstate->page)) || + P_LEFTMOST(BTPageGetOpaque(pstate->page))); + + if (so->numberOfKeys == 0) + return; + + /* minoff is an offset to the lowest non-pivot tuple on the page */ + iid = PageGetItemId(pstate->page, pstate->minoff); + firsttup = (IndexTuple) PageGetItem(pstate->page, iid); + + /* maxoff is an offset to the highest non-pivot tuple on the page */ + iid = PageGetItemId(pstate->page, pstate->maxoff); + lasttup = (IndexTuple) PageGetItem(pstate->page, iid); + + /* Determine the first attribute whose values change on caller's page */ + firstchangingattnum = _bt_keep_natts_fast(rel, firsttup, lasttup); + + for (; startikey < so->numberOfKeys; startikey++) + { + ScanKey key = so->keyData + startikey; + BTArrayKeyInfo *array; + Datum firstdatum, + lastdatum; + bool firstnull, + lastnull; + int32 result; + + /* + * Determine if it's safe to set pstate.startikey to an offset to a + * key that comes after this key, by examining this key + */ + if (!(key->sk_flags & (SK_BT_REQFWD | SK_BT_REQBKWD))) + { + /* Scan key isn't marked required (corner case) */ + Assert(!(key->sk_flags & SK_ROW_HEADER)); + break; /* unsafe */ + } + if (key->sk_flags & SK_ROW_HEADER) + { + /* + * RowCompare inequality. + * + * Only the first subkey from a RowCompare can ever be marked + * required (that happens when the row header is marked required). + * There is no simple, general way for us to transitively deduce + * whether or not every tuple on the page satisfies a RowCompare + * key based only on firsttup and lasttup -- so we just give up. + */ + if (!start_past_saop_eq && !so->skipScan) + break; /* unsafe to go further */ + + /* + * We have to be even more careful with RowCompares that come + * after an array: we assume it's unsafe to even bypass the array. + * Calling _bt_start_array_keys to recover the scan's arrays + * following use of forcenonrequired mode isn't compatible with + * _bt_check_rowcompare's continuescan=false behavior with NULL + * row compare members. _bt_advance_array_keys must not make a + * decision on the basis of a key not being satisfied in the + * opposite-to-scan direction until the scan reaches a leaf page + * where the same key begins to be satisfied in scan direction. + * The _bt_first !used_all_subkeys behavior makes this limitation + * hard to work around some other way. + */ + return; /* completely unsafe to set pstate.startikey */ + } + if (key->sk_strategy != BTEqualStrategyNumber) + { + /* + * Scalar inequality key. + * + * It's definitely safe for _bt_checkkeys to avoid assessing this + * inequality when the page's first and last non-pivot tuples both + * satisfy the inequality (since the same must also be true of all + * the tuples in between these two). + * + * Unlike the "=" case, it doesn't matter if this attribute has + * more than one distinct value (though it _is_ necessary for any + * and all _prior_ attributes to contain no more than one distinct + * value amongst all of the tuples from pstate.page). + */ + if (key->sk_attno > firstchangingattnum) /* >, not >= */ + break; /* unsafe, preceding attr has multiple + * distinct values */ + + firstdatum = index_getattr(firsttup, key->sk_attno, tupdesc, &firstnull); + lastdatum = index_getattr(lasttup, key->sk_attno, tupdesc, &lastnull); + + if (key->sk_flags & SK_ISNULL) + { + /* IS NOT NULL key */ + Assert(key->sk_flags & SK_SEARCHNOTNULL); + + if (firstnull || lastnull) + break; /* unsafe */ + + /* Safe, IS NOT NULL key satisfied by every tuple */ + continue; + } + + /* Test firsttup */ + if (firstnull || + !DatumGetBool(FunctionCall2Coll(&key->sk_func, + key->sk_collation, firstdatum, + key->sk_argument))) + break; /* unsafe */ + + /* Test lasttup */ + if (lastnull || + !DatumGetBool(FunctionCall2Coll(&key->sk_func, + key->sk_collation, lastdatum, + key->sk_argument))) + break; /* unsafe */ + + /* Safe, scalar inequality satisfied by every tuple */ + continue; + } + + /* Some = key (could be a scalar = key, could be an array = key) */ + Assert(key->sk_strategy == BTEqualStrategyNumber); + + if (!(key->sk_flags & SK_SEARCHARRAY)) + { + /* + * Scalar = key (possibly an IS NULL key). + * + * It is unsafe to set pstate.startikey to an ikey beyond this + * key, unless the = key is satisfied by every possible tuple on + * the page (possible only when attribute has just one distinct + * value among all tuples on the page). + */ + if (key->sk_attno >= firstchangingattnum) + break; /* unsafe, multiple distinct attr values */ + + firstdatum = index_getattr(firsttup, key->sk_attno, tupdesc, + &firstnull); + if (key->sk_flags & SK_ISNULL) + { + /* IS NULL key */ + Assert(key->sk_flags & SK_SEARCHNULL); + + if (!firstnull) + break; /* unsafe */ + + /* Safe, IS NULL key satisfied by every tuple */ + continue; + } + if (firstnull || + !DatumGetBool(FunctionCall2Coll(&key->sk_func, + key->sk_collation, firstdatum, + key->sk_argument))) + break; /* unsafe */ + + /* Safe, scalar = key satisfied by every tuple */ + continue; + } + + /* = array key (could be a SAOP array, could be a skip array) */ + array = &so->arrayKeys[arrayidx++]; + Assert(array->scan_key == startikey); + if (array->num_elems != -1) + { + /* + * SAOP array = key. + * + * Handle this like we handle scalar = keys (though binary search + * for a matching element, to avoid relying on key's sk_argument). + */ + if (key->sk_attno >= firstchangingattnum) + break; /* unsafe, multiple distinct attr values */ + + firstdatum = index_getattr(firsttup, key->sk_attno, tupdesc, + &firstnull); + _bt_binsrch_array_skey(&so->orderProcs[startikey], + false, NoMovementScanDirection, + firstdatum, firstnull, array, key, + &result); + if (result != 0) + break; /* unsafe */ + + /* Safe, SAOP = key satisfied by every tuple */ + start_past_saop_eq = true; + continue; + } + + /* + * Skip array = key + */ + Assert(key->sk_flags & SK_BT_SKIP); + if (array->null_elem) + { + /* + * Non-range skip array = key. + * + * Safe, non-range skip array "satisfied" by every tuple on page + * (safe even when "key->sk_attno > firstchangingattnum"). + */ + continue; + } + + /* + * Range skip array = key. + * + * Handle this like we handle scalar inequality keys (but avoid using + * key's sk_argument directly, as in the SAOP array case). + */ + if (key->sk_attno > firstchangingattnum) /* >, not >= */ + break; /* unsafe, preceding attr has multiple + * distinct values */ + + firstdatum = index_getattr(firsttup, key->sk_attno, tupdesc, &firstnull); + lastdatum = index_getattr(lasttup, key->sk_attno, tupdesc, &lastnull); + + /* Test firsttup */ + _bt_binsrch_skiparray_skey(false, ForwardScanDirection, + firstdatum, firstnull, array, key, + &result); + if (result != 0) + break; /* unsafe */ + + /* Test lasttup */ + _bt_binsrch_skiparray_skey(false, ForwardScanDirection, + lastdatum, lastnull, array, key, + &result); + if (result != 0) + break; /* unsafe */ + + /* Safe, range skip array satisfied by every tuple on page */ + } + + /* + * Use of forcenonrequired is typically undesirable, since it'll force + * _bt_readpage caller to read every tuple on the page -- even though, in + * general, it might well be possible to end the scan on an earlier tuple. + * However, caller must use forcenonrequired when start_past_saop_eq=true, + * since the usual required array behavior might fail to roll over to the + * SAOP array. + * + * We always prefer forcenonrequired=true during scans with skip arrays + * (except on the first page of each primitive index scan), though -- even + * when "startikey == 0". That way, _bt_advance_array_keys's low-order + * key precheck optimization can always be used (unless on the first page + * of the scan). It seems slightly preferable to check more tuples when + * that allows us to do significantly less skip array maintenance. + */ + pstate->forcenonrequired = (start_past_saop_eq || so->skipScan); + pstate->startikey = startikey; + + /* + * _bt_readpage caller is required to call _bt_checkkeys against page's + * finaltup with forcenonrequired=false whenever we initially set + * forcenonrequired=true. That way the scan's arrays will reliably track + * its progress through the index's key space. + * + * We don't expect this when _bt_readpage caller has no finaltup due to + * its page being the rightmost (or the leftmost, during backwards scans). + * When we see that _bt_readpage has no finaltup, back out of everything. + */ + Assert(!pstate->forcenonrequired || so->numArrayKeys); + if (pstate->forcenonrequired && !pstate->finaltup) + { + pstate->forcenonrequired = false; + pstate->startikey = 0; + } +} + /* * Test whether an indextuple satisfies current scan condition. * @@ -1843,19 +2812,27 @@ _bt_oppodir_checkkeys(IndexScanDesc scan, ScanDirection dir, * by the current array key, or if they're truly unsatisfied (that is, if * they're unsatisfied by every possible array key). * - * Though we advance non-required array keys on our own, that shouldn't have - * any lasting consequences for the scan. By definition, non-required arrays - * have no fixed relationship with the scan's progress. (There are delicate - * considerations for non-required arrays when the arrays need to be advanced - * following our setting continuescan to false, but that doesn't concern us.) - * * Pass advancenonrequired=false to avoid all array related side effects. * This allows _bt_advance_array_keys caller to avoid infinite recursion. + * + * Pass forcenonrequired=true to instruct us to treat all keys as nonrequired. + * This is used to make it safe to temporarily stop properly maintaining the + * scan's required arrays. _bt_checkkeys caller (_bt_readpage, actually) + * determines a prefix of keys that must satisfy every possible corresponding + * index attribute value from its page, which is passed to us via *ikey arg + * (this is the first key that might be unsatisfied by tuples on the page). + * Obviously, we won't maintain any array keys from before *ikey, so it's + * quite possible for such arrays to "fall behind" the index's keyspace. + * Caller will need to "catch up" by passing forcenonrequired=true (alongside + * an *ikey=0) once the page's finaltup is reached. + * + * Note: it's safe to pass an *ikey > 0 with forcenonrequired=false, but only + * when caller determines that it won't affect array maintenance. */ static bool _bt_check_compare(IndexScanDesc scan, ScanDirection dir, IndexTuple tuple, int tupnatts, TupleDesc tupdesc, - bool advancenonrequired, bool prechecked, bool firstmatch, + bool advancenonrequired, bool forcenonrequired, bool *continuescan, int *ikey) { BTScanOpaque so = (BTScanOpaque) scan->opaque; @@ -1872,36 +2849,20 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, /* * Check if the key is required in the current scan direction, in the - * opposite scan direction _only_, or in neither direction + * opposite scan direction _only_, or in neither direction (except + * when we're forced to treat all scan keys as nonrequired) */ - if (((key->sk_flags & SK_BT_REQFWD) && ScanDirectionIsForward(dir)) || - ((key->sk_flags & SK_BT_REQBKWD) && ScanDirectionIsBackward(dir))) + if (forcenonrequired) + { + /* treating scan's keys as non-required */ + } + else if (((key->sk_flags & SK_BT_REQFWD) && ScanDirectionIsForward(dir)) || + ((key->sk_flags & SK_BT_REQBKWD) && ScanDirectionIsBackward(dir))) requiredSameDir = true; else if (((key->sk_flags & SK_BT_REQFWD) && ScanDirectionIsBackward(dir)) || ((key->sk_flags & SK_BT_REQBKWD) && ScanDirectionIsForward(dir))) requiredOppositeDirOnly = true; - /* - * If the caller told us the *continuescan flag is known to be true - * for the last item on the page, then we know the keys required for - * the current direction scan should be matched. Otherwise, the - * *continuescan flag would be set for the current item and - * subsequently the last item on the page accordingly. - * - * If the key is required for the opposite direction scan, we can skip - * the check if the caller tells us there was already at least one - * matching item on the page. Also, we require the *continuescan flag - * to be true for the last item on the page to know there are no - * NULLs. - * - * Both cases above work except for the row keys, where NULLs could be - * found in the middle of matching values. - */ - if (prechecked && - (requiredSameDir || (requiredOppositeDirOnly && firstmatch)) && - !(key->sk_flags & SK_ROW_HEADER)) - continue; - if (key->sk_attno > tupnatts) { /* @@ -1914,11 +2875,35 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, continue; } + /* + * A skip array scan key uses one of several sentinel values. We just + * fall back on _bt_tuple_before_array_skeys when we see such a value. + */ + if (key->sk_flags & (SK_BT_MINVAL | SK_BT_MAXVAL | + SK_BT_NEXT | SK_BT_PRIOR)) + { + Assert(key->sk_flags & SK_SEARCHARRAY); + Assert(key->sk_flags & SK_BT_SKIP); + Assert(requiredSameDir || forcenonrequired); + + /* + * Cannot fall back on _bt_tuple_before_array_skeys when we're + * treating the scan's keys as nonrequired, though. Just handle + * this like any other non-required equality-type array key. + */ + if (forcenonrequired) + return _bt_advance_array_keys(scan, NULL, tuple, tupnatts, + tupdesc, *ikey, false); + + *continuescan = false; + return false; + } + /* row-comparison keys need special processing */ if (key->sk_flags & SK_ROW_HEADER) { if (_bt_check_rowcompare(key, tuple, tupnatts, tupdesc, dir, - continuescan)) + forcenonrequired, continuescan)) continue; return false; } @@ -1939,6 +2924,7 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, else { Assert(key->sk_flags & SK_SEARCHNOTNULL); + Assert(!(key->sk_flags & SK_BT_SKIP)); if (!isNull) continue; /* tuple satisfies this qual */ } @@ -1950,15 +2936,37 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, */ if (requiredSameDir) *continuescan = false; + else if (unlikely(key->sk_flags & SK_BT_SKIP)) + { + /* + * If we're treating scan keys as nonrequired, and encounter a + * skip array scan key whose current element is NULL, then it + * must be a non-range skip array. It must be satisfied, so + * there's no need to call _bt_advance_array_keys to check. + */ + Assert(forcenonrequired && *ikey > 0); + continue; + } /* - * In any case, this indextuple doesn't match the qual. + * This indextuple doesn't match the qual. */ return false; } if (isNull) { + /* + * Scalar scan key isn't satisfied by NULL tuple value. + * + * If we're treating scan keys as nonrequired, and key is for a + * skip array, then we must attempt to advance the array to NULL + * (if we're successful then the tuple might match the qual). + */ + if (unlikely(forcenonrequired && key->sk_flags & SK_BT_SKIP)) + return _bt_advance_array_keys(scan, NULL, tuple, tupnatts, + tupdesc, *ikey, false); + if (key->sk_flags & SK_BT_NULLS_FIRST) { /* @@ -1973,7 +2981,7 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, * (_bt_advance_array_keys also relies on this behavior during * forward scans.) */ - if ((key->sk_flags & (SK_BT_REQFWD | SK_BT_REQBKWD)) && + if ((requiredSameDir || requiredOppositeDirOnly) && ScanDirectionIsBackward(dir)) *continuescan = false; } @@ -1991,26 +2999,18 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, * (_bt_advance_array_keys also relies on this behavior during * backward scans.) */ - if ((key->sk_flags & (SK_BT_REQFWD | SK_BT_REQBKWD)) && + if ((requiredSameDir || requiredOppositeDirOnly) && ScanDirectionIsForward(dir)) *continuescan = false; } /* - * In any case, this indextuple doesn't match the qual. + * This indextuple doesn't match the qual. */ return false; } - /* - * Apply the key-checking function, though only if we must. - * - * When a key is required in the opposite-of-scan direction _only_, - * then it must already be satisfied if firstmatch=true indicates that - * an earlier tuple from this same page satisfied it earlier on. - */ - if (!(requiredOppositeDirOnly && firstmatch) && - !DatumGetBool(FunctionCall2Coll(&key->sk_func, key->sk_collation, + if (!DatumGetBool(FunctionCall2Coll(&key->sk_func, key->sk_collation, datum, key->sk_argument))) { /* @@ -2060,7 +3060,8 @@ _bt_check_compare(IndexScanDesc scan, ScanDirection dir, */ static bool _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts, - TupleDesc tupdesc, ScanDirection dir, bool *continuescan) + TupleDesc tupdesc, ScanDirection dir, + bool forcenonrequired, bool *continuescan) { ScanKey subkey = (ScanKey) DatumGetPointer(skey->sk_argument); int32 cmpresult = 0; @@ -2100,7 +3101,11 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts, if (isNull) { - if (subkey->sk_flags & SK_BT_NULLS_FIRST) + if (forcenonrequired) + { + /* treating scan's keys as non-required */ + } + else if (subkey->sk_flags & SK_BT_NULLS_FIRST) { /* * Since NULLs are sorted before non-NULLs, we know we have @@ -2154,8 +3159,12 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts, */ Assert(subkey != (ScanKey) DatumGetPointer(skey->sk_argument)); subkey--; - if ((subkey->sk_flags & SK_BT_REQFWD) && - ScanDirectionIsForward(dir)) + if (forcenonrequired) + { + /* treating scan's keys as non-required */ + } + else if ((subkey->sk_flags & SK_BT_REQFWD) && + ScanDirectionIsForward(dir)) *continuescan = false; else if ((subkey->sk_flags & SK_BT_REQBKWD) && ScanDirectionIsBackward(dir)) @@ -2207,7 +3216,7 @@ _bt_check_rowcompare(ScanKey skey, IndexTuple tuple, int tupnatts, break; } - if (!result) + if (!result && !forcenonrequired) { /* * Tuple fails this qual. If it's a required qual for the current @@ -2251,6 +3260,8 @@ _bt_checkkeys_look_ahead(IndexScanDesc scan, BTReadPageState *pstate, OffsetNumber aheadoffnum; IndexTuple ahead; + Assert(!pstate->forcenonrequired); + /* Avoid looking ahead when comparing the page high key */ if (pstate->offnum < pstate->minoff) return; diff --git a/src/backend/access/nbtree/nbtvalidate.c b/src/backend/access/nbtree/nbtvalidate.c index dd6f5a15c653e..817ad358f0caa 100644 --- a/src/backend/access/nbtree/nbtvalidate.c +++ b/src/backend/access/nbtree/nbtvalidate.c @@ -106,6 +106,10 @@ btvalidate(Oid opclassoid) case BTOPTIONS_PROC: ok = check_amoptsproc_signature(procform->amproc); break; + case BTSKIPSUPPORT_PROC: + ok = check_amproc_signature(procform->amproc, VOIDOID, true, + 1, 1, INTERNALOID); + break; default: ereport(INFO, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), diff --git a/src/backend/access/rmgrdesc/xactdesc.c b/src/backend/access/rmgrdesc/xactdesc.c index 715cc1f7bad66..305598e2865c8 100644 --- a/src/backend/access/rmgrdesc/xactdesc.c +++ b/src/backend/access/rmgrdesc/xactdesc.c @@ -252,6 +252,8 @@ ParsePrepareRecord(uint8 info, xl_xact_prepare *xlrec, xl_xact_parsed_prepare *p parsed->nsubxacts = xlrec->nsubxacts; parsed->nrels = xlrec->ncommitrels; parsed->nabortrels = xlrec->nabortrels; + parsed->nstats = xlrec->ncommitstats; + parsed->nabortstats = xlrec->nabortstats; parsed->nmsgs = xlrec->ninvalmsgs; strncpy(parsed->twophase_gid, bufptr, xlrec->gidlen); diff --git a/src/backend/access/spgist/spgvacuum.c b/src/backend/access/spgist/spgvacuum.c index b3df2d8907495..2678f7ab7829a 100644 --- a/src/backend/access/spgist/spgvacuum.c +++ b/src/backend/access/spgist/spgvacuum.c @@ -827,7 +827,8 @@ spgvacuumscan(spgBulkDeleteState *bds) * It is safe to use batchmode as block_range_read_stream_cb takes no * locks. */ - stream = read_stream_begin_relation(READ_STREAM_FULL | + stream = read_stream_begin_relation(READ_STREAM_MAINTENANCE | + READ_STREAM_FULL | READ_STREAM_USE_BATCHING, bds->info->strategy, index, @@ -879,8 +880,6 @@ spgvacuumscan(spgBulkDeleteState *bds) spgprocesspending(bds); } - Assert(read_stream_next_buffer(stream, NULL) == InvalidBuffer); - /* * We have to reset the read stream to use it again. After returning * InvalidBuffer, the read stream API won't invoke our callback again diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 9d25a7df0d320..3c06ac45532f8 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -872,7 +872,7 @@ MultiXactIdCreateFromMembers(int nmembers, MultiXactMember *members) */ multi = GetNewMultiXactId(nmembers, &offset); - INJECTION_POINT_CACHED("multixact-create-from-members"); + INJECTION_POINT_CACHED("multixact-create-from-members", NULL); /* Make an XLOG entry describing the new MXID. */ xlrec.mid = multi; @@ -1287,7 +1287,7 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) * range, in which case an error would be raised. * * In all other cases, the passed multixact must be within the known valid - * range, that is, greater to or equal than oldestMultiXactId, and less than + * range, that is, greater than or equal to oldestMultiXactId, and less than * nextMXact. Otherwise, an error is raised. * * isLockOnly must be set to true if caller is certain that the given multi @@ -1486,7 +1486,7 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, LWLockRelease(lock); CHECK_FOR_INTERRUPTS(); - INJECTION_POINT("multixact-get-members-cv-sleep"); + INJECTION_POINT("multixact-get-members-cv-sleep", NULL); ConditionVariableSleep(&MultiXactState->nextoff_cv, WAIT_EVENT_MULTIXACT_CREATION); diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index fc30a52d496aa..1914859b2eed7 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -302,11 +302,6 @@ static bool doPageWrites; * so it's a plain spinlock. The other locks are held longer (potentially * over I/O operations), so we use LWLocks for them. These locks are: * - * WALBufMappingLock: must be held to replace a page in the WAL buffer cache. - * It is only held while initializing and changing the mapping. If the - * contents of the buffer being replaced haven't been written yet, the mapping - * lock is released while the write is done, and reacquired afterwards. - * * WALWriteLock: must be held to write WAL buffers to disk (XLogWrite or * XLogFlush). * @@ -473,21 +468,37 @@ typedef struct XLogCtlData pg_atomic_uint64 logFlushResult; /* last byte + 1 flushed */ /* - * Latest initialized page in the cache (last byte position + 1). + * First initialized page in the cache (first byte position). + */ + XLogRecPtr InitializedFrom; + + /* + * Latest reserved for initialization page in the cache (last byte + * position + 1). * - * To change the identity of a buffer (and InitializedUpTo), you need to - * hold WALBufMappingLock. To change the identity of a buffer that's + * To change the identity of a buffer, you need to advance + * InitializeReserved first. To change the identity of a buffer that's * still dirty, the old page needs to be written out first, and for that * you need WALWriteLock, and you need to ensure that there are no * in-progress insertions to the page by calling * WaitXLogInsertionsToFinish(). */ - XLogRecPtr InitializedUpTo; + pg_atomic_uint64 InitializeReserved; + + /* + * Latest initialized page in the cache (last byte position + 1). + * + * InitializedUpTo is updated after the buffer initialization. After + * update, waiters got notification using InitializedUpToCondVar. + */ + pg_atomic_uint64 InitializedUpTo; + ConditionVariable InitializedUpToCondVar; /* * These values do not change after startup, although the pointed-to pages - * and xlblocks values certainly do. xlblocks values are protected by - * WALBufMappingLock. + * and xlblocks values certainly do. xlblocks values are changed + * lock-free according to the check for the xlog write position and are + * accompanied by changes of InitializeReserved and InitializedUpTo. */ char *pages; /* buffers for unwritten XLOG pages */ pg_atomic_uint64 *xlblocks; /* 1st byte ptr-s + XLOG_BLCKSZ */ @@ -810,9 +821,9 @@ XLogInsertRecord(XLogRecData *rdata, * fullPageWrites from changing until the insertion is finished. * * Step 2 can usually be done completely in parallel. If the required WAL - * page is not initialized yet, you have to grab WALBufMappingLock to - * initialize it, but the WAL writer tries to do that ahead of insertions - * to avoid that from happening in the critical path. + * page is not initialized yet, you have to go through AdvanceXLInsertBuffer, + * which will ensure it is initialized. But the WAL writer tries to do that + * ahead of insertions to avoid that from happening in the critical path. * *---------- */ @@ -1991,32 +2002,79 @@ AdvanceXLInsertBuffer(XLogRecPtr upto, TimeLineID tli, bool opportunistic) XLogRecPtr NewPageEndPtr = InvalidXLogRecPtr; XLogRecPtr NewPageBeginPtr; XLogPageHeader NewPage; + XLogRecPtr ReservedPtr; int npages pg_attribute_unused() = 0; - LWLockAcquire(WALBufMappingLock, LW_EXCLUSIVE); - /* - * Now that we have the lock, check if someone initialized the page - * already. + * We must run the loop below inside the critical section as we expect + * XLogCtl->InitializedUpTo to eventually keep up. The most of callers + * already run inside the critical section. Except for WAL writer, which + * passed 'opportunistic == true', and therefore we don't perform + * operations that could error out. + * + * Start an explicit critical section anyway though. + */ + Assert(CritSectionCount > 0 || opportunistic); + START_CRIT_SECTION(); + + /*-- + * Loop till we get all the pages in WAL buffer before 'upto' reserved for + * initialization. Multiple process can initialize different buffers with + * this loop in parallel as following. + * + * 1. Reserve page for initialization using XLogCtl->InitializeReserved. + * 2. Initialize the reserved page. + * 3. Attempt to advance XLogCtl->InitializedUpTo, */ - while (upto >= XLogCtl->InitializedUpTo || opportunistic) + ReservedPtr = pg_atomic_read_u64(&XLogCtl->InitializeReserved); + while (upto >= ReservedPtr || opportunistic) { - nextidx = XLogRecPtrToBufIdx(XLogCtl->InitializedUpTo); + Assert(ReservedPtr % XLOG_BLCKSZ == 0); /* - * Get ending-offset of the buffer page we need to replace (this may - * be zero if the buffer hasn't been used yet). Fall through if it's - * already written out. + * Get ending-offset of the buffer page we need to replace. + * + * We don't lookup into xlblocks, but rather calculate position we + * must wait to be written. If it was written, xlblocks will have this + * position (or uninitialized) */ - OldPageRqstPtr = pg_atomic_read_u64(&XLogCtl->xlblocks[nextidx]); - if (LogwrtResult.Write < OldPageRqstPtr) + if (ReservedPtr + XLOG_BLCKSZ > XLogCtl->InitializedFrom + XLOG_BLCKSZ * XLOGbuffers) + OldPageRqstPtr = ReservedPtr + XLOG_BLCKSZ - (XLogRecPtr) XLOG_BLCKSZ * XLOGbuffers; + else + OldPageRqstPtr = InvalidXLogRecPtr; + + if (LogwrtResult.Write < OldPageRqstPtr && opportunistic) { /* - * Nope, got work to do. If we just want to pre-initialize as much - * as we can without flushing, give up now. + * If we just want to pre-initialize as much as we can without + * flushing, give up now. */ - if (opportunistic) - break; + upto = ReservedPtr - 1; + break; + } + + /* + * Attempt to reserve the page for initialization. Failure means that + * this page got reserved by another process. + */ + if (!pg_atomic_compare_exchange_u64(&XLogCtl->InitializeReserved, + &ReservedPtr, + ReservedPtr + XLOG_BLCKSZ)) + continue; + + /* + * Wait till page gets correctly initialized up to OldPageRqstPtr. + */ + nextidx = XLogRecPtrToBufIdx(ReservedPtr); + while (pg_atomic_read_u64(&XLogCtl->InitializedUpTo) < OldPageRqstPtr) + ConditionVariableSleep(&XLogCtl->InitializedUpToCondVar, WAIT_EVENT_WAL_BUFFER_INIT); + ConditionVariableCancelSleep(); + Assert(pg_atomic_read_u64(&XLogCtl->xlblocks[nextidx]) == OldPageRqstPtr); + + /* Fall through if it's already written out. */ + if (LogwrtResult.Write < OldPageRqstPtr) + { + /* Nope, got work to do. */ /* Advance shared memory write request position */ SpinLockAcquire(&XLogCtl->info_lck); @@ -2031,14 +2089,6 @@ AdvanceXLInsertBuffer(XLogRecPtr upto, TimeLineID tli, bool opportunistic) RefreshXLogWriteResult(LogwrtResult); if (LogwrtResult.Write < OldPageRqstPtr) { - /* - * Must acquire write lock. Release WALBufMappingLock first, - * to make sure that all insertions that we need to wait for - * can finish (up to this same position). Otherwise we risk - * deadlock. - */ - LWLockRelease(WALBufMappingLock); - WaitXLogInsertionsToFinish(OldPageRqstPtr); LWLockAcquire(WALWriteLock, LW_EXCLUSIVE); @@ -2060,9 +2110,6 @@ AdvanceXLInsertBuffer(XLogRecPtr upto, TimeLineID tli, bool opportunistic) pgWalUsage.wal_buffers_full++; TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY_DONE(); } - /* Re-acquire WALBufMappingLock and retry */ - LWLockAcquire(WALBufMappingLock, LW_EXCLUSIVE); - continue; } } @@ -2070,11 +2117,9 @@ AdvanceXLInsertBuffer(XLogRecPtr upto, TimeLineID tli, bool opportunistic) * Now the next buffer slot is free and we can set it up to be the * next output page. */ - NewPageBeginPtr = XLogCtl->InitializedUpTo; + NewPageBeginPtr = ReservedPtr; NewPageEndPtr = NewPageBeginPtr + XLOG_BLCKSZ; - Assert(XLogRecPtrToBufIdx(NewPageBeginPtr) == nextidx); - NewPage = (XLogPageHeader) (XLogCtl->pages + nextidx * (Size) XLOG_BLCKSZ); /* @@ -2138,12 +2183,100 @@ AdvanceXLInsertBuffer(XLogRecPtr upto, TimeLineID tli, bool opportunistic) */ pg_write_barrier(); + /*----- + * Update the value of XLogCtl->xlblocks[nextidx] and try to advance + * XLogCtl->InitializedUpTo in a lock-less manner. + * + * First, let's provide a formal proof of the algorithm. Let it be 'n' + * process with the following variables in shared memory: + * f - an array of 'n' boolean flags, + * v - atomic integer variable. + * + * Also, let + * i - a number of a process, + * j - local integer variable, + * CAS(var, oldval, newval) - compare-and-swap atomic operation + * returning true on success, + * write_barrier()/read_barrier() - memory barriers. + * + * The pseudocode for each process is the following. + * + * j := i + * f[i] := true + * write_barrier() + * while CAS(v, j, j + 1): + * j := j + 1 + * read_barrier() + * if not f[j]: + * break + * + * Let's prove that v eventually reaches the value of n. + * 1. Prove by contradiction. Assume v doesn't reach n and stucks + * on k, where k < n. + * 2. Process k attempts CAS(v, k, k + 1). 1). If, as we assumed, v + * gets stuck at k, then this CAS operation must fail. Therefore, + * v < k when process k attempts CAS(v, k, k + 1). + * 3. If, as we assumed, v gets stuck at k, then the value k of v + * must be achieved by some process m, where m < k. The process + * m must observe f[k] == false. Otherwise, it will later attempt + * CAS(v, k, k + 1) with success. + * 4. Therefore, corresponding read_barrier() (while j == k) on + * process m reached before write_barrier() of process k. But then + * process k attempts CAS(v, k, k + 1) after process m successfully + * incremented v to k, and that CAS operation must succeed. + * That leads to a contradiction. So, there is no such k (k < n) + * where v gets stuck. Q.E.D. + * + * To apply this proof to the code below, we assume + * XLogCtl->InitializedUpTo will play the role of v with XLOG_BLCKSZ + * granularity. We also assume setting XLogCtl->xlblocks[nextidx] to + * NewPageEndPtr to play the role of setting f[i] to true. Also, note + * that processes can't concurrently map different xlog locations to + * the same nextidx because we previously requested that + * XLogCtl->InitializedUpTo >= OldPageRqstPtr. So, a xlog buffer can + * be taken for initialization only once the previous initialization + * takes effect on XLogCtl->InitializedUpTo. + */ + pg_atomic_write_u64(&XLogCtl->xlblocks[nextidx], NewPageEndPtr); - XLogCtl->InitializedUpTo = NewPageEndPtr; + + pg_write_barrier(); + + while (pg_atomic_compare_exchange_u64(&XLogCtl->InitializedUpTo, &NewPageBeginPtr, NewPageEndPtr)) + { + NewPageBeginPtr = NewPageEndPtr; + NewPageEndPtr = NewPageBeginPtr + XLOG_BLCKSZ; + nextidx = XLogRecPtrToBufIdx(NewPageBeginPtr); + + pg_read_barrier(); + + if (pg_atomic_read_u64(&XLogCtl->xlblocks[nextidx]) != NewPageEndPtr) + { + /* + * Page at nextidx wasn't initialized yet, so we can't move + * InitializedUpto further. It will be moved by backend which + * will initialize nextidx. + */ + ConditionVariableBroadcast(&XLogCtl->InitializedUpToCondVar); + break; + } + } npages++; } - LWLockRelease(WALBufMappingLock); + + END_CRIT_SECTION(); + + /* + * All the pages in WAL buffer before 'upto' were reserved for + * initialization. However, some pages might be reserved by concurrent + * processes. Wait till they finish initialization. + */ + while (upto >= pg_atomic_read_u64(&XLogCtl->InitializedUpTo)) + ConditionVariableSleep(&XLogCtl->InitializedUpToCondVar, WAIT_EVENT_WAL_BUFFER_INIT); + ConditionVariableCancelSleep(); + + pg_read_barrier(); #ifdef WAL_DEBUG if (XLOG_DEBUG && npages > 0) @@ -5071,6 +5204,10 @@ XLOGShmemInit(void) pg_atomic_init_u64(&XLogCtl->logWriteResult, InvalidXLogRecPtr); pg_atomic_init_u64(&XLogCtl->logFlushResult, InvalidXLogRecPtr); pg_atomic_init_u64(&XLogCtl->unloggedLSN, InvalidXLogRecPtr); + + pg_atomic_init_u64(&XLogCtl->InitializeReserved, InvalidXLogRecPtr); + pg_atomic_init_u64(&XLogCtl->InitializedUpTo, InvalidXLogRecPtr); + ConditionVariableInit(&XLogCtl->InitializedUpToCondVar); } /* @@ -6090,7 +6227,8 @@ StartupXLOG(void) memset(page + len, 0, XLOG_BLCKSZ - len); pg_atomic_write_u64(&XLogCtl->xlblocks[firstIdx], endOfRecoveryInfo->lastPageBeginPtr + XLOG_BLCKSZ); - XLogCtl->InitializedUpTo = endOfRecoveryInfo->lastPageBeginPtr + XLOG_BLCKSZ; + pg_atomic_write_u64(&XLogCtl->InitializedUpTo, endOfRecoveryInfo->lastPageBeginPtr + XLOG_BLCKSZ); + XLogCtl->InitializedFrom = endOfRecoveryInfo->lastPageBeginPtr; } else { @@ -6099,8 +6237,10 @@ StartupXLOG(void) * let the first attempt to insert a log record to initialize the next * buffer. */ - XLogCtl->InitializedUpTo = EndOfLog; + pg_atomic_write_u64(&XLogCtl->InitializedUpTo, EndOfLog); + XLogCtl->InitializedFrom = EndOfLog; } + pg_atomic_write_u64(&XLogCtl->InitializeReserved, pg_atomic_read_u64(&XLogCtl->InitializedUpTo)); /* * Update local and shared status. This is OK to do without any locks @@ -7742,7 +7882,7 @@ CreateRestartPoint(int flags) * This location needs to be after CheckPointGuts() to ensure that some * work has already happened during this checkpoint. */ - INJECTION_POINT("create-restart-point"); + INJECTION_POINT("create-restart-point", NULL); /* * Remember the prior checkpoint's redo ptr for diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 0aa3ab59085ad..6ce979f2d8bc4 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -291,6 +291,11 @@ static bool backupEndRequired = false; * Consistent state means that the system is internally consistent, all * the WAL has been replayed up to a certain point, and importantly, there * is no trace of later actions on disk. + * + * This flag is used only by the startup process and postmaster. When + * minRecoveryPoint is reached, the startup process sets it to true and + * sends a PMSIGNAL_RECOVERY_CONSISTENT signal to the postmaster, + * which then sets it to true upon receiving the signal. */ bool reachedConsistency = false; @@ -2248,6 +2253,7 @@ CheckRecoveryConsistency(void) CheckTablespaceDirectory(); reachedConsistency = true; + SendPostmasterSignal(PMSIGNAL_RECOVERY_CONSISTENT); ereport(LOG, (errmsg("consistent recovery state reached at %X/%X", LSN_FORMAT_ARGS(lastReplayedEndRecPtr)))); diff --git a/src/backend/backup/basebackup.c b/src/backend/backup/basebackup.c index 891637e3a4495..f0f88838dc21a 100644 --- a/src/backend/backup/basebackup.c +++ b/src/backend/backup/basebackup.c @@ -1349,7 +1349,7 @@ sendDir(bbsink *sink, const char *path, int basepathlen, bool sizeonly, snprintf(pathbuf, sizeof(pathbuf), "%s/%s", path, de->d_name); /* Skip pg_control here to back up it last */ - if (strcmp(pathbuf, "./global/pg_control") == 0) + if (strcmp(pathbuf, "./" XLOG_CONTROL_FILE) == 0) continue; if (lstat(pathbuf, &statbuf) != 0) diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 02a754cc30a70..9ca8a88dc9104 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -1005,6 +1005,10 @@ ExecAlterDefaultPrivilegesStmt(ParseState *pstate, AlterDefaultPrivilegesStmt *s all_privileges = ACL_ALL_RIGHTS_SCHEMA; errormsg = gettext_noop("invalid privilege type %s for schema"); break; + case OBJECT_LARGEOBJECT: + all_privileges = ACL_ALL_RIGHTS_LARGEOBJECT; + errormsg = gettext_noop("invalid privilege type %s for large object"); + break; default: elog(ERROR, "unrecognized GrantStmt.objtype: %d", (int) action->objtype); @@ -1196,6 +1200,16 @@ SetDefaultACL(InternalDefaultACL *iacls) this_privileges = ACL_ALL_RIGHTS_SCHEMA; break; + case OBJECT_LARGEOBJECT: + if (OidIsValid(iacls->nspid)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_GRANT_OPERATION), + errmsg("cannot use IN SCHEMA clause when using GRANT/REVOKE ON LARGE OBJECTS"))); + objtype = DEFACLOBJ_LARGEOBJECT; + if (iacls->all_privs && this_privileges == ACL_NO_RIGHTS) + this_privileges = ACL_ALL_RIGHTS_LARGEOBJECT; + break; + default: elog(ERROR, "unrecognized object type: %d", (int) iacls->objtype); @@ -1439,6 +1453,9 @@ RemoveRoleFromObjectACL(Oid roleid, Oid classid, Oid objid) case DEFACLOBJ_NAMESPACE: iacls.objtype = OBJECT_SCHEMA; break; + case DEFACLOBJ_LARGEOBJECT: + iacls.objtype = OBJECT_LARGEOBJECT; + break; default: /* Shouldn't get here */ elog(ERROR, "unexpected default ACL type: %d", @@ -4250,6 +4267,10 @@ get_user_default_acl(ObjectType objtype, Oid ownerId, Oid nsp_oid) defaclobjtype = DEFACLOBJ_NAMESPACE; break; + case OBJECT_LARGEOBJECT: + defaclobjtype = DEFACLOBJ_LARGEOBJECT; + break; + default: return NULL; } diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c index a6edf614606ed..59caae8f1bc23 100644 --- a/src/backend/catalog/catalog.c +++ b/src/backend/catalog/catalog.c @@ -34,6 +34,7 @@ #include "catalog/pg_namespace.h" #include "catalog/pg_parameter_acl.h" #include "catalog/pg_replication_origin.h" +#include "catalog/pg_seclabel.h" #include "catalog/pg_shdepend.h" #include "catalog/pg_shdescription.h" #include "catalog/pg_shseclabel.h" @@ -135,6 +136,36 @@ IsCatalogRelationOid(Oid relid) return (relid < (Oid) FirstUnpinnedObjectId); } +/* + * IsCatalogTextUniqueIndexOid + * True iff the relation identified by this OID is a catalog UNIQUE index + * having a column of type "text". + * + * The relcache must not use these indexes. Inserting into any UNIQUE + * index compares index keys while holding BUFFER_LOCK_EXCLUSIVE. + * bttextcmp() can search the COLLOID catcache. Depending on concurrent + * invalidation traffic, catcache can reach relcache builds. A backend + * would self-deadlock on LWLocks if the relcache build read the + * exclusive-locked buffer. + * + * To avoid being itself the cause of self-deadlock, this doesn't read + * catalogs. Instead, it uses a hard-coded list with a supporting + * regression test. + */ +bool +IsCatalogTextUniqueIndexOid(Oid relid) +{ + switch (relid) + { + case ParameterAclParnameIndexId: + case ReplicationOriginNameIndex: + case SecLabelObjectIndexId: + case SharedSecLabelObjectIndexId: + return true; + } + return false; +} + /* * IsInplaceUpdateRelation * True iff core code performs inplace updates on the relation. @@ -315,8 +346,6 @@ IsSharedRelation(Oid relationId) relationId == PgDbRoleSettingToastIndex || relationId == PgParameterAclToastTable || relationId == PgParameterAclToastIndex || - relationId == PgReplicationOriginToastTable || - relationId == PgReplicationOriginToastIndex || relationId == PgShdescriptionToastTable || relationId == PgShdescriptionToastIndex || relationId == PgShseclabelToastTable || diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index b807ab666689f..fbaed5359ad7c 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -2616,12 +2616,17 @@ AddRelationNewConstraints(Relation rel, errmsg("cannot add not-null constraint on system column \"%s\"", strVal(linitial(cdef->keys)))); + Assert(cdef->initially_valid != cdef->skip_validation); + /* * If the column already has a not-null constraint, we don't want - * to add another one; just adjust inheritance status as needed. + * to add another one; adjust inheritance status as needed. This + * also checks whether the existing constraint matches the + * requested validity. */ if (AdjustNotNullInheritance(RelationGetRelid(rel), colnum, - is_local, cdef->is_no_inherit)) + is_local, cdef->is_no_inherit, + cdef->skip_validation)) continue; /* diff --git a/src/backend/catalog/objectaddress.c b/src/backend/catalog/objectaddress.c index d8eb8d3deaa9e..b63fd57dc04bb 100644 --- a/src/backend/catalog/objectaddress.c +++ b/src/backend/catalog/objectaddress.c @@ -2005,16 +2005,20 @@ get_object_address_defacl(List *object, bool missing_ok) case DEFACLOBJ_NAMESPACE: objtype_str = "schemas"; break; + case DEFACLOBJ_LARGEOBJECT: + objtype_str = "large objects"; + break; default: ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("unrecognized default ACL object type \"%c\"", objtype), - errhint("Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\".", + errhint("Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\", \"%c\".", DEFACLOBJ_RELATION, DEFACLOBJ_SEQUENCE, DEFACLOBJ_FUNCTION, DEFACLOBJ_TYPE, - DEFACLOBJ_NAMESPACE))); + DEFACLOBJ_NAMESPACE, + DEFACLOBJ_LARGEOBJECT))); } /* @@ -3844,6 +3848,12 @@ getObjectDescription(const ObjectAddress *object, bool missing_ok) _("default privileges on new schemas belonging to role %s"), rolename); break; + case DEFACLOBJ_LARGEOBJECT: + Assert(!nspname); + appendStringInfo(&buffer, + _("default privileges on new large objects belonging to role %s"), + rolename); + break; default: /* shouldn't get here */ if (nspname) @@ -5766,6 +5776,10 @@ getObjectIdentityParts(const ObjectAddress *object, appendStringInfoString(&buffer, " on schemas"); break; + case DEFACLOBJ_LARGEOBJECT: + appendStringInfoString(&buffer, + " on large objects"); + break; } if (objname) diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c index bcf4050f5b161..a05f8a87c1f83 100644 --- a/src/backend/catalog/pg_aggregate.c +++ b/src/backend/catalog/pg_aggregate.c @@ -637,6 +637,7 @@ AggregateCreate(const char *aggName, parameterNames, /* parameterNames */ parameterDefaults, /* parameterDefaults */ PointerGetDatum(NULL), /* trftypes */ + NIL, /* trfoids */ PointerGetDatum(NULL), /* proconfig */ InvalidOid, /* no prosupport */ 1, /* procost */ diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c index ac80652baf25d..2d5ac1ea8138b 100644 --- a/src/backend/catalog/pg_constraint.c +++ b/src/backend/catalog/pg_constraint.c @@ -100,8 +100,9 @@ CreateConstraintEntry(const char *constraintName, ObjectAddresses *addrs_auto; ObjectAddresses *addrs_normal; - /* Only CHECK constraint can be not enforced */ - Assert(isEnforced || constraintType == CONSTRAINT_CHECK); + /* Only CHECK or FOREIGN KEY constraint can be not enforced */ + Assert(isEnforced || constraintType == CONSTRAINT_CHECK || + constraintType == CONSTRAINT_FOREIGN); /* NOT ENFORCED constraint must be NOT VALID */ Assert(isEnforced || !isValidated); @@ -128,8 +129,9 @@ CreateConstraintEntry(const char *constraintName, if (foreignNKeys > 0) { Datum *fkdatums; + int nkeys = Max(foreignNKeys, numFkDeleteSetCols); - fkdatums = (Datum *) palloc(foreignNKeys * sizeof(Datum)); + fkdatums = (Datum *) palloc(nkeys * sizeof(Datum)); for (i = 0; i < foreignNKeys; i++) fkdatums[i] = Int16GetDatum(foreignKey[i]); confkeyArray = construct_array_builtin(fkdatums, foreignNKeys, INT2OID); @@ -493,6 +495,8 @@ ConstraintNameExists(const char *conname, Oid namespaceid) * name1, name2, and label are used the same way as for makeObjectName(), * except that the label can't be NULL; digits will be appended to the label * if needed to create a name that is unique within the specified namespace. + * If the given label is empty, we only consider names that include at least + * one added digit. * * 'others' can be a list of string names already chosen within the current * command (but not yet reflected into the catalogs); we will not choose @@ -521,8 +525,11 @@ ChooseConstraintName(const char *name1, const char *name2, conDesc = table_open(ConstraintRelationId, AccessShareLock); - /* try the unmodified label first */ - strlcpy(modlabel, label, sizeof(modlabel)); + /* try the unmodified label first, unless it's empty */ + if (label[0] != '\0') + strlcpy(modlabel, label, sizeof(modlabel)); + else + snprintf(modlabel, sizeof(modlabel), "%s%d", label, ++pass); for (;;) { @@ -574,8 +581,8 @@ ChooseConstraintName(const char *name1, const char *name2, /* * Find and return a copy of the pg_constraint tuple that implements a - * validated not-null constraint for the given column of the given relation. - * If no such constraint exists, return NULL. + * (possibly not valid) not-null constraint for the given column of the + * given relation. If no such constraint exists, return NULL. * * XXX This would be easier if we had pg_attribute.notnullconstr with the OID * of the constraint that implements the not-null constraint for that column. @@ -604,13 +611,11 @@ findNotNullConstraintAttnum(Oid relid, AttrNumber attnum) AttrNumber conkey; /* - * We're looking for a NOTNULL constraint that's marked validated, - * with the column we're looking for as the sole element in conkey. + * We're looking for a NOTNULL constraint with the column we're + * looking for as the sole element in conkey. */ if (con->contype != CONSTRAINT_NOTNULL) continue; - if (!con->convalidated) - continue; conkey = extractNotNullColumn(conTup); if (conkey != attnum) @@ -628,9 +633,10 @@ findNotNullConstraintAttnum(Oid relid, AttrNumber attnum) } /* - * Find and return the pg_constraint tuple that implements a validated - * not-null constraint for the given column of the given relation. If - * no such column or no such constraint exists, return NULL. + * Find and return a copy of the pg_constraint tuple that implements a + * (possibly not valid) not-null constraint for the given column of the + * given relation. + * If no such column or no such constraint exists, return NULL. */ HeapTuple findNotNullConstraint(Oid relid, const char *colname) @@ -721,15 +727,19 @@ extractNotNullColumn(HeapTuple constrTup) * * If no not-null constraint is found for the column, return false. * Caller can create one. + * * If a constraint exists but the connoinherit flag is not what the caller - * wants, throw an error about the incompatibility. Otherwise, we adjust - * conislocal/coninhcount and return true. - * In the latter case, if is_local is true we flip conislocal true, or do - * nothing if it's already true; otherwise we increment coninhcount by 1. + * wants, throw an error about the incompatibility. If the desired + * constraint is valid but the existing constraint is not valid, also + * throw an error about that (the opposite case is acceptable). + * + * If everything checks out, we adjust conislocal/coninhcount and return + * true. If is_local is true we flip conislocal true, or do nothing if + * it's already true; otherwise we increment coninhcount by 1. */ bool AdjustNotNullInheritance(Oid relid, AttrNumber attnum, - bool is_local, bool is_no_inherit) + bool is_local, bool is_no_inherit, bool is_notvalid) { HeapTuple tup; @@ -751,7 +761,21 @@ AdjustNotNullInheritance(Oid relid, AttrNumber attnum, ereport(ERROR, errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot change NO INHERIT status of NOT NULL constraint \"%s\" on relation \"%s\"", - NameStr(conform->conname), get_rel_name(relid))); + NameStr(conform->conname), get_rel_name(relid)), + errhint("You might need to make the existing constraint inheritable using %s.", + "ALTER TABLE ... ALTER CONSTRAINT ... INHERIT")); + + /* + * Throw an error if the existing constraint is NOT VALID and caller + * wants a valid one. + */ + if (!is_notvalid && !conform->convalidated) + ereport(ERROR, + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("incompatible NOT VALID constraint \"%s\" on relation \"%s\"", + NameStr(conform->conname), get_rel_name(relid)), + errhint("You might need to validate it using %s.", + "ALTER TABLE ... VALIDATE CONSTRAINT")); if (!is_local) { @@ -830,7 +854,7 @@ RelationGetNotNullConstraints(Oid relid, bool cooked, bool include_noinh) cooked->attnum = colnum; cooked->expr = NULL; cooked->is_enforced = true; - cooked->skip_validation = false; + cooked->skip_validation = !conForm->convalidated; cooked->is_local = true; cooked->inhcount = 0; cooked->is_no_inherit = conForm->connoinherit; @@ -850,7 +874,7 @@ RelationGetNotNullConstraints(Oid relid, bool cooked, bool include_noinh) constr->keys = list_make1(makeString(get_attname(relid, colnum, false))); constr->is_enforced = true; - constr->skip_validation = false; + constr->skip_validation = !conForm->convalidated; constr->initially_valid = true; constr->is_no_inherit = conForm->connoinherit; notnulls = lappend(notnulls, constr); diff --git a/src/backend/catalog/pg_largeobject.c b/src/backend/catalog/pg_largeobject.c index 0a477a8e8a920..89fc810215099 100644 --- a/src/backend/catalog/pg_largeobject.c +++ b/src/backend/catalog/pg_largeobject.c @@ -20,6 +20,7 @@ #include "catalog/pg_largeobject.h" #include "catalog/pg_largeobject_metadata.h" #include "miscadmin.h" +#include "utils/acl.h" #include "utils/fmgroids.h" #include "utils/rel.h" @@ -39,6 +40,8 @@ LargeObjectCreate(Oid loid) Oid loid_new; Datum values[Natts_pg_largeobject_metadata]; bool nulls[Natts_pg_largeobject_metadata]; + Oid ownerId; + Acl *lomacl; pg_lo_meta = table_open(LargeObjectMetadataRelationId, RowExclusiveLock); @@ -55,11 +58,18 @@ LargeObjectCreate(Oid loid) loid_new = GetNewOidWithIndex(pg_lo_meta, LargeObjectMetadataOidIndexId, Anum_pg_largeobject_metadata_oid); + ownerId = GetUserId(); + lomacl = get_user_default_acl(OBJECT_LARGEOBJECT, ownerId, InvalidOid); values[Anum_pg_largeobject_metadata_oid - 1] = ObjectIdGetDatum(loid_new); values[Anum_pg_largeobject_metadata_lomowner - 1] - = ObjectIdGetDatum(GetUserId()); - nulls[Anum_pg_largeobject_metadata_lomacl - 1] = true; + = ObjectIdGetDatum(ownerId); + + if (lomacl != NULL) + values[Anum_pg_largeobject_metadata_lomacl - 1] + = PointerGetDatum(lomacl); + else + nulls[Anum_pg_largeobject_metadata_lomacl - 1] = true; ntup = heap_form_tuple(RelationGetDescr(pg_lo_meta), values, nulls); @@ -70,6 +80,10 @@ LargeObjectCreate(Oid loid) table_close(pg_lo_meta, RowExclusiveLock); + /* dependencies on roles mentioned in default ACL */ + recordDependencyOnNewAcl(LargeObjectRelationId, loid_new, 0, + ownerId, lomacl); + return loid_new; } diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index fe0490259e9ef..5fdcf24d5f8de 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -26,7 +26,6 @@ #include "catalog/pg_proc.h" #include "catalog/pg_transform.h" #include "catalog/pg_type.h" -#include "commands/defrem.h" #include "executor/functions.h" #include "funcapi.h" #include "mb/pg_wchar.h" @@ -61,6 +60,35 @@ static bool match_prosrc_to_literal(const char *prosrc, const char *literal, /* ---------------------------------------------------------------- * ProcedureCreate * + * procedureName: string name of routine (proname) + * procNamespace: OID of namespace (pronamespace) + * replace: true to allow replacement of an existing pg_proc entry + * returnsSet: returns set? (proretset) + * returnType: OID of result type (prorettype) + * proowner: OID of owner role (proowner) + * languageObjectId: OID of function language (prolang) + * languageValidator: OID of validator function to apply, if any + * prosrc: string form of function definition (prosrc) + * probin: string form of binary reference, or NULL (probin) + * prosqlbody: Node tree of pre-parsed SQL body, or NULL (prosqlbody) + * prokind: function/aggregate/procedure/etc code (prokind) + * security_definer: security definer? (prosecdef) + * isLeakProof: leak proof? (proleakproof) + * isStrict: strict? (proisstrict) + * volatility: volatility code (provolatile) + * parallel: parallel safety code (proparallel) + * parameterTypes: input parameter types, as an oidvector (proargtypes) + * allParameterTypes: all parameter types, as an OID array (proallargtypes) + * parameterModes: parameter modes, as a "char" array (proargmodes) + * parameterNames: parameter names, as a text array (proargnames) + * parameterDefaults: defaults, as a List of Node trees (proargdefaults) + * trftypes: transformable type OIDs, as an OID array (protrftypes) + * trfoids: List of transform OIDs that routine should depend on + * proconfig: GUC set clauses, as a text array (proconfig) + * prosupport: OID of support function, if any (prosupport) + * procost: cost factor (procost) + * prorows: estimated output rows for a SRF (prorows) + * * Note: allParameterTypes, parameterModes, parameterNames, trftypes, and proconfig * are either arrays of the proper types or NULL. We declare them Datum, * not "ArrayType *", to avoid importing array.h into pg_proc.h. @@ -90,6 +118,7 @@ ProcedureCreate(const char *procedureName, Datum parameterNames, List *parameterDefaults, Datum trftypes, + List *trfoids, Datum proconfig, Oid prosupport, float4 procost, @@ -115,7 +144,6 @@ ProcedureCreate(const char *procedureName, referenced; char *detailmsg; int i; - Oid trfid; ObjectAddresses *addrs; /* @@ -609,25 +637,18 @@ ProcedureCreate(const char *procedureName, ObjectAddressSet(referenced, TypeRelationId, returnType); add_exact_object_address(&referenced, addrs); - /* dependency on transform used by return type, if any */ - if ((trfid = get_transform_oid(returnType, languageObjectId, true))) - { - ObjectAddressSet(referenced, TransformRelationId, trfid); - add_exact_object_address(&referenced, addrs); - } - /* dependency on parameter types */ for (i = 0; i < allParamCount; i++) { ObjectAddressSet(referenced, TypeRelationId, allParams[i]); add_exact_object_address(&referenced, addrs); + } - /* dependency on transform used by parameter type, if any */ - if ((trfid = get_transform_oid(allParams[i], languageObjectId, true))) - { - ObjectAddressSet(referenced, TransformRelationId, trfid); - add_exact_object_address(&referenced, addrs); - } + /* dependency on transforms, if any */ + foreach_oid(transformid, trfoids) + { + ObjectAddressSet(referenced, TransformRelationId, transformid); + add_exact_object_address(&referenced, addrs); } /* dependency on support function, if any */ @@ -960,7 +981,7 @@ fmgr_sql_validator(PG_FUNCTION_ARGS) (void) check_sql_fn_retval(querytree_list, rettype, rettupdesc, proc->prokind, - false, NULL); + false); } error_context_stack = sqlerrcontext.previous; diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt index 2f250d2c57bf3..ebe85337c2877 100644 --- a/src/backend/catalog/sql_features.txt +++ b/src/backend/catalog/sql_features.txt @@ -281,7 +281,7 @@ F461 Named character sets NO F471 Scalar subquery values YES F481 Expanded NULL predicate YES F491 Constraint management YES -F492 Optional table constraint enforcement NO check constraints only +F492 Optional table constraint enforcement YES except not-null constraints F501 Features and conformance views YES F501 Features and conformance views 01 SQL_FEATURES view YES F501 Features and conformance views 02 SQL_SIZING view YES diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index 64a7240aa772e..08f780a2e6382 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -658,6 +658,14 @@ GRANT SELECT ON pg_shmem_allocations TO pg_read_all_stats; REVOKE EXECUTE ON FUNCTION pg_get_shmem_allocations() FROM PUBLIC; GRANT EXECUTE ON FUNCTION pg_get_shmem_allocations() TO pg_read_all_stats; +CREATE VIEW pg_shmem_allocations_numa AS + SELECT * FROM pg_get_shmem_allocations_numa(); + +REVOKE ALL ON pg_shmem_allocations_numa FROM PUBLIC; +GRANT SELECT ON pg_shmem_allocations_numa TO pg_read_all_stats; +REVOKE EXECUTE ON FUNCTION pg_get_shmem_allocations_numa() FROM PUBLIC; +GRANT EXECUTE ON FUNCTION pg_get_shmem_allocations_numa() TO pg_read_all_stats; + CREATE VIEW pg_backend_memory_contexts AS SELECT * FROM pg_get_backend_memory_contexts(); @@ -1025,6 +1033,7 @@ CREATE VIEW pg_replication_slots AS L.wal_status, L.safe_wal_size, L.two_phase, + L.two_phase_at, L.inactive_since, L.conflicting, L.invalidation_reason, diff --git a/src/backend/commands/copyto.c b/src/backend/commands/copyto.c index 84a3f3879a870..ea6f18f2c8008 100644 --- a/src/backend/commands/copyto.c +++ b/src/backend/commands/copyto.c @@ -653,11 +653,14 @@ BeginCopyTo(ParseState *pstate, RelationGetRelationName(rel)), errhint("Try the COPY (SELECT ...) TO variant."))); else if (rel->rd_rel->relkind == RELKIND_MATVIEW) - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot copy from materialized view \"%s\"", - RelationGetRelationName(rel)), - errhint("Try the COPY (SELECT ...) TO variant."))); + { + if (!RelationIsPopulated(rel)) + ereport(ERROR, + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot copy from unpopulated materialized view \"%s\"", + RelationGetRelationName(rel)), + errhint("Use the REFRESH MATERIALIZED VIEW command.")); + } else if (rel->rd_rel->relkind == RELKIND_FOREIGN_TABLE) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -832,7 +835,7 @@ BeginCopyTo(ParseState *pstate, ((DR_copy *) dest)->cstate = cstate; /* Create a QueryDesc requesting no output */ - cstate->queryDesc = CreateQueryDesc(plan, NULL, pstate->p_sourcetext, + cstate->queryDesc = CreateQueryDesc(plan, pstate->p_sourcetext, GetActiveSnapshot(), InvalidSnapshot, dest, NULL, NULL, 0); @@ -842,8 +845,7 @@ BeginCopyTo(ParseState *pstate, * * ExecutorStart computes a result tupdesc for us */ - if (!ExecutorStart(cstate->queryDesc, 0)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(cstate->queryDesc, 0); tupDesc = cstate->queryDesc->tupDesc; } diff --git a/src/backend/commands/createas.c b/src/backend/commands/createas.c index 0a4155773eb5f..dfd2ab8e8628c 100644 --- a/src/backend/commands/createas.c +++ b/src/backend/commands/createas.c @@ -334,13 +334,12 @@ ExecCreateTableAs(ParseState *pstate, CreateTableAsStmt *stmt, UpdateActiveSnapshotCommandId(); /* Create a QueryDesc, redirecting output to our tuple receiver */ - queryDesc = CreateQueryDesc(plan, NULL, pstate->p_sourcetext, + queryDesc = CreateQueryDesc(plan, pstate->p_sourcetext, GetActiveSnapshot(), InvalidSnapshot, dest, params, queryEnv, 0); /* call ExecutorStart to prepare the plan for execution */ - if (!ExecutorStart(queryDesc, GetIntoRelEFlags(into))) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(queryDesc, GetIntoRelEFlags(into)); /* run the plan to completion */ ExecutorRun(queryDesc, ForwardScanDirection, 0); diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index ef8aa489af8d2..bfa83fbc3fec8 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -369,8 +369,7 @@ standard_ExplainOneQuery(Query *query, int cursorOptions, } /* run it (if needed) and produce output */ - ExplainOnePlan(plan, NULL, NULL, -1, into, es, queryString, params, - queryEnv, + ExplainOnePlan(plan, into, es, queryString, params, queryEnv, &planduration, (es->buffers ? &bufusage : NULL), es->memory ? &mem_counters : NULL); } @@ -492,9 +491,7 @@ ExplainOneUtility(Node *utilityStmt, IntoClause *into, ExplainState *es, * to call it. */ void -ExplainOnePlan(PlannedStmt *plannedstmt, CachedPlan *cplan, - CachedPlanSource *plansource, int query_index, - IntoClause *into, ExplainState *es, +ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv, const instr_time *planduration, const BufferUsage *bufusage, @@ -550,7 +547,7 @@ ExplainOnePlan(PlannedStmt *plannedstmt, CachedPlan *cplan, dest = None_Receiver; /* Create a QueryDesc for the query */ - queryDesc = CreateQueryDesc(plannedstmt, cplan, queryString, + queryDesc = CreateQueryDesc(plannedstmt, queryString, GetActiveSnapshot(), InvalidSnapshot, dest, params, queryEnv, instrument_option); @@ -564,17 +561,8 @@ ExplainOnePlan(PlannedStmt *plannedstmt, CachedPlan *cplan, if (into) eflags |= GetIntoRelEFlags(into); - /* Prepare the plan for execution. */ - if (queryDesc->cplan) - { - ExecutorStartCachedPlan(queryDesc, eflags, plansource, query_index); - Assert(queryDesc->planstate); - } - else - { - if (!ExecutorStart(queryDesc, eflags)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); - } + /* call ExecutorStart to prepare the plan for execution */ + ExecutorStart(queryDesc, eflags); /* Execute the plan for statistics if asked for */ if (es->analyze) @@ -1232,6 +1220,10 @@ ExplainPreScanNode(PlanState *planstate, Bitmapset **rels_used) if (((ModifyTable *) plan)->exclRelRTI) *rels_used = bms_add_member(*rels_used, ((ModifyTable *) plan)->exclRelRTI); + /* Ensure Vars used in RETURNING will have refnames */ + if (plan->targetlist) + *rels_used = bms_add_member(*rels_used, + linitial_int(((ModifyTable *) plan)->resultRelations)); break; case T_Append: *rels_used = bms_add_members(*rels_used, @@ -1848,7 +1840,7 @@ ExplainNode(PlanState *planstate, List *ancestors, if (es->format == EXPLAIN_FORMAT_TEXT) { - appendStringInfo(es->str, " (actual "); + appendStringInfoString(es->str, " (actual "); if (es->timing) appendStringInfo(es->str, "time=%.3f..%.3f ", startup_ms, total_ms); @@ -1917,7 +1909,7 @@ ExplainNode(PlanState *planstate, List *ancestors, if (es->format == EXPLAIN_FORMAT_TEXT) { ExplainIndentText(es); - appendStringInfo(es->str, "actual "); + appendStringInfoString(es->str, "actual "); if (es->timing) appendStringInfo(es->str, "time=%.3f..%.3f ", startup_ms, total_ms); diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index 180f4af9be36a..e6f9ab6dfd66b 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -83,6 +83,8 @@ Oid CurrentExtensionObject = InvalidOid; typedef struct ExtensionControlFile { char *name; /* name of the extension */ + char *basedir; /* base directory where control and script + * files are located */ char *control_dir; /* directory where control file was found */ char *directory; /* directory for script files */ char *default_version; /* default install target version, if any */ @@ -153,6 +155,7 @@ static void ExecAlterExtensionContentsRecurse(AlterExtensionContentsStmt *stmt, static char *read_whole_file(const char *filename, int *length); static ExtensionControlFile *new_ExtensionControlFile(const char *extname); +char *find_in_paths(const char *basename, List *paths); /* * get_extension_oid - given an extension name, look up the OID @@ -374,8 +377,15 @@ get_extension_control_directories(void) piece = palloc(len + 1); strlcpy(piece, ecp, len + 1); - /* Substitute the path macro if needed */ - mangled = substitute_path_macro(piece, "$system", system_dir); + /* + * Substitute the path macro if needed or append "extension" + * suffix if it is a custom extension control path. + */ + if (strcmp(piece, "$system") == 0) + mangled = substitute_path_macro(piece, "$system", system_dir); + else + mangled = psprintf("%s/extension", piece); + pfree(piece); /* Canonicalize the path based on the OS and add to the list */ @@ -401,28 +411,16 @@ get_extension_control_directories(void) static char * find_extension_control_filename(ExtensionControlFile *control) { - char sharepath[MAXPGPATH]; - char *system_dir; char *basename; - char *ecp; char *result; + List *paths; Assert(control->name); - get_share_path(my_exec_path, sharepath); - system_dir = psprintf("%s/extension", sharepath); - basename = psprintf("%s.control", control->name); - /* - * find_in_path() does nothing if the path value is empty. This is the - * historical behavior for dynamic_library_path, but it makes no sense for - * extensions. So in that case, substitute a default value. - */ - ecp = Extension_control_path; - if (strlen(ecp) == 0) - ecp = "$system"; - result = find_in_path(basename, ecp, "extension_control_path", "$system", system_dir); + paths = get_extension_control_directories(); + result = find_in_paths(basename, paths); if (result) { @@ -439,12 +437,11 @@ find_extension_control_filename(ExtensionControlFile *control) static char * get_extension_script_directory(ExtensionControlFile *control) { - char sharepath[MAXPGPATH]; - char *result; - /* * The directory parameter can be omitted, absolute, or relative to the - * installation's share directory. + * installation's base directory, which can be the sharedir or a custom + * path that it was set extension_control_path. It depends where the + * .control file was found. */ if (!control->directory) return pstrdup(control->control_dir); @@ -452,11 +449,8 @@ get_extension_script_directory(ExtensionControlFile *control) if (is_absolute_path(control->directory)) return pstrdup(control->directory); - get_share_path(my_exec_path, sharepath); - result = (char *) palloc(MAXPGPATH); - snprintf(result, MAXPGPATH, "%s/%s", sharepath, control->directory); - - return result; + Assert(control->basedir != NULL); + return psprintf("%s/%s", control->basedir, control->directory); } static char * @@ -550,6 +544,14 @@ parse_extension_control_file(ExtensionControlFile *control, errhint("The extension must first be installed on the system where PostgreSQL is running."))); } + /* Assert that the control_dir ends with /extension */ + Assert(control->control_dir != NULL); + Assert(strcmp(control->control_dir + strlen(control->control_dir) - strlen("/extension"), "/extension") == 0); + + control->basedir = pnstrdup( + control->control_dir, + strlen(control->control_dir) - strlen("/extension")); + if ((file = AllocateFile(filename, "r")) == NULL) { /* no complaint for missing auxiliary file */ @@ -991,13 +993,11 @@ execute_sql_string(const char *sql, const char *filename) QueryDesc *qdesc; qdesc = CreateQueryDesc(stmt, - NULL, sql, GetActiveSnapshot(), NULL, dest, NULL, NULL, 0); - if (!ExecutorStart(qdesc, 0)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(qdesc, 0); ExecutorRun(qdesc, ForwardScanDirection, 0); ExecutorFinish(qdesc); ExecutorEnd(qdesc); @@ -3863,3 +3863,44 @@ new_ExtensionControlFile(const char *extname) return control; } + +/* + * Work in a very similar way with find_in_path but it receives an already + * parsed List of paths to search the basename and it do not support macro + * replacement or custom error messages (for simplicity). + * + * By "already parsed List of paths" this function expected that paths already + * have all macros replaced. + */ +char * +find_in_paths(const char *basename, List *paths) +{ + ListCell *cell; + + foreach(cell, paths) + { + char *path = lfirst(cell); + char *full; + + Assert(path != NULL); + + path = pstrdup(path); + canonicalize_path(path); + + /* only absolute paths */ + if (!is_absolute_path(path)) + ereport(ERROR, + errcode(ERRCODE_INVALID_NAME), + errmsg("component in parameter \"%s\" is not an absolute path", "extension_control_path")); + + full = psprintf("%s/%s", path, basename); + + if (pg_file_exists(full)) + return full; + + pfree(path); + pfree(full); + } + + return NULL; +} diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index b9fd7683abb42..0335e982b318b 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -1046,6 +1046,7 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt) List *parameterDefaults; Oid variadicArgType; List *trftypes_list = NIL; + List *trfoids_list = NIL; ArrayType *trftypes; Oid requiredResultType; bool isWindowFunc, @@ -1157,11 +1158,12 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt) Oid typeid = typenameTypeId(NULL, lfirst_node(TypeName, lc)); Oid elt = get_base_element_type(typeid); + Oid transformid; typeid = elt ? elt : typeid; - - get_transform_oid(typeid, languageOid, false); + transformid = get_transform_oid(typeid, languageOid, false); trftypes_list = lappend_oid(trftypes_list, typeid); + trfoids_list = lappend_oid(trfoids_list, transformid); } } @@ -1292,6 +1294,7 @@ CreateFunction(ParseState *pstate, CreateFunctionStmt *stmt) PointerGetDatum(parameterNames), parameterDefaults, PointerGetDatum(trftypes), + trfoids_list, PointerGetDatum(proconfig), prosupport, procost, diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 33c2106c17cee..d962fe392cd27 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -3892,9 +3892,9 @@ ReindexRelationConcurrently(const ReindexStmt *stmt, Oid relationOid, const Rein #ifdef USE_INJECTION_POINTS if (idx->safe) - INJECTION_POINT("reindex-conc-index-safe"); + INJECTION_POINT("reindex-conc-index-safe", NULL); else - INJECTION_POINT("reindex-conc-index-not-safe"); + INJECTION_POINT("reindex-conc-index-not-safe", NULL); #endif idx->tableId = RelationGetRelid(heapRel); diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c index e7854add17825..27c2cb26ef5f3 100644 --- a/src/backend/commands/matview.c +++ b/src/backend/commands/matview.c @@ -438,13 +438,12 @@ refresh_matview_datafill(DestReceiver *dest, Query *query, UpdateActiveSnapshotCommandId(); /* Create a QueryDesc, redirecting output to our tuple receiver */ - queryDesc = CreateQueryDesc(plan, NULL, queryString, + queryDesc = CreateQueryDesc(plan, queryString, GetActiveSnapshot(), InvalidSnapshot, dest, NULL, NULL, 0); /* call ExecutorStart to prepare the plan for execution */ - if (!ExecutorStart(queryDesc, 0)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(queryDesc, 0); /* run the plan */ ExecutorRun(queryDesc, ForwardScanDirection, 0); diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c index 8546366ee06c2..a6dd8eab5186b 100644 --- a/src/backend/commands/opclasscmds.c +++ b/src/backend/commands/opclasscmds.c @@ -1331,6 +1331,31 @@ assignProcTypes(OpFamilyMember *member, Oid amoid, Oid typeoid, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("ordering equal image functions must not be cross-type"))); } + else if (member->number == BTSKIPSUPPORT_PROC) + { + if (procform->pronargs != 1 || + procform->proargtypes.values[0] != INTERNALOID) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("btree skip support functions must accept type \"internal\""))); + if (procform->prorettype != VOIDOID) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("btree skip support functions must return void"))); + + /* + * pg_amproc functions are indexed by (lefttype, righttype), but a + * skip support function doesn't make sense in cross-type + * scenarios. The same opclass opcintype OID is always used for + * lefttype and righttype. Providing a cross-type routine isn't + * sensible. Reject cross-type ALTER OPERATOR FAMILY ... ADD + * FUNCTION 6 statements here. + */ + if (member->lefttype != member->righttype) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("btree skip support functions must not be cross-type"))); + } } else if (GetIndexAmRoutineByAmId(amoid, false)->amcanhash) { diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c index 4c2ac04522459..e7c8171c10207 100644 --- a/src/backend/commands/portalcmds.c +++ b/src/backend/commands/portalcmds.c @@ -117,7 +117,6 @@ PerformCursorOpen(ParseState *pstate, DeclareCursorStmt *cstmt, ParamListInfo pa queryString, CMDTAG_SELECT, /* cursor's query is always a SELECT */ list_make1(plan), - NULL, NULL); /*---------- diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index bf7d2b2309fc2..34b6410d6a26c 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -205,8 +205,7 @@ ExecuteQuery(ParseState *pstate, query_string, entry->plansource->commandTag, plan_list, - cplan, - entry->plansource); + cplan); /* * For CREATE TABLE ... AS EXECUTE, we must verify that the prepared @@ -586,7 +585,6 @@ ExplainExecuteQuery(ExecuteStmt *execstmt, IntoClause *into, ExplainState *es, MemoryContextCounters mem_counters; MemoryContext planner_ctx = NULL; MemoryContext saved_ctx = NULL; - int query_index = 0; if (es->memory) { @@ -659,8 +657,7 @@ ExplainExecuteQuery(ExecuteStmt *execstmt, IntoClause *into, ExplainState *es, PlannedStmt *pstmt = lfirst_node(PlannedStmt, p); if (pstmt->commandType != CMD_UTILITY) - ExplainOnePlan(pstmt, cplan, entry->plansource, query_index, - into, es, query_string, paramLI, pstate->p_queryEnv, + ExplainOnePlan(pstmt, into, es, query_string, paramLI, pstate->p_queryEnv, &planduration, (es->buffers ? &bufusage : NULL), es->memory ? &mem_counters : NULL); else @@ -671,8 +668,6 @@ ExplainExecuteQuery(ExecuteStmt *execstmt, IntoClause *into, ExplainState *es, /* Separate plans with an appropriate separator */ if (lnext(plan_list, p) != NULL) ExplainSeparatePlans(es); - - query_index++; } if (estate) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 10624353b0a06..54ad38247aa32 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -395,6 +395,14 @@ static ObjectAddress ATExecAlterConstraint(List **wqueue, Relation rel, static bool ATExecAlterConstraintInternal(List **wqueue, ATAlterConstraint *cmdcon, Relation conrel, Relation tgrel, Relation rel, HeapTuple contuple, bool recurse, LOCKMODE lockmode); +static bool ATExecAlterConstrEnforceability(List **wqueue, ATAlterConstraint *cmdcon, + Relation conrel, Relation tgrel, + Oid fkrelid, Oid pkrelid, + HeapTuple contuple, LOCKMODE lockmode, + Oid ReferencedParentDelTrigger, + Oid ReferencedParentUpdTrigger, + Oid ReferencingParentInsTrigger, + Oid ReferencingParentUpdTrigger); static bool ATExecAlterConstrDeferrability(List **wqueue, ATAlterConstraint *cmdcon, Relation conrel, Relation tgrel, Relation rel, HeapTuple contuple, bool recurse, @@ -405,6 +413,14 @@ static bool ATExecAlterConstrInheritability(List **wqueue, ATAlterConstraint *cm static void AlterConstrTriggerDeferrability(Oid conoid, Relation tgrel, Relation rel, bool deferrable, bool initdeferred, List **otherrelids); +static void AlterConstrEnforceabilityRecurse(List **wqueue, ATAlterConstraint *cmdcon, + Relation conrel, Relation tgrel, + Oid fkrelid, Oid pkrelid, + HeapTuple contuple, LOCKMODE lockmode, + Oid ReferencedParentDelTrigger, + Oid ReferencedParentUpdTrigger, + Oid ReferencingParentInsTrigger, + Oid ReferencingParentUpdTrigger); static void AlterConstrDeferrabilityRecurse(List **wqueue, ATAlterConstraint *cmdcon, Relation conrel, Relation tgrel, Relation rel, HeapTuple contuple, bool recurse, @@ -419,6 +435,9 @@ static void QueueFKConstraintValidation(List **wqueue, Relation conrel, Relation static void QueueCheckConstraintValidation(List **wqueue, Relation conrel, Relation rel, char *constrName, HeapTuple contuple, bool recurse, bool recursing, LOCKMODE lockmode); +static void QueueNNConstraintValidation(List **wqueue, Relation conrel, Relation rel, + HeapTuple contuple, bool recurse, bool recursing, + LOCKMODE lockmode); static int transformColumnNameList(Oid relId, List *colList, int16 *attnums, Oid *atttypids, Oid *attcollids); static int transformFkeyGetPrimaryKey(Relation pkrel, Oid *indexOid, @@ -482,9 +501,9 @@ static void add_column_collation_dependency(Oid relid, int32 attnum, Oid collid) static ObjectAddress ATExecDropNotNull(Relation rel, const char *colName, bool recurse, LOCKMODE lockmode); static void set_attnotnull(List **wqueue, Relation rel, AttrNumber attnum, - LOCKMODE lockmode); + bool is_valid, bool queue_validation); static ObjectAddress ATExecSetNotNull(List **wqueue, Relation rel, - char *constrname, char *colName, + char *conName, char *colName, bool recurse, bool recursing, LOCKMODE lockmode); static bool NotNullImpliedByRelConstraints(Relation rel, Form_pg_attribute attr); @@ -521,6 +540,7 @@ static ObjectAddress ATExecDropColumn(List **wqueue, Relation rel, const char *c static void ATPrepAddPrimaryKey(List **wqueue, Relation rel, AlterTableCmd *cmd, bool recurse, LOCKMODE lockmode, AlterTableUtilityContext *context); +static void verifyNotNullPKCompatible(HeapTuple tuple, const char *colname); static ObjectAddress ATExecAddIndex(AlteredTableInfo *tab, Relation rel, IndexStmt *stmt, bool is_rebuild, LOCKMODE lockmode); static ObjectAddress ATExecAddStatistics(AlteredTableInfo *tab, Relation rel, @@ -541,8 +561,8 @@ static ObjectAddress ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo * Relation rel, Constraint *fkconstraint, bool recurse, bool recursing, LOCKMODE lockmode); -static void validateFkOnDeleteSetColumns(int numfks, const int16 *fkattnums, - int numfksetcols, const int16 *fksetcolsattnums, +static int validateFkOnDeleteSetColumns(int numfks, const int16 *fkattnums, + int numfksetcols, int16 *fksetcolsattnums, List *fksetcols); static ObjectAddress addFkConstraint(addFkConstraintSides fkside, char *constraintname, @@ -714,7 +734,7 @@ static ObjectAddress ATExecAttachPartitionIdx(List **wqueue, Relation parentIdx, static void validatePartitionedIndex(Relation partedIdx, Relation partedTbl); static void refuseDupeIndexAttach(Relation parentIdx, Relation partIdx, Relation partitionTbl); -static void verifyPartitionIndexNotNull(IndexInfo *iinfo, Relation partIdx); +static void verifyPartitionIndexNotNull(IndexInfo *iinfo, Relation partition); static List *GetParentedForeignKeyRefs(Relation partition); static void ATDetachCheckNoForeignKeyRefs(Relation partition); static char GetAttributeCompression(Oid atttypid, const char *compression); @@ -1324,7 +1344,7 @@ DefineRelation(CreateStmt *stmt, char relkind, Oid ownerId, nncols = AddRelationNotNullConstraints(rel, stmt->nnconstraints, old_notnulls); foreach_int(attrnum, nncols) - set_attnotnull(NULL, rel, attrnum, NoLock); + set_attnotnull(NULL, rel, attrnum, true, false); ObjectAddressSet(address, RelationRelationId, relationId); @@ -2722,7 +2742,7 @@ MergeAttributes(List *columns, const List *supers, char relpersistence, /* * Request attnotnull on columns that have a not-null constraint - * that's not marked NO INHERIT. + * that's not marked NO INHERIT (even if not valid). */ nnconstrs = RelationGetNotNullConstraints(RelationGetRelid(relation), true, false); @@ -6191,24 +6211,28 @@ ATRewriteTable(AlteredTableInfo *tab, Oid OIDNewHeap) { /* * If we are rebuilding the tuples OR if we added any new but not - * verified not-null constraints, check all not-null constraints. This - * is a bit of overkill but it minimizes risk of bugs. + * verified not-null constraints, check all *valid* not-null + * constraints. This is a bit of overkill but it minimizes risk of + * bugs. * - * notnull_attrs does *not* collect attribute numbers for not-null - * constraints over virtual generated columns; instead, they are - * collected in notnull_virtual_attrs. + * notnull_attrs does *not* collect attribute numbers for valid + * not-null constraints over virtual generated columns; instead, they + * are collected in notnull_virtual_attrs for verification elsewhere. */ for (i = 0; i < newTupDesc->natts; i++) { - Form_pg_attribute attr = TupleDescAttr(newTupDesc, i); + CompactAttribute *attr = TupleDescCompactAttr(newTupDesc, i); - if (attr->attnotnull && !attr->attisdropped) + if (attr->attnullability == ATTNULLABLE_VALID && + !attr->attisdropped) { - if (attr->attgenerated != ATTRIBUTE_GENERATED_VIRTUAL) - notnull_attrs = lappend_int(notnull_attrs, attr->attnum); + Form_pg_attribute wholeatt = TupleDescAttr(newTupDesc, i); + + if (wholeatt->attgenerated != ATTRIBUTE_GENERATED_VIRTUAL) + notnull_attrs = lappend_int(notnull_attrs, wholeatt->attnum); else notnull_virtual_attrs = lappend_int(notnull_virtual_attrs, - attr->attnum); + wholeatt->attnum); } } if (notnull_attrs || notnull_virtual_attrs) @@ -7517,6 +7541,8 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel, if (!missingIsNull) { StoreAttrMissingVal(rel, attribute->attnum, missingval); + /* Make the additional catalog change visible */ + CommandCounterIncrement(); has_missing = true; } FreeExecutorState(estate); @@ -7791,18 +7817,23 @@ ATExecDropNotNull(Relation rel, const char *colName, bool recurse, } /* - * Helper to set pg_attribute.attnotnull if it isn't set, and to tell phase 3 - * to verify it. + * set_attnotnull + * Helper to update/validate the pg_attribute status of a not-null + * constraint * - * When called to alter an existing table, 'wqueue' must be given so that we - * can queue a check that existing tuples pass the constraint. When called - * from table creation, 'wqueue' should be passed as NULL. + * pg_attribute.attnotnull is set true, if it isn't already. + * If queue_validation is true, also set up wqueue to validate the constraint. + * wqueue may be given as NULL when validation is not needed (e.g., on table + * creation). */ static void set_attnotnull(List **wqueue, Relation rel, AttrNumber attnum, - LOCKMODE lockmode) + bool is_valid, bool queue_validation) { Form_pg_attribute attr; + CompactAttribute *thisatt; + + Assert(!queue_validation || wqueue); CheckAlterTableIsSafe(rel); @@ -7826,8 +7857,11 @@ set_attnotnull(List **wqueue, Relation rel, AttrNumber attnum, elog(ERROR, "cache lookup failed for attribute %d of relation %u", attnum, RelationGetRelid(rel)); + thisatt = TupleDescCompactAttr(RelationGetDescr(rel), attnum - 1); + thisatt->attnullability = ATTNULLABLE_VALID; + attr = (Form_pg_attribute) GETSTRUCT(tuple); - Assert(!attr->attnotnull); + attr->attnotnull = true; CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple); @@ -7835,7 +7869,8 @@ set_attnotnull(List **wqueue, Relation rel, AttrNumber attnum, * If the nullness isn't already proven by validated constraints, have * ALTER TABLE phase 3 test for it. */ - if (wqueue && !NotNullImpliedByRelConstraints(rel, attr)) + if (queue_validation && wqueue && + !NotNullImpliedByRelConstraints(rel, attr)) { AlteredTableInfo *tab; @@ -7848,6 +7883,10 @@ set_attnotnull(List **wqueue, Relation rel, AttrNumber attnum, table_close(attr_rel, RowExclusiveLock); heap_freetuple(tuple); } + else + { + CacheInvalidateRelcache(rel); + } } /* @@ -7933,6 +7972,15 @@ ATExecSetNotNull(List **wqueue, Relation rel, char *conName, char *colName, conForm->conislocal = true; changed = true; } + else if (!conForm->convalidated) + { + /* + * Flip attnotnull and convalidated, and also validate the + * constraint. + */ + return ATExecValidateConstraint(wqueue, rel, NameStr(conForm->conname), + recurse, recursing, lockmode); + } if (changed) { @@ -7995,8 +8043,8 @@ ATExecSetNotNull(List **wqueue, Relation rel, char *conName, char *colName, InvokeObjectPostAlterHook(RelationRelationId, RelationGetRelid(rel), attnum); - /* Mark pg_attribute.attnotnull for the column */ - set_attnotnull(wqueue, rel, attnum, lockmode); + /* Mark pg_attribute.attnotnull for the column and queue validation */ + set_attnotnull(wqueue, rel, attnum, true, true); /* * Recurse to propagate the constraint to children that don't have one. @@ -9391,63 +9439,95 @@ ATExecDropColumn(List **wqueue, Relation rel, const char *colName, } /* - * Prepare to add a primary key on table, by adding not-null constraints + * Prepare to add a primary key on a table, by adding not-null constraints * on all columns. + * + * The not-null constraints for a primary key must cover the whole inheritance + * hierarchy (failing to ensure that leads to funny corner cases). For the + * normal case where we're asked to recurse, this routine checks if the + * not-null constraints exist already, and if not queues a requirement for + * them to be created by phase 2. + * + * For the case where we're asked not to recurse, we verify that a not-null + * constraint exists on each column of each (direct) child table, throwing an + * error if not. Not throwing an error would also work, because a not-null + * constraint would be created anyway, but it'd cause a silent scan of the + * child table to verify absence of nulls. We prefer to let the user know so + * that they can add the constraint manually without having to hold + * AccessExclusiveLock while at it. + * + * However, it's also important that we do not acquire locks on children if + * the not-null constraints already exist on the parent, to avoid risking + * deadlocks during parallel pg_restore of PKs on partitioned tables. */ static void ATPrepAddPrimaryKey(List **wqueue, Relation rel, AlterTableCmd *cmd, bool recurse, LOCKMODE lockmode, AlterTableUtilityContext *context) { - ListCell *lc; Constraint *pkconstr; + List *children = NIL; + bool got_children = false; pkconstr = castNode(Constraint, cmd->def); if (pkconstr->contype != CONSTR_PRIMARY) return; - /* - * If not recursing, we must ensure that all children have a NOT NULL - * constraint on the columns, and error out if not. - */ - if (!recurse) + /* Verify that columns are not-null, or request that they be made so */ + foreach_node(String, column, pkconstr->keys) { - List *children; + AlterTableCmd *newcmd; + Constraint *nnconstr; + HeapTuple tuple; - children = find_inheritance_children(RelationGetRelid(rel), - lockmode); - foreach_oid(childrelid, children) + /* + * First check if a suitable constraint exists. If it does, we don't + * need to request another one. We do need to bail out if it's not + * valid, though. + */ + tuple = findNotNullConstraint(RelationGetRelid(rel), strVal(column)); + if (tuple != NULL) { - foreach(lc, pkconstr->keys) + verifyNotNullPKCompatible(tuple, strVal(column)); + + /* All good with this one; don't request another */ + heap_freetuple(tuple); + continue; + } + else if (!recurse) + { + /* + * No constraint on this column. Asked not to recurse, we won't + * create one here, but verify that all children have one. + */ + if (!got_children) + { + children = find_inheritance_children(RelationGetRelid(rel), + lockmode); + /* only search for children on the first time through */ + got_children = true; + } + + foreach_oid(childrelid, children) { HeapTuple tup; - Form_pg_attribute attrForm; - char *attname = strVal(lfirst(lc)); - tup = SearchSysCacheAttName(childrelid, attname); + tup = findNotNullConstraint(childrelid, strVal(column)); if (!tup) - elog(ERROR, "cache lookup failed for attribute %s of relation %u", - attname, childrelid); - attrForm = (Form_pg_attribute) GETSTRUCT(tup); - if (!attrForm->attnotnull) ereport(ERROR, errmsg("column \"%s\" of table \"%s\" is not marked NOT NULL", - attname, get_rel_name(childrelid))); - ReleaseSysCache(tup); + strVal(column), get_rel_name(childrelid))); + /* verify it's good enough */ + verifyNotNullPKCompatible(tup, strVal(column)); } } - } - - /* Insert not-null constraints in the queue for the PK columns */ - foreach(lc, pkconstr->keys) - { - AlterTableCmd *newcmd; - Constraint *nnconstr; - nnconstr = makeNotNullConstraint(lfirst(lc)); + /* This column is not already not-null, so add it to the queue */ + nnconstr = makeNotNullConstraint(column); newcmd = makeNode(AlterTableCmd); newcmd->subtype = AT_AddConstraint; + /* note we force recurse=true here; see above */ newcmd->recurse = true; newcmd->def = (Node *) nnconstr; @@ -9455,6 +9535,43 @@ ATPrepAddPrimaryKey(List **wqueue, Relation rel, AlterTableCmd *cmd, } } +/* + * Verify whether the given not-null constraint is compatible with a + * primary key. If not, an error is thrown. + */ +static void +verifyNotNullPKCompatible(HeapTuple tuple, const char *colname) +{ + Form_pg_constraint conForm = (Form_pg_constraint) GETSTRUCT(tuple); + + if (conForm->contype != CONSTRAINT_NOTNULL) + elog(ERROR, "constraint %u is not a not-null constraint", conForm->oid); + + /* a NO INHERIT constraint is no good */ + if (conForm->connoinherit) + ereport(ERROR, + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("cannot create primary key on column \"%s\"", colname), + /*- translator: fourth %s is a constraint characteristic such as NOT VALID */ + errdetail("The constraint \"%s\" on column \"%s\" of table \"%s\", marked %s, is incompatible with a primary key.", + NameStr(conForm->conname), colname, + get_rel_name(conForm->conrelid), "NO INHERIT"), + errhint("You might need to make the existing constraint inheritable using %s.", + "ALTER TABLE ... ALTER CONSTRAINT ... INHERIT")); + + /* an unvalidated constraint is no good */ + if (!conForm->convalidated) + ereport(ERROR, + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("cannot create primary key on column \"%s\"", colname), + /*- translator: fourth %s is a constraint characteristic such as NOT VALID */ + errdetail("The constraint \"%s\" on column \"%s\" of table \"%s\", marked %s, is incompatible with a primary key.", + NameStr(conForm->conname), colname, + get_rel_name(conForm->conrelid), "NOT VALID"), + errhint("You might need to validate it using %s.", + "ALTER TABLE ... VALIDATE CONSTRAINT")); +} + /* * ALTER TABLE ADD INDEX * @@ -9818,11 +9935,15 @@ ATAddCheckNNConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, constr->conname = ccon->name; /* - * If adding a not-null constraint, set the pg_attribute flag and tell - * phase 3 to verify existing rows, if needed. + * If adding a valid not-null constraint, set the pg_attribute flag + * and tell phase 3 to verify existing rows, if needed. For an + * invalid constraint, just set attnotnull, without queueing + * verification. */ if (constr->contype == CONSTR_NOTNULL) - set_attnotnull(wqueue, rel, ccon->attnum, lockmode); + set_attnotnull(wqueue, rel, ccon->attnum, + !constr->skip_validation, + !constr->skip_validation); ObjectAddressSet(address, ConstraintRelationId, ccon->conoid); } @@ -10019,9 +10140,10 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, numfkdelsetcols = transformColumnNameList(RelationGetRelid(rel), fkconstraint->fk_del_set_cols, fkdelsetcols, NULL, NULL); - validateFkOnDeleteSetColumns(numfks, fkattnum, - numfkdelsetcols, fkdelsetcols, - fkconstraint->fk_del_set_cols); + numfkdelsetcols = validateFkOnDeleteSetColumns(numfks, fkattnum, + numfkdelsetcols, + fkdelsetcols, + fkconstraint->fk_del_set_cols); /* * If the attribute list for the referenced table was omitted, lookup the @@ -10481,17 +10603,23 @@ ATAddForeignKeyConstraint(List **wqueue, AlteredTableInfo *tab, Relation rel, * validateFkOnDeleteSetColumns * Verifies that columns used in ON DELETE SET NULL/DEFAULT (...) * column lists are valid. + * + * If there are duplicates in the fksetcolsattnums[] array, this silently + * removes the dups. The new count of numfksetcols is returned. */ -void +static int validateFkOnDeleteSetColumns(int numfks, const int16 *fkattnums, - int numfksetcols, const int16 *fksetcolsattnums, + int numfksetcols, int16 *fksetcolsattnums, List *fksetcols) { + int numcolsout = 0; + for (int i = 0; i < numfksetcols; i++) { int16 setcol_attnum = fksetcolsattnums[i]; bool seen = false; + /* Make sure it's in fkattnums[] */ for (int j = 0; j < numfks; j++) { if (fkattnums[j] == setcol_attnum) @@ -10509,7 +10637,21 @@ validateFkOnDeleteSetColumns(int numfks, const int16 *fkattnums, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("column \"%s\" referenced in ON DELETE SET action must be part of foreign key", col))); } + + /* Now check for dups */ + seen = false; + for (int j = 0; j < numcolsout; j++) + { + if (fksetcolsattnums[j] == setcol_attnum) + { + seen = true; + break; + } + } + if (!seen) + fksetcolsattnums[numcolsout++] = setcol_attnum; } + return numcolsout; } /* @@ -10570,14 +10712,16 @@ addFkConstraint(addFkConstraintSides fkside, /* * Caller supplies us with a constraint name; however, it may be used in - * this partition, so come up with a different one in that case. + * this partition, so come up with a different one in that case. Unless + * truncation to NAMEDATALEN dictates otherwise, the new name will be the + * supplied name with an underscore and digit(s) appended. */ if (ConstraintNameIsUsed(CONSTRAINT_RELATION, RelationGetRelid(rel), constraintname)) - conname = ChooseConstraintName(RelationGetRelationName(rel), - ChooseForeignKeyConstraintNameAddition(fkconstraint->fk_attrs), - "fkey", + conname = ChooseConstraintName(constraintname, + NULL, + "", RelationGetNamespace(rel), NIL); else conname = constraintname; @@ -10610,7 +10754,7 @@ addFkConstraint(addFkConstraintSides fkside, CONSTRAINT_FOREIGN, fkconstraint->deferrable, fkconstraint->initdeferred, - true, /* Is Enforced */ + fkconstraint->is_enforced, fkconstraint->initially_valid, parentConstr, RelationGetRelid(rel), @@ -10728,21 +10872,23 @@ addFkRecurseReferenced(Constraint *fkconstraint, Relation rel, Oid parentDelTrigger, Oid parentUpdTrigger, bool with_period) { - Oid deleteTriggerOid, - updateTriggerOid; + Oid deleteTriggerOid = InvalidOid, + updateTriggerOid = InvalidOid; Assert(CheckRelationLockedByMe(pkrel, ShareRowExclusiveLock, true)); Assert(CheckRelationLockedByMe(rel, ShareRowExclusiveLock, true)); /* - * Create the action triggers that enforce the constraint. + * Create action triggers to enforce the constraint, or skip them if the + * constraint is NOT ENFORCED. */ - createForeignKeyActionTriggers(RelationGetRelid(rel), - RelationGetRelid(pkrel), - fkconstraint, - parentConstr, indexOid, - parentDelTrigger, parentUpdTrigger, - &deleteTriggerOid, &updateTriggerOid); + if (fkconstraint->is_enforced) + createForeignKeyActionTriggers(RelationGetRelid(rel), + RelationGetRelid(pkrel), + fkconstraint, + parentConstr, indexOid, + parentDelTrigger, parentUpdTrigger, + &deleteTriggerOid, &updateTriggerOid); /* * If the referenced table is partitioned, recurse on ourselves to handle @@ -10863,8 +11009,8 @@ addFkRecurseReferencing(List **wqueue, Constraint *fkconstraint, Relation rel, Oid parentInsTrigger, Oid parentUpdTrigger, bool with_period) { - Oid insertTriggerOid, - updateTriggerOid; + Oid insertTriggerOid = InvalidOid, + updateTriggerOid = InvalidOid; Assert(OidIsValid(parentConstr)); Assert(CheckRelationLockedByMe(rel, ShareRowExclusiveLock, true)); @@ -10876,29 +11022,32 @@ addFkRecurseReferencing(List **wqueue, Constraint *fkconstraint, Relation rel, errmsg("foreign key constraints are not supported on foreign tables"))); /* - * Add the check triggers to it and, if necessary, schedule it to be - * checked in Phase 3. + * Add check triggers if the constraint is ENFORCED, and if needed, + * schedule them to be checked in Phase 3. * * If the relation is partitioned, drill down to do it to its partitions. */ - createForeignKeyCheckTriggers(RelationGetRelid(rel), - RelationGetRelid(pkrel), - fkconstraint, - parentConstr, - indexOid, - parentInsTrigger, parentUpdTrigger, - &insertTriggerOid, &updateTriggerOid); + if (fkconstraint->is_enforced) + createForeignKeyCheckTriggers(RelationGetRelid(rel), + RelationGetRelid(pkrel), + fkconstraint, + parentConstr, + indexOid, + parentInsTrigger, parentUpdTrigger, + &insertTriggerOid, &updateTriggerOid); if (rel->rd_rel->relkind == RELKIND_RELATION) { /* * Tell Phase 3 to check that the constraint is satisfied by existing - * rows. We can skip this during table creation, when requested - * explicitly by specifying NOT VALID in an ADD FOREIGN KEY command, - * and when we're recreating a constraint following a SET DATA TYPE - * operation that did not impugn its validity. + * rows. We can skip this during table creation, when constraint is + * specified as NOT ENFORCED, or when requested explicitly by + * specifying NOT VALID in an ADD FOREIGN KEY command, and when we're + * recreating a constraint following a SET DATA TYPE operation that + * did not impugn its validity. */ - if (wqueue && !old_check_ok && !fkconstraint->skip_validation) + if (wqueue && !old_check_ok && !fkconstraint->skip_validation && + fkconstraint->is_enforced) { NewConstraint *newcon; AlteredTableInfo *tab; @@ -11037,14 +11186,14 @@ CloneForeignKeyConstraints(List **wqueue, Relation parentRel, Assert(parentRel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE); /* - * Clone constraints for which the parent is on the referenced side. + * First, clone constraints where the parent is on the referencing side. */ - CloneFkReferenced(parentRel, partitionRel); + CloneFkReferencing(wqueue, parentRel, partitionRel); /* - * Now clone constraints where the parent is on the referencing side. + * Clone constraints for which the parent is on the referenced side. */ - CloneFkReferencing(wqueue, parentRel, partitionRel); + CloneFkReferenced(parentRel, partitionRel); } /* @@ -11055,8 +11204,6 @@ CloneForeignKeyConstraints(List **wqueue, Relation parentRel, * clone those constraints to the given partition. This is to be called * when the partition is being created or attached. * - * This ignores self-referencing FKs; those are handled by CloneFkReferencing. - * * This recurses to partitions, if the relation being attached is partitioned. * Recursion is done by calling addFkRecurseReferenced. */ @@ -11129,8 +11276,8 @@ CloneFkReferenced(Relation parentRel, Relation partitionRel) AttrNumber confdelsetcols[INDEX_MAX_KEYS]; Constraint *fkconstraint; ObjectAddress address; - Oid deleteTriggerOid, - updateTriggerOid; + Oid deleteTriggerOid = InvalidOid, + updateTriggerOid = InvalidOid; tuple = SearchSysCache1(CONSTROID, ObjectIdGetDatum(constrOid)); if (!HeapTupleIsValid(tuple)) @@ -11147,17 +11294,6 @@ CloneFkReferenced(Relation parentRel, Relation partitionRel) continue; } - /* - * Don't clone self-referencing foreign keys, which can be in the - * partitioned table or in the partition-to-be. - */ - if (constrForm->conrelid == RelationGetRelid(parentRel) || - constrForm->conrelid == RelationGetRelid(partitionRel)) - { - ReleaseSysCache(tuple); - continue; - } - /* We need the same lock level that CreateTrigger will acquire */ fkRel = table_open(constrForm->conrelid, ShareRowExclusiveLock); @@ -11190,8 +11326,9 @@ CloneFkReferenced(Relation parentRel, Relation partitionRel) fkconstraint->fk_del_set_cols = NIL; fkconstraint->old_conpfeqop = NIL; fkconstraint->old_pktable_oid = InvalidOid; + fkconstraint->is_enforced = constrForm->conenforced; fkconstraint->skip_validation = false; - fkconstraint->initially_valid = true; + fkconstraint->initially_valid = constrForm->convalidated; /* set up colnames that are used to generate the constraint name */ for (int i = 0; i < numfks; i++) @@ -11219,9 +11356,10 @@ CloneFkReferenced(Relation parentRel, Relation partitionRel) * parent OIDs for similar triggers that will be created on the * partition in addFkRecurseReferenced(). */ - GetForeignKeyActionTriggers(trigrel, constrOid, - constrForm->confrelid, constrForm->conrelid, - &deleteTriggerOid, &updateTriggerOid); + if (constrForm->conenforced) + GetForeignKeyActionTriggers(trigrel, constrOid, + constrForm->confrelid, constrForm->conrelid, + &deleteTriggerOid, &updateTriggerOid); /* Add this constraint ... */ address = addFkConstraint(addFkReferencedSide, @@ -11354,8 +11492,8 @@ CloneFkReferencing(List **wqueue, Relation parentRel, Relation partRel) Oid indexOid; ObjectAddress address; ListCell *lc; - Oid insertTriggerOid, - updateTriggerOid; + Oid insertTriggerOid = InvalidOid, + updateTriggerOid = InvalidOid; bool with_period; tuple = SearchSysCache1(CONSTROID, ObjectIdGetDatum(parentConstrOid)); @@ -11387,17 +11525,18 @@ CloneFkReferencing(List **wqueue, Relation parentRel, Relation partRel) mapped_conkey[i] = attmap->attnums[conkey[i] - 1]; /* - * Get the "check" triggers belonging to the constraint to pass as - * parent OIDs for similar triggers that will be created on the - * partition in addFkRecurseReferencing(). They are also passed to - * tryAttachPartitionForeignKey() below to simply assign as parents to - * the partition's existing "check" triggers, that is, if the - * corresponding constraints is deemed attachable to the parent - * constraint. + * Get the "check" triggers belonging to the constraint, if it is + * ENFORCED, to pass as parent OIDs for similar triggers that will be + * created on the partition in addFkRecurseReferencing(). They are + * also passed to tryAttachPartitionForeignKey() below to simply + * assign as parents to the partition's existing "check" triggers, + * that is, if the corresponding constraints is deemed attachable to + * the parent constraint. */ - GetForeignKeyCheckTriggers(trigrel, constrForm->oid, - constrForm->confrelid, constrForm->conrelid, - &insertTriggerOid, &updateTriggerOid); + if (constrForm->conenforced) + GetForeignKeyCheckTriggers(trigrel, constrForm->oid, + constrForm->confrelid, constrForm->conrelid, + &insertTriggerOid, &updateTriggerOid); /* * Before creating a new constraint, see whether any existing FKs are @@ -11450,6 +11589,7 @@ CloneFkReferencing(List **wqueue, Relation parentRel, Relation partRel) fkconstraint->fk_del_set_cols = NIL; fkconstraint->old_conpfeqop = NIL; fkconstraint->old_pktable_oid = InvalidOid; + fkconstraint->is_enforced = constrForm->conenforced; fkconstraint->skip_validation = false; fkconstraint->initially_valid = constrForm->convalidated; for (int i = 0; i < numfks; i++) @@ -11564,6 +11704,23 @@ tryAttachPartitionForeignKey(List **wqueue, if (!HeapTupleIsValid(partcontup)) elog(ERROR, "cache lookup failed for constraint %u", fk->conoid); partConstr = (Form_pg_constraint) GETSTRUCT(partcontup); + + /* + * An error should be raised if the constraint enforceability is + * different. Returning false without raising an error, as we do for other + * attributes, could lead to a duplicate constraint with the same + * enforceability as the parent. While this may be acceptable, it may not + * be ideal. Therefore, it's better to raise an error and allow the user + * to correct the enforceability before proceeding. + */ + if (partConstr->conenforced != parentConstr->conenforced) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("constraint \"%s\" enforceability conflicts with constraint \"%s\" on relation \"%s\"", + NameStr(parentConstr->conname), + NameStr(partConstr->conname), + RelationGetRelationName(partition)))); + if (OidIsValid(partConstr->conparentid) || partConstr->condeferrable != parentConstr->condeferrable || partConstr->condeferred != parentConstr->condeferred || @@ -11610,8 +11767,7 @@ AttachPartitionForeignKey(List **wqueue, bool queueValidation; Oid partConstrFrelid; Oid partConstrRelid; - Oid insertTriggerOid, - updateTriggerOid; + bool parentConstrIsEnforced; /* Fetch the parent constraint tuple */ parentConstrTup = SearchSysCache1(CONSTROID, @@ -11619,6 +11775,7 @@ AttachPartitionForeignKey(List **wqueue, if (!HeapTupleIsValid(parentConstrTup)) elog(ERROR, "cache lookup failed for constraint %u", parentConstrOid); parentConstr = (Form_pg_constraint) GETSTRUCT(parentConstrTup); + parentConstrIsEnforced = parentConstr->conenforced; /* Fetch the child constraint tuple */ partcontup = SearchSysCache1(CONSTROID, @@ -11668,17 +11825,24 @@ AttachPartitionForeignKey(List **wqueue, /* * Like the constraint, attach partition's "check" triggers to the - * corresponding parent triggers. + * corresponding parent triggers if the constraint is ENFORCED. NOT + * ENFORCED constraints do not have these triggers. */ - GetForeignKeyCheckTriggers(trigrel, - partConstrOid, partConstrFrelid, partConstrRelid, - &insertTriggerOid, &updateTriggerOid); - Assert(OidIsValid(insertTriggerOid) && OidIsValid(parentInsTrigger)); - TriggerSetParentTrigger(trigrel, insertTriggerOid, parentInsTrigger, - RelationGetRelid(partition)); - Assert(OidIsValid(updateTriggerOid) && OidIsValid(parentUpdTrigger)); - TriggerSetParentTrigger(trigrel, updateTriggerOid, parentUpdTrigger, - RelationGetRelid(partition)); + if (parentConstrIsEnforced) + { + Oid insertTriggerOid, + updateTriggerOid; + + GetForeignKeyCheckTriggers(trigrel, + partConstrOid, partConstrFrelid, partConstrRelid, + &insertTriggerOid, &updateTriggerOid); + Assert(OidIsValid(insertTriggerOid) && OidIsValid(parentInsTrigger)); + TriggerSetParentTrigger(trigrel, insertTriggerOid, parentInsTrigger, + RelationGetRelid(partition)); + Assert(OidIsValid(updateTriggerOid) && OidIsValid(parentUpdTrigger)); + TriggerSetParentTrigger(trigrel, updateTriggerOid, parentUpdTrigger, + RelationGetRelid(partition)); + } /* * We updated this pg_constraint row above to set its parent; validating @@ -11792,6 +11956,10 @@ RemoveInheritedConstraint(Relation conrel, Relation trigrel, Oid conoid, * * The subroutine for tryAttachPartitionForeignKey handles the deletion of * action triggers for the foreign key constraint. + * + * If valid confrelid and conrelid values are not provided, the respective + * trigger check will be skipped, and the trigger will be considered for + * removal. */ static void DropForeignKeyConstraintTriggers(Relation trigrel, Oid conoid, Oid confrelid, @@ -11812,10 +11980,27 @@ DropForeignKeyConstraintTriggers(Relation trigrel, Oid conoid, Oid confrelid, Form_pg_trigger trgform = (Form_pg_trigger) GETSTRUCT(trigtup); ObjectAddress trigger; - if (trgform->tgconstrrelid != conrelid) + /* Invalid if trigger is not for a referential integrity constraint */ + if (!OidIsValid(trgform->tgconstrrelid)) continue; - if (trgform->tgrelid != confrelid) + if (OidIsValid(conrelid) && trgform->tgconstrrelid != conrelid) continue; + if (OidIsValid(confrelid) && trgform->tgrelid != confrelid) + continue; + + /* We should be dropping trigger related to foreign key constraint */ + Assert(trgform->tgfoid == F_RI_FKEY_CHECK_INS || + trgform->tgfoid == F_RI_FKEY_CHECK_UPD || + trgform->tgfoid == F_RI_FKEY_CASCADE_DEL || + trgform->tgfoid == F_RI_FKEY_CASCADE_UPD || + trgform->tgfoid == F_RI_FKEY_RESTRICT_DEL || + trgform->tgfoid == F_RI_FKEY_RESTRICT_UPD || + trgform->tgfoid == F_RI_FKEY_SETNULL_DEL || + trgform->tgfoid == F_RI_FKEY_SETNULL_UPD || + trgform->tgfoid == F_RI_FKEY_SETDEFAULT_DEL || + trgform->tgfoid == F_RI_FKEY_SETDEFAULT_UPD || + trgform->tgfoid == F_RI_FKEY_NOACTION_DEL || + trgform->tgfoid == F_RI_FKEY_NOACTION_UPD); /* * The constraint is originally set up to contain this trigger as an @@ -12028,6 +12213,11 @@ ATExecAlterConstraint(List **wqueue, Relation rel, ATAlterConstraint *cmdcon, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("constraint \"%s\" of relation \"%s\" is not a foreign key constraint", cmdcon->conname, RelationGetRelationName(rel)))); + if (cmdcon->alterEnforceability && currcon->contype != CONSTRAINT_FOREIGN) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("cannot alter enforceability of constraint \"%s\" of relation \"%s\"", + cmdcon->conname, RelationGetRelationName(rel)))); if (cmdcon->alterInheritability && currcon->contype != CONSTRAINT_NOTNULL) ereport(ERROR, @@ -12107,7 +12297,7 @@ ATExecAlterConstraint(List **wqueue, Relation rel, ATAlterConstraint *cmdcon, /* * A subroutine of ATExecAlterConstraint that calls the respective routines for - * altering constraint attributes. + * altering constraint's enforceability, deferrability or inheritability. */ static bool ATExecAlterConstraintInternal(List **wqueue, ATAlterConstraint *cmdcon, @@ -12115,16 +12305,35 @@ ATExecAlterConstraintInternal(List **wqueue, ATAlterConstraint *cmdcon, HeapTuple contuple, bool recurse, LOCKMODE lockmode) { + Form_pg_constraint currcon; bool changed = false; List *otherrelids = NIL; + currcon = (Form_pg_constraint) GETSTRUCT(contuple); + /* - * Do the catalog work for the deferrability change, recurse if necessary. - */ - if (cmdcon->alterDeferrability && - ATExecAlterConstrDeferrability(wqueue, cmdcon, conrel, tgrel, rel, - contuple, recurse, &otherrelids, - lockmode)) + * Do the catalog work for the enforceability or deferrability change, + * recurse if necessary. + * + * Note that even if deferrability is requested to be altered along with + * enforceability, we don't need to explicitly update multiple entries in + * pg_trigger related to deferrability. + * + * Modifying enforceability involves either creating or dropping the + * trigger, during which the deferrability setting will be adjusted + * automatically. + */ + if (cmdcon->alterEnforceability && + ATExecAlterConstrEnforceability(wqueue, cmdcon, conrel, tgrel, + currcon->conrelid, currcon->confrelid, + contuple, lockmode, InvalidOid, + InvalidOid, InvalidOid, InvalidOid)) + changed = true; + + else if (cmdcon->alterDeferrability && + ATExecAlterConstrDeferrability(wqueue, cmdcon, conrel, tgrel, rel, + contuple, recurse, &otherrelids, + lockmode)) { /* * AlterConstrUpdateConstraintEntry already invalidated relcache for @@ -12149,6 +12358,151 @@ ATExecAlterConstraintInternal(List **wqueue, ATAlterConstraint *cmdcon, return changed; } +/* + * Returns true if the constraint's enforceability is altered. + * + * Depending on whether the constraint is being set to ENFORCED or NOT + * ENFORCED, it creates or drops the trigger accordingly. + * + * Note that we must recurse even when trying to change a constraint to not + * enforced if it is already not enforced, in case descendant constraints + * might be enforced and need to be changed to not enforced. Conversely, we + * should do nothing if a constraint is being set to enforced and is already + * enforced, as descendant constraints cannot be different in that case. + */ +static bool +ATExecAlterConstrEnforceability(List **wqueue, ATAlterConstraint *cmdcon, + Relation conrel, Relation tgrel, + Oid fkrelid, Oid pkrelid, + HeapTuple contuple, LOCKMODE lockmode, + Oid ReferencedParentDelTrigger, + Oid ReferencedParentUpdTrigger, + Oid ReferencingParentInsTrigger, + Oid ReferencingParentUpdTrigger) +{ + Form_pg_constraint currcon; + Oid conoid; + Relation rel; + bool changed = false; + + /* Since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + + Assert(cmdcon->alterEnforceability); + + currcon = (Form_pg_constraint) GETSTRUCT(contuple); + conoid = currcon->oid; + + /* Should be foreign key constraint */ + Assert(currcon->contype == CONSTRAINT_FOREIGN); + + rel = table_open(currcon->conrelid, lockmode); + + if (currcon->conenforced != cmdcon->is_enforced) + { + AlterConstrUpdateConstraintEntry(cmdcon, conrel, contuple); + changed = true; + } + + /* Drop triggers */ + if (!cmdcon->is_enforced) + { + /* + * When setting a constraint to NOT ENFORCED, the constraint triggers + * need to be dropped. Therefore, we must process the child relations + * first, followed by the parent, to account for dependencies. + */ + if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE || + get_rel_relkind(currcon->confrelid) == RELKIND_PARTITIONED_TABLE) + AlterConstrEnforceabilityRecurse(wqueue, cmdcon, conrel, tgrel, + fkrelid, pkrelid, contuple, + lockmode, InvalidOid, InvalidOid, + InvalidOid, InvalidOid); + + /* Drop all the triggers */ + DropForeignKeyConstraintTriggers(tgrel, conoid, InvalidOid, InvalidOid); + } + else if (changed) /* Create triggers */ + { + Oid ReferencedDelTriggerOid = InvalidOid, + ReferencedUpdTriggerOid = InvalidOid, + ReferencingInsTriggerOid = InvalidOid, + ReferencingUpdTriggerOid = InvalidOid; + + /* Prepare the minimal information required for trigger creation. */ + Constraint *fkconstraint = makeNode(Constraint); + + fkconstraint->conname = pstrdup(NameStr(currcon->conname)); + fkconstraint->fk_matchtype = currcon->confmatchtype; + fkconstraint->fk_upd_action = currcon->confupdtype; + fkconstraint->fk_del_action = currcon->confdeltype; + + /* Create referenced triggers */ + if (currcon->conrelid == fkrelid) + createForeignKeyActionTriggers(currcon->conrelid, + currcon->confrelid, + fkconstraint, + conoid, + currcon->conindid, + ReferencedParentDelTrigger, + ReferencedParentUpdTrigger, + &ReferencedDelTriggerOid, + &ReferencedUpdTriggerOid); + + /* Create referencing triggers */ + if (currcon->confrelid == pkrelid) + createForeignKeyCheckTriggers(currcon->conrelid, + pkrelid, + fkconstraint, + conoid, + currcon->conindid, + ReferencingParentInsTrigger, + ReferencingParentUpdTrigger, + &ReferencingInsTriggerOid, + &ReferencingUpdTriggerOid); + + /* + * Tell Phase 3 to check that the constraint is satisfied by existing + * rows. + */ + if (rel->rd_rel->relkind == RELKIND_RELATION) + { + AlteredTableInfo *tab; + NewConstraint *newcon; + + newcon = (NewConstraint *) palloc0(sizeof(NewConstraint)); + newcon->name = fkconstraint->conname; + newcon->contype = CONSTR_FOREIGN; + newcon->refrelid = currcon->confrelid; + newcon->refindid = currcon->conindid; + newcon->conid = currcon->oid; + newcon->qual = (Node *) fkconstraint; + + /* Find or create work queue entry for this table */ + tab = ATGetQueueEntry(wqueue, rel); + tab->constraints = lappend(tab->constraints, newcon); + } + + /* + * If the table at either end of the constraint is partitioned, we + * need to recurse and create triggers for each constraint that is a + * child of this one. + */ + if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE || + get_rel_relkind(currcon->confrelid) == RELKIND_PARTITIONED_TABLE) + AlterConstrEnforceabilityRecurse(wqueue, cmdcon, conrel, tgrel, + fkrelid, pkrelid, contuple, + lockmode, ReferencedDelTriggerOid, + ReferencedUpdTriggerOid, + ReferencingInsTriggerOid, + ReferencingUpdTriggerOid); + } + + table_close(rel, NoLock); + + return changed; +} + /* * Returns true if the constraint's deferrability is altered. * @@ -12353,6 +12707,55 @@ AlterConstrTriggerDeferrability(Oid conoid, Relation tgrel, Relation rel, systable_endscan(tgscan); } +/* + * Invokes ATExecAlterConstrEnforceability for each constraint that is a child of + * the specified constraint. + * + * Note that this doesn't handle recursion the normal way, viz. by scanning the + * list of child relations and recursing; instead it uses the conparentid + * relationships. This may need to be reconsidered. + * + * The arguments to this function have the same meaning as the arguments to + * ATExecAlterConstrEnforceability. + */ +static void +AlterConstrEnforceabilityRecurse(List **wqueue, ATAlterConstraint *cmdcon, + Relation conrel, Relation tgrel, + Oid fkrelid, Oid pkrelid, + HeapTuple contuple, LOCKMODE lockmode, + Oid ReferencedParentDelTrigger, + Oid ReferencedParentUpdTrigger, + Oid ReferencingParentInsTrigger, + Oid ReferencingParentUpdTrigger) +{ + Form_pg_constraint currcon; + Oid conoid; + ScanKeyData pkey; + SysScanDesc pscan; + HeapTuple childtup; + + currcon = (Form_pg_constraint) GETSTRUCT(contuple); + conoid = currcon->oid; + + ScanKeyInit(&pkey, + Anum_pg_constraint_conparentid, + BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(conoid)); + + pscan = systable_beginscan(conrel, ConstraintParentIndexId, + true, NULL, 1, &pkey); + + while (HeapTupleIsValid(childtup = systable_getnext(pscan))) + ATExecAlterConstrEnforceability(wqueue, cmdcon, conrel, tgrel, fkrelid, + pkrelid, childtup, lockmode, + ReferencedParentDelTrigger, + ReferencedParentUpdTrigger, + ReferencingParentInsTrigger, + ReferencingParentUpdTrigger); + + systable_endscan(pscan); +} + /* * Invokes ATExecAlterConstrDeferrability for each constraint that is a child of * the specified constraint. @@ -12413,11 +12816,25 @@ AlterConstrUpdateConstraintEntry(ATAlterConstraint *cmdcon, Relation conrel, HeapTuple copyTuple; Form_pg_constraint copy_con; - Assert(cmdcon->alterDeferrability || cmdcon->alterInheritability); + Assert(cmdcon->alterEnforceability || cmdcon->alterDeferrability || + cmdcon->alterInheritability); copyTuple = heap_copytuple(contuple); copy_con = (Form_pg_constraint) GETSTRUCT(copyTuple); + if (cmdcon->alterEnforceability) + { + copy_con->conenforced = cmdcon->is_enforced; + + /* + * NB: The convalidated status is irrelevant when the constraint is + * set to NOT ENFORCED, but for consistency, it should still be set + * appropriately. Similarly, if the constraint is later changed to + * ENFORCED, validation will be performed during phase 3, so it makes + * sense to mark it as valid in that case. + */ + copy_con->convalidated = cmdcon->is_enforced; + } if (cmdcon->alterDeferrability) { copy_con->condeferrable = cmdcon->deferrable; @@ -12486,11 +12903,12 @@ ATExecValidateConstraint(List **wqueue, Relation rel, char *constrName, con = (Form_pg_constraint) GETSTRUCT(tuple); if (con->contype != CONSTRAINT_FOREIGN && - con->contype != CONSTRAINT_CHECK) + con->contype != CONSTRAINT_CHECK && + con->contype != CONSTRAINT_NOTNULL) ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint", - constrName, RelationGetRelationName(rel)))); + errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("constraint \"%s\" of relation \"%s\" is not a foreign key, check, or not-null constraint", + constrName, RelationGetRelationName(rel))); if (!con->conenforced) ereport(ERROR, @@ -12508,6 +12926,11 @@ ATExecValidateConstraint(List **wqueue, Relation rel, char *constrName, QueueCheckConstraintValidation(wqueue, conrel, rel, constrName, tuple, recurse, recursing, lockmode); } + else if (con->contype == CONSTRAINT_NOTNULL) + { + QueueNNConstraintValidation(wqueue, conrel, rel, + tuple, recurse, recursing, lockmode); + } ObjectAddressSet(address, ConstraintRelationId, con->oid); } @@ -12724,6 +13147,109 @@ QueueCheckConstraintValidation(List **wqueue, Relation conrel, Relation rel, heap_freetuple(copyTuple); } +/* + * QueueNNConstraintValidation + * + * Add an entry to the wqueue to validate the given not-null constraint in + * Phase 3 and update the convalidated field in the pg_constraint catalog for + * the specified relation and all its inheriting children. + */ +static void +QueueNNConstraintValidation(List **wqueue, Relation conrel, Relation rel, + HeapTuple contuple, bool recurse, bool recursing, + LOCKMODE lockmode) +{ + Form_pg_constraint con; + AlteredTableInfo *tab; + HeapTuple copyTuple; + Form_pg_constraint copy_con; + List *children = NIL; + AttrNumber attnum; + char *colname; + + con = (Form_pg_constraint) GETSTRUCT(contuple); + Assert(con->contype == CONSTRAINT_NOTNULL); + + attnum = extractNotNullColumn(contuple); + + /* + * If we're recursing, we've already done this for parent, so skip it. + * Also, if the constraint is a NO INHERIT constraint, we shouldn't try to + * look for it in the children. + * + * We recurse before validating on the parent, to reduce risk of + * deadlocks. + */ + if (!recursing && !con->connoinherit) + children = find_all_inheritors(RelationGetRelid(rel), lockmode, NULL); + + colname = get_attname(RelationGetRelid(rel), attnum, false); + foreach_oid(childoid, children) + { + Relation childrel; + HeapTuple contup; + Form_pg_constraint childcon; + char *conname; + + if (childoid == RelationGetRelid(rel)) + continue; + + /* + * If we are told not to recurse, there had better not be any child + * tables, because we can't mark the constraint on the parent valid + * unless it is valid for all child tables. + */ + if (!recurse) + ereport(ERROR, + errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("constraint must be validated on child tables too")); + + /* + * The column on child might have a different attnum, so search by + * column name. + */ + contup = findNotNullConstraint(childoid, colname); + if (!contup) + elog(ERROR, "cache lookup failed for not-null constraint on column \"%s\" of relation \"%s\"", + colname, get_rel_name(childoid)); + childcon = (Form_pg_constraint) GETSTRUCT(contup); + if (childcon->convalidated) + continue; + + /* find_all_inheritors already got lock */ + childrel = table_open(childoid, NoLock); + conname = pstrdup(NameStr(childcon->conname)); + + /* XXX improve ATExecValidateConstraint API to avoid double search */ + ATExecValidateConstraint(wqueue, childrel, conname, + false, true, lockmode); + table_close(childrel, NoLock); + } + + /* Set attnotnull appropriately without queueing another validation */ + set_attnotnull(NULL, rel, attnum, true, false); + + tab = ATGetQueueEntry(wqueue, rel); + tab->verify_new_notnull = true; + + /* + * Invalidate relcache so that others see the new validated constraint. + */ + CacheInvalidateRelcache(rel); + + /* + * Now update the catalogs, while we have the door open. + */ + copyTuple = heap_copytuple(contuple); + copy_con = (Form_pg_constraint) GETSTRUCT(copyTuple); + copy_con->convalidated = true; + CatalogTupleUpdate(conrel, ©Tuple->t_self, copyTuple); + + InvokeObjectPostAlterHook(ConstraintRelationId, con->oid, 0); + + heap_freetuple(copyTuple); +} + /* * transformColumnNameList - transform list of column names * @@ -17137,9 +17663,9 @@ MergeConstraintsIntoExisting(Relation child_rel, Relation parent_rel) NameStr(child_con->conname), RelationGetRelationName(child_rel)))); /* - * A non-enforced child constraint cannot be merged with an - * enforced parent constraint. However, the reverse is allowed, - * where the child constraint is enforced. + * A NOT ENFORCED child constraint cannot be merged with an + * ENFORCED parent constraint. However, the reverse is allowed, + * where the child constraint is ENFORCED. */ if (parent_con->conenforced && !child_con->conenforced) ereport(ERROR, @@ -19445,17 +19971,19 @@ PartConstraintImpliedByRelConstraint(Relation scanrel, for (i = 1; i <= natts; i++) { - Form_pg_attribute att = TupleDescAttr(scanrel->rd_att, i - 1); + CompactAttribute *att = TupleDescCompactAttr(scanrel->rd_att, i - 1); - if (att->attnotnull && !att->attisdropped) + /* invalid not-null constraint must be ignored here */ + if (att->attnullability == ATTNULLABLE_VALID && !att->attisdropped) { + Form_pg_attribute wholeatt = TupleDescAttr(scanrel->rd_att, i - 1); NullTest *ntest = makeNode(NullTest); ntest->arg = (Expr *) makeVar(1, i, - att->atttypid, - att->atttypmod, - att->attcollation, + wholeatt->atttypid, + wholeatt->atttypmod, + wholeatt->attcollation, 0); ntest->nulltesttype = IS_NOT_NULL; @@ -20510,8 +21038,6 @@ DetachPartitionFinalize(Relation rel, Relation partRel, bool concurrent, ForeignKeyCacheInfo *fk = lfirst(cell); HeapTuple contup; Form_pg_constraint conform; - Oid insertTriggerOid, - updateTriggerOid; contup = SearchSysCache1(CONSTROID, ObjectIdGetDatum(fk->conoid)); if (!HeapTupleIsValid(contup)) @@ -20538,17 +21064,25 @@ DetachPartitionFinalize(Relation rel, Relation partRel, bool concurrent, /* * Also, look up the partition's "check" triggers corresponding to the - * constraint being detached and detach them from the parent triggers. + * ENFORCED constraint being detached and detach them from the parent + * triggers. NOT ENFORCED constraints do not have these triggers; + * therefore, this step is not needed. */ - GetForeignKeyCheckTriggers(trigrel, - fk->conoid, fk->confrelid, fk->conrelid, - &insertTriggerOid, &updateTriggerOid); - Assert(OidIsValid(insertTriggerOid)); - TriggerSetParentTrigger(trigrel, insertTriggerOid, InvalidOid, - RelationGetRelid(partRel)); - Assert(OidIsValid(updateTriggerOid)); - TriggerSetParentTrigger(trigrel, updateTriggerOid, InvalidOid, - RelationGetRelid(partRel)); + if (fk->conenforced) + { + Oid insertTriggerOid, + updateTriggerOid; + + GetForeignKeyCheckTriggers(trigrel, + fk->conoid, fk->confrelid, fk->conrelid, + &insertTriggerOid, &updateTriggerOid); + Assert(OidIsValid(insertTriggerOid)); + TriggerSetParentTrigger(trigrel, insertTriggerOid, InvalidOid, + RelationGetRelid(partRel)); + Assert(OidIsValid(updateTriggerOid)); + TriggerSetParentTrigger(trigrel, updateTriggerOid, InvalidOid, + RelationGetRelid(partRel)); + } /* * Lastly, create the action triggers on the referenced table, using @@ -20588,8 +21122,9 @@ DetachPartitionFinalize(Relation rel, Relation partRel, bool concurrent, fkconstraint->conname = pstrdup(NameStr(conform->conname)); fkconstraint->deferrable = conform->condeferrable; fkconstraint->initdeferred = conform->condeferred; + fkconstraint->is_enforced = conform->conenforced; fkconstraint->skip_validation = true; - fkconstraint->initially_valid = true; + fkconstraint->initially_valid = conform->convalidated; /* a few irrelevant fields omitted here */ fkconstraint->pktable = NULL; fkconstraint->fk_attrs = NIL; diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index c9f61130c6940..67f8e70f9c166 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -5057,21 +5057,6 @@ AfterTriggerBeginQuery(void) } -/* ---------- - * AfterTriggerAbortQuery() - * - * Called by standard_ExecutorEnd() if the query execution was aborted due to - * the plan becoming invalid during initialization. - * ---------- - */ -void -AfterTriggerAbortQuery(void) -{ - /* Revert the actions of AfterTriggerBeginQuery(). */ - afterTriggers.query_depth--; -} - - /* ---------- * AfterTriggerEndQuery() * diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index 3cb3ca1cca1cd..45ae7472ab5ad 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -1810,6 +1810,7 @@ makeRangeConstructors(const char *name, Oid namespace, PointerGetDatum(NULL), /* parameterNames */ NIL, /* parameterDefaults */ PointerGetDatum(NULL), /* trftypes */ + NIL, /* trfoids */ PointerGetDatum(NULL), /* proconfig */ InvalidOid, /* prosupport */ 1.0, /* procost */ @@ -1875,6 +1876,7 @@ makeMultirangeConstructors(const char *name, Oid namespace, PointerGetDatum(NULL), /* parameterNames */ NIL, /* parameterDefaults */ PointerGetDatum(NULL), /* trftypes */ + NIL, /* trfoids */ PointerGetDatum(NULL), /* proconfig */ InvalidOid, /* prosupport */ 1.0, /* procost */ @@ -1919,6 +1921,7 @@ makeMultirangeConstructors(const char *name, Oid namespace, PointerGetDatum(NULL), /* parameterNames */ NIL, /* parameterDefaults */ PointerGetDatum(NULL), /* trftypes */ + NIL, /* trfoids */ PointerGetDatum(NULL), /* proconfig */ InvalidOid, /* prosupport */ 1.0, /* procost */ @@ -1957,6 +1960,7 @@ makeMultirangeConstructors(const char *name, Oid namespace, PointerGetDatum(NULL), /* parameterNames */ NIL, /* parameterDefaults */ PointerGetDatum(NULL), /* trftypes */ + NIL, /* trfoids */ PointerGetDatum(NULL), /* proconfig */ InvalidOid, /* prosupport */ 1.0, /* procost */ diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index db5da3ce82621..33a33bf6b1cfa 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -657,6 +657,8 @@ vacuum(List *relations, VacuumParams *params, BufferAccessStrategy bstrategy, if (use_own_xacts) { PopActiveSnapshot(); + /* standard_ProcessUtility() does CCI if !use_own_xacts */ + CommandCounterIncrement(); CommitTransactionCommand(); } else diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index a9f2a3a306245..608f10d9412da 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -1163,14 +1163,12 @@ assign_maintenance_io_concurrency(int newval, void *extra) void assign_io_max_combine_limit(int newval, void *extra) { - io_max_combine_limit = newval; - io_combine_limit = Min(io_max_combine_limit, io_combine_limit_guc); + io_combine_limit = Min(newval, io_combine_limit_guc); } void assign_io_combine_limit(int newval, void *extra) { - io_combine_limit_guc = newval; - io_combine_limit = Min(io_max_combine_limit, io_combine_limit_guc); + io_combine_limit = Min(io_max_combine_limit, newval); } /* diff --git a/src/backend/executor/README b/src/backend/executor/README index 02745c23ed974..54f4782f31b60 100644 --- a/src/backend/executor/README +++ b/src/backend/executor/README @@ -285,28 +285,6 @@ are typically reset to empty once per tuple. Per-tuple contexts are usually associated with ExprContexts, and commonly each PlanState node has its own ExprContext to evaluate its qual and targetlist expressions in. -Relation Locking ----------------- - -When the executor initializes a plan tree for execution, it doesn't lock -non-index relations if the plan tree is freshly generated and not derived -from a CachedPlan. This is because such locks have already been established -during the query's parsing, rewriting, and planning phases. However, with a -cached plan tree, some relations may remain unlocked. The function -AcquireExecutorLocks() only locks unprunable relations in the plan, deferring -the locking of prunable ones to executor initialization. This avoids -unnecessary locking of relations that will be pruned during "initial" runtime -pruning in ExecDoInitialPruning(). - -This approach creates a window where a cached plan tree with child tables -could become outdated if another backend modifies these tables before -ExecDoInitialPruning() locks them. As a result, the executor has the added duty -to verify the plan tree's validity whenever it locks a child table after -doing initial pruning. This validation is done by checking the CachedPlan.is_valid -flag. If the plan tree is outdated (is_valid = false), the executor stops -further initialization, cleans up anything in EState that would have been -allocated up to that point, and retries execution after recreating the -invalid plan in the CachedPlan. See ExecutorStartCachedPlan(). Query Processing Control Flow ----------------------------- @@ -315,13 +293,11 @@ This is a sketch of control flow for full query processing: CreateQueryDesc - ExecutorStart or ExecutorStartCachedPlan + ExecutorStart CreateExecutorState creates per-query context - switch to per-query context to run ExecDoInitialPruning and ExecInitNode + switch to per-query context to run ExecInitNode AfterTriggerBeginQuery - ExecDoInitialPruning - does initial pruning and locks surviving partitions if needed ExecInitNode --- recursively scans plan tree ExecInitNode recurse into subsidiary nodes @@ -345,12 +321,7 @@ This is a sketch of control flow for full query processing: FreeQueryDesc -As mentioned in the "Relation Locking" section, if the plan tree is found to -be stale after locking partitions in ExecDoInitialPruning(), the control is -immediately returned to ExecutorStartCachedPlan(), which will create a new plan -tree and perform the steps starting from CreateExecutorState() again. - -Per above comments, it's not really critical for ExecEndPlan to free any +Per above comments, it's not really critical for ExecEndNode to free any memory; it'll all go away in FreeExecutorState anyway. However, we do need to be careful to close relations, drop buffer pins, etc, so we do need to scan the plan state tree to find these sorts of resources. diff --git a/src/backend/executor/execIndexing.c b/src/backend/executor/execIndexing.c index e3fe9b78bb5da..bdf862b24062e 100644 --- a/src/backend/executor/execIndexing.c +++ b/src/backend/executor/execIndexing.c @@ -214,9 +214,8 @@ ExecOpenIndices(ResultRelInfo *resultRelInfo, bool speculative) ii = BuildIndexInfo(indexDesc); /* - * If the indexes are to be used for speculative insertion or conflict - * detection in logical replication, add extra information required by - * unique index entries. + * If the indexes are to be used for speculative insertion, add extra + * information required by unique index entries. */ if (speculative && ii->ii_Unique && !indexDesc->rd_index->indisexclusion) BuildSpeculativeIndexInfo(indexDesc, ii); diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 2da848970be0e..0391798dd2c33 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -55,13 +55,11 @@ #include "parser/parse_relation.h" #include "pgstat.h" #include "rewrite/rewriteHandler.h" -#include "storage/lmgr.h" #include "tcop/utility.h" #include "utils/acl.h" #include "utils/backend_status.h" #include "utils/lsyscache.h" #include "utils/partcache.h" -#include "utils/plancache.h" #include "utils/rls.h" #include "utils/snapmgr.h" @@ -119,16 +117,11 @@ static void ReportNotNullViolationError(ResultRelInfo *resultRelInfo, * get control when ExecutorStart is called. Such a plugin would * normally call standard_ExecutorStart(). * - * Return value indicates if the plan has been initialized successfully so - * that queryDesc->planstate contains a valid PlanState tree. It may not - * if the plan got invalidated during InitPlan(). * ---------------------------------------------------------------- */ -bool +void ExecutorStart(QueryDesc *queryDesc, int eflags) { - bool plan_valid; - /* * In some cases (e.g. an EXECUTE statement or an execute message with the * extended query protocol) the query_id won't be reported, so do it now. @@ -140,14 +133,12 @@ ExecutorStart(QueryDesc *queryDesc, int eflags) pgstat_report_query_id(queryDesc->plannedstmt->queryId, false); if (ExecutorStart_hook) - plan_valid = (*ExecutorStart_hook) (queryDesc, eflags); + (*ExecutorStart_hook) (queryDesc, eflags); else - plan_valid = standard_ExecutorStart(queryDesc, eflags); - - return plan_valid; + standard_ExecutorStart(queryDesc, eflags); } -bool +void standard_ExecutorStart(QueryDesc *queryDesc, int eflags) { EState *estate; @@ -271,64 +262,6 @@ standard_ExecutorStart(QueryDesc *queryDesc, int eflags) InitPlan(queryDesc, eflags); MemoryContextSwitchTo(oldcontext); - - return ExecPlanStillValid(queryDesc->estate); -} - -/* - * ExecutorStartCachedPlan - * Start execution for a given query in the CachedPlanSource, replanning - * if the plan is invalidated due to deferred locks taken during the - * plan's initialization - * - * This function handles cases where the CachedPlan given in queryDesc->cplan - * might become invalid during the initialization of the plan given in - * queryDesc->plannedstmt, particularly when prunable relations in it are - * locked after performing initial pruning. If the locks invalidate the plan, - * the function calls UpdateCachedPlan() to replan all queries in the - * CachedPlan, and then retries initialization. - * - * The function repeats the process until ExecutorStart() successfully - * initializes the plan, that is without the CachedPlan becoming invalid. - */ -void -ExecutorStartCachedPlan(QueryDesc *queryDesc, int eflags, - CachedPlanSource *plansource, - int query_index) -{ - if (unlikely(queryDesc->cplan == NULL)) - elog(ERROR, "ExecutorStartCachedPlan(): missing CachedPlan"); - if (unlikely(plansource == NULL)) - elog(ERROR, "ExecutorStartCachedPlan(): missing CachedPlanSource"); - - /* - * Loop and retry with an updated plan until no further invalidation - * occurs. - */ - while (1) - { - if (!ExecutorStart(queryDesc, eflags)) - { - /* - * Clean up the current execution state before creating the new - * plan to retry ExecutorStart(). Mark execution as aborted to - * ensure that AFTER trigger state is properly reset. - */ - queryDesc->estate->es_aborted = true; - ExecutorEnd(queryDesc); - - /* Retry ExecutorStart() with an updated plan tree. */ - queryDesc->plannedstmt = UpdateCachedPlan(plansource, query_index, - queryDesc->queryEnv); - } - else - - /* - * Exit the loop if the plan is initialized successfully and no - * sinval messages were received that invalidated the CachedPlan. - */ - break; - } } /* ---------------------------------------------------------------- @@ -387,7 +320,6 @@ standard_ExecutorRun(QueryDesc *queryDesc, estate = queryDesc->estate; Assert(estate != NULL); - Assert(!estate->es_aborted); Assert(!(estate->es_top_eflags & EXEC_FLAG_EXPLAIN_ONLY)); /* caller must ensure the query's snapshot is active */ @@ -494,11 +426,8 @@ standard_ExecutorFinish(QueryDesc *queryDesc) Assert(estate != NULL); Assert(!(estate->es_top_eflags & EXEC_FLAG_EXPLAIN_ONLY)); - /* - * This should be run once and only once per Executor instance and never - * if the execution was aborted. - */ - Assert(!estate->es_finished && !estate->es_aborted); + /* This should be run once and only once per Executor instance */ + Assert(!estate->es_finished); /* Switch into per-query memory context */ oldcontext = MemoryContextSwitchTo(estate->es_query_cxt); @@ -561,10 +490,11 @@ standard_ExecutorEnd(QueryDesc *queryDesc) (PgStat_Counter) estate->es_parallel_workers_launched); /* - * Check that ExecutorFinish was called, unless in EXPLAIN-only mode or if - * execution was aborted. + * Check that ExecutorFinish was called, unless in EXPLAIN-only mode. This + * Assert is needed because ExecutorFinish is new as of 9.1, and callers + * might forget to call it. */ - Assert(estate->es_finished || estate->es_aborted || + Assert(estate->es_finished || (estate->es_top_eflags & EXEC_FLAG_EXPLAIN_ONLY)); /* @@ -578,14 +508,6 @@ standard_ExecutorEnd(QueryDesc *queryDesc) UnregisterSnapshot(estate->es_snapshot); UnregisterSnapshot(estate->es_crosscheck_snapshot); - /* - * Reset AFTER trigger module if the query execution was aborted. - */ - if (estate->es_aborted && - !(estate->es_top_eflags & - (EXEC_FLAG_SKIP_TRIGGERS | EXEC_FLAG_EXPLAIN_ONLY))) - AfterTriggerAbortQuery(); - /* * Must switch out of context before destroying it */ @@ -684,21 +606,6 @@ ExecCheckPermissions(List *rangeTable, List *rteperminfos, (rte->rtekind == RTE_SUBQUERY && rte->relkind == RELKIND_VIEW)); - /* - * Ensure that we have at least an AccessShareLock on relations - * whose permissions need to be checked. - * - * Skip this check in a parallel worker because locks won't be - * taken until ExecInitNode() performs plan initialization. - * - * XXX: ExecCheckPermissions() in a parallel worker may be - * redundant with the checks done in the leader process, so this - * should be reviewed to ensure it’s necessary. - */ - Assert(IsParallelWorker() || - CheckRelationOidLockedByMe(rte->relid, AccessShareLock, - true)); - (void) getRTEPermissionInfo(rteperminfos, rte); /* Many-to-one mapping not allowed */ Assert(!bms_is_member(rte->perminfoindex, indexset)); @@ -924,12 +831,6 @@ ExecCheckXactReadOnly(PlannedStmt *plannedstmt) * * Initializes the query plan: open files, allocate storage * and start up the rule manager - * - * If the plan originates from a CachedPlan (given in queryDesc->cplan), - * it can become invalid during runtime "initial" pruning when the - * remaining set of locks is taken. The function returns early in that - * case without initializing the plan, and the caller is expected to - * retry with a new valid plan. * ---------------------------------------------------------------- */ static void @@ -937,7 +838,6 @@ InitPlan(QueryDesc *queryDesc, int eflags) { CmdType operation = queryDesc->operation; PlannedStmt *plannedstmt = queryDesc->plannedstmt; - CachedPlan *cachedplan = queryDesc->cplan; Plan *plan = plannedstmt->planTree; List *rangeTable = plannedstmt->rtable; EState *estate = queryDesc->estate; @@ -958,7 +858,6 @@ InitPlan(QueryDesc *queryDesc, int eflags) bms_copy(plannedstmt->unprunableRelids)); estate->es_plannedstmt = plannedstmt; - estate->es_cachedplan = cachedplan; estate->es_part_prune_infos = plannedstmt->partPruneInfos; /* @@ -972,9 +871,6 @@ InitPlan(QueryDesc *queryDesc, int eflags) */ ExecDoInitialPruning(estate); - if (!ExecPlanStillValid(estate)) - return; - /* * Next, build the ExecRowMark array from the PlanRowMark(s), if any. */ @@ -1861,7 +1757,7 @@ ExecRelCheck(ResultRelInfo *resultRelInfo, MemoryContext oldContext; /* - * CheckConstraintFetch let this pass with only a warning, but now we + * CheckNNConstraintFetch let this pass with only a warning, but now we * should fail rather than possibly failing to enforce an important * constraint. */ @@ -3092,9 +2988,6 @@ EvalPlanQualStart(EPQState *epqstate, Plan *planTree) * the snapshot, rangetable, and external Param info. They need their own * copies of local state, including a tuple table, es_param_exec_vals, * result-rel info, etc. - * - * es_cachedplan is not copied because EPQ plan execution does not acquire - * any new locks that could invalidate the CachedPlan. */ rcestate->es_direction = ForwardScanDirection; rcestate->es_snapshot = parentestate->es_snapshot; diff --git a/src/backend/executor/execParallel.c b/src/backend/executor/execParallel.c index 39c990ae638d5..f3e77bda27906 100644 --- a/src/backend/executor/execParallel.c +++ b/src/backend/executor/execParallel.c @@ -1278,15 +1278,8 @@ ExecParallelGetQueryDesc(shm_toc *toc, DestReceiver *receiver, paramspace = shm_toc_lookup(toc, PARALLEL_KEY_PARAMLISTINFO, false); paramLI = RestoreParamList(¶mspace); - /* - * Create a QueryDesc for the query. We pass NULL for cachedplan, because - * we don't have a pointer to the CachedPlan in the leader's process. It's - * fine because the only reason the executor needs to see it is to decide - * if it should take locks on certain relations, but parallel workers - * always take locks anyway. - */ + /* Create a QueryDesc for the query. */ return CreateQueryDesc(pstmt, - NULL, queryString, GetActiveSnapshot(), InvalidSnapshot, receiver, paramLI, NULL, instrument_options); @@ -1471,8 +1464,7 @@ ParallelQueryMain(dsm_segment *seg, shm_toc *toc) /* Start up the executor */ queryDesc->plannedstmt->jitFlags = fpes->jit_flags; - if (!ExecutorStart(queryDesc, fpes->eflags)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(queryDesc, fpes->eflags); /* Special executor initialization steps for parallel workers */ queryDesc->planstate->state->es_query_dsa = area; diff --git a/src/backend/executor/execPartition.c b/src/backend/executor/execPartition.c index 0374476ffad9e..514eae1037dc3 100644 --- a/src/backend/executor/execPartition.c +++ b/src/backend/executor/execPartition.c @@ -26,7 +26,6 @@ #include "partitioning/partdesc.h" #include "partitioning/partprune.h" #include "rewrite/rewriteManip.h" -#include "storage/lmgr.h" #include "utils/acl.h" #include "utils/lsyscache.h" #include "utils/partcache.h" @@ -191,7 +190,7 @@ static void InitPartitionPruneContext(PartitionPruneContext *context, PartitionKey partkey, PlanState *planstate, ExprContext *econtext); -static void InitExecPartitionPruneContexts(PartitionPruneState *prunstate, +static void InitExecPartitionPruneContexts(PartitionPruneState *prunestate, PlanState *parent_plan, Bitmapset *initially_valid_subplans, int n_total_subplans); @@ -1771,14 +1770,13 @@ adjust_partition_colnos_using_map(List *colnos, AttrMap *attrMap) * ExecDoInitialPruning: * Perform runtime "initial" pruning, if necessary, to determine the set * of child subnodes that need to be initialized during ExecInitNode() for - * all plan nodes that contain a PartitionPruneInfo. This also locks the - * leaf partitions whose subnodes will be initialized if needed. + * all plan nodes that contain a PartitionPruneInfo. * * ExecInitPartitionExecPruning: * Updates the PartitionPruneState found at given part_prune_index in * EState.es_part_prune_states for use during "exec" pruning if required. * Also returns the set of subplans to initialize that would be stored at - * part_prune_index in EState.es_part_prune_result by + * part_prune_index in EState.es_part_prune_results by * ExecDoInitialPruning(). Maps in PartitionPruneState are updated to * account for initial pruning possibly having eliminated some of the * subplans. @@ -1798,8 +1796,7 @@ adjust_partition_colnos_using_map(List *colnos, AttrMap *attrMap) * ExecDoInitialPruning * Perform runtime "initial" pruning, if necessary, to determine the set * of child subnodes that need to be initialized during ExecInitNode() for - * plan nodes that support partition pruning. This also locks the leaf - * partitions whose subnodes will be initialized if needed. + * plan nodes that support partition pruning. * * This function iterates over each PartitionPruneInfo entry in * estate->es_part_prune_infos. For each entry, it creates a PartitionPruneState @@ -1821,9 +1818,7 @@ adjust_partition_colnos_using_map(List *colnos, AttrMap *attrMap) void ExecDoInitialPruning(EState *estate) { - PlannedStmt *stmt = estate->es_plannedstmt; ListCell *lc; - List *locked_relids = NIL; foreach(lc, estate->es_part_prune_infos) { @@ -1849,68 +1844,11 @@ ExecDoInitialPruning(EState *estate) else validsubplan_rtis = all_leafpart_rtis; - if (ExecShouldLockRelations(estate)) - { - int rtindex = -1; - - while ((rtindex = bms_next_member(validsubplan_rtis, - rtindex)) >= 0) - { - RangeTblEntry *rte = exec_rt_fetch(rtindex, estate); - - Assert(rte->rtekind == RTE_RELATION && - rte->rellockmode != NoLock); - LockRelationOid(rte->relid, rte->rellockmode); - locked_relids = lappend_int(locked_relids, rtindex); - } - } estate->es_unpruned_relids = bms_add_members(estate->es_unpruned_relids, validsubplan_rtis); estate->es_part_prune_results = lappend(estate->es_part_prune_results, validsubplans); } - - /* - * Lock the first result relation of each ModifyTable node, even if it was - * pruned. This is required for ExecInitModifyTable(), which keeps its - * first result relation if all other result relations have been pruned, - * because some executor paths (e.g., in nodeModifyTable.c and - * execPartition.c) rely on there being at least one result relation. - * - * There's room for improvement here --- we actually only need to do this - * if all other result relations of the ModifyTable node were pruned, but - * we don't have an easy way to tell that here. - */ - if (stmt->resultRelations && ExecShouldLockRelations(estate)) - { - foreach(lc, stmt->firstResultRels) - { - Index firstResultRel = lfirst_int(lc); - - if (!bms_is_member(firstResultRel, estate->es_unpruned_relids)) - { - RangeTblEntry *rte = exec_rt_fetch(firstResultRel, estate); - - Assert(rte->rtekind == RTE_RELATION && rte->rellockmode != NoLock); - LockRelationOid(rte->relid, rte->rellockmode); - locked_relids = lappend_int(locked_relids, firstResultRel); - } - } - } - - /* - * Release the useless locks if the plan won't be executed. This is the - * same as what CheckCachedPlan() in plancache.c does. - */ - if (!ExecPlanStillValid(estate)) - { - foreach(lc, locked_relids) - { - RangeTblEntry *rte = exec_rt_fetch(lfirst_int(lc), estate); - - UnlockRelationOid(rte->relid, rte->rellockmode); - } - } } /* @@ -1983,8 +1921,8 @@ ExecInitPartitionExecPruning(PlanState *planstate, * account for any that were removed due to initial pruning; refer to the * condition in InitExecPartitionPruneContexts() that is used to determine * whether to do this. If no exec pruning needs to be done, we would thus - * leave the maps to be in an invalid invalid state, but that's ok since - * that data won't be consulted again (cf initial Assert in + * leave the maps to be in an invalid state, but that's ok since that data + * won't be consulted again (cf initial Assert in * ExecFindMatchingSubPlans). */ if (prunestate->do_exec_prune) @@ -2109,7 +2047,7 @@ CreatePartitionPruneState(EState *estate, PartitionPruneInfo *pruneinfo, */ partrel = ExecGetRangeTableRelation(estate, pinfo->rtindex, false); - /* Remember for InitExecPartitionPruneContext(). */ + /* Remember for InitExecPartitionPruneContexts(). */ pprune->partrel = partrel; partkey = RelationGetPartitionKey(partrel); diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c index ede89ea3cf972..53ddd25c42db9 100644 --- a/src/backend/executor/execReplication.c +++ b/src/backend/executor/execReplication.c @@ -431,6 +431,30 @@ RelationFindReplTupleSeq(Relation rel, LockTupleMode lockmode, return found; } +/* + * Build additional index information necessary for conflict detection. + */ +static void +BuildConflictIndexInfo(ResultRelInfo *resultRelInfo, Oid conflictindex) +{ + for (int i = 0; i < resultRelInfo->ri_NumIndices; i++) + { + Relation indexRelation = resultRelInfo->ri_IndexRelationDescs[i]; + IndexInfo *indexRelationInfo = resultRelInfo->ri_IndexRelationInfo[i]; + + if (conflictindex != RelationGetRelid(indexRelation)) + continue; + + /* + * This Assert will fail if BuildSpeculativeIndexInfo() is called + * twice for the given index. + */ + Assert(indexRelationInfo->ii_UniqueOps == NULL); + + BuildSpeculativeIndexInfo(indexRelation, indexRelationInfo); + } +} + /* * Find the tuple that violates the passed unique index (conflictindex). * @@ -452,6 +476,12 @@ FindConflictTuple(ResultRelInfo *resultRelInfo, EState *estate, *conflictslot = NULL; + /* + * Build additional information required to check constraints violations. + * See check_exclusion_or_unique_constraint(). + */ + BuildConflictIndexInfo(resultRelInfo, conflictindex); + retry: if (ExecCheckIndexConstraints(resultRelInfo, slot, estate, &conflictTid, &slot->tts_tid, diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c index 772c86e70e9bf..fdc65c2b42b33 100644 --- a/src/backend/executor/execUtils.c +++ b/src/backend/executor/execUtils.c @@ -147,7 +147,6 @@ CreateExecutorState(void) estate->es_top_eflags = 0; estate->es_instrument = 0; estate->es_finished = false; - estate->es_aborted = false; estate->es_exprcontexts = NIL; diff --git a/src/backend/executor/functions.c b/src/backend/executor/functions.c index 6aa8e9c4d8af5..359aafea681b9 100644 --- a/src/backend/executor/functions.c +++ b/src/backend/executor/functions.c @@ -31,8 +31,10 @@ #include "tcop/utility.h" #include "utils/builtins.h" #include "utils/datum.h" +#include "utils/funccache.h" #include "utils/lsyscache.h" #include "utils/memutils.h" +#include "utils/plancache.h" #include "utils/snapmgr.h" #include "utils/syscache.h" @@ -43,19 +45,20 @@ typedef struct { DestReceiver pub; /* publicly-known function pointers */ - Tuplestorestate *tstore; /* where to put result tuples */ - MemoryContext cxt; /* context containing tstore */ + Tuplestorestate *tstore; /* where to put result tuples, or NULL */ JunkFilter *filter; /* filter to convert tuple type */ } DR_sqlfunction; /* * We have an execution_state record for each query in a function. Each - * record contains a plantree for its query. If the query is currently in + * record references a plantree for its query. If the query is currently in * F_EXEC_RUN state then there's a QueryDesc too. * * The "next" fields chain together all the execution_state records generated * from a single original parsetree. (There will only be more than one in - * case of rule expansion of the original parsetree.) + * case of rule expansion of the original parsetree.) The chain structure is + * quite vestigial at this point, because we allocate the records in an array + * for ease of memory management. But we'll get rid of it some other day. */ typedef enum { @@ -74,57 +77,115 @@ typedef struct execution_state /* - * An SQLFunctionCache record is built during the first call, - * and linked to from the fn_extra field of the FmgrInfo struct. + * Data associated with a SQL-language function is kept in two main + * data structures: * - * Note that currently this has only the lifespan of the calling query. - * Someday we should rewrite this code to use plancache.c to save parse/plan - * results for longer than that. + * 1. SQLFunctionHashEntry is a long-lived (potentially session-lifespan) + * struct that holds all the info we need out of the function's pg_proc row. + * In addition it holds pointers to CachedPlanSource(s) that manage creation + * of plans for the query(s) within the function. A SQLFunctionHashEntry is + * potentially shared across multiple concurrent executions of the function, + * so it must contain no execution-specific state; but its use_count must + * reflect the number of SQLFunctionCache structs pointing at it. + * If the function's pg_proc row is updated, we throw away and regenerate + * the SQLFunctionHashEntry and subsidiary data. (Also note that if the + * function is polymorphic or used as a trigger, there is a separate + * SQLFunctionHashEntry for each usage, so that we need consider only one + * set of relevant data types.) The struct itself is in memory managed by + * funccache.c, and its subsidiary data is kept in one of two contexts: + * * pcontext ("parse context") holds the raw parse trees or Query trees + * that we read from the pg_proc row. These will be converted to + * CachedPlanSources as they are needed. Once the last one is converted, + * pcontext can be freed. + * * hcontext ("hash context") holds everything else belonging to the + * SQLFunctionHashEntry. * - * Physically, though, the data has the lifespan of the FmgrInfo that's used - * to call the function, and there are cases (particularly with indexes) - * where the FmgrInfo might survive across transactions. We cannot assume - * that the parse/plan trees are good for longer than the (sub)transaction in - * which parsing was done, so we must mark the record with the LXID/subxid of - * its creation time, and regenerate everything if that's obsolete. To avoid - * memory leakage when we do have to regenerate things, all the data is kept - * in a sub-context of the FmgrInfo's fn_mcxt. + * 2. SQLFunctionCache is subsidiary data for a single FmgrInfo struct. + * It is pointed to by the fn_extra field of the FmgrInfo struct, and is + * always allocated in the FmgrInfo's fn_mcxt. It holds a reference to + * the CachedPlan for the current query, and other execution-specific data. + * A few subsidiary items such as the ParamListInfo object are also kept + * directly in fn_mcxt (which is also called fcontext here). But most + * subsidiary data is in jfcontext or subcontext. */ -typedef struct + +typedef struct SQLFunctionHashEntry { + CachedFunction cfunc; /* fields managed by funccache.c */ + char *fname; /* function name (for error msgs) */ char *src; /* function body text (for error msgs) */ SQLFunctionParseInfoPtr pinfo; /* data for parser callback hooks */ + int16 *argtyplen; /* lengths of the input argument types */ Oid rettype; /* actual return type */ int16 typlen; /* length of the return type */ bool typbyval; /* true if return type is pass by value */ bool returnsSet; /* true if returning multiple rows */ bool returnsTuple; /* true if returning whole tuple result */ - bool shutdown_reg; /* true if registered shutdown callback */ bool readonly_func; /* true to run in "read only" mode */ + char prokind; /* prokind from pg_proc row */ + + TupleDesc rettupdesc; /* result tuple descriptor */ + + List *source_list; /* RawStmts or Queries read from pg_proc */ + int num_queries; /* original length of source_list */ + bool raw_source; /* true if source_list contains RawStmts */ + + List *plansource_list; /* CachedPlanSources for fn's queries */ + + MemoryContext pcontext; /* memory context holding source_list */ + MemoryContext hcontext; /* memory context holding all else */ +} SQLFunctionHashEntry; + +typedef struct SQLFunctionCache +{ + SQLFunctionHashEntry *func; /* associated SQLFunctionHashEntry */ + + bool lazyEvalOK; /* true if lazyEval is safe */ + bool shutdown_reg; /* true if registered shutdown callback */ bool lazyEval; /* true if using lazyEval for result query */ + bool randomAccess; /* true if tstore needs random access */ + bool ownSubcontext; /* is subcontext really a separate context? */ ParamListInfo paramLI; /* Param list representing current args */ - Tuplestorestate *tstore; /* where we accumulate result tuples */ + Tuplestorestate *tstore; /* where we accumulate result for a SRF */ + MemoryContext tscontext; /* memory context that tstore should be in */ JunkFilter *junkFilter; /* will be NULL if function returns VOID */ + int jf_generation; /* tracks whether junkFilter is up-to-date */ /* - * func_state is a List of execution_state records, each of which is the - * first for its original parsetree, with any additional records chained - * to it via the "next" fields. This sublist structure is needed to keep - * track of where the original query boundaries are. + * While executing a particular query within the function, cplan is the + * CachedPlan we've obtained for that query, and eslist is a chain of + * execution_state records for the individual plans within the CachedPlan. + * If eslist is not NULL at entry to fmgr_sql, then we are resuming + * execution of a lazyEval-mode set-returning function. + * + * next_query_index is the 0-based index of the next CachedPlanSource to + * get a CachedPlan from. */ - List *func_state; + CachedPlan *cplan; /* Plan for current query, if any */ + ResourceOwner cowner; /* CachedPlan is registered with this owner */ + int next_query_index; /* index of next CachedPlanSource to run */ + + execution_state *eslist; /* chain of execution_state records */ + execution_state *esarray; /* storage for eslist */ + int esarray_len; /* allocated length of esarray[] */ + + /* if positive, this is the 1-based index of the query we're processing */ + int error_query_index; MemoryContext fcontext; /* memory context holding this struct and all * subsidiary data */ + MemoryContext jfcontext; /* subsidiary memory context holding + * junkFilter, result slot, and related data */ + MemoryContext subcontext; /* subsidiary memory context for sub-executor */ - LocalTransactionId lxid; /* lxid in which cache was made */ - SubTransactionId subxid; /* subxid in which cache was made */ + /* Callback to release our use-count on the SQLFunctionHashEntry */ + MemoryContextCallback mcb; } SQLFunctionCache; typedef SQLFunctionCache *SQLFunctionCachePtr; @@ -138,26 +199,39 @@ static Node *sql_fn_make_param(SQLFunctionParseInfoPtr pinfo, int paramno, int location); static Node *sql_fn_resolve_param_name(SQLFunctionParseInfoPtr pinfo, const char *paramname, int location); -static List *init_execution_state(List *queryTree_list, - SQLFunctionCachePtr fcache, - bool lazyEvalOK); -static void init_sql_fcache(FunctionCallInfo fcinfo, Oid collation, bool lazyEvalOK); +static SQLFunctionCache *init_sql_fcache(FunctionCallInfo fcinfo, + bool lazyEvalOK); +static bool init_execution_state(SQLFunctionCachePtr fcache); +static void prepare_next_query(SQLFunctionHashEntry *func); +static void sql_compile_callback(FunctionCallInfo fcinfo, + HeapTuple procedureTuple, + const CachedFunctionHashKey *hashkey, + CachedFunction *cfunc, + bool forValidator); +static void sql_delete_callback(CachedFunction *cfunc); +static void sql_postrewrite_callback(List *querytree_list, void *arg); static void postquel_start(execution_state *es, SQLFunctionCachePtr fcache); static bool postquel_getnext(execution_state *es, SQLFunctionCachePtr fcache); -static void postquel_end(execution_state *es); +static void postquel_end(execution_state *es, SQLFunctionCachePtr fcache); static void postquel_sub_params(SQLFunctionCachePtr fcache, FunctionCallInfo fcinfo); static Datum postquel_get_single_result(TupleTableSlot *slot, FunctionCallInfo fcinfo, - SQLFunctionCachePtr fcache, - MemoryContext resultcontext); + SQLFunctionCachePtr fcache); +static void sql_compile_error_callback(void *arg); static void sql_exec_error_callback(void *arg); static void ShutdownSQLFunction(Datum arg); +static void RemoveSQLFunctionCache(void *arg); +static void check_sql_fn_statement(List *queryTreeList); +static bool check_sql_stmt_retval(List *queryTreeList, + Oid rettype, TupleDesc rettupdesc, + char prokind, bool insertDroppedCols); static bool coerce_fn_result_column(TargetEntry *src_tle, Oid res_type, int32 res_typmod, bool tlist_is_modifiable, List **upper_tlist, bool *upper_tlist_nontrivial); +static List *get_sql_fn_result_tlist(List *queryTreeList); static void sqlfunction_startup(DestReceiver *self, int operation, TupleDesc typeinfo); static bool sqlfunction_receive(TupleTableSlot *slot, DestReceiver *self); static void sqlfunction_shutdown(DestReceiver *self); @@ -455,99 +529,317 @@ sql_fn_resolve_param_name(SQLFunctionParseInfoPtr pinfo, } /* - * Set up the per-query execution_state records for a SQL function. + * Initialize the SQLFunctionCache for a SQL function + */ +static SQLFunctionCache * +init_sql_fcache(FunctionCallInfo fcinfo, bool lazyEvalOK) +{ + FmgrInfo *finfo = fcinfo->flinfo; + SQLFunctionHashEntry *func; + SQLFunctionCache *fcache; + + /* + * If this is the first execution for this FmgrInfo, set up a cache struct + * (initially containing null pointers). The cache must live as long as + * the FmgrInfo, so it goes in fn_mcxt. Also set up a memory context + * callback that will be invoked when fn_mcxt is deleted. + */ + fcache = finfo->fn_extra; + if (fcache == NULL) + { + fcache = (SQLFunctionCache *) + MemoryContextAllocZero(finfo->fn_mcxt, sizeof(SQLFunctionCache)); + fcache->fcontext = finfo->fn_mcxt; + fcache->mcb.func = RemoveSQLFunctionCache; + fcache->mcb.arg = fcache; + MemoryContextRegisterResetCallback(finfo->fn_mcxt, &fcache->mcb); + finfo->fn_extra = fcache; + } + + /* + * If we are resuming execution of a set-returning function, just keep + * using the same cache. We do not ask funccache.c to re-validate the + * SQLFunctionHashEntry: we want to run to completion using the function's + * initial definition. + */ + if (fcache->eslist != NULL) + { + Assert(fcache->func != NULL); + return fcache; + } + + /* + * Look up, or re-validate, the long-lived hash entry. Make the hash key + * depend on the result of get_call_result_type() when that's composite, + * so that we can safely assume that we'll build a new hash entry if the + * composite rowtype changes. + */ + func = (SQLFunctionHashEntry *) + cached_function_compile(fcinfo, + (CachedFunction *) fcache->func, + sql_compile_callback, + sql_delete_callback, + sizeof(SQLFunctionHashEntry), + true, + false); + + /* + * Install the hash pointer in the SQLFunctionCache, and increment its use + * count to reflect that. If cached_function_compile gave us back a + * different hash entry than we were using before, we must decrement that + * one's use count. + */ + if (func != fcache->func) + { + if (fcache->func != NULL) + { + Assert(fcache->func->cfunc.use_count > 0); + fcache->func->cfunc.use_count--; + } + fcache->func = func; + func->cfunc.use_count++; + /* Assume we need to rebuild the junkFilter */ + fcache->junkFilter = NULL; + } + + /* + * We're beginning a new execution of the function, so convert params to + * appropriate format. + */ + postquel_sub_params(fcache, fcinfo); + + /* Also reset lazyEval state for the new execution. */ + fcache->lazyEvalOK = lazyEvalOK; + fcache->lazyEval = false; + + /* Also reset data about where we are in the function. */ + fcache->eslist = NULL; + fcache->next_query_index = 0; + fcache->error_query_index = 0; + + return fcache; +} + +/* + * Set up the per-query execution_state records for the next query within + * the SQL function. * - * The input is a List of Lists of parsed and rewritten, but not planned, - * querytrees. The sublist structure denotes the original query boundaries. + * Returns true if successful, false if there are no more queries. */ -static List * -init_execution_state(List *queryTree_list, - SQLFunctionCachePtr fcache, - bool lazyEvalOK) +static bool +init_execution_state(SQLFunctionCachePtr fcache) { - List *eslist = NIL; + CachedPlanSource *plansource; + execution_state *preves = NULL; execution_state *lasttages = NULL; - ListCell *lc1; + int nstmts; + ListCell *lc; - foreach(lc1, queryTree_list) + /* + * Clean up after previous query, if there was one. + */ + if (fcache->cplan) { - List *qtlist = lfirst_node(List, lc1); - execution_state *firstes = NULL; - execution_state *preves = NULL; - ListCell *lc2; + ReleaseCachedPlan(fcache->cplan, fcache->cowner); + fcache->cplan = NULL; + } + fcache->eslist = NULL; - foreach(lc2, qtlist) - { - Query *queryTree = lfirst_node(Query, lc2); - PlannedStmt *stmt; - execution_state *newes; + /* + * Get the next CachedPlanSource, or stop if there are no more. We might + * need to create the next CachedPlanSource; if so, advance + * error_query_index first, so that errors detected in prepare_next_query + * are blamed on the right statement. + */ + if (fcache->next_query_index >= list_length(fcache->func->plansource_list)) + { + if (fcache->next_query_index >= fcache->func->num_queries) + return false; + fcache->error_query_index++; + prepare_next_query(fcache->func); + } + else + fcache->error_query_index++; - /* Plan the query if needed */ - if (queryTree->commandType == CMD_UTILITY) - { - /* Utility commands require no planning. */ - stmt = makeNode(PlannedStmt); - stmt->commandType = CMD_UTILITY; - stmt->canSetTag = queryTree->canSetTag; - stmt->utilityStmt = queryTree->utilityStmt; - stmt->stmt_location = queryTree->stmt_location; - stmt->stmt_len = queryTree->stmt_len; - stmt->queryId = queryTree->queryId; - } - else - stmt = pg_plan_query(queryTree, - fcache->src, - CURSOR_OPT_PARALLEL_OK, - NULL); + plansource = (CachedPlanSource *) list_nth(fcache->func->plansource_list, + fcache->next_query_index); + fcache->next_query_index++; - /* - * Precheck all commands for validity in a function. This should - * generally match the restrictions spi.c applies. - */ - if (stmt->commandType == CMD_UTILITY) - { - if (IsA(stmt->utilityStmt, CopyStmt) && - ((CopyStmt *) stmt->utilityStmt)->filename == NULL) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot COPY to/from client in an SQL function"))); + /* + * Generate plans for the query or queries within this CachedPlanSource. + * Register the CachedPlan with the current resource owner. (Saving + * cowner here is mostly paranoia, but this way we needn't assume that + * CurrentResourceOwner will be the same when ShutdownSQLFunction runs.) + */ + fcache->cowner = CurrentResourceOwner; + fcache->cplan = GetCachedPlan(plansource, + fcache->paramLI, + fcache->cowner, + NULL); - if (IsA(stmt->utilityStmt, TransactionStmt)) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - /* translator: %s is a SQL statement name */ - errmsg("%s is not allowed in an SQL function", - CreateCommandName(stmt->utilityStmt)))); - } + /* + * If necessary, make esarray[] bigger to hold the needed state. + */ + nstmts = list_length(fcache->cplan->stmt_list); + if (nstmts > fcache->esarray_len) + { + if (fcache->esarray == NULL) + fcache->esarray = (execution_state *) + MemoryContextAlloc(fcache->fcontext, + sizeof(execution_state) * nstmts); + else + fcache->esarray = repalloc_array(fcache->esarray, + execution_state, nstmts); + fcache->esarray_len = nstmts; + } + + /* + * Build execution_state list to match the number of contained plans. + */ + foreach(lc, fcache->cplan->stmt_list) + { + PlannedStmt *stmt = lfirst_node(PlannedStmt, lc); + execution_state *newes; + + /* + * Precheck all commands for validity in a function. This should + * generally match the restrictions spi.c applies. + */ + if (stmt->commandType == CMD_UTILITY) + { + if (IsA(stmt->utilityStmt, CopyStmt) && + ((CopyStmt *) stmt->utilityStmt)->filename == NULL) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot COPY to/from client in an SQL function"))); - if (fcache->readonly_func && !CommandIsReadOnly(stmt)) + if (IsA(stmt->utilityStmt, TransactionStmt)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is a SQL statement name */ - errmsg("%s is not allowed in a non-volatile function", - CreateCommandName((Node *) stmt)))); + errmsg("%s is not allowed in an SQL function", + CreateCommandName(stmt->utilityStmt)))); + } - /* OK, build the execution_state for this query */ - newes = (execution_state *) palloc(sizeof(execution_state)); - if (preves) - preves->next = newes; - else - firstes = newes; + if (fcache->func->readonly_func && !CommandIsReadOnly(stmt)) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + /* translator: %s is a SQL statement name */ + errmsg("%s is not allowed in a non-volatile function", + CreateCommandName((Node *) stmt)))); + + /* OK, build the execution_state for this query */ + newes = &fcache->esarray[foreach_current_index(lc)]; + if (preves) + preves->next = newes; + else + fcache->eslist = newes; - newes->next = NULL; - newes->status = F_EXEC_START; - newes->setsResult = false; /* might change below */ - newes->lazyEval = false; /* might change below */ - newes->stmt = stmt; - newes->qd = NULL; + newes->next = NULL; + newes->status = F_EXEC_START; + newes->setsResult = false; /* might change below */ + newes->lazyEval = false; /* might change below */ + newes->stmt = stmt; + newes->qd = NULL; - if (queryTree->canSetTag) - lasttages = newes; + if (stmt->canSetTag) + lasttages = newes; - preves = newes; - } + preves = newes; + } - eslist = lappend(eslist, firstes); + /* + * If this isn't the last CachedPlanSource, we're done here. Otherwise, + * we need to prepare information about how to return the results. + */ + if (fcache->next_query_index < fcache->func->num_queries) + return true; + + /* + * Construct a JunkFilter we can use to coerce the returned rowtype to the + * desired form, unless the result type is VOID, in which case there's + * nothing to coerce to. (XXX Frequently, the JunkFilter isn't doing + * anything very interesting, but much of this module expects it to be + * there anyway.) + * + * Normally we can re-use the JunkFilter across executions, but if the + * plan for the last CachedPlanSource changed, we'd better rebuild it. + * + * The JunkFilter, its result slot, and its tupledesc are kept in a + * subsidiary memory context so that we can free them easily when needed. + */ + if (fcache->func->rettype != VOIDOID && + (fcache->junkFilter == NULL || + fcache->jf_generation != fcache->cplan->generation)) + { + TupleTableSlot *slot; + List *resulttlist; + MemoryContext oldcontext; + + /* Create or reset the jfcontext */ + if (fcache->jfcontext == NULL) + fcache->jfcontext = AllocSetContextCreate(fcache->fcontext, + "SQL function junkfilter", + ALLOCSET_SMALL_SIZES); + else + MemoryContextReset(fcache->jfcontext); + oldcontext = MemoryContextSwitchTo(fcache->jfcontext); + + slot = MakeSingleTupleTableSlot(NULL, &TTSOpsMinimalTuple); + + /* + * Re-fetch the (possibly modified) output tlist of the final + * statement. By this point, we should have thrown an error if there + * is not one. + */ + resulttlist = get_sql_fn_result_tlist(plansource->query_list); + + /* + * If the result is composite, *and* we are returning the whole tuple + * result, we need to insert nulls for any dropped columns. In the + * single-column-result case, there might be dropped columns within + * the composite column value, but it's not our problem here. There + * should be no resjunk entries in resulttlist, so in the second case + * the JunkFilter is certainly a no-op. + */ + if (fcache->func->rettupdesc && fcache->func->returnsTuple) + fcache->junkFilter = ExecInitJunkFilterConversion(resulttlist, + fcache->func->rettupdesc, + slot); + else + fcache->junkFilter = ExecInitJunkFilter(resulttlist, slot); + + /* + * The resulttlist tree belongs to the plancache and might disappear + * underneath us due to plancache invalidation. While we could + * forestall that by copying it, that'd just be a waste of cycles, + * because the junkfilter doesn't need it anymore. (It'd only be used + * by ExecFindJunkAttribute(), which we don't use here.) To ensure + * there's not a dangling pointer laying about, clear the junkFilter's + * pointer. + */ + fcache->junkFilter->jf_targetList = NIL; + + /* Make sure output rowtype is properly blessed */ + if (fcache->func->returnsTuple) + BlessTupleDesc(fcache->junkFilter->jf_resultSlot->tts_tupleDescriptor); + + /* Mark the JunkFilter as up-to-date */ + fcache->jf_generation = fcache->cplan->generation; + + MemoryContextSwitchTo(oldcontext); + } + + if (fcache->func->returnsSet && + !fcache->func->returnsTuple && + type_is_rowtype(fcache->func->rettype)) + { + /* + * Returning rowtype as if it were scalar --- materialize won't work. + * Right now it's sufficient to override any caller preference for + * materialize mode, but this might need more work in future. + */ + fcache->lazyEvalOK = true; } /* @@ -567,69 +859,212 @@ init_execution_state(List *queryTree_list, if (lasttages && fcache->junkFilter) { lasttages->setsResult = true; - if (lazyEvalOK && + if (fcache->lazyEvalOK && lasttages->stmt->commandType == CMD_SELECT && !lasttages->stmt->hasModifyingCTE) fcache->lazyEval = lasttages->lazyEval = true; } - return eslist; + return true; } /* - * Initialize the SQLFunctionCache for a SQL function + * Convert the SQL function's next query from source form (RawStmt or Query) + * into a CachedPlanSource. If it's the last query, also determine whether + * the function returnsTuple. */ static void -init_sql_fcache(FunctionCallInfo fcinfo, Oid collation, bool lazyEvalOK) +prepare_next_query(SQLFunctionHashEntry *func) { - FmgrInfo *finfo = fcinfo->flinfo; - Oid foid = finfo->fn_oid; - MemoryContext fcontext; + int qindex; + bool islast; + CachedPlanSource *plansource; + List *queryTree_list; MemoryContext oldcontext; + + /* Which query should we process? */ + qindex = list_length(func->plansource_list); + Assert(qindex < func->num_queries); /* else caller error */ + islast = (qindex + 1 >= func->num_queries); + + /* + * Parse and/or rewrite the query, creating a CachedPlanSource that holds + * a copy of the original parsetree. Note fine point: we make a copy of + * each original parsetree to ensure that the source_list in pcontext + * remains unmodified during parse analysis and rewrite. This is normally + * unnecessary, but we have to do it in case an error is raised during + * parse analysis. Otherwise, a fresh attempt to execute the function + * will arrive back here and try to work from a corrupted source_list. + */ + if (!func->raw_source) + { + /* Source queries are already parse-analyzed */ + Query *parsetree = list_nth_node(Query, func->source_list, qindex); + + parsetree = copyObject(parsetree); + plansource = CreateCachedPlanForQuery(parsetree, + func->src, + CreateCommandTag((Node *) parsetree)); + AcquireRewriteLocks(parsetree, true, false); + queryTree_list = pg_rewrite_query(parsetree); + } + else + { + /* Source queries are raw parsetrees */ + RawStmt *parsetree = list_nth_node(RawStmt, func->source_list, qindex); + + parsetree = copyObject(parsetree); + plansource = CreateCachedPlan(parsetree, + func->src, + CreateCommandTag(parsetree->stmt)); + queryTree_list = pg_analyze_and_rewrite_withcb(parsetree, + func->src, + (ParserSetupHook) sql_fn_parser_setup, + func->pinfo, + NULL); + } + + /* + * Check that there are no statements we don't want to allow. + */ + check_sql_fn_statement(queryTree_list); + + /* + * If this is the last query, check that the function returns the type it + * claims to. Although in simple cases this was already done when the + * function was defined, we have to recheck because database objects used + * in the function's queries might have changed type. We'd have to + * recheck anyway if the function had any polymorphic arguments. Moreover, + * check_sql_stmt_retval takes care of injecting any required column type + * coercions. (But we don't ask it to insert nulls for dropped columns; + * the junkfilter handles that.) + * + * Note: we set func->returnsTuple according to whether we are returning + * the whole tuple result or just a single column. In the latter case we + * clear returnsTuple because we need not act different from the scalar + * result case, even if it's a rowtype column. (However, we have to force + * lazy eval mode in that case; otherwise we'd need extra code to expand + * the rowtype column into multiple columns, since we have no way to + * notify the caller that it should do that.) + */ + if (islast) + func->returnsTuple = check_sql_stmt_retval(queryTree_list, + func->rettype, + func->rettupdesc, + func->prokind, + false); + + /* + * Now that check_sql_stmt_retval has done its thing, we can complete plan + * cache entry creation. + */ + CompleteCachedPlan(plansource, + queryTree_list, + NULL, + NULL, + 0, + (ParserSetupHook) sql_fn_parser_setup, + func->pinfo, + CURSOR_OPT_PARALLEL_OK | CURSOR_OPT_NO_SCROLL, + false); + + /* + * Install post-rewrite hook. Its arg is the hash entry if this is the + * last statement, else NULL. + */ + SetPostRewriteHook(plansource, + sql_postrewrite_callback, + islast ? func : NULL); + + /* + * While the CachedPlanSources can take care of themselves, our List + * pointing to them had better be in the hcontext. + */ + oldcontext = MemoryContextSwitchTo(func->hcontext); + func->plansource_list = lappend(func->plansource_list, plansource); + MemoryContextSwitchTo(oldcontext); + + /* + * As soon as we've linked the CachedPlanSource into the list, mark it as + * "saved". + */ + SaveCachedPlan(plansource); + + /* + * Finally, if this was the last statement, we can flush the pcontext with + * the original query trees; they're all safely copied into + * CachedPlanSources now. + */ + if (islast) + { + func->source_list = NIL; /* avoid dangling pointer */ + MemoryContextDelete(func->pcontext); + func->pcontext = NULL; + } +} + +/* + * Fill a new SQLFunctionHashEntry. + * + * The passed-in "cfunc" struct is expected to be zeroes, except + * for the CachedFunction fields, which we don't touch here. + * + * We expect to be called in a short-lived memory context (typically a + * query's per-tuple context). Data that is to be part of the hash entry + * must be copied into the hcontext or pcontext as appropriate. + */ +static void +sql_compile_callback(FunctionCallInfo fcinfo, + HeapTuple procedureTuple, + const CachedFunctionHashKey *hashkey, + CachedFunction *cfunc, + bool forValidator) +{ + SQLFunctionHashEntry *func = (SQLFunctionHashEntry *) cfunc; + Form_pg_proc procedureStruct = (Form_pg_proc) GETSTRUCT(procedureTuple); + ErrorContextCallback comperrcontext; + MemoryContext hcontext; + MemoryContext pcontext; + MemoryContext oldcontext = CurrentMemoryContext; Oid rettype; TupleDesc rettupdesc; - HeapTuple procedureTuple; - Form_pg_proc procedureStruct; - SQLFunctionCachePtr fcache; - List *queryTree_list; - List *resulttlist; - ListCell *lc; Datum tmp; bool isNull; + List *source_list; /* - * Create memory context that holds all the SQLFunctionCache data. It - * must be a child of whatever context holds the FmgrInfo. + * Setup error traceback support for ereport() during compile. (This is + * mainly useful for reporting parse errors from pg_parse_query.) */ - fcontext = AllocSetContextCreate(finfo->fn_mcxt, - "SQL function", - ALLOCSET_DEFAULT_SIZES); - - oldcontext = MemoryContextSwitchTo(fcontext); + comperrcontext.callback = sql_compile_error_callback; + comperrcontext.arg = func; + comperrcontext.previous = error_context_stack; + error_context_stack = &comperrcontext; /* - * Create the struct proper, link it to fcontext and fn_extra. Once this - * is done, we'll be able to recover the memory after failure, even if the - * FmgrInfo is long-lived. + * Create the hash entry's memory context. For now it's a child of the + * caller's context, so that it will go away if we fail partway through. */ - fcache = (SQLFunctionCachePtr) palloc0(sizeof(SQLFunctionCache)); - fcache->fcontext = fcontext; - finfo->fn_extra = fcache; + hcontext = AllocSetContextCreate(CurrentMemoryContext, + "SQL function", + ALLOCSET_SMALL_SIZES); /* - * get the procedure tuple corresponding to the given function Oid + * Create the not-as-long-lived pcontext. We make this a child of + * hcontext so that it doesn't require separate deletion. */ - procedureTuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(foid)); - if (!HeapTupleIsValid(procedureTuple)) - elog(ERROR, "cache lookup failed for function %u", foid); - procedureStruct = (Form_pg_proc) GETSTRUCT(procedureTuple); + pcontext = AllocSetContextCreate(hcontext, + "SQL function parse trees", + ALLOCSET_SMALL_SIZES); + func->pcontext = pcontext; /* * copy function name immediately for use by error reporting callback, and * for use as memory context identifier */ - fcache->fname = pstrdup(NameStr(procedureStruct->proname)); - MemoryContextSetIdentifier(fcontext, fcache->fname); + func->fname = MemoryContextStrdup(hcontext, + NameStr(procedureStruct->proname)); + MemoryContextSetIdentifier(hcontext, func->fname); /* * Resolve any polymorphism, obtaining the actual result type, and the @@ -637,176 +1072,180 @@ init_sql_fcache(FunctionCallInfo fcinfo, Oid collation, bool lazyEvalOK) */ (void) get_call_result_type(fcinfo, &rettype, &rettupdesc); - fcache->rettype = rettype; + func->rettype = rettype; + if (rettupdesc) + { + MemoryContextSwitchTo(hcontext); + func->rettupdesc = CreateTupleDescCopy(rettupdesc); + MemoryContextSwitchTo(oldcontext); + } /* Fetch the typlen and byval info for the result type */ - get_typlenbyval(rettype, &fcache->typlen, &fcache->typbyval); + get_typlenbyval(rettype, &func->typlen, &func->typbyval); /* Remember whether we're returning setof something */ - fcache->returnsSet = procedureStruct->proretset; + func->returnsSet = procedureStruct->proretset; /* Remember if function is STABLE/IMMUTABLE */ - fcache->readonly_func = + func->readonly_func = (procedureStruct->provolatile != PROVOLATILE_VOLATILE); + /* Remember routine kind */ + func->prokind = procedureStruct->prokind; + /* * We need the actual argument types to pass to the parser. Also make * sure that parameter symbols are considered to have the function's * resolved input collation. */ - fcache->pinfo = prepare_sql_fn_parse_info(procedureTuple, - finfo->fn_expr, - collation); + MemoryContextSwitchTo(hcontext); + func->pinfo = prepare_sql_fn_parse_info(procedureTuple, + fcinfo->flinfo->fn_expr, + PG_GET_COLLATION()); + MemoryContextSwitchTo(oldcontext); + + /* + * Now that we have the resolved argument types, collect their typlens for + * use in postquel_sub_params. + */ + func->argtyplen = (int16 *) + MemoryContextAlloc(hcontext, func->pinfo->nargs * sizeof(int16)); + for (int i = 0; i < func->pinfo->nargs; i++) + func->argtyplen[i] = get_typlen(func->pinfo->argtypes[i]); /* * And of course we need the function body text. */ tmp = SysCacheGetAttrNotNull(PROCOID, procedureTuple, Anum_pg_proc_prosrc); - fcache->src = TextDatumGetCString(tmp); + func->src = MemoryContextStrdup(hcontext, + TextDatumGetCString(tmp)); /* If we have prosqlbody, pay attention to that not prosrc. */ tmp = SysCacheGetAttr(PROCOID, procedureTuple, Anum_pg_proc_prosqlbody, &isNull); - - /* - * Parse and rewrite the queries in the function text. Use sublists to - * keep track of the original query boundaries. - * - * Note: since parsing and planning is done in fcontext, we will generate - * a lot of cruft that lives as long as the fcache does. This is annoying - * but we'll not worry about it until the module is rewritten to use - * plancache.c. - */ - queryTree_list = NIL; if (!isNull) { + /* Source queries are already parse-analyzed */ Node *n; - List *stored_query_list; n = stringToNode(TextDatumGetCString(tmp)); if (IsA(n, List)) - stored_query_list = linitial_node(List, castNode(List, n)); + source_list = linitial_node(List, castNode(List, n)); else - stored_query_list = list_make1(n); - - foreach(lc, stored_query_list) - { - Query *parsetree = lfirst_node(Query, lc); - List *queryTree_sublist; - - AcquireRewriteLocks(parsetree, true, false); - queryTree_sublist = pg_rewrite_query(parsetree); - queryTree_list = lappend(queryTree_list, queryTree_sublist); - } + source_list = list_make1(n); + func->raw_source = false; } else { - List *raw_parsetree_list; - - raw_parsetree_list = pg_parse_query(fcache->src); - - foreach(lc, raw_parsetree_list) - { - RawStmt *parsetree = lfirst_node(RawStmt, lc); - List *queryTree_sublist; - - queryTree_sublist = pg_analyze_and_rewrite_withcb(parsetree, - fcache->src, - (ParserSetupHook) sql_fn_parser_setup, - fcache->pinfo, - NULL); - queryTree_list = lappend(queryTree_list, queryTree_sublist); - } + /* Source queries are raw parsetrees */ + source_list = pg_parse_query(func->src); + func->raw_source = true; } /* - * Check that there are no statements we don't want to allow. + * Note: we must save the number of queries so that we'll still remember + * how many there are after we discard source_list. */ - check_sql_fn_statements(queryTree_list); + func->num_queries = list_length(source_list); /* - * Check that the function returns the type it claims to. Although in - * simple cases this was already done when the function was defined, we - * have to recheck because database objects used in the function's queries - * might have changed type. We'd have to recheck anyway if the function - * had any polymorphic arguments. Moreover, check_sql_fn_retval takes - * care of injecting any required column type coercions. (But we don't - * ask it to insert nulls for dropped columns; the junkfilter handles - * that.) - * - * Note: we set fcache->returnsTuple according to whether we are returning - * the whole tuple result or just a single column. In the latter case we - * clear returnsTuple because we need not act different from the scalar - * result case, even if it's a rowtype column. (However, we have to force - * lazy eval mode in that case; otherwise we'd need extra code to expand - * the rowtype column into multiple columns, since we have no way to - * notify the caller that it should do that.) + * Edge case: empty function body is OK only if it returns VOID. Normally + * we validate that the last statement returns the right thing in + * check_sql_stmt_retval, but we'll never reach that if there's no last + * statement. */ - fcache->returnsTuple = check_sql_fn_retval(queryTree_list, - rettype, - rettupdesc, - procedureStruct->prokind, - false, - &resulttlist); + if (func->num_queries == 0 && rettype != VOIDOID) + ereport(ERROR, + (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), + errmsg("return type mismatch in function declared to return %s", + format_type_be(rettype)), + errdetail("Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING."))); + + /* Save the source trees in pcontext for now. */ + MemoryContextSwitchTo(pcontext); + func->source_list = copyObject(source_list); + MemoryContextSwitchTo(oldcontext); /* - * Construct a JunkFilter we can use to coerce the returned rowtype to the - * desired form, unless the result type is VOID, in which case there's - * nothing to coerce to. (XXX Frequently, the JunkFilter isn't doing - * anything very interesting, but much of this module expects it to be - * there anyway.) + * We now have a fully valid hash entry, so reparent hcontext under + * CacheMemoryContext to make all the subsidiary data long-lived, and only + * then install the hcontext link so that sql_delete_callback will know to + * delete it. */ - if (rettype != VOIDOID) - { - TupleTableSlot *slot = MakeSingleTupleTableSlot(NULL, - &TTSOpsMinimalTuple); + MemoryContextSetParent(hcontext, CacheMemoryContext); + func->hcontext = hcontext; - /* - * If the result is composite, *and* we are returning the whole tuple - * result, we need to insert nulls for any dropped columns. In the - * single-column-result case, there might be dropped columns within - * the composite column value, but it's not our problem here. There - * should be no resjunk entries in resulttlist, so in the second case - * the JunkFilter is certainly a no-op. - */ - if (rettupdesc && fcache->returnsTuple) - fcache->junkFilter = ExecInitJunkFilterConversion(resulttlist, - rettupdesc, - slot); - else - fcache->junkFilter = ExecInitJunkFilter(resulttlist, slot); - } + error_context_stack = comperrcontext.previous; +} - if (fcache->returnsTuple) - { - /* Make sure output rowtype is properly blessed */ - BlessTupleDesc(fcache->junkFilter->jf_resultSlot->tts_tupleDescriptor); - } - else if (fcache->returnsSet && type_is_rowtype(fcache->rettype)) +/* + * Deletion callback used by funccache.c. + * + * Free any free-able subsidiary data of cfunc, but not the + * struct CachedFunction itself. + */ +static void +sql_delete_callback(CachedFunction *cfunc) +{ + SQLFunctionHashEntry *func = (SQLFunctionHashEntry *) cfunc; + ListCell *lc; + + /* Release the CachedPlanSources */ + foreach(lc, func->plansource_list) { - /* - * Returning rowtype as if it were scalar --- materialize won't work. - * Right now it's sufficient to override any caller preference for - * materialize mode, but to add more smarts in init_execution_state - * about this, we'd probably need a three-way flag instead of bool. - */ - lazyEvalOK = true; - } + CachedPlanSource *plansource = (CachedPlanSource *) lfirst(lc); - /* Finally, plan the queries */ - fcache->func_state = init_execution_state(queryTree_list, - fcache, - lazyEvalOK); + DropCachedPlan(plansource); + } + func->plansource_list = NIL; - /* Mark fcache with time of creation to show it's valid */ - fcache->lxid = MyProc->vxid.lxid; - fcache->subxid = GetCurrentSubTransactionId(); + /* + * If we have an hcontext, free it, thereby getting rid of all subsidiary + * data. (If we still have a pcontext, this gets rid of that too.) + */ + if (func->hcontext) + MemoryContextDelete(func->hcontext); + func->hcontext = NULL; +} - ReleaseSysCache(procedureTuple); +/* + * Post-rewrite callback used by plancache.c. + * + * This must match the processing that prepare_next_query() does between + * rewriting and calling CompleteCachedPlan(). + */ +static void +sql_postrewrite_callback(List *querytree_list, void *arg) +{ + /* + * Check that there are no statements we don't want to allow. (Presently, + * there's no real point in this because the result can't change from what + * we saw originally. But it's cheap and maybe someday it will matter.) + */ + check_sql_fn_statement(querytree_list); - MemoryContextSwitchTo(oldcontext); + /* + * If this is the last query, we must re-do what check_sql_stmt_retval did + * to its targetlist. Also check that returnsTuple didn't change (it + * probably cannot, but be cautious). + */ + if (arg != NULL) + { + SQLFunctionHashEntry *func = (SQLFunctionHashEntry *) arg; + bool returnsTuple; + + returnsTuple = check_sql_stmt_retval(querytree_list, + func->rettype, + func->rettupdesc, + func->prokind, + false); + if (returnsTuple != func->returnsTuple) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cached plan must not change result type"))); + } } /* Start up execution of one execution_state node */ @@ -814,6 +1253,7 @@ static void postquel_start(execution_state *es, SQLFunctionCachePtr fcache) { DestReceiver *dest; + MemoryContext oldcontext = CurrentMemoryContext; Assert(es->qd == NULL); @@ -821,8 +1261,65 @@ postquel_start(execution_state *es, SQLFunctionCachePtr fcache) Assert(ActiveSnapshotSet()); /* - * If this query produces the function result, send its output to the - * tuplestore; else discard any output. + * In lazyEval mode for a SRF, we must run the sub-executor in a child of + * fcontext, so that it can survive across multiple calls to fmgr_sql. + * (XXX in the case of a long-lived FmgrInfo, this policy potentially + * causes memory leakage, but it's not very clear where we could keep + * stuff instead. Fortunately, there are few if any cases where + * set-returning functions are invoked via FmgrInfos that would outlive + * the calling query.) Otherwise, we're going to run it to completion + * before exiting fmgr_sql, so it can perfectly well run in the caller's + * context. + */ + if (es->lazyEval && fcache->func->returnsSet) + { + fcache->subcontext = AllocSetContextCreate(fcache->fcontext, + "SQL function execution", + ALLOCSET_DEFAULT_SIZES); + fcache->ownSubcontext = true; + } + else if (es->stmt->commandType == CMD_UTILITY) + { + /* + * The code path using a sub-executor is pretty good about cleaning up + * cruft, since the executor will make its own sub-context. We don't + * really need an additional layer of sub-context in that case. + * However, if this is a utility statement, it won't make its own + * sub-context, so it seems advisable to make one that we can free on + * completion. + */ + fcache->subcontext = AllocSetContextCreate(CurrentMemoryContext, + "SQL function execution", + ALLOCSET_DEFAULT_SIZES); + fcache->ownSubcontext = true; + } + else + { + fcache->subcontext = CurrentMemoryContext; + fcache->ownSubcontext = false; + } + + /* + * Build a tuplestore if needed, that is if it's a set-returning function + * and we're producing the function result without using lazyEval mode. + */ + if (es->setsResult) + { + Assert(fcache->tstore == NULL); + if (fcache->func->returnsSet && !es->lazyEval) + { + MemoryContextSwitchTo(fcache->tscontext); + fcache->tstore = tuplestore_begin_heap(fcache->randomAccess, + false, work_mem); + } + } + + /* Switch into the selected subcontext (might be a no-op) */ + MemoryContextSwitchTo(fcache->subcontext); + + /* + * If this query produces the function result, collect its output using + * our custom DestReceiver; else discard any output. */ if (es->setsResult) { @@ -832,16 +1329,17 @@ postquel_start(execution_state *es, SQLFunctionCachePtr fcache) /* pass down the needed info to the dest receiver routines */ myState = (DR_sqlfunction *) dest; Assert(myState->pub.mydest == DestSQLFunction); - myState->tstore = fcache->tstore; - myState->cxt = CurrentMemoryContext; + myState->tstore = fcache->tstore; /* might be NULL */ myState->filter = fcache->junkFilter; + + /* Make very sure the junkfilter's result slot is empty */ + ExecClearTuple(fcache->junkFilter->jf_resultSlot); } else dest = None_Receiver; es->qd = CreateQueryDesc(es->stmt, - NULL, - fcache->src, + fcache->func->src, GetActiveSnapshot(), InvalidSnapshot, dest, @@ -865,11 +1363,12 @@ postquel_start(execution_state *es, SQLFunctionCachePtr fcache) eflags = EXEC_FLAG_SKIP_TRIGGERS; else eflags = 0; /* default run-to-completion flags */ - if (!ExecutorStart(es->qd, eflags)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); + ExecutorStart(es->qd, eflags); } es->status = F_EXEC_RUN; + + MemoryContextSwitchTo(oldcontext); } /* Run one execution_state; either to completion or to first result row */ @@ -878,11 +1377,15 @@ static bool postquel_getnext(execution_state *es, SQLFunctionCachePtr fcache) { bool result; + MemoryContext oldcontext; + + /* Run the sub-executor in subcontext */ + oldcontext = MemoryContextSwitchTo(fcache->subcontext); if (es->qd->operation == CMD_UTILITY) { ProcessUtility(es->qd->plannedstmt, - fcache->src, + fcache->func->src, true, /* protect function cache's parsetree */ PROCESS_UTILITY_QUERY, es->qd->params, @@ -905,13 +1408,20 @@ postquel_getnext(execution_state *es, SQLFunctionCachePtr fcache) result = (count == 0 || es->qd->estate->es_processed == 0); } + MemoryContextSwitchTo(oldcontext); + return result; } /* Shut down execution of one execution_state node */ static void -postquel_end(execution_state *es) +postquel_end(execution_state *es, SQLFunctionCachePtr fcache) { + MemoryContext oldcontext; + + /* Run the sub-executor in subcontext */ + oldcontext = MemoryContextSwitchTo(fcache->subcontext); + /* mark status done to ensure we don't do ExecutorEnd twice */ es->status = F_EXEC_DONE; @@ -926,6 +1436,13 @@ postquel_end(execution_state *es) FreeQueryDesc(es->qd); es->qd = NULL; + + MemoryContextSwitchTo(oldcontext); + + /* Delete the subcontext, if it's actually a separate context */ + if (fcache->ownSubcontext) + MemoryContextDelete(fcache->subcontext); + fcache->subcontext = NULL; } /* Build ParamListInfo array representing current arguments */ @@ -938,12 +1455,18 @@ postquel_sub_params(SQLFunctionCachePtr fcache, if (nargs > 0) { ParamListInfo paramLI; - Oid *argtypes = fcache->pinfo->argtypes; + Oid *argtypes = fcache->func->pinfo->argtypes; + int16 *argtyplen = fcache->func->argtyplen; if (fcache->paramLI == NULL) { + /* First time through: build a persistent ParamListInfo struct */ + MemoryContext oldcontext; + + oldcontext = MemoryContextSwitchTo(fcache->fcontext); paramLI = makeParamList(nargs); fcache->paramLI = paramLI; + MemoryContextSwitchTo(oldcontext); } else { @@ -970,8 +1493,9 @@ postquel_sub_params(SQLFunctionCachePtr fcache, prm->isnull = fcinfo->args[i].isnull; prm->value = MakeExpandedObjectReadOnly(fcinfo->args[i].value, prm->isnull, - get_typlen(argtypes[i])); - prm->pflags = 0; + argtyplen[i]); + /* Allow the value to be substituted into custom plans */ + prm->pflags = PARAM_FLAG_CONST; prm->ptype = argtypes[i]; } } @@ -982,26 +1506,23 @@ postquel_sub_params(SQLFunctionCachePtr fcache, /* * Extract the SQL function's value from a single result row. This is used * both for scalar (non-set) functions and for each row of a lazy-eval set - * result. + * result. We expect the current memory context to be that of the caller + * of fmgr_sql. */ static Datum postquel_get_single_result(TupleTableSlot *slot, FunctionCallInfo fcinfo, - SQLFunctionCachePtr fcache, - MemoryContext resultcontext) + SQLFunctionCachePtr fcache) { Datum value; - MemoryContext oldcontext; /* * Set up to return the function value. For pass-by-reference datatypes, - * be sure to allocate the result in resultcontext, not the current memory - * context (which has query lifespan). We can't leave the data in the - * TupleTableSlot because we intend to clear the slot before returning. + * be sure to copy the result into the current context. We can't leave + * the data in the TupleTableSlot because we must clear the slot before + * returning. */ - oldcontext = MemoryContextSwitchTo(resultcontext); - - if (fcache->returnsTuple) + if (fcache->func->returnsTuple) { /* We must return the whole tuple as a Datum. */ fcinfo->isnull = false; @@ -1011,15 +1532,16 @@ postquel_get_single_result(TupleTableSlot *slot, { /* * Returning a scalar, which we have to extract from the first column - * of the SELECT result, and then copy into result context if needed. + * of the SELECT result, and then copy into current context if needed. */ value = slot_getattr(slot, 1, &(fcinfo->isnull)); if (!fcinfo->isnull) - value = datumCopy(value, fcache->typbyval, fcache->typlen); + value = datumCopy(value, fcache->func->typbyval, fcache->func->typlen); } - MemoryContextSwitchTo(oldcontext); + /* Clear the slot for next time */ + ExecClearTuple(slot); return value; } @@ -1032,24 +1554,13 @@ fmgr_sql(PG_FUNCTION_ARGS) { SQLFunctionCachePtr fcache; ErrorContextCallback sqlerrcontext; - MemoryContext oldcontext; + MemoryContext tscontext; bool randomAccess; bool lazyEvalOK; - bool is_first; bool pushed_snapshot; execution_state *es; TupleTableSlot *slot; Datum result; - List *eslist; - ListCell *eslc; - - /* - * Setup error traceback support for ereport() - */ - sqlerrcontext.callback = sql_exec_error_callback; - sqlerrcontext.arg = fcinfo->flinfo; - sqlerrcontext.previous = error_context_stack; - error_context_stack = &sqlerrcontext; /* Check call context */ if (fcinfo->flinfo->fn_retset) @@ -1070,80 +1581,46 @@ fmgr_sql(PG_FUNCTION_ARGS) errmsg("set-valued function called in context that cannot accept a set"))); randomAccess = rsi->allowedModes & SFRM_Materialize_Random; lazyEvalOK = !(rsi->allowedModes & SFRM_Materialize_Preferred); + /* tuplestore, if used, must have query lifespan */ + tscontext = rsi->econtext->ecxt_per_query_memory; } else { randomAccess = false; lazyEvalOK = true; + /* we won't need a tuplestore */ + tscontext = NULL; } /* - * Initialize fcache (build plans) if first time through; or re-initialize - * if the cache is stale. + * Initialize fcache if starting a fresh execution. */ - fcache = (SQLFunctionCachePtr) fcinfo->flinfo->fn_extra; + fcache = init_sql_fcache(fcinfo, lazyEvalOK); - if (fcache != NULL) - { - if (fcache->lxid != MyProc->vxid.lxid || - !SubTransactionIsActive(fcache->subxid)) - { - /* It's stale; unlink and delete */ - fcinfo->flinfo->fn_extra = NULL; - MemoryContextDelete(fcache->fcontext); - fcache = NULL; - } - } - - if (fcache == NULL) - { - init_sql_fcache(fcinfo, PG_GET_COLLATION(), lazyEvalOK); - fcache = (SQLFunctionCachePtr) fcinfo->flinfo->fn_extra; - } + /* Remember info that we might need later to construct tuplestore */ + fcache->tscontext = tscontext; + fcache->randomAccess = randomAccess; /* - * Switch to context in which the fcache lives. This ensures that our - * tuplestore etc will have sufficient lifetime. The sub-executor is - * responsible for deleting per-tuple information. (XXX in the case of a - * long-lived FmgrInfo, this policy represents more memory leakage, but - * it's not entirely clear where to keep stuff instead.) + * Now we can set up error traceback support for ereport() */ - oldcontext = MemoryContextSwitchTo(fcache->fcontext); + sqlerrcontext.callback = sql_exec_error_callback; + sqlerrcontext.arg = fcache; + sqlerrcontext.previous = error_context_stack; + error_context_stack = &sqlerrcontext; /* - * Find first unfinished query in function, and note whether it's the - * first query. + * Find first unfinished execution_state. If none, advance to the next + * query in function. */ - eslist = fcache->func_state; - es = NULL; - is_first = true; - foreach(eslc, eslist) + do { - es = (execution_state *) lfirst(eslc); - + es = fcache->eslist; while (es && es->status == F_EXEC_DONE) - { - is_first = false; es = es->next; - } - if (es) break; - } - - /* - * Convert params to appropriate format if starting a fresh execution. (If - * continuing execution, we can re-use prior params.) - */ - if (is_first && es && es->status == F_EXEC_START) - postquel_sub_params(fcache, fcinfo); - - /* - * Build tuplestore to hold results, if we don't have one already. Note - * it's in the query-lifespan context. - */ - if (!fcache->tstore) - fcache->tstore = tuplestore_begin_heap(randomAccess, false, work_mem); + } while (init_execution_state(fcache)); /* * Execute each command in the function one after another until we either @@ -1176,7 +1653,7 @@ fmgr_sql(PG_FUNCTION_ARGS) * visible. Take a new snapshot if we don't have one yet, * otherwise just bump the command ID in the existing snapshot. */ - if (!fcache->readonly_func) + if (!fcache->func->readonly_func) { CommandCounterIncrement(); if (!pushed_snapshot) @@ -1190,7 +1667,7 @@ fmgr_sql(PG_FUNCTION_ARGS) postquel_start(es, fcache); } - else if (!fcache->readonly_func && !pushed_snapshot) + else if (!fcache->func->readonly_func && !pushed_snapshot) { /* Re-establish active snapshot when re-entering function */ PushActiveSnapshot(es->qd->snapshot); @@ -1201,14 +1678,15 @@ fmgr_sql(PG_FUNCTION_ARGS) /* * If we ran the command to completion, we can shut it down now. Any - * row(s) we need to return are safely stashed in the tuplestore, and - * we want to be sure that, for example, AFTER triggers get fired - * before we return anything. Also, if the function doesn't return - * set, we can shut it down anyway because it must be a SELECT and we - * don't care about fetching any more result rows. + * row(s) we need to return are safely stashed in the result slot or + * tuplestore, and we want to be sure that, for example, AFTER + * triggers get fired before we return anything. Also, if the + * function doesn't return set, we can shut it down anyway because it + * must be a SELECT and we don't care about fetching any more result + * rows. */ - if (completed || !fcache->returnsSet) - postquel_end(es); + if (completed || !fcache->func->returnsSet) + postquel_end(es, fcache); /* * Break from loop if we didn't shut down (implying we got a @@ -1223,17 +1701,11 @@ fmgr_sql(PG_FUNCTION_ARGS) break; /* - * Advance to next execution_state, which might be in the next list. + * Advance to next execution_state, and perhaps next query. */ es = es->next; while (!es) { - eslc = lnext(eslist, eslc); - if (!eslc) - break; /* end of function */ - - es = (execution_state *) lfirst(eslc); - /* * Flush the current snapshot so that we will take a new one for * the new query list. This ensures that new snaps are taken at @@ -1245,13 +1717,19 @@ fmgr_sql(PG_FUNCTION_ARGS) PopActiveSnapshot(); pushed_snapshot = false; } + + if (!init_execution_state(fcache)) + break; /* end of function */ + + es = fcache->eslist; } } /* - * The tuplestore now contains whatever row(s) we are supposed to return. + * The result slot or tuplestore now contains whatever row(s) we are + * supposed to return. */ - if (fcache->returnsSet) + if (fcache->func->returnsSet) { ReturnSetInfo *rsi = (ReturnSetInfo *) fcinfo->resultinfo; @@ -1262,17 +1740,12 @@ fmgr_sql(PG_FUNCTION_ARGS) * row. */ Assert(es->lazyEval); - /* Re-use the junkfilter's output slot to fetch back the tuple */ + /* The junkfilter's result slot contains the query result tuple */ Assert(fcache->junkFilter); slot = fcache->junkFilter->jf_resultSlot; - if (!tuplestore_gettupleslot(fcache->tstore, true, false, slot)) - elog(ERROR, "failed to fetch lazy-eval tuple"); + Assert(!TTS_EMPTY(slot)); /* Extract the result as a datum, and copy out from the slot */ - result = postquel_get_single_result(slot, fcinfo, - fcache, oldcontext); - /* Clear the tuplestore, but keep it for next time */ - /* NB: this might delete the slot's content, but we don't care */ - tuplestore_clear(fcache->tstore); + result = postquel_get_single_result(slot, fcinfo, fcache); /* * Let caller know we're not finished. @@ -1294,12 +1767,8 @@ fmgr_sql(PG_FUNCTION_ARGS) else if (fcache->lazyEval) { /* - * We are done with a lazy evaluation. Clean up. - */ - tuplestore_clear(fcache->tstore); - - /* - * Let caller know we're finished. + * We are done with a lazy evaluation. Let caller know we're + * finished. */ rsi->isDone = ExprEndResult; @@ -1321,7 +1790,12 @@ fmgr_sql(PG_FUNCTION_ARGS) * We are done with a non-lazy evaluation. Return whatever is in * the tuplestore. (It is now caller's responsibility to free the * tuplestore when done.) + * + * Note an edge case: we could get here without having made a + * tuplestore if the function is declared to return SETOF VOID. + * ExecMakeTableFunctionResult will cope with null setResult. */ + Assert(fcache->tstore || fcache->func->rettype == VOIDOID); rsi->returnMode = SFRM_Materialize; rsi->setResult = fcache->tstore; fcache->tstore = NULL; @@ -1349,11 +1823,10 @@ fmgr_sql(PG_FUNCTION_ARGS) */ if (fcache->junkFilter) { - /* Re-use the junkfilter's output slot to fetch back the tuple */ + /* The junkfilter's result slot contains the query result tuple */ slot = fcache->junkFilter->jf_resultSlot; - if (tuplestore_gettupleslot(fcache->tstore, true, false, slot)) - result = postquel_get_single_result(slot, fcinfo, - fcache, oldcontext); + if (!TTS_EMPTY(slot)) + result = postquel_get_single_result(slot, fcinfo, fcache); else { fcinfo->isnull = true; @@ -1363,13 +1836,10 @@ fmgr_sql(PG_FUNCTION_ARGS) else { /* Should only get here for VOID functions and procedures */ - Assert(fcache->rettype == VOIDOID); + Assert(fcache->func->rettype == VOIDOID); fcinfo->isnull = true; result = (Datum) 0; } - - /* Clear the tuplestore, but keep it for next time */ - tuplestore_clear(fcache->tstore); } /* Pop snapshot if we have pushed one */ @@ -1378,154 +1848,154 @@ fmgr_sql(PG_FUNCTION_ARGS) /* * If we've gone through every command in the function, we are done. Reset - * the execution states to start over again on next call. + * state to start over again on next call. */ if (es == NULL) - { - foreach(eslc, fcache->func_state) - { - es = (execution_state *) lfirst(eslc); - while (es) - { - es->status = F_EXEC_START; - es = es->next; - } - } - } + fcache->eslist = NULL; error_context_stack = sqlerrcontext.previous; - MemoryContextSwitchTo(oldcontext); - return result; } /* - * error context callback to let us supply a call-stack traceback + * error context callback to let us supply a traceback during compile */ static void -sql_exec_error_callback(void *arg) +sql_compile_error_callback(void *arg) { - FmgrInfo *flinfo = (FmgrInfo *) arg; - SQLFunctionCachePtr fcache = (SQLFunctionCachePtr) flinfo->fn_extra; + SQLFunctionHashEntry *func = (SQLFunctionHashEntry *) arg; int syntaxerrposition; /* - * We can do nothing useful if init_sql_fcache() didn't get as far as - * saving the function name + * We can do nothing useful if sql_compile_callback() didn't get as far as + * copying the function name */ - if (fcache == NULL || fcache->fname == NULL) + if (func->fname == NULL) return; /* * If there is a syntax error position, convert to internal syntax error */ syntaxerrposition = geterrposition(); - if (syntaxerrposition > 0 && fcache->src != NULL) + if (syntaxerrposition > 0 && func->src != NULL) { errposition(0); internalerrposition(syntaxerrposition); - internalerrquery(fcache->src); + internalerrquery(func->src); } /* - * Try to determine where in the function we failed. If there is a query - * with non-null QueryDesc, finger it. (We check this rather than looking - * for F_EXEC_RUN state, so that errors during ExecutorStart or - * ExecutorEnd are blamed on the appropriate query; see postquel_start and - * postquel_end.) + * sql_compile_callback() doesn't do any per-query processing, so just + * report the context as "during startup". */ - if (fcache->func_state) - { - execution_state *es; - int query_num; - ListCell *lc; + errcontext("SQL function \"%s\" during startup", func->fname); +} - es = NULL; - query_num = 1; - foreach(lc, fcache->func_state) - { - es = (execution_state *) lfirst(lc); - while (es) - { - if (es->qd) - { - errcontext("SQL function \"%s\" statement %d", - fcache->fname, query_num); - break; - } - es = es->next; - } - if (es) - break; - query_num++; - } - if (es == NULL) - { - /* - * couldn't identify a running query; might be function entry, - * function exit, or between queries. - */ - errcontext("SQL function \"%s\"", fcache->fname); - } - } - else +/* + * error context callback to let us supply a call-stack traceback at runtime + */ +static void +sql_exec_error_callback(void *arg) +{ + SQLFunctionCachePtr fcache = (SQLFunctionCachePtr) arg; + int syntaxerrposition; + + /* + * If there is a syntax error position, convert to internal syntax error + */ + syntaxerrposition = geterrposition(); + if (syntaxerrposition > 0 && fcache->func->src != NULL) { - /* - * Assume we failed during init_sql_fcache(). (It's possible that the - * function actually has an empty body, but in that case we may as - * well report all errors as being "during startup".) - */ - errcontext("SQL function \"%s\" during startup", fcache->fname); + errposition(0); + internalerrposition(syntaxerrposition); + internalerrquery(fcache->func->src); } + + /* + * If we failed while executing an identifiable query within the function, + * report that. Otherwise say it was "during startup". + */ + if (fcache->error_query_index > 0) + errcontext("SQL function \"%s\" statement %d", + fcache->func->fname, fcache->error_query_index); + else + errcontext("SQL function \"%s\" during startup", fcache->func->fname); } /* - * callback function in case a function-returning-set needs to be shut down - * before it has been run to completion + * ExprContext callback function + * + * We register this in the active ExprContext while a set-returning SQL + * function is running, in case the function needs to be shut down before it + * has been run to completion. Note that this will not be called during an + * error abort, but we don't need it because transaction abort will take care + * of releasing executor resources. */ static void ShutdownSQLFunction(Datum arg) { SQLFunctionCachePtr fcache = (SQLFunctionCachePtr) DatumGetPointer(arg); execution_state *es; - ListCell *lc; - foreach(lc, fcache->func_state) + es = fcache->eslist; + while (es) { - es = (execution_state *) lfirst(lc); - while (es) + /* Shut down anything still running */ + if (es->status == F_EXEC_RUN) { - /* Shut down anything still running */ - if (es->status == F_EXEC_RUN) - { - /* Re-establish active snapshot for any called functions */ - if (!fcache->readonly_func) - PushActiveSnapshot(es->qd->snapshot); - - postquel_end(es); + /* Re-establish active snapshot for any called functions */ + if (!fcache->func->readonly_func) + PushActiveSnapshot(es->qd->snapshot); - if (!fcache->readonly_func) - PopActiveSnapshot(); - } + postquel_end(es, fcache); - /* Reset states to START in case we're called again */ - es->status = F_EXEC_START; - es = es->next; + if (!fcache->func->readonly_func) + PopActiveSnapshot(); } + es = es->next; } + fcache->eslist = NULL; /* Release tuplestore if we have one */ if (fcache->tstore) tuplestore_end(fcache->tstore); fcache->tstore = NULL; + /* Release CachedPlan if we have one */ + if (fcache->cplan) + ReleaseCachedPlan(fcache->cplan, fcache->cowner); + fcache->cplan = NULL; + /* execUtils will deregister the callback... */ fcache->shutdown_reg = false; } +/* + * MemoryContext callback function + * + * We register this in the memory context that contains a SQLFunctionCache + * struct. When the memory context is reset or deleted, we release the + * reference count (if any) that the cache holds on the long-lived hash entry. + * Note that this will happen even during error aborts. + */ +static void +RemoveSQLFunctionCache(void *arg) +{ + SQLFunctionCache *fcache = (SQLFunctionCache *) arg; + + /* Release reference count on SQLFunctionHashEntry */ + if (fcache->func != NULL) + { + Assert(fcache->func->cfunc.use_count > 0); + fcache->func->cfunc.use_count--; + /* This should be unnecessary, but let's just be sure: */ + fcache->func = NULL; + } +} + /* * check_sql_fn_statements * @@ -1541,29 +2011,39 @@ check_sql_fn_statements(List *queryTreeLists) foreach(lc, queryTreeLists) { List *sublist = lfirst_node(List, lc); - ListCell *lc2; - foreach(lc2, sublist) - { - Query *query = lfirst_node(Query, lc2); + check_sql_fn_statement(sublist); + } +} - /* - * Disallow calling procedures with output arguments. The current - * implementation would just throw the output values away, unless - * the statement is the last one. Per SQL standard, we should - * assign the output values by name. By disallowing this here, we - * preserve an opportunity for future improvement. - */ - if (query->commandType == CMD_UTILITY && - IsA(query->utilityStmt, CallStmt)) - { - CallStmt *stmt = (CallStmt *) query->utilityStmt; +/* + * As above, for a single sublist of Queries. + */ +static void +check_sql_fn_statement(List *queryTreeList) +{ + ListCell *lc; - if (stmt->outargs != NIL) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("calling procedures with output arguments is not supported in SQL functions"))); - } + foreach(lc, queryTreeList) + { + Query *query = lfirst_node(Query, lc); + + /* + * Disallow calling procedures with output arguments. The current + * implementation would just throw the output values away, unless the + * statement is the last one. Per SQL standard, we should assign the + * output values by name. By disallowing this here, we preserve an + * opportunity for future improvement. + */ + if (query->commandType == CMD_UTILITY && + IsA(query->utilityStmt, CallStmt)) + { + CallStmt *stmt = (CallStmt *) query->utilityStmt; + + if (stmt->outargs != NIL) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("calling procedures with output arguments is not supported in SQL functions"))); } } } @@ -1602,17 +2082,45 @@ check_sql_fn_statements(List *queryTreeLists) * In addition to coercing individual output columns, we can modify the * output to include dummy NULL columns for any dropped columns appearing * in rettupdesc. This is done only if the caller asks for it. - * - * If resultTargetList isn't NULL, then *resultTargetList is set to the - * targetlist that defines the final statement's result. Exception: if the - * function is defined to return VOID then *resultTargetList is set to NIL. */ bool check_sql_fn_retval(List *queryTreeLists, Oid rettype, TupleDesc rettupdesc, char prokind, - bool insertDroppedCols, - List **resultTargetList) + bool insertDroppedCols) +{ + List *queryTreeList; + + /* + * We consider only the last sublist of Query nodes, so that only the last + * original statement is a candidate to produce the result. This is a + * change from pre-v18 versions, which would back up to the last statement + * that includes a canSetTag query, thus ignoring any ending statement(s) + * that rewrite to DO INSTEAD NOTHING. That behavior was undocumented and + * there seems no good reason for it, except that it was an artifact of + * the original coding. + * + * If the function body is completely empty, handle that the same as if + * the last query had rewritten to nothing. + */ + if (queryTreeLists != NIL) + queryTreeList = llast_node(List, queryTreeLists); + else + queryTreeList = NIL; + + return check_sql_stmt_retval(queryTreeList, + rettype, rettupdesc, + prokind, insertDroppedCols); +} + +/* + * As for check_sql_fn_retval, but we are given just the last query's + * rewritten-queries list. + */ +static bool +check_sql_stmt_retval(List *queryTreeList, + Oid rettype, TupleDesc rettupdesc, + char prokind, bool insertDroppedCols) { bool is_tuple_result = false; Query *parse; @@ -1625,9 +2133,6 @@ check_sql_fn_retval(List *queryTreeLists, bool upper_tlist_nontrivial = false; ListCell *lc; - if (resultTargetList) - *resultTargetList = NIL; /* initialize in case of VOID result */ - /* * If it's declared to return VOID, we don't care what's in the function. * (This takes care of procedures with no output parameters, as well.) @@ -1636,30 +2141,20 @@ check_sql_fn_retval(List *queryTreeLists, return false; /* - * Find the last canSetTag query in the function body (which is presented - * to us as a list of sublists of Query nodes). This isn't necessarily - * the last parsetree, because rule rewriting can insert queries after - * what the user wrote. Note that it might not even be in the last - * sublist, for example if the last query rewrites to DO INSTEAD NOTHING. - * (It might not be unreasonable to throw an error in such a case, but - * this is the historical behavior and it doesn't seem worth changing.) + * Find the last canSetTag query in the list of Query nodes. This isn't + * necessarily the last parsetree, because rule rewriting can insert + * queries after what the user wrote. */ parse = NULL; parse_cell = NULL; - foreach(lc, queryTreeLists) + foreach(lc, queryTreeList) { - List *sublist = lfirst_node(List, lc); - ListCell *lc2; + Query *q = lfirst_node(Query, lc); - foreach(lc2, sublist) + if (q->canSetTag) { - Query *q = lfirst_node(Query, lc2); - - if (q->canSetTag) - { - parse = q; - parse_cell = lc2; - } + parse = q; + parse_cell = lc; } } @@ -1694,7 +2189,7 @@ check_sql_fn_retval(List *queryTreeLists, } else { - /* Empty function body, or last statement is a utility command */ + /* Last statement is a utility command, or it rewrote to nothing */ ereport(ERROR, (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), errmsg("return type mismatch in function declared to return %s", @@ -1812,12 +2307,7 @@ check_sql_fn_retval(List *queryTreeLists, * further checking. Assume we're returning the whole tuple. */ if (rettupdesc == NULL) - { - /* Return tlist if requested */ - if (resultTargetList) - *resultTargetList = tlist; return true; - } /* * Verify that the targetlist matches the return tuple type. We scan @@ -1984,10 +2474,6 @@ check_sql_fn_retval(List *queryTreeLists, lfirst(parse_cell) = newquery; } - /* Return tlist (possibly modified) if requested */ - if (resultTargetList) - *resultTargetList = upper_tlist; - return is_tuple_result; } @@ -2063,6 +2549,37 @@ coerce_fn_result_column(TargetEntry *src_tle, return true; } +/* + * Extract the targetlist of the last canSetTag query in the given list + * of parsed-and-rewritten Queries. Returns NIL if there is none. + */ +static List * +get_sql_fn_result_tlist(List *queryTreeList) +{ + Query *parse = NULL; + ListCell *lc; + + foreach(lc, queryTreeList) + { + Query *q = lfirst_node(Query, lc); + + if (q->canSetTag) + parse = q; + } + if (parse && + parse->commandType == CMD_SELECT) + return parse->targetList; + else if (parse && + (parse->commandType == CMD_INSERT || + parse->commandType == CMD_UPDATE || + parse->commandType == CMD_DELETE || + parse->commandType == CMD_MERGE) && + parse->returningList) + return parse->returningList; + else + return NIL; +} + /* * CreateSQLFunctionDestReceiver -- create a suitable DestReceiver object @@ -2100,11 +2617,32 @@ sqlfunction_receive(TupleTableSlot *slot, DestReceiver *self) { DR_sqlfunction *myState = (DR_sqlfunction *) self; - /* Filter tuple as needed */ - slot = ExecFilterJunk(myState->filter, slot); + if (myState->tstore) + { + /* We are collecting all of a set result into the tuplestore */ + + /* Filter tuple as needed */ + slot = ExecFilterJunk(myState->filter, slot); - /* Store the filtered tuple into the tuplestore */ - tuplestore_puttupleslot(myState->tstore, slot); + /* Store the filtered tuple into the tuplestore */ + tuplestore_puttupleslot(myState->tstore, slot); + } + else + { + /* + * We only want the first tuple, which we'll save in the junkfilter's + * result slot. Ignore any additional tuples passed. + */ + if (TTS_EMPTY(myState->filter->jf_resultSlot)) + { + /* Filter tuple as needed */ + slot = ExecFilterJunk(myState->filter, slot); + Assert(slot == myState->filter->jf_resultSlot); + + /* Materialize the slot so it preserves pass-by-ref values */ + ExecMaterializeSlot(slot); + } + } return true; } diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index f83fc16c5c8e2..377e016d73225 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -1492,7 +1492,7 @@ build_hash_tables(AggState *aggstate) if (IS_INJECTION_POINT_ATTACHED("hash-aggregate-oversize-table")) { nbuckets = memory / TupleHashEntrySize(); - INJECTION_POINT_CACHED("hash-aggregate-oversize-table"); + INJECTION_POINT_CACHED("hash-aggregate-oversize-table", NULL); } #endif @@ -1882,7 +1882,7 @@ hash_agg_check_limits(AggState *aggstate) if (IS_INJECTION_POINT_ATTACHED("hash-aggregate-spill-1000")) { do_spill = true; - INJECTION_POINT_CACHED("hash-aggregate-spill-1000"); + INJECTION_POINT_CACHED("hash-aggregate-spill-1000", NULL); } } #endif @@ -1910,7 +1910,7 @@ hash_agg_check_limits(AggState *aggstate) static void hash_agg_enter_spill_mode(AggState *aggstate) { - INJECTION_POINT("hash-aggregate-enter-spill-mode"); + INJECTION_POINT("hash-aggregate-enter-spill-mode", NULL); aggstate->hash_spill_mode = true; hashagg_recompile_expressions(aggstate, aggstate->table_filled, true); @@ -2739,7 +2739,7 @@ agg_refill_hash_table(AggState *aggstate) */ hashagg_recompile_expressions(aggstate, true, true); - INJECTION_POINT("hash-aggregate-process-batch"); + INJECTION_POINT("hash-aggregate-process-batch", NULL); for (;;) { TupleTableSlot *spillslot = aggstate->hash_spill_rslot; @@ -2995,7 +2995,7 @@ hashagg_spill_init(HashAggSpill *spill, LogicalTapeSet *tapeset, int used_bits, { npartitions = 1; partition_bits = 0; - INJECTION_POINT_CACHED("hash-aggregate-single-partition"); + INJECTION_POINT_CACHED("hash-aggregate-single-partition", NULL); } #endif diff --git a/src/backend/executor/nodeBitmapHeapscan.c b/src/backend/executor/nodeBitmapHeapscan.c index 3e33360c0fce0..bf24f3d7fe0a8 100644 --- a/src/backend/executor/nodeBitmapHeapscan.c +++ b/src/backend/executor/nodeBitmapHeapscan.c @@ -105,24 +105,11 @@ BitmapTableScanSetup(BitmapHeapScanState *node) */ if (!node->ss.ss_currentScanDesc) { - bool need_tuples = false; - - /* - * We can potentially skip fetching heap pages if we do not need any - * columns of the table, either for checking non-indexable quals or - * for returning data. This test is a bit simplistic, as it checks - * the stronger condition that there's no qual or return tlist at all. - * But in most cases it's probably not worth working harder than that. - */ - need_tuples = (node->ss.ps.plan->qual != NIL || - node->ss.ps.plan->targetlist != NIL); - node->ss.ss_currentScanDesc = table_beginscan_bm(node->ss.ss_currentRelation, node->ss.ps.state->es_snapshot, 0, - NULL, - need_tuples); + NULL); } node->ss.ss_currentScanDesc->st.rs_tbmiterator = tbmiterator; diff --git a/src/backend/executor/nodeMergejoin.c b/src/backend/executor/nodeMergejoin.c index f70239a2c9dd4..a233313128acb 100644 --- a/src/backend/executor/nodeMergejoin.c +++ b/src/backend/executor/nodeMergejoin.c @@ -220,7 +220,7 @@ MJExamineQuals(List *mergeclauses, &op_strategy, &op_lefttype, &op_righttype); - if (op_strategy != BTEqualStrategyNumber) /* should not happen */ + if (IndexAmTranslateStrategy(op_strategy, get_opfamily_method(opfamily), opfamily, true) != COMPARE_EQ) /* should not happen */ elog(ERROR, "cannot merge using non-equality operator %u", qual->opno); diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 309e27f8b5faa..2bc89bf84dc3f 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -212,33 +212,53 @@ ExecCheckPlanOutput(Relation resultRel, List *targetList) attr = TupleDescAttr(resultDesc, attno); attno++; - if (!attr->attisdropped) + /* + * Special cases here should match planner's expand_insert_targetlist. + */ + if (attr->attisdropped) { - /* Normal case: demand type match */ - if (exprType((Node *) tle->expr) != attr->atttypid) + /* + * For a dropped column, we can't check atttypid (it's likely 0). + * In any case the planner has most likely inserted an INT4 null. + * What we insist on is just *some* NULL constant. + */ + if (!IsA(tle->expr, Const) || + !((Const *) tle->expr)->constisnull) ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("table row type and query-specified row type do not match"), - errdetail("Table has type %s at ordinal position %d, but query expects %s.", - format_type_be(attr->atttypid), - attno, - format_type_be(exprType((Node *) tle->expr))))); + errdetail("Query provides a value for a dropped column at ordinal position %d.", + attno))); } - else + else if (attr->attgenerated) { /* - * For a dropped column, we can't check atttypid (it's likely 0). - * In any case the planner has most likely inserted an INT4 null. - * What we insist on is just *some* NULL constant. + * For a generated column, the planner will have inserted a null + * of the column's base type (to avoid possibly failing on domain + * not-null constraints). It doesn't seem worth insisting on that + * exact type though, since a null value is type-independent. As + * above, just insist on *some* NULL constant. */ if (!IsA(tle->expr, Const) || !((Const *) tle->expr)->constisnull) ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("table row type and query-specified row type do not match"), - errdetail("Query provides a value for a dropped column at ordinal position %d.", + errdetail("Query provides a value for a generated column at ordinal position %d.", attno))); } + else + { + /* Normal case: demand type match */ + if (exprType((Node *) tle->expr) != attr->atttypid) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("table row type and query-specified row type do not match"), + errdetail("Table has type %s at ordinal position %d, but query expects %s.", + format_type_be(attr->atttypid), + attno, + format_type_be(exprType((Node *) tle->expr))))); + } } if (attno != resultDesc->natts) ereport(ERROR, @@ -1291,7 +1311,7 @@ ExecInsert(ModifyTableContext *context, /* * Convert the OLD tuple to the new partition's format/slot, if - * needed. Note that ExceDelete() already converted it to the + * needed. Note that ExecDelete() already converted it to the * root's partition's format/slot. */ oldSlot = context->cpDeletedSlot; @@ -4810,12 +4830,11 @@ ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags) ExprContext *econtext; /* - * Initialize result tuple slot and assign its rowtype using the first - * RETURNING list. We assume the rest will look the same. + * Initialize result tuple slot and assign its rowtype using the plan + * node's declared targetlist, which the planner set up to be the same + * as the first (before runtime pruning) RETURNING list. We assume + * all the result rels will produce compatible output. */ - mtstate->ps.plan->targetlist = (List *) linitial(returningLists); - - /* Set up a slot for the output of the RETURNING projection(s) */ ExecInitResultTupleSlotTL(&mtstate->ps, &TTSOpsVirtual); slot = mtstate->ps.ps_ResultTupleSlot; @@ -4845,7 +4864,6 @@ ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags) * We still must construct a dummy result tuple type, because InitPlan * expects one (maybe should change that?). */ - mtstate->ps.plan->targetlist = NIL; ExecInitResultTypeTL(&mtstate->ps); mtstate->ps.ps_ExprContext = NULL; diff --git a/src/backend/executor/nodeSeqscan.c b/src/backend/executor/nodeSeqscan.c index 6f9e991eeae32..ed35c58c2c346 100644 --- a/src/backend/executor/nodeSeqscan.c +++ b/src/backend/executor/nodeSeqscan.c @@ -100,7 +100,7 @@ SeqRecheck(SeqScanState *node, TupleTableSlot *slot) * ExecSeqScan(node) * * Scans the relation sequentially and returns the next qualifying - * tuple. This variant is used when there is no es_eqp_active, no qual + * tuple. This variant is used when there is no es_epq_active, no qual * and no projection. Passing const-NULLs for these to ExecScanExtended * allows the compiler to eliminate the additional code that would * ordinarily be required for the evaluation of these. diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 3288396def3c5..ecb2e4ccaa1ca 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -70,8 +70,7 @@ static int _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options, static ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values, const char *Nulls); -static int _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, uint64 tcount, - CachedPlanSource *plansource, int query_index); +static int _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, uint64 tcount); static void _SPI_error_callback(void *arg); @@ -1686,8 +1685,7 @@ SPI_cursor_open_internal(const char *name, SPIPlanPtr plan, query_string, plansource->commandTag, stmt_list, - cplan, - plansource); + cplan); /* * Set up options for portal. Default SCROLL type is chosen the same way @@ -2502,7 +2500,6 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options, CachedPlanSource *plansource = (CachedPlanSource *) lfirst(lc1); List *stmt_list; ListCell *lc2; - int query_index = 0; spicallbackarg.query = plansource->query_string; @@ -2693,16 +2690,14 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options, snap = InvalidSnapshot; qdesc = CreateQueryDesc(stmt, - cplan, plansource->query_string, snap, crosscheck_snapshot, dest, options->params, _SPI_current->queryEnv, 0); - - res = _SPI_pquery(qdesc, fire_triggers, canSetTag ? options->tcount : 0, - plansource, query_index); + res = _SPI_pquery(qdesc, fire_triggers, + canSetTag ? options->tcount : 0); FreeQueryDesc(qdesc); } else @@ -2799,8 +2794,6 @@ _SPI_execute_plan(SPIPlanPtr plan, const SPIExecuteOptions *options, my_res = res; goto fail; } - - query_index++; } /* Done with this plan, so release refcount */ @@ -2878,8 +2871,7 @@ _SPI_convert_params(int nargs, Oid *argtypes, } static int -_SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, uint64 tcount, - CachedPlanSource *plansource, int query_index) +_SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, uint64 tcount) { int operation = queryDesc->operation; int eflags; @@ -2935,16 +2927,7 @@ _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, uint64 tcount, else eflags = EXEC_FLAG_SKIP_TRIGGERS; - if (queryDesc->cplan) - { - ExecutorStartCachedPlan(queryDesc, eflags, plansource, query_index); - Assert(queryDesc->planstate); - } - else - { - if (!ExecutorStart(queryDesc, eflags)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); - } + ExecutorStart(queryDesc, eflags); ExecutorRun(queryDesc, ForwardScanDirection, tcount); diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c index f0835fc307056..a57e59f27ea64 100644 --- a/src/backend/foreign/foreign.c +++ b/src/backend/foreign/foreign.c @@ -22,6 +22,7 @@ #include "foreign/foreign.h" #include "funcapi.h" #include "miscadmin.h" +#include "optimizer/paths.h" #include "tcop/tcopprot.h" #include "utils/builtins.h" #include "utils/memutils.h" @@ -808,7 +809,24 @@ GetExistingLocalJoinPath(RelOptInfo *joinrel) foreign_path = (ForeignPath *) joinpath->outerjoinpath; if (IS_JOIN_REL(foreign_path->path.parent)) + { joinpath->outerjoinpath = foreign_path->fdw_outerpath; + + if (joinpath->path.pathtype == T_MergeJoin) + { + MergePath *merge_path = (MergePath *) joinpath; + + /* + * If the new outer path is already well enough ordered + * for the mergejoin, we can skip doing an explicit sort. + */ + if (merge_path->outersortkeys && + pathkeys_count_contained_in(merge_path->outersortkeys, + joinpath->outerjoinpath->pathkeys, + &merge_path->outer_presorted_keys)) + merge_path->outersortkeys = NIL; + } + } } if (IsA(joinpath->innerjoinpath, ForeignPath)) @@ -817,7 +835,23 @@ GetExistingLocalJoinPath(RelOptInfo *joinrel) foreign_path = (ForeignPath *) joinpath->innerjoinpath; if (IS_JOIN_REL(foreign_path->path.parent)) + { joinpath->innerjoinpath = foreign_path->fdw_outerpath; + + if (joinpath->path.pathtype == T_MergeJoin) + { + MergePath *merge_path = (MergePath *) joinpath; + + /* + * If the new inner path is already well enough ordered + * for the mergejoin, we can skip doing an explicit sort. + */ + if (merge_path->innersortkeys && + pathkeys_contained_in(merge_path->innersortkeys, + joinpath->innerjoinpath->pathkeys)) + merge_path->innersortkeys = NIL; + } + } } return (Path *) joinpath; diff --git a/src/backend/jit/llvm/SectionMemoryManager.cpp b/src/backend/jit/llvm/SectionMemoryManager.cpp index c4fbf15a961c2..2171db5f382d0 100644 --- a/src/backend/jit/llvm/SectionMemoryManager.cpp +++ b/src/backend/jit/llvm/SectionMemoryManager.cpp @@ -40,8 +40,8 @@ #ifdef USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER #include "jit/SectionMemoryManager.h" -#include "llvm/Support/MathExtras.h" -#include "llvm/Support/Process.h" +#include +#include namespace llvm { namespace backport { diff --git a/src/backend/jit/llvm/llvmjit_deform.c b/src/backend/jit/llvm/llvmjit_deform.c index 5d169c7a40b27..c562edd094bb2 100644 --- a/src/backend/jit/llvm/llvmjit_deform.c +++ b/src/backend/jit/llvm/llvmjit_deform.c @@ -123,7 +123,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, * combination of attisdropped && attnotnull combination shouldn't * exist. */ - if (att->attnotnull && + if (att->attnullability == ATTNULLABLE_VALID && !att->atthasmissing && !att->attisdropped) guaranteed_column_number = attnum; @@ -438,7 +438,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, * into account, because if they're present the heaptuple's natts * would have indicated that a slot_getmissingattrs() is needed. */ - if (!att->attnotnull) + if (att->attnullability != ATTNULLABLE_VALID) { LLVMBasicBlockRef b_ifnotnull; LLVMBasicBlockRef b_ifnull; @@ -604,7 +604,8 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, known_alignment = -1; attguaranteedalign = false; } - else if (att->attnotnull && attguaranteedalign && known_alignment >= 0) + else if (att->attnullability == ATTNULLABLE_VALID && + attguaranteedalign && known_alignment >= 0) { /* * If the offset to the column was previously known, a NOT NULL & @@ -614,7 +615,8 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, Assert(att->attlen > 0); known_alignment += att->attlen; } - else if (att->attnotnull && (att->attlen % alignto) == 0) + else if (att->attnullability == ATTNULLABLE_VALID && + (att->attlen % alignto) == 0) { /* * After a NOT NULL fixed-width column with a length that is a diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c index 26dd241efa9b3..db778405724ad 100644 --- a/src/backend/libpq/auth-scram.c +++ b/src/backend/libpq/auth-scram.c @@ -158,7 +158,7 @@ typedef struct /* Fields from the last message from client */ char *client_final_message_without_proof; char *client_final_nonce; - char ClientProof[SCRAM_MAX_KEY_LEN]; + uint8 ClientProof[SCRAM_MAX_KEY_LEN]; /* Fields generated in the server */ char *server_first_message; @@ -186,9 +186,9 @@ static void mock_scram_secret(const char *username, pg_cryptohash_type *hash_typ static bool is_scram_printable(char *p); static char *sanitize_char(char c); static char *sanitize_str(const char *s); -static char *scram_mock_salt(const char *username, - pg_cryptohash_type hash_type, - int key_length); +static uint8 *scram_mock_salt(const char *username, + pg_cryptohash_type hash_type, + int key_length); /* * The number of iterations to use when generating new secrets. @@ -484,7 +484,7 @@ pg_be_scram_build_secret(const char *password) { char *prep_password; pg_saslprep_rc rc; - char saltbuf[SCRAM_DEFAULT_SALT_LEN]; + uint8 saltbuf[SCRAM_DEFAULT_SALT_LEN]; char *result; const char *errstr = NULL; @@ -524,7 +524,7 @@ scram_verify_plain_password(const char *username, const char *password, const char *secret) { char *encoded_salt; - char *salt; + uint8 *salt; int saltlen; int iterations; int key_length = 0; @@ -609,9 +609,9 @@ parse_scram_secret(const char *secret, int *iterations, char *storedkey_str; char *serverkey_str; int decoded_len; - char *decoded_salt_buf; - char *decoded_stored_buf; - char *decoded_server_buf; + uint8 *decoded_salt_buf; + uint8 *decoded_stored_buf; + uint8 *decoded_server_buf; /* * The secret is of form: @@ -698,7 +698,7 @@ mock_scram_secret(const char *username, pg_cryptohash_type *hash_type, int *iterations, int *key_length, char **salt, uint8 *stored_key, uint8 *server_key) { - char *raw_salt; + uint8 *raw_salt; char *encoded_salt; int encoded_len; @@ -1231,7 +1231,7 @@ build_server_first_message(scram_state *state) * For convenience, however, we don't use the whole range available, * rather, we generate some random bytes, and base64 encode them. */ - char raw_nonce[SCRAM_RAW_NONCE_LEN]; + uint8 raw_nonce[SCRAM_RAW_NONCE_LEN]; int encoded_len; if (!pg_strong_random(raw_nonce, SCRAM_RAW_NONCE_LEN)) @@ -1271,7 +1271,7 @@ read_client_final_message(scram_state *state, const char *input) char *begin, *proof; char *p; - char *client_proof; + uint8 *client_proof; int client_proof_len; begin = p = pstrdup(input); @@ -1340,7 +1340,7 @@ read_client_final_message(scram_state *state, const char *input) b64_message_len = pg_b64_enc_len(cbind_input_len); /* don't forget the zero-terminator */ b64_message = palloc(b64_message_len + 1); - b64_message_len = pg_b64_encode(cbind_input, cbind_input_len, + b64_message_len = pg_b64_encode((uint8 *) cbind_input, cbind_input_len, b64_message, b64_message_len); if (b64_message_len < 0) elog(ERROR, "could not encode channel binding data"); @@ -1440,7 +1440,7 @@ build_server_final_message(scram_state *state) siglen = pg_b64_enc_len(state->key_length); /* don't forget the zero-terminator */ server_signature_base64 = palloc(siglen + 1); - siglen = pg_b64_encode((const char *) ServerSignature, + siglen = pg_b64_encode(ServerSignature, state->key_length, server_signature_base64, siglen); if (siglen < 0) @@ -1467,7 +1467,7 @@ build_server_final_message(scram_state *state) * hash based on the username and a cluster-level secret key. Returns a * pointer to a static buffer of size SCRAM_DEFAULT_SALT_LEN, or NULL. */ -static char * +static uint8 * scram_mock_salt(const char *username, pg_cryptohash_type hash_type, int key_length) { @@ -1501,5 +1501,5 @@ scram_mock_salt(const char *username, pg_cryptohash_type hash_type, } pg_cryptohash_free(ctx); - return (char *) sha_digest; + return sha_digest; } diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index e18683c47e726..9f4d05ffbd453 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -666,7 +666,7 @@ ClientAuthentication(Port *port) * Send an authentication request packet to the frontend. */ void -sendAuthRequest(Port *port, AuthRequest areq, const char *extradata, int extralen) +sendAuthRequest(Port *port, AuthRequest areq, const void *extradata, int extralen) { StringInfoData buf; @@ -874,7 +874,7 @@ CheckPWChallengeAuth(Port *port, const char **logdetail) static int CheckMD5Auth(Port *port, char *shadow_pass, const char **logdetail) { - char md5Salt[4]; /* Password salt */ + uint8 md5Salt[4]; /* Password salt */ char *passwd; int result; diff --git a/src/backend/libpq/be-secure-gssapi.c b/src/backend/libpq/be-secure-gssapi.c index a3d610b1373da..717ba9824f914 100644 --- a/src/backend/libpq/be-secure-gssapi.c +++ b/src/backend/libpq/be-secure-gssapi.c @@ -500,7 +500,7 @@ secure_open_gssapi(Port *port) minor; gss_cred_id_t delegated_creds; - INJECTION_POINT("backend-gssapi-startup"); + INJECTION_POINT("backend-gssapi-startup", NULL); /* * Allocate subsidiary Port data for GSSAPI operations. diff --git a/src/backend/libpq/be-secure.c b/src/backend/libpq/be-secure.c index 91576f942857d..d723e74e8137b 100644 --- a/src/backend/libpq/be-secure.c +++ b/src/backend/libpq/be-secure.c @@ -131,7 +131,7 @@ secure_open_server(Port *port) } Assert(pq_buffer_remaining_data() == 0); - INJECTION_POINT("backend-ssl-startup"); + INJECTION_POINT("backend-ssl-startup", NULL); r = be_tls_open_server(port); diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c index cbb85a27cc167..f6b641e726ec3 100644 --- a/src/backend/libpq/crypt.c +++ b/src/backend/libpq/crypt.c @@ -136,7 +136,7 @@ encrypt_password(PasswordType target_type, const char *role, case PASSWORD_TYPE_MD5: encrypted_password = palloc(MD5_PASSWD_LEN + 1); - if (!pg_md5_encrypt(password, role, strlen(role), + if (!pg_md5_encrypt(password, (uint8 *) role, strlen(role), encrypted_password, &errstr)) elog(ERROR, "password encryption failed: %s", errstr); break; @@ -201,7 +201,7 @@ encrypt_password(PasswordType target_type, const char *role, int md5_crypt_verify(const char *role, const char *shadow_pass, const char *client_pass, - const char *md5_salt, int md5_salt_len, + const uint8 *md5_salt, int md5_salt_len, const char **logdetail) { int retval; @@ -284,7 +284,7 @@ plain_crypt_verify(const char *role, const char *shadow_pass, case PASSWORD_TYPE_MD5: if (!pg_md5_encrypt(client_pass, - role, + (uint8 *) role, strlen(role), crypt_client_pass, &errstr)) diff --git a/src/backend/nodes/gen_node_support.pl b/src/backend/nodes/gen_node_support.pl index f6229089cd15b..77659b0f76020 100644 --- a/src/backend/nodes/gen_node_support.pl +++ b/src/backend/nodes/gen_node_support.pl @@ -195,6 +195,7 @@ sub elem foreach my $infile (@ARGV) { my $in_struct; + my $in_struct_lineno; my $subline; my $is_node_struct; my $supertype; @@ -543,6 +544,7 @@ sub elem if ($line =~ /^(?:typedef )?struct (\w+)$/ && $1 ne 'Node') { $in_struct = $1; + $in_struct_lineno = $lineno; $subline = 0; } # one node type typedef'ed directly from another @@ -570,7 +572,8 @@ sub elem if ($in_struct) { - die "runaway \"$in_struct\" in file \"$infile\"\n"; + die + "$infile:$in_struct_lineno: could not find closing brace for struct \"$in_struct\"\n"; } close $ifh; diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index bb9bdd6719266..ceac3fd862014 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -465,9 +465,12 @@ _outEquivalenceClass(StringInfo str, const EquivalenceClass *node) WRITE_NODE_FIELD(ec_opfamilies); WRITE_OID_FIELD(ec_collation); + WRITE_INT_FIELD(ec_childmembers_size); WRITE_NODE_FIELD(ec_members); + WRITE_NODE_ARRAY(ec_childmembers, node->ec_childmembers_size); WRITE_NODE_FIELD(ec_sources); - WRITE_NODE_FIELD(ec_derives); + /* Only ec_derives_list is written; hash is not serialized. */ + WRITE_NODE_FIELD(ec_derives_list); WRITE_BITMAPSET_FIELD(ec_relids); WRITE_BOOL_FIELD(ec_has_const); WRITE_BOOL_FIELD(ec_has_volatile); diff --git a/src/backend/nodes/queryjumblefuncs.c b/src/backend/nodes/queryjumblefuncs.c index 513cf92d357f3..d1e82a63f09a8 100644 --- a/src/backend/nodes/queryjumblefuncs.c +++ b/src/backend/nodes/queryjumblefuncs.c @@ -58,10 +58,10 @@ bool query_id_enabled = false; static JumbleState *InitJumble(void); static uint64 DoJumble(JumbleState *jstate, Node *node); static void AppendJumble(JumbleState *jstate, - const unsigned char *item, Size size); + const unsigned char *value, Size size); static void FlushPendingNulls(JumbleState *jstate); static void RecordConstLocation(JumbleState *jstate, - int location, bool merged); + int location, bool squashed); static void _jumbleNode(JumbleState *jstate, Node *node); static void _jumbleElements(JumbleState *jstate, List *elements); static void _jumbleA_Const(JumbleState *jstate, Node *node); @@ -357,7 +357,7 @@ AppendJumble64(JumbleState *jstate, const unsigned char *value) /* * FlushPendingNulls - * Incorporate the pending_null value into the jumble buffer. + * Incorporate the pending_nulls value into the jumble buffer. * * Note: Callers must ensure that there's at least 1 pending NULL. */ diff --git a/src/backend/optimizer/README b/src/backend/optimizer/README index f341d9f303c73..9c724ccfabf83 100644 --- a/src/backend/optimizer/README +++ b/src/backend/optimizer/README @@ -143,7 +143,6 @@ For example: {1 2},{2 3},{3 4} {1 2 3},{2 3 4} {1 2 3 4} - (other possibilities will be excluded for lack of join clauses) SELECT * FROM tab1, tab2, tab3, tab4 @@ -156,6 +155,11 @@ For example: {1 2 3},{1 3 4},{1 2 4} {1 2 3 4} +In each of these examples, other join-order possibilities will be excluded +for lack of join clauses. (In reality, use of EquivalenceClasses would +allow us to deduce additional join clauses that allow more join orders, +but here we ignore that to preserve the simplicity of the examples.) + We consider left-handed plans (the outer rel of an upper join is a joinrel, but the inner is always a single list item); right-handed plans (outer rel is always a single item); and bushy plans (both inner and outer can be @@ -898,7 +902,7 @@ contain the equivalent child-relation variables or expressions. These members are *not* full-fledged members of the EquivalenceClass and do not affect the class's overall properties at all. They are kept only to simplify matching of child-relation expressions to EquivalenceClasses. -Most operations on EquivalenceClasses should ignore child members. +Most operations on EquivalenceClasses needn't look at child members. PathKeys diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index df3453f99f0fb..6cc6966b0600a 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -1891,7 +1891,17 @@ generate_orderedappend_paths(PlannerInfo *root, RelOptInfo *rel, */ if (root->tuple_fraction > 0) { - double path_fraction = (1.0 / root->tuple_fraction); + double path_fraction = root->tuple_fraction; + + /* + * Merge Append considers only live children relations. Dummy + * relations must be filtered out before. + */ + Assert(childrel->rows > 0); + + /* Convert absolute limit to a path fraction */ + if (path_fraction >= 1.0) + path_fraction /= childrel->rows; cheapest_fractional = get_cheapest_fractional_path_for_pathkeys(childrel->pathlist, @@ -2313,16 +2323,15 @@ find_window_run_conditions(Query *subquery, RangeTblEntry *rte, Index rti, runopexpr = NULL; runoperator = InvalidOid; - opinfos = get_op_btree_interpretation(opexpr->opno); + opinfos = get_op_index_interpretation(opexpr->opno); foreach(lc, opinfos) { - OpBtreeInterpretation *opinfo = (OpBtreeInterpretation *) lfirst(lc); - int strategy = opinfo->strategy; + OpIndexInterpretation *opinfo = (OpIndexInterpretation *) lfirst(lc); + CompareType cmptype = opinfo->cmptype; /* handle < / <= */ - if (strategy == BTLessStrategyNumber || - strategy == BTLessEqualStrategyNumber) + if (cmptype == COMPARE_LT || cmptype == COMPARE_LE) { /* * < / <= is supported for monotonically increasing functions in @@ -2339,8 +2348,7 @@ find_window_run_conditions(Query *subquery, RangeTblEntry *rte, Index rti, break; } /* handle > / >= */ - else if (strategy == BTGreaterStrategyNumber || - strategy == BTGreaterEqualStrategyNumber) + else if (cmptype == COMPARE_GT || cmptype == COMPARE_GE) { /* * > / >= is supported for monotonically decreasing functions in @@ -2357,9 +2365,9 @@ find_window_run_conditions(Query *subquery, RangeTblEntry *rte, Index rti, break; } /* handle = */ - else if (strategy == BTEqualStrategyNumber) + else if (cmptype == COMPARE_EQ) { - int16 newstrategy; + CompareType newcmptype; /* * When both monotonically increasing and decreasing then the @@ -2383,19 +2391,19 @@ find_window_run_conditions(Query *subquery, RangeTblEntry *rte, Index rti, * below the value in the equality condition. */ if (res->monotonic & MONOTONICFUNC_INCREASING) - newstrategy = wfunc_left ? BTLessEqualStrategyNumber : BTGreaterEqualStrategyNumber; + newcmptype = wfunc_left ? COMPARE_LE : COMPARE_GE; else - newstrategy = wfunc_left ? BTGreaterEqualStrategyNumber : BTLessEqualStrategyNumber; + newcmptype = wfunc_left ? COMPARE_GE : COMPARE_LE; /* We must keep the original equality qual */ *keep_original = true; runopexpr = opexpr; /* determine the operator to use for the WindowFuncRunCondition */ - runoperator = get_opfamily_member(opinfo->opfamily_id, - opinfo->oplefttype, - opinfo->oprighttype, - newstrategy); + runoperator = get_opfamily_member_for_cmptype(opinfo->opfamily_id, + opinfo->oplefttype, + opinfo->oprighttype, + newcmptype); break; } } diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c index f6f77b8fe1938..3d44815ed5adf 100644 --- a/src/backend/optimizer/path/costsize.c +++ b/src/backend/optimizer/path/costsize.c @@ -3542,6 +3542,7 @@ final_cost_nestloop(PlannerInfo *root, NestPath *path, * 'inner_path' is the inner input to the join * 'outersortkeys' is the list of sort keys for the outer path * 'innersortkeys' is the list of sort keys for the inner path + * 'outer_presorted_keys' is the number of presorted keys of the outer path * 'extra' contains miscellaneous information about the join * * Note: outersortkeys and innersortkeys should be NIL if no explicit @@ -3553,6 +3554,7 @@ initial_cost_mergejoin(PlannerInfo *root, JoinCostWorkspace *workspace, List *mergeclauses, Path *outer_path, Path *inner_path, List *outersortkeys, List *innersortkeys, + int outer_presorted_keys, JoinPathExtraData *extra) { int disabled_nodes; @@ -3608,7 +3610,7 @@ initial_cost_mergejoin(PlannerInfo *root, JoinCostWorkspace *workspace, /* debugging check */ if (opathkey->pk_opfamily != ipathkey->pk_opfamily || opathkey->pk_eclass->ec_collation != ipathkey->pk_eclass->ec_collation || - opathkey->pk_strategy != ipathkey->pk_strategy || + opathkey->pk_cmptype != ipathkey->pk_cmptype || opathkey->pk_nulls_first != ipathkey->pk_nulls_first) elog(ERROR, "left and right pathkeys do not match in mergejoin"); @@ -3683,27 +3685,33 @@ initial_cost_mergejoin(PlannerInfo *root, JoinCostWorkspace *workspace, if (outersortkeys) /* do we need to sort outer? */ { - bool use_incremental_sort = false; - int presorted_keys; + /* + * We can assert that the outer path is not already ordered + * appropriately for the mergejoin; otherwise, outersortkeys would + * have been set to NIL. + */ + Assert(!pathkeys_contained_in(outersortkeys, outer_path->pathkeys)); /* * We choose to use incremental sort if it is enabled and there are * presorted keys; otherwise we use full sort. */ - if (enable_incremental_sort) + if (enable_incremental_sort && outer_presorted_keys > 0) { - bool is_sorted PG_USED_FOR_ASSERTS_ONLY; - - is_sorted = pathkeys_count_contained_in(outersortkeys, - outer_path->pathkeys, - &presorted_keys); - Assert(!is_sorted); - - if (presorted_keys > 0) - use_incremental_sort = true; + cost_incremental_sort(&sort_path, + root, + outersortkeys, + outer_presorted_keys, + outer_path->disabled_nodes, + outer_path->startup_cost, + outer_path->total_cost, + outer_path_rows, + outer_path->pathtarget->width, + 0.0, + work_mem, + -1.0); } - - if (!use_incremental_sort) + else { cost_sort(&sort_path, root, @@ -3716,21 +3724,7 @@ initial_cost_mergejoin(PlannerInfo *root, JoinCostWorkspace *workspace, work_mem, -1.0); } - else - { - cost_incremental_sort(&sort_path, - root, - outersortkeys, - presorted_keys, - outer_path->disabled_nodes, - outer_path->startup_cost, - outer_path->total_cost, - outer_path_rows, - outer_path->pathtarget->width, - 0.0, - work_mem, - -1.0); - } + disabled_nodes += sort_path.disabled_nodes; startup_cost += sort_path.startup_cost; startup_cost += (sort_path.total_cost - sort_path.startup_cost) @@ -3750,6 +3744,13 @@ initial_cost_mergejoin(PlannerInfo *root, JoinCostWorkspace *workspace, if (innersortkeys) /* do we need to sort inner? */ { + /* + * We can assert that the inner path is not already ordered + * appropriately for the mergejoin; otherwise, innersortkeys would + * have been set to NIL. + */ + Assert(!pathkeys_contained_in(innersortkeys, inner_path->pathkeys)); + /* * We do not consider incremental sort for inner path, because * incremental sort does not support mark/restore. @@ -4093,7 +4094,7 @@ cached_scansel(PlannerInfo *root, RestrictInfo *rinfo, PathKey *pathkey) cache = (MergeScanSelCache *) lfirst(lc); if (cache->opfamily == pathkey->pk_opfamily && cache->collation == pathkey->pk_eclass->ec_collation && - cache->strategy == pathkey->pk_strategy && + cache->cmptype == pathkey->pk_cmptype && cache->nulls_first == pathkey->pk_nulls_first) return cache; } @@ -4102,7 +4103,7 @@ cached_scansel(PlannerInfo *root, RestrictInfo *rinfo, PathKey *pathkey) mergejoinscansel(root, (Node *) rinfo->clause, pathkey->pk_opfamily, - pathkey->pk_strategy, + pathkey->pk_cmptype, pathkey->pk_nulls_first, &leftstartsel, &leftendsel, @@ -4115,7 +4116,7 @@ cached_scansel(PlannerInfo *root, RestrictInfo *rinfo, PathKey *pathkey) cache = (MergeScanSelCache *) palloc(sizeof(MergeScanSelCache)); cache->opfamily = pathkey->pk_opfamily; cache->collation = pathkey->pk_eclass->ec_collation; - cache->strategy = pathkey->pk_strategy; + cache->cmptype = pathkey->pk_cmptype; cache->nulls_first = pathkey->pk_nulls_first; cache->leftstartsel = leftstartsel; cache->leftendsel = leftendsel; @@ -5848,7 +5849,8 @@ get_foreign_key_join_selectivity(PlannerInfo *root, if (ec && ec->ec_has_const) { EquivalenceMember *em = fkinfo->fk_eclass_member[i]; - RestrictInfo *rinfo = find_derived_clause_for_ec_member(ec, + RestrictInfo *rinfo = find_derived_clause_for_ec_member(root, + ec, em); if (rinfo) diff --git a/src/backend/optimizer/path/equivclass.c b/src/backend/optimizer/path/equivclass.c index 0f9ecf5ee8b2d..441f12f6c50cf 100644 --- a/src/backend/optimizer/path/equivclass.c +++ b/src/backend/optimizer/path/equivclass.c @@ -20,6 +20,7 @@ #include "access/stratnum.h" #include "catalog/pg_type.h" +#include "common/hashfn.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "optimizer/appendinfo.h" @@ -33,11 +34,23 @@ #include "utils/lsyscache.h" +static EquivalenceMember *make_eq_member(EquivalenceClass *ec, + Expr *expr, Relids relids, + JoinDomain *jdomain, + EquivalenceMember *parent, + Oid datatype); static EquivalenceMember *add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids, JoinDomain *jdomain, - EquivalenceMember *parent, Oid datatype); +static EquivalenceMember *add_child_eq_member(PlannerInfo *root, + EquivalenceClass *ec, + int ec_index, Expr *expr, + Relids relids, + JoinDomain *jdomain, + EquivalenceMember *parent_em, + Oid datatype, + Index child_relid); static void generate_base_implied_equalities_const(PlannerInfo *root, EquivalenceClass *ec); static void generate_base_implied_equalities_no_const(PlannerInfo *root, @@ -72,7 +85,56 @@ static Bitmapset *get_eclass_indexes_for_relids(PlannerInfo *root, Relids relids); static Bitmapset *get_common_eclass_indexes(PlannerInfo *root, Relids relids1, Relids relids2); +static void ec_build_derives_hash(PlannerInfo *root, EquivalenceClass *ec); +static void ec_add_derived_clauses(EquivalenceClass *ec, List *clauses); +static void ec_add_derived_clause(EquivalenceClass *ec, RestrictInfo *clause); +static void ec_add_clause_to_derives_hash(EquivalenceClass *ec, RestrictInfo *rinfo); +static RestrictInfo *ec_search_clause_for_ems(PlannerInfo *root, EquivalenceClass *ec, + EquivalenceMember *leftem, + EquivalenceMember *rightem, + EquivalenceClass *parent_ec); +static RestrictInfo *ec_search_derived_clause_for_ems(PlannerInfo *root, + EquivalenceClass *ec, + EquivalenceMember *leftem, + EquivalenceMember *rightem, + EquivalenceClass *parent_ec); +/* + * Hash key identifying a derived clause. + * + * This structure should not be filled manually. Use fill_ec_derives_key() to + * set it up in canonical form. + */ +typedef struct +{ + EquivalenceMember *em1; + EquivalenceMember *em2; + EquivalenceClass *parent_ec; +} ECDerivesKey; + +/* Hash table entry in ec_derives_hash. */ +typedef struct +{ + uint32 status; + ECDerivesKey key; + RestrictInfo *rinfo; +} ECDerivesEntry; + +/* Threshold for switching from list to hash table */ +#define EC_DERIVES_HASH_THRESHOLD 32 + +#define SH_PREFIX derives +#define SH_ELEMENT_TYPE ECDerivesEntry +#define SH_KEY_TYPE ECDerivesKey +#define SH_KEY key +#define SH_HASH_KEY(tb, key) \ + hash_bytes((const unsigned char *) &(key), sizeof(ECDerivesKey)) +#define SH_EQUAL(tb, a, b) \ + ((a).em1 == (b).em1 && (a).em2 == (b).em2 && (a).parent_ec == (b).parent_ec) +#define SH_SCOPE static inline +#define SH_DECLARE +#define SH_DEFINE +#include "lib/simplehash.h" /* * process_equivalence @@ -264,11 +326,15 @@ process_equivalence(PlannerInfo *root, if (!equal(opfamilies, cur_ec->ec_opfamilies)) continue; + /* We don't expect any children yet */ + Assert(cur_ec->ec_childmembers == NULL); + foreach(lc2, cur_ec->ec_members) { EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2); - Assert(!cur_em->em_is_child); /* no children yet */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); /* * Match constants only within the same JoinDomain (see @@ -342,7 +408,12 @@ process_equivalence(PlannerInfo *root, */ ec1->ec_members = list_concat(ec1->ec_members, ec2->ec_members); ec1->ec_sources = list_concat(ec1->ec_sources, ec2->ec_sources); - ec1->ec_derives = list_concat(ec1->ec_derives, ec2->ec_derives); + + /* + * Appends ec2's derived clauses to ec1->ec_derives_list and adds them + * to ec1->ec_derives_hash if present. + */ + ec_add_derived_clauses(ec1, ec2->ec_derives_list); ec1->ec_relids = bms_join(ec1->ec_relids, ec2->ec_relids); ec1->ec_has_const |= ec2->ec_has_const; /* can't need to set has_volatile */ @@ -355,7 +426,7 @@ process_equivalence(PlannerInfo *root, /* just to avoid debugging confusion w/ dangling pointers: */ ec2->ec_members = NIL; ec2->ec_sources = NIL; - ec2->ec_derives = NIL; + ec_clear_derived_clauses(ec2); ec2->ec_relids = NULL; ec1->ec_sources = lappend(ec1->ec_sources, restrictinfo); ec1->ec_min_security = Min(ec1->ec_min_security, @@ -373,7 +444,7 @@ process_equivalence(PlannerInfo *root, { /* Case 3: add item2 to ec1 */ em2 = add_eq_member(ec1, item2, item2_relids, - jdomain, NULL, item2_type); + jdomain, item2_type); ec1->ec_sources = lappend(ec1->ec_sources, restrictinfo); ec1->ec_min_security = Min(ec1->ec_min_security, restrictinfo->security_level); @@ -390,7 +461,7 @@ process_equivalence(PlannerInfo *root, { /* Case 3: add item1 to ec2 */ em1 = add_eq_member(ec2, item1, item1_relids, - jdomain, NULL, item1_type); + jdomain, item1_type); ec2->ec_sources = lappend(ec2->ec_sources, restrictinfo); ec2->ec_min_security = Min(ec2->ec_min_security, restrictinfo->security_level); @@ -410,9 +481,12 @@ process_equivalence(PlannerInfo *root, ec->ec_opfamilies = opfamilies; ec->ec_collation = collation; + ec->ec_childmembers_size = 0; ec->ec_members = NIL; + ec->ec_childmembers = NULL; ec->ec_sources = list_make1(restrictinfo); - ec->ec_derives = NIL; + ec->ec_derives_list = NIL; + ec->ec_derives_hash = NULL; ec->ec_relids = NULL; ec->ec_has_const = false; ec->ec_has_volatile = false; @@ -422,9 +496,9 @@ process_equivalence(PlannerInfo *root, ec->ec_max_security = restrictinfo->security_level; ec->ec_merged = NULL; em1 = add_eq_member(ec, item1, item1_relids, - jdomain, NULL, item1_type); + jdomain, item1_type); em2 = add_eq_member(ec, item2, item2_relids, - jdomain, NULL, item2_type); + jdomain, item2_type); root->eq_classes = lappend(root->eq_classes, ec); @@ -510,11 +584,13 @@ canonicalize_ec_expression(Expr *expr, Oid req_type, Oid req_collation) } /* - * add_eq_member - build a new EquivalenceMember and add it to an EC + * make_eq_member + * Build a new EquivalenceMember without adding it to an EC. If 'parent' + * is NULL, the result will be a parent member, otherwise a child member. */ static EquivalenceMember * -add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids, - JoinDomain *jdomain, EquivalenceMember *parent, Oid datatype) +make_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids, + JoinDomain *jdomain, EquivalenceMember *parent, Oid datatype) { EquivalenceMember *em = makeNode(EquivalenceMember); @@ -541,11 +617,85 @@ add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids, ec->ec_has_const = true; /* it can't affect ec_relids */ } - else if (!parent) /* child members don't add to ec_relids */ + + return em; +} + +/* + * add_eq_member - build a new non-child EquivalenceMember and add it to 'ec'. + */ +static EquivalenceMember * +add_eq_member(EquivalenceClass *ec, Expr *expr, Relids relids, + JoinDomain *jdomain, Oid datatype) +{ + EquivalenceMember *em = make_eq_member(ec, expr, relids, jdomain, + NULL, datatype); + + /* add to the members list */ + ec->ec_members = lappend(ec->ec_members, em); + + /* record the relids for parent members */ + ec->ec_relids = bms_add_members(ec->ec_relids, relids); + + return em; +} + +/* + * add_child_eq_member + * Create an em_is_child=true EquivalenceMember and add it to 'ec'. + * + * 'root' is the PlannerInfo that 'ec' belongs to. + * 'ec' is the EquivalenceClass to add the child member to. + * 'ec_index' the index of 'ec' within root->eq_classes, or -1 if maintaining + * the RelOptInfo.eclass_indexes isn't needed. + * 'expr' is the em_expr for the new member. + * 'relids' is the 'em_relids' for the new member. + * 'jdomain' is the 'em_jdomain' for the new member. + * 'parent_em' is the parent member of the child to create. + * 'datatype' is the em_datatype of the new member. + * 'child_relid' defines which element of ec_childmembers to add this member + * to. This is generally a RELOPT_OTHER_MEMBER_REL, but for set operations + * can be a RELOPT_BASEREL representing the set-op children. + */ +static EquivalenceMember * +add_child_eq_member(PlannerInfo *root, EquivalenceClass *ec, int ec_index, + Expr *expr, Relids relids, JoinDomain *jdomain, + EquivalenceMember *parent_em, Oid datatype, + Index child_relid) +{ + EquivalenceMember *em; + + Assert(parent_em != NULL); + + /* + * Allocate the array to store child members; an array of Lists indexed by + * relid, or expand the existing one, if necessary. + */ + if (unlikely(ec->ec_childmembers_size < root->simple_rel_array_size)) { - ec->ec_relids = bms_add_members(ec->ec_relids, relids); + if (ec->ec_childmembers == NULL) + ec->ec_childmembers = palloc0_array(List *, root->simple_rel_array_size); + else + ec->ec_childmembers = repalloc0_array(ec->ec_childmembers, List *, + ec->ec_childmembers_size, + root->simple_rel_array_size); + + ec->ec_childmembers_size = root->simple_rel_array_size; + } + + em = make_eq_member(ec, expr, relids, jdomain, parent_em, datatype); + + /* add member to the ec_childmembers List for the given child_relid */ + ec->ec_childmembers[child_relid] = lappend(ec->ec_childmembers[child_relid], em); + + /* Record this EC index for the child rel */ + if (ec_index >= 0) + { + RelOptInfo *child_rel = root->simple_rel_array[child_relid]; + + child_rel->eclass_indexes = + bms_add_member(child_rel->eclass_indexes, ec_index); } - ec->ec_members = lappend(ec->ec_members, em); return em; } @@ -616,7 +766,8 @@ get_eclass_for_sort_expr(PlannerInfo *root, foreach(lc1, root->eq_classes) { EquivalenceClass *cur_ec = (EquivalenceClass *) lfirst(lc1); - ListCell *lc2; + EquivalenceMemberIterator it; + EquivalenceMember *cur_em; /* * Never match to a volatile EC, except when we are looking at another @@ -631,10 +782,9 @@ get_eclass_for_sort_expr(PlannerInfo *root, if (!equal(opfamilies, cur_ec->ec_opfamilies)) continue; - foreach(lc2, cur_ec->ec_members) + setup_eclass_member_iterator(&it, cur_ec, rel); + while ((cur_em = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2); - /* * Ignore child members unless they match the request. */ @@ -669,9 +819,12 @@ get_eclass_for_sort_expr(PlannerInfo *root, newec = makeNode(EquivalenceClass); newec->ec_opfamilies = list_copy(opfamilies); newec->ec_collation = collation; + newec->ec_childmembers_size = 0; newec->ec_members = NIL; + newec->ec_childmembers = NULL; newec->ec_sources = NIL; - newec->ec_derives = NIL; + newec->ec_derives_list = NIL; + newec->ec_derives_hash = NULL; newec->ec_relids = NULL; newec->ec_has_const = false; newec->ec_has_volatile = contain_volatile_functions((Node *) expr); @@ -690,7 +843,7 @@ get_eclass_for_sort_expr(PlannerInfo *root, expr_relids = pull_varnos(root, (Node *) expr); newem = add_eq_member(newec, copyObject(expr), expr_relids, - jdomain, NULL, opcintype); + jdomain, opcintype); /* * add_eq_member doesn't check for volatile functions, set-returning @@ -764,15 +917,16 @@ find_ec_member_matching_expr(EquivalenceClass *ec, Expr *expr, Relids relids) { - ListCell *lc; + EquivalenceMemberIterator it; + EquivalenceMember *em; /* We ignore binary-compatible relabeling on both ends */ while (expr && IsA(expr, RelabelType)) expr = ((RelabelType *) expr)->arg; - foreach(lc, ec->ec_members) + setup_eclass_member_iterator(&it, ec, relids); + while ((em = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *em = (EquivalenceMember *) lfirst(lc); Expr *emexpr; /* @@ -841,7 +995,8 @@ find_computable_ec_member(PlannerInfo *root, bool require_parallel_safe) { List *exprvars; - ListCell *lc; + EquivalenceMemberIterator it; + EquivalenceMember *em; /* * Pull out the Vars and quasi-Vars present in "exprs". In the typical @@ -855,9 +1010,9 @@ find_computable_ec_member(PlannerInfo *root, PVC_INCLUDE_PLACEHOLDERS | PVC_INCLUDE_CONVERTROWTYPES); - foreach(lc, ec->ec_members) + setup_eclass_member_iterator(&it, ec, relids); + while ((em = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *em = (EquivalenceMember *) lfirst(lc); List *emvars; ListCell *lc2; @@ -1026,8 +1181,8 @@ relation_can_be_sorted_early(PlannerInfo *root, RelOptInfo *rel, * scanning of the quals and before Path construction begins. * * We make no attempt to avoid generating duplicate RestrictInfos here: we - * don't search ec_sources or ec_derives for matches. It doesn't really - * seem worth the trouble to do so. + * don't search existing source or derived clauses in the EC for matches. It + * doesn't really seem worth the trouble to do so. */ void generate_base_implied_equalities(PlannerInfo *root) @@ -1136,6 +1291,9 @@ generate_base_implied_equalities_const(PlannerInfo *root, return; } + /* We don't expect any children yet */ + Assert(ec->ec_childmembers == NULL); + /* * Find the constant member to use. We prefer an actual constant to * pseudo-constants (such as Params), because the constraint exclusion @@ -1162,7 +1320,8 @@ generate_base_implied_equalities_const(PlannerInfo *root, Oid eq_op; RestrictInfo *rinfo; - Assert(!cur_em->em_is_child); /* no children yet */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); if (cur_em == const_em) continue; eq_op = select_equality_operator(ec, @@ -1188,11 +1347,11 @@ generate_base_implied_equalities_const(PlannerInfo *root, /* * If the clause didn't degenerate to a constant, fill in the correct - * markings for a mergejoinable clause, and save it in ec_derives. (We - * will not re-use such clauses directly, but selectivity estimation - * may consult the list later. Note that this use of ec_derives does - * not overlap with its use for join clauses, since we never generate - * join clauses from an ec_has_const eclass.) + * markings for a mergejoinable clause, and save it as a derived + * clause. (We will not re-use such clauses directly, but selectivity + * estimation may consult those later. Note that this use of derived + * clauses does not overlap with its use for join clauses, since we + * never generate join clauses from an ec_has_const eclass.) */ if (rinfo && rinfo->mergeopfamilies) { @@ -1200,7 +1359,7 @@ generate_base_implied_equalities_const(PlannerInfo *root, rinfo->left_ec = rinfo->right_ec = ec; rinfo->left_em = cur_em; rinfo->right_em = const_em; - ec->ec_derives = lappend(ec->ec_derives, rinfo); + ec_add_derived_clause(ec, rinfo); } } } @@ -1226,12 +1385,17 @@ generate_base_implied_equalities_no_const(PlannerInfo *root, prev_ems = (EquivalenceMember **) palloc0(root->simple_rel_array_size * sizeof(EquivalenceMember *)); + /* We don't expect any children yet */ + Assert(ec->ec_childmembers == NULL); + foreach(lc, ec->ec_members) { EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc); int relid; - Assert(!cur_em->em_is_child); /* no children yet */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); + if (!bms_get_singleton_member(cur_em->em_relids, &relid)) continue; Assert(relid < root->simple_rel_array_size); @@ -1265,10 +1429,10 @@ generate_base_implied_equalities_no_const(PlannerInfo *root, /* * If the clause didn't degenerate to a constant, fill in the - * correct markings for a mergejoinable clause. We don't put it - * in ec_derives however; we don't currently need to re-find such - * clauses, and we don't want to clutter that list with non-join - * clauses. + * correct markings for a mergejoinable clause. We don't record + * it as a derived clause, since we don't currently need to + * re-find such clauses, and don't want to clutter the + * derived-clause set with non-join clauses. */ if (rinfo && rinfo->mergeopfamilies) { @@ -1369,7 +1533,7 @@ generate_base_implied_equalities_broken(PlannerInfo *root, * we consider different join paths, we avoid generating multiple copies: * whenever we select a particular pair of EquivalenceMembers to join, * we check to see if the pair matches any original clause (in ec_sources) - * or previously-built clause (in ec_derives). This saves memory and allows + * or previously-built derived clause. This saves memory and allows * re-use of information cached in RestrictInfos. We also avoid generating * commutative duplicates, i.e. if the algorithm selects "a.x = b.y" but * we already have "b.y = a.x", we return the existing clause. @@ -1564,7 +1728,8 @@ generate_join_implied_equalities_normal(PlannerInfo *root, List *new_members = NIL; List *outer_members = NIL; List *inner_members = NIL; - ListCell *lc1; + EquivalenceMemberIterator it; + EquivalenceMember *cur_em; /* * First, scan the EC to identify member values that are computable at the @@ -1575,10 +1740,9 @@ generate_join_implied_equalities_normal(PlannerInfo *root, * as well as to at least one input member, plus enforce at least one * outer-rel member equal to at least one inner-rel member. */ - foreach(lc1, ec->ec_members) + setup_eclass_member_iterator(&it, ec, join_relids); + while ((cur_em = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc1); - /* * We don't need to check explicitly for child EC members. This test * against join_relids will cause them to be ignored except when @@ -1611,6 +1775,7 @@ generate_join_implied_equalities_normal(PlannerInfo *root, Oid best_eq_op = InvalidOid; int best_score = -1; RestrictInfo *rinfo; + ListCell *lc1; foreach(lc1, outer_members) { @@ -1685,6 +1850,7 @@ generate_join_implied_equalities_normal(PlannerInfo *root, List *old_members = list_concat(outer_members, inner_members); EquivalenceMember *prev_em = NULL; RestrictInfo *rinfo; + ListCell *lc1; /* For now, arbitrarily take the first old_member as the one to use */ if (old_members) @@ -1692,7 +1858,7 @@ generate_join_implied_equalities_normal(PlannerInfo *root, foreach(lc1, new_members) { - EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc1); + cur_em = (EquivalenceMember *) lfirst(lc1); if (prev_em != NULL) { @@ -1754,9 +1920,9 @@ generate_join_implied_equalities_broken(PlannerInfo *root, /* * If we have to translate, just brute-force apply adjust_appendrel_attrs * to all the RestrictInfos at once. This will result in returning - * RestrictInfos that are not listed in ec_derives, but there shouldn't be - * any duplication, and it's a sufficiently narrow corner case that we - * shouldn't sweat too much over it anyway. + * RestrictInfos that are not included in EC's derived clauses, but there + * shouldn't be any duplication, and it's a sufficiently narrow corner + * case that we shouldn't sweat too much over it anyway. * * Since inner_rel might be an indirect descendant of the baserel * mentioned in the ec_sources clauses, we have to be prepared to apply @@ -1788,8 +1954,7 @@ select_equality_operator(EquivalenceClass *ec, Oid lefttype, Oid righttype) Oid opfamily = lfirst_oid(lc); Oid opno; - opno = get_opfamily_member(opfamily, lefttype, righttype, - BTEqualStrategyNumber); + opno = get_opfamily_member_for_cmptype(opfamily, lefttype, righttype, COMPARE_EQ); if (!OidIsValid(opno)) continue; /* If no barrier quals in query, don't worry about leaky operators */ @@ -1823,43 +1988,11 @@ create_join_clause(PlannerInfo *root, { RestrictInfo *rinfo; RestrictInfo *parent_rinfo = NULL; - ListCell *lc; MemoryContext oldcontext; - /* - * Search to see if we already built a RestrictInfo for this pair of - * EquivalenceMembers. We can use either original source clauses or - * previously-derived clauses, and a commutator clause is acceptable. - * - * We used to verify that opno matches, but that seems redundant: even if - * it's not identical, it'd better have the same effects, or the operator - * families we're using are broken. - */ - foreach(lc, ec->ec_sources) - { - rinfo = (RestrictInfo *) lfirst(lc); - if (rinfo->left_em == leftem && - rinfo->right_em == rightem && - rinfo->parent_ec == parent_ec) - return rinfo; - if (rinfo->left_em == rightem && - rinfo->right_em == leftem && - rinfo->parent_ec == parent_ec) - return rinfo; - } - - foreach(lc, ec->ec_derives) - { - rinfo = (RestrictInfo *) lfirst(lc); - if (rinfo->left_em == leftem && - rinfo->right_em == rightem && - rinfo->parent_ec == parent_ec) - return rinfo; - if (rinfo->left_em == rightem && - rinfo->right_em == leftem && - rinfo->parent_ec == parent_ec) - return rinfo; - } + rinfo = ec_search_clause_for_ems(root, ec, leftem, rightem, parent_ec); + if (rinfo) + return rinfo; /* * Not there, so build it, in planner context so we can re-use it. (Not @@ -1923,7 +2056,7 @@ create_join_clause(PlannerInfo *root, rinfo->left_em = leftem; rinfo->right_em = rightem; /* and save it for possible re-use */ - ec->ec_derives = lappend(ec->ec_derives, rinfo); + ec_add_derived_clause(ec, rinfo); MemoryContextSwitchTo(oldcontext); @@ -2164,6 +2297,9 @@ reconsider_outer_join_clause(PlannerInfo *root, OuterJoinClauseInfo *ojcinfo, bool match; ListCell *lc2; + /* We don't expect any children yet */ + Assert(cur_ec->ec_childmembers == NULL); + /* Ignore EC unless it contains pseudoconstants */ if (!cur_ec->ec_has_const) continue; @@ -2181,7 +2317,8 @@ reconsider_outer_join_clause(PlannerInfo *root, OuterJoinClauseInfo *ojcinfo, { EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc2); - Assert(!cur_em->em_is_child); /* no children yet */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); if (equal(outervar, cur_em->em_expr)) { match = true; @@ -2279,6 +2416,9 @@ reconsider_full_join_clause(PlannerInfo *root, OuterJoinClauseInfo *ojcinfo) ListCell *lc2; int coal_idx = -1; + /* We don't expect any children yet */ + Assert(cur_ec->ec_childmembers == NULL); + /* Ignore EC unless it contains pseudoconstants */ if (!cur_ec->ec_has_const) continue; @@ -2308,7 +2448,9 @@ reconsider_full_join_clause(PlannerInfo *root, OuterJoinClauseInfo *ojcinfo) foreach(lc2, cur_ec->ec_members) { coal_em = (EquivalenceMember *) lfirst(lc2); - Assert(!coal_em->em_is_child); /* no children yet */ + + /* Child members should not exist in ec_members */ + Assert(!coal_em->em_is_child); if (IsA(coal_em->em_expr, CoalesceExpr)) { CoalesceExpr *cexpr = (CoalesceExpr *) coal_em->em_expr; @@ -2437,6 +2579,13 @@ rebuild_eclass_attr_needed(PlannerInfo *root) { EquivalenceClass *ec = (EquivalenceClass *) lfirst(lc); + /* + * We don't expect any EC child members to exist at this point. Ensure + * that's the case, otherwise, we might be getting asked to do + * something this function hasn't been coded for. + */ + Assert(ec->ec_childmembers == NULL); + /* Need do anything only for a multi-member, no-const EC. */ if (list_length(ec->ec_members) > 1 && !ec->ec_has_const) { @@ -2522,12 +2671,13 @@ exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2, Oid opfamily) !list_member_oid(ec->ec_opfamilies, opfamily)) continue; + /* Ignore children here */ foreach(lc2, ec->ec_members) { EquivalenceMember *em = (EquivalenceMember *) lfirst(lc2); - if (em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!em->em_is_child); if (equal(item1, em->em_expr)) item1member = true; else if (equal(item2, em->em_expr)) @@ -2591,15 +2741,18 @@ match_eclasses_to_foreign_key_col(PlannerInfo *root, /* Never match to a volatile EC */ if (ec->ec_has_volatile) continue; - /* It's okay to consider "broken" ECs here, see exprs_known_equal */ + /* + * It's okay to consider "broken" ECs here, see exprs_known_equal. + * Ignore children here. + */ foreach(lc2, ec->ec_members) { EquivalenceMember *em = (EquivalenceMember *) lfirst(lc2); Var *var; - if (em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!em->em_is_child); /* EM must be a Var, possibly with RelabelType */ var = (Var *) em->em_expr; @@ -2648,25 +2801,14 @@ match_eclasses_to_foreign_key_col(PlannerInfo *root, * Returns NULL if no such clause can be found. */ RestrictInfo * -find_derived_clause_for_ec_member(EquivalenceClass *ec, +find_derived_clause_for_ec_member(PlannerInfo *root, + EquivalenceClass *ec, EquivalenceMember *em) { - ListCell *lc; - Assert(ec->ec_has_const); Assert(!em->em_is_const); - foreach(lc, ec->ec_derives) - { - RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc); - /* - * generate_base_implied_equalities_const will have put non-const - * members on the left side of derived clauses. - */ - if (rinfo->left_em == em) - return rinfo; - } - return NULL; + return ec_search_derived_clause_for_ems(root, ec, em, NULL, NULL); } @@ -2708,7 +2850,6 @@ add_child_rel_equivalences(PlannerInfo *root, while ((i = bms_next_member(parent_rel->eclass_indexes, i)) >= 0) { EquivalenceClass *cur_ec = (EquivalenceClass *) list_nth(root->eq_classes, i); - int num_members; /* * If this EC contains a volatile expression, then generating child @@ -2721,29 +2862,13 @@ add_child_rel_equivalences(PlannerInfo *root, /* Sanity check eclass_indexes only contain ECs for parent_rel */ Assert(bms_is_subset(top_parent_relids, cur_ec->ec_relids)); - /* - * We don't use foreach() here because there's no point in scanning - * newly-added child members, so we can stop after the last - * pre-existing EC member. - */ - num_members = list_length(cur_ec->ec_members); - for (int pos = 0; pos < num_members; pos++) + foreach_node(EquivalenceMember, cur_em, cur_ec->ec_members) { - EquivalenceMember *cur_em = (EquivalenceMember *) list_nth(cur_ec->ec_members, pos); - if (cur_em->em_is_const) continue; /* ignore consts here */ - /* - * We consider only original EC members here, not - * already-transformed child members. Otherwise, if some original - * member expression references more than one appendrel, we'd get - * an O(N^2) explosion of useless derived expressions for - * combinations of children. (But add_child_join_rel_equivalences - * may add targeted combinations for partitionwise-join purposes.) - */ - if (cur_em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); /* * Consider only members that reference and can be computed at @@ -2788,12 +2913,15 @@ add_child_rel_equivalences(PlannerInfo *root, top_parent_relids); new_relids = bms_add_members(new_relids, child_relids); - (void) add_eq_member(cur_ec, child_expr, new_relids, - cur_em->em_jdomain, - cur_em, cur_em->em_datatype); - - /* Record this EC index for the child rel */ - child_rel->eclass_indexes = bms_add_member(child_rel->eclass_indexes, i); + add_child_eq_member(root, + cur_ec, + i, + child_expr, + new_relids, + cur_em->em_jdomain, + cur_em, + cur_em->em_datatype, + child_rel->relid); } } } @@ -2840,7 +2968,6 @@ add_child_join_rel_equivalences(PlannerInfo *root, while ((i = bms_next_member(matching_ecs, i)) >= 0) { EquivalenceClass *cur_ec = (EquivalenceClass *) list_nth(root->eq_classes, i); - int num_members; /* * If this EC contains a volatile expression, then generating child @@ -2853,25 +2980,13 @@ add_child_join_rel_equivalences(PlannerInfo *root, /* Sanity check on get_eclass_indexes_for_relids result */ Assert(bms_overlap(top_parent_relids, cur_ec->ec_relids)); - /* - * We don't use foreach() here because there's no point in scanning - * newly-added child members, so we can stop after the last - * pre-existing EC member. - */ - num_members = list_length(cur_ec->ec_members); - for (int pos = 0; pos < num_members; pos++) + foreach_node(EquivalenceMember, cur_em, cur_ec->ec_members) { - EquivalenceMember *cur_em = (EquivalenceMember *) list_nth(cur_ec->ec_members, pos); - if (cur_em->em_is_const) continue; /* ignore consts here */ - /* - * We consider only original EC members here, not - * already-transformed child members. - */ - if (cur_em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); /* * We may ignore expressions that reference a single baserel, @@ -2916,9 +3031,35 @@ add_child_join_rel_equivalences(PlannerInfo *root, top_parent_relids); new_relids = bms_add_members(new_relids, child_relids); - (void) add_eq_member(cur_ec, child_expr, new_relids, - cur_em->em_jdomain, - cur_em, cur_em->em_datatype); + /* + * Add new child member to the EquivalenceClass. Because this + * is a RELOPT_OTHER_JOINREL which has multiple component + * relids, there is no ideal place to store these members in + * the class. Ordinarily, child members are stored in the + * ec_childmembers[] array element corresponding to their + * relid, however, here we have multiple component relids, so + * there's no single ec_childmembers[] array element to store + * this member. So that we still correctly find this member + * in loops iterating over an EquivalenceMemberIterator, we + * opt to store the member in the ec_childmembers array in + * only the first component relid slot of the array. This + * allows the member to be found, providing callers of + * setup_eclass_member_iterator() specify all the component + * relids for the RELOPT_OTHER_JOINREL, which they do. If we + * opted to store the member in each ec_childmembers[] element + * for all the component relids, then that would just result + * in eclass_member_iterator_next() finding the member + * multiple times, which is a waste of effort. + */ + add_child_eq_member(root, + cur_ec, + -1, + child_expr, + new_relids, + cur_em->em_jdomain, + cur_em, + cur_em->em_datatype, + bms_next_member(child_joinrel->relids, -1)); } } } @@ -2965,14 +3106,18 @@ add_setop_child_rel_equivalences(PlannerInfo *root, RelOptInfo *child_rel, * We can safely pass the parent member as the first member in the * ec_members list as this is added first in generate_union_paths, * likewise, the JoinDomain can be that of the initial member of the - * Pathkey's EquivalenceClass. + * Pathkey's EquivalenceClass. We pass -1 for ec_index since we + * maintain the eclass_indexes for the child_rel after the loop. */ - add_eq_member(pk->pk_eclass, - tle->expr, - child_rel->relids, - parent_em->em_jdomain, - parent_em, - exprType((Node *) tle->expr)); + add_child_eq_member(root, + pk->pk_eclass, + -1, + tle->expr, + child_rel->relids, + parent_em->em_jdomain, + parent_em, + exprType((Node *) tle->expr), + child_rel->relid); lc2 = lnext(setop_pathkeys, lc2); } @@ -2987,6 +3132,85 @@ add_setop_child_rel_equivalences(PlannerInfo *root, RelOptInfo *child_rel, list_length(root->eq_classes) - 1); } +/* + * setup_eclass_member_iterator + * Setup an EquivalenceMemberIterator 'it' to iterate over all parent + * EquivalenceMembers and child members belonging to the given 'ec'. + * + * This iterator returns: + * - All parent members stored directly in ec_members for 'ec', and; + * - Any child member added to the given ec by add_child_eq_member() where + * the child_relid specified in the add_child_eq_member() call is a member + * of the 'child_relids' parameter. + * + * Note: + * The given 'child_relids' must remain allocated and not be changed for the + * lifetime of the iterator. + * + * Parameters: + * 'it' is a pointer to the iterator to set up. Normally stack allocated. + * 'ec' is the EquivalenceClass from which to iterate members for. + * 'child_relids' is the relids to return child members for. + */ +void +setup_eclass_member_iterator(EquivalenceMemberIterator *it, + EquivalenceClass *ec, Relids child_relids) +{ + it->ec = ec; + /* no need to set this if the class has no child members array set */ + it->child_relids = ec->ec_childmembers != NULL ? child_relids : NULL; + it->current_relid = -1; + it->current_list = ec->ec_members; + it->current_cell = list_head(it->current_list); +} + +/* + * eclass_member_iterator_next + * Get the next EquivalenceMember from the EquivalenceMemberIterator 'it', + * as setup by setup_eclass_member_iterator(). NULL is returned if there + * are no members left, after which callers must not call + * eclass_member_iterator_next() again for the given iterator. + */ +EquivalenceMember * +eclass_member_iterator_next(EquivalenceMemberIterator *it) +{ + while (it->current_list != NULL) + { + while (it->current_cell != NULL) + { + EquivalenceMember *em; + + nextcell: + em = lfirst_node(EquivalenceMember, it->current_cell); + it->current_cell = lnext(it->current_list, it->current_cell); + return em; + } + + /* Search for the next list to return members from */ + while ((it->current_relid = bms_next_member(it->child_relids, it->current_relid)) > 0) + { + /* + * Be paranoid in case we're given relids above what we've sized + * the ec_childmembers array to. + */ + if (it->current_relid >= it->ec->ec_childmembers_size) + return NULL; + + it->current_list = it->ec->ec_childmembers[it->current_relid]; + + /* If there are members in this list, use it. */ + if (it->current_list != NIL) + { + /* point current_cell to the head of this list */ + it->current_cell = list_head(it->current_list); + goto nextcell; + } + } + return NULL; + } + + return NULL; +} /* * generate_implied_equalities_for_column @@ -3039,6 +3263,7 @@ generate_implied_equalities_for_column(PlannerInfo *root, while ((i = bms_next_member(rel->eclass_indexes, i)) >= 0) { EquivalenceClass *cur_ec = (EquivalenceClass *) list_nth(root->eq_classes, i); + EquivalenceMemberIterator it; EquivalenceMember *cur_em; ListCell *lc2; @@ -3062,14 +3287,12 @@ generate_implied_equalities_for_column(PlannerInfo *root, * corner cases, so for now we live with just reporting the first * match. See also get_eclass_for_sort_expr.) */ - cur_em = NULL; - foreach(lc2, cur_ec->ec_members) + setup_eclass_member_iterator(&it, cur_ec, rel->relids); + while ((cur_em = eclass_member_iterator_next(&it)) != NULL) { - cur_em = (EquivalenceMember *) lfirst(lc2); if (bms_equal(cur_em->em_relids, rel->relids) && callback(root, rel, cur_ec, cur_em, callback_arg)) break; - cur_em = NULL; } if (!cur_em) @@ -3077,7 +3300,7 @@ generate_implied_equalities_for_column(PlannerInfo *root, /* * Found our match. Scan the other EC members and attempt to generate - * joinclauses. + * joinclauses. Ignore children here. */ foreach(lc2, cur_ec->ec_members) { @@ -3085,8 +3308,8 @@ generate_implied_equalities_for_column(PlannerInfo *root, Oid eq_op; RestrictInfo *rinfo; - if (other_em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!other_em->em_is_child); /* Make sure it'll be a join to a different rel */ if (other_em == cur_em || @@ -3299,13 +3522,15 @@ eclass_useful_for_merging(PlannerInfo *root, if (bms_is_subset(eclass->ec_relids, relids)) return false; - /* To join, we need a member not in the given rel */ + /* + * To join, we need a member not in the given rel. Ignore children here. + */ foreach(lc, eclass->ec_members) { EquivalenceMember *cur_em = (EquivalenceMember *) lfirst(lc); - if (cur_em->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!cur_em->em_is_child); if (!bms_overlap(cur_em->em_relids, relids)) return true; @@ -3439,3 +3664,281 @@ get_common_eclass_indexes(PlannerInfo *root, Relids relids1, Relids relids2) /* Calculate and return the common EC indexes, recycling the left input. */ return bms_int_members(rel1ecs, rel2ecs); } + +/* + * ec_build_derives_hash + * Construct the auxiliary hash table for derived clause lookups. + */ +static void +ec_build_derives_hash(PlannerInfo *root, EquivalenceClass *ec) +{ + Assert(!ec->ec_derives_hash); + + /* + * Create the hash table. + * + * We pass list_length(ec->ec_derives_list) as the initial size. + * Simplehash will divide this by the fillfactor (typically 0.9) and round + * up to the next power of two, so this will usually give us at least 64 + * buckets around the threshold. That avoids immediate resizing without + * hardcoding a specific size. + */ + ec->ec_derives_hash = derives_create(root->planner_cxt, + list_length(ec->ec_derives_list), + NULL); + + foreach_node(RestrictInfo, rinfo, ec->ec_derives_list) + ec_add_clause_to_derives_hash(ec, rinfo); +} + +/* + * ec_add_derived_clause + * Add a clause to the set of derived clauses for the given + * EquivalenceClass. Always appends to ec_derives_list; also adds + * to ec_derives_hash if it exists. + * + * Also asserts expected invariants of derived clauses. + */ +static void +ec_add_derived_clause(EquivalenceClass *ec, RestrictInfo *clause) +{ + /* + * Constant, if present, is always placed on the RHS; see + * generate_base_implied_equalities_const(). LHS is never a constant. + */ + Assert(!clause->left_em->em_is_const); + + /* + * Clauses containing a constant are never considered redundant, so + * parent_ec is not set. + */ + Assert(!clause->parent_ec || !clause->right_em->em_is_const); + + ec->ec_derives_list = lappend(ec->ec_derives_list, clause); + if (ec->ec_derives_hash) + ec_add_clause_to_derives_hash(ec, clause); +} + +/* + * ec_add_derived_clauses + * Add a list of clauses to the set of clauses derived from the given + * EquivalenceClass; adding to the list and hash table if needed. + * + * This function is similar to ec_add_derived_clause() but optimized for adding + * multiple clauses at a time to the ec_derives_list. The assertions from + * ec_add_derived_clause() are not repeated here, as the input clauses are + * assumed to have already been validated. + */ +static void +ec_add_derived_clauses(EquivalenceClass *ec, List *clauses) +{ + ec->ec_derives_list = list_concat(ec->ec_derives_list, clauses); + if (ec->ec_derives_hash) + foreach_node(RestrictInfo, rinfo, clauses) + ec_add_clause_to_derives_hash(ec, rinfo); +} + +/* + * fill_ec_derives_key + * Compute a canonical key for ec_derives_hash lookup or insertion. + * + * Derived clauses are looked up using a pair of EquivalenceMembers and a + * parent EquivalenceClass. To avoid storing or searching for both EM orderings, + * we canonicalize the key: + * + * - For clauses involving two non-constant EMs, em1 is set to the EM with lower + * memory address and em2 is set to the other one. + * - For clauses involving a constant EM, the caller must pass the non-constant + * EM as leftem and NULL as rightem; we then set em1 = NULL and em2 = leftem. + */ +static inline void +fill_ec_derives_key(ECDerivesKey *key, + EquivalenceMember *leftem, + EquivalenceMember *rightem, + EquivalenceClass *parent_ec) +{ + Assert(leftem); /* Always required for lookup or insertion */ + + if (rightem == NULL) + { + key->em1 = NULL; + key->em2 = leftem; + } + else if (leftem < rightem) + { + key->em1 = leftem; + key->em2 = rightem; + } + else + { + key->em1 = rightem; + key->em2 = leftem; + } + key->parent_ec = parent_ec; +} + +/* + * ec_add_clause_to_derives_hash + * Add a derived clause to ec_derives_hash in the given EquivalenceClass. + * + * Each clause is associated with a canonicalized key. For constant-containing + * clauses, only the non-constant EM is used for lookup; see comments in + * fill_ec_derives_key(). + */ +static void +ec_add_clause_to_derives_hash(EquivalenceClass *ec, RestrictInfo *rinfo) +{ + ECDerivesKey key; + ECDerivesEntry *entry; + bool found; + + /* + * Constants are always placed on the RHS; see + * generate_base_implied_equalities_const(). + */ + Assert(!rinfo->left_em->em_is_const); + + /* + * Clauses containing a constant are never considered redundant, so + * parent_ec is not set. + */ + Assert(!rinfo->parent_ec || !rinfo->right_em->em_is_const); + + /* + * See fill_ec_derives_key() for details: we use a canonicalized key to + * avoid storing both EM orderings. For constant EMs, only the + * non-constant EM is included in the key. + */ + fill_ec_derives_key(&key, + rinfo->left_em, + rinfo->right_em->em_is_const ? NULL : rinfo->right_em, + rinfo->parent_ec); + entry = derives_insert(ec->ec_derives_hash, key, &found); + Assert(!found); + entry->rinfo = rinfo; +} + +/* + * ec_clear_derived_clauses + * Reset ec_derives_list and ec_derives_hash. + * + * We destroy the hash table explicitly, since it may consume significant + * space. The list holds the same set of entries and can become equally large + * when thousands of partitions are involved, so we free it as well -- even + * though we do not typically free lists. + */ +void +ec_clear_derived_clauses(EquivalenceClass *ec) +{ + list_free(ec->ec_derives_list); + ec->ec_derives_list = NIL; + + if (ec->ec_derives_hash) + { + derives_destroy(ec->ec_derives_hash); + ec->ec_derives_hash = NULL; + } +} + +/* + * ec_search_clause_for_ems + * Search for an existing RestrictInfo that equates the given pair + * of EquivalenceMembers, either from ec_sources or ec_derives. + * + * Returns a clause with matching operands in either given order or commuted + * order. We used to require matching operator OIDs, but dropped that since any + * semantically different operator here would indicate a broken operator family. + * + * Returns NULL if no matching clause is found. + */ +static RestrictInfo * +ec_search_clause_for_ems(PlannerInfo *root, EquivalenceClass *ec, + EquivalenceMember *leftem, EquivalenceMember *rightem, + EquivalenceClass *parent_ec) +{ + /* Check original source clauses */ + foreach_node(RestrictInfo, rinfo, ec->ec_sources) + { + if (rinfo->left_em == leftem && + rinfo->right_em == rightem && + rinfo->parent_ec == parent_ec) + return rinfo; + if (rinfo->left_em == rightem && + rinfo->right_em == leftem && + rinfo->parent_ec == parent_ec) + return rinfo; + } + + /* Not found in ec_sources; search derived clauses */ + return ec_search_derived_clause_for_ems(root, ec, leftem, rightem, + parent_ec); +} + +/* + * ec_search_derived_clause_for_ems + * Search for an existing derived clause between two EquivalenceMembers. + * + * If the number of derived clauses exceeds a threshold, switch to hash table + * lookup; otherwise, scan ec_derives_list linearly. + * + * Clauses involving constants are looked up by passing the non-constant EM + * as leftem and setting rightem to NULL. In that case, we expect to find a + * clause with a constant on the RHS. + * + * While searching the list, we compare each given EM with both sides of each + * clause. But for hash table lookups, we construct a canonicalized key and + * perform a single lookup. + */ +static RestrictInfo * +ec_search_derived_clause_for_ems(PlannerInfo *root, EquivalenceClass *ec, + EquivalenceMember *leftem, + EquivalenceMember *rightem, + EquivalenceClass *parent_ec) +{ + /* Switch to using hash lookup when list grows "too long". */ + if (!ec->ec_derives_hash && + list_length(ec->ec_derives_list) >= EC_DERIVES_HASH_THRESHOLD) + ec_build_derives_hash(root, ec); + + /* Perform hash table lookup if available */ + if (ec->ec_derives_hash) + { + ECDerivesKey key; + RestrictInfo *rinfo; + ECDerivesEntry *entry; + + fill_ec_derives_key(&key, leftem, rightem, parent_ec); + entry = derives_lookup(ec->ec_derives_hash, key); + if (entry) + { + rinfo = entry->rinfo; + Assert(rinfo); + Assert(rightem || rinfo->right_em->em_is_const); + return rinfo; + } + } + else + { + /* Fallback to linear search over ec_derives_list */ + foreach_node(RestrictInfo, rinfo, ec->ec_derives_list) + { + /* Handle special case: lookup by non-const EM alone */ + if (!rightem && + rinfo->left_em == leftem) + { + Assert(rinfo->right_em->em_is_const); + return rinfo; + } + if (rinfo->left_em == leftem && + rinfo->right_em == rightem && + rinfo->parent_ec == parent_ec) + return rinfo; + if (rinfo->left_em == rightem && + rinfo->right_em == leftem && + rinfo->parent_ec == parent_ec) + return rinfo; + } + } + + return NULL; +} diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index 6386ce8225301..601354ea3e056 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -33,10 +33,8 @@ #include "optimizer/paths.h" #include "optimizer/prep.h" #include "optimizer/restrictinfo.h" -#include "utils/array.h" #include "utils/lsyscache.h" #include "utils/selfuncs.h" -#include "utils/syscache.h" /* XXX see PartCollMatchesExprColl */ @@ -3304,7 +3302,6 @@ match_orclause_to_indexcol(PlannerInfo *root, BoolExpr *orclause = (BoolExpr *) rinfo->orclause; Node *indexExpr = NULL; List *consts = NIL; - Node *arrayNode = NULL; ScalarArrayOpExpr *saopexpr = NULL; Oid matchOpno = InvalidOid; IndexClause *iclause; @@ -3475,63 +3472,8 @@ match_orclause_to_indexcol(PlannerInfo *root, return NULL; } - /* - * Assemble an array from the list of constants. It seems more profitable - * to build a const array. But in the presence of other nodes, we don't - * have a specific value here and must employ an ArrayExpr instead. - */ - if (haveNonConst) - { - ArrayExpr *arrayExpr = makeNode(ArrayExpr); - - /* array_collid will be set by parse_collate.c */ - arrayExpr->element_typeid = consttype; - arrayExpr->array_typeid = arraytype; - arrayExpr->multidims = false; - arrayExpr->elements = consts; - arrayExpr->location = -1; - - arrayNode = (Node *) arrayExpr; - } - else - { - int16 typlen; - bool typbyval; - char typalign; - Datum *elems; - int i = 0; - ArrayType *arrayConst; - - get_typlenbyvalalign(consttype, &typlen, &typbyval, &typalign); - - elems = (Datum *) palloc(sizeof(Datum) * list_length(consts)); - foreach_node(Const, value, consts) - { - Assert(!value->constisnull); - - elems[i++] = value->constvalue; - } - - arrayConst = construct_array(elems, i, consttype, - typlen, typbyval, typalign); - arrayNode = (Node *) makeConst(arraytype, -1, inputcollid, - -1, PointerGetDatum(arrayConst), - false, false); - - pfree(elems); - list_free(consts); - } - - /* Build the SAOP expression node */ - saopexpr = makeNode(ScalarArrayOpExpr); - saopexpr->opno = matchOpno; - saopexpr->opfuncid = get_opcode(matchOpno); - saopexpr->hashfuncid = InvalidOid; - saopexpr->negfuncid = InvalidOid; - saopexpr->useOr = true; - saopexpr->inputcollid = inputcollid; - saopexpr->args = list_make2(indexExpr, arrayNode); - saopexpr->location = -1; + saopexpr = make_SAOP_expr(matchOpno, indexExpr, consttype, inputcollid, + inputcollid, consts, haveNonConst); /* * Finally, build an IndexClause based on the SAOP node. Use @@ -3813,12 +3755,12 @@ match_pathkeys_to_index(IndexOptInfo *index, List *pathkeys, { PathKey *pathkey = (PathKey *) lfirst(lc1); bool found = false; - ListCell *lc2; + EquivalenceMemberIterator it; + EquivalenceMember *member; /* Pathkey must request default sort order for the target opfamily */ - if (pathkey->pk_strategy != BTLessStrategyNumber || - pathkey->pk_nulls_first) + if (pathkey->pk_cmptype != COMPARE_LT || pathkey->pk_nulls_first) return; /* If eclass is volatile, no hope of using an indexscan */ @@ -3833,9 +3775,10 @@ match_pathkeys_to_index(IndexOptInfo *index, List *pathkeys, * be considered to match more than one pathkey list, which is OK * here. See also get_eclass_for_sort_expr.) */ - foreach(lc2, pathkey->pk_eclass->ec_members) + setup_eclass_member_iterator(&it, pathkey->pk_eclass, + index->rel->relids); + while ((member = eclass_member_iterator_next(&it)) != NULL) { - EquivalenceMember *member = (EquivalenceMember *) lfirst(lc2); int indexcol; /* No possibility of match if it references other relations */ diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c index 18891ce91569a..26f0336f1e409 100644 --- a/src/backend/optimizer/path/joinpath.c +++ b/src/backend/optimizer/path/joinpath.c @@ -748,16 +748,22 @@ get_memoize_path(PlannerInfo *root, RelOptInfo *innerrel, * * Lateral vars needn't be considered here as they're not considered when * determining if the join is unique. - * - * XXX this could be enabled if the remaining join quals were made part of - * the inner scan's filter instead of the join filter. Maybe it's worth - * considering doing that? */ - if (extra->inner_unique && - (inner_path->param_info == NULL || - bms_num_members(inner_path->param_info->ppi_serials) < - list_length(extra->restrictlist))) - return NULL; + if (extra->inner_unique) + { + Bitmapset *ppi_serials; + + if (inner_path->param_info == NULL) + return NULL; + + ppi_serials = inner_path->param_info->ppi_serials; + + foreach_node(RestrictInfo, rinfo, extra->restrictlist) + { + if (!bms_is_member(rinfo->rinfo_serial, ppi_serials)) + return NULL; + } + } /* * We can't use a memoize node if there are volatile functions in the @@ -1036,6 +1042,7 @@ try_mergejoin_path(PlannerInfo *root, bool is_partial) { Relids required_outer; + int outer_presorted_keys = 0; JoinCostWorkspace workspace; if (is_partial) @@ -1081,9 +1088,16 @@ try_mergejoin_path(PlannerInfo *root, /* * If the given paths are already well enough ordered, we can skip doing * an explicit sort. + * + * We need to determine the number of presorted keys of the outer path to + * decide whether explicit incremental sort can be applied when + * outersortkeys is not NIL. We do not need to do the same for the inner + * path though, as incremental sort currently does not support + * mark/restore. */ if (outersortkeys && - pathkeys_contained_in(outersortkeys, outer_path->pathkeys)) + pathkeys_count_contained_in(outersortkeys, outer_path->pathkeys, + &outer_presorted_keys)) outersortkeys = NIL; if (innersortkeys && pathkeys_contained_in(innersortkeys, inner_path->pathkeys)) @@ -1095,6 +1109,7 @@ try_mergejoin_path(PlannerInfo *root, initial_cost_mergejoin(root, &workspace, jointype, mergeclauses, outer_path, inner_path, outersortkeys, innersortkeys, + outer_presorted_keys, extra); if (add_path_precheck(joinrel, workspace.disabled_nodes, @@ -1114,7 +1129,8 @@ try_mergejoin_path(PlannerInfo *root, required_outer, mergeclauses, outersortkeys, - innersortkeys)); + innersortkeys, + outer_presorted_keys)); } else { @@ -1140,6 +1156,7 @@ try_partial_mergejoin_path(PlannerInfo *root, JoinType jointype, JoinPathExtraData *extra) { + int outer_presorted_keys = 0; JoinCostWorkspace workspace; /* @@ -1153,9 +1170,16 @@ try_partial_mergejoin_path(PlannerInfo *root, /* * If the given paths are already well enough ordered, we can skip doing * an explicit sort. + * + * We need to determine the number of presorted keys of the outer path to + * decide whether explicit incremental sort can be applied when + * outersortkeys is not NIL. We do not need to do the same for the inner + * path though, as incremental sort currently does not support + * mark/restore. */ if (outersortkeys && - pathkeys_contained_in(outersortkeys, outer_path->pathkeys)) + pathkeys_count_contained_in(outersortkeys, outer_path->pathkeys, + &outer_presorted_keys)) outersortkeys = NIL; if (innersortkeys && pathkeys_contained_in(innersortkeys, inner_path->pathkeys)) @@ -1167,6 +1191,7 @@ try_partial_mergejoin_path(PlannerInfo *root, initial_cost_mergejoin(root, &workspace, jointype, mergeclauses, outer_path, inner_path, outersortkeys, innersortkeys, + outer_presorted_keys, extra); if (!add_partial_path_precheck(joinrel, workspace.disabled_nodes, @@ -1187,7 +1212,8 @@ try_partial_mergejoin_path(PlannerInfo *root, NULL, mergeclauses, outersortkeys, - innersortkeys)); + innersortkeys, + outer_presorted_keys)); } /* diff --git a/src/backend/optimizer/path/pathkeys.c b/src/backend/optimizer/path/pathkeys.c index 154eb505d755a..8b04d40d36d73 100644 --- a/src/backend/optimizer/path/pathkeys.c +++ b/src/backend/optimizer/path/pathkeys.c @@ -55,7 +55,7 @@ static bool right_merge_direction(PlannerInfo *root, PathKey *pathkey); PathKey * make_canonical_pathkey(PlannerInfo *root, EquivalenceClass *eclass, Oid opfamily, - int strategy, bool nulls_first) + CompareType cmptype, bool nulls_first) { PathKey *pk; ListCell *lc; @@ -74,7 +74,7 @@ make_canonical_pathkey(PlannerInfo *root, pk = (PathKey *) lfirst(lc); if (eclass == pk->pk_eclass && opfamily == pk->pk_opfamily && - strategy == pk->pk_strategy && + cmptype == pk->pk_cmptype && nulls_first == pk->pk_nulls_first) return pk; } @@ -88,7 +88,7 @@ make_canonical_pathkey(PlannerInfo *root, pk = makeNode(PathKey); pk->pk_eclass = eclass; pk->pk_opfamily = opfamily; - pk->pk_strategy = strategy; + pk->pk_cmptype = cmptype; pk->pk_nulls_first = nulls_first; root->canon_pathkeys = lappend(root->canon_pathkeys, pk); @@ -206,12 +206,12 @@ make_pathkey_from_sortinfo(PlannerInfo *root, Relids rel, bool create_it) { - int16 strategy; + CompareType cmptype; Oid equality_op; List *opfamilies; EquivalenceClass *eclass; - strategy = reverse_sort ? BTGreaterStrategyNumber : BTLessStrategyNumber; + cmptype = reverse_sort ? COMPARE_GT : COMPARE_LT; /* * EquivalenceClasses need to contain opfamily lists based on the family @@ -219,13 +219,13 @@ make_pathkey_from_sortinfo(PlannerInfo *root, * more than one opfamily. So we have to look up the opfamily's equality * operator and get its membership. */ - equality_op = get_opfamily_member(opfamily, - opcintype, - opcintype, - BTEqualStrategyNumber); + equality_op = get_opfamily_member_for_cmptype(opfamily, + opcintype, + opcintype, + COMPARE_EQ); if (!OidIsValid(equality_op)) /* shouldn't happen */ elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", - BTEqualStrategyNumber, opcintype, opcintype, opfamily); + COMPARE_EQ, opcintype, opcintype, opfamily); opfamilies = get_mergejoin_opfamilies(equality_op); if (!opfamilies) /* certainly should find some */ elog(ERROR, "could not find opfamilies for equality operator %u", @@ -242,7 +242,7 @@ make_pathkey_from_sortinfo(PlannerInfo *root, /* And finally we can find or create a PathKey node */ return make_canonical_pathkey(root, eclass, opfamily, - strategy, nulls_first); + cmptype, nulls_first); } /* @@ -264,11 +264,11 @@ make_pathkey_from_sortop(PlannerInfo *root, Oid opfamily, opcintype, collation; - int16 strategy; + CompareType cmptype; /* Find the operator in pg_amop --- failure shouldn't happen */ if (!get_ordering_op_properties(ordering_op, - &opfamily, &opcintype, &strategy)) + &opfamily, &opcintype, &cmptype)) elog(ERROR, "operator %u is not a valid ordering operator", ordering_op); @@ -1006,12 +1006,12 @@ build_expression_pathkey(PlannerInfo *root, List *pathkeys; Oid opfamily, opcintype; - int16 strategy; + CompareType cmptype; PathKey *cpathkey; /* Find the operator in pg_amop --- failure shouldn't happen */ if (!get_ordering_op_properties(opno, - &opfamily, &opcintype, &strategy)) + &opfamily, &opcintype, &cmptype)) elog(ERROR, "operator %u is not a valid ordering operator", opno); @@ -1020,8 +1020,8 @@ build_expression_pathkey(PlannerInfo *root, opfamily, opcintype, exprCollation((Node *) expr), - (strategy == BTGreaterStrategyNumber), - (strategy == BTGreaterStrategyNumber), + (cmptype == COMPARE_GT), + (cmptype == COMPARE_GT), 0, rel, create_it); @@ -1118,7 +1118,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel, make_canonical_pathkey(root, outer_ec, sub_pathkey->pk_opfamily, - sub_pathkey->pk_strategy, + sub_pathkey->pk_cmptype, sub_pathkey->pk_nulls_first); } } @@ -1143,6 +1143,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel, int best_score = -1; ListCell *j; + /* Ignore children here */ foreach(j, sub_eclass->ec_members) { EquivalenceMember *sub_member = (EquivalenceMember *) lfirst(j); @@ -1151,8 +1152,8 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel, Oid sub_expr_coll = sub_eclass->ec_collation; ListCell *k; - if (sub_member->em_is_child) - continue; /* ignore children here */ + /* Child members should not exist in ec_members */ + Assert(!sub_member->em_is_child); foreach(k, subquery_tlist) { @@ -1200,7 +1201,7 @@ convert_subquery_pathkeys(PlannerInfo *root, RelOptInfo *rel, outer_pk = make_canonical_pathkey(root, outer_ec, sub_pathkey->pk_opfamily, - sub_pathkey->pk_strategy, + sub_pathkey->pk_cmptype, sub_pathkey->pk_nulls_first); /* score = # of equivalence peers */ score = list_length(outer_ec->ec_members) - 1; @@ -1709,8 +1710,11 @@ select_outer_pathkeys_for_merge(PlannerInfo *root, { EquivalenceMember *em = (EquivalenceMember *) lfirst(lc2); + /* Child members should not exist in ec_members */ + Assert(!em->em_is_child); + /* Potential future join partner? */ - if (!em->em_is_const && !em->em_is_child && + if (!em->em_is_const && !bms_overlap(em->em_relids, joinrel->relids)) score++; } @@ -1816,7 +1820,7 @@ select_outer_pathkeys_for_merge(PlannerInfo *root, pathkey = make_canonical_pathkey(root, ec, linitial_oid(ec->ec_opfamilies), - BTLessStrategyNumber, + COMPARE_LT, false); /* can't be redundant because no duplicate ECs */ Assert(!pathkey_is_redundant(pathkey, pathkeys)); @@ -1909,7 +1913,7 @@ make_inner_pathkeys_for_merge(PlannerInfo *root, pathkey = make_canonical_pathkey(root, ieclass, opathkey->pk_opfamily, - opathkey->pk_strategy, + opathkey->pk_cmptype, opathkey->pk_nulls_first); /* @@ -2134,12 +2138,12 @@ right_merge_direction(PlannerInfo *root, PathKey *pathkey) * want to prefer only one of the two possible directions, and we * might as well use this one. */ - return (pathkey->pk_strategy == query_pathkey->pk_strategy); + return (pathkey->pk_cmptype == query_pathkey->pk_cmptype); } } /* If no matching ORDER BY request, prefer the ASC direction */ - return (pathkey->pk_strategy == BTLessStrategyNumber); + return (pathkey->pk_cmptype == COMPARE_LT); } /* diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c index 8a8d4a2af3332..4d55c2ea59162 100644 --- a/src/backend/optimizer/plan/analyzejoins.c +++ b/src/backend/optimizer/plan/analyzejoins.c @@ -74,6 +74,8 @@ static bool is_innerrel_unique_for(PlannerInfo *root, List *restrictlist, List **extra_clauses); static int self_join_candidates_cmp(const void *a, const void *b); +static bool replace_relid_callback(Node *node, + ChangeVarNodes_context *context); /* @@ -397,13 +399,19 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel, { Assert(subst > 0); - ChangeVarNodes((Node *) sjinf->semi_rhs_exprs, relid, subst, 0); + ChangeVarNodesExtended((Node *) sjinf->semi_rhs_exprs, relid, subst, + 0, replace_relid_callback); } } /* * Likewise remove references from PlaceHolderVar data structures, - * removing any no-longer-needed placeholders entirely. + * removing any no-longer-needed placeholders entirely. We remove PHV + * only for left-join removal. With self-join elimination, PHVs already + * get moved to the remaining relation, where they might still be needed. + * It might also happen that we skip the removal of some PHVs that could + * be removed. However, the overhead of extra PHVs is small compared to + * the complexity of analysis needed to remove them. * * Removal is a bit trickier than it might seem: we can remove PHVs that * are used at the target rel and/or in the join qual, but not those that @@ -420,10 +428,16 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel, PlaceHolderInfo *phinfo = (PlaceHolderInfo *) lfirst(l); Assert(sjinfo == NULL || !bms_is_member(relid, phinfo->ph_lateral)); - if (bms_is_subset(phinfo->ph_needed, joinrelids) && + if (sjinfo != NULL && + bms_is_subset(phinfo->ph_needed, joinrelids) && bms_is_member(relid, phinfo->ph_eval_at) && - (sjinfo == NULL || !bms_is_member(sjinfo->ojrelid, phinfo->ph_eval_at))) + !bms_is_member(sjinfo->ojrelid, phinfo->ph_eval_at)) { + /* + * This code shouldn't be executed if one relation is substituted + * with another: in this case, the placeholder may be employed in + * a filter inside the scan node the SJE removes. + */ root->placeholder_list = foreach_delete_current(root->placeholder_list, l); root->placeholder_array[phinfo->phid] = NULL; @@ -458,7 +472,8 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel, sjinfo->ojrelid, subst); Assert(!bms_is_empty(phv->phrels)); - ChangeVarNodes((Node *) phv->phexpr, relid, subst, 0); + ChangeVarNodesExtended((Node *) phv->phexpr, relid, subst, 0, + replace_relid_callback); Assert(phv->phnullingrels == NULL); /* no need to adjust */ } @@ -512,7 +527,8 @@ remove_rel_from_query(PlannerInfo *root, RelOptInfo *rel, } if (subst > 0) - ChangeVarNodes((Node *) otherrel->lateral_vars, relid, subst, 0); + ChangeVarNodesExtended((Node *) otherrel->lateral_vars, relid, + subst, 0, replace_relid_callback); } } @@ -710,6 +726,13 @@ remove_rel_from_eclass(EquivalenceClass *ec, SpecialJoinInfo *sjinfo, ec->ec_relids = adjust_relid_set(ec->ec_relids, sjinfo->ojrelid, subst); + /* + * We don't expect any EC child members to exist at this point. Ensure + * that's the case, otherwise, we might be getting asked to do something + * this function hasn't been coded for. + */ + Assert(ec->ec_childmembers == NULL); + /* * Fix up the member expressions. Any non-const member that ends with * empty em_relids must be a Var or PHV of the removed relation. We don't @@ -739,7 +762,8 @@ remove_rel_from_eclass(EquivalenceClass *ec, SpecialJoinInfo *sjinfo, RestrictInfo *rinfo = (RestrictInfo *) lfirst(lc); if (sjinfo == NULL) - ChangeVarNodes((Node *) rinfo, relid, subst, 0); + ChangeVarNodesExtended((Node *) rinfo, relid, subst, 0, + replace_relid_callback); else remove_rel_from_restrictinfo(rinfo, relid, sjinfo->ojrelid); } @@ -749,7 +773,7 @@ remove_rel_from_eclass(EquivalenceClass *ec, SpecialJoinInfo *sjinfo, * drop them. (At this point, any such clauses would be base restriction * clauses, which we'd not need anymore anyway.) */ - ec->ec_derives = NIL; + ec_clear_derived_clauses(ec); } /* @@ -1509,6 +1533,13 @@ update_eclasses(EquivalenceClass *ec, int from, int to) List *new_members = NIL; List *new_sources = NIL; + /* + * We don't expect any EC child members to exist at this point. Ensure + * that's the case, otherwise, we might be getting asked to do something + * this function hasn't been coded for. + */ + Assert(ec->ec_childmembers == NULL); + foreach_node(EquivalenceMember, em, ec->ec_members) { bool is_redundant = false; @@ -1523,7 +1554,8 @@ update_eclasses(EquivalenceClass *ec, int from, int to) em->em_jdomain->jd_relids = adjust_relid_set(em->em_jdomain->jd_relids, from, to); /* We only process inner joins */ - ChangeVarNodes((Node *) em->em_expr, from, to, 0); + ChangeVarNodesExtended((Node *) em->em_expr, from, to, 0, + replace_relid_callback); foreach_node(EquivalenceMember, other, new_members) { @@ -1544,8 +1576,7 @@ update_eclasses(EquivalenceClass *ec, int from, int to) list_free(ec->ec_members); ec->ec_members = new_members; - list_free(ec->ec_derives); - ec->ec_derives = NULL; + ec_clear_derived_clauses(ec); /* Update EC source expressions */ foreach_node(RestrictInfo, rinfo, ec->ec_sources) @@ -1558,7 +1589,8 @@ update_eclasses(EquivalenceClass *ec, int from, int to) continue; } - ChangeVarNodes((Node *) rinfo, from, to, 0); + ChangeVarNodesExtended((Node *) rinfo, from, to, 0, + replace_relid_callback); /* * After switching the clause to the remaining relation, check it for @@ -1653,6 +1685,118 @@ add_non_redundant_clauses(PlannerInfo *root, } } +/* + * A custom callback for ChangeVarNodesExtended() providing + * Self-join elimination (SJE) related functionality + * + * SJE needs to skip the RangeTblRef node + * type. During SJE's last step, remove_rel_from_joinlist() removes + * remaining RangeTblRefs with target relid. If ChangeVarNodes() replaces + * the target relid before, remove_rel_from_joinlist() fails to identify + * the nodes to delete. + * + * SJE also needs to change the relids within RestrictInfo's. + */ +static bool +replace_relid_callback(Node *node, ChangeVarNodes_context *context) +{ + if (IsA(node, RangeTblRef)) + { + return true; + } + else if (IsA(node, RestrictInfo)) + { + RestrictInfo *rinfo = (RestrictInfo *) node; + int relid = -1; + bool is_req_equal = + (rinfo->required_relids == rinfo->clause_relids); + bool clause_relids_is_multiple = + (bms_membership(rinfo->clause_relids) == BMS_MULTIPLE); + + /* + * Recurse down into clauses if the target relation is present in + * clause_relids or required_relids. We must check required_relids + * because the relation not present in clause_relids might still be + * present somewhere in orclause. + */ + if (bms_is_member(context->rt_index, rinfo->clause_relids) || + bms_is_member(context->rt_index, rinfo->required_relids)) + { + Relids new_clause_relids; + + ChangeVarNodesWalkExpression((Node *) rinfo->clause, context); + ChangeVarNodesWalkExpression((Node *) rinfo->orclause, context); + + new_clause_relids = adjust_relid_set(rinfo->clause_relids, + context->rt_index, + context->new_index); + + /* + * Incrementally adjust num_base_rels based on the change of + * clause_relids, which could contain both base relids and + * outer-join relids. This operation is legal until we remove + * only baserels. + */ + rinfo->num_base_rels -= bms_num_members(rinfo->clause_relids) - + bms_num_members(new_clause_relids); + + rinfo->clause_relids = new_clause_relids; + rinfo->left_relids = + adjust_relid_set(rinfo->left_relids, context->rt_index, context->new_index); + rinfo->right_relids = + adjust_relid_set(rinfo->right_relids, context->rt_index, context->new_index); + } + + if (is_req_equal) + rinfo->required_relids = rinfo->clause_relids; + else + rinfo->required_relids = + adjust_relid_set(rinfo->required_relids, context->rt_index, context->new_index); + + rinfo->outer_relids = + adjust_relid_set(rinfo->outer_relids, context->rt_index, context->new_index); + rinfo->incompatible_relids = + adjust_relid_set(rinfo->incompatible_relids, context->rt_index, context->new_index); + + if (rinfo->mergeopfamilies && + bms_get_singleton_member(rinfo->clause_relids, &relid) && + clause_relids_is_multiple && + relid == context->new_index && IsA(rinfo->clause, OpExpr)) + { + Expr *leftOp; + Expr *rightOp; + + leftOp = (Expr *) get_leftop(rinfo->clause); + rightOp = (Expr *) get_rightop(rinfo->clause); + + /* + * For self-join elimination, changing varnos could transform + * "t1.a = t2.a" into "t1.a = t1.a". That is always true as long + * as "t1.a" is not null. We use qual() to check for such a case, + * and then we replace the qual for a check for not null + * (NullTest). + */ + if (leftOp != NULL && equal(leftOp, rightOp)) + { + NullTest *ntest = makeNode(NullTest); + + ntest->arg = leftOp; + ntest->nulltesttype = IS_NOT_NULL; + ntest->argisrow = false; + ntest->location = -1; + rinfo->clause = (Expr *) ntest; + rinfo->mergeopfamilies = NIL; + rinfo->left_em = NULL; + rinfo->right_em = NULL; + } + Assert(rinfo->orclause == NULL); + } + return true; + } + + return false; +} + /* * Remove a relation after we have proven that it participates only in an * unneeded unique self-join. @@ -1701,7 +1845,8 @@ remove_self_join_rel(PlannerInfo *root, PlanRowMark *kmark, PlanRowMark *rmark, foreach_node(RestrictInfo, rinfo, joininfos) { remove_join_clause_from_rels(root, rinfo, rinfo->required_relids); - ChangeVarNodes((Node *) rinfo, toRemove->relid, toKeep->relid, 0); + ChangeVarNodesExtended((Node *) rinfo, toRemove->relid, toKeep->relid, + 0, replace_relid_callback); if (bms_membership(rinfo->required_relids) == BMS_MULTIPLE) jinfo_candidates = lappend(jinfo_candidates, rinfo); @@ -1719,7 +1864,8 @@ remove_self_join_rel(PlannerInfo *root, PlanRowMark *kmark, PlanRowMark *rmark, restrictlist); foreach_node(RestrictInfo, rinfo, toRemove->baserestrictinfo) { - ChangeVarNodes((Node *) rinfo, toRemove->relid, toKeep->relid, 0); + ChangeVarNodesExtended((Node *) rinfo, toRemove->relid, toKeep->relid, + 0, replace_relid_callback); if (bms_membership(rinfo->required_relids) == BMS_MULTIPLE) jinfo_candidates = lappend(jinfo_candidates, rinfo); @@ -1761,7 +1907,8 @@ remove_self_join_rel(PlannerInfo *root, PlanRowMark *kmark, PlanRowMark *rmark, { Node *node = lfirst(lc); - ChangeVarNodes(node, toRemove->relid, toKeep->relid, 0); + ChangeVarNodesExtended(node, toRemove->relid, toKeep->relid, 0, + replace_relid_callback); if (!list_member(toKeep->reltarget->exprs, node)) toKeep->reltarget->exprs = lappend(toKeep->reltarget->exprs, node); } @@ -1805,14 +1952,18 @@ remove_self_join_rel(PlannerInfo *root, PlanRowMark *kmark, PlanRowMark *rmark, * Replace varno in all the query structures, except nodes RangeTblRef * otherwise later remove_rel_from_joinlist will yield errors. */ - ChangeVarNodesExtended((Node *) root->parse, toRemove->relid, toKeep->relid, 0, false); + ChangeVarNodesExtended((Node *) root->parse, toRemove->relid, toKeep->relid, + 0, replace_relid_callback); /* Replace links in the planner info */ remove_rel_from_query(root, toRemove, toKeep->relid, NULL, NULL); /* At last, replace varno in root targetlist and HAVING clause */ - ChangeVarNodes((Node *) root->processed_tlist, toRemove->relid, toKeep->relid, 0); - ChangeVarNodes((Node *) root->processed_groupClause, toRemove->relid, toKeep->relid, 0); + ChangeVarNodesExtended((Node *) root->processed_tlist, toRemove->relid, + toKeep->relid, 0, replace_relid_callback); + ChangeVarNodesExtended((Node *) root->processed_groupClause, + toRemove->relid, toKeep->relid, 0, + replace_relid_callback); adjust_relid_set(root->all_result_relids, toRemove->relid, toKeep->relid); adjust_relid_set(root->leaf_result_relids, toRemove->relid, toKeep->relid); @@ -1895,8 +2046,10 @@ split_selfjoin_quals(PlannerInfo *root, List *joinquals, List **selfjoinquals, * when we have cast of the same var to different (but compatible) * types. */ - ChangeVarNodes(rightexpr, bms_singleton_member(rinfo->right_relids), - bms_singleton_member(rinfo->left_relids), 0); + ChangeVarNodesExtended(rightexpr, + bms_singleton_member(rinfo->right_relids), + bms_singleton_member(rinfo->left_relids), 0, + replace_relid_callback); if (equal(leftexpr, rightexpr)) sjoinquals = lappend(sjoinquals, rinfo); @@ -1932,7 +2085,8 @@ match_unique_clauses(PlannerInfo *root, RelOptInfo *outer, List *uclauses, bms_is_empty(rinfo->right_relids)); clause = (Expr *) copyObject(rinfo->clause); - ChangeVarNodes((Node *) clause, relid, outer->relid, 0); + ChangeVarNodesExtended((Node *) clause, relid, outer->relid, 0, + replace_relid_callback); iclause = bms_is_empty(rinfo->left_relids) ? get_rightop(clause) : get_leftop(clause); diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index 75e2b0b903600..4ad30b7627e6e 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -3129,13 +3129,13 @@ create_indexscan_plan(PlannerInfo *root, Oid sortop; /* Get sort operator from opfamily */ - sortop = get_opfamily_member(pathkey->pk_opfamily, - exprtype, - exprtype, - pathkey->pk_strategy); + sortop = get_opfamily_member_for_cmptype(pathkey->pk_opfamily, + exprtype, + exprtype, + pathkey->pk_cmptype); if (!OidIsValid(sortop)) elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", - pathkey->pk_strategy, exprtype, exprtype, pathkey->pk_opfamily); + pathkey->pk_cmptype, exprtype, exprtype, pathkey->pk_opfamily); indexorderbyops = lappend_oid(indexorderbyops, sortop); } } @@ -4521,48 +4521,41 @@ create_mergejoin_plan(PlannerInfo *root, { Relids outer_relids = outer_path->parent->relids; Plan *sort_plan; - bool use_incremental_sort = false; - int presorted_keys; + + /* + * We can assert that the outer path is not already ordered + * appropriately for the mergejoin; otherwise, outersortkeys would + * have been set to NIL. + */ + Assert(!pathkeys_contained_in(best_path->outersortkeys, + outer_path->pathkeys)); /* * We choose to use incremental sort if it is enabled and there are * presorted keys; otherwise we use full sort. */ - if (enable_incremental_sort) - { - bool is_sorted PG_USED_FOR_ASSERTS_ONLY; - - is_sorted = pathkeys_count_contained_in(best_path->outersortkeys, - outer_path->pathkeys, - &presorted_keys); - Assert(!is_sorted); - - if (presorted_keys > 0) - use_incremental_sort = true; - } - - if (!use_incremental_sort) - { - sort_plan = (Plan *) - make_sort_from_pathkeys(outer_plan, - best_path->outersortkeys, - outer_relids); - - label_sort_with_costsize(root, (Sort *) sort_plan, -1.0); - } - else + if (enable_incremental_sort && best_path->outer_presorted_keys > 0) { sort_plan = (Plan *) make_incrementalsort_from_pathkeys(outer_plan, best_path->outersortkeys, outer_relids, - presorted_keys); + best_path->outer_presorted_keys); label_incrementalsort_with_costsize(root, (IncrementalSort *) sort_plan, best_path->outersortkeys, -1.0); } + else + { + sort_plan = (Plan *) + make_sort_from_pathkeys(outer_plan, + best_path->outersortkeys, + outer_relids); + + label_sort_with_costsize(root, (Sort *) sort_plan, -1.0); + } outer_plan = sort_plan; outerpathkeys = best_path->outersortkeys; @@ -4578,9 +4571,19 @@ create_mergejoin_plan(PlannerInfo *root, */ Relids inner_relids = inner_path->parent->relids; - Sort *sort = make_sort_from_pathkeys(inner_plan, - best_path->innersortkeys, - inner_relids); + Sort *sort; + + /* + * We can assert that the inner path is not already ordered + * appropriately for the mergejoin; otherwise, innersortkeys would + * have been set to NIL. + */ + Assert(!pathkeys_contained_in(best_path->innersortkeys, + inner_path->pathkeys)); + + sort = make_sort_from_pathkeys(inner_plan, + best_path->innersortkeys, + inner_relids); label_sort_with_costsize(root, sort, -1.0); inner_plan = (Plan *) sort; @@ -4739,14 +4742,14 @@ create_mergejoin_plan(PlannerInfo *root, opathkey->pk_eclass->ec_collation != ipathkey->pk_eclass->ec_collation) elog(ERROR, "left and right pathkeys do not match in mergejoin"); if (first_inner_match && - (opathkey->pk_strategy != ipathkey->pk_strategy || + (opathkey->pk_cmptype != ipathkey->pk_cmptype || opathkey->pk_nulls_first != ipathkey->pk_nulls_first)) elog(ERROR, "left and right pathkeys do not match in mergejoin"); /* OK, save info for executor */ mergefamilies[i] = opathkey->pk_opfamily; mergecollations[i] = opathkey->pk_eclass->ec_collation; - mergereversals[i] = (opathkey->pk_strategy == BTGreaterStrategyNumber ? true : false); + mergereversals[i] = (opathkey->pk_cmptype == COMPARE_GT ? true : false); mergenullsfirst[i] = opathkey->pk_nulls_first; i++; } @@ -6374,13 +6377,13 @@ prepare_sort_from_pathkeys(Plan *lefttree, List *pathkeys, * Look up the correct sort operator from the PathKey's slightly * abstracted representation. */ - sortop = get_opfamily_member(pathkey->pk_opfamily, - pk_datatype, - pk_datatype, - pathkey->pk_strategy); + sortop = get_opfamily_member_for_cmptype(pathkey->pk_opfamily, + pk_datatype, + pk_datatype, + pathkey->pk_cmptype); if (!OidIsValid(sortop)) /* should not happen */ elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", - pathkey->pk_strategy, pk_datatype, pk_datatype, + pathkey->pk_cmptype, pk_datatype, pk_datatype, pathkey->pk_opfamily); /* Add the column to the sort arrays */ @@ -6893,13 +6896,13 @@ make_unique_from_pathkeys(Plan *lefttree, List *pathkeys, int numCols) * Look up the correct equality operator from the PathKey's slightly * abstracted representation. */ - eqop = get_opfamily_member(pathkey->pk_opfamily, - pk_datatype, - pk_datatype, - BTEqualStrategyNumber); + eqop = get_opfamily_member_for_cmptype(pathkey->pk_opfamily, + pk_datatype, + pk_datatype, + COMPARE_EQ); if (!OidIsValid(eqop)) /* should not happen */ elog(ERROR, "missing operator %d(%u,%u) in opfamily %u", - BTEqualStrategyNumber, pk_datatype, pk_datatype, + COMPARE_EQ, pk_datatype, pk_datatype, pathkey->pk_opfamily); uniqColIdx[keyno] = tle->resno; diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c index 1d1aa27d45064..01804b085b3ba 100644 --- a/src/backend/optimizer/plan/initsplan.c +++ b/src/backend/optimizer/plan/initsplan.c @@ -3109,6 +3109,13 @@ restriction_is_always_true(PlannerInfo *root, if (nulltest->nulltesttype != IS_NOT_NULL) return false; + /* + * Empty rows can appear NULL in some contexts and NOT NULL in others, + * so avoid this optimization for row expressions. + */ + if (nulltest->argisrow) + return false; + return expr_is_nonnullable(root, nulltest->arg); } @@ -3167,6 +3174,13 @@ restriction_is_always_false(PlannerInfo *root, if (nulltest->nulltesttype != IS_NULL) return false; + /* + * Empty rows can appear NULL in some contexts and NOT NULL in others, + * so avoid this optimization for row expressions. + */ + if (nulltest->argisrow) + return false; + return expr_is_nonnullable(root, nulltest->arg); } diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 566ce5b3cb40f..ff65867eebee7 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -326,10 +326,13 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions, glob->subroots = NIL; glob->rewindPlanIDs = NULL; glob->finalrtable = NIL; + glob->allRelids = NULL; + glob->prunableRelids = NULL; glob->finalrteperminfos = NIL; glob->finalrowmarks = NIL; glob->resultRelations = NIL; glob->appendRelations = NIL; + glob->partPruneInfos = NIL; glob->relationOids = NIL; glob->invalItems = NIL; glob->paramExecTypes = NIL; @@ -338,6 +341,7 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions, glob->lastPlanNodeId = 0; glob->transientPlan = false; glob->dependsOnRole = false; + glob->partition_directory = NULL; /* * Assess whether it's feasible to use parallel mode for this query. We @@ -566,7 +570,6 @@ standard_planner(Query *parse, const char *query_string, int cursorOptions, glob->prunableRelids); result->permInfos = glob->finalrteperminfos; result->resultRelations = glob->resultRelations; - result->firstResultRels = glob->firstResultRels; result->appendRelations = glob->appendRelations; result->subplans = glob->subplans; result->rewindPlanIDs = glob->rewindPlanIDs; @@ -3201,10 +3204,53 @@ adjust_group_pathkeys_for_groupagg(PlannerInfo *root) if (AGGKIND_IS_ORDERED_SET(aggref->aggkind)) continue; - /* only add aggregates with a DISTINCT or ORDER BY */ - if (aggref->aggdistinct != NIL || aggref->aggorder != NIL) - unprocessed_aggs = bms_add_member(unprocessed_aggs, - foreach_current_index(lc)); + /* Skip unless there's a DISTINCT or ORDER BY clause */ + if (aggref->aggdistinct == NIL && aggref->aggorder == NIL) + continue; + + /* Additional safety checks are needed if there's a FILTER clause */ + if (aggref->aggfilter != NULL) + { + ListCell *lc2; + bool allow_presort = true; + + /* + * When the Aggref has a FILTER clause, it's possible that the + * filter removes rows that cannot be sorted because the + * expression to sort by results in an error during its + * evaluation. This is a problem for presorting as that happens + * before the FILTER, whereas without presorting, the Aggregate + * node will apply the FILTER *before* sorting. So that we never + * try to sort anything that might error, here we aim to skip over + * any Aggrefs with arguments with expressions which, when + * evaluated, could cause an ERROR. Vars and Consts are ok. There + * may be more cases that should be allowed, but more thought + * needs to be given. Err on the side of caution. + */ + foreach(lc2, aggref->args) + { + TargetEntry *tle = (TargetEntry *) lfirst(lc2); + Expr *expr = tle->expr; + + while (IsA(expr, RelabelType)) + expr = (Expr *) (castNode(RelabelType, expr))->arg; + + /* Common case, Vars and Consts are ok */ + if (IsA(expr, Var) || IsA(expr, Const)) + continue; + + /* Unsupported. Don't try to presort for this Aggref */ + allow_presort = false; + break; + } + + /* Skip unsupported Aggrefs */ + if (!allow_presort) + continue; + } + + unprocessed_aggs = bms_add_member(unprocessed_aggs, + foreach_current_index(lc)); } /* diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 150e9f060ee00..846e44186c366 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -1097,9 +1097,10 @@ set_plan_refs(PlannerInfo *root, Plan *plan, int rtoffset) /* * Set up the visible plan targetlist as being the same as - * the first RETURNING list. This is for the use of - * EXPLAIN; the executor won't pay any attention to the - * targetlist. We postpone this step until here so that + * the first RETURNING list. This is mostly for the use + * of EXPLAIN; the executor won't execute that targetlist, + * although it does use it to prepare the node's result + * tuple slot. We postpone this step until here so that * we don't have to do set_returning_clause_references() * twice on identical targetlists. */ @@ -1248,9 +1249,6 @@ set_plan_refs(PlannerInfo *root, Plan *plan, int rtoffset) lappend_int(root->glob->resultRelations, splan->rootRelation); } - root->glob->firstResultRels = - lappend_int(root->glob->firstResultRels, - linitial_int(splan->resultRelations)); } break; case T_Append: diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c index 8230cbea3c3b9..e7cb3fede6658 100644 --- a/src/backend/optimizer/plan/subselect.c +++ b/src/backend/optimizer/plan/subselect.c @@ -1214,6 +1214,86 @@ inline_cte_walker(Node *node, inline_cte_walker_context *context) return expression_tree_walker(node, inline_cte_walker, context); } +/* + * Attempt to transform 'testexpr' over the VALUES subquery into + * a ScalarArrayOpExpr. We currently support the transformation only when + * it ends up with a constant array. Otherwise, the evaluation of non-hashed + * SAOP might be slower than the corresponding Hash Join with VALUES. + * + * Return transformed ScalarArrayOpExpr or NULL if transformation isn't + * allowed. + */ +ScalarArrayOpExpr * +convert_VALUES_to_ANY(PlannerInfo *root, Node *testexpr, Query *values) +{ + RangeTblEntry *rte; + Node *leftop; + Node *rightop; + Oid opno; + ListCell *lc; + Oid inputcollid; + List *exprs = NIL; + + /* + * Check we have a binary operator over a single-column subquery with no + * joins and no LIMIT/OFFSET/ORDER BY clauses. + */ + if (!IsA(testexpr, OpExpr) || + list_length(((OpExpr *) testexpr)->args) != 2 || + list_length(values->targetList) > 1 || + values->limitCount != NULL || + values->limitOffset != NULL || + values->sortClause != NIL || + list_length(values->rtable) != 1) + return NULL; + + rte = linitial_node(RangeTblEntry, values->rtable); + leftop = linitial(((OpExpr *) testexpr)->args); + rightop = lsecond(((OpExpr *) testexpr)->args); + opno = ((OpExpr *) testexpr)->opno; + inputcollid = ((OpExpr *) testexpr)->inputcollid; + + /* + * Also, check that only RTE corresponds to VALUES; the list of values has + * at least two items and no volatile functions. + */ + if (rte->rtekind != RTE_VALUES || + list_length(rte->values_lists) < 2 || + contain_volatile_functions((Node *) rte->values_lists)) + return NULL; + + foreach(lc, rte->values_lists) + { + List *elem = lfirst(lc); + Node *value = linitial(elem); + + /* + * Prepare an evaluation of the right side of the operator with + * substitution of the given value. + */ + value = convert_testexpr(root, rightop, list_make1(value)); + + /* + * Try to evaluate constant expressions. We could get Const as a + * result. + */ + value = eval_const_expressions(root, value); + + /* + * As we only support constant output arrays, all the items must also + * be constant. + */ + if (!IsA(value, Const)) + return NULL; + + exprs = lappend(exprs, value); + } + + /* Finally, build ScalarArrayOpExpr at the top of the 'exprs' list. */ + return make_SAOP_expr(opno, leftop, exprType(rightop), + linitial_oid(rte->colcollations), inputcollid, + exprs, false); +} /* * convert_ANY_sublink_to_join: try to convert an ANY SubLink to a join diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c index d131a5bbc592b..87dc6f56b576f 100644 --- a/src/backend/optimizer/prep/prepjointree.c +++ b/src/backend/optimizer/prep/prepjointree.c @@ -664,6 +664,18 @@ pull_up_sublinks_qual_recurse(PlannerInfo *root, Node *node, /* Is it a convertible ANY or EXISTS clause? */ if (sublink->subLinkType == ANY_SUBLINK) { + ScalarArrayOpExpr *saop; + + if ((saop = convert_VALUES_to_ANY(root, + sublink->testexpr, + (Query *) sublink->subselect)) != NULL) + + /* + * The VALUES sequence was simplified. Nothing more to do + * here. + */ + return (Node *) saop; + if ((j = convert_ANY_sublink_to_join(root, sublink, available_rels1)) != NULL) { diff --git a/src/backend/optimizer/prep/preptlist.c b/src/backend/optimizer/prep/preptlist.c index c2a77503d4bba..ffc9d6c3f301c 100644 --- a/src/backend/optimizer/prep/preptlist.c +++ b/src/backend/optimizer/prep/preptlist.c @@ -44,6 +44,7 @@ #include "optimizer/tlist.h" #include "parser/parse_coerce.h" #include "parser/parsetree.h" +#include "utils/lsyscache.h" #include "utils/rel.h" static List *expand_insert_targetlist(PlannerInfo *root, List *tlist, @@ -419,9 +420,8 @@ expand_insert_targetlist(PlannerInfo *root, List *tlist, Relation rel) * * INSERTs should insert NULL in this case. (We assume the * rewriter would have inserted any available non-NULL default - * value.) Also, if the column isn't dropped, apply any domain - * constraints that might exist --- this is to catch domain NOT - * NULL. + * value.) Also, normally we must apply any domain constraints + * that might exist --- this is to catch domain NOT NULL. * * When generating a NULL constant for a dropped column, we label * it INT4 (any other guaranteed-to-exist datatype would do as @@ -431,21 +431,17 @@ expand_insert_targetlist(PlannerInfo *root, List *tlist, Relation rel) * representation is datatype-independent. This could perhaps * confuse code comparing the finished plan to the target * relation, however. + * + * Another exception is that if the column is generated, the value + * we produce here will be ignored, and we don't want to risk + * throwing an error. So in that case we *don't* want to apply + * domain constraints, so we must produce a NULL of the base type. + * Again, code comparing the finished plan to the target relation + * must account for this. */ Node *new_expr; - if (!att_tup->attisdropped) - { - new_expr = coerce_null_to_domain(att_tup->atttypid, - att_tup->atttypmod, - att_tup->attcollation, - att_tup->attlen, - att_tup->attbyval); - /* Must run expression preprocessing on any non-const nodes */ - if (!IsA(new_expr, Const)) - new_expr = eval_const_expressions(root, new_expr); - } - else + if (att_tup->attisdropped) { /* Insert NULL for dropped column */ new_expr = (Node *) makeConst(INT4OID, @@ -456,6 +452,33 @@ expand_insert_targetlist(PlannerInfo *root, List *tlist, Relation rel) true, /* isnull */ true /* byval */ ); } + else if (att_tup->attgenerated) + { + /* Generated column, insert a NULL of the base type */ + Oid baseTypeId = att_tup->atttypid; + int32 baseTypeMod = att_tup->atttypmod; + + baseTypeId = getBaseTypeAndTypmod(baseTypeId, &baseTypeMod); + new_expr = (Node *) makeConst(baseTypeId, + baseTypeMod, + att_tup->attcollation, + att_tup->attlen, + (Datum) 0, + true, /* isnull */ + att_tup->attbyval); + } + else + { + /* Normal column, insert a NULL of the column datatype */ + new_expr = coerce_null_to_domain(att_tup->atttypid, + att_tup->atttypmod, + att_tup->attcollation, + att_tup->attlen, + att_tup->attbyval); + /* Must run expression preprocessing on any non-const nodes */ + if (!IsA(new_expr, Const)) + new_expr = eval_const_expressions(root, new_expr); + } new_tle = makeTargetEntry((Expr *) new_expr, attrno, diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 43dfecfb47fa8..26a3e0500866c 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -40,7 +40,9 @@ #include "optimizer/planmain.h" #include "parser/analyze.h" #include "parser/parse_coerce.h" +#include "parser/parse_collate.h" #include "parser/parse_func.h" +#include "parser/parse_oper.h" #include "rewrite/rewriteHandler.h" #include "rewrite/rewriteManip.h" #include "tcop/tcopprot.h" @@ -2326,7 +2328,7 @@ convert_saop_to_hashed_saop_walker(Node *node, void *context) /* Looks good. Fill in the hash functions */ saop->hashfuncid = lefthashfunc; } - return true; + return false; } } else /* !saop->useOr */ @@ -2364,7 +2366,7 @@ convert_saop_to_hashed_saop_walker(Node *node, void *context) */ saop->negfuncid = get_opcode(negator); } - return true; + return false; } } } @@ -4742,7 +4744,7 @@ inline_function(Oid funcid, Oid result_type, Oid result_collid, if (check_sql_fn_retval(list_make1(querytree_list), result_type, rettupdesc, funcform->prokind, - false, NULL)) + false)) goto fail; /* reject whole-tuple-result cases */ /* @@ -5288,7 +5290,7 @@ inline_set_returning_function(PlannerInfo *root, RangeTblEntry *rte) if (!check_sql_fn_retval(list_make1(querytree_list), fexpr->funcresulttype, rettupdesc, funcform->prokind, - true, NULL) && + true) && (functypclass == TYPEFUNC_COMPOSITE || functypclass == TYPEFUNC_COMPOSITE_DOMAIN || functypclass == TYPEFUNC_RECORD)) @@ -5439,3 +5441,86 @@ pull_paramids_walker(Node *node, Bitmapset **context) } return expression_tree_walker(node, pull_paramids_walker, context); } + +/* + * Build ScalarArrayOpExpr on top of 'exprs.' 'haveNonConst' indicates + * whether at least one of the expressions is not Const. When it's false, + * the array constant is built directly; otherwise, we have to build a child + * ArrayExpr. The 'exprs' list gets freed if not directly used in the output + * expression tree. + */ +ScalarArrayOpExpr * +make_SAOP_expr(Oid oper, Node *leftexpr, Oid coltype, Oid arraycollid, + Oid inputcollid, List *exprs, bool haveNonConst) +{ + Node *arrayNode = NULL; + ScalarArrayOpExpr *saopexpr = NULL; + Oid arraytype = get_array_type(coltype); + + if (!OidIsValid(arraytype)) + return NULL; + + /* + * Assemble an array from the list of constants. It seems more profitable + * to build a const array. But in the presence of other nodes, we don't + * have a specific value here and must employ an ArrayExpr instead. + */ + if (haveNonConst) + { + ArrayExpr *arrayExpr = makeNode(ArrayExpr); + + /* array_collid will be set by parse_collate.c */ + arrayExpr->element_typeid = coltype; + arrayExpr->array_typeid = arraytype; + arrayExpr->multidims = false; + arrayExpr->elements = exprs; + arrayExpr->location = -1; + + arrayNode = (Node *) arrayExpr; + } + else + { + int16 typlen; + bool typbyval; + char typalign; + Datum *elems; + bool *nulls; + int i = 0; + ArrayType *arrayConst; + int dims[1] = {list_length(exprs)}; + int lbs[1] = {1}; + + get_typlenbyvalalign(coltype, &typlen, &typbyval, &typalign); + + elems = (Datum *) palloc(sizeof(Datum) * list_length(exprs)); + nulls = (bool *) palloc(sizeof(bool) * list_length(exprs)); + foreach_node(Const, value, exprs) + { + elems[i] = value->constvalue; + nulls[i++] = value->constisnull; + } + + arrayConst = construct_md_array(elems, nulls, 1, dims, lbs, + coltype, typlen, typbyval, typalign); + arrayNode = (Node *) makeConst(arraytype, -1, arraycollid, + -1, PointerGetDatum(arrayConst), + false, false); + + pfree(elems); + pfree(nulls); + list_free(exprs); + } + + /* Build the SAOP expression node */ + saopexpr = makeNode(ScalarArrayOpExpr); + saopexpr->opno = oper; + saopexpr->opfuncid = get_opcode(oper); + saopexpr->hashfuncid = InvalidOid; + saopexpr->negfuncid = InvalidOid; + saopexpr->useOr = true; + saopexpr->inputcollid = inputcollid; + saopexpr->args = list_make2(leftexpr, arrayNode); + saopexpr->location = -1; + + return saopexpr; +} diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index 93e73cb44dbbd..e0192d4a491d2 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -2626,6 +2626,7 @@ create_nestloop_path(PlannerInfo *root, * (this should be a subset of the restrict_clauses list) * 'outersortkeys' are the sort varkeys for the outer relation * 'innersortkeys' are the sort varkeys for the inner relation + * 'outer_presorted_keys' is the number of presorted keys of the outer path */ MergePath * create_mergejoin_path(PlannerInfo *root, @@ -2640,7 +2641,8 @@ create_mergejoin_path(PlannerInfo *root, Relids required_outer, List *mergeclauses, List *outersortkeys, - List *innersortkeys) + List *innersortkeys, + int outer_presorted_keys) { MergePath *pathnode = makeNode(MergePath); @@ -2669,6 +2671,7 @@ create_mergejoin_path(PlannerInfo *root, pathnode->path_mergeclauses = mergeclauses; pathnode->outersortkeys = outersortkeys; pathnode->innersortkeys = innersortkeys; + pathnode->outer_presorted_keys = outer_presorted_keys; /* pathnode->skip_mark_restore will be set by final_cost_mergejoin */ /* pathnode->materialize_inner will be set by final_cost_mergejoin */ diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c index 0489ad366446f..59233b647302d 100644 --- a/src/backend/optimizer/util/plancat.c +++ b/src/backend/optimizer/util/plancat.c @@ -177,7 +177,9 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent, { CompactAttribute *attr = TupleDescCompactAttr(relation->rd_att, i); - if (attr->attnotnull) + Assert(attr->attnullability != ATTNULLABLE_UNKNOWN); + + if (attr->attnullability == ATTNULLABLE_VALID) { rel->notnullattnums = bms_add_member(rel->notnullattnums, i + 1); @@ -365,14 +367,10 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent, * Since "<" uniquely defines the behavior of a sort * order, this is a sufficient test. * - * XXX This method is rather slow and also requires the - * undesirable assumption that the other index AM numbers - * its strategies the same as btree. It'd be better to - * have a way to explicitly declare the corresponding - * btree opfamily for each opfamily of the other index - * type. But given the lack of current or foreseeable - * amcanorder index types, it's not worth expending more - * effort on now. + * XXX This method is rather slow and complicated. It'd + * be better to have a way to explicitly declare the + * corresponding btree opfamily for each opfamily of the + * other index type. */ info->sortopfamily = (Oid *) palloc(sizeof(Oid) * nkeycolumns); info->reverse_sort = (bool *) palloc(sizeof(bool) * nkeycolumns); @@ -382,27 +380,27 @@ get_relation_info(PlannerInfo *root, Oid relationObjectId, bool inhparent, { int16 opt = indexRelation->rd_indoption[i]; Oid ltopr; - Oid btopfamily; - Oid btopcintype; - int16 btstrategy; + Oid opfamily; + Oid opcintype; + CompareType cmptype; info->reverse_sort[i] = (opt & INDOPTION_DESC) != 0; info->nulls_first[i] = (opt & INDOPTION_NULLS_FIRST) != 0; - ltopr = get_opfamily_member(info->opfamily[i], - info->opcintype[i], - info->opcintype[i], - BTLessStrategyNumber); + ltopr = get_opfamily_member_for_cmptype(info->opfamily[i], + info->opcintype[i], + info->opcintype[i], + COMPARE_LT); if (OidIsValid(ltopr) && get_ordering_op_properties(ltopr, - &btopfamily, - &btopcintype, - &btstrategy) && - btopcintype == info->opcintype[i] && - btstrategy == BTLessStrategyNumber) + &opfamily, + &opcintype, + &cmptype) && + opcintype == info->opcintype[i] && + cmptype == COMPARE_LT) { /* Successful mapping */ - info->sortopfamily[i] = btopfamily; + info->sortopfamily[i] = opfamily; } else { @@ -640,6 +638,10 @@ get_relation_foreign_keys(PlannerInfo *root, RelOptInfo *rel, /* conrelid should always be that of the table we're considering */ Assert(cachedfk->conrelid == RelationGetRelid(relation)); + /* skip constraints currently not enforced */ + if (!cachedfk->conenforced) + continue; + /* Scan to find other RTEs matching confrelid */ rti = 0; foreach(lc2, rtable) @@ -1251,6 +1253,7 @@ get_relation_data_width(Oid relid, int32 *attr_widths) * get_relation_constraints * * Retrieve the applicable constraint expressions of the given relation. + * Only constraints that have been validated are considered. * * Returns a List (possibly empty) of constraint expressions. Each one * has been canonicalized, and its Vars are changed to have the varno @@ -1299,8 +1302,7 @@ get_relation_constraints(PlannerInfo *root, /* * If this constraint hasn't been fully validated yet, we must - * ignore it here. Also ignore if NO INHERIT and we weren't told - * that that's safe. + * ignore it here. */ if (!constr->check[i].ccvalid) continue; @@ -1317,7 +1319,6 @@ get_relation_constraints(PlannerInfo *root, if (constr->check[i].ccnoinherit && !include_noinherit) continue; - cexpr = stringToNode(constr->check[i].ccbin); /* @@ -1353,17 +1354,18 @@ get_relation_constraints(PlannerInfo *root, for (i = 1; i <= natts; i++) { - Form_pg_attribute att = TupleDescAttr(relation->rd_att, i - 1); + CompactAttribute *att = TupleDescCompactAttr(relation->rd_att, i - 1); - if (att->attnotnull && !att->attisdropped) + if (att->attnullability == ATTNULLABLE_VALID && !att->attisdropped) { + Form_pg_attribute wholeatt = TupleDescAttr(relation->rd_att, i - 1); NullTest *ntest = makeNode(NullTest); ntest->arg = (Expr *) makeVar(varno, i, - att->atttypid, - att->atttypmod, - att->attcollation, + wholeatt->atttypid, + wholeatt->atttypmod, + wholeatt->attcollation, 0); ntest->nulltesttype = IS_NOT_NULL; diff --git a/src/backend/optimizer/util/predtest.c b/src/backend/optimizer/util/predtest.c index b76fc81b08d02..ac28573cd0a5a 100644 --- a/src/backend/optimizer/util/predtest.c +++ b/src/backend/optimizer/util/predtest.c @@ -1605,36 +1605,36 @@ clause_is_strict_for(Node *clause, Node *subexpr, bool allow_false) /* - * Define "operator implication tables" for btree operators ("strategies"), + * Define "operator implication tables" for index operators ("cmptypes"), * and similar tables for refutation. * - * The strategy numbers defined by btree indexes (see access/stratnum.h) are: - * 1 < 2 <= 3 = 4 >= 5 > + * The row compare numbers defined by indexes (see access/cmptype.h) are: + * 1 < 2 <= 3 = 4 >= 5 > 6 <> * and in addition we use 6 to represent <>. <> is not a btree-indexable * operator, but we assume here that if an equality operator of a btree * opfamily has a negator operator, the negator behaves as <> for the opfamily. - * (This convention is also known to get_op_btree_interpretation().) + * (This convention is also known to get_op_index_interpretation().) * - * BT_implies_table[] and BT_refutes_table[] are used for cases where we have + * RC_implies_table[] and RC_refutes_table[] are used for cases where we have * two identical subexpressions and we want to know whether one operator * expression implies or refutes the other. That is, if the "clause" is * EXPR1 clause_op EXPR2 and the "predicate" is EXPR1 pred_op EXPR2 for the * same two (immutable) subexpressions: - * BT_implies_table[clause_op-1][pred_op-1] + * RC_implies_table[clause_op-1][pred_op-1] * is true if the clause implies the predicate - * BT_refutes_table[clause_op-1][pred_op-1] + * RC_refutes_table[clause_op-1][pred_op-1] * is true if the clause refutes the predicate - * where clause_op and pred_op are strategy numbers (from 1 to 6) in the - * same btree opfamily. For example, "x < y" implies "x <= y" and refutes + * where clause_op and pred_op are cmptype numbers (from 1 to 6) in the + * same opfamily. For example, "x < y" implies "x <= y" and refutes * "x > y". * - * BT_implic_table[] and BT_refute_table[] are used where we have two + * RC_implic_table[] and RC_refute_table[] are used where we have two * constants that we need to compare. The interpretation of: * - * test_op = BT_implic_table[clause_op-1][pred_op-1] + * test_op = RC_implic_table[clause_op-1][pred_op-1] * - * where test_op, clause_op and pred_op are strategy numbers (from 1 to 6) - * of btree operators, is as follows: + * where test_op, clause_op and pred_op are cmptypes (from 1 to 6) + * of index operators, is as follows: * * If you know, for some EXPR, that "EXPR clause_op CONST1" is true, and you * want to determine whether "EXPR pred_op CONST2" must also be true, then @@ -1645,7 +1645,7 @@ clause_is_strict_for(Node *clause, Node *subexpr, bool allow_false) * For example, if clause is "Quantity > 10" and pred is "Quantity > 5" * then we test "5 <= 10" which evals to true, so clause implies pred. * - * Similarly, the interpretation of a BT_refute_table entry is: + * Similarly, the interpretation of a RC_refute_table entry is: * * If you know, for some EXPR, that "EXPR clause_op CONST1" is true, and you * want to determine whether "EXPR pred_op CONST2" must be false, then @@ -1659,17 +1659,17 @@ clause_is_strict_for(Node *clause, Node *subexpr, bool allow_false) * An entry where test_op == 0 means the implication cannot be determined. */ -#define BTLT BTLessStrategyNumber -#define BTLE BTLessEqualStrategyNumber -#define BTEQ BTEqualStrategyNumber -#define BTGE BTGreaterEqualStrategyNumber -#define BTGT BTGreaterStrategyNumber -#define BTNE COMPARE_NE +#define RCLT COMPARE_LT +#define RCLE COMPARE_LE +#define RCEQ COMPARE_EQ +#define RCGE COMPARE_GE +#define RCGT COMPARE_GT +#define RCNE COMPARE_NE /* We use "none" for 0/false to make the tables align nicely */ #define none 0 -static const bool BT_implies_table[6][6] = { +static const bool RC_implies_table[6][6] = { /* * The predicate operator: * LT LE EQ GE GT NE @@ -1682,7 +1682,7 @@ static const bool BT_implies_table[6][6] = { {none, none, none, none, none, true} /* NE */ }; -static const bool BT_refutes_table[6][6] = { +static const bool RC_refutes_table[6][6] = { /* * The predicate operator: * LT LE EQ GE GT NE @@ -1695,30 +1695,30 @@ static const bool BT_refutes_table[6][6] = { {none, none, true, none, none, none} /* NE */ }; -static const StrategyNumber BT_implic_table[6][6] = { +static const CompareType RC_implic_table[6][6] = { /* * The predicate operator: * LT LE EQ GE GT NE */ - {BTGE, BTGE, none, none, none, BTGE}, /* LT */ - {BTGT, BTGE, none, none, none, BTGT}, /* LE */ - {BTGT, BTGE, BTEQ, BTLE, BTLT, BTNE}, /* EQ */ - {none, none, none, BTLE, BTLT, BTLT}, /* GE */ - {none, none, none, BTLE, BTLE, BTLE}, /* GT */ - {none, none, none, none, none, BTEQ} /* NE */ + {RCGE, RCGE, none, none, none, RCGE}, /* LT */ + {RCGT, RCGE, none, none, none, RCGT}, /* LE */ + {RCGT, RCGE, RCEQ, RCLE, RCLT, RCNE}, /* EQ */ + {none, none, none, RCLE, RCLT, RCLT}, /* GE */ + {none, none, none, RCLE, RCLE, RCLE}, /* GT */ + {none, none, none, none, none, RCEQ} /* NE */ }; -static const StrategyNumber BT_refute_table[6][6] = { +static const CompareType RC_refute_table[6][6] = { /* * The predicate operator: * LT LE EQ GE GT NE */ - {none, none, BTGE, BTGE, BTGE, none}, /* LT */ - {none, none, BTGT, BTGT, BTGE, none}, /* LE */ - {BTLE, BTLT, BTNE, BTGT, BTGE, BTEQ}, /* EQ */ - {BTLE, BTLT, BTLT, none, none, none}, /* GE */ - {BTLE, BTLE, BTLE, none, none, none}, /* GT */ - {none, none, BTEQ, none, none, none} /* NE */ + {none, none, RCGE, RCGE, RCGE, none}, /* LT */ + {none, none, RCGT, RCGT, RCGE, none}, /* LE */ + {RCLE, RCLT, RCNE, RCGT, RCGE, RCEQ}, /* EQ */ + {RCLE, RCLT, RCLT, none, none, none}, /* GE */ + {RCLE, RCLE, RCLE, none, none, none}, /* GT */ + {none, none, RCEQ, none, none, none} /* NE */ }; @@ -2165,23 +2165,23 @@ lookup_proof_cache(Oid pred_op, Oid clause_op, bool refute_it) * operator. This can happen in cases with incomplete sets of cross-type * comparison operators. */ - clause_op_infos = get_op_btree_interpretation(clause_op); + clause_op_infos = get_op_index_interpretation(clause_op); if (clause_op_infos) - pred_op_infos = get_op_btree_interpretation(pred_op); + pred_op_infos = get_op_index_interpretation(pred_op); else /* no point in looking */ pred_op_infos = NIL; foreach(lcp, pred_op_infos) { - OpBtreeInterpretation *pred_op_info = lfirst(lcp); + OpIndexInterpretation *pred_op_info = lfirst(lcp); Oid opfamily_id = pred_op_info->opfamily_id; foreach(lcc, clause_op_infos) { - OpBtreeInterpretation *clause_op_info = lfirst(lcc); - StrategyNumber pred_strategy, - clause_strategy, - test_strategy; + OpIndexInterpretation *clause_op_info = lfirst(lcc); + CompareType pred_cmptype, + clause_cmptype, + test_cmptype; /* Must find them in same opfamily */ if (opfamily_id != clause_op_info->opfamily_id) @@ -2189,51 +2189,51 @@ lookup_proof_cache(Oid pred_op, Oid clause_op, bool refute_it) /* Lefttypes should match */ Assert(clause_op_info->oplefttype == pred_op_info->oplefttype); - pred_strategy = pred_op_info->strategy; - clause_strategy = clause_op_info->strategy; + pred_cmptype = pred_op_info->cmptype; + clause_cmptype = clause_op_info->cmptype; /* * Check to see if we can make a proof for same-subexpressions * cases based on the operators' relationship in this opfamily. */ if (refute_it) - same_subexprs |= BT_refutes_table[clause_strategy - 1][pred_strategy - 1]; + same_subexprs |= RC_refutes_table[clause_cmptype - 1][pred_cmptype - 1]; else - same_subexprs |= BT_implies_table[clause_strategy - 1][pred_strategy - 1]; + same_subexprs |= RC_implies_table[clause_cmptype - 1][pred_cmptype - 1]; /* - * Look up the "test" strategy number in the implication table + * Look up the "test" cmptype number in the implication table */ if (refute_it) - test_strategy = BT_refute_table[clause_strategy - 1][pred_strategy - 1]; + test_cmptype = RC_refute_table[clause_cmptype - 1][pred_cmptype - 1]; else - test_strategy = BT_implic_table[clause_strategy - 1][pred_strategy - 1]; + test_cmptype = RC_implic_table[clause_cmptype - 1][pred_cmptype - 1]; - if (test_strategy == 0) + if (test_cmptype == 0) { /* Can't determine implication using this interpretation */ continue; } /* - * See if opfamily has an operator for the test strategy and the + * See if opfamily has an operator for the test cmptype and the * datatypes. */ - if (test_strategy == BTNE) + if (test_cmptype == RCNE) { - test_op = get_opfamily_member(opfamily_id, - pred_op_info->oprighttype, - clause_op_info->oprighttype, - BTEqualStrategyNumber); + test_op = get_opfamily_member_for_cmptype(opfamily_id, + pred_op_info->oprighttype, + clause_op_info->oprighttype, + COMPARE_EQ); if (OidIsValid(test_op)) test_op = get_negator(test_op); } else { - test_op = get_opfamily_member(opfamily_id, - pred_op_info->oprighttype, - clause_op_info->oprighttype, - test_strategy); + test_op = get_opfamily_member_for_cmptype(opfamily_id, + pred_op_info->oprighttype, + clause_op_info->oprighttype, + test_cmptype); } if (!OidIsValid(test_op)) diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 76f58b3aca34d..a16fdd65601d5 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -253,20 +253,14 @@ parse_sub_analyze(Node *parseTree, ParseState *parentParseState, * statements. However, we have the statement's location plus the length * (p_stmt_len) and location (p_stmt_location) of the top level RawStmt, * stored in pstate. Thus, the statement's length is the RawStmt's length - * minus how much we've advanced in the RawStmt's string. + * minus how much we've advanced in the RawStmt's string. If p_stmt_len + * is 0, the SQL string is used up to its end. */ static void setQueryLocationAndLength(ParseState *pstate, Query *qry, Node *parseTree) { ParseLoc stmt_len = 0; - /* - * If there is no information about the top RawStmt's length, leave it at - * 0 to use the whole string. - */ - if (pstate->p_stmt_len == 0) - return; - switch (nodeTag(parseTree)) { case T_InsertStmt: @@ -308,11 +302,12 @@ setQueryLocationAndLength(ParseState *pstate, Query *qry, Node *parseTree) /* Statement's length is known, use it */ qry->stmt_len = stmt_len; } - else + else if (pstate->p_stmt_len > 0) { /* - * Compute the statement's length from the statement's location and - * the RawStmt's length and location. + * The top RawStmt's length is known, so calculate the statement's + * length from the statement's location and the RawStmt's length and + * location. */ qry->stmt_len = pstate->p_stmt_len - (qry->stmt_location - pstate->p_stmt_location); } @@ -591,6 +586,45 @@ analyze_requires_snapshot(RawStmt *parseTree) return stmt_requires_parse_analysis(parseTree); } +/* + * query_requires_rewrite_plan() + * Returns true if rewriting or planning is non-trivial for this Query. + * + * This is much like stmt_requires_parse_analysis(), but applies one step + * further down the pipeline. + * + * We do not provide an equivalent of analyze_requires_snapshot(): callers + * can assume that any rewriting or planning activity needs a snapshot. + */ +bool +query_requires_rewrite_plan(Query *query) +{ + bool result; + + if (query->commandType != CMD_UTILITY) + { + /* All optimizable statements require rewriting/planning */ + result = true; + } + else + { + /* This list should match stmt_requires_parse_analysis() */ + switch (nodeTag(query->utilityStmt)) + { + case T_DeclareCursorStmt: + case T_ExplainStmt: + case T_CreateTableAsStmt: + case T_CallStmt: + result = true; + break; + default: + result = false; + break; + } + } + return result; +} + /* * transformDeleteStmt - * transforms a Delete Statement diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 0fc502a3a4062..0b5652071d119 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -752,7 +752,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query); NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMERIC - OBJECT_P OF OFF OFFSET OIDS OLD OMIT ON ONLY OPERATOR OPTION OPTIONS OR + OBJECT_P OBJECTS_P OF OFF OFFSET OIDS OLD OMIT ON ONLY OPERATOR OPTION OPTIONS OR ORDER ORDINALITY OTHERS OUT_P OUTER_P OVER OVERLAPS OVERLAY OVERRIDING OWNED OWNER @@ -2662,6 +2662,8 @@ alter_table_cmd: n->subtype = AT_AlterConstraint; n->def = (Node *) c; c->conname = $3; + if ($4 & (CAS_NOT_ENFORCED | CAS_ENFORCED)) + c->alterEnforceability = true; if ($4 & (CAS_DEFERRABLE | CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED | CAS_INITIALLY_IMMEDIATE)) c->alterDeferrability = true; @@ -2670,7 +2672,10 @@ alter_table_cmd: processCASbits($4, @4, "FOREIGN KEY", &c->deferrable, &c->initdeferred, - NULL, NULL, &c->noinherit, yyscanner); + &c->is_enforced, + NULL, + &c->noinherit, + yyscanner); $$ = (Node *) n; } /* ALTER TABLE ALTER CONSTRAINT INHERIT */ @@ -4212,11 +4217,10 @@ ConstraintElem: n->contype = CONSTR_NOTNULL; n->location = @1; n->keys = list_make1(makeString($3)); - /* no NOT VALID support yet */ processCASbits($4, @4, "NOT NULL", - NULL, NULL, NULL, NULL, + NULL, NULL, NULL, &n->skip_validation, &n->is_no_inherit, yyscanner); - n->initially_valid = true; + n->initially_valid = !n->skip_validation; $$ = (Node *) n; } | UNIQUE opt_unique_null_treatment '(' columnList opt_without_overlaps ')' opt_c_include opt_definition OptConsTableSpace @@ -4334,7 +4338,7 @@ ConstraintElem: n->fk_del_set_cols = ($11)->deleteAction->cols; processCASbits($12, @12, "FOREIGN KEY", &n->deferrable, &n->initdeferred, - NULL, &n->skip_validation, NULL, + &n->is_enforced, &n->skip_validation, NULL, yyscanner); n->initially_valid = !n->skip_validation; $$ = (Node *) n; @@ -8172,6 +8176,7 @@ defacl_privilege_target: | SEQUENCES { $$ = OBJECT_SEQUENCE; } | TYPES_P { $$ = OBJECT_TYPE; } | SCHEMAS { $$ = OBJECT_SCHEMA; } + | LARGE_P OBJECTS_P { $$ = OBJECT_LARGEOBJECT; } ; @@ -14225,7 +14230,7 @@ xmltable_column_el: parser_errposition(defel->location))); fc->colexpr = defel->arg; } - else if (strcmp(defel->defname, "is_not_null") == 0) + else if (strcmp(defel->defname, "__pg__is_not_null") == 0) { if (nullability_seen) ereport(ERROR, @@ -14268,13 +14273,20 @@ xmltable_column_option_list: xmltable_column_option_el: IDENT b_expr - { $$ = makeDefElem($1, $2, @1); } + { + if (strcmp($1, "__pg__is_not_null") == 0) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("option name \"%s\" cannot be used in XMLTABLE", $1), + parser_errposition(@1))); + $$ = makeDefElem($1, $2, @1); + } | DEFAULT b_expr { $$ = makeDefElem("default", $2, @1); } | NOT NULL_P - { $$ = makeDefElem("is_not_null", (Node *) makeBoolean(true), @1); } + { $$ = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(true), @1); } | NULL_P - { $$ = makeDefElem("is_not_null", (Node *) makeBoolean(false), @1); } + { $$ = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(false), @1); } | PATH b_expr { $$ = makeDefElem("path", $2, @1); } ; @@ -17877,6 +17889,7 @@ unreserved_keyword: | NOWAIT | NULLS_P | OBJECT_P + | OBJECTS_P | OF | OFF | OIDS @@ -18499,6 +18512,7 @@ bare_label_keyword: | NULLS_P | NUMERIC | OBJECT_P + | OBJECTS_P | OF | OFF | OIDS diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 2e64fcae7b23d..9f20a70ce13cf 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -2915,7 +2915,7 @@ transformWindowDefinitions(ParseState *pstate, { SortGroupClause *sortcl; Node *sortkey; - int16 rangestrategy; + CompareType rangecmptype; if (list_length(wc->orderClause) != 1) ereport(ERROR, @@ -2928,7 +2928,7 @@ transformWindowDefinitions(ParseState *pstate, if (!get_ordering_op_properties(sortcl->sortop, &rangeopfamily, &rangeopcintype, - &rangestrategy)) + &rangecmptype)) elog(ERROR, "operator %u is not a valid ordering operator", sortcl->sortop); /* Record properties of sort ordering */ diff --git a/src/backend/parser/parse_cte.c b/src/backend/parser/parse_cte.c index 79673621c9b17..366fd901d9d5e 100644 --- a/src/backend/parser/parse_cte.c +++ b/src/backend/parser/parse_cte.c @@ -88,6 +88,7 @@ static void analyzeCTE(ParseState *pstate, CommonTableExpr *cte); /* Dependency processing functions */ static void makeDependencyGraph(CteState *cstate); static bool makeDependencyGraphWalker(Node *node, CteState *cstate); +static void WalkInnerWith(Node *stmt, WithClause *withClause, CteState *cstate); static void TopologicalSort(ParseState *pstate, CteItem *items, int numitems); /* Recursion validity checker functions */ @@ -725,58 +726,69 @@ makeDependencyGraphWalker(Node *node, CteState *cstate) if (IsA(node, SelectStmt)) { SelectStmt *stmt = (SelectStmt *) node; - ListCell *lc; if (stmt->withClause) { - if (stmt->withClause->recursive) - { - /* - * In the RECURSIVE case, all query names of the WITH are - * visible to all WITH items as well as the main query. So - * push them all on, process, pop them all off. - */ - cstate->innerwiths = lcons(stmt->withClause->ctes, - cstate->innerwiths); - foreach(lc, stmt->withClause->ctes) - { - CommonTableExpr *cte = (CommonTableExpr *) lfirst(lc); + /* Examine the WITH clause and the SelectStmt */ + WalkInnerWith(node, stmt->withClause, cstate); + /* We're done examining the SelectStmt */ + return false; + } + /* if no WITH clause, just fall through for normal processing */ + } + else if (IsA(node, InsertStmt)) + { + InsertStmt *stmt = (InsertStmt *) node; - (void) makeDependencyGraphWalker(cte->ctequery, cstate); - } - (void) raw_expression_tree_walker(node, - makeDependencyGraphWalker, - cstate); - cstate->innerwiths = list_delete_first(cstate->innerwiths); - } - else - { - /* - * In the non-RECURSIVE case, query names are visible to the - * WITH items after them and to the main query. - */ - cstate->innerwiths = lcons(NIL, cstate->innerwiths); - foreach(lc, stmt->withClause->ctes) - { - CommonTableExpr *cte = (CommonTableExpr *) lfirst(lc); - ListCell *cell1; + if (stmt->withClause) + { + /* Examine the WITH clause and the InsertStmt */ + WalkInnerWith(node, stmt->withClause, cstate); + /* We're done examining the InsertStmt */ + return false; + } + /* if no WITH clause, just fall through for normal processing */ + } + else if (IsA(node, DeleteStmt)) + { + DeleteStmt *stmt = (DeleteStmt *) node; - (void) makeDependencyGraphWalker(cte->ctequery, cstate); - /* note that recursion could mutate innerwiths list */ - cell1 = list_head(cstate->innerwiths); - lfirst(cell1) = lappend((List *) lfirst(cell1), cte); - } - (void) raw_expression_tree_walker(node, - makeDependencyGraphWalker, - cstate); - cstate->innerwiths = list_delete_first(cstate->innerwiths); - } - /* We're done examining the SelectStmt */ + if (stmt->withClause) + { + /* Examine the WITH clause and the DeleteStmt */ + WalkInnerWith(node, stmt->withClause, cstate); + /* We're done examining the DeleteStmt */ return false; } /* if no WITH clause, just fall through for normal processing */ } - if (IsA(node, WithClause)) + else if (IsA(node, UpdateStmt)) + { + UpdateStmt *stmt = (UpdateStmt *) node; + + if (stmt->withClause) + { + /* Examine the WITH clause and the UpdateStmt */ + WalkInnerWith(node, stmt->withClause, cstate); + /* We're done examining the UpdateStmt */ + return false; + } + /* if no WITH clause, just fall through for normal processing */ + } + else if (IsA(node, MergeStmt)) + { + MergeStmt *stmt = (MergeStmt *) node; + + if (stmt->withClause) + { + /* Examine the WITH clause and the MergeStmt */ + WalkInnerWith(node, stmt->withClause, cstate); + /* We're done examining the MergeStmt */ + return false; + } + /* if no WITH clause, just fall through for normal processing */ + } + else if (IsA(node, WithClause)) { /* * Prevent raw_expression_tree_walker from recursing directly into a @@ -790,6 +802,60 @@ makeDependencyGraphWalker(Node *node, CteState *cstate) cstate); } +/* + * makeDependencyGraphWalker's recursion into a statement having a WITH clause. + * + * This subroutine is concerned with updating the innerwiths list correctly + * based on the visibility rules for CTE names. + */ +static void +WalkInnerWith(Node *stmt, WithClause *withClause, CteState *cstate) +{ + ListCell *lc; + + if (withClause->recursive) + { + /* + * In the RECURSIVE case, all query names of the WITH are visible to + * all WITH items as well as the main query. So push them all on, + * process, pop them all off. + */ + cstate->innerwiths = lcons(withClause->ctes, cstate->innerwiths); + foreach(lc, withClause->ctes) + { + CommonTableExpr *cte = (CommonTableExpr *) lfirst(lc); + + (void) makeDependencyGraphWalker(cte->ctequery, cstate); + } + (void) raw_expression_tree_walker(stmt, + makeDependencyGraphWalker, + cstate); + cstate->innerwiths = list_delete_first(cstate->innerwiths); + } + else + { + /* + * In the non-RECURSIVE case, query names are visible to the WITH + * items after them and to the main query. + */ + cstate->innerwiths = lcons(NIL, cstate->innerwiths); + foreach(lc, withClause->ctes) + { + CommonTableExpr *cte = (CommonTableExpr *) lfirst(lc); + ListCell *cell1; + + (void) makeDependencyGraphWalker(cte->ctequery, cstate); + /* note that recursion could mutate innerwiths list */ + cell1 = list_head(cstate->innerwiths); + lfirst(cell1) = lappend((List *) lfirst(cell1), cte); + } + (void) raw_expression_tree_walker(stmt, + makeDependencyGraphWalker, + cstate); + cstate->innerwiths = list_delete_first(cstate->innerwiths); + } +} + /* * Sort by dependencies, using a standard topological sort operation */ diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 9caf1e481a208..1f8e2d54673dd 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -2832,7 +2832,7 @@ make_row_comparison_op(ParseState *pstate, List *opname, ListCell *l, *r; List **opinfo_lists; - Bitmapset *strats; + Bitmapset *cmptypes; int nopers; int i; @@ -2897,45 +2897,45 @@ make_row_comparison_op(ParseState *pstate, List *opname, /* * Now we must determine which row comparison semantics (= <> < <= > >=) - * apply to this set of operators. We look for btree opfamilies - * containing the operators, and see which interpretations (strategy - * numbers) exist for each operator. + * apply to this set of operators. We look for opfamilies containing the + * operators, and see which interpretations (cmptypes) exist for each + * operator. */ opinfo_lists = (List **) palloc(nopers * sizeof(List *)); - strats = NULL; + cmptypes = NULL; i = 0; foreach(l, opexprs) { Oid opno = ((OpExpr *) lfirst(l))->opno; - Bitmapset *this_strats; + Bitmapset *this_cmptypes; ListCell *j; - opinfo_lists[i] = get_op_btree_interpretation(opno); + opinfo_lists[i] = get_op_index_interpretation(opno); /* - * convert strategy numbers into a Bitmapset to make the intersection + * convert comparison types into a Bitmapset to make the intersection * calculation easy. */ - this_strats = NULL; + this_cmptypes = NULL; foreach(j, opinfo_lists[i]) { - OpBtreeInterpretation *opinfo = lfirst(j); + OpIndexInterpretation *opinfo = lfirst(j); - this_strats = bms_add_member(this_strats, opinfo->strategy); + this_cmptypes = bms_add_member(this_cmptypes, opinfo->cmptype); } if (i == 0) - strats = this_strats; + cmptypes = this_cmptypes; else - strats = bms_int_members(strats, this_strats); + cmptypes = bms_int_members(cmptypes, this_cmptypes); i++; } /* * If there are multiple common interpretations, we may use any one of - * them ... this coding arbitrarily picks the lowest btree strategy + * them ... this coding arbitrarily picks the lowest comparison type * number. */ - i = bms_next_member(strats, -1); + i = bms_next_member(cmptypes, -1); if (i < 0) { /* No common interpretation, so fail */ @@ -2969,9 +2969,9 @@ make_row_comparison_op(ParseState *pstate, List *opname, foreach(j, opinfo_lists[i]) { - OpBtreeInterpretation *opinfo = lfirst(j); + OpIndexInterpretation *opinfo = lfirst(j); - if (opinfo->strategy == cmptype) + if (opinfo->cmptype == cmptype) { opfamily = opinfo->opfamily_id; break; @@ -3772,7 +3772,7 @@ transformJsonArrayQueryConstructor(ParseState *pstate, /* Transform query only for counting target list entries. */ qpstate = make_parsestate(pstate); - query = transformStmt(qpstate, ctor->query); + query = transformStmt(qpstate, copyObject(ctor->query)); if (count_nonjunk_tlist_entries(query->targetList) != 1) ereport(ERROR, diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 9c1541e1fea93..62015431fdf1a 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -2962,8 +2962,10 @@ transformFKConstraints(CreateStmtContext *cxt, /* * If CREATE TABLE or adding a column with NULL default, we can safely - * skip validation of FK constraints, and nonetheless mark them valid. - * (This will override any user-supplied NOT VALID flag.) + * skip validation of FK constraints, and mark them as valid based on the + * constraint enforcement flag, since NOT ENFORCED constraints must always + * be marked as NOT VALID. (This will override any user-supplied NOT VALID + * flag.) */ if (skipValidation) { @@ -2972,7 +2974,7 @@ transformFKConstraints(CreateStmtContext *cxt, Constraint *constraint = (Constraint *) lfirst(fkclist); constraint->skip_validation = true; - constraint->initially_valid = true; + constraint->initially_valid = constraint->is_enforced; } } @@ -3967,7 +3969,8 @@ transformConstraintAttrs(CreateStmtContext *cxt, List *constraintList) case CONSTR_ATTR_ENFORCED: if (lastprimarycon == NULL || - lastprimarycon->contype != CONSTR_CHECK) + (lastprimarycon->contype != CONSTR_CHECK && + lastprimarycon->contype != CONSTR_FOREIGN)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("misplaced ENFORCED clause"), @@ -3983,7 +3986,8 @@ transformConstraintAttrs(CreateStmtContext *cxt, List *constraintList) case CONSTR_ATTR_NOT_ENFORCED: if (lastprimarycon == NULL || - lastprimarycon->contype != CONSTR_CHECK) + (lastprimarycon->contype != CONSTR_CHECK && + lastprimarycon->contype != CONSTR_FOREIGN)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("misplaced NOT ENFORCED clause"), diff --git a/src/backend/po/es.po b/src/backend/po/es.po index 0d6dead79e038..e2593b522719a 100644 --- a/src/backend/po/es.po +++ b/src/backend/po/es.po @@ -12,6 +12,7 @@ # Glosario: # # character carácter +# checkpoint checkpoint # checksum suma de verificación # cluster (de la orden cluster) reordenar # command orden @@ -23,8 +24,8 @@ # lexeme lexema # locale configuración regional # to lock bloquear -# lock (sustantivo) candado -# to obtain a lock bloquear un candado +# lock (sustantivo) “lock” +# to obtain a lock bloquear un “lock” # malformed mal formado # mapping mapeo # operator class clase de operadores @@ -42,7 +43,8 @@ # rule regla de reescritura # schema esquema # to skip ignorar -# trigger disparador +# trigger “trigger” +# wait event “wait event” # window function función de ventana deslizante # # FIXME varios: @@ -60,10 +62,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL server 15\n" +"Project-Id-Version: PostgreSQL server 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:10+0000\n" -"PO-Revision-Date: 2024-05-21 13:39+0200\n" +"POT-Creation-Date: 2025-02-16 19:41+0000\n" +"PO-Revision-Date: 2025-02-17 15:18+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -73,6 +75,11 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: BlackCAT 1.1\n" +#: ../common/binaryheap.c:121 ../common/binaryheap.c:159 +#, c-format +msgid "out of binary heap slots" +msgstr "se acabaron los slots de “binary heap”" + #: ../common/compression.c:132 ../common/compression.c:141 #: ../common/compression.c:150 #, c-format @@ -99,8 +106,7 @@ msgid "value for compression option \"%s\" must be an integer" msgstr "el valor para la opción de compresión «%s» debe ser un entero" #: ../common/compression.c:331 -#, fuzzy, c-format -#| msgid "value for compression option \"%s\" must be a boolean" +#, c-format msgid "value for compression option \"%s\" must be a Boolean value" msgstr "el valor para la opción de compresión «%s» debe ser un booleano" @@ -131,64 +137,66 @@ msgstr "el algoritmo de compresión «%s» no acepta modo de larga distancia" msgid "not recorded" msgstr "no registrado" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 -#: commands/copyfrom.c:1669 commands/extension.c:3456 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 +#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123 +#: utils/time/snapmgr.c:1430 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "no se pudo abrir archivo «%s» para lectura: %m" -#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1346 access/transam/xlog.c:3193 -#: access/transam/xlog.c:3996 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328 -#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842 -#: commands/extension.c:3466 libpq/hba.c:791 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2027 replication/slot.c:1946 -#: replication/slot.c:1987 replication/walsender.c:643 +#: access/transam/twophase.c:1353 access/transam/xlog.c:3477 +#: access/transam/xlog.c:4341 access/transam/xlogrecovery.c:1238 +#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 +#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 +#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 +#: replication/logical/reorderbuffer.c:5113 +#: replication/logical/snapbuild.c:2052 replication/slot.c:2236 +#: replication/slot.c:2277 replication/walsender.c:655 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827 +#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "no se pudo leer el archivo «%s»: %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 -#: access/transam/xlog.c:3198 access/transam/xlog.c:4001 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2032 -#: replication/slot.c:1950 replication/slot.c:1991 replication/walsender.c:648 -#: utils/cache/relmapper.c:831 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 +#: access/transam/xlog.c:3482 access/transam/xlog.c:4346 +#: replication/logical/origin.c:750 replication/logical/origin.c:789 +#: replication/logical/snapbuild.c:2057 replication/slot.c:2240 +#: replication/slot.c:2281 replication/walsender.c:660 +#: utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" -#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108 -#: ../common/controldata_utils.c:233 ../common/controldata_utils.c:236 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 +#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 +#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1358 -#: access/transam/twophase.c:1770 access/transam/xlog.c:3039 -#: access/transam/xlog.c:3233 access/transam/xlog.c:3238 -#: access/transam/xlog.c:3374 access/transam/xlog.c:3966 -#: access/transam/xlog.c:4885 commands/copyfrom.c:1729 commands/copyto.c:332 +#: access/transam/timeline.c:512 access/transam/twophase.c:1365 +#: access/transam/twophase.c:1784 access/transam/xlog.c:3323 +#: access/transam/xlog.c:3517 access/transam/xlog.c:3522 +#: access/transam/xlog.c:3658 access/transam/xlog.c:4311 +#: access/transam/xlog.c:5246 commands/copyfrom.c:1799 commands/copyto.c:325 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 #: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1837 replication/slot.c:1998 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:739 -#: storage/file/fd.c:3650 storage/file/fd.c:3756 utils/cache/relmapper.c:839 -#: utils/cache/relmapper.c:945 +#: replication/logical/reorderbuffer.c:5165 +#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943 +#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828 +#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 +#: utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "no se pudo cerrar el archivo «%s»: %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "discordancia en orden de bytes" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -202,141 +210,157 @@ msgstr "" "serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" "directorio de datos." -#: ../common/controldata_utils.c:181 ../common/controldata_utils.c:186 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1302 -#: access/transam/xlog.c:2946 access/transam/xlog.c:3109 -#: access/transam/xlog.c:3148 access/transam/xlog.c:3341 -#: access/transam/xlog.c:3986 access/transam/xlogrecovery.c:4179 -#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:651 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1918 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:714 storage/file/fd.c:3407 storage/file/fd.c:3637 -#: storage/file/fd.c:3727 storage/smgr/md.c:660 utils/cache/relmapper.c:816 -#: utils/cache/relmapper.c:924 utils/error/elog.c:2082 -#: utils/init/miscinit.c:1530 utils/init/miscinit.c:1664 -#: utils/init/miscinit.c:1741 utils/misc/guc.c:4600 utils/misc/guc.c:4650 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 +#: ../common/file_utils.c:70 ../common/file_utils.c:347 +#: ../common/file_utils.c:406 ../common/file_utils.c:480 +#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 +#: access/transam/timeline.c:251 access/transam/timeline.c:348 +#: access/transam/twophase.c:1309 access/transam/xlog.c:3230 +#: access/transam/xlog.c:3393 access/transam/xlog.c:3432 +#: access/transam/xlog.c:3625 access/transam/xlog.c:4331 +#: access/transam/xlogrecovery.c:4264 access/transam/xlogrecovery.c:4367 +#: access/transam/xlogutils.c:836 backup/basebackup.c:547 +#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 +#: postmaster/syslogger.c:1511 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3766 +#: replication/logical/reorderbuffer.c:4320 +#: replication/logical/reorderbuffer.c:5093 +#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884 +#: replication/slot.c:2208 replication/walsender.c:628 +#: replication/walsender.c:3051 storage/file/copydir.c:151 +#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 +#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 +#: utils/cache/relmapper.c:935 utils/error/elog.c:2124 +#: utils/init/miscinit.c:1580 utils/init/miscinit.c:1714 +#: utils/init/miscinit.c:1791 utils/misc/guc.c:4777 utils/misc/guc.c:4827 #, c-format msgid "could not open file \"%s\": %m" msgstr "no se pudo abrir el archivo «%s»: %m" -#: ../common/controldata_utils.c:202 ../common/controldata_utils.c:205 -#: access/transam/twophase.c:1743 access/transam/twophase.c:1752 -#: access/transam/xlog.c:8751 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5570 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:936 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 +#: access/transam/twophase.c:1757 access/transam/twophase.c:1766 +#: access/transam/xlog.c:9280 access/transam/xlogfuncs.c:698 +#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 +#: backup/walsummary.c:304 postmaster/postmaster.c:4127 +#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 +#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "no se pudo escribir el archivo «%s»: %m" -#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1764 -#: access/transam/xlog.c:3032 access/transam/xlog.c:3227 -#: access/transam/xlog.c:3959 access/transam/xlog.c:8141 -#: access/transam/xlog.c:8186 backup/basebackup_server.c:209 -#: replication/logical/snapbuild.c:1791 replication/slot.c:1823 -#: replication/slot.c:1928 storage/file/fd.c:731 storage/file/fd.c:3748 -#: storage/smgr/md.c:1132 storage/smgr/md.c:1177 storage/sync/sync.c:453 -#: utils/misc/guc.c:4370 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 +#: ../common/file_utils.c:418 ../common/file_utils.c:488 +#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 +#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1778 +#: access/transam/xlog.c:3316 access/transam/xlog.c:3511 +#: access/transam/xlog.c:4304 access/transam/xlog.c:8655 +#: access/transam/xlog.c:8700 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812 +#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 +#: storage/file/fd.c:3851 storage/smgr/md.c:1331 storage/smgr/md.c:1376 +#: storage/sync/sync.c:446 utils/misc/guc.c:4530 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:258 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1411 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1345 -#: libpq/auth.c:1389 libpq/auth.c:1946 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2534 postmaster/postmaster.c:4127 -#: postmaster/postmaster.c:5495 postmaster/postmaster.c:5866 -#: replication/libpqwalreceiver/libpqwalreceiver.c:308 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:823 storage/file/fd.c:1354 -#: storage/file/fd.c:1515 storage/file/fd.c:2428 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2232 storage/ipc/procarray.c:2239 -#: storage/ipc/procarray.c:2738 storage/ipc/procarray.c:3374 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:469 -#: utils/adt/pg_locale.c:633 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4348 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:713 utils/mmgr/dsa.c:735 utils/mmgr/dsa.c:816 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 +#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 +#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 +#: ../common/md5_common.c:156 ../common/parse_manifest.c:157 +#: ../common/parse_manifest.c:852 ../common/psprintf.c:143 +#: ../common/scram-common.c:268 ../common/stringinfo.c:314 ../port/path.c:828 +#: ../port/path.c:865 ../port/path.c:882 access/transam/twophase.c:1418 +#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 +#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:355 postmaster/bgworker.c:945 +#: postmaster/postmaster.c:3560 postmaster/postmaster.c:4021 +#: postmaster/postmaster.c:4383 postmaster/walsummarizer.c:935 +#: replication/libpqwalreceiver/libpqwalreceiver.c:387 +#: replication/logical/logical.c:210 replication/walsender.c:835 +#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 +#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465 +#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226 +#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435 +#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 +#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:532 +#: utils/adt/pg_locale.c:696 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 +#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 +#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 +#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 +#: utils/misc/guc.c:4508 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 +#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 +#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 +#: utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "memoria agotada" #: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 +#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 +#: ../common/hmac_openssl.c:377 msgid "success" msgstr "éxito" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 +#: ../common/hmac_openssl.c:371 msgid "destination buffer too small" msgstr "el búfer de destino es demasiado pequeño" -#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 msgid "OpenSSL failure" msgstr "falla de openSSL" -#: ../common/exec.c:172 +#: ../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../common/exec.c:215 +#: ../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../common/exec.c:223 +#: ../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../common/exec.c:250 +#: ../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723 +#: commands/copyto.c:654 libpq/be-secure-common.c:59 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 +#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1589 storage/ipc/latch.c:1751 +#: storage/ipc/latch.c:1877 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:867 +#: ../port/path.c:884 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 +#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 #, c-format msgid "out of memory\n" msgstr "memoria agotada\n" @@ -346,39 +370,51 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1314 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:229 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1679 commands/copyto.c:702 commands/extension.c:3445 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1879 -#: storage/file/fd.c:1965 storage/file/fd.c:3461 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../common/file_utils.c:120 ../common/file_utils.c:566 +#: ../common/file_utils.c:570 access/transam/twophase.c:1321 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 +#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 +#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749 +#: commands/copyto.c:700 commands/extension.c:3527 commands/tablespace.c:804 +#: commands/tablespace.c:893 postmaster/pgarch.c:680 +#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173 +#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 +#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 +#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "no se pudo hacer stat al archivo «%s»: %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1561 storage/file/fd.c:2830 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../common/file_utils.c:151 ../common/file_utils.c:281 +#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 +#: commands/tablespace.c:738 postmaster/postmaster.c:1470 +#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 +#: utils/misc/tzparser.c:339 #, c-format msgid "could not open directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2842 +#: ../common/file_utils.c:169 ../common/file_utils.c:315 +#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 #, c-format msgid "could not read directory \"%s\": %m" msgstr "no se pudo leer el directorio «%s»: %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:383 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1709 replication/slot.c:1851 storage/file/fd.c:749 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 +#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559 +#: replication/logical/snapbuild.c:1831 replication/slot.c:936 +#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 +#: utils/time/snapmgr.c:1255 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" @@ -387,90 +423,102 @@ msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" msgid "internal error" msgstr "error interno" -#: ../common/jsonapi.c:1144 +#: ../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "El parser recursivo descendiente no puede usar el lexer incremental." + +#: ../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "El parser incremental requiere el lexer incremental." + +#: ../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON anidado demasiado profundamente, profundidad máxima es 6400." + +#: ../common/jsonapi.c:2127 #, c-format -msgid "Escape sequence \"\\%s\" is invalid." -msgstr "La secuencia de escape «%s» no es válida." +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "La secuencia de escape «\\%.*s» no es válida." -#: ../common/jsonapi.c:1147 +#: ../common/jsonapi.c:2131 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Los caracteres con valor 0x%02x deben ser escapados." -#: ../common/jsonapi.c:1150 +#: ../common/jsonapi.c:2135 #, c-format -msgid "Expected end of input, but found \"%s\"." -msgstr "Se esperaba el fin de la entrada, se encontró «%s»." +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Se esperaba el fin de la entrada, se encontró «%.*s»." -#: ../common/jsonapi.c:1153 +#: ../common/jsonapi.c:2138 #, c-format -msgid "Expected array element or \"]\", but found \"%s\"." -msgstr "Se esperaba un elemento de array o «]», se encontró «%s»." +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Se esperaba un elemento de array o «]», se encontró «%.*s»." -#: ../common/jsonapi.c:1156 +#: ../common/jsonapi.c:2141 #, c-format -msgid "Expected \",\" or \"]\", but found \"%s\"." -msgstr "Se esperaba «,» o «]», se encontró «%s»." +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Se esperaba «,» o «]», se encontró «%.*s»." -#: ../common/jsonapi.c:1159 +#: ../common/jsonapi.c:2144 #, c-format -msgid "Expected \":\", but found \"%s\"." -msgstr "Se esperaba «:», se encontró «%s»." +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Se esperaba «:», se encontró «%.*s»." -#: ../common/jsonapi.c:1162 +#: ../common/jsonapi.c:2147 #, c-format -msgid "Expected JSON value, but found \"%s\"." -msgstr "Se esperaba un valor JSON, se encontró «%s»." +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Se esperaba un valor JSON, se encontró «%.*s»." -#: ../common/jsonapi.c:1165 +#: ../common/jsonapi.c:2150 msgid "The input string ended unexpectedly." msgstr "La cadena de entrada terminó inesperadamente." -#: ../common/jsonapi.c:1167 +#: ../common/jsonapi.c:2152 #, c-format -msgid "Expected string or \"}\", but found \"%s\"." -msgstr "Se esperaba una cadena o «}», se encontró «%s»." +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Se esperaba una cadena o «}», se encontró «%.*s»." -#: ../common/jsonapi.c:1170 +#: ../common/jsonapi.c:2155 #, c-format -msgid "Expected \",\" or \"}\", but found \"%s\"." -msgstr "Se esperaba «,» o «}», se encontró «%s»." +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Se esperaba «,» o «}», se encontró «%.*s»." -#: ../common/jsonapi.c:1173 +#: ../common/jsonapi.c:2158 #, c-format -msgid "Expected string, but found \"%s\"." -msgstr "Se esperaba una cadena, se encontró «%s»." +msgid "Expected string, but found \"%.*s\"." +msgstr "Se esperaba una cadena, se encontró «%.*s»." -#: ../common/jsonapi.c:1176 +#: ../common/jsonapi.c:2161 #, c-format -msgid "Token \"%s\" is invalid." -msgstr "El elemento «%s» no es válido." +msgid "Token \"%.*s\" is invalid." +msgstr "El elemento «%.*s» no es válido." -#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 +#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 no puede ser convertido a text." -#: ../common/jsonapi.c:1181 +#: ../common/jsonapi.c:2166 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "«\\u» debe ser seguido por cuatro dígitos hexadecimales." -#: ../common/jsonapi.c:1184 +#: ../common/jsonapi.c:2169 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Los valores de escape Unicode no se pueden utilizar para valores de código superiores a 007F cuando la codificación no es UTF8." -#: ../common/jsonapi.c:1187 +#: ../common/jsonapi.c:2178 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "El valor de escape Unicode no pudo ser traducido a la codificación del servidor %s." -#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 +#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Un «high-surrogate» Unicode no puede venir después de un «high-surrogate»." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 +#: jsonpath_scan.l:713 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Un «low-surrogate» Unicode debe seguir a un «high-surrogate»." @@ -495,11 +543,168 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "no se pudo inicializar la suma de verificación del manifiesto" + +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "el manifiesto terminó inesperadamente" + +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "no se pudo actualizar la suma de verificación del manifiesto" + +#: ../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "inicio de objeto inesperado" + +#: ../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "fin de objeto inesperado" + +#: ../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "inicio de array inesperado" + +#: ../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "fin de array inesperado" + +#: ../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "se esperaba indicador de versión" + +#: ../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "campo de nivel superior no reconocido" + +#: ../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "campo de archivo inesperado" + +#: ../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "campo de rango de WAL inesperado" + +#: ../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "campo de objeto inesperado" + +#: ../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "escalar inesperado" + +#: ../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "la versión de manifiesto no es un número entero" + +#: ../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "versión de manifiesto inesperada" + +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "el identificador de sistema en el manifiesto no es un número entero" + +#: ../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "ruta de archivo faltante" + +#: ../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "hay ambos ruta de archivo (path name) y ruta codificada (encoded path name)" + +#: ../common/parse_manifest.c:666 +msgid "missing size" +msgstr "tamaño faltante" + +#: ../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "suma de comprobación sin algoritmo" + +#: ../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "no se pudo decodificar el nombre del archivo" + +#: ../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "el tamaño del archivo no es un número entero" + +#: ../common/parse_manifest.c:699 backup/basebackup.c:870 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "algoritmo de suma de comprobación no reconocido: \"%s\"" + +#: ../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "suma de comprobación no válida para el archivo \"%s\": \"%s\"" + +#: ../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "falta el timeline" + +#: ../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "falta el LSN de inicio" + +#: ../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "falta el LSN de término" + +#: ../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "el timeline no es un número entero" + +#: ../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "no se pudo interpretar el LSN de inicio" + +#: ../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "no se pudo interpretar el LSN de término" + +#: ../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "esperado al menos 2 líneas" + +#: ../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "última línea no termina en nueva línea" + +#: ../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "no se pudo finalizar la suma de verificación del manifiesto" + +#: ../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "el manifiesto no tiene suma de comprobación" + +#: ../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "suma de comprobación de manifiesto no válida: \"%s\"" + +#: ../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "discordancia en la suma de comprobación del manifiesto" + +#: ../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "no se pudo analizar el manifiesto de la copia de seguridad: %s" + #: ../common/percentrepl.c:79 ../common/percentrepl.c:85 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2208 utils/misc/guc.c:3118 utils/misc/guc.c:3154 -#: utils/misc/guc.c:3224 utils/misc/guc.c:4547 utils/misc/guc.c:6721 -#: utils/misc/guc.c:6762 +#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 +#: utils/misc/guc.c:3283 utils/misc/guc.c:4712 utils/misc/guc.c:6931 +#: utils/misc/guc.c:6972 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "valor no válido para el parámetro «%s»: «%s»" @@ -510,10 +715,9 @@ msgid "String ends unexpectedly after escape character \"%%\"." msgstr "La cadena termina inesperadamente luego del carácter de escape: «%%»" #: ../common/percentrepl.c:119 ../common/percentrepl.c:125 -#, fuzzy, c-format -#| msgid "String contains unexpected escape sequence \"%c\"." +#, c-format msgid "String contains unexpected placeholder \"%%%c\"." -msgstr "La cadena contiene la secuencia de escape inesperada «%c»." +msgstr "La cadena contiene la secuencia de reemplazo inesperada «%c»." #: ../common/pgfnames.c:74 #, c-format @@ -560,45 +764,45 @@ msgstr "no se pudo re-ejecutar con el token restringido: código de error %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "no se pudo obtener el código de salida del subproceso»: código de error %lu" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1703 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:393 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2121 -#: replication/slot.c:1902 storage/file/fd.c:789 storage/file/fd.c:3275 -#: storage/file/fd.c:3337 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:380 storage/smgr/md.c:439 storage/sync/sync.c:250 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 +#: access/transam/twophase.c:1717 access/transam/xlogarchive.c:119 +#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 +#: postmaster/syslogger.c:1488 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4589 +#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146 +#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 +#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343 +#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 +#: utils/time/snapmgr.c:1591 #, c-format msgid "could not remove file \"%s\": %m" msgstr "no se pudo eliminar el archivo «%s»: %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3267 -#: storage/file/fd.c:3676 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 +#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 +#: storage/file/fd.c:3779 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "no se pudo eliminar el directorio «%s»: %m" -#: ../common/scram-common.c:271 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "no se pudo codificar la sal" -#: ../common/scram-common.c:287 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "no se pudo codificar la llave almacenada" -#: ../common/scram-common.c:304 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "no se pudo codificar la llave del servidor" -#: ../common/stringinfo.c:306 +#: ../common/stringinfo.c:315 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "No se puede agrandar el búfer de cadena que ya tiene %d bytes en %d bytes adicionales." -#: ../common/stringinfo.c:310 +#: ../common/stringinfo.c:319 #, c-format msgid "" "out of memory\n" @@ -614,7 +818,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "no se pudo encontrar el ID de usuario efectivo %ld: %s" -#: ../common/username.c:45 libpq/auth.c:1881 +#: ../common/username.c:45 libpq/auth.c:1888 msgid "user does not exist" msgstr "usuario no existe" @@ -706,22 +910,22 @@ msgstr "Reintentando durante 30 segundos." msgid "You might have antivirus, backup, or similar software interfering with the database system." msgstr "Es posible que tenga antivirus, sistema de respaldos, o software similar interfiriendo con el sistema de bases de datos." -#: ../port/path.c:775 +#: ../port/path.c:852 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "no se pudo obtener el directorio de trabajo actual: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "no se pudo obtener el directorio de trabajo actual: %m\n" #: ../port/strerror.c:72 #, c-format msgid "operating system error %d" msgstr "error %d de sistema operativo" -#: ../port/thread.c:50 ../port/thread.c:86 +#: ../port/user.c:43 ../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "no se pudo buscar el usuario local de ID %d: %s" -#: ../port/thread.c:55 ../port/thread.c:91 +#: ../port/user.c:48 ../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "no existe un usuario local con ID %d" @@ -741,115 +945,104 @@ msgstr "no se pudo obtener el SID del grupo PowerUsers: código de error %lu\n" msgid "could not check access token membership: error code %lu\n" msgstr "no se pudo verificar el token de proceso: código de error %lu\n" -#: access/brin/brin.c:216 +#: access/brin/brin.c:405 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "petición para sumarización BRIN de rango para el índice «%s» página %u no fue registrada" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1035 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 +#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 +#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 +#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 +#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 #, c-format msgid "recovery is in progress" msgstr "la recuperación está en proceso" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1386 access/brin/brin.c:1494 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Las funciones de control de BRIN no pueden ejecutarse durante la recuperación." -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1391 access/brin/brin.c:1499 #, c-format msgid "block number out of range: %lld" msgstr "número de bloque fuera de rango: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1436 access/brin/brin.c:1525 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "«%s» no es un índice BRIN" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1452 access/brin/brin.c:1541 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "no se pudo abrir la tabla padre del índice «%s»" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:3011 access/brin/brin_minmax_multi.c:3148 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 +#: parser/parse_utilcmd.c:2277 #, c-format -msgid "cannot accept a value of type %s" -msgstr "no se puede aceptar un valor de tipo %s" +msgid "index \"%s\" is not valid" +msgstr "el índice «%s» no es válido" -#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178 -#: access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:941 -#: utils/adt/timestamp.c:1518 utils/adt/timestamp.c:2708 -#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2795 -#: utils/adt/timestamp.c:2848 utils/adt/timestamp.c:2887 -#: utils/adt/timestamp.c:3184 utils/adt/timestamp.c:3189 -#: utils/adt/timestamp.c:3194 utils/adt/timestamp.c:3244 -#: utils/adt/timestamp.c:3251 utils/adt/timestamp.c:3258 -#: utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3285 -#: utils/adt/timestamp.c:3292 utils/adt/timestamp.c:3322 -#: utils/adt/timestamp.c:3330 utils/adt/timestamp.c:3374 -#: utils/adt/timestamp.c:3796 utils/adt/timestamp.c:3920 -#: utils/adt/timestamp.c:4440 +#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 +#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 +#: statistics/dependencies.c:661 statistics/dependencies.c:714 +#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 +#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 +#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format -msgid "interval out of range" -msgstr "interval fuera de rango" +msgid "cannot accept a value of type %s" +msgstr "no se puede aceptar un valor de tipo %s" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1442 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 +#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 +#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 +#: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "el tamaño de fila de índice %zu excede el máximo %zu para el índice «%s»" -#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399 +#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389 #, c-format msgid "corrupted BRIN index: inconsistent range map" msgstr "índice BRIN corrompido: mapa de rango inconsistente" -#: access/brin/brin_revmap.c:593 +#: access/brin/brin_revmap.c:583 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "tipo de página 0x%04X inesperado en el índice BRIN «%s» bloque %u" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 +#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "familia de operadores «%s» de método de acceso %s contiene la función %s con número de soporte %d no válido" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 +#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "familia de operadores «%s» de método de acceso %s contiene la función %s con signatura incorrecta para el número de soporte %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 +#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "familia de operadores «%s» de método de acceso %s contiene el operador %s con número de estrategia %d no válido" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 #: access/spgist/spgvalidate.c:237 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "familia de operadores «%s» de método de acceso %s contiene especificación ORDER BY no válida para el operador %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 +#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" @@ -872,38 +1065,38 @@ msgstr "la(s) función/funciones de soporte para los tipos %3$s y %4$s faltan de msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "faltan operadores de la clase de operadores «%s» del método de acceso %s" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 +#: access/gist/gistvalidate.c:273 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "falta la función de soporte %3$d de la clase de operadores «%1$s» del método de acceso %2$s" -#: access/common/attmap.c:122 +#: access/common/attmap.c:121 #, c-format msgid "Returned type %s does not match expected type %s in column %d." msgstr "El tipo retornado %s no coincide con el tipo de registro esperado %s en la columna %d." -#: access/common/attmap.c:150 +#: access/common/attmap.c:149 #, c-format msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "La cantidad de columnas retornadas (%d) no coincide con la cantidad esperada de columnas (%d)." -#: access/common/attmap.c:234 access/common/attmap.c:246 +#: access/common/attmap.c:233 access/common/attmap.c:245 #, c-format msgid "could not convert row type" msgstr "no se pudo convertir el tipo de registro" -#: access/common/attmap.c:235 +#: access/common/attmap.c:234 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "El atributo «%s» de tipo %s no coincide con el atributo correspondiente de tipo %s." -#: access/common/attmap.c:247 +#: access/common/attmap.c:246 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "El atributo «%s» de tipo %s no existe en el tipo %s." -#: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371 +#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "el número de columnas (%d) excede el límite (%d)" @@ -913,124 +1106,110 @@ msgstr "el número de columnas (%d) excede el límite (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "el número de columnas del índice (%d) excede el límite (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:950 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:970 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "fila de índice requiere %zu bytes, tamaño máximo es %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107 +#: tcop/fastpath.c:454 tcop/postgres.c:1956 #, c-format msgid "unsupported format code: %d" msgstr "código de formato no soportado: %d" -#: access/common/reloptions.c:521 access/common/reloptions.c:532 +#: access/common/reloptions.c:519 access/common/reloptions.c:530 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "Los valores aceptables son «on», «off» y «auto»." -#: access/common/reloptions.c:543 +#: access/common/reloptions.c:541 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "Los valores aceptables son «local» y «cascaded»." -#: access/common/reloptions.c:691 +#: access/common/reloptions.c:689 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "el límite de tipos de parámetros de relación definidos por el usuario ha sido excedido" -#: access/common/reloptions.c:1233 +#: access/common/reloptions.c:1231 #, c-format msgid "RESET must not include values for parameters" msgstr "RESET no debe incluir valores de parámetros" -#: access/common/reloptions.c:1265 +#: access/common/reloptions.c:1263 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "espacio de nombre de parámetro «%s» no reconocido" -#: access/common/reloptions.c:1302 commands/variable.c:1167 +#: access/common/reloptions.c:1300 commands/variable.c:1214 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "las tablas declaradas WITH OIDS no están soportadas" -#: access/common/reloptions.c:1470 +#: access/common/reloptions.c:1468 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "parámetro «%s» no reconocido" -#: access/common/reloptions.c:1582 +#: access/common/reloptions.c:1580 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "el parámetro «%s» fue especificado más de una vez" -#: access/common/reloptions.c:1598 +#: access/common/reloptions.c:1596 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "valor no válido para la opción booleana «%s»: «%s»" -#: access/common/reloptions.c:1610 +#: access/common/reloptions.c:1608 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "valor no válido para la opción entera «%s»: «%s»" -#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 +#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "el valor %s está fuera del rango de la opción «%s»" -#: access/common/reloptions.c:1618 +#: access/common/reloptions.c:1616 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Los valores aceptables están entre «%d» y «%d»." -#: access/common/reloptions.c:1630 +#: access/common/reloptions.c:1628 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "valor no válido para la opción de coma flotante «%s»: «%s»" -#: access/common/reloptions.c:1638 +#: access/common/reloptions.c:1636 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Valores aceptables están entre «%f» y «%f»." -#: access/common/reloptions.c:1660 +#: access/common/reloptions.c:1658 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "valor no válido para la opción enum «%s»: %s" -#: access/common/reloptions.c:1991 -#, fuzzy, c-format -#| msgid "cannot truncate only a partitioned table" +#: access/common/reloptions.c:1989 +#, c-format msgid "cannot specify storage parameters for a partitioned table" -msgstr "no se puede truncar ONLY una tabla particionada" +msgstr "no se puede especificar parámetros de almacenamiento para una tabla particionada" -#: access/common/reloptions.c:1992 +#: access/common/reloptions.c:1990 #, c-format -msgid "Specify storage parameters for its leaf partitions, instead." -msgstr "" +msgid "Specify storage parameters for its leaf partitions instead." +msgstr "Especifique parámetros de almacenamiento para sus particiones hijas en su lugar." -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:31 #, c-format msgid "compression method lz4 not supported" msgstr "el método de compresión lz4 no está soportado" -#: access/common/toast_compression.c:34 +#: access/common/toast_compression.c:32 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "Esta funcionalidad requiere que el servidor haya sido construido con soporte lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6953 -#: commands/tablecmds.c:12973 -#, fuzzy, c-format -#| msgid "mismatched array dimensions" -msgid "too many array dimensions" -msgstr "las dimensiones de array no coinciden" - -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1912 -#, c-format -msgid "column \"%s\" cannot be declared SETOF" -msgstr "la columna «%s» no puede ser declarada SETOF" - #: access/gin/ginbulk.c:44 #, c-format msgid "posting list is too long" @@ -1038,20 +1217,20 @@ msgstr "la «posting list» es demasiado larga" #: access/gin/ginbulk.c:45 #, c-format -msgid "Reduce maintenance_work_mem." -msgstr "Reduzca maintenance_work_mem." +msgid "Reduce \"maintenance_work_mem\"." +msgstr "Reduzca «maintenance_work_mem»." -#: access/gin/ginfast.c:1036 +#: access/gin/ginfast.c:1041 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "La lista de pendientes GIN no puede limpiarse durante la recuperación." -#: access/gin/ginfast.c:1043 +#: access/gin/ginfast.c:1048 #, c-format msgid "\"%s\" is not a GIN index" msgstr "«%s» no es un índice GIN" -#: access/gin/ginfast.c:1054 +#: access/gin/ginfast.c:1059 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "no se pueden acceder índices temporales de otras sesiones" @@ -1071,50 +1250,50 @@ msgstr "los índices GIN antiguos no soportan recorridos del índice completo ni msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Para corregir esto, ejecute REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:3996 utils/adt/arrayfuncs.c:6683 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:147 executor/execExpr.c:2200 +#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712 +#: utils/adt/rowtypes.c:974 #, c-format msgid "could not identify a comparison function for type %s" msgstr "no se pudo identificar una función de comparación para el tipo %s" -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 +#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "la familia de operadores «%s» del método de acceso %s contiene el procedimiento de soporte %s registrado entre tipos distintos" -#: access/gin/ginvalidate.c:260 +#: access/gin/ginvalidate.c:258 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "falta la función de soporte %3$d o %4$d de la clase de operadores «%1$s» del método de accesso %2$s" -#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 +#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 #: access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "el número de función de soporte %d no es válido para el método de acceso %s" -#: access/gist/gist.c:759 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "el índice «%s» contiene una tupla interna marcada como no válida" -#: access/gist/gist.c:761 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 #, c-format msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1." msgstr "Esto es causado por una división de página incompleta durante una recuperación antes de actualizar a PostgreSQL 9.1." -#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:809 -#: access/nbtree/nbtpage.c:820 +#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 +#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 +#: access/hash/hashutil.c:237 access/hash/hashutil.c:249 +#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 +#: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Por favor aplíquele REINDEX." -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1196 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "arreglando división incompleta en el índice «%s», bloque %u" @@ -1129,52 +1308,52 @@ msgstr "el método picksplit para la columna %d del índice «%s» falló" msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command." msgstr "El índice no es óptimo. Para optimizarlo, contacte un desarrollador o trate de usar la columna en segunda posición en la orden CREATE INDEX." -#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 -#: access/nbtree/nbtpage.c:806 +#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 +#: access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "índice «%s» contiene páginas vacías no esperadas en el bloque %u" -#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:817 +#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 +#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "el índice «%s» contiene una página corrupta en el bloque %u" -#: access/gist/gistvalidate.c:203 +#: access/gist/gistvalidate.c:202 #, c-format msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s" msgstr "la familia de operadores «%s» del método de acceso %s contiene una especificación ORDER BY no soportada para el operador %s" -#: access/gist/gistvalidate.c:214 +#: access/gist/gistvalidate.c:213 #, c-format msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "la familia de operadores «%s» del método de acceso %s contiene una especificación de familia en ORDER BY incorrecta para el operador %s" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "no se pudo determinar qué ordenamiento usar para el hashing de cadenas" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2023 commands/tablecmds.c:17490 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672 +#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508 +#: commands/indexcmds.c:2021 commands/tablecmds.c:18178 commands/view.c:81 +#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 +#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 +#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Use la cláusula COLLATE para establecer el ordenamiento explícitamente." -#: access/hash/hashinsert.c:86 +#: access/hash/hashinsert.c:84 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "el tamaño de fila de índice %zu excede el máximo para hash %zu" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1011 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Valores mayores a una página del buffer no pueden ser indexados." @@ -1189,17 +1368,17 @@ msgstr "número no válido de bloque de «overflow» %u" msgid "out of overflow pages in hash index \"%s\"" msgstr "se agotaron las páginas de desbordamiento en el índice hash «%s»" -#: access/hash/hashsearch.c:315 +#: access/hash/hashsearch.c:311 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "los índices hash no soportan recorridos del índice completo" -#: access/hash/hashutil.c:263 +#: access/hash/hashutil.c:262 #, c-format msgid "index \"%s\" is not a hash index" msgstr "el índice «%s» no es un índice hash" -#: access/hash/hashutil.c:269 +#: access/hash/hashutil.c:268 #, c-format msgid "index \"%s\" has wrong hash version" msgstr "el índice «%s» tiene una versión de hash incorrecta" @@ -1214,229 +1393,235 @@ msgstr "la familia de operadores «%s» del método de acceso %s no tiene funci msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "faltan operadores entre tipos en la familia de operadores «%s» del método de acceso %s" -#: access/heap/heapam.c:2026 +#: access/heap/heapam.c:2206 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "no se pueden insertar tuplas en un ayudante paralelo" -#: access/heap/heapam.c:2545 +#: access/heap/heapam.c:2725 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "no se pueden eliminar tuplas durante una operación paralela" -#: access/heap/heapam.c:2592 +#: access/heap/heapam.c:2772 #, c-format msgid "attempted to delete invisible tuple" msgstr "se intentó eliminar una tupla invisible" -#: access/heap/heapam.c:3035 access/heap/heapam.c:5902 +#: access/heap/heapam.c:3220 access/heap/heapam.c:6501 access/index/genam.c:818 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "no se pueden actualizar tuplas durante una operación paralela" -#: access/heap/heapam.c:3163 +#: access/heap/heapam.c:3397 #, c-format msgid "attempted to update invisible tuple" msgstr "se intentó actualizar una tupla invisible" -#: access/heap/heapam.c:4550 access/heap/heapam.c:4588 -#: access/heap/heapam.c:4853 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4908 access/heap/heapam.c:4946 +#: access/heap/heapam.c:5211 access/heap/heapam_handler.c:468 #, c-format msgid "could not obtain lock on row in relation \"%s\"" -msgstr "no se pudo bloquear un candado en la fila de la relación «%s»" +msgstr "no se pudo bloquear un “lock” en la fila de la relación «%s»" + +#: access/heap/heapam.c:6314 commands/trigger.c:3340 +#: executor/nodeModifyTable.c:2376 executor/nodeModifyTable.c:2467 +#, c-format +msgid "tuple to be updated was already modified by an operation triggered by the current command" +msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual" -#: access/heap/heapam_handler.c:412 +#: access/heap/heapam_handler.c:413 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "el registro a ser bloqueado ya fue movido a otra partición por un update concurrente" -#: access/heap/hio.c:517 access/heap/rewriteheap.c:659 +#: access/heap/hio.c:535 access/heap/rewriteheap.c:640 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "fila es demasiado grande: tamaño %zu, tamaño máximo %zu" -#: access/heap/rewriteheap.c:919 +#: access/heap/rewriteheap.c:885 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "no se pudo escribir al archivo «%s», se escribió %d de %d: %m" -#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2971 access/transam/xlog.c:3162 -#: access/transam/xlog.c:3938 access/transam/xlog.c:8740 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:518 -#: postmaster/postmaster.c:4554 postmaster/postmaster.c:5557 -#: replication/logical/origin.c:603 replication/slot.c:1770 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/transam/xlog.c:3255 access/transam/xlog.c:3446 +#: access/transam/xlog.c:4283 access/transam/xlog.c:9269 +#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 +#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4114 +#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603 +#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 +#: utils/time/snapmgr.c:1234 #, c-format msgid "could not create file \"%s\": %m" msgstr "no se pudo crear archivo «%s»: %m" -#: access/heap/rewriteheap.c:1138 +#: access/heap/rewriteheap.c:1104 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "no se pudo truncar el archivo «%s» a %u: %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3021 access/transam/xlog.c:3218 -#: access/transam/xlog.c:3950 commands/dbcommands.c:530 -#: postmaster/postmaster.c:4564 postmaster/postmaster.c:4574 +#: access/transam/xlog.c:3305 access/transam/xlog.c:3502 +#: access/transam/xlog.c:4295 commands/dbcommands.c:506 +#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363 #: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1805 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1605 -#: utils/init/miscinit.c:1616 utils/init/miscinit.c:1624 utils/misc/guc.c:4331 -#: utils/misc/guc.c:4362 utils/misc/guc.c:5490 utils/misc/guc.c:5508 -#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788 +#: replication/slot.c:2094 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1655 +#: utils/init/miscinit.c:1666 utils/init/miscinit.c:1674 utils/misc/guc.c:4491 +#: utils/misc/guc.c:4522 utils/misc/guc.c:5675 utils/misc/guc.c:5693 +#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 #, c-format msgid "could not write to file \"%s\": %m" msgstr "no se pudo escribir a archivo «%s»: %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:473 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "haciendo vacuum agresivamente a «%s.%s.%s»" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:478 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "haciendo vacuum a «%s.%s.%s»" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:626 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "se terminó el vacuum de «%s.%s.%s»: recorridos de índice: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:637 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "vacuum agresivo automático para prevenir wraparound de la tabla «%s.%s.%s»: recorridos de índice: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:639 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "vacuum automático para prevenir wraparound de la tabla «%s.%s.%s»: recorridos de índice: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "vacuum agresivo automático de la tabla «%s.%s.%s»: recorridos de índice: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "vacuum automático de la tabla «%s.%s.%s»: recorridos de índice: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "páginas: %u eliminadas, %u quedan, %u recorridas (%.2f%% del total)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "tuplas: %lld eliminadas, %lld permanecen, %lld están muertas pero aún no se pueden quitar\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:666 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "tuplas faltantes: %lld muertas en %u páginas no eliminadas debido a contención del lock de limpieza\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:672 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" -msgstr "" +msgstr "punto de corte de eliminación: %u, que era %d XIDs de antiguo cuando la operación terminó\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "nuevo relfrozenxid: %u, que está %d XIDs más adelante del valor anterior\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:687 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "nuevo relminmxid: %u, que está %d MXIDs más adelante del valor anterior\n" -#: access/heap/vacuumlazy.c:699 -#, fuzzy, c-format -#| msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" +#: access/heap/vacuumlazy.c:690 +#, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" -msgstr "en %u páginas de la tabla (%.2f%% del total) se eliminaron %lld identificadores de elementos muertos\n" +msgstr "congelado: %u páginas de la tabla (%.2f%% del total) tuvieron %lld tuplas congeladas\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:698 msgid "index scan not needed: " msgstr "recorrido de índice no necesario: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:700 msgid "index scan needed: " msgstr "recorrido de índice necesario: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:702 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "en %u páginas de la tabla (%.2f%% del total) se eliminaron %lld identificadores de elementos muertos\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:707 msgid "index scan bypassed: " msgstr "recorrido de índice pasado por alto: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:709 msgid "index scan bypassed by failsafe: " msgstr "recorrido de índice pasado por alto debido a modo failsafe: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u páginas de la tabla (%.2f%% del total) tienen %lld identificadores de elementos muertos\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:726 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "índice «%s»: páginas: %u en total, %u recientemente eliminadas, %u eliminadas hasta ahora, %u reusables\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:795 +#: access/heap/vacuumlazy.c:738 commands/analyze.c:794 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "tiempos de E/S: lectura: %.3f ms, escritura: %.3f ms\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:798 +#: access/heap/vacuumlazy.c:748 commands/analyze.c:797 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "tasa lectura promedio: %.3f MB/s, tasa escritura promedio: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:800 +#: access/heap/vacuumlazy.c:751 commands/analyze.c:799 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "uso de búfers: %lld aciertos, %lld fallos, %lld ensuciados\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:756 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "uso de WAL: %lld registros, %lld imágenes de página completa, %llu bytes\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:804 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:803 #, c-format msgid "system usage: %s" msgstr "uso de sistema: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2170 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "tabla «%s»: se eliminaron %lld identificadores de elementos muertos en %u páginas" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2324 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "pasando por alto el mantenimiento no esencial de la tabla «%s.%s.%s» como mecanismo de seguridad (failsafe) luego de %d recorridos de índice" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2327 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "El relfrozenxid o el relminmxid de la tabla es demasiado antiguo." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2328 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1445,67 +1630,67 @@ msgstr "" "Considere incrementar el parámetro de configuración «maintenance_work_mem» o «autovacuum_work_mem».\n" "Es probable que también deba considerar otras formas para que VACUUM pueda mantener el paso de la asignación de IDs de transacción." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2590 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" -msgstr "«%s»: suspendiendo el truncado debido a una petición de candado en conflicto" +msgstr "«%s»: suspendiendo el truncado debido a una petición de “lock” en conflicto" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2660 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "tabla «%s»: truncadas %u a %u páginas" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:2722 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "tabla «%s»: suspendiendo el truncado debido a una petición de bloqueo en conflicto" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:2841 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "desactivando el comportamiento paralelo de vacuum en «%s» --- no se puede hacer vacuum de tablas temporales en paralelo" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3108 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "recorriendo el bloque %u posición %u de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3111 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "recorriendo el bloque %u de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3115 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "recorriendo la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3123 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "haciendo «vacuum» al bloque %u posición %u de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3126 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "haciendo «vacuum» al bloque %u de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3130 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "mientras se hacía «vacuum» a la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3135 commands/vacuumparallel.c:1112 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "mientras se hacía «vacuum» al índice «%s» de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1118 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "mientras se limpiaba el índice «%s» de la relación «%s.%s»" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3146 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "error mientras se truncaba la relación «%s.%s» a %u bloques" @@ -1520,19 +1705,24 @@ msgstr "el método de acceso «%s» no es de tipo %s" msgid "index access method \"%s\" does not have a handler" msgstr "el método de acceso «%s» no tiene manejador" -#: access/index/genam.c:490 +#: access/index/genam.c:489 #, c-format msgid "transaction aborted during system catalog scan" msgstr "transacción abortada durante recorrido de catálogos de sistema" -#: access/index/indexam.c:142 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2852 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17191 commands/tablecmds.c:18959 +#: access/index/genam.c:657 access/index/indexam.c:82 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "no se puede acceder el índice «%s» mientras está siendo reindexado" + +#: access/index/indexam.c:203 catalog/objectaddress.c:1356 +#: commands/indexcmds.c:2851 commands/tablecmds.c:281 commands/tablecmds.c:305 +#: commands/tablecmds.c:17873 commands/tablecmds.c:19762 #, c-format msgid "\"%s\" is not an index" msgstr "«%s» no es un índice" -#: access/index/indexam.c:979 +#: access/index/indexam.c:1028 #, c-format msgid "operator class %s has no options" msgstr "clase de operadores «%s» no tiene opciones" @@ -1552,38 +1742,38 @@ msgstr "Ya existe la llave %s." msgid "This may be because of a non-immutable index expression." msgstr "Esto puede deberse a una expresión de índice no inmutable." -#: access/nbtree/nbtpage.c:158 access/nbtree/nbtpage.c:607 -#: parser/parse_utilcmd.c:2317 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 +#: parser/parse_utilcmd.c:2323 #, c-format msgid "index \"%s\" is not a btree" msgstr "el índice «%s» no es un btree" -#: access/nbtree/nbtpage.c:165 access/nbtree/nbtpage.c:614 +#: access/nbtree/nbtpage.c:164 access/nbtree/nbtpage.c:618 #, c-format msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d" msgstr "discordancia de versión en índice «%s»: versión de archivo %d, versión de código %d, mínima versión soportada %d" -#: access/nbtree/nbtpage.c:1862 +#: access/nbtree/nbtpage.c:1861 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "el índice «%s» contiene una página interna parcialmente muerta" -#: access/nbtree/nbtpage.c:1864 +#: access/nbtree/nbtpage.c:1863 #, c-format msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Esto puede ser causado por la interrupción de un VACUUM en la versión 9.3 o anteriores, antes de actualizar. Ejecute REINDEX por favor." -#: access/nbtree/nbtutils.c:2663 +#: access/nbtree/nbtutils.c:5108 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "el tamaño de fila de índice %1$zu excede el máximo %3$zu para btree versión %2$u para el índice «%4$s»" -#: access/nbtree/nbtutils.c:2669 +#: access/nbtree/nbtutils.c:5114 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "La tupla de índice hace referencia a la tupla (%u,%u) en la relación «%s»." -#: access/nbtree/nbtutils.c:2673 +#: access/nbtree/nbtutils.c:5118 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1597,12 +1787,18 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "falta una función de soporte para los tipos %3$s y %4$s en la familia de operadores «%1$s» del método de acceso %2$s" +#: access/sequence/sequence.c:75 access/table/table.c:145 +#: optimizer/util/plancat.c:144 +#, c-format +msgid "cannot open relation \"%s\"" +msgstr "no se puede abrir la relación «%s»" + #: access/spgist/spgutils.c:245 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "método «compress» debe estar definido cuando el tipo hoja es distinto del tipo de entrada" -#: access/spgist/spgutils.c:1008 +#: access/spgist/spgutils.c:1028 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "el tamaño de tupla interna SP-GiST %zu excede el máximo %zu" @@ -1617,69 +1813,64 @@ msgstr "el tipo de dato hoja SP-GiST %s no coincide con el tipo declarado %s" msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "falta la función de soporte %3$d para el tipo %4$s de la clase de operadores «%1$s» del método de accesso %2$s" -#: access/table/table.c:145 optimizer/util/plancat.c:145 -#, fuzzy, c-format -#| msgid "cannot change relation \"%s\"" -msgid "cannot open relation \"%s\"" -msgstr "no se puede cambiar la relación «%s»" - -#: access/table/tableam.c:265 +#: access/table/tableam.c:255 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "el tid (%u, %u) no es válido para la relación «%s»" -#: access/table/tableamapi.c:116 +#: access/table/tableamapi.c:109 #, c-format -msgid "%s cannot be empty." -msgstr "%s no puede ser vacío." +msgid "\"%s\" cannot be empty." +msgstr "«%s» no puede ser vacío." -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774 +#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4859 #, c-format -msgid "%s is too long (maximum %d characters)." -msgstr "%s es demasiado largo (máximo %d caracteres)." +msgid "\"%s\" is too long (maximum %d characters)." +msgstr "«%s» es demasiado largo (máximo %d caracteres)." -#: access/table/tableamapi.c:146 +#: access/table/tableamapi.c:139 #, c-format msgid "table access method \"%s\" does not exist" msgstr "no existe el método de acceso de tabla «%s»" -#: access/table/tableamapi.c:151 +#: access/table/tableamapi.c:144 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "No existe el método de acceso de tabla «%s»." -#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152 +#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151 #, c-format msgid "sample percentage must be between 0 and 100" msgstr "el porcentaje de muestreo debe estar entre 0 y 100" -#: access/transam/commit_ts.c:279 +#: access/transam/commit_ts.c:287 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "no se puede obtener el timestamp de compromiso de la transacción %u" -#: access/transam/commit_ts.c:377 +#: access/transam/commit_ts.c:385 #, c-format msgid "could not get commit timestamp data" msgstr "no se pudo obtener datos de compromiso de transacción" -#: access/transam/commit_ts.c:379 +#: access/transam/commit_ts.c:387 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "Asegúrese que el parámetro de configuración «%s» esté definido en el servidor primario." -#: access/transam/commit_ts.c:381 +#: access/transam/commit_ts.c:389 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Asegúrese que el parámetro de configuración «%s» esté definido." -#: access/transam/multixact.c:1023 +#: access/transam/multixact.c:1091 #, c-format -msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" -msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al reciclaje de transacciones en la base de datos «%s»" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\"" +msgstr "la base de datos no está aceptando órdenes que asignen nuevos MultiXactIds para evitar pérdida de datos debido al “wraparound” en la base de datos «%s»" -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1093 access/transam/multixact.c:1100 +#: access/transam/multixact.c:1124 access/transam/multixact.c:1133 +#: access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1688,247 +1879,250 @@ msgstr "" "Ejecute VACUUM de la base completa en esa base de datos.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: access/transam/multixact.c:1030 +#: access/transam/multixact.c:1098 #, c-format -msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" -msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base con OID %u" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u" +msgstr "la base de datos no está aceptando órdenes que asignen nuevos MultiXactIds para evitar pérdida de datos debido al “wraparound” en la base con OID %u" -#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1119 access/transam/multixact.c:2474 #, 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] "base de datos «%s» debe ser limpiada antes de que %u más MultiXactId sea usado" msgstr[1] "base de datos «%s» debe ser limpiada dentro de que %u más MultiXactIds sean usados" -#: access/transam/multixact.c:1060 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1128 access/transam/multixact.c:2483 #, 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" msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactId sea usado" msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactIds sean usados" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1189 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "límite de miembros de multixact alcanzado" -#: access/transam/multixact.c:1122 +#: access/transam/multixact.c:1190 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembro." msgstr[1] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembros." -#: access/transam/multixact.c:1127 +#: access/transam/multixact.c:1195 #, c-format -msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Ejecute un VACUUM de la base completa en la base de datos con OID %u con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos." +msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." +msgstr "Ejecute un VACUUM de la base completa en la base de datos con OID %u con «vacuum_multixact_freeze_min_age» y «vacuum_multixact_freeze_table_age» reducidos." -#: access/transam/multixact.c:1158 +#: access/transam/multixact.c:1226 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %d miembro más de multixact sea usado" msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %d más miembros de multixact sean usados" -#: access/transam/multixact.c:1163 +#: access/transam/multixact.c:1231 #, c-format -msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Ejecute un VACUUM de la base completa en esa base de datos con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos." +msgid "Execute a database-wide VACUUM in that database with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." +msgstr "Ejecute un VACUUM de la base completa en esa base de datos con «vacuum_multixact_freeze_min_age» y «vacuum_multixact_freeze_table_age» reducidos." -#: access/transam/multixact.c:1302 +#: access/transam/multixact.c:1371 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" -msgstr "el MultiXactId %u ya no existe -- aparente problema por reciclaje" +msgstr "el MultiXactId %u ya no existe -- “wraparound” aparente" -#: access/transam/multixact.c:1308 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" -msgstr "el MultiXactId %u no se ha creado aún -- aparente problema por reciclaje" +msgstr "el MultiXactId %u no se ha creado aún -- “wraparound” aparente" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2479 access/transam/multixact.c:2488 #, c-format msgid "" -"To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" +"To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"Para evitar que la base de datos se desactive, ejecute VACUUM en esa base de datos.\n" +"Para evitar fallos de asignación de MultiXactId, ejecute VACUUM en esa base de datos.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2767 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" -msgstr "las protecciones de reciclaje de miembros de multixact están inhabilitadas porque el multixact más antiguo %u en checkpoint no existe en disco" +msgstr "las protecciones de “wraparound” de multixact están inhabilitadas porque el multixact más antiguo %u en checkpoint no existe en disco" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2789 #, c-format msgid "MultiXact member wraparound protections are now enabled" -msgstr "las protecciones de reciclaje de miembros de multixact están habilitadas" +msgstr "las protecciones de “wraparound” de miembros de multixact están habilitadas" -#: access/transam/multixact.c:3027 +#: access/transam/multixact.c:3180 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "multixact más antiguo %u no encontrado, multixact más antiguo es %u, omitiendo el truncado" -#: access/transam/multixact.c:3045 +#: access/transam/multixact.c:3198 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "no se puede truncar hasta el MultiXact %u porque no existe en disco, omitiendo el truncado" -#: access/transam/multixact.c:3359 +#: access/transam/multixact.c:3517 #, c-format msgid "invalid MultiXactId: %u" msgstr "el MultiXactId no es válido: %u" -#: access/transam/parallel.c:729 access/transam/parallel.c:848 +#: access/transam/parallel.c:748 access/transam/parallel.c:867 #, c-format msgid "parallel worker failed to initialize" msgstr "el ayudante paralelo no pudo iniciar" -#: access/transam/parallel.c:730 access/transam/parallel.c:849 +#: access/transam/parallel.c:749 access/transam/parallel.c:868 #, c-format msgid "More details may be available in the server log." msgstr "Puede haber más detalles disponibles en el log del servidor." -#: access/transam/parallel.c:910 +#: access/transam/parallel.c:929 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster terminó durante una transacción paralela" -#: access/transam/parallel.c:1097 +#: access/transam/parallel.c:1116 #, c-format msgid "lost connection to parallel worker" msgstr "se ha perdido la conexión al ayudante paralelo" -#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 +#: access/transam/parallel.c:1172 access/transam/parallel.c:1174 msgid "parallel worker" msgstr "ayudante paralelo" -#: access/transam/parallel.c:1319 +#: access/transam/parallel.c:1344 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "no se pudo mapear el segmento de memoria compartida dinámica" -#: access/transam/parallel.c:1324 +#: access/transam/parallel.c:1349 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "número mágico no válido en segmento de memoria compartida dinámica" -#: access/transam/rmgr.c:84 +#: access/transam/rmgr.c:93 #, c-format msgid "resource manager with ID %d not registered" msgstr "el gestor de recursos con ID %d no está registrado" -#: access/transam/rmgr.c:85 +#: access/transam/rmgr.c:94 #, c-format -msgid "Include the extension module that implements this resource manager in shared_preload_libraries." -msgstr "Incluya el módulo de extensión que implementa este gestor de recursos en shared_preload_libraries." +msgid "Include the extension module that implements this resource manager in \"shared_preload_libraries\"." +msgstr "Incluya el módulo de extensión que implementa este gestor de recursos en «shared_preload_libraries»." -#: access/transam/rmgr.c:101 +#: access/transam/rmgr.c:110 #, c-format msgid "custom resource manager name is invalid" msgstr "el nombre de gestor de recursos personalizado no es válido" -#: access/transam/rmgr.c:102 +#: access/transam/rmgr.c:111 #, c-format msgid "Provide a non-empty name for the custom resource manager." msgstr "Provea un nombre no vacío para el gestor de recursos personalizado." -#: access/transam/rmgr.c:105 +#: access/transam/rmgr.c:114 #, c-format msgid "custom resource manager ID %d is out of range" msgstr "el ID %d de gestor de recursos está fuera de rango" -#: access/transam/rmgr.c:106 +#: access/transam/rmgr.c:115 #, c-format msgid "Provide a custom resource manager ID between %d and %d." msgstr "Provea un ID de gestor de recursos personalizado entre %d y %d." -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:120 access/transam/rmgr.c:125 +#: access/transam/rmgr.c:137 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" msgstr "no se pudo registrar un gestor de recursos personalizado «%s» con ID %d" -#: access/transam/rmgr.c:112 +#: access/transam/rmgr.c:121 #, c-format -msgid "Custom resource manager must be registered while initializing modules in shared_preload_libraries." -msgstr "El gestor de recursos personalizado debe ser registrado en shared_preload_libraries." +msgid "Custom resource manager must be registered while initializing modules in \"shared_preload_libraries\"." +msgstr "El gestor de recursos personalizado debe ser registrado en «shared_preload_libraries» al inicializar módulos." -#: access/transam/rmgr.c:117 +#: access/transam/rmgr.c:126 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." msgstr "El gestor de recursos «%s» ya está registrado con el mismo ID." -#: access/transam/rmgr.c:129 +#: access/transam/rmgr.c:138 #, c-format msgid "Existing resource manager with ID %d has the same name." msgstr "El gestor de recursos con ID %d tiene el mismo nombre." -#: access/transam/rmgr.c:135 +#: access/transam/rmgr.c:144 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" msgstr "se registró el gestor de recursos «%s» con ID %d" -#: access/transam/slru.c:714 +#: access/transam/slru.c:361 +#, c-format +msgid "\"%s\" must be a multiple of %d" +msgstr "«%s» debe ser múltiple de %d" + +#: access/transam/slru.c:830 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "el archivo «%s» no existe, leyendo como ceros" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:1059 access/transam/slru.c:1065 +#: access/transam/slru.c:1073 access/transam/slru.c:1078 +#: access/transam/slru.c:1085 access/transam/slru.c:1090 +#: access/transam/slru.c:1097 access/transam/slru.c:1104 #, c-format msgid "could not access status of transaction %u" msgstr "no se pudo encontrar el estado de la transacción %u" -#: access/transam/slru.c:947 +#: access/transam/slru.c:1060 #, c-format msgid "Could not open file \"%s\": %m." msgstr "No se pudo abrir el archivo «%s»: %m." -#: access/transam/slru.c:953 +#: access/transam/slru.c:1066 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "No se pudo posicionar (seek) en el archivo «%s» a la posición %d: %m." -#: access/transam/slru.c:961 +#: access/transam/slru.c:1074 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "No se pudo leer desde el archivo «%s» en la posición %d: %m." -#: access/transam/slru.c:966 +#: access/transam/slru.c:1079 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "No se pudo leer desde el archivo «%s» en la posición %d: se leyeron muy pocos bytes." -#: access/transam/slru.c:973 +#: access/transam/slru.c:1086 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "No se pudo escribir al archivo «%s» en la posición %d: %m." -#: access/transam/slru.c:978 +#: access/transam/slru.c:1091 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "No se pudo escribir al archivo «%s» en la posición %d: se escribieron muy pocos bytes." -#: access/transam/slru.c:985 +#: access/transam/slru.c:1098 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "No se pudo sincronizar (fsync) archivo «%s»: %m." -#: access/transam/slru.c:992 +#: access/transam/slru.c:1105 #, c-format msgid "Could not close file \"%s\": %m." msgstr "No se pudo cerrar el archivo «%s»: %m." -#: access/transam/slru.c:1253 +#: access/transam/slru.c:1431 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" -msgstr "no se pudo truncar el directorio «%s»: aparente problema por reciclaje de transacciones" +msgstr "no se pudo truncar el directorio «%s»: “wraparound” aparente" #: access/transam/timeline.c:163 access/transam/timeline.c:168 #, c-format @@ -1970,773 +2164,824 @@ msgstr "IDs de timeline deben ser menores que el ID de timeline del hijo." msgid "requested timeline %u is not in this server's history" msgstr "el timeline %u solicitado no está en la historia de este servidor" -#: access/transam/twophase.c:385 +#: access/transam/twophase.c:368 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "identificador de transacción «%s» es demasiado largo" -#: access/transam/twophase.c:392 +#: access/transam/twophase.c:375 #, c-format msgid "prepared transactions are disabled" msgstr "las transacciones preparadas están deshabilitadas" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:376 #, c-format -msgid "Set max_prepared_transactions to a nonzero value." -msgstr "Defina max_prepared_transactions a un valor distinto de cero." +msgid "Set \"max_prepared_transactions\" to a nonzero value." +msgstr "Defina «max_prepared_transactions» a un valor distinto de cero." -#: access/transam/twophase.c:412 +#: access/transam/twophase.c:395 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "identificador de transacción «%s» ya está siendo utilizado" -#: access/transam/twophase.c:421 access/transam/twophase.c:2484 +#: access/transam/twophase.c:404 access/transam/twophase.c:2531 #, c-format msgid "maximum number of prepared transactions reached" msgstr "se alcanzó el número máximo de transacciones preparadas" -#: access/transam/twophase.c:422 access/transam/twophase.c:2485 +#: access/transam/twophase.c:405 access/transam/twophase.c:2532 #, c-format -msgid "Increase max_prepared_transactions (currently %d)." -msgstr "Incremente max_prepared_transactions (actualmente es %d)." +msgid "Increase \"max_prepared_transactions\" (currently %d)." +msgstr "Incremente «max_prepared_transactions» (actualmente es %d)." -#: access/transam/twophase.c:598 +#: access/transam/twophase.c:580 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "transacción preparada con identificador «%s» está ocupada" -#: access/transam/twophase.c:604 +#: access/transam/twophase.c:586 #, c-format msgid "permission denied to finish prepared transaction" msgstr "se ha denegado el permiso para finalizar la transacción preparada" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:587 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Debe ser superusuario o el usuario que preparó la transacción." -#: access/transam/twophase.c:616 +#: access/transam/twophase.c:598 #, c-format msgid "prepared transaction belongs to another database" msgstr "la transacción preparada pertenece a otra base de datos" -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:599 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "Conéctese a la base de datos donde la transacción fue preparada para terminarla." -#: access/transam/twophase.c:632 +#: access/transam/twophase.c:614 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "transacción preparada con identificador «%s» no existe" -#: access/transam/twophase.c:1167 +#: access/transam/twophase.c:1174 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "el largo máximo del archivo de estado de dos fases fue excedido" -#: access/transam/twophase.c:1322 +#: access/transam/twophase.c:1329 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" msgstr[0] "tamaño incorrecto de archivo «%s»: %lld byte" msgstr[1] "tamaño incorrecto de archivo «%s»: %lld bytes" -#: access/transam/twophase.c:1331 +#: access/transam/twophase.c:1338 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "alineamiento incorrecto del offset del CRC para el archivo «%s»" -#: access/transam/twophase.c:1349 +#: access/transam/twophase.c:1356 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "no se pudo leer el archivo «%s»: leídos %d de %lld" -#: access/transam/twophase.c:1364 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "número mágico no válido almacenado en archivo «%s»" -#: access/transam/twophase.c:1370 +#: access/transam/twophase.c:1377 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "tamaño no válido en archivo «%s»" -#: access/transam/twophase.c:1382 +#: access/transam/twophase.c:1389 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "la suma de verificación calculada no coincide con el valor almacenado en el archivo «%s»" -#: access/transam/twophase.c:1412 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:565 +#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211 +#: replication/walsender.c:836 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Falló mientras se emplazaba un procesador de lectura de WAL." -#: access/transam/twophase.c:1422 +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "no se pudo leer el archivo de estado de dos fases desde WAL en %X/%X: %s" -#: access/transam/twophase.c:1427 +#: access/transam/twophase.c:1434 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "no se pudo leer el archivo de estado de dos fases desde WAL en %X/%X" -#: access/transam/twophase.c:1435 +#: access/transam/twophase.c:1442 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "los datos de estado de dos fases esperados no están presentes en WAL en %X/%X" -#: access/transam/twophase.c:1731 +#: access/transam/twophase.c:1745 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "no se pudo recrear archivo «%s»: %m" -#: access/transam/twophase.c:1858 +#: access/transam/twophase.c:1872 #, 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 archivo de estado de dos fases fue escrito para transacción de larga duración" msgstr[1] "%u archivos de estado de dos fases fueron escritos para transacciones de larga duración" -#: access/transam/twophase.c:2092 +#: access/transam/twophase.c:2107 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "recuperando transacción preparada %u desde memoria compartida" -#: access/transam/twophase.c:2185 +#: access/transam/twophase.c:2200 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "eliminando archivo obsoleto de estado de dos fases para transacción %u" -#: access/transam/twophase.c:2192 +#: access/transam/twophase.c:2207 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "eliminando de memoria estado de dos fases obsoleto para transacción %u" -#: access/transam/twophase.c:2205 +#: access/transam/twophase.c:2220 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "eliminando archivo futuro de estado de dos fases para transacción %u" -#: access/transam/twophase.c:2212 +#: access/transam/twophase.c:2227 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "eliminando estado de dos fases futuro de memoria para transacción %u" -#: access/transam/twophase.c:2237 +#: access/transam/twophase.c:2252 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "archivo de estado de dos fases corrupto para transacción %u" -#: access/transam/twophase.c:2242 +#: access/transam/twophase.c:2257 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "estado de dos fases en memoria corrupto para transacción %u" -#: access/transam/varsup.c:129 +#: access/transam/twophase.c:2514 #, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\"" -msgstr "la base de datos no está aceptando órdenes para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base de datos «%s»" +msgid "could not recover two-phase state file for transaction %u" +msgstr "no se pudo recuperar el archivo de estado de dos fases para la transacción %u" -#: access/transam/varsup.c:131 access/transam/varsup.c:138 +#: access/transam/twophase.c:2516 #, c-format -msgid "" -"Stop the postmaster and vacuum that database in single-user mode.\n" -"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." -msgstr "" -"Detenga el postmaster y ejecute VACUUM de la base completa en esa base de datos.\n" -"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." +msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." +msgstr "El archivo de estado en dos fases ha sido encontrado en el registro de WAL %X/%X, pero esta transacción ya ha sido restaurada desde disco." + +#: access/transam/twophase.c:2524 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 +#, c-format +msgid "could not access file \"%s\": %m" +msgstr "no se pudo acceder al archivo «%s»: %m" + +#: access/transam/varsup.c:156 +#, c-format +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"" +msgstr "la base de datos no está aceptando órdenes que asignen nuevos IDs de transacción para evitar pérdida de datos debido al “wraparound” en la base de datos «%s»" -#: access/transam/varsup.c:136 +#: access/transam/varsup.c:163 #, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database with OID %u" -msgstr "la base de datos no está aceptando órdenes para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base con OID %u" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u" +msgstr "la base de datos no está aceptando órdenes que generen nuevos IDs de transacción para evitar pérdida de datos debido al “wraparound” en la base con OID %u" -#: access/transam/varsup.c:148 access/transam/varsup.c:463 +#: access/transam/varsup.c:175 access/transam/varsup.c:490 #, c-format msgid "database \"%s\" must be vacuumed within %u transactions" msgstr "base de datos «%s» debe ser limpiada dentro de %u transacciones" -#: access/transam/varsup.c:155 access/transam/varsup.c:470 +#: access/transam/varsup.c:178 +#, c-format +msgid "" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "" +"Para evitar fallas de asignación de IDs de transacción, ejecute VACUUM en esa base de datos.\n" +"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." + +#: access/transam/varsup.c:182 access/transam/varsup.c:497 #, c-format msgid "database with OID %u must be vacuumed within %u transactions" msgstr "base de datos con OID %u debe ser limpiada dentro de %u transacciones" -#: access/transam/xact.c:1102 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 +#: access/transam/varsup.c:500 +#, c-format +msgid "" +"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "" +"Para evitar que la base de datos se desactive, ejecute VACUUM en esa base de datos.\n" +"Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." + +#: access/transam/xact.c:649 +#, c-format +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "no se puede asignar IDs de transacción durante una operación paralela" + +#: access/transam/xact.c:840 +#, c-format +msgid "cannot modify data in a parallel worker" +msgstr "no se pueden modificar datos en un proceso ayudante paralelo" + +#: access/transam/xact.c:1115 +#, c-format +msgid "cannot start commands during a parallel operation" +msgstr "no se puede iniciar órdenes durante una operación paralela" + +#: access/transam/xact.c:1123 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "no se pueden tener más de 2^32-2 órdenes en una transacción" -#: access/transam/xact.c:1643 +#: access/transam/xact.c:1664 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "se superó el número máximo de subtransacciones comprometidas (%d)" -#: access/transam/xact.c:2513 +#: access/transam/xact.c:2561 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "no se puede hacer PREPARE de una transacción que ha operado en objetos temporales" -#: access/transam/xact.c:2523 +#: access/transam/xact.c:2571 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "no se puede hacer PREPARE de una transacción que ha exportado snapshots" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3593 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s no puede ser ejecutado dentro de un bloque de transacción" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3603 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s no puede ser ejecutado dentro de una subtransacción" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 -#, fuzzy, c-format -#| msgid "%s cannot be executed from a function" +#: access/transam/xact.c:3613 +#, c-format msgid "%s cannot be executed within a pipeline" -msgstr "%s no puede ser ejecutado desde una función" +msgstr "%s no puede ser ejecutado en un “pipeline”" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3519 +#: access/transam/xact.c:3623 #, c-format msgid "%s cannot be executed from a function" msgstr "%s no puede ser ejecutado desde una función" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3590 access/transam/xact.c:3915 -#: access/transam/xact.c:3994 access/transam/xact.c:4117 -#: access/transam/xact.c:4268 access/transam/xact.c:4337 -#: access/transam/xact.c:4448 +#: access/transam/xact.c:3694 access/transam/xact.c:4019 +#: access/transam/xact.c:4098 access/transam/xact.c:4221 +#: access/transam/xact.c:4372 access/transam/xact.c:4441 +#: access/transam/xact.c:4552 #, c-format msgid "%s can only be used in transaction blocks" msgstr "la orden %s sólo puede ser usada en bloques de transacción" -#: access/transam/xact.c:3801 +#: access/transam/xact.c:3905 #, c-format msgid "there is already a transaction in progress" msgstr "ya hay una transacción en curso" -#: access/transam/xact.c:3920 access/transam/xact.c:3999 -#: access/transam/xact.c:4122 +#: access/transam/xact.c:4024 access/transam/xact.c:4103 +#: access/transam/xact.c:4226 #, c-format msgid "there is no transaction in progress" msgstr "no hay una transacción en curso" -#: access/transam/xact.c:4010 +#: access/transam/xact.c:4114 #, c-format msgid "cannot commit during a parallel operation" msgstr "no se puede comprometer una transacción durante una operación paralela" -#: access/transam/xact.c:4133 +#: access/transam/xact.c:4237 #, c-format msgid "cannot abort during a parallel operation" msgstr "no se puede abortar durante una operación paralela" -#: access/transam/xact.c:4232 +#: access/transam/xact.c:4336 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "no se pueden definir savepoints durante una operación paralela" -#: access/transam/xact.c:4319 +#: access/transam/xact.c:4423 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "no se pueden liberar savepoints durante una operación paralela" -#: access/transam/xact.c:4329 access/transam/xact.c:4380 -#: access/transam/xact.c:4440 access/transam/xact.c:4489 +#: access/transam/xact.c:4433 access/transam/xact.c:4484 +#: access/transam/xact.c:4544 access/transam/xact.c:4593 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "no existe el «savepoint» «%s»" -#: access/transam/xact.c:4386 access/transam/xact.c:4495 +#: access/transam/xact.c:4490 access/transam/xact.c:4599 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "el «savepoint» «%s» no existe dentro del nivel de savepoint actual" -#: access/transam/xact.c:4428 +#: access/transam/xact.c:4532 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "no se puede hacer rollback a un savepoint durante una operación paralela" -#: access/transam/xact.c:4556 -#, c-format -msgid "cannot start subtransactions during a parallel operation" -msgstr "no se pueden iniciar subtransacciones durante una operación paralela" - -#: access/transam/xact.c:4624 -#, c-format -msgid "cannot commit subtransactions during a parallel operation" -msgstr "no se pueden comprometer subtransacciones durante una operación paralela" - -#: access/transam/xact.c:5270 +#: access/transam/xact.c:5376 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "no se pueden tener más de 2^32-1 subtransacciones en una transacción" -#: access/transam/xlog.c:1466 +#: access/transam/xlog.c:1542 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "petición para sincronizar (flush) más allá del final del WAL generado; petición %X/%X, posición actual %X/%X" +#: access/transam/xlog.c:1769 +#, c-format +msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X" +msgstr "no se puede ler más allá del final del WAL generado; petición %X/%X, posición actual %X/%X" + +#: access/transam/xlog.c:2210 access/transam/xlog.c:4501 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB." + #: access/transam/xlog.c:2228 #, c-format -msgid "could not write to log file %s at offset %u, length %zu: %m" -msgstr "no se pudo escribir archivo de registro %s en la posición %u, largo %zu: %m" +msgid "\"%s\" must be set to -1 during binary upgrade mode." +msgstr "«%s» debe ser establecido a -1 durante el modo de actualización binaria." + +#: access/transam/xlog.c:2477 +#, c-format +msgid "could not write to log file \"%s\" at offset %u, length %zu: %m" +msgstr "no se pudo escribir archivo de registro «%s» en la posición %u, largo %zu: %m" -#: access/transam/xlog.c:3455 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:3739 access/transam/xlogutils.c:831 +#: replication/walsender.c:3045 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "el segmento de WAL solicitado %s ya ha sido eliminado" -#: access/transam/xlog.c:3739 +#: access/transam/xlog.c:4061 #, c-format msgid "could not rename file \"%s\": %m" msgstr "no se pudo renombrar el archivo «%s»: %m" -#: access/transam/xlog.c:3781 access/transam/xlog.c:3791 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4115 +#: access/transam/xlog.c:4136 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "no existe el directorio WAL «%s»" -#: access/transam/xlog.c:3797 +#: access/transam/xlog.c:4121 access/transam/xlog.c:4142 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "creando el directorio WAL faltante «%s»" -#: access/transam/xlog.c:3800 commands/dbcommands.c:3095 +#: access/transam/xlog.c:4125 access/transam/xlog.c:4145 +#: commands/dbcommands.c:3262 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "no se pudo crear el directorio faltante «%s»: %m" -#: access/transam/xlog.c:3867 +#: access/transam/xlog.c:4212 #, c-format msgid "could not generate secret authorization token" msgstr "no se pudo generar un token de autorización secreto" -#: access/transam/xlog.c:4017 access/transam/xlog.c:4026 -#: access/transam/xlog.c:4050 access/transam/xlog.c:4057 -#: access/transam/xlog.c:4064 access/transam/xlog.c:4069 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4097 -#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 -#: access/transam/xlog.c:4120 access/transam/xlog.c:4127 -#: utils/init/miscinit.c:1762 +#: access/transam/xlog.c:4363 access/transam/xlog.c:4373 +#: access/transam/xlog.c:4399 access/transam/xlog.c:4407 +#: access/transam/xlog.c:4415 access/transam/xlog.c:4421 +#: access/transam/xlog.c:4429 access/transam/xlog.c:4437 +#: access/transam/xlog.c:4445 access/transam/xlog.c:4453 +#: access/transam/xlog.c:4461 access/transam/xlog.c:4469 +#: access/transam/xlog.c:4479 access/transam/xlog.c:4487 +#: utils/init/miscinit.c:1812 #, c-format msgid "database files are incompatible with server" msgstr "los archivos de base de datos son incompatibles con el servidor" -#: access/transam/xlog.c:4018 +#: access/transam/xlog.c:4364 #, 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 "Los archivos de base de datos fueron inicializados con PG_CONTROL_VERSION %d (0x%08x), pero el servidor fue compilado con PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4022 +#: access/transam/xlog.c:4368 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Este puede ser un problema de discordancia en el orden de bytes. Parece que necesitará ejecutar initdb." -#: access/transam/xlog.c:4027 +#: access/transam/xlog.c:4374 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Los archivos de base de datos fueron inicializados con PG_CONTROL_VERSION %d, pero el servidor fue compilado con PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4030 access/transam/xlog.c:4054 -#: access/transam/xlog.c:4061 access/transam/xlog.c:4066 +#: access/transam/xlog.c:4377 access/transam/xlog.c:4403 +#: access/transam/xlog.c:4411 access/transam/xlog.c:4417 #, c-format msgid "It looks like you need to initdb." msgstr "Parece que necesita ejecutar initdb." -#: access/transam/xlog.c:4041 +#: access/transam/xlog.c:4389 #, c-format msgid "incorrect checksum in control file" msgstr "la suma de verificación es incorrecta en el archivo de control" -#: access/transam/xlog.c:4051 +#: access/transam/xlog.c:4400 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Los archivos de base de datos fueron inicializados con CATALOG_VERSION_NO %d, pero el servidor fue compilado con CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4058 +#: access/transam/xlog.c:4408 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Los archivos de la base de datos fueron inicializados con MAXALIGN %d, pero el servidor fue compilado con MAXALIGN %d." -#: access/transam/xlog.c:4065 +#: access/transam/xlog.c:4416 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Los archivos de la base de datos parecen usar un formato de número de coma flotante distinto al del ejecutable del servidor." -#: access/transam/xlog.c:4070 +#: access/transam/xlog.c:4422 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Los archivos de base de datos fueron inicializados con BLCKSZ %d, pero el servidor fue compilado con BLCKSZ %d." -#: access/transam/xlog.c:4073 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4094 -#: access/transam/xlog.c:4101 access/transam/xlog.c:4108 -#: access/transam/xlog.c:4115 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4425 access/transam/xlog.c:4433 +#: access/transam/xlog.c:4441 access/transam/xlog.c:4449 +#: access/transam/xlog.c:4457 access/transam/xlog.c:4465 +#: access/transam/xlog.c:4473 access/transam/xlog.c:4482 +#: access/transam/xlog.c:4490 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Parece que necesita recompilar o ejecutar initdb." -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4430 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Los archivos de la base de datos fueron inicializados con RELSEG_SIZE %d, pero el servidor fue compilado con RELSEG_SIZE %d." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4438 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Los archivos de base de datos fueron inicializados con XLOG_BLCKSZ %d, pero el servidor fue compilado con XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4446 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Los archivos de la base de datos fueron inicializados con NAMEDATALEN %d, pero el servidor fue compilado con NAMEDATALEN %d." -#: access/transam/xlog.c:4098 +#: access/transam/xlog.c:4454 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Los archivos de la base de datos fueron inicializados con INDEX_MAX_KEYS %d, pero el servidor fue compilado con INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4105 +#: access/transam/xlog.c:4462 #, 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 "Los archivos de la base de datos fueron inicializados con TOAST_MAX_CHUNK_SIZE %d, pero el servidor fue compilado con TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4112 +#: access/transam/xlog.c:4470 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Los archivos de base de datos fueron inicializados con LOBLKSIZE %d, pero el servidor fue compilado con LOBLKSIZE %d." -#: access/transam/xlog.c:4121 +#: access/transam/xlog.c:4480 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Los archivos de base de datos fueron inicializados sin USE_FLOAT8_BYVAL, pero el servidor fue compilado con USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4128 +#: access/transam/xlog.c:4488 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Los archivos de base de datos fueron inicializados con USE_FLOAT8_BYVAL, pero el servidor fue compilado sin USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4137 +#: access/transam/xlog.c:4497 #, 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] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d byte" -msgstr[1] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d bytes" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "tamaño de segmento de WAL no válido (%d byte) en archivo de control" +msgstr[1] "tamaño de segmento de WAL no válido (%d bytes) en archivo de control" -#: access/transam/xlog.c:4149 +#: access/transam/xlog.c:4510 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "«min_wal_size» debe ser al menos el doble de «wal_segment_size»" -#: access/transam/xlog.c:4153 +#: access/transam/xlog.c:4514 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "«max_wal_size» debe ser al menos el doble de «wal_segment_size»" -#: access/transam/xlog.c:4308 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: access/transam/xlog.c:4662 catalog/namespace.c:4696 +#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 +#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247 #, c-format msgid "List syntax is invalid." msgstr "La sintaxis de lista no es válida." -#: access/transam/xlog.c:4354 commands/user.c:2552 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: access/transam/xlog.c:4708 commands/user.c:2545 commands/variable.c:173 +#: tcop/postgres.c:3731 utils/error/elog.c:2273 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Palabra clave no reconocida: «%s»." -#: access/transam/xlog.c:4768 +#: access/transam/xlog.c:5129 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "no se pudo escribir el archivo WAL de boostrap: %m" -#: access/transam/xlog.c:4776 +#: access/transam/xlog.c:5137 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "no se pudo sincronizar (fsync) el archivo de WAL de bootstrap: %m" -#: access/transam/xlog.c:4782 +#: access/transam/xlog.c:5143 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "no se pudo cerrar el archivo WAL de bootstrap: %m" -#: access/transam/xlog.c:4999 +#: access/transam/xlog.c:5368 #, c-format -msgid "WAL was generated with wal_level=minimal, cannot continue recovering" -msgstr "el WAL fue generado con wal_level=minimal, no se puede continuar con la recuperación" +msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering" +msgstr "el WAL fue generado con «wal_level=minimal», no se puede continuar con la recuperación" -#: access/transam/xlog.c:5000 +#: access/transam/xlog.c:5369 #, c-format -msgid "This happens if you temporarily set wal_level=minimal on the server." -msgstr "Esto sucede si temporalmente define wal_level=minimal en el servidor." +msgid "This happens if you temporarily set \"wal_level=minimal\" on the server." +msgstr "Esto sucede si temporalmente define «wal_level=minimal» en el servidor." -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5370 #, c-format -msgid "Use a backup taken after setting wal_level to higher than minimal." -msgstr "Utilice un respaldo tomado después de establecer wal_level a un valor superior a minimal." +msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." +msgstr "Utilice un respaldo tomado después de establecer «wal_level» a un valor superior a «minimal»." -#: access/transam/xlog.c:5065 +#: access/transam/xlog.c:5435 #, c-format msgid "control file contains invalid checkpoint location" -msgstr "el archivo de control contiene una ubicación no válida de punto de control" +msgstr "el archivo de control contiene una ubicación no válida de checkpoint" -#: access/transam/xlog.c:5076 +#: access/transam/xlog.c:5446 #, c-format msgid "database system was shut down at %s" msgstr "el sistema de bases de datos fue apagado en %s" -#: access/transam/xlog.c:5082 +#: access/transam/xlog.c:5452 #, c-format msgid "database system was shut down in recovery at %s" msgstr "el sistema de bases de datos fue apagado durante la recuperación en %s" -#: access/transam/xlog.c:5088 +#: access/transam/xlog.c:5458 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "el apagado del sistema de datos fue interrumpido; última vez registrada en funcionamiento en %s" -#: access/transam/xlog.c:5094 +#: access/transam/xlog.c:5464 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "el sistema de bases de datos fue interrumpido durante la recuperación en %s" -#: access/transam/xlog.c:5096 +#: access/transam/xlog.c:5466 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Esto probablemente significa que algunos datos están corruptos y tendrá que usar el respaldo más reciente para la recuperación." -#: access/transam/xlog.c:5102 +#: access/transam/xlog.c:5472 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "el sistema de bases de datos fue interrumpido durante la recuperación en el instante de registro %s" -#: access/transam/xlog.c:5104 +#: access/transam/xlog.c:5474 #, 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 esto ha ocurrido más de una vez, algunos datos podrían estar corruptos y podría ser necesario escoger un punto de recuperación anterior." -#: access/transam/xlog.c:5110 +#: access/transam/xlog.c:5480 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "el sistema de bases de datos fue interrumpido; última vez en funcionamiento en %s" -#: access/transam/xlog.c:5116 +#: access/transam/xlog.c:5487 #, c-format msgid "control file contains invalid database cluster state" msgstr "el archivo de control contiene un estado no válido del clúster" -#: access/transam/xlog.c:5500 +#: access/transam/xlog.c:5875 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL termina antes del fin del respaldo en línea" -#: access/transam/xlog.c:5501 +#: access/transam/xlog.c:5876 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Todo el WAL generado durante el respaldo en línea debe estar disponible durante la recuperación." -#: access/transam/xlog.c:5504 +#: access/transam/xlog.c:5880 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL termina antes del punto de recuperación consistente" -#: access/transam/xlog.c:5550 +#: access/transam/xlog.c:5926 #, c-format msgid "selected new timeline ID: %u" msgstr "seleccionado nuevo ID de timeline: %u" -#: access/transam/xlog.c:5583 +#: access/transam/xlog.c:5959 #, c-format msgid "archive recovery complete" msgstr "recuperación completa" -#: access/transam/xlog.c:6185 +#: access/transam/xlog.c:6612 #, c-format msgid "shutting down" msgstr "apagando" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6224 +#: access/transam/xlog.c:6651 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "empezando restartpoint:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6236 +#: access/transam/xlog.c:6663 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "empezando checkpoint:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6301 +#: access/transam/xlog.c:6728 #, c-format msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "" +msgstr "restartpoint completo: escritos %d búfers (%.1f%%); %d archivos WAL añadidos, %d eliminados, %d reciclados; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; archivos sincronizados=%d, más largo=%ld.%03d s, promedio=%ld.%03d s; distancia=%d kB, estimación=%d kB; lsn=%X/%X, lsn de redo=%X/%X" -#: access/transam/xlog.c:6324 +#: access/transam/xlog.c:6751 #, c-format msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "" +msgstr "checkpoint completo: escritos %d búfers (%.1f%%); %d archivos WAL añadidos, %d eliminados, %d reciclados; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; archivos sincronizados=%d, más largo=%ld.%03d s, promedio=%ld.%03d s; distancia=%d kB, estimación=%d kB; lsn=%X/%X, lsn de redo=%X/%X" -#: access/transam/xlog.c:6762 +#: access/transam/xlog.c:7233 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "hay actividad de WAL mientras el sistema se está apagando" -#: access/transam/xlog.c:7323 +#: access/transam/xlog.c:7818 #, c-format msgid "recovery restart point at %X/%X" msgstr "restartpoint de recuperación en %X/%X" -#: access/transam/xlog.c:7325 +#: access/transam/xlog.c:7820 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Última transacción completada al tiempo de registro %s." -#: access/transam/xlog.c:7573 +#: access/transam/xlog.c:8082 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "punto de recuperación «%s» creado en %X/%X" -#: access/transam/xlog.c:7780 +#: access/transam/xlog.c:8289 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "el respaldo en línea fue cancelado, la recuperación no puede continuar" -#: access/transam/xlog.c:7837 +#: access/transam/xlog.c:8347 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint de detención" -#: access/transam/xlog.c:7895 +#: access/transam/xlog.c:8405 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint «online»" -#: access/transam/xlog.c:7924 +#: access/transam/xlog.c:8434 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de fin-de-recuperación" -#: access/transam/xlog.c:8191 +#: access/transam/xlog.c:8705 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "no se pudo sincronizar (fsync write-through) el archivo «%s»: %m" -#: access/transam/xlog.c:8196 +#: access/transam/xlog.c:8710 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "no se pudo sincronizar (fdatasync) archivo «%s»: %m" -#: access/transam/xlog.c:8281 access/transam/xlog.c:8604 +#: access/transam/xlog.c:8797 access/transam/xlog.c:9133 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "el nivel de WAL no es suficiente para hacer un respaldo en línea" -#: access/transam/xlog.c:8282 access/transam/xlog.c:8605 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8798 access/transam/xlogfuncs.c:248 #, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." -msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor." +msgid "\"wal_level\" must be set to \"replica\" or \"logical\" at server start." +msgstr "«wal_level» debe ser definido a «replica» o «logical» al inicio del servidor." -#: access/transam/xlog.c:8287 +#: access/transam/xlog.c:8803 #, c-format msgid "backup label too long (max %d bytes)" msgstr "la etiqueta de respaldo es demasiado larga (máximo %d bytes)" -#: access/transam/xlog.c:8408 +#: access/transam/xlog.c:8924 #, c-format -msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" -msgstr "el WAL generado con full_page_writes=off fue restaurado desde el último restartpoint" +msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint" +msgstr "el WAL generado con «full_page_writes=off» fue restaurado desde el último restartpoint" -#: access/transam/xlog.c:8410 access/transam/xlog.c:8693 +#: access/transam/xlog.c:8926 access/transam/xlog.c:9222 #, 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 primary, and then try an online backup again." -msgstr "Esto significa que el respaldo que estaba siendo tomado en el standby está corrupto y no debería usarse. Active full_page_writes y ejecute CHECKPOINT en el primario, luego trate de ejecutar un respaldo en línea nuevamente." +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 primary, and then try an online backup again." +msgstr "Esto significa que el respaldo que estaba siendo tomado en el standby está corrupto y no debería usarse. Active «full_page_writes» y ejecute CHECKPOINT en el primario, luego trate de ejecutar un respaldo en línea nuevamente." -#: access/transam/xlog.c:8477 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:9006 backup/basebackup.c:1417 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "no se pudo leer el enlace simbólico «%s»: %m" -#: access/transam/xlog.c:8484 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:9013 backup/basebackup.c:1422 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "la ruta «%s» del enlace simbólico es demasiado larga" -#: access/transam/xlog.c:8643 backup/basebackup.c:1217 +#: access/transam/xlog.c:9134 +#, c-format +msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor." + +#: access/transam/xlog.c:9172 backup/basebackup.c:1281 #, c-format msgid "the standby was promoted during online backup" msgstr "el standby fue promovido durante el respaldo en línea" -#: access/transam/xlog.c:8644 backup/basebackup.c:1218 +#: access/transam/xlog.c:9173 backup/basebackup.c:1282 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Esto significa que el respaldo que se estaba tomando está corrupto y no debería ser usado. Trate de ejecutar un nuevo respaldo en línea." -#: access/transam/xlog.c:8691 +#: access/transam/xlog.c:9220 #, c-format -msgid "WAL generated with full_page_writes=off was replayed during online backup" -msgstr "el WAL generado con full_page_writes=off fue restaurado durante el respaldo en línea" +msgid "WAL generated with \"full_page_writes=off\" was replayed during online backup" +msgstr "el WAL generado con «full_page_writes=off» fue restaurado durante el respaldo en línea" -#: access/transam/xlog.c:8807 +#: access/transam/xlog.c:9336 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "respaldo base completo, esperando que se archiven los segmentos WAL requeridos" -#: access/transam/xlog.c:8821 +#: access/transam/xlog.c:9350 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "todavía en espera de que todos los segmentos WAL requeridos sean archivados (han pasado %d segundos)" -#: access/transam/xlog.c:8823 +#: access/transam/xlog.c:9352 #, 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 "Verifique que su archive_command se esté ejecutando con normalidad. Puede cancelar este respaldo con confianza, pero el respaldo de la base de datos no será utilizable a menos que disponga de todos los segmentos de WAL." +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 "Verifique que su «archive_command» se esté ejecutando con normalidad. Puede cancelar este respaldo con confianza, pero el respaldo de la base de datos no será utilizable a menos que disponga de todos los segmentos de WAL." -#: access/transam/xlog.c:8830 +#: access/transam/xlog.c:9359 #, c-format msgid "all required WAL segments have been archived" msgstr "todos los segmentos de WAL requeridos han sido archivados" -#: access/transam/xlog.c:8834 +#: access/transam/xlog.c:9363 #, 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 "el archivado de WAL no está activo; debe asegurarse que todos los segmentos WAL requeridos se copian por algún otro mecanismo para completar el respaldo" -#: access/transam/xlog.c:8873 +#: access/transam/xlog.c:9402 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "abortando el backup porque el proceso servidor terminó antes de que pg_backup_stop fuera invocada" -#: access/transam/xlogarchive.c:207 +#: access/transam/xlogarchive.c:213 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "el archivo «%s» tiene tamaño erróneo: %lld en lugar de %lld" -#: access/transam/xlogarchive.c:216 +#: access/transam/xlogarchive.c:222 #, c-format msgid "restored log file \"%s\" from archive" msgstr "se ha restaurado el archivo «%s» desde el área de archivado" -#: access/transam/xlogarchive.c:230 +#: access/transam/xlogarchive.c:236 #, c-format -msgid "restore_command returned a zero exit status, but stat() failed." -msgstr "restore_command retornó un estado de salida cero, pero stat() falló." +msgid "\"restore_command\" returned a zero exit status, but stat() failed." +msgstr "«restore_command» retornó un estado de salida cero, pero stat() falló." -#: access/transam/xlogarchive.c:262 +#: access/transam/xlogarchive.c:268 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "no se pudo recuperar el archivo «%s»: %s" @@ -2744,1028 +2989,1097 @@ msgstr "no se pudo recuperar el archivo «%s»: %s" #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:340 +#: access/transam/xlogarchive.c:346 #, c-format msgid "%s \"%s\": %s" msgstr "%s «%s»: %s" -#: access/transam/xlogarchive.c:450 access/transam/xlogarchive.c:530 +#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "no se pudo crear el archivo de estado «%s»: %m" -#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:538 +#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "no se pudo escribir el archivo de estado «%s»: %m" -#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 +#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 #, c-format msgid "a backup is already in progress in this session" msgstr "ya hay un respaldo en curso en esta sesión" -#: access/transam/xlogfuncs.c:146 +#: access/transam/xlogfuncs.c:140 #, c-format msgid "backup is not in progress" msgstr "no hay respaldo en curso" -#: access/transam/xlogfuncs.c:147 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "Did you call pg_backup_start()?" msgstr "¿Invocó pg_backup_start()?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 +#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 +#: access/transam/xlogfuncs.c:323 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "Las funciones de control de WAL no pueden ejecutarse durante la recuperación." -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 +#: access/transam/xlogfuncs.c:447 #, c-format msgid "%s cannot be executed during recovery." msgstr "No se puede ejecutar %s durante la recuperación." -# FIXME see logical.c:81 -#: access/transam/xlogfuncs.c:221 -#, fuzzy, c-format -#| msgid "replication slots can only be used if wal_level >= replica" -msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" -msgstr "los slots de replicación sólo pueden usarse si wal_level >= replica" +#: access/transam/xlogfuncs.c:215 +#, c-format +msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" +msgstr "pg_log_standby_snapshot() sólo puede usarse si «wal_level» >= «replica»" -#: access/transam/xlogfuncs.c:253 +#: access/transam/xlogfuncs.c:247 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "el nivel de WAL no es suficiente para crear un punto de recuperación" -#: access/transam/xlogfuncs.c:261 +#: access/transam/xlogfuncs.c:255 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "el valor es demasiado largo para un punto de recuperación (máximo %d caracteres)" -#: access/transam/xlogfuncs.c:496 -#, fuzzy, c-format -#| msgid "invalid locale name \"%s\"" +#: access/transam/xlogfuncs.c:486 +#, c-format msgid "invalid WAL file name \"%s\"" -msgstr "nombre de configuración regional «%s» no es válido" +msgstr "nombre de archivo WAL «%s» no válido" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 +#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 +#: access/transam/xlogfuncs.c:679 #, c-format msgid "recovery is not in progress" msgstr "la recuperación no está en proceso" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 +#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 +#: access/transam/xlogfuncs.c:680 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "Las funciones de control de recuperación sólo pueden ejecutarse durante la recuperación." -#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 +#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 #, c-format msgid "standby promotion is ongoing" msgstr "la promoción del standby está en curso" -#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s no puede ser ejecutado después que una promoción es solicitada." -#: access/transam/xlogfuncs.c:695 +#: access/transam/xlogfuncs.c:685 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "«wait_seconds» no puede ser negativo o cero" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:260 +#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "no se pudo enviar señal a postmaster: %m" -#: access/transam/xlogfuncs.c:751 +#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#, c-format +msgid "terminating connection due to unexpected postmaster exit" +msgstr "terminando la conexión debido al término inesperado de postmaster" + +#: access/transam/xlogfuncs.c:740 +#, c-format +msgid "while waiting on promotion" +msgstr "mientras se esperaba la promoción" + +#: access/transam/xlogfuncs.c:744 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" msgstr[0] "el servidor no se promovió en %d segundo" msgstr[1] "el servidor no se promovió en %d segundos" -#: access/transam/xlogprefetcher.c:1092 +#: access/transam/xlogprefetcher.c:1088 #, c-format -msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." -msgstr "recovery_prefetch no está soportado en plataformas que no tienen posix_fadvise()." +msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()." +msgstr "«recovery_prefetch» no está soportado en plataformas que no tienen posix_fadvise()." -#: access/transam/xlogreader.c:626 +#: access/transam/xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "desplazamiento de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: access/transam/xlogreader.c:635 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord solicitado por %X/%X" -#: access/transam/xlogreader.c:676 access/transam/xlogreader.c:1123 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "largo de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: access/transam/xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "memoria agotada mientras se intentaba decodificar un registro de largo %u" - -#: access/transam/xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "largo de registro %u en %X/%X demasiado largo" - -#: access/transam/xlogreader.c:776 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "no hay bandera de contrecord en %X/%X" -#: access/transam/xlogreader.c:789 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "largo de contrecord %u no válido (se esperaba %lld) en %X/%X" -#: access/transam/xlogreader.c:924 -#, c-format -msgid "missing contrecord at %X/%X" -msgstr "falta un contrecord en %X/%X" - -#: access/transam/xlogreader.c:1131 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ID de gestor de recursos %u no válido en %X/%X" -#: access/transam/xlogreader.c:1144 access/transam/xlogreader.c:1160 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "registro con prev-link %X/%X incorrecto en %X/%X" -#: access/transam/xlogreader.c:1196 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "suma de verificación de los datos del gestor de recursos incorrecta en el registro en %X/%X" -#: access/transam/xlogreader.c:1230 +#: access/transam/xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "número mágico %04X no válido en segmento WAL %s, LSN %X/%X, posición %u" -#: access/transam/xlogreader.c:1245 access/transam/xlogreader.c:1287 +#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "info bits %04X no válidos en segment WAL %s, LSN %X/%X, posición %u" -#: access/transam/xlogreader.c:1261 +#: access/transam/xlogreader.c:1274 #, 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 "archivo WAL es de un sistema de bases de datos distinto: identificador de sistema en archivo WAL es %llu, identificador en pg_control es %llu" -#: access/transam/xlogreader.c:1269 +#: access/transam/xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: tamaño de segmento incorrecto en cabecera de paǵina" -#: access/transam/xlogreader.c:1275 +#: access/transam/xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: XLOG_BLCKSZ incorrecto en cabecera de paǵina" -#: access/transam/xlogreader.c:1307 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u" -#: access/transam/xlogreader.c:1333 +#: access/transam/xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "ID de timeline %u fuera de secuencia (después de %u) en segmento WAL %s, LSN %X/%X, posición %u" -#: access/transam/xlogreader.c:1739 +#: access/transam/xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u fuera de orden en %X/%X" -#: access/transam/xlogreader.c:1763 +#: access/transam/xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA está definido, pero no hay datos en %X/%X" -#: access/transam/xlogreader.c:1770 +#: access/transam/xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA no está definido, pero el largo de los datos es %u en %X/%X" -#: access/transam/xlogreader.c:1806 +#: access/transam/xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE está definido, pero posición del agujero es %u largo %u largo de imagen %u en %X/%X" -#: access/transam/xlogreader.c:1822 +#: access/transam/xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE no está definido, pero posición del agujero es %u largo %u en %X/%X" -#: access/transam/xlogreader.c:1836 +#: access/transam/xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED definido, pero largo de imagen de bloque es %u en %X/%X" -#: access/transam/xlogreader.c:1851 +#: access/transam/xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED están definidos, pero el largo de imagen de bloque es %u en %X/%X" -#: access/transam/xlogreader.c:1867 +#: access/transam/xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL está definido, pero no hay «rel» anterior en %X/%X " -#: access/transam/xlogreader.c:1879 +#: access/transam/xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u no válido en %X/%X" -#: access/transam/xlogreader.c:1946 +#: access/transam/xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "registro con largo no válido en %X/%X" -#: access/transam/xlogreader.c:1972 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "no se pudo localizar un bloque de respaldo con ID %d en el registro WAL" -#: access/transam/xlogreader.c:2056 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "no se pudo restaurar la imagen en %X/%X con bloque especifica %d no válido" -#: access/transam/xlogreader.c:2063 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "no se pudo restaurar la imagen en %X/%X con estado no válido, bloque %d" -#: access/transam/xlogreader.c:2090 access/transam/xlogreader.c:2107 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "no se pudo restaurar la imagen en %X/%X comprimida con %s que no está soportado por esta instalación, bloque %d" -#: access/transam/xlogreader.c:2116 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "no se pudo restaurar la imagen en %X/%X comprimida con un método desconocido, bloque %d" -#: access/transam/xlogreader.c:2124 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "no se pudo descomprimir la imagen en %X/%X, bloque %d" -#: access/transam/xlogrecovery.c:547 -#, c-format -msgid "entering standby mode" -msgstr "entrando al modo standby" - -#: access/transam/xlogrecovery.c:550 -#, c-format -msgid "starting point-in-time recovery to XID %u" -msgstr "comenzando el proceso de recuperación hasta el XID %u" - -#: access/transam/xlogrecovery.c:554 -#, c-format -msgid "starting point-in-time recovery to %s" -msgstr "comenzando el proceso de recuperación hasta %s" - -#: access/transam/xlogrecovery.c:558 -#, c-format -msgid "starting point-in-time recovery to \"%s\"" -msgstr "comenzando el proceso de recuperación hasta «%s»" - -#: access/transam/xlogrecovery.c:562 -#, c-format -msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" -msgstr "comenzando el proceso de recuperación punto-en-el-tiempo a la ubicación (LSN) de WAL «%X/%X»" - -#: access/transam/xlogrecovery.c:566 -#, c-format -msgid "starting point-in-time recovery to earliest consistent point" -msgstr "comenzando recuperación a un punto en el tiempo hasta alcanzar un estado consistente" - -#: access/transam/xlogrecovery.c:569 +#: access/transam/xlogrecovery.c:617 #, c-format -msgid "starting archive recovery" -msgstr "comenzando proceso de recuperación" +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "iniciando recuperación de backup con LSN de redo %X/%X, LSN de checkpoint %X/%X, en timeline %u" -#: access/transam/xlogrecovery.c:653 +#: access/transam/xlogrecovery.c:649 #, c-format -msgid "could not find redo location referenced by checkpoint record" -msgstr "no se pudo encontrar la ubicación de redo referida por el registro de punto de control" +msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X" +msgstr "no se pudo encontrar la ubicación de redo %X/%X referida por el registro de checkpoint en %X/%X" # Purposefully deviate from quoting convention here, since argument is a shell command. -#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664 +#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 #, c-format msgid "" -"If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" +"If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup." msgstr "" -"Si está restaurando de un respaldo, ejecute «touch \"%s.recovery.signal\"» y agregue las opciones de restauración necesarias.\n" +"Si está restaurando de un respaldo, ejecute «touch \"%s/recovery.signal\"» o «%s/standby.signal» y agregue las opciones de restauración necesarias.\n" "Si no está restaurando de un respaldo, intente eliminar el archivo \"%s/backup_label\".\n" "Tenga cuidado: eliminar \"%s/backup_label\" resultará en un clúster corrupto si está restaurando de un respaldo." -#: access/transam/xlogrecovery.c:663 +#: access/transam/xlogrecovery.c:660 #, c-format -msgid "could not locate required checkpoint record" -msgstr "no se pudo localizar el registro del punto de control requerido" +msgid "could not locate required checkpoint record at %X/%X" +msgstr "no se pudo localizar el registro de checkpoint requerido en %X/%X" -#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "no se pudo crear el enlace simbólico «%s»: %m" -#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignorando el archivo «%s» porque no existe un archivo «%s»" -#: access/transam/xlogrecovery.c:726 +#: access/transam/xlogrecovery.c:725 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "El archivo «%s» fue renombrado a «%s»." -#: access/transam/xlogrecovery.c:732 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "No se pudo renombrar el archivo de «%s» a «%s»: %m." -#: access/transam/xlogrecovery.c:786 +#: access/transam/xlogrecovery.c:770 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "reiniciando recuperación del backup con LSN de redo «%X/%X»" + +#: access/transam/xlogrecovery.c:795 +#, c-format +msgid "could not locate a valid checkpoint record at %X/%X" +msgstr "no se pudo localizar un registro de válido en %X/%X" + +#: access/transam/xlogrecovery.c:806 +#, c-format +msgid "entering standby mode" +msgstr "entrando al modo standby" + +#: access/transam/xlogrecovery.c:809 +#, c-format +msgid "starting point-in-time recovery to XID %u" +msgstr "comenzando el proceso de recuperación hasta el XID %u" + +#: access/transam/xlogrecovery.c:813 #, c-format -msgid "could not locate a valid checkpoint record" -msgstr "no se pudo localizar un registro de punto de control válido" +msgid "starting point-in-time recovery to %s" +msgstr "comenzando el proceso de recuperación hasta %s" + +#: access/transam/xlogrecovery.c:817 +#, c-format +msgid "starting point-in-time recovery to \"%s\"" +msgstr "comenzando el proceso de recuperación hasta «%s»" + +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" +msgstr "comenzando el proceso de recuperación punto-en-el-tiempo a la ubicación (LSN) de WAL «%X/%X»" + +#: access/transam/xlogrecovery.c:825 +#, c-format +msgid "starting point-in-time recovery to earliest consistent point" +msgstr "comenzando recuperación a un punto en el tiempo hasta alcanzar un estado consistente" + +#: access/transam/xlogrecovery.c:828 +#, c-format +msgid "starting archive recovery" +msgstr "comenzando proceso de recuperación" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:849 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "el timeline solicitado %u no es un hijo de la historia de este servidor" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:851 #, 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 "El punto de control más reciente está en %X/%X en el timeline %u, pero en la historia del timeline solicitado, el servidor se desvió desde ese timeline en %X/%X." +msgstr "El checkpoint más reciente está en %X/%X en el timeline %u, pero en la historia del timeline solicitado, el servidor se desvió desde ese timeline en %X/%X." -#: access/transam/xlogrecovery.c:826 +#: access/transam/xlogrecovery.c:865 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "el timeline solicitado %u no contiene el punto mínimo de recuperación %X/%X en el timeline %u" -#: access/transam/xlogrecovery.c:854 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid next transaction ID" msgstr "el siguiente ID de transacción no es válido" -#: access/transam/xlogrecovery.c:859 +#: access/transam/xlogrecovery.c:898 #, c-format msgid "invalid redo in checkpoint record" -msgstr "redo no es válido en el registro de punto de control" +msgstr "redo no es válido en el registro de checkpoint" -#: access/transam/xlogrecovery.c:870 +#: access/transam/xlogrecovery.c:909 #, c-format msgid "invalid redo record in shutdown checkpoint" -msgstr "registro redo no es válido en el punto de control de apagado" +msgstr "registro redo no es válido en el checkpoint de apagado" -#: access/transam/xlogrecovery.c:899 +#: access/transam/xlogrecovery.c:938 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "el sistema de bases de datos no fue apagado apropiadamente; se está efectuando la recuperación automática" -#: access/transam/xlogrecovery.c:903 +#: access/transam/xlogrecovery.c:942 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "la recuperación comienza en el timeline %u y tiene un timeline de destino %u" -#: access/transam/xlogrecovery.c:946 +#: access/transam/xlogrecovery.c:985 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label contiene datos inconsistentes con el archivo de control" -#: access/transam/xlogrecovery.c:947 +#: access/transam/xlogrecovery.c:986 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Esto significa que el respaldo está corrupto y deberá usar otro respaldo para la recuperación." -#: access/transam/xlogrecovery.c:1001 +#: access/transam/xlogrecovery.c:1040 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "el uso del archivo de configuración de recuperación «%s» no está soportado" -#: access/transam/xlogrecovery.c:1066 +#: access/transam/xlogrecovery.c:1105 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "el modo standby no está soportado en el modo mono-usuario" -#: access/transam/xlogrecovery.c:1083 +#: access/transam/xlogrecovery.c:1122 #, c-format -msgid "specified neither primary_conninfo nor restore_command" -msgstr "no se especifica primary_conninfo ni restore_command" +msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" +msgstr "no se especifica «primary_conninfo» ni «restore_command»" -#: access/transam/xlogrecovery.c:1084 +#: access/transam/xlogrecovery.c:1123 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "El servidor de bases de datos monitoreará el subdirectorio pg_wal con regularidad en búsqueda de archivos almacenados ahí." -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1131 #, c-format -msgid "must specify restore_command when standby mode is not enabled" -msgstr "debe especificarse restore_command cuando el modo standby no está activo" +msgid "must specify \"restore_command\" when standby mode is not enabled" +msgstr "debe especificarse «restore_command» cuando el modo standby no está activo" -#: access/transam/xlogrecovery.c:1130 +#: access/transam/xlogrecovery.c:1169 #, c-format msgid "recovery target timeline %u does not exist" msgstr "no existe el timeline %u especificado como destino de recuperación" -#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220 -#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359 -#: access/transam/xlogrecovery.c:1383 +#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 +#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 #, c-format msgid "invalid data in file \"%s\"" msgstr "datos no válidos en archivo «%s»" -#: access/transam/xlogrecovery.c:1280 +#: access/transam/xlogrecovery.c:1319 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "El ID de timeline interpretado es %u, pero se esperaba %u." -#: access/transam/xlogrecovery.c:1662 +#: access/transam/xlogrecovery.c:1330 +#, c-format +msgid "this is an incremental backup, not a data directory" +msgstr "esto es un backup incremental, no un directorio de datos" + +#: access/transam/xlogrecovery.c:1331 +#, c-format +msgid "Use pg_combinebackup to reconstruct a valid data directory." +msgstr "Use pg_combinebackup para reconstruir un directorio de datos válido." + +#: access/transam/xlogrecovery.c:1717 +#, c-format +msgid "unexpected record type found at redo point %X/%X" +msgstr "se encontró registro de tipo inesperada en el punto de redo %X/%X" + +#: access/transam/xlogrecovery.c:1740 #, c-format msgid "redo starts at %X/%X" msgstr "redo comienza en %X/%X" -#: access/transam/xlogrecovery.c:1675 +#: access/transam/xlogrecovery.c:1753 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "redo en progreso, tiempo transcurrido: %ld.%02d s, LSN actual: %X/%X" -#: access/transam/xlogrecovery.c:1767 +#: access/transam/xlogrecovery.c:1843 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "el punto de detención de recuperación pedido es antes del punto de recuperación consistente" -#: access/transam/xlogrecovery.c:1799 +#: access/transam/xlogrecovery.c:1875 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "redo listo en %X/%X utilización del sistema: %s" -#: access/transam/xlogrecovery.c:1805 +#: access/transam/xlogrecovery.c:1881 #, c-format msgid "last completed transaction was at log time %s" msgstr "última transacción completada al tiempo de registro %s" -#: access/transam/xlogrecovery.c:1814 +#: access/transam/xlogrecovery.c:1890 #, c-format msgid "redo is not required" msgstr "no se requiere redo" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1901 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "la recuperación terminó antes de alcanzar el punto configurado como destino de recuperación" -#: access/transam/xlogrecovery.c:2019 +#: access/transam/xlogrecovery.c:2095 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "se omitió con éxito contrecord no encontrado en %X/%X, sobrescrito en %s" -#: access/transam/xlogrecovery.c:2086 +#: access/transam/xlogrecovery.c:2162 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "entrada de directorio inesperada «%s» fue encontrada en %s" -#: access/transam/xlogrecovery.c:2088 +#: access/transam/xlogrecovery.c:2164 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Todas las entradas de directorio en pg_tblspc deberían ser enlaces simbólicos" -#: access/transam/xlogrecovery.c:2089 +#: access/transam/xlogrecovery.c:2165 #, c-format -msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." -msgstr "Elimine esos directorios, o defina allow_in_place_tablespaces a ON transitoriamente para permitir que la recuperación pueda completarse." +msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete." +msgstr "Elimine esos directorios, o defina «allow_in_place_tablespaces» a ON transitoriamente para permitir que la recuperación pueda completarse." -#: access/transam/xlogrecovery.c:2163 +#: access/transam/xlogrecovery.c:2217 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "se completó la recuperación de backup con LSN de redo %X/%X y LSN de término %X/%X" + +#: access/transam/xlogrecovery.c:2247 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "el estado de recuperación consistente fue alcanzado en %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2201 +#: access/transam/xlogrecovery.c:2285 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "redo WAL en %X/%X para %s" -#: access/transam/xlogrecovery.c:2299 +#: access/transam/xlogrecovery.c:2383 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" -msgstr "ID de timeline previo %u inesperado (timeline actual %u) en el registro de punto de control" +msgstr "ID de timeline previo %u inesperado (timeline actual %u) en el registro de checkpoint" -#: access/transam/xlogrecovery.c:2308 +#: access/transam/xlogrecovery.c:2392 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" -msgstr "ID de timeline %u inesperado (después de %u) en el registro de punto de control" +msgstr "ID de timeline %u inesperado (después de %u) en el registro de checkpoint" -#: access/transam/xlogrecovery.c:2324 +#: access/transam/xlogrecovery.c:2408 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "timeline ID %u inesperado en registro de checkpoint, antes de alcanzar el punto mínimo de recuperación %X/%X en el timeline %u" -#: access/transam/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784 +#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 #, c-format msgid "recovery stopping after reaching consistency" msgstr "deteniendo recuperación al alcanzar un estado consistente" -#: access/transam/xlogrecovery.c:2529 +#: access/transam/xlogrecovery.c:2613 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "deteniendo recuperación antes de la ubicación (LSN) de WAL «%X/%X»" -#: access/transam/xlogrecovery.c:2619 +#: access/transam/xlogrecovery.c:2703 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "deteniendo recuperación antes de comprometer la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2626 +#: access/transam/xlogrecovery.c:2710 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "deteniendo recuperación antes de abortar la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2679 +#: access/transam/xlogrecovery.c:2763 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "deteniendo recuperación en el punto de recuperación «%s», hora %s" -#: access/transam/xlogrecovery.c:2697 +#: access/transam/xlogrecovery.c:2781 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "deteniendo recuperación después de la ubicación (LSN) de WAL «%X/%X»" -#: access/transam/xlogrecovery.c:2764 +#: access/transam/xlogrecovery.c:2848 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "deteniendo recuperación de comprometer la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2772 +#: access/transam/xlogrecovery.c:2856 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "deteniendo recuperación después de abortar la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2853 +#: access/transam/xlogrecovery.c:2937 #, c-format msgid "pausing at the end of recovery" msgstr "pausando al final de la recuperación" -#: access/transam/xlogrecovery.c:2854 +#: access/transam/xlogrecovery.c:2938 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Ejecute pg_wal_replay_resume() para promover." -#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594 +#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4679 #, c-format msgid "recovery has paused" msgstr "la recuperación está en pausa" -#: access/transam/xlogrecovery.c:2858 +#: access/transam/xlogrecovery.c:2942 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Ejecute pg_wal_replay_resume() para continuar." -#: access/transam/xlogrecovery.c:3121 -#, fuzzy, c-format -#| msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" +#: access/transam/xlogrecovery.c:3205 +#, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" -msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u" +msgstr "ID de timeline %u inesperado en segmento WAL %s, LSN %X/%X, posición %u" -#: access/transam/xlogrecovery.c:3329 -#, fuzzy, c-format -#| msgid "could not read from file %s, offset %d: %m" +#: access/transam/xlogrecovery.c:3413 +#, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" -msgstr "no se pudo leer desde el archivo «%s» en la posición %d: %m" +msgstr "no se pudo leer desde el segmento de WAL %s, LSN %X/%X, posición %u: %m" -#: access/transam/xlogrecovery.c:3336 -#, fuzzy, c-format -#| msgid "could not read from file %s, offset %d: read %d of %d" +#: access/transam/xlogrecovery.c:3420 +#, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" -msgstr "no se pudo leer del archivo %s, posición %d: leídos %d de %d" +msgstr "no se pudo leer del segmento de WAL %s, LSN %X/%X, posición %u: leídos %d de %zu" -#: access/transam/xlogrecovery.c:3976 -#, fuzzy, c-format -#| msgid "invalid checkpoint record" +#: access/transam/xlogrecovery.c:4061 +#, c-format msgid "invalid checkpoint location" -msgstr "el registro del punto de control no es válido" +msgstr "ubicación de checkpoint no válida" -#: access/transam/xlogrecovery.c:3986 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid checkpoint record" -msgstr "el registro del punto de control no es válido" +msgstr "el registro del checkpoint no es válido" -#: access/transam/xlogrecovery.c:3992 +#: access/transam/xlogrecovery.c:4077 #, c-format msgid "invalid resource manager ID in checkpoint record" -msgstr "el ID de gestor de recursos en el registro del punto de control no es válido" +msgstr "el ID de gestor de recursos en el registro del checkpoint no es válido" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4085 #, c-format msgid "invalid xl_info in checkpoint record" -msgstr "xl_info en el registro del punto de control no es válido" +msgstr "xl_info en el registro del checkpoint no es válido" -#: access/transam/xlogrecovery.c:4006 +#: access/transam/xlogrecovery.c:4091 #, c-format msgid "invalid length of checkpoint record" -msgstr "la longitud del registro de punto de control no es válida" +msgstr "la longitud del registro de checkpoint no es válida" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4145 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "el nuevo timeline %u especificado no es hijo del timeline de sistema %u" -#: access/transam/xlogrecovery.c:4074 +#: access/transam/xlogrecovery.c:4159 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "el nuevo timeline %u bifurcó del timeline del sistema actual %u antes del punto re recuperación actual %X/%X" -#: access/transam/xlogrecovery.c:4093 +#: access/transam/xlogrecovery.c:4178 #, c-format msgid "new target timeline is %u" msgstr "el nuevo timeline destino es %u" -#: access/transam/xlogrecovery.c:4296 +#: access/transam/xlogrecovery.c:4381 #, c-format msgid "WAL receiver process shutdown requested" msgstr "se recibió una petición de apagado para el proceso receptor de wal" -#: access/transam/xlogrecovery.c:4356 +#: access/transam/xlogrecovery.c:4441 #, c-format msgid "received promote request" msgstr "se recibió petición de promoción" -#: access/transam/xlogrecovery.c:4585 +#: access/transam/xlogrecovery.c:4670 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby no es posible porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613 -#: access/transam/xlogrecovery.c:4643 +#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 +#: access/transam/xlogrecovery.c:4728 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d es una configuración menor que en el servidor primario, donde su valor era %d." -#: access/transam/xlogrecovery.c:4595 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Si se continúa con la recuperación, el servidor se apagará." -#: access/transam/xlogrecovery.c:4596 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Luego puede reiniciar el servidor después de hacer los cambios necesarios en la configuración." -#: access/transam/xlogrecovery.c:4607 +#: access/transam/xlogrecovery.c:4692 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "la promoción no es posible porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4617 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Reinicie el servidor luego de hacer los cambios necesarios en la configuración." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4726 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "se abortó la recuperación porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4732 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Puede reiniciar el servidor luego de hacer los cambios necesarios en la configuración." -#: access/transam/xlogrecovery.c:4689 +#: access/transam/xlogrecovery.c:4774 #, c-format msgid "multiple recovery targets specified" msgstr "múltiples valores de destino de recuperación especificados" -#: access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:4775 #, 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 "A lo más uno de recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid puede estar definido." +msgid "At most one of \"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" may be set." +msgstr "A lo más uno de «recovery_target», «recovery_target_lsn», «recovery_target_name», «recovery_target_time», «recovery_target_xid» puede estar definido." -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4786 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "El único valor permitido es «immediate»." -#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4938 utils/adt/timestamp.c:202 +#: utils/adt/timestamp.c:455 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp fuera de rango: «%s»" -#: access/transam/xlogrecovery.c:4898 +#: access/transam/xlogrecovery.c:4983 #, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline no es un número válido." +msgid "\"recovery_target_timeline\" is not a valid number." +msgstr "«recovery_target_timeline» no es un número válido." -#: access/transam/xlogutils.c:1039 -#, fuzzy, c-format -#| msgid "could not read from file %s, offset %d: %m" +#: access/transam/xlogutils.c:1032 +#, c-format msgid "could not read from WAL segment %s, offset %d: %m" -msgstr "no se pudo leer desde el archivo «%s» en la posición %d: %m" +msgstr "no se pudo leer desde el segmento de WAL %s, posición %d: %m" -#: access/transam/xlogutils.c:1046 -#, fuzzy, c-format -#| msgid "could not read from file %s, offset %d: read %d of %d" +#: access/transam/xlogutils.c:1039 +#, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" -msgstr "no se pudo leer del archivo %s, posición %d: leídos %d de %d" +msgstr "no se pudo leer del segmento de WAL %s, posición %d: leídos %d de %d" -#: archive/shell_archive.c:96 +#: archive/shell_archive.c:98 #, c-format msgid "archive command failed with exit code %d" msgstr "la orden de archivado falló con código de retorno %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:100 archive/shell_archive.c:110 +#: archive/shell_archive.c:116 archive/shell_archive.c:125 #, c-format msgid "The failed archive command was: %s" msgstr "La orden fallida era: «%s»" -#: archive/shell_archive.c:105 +#: archive/shell_archive.c:107 #, c-format msgid "archive command was terminated by exception 0x%X" msgstr "la orden de archivado fue terminada por una excepción 0x%X" -#: archive/shell_archive.c:107 postmaster/postmaster.c:3675 +#: archive/shell_archive.c:109 postmaster/postmaster.c:3095 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Vea el archivo «ntstatus.h» para una descripción del valor hexadecimal." -#: archive/shell_archive.c:112 +#: archive/shell_archive.c:114 #, c-format msgid "archive command was terminated by signal %d: %s" msgstr "la orden de archivado fue terminada por una señal %d: %s" -#: archive/shell_archive.c:121 +#: archive/shell_archive.c:123 #, c-format msgid "archive command exited with unrecognized status %d" msgstr "la orden de archivado fue terminada con código %d no reconocido" -#: backup/backup_manifest.c:253 +#: backup/backup_manifest.c:254 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "se esperaba el timeline de término %u pero se encontró el timeline %u" -#: backup/backup_manifest.c:277 +#: backup/backup_manifest.c:278 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "se esperaba el timeline de inicio %u pero se encontró el timeline %u" -#: backup/backup_manifest.c:304 +#: backup/backup_manifest.c:305 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "el timeline de inicio %u no fue encontrado en la historia del timeline %u" -#: backup/backup_manifest.c:355 +#: backup/backup_manifest.c:356 #, c-format msgid "could not rewind temporary file" msgstr "no se puede rebobinar el archivo temporal" -#: backup/basebackup.c:470 +#: backup/basebackup.c:479 #, c-format msgid "could not find any WAL files" msgstr "no se pudo encontrar ningún archivo de WAL" -#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 +#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 #, c-format msgid "could not find WAL file \"%s\"" msgstr "no se pudo encontrar archivo de WAL «%s»" -#: backup/basebackup.c:551 backup/basebackup.c:576 +#: backup/basebackup.c:560 backup/basebackup.c:585 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "tamaño del archivo WAL «%s» inesperado" -#: backup/basebackup.c:646 +#: backup/basebackup.c:656 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" msgstr[0] "%lld falla de verificación de suma de comprobación en total" msgstr[1] "%lld fallas de verificación de suma de comprobación en total" -#: backup/basebackup.c:653 +#: backup/basebackup.c:663 #, c-format msgid "checksum verification failure during base backup" msgstr "falla en verificación de checksums durante respaldo base" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 +#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 +#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 +#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 +#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 #, c-format msgid "duplicate option \"%s\"" msgstr "nombre de opción «%s» duplicada" -#: backup/basebackup.c:750 -#, fuzzy, c-format -#| msgid "unrecognized object type \"%s\"" +#: backup/basebackup.c:761 +#, c-format msgid "unrecognized checkpoint type: \"%s\"" -msgstr "tipo de objeto «%s» no reconocido" +msgstr "tipo de checkpoint no reconocido: «%s»" + +#: backup/basebackup.c:793 +#, c-format +msgid "incremental backups cannot be taken unless WAL summarization is enabled" +msgstr "los backups incrementales no pueden tomarse a menos que la sumarización de WAL esté activada" -#: backup/basebackup.c:785 +#: backup/basebackup.c:809 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d está fuera del rango aceptable para el parámetro «%s» (%d .. %d)" -#: backup/basebackup.c:830 +#: backup/basebackup.c:854 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "opción de manifiesto «%s» no reconocida" -#: backup/basebackup.c:846 -#, c-format -msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "algoritmo de suma de comprobación no reconocido: \"%s\"" - -#: backup/basebackup.c:881 +#: backup/basebackup.c:905 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "algoritmo de compresión no reconocido: «%s»" -#: backup/basebackup.c:897 -#, fuzzy, c-format -#| msgid "unrecognized column option \"%s\"" +#: backup/basebackup.c:921 +#, c-format msgid "unrecognized base backup option: \"%s\"" -msgstr "opción de columna «%s» no reconocida" +msgstr "opción de respaldo base no reconocida: «%s»" -#: backup/basebackup.c:908 +#: backup/basebackup.c:932 #, c-format msgid "manifest checksums require a backup manifest" msgstr "la suma de comprobación del manifiesto requiere un manifiesto de la copia de seguridad" -#: backup/basebackup.c:917 -#, fuzzy, c-format -#| msgid "--no-slot cannot be used with slot name" +#: backup/basebackup.c:941 +#, c-format msgid "target detail cannot be used without target" -msgstr "no se puede usar --no-slot junto con nombre de slot" +msgstr "no se puede usar “target detail” sin un destino" -#: backup/basebackup.c:926 backup/basebackup_target.c:218 -#, fuzzy, c-format -#| msgid "operator class \"%s\" does not accept data type %s" +#: backup/basebackup.c:950 backup/basebackup_target.c:218 +#, c-format msgid "target \"%s\" does not accept a target detail" -msgstr "la clase de operadores «%s» no acepta el tipo de datos %s" +msgstr "el destino «%s» no acepta “target details”" -#: backup/basebackup.c:937 -#, fuzzy, c-format -#| msgid "%s cannot be specified unless locale provider \"%s\" is chosen" +#: backup/basebackup.c:961 +#, c-format msgid "compression detail cannot be specified unless compression is enabled" -msgstr "%s no puede especificarse a menos que el proveedor de locale «%s» sea escogido" +msgstr "el detalle de compresión no puede especificarse a menos que la compresión esté activada" -#: backup/basebackup.c:950 +#: backup/basebackup.c:974 #, c-format msgid "invalid compression specification: %s" msgstr "especificación de compresión no válida: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1024 +#, c-format +msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" +msgstr "debe ejecutar UPLOAD_MANIFEST antes de lanzar un BASE_BACKUP incremental" + +#: backup/basebackup.c:1157 backup/basebackup.c:1358 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "no se pudo hacer stat al archivo o directorio «%s»: %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1544 #, c-format msgid "skipping special file \"%s\"" msgstr "omitiendo el archivo especial «%s»" -#: backup/basebackup.c:1542 -#, c-format -msgid "invalid segment number %d in file \"%s\"" -msgstr "número de segmento %d no válido en archivo «%s»" - -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1751 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "no se pudo verificar el checksum en el archivo «%s», bloque %u: el tamaño de búfer de lectura %d y el tamaño de página %d difieren" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1813 +#, c-format +msgid "file \"%s\" has a total of %d checksum verification failure" +msgid_plural "file \"%s\" has a total of %d checksum verification failures" +msgstr[0] "el archivo «%s» tiene un total de %d falla de verificación de checksum" +msgstr[1] "el archivo «%s» tiene un total de %d fallas de verificación de checksums" + +#: backup/basebackup.c:1917 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "verificación de checksums falló en archivo «%s», bloque %u: calculado %X pero se esperaba %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1924 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "subsiguientes fallas de verificación de checksums en el archivo «%s» no se reportarán" -#: backup/basebackup.c:1721 -#, c-format -msgid "file \"%s\" has a total of %d checksum verification failure" -msgid_plural "file \"%s\" has a total of %d checksum verification failures" -msgstr[0] "el archivo «%s» tiene un total de %d falla de verificación de checksum" -msgstr[1] "el archivo «%s» tiene un total de %d fallas de verificación de checksums" - -#: backup/basebackup.c:1767 +#: backup/basebackup.c:2048 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "nombre de archivo demasiado largo para el formato tar: «%s»" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:2053 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "destino de enlace simbólico demasiado largo para el formato tar: nombre de archivo «%s», destino «%s»" +#: backup/basebackup.c:2127 +#, c-format +msgid "could not read file \"%s\": read %zd of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %zd de %zu" + #: backup/basebackup_gzip.c:67 -#, fuzzy, c-format -#| msgid "Bonjour is not supported by this build" +#, c-format msgid "gzip compression is not supported by this build" -msgstr "Bonjour no está soportado en este servidor" +msgstr "la compresión gzip no está soportada en este servidor" #: backup/basebackup_gzip.c:143 #, c-format msgid "could not initialize compression library" msgstr "no se pudo inicializar la biblioteca de compresión" +#: backup/basebackup_incremental.c:294 +#, c-format +msgid "manifest contains no required WAL ranges" +msgstr "el manifiesto no contiene ningún rango WAL requerido" + +#: backup/basebackup_incremental.c:349 +#, c-format +msgid "timeline %u found in manifest, but not in this server's history" +msgstr "el timeline %u fue encontrado en el manifiesto, pero no en la historia de este servidor" + +#: backup/basebackup_incremental.c:414 +#, c-format +msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "el manifiesto requiere WAL en el timeline inicial %u desde %X/%X, pero ese timeline inicia en %X/%X" + +#: backup/basebackup_incremental.c:424 +#, c-format +msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "el manifiesto requiere WAL del timeline de continuación %u desde %X/%X, pero ese timeline empieza en %X/%X" + +#: backup/basebackup_incremental.c:435 +#, c-format +msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X" +msgstr "el manifiesto requiere WAL del timeline final %u terminado en %X/%X, pero este backup empieza en %X/%X" + +#: backup/basebackup_incremental.c:439 +#, c-format +msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup." +msgstr "Esto puede pasar para backups incrementales en un standby si hubo insuficiente actividad desde el backup anterior." + +#: backup/basebackup_incremental.c:446 +#, c-format +msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" +msgstr "el manifiesto requiere WAL del timeline no-final %u terminando en %X/%X, pero este servidor cambió de timelines en %X/%X" + +#: backup/basebackup_incremental.c:527 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist" +msgstr "se requieren sumarizaciones de WAL en el timeline %u desde %X/%X hasta %X/%X, pero no existen sumarizaciones para ese timeline y rango de LSN" + +#: backup/basebackup_incremental.c:534 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete" +msgstr "se requieren sumarizaciones de WAL en el timeline %u desde %X/%X hasta %X/%X, pero las sumarizaciones en ese timeline y rango de LSN están incompletos" + +#: backup/basebackup_incremental.c:538 +#, c-format +msgid "The first unsummarized LSN in this range is %X/%X." +msgstr "El primer LSN sin sumarización en este rango es %X/%X." + +#: backup/basebackup_incremental.c:938 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "el manifiesto de backup versión 1 no soporta backups incrementales" + +#: backup/basebackup_incremental.c:956 +#, c-format +msgid "system identifier in backup manifest is %llu, but database system identifier is %llu" +msgstr "el identificador de sistema en el manifiesto de backup es %llu, pero el identificador en el sistema es %llu" + #: backup/basebackup_lz4.c:67 -#, fuzzy, c-format -#| msgid "Bonjour is not supported by this build" +#, c-format msgid "lz4 compression is not supported by this build" -msgstr "Bonjour no está soportado en este servidor" +msgstr "la compresión lz4 no está soportada en este servidor" -#: backup/basebackup_server.c:75 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: backup/basebackup_server.c:73 +#, c-format msgid "permission denied to create backup stored on server" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para crear un respaldo almacenado en el servidor" -#: backup/basebackup_server.c:76 +#: backup/basebackup_server.c:74 #, c-format msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." -msgstr "" +msgstr "Sólo los roles con privilegio del rol «%s» pueden crear un respaldo almacenado en el servidor." -#: backup/basebackup_server.c:91 -#, fuzzy, c-format -#| msgid "relative path not allowed for COPY to file" +#: backup/basebackup_server.c:89 +#, c-format msgid "relative path not allowed for backup stored on server" -msgstr "no se permiten rutas relativas para COPY hacia un archivo" +msgstr "no se permiten rutas relativas para un respaldo almacenado en el servidor" -#: backup/basebackup_server.c:104 commands/dbcommands.c:501 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1697 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 +#: commands/tablespace.c:157 commands/tablespace.c:173 +#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "no se pudo crear el directorio «%s»: %m" -#: backup/basebackup_server.c:117 +#: backup/basebackup_server.c:115 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "el directorio «%s» existe pero no está vacío" -#: backup/basebackup_server.c:125 utils/init/postinit.c:1154 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1178 #, c-format msgid "could not access directory \"%s\": %m" msgstr "no se pudo acceder al directorio «%s»: %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:501 storage/smgr/md.c:508 storage/smgr/md.c:590 -#: storage/smgr/md.c:612 storage/smgr/md.c:862 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 +#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 +#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 +#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 #, c-format msgid "Check free disk space." msgstr "Verifique el espacio libre en disco." -#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 -#, fuzzy, c-format -#| msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" +#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/walsummary.c:309 +#, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" -msgstr "no se pudo extender el archivo «%s»: sólo se escribieron %d de %d bytes en el bloque %u" +msgstr "no se pudo escribir en el archivo «%s»: sólo se escribieron %d de %d bytes en la posición %u" #: backup/basebackup_target.c:146 -#, fuzzy, c-format -#| msgid "unrecognized reset target: \"%s\"" +#, c-format msgid "unrecognized target: \"%s\"" -msgstr "destino de reset no reconocido: «%s»" +msgstr "destino no reconocido: «%s»" #: backup/basebackup_target.c:237 -#, fuzzy, c-format -#| msgid "parameter \"%s\" requires a Boolean value" +#, c-format msgid "target \"%s\" requires a target detail" -msgstr "el parámetro «%s» requiere un valor lógico (booleano)" +msgstr "el destino «%s» requiere un “target detail”" #: backup/basebackup_zstd.c:66 -#, fuzzy, c-format -#| msgid "Bonjour is not supported by this build" +#, c-format msgid "zstd compression is not supported by this build" -msgstr "Bonjour no está soportado en este servidor" +msgstr "la compresión zstd no está soportada en este servidor" #: backup/basebackup_zstd.c:117 #, c-format @@ -3774,714 +4088,723 @@ msgstr "no se pudo definir la cantidad de procesos ayudantes de compresión a %d #: backup/basebackup_zstd.c:129 #, c-format -msgid "could not set compression flag for %s: %s" -msgstr "no se pudo definir una opción de compresión para %s: %s" +msgid "could not enable long-distance mode: %s" +msgstr "no se pudo habilitar el modo “long-distance”: %s" -#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 +#: backup/walsummaryfuncs.c:95 +#, c-format +msgid "invalid timeline %lld" +msgstr "timeline %lld no válido" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946 #, c-format msgid "--%s requires a value" msgstr "--%s requiere un valor" -#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 +#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951 #, c-format msgid "-c %s requires a value" msgstr "-c %s requiere un valor" -#: bootstrap/bootstrap.c:289 -#, c-format -msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "-X require un valor potencia de dos entre 1 MB y 1 GB" - -#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 +#: postmaster/postmaster.c:759 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Pruebe «%s --help» para mayor información.\n" -#: bootstrap/bootstrap.c:304 +#: bootstrap/bootstrap.c:291 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: argumentos de línea de órdenes no válidos\n" -#: catalog/aclchk.c:201 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "la opción de grant sólo puede ser otorgada a roles" -#: catalog/aclchk.c:323 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "no se otorgaron privilegios para la columna «%s» de la relación «%s»" -#: catalog/aclchk.c:328 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "no se otorgaron privilegios para «%s»" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "no todos los privilegios fueron otorgados para la columna «%s» de la relación «%s»" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "no todos los privilegios fueron otorgados para «%s»" -#: catalog/aclchk.c:352 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "ningún privilegio pudo ser revocado para la columna «%s» de la relación «%s»" -#: catalog/aclchk.c:357 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "ningún privilegio pudo ser revocado para «%s»" -#: catalog/aclchk.c:365 +#: catalog/aclchk.c:375 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "no todos los privilegios pudieron ser revocados para la columna «%s» de la relación «%s»" -#: catalog/aclchk.c:370 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "no todos los privilegios pudieron ser revocados para «%s»" -#: catalog/aclchk.c:402 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "el cedente (grantor) debe ser el usuario actual" -#: catalog/aclchk.c:470 catalog/aclchk.c:1045 +#: catalog/aclchk.c:480 catalog/aclchk.c:1055 #, c-format msgid "invalid privilege type %s for relation" msgstr "el tipo de privilegio %s no es válido para una relación" -#: catalog/aclchk.c:474 catalog/aclchk.c:1049 +#: catalog/aclchk.c:484 catalog/aclchk.c:1059 #, c-format msgid "invalid privilege type %s for sequence" msgstr "el tipo de privilegio %s no es válido para una secuencia" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "el tipo de privilegio %s no es válido para una base de datos" -#: catalog/aclchk.c:482 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "el tipo de privilegio %s no es válido para un dominio" -#: catalog/aclchk.c:486 catalog/aclchk.c:1053 +#: catalog/aclchk.c:496 catalog/aclchk.c:1063 #, c-format msgid "invalid privilege type %s for function" msgstr "el tipo de privilegio %s no es válido para una función" -#: catalog/aclchk.c:490 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "el tipo de privilegio %s no es válido para un lenguaje" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:504 #, c-format msgid "invalid privilege type %s for large object" msgstr "el tipo de privilegio %s no es válido para un objeto grande" -#: catalog/aclchk.c:498 catalog/aclchk.c:1069 +#: catalog/aclchk.c:508 catalog/aclchk.c:1079 #, c-format msgid "invalid privilege type %s for schema" msgstr "el tipo de privilegio %s no es válido para un esquema" -#: catalog/aclchk.c:502 catalog/aclchk.c:1057 +#: catalog/aclchk.c:512 catalog/aclchk.c:1067 #, c-format msgid "invalid privilege type %s for procedure" msgstr "el tipo de privilegio %s no es válido para un procedimiento" -#: catalog/aclchk.c:506 catalog/aclchk.c:1061 +#: catalog/aclchk.c:516 catalog/aclchk.c:1071 #, c-format msgid "invalid privilege type %s for routine" msgstr "el tipo de privilegio %s no es válido para una rutina" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "el tipo de privilegio %s no es válido para un tablespace" -#: catalog/aclchk.c:514 catalog/aclchk.c:1065 +#: catalog/aclchk.c:524 catalog/aclchk.c:1075 #, c-format msgid "invalid privilege type %s for type" msgstr "el tipo de privilegio %s no es válido para un tipo" -#: catalog/aclchk.c:518 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "el tipo de privilegio %s no es válido para un conector de datos externos" -#: catalog/aclchk.c:522 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "el tipo de privilegio %s no es válido para un servidor foráneo" -#: catalog/aclchk.c:526 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "el tipo de privilegio %s no es válido para un parámetro" -#: catalog/aclchk.c:565 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "los privilegios de columna son sólo válidos para relaciones" -#: catalog/aclchk.c:728 catalog/aclchk.c:3570 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287 +#: catalog/aclchk.c:738 catalog/aclchk.c:3629 catalog/objectaddress.c:1054 +#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 #, c-format msgid "large object %u does not exist" msgstr "no existe el objeto grande %u" -#: catalog/aclchk.c:1102 +#: catalog/aclchk.c:1112 #, c-format msgid "default privileges cannot be set for columns" msgstr "los privilegios por omisión no pueden definirse para columnas" -#: catalog/aclchk.c:1138 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: catalog/aclchk.c:1148 +#, c-format msgid "permission denied to change default privileges" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para cambiar los privilegios por omisión" -#: catalog/aclchk.c:1256 +#: catalog/aclchk.c:1266 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "No puede utilizar la cláusula IN SCHEMA cuando se utiliza GRANT / REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:389 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7619 -#: commands/tablecmds.c:7689 commands/tablecmds.c:7801 -#: commands/tablecmds.c:7895 commands/tablecmds.c:7954 -#: commands/tablecmds.c:8043 commands/tablecmds.c:8073 -#: commands/tablecmds.c:8201 commands/tablecmds.c:8283 -#: commands/tablecmds.c:8417 commands/tablecmds.c:8525 -#: commands/tablecmds.c:12240 commands/tablecmds.c:12421 -#: commands/tablecmds.c:12582 commands/tablecmds.c:13744 -#: commands/tablecmds.c:16273 commands/trigger.c:949 parser/analyze.c:2480 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2884 -#: utils/adt/ruleutils.c:2799 +#: catalog/aclchk.c:1617 catalog/catalog.c:659 catalog/objectaddress.c:1523 +#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:951 +#: commands/sequence.c:1655 commands/tablecmds.c:7541 commands/tablecmds.c:7695 +#: commands/tablecmds.c:7745 commands/tablecmds.c:7819 +#: commands/tablecmds.c:7889 commands/tablecmds.c:8019 +#: commands/tablecmds.c:8148 commands/tablecmds.c:8242 +#: commands/tablecmds.c:8343 commands/tablecmds.c:8470 +#: commands/tablecmds.c:8500 commands/tablecmds.c:8642 +#: commands/tablecmds.c:8735 commands/tablecmds.c:8869 +#: commands/tablecmds.c:8981 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12989 commands/tablecmds.c:13150 +#: commands/tablecmds.c:14339 commands/tablecmds.c:16966 commands/trigger.c:942 +#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409 +#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923 +#: utils/adt/ruleutils.c:2812 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "no existe la columna «%s» en la relación «%s»" -#: catalog/aclchk.c:1840 +#: catalog/aclchk.c:1862 #, c-format msgid "\"%s\" is an index" msgstr "«%s» es un índice" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13901 commands/tablecmds.c:17200 +#: catalog/aclchk.c:1869 commands/tablecmds.c:14496 commands/tablecmds.c:17882 #, c-format msgid "\"%s\" is a composite type" msgstr "«%s» es un tipo compuesto" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17164 utils/adt/acl.c:2092 -#: utils/adt/acl.c:2122 utils/adt/acl.c:2154 utils/adt/acl.c:2186 -#: utils/adt/acl.c:2214 utils/adt/acl.c:2244 +#: catalog/aclchk.c:1877 catalog/objectaddress.c:1363 commands/tablecmds.c:263 +#: commands/tablecmds.c:17846 utils/adt/acl.c:2107 utils/adt/acl.c:2137 +#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237 +#: utils/adt/acl.c:2268 #, c-format msgid "\"%s\" is not a sequence" msgstr "«%s» no es una secuencia" -#: catalog/aclchk.c:1893 +#: catalog/aclchk.c:1915 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "la secuencia «%s» sólo soporta los privilegios USAGE, SELECT, y UPDATE" -#: catalog/aclchk.c:1910 +#: catalog/aclchk.c:1932 #, c-format msgid "invalid privilege type %s for table" msgstr "el tipo de privilegio %s no es válido para una tabla" -#: catalog/aclchk.c:2072 +#: catalog/aclchk.c:2097 #, c-format msgid "invalid privilege type %s for column" msgstr "el tipo de privilegio %s no es válido para una columna" -#: catalog/aclchk.c:2085 +#: catalog/aclchk.c:2110 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "la secuencia «%s» sólo soporta el privilegio SELECT" -#: catalog/aclchk.c:2275 +#: catalog/aclchk.c:2301 #, c-format msgid "language \"%s\" is not trusted" msgstr "el lenguaje «%s» no es confiable (trusted)" -#: catalog/aclchk.c:2277 +#: catalog/aclchk.c:2303 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." msgstr "GRANT y REVOKE no están permitidos en lenguajes no confiables, porque sólo los superusuarios pueden usar lenguajes no confiables." -#: catalog/aclchk.c:2427 +#: catalog/aclchk.c:2454 #, c-format msgid "cannot set privileges of array types" msgstr "no se puede definir privilegios para tipos de array" -#: catalog/aclchk.c:2428 +#: catalog/aclchk.c:2455 #, c-format msgid "Set the privileges of the element type instead." msgstr "Defina los privilegios del tipo elemento en su lugar." -#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 +#: catalog/aclchk.c:2459 +#, c-format +msgid "cannot set privileges of multirange types" +msgstr "no se puede definir privilegios para tipos multirango" + +#: catalog/aclchk.c:2460 +#, c-format +msgid "Set the privileges of the range type instead." +msgstr "Defina los privilegios del tipo de rango en su lugar." + +#: catalog/aclchk.c:2467 catalog/objectaddress.c:1629 #, c-format msgid "\"%s\" is not a domain" msgstr "«%s» no es un dominio" -#: catalog/aclchk.c:2621 +#: catalog/aclchk.c:2653 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "tipo de privilegio «%s» no reconocido" -#: catalog/aclchk.c:2688 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for aggregate %s" msgstr "permiso denegado a la función de agregación %s" -#: catalog/aclchk.c:2691 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for collation %s" msgstr "permiso denegado al ordenamiento (collation) %s" -#: catalog/aclchk.c:2694 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for column %s" msgstr "permiso denegado a la columna %s" -#: catalog/aclchk.c:2697 +#: catalog/aclchk.c:2729 #, c-format msgid "permission denied for conversion %s" msgstr "permiso denegado a la conversión %s" -#: catalog/aclchk.c:2700 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for database %s" msgstr "permiso denegado a la base de datos %s" -#: catalog/aclchk.c:2703 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for domain %s" msgstr "permiso denegado al dominio %s" -#: catalog/aclchk.c:2706 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for event trigger %s" -msgstr "permiso denegado al disparador por eventos %s" +msgstr "permiso denegado al “trigger” por eventos %s" -#: catalog/aclchk.c:2709 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for extension %s" msgstr "permiso denegado a la extensión %s" -#: catalog/aclchk.c:2712 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "permiso denegado al conector de datos externos %s" -#: catalog/aclchk.c:2715 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for foreign server %s" msgstr "permiso denegado al servidor foráneo %s" -#: catalog/aclchk.c:2718 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for foreign table %s" msgstr "permiso denegado a la tabla foránea %s" -#: catalog/aclchk.c:2721 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for function %s" msgstr "permiso denegado a la función %s" -#: catalog/aclchk.c:2724 +#: catalog/aclchk.c:2756 #, c-format msgid "permission denied for index %s" msgstr "permiso denegado al índice %s" -#: catalog/aclchk.c:2727 +#: catalog/aclchk.c:2759 #, c-format msgid "permission denied for language %s" msgstr "permiso denegado al lenguaje %s" -#: catalog/aclchk.c:2730 +#: catalog/aclchk.c:2762 #, c-format msgid "permission denied for large object %s" msgstr "permiso denegado al objeto grande %s" -#: catalog/aclchk.c:2733 +#: catalog/aclchk.c:2765 #, c-format msgid "permission denied for materialized view %s" msgstr "permiso denegado a la vista materializada %s" -#: catalog/aclchk.c:2736 +#: catalog/aclchk.c:2768 #, c-format msgid "permission denied for operator class %s" msgstr "permiso denegado a la clase de operadores %s" -#: catalog/aclchk.c:2739 +#: catalog/aclchk.c:2771 #, c-format msgid "permission denied for operator %s" msgstr "permiso denegado al operador %s" -#: catalog/aclchk.c:2742 +#: catalog/aclchk.c:2774 #, c-format msgid "permission denied for operator family %s" msgstr "permiso denegado a la familia de operadores %s" -#: catalog/aclchk.c:2745 +#: catalog/aclchk.c:2777 #, c-format msgid "permission denied for parameter %s" msgstr "permiso denegado al parámetro %s" -#: catalog/aclchk.c:2748 +#: catalog/aclchk.c:2780 #, c-format msgid "permission denied for policy %s" msgstr "permiso denegado a la política %s" -#: catalog/aclchk.c:2751 +#: catalog/aclchk.c:2783 #, c-format msgid "permission denied for procedure %s" msgstr "permiso denegado al procedimiento %s" -#: catalog/aclchk.c:2754 +#: catalog/aclchk.c:2786 #, c-format msgid "permission denied for publication %s" msgstr "permiso denegado a la publicación %s" -#: catalog/aclchk.c:2757 +#: catalog/aclchk.c:2789 #, c-format msgid "permission denied for routine %s" msgstr "permiso denegado a la rutina %s" -#: catalog/aclchk.c:2760 +#: catalog/aclchk.c:2792 #, c-format msgid "permission denied for schema %s" msgstr "permiso denegado al esquema %s" -#: catalog/aclchk.c:2763 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2795 commands/sequence.c:654 commands/sequence.c:880 +#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 +#: commands/sequence.c:1799 #, c-format msgid "permission denied for sequence %s" msgstr "permiso denegado a la secuencia %s" -#: catalog/aclchk.c:2766 +#: catalog/aclchk.c:2798 #, c-format msgid "permission denied for statistics object %s" msgstr "permiso denegado al objeto de estadísticas %s" -#: catalog/aclchk.c:2769 +#: catalog/aclchk.c:2801 #, c-format msgid "permission denied for subscription %s" msgstr "permiso denegado a la suscripción %s" -#: catalog/aclchk.c:2772 +#: catalog/aclchk.c:2804 #, c-format msgid "permission denied for table %s" msgstr "permiso denegado a la tabla %s" -#: catalog/aclchk.c:2775 +#: catalog/aclchk.c:2807 #, c-format msgid "permission denied for tablespace %s" msgstr "permiso denegado al tablespace %s" -#: catalog/aclchk.c:2778 +#: catalog/aclchk.c:2810 #, c-format msgid "permission denied for text search configuration %s" msgstr "permiso denegado a la configuración de búsqueda en texto %s" -#: catalog/aclchk.c:2781 +#: catalog/aclchk.c:2813 #, c-format msgid "permission denied for text search dictionary %s" msgstr "permiso denegado a la configuración de búsqueda en texto %s" -#: catalog/aclchk.c:2784 +#: catalog/aclchk.c:2816 #, c-format msgid "permission denied for type %s" msgstr "permiso denegado al tipo %s" -#: catalog/aclchk.c:2787 +#: catalog/aclchk.c:2819 #, c-format msgid "permission denied for view %s" msgstr "permiso denegado a la vista %s" -#: catalog/aclchk.c:2823 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of aggregate %s" msgstr "debe ser dueño de la función de agregación %s" -#: catalog/aclchk.c:2826 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of collation %s" msgstr "debe ser dueño del ordenamiento (collation) %s" -#: catalog/aclchk.c:2829 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of conversion %s" msgstr "debe ser dueño de la conversión %s" -#: catalog/aclchk.c:2832 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of database %s" msgstr "debe ser dueño de la base de datos %s" -#: catalog/aclchk.c:2835 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of domain %s" msgstr "debe ser dueño del dominio %s" -#: catalog/aclchk.c:2838 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of event trigger %s" -msgstr "debe ser dueño del disparador por eventos %s" +msgstr "debe ser dueño del “trigger” por eventos %s" -#: catalog/aclchk.c:2841 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of extension %s" msgstr "debe ser dueño de la extensión %s" -#: catalog/aclchk.c:2844 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "debe ser dueño del conector de datos externos %s" -#: catalog/aclchk.c:2847 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of foreign server %s" msgstr "debe ser dueño del servidor foráneo %s" -#: catalog/aclchk.c:2850 +#: catalog/aclchk.c:2882 #, c-format msgid "must be owner of foreign table %s" msgstr "debe ser dueño de la tabla foránea %s" -#: catalog/aclchk.c:2853 +#: catalog/aclchk.c:2885 #, c-format msgid "must be owner of function %s" msgstr "debe ser dueño de la función %s" -#: catalog/aclchk.c:2856 +#: catalog/aclchk.c:2888 #, c-format msgid "must be owner of index %s" msgstr "debe ser dueño del índice %s" -#: catalog/aclchk.c:2859 +#: catalog/aclchk.c:2891 #, c-format msgid "must be owner of language %s" msgstr "debe ser dueño del lenguaje %s" -#: catalog/aclchk.c:2862 +#: catalog/aclchk.c:2894 #, c-format msgid "must be owner of large object %s" msgstr "debe ser dueño del objeto grande %s" -#: catalog/aclchk.c:2865 +#: catalog/aclchk.c:2897 #, c-format msgid "must be owner of materialized view %s" msgstr "debe ser dueño de la vista materializada %s" -#: catalog/aclchk.c:2868 +#: catalog/aclchk.c:2900 #, c-format msgid "must be owner of operator class %s" msgstr "debe ser dueño de la clase de operadores %s" -#: catalog/aclchk.c:2871 +#: catalog/aclchk.c:2903 #, c-format msgid "must be owner of operator %s" msgstr "debe ser dueño del operador %s" -#: catalog/aclchk.c:2874 +#: catalog/aclchk.c:2906 #, c-format msgid "must be owner of operator family %s" msgstr "debe ser dueño de la familia de operadores %s" -#: catalog/aclchk.c:2877 +#: catalog/aclchk.c:2909 #, c-format msgid "must be owner of procedure %s" msgstr "debe ser dueño del procedimiento %s" -#: catalog/aclchk.c:2880 +#: catalog/aclchk.c:2912 #, c-format msgid "must be owner of publication %s" msgstr "debe ser dueño de la publicación %s" -#: catalog/aclchk.c:2883 +#: catalog/aclchk.c:2915 #, c-format msgid "must be owner of routine %s" msgstr "debe ser dueño de la rutina %s" -#: catalog/aclchk.c:2886 +#: catalog/aclchk.c:2918 #, c-format msgid "must be owner of sequence %s" msgstr "debe ser dueño de la secuencia %s" -#: catalog/aclchk.c:2889 +#: catalog/aclchk.c:2921 #, c-format msgid "must be owner of subscription %s" msgstr "debe ser dueño de la suscripción %s" -#: catalog/aclchk.c:2892 +#: catalog/aclchk.c:2924 #, c-format msgid "must be owner of table %s" msgstr "debe ser dueño de la tabla %s" -#: catalog/aclchk.c:2895 +#: catalog/aclchk.c:2927 #, c-format msgid "must be owner of type %s" msgstr "debe ser dueño del tipo %s" -#: catalog/aclchk.c:2898 +#: catalog/aclchk.c:2930 #, c-format msgid "must be owner of view %s" msgstr "debe ser dueño de la vista %s" -#: catalog/aclchk.c:2901 +#: catalog/aclchk.c:2933 #, c-format msgid "must be owner of schema %s" msgstr "debe ser dueño del esquema %s" -#: catalog/aclchk.c:2904 +#: catalog/aclchk.c:2936 #, c-format msgid "must be owner of statistics object %s" msgstr "debe ser dueño del objeto de estadísticas %s" -#: catalog/aclchk.c:2907 +#: catalog/aclchk.c:2939 #, c-format msgid "must be owner of tablespace %s" msgstr "debe ser dueño del tablespace %s" -#: catalog/aclchk.c:2910 +#: catalog/aclchk.c:2942 #, c-format msgid "must be owner of text search configuration %s" msgstr "debe ser dueño de la configuración de búsqueda en texto %s" -#: catalog/aclchk.c:2913 +#: catalog/aclchk.c:2945 #, c-format msgid "must be owner of text search dictionary %s" msgstr "debe ser dueño del diccionario de búsqueda en texto %s" -#: catalog/aclchk.c:2927 +#: catalog/aclchk.c:2959 #, c-format msgid "must be owner of relation %s" msgstr "debe ser dueño de la relación %s" -#: catalog/aclchk.c:2973 +#: catalog/aclchk.c:3005 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "permiso denegado a la columna «%s» de la relación «%s»" -#: catalog/aclchk.c:3108 catalog/aclchk.c:3994 catalog/aclchk.c:4026 -#, fuzzy, c-format -#| msgid "schema with OID %u does not exist" +#: catalog/aclchk.c:3162 catalog/aclchk.c:4170 catalog/aclchk.c:4201 +#, c-format msgid "%s with OID %u does not exist" -msgstr "no existe el esquema con OID %u" +msgstr "%s con el OID %u no existe" -#: catalog/aclchk.c:3192 catalog/aclchk.c:3211 +#: catalog/aclchk.c:3245 catalog/aclchk.c:3264 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "no existe el atributo %d de la relación con OID %u" -#: catalog/aclchk.c:3306 +#: catalog/aclchk.c:3302 catalog/aclchk.c:3365 catalog/aclchk.c:4004 #, c-format msgid "relation with OID %u does not exist" msgstr "no existe la relación con OID %u" -#: catalog/aclchk.c:3491 +#: catalog/aclchk.c:3550 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "no existe el ACL de parámetro con OID %u" -#: catalog/aclchk.c:3655 commands/collationcmds.c:808 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3723 commands/collationcmds.c:853 +#: commands/publicationcmds.c:1739 #, c-format msgid "schema with OID %u does not exist" msgstr "no existe el esquema con OID %u" -#: catalog/aclchk.c:3720 utils/cache/typcache.c:385 utils/cache/typcache.c:440 +#: catalog/aclchk.c:3797 catalog/aclchk.c:3824 catalog/aclchk.c:3853 +#: utils/cache/typcache.c:392 utils/cache/typcache.c:447 #, c-format msgid "type with OID %u does not exist" msgstr "no existe el tipo con OID %u" -#: catalog/catalog.c:449 +#: catalog/catalog.c:477 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "aún se está buscando algún OID sin utilizar en la relación «%s»" -#: catalog/catalog.c:451 +#: catalog/catalog.c:479 #, c-format msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." msgstr[0] "se han revisado los OID candidatos %llu vez, pero aún no se ha encontrado algún OID sin utilizar." msgstr[1] "se han revisado los OID candidatos %llu veces, pero aún no se ha encontrado algún OID sin utilizar." -#: catalog/catalog.c:476 +#: catalog/catalog.c:504 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" msgstr[0] "se ha asignado un nuevo OID en la relación «%s» luego de %llu reintento" msgstr[1] "se ha asignado un nuevo OID en la relación «%s» luego de %llu reintentos" -#: catalog/catalog.c:609 catalog/catalog.c:676 +#: catalog/catalog.c:637 catalog/catalog.c:704 #, c-format msgid "must be superuser to call %s()" msgstr "debe ser superusuario para invocar %s()" -#: catalog/catalog.c:618 +#: catalog/catalog.c:646 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() sólo puede usarse en catálogos de sistema" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:651 parser/parse_utilcmd.c:2270 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "el índice «%s» no pertenece a la tabla «%s»" -#: catalog/catalog.c:640 +#: catalog/catalog.c:668 #, c-format msgid "column \"%s\" is not of type oid" msgstr "la columna «%s» no es de tipo oid" -#: catalog/catalog.c:647 +#: catalog/catalog.c:675 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "«el índice %s» no es el índice para la columna «%s»" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "no se puede eliminar %s porque es requerido por el sistema" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:789 catalog/dependency.c:1016 #, c-format msgid "cannot drop %s because %s requires it" msgstr "no se puede eliminar %s porque %s lo requiere" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:791 catalog/dependency.c:1018 #, c-format msgid "You can drop %s instead." msgstr "Puede eliminar %s en su lugar." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1097 catalog/dependency.c:1106 #, c-format msgid "%s depends on %s" msgstr "%s depende de %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1121 catalog/dependency.c:1130 #, c-format msgid "drop cascades to %s" msgstr "eliminando además %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -4496,720 +4819,715 @@ msgstr[1] "" "\n" "y otros %d objetos (vea el registro del servidor para obtener la lista)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1150 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "no se puede eliminar %s porque otros objetos dependen de él" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14386 commands/tablespace.c:466 commands/user.c:1309 -#: commands/vacuum.c:212 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1135 storage/lmgr/proc.c:1358 utils/misc/guc.c:3120 -#: utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:6615 -#: utils/misc/guc.c:6649 utils/misc/guc.c:6683 utils/misc/guc.c:6726 -#: utils/misc/guc.c:6768 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 +#: catalog/dependency.c:1171 commands/tablecmds.c:1459 +#: commands/tablecmds.c:15088 commands/tablespace.c:460 commands/user.c:1302 +#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4655 +#: executor/execExprInterp.c:4663 libpq/auth.c:324 +#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1432 utils/misc/guc.c:3169 +#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6825 +#: utils/misc/guc.c:6859 utils/misc/guc.c:6893 utils/misc/guc.c:6936 +#: utils/misc/guc.c:6978 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1154 catalog/dependency.c:1161 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Use DROP ... CASCADE para eliminar además los objetos dependientes." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1158 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "no se puede eliminar el o los objetos deseados porque otros objetos dependen de ellos" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1166 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "eliminando además %d objeto más" msgstr[1] "eliminando además %d objetos más" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "no se puede usar una constante de tipo %s aquí" -#: catalog/dependency.c:2420 parser/parse_relation.c:3403 -#: parser/parse_relation.c:3413 +#: catalog/dependency.c:2375 parser/parse_relation.c:3407 +#: parser/parse_relation.c:3417 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "no existe la columna %d en la relación «%s»" -#: catalog/heap.c:324 +#: catalog/heap.c:325 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "se ha denegado el permiso para crear «%s.%s»" -#: catalog/heap.c:326 +#: catalog/heap.c:327 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "Las modificaciones al catálogo del sistema están actualmente deshabilitadas." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6922 +#: catalog/heap.c:467 commands/tablecmds.c:2495 commands/tablecmds.c:2917 +#: commands/tablecmds.c:7163 #, c-format msgid "tables can have at most %d columns" msgstr "las tablas pueden tener a lo más %d columnas" -#: catalog/heap.c:484 commands/tablecmds.c:7229 +#: catalog/heap.c:485 commands/tablecmds.c:7432 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "el nombre de columna «%s» colisiona con nombre de una columna de sistema" -#: catalog/heap.c:500 +#: catalog/heap.c:501 #, c-format msgid "column name \"%s\" specified more than once" msgstr "el nombre de columna «%s» fue especificado más de una vez" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:579 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "la columna %s de la llave de partición tiene pseudotipo %s" -#: catalog/heap.c:580 +#: catalog/heap.c:584 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "la columna «%s» tiene pseudotipo %s" -#: catalog/heap.c:611 +#: catalog/heap.c:615 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "un tipo compuesto %s no puede ser hecho miembro de sí mismo" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:670 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "no se derivó ningún ordenamiento (collate) para la columna %s de llave de partición con tipo ordenable %s" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "no se derivó ningún ordenamiento (collate) para la columna «%s» con tipo ordenable %s" -#: catalog/heap.c:1148 catalog/index.c:886 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401 +#: commands/tablecmds.c:4171 #, c-format msgid "relation \"%s\" already exists" msgstr "la relación «%s» ya existe" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 +#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 +#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 +#: commands/typecmds.c:1585 commands/typecmds.c:2556 #, c-format msgid "type \"%s\" already exists" msgstr "ya existe un tipo «%s»" -#: catalog/heap.c:1165 +#: catalog/heap.c:1178 #, 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 "Una relación tiene un tipo asociado del mismo nombre, de modo que debe usar un nombre que no entre en conflicto con un tipo existente." -#: catalog/heap.c:1205 -#, fuzzy, c-format -#| msgid "pg_enum OID value not set when in binary upgrade mode" +#: catalog/heap.c:1218 +#, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" -msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria" +msgstr "el valor de relfilenumber de toast no se definió en modo de actualización binaria" -#: catalog/heap.c:1216 +#: catalog/heap.c:1229 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "el valor de OID de heap de pg_class no se definió en modo de actualización binaria" -#: catalog/heap.c:1226 -#, fuzzy, c-format -#| msgid "pg_enum OID value not set when in binary upgrade mode" +#: catalog/heap.c:1239 +#, c-format msgid "relfilenumber value not set when in binary upgrade mode" -msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria" +msgstr "el valor de relfilenumber no se definió en modo de actualización binaria" -#: catalog/heap.c:2119 +#: catalog/heap.c:2130 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "no se puede agregar una restricción NO INHERIT a la tabla particionada «%s»" -#: catalog/heap.c:2393 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "la restricción «check» «%s» ya existe" -#: catalog/heap.c:2563 catalog/index.c:900 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8900 +#: catalog/heap.c:2574 catalog/index.c:913 catalog/pg_constraint.c:724 +#: commands/tablecmds.c:9356 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "la restricción «%s» para la relación «%s» ya existe" -#: catalog/heap.c:2570 +#: catalog/heap.c:2581 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "la restricción «%s» está en conflicto con la restricción no heredada de la relación «%s»" -#: catalog/heap.c:2581 +#: catalog/heap.c:2592 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "la restricción «%s» está en conflicto con la restricción heredada de la relación «%s»" -#: catalog/heap.c:2591 +#: catalog/heap.c:2602 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "la restricción «%s» está en conflicto con la restricción NOT VALID de la relación «%s»" -#: catalog/heap.c:2596 +#: catalog/heap.c:2607 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "mezclando la restricción «%s» con la definición heredada" -#: catalog/heap.c:2622 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15208 commands/tablecmds.c:15349 -#, fuzzy, c-format -#| msgid "too many command-line arguments" +#: catalog/heap.c:2633 catalog/pg_constraint.c:853 commands/tablecmds.c:3074 +#: commands/tablecmds.c:3377 commands/tablecmds.c:7089 +#: commands/tablecmds.c:15907 commands/tablecmds.c:16038 +#, c-format msgid "too many inheritance parents" -msgstr "demasiados argumentos de línea de órdenes" +msgstr "demasiados padres de herencia" -#: catalog/heap.c:2706 +#: catalog/heap.c:2717 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "no se puede usar la columna generada «%s» en una expresión de generación de columna" -#: catalog/heap.c:2708 +#: catalog/heap.c:2719 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Una columna generada no puede hacer referencia a otra columna generada." -#: catalog/heap.c:2714 +#: catalog/heap.c:2725 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "no se puede usar una variable de fila completa (whole-row) en una expresión de generación de columna" -#: catalog/heap.c:2715 +#: catalog/heap.c:2726 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Esto causaría que la columna generada dependa de su propio valor." -#: catalog/heap.c:2768 +#: catalog/heap.c:2781 #, c-format msgid "generation expression is not immutable" msgstr "la expresión de generación no es inmutable" -#: catalog/heap.c:2796 rewrite/rewriteHandler.c:1295 +#: catalog/heap.c:2809 rewrite/rewriteHandler.c:1276 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "la columna «%s» es de tipo %s pero la expresión default es de tipo %s" -#: catalog/heap.c:2801 commands/prepare.c:334 parser/analyze.c:2704 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1300 +#: catalog/heap.c:2814 commands/prepare.c:331 parser/analyze.c:2758 +#: parser/parse_target.c:592 parser/parse_target.c:882 +#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1281 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Necesitará reescribir la expresión o aplicarle una conversión de tipo." -#: catalog/heap.c:2848 +#: catalog/heap.c:2861 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "sólo la tabla «%s» puede ser referenciada en una restricción «check»" -#: catalog/heap.c:3154 +#: catalog/heap.c:3167 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "combinación de ON COMMIT y llaves foráneas no soportada" -#: catalog/heap.c:3155 +#: catalog/heap.c:3168 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "La tabla «%s» se refiere a «%s», pero no tienen la misma expresión para ON COMMIT." -#: catalog/heap.c:3160 +#: catalog/heap.c:3173 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "no se puede truncar una tabla referida en una llave foránea" -#: catalog/heap.c:3161 +#: catalog/heap.c:3174 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "La tabla «%s» hace referencia a «%s»." -#: catalog/heap.c:3163 +#: catalog/heap.c:3176 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Trunque la tabla «%s» al mismo tiempo, o utilice TRUNCATE ... CASCADE." -#: catalog/index.c:224 parser/parse_utilcmd.c:2170 +#: catalog/index.c:219 parser/parse_utilcmd.c:2176 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "no se permiten múltiples llaves primarias para la tabla «%s»" -#: catalog/index.c:238 -#, fuzzy, c-format -#| msgid "primary keys cannot be expressions" +#: catalog/index.c:233 +#, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" -msgstr "las llaves primarias no pueden ser expresiones" +msgstr "las llaves primarias no pueden usar índices NULLS NOT DISTINCT" -#: catalog/index.c:255 +#: catalog/index.c:250 #, c-format msgid "primary keys cannot be expressions" msgstr "las llaves primarias no pueden ser expresiones" -#: catalog/index.c:272 +#: catalog/index.c:267 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "columna de llave primaria «%s» no está marcada NOT NULL" -#: catalog/index.c:785 catalog/index.c:1941 +#: catalog/index.c:798 catalog/index.c:1915 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "los usuarios no pueden crear índices en tablas del sistema" -#: catalog/index.c:825 +#: catalog/index.c:838 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "los ordenamientos no determinísticos no están soportados para la clase de operadores «%s»" -#: catalog/index.c:840 +#: catalog/index.c:853 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "no se pueden crear índices de forma concurrente en tablas del sistema" -#: catalog/index.c:849 catalog/index.c:1317 +#: catalog/index.c:862 catalog/index.c:1331 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "no se pueden crear índices para restricciones de exclusión de forma concurrente" -#: catalog/index.c:858 +#: catalog/index.c:871 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "no se pueden crear índices compartidos después de initdb" -#: catalog/index.c:878 commands/createas.c:423 commands/sequence.c:158 +#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159 #: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "la relación «%s» ya existe, omitiendo" -#: catalog/index.c:928 +#: catalog/index.c:941 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "el valor de OID de índice de pg_class no se definió en modo de actualización binaria" -#: catalog/index.c:938 utils/cache/relcache.c:3730 -#, fuzzy, c-format -#| msgid "pg_enum OID value not set when in binary upgrade mode" +#: catalog/index.c:951 utils/cache/relcache.c:3791 +#, c-format msgid "index relfilenumber value not set when in binary upgrade mode" -msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria" +msgstr "el valor relfilenumber de índice no se definió en modo de actualización binaria" -#: catalog/index.c:2240 +#: catalog/index.c:2214 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY debe ser la primera acción en una transacción" -#: catalog/index.c:3647 +#: catalog/index.c:3668 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "no se puede hacer reindex de tablas temporales de otras sesiones" -#: catalog/index.c:3658 commands/indexcmds.c:3623 +#: catalog/index.c:3679 commands/indexcmds.c:3626 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "no es posible reindexar un índice no válido en tabla TOAST" -#: catalog/index.c:3674 commands/indexcmds.c:3503 commands/indexcmds.c:3647 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3695 commands/indexcmds.c:3504 commands/indexcmds.c:3650 +#: commands/tablecmds.c:3581 #, c-format msgid "cannot move system relation \"%s\"" msgstr "no se puede mover la relación de sistema «%s»" -#: catalog/index.c:3818 +#: catalog/index.c:3832 #, c-format msgid "index \"%s\" was reindexed" msgstr "el índice «%s» fue reindexado" -#: catalog/index.c:3955 +#: catalog/index.c:3998 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "no se puede reindexar el índice no válido «%s.%s» en tabla TOAST, omitiendo" -#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5687 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 +#: commands/trigger.c:5729 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "no están implementadas las referencias entre bases de datos: «%s.%s.%s»" -#: catalog/namespace.c:317 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "las tablas temporales no pueden especificar un nombre de esquema" -#: catalog/namespace.c:398 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" -msgstr "no se pudo bloquear un candado en la relación «%s.%s»" +msgstr "no se pudo bloquear un “lock” en la relación «%s.%s»" -#: catalog/namespace.c:403 commands/lockcmds.c:145 commands/lockcmds.c:225 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" -msgstr "no se pudo bloquear un candado en la relación «%s»" +msgstr "no se pudo bloquear un “lock” en la relación «%s»" -#: catalog/namespace.c:431 parser/parse_relation.c:1429 +#: catalog/namespace.c:633 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "no existe la relación «%s.%s»" -#: catalog/namespace.c:436 parser/parse_relation.c:1442 -#: parser/parse_relation.c:1450 utils/adt/regproc.c:913 +#: catalog/namespace.c:638 parser/parse_relation.c:1443 +#: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "no existe la relación «%s»" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1584 -#: commands/extension.c:1590 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1607 +#: commands/extension.c:1613 #, c-format msgid "no schema has been selected to create in" msgstr "no se ha seleccionado ningún esquema dentro del cual crear" -#: catalog/namespace.c:654 catalog/namespace.c:667 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "no se pueden crear relaciones en esquemas temporales de otras sesiones" -#: catalog/namespace.c:658 +#: catalog/namespace.c:860 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "no se pueden crear tablas temporales en esquemas no temporales" -#: catalog/namespace.c:673 +#: catalog/namespace.c:875 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "sólo relaciones temporales pueden ser creadas en los esquemas temporales" -#: catalog/namespace.c:2265 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "no existe el objeto de estadísticas «%s»" -#: catalog/namespace.c:2388 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "no existe el analizador de búsqueda en texto «%s»" -#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "no existe el diccionario de búsqueda en texto «%s»" -#: catalog/namespace.c:2641 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "no existe la plantilla de búsqueda en texto «%s»" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "no existe la configuración de búsqueda en texto «%s»" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:3329 parser/parse_expr.c:868 parser/parse_target.c:1259 #, c-format msgid "cross-database references are not implemented: %s" msgstr "no están implementadas las referencias entre bases de datos: %s" -#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253 -#: gram.y:18570 gram.y:18610 +#: catalog/namespace.c:3335 parser/parse_expr.c:875 parser/parse_target.c:1266 +#: gram.y:19181 gram.y:19221 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "el nombre no es válido (demasiados puntos): %s" -#: catalog/namespace.c:3016 +#: catalog/namespace.c:3465 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "no se puede mover objetos hacia o desde esquemas temporales" -#: catalog/namespace.c:3022 +#: catalog/namespace.c:3471 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "no se puede mover objetos hacia o desde el esquema TOAST" -#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1404 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "no existe el esquema «%s»" -#: catalog/namespace.c:3126 +#: catalog/namespace.c:3575 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "el nombre de relación no es válido (demasiados puntos): %s" -#: catalog/namespace.c:3693 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "no existe el ordenamiento (collation) «%s» para la codificación «%s»" -#: catalog/namespace.c:3748 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "no existe la conversión «%s»" -#: catalog/namespace.c:4012 +#: catalog/namespace.c:4412 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "se ha denegado el permiso para crear tablas temporales en la base de datos «%s»" -#: catalog/namespace.c:4028 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "no se pueden crear tablas temporales durante la recuperación" -#: catalog/namespace.c:4034 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "no se pueden crear tablas temporales durante una operación paralela" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12357 +#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 +#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2327 +#: commands/tablecmds.c:12925 #, c-format msgid "\"%s\" is not a table" msgstr "«%s» no es una tabla" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17169 commands/view.c:119 +#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 +#: commands/tablecmds.c:17851 commands/view.c:114 #, c-format msgid "\"%s\" is not a view" msgstr "«%s» no es una vista" -#: catalog/objectaddress.c:1423 commands/matview.c:187 commands/tablecmds.c:266 -#: commands/tablecmds.c:17174 +#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275 +#: commands/tablecmds.c:17856 #, c-format msgid "\"%s\" is not a materialized view" msgstr "«%s» no es una vista materializada" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17179 +#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 +#: commands/tablecmds.c:17861 #, c-format msgid "\"%s\" is not a foreign table" msgstr "«%s» no es una tabla foránea" -#: catalog/objectaddress.c:1471 +#: catalog/objectaddress.c:1433 #, c-format msgid "must specify relation and object name" msgstr "debe especificar nombre de relación y nombre de objeto" -#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 +#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 #, c-format msgid "column name must be qualified" msgstr "el nombre de columna debe ser calificado" -#: catalog/objectaddress.c:1619 +#: catalog/objectaddress.c:1581 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "no existe el valor por omisión para la columna «%s» de la relación «%s»" -#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3689 +#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 +#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4449 +#: utils/adt/acl.c:4560 #, c-format msgid "type \"%s\" does not exist" msgstr "no existe el tipo «%s»" -#: catalog/objectaddress.c:1775 +#: catalog/objectaddress.c:1737 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "no existe el operador %d (%s, %s) de %s" -#: catalog/objectaddress.c:1806 +#: catalog/objectaddress.c:1768 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "no existe la función %d (%s, %s) de %s" -#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 +#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "no existe el mapeo para el usuario «%s» en el servidor «%s»" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "no existe el servidor «%s»" -#: catalog/objectaddress.c:1939 +#: catalog/objectaddress.c:1901 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "no existe la relación «%s» en la publicación «%s»" -#: catalog/objectaddress.c:1986 -#, fuzzy, c-format -#| msgid "publication relation \"%s\" in publication \"%s\" does not exist" +#: catalog/objectaddress.c:1948 +#, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" -msgstr "no existe la relación «%s» en la publicación «%s»" +msgstr "no existe el esquema de publicación «%s» en la publicación «%s»" -#: catalog/objectaddress.c:2044 +#: catalog/objectaddress.c:2006 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "tipo de objeto para ACL por omisión «%c» no reconocido" -#: catalog/objectaddress.c:2045 +#: catalog/objectaddress.c:2007 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "Tipos válidos de objeto son «%c», «%c», «%c», «%c» y «%c»." -#: catalog/objectaddress.c:2096 +#: catalog/objectaddress.c:2058 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "no existe el ACL por omisión para el usuario «%s» en el esquema «%s» en %s" -#: catalog/objectaddress.c:2101 +#: catalog/objectaddress.c:2063 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "no existe el ACL por omisión para el usuario «%s» en %s" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 +#: catalog/objectaddress.c:2201 #, c-format msgid "name or argument lists may not contain nulls" msgstr "las listas de nombres o argumentos no pueden contener nulls" -#: catalog/objectaddress.c:2161 +#: catalog/objectaddress.c:2123 #, c-format msgid "unsupported object type \"%s\"" msgstr "tipo de objeto «%s» no soportado" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 +#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 #, c-format msgid "name list length must be exactly %d" msgstr "el largo de la lista de nombres debe ser exactamente %d" -#: catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2163 #, c-format msgid "large object OID may not be null" msgstr "el OID de objeto grande no puede ser null" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 +#: catalog/objectaddress.c:2249 #, c-format msgid "name list length must be at least %d" msgstr "el largo de la lista de nombres debe ser al menos %d" -#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 +#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 #, c-format msgid "argument list length must be exactly %d" msgstr "el largo de la lista de argumentos debe ser exactamente %d" -#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "debe ser dueño del objeto grande %u" -#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 +#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 #, c-format msgid "must be owner of type %s or type %s" msgstr "debe ser dueño del tipo %s o el tipo %s" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 +#: catalog/objectaddress.c:2527 #, c-format msgid "permission denied" msgstr "permiso denegado" -#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 #, c-format msgid "The current user must have the %s attribute." -msgstr "" +msgstr "El usuario actual debe tener el atributo %s." -#: catalog/objectaddress.c:2566 +#: catalog/objectaddress.c:2528 #, c-format msgid "The current user must have the %s option on role \"%s\"." -msgstr "" +msgstr "El usuario actual debe tener la opción %s en el rol «%s»." -#: catalog/objectaddress.c:2580 +#: catalog/objectaddress.c:2542 #, c-format msgid "must be superuser" msgstr "debe ser superusuario" -#: catalog/objectaddress.c:2649 +#: catalog/objectaddress.c:2611 #, c-format msgid "unrecognized object type \"%s\"" msgstr "tipo de objeto «%s» no reconocido" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2941 +#: catalog/objectaddress.c:2928 #, c-format msgid "column %s of %s" msgstr "columna %s de %s" -#: catalog/objectaddress.c:2956 +#: catalog/objectaddress.c:2943 #, c-format msgid "function %s" msgstr "función %s" -#: catalog/objectaddress.c:2969 +#: catalog/objectaddress.c:2956 #, c-format msgid "type %s" msgstr "tipo %s" -#: catalog/objectaddress.c:3006 +#: catalog/objectaddress.c:2993 #, c-format msgid "cast from %s to %s" msgstr "conversión de %s a %s" -#: catalog/objectaddress.c:3039 +#: catalog/objectaddress.c:3026 #, c-format msgid "collation %s" msgstr "ordenamiento (collation) %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3057 #, c-format msgid "constraint %s on %s" msgstr "restricción «%s» en %s" -#: catalog/objectaddress.c:3076 +#: catalog/objectaddress.c:3063 #, c-format msgid "constraint %s" msgstr "restricción %s" -#: catalog/objectaddress.c:3108 +#: catalog/objectaddress.c:3095 #, c-format msgid "conversion %s" msgstr "conversión %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3130 +#: catalog/objectaddress.c:3117 #, c-format msgid "default value for %s" msgstr "valor por omisión para %s" -#: catalog/objectaddress.c:3141 +#: catalog/objectaddress.c:3128 #, c-format msgid "language %s" msgstr "lenguaje %s" -#: catalog/objectaddress.c:3149 +#: catalog/objectaddress.c:3136 #, c-format msgid "large object %u" msgstr "objeto grande %u" -#: catalog/objectaddress.c:3162 +#: catalog/objectaddress.c:3149 #, c-format msgid "operator %s" msgstr "operador %s" -#: catalog/objectaddress.c:3199 +#: catalog/objectaddress.c:3186 #, c-format msgid "operator class %s for access method %s" msgstr "clase de operadores «%s» para el método de acceso «%s»" -#: catalog/objectaddress.c:3227 +#: catalog/objectaddress.c:3214 #, c-format msgid "access method %s" msgstr "método de acceso %s" @@ -5218,7 +5536,7 @@ msgstr "método de acceso %s" #. 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:3276 +#: catalog/objectaddress.c:3269 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "operador %d (%s, %s) de %s: %s" @@ -5227,237 +5545,236 @@ msgstr "operador %d (%s, %s) de %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 #. function with arguments. -#: catalog/objectaddress.c:3333 +#: catalog/objectaddress.c:3334 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "función %d (%s, %s) de %s: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3385 +#: catalog/objectaddress.c:3388 #, c-format msgid "rule %s on %s" msgstr "regla %s en %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3431 +#: catalog/objectaddress.c:3434 #, c-format msgid "trigger %s on %s" -msgstr "disparador %s en %s" +msgstr "“trigger” %s en %s" -#: catalog/objectaddress.c:3451 +#: catalog/objectaddress.c:3454 #, c-format msgid "schema %s" msgstr "esquema %s" -#: catalog/objectaddress.c:3479 +#: catalog/objectaddress.c:3482 #, c-format msgid "statistics object %s" msgstr "objeto de estadísticas %s" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3513 #, c-format msgid "text search parser %s" msgstr "analizador de búsqueda en texto %s" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3544 #, c-format msgid "text search dictionary %s" msgstr "diccionario de búsqueda en texto %s" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3575 #, c-format msgid "text search template %s" msgstr "plantilla de búsqueda en texto %s" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3606 #, c-format msgid "text search configuration %s" msgstr "configuración de búsqueda en texto %s" -#: catalog/objectaddress.c:3616 +#: catalog/objectaddress.c:3619 #, c-format msgid "role %s" msgstr "rol %s" -#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 -#, fuzzy, c-format -#| msgid "removal of role \"%s\" failed: %s" +#: catalog/objectaddress.c:3656 catalog/objectaddress.c:5505 +#, c-format msgid "membership of role %s in role %s" -msgstr "falló la eliminación del rol «%s»: %s" +msgstr "membresía del rol %s en el rol %s" -#: catalog/objectaddress.c:3674 +#: catalog/objectaddress.c:3677 #, c-format msgid "database %s" msgstr "base de datos %s" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3693 #, c-format msgid "tablespace %s" msgstr "tablespace %s" -#: catalog/objectaddress.c:3701 +#: catalog/objectaddress.c:3704 #, c-format msgid "foreign-data wrapper %s" msgstr "conector de datos externos %s" -#: catalog/objectaddress.c:3711 +#: catalog/objectaddress.c:3714 #, c-format msgid "server %s" msgstr "servidor %s" -#: catalog/objectaddress.c:3744 +#: catalog/objectaddress.c:3747 #, c-format msgid "user mapping for %s on server %s" msgstr "mapeo para el usuario %s en el servidor %s" -#: catalog/objectaddress.c:3796 +#: catalog/objectaddress.c:3799 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "privilegios por omisión en nuevas relaciones pertenecientes al rol %s en el esquema %s" -#: catalog/objectaddress.c:3800 +#: catalog/objectaddress.c:3803 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "privilegios por omisión en nuevas relaciones pertenecientes al rol %s" -#: catalog/objectaddress.c:3806 +#: catalog/objectaddress.c:3809 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "privilegios por omisión en nuevas secuencias pertenecientes al rol %s en el esquema %s" -#: catalog/objectaddress.c:3810 +#: catalog/objectaddress.c:3813 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "privilegios por omisión en nuevas secuencias pertenecientes al rol %s" -#: catalog/objectaddress.c:3816 +#: catalog/objectaddress.c:3819 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "privilegios por omisión en nuevas funciones pertenecientes al rol %s en el esquema %s" -#: catalog/objectaddress.c:3820 +#: catalog/objectaddress.c:3823 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "privilegios por omisión en nuevas funciones pertenecientes al rol %s" -#: catalog/objectaddress.c:3826 +#: catalog/objectaddress.c:3829 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "privilegios por omisión en nuevos tipos pertenecientes al rol %s en el esquema %s" -#: catalog/objectaddress.c:3830 +#: catalog/objectaddress.c:3833 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "privilegios por omisión en nuevos tipos pertenecientes al rol %s" -#: catalog/objectaddress.c:3836 +#: catalog/objectaddress.c:3839 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "privilegios por omisión en nuevos esquemas pertenecientes al rol %s" -#: catalog/objectaddress.c:3843 +#: catalog/objectaddress.c:3846 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "privilegios por omisión pertenecientes al rol %s en el esquema %s" -#: catalog/objectaddress.c:3847 +#: catalog/objectaddress.c:3850 #, c-format msgid "default privileges belonging to role %s" msgstr "privilegios por omisión pertenecientes al rol %s" -#: catalog/objectaddress.c:3869 +#: catalog/objectaddress.c:3872 #, c-format msgid "extension %s" msgstr "extensión %s" -#: catalog/objectaddress.c:3886 +#: catalog/objectaddress.c:3889 #, c-format msgid "event trigger %s" -msgstr "disparador por eventos %s" +msgstr "“trigger” por eventos %s" -#: catalog/objectaddress.c:3910 +#: catalog/objectaddress.c:3913 #, c-format msgid "parameter %s" msgstr "parámetro %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3953 +#: catalog/objectaddress.c:3956 #, c-format msgid "policy %s on %s" msgstr "política %s en %s" -#: catalog/objectaddress.c:3967 +#: catalog/objectaddress.c:3970 #, c-format msgid "publication %s" msgstr "publicación %s" -#: catalog/objectaddress.c:3980 +#: catalog/objectaddress.c:3983 #, c-format msgid "publication of schema %s in publication %s" msgstr "publicación de esquema %s en la publicación %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:4011 +#: catalog/objectaddress.c:4014 #, c-format msgid "publication of %s in publication %s" msgstr "publicación de %s en la publicación %s" -#: catalog/objectaddress.c:4024 +#: catalog/objectaddress.c:4027 #, c-format msgid "subscription %s" msgstr "suscripción %s" -#: catalog/objectaddress.c:4045 +#: catalog/objectaddress.c:4048 #, c-format msgid "transform for %s language %s" msgstr "transformación para %s lenguaje %s" -#: catalog/objectaddress.c:4116 +#: catalog/objectaddress.c:4117 #, c-format msgid "table %s" msgstr "tabla %s" -#: catalog/objectaddress.c:4121 +#: catalog/objectaddress.c:4122 #, c-format msgid "index %s" msgstr "índice %s" -#: catalog/objectaddress.c:4125 +#: catalog/objectaddress.c:4126 #, c-format msgid "sequence %s" msgstr "secuencia %s" -#: catalog/objectaddress.c:4129 +#: catalog/objectaddress.c:4130 #, c-format msgid "toast table %s" msgstr "tabla toast %s" -#: catalog/objectaddress.c:4133 +#: catalog/objectaddress.c:4134 #, c-format msgid "view %s" msgstr "vista %s" -#: catalog/objectaddress.c:4137 +#: catalog/objectaddress.c:4138 #, c-format msgid "materialized view %s" msgstr "vista materializada %s" -#: catalog/objectaddress.c:4141 +#: catalog/objectaddress.c:4142 #, c-format msgid "composite type %s" msgstr "tipo compuesto %s" -#: catalog/objectaddress.c:4145 +#: catalog/objectaddress.c:4146 #, c-format msgid "foreign table %s" msgstr "tabla foránea %s" -#: catalog/objectaddress.c:4150 +#: catalog/objectaddress.c:4151 #, c-format msgid "relation %s" msgstr "relación %s" -#: catalog/objectaddress.c:4191 +#: catalog/objectaddress.c:4192 #, c-format msgid "operator family %s for access method %s" msgstr "familia de operadores %s para el método de acceso %s" @@ -5499,7 +5816,7 @@ msgstr "no se puede omitir el valor inicial cuando la función de transición es msgid "return type of inverse transition function %s is not %s" msgstr "el tipo de retorno de la función inversa de transición %s no es %s" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2991 #, c-format msgid "strictness of aggregate's forward and inverse transition functions must match" msgstr "la opción «strict» de las funciones de transición directa e inversa deben coincidir exactamente en la función de agregación" @@ -5514,7 +5831,7 @@ msgstr "la función final con argumentos extra no debe declararse STRICT" msgid "return type of combine function %s is not %s" msgstr "el tipo de retorno de la función «combine» %s no es %s" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "la función «combine» con tipo de transición %s no debe declararse STRICT" @@ -5529,12 +5846,12 @@ msgstr "el tipo de retorno de la función de serialización %s no es %s" msgid "return type of deserialization function %s is not %s" msgstr "el tipo de retorno de la función de deserialización %s no es %s" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 #, c-format msgid "cannot determine result data type" msgstr "no se puede determinar el tipo de dato del resultado" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:204 catalog/pg_proc.c:233 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "uso inseguro de pseudotipo «internal»" @@ -5549,7 +5866,7 @@ msgstr "la implementación de la función de agregación en modo «moving» devu msgid "sort operator can only be specified for single-argument aggregates" msgstr "el operador de ordenamiento sólo puede ser especificado para funciones de agregación de un solo argumento" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:386 +#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 #, c-format msgid "cannot change routine kind" msgstr "no se puede cambiar el tipo de rutina" @@ -5574,13 +5891,13 @@ msgstr "«%s» es una agregación de conjunto hipotético." msgid "cannot change number of direct arguments of an aggregate function" msgstr "no se puede cambiar cantidad de argumentos directos de una función de agregación" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 -#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 -#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 -#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 -#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 +#: commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 +#: commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 +#: commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 +#: commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 +#: parser/parse_func.c:631 parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "no existe la función %s" @@ -5655,133 +5972,133 @@ msgstr "Esta operación no está soportada en tablas particionadas." msgid "This operation is not supported for partitioned indexes." msgstr "Esta operación no está soportada en índices particionados." -#: catalog/pg_collation.c:102 catalog/pg_collation.c:160 +#: catalog/pg_collation.c:101 catalog/pg_collation.c:159 #, c-format msgid "collation \"%s\" already exists, skipping" msgstr "el ordenamiento «%s» ya existe, omitiendo" -#: catalog/pg_collation.c:104 +#: catalog/pg_collation.c:103 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists, skipping" msgstr "el ordenamiento «%s» para la codificación «%s» ya existe, omitiendo" -#: catalog/pg_collation.c:112 catalog/pg_collation.c:167 +#: catalog/pg_collation.c:111 catalog/pg_collation.c:166 #, c-format msgid "collation \"%s\" already exists" msgstr "el ordenamiento «%s» ya existe" -#: catalog/pg_collation.c:114 +#: catalog/pg_collation.c:113 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "la codificación «%2$s» ya tiene un ordenamiento llamado «%1$s»" -#: catalog/pg_constraint.c:690 +#: catalog/pg_constraint.c:732 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "el dominio %2$s ya contiene una restricción llamada «%1$s»" -#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 +#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "no existe la restricción «%s» para la tabla «%s»" -#: catalog/pg_constraint.c:1083 +#: catalog/pg_constraint.c:1125 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "no existe la restricción «%s» para el dominio %s" -#: catalog/pg_conversion.c:67 +#: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" msgstr "ya existe la conversión «%s»" -#: catalog/pg_conversion.c:80 +#: catalog/pg_conversion.c:77 #, c-format msgid "default conversion for %s to %s already exists" msgstr "ya existe una conversión por omisión desde %s a %s" -#: catalog/pg_depend.c:222 commands/extension.c:3344 +#: catalog/pg_depend.c:224 commands/extension.c:3397 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "«%s» ya es un miembro de la extensión «%s»" -#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3384 +#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s no es un miembro de la extensión «%s»" -#: catalog/pg_depend.c:232 +#: catalog/pg_depend.c:234 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "A una extensión no se le permite reemplazar un objeto que no posee." -#: catalog/pg_depend.c:283 +#: catalog/pg_depend.c:285 #, c-format msgid "An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns." msgstr "Una extensión sólo puede usar CREATE ... IF NOT EXISTS para omitir la creación de un objeto si el objeto en conflicto es uno de cual ya es dueña." -#: catalog/pg_depend.c:646 +#: catalog/pg_depend.c:648 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "no se puede eliminar dependencia a %s porque es un objeto requerido por el sistema" -#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554 +#: catalog/pg_enum.c:175 catalog/pg_enum.c:314 catalog/pg_enum.c:624 #, c-format msgid "invalid enum label \"%s\"" msgstr "la etiqueta enum «%s» no es válida" -#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555 +#: catalog/pg_enum.c:176 catalog/pg_enum.c:315 catalog/pg_enum.c:625 #, c-format msgid "Labels must be %d bytes or less." msgstr "Las etiquetas deben ser de %d bytes o menos." -#: catalog/pg_enum.c:288 +#: catalog/pg_enum.c:343 #, c-format msgid "enum label \"%s\" already exists, skipping" msgstr "la etiqueta de enum «%s» ya existe, omitiendo" -#: catalog/pg_enum.c:295 catalog/pg_enum.c:598 +#: catalog/pg_enum.c:350 catalog/pg_enum.c:668 #, c-format msgid "enum label \"%s\" already exists" msgstr "la etiqueta de enum «%s» ya existe" -#: catalog/pg_enum.c:350 catalog/pg_enum.c:593 +#: catalog/pg_enum.c:405 catalog/pg_enum.c:663 #, c-format msgid "\"%s\" is not an existing enum label" msgstr "«%s» no es una etiqueta de enum existente" -#: catalog/pg_enum.c:408 +#: catalog/pg_enum.c:463 #, c-format msgid "pg_enum OID value not set when in binary upgrade mode" msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria" -#: catalog/pg_enum.c:418 +#: catalog/pg_enum.c:473 #, c-format msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade" msgstr "ALTER TYPE ADD BEFORE/AFTER es incompatible con la actualización binaria" -#: catalog/pg_inherits.c:593 +#: catalog/pg_inherits.c:592 #, c-format msgid "cannot detach partition \"%s\"" msgstr "no se puede desprender la partición «%s»" -#: catalog/pg_inherits.c:595 +#: catalog/pg_inherits.c:594 #, c-format msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "La partición está siendo desprendida de forma concurrente o tiene un desprendimiento sin terminar." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15464 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4800 +#: commands/tablecmds.c:16153 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Utilice ALTER TABLE ... DETACH PARTITION ... FINALIZE para completar la operación de desprendimiento pendiente." -#: catalog/pg_inherits.c:600 +#: catalog/pg_inherits.c:599 #, c-format msgid "cannot complete detaching partition \"%s\"" msgstr "no se puede completar el desprendimiento de la partición «%s»" -#: catalog/pg_inherits.c:602 +#: catalog/pg_inherits.c:601 #, c-format msgid "There's no pending concurrent detach." msgstr "No hay desprendimientos concurrentes pendientes." @@ -5791,116 +6108,129 @@ msgstr "No hay desprendimientos concurrentes pendientes." msgid "schema \"%s\" already exists" msgstr "ya existe el esquema «%s»" -#: catalog/pg_operator.c:219 catalog/pg_operator.c:361 +#: catalog/pg_operator.c:213 catalog/pg_operator.c:355 #, c-format msgid "\"%s\" is not a valid operator name" msgstr "«%s» no es un nombre válido de operador" -#: catalog/pg_operator.c:370 +#: catalog/pg_operator.c:379 +#, c-format +msgid "operator %s already exists" +msgstr "ya existe un operador %s" + +#: catalog/pg_operator.c:445 commands/operatorcmds.c:600 +#, c-format +msgid "operator cannot be its own negator" +msgstr "un operador no puede ser su propio negador" + +#: catalog/pg_operator.c:572 #, c-format msgid "only binary operators can have commutators" msgstr "sólo los operadores binarios pueden tener conmutadores" -#: catalog/pg_operator.c:374 commands/operatorcmds.c:509 +#: catalog/pg_operator.c:576 #, c-format msgid "only binary operators can have join selectivity" msgstr "sólo los operadores binarios pueden tener selectividad de join" -#: catalog/pg_operator.c:378 +#: catalog/pg_operator.c:580 #, c-format msgid "only binary operators can merge join" msgstr "sólo los operadores binarios pueden ser usados en merge join" -#: catalog/pg_operator.c:382 +#: catalog/pg_operator.c:584 #, c-format msgid "only binary operators can hash" msgstr "sólo los operadores binarios pueden ser usados en hash" -#: catalog/pg_operator.c:393 +#: catalog/pg_operator.c:593 #, c-format msgid "only boolean operators can have negators" msgstr "sólo los operadores booleanos pueden tener negadores" -#: catalog/pg_operator.c:397 commands/operatorcmds.c:517 +#: catalog/pg_operator.c:597 #, c-format msgid "only boolean operators can have restriction selectivity" msgstr "sólo los operadores booleanos pueden tener selectividad de restricción" -#: catalog/pg_operator.c:401 commands/operatorcmds.c:521 +#: catalog/pg_operator.c:601 #, c-format msgid "only boolean operators can have join selectivity" msgstr "sólo los operadores booleanos pueden tener selectividad de join" -#: catalog/pg_operator.c:405 +#: catalog/pg_operator.c:605 #, c-format msgid "only boolean operators can merge join" msgstr "sólo los operadores booleanos pueden ser usados en merge join" -#: catalog/pg_operator.c:409 +#: catalog/pg_operator.c:609 #, c-format msgid "only boolean operators can hash" msgstr "sólo los operadores booleanos pueden ser usados en hash" -#: catalog/pg_operator.c:421 +#: catalog/pg_operator.c:739 #, c-format -msgid "operator %s already exists" -msgstr "ya existe un operador %s" +msgid "commutator operator %s is already the commutator of operator %s" +msgstr "el operator de conmutación %s ya es el conmutador del operador %s" -#: catalog/pg_operator.c:621 +#: catalog/pg_operator.c:744 #, c-format -msgid "operator cannot be its own negator or sort operator" -msgstr "un operador no puede ser su propio negador u operador de ordenamiento" +msgid "commutator operator %s is already the commutator of operator %u" +msgstr "el operator de conmutación %s ya es el conmutador del operador %u" -#: catalog/pg_parameter_acl.c:53 -#, fuzzy, c-format -#| msgid "parameter ACL with OID %u does not exist" -msgid "parameter ACL \"%s\" does not exist" -msgstr "no existe el ACL de parámetro con OID %u" +#: catalog/pg_operator.c:807 +#, c-format +msgid "negator operator %s is already the negator of operator %s" +msgstr "el operator de negación %s ya es el negador del operador %s" -#: catalog/pg_parameter_acl.c:88 -#, fuzzy, c-format -#| msgid "invalid type name \"%s\"" -msgid "invalid parameter name \"%s\"" -msgstr "el nombre de tipo «%s» no es válido" +#: catalog/pg_operator.c:812 +#, c-format +msgid "negator operator %s is already the negator of operator %u" +msgstr "el operator de negación %s ya es el negador del operador %u" + +#: catalog/pg_parameter_acl.c:50 +#, c-format +msgid "parameter ACL \"%s\" does not exist" +msgstr "no existe el ACL de parámetro «%s»" -#: catalog/pg_proc.c:132 parser/parse_func.c:2233 +#: catalog/pg_proc.c:130 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" msgstr[0] "las funciones no pueden tener más de %d argumento" msgstr[1] "las funciones no pueden tener más de %d argumentos" -#: catalog/pg_proc.c:376 +#: catalog/pg_proc.c:374 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "ya existe una función «%s» con los mismos argumentos" -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:386 #, c-format msgid "\"%s\" is an aggregate function." msgstr "«%s» es una función de agregación." -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:388 #, c-format msgid "\"%s\" is a function." msgstr "«%s» es una función de agregación." -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:390 #, c-format msgid "\"%s\" is a procedure." msgstr "«%s» es un índice parcial." -#: catalog/pg_proc.c:394 +#: catalog/pg_proc.c:392 #, c-format msgid "\"%s\" is a window function." msgstr "«%s» es una función de ventana deslizante." -#: catalog/pg_proc.c:414 +#: catalog/pg_proc.c:412 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "no se puede cambiar que un procedimiento tenga parámetros de salida" -#: catalog/pg_proc.c:415 catalog/pg_proc.c:445 +#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 #, c-format msgid "cannot change return type of existing function" msgstr "no se puede cambiar el tipo de retorno de una función existente" @@ -5909,120 +6239,114 @@ msgstr "no se puede cambiar el tipo de retorno de una función existente" #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 +#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 +#: catalog/pg_proc.c:517 catalog/pg_proc.c:541 #, c-format msgid "Use %s %s first." msgstr "Use %s %s primero." -#: catalog/pg_proc.c:446 +#: catalog/pg_proc.c:444 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "Tipo de registro definido por parámetros OUT es diferente." -#: catalog/pg_proc.c:490 +#: catalog/pg_proc.c:488 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "no se puede cambiar el nombre del parámetro de entrada «%s»" -#: catalog/pg_proc.c:517 +#: catalog/pg_proc.c:515 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "no se puede eliminar el valor por omisión de funciones existentes" -#: catalog/pg_proc.c:541 +#: catalog/pg_proc.c:539 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "no se puede cambiar el tipo de dato del valor por omisión de un parámetro" -#: catalog/pg_proc.c:752 +#: catalog/pg_proc.c:750 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "no hay ninguna función interna llamada «%s»" -#: catalog/pg_proc.c:845 +#: catalog/pg_proc.c:843 #, c-format msgid "SQL functions cannot return type %s" msgstr "las funciones SQL no pueden retornar el tipo %s" -#: catalog/pg_proc.c:860 +#: catalog/pg_proc.c:858 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "las funciones SQL no pueden tener argumentos de tipo %s" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:986 executor/functions.c:1468 #, c-format msgid "SQL function \"%s\"" msgstr "función SQL «%s»" -#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 -#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 +#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 +#: catalog/pg_publication.c:82 catalog/pg_publication.c:88 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "no se puede agregar la relación «%s» a la publicación" -#: catalog/pg_publication.c:81 +#: catalog/pg_publication.c:76 #, c-format msgid "This operation is not supported for system tables." msgstr "Esta operación no está soportada en tablas de sistema." -#: catalog/pg_publication.c:89 +#: catalog/pg_publication.c:84 #, c-format msgid "This operation is not supported for temporary tables." msgstr "Esta operación no está soportada en tablas temporales." -#: catalog/pg_publication.c:95 +#: catalog/pg_publication.c:90 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "Esta característica no está soportada en tablas «unlogged»." -#: catalog/pg_publication.c:109 catalog/pg_publication.c:117 +#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "no se puede agregar el esquema «%s» a la partición" -#: catalog/pg_publication.c:111 -#, fuzzy, c-format -#| msgid "This operation is not supported for system tables." +#: catalog/pg_publication.c:106 +#, c-format msgid "This operation is not supported for system schemas." -msgstr "Esta operación no está soportada en tablas de sistema." +msgstr "Esta operación no está soportada en esquemas de sistema." -#: catalog/pg_publication.c:119 -#, fuzzy, c-format -#| msgid "Unlogged relations cannot be replicated." +#: catalog/pg_publication.c:114 +#, c-format msgid "Temporary schemas cannot be replicated." -msgstr "Las tablas «unlogged» no pueden replicarse." +msgstr "Los esquemas temporales no pueden replicarse." -#: catalog/pg_publication.c:397 +#: catalog/pg_publication.c:392 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "la relación «%s» ya es un miembro de la publicación «%s»" -#: catalog/pg_publication.c:539 -#, fuzzy, c-format -#| msgid "cannot use system column \"%s\" in partition key" +#: catalog/pg_publication.c:534 +#, c-format msgid "cannot use system column \"%s\" in publication column list" -msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento" +msgstr "no se puede usar la columna de sistema «%s» en lista de columnas de publicación" -#: catalog/pg_publication.c:545 -#, fuzzy, c-format -#| msgid "cannot use generated column in partition key" +#: catalog/pg_publication.c:540 +#, c-format msgid "cannot use generated column \"%s\" in publication column list" -msgstr "no se puede usar una columna generada en llave de particionamiento" +msgstr "no se puede usar la columna generada «%s» en lista de columnas de publicación" -#: catalog/pg_publication.c:551 -#, fuzzy, c-format -#| msgid "publication of %s in publication %s" +#: catalog/pg_publication.c:546 +#, c-format msgid "duplicate column \"%s\" in publication column list" -msgstr "publicación de %s en la publicación %s" +msgstr "columna «%s» duplicada en lista de columnas de publicación" -#: catalog/pg_publication.c:641 -#, fuzzy, c-format -#| msgid "relation \"%s\" is already member of publication \"%s\"" +#: catalog/pg_publication.c:636 +#, c-format msgid "schema \"%s\" is already member of publication \"%s\"" -msgstr "la relación «%s» ya es un miembro de la publicación «%s»" +msgstr "el esquema «%s» ya es miembro de la publicación «%s»" -#: catalog/pg_shdepend.c:830 +#: catalog/pg_shdepend.c:875 #, c-format msgid "" "\n" @@ -6037,65 +6361,70 @@ msgstr[1] "" "\n" "y objetos en otras %d bases de datos (vea el registro del servidor para obtener la lista)" -#: catalog/pg_shdepend.c:1177 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "el rol %u fue eliminado por una transacción concurrente" -#: catalog/pg_shdepend.c:1189 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "el tablespace %u fue eliminado por una transacción concurrente" -#: catalog/pg_shdepend.c:1203 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "la base de datos %u fue eliminado por una transacción concurrente" -#: catalog/pg_shdepend.c:1254 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "dueño de %s" -#: catalog/pg_shdepend.c:1256 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" msgstr "privilegios para %s" -#: catalog/pg_shdepend.c:1258 +#: catalog/pg_shdepend.c:1303 +#, c-format +msgid "initial privileges for %s" +msgstr "privilegios iniciales para %s" + +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "destino de %s" -#: catalog/pg_shdepend.c:1260 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "tablespace para %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1268 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%d objeto en %s" msgstr[1] "%d objetos en %s" -#: catalog/pg_shdepend.c:1332 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "no se puede eliminar objetos de propiedad de %s porque son requeridos por el sistema" -#: catalog/pg_shdepend.c:1498 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "no se puede reasignar la propiedad de objetos de %s porque son requeridos por el sistema" -#: catalog/pg_subscription.c:424 +#: catalog/pg_subscription.c:438 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "no se pudo eliminar mapeo de relación para suscripción «%s»" -#: catalog/pg_subscription.c:426 +#: catalog/pg_subscription.c:440 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "La sincronización de tabla para la relación «%s» está en progreso y su estado es «%c»." @@ -6103,227 +6432,227 @@ msgstr "La sincronización de tabla para la relación «%s» está en progreso y #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:433 +#: catalog/pg_subscription.c:447 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "Utilice %s para activar la suscripción si aún no está activada, o utilice %s para eliminar la suscripción." -#: catalog/pg_type.c:134 catalog/pg_type.c:474 +#: catalog/pg_type.c:133 catalog/pg_type.c:474 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria" -#: catalog/pg_type.c:254 +#: catalog/pg_type.c:253 #, c-format msgid "invalid type internal size %d" msgstr "el tamaño interno de tipo %d no es válido" -#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 -#: catalog/pg_type.c:295 +#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285 +#: catalog/pg_type.c:294 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "el alineamiento «%c» no es válido para un tipo pasado por valor de tamaño %d" -#: catalog/pg_type.c:302 +#: catalog/pg_type.c:301 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "el tamaño interno %d no es válido para un tipo pasado por valor" -#: catalog/pg_type.c:312 catalog/pg_type.c:318 +#: catalog/pg_type.c:311 catalog/pg_type.c:317 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "el alineamiento «%c» no es válido para un tipo de largo variable" -#: catalog/pg_type.c:326 commands/typecmds.c:4140 +#: catalog/pg_type.c:325 commands/typecmds.c:4363 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "los tipos de tamaño fijo deben tener almacenamiento PLAIN" -#: catalog/pg_type.c:955 +#: catalog/pg_type.c:978 #, c-format msgid "Failed while creating a multirange type for type \"%s\"." msgstr "Falla al crear un tipo de multirango para el tipo «%s»." -#: catalog/pg_type.c:956 +#: catalog/pg_type.c:979 #, c-format msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Puede especificar manualmente un nombre para el tipo de multirango usando el atributo «multirange_type_name»." -#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145 +#: catalog/storage.c:533 storage/buffer/bufmgr.c:1540 #, c-format msgid "invalid page in block %u of relation %s" msgstr "la página no es válida en el bloque %u de la relación %s" -#: commands/aggregatecmds.c:171 +#: commands/aggregatecmds.c:167 #, c-format msgid "only ordered-set aggregates can be hypothetical" msgstr "sólo las funciones de agregación de conjuntos ordenados pueden ser hipotéticas" -#: commands/aggregatecmds.c:196 +#: commands/aggregatecmds.c:192 #, c-format msgid "aggregate attribute \"%s\" not recognized" msgstr "el atributo de la función de agregación «%s» no es reconocido" -#: commands/aggregatecmds.c:206 +#: commands/aggregatecmds.c:202 #, c-format msgid "aggregate stype must be specified" msgstr "debe especificarse el tipo de transición (stype) de la función de agregación" -#: commands/aggregatecmds.c:210 +#: commands/aggregatecmds.c:206 #, c-format msgid "aggregate sfunc must be specified" msgstr "debe especificarse la función de transición (sfunc) de la función de agregación" -#: commands/aggregatecmds.c:222 +#: commands/aggregatecmds.c:218 #, c-format msgid "aggregate msfunc must be specified when mstype is specified" msgstr "debe especificarse la función de transición msfunc cuando se especifica mstype" -#: commands/aggregatecmds.c:226 +#: commands/aggregatecmds.c:222 #, c-format msgid "aggregate minvfunc must be specified when mstype is specified" msgstr "debe especificarse la función de transición minvfunc cuando se especifica mstype" -#: commands/aggregatecmds.c:233 +#: commands/aggregatecmds.c:229 #, c-format msgid "aggregate msfunc must not be specified without mstype" msgstr "no debe especificarse msfunc sin mstype" -#: commands/aggregatecmds.c:237 +#: commands/aggregatecmds.c:233 #, c-format msgid "aggregate minvfunc must not be specified without mstype" msgstr "no debe especificarse minvfunc sin mstype" -#: commands/aggregatecmds.c:241 +#: commands/aggregatecmds.c:237 #, c-format msgid "aggregate mfinalfunc must not be specified without mstype" msgstr "no debe especificarse mfinalfunc sin mstype" -#: commands/aggregatecmds.c:245 +#: commands/aggregatecmds.c:241 #, c-format msgid "aggregate msspace must not be specified without mstype" msgstr "no debe especificarse msspace sin mstype" -#: commands/aggregatecmds.c:249 +#: commands/aggregatecmds.c:245 #, c-format msgid "aggregate minitcond must not be specified without mstype" msgstr "no debe especificarse minitcond sin mstype" -#: commands/aggregatecmds.c:278 +#: commands/aggregatecmds.c:274 #, c-format msgid "aggregate input type must be specified" msgstr "debe especificarse el tipo de entrada de la función de agregación" -#: commands/aggregatecmds.c:308 +#: commands/aggregatecmds.c:304 #, c-format msgid "basetype is redundant with aggregate input type specification" msgstr "el tipo base es redundante con el tipo de entrada en la función de agregación" -#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392 +#: commands/aggregatecmds.c:347 commands/aggregatecmds.c:388 #, c-format msgid "aggregate transition data type cannot be %s" msgstr "el tipo de transición de la función de agregación no puede ser %s" -#: commands/aggregatecmds.c:363 +#: commands/aggregatecmds.c:359 #, c-format msgid "serialization functions may be specified only when the aggregate transition data type is %s" msgstr "las funciones de serialización pueden especificarse sólo cuando el tipo de transición de la función de agregación es %s" -#: commands/aggregatecmds.c:373 +#: commands/aggregatecmds.c:369 #, c-format msgid "must specify both or neither of serialization and deserialization functions" msgstr "debe especificar ambas o ninguna de las funciones de serialización y deserialización" -#: commands/aggregatecmds.c:438 commands/functioncmds.c:639 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "el parámetro «parallel» debe ser SAFE, RESTRICTED o UNSAFE" -#: commands/aggregatecmds.c:494 +#: commands/aggregatecmds.c:490 #, c-format msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "el parámetro «%s» debe ser READ_ONLY, SHAREABLE o READ_WRITE" -#: commands/alter.c:86 commands/event_trigger.c:174 +#: commands/alter.c:83 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" -msgstr "el disparador por eventos «%s» ya existe" +msgstr "el “trigger” por eventos «%s» ya existe" -#: commands/alter.c:89 commands/foreigncmds.c:593 +#: commands/alter.c:86 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "el conector de datos externos «%s» ya existe" -#: commands/alter.c:92 commands/foreigncmds.c:884 +#: commands/alter.c:89 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "el servidor «%s» ya existe" -#: commands/alter.c:95 commands/proclang.c:133 +#: commands/alter.c:92 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "ya existe el lenguaje «%s»" -#: commands/alter.c:98 commands/publicationcmds.c:771 +#: commands/alter.c:95 commands/publicationcmds.c:764 #, c-format msgid "publication \"%s\" already exists" msgstr "la publicación «%s» ya existe" -#: commands/alter.c:101 commands/subscriptioncmds.c:657 +#: commands/alter.c:98 commands/subscriptioncmds.c:669 #, c-format msgid "subscription \"%s\" already exists" msgstr "la suscripción «%s» ya existe" -#: commands/alter.c:124 +#: commands/alter.c:121 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "ya existe una conversión llamada «%s» en el esquema «%s»" -#: commands/alter.c:128 +#: commands/alter.c:125 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "ya existe un objeto de estadísticas llamado «%s» en el esquema «%s»" -#: commands/alter.c:132 +#: commands/alter.c:129 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "el analizador de búsqueda en texto «%s» ya existe en el esquema «%s»" -#: commands/alter.c:136 +#: commands/alter.c:133 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "el diccionario de búsqueda en texto «%s» ya existe en el esquema «%s»" -#: commands/alter.c:140 +#: commands/alter.c:137 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "la plantilla de búsqueda en texto «%s» ya existe en el esquema «%s»" -#: commands/alter.c:144 +#: commands/alter.c:141 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "la configuración de búsqueda en texto «%s» ya existe en el esquema «%s»" -#: commands/alter.c:217 +#: commands/alter.c:214 #, c-format msgid "must be superuser to rename %s" msgstr "debe ser superusuario para cambiar el nombre de «%s»" -#: commands/alter.c:259 commands/subscriptioncmds.c:636 -#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 -#: commands/subscriptioncmds.c:1830 +#: commands/alter.c:256 commands/subscriptioncmds.c:648 +#: commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 +#: commands/subscriptioncmds.c:1918 #, c-format msgid "password_required=false is superuser-only" -msgstr "" +msgstr "password_required=false es sólo para superusuario" -#: commands/alter.c:260 commands/subscriptioncmds.c:637 -#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 -#: commands/subscriptioncmds.c:1831 +#: commands/alter.c:257 commands/subscriptioncmds.c:649 +#: commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 +#: commands/subscriptioncmds.c:1919 #, c-format msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." -msgstr "" +msgstr "Las suscripciones con la opción password_required puesta en falso sólo pueden ser creadas o modificadas por el superusuario." -#: commands/alter.c:775 +#: commands/alter.c:735 #, c-format msgid "must be superuser to set schema of %s" msgstr "debe ser superusuario para definir el esquema de %s" @@ -6343,7 +6672,7 @@ msgstr "Debe ser superusuario para crear un método de acceso." msgid "access method \"%s\" already exists" msgstr "el método de acceso «%s» ya existe" -#: commands/amcmds.c:154 commands/indexcmds.c:217 commands/indexcmds.c:840 +#: commands/amcmds.c:154 commands/indexcmds.c:224 commands/indexcmds.c:850 #: commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" @@ -6354,175 +6683,174 @@ msgstr "no existe el método de acceso «%s»" msgid "handler function is not specified" msgstr "no se ha especificado una función manejadora" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 -#: parser/parse_clause.c:941 +#: commands/amcmds.c:264 commands/event_trigger.c:200 +#: commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 +#: parser/parse_clause.c:943 #, c-format msgid "function %s must return type %s" msgstr "la función %s debe retornar el tipo %s" -#: commands/analyze.c:227 +#: commands/analyze.c:217 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "omitiendo «%s»: no se puede analizar esta tabla foránea" -#: commands/analyze.c:244 +#: commands/analyze.c:234 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "omitiendo «%s»: no se pueden analizar objetos que no son tablas, ni tablas especiales de sistema" -#: commands/analyze.c:324 +#: commands/analyze.c:314 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "analizando la jerarquía de herencia «%s.%s»" -#: commands/analyze.c:329 +#: commands/analyze.c:319 #, c-format msgid "analyzing \"%s.%s\"" msgstr "analizando «%s.%s»" -#: commands/analyze.c:394 +#: commands/analyze.c:385 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "la columna «%s» aparece más de una vez en la relación «%s»" -#: commands/analyze.c:786 +#: commands/analyze.c:785 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "análisis automático de la tabla «%s.%s.%s»\n" -#: commands/analyze.c:1333 +#: commands/analyze.c:1300 #, 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»: se procesaron %d de %u páginas, que contenían %.0f filas vigentes y %.0f filas no vigentes; %d filas en la muestra, %.0f total de filas estimadas" -#: commands/analyze.c:1417 +#: commands/analyze.c:1384 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas" -#: commands/analyze.c:1515 +#: commands/analyze.c:1482 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas analizables" -#: commands/async.c:646 +#: commands/async.c:612 #, c-format msgid "channel name cannot be empty" msgstr "el nombre de canal no puede ser vacío" -#: commands/async.c:652 +#: commands/async.c:618 #, c-format msgid "channel name too long" msgstr "el nombre de canal es demasiado largo" -#: commands/async.c:657 +#: commands/async.c:623 #, c-format msgid "payload string too long" msgstr "la cadena de carga es demasiado larga" -#: commands/async.c:876 +#: commands/async.c:842 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "no se puede hacer PREPARE de una transacción que ha ejecutado LISTEN, UNLISTEN o NOTIFY" -#: commands/async.c:980 +#: commands/async.c:946 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "demasiadas notificaciones en la cola NOTIFY" -#: commands/async.c:1602 +#: commands/async.c:1553 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "la cola NOTIFY está %.0f%% llena" -#: commands/async.c:1604 +#: commands/async.c:1555 #, c-format msgid "The server process with PID %d is among those with the oldest transactions." msgstr "El proceso servidor con PID %d está entre aquellos con transacciones más antiguas." -#: commands/async.c:1607 +#: commands/async.c:1558 #, c-format msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "La cola NOTIFY no puede vaciarse hasta que ese proceso cierre su transacción actual." -#: commands/cluster.c:131 +#: commands/cluster.c:128 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "opción de CLUSTER «%s» no reconocida" -#: commands/cluster.c:162 commands/cluster.c:435 +#: commands/cluster.c:159 commands/cluster.c:433 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "no se pueden reordenar tablas temporales de otras sesiones" -#: commands/cluster.c:180 +#: commands/cluster.c:177 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "no hay un índice de ordenamiento definido para la tabla «%s»" -#: commands/cluster.c:194 commands/tablecmds.c:14200 commands/tablecmds.c:16043 +#: commands/cluster.c:191 commands/tablecmds.c:14797 commands/tablecmds.c:16729 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "no existe el índice «%s» en la tabla «%s»" -#: commands/cluster.c:424 +#: commands/cluster.c:422 #, c-format msgid "cannot cluster a shared catalog" msgstr "no se puede reordenar un catálogo compartido" -#: commands/cluster.c:439 +#: commands/cluster.c:437 #, c-format msgid "cannot vacuum temporary tables of other sessions" msgstr "no se puede hacer vacuum a tablas temporales de otras sesiones" -#: commands/cluster.c:515 commands/tablecmds.c:16053 +#: commands/cluster.c:513 commands/tablecmds.c:16739 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "«%s» no es un índice de la tabla «%s»" -#: commands/cluster.c:523 +#: commands/cluster.c:521 #, c-format msgid "cannot cluster on index \"%s\" because access method does not support clustering" msgstr "no se puede reordenar en índice «%s» porque el método de acceso no soporta reordenamiento" -#: commands/cluster.c:535 +#: commands/cluster.c:533 #, c-format msgid "cannot cluster on partial index \"%s\"" msgstr "no se puede reordenar en índice parcial «%s»" -#: commands/cluster.c:549 +#: commands/cluster.c:547 #, c-format msgid "cannot cluster on invalid index \"%s\"" msgstr "no se puede reordenar en el índice no válido «%s»" -#: commands/cluster.c:573 +#: commands/cluster.c:571 #, c-format msgid "cannot mark index clustered in partitioned table" msgstr "no se puede marcar un índice «clustered» en una tabla particionada" -#: commands/cluster.c:952 +#: commands/cluster.c:956 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "reordenando «%s.%s» usando un recorrido de índice en «%s»" -#: commands/cluster.c:958 +#: commands/cluster.c:962 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "reordenando «%s.%s» usando un recorrido secuencial y ordenamiento" -#: commands/cluster.c:963 +#: commands/cluster.c:967 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "haciendo vacuum a «%s.%s»" -#: commands/cluster.c:990 -#, fuzzy, c-format -#| msgid "index \"%s\" now contains %.0f row versions in %u pages" +#: commands/cluster.c:994 +#, c-format msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" -msgstr "el índice «%s» ahora contiene %.0f versiones de filas en %u páginas" +msgstr "«%s.%s»: se encontraron %.0f versiones de filas eliminables, %.0f no eliminables en %u páginas" -#: commands/cluster.c:995 +#: commands/cluster.c:999 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -6531,40 +6859,39 @@ msgstr "" "%.0f versiones muertas de filas no pueden ser eliminadas aún.\n" "%s." -#: commands/cluster.c:1728 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/cluster.c:1744 +#, c-format msgid "permission denied to cluster \"%s\", skipping it" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "permiso denegado a hacer cluster a «%s», ignorando" -#: commands/collationcmds.c:112 +#: commands/collationcmds.c:110 #, c-format msgid "collation attribute \"%s\" not recognized" msgstr "el atributo de ordenamiento (collation) «%s» no es reconocido" -#: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7876 -#: replication/pgoutput/pgoutput.c:310 replication/pgoutput/pgoutput.c:333 -#: replication/pgoutput/pgoutput.c:347 replication/pgoutput/pgoutput.c:357 -#: replication/pgoutput/pgoutput.c:367 replication/pgoutput/pgoutput.c:377 -#: replication/pgoutput/pgoutput.c:387 replication/walsender.c:996 -#: replication/walsender.c:1018 replication/walsender.c:1028 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 +#: commands/define.c:388 commands/tablecmds.c:8129 +#: replication/pgoutput/pgoutput.c:314 replication/pgoutput/pgoutput.c:337 +#: replication/pgoutput/pgoutput.c:351 replication/pgoutput/pgoutput.c:361 +#: replication/pgoutput/pgoutput.c:371 replication/pgoutput/pgoutput.c:381 +#: replication/pgoutput/pgoutput.c:393 replication/walsender.c:1146 +#: replication/walsender.c:1168 replication/walsender.c:1178 +#: replication/walsender.c:1187 replication/walsender.c:1426 #, c-format msgid "conflicting or redundant options" msgstr "opciones contradictorias o redundantes" -#: commands/collationcmds.c:126 +#: commands/collationcmds.c:124 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." msgstr "LOCALE no puede configurarse junto con LC_COLLATE o LC_CTYPE." -#: commands/collationcmds.c:132 -#, fuzzy, c-format -#| msgid "option \"%s\" cannot be specified with other options" +#: commands/collationcmds.c:130 +#, c-format msgid "FROM cannot be specified together with any other options." -msgstr "la opción «%s» no puede ser especificada con otras opciones" +msgstr "FROM no puede especificarse junto con otras opciones." -#: commands/collationcmds.c:191 +#: commands/collationcmds.c:189 #, c-format msgid "collation \"default\" cannot be copied" msgstr "el ordenamiento «default» no puede copiarse" @@ -6574,435 +6901,364 @@ msgstr "el ordenamiento «default» no puede copiarse" msgid "unrecognized collation provider: %s" msgstr "proveedor de ordenamiento no reconocido: %s" -#: commands/collationcmds.c:253 +#: commands/collationcmds.c:253 commands/collationcmds.c:264 +#: commands/collationcmds.c:270 commands/collationcmds.c:278 #, c-format -msgid "parameter \"lc_collate\" must be specified" -msgstr "debe especificarse el parámetro «lc_collate»" +msgid "parameter \"%s\" must be specified" +msgstr "el parámetro «%s» debe especificarse" -#: commands/collationcmds.c:258 +#: commands/collationcmds.c:293 commands/dbcommands.c:1134 #, c-format -msgid "parameter \"lc_ctype\" must be specified" -msgstr "debe especificarse el parámetro «lc_ctype»" - -#: commands/collationcmds.c:265 -#, fuzzy, c-format -#| msgid "parameter \"lc_collate\" must be specified" -msgid "parameter \"locale\" must be specified" -msgstr "debe especificarse el parámetro «lc_collate»" - -#: commands/collationcmds.c:279 commands/dbcommands.c:1074 -#, fuzzy, c-format -#| msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" -msgid "using standard form \"%s\" for locale \"%s\"" -msgstr "Usando la marca de lenguaje «%s» para la configuración regional ICU «%s».\n" +msgid "using standard form \"%s\" for ICU locale \"%s\"" +msgstr "usando la forma estándar «%s» para la configuración regional ICU «%s»" -#: commands/collationcmds.c:298 +#: commands/collationcmds.c:312 #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "los ordenamientos no determinísticos no están soportados con este proveedor" -#: commands/collationcmds.c:303 commands/dbcommands.c:1093 -#, fuzzy, c-format -#| msgid "ICU locale cannot be specified unless locale provider is ICU" +#: commands/collationcmds.c:317 commands/dbcommands.c:1087 +#, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" -msgstr "no se puede especificar una configuración regional ICU a menos que el proveedor de configuración regional sea ICU" +msgstr "no se pueden especificar reglas ICU a menos que el proveedor de configuración regional sea ICU" -#: commands/collationcmds.c:322 +#: commands/collationcmds.c:340 #, c-format msgid "current database's encoding is not supported with this provider" msgstr "la codificación de la base de datos actual no está soportada con este proveedor" -#: commands/collationcmds.c:382 +#: commands/collationcmds.c:409 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "ya existe un ordenamiento (collation) llamado «%s» para la codificación «%s» en el esquema «%s»" -#: commands/collationcmds.c:393 +#: commands/collationcmds.c:420 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "ya existe un ordenamiento llamado «%s» en el esquema «%s»" -#: commands/collationcmds.c:418 -#, fuzzy, c-format -#| msgid "change the definition of a collation" +#: commands/collationcmds.c:445 +#, c-format msgid "cannot refresh version of default collation" -msgstr "cambia la definición de un ordenamiento" +msgstr "no se puede refrescar la versión del ordenamiento por omisión" -#: commands/collationcmds.c:419 -#, fuzzy, c-format -#| msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." -msgid "Use ALTER DATABASE ... REFRESH COLLATION VERSION instead." -msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION en su lugar." +#. translator: %s is an SQL command +#. translator: %s is an SQL ALTER command +#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 +#: commands/tablecmds.c:7905 commands/tablecmds.c:7915 +#: commands/tablecmds.c:7917 commands/tablecmds.c:14499 +#: commands/tablecmds.c:17884 commands/tablecmds.c:17905 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 +#, c-format +msgid "Use %s instead." +msgstr "Use %s en su lugar." -#: commands/collationcmds.c:446 commands/dbcommands.c:2447 +#: commands/collationcmds.c:480 commands/dbcommands.c:2566 #, c-format msgid "changing version from %s to %s" msgstr "cambiando versión de %s a %s" -#: commands/collationcmds.c:461 commands/dbcommands.c:2460 +#: commands/collationcmds.c:495 commands/dbcommands.c:2579 #, c-format msgid "version has not changed" msgstr "la versión no ha cambiado" -#: commands/collationcmds.c:494 commands/dbcommands.c:2626 +#: commands/collationcmds.c:528 commands/dbcommands.c:2749 #, c-format msgid "database with OID %u does not exist" msgstr "no existe la base de datos con OID %u" -#: commands/collationcmds.c:515 +#: commands/collationcmds.c:554 #, c-format msgid "collation with OID %u does not exist" msgstr "no existe el ordenamiento (collation) con OID %u" -#: commands/collationcmds.c:803 +#: commands/collationcmds.c:848 #, c-format msgid "must be superuser to import system collations" msgstr "debe ser superusuario para importar ordenamientos del sistema" -#: commands/collationcmds.c:831 commands/copyfrom.c:1653 commands/copyto.c:656 -#: libpq/be-secure-common.c:59 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "no se pudo ejecutar la orden «%s»: %m" - -#: commands/collationcmds.c:923 commands/collationcmds.c:1008 +#: commands/collationcmds.c:968 commands/collationcmds.c:1053 #, c-format msgid "no usable system locales were found" msgstr "no se encontraron locales de sistema utilizables" -#: commands/comment.c:61 commands/dbcommands.c:1594 commands/dbcommands.c:1791 -#: commands/dbcommands.c:1901 commands/dbcommands.c:2099 -#: commands/dbcommands.c:2337 commands/dbcommands.c:2420 -#: commands/dbcommands.c:2530 commands/dbcommands.c:3030 -#: utils/init/postinit.c:1025 utils/init/postinit.c:1130 -#: utils/init/postinit.c:1147 +#: commands/comment.c:61 commands/dbcommands.c:1665 commands/dbcommands.c:1883 +#: commands/dbcommands.c:1995 commands/dbcommands.c:2193 +#: commands/dbcommands.c:2433 commands/dbcommands.c:2526 +#: commands/dbcommands.c:2650 commands/dbcommands.c:3161 +#: utils/init/postinit.c:1034 utils/init/postinit.c:1098 +#: utils/init/postinit.c:1171 #, c-format msgid "database \"%s\" does not exist" msgstr "no existe la base de datos «%s»" #: commands/comment.c:101 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#, c-format msgid "cannot set comment on relation \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "no se puede definir comentario en la relación «%s»" -#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "la función «%s» no fue ejecutada por el manejador de triggers" -#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "la función «%s» debe ser ejecutada AFTER ROW" -#: commands/constraint.c:84 +#: commands/constraint.c:82 #, c-format msgid "function \"%s\" must be fired for INSERT or UPDATE" msgstr "la función «%s» debe ser ejecutada en INSERT o UPDATE" -#: commands/conversioncmds.c:69 +#: commands/conversioncmds.c:62 #, c-format msgid "source encoding \"%s\" does not exist" msgstr "no existe la codificación fuente «%s»" -#: commands/conversioncmds.c:76 +#: commands/conversioncmds.c:69 #, c-format msgid "destination encoding \"%s\" does not exist" msgstr "no existe la codificación de destino «%s»" -#: commands/conversioncmds.c:89 +#: commands/conversioncmds.c:82 #, c-format msgid "encoding conversion to or from \"SQL_ASCII\" is not supported" msgstr "la conversión de codificación desde o hacia a «SQL_ASCII» no está soportada" -#: commands/conversioncmds.c:102 +#: commands/conversioncmds.c:95 #, c-format msgid "encoding conversion function %s must return type %s" msgstr "la función de conversión de codificación %s debe retornar tipo %s" -#: commands/conversioncmds.c:132 +#: commands/conversioncmds.c:125 #, c-format msgid "encoding conversion function %s returned incorrect result for empty input" msgstr "la función de conversión de codificación %s retornó un resultado incorrecto para una entrada vacía" -#: commands/copy.c:86 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: commands/copy.c:84 +#, c-format msgid "permission denied to COPY to or from an external program" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para hacer COPY hacia o desde un programa externo" -#: commands/copy.c:87 +#: commands/copy.c:85 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to or from an external program." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY desde o hacia un programa externo." -#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109 +#: commands/copy.c:87 commands/copy.c:98 commands/copy.c:107 #, c-format msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone." msgstr "Cualquier usuario puede usar COPY hacia la salida estándar o desde la entrada estándar. La orden \\copy de psql también puede ser utilizado por cualquier usuario." -#: commands/copy.c:97 -#, fuzzy, c-format -#| msgid "permission denied to drop role" +#: commands/copy.c:95 +#, c-format msgid "permission denied to COPY from a file" -msgstr "se ha denegado el permiso para eliminar el rol" +msgstr "se ha denegado el permiso para hacer COPY desde un archivo" -#: commands/copy.c:98 +#: commands/copy.c:96 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY from a file." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY desde un archivo." -#: commands/copy.c:106 -#, fuzzy, c-format -#| msgid "permission denied to drop role" +#: commands/copy.c:104 +#, c-format msgid "permission denied to COPY to a file" -msgstr "se ha denegado el permiso para eliminar el rol" +msgstr "se ha denegado el permiso para hacer COPY a un archivo" -#: commands/copy.c:107 +#: commands/copy.c:105 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to a file." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden hacer COPY hacia un archivo." -#: commands/copy.c:195 +#: commands/copy.c:193 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM no está soportado con seguridad a nivel de registros" -#: commands/copy.c:196 +#: commands/copy.c:194 #, c-format msgid "Use INSERT statements instead." msgstr "Use sentencias INSERT en su lugar." -#: commands/copy.c:290 -#, fuzzy, c-format -#| msgid "\"EEEE\" not supported for input" -msgid "MERGE not supported in COPY" -msgstr "«EEEE» no está soportado en la entrada" - -#: commands/copy.c:383 +#: commands/copy.c:375 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "no se puede usar «%s» con HEADER en COPY TO" -#: commands/copy.c:392 -#, fuzzy, c-format -#| msgid "%s requires a Boolean value" +#: commands/copy.c:384 +#, c-format msgid "%s requires a Boolean value or \"match\"" -msgstr "«%s» requiere un valor lógico (booleano)" +msgstr "«%s» requiere un valor lógico (booleano) o «match»" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:782 commands/copy.c:798 +#: commands/copy.c:815 commands/copy.c:841 commands/copy.c:851 +#, c-format +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s no puede usarse con %s" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:441 +#, c-format +msgid "COPY %s \"%s\" not recognized" +msgstr "no se reconoce el valor «%2$s» para COPY %1$s" -#: commands/copy.c:451 +#: commands/copy.c:502 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "el formato de COPY «%s» no es reconocido" -#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 -#: commands/copy.c:554 +#: commands/copy.c:560 commands/copy.c:575 commands/copy.c:590 +#: commands/copy.c:609 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "el argumento de la opción «%s» debe ser una lista de nombres de columna" -#: commands/copy.c:566 +#: commands/copy.c:621 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "el argumento de la opción «%s» debe ser un nombre válido de codificación" -#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2285 +#: commands/copy.c:642 commands/dbcommands.c:866 commands/dbcommands.c:2381 #, c-format msgid "option \"%s\" not recognized" msgstr "no se reconoce la opción «%s»" -#: commands/copy.c:585 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:655 commands/copy.c:660 commands/copy.c:665 +#: commands/copy.c:740 #, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "no se puede especificar DELIMITER en modo BINARY" +msgid "cannot specify %s in BINARY mode" +msgstr "no se puede especificar %s en modo BINARY" -#: commands/copy.c:590 +#: commands/copy.c:670 #, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "no se puede especificar NULL en modo BINARY" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "sólo ON ERROR STOP es permitido en modo BINARY" -#: commands/copy.c:595 -#, fuzzy, c-format -#| msgid "cannot specify NULL in BINARY mode" -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "no se puede especificar NULL en modo BINARY" - -#: commands/copy.c:617 +#: commands/copy.c:692 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "el delimitador de COPY debe ser un solo carácter de un byte" -#: commands/copy.c:624 +#: commands/copy.c:699 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "el delimitador de COPY no puede ser el carácter de nueva línea ni el de retorno de carro" -#: commands/copy.c:630 +#: commands/copy.c:705 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "la representación de null de COPY no puede usar el carácter de nueva línea ni el de retorno de carro" -#: commands/copy.c:640 -#, fuzzy, c-format -#| msgid "COPY null representation cannot use newline or carriage return" +#: commands/copy.c:715 +#, c-format msgid "COPY default representation cannot use newline or carriage return" -msgstr "la representación de null de COPY no puede usar el carácter de nueva línea ni el de retorno de carro" +msgstr "la representación de default de COPY no puede usar el carácter de nueva línea ni el de retorno de carro" -#: commands/copy.c:658 +#: commands/copy.c:733 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "el delimitador de COPY no puede ser «%s»" -#: commands/copy.c:664 -#, fuzzy, c-format -#| msgid "cannot specify DELIMITER in BINARY mode" -msgid "cannot specify HEADER in BINARY mode" -msgstr "no se puede especificar DELIMITER en modo BINARY" - -#: commands/copy.c:670 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:747 commands/copy.c:764 commands/copy.c:776 +#: commands/copy.c:791 commands/copy.c:807 #, c-format -msgid "COPY quote available only in CSV mode" -msgstr "el «quote» de COPY está disponible sólo en modo CSV" +msgid "COPY %s requires CSV mode" +msgstr "COPY %s requiere modo CSV" -#: commands/copy.c:675 +#: commands/copy.c:752 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "la comilla («quote») de COPY debe ser un solo carácter de un byte" -#: commands/copy.c:680 +#: commands/copy.c:757 #, c-format msgid "COPY delimiter and quote must be different" msgstr "el delimitador de COPY y la comilla («quote») deben ser diferentes" -#: commands/copy.c:686 -#, c-format -msgid "COPY escape available only in CSV mode" -msgstr "escape de COPY disponible sólo en modo CSV" - -#: commands/copy.c:691 +#: commands/copy.c:769 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "el escape de COPY debe ser un sólo carácter de un byte" -#: commands/copy.c:697 -#, c-format -msgid "COPY force quote available only in CSV mode" -msgstr "el forzado de comillas de COPY sólo está disponible en modo CSV" - -#: commands/copy.c:701 -#, c-format -msgid "COPY force quote only available using COPY TO" -msgstr "el forzado de comillas de COPY sólo está disponible en COPY TO" - -#: commands/copy.c:707 -#, c-format -msgid "COPY force not null available only in CSV mode" -msgstr "el forzado de no nulos en COPY sólo está disponible en modo CSV" - -#: commands/copy.c:711 -#, c-format -msgid "COPY force not null only available using COPY FROM" -msgstr "el forzado de no nulos en COPY sólo está disponible usando COPY FROM" - -#: commands/copy.c:717 -#, c-format -msgid "COPY force null available only in CSV mode" -msgstr "el forzado de nulos en COPY sólo está disponible en modo CSV" - -#: commands/copy.c:722 -#, c-format -msgid "COPY force null only available using COPY FROM" -msgstr "el forzado de nulos en COPY sólo está disponible usando COPY FROM" - -#: commands/copy.c:728 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:823 commands/copy.c:859 #, c-format -msgid "COPY delimiter must not appear in the NULL specification" -msgstr "el delimitador de COPY no debe aparecer en la especificación NULL" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "el carácter delimitador de COPY no debe aparecer en la especificación %s" -#: commands/copy.c:735 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:832 commands/copy.c:868 #, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación NULL" - -#: commands/copy.c:742 -#, fuzzy, c-format -#| msgid "COPY force null only available using COPY FROM" -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "el forzado de nulos en COPY sólo está disponible usando COPY FROM" +msgid "CSV quote character must not appear in the %s specification" +msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación %s" -#: commands/copy.c:748 -#, fuzzy, c-format -#| msgid "COPY delimiter must not appear in the NULL specification" -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "el delimitador de COPY no debe aparecer en la especificación NULL" - -#: commands/copy.c:755 -#, fuzzy, c-format -#| msgid "CSV quote character must not appear in the NULL specification" -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "el carácter de «quote» de CSV no debe aparecer en la especificación NULL" - -#: commands/copy.c:763 +#: commands/copy.c:877 #, c-format msgid "NULL specification and DEFAULT specification cannot be the same" -msgstr "" +msgstr "las especificaciones NULL y DEFAULT no pueden ser la misma" -#: commands/copy.c:825 +#: commands/copy.c:939 #, c-format msgid "column \"%s\" is a generated column" msgstr "la columna «%s» es una columna generada" -#: commands/copy.c:827 +#: commands/copy.c:941 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Las columnas generadas no pueden usarse en COPY." -#: commands/copy.c:842 commands/indexcmds.c:1894 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 -#: utils/adt/tsvector_op.c:2855 +#: commands/copy.c:956 commands/indexcmds.c:1890 commands/statscmds.c:239 +#: commands/tablecmds.c:2526 commands/tablecmds.c:2997 +#: commands/tablecmds.c:3808 parser/parse_relation.c:3692 +#: parser/parse_relation.c:3702 parser/parse_relation.c:3720 +#: parser/parse_relation.c:3727 parser/parse_relation.c:3741 +#: utils/adt/tsvector_op.c:2853 #, c-format msgid "column \"%s\" does not exist" msgstr "no existe la columna «%s»" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:963 commands/tablecmds.c:2552 commands/trigger.c:951 +#: parser/parse_target.c:1083 parser/parse_target.c:1094 #, c-format msgid "column \"%s\" specified more than once" msgstr "la columna «%s» fue especificada más de una vez" -#: commands/copyfrom.c:122 +#: commands/copyfrom.c:118 #, c-format msgid "COPY %s" -msgstr "" +msgstr "COPY %s" -#: commands/copyfrom.c:130 +#: commands/copyfrom.c:126 #, c-format msgid "COPY %s, line %llu, column %s" -msgstr "" +msgstr "COPY %s, línea %llu, columna %s" -#: commands/copyfrom.c:135 commands/copyfrom.c:181 +#: commands/copyfrom.c:131 commands/copyfrom.c:177 #, c-format msgid "COPY %s, line %llu" -msgstr "" +msgstr "COPY %s, línea %llu" -#: commands/copyfrom.c:147 +#: commands/copyfrom.c:143 #, c-format msgid "COPY %s, line %llu, column %s: \"%s\"" -msgstr "" +msgstr "COPY %s, línea %llu, columna %s: «%s»" -#: commands/copyfrom.c:157 +#: commands/copyfrom.c:153 #, c-format msgid "COPY %s, line %llu, column %s: null input" -msgstr "" +msgstr "COPY %s, línea %llu, columna %s: entrada nula" -#: commands/copyfrom.c:174 +#: commands/copyfrom.c:170 #, c-format msgid "COPY %s, line %llu: \"%s\"" -msgstr "" +msgstr "COPY %s, línea %llu: «%s»" #: commands/copyfrom.c:673 #, c-format @@ -7012,7 +7268,7 @@ msgstr "no se puede copiar hacia la vista «%s»" #: commands/copyfrom.c:675 #, c-format msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger." -msgstr "Para posibilitar «copy» a una vista, provea un disparador INSTEAD OF INSERT." +msgstr "Para posibilitar «copy» a una vista, provea un “trigger” INSTEAD OF INSERT." #: commands/copyfrom.c:679 #, c-format @@ -7044,32 +7300,41 @@ msgstr "no se puede ejecutar COPY FREEZE debido a actividad anterior en la trans msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "no se puede ejecutar COPY FREEZE porque la tabla no fue creada ni truncada en la subtransacción en curso" -#: commands/copyfrom.c:1411 +#: commands/copyfrom.c:1313 +#, c-format +msgid "%llu row was skipped due to data type incompatibility" +msgid_plural "%llu rows were skipped due to data type incompatibility" +msgstr[0] "%llu fila fue ignorada por incompatibilidad de tipo de dato" +msgstr[1] "%llu filas fueron ignoradas por incompatibilidad de tipo de dato" + +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1448 commands/copyfrom.c:1491 commands/copyto.c:601 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "la columna FORCE_NOT_NULL «%s» no es referenciada en COPY" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "la columna %s «%s» no es referenciada en COPY" -#: commands/copyfrom.c:1434 +#: commands/copyfrom.c:1544 utils/mb/mbutils.c:385 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "la columna FORCE_NULL «%s» no es referenciada en COPY" +msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" +msgstr "no existe el procedimiento por omisión de conversión desde la codificación «%s» a «%s»" -#: commands/copyfrom.c:1672 +#: commands/copyfrom.c:1742 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROM indica al proceso servidor de PostgreSQL leer un archivo. Puede desear usar una facilidad del lado del cliente como \\copy de psql." -#: commands/copyfrom.c:1685 commands/copyto.c:708 +#: commands/copyfrom.c:1755 commands/copyto.c:706 #, c-format msgid "\"%s\" is a directory" msgstr "«%s» es un directorio" -#: commands/copyfrom.c:1753 commands/copyto.c:306 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1823 commands/copyto.c:299 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "no se pudo cerrar la tubería a la orden externa: %m" -#: commands/copyfrom.c:1768 commands/copyto.c:311 +#: commands/copyfrom.c:1838 commands/copyto.c:304 #, c-format msgid "program \"%s\" failed" msgstr "el programa «%s» falló" @@ -7110,26 +7375,25 @@ msgid "could not read from COPY file: %m" msgstr "no se pudo leer desde archivo COPY: %m" #: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:377 +#: replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:381 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "se encontró fin de archivo inesperado en una conexión con una transacción abierta" -#: commands/copyfromparse.c:294 +#: commands/copyfromparse.c:294 replication/walsender.c:772 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "se recibió un mensaje de tipo 0x%02X inesperado durante COPY desde la entrada estándar" -#: commands/copyfromparse.c:317 +#: commands/copyfromparse.c:317 replication/walsender.c:803 #, c-format msgid "COPY from stdin failed: %s" msgstr "falló COPY desde la entrada estándar: %s" #: commands/copyfromparse.c:785 -#, fuzzy, c-format -#| msgid "wrong number of columns: %d, expected %d" +#, c-format msgid "wrong number of fields in header line: got %d, expected %d" -msgstr "número de columnas erróneo: %d, se esperaban %d" +msgstr "número de campos en línea de cabecera erróneo: %d, se esperaban %d" #: commands/copyfromparse.c:801 #, c-format @@ -7141,8 +7405,8 @@ msgstr "discordancia de nombre de columna en campo %d de la línea de encabezado msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "discordancia en nombre de columna en campo %d de la línea de encabezado: se obtuvo «%s», se esperaba «%s»" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1514 -#: commands/copyfromparse.c:1770 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 +#: commands/copyfromparse.c:1810 #, c-format msgid "extra data after last expected column" msgstr "datos extra después de la última columna esperada" @@ -7152,1126 +7416,1177 @@ msgstr "datos extra después de la última columna esperada" msgid "missing data for column \"%s\"" msgstr "faltan datos en la columna «%s»" -#: commands/copyfromparse.c:999 +#: commands/copyfromparse.c:990 +#, c-format +msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": \"%s\"" +msgstr "omitiendo fila debido a incompatibilidad de tipo en la línea %llu para la columna «%s»: «%s»" + +#: commands/copyfromparse.c:998 +#, c-format +msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": null input" +msgstr "omitiendo fila debido a incompatibilidad de tipo en la línea %llu para la columna «%s»: entrada nula" + +#: commands/copyfromparse.c:1044 #, c-format msgid "received copy data after EOF marker" msgstr "se recibieron datos de copy después del marcador EOF" -#: commands/copyfromparse.c:1006 +#: commands/copyfromparse.c:1051 #, c-format msgid "row field count is %d, expected %d" msgstr "la cantidad de registros es %d, pero se esperaban %d" -#: commands/copyfromparse.c:1296 commands/copyfromparse.c:1313 +#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 #, c-format msgid "literal carriage return found in data" msgstr "se encontró un retorno de carro literal en los datos" -#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314 +#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 #, c-format msgid "unquoted carriage return found in data" msgstr "se encontró un retorno de carro fuera de comillas en los datos" -#: commands/copyfromparse.c:1299 commands/copyfromparse.c:1316 +#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "Use «\\r» para representar el retorno de carro." -#: commands/copyfromparse.c:1300 commands/copyfromparse.c:1317 +#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "Use un campo CSV entre comillas para representar el retorno de carro." -#: commands/copyfromparse.c:1329 +#: commands/copyfromparse.c:1369 #, c-format msgid "literal newline found in data" msgstr "se encontró un salto de línea literal en los datos" -#: commands/copyfromparse.c:1330 +#: commands/copyfromparse.c:1370 #, c-format msgid "unquoted newline found in data" msgstr "se encontró un salto de línea fuera de comillas en los datos" -#: commands/copyfromparse.c:1332 +#: commands/copyfromparse.c:1372 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "Use «\\n» para representar un salto de línea." -#: commands/copyfromparse.c:1333 +#: commands/copyfromparse.c:1373 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "Use un campo CSV entre comillas para representar un salto de línea." -#: commands/copyfromparse.c:1379 commands/copyfromparse.c:1415 +#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "el marcador fin-de-copy no coincide con el estilo previo de salto de línea" -#: commands/copyfromparse.c:1388 commands/copyfromparse.c:1404 +#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 #, c-format msgid "end-of-copy marker corrupt" msgstr "marcador fin-de-copy corrupto" -#: commands/copyfromparse.c:1706 commands/copyfromparse.c:1921 -#, fuzzy, c-format -#| msgid "unexpected EOF in COPY data" -msgid "unexpected DEFAULT in COPY data" -msgstr "EOF inesperado en datos de COPY" +#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 +#, c-format +msgid "unexpected default marker in COPY data" +msgstr "marcador “default” inesperado en datos de COPY" -#: commands/copyfromparse.c:1707 commands/copyfromparse.c:1922 -#, fuzzy, c-format -#| msgid "column \"%s\" can only be updated to DEFAULT" -msgid "Column \"%s\" has no DEFAULT value." -msgstr "la columna «%s» sólo puede actualizarse a DEFAULT" +#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 +#, c-format +msgid "Column \"%s\" has no default value." +msgstr "La columna «%s» no tiene valor por omisión." -#: commands/copyfromparse.c:1854 +#: commands/copyfromparse.c:1894 #, c-format msgid "unterminated CSV quoted field" msgstr "un valor entre comillas está inconcluso" -#: commands/copyfromparse.c:1956 commands/copyfromparse.c:1975 +#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 #, c-format msgid "unexpected EOF in COPY data" msgstr "EOF inesperado en datos de COPY" -#: commands/copyfromparse.c:1965 +#: commands/copyfromparse.c:2005 #, c-format msgid "invalid field size" msgstr "el tamaño de campo no es válido" -#: commands/copyfromparse.c:1988 +#: commands/copyfromparse.c:2028 #, c-format msgid "incorrect binary data format" msgstr "el formato de datos binarios es incorrecto" -#: commands/copyto.c:236 +#: commands/copyto.c:229 #, c-format msgid "could not write to COPY program: %m" msgstr "no se pudo escribir al programa COPY: %m" -#: commands/copyto.c:241 +#: commands/copyto.c:234 #, c-format msgid "could not write to COPY file: %m" msgstr "no se pudo escribir archivo COPY: %m" -#: commands/copyto.c:386 +#: commands/copyto.c:379 #, c-format msgid "cannot copy from view \"%s\"" msgstr "no se puede copiar desde la vista «%s»" -#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 -#: commands/copyto.c:411 +#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 +#: commands/copyto.c:404 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "Intente la forma COPY (SELECT ...) TO." -#: commands/copyto.c:392 +#: commands/copyto.c:385 #, c-format msgid "cannot copy from materialized view \"%s\"" msgstr "no se puede copiar desde la vista materializada «%s»" -#: commands/copyto.c:398 +#: commands/copyto.c:391 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "no se puede copiar desde la tabla foránea «%s»" -#: commands/copyto.c:404 +#: commands/copyto.c:397 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "no se puede copiar desde la secuencia «%s»" -#: commands/copyto.c:409 +#: commands/copyto.c:402 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "no se puede hacer copy de la tabla particionada «%s»" -#: commands/copyto.c:415 +#: commands/copyto.c:408 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "no se puede copiar desde la relación «%s» porque no es una tabla" -#: commands/copyto.c:467 +#: commands/copyto.c:460 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "las reglas DO INSTEAD NOTHING no están soportadas para COPY" -#: commands/copyto.c:481 +#: commands/copyto.c:474 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "las reglas DO INSTEAD condicionales no están soportadas para COPY" -#: commands/copyto.c:485 +#: commands/copyto.c:478 #, c-format -msgid "DO ALSO rules are not supported for the COPY" +msgid "DO ALSO rules are not supported for COPY" msgstr "las reglas DO ALSO no están soportadas para COPY" -#: commands/copyto.c:490 +#: commands/copyto.c:483 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para COPY" -#: commands/copyto.c:500 +#: commands/copyto.c:493 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) no está soportado" -#: commands/copyto.c:517 +#: commands/copyto.c:499 +#, c-format +msgid "COPY query must not be a utility command" +msgstr "la consulta COPY no debe ser una orden de utilidad" + +#: commands/copyto.c:515 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "la consulta COPY debe tener una cláusula RETURNING" -#: commands/copyto.c:546 +#: commands/copyto.c:544 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "la relación referenciada por la sentencia COPY ha cambiado" -#: commands/copyto.c:605 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "la columna FORCE_QUOTE «%s» no es referenciada en COPY" - -#: commands/copyto.c:673 +#: commands/copyto.c:671 #, c-format msgid "relative path not allowed for COPY to file" msgstr "no se permiten rutas relativas para COPY hacia un archivo" -#: commands/copyto.c:692 +#: commands/copyto.c:690 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "no se pudo abrir el archivo «%s» para escritura: %m" -#: commands/copyto.c:695 +#: commands/copyto.c:693 #, c-format msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY TO indica al proceso servidor PostgreSQL escribir a un archivo. Puede desear usar facilidades del lado del cliente, como \\copy de psql." -#: commands/createas.c:215 commands/createas.c:523 +#: commands/createas.c:210 commands/createas.c:516 #, c-format msgid "too many column names were specified" msgstr "se especificaron demasiados nombres de columna" -#: commands/createas.c:546 +#: commands/createas.c:539 #, c-format msgid "policies not yet implemented for this command" msgstr "las políticas no están implementadas para esta orden" -#: commands/dbcommands.c:822 +#: commands/dbcommands.c:829 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION ya no está soportado" -#: commands/dbcommands.c:823 +#: commands/dbcommands.c:830 #, c-format msgid "Consider using tablespaces instead." msgstr "Considere usar tablespaces." -#: commands/dbcommands.c:848 +#: commands/dbcommands.c:855 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "los OIDs menores que %u están reservados para objetos del sistema" -#: commands/dbcommands.c:879 utils/adt/ascii.c:146 +#: commands/dbcommands.c:886 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%d no es un código válido de codificación" -#: commands/dbcommands.c:890 utils/adt/ascii.c:128 +#: commands/dbcommands.c:897 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%s no es un nombre válido de codificación" -#: commands/dbcommands.c:919 +#: commands/dbcommands.c:931 #, c-format msgid "unrecognized locale provider: %s" msgstr "proveedor de ordenamiento no reconocido: %s" -#: commands/dbcommands.c:932 commands/dbcommands.c:2318 commands/user.c:300 -#: commands/user.c:740 +#: commands/dbcommands.c:944 commands/dbcommands.c:2414 commands/user.c:299 +#: commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "límite de conexión no válido: %d" -#: commands/dbcommands.c:953 +#: commands/dbcommands.c:965 #, c-format msgid "permission denied to create database" msgstr "se ha denegado el permiso para crear la base de datos" -#: commands/dbcommands.c:977 +#: commands/dbcommands.c:989 #, c-format msgid "template database \"%s\" does not exist" msgstr "no existe la base de datos patrón «%s»" -#: commands/dbcommands.c:989 +#: commands/dbcommands.c:999 #, c-format -msgid "permission denied to copy database \"%s\"" +msgid "cannot use invalid database \"%s\" as template" +msgstr "no se puede usar la base de datos «%s» no válida como plantilla" + +#: commands/dbcommands.c:1000 commands/dbcommands.c:2444 +#: utils/init/postinit.c:1113 +#, c-format +msgid "Use DROP DATABASE to drop invalid databases." +msgstr "Use DROP DATABASE para eliminar una base de datos no válida." + +#: commands/dbcommands.c:1011 +#, c-format +msgid "permission denied to copy database \"%s\"" msgstr "se ha denegado el permiso para copiar la base de datos «%s»" -#: commands/dbcommands.c:1006 -#, fuzzy, c-format -#| msgid "invalid parameter list format: \"%s\"" +#: commands/dbcommands.c:1028 +#, c-format msgid "invalid create database strategy \"%s\"" -msgstr "el formato de la lista de parámetros no es válido: «%s»" +msgstr "estrategia de creación de base de dato no válida: «%s»" -#: commands/dbcommands.c:1007 -#, fuzzy, c-format -#| msgid "Valid values are \"local\" and \"cascaded\"." -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." -msgstr "Los valores aceptables son «local» y «cascaded»." +#: commands/dbcommands.c:1029 +#, c-format +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." +msgstr "Las estrategias válidas son «wal_log» y «file_copy»." -#: commands/dbcommands.c:1028 +#: commands/dbcommands.c:1050 #, c-format msgid "invalid server encoding %d" msgstr "la codificación de servidor %d no es válida" -#: commands/dbcommands.c:1034 commands/dbcommands.c:1039 +#: commands/dbcommands.c:1056 #, c-format -msgid "invalid locale name: \"%s\"" -msgstr "nombre de configuración regional no válido: «%s»" +msgid "invalid LC_COLLATE locale name: \"%s\"" +msgstr "nombre de configuración regional LC_COLLATE no válido: «%s»" -#: commands/dbcommands.c:1049 -#, fuzzy, c-format -#| msgid "encoding \"%s\" not supported by ICU" -msgid "encoding \"%s\" is not supported with ICU provider" -msgstr "la codificación «%s» no estæ soportada por ICU" +#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 +#, c-format +msgid "If the locale name is specific to ICU, use ICU_LOCALE." +msgstr "Si el nombre de configuración regional es específico a ICU, use ICU_LOCALE." + +#: commands/dbcommands.c:1062 +#, c-format +msgid "invalid LC_CTYPE locale name: \"%s\"" +msgstr "nombre de configuración regional LC_CTYPE no válido: «%s»" -#: commands/dbcommands.c:1059 +#: commands/dbcommands.c:1074 #, c-format -msgid "ICU locale must be specified" -msgstr "el locale ICU debe ser especificado" +msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" +msgstr "no se puede especificar BUILTIN_LOCALE a menos que el proveedor de configuración regional sea builtin" -#: commands/dbcommands.c:1088 +#: commands/dbcommands.c:1082 #, c-format msgid "ICU locale cannot be specified unless locale provider is ICU" msgstr "no se puede especificar una configuración regional ICU a menos que el proveedor de configuración regional sea ICU" -#: commands/dbcommands.c:1111 +#: commands/dbcommands.c:1100 +#, c-format +msgid "LOCALE or BUILTIN_LOCALE must be specified" +msgstr "debe especificarse LOCALE o BUILTIN_LOCALE" + +#: commands/dbcommands.c:1109 +#, c-format +msgid "encoding \"%s\" is not supported with ICU provider" +msgstr "la codificación «%s» no está soportada por ICU" + +#: commands/dbcommands.c:1119 +#, c-format +msgid "LOCALE or ICU_LOCALE must be specified" +msgstr "debe especificarse LOCALE o ICU_LOCALE" + +#: commands/dbcommands.c:1163 #, c-format msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" msgstr "la nueva codificación (%s) es incompatible con la codificación de la base de datos patrón (%s)" -#: commands/dbcommands.c:1114 +#: commands/dbcommands.c:1166 #, c-format msgid "Use the same encoding as in the template database, or use template0 as template." msgstr "Use la misma codificación que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1119 +#: commands/dbcommands.c:1171 #, c-format msgid "new collation (%s) is incompatible with the collation of the template database (%s)" msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)" -#: commands/dbcommands.c:1121 +#: commands/dbcommands.c:1173 #, c-format msgid "Use the same collation as in the template database, or use template0 as template." msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1126 +#: commands/dbcommands.c:1178 #, c-format msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)" msgstr "el nuevo LC_CTYPE (%s) es incompatible con el LC_CTYPE de la base de datos patrón (%s)" -#: commands/dbcommands.c:1128 +#: commands/dbcommands.c:1180 #, c-format msgid "Use the same LC_CTYPE as in the template database, or use template0 as template." msgstr "Use el mismo LC_CTYPE que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1133 -#, fuzzy, c-format -#| msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" +#: commands/dbcommands.c:1185 +#, c-format msgid "new locale provider (%s) does not match locale provider of the template database (%s)" -msgstr "la nueva codificación (%s) es incompatible con la codificación de la base de datos patrón (%s)" +msgstr "el nuevo proveedor de configuración regional (%s) no coincide con el proveedor de la base de datos patrón (%s)" -#: commands/dbcommands.c:1135 -#, fuzzy, c-format -#| msgid "Use the same encoding as in the template database, or use template0 as template." +#: commands/dbcommands.c:1187 +#, c-format msgid "Use the same locale provider as in the template database, or use template0 as template." -msgstr "Use la misma codificación que en la base de datos patrón, o bien use template0 como patrón." +msgstr "Use el mismo proveedor de «locale» que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1147 -#, fuzzy, c-format -#| msgid "new collation (%s) is incompatible with the collation of the template database (%s)" +#: commands/dbcommands.c:1199 +#, c-format msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)" -msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)" +msgstr "la nueva configuración regional ICU (%s) es incompatible con la configuración regional ICU de la base de datos patrón (%s)" -#: commands/dbcommands.c:1149 -#, fuzzy, c-format -#| msgid "Use the same collation as in the template database, or use template0 as template." +#: commands/dbcommands.c:1201 +#, c-format msgid "Use the same ICU locale as in the template database, or use template0 as template." -msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón." +msgstr "Use la misma configuración regional («locale») que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1160 -#, fuzzy, c-format -#| msgid "new collation (%s) is incompatible with the collation of the template database (%s)" +#: commands/dbcommands.c:1212 +#, c-format msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)" -msgstr "la nueva «collation» (%s) es incompatible con la «collation» de la base de datos patrón (%s)" +msgstr "las nuevas reglas de «collation» ICU (%s) son incompatibles con las reglas de «collation» ICU de la base de datos patrón (%s)" -#: commands/dbcommands.c:1162 -#, fuzzy, c-format -#| msgid "Use the same collation as in the template database, or use template0 as template." +#: commands/dbcommands.c:1214 +#, c-format msgid "Use the same ICU collation rules as in the template database, or use template0 as template." -msgstr "Use la misma «collation» que en la base de datos patrón, o bien use template0 como patrón." +msgstr "Use las mismas reglas de «collation» ICU que en la base de datos patrón, o bien use template0 como patrón." -#: commands/dbcommands.c:1185 +#: commands/dbcommands.c:1243 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" -msgstr "" +msgstr "la base de datos patrón «%s» tiene una versión de configuración regional, pero no se pudo determinar una versión real" -#: commands/dbcommands.c:1190 -#, fuzzy, c-format -#| msgid "template database \"%s\" does not exist" +#: commands/dbcommands.c:1248 +#, c-format msgid "template database \"%s\" has a collation version mismatch" -msgstr "no existe la base de datos patrón «%s»" +msgstr "discordancia en la versión de «collation» de la base de datos patrón «%s»" -#: commands/dbcommands.c:1192 -#, fuzzy, c-format -#| msgid "The collation in the database was created using version %s, but the operating system provides version %s." +#: commands/dbcommands.c:1250 +#, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." -msgstr "El ordenamiento en la base de datos fue creado usando la versión %s, pero el sistema operativo provee la versión %s." +msgstr "La base de datos patrón fue creada usando la versión %s, pero el sistema operativo provee la versión %s." -#: commands/dbcommands.c:1195 -#, fuzzy, c-format -#| msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." +#: commands/dbcommands.c:1253 +#, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." -msgstr "Reconstruya todos los objetos afectados por este ordenamiento y ejecute ALTER COLLATION %s REFRESH VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." +msgstr "Reconstruya todos los objetos de la base de datos patrón afectados por este ordenamiento y ejecute ALTER DATABASE %s REFRESH COLLATION VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." -#: commands/dbcommands.c:1231 commands/dbcommands.c:1947 +#: commands/dbcommands.c:1298 commands/dbcommands.c:2041 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "no puede usarse pg_global como tablespace por omisión" -#: commands/dbcommands.c:1257 +#: commands/dbcommands.c:1324 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "no se puede asignar el nuevo tablespace por omisión «%s»" -#: commands/dbcommands.c:1259 +#: commands/dbcommands.c:1326 #, c-format msgid "There is a conflict because database \"%s\" already has some tables in this tablespace." msgstr "Hay un conflicto puesto que la base de datos «%s» ya tiene algunas tablas en este tablespace." -#: commands/dbcommands.c:1289 commands/dbcommands.c:1820 +#: commands/dbcommands.c:1356 commands/dbcommands.c:1912 #, c-format msgid "database \"%s\" already exists" msgstr "la base de datos «%s» ya existe" -#: commands/dbcommands.c:1303 +#: commands/dbcommands.c:1370 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "la base de datos de origen «%s» está siendo utilizada por otros usuarios" -#: commands/dbcommands.c:1325 -#, fuzzy, c-format -#| msgid "database \"%s\" already exists" +#: commands/dbcommands.c:1392 +#, c-format msgid "database OID %u is already in use by database \"%s\"" -msgstr "la base de datos «%s» ya existe" +msgstr "el OID de base de datos %u ya está en uso por la base de datos «%s»" -#: commands/dbcommands.c:1331 +#: commands/dbcommands.c:1398 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "el directorio de datos con el OID %u especificado ya existe" -#: commands/dbcommands.c:1503 commands/dbcommands.c:1518 +#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 +#: utils/adt/pg_locale.c:2588 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "la codificación «%s» no coincide con la configuración regional «%s»" -#: commands/dbcommands.c:1506 +#: commands/dbcommands.c:1574 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "El parámetro LC_CTYPE escogido requiere la codificación «%s»." -#: commands/dbcommands.c:1521 +#: commands/dbcommands.c:1589 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "El parámetro LC_COLLATE escogido requiere la codificación «%s»." -#: commands/dbcommands.c:1601 +#: commands/dbcommands.c:1672 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "no existe la base de datos «%s», omitiendo" -#: commands/dbcommands.c:1625 +#: commands/dbcommands.c:1696 #, c-format msgid "cannot drop a template database" msgstr "no se puede borrar una base de datos patrón" -#: commands/dbcommands.c:1631 +#: commands/dbcommands.c:1702 #, c-format msgid "cannot drop the currently open database" msgstr "no se puede eliminar la base de datos activa" -#: commands/dbcommands.c:1644 +#: commands/dbcommands.c:1715 #, c-format msgid "database \"%s\" is used by an active logical replication slot" -msgstr "la base de datos «%s» está en uso por un slot de replicación activo" +msgstr "la base de datos «%s» está en uso por un slot de replicación lógica activo" -#: commands/dbcommands.c:1646 +#: commands/dbcommands.c:1717 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." msgstr[0] "Hay %d slot activo." msgstr[1] "Hay %d slots activos." -#: commands/dbcommands.c:1660 +#: commands/dbcommands.c:1731 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "la base de datos «%s» está siendo utilizada por suscripciones de replicación lógica" -#: commands/dbcommands.c:1662 +#: commands/dbcommands.c:1733 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." msgstr[0] "Hay %d suscripción." msgstr[1] "Hay %d suscripciones." -#: commands/dbcommands.c:1683 commands/dbcommands.c:1842 -#: commands/dbcommands.c:1969 +#: commands/dbcommands.c:1754 commands/dbcommands.c:1934 +#: commands/dbcommands.c:2063 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "la base de datos «%s» está siendo utilizada por otros usuarios" -#: commands/dbcommands.c:1802 +#: commands/dbcommands.c:1894 #, c-format msgid "permission denied to rename database" msgstr "se ha denegado el permiso para cambiar el nombre a la base de datos" -#: commands/dbcommands.c:1831 +#: commands/dbcommands.c:1923 #, c-format msgid "current database cannot be renamed" msgstr "no se puede cambiar el nombre de la base de datos activa" -#: commands/dbcommands.c:1925 +#: commands/dbcommands.c:2019 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "no se puede cambiar el tablespace de la base de datos activa" -#: commands/dbcommands.c:2031 +#: commands/dbcommands.c:2125 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "algunas relaciones de la base de datos «%s» ya están en el tablespace «%s»" -#: commands/dbcommands.c:2033 +#: commands/dbcommands.c:2127 #, c-format msgid "You must move them back to the database's default tablespace before using this command." msgstr "Debe moverlas de vuelta al tablespace por omisión de la base de datos antes de ejecutar esta orden." -#: commands/dbcommands.c:2160 commands/dbcommands.c:2868 -#: commands/dbcommands.c:3132 commands/dbcommands.c:3245 +#: commands/dbcommands.c:2256 commands/dbcommands.c:2999 +#: commands/dbcommands.c:3299 commands/dbcommands.c:3412 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "algunos archivos inútiles pueden haber quedado en el directorio \"%s\"" -#: commands/dbcommands.c:2221 +#: commands/dbcommands.c:2317 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "opción de DROP DATABASE «%s» no reconocida" -#: commands/dbcommands.c:2299 +#: commands/dbcommands.c:2395 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "la opción «%s» no puede ser especificada con otras opciones" -#: commands/dbcommands.c:2355 +#: commands/dbcommands.c:2443 +#, c-format +msgid "cannot alter invalid database \"%s\"" +msgstr "no se puede alterar base de datos no válida «%s»" + +#: commands/dbcommands.c:2460 #, c-format msgid "cannot disallow connections for current database" msgstr "no se pueden prohibir las conexiones para la base de datos actual" -#: commands/dbcommands.c:2570 +#: commands/dbcommands.c:2690 #, c-format msgid "permission denied to change owner of database" msgstr "se ha denegado el permiso para cambiar el dueño de la base de datos" -#: commands/dbcommands.c:2974 +#: commands/dbcommands.c:3105 #, c-format msgid "There are %d other session(s) and %d prepared transaction(s) using the database." msgstr "Hay otras %d sesiones y %d transacciones preparadas usando la base de datos." -#: commands/dbcommands.c:2977 +#: commands/dbcommands.c:3108 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." msgstr[0] "Hay %d otra sesión usando la base de datos." msgstr[1] "Hay otras %d sesiones usando la base de datos." -#: commands/dbcommands.c:2982 storage/ipc/procarray.c:3798 +#: commands/dbcommands.c:3113 storage/ipc/procarray.c:3859 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." msgstr[0] "Hay %d otra transacción preparada usando la base de datos." msgstr[1] "Hay otras %d transacciones preparadas usando la base de datos." -#: commands/dbcommands.c:3088 -#, fuzzy, c-format -#| msgid "removing WAL directory \"%s\"" +#: commands/dbcommands.c:3255 +#, c-format msgid "missing directory \"%s\"" -msgstr "eliminando el directorio de WAL «%s»" +msgstr "directorio «%s» faltante" -#: commands/dbcommands.c:3146 commands/tablespace.c:190 -#: commands/tablespace.c:639 +#: commands/dbcommands.c:3313 commands/tablespace.c:184 +#: commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "no se pudo hacer stat al directorio «%s»: %m" -#: commands/define.c:54 commands/define.c:258 commands/define.c:290 -#: commands/define.c:318 commands/define.c:364 +#: commands/define.c:53 commands/define.c:257 commands/define.c:289 +#: commands/define.c:317 commands/define.c:363 #, c-format msgid "%s requires a parameter" msgstr "%s requiere un parámetro" -#: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 commands/define.c:225 commands/define.c:243 +#: commands/define.c:86 commands/define.c:97 commands/define.c:191 +#: commands/define.c:209 commands/define.c:224 commands/define.c:242 #, c-format msgid "%s requires a numeric value" msgstr "%s requiere un valor numérico" -#: commands/define.c:154 +#: commands/define.c:153 #, c-format msgid "%s requires a Boolean value" msgstr "«%s» requiere un valor lógico (booleano)" -#: commands/define.c:168 commands/define.c:177 commands/define.c:327 +#: commands/define.c:167 commands/define.c:176 commands/define.c:326 #, c-format msgid "%s requires an integer value" msgstr "%s requiere valor entero" -#: commands/define.c:272 +#: commands/define.c:271 #, c-format msgid "argument of %s must be a name" msgstr "el argumento de %s debe ser un nombre" -#: commands/define.c:302 +#: commands/define.c:301 #, c-format msgid "argument of %s must be a type name" msgstr "el argumento de %s debe ser un nombre de tipo" -#: commands/define.c:348 +#: commands/define.c:347 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "argumento no válido para %s: «%s»" -#: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: commands/dropcmds.c:96 commands/functioncmds.c:1382 +#: utils/adt/ruleutils.c:2910 #, c-format msgid "\"%s\" is an aggregate function" msgstr "«%s» es una función de agregación" -#: commands/dropcmds.c:103 +#: commands/dropcmds.c:98 #, c-format msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Use DROP AGGREGATE para eliminar funciones de agregación." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16468 tcop/utility.c:1335 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3892 +#: commands/tablecmds.c:4050 commands/tablecmds.c:4102 +#: commands/tablecmds.c:17161 tcop/utility.c:1325 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "no existe la relación «%s», omitiendo" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1409 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "el esquema «%s» no existe, omitiendo" -#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "el tipo «%s» no existe, omitiendo" -#: commands/dropcmds.c:257 +#: commands/dropcmds.c:252 #, c-format msgid "access method \"%s\" does not exist, skipping" msgstr "no existe el método de acceso «%s», omitiendo" -#: commands/dropcmds.c:275 +#: commands/dropcmds.c:270 #, c-format msgid "collation \"%s\" does not exist, skipping" msgstr "no existe el ordenamiento (collation) «%s», omitiendo" -#: commands/dropcmds.c:282 +#: commands/dropcmds.c:277 #, c-format msgid "conversion \"%s\" does not exist, skipping" msgstr "no existe la conversión «%s», omitiendo" -#: commands/dropcmds.c:293 commands/statscmds.c:654 +#: commands/dropcmds.c:288 commands/statscmds.c:664 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "no existe el objeto de estadísticas «%s», omitiendo" -#: commands/dropcmds.c:300 +#: commands/dropcmds.c:295 #, c-format msgid "text search parser \"%s\" does not exist, skipping" msgstr "el analizador de búsqueda en texto «%s» no existe, omitiendo" -#: commands/dropcmds.c:307 +#: commands/dropcmds.c:302 #, c-format msgid "text search dictionary \"%s\" does not exist, skipping" msgstr "el diccionario de búsqueda en texto «%s» no existe, omitiendo" -#: commands/dropcmds.c:314 +#: commands/dropcmds.c:309 #, c-format msgid "text search template \"%s\" does not exist, skipping" msgstr "la plantilla de búsqueda en texto «%s» no existe, omitiendo" -#: commands/dropcmds.c:321 +#: commands/dropcmds.c:316 #, c-format msgid "text search configuration \"%s\" does not exist, skipping" msgstr "no existe la configuración de búsqueda en texto «%s», omitiendo" -#: commands/dropcmds.c:326 +#: commands/dropcmds.c:321 #, c-format msgid "extension \"%s\" does not exist, skipping" msgstr "no existe la extensión «%s», omitiendo" -#: commands/dropcmds.c:336 +#: commands/dropcmds.c:331 #, c-format msgid "function %s(%s) does not exist, skipping" msgstr "no existe la función %s(%s), omitiendo" -#: commands/dropcmds.c:349 +#: commands/dropcmds.c:344 #, c-format msgid "procedure %s(%s) does not exist, skipping" msgstr "el procedimiento %s(%s) no existe, omitiendo" -#: commands/dropcmds.c:362 +#: commands/dropcmds.c:357 #, c-format msgid "routine %s(%s) does not exist, skipping" msgstr "no existe la rutina %s(%s), omitiendo" -#: commands/dropcmds.c:375 +#: commands/dropcmds.c:370 #, c-format msgid "aggregate %s(%s) does not exist, skipping" msgstr "la función de agregación %s(%s) no existe, omitiendo" -#: commands/dropcmds.c:388 +#: commands/dropcmds.c:383 #, c-format msgid "operator %s does not exist, skipping" msgstr "el operador %s no existe, omitiendo" -#: commands/dropcmds.c:394 +#: commands/dropcmds.c:389 #, c-format msgid "language \"%s\" does not exist, skipping" msgstr "el lenguaje «%s» no existe, omitiendo" -#: commands/dropcmds.c:403 +#: commands/dropcmds.c:398 #, c-format msgid "cast from type %s to type %s does not exist, skipping" msgstr "no existe la conversión del tipo %s al tipo %s, omitiendo" -#: commands/dropcmds.c:412 +#: commands/dropcmds.c:407 #, c-format msgid "transform for type %s language \"%s\" does not exist, skipping" msgstr "la transformación para el tipo %s lenguaje «%s» no existe, omitiendo" -#: commands/dropcmds.c:420 +#: commands/dropcmds.c:415 #, c-format msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping" -msgstr "disparador «%s» para la relación «%s» no existe, omitiendo" +msgstr "“trigger” «%s» para la relación «%s» no existe, omitiendo" -#: commands/dropcmds.c:429 +#: commands/dropcmds.c:424 #, c-format msgid "policy \"%s\" for relation \"%s\" does not exist, skipping" msgstr "la política «%s» para la relación «%s» no existe, omitiendo" -#: commands/dropcmds.c:436 +#: commands/dropcmds.c:431 #, c-format msgid "event trigger \"%s\" does not exist, skipping" -msgstr "el disparador por eventos «%s» no existe, omitiendo" +msgstr "el “trigger” por eventos «%s» no existe, omitiendo" -#: commands/dropcmds.c:442 +#: commands/dropcmds.c:437 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist, skipping" msgstr "la regla «%s» para la relación «%s» no existe, omitiendo" -#: commands/dropcmds.c:449 +#: commands/dropcmds.c:444 #, c-format msgid "foreign-data wrapper \"%s\" does not exist, skipping" msgstr "no existe el conector de datos externos «%s», omitiendo" -#: commands/dropcmds.c:453 commands/foreigncmds.c:1360 +#: commands/dropcmds.c:448 commands/foreigncmds.c:1360 #, c-format msgid "server \"%s\" does not exist, skipping" msgstr "el servidor «%s» no existe, omitiendo" -#: commands/dropcmds.c:462 +#: commands/dropcmds.c:457 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\", skipping" msgstr "no existe la clase de operadores «%s» para el método de acceso «%s», omitiendo" -#: commands/dropcmds.c:474 +#: commands/dropcmds.c:469 #, c-format msgid "operator family \"%s\" does not exist for access method \"%s\", skipping" msgstr "no existe la familia de operadores «%s» para el método de acceso «%s», omitiendo" -#: commands/dropcmds.c:481 +#: commands/dropcmds.c:476 #, c-format msgid "publication \"%s\" does not exist, skipping" msgstr "no existe la publicación «%s», omitiendo" -#: commands/event_trigger.c:125 +#: commands/event_trigger.c:137 #, c-format msgid "permission denied to create event trigger \"%s\"" -msgstr "se ha denegado el permiso para crear el disparador por eventos «%s»" +msgstr "se ha denegado el permiso para crear el “trigger” por eventos «%s»" -#: commands/event_trigger.c:127 +#: commands/event_trigger.c:139 #, c-format msgid "Must be superuser to create an event trigger." -msgstr "Debe ser superusuario para crear un disparador por eventos." +msgstr "Debe ser superusuario para crear un “trigger” por eventos." -#: commands/event_trigger.c:136 +#: commands/event_trigger.c:149 #, c-format msgid "unrecognized event name \"%s\"" msgstr "nommre de evento «%s» no reconocido" -#: commands/event_trigger.c:153 +#: commands/event_trigger.c:166 #, c-format msgid "unrecognized filter variable \"%s\"" msgstr "variable de filtro «%s» no reconocida" -#: commands/event_trigger.c:207 +#: commands/event_trigger.c:181 +#, c-format +msgid "tag filtering is not supported for login event triggers" +msgstr "el filtrado de «tags» no está soportado en “triggers” por evento de login" + +#: commands/event_trigger.c:224 #, c-format msgid "filter value \"%s\" not recognized for filter variable \"%s\"" msgstr "el valor de filtro «%s» no es reconocido por la variable de filtro «%s»" #. translator: %s represents an SQL statement name -#: commands/event_trigger.c:213 commands/event_trigger.c:235 +#: commands/event_trigger.c:230 commands/event_trigger.c:252 #, c-format msgid "event triggers are not supported for %s" -msgstr "los disparadores por eventos no están soportados para %s" +msgstr "los “triggers” por evento no están soportados para %s" -#: commands/event_trigger.c:248 +#: commands/event_trigger.c:265 #, c-format msgid "filter variable \"%s\" specified more than once" msgstr "la variable de filtro «%s» fue especificada más de una vez" -#: commands/event_trigger.c:376 commands/event_trigger.c:420 -#: commands/event_trigger.c:514 +#: commands/event_trigger.c:438 commands/event_trigger.c:490 +#: commands/event_trigger.c:584 #, c-format msgid "event trigger \"%s\" does not exist" -msgstr "no existe el disparador por eventos «%s»" +msgstr "no existe el “trigger” por eventos «%s»" -#: commands/event_trigger.c:452 +#: commands/event_trigger.c:522 #, c-format msgid "event trigger with OID %u does not exist" -msgstr "no existe el disparador por eventos con OID %u" +msgstr "no existe el “trigger” por eventos con OID %u" -#: commands/event_trigger.c:482 +#: commands/event_trigger.c:552 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" -msgstr "se ha denegado el permiso para cambiar el dueño del disparador por eventos «%s»" +msgstr "se ha denegado el permiso para cambiar el dueño del “trigger” por eventos «%s»" -#: commands/event_trigger.c:484 +#: commands/event_trigger.c:554 #, c-format msgid "The owner of an event trigger must be a superuser." -msgstr "El dueño de un disparador por eventos debe ser un superusuario." +msgstr "El dueño de un “trigger” por eventos debe ser un superusuario." -#: commands/event_trigger.c:1304 +#: commands/event_trigger.c:1409 #, c-format msgid "%s can only be called in a sql_drop event trigger function" -msgstr "%s sólo puede invocarse en una función de un disparador en el evento sql_drop" +msgstr "%s sólo puede invocarse en una función de un “trigger” en el evento sql_drop" -#: commands/event_trigger.c:1397 commands/event_trigger.c:1418 +#: commands/event_trigger.c:1502 commands/event_trigger.c:1523 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" -msgstr "%s sólo puede invocarse en una función de un disparador en el evento table_rewrite" +msgstr "%s sólo puede invocarse en una función de un “trigger” en el evento table_rewrite" -#: commands/event_trigger.c:1831 +#: commands/event_trigger.c:1936 #, c-format msgid "%s can only be called in an event trigger function" -msgstr "%s sólo puede invocarse en una función de un disparador por eventos" +msgstr "%s sólo puede invocarse en una función de un “trigger” por eventos" -#: commands/explain.c:220 +#: commands/explain.c:241 commands/explain.c:266 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»" -#: commands/explain.c:227 +#: commands/explain.c:273 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "opción de EXPLAIN «%s» no reconocida" -#: commands/explain.c:236 +#: commands/explain.c:282 #, c-format msgid "EXPLAIN option WAL requires ANALYZE" msgstr "la opción WAL de EXPLAIN requiere ANALYZE" -#: commands/explain.c:245 +#: commands/explain.c:291 #, c-format msgid "EXPLAIN option TIMING requires ANALYZE" msgstr "la opción TIMING de EXPLAIN requiere ANALYZE" -#: commands/explain.c:251 -#, fuzzy, c-format -#| msgid "options -d/--dbname and -f/--file cannot be used together" +#: commands/explain.c:297 +#, c-format +msgid "EXPLAIN option SERIALIZE requires ANALYZE" +msgstr "la opción SERIALIZE de EXPLAIN requiere ANALYZE" + +#: commands/explain.c:303 +#, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" -msgstr "las opciones -d/--dbname y -f/--file no pueden usarse juntas" +msgstr "las opciones ANALYZE y GENERIC_PLAN de EXPLAIN no pueden usarse juntas" -#: commands/extension.c:177 commands/extension.c:3009 +#: commands/extension.c:178 commands/extension.c:3031 #, c-format msgid "extension \"%s\" does not exist" msgstr "no existe la extensión «%s»" -#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 -#: commands/extension.c:307 +#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 +#: commands/extension.c:308 #, c-format msgid "invalid extension name: \"%s\"" msgstr "nombre de extensión no válido: «%s»" -#: commands/extension.c:277 +#: commands/extension.c:278 #, c-format msgid "Extension names must not be empty." msgstr "Los nombres de extensión no deben ser vacíos." -#: commands/extension.c:286 +#: commands/extension.c:287 #, c-format msgid "Extension names must not contain \"--\"." msgstr "Los nombres de extensión no deben contener «--»." -#: commands/extension.c:298 +#: commands/extension.c:299 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "Los nombres de extensión no deben empezar ni terminar con «-»." -#: commands/extension.c:308 +#: commands/extension.c:309 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "Los nombres de extensión no deben contener caracteres separadores de directorio." -#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 -#: commands/extension.c:351 +#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 +#: commands/extension.c:352 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "nombre de versión de extensión no válido: «%s»" -#: commands/extension.c:324 +#: commands/extension.c:325 #, c-format msgid "Version names must not be empty." msgstr "Los nombres de versión no deben ser vacíos." -#: commands/extension.c:333 +#: commands/extension.c:334 #, c-format msgid "Version names must not contain \"--\"." msgstr "Los nombres de versión no deben contener «--»." -#: commands/extension.c:342 +#: commands/extension.c:343 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "Los nombres de versión no deben empezar ni terminar con «-»." -#: commands/extension.c:352 +#: commands/extension.c:353 #, c-format msgid "Version names must not contain directory separator characters." msgstr "Los nombres de versión no deben contener caracteres separadores de directorio." -#: commands/extension.c:506 -#, fuzzy, c-format -#| msgid "extension \"%s\" does not exist" +#: commands/extension.c:507 +#, c-format msgid "extension \"%s\" is not available" -msgstr "no existe la extensión «%s»" +msgstr "la extensión «%s» no está disponible" -#: commands/extension.c:507 -#, fuzzy, c-format -#| msgid "could not open extension control file \"%s\": %m" +#: commands/extension.c:508 +#, c-format msgid "Could not open extension control file \"%s\": %m." -msgstr "no se pudo abrir el archivo de control de extensión «%s»: %m" +msgstr "No se pudo abrir el archivo de control de extensión «%s»: %m." -#: commands/extension.c:509 +#: commands/extension.c:510 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." msgstr "La extensión debe primero ser instalada en el sistema donde PostgreSQL está ejecutándose." -#: commands/extension.c:513 +#: commands/extension.c:514 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "no se pudo abrir el archivo de control de extensión «%s»: %m" -#: commands/extension.c:536 commands/extension.c:546 +#: commands/extension.c:537 commands/extension.c:547 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "el parámetro «%s» no se puede cambiar en un archivo control secundario de extensión" -#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 -#: utils/misc/guc.c:3098 +#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 +#: utils/misc/guc.c:3147 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "el parámetro «%s» requiere un valor lógico (booleano)" -#: commands/extension.c:593 +#: commands/extension.c:594 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "«%s» no es un nombre válido de codificación" -#: commands/extension.c:607 commands/extension.c:622 +#: commands/extension.c:608 commands/extension.c:623 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "el parámetro «%s» debe ser una lista de nombres de extensión" -#: commands/extension.c:629 +#: commands/extension.c:630 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "parámetro no reconocido «%s» en el archivo «%s»" -#: commands/extension.c:638 +#: commands/extension.c:639 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "el parámetro «schema» no puede ser especificado cuando «relocatable» es verdadero" -#: commands/extension.c:816 +#: commands/extension.c:817 #, c-format msgid "transaction control statements are not allowed within an extension script" msgstr "las sentencias de control de transacción no están permitidos dentro de un guión de transacción" -#: commands/extension.c:896 +#: commands/extension.c:897 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "se ha denegado el permiso para crear la extensión «%s»" -#: commands/extension.c:899 +#: commands/extension.c:900 #, c-format msgid "Must have CREATE privilege on current database to create this extension." msgstr "Debe tener privilegio CREATE en la base de datos actual para crear esta extensión." -#: commands/extension.c:900 +#: commands/extension.c:901 #, c-format msgid "Must be superuser to create this extension." msgstr "Debe ser superusuario para crear esta extensión." -#: commands/extension.c:904 +#: commands/extension.c:905 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "se ha denegado el permiso para actualizar la extensión «%s»" -#: commands/extension.c:907 +#: commands/extension.c:908 #, c-format msgid "Must have CREATE privilege on current database to update this extension." msgstr "Debe tener privilegio CREATE en la base de datos actual para actualizar esta extensión." -#: commands/extension.c:908 +#: commands/extension.c:909 #, c-format msgid "Must be superuser to update this extension." msgstr "Debe ser superusuario para actualizar esta extensión." -#: commands/extension.c:1265 +#: commands/extension.c:1042 +#, c-format +msgid "invalid character in extension owner: must not contain any of \"%s\"" +msgstr "carácter no válido en dueño de extensión: no debe contener ninguno de «%s»" + +#: commands/extension.c:1066 commands/extension.c:1093 +#, c-format +msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" +msgstr "carácter no válido en esquema de extensión «%s»: no debe contener ninguno de «%s»" + +#: commands/extension.c:1288 #, c-format msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgstr "la extensión «%s» no tiene ruta de actualización desde la versión «%s» hasta la versión «%s»" -#: commands/extension.c:1473 commands/extension.c:3067 +#: commands/extension.c:1496 commands/extension.c:3089 #, c-format msgid "version to install must be specified" msgstr "la versión a instalar debe ser especificada" -#: commands/extension.c:1510 +#: commands/extension.c:1533 #, c-format msgid "extension \"%s\" has no installation script nor update path for version \"%s\"" msgstr "la extensión «%s» no tiene script de instalación ni ruta de actualización para la versión «%s»" -#: commands/extension.c:1544 +#: commands/extension.c:1567 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "la extensión «%s» debe ser instalada en el esquema «%s»" -#: commands/extension.c:1704 +#: commands/extension.c:1727 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "detectada una dependencia cíclica entre las extensiones «%s» y «%s»" -#: commands/extension.c:1709 +#: commands/extension.c:1732 #, c-format msgid "installing required extension \"%s\"" msgstr "instalando la extensión requerida «%s»" -#: commands/extension.c:1732 +#: commands/extension.c:1755 #, c-format msgid "required extension \"%s\" is not installed" msgstr "la extensión requerida «%s» no está instalada" -#: commands/extension.c:1735 +#: commands/extension.c:1758 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "Use CREATE EXTENSION ... CASCADE para instalar además las extensiones requeridas." -#: commands/extension.c:1770 +#: commands/extension.c:1793 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "la extensión «%s» ya existe, omitiendo" -#: commands/extension.c:1777 +#: commands/extension.c:1800 #, c-format msgid "extension \"%s\" already exists" msgstr "la extensión «%s» ya existe" -#: commands/extension.c:1788 +#: commands/extension.c:1811 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "los CREATE EXTENSION anidados no están soportados" -#: commands/extension.c:1952 +#: commands/extension.c:1975 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "no se puede eliminar la extensión «%s» porque está siendo modificada" -#: commands/extension.c:2427 +#: commands/extension.c:2450 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "%s sólo puede invocarse desde un script SQL ejecutado por CREATE EXTENSION" -#: commands/extension.c:2439 +#: commands/extension.c:2462 #, c-format msgid "OID %u does not refer to a table" msgstr "el OID %u no hace referencia a una tabla" -#: commands/extension.c:2444 +#: commands/extension.c:2467 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "el tabla «%s» no es un miembro de la extensión que se está creando" -#: commands/extension.c:2790 +#: commands/extension.c:2813 #, c-format msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema" msgstr "no se puede mover la extensión «%s» al esquema «%s» porque la extensión contiene al esquema" -#: commands/extension.c:2831 commands/extension.c:2928 +#: commands/extension.c:2854 commands/extension.c:2948 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "la extensión «%s» no soporta SET SCHEMA" -#: commands/extension.c:2885 -#, fuzzy, c-format -#| msgid "cannot drop extension \"%s\" because it is being modified" +#: commands/extension.c:2911 +#, c-format msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" -msgstr "no se puede eliminar la extensión «%s» porque está siendo modificada" +msgstr "no se puede hacer SET SCHEMA de la extensión «%s» porque otras extensiones lo impiden" -#: commands/extension.c:2887 -#, fuzzy, c-format -#| msgid "relation \"%s\" is not a partition of relation \"%s\"" +#: commands/extension.c:2913 +#, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." -msgstr "relación «%s» no es una partición de la relación «%s»" +msgstr "La extensión «%s» solicita no relocalizar la extensión «%s»." -#: commands/extension.c:2930 +#: commands/extension.c:2950 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "%s no está en el esquema de la extensión, «%s»" -#: commands/extension.c:2989 +#: commands/extension.c:3011 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "los ALTER EXTENSION anidados no están soportados" -#: commands/extension.c:3078 +#: commands/extension.c:3100 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "la versión «%s» de la extensión «%s» ya está instalada" -#: commands/extension.c:3290 +#: commands/extension.c:3311 #, c-format msgid "cannot add an object of this type to an extension" msgstr "no se puede añadir un objeto de este tipo a una extensión" -#: commands/extension.c:3356 +#: commands/extension.c:3409 #, c-format msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension" msgstr "no se puede agregar el esquema «%s» a la extensión «%s» porque el esquema contiene la extensión" -#: commands/extension.c:3450 +#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#, c-format +msgid "could not find multirange type for data type %s" +msgstr "no se pudo encontrar un tipo de multirango para el tipo de dato %s" + +#: commands/extension.c:3532 #, c-format msgid "file \"%s\" is too large" msgstr "el archivo «%s» es demasiado grande" @@ -8301,7 +8616,7 @@ msgstr "Debe ser superusuario para cambiar el dueño de un conector de datos ext msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "El dueño de un conector de datos externos debe ser un superusuario." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "no existe el conector de datos externos «%s»" @@ -8371,7 +8686,7 @@ msgstr "no existe el mapeo de usuario «%s» para el servidor «%s»" msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "no existe el mapeo de usuario «%s» para el servidor «%s», omitiendo" -#: commands/foreigncmds.c:1507 foreign/foreign.c:391 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "el conector de datos externos «%s» no tiene manejador" @@ -8386,524 +8701,528 @@ msgstr "el conector de datos externos «%s» no soporta IMPORT FOREIGN SCHEMA" msgid "importing foreign table \"%s\"" msgstr "importando la tabla foránea «%s»" -#: commands/functioncmds.c:109 +#: commands/functioncmds.c:104 #, c-format msgid "SQL function cannot return shell type %s" msgstr "una función SQL no puede retornar el tipo inconcluso %s" -#: commands/functioncmds.c:114 +#: commands/functioncmds.c:109 #, c-format msgid "return type %s is only a shell" msgstr "el tipo de retorno %s está inconcluso" -#: commands/functioncmds.c:143 parser/parse_type.c:354 +#: commands/functioncmds.c:138 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "no se puede especificar un modificador de tipo para el tipo inconcluso «%s»" -#: commands/functioncmds.c:149 +#: commands/functioncmds.c:144 #, c-format msgid "type \"%s\" is not yet defined" msgstr "el tipo «%s» no ha sido definido aún" -#: commands/functioncmds.c:150 +#: commands/functioncmds.c:145 #, c-format msgid "Creating a shell type definition." msgstr "Creando una definición de tipo inconclusa." -#: commands/functioncmds.c:249 +#: commands/functioncmds.c:244 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "las funciones SQL no pueden aceptar el tipo inconcluso %s" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:250 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "las funciones de agregación no pueden aceptar el tipo inconcluso %s" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:255 #, c-format msgid "argument type %s is only a shell" msgstr "el tipo de argumento %s está inconcluso" -#: commands/functioncmds.c:270 +#: commands/functioncmds.c:265 #, c-format msgid "type %s does not exist" msgstr "no existe el tipo %s" -#: commands/functioncmds.c:284 +#: commands/functioncmds.c:279 #, c-format msgid "aggregates cannot accept set arguments" msgstr "las funciones de agregación no pueden aceptar argumentos de conjunto" -#: commands/functioncmds.c:288 +#: commands/functioncmds.c:283 #, c-format msgid "procedures cannot accept set arguments" msgstr "los procedimientos no pueden aceptar argumentos de conjunto" -#: commands/functioncmds.c:292 +#: commands/functioncmds.c:287 #, c-format msgid "functions cannot accept set arguments" msgstr "funciones no pueden aceptar argumentos de conjunto" -#: commands/functioncmds.c:302 +#: commands/functioncmds.c:297 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "el parámetro VARIADIC debe ser el último parámetro de entrada" -#: commands/functioncmds.c:322 +#: commands/functioncmds.c:317 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "el parámetro VARIADIC debe ser el último parámetro" -#: commands/functioncmds.c:347 +#: commands/functioncmds.c:342 #, c-format msgid "VARIADIC parameter must be an array" msgstr "el parámetro VARIADIC debe ser un array" -#: commands/functioncmds.c:392 +#: commands/functioncmds.c:387 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "nombre de parámetro «%s» usado más de una vez" -#: commands/functioncmds.c:410 +#: commands/functioncmds.c:405 #, c-format msgid "only input parameters can have default values" msgstr "solo los parámetros de entrada pueden tener valores por omisión" -#: commands/functioncmds.c:425 +#: commands/functioncmds.c:420 #, c-format msgid "cannot use table references in parameter default value" msgstr "no se pueden usar referencias a tablas en el valor por omisión de un parámetro" -#: commands/functioncmds.c:449 +#: commands/functioncmds.c:444 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "los parámetros de entrada después de uno que tenga valor por omisión también deben tener valores por omisión" -#: commands/functioncmds.c:459 +#: commands/functioncmds.c:454 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "los parámetros OUT no pueden aparecer después de uno que tenga valor por omisión" -#: commands/functioncmds.c:601 commands/functioncmds.c:780 +#: commands/functioncmds.c:596 commands/functioncmds.c:775 #, c-format msgid "invalid attribute in procedure definition" msgstr "atributo no válido en definición de procedimiento" -#: commands/functioncmds.c:697 +#: commands/functioncmds.c:692 #, c-format msgid "support function %s must return type %s" msgstr "la función de soporte %s debe retornar el tipo %s" -#: commands/functioncmds.c:708 +#: commands/functioncmds.c:703 #, c-format msgid "must be superuser to specify a support function" msgstr "debe ser superusuario para especificar una función de soporte" -#: commands/functioncmds.c:829 commands/functioncmds.c:1432 +#: commands/functioncmds.c:824 commands/functioncmds.c:1427 #, c-format msgid "COST must be positive" msgstr "COST debe ser positivo" -#: commands/functioncmds.c:837 commands/functioncmds.c:1440 +#: commands/functioncmds.c:832 commands/functioncmds.c:1435 #, c-format msgid "ROWS must be positive" msgstr "ROWS debe ser positivo" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:861 #, c-format msgid "no function body specified" msgstr "no se ha especificado un cuerpo para la función" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:866 #, c-format msgid "duplicate function body specified" msgstr "se ha especificado por duplicado el cuerpo para la función" -#: commands/functioncmds.c:876 +#: commands/functioncmds.c:871 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "cuerpo de función SQL en línea solo es válido para lenguaje SQL" -#: commands/functioncmds.c:918 +#: commands/functioncmds.c:913 #, c-format msgid "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "una función SQL con el cuerpo de la función fuera de comillas no puede tener argumentos polimórficos" -#: commands/functioncmds.c:944 commands/functioncmds.c:963 +#: commands/functioncmds.c:939 commands/functioncmds.c:958 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%s aún no está soportado en una función SQL con el cuerpo fuera de comillas" -#: commands/functioncmds.c:991 +#: commands/functioncmds.c:986 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "sólo se requiere un item AS para el lenguaje «%s»" -#: commands/functioncmds.c:1096 +#: commands/functioncmds.c:1091 #, c-format msgid "no language specified" msgstr "no se ha especificado el lenguaje" -#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 -#: commands/proclang.c:237 +#: commands/functioncmds.c:1099 commands/functioncmds.c:2117 +#: commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "no existe el lenguaje «%s»" -#: commands/functioncmds.c:1106 commands/functioncmds.c:2107 +#: commands/functioncmds.c:1101 commands/functioncmds.c:2119 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Use CREATE EXTENSION para cargar el lenguaje en la base de datos." -#: commands/functioncmds.c:1139 commands/functioncmds.c:1424 +#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 #, c-format msgid "only superuser can define a leakproof function" msgstr "sólo un superusuario puede definir funciones «leakproof»" -#: commands/functioncmds.c:1190 +#: commands/functioncmds.c:1185 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "tipo de retorno de función debe ser %s debido a los parámetros OUT" -#: commands/functioncmds.c:1203 +#: commands/functioncmds.c:1198 #, c-format msgid "function result type must be specified" msgstr "el tipo de retorno de la función debe ser especificado" -#: commands/functioncmds.c:1256 commands/functioncmds.c:1444 +#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS no es aplicable cuando una función no retorna un conjunto" -#: commands/functioncmds.c:1547 +#: commands/functioncmds.c:1546 #, c-format msgid "source data type %s is a pseudo-type" msgstr "el tipo de origen %s es un pseudotipo" -#: commands/functioncmds.c:1553 +#: commands/functioncmds.c:1552 #, c-format msgid "target data type %s is a pseudo-type" msgstr "el tipo de retorno %s es un pseudotipo" -#: commands/functioncmds.c:1577 +#: commands/functioncmds.c:1576 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "el cast será ignorado porque el tipo de datos de origen es un dominio" -#: commands/functioncmds.c:1582 +#: commands/functioncmds.c:1581 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "el cast será ignorado porque el tipo de datos de destino es un dominio" -#: commands/functioncmds.c:1607 +#: commands/functioncmds.c:1606 #, c-format msgid "cast function must take one to three arguments" msgstr "la función de conversión lleva de uno a tres argumentos" -#: commands/functioncmds.c:1613 +#: commands/functioncmds.c:1612 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "el argumento de la función de conversión debe coincidir o ser binario-convertible con el tipo de origen" -#: commands/functioncmds.c:1617 +#: commands/functioncmds.c:1616 #, c-format msgid "second argument of cast function must be type %s" msgstr "el segundo argumento de la función de conversión debe ser de tipo %s" -#: commands/functioncmds.c:1622 +#: commands/functioncmds.c:1621 #, c-format msgid "third argument of cast function must be type %s" msgstr "el tercer argumento de la función de conversión debe ser de tipo %s" -#: commands/functioncmds.c:1629 +#: commands/functioncmds.c:1628 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "el tipo de salida de la función de conversión debe coincidir o ser binario-convertible con el tipo de retorno" -#: commands/functioncmds.c:1640 +#: commands/functioncmds.c:1639 #, c-format msgid "cast function must not be volatile" msgstr "la función de conversión no debe ser volatile" -#: commands/functioncmds.c:1645 +#: commands/functioncmds.c:1644 #, c-format msgid "cast function must be a normal function" msgstr "la función de conversión debe ser una función normal" -#: commands/functioncmds.c:1649 +#: commands/functioncmds.c:1648 #, c-format msgid "cast function must not return a set" msgstr "la función de conversión no debe retornar un conjunto" -#: commands/functioncmds.c:1675 +#: commands/functioncmds.c:1674 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "debe ser superusuario para crear una conversión sin especificar función" -#: commands/functioncmds.c:1690 +#: commands/functioncmds.c:1689 #, c-format msgid "source and target data types are not physically compatible" msgstr "los tipos de datos de origen y destino no son físicamente compatibles" -#: commands/functioncmds.c:1705 +#: commands/functioncmds.c:1709 #, c-format msgid "composite data types are not binary-compatible" msgstr "los tipos de datos compuestos no son binario-compatibles" -#: commands/functioncmds.c:1711 -#, c-format -msgid "enum data types are not binary-compatible" -msgstr "los tipos de datos enum no son binario-compatibles" - -#: commands/functioncmds.c:1717 +#: commands/functioncmds.c:1715 #, c-format msgid "array data types are not binary-compatible" msgstr "los tipos de datos de array no son binario-compatibles" -#: commands/functioncmds.c:1734 +#: commands/functioncmds.c:1723 +#, c-format +msgid "range data types are not binary-compatible" +msgstr "los tipos de datos de rango no son binario-compatibles" + +#: commands/functioncmds.c:1729 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "los tipos de datos enum no son binario-compatibles" + +#: commands/functioncmds.c:1746 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "los tipos de dato de dominio no deben ser marcados binario-compatibles" -#: commands/functioncmds.c:1744 +#: commands/functioncmds.c:1756 #, c-format msgid "source data type and target data type are the same" msgstr "el tipo de origen y el tipo de retorno son el mismo" -#: commands/functioncmds.c:1777 +#: commands/functioncmds.c:1789 #, c-format msgid "transform function must not be volatile" msgstr "la función de transformación no debe ser volatile" -#: commands/functioncmds.c:1781 +#: commands/functioncmds.c:1793 #, c-format msgid "transform function must be a normal function" msgstr "la función de transformación debe ser una función normal" -#: commands/functioncmds.c:1785 +#: commands/functioncmds.c:1797 #, c-format msgid "transform function must not return a set" msgstr "la función de transformación no debe retornar un conjunto" -#: commands/functioncmds.c:1789 +#: commands/functioncmds.c:1801 #, c-format msgid "transform function must take one argument" msgstr "la función de transformación debe recibir un argumento" -#: commands/functioncmds.c:1793 +#: commands/functioncmds.c:1805 #, c-format msgid "first argument of transform function must be type %s" msgstr "el primer argumento de la función de transformación debe ser de tipo %s" -#: commands/functioncmds.c:1832 +#: commands/functioncmds.c:1844 #, c-format msgid "data type %s is a pseudo-type" msgstr "el tipo de dato %s es un pseudo-tipo" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1850 #, c-format msgid "data type %s is a domain" msgstr "tipo de dato «%s» es un dominio" -#: commands/functioncmds.c:1878 +#: commands/functioncmds.c:1890 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "el tipo de dato de retorno de la función FROM SQL debe ser %s" -#: commands/functioncmds.c:1904 +#: commands/functioncmds.c:1916 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "el tipo de dato de retorno de la función TO SQL debe ser el tipo de dato de la transformación" -#: commands/functioncmds.c:1931 +#: commands/functioncmds.c:1943 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "la transformación para el tipo %s lenguaje «%s» ya existe" -#: commands/functioncmds.c:2017 +#: commands/functioncmds.c:2029 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "la transformación para el tipo %s lenguaje «%s» no existe" -#: commands/functioncmds.c:2041 +#: commands/functioncmds.c:2053 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "ya existe una función llamada %s en el esquema «%s»" -#: commands/functioncmds.c:2092 +#: commands/functioncmds.c:2104 #, c-format msgid "no inline code specified" msgstr "no se ha especificado código" -#: commands/functioncmds.c:2138 +#: commands/functioncmds.c:2150 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "el lenguaje «%s» no soporta ejecución de código en línea" -#: commands/functioncmds.c:2233 +#: commands/functioncmds.c:2245 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" msgstr[0] "no se pueden pasar más de %d argumento a un procedimiento" msgstr[1] "no se pueden pasar más de %d argumentos a un procedimiento" -#: commands/indexcmds.c:641 +#: commands/indexcmds.c:656 #, c-format msgid "must specify at least one column" msgstr "debe especificar al menos una columna" -#: commands/indexcmds.c:645 +#: commands/indexcmds.c:660 #, c-format msgid "cannot use more than %d columns in an index" msgstr "no se puede usar más de %d columnas en un índice" -#: commands/indexcmds.c:688 -#, fuzzy, c-format -#| msgid "cannot change relation \"%s\"" +#: commands/indexcmds.c:703 +#, c-format msgid "cannot create index on relation \"%s\"" -msgstr "no se puede cambiar la relación «%s»" +msgstr "no se puede crear índice en la relación «%s»" -#: commands/indexcmds.c:714 +#: commands/indexcmds.c:729 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "no se puede crear un índice en la tabla particionada «%s» concurrentemente" -#: commands/indexcmds.c:719 -#, c-format -msgid "cannot create exclusion constraints on partitioned table \"%s\"" -msgstr "no se pueden create restricciones de exclusión en la tabla particionada «%s»" - -#: commands/indexcmds.c:729 +#: commands/indexcmds.c:739 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "no se pueden crear índices en tablas temporales de otras sesiones" -#: commands/indexcmds.c:767 commands/tablecmds.c:784 commands/tablespace.c:1184 +#: commands/indexcmds.c:777 commands/tablecmds.c:818 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "no se puede especificar el tablespace por omisión para las relaciones particionadas" -#: commands/indexcmds.c:799 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:809 commands/tablecmds.c:849 commands/tablecmds.c:3588 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "sólo relaciones compartidas pueden ser puestas en el tablespace pg_global" -#: commands/indexcmds.c:832 +#: commands/indexcmds.c:842 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "sustituyendo el método de acceso obsoleto «rtree» por «gist»" -#: commands/indexcmds.c:853 +#: commands/indexcmds.c:863 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "el método de acceso «%s» no soporta índices únicos" -#: commands/indexcmds.c:858 +#: commands/indexcmds.c:868 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "el método de acceso «%s» no soporta columnas incluidas" -#: commands/indexcmds.c:863 +#: commands/indexcmds.c:873 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "el método de acceso «%s» no soporta índices multicolumna" -#: commands/indexcmds.c:868 +#: commands/indexcmds.c:878 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "el método de acceso «%s» no soporta restricciones de exclusión" -#: commands/indexcmds.c:995 +#: commands/indexcmds.c:1007 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" msgstr "no se puede hacer coincidir la llave de partición a un índice usando el método de acceso «%s»" -#: commands/indexcmds.c:1005 +#: commands/indexcmds.c:1017 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "restricción %s no soportada con definición de llave de particionamiento" -#: commands/indexcmds.c:1007 +#: commands/indexcmds.c:1019 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "No se pueden usar restricciones %s cuando las llaves de particionamiento incluyen expresiones." -#: commands/indexcmds.c:1046 +#: commands/indexcmds.c:1069 +#, c-format +msgid "cannot match partition key to index on column \"%s\" using non-equal operator \"%s\"" +msgstr "no se puede hacer coincidir la llave de partición en la columna «%s» usando el operador «%s» que no es igualdad" + +#: commands/indexcmds.c:1085 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "las restricciones unique en tablas particionadas deben incluir todas las columnas de particionamiento" -#: commands/indexcmds.c:1047 +#: commands/indexcmds.c:1086 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "La restricción %s en la tabla «%s» no incluye la columna «%s» que es parte de la llave de particionamiento." -#: commands/indexcmds.c:1066 commands/indexcmds.c:1085 +#: commands/indexcmds.c:1105 commands/indexcmds.c:1124 #, c-format msgid "index creation on system columns is not supported" msgstr "la creación de índices en columnas de sistema no está soportada" -#: commands/indexcmds.c:1314 tcop/utility.c:1525 +#: commands/indexcmds.c:1354 tcop/utility.c:1515 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "no se puede crear un índice único en la tabla particionada «%s»" -#: commands/indexcmds.c:1316 tcop/utility.c:1527 +#: commands/indexcmds.c:1356 tcop/utility.c:1517 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "La tabla «%s» contiene particiones que son tablas foráneas." -#: commands/indexcmds.c:1811 +#: commands/indexcmds.c:1806 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "las funciones utilizadas en predicados de índice deben estar marcadas IMMUTABLE" -#: commands/indexcmds.c:1889 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1885 parser/parse_utilcmd.c:2519 +#: parser/parse_utilcmd.c:2654 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "no existe la columna «%s» en la llave" -#: commands/indexcmds.c:1913 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1909 parser/parse_utilcmd.c:1807 #, c-format msgid "expressions are not supported in included columns" msgstr "las expresiones no están soportadas en columnas incluidas" -#: commands/indexcmds.c:1954 +#: commands/indexcmds.c:1950 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "las funciones utilizadas en expresiones de índice deben estar marcadas IMMUTABLE" -#: commands/indexcmds.c:1969 +#: commands/indexcmds.c:1965 #, c-format msgid "including column does not support a collation" msgstr "la columna incluida no permite un ordenamiento (collation)" -#: commands/indexcmds.c:1973 +#: commands/indexcmds.c:1969 #, c-format msgid "including column does not support an operator class" msgstr "la columna incluida no permite una clase de operadores" -#: commands/indexcmds.c:1977 +#: commands/indexcmds.c:1973 #, c-format msgid "including column does not support ASC/DESC options" msgstr "la columna incluida no permite las opciones ASC/DESC" -#: commands/indexcmds.c:1981 +#: commands/indexcmds.c:1977 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "la columna incluida no permite las opciones NULLS FIRST/LAST" -#: commands/indexcmds.c:2022 +#: commands/indexcmds.c:2020 #, c-format msgid "could not determine which collation to use for index expression" msgstr "no se pudo determinar qué ordenamiento (collation) usar para la expresión de índice" -#: commands/indexcmds.c:2030 commands/tablecmds.c:17497 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 -#: utils/adt/misc.c:586 +#: commands/indexcmds.c:2028 commands/tablecmds.c:18185 commands/typecmds.c:811 +#: parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3771 +#: utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "los ordenamientos (collation) no están soportados por el tipo %s" @@ -8938,95 +9257,100 @@ msgstr "el método de acceso «%s» no soporta las opciones ASC/DESC" msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "el método de acceso «%s» no soporta las opciones NULLS FIRST/LAST" -#: commands/indexcmds.c:2212 commands/tablecmds.c:17522 -#: commands/tablecmds.c:17528 commands/typecmds.c:2301 +#: commands/indexcmds.c:2210 commands/tablecmds.c:18210 +#: commands/tablecmds.c:18216 commands/typecmds.c:2311 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "el tipo de dato %s no tiene una clase de operadores por omisión para el método de acceso «%s»" -#: commands/indexcmds.c:2214 +#: commands/indexcmds.c:2212 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "Debe especificar una clase de operadores para el índice, o definir una clase de operadores por omisión para el tipo de datos." -#: commands/indexcmds.c:2243 commands/indexcmds.c:2251 +#: commands/indexcmds.c:2241 commands/indexcmds.c:2249 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "no existe la clase de operadores «%s» para el método de acceso «%s»" -#: commands/indexcmds.c:2265 commands/typecmds.c:2289 +#: commands/indexcmds.c:2263 commands/typecmds.c:2299 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "la clase de operadores «%s» no acepta el tipo de datos %s" -#: commands/indexcmds.c:2355 +#: commands/indexcmds.c:2353 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "hay múltiples clases de operadores por omisión para el tipo de datos %s" -#: commands/indexcmds.c:2683 +#: commands/indexcmds.c:2681 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "opción de REINDEX «%s» no reconocida" -#: commands/indexcmds.c:2910 +#: commands/indexcmds.c:2913 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "la tabla «%s» no tiene índices que puedan ser reindexados concurrentemente" -#: commands/indexcmds.c:2924 +#: commands/indexcmds.c:2927 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "la tabla «%s» no tiene índices para reindexar" -#: commands/indexcmds.c:2969 commands/indexcmds.c:3484 -#: commands/indexcmds.c:3612 +#: commands/indexcmds.c:2974 commands/indexcmds.c:3485 +#: commands/indexcmds.c:3615 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "no se pueden reindexar catálogos de sistema concurrentemente" -#: commands/indexcmds.c:2993 +#: commands/indexcmds.c:2998 #, c-format msgid "can only reindex the currently open database" msgstr "sólo se puede reindexar la base de datos actualmente abierta" -#: commands/indexcmds.c:3091 +#: commands/indexcmds.c:3090 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "no se puede reindexar un catálogo de sistema concurrentemente, omitiéndolos todos" -#: commands/indexcmds.c:3124 +#: commands/indexcmds.c:3123 #, c-format msgid "cannot move system relations, skipping all" msgstr "no se puede mover las relaciones de sistema, omitiendo todas" -#: commands/indexcmds.c:3170 +#: commands/indexcmds.c:3169 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "al reindexar tabla particionada «%s.%s»" -#: commands/indexcmds.c:3173 +#: commands/indexcmds.c:3172 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "al reindexar índice particionado «%s.%s»" -#: commands/indexcmds.c:3364 commands/indexcmds.c:4220 +#: commands/indexcmds.c:3365 commands/indexcmds.c:4241 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "la tabla «%s.%s» fue reindexada" -#: commands/indexcmds.c:3516 commands/indexcmds.c:3568 +#: commands/indexcmds.c:3517 commands/indexcmds.c:3570 #, c-format -msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" -msgstr "no se puede reindexar el índice no válido «%s.%s» concurrentemente, omitiendo" +msgid "skipping reindex of invalid index \"%s.%s\"" +msgstr "omitiendo reindexar índice no válido «%s.%s»" -#: commands/indexcmds.c:3522 +#: commands/indexcmds.c:3520 commands/indexcmds.c:3573 +#, c-format +msgid "Use DROP INDEX or REINDEX INDEX." +msgstr "Use DROP INDEX o REINDEX INDEX." + +#: commands/indexcmds.c:3524 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "no se puede reindexar el índice de restricción de exclusión «%s.%s» concurrentemente, omitiendo" -#: commands/indexcmds.c:3677 +#: commands/indexcmds.c:3680 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "no se puede reindexar este tipo de relación concurrentemente" @@ -9036,48 +9360,47 @@ msgstr "no se puede reindexar este tipo de relación concurrentemente" msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "no se puede mover relación no compartida al tablespace «%s»" -#: commands/indexcmds.c:4201 commands/indexcmds.c:4213 +#: commands/indexcmds.c:4222 commands/indexcmds.c:4234 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "el índice «%s.%s» fue reindexado" -#: commands/indexcmds.c:4203 commands/indexcmds.c:4222 +#: commands/indexcmds.c:4224 commands/indexcmds.c:4243 #, c-format msgid "%s." msgstr "%s." -#: commands/lockcmds.c:93 -#, fuzzy, c-format -#| msgid "cannot lock rows in relation \"%s\"" +#: commands/lockcmds.c:91 +#, c-format msgid "cannot lock relation \"%s\"" -msgstr "no se puede bloquear registros en la tabla «%s»" +msgstr "no se puede bloquear la relación «%s»" -#: commands/matview.c:194 +#: commands/matview.c:206 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "no se puede usar CONCURRENTLY cuando la vista materializada no contiene datos" -#: commands/matview.c:200 gram.y:18307 +#: commands/matview.c:212 gram.y:18918 #, c-format msgid "%s and %s options cannot be used together" msgstr "las opciones %s y %s no pueden usarse juntas" -#: commands/matview.c:257 +#: commands/matview.c:269 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "no se puede refrescar la vista materializada «%s» concurrentemente" -#: commands/matview.c:260 +#: commands/matview.c:272 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." msgstr "Cree un índice único sin cláusula WHERE en una o más columnas de la vista materializada." -#: commands/matview.c:654 +#: commands/matview.c:666 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "nuevos datos para la vista materializada «%s» contiene filas duplicadas sin columnas nulas" -#: commands/matview.c:656 +#: commands/matview.c:668 #, c-format msgid "Row: %s" msgstr "Fila: %s" @@ -9279,27 +9602,27 @@ msgstr "el número de operador %d para (%s,%s) aparece más de una vez" msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "ya existe un operador %d(%s,%s) en la familia de operadores «%s»" -#: commands/opclasscmds.c:1566 +#: commands/opclasscmds.c:1589 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "ya existe una función %d(%s,%s) en la familia de operador «%s»" -#: commands/opclasscmds.c:1647 +#: commands/opclasscmds.c:1744 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "no existe el operador %d(%s,%s) en la familia de operadores «%s»" -#: commands/opclasscmds.c:1687 +#: commands/opclasscmds.c:1784 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "no existe la función %d(%s,%s) en la familia de operadores «%s»" -#: commands/opclasscmds.c:1718 +#: commands/opclasscmds.c:1815 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "ya existe una clase de operadores «%s» para el método de acceso «%s» en el esquema «%s»" -#: commands/opclasscmds.c:1741 +#: commands/opclasscmds.c:1838 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "ya existe una familia de operadores «%s» para el método de acceso «%s» en el esquema «%s»" @@ -9309,7 +9632,7 @@ msgstr "ya existe una familia de operadores «%s» para el método de acceso «% msgid "SETOF type not allowed for operator argument" msgstr "no se permite un tipo SETOF en los argumentos de un operador" -#: commands/operatorcmds.c:154 commands/operatorcmds.c:481 +#: commands/operatorcmds.c:154 commands/operatorcmds.c:554 #, c-format msgid "operator attribute \"%s\" not recognized" msgstr "el atributo de operador «%s» no es reconocido" @@ -9349,53 +9672,70 @@ msgstr "la función de estimación de join %s tiene múltiples coincidencias" msgid "join estimator function %s must return type %s" msgstr "la función de estimación de join %s debe retornar tipo %s" -#: commands/operatorcmds.c:475 +#: commands/operatorcmds.c:388 parser/parse_oper.c:119 parser/parse_oper.c:637 +#: utils/adt/regproc.c:509 utils/adt/regproc.c:683 +#, c-format +msgid "operator does not exist: %s" +msgstr "el operador no existe: %s" + +#: commands/operatorcmds.c:396 parser/parse_oper.c:702 parser/parse_oper.c:815 +#, c-format +msgid "operator is only a shell: %s" +msgstr "el operador está inconcluso: %s" + +#: commands/operatorcmds.c:548 #, c-format msgid "operator attribute \"%s\" cannot be changed" msgstr "el atributo de operador «%s» no puede ser cambiado" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9181 commands/tablecmds.c:17090 -#: commands/tablecmds.c:17125 commands/trigger.c:323 commands/trigger.c:1339 -#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 -#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 +#: commands/operatorcmds.c:615 commands/operatorcmds.c:622 +#: commands/operatorcmds.c:628 commands/operatorcmds.c:634 +#, c-format +msgid "operator attribute \"%s\" cannot be changed if it has already been set" +msgstr "el atributo de operador «%s» no puede ser cambiado si ya se ha establecido" + +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 +#: commands/tablecmds.c:1740 commands/tablecmds.c:2340 +#: commands/tablecmds.c:3702 commands/tablecmds.c:6605 +#: commands/tablecmds.c:9637 commands/tablecmds.c:17772 +#: commands/tablecmds.c:17807 commands/trigger.c:316 commands/trigger.c:1332 +#: commands/trigger.c:1442 rewrite/rewriteDefine.c:268 +#: rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "permiso denegado: «%s» es un catálogo de sistema" -#: commands/policy.c:172 +#: commands/policy.c:169 #, c-format msgid "ignoring specified roles other than PUBLIC" msgstr "ignorando los roles especificados que no son PUBLIC" -#: commands/policy.c:173 +#: commands/policy.c:170 #, c-format msgid "All roles are members of the PUBLIC role." msgstr "Todos los roles son miembros del rol PUBLIC." -#: commands/policy.c:606 +#: commands/policy.c:603 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK no puede ser aplicado a SELECT o DELETE" -#: commands/policy.c:615 commands/policy.c:918 +#: commands/policy.c:612 commands/policy.c:915 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "sólo se permite una expresión WITH CHECK para INSERT" -#: commands/policy.c:689 commands/policy.c:1141 +#: commands/policy.c:686 commands/policy.c:1138 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "la política «%s» para la tabla «%s» ya existe" -#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 +#: commands/policy.c:887 commands/policy.c:1166 commands/policy.c:1237 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "no existe la política «%s» para la tabla «%s»" -#: commands/policy.c:908 +#: commands/policy.c:905 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "sólo se permite una expresión USING para SELECT, DELETE" @@ -9411,270 +9751,244 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "no se puede crear un cursor WITH HOLD dentro de una operación restringida por seguridad" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2844 utils/adt/xml.c:3014 +#: executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "no existe el cursor «%s»" -#: commands/prepare.c:75 +#: commands/prepare.c:72 #, c-format msgid "invalid statement name: must not be empty" msgstr "el nombre de sentencia no es válido: no debe ser vacío" -#: commands/prepare.c:230 commands/prepare.c:235 +#: commands/prepare.c:227 commands/prepare.c:232 #, c-format msgid "prepared statement is not a SELECT" msgstr "la sentencia preparada no es un SELECT" -#: commands/prepare.c:295 +#: commands/prepare.c:292 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "el número de parámetros es incorrecto en la sentencia preparada «%s»" -#: commands/prepare.c:297 +#: commands/prepare.c:294 #, c-format msgid "Expected %d parameters but got %d." msgstr "Se esperaban %d parámetros pero se obtuvieron %d." -#: commands/prepare.c:330 +#: commands/prepare.c:327 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "el parámetro $%d de tipo %s no puede ser convertido al tipo esperado %s" -#: commands/prepare.c:414 +#: commands/prepare.c:411 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "la sentencia preparada «%s» ya existe" -#: commands/prepare.c:453 +#: commands/prepare.c:450 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "no existe la sentencia preparada «%s»" -#: commands/proclang.c:68 +#: commands/proclang.c:66 #, c-format msgid "must be superuser to create custom procedural language" msgstr "debe ser superusuario para crear un lenguaje procedural personalizado" -#: commands/publicationcmds.c:131 postmaster/postmaster.c:1205 -#: postmaster/postmaster.c:1303 storage/file/fd.c:3861 -#: utils/init/miscinit.c:1815 +#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 +#: postmaster/postmaster.c:1210 utils/init/miscinit.c:1865 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "la sintaxis de lista no es válida para el parámetro «%s»" -#: commands/publicationcmds.c:150 -#, fuzzy, c-format -#| msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" +#: commands/publicationcmds.c:143 +#, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" -msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»" +msgstr "valor no reconocido para la opción de publicación «%s»: «%s»" -#: commands/publicationcmds.c:164 +#: commands/publicationcmds.c:157 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "parámetro de publicación no reconocido: «%s»" -#: commands/publicationcmds.c:205 -#, fuzzy, c-format -#| msgid "no schema has been selected to create in" +#: commands/publicationcmds.c:198 +#, c-format msgid "no schema has been selected for CURRENT_SCHEMA" -msgstr "no se ha seleccionado ningún esquema dentro del cual crear" +msgstr "no se ha seleccionado ningún esquema para CURRENT_SCHEMA" -#: commands/publicationcmds.c:502 -#, fuzzy -#| msgid "System catalog modifications are currently disallowed." +#: commands/publicationcmds.c:495 msgid "System columns are not allowed." -msgstr "Las modificaciones al catálogo del sistema están actualmente deshabilitadas." +msgstr "Las columnas de sistema no son permitidas." -#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 -#: commands/publicationcmds.c:531 -#, fuzzy -#| msgid "grouping operations are not allowed in %s" +#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 +#: commands/publicationcmds.c:524 msgid "User-defined operators are not allowed." -msgstr "no se permiten operaciones «grouping» en %s" +msgstr "Los operadores definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:555 +#: commands/publicationcmds.c:548 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." -msgstr "" +msgstr "Sólo columnas, constantes, operadores built-in, tipos de datos built-in, configuraciones regionales built-in y funciones built-in inmutables son permitidas." -#: commands/publicationcmds.c:567 -#, fuzzy -#| msgid "set-returning functions are not allowed in %s" +#: commands/publicationcmds.c:560 msgid "User-defined types are not allowed." -msgstr "no se permiten funciones que retornan conjuntos en %s" +msgstr "Los tipos definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:570 -#, fuzzy -#| msgid "set-returning functions are not allowed in %s" +#: commands/publicationcmds.c:563 msgid "User-defined or built-in mutable functions are not allowed." -msgstr "no se permiten funciones que retornan conjuntos en %s" +msgstr "Las funciones definidas por el usuario, o las que son mutables, no están permitidas." -#: commands/publicationcmds.c:573 -#, fuzzy -#| msgid "set-returning functions are not allowed in %s" +#: commands/publicationcmds.c:566 msgid "User-defined collations are not allowed." -msgstr "no se permiten funciones que retornan conjuntos en %s" +msgstr "Los «collations» definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:583 -#, fuzzy, c-format -#| msgid "invalid publication_names syntax" +#: commands/publicationcmds.c:576 +#, c-format msgid "invalid publication WHERE expression" -msgstr "sintaxis de publication_names no válida" +msgstr "sintaxis de cláusula WHERE de publicación no válida" -#: commands/publicationcmds.c:636 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#: commands/publicationcmds.c:629 +#, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "no se puede usar cláusula WHERE de la publicación para la relación «%s»" -#: commands/publicationcmds.c:638 +#: commands/publicationcmds.c:631 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." -msgstr "" +msgstr "la cláusula WHERE no puede ser usada para una tabla particionada cuando %s es falso." -#: commands/publicationcmds.c:709 commands/publicationcmds.c:723 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 +#, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "no se puede usar lista de columnas para la relación «%s.%s» en la publicación «%s»" -#: commands/publicationcmds.c:712 +#: commands/publicationcmds.c:705 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." -msgstr "" +msgstr "Las listas de columnas no pueden ser especificadas en publicaciones que contienen elementos FOR TABLES IN SCHEMA." -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:719 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." -msgstr "" +msgstr "Las listas de columnas no pueden ser especificadas para tablas particionadas cuando %s es falso." -#: commands/publicationcmds.c:761 +#: commands/publicationcmds.c:754 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "debe ser superusuario para crear publicaciones FOR ALL TABLES" -#: commands/publicationcmds.c:832 -#, fuzzy, c-format -#| msgid "must be superuser to create FOR ALL TABLES publication" +#: commands/publicationcmds.c:825 +#, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" -msgstr "debe ser superusuario para crear publicaciones FOR ALL TABLES" +msgstr "debe ser superusuario para crear publicaciones FOR TABLES IN SCHEMA" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:861 #, c-format -msgid "wal_level is insufficient to publish logical changes" -msgstr "wal_level es insuficiente para publicar cambios lógicos" +msgid "\"wal_level\" is insufficient to publish logical changes" +msgstr "«wal_level» es insuficiente para publicar cambios lógicos" -#: commands/publicationcmds.c:869 -#, fuzzy, c-format -#| msgid "Change wal_level to be logical or higher." -msgid "Set wal_level to \"logical\" before creating subscriptions." -msgstr "Cambie wal_level a logical o superior." +#: commands/publicationcmds.c:862 +#, c-format +msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." +msgstr "Cambie «wal_level» a «logical» antes de crear suscripciones." -#: commands/publicationcmds.c:965 commands/publicationcmds.c:973 -#, fuzzy, c-format -#| msgid "cannot set parameter \"%s\" within security-definer function" +#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 +#, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" -msgstr "no se puede definir el parámetro «%s» dentro una función security-definer" +msgstr "no se puede definir el parámetro «%s» a falso para la publicación «%s»" -#: commands/publicationcmds.c:968 +#: commands/publicationcmds.c:961 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "La publicación contiene una cláusula WHERE para la tabla particionada «%s», que no está permitido cuando «%s» es falso." -#: commands/publicationcmds.c:976 +#: commands/publicationcmds.c:969 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "La publicación contiene una lista de columns para la tabla particionada «%s», que no está permitido cuando «%s» es falso." -#: commands/publicationcmds.c:1299 -#, fuzzy, c-format -#| msgid "cannot add schema \"%s\" to publication" +#: commands/publicationcmds.c:1292 +#, c-format msgid "cannot add schema to publication \"%s\"" -msgstr "no se puede agregar el esquema «%s» a la partición" +msgstr "no se puede agregar el esquema «%s» a la publicación" -#: commands/publicationcmds.c:1301 +#: commands/publicationcmds.c:1294 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." -msgstr "" +msgstr "Los esquemas no pueden ser añadidos si alguna tabla que especifica una lista de columnas ya es parte de la publicación." -#: commands/publicationcmds.c:1349 +#: commands/publicationcmds.c:1342 #, c-format msgid "must be superuser to add or set schemas" msgstr "debe ser superusuario para agregar o definir esquemas" -#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 +#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "la publicación \"%s\" se define como FOR ALL TABLES" -#: commands/publicationcmds.c:1360 -#, fuzzy, c-format -#| msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." +#: commands/publicationcmds.c:1353 +#, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." -msgstr "Las tablas no se pueden agregar ni eliminar de las publicaciones FOR ALL TABLES." +msgstr "No se pueden agregar ni eliminar esquemas de las publicaciones FOR ALL TABLES." -#: commands/publicationcmds.c:1368 +#: commands/publicationcmds.c:1361 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Las tablas no se pueden agregar ni eliminar de las publicaciones FOR ALL TABLES." -#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 -#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 +#: commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 #, c-format msgid "publication \"%s\" does not exist" msgstr "no existe la publicación «%s»" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 -#, fuzzy, c-format -#| msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" +#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 +#, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" -msgstr "declaraciones NULL/NOT NULL en conflicto o redundantes para la columna «%s»" +msgstr "cláusulas WHERE en conflicto o redundantes para la tabla «%s»" -#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669 -#, fuzzy, c-format -#| msgid "conflicting or redundant options" +#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 +#, c-format msgid "conflicting or redundant column lists for table \"%s\"" -msgstr "opciones contradictorias o redundantes" +msgstr "listas de columnas contradictorias o redundantes para la tabla «%s»" -#: commands/publicationcmds.c:1803 -#, fuzzy, c-format -#| msgid "operator argument types must be specified in ALTER OPERATOR FAMILY" +#: commands/publicationcmds.c:1796 +#, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" -msgstr "los tipos de los argumentos de operador deben ser especificados en ALTER OPERATOR FAMILY" +msgstr "la lista de columnas no debe ser especificada en ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1808 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "relación «%s» no es parte de la publicación" -#: commands/publicationcmds.c:1822 +#: commands/publicationcmds.c:1815 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "no se puede usar una cláusula WHERE cuando se elimina una tabla de una publicación" -#: commands/publicationcmds.c:1882 -#, fuzzy, c-format -#| msgid "relation \"%s\" is not part of the publication" +#: commands/publicationcmds.c:1875 +#, c-format msgid "tables from schema \"%s\" are not part of the publication" -msgstr "relación «%s» no es parte de la publicación" +msgstr "las tablas del esquema «%s» no son parte de la publicación" -#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932 +#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "se ha denegado el permiso para cambiar el dueño de la publicación «%s»" -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:1920 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "El dueño de una publicación FOR ALL TABLES debe ser un superusuario." -#: commands/publicationcmds.c:1934 -#, fuzzy, c-format -#| msgid "The owner of a FOR ALL TABLES publication must be a superuser." +#: commands/publicationcmds.c:1927 +#, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." -msgstr "El dueño de una publicación FOR ALL TABLES debe ser un superusuario." +msgstr "El dueño de una publicación FOR TABLES IN SCHEMA debe ser un superusuario." -#: commands/publicationcmds.c:2000 +#: commands/publicationcmds.c:1993 #, c-format msgid "publication with OID %u does not exist" msgstr "no existe la publicación con OID %u" @@ -9715,3263 +10029,3266 @@ msgid "security labels are not supported for this type of object" msgstr "las etiquetas de seguirdad no están soportadas para este tipo de objeto" #: commands/seclabel.c:193 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#, c-format msgid "cannot set security label on relation \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "no se puede definir la etiqueta de seguridad en la relación «%s»" -#: commands/sequence.c:754 +#: commands/sequence.c:748 #, c-format msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" -msgstr "" +msgstr "nextval: se alcanzó el valor máximo de la secuencia «%s» (%lld)" -#: commands/sequence.c:773 +#: commands/sequence.c:767 #, c-format msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" -msgstr "" +msgstr "nextval: se alcanzó el valor mínimo de la secuencia «%s» (%lld)" -#: commands/sequence.c:891 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "currval de la secuencia «%s» no está definido en esta sesión" -#: commands/sequence.c:910 commands/sequence.c:916 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "lastval no está definido en esta sesión" -#: commands/sequence.c:996 -#, fuzzy, c-format -#| msgid "value %s out of bounds for option \"%s\"" +#: commands/sequence.c:991 +#, c-format msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" -msgstr "el valor %s está fuera del rango de la opción «%s»" +msgstr "setval: el valor %lld está fuera del rango para la secuencia «%s» (%lld..%lld)" -#: commands/sequence.c:1365 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "opción de secuencia no válida SEQUENCE NAME" -#: commands/sequence.c:1391 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "el tipo de columna de identidad debe ser smallint, integer o bigint" -#: commands/sequence.c:1392 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "el tipo de secuencia debe ser smallint, integer o bigint" -#: commands/sequence.c:1426 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENT no debe ser cero" -#: commands/sequence.c:1474 -#, fuzzy, c-format -#| msgid "value \"%s\" is out of range for type %s" +#: commands/sequence.c:1466 +#, c-format msgid "MAXVALUE (%lld) is out of range for sequence data type %s" -msgstr "el valor «%s» está fuera de rango para el tipo %s" +msgstr "el MAXVALUE (%lld) está fuera de rango para el tipo de la secuencia %s" -#: commands/sequence.c:1506 -#, fuzzy, c-format -#| msgid "value \"%s\" is out of range for type %s" +#: commands/sequence.c:1498 +#, c-format msgid "MINVALUE (%lld) is out of range for sequence data type %s" -msgstr "el valor «%s» está fuera de rango para el tipo %s" +msgstr "el MINVALUE (%lld) está fuera de rango para el tipo de la secuencia %s" -#: commands/sequence.c:1514 +#: commands/sequence.c:1506 #, c-format msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" -msgstr "" +msgstr "MINVALUE (%lld) debe ser menor que MAXVALUE (%lld)" -#: commands/sequence.c:1535 +#: commands/sequence.c:1527 #, c-format msgid "START value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "" +msgstr "el valor START (%lld) no puede ser menor que MINVALUE (%lld)" -#: commands/sequence.c:1541 +#: commands/sequence.c:1533 #, c-format msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "" +msgstr "el valor START (%lld) no puede ser mayor que el MAXVALUE (%lld)" -#: commands/sequence.c:1565 +#: commands/sequence.c:1557 #, c-format msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "" +msgstr "el valor RESTART (%lld) no puede ser menor que MINVALUE (%lld)" -#: commands/sequence.c:1571 +#: commands/sequence.c:1563 #, c-format msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "" +msgstr "el valor RESTART (%lld) no puede ser mayor que MAXVALUE (%lld)" -#: commands/sequence.c:1582 -#, fuzzy, c-format -#| msgid "stride must be greater than zero" +#: commands/sequence.c:1574 +#, c-format msgid "CACHE (%lld) must be greater than zero" -msgstr "el intervalo de paso (stride) debe ser mayor que cero" +msgstr "el CACHE (%lld) debe ser mayor que cero" -#: commands/sequence.c:1618 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "opción OWNED BY no válida" -#: commands/sequence.c:1619 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "Especifique OWNED BY tabla.columna o OWNED BY NONE." -#: commands/sequence.c:1644 -#, fuzzy, c-format -#| msgid "cannot move system relation \"%s\"" +#: commands/sequence.c:1636 +#, c-format msgid "sequence cannot be owned by relation \"%s\"" -msgstr "no se puede mover la relación de sistema «%s»" +msgstr "la secuencia no puede ser poseída por la relación «%s»" -#: commands/sequence.c:1652 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "la secuencia debe tener el mismo dueño que la tabla a la que está enlazada" -#: commands/sequence.c:1656 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "la secuencia debe estar en el mismo esquema que la tabla a la que está enlazada" -#: commands/sequence.c:1678 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "no se puede cambiar el dueño de la secuencia de identidad" -#: commands/sequence.c:1679 commands/tablecmds.c:13891 -#: commands/tablecmds.c:16488 +#: commands/sequence.c:1671 commands/tablecmds.c:14486 +#: commands/tablecmds.c:17181 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "La secuencia «%s» está enlazada a la tabla «%s»." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1886 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "sólo se permite una relación en CREATE STATISTICS" -#: commands/statscmds.c:136 -#, fuzzy, c-format -#| msgid "cannot rewrite system relation \"%s\"" +#: commands/statscmds.c:133 +#, c-format msgid "cannot define statistics for relation \"%s\"" -msgstr "no se puede reescribir la relación de sistema «%s»" +msgstr "no se puede definir estadísticas para la relación «%s»" -#: commands/statscmds.c:190 +#: commands/statscmds.c:187 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "el objeto de estadísticas «%s» ya existe, omitiendo" -#: commands/statscmds.c:198 +#: commands/statscmds.c:195 #, c-format msgid "statistics object \"%s\" already exists" msgstr "el objeto de estadísticas «%s» ya existe" -#: commands/statscmds.c:209 +#: commands/statscmds.c:206 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "no se puede tener más de %d columnas en estadísticas" -#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307 +#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 #, c-format msgid "statistics creation on system columns is not supported" msgstr "la creación de estadísticas en columnas de sistema no está soportada" -#: commands/statscmds.c:257 commands/statscmds.c:280 +#: commands/statscmds.c:254 commands/statscmds.c:277 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "la columna «%s» no puede ser usado en estadísticas porque su tipo %s no tiene una clase de operadores por omisión para btree" -#: commands/statscmds.c:324 +#: commands/statscmds.c:321 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "la expresión no puede ser usada en estadísticas multivariantes porque su tipo %s no tiene una clase de operadores por omisión para btree" -#: commands/statscmds.c:345 +#: commands/statscmds.c:342 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "al crear estadísticas sobre una sola expresión, no se deben especificar tipos de estadísticas" -#: commands/statscmds.c:374 +#: commands/statscmds.c:371 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "tipo de estadísticas «%s» no reconocido" -#: commands/statscmds.c:403 +#: commands/statscmds.c:400 #, c-format msgid "extended statistics require at least 2 columns" msgstr "las estadísticas extendidas requieren al menos 2 columnas" -#: commands/statscmds.c:421 +#: commands/statscmds.c:418 #, c-format msgid "duplicate column name in statistics definition" msgstr "nombre de columna duplicado en definición de estadísticas" -#: commands/statscmds.c:456 +#: commands/statscmds.c:453 #, c-format msgid "duplicate expression in statistics definition" msgstr "expresión duplicada en definición de estadísticas" -#: commands/statscmds.c:619 commands/tablecmds.c:8180 +#: commands/statscmds.c:628 commands/tablecmds.c:8620 #, c-format msgid "statistics target %d is too low" msgstr "el valor de estadísticas %d es demasiado bajo" -#: commands/statscmds.c:627 commands/tablecmds.c:8188 +#: commands/statscmds.c:636 commands/tablecmds.c:8628 #, c-format msgid "lowering statistics target to %d" msgstr "bajando el valor de estadísticas a %d" -#: commands/statscmds.c:650 +#: commands/statscmds.c:660 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "no existe el objeto de estadísticas «%s.%s», omitiendo" -#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359 +#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "parámetro de suscripción no reconocido: «%s»" -#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:398 -#, fuzzy, c-format -#| msgid "unrecognized section name: \"%s\"" +#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:404 +#, c-format msgid "unrecognized origin value: \"%s\"" -msgstr "nombre de sección «%s» no reconocido" +msgstr "valor de origen no reconocido: «%s»" -#: commands/subscriptioncmds.c:350 -#, fuzzy, c-format -#| msgid "invalid WAL location: \"%s\"" +#: commands/subscriptioncmds.c:363 +#, c-format msgid "invalid WAL location (LSN): %s" -msgstr "ubicación de WAL no válida: «%s»" +msgstr "ubicación de WAL (LSN) no válida: %s" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 -#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 -#: commands/subscriptioncmds.c:426 +#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 +#: commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 +#: commands/subscriptioncmds.c:439 #, c-format msgid "%s and %s are mutually exclusive options" msgstr "%s y %s son opciones mutuamente excluyentes" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:416 commands/subscriptioncmds.c:432 +#: commands/subscriptioncmds.c:429 commands/subscriptioncmds.c:445 #, c-format msgid "subscription with %s must also set %s" msgstr "suscripción con %s también debe activar %s" -#: commands/subscriptioncmds.c:494 -#, fuzzy, c-format -#| msgid "could not receive list of replicated tables from the publisher: %s" +#: commands/subscriptioncmds.c:506 +#, c-format msgid "could not receive list of publications from the publisher: %s" -msgstr "no se pudo recibir la lista de tablas replicadas desde el editor (publisher): %s" +msgstr "no se pudo recibir la lista de publicaciones desde el publicador: %s" -#: commands/subscriptioncmds.c:526 -#, fuzzy, c-format -#| msgid "publication \"%s\" does not exist" +#: commands/subscriptioncmds.c:538 +#, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" -msgstr[0] "no existe la publicación «%s»" -msgstr[1] "no existe la publicación «%s»" +msgstr[0] "no existe la publicación «%s» en el “publisher”" +msgstr[1] "no existen las publicaciones «%s» en el “publisher”" -#: commands/subscriptioncmds.c:614 -#, fuzzy, c-format -#| msgid "permission denied for subscription %s" +#: commands/subscriptioncmds.c:626 +#, c-format msgid "permission denied to create subscription" -msgstr "permiso denegado a la suscripción %s" +msgstr "permiso denegado a crear suscripción" -#: commands/subscriptioncmds.c:615 +#: commands/subscriptioncmds.c:627 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." -msgstr "" +msgstr "Sólo los roles con privilegio del rol «%s» pueden crear suscripciones." -#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1304 replication/logical/worker.c:4616 +#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 +#: commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 +#: replication/logical/worker.c:4503 #, c-format msgid "could not connect to the publisher: %s" -msgstr "no se pudo connectar con el editor (publisher): %s" +msgstr "no se pudo connectar con el publicador: %s" -#: commands/subscriptioncmds.c:816 +#: commands/subscriptioncmds.c:829 #, c-format msgid "created replication slot \"%s\" on publisher" -msgstr "se creó el slot de replicación «%s» en el editor (publisher)" +msgstr "se creó el slot de replicación «%s» en el publicador" -#: commands/subscriptioncmds.c:828 -#, fuzzy, c-format -#| msgid "subscription has no replication slot set" +#: commands/subscriptioncmds.c:841 +#, c-format msgid "subscription was created, but is not connected" -msgstr "la suscripción no tiene un slot de replicación establecido" +msgstr "la suscripción fue creada, pero no está conectada" -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:842 #, c-format msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." -msgstr "" +msgstr "Para iniciar la replicacióñ, debe manualmente crear el slot de replicación, activar la suscripción, y refrescar la suscripción." -#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1502 -#: commands/subscriptioncmds.c:1885 utils/cache/lsyscache.c:3642 +#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 +#: commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 #, c-format msgid "subscription \"%s\" does not exist" msgstr "no existe la suscripción «%s»" -#: commands/subscriptioncmds.c:1152 +#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 #, c-format msgid "cannot set %s for enabled subscription" msgstr "no se puede establecer %s para la suscripción activada" -#: commands/subscriptioncmds.c:1227 +#: commands/subscriptioncmds.c:1233 +#, c-format +msgid "cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "no se puede definir la opción «%s” para una suscripción que no tiene un nombre de slot" + +#: commands/subscriptioncmds.c:1279 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "no se puede habilitar la suscripción que no tiene un nombre de slot" -#: commands/subscriptioncmds.c:1271 commands/subscriptioncmds.c:1322 +#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION con actualización no está permitido para las suscripciones desactivadas" -#: commands/subscriptioncmds.c:1272 +#: commands/subscriptioncmds.c:1324 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -#: commands/subscriptioncmds.c:1281 commands/subscriptioncmds.c:1336 -#, fuzzy, c-format -#| msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" +#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 +#, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" -msgstr "ALTER SUBSCRIPTION con actualización no está permitido para las suscripciones desactivadas" +msgstr "ALTER SUBSCRIPTION con «refresh» y «copy_data» no está permitido cuando «two_phase» está activo" -#: commands/subscriptioncmds.c:1282 -#, fuzzy, c-format -#| msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." +#: commands/subscriptioncmds.c:1334 +#, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION." - -#. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1324 -#, fuzzy, c-format -#| msgid "Use views instead." -msgid "Use %s instead." -msgstr "Use vistas en su lugar." +msgstr "Use ALTER SUBSCRIPTION ... SET PUBLICATION con refresh = false, o con copy_data=false, o use DROP/CREATE SUBSCRIPTION." #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1338 -#, fuzzy, c-format -#| msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." +#: commands/subscriptioncmds.c:1390 +#, c-format msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." -msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION." +msgstr "Use %s con refresh = false, o con copy_data = false, o use DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1360 +#: commands/subscriptioncmds.c:1412 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH no está permitido para las suscripciones desactivadas" -#: commands/subscriptioncmds.c:1385 -#, fuzzy, c-format -#| msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" +#: commands/subscriptioncmds.c:1437 +#, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" -msgstr "ALTER SUBSCRIPTION ... REFRESH no está permitido para las suscripciones desactivadas" +msgstr "ALTER SUBSCRIPTION ... REFRESH con copy_data no está permitido cuando two_phase está activo" -#: commands/subscriptioncmds.c:1386 +#: commands/subscriptioncmds.c:1438 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "Use ALTER SUBSCRIPTION ... REFRESH con copy_data = false, o use DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1421 +#: commands/subscriptioncmds.c:1473 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "la ubicación de WAL a saltar (LSN %X/%X) debe ser mayor que el LSN de origen %X/%X" -#: commands/subscriptioncmds.c:1506 +#: commands/subscriptioncmds.c:1594 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "no existe la suscripción «%s», omitiendo" -#: commands/subscriptioncmds.c:1775 +#: commands/subscriptioncmds.c:1863 #, c-format msgid "dropped replication slot \"%s\" on publisher" -msgstr "eliminando el slot de replicación «%s» en editor (publisher)" +msgstr "eliminando el slot de replicación «%s» en publicador" -#: commands/subscriptioncmds.c:1784 commands/subscriptioncmds.c:1792 +#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" -msgstr "no se pudo eliminar el slot de replicación «%s» en editor (publisher): %s" +msgstr "no se pudo eliminar el slot de replicación «%s» en publicador: %s" -#: commands/subscriptioncmds.c:1917 +#: commands/subscriptioncmds.c:2005 #, c-format msgid "subscription with OID %u does not exist" msgstr "no existe la suscripción con OID %u" -#: commands/subscriptioncmds.c:1988 commands/subscriptioncmds.c:2113 +#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" -msgstr "no se pudo recibir la lista de tablas replicadas desde el editor (publisher): %s" +msgstr "no se pudo recibir la lista de tablas replicadas desde el publicador: %s" -#: commands/subscriptioncmds.c:2024 +#: commands/subscriptioncmds.c:2112 #, c-format msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" -msgstr "" +msgstr "la suscripción «%s» pidió copy_data con origin = NONE pero podría copiar datos que tenían un origen diferente" -#: commands/subscriptioncmds.c:2026 -#, fuzzy, c-format -#| msgid "relation \"%s\" is not part of the publication" -msgid "Subscribed publication %s is subscribing to other publications." -msgid_plural "Subscribed publications %s are subscribing to other publications." -msgstr[0] "relación «%s» no es parte de la publicación" -msgstr[1] "relación «%s» no es parte de la publicación" +#: commands/subscriptioncmds.c:2114 +#, c-format +msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." +msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." +msgstr[0] "La suscripción que está siendo creada suscribe a una publicación (%s) que contiene tablas que están siendo escritas por otras suscripciones." +msgstr[1] "La suscripción que está siendo creada suscribe a publicaciones (%s) que contienen tablas que están siendo escritas por otras suscripciones." -#: commands/subscriptioncmds.c:2029 +#: commands/subscriptioncmds.c:2117 #, c-format msgid "Verify that initial data copied from the publisher tables did not come from other origins." -msgstr "" +msgstr "Verifique que los datos iniciales copiados desde el publicador no vinieron de otros orígenes." -#: commands/subscriptioncmds.c:2135 replication/logical/tablesync.c:875 -#: replication/pgoutput/pgoutput.c:1115 -#, fuzzy, c-format -#| msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" +#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 +#: replication/pgoutput/pgoutput.c:1143 +#, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" -msgstr "no se puede usar ONLY para una llave foránea en la tabla particionada «%s» haciendo referencia a la relación «%s»" +msgstr "no se puede usar distintas listas de columnas para la tabla «%s.%s» en distintas publicaciones" -#: commands/subscriptioncmds.c:2185 +#: commands/subscriptioncmds.c:2273 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" -msgstr "no se pudo conectar con el editor (publisher) al intentar eliminar el slot de replicación \"%s\": %s" +msgstr "no se pudo conectar con el publicador al intentar eliminar el slot de replicación \"%s\": %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2188 +#: commands/subscriptioncmds.c:2276 #, c-format -msgid "Use %s to disassociate the subscription from the slot." -msgstr "Use %s para disociar la suscripción del slot." +msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." +msgstr "Use %s para desactivar la suscripción, luego use %s para disociarla del slot." -#: commands/subscriptioncmds.c:2218 +#: commands/subscriptioncmds.c:2307 #, c-format msgid "publication name \"%s\" used more than once" msgstr "nombre de publicación «%s» usado más de una vez" -#: commands/subscriptioncmds.c:2262 +#: commands/subscriptioncmds.c:2351 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "la publicación «%s» ya existe en la suscripción «%s»" -#: commands/subscriptioncmds.c:2276 +#: commands/subscriptioncmds.c:2365 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "la publicación «%s» no está en la suscripción «%s»" -#: commands/subscriptioncmds.c:2287 +#: commands/subscriptioncmds.c:2376 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "no se puede eliminar todas las publicaciones de una suscripción" -#: commands/subscriptioncmds.c:2344 -#, fuzzy, c-format -#| msgid "%s requires a Boolean value" +#: commands/subscriptioncmds.c:2433 +#, c-format msgid "%s requires a Boolean value or \"parallel\"" -msgstr "«%s» requiere un valor lógico (booleano)" +msgstr "«%s» requiere un valor lógico (booleano) o “parallel”" -#: commands/tablecmds.c:246 commands/tablecmds.c:288 +#: commands/tablecmds.c:255 commands/tablecmds.c:297 #, c-format msgid "table \"%s\" does not exist" msgstr "no existe la tabla «%s»" -#: commands/tablecmds.c:247 commands/tablecmds.c:289 +#: commands/tablecmds.c:256 commands/tablecmds.c:298 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "la tabla «%s» no existe, omitiendo" -#: commands/tablecmds.c:249 commands/tablecmds.c:291 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 msgid "Use DROP TABLE to remove a table." msgstr "Use DROP TABLE para eliminar una tabla." -#: commands/tablecmds.c:252 +#: commands/tablecmds.c:261 #, c-format msgid "sequence \"%s\" does not exist" msgstr "no existe la secuencia «%s»" -#: commands/tablecmds.c:253 +#: commands/tablecmds.c:262 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "la secuencia «%s» no existe, omitiendo" -#: commands/tablecmds.c:255 +#: commands/tablecmds.c:264 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "Use DROP SEQUENCE para eliminar una secuencia." -#: commands/tablecmds.c:258 +#: commands/tablecmds.c:267 #, c-format msgid "view \"%s\" does not exist" msgstr "no existe la vista «%s»" -#: commands/tablecmds.c:259 +#: commands/tablecmds.c:268 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "la vista «%s» no existe, omitiendo" -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:270 msgid "Use DROP VIEW to remove a view." msgstr "Use DROP VIEW para eliminar una vista." -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:273 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "no existe la vista materializada «%s»" -#: commands/tablecmds.c:265 +#: commands/tablecmds.c:274 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "la vista materializada «%s» no existe, omitiendo" -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:276 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Use DROP MATERIALIZED VIEW para eliminar una vista materializada." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19002 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19805 +#: parser/parse_utilcmd.c:2251 #, c-format msgid "index \"%s\" does not exist" msgstr "no existe el índice «%s»" -#: commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:280 commands/tablecmds.c:304 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "el índice «%s» no existe, omitiendo" -#: commands/tablecmds.c:273 commands/tablecmds.c:297 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 msgid "Use DROP INDEX to remove an index." msgstr "Use DROP INDEX para eliminar un índice." -#: commands/tablecmds.c:278 +#: commands/tablecmds.c:287 #, c-format msgid "\"%s\" is not a type" msgstr "«%s» no es un tipo" -#: commands/tablecmds.c:279 +#: commands/tablecmds.c:288 msgid "Use DROP TYPE to remove a type." msgstr "Use DROP TYPE para eliminar un tipo." -#: commands/tablecmds.c:282 commands/tablecmds.c:13730 -#: commands/tablecmds.c:16193 +#: commands/tablecmds.c:291 commands/tablecmds.c:14325 +#: commands/tablecmds.c:16886 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "no existe la tabla foránea «%s»" -#: commands/tablecmds.c:283 +#: commands/tablecmds.c:292 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "la tabla foránea «%s» no existe, omitiendo" -#: commands/tablecmds.c:285 +#: commands/tablecmds.c:294 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Use DROP FOREIGN TABLE para eliminar una tabla foránea." -#: commands/tablecmds.c:700 +#: commands/tablecmds.c:734 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT sólo puede ser usado en tablas temporales" -#: commands/tablecmds.c:731 +#: commands/tablecmds.c:765 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "no se puede crear una tabla temporal dentro una operación restringida por seguridad" -#: commands/tablecmds.c:767 commands/tablecmds.c:15038 +#: commands/tablecmds.c:801 commands/tablecmds.c:15745 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "se heredaría de la relación «%s» más de una vez" -#: commands/tablecmds.c:955 -#, c-format -msgid "specifying a table access method is not supported on a partitioned table" -msgstr "especificar un método de acceso de tablas no está soportado en tablas particionadas" - -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1067 #, c-format msgid "\"%s\" is not partitioned" msgstr "«%s» no está particionada" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1161 #, c-format msgid "cannot partition using more than %d columns" msgstr "no se puede particionar usando más de %d columnas" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1217 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "no se puede crear una partición foránea en la tabla particionada «%s»" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1219 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "La tabla «%s» contiene índices que son únicos." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1338 commands/tablecmds.c:13341 #, c-format -msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" +msgid "too many array dimensions" +msgstr "demasiadas dimensiones de array" + +#: commands/tablecmds.c:1343 parser/parse_clause.c:774 +#: parser/parse_relation.c:1912 +#, c-format +msgid "column \"%s\" cannot be declared SETOF" +msgstr "la columna «%s» no puede ser declarada SETOF" + +#: commands/tablecmds.c:1489 +#, c-format +msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY no soporta eliminar múltiples objetos" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1493 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY no soporta CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1597 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "no se puede eliminar el índice particionado «%s» concurrentemente" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1885 #, c-format msgid "cannot truncate only a partitioned table" msgstr "no se puede truncar ONLY una tabla particionada" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1886 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "No especifique la opción ONLY, o ejecute TRUNCATE ONLY en las particiones directamente." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1959 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "truncando además la tabla «%s»" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2320 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "no se puede truncar la tabla foránea «%s»" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2377 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "no se pueden truncar tablas temporales de otras sesiones" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14935 +#: commands/tablecmds.c:2606 commands/tablecmds.c:15642 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "no se puede heredar de la tabla particionada «%s»" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2611 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "no se puede heredar de la partición «%s»" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2619 parser/parse_utilcmd.c:2481 +#: parser/parse_utilcmd.c:2623 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "la relación heredada «%s» no es una tabla o tabla foránea" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2631 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "no se puede crear una relación temporal como partición de la relación permanente «%s»" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14914 +#: commands/tablecmds.c:2640 commands/tablecmds.c:15621 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "no se puede heredar de la tabla temporal «%s»" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14922 +#: commands/tablecmds.c:2650 commands/tablecmds.c:15629 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "no se puede heredar de una tabla temporal de otra sesión" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2791 commands/tablecmds.c:2845 +#: commands/tablecmds.c:13024 parser/parse_utilcmd.c:1265 +#: parser/parse_utilcmd.c:1308 parser/parse_utilcmd.c:1735 +#: parser/parse_utilcmd.c:1843 #, c-format -msgid "merging multiple inherited definitions of column \"%s\"" -msgstr "mezclando múltiples definiciones heredadas de la columna «%s»" +msgid "cannot convert whole-row table reference" +msgstr "no se puede convertir una referencia a la fila completa (whole-row)" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2792 parser/parse_utilcmd.c:1266 #, c-format -msgid "inherited column \"%s\" has a type conflict" -msgstr "columna heredada «%s» tiene conflicto de tipos" +msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." +msgstr "La expresión de generación para la columna «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»." -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 -#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 -#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 -#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 -#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 -#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:223 +#: commands/tablecmds.c:2846 parser/parse_utilcmd.c:1309 #, c-format -msgid "%s versus %s" -msgstr "%s versus %s" +msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." +msgstr "La restricción «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»." -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2956 commands/tablecmds.c:3227 #, c-format -msgid "inherited column \"%s\" has a collation conflict" -msgstr "columna heredada «%s» tiene conflicto de ordenamiento (collation)" +msgid "column \"%s\" inherits from generated column but specifies default" +msgstr "la columna «%s» hereda de una columna generada pero especifica un valor por omisión" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2961 commands/tablecmds.c:3232 #, c-format -msgid "\"%s\" versus \"%s\"" -msgstr "«%s» versus «%s»" +msgid "column \"%s\" inherits from generated column but specifies identity" +msgstr "la columna «%s» hereda de una columna generada pero especifica una identidad" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2969 commands/tablecmds.c:3240 #, c-format -msgid "inherited column \"%s\" has a storage parameter conflict" -msgstr "columna heredada «%s» tiene conflicto de parámetros de almacenamiento" +msgid "child column \"%s\" specifies generation expression" +msgstr "la columna hija «%s» especifica una expresión de generación de columna" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2971 commands/tablecmds.c:3242 #, c-format -msgid "column \"%s\" has a compression method conflict" -msgstr "la columna «%s» tiene conflicto de método de compresión" +msgid "A child table column cannot be generated unless its parent column is." +msgstr "Una columna de tabla hija no puede ser generada a menos que su columna padre lo sea." -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:3017 #, c-format -msgid "inherited column \"%s\" has a generation conflict" -msgstr "columna heredada «%s» tiene conflicto de generación" +msgid "column \"%s\" inherits conflicting generation expressions" +msgstr "la columna «%s» hereda expresiones de generación en conflicto" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12456 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:3019 #, c-format -msgid "cannot convert whole-row table reference" -msgstr "no se puede convertir una referencia a la fila completa (whole-row)" +msgid "To resolve the conflict, specify a generation expression explicitly." +msgstr "Para resolver el conflicto, indique explícitamente una expresión de generación." -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:3023 #, c-format -msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." -msgstr "La expresión de generación para la columna «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»." +msgid "column \"%s\" inherits conflicting default values" +msgstr "la columna «%s» hereda valores por omisión no coincidentes" -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:3025 #, c-format -msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." -msgstr "La restricción «%s» contiene una referencia a la fila completa (whole-row) de la tabla «%s»." +msgid "To resolve the conflict, specify a default explicitly." +msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión." + +#: commands/tablecmds.c:3080 +#, c-format +msgid "check constraint name \"%s\" appears multiple times but with different expressions" +msgstr "la restricción «check» «%s» aparece más de una vez con diferentes expresiones" -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:3131 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "mezclando la columna «%s» con la definición heredada" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:3135 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "moviendo y mezclando la columna «%s» con la definición heredada" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:3136 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "La columna especificada por el usuario fue movida a la posición de la columna heredada." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:3148 #, c-format msgid "column \"%s\" has a type conflict" msgstr "la columna «%s» tiene conflicto de tipos" -#: commands/tablecmds.c:2933 +#: commands/tablecmds.c:3150 commands/tablecmds.c:3184 +#: commands/tablecmds.c:3200 commands/tablecmds.c:3307 +#: commands/tablecmds.c:3340 commands/tablecmds.c:3356 +#: parser/parse_coerce.c:2192 parser/parse_coerce.c:2212 +#: parser/parse_coerce.c:2232 parser/parse_coerce.c:2253 +#: parser/parse_coerce.c:2308 parser/parse_coerce.c:2342 +#: parser/parse_coerce.c:2418 parser/parse_coerce.c:2449 +#: parser/parse_coerce.c:2488 parser/parse_coerce.c:2555 +#: parser/parse_param.c:223 +#, c-format +msgid "%s versus %s" +msgstr "%s versus %s" + +#: commands/tablecmds.c:3162 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "la columna «%s» tiene conflicto de ordenamientos (collation)" -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:3164 commands/tablecmds.c:3326 +#: commands/tablecmds.c:7080 #, c-format -msgid "column \"%s\" has a storage parameter conflict" -msgstr "la columna «%s» tiene conflicto de parámetros de almacenamiento" +msgid "\"%s\" versus \"%s\"" +msgstr "«%s» versus «%s»" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:3182 #, c-format -msgid "column \"%s\" inherits from generated column but specifies default" -msgstr "la columna «%s» hereda de una columna generada pero especifica un valor por omisión" +msgid "column \"%s\" has a storage parameter conflict" +msgstr "la columna «%s» tiene conflicto de parámetros de almacenamiento" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3198 commands/tablecmds.c:3354 #, c-format -msgid "column \"%s\" inherits from generated column but specifies identity" -msgstr "la columna «%s» hereda de una columna generada pero especifica una identidad" +msgid "column \"%s\" has a compression method conflict" +msgstr "la columna «%s» tiene conflicto de método de compresión" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3293 #, c-format -msgid "child column \"%s\" specifies generation expression" -msgstr "la columna hija «%s» especifica una expresión de generación de columna" - -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 -#, fuzzy, c-format -#| msgid "A generated column cannot reference another generated column." -msgid "A child table column cannot be generated unless its parent column is." -msgstr "Una columna generada no puede hacer referencia a otra columna generada." +msgid "merging multiple inherited definitions of column \"%s\"" +msgstr "mezclando múltiples definiciones heredadas de la columna «%s»" -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3305 #, c-format -msgid "column \"%s\" inherits conflicting generation expressions" -msgstr "la columna «%s» hereda expresiones de generación en conflicto" - -#: commands/tablecmds.c:3149 -#, fuzzy, c-format -#| msgid "To resolve the conflict, specify a default explicitly." -msgid "To resolve the conflict, specify a generation expression explicitly." -msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión." +msgid "inherited column \"%s\" has a type conflict" +msgstr "columna heredada «%s» tiene conflicto de tipos" -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3324 #, c-format -msgid "column \"%s\" inherits conflicting default values" -msgstr "la columna «%s» hereda valores por omisión no coincidentes" +msgid "inherited column \"%s\" has a collation conflict" +msgstr "columna heredada «%s» tiene conflicto de ordenamiento (collation)" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3338 #, c-format -msgid "To resolve the conflict, specify a default explicitly." -msgstr "Para resolver el conflicto, indique explícitamente un valor por omisión." +msgid "inherited column \"%s\" has a storage parameter conflict" +msgstr "columna heredada «%s» tiene conflicto de parámetros de almacenamiento" -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3366 #, c-format -msgid "check constraint name \"%s\" appears multiple times but with different expressions" -msgstr "la restricción «check» «%s» aparece más de una vez con diferentes expresiones" +msgid "inherited column \"%s\" has a generation conflict" +msgstr "columna heredada «%s» tiene conflicto de generación" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3597 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "no se pueden mover tablas temporales de otras sesiones" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3670 #, c-format msgid "cannot rename column of typed table" msgstr "no se puede cambiar el nombre a una columna de una tabla tipada" -#: commands/tablecmds.c:3507 -#, fuzzy, c-format -#| msgid "cannot alter inherited column \"%s\" of relation \"%s\"" +#: commands/tablecmds.c:3689 +#, c-format msgid "cannot rename columns of relation \"%s\"" -msgstr "no se puede alterar la columna heredada «%s» de la relación «%s»" +msgstr "no se puede cambiar el nombre de columnas de la relación «%s»" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3784 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "debe cambiar el nombre a la columna heredada «%s» en las tablas hijas también" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3816 #, c-format msgid "cannot rename system column \"%s\"" msgstr "no se puede cambiar el nombre a la columna de sistema «%s»" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3831 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "no se puede cambiar el nombre a la columna heredada «%s»" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3983 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "debe cambiar el nombre a la restricción heredada «%s» en las tablas hijas también" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3990 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "no se puede cambiar el nombre a la restricción heredada «%s»" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4290 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "no se puede hacer %s en «%s» porque está siendo usada por consultas activas en esta sesión" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4299 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" -msgstr "no se puede hacer %s en «%s» porque tiene eventos de disparador pendientes" +msgstr "no se puede hacer %s en «%s» porque tiene eventos de “trigger” pendientes" + +#: commands/tablecmds.c:4325 +#, c-format +msgid "cannot alter temporary tables of other sessions" +msgstr "no se pueden alterar tablas temporales de otras sesiones" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4798 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "no se puede modificar la partición «%s» teniendo un desprendimiento incompleto" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:5002 commands/tablecmds.c:5017 #, c-format msgid "cannot change persistence setting twice" msgstr "no se puede cambiar la opción de persistencia dos veces" -#: commands/tablecmds.c:4810 -#, fuzzy, c-format -#| msgid "cannot change inheritance of partitioned table" -msgid "cannot change access method of a partitioned table" -msgstr "no se puede cambiar la herencia de una tabla particionada" - -#: commands/tablecmds.c:4816 -#, fuzzy, c-format -#| msgid "cannot have multiple SET TABLESPACE subcommands" +#: commands/tablecmds.c:5038 +#, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" -msgstr "no se pueden tener múltiples subórdenes SET TABLESPACE" +msgstr "no se pueden tener múltiples subórdenes SET ACCESS METHOD" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5768 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "no se puede reescribir la relación de sistema «%s»" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5774 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "no se puede reescribir la tabla «%s» que es usada como tabla de catálogo" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5786 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "no se puede reescribir tablas temporales de otras sesiones" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6281 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "la columna «%s» de la relación «%s» contiene valores null" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6298 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "la restricción check «%s» de la relación «%s» es violada por alguna fila" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6317 partitioning/partbounds.c:3387 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "la restricción de partición actualizada para la partición default «%s» sería violada por alguna fila" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6323 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "la restricción de partición de la relación «%s» es violada por alguna fila" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 -#, fuzzy, c-format -#| msgid "relation \"%s\" is not a parent of relation \"%s\"" +#: commands/tablecmds.c:6588 +#, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" -msgstr "relación «%s» no es un padre de la relación «%s»" +msgstr "la acción ALTER %s no puede ser efecutada en la relación «%s»" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6843 commands/tablecmds.c:6850 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "no se puede alterar el tipo «%s» porque la columna «%s.%s» lo usa" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6857 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "no se puede alterar la tabla foránea «%s» porque la columna «%s.%s» usa su tipo de registro" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6864 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "no se puede alterar la tabla «%s» porque la columna «%s.%s» usa su tipo de registro" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6920 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "no se puede cambiar el tipo «%s» porque es el tipo de una tabla tipada" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6922 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Use ALTER ... CASCADE para eliminar además las tablas tipadas." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6968 #, c-format msgid "type %s is not a composite type" msgstr "el tipo %s no es un tipo compuesto" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6995 #, c-format msgid "cannot add column to typed table" msgstr "no se puede agregar una columna a una tabla tipada" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:7043 #, c-format msgid "cannot add column to a partition" msgstr "no se puede agregar una columna a una partición" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15165 +#: commands/tablecmds.c:7072 commands/tablecmds.c:15860 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "la tabla hija «%s» tiene un tipo diferente para la columna «%s»" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15172 +#: commands/tablecmds.c:7078 commands/tablecmds.c:15866 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "la tabla hija «%s» tiene un ordenamiento (collation) diferente para la columna «%s»" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:7096 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "mezclando la definición de la columna «%s» en la tabla hija «%s»" -#: commands/tablecmds.c:6908 +#: commands/tablecmds.c:7149 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "no se puede agregar una columna de identidad recursivamente a una tabla que tiene tablas hijas" -#: commands/tablecmds.c:7159 +#: commands/tablecmds.c:7362 #, c-format msgid "column must be added to child tables too" msgstr "la columna debe ser agregada a las tablas hijas también" -#: commands/tablecmds.c:7237 +#: commands/tablecmds.c:7440 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "la columna «%s» de la relación «%s» ya existe, omitiendo" -#: commands/tablecmds.c:7244 +#: commands/tablecmds.c:7447 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "ya existe la columna «%s» en la relación «%s»" -#: commands/tablecmds.c:7310 commands/tablecmds.c:12094 +#: commands/tablecmds.c:7513 commands/tablecmds.c:12652 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "no se pueden eliminar restricciones sólo de la tabla particionada cuando existen particiones" -#: commands/tablecmds.c:7311 commands/tablecmds.c:7628 -#: commands/tablecmds.c:8593 commands/tablecmds.c:12095 +#: commands/tablecmds.c:7514 commands/tablecmds.c:7828 +#: commands/tablecmds.c:8006 commands/tablecmds.c:8113 +#: commands/tablecmds.c:8230 commands/tablecmds.c:9049 +#: commands/tablecmds.c:12653 #, c-format msgid "Do not specify the ONLY keyword." msgstr "No especifique la opción ONLY." -#: commands/tablecmds.c:7348 commands/tablecmds.c:7554 -#: commands/tablecmds.c:7696 commands/tablecmds.c:7810 -#: commands/tablecmds.c:7904 commands/tablecmds.c:7963 -#: commands/tablecmds.c:8082 commands/tablecmds.c:8221 -#: commands/tablecmds.c:8291 commands/tablecmds.c:8425 -#: commands/tablecmds.c:12249 commands/tablecmds.c:13753 -#: commands/tablecmds.c:16282 +#: commands/tablecmds.c:7550 commands/tablecmds.c:7754 +#: commands/tablecmds.c:7896 commands/tablecmds.c:8028 +#: commands/tablecmds.c:8157 commands/tablecmds.c:8251 +#: commands/tablecmds.c:8352 commands/tablecmds.c:8509 +#: commands/tablecmds.c:8662 commands/tablecmds.c:8743 +#: commands/tablecmds.c:8877 commands/tablecmds.c:12806 +#: commands/tablecmds.c:14348 commands/tablecmds.c:16975 #, c-format msgid "cannot alter system column \"%s\"" msgstr "no se puede alterar columna de sistema «%s»" -#: commands/tablecmds.c:7354 commands/tablecmds.c:7702 +#: commands/tablecmds.c:7556 commands/tablecmds.c:7902 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "la columna «%s» en la relación «%s» es una columna de identidad" -#: commands/tablecmds.c:7397 +#: commands/tablecmds.c:7597 #, c-format msgid "column \"%s\" is in a primary key" msgstr "la columna «%s» está en la llave primaria" -#: commands/tablecmds.c:7402 +#: commands/tablecmds.c:7602 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "la columna «%s» se encuentra en un índice utilizado como identidad de réplica" -#: commands/tablecmds.c:7425 +#: commands/tablecmds.c:7625 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "columna «%s» está marcada NOT NULL en la tabla padre" -#: commands/tablecmds.c:7625 commands/tablecmds.c:9077 +#: commands/tablecmds.c:7825 commands/tablecmds.c:9533 #, c-format msgid "constraint must be added to child tables too" msgstr "la restricción debe ser agregada a las tablas hijas también" -#: commands/tablecmds.c:7626 +#: commands/tablecmds.c:7826 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "La columna «%s» de la relación «%s» no está previamente marcada NOT NULL." -#: commands/tablecmds.c:7704 -#, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." -msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY en su lugar." - -#: commands/tablecmds.c:7709 +#: commands/tablecmds.c:7911 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "la columna «%s» en la relación «%s» es una columna generada" -#: commands/tablecmds.c:7712 +#: commands/tablecmds.c:8005 #, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." -msgstr "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION en su lugar." +msgid "cannot add identity to a column of only the partitioned table" +msgstr "no se puede agregar identidad a una columna de sólo una tabla particionada" -#: commands/tablecmds.c:7821 +#: commands/tablecmds.c:8011 +#, c-format +msgid "cannot add identity to a column of a partition" +msgstr "no se puede agregar identidad a una columna de una partición" + +#: commands/tablecmds.c:8039 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "la columna «%s» en la relación «%s» debe ser declarada NOT NULL antes de que una identidad pueda agregarse" -#: commands/tablecmds.c:7827 +#: commands/tablecmds.c:8045 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "la columna «%s» en la relación «%s» ya es una columna de identidad" -#: commands/tablecmds.c:7833 +#: commands/tablecmds.c:8051 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "la columna «%s» en la relación «%s» ya tiene un valor por omisión" -#: commands/tablecmds.c:7910 commands/tablecmds.c:7971 +#: commands/tablecmds.c:8112 +#, c-format +msgid "cannot change identity column of only the partitioned table" +msgstr "no se puede cambiar la columna de identidad de una tabla particionada" + +#: commands/tablecmds.c:8118 +#, c-format +msgid "cannot change identity column of a partition" +msgstr "no puede cambiar la columna de identidad de una partición" + +#: commands/tablecmds.c:8163 commands/tablecmds.c:8259 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "la columna «%s» en la relación «%s» no es una columna identidad" -#: commands/tablecmds.c:7976 +#: commands/tablecmds.c:8229 +#, c-format +msgid "cannot drop identity from a column of only the partitioned table" +msgstr "no se pueden eliminar la identidad de la columna de sólo una tabla particionada" + +#: commands/tablecmds.c:8235 +#, c-format +msgid "cannot drop identity from a column of a partition" +msgstr "no se puede eliminar la identidad de la columna de una partición" + +#: commands/tablecmds.c:8264 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "la columna «%s» de la relación «%s» no es una columna identidad, omitiendo" -#: commands/tablecmds.c:8029 +#: commands/tablecmds.c:8358 +#, c-format +msgid "column \"%s\" of relation \"%s\" is not a generated column" +msgstr "la columna «%s» en la relación «%s» no es una columna generada" + +#: commands/tablecmds.c:8456 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION se debe aplicar a las tablas hijas también" -#: commands/tablecmds.c:8051 +#: commands/tablecmds.c:8478 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "no se puede eliminar la expresión de generación de una columna heredada" -#: commands/tablecmds.c:8090 +#: commands/tablecmds.c:8517 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "la columna «%s» en la relación «%s» no es una columna generada almacenada" -#: commands/tablecmds.c:8095 +#: commands/tablecmds.c:8522 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "la columna «%s» de la relación «%s» no es una columna generada almacenada, omitiendo" -#: commands/tablecmds.c:8168 +#: commands/tablecmds.c:8600 #, c-format msgid "cannot refer to non-index column by number" msgstr "no se puede referir a columnas que no son de índice por número" -#: commands/tablecmds.c:8211 +#: commands/tablecmds.c:8652 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "no existe la columna número %d en la relación «%s»" -#: commands/tablecmds.c:8230 +#: commands/tablecmds.c:8671 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "no se puede alterar estadísticas en la columna incluida «%s» del índice «%s»" -#: commands/tablecmds.c:8235 +#: commands/tablecmds.c:8676 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "no se puede alterar estadísticas en la columna no-de-expresión «%s» del índice «%s»" -#: commands/tablecmds.c:8237 +#: commands/tablecmds.c:8678 #, c-format msgid "Alter statistics on table column instead." msgstr "Altere las estadísticas en la columna de la tabla en su lugar." -#: commands/tablecmds.c:8472 +#: commands/tablecmds.c:8924 #, c-format msgid "cannot drop column from typed table" msgstr "no se pueden eliminar columnas de una tabla tipada" -#: commands/tablecmds.c:8531 +#: commands/tablecmds.c:8987 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "no existe la columna «%s» en la relación «%s», omitiendo" -#: commands/tablecmds.c:8544 +#: commands/tablecmds.c:9000 #, c-format msgid "cannot drop system column \"%s\"" msgstr "no se puede eliminar la columna de sistema «%s»" -#: commands/tablecmds.c:8554 +#: commands/tablecmds.c:9010 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "no se puede eliminar la columna heredada «%s»" -#: commands/tablecmds.c:8567 +#: commands/tablecmds.c:9023 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "no se puede eliminar la columna «%s» porque es parte de la llave de partición de la relación «%s»" -#: commands/tablecmds.c:8592 +#: commands/tablecmds.c:9048 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "no se pueden eliminar columnas sólo de una tabla particionada cuando existe particiones" -#: commands/tablecmds.c:8797 +#: commands/tablecmds.c:9253 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX no está soportado en tablas particionadas" -#: commands/tablecmds.c:8822 +#: commands/tablecmds.c:9278 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX renombrará el índice «%s» a «%s»" -#: commands/tablecmds.c:9159 +#: commands/tablecmds.c:9615 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "no se puede usar ONLY para una llave foránea en la tabla particionada «%s» haciendo referencia a la relación «%s»" -#: commands/tablecmds.c:9165 +#: commands/tablecmds.c:9621 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "no se puede agregar una llave foránea NOT VALID a la tabla particionada «%s» haciendo referencia a la relación «%s»" -#: commands/tablecmds.c:9168 +#: commands/tablecmds.c:9624 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Esta característica no está aún soportada en tablas particionadas." -#: commands/tablecmds.c:9175 commands/tablecmds.c:9631 +#: commands/tablecmds.c:9631 commands/tablecmds.c:10092 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "la relación referida «%s» no es una tabla" -#: commands/tablecmds.c:9198 +#: commands/tablecmds.c:9654 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "las restricciones en tablas permanentes sólo pueden hacer referencia a tablas permanentes" -#: commands/tablecmds.c:9205 +#: commands/tablecmds.c:9661 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "las restricciones en tablas «unlogged» sólo pueden hacer referencia a tablas permanentes o «unlogged»" -#: commands/tablecmds.c:9211 +#: commands/tablecmds.c:9667 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "las restricciones en tablas temporales sólo pueden hacer referencia a tablas temporales" -#: commands/tablecmds.c:9215 +#: commands/tablecmds.c:9671 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "las restricciones en tablas temporales sólo pueden hacer referencia a tablas temporales de esta sesión" -#: commands/tablecmds.c:9279 commands/tablecmds.c:9285 +#: commands/tablecmds.c:9735 commands/tablecmds.c:9741 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "acción %s no válida para restricción de llave foránea que contiene columnas generadas" -#: commands/tablecmds.c:9301 +#: commands/tablecmds.c:9757 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "el número de columnas referidas en la llave foránea no coincide con el número de columnas de referencia" -#: commands/tablecmds.c:9408 +#: commands/tablecmds.c:9864 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "la restricción de llave foránea «%s» no puede ser implementada" -#: commands/tablecmds.c:9410 +#: commands/tablecmds.c:9866 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Las columnas llave «%s» y «%s» son de tipos incompatibles: %s y %s" -#: commands/tablecmds.c:9567 +#: commands/tablecmds.c:10035 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "la columna «%s» referenciada en la acción ON DELETE SET debe ser parte de la llave foránea" -#: commands/tablecmds.c:9841 commands/tablecmds.c:10311 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:10392 commands/tablecmds.c:10832 +#: parser/parse_utilcmd.c:822 parser/parse_utilcmd.c:945 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "las restricciones de llave foránea no están soportadas en tablas foráneas" -#: commands/tablecmds.c:10864 commands/tablecmds.c:11142 -#: commands/tablecmds.c:12051 commands/tablecmds.c:12126 +#: commands/tablecmds.c:10815 +#, c-format +msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"" +msgstr "no se puede adjuntar la tabla foránea «%s» como partición porque es referenciada por la llave foránea «%s»" + +#: commands/tablecmds.c:11416 commands/tablecmds.c:11697 +#: commands/tablecmds.c:12609 commands/tablecmds.c:12683 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "no existe la restricción «%s» en la relación «%s»" -#: commands/tablecmds.c:10871 +#: commands/tablecmds.c:11423 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "la restricción «%s» de la relación «%s» no es una restricción de llave foránea" -#: commands/tablecmds.c:10909 +#: commands/tablecmds.c:11461 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "no se puede modificar la restricción «%s» en la relación «%s»" -#: commands/tablecmds.c:10912 +#: commands/tablecmds.c:11464 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "La restricción «%s» deriva de la restricción «%s» de la relación «%s»." -#: commands/tablecmds.c:10914 +#: commands/tablecmds.c:11466 #, c-format -msgid "You may alter the constraint it derives from, instead." +msgid "You may alter the constraint it derives from instead." msgstr "En su lugar, puede modificar la restricción de la cual deriva." -#: commands/tablecmds.c:11150 +#: commands/tablecmds.c:11705 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "la restricción «%s» de la relación «%s» no es una llave foránea o restricción «check»" -#: commands/tablecmds.c:11227 +#: commands/tablecmds.c:11782 #, c-format msgid "constraint must be validated on child tables too" msgstr "la restricción debe ser validada en las tablas hijas también" -#: commands/tablecmds.c:11314 +#: commands/tablecmds.c:11869 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "no existe la columna «%s» referida en la llave foránea" -#: commands/tablecmds.c:11320 -#, fuzzy, c-format -#| msgid "Generated columns cannot be used in COPY." +#: commands/tablecmds.c:11875 +#, c-format msgid "system columns cannot be used in foreign keys" -msgstr "Las columnas generadas no pueden usarse en COPY." +msgstr "las columnas de sistema no pueden usarse en llaves foráneas" -#: commands/tablecmds.c:11324 +#: commands/tablecmds.c:11879 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "no se puede tener más de %d columnas en una llave foránea" -#: commands/tablecmds.c:11389 +#: commands/tablecmds.c:11944 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "no se puede usar una llave primaria postergable para la tabla referenciada «%s»" -#: commands/tablecmds.c:11406 +#: commands/tablecmds.c:11961 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "no hay llave primaria para la tabla referida «%s»" -#: commands/tablecmds.c:11470 +#: commands/tablecmds.c:12029 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "la lista de columnas referidas en una llave foránea no debe contener duplicados" -#: commands/tablecmds.c:11562 +#: commands/tablecmds.c:12121 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "no se puede usar una restricción unique postergable para la tabla referenciada «%s»" -#: commands/tablecmds.c:11567 +#: commands/tablecmds.c:12126 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "no hay restricción unique que coincida con las columnas dadas en la tabla referida «%s»" -#: commands/tablecmds.c:12007 +#: commands/tablecmds.c:12565 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "no se puede eliminar la restricción «%s» heredada de la relación «%s»" -#: commands/tablecmds.c:12057 +#: commands/tablecmds.c:12615 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "no existe la restricción «%s» en la relación «%s», omitiendo" -#: commands/tablecmds.c:12233 +#: commands/tablecmds.c:12790 #, c-format msgid "cannot alter column type of typed table" msgstr "no se puede cambiar el tipo de una columna de una tabla tipada" -#: commands/tablecmds.c:12260 +#: commands/tablecmds.c:12816 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "no se puede especificar USING al alterar el tipo de una columna generada" + +#: commands/tablecmds.c:12817 commands/tablecmds.c:18028 +#: commands/tablecmds.c:18118 commands/trigger.c:656 +#: rewrite/rewriteHandler.c:941 rewrite/rewriteHandler.c:976 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "La columna «%s» es una columna generada." + +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "no se puede alterar la columna heredada «%s»" -#: commands/tablecmds.c:12269 +#: commands/tablecmds.c:12836 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "no se puede alterar la columna «%s» porque es parte de la llave de partición de la relación «%s»" -#: commands/tablecmds.c:12319 +#: commands/tablecmds.c:12886 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "el resultado de la cláusula USING para la columna «%s» no puede ser convertido automáticamente al tipo %s" -#: commands/tablecmds.c:12322 +#: commands/tablecmds.c:12889 #, c-format msgid "You might need to add an explicit cast." msgstr "Puede ser necesario agregar un cast explícito." -#: commands/tablecmds.c:12326 +#: commands/tablecmds.c:12893 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "la columna «%s» no puede convertirse automáticamente al tipo %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12329 +#: commands/tablecmds.c:12897 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Puede ser necesario especificar «USING %s::%s»." -#: commands/tablecmds.c:12428 +#: commands/tablecmds.c:12996 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "no se puede alterar la columna heredada «%s» de la relación «%s»" -#: commands/tablecmds.c:12457 +#: commands/tablecmds.c:13025 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "La expresión USING contiene una referencia a la fila completa (whole-row)." -#: commands/tablecmds.c:12468 +#: commands/tablecmds.c:13036 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "debe cambiar el tipo a la columna heredada «%s» en las tablas hijas también" -#: commands/tablecmds.c:12593 +#: commands/tablecmds.c:13161 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "no se puede alterar el tipo de la columna «%s» dos veces" -#: commands/tablecmds.c:12631 +#: commands/tablecmds.c:13199 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "la expresión de generación para la columna «%s» no puede ser convertido automáticamente al tipo %s" -#: commands/tablecmds.c:12636 +#: commands/tablecmds.c:13204 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "el valor por omisión para la columna «%s» no puede ser convertido automáticamente al tipo %s" -#: commands/tablecmds.c:12717 +#: commands/tablecmds.c:13508 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "no se puede alterar el tipo de una columna usada en una regla o vista" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "no se puede alterar el tipo de una columna usada en una función o procedimiento" -#: commands/tablecmds.c:12718 commands/tablecmds.c:12737 -#: commands/tablecmds.c:12755 +#: commands/tablecmds.c:13509 commands/tablecmds.c:13524 +#: commands/tablecmds.c:13544 commands/tablecmds.c:13563 +#: commands/tablecmds.c:13622 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s depende de la columna «%s»" -#: commands/tablecmds.c:12736 +#: commands/tablecmds.c:13523 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "no se puede alterar el tipo de una columna usada en una regla o vista" + +#: commands/tablecmds.c:13543 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "no se puede alterar el tipo de una columna usada en una definición de trigger" -#: commands/tablecmds.c:12754 +#: commands/tablecmds.c:13562 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "no se puede alterar el tipo de una columna usada en una definición de política" -#: commands/tablecmds.c:12785 +#: commands/tablecmds.c:13593 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "no se puede alterar el tipo de una columna usada por una columna generada" -#: commands/tablecmds.c:12786 +#: commands/tablecmds.c:13594 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "La columna «%s» es usada por la columna generada «%s»." -#: commands/tablecmds.c:13861 commands/tablecmds.c:13873 +#: commands/tablecmds.c:13621 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "no se puede alterar el tipo de una columna usada en una cláusula WHERE de publicación" + +#: commands/tablecmds.c:14456 commands/tablecmds.c:14468 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "no se puede cambiar el dueño del índice «%s»" -#: commands/tablecmds.c:13863 commands/tablecmds.c:13875 +#: commands/tablecmds.c:14458 commands/tablecmds.c:14470 #, c-format -msgid "Change the ownership of the index's table, instead." -msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice." +msgid "Change the ownership of the index's table instead." +msgstr "Cambie el dueño de la tabla del índice en su lugar." -#: commands/tablecmds.c:13889 +#: commands/tablecmds.c:14484 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "no se puede cambiar el dueño de la secuencia «%s»" -#: commands/tablecmds.c:13903 commands/tablecmds.c:17201 -#: commands/tablecmds.c:17220 +#: commands/tablecmds.c:14509 #, c-format -msgid "Use ALTER TYPE instead." -msgstr "Considere usar ALTER TYPE." - -#: commands/tablecmds.c:13912 -#, fuzzy, c-format -#| msgid "cannot change owner of index \"%s\"" msgid "cannot change owner of relation \"%s\"" -msgstr "no se puede cambiar el dueño del índice «%s»" +msgstr "no se puede cambiar el dueño de la relación «%s»" -#: commands/tablecmds.c:14274 +#: commands/tablecmds.c:14976 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "no se pueden tener múltiples subórdenes SET TABLESPACE" -#: commands/tablecmds.c:14351 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#: commands/tablecmds.c:15053 +#, c-format msgid "cannot set options for relation \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "no se puede definir opciones para la relación «%s»" -#: commands/tablecmds.c:14385 commands/view.c:445 +#: commands/tablecmds.c:15087 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION sólo puede usarse en vistas automáticamente actualizables" -#: commands/tablecmds.c:14635 +#: commands/tablecmds.c:15338 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "solamente tablas, índices y vistas materializadas existen en tablespaces" -#: commands/tablecmds.c:14647 +#: commands/tablecmds.c:15350 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "no se puede mover objetos hacia o desde el tablespace pg_global" -#: commands/tablecmds.c:14739 +#: commands/tablecmds.c:15442 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "cancelando porque el lock en la relación «%s.%s» no está disponible" -#: commands/tablecmds.c:14755 +#: commands/tablecmds.c:15458 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "no se encontraron relaciones coincidentes en el tablespace «%s»" -#: commands/tablecmds.c:14873 +#: commands/tablecmds.c:15580 #, c-format msgid "cannot change inheritance of typed table" msgstr "no se puede cambiar la herencia de una tabla tipada" -#: commands/tablecmds.c:14878 commands/tablecmds.c:15396 +#: commands/tablecmds.c:15585 commands/tablecmds.c:16085 #, c-format msgid "cannot change inheritance of a partition" msgstr "no puede cambiar la herencia de una partición" -#: commands/tablecmds.c:14883 +#: commands/tablecmds.c:15590 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "no se puede cambiar la herencia de una tabla particionada" -#: commands/tablecmds.c:14929 +#: commands/tablecmds.c:15636 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "no se puede agregar herencia a tablas temporales de otra sesión" -#: commands/tablecmds.c:14942 +#: commands/tablecmds.c:15649 #, c-format msgid "cannot inherit from a partition" msgstr "no se puede heredar de una partición" -#: commands/tablecmds.c:14964 commands/tablecmds.c:17841 +#: commands/tablecmds.c:15671 commands/tablecmds.c:18529 #, c-format msgid "circular inheritance not allowed" msgstr "la herencia circular no está permitida" -#: commands/tablecmds.c:14965 commands/tablecmds.c:17842 +#: commands/tablecmds.c:15672 commands/tablecmds.c:18530 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "«%s» ya es un hijo de «%s»." -#: commands/tablecmds.c:14978 +#: commands/tablecmds.c:15685 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "el trigger «%s» impide a la tabla «%s» convertirse en hija de herencia" -#: commands/tablecmds.c:14980 +#: commands/tablecmds.c:15687 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "Los triggers ROW con tablas de transición no están permitidos en jerarquías de herencia." -#: commands/tablecmds.c:15183 +#: commands/tablecmds.c:15876 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "columna «%s» en tabla hija debe marcarse como NOT NULL" -#: commands/tablecmds.c:15192 +#: commands/tablecmds.c:15885 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "columna «%s» en tabla hija debe ser una columna generada" -#: commands/tablecmds.c:15197 -#, fuzzy, c-format -#| msgid "column \"%s\" in child table must be a generated column" +#: commands/tablecmds.c:15889 +#, c-format msgid "column \"%s\" in child table must not be a generated column" -msgstr "columna «%s» en tabla hija debe ser una columna generada" +msgstr "columna «%s» en tabla hija no puede ser una columna generada" -#: commands/tablecmds.c:15228 +#: commands/tablecmds.c:15927 #, c-format msgid "child table is missing column \"%s\"" msgstr "tabla hija no tiene la columna «%s»" -#: commands/tablecmds.c:15316 +#: commands/tablecmds.c:16008 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "la tabla hija «%s» tiene una definición diferente para la restricción «check» «%s»" -#: commands/tablecmds.c:15324 +#: commands/tablecmds.c:16015 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "la restricción «%s» está en conflicto con la restricción no heredada en la tabla hija «%s»" -#: commands/tablecmds.c:15335 +#: commands/tablecmds.c:16025 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "la restricción «%s» está en conflicto con la restricción NOT VALID en la tabla hija «%s»" -#: commands/tablecmds.c:15374 +#: commands/tablecmds.c:16063 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "tabla hija no tiene la restricción «%s»" -#: commands/tablecmds.c:15460 +#: commands/tablecmds.c:16149 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "la partición «%s» ya tiene un desprendimiento pendiente en la tabla particionada «%s.%s»" -#: commands/tablecmds.c:15489 commands/tablecmds.c:15537 +#: commands/tablecmds.c:16178 commands/tablecmds.c:16224 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "relación «%s» no es una partición de la relación «%s»" -#: commands/tablecmds.c:15543 +#: commands/tablecmds.c:16230 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "relación «%s» no es un padre de la relación «%s»" -#: commands/tablecmds.c:15771 +#: commands/tablecmds.c:16457 #, c-format msgid "typed tables cannot inherit" msgstr "las tablas tipadas no pueden heredar" -#: commands/tablecmds.c:15801 +#: commands/tablecmds.c:16487 #, c-format msgid "table is missing column \"%s\"" msgstr "la tabla no tiene la columna «%s»" -#: commands/tablecmds.c:15812 +#: commands/tablecmds.c:16498 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "la tabla tiene columna «%s» en la posición en que el tipo requiere «%s»." -#: commands/tablecmds.c:15821 +#: commands/tablecmds.c:16507 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "la tabla «%s» tiene un tipo diferente para la columna «%s»" -#: commands/tablecmds.c:15835 +#: commands/tablecmds.c:16521 #, c-format msgid "table has extra column \"%s\"" msgstr "tabla tiene la columna extra «%s»" -#: commands/tablecmds.c:15887 +#: commands/tablecmds.c:16573 #, c-format msgid "\"%s\" is not a typed table" msgstr "«%s» no es una tabla tipada" -#: commands/tablecmds.c:16061 +#: commands/tablecmds.c:16747 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "no se puede usar el índice no-único «%s» como identidad de réplica" -#: commands/tablecmds.c:16067 +#: commands/tablecmds.c:16753 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "no puede usar el índice no-inmediato «%s» como identidad de réplica" -#: commands/tablecmds.c:16073 +#: commands/tablecmds.c:16759 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "no se puede usar el índice funcional «%s» como identidad de réplica" -#: commands/tablecmds.c:16079 +#: commands/tablecmds.c:16765 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "no se puede usar el índice parcial «%s» como identidad de réplica" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16782 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "el índice «%s» no puede usarse como identidad de réplica porque la column %d es una columna de sistema" -#: commands/tablecmds.c:16103 +#: commands/tablecmds.c:16789 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "el índice «%s» no puede usarse como identidad de réplica porque la column «%s» acepta valores nulos" -#: commands/tablecmds.c:16348 +#: commands/tablecmds.c:17041 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "no se puede cambiar el estado «logged» de la tabla «%s» porque es temporal" -#: commands/tablecmds.c:16372 +#: commands/tablecmds.c:17065 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "no se pudo cambiar la tabla «%s» a «unlogged» porque es parte de una publicación" -#: commands/tablecmds.c:16374 +#: commands/tablecmds.c:17067 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Las tablas «unlogged» no pueden replicarse." -#: commands/tablecmds.c:16419 +#: commands/tablecmds.c:17112 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "no se pudo cambiar la tabla «%s» a «logged» porque hace referencia a la tabla «unlogged» «%s»" -#: commands/tablecmds.c:16429 +#: commands/tablecmds.c:17122 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "no se pudo cambiar la tabla «%s» a «unlogged» porque hace referencia a la tabla «logged» «%s»" -#: commands/tablecmds.c:16487 +#: commands/tablecmds.c:17180 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "no se puede mover una secuencia enlazada a una tabla hacia otro esquema" -#: commands/tablecmds.c:16594 +#: commands/tablecmds.c:17288 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "ya existe una relación llamada «%s» en el esquema «%s»" -#: commands/tablecmds.c:17006 +#: commands/tablecmds.c:17713 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "«%s» no es una tabla o vista materializada" -#: commands/tablecmds.c:17184 +#: commands/tablecmds.c:17866 #, c-format msgid "\"%s\" is not a composite type" msgstr "«%s» no es un tipo compuesto" -#: commands/tablecmds.c:17212 -#, fuzzy, c-format -#| msgid "cannot change owner of index \"%s\"" +#: commands/tablecmds.c:17896 +#, c-format msgid "cannot change schema of index \"%s\"" -msgstr "no se puede cambiar el dueño del índice «%s»" +msgstr "no se puede cambiar el esquema del índice «%s»" -#: commands/tablecmds.c:17214 commands/tablecmds.c:17226 -#, fuzzy, c-format -#| msgid "Change the ownership of the index's table, instead." +#: commands/tablecmds.c:17898 commands/tablecmds.c:17912 +#, c-format msgid "Change the schema of the table instead." -msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice." +msgstr "Cambie el esquema de la tabla en su lugar." -#: commands/tablecmds.c:17218 -#, fuzzy, c-format -#| msgid "cannot convert Perl hash to non-composite type %s" +#: commands/tablecmds.c:17902 +#, c-format msgid "cannot change schema of composite type \"%s\"" -msgstr "no se puede convertir un hash de Perl al tipo no compuesto %s" +msgstr "no se puede cambiar el esquema del tipo compuesto «%s»" -#: commands/tablecmds.c:17224 -#, fuzzy, c-format -#| msgid "cannot change TOAST relation \"%s\"" +#: commands/tablecmds.c:17910 +#, c-format msgid "cannot change schema of TOAST table \"%s\"" -msgstr "no se puede cambiar la relación TOAST «%s»" +msgstr "no se puede cambiar el esquema de la relación TOAST «%s»" -#: commands/tablecmds.c:17256 +#: commands/tablecmds.c:17942 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "no se puede usar la estrategia de particionamiento «list» con más de una columna" -#: commands/tablecmds.c:17322 +#: commands/tablecmds.c:18008 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "la columna «%s» nombrada en llave de particionamiento no existe" -#: commands/tablecmds.c:17330 +#: commands/tablecmds.c:18016 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento" -#: commands/tablecmds.c:17341 commands/tablecmds.c:17455 +#: commands/tablecmds.c:18027 commands/tablecmds.c:18117 #, c-format msgid "cannot use generated column in partition key" msgstr "no se puede usar una columna generada en llave de particionamiento" -#: commands/tablecmds.c:17342 commands/tablecmds.c:17456 commands/trigger.c:663 -#: rewrite/rewriteHandler.c:934 rewrite/rewriteHandler.c:969 +#: commands/tablecmds.c:18100 #, c-format -msgid "Column \"%s\" is a generated column." -msgstr "La columna «%s» es una columna generada." +msgid "partition key expressions cannot contain system column references" +msgstr "las expresiones en la llave de particionamiento no pueden contener referencias a columnas de sistema" -#: commands/tablecmds.c:17418 +#: commands/tablecmds.c:18147 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "las funciones utilizadas en expresiones de la llave de particionamiento deben estar marcadas IMMUTABLE" -#: commands/tablecmds.c:17438 -#, c-format -msgid "partition key expressions cannot contain system column references" -msgstr "las expresiones en la llave de particionamiento no pueden contener referencias a columnas de sistema" - -#: commands/tablecmds.c:17468 +#: commands/tablecmds.c:18156 #, c-format msgid "cannot use constant expression as partition key" msgstr "no se pueden usar expresiones constantes como llave de particionamiento" -#: commands/tablecmds.c:17489 +#: commands/tablecmds.c:18177 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "no se pudo determinar qué ordenamiento (collation) usar para la expresión de particionamiento" -#: commands/tablecmds.c:17524 +#: commands/tablecmds.c:18212 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Debe especificar una clase de operadores hash, o definir una clase de operadores por omisión para hash para el tipo de datos." -#: commands/tablecmds.c:17530 +#: commands/tablecmds.c:18218 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Debe especificar una clase de operadores btree, o definir una clase de operadores por omisión para btree para el tipo de datos." -#: commands/tablecmds.c:17781 +#: commands/tablecmds.c:18469 #, c-format msgid "\"%s\" is already a partition" msgstr "«%s» ya es una partición" -#: commands/tablecmds.c:17787 +#: commands/tablecmds.c:18475 #, c-format msgid "cannot attach a typed table as partition" msgstr "no puede adjuntar tabla tipada como partición" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:18491 #, c-format msgid "cannot attach inheritance child as partition" msgstr "no puede adjuntar hija de herencia como partición" -#: commands/tablecmds.c:17817 +#: commands/tablecmds.c:18505 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "no puede adjuntar ancestro de herencia como partición" -#: commands/tablecmds.c:17851 +#: commands/tablecmds.c:18539 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "no se puede adjuntar una relación temporal como partición de la relación permanente «%s»" -#: commands/tablecmds.c:17859 +#: commands/tablecmds.c:18547 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "no se puede adjuntar una relación permanente como partición de la relación temporal «%s»" -#: commands/tablecmds.c:17867 +#: commands/tablecmds.c:18555 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "no se puede adjuntar como partición de una relación temporal de otra sesión" -#: commands/tablecmds.c:17874 +#: commands/tablecmds.c:18562 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "no se adjuntar una relación temporal de otra sesión como partición" -#: commands/tablecmds.c:17894 +#: commands/tablecmds.c:18582 +#, c-format +msgid "table \"%s\" being attached contains an identity column \"%s\"" +msgstr "la tabla «%s» siendo adjuntada contiene la columna de identidad «%s»" + +#: commands/tablecmds.c:18584 +#, c-format +msgid "The new partition may not contain an identity column." +msgstr "La nueva partición no puede contener una columna de identidad." + +#: commands/tablecmds.c:18592 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "la tabla «%s» contiene la columna «%s» no encontrada en el padre «%s»" -#: commands/tablecmds.c:17897 +#: commands/tablecmds.c:18595 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "La nueva partición sólo puede contener las columnas presentes en el padre." -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:18607 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "el trigger «%s» impide a la tabla «%s» devenir partición" -#: commands/tablecmds.c:17911 +#: commands/tablecmds.c:18609 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Los triggers ROW con tablas de transición no están soportados en particiones." -#: commands/tablecmds.c:18090 +#: commands/tablecmds.c:18785 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "no se puede adjuntar la tabla foránea «%s» como partición de la tabla particionada «%s»" -#: commands/tablecmds.c:18093 +#: commands/tablecmds.c:18788 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "La tabla particionada «%s» contiene índices únicos." -#: commands/tablecmds.c:18406 +#: commands/tablecmds.c:19110 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "no se puede desprender particiones concurrentemente cuando existe una partición por omisión" -#: commands/tablecmds.c:18515 +#: commands/tablecmds.c:19219 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "la tabla particionada «%s» fue eliminada concurrentemente" -#: commands/tablecmds.c:18521 +#: commands/tablecmds.c:19225 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "la partición «%s» fue eliminada concurrentemente" -#: commands/tablecmds.c:19036 commands/tablecmds.c:19056 -#: commands/tablecmds.c:19077 commands/tablecmds.c:19096 -#: commands/tablecmds.c:19138 +#: commands/tablecmds.c:19839 commands/tablecmds.c:19859 +#: commands/tablecmds.c:19880 commands/tablecmds.c:19899 +#: commands/tablecmds.c:19941 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "no se puede adjuntar el índice «%s» como partición del índice «%s»" -#: commands/tablecmds.c:19039 +#: commands/tablecmds.c:19842 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "El índice «%s» ya está adjunto a otro índice." -#: commands/tablecmds.c:19059 +#: commands/tablecmds.c:19862 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "El índice «%s» no es un índice en una partición de la tabla «%s»." -#: commands/tablecmds.c:19080 +#: commands/tablecmds.c:19883 #, c-format msgid "The index definitions do not match." msgstr "Las definiciones de los índices no coinciden." -#: commands/tablecmds.c:19099 +#: commands/tablecmds.c:19902 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "El índice «%s» pertenece a una restricción en la tabla «%s», pero no existe una restricción para el índice «%s»." -#: commands/tablecmds.c:19141 +#: commands/tablecmds.c:19944 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Otro índice ya está adjunto para la partición «%s»." -#: commands/tablecmds.c:19370 +#: commands/tablecmds.c:20180 #, c-format msgid "column data type %s does not support compression" msgstr "el tipo de dato de columna %s no soporta compresión" -#: commands/tablecmds.c:19377 +#: commands/tablecmds.c:20187 #, c-format msgid "invalid compression method \"%s\"" msgstr "método de compresión «%s» no válido" -#: commands/tablecmds.c:19403 +#: commands/tablecmds.c:20213 #, c-format msgid "invalid storage type \"%s\"" msgstr "tipo de almacenamiento no válido «%s»" -#: commands/tablecmds.c:19413 +#: commands/tablecmds.c:20223 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "el tipo de datos %s de la columna sólo puede tener almacenamiento PLAIN" -#: commands/tablespace.c:199 commands/tablespace.c:650 +#: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "«%s» existe pero no es un directorio" -#: commands/tablespace.c:230 +#: commands/tablespace.c:224 #, c-format msgid "permission denied to create tablespace \"%s\"" msgstr "se ha denegado el permiso para crear el tablespace «%s»" -#: commands/tablespace.c:232 +#: commands/tablespace.c:226 #, c-format msgid "Must be superuser to create a tablespace." msgstr "Debe ser superusuario para crear tablespaces." -#: commands/tablespace.c:248 +#: commands/tablespace.c:242 #, c-format msgid "tablespace location cannot contain single quotes" msgstr "la ruta del tablespace no puede contener comillas simples" -#: commands/tablespace.c:261 +#: commands/tablespace.c:255 #, c-format msgid "tablespace location must be an absolute path" msgstr "la ubicación del tablespace debe ser una ruta absoluta" -#: commands/tablespace.c:273 +#: commands/tablespace.c:267 #, c-format msgid "tablespace location \"%s\" is too long" msgstr "la ruta «%s» del tablespace es demasiado larga" -#: commands/tablespace.c:280 +#: commands/tablespace.c:274 #, c-format msgid "tablespace location should not be inside the data directory" msgstr "la ubicación del tablespace no debe estar dentro del directorio de datos" -#: commands/tablespace.c:289 commands/tablespace.c:976 +#: commands/tablespace.c:283 commands/tablespace.c:970 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "el nombre de tablespace «%s» es inaceptable" -#: commands/tablespace.c:291 commands/tablespace.c:977 +#: commands/tablespace.c:285 commands/tablespace.c:971 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "El prefijo «pg_» está reservado para tablespaces del sistema." -#: commands/tablespace.c:310 commands/tablespace.c:998 +#: commands/tablespace.c:304 commands/tablespace.c:992 #, c-format msgid "tablespace \"%s\" already exists" msgstr "el tablespace «%s» ya existe" -#: commands/tablespace.c:326 -#, fuzzy, c-format -#| msgid "pg_type OID value not set when in binary upgrade mode" +#: commands/tablespace.c:320 +#, c-format msgid "pg_tablespace OID value not set when in binary upgrade mode" -msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria" +msgstr "el valor de OID de pg_tablespace no se definió en modo de actualización binaria" -#: commands/tablespace.c:431 commands/tablespace.c:959 -#: commands/tablespace.c:1048 commands/tablespace.c:1117 -#: commands/tablespace.c:1263 commands/tablespace.c:1466 +#: commands/tablespace.c:425 commands/tablespace.c:953 +#: commands/tablespace.c:1042 commands/tablespace.c:1111 +#: commands/tablespace.c:1257 commands/tablespace.c:1460 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "no existe el tablespace «%s»" -#: commands/tablespace.c:437 +#: commands/tablespace.c:431 #, c-format msgid "tablespace \"%s\" does not exist, skipping" msgstr "el tablespace «%s» no existe, omitiendo" -#: commands/tablespace.c:463 +#: commands/tablespace.c:457 #, c-format msgid "tablespace \"%s\" cannot be dropped because some objects depend on it" msgstr "no se puede eliminar el tablespace «%s» porque otros objetos dependen de él" -#: commands/tablespace.c:530 +#: commands/tablespace.c:524 #, c-format msgid "tablespace \"%s\" is not empty" msgstr "el tablespace «%s» no está vacío" -#: commands/tablespace.c:617 +#: commands/tablespace.c:611 #, c-format msgid "directory \"%s\" does not exist" msgstr "no existe el directorio «%s»" -#: commands/tablespace.c:618 +#: commands/tablespace.c:612 #, c-format msgid "Create this directory for the tablespace before restarting the server." msgstr "Cree este directorio para el tablespace antes de reiniciar el servidor." -#: commands/tablespace.c:623 +#: commands/tablespace.c:617 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "no se pudo definir los permisos del directorio «%s»: %m" -#: commands/tablespace.c:655 +#: commands/tablespace.c:649 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "el directorio «%s» ya está siendo usado como tablespace" -#: commands/tablespace.c:833 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:913 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "no se pudo eliminar el enlace simbólico «%s»: %m" -#: commands/tablespace.c:842 commands/tablespace.c:927 +#: commands/tablespace.c:836 commands/tablespace.c:921 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "«%s» no es un directorio o enlace simbólico" -#: commands/tablespace.c:1122 +#: commands/tablespace.c:1116 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "No existe el tablespace «%s»." -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "algunos directorios para el tablespace %u no pudieron eliminarse" -#: commands/tablespace.c:1570 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "Puede eliminar los directorios manualmente, si es necesario." -#: commands/trigger.c:232 commands/trigger.c:243 +#: commands/trigger.c:225 commands/trigger.c:236 #, c-format msgid "\"%s\" is a table" msgstr "«%s» es una tabla" -#: commands/trigger.c:234 commands/trigger.c:245 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "Tables cannot have INSTEAD OF triggers." -msgstr "Las tablas no pueden tener disparadores INSTEAD OF." +msgstr "Las tablas no pueden tener “triggers” INSTEAD OF." -#: commands/trigger.c:266 +#: commands/trigger.c:259 #, c-format msgid "\"%s\" is a partitioned table" msgstr "«%s» es una tabla particionada" -#: commands/trigger.c:268 -#, fuzzy, c-format -#| msgid "ROW triggers with transition tables are not supported on partitions." +#: commands/trigger.c:261 +#, c-format msgid "ROW triggers with transition tables are not supported on partitioned tables." -msgstr "Los triggers ROW con tablas de transición no están soportados en particiones." +msgstr "Los triggers ROW con tablas de transición no están soportados en tablas particionadas." -#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451 +#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 #, c-format msgid "\"%s\" is a view" msgstr "«%s» es una vista" -#: commands/trigger.c:282 +#: commands/trigger.c:275 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." -msgstr "Las vistas no pueden tener disparadores BEFORE o AFTER a nivel de fila." +msgstr "Las vistas no pueden tener “triggers” BEFORE o AFTER a nivel de fila." -#: commands/trigger.c:289 +#: commands/trigger.c:282 #, c-format msgid "Views cannot have TRUNCATE triggers." -msgstr "Las vistas no pueden tener disparadores TRUNCATE." +msgstr "Las vistas no pueden tener “triggers” TRUNCATE." -#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444 +#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 #, c-format msgid "\"%s\" is a foreign table" msgstr "«%s» es una tabla foránea" -#: commands/trigger.c:299 +#: commands/trigger.c:292 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." -msgstr "Las tablas foráneas no pueden tener disparadores INSTEAD OF." +msgstr "Las tablas foráneas no pueden tener “triggers” INSTEAD OF." -#: commands/trigger.c:311 +#: commands/trigger.c:304 #, c-format msgid "Foreign tables cannot have constraint triggers." -msgstr "Las tablas foráneas no pueden tener disparadores de restricción." +msgstr "Las tablas foráneas no pueden tener “triggers” de restricción." -#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439 -#, fuzzy, c-format -#| msgid "relation \"%s\" does not exist" +#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 +#, c-format msgid "relation \"%s\" cannot have triggers" -msgstr "no existe la relación «%s»" +msgstr "la relación «%s» no puede tener triggers." -#: commands/trigger.c:387 +#: commands/trigger.c:380 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" -msgstr "los disparadores TRUNCATE FOR EACH ROW no están soportados" +msgstr "los “triggers” TRUNCATE FOR EACH ROW no están soportados" -#: commands/trigger.c:395 +#: commands/trigger.c:388 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" -msgstr "los disparadores INSTEAD OF deben ser FOR EACH ROW" +msgstr "los “triggers” INSTEAD OF deben ser FOR EACH ROW" -#: commands/trigger.c:399 +#: commands/trigger.c:392 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" -msgstr "los disparadores INSTEAD OF no pueden tener condiciones WHEN" +msgstr "los “triggers” INSTEAD OF no pueden tener condiciones WHEN" -#: commands/trigger.c:403 +#: commands/trigger.c:396 #, c-format msgid "INSTEAD OF triggers cannot have column lists" -msgstr "los disparadores INSTEAD OF no pueden tener listas de columnas" +msgstr "los “triggers” INSTEAD OF no pueden tener listas de columnas" -#: commands/trigger.c:432 +#: commands/trigger.c:425 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "dar nombre a una variable ROW en la cláusula REFERENCING no está soportado" -#: commands/trigger.c:433 +#: commands/trigger.c:426 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "utilice OLD TABLE o NEW TABLE para nombrar tablas de transición." -#: commands/trigger.c:446 +#: commands/trigger.c:439 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "Las tablas foráneas no pueden tener tablas de transición." -#: commands/trigger.c:453 +#: commands/trigger.c:446 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "Las triggers en vistas no pueden tener tablas de transición." -#: commands/trigger.c:469 +#: commands/trigger.c:462 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "los triggers ROW con tablas de transición no están soportados en particiones" -#: commands/trigger.c:473 +#: commands/trigger.c:466 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" msgstr "los triggers ROW con tablas de transición no están soportados con hijas de herencia" -#: commands/trigger.c:479 +#: commands/trigger.c:472 #, c-format msgid "transition table name can only be specified for an AFTER trigger" -msgstr "el nombre de la tabla de transición solo se puede especificar para un disparador AFTER" +msgstr "el nombre de la tabla de transición solo se puede especificar para un “trigger” AFTER" -#: commands/trigger.c:484 +#: commands/trigger.c:477 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "los triggers TRUNCATE con tablas de transición no están soportados" -#: commands/trigger.c:501 +#: commands/trigger.c:494 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" msgstr "las tablas de transición no pueden especificarse para triggers con más de un evento" -#: commands/trigger.c:512 +#: commands/trigger.c:505 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "las tablas de transición no pueden especificarse para triggers con lista de columnas" -#: commands/trigger.c:529 +#: commands/trigger.c:522 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" -msgstr "NEW TABLE sólo se puede especificar para un disparador INSERT o UPDATE" +msgstr "NEW TABLE sólo se puede especificar para un “trigger” INSERT o UPDATE" -#: commands/trigger.c:534 +#: commands/trigger.c:527 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE no se puede especificar varias veces" -#: commands/trigger.c:544 +#: commands/trigger.c:537 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" -msgstr "OLD TABLE sólo se puede especificar para un disparador DELETE o UPDATE" +msgstr "OLD TABLE sólo se puede especificar para un “trigger” DELETE o UPDATE" -#: commands/trigger.c:549 +#: commands/trigger.c:542 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE no se puede especificar varias veces" -#: commands/trigger.c:559 +#: commands/trigger.c:552 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "el nombre de OLD TABLE y el nombre de NEW TABLE no pueden ser iguales" -#: commands/trigger.c:623 commands/trigger.c:636 +#: commands/trigger.c:616 commands/trigger.c:629 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" -msgstr "la condición WHEN de un disparador por sentencias no pueden referirse a los valores de las columnas" +msgstr "la condición WHEN de un “trigger” por sentencias no pueden referirse a los valores de las columnas" -#: commands/trigger.c:628 +#: commands/trigger.c:621 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" -msgstr "la condición WHEN de un disparador en INSERT no puede referirse a valores OLD" +msgstr "la condición WHEN de un “trigger” en INSERT no puede referirse a valores OLD" -#: commands/trigger.c:641 +#: commands/trigger.c:634 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" -msgstr "la condición WHEN de un disparador en DELETE no puede referirse a valores NEW" +msgstr "la condición WHEN de un “trigger” en DELETE no puede referirse a valores NEW" -#: commands/trigger.c:646 +#: commands/trigger.c:639 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" -msgstr "la condición WHEN de un disparador BEFORE no puede referirse a columnas de sistema de NEW" +msgstr "la condición WHEN de un “trigger” BEFORE no puede referirse a columnas de sistema de NEW" -#: commands/trigger.c:654 commands/trigger.c:662 +#: commands/trigger.c:647 commands/trigger.c:655 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "la condición WHEN del trigger BEFORE no puede hacer referencia a columnas NEW generadas" -#: commands/trigger.c:655 +#: commands/trigger.c:648 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "Se utiliza una referencia de la tupla completa, y la tabla contiene columnas generadas" -#: commands/trigger.c:770 commands/trigger.c:1614 +#: commands/trigger.c:763 commands/trigger.c:1607 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "ya existe un trigger «%s» para la relación «%s»" -#: commands/trigger.c:783 -#, fuzzy, c-format -#| msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" +#: commands/trigger.c:776 +#, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" -msgstr "disparador «%s» para la relación «%s» es un disparador de restricción" +msgstr "trigger «%s» para la relación «%s» es interno o derivado" -#: commands/trigger.c:802 +#: commands/trigger.c:795 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" -msgstr "disparador «%s» para la relación «%s» es un disparador de restricción" +msgstr "“trigger” «%s» para la relación «%s» es un “trigger” de restricción" -#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 +#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "no existe el trigger «%s» para la tabla «%s»" -#: commands/trigger.c:1529 -#, fuzzy, c-format -#| msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" +#: commands/trigger.c:1522 +#, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" -msgstr "no hay una entrada en pg_constraint para el trigger «%s» en tabla «%s»" +msgstr "no se puede cambiar el nombre del trigger «%s» en tabla «%s»" -#: commands/trigger.c:1531 -#, fuzzy, c-format -#| msgid "Change the ownership of the index's table, instead." +#: commands/trigger.c:1524 +#, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." -msgstr "Considere cambiar el dueño de la tabla en vez de cambiar el dueño del índice." +msgstr "Cambie el nombre del trigger en la tabla particionada «%s» en su lugar." -#: commands/trigger.c:1631 -#, fuzzy, c-format -#| msgid "cannot alter constraint \"%s\" on relation \"%s\"" +#: commands/trigger.c:1624 +#, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" -msgstr "no se puede modificar la restricción «%s» en la relación «%s»" +msgstr "se renombró el trigger «%s» en la relación «%s»" -#: commands/trigger.c:1777 +#: commands/trigger.c:1770 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "permiso denegado: «%s» es un trigger de sistema" -#: commands/trigger.c:2386 +#: commands/trigger.c:2379 #, c-format msgid "trigger function %u returned null value" msgstr "la función de trigger %u ha retornado un valor null" -#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 -#: commands/trigger.c:3252 +#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 +#: commands/trigger.c:3263 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "un trigger BEFORE STATEMENT no puede retornar un valor" -#: commands/trigger.c:2522 +#: commands/trigger.c:2515 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "mover registros a otra partición durante un trigger BEFORE FOR EACH ROW no está soportado" -#: commands/trigger.c:2523 +#: commands/trigger.c:2516 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Antes de ejecutar el trigger «%s», la fila iba a estar en la partición «%s.%s»." -#: commands/trigger.c:3329 executor/nodeModifyTable.c:2363 -#: executor/nodeModifyTable.c:2446 -#, c-format -msgid "tuple to be updated was already modified by an operation triggered by the current command" -msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual" - -#: commands/trigger.c:3330 executor/nodeModifyTable.c:1531 -#: executor/nodeModifyTable.c:1605 executor/nodeModifyTable.c:2364 -#: executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3077 +#: commands/trigger.c:3341 executor/nodeModifyTable.c:1541 +#: executor/nodeModifyTable.c:1615 executor/nodeModifyTable.c:2377 +#: executor/nodeModifyTable.c:2468 executor/nodeModifyTable.c:3132 +#: executor/nodeModifyTable.c:3302 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." -msgstr "Considere usar un disparador AFTER en lugar de un disparador BEFORE para propagar cambios a otros registros." +msgstr "Considere usar un “trigger” AFTER en lugar de un “trigger” BEFORE para propagar cambios a otros registros." -#: commands/trigger.c:3371 executor/nodeLockRows.c:228 -#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1547 executor/nodeModifyTable.c:2381 -#: executor/nodeModifyTable.c:2589 +#: commands/trigger.c:3382 executor/nodeLockRows.c:228 +#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:314 +#: executor/nodeModifyTable.c:1557 executor/nodeModifyTable.c:2394 +#: executor/nodeModifyTable.c:2618 #, c-format msgid "could not serialize access due to concurrent update" msgstr "no se pudo serializar el acceso debido a un update concurrente" -#: commands/trigger.c:3379 executor/nodeModifyTable.c:1637 -#: executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613 -#: executor/nodeModifyTable.c:2965 +#: commands/trigger.c:3390 executor/nodeModifyTable.c:1647 +#: executor/nodeModifyTable.c:2485 executor/nodeModifyTable.c:2642 +#: executor/nodeModifyTable.c:3150 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "no se pudo serializar el acceso debido a un delete concurrente" -#: commands/trigger.c:4555 +#: commands/trigger.c:4599 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" -msgstr "no se puede ejecutar un disparador postergado dentro de una operación restringida por seguridad" +msgstr "no se puede ejecutar un “trigger” postergado dentro de una operación restringida por seguridad" -#: commands/trigger.c:5738 +#: commands/trigger.c:5780 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "la restricción «%s» no es postergable" -#: commands/trigger.c:5761 +#: commands/trigger.c:5803 #, c-format msgid "constraint \"%s\" does not exist" msgstr "no existe la restricción «%s»" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "la función %s debería retornar el tipo %s" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "debe ser superusuario para crear analizadores de búsqueda en texto" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "el parámetro de analizador de búsqueda en texto «%s» no es reconocido" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "el método «start» del analizador de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "el método «gettoken» del analizador de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "el método «end» del analizador de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "el método «lextypes» del analizador de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "la plantilla de búsquede en texto «%s» no acepta opciones" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "la plantilla de búsqueda en texto es obligatoria" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "debe ser superusuario para crear una plantilla de búsqueda en texto" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "el parámetro de la plantilla de búsqueda en texto «%s» no es reconocido" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "el método «lexize» de la plantilla de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "el parámetro de configuración de búsqueda en texto «%s» no es reconocido" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "no se puede especificar simultáneamente las opciones PARSER y COPY" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "el analizador de búsqueda en texto es obligatorio" -#: commands/tsearchcmds.c:1241 +#: commands/tsearchcmds.c:1277 #, c-format msgid "token type \"%s\" does not exist" msgstr "no existe el tipo de elemento «%s»" -#: commands/tsearchcmds.c:1501 +#: commands/tsearchcmds.c:1540 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "no existe un mapeo para el tipo de elemento «%s»" -#: commands/tsearchcmds.c:1507 +#: commands/tsearchcmds.c:1546 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "el mapeo para el tipo de elemento «%s» no existe, omitiendo" -#: commands/tsearchcmds.c:1670 commands/tsearchcmds.c:1785 +#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "el formato de la lista de parámetros no es válido: «%s»" -#: commands/typecmds.c:217 +#: commands/typecmds.c:221 #, c-format msgid "must be superuser to create a base type" msgstr "debe ser superusuario para crear un tipo base" -#: commands/typecmds.c:275 +#: commands/typecmds.c:279 #, c-format msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "Cree el tipo como un tipo inconcluso, luego cree sus funciones de I/O, luego haga un CREATE TYPE completo." -#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4257 +#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "el atributo de tipo «%s» no es reconocido" -#: commands/typecmds.c:382 +#: commands/typecmds.c:386 #, c-format msgid "invalid type category \"%s\": must be simple ASCII" msgstr "la categoría de tipo «%s» no es válida: debe ser ASCII simple" -#: commands/typecmds.c:401 +#: commands/typecmds.c:405 #, c-format msgid "array element type cannot be %s" msgstr "el tipo de elemento de array no puede ser %s" -#: commands/typecmds.c:433 +#: commands/typecmds.c:437 #, c-format msgid "alignment \"%s\" not recognized" msgstr "el alineamiento «%s» no es reconocido" -#: commands/typecmds.c:450 commands/typecmds.c:4131 +#: commands/typecmds.c:454 commands/typecmds.c:4354 #, c-format msgid "storage \"%s\" not recognized" msgstr "el almacenamiento «%s» no es reconocido" -#: commands/typecmds.c:461 +#: commands/typecmds.c:465 #, c-format msgid "type input function must be specified" msgstr "debe especificarse la función de ingreso del tipo" -#: commands/typecmds.c:465 +#: commands/typecmds.c:469 #, c-format msgid "type output function must be specified" msgstr "debe especificarse la función de salida de tipo" -#: commands/typecmds.c:470 +#: commands/typecmds.c:474 #, c-format msgid "type modifier output function is useless without a type modifier input function" msgstr "la función de salida de modificadores de tipo es inútil sin una función de entrada de modificadores de tipo" -#: commands/typecmds.c:512 +#: commands/typecmds.c:516 #, c-format msgid "element type cannot be specified without a subscripting function" msgstr "no se puede especificar tipo de elemento sin una función de subindexación" -#: commands/typecmds.c:781 +#: commands/typecmds.c:785 #, c-format msgid "\"%s\" is not a valid base type for a domain" msgstr "«%s» no es un tipo de dato base válido para un dominio" -#: commands/typecmds.c:879 +#: commands/typecmds.c:883 #, c-format msgid "multiple default expressions" msgstr "múltiples expresiones default" -#: commands/typecmds.c:942 commands/typecmds.c:951 +#: commands/typecmds.c:946 commands/typecmds.c:955 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "las restricciones NULL/NOT NULL no coinciden" -#: commands/typecmds.c:967 +#: commands/typecmds.c:971 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "las restricciones «check» en dominios no pueden ser marcadas NO INHERIT" -#: commands/typecmds.c:976 commands/typecmds.c:2956 +#: commands/typecmds.c:980 commands/typecmds.c:2940 #, c-format msgid "unique constraints not possible for domains" msgstr "no se pueden poner restricciones de unicidad a un dominio" -#: commands/typecmds.c:982 commands/typecmds.c:2962 +#: commands/typecmds.c:986 commands/typecmds.c:2946 #, c-format msgid "primary key constraints not possible for domains" msgstr "no se pueden poner restricciones de llave primaria a un dominio" -#: commands/typecmds.c:988 commands/typecmds.c:2968 +#: commands/typecmds.c:992 commands/typecmds.c:2952 #, c-format msgid "exclusion constraints not possible for domains" msgstr "las restricciones de exclusión no son posibles para los dominios" -#: commands/typecmds.c:994 commands/typecmds.c:2974 +#: commands/typecmds.c:998 commands/typecmds.c:2958 #, c-format msgid "foreign key constraints not possible for domains" msgstr "no se pueden poner restricciones de llave foránea a un dominio" -#: commands/typecmds.c:1003 commands/typecmds.c:2983 +#: commands/typecmds.c:1007 commands/typecmds.c:2967 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "no se puede especificar la postergabilidad de las restricciones a un dominio" -#: commands/typecmds.c:1317 utils/cache/typcache.c:2561 +#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 #, c-format msgid "%s is not an enum" msgstr "%s no es un enum" -#: commands/typecmds.c:1458 +#: commands/typecmds.c:1468 #, c-format msgid "type attribute \"subtype\" is required" msgstr "el atributo de tipo «subtype» es obligatorio" -#: commands/typecmds.c:1463 +#: commands/typecmds.c:1473 #, c-format msgid "range subtype cannot be %s" msgstr "el subtipo de rango no puede ser %s" -#: commands/typecmds.c:1482 +#: commands/typecmds.c:1492 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "se especificó un ordenamiento (collation) al rango, pero el subtipo no soporta ordenamiento" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1502 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "no se puede especificar una función canónica sin antes crear un tipo inconcluso" -#: commands/typecmds.c:1493 +#: commands/typecmds.c:1503 #, c-format msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." msgstr "Cree el tipo como un tipo inconcluso, luego cree su función de canonicalización, luego haga un CREATE TYPE completo." -#: commands/typecmds.c:1965 +#: commands/typecmds.c:1975 #, c-format msgid "type input function %s has multiple matches" msgstr "la función de entrada %s del tipo tiene múltiples coincidencias" -#: commands/typecmds.c:1983 +#: commands/typecmds.c:1993 #, c-format msgid "type input function %s must return type %s" msgstr "la función de entrada %s del tipo debe retornar %s" -#: commands/typecmds.c:1999 +#: commands/typecmds.c:2009 #, c-format msgid "type input function %s should not be volatile" msgstr "la función de entrada %s no debe ser volatile" -#: commands/typecmds.c:2027 +#: commands/typecmds.c:2037 #, c-format msgid "type output function %s must return type %s" msgstr "la función de salida %s del tipo debe retornar %s" -#: commands/typecmds.c:2034 +#: commands/typecmds.c:2044 #, c-format msgid "type output function %s should not be volatile" msgstr "la función de salida %s no debe ser volatile" -#: commands/typecmds.c:2063 +#: commands/typecmds.c:2073 #, c-format msgid "type receive function %s has multiple matches" msgstr "la función de recepción %s del tipo tiene múltiples coincidencias" -#: commands/typecmds.c:2081 +#: commands/typecmds.c:2091 #, c-format msgid "type receive function %s must return type %s" msgstr "la función de recepción %s del tipo debe retornar %s" -#: commands/typecmds.c:2088 +#: commands/typecmds.c:2098 #, c-format msgid "type receive function %s should not be volatile" msgstr "la función «receive» %s del tipo no debe ser volatile" -#: commands/typecmds.c:2116 +#: commands/typecmds.c:2126 #, c-format msgid "type send function %s must return type %s" msgstr "la función «send» %s del tipo debe retornar %s" -#: commands/typecmds.c:2123 +#: commands/typecmds.c:2133 #, c-format msgid "type send function %s should not be volatile" msgstr "la función «send» %s no debe ser volatile" -#: commands/typecmds.c:2150 +#: commands/typecmds.c:2160 #, c-format msgid "typmod_in function %s must return type %s" msgstr "la función typmod_in %s debe retornar tipo %s" -#: commands/typecmds.c:2157 +#: commands/typecmds.c:2167 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "la función de modificadores de tipo %s no debe ser volatile" -#: commands/typecmds.c:2184 +#: commands/typecmds.c:2194 #, c-format msgid "typmod_out function %s must return type %s" msgstr "la función typmod_out %s debe retornar tipo %s" -#: commands/typecmds.c:2191 +#: commands/typecmds.c:2201 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "la función de salida de modificadores de tipo %s no debe ser volatile" -#: commands/typecmds.c:2218 +#: commands/typecmds.c:2228 #, c-format msgid "type analyze function %s must return type %s" msgstr "la función de análisis %s del tipo debe retornar %s" -#: commands/typecmds.c:2247 +#: commands/typecmds.c:2257 #, c-format msgid "type subscripting function %s must return type %s" msgstr "la función de subindexación %s del tipo debe retornar %s" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2267 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "los tipos definidos por el usuario no pueden usar la función de subindexación %s" -#: commands/typecmds.c:2303 +#: commands/typecmds.c:2313 #, c-format msgid "You must specify an operator class for the range type or define a default operator class for the subtype." msgstr "Debe especificar una clase de operadores para el tipo de rango, o definir una clase de operadores por omisión para el subtipo." -#: commands/typecmds.c:2334 +#: commands/typecmds.c:2344 #, c-format msgid "range canonical function %s must return range type" msgstr "la función canónica %s del rango debe retornar tipo de rango" -#: commands/typecmds.c:2340 +#: commands/typecmds.c:2350 #, c-format msgid "range canonical function %s must be immutable" msgstr "la función canónica %s del rango debe ser inmutable" -#: commands/typecmds.c:2376 +#: commands/typecmds.c:2386 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "la función «diff» de subtipo, %s, debe retornar tipo %s" -#: commands/typecmds.c:2383 +#: commands/typecmds.c:2393 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "la función «diff» de subtipo, %s, debe ser inmutable" -#: commands/typecmds.c:2410 +#: commands/typecmds.c:2420 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "el valor de OID de pg_type no se definió en modo de actualización binaria" -#: commands/typecmds.c:2443 +#: commands/typecmds.c:2453 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "el valor de OID de multirango de pg_type no se definió en modo de actualización binaria" -#: commands/typecmds.c:2476 +#: commands/typecmds.c:2486 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" -msgstr "el valor de OID de arreglo de multirango de pg_type no se definió en modo de actualización binaria" +msgstr "el valor de OID de array de multirango de pg_type no se definió en modo de actualización binaria" -#: commands/typecmds.c:2772 -#, c-format -msgid "column \"%s\" of table \"%s\" contains null values" -msgstr "la columna «%s» de la tabla «%s» contiene valores null" - -#: commands/typecmds.c:2885 commands/typecmds.c:3086 +#: commands/typecmds.c:2868 commands/typecmds.c:3093 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "no existe la restricción «%s» en el dominio «%s»" -#: commands/typecmds.c:2889 +#: commands/typecmds.c:2872 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "no existe la restricción «%s» en el dominio «%s», omitiendo" -#: commands/typecmds.c:3093 +#: commands/typecmds.c:3100 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "la restricción «%s» en el dominio «%s» no es una restricción «check»" -#: commands/typecmds.c:3194 +#: commands/typecmds.c:3180 +#, c-format +msgid "column \"%s\" of table \"%s\" contains null values" +msgstr "la columna «%s» de la tabla «%s» contiene valores null" + +#: commands/typecmds.c:3269 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "la columna «%s» de la relación «%s» contiene valores que violan la nueva restricción" -#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3703 -#: commands/typecmds.c:3889 +#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 +#: commands/typecmds.c:4073 #, c-format msgid "%s is not a domain" msgstr "%s no es un dominio" -#: commands/typecmds.c:3455 +#: commands/typecmds.c:3532 commands/typecmds.c:3686 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "el dominio «%2$s» ya contiene una restricción llamada «%1$s»" -#: commands/typecmds.c:3506 +#: commands/typecmds.c:3583 #, c-format msgid "cannot use table references in domain check constraint" msgstr "no se pueden usar referencias a tablas en restricción «check» para un dominio" -#: commands/typecmds.c:3634 commands/typecmds.c:3715 commands/typecmds.c:4006 +#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 #, c-format msgid "%s is a table's row type" msgstr "%s es el tipo de registro de una tabla" -#: commands/typecmds.c:3636 commands/typecmds.c:3717 commands/typecmds.c:4008 -#, c-format -msgid "Use ALTER TABLE instead." -msgstr "Considere usar ALTER TABLE." - -#: commands/typecmds.c:3642 commands/typecmds.c:3723 commands/typecmds.c:3921 +#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 #, c-format msgid "cannot alter array type %s" -msgstr "no se puede alterar el tipo de array «%s»" +msgstr "no se puede alterar el tipo de array %s" -#: commands/typecmds.c:3644 commands/typecmds.c:3725 commands/typecmds.c:3923 +#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Puede alterar el tipo %s, lo cual alterará el tipo de array también." -#: commands/typecmds.c:3991 +#: commands/typecmds.c:3892 +#, c-format +msgid "cannot alter multirange type %s" +msgstr "no se puede alterar el tipo multirango %s" + +#: commands/typecmds.c:3895 +#, c-format +msgid "You can alter type %s, which will alter the multirange type as well." +msgstr "Puede alterar el tipo %s, lo cual alterará el tipo de multirango también." + +#: commands/typecmds.c:4202 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "ya existe un tipo llamado «%s» en el esquema «%s»" -#: commands/typecmds.c:4159 +#: commands/typecmds.c:4382 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "no se puede cambiar el almacenamiento del tipo a PLAIN" -#: commands/typecmds.c:4252 +#: commands/typecmds.c:4475 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "el atributo de tipo «%s» no puede ser cambiado" -#: commands/typecmds.c:4270 +#: commands/typecmds.c:4493 #, c-format msgid "must be superuser to alter a type" msgstr "debe ser superusuario para alterar un tipo" -#: commands/typecmds.c:4291 commands/typecmds.c:4300 +#: commands/typecmds.c:4514 commands/typecmds.c:4523 #, c-format msgid "%s is not a base type" msgstr "«%s» no es un tipo base" -#: commands/user.c:201 +#: commands/user.c:200 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID ya no puede ser especificado" -#: commands/user.c:319 commands/user.c:325 commands/user.c:331 -#: commands/user.c:337 commands/user.c:343 +#: commands/user.c:318 commands/user.c:324 commands/user.c:330 +#: commands/user.c:336 commands/user.c:342 #, c-format msgid "permission denied to create role" msgstr "se ha denegado el permiso para crear el rol" -#: commands/user.c:320 +#: commands/user.c:319 #, c-format msgid "Only roles with the %s attribute may create roles." -msgstr "" +msgstr "Sólo los roles con el atributo %s pueden crear roles." -#: commands/user.c:326 commands/user.c:332 commands/user.c:338 -#: commands/user.c:344 +#: commands/user.c:325 commands/user.c:331 commands/user.c:337 +#: commands/user.c:343 #, c-format -msgid "Only roles with the %s attribute may create roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may create roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden crear roles con el atributo %s." -#: commands/user.c:355 commands/user.c:1393 commands/user.c:1400 -#: utils/adt/acl.c:5409 utils/adt/acl.c:5415 gram.y:16727 gram.y:16773 +#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 +#: utils/adt/acl.c:5574 utils/adt/acl.c:5580 gram.y:17310 gram.y:17356 #, c-format msgid "role name \"%s\" is reserved" msgstr "el nombre de rol «%s» está reservado" -#: commands/user.c:357 commands/user.c:1395 commands/user.c:1402 +#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Los nombres de rol que empiezan con «pg_» están reservados." -#: commands/user.c:378 commands/user.c:1417 +#: commands/user.c:377 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "el rol «%s» ya existe" -#: commands/user.c:440 commands/user.c:925 +#: commands/user.c:439 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "la cadena vacía no es una contraseña válida, limpiando la contraseña" -#: commands/user.c:469 +#: commands/user.c:468 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "el valor de OID de pg_authid no se definió en modo de actualización binaria" -#: commands/user.c:653 commands/user.c:1011 -#, fuzzy -#| msgid "cannot alter inherited column \"%s\"" +#: commands/user.c:652 commands/user.c:1010 msgid "Cannot alter reserved roles." -msgstr "no se puede alterar la columna heredada «%s»" +msgstr "No se pueden alterar roles reservados." -#: commands/user.c:760 commands/user.c:766 commands/user.c:782 -#: commands/user.c:790 commands/user.c:804 commands/user.c:810 -#: commands/user.c:816 commands/user.c:825 commands/user.c:870 -#: commands/user.c:1033 commands/user.c:1044 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: commands/user.c:759 commands/user.c:765 commands/user.c:781 +#: commands/user.c:789 commands/user.c:803 commands/user.c:809 +#: commands/user.c:815 commands/user.c:824 commands/user.c:869 +#: commands/user.c:1032 commands/user.c:1043 +#, c-format msgid "permission denied to alter role" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para alterar el rol" -#: commands/user.c:761 commands/user.c:1034 +#: commands/user.c:760 commands/user.c:1033 #, c-format -msgid "Only roles with the %s attribute may alter roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may alter roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden alterar roles con el atributo %s." -#: commands/user.c:767 commands/user.c:805 commands/user.c:811 -#: commands/user.c:817 +#: commands/user.c:766 commands/user.c:804 commands/user.c:810 +#: commands/user.c:816 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." -msgstr "" +msgstr "Sólo roles con el atributo %s pueden cambiar el atributo %s." -#: commands/user.c:783 commands/user.c:1045 +#: commands/user.c:782 commands/user.c:1044 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may alter this role." -msgstr "" +msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden alterar este rol." -#: commands/user.c:791 +#: commands/user.c:790 #, c-format msgid "To change another role's password, the current user must have the %s attribute and the %s option on the role." -msgstr "" +msgstr "Para cambiar la password de otro rol, el usuario actual debe tener el atributo %s y la opción %s en el rol." -#: commands/user.c:826 +#: commands/user.c:825 #, c-format -msgid "Only roles with the %s option on role \"%s\" may add members." -msgstr "" +#| msgid "Only roles with the %s option on role \"%s\" may add members." +msgid "Only roles with the %s option on role \"%s\" may add or drop members." +msgstr "Sólo los roles con la opción %s en el rol «%s» pueden agregar miembros." -#: commands/user.c:871 +#: commands/user.c:870 #, c-format -msgid "The bootstrap user must have the %s attribute." -msgstr "" +msgid "The bootstrap superuser must have the %s attribute." +msgstr "El superusuario de \"bootstrap\" debe tener el atributo %s." -#: commands/user.c:1076 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: commands/user.c:1075 +#, c-format msgid "permission denied to alter setting" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para modificar la configuración" -#: commands/user.c:1077 +#: commands/user.c:1076 #, c-format msgid "Only roles with the %s attribute may alter settings globally." -msgstr "" +msgstr "Sólo los roles con el atributo %s pueden modificar parámetros de configuración globalmente." -#: commands/user.c:1101 commands/user.c:1173 commands/user.c:1179 +#: commands/user.c:1100 commands/user.c:1171 commands/user.c:1177 #, c-format msgid "permission denied to drop role" msgstr "se ha denegado el permiso para eliminar el rol" -#: commands/user.c:1102 +#: commands/user.c:1101 #, c-format msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles." -msgstr "" +msgstr "Sólo los roles con el atributo %s y la opción %s en los roles de destino pueden borrar roles." -#: commands/user.c:1127 +#: commands/user.c:1125 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "no se puede usar un especificador especial de rol en DROP ROLE" -#: commands/user.c:1137 commands/user.c:1364 commands/variable.c:836 -#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 -#: utils/adt/acl.c:359 utils/adt/acl.c:379 utils/adt/acl.c:5264 -#: utils/adt/acl.c:5312 utils/adt/acl.c:5340 utils/adt/acl.c:5359 -#: utils/adt/regproc.c:1551 utils/init/miscinit.c:757 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:851 +#: commands/variable.c:854 commands/variable.c:971 commands/variable.c:974 +#: utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5429 +#: utils/adt/acl.c:5477 utils/adt/acl.c:5505 utils/adt/acl.c:5524 +#: utils/adt/regproc.c:1571 utils/init/miscinit.c:799 #, c-format msgid "role \"%s\" does not exist" msgstr "no existe el rol «%s»" -#: commands/user.c:1142 +#: commands/user.c:1140 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "el rol «%s» no existe, omitiendo" -#: commands/user.c:1155 commands/user.c:1159 +#: commands/user.c:1153 commands/user.c:1157 #, c-format msgid "current user cannot be dropped" msgstr "el usuario activo no puede ser eliminado" -#: commands/user.c:1163 +#: commands/user.c:1161 #, c-format msgid "session user cannot be dropped" msgstr "no se puede eliminar un usuario de la sesión" -#: commands/user.c:1174 +#: commands/user.c:1172 #, c-format -msgid "Only roles with the %s attribute may drop roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may drop roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden borrar roles con el atributo %s." -#: commands/user.c:1180 +#: commands/user.c:1178 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role." -msgstr "" +msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden borrar este rol." -#: commands/user.c:1306 +#: commands/user.c:1299 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "no se puede eliminar el rol «%s» porque otros objetos dependen de él" -#: commands/user.c:1380 +#: commands/user.c:1373 #, c-format msgid "session user cannot be renamed" msgstr "no se puede cambiar el nombre a un usuario de la sesión" -#: commands/user.c:1384 +#: commands/user.c:1377 #, c-format msgid "current user cannot be renamed" msgstr "no se puede cambiar el nombre al usuario activo" -#: commands/user.c:1428 commands/user.c:1438 +#: commands/user.c:1421 commands/user.c:1431 #, c-format msgid "permission denied to rename role" msgstr "se ha denegado el permiso para cambiar el nombre al rol" -#: commands/user.c:1429 +#: commands/user.c:1422 #, c-format -msgid "Only roles with the %s attribute may rename roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may rename roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden cambiar nombre a roles con el atributo %s." -#: commands/user.c:1439 +#: commands/user.c:1432 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role." -msgstr "" +msgstr "Sólo los roles con el atributo %s y la opción %s en el rol «%s» pueden cambiar nombre a este rol." -#: commands/user.c:1461 +#: commands/user.c:1454 #, c-format msgid "MD5 password cleared because of role rename" msgstr "la contraseña MD5 fue borrada debido al cambio de nombre del rol" -#: commands/user.c:1525 gram.y:1263 +#: commands/user.c:1518 gram.y:1294 #, c-format msgid "unrecognized role option \"%s\"" msgstr "opción de rol «%s» no reconocida" -#: commands/user.c:1530 -#, fuzzy, c-format -#| msgid "unrecognized value for option %s: %s" +#: commands/user.c:1523 +#, c-format msgid "unrecognized value for role option \"%s\": \"%s\"" -msgstr "valor no reconocido para la opción %s: %s" +msgstr "valor no reconocido para la opción de rol «%s»: «%s»" -#: commands/user.c:1563 +#: commands/user.c:1556 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "los nombres de columna no pueden ser incluidos en GRANT/REVOKE ROLE" -#: commands/user.c:1603 +#: commands/user.c:1596 #, c-format msgid "permission denied to drop objects" msgstr "se ha denegado el permiso para eliminar objetos" -#: commands/user.c:1604 +#: commands/user.c:1597 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden borrar objetos de que es dueño." -#: commands/user.c:1632 commands/user.c:1643 +#: commands/user.c:1625 commands/user.c:1636 #, c-format msgid "permission denied to reassign objects" msgstr "se ha denegado el permiso para reasignar objetos" -#: commands/user.c:1633 +#: commands/user.c:1626 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden reasignar objetos de que es dueño." -#: commands/user.c:1644 +#: commands/user.c:1637 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden reasignar objetos a él." -#: commands/user.c:1740 +#: commands/user.c:1733 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "el rol «%s» no puede ser miembro de ningún rol" -#: commands/user.c:1753 +#: commands/user.c:1746 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "el rol «%s» es un miembro del rol «%s»" -#: commands/user.c:1793 commands/user.c:1819 -#, fuzzy, c-format -#| msgid "grant options cannot be granted back to your own grantor" +#: commands/user.c:1786 commands/user.c:1812 +#, c-format msgid "%s option cannot be granted back to your own grantor" -msgstr "la opción de grant no puede ser otorgada de vuelta a quien la otorgó" +msgstr "la opción %s no puede ser otorgada de vuelta a quien la otorgó" -#: commands/user.c:1896 -#, fuzzy, c-format -#| msgid "role \"%s\" is a member of role \"%s\"" +#: commands/user.c:1889 +#, c-format msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" -msgstr "el rol «%s» es un miembro del rol «%s»" +msgstr "el rol «%s» ya recibió membresía en el rol «%s» por parte del rol «%s»" -#: commands/user.c:2031 -#, fuzzy, c-format -#| msgid "role \"%s\" cannot be a member of any role" +#: commands/user.c:2024 +#, c-format msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" -msgstr "el rol «%s» no puede ser miembro de ningún rol" +msgstr "al rol «%s» no se le ha otorgado membresía en el rol «%s» por parte del rol «%s»" -#: commands/user.c:2131 +#: commands/user.c:2124 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "el rol «%s» no puede tener miembros explícitos" -#: commands/user.c:2142 commands/user.c:2165 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/user.c:2135 commands/user.c:2158 +#, c-format msgid "permission denied to grant role \"%s\"" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "se ha denegado el permiso para otorgar el rol «%s»" -#: commands/user.c:2144 +#: commands/user.c:2137 #, c-format -msgid "Only roles with the %s attribute may grant roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may grant roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden otorgar roles con el atributo %s." -#: commands/user.c:2149 commands/user.c:2172 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/user.c:2142 commands/user.c:2165 +#, c-format msgid "permission denied to revoke role \"%s\"" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "se ha denegado el permiso para revocar el rol «%s»" -#: commands/user.c:2151 +#: commands/user.c:2144 #, c-format -msgid "Only roles with the %s attribute may revoke roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may revoke roles with the %s attribute." +msgstr "Sólo los roles con el atributo %s pueden revocar roles con el atributo %s." -#: commands/user.c:2167 +#: commands/user.c:2160 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." -msgstr "" +msgstr "Sólo los roles con la opción %s en el rol «%s» pueden otorgar este rol." -#: commands/user.c:2174 +#: commands/user.c:2167 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." -msgstr "" +msgstr "Sólo los roles con la opción %s en el rol «%s» pueden revocar este rol." -#: commands/user.c:2254 commands/user.c:2263 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/user.c:2247 commands/user.c:2256 +#, c-format msgid "permission denied to grant privileges as role \"%s\"" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "se ha denegado el permiso para otorgar privilegio de rol «%s»" -#: commands/user.c:2256 +#: commands/user.c:2249 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden otorgar privilegios como este rol." -#: commands/user.c:2265 -#, fuzzy, c-format -#| msgid "cannot use the \"%s\" option with the \"%s\" option" +#: commands/user.c:2258 +#, c-format msgid "The grantor must have the %s option on role \"%s\"." -msgstr "no se puede usar la opción «%s» junto con la opción «%s»" +msgstr "El otorgador debe tener la opción %s en el rol «%s»." -#: commands/user.c:2273 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/user.c:2266 +#, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "se ha denegado el permiso a revocar permisos otorgados por el rol «%s»" -#: commands/user.c:2275 +#: commands/user.c:2268 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." -msgstr "" +msgstr "Sólo los roles con privilegios del rol «%s» pueden revocar privilegios otorgados por este rol." -#: commands/user.c:2498 utils/adt/acl.c:1312 +#: commands/user.c:2491 utils/adt/acl.c:1324 #, c-format msgid "dependent privileges exist" msgstr "existen privilegios dependientes" -#: commands/user.c:2499 utils/adt/acl.c:1313 +#: commands/user.c:2492 utils/adt/acl.c:1325 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Use CASCADE para revocarlos también." -#: commands/vacuum.c:138 +#: commands/vacuum.c:134 #, c-format msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" -msgstr "" +msgstr "«vacuum_buffer_usage_limit» debe ser 0 o estar entre %d kB y %d kB" -#: commands/vacuum.c:210 -#, fuzzy, c-format -#| msgid "NUMERIC precision %d must be between 1 and %d" +#: commands/vacuum.c:209 +#, c-format msgid "BUFFER_USAGE_LIMIT option must be 0 or between %d kB and %d kB" -msgstr "la precisión %d de NUMERIC debe estar entre 1 y %d" +msgstr "la opción BUFFER_USAGE_LIMIT debe ser 0 o estar entre %d kB y %d kB" -#: commands/vacuum.c:220 +#: commands/vacuum.c:219 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "opción de ANALYZE «%s» no reconocida" -#: commands/vacuum.c:260 +#: commands/vacuum.c:259 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "la opción parallel requiere un valor entre 0 y %d" -#: commands/vacuum.c:272 +#: commands/vacuum.c:271 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "el número de procesos paralelos para vacuum debe estar entre 0 y %d" -#: commands/vacuum.c:293 +#: commands/vacuum.c:292 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "opción de VACUUM «%s» no reconocida" -#: commands/vacuum.c:319 +#: commands/vacuum.c:318 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL no puede ser ejecutado en paralelo" -#: commands/vacuum.c:330 +#: commands/vacuum.c:329 #, c-format msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL" -msgstr "" +msgstr "BUFFER_USAGE_LIMIT no puede ser especificado para VACUUM FULL" -#: commands/vacuum.c:344 +#: commands/vacuum.c:343 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "la opción ANALYZE debe especificarse cuando se provee una lista de columnas" -#: commands/vacuum.c:356 +#: commands/vacuum.c:355 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "la opción DISABLE_PAGE_SKIPPING de VACUUM no puede usarse con FULL" -#: commands/vacuum.c:363 +#: commands/vacuum.c:362 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "se requiere especificar PROCESS_TOAST al hacer VACUUM FULL" -#: commands/vacuum.c:372 -#, fuzzy, c-format -#| msgid "OLD TABLE cannot be specified multiple times" +#: commands/vacuum.c:371 +#, c-format msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables" -msgstr "OLD TABLE no se puede especificar varias veces" +msgstr "ONLY_DATABASE_STATS no se puede especificar con una lista de tablas" -#: commands/vacuum.c:381 -#, fuzzy, c-format -#| msgid "option \"%s\" cannot be specified with other options" +#: commands/vacuum.c:380 +#, c-format msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options" -msgstr "la opción «%s» no puede ser especificada con otras opciones" +msgstr "ONLY_DATABASE_STATS no puede ser especificada con otras opciones de VACUUM" -#: commands/vacuum.c:516 +#: commands/vacuum.c:515 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s no puede ejecutarse desde VACUUM o ANALYZE" -#: commands/vacuum.c:736 -#, fuzzy, c-format -#| msgid "permission denied for column %s" +#: commands/vacuum.c:730 +#, c-format msgid "permission denied to vacuum \"%s\", skipping it" -msgstr "permiso denegado a la columna %s" +msgstr "permiso denegado a hacer vacuum a «%s», ignorando" -#: commands/vacuum.c:749 -#, fuzzy, c-format -#| msgid "permission denied to set role \"%s\"" +#: commands/vacuum.c:743 +#, c-format msgid "permission denied to analyze \"%s\", skipping it" -msgstr "se ha denegado el permiso para definir el rol «%s»" +msgstr "se ha denegado el permiso para hacer analyze a «%s», ignorando" -#: commands/vacuum.c:827 commands/vacuum.c:924 +#: commands/vacuum.c:821 commands/vacuum.c:918 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" -msgstr "omitiendo el vacuum de «%s»: el candado no está disponible" +msgstr "omitiendo el vacuum de «%s»: el “lock” no está disponible" -#: commands/vacuum.c:832 +#: commands/vacuum.c:826 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "omitiendo el vacuum de «%s» --- la relación ya no existe" -#: commands/vacuum.c:848 commands/vacuum.c:929 +#: commands/vacuum.c:842 commands/vacuum.c:923 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" -msgstr "omitiendo analyze de «%s»: el candado no está disponible" +msgstr "omitiendo analyze de «%s»: el “lock” no está disponible" -#: commands/vacuum.c:853 +#: commands/vacuum.c:847 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "omitiendo analyze de «%s» --- la relación ya no existe" -#: commands/vacuum.c:1164 +#: commands/vacuum.c:1139 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" -msgstr "" +msgstr "el punto de corte para eliminar y congelar tuplas es demasiado antiguo" -#: commands/vacuum.c:1165 commands/vacuum.c:1170 +#: commands/vacuum.c:1140 commands/vacuum.c:1145 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"Cierre transaciones abiertas pronto para impedir problemas por reciclaje de contadores.\n" +"Cierre transaciones abiertas pronto para impedir problemas por “wraparound”.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: commands/vacuum.c:1169 +#: commands/vacuum.c:1144 #, c-format msgid "cutoff for freezing multixacts is far in the past" -msgstr "" +msgstr "el punto de corte para congelar multixacts es demasiado antiguo" -#: commands/vacuum.c:1897 +#: commands/vacuum.c:1900 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "algunas bases de datos no han tenido VACUUM en más de 2 mil millones de transacciones" -#: commands/vacuum.c:1898 +#: commands/vacuum.c:1901 #, c-format msgid "You might have already suffered transaction-wraparound data loss." -msgstr "Puede haber sufrido ya problemas de pérdida de datos por reciclaje del contador de transacciones." +msgstr "Puede haber sufrido ya problemas de pérdida de datos por “wraparound” del contador de transacciones." -#: commands/vacuum.c:2063 +#: commands/vacuum.c:2080 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "omitiendo «%s»: no se puede aplicar VACUUM a objetos que no son tablas o a tablas especiales de sistema" -#: commands/vacuum.c:2488 +#: commands/vacuum.c:2512 #, c-format -msgid "scanned index \"%s\" to remove %d row versions" -msgstr "se recorrió el índice «%s» para eliminar %d versiones de filas" +msgid "scanned index \"%s\" to remove %lld row versions" +msgstr "se recorrió el índice «%s» para eliminar %lld versiones de filas" -#: commands/vacuum.c:2507 +#: commands/vacuum.c:2531 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "el índice «%s» ahora contiene %.0f versiones de filas en %u páginas" -#: commands/vacuum.c:2511 +#: commands/vacuum.c:2535 #, c-format msgid "" "%.0f index row versions were removed.\n" "%u index pages were newly deleted.\n" "%u index pages are currently deleted, of which %u are currently reusable." msgstr "" +"%.0f versiones de filas de índice fueron eliminadas.\n" +"%u páginas de índice fueron recién eliminadas.\n" +"%u páginas de índice están actualmente eliminadas, de las cuales %u son actualmente reusables." -#: commands/vacuumparallel.c:677 +#: commands/vacuumparallel.c:707 #, 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)" msgstr[0] "se lanzó %d proceso asistente para «vacuum» de índices (planeados: %d)" msgstr[1] "se lanzaron %d procesos asistentes para «vacuum» índices (planeados: %d)" -#: commands/vacuumparallel.c:683 +#: commands/vacuumparallel.c:713 #, 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)" @@ -13033,7 +13350,7 @@ msgstr "SET TRANSACTION ISOLATION LEVEL debe ser llamado antes de cualquier cons msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "SET TRANSACTION ISOLATION LEVEL no debe ser llamado en una subtransacción" -#: commands/variable.c:606 storage/lmgr/predicate.c:1629 +#: commands/variable.c:606 storage/lmgr/predicate.c:1685 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "no se puede utilizar el modo serializable en un hot standby" @@ -13065,91 +13382,100 @@ msgstr "No se puede cambiar «client_encoding» ahora." #: commands/variable.c:781 #, c-format -msgid "cannot change client_encoding during a parallel operation" +msgid "cannot change \"client_encoding\" during a parallel operation" msgstr "no se puede cambiar «client_encoding» durante una operación paralela" -#: commands/variable.c:948 +#: commands/variable.c:876 +#, c-format +msgid "permission will be denied to set session authorization \"%s\"" +msgstr "se denegará el permiso para definir autorización de sesión «%s»" + +#: commands/variable.c:881 +#, c-format +msgid "permission denied to set session authorization \"%s\"" +msgstr "se ha denegado el permiso para definir autorización de sesión «%s»" + +#: commands/variable.c:991 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "se denegará el permiso para definir el rol «%s»" -#: commands/variable.c:953 +#: commands/variable.c:996 #, c-format msgid "permission denied to set role \"%s\"" msgstr "se ha denegado el permiso para definir el rol «%s»" -#: commands/variable.c:1153 +#: commands/variable.c:1200 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour no está soportado en este servidor" -#: commands/variable.c:1181 +#: commands/variable.c:1228 #, c-format -msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "effective_io_concurrency debe ser 0 en plataformas que no tienen posix_fadvise()." +msgid "\"effective_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." +msgstr "«effective_io_concurrency» debe ser 0 en plataformas que no tienen posix_fadvise()." -#: commands/variable.c:1194 +#: commands/variable.c:1241 #, c-format -msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "maintenance_io_concurrency debe ser 0 en plataformas que no tienen posix_fadvise()." +msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." +msgstr "«maintenance_io_concurrency» debe ser 0 en plataformas que no tienen posix_fadvise()." -#: commands/variable.c:1207 +#: commands/variable.c:1254 #, c-format msgid "SSL is not supported by this build" msgstr "SSL no está soportado en este servidor" -#: commands/view.c:84 +#: commands/view.c:79 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "no se pudo determinar el ordenamiento (collation) a usar para la columna «%s» de vista" -#: commands/view.c:279 commands/view.c:290 +#: commands/view.c:274 commands/view.c:285 #, c-format msgid "cannot drop columns from view" msgstr "no se pueden eliminar columnas de una vista" -#: commands/view.c:295 +#: commands/view.c:290 #, c-format msgid "cannot change name of view column \"%s\" to \"%s\"" msgstr "no se puede cambiar el nombre de la columna «%s» de la vista a «%s»" -#: commands/view.c:298 +#: commands/view.c:293 #, c-format msgid "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead." msgstr "Use ALTER VIEW ... RENAME COLUMN ... para cambiar el nombre de una columna de una vista." -#: commands/view.c:309 +#: commands/view.c:304 #, c-format msgid "cannot change data type of view column \"%s\" from %s to %s" msgstr "no se puede cambiar el tipo de dato de la columna «%s» de la vista de %s a %s" -#: commands/view.c:323 -#, fuzzy, c-format -#| msgid "cannot change data type of view column \"%s\" from %s to %s" +#: commands/view.c:318 +#, c-format msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\"" -msgstr "no se puede cambiar el tipo de dato de la columna «%s» de la vista de %s a %s" +msgstr "no se puede cambiar el ordenamiento de la columna «%s» de la vista de «%s» a «%s»" -#: commands/view.c:392 +#: commands/view.c:387 #, c-format msgid "views must not contain SELECT INTO" msgstr "una vista no puede tener SELECT INTO" -#: commands/view.c:404 +#: commands/view.c:399 #, c-format msgid "views must not contain data-modifying statements in WITH" msgstr "las vistas no deben contener sentencias que modifiquen datos en WITH" -#: commands/view.c:474 +#: commands/view.c:469 #, c-format msgid "CREATE VIEW specifies more column names than columns" msgstr "CREATE VIEW especifica más nombres de columna que columnas" -#: commands/view.c:482 +#: commands/view.c:477 #, c-format msgid "views cannot be unlogged because they do not have storage" msgstr "las vistas no pueden ser «unlogged» porque no tienen almacenamiento" -#: commands/view.c:496 +#: commands/view.c:491 #, c-format msgid "view \"%s\" will be a temporary view" msgstr "la vista «%s» será una vista temporal" @@ -13185,515 +13511,505 @@ msgstr "el cursor «%s» no está posicionado en una fila" msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "el cursor «%s» no es un recorrido simplemente actualizable de la tabla «%s»" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2497 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2555 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "el tipo del parámetro %d (%s) no coincide aquel con que fue preparado el plan (%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2509 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2567 #, c-format msgid "no value found for parameter %d" msgstr "no se encontró un valor para parámetro %d" -#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 -#: executor/execExprInterp.c:4229 executor/execExprInterp.c:4246 -#: executor/execExprInterp.c:4345 executor/nodeModifyTable.c:197 -#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 -#: executor/nodeModifyTable.c:233 +#: executor/execExpr.c:642 executor/execExpr.c:649 executor/execExpr.c:655 +#: executor/execExprInterp.c:4852 executor/execExprInterp.c:4869 +#: executor/execExprInterp.c:4968 executor/nodeModifyTable.c:203 +#: executor/nodeModifyTable.c:214 executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:239 #, c-format msgid "table row type and query-specified row type do not match" msgstr "el tipo de registro de la tabla no coincide con el tipo de registro de la consulta" -#: executor/execExpr.c:638 executor/nodeModifyTable.c:198 +#: executor/execExpr.c:643 executor/nodeModifyTable.c:204 #, c-format msgid "Query has too many columns." msgstr "La consulta tiene demasiadas columnas." -#: executor/execExpr.c:645 executor/nodeModifyTable.c:226 +#: executor/execExpr.c:650 executor/nodeModifyTable.c:232 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "La consulta entrega un valor para una columna eliminada en la posición %d." -#: executor/execExpr.c:651 executor/execExprInterp.c:4247 -#: executor/nodeModifyTable.c:209 +#: executor/execExpr.c:656 executor/execExprInterp.c:4870 +#: executor/nodeModifyTable.c:215 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "La tabla tiene tipo %s en posición ordinal %d, pero la consulta esperaba %s." -#: executor/execExpr.c:1099 parser/parse_agg.c:827 +#: executor/execExpr.c:1104 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "no se pueden anidar llamadas a funciones de ventana deslizante" -#: executor/execExpr.c:1618 +#: executor/execExpr.c:1649 #, c-format msgid "target type is not an array" msgstr "el tipo de destino no es un array" -#: executor/execExpr.c:1958 +#: executor/execExpr.c:1989 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "la columna de ROW() es de tipo %s en lugar de ser de tipo %s" -#: executor/execExpr.c:2587 executor/execSRF.c:719 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1032 +#: executor/execExpr.c:2653 executor/execSRF.c:718 parser/parse_func.c:138 +#: parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "no se pueden pasar más de %d argumento a una función" msgstr[1] "no se pueden pasar más de %d argumentos a una función" -#: executor/execExpr.c:2614 executor/execSRF.c:739 executor/functions.c:1066 -#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2680 executor/execSRF.c:738 executor/functions.c:1068 +#: utils/adt/jsonfuncs.c:4054 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "se llamó una función que retorna un conjunto en un contexto que no puede aceptarlo" -#: executor/execExpr.c:3020 parser/parse_node.c:277 parser/parse_node.c:327 +#: executor/execExpr.c:3086 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "no se puede poner subíndices al tipo %s porque no soporta subíndices" -#: executor/execExpr.c:3148 executor/execExpr.c:3170 +#: executor/execExpr.c:3214 executor/execExpr.c:3236 #, c-format msgid "type %s does not support subscripted assignment" msgstr "el tipo %s no soporta asignación subindexada" -#: executor/execExprInterp.c:1962 +#: executor/execExprInterp.c:2019 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "El atributo %d de tipo %s ha sido eliminado" -#: executor/execExprInterp.c:1968 +#: executor/execExprInterp.c:2025 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "el atributo %d del tipo %s tiene tipo erróneo" -#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3103 -#: executor/execExprInterp.c:3149 +#: executor/execExprInterp.c:2027 executor/execExprInterp.c:3226 +#: executor/execExprInterp.c:3272 #, c-format msgid "Table has type %s, but query expects %s." msgstr "La tabla tiene tipo %s, pero la consulta esperaba %s." -#: executor/execExprInterp.c:2049 utils/adt/expandedrecord.c:99 -#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1743 -#: utils/cache/typcache.c:1902 utils/cache/typcache.c:2049 -#: utils/fmgr/funcapi.c:561 +#: executor/execExprInterp.c:2107 utils/adt/expandedrecord.c:99 +#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 +#: utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "el tipo %s no es compuesto" -#: executor/execExprInterp.c:2587 +#: executor/execExprInterp.c:2710 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla" -#: executor/execExprInterp.c:2800 +#: executor/execExprInterp.c:2923 #, c-format msgid "cannot merge incompatible arrays" msgstr "no se puede mezclar arrays incompatibles" -#: executor/execExprInterp.c:2801 +#: executor/execExprInterp.c:2924 #, c-format msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "El array con tipo de elemento %s no puede ser incluido en una sentencia ARRAY con tipo de elemento %s." -#: executor/execExprInterp.c:2822 utils/adt/arrayfuncs.c:265 -#: utils/adt/arrayfuncs.c:575 utils/adt/arrayfuncs.c:1329 -#: utils/adt/arrayfuncs.c:3483 utils/adt/arrayfuncs.c:5567 -#: utils/adt/arrayfuncs.c:6084 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2945 utils/adt/arrayfuncs.c:1305 +#: utils/adt/arrayfuncs.c:3503 utils/adt/arrayfuncs.c:5593 +#: utils/adt/arrayfuncs.c:6110 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "el número de dimensiones del array (%d) excede el máximo permitido (%d)" -#: executor/execExprInterp.c:2842 executor/execExprInterp.c:2877 +#: executor/execExprInterp.c:2965 executor/execExprInterp.c:3000 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "los arrays multidimensionales deben tener expresiones de arrays con dimensiones coincidentes" -#: executor/execExprInterp.c:2854 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:959 utils/adt/arrayfuncs.c:1568 -#: utils/adt/arrayfuncs.c:3285 utils/adt/arrayfuncs.c:3513 -#: utils/adt/arrayfuncs.c:6176 utils/adt/arrayfuncs.c:6517 -#: utils/adt/arrayutils.c:104 utils/adt/arrayutils.c:113 -#: utils/adt/arrayutils.c:120 +#: executor/execExprInterp.c:2977 utils/adt/array_expanded.c:274 +#: utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 +#: utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 +#: utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 +#: utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 +#: utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 +#: utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 +#: utils/adt/arrayfuncs.c:3533 utils/adt/arrayfuncs.c:5365 +#: utils/adt/arrayfuncs.c:6202 utils/adt/arrayfuncs.c:6546 +#: utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 +#: utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "el tamaño del array excede el máximo permitido (%d)" -#: executor/execExprInterp.c:3102 executor/execExprInterp.c:3148 +#: executor/execExprInterp.c:3225 executor/execExprInterp.c:3271 #, c-format msgid "attribute %d has wrong type" msgstr "el atributo %d tiene tipo erróneo" -#: executor/execExprInterp.c:3730 utils/adt/domains.c:155 +#: executor/execExprInterp.c:3857 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "el dominio %s no permite valores null" -#: executor/execExprInterp.c:3745 utils/adt/domains.c:193 +#: executor/execExprInterp.c:3872 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "el valor para el dominio %s viola la restricción «check» «%s»" -#: executor/execExprInterp.c:4230 +#: executor/execExprInterp.c:4447 +#, c-format +msgid "no SQL/JSON item found for specified path of column \"%s\"" +msgstr "ningún ítem SQL/JSON fue encontrado para la ruta especificada de la columna «%s»" + +#: executor/execExprInterp.c:4452 +#, c-format +msgid "no SQL/JSON item found for specified path" +msgstr "ningún ítem SQL/JSON fue encontrado para la ruta especificada" + +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:4652 executor/execExprInterp.c:4660 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "no se pudo convertir la expresión %s (%s) al tipo RETURNING" + +#: executor/execExprInterp.c:4853 #, 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 fila de la tabla contiene %d atributo, pero la consulta esperaba %d." msgstr[1] "La fila de la tabla contiene %d atributos, pero la consulta esperaba %d." -#: executor/execExprInterp.c:4346 executor/execSRF.c:978 +#: executor/execExprInterp.c:4969 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "Discordancia de almacenamiento físico en atributo eliminado en la posición %d." -#: executor/execIndexing.c:588 +#: executor/execIndexing.c:593 #, c-format msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters" msgstr "ON CONFLICT no soporta las restricciones únicas o de exclusión postergables como árbitros" -#: executor/execIndexing.c:865 +#: executor/execIndexing.c:870 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "no se pudo crear la restricción de exclusión «%s»" -#: executor/execIndexing.c:868 +#: executor/execIndexing.c:873 #, c-format msgid "Key %s conflicts with key %s." msgstr "La llave %s está en conflicto con la llave %s." -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:875 #, c-format msgid "Key conflicts exist." msgstr "Existe un conflicto de llave." -#: executor/execIndexing.c:876 +#: executor/execIndexing.c:881 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "llave en conflicto viola la restricción de exclusión «%s»" -#: executor/execIndexing.c:879 +#: executor/execIndexing.c:884 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "La llave %s está en conflicto con la llave existente %s." -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:886 #, c-format msgid "Key conflicts with existing key." msgstr "La llave está en conflicto con una llave existente." -#: executor/execMain.c:1030 +#: executor/execMain.c:1039 #, c-format msgid "cannot change sequence \"%s\"" msgstr "no se puede cambiar la secuencia «%s»" -#: executor/execMain.c:1036 +#: executor/execMain.c:1045 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "no se puede cambiar la relación TOAST «%s»" -#: executor/execMain.c:1054 rewrite/rewriteHandler.c:3078 -#: rewrite/rewriteHandler.c:3965 -#, c-format -msgid "cannot insert into view \"%s\"" -msgstr "no se puede insertar en la vista «%s»" - -#: executor/execMain.c:1056 rewrite/rewriteHandler.c:3081 -#: rewrite/rewriteHandler.c:3968 -#, c-format -msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." -msgstr "Para posibilitar las inserciones en la vista, provea un disparador INSTEAD OF INSERT o una regla incodicional ON INSERT DO INSTEAD." - -#: executor/execMain.c:1062 rewrite/rewriteHandler.c:3086 -#: rewrite/rewriteHandler.c:3973 -#, c-format -msgid "cannot update view \"%s\"" -msgstr "no se puede actualizar la vista «%s»" - -#: executor/execMain.c:1064 rewrite/rewriteHandler.c:3089 -#: rewrite/rewriteHandler.c:3976 -#, c-format -msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." -msgstr "Para posibilitar las actualizaciones en la vista, provea un disparador INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD." - -#: executor/execMain.c:1070 rewrite/rewriteHandler.c:3094 -#: rewrite/rewriteHandler.c:3981 -#, c-format -msgid "cannot delete from view \"%s\"" -msgstr "no se puede eliminar de la vista «%s»" - -#: executor/execMain.c:1072 rewrite/rewriteHandler.c:3097 -#: rewrite/rewriteHandler.c:3984 -#, c-format -msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." -msgstr "Para posibilitar las eliminaciones en la vista, provea un disparador INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD." - -#: executor/execMain.c:1083 +#: executor/execMain.c:1064 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "no se puede cambiar la vista materializada «%s»" -#: executor/execMain.c:1095 +#: executor/execMain.c:1076 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "no se puede insertar en la tabla foránea «%s»" -#: executor/execMain.c:1101 +#: executor/execMain.c:1082 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "la tabla foránea «%s» no permite inserciones" -#: executor/execMain.c:1108 +#: executor/execMain.c:1089 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "no se puede actualizar la tabla foránea «%s»" -#: executor/execMain.c:1114 +#: executor/execMain.c:1095 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "la tabla foránea «%s» no permite actualizaciones" -#: executor/execMain.c:1121 +#: executor/execMain.c:1102 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "no se puede eliminar desde la tabla foránea «%s»" -#: executor/execMain.c:1127 +#: executor/execMain.c:1108 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "la tabla foránea «%s» no permite eliminaciones" -#: executor/execMain.c:1138 +#: executor/execMain.c:1119 #, c-format msgid "cannot change relation \"%s\"" msgstr "no se puede cambiar la relación «%s»" -#: executor/execMain.c:1165 +#: executor/execMain.c:1146 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "no se puede bloquear registros de la secuencia «%s»" -#: executor/execMain.c:1172 +#: executor/execMain.c:1153 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "no se puede bloquear registros en la relación TOAST «%s»" -#: executor/execMain.c:1179 +#: executor/execMain.c:1160 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "no se puede bloquear registros en la vista «%s»" -#: executor/execMain.c:1187 +#: executor/execMain.c:1168 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "no se puede bloquear registros en la vista materializada «%s»" -#: executor/execMain.c:1196 executor/execMain.c:2699 +#: executor/execMain.c:1177 executor/execMain.c:2689 #: executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "no se puede bloquear registros en la tabla foránea «%s»" -#: executor/execMain.c:1202 +#: executor/execMain.c:1183 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "no se puede bloquear registros en la tabla «%s»" -#: executor/execMain.c:1913 +#: executor/execMain.c:1901 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "el nuevo registro para la relación «%s» viola la restricción de partición" -#: executor/execMain.c:1915 executor/execMain.c:1999 executor/execMain.c:2050 -#: executor/execMain.c:2160 +#: executor/execMain.c:1903 executor/execMain.c:1987 executor/execMain.c:2038 +#: executor/execMain.c:2148 #, c-format msgid "Failing row contains %s." msgstr "La fila que falla contiene %s." -#: executor/execMain.c:1996 +#: executor/execMain.c:1984 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "el valor nulo en la columna «%s» de la relación «%s» viola la restricción de no nulo" -#: executor/execMain.c:2048 +#: executor/execMain.c:2036 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "el nuevo registro para la relación «%s» viola la restricción «check» «%s»" -#: executor/execMain.c:2158 +#: executor/execMain.c:2146 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "el nuevo registro para la vista «%s» viola la opción check" -#: executor/execMain.c:2168 +#: executor/execMain.c:2156 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "el nuevo registro viola la política de seguridad de registros «%s» para la tabla «%s»" -#: executor/execMain.c:2173 +#: executor/execMain.c:2161 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "el nuevo registro viola la política de seguridad de registros para la tabla «%s»" -#: executor/execMain.c:2181 -#, fuzzy, c-format -#| msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" +#: executor/execMain.c:2169 +#, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" -msgstr "el nuevo registro viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»" +msgstr "el registro destino viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»" -#: executor/execMain.c:2186 -#, fuzzy, c-format -#| msgid "new row violates row-level security policy (USING expression) for table \"%s\"" +#: executor/execMain.c:2174 +#, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" -msgstr "el nuevo registro viola la política de seguridad de registros (expresión USING) para la tabla «%s»" +msgstr "el registro destino viola la política de seguridad de registros (expresión USING) para la tabla «%s»" -#: executor/execMain.c:2193 +#: executor/execMain.c:2181 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "el nuevo registro viola la política de seguridad de registros «%s» (expresión USING) para la tabla «%s»" -#: executor/execMain.c:2198 +#: executor/execMain.c:2186 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "el nuevo registro viola la política de seguridad de registros (expresión USING) para la tabla «%s»" -#: executor/execPartition.c:330 +#: executor/execPartition.c:327 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "no se encontró una partición de «%s» para el registro" -#: executor/execPartition.c:333 +#: executor/execPartition.c:330 #, c-format msgid "Partition key of the failing row contains %s." msgstr "La llave de particionamiento de la fila que falla contiene %s." -#: executor/execReplication.c:240 executor/execReplication.c:424 +#: executor/execReplication.c:272 executor/execReplication.c:456 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying" msgstr "el registro a ser bloqueado ya fue movido a otra partición debido a un update concurrente, reintentando" -#: executor/execReplication.c:244 executor/execReplication.c:428 +#: executor/execReplication.c:276 executor/execReplication.c:460 #, c-format msgid "concurrent update, retrying" msgstr "actualización simultánea, reintentando" -#: executor/execReplication.c:250 executor/execReplication.c:434 +#: executor/execReplication.c:282 executor/execReplication.c:466 #, c-format msgid "concurrent delete, retrying" msgstr "eliminacón concurrente, reintentando" -#: executor/execReplication.c:320 parser/parse_cte.c:308 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 -#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3832 -#: utils/adt/arrayfuncs.c:4387 utils/adt/arrayfuncs.c:6397 -#: utils/adt/rowtypes.c:1230 +#: executor/execReplication.c:352 parser/parse_cte.c:302 +#: parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 +#: utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3852 +#: utils/adt/arrayfuncs.c:4407 utils/adt/arrayfuncs.c:6426 +#: utils/adt/rowtypes.c:1220 #, c-format msgid "could not identify an equality operator for type %s" msgstr "no se pudo identificar un operador de igualdad para el tipo %s" -#: executor/execReplication.c:651 executor/execReplication.c:657 -#, fuzzy, c-format -#| msgid "cannot update foreign table \"%s\"" +#: executor/execReplication.c:687 executor/execReplication.c:693 +#, c-format msgid "cannot update table \"%s\"" -msgstr "no se puede actualizar la tabla foránea «%s»" +msgstr "no se puede actualizar la tabla «%s»" -#: executor/execReplication.c:653 executor/execReplication.c:665 +#: executor/execReplication.c:689 executor/execReplication.c:701 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." msgstr "La columna usada en la expresión WHERE de la publicación no es parte de la identidad de replicación." -#: executor/execReplication.c:659 executor/execReplication.c:671 +#: executor/execReplication.c:695 executor/execReplication.c:707 #, c-format msgid "Column list used by the publication does not cover the replica identity." msgstr "La lista de columnas usada por la publicación no incluye la identidad de replicación." -#: executor/execReplication.c:663 executor/execReplication.c:669 -#, fuzzy, c-format -#| msgid "cannot delete from foreign table \"%s\"" +#: executor/execReplication.c:699 executor/execReplication.c:705 +#, c-format msgid "cannot delete from table \"%s\"" -msgstr "no se puede eliminar desde la tabla foránea «%s»" +msgstr "no se puede eliminar desde la tabla «%s»" -#: executor/execReplication.c:689 +#: executor/execReplication.c:725 #, c-format msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates" msgstr "no se puede actualizar la tabla «%s» porque no tiene identidad de replicación y publica updates" -#: executor/execReplication.c:691 +#: executor/execReplication.c:727 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "Para habilitar la actualización de la tabla, configure REPLICA IDENTITY utilizando ALTER TABLE." -#: executor/execReplication.c:695 +#: executor/execReplication.c:731 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" msgstr "no se puede eliminar de la tabla «%s» porque no tiene una identidad de replicación y publica deletes" -#: executor/execReplication.c:697 +#: executor/execReplication.c:733 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "para habilitar la eliminación en la tabla, configure REPLICA IDENTITY utilizando ALTER TABLE." -#: executor/execReplication.c:713 +#: executor/execReplication.c:749 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "no se puede usar la relación «%s.%s» como destino de replicación lógica" -#: executor/execSRF.c:316 +#: executor/execSRF.c:315 #, c-format msgid "rows returned by function are not all of the same row type" msgstr "las filas retornadas por la función no tienen todas el mismo tipo de registro" -#: executor/execSRF.c:366 +#: executor/execSRF.c:365 #, c-format msgid "table-function protocol for value-per-call mode was not followed" msgstr "no se siguió el protocolo de función tabular para el modo de valor por llamada" -#: executor/execSRF.c:374 executor/execSRF.c:668 +#: executor/execSRF.c:373 executor/execSRF.c:667 #, c-format msgid "table-function protocol for materialize mode was not followed" msgstr "no se siguió el protocolo de función tabular para el modo de materialización" -#: executor/execSRF.c:381 executor/execSRF.c:686 +#: executor/execSRF.c:380 executor/execSRF.c:685 #, c-format msgid "unrecognized table-function returnMode: %d" msgstr "modo de retorno de la función tabular no es reconocido: %d" -#: executor/execSRF.c:895 +#: executor/execSRF.c:894 #, c-format msgid "function returning setof record called in context that cannot accept type record" msgstr "se llamó una función que retorna «setof record» en un contexto que no puede aceptar el tipo record" -#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977 +#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976 #, c-format msgid "function return row and query-specified return row do not match" msgstr "la fila de retorno especificada en la consulta no coincide con fila de retorno de la función" -#: executor/execSRF.c:952 +#: executor/execSRF.c:951 #, c-format msgid "Returned row contains %d attribute, but query expects %d." msgid_plural "Returned row contains %d attributes, but query expects %d." msgstr[0] "Fila retornada contiene %d atributo, pero la consulta esperaba %d." msgstr[1] "Fila retornada contiene %d atributos, pero la consulta esperaba %d." -#: executor/execSRF.c:968 +#: executor/execSRF.c:967 #, c-format msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "Tipo retornado %s en posición ordinal %d, pero la consulta esperaba %s." -#: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:713 +#: executor/execTuples.c:147 executor/execTuples.c:368 +#: executor/execTuples.c:563 executor/execTuples.c:772 #, c-format msgid "cannot retrieve a system column in this context" msgstr "no se puede obtener una columna de sistema en este contexto" -#: executor/execUtils.c:744 +#: executor/execTuples.c:163 executor/execTuples.c:580 +#, c-format +msgid "don't have transaction information for this type of tuple" +msgstr "no se tiene información de transacción para este tipo de tupla" + +#: executor/execTuples.c:390 executor/execTuples.c:794 +#, c-format +msgid "don't have a storage tuple in this context" +msgstr "no se tiene una tupla de almacenamiento en este contexto" + +#: executor/execUtils.c:713 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "la vista materializada «%s» no ha sido poblada" -#: executor/execUtils.c:746 +#: executor/execUtils.c:715 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "Use la orden REFRESH MATERIALIZED VIEW." @@ -13703,111 +14019,111 @@ msgstr "Use la orden REFRESH MATERIALIZED VIEW." msgid "could not determine actual type of argument declared %s" msgstr "no se pudo determinar el tipo de argumento declarado %s" -#: executor/functions.c:512 +#: executor/functions.c:513 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "no se puede ejecutar COPY desde/a un cliente en una función SQL" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:519 #, c-format msgid "%s is not allowed in an SQL function" msgstr "%s no está permitido en una función SQL" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635 +#: executor/functions.c:527 executor/spi.c:1744 executor/spi.c:2657 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "%s no está permitido en una función no-«volatile»" -#: executor/functions.c:1450 +#: executor/functions.c:1452 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "función SQL «%s» en la sentencia %d" -#: executor/functions.c:1476 +#: executor/functions.c:1478 #, c-format msgid "SQL function \"%s\" during startup" msgstr "función SQL «%s» durante el inicio" -#: executor/functions.c:1561 +#: executor/functions.c:1563 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "no está permitido invocar procedimientos con argumentos de salida en funciones SQL" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1698 executor/functions.c:1736 +#: executor/functions.c:1750 executor/functions.c:1845 +#: executor/functions.c:1878 executor/functions.c:1892 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "el tipo de retorno de función declarada para retornar %s no concuerda" -#: executor/functions.c:1696 +#: executor/functions.c:1700 #, c-format -msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." -msgstr "La sentencia final de la función debe ser un SELECT o INSERT/UPDATE/DELETE RETURNING." +msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." +msgstr "La sentencia final de la función debe ser un SELECT o INSERT/UPDATE/DELETE/MERGE RETURNING." -#: executor/functions.c:1734 +#: executor/functions.c:1738 #, c-format msgid "Final statement must return exactly one column." msgstr "La sentencia final debe retornar exactamente una columna." -#: executor/functions.c:1748 +#: executor/functions.c:1752 #, c-format msgid "Actual return type is %s." msgstr "El verdadero tipo de retorno es %s." -#: executor/functions.c:1838 +#: executor/functions.c:1847 #, c-format msgid "Final statement returns too many columns." msgstr "La sentencia final retorna demasiadas columnas." -#: executor/functions.c:1871 +#: executor/functions.c:1880 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "La sentencia final retorna %s en lugar de %s en la columna %d." -#: executor/functions.c:1885 +#: executor/functions.c:1894 #, c-format msgid "Final statement returns too few columns." msgstr "La sentencia final retorna muy pocas columnas." -#: executor/functions.c:1913 +#: executor/functions.c:1922 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "el tipo de retorno %s no es soportado en funciones SQL" -#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 +#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2975 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "la función de agregación %u necesita tener tipos de entrada y transición compatibles" -#: executor/nodeAgg.c:3967 parser/parse_agg.c:669 parser/parse_agg.c:697 +#: executor/nodeAgg.c:3966 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "no se pueden anidar llamadas a funciones de agregación" -#: executor/nodeCustom.c:154 executor/nodeCustom.c:165 +#: executor/nodeCustom.c:144 executor/nodeCustom.c:155 #, c-format msgid "custom scan \"%s\" does not support MarkPos" msgstr "el scan personalizado «%s» no soporta MarkPos" -#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173 +#: executor/nodeHashjoin.c:1131 executor/nodeHashjoin.c:1161 #, c-format msgid "could not rewind hash-join temporary file" msgstr "no se puede rebobinar el archivo temporal del hash-join" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:239 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "no se permiten funciones de ventana deslizante en predicados de índice" -#: executor/nodeLimit.c:374 +#: executor/nodeLimit.c:373 #, c-format msgid "OFFSET must not be negative" msgstr "OFFSET no debe ser negativo" -#: executor/nodeLimit.c:400 +#: executor/nodeLimit.c:399 #, c-format msgid "LIMIT must not be negative" msgstr "LIMIT no debe ser negativo" @@ -13822,76 +14138,74 @@ msgstr "RIGHT JOIN sólo está soportado con condiciones que se pueden usar con msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOIN sólo está soportado con condiciones que se pueden usar con merge join" -#: executor/nodeModifyTable.c:234 +#: executor/nodeModifyTable.c:240 #, c-format msgid "Query has too few columns." msgstr "La consulta tiene muy pocas columnas." -#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:1604 +#: executor/nodeModifyTable.c:1540 executor/nodeModifyTable.c:1614 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "el registro a ser eliminado ya fue modificado por una operación disparada por la orden actual" -#: executor/nodeModifyTable.c:1758 +#: executor/nodeModifyTable.c:1769 #, c-format msgid "invalid ON UPDATE specification" msgstr "especificación ON UPDATE no válida" -#: executor/nodeModifyTable.c:1759 +#: executor/nodeModifyTable.c:1770 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "La tupla de resultado aparecería en una partición diferente que la tupla original." -#: executor/nodeModifyTable.c:2217 +#: executor/nodeModifyTable.c:2226 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "no se puede mover una tupla entre particiones cuando un ancestro no-raíz de la partición de origen es referenciada directamente en una llave foránea" -#: executor/nodeModifyTable.c:2218 +#: executor/nodeModifyTable.c:2227 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." -msgstr "" +msgstr "Una llave foránea apunta al ancestro «%s» pero no al ancestro raíz «%s»." -#: executor/nodeModifyTable.c:2221 -#, fuzzy, c-format -#| msgid "cannot insert into foreign table \"%s\"" +#: executor/nodeModifyTable.c:2230 +#, c-format msgid "Consider defining the foreign key on table \"%s\"." -msgstr "no se puede insertar en la tabla foránea «%s»" +msgstr "Considere definir una llave foránea en la tabla «%s»." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:2954 +#: executor/nodeModifyTable.c:2596 executor/nodeModifyTable.c:3138 +#: executor/nodeModifyTable.c:3308 #, c-format msgid "%s command cannot affect row a second time" -msgstr "" +msgstr "la orden %s no puede afectar una fila por segunda vez" -#: executor/nodeModifyTable.c:2569 +#: executor/nodeModifyTable.c:2598 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Asegúrese de que ningún registro propuesto para inserción dentro de la misma orden tenga valores duplicados restringidos." -#: executor/nodeModifyTable.c:2956 +#: executor/nodeModifyTable.c:3131 executor/nodeModifyTable.c:3301 +#, c-format +msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" +msgstr "la tupla a ser actualizada o borrada ya fue modificada por una operación disparada por la orden actual" + +#: executor/nodeModifyTable.c:3140 executor/nodeModifyTable.c:3310 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Asegúrese que no más de un registro de origen coincide con cada registro de destino." -#: executor/nodeModifyTable.c:3037 -#, fuzzy, c-format -#| msgid "tuple to be locked was already moved to another partition due to concurrent update" -msgid "tuple to be deleted was already moved to another partition due to concurrent update" -msgstr "el registro a ser bloqueado ya fue movido a otra partición por un update concurrente" - -#: executor/nodeModifyTable.c:3076 -#, fuzzy, c-format -#| msgid "tuple to be updated was already modified by an operation triggered by the current command" -msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" -msgstr "el registro a ser actualizado ya fue modificado por una operación disparada por la orden actual" +#: executor/nodeModifyTable.c:3209 +#, c-format +msgid "tuple to be merged was already moved to another partition due to concurrent update" +msgstr "la tupla a ser mezclada ya fue movida a otra partición por un update concurrente" -#: executor/nodeSamplescan.c:260 +#: executor/nodeSamplescan.c:244 #, c-format msgid "TABLESAMPLE parameter cannot be null" msgstr "el parámetro TABLESAMPLE no puede ser null" -#: executor/nodeSamplescan.c:272 +#: executor/nodeSamplescan.c:256 #, c-format msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "el parámetro TABLESAMPLE REPEATABLE no puede ser null" @@ -13902,7 +14216,7 @@ msgstr "el parámetro TABLESAMPLE REPEATABLE no puede ser null" msgid "more than one row returned by a subquery used as an expression" msgstr "una subconsulta utilizada como expresión retornó más de un registro" -#: executor/nodeTableFuncscan.c:375 +#: executor/nodeTableFuncscan.c:370 #, c-format msgid "namespace URI must not be null" msgstr "la URI del espacio de nombres no debe ser null" @@ -13912,17 +14226,17 @@ msgstr "la URI del espacio de nombres no debe ser null" msgid "row filter expression must not be null" msgstr "la expresión filtro de filas no debe ser null" -#: executor/nodeTableFuncscan.c:415 +#: executor/nodeTableFuncscan.c:416 #, c-format msgid "column filter expression must not be null" msgstr "la expresión filtro de columnas no debe ser null" -#: executor/nodeTableFuncscan.c:416 +#: executor/nodeTableFuncscan.c:417 #, c-format msgid "Filter for column \"%s\" is null." msgstr "El filtro para la columna «%s» es null." -#: executor/nodeTableFuncscan.c:506 +#: executor/nodeTableFuncscan.c:507 #, c-format msgid "null is not allowed in column \"%s\"" msgstr "null no está permitido en la columna «%s»" @@ -13952,84 +14266,84 @@ msgstr "la posición final del marco no debe ser null" msgid "frame ending offset must not be negative" msgstr "la posición final del marco no debe ser negativa" -#: executor/nodeWindowAgg.c:2909 +#: executor/nodeWindowAgg.c:2891 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "la función de agregación %s no permite ser usada como función ventana" -#: executor/spi.c:242 executor/spi.c:342 +#: executor/spi.c:241 executor/spi.c:341 #, c-format msgid "invalid transaction termination" msgstr "terminación de transacción no válida" -#: executor/spi.c:257 +#: executor/spi.c:256 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "no se puede comprometer mientras hay una subtransacción activa" -#: executor/spi.c:348 +#: executor/spi.c:347 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "no se puede hacer rollback mientras hay una subtransacción activa" -#: executor/spi.c:472 +#: executor/spi.c:471 #, c-format msgid "transaction left non-empty SPI stack" msgstr "transacción dejó un stack SPI no vacío" -#: executor/spi.c:473 executor/spi.c:533 +#: executor/spi.c:472 executor/spi.c:532 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "Revise llamadas a «SPI_finish» faltantes." -#: executor/spi.c:532 +#: executor/spi.c:531 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "subtransacción dejó un stack SPI no vacío" -#: executor/spi.c:1600 +#: executor/spi.c:1602 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "no se puede abrir plan de varias consultas como cursor" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1610 +#: executor/spi.c:1612 #, c-format msgid "cannot open %s query as cursor" msgstr "no se puede abrir consulta %s como cursor" -#: executor/spi.c:1716 +#: executor/spi.c:1718 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE no está soportado" -#: executor/spi.c:1717 parser/analyze.c:2874 +#: executor/spi.c:1719 parser/analyze.c:2928 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Los cursores declarados SCROLL deben ser READ ONLY." -#: executor/spi.c:2474 +#: executor/spi.c:2496 #, c-format msgid "empty query does not return tuples" msgstr "la consulta vacía no retorna tuplas" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2548 +#: executor/spi.c:2570 #, c-format msgid "%s query does not return tuples" msgstr "la consulta «%s» no retorna tuplas" -#: executor/spi.c:2963 +#: executor/spi.c:2987 #, c-format msgid "SQL expression \"%s\"" msgstr "expresión SQL «%s»" -#: executor/spi.c:2968 +#: executor/spi.c:2992 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "asignación PL/pgSQL «%s»" -#: executor/spi.c:2971 +#: executor/spi.c:2995 #, c-format msgid "SQL statement \"%s\"" msgstr "sentencia SQL: «%s»" @@ -14039,35 +14353,34 @@ msgstr "sentencia SQL: «%s»" msgid "could not send tuple to shared-memory queue" msgstr "no se pudo enviar la tupla a la cola en memoria compartida" -#: foreign/foreign.c:222 +#: foreign/foreign.c:225 +#, c-format +msgid "user mapping not found for user \"%s\", server \"%s\"" +msgstr "no se encontró un mapeo para el usuario «%s», servidor «%s»" + +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7153 +#: optimizer/util/plancat.c:540 #, c-format -msgid "user mapping not found for \"%s\"" -msgstr "no se encontró un mapeo para el usuario «%s»" +msgid "access to non-system foreign table is restricted" +msgstr "el acceso a la tabla foránea no de sistema está restringido" -#: foreign/foreign.c:647 storage/file/fd.c:3881 +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "el nombre de opción «%s» no es válido" -#: foreign/foreign.c:649 -#, fuzzy, c-format -#| msgid "Perhaps you meant to reference the column \"%s.%s\"." +#: foreign/foreign.c:662 +#, c-format msgid "Perhaps you meant the option \"%s\"." -msgstr "Probablemente quiera hacer referencia a la columna «%s.%s»." - -#: foreign/foreign.c:651 -#, fuzzy, c-format -#| msgid "There are no old transactions anymore." -msgid "There are no valid options in this context." -msgstr "Ya no hay transacciones antiguas en ejecución." +msgstr "Quizás se refiere a la opción «%s»." -#: jit/jit.c:205 utils/fmgr/dfmgr.c:209 utils/fmgr/dfmgr.c:415 +#: foreign/foreign.c:664 #, c-format -msgid "could not access file \"%s\": %m" -msgstr "no se pudo acceder al archivo «%s»: %m" +msgid "There are no valid options in this context." +msgstr "No hay opciones válidas en este contexto." -#: lib/dshash.c:254 utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 -#: utils/mmgr/dsa.c:817 +#: lib/dshash.c:254 utils/mmgr/dsa.c:708 utils/mmgr/dsa.c:730 +#: utils/mmgr/dsa.c:811 #, c-format msgid "Failed on DSA request of size %zu." msgstr "Falla en petición DSA de tamaño %zu." @@ -14077,708 +14390,700 @@ msgstr "Falla en petición DSA de tamaño %zu." msgid "expected SASL response, got message type %d" msgstr "se esperaba una respuesta SASL, se obtuvo mensaje de tipo %d" -#: libpq/auth-scram.c:270 +#: libpq/auth-scram.c:263 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "cliente eligió un mecanismo de autentificación SASL no válido" -#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554 +#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "el secreto SCRAM para el usuario «%s» no es válido" -#: libpq/auth-scram.c:305 +#: libpq/auth-scram.c:298 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "El usuario «%s» no tiene un secreto SCRAM válido." -#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 -#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 -#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 -#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 -#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 -#: libpq/auth-scram.c:1394 +#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 +#: libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 +#: libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 +#: libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 +#: libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 +#: libpq/auth-scram.c:1387 #, c-format msgid "malformed SCRAM message" msgstr "mensaje SCRAM mal formado" -#: libpq/auth-scram.c:386 +#: libpq/auth-scram.c:379 #, c-format msgid "The message is empty." msgstr "El mensaje está vacío." -#: libpq/auth-scram.c:391 +#: libpq/auth-scram.c:384 #, c-format msgid "Message length does not match input length." msgstr "El largo del mensaje no coincide con el largo de entrada." -#: libpq/auth-scram.c:423 +#: libpq/auth-scram.c:416 #, c-format msgid "invalid SCRAM response" msgstr "respuesta SCRAM no válida" -#: libpq/auth-scram.c:424 +#: libpq/auth-scram.c:417 #, c-format msgid "Nonce does not match." msgstr "El «nonce» no coincide." -#: libpq/auth-scram.c:500 +#: libpq/auth-scram.c:493 #, c-format msgid "could not generate random salt" msgstr "no se pudo generar una sal aleatoria" -#: libpq/auth-scram.c:745 +#: libpq/auth-scram.c:738 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "Se esperaba un atributo «%c» pero se encontró «%s»." -#: libpq/auth-scram.c:753 libpq/auth-scram.c:881 +#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "Se esperaba el carácter «=» para el atributo «%c»." -#: libpq/auth-scram.c:858 +#: libpq/auth-scram.c:851 #, c-format msgid "Attribute expected, but found end of string." msgstr "Se esperaba un atributo, se encontró el fin de la cadena." -#: libpq/auth-scram.c:871 +#: libpq/auth-scram.c:864 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "Se esperaba un atributo, se encontró el carácter no válido «%s»." -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." msgstr "El cliente seleccionó SCRAM-SHA-256-PLUS, pero el mensaje SCRAM no incluye los datos de enlazado (binding) del canal." -#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 +#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 #, c-format msgid "Comma expected, but found character \"%s\"." msgstr "Se esperaba una coma, se encontró el carácter «%s»." -#: libpq/auth-scram.c:1017 +#: libpq/auth-scram.c:1010 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "error de negociación de enlazado (binding) de canal SCRAM" -#: libpq/auth-scram.c:1018 +#: libpq/auth-scram.c:1011 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." msgstr "El cliente soporta enlazado (binding) de canal SCRAM, pero piensa que el servidor no. Sin embargo, este servidor sí soporta enlazado de canal." -#: libpq/auth-scram.c:1040 +#: libpq/auth-scram.c:1033 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." msgstr "El cliente seleccionó SCRAM-SHA-256 sin enlazado de canal, pero el mensaje SCRAM incluye datos de enlazado de canal." -#: libpq/auth-scram.c:1051 +#: libpq/auth-scram.c:1044 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "tipo de enlazado de canal SCRAM «%s» no soportado" -#: libpq/auth-scram.c:1058 +#: libpq/auth-scram.c:1051 #, c-format msgid "Unexpected channel-binding flag \"%s\"." msgstr "Indicador de enlazado de canal «%s» inesperado." -#: libpq/auth-scram.c:1068 +#: libpq/auth-scram.c:1061 #, c-format msgid "client uses authorization identity, but it is not supported" msgstr "el cliente usa identidad de autorización, pero no está soportada" -#: libpq/auth-scram.c:1073 +#: libpq/auth-scram.c:1066 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." msgstr "Atributo inesperado \"%s\" en client-first-message." -#: libpq/auth-scram.c:1089 +#: libpq/auth-scram.c:1082 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "el cliente requiere una extensión SCRAM no soportada" -#: libpq/auth-scram.c:1103 +#: libpq/auth-scram.c:1096 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "caracteres no imprimibles en el «nonce» SCRAM" -#: libpq/auth-scram.c:1234 +#: libpq/auth-scram.c:1227 #, c-format msgid "could not generate random nonce" msgstr "no se pudo generar un «nonce» aleatorio" -#: libpq/auth-scram.c:1244 +#: libpq/auth-scram.c:1237 #, c-format msgid "could not encode random nonce" msgstr "no se pudo codificar un «nonce» aleatorio" -#: libpq/auth-scram.c:1350 +#: libpq/auth-scram.c:1343 #, c-format msgid "SCRAM channel binding check failed" msgstr "la verificación de enlazado (binding) de canal SCRAM falló" -#: libpq/auth-scram.c:1368 +#: libpq/auth-scram.c:1361 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "atributo de enlazado de canal SCRAM inesperado en client-final-message" -#: libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:1380 #, c-format msgid "Malformed proof in client-final-message." msgstr "Prueba (proof) mal formada en client-final-message." -#: libpq/auth-scram.c:1395 +#: libpq/auth-scram.c:1388 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "Basura encontrada al final de client-final-message." -#: libpq/auth.c:271 +#: libpq/auth.c:269 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "la autentificación falló para el usuario «%s»: anfitrión rechazado" -#: libpq/auth.c:274 +#: libpq/auth.c:272 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "la autentificación «trust» falló para el usuario «%s»" -#: libpq/auth.c:277 +#: libpq/auth.c:275 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "la autentificación Ident falló para el usuario «%s»" -#: libpq/auth.c:280 +#: libpq/auth.c:278 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "la autentificación Peer falló para el usuario «%s»" -#: libpq/auth.c:285 +#: libpq/auth.c:283 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "la autentificación password falló para el usuario «%s»" -#: libpq/auth.c:290 +#: libpq/auth.c:288 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "la autentificación GSSAPI falló para el usuario «%s»" -#: libpq/auth.c:293 +#: libpq/auth.c:291 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "la autentificación SSPI falló para el usuario «%s»" -#: libpq/auth.c:296 +#: libpq/auth.c:294 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "la autentificación PAM falló para el usuario «%s»" -#: libpq/auth.c:299 +#: libpq/auth.c:297 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "la autentificación BSD falló para el usuario «%s»" -#: libpq/auth.c:302 +#: libpq/auth.c:300 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "la autentificación LDAP falló para el usuario «%s»" -#: libpq/auth.c:305 +#: libpq/auth.c:303 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "la autentificación por certificado falló para el usuario «%s»" -#: libpq/auth.c:308 +#: libpq/auth.c:306 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "la autentificación RADIUS falló para el usuario «%s»" -#: libpq/auth.c:311 +#: libpq/auth.c:309 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "la autentificación falló para el usuario «%s»: método de autentificación no válido" -#: libpq/auth.c:315 -#, fuzzy, c-format -#| msgid "reconnection failed: %s" -msgid "Connection matched %s line %d: \"%s\"" -msgstr "falló la reconexión: %s" +#: libpq/auth.c:313 +#, c-format +msgid "Connection matched file \"%s\" line %d: \"%s\"" +msgstr "La conexión coincidió con el archivo «%s» línea %d: «%s»" -#: libpq/auth.c:359 +#: libpq/auth.c:357 #, c-format msgid "authentication identifier set more than once" msgstr "identificador de autentificación establecido más de una vez" -#: libpq/auth.c:360 +#: libpq/auth.c:358 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "identificador anterior: «%s»; nuevo identificador: «%s»" -#: libpq/auth.c:370 +#: libpq/auth.c:368 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "conexión autenticada: identidad=«%s» método=%s (%s:%d)" -#: libpq/auth.c:410 +#: libpq/auth.c:408 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "los certificados de cliente sólo pueden verificarse si un almacén de certificado raíz está disponible" -#: libpq/auth.c:421 +#: libpq/auth.c:419 #, c-format msgid "connection requires a valid client certificate" msgstr "la conexión requiere un certificado de cliente válido" -#: libpq/auth.c:452 libpq/auth.c:498 +#: libpq/auth.c:450 libpq/auth.c:496 msgid "GSS encryption" msgstr "cifrado GSS" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:453 libpq/auth.c:499 msgid "SSL encryption" msgstr "cifrado SSL" -#: libpq/auth.c:457 libpq/auth.c:503 +#: libpq/auth.c:455 libpq/auth.c:501 msgid "no encryption" msgstr "sin cifrado" #. translator: last %s describes encryption state -#: libpq/auth.c:463 +#: libpq/auth.c:461 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf rechaza la conexión de replicación para el servidor «%s», usuario «%s», %s" #. translator: last %s describes encryption state -#: libpq/auth.c:470 +#: libpq/auth.c:468 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf rechaza la conexión para el servidor «%s», usuario «%s», base de datos «%s», %s" -#: libpq/auth.c:508 +#: libpq/auth.c:506 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado es coincidente." -#: libpq/auth.c:511 +#: libpq/auth.c:509 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado no fue verificado." -#: libpq/auth.c:514 +#: libpq/auth.c:512 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "La dirección IP del cliente fue resuelta a «%s», este resultado no es coincidente." -#: libpq/auth.c:517 +#: libpq/auth.c:515 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "No se pudo traducir el nombre de host del cliente «%s» a una dirección IP: %s." -#: libpq/auth.c:522 +#: libpq/auth.c:520 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "No se pudo obtener la dirección IP del cliente a un nombre de host: %s." #. translator: last %s describes encryption state -#: libpq/auth.c:530 +#: libpq/auth.c:528 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "no hay una línea en pg_hba.conf para la conexión de replicación desde el servidor «%s», usuario «%s», %s" #. translator: last %s describes encryption state -#: libpq/auth.c:538 +#: libpq/auth.c:536 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "no hay una línea en pg_hba.conf para «%s», usuario «%s», base de datos «%s», %s" -#: libpq/auth.c:711 +#: libpq/auth.c:656 +#, c-format +msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" +msgstr "conexión autenticada: usuario=«%s» método=%s (%s:%d)" + +#: libpq/auth.c:725 #, c-format msgid "expected password response, got message type %d" msgstr "se esperaba una respuesta de contraseña, se obtuvo mensaje de tipo %d" -#: libpq/auth.c:732 +#: libpq/auth.c:746 #, c-format msgid "invalid password packet size" msgstr "el tamaño del paquete de contraseña no es válido" -#: libpq/auth.c:750 +#: libpq/auth.c:764 #, c-format msgid "empty password returned by client" msgstr "el cliente retornó una contraseña vacía" -#: libpq/auth.c:879 libpq/hba.c:1749 -#, c-format -msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" -msgstr "la autentificación MD5 no está soportada cuando «db_user_namespace» está activo" - -#: libpq/auth.c:885 +#: libpq/auth.c:892 #, c-format msgid "could not generate random MD5 salt" msgstr "no se pudo generar una sal MD5 aleatoria" -#: libpq/auth.c:936 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "no se pudo establecer el ambiente: %m" -#: libpq/auth.c:975 +#: libpq/auth.c:982 #, c-format msgid "expected GSS response, got message type %d" msgstr "se esperaba una respuesta GSS, se obtuvo mensaje de tipo %d" -#: libpq/auth.c:1041 +#: libpq/auth.c:1048 msgid "accepting GSS security context failed" msgstr "falló la aceptación del contexto de seguridad GSS" -#: libpq/auth.c:1082 +#: libpq/auth.c:1089 msgid "retrieving GSS user name failed" msgstr "falló la obtención del nombre de usuario GSS" -#: libpq/auth.c:1228 +#: libpq/auth.c:1235 msgid "could not acquire SSPI credentials" msgstr "no se pudo obtener las credenciales SSPI" -#: libpq/auth.c:1253 +#: libpq/auth.c:1260 #, c-format msgid "expected SSPI response, got message type %d" msgstr "se esperaba una respuesta SSPI, se obtuvo mensaje de tipo %d" -#: libpq/auth.c:1331 +#: libpq/auth.c:1338 msgid "could not accept SSPI security context" msgstr "no se pudo aceptar un contexto SSPI" -#: libpq/auth.c:1372 +#: libpq/auth.c:1379 msgid "could not get token from SSPI security context" msgstr "no se pudo obtener un testigo (token) desde el contexto de seguridad SSPI" -#: libpq/auth.c:1508 libpq/auth.c:1527 +#: libpq/auth.c:1515 libpq/auth.c:1534 #, c-format msgid "could not translate name" msgstr "no se pudo traducir el nombre" -#: libpq/auth.c:1540 +#: libpq/auth.c:1547 #, c-format msgid "realm name too long" msgstr "nombre de «realm» demasiado largo" -#: libpq/auth.c:1555 +#: libpq/auth.c:1562 #, c-format msgid "translated account name too long" msgstr "nombre de cuenta traducido demasiado largo" -#: libpq/auth.c:1734 +#: libpq/auth.c:1741 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "no se pudo crear un socket para conexión Ident: %m" -#: libpq/auth.c:1749 +#: libpq/auth.c:1756 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "no se pudo enlazar a la dirección local «%s»: %m" -#: libpq/auth.c:1761 +#: libpq/auth.c:1768 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "no se pudo conectar al servidor Ident en dirección «%s», port %s: %m" -#: libpq/auth.c:1783 +#: libpq/auth.c:1790 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "no se pudo enviar consulta Ident al servidor «%s», port %s: %m" -#: libpq/auth.c:1800 +#: libpq/auth.c:1807 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "no se pudo recibir respuesta Ident desde el servidor «%s», port %s: %m" -#: libpq/auth.c:1810 +#: libpq/auth.c:1817 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "respuesta del servidor Ident en formato no válido: «%s»" -#: libpq/auth.c:1863 +#: libpq/auth.c:1870 #, c-format msgid "peer authentication is not supported on this platform" msgstr "método de autentificación peer no está soportado en esta plataforma" -#: libpq/auth.c:1867 +#: libpq/auth.c:1874 #, c-format msgid "could not get peer credentials: %m" msgstr "no se pudo recibir credenciales: %m" -#: libpq/auth.c:1879 +#: libpq/auth.c:1886 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "no se pudo encontrar el ID del usuario local %ld: %s" -#: libpq/auth.c:1981 +#: libpq/auth.c:1988 #, c-format msgid "error from underlying PAM layer: %s" msgstr "se ha recibido un error de la biblioteca PAM: %s" -#: libpq/auth.c:1992 +#: libpq/auth.c:1999 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "conversación PAM no soportada: %d/«%s»" -#: libpq/auth.c:2049 +#: libpq/auth.c:2056 #, c-format msgid "could not create PAM authenticator: %s" msgstr "no se pudo crear autenticador PAM: %s" -#: libpq/auth.c:2060 +#: libpq/auth.c:2067 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER) falló: %s" -#: libpq/auth.c:2092 +#: libpq/auth.c:2099 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST) falló: %s" -#: libpq/auth.c:2104 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "pam_set_item(PAM_CONV) falló: %s" -#: libpq/auth.c:2117 +#: libpq/auth.c:2124 #, c-format msgid "pam_authenticate failed: %s" msgstr "pam_authenticate falló: %s" -#: libpq/auth.c:2130 +#: libpq/auth.c:2137 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmt falló: %s" -#: libpq/auth.c:2141 +#: libpq/auth.c:2148 #, c-format msgid "could not release PAM authenticator: %s" msgstr "no se pudo liberar autenticador PAM: %s" -#: libpq/auth.c:2221 +#: libpq/auth.c:2228 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "no se pudo inicializar LDAP: código de error %d" -#: libpq/auth.c:2258 +#: libpq/auth.c:2265 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "no se pudo extraer el nombre de dominio de ldapbasedn" -#: libpq/auth.c:2266 +#: libpq/auth.c:2273 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "la autentificación LDAP no pudo encontrar registros DNS SRV para «%s»" -#: libpq/auth.c:2268 +#: libpq/auth.c:2275 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Defina un nombre de servidor LDAP explícitamente." -#: libpq/auth.c:2320 +#: libpq/auth.c:2327 #, c-format msgid "could not initialize LDAP: %s" msgstr "no se pudo inicializar LDAP: %s" -#: libpq/auth.c:2330 +#: libpq/auth.c:2337 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ldaps no está soportado con esta biblioteca LDAP" -#: libpq/auth.c:2338 +#: libpq/auth.c:2345 #, c-format msgid "could not initialize LDAP: %m" msgstr "no se pudo inicializar LDAP: %m" -#: libpq/auth.c:2348 +#: libpq/auth.c:2355 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "no se pudo definir la versión de protocolo LDAP: %s" -#: libpq/auth.c:2364 +#: libpq/auth.c:2371 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "no se pudo iniciar sesión de LDAP TLS: %s" -#: libpq/auth.c:2441 +#: libpq/auth.c:2448 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "servidor LDAP no especificado, y no hay ldapbasedn" -#: libpq/auth.c:2448 +#: libpq/auth.c:2455 #, c-format msgid "LDAP server not specified" msgstr "servidor LDAP no especificado" -#: libpq/auth.c:2510 +#: libpq/auth.c:2517 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "carácter no válido en nombre de usuario para autentificación LDAP" -#: libpq/auth.c:2527 +#: libpq/auth.c:2534 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "no se pudo hacer el enlace LDAP inicial para el ldapbinddb «%s» en el servidor «%s»: %s" -#: libpq/auth.c:2557 +#: libpq/auth.c:2564 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "no se pudo hacer la búsqueda LDAP para el filtro «%s» en el servidor «%s»: %s" -#: libpq/auth.c:2573 +#: libpq/auth.c:2580 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "no existe el usuario LDAP «%s»" -#: libpq/auth.c:2574 +#: libpq/auth.c:2581 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "La búsqueda LDAP para el filtro «%s» en el servidor «%s» no retornó elementos." -#: libpq/auth.c:2578 +#: libpq/auth.c:2585 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "el usuario LDAP «%s» no es única" -#: libpq/auth.c:2579 +#: libpq/auth.c:2586 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "La búsqueda LDAP para el filtro «%s» en el servidor «%s» retornó %d elemento." msgstr[1] "La búsqueda LDAP para el filtro «%s» en el servidor «%s» retornó %d elementos." -#: libpq/auth.c:2599 +#: libpq/auth.c:2606 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "no se pudo obtener el dn para la primera entrada que coincide con «%s» en el servidor «%s»: %s" -#: libpq/auth.c:2620 -#, c-format -msgid "could not unbind after searching for user \"%s\" on server \"%s\"" -msgstr "no se pudo desconectar (unbind) después de buscar al usuario «%s» en el servidor «%s»" - -#: libpq/auth.c:2651 +#: libpq/auth.c:2633 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "falló el inicio de sesión LDAP para el usuario «%s» en el servidor «%s»: %s" -#: libpq/auth.c:2683 +#: libpq/auth.c:2665 #, c-format msgid "LDAP diagnostics: %s" msgstr "Diagnóstico LDAP: %s" -#: libpq/auth.c:2721 +#: libpq/auth.c:2703 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "la autentificación con certificado falló para el usuario «%s»: el certificado de cliente no contiene un nombre de usuario" -#: libpq/auth.c:2742 +#: libpq/auth.c:2724 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "la autentificación por certificado falló para el usuario «%s»: no se pudo obtener el DN del sujeto" -#: libpq/auth.c:2765 +#: libpq/auth.c:2747 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "la validación de certificado (clientcert=verify-full) falló para el usuario «%s»: discordancia de DN" -#: libpq/auth.c:2770 +#: libpq/auth.c:2752 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "la validación de certificado (clientcert=verify-full) falló para el usuario «%s»: discordancia de CN" -#: libpq/auth.c:2872 +#: libpq/auth.c:2854 #, c-format msgid "RADIUS server not specified" msgstr "servidor RADIUS no especificado" -#: libpq/auth.c:2879 +#: libpq/auth.c:2861 #, c-format msgid "RADIUS secret not specified" msgstr "secreto RADIUS no especificado" -#: libpq/auth.c:2893 +#: libpq/auth.c:2875 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "la autentificación RADIUS no soporta contraseñas más largas de %d caracteres" -#: libpq/auth.c:2995 libpq/hba.c:2391 +#: libpq/auth.c:2977 libpq/hba.c:2352 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "no se pudo traducir el nombre de servidor RADIUS «%s» a dirección: %s" -#: libpq/auth.c:3009 +#: libpq/auth.c:2991 #, c-format msgid "could not generate random encryption vector" msgstr "no se pudo generar un vector aleatorio de encriptación" -#: libpq/auth.c:3046 -#, fuzzy, c-format -#| msgid "could not encrypt password: %s" +#: libpq/auth.c:3028 +#, c-format msgid "could not perform MD5 encryption of password: %s" -msgstr "no se pudo cifrar contraseña: %s" +msgstr "no se pudo efectuar cifrado MD5 de contraseña: %s" -#: libpq/auth.c:3073 +#: libpq/auth.c:3055 #, c-format msgid "could not create RADIUS socket: %m" msgstr "no se pudo crear el socket RADIUS: %m" -#: libpq/auth.c:3089 +#: libpq/auth.c:3071 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "no se pudo enlazar el socket RADIUS local: %m" -#: libpq/auth.c:3099 +#: libpq/auth.c:3081 #, c-format msgid "could not send RADIUS packet: %m" msgstr "no se pudo enviar el paquete RADIUS: %m" -#: libpq/auth.c:3133 libpq/auth.c:3159 +#: libpq/auth.c:3115 libpq/auth.c:3141 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "se agotó el tiempo de espera de la respuesta RADIUS desde %s" -#: libpq/auth.c:3152 +#: libpq/auth.c:3134 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "no se pudo verificar el estado en el socket %m" -#: libpq/auth.c:3182 +#: libpq/auth.c:3164 #, c-format msgid "could not read RADIUS response: %m" msgstr "no se pudo leer la respuesta RADIUS: %m" -#: libpq/auth.c:3190 +#: libpq/auth.c:3172 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "la respuesta RADIUS desde %s fue enviada desde el port incorrecto: %d" -#: libpq/auth.c:3198 +#: libpq/auth.c:3180 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "la respuesta RADIUS desde %s es demasiado corta: %d" -#: libpq/auth.c:3205 +#: libpq/auth.c:3187 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "la respuesta RADIUS desde %ss tiene largo corrupto: %d (largo real %d)" -#: libpq/auth.c:3213 +#: libpq/auth.c:3195 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "la respuesta RADIUS desde %s es a una petición diferente: %d (debería ser %d)" -#: libpq/auth.c:3238 -#, fuzzy, c-format -#| msgid "could not send feedback packet: %s" +#: libpq/auth.c:3220 +#, c-format msgid "could not perform MD5 encryption of received packet: %s" -msgstr "no se pudo enviar el paquete de retroalimentación: %s" +msgstr "no se pudo efectuar cifrado MD5 del paquete recibido: %s" -#: libpq/auth.c:3248 +#: libpq/auth.c:3230 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "la respuesta RADIUS desde %s tiene firma MD5 incorrecta" -#: libpq/auth.c:3266 +#: libpq/auth.c:3248 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "la respuesta RADIUS desde %s tiene código no válido (%d) para el usuario «%s»" @@ -14835,64 +15140,51 @@ msgstr "no se pudo escribir el archivo del servidor «%s»: %m" msgid "large object read request is too large" msgstr "el tamaño de petición de lectura de objeto grande es muy grande" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 -#: utils/adt/genfile.c:315 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "el tamaño solicitado no puede ser negativo" -#: libpq/be-fsstubs.c:871 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 "permiso denegado al objeto grande %u" - -#: libpq/be-secure-common.c:71 -#, c-format -msgid "could not read from command \"%s\": %m" -msgstr "no se pudo leer desde la orden «%s»: %m" - -#: libpq/be-secure-common.c:91 +#: libpq/be-secure-common.c:94 #, c-format msgid "command \"%s\" failed" msgstr "la orden «%s» falló" -#: libpq/be-secure-common.c:119 +#: libpq/be-secure-common.c:123 #, c-format msgid "could not access private key file \"%s\": %m" msgstr "no se pudo acceder al archivo de la llave privada «%s»: %m" -#: libpq/be-secure-common.c:129 +#: libpq/be-secure-common.c:133 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "el archivo de llave privada «%s» no es un archivo regular" -#: libpq/be-secure-common.c:155 +#: libpq/be-secure-common.c:159 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "el archivo de llave privada «%s» debe ser de propiedad del usuario de base de datos o root" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:169 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "el archivo de la llave privada «%s» tiene acceso para el grupo u otros" -#: libpq/be-secure-common.c:167 +#: libpq/be-secure-common.c:171 #, 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 "El archivo debe tener permisos u=rw (0600) o menos si es de propiedad del usuario de base deatos, o permisos u=rw,g=r (0640) o menos si es de root." -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "error de «wrap» de GSSAPI" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "mensaje saliente GSSAPI no proveería confidencialidad" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:634 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "el servidor intentó enviar un paquete GSSAPI demasiado grande (%zu > %zu)" @@ -14924,819 +15216,810 @@ msgstr "no se pudo aceptar un contexto de seguridad GSSAPI" msgid "GSSAPI size check error" msgstr "error de verificación de tamaño GSSAPI" -#: libpq/be-secure-openssl.c:125 +#: libpq/be-secure-openssl.c:131 #, c-format msgid "could not create SSL context: %s" msgstr "no se pudo crear un contexto SSL: %s" -#: libpq/be-secure-openssl.c:151 +#: libpq/be-secure-openssl.c:157 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "no se pudo cargar el archivo de certificado de servidor «%s»: %s" -#: libpq/be-secure-openssl.c:171 +#: libpq/be-secure-openssl.c:177 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "el archivo de clave privada \"%s\" no se puede volver a cargar porque requiere una contraseña" -#: libpq/be-secure-openssl.c:176 +#: libpq/be-secure-openssl.c:182 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "no se pudo cargar el archivo de la llave privada «%s»: %s" -#: libpq/be-secure-openssl.c:185 +#: libpq/be-secure-openssl.c:191 #, c-format msgid "check of private key failed: %s" msgstr "falló la revisión de la llave privada: %s" #. translator: first %s is a GUC option name, second %s is its value -#: libpq/be-secure-openssl.c:198 libpq/be-secure-openssl.c:221 +#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "el valor «%2$s» para la opción «%1$s» no está soportado en este servidor" -#: libpq/be-secure-openssl.c:208 +#: libpq/be-secure-openssl.c:214 #, c-format msgid "could not set minimum SSL protocol version" msgstr "no se pudo definir la versión mínima de protocolo SSL" -#: libpq/be-secure-openssl.c:231 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set maximum SSL protocol version" msgstr "no se pudo definir la versión máxima de protocolo SSL" -#: libpq/be-secure-openssl.c:247 +#: libpq/be-secure-openssl.c:253 #, c-format msgid "could not set SSL protocol version range" msgstr "no se pudo definir el rango de versión de protocolo SSL" -#: libpq/be-secure-openssl.c:248 +#: libpq/be-secure-openssl.c:254 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "«%s» no puede ser más alto que «%s»" -#: libpq/be-secure-openssl.c:285 +#: libpq/be-secure-openssl.c:307 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "no se pudo establecer la lista de cifrado (no hay cifradores disponibles)" -#: libpq/be-secure-openssl.c:305 +#: libpq/be-secure-openssl.c:327 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "no se pudo cargar el archivo del certificado raíz «%s»: %s" -#: libpq/be-secure-openssl.c:354 +#: libpq/be-secure-openssl.c:376 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "no se pudo cargar el archivo de lista de revocación de certificados SSL «%s»: %s" -#: libpq/be-secure-openssl.c:362 +#: libpq/be-secure-openssl.c:384 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "no se pudo cargar el directorio de lista de revocación de certificados SSL «%s»: %s" -#: libpq/be-secure-openssl.c:370 +#: libpq/be-secure-openssl.c:392 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "no se pudo cargar el archivo de lista de revocación de certificados SSL «%s» o directorio «%s»: %s" -#: libpq/be-secure-openssl.c:428 +#: libpq/be-secure-openssl.c:450 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "no se pudo inicializar la conexión SSL: el contexto SSL no está instalado" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:464 #, c-format msgid "could not initialize SSL connection: %s" msgstr "no se pudo inicializar la conexión SSL: %s" -#: libpq/be-secure-openssl.c:447 +#: libpq/be-secure-openssl.c:472 #, c-format msgid "could not set SSL socket: %s" msgstr "no se definir un socket SSL: %s" -#: libpq/be-secure-openssl.c:502 +#: libpq/be-secure-openssl.c:528 #, c-format msgid "could not accept SSL connection: %m" msgstr "no se pudo aceptar una conexión SSL: %m" -#: libpq/be-secure-openssl.c:506 libpq/be-secure-openssl.c:561 +#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "no se pudo aceptar una conexión SSL: se detectó EOF" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:573 #, c-format msgid "could not accept SSL connection: %s" msgstr "no se pudo aceptar una conexión SSL: %s" -#: libpq/be-secure-openssl.c:549 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Esto puede indicar que el cliente no soporta ninguna versión del protocolo SSL entre %s y %s." -#: libpq/be-secure-openssl.c:566 libpq/be-secure-openssl.c:746 -#: libpq/be-secure-openssl.c:810 +#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809 +#: libpq/be-secure-openssl.c:879 #, c-format msgid "unrecognized SSL error code: %d" msgstr "código de error SSL no reconocido: %d" -#: libpq/be-secure-openssl.c:612 +#: libpq/be-secure-openssl.c:622 +#, c-format +msgid "received SSL connection request with unexpected ALPN protocol" +msgstr "recibido una solicitud de conexión SSL con protocolo ALPN inesperado" + +#: libpq/be-secure-openssl.c:666 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "el «common name» del certificado SSL contiene un carácter null" -#: libpq/be-secure-openssl.c:652 +#: libpq/be-secure-openssl.c:712 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "el elemento de nombre distinguido en el certificado SSL contiene un carácter null" -#: libpq/be-secure-openssl.c:735 libpq/be-secure-openssl.c:794 +#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863 #, c-format msgid "SSL error: %s" msgstr "error de SSL: %s" -#: libpq/be-secure-openssl.c:976 +#: libpq/be-secure-openssl.c:1038 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "no se pudo abrir el archivo de parámetros DH «%s»: %m" -#: libpq/be-secure-openssl.c:988 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not load DH parameters file: %s" msgstr "no se pudo cargar el archivo de parámetros DH: %s" -#: libpq/be-secure-openssl.c:998 +#: libpq/be-secure-openssl.c:1060 #, c-format msgid "invalid DH parameters: %s" msgstr "parámetros DH no válidos: %s" -#: libpq/be-secure-openssl.c:1007 +#: libpq/be-secure-openssl.c:1069 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "parámetros DH no válidos: p no es primo" -#: libpq/be-secure-openssl.c:1016 +#: libpq/be-secure-openssl.c:1078 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "parámetros DH no válidos: no hay generador apropiado o primo seguro" -#: libpq/be-secure-openssl.c:1152 -#, fuzzy, c-format -#| msgid "certificate authentication failed for user \"%s\"" +#: libpq/be-secure-openssl.c:1214 +#, c-format msgid "Client certificate verification failed at depth %d: %s." -msgstr "la autentificación por certificado falló para el usuario «%s»" +msgstr "La autentificación por certificado de cliente falló en la profundidad %d: %s." -#: libpq/be-secure-openssl.c:1189 +#: libpq/be-secure-openssl.c:1251 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." -msgstr "" +msgstr "Datos del certificado fallido (sin verificar): sujeto «%s», número de serie %s, emisor «%s»." -#: libpq/be-secure-openssl.c:1190 +#: libpq/be-secure-openssl.c:1252 msgid "unknown" msgstr "desconocido" -#: libpq/be-secure-openssl.c:1281 +#: libpq/be-secure-openssl.c:1389 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: no se pudo cargar los parámetros DH" -#: libpq/be-secure-openssl.c:1289 +#: libpq/be-secure-openssl.c:1397 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: no se pudo definir los parámetros DH: %s" -#: libpq/be-secure-openssl.c:1316 +#: libpq/be-secure-openssl.c:1424 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: nombre de curva no reconocida: %s" -#: libpq/be-secure-openssl.c:1325 +#: libpq/be-secure-openssl.c:1433 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: no se pudo crear la llave" -#: libpq/be-secure-openssl.c:1353 +#: libpq/be-secure-openssl.c:1461 msgid "no SSL error reported" msgstr "código de error SSL no reportado" -#: libpq/be-secure-openssl.c:1357 +#: libpq/be-secure-openssl.c:1479 #, c-format msgid "SSL error code %lu" msgstr "código de error SSL %lu" -#: libpq/be-secure-openssl.c:1516 +#: libpq/be-secure-openssl.c:1636 #, c-format msgid "could not create BIO" msgstr "no se pudo crear BIO" -#: libpq/be-secure-openssl.c:1526 +#: libpq/be-secure-openssl.c:1646 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "no se pudo obtener NID para objeto ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1534 +#: libpq/be-secure-openssl.c:1654 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "no se pudo convertir NID %d en una estructura ASN1_OBJECT" -#: libpq/be-secure.c:207 libpq/be-secure.c:303 -#, c-format -msgid "terminating connection due to unexpected postmaster exit" -msgstr "terminando la conexión debido al término inesperado de postmaster" - -#: libpq/crypt.c:49 +#: libpq/crypt.c:48 #, c-format msgid "Role \"%s\" does not exist." msgstr "No existe el rol «%s»." -#: libpq/crypt.c:59 +#: libpq/crypt.c:58 #, c-format msgid "User \"%s\" has no password assigned." msgstr "El usuario «%s» no tiene una contraseña asignada." -#: libpq/crypt.c:77 +#: libpq/crypt.c:76 #, c-format msgid "User \"%s\" has an expired password." msgstr "El usuario «%s» tiene contraseña expirada." -#: libpq/crypt.c:183 +#: libpq/crypt.c:182 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "El usuario \"%s\" tiene una contraseña que no se puede usar con la autentificación MD5." -#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 +#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 #, c-format msgid "Password does not match for user \"%s\"." msgstr "La contraseña no coincide para el usuario «%s»." -#: libpq/crypt.c:285 +#: libpq/crypt.c:284 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "La contraseña del usuario \"%s\" está en un formato no reconocido." -#: libpq/hba.c:234 -#, c-format -msgid "authentication file token too long, skipping: \"%s\"" -msgstr "una palabra en el archivo de autentificación es demasiado larga, omitiendo: «%s»" - -#: libpq/hba.c:357 +#: libpq/hba.c:327 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "la expresión regular «%s» no es válida: %s" -#: libpq/hba.c:359 libpq/hba.c:688 libpq/hba.c:1272 libpq/hba.c:1292 -#: libpq/hba.c:1315 libpq/hba.c:1328 libpq/hba.c:1381 libpq/hba.c:1409 -#: libpq/hba.c:1417 libpq/hba.c:1429 libpq/hba.c:1450 libpq/hba.c:1463 -#: libpq/hba.c:1488 libpq/hba.c:1515 libpq/hba.c:1527 libpq/hba.c:1586 -#: libpq/hba.c:1606 libpq/hba.c:1620 libpq/hba.c:1640 libpq/hba.c:1651 -#: libpq/hba.c:1666 libpq/hba.c:1685 libpq/hba.c:1701 libpq/hba.c:1713 -#: libpq/hba.c:1750 libpq/hba.c:1791 libpq/hba.c:1804 libpq/hba.c:1826 -#: libpq/hba.c:1838 libpq/hba.c:1856 libpq/hba.c:1906 libpq/hba.c:1950 -#: libpq/hba.c:1961 libpq/hba.c:1977 libpq/hba.c:1994 libpq/hba.c:2005 -#: libpq/hba.c:2024 libpq/hba.c:2040 libpq/hba.c:2056 libpq/hba.c:2115 -#: libpq/hba.c:2132 libpq/hba.c:2145 libpq/hba.c:2157 libpq/hba.c:2176 -#: libpq/hba.c:2262 libpq/hba.c:2280 libpq/hba.c:2374 libpq/hba.c:2393 -#: libpq/hba.c:2422 libpq/hba.c:2435 libpq/hba.c:2458 libpq/hba.c:2480 -#: libpq/hba.c:2494 tsearch/ts_locale.c:243 +#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 +#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 +#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 +#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 +#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 +#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 +#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799 +#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 +#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 +#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 +#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 +#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 +#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 +#: tsearch/ts_locale.c:241 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "línea %d del archivo de configuración «%s»" -#: libpq/hba.c:484 -#, fuzzy, c-format -#| msgid "skipping missing configuration file \"%s\"" +#: libpq/hba.c:457 +#, c-format msgid "skipping missing authentication file \"%s\"" -msgstr "omitiendo el archivo de configuración faltante «%s»" +msgstr "omitiendo el archivo de autentificación faltante «%s»" -#: libpq/hba.c:636 -#, fuzzy, c-format -#| msgid "could not open configuration file \"%s\": maximum nesting depth exceeded" +#: libpq/hba.c:609 +#, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" -msgstr "no se pudo abrir el archivo de configuración «%s»: nivel de anidamiento máximo excedido" +msgstr "no se pudo abrir el archivo «%s»: nivel de anidamiento máximo excedido" -#: libpq/hba.c:1243 +#: libpq/hba.c:1216 #, c-format msgid "error enumerating network interfaces: %m" msgstr "error al enumerar interfaces de red: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1270 +#: libpq/hba.c:1243 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "la opción de autentificación «%s» sólo es válida para los métodos de autentificación %s" -#: libpq/hba.c:1290 +#: libpq/hba.c:1263 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "el método de autentificación «%s» requiere que el argumento «%s» esté definido" -#: libpq/hba.c:1314 -#, fuzzy, c-format -#| msgid "missing \"%s\" at end of SQL expression" +#: libpq/hba.c:1287 +#, c-format msgid "missing entry at end of line" -msgstr "falta «%s» al final de la expresión SQL" +msgstr "falta una entrada al final de la línea" -#: libpq/hba.c:1327 +#: libpq/hba.c:1300 #, c-format msgid "multiple values in ident field" msgstr "múltiples valores en campo «ident»" -#: libpq/hba.c:1379 +#: libpq/hba.c:1352 #, c-format msgid "multiple values specified for connection type" msgstr "múltiples valores especificados para tipo de conexión" -#: libpq/hba.c:1380 +#: libpq/hba.c:1353 #, c-format msgid "Specify exactly one connection type per line." msgstr "Especifique exactamente un tipo de conexión por línea." -#: libpq/hba.c:1407 +#: libpq/hba.c:1380 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "el registro hostssl no puede coincidir porque SSL está deshabilitado" -#: libpq/hba.c:1408 +#: libpq/hba.c:1381 #, c-format -msgid "Set ssl = on in postgresql.conf." +msgid "Set \"ssl = on\" in postgresql.conf." msgstr "Defina «ssl = on» en postgresql.conf." -#: libpq/hba.c:1416 +#: libpq/hba.c:1389 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "el registro hostssl no puede coincidir porque SSL no está soportado en esta instalación" -#: libpq/hba.c:1428 +#: libpq/hba.c:1401 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "el registro hostgssenc no puede coincidir porque GSSAPI no está soportado en esta instalación" -#: libpq/hba.c:1448 +#: libpq/hba.c:1421 #, c-format msgid "invalid connection type \"%s\"" msgstr "tipo de conexión «%s» no válido" -#: libpq/hba.c:1462 +#: libpq/hba.c:1435 #, c-format msgid "end-of-line before database specification" msgstr "fin de línea antes de especificación de base de datos" -#: libpq/hba.c:1487 +#: libpq/hba.c:1460 #, c-format msgid "end-of-line before role specification" msgstr "fin de línea antes de especificación de rol" -#: libpq/hba.c:1514 +#: libpq/hba.c:1487 #, c-format msgid "end-of-line before IP address specification" msgstr "fin de línea antes de especificación de dirección IP" -#: libpq/hba.c:1525 +#: libpq/hba.c:1498 #, c-format msgid "multiple values specified for host address" msgstr "múltiples valores especificados para la dirección de anfitrión" -#: libpq/hba.c:1526 +#: libpq/hba.c:1499 #, c-format msgid "Specify one address range per line." msgstr "Especifique un rango de direcciones por línea." -#: libpq/hba.c:1584 +#: libpq/hba.c:1557 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "dirección IP «%s» no válida: %s" -#: libpq/hba.c:1604 +#: libpq/hba.c:1577 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "especificar tanto el nombre de host como la máscara CIDR no es válido: «%s»" -#: libpq/hba.c:1618 +#: libpq/hba.c:1591 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "máscara CIDR no válida en dirección «%s»" -#: libpq/hba.c:1638 +#: libpq/hba.c:1611 #, c-format msgid "end-of-line before netmask specification" msgstr "fin de línea antes de especificación de máscara de red" -#: libpq/hba.c:1639 +#: libpq/hba.c:1612 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "Especifique un rango de direcciones en notación CIDR, o provea una netmask separadamente." -#: libpq/hba.c:1650 +#: libpq/hba.c:1623 #, c-format msgid "multiple values specified for netmask" msgstr "múltiples valores especificados para la máscara de red" -#: libpq/hba.c:1664 +#: libpq/hba.c:1637 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "máscara IP «%s» no válida: %s" -#: libpq/hba.c:1684 +#: libpq/hba.c:1657 #, c-format msgid "IP address and mask do not match" msgstr "La dirección y máscara IP no coinciden" -#: libpq/hba.c:1700 +#: libpq/hba.c:1673 #, c-format msgid "end-of-line before authentication method" msgstr "fin de línea antes de especificación de método de autentificación" -#: libpq/hba.c:1711 +#: libpq/hba.c:1684 #, c-format msgid "multiple values specified for authentication type" msgstr "múltiples valores especificados para el tipo de autentificación" -#: libpq/hba.c:1712 +#: libpq/hba.c:1685 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Especifique exactamente un tipo de autentificación por línea." -#: libpq/hba.c:1789 +#: libpq/hba.c:1750 #, c-format msgid "invalid authentication method \"%s\"" msgstr "método de autentificación «%s» no válido" -#: libpq/hba.c:1802 +#: libpq/hba.c:1763 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "método de autentificación «%s» no válido: este servidor no lo soporta" -#: libpq/hba.c:1825 +#: libpq/hba.c:1786 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "la autentificación gssapi no está soportada en conexiones locales" -#: libpq/hba.c:1837 +#: libpq/hba.c:1798 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "la autentificación peer sólo está soportada en conexiones locales" -#: libpq/hba.c:1855 +#: libpq/hba.c:1816 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "la autentificación cert sólo está soportada en conexiones hostssl" -#: libpq/hba.c:1905 +#: libpq/hba.c:1866 #, c-format msgid "authentication option not in name=value format: %s" msgstr "opción de autentificación en formato nombre=valor: %s" -#: libpq/hba.c:1949 +#: libpq/hba.c:1910 #, c-format msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" msgstr "no se puede usar ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter o ldapurl junto con ldapprefix" -#: libpq/hba.c:1960 +#: libpq/hba.c:1921 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "el método de autentificación «ldap» requiere que los argumento «ldapbasedn», «ldapprefix» o «ldapsuffix» estén definidos" -#: libpq/hba.c:1976 +#: libpq/hba.c:1937 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "no se puede usar ldapsearchattribute junto con ldapsearchfilter" -#: libpq/hba.c:1993 +#: libpq/hba.c:1954 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "la lista de servidores RADIUS no puede ser vacía" -#: libpq/hba.c:2004 +#: libpq/hba.c:1965 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "la lista de secretos RADIUS no puede ser vacía" -#: libpq/hba.c:2021 +#: libpq/hba.c:1982 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "el número de secretos RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)" -#: libpq/hba.c:2037 +#: libpq/hba.c:1998 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "el número de puertos RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)" -#: libpq/hba.c:2053 +#: libpq/hba.c:2014 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "el número de identificadores RADIUS (%d) debe ser 1 o igual al número de servidores RADIUS (%d)" -#: libpq/hba.c:2105 +#: libpq/hba.c:2066 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi y cert" -#: libpq/hba.c:2114 +#: libpq/hba.c:2075 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert sólo puede ser configurado en líneas «hostssl»" -#: libpq/hba.c:2131 +#: libpq/hba.c:2092 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "clientcert solo acepta «verify-full» cuando se emplea autentificación «cert»" -#: libpq/hba.c:2144 +#: libpq/hba.c:2105 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "valor no válido para el parámetro clientcert: «%s»" -#: libpq/hba.c:2156 +#: libpq/hba.c:2117 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname solo puede ser configurado en líneas «hostssl»" -#: libpq/hba.c:2175 +#: libpq/hba.c:2136 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "valor no válido para el parámetro clientname: «%s»" -#: libpq/hba.c:2208 +#: libpq/hba.c:2169 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "no se pudo interpretar la URL LDAP «%s»: %s" -#: libpq/hba.c:2219 +#: libpq/hba.c:2180 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "esquema de URL LDAP no soportado: %s" -#: libpq/hba.c:2243 +#: libpq/hba.c:2204 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "las URLs LDAP no está soportado en esta plataforma" -#: libpq/hba.c:2261 +#: libpq/hba.c:2222 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "valor ldapscheme no válido: «%s»" -#: libpq/hba.c:2279 +#: libpq/hba.c:2240 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "número de puerto LDAP no válido: «%s»" -#: libpq/hba.c:2325 libpq/hba.c:2332 +#: libpq/hba.c:2286 libpq/hba.c:2293 msgid "gssapi and sspi" msgstr "gssapi y sspi" -#: libpq/hba.c:2341 libpq/hba.c:2350 +#: libpq/hba.c:2302 libpq/hba.c:2311 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2372 +#: libpq/hba.c:2333 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "no se pudo interpretar la lista de servidores RADIUS «%s»" -#: libpq/hba.c:2420 +#: libpq/hba.c:2381 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "no se pudo interpretar la lista de port RADIUS «%s»" -#: libpq/hba.c:2434 +#: libpq/hba.c:2395 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "número de puerto RADIUS no válido: «%s»" -#: libpq/hba.c:2456 +#: libpq/hba.c:2417 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "no se pudo interpretar la lista de secretos RADIUS «%s»" -#: libpq/hba.c:2478 +#: libpq/hba.c:2439 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "no se pudo interpretar la lista de identificadores RADIUS «%s»" -#: libpq/hba.c:2492 +#: libpq/hba.c:2453 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "nombre de opción de autentificación desconocido: «%s»" -#: libpq/hba.c:2684 +#: libpq/hba.c:2645 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "el archivo de configuración «%s» no contiene líneas" -#: libpq/hba.c:2838 +#: libpq/hba.c:2798 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "la coincidencia de expresión regular para «%s» falló: %s" -#: libpq/hba.c:2862 +#: libpq/hba.c:2822 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "la expresión regular «%s» no tiene subexpresiones según lo requiere la referencia hacia atrás en «%s»" -#: libpq/hba.c:2965 +#: libpq/hba.c:2925 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "el nombre de usuario entregado (%s) y el nombre de usuario autentificado (%s) no coinciden" -#: libpq/hba.c:2985 +#: libpq/hba.c:2945 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "no hay coincidencia en el mapa «%s» para el usuario «%s» autentificado como «%s»" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 +#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 +#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 +#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#, c-format +msgid "%s(%s) failed: %m" +msgstr "%s(%s) falló: %m" + +#: libpq/pqcomm.c:296 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "no se pudo establecer el socket en modo no bloqueante: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:456 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "la ruta al socket de dominio Unix «%s» es demasiado larga (máximo %d bytes)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:476 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "no se pudo traducir el nombre de host «%s», servicio «%s» a dirección: %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:480 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "no se pudo traducir el servicio «%s» a dirección: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:502 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "no se pudo enlazar a todas las direcciones pedidas: MAXLISTEN (%d) fue excedido" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:511 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:514 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:517 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:521 #, c-format msgid "unrecognized address family %d" msgstr "la familia de direcciones %d no reconocida" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:545 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "no se pudo crear el socket %s de escucha para la dirección «%s»: %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) falló para la dirección %s «%s»: %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:615 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "no se pudo enlazar a la dirección %s «%s»: %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:619 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "¿Hay otro postmaster en ejecución en el puerto %d?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:621 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "¿Hay otro postmaster en ejecución en el puerto %d? Si no, aguarde unos segundos y reintente." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:650 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "no se pudo escuchar en la dirección %s «%s»: %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:658 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "escuchando en el socket Unix «%s»" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:663 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "escuchando en la dirección %s «%s», port %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:753 #, c-format msgid "group \"%s\" does not exist" msgstr "no existe el grupo «%s»" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:763 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "no se pudo definir el grupo del archivo «%s»: %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:774 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "no se pudo definir los permisos del archivo «%s»: %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:803 #, c-format msgid "could not accept new connection: %m" msgstr "no se pudo aceptar una nueva conexión: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1624 libpq/pqcomm.c:1669 libpq/pqcomm.c:1709 -#: libpq/pqcomm.c:1753 libpq/pqcomm.c:1792 libpq/pqcomm.c:1831 -#: libpq/pqcomm.c:1867 libpq/pqcomm.c:1906 -#, c-format -msgid "%s(%s) failed: %m" -msgstr "%s(%s) falló: %m" - -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:885 #, c-format msgid "there is no client connection" msgstr "no hay conexión de cliente" -#: libpq/pqcomm.c:954 libpq/pqcomm.c:1050 +#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 #, c-format msgid "could not receive data from client: %m" msgstr "no se pudo recibir datos del cliente: %m" -#: libpq/pqcomm.c:1155 tcop/postgres.c:4403 +#: libpq/pqcomm.c:1149 tcop/postgres.c:4533 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "terminando la conexión por pérdida de sincronía del protocolo" -#: libpq/pqcomm.c:1221 +#: libpq/pqcomm.c:1215 #, c-format msgid "unexpected EOF within message length word" msgstr "EOF inesperado dentro de la palabra de tamaño del mensaje" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1225 #, c-format msgid "invalid message length" msgstr "el largo de mensaje no es válido" -#: libpq/pqcomm.c:1253 libpq/pqcomm.c:1266 +#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 #, c-format msgid "incomplete message from client" msgstr "mensaje incompleto del cliente" -#: libpq/pqcomm.c:1377 +#: libpq/pqcomm.c:1401 #, c-format msgid "could not send data to client: %m" msgstr "no se pudo enviar datos al cliente: %m" -#: libpq/pqcomm.c:1592 +#: libpq/pqcomm.c:1616 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) falló: código de error %d" -#: libpq/pqcomm.c:1681 +#: libpq/pqcomm.c:1705 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "establecer el tiempo de inactividad para keepalive no está soportado" -#: libpq/pqcomm.c:1765 libpq/pqcomm.c:1840 libpq/pqcomm.c:1915 +#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) no está soportado" -#: libpq/pqformat.c:407 +#: libpq/pqformat.c:404 #, c-format msgid "no data left in message" msgstr "no hay datos restantes en el mensaje" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1506 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 +#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 +#: utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "los datos restantes del mensaje son insuficientes" -#: libpq/pqformat.c:598 libpq/pqformat.c:627 +#: libpq/pqformat.c:595 libpq/pqformat.c:624 #, c-format msgid "invalid string in message" msgstr "cadena no válida en el mensaje" -#: libpq/pqformat.c:643 +#: libpq/pqformat.c:640 #, c-format msgid "invalid message format" msgstr "formato de mensaje no válido" -#: main/main.c:235 +#: main/main.c:236 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: WSAStartup falló: %d\n" -#: main/main.c:329 +#: main/main.c:324 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -15745,7 +16028,7 @@ msgstr "" "%s es el servidor PostgreSQL.\n" "\n" -#: main/main.c:330 +#: main/main.c:325 #, c-format msgid "" "Usage:\n" @@ -15756,110 +16039,109 @@ msgstr "" " %s [OPCION]...\n" "\n" -#: main/main.c:331 +#: main/main.c:326 #, c-format msgid "Options:\n" msgstr "Opciones:\n" -#: main/main.c:332 +#: main/main.c:327 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS número de búfers de memoria compartida\n" -#: main/main.c:333 +#: main/main.c:328 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c VAR=VALOR definir parámetro de ejecución\n" -#: main/main.c:334 +#: main/main.c:329 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NOMBRE imprimir valor de parámetro de configuración, luego salir\n" -#: main/main.c:335 +#: main/main.c:330 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 nivel de depuración\n" -#: main/main.c:336 +#: main/main.c:331 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR directorio de bases de datos\n" -#: main/main.c:337 +#: main/main.c:332 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e usar estilo europeo de fechas (DMY)\n" -#: main/main.c:338 +#: main/main.c:333 #, c-format msgid " -F turn fsync off\n" msgstr " -F desactivar fsync\n" -#: main/main.c:339 +#: main/main.c:334 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h NOMBRE nombre de host o dirección IP en que escuchar\n" -#: main/main.c:340 -#, fuzzy, c-format -#| msgid " -l enable SSL connections\n" +#: main/main.c:335 +#, c-format msgid " -i enable TCP/IP connections (deprecated)\n" -msgstr " -l activar conexiones SSL\n" +msgstr " -i activar conexiones TCP/IP (obsoleto)\n" -#: main/main.c:341 +#: main/main.c:336 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k DIRECTORIO ubicación del socket Unix\n" -#: main/main.c:343 +#: main/main.c:338 #, c-format msgid " -l enable SSL connections\n" msgstr " -l activar conexiones SSL\n" -#: main/main.c:345 +#: main/main.c:340 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-CONN número máximo de conexiones permitidas\n" -#: main/main.c:346 +#: main/main.c:341 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PUERTO número de puerto en el cual escuchar\n" -#: main/main.c:347 +#: main/main.c:342 #, c-format msgid " -s show statistics after each query\n" msgstr " -s mostrar estadísticas después de cada consulta\n" -#: main/main.c:348 +#: main/main.c:343 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM definir cantidad de memoria para ordenamientos (en kB)\n" -#: main/main.c:349 +#: main/main.c:344 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de la versión, luego salir\n" -#: main/main.c:350 +#: main/main.c:345 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NOMBRE=VALOR definir parámetro de ejecución\n" -#: main/main.c:351 +#: main/main.c:346 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr "" " --describe-config\n" " mostrar parámetros de configuración y salir\n" -#: main/main.c:352 +#: main/main.c:347 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help muestra esta ayuda, luego sale\n" -#: main/main.c:354 +#: main/main.c:349 #, c-format msgid "" "\n" @@ -15868,38 +16150,37 @@ msgstr "" "\n" "Opciones de desarrollador:\n" -#: main/main.c:355 +#: main/main.c:350 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" -msgstr "" +msgstr " -f s|i|o|b|t|n|m|h impedir el uso de algunos tipos de planes\n" -#: main/main.c:356 +#: main/main.c:351 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O permitir cambios en estructura de tablas de sistema\n" -#: main/main.c:357 +#: main/main.c:352 #, c-format msgid " -P disable system indexes\n" msgstr " -P desactivar índices de sistema\n" -#: main/main.c:358 +#: main/main.c:353 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex mostrar tiempos después de cada consulta\n" -#: main/main.c:359 -#, fuzzy, c-format -#| msgid " -P disable system indexes\n" +#: main/main.c:354 +#, c-format msgid " -T send SIGABRT to all backend processes if one dies\n" -msgstr " -P desactivar índices de sistema\n" +msgstr " -T enviar SIGABRT a todos los procesos backend si uno muere\n" -#: main/main.c:360 +#: main/main.c:355 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W NÚM espera NÚM segundos para permitir acoplar un depurador\n" -#: main/main.c:362 +#: main/main.c:357 #, c-format msgid "" "\n" @@ -15908,37 +16189,37 @@ msgstr "" "\n" "Opciones para modo mono-usuario:\n" -#: main/main.c:363 +#: main/main.c:358 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr " --single selecciona modo mono-usuario (debe ser el primer argumento)\n" -#: main/main.c:364 +#: main/main.c:359 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME nombre de base de datos (el valor por omisión es el nombre de usuario)\n" -#: main/main.c:365 +#: main/main.c:360 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 nivel de depuración\n" -#: main/main.c:366 +#: main/main.c:361 #, c-format msgid " -E echo statement before execution\n" msgstr " -E mostrar las consultas antes de su ejecución\n" -#: main/main.c:367 +#: main/main.c:362 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j no usar saltos de línea como delimitadores de consulta\n" -#: main/main.c:368 main/main.c:374 +#: main/main.c:363 main/main.c:369 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r ARCHIVO enviar salida estándar y de error a ARCHIVO\n" -#: main/main.c:370 +#: main/main.c:365 #, c-format msgid "" "\n" @@ -15947,23 +16228,22 @@ msgstr "" "\n" "Opciones para modo de inicio (bootstrapping):\n" -#: main/main.c:371 +#: main/main.c:366 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot selecciona modo de inicio (debe ser el primer argumento)\n" -#: main/main.c:372 -#, fuzzy, c-format -#| msgid " --single selects single-user mode (must be first argument)\n" +#: main/main.c:367 +#, c-format msgid " --check selects check mode (must be first argument)\n" -msgstr " --single selecciona modo mono-usuario (debe ser el primer argumento)\n" +msgstr " --check selecciona modo de verificación (debe ser el primer argumento)\n" -#: main/main.c:373 +#: main/main.c:368 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAME nombre de base de datos (argumento obligatorio en modo de inicio)\n" -#: main/main.c:376 +#: main/main.c:371 #, c-format msgid "" "\n" @@ -15980,12 +16260,12 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: main/main.c:380 +#: main/main.c:375 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: main/main.c:391 +#: main/main.c:386 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -15999,12 +16279,12 @@ msgstr "" "Vea la documentación para obtener más información acerca de cómo\n" "iniciar correctamente el servidor.\n" -#: main/main.c:408 +#: main/main.c:403 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: los IDs de usuario real y efectivo deben coincidir\n" -#: main/main.c:415 +#: main/main.c:410 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -16029,21 +16309,15 @@ msgstr "el tipo de nodo extensible «%s» ya existe" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods «%s» no fue registrado" -#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 +#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "la relación «%s» no tiene un tipo compuesto" -#: nodes/makefuncs.c:878 -#, fuzzy, c-format -#| msgid "unrecognized encoding: \"%s\"" -msgid "unrecognized JSON encoding: %s" -msgstr "no se reconoce la codificación: «%s»" - -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 -#: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2604 +#: parser/parse_coerce.c:2742 parser/parse_coerce.c:2789 +#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "no se pudo encontrar un tipo de array para el tipo de dato %s" @@ -16058,938 +16332,936 @@ msgstr "portal «%s» con parámetros: %s" msgid "unnamed portal with parameters: %s" msgstr "portal sin nombre con parámetros: %s" -#: optimizer/path/joinrels.c:973 +#: optimizer/path/joinrels.c:972 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN sólo está soportado con condiciones que se pueden usar con merge join o hash join" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 -#, fuzzy, c-format -#| msgid "cannot change relation \"%s\"" +#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203 +#: rewrite/rewriteHandler.c:1680 +#, c-format msgid "cannot execute MERGE on relation \"%s\"" -msgstr "no se puede cambiar la relación «%s»" +msgstr "no se puede ejecutar MERGE en la relación «%s»" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1392 +#: optimizer/plan/initsplan.c:1407 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s no puede ser aplicado al lado nulable de un outer join" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1359 parser/analyze.c:1723 parser/analyze.c:1980 -#: parser/analyze.c:3193 +#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 +#: parser/analyze.c:3247 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s no está permitido con UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2080 optimizer/plan/planner.c:4038 +#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4108 #, c-format msgid "could not implement GROUP BY" msgstr "no se pudo implementar GROUP BY" -#: optimizer/plan/planner.c:2081 optimizer/plan/planner.c:4039 -#: optimizer/plan/planner.c:4679 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4109 +#: optimizer/plan/planner.c:4790 optimizer/prep/prepunion.c:1320 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Algunos de los tipos sólo soportan hashing, mientras que otros sólo soportan ordenamiento." -#: optimizer/plan/planner.c:4678 +#: optimizer/plan/planner.c:4789 #, c-format msgid "could not implement DISTINCT" msgstr "no se pudo implementar DISTINCT" -#: optimizer/plan/planner.c:6017 +#: optimizer/plan/planner.c:6134 #, c-format msgid "could not implement window PARTITION BY" msgstr "No se pudo implementar PARTITION BY de ventana" -#: optimizer/plan/planner.c:6018 +#: optimizer/plan/planner.c:6135 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Las columnas de particionamiento de ventana deben de tipos que se puedan ordenar." -#: optimizer/plan/planner.c:6022 +#: optimizer/plan/planner.c:6139 #, c-format msgid "could not implement window ORDER BY" msgstr "no se pudo implementar ORDER BY de ventana" -#: optimizer/plan/planner.c:6023 +#: optimizer/plan/planner.c:6140 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Las columnas de ordenamiento de ventana debe ser de tipos que se puedan ordenar." -#: optimizer/prep/prepunion.c:516 +#: optimizer/prep/prepunion.c:467 #, c-format msgid "could not implement recursive UNION" msgstr "no se pudo implementar UNION recursivo" -#: optimizer/prep/prepunion.c:517 +#: optimizer/prep/prepunion.c:468 #, c-format msgid "All column datatypes must be hashable." msgstr "Todos los tipos de dato de las columnas deben ser tipos de los que se puedan hacer un hash." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1052 +#: optimizer/prep/prepunion.c:1319 #, c-format msgid "could not implement %s" msgstr "no se pudo implementar %s" -#: optimizer/util/clauses.c:4869 +#: optimizer/util/clauses.c:4963 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "función SQL «%s», durante expansión en línea" -#: optimizer/util/plancat.c:154 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "no se puede acceder a tablas temporales o «unlogged» durante la recuperación" -#: optimizer/util/plancat.c:726 +#: optimizer/util/plancat.c:768 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "no están soportadas las especificaciones de inferencia de índice único de registro completo" -#: optimizer/util/plancat.c:743 +#: optimizer/util/plancat.c:785 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "la restricción en la cláusula ON CONFLICT no tiene un índice asociado" -#: optimizer/util/plancat.c:793 +#: optimizer/util/plancat.c:835 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE no está soportado con restricciones de exclusión" -#: optimizer/util/plancat.c:898 +#: optimizer/util/plancat.c:945 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "no hay restricción única o de exclusión que coincida con la especificación ON CONFLICT" -#: parser/analyze.c:788 parser/analyze.c:1502 +#: parser/analyze.c:824 parser/analyze.c:1550 #, c-format msgid "VALUES lists must all be the same length" msgstr "las listas VALUES deben ser todas de la misma longitud" -#: parser/analyze.c:990 +#: parser/analyze.c:1027 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT tiene más expresiones que columnas de destino" -#: parser/analyze.c:1008 +#: parser/analyze.c:1045 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT tiene más columnas de destino que expresiones" -#: parser/analyze.c:1012 +#: parser/analyze.c:1049 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "La fuente de inserción es una expresión de fila que contiene la misma cantidad de columnas que esperaba el INSERT. ¿Usó accidentalmente paréntesis extra?" -#: parser/analyze.c:1309 parser/analyze.c:1696 +#: parser/analyze.c:1357 parser/analyze.c:1744 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO no está permitido aquí" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1625 parser/analyze.c:3425 +#: parser/analyze.c:1673 parser/analyze.c:3479 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s no puede ser aplicado a VALUES" -#: parser/analyze.c:1862 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "cláusula UNION/INTERSECT/EXCEPT ORDER BY no válida" -#: parser/analyze.c:1863 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Sólo nombres de columna del resultado pueden usarse, no expresiones o funciones." -#: parser/analyze.c:1864 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Agregue la función o expresión a todos los SELECT, o mueva el UNION dentro de una cláusula FROM." -#: parser/analyze.c:1970 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "sólo se permite INTO en el primer SELECT de UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2042 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "una sentencia miembro de UNION/INSERT/EXCEPT no puede referirse a otras relaciones del mismo nivel de la consulta" -#: parser/analyze.c:2129 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "cada consulta %s debe tener el mismo número de columnas" #: parser/analyze.c:2535 #, c-format +msgid "SET target columns cannot be qualified with the relation name." +msgstr "Las columnas de destino SET no pueden ser calificadas con el nombre de relación." + +#: parser/analyze.c:2589 +#, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING debe tener al menos una columna" -#: parser/analyze.c:2638 +#: parser/analyze.c:2692 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "fuente de asignación retornó %d columna" msgstr[1] "fuente de asignación retornó %d columnas" -#: parser/analyze.c:2699 +#: parser/analyze.c:2753 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "la variable «%s» es de tipo %s pero la expresión es de tipo %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2824 parser/analyze.c:2832 +#: parser/analyze.c:2878 parser/analyze.c:2886 #, c-format msgid "cannot specify both %s and %s" msgstr "no se puede especificar %s junto con %s" -#: parser/analyze.c:2852 +#: parser/analyze.c:2906 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR no debe contener sentencias que modifiquen datos en WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2860 +#: parser/analyze.c:2914 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s no está soportado" -#: parser/analyze.c:2863 +#: parser/analyze.c:2917 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Los cursores declarados HOLD deben ser READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2871 +#: parser/analyze.c:2925 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s no está soportado" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2882 +#: parser/analyze.c:2936 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s no es válido" -#: parser/analyze.c:2885 +#: parser/analyze.c:2939 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Los cursores insensitivos deben ser READ ONLY." -#: parser/analyze.c:2979 +#: parser/analyze.c:3033 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "las vistas materializadas no deben usar sentencias que modifiquen datos en WITH" -#: parser/analyze.c:2989 +#: parser/analyze.c:3043 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "las vistas materializadas no deben usar tablas temporales o vistas" -#: parser/analyze.c:2999 +#: parser/analyze.c:3053 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "las vistas materializadas no pueden definirse usando parámetros enlazados" -#: parser/analyze.c:3011 +#: parser/analyze.c:3065 #, c-format msgid "materialized views cannot be unlogged" msgstr "las vistas materializadas no pueden ser «unlogged»" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3200 +#: parser/analyze.c:3254 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s no está permitido con cláusulas DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3207 +#: parser/analyze.c:3261 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s no está permitido con cláusulas GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3214 +#: parser/analyze.c:3268 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s no está permitido con cláusulas HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3221 +#: parser/analyze.c:3275 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s no está permitido con funciones de agregación" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3228 +#: parser/analyze.c:3282 #, c-format msgid "%s is not allowed with window functions" msgstr "%s no está permitido con funciones de ventana deslizante" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3235 +#: parser/analyze.c:3289 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s no está permitido con funciones que retornan conjuntos en la lista de resultados" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3334 +#: parser/analyze.c:3388 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s debe especificar nombres de relaciones sin calificar" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3398 +#: parser/analyze.c:3452 #, c-format msgid "%s cannot be applied to a join" msgstr "%s no puede ser aplicado a un join" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3407 +#: parser/analyze.c:3461 #, c-format msgid "%s cannot be applied to a function" msgstr "%s no puede ser aplicado a una función" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3416 +#: parser/analyze.c:3470 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s no puede ser aplicado a una función de tabla" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3434 +#: parser/analyze.c:3488 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s no puede ser aplicado a una consulta WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3443 +#: parser/analyze.c:3497 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s no puede ser aplicado a un «tuplestore» con nombre" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3463 +#: parser/analyze.c:3517 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "la relación «%s» en la cláusula %s no fue encontrada en la cláusula FROM" -#: parser/parse_agg.c:221 parser/parse_oper.c:227 +#: parser/parse_agg.c:210 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "no se pudo identificar un operador de ordenamiento para el tipo %s" -#: parser/parse_agg.c:223 +#: parser/parse_agg.c:212 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Las funciones de agregación con DISTINCT deben ser capaces de ordenar sus valores de entrada." -#: parser/parse_agg.c:258 +#: parser/parse_agg.c:270 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING debe tener menos de 32 argumentos" -#: parser/parse_agg.c:361 +#: parser/parse_agg.c:373 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "no se permiten funciones de agregación en las condiciones de JOIN" -#: parser/parse_agg.c:363 +#: parser/parse_agg.c:375 msgid "grouping operations are not allowed in JOIN conditions" msgstr "no se permiten las operaciones «grouping» en condiciones JOIN" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:385 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "las funciones de agregación no están permitidas en la cláusula FROM de su mismo nivel de consulta" -#: parser/parse_agg.c:377 +#: parser/parse_agg.c:387 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "las operaciones «grouping» no están permitidas en la cláusula FROM de su mismo nivel de consulta" -#: parser/parse_agg.c:382 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "no se permiten funciones de agregación en una función en FROM" -#: parser/parse_agg.c:384 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "no se permiten operaciones «grouping» en funciones en FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "no se permiten funciones de agregación en expresiones de políticas" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "no se permiten operaciones «grouping» en expresiones de políticas" -#: parser/parse_agg.c:411 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "no se permiten funciones de agregación en RANGE de ventana deslizante" -#: parser/parse_agg.c:413 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "no se permiten operaciones «grouping» en RANGE de ventana deslizante" -#: parser/parse_agg.c:418 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "no se permiten funciones de agregación en ROWS de ventana deslizante" -#: parser/parse_agg.c:420 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "no se permiten operaciones «grouping» en ROWS de ventana deslizante" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "no se permiten funciones de agregación en GROUPS de ventana deslizante" -#: parser/parse_agg.c:427 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "no se permiten operaciones «grouping» en GROUPS de ventana deslizante" -#: parser/parse_agg.c:440 -#, fuzzy -#| msgid "aggregate functions are not allowed in trigger WHEN conditions" +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" -msgstr "no se permiten funciones de agregación en condición WHEN de un disparador" +msgstr "no se permiten funciones de agregación en condiciones MERGE WHEN" -#: parser/parse_agg.c:442 -#, fuzzy -#| msgid "grouping operations are not allowed in trigger WHEN conditions" +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" -msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un disparador" +msgstr "no se permiten operaciones «grouping» en condiciones MERGE WHEN" -#: parser/parse_agg.c:468 +#: parser/parse_agg.c:479 msgid "aggregate functions are not allowed in check constraints" msgstr "no se permiten funciones de agregación en restricciones «check»" -#: parser/parse_agg.c:470 +#: parser/parse_agg.c:481 msgid "grouping operations are not allowed in check constraints" msgstr "no se permiten operaciones «grouping» en restricciones «check»" -#: parser/parse_agg.c:477 +#: parser/parse_agg.c:488 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "no se permiten funciones de agregación en expresiones DEFAULT" -#: parser/parse_agg.c:479 +#: parser/parse_agg.c:490 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "no se permiten operaciones «grouping» en expresiones DEFAULT" -#: parser/parse_agg.c:484 +#: parser/parse_agg.c:495 msgid "aggregate functions are not allowed in index expressions" msgstr "no se permiten funciones de agregación en una expresión de índice" -#: parser/parse_agg.c:486 +#: parser/parse_agg.c:497 msgid "grouping operations are not allowed in index expressions" msgstr "no se permiten operaciones «grouping» en expresiones de índice" -#: parser/parse_agg.c:491 +#: parser/parse_agg.c:502 msgid "aggregate functions are not allowed in index predicates" msgstr "no se permiten funciones de agregación en predicados de índice" -#: parser/parse_agg.c:493 +#: parser/parse_agg.c:504 msgid "grouping operations are not allowed in index predicates" msgstr "no se permiten operaciones «grouping» en predicados de índice" -#: parser/parse_agg.c:498 +#: parser/parse_agg.c:509 msgid "aggregate functions are not allowed in statistics expressions" msgstr "no se permiten funciones de agregación en expresiones de estadísticas" -#: parser/parse_agg.c:500 +#: parser/parse_agg.c:511 msgid "grouping operations are not allowed in statistics expressions" msgstr "no se permiten operaciones «grouping» en expresiones de estadísticas" -#: parser/parse_agg.c:505 +#: parser/parse_agg.c:516 msgid "aggregate functions are not allowed in transform expressions" msgstr "no se permiten funciones de agregación en una expresión de transformación" -#: parser/parse_agg.c:507 +#: parser/parse_agg.c:518 msgid "grouping operations are not allowed in transform expressions" msgstr "no se permiten operaciones «grouping» en expresiones de transformación" -#: parser/parse_agg.c:512 +#: parser/parse_agg.c:523 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "no se permiten funciones de agregación en un parámetro a EXECUTE" -#: parser/parse_agg.c:514 +#: parser/parse_agg.c:525 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "no se permiten operaciones «grouping» en parámetros a EXECUTE" -#: parser/parse_agg.c:519 +#: parser/parse_agg.c:530 msgid "aggregate functions are not allowed in trigger WHEN conditions" -msgstr "no se permiten funciones de agregación en condición WHEN de un disparador" +msgstr "no se permiten funciones de agregación en condición WHEN de un “trigger”" -#: parser/parse_agg.c:521 +#: parser/parse_agg.c:532 msgid "grouping operations are not allowed in trigger WHEN conditions" -msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un disparador" +msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un “trigger”" -#: parser/parse_agg.c:526 +#: parser/parse_agg.c:537 msgid "aggregate functions are not allowed in partition bound" msgstr "no se permiten funciones de agregación en borde de partición" -#: parser/parse_agg.c:528 +#: parser/parse_agg.c:539 msgid "grouping operations are not allowed in partition bound" msgstr "no se permiten operaciones «grouping» en borde de partición" -#: parser/parse_agg.c:533 +#: parser/parse_agg.c:544 msgid "aggregate functions are not allowed in partition key expressions" msgstr "no se permiten funciones de agregación en una expresión de llave de particionamiento" -#: parser/parse_agg.c:535 +#: parser/parse_agg.c:546 msgid "grouping operations are not allowed in partition key expressions" msgstr "no se permiten operaciones «grouping» en expresiones de llave de particionamiento" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:552 msgid "aggregate functions are not allowed in column generation expressions" msgstr "no se permiten funciones de agregación en expresiones de generación de columna" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:554 msgid "grouping operations are not allowed in column generation expressions" msgstr "no se permiten operaciones «grouping» en expresiones de generación de columna" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:560 msgid "aggregate functions are not allowed in CALL arguments" msgstr "no se permiten funciones de agregación en argumentos de CALL" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:562 msgid "grouping operations are not allowed in CALL arguments" msgstr "no se permiten operaciones «grouping» en argumentos de CALL" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:568 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten funciones de agregación en las condiciones WHERE de COPY FROM" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:570 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten las operaciones «grouping» en condiciones WHERE de COPY FROM" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:586 parser/parse_clause.c:1955 +#: parser/parse_agg.c:597 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "no se permiten funciones de agregación en %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:589 +#: parser/parse_agg.c:600 #, c-format msgid "grouping operations are not allowed in %s" msgstr "no se permiten operaciones «grouping» en %s" -#: parser/parse_agg.c:690 +#: parser/parse_agg.c:701 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "una función de agregación de nivel exterior no puede contener una variable de nivel inferior en sus argumentos directos" -#: parser/parse_agg.c:768 +#: parser/parse_agg.c:779 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones que retornan conjuntos" -#: parser/parse_agg.c:769 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245 +#: parser/parse_func.c:885 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Puede intentar mover la función que retorna conjuntos a un elemento LATERAL FROM." -#: parser/parse_agg.c:774 +#: parser/parse_agg.c:785 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones de ventana deslizante" -#: parser/parse_agg.c:853 +#: parser/parse_agg.c:864 msgid "window functions are not allowed in JOIN conditions" msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN" -#: parser/parse_agg.c:860 +#: parser/parse_agg.c:871 msgid "window functions are not allowed in functions in FROM" msgstr "no se permiten funciones de ventana deslizante en funciones en FROM" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:877 msgid "window functions are not allowed in policy expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de políticas" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:890 msgid "window functions are not allowed in window definitions" msgstr "no se permiten funciones de ventana deslizante en definiciones de ventana deslizante" -#: parser/parse_agg.c:890 -#, fuzzy -#| msgid "window functions are not allowed in trigger WHEN conditions" +#: parser/parse_agg.c:901 msgid "window functions are not allowed in MERGE WHEN conditions" -msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador" +msgstr "no se permiten funciones de ventana deslizante en condiciones MERGE WHEN" -#: parser/parse_agg.c:914 +#: parser/parse_agg.c:926 msgid "window functions are not allowed in check constraints" msgstr "no se permiten funciones de ventana deslizante en restricciones «check»" -#: parser/parse_agg.c:918 +#: parser/parse_agg.c:930 msgid "window functions are not allowed in DEFAULT expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT" -#: parser/parse_agg.c:921 +#: parser/parse_agg.c:933 msgid "window functions are not allowed in index expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de índice" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:936 msgid "window functions are not allowed in statistics expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de estadísticas" -#: parser/parse_agg.c:927 +#: parser/parse_agg.c:939 msgid "window functions are not allowed in index predicates" msgstr "no se permiten funciones de ventana deslizante en predicados de índice" -#: parser/parse_agg.c:930 +#: parser/parse_agg.c:942 msgid "window functions are not allowed in transform expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de transformación" -#: parser/parse_agg.c:933 +#: parser/parse_agg.c:945 msgid "window functions are not allowed in EXECUTE parameters" msgstr "no se permiten funciones de ventana deslizante en parámetros a EXECUTE" -#: parser/parse_agg.c:936 +#: parser/parse_agg.c:948 msgid "window functions are not allowed in trigger WHEN conditions" -msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador" +msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un “trigger”" -#: parser/parse_agg.c:939 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in partition bound" msgstr "no se permiten funciones de ventana deslizante en borde de partición" -#: parser/parse_agg.c:942 +#: parser/parse_agg.c:954 msgid "window functions are not allowed in partition key expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de llave de particionamiento" -#: parser/parse_agg.c:945 +#: parser/parse_agg.c:957 msgid "window functions are not allowed in CALL arguments" msgstr "no se permiten funciones de ventana deslizante en argumentos de CALL" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:960 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten funciones de ventana deslizante en las condiciones WHERE de COPY FROM" -#: parser/parse_agg.c:951 +#: parser/parse_agg.c:963 msgid "window functions are not allowed in column generation expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de generación de columna" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:974 parser/parse_clause.c:1964 +#: parser/parse_agg.c:986 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "no se permiten funciones de ventana deslizante en %s" -#: parser/parse_agg.c:1008 parser/parse_clause.c:2797 +#: parser/parse_agg.c:1020 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "la ventana «%s» no existe" -#: parser/parse_agg.c:1096 +#: parser/parse_agg.c:1108 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "demasiados conjuntos «grouping» presentes (máximo 4096)" -#: parser/parse_agg.c:1236 +#: parser/parse_agg.c:1248 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "no se permiten funciones de agregación en el término recursivo de una consulta recursiva" -#: parser/parse_agg.c:1429 +#: parser/parse_agg.c:1441 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "la columna «%s.%s» debe aparecer en la cláusula GROUP BY o ser usada en una función de agregación" -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1444 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Argumentos directos de una función de agregación de conjuntos ordenados debe usar sólo columnas agrupadas." -#: parser/parse_agg.c:1437 +#: parser/parse_agg.c:1449 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "la subconsulta usa la columna «%s.%s» no agrupada de una consulta exterior" -#: parser/parse_agg.c:1601 +#: parser/parse_agg.c:1613 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "los argumentos de GROUPING deben ser expresiones agrupantes del nivel de consulta asociado" -#: parser/parse_clause.c:195 +#: parser/parse_clause.c:193 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "relación «%s» no puede ser destino de una sentencia modificadora" -#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 +#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "las funciones que retornan conjuntos deben aparecer en el nivel más externo del FROM" -#: parser/parse_clause.c:611 +#: parser/parse_clause.c:609 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "no se permiten múltiples definiciones de columnas para la misma función" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:642 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "ROWS FROM() con varias funciones no puede tener una lista de definición de columnas" -#: parser/parse_clause.c:645 +#: parser/parse_clause.c:643 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "Ponga una lista de columnas separada para cada función dentro de ROWS FROM()." -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:649 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "UNNEST() con varios argumentos no puede tener una lista de definición de columnas" -#: parser/parse_clause.c:652 +#: parser/parse_clause.c:650 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "Use llamadas a UNNEST() separadas dentro de ROWS FROM() y adjunte una lista de columnas a cada una." -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:657 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY no puede usarse con una lista de definición de columnas" -#: parser/parse_clause.c:660 +#: parser/parse_clause.c:658 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "Ponga una lista de columnas dentro de ROWS FROM()." -#: parser/parse_clause.c:760 +#: parser/parse_clause.c:762 parser/parse_jsontable.c:295 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "sólo se permite una columna FOR ORDINALITY" -#: parser/parse_clause.c:821 +#: parser/parse_clause.c:823 #, c-format msgid "column name \"%s\" is not unique" msgstr "el nombre de columna «%s» no es único" -#: parser/parse_clause.c:863 +#: parser/parse_clause.c:865 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "el espacio de nombres «%s» no es único" -#: parser/parse_clause.c:873 +#: parser/parse_clause.c:875 #, c-format msgid "only one default namespace is allowed" msgstr "sólo se permite un espacio de nombres predeterminado" -#: parser/parse_clause.c:933 +#: parser/parse_clause.c:935 #, c-format msgid "tablesample method %s does not exist" msgstr "no existe el método de tablesample «%s»" -#: parser/parse_clause.c:955 +#: parser/parse_clause.c:957 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" msgstr[0] "el método de tablesample «%s» requiere %d argumento, no %d" msgstr[1] "el método de tablesample «%s» requiere %d argumentos, no %d" -#: parser/parse_clause.c:989 +#: parser/parse_clause.c:991 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "el método de tablesample «%s» no soporta la opción REPEATABLE" -#: parser/parse_clause.c:1138 +#: parser/parse_clause.c:1144 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "la cláusula TABLESAMPLE sólo puede aplicarse a tablas y vistas materializadas" -#: parser/parse_clause.c:1325 +#: parser/parse_clause.c:1331 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "la columna «%s» aparece más de una vez en la cláusula USING" -#: parser/parse_clause.c:1340 +#: parser/parse_clause.c:1346 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "la columna común «%s» aparece más de una vez en la tabla izquierda" -#: parser/parse_clause.c:1349 +#: parser/parse_clause.c:1355 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "la columna «%s» especificada en la cláusula USING no existe en la tabla izquierda" -#: parser/parse_clause.c:1364 +#: parser/parse_clause.c:1370 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "la columna común «%s» aparece más de una vez en la tabla derecha" -#: parser/parse_clause.c:1373 +#: parser/parse_clause.c:1379 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "la columna «%s» especificada en la cláusula USING no existe en la tabla derecha" -#: parser/parse_clause.c:1900 +#: parser/parse_clause.c:1907 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "la cantidad de registros no puede ser NULL en la cláusula FETCH FIRST ... WITH TIES" #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1925 +#: parser/parse_clause.c:1932 #, c-format msgid "argument of %s must not contain variables" msgstr "el argumento de %s no puede contener variables" #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2090 +#: parser/parse_clause.c:2097 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "%s «%s» es ambiguo" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2118 +#: parser/parse_clause.c:2125 #, c-format msgid "non-integer constant in %s" msgstr "constante no entera en %s" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2140 +#: parser/parse_clause.c:2147 #, c-format msgid "%s position %d is not in select list" msgstr "la posición %2$d de %1$s no está en la lista de resultados" -#: parser/parse_clause.c:2579 +#: parser/parse_clause.c:2586 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE está limitado a 12 elementos" -#: parser/parse_clause.c:2785 +#: parser/parse_clause.c:2792 #, c-format msgid "window \"%s\" is already defined" msgstr "la ventana «%s» ya está definida" -#: parser/parse_clause.c:2846 +#: parser/parse_clause.c:2853 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "no se puede pasar a llevar la cláusula PARTITION BY de la ventana «%s»" -#: parser/parse_clause.c:2858 +#: parser/parse_clause.c:2865 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "no se puede pasar a llevar la cláusula ORDER BY de la ventana «%s»" -#: parser/parse_clause.c:2888 parser/parse_clause.c:2894 +#: parser/parse_clause.c:2895 parser/parse_clause.c:2901 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "no se puede copiar la ventana «%s» porque tiene una cláusula «frame»" -#: parser/parse_clause.c:2896 +#: parser/parse_clause.c:2903 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "Omita el uso de paréntesis en esta cláusula OVER." -#: parser/parse_clause.c:2916 +#: parser/parse_clause.c:2923 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING requiere exactamente una columna ORDER BY" -#: parser/parse_clause.c:2939 +#: parser/parse_clause.c:2946 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "el modo GROUPS requiere una cláusula ORDER BY" -#: parser/parse_clause.c:3010 +#: parser/parse_clause.c:3016 #, c-format msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list" msgstr "en una agregación con DISTINCT, las expresiones en ORDER BY deben aparecer en la lista de argumentos" -#: parser/parse_clause.c:3011 +#: parser/parse_clause.c:3017 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "para SELECT DISTINCT, las expresiones en ORDER BY deben aparecer en la lista de resultados" -#: parser/parse_clause.c:3043 +#: parser/parse_clause.c:3049 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "una función de agregación con DISTINCT debe tener al menos un argumento" -#: parser/parse_clause.c:3044 +#: parser/parse_clause.c:3050 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "SELECT DISTINCT debe tener al menos una columna" -#: parser/parse_clause.c:3110 parser/parse_clause.c:3142 +#: parser/parse_clause.c:3116 parser/parse_clause.c:3148 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "las expresiones de SELECT DISTINCT ON deben coincidir con las expresiones iniciales de ORDER BY" -#: parser/parse_clause.c:3220 +#: parser/parse_clause.c:3226 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC no están permitidos en cláusulas ON CONFLICT" -#: parser/parse_clause.c:3226 +#: parser/parse_clause.c:3232 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST no están permitidos en cláusulas ON CONFLICT" -#: parser/parse_clause.c:3305 +#: parser/parse_clause.c:3311 #, c-format msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "ON CONFLICT DO UPDATE requiere una especificación de inferencia o nombre de restricción" -#: parser/parse_clause.c:3306 +#: parser/parse_clause.c:3312 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "Por ejemplo, ON CONFLICT (nombre_de_columna)." -#: parser/parse_clause.c:3317 +#: parser/parse_clause.c:3323 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT no está soportado con tablas que son catálogos de sistema" -#: parser/parse_clause.c:3325 +#: parser/parse_clause.c:3331 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "ON CONFLICT no está soportado en la tabla «%s» usada como catálogo de sistema" -#: parser/parse_clause.c:3456 +#: parser/parse_clause.c:3462 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "el operador «%s» no es un operador válido de ordenamiento" -#: parser/parse_clause.c:3458 +#: parser/parse_clause.c:3464 #, c-format msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "Los operadores de ordenamiento deben ser miembros «<» o «>» de una familia de operadores btree." -#: parser/parse_clause.c:3769 +#: parser/parse_clause.c:3775 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING no está soportado para la columna de tipo %s" -#: parser/parse_clause.c:3775 +#: parser/parse_clause.c:3781 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING no está soportado para la columna de tipo %s y tipo de desplazamiento %s" -#: parser/parse_clause.c:3778 +#: parser/parse_clause.c:3784 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "Convierta el valor de desplazamiento a un tipo apropiado." -#: parser/parse_clause.c:3783 +#: parser/parse_clause.c:3789 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "RANGE con desplazamiento PRECEDING/FOLLOWING tiene múltiples interpretaciones para la columna de tipo %s y tipo de desplazamiento %s" -#: parser/parse_clause.c:3786 +#: parser/parse_clause.c:3792 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "Convierta el valor de desplazamiento al tipo deseado exacto." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3516 -#: parser/parse_target.c:985 +#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405 +#: parser/parse_expr.c:3634 parser/parse_target.c:998 #, c-format msgid "cannot cast type %s to %s" msgstr "no se puede convertir el tipo %s a %s" @@ -17024,121 +17296,121 @@ msgid "argument of %s must not return a set" msgstr "el argumento de %s no debe retornar un conjunto" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1383 +#: parser/parse_coerce.c:1420 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "los tipos %2$s y %3$s no son coincidentes en %1$s" -#: parser/parse_coerce.c:1499 +#: parser/parse_coerce.c:1536 #, c-format msgid "argument types %s and %s cannot be matched" msgstr "los tipos de argumento %s y %s no pueden hacerse coincidir" #. translator: first %s is name of a SQL construct, eg CASE -#: parser/parse_coerce.c:1551 +#: parser/parse_coerce.c:1588 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s no pudo convertir el tipo %s a %s" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 -#: parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 -#: parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2191 parser/parse_coerce.c:2211 +#: parser/parse_coerce.c:2231 parser/parse_coerce.c:2252 +#: parser/parse_coerce.c:2307 parser/parse_coerce.c:2341 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "los argumentos declarados «%s» no son de tipos compatibles" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: parser/parse_coerce.c:2286 parser/parse_coerce.c:2399 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "el argumento declarado %s no es un array sino de tipo %s" -#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: parser/parse_coerce.c:2319 parser/parse_coerce.c:2469 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "el argumento declarado %s no es un tipo de rango sino tipo %s" -#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2353 parser/parse_coerce.c:2433 +#: parser/parse_coerce.c:2566 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "el argumento declarado %s no es un tipo de multirango sino tipo %s" -#: parser/parse_coerce.c:2353 +#: parser/parse_coerce.c:2390 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "no se puede determinar el tipo del argumento «anyarray»" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 -#: parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2447 +#: parser/parse_coerce.c:2486 parser/parse_coerce.c:2552 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "el argumento declarado %s no es consistente con el argumento declarado %s" -#: parser/parse_coerce.c:2474 +#: parser/parse_coerce.c:2511 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "no se pudo determinar el tipo polimórfico porque la entrada es de tipo %s" -#: parser/parse_coerce.c:2488 +#: parser/parse_coerce.c:2525 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "el argumento emparejado con anynonarray es un array: %s" -#: parser/parse_coerce.c:2498 +#: parser/parse_coerce.c:2535 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "el tipo emparejado con anyenum no es un tipo enum: %s" -#: parser/parse_coerce.c:2559 +#: parser/parse_coerce.c:2596 #, c-format msgid "arguments of anycompatible family cannot be cast to a common type" msgstr "los argumentos de la familia anycompatible no pueden ser convertidos a un tipo común" -#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 -#: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 -#: parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2614 parser/parse_coerce.c:2635 +#: parser/parse_coerce.c:2685 parser/parse_coerce.c:2690 +#: parser/parse_coerce.c:2754 parser/parse_coerce.c:2766 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "no se pudo determinar el tipo polimórfico %s porque la entrada es de tipo %s" -#: parser/parse_coerce.c:2587 +#: parser/parse_coerce.c:2624 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "el tipo anycompatiblerange %s no coincide con el tipo anycompatible %s" -#: parser/parse_coerce.c:2608 +#: parser/parse_coerce.c:2645 #, c-format msgid "anycompatiblemultirange type %s does not match anycompatible type %s" msgstr "el tipo anycompatiblemultirange %s no coincide con el tipo anycompatible %s" -#: parser/parse_coerce.c:2622 +#: parser/parse_coerce.c:2659 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "el argumento emparejado a anycompatiblenonarray es un array: %s" -#: parser/parse_coerce.c:2857 +#: parser/parse_coerce.c:2894 #, c-format msgid "A result of type %s requires at least one input of type anyrange or anymultirange." msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anyrange o anymultirange." -#: parser/parse_coerce.c:2874 +#: parser/parse_coerce.c:2911 #, c-format msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange." msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anycompatiblerange o anycompatiblemultirange." -#: parser/parse_coerce.c:2886 +#: parser/parse_coerce.c:2923 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange." msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anyelement, anyarray, anynonarray, anyenum, anyrange o anymultirange." -#: parser/parse_coerce.c:2898 +#: parser/parse_coerce.c:2935 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange." msgstr "Un resultado de tipo %s requiere al menos una entrada de tipo anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange o anycompatiblemultirange." -#: parser/parse_coerce.c:2928 +#: parser/parse_coerce.c:2965 msgid "A result of type internal requires at least one input of type internal." msgstr "Un resultado de tipo internal requiere al menos una entrada de tipo internal." @@ -17184,442 +17456,553 @@ msgstr "la referencia recursiva a la consulta «%s» no debe aparecer dentro de msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "la referencia recursiva a la consulta «%s» no debe aparecer dentro de EXCEPT" -#: parser/parse_cte.c:133 -#, fuzzy, c-format -#| msgid "\"EEEE\" not supported for input" -msgid "MERGE not supported in WITH query" -msgstr "«EEEE» no está soportado en la entrada" - -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:136 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "el nombre de consulta WITH «%s» fue especificado más de una vez" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:308 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "no se pudo identificar un operador de desigualdad para el tipo %s" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:335 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "la cláusula WITH que contiene las sentencias que modifican datos debe estar en el nivel más externo" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:384 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "la columna %2$d en la consulta recursiva «%1$s» tiene tipo %3$s en el término no recursivo, pero %4$s en general" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:390 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Aplique una conversión de tipo a la salida del término no recursivo al tipo correcto." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:395 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "la columna %2$d en la consulta recursiva «%1$s» tiene ordenamiento (collation) %3$s en el término no recursivo, pero %4$s en general" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:399 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "Use la clásula COLLATE para definir el ordenamiento del término no-recursivo." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:420 #, c-format msgid "WITH query is not recursive" msgstr "la consulta WITH no es recursiva" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:451 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "con una cláusula SEARCH o CYCLE, el lado izquierdo de UNION debe ser un SELECT" -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:456 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "con una cláusula SEARCH o CYCLE, el lado derecho de UNION debe ser un SELECT" -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:471 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "columna de búsqueda «%s» no se encuentra en la lista de columnas de la consulta WITH" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" specified more than once" msgstr "columna de búsqueda «%s» fue especificada más de una vez" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:487 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "el nombre para la columna de secuencia de búsqueda «%s» ya ha sido utilizado en la lista de columnas de la consulta WITH" -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:504 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "la columna de ciclo «%s» no se encuentra en la lista de columnas de la consulta WITH" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "columna de ciclo «%s» fue especificada más de una vez" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:520 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "el nombre para la columna de marca de ciclo «%s» ya ha sido utilizada en la lista de columnas de la consulta WITH" -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:527 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "el nombre para la columna de ruta de ciclo «%s» ya ha sido utilizada en la lista de columnas de la consulta WITH" -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:535 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "el nombre para la columna de marca de ciclo es igual que el nombre para la columna de ruta de ciclo" -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:545 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "el nombre para la columna de secuencia de búsqueda es igual que el nombre para la columna de marca de ciclo" -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "el nombre para la columna de secuencia de búsqueda es igual que el nombre para la columna de ruta de ciclo" -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:636 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "la consulta WITH «%s» tiene %d columnas disponibles pero se especificaron %d" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:816 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "la recursión mutua entre elementos de WITH no está implementada" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:868 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "la consulta recursiva «%s» no debe contener sentencias que modifiquen datos" -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:876 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "la consulta recursiva «%s» no tiene la forma término-no-recursivo UNION [ALL] término-recursivo" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:911 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY no está implementado en una consulta recursiva" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:917 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET no está implementado en una consulta recursiva" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:923 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT no está implementado en una consulta recursiva" -#: parser/parse_cte.c:944 +#: parser/parse_cte.c:929 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE no está implementado en una consulta recursiva" -#: parser/parse_cte.c:1001 +#: parser/parse_cte.c:1008 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "la referencia recursiva a la consulta «%s» no debe aparecer más de una vez" -#: parser/parse_expr.c:294 +#: parser/parse_expr.c:313 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT no está permitido en este contexto" -#: parser/parse_expr.c:371 parser/parse_relation.c:3687 -#: parser/parse_relation.c:3697 parser/parse_relation.c:3715 -#: parser/parse_relation.c:3722 parser/parse_relation.c:3736 +#: parser/parse_expr.c:406 parser/parse_relation.c:3691 +#: parser/parse_relation.c:3701 parser/parse_relation.c:3719 +#: parser/parse_relation.c:3726 parser/parse_relation.c:3740 #, c-format msgid "column %s.%s does not exist" msgstr "no existe la columna %s.%s" -#: parser/parse_expr.c:383 +#: parser/parse_expr.c:418 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "la columna «%s» no fue encontrado en el tipo %s" -#: parser/parse_expr.c:389 +#: parser/parse_expr.c:424 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "no se pudo identificar la columna «%s» en el tipo de dato record" -#: parser/parse_expr.c:395 +#: parser/parse_expr.c:430 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "la notación de columna .%s fue aplicada al tipo %s, que no es un tipo compuesto" -#: parser/parse_expr.c:426 parser/parse_target.c:733 +#: parser/parse_expr.c:461 parser/parse_target.c:732 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "la expansión de filas a través de «*» no está soportado aquí" -#: parser/parse_expr.c:548 +#: parser/parse_expr.c:584 msgid "cannot use column reference in DEFAULT expression" msgstr "no se pueden usar referencias a columnas en una cláusula DEFAULT" -#: parser/parse_expr.c:551 +#: parser/parse_expr.c:587 msgid "cannot use column reference in partition bound expression" msgstr "no se pueden usar referencias a columnas en expresión de borde de partición" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_expr.c:846 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1238 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "la referencia a la columna «%s» es ambigua" -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 #: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "no hay parámetro $%d" -#: parser/parse_expr.c:1066 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1103 parser/parse_expr.c:3065 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "NULLIF requiere que el operador = retorne boolean" +msgid "%s requires = operator to yield boolean" +msgstr "%s requiere que el operador = retorne boolean" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 +#: parser/parse_expr.c:1109 parser/parse_expr.c:3072 #, c-format msgid "%s must not return a set" msgstr "%s no debe retornar un conjunto" -#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 +#: parser/parse_expr.c:1395 +#, c-format +msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" +msgstr "MERGE_ACTION() sólo puede usarse en la lista RETURNING de una orden MERGE" + +#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 #, c-format msgid "number of columns does not match number of values" msgstr "el número de columnas no coincide con el número de valores" -#: parser/parse_expr.c:1503 +#: parser/parse_expr.c:1565 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "el origen para un UPDATE de varias columnas debe ser una expresión sub-SELECT o ROW ()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 +#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "no se permiten funciones que retornan conjuntos en %s" -#: parser/parse_expr.c:1761 +#: parser/parse_expr.c:1824 msgid "cannot use subquery in check constraint" msgstr "no se pueden usar subconsultas en una restricción «check»" -#: parser/parse_expr.c:1765 +#: parser/parse_expr.c:1828 msgid "cannot use subquery in DEFAULT expression" msgstr "no se puede usar una subconsulta en una expresión DEFAULT" -#: parser/parse_expr.c:1768 +#: parser/parse_expr.c:1831 msgid "cannot use subquery in index expression" msgstr "no se puede usar una subconsulta en una expresión de índice" -#: parser/parse_expr.c:1771 +#: parser/parse_expr.c:1834 msgid "cannot use subquery in index predicate" msgstr "no se puede usar una subconsulta en un predicado de índice" -#: parser/parse_expr.c:1774 +#: parser/parse_expr.c:1837 msgid "cannot use subquery in statistics expression" msgstr "no se puede usar una subconsulta en una expresión de estadísticas" -#: parser/parse_expr.c:1777 +#: parser/parse_expr.c:1840 msgid "cannot use subquery in transform expression" msgstr "no se puede usar una subconsulta en una expresión de transformación" -#: parser/parse_expr.c:1780 +#: parser/parse_expr.c:1843 msgid "cannot use subquery in EXECUTE parameter" msgstr "no se puede usar una subconsulta en un parámetro a EXECUTE" -#: parser/parse_expr.c:1783 +#: parser/parse_expr.c:1846 msgid "cannot use subquery in trigger WHEN condition" -msgstr "no se puede usar una subconsulta en la condición WHEN de un disparador" +msgstr "no se puede usar una subconsulta en la condición WHEN de un “trigger”" -#: parser/parse_expr.c:1786 +#: parser/parse_expr.c:1849 msgid "cannot use subquery in partition bound" msgstr "no se puede usar una subconsulta en un borde de partición" -#: parser/parse_expr.c:1789 +#: parser/parse_expr.c:1852 msgid "cannot use subquery in partition key expression" msgstr "no se puede usar una subconsulta en una expresión de llave de partición" -#: parser/parse_expr.c:1792 +#: parser/parse_expr.c:1855 msgid "cannot use subquery in CALL argument" msgstr "no se puede usar una subconsulta en un argumento a CALL" -#: parser/parse_expr.c:1795 +#: parser/parse_expr.c:1858 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "no se puede usar una subconsulta en la condición WHERE de COPY FROM" -#: parser/parse_expr.c:1798 +#: parser/parse_expr.c:1861 msgid "cannot use subquery in column generation expression" msgstr "no se puede usar una subconsulta en una expresión de generación de columna" -#: parser/parse_expr.c:1851 parser/parse_expr.c:3632 +#: parser/parse_expr.c:1914 parser/parse_expr.c:3764 #, c-format msgid "subquery must return only one column" msgstr "la subconsulta debe retornar sólo una columna" -#: parser/parse_expr.c:1922 +#: parser/parse_expr.c:1985 #, c-format msgid "subquery has too many columns" msgstr "la subconsulta tiene demasiadas columnas" -#: parser/parse_expr.c:1927 +#: parser/parse_expr.c:1990 #, c-format msgid "subquery has too few columns" msgstr "la subconsulta tiene muy pocas columnas" -#: parser/parse_expr.c:2023 +#: parser/parse_expr.c:2086 #, c-format msgid "cannot determine type of empty array" msgstr "no se puede determinar el tipo de un array vacío" -#: parser/parse_expr.c:2024 +#: parser/parse_expr.c:2087 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Agregue una conversión de tipo explícita al tipo deseado, por ejemplo ARRAY[]::integer[]." -#: parser/parse_expr.c:2038 +#: parser/parse_expr.c:2101 #, c-format msgid "could not find element type for data type %s" msgstr "no se pudo encontrar el tipo de dato de elemento para el tipo de dato %s" -#: parser/parse_expr.c:2121 -#, fuzzy, c-format -#| msgid "target lists can have at most %d entries" +#: parser/parse_expr.c:2184 +#, c-format msgid "ROW expressions can have at most %d entries" -msgstr "las listas de resultados pueden tener a lo más %d entradas" +msgstr "las expresiones ROW pueden tener a lo más %d entradas" -#: parser/parse_expr.c:2326 +#: parser/parse_expr.c:2389 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "el valor del atributo XML sin nombre debe ser una referencia a una columna" -#: parser/parse_expr.c:2327 +#: parser/parse_expr.c:2390 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "el valor del elemento XML sin nombre debe ser una referencia a una columna" -#: parser/parse_expr.c:2342 +#: parser/parse_expr.c:2405 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "el nombre de atributo XML «%s» aparece más de una vez" -#: parser/parse_expr.c:2450 +#: parser/parse_expr.c:2513 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "no se puede convertir el resultado de XMLSERIALIZE a %s" -#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 +#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 #, c-format msgid "unequal number of entries in row expressions" msgstr "número desigual de entradas en expresiones de registro" -#: parser/parse_expr.c:2774 +#: parser/parse_expr.c:2837 #, c-format msgid "cannot compare rows of zero length" msgstr "no se pueden comparar registros de largo cero" -#: parser/parse_expr.c:2799 +#: parser/parse_expr.c:2862 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "el operador de comparación de registros debe retornar tipo boolean, no tipo %s" -#: parser/parse_expr.c:2806 +#: parser/parse_expr.c:2869 #, c-format msgid "row comparison operator must not return a set" msgstr "el operador de comparación de registros no puede retornar un conjunto" -#: parser/parse_expr.c:2865 parser/parse_expr.c:2906 +#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "no se pudo determinar la interpretación del operador de comparación de registros %s" -#: parser/parse_expr.c:2867 +#: parser/parse_expr.c:2930 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "Los operadores de comparación de registros deben estar asociados a una familia de operadores btree." -#: parser/parse_expr.c:2908 +#: parser/parse_expr.c:2971 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Hay múltiples candidatos igualmente plausibles." -#: parser/parse_expr.c:3001 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "IS DISTINCT FROM requiere que el operador = retorne boolean" - -#: parser/parse_expr.c:3254 +#: parser/parse_expr.c:3306 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" -msgstr "" +msgstr "la cláusula ENCODING de JSON sólo está permitida para el tipo de entrada bytea" -#: parser/parse_expr.c:3261 +#: parser/parse_expr.c:3370 #, c-format -msgid "FORMAT JSON has no effect for json and jsonb types" -msgstr "" +msgid "cannot use non-string types with implicit FORMAT JSON clause" +msgstr "no se puede usar tipos que no son string con la cláusula implícita FORMAT JSON" -#: parser/parse_expr.c:3284 +#: parser/parse_expr.c:3371 #, c-format -msgid "cannot use non-string types with implicit FORMAT JSON clause" -msgstr "" +msgid "cannot use non-string types with explicit FORMAT JSON clause" +msgstr "no se puede usar tipos que no son string con la cláusula explítica FORMAT JSON" -#: parser/parse_expr.c:3354 -#, fuzzy, c-format -#| msgid "cannot cast jsonb string to type %s" +#: parser/parse_expr.c:3460 +#, c-format msgid "cannot use JSON format with non-string output types" -msgstr "no se puede convertir un string jsonb a tipo %s" +msgstr "no se puede usar formato JSON con tipos de salida que no son string" -#: parser/parse_expr.c:3367 +#: parser/parse_expr.c:3473 #, c-format msgid "cannot set JSON encoding for non-bytea output types" -msgstr "" +msgstr "no se puede definir codificación JSON para tipos de salida que no sea bytea" -#: parser/parse_expr.c:3372 -#, fuzzy, c-format -#| msgid "unsupported format code: %d" +#: parser/parse_expr.c:3478 +#, c-format msgid "unsupported JSON encoding" -msgstr "código de formato no soportado: %d" +msgstr "codificación JSON no soportada" -#: parser/parse_expr.c:3373 +#: parser/parse_expr.c:3479 #, c-format msgid "Only UTF8 JSON encoding is supported." -msgstr "" +msgstr "Sólo la codificación JSON UTF8 está soportada." -#: parser/parse_expr.c:3410 -#, fuzzy, c-format -#| msgid "return type %s is not supported for SQL functions" +#: parser/parse_expr.c:3516 +#, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" -msgstr "el tipo de retorno %s no es soportado en funciones SQL" +msgstr "retornar tipos SETOF no está soportado en funciones SQL/JSON" + +#: parser/parse_expr.c:3521 +#, c-format +msgid "returning pseudo-types is not supported in SQL/JSON functions" +msgstr "retornar pseudo-tipos no está soportado en funciones SQL/JSON" -#: parser/parse_expr.c:3711 parser/parse_func.c:865 +#: parser/parse_expr.c:3849 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "el ORDER BY de funciones de agregación no está implementado para funciones de ventana deslizante" -#: parser/parse_expr.c:3930 +#: parser/parse_expr.c:4072 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" -msgstr "" +msgstr "no se puede usar la cláusula FORMAT ENCODING de JSON para tipos de entrada que no son bytea" -#: parser/parse_expr.c:3950 -#, fuzzy, c-format -#| msgid "cannot use subquery in index predicate" +#: parser/parse_expr.c:4092 +#, c-format msgid "cannot use type %s in IS JSON predicate" -msgstr "no se puede usar una subconsulta en un predicado de índice" +msgstr "no se puede tipo %s en predicado IS JSON" + +#: parser/parse_expr.c:4118 parser/parse_expr.c:4239 +#, c-format +#| msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "no se puede usar el tipo %s en la cláusula RETURNING de %s" + +#: parser/parse_expr.c:4120 +#, c-format +#| msgid "Try returning a string type or bytea." +msgid "Try returning json or jsonb." +msgstr "Intente retornando tipo json o jsonb." + +#: parser/parse_expr.c:4168 +#, c-format +msgid "cannot use non-string types with WITH UNIQUE KEYS clause" +msgstr "no se puede usar tipos que no sean strings con cláusula WITH UNIQUE KEYS" + +#: parser/parse_expr.c:4242 +#, c-format +msgid "Try returning a string type or bytea." +msgstr "Intente retornando un tipo de string o bytea." + +#: parser/parse_expr.c:4307 +#, c-format +msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgstr "no se puede especificar FORMAT JSON en la cláusula RETURNING de %s()" + +#: parser/parse_expr.c:4320 +#, c-format +msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" +msgstr "el comportamiento QUOTES de SQL/JSON no debe ser especificado cuando se usa WITH WRAPPER" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4334 parser/parse_expr.c:4363 parser/parse_expr.c:4394 +#: parser/parse_expr.c:4420 parser/parse_expr.c:4446 +#: parser/parse_jsontable.c:94 +#, c-format +msgid "invalid %s behavior" +msgstr "especificación %s no válida" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4337 parser/parse_expr.c:4366 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s." +msgstr "Sólo ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT o expresión DEFAULT se permite en %s para %s." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4344 parser/parse_expr.c:4373 parser/parse_expr.c:4402 +#: parser/parse_expr.c:4430 parser/parse_expr.c:4456 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "comportamiento %s no válido para la columna «%s»" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4347 parser/parse_expr.c:4376 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns." +msgstr "Sólo ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT o expresión DEFAULT se permite en %s para columnas con formato." + +#: parser/parse_expr.c:4395 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "Sólo ERROR, TRUE, FALSE o UNKNOWN están permitidos en %s para %s." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4405 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "Sólo ERROR, TRUE, FALSE o UNKNOWN están permitidos en %s para columnas EXISTS." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4423 parser/parse_expr.c:4449 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "Sólo ERROR, NULL o expresión DEFAULT se permite en %s para %s." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4433 parser/parse_expr.c:4459 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "Sólo ERROR, NULL o expresión DEFAULT se permite en %s para columnas escalares." + +#: parser/parse_expr.c:4489 +#, c-format +msgid "JSON path expression must be of type %s, not of type %s" +msgstr "la expresión de ruta JSON debe ser de tipo %s, no tipo %s" + +#: parser/parse_expr.c:4707 +#, c-format +msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT" +msgstr "sólo se puede especificar constantes, funciones no de agregación, o expresión de operador para DEFAULT" + +#: parser/parse_expr.c:4712 +#, c-format +msgid "DEFAULT expression must not contain column references" +msgstr "las expresiones DEFAULT no pueden contener referencias a columnas" + +#: parser/parse_expr.c:4717 +#, c-format +msgid "DEFAULT expression must not return a set" +msgstr "las expresiones DEFAULT no deben retornar un conjunto" + +#: parser/parse_expr.c:4793 parser/parse_expr.c:4802 +#, c-format +msgid "cannot cast behavior expression of type %s to %s" +msgstr "no se puede convertir la expresión de tipo %s a %s" + +#: parser/parse_expr.c:4796 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "Necesitará aplicar una conversión de la expresión a tipo %s." #: parser/parse_func.c:194 #, c-format @@ -17631,7 +18014,7 @@ msgstr "nombre de argumento «%s» especificado más de una vez" msgid "positional argument cannot follow named argument" msgstr "un argumento posicional no puede seguir a un argumento con nombre" -#: parser/parse_func.c:287 parser/parse_func.c:2367 +#: parser/parse_func.c:287 parser/parse_func.c:2368 #, c-format msgid "%s is not a procedure" msgstr "%s no es un procedimiento" @@ -17750,7 +18133,7 @@ msgstr "No se pudo escoger la función más adecuada. Puede ser necesario agrega msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate." msgstr "Ninguna función coincide en el nombre y tipos de argumentos. Quizás puso ORDER BY en una mala posición; ORDER BY debe aparecer después de todos los argumentos normales de la función de agregación." -#: parser/parse_func.c:622 parser/parse_func.c:2410 +#: parser/parse_func.c:622 parser/parse_func.c:2411 #, c-format msgid "procedure %s does not exist" msgstr "no existe el procedimiento «%s»" @@ -17770,7 +18153,7 @@ msgstr "Ninguna función coincide en el nombre y tipos de argumentos. Puede ser msgid "VARIADIC argument must be an array" msgstr "el parámetro VARIADIC debe ser un array" -#: parser/parse_func.c:791 parser/parse_func.c:855 +#: parser/parse_func.c:791 parser/parse_func.c:856 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr "%s(*) debe ser usado para invocar una función de agregación sin parámetros" @@ -17785,267 +18168,257 @@ msgstr "las funciones de agregación no pueden retornar conjuntos" msgid "aggregates cannot use named arguments" msgstr "las funciones de agregación no pueden usar argumentos con nombre" -#: parser/parse_func.c:845 +#: parser/parse_func.c:846 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "DISTINCT no está implementado para funciones de ventana deslizante" -#: parser/parse_func.c:874 +#: parser/parse_func.c:875 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "FILTER no está implementado para funciones de ventana deslizante" -#: parser/parse_func.c:883 +#: parser/parse_func.c:884 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "las llamadas a funciones de ventana no pueden contener llamadas a funciones que retornan conjuntos" -#: parser/parse_func.c:891 +#: parser/parse_func.c:892 #, c-format msgid "window functions cannot return sets" msgstr "las funciones de ventana deslizante no pueden retornar conjuntos" -#: parser/parse_func.c:2166 parser/parse_func.c:2439 +#: parser/parse_func.c:2167 parser/parse_func.c:2440 #, c-format msgid "could not find a function named \"%s\"" msgstr "no se pudo encontrar una función llamada «%s»" -#: parser/parse_func.c:2180 parser/parse_func.c:2457 +#: parser/parse_func.c:2181 parser/parse_func.c:2458 #, c-format msgid "function name \"%s\" is not unique" msgstr "el nombre de función «%s» no es único" -#: parser/parse_func.c:2182 parser/parse_func.c:2460 +#: parser/parse_func.c:2183 parser/parse_func.c:2461 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "Especifique la lista de argumentos para seleccionar la función sin ambigüedad." -#: parser/parse_func.c:2226 +#: parser/parse_func.c:2227 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" msgstr[0] "los procedimientos no pueden tener más de %d argumento" msgstr[1] "los procedimientos no pueden tener más de %d argumentos" -#: parser/parse_func.c:2357 +#: parser/parse_func.c:2358 #, c-format msgid "%s is not a function" msgstr "«%s» no es una función" -#: parser/parse_func.c:2377 +#: parser/parse_func.c:2378 #, c-format msgid "function %s is not an aggregate" msgstr "la función %s no es una función de agregación" -#: parser/parse_func.c:2405 +#: parser/parse_func.c:2406 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "no se pudo encontrar un procedimiento llamado «%s»" -#: parser/parse_func.c:2419 +#: parser/parse_func.c:2420 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "no se pudo encontrar una función de agregación llamada «%s»" -#: parser/parse_func.c:2424 +#: parser/parse_func.c:2425 #, c-format msgid "aggregate %s(*) does not exist" msgstr "no existe la función de agregación %s(*)" -#: parser/parse_func.c:2429 +#: parser/parse_func.c:2430 #, c-format msgid "aggregate %s does not exist" msgstr "no existe la función de agregación %s" -#: parser/parse_func.c:2465 +#: parser/parse_func.c:2466 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "el nombre de procedimiento «%s» no es única" -#: parser/parse_func.c:2468 +#: parser/parse_func.c:2469 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "Especifique la lista de argumentos para seleccionar el procedimiento sin ambigüedad." -#: parser/parse_func.c:2473 +#: parser/parse_func.c:2474 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "el atributo de la función de agregación «%s» no es único" -#: parser/parse_func.c:2476 +#: parser/parse_func.c:2477 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "Especifique la lista de argumentos para seleccionar la función de agregación sin ambigüedad." -#: parser/parse_func.c:2481 +#: parser/parse_func.c:2482 #, c-format msgid "routine name \"%s\" is not unique" msgstr "el nombre de rutina «%s» no es único" -#: parser/parse_func.c:2484 +#: parser/parse_func.c:2485 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "Especifique la lista de argumentos para seleccionar la rutina sin ambigüedad." -#: parser/parse_func.c:2539 +#: parser/parse_func.c:2540 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "no se permiten funciones que retornan conjuntos en condiciones JOIN" -#: parser/parse_func.c:2560 +#: parser/parse_func.c:2561 msgid "set-returning functions are not allowed in policy expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de política" -#: parser/parse_func.c:2576 +#: parser/parse_func.c:2577 msgid "set-returning functions are not allowed in window definitions" msgstr "no se permiten funciones que retornan conjuntos definiciones de ventana deslizante" -#: parser/parse_func.c:2613 -#, fuzzy -#| msgid "set-returning functions are not allowed in trigger WHEN conditions" +#: parser/parse_func.c:2615 msgid "set-returning functions are not allowed in MERGE WHEN conditions" -msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un disparador" +msgstr "no se permiten funciones que retornan conjuntos en condiciones MERGE WHEN" -#: parser/parse_func.c:2617 +#: parser/parse_func.c:2619 msgid "set-returning functions are not allowed in check constraints" msgstr "no se permiten funciones de que retornan conjuntos en restricciones «check»" -#: parser/parse_func.c:2621 +#: parser/parse_func.c:2623 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones DEFAULT" -#: parser/parse_func.c:2624 +#: parser/parse_func.c:2626 msgid "set-returning functions are not allowed in index expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de índice" -#: parser/parse_func.c:2627 +#: parser/parse_func.c:2629 msgid "set-returning functions are not allowed in index predicates" msgstr "no se permiten funciones que retornan conjuntos en predicados de índice" -#: parser/parse_func.c:2630 +#: parser/parse_func.c:2632 msgid "set-returning functions are not allowed in statistics expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de estadísticas" -#: parser/parse_func.c:2633 +#: parser/parse_func.c:2635 msgid "set-returning functions are not allowed in transform expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de transformación" -#: parser/parse_func.c:2636 +#: parser/parse_func.c:2638 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "no se permiten funciones que retornan conjuntos en parámetros a EXECUTE" -#: parser/parse_func.c:2639 +#: parser/parse_func.c:2641 msgid "set-returning functions are not allowed in trigger WHEN conditions" -msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un disparador" +msgstr "no se permiten funciones que retornan conjuntos en condiciones WHEN de un “trigger”" -#: parser/parse_func.c:2642 +#: parser/parse_func.c:2644 msgid "set-returning functions are not allowed in partition bound" msgstr "no se permiten funciones que retornan conjuntos en bordes de partición" -#: parser/parse_func.c:2645 +#: parser/parse_func.c:2647 msgid "set-returning functions are not allowed in partition key expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de llave de particionamiento" -#: parser/parse_func.c:2648 +#: parser/parse_func.c:2650 msgid "set-returning functions are not allowed in CALL arguments" msgstr "no se permiten funciones que retornan conjuntos en argumentos de CALL" -#: parser/parse_func.c:2651 +#: parser/parse_func.c:2653 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten funciones que retornan conjuntos en las condiciones WHERE de COPY FROM" -#: parser/parse_func.c:2654 +#: parser/parse_func.c:2656 msgid "set-returning functions are not allowed in column generation expressions" msgstr "no se permiten funciones que retornan conjuntos en expresiones de generación de columna" -#: parser/parse_merge.c:119 -#, fuzzy, c-format -#| msgid "WHERE CURRENT OF is not supported for this table type" +#: parser/parse_jsontable.c:95 +#, c-format +msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "Sólo EMPTY [ ARRAY ] o ERROR son permitidos en la cláusula ON ERROR de nivel superior." + +#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#, c-format +msgid "duplicate JSON_TABLE column or path name: %s" +msgstr "nombre de columna o de “path” duplicada en JSON_TABLE: %s" + +#: parser/parse_merge.c:129 +#, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" -msgstr "WHERE CURRENT OF no está soportado para este tipo de tabla" +msgstr "WITH RECURSIVE no está soportado para la sentencia MERGE" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:176 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "se especificó una cláusula WHEN no alcanzable después de una cláusula WHEN incondicional" -#: parser/parse_merge.c:191 -#, fuzzy, c-format -#| msgid "LIKE is not supported for creating foreign tables" -msgid "MERGE is not supported for relations with rules." -msgstr "LIKE no está soportado para la creación de tablas foráneas" - -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:222 #, c-format msgid "name \"%s\" specified more than once" msgstr "el nombre «%s» fue especificado más de una vez" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:224 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "El nombre es usado tanto como tabla de destino de MERGE como como tabla de origen." -#: parser/parse_node.c:87 +#: parser/parse_node.c:82 #, c-format msgid "target lists can have at most %d entries" msgstr "las listas de resultados pueden tener a lo más %d entradas" -#: parser/parse_oper.c:123 parser/parse_oper.c:690 +#: parser/parse_oper.c:114 parser/parse_oper.c:678 #, c-format msgid "postfix operators are not supported" msgstr "los operadores postfix no están soportados" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 -#, c-format -msgid "operator does not exist: %s" -msgstr "el operador no existe: %s" - -#: parser/parse_oper.c:229 +#: parser/parse_oper.c:217 #, c-format msgid "Use an explicit ordering operator or modify the query." msgstr "Use un operador de ordenamiento explícito o modifique la consulta." -#: parser/parse_oper.c:485 +#: parser/parse_oper.c:473 #, c-format msgid "operator requires run-time type coercion: %s" msgstr "el operador requiere conversión explícita de tipos: %s" -#: parser/parse_oper.c:641 +#: parser/parse_oper.c:629 #, c-format msgid "operator is not unique: %s" msgstr "el operador no es único: %s" -#: parser/parse_oper.c:643 +#: parser/parse_oper.c:631 #, c-format msgid "Could not choose a best candidate operator. You might need to add explicit type casts." msgstr "No se pudo escoger el operador más adecuado. Puede ser necesario agregar conversiones explícitas de tipos." -#: parser/parse_oper.c:652 +#: parser/parse_oper.c:640 #, c-format msgid "No operator matches the given name and argument type. You might need to add an explicit type cast." msgstr "Ningún operador coincide en el nombre y tipo de argumento. Puede ser necesario agregar conversión explícita de tipos." -#: parser/parse_oper.c:654 +#: parser/parse_oper.c:642 #, c-format msgid "No operator matches the given name and argument types. You might need to add explicit type casts." msgstr "Ningún operador coincide en el nombre y tipos de argumentos. Puede ser necesario agregar conversión explícita de tipos." -#: parser/parse_oper.c:714 parser/parse_oper.c:828 -#, c-format -msgid "operator is only a shell: %s" -msgstr "el operador está inconcluso: %s" - -#: parser/parse_oper.c:816 +#: parser/parse_oper.c:803 #, c-format msgid "op ANY/ALL (array) requires array on right side" msgstr "op ANY/ALL (array) requiere un array al lado derecho" -#: parser/parse_oper.c:858 +#: parser/parse_oper.c:844 #, c-format msgid "op ANY/ALL (array) requires operator to yield boolean" msgstr "op ANY/ALL (array) requiere un operador que entregue boolean" -#: parser/parse_oper.c:863 +#: parser/parse_oper.c:849 #, c-format msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "op ANY/ALL (array) requiere un operador que no retorne un conjunto" @@ -18055,7 +18428,7 @@ msgstr "op ANY/ALL (array) requiere un operador que no retorne un conjunto" msgid "inconsistent types deduced for parameter $%d" msgstr "para el parámetro $%d se dedujeron tipos de dato inconsistentes" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:309 tcop/postgres.c:744 #, c-format msgid "could not determine data type of parameter $%d" msgstr "no se pudo determinar el tipo del parámetro $%d" @@ -18075,13 +18448,13 @@ msgstr "la referencia a la tabla %u es ambigua" msgid "table name \"%s\" specified more than once" msgstr "el nombre de tabla «%s» fue especificado más de una vez" -#: parser/parse_relation.c:494 parser/parse_relation.c:3629 -#: parser/parse_relation.c:3638 +#: parser/parse_relation.c:494 parser/parse_relation.c:3633 +#: parser/parse_relation.c:3642 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "referencia a la entrada de la cláusula FROM para la tabla «%s» no válida" -#: parser/parse_relation.c:498 parser/parse_relation.c:3640 +#: parser/parse_relation.c:498 parser/parse_relation.c:3644 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Hay una entrada para la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta." @@ -18102,23 +18475,22 @@ msgid "cannot use system column \"%s\" in column generation expression" msgstr "no se puede usar la columna de sistema «%s» en una expresión de generación de columna" #: parser/parse_relation.c:723 -#, fuzzy, c-format -#| msgid "cannot use system column \"%s\" in partition key" +#, c-format msgid "cannot use system column \"%s\" in MERGE WHEN condition" -msgstr "no se puede usar la columna de sistema «%s» en llave de particionamiento" +msgstr "no se puede usar la columna de sistema «%s» en condición MERGE WHEN" -#: parser/parse_relation.c:1236 parser/parse_relation.c:1690 -#: parser/parse_relation.c:2387 +#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 +#: parser/parse_relation.c:2384 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d" -#: parser/parse_relation.c:1444 +#: parser/parse_relation.c:1445 #, c-format msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query." msgstr "Hay un elemento WITH llamado «%s», pero no puede ser referenciada desde esta parte de la consulta." -#: parser/parse_relation.c:1446 +#: parser/parse_relation.c:1447 #, c-format msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "Use WITH RECURSIVE, o reordene los elementos de WITH para eliminar referencias hacia adelante." @@ -18144,141 +18516,136 @@ msgid "a column definition list is required for functions returning \"record\"" msgstr "la lista de definición de columnas es obligatoria para funciones que retornan «record»" #: parser/parse_relation.c:1894 -#, fuzzy, c-format -#| msgid "target lists can have at most %d entries" +#, c-format msgid "column definition lists can have at most %d entries" -msgstr "las listas de resultados pueden tener a lo más %d entradas" +msgstr "las listas de definición de columnas pueden tener a lo más %d entradas" #: parser/parse_relation.c:1954 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "la función «%s» en FROM tiene el tipo de retorno no soportado %s" -#: parser/parse_relation.c:1981 parser/parse_relation.c:2067 -#, fuzzy, c-format -#| msgid "joins can have at most %d columns" +#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 +#, c-format msgid "functions in FROM can return at most %d columns" -msgstr "los joins pueden tener a lo más %d columnas" +msgstr "las funciones en FROM pueden tener a lo más %d columnas" -#: parser/parse_relation.c:2097 -#, fuzzy, c-format -#| msgid "table \"%s\" has %d columns available but %d columns specified" +#: parser/parse_relation.c:2096 +#, c-format msgid "%s function has %d columns available but %d columns specified" -msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d" +msgstr "la función %s tiene %d columnas disponibles pero se especificaron %d" -#: parser/parse_relation.c:2179 +#: parser/parse_relation.c:2177 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "la lista VALUES «%s» tiene %d columnas disponibles pero se especificaron %d" -#: parser/parse_relation.c:2245 +#: parser/parse_relation.c:2242 #, c-format msgid "joins can have at most %d columns" msgstr "los joins pueden tener a lo más %d columnas" -#: parser/parse_relation.c:2270 -#, fuzzy, c-format -#| msgid "table \"%s\" has %d columns available but %d columns specified" +#: parser/parse_relation.c:2267 +#, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" -msgstr "la tabla «%s» tiene %d columnas pero se especificaron %d" +msgstr "la expresión de join «%s» tiene %d columnas disponibles pero se especificaron %d" -#: parser/parse_relation.c:2360 +#: parser/parse_relation.c:2357 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "la consulta WITH «%s» no tiene una cláusula RETURNING" -#: parser/parse_relation.c:3631 +#: parser/parse_relation.c:3635 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Probablemente quiera hacer referencia al alias de la tabla «%s»." -#: parser/parse_relation.c:3643 +#: parser/parse_relation.c:3647 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." -msgstr "" +msgstr "Para hacer referencia a esa tabla, debe marcar esta subconsulta con LATERAL." -#: parser/parse_relation.c:3649 +#: parser/parse_relation.c:3653 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "falta una entrada para la tabla «%s» en la cláusula FROM" -#: parser/parse_relation.c:3689 -#, fuzzy, c-format -#| msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." +#: parser/parse_relation.c:3693 +#, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." -msgstr "Hay una columna llamada «%s» en la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta." +msgstr "Hay columnas llamadas «%s», pero están en tablas que no pueden ser referenciadas desde esta parte de la consulta." -#: parser/parse_relation.c:3691 +#: parser/parse_relation.c:3695 #, c-format msgid "Try using a table-qualified name." -msgstr "" +msgstr "Intente usar un nombre calificado con nombre de tabla." -#: parser/parse_relation.c:3699 +#: parser/parse_relation.c:3703 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Hay una columna llamada «%s» en la tabla «%s», pero no puede ser referenciada desde esta parte de la consulta." -#: parser/parse_relation.c:3702 +#: parser/parse_relation.c:3706 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." -msgstr "" +msgstr "Para hacer referencia a esa columna, debe marcar esta subconsulta con LATERAL." -#: parser/parse_relation.c:3704 +#: parser/parse_relation.c:3708 #, c-format msgid "To reference that column, you must use a table-qualified name." -msgstr "" +msgstr "Para hacer referencia a esa columna, debe usar un nombre calificado con nombre de tabla." -#: parser/parse_relation.c:3724 +#: parser/parse_relation.c:3728 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Probablemente quiera hacer referencia a la columna «%s.%s»." -#: parser/parse_relation.c:3738 +#: parser/parse_relation.c:3742 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "Probablemente quiera hacer referencia a la columna «%s.%s» o la columna «%s.%s»." -#: parser/parse_target.c:481 parser/parse_target.c:796 +#: parser/parse_target.c:480 parser/parse_target.c:795 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "no se puede asignar a la columna de sistema «%s»" -#: parser/parse_target.c:509 +#: parser/parse_target.c:508 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "no se puede definir un elemento de array a DEFAULT" -#: parser/parse_target.c:514 +#: parser/parse_target.c:513 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "no se puede definir un subcampo a DEFAULT" -#: parser/parse_target.c:588 +#: parser/parse_target.c:587 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "la columna «%s» es de tipo %s pero la expresión es de tipo %s" -#: parser/parse_target.c:780 +#: parser/parse_target.c:779 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "no se puede asignar al campo «%s» de la columna «%s» porque su tipo %s no es un tipo compuesto" -#: parser/parse_target.c:789 +#: parser/parse_target.c:788 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "no se puede asignar al campo «%s» de la columna «%s» porque no existe esa columna en el tipo de dato %s" -#: parser/parse_target.c:869 +#: parser/parse_target.c:877 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "la asignación subindexada a «%s» requiere tipo %s pero la expresión es de tipo %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:887 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "el subcampo «%s» es de tipo %s pero la expresión es de tipo %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1327 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * sin especificar tablas no es válido" @@ -18298,8 +18665,8 @@ msgstr "la referencia a %%TYPE es inapropiada (demasiados nombres con punto): %s msgid "type reference %s converted to %s" msgstr "la referencia al tipo %s convertida a %s" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:390 -#: utils/cache/typcache.c:445 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 +#: utils/cache/typcache.c:452 #, c-format msgid "type \"%s\" is only a shell" msgstr "el tipo «%s» está inconcluso" @@ -18319,336 +18686,330 @@ msgstr "los modificadores de tipo deben ser constantes simples o identificadores msgid "invalid type name \"%s\"" msgstr "el nombre de tipo «%s» no es válido" -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:263 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "no se puede crear una tabla particionada como hija de herencia" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:475 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "no se puede cambiar el estado «logged» de una secuencia temporal" + +#: parser/parse_utilcmd.c:611 #, c-format msgid "array of serial is not implemented" msgstr "array de serial no está implementado" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702 +#: parser/parse_utilcmd.c:761 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "las declaraciones NULL/NOT NULL no son coincidentes para la columna «%s» de la tabla «%s»" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:714 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "múltiples valores default especificados para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:731 #, c-format msgid "identity columns are not supported on typed tables" msgstr "las columnas identidad no está soportadas en tablas tipadas" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:735 #, c-format msgid "identity columns are not supported on partitions" msgstr "las columnas identidad no están soportadas en particiones" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:744 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "múltiples especificaciones de identidad para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:774 #, c-format msgid "generated columns are not supported on typed tables" msgstr "las columnas generadas no están soportadas en tablas tipadas" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:778 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "múltiples cláusulas de generación especificadas para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "las restricciones de llave primaria no están soportadas en tablas foráneas" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "las restricciones unique no están soportadas en tablas foráneas" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:850 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "tanto el valor por omisión como identidad especificados para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:858 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "tanto el valor por omisión como expresión de generación especificados para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:866 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "tanto identidad como expresión de generación especificados para columna «%s» de tabla «%s»" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:931 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "las restricciones de exclusión no están soportadas en tablas foráneas" -#: parser/parse_utilcmd.c:906 -#, c-format -msgid "exclusion constraints are not supported on partitioned tables" -msgstr "las restricciones de exclusión no están soportadas en tablas particionadas" - -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:996 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE no está soportado para la creación de tablas foráneas" -#: parser/parse_utilcmd.c:984 -#, fuzzy, c-format -#| msgid "relation \"%s\" in %s clause not found in FROM clause" +#: parser/parse_utilcmd.c:1009 +#, c-format msgid "relation \"%s\" is invalid in LIKE clause" -msgstr "la relación «%s» en la cláusula %s no fue encontrada en la cláusula FROM" +msgstr "la relación «%s» no es válida en cláusula LIKE" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "El índice «%s» contiene una referencia a la fila completa (whole-row)." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2242 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "no se puede usar un índice existente en CREATE TABLE" -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2262 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "el índice «%s» ya está asociado a una restricción" -#: parser/parse_utilcmd.c:2271 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "el índice «%s» no es válido" - -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2283 #, c-format msgid "\"%s\" is not a unique index" msgstr "«%s» no es un índice único" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "No se puede crear una restricción de llave primaria o única usando un índice así." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2290 #, c-format msgid "index \"%s\" contains expressions" msgstr "el índice «%s» contiene expresiones" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2297 #, c-format msgid "\"%s\" is a partial index" msgstr "«%s» es un índice parcial" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2309 #, c-format msgid "\"%s\" is a deferrable index" msgstr "«%s» no es un índice postergable (deferrable)" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2310 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "No se puede crear una restricción no postergable usando un índice postergable." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2374 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "el índice «%s» columna número %d no tiene comportamiento de ordenamiento por omisión" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2531 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "la columna «%s» aparece dos veces en llave primaria" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2537 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "la columna «%s» aparece dos veces en restricción unique" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2871 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "las expresiones y predicados de índice sólo pueden referirse a la tabla en indexación" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2943 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "las expresiones estadísticas sólo pueden referirse a la tabla que está siendo referida" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:2986 #, c-format msgid "rules on materialized views are not supported" msgstr "las reglas en vistas materializadas no están soportadas" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3046 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "la condición WHERE de la regla no puede contener referencias a otras relaciones" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "las reglas con condiciones WHERE sólo pueden tener acciones SELECT, INSERT, UPDATE o DELETE" -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 -#: rewrite/rewriteHandler.c:537 rewrite/rewriteManip.c:1082 +#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237 +#: rewrite/rewriteHandler.c:544 rewrite/rewriteManip.c:1096 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "las sentencias UNION/INTERSECT/EXCEPT condicionales no están implementadas" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3154 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "una regla ON SELECT no puede usar OLD" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3158 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "una regla ON SELECT no puede usar NEW" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3167 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "una regla ON INSERT no puede usar OLD" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3173 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "una regla ON DELETE no puede usar NEW" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3201 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "no se puede hacer referencia a OLD dentro de una consulta WITH" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3208 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "no se puede hacer referencia a NEW dentro de una consulta WITH" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3664 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "cláusula DEFERRABLE mal puesta" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "no se permiten múltiples cláusulas DEFERRABLE/NOT DEFERRABLE" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3679 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "la cláusula NOT DEFERRABLE está mal puesta" -#: parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 gram.y:5993 +#: parser/parse_utilcmd.c:3692 parser/parse_utilcmd.c:3718 gram.y:6114 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "una restricción declarada INITIALLY DEFERRED debe ser DEFERRABLE" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3700 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "la cláusula INITIALLY DEFERRED está mal puesta" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "no se permiten múltiples cláusulas INITIALLY IMMEDIATE/DEFERRED" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3726 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "la cláusula INITIALLY IMMEDIATE está mal puesta" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3919 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE especifica un esquema (%s) diferente del que se está creando (%s)" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3954 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "«%s» no es una tabla particionada" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3961 #, c-format msgid "table \"%s\" is not partitioned" -msgstr "«la tabla %s» no está particionada" +msgstr "la tabla «%s» no está particionada" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3968 #, c-format msgid "index \"%s\" is not partitioned" msgstr "el índice «%s» no está particionado" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4008 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "una tabla particionada por hash no puede tener una partición default" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4025 #, c-format msgid "invalid bound specification for a hash partition" msgstr "especificación de borde no válida para partición de hash" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "el módulo para una partición hash debe ser un valor entero mayor que cero" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "remanente en partición hash debe ser menor que el módulo" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4051 #, c-format msgid "invalid bound specification for a list partition" msgstr "especificación de borde no válida para partición de lista" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4104 #, c-format msgid "invalid bound specification for a range partition" msgstr "especificación de borde no válida para partición de rango" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4110 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM debe especificar exactamente un valor por cada columna de particionado" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4114 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO debe especificar exactamente un valor por cada columna de particionado" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4228 #, c-format msgid "cannot specify NULL in range bound" msgstr "no se puede especificar NULL en borde de rango" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4277 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "cada borde que sigue a un MAXVALUE debe ser también MAXVALUE" -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4284 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "cada borde que siga a un MINVALUE debe ser también MINVALUE" -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4327 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "el valor especificado no puede ser convertido al tipo %s para la columna «%s»" @@ -18661,12 +19022,12 @@ msgstr "UESCAPE debe ser seguido por un literal de cadena simple" msgid "invalid Unicode escape character" msgstr "carácter de escape Unicode no válido" -#: parser/parser.c:347 scan.l:1390 +#: parser/parser.c:347 scan.l:1393 #, c-format msgid "invalid Unicode escape value" msgstr "valor de escape Unicode no válido" -#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701 +#: parser/parser.c:494 utils/adt/varlena.c:6640 scan.l:716 #, c-format msgid "invalid Unicode escape" msgstr "valor de escape Unicode no válido" @@ -18676,8 +19037,8 @@ msgstr "valor de escape Unicode no válido" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Los escapes Unicode deben ser \\XXXX o \\+XXXXXX." -#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678 -#: scan.l:694 +#: parser/parser.c:523 utils/adt/varlena.c:6665 scan.l:677 scan.l:693 +#: scan.l:709 #, c-format msgid "invalid Unicode surrogate pair" msgstr "par sustituto (surrogate) Unicode no válido" @@ -18687,89 +19048,89 @@ msgstr "par sustituto (surrogate) Unicode no válido" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "el identificador «%s» se truncará a «%.*s»" -#: partitioning/partbounds.c:2921 +#: partitioning/partbounds.c:2920 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "la partición «%s» está en conflicto con la partición default «%s» existente" -#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991 +#: partitioning/partbounds.c:3013 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" msgstr "cada módulo de partición hash debe ser un factor del próximo mayor módulo" -#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014 #, c-format msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"." msgstr "El nuevo módulo %d no es un factor de %d, el módulo de la partición existente «%s»." -#: partitioning/partbounds.c:2993 +#: partitioning/partbounds.c:2992 #, c-format msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "El nuevo módulo %d no es divisible para %d, el módulo de la partición existente «%s»." -#: partitioning/partbounds.c:3128 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "borde de rango vació especificado para la partición «%s»" -#: partitioning/partbounds.c:3130 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "El límite inferior %s especificado es mayor o igual al límite superior %s." -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "la partición «%s» traslaparía con la partición «%s»" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "se omitió recorrer la tabla foránea «%s» que es una partición de la partición default «%s»" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" msgstr "remanente en partición hash debe ser un valor entero mayor que o igual a cero" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "«%s» es una tabla particionada por hash" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "el número de columnas de particionamiento (%d) no coincide con el número de llaves de particionamiento provistas (%d)" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "la columna %d de la llave de particionamiento tiene tipo «%s», pero el valor dado es de tipo «%s»" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "la columna %d de la llave de particionamiento tiene tipo «%s», pero el valor dado es de tipo «%s»" -#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 +#: port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "no se pudo hacer stat al directorio de datos «%s»: %m" -#: port/pg_shmem.c:223 port/sysv_shmem.c:223 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "could not create shared memory segment: %m" msgstr "no se pudo crear el segmento de memoria compartida: %m" -#: port/pg_shmem.c:224 port/sysv_shmem.c:224 +#: port/pg_shmem.c:225 port/sysv_shmem.c:225 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "La llamada a sistema fallida fue shmget(key=%lu, size=%zu, 0%o)." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:229 port/sysv_shmem.c:229 #, 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" @@ -18778,7 +19139,7 @@ msgstr "" "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedió el parámetro SHMMAX del kernel, o posiblemente que es menor que el parámetro SHMMIN del kernel.\n" "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida." -#: port/pg_shmem.c:235 port/sysv_shmem.c:235 +#: port/pg_shmem.c:236 port/sysv_shmem.c:236 #, 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" @@ -18787,7 +19148,7 @@ msgstr "" "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedió el parámetro SHMALL del kernel. Puede ser necesario reconfigurar el kernel con un SHMALL mayor.\n" "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida." -#: port/pg_shmem.c:241 port/sysv_shmem.c:241 +#: port/pg_shmem.c:242 port/sysv_shmem.c:242 #, 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" @@ -18796,62 +19157,62 @@ msgstr "" "Este error *no* significa que se haya quedado sin espacio en disco. Ocurre cuando se han usado todos los IDs de memoria compartida disponibles, en cuyo caso puede incrementar el parámetro SHMMNI del kernel, o bien porque se ha alcanzado el límite total de memoria compartida.\n" "La documentación de PostgreSQL contiene más información acerca de la configuración de memoria compartida." -#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646 #, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "huge_page_size debe ser 0 en esta plataforma." +msgid "\"huge_page_size\" must be 0 on this platform." +msgstr "«huge_page_size» debe ser 0 en esta plataforma." -#: port/pg_shmem.c:646 port/sysv_shmem.c:646 +#: port/pg_shmem.c:655 port/sysv_shmem.c:655 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "no se pudo mapear memoria compartida anónima: %m" -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:657 port/sysv_shmem.c:657 #, 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 "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedía la memoria disponible, el espacio de intercambio (swap), o las huge pages. Para reducir el tamaño de la petición (actualmente %zu bytes), reduzca el uso de memoria compartida de PostgreSQL, quizás reduciendo el parámetro shared_buffers o el parámetro max_connections." +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 "Este error normalmente significa que la petición de un segmento de memoria compartida de PostgreSQL excedía la memoria disponible, el espacio de intercambio (swap), o las huge pages. Para reducir el tamaño de la petición (actualmente %zu bytes), reduzca el uso de memoria compartida de PostgreSQL, quizás reduciendo el parámetro «shared_buffers» o el parámetro «max_connections»." -#: port/pg_shmem.c:716 port/sysv_shmem.c:716 +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 #, c-format msgid "huge pages not supported on this platform" msgstr "las huge pages no están soportadas en esta plataforma" -#: port/pg_shmem.c:723 port/sysv_shmem.c:723 +#: port/pg_shmem.c:732 port/sysv_shmem.c:732 #, c-format -msgid "huge pages not supported with the current shared_memory_type setting" -msgstr "las huge pages no están soportadas con la configuración actual de shared_memory_type" +msgid "huge pages not supported with the current \"shared_memory_type\" setting" +msgstr "las huge pages no están soportadas con la configuración actual de «shared_memory_type»" -#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1351 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1401 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "el bloque de memoria compartida preexistente (clave %lu, ID %lu) aún está en uso" -#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1353 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1403 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Termine cualquier proceso de servidor asociado al directorio de datos «%s»." -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "no se pudo crear semáforos: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "La llamada a sistema fallida fue semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" -"This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n" +"This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL." msgstr "" "Este error *no* significa que se haya quedado sin espacio en disco.\n" -"Ocurre cuando se alcanza el límite del sistema del número de semáforos (SEMMNI), o bien cuando se excede el total de semáforos del sistema (SEMMNS).Necesita incrementar el parámetro respectivo del kernel. Alternativamente, reduzca el consumo de semáforos de PostgreSQL reduciendo el parámetro max_connections.\n" +"Ocurre cuando se alcanza el límite del sistema del número de semáforos (SEMMNI), o bien cuando se excede el total de semáforos del sistema (SEMMNS). Necesita incrementar el parámetro respectivo del kernel. Alternativamente, reduzca el consumo de semáforos de PostgreSQL reduciendo el parámetro «max_connections».\n" "La documentación de PostgreSQL contiene más información acerca de cómo configurar su sistema para PostgreSQL." -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "Probablemente necesita incrementar el valor SEMVMX del kernel hasta al menos %d. Examine la documentación de PostgreSQL para obtener más detalles." @@ -18976,1185 +19337,1079 @@ msgstr "La llamada a sistema fallida fue DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "La llamada a sistema fallida fue MapViewOfFileEx." -#: postmaster/autovacuum.c:417 -#, c-format -msgid "could not fork autovacuum launcher process: %m" -msgstr "no se pudo iniciar el lanzador autovacuum: %m" - -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:686 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "proceso ayudante autovacuum tomó demasiado tiempo para iniciarse; cancelado" -#: postmaster/autovacuum.c:1489 -#, c-format -msgid "could not fork autovacuum worker process: %m" -msgstr "no se pudo lanzar el proceso «autovacuum worker»: %m" - -#: postmaster/autovacuum.c:2322 +#: postmaster/autovacuum.c:2203 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "autovacuum: eliminando tabla temporal huérfana «%s.%s.%s»" -#: postmaster/autovacuum.c:2558 +#: postmaster/autovacuum.c:2439 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "vacuum automático de la tabla «%s.%s.%s»" -#: postmaster/autovacuum.c:2561 +#: postmaster/autovacuum.c:2442 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "análisis automático de la tabla «%s.%s.%s»" -#: postmaster/autovacuum.c:2755 +#: postmaster/autovacuum.c:2636 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "procesando elemento de tarea de la tabla «%s.%s.%s»" -#: postmaster/autovacuum.c:3369 +#: postmaster/autovacuum.c:3254 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "autovacuum no fue iniciado debido a un error de configuración" -#: postmaster/autovacuum.c:3370 +#: postmaster/autovacuum.c:3255 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Active la opción «track_counts»." -#: postmaster/bgworker.c:259 +#: postmaster/bgworker.c:260 #, c-format msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" msgstr "estado inconsistente de proceso ayudante (max_worker_processes=%d, total_slots=%d)" -#: postmaster/bgworker.c:669 -#, fuzzy, c-format -#| msgid "background worker \"%s\": only dynamic background workers can request notification" +#: postmaster/bgworker.c:651 +#, c-format msgid "background worker \"%s\": background workers without shared memory access are not supported" -msgstr "proceso ayudante «%s»: sólo los ayudantes dinámicos pueden pedir notificaciones" +msgstr "proceso ayudante «%s»: los ayudantes sin acceso a memoria compartida no están soportdos" -#: postmaster/bgworker.c:680 +#: postmaster/bgworker.c:662 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "proceso ayudante «%s»: no se puede solicitar una conexión a base de datos si está iniciando en el momento de inicio de postmaster" -#: postmaster/bgworker.c:694 +#: postmaster/bgworker.c:676 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "proceso ayudante «%s»: intervalo de reinicio no válido" -#: postmaster/bgworker.c:709 +#: postmaster/bgworker.c:691 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "proceso ayudante «%s»: los ayudantes paralelos no pueden ser configurados «restart»" -#: postmaster/bgworker.c:733 tcop/postgres.c:3255 +#: postmaster/bgworker.c:715 tcop/postgres.c:3312 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "terminando el proceso ayudante «%s» debido a una orden del administrador" -#: postmaster/bgworker.c:890 +#: postmaster/bgworker.c:888 #, c-format -msgid "background worker \"%s\": must be registered in shared_preload_libraries" -msgstr "proceso ayudante «%s»: debe ser registrado en shared_preload_libraries" +msgid "background worker \"%s\": must be registered in \"shared_preload_libraries\"" +msgstr "proceso ayudante «%s»: debe ser registrado en «shared_preload_libraries»" -#: postmaster/bgworker.c:902 +#: postmaster/bgworker.c:911 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "proceso ayudante «%s»: sólo los ayudantes dinámicos pueden pedir notificaciones" -#: postmaster/bgworker.c:917 +#: postmaster/bgworker.c:926 #, c-format msgid "too many background workers" msgstr "demasiados procesos ayudantes" -#: postmaster/bgworker.c:918 +#: postmaster/bgworker.c:927 #, 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] "Hasta %d proceso ayudante puede registrarse con la configuración actual." msgstr[1] "Hasta %d procesos ayudantes pueden registrarse con la configuración actual." -# FIXME a %s would be nice here -#: postmaster/bgworker.c:922 +#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445 #, c-format -msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "Considere incrementar el parámetro de configuración «max_worker_processes»." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "Considere incrementar el parámetro de configuración «%s»." -#: postmaster/checkpointer.c:431 +#: postmaster/checkpointer.c:441 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" msgstr[0] "los puntos de control están ocurriendo con demasiada frecuencia (cada %d segundo)" msgstr[1] "los puntos de control están ocurriendo con demasiada frecuencia (cada %d segundos)" -# FIXME a %s would be nice here -#: postmaster/checkpointer.c:435 -#, c-format -msgid "Consider increasing the configuration parameter \"max_wal_size\"." -msgstr "Considere incrementar el parámetro de configuración «max_wal_size»." - -#: postmaster/checkpointer.c:1059 +#: postmaster/checkpointer.c:1067 #, c-format msgid "checkpoint request failed" -msgstr "falló la petición de punto de control" +msgstr "falló la petición de checkpoint" -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1068 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Vea los mensajes recientes en el registro del servidor para obtener más detalles." -#: postmaster/pgarch.c:416 +#: postmaster/launch_backend.c:381 #, c-format -msgid "archive_mode enabled, yet archiving is not configured" -msgstr "" +msgid "could not execute server process \"%s\": %m" +msgstr "no se pudo lanzar el proceso servidor «%s»: %m" + +#: postmaster/launch_backend.c:434 +#, c-format +msgid "could not create backend parameter file mapping: error code %lu" +msgstr "no se pudo crear mapeo de archivo de parámetros de servidor: código de error %lu" + +#: postmaster/launch_backend.c:442 +#, c-format +msgid "could not map backend parameter memory: error code %lu" +msgstr "no se pudo mapear memoria para parámetros de servidor: código de error %lu" + +#: postmaster/launch_backend.c:459 +#, c-format +msgid "subprocess command line too long" +msgstr "orden de subproceso demasiado larga" + +#: postmaster/launch_backend.c:477 +#, c-format +msgid "CreateProcess() call failed: %m (error code %lu)" +msgstr "llamada a CreateProcess() falló: %m (código de error %lu)" + +#: postmaster/launch_backend.c:504 +#, c-format +msgid "could not unmap view of backend parameter file: error code %lu" +msgstr "no se pudo desmapear la vista del archivo de parámetros de servidor: código de error %lu" + +#: postmaster/launch_backend.c:508 +#, c-format +msgid "could not close handle to backend parameter file: error code %lu" +msgstr "no se pudo cerrar el archivo de parámetros de servidor: código de error %lu" + +#: postmaster/launch_backend.c:530 +#, c-format +msgid "giving up after too many tries to reserve shared memory" +msgstr "renunciar después de demasiados intentos de reservar memoria compartida" + +#: postmaster/launch_backend.c:531 +#, c-format +msgid "This might be caused by ASLR or antivirus software." +msgstr "Esto podría deberse a ASLR o un software antivirus." + +#: postmaster/launch_backend.c:834 +#, c-format +msgid "could not duplicate socket %d for use in backend: error code %d" +msgstr "no se pudo duplicar el socket %d para su empleo en el backend: código de error %d" + +#: postmaster/launch_backend.c:866 +#, c-format +msgid "could not create inherited socket: error code %d\n" +msgstr "no se pudo crear el socket heradado: código de error %d\n" + +#: postmaster/launch_backend.c:895 +#, c-format +msgid "could not open backend variables file \"%s\": %m\n" +msgstr "no se pudo abrir el archivo de variables de servidor «%s»: %m\n" + +#: postmaster/launch_backend.c:901 +#, c-format +msgid "could not read from backend variables file \"%s\": %m\n" +msgstr "no se pudo leer el archivo de variables de servidor «%s»: %m\n" -#: postmaster/pgarch.c:438 +#: postmaster/launch_backend.c:912 +#, c-format +msgid "could not read startup data from backend variables file \"%s\": %m\n" +msgstr "no se pudo leer el archivo de variables de servidor «%s»: %m\n" + +#: postmaster/launch_backend.c:924 +#, c-format +msgid "could not remove file \"%s\": %m\n" +msgstr "no se pudo eliminar el archivo «%s»: %m\n" + +#: postmaster/launch_backend.c:940 +#, c-format +msgid "could not map view of backend variables: error code %lu\n" +msgstr "no se pudo mapear la vista del archivo de variables: código de error %lu\n" + +#: postmaster/launch_backend.c:959 +#, c-format +msgid "could not unmap view of backend variables: error code %lu\n" +msgstr "no se pudo desmapear la vista del archivo de variables: código de error %lu\n" + +#: postmaster/launch_backend.c:966 +#, c-format +msgid "could not close handle to backend parameter variables: error code %lu\n" +msgstr "no se pudo cerrar el archivo de variables de servidor: código de error %lu\n" + +#: postmaster/pgarch.c:428 +#, c-format +msgid "\"archive_mode\" enabled, yet archiving is not configured" +msgstr "«archive_mode» está activado, pero el archivado no está configurado" + +#: postmaster/pgarch.c:452 #, c-format msgid "removed orphan archive status file \"%s\"" msgstr "eliminando archivo de estado huérfano «%s»" -#: postmaster/pgarch.c:448 +#: postmaster/pgarch.c:462 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" msgstr "la eliminación del archivo de estado huérfano «%s» falló demasiadas veces, se tratará de nuevo después" -#: postmaster/pgarch.c:484 +#: postmaster/pgarch.c:498 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "el archivado del archivo de WAL «%s» falló demasiadas veces, se tratará de nuevo más tarde" -#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 #, c-format -msgid "both archive_command and archive_library set" -msgstr "" +msgid "both \"archive_command\" and \"archive_library\" set" +msgstr "tanto «archive_command» como «archive_library» están definidos" -#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 #, c-format -msgid "Only one of archive_command, archive_library may be set." -msgstr "" +msgid "Only one of \"archive_command\", \"archive_library\" may be set." +msgstr "Sólo uno de «archive_command», «archive_library» puede ser definido." -#: postmaster/pgarch.c:809 +#: postmaster/pgarch.c:897 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "reiniciando el proceso archivador porque el valor de «archive_library» cambió" -#: postmaster/pgarch.c:846 +#: postmaster/pgarch.c:934 #, c-format msgid "archive modules have to define the symbol %s" -msgstr "" +msgstr "los módulos de archivado tienen que definir el símbolo %s" -#: postmaster/pgarch.c:852 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules must register an archive callback" msgstr "los módulos de archivado deben registrar un callback de archivado" -#: postmaster/postmaster.c:759 +#: postmaster/postmaster.c:661 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: argumento no válido para la opción -f: «%s»\n" -#: postmaster/postmaster.c:832 +#: postmaster/postmaster.c:734 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: argumento no válido para la opción -t: «%s»\n" -#: postmaster/postmaster.c:855 +#: postmaster/postmaster.c:757 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: argumento no válido: «%s»\n" -#: postmaster/postmaster.c:923 +#: postmaster/postmaster.c:825 #, c-format -msgid "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must be less than max_connections (%d)\n" -msgstr "" +msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" +msgstr "%s: «superuser_reserved_connections» (%d) más «reserved_connections» (%d) debe ser menor que «max_connections» (%d)\n" + +#: postmaster/postmaster.c:833 +#, c-format +msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" +msgstr "el archivador de WAL no puede activarse cuando «wal_level» es «minimal»" -#: postmaster/postmaster.c:931 +#: postmaster/postmaster.c:836 #, c-format -msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "el archivador de WAL no puede activarse cuando wal_level es «minimal»" +msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\"" +msgstr "el flujo de WAL («max_wal_senders» > 0) requiere que «wal_level» sea «replica» o «logical»" -#: postmaster/postmaster.c:934 +#: postmaster/postmaster.c:839 #, c-format -msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\"" -msgstr "el flujo de WAL (max_wal_senders > 0) requiere wal_level «replica» o «logical»" +msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" +msgstr "no se puede sumarizar WAL cuando «wal_level» es «minimal»" -#: postmaster/postmaster.c:942 +#: postmaster/postmaster.c:847 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: las tablas de palabras clave de fecha no son válidas, arréglelas\n" -#: postmaster/postmaster.c:1099 +#: postmaster/postmaster.c:1004 #, c-format msgid "could not create I/O completion port for child queue" msgstr "no se pudo crear el port E/S de reporte de completitud para la cola de procesos hijos" -#: postmaster/postmaster.c:1164 +#: postmaster/postmaster.c:1069 #, c-format msgid "ending log output to stderr" msgstr "terminando la salida de registro a stderr" -#: postmaster/postmaster.c:1165 +#: postmaster/postmaster.c:1070 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "La salida futura del registro será enviada al destino de log «%s»." -#: postmaster/postmaster.c:1176 +#: postmaster/postmaster.c:1081 #, c-format msgid "starting %s" msgstr "iniciando %s" -#: postmaster/postmaster.c:1236 +#: postmaster/postmaster.c:1143 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "no se pudo crear el socket de escucha para «%s»" -#: postmaster/postmaster.c:1242 +#: postmaster/postmaster.c:1149 #, c-format msgid "could not create any TCP/IP sockets" msgstr "no se pudo crear ningún socket TCP/IP" -#: postmaster/postmaster.c:1274 +#: postmaster/postmaster.c:1181 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister() falló: código de error %ld" -#: postmaster/postmaster.c:1325 +#: postmaster/postmaster.c:1234 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "no se pudo crear el socket de dominio Unix en el directorio «%s»" -#: postmaster/postmaster.c:1331 +#: postmaster/postmaster.c:1240 #, c-format msgid "could not create any Unix-domain sockets" msgstr "no se pudo crear ningún socket de dominio Unix" -#: postmaster/postmaster.c:1342 +#: postmaster/postmaster.c:1251 #, c-format msgid "no socket created for listening" msgstr "no se creó el socket de atención" -#: postmaster/postmaster.c:1373 +#: postmaster/postmaster.c:1282 #, c-format -msgid "%s: could not change permissions of external PID file \"%s\": %s\n" -msgstr "%s: no se pudo cambiar los permisos del archivo de PID externo «%s»: %s\n" +msgid "%s: could not change permissions of external PID file \"%s\": %m\n" +msgstr "%s: no se pudo cambiar los permisos del archivo de PID externo «%s»: %m\n" -#: postmaster/postmaster.c:1377 +#: postmaster/postmaster.c:1286 #, c-format -msgid "%s: could not write external PID file \"%s\": %s\n" -msgstr "%s: no pudo escribir en el archivo externo de PID «%s»: %s\n" +msgid "%s: could not write external PID file \"%s\": %m\n" +msgstr "%s: no pudo escribir en el archivo externo de PID «%s»: %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1405 utils/init/postinit.c:221 -#, fuzzy, c-format -#| msgid "could not load locale \"%s\"" +#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 +#, c-format msgid "could not load %s" -msgstr "no se pudo cargar la configuración regional «%s»" +msgstr "no se pudo cargar %s" -#: postmaster/postmaster.c:1431 +#: postmaster/postmaster.c:1342 #, c-format msgid "postmaster became multithreaded during startup" msgstr "postmaster se volvió multi-hilo durante la partida" -#: postmaster/postmaster.c:1432 +#: postmaster/postmaster.c:1343 postmaster/postmaster.c:3684 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Defina la variable de ambiente LC_ALL a un valor válido." -#: postmaster/postmaster.c:1533 +#: postmaster/postmaster.c:1442 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: no se pudo localizar la ruta de mi propio ejecutable" -#: postmaster/postmaster.c:1540 +#: postmaster/postmaster.c:1449 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: no se pudo localizar el ejecutable postgres correspondiente" -#: postmaster/postmaster.c:1563 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1472 utils/misc/tzparser.c:341 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "Esto puede indicar una instalación de PostgreSQL incompleta, o que el archivo «%s» ha sido movido de la ubicación adecuada." -#: postmaster/postmaster.c:1590 +#: postmaster/postmaster.c:1499 #, c-format msgid "" "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" -"but could not open file \"%s\": %s\n" +"but could not open file \"%s\": %m\n" msgstr "" "%s: no se pudo encontrar el sistema de base de datos\n" "Se esperaba encontrar en el directorio PGDATA «%s»,\n" -"pero no se pudo abrir el archivo «%s»: %s\n" +"pero no se pudo abrir el archivo «%s»: %m\n" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1887 +#: postmaster/postmaster.c:1789 #, c-format msgid "issuing %s to recalcitrant children" -msgstr "" +msgstr "enviando %s a hijos recalcitrantes" -#: postmaster/postmaster.c:1909 +#: postmaster/postmaster.c:1811 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "ejecutando un apagado inmediato porque el archivo de bloqueo del directorio de datos no es válido" -#: postmaster/postmaster.c:1984 postmaster/postmaster.c:2012 +#: postmaster/postmaster.c:1874 #, c-format -msgid "incomplete startup packet" -msgstr "el paquete de inicio está incompleto" +msgid "wrong key in cancel request for process %d" +msgstr "llave incorrecta en la petición de cancelación para el proceso %d" -#: postmaster/postmaster.c:1996 postmaster/postmaster.c:2029 +#: postmaster/postmaster.c:1886 #, c-format -msgid "invalid length of startup packet" -msgstr "el de paquete de inicio tiene largo incorrecto" +msgid "PID %d in cancel request did not match any process" +msgstr "el PID %d en la petición de cancelación no coincidió con ningún proceso" -#: postmaster/postmaster.c:2058 +#: postmaster/postmaster.c:2106 #, c-format -msgid "failed to send SSL negotiation response: %m" -msgstr "no se pudo enviar la respuesta de negociación SSL: %m" +msgid "received SIGHUP, reloading configuration files" +msgstr "se recibió SIGHUP, volviendo a cargar archivos de configuración" -#: postmaster/postmaster.c:2076 +#. translator: %s is a configuration file +#: postmaster/postmaster.c:2134 postmaster/postmaster.c:2138 #, c-format -msgid "received unencrypted data after SSL request" -msgstr "se recibieron datos no cifrados después de petición SSL" +msgid "%s was not reloaded" +msgstr "%s no fue vuelto a cargar" -#: postmaster/postmaster.c:2077 postmaster/postmaster.c:2121 +#: postmaster/postmaster.c:2148 #, c-format -msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." -msgstr "Esto podría ser un error en el software cliente o evidencia de un intento de ataque man-in-the-middle." +msgid "SSL configuration was not reloaded" +msgstr "la configuración SSL no fue vuelta a cargar" -#: postmaster/postmaster.c:2102 +#: postmaster/postmaster.c:2234 #, c-format -msgid "failed to send GSSAPI negotiation response: %m" -msgstr "no se pudo enviar la respuesta de negociación GSSAPI: %m" +msgid "received smart shutdown request" +msgstr "se recibió petición de apagado inteligente" -#: postmaster/postmaster.c:2120 +#: postmaster/postmaster.c:2275 #, c-format -msgid "received unencrypted data after GSSAPI encryption request" -msgstr "se recibieron datos no cifrados después de petición de cifrado GSSAPI" +msgid "received fast shutdown request" +msgstr "se recibió petición de apagado rápido" -#: postmaster/postmaster.c:2144 +#: postmaster/postmaster.c:2293 #, c-format -msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" -msgstr "el protocolo %u.%u no está soportado: servidor soporta %u.0 hasta %u.%u" +msgid "aborting any active transactions" +msgstr "abortando transacciones activas" -#: postmaster/postmaster.c:2211 -#, c-format -msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." -msgstr "Los valores válidos son: «false», 0, «true», 1, «database»." - -#: postmaster/postmaster.c:2252 -#, c-format -msgid "invalid startup packet layout: expected terminator as last byte" -msgstr "el paquete de inicio no es válido: se esperaba un terminador en el último byte" - -#: postmaster/postmaster.c:2269 -#, c-format -msgid "no PostgreSQL user name specified in startup packet" -msgstr "no se especifica un nombre de usuario en el paquete de inicio" - -#: postmaster/postmaster.c:2333 -#, c-format -msgid "the database system is starting up" -msgstr "el sistema de base de datos está iniciándose" - -#: postmaster/postmaster.c:2339 -#, c-format -msgid "the database system is not yet accepting connections" -msgstr "el sistema de bases de datos aún no está aceptando conexiones" - -#: postmaster/postmaster.c:2340 -#, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "Aún no se ha alcanzado un estado de recuperación consistente." - -#: postmaster/postmaster.c:2344 -#, c-format -msgid "the database system is not accepting connections" -msgstr "el sistema de bases de datos no está aceptando conexiones" - -#: postmaster/postmaster.c:2345 -#, c-format -msgid "Hot standby mode is disabled." -msgstr "El modo hot standby está desactivado." - -#: postmaster/postmaster.c:2350 -#, c-format -msgid "the database system is shutting down" -msgstr "el sistema de base de datos está apagándose" - -#: postmaster/postmaster.c:2355 -#, c-format -msgid "the database system is in recovery mode" -msgstr "el sistema de base de datos está en modo de recuperación" - -#: postmaster/postmaster.c:2360 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 -#, c-format -msgid "sorry, too many clients already" -msgstr "lo siento, ya tenemos demasiados clientes" - -#: postmaster/postmaster.c:2447 -#, c-format -msgid "wrong key in cancel request for process %d" -msgstr "llave incorrecta en la petición de cancelación para el proceso %d" - -#: postmaster/postmaster.c:2459 -#, c-format -msgid "PID %d in cancel request did not match any process" -msgstr "el PID %d en la petición de cancelación no coincidió con ningún proceso" - -#: postmaster/postmaster.c:2726 -#, c-format -msgid "received SIGHUP, reloading configuration files" -msgstr "se recibió SIGHUP, volviendo a cargar archivos de configuración" - -#. translator: %s is a configuration file -#: postmaster/postmaster.c:2750 postmaster/postmaster.c:2754 -#, c-format -msgid "%s was not reloaded" -msgstr "%s no fue vuelto a cargar" - -#: postmaster/postmaster.c:2764 -#, c-format -msgid "SSL configuration was not reloaded" -msgstr "la configuración SSL no fue vuelta a cargar" - -#: postmaster/postmaster.c:2854 -#, c-format -msgid "received smart shutdown request" -msgstr "se recibió petición de apagado inteligente" - -#: postmaster/postmaster.c:2895 -#, c-format -msgid "received fast shutdown request" -msgstr "se recibió petición de apagado rápido" - -#: postmaster/postmaster.c:2913 -#, c-format -msgid "aborting any active transactions" -msgstr "abortando transacciones activas" - -#: postmaster/postmaster.c:2937 +#: postmaster/postmaster.c:2317 #, c-format msgid "received immediate shutdown request" msgstr "se recibió petición de apagado inmediato" -#: postmaster/postmaster.c:3013 +#: postmaster/postmaster.c:2389 #, c-format msgid "shutdown at recovery target" msgstr "apagándose al alcanzar el destino de recuperación" -#: postmaster/postmaster.c:3031 postmaster/postmaster.c:3067 +#: postmaster/postmaster.c:2407 postmaster/postmaster.c:2443 msgid "startup process" msgstr "proceso de inicio" -#: postmaster/postmaster.c:3034 +#: postmaster/postmaster.c:2410 #, c-format msgid "aborting startup due to startup process failure" msgstr "abortando el inicio debido a una falla en el procesamiento de inicio" -#: postmaster/postmaster.c:3107 +#: postmaster/postmaster.c:2485 #, c-format msgid "database system is ready to accept connections" msgstr "el sistema de bases de datos está listo para aceptar conexiones" -#: postmaster/postmaster.c:3128 +#: postmaster/postmaster.c:2506 msgid "background writer process" msgstr "proceso background writer" -#: postmaster/postmaster.c:3175 +#: postmaster/postmaster.c:2553 msgid "checkpointer process" msgstr "proceso checkpointer" -#: postmaster/postmaster.c:3191 +#: postmaster/postmaster.c:2569 msgid "WAL writer process" msgstr "proceso escritor de WAL" -#: postmaster/postmaster.c:3206 +#: postmaster/postmaster.c:2584 msgid "WAL receiver process" msgstr "proceso receptor de WAL" -#: postmaster/postmaster.c:3221 +#: postmaster/postmaster.c:2598 +msgid "WAL summarizer process" +msgstr "proceso sumarizador de WAL" + +#: postmaster/postmaster.c:2613 msgid "autovacuum launcher process" msgstr "proceso lanzador de autovacuum" -#: postmaster/postmaster.c:3239 +#: postmaster/postmaster.c:2631 msgid "archiver process" msgstr "proceso de archivado" -#: postmaster/postmaster.c:3252 +#: postmaster/postmaster.c:2644 msgid "system logger process" msgstr "proceso de log" -#: postmaster/postmaster.c:3309 +#: postmaster/postmaster.c:2661 +msgid "slot sync worker process" +msgstr "proceso sincronizador de slot" + +#: postmaster/postmaster.c:2717 #, c-format msgid "background worker \"%s\"" msgstr "proceso ayudante «%s»" -#: postmaster/postmaster.c:3388 postmaster/postmaster.c:3408 -#: postmaster/postmaster.c:3415 postmaster/postmaster.c:3433 +#: postmaster/postmaster.c:2796 postmaster/postmaster.c:2816 +#: postmaster/postmaster.c:2823 postmaster/postmaster.c:2841 msgid "server process" msgstr "proceso de servidor" -#: postmaster/postmaster.c:3487 +#: postmaster/postmaster.c:2895 #, c-format msgid "terminating any other active server processes" msgstr "terminando todos los otros procesos de servidor activos" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3662 +#: postmaster/postmaster.c:3082 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) terminó con código de salida %d" -#: postmaster/postmaster.c:3664 postmaster/postmaster.c:3676 -#: postmaster/postmaster.c:3686 postmaster/postmaster.c:3697 +#: postmaster/postmaster.c:3084 postmaster/postmaster.c:3096 +#: postmaster/postmaster.c:3106 postmaster/postmaster.c:3117 #, c-format msgid "Failed process was running: %s" msgstr "El proceso que falló estaba ejecutando: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3673 +#: postmaster/postmaster.c:3093 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) fue terminado por una excepción 0x%X" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3683 +#: postmaster/postmaster.c:3103 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) fue terminado por una señal %d: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3695 +#: postmaster/postmaster.c:3115 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) terminó con código %d no reconocido" -#: postmaster/postmaster.c:3903 +#: postmaster/postmaster.c:3331 #, c-format msgid "abnormal database system shutdown" msgstr "apagado anormal del sistema de bases de datos" -#: postmaster/postmaster.c:3929 +#: postmaster/postmaster.c:3357 #, c-format msgid "shutting down due to startup process failure" msgstr "apagando debido a una falla en el procesamiento de inicio" -#: postmaster/postmaster.c:3935 +#: postmaster/postmaster.c:3363 #, c-format -msgid "shutting down because restart_after_crash is off" -msgstr "apagando debido a que restart_after_crash está desactivado" +msgid "shutting down because \"restart_after_crash\" is off" +msgstr "apagando debido a que «restart_after_crash» está desactivado" -#: postmaster/postmaster.c:3947 +#: postmaster/postmaster.c:3375 #, c-format msgid "all server processes terminated; reinitializing" msgstr "todos los procesos fueron terminados; reinicializando" -#: postmaster/postmaster.c:4141 postmaster/postmaster.c:5459 -#: postmaster/postmaster.c:5857 +#: postmaster/postmaster.c:3574 postmaster/postmaster.c:3985 +#: postmaster/postmaster.c:4374 #, c-format msgid "could not generate random cancel key" msgstr "no se pudo generar una llave de cancelación aleatoria" -#: postmaster/postmaster.c:4203 +#: postmaster/postmaster.c:3607 #, c-format msgid "could not fork new process for connection: %m" msgstr "no se pudo lanzar el nuevo proceso para la conexión: %m" -#: postmaster/postmaster.c:4245 +#: postmaster/postmaster.c:3649 msgid "could not fork new process for connection: " msgstr "no se pudo lanzar el nuevo proceso para la conexión: " -#: postmaster/postmaster.c:4351 -#, c-format -msgid "connection received: host=%s port=%s" -msgstr "conexión recibida: host=%s port=%s" - -#: postmaster/postmaster.c:4356 -#, c-format -msgid "connection received: host=%s" -msgstr "conexión recibida: host=%s" - -#: postmaster/postmaster.c:4593 -#, c-format -msgid "could not execute server process \"%s\": %m" -msgstr "no se pudo lanzar el proceso servidor «%s»: %m" - -#: postmaster/postmaster.c:4651 -#, c-format -msgid "could not create backend parameter file mapping: error code %lu" -msgstr "no se pudo crear mapeo de archivo de parámetros de servidor: código de error %lu" - -#: postmaster/postmaster.c:4660 -#, c-format -msgid "could not map backend parameter memory: error code %lu" -msgstr "no se pudo mapear memoria para parámetros de servidor: código de error %lu" - -#: postmaster/postmaster.c:4687 -#, c-format -msgid "subprocess command line too long" -msgstr "orden de subproceso demasiado larga" - -#: postmaster/postmaster.c:4705 -#, c-format -msgid "CreateProcess() call failed: %m (error code %lu)" -msgstr "llamada a CreateProcess() falló: %m (código de error %lu)" - -#: postmaster/postmaster.c:4732 -#, c-format -msgid "could not unmap view of backend parameter file: error code %lu" -msgstr "no se pudo desmapear la vista del archivo de parámetros de servidor: código de error %lu" - -#: postmaster/postmaster.c:4736 -#, c-format -msgid "could not close handle to backend parameter file: error code %lu" -msgstr "no se pudo cerrar el archivo de parámetros de servidor: código de error %lu" - -#: postmaster/postmaster.c:4758 -#, c-format -msgid "giving up after too many tries to reserve shared memory" -msgstr "renunciar después de demasiados intentos de reservar memoria compartida" - -#: postmaster/postmaster.c:4759 -#, c-format -msgid "This might be caused by ASLR or antivirus software." -msgstr "Esto podría deberse a ASLR o un software antivirus." - -#: postmaster/postmaster.c:4932 -#, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "No se pudo cargar la configuración SSL en proceso secundario" - -#: postmaster/postmaster.c:5057 +#: postmaster/postmaster.c:3683 #, c-format -msgid "Please report this to <%s>." -msgstr "Por favor reporte esto a <%s>." +#| msgid "postmaster became multithreaded during startup" +msgid "postmaster became multithreaded" +msgstr "postmaster se volvió multi-hilo" -#: postmaster/postmaster.c:5125 +#: postmaster/postmaster.c:3752 #, c-format msgid "database system is ready to accept read-only connections" msgstr "el sistema de bases de datos está listo para aceptar conexiones de sólo lectura" -#: postmaster/postmaster.c:5383 -#, c-format -msgid "could not fork startup process: %m" -msgstr "no se pudo lanzar el proceso de inicio: %m" - -#: postmaster/postmaster.c:5387 -#, c-format -msgid "could not fork archiver process: %m" -msgstr "no se pudo lanzar el proceso de archivado: %m" - -#: postmaster/postmaster.c:5391 -#, c-format -msgid "could not fork background writer process: %m" -msgstr "no se pudo lanzar el background writer: %m" - -#: postmaster/postmaster.c:5395 -#, c-format -msgid "could not fork checkpointer process: %m" -msgstr "no se pudo lanzar el checkpointer: %m" - -#: postmaster/postmaster.c:5399 -#, c-format -msgid "could not fork WAL writer process: %m" -msgstr "no se pudo lanzar el proceso escritor de WAL: %m" - -#: postmaster/postmaster.c:5403 -#, c-format -msgid "could not fork WAL receiver process: %m" -msgstr "no se pudo lanzar el proceso receptor de WAL: %m" - -#: postmaster/postmaster.c:5407 +#: postmaster/postmaster.c:3935 #, c-format -msgid "could not fork process: %m" -msgstr "no se pudo lanzar el proceso: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "no se pudo lanzar el proceso «%s»: %m" -#: postmaster/postmaster.c:5608 postmaster/postmaster.c:5635 +#: postmaster/postmaster.c:4173 postmaster/postmaster.c:4207 #, c-format msgid "database connection requirement not indicated during registration" msgstr "el requerimiento de conexión a base de datos no fue indicado durante el registro" -#: postmaster/postmaster.c:5619 postmaster/postmaster.c:5646 +#: postmaster/postmaster.c:4183 postmaster/postmaster.c:4217 #, c-format msgid "invalid processing mode in background worker" msgstr "modo de procesamiento no válido en proceso ayudante" -#: postmaster/postmaster.c:5731 +#: postmaster/postmaster.c:4277 #, c-format -msgid "could not fork worker process: %m" -msgstr "no se pudo lanzar el proceso ayudante: %m" +msgid "could not fork background worker process: %m" +msgstr "no se pudo lanzar el background writer: %m" -#: postmaster/postmaster.c:5843 +#: postmaster/postmaster.c:4360 #, c-format -msgid "no slot available for new worker process" +msgid "no slot available for new background worker process" msgstr "no hay slot disponible para un nuevo proceso ayudante" -#: postmaster/postmaster.c:6174 -#, c-format -msgid "could not duplicate socket %d for use in backend: error code %d" -msgstr "no se pudo duplicar el socket %d para su empleo en el backend: código de error %d" - -#: postmaster/postmaster.c:6206 -#, c-format -msgid "could not create inherited socket: error code %d\n" -msgstr "no se pudo crear el socket heradado: código de error %d\n" - -#: postmaster/postmaster.c:6235 -#, c-format -msgid "could not open backend variables file \"%s\": %s\n" -msgstr "no se pudo abrir el archivo de variables de servidor «%s»: %s\n" - -#: postmaster/postmaster.c:6242 -#, c-format -msgid "could not read from backend variables file \"%s\": %s\n" -msgstr "no se pudo leer el archivo de variables de servidor «%s»: %s\n" - -#: postmaster/postmaster.c:6251 -#, c-format -msgid "could not remove file \"%s\": %s\n" -msgstr "no se pudo eliminar el archivo «%s»: %s\n" - -#: postmaster/postmaster.c:6268 -#, c-format -msgid "could not map view of backend variables: error code %lu\n" -msgstr "no se pudo mapear la vista del archivo de variables: código de error %lu\n" - -#: postmaster/postmaster.c:6277 -#, c-format -msgid "could not unmap view of backend variables: error code %lu\n" -msgstr "no se pudo desmapear la vista del archivo de variables: código de error %lu\n" - -#: postmaster/postmaster.c:6284 -#, c-format -msgid "could not close handle to backend parameter variables: error code %lu\n" -msgstr "no se pudo cerrar el archivo de variables de servidor: código de error %lu\n" - -#: postmaster/postmaster.c:6443 +#: postmaster/postmaster.c:4623 #, c-format msgid "could not read exit code for process\n" msgstr "no se pudo leer el código de salida del proceso\n" -#: postmaster/postmaster.c:6485 +#: postmaster/postmaster.c:4665 #, c-format msgid "could not post child completion status\n" msgstr "no se pudo publicar el estado de completitud del proceso hijo\n" -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 +#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 #, c-format msgid "could not read from logger pipe: %m" msgstr "no se pudo leer desde la tubería de log: %m" -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 +#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 #, c-format msgid "could not create pipe for syslog: %m" msgstr "no se pudo crear la tubería para syslog: %m" -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:712 #, c-format msgid "could not fork system logger: %m" msgstr "no se pudo crear el proceso de log: %m" -#: postmaster/syslogger.c:713 +#: postmaster/syslogger.c:731 #, c-format msgid "redirecting log output to logging collector process" msgstr "redirigiendo la salida del registro al proceso recolector de registro" -#: postmaster/syslogger.c:714 +#: postmaster/syslogger.c:732 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "La salida futura del registro aparecerá en el directorio «%s»." -#: postmaster/syslogger.c:722 +#: postmaster/syslogger.c:740 #, c-format msgid "could not redirect stdout: %m" msgstr "no se pudo redirigir stdout: %m" -#: postmaster/syslogger.c:727 postmaster/syslogger.c:744 +#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 #, c-format msgid "could not redirect stderr: %m" msgstr "no se pudo redirigir stderr: %m" -#: postmaster/syslogger.c:1177 +#: postmaster/syslogger.c:1128 #, c-format -msgid "could not write to log file: %s\n" -msgstr "no se pudo escribir al archivo de log: %s\n" +msgid "could not write to log file: %m\n" +msgstr "no se pudo escribir al archivo de log: %m\n" -#: postmaster/syslogger.c:1295 +#: postmaster/syslogger.c:1246 #, c-format msgid "could not open log file \"%s\": %m" msgstr "no se pudo abrir el archivo de registro «%s»: %m" -#: postmaster/syslogger.c:1385 +#: postmaster/syslogger.c:1336 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "desactivando rotación automática (use SIGHUP para reactivarla)" -#: regex/regc_pg_locale.c:242 +#: postmaster/walsummarizer.c:740 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "la sumarización de WAL no está progresando" + +#: postmaster/walsummarizer.c:741 +#, c-format +msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." +msgstr "La sumarización de WAL se necesita hasta %X/%X, pero está detenido en %X/%X en disco y %X/%X en memoria." + +#: postmaster/walsummarizer.c:755 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "todavía esperando al resumen de WAL hasta %X/%X después de %ld segundo" +msgstr[1] "todavía esperando al resumen de WAL hasta %X/%X después de %ld segundos" + +#: postmaster/walsummarizer.c:760 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "El resumen ha alcanzado %X/%X en disco y %X/%X en memoria." + +#: postmaster/walsummarizer.c:1000 +#, c-format +msgid "could not find a valid record after %X/%X" +msgstr "no se pudo encontrar un registro válido después de %X/%X" + +#: postmaster/walsummarizer.c:1045 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X: %s" +msgstr "no se pudo leer WAL del timeline %u en %X/%X: %s" + +#: postmaster/walsummarizer.c:1051 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X" +msgstr "no se pudo leer WAL del timeline %u en %X/%X" + +#: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "no se pudo determinar qué ordenamiento usar para la expresión regular" -#: regex/regc_pg_locale.c:265 +#: regex/regc_pg_locale.c:262 #, c-format msgid "nondeterministic collations are not supported for regular expressions" msgstr "los ordenamientos no determinísticos no están soportados para expresiones regulares" -#: replication/libpqwalreceiver/libpqwalreceiver.c:197 -#: replication/libpqwalreceiver/libpqwalreceiver.c:280 -#, fuzzy, c-format -#| msgid "redo is not required" +#: replication/libpqwalreceiver/libpqwalreceiver.c:267 +#: replication/libpqwalreceiver/libpqwalreceiver.c:358 +#, c-format msgid "password is required" -msgstr "no se requiere redo" +msgstr "una contraseña es requerida" -#: replication/libpqwalreceiver/libpqwalreceiver.c:198 +#: replication/libpqwalreceiver/libpqwalreceiver.c:268 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." -msgstr "" +msgstr "No-superusuario no se puede conectar si el servidor no pide una constraseña." -#: replication/libpqwalreceiver/libpqwalreceiver.c:199 +#: replication/libpqwalreceiver/libpqwalreceiver.c:269 #, c-format -msgid "Target server's authentication method must be changed. or set password_required=false in the subscription attributes." -msgstr "" +msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." +msgstr "El método de autenticación del servidor de destino debe cambiarse, o definir password_required=false en los parámetros de suscripción." -#: replication/libpqwalreceiver/libpqwalreceiver.c:211 +#: replication/libpqwalreceiver/libpqwalreceiver.c:285 #, c-format msgid "could not clear search path: %s" msgstr "no se pudo limpiar la ruta de búsqueda: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:257 +#: replication/libpqwalreceiver/libpqwalreceiver.c:331 +#: replication/libpqwalreceiver/libpqwalreceiver.c:517 #, c-format msgid "invalid connection string syntax: %s" msgstr "sintaxis de cadena de conexión no válida: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:281 +#: replication/libpqwalreceiver/libpqwalreceiver.c:359 #, c-format msgid "Non-superusers must provide a password in the connection string." -msgstr "" +msgstr "No-superusuario debe proveer una contraseña en la cadena de conexión." -#: replication/libpqwalreceiver/libpqwalreceiver.c:307 +#: replication/libpqwalreceiver/libpqwalreceiver.c:386 #, c-format msgid "could not parse connection string: %s" msgstr "no se pudo interpretar la cadena de conexión: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:380 +#: replication/libpqwalreceiver/libpqwalreceiver.c:459 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "no se pudo recibir el identificador de sistema y el ID de timeline del servidor primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:392 -#: replication/libpqwalreceiver/libpqwalreceiver.c:635 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:763 #, c-format msgid "invalid response from primary server" msgstr "respuesta no válida del servidor primario" -#: replication/libpqwalreceiver/libpqwalreceiver.c:393 +#: replication/libpqwalreceiver/libpqwalreceiver.c:477 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "No se pudo identificar el sistema: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d o más campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:478 -#: replication/libpqwalreceiver/libpqwalreceiver.c:485 -#: replication/libpqwalreceiver/libpqwalreceiver.c:515 +#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:613 +#: replication/libpqwalreceiver/libpqwalreceiver.c:643 #, c-format msgid "could not start WAL streaming: %s" msgstr "no se pudo iniciar el flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 +#: replication/libpqwalreceiver/libpqwalreceiver.c:667 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "no se pudo enviar el mensaje fin-de-flujo al primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:562 +#: replication/libpqwalreceiver/libpqwalreceiver.c:690 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "conjunto de resultados inesperado después del fin-de-flujo" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:705 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ocurrió un error mientras se apagaba el flujo COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:715 #, c-format msgid "error reading result of streaming command: %s" msgstr "ocurrió un error mientras se leía la orden de flujo: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 -#: replication/libpqwalreceiver/libpqwalreceiver.c:832 +#: replication/libpqwalreceiver/libpqwalreceiver.c:724 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "resultado inesperado después de CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:751 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "no se pudo recibir el archivo de historia de timeline del servidor primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:636 +#: replication/libpqwalreceiver/libpqwalreceiver.c:764 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Se esperaba 1 tupla con 2 campos, se obtuvieron %d tuplas con %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:795 -#: replication/libpqwalreceiver/libpqwalreceiver.c:848 -#: replication/libpqwalreceiver/libpqwalreceiver.c:855 +#: replication/libpqwalreceiver/libpqwalreceiver.c:920 +#: replication/libpqwalreceiver/libpqwalreceiver.c:973 +#: replication/libpqwalreceiver/libpqwalreceiver.c:980 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "no se pudo recibir datos desde el flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:875 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 #, c-format msgid "could not send data to WAL stream: %s" msgstr "no se pudo enviar datos al flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:967 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 #, c-format msgid "could not create replication slot \"%s\": %s" -msgstr "no se pudo create el slot de replicación «%s»: %s" +msgstr "no se pudo crear el slot de replicación «%s»: %s" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#, c-format +msgid "could not alter replication slot \"%s\": %s" +msgstr "no se pudo alterar el slot de replicación «%s»: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1013 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 #, c-format msgid "invalid query response" msgstr "respuesta no válida a consulta" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1014 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Se esperaban %d campos, se obtuvieron %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1084 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 #, c-format msgid "the query interface requires a database connection" msgstr "la interfaz de consulta requiere una conexión a base de datos" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1115 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 msgid "empty query" msgstr "consulta vacía" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1121 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 msgid "unexpected pipeline mode" msgstr "modo pipeline inesperado" #: replication/logical/applyparallelworker.c:719 -#, fuzzy, c-format -#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" +#, c-format msgid "logical replication parallel apply worker for subscription \"%s\" has finished" -msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha terminado" +msgstr "el ayudante paralelo «apply» de replicación lógica para la suscripción «%s» ha terminado" -#: replication/logical/applyparallelworker.c:825 -#, fuzzy, c-format -#| msgid "lost connection to parallel worker" +#: replication/logical/applyparallelworker.c:822 +#, c-format msgid "lost connection to the logical replication apply worker" -msgstr "se ha perdido la conexión al ayudante paralelo" - -#: replication/logical/applyparallelworker.c:893 -#, fuzzy, c-format -#| msgid "could not map dynamic shared memory segment" -msgid "unable to map dynamic shared memory segment" -msgstr "no se pudo mapear el segmento de memoria compartida dinámica" +msgstr "se ha perdido la conexión al ayudante paralelo “apply” de replicación" -#: replication/logical/applyparallelworker.c:899 -#, fuzzy, c-format -#| msgid "invalid magic number in dynamic shared memory segment" -msgid "bad magic number in dynamic shared memory segment" -msgstr "número mágico no válido en segmento de memoria compartida dinámica" - -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 -#: replication/logical/worker.c:447 -#, fuzzy -#| msgid "lost connection to parallel worker" +#: replication/logical/applyparallelworker.c:1024 +#: replication/logical/applyparallelworker.c:1026 msgid "logical replication parallel apply worker" -msgstr "se ha perdido la conexión al ayudante paralelo" +msgstr "ayudante paralelo “apply” de replicación lógica" -#: replication/logical/applyparallelworker.c:1043 -#, fuzzy, c-format -#| msgid "terminating logical replication worker due to timeout" +#: replication/logical/applyparallelworker.c:1040 +#, c-format msgid "logical replication parallel apply worker exited due to error" -msgstr "terminando el proceso de replicación lógica debido a que se agotó el tiempo de espera" +msgstr "el ayudante paralelo “apply” de replicación lógica terminó debido a un error" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 -#, fuzzy, c-format -#| msgid "lost connection to parallel worker" +#: replication/logical/applyparallelworker.c:1127 +#: replication/logical/applyparallelworker.c:1300 +#, c-format msgid "lost connection to the logical replication parallel apply worker" -msgstr "se ha perdido la conexión al ayudante paralelo" +msgstr "se perdió la conexión al ayudante paralelo “apply” de replicación lógica" -#: replication/logical/applyparallelworker.c:1183 -#, fuzzy, c-format -#| msgid "could not send tuple to shared-memory queue" +#: replication/logical/applyparallelworker.c:1180 +#, c-format msgid "could not send data to shared-memory queue" -msgstr "no se pudo enviar la tupla a la cola en memoria compartida" +msgstr "no se pudo enviar datos a la cola en memoria compartida" -#: replication/logical/applyparallelworker.c:1218 +#: replication/logical/applyparallelworker.c:1215 #, c-format msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" -msgstr "" +msgstr "el ayudante paralelo «apply» de replicación lógica serializará los cambios restantes de la transacción remota %u a un archivo" # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/logical/decode.c:180 replication/logical/logical.c:140 -#, fuzzy, c-format -#| msgid "logical decoding requires wal_level >= logical" -msgid "logical decoding on standby requires wal_level >= logical on the primary" -msgstr "la decodificación lógica requiere wal_level >= logical" +#: replication/logical/decode.c:177 replication/logical/logical.c:141 +#, c-format +msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" +msgstr "la decodificación lógica en standby requiere «wal_level» >= «logical» en el primario" -#: replication/logical/launcher.c:331 +#: replication/logical/launcher.c:334 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" -msgstr "no se pueden iniciar procesos ayudantes de replicación cuando max_replication_slots = 0" +msgstr "no se pueden iniciar procesos ayudantes de replicación lógica cuando max_replication_slots = 0" -#: replication/logical/launcher.c:424 +#: replication/logical/launcher.c:427 #, c-format msgid "out of logical replication worker slots" -msgstr "se agotaron los slots de procesos ayudantes de replicación" +msgstr "se agotaron los slots de procesos ayudantes de replicación lógica" -#: replication/logical/launcher.c:425 +#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 +#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023 +#: storage/lmgr/lock.c:2836 storage/lmgr/lock.c:4221 storage/lmgr/lock.c:4286 +#: storage/lmgr/lock.c:4636 storage/lmgr/predicate.c:2469 +#: storage/lmgr/predicate.c:2484 storage/lmgr/predicate.c:3881 #, c-format -msgid "You might need to increase max_logical_replication_workers." -msgstr "Puede ser necesario incrementar max_logical_replication_workers." +msgid "You might need to increase \"%s\"." +msgstr "Puede ser necesario incrementar «%s»." -#: replication/logical/launcher.c:498 +#: replication/logical/launcher.c:513 #, c-format msgid "out of background worker slots" msgstr "se acabaron los slots de procesos ayudante" -#: replication/logical/launcher.c:499 -#, c-format -msgid "You might need to increase max_worker_processes." -msgstr "Puede ser necesario incrementar max_worker_processes." - -#: replication/logical/launcher.c:705 +#: replication/logical/launcher.c:720 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "el slot del worker de replicación lógica %d está vacío, no se puede adjuntar" -#: replication/logical/launcher.c:714 +#: replication/logical/launcher.c:729 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" msgstr "el slot de replicación lógica %d ya está siendo utilizado por otro worker, no se puede adjuntar" # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:121 #, c-format -msgid "logical decoding requires wal_level >= logical" -msgstr "la decodificación lógica requiere wal_level >= logical" +msgid "logical decoding requires \"wal_level\" >= \"logical\"" +msgstr "la decodificación lógica requiere «wal_level» >= «logical»" -#: replication/logical/logical.c:125 +#: replication/logical/logical.c:126 #, c-format msgid "logical decoding requires a database connection" msgstr "decodificación lógica requiere una conexión a una base de datos" -#: replication/logical/logical.c:363 replication/logical/logical.c:517 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "no se puede usar un slot de replicación física para decodificación lógica" -#: replication/logical/logical.c:368 replication/logical/logical.c:522 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "el slot de replicación «%s» no fue creado en esta base de datos" -#: replication/logical/logical.c:375 +#: replication/logical/logical.c:377 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "no se puede crear un slot de replicación lógica en una transacción que ha efectuado escrituras" -#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#: replication/logical/logical.c:540 +#, c-format +msgid "cannot use replication slot \"%s\" for logical decoding" +msgstr "no se puede usar el slot de replicación «%s» para decodificación lógica" + +#: replication/logical/logical.c:542 replication/slot.c:798 +#: replication/slot.c:829 +#, c-format +msgid "This replication slot is being synchronized from the primary server." +msgstr "Este slot de replicación está siendo sincronizado desde el servidor primario." + +#: replication/logical/logical.c:543 +#, c-format +msgid "Specify another replication slot." +msgstr "Especifique otro slot de replicación." + +#: replication/logical/logical.c:554 replication/logical/logical.c:561 #, c-format msgid "can no longer get changes from replication slot \"%s\"" msgstr "ya no se pueden recibir cambios desde el slot de replicación «%s»" -#: replication/logical/logical.c:536 +#: replication/logical/logical.c:556 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "Este slot ha sido invalidado porque excedió el máximo del tamaño de reserva." -#: replication/logical/logical.c:543 -#, fuzzy, c-format -#| msgid "This slot has been invalidated because it exceeded the maximum reserved size." +#: replication/logical/logical.c:563 +#, c-format msgid "This slot has been invalidated because it was conflicting with recovery." -msgstr "Este slot ha sido invalidado porque excedió el máximo del tamaño de reserva." +msgstr "Este slot ha sido invalidado porque estaba en conflicto con la recuperación." -#: replication/logical/logical.c:608 +#: replication/logical/logical.c:628 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "iniciando la decodificación lógica para el slot «%s»" -#: replication/logical/logical.c:610 +#: replication/logical/logical.c:630 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Transacciones en flujo comprometiendo después de %X/%X, leyendo WAL desde %X/%X." -#: replication/logical/logical.c:758 +#: replication/logical/logical.c:778 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "slot «%s», plugin de salida «%s», en el callback %s, LSN asociado %X/%X" # FIXME must quote callback name? Need a translator: comment? -#: replication/logical/logical.c:764 +#: replication/logical/logical.c:784 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "slot «%s», plugin de salida «%s», en el callback %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:955 replication/logical/logical.c:1000 +#: replication/logical/logical.c:1045 replication/logical/logical.c:1091 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "durante la preparación, la replicación lógica requiere una función callback %s" -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1323 replication/logical/logical.c:1372 +#: replication/logical/logical.c:1413 replication/logical/logical.c:1499 +#: replication/logical/logical.c:1548 #, c-format msgid "logical streaming requires a %s callback" msgstr "el flujo lógico requiere una función callback %s" -#: replication/logical/logical.c:1438 +#: replication/logical/logical.c:1458 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "durante la preparación, el flujo lógico requiere una función callback %s" -#: replication/logical/logicalfuncs.c:126 +#: replication/logical/logicalfuncs.c:123 #, c-format msgid "slot name must not be null" msgstr "el nombre de slot no debe ser null" -#: replication/logical/logicalfuncs.c:142 +#: replication/logical/logicalfuncs.c:139 #, c-format msgid "options array must not be null" msgstr "el array de opciones no debe ser null" -#: replication/logical/logicalfuncs.c:159 +#: replication/logical/logicalfuncs.c:156 #, c-format msgid "array must be one-dimensional" msgstr "el array debe ser unidimensional" -#: replication/logical/logicalfuncs.c:165 +#: replication/logical/logicalfuncs.c:162 #, c-format msgid "array must not contain nulls" msgstr "el array no debe contener nulls" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420 +#: utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "el array debe tener un número par de elementos" -#: replication/logical/logicalfuncs.c:227 +#: replication/logical/logicalfuncs.c:224 #, c-format msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "el plugin de salida de decodificación lógica «%s» produce salida binaria, pero «%s» espera datos textuales" #: replication/logical/origin.c:190 #, c-format -msgid "cannot query or manipulate replication origin when max_replication_slots = 0" -msgstr "no se puede consultar o manipular orígenes de replicación cuando max_replication_slots = 0" +msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0" +msgstr "no se puede consultar o manipular orígenes de replicación cuando «max_replication_slots» = 0" #: replication/logical/origin.c:195 #, c-format @@ -20167,22 +20422,19 @@ msgid "replication origin \"%s\" does not exist" msgstr "no existe el origen de replicación «%s»" #: replication/logical/origin.c:331 -#, fuzzy, c-format -#| msgid "could not create replication slot \"%s\": %s" +#, c-format msgid "could not find free replication origin ID" -msgstr "no se pudo create el slot de replicación «%s»: %s" +msgstr "no se pudo encontrar un ID de origen de replicación disponible" #: replication/logical/origin.c:365 -#, fuzzy, c-format -#| msgid "could not drop replication slot \"%s\" on publisher: %s" +#, c-format msgid "could not drop replication origin with ID %d, in use by PID %d" -msgstr "no se pudo eliminar el slot de replicación «%s» en editor (publisher): %s" +msgstr "no se pudo eliminar el origen de replicación con ID %d, en uso por el PID %d" #: replication/logical/origin.c:492 -#, fuzzy, c-format -#| msgid "replication origin \"%s\" does not exist" +#, c-format msgid "replication origin with ID %d does not exist" -msgstr "no existe el origen de replicación «%s»" +msgstr "no existe el origen de replicación con ID %d" #: replication/logical/origin.c:757 #, c-format @@ -20191,1319 +20443,1582 @@ msgstr "el checkpoint de replicación tiene número mágico erróneo %u en lugar #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase max_replication_slots" -msgstr "no se pudo encontrar una estructura de replicación libre, incremente max_replication_slots" +msgid "could not find free replication state, increase \"max_replication_slots\"" +msgstr "no se pudo encontrar una estructura de replicación libre, incremente «max_replication_slots»" #: replication/logical/origin.c:806 -#, fuzzy, c-format -#| msgid "recovery restart point at %X/%X" +#, c-format msgid "recovered replication state of node %d to %X/%X" -msgstr "restartpoint de recuperación en %X/%X" +msgstr "recuperado el estado de replicación del nodo %d a %X/%X" #: replication/logical/origin.c:816 #, c-format msgid "replication slot checkpoint has wrong checksum %u, expected %u" msgstr "el checkpoint del slot de replicación tiene suma de verificación errónea %u, se esperaba %u" -#: replication/logical/origin.c:944 replication/logical/origin.c:1141 -#, fuzzy, c-format -#| msgid "replication slot \"%s\" is active for PID %d" +#: replication/logical/origin.c:944 replication/logical/origin.c:1143 +#, c-format msgid "replication origin with ID %d is already active for PID %d" -msgstr "el slot de replicación «%s» está activo para el PID %d" +msgstr "el origen de replicación con ID %d está activo para el PID %d" -#: replication/logical/origin.c:955 replication/logical/origin.c:1153 -#, fuzzy, c-format -#| msgid "could not find free replication state, increase max_replication_slots" +#: replication/logical/origin.c:955 replication/logical/origin.c:1156 +#, c-format msgid "could not find free replication state slot for replication origin with ID %d" -msgstr "no se pudo encontrar una estructura de replicación libre, incremente max_replication_slots" +msgstr "no se pudo encontrar una estructura de replicación libre para el origen de replicación con el ID %d" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2086 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 +#: replication/slot.c:2384 #, c-format -msgid "Increase max_replication_slots and try again." -msgstr "Aumente max_replication_slots y reintente." +msgid "Increase \"max_replication_slots\" and try again." +msgstr "Aumente «max_replication_slots» y reintente." -#: replication/logical/origin.c:1112 +#: replication/logical/origin.c:1114 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "no se puede establecer un destino de replicación cuando ya hay uno definido" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1199 replication/logical/origin.c:1415 +#: replication/logical/origin.c:1435 #, c-format msgid "no replication origin is configured" msgstr "no hay un destino de replicación configurado" -#: replication/logical/origin.c:1282 +#: replication/logical/origin.c:1285 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "el nombre de origen de replicación «%s» está reservado" -#: replication/logical/origin.c:1284 -#, fuzzy, c-format -#| msgid "Role names starting with \"pg_\" are reserved." +#: replication/logical/origin.c:1287 +#, c-format msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." -msgstr "Los nombres de rol que empiezan con «pg_» están reservados." +msgstr "Los nombres de origen «%s», «%s» y los que empiezan con «pg_» están reservados." -#: replication/logical/relation.c:240 +#: replication/logical/relation.c:242 #, c-format msgid "\"%s\"" msgstr "«%s»" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:245 #, c-format msgid ", \"%s\"" msgstr ", «%s»" -#: replication/logical/relation.c:249 +#: replication/logical/relation.c:251 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" msgstr[0] "a la relación destino de replicación lógica «%s.%s» le falta la columna replicada: %s" msgstr[1] "a la relación destino de replicación lógica «%s.%s» le faltan las columnas replicadas: %s" -#: replication/logical/relation.c:304 +#: replication/logical/relation.c:306 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "la relación de destino de replicación lógica «%s.%s» usa columnas de sistemas en el índice REPLICA IDENTITY" -#: replication/logical/relation.c:396 +#: replication/logical/relation.c:398 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "la relación destino de replicación lógica «%s.%s» no existe" -#: replication/logical/reorderbuffer.c:3936 +#: replication/logical/reorderbuffer.c:3999 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "no se pudo escribir al archivo de datos para el XID %u: %m" -#: replication/logical/reorderbuffer.c:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4370 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "no se pudo leer desde el archivo de desborde de reorderbuffer: %m" -#: replication/logical/reorderbuffer.c:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4349 +#: replication/logical/reorderbuffer.c:4374 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "no se pudo leer desde el archivo de desborde de reorderbuffer: se leyeron sólo %d en ve de %u bytes" -#: replication/logical/reorderbuffer.c:4561 +#: replication/logical/reorderbuffer.c:4624 #, c-format msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "no se pudo borrar el archivo «%s» durante la eliminación de pg_replslot/%s/xid*: %m" # FIXME almost duplicated again!? -#: replication/logical/reorderbuffer.c:5057 +#: replication/logical/reorderbuffer.c:5120 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "no se pudo leer del archivo «%s»: se leyeron %d en lugar de %d bytes" -#: replication/logical/snapbuild.c:639 +#: replication/logical/slotsync.c:215 +#, c-format +msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot" +msgstr "no se puede sincronizar el slot de replicación «%s» porque el slot remoto precede al slot local" + +#: replication/logical/slotsync.c:217 +#, c-format +msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u." +msgstr "El slot remoto tiene LSN %X/%X y xmin de catálogo %u, pero el slot local tiene LSN %X/%X y xmin de catálogo %u." + +#: replication/logical/slotsync.c:459 +#, c-format +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "se eliminó el slot de replicación «%s» de la base de datos con OID %u" + +#: replication/logical/slotsync.c:579 +#, c-format +msgid "could not synchronize replication slot \"%s\"" +msgstr "no se pudo sincronizar el slot de replicación «%s»" + +#: replication/logical/slotsync.c:580 +#, c-format +msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X." +msgstr "La decodificación lógica no pudo encontrar un punto consistente desde el LSN del slot local %X/%X." + +#: replication/logical/slotsync.c:589 +#, c-format +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "el slot de replicación «%s» recién creado está listo para la sincronización" + +#: replication/logical/slotsync.c:628 +#, c-format +msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" +msgstr "omitiendo sincronización de slot porque el LSN %X/%X de sincronización recibido para el slot «%s» está adelantado respecto a la posición del standby %X/%X" + +#: replication/logical/slotsync.c:650 +#, c-format +msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby" +msgstr "saliendo de la sincronización de slot porque un slot con el mismo nombre «%s» ya existe en el standby" + +#: replication/logical/slotsync.c:819 +#, c-format +msgid "could not fetch failover logical slots info from the primary server: %s" +msgstr "no se pudo obtener la información de slots “failover” de replicación lógica del servidor primario: %s" + +#: replication/logical/slotsync.c:965 +#, c-format +msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s" +msgstr "no se pudo obtener información del primary_slot_name «%s» del servidor primario: %s" + +#: replication/logical/slotsync.c:967 +#, c-format +msgid "Check if primary_slot_name is configured correctly." +msgstr "Verificando si primary_slot_name está configurado correctamente." + +#: replication/logical/slotsync.c:987 +#, c-format +msgid "cannot synchronize replication slots from a standby server" +msgstr "no puede sincronizar slots de replicación de un servidor standby" + +#. translator: second %s is a GUC variable name +#: replication/logical/slotsync.c:996 +#, c-format +msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "el slot de replicación «%s» especificado por «%s» no existe en el servidor primario" + +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1029 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "la sincronización de slots de replicación requiere que «%s» esté especificado en «%s»" + +# FIXME see slot.c:779. See also postmaster.c:835 +#: replication/logical/slotsync.c:1050 +#, c-format +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "la sincronización de slots de replicación requiere «wal_level» >= «logical»" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "la sincronización de slots de replicación requiere que «%s» esté definido" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1077 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "la sincronización de slots de replicación requiere que «%s» esté activado" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1129 +#, c-format +msgid "replication slot synchronization worker will shut down because \"%s\" is disabled" +msgstr "el proceso de sincronización de slots de replicación terminará porque «%s» está desactivado" + +#: replication/logical/slotsync.c:1138 +#, c-format +msgid "replication slot synchronization worker will restart because of a parameter change" +msgstr "el proceso de sincronización de slots de replicación se reiniciará debido a un cambio de parámetro" + +#: replication/logical/slotsync.c:1162 +#, c-format +msgid "replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "el trabajador de sincronización de slots de replicación está apagándose al recibir SIGINT" + +#: replication/logical/slotsync.c:1287 +#, c-format +msgid "cannot synchronize replication slots when standby promotion is ongoing" +msgstr "no se puede sincronizar los slots de replicación cuando la promoción de standby está teniendo lugar" + +#: replication/logical/slotsync.c:1295 +#, c-format +msgid "cannot synchronize replication slots concurrently" +msgstr "no se puede sincronizar slots de replicación concurrentemente" + +#: replication/logical/slotsync.c:1403 +#, c-format +msgid "slot sync worker started" +msgstr "iniciado el trabajador de sincronización de slots" + +#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 +#: replication/walreceiver.c:307 +#, c-format +msgid "could not connect to the primary server: %s" +msgstr "no se pudo conectar al servidor primario: %s" + +#: replication/logical/snapbuild.c:653 #, c-format msgid "initial slot snapshot too large" msgstr "el snapshot inicial del slot es demasiado grande" # FIXME: snapshot? instantánea? -#: replication/logical/snapbuild.c:693 +#: replication/logical/snapbuild.c:707 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" msgstr[0] "se exportó un snapshot de decodificación lógica: «%s» con %u ID de transacción" msgstr[1] "se exportó un snapshot de decodificación lógica: «%s» con %u IDs de transacción" -#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1992 +#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "la decodificación lógica encontró un punto consistente en %X/%X" -#: replication/logical/snapbuild.c:1390 +#: replication/logical/snapbuild.c:1406 #, c-format msgid "There are no running transactions." msgstr "No hay transacciones en ejecución." -#: replication/logical/snapbuild.c:1432 +#: replication/logical/snapbuild.c:1453 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "decodificación lógica encontró punto de inicio en %X/%X" -#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 +#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Esperando que las (aproximadamente %d) transacciones más antiguas que %u terminen." -#: replication/logical/snapbuild.c:1456 +#: replication/logical/snapbuild.c:1477 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "la decodificación lógica encontró un punto consistente inicial en %X/%X" -#: replication/logical/snapbuild.c:1482 +#: replication/logical/snapbuild.c:1503 #, c-format msgid "There are no old transactions anymore." msgstr "Ya no hay transacciones antiguas en ejecución." # FIXME "snapbuild"? -#: replication/logical/snapbuild.c:1883 +#: replication/logical/snapbuild.c:1904 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "el archivo de estado de snapbuild «%s» tiene número mágico erróneo: %u en lugar de %u" -#: replication/logical/snapbuild.c:1889 +#: replication/logical/snapbuild.c:1910 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "el archivo de estado de snapbuild «%s» tiene versión no soportada: %u en vez de %u" -#: replication/logical/snapbuild.c:1930 +#: replication/logical/snapbuild.c:1951 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "suma de verificación no coincidente para el archivo de estado de snapbuild «%s»: es %u, debería ser %u" -#: replication/logical/snapbuild.c:1994 +#: replication/logical/snapbuild.c:2019 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "La decodificación lógica comenzará usando el snapshot guardado." -#: replication/logical/snapbuild.c:2101 +#: replication/logical/snapbuild.c:2126 #, c-format msgid "could not parse file name \"%s\"" msgstr "no se pudo interpretar el nombre de archivo «%s»" -#: replication/logical/tablesync.c:152 +#: replication/logical/tablesync.c:161 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha terminado" -#: replication/logical/tablesync.c:621 -#, fuzzy, c-format -#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" +#: replication/logical/tablesync.c:641 +#, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" -msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se reiniciará para activar «two_phase»" -#: replication/logical/tablesync.c:796 replication/logical/tablesync.c:938 +#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" -msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s" +msgstr "no se pudo obtener información de la tabla «%s.%s» del publicador: %s" -#: replication/logical/tablesync.c:803 +#: replication/logical/tablesync.c:834 #, c-format msgid "table \"%s.%s\" not found on publisher" -msgstr "la tabla \"%s.%s\" no fue encontrada en el editor (publisher)" +msgstr "la tabla \"%s.%s\" no fue encontrada en el publicador" -#: replication/logical/tablesync.c:861 -#, fuzzy, c-format -#| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" +#: replication/logical/tablesync.c:892 +#, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" -msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s" +msgstr "no se pudo obtener información de la lista de columnas para la tabla «%s.%s» del publicador: %s" -#: replication/logical/tablesync.c:1040 -#, fuzzy, c-format -#| msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" +#: replication/logical/tablesync.c:1071 +#, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" -msgstr "no se pudo obtener información de la tabla «%s.%s» del editor (publisher): %s" +msgstr "no se pudo obtener información de la cláusula WHERE para la tabla «%s.%s» del publicador: %s" -#: replication/logical/tablesync.c:1191 +#: replication/logical/tablesync.c:1230 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "no se pudo iniciar la copia de contenido inicial para de la tabla «%s.%s»: %s" -#: replication/logical/tablesync.c:1398 replication/logical/worker.c:2387 -#, c-format -msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" -msgstr "" - -#: replication/logical/tablesync.c:1413 +#: replication/logical/tablesync.c:1429 #, c-format msgid "table copy could not start transaction on publisher: %s" -msgstr "la copia de la tabla no pudo iniciar una transacción en el editor (publisher): %s" +msgstr "la copia de la tabla no pudo iniciar una transacción en el publicador: %s" -#: replication/logical/tablesync.c:1455 +#: replication/logical/tablesync.c:1472 #, c-format msgid "replication origin \"%s\" already exists" msgstr "el origen de replicación «%s» ya existe" -#: replication/logical/tablesync.c:1468 +#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 #, c-format -msgid "table copy could not finish transaction on publisher: %s" -msgstr "la copia de tabla no pudo terminar la transacción en el editor (publisher): %s" - -#: replication/logical/worker.c:445 -#, fuzzy -#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" -msgid "logical replication table synchronization worker" -msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado" +msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" +msgstr "el usuario «%s» no puede replicar en relaciones con seguridad de registros activa: «%s»" -#: replication/logical/worker.c:449 -#, fuzzy -#| msgid "out of logical replication worker slots" -msgid "logical replication apply worker" -msgstr "se agotaron los slots de procesos ayudantes de replicación" +#: replication/logical/tablesync.c:1518 +#, c-format +msgid "table copy could not finish transaction on publisher: %s" +msgstr "la copia de tabla no pudo terminar la transacción en el publicador: %s" -#: replication/logical/worker.c:512 -#, fuzzy, c-format -#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" +#: replication/logical/worker.c:481 +#, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" -msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá" -#: replication/logical/worker.c:514 +#: replication/logical/worker.c:483 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." -msgstr "" +msgstr "No se puede gestionar replicación en flujo usando procesos en paralelo hasta que todas las tablas han sido sincronizadas." -#: replication/logical/worker.c:876 replication/logical/worker.c:991 +#: replication/logical/worker.c:852 replication/logical/worker.c:967 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "el formato de datos binarios es incorrecto en columna de replicación lógica %d" -#: replication/logical/worker.c:2526 +#: replication/logical/worker.c:2500 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" -msgstr "el editor (publisher) no envía la columna identidad de réplica esperada por la relación de destino de replicación lógica «%s.%s»" +msgstr "el publicador no envía la columna identidad de réplica esperada por la relación de destino de replicación lógica «%s.%s»" -#: replication/logical/worker.c:2533 +#: replication/logical/worker.c:2507 #, 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 relación destino de replicación lógica «%s.%s» no tiene índice REPLICA IDENTITY ni PRIMARY KEY y la relación publicada no tiene REPLICA IDENTITY FULL" -#: replication/logical/worker.c:3384 -#, fuzzy, c-format -#| msgid "invalid standby message type \"%c\"" -msgid "invalid logical replication message type \"%c\"" -msgstr "el tipo «%c» de mensaje del standby no es válido" +#: replication/logical/worker.c:3371 +#, c-format +msgid "invalid logical replication message type \"??? (%d)\"" +msgstr "tipo de mensaje de replicación lógica no válido «??? (%d)»" -#: replication/logical/worker.c:3556 +#: replication/logical/worker.c:3543 #, c-format msgid "data stream from publisher has ended" msgstr "el flujo de datos del publisher ha terminado" -#: replication/logical/worker.c:3707 +#: replication/logical/worker.c:3697 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "terminando el proceso de replicación lógica debido a que se agotó el tiempo de espera" -#. translator: first %s is the name of logical replication worker -#: replication/logical/worker.c:3902 +#: replication/logical/worker.c:3891 #, c-format -msgid "%s for subscription \"%s\" will stop because the subscription was removed" -msgstr "" +msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá porque la suscripción fue eliminada" -#. translator: first %s is the name of logical replication worker -#: replication/logical/worker.c:3916 +#: replication/logical/worker.c:3905 #, c-format -msgid "%s for subscription \"%s\" will stop because the subscription was disabled" -msgstr "" +msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se detendrá porque la suscripción fue inhabilitada" -#: replication/logical/worker.c:3947 -#, fuzzy, c-format -#| msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" +#: replication/logical/worker.c:3936 +#, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" -msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado" +msgstr "el ayudante paralelo «apply» de replicación lógica para la suscripción «%s» se reiniciará por un cambio de parámetro" -#. translator: first %s is the name of logical replication worker -#: replication/logical/worker.c:3952 +#: replication/logical/worker.c:3940 #, c-format -msgid "%s for subscription \"%s\" will restart because of a parameter change" -msgstr "" +msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» se reiniciará por un cambio de parámetro" -#. translator: %s is the name of logical replication worker -#: replication/logical/worker.c:4476 +#: replication/logical/worker.c:3954 #, c-format -msgid "%s for subscription %u will not start because the subscription was removed during startup" -msgstr "" +msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked" +msgstr "el proceso “apply” paralelo de replicación lógica para la suscripción «%s» se detendrá porque los privilegios de superusuario del dueño de la suscripción han sido revocados" -#. translator: first %s is the name of logical replication worker -#: replication/logical/worker.c:4492 +#: replication/logical/worker.c:3958 #, c-format -msgid "%s for subscription \"%s\" will not start because the subscription was disabled during startup" -msgstr "" +msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked" +msgstr "el proceso de replicación lógica para la suscripción «%s» se reiniciará porque los privilegios de superusuario del dueño de la suscripción han sido revocados" + +#: replication/logical/worker.c:4478 +#, c-format +msgid "subscription has no replication slot set" +msgstr "la suscripción no tiene un slot de replicación establecido" + +#: replication/logical/worker.c:4591 +#, c-format +msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" +msgstr "el ayudante «apply» de replicación lógica para la suscripción %u no se iniciará porque la suscripción fue eliminada durante el inicio" + +#: replication/logical/worker.c:4607 +#, c-format +msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» no se iniciará porque la suscripción fue inhabilitada durante el inicio" -#: replication/logical/worker.c:4509 +#: replication/logical/worker.c:4631 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "el ayudante de sincronización de tabla de replicación lógica para la suscripción «%s», tabla «%s» ha iniciado" -#. translator: first %s is the name of logical replication worker -#: replication/logical/worker.c:4515 -#, fuzzy, c-format -#| msgid "subscription \"%s\" already exists" -msgid "%s for subscription \"%s\" has started" -msgstr "la suscripción «%s» ya existe" - -#: replication/logical/worker.c:4590 +#: replication/logical/worker.c:4636 #, c-format -msgid "subscription has no replication slot set" -msgstr "la suscripción no tiene un slot de replicación establecido" +msgid "logical replication apply worker for subscription \"%s\" has started" +msgstr "el ayudante «apply» de replicación lógica para la suscripción «%s» ha iniciado" -#: replication/logical/worker.c:4757 -#, fuzzy, c-format -#| msgid "cursor \"%s\" has been declared but not opened" +#: replication/logical/worker.c:4758 +#, c-format msgid "subscription \"%s\" has been disabled because of an error" -msgstr "el cursor «%s» fue declarado pero no abierto" +msgstr "la suscripción «%s» ha sido inhabilitada debido a un error" -#: replication/logical/worker.c:4805 -#, fuzzy, c-format -#| msgid "cannot create logical replication slot in transaction that has performed writes" +#: replication/logical/worker.c:4806 +#, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" -msgstr "no se puede crear un slot de replicación lógica en una transacción que ha efectuado escrituras" +msgstr "iniciando el ignorado en la replicación lógica de la transacción en el LSN %X/%X" -#: replication/logical/worker.c:4819 +#: replication/logical/worker.c:4820 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" -msgstr "" +msgstr "finalizó el ignorado en la replicación lógica de la transacción en el LSN %X/%X" -#: replication/logical/worker.c:4901 -#, fuzzy, c-format -#| msgid "subscription \"%s\" already exists" +#: replication/logical/worker.c:4902 +#, c-format msgid "skip-LSN of subscription \"%s\" cleared" -msgstr "la suscripción «%s» ya existe" +msgstr "el «skip-LSN» de la suscripción «%s» ha sido borrado" -#: replication/logical/worker.c:4902 +#: replication/logical/worker.c:4903 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." -msgstr "" +msgstr "La ubicación de WAL (LSN) de término %X/%X de la transacción remota no coincidió con el skip-LSN %X/%X." -#: replication/logical/worker.c:4928 +#: replication/logical/worker.c:4940 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s»" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:4944 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» en la transacción %u" -#: replication/logical/worker.c:4937 +#: replication/logical/worker.c:4949 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» en la transacción %u, concluida en %X/%X" -#: replication/logical/worker.c:4948 +#: replication/logical/worker.c:4960 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación destino de replicación «%s.%s» en la transacción %u" -#: replication/logical/worker.c:4955 +#: replication/logical/worker.c:4967 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» en la transacción %u, concluida en %X/%X" -#: replication/logical/worker.c:4966 +#: replication/logical/worker.c:4978 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» columna «%s» en la transacción %u" -#: replication/logical/worker.c:4974 +#: replication/logical/worker.c:4986 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" -msgstr "" +msgstr "procesando datos remotos de origen de replicación «%s» durante el mensaje de tipo «%s» para la relación de destino «%s.%s» columna «%s» en la transacción %u, concluida en %X/%X" -#: replication/pgoutput/pgoutput.c:318 +#: replication/pgoutput/pgoutput.c:322 #, c-format msgid "invalid proto_version" msgstr "proto_version no válido" -#: replication/pgoutput/pgoutput.c:323 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version «%s» fuera de rango" -#: replication/pgoutput/pgoutput.c:340 +#: replication/pgoutput/pgoutput.c:344 #, c-format msgid "invalid publication_names syntax" msgstr "sintaxis de publication_names no válida" -#: replication/pgoutput/pgoutput.c:443 +#: replication/pgoutput/pgoutput.c:414 replication/pgoutput/pgoutput.c:418 #, c-format -msgid "client sent proto_version=%d but server only supports protocol %d or lower" -msgstr "" +msgid "option \"%s\" missing" +msgstr "falta la opción «%s»" -#: replication/pgoutput/pgoutput.c:449 -#, fuzzy, c-format -#| msgid "requested proto_version=%d does not support streaming, need %d or higher" -msgid "client sent proto_version=%d but server only supports protocol %d or higher" -msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior" +#: replication/pgoutput/pgoutput.c:478 +#, c-format +msgid "client sent proto_version=%d but server only supports protocol %d or lower" +msgstr "el cliente envió proto_version=%d pero el servidor sólo soporta el protocolo %d o inferior" -#: replication/pgoutput/pgoutput.c:455 +#: replication/pgoutput/pgoutput.c:484 #, c-format -msgid "publication_names parameter missing" -msgstr "parámetro publication_names faltante" +msgid "client sent proto_version=%d but server only supports protocol %d or higher" +msgstr "el cliente envió proto_version=%d pero el servidor sólo soporta el protocolo %d o superior" -#: replication/pgoutput/pgoutput.c:469 +#: replication/pgoutput/pgoutput.c:499 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior" -#: replication/pgoutput/pgoutput.c:475 -#, fuzzy, c-format -#| msgid "requested proto_version=%d does not support streaming, need %d or higher" +#: replication/pgoutput/pgoutput.c:505 +#, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" -msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior" +msgstr "la proto_version=%d solicitada no soporta flujo en paralelo, se necesita %d o superior" -#: replication/pgoutput/pgoutput.c:480 +#: replication/pgoutput/pgoutput.c:510 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "se solicitó flujo, pero no está soportado por plugin de salida" -#: replication/pgoutput/pgoutput.c:497 -#, fuzzy, c-format -#| msgid "requested proto_version=%d does not support streaming, need %d or higher" +#: replication/pgoutput/pgoutput.c:524 +#, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" -msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior" +msgstr "la proto_version=%d solicitada no soporta «two-phase commit», se necesita %d o superior" -#: replication/pgoutput/pgoutput.c:502 -#, fuzzy, c-format -#| msgid "streaming requested, but not supported by output plugin" +#: replication/pgoutput/pgoutput.c:529 +#, c-format msgid "two-phase commit requested, but not supported by output plugin" -msgstr "se solicitó flujo, pero no está soportado por plugin de salida" +msgstr "«two-phase commit» fue solicitado, pero no está soportado por el plugin de salida" -#: replication/slot.c:207 +#: replication/slot.c:260 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "el nombre de slot de replicación «%s» es demasiado corto" -#: replication/slot.c:216 +#: replication/slot.c:269 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "el nombre de slot de replicación «%s» es demasiado largo" -#: replication/slot.c:229 +#: replication/slot.c:282 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "el nombre de slot de replicación «%s» contiene caracteres no válidos" -#: replication/slot.c:231 +#: replication/slot.c:284 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Los nombres de slots de replicación sólo pueden contener letras minúsculas, números y el carácter «_»." -#: replication/slot.c:285 +#: replication/slot.c:333 +#, c-format +msgid "cannot enable failover for a replication slot created on the standby" +msgstr "no se puede activar “failover” para un slot de replicación creado en el standby" + +#: replication/slot.c:345 replication/slot.c:849 +#, c-format +msgid "cannot enable failover for a temporary replication slot" +msgstr "no se puede activar “failover” para un slot de replicación temporal" + +#: replication/slot.c:370 #, c-format msgid "replication slot \"%s\" already exists" msgstr "el slot de replicación «%s» ya existe" -#: replication/slot.c:295 +#: replication/slot.c:380 #, c-format msgid "all replication slots are in use" msgstr "todos los slots de replicación están en uso" -#: replication/slot.c:296 +#: replication/slot.c:381 #, c-format -msgid "Free one or increase max_replication_slots." -msgstr "Libere uno o incremente max_replication_slots." +msgid "Free one or increase \"max_replication_slots\"." +msgstr "Libere uno o incremente «max_replication_slots»." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:560 replication/slot.c:2450 replication/slotfuncs.c:661 +#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "no existe el slot de replicación «%s»" -#: replication/slot.c:520 replication/slot.c:1110 +#: replication/slot.c:606 replication/slot.c:1337 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "el slot de replicación «%s» está activo para el PID %d" -#: replication/slot.c:756 replication/slot.c:1638 replication/slot.c:2021 +#: replication/slot.c:638 +#, c-format +msgid "acquired logical replication slot \"%s\"" +msgstr "se adquirió el slot de replicación lógica «%s»" + +#: replication/slot.c:640 +#, c-format +msgid "acquired physical replication slot \"%s\"" +msgstr "se adquirió el slot de replicación física «%s»" + +#: replication/slot.c:729 +#, c-format +msgid "released logical replication slot \"%s\"" +msgstr "se liberó el slot de replicación lógica «%s»" + +#: replication/slot.c:731 +#, c-format +msgid "released physical replication slot \"%s\"" +msgstr "se liberó el slot de replicación física «%s»" + +#: replication/slot.c:797 +#, c-format +msgid "cannot drop replication slot \"%s\"" +msgstr "no se puede eliminar el slot de replicación «%s»" + +#: replication/slot.c:816 +#, c-format +msgid "cannot use %s with a physical replication slot" +msgstr "no se puede usar %s con un slot de replicación física" + +#: replication/slot.c:828 +#, c-format +msgid "cannot alter replication slot \"%s\"" +msgstr "no se puede alterar el slot de replicación «%s»" + +#: replication/slot.c:838 +#, c-format +msgid "cannot enable failover for a replication slot on the standby" +msgstr "no se puede activar el “failover” para un slot de replicación en el standby" + +#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 #, c-format msgid "could not remove directory \"%s\"" msgstr "no se pudo eliminar el directorio «%s»" -#: replication/slot.c:1145 +#: replication/slot.c:1372 #, c-format -msgid "replication slots can only be used if max_replication_slots > 0" -msgstr "los slots de replicación sólo pueden usarse si max_replication_slots > 0" +msgid "replication slots can only be used if \"max_replication_slots\" > 0" +msgstr "los slots de replicación sólo pueden usarse si «max_replication_slots» > 0" # FIXME see logical.c:81 -#: replication/slot.c:1150 +#: replication/slot.c:1377 #, c-format -msgid "replication slots can only be used if wal_level >= replica" -msgstr "los slots de replicación sólo pueden usarse si wal_level >= replica" +msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" +msgstr "los slots de replicación sólo pueden usarse si «wal_level» >= «replica»" -#: replication/slot.c:1162 -#, fuzzy, c-format -#| msgid "permission denied for publication %s" +#: replication/slot.c:1389 +#, c-format msgid "permission denied to use replication slots" -msgstr "permiso denegado a la publicación %s" +msgstr "permiso denegado a usar slots de replicación" -#: replication/slot.c:1163 +#: replication/slot.c:1390 #, c-format msgid "Only roles with the %s attribute may use replication slots." -msgstr "" +msgstr "Sólo roles con el atributo %s pueden usar slots de replicación." -#: replication/slot.c:1267 +#: replication/slot.c:1498 #, c-format -msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." -msgstr "" +msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." +msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." +msgstr[0] "El restart_lsn %X/%X del slot excede el límite por %llu byte." +msgstr[1] "El restart_lsn %X/%X del slot excede el límite por %llu bytes." -#: replication/slot.c:1272 -#, fuzzy, c-format -#| msgid "Key %s conflicts with existing key %s." +#: replication/slot.c:1506 +#, c-format msgid "The slot conflicted with xid horizon %u." -msgstr "La llave %s está en conflicto con la llave existente %s." +msgstr "El slot estaba en conflicto con el horizonte de XID %u." # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/slot.c:1277 -#, fuzzy -#| msgid "logical decoding requires wal_level >= logical" -msgid "Logical decoding on standby requires wal_level >= logical on the primary server." -msgstr "la decodificación lógica requiere wal_level >= logical" +#: replication/slot.c:1511 +msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server." +msgstr "La decodificación lógica en standby requiere «wal_level» >= «logical» en el primario." -#: replication/slot.c:1285 +#: replication/slot.c:1519 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "terminando el proceso %d para liberar el slot de replicación «%s»" -#: replication/slot.c:1287 -#, fuzzy, c-format -#| msgid "creating replication slot \"%s\"" +#: replication/slot.c:1521 +#, c-format msgid "invalidating obsolete replication slot \"%s\"" -msgstr "creando el slot de replicación «%s»" +msgstr "invalidando el slot de replicación obsoleto «%s»" -#: replication/slot.c:1290 -#, fuzzy, c-format -#| msgid "You might need to increase max_worker_processes." -msgid "You might need to increase max_slot_wal_keep_size." -msgstr "Puede ser necesario incrementar max_worker_processes." - -#: replication/slot.c:1959 +#: replication/slot.c:2249 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "el archivo de slot de replicación «%s» tiene número mágico erróneo: %u en lugar de %u" -#: replication/slot.c:1966 +#: replication/slot.c:2256 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "el archivo de slot de replicación «%s» tiene versión no soportada %u" -#: replication/slot.c:1973 +#: replication/slot.c:2263 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "el archivo de slot de replicación «%s» tiene largo corrupto %u" -#: replication/slot.c:2009 +#: replication/slot.c:2299 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "suma de verificación no coincidente en archivo de slot de replicación «%s»: es %u, debería ser %u" # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/slot.c:2043 +#: replication/slot.c:2333 #, c-format -msgid "logical replication slot \"%s\" exists, but wal_level < logical" -msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical" +msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" +msgstr "existe el slot de replicación lógica «%s», pero «wal_level» < «logical»" -#: replication/slot.c:2045 +#: replication/slot.c:2335 #, c-format -msgid "Change wal_level to be logical or higher." -msgstr "Cambie wal_level a logical o superior." +msgid "Change \"wal_level\" to be \"logical\" or higher." +msgstr "Cambie «wal_level» a «logical» o superior." # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/slot.c:2049 +#: replication/slot.c:2339 #, c-format -msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical" +msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" +msgstr "existe el slot de replicación lógica «%s», pero «wal_level» < «replica»" # <> hello vim -#: replication/slot.c:2051 +#: replication/slot.c:2341 #, c-format -msgid "Change wal_level to be replica or higher." -msgstr "Cambie wal_level a replica o superior." +msgid "Change \"wal_level\" to be \"replica\" or higher." +msgstr "Cambie «wal_level» a «replica» o superior." -#: replication/slot.c:2085 +#: replication/slot.c:2383 #, c-format msgid "too many replication slots active before shutdown" msgstr "demasiados slots de replicación activos antes del apagado" -#: replication/slotfuncs.c:601 +#: replication/slot.c:2458 +#, c-format +msgid "\"%s\" is not a physical replication slot" +msgstr "«%s» no es un slot de replicación física" + +#: replication/slot.c:2635 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "el slot de replicación «%s» especificado en el parámetro «%s» no existe" + +#: replication/slot.c:2637 replication/slot.c:2671 replication/slot.c:2686 +#, c-format +msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"." +msgstr "La replicación lógica está esperando al standby asociado con el slot de replicación «%s»." + +#: replication/slot.c:2639 +#, c-format +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "Cree el slot de replicación «%s» o corrija el parámetro «%s»." + +#: replication/slot.c:2649 +#, c-format +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "no se puede especificar el slot de replicación lógica «%s» en el parámetro «%s»" + +#: replication/slot.c:2651 +#, c-format +msgid "Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "La replicación lógica está esperando a una corrección en el slot de replicación «%s»." + +#: replication/slot.c:2653 +#, c-format +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "Elimine el slot de replicación lógica «%s» del parámetro «%s»." + +#: replication/slot.c:2669 +#, c-format +msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated" +msgstr "el slot de replicación física «%s» especificado en el parámetro «%s» ha sido invalidado" + +#: replication/slot.c:2673 +#, c-format +msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "Elimine y vuelva a crear el slot de replicación «%s», o corrija el parámetro «%s»." + +#: replication/slot.c:2684 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid" +msgstr "el slot de replicación «%s» especificado en el parámetro «%s» no tiene active_pid" + +#: replication/slot.c:2688 +#, c-format +msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "Inicie el standby asociado con el slot de replicación «%s», o corrija el parámetro «%s»." + +#: replication/slotfuncs.c:526 #, c-format msgid "invalid target WAL LSN" msgstr "el LSN de wal de destino no es válido" -#: replication/slotfuncs.c:623 +#: replication/slotfuncs.c:548 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "no se puede avanzar el slot de replicación «%s»" -#: replication/slotfuncs.c:625 +#: replication/slotfuncs.c:550 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." msgstr "Este slot nunca ha reservado WAL previamente, o ha sido invalidado." -#: replication/slotfuncs.c:641 +#: replication/slotfuncs.c:566 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "no puede avanzar un slot de replicación a %X/%X, el mínimo es %X/%X" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:673 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "no se puede copiar el slot de replicación física «%s» como slot de replicación lógica" -#: replication/slotfuncs.c:750 +#: replication/slotfuncs.c:675 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "no se puede copiar el slot de replicación lógica «%s» como slot de replicación física" -#: replication/slotfuncs.c:757 +#: replication/slotfuncs.c:682 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "no puede copiar un slot de replicación que no ha reservado WAL" -#: replication/slotfuncs.c:834 +#: replication/slotfuncs.c:768 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "no se pudo copiar el slot de replicación «%s»" -#: replication/slotfuncs.c:836 +#: replication/slotfuncs.c:770 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "El slot de replicación de origen fue modificado incompatiblemente durante la operación de copia." -#: replication/slotfuncs.c:842 +#: replication/slotfuncs.c:776 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "no se puede copiar el slot de replicación lógica no terminado «%s»" -#: replication/slotfuncs.c:844 +#: replication/slotfuncs.c:778 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "Reintente cuando el confirmed_flush_lsn del slot de replicación de origen sea válido." -#: replication/syncrep.c:262 +# FIXME see logical.c:81 +#: replication/slotfuncs.c:877 +#, c-format +msgid "replication slots can only be synchronized to a standby server" +msgstr "los slots de replicación sólo pueden sincronizarse a un servidor standby" + +#: replication/syncrep.c:261 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "cancelando la espera para la replicación sincrónica y terminando la conexión debido a una orden del administrador" -#: replication/syncrep.c:263 replication/syncrep.c:280 +#: replication/syncrep.c:262 replication/syncrep.c:279 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "La transacción ya fue comprometida localmente, pero pudo no haber sido replicada al standby." -#: replication/syncrep.c:279 +#: replication/syncrep.c:278 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "cancelando espera para la replicación sincrónica debido a una petición del usuario" -#: replication/syncrep.c:486 +#: replication/syncrep.c:485 #, c-format -msgid "standby \"%s\" is now a synchronous standby with priority %u" -msgstr "el standby «%s» es ahora un standby sincrónico con prioridad %u" +msgid "standby \"%s\" is now a synchronous standby with priority %d" +msgstr "el standby «%s» es ahora un standby sincrónico con prioridad %d" -#: replication/syncrep.c:490 +#: replication/syncrep.c:489 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "el standby «%s» es ahora un candidato para standby sincrónico de quórum" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1013 #, c-format -msgid "synchronous_standby_names parser failed" -msgstr "falló la interpretación de synchronous_standby_names" +msgid "\"synchronous_standby_names\" parser failed" +msgstr "falló la interpretación de «synchronous_standby_names»" -#: replication/syncrep.c:1025 +#: replication/syncrep.c:1019 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "el argumento de standby sincrónicos (%d) debe ser mayor que cero" -#: replication/walreceiver.c:180 +#: replication/walreceiver.c:176 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "terminando el proceso walreceiver debido a una orden del administrador" -#: replication/walreceiver.c:305 -#, c-format -msgid "could not connect to the primary server: %s" -msgstr "no se pudo conectar al servidor primario: %s" - -#: replication/walreceiver.c:352 +#: replication/walreceiver.c:354 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "el identificador de sistema difiere entre el primario y el standby" -#: replication/walreceiver.c:353 +#: replication/walreceiver.c:355 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "El identificador del primario es %s, el identificador del standby es %s." -#: replication/walreceiver.c:364 +#: replication/walreceiver.c:366 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "el timeline más alto del primario, %u, está más atrás que el timeline de recuperación %u" -#: replication/walreceiver.c:417 +#: replication/walreceiver.c:419 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "iniciando el flujo de WAL desde el primario en %X/%X en el timeline %u" -#: replication/walreceiver.c:421 +#: replication/walreceiver.c:423 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "reiniciando el flujo de WAL en %X/%X en el timeline %u" -#: replication/walreceiver.c:457 +#: replication/walreceiver.c:458 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "no se puede continuar el flujo de WAL; la recuperación ya ha terminado" -#: replication/walreceiver.c:501 +#: replication/walreceiver.c:502 #, c-format msgid "replication terminated by primary server" msgstr "replicación terminada por el servidor primario" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:503 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "Se alcanzó el fin de WAL en el timeline %u en la posición %X/%X." -#: replication/walreceiver.c:592 +#: replication/walreceiver.c:593 #, c-format msgid "terminating walreceiver due to timeout" msgstr "terminando el proceso walreceiver debido a que se agotó el tiempo de espera" -#: replication/walreceiver.c:624 +#: replication/walreceiver.c:625 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "el servidor primario no contiene más WAL en el timeline %u solicitado" -#: replication/walreceiver.c:640 replication/walreceiver.c:1066 -#, fuzzy, c-format -#| msgid "could not close shared memory segment \"%s\": %m" +#: replication/walreceiver.c:641 replication/walreceiver.c:1071 +#, c-format msgid "could not close WAL segment %s: %m" -msgstr "no se pudo cerrar el segmento de memoria compartida «%s»: %m" +msgstr "no se pudo cerrar el segmento de WAL %s: %m" -#: replication/walreceiver.c:759 +#: replication/walreceiver.c:760 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "trayendo el archivo de historia del timeline para el timeline %u desde el servidor primario" -#: replication/walreceiver.c:954 -#, fuzzy, c-format -#| msgid "could not write to log file %s at offset %u, length %zu: %m" -msgid "could not write to WAL segment %s at offset %u, length %lu: %m" -msgstr "no se pudo escribir archivo de registro %s en la posición %u, largo %zu: %m" +#: replication/walreceiver.c:959 +#, c-format +msgid "could not write to WAL segment %s at offset %d, length %lu: %m" +msgstr "no se pudo escribir al segmento de WAL %s en la posición %d, largo %lu: %m" -#: replication/walsender.c:519 -#, fuzzy, c-format -#| msgid "cannot use relation \"%s.%s\" as logical replication target" +#: replication/walsender.c:531 +#, c-format msgid "cannot use %s with a logical replication slot" -msgstr "no se puede usar la relación «%s.%s» como destino de replicación lógica" +msgstr "no se puede usar %s con un slot de replicación lógica" -#: replication/walsender.c:623 storage/smgr/md.c:1526 +#: replication/walsender.c:635 storage/smgr/md.c:1735 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "no se pudo posicionar (seek) al fin del archivo «%s»: %m" -#: replication/walsender.c:627 +#: replication/walsender.c:639 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "no se pudo posicionar (seek) al comienzo del archivo «%s»: %m" -#: replication/walsender.c:704 +#: replication/walsender.c:853 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "no se puede usar un slot de replicación lógica para replicación física" -#: replication/walsender.c:770 +#: replication/walsender.c:919 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "el punto de inicio solicitado %X/%X del timeline %u no está en la historia de este servidor" -#: replication/walsender.c:773 +#: replication/walsender.c:922 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "La historia de este servidor bifurcó desde el timeline %u en %X/%X." -#: replication/walsender.c:817 +#: replication/walsender.c:966 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "el punto de inicio solicitado %X/%X está más adelante que la posición de sincronización (flush) de WAL de este servidor %X/%X" -#: replication/walsender.c:1010 -#, fuzzy, c-format -#| msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" +#: replication/walsender.c:1160 +#, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" -msgstr "valor no reconocido para la opción de EXPLAIN «%s»: «%s»" +msgstr "valor no reconocido para la opción de CREATE_REPLICATION_SLOT «%s»: «%s»" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1095 +#: replication/walsender.c:1266 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s no debe ser ejecutado dentro de una transacción" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1105 +#: replication/walsender.c:1276 #, c-format msgid "%s must be called inside a transaction" msgstr "%s no debe ser ejecutado dentro de una transacción" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1111 +#: replication/walsender.c:1282 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s debe llamarse en una transacción de modo de aislamiento REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 -#, fuzzy, c-format -#| msgid "%s must be called inside a transaction" -msgid "%s must be called in a read only transaction" -msgstr "%s no debe ser ejecutado dentro de una transacción" +#: replication/walsender.c:1287 +#, c-format +msgid "%s must be called in a read-only transaction" +msgstr "%s debe ser ejecutado en una transacción de sólo lectura" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1293 #, c-format msgid "%s must be called before any query" msgstr "%s debe ser llamado antes de cualquier consulta" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1299 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s no está permitido en una subtransacción" -#: replication/walsender.c:1275 +#: replication/walsender.c:1472 #, c-format msgid "terminating walsender process after promotion" msgstr "terminando el proceso walsender luego de la promoción" -#: replication/walsender.c:1696 +#: replication/walsender.c:2000 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" -msgstr "no puede ejecutar nuevas órdenes mientras el «WAL sender» está en modo de apagarse" +msgstr "no puede ejecutar nuevas órdenes mientras el “WAL sender” está en modo de apagarse" -#: replication/walsender.c:1731 +#: replication/walsender.c:2035 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" -msgstr "no puede ejecutar órdenes SQL en el «WAL sender» para replicación física" +msgstr "no puede ejecutar órdenes SQL en el “WAL sender” para replicación física" -#: replication/walsender.c:1764 +#: replication/walsender.c:2068 #, c-format msgid "received replication command: %s" msgstr "se recibió orden de replicación: %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142 +#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234 +#: tcop/postgres.c:2672 tcop/postgres.c:2749 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "transacción abortada, las órdenes serán ignoradas hasta el fin de bloque de transacción" -#: replication/walsender.c:1914 replication/walsender.c:1949 +#: replication/walsender.c:2233 replication/walsender.c:2268 #, c-format msgid "unexpected EOF on standby connection" msgstr "se encontró fin de archivo inesperado en la conexión standby" -#: replication/walsender.c:1937 +#: replication/walsender.c:2256 #, c-format msgid "invalid standby message type \"%c\"" msgstr "el tipo «%c» de mensaje del standby no es válido" -#: replication/walsender.c:2026 +#: replication/walsender.c:2345 #, c-format msgid "unexpected message type \"%c\"" msgstr "mensaje de tipo «%c» inesperado" -#: replication/walsender.c:2439 +#: replication/walsender.c:2759 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "terminando el proceso walsender debido a que se agotó el tiempo de espera de replicación" -#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 +#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "ya existe una regla llamada «%s» para la relación «%s»" -#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 -#, fuzzy, c-format -#| msgid "portal \"%s\" cannot be run" +#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773 +#, c-format msgid "relation \"%s\" cannot have rules" -msgstr "el portal «%s» no puede ser ejecutado" +msgstr "la relación «%s» no puede tener reglas" -#: rewrite/rewriteDefine.c:299 +#: rewrite/rewriteDefine.c:292 #, c-format msgid "rule actions on OLD are not implemented" msgstr "las acciones de regla en OLD no están implementadas" -#: rewrite/rewriteDefine.c:300 +#: rewrite/rewriteDefine.c:293 #, c-format msgid "Use views or triggers instead." msgstr "Use vistas o triggers en su lugar." -#: rewrite/rewriteDefine.c:304 +#: rewrite/rewriteDefine.c:297 #, c-format msgid "rule actions on NEW are not implemented" msgstr "las acciones de regla en NEW no están implementadas" -#: rewrite/rewriteDefine.c:305 +#: rewrite/rewriteDefine.c:298 #, c-format msgid "Use triggers instead." msgstr "Use triggers en su lugar." -#: rewrite/rewriteDefine.c:319 -#, fuzzy, c-format -#| msgid "cursor \"%s\" is not a SELECT query" +#: rewrite/rewriteDefine.c:312 +#, c-format msgid "relation \"%s\" cannot have ON SELECT rules" -msgstr "el cursor «%s» no es una orden SELECT" +msgstr "la relación «%s» no puede tener reglas ON SELECT" -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "las reglas INSTEAD NOTHING en SELECT no están implementadas" -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:323 #, c-format msgid "Use views instead." msgstr "Use vistas en su lugar." -#: rewrite/rewriteDefine.c:338 +#: rewrite/rewriteDefine.c:331 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "las reglas de múltiples acciones en SELECT no están implementadas" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:341 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "las reglas en SELECT deben tener una acción INSTEAD SELECT" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:349 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "las reglas en SELECT no deben contener sentencias que modifiquen datos en WITH" -#: rewrite/rewriteDefine.c:364 +#: rewrite/rewriteDefine.c:357 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "las calificaciones de eventos no están implementadas para las reglas en SELECT" -#: rewrite/rewriteDefine.c:391 +#: rewrite/rewriteDefine.c:384 #, c-format msgid "\"%s\" is already a view" msgstr "«%s» ya es una vista" -#: rewrite/rewriteDefine.c:415 +#: rewrite/rewriteDefine.c:408 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "la regla de vista para «%s» debe llamarse «%s»" -#: rewrite/rewriteDefine.c:442 +#: rewrite/rewriteDefine.c:435 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "no se pueden tener múltiples listas RETURNING en una regla" -#: rewrite/rewriteDefine.c:447 +#: rewrite/rewriteDefine.c:440 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "listas de RETURNING no están soportadas en reglas condicionales" -#: rewrite/rewriteDefine.c:451 +#: rewrite/rewriteDefine.c:444 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "listas de RETURNING no están soportadas en reglas que no estén marcadas INSTEAD" -#: rewrite/rewriteDefine.c:465 -#, fuzzy, c-format -#| msgid "view rule for \"%s\" must be named \"%s\"" +#: rewrite/rewriteDefine.c:458 +#, c-format msgid "non-view rule for \"%s\" must not be named \"%s\"" -msgstr "la regla de vista para «%s» debe llamarse «%s»" +msgstr "la regla que no es de vista para «%s» no debe llamarse «%s»" -#: rewrite/rewriteDefine.c:539 +#: rewrite/rewriteDefine.c:532 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "la lista de destinos en la regla de SELECT tiene demasiadas entradas" -#: rewrite/rewriteDefine.c:540 +#: rewrite/rewriteDefine.c:533 #, c-format msgid "RETURNING list has too many entries" msgstr "la lista de RETURNING tiene demasiadas entradas" -#: rewrite/rewriteDefine.c:567 +#: rewrite/rewriteDefine.c:560 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "no se puede convertir en vista una relación que contiene columnas eliminadas" -#: rewrite/rewriteDefine.c:568 +#: rewrite/rewriteDefine.c:561 #, c-format msgid "cannot create a RETURNING list for a relation containing dropped columns" msgstr "no se puede crear una lista RETURNING para una relación que contiene columnas eliminadas" -#: rewrite/rewriteDefine.c:574 +#: rewrite/rewriteDefine.c:567 #, c-format msgid "SELECT rule's target entry %d has different column name from column \"%s\"" msgstr "la entrada de destino %d de la regla de SELECT tiene un nombre de columna diferente de «%s»" -#: rewrite/rewriteDefine.c:576 +#: rewrite/rewriteDefine.c:569 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "La entrada de destino de SELECT tiene nombre «%s»." -#: rewrite/rewriteDefine.c:585 +#: rewrite/rewriteDefine.c:578 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "el destino %d de la regla de SELECT tiene un tipo diferente de la columna «%s»" -#: rewrite/rewriteDefine.c:587 +#: rewrite/rewriteDefine.c:580 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "el destino %d de la lista de RETURNING tiene un tipo diferente de la columna «%s»" -#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614 +#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "La entrada de destino de SELECT tiene un tipo «%s», pero la columna tiene tipo «%s»." -#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618 +#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "una entrada de la lista RETURNING tiene tipo %s, pero la columna tiene tipo %s." -#: rewrite/rewriteDefine.c:609 +#: rewrite/rewriteDefine.c:602 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "el destino %d de la regla de SELECT tiene un tamaño diferente de la columna «%s»" -#: rewrite/rewriteDefine.c:611 +#: rewrite/rewriteDefine.c:604 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "el destino %d de la lista RETURNING tiene un tamaño diferente de la columna «%s»" -#: rewrite/rewriteDefine.c:628 +#: rewrite/rewriteDefine.c:621 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "la lista de destinos de regla de SELECT tiene muy pocas entradas" -#: rewrite/rewriteDefine.c:629 +#: rewrite/rewriteDefine.c:622 #, c-format msgid "RETURNING list has too few entries" msgstr "la lista de RETURNING tiene muy pocas entradas" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826 +#: rewrite/rewriteSupport.c:108 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "no existe la regla «%s» para la relación «%s»" -#: rewrite/rewriteDefine.c:852 +#: rewrite/rewriteDefine.c:845 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "no se permite cambiar el nombre de una regla ON SELECT" -#: rewrite/rewriteHandler.c:581 +#: rewrite/rewriteHandler.c:588 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "el nombre de consulta WITH «%s» aparece tanto en una acción de regla y en la consulta que está siendo reescrita" -#: rewrite/rewriteHandler.c:608 -#, fuzzy, c-format -#| msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" +#: rewrite/rewriteHandler.c:615 +#, c-format msgid "INSERT ... SELECT rule actions are not supported for queries having data-modifying statements in WITH" -msgstr "las reglas DO INSTEAD NOTIFY no están soportadas para sentencias que modifiquen datos en WITH" +msgstr "las acciones de regla INSERT ... SELECT no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:661 +#: rewrite/rewriteHandler.c:668 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "no se puede usar RETURNING en múltiples reglas" -#: rewrite/rewriteHandler.c:893 rewrite/rewriteHandler.c:932 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:939 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "no se puede insertar un valor no-predeterminado en la columna «%s»" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:961 +#: rewrite/rewriteHandler.c:902 rewrite/rewriteHandler.c:968 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "La columna \"%s\" es una columna de identidad definida como GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:897 +#: rewrite/rewriteHandler.c:904 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Use OVERRIDING SYSTEM VALUE para controlar manualmente." -#: rewrite/rewriteHandler.c:959 rewrite/rewriteHandler.c:967 +#: rewrite/rewriteHandler.c:966 rewrite/rewriteHandler.c:974 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "la columna «%s» sólo puede actualizarse a DEFAULT" -#: rewrite/rewriteHandler.c:1114 rewrite/rewriteHandler.c:1132 +#: rewrite/rewriteHandler.c:1109 rewrite/rewriteHandler.c:1127 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "hay múltiples asignaciones a la misma columna «%s»" -#: rewrite/rewriteHandler.c:2118 rewrite/rewriteHandler.c:4039 +#: rewrite/rewriteHandler.c:1682 +#, c-format +msgid "MERGE is not supported for relations with rules." +msgstr "MERGE no está soportado para relaciones con reglas." + +#: rewrite/rewriteHandler.c:1722 rewrite/rewriteHandler.c:3262 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "el acceso a la vista no de sistema «%s» está restringido" + +#: rewrite/rewriteHandler.c:2122 rewrite/rewriteHandler.c:4254 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "se detectó recursión infinita en las reglas de la relación «%s»" -#: rewrite/rewriteHandler.c:2203 +#: rewrite/rewriteHandler.c:2227 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "se detectó recursión infinita en la política para la relación «%s»" -#: rewrite/rewriteHandler.c:2523 +#: rewrite/rewriteHandler.c:2589 msgid "Junk view columns are not updatable." msgstr "Las columnas «basura» de vistas no son actualizables." -#: rewrite/rewriteHandler.c:2528 +#: rewrite/rewriteHandler.c:2594 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Las columnas de vistas que no son columnas de su relación base no son actualizables." -#: rewrite/rewriteHandler.c:2531 +#: rewrite/rewriteHandler.c:2597 msgid "View columns that refer to system columns are not updatable." msgstr "Las columnas de vistas que se refieren a columnas de sistema no son actualizables." -#: rewrite/rewriteHandler.c:2534 +#: rewrite/rewriteHandler.c:2600 msgid "View columns that return whole-row references are not updatable." msgstr "Las columnas de vistas que retornan referencias a la fila completa no son actualizables." # XXX a %s here would be nice ... -#: rewrite/rewriteHandler.c:2595 +#: rewrite/rewriteHandler.c:2661 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Las vistas que contienen DISTINCT no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2598 +#: rewrite/rewriteHandler.c:2664 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Las vistas que contienen GROUP BY no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2601 +#: rewrite/rewriteHandler.c:2667 msgid "Views containing HAVING are not automatically updatable." msgstr "Las vistas que contienen HAVING no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2604 +#: rewrite/rewriteHandler.c:2670 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Las vistas que contienen UNION, INTERSECT o EXCEPT no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2607 +#: rewrite/rewriteHandler.c:2673 msgid "Views containing WITH are not automatically updatable." msgstr "Las vistas que contienen WITH no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2610 +#: rewrite/rewriteHandler.c:2676 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Las vistas que contienen LIMIT u OFFSET no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2622 -msgid "Views that return aggregate functions are not automatically updatable." -msgstr "Las vistas que retornan funciones de agregación no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:2688 +msgid "Views that return aggregate functions are not automatically updatable." +msgstr "Las vistas que retornan funciones de agregación no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:2691 +msgid "Views that return window functions are not automatically updatable." +msgstr "Las vistas que retornan funciones ventana no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:2694 +msgid "Views that return set-returning functions are not automatically updatable." +msgstr "Las vistas que retornan funciones-que-retornan-conjuntos no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:2701 rewrite/rewriteHandler.c:2705 +#: rewrite/rewriteHandler.c:2713 +msgid "Views that do not select from a single table or view are not automatically updatable." +msgstr "Las vistas que no extraen desde una única tabla o vista no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:2716 +msgid "Views containing TABLESAMPLE are not automatically updatable." +msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:2740 +msgid "Views that have no updatable columns are not automatically updatable." +msgstr "Las vistas que no tienen columnas actualizables no son automáticamente actualizables." + +#: rewrite/rewriteHandler.c:3121 rewrite/rewriteHandler.c:3156 +#, c-format +msgid "cannot insert into view \"%s\"" +msgstr "no se puede insertar en la vista «%s»" + +#: rewrite/rewriteHandler.c:3124 +#, c-format +msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." +msgstr "Para posibilitar las inserciones en la vista, provea un “trigger” INSTEAD OF INSERT o una regla incodicional ON INSERT DO INSTEAD." + +#: rewrite/rewriteHandler.c:3129 rewrite/rewriteHandler.c:3165 +#, c-format +msgid "cannot update view \"%s\"" +msgstr "no se puede actualizar la vista «%s»" + +#: rewrite/rewriteHandler.c:3132 +#, c-format +msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." +msgstr "Para posibilitar las actualizaciones en la vista, provea un “trigger” INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD." -#: rewrite/rewriteHandler.c:2625 -msgid "Views that return window functions are not automatically updatable." -msgstr "Las vistas que retornan funciones ventana no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:3137 rewrite/rewriteHandler.c:3174 +#, c-format +msgid "cannot delete from view \"%s\"" +msgstr "no se puede eliminar de la vista «%s»" -#: rewrite/rewriteHandler.c:2628 -msgid "Views that return set-returning functions are not automatically updatable." -msgstr "Las vistas que retornan funciones-que-retornan-conjuntos no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:3140 +#, c-format +msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." +msgstr "Para posibilitar las eliminaciones en la vista, provea un “trigger” INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD." -#: rewrite/rewriteHandler.c:2635 rewrite/rewriteHandler.c:2639 -#: rewrite/rewriteHandler.c:2647 -msgid "Views that do not select from a single table or view are not automatically updatable." -msgstr "Las vistas que no extraen desde una única tabla o vista no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:3159 +#, c-format +msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger." +msgstr "Para posibilitar insertar en la vista usando MERGE, provea un “trigger” INSTEAD OF INSERT." -#: rewrite/rewriteHandler.c:2650 -msgid "Views containing TABLESAMPLE are not automatically updatable." -msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:3168 +#, c-format +msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger." +msgstr "Para posibilitar actualizar la vista usando MERGE, provea un “trigger” INSTEAD OF UPDATE." -#: rewrite/rewriteHandler.c:2674 -msgid "Views that have no updatable columns are not automatically updatable." -msgstr "Las vistas que no tienen columnas actualizables no son automáticamente actualizables." +#: rewrite/rewriteHandler.c:3177 +#, c-format +msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger." +msgstr "Para posibilitar eliminar de la vista usando MERGE, provea un “trigger” INSTEAD OF DELETE." -#: rewrite/rewriteHandler.c:3154 +#: rewrite/rewriteHandler.c:3352 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "no se puede insertar en la columna «%s» de la vista «%s»" -#: rewrite/rewriteHandler.c:3162 +#: rewrite/rewriteHandler.c:3360 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "no se puede actualizar la columna «%s» vista «%s»" -#: rewrite/rewriteHandler.c:3666 +#: rewrite/rewriteHandler.c:3368 +#, c-format +msgid "cannot merge into column \"%s\" of view \"%s\"" +msgstr "no se puede hacer «merge» en la columna «%s» de la vista «%s»" + +#: rewrite/rewriteHandler.c:3396 +#, c-format +msgid "cannot merge into view \"%s\"" +msgstr "no se puede hacer «merge» en la vista «%s»" + +#: rewrite/rewriteHandler.c:3398 +#, c-format +msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all." +msgstr "MERGE no está soportado para vistas con triggers INSTEAD OF para algunas acciones pero no todas." + +#: rewrite/rewriteHandler.c:3399 +#, c-format +msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers." +msgstr "Para posibilitar hacer “merge” en la vista, provea un conjunto completo de “triggers” INSTEAD OF o elimine los “triggers” INSTEAD OF existentes." + +#: rewrite/rewriteHandler.c:3912 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD NOTIFY no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3677 +#: rewrite/rewriteHandler.c:3923 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD NOTHING no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3691 +#: rewrite/rewriteHandler.c:3937 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD condicionales no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3695 +#: rewrite/rewriteHandler.c:3941 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO ALSO no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3700 +#: rewrite/rewriteHandler.c:3946 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para sentencias que modifiquen datos en WITH" # XXX a %s here would be nice ... -#: rewrite/rewriteHandler.c:3967 rewrite/rewriteHandler.c:3975 -#: rewrite/rewriteHandler.c:3983 -#, c-format +#: rewrite/rewriteHandler.c:4206 msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Las vistas con reglas DO INSTEAD condicionales no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:4088 +#: rewrite/rewriteHandler.c:4303 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "no se puede hacer INSERT RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4090 +#: rewrite/rewriteHandler.c:4305 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON INSERT DO INSTEAD con una cláusula RETURNING." -#: rewrite/rewriteHandler.c:4095 +#: rewrite/rewriteHandler.c:4310 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "no se puede hacer UPDATE RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4097 +#: rewrite/rewriteHandler.c:4312 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON UPDATE DO INSTEAD con una cláusula RETURNING." -#: rewrite/rewriteHandler.c:4102 +#: rewrite/rewriteHandler.c:4317 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "no se puede hacer DELETE RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4104 +#: rewrite/rewriteHandler.c:4319 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON DELETE DO INSTEAD con una clásula RETURNING." -#: rewrite/rewriteHandler.c:4122 +#: rewrite/rewriteHandler.c:4337 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT con una cláusula ON CONFLICT no puede usarse con una tabla que tiene reglas INSERT o UPDATE" -#: rewrite/rewriteHandler.c:4179 +#: rewrite/rewriteHandler.c:4394 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH no puede ser usado en una consulta que está siendo convertida en múltiples consultas a través de reglas" -#: rewrite/rewriteManip.c:1070 +#: rewrite/rewriteManip.c:1084 #, c-format msgid "conditional utility statements are not implemented" msgstr "las sentencias condicionales de utilidad no están implementadas" -#: rewrite/rewriteManip.c:1414 +#: rewrite/rewriteManip.c:1431 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "WHERE CURRENT OF no está implementado en una vista" -#: rewrite/rewriteManip.c:1749 +#: rewrite/rewriteManip.c:1767 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "las variables NEW en reglas ON UPDATE no pueden referenciar columnas que son parte de una asignación múltiple en la orden UPDATE" #: rewrite/rewriteSearchCycle.c:410 -#, fuzzy, c-format -#| msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" +#, c-format msgid "with a SEARCH or CYCLE clause, the recursive reference to WITH query \"%s\" must be at the top level of its right-hand SELECT" -msgstr "con una cláusula SEARCH o CYCLE, el lado izquierdo de UNION debe ser un SELECT" +msgstr "con una cláusula SEARCH o CYCLE, la referencia recursiva a la consulta de WITH «%s» debe estar en el nivel superior de su SELECT del lado derecho" #: snowball/dict_snowball.c:215 #, c-format @@ -21531,72 +22046,67 @@ msgstr "parámetro Snowball no reconocido: «%s»" msgid "missing Language parameter" msgstr "falta un parámetro Language" -#: statistics/extended_stats.c:179 +#: statistics/extended_stats.c:176 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "el objeto de estadísticas «%s.%s» no pudo ser calculado para la relación «%s.%s»" -#: statistics/mcv.c:1372 +#: statistics/mcv.c:1368 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo" -#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 +#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "no se pueden acceder tablas temporales de otras sesiones" -#: storage/buffer/bufmgr.c:1137 +#: storage/buffer/bufmgr.c:1532 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "la página no es válida en el bloque %u de la relación «%s»; reinicializando la página" -#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359 +#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "no se puede extender la relación %s más allá de %u bloques" -#: storage/buffer/bufmgr.c:1998 +#: storage/buffer/bufmgr.c:2348 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "datos inesperados más allá del EOF en el bloque %u de relación %s" -#: storage/buffer/bufmgr.c:2000 +#: storage/buffer/bufmgr.c:2350 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Esto parece ocurrir sólo con kernels defectuosos; considere actualizar su sistema." -#: storage/buffer/bufmgr.c:5219 +#: storage/buffer/bufmgr.c:5653 #, c-format msgid "could not write block %u of %s" msgstr "no se pudo escribir el bloque %u de %s" -#: storage/buffer/bufmgr.c:5221 +#: storage/buffer/bufmgr.c:5655 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Múltiples fallas --- el error de escritura puede ser permanente." -#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 +#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 #, c-format msgid "writing block %u of relation %s" msgstr "escribiendo el bloque %u de la relación %s" -#: storage/buffer/bufmgr.c:5593 -#, c-format -msgid "snapshot too old" -msgstr "snapshot demasiado antiguo" - -#: storage/buffer/localbuf.c:219 +#: storage/buffer/localbuf.c:220 #, c-format msgid "no empty local buffer available" msgstr "no hay ningún búfer local disponible" -#: storage/buffer/localbuf.c:592 +#: storage/buffer/localbuf.c:597 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "no se pueden acceder tablas temporales durante una operación paralela" -#: storage/buffer/localbuf.c:699 +#: storage/buffer/localbuf.c:712 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "«temp_buffers» no puede ser cambiado después de que cualquier tabla temporal haya sido accedida en la sesión." @@ -21607,164 +22117,165 @@ msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m" msgstr "no se pudo abrir archivo temporal «%s» del BufFile «%s»: %m" #: storage/file/buffile.c:632 -#, fuzzy, c-format -#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes" +#, c-format msgid "could not read from file set \"%s\": read only %zu of %zu bytes" -msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes" +msgstr "no se pudo leer del “file set” «%s»: se leyeron sólo %zu de %zu bytes" #: storage/file/buffile.c:634 -#, fuzzy, c-format -#| msgid "could not read block %u in file \"%s\": read only %d of %d bytes" +#, c-format msgid "could not read from temporary file: read only %zu of %zu bytes" -msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes" +msgstr "no se pudo leer del archivo temporal: se leyeron sólo %zu de %zu bytes" -#: storage/file/buffile.c:774 storage/file/buffile.c:895 +#: storage/file/buffile.c:774 storage/file/buffile.c:877 #, c-format msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "no se pudo determinar el tamaño del archivo temporal «%s» del BufFile «%s»: %m" -#: storage/file/buffile.c:974 -#, fuzzy, c-format -#| msgid "could not delete file \"%s\": %m" +#: storage/file/buffile.c:956 +#, c-format msgid "could not delete fileset \"%s\": %m" -msgstr "no se pudo borrar el archivo «%s»: %m" +msgstr "no se pudo borrar el “fileset” «%s»: %m" -#: storage/file/buffile.c:992 storage/smgr/md.c:335 storage/smgr/md.c:1038 +#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1194 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "no se pudo truncar el archivo «%s»: %m" -#: storage/file/fd.c:516 storage/file/fd.c:588 storage/file/fd.c:624 +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" msgstr "no se pudo sincronizar (flush) datos «sucios»: %m" -#: storage/file/fd.c:546 +#: storage/file/fd.c:613 #, c-format msgid "could not determine dirty data size: %m" msgstr "no se pudo determinar el tamaño de los datos «sucios»: %m" -#: storage/file/fd.c:598 +#: storage/file/fd.c:665 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "no se pudo ejecutar munmap() mientras se sincronizaban (flush) datos: %m" -#: storage/file/fd.c:894 +#: storage/file/fd.c:983 #, c-format msgid "getrlimit failed: %m" msgstr "getrlimit falló: %m" -#: storage/file/fd.c:984 +#: storage/file/fd.c:1073 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "los descriptores de archivo disponibles son insuficientes para iniciar un proceso servidor" -#: storage/file/fd.c:985 +#: storage/file/fd.c:1074 #, c-format msgid "System allows %d, server needs at least %d." -msgstr "" +msgstr "El sistema permite %d, el servidor necesita al menos %d." -#: storage/file/fd.c:1073 storage/file/fd.c:2515 storage/file/fd.c:2624 -#: storage/file/fd.c:2775 +#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 +#: storage/file/fd.c:2878 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "se agotaron los descriptores de archivo: %m; libere e intente nuevamente" -#: storage/file/fd.c:1447 +#: storage/file/fd.c:1536 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "archivo temporal: ruta «%s», tamaño %lu" -#: storage/file/fd.c:1586 +#: storage/file/fd.c:1675 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "no se pudo crear el directorio temporal «%s»: %m" -#: storage/file/fd.c:1593 +#: storage/file/fd.c:1682 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "no se pudo crear el subdirectorio temporal «%s»: %m" -#: storage/file/fd.c:1790 +#: storage/file/fd.c:1879 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "no se pudo crear el archivo temporal «%s»: %m" -#: storage/file/fd.c:1826 +#: storage/file/fd.c:1915 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "no se pudo abrir el archivo temporal «%s»: %m" -#: storage/file/fd.c:1867 +#: storage/file/fd.c:1956 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "no se pudo eliminar (unlink) el archivo temporal «%s»: %m" -#: storage/file/fd.c:1955 +#: storage/file/fd.c:2044 #, c-format msgid "could not delete file \"%s\": %m" msgstr "no se pudo borrar el archivo «%s»: %m" -#: storage/file/fd.c:2138 +#: storage/file/fd.c:2234 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "el tamaño del archivo temporal excede temp_file_limit permitido (%dkB)" -#: storage/file/fd.c:2491 storage/file/fd.c:2550 +#: storage/file/fd.c:2594 storage/file/fd.c:2653 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de abrir el archivo «%s»" -#: storage/file/fd.c:2595 +#: storage/file/fd.c:2698 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de ejecutar la orden «%s»" -#: storage/file/fd.c:2751 +#: storage/file/fd.c:2854 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "se excedió maxAllocatedDescs (%d) mientras se trataba de abrir el directorio «%s»" -#: storage/file/fd.c:3281 +#: storage/file/fd.c:3384 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "archivo inesperado en directorio de archivos temporales: «%s»" -#: storage/file/fd.c:3399 +#: storage/file/fd.c:3502 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "sincronizando el directorio de datos (syncfs), transcurrido: %ld.%02d s, ruta actual: %s" -#: storage/file/fd.c:3413 -#, c-format -msgid "could not synchronize file system for file \"%s\": %m" -msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" - -#: storage/file/fd.c:3626 +#: storage/file/fd.c:3729 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "sincronizando el directorio de datos (pre-fsync), transcurrido: %ld.%02d s, ruta actual: %s" -#: storage/file/fd.c:3658 +#: storage/file/fd.c:3761 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "sincronizando el directorio de datos (fsync), transcurrido: %ld.%02d s, ruta actual: %s" -#: storage/file/fd.c:3847 -#, fuzzy, c-format -#| msgid "Direct I/O is not supported on this platform.\n" -msgid "debug_io_direct is not supported on this platform." -msgstr "Direct I/O no está soportado en esta plataforma.\n" +#: storage/file/fd.c:3950 +#, c-format +msgid "\"debug_io_direct\" is not supported on this platform." +msgstr "«debug_io_direct» no está soportado en esta plataforma." + +#: storage/file/fd.c:3964 +#, c-format +msgid "Invalid list syntax in parameter \"%s\"" +msgstr "Sintaxis de lista no válida en el parámetro «%s»" -#: storage/file/fd.c:3894 +#: storage/file/fd.c:3984 #, c-format -msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "" +msgid "Invalid option \"%s\"" +msgstr "Nombre de opción «%s» no válido." -#: storage/file/fd.c:3901 +#: storage/file/fd.c:3997 #, c-format -msgid "debug_io_direct is not supported for data because BLCKSZ is too small" -msgstr "" +msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" +msgstr "«debug_io_direct» no está soportado para WAL porque XLOG_BLCKSZ es demasiado pequeño" + +#: storage/file/fd.c:4004 +#, c-format +msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" +msgstr "«debug_io_direct» no está soportado para datos porque BLCKSZ es demasiado pequeño" #: storage/file/reinit.c:145 #, c-format @@ -21776,22 +22287,22 @@ msgstr "reseteando relaciones «unlogged» (init), transcurrido: %ld.%02d s, rut msgid "resetting unlogged relations (cleanup), elapsed time: %ld.%02d s, current path: %s" msgstr "reseteando relaciones «unlogged» (cleanup), transcurrido: %ld.%02d s, ruta actual: %s" -#: storage/file/sharedfileset.c:79 +#: storage/file/sharedfileset.c:73 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "no se puede adjuntar a un SharedFileSet que ya está destruido" -#: storage/ipc/dsm.c:352 +#: storage/ipc/dsm.c:379 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "el segmento de control de memoria compartida dinámica está corrupto" -#: storage/ipc/dsm.c:417 +#: storage/ipc/dsm.c:444 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "el segmento de control de memoria compartida dinámica no es válido" -#: storage/ipc/dsm.c:599 +#: storage/ipc/dsm.c:626 #, c-format msgid "too many dynamic shared memory segments" msgstr "demasiados segmentos de memoria compartida dinámica" @@ -21851,457 +22362,456 @@ msgstr "no se pudo cerrar el segmento de memoria compartida «%s»: %m" msgid "could not duplicate handle for \"%s\": %m" msgstr "no se pudo duplicar el «handle» para «%s»: %m" -#: storage/ipc/procarray.c:3796 +#: storage/ipc/dsm_registry.c:142 +#, c-format +msgid "DSM segment name cannot be empty" +msgstr "el nombre del segmento DSM no puede ser vacío" + +#: storage/ipc/dsm_registry.c:146 +#, c-format +msgid "DSM segment name too long" +msgstr "nombre de segmento DSM es demasiado largo" + +#: storage/ipc/dsm_registry.c:150 +#, c-format +msgid "DSM segment size must be nonzero" +msgstr "el tamaño del segmento DSM debe ser distinto de cero" + +#: storage/ipc/dsm_registry.c:176 +#, c-format +msgid "requested DSM segment size does not match size of existing segment" +msgstr "el tamaño solicitado de segmento de DSM no coincide con el tamaño del segmento existente" + +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:357 +#: tcop/backend_startup.c:304 +#, c-format +msgid "sorry, too many clients already" +msgstr "lo siento, ya tenemos demasiados clientes" + +#: storage/ipc/procarray.c:3857 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "la base de datos «%s» está siendo utilizada por transacciones preparadas" -#: storage/ipc/procarray.c:3828 +#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901 +#: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format -msgid "must be a superuser to terminate superuser process" -msgstr "debe ser superusuario para terminar proceso de superusuario" - -#: storage/ipc/procarray.c:3835 storage/ipc/signalfuncs.c:230 -#: storage/ipc/signalfuncs.c:237 -#, fuzzy, c-format -#| msgid "permission denied to create role" msgid "permission denied to terminate process" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para terminar el proceso" -#: storage/ipc/procarray.c:3836 storage/ipc/signalfuncs.c:238 +#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236 +#, c-format +msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." +msgstr "Sólo roles con el atributo %s pueden terminar procesos de roles con el atributo %s." + +#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." -msgstr "" +msgstr "Sólo roles con privilegios del rol cuyo proceso está siendo terminados o con privilegios del rol «%s» pueden terminar este proceso." -#: storage/ipc/procsignal.c:420 +#: storage/ipc/procsignal.c:416 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" -msgstr "" +msgstr "aún esperando que el backend con PID %d acepte ProcSignalBarrier" -#: storage/ipc/shm_mq.c:384 +#: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" msgstr "no se puede enviar un mensaje de tamaño %zu mediante la cola de memoria compartida" -#: storage/ipc/shm_mq.c:719 +#: storage/ipc/shm_mq.c:718 #, c-format msgid "invalid message size %zu in shared memory queue" msgstr "tamaño no válido de mensaje %zu en cola de memoria compartida" -#: 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:2810 storage/lmgr/lock.c:4195 -#: storage/lmgr/lock.c:4260 storage/lmgr/lock.c:4610 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984 +#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2835 storage/lmgr/lock.c:4220 +#: storage/lmgr/lock.c:4285 storage/lmgr/lock.c:4635 +#: storage/lmgr/predicate.c:2468 storage/lmgr/predicate.c:2483 +#: storage/lmgr/predicate.c:3880 storage/lmgr/predicate.c:4927 +#: utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "memoria compartida agotada" -#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266 +#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "memoria compartida agotada (%zu bytes solicitados)" -#: storage/ipc/shmem.c:445 +#: storage/ipc/shmem.c:436 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "no se pudo crear la entrada en ShmemIndex para la estructura «%s»" -#: storage/ipc/shmem.c:460 +#: storage/ipc/shmem.c:451 #, c-format msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu" msgstr "el tamaño de la entrada ShmemIndex es incorrecto para la estructura «%s»: se esperaba %zu, real %zu" -#: storage/ipc/shmem.c:479 +#: storage/ipc/shmem.c:470 #, c-format msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)" msgstr "el espacio de memoria compartida es insuficiente para la estructura «%s» (%zu bytes solicitados)" -#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530 +#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 #, c-format msgid "requested shared memory size overflows size_t" msgstr "la petición de tamaño de memoria compartida desborda size_t" #: storage/ipc/signalfuncs.c:72 -#, fuzzy, c-format -#| msgid "PID %d is not a PostgreSQL server process" +#, c-format msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d no es un proceso servidor de PostgreSQL" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1379 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1453 +#: utils/adt/mcxtfuncs.c:182 #, c-format msgid "could not send signal to process %d: %m" msgstr "no se pudo enviar la señal al proceso %d: %m" -#: storage/ipc/signalfuncs.c:124 storage/ipc/signalfuncs.c:131 -#, fuzzy, c-format -#| msgid "permission denied to create role" +#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 +#, c-format msgid "permission denied to cancel query" -msgstr "se ha denegado el permiso para crear el rol" +msgstr "se ha denegado el permiso para cancelar la consulta" -#: storage/ipc/signalfuncs.c:125 +#: storage/ipc/signalfuncs.c:130 #, c-format -msgid "Only roles with the %s attribute may cancel queries of roles with %s." -msgstr "" +msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." +msgstr "Sólo roles con el atributo %s pueden cancelar consultas de roles con el atributo %s." -#: storage/ipc/signalfuncs.c:132 +#: storage/ipc/signalfuncs.c:137 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." -msgstr "" +msgstr "Sólo roles con privilegios del rol cuya consulta está siendo cancelada o con privilegios del rol «%s» pueden cancelar esta consulta." -#: storage/ipc/signalfuncs.c:174 +#: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "no se pudo comprobar la existencia del proceso de servidor con PID %d: %m" -#: storage/ipc/signalfuncs.c:192 +#: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "el proceso de servidor con PID %d no terminó dentro de %lld milisegundo" msgstr[1] "el proceso de servidor con PID %d no terminó dentro de %lld milisegundos" -#: storage/ipc/signalfuncs.c:223 +#: storage/ipc/signalfuncs.c:228 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" no debe ser negativo" -#: storage/ipc/signalfuncs.c:231 -#, c-format -msgid "Only roles with the %s attribute may terminate processes of roles with %s." -msgstr "" - -#: storage/ipc/signalfuncs.c:279 -#, c-format -msgid "must be superuser to rotate log files with adminpack 1.0" -msgstr "bebe ser superusuario para rotar archivos de log con adminpack 1.0" - -#. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:281 utils/adt/genfile.c:250 -#, c-format -msgid "Consider using %s, which is part of core, instead." -msgstr "Considere usar %s, que es parte del servidor, en su lugar." - -#: storage/ipc/signalfuncs.c:287 storage/ipc/signalfuncs.c:307 +#: storage/ipc/signalfuncs.c:285 #, c-format msgid "rotation not possible because log collection not active" msgstr "la rotación no es posible porque la recoleccion de log no está activa" -#: storage/ipc/standby.c:330 +#: storage/ipc/standby.c:329 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "la recuperación aún está esperando después de %ld.%03d ms: %s" -#: storage/ipc/standby.c:339 +#: storage/ipc/standby.c:338 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "la recuperación terminó de esperar después de %ld.%03d ms: %s" -#: storage/ipc/standby.c:921 tcop/postgres.c:3384 +#: storage/ipc/standby.c:920 tcop/postgres.c:3196 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "cancelando la sentencia debido a un conflicto con la recuperación" -#: storage/ipc/standby.c:922 tcop/postgres.c:2533 +#: storage/ipc/standby.c:921 tcop/postgres.c:2557 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "La transacción del usuario causó un «deadlock» con la recuperación." -#: storage/ipc/standby.c:1479 +#: storage/ipc/standby.c:1486 msgid "unknown reason" msgstr "razón desconocida" -#: storage/ipc/standby.c:1484 +#: storage/ipc/standby.c:1491 msgid "recovery conflict on buffer pin" msgstr "conflicto de recuperación en «pin» de búfer" -#: storage/ipc/standby.c:1487 +#: storage/ipc/standby.c:1494 msgid "recovery conflict on lock" msgstr "conflicto de recuperación en bloqueo" -#: storage/ipc/standby.c:1490 +#: storage/ipc/standby.c:1497 msgid "recovery conflict on tablespace" msgstr "conflicto de recuperación en tablespace" -#: storage/ipc/standby.c:1493 +#: storage/ipc/standby.c:1500 msgid "recovery conflict on snapshot" msgstr "conflicto de recuperación en snapshot" -#: storage/ipc/standby.c:1496 -#, fuzzy -#| msgid "recovery conflict on snapshot" +#: storage/ipc/standby.c:1503 msgid "recovery conflict on replication slot" -msgstr "conflicto de recuperación en snapshot" +msgstr "conflicto de recuperación en slot de replicación" -#: storage/ipc/standby.c:1499 +#: storage/ipc/standby.c:1506 msgid "recovery conflict on buffer deadlock" msgstr "conflicto de recuperación en deadlock de búfer" -#: storage/ipc/standby.c:1502 +#: storage/ipc/standby.c:1509 msgid "recovery conflict on database" msgstr "conflicto de recuperación en base de datos" -#: storage/large_object/inv_api.c:191 +#: storage/large_object/inv_api.c:190 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "la entrada pg_largeobject para el OID %u, página %d tiene tamaño de campo %d no válido" -#: storage/large_object/inv_api.c:274 +#: storage/large_object/inv_api.c:272 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "opciones no válidas para abrir un objeto grande: %d" -#: storage/large_object/inv_api.c:457 +#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 +#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 +#: storage/large_object/inv_api.c:807 +#, c-format +msgid "permission denied for large object %u" +msgstr "permiso denegado al objeto grande %u" + +#: storage/large_object/inv_api.c:455 #, c-format msgid "invalid whence setting: %d" msgstr "parámetro «whence» no válido: %d" -#: storage/large_object/inv_api.c:629 +#: storage/large_object/inv_api.c:627 #, c-format msgid "invalid large object write request size: %d" msgstr "tamaño de petición de escritura de objeto grande no válido: %d" -#: storage/lmgr/deadlock.c:1105 +#: storage/lmgr/deadlock.c:1104 #, c-format msgid "Process %d waits for %s on %s; blocked by process %d." msgstr "El proceso %d espera %s en %s; bloqueado por proceso %d." -#: storage/lmgr/deadlock.c:1124 +#: storage/lmgr/deadlock.c:1123 #, c-format msgid "Process %d: %s" msgstr "Proceso %d: %s" -#: storage/lmgr/deadlock.c:1133 +#: storage/lmgr/deadlock.c:1132 #, c-format msgid "deadlock detected" msgstr "se ha detectado un deadlock" -#: storage/lmgr/deadlock.c:1136 +#: storage/lmgr/deadlock.c:1135 #, c-format msgid "See server log for query details." msgstr "Vea el registro del servidor para obtener detalles de las consultas." -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:848 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "mientras se actualizaba la tupla (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:851 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "mientras se borraba la tupla (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:854 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "mientras se bloqueaba la tupla (%u,%u) de la relación «%s»" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:857 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "mientras se bloqueaba la versión actualizada (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:860 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "mientras se insertaba la tupla de índice (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:863 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "mientras se verificaba la unicidad de la tupla (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:877 +#: storage/lmgr/lmgr.c:866 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "mientras se verificaba la tupla actualizada (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:880 +#: storage/lmgr/lmgr.c:869 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "mientras se verificaba una restricción de exclusión en la tupla (%u,%u) en la relación «%s»" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1239 #, c-format msgid "relation %u of database %u" msgstr "relación %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "extension of relation %u of database %u" msgstr "extensión de la relación %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1251 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid de la base de datos %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1256 #, c-format msgid "page %u of relation %u of database %u" msgstr "página %u de la relación %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1263 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "tupla (%u,%u) de la relación %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1271 #, c-format msgid "transaction %u" msgstr "transacción %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "virtual transaction %d/%u" msgstr "transacción virtual %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1282 #, c-format msgid "speculative token %u of transaction %u" msgstr "token especulativo %u de la transacción %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1288 #, c-format msgid "object %u of class %u of database %u" msgstr "objeto %u de clase %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1296 #, c-format msgid "user lock [%u,%u,%u]" -msgstr "candado de usuario [%u,%u,%u]" +msgstr "“lock” de usuario [%u,%u,%u]" # XXX is this a good translation? -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1303 #, c-format msgid "advisory lock [%u,%u,%u,%u]" -msgstr "candado consultivo [%u,%u,%u,%u]" +msgstr "“lock” consultivo [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 -#, fuzzy, c-format -#| msgid "extension of relation %u of database %u" +#: storage/lmgr/lmgr.c:1311 +#, c-format msgid "remote transaction %u of subscription %u of database %u" -msgstr "extensión de la relación %u de la base de datos %u" +msgstr "transacción remota %u de la suscripción %u de la base de datos %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1318 #, c-format msgid "unrecognized locktag type %d" msgstr "tipo de locktag %d no reconocido" -#: storage/lmgr/lock.c:803 +#: storage/lmgr/lock.c:812 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" -msgstr "no se puede adquirir candado en modo %s en objetos de la base de datos mientras la recuperación está en proceso" +msgstr "no se puede adquirir “lock” en modo %s en objetos de la base de datos mientras la recuperación está en proceso" -#: storage/lmgr/lock.c:805 +#: storage/lmgr/lock.c:814 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." -msgstr "Sólo candados RowExclusiveLock o menor pueden ser adquiridos en objetos de la base de datos durante la recuperación." - -#: storage/lmgr/lock.c:983 storage/lmgr/lock.c:1021 storage/lmgr/lock.c:2811 -#: storage/lmgr/lock.c:4196 storage/lmgr/lock.c:4261 storage/lmgr/lock.c:4611 -#, c-format -msgid "You might need to increase max_locks_per_transaction." -msgstr "Puede ser necesario incrementar max_locks_per_transaction." +msgstr "Sólo “locks” RowExclusiveLock o menor pueden ser adquiridos en objetos de la base de datos durante la recuperación." -#: storage/lmgr/lock.c:3259 storage/lmgr/lock.c:3327 storage/lmgr/lock.c:3443 +#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3352 storage/lmgr/lock.c:3468 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" -msgstr "no se puede hacer PREPARE mientras se mantienen candados a nivel de sesión y transacción simultáneamente sobre el mismo objeto" +msgstr "no se puede hacer PREPARE mientras se mantienen “locks” a nivel de sesión y transacción simultáneamente sobre el mismo objeto" -#: storage/lmgr/predicate.c:649 +#: storage/lmgr/predicate.c:653 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "no hay suficientes elementos en RWConflictPool para registrar un conflicto read/write" -#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 +#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679 #, c-format -msgid "You might need to run fewer transactions at a time or increase max_connections." -msgstr "Puede ser necesario ejecutar menos transacciones al mismo tiempo, o incrementar max_connections." +msgid "You might need to run fewer transactions at a time or increase \"max_connections\"." +msgstr "Puede ser necesario ejecutar menos transacciones al mismo tiempo, o incrementar «max_connections»." -#: storage/lmgr/predicate.c:674 +#: storage/lmgr/predicate.c:678 #, c-format msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "no hay suficientes elementos en RWConflictPool para registrar un potencial conflicto read/write" -#: storage/lmgr/predicate.c:1630 +#: storage/lmgr/predicate.c:1686 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "«default_transaction_isolation» está definido a «serializable»." -#: storage/lmgr/predicate.c:1631 +#: storage/lmgr/predicate.c:1687 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "Puede usar «SET default_transaction_isolation = 'repeatable read'» para cambiar el valor por omisión." -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1738 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "una transacción que importa un snapshot no debe ser READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1817 utils/time/snapmgr.c:535 +#: utils/time/snapmgr.c:541 #, c-format msgid "could not import the requested snapshot" msgstr "no se pudo importar el snapshot solicitado" -#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 +#: storage/lmgr/predicate.c:1818 utils/time/snapmgr.c:542 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "El proceso de origen con PID %d ya no está en ejecución." -#: storage/lmgr/predicate.c:2413 storage/lmgr/predicate.c:2428 -#: storage/lmgr/predicate.c:3825 -#, c-format -msgid "You might need to increase max_pred_locks_per_transaction." -msgstr "Puede ser necesario incrementar max_pred_locks_per_transaction." - -#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3991 storage/lmgr/predicate.c:4027 +#: storage/lmgr/predicate.c:4060 storage/lmgr/predicate.c:4068 +#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4337 +#: storage/lmgr/predicate.c:4656 storage/lmgr/predicate.c:4668 +#: storage/lmgr/predicate.c:4715 storage/lmgr/predicate.c:4751 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "no se pudo serializar el acceso debido a dependencias read/write entre transacciones" -#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3993 storage/lmgr/predicate.c:4029 +#: storage/lmgr/predicate.c:4062 storage/lmgr/predicate.c:4070 +#: storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4339 +#: storage/lmgr/predicate.c:4658 storage/lmgr/predicate.c:4670 +#: storage/lmgr/predicate.c:4717 storage/lmgr/predicate.c:4753 #, c-format msgid "The transaction might succeed if retried." msgstr "La transacción podría tener éxito si es reintentada." -#: storage/lmgr/proc.c:349 +#: storage/lmgr/proc.c:353 #, c-format -msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" -msgstr "la cantidad de conexiones standby pedidas excede max_wal_senders (actualmente %d)" +msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)" +msgstr "la cantidad de conexiones standby pedidas excede «max_wal_senders» (actualmente %d)" -#: storage/lmgr/proc.c:1472 +#: storage/lmgr/proc.c:1546 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "el proceso %d evitó un deadlock para %s en %s reordenando la cola después de %ld.%03d ms" -#: storage/lmgr/proc.c:1487 +#: storage/lmgr/proc.c:1561 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "el proceso %d detectó un deadlock mientras esperaba %s en %s después de %ld.%03d ms" -#: storage/lmgr/proc.c:1496 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "el proceso %d aún espera %s en %s después de %ld.%03d ms" -#: storage/lmgr/proc.c:1503 +#: storage/lmgr/proc.c:1577 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "el proceso %d adquirió %s en %s después de %ld.%03d ms" -#: storage/lmgr/proc.c:1520 +#: storage/lmgr/proc.c:1594 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "el proceso %d no pudo adquirir %s en %s después de %ld.%03d ms" @@ -22334,68 +22844,202 @@ msgstr "los largos de ítem están corruptos: total %u, espacio disponible %u" msgid "corrupted line pointer: offset = %u, size = %u" msgstr "puntero de ítem corrupto: desplazamiento = %u, tamaño = %u" -#: storage/smgr/md.c:484 storage/smgr/md.c:546 +#: storage/smgr/md.c:485 storage/smgr/md.c:547 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "no se pudo extender el archivo «%s» más allá de %u bloques" -#: storage/smgr/md.c:499 storage/smgr/md.c:610 +#: storage/smgr/md.c:500 storage/smgr/md.c:611 #, c-format msgid "could not extend file \"%s\": %m" msgstr "no se pudo extender el archivo «%s»: %m" -#: storage/smgr/md.c:505 +#: storage/smgr/md.c:506 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "no se pudo extender el archivo «%s»: sólo se escribieron %d de %d bytes en el bloque %u" -#: storage/smgr/md.c:588 -#, fuzzy, c-format -#| msgid "could not extend file \"%s\": %m" -msgid "could not extend file \"%s\" with FileFallocate(): %m" -msgstr "no se pudo extender el archivo «%s»: %m" - -#: storage/smgr/md.c:779 +#: storage/smgr/md.c:589 #, c-format -msgid "could not read block %u in file \"%s\": %m" -msgstr "no se pudo leer el bloque %u del archivo «%s»: %m" +msgid "could not extend file \"%s\" with FileFallocate(): %m" +msgstr "no se pudo extender el archivo «%s» con FileFallocate(): %m" -#: storage/smgr/md.c:795 +#: storage/smgr/md.c:869 #, c-format -msgid "could not read block %u in file \"%s\": read only %d of %d bytes" -msgstr "no se pudo leer el bloque %u del archivo «%s»: se leyeron sólo %d de %d bytes" +msgid "could not read blocks %u..%u in file \"%s\": %m" +msgstr "no se pudo leer los bloques %u..%u del archivo «%s»: %m" -#: storage/smgr/md.c:853 +#: storage/smgr/md.c:895 #, c-format -msgid "could not write block %u in file \"%s\": %m" -msgstr "no se pudo escribir el bloque %u en el archivo «%s»: %m" +msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" +msgstr "no se pudo leer los bloques %u..%u del archivo «%s»: se leyeron sólo %zu de %zu bytes" -#: storage/smgr/md.c:858 +#: storage/smgr/md.c:995 #, c-format -msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" -msgstr "no se pudo escribir el bloque %u en el archivo «%s»: se escribieron sólo %d de %d bytes" +msgid "could not write blocks %u..%u in file \"%s\": %m" +msgstr "no se pudo escribir los bloques %u..%u en el archivo «%s»: %m" -#: storage/smgr/md.c:1009 +#: storage/smgr/md.c:1165 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "no se pudo truncar el archivo «%s» a %u bloques: es de sólo %u bloques ahora" -#: storage/smgr/md.c:1064 +#: storage/smgr/md.c:1220 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "no se pudo truncar el archivo «%s» a %u bloques: %m" -#: storage/smgr/md.c:1491 +#: storage/smgr/md.c:1700 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): el segmento previo sólo tiene %u bloques" -#: storage/smgr/md.c:1505 +#: storage/smgr/md.c:1714 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): %m" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#: tcop/backend_startup.c:85 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "No se pudo cargar la configuración SSL en proceso secundario" + +#: tcop/backend_startup.c:208 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "conexión recibida: host=%s port=%s" + +#: tcop/backend_startup.c:213 +#, c-format +msgid "connection received: host=%s" +msgstr "conexión recibida: host=%s" + +#: tcop/backend_startup.c:277 +#, c-format +msgid "the database system is starting up" +msgstr "el sistema de base de datos está iniciándose" + +#: tcop/backend_startup.c:283 +#, c-format +msgid "the database system is not yet accepting connections" +msgstr "el sistema de bases de datos aún no está aceptando conexiones" + +#: tcop/backend_startup.c:284 +#, c-format +msgid "Consistent recovery state has not been yet reached." +msgstr "Aún no se ha alcanzado un estado de recuperación consistente." + +#: tcop/backend_startup.c:288 +#, c-format +msgid "the database system is not accepting connections" +msgstr "el sistema de bases de datos no está aceptando conexiones" + +#: tcop/backend_startup.c:289 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "El modo hot standby está desactivado." + +#: tcop/backend_startup.c:294 +#, c-format +msgid "the database system is shutting down" +msgstr "el sistema de base de datos está apagándose" + +#: tcop/backend_startup.c:299 +#, c-format +msgid "the database system is in recovery mode" +msgstr "el sistema de base de datos está en modo de recuperación" + +#: tcop/backend_startup.c:414 +#, c-format +msgid "received direct SSL connection request without ALPN protocol negotiation extension" +msgstr "se recibió petición de conexión SSL directa sin la extensión de negociación de protocolo ALPN" + +#: tcop/backend_startup.c:420 +#, c-format +msgid "direct SSL connection accepted" +msgstr "conexión SSL directa aceptada" + +#: tcop/backend_startup.c:430 +#, c-format +msgid "direct SSL connection rejected" +msgstr "conexión SSL directa rechazada" + +#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#, c-format +msgid "incomplete startup packet" +msgstr "el paquete de inicio está incompleto" + +#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#, c-format +msgid "invalid length of startup packet" +msgstr "el de paquete de inicio tiene largo incorrecto" + +#: tcop/backend_startup.c:573 +#, c-format +msgid "SSLRequest accepted" +msgstr "SSLRequest aceptado" + +#: tcop/backend_startup.c:576 +#, c-format +msgid "SSLRequest rejected" +msgstr "SSLRequest rechazado" + +#: tcop/backend_startup.c:585 +#, c-format +msgid "failed to send SSL negotiation response: %m" +msgstr "no se pudo enviar la respuesta de negociación SSL: %m" + +#: tcop/backend_startup.c:603 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "se recibieron datos no cifrados después de petición SSL" + +#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#, c-format +msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." +msgstr "Esto podría ser un error en el software cliente o evidencia de un intento de ataque man-in-the-middle." + +#: tcop/backend_startup.c:627 +#, c-format +msgid "GSSENCRequest accepted" +msgstr "GSSENCRequest aceptado" + +#: tcop/backend_startup.c:630 +#, c-format +msgid "GSSENCRequest rejected" +msgstr "GSSENCRequest rechazado" + +#: tcop/backend_startup.c:639 +#, c-format +msgid "failed to send GSSAPI negotiation response: %m" +msgstr "no se pudo enviar la respuesta de negociación GSSAPI: %m" + +#: tcop/backend_startup.c:657 +#, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "se recibieron datos no cifrados después de petición de cifrado GSSAPI" + +#: tcop/backend_startup.c:681 +#, c-format +msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" +msgstr "el protocolo %u.%u no está soportado: servidor soporta %u.0 hasta %u.%u" + +#: tcop/backend_startup.c:744 +#, c-format +msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." +msgstr "Los valores válidos son: «false», 0, «true», 1, «database»." + +#: tcop/backend_startup.c:785 +#, c-format +msgid "invalid startup packet layout: expected terminator as last byte" +msgstr "el paquete de inicio no es válido: se esperaba un terminador en el último byte" + +#: tcop/backend_startup.c:802 +#, c-format +msgid "no PostgreSQL user name specified in startup packet" +msgstr "no se especifica un nombre de usuario en el paquete de inicio" + +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "no existe la función con OID %u" @@ -22410,8 +23054,8 @@ msgstr "no se puede llamar a la función «%s» mediante la interfaz fastpath" msgid "fastpath function call: \"%s\" (OID %u)" msgstr "llamada a función fastpath: «%s» (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605 +#: tcop/postgres.c:2071 tcop/postgres.c:2333 #, c-format msgid "duration: %s ms" msgstr "duración: %s ms" @@ -22441,317 +23085,320 @@ msgstr "el tamaño de argumento %d no es válido en el mensaje de llamada a func msgid "incorrect binary data format in function argument %d" msgstr "el formato de datos binarios es incorrecto en argumento %d a función" -#: tcop/postgres.c:463 tcop/postgres.c:4877 +#: tcop/postgres.c:467 tcop/postgres.c:5012 #, c-format msgid "invalid frontend message type %d" msgstr "el tipo de mensaje de frontend %d no es válido" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1076 #, c-format msgid "statement: %s" msgstr "sentencia: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1374 #, c-format msgid "duration: %s ms statement: %s" msgstr "duración: %s ms sentencia: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1480 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "no se pueden insertar múltiples órdenes en una sentencia preparada" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1610 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "duración: %s ms parse: %s: %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2629 +#: tcop/postgres.c:1677 tcop/postgres.c:2653 #, c-format msgid "unnamed prepared statement does not exist" msgstr "no existe una sentencia preparada sin nombre" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1729 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "el mensaje de «bind» tiene %d formatos de parámetro pero %d parámetros" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1735 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "el mensaje de «bind» entrega %d parámetros, pero la sentencia preparada «%s» requiere %d" -#: tcop/postgres.c:1937 +#: tcop/postgres.c:1949 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "el formato de datos binarios es incorrecto en el parámetro de «bind» %d" -#: tcop/postgres.c:2064 +#: tcop/postgres.c:2076 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "duración: %s ms bind %s%s%s: %s" -#: tcop/postgres.c:2118 tcop/postgres.c:2712 +#: tcop/postgres.c:2131 tcop/postgres.c:2735 #, c-format msgid "portal \"%s\" does not exist" msgstr "no existe el portal «%s»" -#: tcop/postgres.c:2189 +#: tcop/postgres.c:2213 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2191 tcop/postgres.c:2317 +#: tcop/postgres.c:2215 tcop/postgres.c:2341 msgid "execute fetch from" msgstr "ejecutar fetch desde" -#: tcop/postgres.c:2192 tcop/postgres.c:2318 +#: tcop/postgres.c:2216 tcop/postgres.c:2342 msgid "execute" msgstr "ejecutar" -#: tcop/postgres.c:2314 +#: tcop/postgres.c:2338 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "duración: %s ms %s %s%s%s: %s" -#: tcop/postgres.c:2462 +#: tcop/postgres.c:2486 #, c-format msgid "prepare: %s" msgstr "prepare: %s" -#: tcop/postgres.c:2487 +#: tcop/postgres.c:2511 #, c-format -msgid "parameters: %s" -msgstr "parámetros: %s" +msgid "Parameters: %s" +msgstr "Parámetros: %s" -#: tcop/postgres.c:2502 +#: tcop/postgres.c:2526 #, c-format -msgid "abort reason: recovery conflict" -msgstr "razón para abortar: conflicto en la recuperación" +msgid "Abort reason: recovery conflict" +msgstr "Razón para abortar: conflicto en la recuperación" -#: tcop/postgres.c:2518 +#: tcop/postgres.c:2542 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "El usuario mantuvo el búfer compartido «clavado» por demasiado tiempo." -#: tcop/postgres.c:2521 +#: tcop/postgres.c:2545 #, c-format msgid "User was holding a relation lock for too long." msgstr "El usuario mantuvo una relación bloqueada por demasiado tiempo." -#: tcop/postgres.c:2524 +#: tcop/postgres.c:2548 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "El usuario estaba o pudo haber estado usando un tablespace que debía ser eliminado." -#: tcop/postgres.c:2527 +#: tcop/postgres.c:2551 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "La consulta del usuario pudo haber necesitado examinar versiones de tuplas que debían eliminarse." -#: tcop/postgres.c:2530 -#, fuzzy, c-format -#| msgid "User was connected to a database that must be dropped." -msgid "User was using a logical slot that must be invalidated." -msgstr "El usuario estaba conectado a una base de datos que debía ser eliminada." +#: tcop/postgres.c:2554 +#, c-format +msgid "User was using a logical replication slot that must be invalidated." +msgstr "El usuario estaba usando un slot de replicación lógica que debía ser invalidado." -#: tcop/postgres.c:2536 +#: tcop/postgres.c:2560 #, c-format msgid "User was connected to a database that must be dropped." msgstr "El usuario estaba conectado a una base de datos que debía ser eliminada." -#: tcop/postgres.c:2575 +#: tcop/postgres.c:2599 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "portal «%s» parámetro $%d = %s" -#: tcop/postgres.c:2578 +#: tcop/postgres.c:2602 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "portal «%s» parámetro $%d" -#: tcop/postgres.c:2584 +#: tcop/postgres.c:2608 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "portal sin nombre, parámetro %d = %s" -#: tcop/postgres.c:2587 +#: tcop/postgres.c:2611 #, c-format msgid "unnamed portal parameter $%d" msgstr "portal sin nombre, parámetro %d" -#: tcop/postgres.c:2932 +#: tcop/postgres.c:2955 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "terminando la conexión debido a una señal SIGQUIT inesperada" -#: tcop/postgres.c:2938 +#: tcop/postgres.c:2961 #, c-format msgid "terminating connection because of crash of another server process" msgstr "terminando la conexión debido a una falla en otro proceso servidor" -#: tcop/postgres.c:2939 +#: tcop/postgres.c:2962 #, c-format 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 "Postmaster ha ordenado que este proceso servidor cancele la transacción en curso y finalice la conexión, porque otro proceso servidor ha terminado anormalmente y podría haber corrompido la memoria compartida." -#: tcop/postgres.c:2943 tcop/postgres.c:3310 +#: tcop/postgres.c:2966 tcop/postgres.c:3219 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "Dentro de un momento debería poder reconectarse y repetir la consulta." -#: tcop/postgres.c:2950 +#: tcop/postgres.c:2973 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "terminando la conexión debido a una orden de apagado inmediato" -#: tcop/postgres.c:3036 +#: tcop/postgres.c:3051 #, c-format msgid "floating-point exception" msgstr "excepción de coma flotante" -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3052 #, c-format 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 "Se ha recibido una señal de una operación de coma flotante no válida. Esto puede significar un resultado fuera de rango o una operación no válida, como una división por cero." -#: tcop/postgres.c:3214 +#: tcop/postgres.c:3217 +#, c-format +msgid "terminating connection due to conflict with recovery" +msgstr "terminando la conexión debido a un conflicto con la recuperación" + +#: tcop/postgres.c:3289 #, c-format msgid "canceling authentication due to timeout" msgstr "cancelando la autentificación debido a que se agotó el tiempo de espera" -#: tcop/postgres.c:3218 +#: tcop/postgres.c:3293 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "terminando el proceso autovacuum debido a una orden del administrador" -#: tcop/postgres.c:3222 +#: tcop/postgres.c:3297 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "terminando el proceso de replicación lógica debido a una orden del administrador" -#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 -#, c-format -msgid "terminating connection due to conflict with recovery" -msgstr "terminando la conexión debido a un conflicto con la recuperación" - -#: tcop/postgres.c:3260 +#: tcop/postgres.c:3317 #, c-format msgid "terminating connection due to administrator command" msgstr "terminando la conexión debido a una orden del administrador" -#: tcop/postgres.c:3291 +#: tcop/postgres.c:3348 #, c-format msgid "connection to client lost" msgstr "se ha perdido la conexión al cliente" -#: tcop/postgres.c:3361 +#: tcop/postgres.c:3400 #, c-format msgid "canceling statement due to lock timeout" -msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de candados (locks)" +msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de “locks”" -#: tcop/postgres.c:3368 +#: tcop/postgres.c:3407 #, c-format msgid "canceling statement due to statement timeout" msgstr "cancelando la sentencia debido a que se agotó el tiempo de espera de sentencias" -#: tcop/postgres.c:3375 +#: tcop/postgres.c:3414 #, c-format msgid "canceling autovacuum task" msgstr "cancelando tarea de autovacuum" -#: tcop/postgres.c:3398 +#: tcop/postgres.c:3427 #, c-format msgid "canceling statement due to user request" msgstr "cancelando la sentencia debido a una petición del usuario" -#: tcop/postgres.c:3412 +#: tcop/postgres.c:3448 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "terminando la conexión debido a que se agotó el tiempo de espera para transacciones abiertas inactivas" -#: tcop/postgres.c:3423 +#: tcop/postgres.c:3461 +#, c-format +msgid "terminating connection due to transaction timeout" +msgstr "terminando la conexión debido a que se agotó el tiempo de espera para transacciones" + +#: tcop/postgres.c:3474 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "terminando la conexión debido a que se agotó el tiempo de espera para sesiones abiertas inactivas" -#: tcop/postgres.c:3514 +#: tcop/postgres.c:3564 #, c-format msgid "stack depth limit exceeded" msgstr "límite de profundidad de stack alcanzado" -#: tcop/postgres.c:3515 +#: tcop/postgres.c:3565 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "Incremente el parámetro de configuración «max_stack_depth» (actualmente %dkB), después de asegurarse que el límite de profundidad de stack de la plataforma es adecuado." -#: tcop/postgres.c:3562 +#: tcop/postgres.c:3612 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "«max_stack_depth» no debe exceder %ldkB." -#: tcop/postgres.c:3564 +#: tcop/postgres.c:3614 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "Incremente el límite de profundidad del stack del sistema usando «ulimit -s» o el equivalente de su sistema." -#: tcop/postgres.c:3587 -#, fuzzy, c-format -#| msgid "huge_page_size must be 0 on this platform." -msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "huge_page_size debe ser 0 en esta plataforma." +#: tcop/postgres.c:3637 +#, c-format +msgid "\"client_connection_check_interval\" must be set to 0 on this platform." +msgstr "«client_connection_check_interval» debe ser 0 en esta plataforma." -#: tcop/postgres.c:3608 +#: tcop/postgres.c:3658 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "No se puede activar el parámetro cuando «log_statement_stats» está activo." -#: tcop/postgres.c:3623 +#: tcop/postgres.c:3673 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "No se puede activar «log_statement_stats» cuando «log_parser_stats», «log_planner_stats» o «log_executor_stats» están activos." -#: tcop/postgres.c:3971 +#: tcop/postgres.c:4098 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "argumentos de línea de órdenes no válidos para proceso servidor: %s" -#: tcop/postgres.c:3972 tcop/postgres.c:3978 +#: tcop/postgres.c:4099 tcop/postgres.c:4105 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: tcop/postgres.c:3976 +#: tcop/postgres.c:4103 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: argumento de línea de órdenes no válido: %s" -#: tcop/postgres.c:4029 +#: tcop/postgres.c:4156 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: no se ha especificado base de datos ni usuario" -#: tcop/postgres.c:4774 +#: tcop/postgres.c:4909 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "subtipo %d de mensaje CLOSE no válido" -#: tcop/postgres.c:4811 +#: tcop/postgres.c:4946 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "subtipo %d de mensaje DESCRIBE no válido" -#: tcop/postgres.c:4898 +#: tcop/postgres.c:5033 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "la invocación «fastpath» de funciones no está soportada en conexiones de replicación" -#: tcop/postgres.c:4902 +#: tcop/postgres.c:5037 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "el protocolo extendido de consultas no está soportado en conexiones de replicación" -#: tcop/postgres.c:5082 +#: tcop/postgres.c:5217 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "desconexión: duración de sesión: %d:%02d:%02d.%03d usuario=%s base=%s host=%s%s%s" @@ -22761,57 +23408,56 @@ msgstr "desconexión: duración de sesión: %d:%02d:%02d.%03d usuario=%s base=%s msgid "bind message has %d result formats but query has %d columns" msgstr "el mensaje de «bind» tiene %d formatos de resultado pero la consulta tiene %d columnas" -#: tcop/pquery.c:944 tcop/pquery.c:1701 +#: tcop/pquery.c:942 tcop/pquery.c:1696 #, c-format msgid "cursor can only scan forward" msgstr "el cursor sólo se puede desplazar hacia adelante" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:943 tcop/pquery.c:1697 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Declárelo con SCROLL para permitirle desplazar hacia atrás." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:417 +#: tcop/utility.c:410 #, c-format msgid "cannot execute %s in a read-only transaction" msgstr "no se puede ejecutar %s en una transacción de sólo lectura" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:435 +#: tcop/utility.c:428 #, c-format msgid "cannot execute %s during a parallel operation" msgstr "no se puede ejecutar %s durante una operación paralela" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:454 +#: tcop/utility.c:447 #, c-format msgid "cannot execute %s during recovery" msgstr "no se puede ejecutar %s durante la recuperación" #. translator: %s is name of a SQL command, eg PREPARE -#: tcop/utility.c:472 +#: tcop/utility.c:465 #, c-format msgid "cannot execute %s within security-restricted operation" msgstr "no se puede ejecutar %s durante una operación restringida por seguridad" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:828 +#: tcop/utility.c:821 #, c-format msgid "cannot execute %s within a background process" msgstr "no se puede ejecutar %s dentro de un proceso en segundo plano" -#: tcop/utility.c:953 -#, fuzzy, c-format -#| msgid "permission denied for sequence %s" +#. translator: %s is name of a SQL command, eg CHECKPOINT +#: tcop/utility.c:947 +#, c-format msgid "permission denied to execute %s command" -msgstr "permiso denegado a la secuencia %s" +msgstr "permiso denegado a ejecutar la sentencia %s" -#: tcop/utility.c:955 -#, fuzzy, c-format -#| msgid "Set the privileges of the element type instead." +#: tcop/utility.c:949 +#, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." -msgstr "Defina los privilegios del tipo elemento en su lugar." +msgstr "Sólo los roles con privilegios del rol «%s» pueden ejecutar esta sentencia." #: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:616 #, c-format @@ -22962,13 +23608,13 @@ msgstr "marca de afijo «%s» no válida con el valor de marca «long»" msgid "could not open dictionary file \"%s\": %m" msgstr "no se pudo abrir el archivo de diccionario «%s»: %m" -#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559 +#: tsearch/spell.c:749 utils/adt/regexp.c:223 jsonpath_gram.y:629 #, c-format msgid "invalid regular expression: %s" msgstr "la expresión regular no es válida: %s" #: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 -#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18124 gram.y:18141 +#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18735 gram.y:18752 #, c-format msgid "syntax error" msgstr "error de sintaxis" @@ -23004,17 +23650,17 @@ msgstr "el número de aliases excede el número especificado %d" msgid "affix file contains both old-style and new-style commands" msgstr "el archivo de «affix» contiene órdenes en estilos antiguo y nuevo" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "la cadena es demasiado larga para tsvector (%d bytes, máximo %d bytes)" -#: tsearch/ts_locale.c:238 +#: tsearch/ts_locale.c:236 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "línea %d del archivo de configuración «%s»: «%s»" -#: tsearch/ts_locale.c:317 +#: tsearch/ts_locale.c:315 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "conversión desde un wchar_t a la codificación del servidor falló: %m" @@ -23041,193 +23687,197 @@ msgstr "nombre de configuración de búsqueda en texto «%s» no válido" msgid "could not open stop-word file \"%s\": %m" msgstr "no se pudo abrir el archivo de stopwords «%s»: %m" -#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 +#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471 #, c-format msgid "text search parser does not support headline creation" msgstr "el analizador de búsqueda en texto no soporta creación de encabezados (headline)" -#: tsearch/wparser_def.c:2648 +#: tsearch/wparser_def.c:2664 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "parámetro de encabezado (headline) no reconocido: «%s»" -#: tsearch/wparser_def.c:2658 +#: tsearch/wparser_def.c:2674 #, c-format -msgid "MinWords should be less than MaxWords" -msgstr "MinWords debería ser menor que MaxWords" +#| msgid "%s must be in range %d..%d" +msgid "%s must be less than %s" +msgstr "%s debe ser menor que %s" -#: tsearch/wparser_def.c:2662 +#: tsearch/wparser_def.c:2678 #, c-format -msgid "MinWords should be positive" -msgstr "MinWords debería ser positivo" +#| msgid "COST must be positive" +msgid "%s must be positive" +msgstr "%s debe ser positivo" -#: tsearch/wparser_def.c:2666 +#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686 #, c-format -msgid "ShortWord should be >= 0" -msgstr "ShortWord debería ser >= 0" +msgid "%s must be >= 0" +msgstr "%s debe ser >= 0" -#: tsearch/wparser_def.c:2670 +#: utils/activity/pgstat.c:435 #, c-format -msgid "MaxFragments should be >= 0" -msgstr "MaxFragments debería ser >= 0" - -#: utils/activity/pgstat.c:438 -#, fuzzy, c-format -#| msgid "could not open statistics file \"%s\": %m" msgid "could not unlink permanent statistics file \"%s\": %m" -msgstr "no se pudo abrir el archivo de estadísticas «%s»: %m" +msgstr "no se pudo eliminar el archivo permanente de estadísticas «%s»: %m" -#: utils/activity/pgstat.c:1241 -#, fuzzy, c-format -#| msgid "unrecognized statistics kind \"%s\"" +#: utils/activity/pgstat.c:1255 +#, c-format msgid "invalid statistics kind: \"%s\"" -msgstr "tipo de estadísticas «%s» no reconocido" +msgstr "tipo de estadísticas no válido: «%s»" -#: utils/activity/pgstat.c:1321 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "no se pudo abrir el archivo temporal de estadísticas «%s»: %m" -#: utils/activity/pgstat.c:1433 +#: utils/activity/pgstat.c:1455 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "no se pudo escribir el archivo temporal de estadísticas «%s»: %m" -#: utils/activity/pgstat.c:1442 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "no se pudo cerrar el archivo temporal de estadísticas «%s»: %m" -#: utils/activity/pgstat.c:1450 +#: utils/activity/pgstat.c:1472 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "no se pudo cambiar el nombre al archivo temporal de estadísticas de «%s» a «%s»: %m" -#: utils/activity/pgstat.c:1499 +#: utils/activity/pgstat.c:1521 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "no se pudo abrir el archivo de estadísticas «%s»: %m" -#: utils/activity/pgstat.c:1661 +#: utils/activity/pgstat.c:1683 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "el archivo de estadísticas «%s» está corrupto" #: utils/activity/pgstat_function.c:118 -#, fuzzy, c-format -#| msgid "cast function must be a normal function" +#, c-format msgid "function call to dropped function" -msgstr "la función de conversión debe ser una función normal" +msgstr "invocación a una función eliminada" -#: utils/activity/pgstat_xact.c:363 +#: utils/activity/pgstat_xact.c:362 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" -msgstr "" +msgstr "reseteando estadísticas existentes para el tipo %s, db=%u, oid=%u" + +#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "ya existe un “wait event” llamado «%s» en el tipo «%s»" + +#: utils/activity/wait_event.c:246 +#, c-format +msgid "too many custom wait events" +msgstr "demasiados “wait events” definidos por el usuario" -#: utils/adt/acl.c:177 utils/adt/name.c:93 +#: utils/adt/acl.c:183 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "el identificador es demasiado largo" -#: utils/adt/acl.c:178 utils/adt/name.c:94 +#: utils/adt/acl.c:184 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "El identificador debe ser menor a %d caracteres." -#: utils/adt/acl.c:266 +#: utils/adt/acl.c:272 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "palabra clave no reconocida: «%s»" -#: utils/adt/acl.c:267 +#: utils/adt/acl.c:273 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "Palabra clave de ACL debe ser «group» o «user»." -#: utils/adt/acl.c:275 +#: utils/adt/acl.c:281 #, c-format msgid "missing name" msgstr "falta un nombre" -#: utils/adt/acl.c:276 +#: utils/adt/acl.c:282 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "Debe venir un nombre después de una palabra clave «group» o «user»." -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:288 #, c-format msgid "missing \"=\" sign" msgstr "falta un signo «=»" -#: utils/adt/acl.c:344 +#: utils/adt/acl.c:350 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "carácter de modo no válido: debe ser uno de «%s»" -#: utils/adt/acl.c:374 +#: utils/adt/acl.c:380 #, c-format msgid "a name must follow the \"/\" sign" msgstr "debe venir un nombre después del signo «/»" -#: utils/adt/acl.c:386 +#: utils/adt/acl.c:392 #, c-format msgid "defaulting grantor to user ID %u" msgstr "usando el cedente por omisión con ID %u" -#: utils/adt/acl.c:572 +#: utils/adt/acl.c:578 #, c-format msgid "ACL array contains wrong data type" msgstr "el array ACL contiene tipo de datos incorrecto" -#: utils/adt/acl.c:576 +#: utils/adt/acl.c:582 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "los array de ACL debe ser unidimensional" -#: utils/adt/acl.c:580 +#: utils/adt/acl.c:586 #, c-format msgid "ACL arrays must not contain null values" msgstr "los arrays de ACL no pueden contener valores nulos" -#: utils/adt/acl.c:609 +#: utils/adt/acl.c:615 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "basura extra al final de la especificación de la ACL" -#: utils/adt/acl.c:1251 +#: utils/adt/acl.c:1263 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "la opción de grant no puede ser otorgada de vuelta a quien la otorgó" -#: utils/adt/acl.c:1567 +#: utils/adt/acl.c:1579 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert ya no está soportado" -#: utils/adt/acl.c:1577 +#: utils/adt/acl.c:1589 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove ya no está soportado" -#: utils/adt/acl.c:1697 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "tipo de privilegio no reconocido: «%s»" -#: utils/adt/acl.c:3484 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "no existe la función «%s»" -#: utils/adt/acl.c:5031 +#: utils/adt/acl.c:5196 #, c-format msgid "must be able to SET ROLE \"%s\"" -msgstr "" +msgstr "debe ser capaz de hacer SET ROLE «%s»" #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 +#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 +#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "no se pudo determinar el tipo de dato de entrada" @@ -23238,17 +23888,17 @@ msgid "input data type is not an array" msgstr "el tipo de entrada no es un array" #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 +#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454 +#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 +#: utils/adt/varlena.c:3137 #, c-format msgid "integer out of range" msgstr "entero fuera de rango" @@ -23285,268 +23935,278 @@ msgstr "Los arrays con elementos de diferentes dimensiones son incompatibles par msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Los arrays con diferentes dimensiones son incompatibles para la concatenación." -#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5590 utils/adt/arrayfuncs.c:5596 +#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 +#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "no se pueden acumular arrays de distinta dimensionalidad" -#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 +#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "no está soportada la búsqueda de elementos en arrays multidimensionales" -#: utils/adt/array_userfuncs.c:1315 +#: utils/adt/array_userfuncs.c:1301 #, c-format msgid "initial position must not be null" msgstr "la posición inicial no debe ser null" -#: utils/adt/array_userfuncs.c:1688 -#, fuzzy, c-format -#| msgid "sample percentage must be between 0 and 100" +#: utils/adt/array_userfuncs.c:1674 +#, c-format msgid "sample size must be between 0 and %d" -msgstr "el porcentaje de muestreo debe estar entre 0 y 100" - -#: utils/adt/arrayfuncs.c:273 utils/adt/arrayfuncs.c:287 -#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:320 -#: utils/adt/arrayfuncs.c:337 utils/adt/arrayfuncs.c:351 -#: utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:366 -#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:521 -#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:547 -#: utils/adt/arrayfuncs.c:568 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:605 utils/adt/arrayfuncs.c:613 -#: utils/adt/arrayfuncs.c:647 utils/adt/arrayfuncs.c:670 -#: utils/adt/arrayfuncs.c:690 utils/adt/arrayfuncs.c:807 -#: utils/adt/arrayfuncs.c:816 utils/adt/arrayfuncs.c:846 -#: utils/adt/arrayfuncs.c:861 utils/adt/arrayfuncs.c:914 +msgstr "el tamaño de la muestra debe estar entre 0 y %d" + +#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273 +#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307 +#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454 +#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703 +#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777 +#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870 +#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904 +#: utils/adt/arrayfuncs.c:941 #, c-format msgid "malformed array literal: \"%s\"" msgstr "literal de array mal formado: «%s»" -#: utils/adt/arrayfuncs.c:274 -#, c-format -msgid "\"[\" must introduce explicitly-specified array dimensions." -msgstr "Un «[» debe introducir dimensiones de array especificadas explícitamente." - -#: utils/adt/arrayfuncs.c:288 +#: utils/adt/arrayfuncs.c:265 #, c-format -msgid "Missing array dimension value." -msgstr "Falta un valor de dimensión de array." +msgid "Array value must start with \"{\" or dimension information." +msgstr "El valor de array debe comenzar con «{» o información de dimensión." -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:338 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "Falta «%s» luego de las dimensiones de array." -#: utils/adt/arrayfuncs.c:308 utils/adt/arrayfuncs.c:2933 -#: utils/adt/arrayfuncs.c:2965 utils/adt/arrayfuncs.c:2980 +#: utils/adt/arrayfuncs.c:285 #, c-format -msgid "upper bound cannot be less than lower bound" -msgstr "el límite superior no puede ser menor que el límite inferior" +msgid "Array contents must start with \"{\"." +msgstr "El contenido del array debe empezar con «{»." + +#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292 +#, c-format +msgid "Junk after closing right brace." +msgstr "Basura después de la llave derecha de cierre." + +#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643 +#, c-format +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "el número de dimensiones del array excede el máximo permitido (%d)" + +#: utils/adt/arrayfuncs.c:441 +#, c-format +msgid "\"[\" must introduce explicitly-specified array dimensions." +msgstr "Un «[» debe introducir dimensiones de array especificadas explícitamente." -#: utils/adt/arrayfuncs.c:321 +#: utils/adt/arrayfuncs.c:455 #, c-format -msgid "Array value must start with \"{\" or dimension information." -msgstr "El valor de array debe comenzar con «{» o información de dimensión." +msgid "Missing array dimension value." +msgstr "Falta un valor de dimensión de array." -#: utils/adt/arrayfuncs.c:352 +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 +#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 #, c-format -msgid "Array contents must start with \"{\"." -msgstr "El contenido del array debe empezar con «{»." +msgid "upper bound cannot be less than lower bound" +msgstr "el límite superior no puede ser menor que el límite inferior" -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 +#: utils/adt/arrayfuncs.c:487 #, c-format -msgid "Specified array dimensions do not match array contents." -msgstr "Las dimensiones del array especificadas no coinciden con el contenido del array." +msgid "array upper bound is too large: %d" +msgstr "el límite superior del array es demasiado grande: %d" -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:533 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:538 #, c-format -msgid "Unexpected end of input." -msgstr "Fin inesperado de la entrada." +msgid "array bound is out of integer range" +msgstr "límite de array está fuera del rango entero" -#: utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:569 -#: utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:648 +#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669 +#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898 #, c-format msgid "Unexpected \"%c\" character." msgstr "Carácter «%c» inesperado." -#: utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:671 +#: utils/adt/arrayfuncs.c:719 #, c-format msgid "Unexpected array element." msgstr "Elemento de array inesperado." -#: utils/adt/arrayfuncs.c:606 +#: utils/adt/arrayfuncs.c:778 #, c-format -msgid "Unmatched \"%c\" character." -msgstr "Carácter «%c» desemparejado." +msgid "Specified array dimensions do not match array contents." +msgstr "Las dimensiones del array especificadas no coinciden con el contenido del array." -#: utils/adt/arrayfuncs.c:614 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2598 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Los arrays multidimensionales deben tener sub-arrays con dimensiones coincidentes." -#: utils/adt/arrayfuncs.c:691 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:871 utils/adt/arrayfuncs.c:905 #, c-format -msgid "Junk after closing right brace." -msgstr "Basura después de la llave derecha de cierre." +msgid "Incorrectly quoted array element." +msgstr "Elemento de array entrecomillado incorrectamente." + +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 +#: utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 +#: utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#, c-format +msgid "Unexpected end of input." +msgstr "Fin inesperado de la entrada." -#: utils/adt/arrayfuncs.c:1325 utils/adt/arrayfuncs.c:3479 -#: utils/adt/arrayfuncs.c:6080 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3499 +#: utils/adt/arrayfuncs.c:6106 #, c-format msgid "invalid number of dimensions: %d" msgstr "número incorrecto de dimensiones: %d" -#: utils/adt/arrayfuncs.c:1336 +#: utils/adt/arrayfuncs.c:1312 #, c-format msgid "invalid array flags" msgstr "opciones de array no válidas" -#: utils/adt/arrayfuncs.c:1358 +#: utils/adt/arrayfuncs.c:1334 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "los datos binarios tienen el tipo de elemento de array %u (%s) en lugar del esperado %u (%s)" -#: utils/adt/arrayfuncs.c:1402 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 +#: utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 #, c-format msgid "no binary input function available for type %s" msgstr "no hay una función binaria de entrada para el tipo %s" -#: utils/adt/arrayfuncs.c:1542 +#: utils/adt/arrayfuncs.c:1509 #, c-format msgid "improper binary format in array element %d" msgstr "el formato binario no es válido en elemento %d de array" -#: utils/adt/arrayfuncs.c:1623 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 +#: utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 #, c-format msgid "no binary output function available for type %s" msgstr "no hay una función binaria de salida para el tipo %s" -#: utils/adt/arrayfuncs.c:2102 +#: utils/adt/arrayfuncs.c:2067 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "no está implementada la obtención de segmentos de arrays de largo fijo" -#: utils/adt/arrayfuncs.c:2280 utils/adt/arrayfuncs.c:2302 -#: utils/adt/arrayfuncs.c:2351 utils/adt/arrayfuncs.c:2589 -#: utils/adt/arrayfuncs.c:2911 utils/adt/arrayfuncs.c:6066 -#: utils/adt/arrayfuncs.c:6092 utils/adt/arrayfuncs.c:6103 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 +#: utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6092 +#: utils/adt/arrayfuncs.c:6118 utils/adt/arrayfuncs.c:6129 +#: utils/adt/json.c:1433 utils/adt/json.c:1505 utils/adt/jsonb.c:1317 +#: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4710 utils/adt/jsonfuncs.c:4863 +#: utils/adt/jsonfuncs.c:4974 utils/adt/jsonfuncs.c:5022 #, c-format msgid "wrong number of array subscripts" msgstr "número incorrecto de subíndices del array" -#: utils/adt/arrayfuncs.c:2285 utils/adt/arrayfuncs.c:2393 -#: utils/adt/arrayfuncs.c:2656 utils/adt/arrayfuncs.c:2970 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 +#: utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "subíndice de array fuera de rango" -#: utils/adt/arrayfuncs.c:2290 +#: utils/adt/arrayfuncs.c:2255 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "no se puede asignar un valor nulo a un elemento de un array de longitud fija" -#: utils/adt/arrayfuncs.c:2858 +#: utils/adt/arrayfuncs.c:2855 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "no están implementadas las actualizaciones en segmentos de arrays de largo fija" -#: utils/adt/arrayfuncs.c:2889 +#: utils/adt/arrayfuncs.c:2886 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "los subíndices del segmento de array deben especificar ambos bordes" -#: utils/adt/arrayfuncs.c:2890 +#: utils/adt/arrayfuncs.c:2887 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Cuando se asigna a un segmento de un array vacío, los bordes del segmento deben ser especificados completamente." -#: utils/adt/arrayfuncs.c:2901 utils/adt/arrayfuncs.c:2997 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "el array de origen es demasiado pequeño" -#: utils/adt/arrayfuncs.c:3637 +#: utils/adt/arrayfuncs.c:3657 #, c-format msgid "null array element not allowed in this context" msgstr "los arrays con elementos null no son permitidos en este contexto" -#: utils/adt/arrayfuncs.c:3808 utils/adt/arrayfuncs.c:3979 -#: utils/adt/arrayfuncs.c:4370 +#: utils/adt/arrayfuncs.c:3828 utils/adt/arrayfuncs.c:3999 +#: utils/adt/arrayfuncs.c:4390 #, c-format msgid "cannot compare arrays of different element types" msgstr "no se pueden comparar arrays con elementos de distintos tipos" -#: utils/adt/arrayfuncs.c:4157 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4177 utils/adt/multirangetypes.c:2805 +#: utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 +#: utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 #, c-format msgid "could not identify a hash function for type %s" msgstr "no se pudo identificar una función de hash para el tipo %s" -#: utils/adt/arrayfuncs.c:4285 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4305 utils/adt/rowtypes.c:1996 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "no se pudo identificar una función de hash extendida para el tipo %s" -#: utils/adt/arrayfuncs.c:5480 +#: utils/adt/arrayfuncs.c:5506 #, c-format msgid "data type %s is not an array type" msgstr "el tipo %s no es un array" -#: utils/adt/arrayfuncs.c:5535 +#: utils/adt/arrayfuncs.c:5561 #, c-format msgid "cannot accumulate null arrays" msgstr "no se pueden acumular arrays nulos" -#: utils/adt/arrayfuncs.c:5563 +#: utils/adt/arrayfuncs.c:5589 #, c-format msgid "cannot accumulate empty arrays" msgstr "no se pueden acumular arrays vacíos" -#: utils/adt/arrayfuncs.c:5964 utils/adt/arrayfuncs.c:6004 +#: utils/adt/arrayfuncs.c:5990 utils/adt/arrayfuncs.c:6030 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "el array de dimensiones o el array de límites inferiores debe ser no nulo" -#: utils/adt/arrayfuncs.c:6067 utils/adt/arrayfuncs.c:6093 +#: utils/adt/arrayfuncs.c:6093 utils/adt/arrayfuncs.c:6119 #, c-format msgid "Dimension array must be one dimensional." msgstr "El array de dimensiones debe ser unidimensional." -#: utils/adt/arrayfuncs.c:6072 utils/adt/arrayfuncs.c:6098 +#: utils/adt/arrayfuncs.c:6098 utils/adt/arrayfuncs.c:6124 #, c-format msgid "dimension values cannot be null" msgstr "los valores de dimensión no pueden ser null" -#: utils/adt/arrayfuncs.c:6104 +#: utils/adt/arrayfuncs.c:6130 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "El array de límites inferiores tiene tamaño diferente que el array de dimensiones." -#: utils/adt/arrayfuncs.c:6382 +#: utils/adt/arrayfuncs.c:6411 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "la eliminación de elementos desde arrays multidimensionales no está soportada" -#: utils/adt/arrayfuncs.c:6659 +#: utils/adt/arrayfuncs.c:6688 #, c-format msgid "thresholds must be one-dimensional array" msgstr "los umbrales deben ser un array unidimensional" -#: utils/adt/arrayfuncs.c:6664 +#: utils/adt/arrayfuncs.c:6693 #, c-format msgid "thresholds array must not contain NULLs" msgstr "el array de umbrales no debe contener nulos" -#: utils/adt/arrayfuncs.c:6897 +#: utils/adt/arrayfuncs.c:6926 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "el número de elementos a recortar debe estar entre 0 y %d" @@ -23561,22 +24221,22 @@ msgstr "los subíndices de arrays deben tener tipo entero" msgid "array subscript in assignment must not be null" msgstr "subíndice de array en asignación no puede ser nulo" -#: utils/adt/arrayutils.c:161 +#: utils/adt/arrayutils.c:140 #, c-format msgid "array lower bound is too large: %d" msgstr "el límite inferior del array es demasiado grande: %d" -#: utils/adt/arrayutils.c:263 +#: utils/adt/arrayutils.c:242 #, c-format msgid "typmod array must be type cstring[]" msgstr "el array de typmod debe ser de tipo cstring[]" -#: utils/adt/arrayutils.c:268 +#: utils/adt/arrayutils.c:247 #, c-format msgid "typmod array must be one-dimensional" msgstr "array de typmod debe ser unidimensional" -#: utils/adt/arrayutils.c:273 +#: utils/adt/arrayutils.c:252 #, c-format msgid "typmod array must not contain nulls" msgstr "los arrays de typmod no deben contener valores nulos" @@ -23587,214 +24247,242 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "la conversión de codificación de %s a ASCII no está soportada" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/bool.c:149 utils/adt/cash.c:354 utils/adt/datetime.c:4142 +#: utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 +#: utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 #: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 #: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 #: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 #: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:273 -#: utils/adt/numutils.c:451 utils/adt/numutils.c:629 utils/adt/numutils.c:668 -#: utils/adt/numutils.c:690 utils/adt/numutils.c:754 utils/adt/numutils.c:776 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 +#: utils/adt/network.c:99 utils/adt/numeric.c:803 utils/adt/numeric.c:7221 +#: utils/adt/numeric.c:7424 utils/adt/numeric.c:8371 utils/adt/numutils.c:356 +#: utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 +#: utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 +#: utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:510 +#: utils/adt/uuid.c:140 utils/adt/xid8funcs.c:323 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "la sintaxis de entrada no es válida para tipo %s: «%s»" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:267 -#: utils/adt/numutils.c:445 utils/adt/numutils.c:623 utils/adt/numutils.c:674 -#: utils/adt/numutils.c:713 utils/adt/numutils.c:760 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 +#: utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "el valor «%s» está fuera de rango para el tipo %s" +msgid "money out of range" +msgstr "money fuera de rango" -#: 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:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3406 +#: utils/adt/cash.c:161 utils/adt/cash.c:723 utils/adt/float.c:99 +#: utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 +#: utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 +#: utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 +#: utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 +#: utils/adt/numeric.c:3191 utils/adt/numeric.c:3214 utils/adt/numeric.c:3299 +#: utils/adt/numeric.c:3317 utils/adt/numeric.c:3413 utils/adt/numeric.c:8920 +#: utils/adt/numeric.c:9233 utils/adt/numeric.c:9581 utils/adt/numeric.c:9697 +#: utils/adt/numeric.c:11208 utils/adt/timestamp.c:3713 #, c-format msgid "division by zero" msgstr "división por cero" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 +#: utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 +#: utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 +#: utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "el valor «%s» está fuera de rango para el tipo %s" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" msgstr "«char» fuera de rango" #: utils/adt/cryptohashfuncs.c:48 utils/adt/cryptohashfuncs.c:70 -#, fuzzy, c-format -#| msgid "could not decompress: %s" +#, c-format msgid "could not compute %s hash: %s" -msgstr "no se pudo descomprimir: %s" +msgstr "no se pudo calcular el hash %s: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "el modificador de tipo no es válido" -#: utils/adt/date.c:75 +#: utils/adt/date.c:76 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "la precisión de TIME(%d)%s no debe ser negativa" -#: utils/adt/date.c:81 +#: utils/adt/date.c:82 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "la precisión de TIME(%d)%s fue reducida al máximo permitido, %d" -#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 +#: utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 +#: utils/adt/formatting.c:4548 #, c-format msgid "date out of range: \"%s\"" msgstr "fecha fuera de rango: «%s»" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2460 +#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 +#: utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "fecha fuera de rango" -#: utils/adt/date.c:267 utils/adt/timestamp.c:582 +#: utils/adt/date.c:268 utils/adt/timestamp.c:598 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "valor en campo de fecha fuera de rango: %d-%02d-%02d" -#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 +#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "fecha fuera de rango: %d-%02d-%02d" -#: utils/adt/date.c:494 +#: utils/adt/date.c:495 #, c-format msgid "cannot subtract infinite dates" msgstr "no se pueden restar fechas infinitas" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 +#: utils/adt/date.c:2906 utils/adt/date.c:2916 #, c-format msgid "date out of range for timestamp" msgstr "fecha fuera de rango para timestamp" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4097 -#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4432 -#: utils/adt/timestamp.c:4685 utils/adt/timestamp.c:4886 -#: utils/adt/timestamp.c:4933 utils/adt/timestamp.c:5157 -#: utils/adt/timestamp.c:5204 utils/adt/timestamp.c:5334 -#, fuzzy, c-format -#| msgid "\"RN\" not supported for input" +#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 +#: utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 +#: utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 +#: utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 +#: utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 +#: utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 +#: utils/adt/timestamp.c:6070 +#, c-format msgid "unit \"%s\" not supported for type %s" -msgstr "«RN» no está soportado en la entrada" +msgstr "unidades «%s» no soportada para el tipo %s" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4111 utils/adt/timestamp.c:4307 -#: utils/adt/timestamp.c:4446 utils/adt/timestamp.c:4645 -#: utils/adt/timestamp.c:4942 utils/adt/timestamp.c:5213 -#: utils/adt/timestamp.c:5395 -#, fuzzy, c-format -#| msgid "%s: unrecognized start type \"%s\"\n" +#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 +#: utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 +#: utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 +#: utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 +#: utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 +#, c-format msgid "unit \"%s\" not recognized for type %s" -msgstr "%s: tipo de inicio «%s» no reconocido\n" - -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2976 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:3045 -#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3081 -#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3100 -#: utils/adt/timestamp.c:3801 utils/adt/timestamp.c:3925 -#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4105 -#: utils/adt/timestamp.c:4198 utils/adt/timestamp.c:4301 -#: utils/adt/timestamp.c:4750 utils/adt/timestamp.c:5024 -#: utils/adt/timestamp.c:5463 utils/adt/timestamp.c:5473 -#: utils/adt/timestamp.c:5478 utils/adt/timestamp.c:5484 -#: utils/adt/timestamp.c:5517 utils/adt/timestamp.c:5604 -#: utils/adt/timestamp.c:5645 utils/adt/timestamp.c:5649 -#: utils/adt/timestamp.c:5703 utils/adt/timestamp.c:5707 -#: utils/adt/timestamp.c:5713 utils/adt/timestamp.c:5747 utils/adt/xml.c:2482 -#: utils/adt/xml.c:2489 utils/adt/xml.c:2509 utils/adt/xml.c:2516 +msgstr "unidad «%s» no reconocida para el tipo %s" + +#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 +#: utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 +#: utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 +#: utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 +#: utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 +#: utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 +#: utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 +#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 +#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 +#: utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 +#: utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 +#: utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 +#: utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 +#: utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 +#: utils/adt/timestamp.c:3266 utils/adt/timestamp.c:3279 +#: utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 +#: utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 +#: utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 +#: utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 +#: utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 +#: utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 +#: utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 +#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 +#: utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 +#: utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 +#: utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 +#: utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2574 +#: utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "timestamp fuera de rango" -#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 +#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 #, c-format msgid "time out of range" msgstr "hora fuera de rango" -#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 +#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "valor en campo de hora fuera de rango: %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3455 utils/adt/timestamp.c:3482 -#: utils/adt/timestamp.c:3513 +#: utils/adt/date.c:2020 +#, c-format +msgid "cannot convert infinite interval to time" +msgstr "no se puede convertir intervalo infinito a time" + +#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#, c-format +msgid "cannot add infinite interval to time" +msgstr "no se puede sumar intervalo infinito a time" + +#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#, c-format +msgid "cannot subtract infinite interval from time" +msgstr "no se pueden restar intervalo infinito de time" + +#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 +#: utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2595 +#: utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 +#: utils/adt/timestamp.c:3888 #, c-format msgid "invalid preceding or following size in window function" msgstr "tamaño «preceding» o «following» no válido en ventana deslizante" -#: utils/adt/date.c:2351 +#: utils/adt/date.c:2360 #, c-format msgid "time zone displacement out of range" msgstr "desplazamiento de huso horario fuera de rango" -#: utils/adt/date.c:3110 utils/adt/timestamp.c:5506 utils/adt/timestamp.c:5736 +#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#, c-format +msgid "interval time zone \"%s\" must be finite" +msgstr "el intervalo de huso horario «%s» debe ser finito" + +#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "el intervalo de huso horario «%s» no debe especificar meses o días" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 +#: utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 #, c-format msgid "time zone \"%s\" not recognized" msgstr "el huso horario «%s» no es reconocido" -#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 +#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "valor de hora/fecha fuera de rango: «%s»" -#: utils/adt/datetime.c:3985 +#: utils/adt/datetime.c:4110 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "Quizás necesite una configuración diferente de «datestyle»." -#: utils/adt/datetime.c:3990 +#: utils/adt/datetime.c:4115 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "valor de interval fuera de rango: «%s»" -#: utils/adt/datetime.c:3996 +#: utils/adt/datetime.c:4121 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "desplazamiento de huso horario fuera de rango: «%s»" -#: utils/adt/datetime.c:4010 +#: utils/adt/datetime.c:4135 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "Este nombre de huso horario aparece en el archivo de configuración para abreviaciones de husos horarios «%s»." @@ -23804,23 +24492,22 @@ msgstr "Este nombre de huso horario aparece en el archivo de configuración para msgid "invalid Datum pointer" msgstr "puntero a Datum no válido" -#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:840 #, c-format msgid "invalid size: \"%s\"" msgstr "tamaño no válido: «%s»" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:841 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Nombre de unidad de tamaño no válido: «%s»." -#: utils/adt/dbsize.c:839 -#, fuzzy, c-format -#| msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." +#: utils/adt/dbsize.c:842 +#, c-format msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." -msgstr "Unidades válidas para este parámetro son «B», «kB», «MB», «GB» y «TB»." +msgstr "Unidades aceptables son «bytes«, «B», «kB», «MB», «GB», «TB» y «PB»." -#: utils/adt/domains.c:92 +#: utils/adt/domains.c:95 #, c-format msgid "type %s is not a domain" msgstr "tipo «%s» no es un dominio" @@ -23870,10 +24557,10 @@ msgstr "secuencia de término base64 no válida" msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "A los datos de entrada les falta relleno, o están truncados, o están corruptos de alguna otra forma." -#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 -#: utils/adt/varlena.c:331 utils/adt/varlena.c:372 jsonpath_gram.y:528 -#: jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 -#: jsonpath_scan.l:701 +#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:659 +#: utils/adt/varlena.c:333 utils/adt/varlena.c:374 jsonpath_gram.y:266 +#: jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 +#: jsonpath_scan.l:661 jsonpath_scan.l:712 #, c-format msgid "invalid input syntax for type %s" msgstr "sintaxis de entrada no válida para tipo %s" @@ -23910,353 +24597,348 @@ msgstr "no se pudo determinar el tipo enum efectivo" msgid "enum %s contains no values" msgstr "el enum %s no contiene valores" -#: utils/adt/float.c:89 +#: utils/adt/float.c:83 #, c-format msgid "value out of range: overflow" msgstr "valor fuera de rango: desbordamiento" -#: utils/adt/float.c:97 +#: utils/adt/float.c:91 #, c-format msgid "value out of range: underflow" msgstr "valor fuera de rango: desbordamiento por abajo" -#: utils/adt/float.c:286 +#: utils/adt/float.c:280 #, c-format msgid "\"%s\" is out of range for type real" msgstr "«%s» está fuera de rango para el tipo real" -#: utils/adt/float.c:488 +#: utils/adt/float.c:482 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "«%s» está fuera de rango para el tipo double precision" -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1277 utils/adt/numeric.c:4593 utils/adt/numeric.c:4598 #, c-format msgid "smallint out of range" msgstr "smallint fuera de rango" -#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 +#: utils/adt/float.c:1447 utils/adt/numeric.c:3709 utils/adt/numeric.c:10112 #, c-format msgid "cannot take square root of a negative number" msgstr "no se puede calcular la raíz cuadrada un de número negativo" -#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 +#: utils/adt/float.c:1515 utils/adt/numeric.c:3997 utils/adt/numeric.c:4109 #, c-format msgid "zero raised to a negative power is undefined" msgstr "cero elevado a una potencia negativa es indefinido" -#: utils/adt/float.c:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 +#: utils/adt/float.c:1519 utils/adt/numeric.c:4001 utils/adt/numeric.c:11003 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "un número negativo elevado a una potencia no positiva entrega un resultado complejo" -#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3909 +#: utils/adt/numeric.c:10783 #, c-format msgid "cannot take logarithm of zero" msgstr "no se puede calcular logaritmo de cero" -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3847 +#: utils/adt/numeric.c:3904 utils/adt/numeric.c:10787 #, c-format msgid "cannot take logarithm of a negative number" msgstr "no se puede calcular logaritmo de un número negativo" -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 +#: utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 +#: utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 +#: utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 +#: utils/adt/float.c:2696 utils/adt/float.c:2720 #, c-format msgid "input is out of range" msgstr "la entrada está fuera de rango" -#: utils/adt/float.c:2867 -#, c-format -msgid "setseed parameter %g is out of allowed range [-1,1]" -msgstr "parámetro setseed %g fuera del rango permitido [-1,1]" - -#: utils/adt/float.c:4095 utils/adt/numeric.c:1841 +#: utils/adt/float.c:4000 utils/adt/numeric.c:1857 #, c-format msgid "count must be greater than zero" msgstr "count debe ser mayor que cero" -#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 +#: utils/adt/float.c:4005 utils/adt/numeric.c:1868 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "el operando, límite inferior y límite superior no pueden ser NaN" -#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 +#: utils/adt/float.c:4011 utils/adt/numeric.c:1873 #, c-format msgid "lower and upper bounds must be finite" msgstr "los límites inferior y superior deben ser finitos" -#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 +#: utils/adt/float.c:4077 utils/adt/numeric.c:1887 #, c-format msgid "lower bound cannot equal upper bound" msgstr "el límite superior no puede ser igual al límite inferior" -#: utils/adt/formatting.c:519 +#: utils/adt/formatting.c:530 #, c-format msgid "invalid format specification for an interval value" msgstr "especificación de formato no válida para un valor de interval" -#: utils/adt/formatting.c:520 +#: utils/adt/formatting.c:531 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "Los Interval no están ... a valores determinados de fechas de calendario." -#: utils/adt/formatting.c:1150 +#: utils/adt/formatting.c:1161 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "«EEEE» debe ser el último patrón usado" -#: utils/adt/formatting.c:1158 +#: utils/adt/formatting.c:1169 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "«9» debe ir antes de «PR»" -#: utils/adt/formatting.c:1174 +#: utils/adt/formatting.c:1185 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "«0» debe ir antes de «PR»" -#: utils/adt/formatting.c:1201 +#: utils/adt/formatting.c:1212 #, c-format msgid "multiple decimal points" msgstr "hay múltiples puntos decimales" -#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "no se puede usar «V» y un punto decimal simultáneamente" -#: utils/adt/formatting.c:1217 +#: utils/adt/formatting.c:1228 #, c-format msgid "cannot use \"S\" twice" msgstr "no se puede usar «S» dos veces" -#: utils/adt/formatting.c:1221 +#: utils/adt/formatting.c:1232 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "no se puede usar «S» y «PL»/«MI»/«SG»/«PR» simultáneamente" -#: utils/adt/formatting.c:1241 +#: utils/adt/formatting.c:1252 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "no se puede usar «S» y «MI» simultáneamente" -#: utils/adt/formatting.c:1251 +#: utils/adt/formatting.c:1262 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "no se puede usar «S» y «PL» simultáneamente" -#: utils/adt/formatting.c:1261 +#: utils/adt/formatting.c:1272 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "no se puede usar «S» y «SG» simultáneamente" -#: utils/adt/formatting.c:1270 +#: utils/adt/formatting.c:1281 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "no se puede usar «PR» y «S»/«PL»/«MI»/«SG» simultáneamente" -#: utils/adt/formatting.c:1296 +#: utils/adt/formatting.c:1307 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "no se puede usar «EEEE» dos veces" -#: utils/adt/formatting.c:1302 +#: utils/adt/formatting.c:1313 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "«EEEE» es incompatible con otros formatos" -#: utils/adt/formatting.c:1303 +#: utils/adt/formatting.c:1314 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "«EEEE» sólo puede ser usado en conjunción con patrones de dígitos y puntos decimales." -#: utils/adt/formatting.c:1387 +#: utils/adt/formatting.c:1398 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "separador de formato «datetime» no válido: «%s»" -#: utils/adt/formatting.c:1514 +#: utils/adt/formatting.c:1525 #, c-format msgid "\"%s\" is not a number" msgstr "«%s» no es un número" -#: utils/adt/formatting.c:1592 +#: utils/adt/formatting.c:1603 #, c-format msgid "case conversion failed: %s" msgstr "falló la conversión de mayúsculas: %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 +#: utils/adt/formatting.c:1989 #, c-format msgid "could not determine which collation to use for %s function" msgstr "no se pudo determinar qué ordenamiento usar para la función %s" -#: utils/adt/formatting.c:2274 +#: utils/adt/formatting.c:2410 #, c-format msgid "invalid combination of date conventions" msgstr "combinación no válida de convenciones de fecha" -#: utils/adt/formatting.c:2275 +#: utils/adt/formatting.c:2411 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr " No mezclar convenciones de semana Gregorianas e ISO en una plantilla formateada" -#: utils/adt/formatting.c:2297 +#: utils/adt/formatting.c:2433 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "valores en conflicto para le campo \"%s\" en cadena de formato" -#: utils/adt/formatting.c:2299 +#: utils/adt/formatting.c:2435 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "Este valor se contradice con un seteo previo para el mismo tipo de campo" -#: utils/adt/formatting.c:2366 +#: utils/adt/formatting.c:2502 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "cadena de texto fuente muy corta para campo formateado \"%s\" " -#: utils/adt/formatting.c:2368 +#: utils/adt/formatting.c:2504 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "El campo requiere %d caractéres, pero solo quedan %d." -#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 +#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "Si su cadena de texto no es de ancho modificado, trate de usar el modificador \"FM\" " -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 +#: utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "el valor «%s» no es válido para «%s»" -#: utils/adt/formatting.c:2382 +#: utils/adt/formatting.c:2518 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "El campo requiere %d caracteres, pero sólo %d pudieron ser analizados." -#: utils/adt/formatting.c:2395 +#: utils/adt/formatting.c:2531 #, c-format msgid "Value must be an integer." msgstr "El valor debe ser un entero." -#: utils/adt/formatting.c:2400 +#: utils/adt/formatting.c:2536 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "el valor para «%s» en la cadena de origen está fuera de rango" -#: utils/adt/formatting.c:2402 +#: utils/adt/formatting.c:2538 #, c-format msgid "Value must be in the range %d to %d." msgstr "El valor debe estar en el rango de %d a %d." -#: utils/adt/formatting.c:2616 +#: utils/adt/formatting.c:2752 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "El valor dado no concuerda con ninguno de los valores permitidos para este campo." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 +#: utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 +#: utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 +#: utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 +#: utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 +#: utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 #, c-format msgid "localized string format value too long" msgstr "cadena traducida en cadena de formato es demasiado larga" -#: utils/adt/formatting.c:3322 +#: utils/adt/formatting.c:3458 #, c-format msgid "unmatched format separator \"%c\"" msgstr "separador de formato «%c» desemparejado" -#: utils/adt/formatting.c:3383 +#: utils/adt/formatting.c:3519 #, c-format msgid "unmatched format character \"%s\"" msgstr "carácter de formato «%s» desemparejado" -#: utils/adt/formatting.c:3491 +#: utils/adt/formatting.c:3652 #, c-format -msgid "formatting field \"%s\" is only supported in to_char" -msgstr "el campo de formato «%s» sólo está soportado en to_char" +msgid "Time zone abbreviation is not recognized." +msgstr "La abreviatura de huso horario no es reconocida." -#: utils/adt/formatting.c:3665 +#: utils/adt/formatting.c:3853 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "cadena de entrada no válida para «Y,YYY»" -#: utils/adt/formatting.c:3754 +#: utils/adt/formatting.c:3942 #, c-format msgid "input string is too short for datetime format" msgstr "cadena de entrada muy corta para formato de fecha/hora" -#: utils/adt/formatting.c:3762 +#: utils/adt/formatting.c:3950 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "quedan caracteres al final de la cadena de entrada después del formato fecha/hora" -#: utils/adt/formatting.c:4319 +#: utils/adt/formatting.c:4494 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "falta el huso horario en la cadena de entrada para el tipo timestamptz" -#: utils/adt/formatting.c:4325 +#: utils/adt/formatting.c:4500 #, c-format msgid "timestamptz out of range" msgstr "timestamptz fuera de rango" -#: utils/adt/formatting.c:4353 +#: utils/adt/formatting.c:4528 #, c-format msgid "datetime format is zoned but not timed" msgstr "el formato de fecha/hora tiene huso horario pero no hora" -#: utils/adt/formatting.c:4411 +#: utils/adt/formatting.c:4577 #, c-format msgid "missing time zone in input string for type timetz" msgstr "falta el huso horario en la cadena de entrada del tipo timetz" -#: utils/adt/formatting.c:4417 +#: utils/adt/formatting.c:4583 #, c-format msgid "timetz out of range" msgstr "timetz fuera de rango" -#: utils/adt/formatting.c:4443 +#: utils/adt/formatting.c:4609 #, c-format msgid "datetime format is not dated and not timed" msgstr "el formato de fecha/hora no tiene fecha ni hora" -#: utils/adt/formatting.c:4575 +#: utils/adt/formatting.c:4786 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "la hora «%d» no es válida para el reloj de 12 horas" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4788 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Use el reloj de 24 horas, o entregue una hora entre 1 y 12." -#: utils/adt/formatting.c:4689 +#: utils/adt/formatting.c:4900 #, c-format msgid "cannot calculate day of year without year information" msgstr "no se puede calcular el día del año sin conocer el año" -#: utils/adt/formatting.c:5621 +#: utils/adt/formatting.c:5852 #, c-format msgid "\"EEEE\" not supported for input" msgstr "«EEEE» no está soportado en la entrada" -#: utils/adt/formatting.c:5633 +#: utils/adt/formatting.c:5864 #, c-format msgid "\"RN\" not supported for input" msgstr "«RN» no está soportado en la entrada" @@ -24267,10 +24949,9 @@ msgid "absolute path not allowed" msgstr "no se permiten rutas absolutas" #: utils/adt/genfile.c:89 -#, fuzzy, c-format -#| msgid "Shows the mode of the data directory." +#, c-format msgid "path must be in or below the data directory" -msgstr "Muestra el modo del directorio de datos." +msgstr "la ruta debe estar en o debajo del directorio de datos" #: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 #: utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 @@ -24289,12 +24970,7 @@ msgstr "no se pudo posicionar (seek) el archivo «%s»: %m" msgid "file length too large" msgstr "el tamaño del archivo es demasiado grande" -#: utils/adt/genfile.c:248 -#, c-format -msgid "must be superuser to read files with adminpack 1.0" -msgstr "Debe ser superusuario leer archivos con adminpack 1.0." - -#: utils/adt/genfile.c:702 +#: utils/adt/genfile.c:656 #, c-format msgid "tablespace with OID %u does not exist" msgstr "no existe el tablespace con OID %u" @@ -24350,569 +25026,649 @@ msgstr "debe pedir al menos 2 puntos" msgid "invalid int2vector data" msgstr "datos de int2vector no válidos" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5797 utils/adt/timestamp.c:5879 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1765 +#: utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 #, c-format msgid "step size cannot equal zero" msgstr "el tamaño de paso no puede ser cero" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 +#: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 +#: utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 +#: utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 +#: utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 +#: utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 +#: utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 +#: utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 +#: utils/adt/int8.c:1055 utils/adt/int8.c:1069 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 +#: utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4542 +#: utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint fuera de rango" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1360 #, c-format msgid "OID out of range" msgstr "OID fuera de rango" -#: utils/adt/json.c:320 utils/adt/jsonb.c:781 +#: utils/adt/json.c:202 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "el valor de llave debe ser escalar, no array, composite o json" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "no se pudo determinar el tipo de dato para el argumento %d" -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1067 utils/adt/json.c:1266 utils/adt/json.c:1449 +#: utils/adt/json.c:1527 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "no se permite el valor nulo como llave en un objeto" -#: utils/adt/json.c:1189 utils/adt/json.c:1352 -#, fuzzy, c-format -#| msgid "Duplicate keys exist." -msgid "duplicate JSON key %s" -msgstr "Existe una llave duplicada." +#: utils/adt/json.c:1117 utils/adt/json.c:1288 +#, c-format +msgid "duplicate JSON object key value: %s" +msgstr "valor de llave de objeto JSON duplicado: %s" -#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 +#: utils/adt/json.c:1226 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "la lista de argumentos debe tener un número par de elementos" #. translator: %s is a SQL function name -#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 +#: utils/adt/json.c:1228 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "El argumento de %s debe consistir de llaves y valores alternados." -#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 +#: utils/adt/json.c:1427 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "un array debe tener dos columnas" -#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 +#: utils/adt/json.c:1516 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "las dimensiones de array no coinciden" -#: utils/adt/json.c:1764 +#: utils/adt/json.c:1702 utils/adt/jsonb_util.c:1956 #, c-format msgid "duplicate JSON object key value" -msgstr "" +msgstr "valor de llavo del objeto JSON duplicado" -#: utils/adt/jsonb.c:294 +#: utils/adt/jsonb.c:282 #, c-format msgid "string too long to represent as jsonb string" msgstr "la cadena es demasiado larga para representarla como cadena jsonb." -#: utils/adt/jsonb.c:295 +#: utils/adt/jsonb.c:283 #, c-format msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "Debido a una restricción de la implementación, las cadenas en jsonb no pueden exceder los %d bytes." -#: utils/adt/jsonb.c:1252 +#: utils/adt/jsonb.c:1153 #, c-format msgid "argument %d: key must not be null" msgstr "argumento %d: la llave no puede ser null" -#: utils/adt/jsonb.c:1843 +#: utils/adt/jsonb.c:1744 #, c-format msgid "field name must not be null" msgstr "el nombre de campo no debe ser null" -#: utils/adt/jsonb.c:1905 +#: utils/adt/jsonb.c:1806 #, c-format msgid "object keys must be strings" msgstr "las llaves de un objeto deben ser cadenas" -#: utils/adt/jsonb.c:2116 +#: utils/adt/jsonb.c:2017 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "no se puede convertir un null jsonb a tipo %s" -#: utils/adt/jsonb.c:2117 +#: utils/adt/jsonb.c:2018 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "no se puede convertir un string jsonb a tipo %s" -#: utils/adt/jsonb.c:2118 +#: utils/adt/jsonb.c:2019 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "no se puede convertir un numérico jsonb a tipo %s" -#: utils/adt/jsonb.c:2119 +#: utils/adt/jsonb.c:2020 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "no se puede convertir un booleano jsonb a tipo %s" -#: utils/adt/jsonb.c:2120 +#: utils/adt/jsonb.c:2021 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "no se puede convertir un array jsonb a tipo %s" -#: utils/adt/jsonb.c:2121 +#: utils/adt/jsonb.c:2022 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "no se puede convertir un objeto jsonb a tipo %s" -#: utils/adt/jsonb.c:2122 +#: utils/adt/jsonb.c:2023 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "no se puede convertir un array u objeto jsonb a tipo %s" -#: utils/adt/jsonb_util.c:758 +#: utils/adt/jsonb_util.c:756 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "el número de pares en objeto jsonb excede el máximo permitido (%zu)" -#: utils/adt/jsonb_util.c:799 +#: utils/adt/jsonb_util.c:797 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "el número de elementos del array jsonb excede el máximo permitido (%zu)" -#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 -#, fuzzy, c-format -#| msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" +#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 +#, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" -msgstr "el número de elementos del array jsonb excede el máximo permitido (%zu)" +msgstr "el tamaño total de los elementos del array jsonb excede el máximo de %d bytes" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 -#, fuzzy, c-format -#| msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" +#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 +#: utils/adt/jsonb_util.c:1807 +#, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" -msgstr "el número de elementos del array jsonb excede el máximo permitido (%zu)" - -#: utils/adt/jsonb_util.c:1958 -#, fuzzy, c-format -#| msgid "unexpected object end" -msgid "duplicate JSON object key" -msgstr "fin de objeto inesperado" +msgstr "el tamaño total de los elementos del objeto jsonb excede el máximo de %d bytes" -#: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 +#: utils/adt/jsonbsubs.c:67 utils/adt/jsonbsubs.c:148 #, c-format msgid "jsonb subscript does not support slices" msgstr "el subíndice jsonb no soporta segmentos" -#: utils/adt/jsonbsubs.c:103 utils/adt/jsonbsubs.c:117 +#: utils/adt/jsonbsubs.c:100 utils/adt/jsonbsubs.c:114 #, c-format msgid "subscript type %s is not supported" msgstr "el tipo de subíndice %s no está soportado" -#: utils/adt/jsonbsubs.c:104 +#: utils/adt/jsonbsubs.c:101 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." msgstr "subíndice jsonb debe ser coercible solo para un tipo, integer o text." -#: utils/adt/jsonbsubs.c:118 +#: utils/adt/jsonbsubs.c:115 #, c-format msgid "jsonb subscript must be coercible to either integer or text." msgstr "subíndice jsonb debe ser coercible ya sea para integer o para text." -#: utils/adt/jsonbsubs.c:139 +#: utils/adt/jsonbsubs.c:136 #, c-format msgid "jsonb subscript must have text type" msgstr "subíndice jsonb debe tener tipo text" -#: utils/adt/jsonbsubs.c:207 +#: utils/adt/jsonbsubs.c:204 #, c-format msgid "jsonb subscript in assignment must not be null" msgstr "subíndice jsonb en asignación no puede ser nulo" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:583 utils/adt/jsonfuncs.c:830 +#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:3015 +#: utils/adt/jsonfuncs.c:3948 utils/adt/jsonfuncs.c:4295 #, c-format msgid "cannot call %s on a scalar" msgstr "no se puede invocar %s en un escalar" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:588 utils/adt/jsonfuncs.c:815 +#: utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3935 #, c-format msgid "cannot call %s on an array" msgstr "no se puede invocar %s en un array" -#: utils/adt/jsonfuncs.c:636 jsonpath_scan.l:596 +#: utils/adt/jsonfuncs.c:647 jsonpath_scan.l:607 #, c-format msgid "unsupported Unicode escape sequence" msgstr "secuencia de escape Unicode no soportado" -#: utils/adt/jsonfuncs.c:713 +#: utils/adt/jsonfuncs.c:724 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "Datos JSON, línea %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 +#: utils/adt/jsonfuncs.c:1883 utils/adt/jsonfuncs.c:1920 #, c-format msgid "cannot get array length of a scalar" msgstr "no se puede obtener el largo de array de un escalar" -#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 +#: utils/adt/jsonfuncs.c:1887 utils/adt/jsonfuncs.c:1906 #, c-format msgid "cannot get array length of a non-array" msgstr "no se puede obtener el largo de array de un no-array" -#: utils/adt/jsonfuncs.c:1978 +#: utils/adt/jsonfuncs.c:1986 #, c-format msgid "cannot call %s on a non-object" msgstr "no se puede invocar %s en un no-objeto" -#: utils/adt/jsonfuncs.c:2166 +#: utils/adt/jsonfuncs.c:2174 #, c-format msgid "cannot deconstruct an array as an object" msgstr "no se puede desconstruir un array como un objeto" -#: utils/adt/jsonfuncs.c:2180 +#: utils/adt/jsonfuncs.c:2188 #, c-format msgid "cannot deconstruct a scalar" msgstr "no se puede desconstruir un escalar" -#: utils/adt/jsonfuncs.c:2225 +#: utils/adt/jsonfuncs.c:2233 #, c-format msgid "cannot extract elements from a scalar" msgstr "no se pueden extraer elementos de un escalar" -#: utils/adt/jsonfuncs.c:2229 +#: utils/adt/jsonfuncs.c:2237 #, c-format msgid "cannot extract elements from an object" msgstr "no se pudo extraer elementos de un objeto" -#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 +#: utils/adt/jsonfuncs.c:2424 utils/adt/jsonfuncs.c:4173 #, c-format msgid "cannot call %s on a non-array" msgstr "no se puede invocar %s en un no-array" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2515 utils/adt/jsonfuncs.c:2520 +#: utils/adt/jsonfuncs.c:2538 utils/adt/jsonfuncs.c:2544 #, c-format msgid "expected JSON array" msgstr "se esperaba un array JSON" -#: utils/adt/jsonfuncs.c:2489 +#: utils/adt/jsonfuncs.c:2516 #, c-format msgid "See the value of key \"%s\"." msgstr "Vea el valor de la llave «%s»." -#: utils/adt/jsonfuncs.c:2511 +#: utils/adt/jsonfuncs.c:2539 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "Vea el elemento %s de la llave «%s»." -#: utils/adt/jsonfuncs.c:2517 +#: utils/adt/jsonfuncs.c:2545 #, c-format msgid "See the array element %s." msgstr "Veo el elemento de array %s." -#: utils/adt/jsonfuncs.c:2552 +#: utils/adt/jsonfuncs.c:2597 #, c-format msgid "malformed JSON array" msgstr "array JSON mal formado" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3389 +#: utils/adt/jsonfuncs.c:3647 #, c-format msgid "first argument of %s must be a row type" msgstr "el primer argumento de %s debe ser un tipo de registro" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3413 +#: utils/adt/jsonfuncs.c:3671 #, c-format msgid "could not determine row type for result of %s" msgstr "no se pudo determinar el tipo de dato para el resultado de %s" -#: utils/adt/jsonfuncs.c:3415 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "Provea un argumento de registro no-nulo, o invoque la función en la cláusula FROM usando una lista de definición de columnas." -#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4059 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "se requiere un nodo «materialize», pero no está permitido en este contexto" -#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 +#: utils/adt/jsonfuncs.c:4190 utils/adt/jsonfuncs.c:4274 #, c-format msgid "argument of %s must be an array of objects" msgstr "el argumento de %s debe ser un array de objetos" -#: utils/adt/jsonfuncs.c:3946 +#: utils/adt/jsonfuncs.c:4223 #, c-format msgid "cannot call %s on an object" msgstr "no se puede invocar %s en un objeto" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4656 utils/adt/jsonfuncs.c:4715 +#: utils/adt/jsonfuncs.c:4795 #, c-format msgid "cannot delete from scalar" msgstr "no se puede eliminar de un escalar" -#: utils/adt/jsonfuncs.c:4524 +#: utils/adt/jsonfuncs.c:4800 #, c-format msgid "cannot delete from object using integer index" msgstr "no se puede eliminar de un objeto usando un índice numérico" -#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 +#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:5027 #, c-format msgid "cannot set path in scalar" msgstr "no se puede definir una ruta en un escalar" -#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 +#: utils/adt/jsonfuncs.c:4909 utils/adt/jsonfuncs.c:4951 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "null_value_treatment debe ser «delete_key», «return_target», «use_json_null», o «raise_exception»" -#: utils/adt/jsonfuncs.c:4646 +#: utils/adt/jsonfuncs.c:4922 #, c-format msgid "JSON value must not be null" msgstr "valor JSON no debe ser null" -#: utils/adt/jsonfuncs.c:4647 +#: utils/adt/jsonfuncs.c:4923 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "Una excepción fue lanzada porque null_value_treatment es «raise_exception»." -#: utils/adt/jsonfuncs.c:4648 +#: utils/adt/jsonfuncs.c:4924 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "Para impedir esto, puede cambiar el argumento null_value_treatment o asegurarse que no se pase un nulo SQL." -#: utils/adt/jsonfuncs.c:4703 +#: utils/adt/jsonfuncs.c:4979 #, c-format msgid "cannot delete path in scalar" msgstr "no se puede eliminar una ruta en un escalar" -#: utils/adt/jsonfuncs.c:4917 +#: utils/adt/jsonfuncs.c:5193 #, c-format msgid "path element at position %d is null" msgstr "el elemento en la posición %d de la ruta es null" -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:5212 utils/adt/jsonfuncs.c:5243 +#: utils/adt/jsonfuncs.c:5316 #, c-format msgid "cannot replace existing key" msgstr "no se puede reemplazar una llave existente" -#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 +#: utils/adt/jsonfuncs.c:5213 utils/adt/jsonfuncs.c:5244 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "La ruta asume que la llave es un objeto compuesto, pero es un valor escalar." -#: utils/adt/jsonfuncs.c:5041 +#: utils/adt/jsonfuncs.c:5317 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "Intente usar la función jsonb_set para reemplazar el valor de la llave." -#: utils/adt/jsonfuncs.c:5145 +#: utils/adt/jsonfuncs.c:5421 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "el elemento de ruta en la posición %d no es un entero: «%s»" -#: utils/adt/jsonfuncs.c:5162 +#: utils/adt/jsonfuncs.c:5438 #, c-format msgid "path element at position %d is out of range: %d" msgstr "el elemento de ruta en la posición %d está fuera de rango: %d" -#: utils/adt/jsonfuncs.c:5314 +#: utils/adt/jsonfuncs.c:5590 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "indicador de tipo errónea, sólo se permiten arrays y tipos escalares" -#: utils/adt/jsonfuncs.c:5321 +#: utils/adt/jsonfuncs.c:5597 #, c-format msgid "flag array element is not a string" msgstr "elemento del array de opciones no es un string" -#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 +#: utils/adt/jsonfuncs.c:5598 utils/adt/jsonfuncs.c:5620 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "Los valores posibles son: «string», «numeric», «boolean», «key» y «all»." -#: utils/adt/jsonfuncs.c:5342 +#: utils/adt/jsonfuncs.c:5618 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "indicador erróneo en array de indicadores: «%s»" -#: utils/adt/jsonpath.c:382 +#: utils/adt/jsonpath.c:389 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ no es permitido en expresiones raíz" -#: utils/adt/jsonpath.c:388 +#: utils/adt/jsonpath.c:395 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST sólo está permitido en subíndices de array" -#: utils/adt/jsonpath_exec.c:361 +#: utils/adt/jsonpath_exec.c:491 #, c-format msgid "single boolean result is expected" msgstr "se esperaba un único resultado booleano" -#: utils/adt/jsonpath_exec.c:557 +#: utils/adt/jsonpath_exec.c:851 #, c-format -msgid "\"vars\" argument is not an object" -msgstr "el argumento «vars» no es un objeto" +msgid "jsonpath wildcard array accessor can only be applied to an array" +msgstr "el método de acceso comodín de array jsonpath sólo puede aplicarse a un array" -#: utils/adt/jsonpath_exec.c:558 +#: utils/adt/jsonpath_exec.c:874 #, c-format -msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "Los parámetros jsonpath deben codificarse como pares llave-valor del objeto «vars»." +msgid "jsonpath wildcard member accessor can only be applied to an object" +msgstr "el método de acesso comodín de objeto jsonpath sólo puede aplicarse a un objeto" + +#: utils/adt/jsonpath_exec.c:923 +#, c-format +msgid "jsonpath array subscript is out of bounds" +msgstr "subíndice de array jsonpath fuera de los bordes" -#: utils/adt/jsonpath_exec.c:675 +#: utils/adt/jsonpath_exec.c:980 +#, c-format +msgid "jsonpath array accessor can only be applied to an array" +msgstr "el método de acceso de array jsonpath sólo puede aplicarse a un array" + +#: utils/adt/jsonpath_exec.c:1044 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "el objeto JSON no contiene la llave «%s»" -#: utils/adt/jsonpath_exec.c:687 +#: utils/adt/jsonpath_exec.c:1056 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "el método de acceso a un miembro jsonpath sólo puede aplicarse a un objeto" -#: utils/adt/jsonpath_exec.c:716 +#: utils/adt/jsonpath_exec.c:1114 #, c-format -msgid "jsonpath wildcard array accessor can only be applied to an array" -msgstr "el método de acceso comodín de array jsonpath sólo puede aplicarse a un array" +msgid "jsonpath item method .%s() can only be applied to an array" +msgstr "el método de ítem jsonpath .%s() sólo puede aplicase a un array" -#: utils/adt/jsonpath_exec.c:764 +#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 #, c-format -msgid "jsonpath array subscript is out of bounds" -msgstr "subíndice de array jsonpath fuera de los bordes" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type double precision" +msgstr "el argumento «%s» del método de item jsonpath .%s() no es válido para el tipo de precisión doble" -#: utils/adt/jsonpath_exec.c:821 +#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 +#: utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 #, c-format -msgid "jsonpath array accessor can only be applied to an array" -msgstr "el método de acceso de array jsonpath sólo puede aplicarse a un array" +msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" +msgstr "NaN o infinito no son permitidos para el método de ítem jsonpath .%s()" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 +#: utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 #, c-format -msgid "jsonpath wildcard member accessor can only be applied to an object" -msgstr "el método de acesso comodín de objeto jsonpath sólo puede aplicarse a un objeto" +msgid "jsonpath item method .%s() can only be applied to a string or numeric value" +msgstr "el método de ítem jsonpath .%s() sólo puede aplicarse a un valor numérico o de cadena" -#: utils/adt/jsonpath_exec.c:1007 +#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 #, c-format -msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "el método de ítem jsonpath .%s() sólo puede aplicase a un array" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" +msgstr "el argumento «%s» del método de item jsonpath .%s() es inválido para el tipo bigint" -#: utils/adt/jsonpath_exec.c:1060 +#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 #, c-format -msgid "numeric argument of jsonpath item method .%s() is out of range for type double precision" -msgstr "el argumento numérico del método de item jsonpath .%s() está fuera de rango para el tipo de precisión doble" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" +msgstr "el argumento «%s» del método de item jsonpath .%s() no es válido para el tipo booleano" -#: utils/adt/jsonpath_exec.c:1081 +#: utils/adt/jsonpath_exec.c:1386 #, c-format -msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number" -msgstr "el argumento cadena del método de item jsonpath .%s() no es una representación válida de un número de precisión doble" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, or numeric value" +msgstr "el método de ítem jsonpath .%s() sólo puede aplicarse a un valor booleano, de cadena o numérico" -#: utils/adt/jsonpath_exec.c:1094 +#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 #, c-format -msgid "jsonpath item method .%s() can only be applied to a string or numeric value" -msgstr "el método de ítem jsonpath .%s() sólo puede aplicarse a un valor numérico o de cadena" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" +msgstr "el argumento «%s» del método de item jsonpath .%s() no es válido para el tipo numeric" + +#: utils/adt/jsonpath_exec.c:1487 +#, c-format +msgid "precision of jsonpath item method .%s() is out of range for type integer" +msgstr "la precisión del método de item jsonpath .%s() está fuera de rango para el tipo integer" + +#: utils/adt/jsonpath_exec.c:1501 +#, c-format +msgid "scale of jsonpath item method .%s() is out of range for type integer" +msgstr "la escala del método de item jsonpath .%s() está fuera de rango para el tipo integer" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 +#, c-format +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type integer" +msgstr "el argumento «%s» del método de item jsonpath .%s() no es válido para el tipo integer" + +#: utils/adt/jsonpath_exec.c:1648 +#, c-format +msgid "jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value" +msgstr "el método de ítem jsonpath .%s() sólo puede aplicarse a un valor boolean, datetime, numérico o de cadena" + +#: utils/adt/jsonpath_exec.c:2137 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "el operando izquierdo del operador jsonpath %s no es un valor numérico escalar" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:2144 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "el operando derecho del operador jsonpath %s no es un valor numérico escalar" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:2212 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "el operando del operador jsonpath unario %s no es un valor numérico" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:2311 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "el método de ítem jsonpath .%s() sólo puede aplicarse a un valor numérico" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:2357 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "el método de ítem jsonpath .%s() sólo puede aplicase a una cadena" -#: utils/adt/jsonpath_exec.c:1892 +#: utils/adt/jsonpath_exec.c:2450 +#, c-format +msgid "time precision of jsonpath item method .%s() is out of range for type integer" +msgstr "la precisión de tiempo del método de item jsonpath .%s() está fuera de rango para el tipo integer" + +#: utils/adt/jsonpath_exec.c:2484 utils/adt/jsonpath_exec.c:2490 +#: utils/adt/jsonpath_exec.c:2517 utils/adt/jsonpath_exec.c:2545 +#: utils/adt/jsonpath_exec.c:2598 utils/adt/jsonpath_exec.c:2649 +#: utils/adt/jsonpath_exec.c:2720 #, c-format -msgid "datetime format is not recognized: \"%s\"" -msgstr "el formato de fecha/hora no se reconoce: «%s»" +msgid "%s format is not recognized: \"%s\"" +msgstr "formato de %s no se reconoce: «%s»" -#: utils/adt/jsonpath_exec.c:1894 +#: utils/adt/jsonpath_exec.c:2486 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Use un argumento de patrón fecha/hora para especificar el formato de entrada del dato." -#: utils/adt/jsonpath_exec.c:1962 +#: utils/adt/jsonpath_exec.c:2679 utils/adt/jsonpath_exec.c:2760 +#, c-format +msgid "time precision of jsonpath item method .%s() is invalid" +msgstr "la precisión de tiempo del método de item jsonpath .%s() no es válida" + +#: utils/adt/jsonpath_exec.c:2840 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "el método de ítem jsonpath .%s() sólo puede ser aplicado a un objeto" -#: utils/adt/jsonpath_exec.c:2144 +#: utils/adt/jsonpath_exec.c:3124 +#, c-format +msgid "could not convert value of type %s to jsonpath" +msgstr "no se pudo convertir el valor de tipo %s a jsonpath" + +#: utils/adt/jsonpath_exec.c:3158 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "no se pudo encontrar la variable jsonpath «%s»" -#: utils/adt/jsonpath_exec.c:2408 +#: utils/adt/jsonpath_exec.c:3211 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "el argumento «vars» no es un objeto" + +#: utils/adt/jsonpath_exec.c:3212 +#, c-format +msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "Los parámetros jsonpath deben codificarse como pares llave-valor del objeto «vars»." + +#: utils/adt/jsonpath_exec.c:3475 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "el subíndice de array jsonpath no es un único valor numérico" -#: utils/adt/jsonpath_exec.c:2420 +#: utils/adt/jsonpath_exec.c:3487 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "subíndice de array jsonpath fuera del rango entero" -#: utils/adt/jsonpath_exec.c:2597 +#: utils/adt/jsonpath_exec.c:3671 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "no se puede convertir el valor de %s a %s sin uso de huso horario" -#: utils/adt/jsonpath_exec.c:2599 +#: utils/adt/jsonpath_exec.c:3673 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Utilice una función *_tz() para el soporte de huso horario." +#: utils/adt/jsonpath_exec.c:3981 +#, c-format +#| msgid "JSON path expression for column \"%s\" should return single item without wrapper" +msgid "JSON path expression for column \"%s\" must return single item when no wrapper is requested" +msgstr "la expresión de ruta JSON para la columna «%s» debe retornar un único elemento cuando no se pide un “wrapper”" + +#: utils/adt/jsonpath_exec.c:3983 utils/adt/jsonpath_exec.c:3988 +#, c-format +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." +msgstr "Use la cláusula WITH WRAPPER para envolver elementos SQL/JSON en un array." + +#: utils/adt/jsonpath_exec.c:3987 +#, c-format +#| msgid "JSON path expression in JSON_QUERY should return single item without wrapper" +msgid "JSON path expression in JSON_QUERY must return single item when no wrapper is requested" +msgstr "la expresión de ruta en JSON_QUERY debe retornar un único elemento cuando no se pide un “wrapper”" + +#: utils/adt/jsonpath_exec.c:4045 utils/adt/jsonpath_exec.c:4069 +#, c-format +#| msgid "JSON path expression for column \"%s\" should return single scalar item" +msgid "JSON path expression for column \"%s\" must return single scalar item" +msgstr "la expresión de ruta JSON para la columna «%s» debe retornar un único elemento escalar" + +#: utils/adt/jsonpath_exec.c:4050 utils/adt/jsonpath_exec.c:4074 +#, c-format +#| msgid "JSON path expression in JSON_VALUE should return single scalar item" +msgid "JSON path expression in JSON_VALUE must return single scalar item" +msgstr "la expresión de ruta JSON en JSON_VALUE debe retornar un único elemento escalar" + #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "el argumento levenshtein excede el largo máximo de %d caracteres" -#: utils/adt/like.c:161 +#: utils/adt/like.c:159 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "los ordenamientos no determinísticos no están soportados para LIKE" -#: utils/adt/like.c:190 utils/adt/like_support.c:1024 +#: utils/adt/like.c:188 utils/adt/like_support.c:1023 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "no se pudo determinar qué ordenamiento (collation) usar para ILIKE" -#: utils/adt/like.c:202 +#: utils/adt/like.c:200 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "los ordenamientos no determinísticos no están soportados para ILIKE" @@ -24922,22 +25678,22 @@ msgstr "los ordenamientos no determinísticos no están soportados para ILIKE" msgid "LIKE pattern must not end with escape character" msgstr "el patrón de LIKE debe no terminar con un carácter de escape" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "cadena de escape no válida" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "La cadena de escape debe ser vacía o un carácter." -#: utils/adt/like_support.c:1014 +#: utils/adt/like_support.c:1013 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "no está soportada la comparación insensible a mayúsculas en bytea" -#: utils/adt/like_support.c:1115 +#: utils/adt/like_support.c:1114 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "no está soportada la comparación con expresiones regulares en bytea" @@ -24947,17 +25703,17 @@ msgstr "no está soportada la comparación con expresiones regulares en bytea" msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "valor de octeto no válido en valor «macaddr»: «%s»" -#: utils/adt/mac8.c:554 +#: utils/adt/mac8.c:555 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "datos macaddr8 fuera de rango para convertir a macaddr" -#: utils/adt/mac8.c:555 +#: utils/adt/mac8.c:556 #, c-format msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "Sólo las direcciones que tienen FF y FF como valores en el cuarto y quinto bytes desde la izquierda, por ejemplo xx:xx:xx:ff:fe:xx:xx:xx se pueden convertir de macaddr8 a macaddr." -#: utils/adt/mcxtfuncs.c:182 +#: utils/adt/mcxtfuncs.c:173 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d no es un proceso servidor de PostgreSQL" @@ -24996,70 +25752,70 @@ msgstr "puede ser una etiqueta sola" msgid "requires AS" msgstr "requiere AS" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:897 utils/adt/misc.c:911 utils/adt/misc.c:950 +#: utils/adt/misc.c:956 utils/adt/misc.c:962 utils/adt/misc.c:985 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "la cadena no es un identificador válido: «%s»" -#: utils/adt/misc.c:855 +#: utils/adt/misc.c:899 #, c-format msgid "String has unclosed double quotes." msgstr "La cadena tiene comillas dobles sin cerrar." -#: utils/adt/misc.c:869 +#: utils/adt/misc.c:913 #, c-format msgid "Quoted identifier must not be empty." msgstr "El identificador en comillas no debe ser vacío." -#: utils/adt/misc.c:908 +#: utils/adt/misc.c:952 #, c-format msgid "No valid identifier before \".\"." msgstr "No hay un identificador válido antes de «.»." -#: utils/adt/misc.c:914 +#: utils/adt/misc.c:958 #, c-format msgid "No valid identifier after \".\"." msgstr "No hay un identificador válido después de «.»." -#: utils/adt/misc.c:974 +#: utils/adt/misc.c:1018 #, c-format msgid "log format \"%s\" is not supported" msgstr "el formato de log «%s» no está soportado" -#: utils/adt/misc.c:975 +#: utils/adt/misc.c:1019 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." -msgstr "" +msgstr "Los formatos de log soportados son «stderr», «csvlog» y «jsonlog»." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:150 utils/adt/multirangetypes.c:163 +#: utils/adt/multirangetypes.c:192 utils/adt/multirangetypes.c:266 +#: utils/adt/multirangetypes.c:290 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "literal de multirango mal formado: «%s»" -#: utils/adt/multirangetypes.c:153 +#: utils/adt/multirangetypes.c:152 #, c-format msgid "Missing left brace." msgstr "Falta llave izquierda." -#: utils/adt/multirangetypes.c:195 +#: utils/adt/multirangetypes.c:194 #, c-format msgid "Expected range start." msgstr "Se esperaba inicio de rango." -#: utils/adt/multirangetypes.c:269 +#: utils/adt/multirangetypes.c:268 #, c-format msgid "Expected comma or end of multirange." msgstr "Se esperaba una coma o el final del multirango." -#: utils/adt/multirangetypes.c:982 +#: utils/adt/multirangetypes.c:981 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "no se puede construir multirangos a partir de arrays multidimensionales" -#: utils/adt/multirangetypes.c:1008 +#: utils/adt/multirangetypes.c:1007 #, c-format msgid "multirange values cannot contain null members" msgstr "valores de multirango no pueden contener miembros nulos" @@ -25138,113 +25894,138 @@ msgstr "el resultado está fuera de rango" msgid "cannot subtract inet values of different sizes" msgstr "no se puede sustraer valores inet de distintos tamaños" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:793 utils/adt/numeric.c:3659 utils/adt/numeric.c:7216 +#: utils/adt/numeric.c:7419 utils/adt/numeric.c:7891 utils/adt/numeric.c:10586 +#: utils/adt/numeric.c:11061 utils/adt/numeric.c:11155 +#: utils/adt/numeric.c:11290 #, c-format msgid "value overflows numeric format" msgstr "el valor excede el formato numeric" -#: utils/adt/numeric.c:1098 +#: utils/adt/numeric.c:1106 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "el signo no es válido en el valor «numeric» externo" -#: utils/adt/numeric.c:1104 +#: utils/adt/numeric.c:1112 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "la escala no es válida en el valor «numeric» externo" -#: utils/adt/numeric.c:1113 +#: utils/adt/numeric.c:1121 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "hay un dígito no válido en el valor «numeric» externo" -#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 +#: utils/adt/numeric.c:1336 utils/adt/numeric.c:1350 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "la precisión %d de NUMERIC debe estar entre 1 y %d" -#: utils/adt/numeric.c:1333 -#, fuzzy, c-format -#| msgid "NUMERIC precision %d must be between 1 and %d" +#: utils/adt/numeric.c:1341 +#, c-format msgid "NUMERIC scale %d must be between %d and %d" -msgstr "la precisión %d de NUMERIC debe estar entre 1 y %d" +msgstr "escala NUMERIC %d debe estar entre %d y %d" -#: utils/adt/numeric.c:1351 +#: utils/adt/numeric.c:1359 #, c-format msgid "invalid NUMERIC type modifier" msgstr "modificador de tipo NUMERIC no es válido" -#: utils/adt/numeric.c:1709 +#: utils/adt/numeric.c:1725 #, c-format msgid "start value cannot be NaN" msgstr "el valor de inicio no puede ser NaN" -#: utils/adt/numeric.c:1713 +#: utils/adt/numeric.c:1729 #, c-format msgid "start value cannot be infinity" msgstr "el valor de inicio no puede ser infinito" -#: utils/adt/numeric.c:1720 +#: utils/adt/numeric.c:1736 #, c-format msgid "stop value cannot be NaN" msgstr "el valor de término no puede ser NaN" -#: utils/adt/numeric.c:1724 +#: utils/adt/numeric.c:1740 #, c-format msgid "stop value cannot be infinity" msgstr "el valor de término no puede ser infinito" -#: utils/adt/numeric.c:1737 +#: utils/adt/numeric.c:1753 #, c-format msgid "step size cannot be NaN" msgstr "el tamaño de paso no puede ser NaN" -#: utils/adt/numeric.c:1741 +#: utils/adt/numeric.c:1757 #, c-format msgid "step size cannot be infinity" msgstr "el tamaño de paso no puede ser infinito" -#: utils/adt/numeric.c:3633 +#: utils/adt/numeric.c:3649 #, c-format msgid "factorial of a negative number is undefined" msgstr "el factorial de un número negativo es indefinido" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4256 +#, c-format +msgid "lower bound cannot be NaN" +msgstr "el límite inferior no puede ser NaN" + +#: utils/adt/numeric.c:4260 +#, c-format +msgid "lower bound cannot be infinity" +msgstr "el límite inferior no puede ser infinito" + +#: utils/adt/numeric.c:4267 +#, c-format +msgid "upper bound cannot be NaN" +msgstr "el límite superior no puede ser NaN" + +#: utils/adt/numeric.c:4271 +#, c-format +msgid "upper bound cannot be infinity" +msgstr "el límite superior no puede ser infinito" + +#: utils/adt/numeric.c:4432 utils/adt/numeric.c:4520 utils/adt/numeric.c:4580 +#: utils/adt/numeric.c:4776 #, c-format msgid "cannot convert NaN to %s" msgstr "no se puede convertir NaN a %s" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4436 utils/adt/numeric.c:4524 utils/adt/numeric.c:4584 +#: utils/adt/numeric.c:4780 #, c-format msgid "cannot convert infinity to %s" msgstr "no se puede convertir infinito a %s" -#: utils/adt/numeric.c:4696 +#: utils/adt/numeric.c:4789 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn fuera de rango" -#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:7981 utils/adt/numeric.c:8032 #, c-format msgid "numeric field overflow" msgstr "desbordamiento de campo numeric" -#: utils/adt/numeric.c:7897 +#: utils/adt/numeric.c:7982 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Un campo con precisión %d, escala %d debe redondear a un valor absoluto menor que %s%d." -#: utils/adt/numeric.c:7948 +#: utils/adt/numeric.c:8033 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "Un campo con precisión %d, escala %d no puede contener un valor infinito." -#: utils/adt/oid.c:216 +#: utils/adt/numeric.c:11359 utils/adt/pseudorandomfuncs.c:135 +#: utils/adt/pseudorandomfuncs.c:159 +#, c-format +msgid "lower bound must be less than or equal to upper bound" +msgstr "el límite inferior debe ser menor o igual al límite superior" + +#: utils/adt/oid.c:217 #, c-format msgid "invalid oidvector data" msgstr "datos de oidvector no válidos" @@ -25255,10 +26036,9 @@ msgid "requested character too large" msgstr "el carácter solicitado es demasiado grande" #: utils/adt/oracle_compat.c:1020 -#, fuzzy, c-format -#| msgid "host name must be specified" +#, c-format msgid "character number must be positive" -msgstr "el nombre de servidor debe ser especificado" +msgstr "el número de carácter debe ser positivo" #: utils/adt/oracle_compat.c:1024 #, c-format @@ -25266,322 +26046,326 @@ msgid "null character not permitted" msgstr "el carácter nulo no está permitido" #: utils/adt/oracle_compat.c:1042 utils/adt/oracle_compat.c:1095 -#, fuzzy, c-format -#| msgid "requested character too large" +#, c-format msgid "requested character too large for encoding: %u" -msgstr "el carácter solicitado es demasiado grande" +msgstr "el carácter pedido es demasiado largo para el encoding: %u" #: utils/adt/oracle_compat.c:1083 -#, fuzzy, c-format -#| msgid "requested character too large" +#, c-format msgid "requested character not valid for encoding: %u" -msgstr "el carácter solicitado es demasiado grande" +msgstr "el carácter pedido no es válido para el encoding: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:446 utils/adt/orderedsetaggs.c:551 +#: utils/adt/orderedsetaggs.c:691 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "el valor de percentil %g no está entre 0 y 1" -#: utils/adt/pg_locale.c:1406 -#, fuzzy, c-format -#| msgid "could not open collator for locale \"%s\": %s" +#: utils/adt/pg_locale.c:326 utils/adt/pg_locale.c:358 +#, c-format +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "el nombre de configuración regional «%s» contiene caracteres no ASCII" + +#: utils/adt/pg_locale.c:1507 +#, c-format msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" -msgstr "no se pudo abrir el «collator» para la configuración regional «%s»: %s" +msgstr "no se pudo abrir el «collator» para la configuración regional «%s» con reglas «%s»: %s" -#: utils/adt/pg_locale.c:1417 utils/adt/pg_locale.c:2847 -#: utils/adt/pg_locale.c:2919 +#: utils/adt/pg_locale.c:1518 utils/adt/pg_locale.c:2992 +#: utils/adt/pg_locale.c:3065 #, c-format msgid "ICU is not supported in this build" msgstr "ICU no está soportado en este servidor" -#: utils/adt/pg_locale.c:1446 +#: utils/adt/pg_locale.c:1546 #, c-format msgid "could not create locale \"%s\": %m" msgstr "no se pudo crear la configuración regional «%s»: %m" -#: utils/adt/pg_locale.c:1449 +#: utils/adt/pg_locale.c:1549 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "El sistema operativo no pudo encontrar datos de configuración regional para la configuración «%s»." -#: utils/adt/pg_locale.c:1564 +#: utils/adt/pg_locale.c:1670 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "los ordenamientos (collation) con valores collate y ctype diferentes no están soportados en esta plataforma" -#: utils/adt/pg_locale.c:1573 +#: utils/adt/pg_locale.c:1717 #, c-format -msgid "collation provider LIBC is not supported on this platform" -msgstr "el proveedor de ordenamientos LIBC no está soportado en esta plataforma" - -#: utils/adt/pg_locale.c:1614 -#, fuzzy, c-format -#| msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgid "collation \"%s\" has no actual version, but a version was recorded" -msgstr "la extensión «%s» no tiene ruta de actualización desde la versión «%s» hasta la versión «%s»" +msgstr "la “collation” «%s» no tiene versión actual, pero una versión fue registrada" -#: utils/adt/pg_locale.c:1620 +#: utils/adt/pg_locale.c:1723 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "el ordenamiento (collation) «%s» tiene una discordancia de versión" -#: utils/adt/pg_locale.c:1622 +#: utils/adt/pg_locale.c:1725 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "El ordenamiento en la base de datos fue creado usando la versión %s, pero el sistema operativo provee la versión %s." -#: utils/adt/pg_locale.c:1625 +#: utils/adt/pg_locale.c:1728 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "Reconstruya todos los objetos afectados por este ordenamiento y ejecute ALTER COLLATION %s REFRESH VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." -#: utils/adt/pg_locale.c:1691 +#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:2556 +#: utils/adt/pg_locale.c:2581 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "nombre de configuración regional «%s» no válido para el proveedor builtin" + +#: utils/adt/pg_locale.c:1814 #, c-format msgid "could not load locale \"%s\"" msgstr "no se pudo cargar la configuración regional «%s»" -#: utils/adt/pg_locale.c:1716 +#: utils/adt/pg_locale.c:1839 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "no se pudo obtener la versión de «collation» para la configuración regional «%s»: código de error %lu" -#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:1785 +#: utils/adt/pg_locale.c:1895 utils/adt/pg_locale.c:1908 #, c-format msgid "could not convert string to UTF-16: error code %lu" msgstr "no se pudo convertir la cadena a UTF-16: código de error %lu" -#: utils/adt/pg_locale.c:1799 +#: utils/adt/pg_locale.c:1920 #, c-format msgid "could not compare Unicode strings: %m" msgstr "no se pudieron comparar las cadenas Unicode: %m" -#: utils/adt/pg_locale.c:1980 +#: utils/adt/pg_locale.c:2094 #, c-format msgid "collation failed: %s" msgstr "el ordenamiento falló: %s" -#: utils/adt/pg_locale.c:2201 utils/adt/pg_locale.c:2233 +#: utils/adt/pg_locale.c:2313 utils/adt/pg_locale.c:2345 #, c-format msgid "sort key generation failed: %s" msgstr "la generación de la llave de ordenamiento falló: %s" -#: utils/adt/pg_locale.c:2474 utils/adt/pg_locale.c:2798 +#: utils/adt/pg_locale.c:2635 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "no se pudo el lenguaje de la configuración regional «%s»: %s" -#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#: utils/adt/pg_locale.c:2656 utils/adt/pg_locale.c:2672 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "no se pudo abrir el «collator» para la configuración regional «%s»: %s" -#: utils/adt/pg_locale.c:2536 +#: utils/adt/pg_locale.c:2697 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "la codificación «%s» no estæ soportada por ICU" -#: utils/adt/pg_locale.c:2543 +#: utils/adt/pg_locale.c:2704 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "no se pudo abrir el conversor ICU para la codificación «%s»: %s" -#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2722 utils/adt/pg_locale.c:2741 +#: utils/adt/pg_locale.c:2797 utils/adt/pg_locale.c:2808 #, c-format msgid "%s failed: %s" msgstr "%s falló: %s" -#: utils/adt/pg_locale.c:2838 +#: utils/adt/pg_locale.c:2983 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "no se pudo convertir el nombre de configuración regional «%s» a etiqueta de lenguaje: %s" -#: utils/adt/pg_locale.c:2879 -#, fuzzy, c-format -#| msgid "could not get language from locale \"%s\": %s" +#: utils/adt/pg_locale.c:3024 +#, c-format msgid "could not get language from ICU locale \"%s\": %s" -msgstr "no se pudo el lenguaje de la configuración regional «%s»: %s" +msgstr "no se pudo obtener el lenguaje de la configuración regional ICU «%s»: %s" -#: utils/adt/pg_locale.c:2881 utils/adt/pg_locale.c:2910 +#: utils/adt/pg_locale.c:3026 utils/adt/pg_locale.c:3055 #, c-format -msgid "To disable ICU locale validation, set parameter icu_validation_level to DISABLED." -msgstr "" +msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." +msgstr "Par desactivar la validación ICU de configuración regional, defina «%s» a «%s»." -#: utils/adt/pg_locale.c:2908 -#, fuzzy, c-format -#| msgid "locale \"%s\" has unknown language \"%s\"" +#: utils/adt/pg_locale.c:3053 +#, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" -msgstr "la configuración regional «%s» tiene lenguaje «%s» desconocido" +msgstr "el locale ICU «%s» tiene lenguaje desconocido «%s»" -#: utils/adt/pg_locale.c:3088 +#: utils/adt/pg_locale.c:3204 #, c-format msgid "invalid multibyte character for locale" msgstr "el carácter multibyte no es válido para esta configuración regional" -#: utils/adt/pg_locale.c:3089 +#: utils/adt/pg_locale.c:3205 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "La configuración regional LC_CTYPE del servidor es probablemente incompatible con la codificación de la base de datos." -#: utils/adt/pg_lsn.c:263 +#: utils/adt/pg_lsn.c:262 #, c-format msgid "cannot add NaN to pg_lsn" msgstr "no se puede sumar NaN a bigint" -#: utils/adt/pg_lsn.c:297 +#: utils/adt/pg_lsn.c:296 #, c-format msgid "cannot subtract NaN from pg_lsn" msgstr "no se puede restar NaN de pg_lsn" -#: utils/adt/pg_upgrade_support.c:29 +#: utils/adt/pg_upgrade_support.c:39 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "la función sólo puede invocarse cuando el servidor está en modo de actualización binaria" -#: utils/adt/pgstatfuncs.c:253 +#: utils/adt/pgstatfuncs.c:252 #, c-format msgid "invalid command name: \"%s\"" msgstr "nombre de orden no válido: «%s»" -#: utils/adt/pgstatfuncs.c:1773 +#: utils/adt/pgstatfuncs.c:1739 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "destino de reset no reconocido: «%s»" -#: utils/adt/pgstatfuncs.c:1774 +#: utils/adt/pgstatfuncs.c:1740 #, c-format -msgid "Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or \"wal\"." -msgstr "" +msgid "Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", or \"wal\"." +msgstr "El destino debe ser «archiver», «bgwriter», «checkpointer», «io», «recovery_prefetch», «slru» o «wal»." -#: utils/adt/pgstatfuncs.c:1852 -#, fuzzy, c-format -#| msgid "invalid role OID: %u" +#: utils/adt/pgstatfuncs.c:1822 +#, c-format msgid "invalid subscription OID %u" -msgstr "el OID de rol no es válido: %u" +msgstr "OID de suscripción %u no válido" + +#: utils/adt/pseudorandomfuncs.c:69 +#, c-format +msgid "setseed parameter %g is out of allowed range [-1,1]" +msgstr "parámetro setseed %g fuera del rango permitido [-1,1]" -#: utils/adt/pseudotypes.c:58 utils/adt/pseudotypes.c:92 +#: utils/adt/pseudotypes.c:55 utils/adt/pseudotypes.c:89 #, c-format msgid "cannot display a value of type %s" msgstr "no se puede desplegar un valor de tipo %s" -#: utils/adt/pseudotypes.c:310 +#: utils/adt/pseudotypes.c:307 #, c-format msgid "cannot accept a value of a shell type" msgstr "no se puede aceptar un valor de un tipo inconcluso" -#: utils/adt/pseudotypes.c:320 +#: utils/adt/pseudotypes.c:317 #, c-format msgid "cannot display a value of a shell type" msgstr "no se puede desplegar un valor de un tipo inconcluso" -#: utils/adt/rangetypes.c:415 +#: utils/adt/rangetypes.c:422 #, c-format msgid "range constructor flags argument must not be null" msgstr "el argumento de opciones del constructor de rango no debe ser null" -#: utils/adt/rangetypes.c:1014 +#: utils/adt/rangetypes.c:1021 #, c-format msgid "result of range difference would not be contiguous" msgstr "el resultado de la diferencia de rangos no sería contiguo" -#: utils/adt/rangetypes.c:1075 +#: utils/adt/rangetypes.c:1082 #, c-format msgid "result of range union would not be contiguous" msgstr "el resultado de la unión de rangos no sería contiguo" -#: utils/adt/rangetypes.c:1750 +#: utils/adt/rangetypes.c:1757 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "el límite inferior del rango debe ser menor o igual al límite superior del rango" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 +#: utils/adt/rangetypes.c:2283 #, c-format msgid "invalid range bound flags" msgstr "opciones de bordes de rango no válidas" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 +#: utils/adt/rangetypes.c:2284 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Los valores aceptables son «[]», «[)», «(]» y «()»." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 +#: utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 +#: utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "malformed range literal: \"%s\"" msgstr "literal de rango mal formado: «%s»" -#: utils/adt/rangetypes.c:2295 +#: utils/adt/rangetypes.c:2354 #, c-format msgid "Junk after \"empty\" key word." msgstr "Basura a continuación de la palabra «empty»." -#: utils/adt/rangetypes.c:2312 +#: utils/adt/rangetypes.c:2371 #, c-format msgid "Missing left parenthesis or bracket." msgstr "Falta paréntesis o corchete izquierdo." -#: utils/adt/rangetypes.c:2327 +#: utils/adt/rangetypes.c:2386 #, c-format msgid "Missing comma after lower bound." msgstr "Coma faltante después del límite inferior." -#: utils/adt/rangetypes.c:2347 +#: utils/adt/rangetypes.c:2406 #, c-format msgid "Too many commas." msgstr "Demasiadas comas." -#: utils/adt/rangetypes.c:2358 +#: utils/adt/rangetypes.c:2417 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "Basura después del paréntesis o corchete derecho." -#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 #, c-format msgid "regular expression failed: %s" msgstr "la expresión regular falló: %s" -#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 +#: utils/adt/regexp.c:445 utils/adt/regexp.c:680 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "opción de expresión regular no válida: «%.*s»" -#: utils/adt/regexp.c:683 +#: utils/adt/regexp.c:682 #, c-format msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "Si su intención era usar regexp_replace() con un parámetro de inicio, convierta el cuarto argumento a integer explícitamente." -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6610 utils/misc/guc.c:6644 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 +#: utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 +#: utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 +#: utils/adt/regexp.c:1871 utils/misc/guc.c:6820 utils/misc/guc.c:6854 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "valor no válido para el parámetro «%s»: %d" -#: utils/adt/regexp.c:937 +#: utils/adt/regexp.c:936 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" msgstr "la expresión regular SQL no puede contener más de dos separadores escape-comilla doble" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1093 utils/adt/regexp.c:1184 utils/adt/regexp.c:1271 +#: utils/adt/regexp.c:1310 utils/adt/regexp.c:1698 utils/adt/regexp.c:1753 +#: utils/adt/regexp.c:1882 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s no soporta la opción «global»" -#: utils/adt/regexp.c:1313 +#: utils/adt/regexp.c:1312 #, c-format msgid "Use the regexp_matches function instead." msgstr "En su lugar, utilice la función regexp_matches." -#: utils/adt/regexp.c:1501 +#: utils/adt/regexp.c:1500 #, c-format msgid "too many regular expression matches" msgstr "demasiadas coincidencias de la expresión regular" @@ -25596,18 +26380,18 @@ msgstr "existe más de una función llamada «%s»" msgid "more than one operator named %s" msgstr "existe más de un operador llamado %s" -#: utils/adt/regproc.c:670 gram.y:8844 +#: utils/adt/regproc.c:670 gram.y:8992 #, c-format msgid "missing argument" msgstr "falta un argumento" -#: utils/adt/regproc.c:671 gram.y:8845 +#: utils/adt/regproc.c:671 gram.y:8993 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "Use NONE para denotar el argumento faltante de un operador unario." -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10013 -#: utils/adt/ruleutils.c:10226 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10509 +#: utils/adt/ruleutils.c:10722 #, c-format msgid "too many arguments" msgstr "demasiados argumentos" @@ -25617,296 +26401,319 @@ msgstr "demasiados argumentos" msgid "Provide two argument types for operator." msgstr "Provea dos tipos de argumento para un operador." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 +#: utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 #, c-format msgid "invalid name syntax" msgstr "la sintaxis de nombre no es válida" -#: utils/adt/regproc.c:1904 +#: utils/adt/regproc.c:1924 #, c-format msgid "expected a left parenthesis" msgstr "se esperaba un paréntesis izquierdo" -#: utils/adt/regproc.c:1922 +#: utils/adt/regproc.c:1942 #, c-format msgid "expected a right parenthesis" msgstr "se esperaba un paréntesis derecho" -#: utils/adt/regproc.c:1941 +#: utils/adt/regproc.c:1961 #, c-format msgid "expected a type name" msgstr "se esperaba un nombre de tipo" -#: utils/adt/regproc.c:1973 +#: utils/adt/regproc.c:1993 #, c-format msgid "improper type name" msgstr "el nombre de tipo no es válido" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 +#: utils/adt/ri_triggers.c:2601 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "inserción o actualización en la tabla «%s» viola la llave foránea «%s»" -#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL no permite la mezcla de valores de clave nulos y no nulos." -#: utils/adt/ri_triggers.c:2045 +#: utils/adt/ri_triggers.c:2036 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "la función «%s» debe ser ejecutada en INSERT" -#: utils/adt/ri_triggers.c:2051 +#: utils/adt/ri_triggers.c:2042 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "la función «%s» debe ser ejecutada en UPDATE" -#: utils/adt/ri_triggers.c:2057 +#: utils/adt/ri_triggers.c:2048 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "la función «%s» debe ser ejecutada en DELETE" -#: utils/adt/ri_triggers.c:2080 +#: utils/adt/ri_triggers.c:2071 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "no hay una entrada en pg_constraint para el trigger «%s» en tabla «%s»" -#: utils/adt/ri_triggers.c:2082 +#: utils/adt/ri_triggers.c:2073 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "Elimine este trigger de integridad referencial y sus pares, y utilice ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2112 gram.y:4226 +#: utils/adt/ri_triggers.c:2103 gram.y:4340 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "MATCH PARTIAL no está implementada" -#: utils/adt/ri_triggers.c:2435 +#: utils/adt/ri_triggers.c:2426 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "la consulta de integridad referencial en «%s» de la restricción «%s» en «%s» entregó un resultado inesperado" -#: utils/adt/ri_triggers.c:2439 +#: utils/adt/ri_triggers.c:2430 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "Esto probablemente es causado por una regla que reescribió la consulta." -#: utils/adt/ri_triggers.c:2600 +#: utils/adt/ri_triggers.c:2591 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "eliminar la partición «%s» viola la llave foránea «%s»" -#: utils/adt/ri_triggers.c:2603 utils/adt/ri_triggers.c:2628 +#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "La llave (%s)=(%s) todavía es referida desde la tabla «%s»." -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2605 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "La llave (%s)=(%s) no está presente en la tabla «%s»." -#: utils/adt/ri_triggers.c:2617 +#: utils/adt/ri_triggers.c:2608 #, c-format msgid "Key is not present in table \"%s\"." msgstr "La llave no está presente en la tabla «%s»." -#: utils/adt/ri_triggers.c:2623 +#: utils/adt/ri_triggers.c:2614 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "update o delete en «%s» viola la llave foránea «%s» en la tabla «%s»" -#: utils/adt/ri_triggers.c:2631 +#: utils/adt/ri_triggers.c:2622 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "La llave todavía es referida desde la tabla «%s»." -#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 +#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:509 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "el ingreso de tipos compuestos anónimos no está implementado" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:158 utils/adt/rowtypes.c:190 utils/adt/rowtypes.c:216 +#: utils/adt/rowtypes.c:227 utils/adt/rowtypes.c:285 utils/adt/rowtypes.c:296 #, c-format msgid "malformed record literal: \"%s\"" msgstr "literal de record mal formado: «%s»" -#: utils/adt/rowtypes.c:160 +#: utils/adt/rowtypes.c:159 #, c-format msgid "Missing left parenthesis." msgstr "Falta paréntesis izquierdo." -#: utils/adt/rowtypes.c:192 +#: utils/adt/rowtypes.c:191 #, c-format msgid "Too few columns." msgstr "Muy pocas columnas." -#: utils/adt/rowtypes.c:287 +#: utils/adt/rowtypes.c:286 #, c-format msgid "Too many columns." msgstr "Demasiadas columnas." -#: utils/adt/rowtypes.c:298 +#: utils/adt/rowtypes.c:297 #, c-format msgid "Junk after right parenthesis." msgstr "Basura después del paréntesis derecho." -#: utils/adt/rowtypes.c:559 +#: utils/adt/rowtypes.c:558 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "número de columnas erróneo: %d, se esperaban %d" -#: utils/adt/rowtypes.c:601 +#: utils/adt/rowtypes.c:599 #, c-format msgid "binary data has type %u (%s) instead of expected %u (%s) in record column %d" msgstr "los datos binarios tienen tipo %u (%s) en lugar del esperado %u (%s) en columna de registro %d" -#: utils/adt/rowtypes.c:668 +#: utils/adt/rowtypes.c:660 #, c-format msgid "improper binary format in record column %d" msgstr "formato binario incorrecto en la columna record %d" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 +#: utils/adt/rowtypes.c:1699 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "no se pueden comparar los tipos de columnas disímiles %s y %s en la columna %d" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 +#: utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "no se pueden comparar registros con cantidad distinta de columnas" #: utils/adt/ruleutils.c:2694 -#, fuzzy, c-format -#| msgid "cannot use subquery in index expression" +#, c-format msgid "input is a query, not an expression" -msgstr "no se puede usar una subconsulta en una expresión de índice" +msgstr "la entrada es una consulta, no una expresión" #: utils/adt/ruleutils.c:2706 -#, fuzzy, c-format -#| msgid "USING expression contains a whole-row table reference." +#, c-format msgid "expression contains variables of more than one relation" -msgstr "La expresión USING contiene una referencia a la fila completa (whole-row)." +msgstr "la expresión contiene variables de más de una relación" #: utils/adt/ruleutils.c:2713 -#, fuzzy, c-format -#| msgid "argument of %s must not contain variables" +#, c-format msgid "expression contains variables" -msgstr "el argumento de %s no puede contener variables" +msgstr "la expresión contiene variables" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5246 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "la regla «%s» tiene el tipo de evento no soportado %d" -#: utils/adt/timestamp.c:112 +#: utils/adt/timestamp.c:128 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "la precisión de TIMESTAMP(%d)%s no debe ser negativa" -#: utils/adt/timestamp.c:118 +#: utils/adt/timestamp.c:134 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "la precisión de TIMESTAMP(%d)%s fue reducida al máximo permitido, %d" -#: utils/adt/timestamp.c:378 +#: utils/adt/timestamp.c:394 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "la precisión de timestamp(%d) debe estar entre %d y %d" -#: utils/adt/timestamp.c:496 +#: utils/adt/timestamp.c:512 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "Los husos horarios numéricos deben tener «-» o «+» como su primer carácter." -#: utils/adt/timestamp.c:508 +#: utils/adt/timestamp.c:524 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "huso horario numérico «%s» fuera de rango" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 +#: utils/adt/timestamp.c:643 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "timestamp fuera de rango: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:728 +#: utils/adt/timestamp.c:744 #, c-format msgid "timestamp cannot be NaN" msgstr "el timestamp no puede ser NaN" -#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 +#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "timestamp fuera de rango: «%g»" -#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 +#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 +#: utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 +#: utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 +#: utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 +#: utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 +#: utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 +#: utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 +#: utils/adt/timestamp.c:3537 utils/adt/timestamp.c:3546 +#: utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 +#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 +#: utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 +#: utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 +#: utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 +#: utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 +#: utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 +#: utils/adt/timestamp.c:5097 +#, c-format +msgid "interval out of range" +msgstr "interval fuera de rango" + +#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 #, c-format msgid "invalid INTERVAL type modifier" msgstr "modificador de tipo INTERVAL no válido" -#: utils/adt/timestamp.c:1081 +#: utils/adt/timestamp.c:1110 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "la precisión de INTERVAL(%d) no debe ser negativa" -#: utils/adt/timestamp.c:1087 +#: utils/adt/timestamp.c:1116 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "la precisión de INTERVAL(%d) fue reducida al máximo permitido, %d" -#: utils/adt/timestamp.c:1473 +#: utils/adt/timestamp.c:1506 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "la precisión de interval(%d) debe estar entre %d y %d" -#: utils/adt/timestamp.c:2703 -#, c-format -msgid "cannot subtract infinite timestamps" -msgstr "no se pueden restar timestamps infinitos" - -#: utils/adt/timestamp.c:3956 utils/adt/timestamp.c:4139 +#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 #, c-format msgid "origin out of range" msgstr "origen fuera de rango" -#: utils/adt/timestamp.c:3961 utils/adt/timestamp.c:4144 +#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#, c-format +msgid "timestamps cannot be binned into infinite intervals" +msgstr "no se puede aproximar (bin) timestamps hacia intervalos infinitos" + +#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "no se puede aproximar (bin) timestamps hacia intervalos que contengan meses o años" -#: utils/adt/timestamp.c:3968 utils/adt/timestamp.c:4151 +#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 #, c-format msgid "stride must be greater than zero" msgstr "el intervalo de paso (stride) debe ser mayor que cero" -#: utils/adt/timestamp.c:4434 +#: utils/adt/timestamp.c:5091 #, c-format msgid "Months usually have fractional weeks." -msgstr "" +msgstr "Los meses usualmente tienen semanas fraccionales." + +#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#, c-format +msgid "step size cannot be infinite" +msgstr "el tamaño de paso no puede ser infinito" -#: utils/adt/trigfuncs.c:42 +#: utils/adt/trigfuncs.c:41 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" msgstr "suppress_redundant_updates_trigger: debe ser invocado como trigger" -#: utils/adt/trigfuncs.c:48 +#: utils/adt/trigfuncs.c:47 #, c-format msgid "suppress_redundant_updates_trigger: must be called on update" msgstr "suppress_redundant_updates_trigger: debe ser invocado en «UPDATE»" -#: utils/adt/trigfuncs.c:54 +#: utils/adt/trigfuncs.c:53 #, c-format msgid "suppress_redundant_updates_trigger: must be called before update" msgstr "suppress_redundant_updates_trigger: debe ser invocado «BEFORE UPDATE»" -#: utils/adt/trigfuncs.c:60 +#: utils/adt/trigfuncs.c:59 #, c-format msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "suppress_redundant_updates_trigger: debe ser invocado «FOR EACH ROW»" @@ -25921,32 +26728,32 @@ msgstr "distancia en operador de frases debe ser un valor entero entre zero y %d msgid "no operand in tsquery: \"%s\"" msgstr "no hay operando en tsquery: «%s»" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "el valor es demasiado grande en tsquery: «%s»" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "el operando es muy largo en tsquery: «%s»" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "palabra demasiado larga en tsquery: «%s»" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "error de sintaxis en tsquery: «%s»" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "la consulta de búsqueda en texto no contiene lexemas: «%s»" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "el tsquery es demasiado grande" @@ -25981,73 +26788,72 @@ msgstr "los arrays de pesos no deben contener valores nulos" msgid "weight out of range" msgstr "peso fuera de rango" -#: utils/adt/tsvector.c:217 +#: utils/adt/tsvector.c:216 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "la palabra es demasiado larga (%ld, máximo %ld bytes)" -#: utils/adt/tsvector.c:224 +#: utils/adt/tsvector.c:223 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "la cadena es demasiado larga para tsvector (%ld bytes, máximo %ld bytes)" -#: utils/adt/tsvector_op.c:773 +#: utils/adt/tsvector_op.c:771 #, c-format msgid "lexeme array may not contain nulls" msgstr "el array de lexemas no debe contener nulls" -#: utils/adt/tsvector_op.c:778 -#, fuzzy, c-format -#| msgid "lexeme array may not contain nulls" +#: utils/adt/tsvector_op.c:776 +#, c-format msgid "lexeme array may not contain empty strings" -msgstr "el array de lexemas no debe contener nulls" +msgstr "el array de lexemas no debe contener cadenas vacías" -#: utils/adt/tsvector_op.c:847 +#: utils/adt/tsvector_op.c:845 #, c-format msgid "weight array may not contain nulls" msgstr "el array de pesos no debe contener nulls" -#: utils/adt/tsvector_op.c:871 +#: utils/adt/tsvector_op.c:869 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "no se reconoce el peso: «%c»" -#: utils/adt/tsvector_op.c:2601 +#: utils/adt/tsvector_op.c:2599 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "la consulta ts_stat debe retornar una columna tsvector" -#: utils/adt/tsvector_op.c:2790 +#: utils/adt/tsvector_op.c:2788 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "la columna tsvector «%s» no existe" -#: utils/adt/tsvector_op.c:2797 +#: utils/adt/tsvector_op.c:2795 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "la columna «%s» no es de tipo tsvector" -#: utils/adt/tsvector_op.c:2809 +#: utils/adt/tsvector_op.c:2807 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "la columna de configuración «%s» no existe" -#: utils/adt/tsvector_op.c:2815 +#: utils/adt/tsvector_op.c:2813 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "la columna «%s» no es de tipo regconfig" -#: utils/adt/tsvector_op.c:2822 +#: utils/adt/tsvector_op.c:2820 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "la columna de configuración «%s» no debe ser nula" -#: utils/adt/tsvector_op.c:2835 +#: utils/adt/tsvector_op.c:2833 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "el nombre de la configuración de búsqueda «%s» debe ser calificada con esquema" -#: utils/adt/tsvector_op.c:2860 +#: utils/adt/tsvector_op.c:2858 #, c-format msgid "column \"%s\" is not of a character type" msgstr "la columna «%s» no es de un tipo textual" @@ -26067,17 +26873,17 @@ msgstr "no hay carácter escapado: «%s»" msgid "wrong position info in tsvector: \"%s\"" msgstr "información posicional incorrecta en tsvector: «%s»" -#: utils/adt/uuid.c:413 +#: utils/adt/uuid.c:418 #, c-format msgid "could not generate random values" msgstr "no se pudo generar valores aleatorios" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 #, c-format msgid "length for type %s must be at least 1" msgstr "el largo para el tipo %s debe ser al menos 1" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 #, c-format msgid "length for type %s cannot exceed %d" msgstr "el largo del tipo %s no puede exceder %d" @@ -26112,9 +26918,9 @@ msgstr "el largo no es válido en cadena de bits externa" msgid "bit string too long for type bit varying(%d)" msgstr "la cadena de bits es demasiado larga para el tipo bit varying(%d)" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 +#: utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 +#: utils/adt/varlena.c:3133 #, c-format msgid "negative substring length not allowed" msgstr "no se permite un largo negativo de subcadena" @@ -26139,334 +26945,342 @@ msgstr "no se puede hacer XOR entre cadenas de bits de distintos tamaños" msgid "bit index %d out of valid range (0..%d)" msgstr "el índice de bit %d está fuera del rango válido (0..%d)" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 #, c-format msgid "new bit must be 0 or 1" msgstr "el nuevo bit debe ser 0 o 1" -#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 +#: utils/adt/varchar.c:161 utils/adt/varchar.c:312 #, c-format msgid "value too long for type character(%d)" msgstr "el valor es demasiado largo para el tipo character(%d)" -#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 +#: utils/adt/varchar.c:475 utils/adt/varchar.c:639 #, c-format msgid "value too long for type character varying(%d)" msgstr "el valor es demasiado largo para el tipo character varying(%d)" -#: utils/adt/varchar.c:738 utils/adt/varlena.c:1517 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "no se pudo determinar qué ordenamiento usar para la comparación de cadenas" -#: utils/adt/varlena.c:1227 utils/adt/varlena.c:1806 +#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "los ordenamientos no determinísticos no están soportados para búsquedas de sub-cadenas" -#: utils/adt/varlena.c:3218 utils/adt/varlena.c:3285 +#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "el índice %d está fuera de rango [0..%d]" -#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 +#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "el índice %lld está fuera de rango, 0..%lld" -#: utils/adt/varlena.c:4382 +#: utils/adt/varlena.c:4385 #, c-format msgid "field position must not be zero" msgstr "la posición del campo no debe ser cero" -#: utils/adt/varlena.c:5554 +#: utils/adt/varlena.c:5630 #, c-format msgid "unterminated format() type specifier" msgstr "especificador de tipo inconcluso en format()" -#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 +#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "Para un «%%» solo, use «%%%%»." -#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 +#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "especificador de tipo no reconocido «%.*s» en format()" -#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 +#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 #, c-format msgid "too few arguments for format()" msgstr "muy pocos argumentos para format()" -#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 +#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 #, c-format msgid "number is out of range" msgstr "el número está fuera de rango" -#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 +#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "la conversión especifica el argumento 0, pero los argumentos se numeran desde 1" -#: utils/adt/varlena.c:5937 +#: utils/adt/varlena.c:6013 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "la posición del argumento de anchura debe terminar con «$»" -#: utils/adt/varlena.c:5982 +#: utils/adt/varlena.c:6058 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "los valores nulos no pueden ser formateados como un identificador SQL" -#: utils/adt/varlena.c:6190 +#: utils/adt/varlena.c:6266 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "la normalización Unicode sólo puede ser hecha si la codificación de servidor es UTF8" -#: utils/adt/varlena.c:6203 +#: utils/adt/varlena.c:6279 #, c-format msgid "invalid normalization form: %s" msgstr "forma de normalización no válida: %s" -#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 +#: utils/adt/varlena.c:6324 +#, c-format +msgid "Unicode categorization can only be performed if server encoding is UTF8" +msgstr "la categorización Unicode sólo puede ser hecha si la codificación de servidor es UTF8" + +#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 #, c-format msgid "invalid Unicode code point: %04X" msgstr "punto de código Unicode no válido: %04X" -#: utils/adt/varlena.c:6506 +#: utils/adt/varlena.c:6641 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Los escapes Unicode deben ser \\XXXX, \\+XXXXXX, \\uXXXX o \\UXXXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "el argumento de ntile debe ser mayor que cero" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:707 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "el argumento de nth_value debe ser mayor que cero" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:120 #, c-format msgid "transaction ID %llu is in the future" -msgstr "" +msgstr "el ID de transacción %llu está en el futuro" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:522 #, c-format msgid "invalid external pg_snapshot data" msgstr "datos externos pg_snapshot no válidos" -#: utils/adt/xml.c:228 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" msgstr "característica XML no soportada" -#: utils/adt/xml.c:229 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "Esta funcionalidad requiere que el servidor haya sido construido con soporte libxml." -#: utils/adt/xml.c:248 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "nombre de codificación «%s» no válido" -#: utils/adt/xml.c:496 utils/adt/xml.c:501 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "comentario XML no válido" -#: utils/adt/xml.c:660 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "no es un documento XML" -#: utils/adt/xml.c:956 utils/adt/xml.c:979 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "instrucción de procesamiento XML no válida" -#: utils/adt/xml.c:957 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "el nombre de destino de la instrucción de procesamiento XML no puede ser «%s»." -#: utils/adt/xml.c:980 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "la instrucción de procesamiento XML no puede contener «?>»." -#: utils/adt/xml.c:1059 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate no está implementado" -#: utils/adt/xml.c:1115 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "no se pudo inicializar la biblioteca XML" -#: utils/adt/xml.c:1116 +#: utils/adt/xml.c:1168 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -msgstr "" +msgstr "libxml2 tiene un tipo char incompatible: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1202 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "no se pudo instalar un gestor de errores XML" -#: utils/adt/xml.c:1203 +#: utils/adt/xml.c:1255 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "Esto probablemente indica que la versión de libxml2 en uso no es compatible con los archivos de cabecera libxml2 con los que PostgreSQL fue construido." -#: utils/adt/xml.c:2189 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "Valor de carácter no válido." -#: utils/adt/xml.c:2192 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "Se requiere un espacio." -#: utils/adt/xml.c:2195 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone acepta sólo 'yes' y 'no'." -#: utils/adt/xml.c:2198 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "Declaración mal formada: falta la versión." -#: utils/adt/xml.c:2201 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "Falta especificación de codificación en declaración de texto." -#: utils/adt/xml.c:2204 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "Procesando declaración XML: se esperaba '?>'." -#: utils/adt/xml.c:2207 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Código de error libxml no reconocido: %d." -#: utils/adt/xml.c:2461 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML no soporta valores infinitos de fecha." -#: utils/adt/xml.c:2483 utils/adt/xml.c:2510 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML no soporta valores infinitos de timestamp." -#: utils/adt/xml.c:2926 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "consulta no válido" -#: utils/adt/xml.c:4266 +#: utils/adt/xml.c:3110 +#, c-format +msgid "portal \"%s\" does not return tuples" +msgstr "el portal «%s» no retorna tuplas" + +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "array no válido para mapeo de espacio de nombres XML" -#: utils/adt/xml.c:4267 +#: utils/adt/xml.c:4363 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "El array debe ser bidimensional y el largo del segundo eje igual a 2." -#: utils/adt/xml.c:4291 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "expresion XPath vacía" -#: utils/adt/xml.c:4343 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ni el espacio de nombres ni la URI pueden ser vacíos" -#: utils/adt/xml.c:4350 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "no se pudo registrar un espacio de nombres XML llamado «%s» con URI «%s»" -#: utils/adt/xml.c:4693 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "el espacio de nombres DEFAULT no está soportado" -#: utils/adt/xml.c:4722 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "el «path» de filtro de registros no debe ser la cadena vacía" -#: utils/adt/xml.c:4753 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "el «path» de filtro de columna no debe ser la cadena vacía" -#: utils/adt/xml.c:4897 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "la expresión XPath de columna retornó más de un valor" -#: utils/cache/lsyscache.c:1043 +#: utils/cache/lsyscache.c:1017 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "no existe la conversión del tipo %s al tipo %s" -#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 +#: utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 #, c-format msgid "type %s is only a shell" msgstr "el tipo %s está inconcluso" -#: utils/cache/lsyscache.c:2850 +#: utils/cache/lsyscache.c:2892 #, c-format msgid "no input function available for type %s" msgstr "no hay una función de entrada para el tipo %s" -#: utils/cache/lsyscache.c:2883 +#: utils/cache/lsyscache.c:2925 #, c-format msgid "no output function available for type %s" msgstr "no hay una función de salida para el tipo %s" -#: utils/cache/partcache.c:219 +#: utils/cache/partcache.c:216 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "falta la función de soporte %3$d para el tipo %4$s de la clase de operadores «%1$s» del método de acceso %2$s" -#: utils/cache/plancache.c:720 +#: utils/cache/plancache.c:747 #, c-format msgid "cached plan must not change result type" msgstr "el plan almacenado no debe cambiar el tipo de resultado" -#: utils/cache/relcache.c:3740 -#, fuzzy, c-format -#| msgid "pg_enum OID value not set when in binary upgrade mode" +#: utils/cache/relcache.c:3801 +#, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" -msgstr "el valor de OID de pg_enum no se definió en modo de actualización binaria" +msgstr "el valor de relfilenumber de heap no se definió en modo de actualización binaria" -#: utils/cache/relcache.c:3748 -#, fuzzy, c-format -#| msgid "must be superuser to connect in binary upgrade mode" +#: utils/cache/relcache.c:3809 +#, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" -msgstr "debe ser superusuario para conectarse en modo de actualización binaria" +msgstr "petición inesperada de un nuevo relfilenode en modo de actualización binaria" -#: utils/cache/relcache.c:6488 +#: utils/cache/relcache.c:6539 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "no se pudo crear el archivo de cache de catálogos de sistema «%s»: %m" -#: utils/cache/relcache.c:6490 +#: utils/cache/relcache.c:6541 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Prosiguiendo de todas maneras, pero hay algo mal." -#: utils/cache/relcache.c:6812 +#: utils/cache/relcache.c:6871 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "no se pudo eliminar el archivo de cache «%s»: %m" @@ -26476,17 +27290,17 @@ msgstr "no se pudo eliminar el archivo de cache «%s»: %m" msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "no se puede hacer PREPARE de una transacción que ha modificado el mapeo de relaciones" -#: utils/cache/relmapper.c:850 +#: utils/cache/relmapper.c:852 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "el archivo de mapeo de relaciones «%s» contiene datos no válidos" -#: utils/cache/relmapper.c:860 +#: utils/cache/relmapper.c:862 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "el archivo de mapeo de relaciones «%s» tiene una suma de verificación incorrecta" -#: utils/cache/typcache.c:1803 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "el tipo record no ha sido registrado" @@ -26499,104 +27313,104 @@ msgstr "TRAP: ExceptionalCondition: argumentos erróneos en PID %d\n" #: utils/error/assert.c:40 #, c-format msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" -msgstr "" +msgstr "TRAP: falló Assert(«%s»), Archivo «%s», Línea %d, PID %d\n" -#: utils/error/elog.c:416 +#: utils/error/elog.c:415 #, c-format msgid "error occurred before error message processing is available\n" msgstr "ocurrió un error antes de que el procesamiento de errores esté disponible\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2134 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "no se pudo reabrir «%s» para error estándar: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2147 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "no se pudo reabrir «%s» para usar como salida estándar: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2183 #, c-format -msgid "invalid character" -msgstr "carácter no válido" +msgid "Invalid character" +msgstr "Carácter no válido" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2889 utils/error/elog.c:2916 utils/error/elog.c:2932 msgid "[unknown]" msgstr "[desconocido]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3202 utils/error/elog.c:3526 utils/error/elog.c:3633 msgid "missing error text" msgstr "falta un texto de mensaje de error" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3205 utils/error/elog.c:3208 #, c-format msgid " at character %d" msgstr " en carácter %d" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3218 utils/error/elog.c:3225 msgid "DETAIL: " msgstr "DETALLE: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3232 msgid "HINT: " msgstr "HINT: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3239 msgid "QUERY: " msgstr "CONSULTA: " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3246 msgid "CONTEXT: " msgstr "CONTEXTO: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3256 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "UBICACIÓN: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3263 #, c-format msgid "LOCATION: %s:%d\n" msgstr "UBICACIÓN: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3270 msgid "BACKTRACE: " msgstr "BACKTRACE: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3282 msgid "STATEMENT: " msgstr "SENTENCIA: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3678 msgid "DEBUG" msgstr "DEBUG" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3682 msgid "LOG" msgstr "LOG" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3685 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3688 msgid "NOTICE" msgstr "NOTICE" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3692 msgid "WARNING" msgstr "WARNING" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3695 msgid "ERROR" msgstr "ERROR" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3698 msgid "FATAL" msgstr "FATAL" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3701 msgid "PANIC" msgstr "PANIC" @@ -26631,16 +27445,14 @@ msgid "Server is version %d, library is version %s." msgstr "Versión del servidor %d, versión de biblioteca %s." #: utils/fmgr/dfmgr.c:341 -#, fuzzy, c-format -#| msgid "incompatible library \"%s\": version mismatch" +#, c-format msgid "incompatible library \"%s\": ABI mismatch" -msgstr "biblioteca «%s» incompatible: versión no coincide" +msgstr "biblioteca «%s» incompatible: ABI no coincide" #: utils/fmgr/dfmgr.c:343 -#, fuzzy, c-format -#| msgid "Server has FLOAT8PASSBYVAL = %s, library has %s." +#, c-format msgid "Server has ABI \"%s\", library has \"%s\"." -msgstr "El servidor tiene FLOAT8PASSBYVAL = %s, la librería tiene %s" +msgstr "El servidor tiene ABI «%s», la librería tiene «%s»." #: utils/fmgr/dfmgr.c:361 #, c-format @@ -26671,22 +27483,22 @@ msgstr "El bloque mágico tiene un largo inesperado, o una diferencia de relleno msgid "incompatible library \"%s\": magic block mismatch" msgstr "biblioteca «%s» incompatible: bloque mágico no coincide" -#: utils/fmgr/dfmgr.c:492 +#: utils/fmgr/dfmgr.c:475 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "no está permitido el acceso a la biblioteca «%s»" -#: utils/fmgr/dfmgr.c:518 +#: utils/fmgr/dfmgr.c:501 #, c-format msgid "invalid macro name in dynamic library path: %s" msgstr "el nombre de macro no es válido en la ruta a biblioteca dinámica: %s" -#: utils/fmgr/dfmgr.c:558 +#: utils/fmgr/dfmgr.c:541 #, c-format msgid "zero-length component in parameter \"dynamic_library_path\"" msgstr "se encontró componente de largo cero en el parámetro «dynamic_library_path»" -#: utils/fmgr/dfmgr.c:577 +#: utils/fmgr/dfmgr.c:560 #, c-format msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "un componente en el parámetro «dynamic_library_path» no es una ruta absoluta" @@ -26711,223 +27523,213 @@ msgstr "Funciones invocables desde SQL necesitan PG_FUNCTION_INFO_V1(función) q msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "la versión de API %d no reconocida fue reportada por la función «%s»" -#: utils/fmgr/fmgr.c:2080 +#: utils/fmgr/fmgr.c:2109 #, c-format msgid "operator class options info is absent in function call context" msgstr "la información de opciones de la clase de operadores está ausente en el contexto de llamada a función" -#: utils/fmgr/fmgr.c:2147 +#: utils/fmgr/fmgr.c:2176 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "función de validación de lenguaje %u invocada para el lenguaje %u en lugar de %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "no se pudo determinar el tipo verdadero de resultado para la función «%s» declarada retornando tipo %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "el argumento declarado %s no contiene un tipo de rango sino tipo %s" -#: utils/fmgr/funcapi.c:717 -#, c-format -msgid "could not find multirange type for data type %s" -msgstr "no se pudo encontrar un tipo de multirango para el tipo de dato %s" - -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "el número de aliases no coincide con el número de columnas" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "no se entregó alias de columna" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "no se pudo encontrar descripción de registro de función que retorna record" -#: utils/init/miscinit.c:347 +#: utils/init/miscinit.c:353 #, c-format msgid "data directory \"%s\" does not exist" msgstr "no existe el directorio de datos «%s»" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:358 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "no se pudo obtener los permisos del directorio «%s»: %m" -#: utils/init/miscinit.c:360 +#: utils/init/miscinit.c:366 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "el directorio de datos especificado «%s» no es un directorio" -#: utils/init/miscinit.c:376 +#: utils/init/miscinit.c:382 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "el directorio de datos «%s» tiene dueño equivocado" -#: utils/init/miscinit.c:378 +#: utils/init/miscinit.c:384 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "El servidor debe ser iniciado por el usuario dueño del directorio de datos." -#: utils/init/miscinit.c:396 +#: utils/init/miscinit.c:402 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "el directorio de datos «%s» tiene permisos no válidos" -#: utils/init/miscinit.c:398 +#: utils/init/miscinit.c:404 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Los permisos deberían ser u=rwx (0700) o u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:456 +#: utils/init/miscinit.c:462 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "no se pudo cambiar al directorio «%s»: %m" -#: utils/init/miscinit.c:693 utils/misc/guc.c:3548 +#: utils/init/miscinit.c:720 utils/misc/guc.c:3650 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "no se puede definir el parámetro «%s» dentro de una operación restringida por seguridad" -#: utils/init/miscinit.c:765 +#: utils/init/miscinit.c:807 #, c-format msgid "role with OID %u does not exist" msgstr "no existe el rol con OID %u" -#: utils/init/miscinit.c:795 +#: utils/init/miscinit.c:853 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "al rol «%s» no se le permite conectarse" -#: utils/init/miscinit.c:813 +#: utils/init/miscinit.c:874 #, c-format msgid "too many connections for role \"%s\"" msgstr "demasiadas conexiones para el rol «%s»" -#: utils/init/miscinit.c:912 -#, c-format -msgid "permission denied to set session authorization" -msgstr "se ha denegado el permiso para cambiar el usuario actual" - -#: utils/init/miscinit.c:995 +#: utils/init/miscinit.c:1045 #, c-format msgid "invalid role OID: %u" msgstr "el OID de rol no es válido: %u" -#: utils/init/miscinit.c:1142 +#: utils/init/miscinit.c:1192 #, c-format msgid "database system is shut down" msgstr "el sistema de bases de datos está apagado" -#: utils/init/miscinit.c:1229 +#: utils/init/miscinit.c:1279 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "no se pudo crear el archivo de bloqueo «%s»: %m" -#: utils/init/miscinit.c:1243 +#: utils/init/miscinit.c:1293 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "no se pudo abrir el archivo de bloqueo «%s»: %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1300 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "no se pudo leer el archivo de bloqueo «%s»: %m" -#: utils/init/miscinit.c:1259 +#: utils/init/miscinit.c:1309 #, c-format msgid "lock file \"%s\" is empty" msgstr "el archivo de bloqueo «%s» está vacío" -#: utils/init/miscinit.c:1260 +#: utils/init/miscinit.c:1310 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Otro proceso servidor está iniciándose, o el archivo de bloqueo es remanente de una caída durante un inicio anterior." -#: utils/init/miscinit.c:1304 +#: utils/init/miscinit.c:1354 #, c-format msgid "lock file \"%s\" already exists" msgstr "el archivo de bloqueo «%s» ya existe" -#: utils/init/miscinit.c:1308 +#: utils/init/miscinit.c:1358 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "¿Hay otro postgres (PID %d) en ejecución en el directorio de datos «%s»?" -#: utils/init/miscinit.c:1310 +#: utils/init/miscinit.c:1360 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "¿Hay otro postmaster (PID %d) en ejecución en el directorio de datos «%s»?" -#: utils/init/miscinit.c:1313 +#: utils/init/miscinit.c:1363 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "¿Hay otro postgres (PID %d) usando el socket «%s»?" -#: utils/init/miscinit.c:1315 +#: utils/init/miscinit.c:1365 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "¿Hay otro postmaster (PID %d) usando el socket «%s»?" -#: utils/init/miscinit.c:1366 +#: utils/init/miscinit.c:1416 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "no se pudo eliminar el archivo de bloqueo antiguo «%s»: %m" -#: utils/init/miscinit.c:1368 +#: utils/init/miscinit.c:1418 #, 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 "El archivo parece accidentalmente abandonado, pero no pudo ser eliminado. Por favor elimine el archivo manualmente e intente nuevamente." -#: utils/init/miscinit.c:1405 utils/init/miscinit.c:1419 -#: utils/init/miscinit.c:1430 +#: utils/init/miscinit.c:1455 utils/init/miscinit.c:1469 +#: utils/init/miscinit.c:1480 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "no se pudo escribir el archivo de bloqueo «%s»: %m" -#: utils/init/miscinit.c:1541 utils/init/miscinit.c:1683 utils/misc/guc.c:5580 +#: utils/init/miscinit.c:1591 utils/init/miscinit.c:1733 utils/misc/guc.c:5765 #, c-format msgid "could not read from file \"%s\": %m" msgstr "no se pudo leer el archivo «%s»: %m" -#: utils/init/miscinit.c:1671 +#: utils/init/miscinit.c:1721 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "no se pudo abrir el archivo «%s»: %m; continuando de todas formas" -#: utils/init/miscinit.c:1696 +#: utils/init/miscinit.c:1746 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "el archivo de bloqueo «%s» tiene un PID erróneo: %ld en lugar de %ld" -#: utils/init/miscinit.c:1735 utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1785 utils/init/miscinit.c:1801 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "«%s» no es un directorio de datos válido" -#: utils/init/miscinit.c:1737 +#: utils/init/miscinit.c:1787 #, c-format msgid "File \"%s\" is missing." msgstr "Falta el archivo «%s»." -#: utils/init/miscinit.c:1753 +#: utils/init/miscinit.c:1803 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "El archivo «%s» no contiene datos válidos." -#: utils/init/miscinit.c:1755 +#: utils/init/miscinit.c:1805 #, c-format msgid "You might need to initdb." msgstr "Puede ser necesario ejecutar initdb." -#: utils/init/miscinit.c:1763 +#: utils/init/miscinit.c:1813 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "El directorio de datos fue inicializado por PostgreSQL versión %s, que no es compatible con esta versión %s." @@ -26960,7 +27762,7 @@ msgstr " SSL habilitado (protocolo=%s, cifrado=%s, bits=%d)" #: utils/init/postinit.c:285 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" -msgstr "" +msgstr " GSS (autenticado=%s, cifrado=%s, delegado_credenciales=%s, principal=%s)" #: utils/init/postinit.c:286 utils/init/postinit.c:287 #: utils/init/postinit.c:288 utils/init/postinit.c:293 @@ -26977,7 +27779,7 @@ msgstr "sí" #: utils/init/postinit.c:292 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" -msgstr "" +msgstr " GSS (autenticado=%s, cifrado=%s, delegado_credentiales=%s)" #: utils/init/postinit.c:333 #, c-format @@ -27004,106 +27806,105 @@ msgstr "permiso denegado a la base de datos «%s»" msgid "User does not have CONNECT privilege." msgstr "Usuario no tiene privilegios de conexión." -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:389 #, c-format msgid "too many connections for database \"%s\"" msgstr "demasiadas conexiones para la base de datos «%s»" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:413 utils/init/postinit.c:420 #, c-format msgid "database locale is incompatible with operating system" msgstr "la configuración regional es incompatible con el sistema operativo" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:414 #, c-format msgid "The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale()." msgstr "La base de datos fue inicializada con LC_COLLATE «%s», el cual no es reconocido por setlocale()." -#: utils/init/postinit.c:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:416 utils/init/postinit.c:423 #, c-format msgid "Recreate the database with another locale or install the missing locale." msgstr "Recree la base de datos con otra configuración regional, o instale la configuración regional faltante." -#: utils/init/postinit.c:418 +#: utils/init/postinit.c:421 #, c-format msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "La base de datos fue inicializada con LC_CTYPE «%s», el cual no es reconocido por setlocale()." -#: utils/init/postinit.c:475 -#, fuzzy, c-format -#| msgid "collation \"%s\" has version mismatch" +#: utils/init/postinit.c:493 +#, c-format msgid "database \"%s\" has a collation version mismatch" -msgstr "el ordenamiento (collation) «%s» tiene una discordancia de versión" +msgstr "la base de datos «%s» tiene una discordancia de versión de ordenamiento (“collation”)" -#: utils/init/postinit.c:477 -#, fuzzy, c-format -#| msgid "The collation in the database was created using version %s, but the operating system provides version %s." +#: utils/init/postinit.c:495 +#, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." -msgstr "El ordenamiento en la base de datos fue creado usando la versión %s, pero el sistema operativo provee la versión %s." +msgstr "La base de datos fue creada usando la versión de ordenamiento %s, pero el sistema operativo provee la versión %s." -#: utils/init/postinit.c:480 -#, fuzzy, c-format -#| msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." +#: utils/init/postinit.c:498 +#, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." -msgstr "Reconstruya todos los objetos afectados por este ordenamiento y ejecute ALTER COLLATION %s REFRESH VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." +msgstr "Reconstruya todos los objetos en esta base de datos que usen el ordenamiento por omisión y ejecute ALTER DATABASE %s REFRESH COLLATION VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." -#: utils/init/postinit.c:895 +#: utils/init/postinit.c:904 #, c-format msgid "no roles are defined in this database system" msgstr "no hay roles definidos en esta base de datos" -#: utils/init/postinit.c:896 +#: utils/init/postinit.c:905 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "Debería ejecutar imediatamente CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:932 +#: utils/init/postinit.c:942 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "debe ser superusuario para conectarse en modo de actualización binaria" -#: utils/init/postinit.c:953 -#, fuzzy, c-format -#| msgid "terminating connection because of crash of another server process" -msgid "remaining connection slots are reserved for roles with %s" -msgstr "terminando la conexión debido a una falla en otro proceso servidor" +#: utils/init/postinit.c:962 +#, c-format +msgid "remaining connection slots are reserved for roles with the %s attribute" +msgstr "las conexiones restantes están reservadas a roles con el atributo %s" -#: utils/init/postinit.c:959 +#: utils/init/postinit.c:968 #, c-format msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" -msgstr "" +msgstr "las conexiones restantes están reservadas a roles con privilegios del rol «%s»" -#: utils/init/postinit.c:971 -#, fuzzy, c-format -#| msgid "permission denied to rename role" +#: utils/init/postinit.c:980 +#, c-format msgid "permission denied to start WAL sender" -msgstr "se ha denegado el permiso para cambiar el nombre al rol" +msgstr "se ha denegado el permiso para iniciar “WAL sender”" -#: utils/init/postinit.c:972 +#: utils/init/postinit.c:981 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." -msgstr "" +msgstr "Sólo roles con el atributo %s pueden iniciar un proceso “WAL sender”." + +#: utils/init/postinit.c:1099 +#, c-format +msgid "It seems to have just been dropped or renamed." +msgstr "Parece haber sido eliminada o renombrada." -#: utils/init/postinit.c:1042 +#: utils/init/postinit.c:1103 #, c-format msgid "database %u does not exist" msgstr "no existe la base de datos %u" -#: utils/init/postinit.c:1131 +#: utils/init/postinit.c:1112 #, c-format -msgid "It seems to have just been dropped or renamed." -msgstr "Parece haber sido eliminada o renombrada." +msgid "cannot connect to invalid database \"%s\"" +msgstr "no se puede conectar a la base de datos no válida «%s»" -#: utils/init/postinit.c:1149 +#: utils/init/postinit.c:1173 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Falta el subdirectorio de base de datos «%s»." #: utils/init/usercontext.c:43 -#, fuzzy, c-format -#| msgid "\"%s\" cannot be higher than \"%s\"" +#, c-format msgid "role \"%s\" cannot SET ROLE to \"%s\"" -msgstr "«%s» no puede ser más alto que «%s»" +msgstr "el rol «%s» no puede hacer SET ROLE a «%s»" #: utils/mb/conv.c:522 utils/mb/conv.c:733 #, c-format @@ -27122,53 +27923,48 @@ msgstr "ID de codificación %d inesperado para juegos de caracteres ISO 8859" msgid "unexpected encoding ID %d for WIN character sets" msgstr "ID de codificación %d inesperado para juegos de caracteres WIN" -#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 +#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 #, c-format msgid "conversion between %s and %s is not supported" msgstr "la conversión entre %s y %s no está soportada" -#: utils/mb/mbutils.c:386 -#, c-format -msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "no existe el procedimiento por omisión de conversión desde la codificación «%s» a «%s»" - -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 +#: utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "La cadena de %d bytes es demasiado larga para la recodificación." -#: utils/mb/mbutils.c:569 +#: utils/mb/mbutils.c:568 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "la codificación de origen «%s» no es válida" -#: utils/mb/mbutils.c:574 +#: utils/mb/mbutils.c:573 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "la codificación de destino «%s» no es válida" -#: utils/mb/mbutils.c:714 +#: utils/mb/mbutils.c:713 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "byte no válido para codificación «%s»: 0x%02x" -#: utils/mb/mbutils.c:878 +#: utils/mb/mbutils.c:877 #, c-format msgid "invalid Unicode code point" msgstr "punto de código Unicode no válido" -#: utils/mb/mbutils.c:1204 +#: utils/mb/mbutils.c:1201 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset falló" -#: utils/mb/mbutils.c:1725 +#: utils/mb/mbutils.c:1718 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "secuencia de bytes no válida para codificación «%s»: %s" -#: utils/mb/mbutils.c:1758 +#: utils/mb/mbutils.c:1751 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "carácter con secuencia de bytes %s en codificación «%s» no tiene equivalente en la codificación «%s»" @@ -27183,83 +27979,82 @@ msgstr "nombre de directorio de configuración vacío: «%s»" msgid "could not open configuration directory \"%s\": %m" msgstr "no se pudo abrir el directorio de configuración «%s»: %m" -#: utils/misc/guc.c:115 +#: utils/misc/guc.c:122 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "Unidades válidas para este parámetro son «B», «kB», «MB», «GB» y «TB»." -#: utils/misc/guc.c:152 +#: utils/misc/guc.c:159 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." msgstr "Unidades válidas son para este parámetro son «us», «ms», «s», «min», «h» y «d»." -#: utils/misc/guc.c:421 +#: utils/misc/guc.c:430 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "parámetro de configuración «%s» no reconocido en el archivo «%s» línea %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3406 utils/misc/guc.c:3646 -#: utils/misc/guc.c:3744 utils/misc/guc.c:3842 utils/misc/guc.c:3966 -#: utils/misc/guc.c:4069 +#: utils/misc/guc.c:470 utils/misc/guc.c:3504 utils/misc/guc.c:3748 +#: utils/misc/guc.c:3846 utils/misc/guc.c:3944 utils/misc/guc.c:4071 +#: utils/misc/guc.c:4212 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "el parámetro «%s» no se puede cambiar sin reiniciar el servidor" -#: utils/misc/guc.c:497 +#: utils/misc/guc.c:506 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "parámetro «%s» eliminado del archivo de configuración, volviendo al valor por omisión" -#: utils/misc/guc.c:562 +#: utils/misc/guc.c:571 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "el parámetro «%s» fue cambiado a «%s»" -#: utils/misc/guc.c:604 +#: utils/misc/guc.c:613 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "el archivo de configuración «%s» contiene errores" -#: utils/misc/guc.c:609 +#: utils/misc/guc.c:618 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "el archivo de configuración «%s» contiene errores; los cambios no afectados fueron aplicados" -#: utils/misc/guc.c:614 +#: utils/misc/guc.c:623 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "el archivo de configuración «%s» contiene errores; no se aplicó ningún cambio" -#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "nombre de parámetro de configuración «%s» no válido" -#: utils/misc/guc.c:1213 +#: utils/misc/guc.c:1141 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." msgstr "Los nombres de los parámetros personalizados deben ser dos o más identificadores sencillos separados por puntos." -#: utils/misc/guc.c:1229 -#, fuzzy, c-format -#| msgid "\"%s\" is a procedure." +#: utils/misc/guc.c:1157 +#, c-format msgid "\"%s\" is a reserved prefix." -msgstr "«%s» es un índice parcial." +msgstr "«%s» es un prefijo reservado." -#: utils/misc/guc.c:1243 +#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "parámetro de configuración «%s» no reconocido" -#: utils/misc/guc.c:1765 +#: utils/misc/guc.c:1802 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: no se pudo acceder al directorio «%s»: %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: no se pudo acceder al directorio «%s»: %m\n" -#: utils/misc/guc.c:1770 +#: utils/misc/guc.c:1806 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "Ejecute initdb o pg_basebackup para inicializar un directorio de datos de PostgreSQL.\n" -#: utils/misc/guc.c:1794 +#: utils/misc/guc.c:1830 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -27268,12 +28063,12 @@ msgstr "" "%s no sabe dónde encontrar el archivo de configuración del servidor.\n" "Debe especificar la opción --config-file o -D o definir la variable de ambiente PGDATA.\n" -#: utils/misc/guc.c:1817 +#: utils/misc/guc.c:1853 #, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s: no se pudo acceder al archivo de configuración «%s»: %s\n" +msgid "%s: could not access the server configuration file \"%s\": %m\n" +msgstr "%s: no se pudo acceder al archivo de configuración «%s»: %m\n" -#: utils/misc/guc.c:1845 +#: utils/misc/guc.c:1881 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -27282,7 +28077,7 @@ msgstr "" "%s no sabe dónde encontrar los archivos de sistema de la base de datos.\n" "Esto puede especificarse como «data_directory» en «%s», o usando la opción -D, o a través de la variable de ambiente PGDATA.\n" -#: utils/misc/guc.c:1897 +#: utils/misc/guc.c:1933 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -27291,7 +28086,7 @@ msgstr "" "%s no sabe dónde encontrar el archivo de configuración «hba».\n" "Esto puede especificarse como «hba_file» en «%s», o usando la opción -D, o a través de la variable de ambiente PGDATA.\n" -#: utils/misc/guc.c:1928 +#: utils/misc/guc.c:1964 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -27300,127 +28095,131 @@ msgstr "" "%s no sabe dónde encontrar el archivo de configuración «ident».\n" "Esto puede especificarse como «ident_file» en «%s», o usando la opción -D, o a través de la variable de ambiente PGDATA.\n" -#: utils/misc/guc.c:2894 +#: utils/misc/guc.c:2943 msgid "Value exceeds integer range." msgstr "El valor excede el rango para enteros." -#: utils/misc/guc.c:3130 +#: utils/misc/guc.c:3185 #, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s está fuera del rango aceptable para el parámetro «%s» (%d .. %d)" +msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" +msgstr "%d%s%s está fuera del rango aceptable para el parámetro «%s» (%d%s%s .. %d%s%s)" -#: utils/misc/guc.c:3166 +#: utils/misc/guc.c:3226 #, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s está fuera del rango aceptable para el parámetro «%s» (%g .. %g)" +msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" +msgstr "%g%s%s está fuera del rango aceptable para el parámetro «%s» (%g%s%s .. %g%s%s)" -#: utils/misc/guc.c:3366 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3465 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "no se puede definir parámetros durante una operación paralela" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "no se puede establecer el parámetro «%s» durante una operación paralela" -#: utils/misc/guc.c:3383 utils/misc/guc.c:4530 +#: utils/misc/guc.c:3481 utils/misc/guc.c:4696 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "no se puede cambiar el parámetro «%s»" -#: utils/misc/guc.c:3416 +#: utils/misc/guc.c:3514 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "el parámetro «%s» no se puede cambiar en este momento" -#: utils/misc/guc.c:3443 utils/misc/guc.c:3501 utils/misc/guc.c:4506 -#: utils/misc/guc.c:6546 +#: utils/misc/guc.c:3541 utils/misc/guc.c:3603 utils/misc/guc.c:4671 +#: utils/misc/guc.c:6756 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "se ha denegado el permiso para cambiar la opción «%s»" -#: utils/misc/guc.c:3481 +#: utils/misc/guc.c:3583 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "el parámetro «%s» no se puede cambiar después de efectuar la conexión" -#: utils/misc/guc.c:3540 +#: utils/misc/guc.c:3642 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "no se puede definir el parámetro «%s» dentro una función security-definer" -#: utils/misc/guc.c:3561 -#, fuzzy, c-format -#| msgid "parameter \"%s\" could not be set" +#: utils/misc/guc.c:3663 +#, c-format msgid "parameter \"%s\" cannot be reset" -msgstr "no se pudo cambiar el parámetro «%s»" +msgstr "el parámetro «%s» no puede ser reseteado" -#: utils/misc/guc.c:3568 -#, fuzzy, c-format -#| msgid "parameter \"%s\" cannot be set after connection start" +#: utils/misc/guc.c:3670 +#, c-format msgid "parameter \"%s\" cannot be set locally in functions" -msgstr "el parámetro «%s» no se puede cambiar después de efectuar la conexión" +msgstr "el parámetro «%s» no se puede cambiar localmente en funciones" -#: utils/misc/guc.c:4212 utils/misc/guc.c:4259 utils/misc/guc.c:5266 -#, fuzzy, c-format -#| msgid "permission denied to create \"%s.%s\"" +#: utils/misc/guc.c:4370 utils/misc/guc.c:4418 utils/misc/guc.c:5450 +#, c-format msgid "permission denied to examine \"%s\"" -msgstr "se ha denegado el permiso para crear «%s.%s»" +msgstr "se ha denegado el permiso a examinar «%s»" -#: utils/misc/guc.c:4213 utils/misc/guc.c:4260 utils/misc/guc.c:5267 +#: utils/misc/guc.c:4371 utils/misc/guc.c:4419 utils/misc/guc.c:5451 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." -msgstr "" +msgstr "Sólo roles con privilegios del rol «%s» pueden examinar este parámetro." + +#: utils/misc/guc.c:4629 +#, c-format +msgid "ALTER SYSTEM is not allowed in this environment" +msgstr "ALTER SYSTEM no está permitido en este ambiente" -#: utils/misc/guc.c:4496 -#, fuzzy, c-format -#| msgid "permission denied for operator %s" +#: utils/misc/guc.c:4661 +#, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" -msgstr "permiso denegado al operador %s" +msgstr "permiso denegado a ejecutar ALTER SYSTEM RESET ALL" -#: utils/misc/guc.c:4562 +#: utils/misc/guc.c:4740 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "los valores de parámetros para ALTER SYSTEM no deben contener saltos de línea" -#: utils/misc/guc.c:4608 +#: utils/misc/guc.c:4785 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "no se pudo interpretar el contenido del archivo «%s»" -#: utils/misc/guc.c:4790 +#: utils/misc/guc.c:4967 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "intento de cambiar la opción «%s»" -#: utils/misc/guc.c:5129 -#, fuzzy, c-format -#| msgid "invalid configuration parameter name \"%s\"" +#: utils/misc/guc.c:5306 +#, c-format msgid "invalid configuration parameter name \"%s\", removing it" -msgstr "nombre de parámetro de configuración «%s» no válido" +msgstr "nombre de parámetro de configuración «%s» no válido, eliminándolo" -#: utils/misc/guc.c:5131 -#, fuzzy, c-format -#| msgid "\"%s\" is not a sequence" +#: utils/misc/guc.c:5308 +#, c-format msgid "\"%s\" is now a reserved prefix." -msgstr "«%s» no es una secuencia" +msgstr "«%s» es ahora un prefijo reservado." -#: utils/misc/guc.c:6000 +#: utils/misc/guc.c:6179 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "al establecer el parámetro «%s» a «%s»" -#: utils/misc/guc.c:6169 +#: utils/misc/guc.c:6348 #, c-format msgid "parameter \"%s\" could not be set" msgstr "no se pudo cambiar el parámetro «%s»" -#: utils/misc/guc.c:6259 +#: utils/misc/guc.c:6438 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "no se pudo interpretar el valor de para el parámetro «%s»" -#: utils/misc/guc.c:6678 +#: utils/misc/guc.c:6888 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "valor no válido para el parámetro «%s»: %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "no se puede definir parámetros durante una operación paralela" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -27436,41 +28235,39 @@ msgstr "SET %s lleva sólo un argumento" msgid "SET requires parameter name" msgstr "SET requiere el nombre de un parámetro" -#: utils/misc/guc_tables.c:667 +#: utils/misc/guc_tables.c:676 msgid "Ungrouped" msgstr "Sin Grupo" -#: utils/misc/guc_tables.c:669 +#: utils/misc/guc_tables.c:677 msgid "File Locations" msgstr "Ubicaciones de Archivos" -#: utils/misc/guc_tables.c:671 +#: utils/misc/guc_tables.c:678 msgid "Connections and Authentication / Connection Settings" msgstr "Conexiones y Autentificación / Parámetros de Conexión" -#: utils/misc/guc_tables.c:673 -#, fuzzy -#| msgid "Connections and Authentication / Connection Settings" +#: utils/misc/guc_tables.c:679 msgid "Connections and Authentication / TCP Settings" -msgstr "Conexiones y Autentificación / Parámetros de Conexión" +msgstr "Conexiones y Autentificación / Parámetros TCP" -#: utils/misc/guc_tables.c:675 +#: utils/misc/guc_tables.c:680 msgid "Connections and Authentication / Authentication" msgstr "Conexiones y Autentificación / Autentificación" -#: utils/misc/guc_tables.c:677 +#: utils/misc/guc_tables.c:681 msgid "Connections and Authentication / SSL" msgstr "Conexiones y Autentificación / SSL" -#: utils/misc/guc_tables.c:679 +#: utils/misc/guc_tables.c:682 msgid "Resource Usage / Memory" msgstr "Uso de Recursos / Memoria" -#: utils/misc/guc_tables.c:681 +#: utils/misc/guc_tables.c:683 msgid "Resource Usage / Disk" msgstr "Uso de Recursos / Disco" -#: utils/misc/guc_tables.c:683 +#: utils/misc/guc_tables.c:684 msgid "Resource Usage / Kernel Resources" msgstr "Uso de Recursos / Recursos del Kernel" @@ -27478,1985 +28275,2032 @@ msgstr "Uso de Recursos / Recursos del Kernel" msgid "Resource Usage / Cost-Based Vacuum Delay" msgstr "Uso de Recursos / Retardo de Vacuum por Costos" -#: utils/misc/guc_tables.c:687 +#: utils/misc/guc_tables.c:686 msgid "Resource Usage / Background Writer" msgstr "Uso de Recursos / Escritor en Segundo Plano" -#: utils/misc/guc_tables.c:689 +#: utils/misc/guc_tables.c:687 msgid "Resource Usage / Asynchronous Behavior" msgstr "Uso de Recursos / Comportamiento Asíncrono" -#: utils/misc/guc_tables.c:691 +#: utils/misc/guc_tables.c:688 msgid "Write-Ahead Log / Settings" msgstr "Write-Ahead Log / Configuraciones" -#: utils/misc/guc_tables.c:693 +#: utils/misc/guc_tables.c:689 msgid "Write-Ahead Log / Checkpoints" msgstr "Write-Ahead Log / Puntos de Control (Checkpoints)" -#: utils/misc/guc_tables.c:695 +#: utils/misc/guc_tables.c:690 msgid "Write-Ahead Log / Archiving" msgstr "Write-Ahead Log / Archivado" -#: utils/misc/guc_tables.c:697 -#, fuzzy -#| msgid "Write-Ahead Log / Recovery Target" +#: utils/misc/guc_tables.c:691 msgid "Write-Ahead Log / Recovery" -msgstr "Write-Ahead Log / Destino de Recuperación" +msgstr "Write-Ahead Log / Recuperación" -#: utils/misc/guc_tables.c:699 +#: utils/misc/guc_tables.c:692 msgid "Write-Ahead Log / Archive Recovery" msgstr "Write-Ahead Log / Recuperación desde Archivo" -#: utils/misc/guc_tables.c:701 +#: utils/misc/guc_tables.c:693 msgid "Write-Ahead Log / Recovery Target" msgstr "Write-Ahead Log / Destino de Recuperación" -#: utils/misc/guc_tables.c:703 +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Summarization" +msgstr "Write-Ahead Log / Sumarización" + +#: utils/misc/guc_tables.c:695 msgid "Replication / Sending Servers" msgstr "Replicación / Servidores de Envío" -#: utils/misc/guc_tables.c:705 +#: utils/misc/guc_tables.c:696 msgid "Replication / Primary Server" msgstr "Replicación / Servidor Primario" -#: utils/misc/guc_tables.c:707 +#: utils/misc/guc_tables.c:697 msgid "Replication / Standby Servers" msgstr "Replicación / Servidores Standby" -#: utils/misc/guc_tables.c:709 +#: utils/misc/guc_tables.c:698 msgid "Replication / Subscribers" msgstr "Replicación / Suscriptores" -#: utils/misc/guc_tables.c:711 +#: utils/misc/guc_tables.c:699 msgid "Query Tuning / Planner Method Configuration" msgstr "Afinamiento de Consultas / Configuración de Métodos del Planner" -#: utils/misc/guc_tables.c:713 +#: utils/misc/guc_tables.c:700 msgid "Query Tuning / Planner Cost Constants" msgstr "Afinamiento de Consultas / Constantes de Costo del Planner" -#: utils/misc/guc_tables.c:715 +#: utils/misc/guc_tables.c:701 msgid "Query Tuning / Genetic Query Optimizer" msgstr "Afinamiento de Consultas / Optimizador Genético de Consultas" -#: utils/misc/guc_tables.c:717 +#: utils/misc/guc_tables.c:702 msgid "Query Tuning / Other Planner Options" msgstr "Afinamiento de Consultas / Otras Opciones del Planner" -#: utils/misc/guc_tables.c:719 +#: utils/misc/guc_tables.c:703 msgid "Reporting and Logging / Where to Log" msgstr "Reporte y Registro / Dónde Registrar" -#: utils/misc/guc_tables.c:721 +#: utils/misc/guc_tables.c:704 msgid "Reporting and Logging / When to Log" msgstr "Reporte y Registro / Cuándo Registrar" -#: utils/misc/guc_tables.c:723 +#: utils/misc/guc_tables.c:705 msgid "Reporting and Logging / What to Log" msgstr "Reporte y Registro / Qué Registrar" -#: utils/misc/guc_tables.c:725 +#: utils/misc/guc_tables.c:706 msgid "Reporting and Logging / Process Title" msgstr "Reporte y Registro / Título del Proceso" -#: utils/misc/guc_tables.c:727 +#: utils/misc/guc_tables.c:707 msgid "Statistics / Monitoring" msgstr "Estadísticas / Monitoreo" -#: utils/misc/guc_tables.c:729 +#: utils/misc/guc_tables.c:708 msgid "Statistics / Cumulative Query and Index Statistics" -msgstr "" +msgstr "Estadísticas / Acumuladores de Consultas e Índices" -#: utils/misc/guc_tables.c:731 +#: utils/misc/guc_tables.c:709 msgid "Autovacuum" msgstr "Autovacuum" -#: utils/misc/guc_tables.c:733 +#: utils/misc/guc_tables.c:710 msgid "Client Connection Defaults / Statement Behavior" msgstr "Valores por Omisión de Conexiones / Comportamiento de Sentencias" -#: utils/misc/guc_tables.c:735 +#: utils/misc/guc_tables.c:711 msgid "Client Connection Defaults / Locale and Formatting" msgstr "Valores por Omisión de Conexiones / Configuraciones Regionales y Formateo" -#: utils/misc/guc_tables.c:737 +#: utils/misc/guc_tables.c:712 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "Valores por Omisión de Conexiones / Precargado de Bibliotecas Compartidas" -#: utils/misc/guc_tables.c:739 +#: utils/misc/guc_tables.c:713 msgid "Client Connection Defaults / Other Defaults" msgstr "Valores por Omisión de Conexiones / Otros Valores" -#: utils/misc/guc_tables.c:741 +#: utils/misc/guc_tables.c:714 msgid "Lock Management" msgstr "Manejo de Bloqueos" -#: utils/misc/guc_tables.c:743 +#: utils/misc/guc_tables.c:715 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "Compatibilidad de Versión y Plataforma / Versiones Anteriores de PostgreSQL" -#: utils/misc/guc_tables.c:745 +#: utils/misc/guc_tables.c:716 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "Compatibilidad de Versión y Plataforma / Otras Plataformas y Clientes" -#: utils/misc/guc_tables.c:747 +#: utils/misc/guc_tables.c:717 msgid "Error Handling" msgstr "Gestión de Errores" -#: utils/misc/guc_tables.c:749 +#: utils/misc/guc_tables.c:718 msgid "Preset Options" msgstr "Opciones Predefinidas" -#: utils/misc/guc_tables.c:751 +#: utils/misc/guc_tables.c:719 msgid "Customized Options" msgstr "Opciones Personalizadas" -#: utils/misc/guc_tables.c:753 +#: utils/misc/guc_tables.c:720 msgid "Developer Options" msgstr "Opciones de Desarrollador" -#: utils/misc/guc_tables.c:810 +#: utils/misc/guc_tables.c:775 msgid "Enables the planner's use of sequential-scan plans." msgstr "Permitir el uso de planes de recorrido secuencial." -#: utils/misc/guc_tables.c:820 +#: utils/misc/guc_tables.c:785 msgid "Enables the planner's use of index-scan plans." msgstr "Permitir el uso de planes de recorrido de índice." -#: utils/misc/guc_tables.c:830 +#: utils/misc/guc_tables.c:795 msgid "Enables the planner's use of index-only-scan plans." msgstr "Permitir el uso de planes de recorrido de sólo-índice." -#: utils/misc/guc_tables.c:840 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of bitmap-scan plans." msgstr "Permitir el uso de planes de recorrido de índice por mapas de bits." -#: utils/misc/guc_tables.c:850 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of TID scan plans." msgstr "Permitir el uso de planes de recorrido por TID." -#: utils/misc/guc_tables.c:860 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of explicit sort steps." msgstr "Permitir el uso de pasos explícitos de ordenamiento." -#: utils/misc/guc_tables.c:870 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of incremental sort steps." msgstr "Permitir el uso de pasos incrementales de ordenamiento." -#: utils/misc/guc_tables.c:880 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of hashed aggregation plans." msgstr "Permitir el uso de planes de agregación a través de hash." -#: utils/misc/guc_tables.c:890 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of materialization." msgstr "Permitir el uso de materialización de planes." -#: utils/misc/guc_tables.c:900 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of memoization." msgstr "Permitir el uso de memoización de planes." -#: utils/misc/guc_tables.c:910 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of nested-loop join plans." msgstr "Permitir el uso de planes «nested-loop join»." -#: utils/misc/guc_tables.c:920 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of merge join plans." msgstr "Permitir el uso de planes «merge join»." -#: utils/misc/guc_tables.c:930 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of hash join plans." msgstr "Permitir el uso de planes «hash join»." -#: utils/misc/guc_tables.c:940 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of gather merge plans." msgstr "Permitir el uso de planes «gather merge»." -#: utils/misc/guc_tables.c:950 +#: utils/misc/guc_tables.c:915 msgid "Enables partitionwise join." msgstr "Permitir el uso de joins por particiones." -#: utils/misc/guc_tables.c:960 +#: utils/misc/guc_tables.c:925 msgid "Enables partitionwise aggregation and grouping." msgstr "Permitir el uso de agregación y agrupamiento por particiones." -#: utils/misc/guc_tables.c:970 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of parallel append plans." msgstr "Permitir el uso de planes «append» paralelos." -#: utils/misc/guc_tables.c:980 +#: utils/misc/guc_tables.c:945 msgid "Enables the planner's use of parallel hash plans." msgstr "Permitir el uso de planes «hash join» paralelos." -#: utils/misc/guc_tables.c:990 +#: utils/misc/guc_tables.c:955 msgid "Enables plan-time and execution-time partition pruning." msgstr "Permitir el uso de poda de particiones en tiempo de plan y ejecución." -#: utils/misc/guc_tables.c:991 +#: utils/misc/guc_tables.c:956 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "Permite al optimizador de consultas y al ejecutor a comparar bordes de particiones a condiciones en las consultas para determinar qué particiones deben recorrerse." -#: utils/misc/guc_tables.c:1002 -msgid "Enables the planner's ability to produce plans which provide presorted input for ORDER BY / DISTINCT aggregate functions." -msgstr "" +#: utils/misc/guc_tables.c:967 +msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." +msgstr "Activa la capacidad del optimizador de permitir planes que proveen entrada pre-ordenada para funciones de agregación ORDER BY / DISTINCT" -#: utils/misc/guc_tables.c:1005 -msgid "Allows the query planner to build plans which provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." -msgstr "" +#: utils/misc/guc_tables.c:970 +msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." +msgstr "Permite al optimizador construir planes que proveen entrada pre-ordenada para funciones de agregación con una cláusula ORDER BY / DISTINCT. Cuando está desactivado, siempre se efectúan ordenamientos implícitos durante la ejecución." -#: utils/misc/guc_tables.c:1017 +#: utils/misc/guc_tables.c:982 msgid "Enables the planner's use of async append plans." msgstr "Permitir el uso de planes «append» asíncronos." -#: utils/misc/guc_tables.c:1027 +#: utils/misc/guc_tables.c:992 +msgid "Enables reordering of GROUP BY keys." +msgstr "Activa el reordenamiento de claves GROUP BY." + +#: utils/misc/guc_tables.c:1002 msgid "Enables genetic query optimization." msgstr "Permitir el uso del optimizador genético de consultas." -#: utils/misc/guc_tables.c:1028 +#: utils/misc/guc_tables.c:1003 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "Este algoritmo intenta planear las consultas sin hacer búsqueda exhaustiva." -#: utils/misc/guc_tables.c:1039 +#: utils/misc/guc_tables.c:1017 msgid "Shows whether the current user is a superuser." msgstr "Indica si el usuario actual es superusuario." -#: utils/misc/guc_tables.c:1049 +#: utils/misc/guc_tables.c:1032 +msgid "Allows running the ALTER SYSTEM command." +msgstr "Permite ejecutar la orden ALTER SYSTEM." + +#: utils/misc/guc_tables.c:1033 +msgid "Can be set to off for environments where global configuration changes should be made using a different method." +msgstr "Puede desactivarse en ambientes donde los cambios globales de configuración deban hacerse usando un método diferente." + +#: utils/misc/guc_tables.c:1043 msgid "Enables advertising the server via Bonjour." msgstr "Permitir la publicación del servidor vía Bonjour." -#: utils/misc/guc_tables.c:1058 +#: utils/misc/guc_tables.c:1052 msgid "Collects transaction commit time." msgstr "Recolectar tiempo de compromiso de transacciones." -#: utils/misc/guc_tables.c:1067 +#: utils/misc/guc_tables.c:1061 msgid "Enables SSL connections." msgstr "Permitir conexiones SSL." -#: utils/misc/guc_tables.c:1076 -msgid "Controls whether ssl_passphrase_command is called during server reload." -msgstr "" +#: utils/misc/guc_tables.c:1070 +msgid "Controls whether \"ssl_passphrase_command\" is called during server reload." +msgstr "Controla si «ssl_passphrase_command» es invocado durante el “reload” del servidor." -#: utils/misc/guc_tables.c:1085 +#: utils/misc/guc_tables.c:1079 msgid "Give priority to server ciphersuite order." msgstr "Da prioridad al orden de algoritmos de cifrado especificado por el servidor." -#: utils/misc/guc_tables.c:1094 +#: utils/misc/guc_tables.c:1088 msgid "Forces synchronization of updates to disk." msgstr "Forzar la sincronización de escrituras a disco." -#: utils/misc/guc_tables.c:1095 +#: utils/misc/guc_tables.c:1089 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "El servidor usará la llamada a sistema fsync() en varios lugares para asegurarse que las actualizaciones son escritas físicamente a disco. Esto asegura que las bases de datos se recuperarán a un estado consistente después de una caída de hardware o sistema operativo." -#: utils/misc/guc_tables.c:1106 +#: utils/misc/guc_tables.c:1100 msgid "Continues processing after a checksum failure." msgstr "Continuar procesando después de una falla de suma de verificación." -#: utils/misc/guc_tables.c:1107 +#: utils/misc/guc_tables.c:1101 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "La detección de una suma de verificación que no coincide normalmente hace que PostgreSQL reporte un error, abortando la transacción en curso. Definiendo ignore_checksum_failure a true hace que el sistema ignore la falla (pero aún así reporta un mensaje de warning), y continúe el procesamiento. Este comportamiento podría causar caídas del sistema u otros problemas serios. Sólo tiene efecto si las sumas de verificación están activadas." -#: utils/misc/guc_tables.c:1121 +#: utils/misc/guc_tables.c:1115 msgid "Continues processing past damaged page headers." msgstr "Continuar procesando después de detectar encabezados de página dañados." -#: utils/misc/guc_tables.c:1122 -msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." -msgstr "La detección de un encabezado de página dañado normalmente hace que PostgreSQL reporte un error, abortando la transacción en curso. Definiendo zero_damaged_pages a true hace que el sistema reporte un mensaje de warning, escriba ceros en toda la página, y continúe el procesamiento. Este comportamiento destruirá datos; en particular, todas las tuplas en la página dañada." +#: utils/misc/guc_tables.c:1116 +msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting \"zero_damaged_pages\" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." +msgstr "La detección de un encabezado de página dañado normalmente hace que PostgreSQL reporte un error, abortando la transacción en curso. Definiendo «zero_damaged_pages» a true hace que el sistema reporte un mensaje de warning, escriba ceros en toda la página, y continúe el procesamiento. Este comportamiento destruirá datos; en particular, todas las tuplas en la página dañada." -#: utils/misc/guc_tables.c:1135 +#: utils/misc/guc_tables.c:1129 msgid "Continues recovery after an invalid pages failure." msgstr "Continuar procesando después de una falla de páginas no válidas." -#: utils/misc/guc_tables.c:1136 -msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." -msgstr "La detección de que registros de WAL tengan referencias a páginas no válidas durante la recuperación hace que PostgreSQL produzca un error de nivel PANIC, abortando la recuperación. Establecer el valor de ignore_invalid_pages a true hace que el sistema ignore las referencias a páginas no válidas en registros de WAL (pero aún así reporta un mensaje de warning), y continúe la recuperación. Este comportamiento podría causar caídas del sistema, pérdida de datos, propagar u ocultar corrupción, u otros problemas serios. Sólo tiene efecto durante la recuperación o en modo standby." +#: utils/misc/guc_tables.c:1130 +msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." +msgstr "La detección de que registros de WAL tengan referencias a páginas no válidas durante la recuperación hace que PostgreSQL produzca un error de nivel PANIC, abortando la recuperación. Establecer el valor de «ignore_invalid_pages» a true hace que el sistema ignore las referencias a páginas no válidas en registros de WAL (pero aún así reporta un mensaje de warning), y continúe la recuperación. Este comportamiento podría causar caídas del sistema, pérdida de datos, propagar u ocultar corrupción, u otros problemas serios. Sólo tiene efecto durante la recuperación o en modo standby." -#: utils/misc/guc_tables.c:1154 +#: utils/misc/guc_tables.c:1148 msgid "Writes full pages to WAL when first modified after a checkpoint." -msgstr "Escribe páginas completas a WAL cuando son modificadas después de un punto de control." +msgstr "Escribe páginas completas a WAL cuando son modificadas después de un checkpoint." -#: utils/misc/guc_tables.c:1155 +#: utils/misc/guc_tables.c:1149 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." -msgstr "Una escritura de página que está siendo procesada durante una caída del sistema operativo puede ser completada sólo parcialmente. Durante la recuperación, los cambios de registros (tuplas) almacenados en WAL no son suficientes para la recuperación. Esta opción activa la escritura de las páginas a WAL cuando son modificadas por primera vez después de un punto de control, de manera que una recuperación total es posible." +msgstr "Una escritura de página que está siendo procesada durante una caída del sistema operativo puede ser completada sólo parcialmente. Durante la recuperación, los cambios de registros (tuplas) almacenados en WAL no son suficientes para la recuperación. Esta opción activa la escritura de las páginas a WAL cuando son modificadas por primera vez después de un checkpoint, de manera que una recuperación total es posible." -#: utils/misc/guc_tables.c:1168 +#: utils/misc/guc_tables.c:1162 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." -msgstr "Escribir páginas completas al WAL cuando son modificadas después de un punto de control, incluso para una modificación no crítica." +msgstr "Escribir páginas completas al WAL cuando son modificadas después de un checkpoint, incluso para una modificación no crítica." -#: utils/misc/guc_tables.c:1178 +#: utils/misc/guc_tables.c:1172 msgid "Writes zeroes to new WAL files before first use." msgstr "Escribir ceros a nuevos archivos WAL antes del primer uso." -#: utils/misc/guc_tables.c:1188 +#: utils/misc/guc_tables.c:1182 msgid "Recycles WAL files by renaming them." msgstr "Reciclar archivos de WAL cambiándoles de nombre." -#: utils/misc/guc_tables.c:1198 +#: utils/misc/guc_tables.c:1192 msgid "Logs each checkpoint." -msgstr "Registrar cada punto de control." +msgstr "Registrar cada checkpoint." -#: utils/misc/guc_tables.c:1207 +#: utils/misc/guc_tables.c:1201 msgid "Logs each successful connection." msgstr "Registrar cada conexión exitosa." -#: utils/misc/guc_tables.c:1216 +#: utils/misc/guc_tables.c:1210 +msgid "Logs details of pre-authentication connection handshake." +msgstr "Registrar detalles de “handshake” de conexión anteriores a la autentificación." + +#: utils/misc/guc_tables.c:1220 msgid "Logs end of a session, including duration." msgstr "Registrar el fin de una sesión, incluyendo su duración." -#: utils/misc/guc_tables.c:1225 +#: utils/misc/guc_tables.c:1229 msgid "Logs each replication command." msgstr "Registrar cada orden de replicación." -#: utils/misc/guc_tables.c:1234 +#: utils/misc/guc_tables.c:1238 msgid "Shows whether the running server has assertion checks enabled." msgstr "Indica si el servidor actual tiene activas las aseveraciones (asserts) activas." -#: utils/misc/guc_tables.c:1245 +#: utils/misc/guc_tables.c:1249 msgid "Terminate session on any error." msgstr "Terminar sesión ante cualquier error." -#: utils/misc/guc_tables.c:1254 +#: utils/misc/guc_tables.c:1258 msgid "Reinitialize server after backend crash." msgstr "Reinicializar el servidor después de una caída de un proceso servidor." -#: utils/misc/guc_tables.c:1263 +#: utils/misc/guc_tables.c:1267 msgid "Remove temporary files after backend crash." msgstr "Eliminar archivos temporales después de una caída de un proceso servidor." -#: utils/misc/guc_tables.c:1273 +#: utils/misc/guc_tables.c:1277 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." -msgstr "" +msgstr "Enviar SIGABRT en vez de SIGQUIT a procesos hijos después de una caída de un proceso servidor." -#: utils/misc/guc_tables.c:1283 +#: utils/misc/guc_tables.c:1287 msgid "Send SIGABRT not SIGKILL to stuck child processes." -msgstr "" +msgstr "Enviar SIGABRT en vez de SIGKILL a procesos hijos atascados." -#: utils/misc/guc_tables.c:1294 +#: utils/misc/guc_tables.c:1298 msgid "Logs the duration of each completed SQL statement." msgstr "Registrar la duración de cada sentencia SQL ejecutada." -#: utils/misc/guc_tables.c:1303 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's parse tree." msgstr "Registrar cada arbol analizado de consulta " -#: utils/misc/guc_tables.c:1312 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's rewritten parse tree." msgstr "Registrar cada reescritura del arból analizado de consulta" -#: utils/misc/guc_tables.c:1321 +#: utils/misc/guc_tables.c:1325 msgid "Logs each query's execution plan." msgstr "Registrar el plan de ejecución de cada consulta." -#: utils/misc/guc_tables.c:1330 +#: utils/misc/guc_tables.c:1334 msgid "Indents parse and plan tree displays." msgstr "Indentar los árboles de parse y plan." -#: utils/misc/guc_tables.c:1339 +#: utils/misc/guc_tables.c:1343 msgid "Writes parser performance statistics to the server log." msgstr "Escribir estadísticas de parser al registro del servidor." -#: utils/misc/guc_tables.c:1348 +#: utils/misc/guc_tables.c:1352 msgid "Writes planner performance statistics to the server log." msgstr "Escribir estadísticas de planner al registro del servidor." -#: utils/misc/guc_tables.c:1357 +#: utils/misc/guc_tables.c:1361 msgid "Writes executor performance statistics to the server log." msgstr "Escribir estadísticas del executor al registro del servidor." -#: utils/misc/guc_tables.c:1366 +#: utils/misc/guc_tables.c:1370 msgid "Writes cumulative performance statistics to the server log." msgstr "Escribir estadísticas acumulativas al registro del servidor." -#: utils/misc/guc_tables.c:1376 +#: utils/misc/guc_tables.c:1380 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "Registrar uso de recursos de sistema (memoria y CPU) en varias operaciones B-tree." -#: utils/misc/guc_tables.c:1388 +#: utils/misc/guc_tables.c:1392 msgid "Collects information about executing commands." msgstr "Recolectar estadísticas sobre órdenes en ejecución." -#: utils/misc/guc_tables.c:1389 +#: utils/misc/guc_tables.c:1393 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "Activa la recolección de información sobre la orden actualmente en ejecución en cada sesión, junto con el momento en el cual esa orden comenzó la ejecución." -#: utils/misc/guc_tables.c:1399 +#: utils/misc/guc_tables.c:1403 msgid "Collects statistics on database activity." msgstr "Recolectar estadísticas de actividad de la base de datos." -#: utils/misc/guc_tables.c:1408 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for database I/O activity." msgstr "Recolectar estadísticas de tiempos en las operaciones de I/O de la base de datos." -#: utils/misc/guc_tables.c:1417 +#: utils/misc/guc_tables.c:1421 msgid "Collects timing statistics for WAL I/O activity." msgstr "Recolectar estadísticas de tiempos en las operaciones de I/O del WAL." -#: utils/misc/guc_tables.c:1427 +#: utils/misc/guc_tables.c:1431 msgid "Updates the process title to show the active SQL command." msgstr "Actualiza el título del proceso para mostrar la orden SQL activo." -#: utils/misc/guc_tables.c:1428 +#: utils/misc/guc_tables.c:1432 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "Habilita que se actualice el título del proceso cada vez que una orden SQL es recibido por el servidor." -#: utils/misc/guc_tables.c:1437 +#: utils/misc/guc_tables.c:1441 msgid "Starts the autovacuum subprocess." msgstr "Iniciar el subproceso de autovacuum." -#: utils/misc/guc_tables.c:1447 +#: utils/misc/guc_tables.c:1451 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "Generar salida de depuración para LISTEN y NOTIFY." -#: utils/misc/guc_tables.c:1459 +#: utils/misc/guc_tables.c:1463 msgid "Emits information about lock usage." msgstr "Emitir información acerca del uso de locks." -#: utils/misc/guc_tables.c:1469 +#: utils/misc/guc_tables.c:1473 msgid "Emits information about user lock usage." msgstr "Emitir información acerca del uso de locks de usuario." -#: utils/misc/guc_tables.c:1479 +#: utils/misc/guc_tables.c:1483 msgid "Emits information about lightweight lock usage." msgstr "Emitir información acerca del uso de «lightweight locks»." -#: utils/misc/guc_tables.c:1489 +#: utils/misc/guc_tables.c:1493 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "Volcar información acerca de los locks existentes cuando se agota el tiempo de deadlock." -#: utils/misc/guc_tables.c:1501 +#: utils/misc/guc_tables.c:1505 msgid "Logs long lock waits." msgstr "Registrar esperas largas de bloqueos." -#: utils/misc/guc_tables.c:1510 +#: utils/misc/guc_tables.c:1514 msgid "Logs standby recovery conflict waits." msgstr "Registrar esperas por conflictos en recuperación de standby" -#: utils/misc/guc_tables.c:1519 +#: utils/misc/guc_tables.c:1523 msgid "Logs the host name in the connection logs." msgstr "Registrar el nombre del host en la conexión." -#: utils/misc/guc_tables.c:1520 +#: utils/misc/guc_tables.c:1524 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "Por omisión, los registros de conexión sólo muestran la dirección IP del host que establece la conexión. Si desea que se despliegue el nombre del host puede activar esta opción, pero dependiendo de su configuración de resolución de nombres esto puede imponer una penalización de rendimiento no despreciable." -#: utils/misc/guc_tables.c:1531 +#: utils/misc/guc_tables.c:1535 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "Tratar expr=NULL como expr IS NULL." -#: utils/misc/guc_tables.c:1532 +#: utils/misc/guc_tables.c:1536 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "Cuando está activado, expresiones de la forma expr = NULL (o NULL = expr) son tratadas como expr IS NULL, esto es, retornarán verdadero si expr es evaluada al valor nulo, y falso en caso contrario. El comportamiento correcto de expr = NULL es retornar siempre null (desconocido)." -#: utils/misc/guc_tables.c:1544 -msgid "Enables per-database user names." -msgstr "Activar el uso de nombre de usuario locales a cada base de datos." - -#: utils/misc/guc_tables.c:1553 +#: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "Estado por omisión de sólo lectura de nuevas transacciones." -#: utils/misc/guc_tables.c:1563 +#: utils/misc/guc_tables.c:1558 msgid "Sets the current transaction's read-only status." msgstr "Activa el estado de sólo lectura de la transacción en curso." -#: utils/misc/guc_tables.c:1573 +#: utils/misc/guc_tables.c:1568 msgid "Sets the default deferrable status of new transactions." msgstr "Estado por omisión de postergable de nuevas transacciones." -#: utils/misc/guc_tables.c:1582 +#: utils/misc/guc_tables.c:1577 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures." msgstr "Si está activo, las transacciones serializables de sólo lectura serán pausadas hasta que puedan ejecutarse sin posibles fallas de serialización." -#: utils/misc/guc_tables.c:1592 +#: utils/misc/guc_tables.c:1587 msgid "Enable row security." msgstr "Activar seguridad de registros." -#: utils/misc/guc_tables.c:1593 +#: utils/misc/guc_tables.c:1588 msgid "When enabled, row security will be applied to all users." msgstr "Cuando está activada, la seguridad de registros se aplicará a todos los usuarios." -#: utils/misc/guc_tables.c:1601 +#: utils/misc/guc_tables.c:1596 msgid "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE." msgstr "Verificar definición de rutinas durante CREATE FUNCTION y CREATE PROCEDURE." -#: utils/misc/guc_tables.c:1610 +#: utils/misc/guc_tables.c:1605 msgid "Enable input of NULL elements in arrays." msgstr "Habilita el ingreso de elementos nulos en arrays." -#: utils/misc/guc_tables.c:1611 +#: utils/misc/guc_tables.c:1606 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally." msgstr "Cuando está activo, un valor NULL sin comillas en la entrada de un array significa un valor nulo; en caso contrario es tomado literalmente." -#: utils/misc/guc_tables.c:1627 +#: utils/misc/guc_tables.c:1622 msgid "WITH OIDS is no longer supported; this can only be false." msgstr "WITH OIDS ya no está soportado; esto sólo puede ser false." -#: utils/misc/guc_tables.c:1637 -msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." -msgstr "Lanzar un subproceso para capturar stderr y/o logs CSV en archivos de log." +#: utils/misc/guc_tables.c:1632 +#| msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." +msgid "Start a subprocess to capture stderr, csvlog and/or jsonlog into log files." +msgstr "Lanzar un subproceso para capturar stderr, csvlog y/o jsonlog en archivos de log." -#: utils/misc/guc_tables.c:1646 +#: utils/misc/guc_tables.c:1641 msgid "Truncate existing log files of same name during log rotation." msgstr "Truncar archivos de log del mismo nombre durante la rotación." -#: utils/misc/guc_tables.c:1657 +#: utils/misc/guc_tables.c:1652 msgid "Emit information about resource usage in sorting." msgstr "Emitir información acerca de uso de recursos durante los ordenamientos." -#: utils/misc/guc_tables.c:1671 +#: utils/misc/guc_tables.c:1666 msgid "Generate debugging output for synchronized scanning." msgstr "Generar salida de depuración para recorrido sincronizado." -#: utils/misc/guc_tables.c:1686 +#: utils/misc/guc_tables.c:1681 msgid "Enable bounded sorting using heap sort." msgstr "Activar ordenamiento acotado usando «heap sort»." -#: utils/misc/guc_tables.c:1699 +#: utils/misc/guc_tables.c:1694 msgid "Emit WAL-related debugging output." msgstr "Activar salida de depuración de WAL." -#: utils/misc/guc_tables.c:1711 +#: utils/misc/guc_tables.c:1706 msgid "Shows whether datetimes are integer based." msgstr "Mostrar si las fechas y horas se basan en tipos enteros." -#: utils/misc/guc_tables.c:1722 +#: utils/misc/guc_tables.c:1717 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive." msgstr "Define que los nombres de usuario Kerberos y GSSAPI deberían ser tratados sin distinción de mayúsculas." -#: utils/misc/guc_tables.c:1732 -#, fuzzy -#| msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive." +#: utils/misc/guc_tables.c:1727 msgid "Sets whether GSSAPI delegation should be accepted from the client." -msgstr "Define que los nombres de usuario Kerberos y GSSAPI deberían ser tratados sin distinción de mayúsculas." +msgstr "Define si la delegación GSSAPI debería ser aceptada por el cliente." -#: utils/misc/guc_tables.c:1742 +#: utils/misc/guc_tables.c:1737 msgid "Warn about backslash escapes in ordinary string literals." msgstr "Avisa acerca de escapes de backslash en literales de cadena corrientes." -#: utils/misc/guc_tables.c:1752 +#: utils/misc/guc_tables.c:1747 msgid "Causes '...' strings to treat backslashes literally." msgstr "Provoca que las cadenas '...' traten las barras inclinadas inversas (\\) en forma literal." -#: utils/misc/guc_tables.c:1763 +#: utils/misc/guc_tables.c:1758 msgid "Enable synchronized sequential scans." msgstr "Permitir la sincronización de recorridos secuenciales." -#: utils/misc/guc_tables.c:1773 +#: utils/misc/guc_tables.c:1768 msgid "Sets whether to include or exclude transaction with recovery target." msgstr "Define si incluir o excluir la transacción con el destino de recuperación." -#: utils/misc/guc_tables.c:1783 +#: utils/misc/guc_tables.c:1778 +msgid "Starts the WAL summarizer process to enable incremental backup." +msgstr "Inicia el proceso sumarizador de WAL para activar backups incrementales." + +#: utils/misc/guc_tables.c:1788 msgid "Allows connections and queries during recovery." msgstr "Permite conexiones y consultas durante la recuperación." -#: utils/misc/guc_tables.c:1793 +#: utils/misc/guc_tables.c:1798 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "Permite retroalimentación desde un hot standby hacia el primario que evitará conflictos en consultas." -#: utils/misc/guc_tables.c:1803 +#: utils/misc/guc_tables.c:1808 msgid "Shows whether hot standby is currently active." msgstr "Muestra si hot standby está activo actualmente." -#: utils/misc/guc_tables.c:1814 +#: utils/misc/guc_tables.c:1819 msgid "Allows modifications of the structure of system tables." msgstr "Permite modificaciones de la estructura de las tablas del sistema." -#: utils/misc/guc_tables.c:1825 +#: utils/misc/guc_tables.c:1830 msgid "Disables reading from system indexes." msgstr "Deshabilita lectura de índices del sistema." -#: utils/misc/guc_tables.c:1826 +#: utils/misc/guc_tables.c:1831 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "No evita la actualización de índices, así que es seguro. Lo peor que puede ocurrir es lentitud del sistema." -#: utils/misc/guc_tables.c:1837 +#: utils/misc/guc_tables.c:1842 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "Permite tablespaces directamente dentro de pg_tblspc, para pruebas." -#: utils/misc/guc_tables.c:1848 +#: utils/misc/guc_tables.c:1853 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "Activa el modo de compatibilidad con versiones anteriores de las comprobaciones de privilegios de objetos grandes." -#: utils/misc/guc_tables.c:1849 +#: utils/misc/guc_tables.c:1854 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "Omite las comprobaciones de privilegios cuando se leen o modifican los objetos grandes, para compatibilidad con versiones de PostgreSQL anteriores a 9.0." -#: utils/misc/guc_tables.c:1859 +#: utils/misc/guc_tables.c:1864 msgid "When generating SQL fragments, quote all identifiers." msgstr "Al generar fragmentos SQL, entrecomillar todos los identificadores." -#: utils/misc/guc_tables.c:1869 +#: utils/misc/guc_tables.c:1874 msgid "Shows whether data checksums are turned on for this cluster." msgstr "Indica si las sumas de verificación están activas en este cluster." -#: utils/misc/guc_tables.c:1880 +#: utils/misc/guc_tables.c:1885 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "Agregar número de secuencia a mensajes syslog para evitar supresión de duplicados." -#: utils/misc/guc_tables.c:1890 +#: utils/misc/guc_tables.c:1895 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "Dividir mensajes enviados a syslog en líneas y que quepan en 1024 bytes." -#: utils/misc/guc_tables.c:1900 +#: utils/misc/guc_tables.c:1905 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Controla si los Gather y Gather Merge también ejecutan subplanes." -#: utils/misc/guc_tables.c:1901 +#: utils/misc/guc_tables.c:1906 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "¿Deben los nodos de recolección ejecutar subplanes o sólo recolectar tuplas?" -#: utils/misc/guc_tables.c:1911 +#: utils/misc/guc_tables.c:1916 msgid "Allow JIT compilation." msgstr "Permitir compilación JIT." -#: utils/misc/guc_tables.c:1922 +#: utils/misc/guc_tables.c:1927 msgid "Register JIT-compiled functions with debugger." msgstr "Registrar las funciones JIT compiladas con el depurador." -#: utils/misc/guc_tables.c:1939 +#: utils/misc/guc_tables.c:1944 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "Escribe el bitcode LLVM para facilitar depuración de JIT." -#: utils/misc/guc_tables.c:1950 +#: utils/misc/guc_tables.c:1955 msgid "Allow JIT compilation of expressions." msgstr "Permitir compilación JIT de expresiones." -#: utils/misc/guc_tables.c:1961 +#: utils/misc/guc_tables.c:1966 msgid "Register JIT-compiled functions with perf profiler." msgstr "Registrar las funciones JIT compiladas con el analizador «perf»." -#: utils/misc/guc_tables.c:1978 +#: utils/misc/guc_tables.c:1983 msgid "Allow JIT compilation of tuple deforming." msgstr "Permitir compilación JIT de deformación de tuplas." -#: utils/misc/guc_tables.c:1989 +#: utils/misc/guc_tables.c:1994 msgid "Whether to continue running after a failure to sync data files." msgstr "Si continuar ejecutando después de una falla al sincronizar archivos de datos." -#: utils/misc/guc_tables.c:1998 +#: utils/misc/guc_tables.c:2003 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "Definir si un receptor de WAL debe crear un slot de replicación temporal en caso de no haber configurado un slot permanente." -#: utils/misc/guc_tables.c:2016 -#, fuzzy -#| msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." +#: utils/misc/guc_tables.c:2012 +msgid "Enables event triggers." +msgstr "Activa “triggers” por evento." + +#: utils/misc/guc_tables.c:2013 +msgid "When enabled, event triggers will fire for all applicable statements." +msgstr "Cuando se activa, los “triggers” por evento se ejecutarán para todas las sentencias aplicables." + +#: utils/misc/guc_tables.c:2022 +msgid "Enables a physical standby to synchronize logical failover replication slots from the primary server." +msgstr "Habilita un standby físico para sincronizar slots de “failover” de replicación lógica desde el servidor primario." + +#: utils/misc/guc_tables.c:2040 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." -msgstr "Define el tiempo a esperar antes de reintentar obtener WAL después de un intento fallido." +msgstr "Define el tiempo a esperar antes de forzar un cambio al siguiente archivo WAL." -#: utils/misc/guc_tables.c:2027 -#, fuzzy -#| msgid "Sets the maximum time to wait for WAL replication." +#: utils/misc/guc_tables.c:2051 msgid "Sets the amount of time to wait after authentication on connection startup." -msgstr "Define el tiempo máximo a esperar la replicación de WAL." +msgstr "Define el tiempo máximo a esperar la autentificación durante el establecimiento de una conexión." -#: utils/misc/guc_tables.c:2029 utils/misc/guc_tables.c:2663 +#: utils/misc/guc_tables.c:2053 utils/misc/guc_tables.c:2780 msgid "This allows attaching a debugger to the process." msgstr "Esto permite adjuntar un depurador al proceso." -#: utils/misc/guc_tables.c:2038 +#: utils/misc/guc_tables.c:2062 msgid "Sets the default statistics target." msgstr "Definir el valor por omisión de toma de estadísticas." -#: utils/misc/guc_tables.c:2039 +#: utils/misc/guc_tables.c:2063 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "Esto se aplica a columnas de tablas que no tienen un valor definido a través de ALTER TABLE SET STATISTICS." -#: utils/misc/guc_tables.c:2048 +#: utils/misc/guc_tables.c:2072 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "Tamaño de lista de FROM a partir del cual subconsultas no serán colapsadas." -#: utils/misc/guc_tables.c:2050 +#: utils/misc/guc_tables.c:2074 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "El planner mezclará subconsultas en consultas de nivel superior si la lista FROM resultante es menor que esta cantidad de ítems." -#: utils/misc/guc_tables.c:2061 +#: utils/misc/guc_tables.c:2085 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "Tamaño de lista de FROM a partir del cual constructos JOIN no serán aplanados." -#: utils/misc/guc_tables.c:2063 +#: utils/misc/guc_tables.c:2087 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "El planner aplanará constructos JOIN explícitos en listas de ítems FROM siempre que la lista resultante no tenga más que esta cantidad de ítems." -#: utils/misc/guc_tables.c:2074 +#: utils/misc/guc_tables.c:2098 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "Umbral de ítems en FROM a partir del cual se usará GEQO." -#: utils/misc/guc_tables.c:2084 +#: utils/misc/guc_tables.c:2108 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: effort se usa para determinar los valores por defecto para otros parámetros." -#: utils/misc/guc_tables.c:2094 +#: utils/misc/guc_tables.c:2118 msgid "GEQO: number of individuals in the population." msgstr "GEQO: número de individuos en una población." -#: utils/misc/guc_tables.c:2095 utils/misc/guc_tables.c:2105 +#: utils/misc/guc_tables.c:2119 utils/misc/guc_tables.c:2129 msgid "Zero selects a suitable default value." msgstr "Cero selecciona un valor por omisión razonable." -#: utils/misc/guc_tables.c:2104 +#: utils/misc/guc_tables.c:2128 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: número de iteraciones del algoritmo." -#: utils/misc/guc_tables.c:2116 +#: utils/misc/guc_tables.c:2140 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "Define el tiempo a esperar un lock antes de buscar un deadlock." -#: utils/misc/guc_tables.c:2127 +#: utils/misc/guc_tables.c:2151 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "Define el máximo retardo antes de cancelar consultas cuando un servidor hot standby está procesando datos de WAL archivado." -#: utils/misc/guc_tables.c:2138 +#: utils/misc/guc_tables.c:2162 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "Define el máximo retardo antes de cancelar consultas cuando un servidor hot standby está procesando datos de WAL en flujo." -#: utils/misc/guc_tables.c:2149 +#: utils/misc/guc_tables.c:2173 msgid "Sets the minimum delay for applying changes during recovery." msgstr "Define el retraso mínimo para aplicar cambios durante la recuperación." -#: utils/misc/guc_tables.c:2160 +#: utils/misc/guc_tables.c:2184 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "Define el intervalo máximo entre reportes de estado que el receptor de WAL envía al servidor origen." -#: utils/misc/guc_tables.c:2171 +#: utils/misc/guc_tables.c:2195 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "Define el máximo tiempo de espera para recibir datos desde el servidor origen." -#: utils/misc/guc_tables.c:2182 +#: utils/misc/guc_tables.c:2206 msgid "Sets the maximum number of concurrent connections." msgstr "Número máximo de conexiones concurrentes." -#: utils/misc/guc_tables.c:2193 +#: utils/misc/guc_tables.c:2217 msgid "Sets the number of connection slots reserved for superusers." msgstr "Número de conexiones reservadas para superusuarios." -#: utils/misc/guc_tables.c:2203 -#, fuzzy -#| msgid "Sets the number of connection slots reserved for superusers." +#: utils/misc/guc_tables.c:2227 msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." -msgstr "Número de conexiones reservadas para superusuarios." +msgstr "Número de conexiones reservadas para con privilegios de pg_use_reserved_connections." -#: utils/misc/guc_tables.c:2214 +#: utils/misc/guc_tables.c:2238 msgid "Amount of dynamic shared memory reserved at startup." msgstr "Cantidad de memoria compartida dinámica reservada al iniciar." -#: utils/misc/guc_tables.c:2229 +#: utils/misc/guc_tables.c:2253 msgid "Sets the number of shared memory buffers used by the server." msgstr "Número de búfers de memoria compartida usados por el servidor." -#: utils/misc/guc_tables.c:2240 +#: utils/misc/guc_tables.c:2264 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." -msgstr "" +msgstr "Define el tamaño del pool de búfers para VACUUM, ANALYZE y autovacuum." -#: utils/misc/guc_tables.c:2251 +#: utils/misc/guc_tables.c:2275 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "Muestra el tamaño del área principal de memoria compartida del servidor (redondeado al número de MB más cercano)." -#: utils/misc/guc_tables.c:2262 -#, fuzzy -#| msgid "Sets the number of disk-page buffers in shared memory for WAL." +#: utils/misc/guc_tables.c:2286 msgid "Shows the number of huge pages needed for the main shared memory area." -msgstr "Búfers en memoria compartida para páginas de WAL." +msgstr "Muestra la cantidad de “huge pages” necesarias para el área de memoria compartida principal." -#: utils/misc/guc_tables.c:2263 +#: utils/misc/guc_tables.c:2287 msgid "-1 indicates that the value could not be determined." msgstr "-1 indica que el valor no pudo ser determinado." -#: utils/misc/guc_tables.c:2273 +#: utils/misc/guc_tables.c:2297 +msgid "Sets the size of the dedicated buffer pool used for the commit timestamp cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de timestamps de commit." + +#: utils/misc/guc_tables.c:2298 utils/misc/guc_tables.c:2353 +#: utils/misc/guc_tables.c:2364 +msgid "Specify 0 to have this value determined as a fraction of shared_buffers." +msgstr "Especifique 0 para que este valor sea determinado como fracción de shared_buffers." + +#: utils/misc/guc_tables.c:2308 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact member cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de miembros de MultiXact." + +#: utils/misc/guc_tables.c:2319 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact offset cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de offsets de MultiXact." + +#: utils/misc/guc_tables.c:2330 +msgid "Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de mensajes LISTEN/NOTIFY." + +#: utils/misc/guc_tables.c:2341 +msgid "Sets the size of the dedicated buffer pool used for the serializable transaction cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de transacciones serializables." + +#: utils/misc/guc_tables.c:2352 +msgid "Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de subtransacciones." + +#: utils/misc/guc_tables.c:2363 +msgid "Sets the size of the dedicated buffer pool used for the transaction status cache." +msgstr "Define el tamaño del pool de búfers dedicado al caché de estatus de transacciones." + +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "Número de búfers de memoria temporal usados por cada sesión." -#: utils/misc/guc_tables.c:2284 +#: utils/misc/guc_tables.c:2385 msgid "Sets the TCP port the server listens on." msgstr "Puerto TCP en el cual escuchará el servidor." -#: utils/misc/guc_tables.c:2294 +#: utils/misc/guc_tables.c:2395 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Privilegios de acceso al socket Unix." -#: utils/misc/guc_tables.c:2295 +#: utils/misc/guc_tables.c:2396 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Los sockets de dominio Unix usan la funcionalidad de permisos de archivos estándar de Unix. Se espera que el valor de esta opción sea una especificación numérica de modo, en la forma aceptada por las llamadas a sistema chmod y umask. Para usar el modo octal acostumbrado, comience el número con un 0 (cero)." -#: utils/misc/guc_tables.c:2309 +#: utils/misc/guc_tables.c:2410 msgid "Sets the file permissions for log files." msgstr "Define los privilegios para los archivos del registro del servidor." -#: utils/misc/guc_tables.c:2310 +#: utils/misc/guc_tables.c:2411 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Se espera que el valor de esta opción sea una especificación numérica de modo, en la forma aceptada por las llamadas a sistema chmod y umask. Para usar el modo octal acostumbrado, comience el número con un 0 (cero)." -#: utils/misc/guc_tables.c:2324 +#: utils/misc/guc_tables.c:2425 msgid "Shows the mode of the data directory." msgstr "Muestra el modo del directorio de datos." -#: utils/misc/guc_tables.c:2325 +#: utils/misc/guc_tables.c:2426 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "El valor del parámetro es una especificación numérica de modo, en la forma aceptada por las llamadas a sistema chmod y umask. (Para usar el modo octal acostumbrado, comience el número con un 0 (cero).)" -#: utils/misc/guc_tables.c:2338 +#: utils/misc/guc_tables.c:2439 msgid "Sets the maximum memory to be used for query workspaces." msgstr "Establece el límite de memoria que se usará para espacios de trabajo de consultas." -#: utils/misc/guc_tables.c:2339 +#: utils/misc/guc_tables.c:2440 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "Esta es la cantidad máxima de memoria que se usará para operaciones internas de ordenamiento y tablas de hashing, antes de comenzar a usar archivos temporales en disco." -#: utils/misc/guc_tables.c:2351 +#: utils/misc/guc_tables.c:2457 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "Establece el límite de memoria que se usará para operaciones de mantención." -#: utils/misc/guc_tables.c:2352 +#: utils/misc/guc_tables.c:2458 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "Esto incluye operaciones como VACUUM y CREATE INDEX." -#: utils/misc/guc_tables.c:2362 +#: utils/misc/guc_tables.c:2468 msgid "Sets the maximum memory to be used for logical decoding." msgstr "Establece el límite de memoria que se usará para decodificación lógica." -#: utils/misc/guc_tables.c:2363 +#: utils/misc/guc_tables.c:2469 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "Esta es la cantidad máxima de memoria que puede ser usada para cada búfer interno de ordenamiento, antes de comenzar a usar disco." -#: utils/misc/guc_tables.c:2379 +#: utils/misc/guc_tables.c:2485 msgid "Sets the maximum stack depth, in kilobytes." msgstr "Establece el tamaño máximo del stack, en kilobytes." -#: utils/misc/guc_tables.c:2390 +#: utils/misc/guc_tables.c:2496 msgid "Limits the total size of all temporary files used by each process." msgstr "Limita el tamaño total de todos los archivos temporales usados en cada proceso." -#: utils/misc/guc_tables.c:2391 +#: utils/misc/guc_tables.c:2497 msgid "-1 means no limit." msgstr "-1 significa sin límite." -#: utils/misc/guc_tables.c:2401 +#: utils/misc/guc_tables.c:2507 msgid "Vacuum cost for a page found in the buffer cache." msgstr "Costo de Vacuum de una página encontrada en el buffer." -#: utils/misc/guc_tables.c:2411 +#: utils/misc/guc_tables.c:2517 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "Costo de Vacuum de una página no encontrada en el cache." -#: utils/misc/guc_tables.c:2421 +#: utils/misc/guc_tables.c:2527 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "Costo de Vacuum de una página ensuciada por vacuum." -#: utils/misc/guc_tables.c:2431 +#: utils/misc/guc_tables.c:2537 msgid "Vacuum cost amount available before napping." msgstr "Costo de Vacuum disponible antes de descansar." -#: utils/misc/guc_tables.c:2441 +#: utils/misc/guc_tables.c:2547 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "Costo de Vacuum disponible antes de descansar, para autovacuum." -#: utils/misc/guc_tables.c:2451 +#: utils/misc/guc_tables.c:2557 msgid "Sets the maximum number of simultaneously open files for each server process." msgstr "Define la cantidad máxima de archivos abiertos por cada subproceso." -#: utils/misc/guc_tables.c:2464 +#: utils/misc/guc_tables.c:2570 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "Define la cantidad máxima de transacciones preparadas simultáneas." -#: utils/misc/guc_tables.c:2475 +#: utils/misc/guc_tables.c:2581 msgid "Sets the minimum OID of tables for tracking locks." msgstr "Define el OID mínimo para hacer seguimiento de locks." -#: utils/misc/guc_tables.c:2476 +#: utils/misc/guc_tables.c:2582 msgid "Is used to avoid output on system tables." msgstr "Se usa para evitar salida excesiva por tablas de sistema." -#: utils/misc/guc_tables.c:2485 +#: utils/misc/guc_tables.c:2591 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "Define el OID de una tabla con trazado incondicional de locks." -#: utils/misc/guc_tables.c:2497 +#: utils/misc/guc_tables.c:2603 msgid "Sets the maximum allowed duration of any statement." msgstr "Define la duración máxima permitida de sentencias." -#: utils/misc/guc_tables.c:2498 utils/misc/guc_tables.c:2509 -#: utils/misc/guc_tables.c:2520 utils/misc/guc_tables.c:2531 +#: utils/misc/guc_tables.c:2604 utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2626 utils/misc/guc_tables.c:2637 +#: utils/misc/guc_tables.c:2648 msgid "A value of 0 turns off the timeout." msgstr "Un valor de 0 desactiva el máximo." -#: utils/misc/guc_tables.c:2508 +#: utils/misc/guc_tables.c:2614 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "Define la duración máxima permitida de cualquier espera por un lock." -#: utils/misc/guc_tables.c:2519 +#: utils/misc/guc_tables.c:2625 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "Define el tiempo máximo permitido de inactividad entre consultas, cuando están dentro de una transacción." -#: utils/misc/guc_tables.c:2530 +#: utils/misc/guc_tables.c:2636 +msgid "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)." +msgstr "Define la duración máxima permitida cualquier transacción dentro de una sesión (no una transacción preparada)." + +#: utils/misc/guc_tables.c:2647 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "Define el tiempo máximo permitido de inactividad entre consultas, cuando no están dentro de una transacción." -#: utils/misc/guc_tables.c:2541 +#: utils/misc/guc_tables.c:2658 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "Mínima edad a la cual VACUUM debería congelar (freeze) una fila de una tabla." -#: utils/misc/guc_tables.c:2551 +#: utils/misc/guc_tables.c:2668 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "Edad a la cual VACUUM debería recorrer una tabla completa para congelar (freeze) las filas." -#: utils/misc/guc_tables.c:2561 +#: utils/misc/guc_tables.c:2678 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "Mínima edad a la cual VACUUM debería congelar (freeze) el multixact en una fila." -#: utils/misc/guc_tables.c:2571 +#: utils/misc/guc_tables.c:2688 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "Edad de multixact a la cual VACUUM debería recorrer una tabla completa para congelar (freeze) las filas." -#: utils/misc/guc_tables.c:2581 +#: utils/misc/guc_tables.c:2698 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." -msgstr "Edad a la cual VACUUM debería activar el modo failsafe para evitar pérdida de servicio por reciclaje (wraparound)." +msgstr "Edad a la cual VACUUM debería activar el modo failsafe para evitar pérdida de servicio por ”wraparound”." -#: utils/misc/guc_tables.c:2590 +#: utils/misc/guc_tables.c:2707 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." -msgstr "Edad de multixact a la cual VACUUM debería activar el modo failsafe para evitar pérdida de servicio por reciclaje (wraparound)." +msgstr "Edad de multixact a la cual VACUUM debería activar el modo failsafe para evitar pérdida de servicio por “wraparound”." -#: utils/misc/guc_tables.c:2603 +#: utils/misc/guc_tables.c:2720 msgid "Sets the maximum number of locks per transaction." -msgstr "Cantidad máxima de candados (locks) por transacción." +msgstr "Cantidad máxima de “locks” por transacción." -#: utils/misc/guc_tables.c:2604 -msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "" +#: utils/misc/guc_tables.c:2721 +msgid "The shared lock table is sized on the assumption that at most \"max_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "La tabla compartida de “locks” se dimensiona bajo la suposoción que a lo más «max_locks_per_transaction» objetos por cada proceso servidor o transacción preparada necesitarán ser bloqueados en un momento dado." -#: utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2732 msgid "Sets the maximum number of predicate locks per transaction." -msgstr "Cantidad máxima de candados (locks) de predicado por transacción." +msgstr "Cantidad máxima de “locks” de predicado por transacción." -#: utils/misc/guc_tables.c:2616 -msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "" +#: utils/misc/guc_tables.c:2733 +msgid "The shared predicate lock table is sized on the assumption that at most \"max_pred_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "La tabla compartida de “locks” de predicados se dimensiona bajo la suposición de que a lo más «max_pred_locks_per_transaction» objetos por cada proceso servidor o transacción preparada necesitarán ser bloqueados en un momento dado." -#: utils/misc/guc_tables.c:2627 +#: utils/misc/guc_tables.c:2744 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "Cantidad máxima de páginas y tuplas bloqueadas por predicado." -#: utils/misc/guc_tables.c:2628 +#: utils/misc/guc_tables.c:2745 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "Si más que este total de páginas y tuplas en la misma relación están bloqueadas por una conexión, esos locks son reemplazados por un lock a nivel de relación." -#: utils/misc/guc_tables.c:2638 +#: utils/misc/guc_tables.c:2755 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "Cantidad máxima de locks de predicado por página." -#: utils/misc/guc_tables.c:2639 +#: utils/misc/guc_tables.c:2756 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "Si más que este número de tuplas de la misma página están bloqueadas por una conexión, esos locks son reemplazados por un lock a nivel de página." -#: utils/misc/guc_tables.c:2649 +#: utils/misc/guc_tables.c:2766 msgid "Sets the maximum allowed time to complete client authentication." msgstr "Define el tiempo máximo para completar proceso de autentificación." -#: utils/misc/guc_tables.c:2661 -#, fuzzy -#| msgid "Sets the maximum time to wait for WAL replication." +#: utils/misc/guc_tables.c:2778 msgid "Sets the amount of time to wait before authentication on connection startup." -msgstr "Define el tiempo máximo a esperar la replicación de WAL." +msgstr "Define el tiempo máximo a esperar antes de la autentificación al abrir una conexión." -#: utils/misc/guc_tables.c:2673 +#: utils/misc/guc_tables.c:2790 +msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." +msgstr "Cantidad máxima de páginas dedicadas a la cola de NOTIFY / LISTEN." + +#: utils/misc/guc_tables.c:2800 msgid "Buffer size for reading ahead in the WAL during recovery." -msgstr "" +msgstr "Tamaño de búfer para lectura adelantada de WAL durante la recuperación." -#: utils/misc/guc_tables.c:2674 +#: utils/misc/guc_tables.c:2801 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." -msgstr "" +msgstr "Máxima distancia que leer adelantado en el WAL para pre-cargar bloques de datos referenciados." -#: utils/misc/guc_tables.c:2684 +#: utils/misc/guc_tables.c:2811 msgid "Sets the size of WAL files held for standby servers." msgstr "Establece el tamaño de los archivos de WAL retenidos para los servidores standby." -#: utils/misc/guc_tables.c:2695 +#: utils/misc/guc_tables.c:2822 msgid "Sets the minimum size to shrink the WAL to." msgstr "Define el tamaño mínimo al cual reducir el WAL." -#: utils/misc/guc_tables.c:2707 +#: utils/misc/guc_tables.c:2834 msgid "Sets the WAL size that triggers a checkpoint." msgstr "Define el tamaño de WAL que desencadena un checkpoint." -#: utils/misc/guc_tables.c:2719 +#: utils/misc/guc_tables.c:2846 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "Define el tiempo máximo entre puntos de control de WAL automáticos." -#: utils/misc/guc_tables.c:2730 +#: utils/misc/guc_tables.c:2857 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "Define el máximo tiempo antes de emitir un advertencia si los checkpoints iniciados a causa del volumen de WAL ocurren con demasiada frecuencia." -#: utils/misc/guc_tables.c:2732 +#: utils/misc/guc_tables.c:2859 msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." -msgstr "" +msgstr "Escribe una advertencia al log del servidor si los checkpoints causados por el llenado de segmentos de WAL occur más frecuentemente que esta cantidad de tiempo. Cero inhabilita la advertencia." -#: utils/misc/guc_tables.c:2745 utils/misc/guc_tables.c:2963 -#: utils/misc/guc_tables.c:3003 +#: utils/misc/guc_tables.c:2872 utils/misc/guc_tables.c:3090 +#: utils/misc/guc_tables.c:3144 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "Número de páginas después del cual las escrituras previamente ejecutadas se sincronizan a disco." -#: utils/misc/guc_tables.c:2756 +#: utils/misc/guc_tables.c:2883 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "Búfers en memoria compartida para páginas de WAL." -#: utils/misc/guc_tables.c:2767 +#: utils/misc/guc_tables.c:2884 +msgid "Specify -1 to have this value determined as a fraction of shared_buffers." +msgstr "Especifique -1 para que este valor sea determinado como fracción de shared_buffers." + +#: utils/misc/guc_tables.c:2894 msgid "Time between WAL flushes performed in the WAL writer." msgstr "Tiempo entre sincronizaciones de WAL ejecutadas por el proceso escritor de WAL." -#: utils/misc/guc_tables.c:2778 +#: utils/misc/guc_tables.c:2905 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "Cantidad de WAL escrito por el proceso escritor de WAL que desencadena una sincronización (flush)." -#: utils/misc/guc_tables.c:2789 +#: utils/misc/guc_tables.c:2916 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "Tamaño mínimo del nuevo archivo para hacer fsync en lugar de escribir WAL." -#: utils/misc/guc_tables.c:2800 +#: utils/misc/guc_tables.c:2927 msgid "Sets the maximum number of simultaneously running WAL sender processes." -msgstr "Define la cantidad máxima de procesos «WAL sender» simultáneos." +msgstr "Define la cantidad máxima de procesos “WAL sender” simultáneos." -#: utils/misc/guc_tables.c:2811 +#: utils/misc/guc_tables.c:2938 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "Define la cantidad máxima de slots de replicación definidos simultáneamente." -#: utils/misc/guc_tables.c:2821 +#: utils/misc/guc_tables.c:2948 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "Define el tamaño máximo de WAL que puede ser reservado por slots de replicación." -#: utils/misc/guc_tables.c:2822 +#: utils/misc/guc_tables.c:2949 msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." msgstr "Los slots de replicación serán invalidados, y los segmentos de WAL eliminados o reciclados, si se usa esta cantidad de espacio de disco en WAL." -#: utils/misc/guc_tables.c:2834 +#: utils/misc/guc_tables.c:2961 msgid "Sets the maximum time to wait for WAL replication." msgstr "Define el tiempo máximo a esperar la replicación de WAL." -#: utils/misc/guc_tables.c:2845 +#: utils/misc/guc_tables.c:2972 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "Retardo en microsegundos entre completar una transacción y escribir WAL a disco." -#: utils/misc/guc_tables.c:2857 -#, fuzzy -#| msgid "Sets the maximum number of concurrent connections." -msgid "Sets the minimum number of concurrent open transactions required before performing commit_delay." -msgstr "Número máximo de conexiones concurrentes." +#: utils/misc/guc_tables.c:2984 +msgid "Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"." +msgstr "Número mínimo de transacciones abiertas concurrentes antes de efectuar «commit_delay»." -#: utils/misc/guc_tables.c:2868 +#: utils/misc/guc_tables.c:2995 msgid "Sets the number of digits displayed for floating-point values." msgstr "Ajustar el número de dígitos mostrados para valores de coma flotante." -#: utils/misc/guc_tables.c:2869 +#: utils/misc/guc_tables.c:2996 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "Esto afecta los tipos real, de doble precisión, y geométricos. Un valor del parámetro cero o negativo se agrega a la cantidad estándar de dígitos (FLT_DIG o DBL_DIG, según sea apropiado). Cualquier valor mayor que cero selecciona el modo de salida preciso." -#: utils/misc/guc_tables.c:2881 +#: utils/misc/guc_tables.c:3008 msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." msgstr "Establece el tiempo mínimo de ejecución a partir del cual se registra una muestra de la sentencia. El muestreo es determinado por log_statement_sample_rate." -#: utils/misc/guc_tables.c:2884 +#: utils/misc/guc_tables.c:3011 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "Cero registra una muestra de todas las consultas. -1 desactiva esta funcionalidad." -#: utils/misc/guc_tables.c:2894 +#: utils/misc/guc_tables.c:3021 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "Establece el tiempo mínimo de ejecución a partir del cual se registran todas las sentencias." -#: utils/misc/guc_tables.c:2896 +#: utils/misc/guc_tables.c:3023 msgid "Zero prints all queries. -1 turns this feature off." msgstr "Cero imprime todas las consultas. -1 desactiva esta funcionalidad." -#: utils/misc/guc_tables.c:2906 +#: utils/misc/guc_tables.c:3033 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "Tiempo mínimo de ejecución a partir del cual se registran las acciones de autovacuum." -#: utils/misc/guc_tables.c:2908 +#: utils/misc/guc_tables.c:3035 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "Cero registra todas las acciones. -1 desactiva el registro de autovacuum." -#: utils/misc/guc_tables.c:2918 +#: utils/misc/guc_tables.c:3045 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "Define el largo máximo en bytes de valores de parámetros «bind» enviados al log al registrar sentencias." -#: utils/misc/guc_tables.c:2920 utils/misc/guc_tables.c:2932 +#: utils/misc/guc_tables.c:3047 utils/misc/guc_tables.c:3059 msgid "-1 to print values in full." msgstr "-1 para mostrar los valores completos." -#: utils/misc/guc_tables.c:2930 +#: utils/misc/guc_tables.c:3057 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "Define el largo máximo en bytes de valores de parámetros «bind» enviados al log, en caso de error." -#: utils/misc/guc_tables.c:2942 +#: utils/misc/guc_tables.c:3069 msgid "Background writer sleep time between rounds." msgstr "Tiempo de descanso entre rondas del background writer" -#: utils/misc/guc_tables.c:2953 +#: utils/misc/guc_tables.c:3080 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "Número máximo de páginas LRU a escribir en cada ronda del background writer" -#: utils/misc/guc_tables.c:2976 +#: utils/misc/guc_tables.c:3103 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "Cantidad máxima de peticiones simultáneas que pueden ser manejadas eficientemente por el sistema de disco." -#: utils/misc/guc_tables.c:2990 -msgid "A variant of effective_io_concurrency that is used for maintenance work." -msgstr "Una variante de effective_io_concurrency que se usa para tareas de mantención." +#: utils/misc/guc_tables.c:3117 +msgid "A variant of \"effective_io_concurrency\" that is used for maintenance work." +msgstr "Una variante de «effective_io_concurrency» que se usa para tareas de mantención." -#: utils/misc/guc_tables.c:3016 +#: utils/misc/guc_tables.c:3132 +msgid "Limit on the size of data reads and writes." +msgstr "Límite del tamaño de lecturas y escrituras de datos." + +#: utils/misc/guc_tables.c:3157 msgid "Maximum number of concurrent worker processes." msgstr "Número máximo de procesos ayudantes concurrentes." -#: utils/misc/guc_tables.c:3028 +#: utils/misc/guc_tables.c:3169 msgid "Maximum number of logical replication worker processes." msgstr "Número máximo de procesos ayudantes de replicación lógica." -#: utils/misc/guc_tables.c:3040 +#: utils/misc/guc_tables.c:3181 msgid "Maximum number of table synchronization workers per subscription." msgstr "Número máximo de procesos ayudantes de sincronización por suscripción." -#: utils/misc/guc_tables.c:3052 -#, fuzzy -#| msgid "Maximum number of table synchronization workers per subscription." +#: utils/misc/guc_tables.c:3193 msgid "Maximum number of parallel apply workers per subscription." -msgstr "Número máximo de procesos ayudantes de sincronización por suscripción." +msgstr "Número máximo de procesos ayudantes de “apply” por suscripción." -#: utils/misc/guc_tables.c:3062 -#, fuzzy -#| msgid "Sets the maximum time to wait for WAL replication." +#: utils/misc/guc_tables.c:3203 msgid "Sets the amount of time to wait before forcing log file rotation." -msgstr "Define el tiempo máximo a esperar la replicación de WAL." +msgstr "Define el tiempo a esperar antes de forzar la rotación del archivo de registro del servidor." -#: utils/misc/guc_tables.c:3074 -#, fuzzy -#| msgid "Sets the maximum WAL size that can be reserved by replication slots." +#: utils/misc/guc_tables.c:3215 msgid "Sets the maximum size a log file can reach before being rotated." -msgstr "Define el tamaño máximo de WAL que puede ser reservado por slots de replicación." +msgstr "Define el tamaño máximo que un archivo de registro del servidor puede alcanzar antes de ser rotado." -#: utils/misc/guc_tables.c:3086 +#: utils/misc/guc_tables.c:3227 msgid "Shows the maximum number of function arguments." msgstr "Muestra la cantidad máxima de argumentos de funciones." -#: utils/misc/guc_tables.c:3097 +#: utils/misc/guc_tables.c:3238 msgid "Shows the maximum number of index keys." msgstr "Muestra la cantidad máxima de claves de índices." -#: utils/misc/guc_tables.c:3108 +#: utils/misc/guc_tables.c:3249 msgid "Shows the maximum identifier length." msgstr "Muestra el largo máximo de identificadores." -#: utils/misc/guc_tables.c:3119 +#: utils/misc/guc_tables.c:3260 msgid "Shows the size of a disk block." msgstr "Muestra el tamaño de un bloque de disco." -#: utils/misc/guc_tables.c:3130 +#: utils/misc/guc_tables.c:3271 msgid "Shows the number of pages per disk file." msgstr "Muestra el número de páginas por archivo en disco." -#: utils/misc/guc_tables.c:3141 +#: utils/misc/guc_tables.c:3282 msgid "Shows the block size in the write ahead log." msgstr "Muestra el tamaño de bloque en el write-ahead log." -#: utils/misc/guc_tables.c:3152 +#: utils/misc/guc_tables.c:3293 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "Define el tiempo a esperar antes de reintentar obtener WAL después de un intento fallido." -#: utils/misc/guc_tables.c:3164 +#: utils/misc/guc_tables.c:3305 msgid "Shows the size of write ahead log segments." msgstr "Muestra el tamaño de los segmentos de WAL." -#: utils/misc/guc_tables.c:3177 +#: utils/misc/guc_tables.c:3318 +msgid "Time for which WAL summary files should be kept." +msgstr "Período durante el cual se deberían conservar los archivos de sumarización de WAL." + +#: utils/misc/guc_tables.c:3331 msgid "Time to sleep between autovacuum runs." msgstr "Tiempo de descanso entre ejecuciones de autovacuum." -#: utils/misc/guc_tables.c:3187 +#: utils/misc/guc_tables.c:3341 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "Número mínimo de updates o deletes antes de ejecutar vacuum." -#: utils/misc/guc_tables.c:3196 +#: utils/misc/guc_tables.c:3350 msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." msgstr "Número mínimo de inserciones de tuplas antes de ejecutar vacuum, o -1 para desactivar vacuums por inserciones." -#: utils/misc/guc_tables.c:3205 +#: utils/misc/guc_tables.c:3359 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "Número mínimo de inserciones, actualizaciones y eliminaciones de tuplas antes de ejecutar analyze." -#: utils/misc/guc_tables.c:3215 +#: utils/misc/guc_tables.c:3369 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." -msgstr "Edad a la cual aplicar VACUUM automáticamente a una tabla para prevenir problemas por reciclaje de ID de transacción." +msgstr "Edad a la cual aplicar VACUUM automáticamente a una tabla para prevenir problemas por “wraparound” de ID de transacción." -#: utils/misc/guc_tables.c:3227 +#: utils/misc/guc_tables.c:3381 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." -msgstr "Edad de multixact a la cual aplicar VACUUM automáticamente a una tabla para prevenir problemas por reciclaje de ID de multixacts." +msgstr "Edad de multixact a la cual aplicar VACUUM automáticamente a una tabla para prevenir problemas por “wraparound” de ID de multixacts." -#: utils/misc/guc_tables.c:3237 +#: utils/misc/guc_tables.c:3391 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "Define la cantidad máxima de procesos «autovacuum worker» simultáneos." -#: utils/misc/guc_tables.c:3247 +#: utils/misc/guc_tables.c:3401 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "Cantidad máxima de procesos ayudantes paralelos por operación de mantención." -#: utils/misc/guc_tables.c:3257 +#: utils/misc/guc_tables.c:3411 msgid "Sets the maximum number of parallel processes per executor node." msgstr "Cantidad máxima de locks de predicado por nodo de ejecución." -#: utils/misc/guc_tables.c:3268 +#: utils/misc/guc_tables.c:3422 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "Define la cantidad máxima de procesos ayudantes que pueden estar activos en un momento dado." -#: utils/misc/guc_tables.c:3279 +#: utils/misc/guc_tables.c:3433 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "Establece el límite de memoria que cada proceso «autovacuum worker» usará." -#: utils/misc/guc_tables.c:3290 -msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken." -msgstr "Tiempo antes de que un snapshot sea demasiado antiguo para leer páginas después de que el snapshot fue tomado." - -#: utils/misc/guc_tables.c:3291 -msgid "A value of -1 disables this feature." -msgstr "El valor -1 desactiva esta característica." - -#: utils/misc/guc_tables.c:3301 +#: utils/misc/guc_tables.c:3444 msgid "Time between issuing TCP keepalives." msgstr "Tiempo entre cada emisión de TCP keepalive." -#: utils/misc/guc_tables.c:3302 utils/misc/guc_tables.c:3313 -#: utils/misc/guc_tables.c:3437 +#: utils/misc/guc_tables.c:3445 utils/misc/guc_tables.c:3456 +#: utils/misc/guc_tables.c:3580 msgid "A value of 0 uses the system default." msgstr "Un valor 0 usa el valor por omisión del sistema." -#: utils/misc/guc_tables.c:3312 +#: utils/misc/guc_tables.c:3455 msgid "Time between TCP keepalive retransmits." msgstr "Tiempo entre retransmisiones TCP keepalive." -#: utils/misc/guc_tables.c:3323 +#: utils/misc/guc_tables.c:3466 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "La renegociación SSL ya no está soportada; esto sólo puede ser 0." -#: utils/misc/guc_tables.c:3334 +#: utils/misc/guc_tables.c:3477 msgid "Maximum number of TCP keepalive retransmits." msgstr "Cantidad máxima de retransmisiones TCP keepalive." -#: utils/misc/guc_tables.c:3335 +#: utils/misc/guc_tables.c:3478 msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." -msgstr "" +msgstr "Número de retransmisiones consecutivas de keepalive que pueden ser perdidas antes que una conexión se considere muerta. Cero usa el valor por omisión del sistema." -#: utils/misc/guc_tables.c:3346 +#: utils/misc/guc_tables.c:3489 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "Define el máximo de resultados permitidos por búsquedas exactas con GIN." -#: utils/misc/guc_tables.c:3357 +#: utils/misc/guc_tables.c:3500 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "Define la suposición del optimizador sobre el tamaño total de los caches de datos." -#: utils/misc/guc_tables.c:3358 +#: utils/misc/guc_tables.c:3501 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "Esto es, el tamaño total de caches (cache del kernel y búfers compartidos) usados por archivos de datos de PostgreSQL. Esto se mide en páginas de disco, que normalmente son de 8 kB cada una." -#: utils/misc/guc_tables.c:3369 +#: utils/misc/guc_tables.c:3512 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "Define la cantidad mínima de datos en una tabla para un recorrido paralelo." -#: utils/misc/guc_tables.c:3370 +#: utils/misc/guc_tables.c:3513 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "Si el planificador estima que leerá un número de páginas de tabla demasiado pequeñas para alcanzar este límite, no se considerará una búsqueda paralela." -#: utils/misc/guc_tables.c:3380 +#: utils/misc/guc_tables.c:3523 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "Define la cantidad mínima de datos en un índice para un recorrido paralelo." -#: utils/misc/guc_tables.c:3381 +#: utils/misc/guc_tables.c:3524 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "Si el planificador estima que leerá un número de páginas de índice demasiado pequeñas para alcanzar este límite, no se considerará una búsqueda paralela." -#: utils/misc/guc_tables.c:3392 +#: utils/misc/guc_tables.c:3535 msgid "Shows the server version as an integer." msgstr "Muestra la versión del servidor como un número entero." -#: utils/misc/guc_tables.c:3403 +#: utils/misc/guc_tables.c:3546 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "Registra el uso de archivos temporales que crezcan más allá de este número de kilobytes." -#: utils/misc/guc_tables.c:3404 +#: utils/misc/guc_tables.c:3547 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "Cero registra todos los archivos. El valor por omisión es -1 (lo cual desactiva el registro)." -#: utils/misc/guc_tables.c:3414 +#: utils/misc/guc_tables.c:3557 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "Tamaño reservado para pg_stat_activity.query, en bytes." -#: utils/misc/guc_tables.c:3425 +#: utils/misc/guc_tables.c:3568 msgid "Sets the maximum size of the pending list for GIN index." msgstr "Define el tamaño máximo de la lista de pendientes de un índice GIN." -#: utils/misc/guc_tables.c:3436 +#: utils/misc/guc_tables.c:3579 msgid "TCP user timeout." msgstr "Tiempo de expiración de TCP." -#: utils/misc/guc_tables.c:3447 +#: utils/misc/guc_tables.c:3590 msgid "The size of huge page that should be requested." msgstr "El tamaño de huge page que se debería solicitar." -#: utils/misc/guc_tables.c:3458 +#: utils/misc/guc_tables.c:3601 msgid "Aggressively flush system caches for debugging purposes." msgstr "Escribir cachés de sistema de forma agresiva para propósitos de depuración." -#: utils/misc/guc_tables.c:3481 +#: utils/misc/guc_tables.c:3624 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "Establece el intervalo entre revisiones de desconexión mientras se ejecutan consultas." -#: utils/misc/guc_tables.c:3492 +#: utils/misc/guc_tables.c:3635 msgid "Time between progress updates for long-running startup operations." msgstr "Tiempo a esperar entre actualizaciones para operaciones largas durante el inicio." -#: utils/misc/guc_tables.c:3494 -#, fuzzy -#| msgid "Zero prints all queries. -1 turns this feature off." +#: utils/misc/guc_tables.c:3637 msgid "0 turns this feature off." -msgstr "Cero imprime todas las consultas. -1 desactiva esta funcionalidad." +msgstr "Cero desactiva esta característica." -#: utils/misc/guc_tables.c:3504 -#, fuzzy -#| msgid "Sets the seed for random-number generation." +#: utils/misc/guc_tables.c:3647 msgid "Sets the iteration count for SCRAM secret generation." -msgstr "Semilla para la generación de números aleatorios." +msgstr "Define la cantidad de iteraciones para generación de secretos SCRAM." -#: utils/misc/guc_tables.c:3524 +#: utils/misc/guc_tables.c:3667 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "Estimación del costo de una página leída secuencialmente." -#: utils/misc/guc_tables.c:3535 +#: utils/misc/guc_tables.c:3678 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "Estimación del costo de una página leída no secuencialmente." -#: utils/misc/guc_tables.c:3546 +#: utils/misc/guc_tables.c:3689 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "Estimación del costo de procesar cada tupla (fila)." -#: utils/misc/guc_tables.c:3557 +#: utils/misc/guc_tables.c:3700 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "Estimación del costo de procesar cada fila de índice durante un recorrido de índice." -#: utils/misc/guc_tables.c:3568 +#: utils/misc/guc_tables.c:3711 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "Estimación del costo de procesar cada operador o llamada a función." -#: utils/misc/guc_tables.c:3579 +#: utils/misc/guc_tables.c:3722 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "Estimación del costo de pasar cada tupla (fila) desde un proceso ayudante al proceso servidor principal." -#: utils/misc/guc_tables.c:3590 +#: utils/misc/guc_tables.c:3733 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "Estimación del costo de lanzar procesos ayudantes para consultas en paralelo." -#: utils/misc/guc_tables.c:3602 +#: utils/misc/guc_tables.c:3745 msgid "Perform JIT compilation if query is more expensive." msgstr "Ejecutar compilación JIT si la consulta es más cara." -#: utils/misc/guc_tables.c:3603 +#: utils/misc/guc_tables.c:3746 msgid "-1 disables JIT compilation." msgstr "-1 inhabilita compilación JIT." -#: utils/misc/guc_tables.c:3613 +#: utils/misc/guc_tables.c:3756 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "Optimizar funciones compiladas en tiempo de ejecución (JIT) si la consulta es más cara." -#: utils/misc/guc_tables.c:3614 +#: utils/misc/guc_tables.c:3757 msgid "-1 disables optimization." msgstr "-1 inhabilita la optimización." -#: utils/misc/guc_tables.c:3624 +#: utils/misc/guc_tables.c:3767 msgid "Perform JIT inlining if query is more expensive." msgstr "Ejecutar «inlining» JIT si la consulta es más cara." -#: utils/misc/guc_tables.c:3625 +#: utils/misc/guc_tables.c:3768 msgid "-1 disables inlining." msgstr "-1 inhabilita el «inlining»." -#: utils/misc/guc_tables.c:3635 +#: utils/misc/guc_tables.c:3778 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "Estimación de la fracción de filas de un cursor que serán extraídas." -#: utils/misc/guc_tables.c:3647 -#, fuzzy -#| msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." +#: utils/misc/guc_tables.c:3790 msgid "Sets the planner's estimate of the average size of a recursive query's working table." -msgstr "Estimación de la fracción de filas de un cursor que serán extraídas." +msgstr "Estimación del tamaño promedio de la tabla de trabajo de una consulta recursiva." -#: utils/misc/guc_tables.c:3659 +#: utils/misc/guc_tables.c:3802 msgid "GEQO: selective pressure within the population." msgstr "GEQO: presión selectiva dentro de la población." -#: utils/misc/guc_tables.c:3670 +#: utils/misc/guc_tables.c:3813 msgid "GEQO: seed for random path selection." msgstr "GEQO: semilla para la selección aleatoria de caminos." -#: utils/misc/guc_tables.c:3681 -msgid "Multiple of work_mem to use for hash tables." -msgstr "Múltiplo de work_mem para el uso de tablas de hash." +#: utils/misc/guc_tables.c:3824 +msgid "Multiple of \"work_mem\" to use for hash tables." +msgstr "Múltiplo de «work_mem» para el uso de tablas de hash." -#: utils/misc/guc_tables.c:3692 +#: utils/misc/guc_tables.c:3835 msgid "Multiple of the average buffer usage to free per round." msgstr "Múltiplo del uso promedio de búfers que liberar en cada ronda." -#: utils/misc/guc_tables.c:3702 +#: utils/misc/guc_tables.c:3845 msgid "Sets the seed for random-number generation." msgstr "Semilla para la generación de números aleatorios." -#: utils/misc/guc_tables.c:3713 +#: utils/misc/guc_tables.c:3856 msgid "Vacuum cost delay in milliseconds." msgstr "Tiempo de descanso de vacuum en milisegundos." -#: utils/misc/guc_tables.c:3724 +#: utils/misc/guc_tables.c:3867 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "Tiempo de descanso de vacuum en milisegundos, para autovacuum." -#: utils/misc/guc_tables.c:3735 +#: utils/misc/guc_tables.c:3878 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "Número de updates o deletes de tuplas antes de ejecutar un vacuum, como fracción de reltuples." -#: utils/misc/guc_tables.c:3745 +#: utils/misc/guc_tables.c:3888 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "Número de inserts de tuplas antes de ejecutar un vacuum, como fracción de reltuples." -#: utils/misc/guc_tables.c:3755 +#: utils/misc/guc_tables.c:3898 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "Número mínimo de inserciones, actualizaciones y eliminaciones de tuplas antes de ejecutar analyze, como fracción de reltuples." -#: utils/misc/guc_tables.c:3765 +#: utils/misc/guc_tables.c:3908 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." -msgstr "Tiempo utilizado en escribir páginas «sucias» durante los puntos de control, medido como fracción del intervalo del punto de control." +msgstr "Tiempo utilizado en escribir páginas «sucias» durante los puntos de control, medido como fracción del intervalo del checkpoint." -#: utils/misc/guc_tables.c:3775 -msgid "Fraction of statements exceeding log_min_duration_sample to be logged." -msgstr "Fracción de sentencias que duren más de log_min_duration_sample a ser registradas." +#: utils/misc/guc_tables.c:3918 +msgid "Fraction of statements exceeding \"log_min_duration_sample\" to be logged." +msgstr "Fracción de sentencias que duren más de «log_min_duration_sample» a ser registradas." -#: utils/misc/guc_tables.c:3776 +#: utils/misc/guc_tables.c:3919 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "Use un valor entre 0.0 (no registrar nunca) y 1.0 (registrar siempre)." -#: utils/misc/guc_tables.c:3785 +#: utils/misc/guc_tables.c:3928 msgid "Sets the fraction of transactions from which to log all statements." msgstr "Define la fracción de transacciones desde la cual registrar en el log todas las sentencias." -#: utils/misc/guc_tables.c:3786 +#: utils/misc/guc_tables.c:3929 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "Use un valor entre 0.0 (nunca registrar) y 1.0 (registrar todas las sentencias de todas las transacciones)." -#: utils/misc/guc_tables.c:3805 +#: utils/misc/guc_tables.c:3948 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "Orden de shell que se invocará para archivar un archivo WAL." -#: utils/misc/guc_tables.c:3806 +#: utils/misc/guc_tables.c:3949 msgid "This is used only if \"archive_library\" is not set." msgstr "Esto sólo se utiliza si «archive_library» no está definido." -#: utils/misc/guc_tables.c:3815 -#, fuzzy -#| msgid "Sets the shell command that will be called to archive a WAL file." +#: utils/misc/guc_tables.c:3958 msgid "Sets the library that will be called to archive a WAL file." -msgstr "Orden de shell que se invocará para archivar un archivo WAL." +msgstr "Biblioteca que se invocará para archivar un archivo WAL." -#: utils/misc/guc_tables.c:3816 +#: utils/misc/guc_tables.c:3959 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "Una cadena vacía indica que «archive_command» debería usarse." -#: utils/misc/guc_tables.c:3825 +#: utils/misc/guc_tables.c:3968 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "Orden de shell que se invocará para recuperar un archivo WAL archivado." -#: utils/misc/guc_tables.c:3835 +#: utils/misc/guc_tables.c:3978 msgid "Sets the shell command that will be executed at every restart point." msgstr "Orden de shell que se invocará en cada «restart point»." -#: utils/misc/guc_tables.c:3845 +#: utils/misc/guc_tables.c:3988 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "Orden de shell que se invocará una vez al terminar la recuperación." -#: utils/misc/guc_tables.c:3855 +#: utils/misc/guc_tables.c:3998 msgid "Specifies the timeline to recover into." msgstr "Especifica la línea de tiempo a la cual recuperar." -#: utils/misc/guc_tables.c:3865 +#: utils/misc/guc_tables.c:4008 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "Defina a «immediate» para terminar la recuperación en cuando se alcance el estado consistente." -#: utils/misc/guc_tables.c:3874 +#: utils/misc/guc_tables.c:4017 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "Define el ID de transacción hasta el cual se ejecutará la recuperación." -#: utils/misc/guc_tables.c:3883 +#: utils/misc/guc_tables.c:4026 msgid "Sets the time stamp up to which recovery will proceed." msgstr "Define la marca de tiempo hasta la cual se ejecutará la recuperación." -#: utils/misc/guc_tables.c:3892 +#: utils/misc/guc_tables.c:4035 msgid "Sets the named restore point up to which recovery will proceed." msgstr "Define el nombre del punto de restauración hasta el cual se ejecutará la recuperación." -#: utils/misc/guc_tables.c:3901 +#: utils/misc/guc_tables.c:4044 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "Define el LSN de la ubicación de WAL hasta la cual se ejecutará la recuperación." -#: utils/misc/guc_tables.c:3911 +#: utils/misc/guc_tables.c:4054 msgid "Sets the connection string to be used to connect to the sending server." msgstr "Define la cadena de conexión que se usará para conectarse al servidor de origen." -#: utils/misc/guc_tables.c:3922 +#: utils/misc/guc_tables.c:4065 msgid "Sets the name of the replication slot to use on the sending server." msgstr "Define el nombre del slot de replicación a utilizar en el servidor de origen." -#: utils/misc/guc_tables.c:3932 +#: utils/misc/guc_tables.c:4075 msgid "Sets the client's character set encoding." msgstr "Codificación del juego de caracteres del cliente." -#: utils/misc/guc_tables.c:3943 +#: utils/misc/guc_tables.c:4086 msgid "Controls information prefixed to each log line." msgstr "Controla el prefijo que antecede cada línea registrada." -#: utils/misc/guc_tables.c:3944 +#: utils/misc/guc_tables.c:4087 msgid "If blank, no prefix is used." msgstr "si está en blanco, no se usa prefijo." -#: utils/misc/guc_tables.c:3953 +#: utils/misc/guc_tables.c:4096 msgid "Sets the time zone to use in log messages." msgstr "Define el huso horario usando en los mensajes registrados." -#: utils/misc/guc_tables.c:3963 +#: utils/misc/guc_tables.c:4106 msgid "Sets the display format for date and time values." msgstr "Formato de salida para valores de horas y fechas." -#: utils/misc/guc_tables.c:3964 +#: utils/misc/guc_tables.c:4107 msgid "Also controls interpretation of ambiguous date inputs." msgstr "También controla la interpretación de entradas ambiguas de fechas" -#: utils/misc/guc_tables.c:3975 +#: utils/misc/guc_tables.c:4118 msgid "Sets the default table access method for new tables." msgstr "Define el método de acceso a tablas por omisión para nuevas tablas." -#: utils/misc/guc_tables.c:3986 +#: utils/misc/guc_tables.c:4129 msgid "Sets the default tablespace to create tables and indexes in." msgstr "Define el tablespace en el cual crear tablas e índices." -#: utils/misc/guc_tables.c:3987 +#: utils/misc/guc_tables.c:4130 msgid "An empty string selects the database's default tablespace." msgstr "Una cadena vacía especifica el tablespace por omisión de la base de datos." -#: utils/misc/guc_tables.c:3997 +#: utils/misc/guc_tables.c:4140 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "Define el/los tablespace/s en el cual crear tablas temporales y archivos de ordenamiento." -#: utils/misc/guc_tables.c:4008 +#: utils/misc/guc_tables.c:4151 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." -msgstr "" +msgstr "define si un rol con CREATEROLE automáticamente se otorga ese rol a si mismo, y con qué opciones." -#: utils/misc/guc_tables.c:4020 +#: utils/misc/guc_tables.c:4163 msgid "Sets the path for dynamically loadable modules." msgstr "Ruta para módulos dinámicos." -#: utils/misc/guc_tables.c:4021 +#: utils/misc/guc_tables.c:4164 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "Si se necesita abrir un módulo dinámico y el nombre especificado no tiene un componente de directorio (es decir, no contiene un slash), el sistema buscará el archivo especificado en esta ruta." -#: utils/misc/guc_tables.c:4034 +#: utils/misc/guc_tables.c:4177 msgid "Sets the location of the Kerberos server key file." msgstr "Ubicación del archivo de llave del servidor Kerberos." -#: utils/misc/guc_tables.c:4045 +#: utils/misc/guc_tables.c:4188 msgid "Sets the Bonjour service name." msgstr "Nombre del servicio Bonjour." -#: utils/misc/guc_tables.c:4057 -msgid "Shows the collation order locale." -msgstr "Configuración regional de ordenamiento de cadenas (collation)." - -#: utils/misc/guc_tables.c:4068 -msgid "Shows the character classification and case conversion locale." -msgstr "Configuración regional de clasificación de caracteres y conversión de mayúsculas." - -#: utils/misc/guc_tables.c:4079 +#: utils/misc/guc_tables.c:4198 msgid "Sets the language in which messages are displayed." msgstr "Idioma en el que se despliegan los mensajes." -#: utils/misc/guc_tables.c:4089 +#: utils/misc/guc_tables.c:4208 msgid "Sets the locale for formatting monetary amounts." msgstr "Configuración regional para formatos de moneda." -#: utils/misc/guc_tables.c:4099 +#: utils/misc/guc_tables.c:4218 msgid "Sets the locale for formatting numbers." msgstr "Configuración regional para formatos de números." -#: utils/misc/guc_tables.c:4109 +#: utils/misc/guc_tables.c:4228 msgid "Sets the locale for formatting date and time values." msgstr "Configuración regional para formatos de horas y fechas." -#: utils/misc/guc_tables.c:4119 +#: utils/misc/guc_tables.c:4238 msgid "Lists shared libraries to preload into each backend." msgstr "Bibliotecas compartidas a precargar en cada proceso." -#: utils/misc/guc_tables.c:4130 +#: utils/misc/guc_tables.c:4249 msgid "Lists shared libraries to preload into server." msgstr "Bibliotecas compartidas a precargar en el servidor." -#: utils/misc/guc_tables.c:4141 +#: utils/misc/guc_tables.c:4260 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "Bibliotecas compartidas no privilegiadas a precargar en cada proceso." -#: utils/misc/guc_tables.c:4152 +#: utils/misc/guc_tables.c:4271 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "Orden de búsqueda en schemas para nombres que no especifican schema." -#: utils/misc/guc_tables.c:4164 +#: utils/misc/guc_tables.c:4283 msgid "Shows the server (database) character set encoding." msgstr "Muestra la codificación de caracteres del servidor (base de datos)." -#: utils/misc/guc_tables.c:4176 +#: utils/misc/guc_tables.c:4295 msgid "Shows the server version." msgstr "Versión del servidor." -#: utils/misc/guc_tables.c:4188 +#: utils/misc/guc_tables.c:4307 msgid "Sets the current role." msgstr "Define el rol actual." -#: utils/misc/guc_tables.c:4200 +#: utils/misc/guc_tables.c:4319 msgid "Sets the session user name." msgstr "Define el nombre del usuario de sesión." -#: utils/misc/guc_tables.c:4211 +#: utils/misc/guc_tables.c:4330 msgid "Sets the destination for server log output." msgstr "Define el destino de la salida del registro del servidor." -#: utils/misc/guc_tables.c:4212 +#: utils/misc/guc_tables.c:4331 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." -msgstr "" +msgstr "Son aceptables combinaciones de «stderr», «syslog», «csvlog», «jsonlog» y «eventlog», dependendiendo de la plataforma." -#: utils/misc/guc_tables.c:4223 +#: utils/misc/guc_tables.c:4342 msgid "Sets the destination directory for log files." msgstr "Define el directorio de destino de los archivos del registro del servidor." -#: utils/misc/guc_tables.c:4224 +#: utils/misc/guc_tables.c:4343 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "Puede ser una ruta relativa al directorio de datos o una ruta absoluta." -#: utils/misc/guc_tables.c:4234 +#: utils/misc/guc_tables.c:4353 msgid "Sets the file name pattern for log files." msgstr "Define el patrón para los nombres de archivo del registro del servidor." -#: utils/misc/guc_tables.c:4245 +#: utils/misc/guc_tables.c:4364 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Nombre de programa para identificar PostgreSQL en mensajes de syslog." -#: utils/misc/guc_tables.c:4256 +#: utils/misc/guc_tables.c:4375 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "Nombre de programa para identificar PostgreSQL en mensajes del log de eventos." -#: utils/misc/guc_tables.c:4267 +#: utils/misc/guc_tables.c:4386 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "Huso horario para desplegar e interpretar valores de tiempo." -#: utils/misc/guc_tables.c:4277 +#: utils/misc/guc_tables.c:4396 msgid "Selects a file of time zone abbreviations." msgstr "Selecciona un archivo de abreviaciones de huso horario." -#: utils/misc/guc_tables.c:4287 +#: utils/misc/guc_tables.c:4406 msgid "Sets the owning group of the Unix-domain socket." msgstr "Grupo dueño del socket de dominio Unix." -#: utils/misc/guc_tables.c:4288 +#: utils/misc/guc_tables.c:4407 msgid "The owning user of the socket is always the user that starts the server." msgstr "El usuario dueño del socket siempre es el usuario que inicia el servidor." -#: utils/misc/guc_tables.c:4298 +#: utils/misc/guc_tables.c:4417 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Directorios donde se crearán los sockets de dominio Unix." -#: utils/misc/guc_tables.c:4309 +#: utils/misc/guc_tables.c:4428 msgid "Sets the host name or IP address(es) to listen to." msgstr "Define el nombre de anfitrión o dirección IP en la cual escuchar." -#: utils/misc/guc_tables.c:4324 +#: utils/misc/guc_tables.c:4443 msgid "Sets the server's data directory." msgstr "Define la ubicación del directorio de datos." -#: utils/misc/guc_tables.c:4335 +#: utils/misc/guc_tables.c:4454 msgid "Sets the server's main configuration file." msgstr "Define la ubicación del archivo principal de configuración del servidor." -#: utils/misc/guc_tables.c:4346 +#: utils/misc/guc_tables.c:4465 msgid "Sets the server's \"hba\" configuration file." msgstr "Define la ubicación del archivo de configuración «hba» del servidor." -#: utils/misc/guc_tables.c:4357 +#: utils/misc/guc_tables.c:4476 msgid "Sets the server's \"ident\" configuration file." msgstr "Define la ubicación del archivo de configuración «ident» del servidor." -#: utils/misc/guc_tables.c:4368 +#: utils/misc/guc_tables.c:4487 msgid "Writes the postmaster PID to the specified file." msgstr "Registra el PID de postmaster en el archivo especificado." -#: utils/misc/guc_tables.c:4379 +#: utils/misc/guc_tables.c:4498 msgid "Shows the name of the SSL library." msgstr "Muestra el nombre de la biblioteca SSL." -#: utils/misc/guc_tables.c:4394 +#: utils/misc/guc_tables.c:4513 msgid "Location of the SSL server certificate file." msgstr "Ubicación del archivo de certificado SSL del servidor." -#: utils/misc/guc_tables.c:4404 +#: utils/misc/guc_tables.c:4523 msgid "Location of the SSL server private key file." msgstr "Ubicación del archivo de la llave SSL privada del servidor." -#: utils/misc/guc_tables.c:4414 +#: utils/misc/guc_tables.c:4533 msgid "Location of the SSL certificate authority file." msgstr "Ubicación del archivo de autoridad certificadora SSL." -#: utils/misc/guc_tables.c:4424 +#: utils/misc/guc_tables.c:4543 msgid "Location of the SSL certificate revocation list file." msgstr "Ubicación del archivo de lista de revocación de certificados SSL" -#: utils/misc/guc_tables.c:4434 +#: utils/misc/guc_tables.c:4553 msgid "Location of the SSL certificate revocation list directory." msgstr "Ubicación del directorio de lista de revocación de certificados SSL" -#: utils/misc/guc_tables.c:4444 +#: utils/misc/guc_tables.c:4563 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "Número de standbys sincrónicos y lista de nombres de los potenciales sincrónicos." -#: utils/misc/guc_tables.c:4455 +#: utils/misc/guc_tables.c:4574 msgid "Sets default text search configuration." msgstr "Define la configuración de búsqueda en texto por omisión." -#: utils/misc/guc_tables.c:4465 +#: utils/misc/guc_tables.c:4584 msgid "Sets the list of allowed SSL ciphers." msgstr "Define la lista de cifrados SSL permitidos." -#: utils/misc/guc_tables.c:4480 +#: utils/misc/guc_tables.c:4599 msgid "Sets the curve to use for ECDH." msgstr "Define la curva a usar para ECDH." -#: utils/misc/guc_tables.c:4495 +#: utils/misc/guc_tables.c:4614 msgid "Location of the SSL DH parameters file." msgstr "Ubicación del archivo de parámetros DH para SSL." -#: utils/misc/guc_tables.c:4506 +#: utils/misc/guc_tables.c:4625 msgid "Command to obtain passphrases for SSL." msgstr "Orden para obtener frases clave para SSL." -#: utils/misc/guc_tables.c:4517 +#: utils/misc/guc_tables.c:4636 msgid "Sets the application name to be reported in statistics and logs." msgstr "Define el nombre de aplicación a reportarse en estadísticas y logs." -#: utils/misc/guc_tables.c:4528 +#: utils/misc/guc_tables.c:4647 msgid "Sets the name of the cluster, which is included in the process title." msgstr "Define el nombre del clúster, el cual se incluye en el título de proceso." -#: utils/misc/guc_tables.c:4539 +#: utils/misc/guc_tables.c:4658 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "Define los gestores de recursos WAL para los cuales hacer verificaciones de consistencia WAL." -#: utils/misc/guc_tables.c:4540 +#: utils/misc/guc_tables.c:4659 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "Se registrarán imágenes de página completa para todos los bloques de datos, y comparados con los resultados de la aplicación de WAL." -#: utils/misc/guc_tables.c:4550 +#: utils/misc/guc_tables.c:4669 msgid "JIT provider to use." msgstr "Proveedor JIT a usar." -#: utils/misc/guc_tables.c:4561 +#: utils/misc/guc_tables.c:4680 msgid "Log backtrace for errors in these functions." msgstr "Registrar el backtrace para errores que se produzcan en estas funciones." -#: utils/misc/guc_tables.c:4572 +#: utils/misc/guc_tables.c:4691 msgid "Use direct I/O for file access." -msgstr "" +msgstr "Usar I/O directo para accesos a archivos." + +#: utils/misc/guc_tables.c:4702 +msgid "Lists streaming replication standby server replication slot names that logical WAL sender processes will wait for." +msgstr "Lista los nombres de slots de replicación de servidores standby a los que los procesos “WAL sender” esperarán." + +#: utils/misc/guc_tables.c:4704 +msgid "Logical WAL sender processes will send decoded changes to output plugins only after the specified replication slots have confirmed receiving WAL." +msgstr "Los procesos “WAL sender” lógicos enviarán cambios decodificados a los “plugins” de salida sólo después de que los slots de replicación especificados han confirmado recibir el WAL." + +#: utils/misc/guc_tables.c:4716 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "Prohibir acceso a las relaciones no de sistema de los tipos especificados." -#: utils/misc/guc_tables.c:4592 +#: utils/misc/guc_tables.c:4736 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "Define si «\\'» está permitido en literales de cadena." -#: utils/misc/guc_tables.c:4602 +#: utils/misc/guc_tables.c:4746 msgid "Sets the output format for bytea." msgstr "Formato de salida para bytea." -#: utils/misc/guc_tables.c:4612 +#: utils/misc/guc_tables.c:4756 msgid "Sets the message levels that are sent to the client." msgstr "Nivel de mensajes enviados al cliente." -#: utils/misc/guc_tables.c:4613 utils/misc/guc_tables.c:4709 -#: utils/misc/guc_tables.c:4720 utils/misc/guc_tables.c:4792 +#: utils/misc/guc_tables.c:4757 utils/misc/guc_tables.c:4853 +#: utils/misc/guc_tables.c:4864 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "Cada nivel incluye todos los niveles que lo siguen. Mientras más posterior el nivel, menos mensajes se enviarán." -#: utils/misc/guc_tables.c:4623 +#: utils/misc/guc_tables.c:4767 msgid "Enables in-core computation of query identifiers." -msgstr "" +msgstr "Habilita el cálculo de identificadores de consulta." -#: utils/misc/guc_tables.c:4633 +#: utils/misc/guc_tables.c:4777 msgid "Enables the planner to use constraints to optimize queries." msgstr "Permitir el uso de restricciones para limitar los accesos a tablas." -#: utils/misc/guc_tables.c:4634 +#: utils/misc/guc_tables.c:4778 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "Las tablas no serán recorridas si sus restricciones garantizan que ninguna fila coincidirá con la consulta." -#: utils/misc/guc_tables.c:4645 +#: utils/misc/guc_tables.c:4789 msgid "Sets the default compression method for compressible values." msgstr "Define el método de compresión por omisión para valores comprimibles." -#: utils/misc/guc_tables.c:4656 +#: utils/misc/guc_tables.c:4800 msgid "Sets the transaction isolation level of each new transaction." msgstr "Nivel de aislación (isolation level) de transacciones nuevas." -#: utils/misc/guc_tables.c:4666 +#: utils/misc/guc_tables.c:4810 msgid "Sets the current transaction's isolation level." msgstr "Define el nivel de aislación de la transacción en curso." -#: utils/misc/guc_tables.c:4677 +#: utils/misc/guc_tables.c:4821 msgid "Sets the display format for interval values." msgstr "Formato de salida para valores de intervalos." -#: utils/misc/guc_tables.c:4688 +#: utils/misc/guc_tables.c:4832 msgid "Log level for reporting invalid ICU locale strings." -msgstr "" +msgstr "Nivel de log a usar para reportar cadenas de configuración ICU no válidas." -#: utils/misc/guc_tables.c:4698 +#: utils/misc/guc_tables.c:4842 msgid "Sets the verbosity of logged messages." msgstr "Verbosidad de los mensajes registrados." -#: utils/misc/guc_tables.c:4708 +#: utils/misc/guc_tables.c:4852 msgid "Sets the message levels that are logged." msgstr "Nivel de mensajes registrados." -#: utils/misc/guc_tables.c:4719 +#: utils/misc/guc_tables.c:4863 msgid "Causes all statements generating error at or above this level to be logged." msgstr "Registrar sentencias que generan error de nivel superior o igual a éste." -#: utils/misc/guc_tables.c:4730 +#: utils/misc/guc_tables.c:4874 msgid "Sets the type of statements logged." msgstr "Define el tipo de sentencias que se registran." -#: utils/misc/guc_tables.c:4740 +#: utils/misc/guc_tables.c:4884 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "«Facility» de syslog que se usará cuando syslog esté habilitado." -#: utils/misc/guc_tables.c:4751 +#: utils/misc/guc_tables.c:4895 msgid "Sets the session's behavior for triggers and rewrite rules." -msgstr "Define el comportamiento de la sesión con respecto a disparadores y reglas de reescritura." +msgstr "Define el comportamiento de la sesión con respecto a “triggers” y reglas de reescritura." -#: utils/misc/guc_tables.c:4761 +#: utils/misc/guc_tables.c:4905 msgid "Sets the current transaction's synchronization level." msgstr "Define el nivel de sincronización de la transacción en curso." -#: utils/misc/guc_tables.c:4771 -msgid "Allows archiving of WAL files using archive_command." -msgstr "Permite el archivado de WAL usando archive_command." +#: utils/misc/guc_tables.c:4915 +msgid "Allows archiving of WAL files using \"archive_command\"." +msgstr "Permite el archivado de WAL usando «archive_command»." -#: utils/misc/guc_tables.c:4781 +#: utils/misc/guc_tables.c:4925 msgid "Sets the action to perform upon reaching the recovery target." msgstr "Acción a ejecutar al alcanzar el destino de recuperación." -#: utils/misc/guc_tables.c:4791 -msgid "Enables logging of recovery-related debugging information." -msgstr "Recolectar información de depuración relacionada con la recuperación." - -#: utils/misc/guc_tables.c:4808 +#: utils/misc/guc_tables.c:4935 msgid "Collects function-level statistics on database activity." msgstr "Recolectar estadísticas de actividad de funciones en la base de datos." -#: utils/misc/guc_tables.c:4819 -#, fuzzy -#| msgid "Sets the default statistics target." +#: utils/misc/guc_tables.c:4946 msgid "Sets the consistency of accesses to statistics data." -msgstr "Definir el valor por omisión de toma de estadísticas." +msgstr "Definir la consistencia de accesos a los datos de estadísticas." -#: utils/misc/guc_tables.c:4829 +#: utils/misc/guc_tables.c:4956 msgid "Compresses full-page writes written in WAL file with specified method." -msgstr "" +msgstr "Comprime las páginas completas escritas a WAL (FPI) con el método especificado." -#: utils/misc/guc_tables.c:4839 +#: utils/misc/guc_tables.c:4966 msgid "Sets the level of information written to the WAL." msgstr "Establece el nivel de información escrita al WAL." -#: utils/misc/guc_tables.c:4849 +#: utils/misc/guc_tables.c:4976 msgid "Selects the dynamic shared memory implementation used." msgstr "Escoge la implementación de memoria compartida dinámica que se usará." -#: utils/misc/guc_tables.c:4859 +#: utils/misc/guc_tables.c:4986 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "Escoge la implementación de memoria compartida dinámica que se usará para la región principal de memoria compartida." -#: utils/misc/guc_tables.c:4869 +#: utils/misc/guc_tables.c:4996 msgid "Selects the method used for forcing WAL updates to disk." msgstr "Selecciona el método usado para forzar escritura de WAL a disco." -#: utils/misc/guc_tables.c:4879 +#: utils/misc/guc_tables.c:5006 msgid "Sets how binary values are to be encoded in XML." msgstr "Define cómo se codificarán los valores binarios en XML." -#: utils/misc/guc_tables.c:4889 +#: utils/misc/guc_tables.c:5016 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "Define si los datos XML implícitos en operaciones de análisis y serialización serán considerados documentos o fragmentos de contenido." -#: utils/misc/guc_tables.c:4900 +#: utils/misc/guc_tables.c:5027 msgid "Use of huge pages on Linux or Windows." msgstr "Usar páginas grandes (huge) en Linux o Windows." -#: utils/misc/guc_tables.c:4910 -#, fuzzy -#| msgid "cannot execute %s during recovery" +#: utils/misc/guc_tables.c:5037 +msgid "Indicates the status of huge pages." +msgstr "Indica el estado de las “huge pages”." + +#: utils/misc/guc_tables.c:5048 msgid "Prefetch referenced blocks during recovery." -msgstr "no se puede ejecutar %s durante la recuperación" +msgstr "Pre-cargar bloques referenciados durante la recuperación." -#: utils/misc/guc_tables.c:4911 +#: utils/misc/guc_tables.c:5049 msgid "Look ahead in the WAL to find references to uncached data." msgstr "Busca adelantadamente en el WAL para encontrar referencias a datos que no están en cache." -#: utils/misc/guc_tables.c:4920 -#, fuzzy -#| msgid "Enables the planner's use of parallel append plans." +#: utils/misc/guc_tables.c:5058 msgid "Forces the planner's use parallel query nodes." -msgstr "Permitir el uso de planes «append» paralelos." +msgstr "Fuerza al optimizador a usar planes paralelos." -#: utils/misc/guc_tables.c:4921 -msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans which contains nodes which perform tuple communication between workers and the main process." -msgstr "" +#: utils/misc/guc_tables.c:5059 +msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." +msgstr "Esto puede usarse para verificar la infrastructura de consultas paralelas forzando al optimizar a generar planes que contienen nodos que utilizan la comunicación entre procesos hijos y el principal." -#: utils/misc/guc_tables.c:4933 +#: utils/misc/guc_tables.c:5071 msgid "Chooses the algorithm for encrypting passwords." msgstr "Escoge el algoritmo para cifrar contraseñas." -#: utils/misc/guc_tables.c:4943 +#: utils/misc/guc_tables.c:5081 msgid "Controls the planner's selection of custom or generic plan." msgstr "Controla la selección del optimizador de planes genéricos o «custom»." -#: utils/misc/guc_tables.c:4944 +#: utils/misc/guc_tables.c:5082 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "Las sentencias preparadas pueden tener planes genéricos y «custom», y el optimizador intentará escoger cuál es mejor. Esto puede usarse para controlar manualmente el comportamiento." -#: utils/misc/guc_tables.c:4956 +#: utils/misc/guc_tables.c:5094 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "Define la versión mínima del protocolo SSL/TLS a usar." -#: utils/misc/guc_tables.c:4968 +#: utils/misc/guc_tables.c:5106 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "Define la versión máxima del protocolo SSL/TLS a usar." -#: utils/misc/guc_tables.c:4980 +#: utils/misc/guc_tables.c:5118 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "Establece el método para sincronizar el directorio de datos antes de la recuperación ante una caída." -#: utils/misc/guc_tables.c:4989 -msgid "Controls when to replicate or apply each change." -msgstr "" +#: utils/misc/guc_tables.c:5127 +msgid "Forces immediate streaming or serialization of changes in large transactions." +msgstr "Fuerza el flujo o serialización inmediatos de los cambios en transacciones grandes." -#: utils/misc/guc_tables.c:4990 +#: utils/misc/guc_tables.c:5128 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." -msgstr "" +msgstr "En el publicador, permite serializar o transmitir en flujo cada cambio en la decodificación lógica. En el suscriptor, permite la serialización de todos los cambios a archivos y notifica a los procesos paralelos de “apply” para leerlos y aplicarlos al término de la transacción." #: utils/misc/help_config.c:129 #, c-format msgid "internal error: unrecognized run-time parameter type\n" msgstr "error interno: tipo parámetro no reconocido\n" -#: utils/misc/pg_controldata.c:48 utils/misc/pg_controldata.c:86 -#: utils/misc/pg_controldata.c:175 utils/misc/pg_controldata.c:214 +#: utils/misc/pg_controldata.c:50 utils/misc/pg_controldata.c:90 +#: utils/misc/pg_controldata.c:181 utils/misc/pg_controldata.c:222 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "la suma de verificación calculada no coincide con el valor almacenado en el archivo" @@ -29476,145 +30320,143 @@ msgstr "la consulta sería afectada por la política de seguridad de registros p msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." msgstr "Para desactivar la política para el dueño de la tabla, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." -#: utils/misc/timeout.c:524 +#: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" msgstr "no se pueden agregar más razones de timeout" -#: utils/misc/tzparser.c:60 +#: utils/misc/tzparser.c:61 #, c-format msgid "time zone abbreviation \"%s\" is too long (maximum %d characters) in time zone file \"%s\", line %d" msgstr "la abreviación del huso horario «%s» es demasiado larga (máximo %d caracteres) en archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:72 +#: utils/misc/tzparser.c:73 #, c-format msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "desplazamiento de huso horario %d está fuera de rango en el archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:111 +#: utils/misc/tzparser.c:112 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "falta una abreviación de huso horario en el archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:120 +#: utils/misc/tzparser.c:121 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "falta un desplazamiento de huso horario en el archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:132 +#: utils/misc/tzparser.c:133 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "número no válido para desplazamiento de huso horario en archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:168 +#: utils/misc/tzparser.c:169 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "sintaxis no válida en archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:236 +#: utils/misc/tzparser.c:237 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "abreviación de huso horario «%s» está definida múltiples veces" -#: utils/misc/tzparser.c:238 +#: utils/misc/tzparser.c:239 #, c-format msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d." msgstr "Entrada en archivo de huso horario «%s», línea %d, causa conflictos con entrada en archivo «%s», línea %d." -#: utils/misc/tzparser.c:300 +#: utils/misc/tzparser.c:301 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "nombre de huso horario «%s» no válido" -#: utils/misc/tzparser.c:313 +#: utils/misc/tzparser.c:314 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "límite de recursión excedido en el archivo «%s»" -#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365 +#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "no se pudo leer archivo de huso horario «%s»: %m" -#: utils/misc/tzparser.c:376 +#: utils/misc/tzparser.c:377 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "línea demasiado larga en archivo de huso horario «%s», línea %d" -#: utils/misc/tzparser.c:400 +#: utils/misc/tzparser.c:401 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "@INCLUDE sin nombre de archivo en archivo de huso horario «%s», línea %d" -#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 +#: utils/mmgr/aset.c:452 utils/mmgr/bump.c:184 utils/mmgr/generation.c:216 +#: utils/mmgr/slab.c:371 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "Falla al crear el contexto de memoria «%s»." -#: utils/mmgr/dsa.c:531 utils/mmgr/dsa.c:1341 +#: utils/mmgr/dsa.c:523 utils/mmgr/dsa.c:1364 #, c-format msgid "could not attach to dynamic shared area" msgstr "no se pudo adjuntar al segmento de memoria compartida dinámica" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1155 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Falló una petición de tamaño %zu en el contexto de memoria «%s»." -#: utils/mmgr/mcxt.c:1210 +#: utils/mmgr/mcxt.c:1299 #, c-format msgid "logging memory contexts of PID %d" msgstr "registrando contextos de memoria del PID %d" -#: utils/mmgr/portalmem.c:188 +#: utils/mmgr/portalmem.c:187 #, c-format msgid "cursor \"%s\" already exists" msgstr "el cursor «%s» ya existe" -#: utils/mmgr/portalmem.c:192 +#: utils/mmgr/portalmem.c:191 #, c-format msgid "closing existing cursor \"%s\"" msgstr "cerrando el cursor «%s» preexistente" -#: utils/mmgr/portalmem.c:402 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "el portal «%s» no puede ser ejecutado" -#: utils/mmgr/portalmem.c:480 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "no se puede eliminar el portal «pinned» «%s»" -#: utils/mmgr/portalmem.c:488 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "no se puede eliminar el portal activo «%s»" -#: utils/mmgr/portalmem.c:739 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "no se puede hacer PREPARE de una transacción que ha creado un cursor WITH HOLD" -#: utils/mmgr/portalmem.c:1230 +#: utils/mmgr/portalmem.c:1232 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "no se pueden ejecutar órdenes de transacción dentro de un bucle de cursor que no es de sólo lectura" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %ld of temporary file" -msgstr "no se pudo posicionar (seek) en el bloque %ld del archivo temporal" +msgid "could not seek to block %lld of temporary file" +msgstr "no se pudo posicionar (seek) en el bloque %lld del archivo temporal" -#: utils/sort/sharedtuplestore.c:467 +#: utils/sort/sharedtuplestore.c:466 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "trozo inesperado en archivo temporal del tuplestore compartido" -#: utils/sort/sharedtuplestore.c:549 +#: utils/sort/sharedtuplestore.c:548 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "no se pudo posicionar (seek) en el bloque %u en el archivo temporal del tuplestore compartido" @@ -29624,17 +30466,17 @@ msgstr "no se pudo posicionar (seek) en el bloque %u en el archivo temporal del msgid "cannot have more than %d runs for an external sort" msgstr "no se pueden tener más de %d pasadas para un ordenamiento externo" -#: utils/sort/tuplesortvariants.c:1364 +#: utils/sort/tuplesortvariants.c:1552 #, c-format msgid "could not create unique index \"%s\"" msgstr "no se pudo crear el índice único «%s»" -#: utils/sort/tuplesortvariants.c:1366 +#: utils/sort/tuplesortvariants.c:1554 #, c-format msgid "Key %s is duplicated." msgstr "La llave %s está duplicada." -#: utils/sort/tuplesortvariants.c:1367 +#: utils/sort/tuplesortvariants.c:1555 #, c-format msgid "Duplicate keys exist." msgstr "Existe una llave duplicada." @@ -29648,412 +30490,426 @@ msgstr "Existe una llave duplicada." msgid "could not seek in tuplestore temporary file" msgstr "no se pudo posicionar (seek) en el archivo temporal del tuplestore" -#: utils/time/snapmgr.c:571 +#: utils/time/snapmgr.c:536 #, c-format msgid "The source transaction is not running anymore." msgstr "La transacción de origen ya no está en ejecución." -#: utils/time/snapmgr.c:1166 +#: utils/time/snapmgr.c:1136 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "no se puede exportar snapshots desde una subtransacción" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 +#: utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 +#: utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 +#: utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 +#: utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "datos no válidos en archivo de snapshot «%s»" -#: utils/time/snapmgr.c:1422 +#: utils/time/snapmgr.c:1393 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT debe ser llamado antes de cualquier consulta" -#: utils/time/snapmgr.c:1431 +#: utils/time/snapmgr.c:1402 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "una transacción que importa un snapshot no debe tener nivel de aislación SERIALIZABLE o REPEATABLE READ" -#: utils/time/snapmgr.c:1440 utils/time/snapmgr.c:1449 +#: utils/time/snapmgr.c:1411 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "identificador de snapshot no válido: «%s»" -#: utils/time/snapmgr.c:1541 +#: utils/time/snapmgr.c:1426 +#, c-format +msgid "snapshot \"%s\" does not exist" +msgstr "no existe el snapshot «%s»" + +#: utils/time/snapmgr.c:1524 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "una transacción serializable no puede importar un snapshot desde una transacción no serializable" -#: utils/time/snapmgr.c:1545 +#: utils/time/snapmgr.c:1528 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "una transacción serializable que no es de sólo lectura no puede importar un snapshot de una transacción de sólo lectura" -#: utils/time/snapmgr.c:1560 +#: utils/time/snapmgr.c:1543 #, c-format msgid "cannot import a snapshot from a different database" msgstr "no se puede importar un snapshot desde una base de datos diferente" -#: gram.y:1200 +#: gram.y:1231 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD ya no está soportado" -#: gram.y:1201 +#: gram.y:1232 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "Quite UNENCRYPTED para almacenar la contraseña en su lugar en forma cifrada." -#: gram.y:1528 gram.y:1544 +#: gram.y:1559 gram.y:1575 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTS no puede incluir elementos de esquema" -#: gram.y:1696 +#: gram.y:1727 #, c-format msgid "current database cannot be changed" msgstr "no se puede cambiar la base de datos activa" -#: gram.y:1829 +#: gram.y:1860 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "el intervalo de huso horario debe ser HOUR o HOUR TO MINUTE" -#: gram.y:2446 +#: gram.y:2487 #, c-format msgid "column number must be in range from 1 to %d" msgstr "el número de columna debe estar en el rango de 1 a %d" -#: gram.y:3042 +#: gram.y:3083 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "la opción de secuencia «%s» no está soportada aquí" -#: gram.y:3071 +#: gram.y:3122 #, c-format msgid "modulus for hash partition provided more than once" msgstr "el módulo para partición de hash fue especificado más de una vez" -#: gram.y:3080 +#: gram.y:3131 #, c-format msgid "remainder for hash partition provided more than once" msgstr "el remanente para partición de hash fue especificado más de una vez" -#: gram.y:3087 +#: gram.y:3138 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "especificación de borde de partición hash «%s» no reconocida" -#: gram.y:3095 +#: gram.y:3146 #, c-format msgid "modulus for hash partition must be specified" msgstr "el módulo para una partición hash debe ser especificado" -#: gram.y:3099 +#: gram.y:3150 #, c-format msgid "remainder for hash partition must be specified" msgstr "remanente en partición hash debe ser especificado" -#: gram.y:3307 gram.y:3341 +#: gram.y:3358 gram.y:3392 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "STDIN/STDOUT no están permitidos con PROGRAM" -#: gram.y:3313 +#: gram.y:3364 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "la cláusula WHERE no está permitida con COPY TO" -#: gram.y:3652 gram.y:3659 gram.y:12824 gram.y:12832 +#: gram.y:3712 gram.y:3719 gram.y:13023 gram.y:13031 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "GLOBAL está obsoleto para la creación de tablas temporales" -#: gram.y:3935 +#: gram.y:3995 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "para una columna generada, GENERATED ALWAYS debe ser especificado" -#: gram.y:4318 -#, fuzzy, c-format -#| msgid "return type %s is not supported for SQL functions" +#: gram.y:4432 +#, c-format msgid "a column list with %s is only supported for ON DELETE actions" -msgstr "el tipo de retorno %s no es soportado en funciones SQL" +msgstr "una lista de columnas con %s sólo está soportada para acciones ON DELETE" -#: gram.y:5030 +#: gram.y:5151 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM ya no está soportado" -#: gram.y:5728 +#: gram.y:5849 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "opción de seguridad de registro «%s» no reconocida" -#: gram.y:5729 +#: gram.y:5850 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "sólo se admiten actualmente políticas PERMISSIVE o RESTRICTIVE." -#: gram.y:5814 +#: gram.y:5935 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER no está soportado" -#: gram.y:5851 +#: gram.y:5972 msgid "duplicate trigger events specified" -msgstr "se han especificado eventos de disparador duplicados" +msgstr "se han especificado “triggers” por eventos duplicados" -#: gram.y:6000 +#: gram.y:6121 #, c-format msgid "conflicting constraint properties" msgstr "propiedades de restricción contradictorias" -#: gram.y:6099 +#: gram.y:6220 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTION no está implementado" -#: gram.y:6507 +#: gram.y:6537 +#, c-format +msgid "dropping an enum value is not implemented" +msgstr "eliminar un valor de enum no está implementado" + +#: gram.y:6655 #, c-format msgid "RECHECK is no longer required" msgstr "RECHECK ya no es requerido" -#: gram.y:6508 +#: gram.y:6656 #, c-format msgid "Update your data type." msgstr "Actualice su tipo de datos." -#: gram.y:8381 +#: gram.y:8529 #, c-format msgid "aggregates cannot have output arguments" msgstr "las funciones de agregación no pueden tener argumentos de salida" -#: gram.y:11057 gram.y:11076 +#: gram.y:11221 gram.y:11240 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTION no está soportado con vistas recursivas" -#: gram.y:12963 +#: gram.y:13162 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "la sintaxis LIMIT #,# no está soportada" -#: gram.y:12964 +#: gram.y:13163 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "Use cláusulas LIMIT y OFFSET separadas." -#: gram.y:13824 +#: gram.y:14038 #, c-format msgid "only one DEFAULT value is allowed" msgstr "Sólo se permite un valor DEFAULT" -#: gram.y:13833 +#: gram.y:14047 #, c-format msgid "only one PATH value per column is allowed" msgstr "sólo se permite un valor de PATH por columna" -#: gram.y:13842 +#: gram.y:14056 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "declaraciones NULL/NOT NULL en conflicto o redundantes para la columna «%s»" -#: gram.y:13851 +#: gram.y:14065 #, c-format msgid "unrecognized column option \"%s\"" msgstr "opción de columna «%s» no reconocida" -#: gram.y:14105 +#: gram.y:14147 +#, c-format +msgid "only string constants are supported in JSON_TABLE path specification" +msgstr "sólo cadenas constantes están permitidas en la especificación de ruta JSON_TABLE" + +#: gram.y:14469 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "la precisión para el tipo float debe ser al menos 1 bit" -#: gram.y:14114 +#: gram.y:14478 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "la precisión para el tipo float debe ser menor de 54 bits" -#: gram.y:14617 +#: gram.y:14995 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "el número de parámetros es incorrecto al lado izquierdo de la expresión OVERLAPS" -#: gram.y:14622 +#: gram.y:15000 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "el número de parámetros es incorrecto al lado derecho de la expresión OVERLAPS" -#: gram.y:14799 +#: gram.y:15177 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "el predicado UNIQUE no está implementado" -#: gram.y:15215 +#: gram.y:15591 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "no se permiten múltiples cláusulas ORDER BY con WITHIN GROUP" -#: gram.y:15220 +#: gram.y:15596 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "no se permite DISTINCT con WITHIN GROUP" -#: gram.y:15225 +#: gram.y:15601 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "no se permite VARIADIC con WITHIN GROUP" -#: gram.y:15859 gram.y:15883 +#: gram.y:16328 gram.y:16352 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "el inicio de «frame» no puede ser UNBOUNDED FOLLOWING" -#: gram.y:15864 +#: gram.y:16333 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "el «frame» que se inicia desde la siguiente fila no puede terminar en la fila actual" -#: gram.y:15888 +#: gram.y:16357 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "el fin de «frame» no puede ser UNBOUNDED PRECEDING" -#: gram.y:15894 +#: gram.y:16363 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "el «frame» que se inicia desde la fila actual no puede tener filas precedentes" -#: gram.y:15901 +#: gram.y:16370 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "el «frame» que se inicia desde la fila siguiente no puede tener filas precedentes" -#: gram.y:16660 +#: gram.y:16919 +#, c-format +msgid "unrecognized JSON encoding: %s" +msgstr "no se reconoce la codificación JSON: %s" + +#: gram.y:17243 #, c-format msgid "type modifier cannot have parameter name" msgstr "el modificador de tipo no puede tener nombre de parámetro" -#: gram.y:16666 +#: gram.y:17249 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "el modificador de tipo no puede tener ORDER BY" -#: gram.y:16734 gram.y:16741 gram.y:16748 +#: gram.y:17317 gram.y:17324 gram.y:17331 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s no puede ser usado como nombre de rol aquí" -#: gram.y:16838 gram.y:18295 +#: gram.y:17421 gram.y:18906 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "la opción WITH TIES no puede ser especificada sin una cláusula ORDER BY" -#: gram.y:17974 gram.y:18161 +#: gram.y:18597 gram.y:18772 msgid "improper use of \"*\"" msgstr "uso impropio de «*»" -#: gram.y:18225 +#: gram.y:18836 #, c-format msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type" msgstr "una agregación de conjunto-ordenado con un argumento directo VARIADIC debe tener al menos un argumento agregado VARIADIC del mismo tipo de datos" -#: gram.y:18262 +#: gram.y:18873 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "no se permiten múltiples cláusulas ORDER BY" -#: gram.y:18273 +#: gram.y:18884 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "no se permiten múltiples cláusulas OFFSET" -#: gram.y:18282 +#: gram.y:18893 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "no se permiten múltiples cláusulas LIMIT" -#: gram.y:18291 +#: gram.y:18902 #, c-format msgid "multiple limit options not allowed" msgstr "no se permiten múltiples opciones limit" -#: gram.y:18318 +#: gram.y:18929 #, c-format msgid "multiple WITH clauses not allowed" msgstr "no se permiten múltiples cláusulas WITH" -#: gram.y:18511 +#: gram.y:19122 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "los argumentos OUT e INOUT no están permitidos en funciones TABLE" -#: gram.y:18644 +#: gram.y:19255 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "no se permiten múltiples cláusulas COLLATE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18682 gram.y:18695 +#: gram.y:19293 gram.y:19306 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "las restricciones %s no pueden ser marcadas DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18708 +#: gram.y:19319 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "las restricciones %s no pueden ser marcadas NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18721 +#: gram.y:19332 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "las restricciones %s no pueden ser marcadas NO INHERIT" -#: gram.y:18743 +#: gram.y:19354 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "estrategia de particionamiento «%s» no reconocida" -#: gram.y:18767 -#, fuzzy, c-format -#| msgid "invalid publication_names syntax" +#: gram.y:19378 +#, c-format msgid "invalid publication object list" -msgstr "sintaxis de publication_names no válida" +msgstr "sintaxis de lista de objetos de publicación no válida" -#: gram.y:18768 +#: gram.y:19379 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." -msgstr "" +msgstr "Uno de TABLE o TABLES IN SCHEMA debe ser especificado antes de un nombre de tabla o esquema." -#: gram.y:18784 -#, fuzzy, c-format -#| msgid "invalid locale name \"%s\"" +#: gram.y:19395 +#, c-format msgid "invalid table name" -msgstr "nombre de configuración regional «%s» no es válido" +msgstr "nombre de tabla no válido" -#: gram.y:18805 -#, fuzzy, c-format -#| msgid "WHERE clause not allowed with COPY TO" +#: gram.y:19416 +#, c-format msgid "WHERE clause not allowed for schema" -msgstr "la cláusula WHERE no está permitida con COPY TO" +msgstr "cláusula WHERE no permitida para esquemas" -#: gram.y:18812 -#, fuzzy, c-format -#| msgid "interval specification not allowed here" +#: gram.y:19423 +#, c-format msgid "column specification not allowed for schema" -msgstr "la especificación de intervalo no está permitida aquí" +msgstr "especificación de columnas no permitida para esquemas" -#: gram.y:18826 -#, fuzzy, c-format -#| msgid "invalid fork name" +#: gram.y:19437 +#, c-format msgid "invalid schema name" -msgstr "nombre de «fork» no válido" +msgstr "nombre de esquema no válido" #: guc-file.l:192 #, c-format @@ -30095,54 +30951,47 @@ msgstr "error de sintaxis en el archivo «%s» línea %u, cerca de la palabra « msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "se encontraron demasiados errores de sintaxis, abandonando el archivo «%s»" -#: jsonpath_gram.y:529 +#: jsonpath_gram.y:267 +#, c-format +msgid ".decimal() can only have an optional precision[,scale]." +msgstr ".decimal() sólo puede tener un parámetro opcional precisión[,escala]." + +#: jsonpath_gram.y:599 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." -msgstr "" +msgstr "Carácter de bandera «%.*s» no reconocido en predicado LIKE_REGEX." -#: jsonpath_gram.y:607 +#: jsonpath_gram.y:677 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "la opción «x» de XQuery (expresiones regulares expandidas) no está implementada" #: jsonpath_scan.l:174 -#, fuzzy -#| msgid "invalid Unicode escape" -msgid "invalid unicode sequence" -msgstr "valor de escape Unicode no válido" +msgid "invalid Unicode escape sequence" +msgstr "secuencia de escape Unicode no válida" #: jsonpath_scan.l:180 -#, fuzzy -#| msgid "invalid character" -msgid "invalid hex character sequence" -msgstr "carácter no válido" +msgid "invalid hexadecimal character sequence" +msgstr "secuencia de caracteres hexadecimales no válido" #: jsonpath_scan.l:195 -#, fuzzy -#| msgid "unexpected end of line" msgid "unexpected end after backslash" -msgstr "fin de línea inesperado" +msgstr "fin inesperado después de backslash" -#: jsonpath_scan.l:201 -#, fuzzy -#| msgid "unexpected end of line" -msgid "unexpected end of quoted string" -msgstr "fin de línea inesperado" +#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:756 +msgid "unterminated quoted string" +msgstr "una cadena de caracteres entre comillas está inconclusa" #: jsonpath_scan.l:228 -#, fuzzy -#| msgid "unexpected end of line" msgid "unexpected end of comment" -msgstr "fin de línea inesperado" +msgstr "fin de comentario inesperado" #: jsonpath_scan.l:319 -#, fuzzy -#| msgid "numeric_literal" msgid "invalid numeric literal" -msgstr "literal_numérico" +msgstr "literal numérico no válido" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 -#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1064 +#: scan.l:1068 scan.l:1072 scan.l:1076 msgid "trailing junk after numeric literal" msgstr "basura sigue después de un literal numérico" @@ -30158,162 +31007,139 @@ msgstr "%s al final de la entrada jsonpath" msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s en o cerca de «%s» de la entrada jsonpath" -#: jsonpath_scan.l:557 -msgid "bogus input" -msgstr "" +#: jsonpath_scan.l:568 +msgid "invalid input" +msgstr "entrada no válida" -#: jsonpath_scan.l:583 -#, fuzzy -#| msgid "invalid hexadecimal digit: \"%.*s\"" +#: jsonpath_scan.l:594 msgid "invalid hexadecimal digit" -msgstr "dígito hexadecimal no válido: «%.*s»" +msgstr "dígito hexadecimal no válido" -#: jsonpath_scan.l:614 -#, fuzzy, c-format -#| msgid "could not encode server key" -msgid "could not convert unicode to server encoding" -msgstr "no se pudo codificar la llave del servidor" +#: jsonpath_scan.l:625 +#, c-format +msgid "could not convert Unicode to server encoding" +msgstr "no se pudo convertir Unicode a la codificación del servidor" -#: repl_gram.y:301 repl_gram.y:333 +#: repl_gram.y:318 repl_gram.y:359 #, c-format msgid "invalid timeline %u" msgstr "timeline %u no válido" -#: repl_scanner.l:152 -#, fuzzy -#| msgid "invalid transaction termination" +#: repl_scanner.l:154 msgid "invalid streaming start location" -msgstr "terminación de transacción no válida" - -#: repl_scanner.l:209 scan.l:741 -msgid "unterminated quoted string" -msgstr "una cadena de caracteres entre comillas está inconclusa" +msgstr "ubicación de inicio de flujo no válida" -#: scan.l:482 +#: scan.l:497 msgid "unterminated /* comment" msgstr "un comentario /* está inconcluso" -#: scan.l:502 +#: scan.l:517 msgid "unterminated bit string literal" msgstr "una cadena de bits está inconclusa" -#: scan.l:516 +#: scan.l:531 msgid "unterminated hexadecimal string literal" msgstr "una cadena hexadecimal está inconclusa" -#: scan.l:566 +#: scan.l:581 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "uso inseguro de literal de cadena con escapes Unicode" -#: scan.l:567 +#: scan.l:582 #, c-format -msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off." -msgstr "Los literales de cadena con escapes Unicode no pueden usarse cuando standard_conforming_strings está desactivado." +msgid "String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off." +msgstr "Los literales de cadena con escapes Unicode no pueden usarse cuando «standard_conforming_strings» está desactivado." -#: scan.l:628 +#: scan.l:643 msgid "unhandled previous state in xqs" msgstr "estado previo no manejado en xqs" -#: scan.l:702 +#: scan.l:717 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "Los escapes Unicode deben ser \\uXXXX o \\UXXXXXXXX." -#: scan.l:713 +#: scan.l:728 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "uso inseguro de \\' en un literal de cadena" -#: scan.l:714 +#: scan.l:729 #, c-format msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings." msgstr "Use '' para escribir comillas en cadenas. \\' es inseguro en codificaciones de sólo cliente." -#: scan.l:786 +#: scan.l:801 msgid "unterminated dollar-quoted string" msgstr "una cadena separada por $ está inconclusa" -#: scan.l:803 scan.l:813 +#: scan.l:818 scan.l:828 msgid "zero-length delimited identifier" msgstr "un identificador delimitado tiene largo cero" -#: scan.l:824 syncrep_scanner.l:101 +#: scan.l:839 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "un identificador entre comillas está inconcluso" -#: scan.l:987 +#: scan.l:1002 msgid "operator too long" msgstr "el operador es demasiado largo" -#: scan.l:1000 +#: scan.l:1015 msgid "trailing junk after parameter" msgstr "basura sigue después de un parámetro" -#: scan.l:1021 -#, fuzzy -#| msgid "invalid hexadecimal string literal" +#: scan.l:1036 msgid "invalid hexadecimal integer" -msgstr "cadena hexadecimal no válida" +msgstr "entero hexadecimal no válido" -#: scan.l:1025 -#, fuzzy -#| msgid "invalid Datum pointer" +#: scan.l:1040 msgid "invalid octal integer" -msgstr "puntero a Datum no válido" +msgstr "entero octal no válido" -#: scan.l:1029 -#, fuzzy -#| msgid "invalid Datum pointer" +#: scan.l:1044 msgid "invalid binary integer" -msgstr "puntero a Datum no válido" +msgstr "entero binario no válido" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1236 +#: scan.l:1239 #, c-format msgid "%s at end of input" msgstr "%s al final de la entrada" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1244 +#: scan.l:1247 #, c-format msgid "%s at or near \"%s\"" msgstr "%s en o cerca de «%s»" -#: scan.l:1434 +#: scan.l:1439 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "uso no estandar de \\' en un literal de cadena" -#: scan.l:1435 +#: scan.l:1440 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "Use '' para escribir comillas en cadenas, o use la sintaxis de escape de cadenas (E'...')." -#: scan.l:1444 +#: scan.l:1449 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "uso no estandar de \\\\ en un literal de cadena" -#: scan.l:1445 +#: scan.l:1450 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "Use '' para escribir comillas en cadenas, o use la sintaxis de escape de cadenas (E'\\\\')." -#: scan.l:1459 +#: scan.l:1464 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "uso no estandar de escape en un literal de cadena" -#: scan.l:1460 +#: scan.l:1465 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Use la sintaxis de escape para cadenas, por ej. E'\\r\\n'." - -#, c-format -#~ msgid "value for compression option \"%s\" must be a boolean" -#~ msgstr "el valor para la opción de compresión «%s» debe ser un booleano" - -#, c-format -#~ msgid "String contains unexpected escape sequence \"%c\"." -#~ msgstr "La cadena contiene la secuencia de escape inesperada «%c»." diff --git a/src/backend/po/ja.po b/src/backend/po/ja.po index 1e638d075be6b..5309f0ca14d47 100644 --- a/src/backend/po/ja.po +++ b/src/backend/po/ja.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: postgres (PostgreSQL 17)\n" +"Project-Id-Version: postgres (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-11 15:46+0900\n" -"PO-Revision-Date: 2024-06-11 16:55+0900\n" +"POT-Creation-Date: 2025-04-09 09:36+0900\n" +"PO-Revision-Date: 2025-04-09 10:06+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: jpug-doc \n" "Language: ja\n" @@ -82,25 +82,25 @@ msgstr "圧縮アルゴリズム\"%s\"は長距離モードをサポートしま msgid "not recorded" msgstr "記録されていません" -#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 commands/copyfrom.c:1737 commands/extension.c:3538 utils/adt/genfile.c:123 utils/time/snapmgr.c:1430 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 commands/copyfrom.c:1879 commands/extension.c:3807 utils/adt/genfile.c:123 utils/time/snapmgr.c:1437 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み込み用にオープンできませんでした: %m" -#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1369 access/transam/xlog.c:3471 access/transam/xlog.c:4335 access/transam/xlogrecovery.c:1238 access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 -#: replication/logical/origin.c:745 replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5084 replication/logical/snapbuild.c:2035 replication/slot.c:2236 replication/slot.c:2277 replication/walsender.c:655 storage/file/buffile.c:470 storage/file/copydir.c:185 utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1353 access/transam/xlog.c:3621 access/transam/xlog.c:4512 access/transam/xlogrecovery.c:1246 access/transam/xlogrecovery.c:1344 access/transam/xlogrecovery.c:1381 access/transam/xlogrecovery.c:1448 backup/basebackup.c:2128 backup/walsummary.c:283 commands/extension.c:3817 libpq/hba.c:769 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5236 replication/logical/snapbuild.c:1903 replication/slot.c:2430 replication/slot.c:2471 replication/walsender.c:629 storage/file/buffile.c:470 storage/file/copydir.c:201 utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"の読み込みに失敗しました: %m" -#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 access/transam/xlog.c:3476 access/transam/xlog.c:4340 replication/logical/origin.c:750 replication/logical/origin.c:789 replication/logical/snapbuild.c:2040 replication/slot.c:2240 replication/slot.c:2281 replication/walsender.c:660 utils/cache/relmapper.c:833 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 access/transam/xlog.c:3626 access/transam/xlog.c:4517 replication/logical/origin.c:750 replication/logical/origin.c:789 replication/logical/snapbuild.c:1908 replication/slot.c:2434 replication/slot.c:2475 replication/walsender.c:634 utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" -#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1381 access/transam/twophase.c:1793 access/transam/xlog.c:3317 access/transam/xlog.c:3511 access/transam/xlog.c:3516 access/transam/xlog.c:3652 -#: access/transam/xlog.c:4305 access/transam/xlog.c:5239 commands/copyfrom.c:1797 commands/copyto.c:325 libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 replication/logical/origin.c:683 replication/logical/origin.c:822 replication/logical/reorderbuffer.c:5136 replication/logical/snapbuild.c:1802 replication/logical/snapbuild.c:1926 replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 storage/file/copydir.c:208 storage/file/copydir.c:213 -#: storage/file/fd.c:828 storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 utils/cache/relmapper.c:956 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1365 access/transam/twophase.c:1783 access/transam/xlog.c:3467 access/transam/xlog.c:3661 access/transam/xlog.c:3666 access/transam/xlog.c:3802 +#: access/transam/xlog.c:4482 access/transam/xlog.c:5458 commands/copyfrom.c:1929 commands/copyto.c:598 libpq/be-fsstubs.c:475 libpq/be-fsstubs.c:545 replication/logical/origin.c:683 replication/logical/origin.c:822 replication/logical/reorderbuffer.c:5288 replication/logical/snapbuild.c:1648 replication/logical/snapbuild.c:1774 replication/slot.c:2319 replication/slot.c:2482 replication/walsender.c:644 storage/file/copydir.c:224 storage/file/copydir.c:229 +#: storage/file/copydir.c:284 storage/file/copydir.c:289 storage/file/fd.c:828 storage/file/fd.c:3818 storage/file/fd.c:3924 utils/cache/relmapper.c:841 utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "ファイル\"%s\"をクローズできませんでした: %m" @@ -122,41 +122,41 @@ msgstr "" "されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" "PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" -#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 ../common/file_utils.c:70 ../common/file_utils.c:347 ../common/file_utils.c:406 ../common/file_utils.c:480 access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1325 access/transam/xlog.c:3224 access/transam/xlog.c:3387 access/transam/xlog.c:3426 access/transam/xlog.c:3619 access/transam/xlog.c:4325 -#: access/transam/xlogrecovery.c:4263 access/transam/xlogrecovery.c:4366 access/transam/xlogutils.c:836 backup/basebackup.c:547 backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 postmaster/syslogger.c:1511 replication/logical/origin.c:735 replication/logical/reorderbuffer.c:3737 replication/logical/reorderbuffer.c:4291 replication/logical/reorderbuffer.c:5064 replication/logical/snapbuild.c:1757 replication/logical/snapbuild.c:1867 -#: replication/slot.c:2208 replication/walsender.c:628 replication/walsender.c:3051 storage/file/copydir.c:151 storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 utils/cache/relmapper.c:935 utils/error/elog.c:2091 utils/init/miscinit.c:1526 utils/init/miscinit.c:1660 utils/init/miscinit.c:1737 utils/misc/guc.c:4727 utils/misc/guc.c:4777 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 ../common/file_utils.c:69 ../common/file_utils.c:370 ../common/file_utils.c:428 ../common/file_utils.c:502 access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1309 access/transam/xlog.c:3357 access/transam/xlog.c:3537 access/transam/xlog.c:3576 access/transam/xlog.c:3769 access/transam/xlog.c:4502 +#: access/transam/xlogrecovery.c:4285 access/transam/xlogrecovery.c:4386 access/transam/xlogutils.c:825 backup/basebackup.c:549 backup/basebackup.c:1600 backup/walsummary.c:220 libpq/hba.c:626 postmaster/syslogger.c:1512 replication/logical/origin.c:735 replication/logical/reorderbuffer.c:3889 replication/logical/reorderbuffer.c:4443 replication/logical/reorderbuffer.c:5216 replication/logical/snapbuild.c:1603 replication/logical/snapbuild.c:1715 +#: replication/slot.c:2402 replication/walsender.c:602 replication/walsender.c:3056 storage/file/copydir.c:167 storage/file/copydir.c:255 storage/file/fd.c:803 storage/file/fd.c:3575 storage/file/fd.c:3805 storage/file/fd.c:3895 storage/smgr/md.c:675 utils/cache/relmapper.c:818 utils/cache/relmapper.c:935 utils/error/elog.c:2149 utils/init/miscinit.c:1585 utils/init/miscinit.c:1719 utils/init/miscinit.c:1796 utils/misc/guc.c:4774 utils/misc/guc.c:4824 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 access/transam/twophase.c:1766 access/transam/twophase.c:1775 access/transam/xlog.c:9210 access/transam/xlogfuncs.c:698 backup/basebackup_server.c:173 backup/basebackup_server.c:266 backup/walsummary.c:304 postmaster/postmaster.c:4125 postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 access/transam/twophase.c:1756 access/transam/twophase.c:1765 access/transam/xlog.c:9467 access/transam/xlogfuncs.c:699 backup/basebackup_server.c:173 backup/basebackup_server.c:266 backup/walsummary.c:304 postmaster/postmaster.c:4098 postmaster/syslogger.c:1523 postmaster/syslogger.c:1536 postmaster/syslogger.c:1549 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 ../common/file_utils.c:418 ../common/file_utils.c:488 access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1787 access/transam/xlog.c:3310 access/transam/xlog.c:3505 access/transam/xlog.c:4298 access/transam/xlog.c:8585 access/transam/xlog.c:8630 -#: backup/basebackup_server.c:207 commands/dbcommands.c:514 replication/logical/snapbuild.c:1795 replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 storage/file/fd.c:3851 storage/smgr/md.c:1329 storage/smgr/md.c:1374 storage/sync/sync.c:446 utils/misc/guc.c:4480 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 ../common/file_utils.c:440 ../common/file_utils.c:510 access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1777 access/transam/xlog.c:3457 access/transam/xlog.c:3655 access/transam/xlog.c:4475 access/transam/xlog.c:8853 access/transam/xlog.c:8897 +#: backup/basebackup_server.c:207 commands/dbcommands.c:515 replication/logical/snapbuild.c:1641 replication/slot.c:2305 replication/slot.c:2412 storage/file/fd.c:820 storage/file/fd.c:3916 storage/smgr/md.c:1455 storage/smgr/md.c:1515 storage/sync/sync.c:446 utils/misc/guc.c:4527 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 ../common/md5_common.c:156 ../common/parse_manifest.c:157 ../common/parse_manifest.c:853 ../common/psprintf.c:143 ../common/scram-common.c:269 ../common/stringinfo.c:314 ../port/path.c:751 ../port/path.c:788 -#: ../port/path.c:805 access/transam/twophase.c:1434 access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 postmaster/bgworker.c:355 postmaster/bgworker.c:945 postmaster/postmaster.c:3559 postmaster/postmaster.c:4019 postmaster/postmaster.c:4381 postmaster/walsummarizer.c:820 replication/libpqwalreceiver/libpqwalreceiver.c:387 replication/logical/logical.c:209 replication/walsender.c:835 -#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1453 storage/ipc/procarray.c:2207 storage/ipc/procarray.c:2214 storage/ipc/procarray.c:2719 storage/ipc/procarray.c:3423 utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 utils/adt/formatting.c:2075 utils/adt/pg_locale.c:509 utils/adt/pg_locale.c:673 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 -#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 utils/misc/guc.c:4458 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 utils/mmgr/slab.c:370 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 ../common/cryptohash_openssl.c:356 ../common/exec.c:543 ../common/exec.c:588 ../common/exec.c:680 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:151 ../common/hmac_openssl.c:339 ../common/jsonapi.c:2407 ../common/md5_common.c:156 ../common/parse_manifest.c:157 ../common/parse_manifest.c:852 ../common/psprintf.c:140 ../common/scram-common.c:268 ../port/path.c:829 ../port/path.c:866 +#: ../port/path.c:883 access/transam/twophase.c:1418 access/transam/xlogrecovery.c:570 lib/dshash.c:253 libpq/auth.c:1345 libpq/auth.c:1389 libpq/auth.c:1951 libpq/be-secure-gssapi.c:527 postmaster/bgworker.c:355 postmaster/bgworker.c:1022 postmaster/postmaster.c:3568 postmaster/walsummarizer.c:942 replication/libpqwalreceiver/libpqwalreceiver.c:351 replication/logical/logical.c:210 replication/walsender.c:811 storage/buffer/localbuf.c:745 storage/file/fd.c:912 +#: storage/file/fd.c:1447 storage/file/fd.c:1608 storage/file/fd.c:2592 storage/ipc/procarray.c:1465 storage/ipc/procarray.c:2217 storage/ipc/procarray.c:2224 storage/ipc/procarray.c:2727 storage/ipc/procarray.c:3436 utils/adt/pg_locale.c:509 utils/adt/pg_locale.c:583 utils/adt/pg_locale_icu.c:364 utils/adt/pg_locale_libc.c:207 utils/adt/pg_locale_libc.c:302 utils/adt/pg_locale_libc.c:390 utils/fmgr/dfmgr.c:219 utils/hash/dynahash.c:516 utils/hash/dynahash.c:616 +#: utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:647 utils/misc/guc.c:672 utils/misc/guc.c:1060 utils/misc/guc.c:4505 utils/misc/tzparser.c:479 utils/mmgr/aset.c:451 utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1230 utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "メモリ不足です" -#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 ../common/hmac_openssl.c:377 +#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:351 ../common/hmac_openssl.c:359 msgid "success" msgstr "成功" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 ../common/hmac_openssl.c:371 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 ../common/hmac_openssl.c:353 msgid "destination buffer too small" msgstr "出力先バッファが小さすぎます" -#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:355 msgid "OpenSSL failure" msgstr "OpenSSLのエラー" @@ -180,27 +180,27 @@ msgstr "実行すべき\"%s\"がありませんでした" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "パス\"%s\"を絶対パス形式に変換できませんでした: %m" -#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1721 commands/copyto.c:649 libpq/be-secure-common.c:59 +#: ../common/exec.c:363 commands/collationcmds.c:872 commands/copyfrom.c:1863 commands/copyto.c:934 libpq/be-secure-common.c:59 #, c-format msgid "could not execute command \"%s\": %m" msgstr "コマンド\"%s\"を実行できませんでした: %m" -#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#: ../common/exec.c:375 libpq/be-secure-common.c:71 #, c-format msgid "could not read from command \"%s\": %m" msgstr "コマンド\"%s\"から読み取れませんでした: %m" -#: ../common/exec.c:397 +#: ../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "コマンド\"%s\"からデータが返却されませんでした" -#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 storage/ipc/latch.c:1349 storage/ipc/latch.c:1582 storage/ipc/latch.c:1744 storage/ipc/latch.c:1870 +#: ../common/exec.c:405 libpq/pqcomm.c:193 storage/ipc/waiteventset.c:782 storage/ipc/waiteventset.c:962 storage/ipc/waiteventset.c:1202 storage/ipc/waiteventset.c:1364 storage/ipc/waiteventset.c:1490 #, c-format msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:790 ../port/path.c:807 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 +#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 ../common/psprintf.c:142 ../port/path.c:831 ../port/path.c:868 ../port/path.c:885 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "メモリ不足です\n" @@ -210,33 +210,33 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "nullポインタは複製できません(内部エラー)\n" -#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#: ../common/file_utils.c:75 storage/file/fd.c:3581 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../common/file_utils.c:120 ../common/file_utils.c:566 ../common/file_utils.c:570 access/transam/twophase.c:1337 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1747 commands/copyto.c:695 commands/extension.c:3527 commands/tablespace.c:804 commands/tablespace.c:893 postmaster/pgarch.c:680 -#: replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:2156 storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 +#: ../common/file_utils.c:123 ../common/file_utils.c:588 ../common/file_utils.c:592 access/transam/twophase.c:1321 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 backup/basebackup.c:357 backup/basebackup.c:555 backup/basebackup.c:626 backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1889 commands/copyto.c:980 commands/extension.c:3796 commands/tablespace.c:804 commands/tablespace.c:893 postmaster/pgarch.c:682 +#: replication/logical/snapbuild.c:1498 replication/logical/snapbuild.c:2025 storage/file/fd.c:1972 storage/file/fd.c:2060 storage/file/fd.c:3629 utils/adt/dbsize.c:105 utils/adt/dbsize.c:266 utils/adt/dbsize.c:355 utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#: ../common/file_utils.c:133 ../common/file_utils.c:243 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../common/file_utils.c:151 ../common/file_utils.c:281 ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 commands/tablespace.c:738 postmaster/postmaster.c:1468 storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:339 +#: ../common/file_utils.c:156 ../common/file_utils.c:304 ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 commands/tablespace.c:738 postmaster/postmaster.c:1496 storage/file/fd.c:2997 storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:340 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../common/file_utils.c:169 ../common/file_utils.c:315 ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 +#: ../common/file_utils.c:174 ../common/file_utils.c:338 ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:3009 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 postmaster/pgarch.c:834 postmaster/syslogger.c:1559 replication/logical/snapbuild.c:1814 replication/slot.c:936 replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 utils/time/snapmgr.c:1255 +#: ../common/file_utils.c:520 access/transam/xlogarchive.c:389 postmaster/pgarch.c:836 postmaster/syslogger.c:1560 replication/logical/snapbuild.c:1660 replication/slot.c:987 replication/slot.c:2191 replication/slot.c:2333 storage/file/fd.c:838 utils/time/snapmgr.c:1262 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -245,283 +245,287 @@ msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: % msgid "internal error" msgstr "内部エラー" -#: ../common/jsonapi.c:2121 +#: ../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "再帰降下パーサーは差分字句解析器を使用できません。" -#: ../common/jsonapi.c:2123 +#: ../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "差分パーサーは差分字句解析器を必要とします。" -#: ../common/jsonapi.c:2125 +#: ../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSONのネストが深すぎます、可能な最大の深さは6400です。" -#: ../common/jsonapi.c:2127 +#: ../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "エスケープシーケンス\"\\%.*s\"は不正です。" -#: ../common/jsonapi.c:2131 +#: ../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "0x%02x値を持つ文字はエスケープしなければなりません" -#: ../common/jsonapi.c:2135 +#: ../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "入力の終端を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2138 +#: ../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "配列要素または\"]\"を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2141 +#: ../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "\",\"または\"]\"を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2144 +#: ../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "\":\"を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2147 +#: ../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "JSON値を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2150 +#: ../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "入力文字列が予期せず終了しました。" -#: ../common/jsonapi.c:2152 +#: ../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "文字列または\"}\"を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2155 +#: ../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "\",\"または\"}\"を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2158 +#: ../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "文字列を想定していましたが、\"%.*s\"でした。" -#: ../common/jsonapi.c:2161 +#: ../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "トークン\"%.*s\"は不正です。" -#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 +#: ../common/jsonapi.c:2478 jsonpath_scan.l:585 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 はテキストに変換できません。" -#: ../common/jsonapi.c:2166 +#: ../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\"の後には16進数の4桁が続かなければなりません。" -#: ../common/jsonapi.c:2169 +#: ../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "エンコーディングがUTF-8ではない場合、コードポイントの値が 007F 以上についてはUnicodeエスケープの値は使用できません。" -#: ../common/jsonapi.c:2178 +#: ../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Unicodeエスケープの値がサーバーエンコーディング%sに変換できませんでした。" -#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 +#: ../common/jsonapi.c:2499 jsonpath_scan.l:618 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicodeのハイサロゲートはハイサロゲートに続いてはいけません。" -#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 jsonpath_scan.l:713 +#: ../common/jsonapi.c:2501 jsonpath_scan.l:629 jsonpath_scan.l:639 jsonpath_scan.l:691 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicodeのローサロゲートはハイサロゲートに続かなければなりません。" -#: ../common/logging.c:276 +#: ../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "エラー記述の構築中のメモリ不足" + +#: ../common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../common/logging.c:283 +#: ../common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../common/logging.c:294 +#: ../common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../common/logging.c:301 +#: ../common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " -#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:855 +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "目録のチェックサムの初期化ができませんでした" -#: ../common/parse_manifest.c:204 ../common/parse_manifest.c:261 +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "目録が予期せず終了しました。" -#: ../common/parse_manifest.c:210 ../common/parse_manifest.c:862 +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "目録のチェックサムの更新ができませんでした" -#: ../common/parse_manifest.c:302 +#: ../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "予期しないオブジェクトの開始" -#: ../common/parse_manifest.c:337 +#: ../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "予期しないオブジェクトの終わり" -#: ../common/parse_manifest.c:366 +#: ../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "予期しない配列の開始" -#: ../common/parse_manifest.c:391 +#: ../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "予期しない配列の終わり" -#: ../common/parse_manifest.c:418 +#: ../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "バージョン指示子を想定していました" -#: ../common/parse_manifest.c:454 +#: ../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "認識できないトップレベルフィールド" -#: ../common/parse_manifest.c:473 +#: ../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "予期しないファイルフィールド" -#: ../common/parse_manifest.c:487 +#: ../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "予期しないWAL範囲フィールド" -#: ../common/parse_manifest.c:493 +#: ../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "予期しないオブジェクトフィールド" -#: ../common/parse_manifest.c:583 +#: ../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "予期しないスカラー" -#: ../common/parse_manifest.c:609 +#: ../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "目録バージョンが整数ではありません" -#: ../common/parse_manifest.c:613 +#: ../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "予期しない目録バージョン" -#: ../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" -msgstr "目録のシステム識別子が整数ではありません" +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "目録中のシステム識別子が整数ではありません" -#: ../common/parse_manifest.c:662 +#: ../common/parse_manifest.c:661 msgid "missing path name" msgstr "パス名がありません" -#: ../common/parse_manifest.c:665 +#: ../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "パス名とエンコードされたパス名の両方" -#: ../common/parse_manifest.c:667 +#: ../common/parse_manifest.c:666 msgid "missing size" msgstr "サイズがありません" -#: ../common/parse_manifest.c:670 +#: ../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "アルゴリズムなしのチェックサム" -#: ../common/parse_manifest.c:684 +#: ../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ファイル名をデコードできませんでした" -#: ../common/parse_manifest.c:694 +#: ../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ファイルサイズが整数ではありません" -#: ../common/parse_manifest.c:700 backup/basebackup.c:870 +#: ../common/parse_manifest.c:699 backup/basebackup.c:872 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "認識できないチェックサムアルゴリズム: \"%s\"" -#: ../common/parse_manifest.c:719 +#: ../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "\"%s\" ファイルのチェックサムが無効: \"%s\"" -#: ../common/parse_manifest.c:762 +#: ../common/parse_manifest.c:761 msgid "missing timeline" msgstr "タイムラインがありません" -#: ../common/parse_manifest.c:764 +#: ../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "開始LSNがありません" -#: ../common/parse_manifest.c:766 +#: ../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "終了LSNがありません" -#: ../common/parse_manifest.c:772 +#: ../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "タイムラインが整数ではありません" -#: ../common/parse_manifest.c:775 +#: ../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "開始LSNをパースできませんでした" -#: ../common/parse_manifest.c:778 +#: ../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "終了LSNをパースできませんでした" -#: ../common/parse_manifest.c:843 +#: ../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "少なくとも2行が必要です" -#: ../common/parse_manifest.c:846 +#: ../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "最後の行が改行で終わっていません" -#: ../common/parse_manifest.c:865 +#: ../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "目録のチェックサムの完了ができませんでした" -#: ../common/parse_manifest.c:869 +#: ../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "目録にチェックサムがありません" -#: ../common/parse_manifest.c:873 +#: ../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "無効な目録チェックサム: \"%s\"" -#: ../common/parse_manifest.c:877 +#: ../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "目録チェックサムの不一致" -#: ../common/parse_manifest.c:892 +#: ../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "バックアップ目録をパースできませんでした: %s" -#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 ../common/percentrepl.c:118 ../common/percentrepl.c:124 tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 utils/misc/guc.c:3283 utils/misc/guc.c:4662 utils/misc/guc.c:6887 utils/misc/guc.c:6928 +#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 ../common/percentrepl.c:118 ../common/percentrepl.c:124 tcop/backend_startup.c:769 utils/misc/guc.c:3164 utils/misc/guc.c:3205 utils/misc/guc.c:3280 utils/misc/guc.c:4709 utils/misc/guc.c:6929 utils/misc/guc.c:6970 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "パラメータ\"%s\"の値が不正です: \"%s\"" @@ -581,51 +585,56 @@ msgstr "制限付きトークンで再実行できませんでした: %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "サブプロセスの終了コードを取得できませんでした: エラーコード %lu" -#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 access/transam/twophase.c:1726 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 postmaster/syslogger.c:1488 replication/logical/origin.c:591 replication/logical/reorderbuffer.c:4560 replication/logical/snapbuild.c:1695 replication/logical/snapbuild.c:2129 replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 storage/file/fd.c:3440 -#: storage/file/reinit.c:261 storage/ipc/dsm.c:343 storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 utils/time/snapmgr.c:1591 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 access/transam/twophase.c:1716 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:399 postmaster/postmaster.c:1069 postmaster/syslogger.c:1489 replication/logical/origin.c:591 replication/logical/reorderbuffer.c:4711 replication/logical/snapbuild.c:1541 replication/logical/snapbuild.c:1997 replication/slot.c:2386 storage/file/fd.c:878 storage/file/fd.c:3443 storage/file/fd.c:3505 +#: storage/file/reinit.c:261 storage/ipc/dsm.c:343 storage/smgr/md.c:401 storage/smgr/md.c:460 storage/sync/sync.c:243 utils/time/snapmgr.c:1598 #, c-format msgid "could not remove file \"%s\": %m" msgstr "ファイル\"%s\"を削除できませんでした: %m" -#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 storage/file/fd.c:3779 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3435 storage/file/fd.c:3844 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を削除できませんでした: %m" -#: ../common/scram-common.c:282 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "saltのエンコードに失敗しました" -#: ../common/scram-common.c:298 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "nonceのエンコードに失敗しました" -#: ../common/scram-common.c:315 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "サーバーキーのエンコードに失敗しました" -#: ../common/stringinfo.c:315 +#: ../common/stringinfo.c:362 +#, c-format +msgid "string buffer exceeds maximum allowed length (%zu bytes)" +msgstr "文字列バッファの長さが上限値を超えています(%zuバイト)" + +#: ../common/stringinfo.c:363 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "%dバイトを持つ文字列バッファを%dバイト多く、大きくすることができません。" -#: ../common/stringinfo.c:319 +#: ../common/stringinfo.c:367 #, c-format msgid "" -"out of memory\n" +"string buffer exceeds maximum allowed length (%zu bytes)\n" "\n" "Cannot enlarge string buffer containing %d bytes by %d more bytes.\n" msgstr "" -"メモリが足りません\n" +"文字列バッファの長さが上限値を超えています(%zuバイト)\n" "\n" -"%dバイトの文字列バッファを%dバイト拡げることができません。\n" +"%dバイトを格納する文字列バッファを%dバイト拡げることができません。\n" #: ../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" msgstr "実効ユーザーID %ld が見つかりませんでした: %s" -#: ../common/username.c:45 libpq/auth.c:1888 +#: ../common/username.c:45 msgid "user does not exist" msgstr "ユーザーが存在しません" @@ -664,12 +673,12 @@ msgstr "子プロセスはシグナル%dにより終了しました: %s" msgid "child process exited with unrecognized status %d" msgstr "子プロセスは認識できないステータス%dで終了しました" -#: ../port/chklocale.c:283 +#: ../port/chklocale.c:280 #, c-format msgid "could not determine encoding for codeset \"%s\"" msgstr "コードセット\"%s\"用の符号化方式を特定できませんでした" -#: ../port/chklocale.c:404 ../port/chklocale.c:410 +#: ../port/chklocale.c:370 ../port/chklocale.c:376 #, c-format msgid "could not determine encoding for locale \"%s\": codeset is \"%s\"" msgstr "ロケール\"%s\"用の符号化方式を特定できませんでした: コードセットは\"%s\"です" @@ -717,7 +726,7 @@ msgstr "再試行を30秒間続けます。" msgid "You might have antivirus, backup, or similar software interfering with the database system." msgstr "データベースシステムに干渉するアンチウィルス、バックアップといったソフトウェアが存在する可能性があります。" -#: ../port/path.c:775 +#: ../port/path.c:853 #, c-format msgid "could not get current working directory: %m\n" msgstr "現在の作業ディレクトリを取得できませんでした: %m\n" @@ -727,16 +736,6 @@ msgstr "現在の作業ディレクトリを取得できませんでした: %m\n msgid "operating system error %d" msgstr "オペレーティングシステムエラー %d" -#: ../port/user.c:43 ../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "ローカルユーザーID %dの参照に失敗しました: %s" - -#: ../port/user.c:48 ../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "ID %d を持つローカルユーザーは存在しません" - #: ../port/win32security.c:62 #, c-format msgid "could not get SID for Administrators group: error code %lu\n" @@ -752,47 +751,47 @@ msgstr "PowerUsersグループのSIDを取得できませんでした: エラー msgid "could not check access token membership: error code %lu\n" msgstr "アクセストークンのメンバーシップを確認できませんでした: エラーコード %lu\n" -#: access/brin/brin.c:405 +#: access/brin/brin.c:414 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "インデックス\"%s\" ページ%uのBRIN範囲要約のリクエストは登録されていません" -#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 +#: access/brin/brin.c:1397 access/brin/brin.c:1504 access/gin/ginfast.c:1040 access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:242 access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:323 access/transam/xlogfuncs.c:389 access/transam/xlogfuncs.c:447 statistics/attribute_stats.c:190 statistics/attribute_stats.c:931 statistics/relation_stats.c:97 #, c-format msgid "recovery is in progress" msgstr "リカバリは現在進行中です" -#: access/brin/brin.c:1386 access/brin/brin.c:1494 +#: access/brin/brin.c:1398 access/brin/brin.c:1505 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "BRIN制御関数はリカバリ中は実行できません。" -#: access/brin/brin.c:1391 access/brin/brin.c:1499 +#: access/brin/brin.c:1403 access/brin/brin.c:1510 #, c-format -msgid "block number out of range: %lld" -msgstr "ブロック番号が範囲外です: %lld" +msgid "block number out of range: %" +msgstr "ブロック番号が範囲外です: %" -#: access/brin/brin.c:1436 access/brin/brin.c:1525 +#: access/brin/brin.c:1447 access/brin/brin.c:1536 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\"はBRINインデックスではありません" -#: access/brin/brin.c:1452 access/brin/brin.c:1541 +#: access/brin/brin.c:1463 access/brin/brin.c:1552 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "インデックス\"%s\"の親テーブルをオープンできませんでした" -#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 parser/parse_utilcmd.c:2252 +#: access/brin/brin.c:1472 access/brin/brin.c:1568 access/gin/ginfast.c:1085 parser/parse_utilcmd.c:2433 #, c-format msgid "index \"%s\" is not valid" msgstr "インデックス\"%s\"は有効ではありません" -#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 statistics/dependencies.c:661 statistics/dependencies.c:714 statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 +#: access/brin/brin_bloom.c:784 access/brin/brin_bloom.c:826 access/brin/brin_minmax_multi.c:2984 access/brin/brin_minmax_multi.c:3121 statistics/dependencies.c:661 statistics/dependencies.c:714 statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format msgid "cannot accept a value of type %s" msgstr "%s型の値は受け付けられません" -#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 access/spgist/spgdoinsert.c:2278 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 access/gist/gist.c:1475 access/spgist/spgdoinsert.c:2001 access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "インデックス行サイズ%1$zuはインデックス\"%3$s\"での最大値%2$zuを超えています" @@ -807,77 +806,77 @@ msgstr "BRINインデックスが壊れています: 範囲マップの不整合 msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "BRINインデックス\"%2$s\"のブロック %3$u のページタイプが予期しない値 0x%1$04X です" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 +#: access/brin/brin_validate.c:111 access/gin/ginvalidate.c:142 access/gist/gistvalidate.c:150 access/hash/hashvalidate.c:112 access/nbtree/nbtvalidate.c:116 access/spgist/spgvalidate.c:181 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は不正なサポート番号%4$dを持つ関数%3$sを含んでいます" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 +#: access/brin/brin_validate.c:127 access/gin/ginvalidate.c:154 access/gist/gistvalidate.c:162 access/hash/hashvalidate.c:124 access/nbtree/nbtvalidate.c:128 access/spgist/spgvalidate.c:193 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"はサポート番号%4$dに対して間違ったシグネチャを持つ関数%3$sを含んでいます" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 +#: access/brin/brin_validate.c:149 access/gin/ginvalidate.c:173 access/gist/gistvalidate.c:182 access/hash/hashvalidate.c:150 access/nbtree/nbtvalidate.c:148 access/spgist/spgvalidate.c:213 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は不正なストラテジ番号%4$dを持つ演算子\"%3$s\"を含んでいます" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 access/spgist/spgvalidate.c:237 +#: access/brin/brin_validate.c:178 access/gin/ginvalidate.c:186 access/hash/hashvalidate.c:163 access/nbtree/nbtvalidate.c:161 access/spgist/spgvalidate.c:229 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は演算子%3$sに対する不正なORDER BY指定を含んでいます" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 +#: access/brin/brin_validate.c:191 access/gin/ginvalidate.c:199 access/gist/gistvalidate.c:230 access/hash/hashvalidate.c:176 access/nbtree/nbtvalidate.c:174 access/spgist/spgvalidate.c:245 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は間違ったシグネチャを持つ演算子%3$sを含んでいます" -#: access/brin/brin_validate.c:236 access/hash/hashvalidate.c:226 access/nbtree/nbtvalidate.c:236 access/spgist/spgvalidate.c:280 +#: access/brin/brin_validate.c:229 access/hash/hashvalidate.c:216 access/nbtree/nbtvalidate.c:232 access/spgist/spgvalidate.c:272 #, c-format msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は%3$sと%4$sの型に対する演算子が含まれていません" -#: access/brin/brin_validate.c:246 +#: access/brin/brin_validate.c:239 #, c-format msgid "operator family \"%s\" of access method %s is missing support function(s) for types %s and %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は型%3$sと%4$sに対するサポート関数を含んでいません" -#: access/brin/brin_validate.c:259 access/hash/hashvalidate.c:240 access/nbtree/nbtvalidate.c:260 access/spgist/spgvalidate.c:315 +#: access/brin/brin_validate.c:252 access/hash/hashvalidate.c:230 access/nbtree/nbtvalidate.c:256 access/spgist/spgvalidate.c:307 #, c-format msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "アクセスメソッド\"%2$s\"の演算子クラス\"%1$s\"は演算子を含んでいません" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 access/gist/gistvalidate.c:273 +#: access/brin/brin_validate.c:263 access/gin/ginvalidate.c:241 access/gist/gistvalidate.c:272 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "アクセスメソッド\"%2$s\"の演算子クラス\"%1$s\"はサポート関数%3$dを含んでいません" -#: access/common/attmap.c:121 +#: access/common/attmap.c:118 #, c-format -msgid "Returned type %s does not match expected type %s in column %d." -msgstr "列%3$dで返された%1$s型が、期待している%2$s型と一致しません。" +msgid "Returned type %s does not match expected type %s in column \"%s\" (position %d)." +msgstr "返却型 %1$s が、列”%3$s\" (位置%4$d)で期待される型 %2$s と一致しません。" -#: access/common/attmap.c:149 +#: access/common/attmap.c:147 #, c-format msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "返された列数(%d)が、期待する列数(%d)と一致しません。" -#: access/common/attmap.c:233 access/common/attmap.c:245 +#: access/common/attmap.c:231 access/common/attmap.c:243 #, c-format msgid "could not convert row type" msgstr "行型に変換できませんでした" -#: access/common/attmap.c:234 +#: access/common/attmap.c:232 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "%2$s型の属性\"%1$s\"が%3$s型の対応する属性と合致しません。" -#: access/common/attmap.c:246 +#: access/common/attmap.c:244 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "%2$s型の属性\"%1$s\"が%3$s型の中に存在しません。" -#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1472 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "列数(%d)が上限(%d)を超えています" @@ -887,95 +886,95 @@ msgstr "列数(%d)が上限(%d)を超えています" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "インデックス列数(%d)が上限(%d)を超えています" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:959 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:978 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "インデックス行が%zuバイトを必要としますが最大値は%zuです" -#: access/common/printtup.c:291 commands/explain.c:5375 tcop/fastpath.c:107 tcop/fastpath.c:454 tcop/postgres.c:1940 +#: access/common/printtup.c:292 commands/explain_dr.c:94 tcop/fastpath.c:106 tcop/fastpath.c:453 tcop/postgres.c:1951 #, c-format msgid "unsupported format code: %d" msgstr "非サポートの書式コード: %d" -#: access/common/reloptions.c:519 access/common/reloptions.c:530 +#: access/common/reloptions.c:530 access/common/reloptions.c:541 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "有効な値の範囲は\"on\"、\"off\"、\"auto\"です。" -#: access/common/reloptions.c:541 +#: access/common/reloptions.c:552 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "有効な値は\"local\"と\"cascaded\"です。" -#: access/common/reloptions.c:689 +#: access/common/reloptions.c:700 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "ユーザー定義リレーションのパラメータ型の制限を超えました" -#: access/common/reloptions.c:1231 +#: access/common/reloptions.c:1242 #, c-format msgid "RESET must not include values for parameters" msgstr "RESETにはパラメータの値を含めてはいけません" -#: access/common/reloptions.c:1263 +#: access/common/reloptions.c:1274 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "認識できないパラメータ namaspace \"%s\"" -#: access/common/reloptions.c:1300 commands/variable.c:1191 +#: access/common/reloptions.c:1311 commands/variable.c:1242 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "WITH OIDSと定義されたテーブルはサポートされません" -#: access/common/reloptions.c:1468 +#: access/common/reloptions.c:1479 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "認識できないラメータ \"%s\"" -#: access/common/reloptions.c:1580 +#: access/common/reloptions.c:1591 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "パラメータ\"%s\"が複数回指定されました" -#: access/common/reloptions.c:1596 +#: access/common/reloptions.c:1607 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "不正なブール型オプションの値 \"%s\": %s" -#: access/common/reloptions.c:1608 +#: access/common/reloptions.c:1619 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "不正な整数型オプションの値 \"%s\": %s" -#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 +#: access/common/reloptions.c:1625 access/common/reloptions.c:1645 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "値%sはオプション\"%s\"の範囲外です" -#: access/common/reloptions.c:1616 +#: access/common/reloptions.c:1627 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "有効な値の範囲は\"%d\"~\"%d\"です。" -#: access/common/reloptions.c:1628 +#: access/common/reloptions.c:1639 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "不正な浮動小数点型オプションの値 \"%s\": %s" -#: access/common/reloptions.c:1636 +#: access/common/reloptions.c:1647 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "有効な値の範囲は\"%f\"~\"%f\"です。" -#: access/common/reloptions.c:1658 +#: access/common/reloptions.c:1669 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "不正な列挙型オプションの値 \"%s\": %s" -#: access/common/reloptions.c:1989 +#: access/common/reloptions.c:2016 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "パーティション親テーブルに対してストレージパラメータは指定できません" -#: access/common/reloptions.c:1990 +#: access/common/reloptions.c:2017 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "代わりにリーフパーティションに対してストレージパラメータを指定してください。" @@ -1020,52 +1019,52 @@ msgstr "他のセッションの一時インデックスにはアクセスでき msgid "failed to re-find tuple within index \"%s\"" msgstr "インデックス\"%s\"内で行の再検索に失敗しました" -#: access/gin/ginscan.c:431 +#: access/gin/gininsert.c:1283 access/gin/ginutil.c:152 executor/execExpr.c:2244 utils/adt/array_userfuncs.c:1963 utils/adt/arrayfuncs.c:4028 utils/adt/arrayfuncs.c:6726 utils/adt/rowtypes.c:974 +#, c-format +msgid "could not identify a comparison function for type %s" +msgstr "%s型の比較関数が見つかりません" + +#: access/gin/ginscan.c:437 #, c-format msgid "old GIN indexes do not support whole-index scans nor searches for nulls" msgstr "古いGINインデックスはインデックス全体のスキャンやnullの検索をサポートしていません" -#: access/gin/ginscan.c:432 +#: access/gin/ginscan.c:438 #, c-format msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "これを修復するには REINDEX INDEX \"%s\" をおこなってください。" -#: access/gin/ginutil.c:147 executor/execExpr.c:2191 utils/adt/arrayfuncs.c:4009 utils/adt/arrayfuncs.c:6705 utils/adt/rowtypes.c:974 -#, c-format -msgid "could not identify a comparison function for type %s" -msgstr "%s型の比較関数が見つかりません" - -#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 +#: access/gin/ginvalidate.c:83 access/gist/gistvalidate.c:84 access/hash/hashvalidate.c:89 access/spgist/spgvalidate.c:94 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "アクセスメソッド %2$s の演算子族\"%1$s\"が左右辺の入力型が異なるサポート関数 %3$s を含んでいます" -#: access/gin/ginvalidate.c:258 +#: access/gin/ginvalidate.c:251 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "アクセスメソッド\"%2$s\"の演算子クラス\"%1$s\"はサポート関数%3$dまたは%4$dを含んでいません" -#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 access/spgist/spgvalidate.c:387 +#: access/gin/ginvalidate.c:323 access/gist/gistvalidate.c:348 access/spgist/spgvalidate.c:378 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "サポート関数番号%dはアクセスメソッド%sに対して不正です" -#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:765 access/gist/gistvacuum.c:462 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "インデックス\"%s\"内に無効と判断されている内部タプルがあります" -#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:767 access/gist/gistvacuum.c:464 #, c-format msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1." msgstr "これは、PostgreSQL 9.1へアップグレードする前のクラッシュリカバリにおける不完全なページ分割が原因で発生します。" -#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 access/hash/hashutil.c:237 access/hash/hashutil.c:249 access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 access/nbtree/nbtpage.c:824 +#: access/gist/gist.c:768 access/gist/gistutil.c:801 access/gist/gistutil.c:812 access/gist/gistvacuum.c:465 access/hash/hashutil.c:226 access/hash/hashutil.c:237 access/hash/hashutil.c:249 access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "REINDEXを行ってください。" -#: access/gist/gist.c:1196 +#: access/gist/gist.c:1208 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "インデックス\"%s\"内の不完全な分割を修正します、ブロック%u" @@ -1080,33 +1079,33 @@ msgstr "インデックス\"%2$s\"の列%1$dに対するピックスプリット msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command." msgstr "インデックスは最適ではありません。最適化するためには開発者に連絡するか、この列をCREATE INDEXコマンドの2番目の列としてみてください。" -#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 access/nbtree/nbtpage.c:810 +#: access/gist/gistutil.c:798 access/hash/hashutil.c:223 access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "インデックス\"%s\"のブロック%uに予期していないゼロで埋められたページがあります" -#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:809 access/hash/hashutil.c:234 access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "インデックス\"%s\"のブロック%uに破損したページがあります" -#: access/gist/gistvalidate.c:202 +#: access/gist/gistvalidate.c:200 #, c-format msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は演算子%3$sに対する非サポートのORDER BY指定を含んでいます" -#: access/gist/gistvalidate.c:213 +#: access/gist/gistvalidate.c:211 #, c-format msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は演算子%3$sに対する正しくないORDER BY演算子族を含んでいます" -#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:331 utils/adt/varchar.c:1008 utils/adt/varchar.c:1063 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:332 utils/adt/varchar.c:1000 utils/adt/varchar.c:1056 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "文字列のハッシュ値計算で使用する照合順序を特定できませんでした" -#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:332 catalog/heap.c:672 catalog/heap.c:678 commands/createas.c:201 commands/createas.c:510 commands/indexcmds.c:2045 commands/tablecmds.c:18071 commands/view.c:81 regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 utils/adt/like_support.c:1024 utils/adt/varchar.c:738 utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 -#: utils/adt/varlena.c:1521 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:333 catalog/heap.c:679 catalog/heap.c:685 commands/createas.c:203 commands/createas.c:516 commands/indexcmds.c:2090 commands/tablecmds.c:19879 commands/view.c:80 regex/regc_pg_locale.c:245 utils/adt/formatting.c:1655 utils/adt/formatting.c:1719 utils/adt/formatting.c:1783 utils/adt/formatting.c:1847 utils/adt/like.c:163 utils/adt/like.c:194 utils/adt/like_support.c:1020 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1001 utils/adt/varchar.c:1057 utils/adt/varlena.c:1592 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "照合順序を明示するには COLLATE 句を使います。" @@ -1116,7 +1115,7 @@ msgstr "照合順序を明示するには COLLATE 句を使います。" msgid "index row size %zu exceeds hash maximum %zu" msgstr "インデックス行のサイズ%zuがハッシュでの最大値%zuを超えています" -#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1020 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1039 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "バッファページよりも大きな値をインデックスすることはできません。" @@ -1131,7 +1130,7 @@ msgstr "不正なオーバーフローブロック番号%u" msgid "out of overflow pages in hash index \"%s\"" msgstr "ハッシュインデックス\"%s\"の中のオーバーフローページが足りません" -#: access/hash/hashsearch.c:311 +#: access/hash/hashsearch.c:313 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "ハッシュインデックスはインデックス全体のスキャンをサポートしていません" @@ -1146,47 +1145,52 @@ msgstr "インデックス\"%s\"はハッシュインデックスではありま msgid "index \"%s\" has wrong hash version" msgstr "インデックス\"%s\"のハッシュバージョンが不正です" -#: access/hash/hashvalidate.c:198 +#: access/hash/hashvalidate.c:188 #, c-format msgid "operator family \"%s\" of access method %s lacks support function for operator %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は演算子%3$sに対するサポート関数を含んでいません" -#: access/hash/hashvalidate.c:256 access/nbtree/nbtvalidate.c:276 +#: access/hash/hashvalidate.c:246 access/nbtree/nbtvalidate.c:272 #, c-format msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は異なる型間に対応する演算子を含んでいません" -#: access/heap/heapam.c:2194 +#: access/heap/heapam.c:2257 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "並列ワーカーではタプルの挿入はできません" -#: access/heap/heapam.c:2713 +#: access/heap/heapam.c:2776 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "並列処理中はタプルの削除はできません" -#: access/heap/heapam.c:2760 +#: access/heap/heapam.c:2823 #, c-format msgid "attempted to delete invisible tuple" msgstr "不可視のタプルを削除しようとしました" -#: access/heap/heapam.c:3208 access/heap/heapam.c:6081 +#: access/heap/heapam.c:3271 access/index/genam.c:829 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "並列処理中はタプルの更新はできません" -#: access/heap/heapam.c:3336 +#: access/heap/heapam.c:3448 #, c-format msgid "attempted to update invisible tuple" msgstr "不可視のタプルを更新しようとしました" -#: access/heap/heapam.c:4725 access/heap/heapam.c:4763 access/heap/heapam.c:5028 access/heap/heapam_handler.c:468 +#: access/heap/heapam.c:4959 access/heap/heapam.c:4997 access/heap/heapam.c:5262 access/heap/heapam_handler.c:470 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "リレーション\"%s\"の行ロックを取得できませんでした" -#: access/heap/heapam_handler.c:413 +#: access/heap/heapam.c:6376 commands/trigger.c:3350 executor/nodeModifyTable.c:2545 executor/nodeModifyTable.c:2635 +#, c-format +msgid "tuple to be updated was already modified by an operation triggered by the current command" +msgstr "更新対象のタプルはすでに現在のコマンドによって起動された操作によって変更されています" + +#: access/heap/heapam_handler.c:415 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "ロック対象のタプルは同時に行われた更新によってすでに他の子テーブルに移動されています" @@ -1201,8 +1205,8 @@ msgstr "行が大きすぎます: サイズは%zu、上限は%zu" msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "ファイル\"%1$s\"に書き込めませんでした、%3$dバイト中%2$dバイト書き込みました: %m" -#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:3249 access/transam/xlog.c:3440 access/transam/xlog.c:4277 access/transam/xlog.c:9199 access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:494 postmaster/launch_backend.c:328 postmaster/postmaster.c:4112 postmaster/walsummarizer.c:1067 -#: replication/logical/origin.c:603 replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 utils/time/snapmgr.c:1234 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:3382 access/transam/xlog.c:3590 access/transam/xlog.c:4454 access/transam/xlog.c:9456 access/transam/xlogfuncs.c:693 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:495 postmaster/launch_backend.c:354 postmaster/postmaster.c:4085 postmaster/walsummarizer.c:1219 +#: replication/logical/origin.c:603 replication/slot.c:2252 storage/file/copydir.c:173 storage/file/copydir.c:261 storage/smgr/md.c:252 utils/time/snapmgr.c:1241 #, c-format msgid "could not create file \"%s\": %m" msgstr "ファイル\"%s\"を作成できませんでした: %m" @@ -1212,156 +1216,171 @@ msgstr "ファイル\"%s\"を作成できませんでした: %m" msgid "could not truncate file \"%s\" to %u: %m" msgstr "ファイル\"%s\"を%uバイトに切り詰められませんでした: %m" -#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3299 access/transam/xlog.c:3496 access/transam/xlog.c:4289 commands/dbcommands.c:506 postmaster/launch_backend.c:339 postmaster/launch_backend.c:351 replication/logical/origin.c:615 replication/logical/origin.c:657 replication/logical/origin.c:676 replication/logical/snapbuild.c:1771 replication/slot.c:2094 -#: storage/file/buffile.c:545 storage/file/copydir.c:197 utils/init/miscinit.c:1601 utils/init/miscinit.c:1612 utils/init/miscinit.c:1620 utils/misc/guc.c:4441 utils/misc/guc.c:4472 utils/misc/guc.c:5625 utils/misc/guc.c:5643 utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3443 access/transam/xlog.c:3646 access/transam/xlog.c:4466 commands/dbcommands.c:507 postmaster/launch_backend.c:365 postmaster/launch_backend.c:377 replication/logical/origin.c:615 replication/logical/origin.c:657 replication/logical/origin.c:676 replication/logical/snapbuild.c:1617 replication/slot.c:2287 +#: storage/file/buffile.c:545 storage/file/copydir.c:213 utils/init/miscinit.c:1660 utils/init/miscinit.c:1671 utils/init/miscinit.c:1679 utils/misc/guc.c:4488 utils/misc/guc.c:4519 utils/misc/guc.c:5673 utils/misc/guc.c:5691 utils/time/snapmgr.c:1246 utils/time/snapmgr.c:1253 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: access/heap/vacuumlazy.c:473 +#: access/heap/vacuumlazy.c:814 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "\"%s.%s.%s\"に対して積極的VACUUMを実行しています" -#: access/heap/vacuumlazy.c:478 +#: access/heap/vacuumlazy.c:819 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "\"%s.%s.%s\"に対してVACUUMを実行しています" -#: access/heap/vacuumlazy.c:626 +#: access/heap/vacuumlazy.c:987 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "テーブル\"%s.%s.%s\"のVACUUM完了: インデックススキャン: %d\n" -#: access/heap/vacuumlazy.c:637 +#: access/heap/vacuumlazy.c:998 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "テーブル\"%s.%s.%s\"の周回防止のための積極的自動VACUUM: インデックススキャン: %d\n" -#: access/heap/vacuumlazy.c:639 +#: access/heap/vacuumlazy.c:1000 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "テーブル\"%s.%s.%s\"の周回防止のための自動VACUUM: インデックススキャン: %d\n" -#: access/heap/vacuumlazy.c:644 +#: access/heap/vacuumlazy.c:1005 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "テーブル\"%s.%s.%s\"の積極的自動VACUUM: インデックススキャン: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:1007 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "テーブル\"%s.%s.%s\"の自動VACUUM: インデックススキャン: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:1014 #, c-format -msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" -msgstr "ページ: %u削除、%u残存、%uスキャン (全体の%.2f%%)\n" +msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total), %u eagerly scanned\n" +msgstr "ページ: %u削除、%u残存、%uスキャン (全体の%.2f%%)、%u貪欲スキャン\n" -#: access/heap/vacuumlazy.c:660 +#: access/heap/vacuumlazy.c:1023 #, c-format -msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" -msgstr "タプル: %lld削除、%lld残存、%lldが削除されているがまだ除去できない\n" +msgid "tuples: % removed, % remain, % are dead but not yet removable\n" +msgstr "タプル:%削除、%残存、%が削除されているがまだ除去できません\n" -#: access/heap/vacuumlazy.c:666 +#: access/heap/vacuumlazy.c:1029 #, c-format -msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" -msgstr "未処理のタプル: クリーンナップロックの競合により、%2$uページ中の%1$lld行の削除済みタプルは除去されません\n" +msgid "tuples missed: % dead from %u pages not removed due to cleanup lock contention\n" +msgstr "未処理のタプル: クリーンナップロックの競合により、%2$uページ中の%1$行の削除済みタプルは除去されません\n" -#: access/heap/vacuumlazy.c:672 +#: access/heap/vacuumlazy.c:1035 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "削除可能限界: %u、これは処理完了時には%d XID分過去になります\n" -#: access/heap/vacuumlazy.c:679 +#: access/heap/vacuumlazy.c:1042 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "新しいrelfrozenxid: %u、これは前回の値よりも%d XID分進んでいます\n" -#: access/heap/vacuumlazy.c:687 +#: access/heap/vacuumlazy.c:1050 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "" "新しいrelminmxid: %u、これは前回の値よりも%d MXID分進んでいます\n" "\n" -#: access/heap/vacuumlazy.c:690 +#: access/heap/vacuumlazy.c:1053 +#, c-format +msgid "frozen: %u pages from table (%.2f%% of total) had % tuples frozen\n" +msgstr "凍結: テーブルから%uページ(全体の%.2f%%)で%タプルが凍結されました\n" + +#: access/heap/vacuumlazy.c:1061 #, c-format -msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" -msgstr "凍結: テーブルから%uページ(全体の%.2f%%)で%lldタプルが凍結されました\n" +msgid "visibility map: %u pages set all-visible, %u pages set all-frozen (%u were all-visible)\n" +msgstr "可視性マップ: %uページが全可視 (all-visible)、%uページが全凍結 (all-frozen) (前回は%uページが全可視でした)\n" -#: access/heap/vacuumlazy.c:698 +#: access/heap/vacuumlazy.c:1069 msgid "index scan not needed: " msgstr "インデックススキャンは不要です: " -#: access/heap/vacuumlazy.c:700 +#: access/heap/vacuumlazy.c:1071 msgid "index scan needed: " msgstr "インデックススキャンが必要です: " -#: access/heap/vacuumlazy.c:702 +#: access/heap/vacuumlazy.c:1073 #, c-format -msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" -msgstr "テーブル内の%uページ(全体の%.2f%%)にあった%lld行の削除行識別子が削除されました\n" +msgid "%u pages from table (%.2f%% of total) had % dead item identifiers removed\n" +msgstr "テーブル内の%uページ(全体の%.2f%%)にあった%行の削除行識別子が削除されました\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:1078 msgid "index scan bypassed: " msgstr "インデックススキャンはスキップされました: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:1080 msgid "index scan bypassed by failsafe: " msgstr "フェイルセーフによりインデックススキャンがスキップされました: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:1082 #, c-format -msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" -msgstr "テーブル内の%uページ(全体の%.2f%%)には%lld行の削除行識別子があります\n" +msgid "%u pages from table (%.2f%% of total) have % dead item identifiers\n" +msgstr "テーブル内の%uページ(全体の%.2f%%)には%行の削除行識別子があります\n" -#: access/heap/vacuumlazy.c:726 +#: access/heap/vacuumlazy.c:1097 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "インデックス\"%s\": ページ数: 合計%u、新規削除%u、削除済%u、再利用可%u\n" -#: access/heap/vacuumlazy.c:738 commands/analyze.c:789 +#: access/heap/vacuumlazy.c:1112 commands/analyze.c:817 +#, c-format +msgid "delay time: %.3f ms\n" +msgstr "遅延時間: %.3f ミリ秒\n" + +#: access/heap/vacuumlazy.c:1120 commands/analyze.c:825 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "I/O時間: 読み込み: %.3fミリ秒, 書き込み: %.3fミリ秒\n" -#: access/heap/vacuumlazy.c:748 commands/analyze.c:792 +#: access/heap/vacuumlazy.c:1130 commands/analyze.c:828 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "平均読み込み速度: %.3f MB/s, 平均書き込み速度: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:751 commands/analyze.c:794 +#: access/heap/vacuumlazy.c:1133 commands/analyze.c:830 #, c-format -msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" -msgstr "バッファ使用: %lldヒット, %lld失敗, %lld ダーティ化\n" +msgid "buffer usage: % hits, % reads, % dirtied\n" +msgstr "バッファ使用: ヒット %, 読み込み %, ダーティ化 %\n" -#: access/heap/vacuumlazy.c:756 +#: access/heap/vacuumlazy.c:1138 commands/analyze.c:835 #, c-format -msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" -msgstr "WAL使用量: %lldのレコード, %lldの全ページイメージ, %lluバイト\n" +msgid "WAL usage: % records, % full page images, % bytes, % buffers full\n" +msgstr "WAL使用量: %のレコード, %の全ページイメージ, %バイト, %のバッファフル\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:798 +#: access/heap/vacuumlazy.c:1143 commands/analyze.c:840 #, c-format msgid "system usage: %s" msgstr "システム使用状況: %s" -#: access/heap/vacuumlazy.c:2172 +#: access/heap/vacuumlazy.c:1431 +#, c-format +msgid "disabling eager scanning after freezing %u eagerly scanned blocks of \"%s.%s.%s\"" +msgstr "\"%2$s.%3$s.%4$s\"を貪欲スキャンで%1$uブロックを凍結した後、貪欲スキャンを無効にします" + +#: access/heap/vacuumlazy.c:2820 #, c-format -msgid "table \"%s\": removed %lld dead item identifiers in %u pages" -msgstr "テーブル\"%1$s\": %3$uページ内の%2$lldの削除済み行識別子を除去" +msgid "table \"%s\": removed % dead item identifiers in %u pages" +msgstr "テーブル\"%1$s\": %3$uページ内の%2$の削除済み行識別子を除去" -#: access/heap/vacuumlazy.c:2326 +#: access/heap/vacuumlazy.c:2992 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "%4$d回のインデックススキャンののち、フェイルセーフとしてテーブル\"%1$s.%2$s.%3$s\"の必須ではないメンテナンスをスキップします" -#: access/heap/vacuumlazy.c:2329 +#: access/heap/vacuumlazy.c:2995 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "このテーブルのrelfrozenxidまたはrelminmxidは古すぎます。" -#: access/heap/vacuumlazy.c:2330 +#: access/heap/vacuumlazy.c:2996 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1370,67 +1389,67 @@ msgstr "" "設定パラメータ\"maintenance_work_mem\"または\"autovacuum_work_mem\"を増やすことを検討してください。\n" "VACUUMがトランザクションIDの割り当てに追従できるようにする他の方法を検討する必要があるかもしれません。" -#: access/heap/vacuumlazy.c:2592 +#: access/heap/vacuumlazy.c:3258 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\":競合するロックが存在するため切り詰めを中断します" -#: access/heap/vacuumlazy.c:2662 +#: access/heap/vacuumlazy.c:3328 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "テーブル\"%s\": %uページから%uページに切り詰め" -#: access/heap/vacuumlazy.c:2724 +#: access/heap/vacuumlazy.c:3390 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "テーブル\"%s\": 競合するロック要求が存在するため、切り詰めを保留します" -#: access/heap/vacuumlazy.c:2843 +#: access/heap/vacuumlazy.c:3509 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "\"%s\"のVACUUMに対するパラレルオプションを無効化します --- 一時テーブルは並列にVACUUMできません" -#: access/heap/vacuumlazy.c:3107 +#: access/heap/vacuumlazy.c:3776 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "リレーション\"%3$s.%4$s\"のブロック%1$u、オフセット%2$uのスキャン中" -#: access/heap/vacuumlazy.c:3110 +#: access/heap/vacuumlazy.c:3779 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "リレーション\\\"%2$s.%3$s\\\"のブロック%1$uのスキャン中" -#: access/heap/vacuumlazy.c:3114 +#: access/heap/vacuumlazy.c:3783 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "リレーション\"%s.%s\"のスキャン中" -#: access/heap/vacuumlazy.c:3122 +#: access/heap/vacuumlazy.c:3791 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "リレーション\"%3$s.%4$s\"のブロック%1$u、オフセット%2$uのVACUUM処理中" -#: access/heap/vacuumlazy.c:3125 +#: access/heap/vacuumlazy.c:3794 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "リレーション\\\"%2$s.%3$s\\\"のブロック%1$uのVACUUM処理中" -#: access/heap/vacuumlazy.c:3129 +#: access/heap/vacuumlazy.c:3798 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "リレーション\"%s.%s\"のVACUUM処理中" -#: access/heap/vacuumlazy.c:3134 commands/vacuumparallel.c:1113 +#: access/heap/vacuumlazy.c:3803 commands/vacuumparallel.c:1126 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "リレーション\\\"%2$s.%3$s\\\"のインデックス%1$sのVACUUM処理中" -#: access/heap/vacuumlazy.c:3139 commands/vacuumparallel.c:1119 +#: access/heap/vacuumlazy.c:3808 commands/vacuumparallel.c:1132 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "リレーション\\\"%2$s.%3$s\\\"のインデックス%1$sのクリーンアップ処理中" -#: access/heap/vacuumlazy.c:3145 +#: access/heap/vacuumlazy.c:3814 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "リレーション \"%s.%s\"を%uブロックに切り詰め中" @@ -1445,22 +1464,22 @@ msgstr "アクセスメソッド\"%s\"のタイプが%sではありません" msgid "index access method \"%s\" does not have a handler" msgstr "インデックスアクセスメソッド\"%s\"はハンドラを持っていません" -#: access/index/genam.c:487 +#: access/index/genam.c:498 #, c-format msgid "transaction aborted during system catalog scan" msgstr "システムカタログのスキャン中にトランザクションがアボートしました" -#: access/index/genam.c:655 access/index/indexam.c:82 +#: access/index/genam.c:663 access/index/indexam.c:82 #, c-format msgid "cannot access index \"%s\" while it is being reindexed" msgstr "再作成中であるためインデックス\"%s\"にアクセスできません" -#: access/index/indexam.c:203 catalog/objectaddress.c:1356 commands/indexcmds.c:2873 commands/tablecmds.c:281 commands/tablecmds.c:305 commands/tablecmds.c:17766 commands/tablecmds.c:19584 +#: access/index/indexam.c:203 catalog/objectaddress.c:1361 commands/indexcmds.c:2982 commands/tablecmds.c:284 commands/tablecmds.c:308 commands/tablecmds.c:19568 commands/tablecmds.c:21488 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\"はインデックスではありません" -#: access/index/indexam.c:1028 +#: access/index/indexam.c:1075 #, c-format msgid "operator class %s has no options" msgstr "演算子クラス%sにはオプションはありません" @@ -1480,7 +1499,7 @@ msgstr "キー %s はすでに存在します。" msgid "This may be because of a non-immutable index expression." msgstr "これは不変でないインデックス式が原因である可能性があります" -#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 parser/parse_utilcmd.c:2298 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 parser/parse_utilcmd.c:2483 #, c-format msgid "index \"%s\" is not a btree" msgstr "インデックス\"%s\"はbtreeではありません" @@ -1500,17 +1519,17 @@ msgstr "インデックス\"%s\"に削除処理中の内部ページがありま msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "これは9.3かそれ以前のバージョンで、アップグレード前にVACUUMが中断された際に起きた可能性があります。REINDEXしてください。" -#: access/nbtree/nbtutils.c:5112 +#: access/nbtree/nbtutils.c:4247 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "インデックス行サイズ%1$zuはインデックス\"%4$s\"でのbtreeバージョン %2$u の最大値%3$zuを超えています" -#: access/nbtree/nbtutils.c:5118 +#: access/nbtree/nbtutils.c:4252 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "インデックス行はリレーション\"%3$s\"のタプル(%1$u,%2$u)を参照しています。" -#: access/nbtree/nbtutils.c:5122 +#: access/nbtree/nbtutils.c:4256 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1519,57 +1538,57 @@ msgstr "" "バッファページの1/3を超える値はインデックス化できません。\n" "MD5ハッシュによる関数インデックスを検討するか、もしくは全文テキストインデックスを使用してください。" -#: access/nbtree/nbtvalidate.c:246 +#: access/nbtree/nbtvalidate.c:242 #, c-format msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は型%3$sと%4$sに対応するサポート関数を含んでいません" -#: access/sequence/sequence.c:75 access/table/table.c:145 optimizer/util/plancat.c:143 +#: access/sequence/sequence.c:75 access/table/table.c:145 optimizer/util/plancat.c:144 #, c-format msgid "cannot open relation \"%s\"" msgstr "リレーション\"%s\"はopenできません" -#: access/spgist/spgutils.c:245 +#: access/spgist/spgutils.c:251 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "リーフ型が入力型と異なる場合は圧縮メソッドの定義が必要です" -#: access/spgist/spgutils.c:1017 +#: access/spgist/spgutils.c:1036 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "SP-GiST内部タプルのサイズ%zuが最大値%zuを超えています" -#: access/spgist/spgvalidate.c:136 +#: access/spgist/spgvalidate.c:128 #, c-format msgid "SP-GiST leaf data type %s does not match declared type %s" msgstr "SP-GiSTのリーフデータ型%sは宣言された型%sと一致しません" -#: access/spgist/spgvalidate.c:302 +#: access/spgist/spgvalidate.c:294 #, c-format msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は%4$s型に対するサポート関数%3$dを含んでいません" -#: access/table/tableam.c:255 +#: access/table/tableam.c:256 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "tid (%u, %u) はリレーション\"%s\"に対して妥当ではありません" -#: access/table/tableamapi.c:109 +#: access/table/tableamapi.c:106 #, c-format msgid "\"%s\" cannot be empty." msgstr "\"%s\"は空にはできません。" -#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4858 +#: access/table/tableamapi.c:113 access/transam/xlogrecovery.c:4879 #, c-format msgid "\"%s\" is too long (maximum %d characters)." msgstr "\"%s\"が長過ぎます(最大%d文字)。" -#: access/table/tableamapi.c:139 +#: access/table/tableamapi.c:136 #, c-format msgid "table access method \"%s\" does not exist" msgstr "テーブルアクセスメソッド\"%s\"は存在しません" -#: access/table/tableamapi.c:144 +#: access/table/tableamapi.c:141 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "テーブルアクセスメソッド\"%s\"は存在しません。" @@ -1599,12 +1618,12 @@ msgstr "プライマリサーバーで設定パラメータ\"%s\"がonに設定 msgid "Make sure the configuration parameter \"%s\" is set." msgstr "設定パラメータ\"%s\"が設定されていることを確認してください。" -#: access/transam/multixact.c:1050 +#: access/transam/multixact.c:1097 #, c-format msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "データベース\"%s\"はMultiXactIds周回によるデータ損失を防ぐために、新規のMultiXactIdsを割り当てるコマンドを受け付けていません" -#: access/transam/multixact.c:1052 access/transam/multixact.c:1059 access/transam/multixact.c:1083 access/transam/multixact.c:1092 access/transam/varsup.c:158 access/transam/varsup.c:165 +#: access/transam/multixact.c:1099 access/transam/multixact.c:1106 access/transam/multixact.c:1130 access/transam/multixact.c:1139 access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1613,61 +1632,61 @@ msgstr "" "そのデータベース全体の VACUUM を実行してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" -#: access/transam/multixact.c:1057 +#: access/transam/multixact.c:1104 #, c-format msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "OID %u のデータベースは周回によるデータ損失を防ぐために、新規のMultiXactIdsを割り当てるコマンドを受け付けていません" -#: access/transam/multixact.c:1078 access/transam/multixact.c:2433 +#: access/transam/multixact.c:1125 access/transam/multixact.c:2482 #, 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] "データベース\"%s\"はあと%u個のMultiXactIdが使われる前にVACUUMする必要があります" -#: access/transam/multixact.c:1087 access/transam/multixact.c:2442 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2491 #, 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" msgstr[0] "OID %u のデータベースはあと%u個のMultiXactIdが使われる前にVACUUMする必要があります" -#: access/transam/multixact.c:1148 +#: access/transam/multixact.c:1195 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "マルチトランザクションの\"メンバ\"が制限を超えました" -#: access/transam/multixact.c:1149 +#: access/transam/multixact.c:1196 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "このコマンドで%u個のメンバを持つマルチトランザクションが生成されますが、残りのスペースは %u 個のメンバ分しかありません。" -#: access/transam/multixact.c:1154 +#: access/transam/multixact.c:1201 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." msgstr "\"vacuum_multixact_freeze_min_age\"と\"vacuum_multixact_freeze_table_age\"をより小さな値に設定してOID %u のデータベースでデータベース全体にVACUUMを実行してください。" -#: access/transam/multixact.c:1185 +#: access/transam/multixact.c:1232 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "OID %u のデータベースは更に%d個のマルチトランザクションメンバが使用される前にVACUUMを実行する必要があります" -#: access/transam/multixact.c:1190 +#: access/transam/multixact.c:1237 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." msgstr "\"vacuum_multixact_freeze_min_age\"'と\"vacuum_multixact_freeze_table_age\"をより小さな値に設定した上で、そのデータベースでVACUUMを実行してください。" -#: access/transam/multixact.c:1330 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %uはもう存在しません: 周回しているようです" -#: access/transam/multixact.c:1336 +#: access/transam/multixact.c:1383 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %uを作成できませんでした: 周回している様子" -#: access/transam/multixact.c:2438 access/transam/multixact.c:2447 +#: access/transam/multixact.c:2487 access/transam/multixact.c:2496 #, c-format msgid "" "To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n" @@ -1676,61 +1695,61 @@ msgstr "" "MultiXactIdの割り当て失敗を防ぐために、このデータベースでデータベース全体に対するVACUUMを実行してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" -#: access/transam/multixact.c:2726 +#: access/transam/multixact.c:2775 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "最古のチェックポイント済みのマルチトランザクション%uがディスク上に存在しないため、マルチトランザクションメンバーの周回防止機能を無効にしました" -#: access/transam/multixact.c:2748 +#: access/transam/multixact.c:2797 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "マルチトランザクションメンバーの周回防止機能が有効になりました" -#: access/transam/multixact.c:3131 +#: access/transam/multixact.c:3188 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "最古のマルチトランザクション%uが見つかりません、アクセス可能な最古のものは%u、切り詰めをスキップします" -#: access/transam/multixact.c:3149 +#: access/transam/multixact.c:3206 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "マルチトランザクション%uがディスク上に存在しないため、そこまでの切り詰めができません、切り詰めをスキップします" -#: access/transam/multixact.c:3468 +#: access/transam/multixact.c:3525 #, c-format msgid "invalid MultiXactId: %u" msgstr "不正なMultiXactId: %u" -#: access/transam/parallel.c:731 access/transam/parallel.c:850 +#: access/transam/parallel.c:752 access/transam/parallel.c:871 #, c-format msgid "parallel worker failed to initialize" msgstr "パラレルワーカーの初期化に失敗しました" -#: access/transam/parallel.c:732 access/transam/parallel.c:851 +#: access/transam/parallel.c:753 access/transam/parallel.c:872 #, c-format msgid "More details may be available in the server log." msgstr "詳細な情報がサーバーログにあるかもしれません。" -#: access/transam/parallel.c:912 +#: access/transam/parallel.c:933 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "並列処理中にpostmasterが終了しました" -#: access/transam/parallel.c:1099 +#: access/transam/parallel.c:1120 #, c-format msgid "lost connection to parallel worker" msgstr "パラレルワーカーへの接続を失いました" -#: access/transam/parallel.c:1155 access/transam/parallel.c:1157 +#: access/transam/parallel.c:1176 access/transam/parallel.c:1178 msgid "parallel worker" msgstr "パラレルワーカー" -#: access/transam/parallel.c:1327 replication/logical/applyparallelworker.c:890 +#: access/transam/parallel.c:1348 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "動的共有メモリセグメントをマップできませんでした" -#: access/transam/parallel.c:1332 replication/logical/applyparallelworker.c:896 +#: access/transam/parallel.c:1353 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "動的共有メモリセグメントのマジックナンバーが不正です" @@ -1790,62 +1809,62 @@ msgstr "ID %d の既存の独自リソースマネージャが同じ名前です msgid "registered custom resource manager \"%s\" with ID %d" msgstr "独自リソースマネージャ\"%s\"をID %dで登録しました" -#: access/transam/slru.c:346 +#: access/transam/slru.c:360 #, c-format -msgid "\"%s\" must be a multiple of %d" -msgstr "\"%s\"は%dの倍数でなければなりません" +msgid "\"%s\" must be a multiple of %d." +msgstr "\"%s\"は%dの倍数でなければなりません。" -#: access/transam/slru.c:815 +#: access/transam/slru.c:832 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "ファイル\"%s\"が存在しません。ゼロとして読み込みます" -#: access/transam/slru.c:1044 access/transam/slru.c:1050 access/transam/slru.c:1058 access/transam/slru.c:1063 access/transam/slru.c:1070 access/transam/slru.c:1075 access/transam/slru.c:1082 access/transam/slru.c:1089 +#: access/transam/slru.c:1061 access/transam/slru.c:1067 access/transam/slru.c:1075 access/transam/slru.c:1080 access/transam/slru.c:1087 access/transam/slru.c:1092 access/transam/slru.c:1099 access/transam/slru.c:1106 #, c-format msgid "could not access status of transaction %u" msgstr "トランザクション%uのステータスにアクセスできませんでした" -#: access/transam/slru.c:1045 +#: access/transam/slru.c:1062 #, c-format msgid "Could not open file \"%s\": %m." msgstr "ファイル\"%s\"をオープンできませんでした: %m。" -#: access/transam/slru.c:1051 +#: access/transam/slru.c:1068 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "ファイル\"%s\"のオフセット%dにシークできませんでした: %m。" -#: access/transam/slru.c:1059 +#: access/transam/slru.c:1076 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "ファイル\"%s\"のオフセット%dを読み取れませんでした: %m。" -#: access/transam/slru.c:1064 +#: access/transam/slru.c:1081 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "ファイル\"%s\"のオフセット%dを読み取れませんでした: 読み込んだバイト数が足りません。" -#: access/transam/slru.c:1071 +#: access/transam/slru.c:1088 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "ファイル\"%s\"のオフセット%dに書き出せませんでした: %m。" -#: access/transam/slru.c:1076 +#: access/transam/slru.c:1093 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "ファイル\"%s\"のオフセット%dに書き出せませんでした: 書き込んだバイト数が足りません。" -#: access/transam/slru.c:1083 +#: access/transam/slru.c:1100 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "ファイル\"%s\"をfsyncできませんでした: %m。" -#: access/transam/slru.c:1090 +#: access/transam/slru.c:1107 #, c-format msgid "Could not close file \"%s\": %m." msgstr "ファイル\"%s\"をクローズできませんでした: %m。" -#: access/transam/slru.c:1416 +#: access/transam/slru.c:1433 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "ディレクトリ\"%s\"を切り詰めできませんでした: 明らかに周回しています" @@ -1910,12 +1929,12 @@ msgstr "\"max_prepared_transactions\"を0以外の値に設定してください msgid "transaction identifier \"%s\" is already in use" msgstr "トランザクション識別子\"%s\"はすでに存在します" -#: access/transam/twophase.c:404 access/transam/twophase.c:2541 +#: access/transam/twophase.c:404 access/transam/twophase.c:2530 #, c-format msgid "maximum number of prepared transactions reached" msgstr "準備済みのトランザクションの最大数に達しました" -#: access/transam/twophase.c:405 access/transam/twophase.c:2542 +#: access/transam/twophase.c:405 access/transam/twophase.c:2531 #, c-format msgid "Increase \"max_prepared_transactions\" (currently %d)." msgstr "\"max_prepared_transactions\"を大きくしてください(現在は%d)。" @@ -1950,145 +1969,145 @@ msgstr "終了させるためにはこのトランザクションを準備した msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "識別子\"%s\"の準備されたトランザクションはありません" -#: access/transam/twophase.c:1190 +#: access/transam/twophase.c:1174 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "2相状態ファイルの最大長が制限を超えました" -#: access/transam/twophase.c:1345 +#: access/transam/twophase.c:1329 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" msgstr[0] "ファイル\"%s\"のサイズが不正: %lld バイト" -#: access/transam/twophase.c:1354 +#: access/transam/twophase.c:1338 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "ファイル\"%s\"のCRCオフセットのアライメントが不正です" -#: access/transam/twophase.c:1372 +#: access/transam/twophase.c:1356 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイトのうち%2$dバイトを読み込みました" -#: access/transam/twophase.c:1387 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "ファイル\"%s\"に格納されているマジックナンバーが不正です" -#: access/transam/twophase.c:1393 +#: access/transam/twophase.c:1377 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "ファイル\"%s\"内に格納されているサイズが不正です" -#: access/transam/twophase.c:1405 +#: access/transam/twophase.c:1389 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "算出されたCRCチェックサムがファイル\"%s\"に格納されている値と一致しません" -#: access/transam/twophase.c:1435 access/transam/xlogrecovery.c:565 postmaster/walsummarizer.c:821 replication/logical/logical.c:210 replication/walsender.c:836 +#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:571 postmaster/walsummarizer.c:943 replication/logical/logical.c:211 replication/walsender.c:812 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "WALリーダの割り当てに中に失敗しました。" -#: access/transam/twophase.c:1445 +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "WALの%X/%Xから2相状態を読み取れませんでした: %s" -#: access/transam/twophase.c:1450 +#: access/transam/twophase.c:1434 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "WALの%X/%Xから2相状態を読み取れませんでした" -#: access/transam/twophase.c:1458 +#: access/transam/twophase.c:1442 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "WALの%X/%Xにあるはずの2相状態のデータがありません" -#: access/transam/twophase.c:1754 +#: access/transam/twophase.c:1744 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "ファイル\"%s\"を再作成できませんでした: %m" -#: access/transam/twophase.c:1881 +#: access/transam/twophase.c:1871 #, 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個の2相状態ファイルが書き込まれました" -#: access/transam/twophase.c:2117 +#: access/transam/twophase.c:2106 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "共有メモリから準備済みトランザクション%uを復元します" -#: access/transam/twophase.c:2210 +#: access/transam/twophase.c:2199 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "不要になったトランザクション%uの2相状態ファイルを削除します" -#: access/transam/twophase.c:2217 +#: access/transam/twophase.c:2206 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "不要になったトランザクション%uの2相状態をメモリから削除します" -#: access/transam/twophase.c:2230 +#: access/transam/twophase.c:2219 #, c-format msgid "removing future two-phase state file for transaction %u" -msgstr "未来のトランザクション%uの2相状態ファイルを削除します" +msgstr "トランザクション%uの未来の2相状態ファイルを削除します" -#: access/transam/twophase.c:2237 +#: access/transam/twophase.c:2226 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "未来のトランザクション%uの2相状態をメモリから削除します" -#: access/transam/twophase.c:2262 +#: access/transam/twophase.c:2251 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "トランザクション%uの2相状態ファイルが破損しています" -#: access/transam/twophase.c:2267 +#: access/transam/twophase.c:2256 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "メモリ上にあるトランザクション%uの2相状態が破損しています" -#: access/transam/twophase.c:2524 +#: access/transam/twophase.c:2513 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "トランザクション%uの2相状態ファイルを復元できませんでした" -#: access/transam/twophase.c:2526 +#: access/transam/twophase.c:2515 #, c-format msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." msgstr "2相状態ファイルがWALレコード%X/%Xで見つかりましたが、このトランザクションはすでにディスクから復元済みです。" -#: access/transam/twophase.c:2534 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 +#: access/transam/twophase.c:2523 storage/file/fd.c:514 utils/fmgr/dfmgr.c:199 #, c-format msgid "could not access file \"%s\": %m" msgstr "ファイル\"%s\"にアクセスできませんでした: %m" #: access/transam/varsup.c:156 #, c-format -msgid "database is not accepting commands that assign new XIDs to avoid wraparound data loss in database \"%s\"" -msgstr "データベース\"%s\"はXID周回によるデータ損失を防ぐために、新規のXIDを割り当てるコマンドを受け付けていません" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"" +msgstr "データベース\"%s\"はXID周回によるデータ損失を防ぐために、新規のトランザクションIDを割り当てるコマンドを受け付けていません" #: access/transam/varsup.c:163 #, c-format -msgid "database is not accepting commands that assign new XIDs to avoid wraparound data loss in database with OID %u" -msgstr "OID %u を持つデータベースはXID周回によるデータ損失を防ぐために、新規のXIDを割り当てるマンドを受け付けていません" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u" +msgstr "OID %u を持つデータベースは周回によるデータ損失を防ぐために、新規のトランザクションIDを割り当てるマンドを受け付けていません" #: access/transam/varsup.c:175 access/transam/varsup.c:490 #, c-format msgid "database \"%s\" must be vacuumed within %u transactions" msgstr "データベース\"%s\"は%uトランザクション以内にVACUUMする必要があります" -#: access/transam/varsup.c:178 access/transam/varsup.c:185 access/transam/varsup.c:493 access/transam/varsup.c:500 +#: access/transam/varsup.c:178 #, c-format msgid "" -"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"XIDの割り当て失敗を防ぐために、このデータベースでデータベース全体の VACUUM を実行してください。\n" +"トランザクションIDの割り当て失敗を防ぐために、このデータベースでデータベース全体の VACUUM を実行してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" #: access/transam/varsup.c:182 access/transam/varsup.c:497 @@ -2096,560 +2115,515 @@ msgstr "" msgid "database with OID %u must be vacuumed within %u transactions" msgstr "OID %uのデータベースは%uトランザクション以内にVACUUMを実行する必要があります" -#: access/transam/xact.c:649 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 access/transam/varsup.c:500 +#, c-format +msgid "" +"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "" +"XIDの割り当て失敗を防ぐために、このデータベースでデータベース全体の VACUUM を実行してください。\n" +"古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" + +#: access/transam/xact.c:652 #, c-format -msgid "cannot assign XIDs during a parallel operation" -msgstr "並列処理中にXIDの割り当てはできません" +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "並列処理中にトランザクションIDの割り当てはできません" -#: access/transam/xact.c:840 +#: access/transam/xact.c:843 #, c-format msgid "cannot modify data in a parallel worker" msgstr "並列ワーカーではデータの更新はできません" -#: access/transam/xact.c:1115 +#: access/transam/xact.c:1118 #, c-format msgid "cannot start commands during a parallel operation" msgstr "並列処理中にはコマンドは起動できません" -#: access/transam/xact.c:1123 +#: access/transam/xact.c:1126 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "1トランザクション内では 2^32-2 個より多くのコマンドを実行できません" -#: access/transam/xact.c:1664 +#: access/transam/xact.c:1695 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "コミットされたサブトランザクション数の最大値(%d)が制限を越えました" -#: access/transam/xact.c:2561 +#: access/transam/xact.c:2616 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "一時オブジェクトに対する操作を行ったトランザクションをPREPAREすることはできません" -#: access/transam/xact.c:2571 +#: access/transam/xact.c:2626 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "エクスポートされたスナップショットを持つトランザクションをPREPAREすることはできません" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3593 +#: access/transam/xact.c:3657 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%sはトランザクションブロックの内側では実行できません" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3603 +#: access/transam/xact.c:3667 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%sはサブトランザクションブロックの内側では実行できません" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3613 -#, c-format -msgid "%s cannot be executed within a pipeline" -msgstr "%s はパイプライン内での実行はできません" - -#. translator: %s represents an SQL statement name -#: access/transam/xact.c:3623 +#: access/transam/xact.c:3677 #, c-format msgid "%s cannot be executed from a function" msgstr "%s は関数内での実行はできません" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3694 access/transam/xact.c:4019 access/transam/xact.c:4098 access/transam/xact.c:4221 access/transam/xact.c:4372 access/transam/xact.c:4441 access/transam/xact.c:4552 +#: access/transam/xact.c:3748 access/transam/xact.c:4070 access/transam/xact.c:4149 access/transam/xact.c:4272 access/transam/xact.c:4423 access/transam/xact.c:4492 access/transam/xact.c:4603 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%sはトランザクションブロック内でのみ使用できます" -#: access/transam/xact.c:3905 +#: access/transam/xact.c:3956 #, c-format msgid "there is already a transaction in progress" msgstr "すでにトランザクションが実行中です" -#: access/transam/xact.c:4024 access/transam/xact.c:4103 access/transam/xact.c:4226 +#: access/transam/xact.c:4075 access/transam/xact.c:4154 access/transam/xact.c:4277 #, c-format msgid "there is no transaction in progress" msgstr "実行中のトランザクションがありません" -#: access/transam/xact.c:4114 +#: access/transam/xact.c:4165 #, c-format msgid "cannot commit during a parallel operation" msgstr "並列処理中にはコミットはできません" -#: access/transam/xact.c:4237 +#: access/transam/xact.c:4288 #, c-format msgid "cannot abort during a parallel operation" msgstr "パラレル処理中にロールバックはできません" -#: access/transam/xact.c:4336 +#: access/transam/xact.c:4387 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "パラレル処理中にセーブポイントは定義できません" -#: access/transam/xact.c:4423 +#: access/transam/xact.c:4474 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "並列処理中はセーブポイントの解放はできません" -#: access/transam/xact.c:4433 access/transam/xact.c:4484 access/transam/xact.c:4544 access/transam/xact.c:4593 +#: access/transam/xact.c:4484 access/transam/xact.c:4535 access/transam/xact.c:4595 access/transam/xact.c:4644 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "セーブポイント\"%s\"は存在しません" -#: access/transam/xact.c:4490 access/transam/xact.c:4599 +#: access/transam/xact.c:4541 access/transam/xact.c:4650 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "セーブポイント\"%s\"は現在のセーブポイントレベルには存在しません" -#: access/transam/xact.c:4532 +#: access/transam/xact.c:4583 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "パラレル処理中にセーブポイントのロールバックはできません" -#: access/transam/xact.c:5376 +#: access/transam/xact.c:5438 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "1トランザクション内には 2^32-1 個より多くのサブトランザクションを作成できません" -#: access/transam/xlog.c:1536 +#: access/transam/xlog.c:1552 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "生成されたWALより先の位置までのフラッシュ要求; 要求 %X/%X, 現在位置 %X/%X" -#: access/transam/xlog.c:1763 +#: access/transam/xlog.c:1779 #, c-format msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X" msgstr "生成されたWALより先の位置までの読み込み要求; 要求 %X/%X, 現在位置 %X/%X" -#: access/transam/xlog.c:2204 access/transam/xlog.c:4495 +#: access/transam/xlog.c:2342 access/transam/xlog.c:4690 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WALセグメントサイズは1MBから1GBまでの間の2の累乗でなければなりません。" -#: access/transam/xlog.c:2222 +#: access/transam/xlog.c:2360 #, c-format msgid "\"%s\" must be set to -1 during binary upgrade mode." msgstr "バイナリアップグレードモード中は\"%s\"は-1に設定されている必要があります。" -#: access/transam/xlog.c:2471 +#: access/transam/xlog.c:2597 #, 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:3733 access/transam/xlogutils.c:831 replication/walsender.c:3045 +#: access/transam/xlog.c:3883 access/transam/xlogutils.c:820 replication/walsender.c:3050 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "要求された WAL セグメント %s はすでに削除されています" -#: access/transam/xlog.c:4055 +#: access/transam/xlog.c:4205 #, c-format msgid "could not rename file \"%s\": %m" msgstr "ファイル\"%s\"の名前を変更できませんでした: %m" -#: access/transam/xlog.c:4098 access/transam/xlog.c:4109 access/transam/xlog.c:4130 +#: access/transam/xlog.c:4248 access/transam/xlog.c:4259 access/transam/xlog.c:4280 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "WALディレクトリ\"%s\"は存在しません" -#: access/transam/xlog.c:4115 access/transam/xlog.c:4136 +#: access/transam/xlog.c:4265 access/transam/xlog.c:4286 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "なかったWALディレクトリ\"%s\"を作成しています" -#: access/transam/xlog.c:4119 access/transam/xlog.c:4139 commands/dbcommands.c:3242 +#: access/transam/xlog.c:4269 access/transam/xlog.c:4289 commands/dbcommands.c:3276 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "なかったディレクトリ\"%s\"の作成に失敗しました: %m" -#: access/transam/xlog.c:4206 +#: access/transam/xlog.c:4356 #, c-format msgid "could not generate secret authorization token" msgstr "秘密の認証トークンを生成できませんでした" -#: access/transam/xlog.c:4357 access/transam/xlog.c:4367 access/transam/xlog.c:4393 access/transam/xlog.c:4401 access/transam/xlog.c:4409 access/transam/xlog.c:4415 access/transam/xlog.c:4423 access/transam/xlog.c:4431 access/transam/xlog.c:4439 access/transam/xlog.c:4447 access/transam/xlog.c:4455 access/transam/xlog.c:4463 access/transam/xlog.c:4473 access/transam/xlog.c:4481 utils/init/miscinit.c:1758 +#: access/transam/xlog.c:4534 access/transam/xlog.c:4544 access/transam/xlog.c:4570 access/transam/xlog.c:4580 access/transam/xlog.c:4590 access/transam/xlog.c:4596 access/transam/xlog.c:4606 access/transam/xlog.c:4616 access/transam/xlog.c:4626 access/transam/xlog.c:4636 access/transam/xlog.c:4646 access/transam/xlog.c:4656 access/transam/xlog.c:4668 access/transam/xlog.c:4676 utils/init/miscinit.c:1817 #, c-format msgid "database files are incompatible with server" msgstr "データベースファイルがサーバーと互換性がありません" -#: access/transam/xlog.c:4358 +#: access/transam/xlog.c:4535 #, 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 "データベースクラスタはPG_CONTROL_VERSION %d (0x%08x)で初期化されましたが、サーバーはPG_CONTROL_VERSION %d (0x%08x)でコンパイルされています。" -#: access/transam/xlog.c:4362 +#: access/transam/xlog.c:4539 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "これはバイトオーダの不整合の可能性があります。initdbを実行する必要がありそうです。" -#: access/transam/xlog.c:4368 +#: access/transam/xlog.c:4545 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "データベースクラスタはPG_CONTROL_VERSION %d で初期化されましたが、サーバーは PG_CONTROL_VERSION %d でコンパイルされています。" -#: access/transam/xlog.c:4371 access/transam/xlog.c:4397 access/transam/xlog.c:4405 access/transam/xlog.c:4411 +#: access/transam/xlog.c:4548 access/transam/xlog.c:4576 access/transam/xlog.c:4586 access/transam/xlog.c:4592 #, c-format msgid "It looks like you need to initdb." msgstr "initdbが必要のようです。" -#: access/transam/xlog.c:4383 +#: access/transam/xlog.c:4560 #, c-format msgid "incorrect checksum in control file" msgstr "制御ファイル内のチェックサムが不正です" -#: access/transam/xlog.c:4394 +#. translator: %s is a variable name and %d is its value +#: access/transam/xlog.c:4572 access/transam/xlog.c:4582 access/transam/xlog.c:4598 access/transam/xlog.c:4608 access/transam/xlog.c:4618 access/transam/xlog.c:4628 access/transam/xlog.c:4638 access/transam/xlog.c:4648 access/transam/xlog.c:4658 #, c-format -msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." -msgstr "データベースクラスタは CATALOG_VERSION_NO %d で初期化されましたが、サーバーは CATALOG_VERSION_NO %d でコンパイルされています。" +msgid "The database cluster was initialized with %s %d, but the server was compiled with %s %d." +msgstr "データベースクラスタは %s %d で初期化されましたが、サーバーは %s %d でコンパイルされています。" -#: access/transam/xlog.c:4402 -#, c-format -msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." -msgstr "データベースクラスタは MAXALIGN %d で初期化されましたが、サーバーは MAXALIGN %d でコンパイルされています。" - -#: access/transam/xlog.c:4410 +#: access/transam/xlog.c:4591 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "データベースクラスタはサーバー実行ファイルと異なる浮動小数点書式を使用しているようです。" -#: access/transam/xlog.c:4416 -#, c-format -msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." -msgstr "データベースクラスタは BLCKSZ %d で初期化されましたが、サーバーは BLCKSZ %d でコンパイルされています。" - -#: access/transam/xlog.c:4419 access/transam/xlog.c:4427 access/transam/xlog.c:4435 access/transam/xlog.c:4443 access/transam/xlog.c:4451 access/transam/xlog.c:4459 access/transam/xlog.c:4467 access/transam/xlog.c:4476 access/transam/xlog.c:4484 +#: access/transam/xlog.c:4602 access/transam/xlog.c:4612 access/transam/xlog.c:4622 access/transam/xlog.c:4632 access/transam/xlog.c:4642 access/transam/xlog.c:4652 access/transam/xlog.c:4662 access/transam/xlog.c:4671 access/transam/xlog.c:4679 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "再コンパイルもしくは initdb が必要そうです。" -#: access/transam/xlog.c:4424 -#, c-format -msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." -msgstr "データベースクラスタは RELSEG_SIZE %d で初期化されましたが、サーバーは RELSEG_SIZE %d でコンパイルされています。" - -#: access/transam/xlog.c:4432 -#, c-format -msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." -msgstr "データベースクラスタは XLOG_BLCKSZ %d で初期化されましたが、サーバーは XLOG_BLCKSZ %d でコンパイルされています。" - -#: access/transam/xlog.c:4440 -#, c-format -msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." -msgstr "データベースクラスタは NAMEDATALEN %d で初期化されましたが、サーバーは NAMEDATALEN %d でコンパイルされています。" - -#: access/transam/xlog.c:4448 -#, c-format -msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." -msgstr "データベースクラスタは INDEX_MAX_KEYS %d で初期化されましたが、サーバーは INDEX_MAX_KEYS %d でコンパイルされています。" - -#: access/transam/xlog.c:4456 -#, 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 "データベースクラスタは TOAST_MAX_CHUNK_SIZE %d で初期化されましたが、サーバーは TOAST_MAX_CHUNK_SIZE %d でコンパイルされています。" - -#: access/transam/xlog.c:4464 -#, c-format -msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." -msgstr "データベースクラスタは LOBLKSIZE %d で初期化されましたが、サーバーは LOBLKSIZE %d でコンパイルされています。" - -#: access/transam/xlog.c:4474 +#: access/transam/xlog.c:4669 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "データベースクラスタは USE_FLOAT8_BYVAL なしで初期化されましたが、サーバー側は USE_FLOAT8_BYVAL 付きでコンパイルされています。" -#: access/transam/xlog.c:4482 +#: access/transam/xlog.c:4677 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "データベースクラスタは USE_FLOAT8_BYVAL 付きで初期化されましたが、サーバー側は USE_FLOAT8_BYVAL なしでコンパイルされています。" -#: access/transam/xlog.c:4491 +#: access/transam/xlog.c:4686 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "制御ファイル中の不正なWALセグメントサイズ (%dバイト)" -#: access/transam/xlog.c:4504 +#. translator: both %s are GUC names +#: access/transam/xlog.c:4700 access/transam/xlog.c:4706 #, c-format -msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" -msgstr "\"min_wal_size\"は最低でも\"wal_segment_size\"の2倍である必要があります" +msgid "\"%s\" must be at least twice \"%s\"" +msgstr "\"%s\"は\"%s\"の2倍以上でなければなりません" -#: access/transam/xlog.c:4508 -#, c-format -msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" -msgstr "\"max_wal_size\"は最低でも\"wal_segment_size\"の2倍である必要があります" - -#: access/transam/xlog.c:4656 catalog/namespace.c:4681 commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 replication/slot.c:2429 utils/error/elog.c:2214 +#: access/transam/xlog.c:4868 catalog/namespace.c:4696 commands/tablespace.c:1210 commands/user.c:2542 commands/variable.c:72 replication/slot.c:2655 tcop/postgres.c:3631 utils/error/elog.c:2274 #, c-format msgid "List syntax is invalid." msgstr "リスト文法が無効です" -#: access/transam/xlog.c:4702 commands/user.c:2545 commands/variable.c:173 utils/error/elog.c:2240 +#: access/transam/xlog.c:4914 commands/user.c:2558 commands/variable.c:173 tcop/postgres.c:3647 utils/error/elog.c:2300 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "不明なキーワードです: \"%s\"" -#: access/transam/xlog.c:5122 +#: access/transam/xlog.c:5341 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "ブートストラップの先行書き込みログファイルに書き込めませんでした: %m" -#: access/transam/xlog.c:5130 +#: access/transam/xlog.c:5349 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "ブートストラップの先行書き込みログファイルをfsyncできませんでした: %m" -#: access/transam/xlog.c:5136 +#: access/transam/xlog.c:5355 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "ブートストラップの先行書き込みログファイルをクローズできませんでした: %m" -#: access/transam/xlog.c:5354 +#: access/transam/xlog.c:5580 #, c-format msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering" msgstr "\"wal_level=minimal\"でWALが生成されました、リカバリは続行不可です" -#: access/transam/xlog.c:5355 +#: access/transam/xlog.c:5581 #, c-format msgid "This happens if you temporarily set \"wal_level=minimal\" on the server." msgstr "これはこのサーバーで一時的に\"wal_level=minimal\"にした場合に起こります。" -#: access/transam/xlog.c:5356 +#: access/transam/xlog.c:5582 #, c-format msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." msgstr "\"wal_level\"を\"minimal\"より上位に設定したあとに取得したバックアップを使用してください。" -#: access/transam/xlog.c:5421 +#: access/transam/xlog.c:5647 #, c-format msgid "control file contains invalid checkpoint location" msgstr "制御ファイル内のチェックポイント位置が不正です" -#: access/transam/xlog.c:5432 +#: access/transam/xlog.c:5658 #, c-format msgid "database system was shut down at %s" msgstr "データベースシステムは %s にシャットダウンしました" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5664 #, c-format msgid "database system was shut down in recovery at %s" msgstr "データベースシステムはリカバリ中 %s にシャットダウンしました" -#: access/transam/xlog.c:5444 +#: access/transam/xlog.c:5670 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "データベースシステムはシャットダウン中に中断されました; %s まで動作していたことは確認できます" -#: access/transam/xlog.c:5450 +#: access/transam/xlog.c:5676 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "データベースシステムはリカバリ中 %s に中断されました" -#: access/transam/xlog.c:5452 +#: access/transam/xlog.c:5678 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "これはおそらくデータ破損があり、リカバリのために直前のバックアップを使用しなければならないことを意味します。" -#: access/transam/xlog.c:5458 +#: access/transam/xlog.c:5684 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "データベースシステムはリカバリ中ログ時刻 %s に中断されました" -#: access/transam/xlog.c:5460 +#: access/transam/xlog.c:5686 #, 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 "これが1回以上起きた場合はデータが破損している可能性があるため、より以前のリカバリ目標を選ぶ必要があるかもしれません。" -#: access/transam/xlog.c:5466 +#: access/transam/xlog.c:5692 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "データベースシステムは中断されました: %s まで動作していたことは確認できます" -#: access/transam/xlog.c:5473 +#: access/transam/xlog.c:5699 #, c-format msgid "control file contains invalid database cluster state" msgstr "制御ファイル内のデータベース・クラスタ状態が不正です" -#: access/transam/xlog.c:5860 +#: access/transam/xlog.c:6087 #, c-format msgid "WAL ends before end of online backup" msgstr "オンラインバックアップの終了より前にWALが終了しました" -#: access/transam/xlog.c:5861 +#: access/transam/xlog.c:6088 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "オンラインバックアップ中に生成されたすべてのWALがリカバリで利用可能である必要があります。" -#: access/transam/xlog.c:5865 +#: access/transam/xlog.c:6092 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WALが一貫性があるリカバリポイントより前で終了しました" -#: access/transam/xlog.c:5911 +#: access/transam/xlog.c:6138 #, c-format msgid "selected new timeline ID: %u" msgstr "新しいタイムラインIDを選択: %u" -#: access/transam/xlog.c:5944 +#: access/transam/xlog.c:6171 #, c-format msgid "archive recovery complete" msgstr "アーカイブリカバリが完了しました" -#: access/transam/xlog.c:6552 +#: access/transam/xlog.c:6803 #, c-format msgid "shutting down" msgstr "シャットダウンしています" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6591 +#: access/transam/xlog.c:6842 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "リスタートポイント開始:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6603 +#: access/transam/xlog.c:6854 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "チェックポイント開始:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6668 +#: access/transam/xlog.c:6919 #, c-format -msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "リスタートポイント完了: %d個のバッファを出力 (%.1f%%); %d個のWALファイルを追加、%d個を削除、%d個を再利用; 書き出し=%ld.%03d秒, 同期=%ld.%03d秒, 全体=%ld.%03d秒; 同期したファイル=%d, 最長=%ld.%03d秒, 平均=%ld.%03d秒; 距離=%d kB, 予測=%d kB; lsn=%X/%X, 再生lsn=%X/%X" +msgid "restartpoint complete: wrote %d buffers (%.1f%%), wrote %d SLRU buffers; %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgstr "リスタートポイント完了: %d個のバッファを出力 (%.1f%%), %d個のSLRUバッファを出力; %d個のWALファイルを追加、%d個を削除、%d個を再利用; 書き出し=%ld.%03d秒, 同期=%ld.%03d秒, 全体=%ld.%03d秒; 同期したファイル=%d, 最長=%ld.%03d秒, 平均=%ld.%03d秒; 距離=%d kB, 予測=%d kB; lsn=%X/%X, 再生lsn=%X/%X" -#: access/transam/xlog.c:6691 +#: access/transam/xlog.c:6943 #, c-format -msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" -msgstr "チェックポイント完了: %d個のバッファを出力 (%.1f%%); %d個のWALファイルを追加、%d個を削除、%d個を再利用; 書き出し=%ld.%03d秒, 同期=%ld.%03d秒, 全体=%ld.%03d秒; 同期したファイル=%d, 最長=%ld.%03d秒, 平均=%ld.%03d秒; 距離=%d kB, 予測=%d kB; lsn=%X/%X, 再生lsn=%X/%X" +msgid "checkpoint complete: wrote %d buffers (%.1f%%), wrote %d SLRU buffers; %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgstr "チェックポイント完了: %d個のバッファを出力 (%.1f%%), %d個のSLRUバッファを出力; %d個のWALファイルを追加、%d個を削除、%d個を再利用; 書き出し=%ld.%03d秒, 同期=%ld.%03d秒, 全体=%ld.%03d秒; 同期したファイル=%d, 最長=%ld.%03d秒, 平均=%ld.%03d秒; 距離=%d kB, 予測=%d kB; lsn=%X/%X, 再生lsn=%X/%X" -#: access/transam/xlog.c:7165 +#: access/transam/xlog.c:7429 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "データベースのシャットダウンに並行して、先行書き込みログが発生しました" -#: access/transam/xlog.c:7749 +#: access/transam/xlog.c:8016 #, c-format msgid "recovery restart point at %X/%X" msgstr "リカバリ再開ポイントは%X/%Xです" -#: access/transam/xlog.c:7751 +#: access/transam/xlog.c:8018 #, c-format msgid "Last completed transaction was at log time %s." msgstr "最後に完了したトランザクションはログ時刻 %s のものです" -#: access/transam/xlog.c:8013 +#: access/transam/xlog.c:8280 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "復帰ポイント\"%s\"が%X/%Xに作成されました" -#: access/transam/xlog.c:8220 +#: access/transam/xlog.c:8487 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "オンラインバックアップはキャンセルされ、リカバリを継続できません" -#: access/transam/xlog.c:8277 +#: access/transam/xlog.c:8545 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "シャットダウンチェックポイントレコードにおいて想定外のタイムラインID %u(%uのはず)がありました" -#: access/transam/xlog.c:8335 +#: access/transam/xlog.c:8603 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "オンラインチェックポイントレコードにおいて想定外のタイムラインID %u(%uのはず)がありました" -#: access/transam/xlog.c:8364 +#: access/transam/xlog.c:8632 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "リカバリ終了チェックポイントレコードにおいて想定外のタイムラインID %u(%uのはず)がありました" -#: access/transam/xlog.c:8635 +#: access/transam/xlog.c:8902 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "ライトスルーファイル\"%s\"をfsyncできませんでした: %m" -#: access/transam/xlog.c:8640 +#: access/transam/xlog.c:8907 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "ファイル\"%s\"をfdatasyncできませんでした: %m" -#: access/transam/xlog.c:8727 access/transam/xlog.c:9063 +#: access/transam/xlog.c:8984 access/transam/xlog.c:9320 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "オンラインバックアップを行うにはWALレベルが不十分です" -#: access/transam/xlog.c:8728 access/transam/xlogfuncs.c:248 +#: access/transam/xlog.c:8985 access/transam/xlog.c:9321 access/transam/xlogfuncs.c:249 #, c-format msgid "\"wal_level\" must be set to \"replica\" or \"logical\" at server start." msgstr "サーバーの開始時に\"wal_level\"を\"replica\"または \"logical\"にセットする必要があります。" -#: access/transam/xlog.c:8733 +#: access/transam/xlog.c:8990 #, c-format msgid "backup label too long (max %d bytes)" msgstr "バックアップラベルが長すぎます (最大%dバイト)" -#: access/transam/xlog.c:8854 +#: access/transam/xlog.c:9111 #, c-format msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint" msgstr "\"full_page_writes=off\"で生成されたWALが最終リスタートポイント以降に再生されました" -#: access/transam/xlog.c:8856 access/transam/xlog.c:9152 +#: access/transam/xlog.c:9113 access/transam/xlog.c:9409 #, 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 primary, and then try an online backup again." msgstr "つまりこのスタンバイで取得されたバックアップは破損しており、使用すべきではありません。プライマリで\"full_page_writes\"を有効にしCHECKPOINTを実行したのち、再度オンラインバックアップを試行してください。" -#: access/transam/xlog.c:8936 backup/basebackup.c:1417 utils/adt/misc.c:354 +#: access/transam/xlog.c:9193 backup/basebackup.c:1419 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を読めませんでした: %m" -#: access/transam/xlog.c:8943 backup/basebackup.c:1422 utils/adt/misc.c:359 +#: access/transam/xlog.c:9200 backup/basebackup.c:1424 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "シンボリックリンク\"%s\"の参照先が長すぎます" -#: access/transam/xlog.c:9064 -#, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." -msgstr "サーバーの開始時にwal_levelを\"replica\"または \"logical\"にセットする必要があります。" - -#: access/transam/xlog.c:9102 backup/basebackup.c:1281 +#: access/transam/xlog.c:9359 backup/basebackup.c:1283 #, c-format msgid "the standby was promoted during online backup" msgstr "オンラインバックアップ中にスタンバイが昇格しました" -#: access/transam/xlog.c:9103 backup/basebackup.c:1282 +#: access/transam/xlog.c:9360 backup/basebackup.c:1284 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "つまり取得中のバックアップは破損しているため使用してはいけません。再度オンラインバックアップを取得してください。" -#: access/transam/xlog.c:9150 +#: access/transam/xlog.c:9407 #, c-format msgid "WAL generated with \"full_page_writes=off\" was replayed during online backup" msgstr "\"full_page_writes=off\"で生成されたWALがオンラインバックアップ中に再生されました" -#: access/transam/xlog.c:9266 +#: access/transam/xlog.c:9523 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "ベースバックアップ完了、必要な WAL セグメントがアーカイブされるのを待っています" -#: access/transam/xlog.c:9280 +#: access/transam/xlog.c:9537 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "まだ必要なすべての WAL セグメントがアーカイブされるのを待っています(%d 秒経過)" -#: access/transam/xlog.c:9282 +#: access/transam/xlog.c:9539 #, 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 "\"archive_command\"が正しく実行されていることを確認してください。バックアップ処理は安全に取り消すことができますが、全てのWALセグメントがそろわなければこのバックアップは利用できません。" -#: access/transam/xlog.c:9289 +#: access/transam/xlog.c:9546 #, c-format msgid "all required WAL segments have been archived" msgstr "必要なすべての WAL セグメントがアーカイブされました" -#: access/transam/xlog.c:9293 +#: access/transam/xlog.c:9550 #, 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 アーカイブが有効になっていません。バックアップを完了させるには、すべての必要なWALセグメントが他の方法でコピーされたことを確認してください。" -#: access/transam/xlog.c:9332 +#: access/transam/xlog.c:9589 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "バックエンドがpg_backup_stopの呼び出し前に終了したため、バックアップは異常終了しました" @@ -2692,268 +2666,268 @@ msgstr "アーカイブステータスファイル\"%s\"を作成できません msgid "could not write archive status file \"%s\": %m" msgstr "アーカイブステータスファイル\"%s\"に書き込めませんでした: %m" -#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 +#: access/transam/xlogfuncs.c:70 backup/basebackup.c:999 #, c-format msgid "a backup is already in progress in this session" msgstr "このセッションではすでにバックアップが進行中です" -#: access/transam/xlogfuncs.c:140 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "backup is not in progress" msgstr "バックアップが進行中ではありません" -#: access/transam/xlogfuncs.c:141 +#: access/transam/xlogfuncs.c:142 #, c-format msgid "Did you call pg_backup_start()?" msgstr "pg_backup_start()を呼び出しましたか?" -#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:323 +#: access/transam/xlogfuncs.c:185 access/transam/xlogfuncs.c:243 access/transam/xlogfuncs.c:282 access/transam/xlogfuncs.c:303 access/transam/xlogfuncs.c:324 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "リカバリ中はWAL制御関数は実行できません。" -#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 access/transam/xlogfuncs.c:447 +#: access/transam/xlogfuncs.c:210 access/transam/xlogfuncs.c:390 access/transam/xlogfuncs.c:448 #, c-format msgid "%s cannot be executed during recovery." msgstr "リカバリ中は %s を実行できません。" -#: access/transam/xlogfuncs.c:215 +#: access/transam/xlogfuncs.c:216 #, c-format msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" msgstr "pg_log_standby_snapshot()は\"wal_level >= replica\"のときだけ使用できます" -#: access/transam/xlogfuncs.c:247 +#: access/transam/xlogfuncs.c:248 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "リストアポイントを作るにはWALレベルが不足しています" -#: access/transam/xlogfuncs.c:255 +#: access/transam/xlogfuncs.c:256 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "リストアポイントとしては値が長すぎます(最大%d文字)" -#: access/transam/xlogfuncs.c:486 +#: access/transam/xlogfuncs.c:487 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "WALファイル名\"%s\"は不正です" -#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 access/transam/xlogfuncs.c:679 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 access/transam/xlogfuncs.c:680 #, c-format msgid "recovery is not in progress" msgstr "リカバリが進行中ではありません" -#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 access/transam/xlogfuncs.c:680 +#: access/transam/xlogfuncs.c:524 access/transam/xlogfuncs.c:554 access/transam/xlogfuncs.c:578 access/transam/xlogfuncs.c:601 access/transam/xlogfuncs.c:681 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "リカバリ制御関数リカバリ中にのみを実行可能です。" -#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "standby promotion is ongoing" msgstr "スタンバイの昇格を実行中です" -#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 +#: access/transam/xlogfuncs.c:530 access/transam/xlogfuncs.c:560 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%sは昇格を開始した後には実行できません。" -#: access/transam/xlogfuncs.c:685 +#: access/transam/xlogfuncs.c:686 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\"は負の値もしくはゼロにはできません" -#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 +#: access/transam/xlogfuncs.c:708 storage/ipc/signalfuncs.c:293 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "postmasterにシグナルを送信できませんでした: %m" -#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#: access/transam/xlogfuncs.c:740 libpq/be-secure.c:241 libpq/be-secure.c:350 #, c-format msgid "terminating connection due to unexpected postmaster exit" msgstr "予期しないpostmasterの終了のため、コネクションを終了します" -#: access/transam/xlogfuncs.c:740 +#: access/transam/xlogfuncs.c:741 #, c-format msgid "while waiting on promotion" msgstr "昇格の待機中" -#: access/transam/xlogfuncs.c:744 +#: access/transam/xlogfuncs.c:745 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" msgstr[0] "サーバーは%d秒以内に昇格しませんでした" -#: access/transam/xlogprefetcher.c:1088 +#: access/transam/xlogprefetcher.c:1086 #, c-format -msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()." -msgstr "\"recovery_prefetch\"はposix_fadvise()を持たないプラットフォームではサポートされません。" +msgid "\"recovery_prefetch\" is not supported on platforms that lack support for issuing read-ahead advice." +msgstr "\"recovery_prefetch\"は先読み指示の発行をサポートしないプラットフォームではサポートされません。" -#: access/transam/xlogreader.c:619 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "%X/%Xのレコードオフセットが不正です:最低でも%uを期待していましたが、実際は%uでした" -#: access/transam/xlogreader.c:628 +#: access/transam/xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%Xでは継続レコードが必要です" -#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 +#: access/transam/xlogreader.c:670 access/transam/xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "%X/%Xのレコード長が不正です:長さは最低でも%uを期待していましたが、実際は%uでした" -#: access/transam/xlogreader.c:758 +#: access/transam/xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%Xでcontrecordフラグがありません" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "%3$X/%4$Xの継続レコードの長さ%1$u(正しくは%2$lld)は不正です" -#: access/transam/xlogreader.c:1142 +#: access/transam/xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "%2$X/%3$XのリソースマネージャID %1$uは不正です" -#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 +#: access/transam/xlogreader.c:1156 access/transam/xlogreader.c:1172 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "%3$X/%4$Xのレコードの後方リンク%1$X/%2$Xが不正です" -#: access/transam/xlogreader.c:1209 +#: access/transam/xlogreader.c:1210 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "%X/%Xのレコード内のリソースマネージャデータのチェックサムが不正です" -#: access/transam/xlogreader.c:1243 +#: access/transam/xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%2$s、LSN %3$X/%4$X、オフセット%5$uで不正なマジックナンバー%1$04X" -#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 +#: access/transam/xlogreader.c:1259 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント %2$s、LSN %3$X/%4$X、オフセット%5$uで不正な情報ビット列%1$04X" -#: access/transam/xlogreader.c:1274 +#: access/transam/xlogreader.c:1275 #, 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ファイルは異なるデータベースシステム由来のものです: WALファイルのデータベースシステム識別子は %lluで、pg_control におけるデータベースシステム識別子は %lluです" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WALファイルは異なるデータベースシステム由来のものです: WALファイルのデータベースシステム識別子は %で、pg_control におけるデータベースシステム識別子は %です" -#: access/transam/xlogreader.c:1282 +#: access/transam/xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ファイルは異なるデータベースシステム由来のものです: ページヘッダーのセグメントサイズが正しくありません" -#: access/transam/xlogreader.c:1288 +#: access/transam/xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ファイルは異なるデータベースシステム由来のものです: ページヘッダーのXLOG_BLCKSZが正しくありません" -#: access/transam/xlogreader.c:1320 +#: access/transam/xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%3$s、LSN %4$X/%5$X、オフセット%6$uで想定外のページアドレス%1$X/%2$X" -#: access/transam/xlogreader.c:1346 +#: access/transam/xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%3$s、LSN %4$X/%5$X、オフセット%6$uで異常な順序のタイムラインID %1$u(%2$uの後)" -#: access/transam/xlogreader.c:1749 +#: access/transam/xlogreader.c:1759 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %uが%X/%Xで不正です" -#: access/transam/xlogreader.c:1773 +#: access/transam/xlogreader.c:1783 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATAが設定されていますが、%X/%Xにデータがありません" -#: access/transam/xlogreader.c:1780 +#: access/transam/xlogreader.c:1790 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATAが設定されていませんが、%2$X/%3$Xのデータ長は%1$uです" -#: access/transam/xlogreader.c:1816 +#: access/transam/xlogreader.c:1826 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEが設定されていますが、%4$X/%5$Xでホールオフセット%1$u、長さ%2$u、ブロックイメージ長%3$uです" -#: access/transam/xlogreader.c:1832 +#: access/transam/xlogreader.c:1842 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEが設定されていませんが、%3$X/%4$Xにおけるホールオフセット%1$uの長さが%2$uです" -#: access/transam/xlogreader.c:1846 +#: access/transam/xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSEDが設定されていますが、%2$X/%3$Xにおいてブロックイメージ長が%1$uです" -#: access/transam/xlogreader.c:1861 +#: access/transam/xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEもBKPIMAGE_COMPRESSEDも設定されていませんが、%2$X/%3$Xにおいてブロックイメージ長が%1$uです" -#: access/transam/xlogreader.c:1877 +#: access/transam/xlogreader.c:1887 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_RELが設定されていますが、%X/%Xにおいて以前のリレーションがありません" -#: access/transam/xlogreader.c:1889 +#: access/transam/xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "%2$X/%3$Xにおけるblock_id %1$uが不正です" -#: access/transam/xlogreader.c:1956 +#: access/transam/xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "%X/%Xのレコードのサイズが不正です" -#: access/transam/xlogreader.c:1982 +#: access/transam/xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WALレコード中ID %dのバックアップブロックを特定できませんでした" -#: access/transam/xlogreader.c:2066 +#: access/transam/xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%Xで不正なブロック%dが指定されているためイメージが復元できませんでした" -#: access/transam/xlogreader.c:2073 +#: access/transam/xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "%X/%Xでブロック%dのイメージが不正な状態であるため復元できませんでした" -#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 +#: access/transam/xlogreader.c:2110 access/transam/xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%1$X/%2$Xで、ブロック%4$dがこのビルドでサポートされない圧縮方式%3$sで圧縮されているため復元できませんでした" -#: access/transam/xlogreader.c:2126 +#: access/transam/xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "%X/%Xでブロック%dのイメージが不明な方式で圧縮されているため復元できませんでした" -#: access/transam/xlogreader.c:2134 +#: access/transam/xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "%X/%Xのブロック%dが伸張できませんでした" -#: access/transam/xlogrecovery.c:617 +#: access/transam/xlogrecovery.c:623 #, c-format msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" msgstr "タイムラインID %5$u上でREDO LSN %1$X/%2$X、チェックポイントLSN %3$X/%4$Xからのバックアップ・リカバリを開始しました" -#: access/transam/xlogrecovery.c:649 +#: access/transam/xlogrecovery.c:655 #, c-format msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X" msgstr "%3$X/%4$Xのチェックポイントレコードが参照しているredo位置%1$X/%2$Xを見つけられませんでした" -#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 +#: access/transam/xlogrecovery.c:657 access/transam/xlogrecovery.c:668 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n" @@ -2965,463 +2939,464 @@ msgstr "" " バックアップからの復旧でなければ、\"%s/backup_label\"の削除を試みてください。.\n" "バックアップからの復旧で\"%s/backup_label\"を削除すると、クラスタが破壊されることに注意してください。" -#: access/transam/xlogrecovery.c:660 +#: access/transam/xlogrecovery.c:666 #, c-format msgid "could not locate required checkpoint record at %X/%X" msgstr "必須のチェックポイントが%X/%Xで見つかりませんでした" -#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 +#: access/transam/xlogrecovery.c:696 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を作成できませんでした: %m" -#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 +#: access/transam/xlogrecovery.c:729 access/transam/xlogrecovery.c:735 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ファイル\"%2$s\"が存在しないためファイル\"%1$s\"を無視します" -#: access/transam/xlogrecovery.c:725 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "ファイル\"%s\"は\"%s\"にリネームされました。" -#: access/transam/xlogrecovery.c:731 +#: access/transam/xlogrecovery.c:737 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m。" -#: access/transam/xlogrecovery.c:770 +#: access/transam/xlogrecovery.c:776 #, c-format msgid "restarting backup recovery with redo LSN %X/%X" msgstr "REDO LSN %X/%Xのバックアプリカバリを再開しました" -#: access/transam/xlogrecovery.c:795 +#: access/transam/xlogrecovery.c:801 #, c-format msgid "could not locate a valid checkpoint record at %X/%X" msgstr "%X/%Xには有効なチェックポイントレコードがありませんでした" -#: access/transam/xlogrecovery.c:806 +#: access/transam/xlogrecovery.c:812 #, c-format msgid "entering standby mode" msgstr "スタンバイモードに入ります" -#: access/transam/xlogrecovery.c:809 +#: access/transam/xlogrecovery.c:815 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "XID%uまでのポイントインタイムリカバリを開始します" -#: access/transam/xlogrecovery.c:813 +#: access/transam/xlogrecovery.c:819 #, c-format msgid "starting point-in-time recovery to %s" msgstr "%sまでのポイントインタイムリカバリを開始します" -#: access/transam/xlogrecovery.c:817 +#: access/transam/xlogrecovery.c:823 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "\"%s\"までのポイントインタイムリカバリを開始します" -#: access/transam/xlogrecovery.c:821 +#: access/transam/xlogrecovery.c:827 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "WAL位置(LSN) \"%X/%X\"までのポイントインタイムリカバリを開始します" -#: access/transam/xlogrecovery.c:825 +#: access/transam/xlogrecovery.c:831 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "最も古い一貫性確保点までのポイントインタイムリカバリを開始します" -#: access/transam/xlogrecovery.c:828 +#: access/transam/xlogrecovery.c:834 #, c-format msgid "starting archive recovery" msgstr "アーカイブリカバリを開始しています" -#: access/transam/xlogrecovery.c:849 +#: access/transam/xlogrecovery.c:855 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "要求されたタイムライン%uはこのサーバーの履歴からの子孫ではありません" -#: access/transam/xlogrecovery.c:851 +#. translator: %s is a backup_label file or a pg_control file +#: access/transam/xlogrecovery.c:858 #, 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 "タイムライン%3$uの最終チェックポイントは%1$X/%2$Xですが、要求されたタイムラインの履歴の中ではサーバーはそのタイムラインから%4$X/%5$Xで分岐しています。" +msgid "Latest checkpoint in file \"%s\" 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 "ファイル\"%1$s\"での最終チェックポイントはタイムライン%4$uの%2$X/%3$Xですが、要求されたタイムラインの履歴上、サーバーはそのタイムラインから%5$X/%6$Xで分岐しています。" -#: access/transam/xlogrecovery.c:865 +#: access/transam/xlogrecovery.c:873 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "要求されたタイムライン%1$uはタイムライン%4$uの最小リカバリポイント%2$X/%3$Xを含みません" -#: access/transam/xlogrecovery.c:893 +#: access/transam/xlogrecovery.c:901 #, c-format msgid "invalid next transaction ID" msgstr "次のトランザクションIDが不正です" -#: access/transam/xlogrecovery.c:898 +#: access/transam/xlogrecovery.c:906 #, c-format msgid "invalid redo in checkpoint record" msgstr "チェックポイントレコード内の不正なREDO" -#: access/transam/xlogrecovery.c:909 +#: access/transam/xlogrecovery.c:917 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "シャットダウン・チェックポイントにおける不正なREDOレコード" -#: access/transam/xlogrecovery.c:938 +#: access/transam/xlogrecovery.c:946 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "データベースシステムは正しくシャットダウンされていません; 自動リカバリを実行中" -#: access/transam/xlogrecovery.c:942 +#: access/transam/xlogrecovery.c:950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "タイムライン%uから、タイムライン%uを目標としてクラッシュリカバリを開始します" -#: access/transam/xlogrecovery.c:985 +#: access/transam/xlogrecovery.c:993 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_labelに制御ファイルと整合しないデータが含まれます" -#: access/transam/xlogrecovery.c:986 +#: access/transam/xlogrecovery.c:994 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "これはバックアップが破損しており、リカバリには他のバックアップを使用しなければならないことを意味します。" -#: access/transam/xlogrecovery.c:1040 +#: access/transam/xlogrecovery.c:1048 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "リカバリコマンドファイル \"%s\"の使用はサポートされません" -#: access/transam/xlogrecovery.c:1105 +#: access/transam/xlogrecovery.c:1113 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "スタンバイモードはシングルユーザーサーバーではサポートされません" -#: access/transam/xlogrecovery.c:1122 +#: access/transam/xlogrecovery.c:1130 #, c-format msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" msgstr "\"primary_conninfo\"と\"restore_command\"のどちらも指定されていません" -#: access/transam/xlogrecovery.c:1123 +#: access/transam/xlogrecovery.c:1131 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "データベースサーバーはpg_walサブディレクトリに置かれたファイルを定期的に確認します。" -#: access/transam/xlogrecovery.c:1131 +#: access/transam/xlogrecovery.c:1139 #, c-format msgid "must specify \"restore_command\" when standby mode is not enabled" msgstr "スタンバイモードを有効にしない場合は、\"restore_command\"の指定が必要です" -#: access/transam/xlogrecovery.c:1169 +#: access/transam/xlogrecovery.c:1177 #, c-format msgid "recovery target timeline %u does not exist" msgstr "リカバリ目標タイムライン%uが存在しません" -#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 +#: access/transam/xlogrecovery.c:1260 access/transam/xlogrecovery.c:1267 access/transam/xlogrecovery.c:1326 access/transam/xlogrecovery.c:1414 access/transam/xlogrecovery.c:1423 access/transam/xlogrecovery.c:1443 #, c-format msgid "invalid data in file \"%s\"" msgstr "ファイル\"%s\"内の不正なデータ" -#: access/transam/xlogrecovery.c:1319 +#: access/transam/xlogrecovery.c:1327 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "読み取られたタイムラインIDは%uでしたが、%uであるはずです。" -#: access/transam/xlogrecovery.c:1330 +#: access/transam/xlogrecovery.c:1338 #, c-format msgid "this is an incremental backup, not a data directory" msgstr "これはデータディレクトリではなく、差分バックアップです" -#: access/transam/xlogrecovery.c:1331 +#: access/transam/xlogrecovery.c:1339 #, c-format msgid "Use pg_combinebackup to reconstruct a valid data directory." msgstr "有効なデータディレクトリを再構築するにはpg_combinebackupを使ってください。" -#: access/transam/xlogrecovery.c:1717 +#: access/transam/xlogrecovery.c:1725 #, c-format msgid "unexpected record type found at redo point %X/%X" msgstr "REDOポイント%X/%Xで想定外のレコードタイプが見つかりました" -#: access/transam/xlogrecovery.c:1740 +#: access/transam/xlogrecovery.c:1748 #, c-format msgid "redo starts at %X/%X" msgstr "REDOを%X/%Xから開始します" -#: access/transam/xlogrecovery.c:1753 +#: access/transam/xlogrecovery.c:1761 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "REDO進行中、経過時間 %ld.%02d秒, 現在のLSN: %X/%X" -#: access/transam/xlogrecovery.c:1843 +#: access/transam/xlogrecovery.c:1851 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "要求されたリカバリ停止ポイントは、一貫性があるリカバリポイントより前にあります" -#: access/transam/xlogrecovery.c:1875 +#: access/transam/xlogrecovery.c:1883 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "REDOが%X/%Xで終了しました、システム使用状況: %s" -#: access/transam/xlogrecovery.c:1881 +#: access/transam/xlogrecovery.c:1889 #, c-format msgid "last completed transaction was at log time %s" msgstr "最後に完了したトランザクションのログ時刻は%sでした" -#: access/transam/xlogrecovery.c:1890 +#: access/transam/xlogrecovery.c:1898 #, c-format msgid "redo is not required" msgstr "REDOは必要ありません" -#: access/transam/xlogrecovery.c:1901 +#: access/transam/xlogrecovery.c:1910 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "指定したリカバリターゲットに到達する前にリカバリが終了しました" -#: access/transam/xlogrecovery.c:2095 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "%X/%Xで%sに上書きされて失われた継続行を正常にスキップしました" -#: access/transam/xlogrecovery.c:2162 +#: access/transam/xlogrecovery.c:2171 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "%2$s で想定外のディレクトリエントリ\"%1$s\"が見つかりました" -#: access/transam/xlogrecovery.c:2164 +#: access/transam/xlogrecovery.c:2173 #, c-format -msgid "All directory entries in pg_tblspc/ should be symbolic links." -msgstr "Pg_tblspc/ のすべてのディレクトリエントリは、シンボリックリンクである必要があります。" +msgid "All directory entries in %s/ should be symbolic links." +msgstr "%s 内のすべてのディレクトリエントリは、シンボリックリンクである必要があります。" -#: access/transam/xlogrecovery.c:2165 +#: access/transam/xlogrecovery.c:2175 #, c-format msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete." msgstr "これらのディレクトリを削除するか、または\"allow_in_place_tablespaces\"を一時的にONに設定することでリカバリを完了させることができます。" -#: access/transam/xlogrecovery.c:2217 +#: access/transam/xlogrecovery.c:2227 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "REDO LSN%X/%X、終了LSN %X/%Xのバックアップ・リカバリが完了しました" -#: access/transam/xlogrecovery.c:2247 +#: access/transam/xlogrecovery.c:2258 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "%X/%X でリカバリの一貫性が確保されました" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2285 +#: access/transam/xlogrecovery.c:2296 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "%X/%Xにある%sのWAL再生" -#: access/transam/xlogrecovery.c:2383 +#: access/transam/xlogrecovery.c:2394 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "チェックポイントレコードにおいて想定外の前回のタイムラインID %u(現在のタイムラインIDは%u)がありました" -#: access/transam/xlogrecovery.c:2392 +#: access/transam/xlogrecovery.c:2403 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "チェックポイントレコードにおいて想定外のタイムラインID %u (%uの後)がありました" -#: access/transam/xlogrecovery.c:2408 +#: access/transam/xlogrecovery.c:2419 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "タイムライン%4$uの最小リカバリポイント%2$X/%3$Xに達する前のチェックポイントレコード内の想定外のタイムラインID%1$u。" -#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 +#: access/transam/xlogrecovery.c:2603 access/transam/xlogrecovery.c:2879 #, c-format msgid "recovery stopping after reaching consistency" msgstr "リカバリ処理は一貫性確保後に停止します" -#: access/transam/xlogrecovery.c:2613 +#: access/transam/xlogrecovery.c:2624 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "リカバリ処理はWAL位置(LSN)\"%X/%X\"の前で停止します" -#: access/transam/xlogrecovery.c:2703 +#: access/transam/xlogrecovery.c:2714 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "リカバリ処理はトランザクション%uのコミット、時刻%sの前に停止します" -#: access/transam/xlogrecovery.c:2710 +#: access/transam/xlogrecovery.c:2721 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "リカバリ処理はトランザクション%uのアボート、時刻%sの前に停止します" -#: access/transam/xlogrecovery.c:2763 +#: access/transam/xlogrecovery.c:2774 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "リカバリ処理は復元ポイント\"%s\"、時刻%s に停止します" -#: access/transam/xlogrecovery.c:2781 +#: access/transam/xlogrecovery.c:2792 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "リカバリ処理はWAL位置(LSN)\"%X/%X\"の後で停止します" -#: access/transam/xlogrecovery.c:2848 +#: access/transam/xlogrecovery.c:2859 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "リカバリ処理はトランザクション%uのコミット、時刻%sの後に停止します" -#: access/transam/xlogrecovery.c:2856 +#: access/transam/xlogrecovery.c:2867 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "リカバリ処理はトランザクション%uのアボート、時刻%sの後に停止します" -#: access/transam/xlogrecovery.c:2937 +#: access/transam/xlogrecovery.c:2948 #, c-format msgid "pausing at the end of recovery" msgstr "リカバリ完了位置で一時停止しています" -#: access/transam/xlogrecovery.c:2938 +#: access/transam/xlogrecovery.c:2949 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "再開するには pg_wal_replay_resume() を実行してください" -#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4678 +#: access/transam/xlogrecovery.c:2952 access/transam/xlogrecovery.c:4698 #, c-format msgid "recovery has paused" msgstr "リカバリは一時停止中です" -#: access/transam/xlogrecovery.c:2942 +#: access/transam/xlogrecovery.c:2953 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "再開するには pg_xlog_replay_resume() を実行してください" -#: access/transam/xlogrecovery.c:3205 +#: access/transam/xlogrecovery.c:3216 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%2$s、LSN %3$X/%4$X、オフセット%5$uで想定外のタイムラインID%1$u" -#: access/transam/xlogrecovery.c:3413 +#: access/transam/xlogrecovery.c:3432 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "WALセグメント%s、LSN %X/%X、オフセット%uを読み取れませんでした: %m" -#: access/transam/xlogrecovery.c:3420 +#: access/transam/xlogrecovery.c:3439 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "WALセグメント%1$s、LSN %2$X/%3$X、オフセット%4$uを読み取れませんでした: %6$zu 中 %5$d の読み込み" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4082 #, c-format msgid "invalid checkpoint location" msgstr "不正なチェックポイント位置" -#: access/transam/xlogrecovery.c:4070 +#: access/transam/xlogrecovery.c:4092 #, c-format msgid "invalid checkpoint record" msgstr "チェックポイントレコードが不正です" -#: access/transam/xlogrecovery.c:4076 +#: access/transam/xlogrecovery.c:4098 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "チェックポイントレコード内のリソースマネージャIDがで不正です" -#: access/transam/xlogrecovery.c:4084 +#: access/transam/xlogrecovery.c:4106 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "チェックポイントレコード内のxl_infoが不正です" -#: access/transam/xlogrecovery.c:4090 +#: access/transam/xlogrecovery.c:4112 #, c-format msgid "invalid length of checkpoint record" msgstr "チェックポイントレコード長が不正です" -#: access/transam/xlogrecovery.c:4144 +#: access/transam/xlogrecovery.c:4166 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "新しいタイムライン%uはデータベースシステムのタイムライン%uの子ではありません" -#: access/transam/xlogrecovery.c:4158 +#: access/transam/xlogrecovery.c:4180 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "新しいタイムライン%uは現在のデータベースシステムのタイムライン%uから現在のリカバリポイント%X/%Xより前に分岐しています" -#: access/transam/xlogrecovery.c:4177 +#: access/transam/xlogrecovery.c:4199 #, c-format msgid "new target timeline is %u" msgstr "新しい目標タイムラインは%uです" -#: access/transam/xlogrecovery.c:4380 +#: access/transam/xlogrecovery.c:4400 #, c-format msgid "WAL receiver process shutdown requested" msgstr "wal receiverプロセスのシャットダウンが要求されました" -#: access/transam/xlogrecovery.c:4440 +#: access/transam/xlogrecovery.c:4460 #, c-format msgid "received promote request" msgstr "昇格要求を受信しました" -#: access/transam/xlogrecovery.c:4669 +#: access/transam/xlogrecovery.c:4689 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "不十分なパラメータ設定のため、ホットスタンバイを使用できません" -#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 access/transam/xlogrecovery.c:4727 +#: access/transam/xlogrecovery.c:4690 access/transam/xlogrecovery.c:4717 access/transam/xlogrecovery.c:4747 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d はプライマリサーバーの設定値より小さいです、プライマリサーバーではこの値は%dでした。" -#: access/transam/xlogrecovery.c:4679 +#: access/transam/xlogrecovery.c:4699 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "リカバリの一時停止を解除すると、サーバーはシャットダウンします。" -#: access/transam/xlogrecovery.c:4680 +#: access/transam/xlogrecovery.c:4700 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "その後、必要な設定変更を行った後にサーバーを再起動できます。" -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4711 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "不十分なパラメータ設定のため、昇格できません" -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4721 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "必要な設定変更を行ったのち、サーバーを再起動してください。" -#: access/transam/xlogrecovery.c:4725 +#: access/transam/xlogrecovery.c:4745 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "不十分なパラメータ設定値のためリカバリが停止しました" -#: access/transam/xlogrecovery.c:4731 +#: access/transam/xlogrecovery.c:4751 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "必要な設定変更を行うことでサーバーを再起動できます。" -#: access/transam/xlogrecovery.c:4773 +#: access/transam/xlogrecovery.c:4792 #, c-format msgid "multiple recovery targets specified" msgstr "複数のリカバリ目標が指定されています" -#: access/transam/xlogrecovery.c:4774 +#: access/transam/xlogrecovery.c:4793 #, 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 "\" recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time, recovery_target_xid\" はこの中の1つまで設定可能です。" -#: access/transam/xlogrecovery.c:4785 +#: access/transam/xlogrecovery.c:4804 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "\"immediate\"のみが指定可能です。" -#: access/transam/xlogrecovery.c:4937 utils/adt/timestamp.c:202 utils/adt/timestamp.c:455 +#: access/transam/xlogrecovery.c:4958 #, c-format -msgid "timestamp out of range: \"%s\"" -msgstr "timestampが範囲外です: \"%s\"" +msgid "Timestamp out of range: \"%s\"." +msgstr "timestampが範囲外です: \"%s\"。" -#: access/transam/xlogrecovery.c:4982 +#: access/transam/xlogrecovery.c:5003 #, c-format msgid "\"recovery_target_timeline\" is not a valid number." msgstr "\"recovery_target_timeline\"が数値として妥当ではありません。" -#: access/transam/xlogutils.c:1032 +#: access/transam/xlogutils.c:1023 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "WALセグメント%s、オフセット%dを読み取れませんでした: %m" -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1030 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "WALセグメント%1$s、オフセット%2$dを読み取れませんでした: %4$d 中 %3$d 読み込みました" @@ -3441,7 +3416,7 @@ msgstr "失敗したアーカイブコマンドは次のとおりです: %s" msgid "archive command was terminated by exception 0x%X" msgstr "アーカイブコマンドが例外0x%Xで終了しました" -#: archive/shell_archive.c:109 postmaster/postmaster.c:3094 +#: archive/shell_archive.c:109 postmaster/postmaster.c:2843 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "16進値の説明についてはC インクルードファイル\"ntstatus.h\"を参照してください。" @@ -3456,159 +3431,159 @@ msgstr "アーカイブコマンドはシグナル%dにより終了しました: msgid "archive command exited with unrecognized status %d" msgstr "アーカイブコマンドは不明のステータス%dで終了しました" -#: backup/backup_manifest.c:254 +#: backup/backup_manifest.c:255 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "最終タイムライン%uを期待していましたがタイムライン%uが見つかりました" -#: backup/backup_manifest.c:278 +#: backup/backup_manifest.c:279 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "開始タイムライン%uを期待していましたがタイムライン%uが見つかりました" -#: backup/backup_manifest.c:305 +#: backup/backup_manifest.c:306 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "開始タイムライン%uはタイムライン%uの履歴中にありません" -#: backup/backup_manifest.c:356 +#: backup/backup_manifest.c:357 #, c-format msgid "could not rewind temporary file" msgstr "一時ファイルを巻き戻しに失敗しました" -#: backup/basebackup.c:479 +#: backup/basebackup.c:481 #, c-format msgid "could not find any WAL files" msgstr "WALファイルが全くありません" -#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 +#: backup/basebackup.c:496 backup/basebackup.c:511 backup/basebackup.c:520 #, c-format msgid "could not find WAL file \"%s\"" msgstr "WALファイル\"%s\"がありませんでした" -#: backup/basebackup.c:560 backup/basebackup.c:585 +#: backup/basebackup.c:562 backup/basebackup.c:587 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "想定しないWALファイルのサイズ\"%s\"" -#: backup/basebackup.c:656 +#: backup/basebackup.c:658 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" msgstr[0] "合計%lld個のデータチェックサム検証エラー" -#: backup/basebackup.c:663 +#: backup/basebackup.c:665 #, c-format msgid "checksum verification failure during base backup" msgstr "ベースバックアップ中にチェックサム確認が失敗しました" -#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 +#: backup/basebackup.c:735 backup/basebackup.c:744 backup/basebackup.c:755 backup/basebackup.c:772 backup/basebackup.c:781 backup/basebackup.c:790 backup/basebackup.c:805 backup/basebackup.c:822 backup/basebackup.c:831 backup/basebackup.c:843 backup/basebackup.c:867 backup/basebackup.c:881 backup/basebackup.c:892 backup/basebackup.c:903 backup/basebackup.c:916 #, c-format msgid "duplicate option \"%s\"" msgstr "\"%s\"オプションは重複しています" -#: backup/basebackup.c:761 +#: backup/basebackup.c:763 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "認識されないチェックポイントタイプ: \"%s\"" -#: backup/basebackup.c:793 +#: backup/basebackup.c:795 #, c-format msgid "incremental backups cannot be taken unless WAL summarization is enabled" msgstr "WAL集約が有効でなければ差分バックアップは取得できません" -#: backup/basebackup.c:809 +#: backup/basebackup.c:811 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%dはパラメータ\"%s\"の有効範囲を超えています(%d .. %d)" -#: backup/basebackup.c:854 +#: backup/basebackup.c:856 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "認識できない目録オプション: \"%s\"" -#: backup/basebackup.c:905 +#: backup/basebackup.c:907 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "認識できない圧縮アルゴリズム: \"%s\"" -#: backup/basebackup.c:921 +#: backup/basebackup.c:923 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "認識できないベースバックアップオプション: \"%s\"" -#: backup/basebackup.c:932 +#: backup/basebackup.c:934 #, c-format msgid "manifest checksums require a backup manifest" msgstr "目録のチェックサムにはバックアップ目録が必要です" -#: backup/basebackup.c:941 +#: backup/basebackup.c:943 #, c-format msgid "target detail cannot be used without target" msgstr "ターゲット詳細はターゲットの指定なしでは指定できません" -#: backup/basebackup.c:950 backup/basebackup_target.c:218 +#: backup/basebackup.c:952 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "ターゲット\"%s\"はターゲット詳細を受け付けません" -#: backup/basebackup.c:961 +#: backup/basebackup.c:963 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "圧縮詳細は圧縮が有効でない場合は指定できません" -#: backup/basebackup.c:974 +#: backup/basebackup.c:976 #, c-format msgid "invalid compression specification: %s" msgstr "不正な圧縮指定: %s" -#: backup/basebackup.c:1024 +#: backup/basebackup.c:1026 #, c-format msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" msgstr "差分のBASE_BACKUPの実行前にUPLOAD_MANIFESTを実行する必要があります" -#: backup/basebackup.c:1157 backup/basebackup.c:1358 +#: backup/basebackup.c:1159 backup/basebackup.c:1360 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "\"%s\"というファイルまたはディレクトリの情報を取得できませんでした。: %m" -#: backup/basebackup.c:1544 +#: backup/basebackup.c:1546 #, c-format msgid "skipping special file \"%s\"" msgstr "スペシャルファイル\"%s\"をスキップしています" -#: backup/basebackup.c:1751 +#: backup/basebackup.c:1753 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "ファイル\"%s\"、ブロック%uでチェックサム検証に失敗しました: 読み込みバッファサイズ%dとページサイズ%dが異なっています" -#: backup/basebackup.c:1813 +#: backup/basebackup.c:1815 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" msgstr[0] "ファイル\"%s\"では合計%d個のチェックサムエラーが発生しました" -#: backup/basebackup.c:1917 +#: backup/basebackup.c:1920 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "ファイル\"%s\"のブロック%uでチェックサム検証が失敗しました: 計算されたチェックサムは%Xですが想定は%Xです" -#: backup/basebackup.c:1924 +#: backup/basebackup.c:1927 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "ファイル\"%s\"における以降のチェックサムエラーは報告されません" -#: backup/basebackup.c:2048 +#: backup/basebackup.c:2052 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "ファイル名がtarフォーマットに対して長すぎます: \"%s\"" -#: backup/basebackup.c:2053 +#: backup/basebackup.c:2058 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "シンボリックリンクのリンク先tarのフォーマットにとって長すぎます: ファイル名 \"%s\", リンク先 \"%s\"" -#: backup/basebackup.c:2127 +#: backup/basebackup.c:2132 #, c-format msgid "could not read file \"%s\": read %zd of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$zdバイトを読み込みました" @@ -3623,80 +3598,65 @@ msgstr "このビルドではgzip圧縮はサポートされていません" msgid "could not initialize compression library" msgstr "圧縮ライブラリを初期化できませんでした" -#: backup/basebackup_incremental.c:300 +#: backup/basebackup_incremental.c:292 #, c-format msgid "manifest contains no required WAL ranges" msgstr "必要となるWAL範囲がマニフェストに含まれてません" -#: backup/basebackup_incremental.c:355 +#: backup/basebackup_incremental.c:347 #, c-format msgid "timeline %u found in manifest, but not in this server's history" msgstr "タイムライン%uがマニフェストにありましたが、サーバーの履歴上に存在しません" -#: backup/basebackup_incremental.c:420 +#: backup/basebackup_incremental.c:412 #, c-format msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X" msgstr "マニフェストが%2$X/%3$Xから始まる初期タイムライン%1$uのWALを必要としてますが、このタイムラインは%4$X/%5$Xから始まっています" -#: backup/basebackup_incremental.c:430 +#: backup/basebackup_incremental.c:422 #, c-format msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X" msgstr "マニフェストが%2$X/%3$Xから始まる継続タイムライン%1$uのWALをを必要としてますが、このタイムラインは%4$X/%5$Xから始まっています" -#: backup/basebackup_incremental.c:441 +#: backup/basebackup_incremental.c:433 #, c-format msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X" msgstr "マニフェストは%2$X/%3$Xで終了する最終タイムライン%1$uからのWALを必要としますが、このバックアップは%4$X/%5$Xで開始されます" -#: backup/basebackup_incremental.c:451 -#, c-format -msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" -msgstr "マニフェストが%2$X/%3$Xで終了する非最終タイムライン%1$uのWALをを必要としてますが、このサーバーではタイムラインが%4$X/%5$Xで切り替わっています" - -#: backup/basebackup_incremental.c:518 -#, c-format -msgid "WAL summarization is not progressing" -msgstr "WAL集計が進んでいません" - -#: backup/basebackup_incremental.c:519 -#, c-format -msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." -msgstr "集計は%X/%Xまで進んでいる必要がありますが、ディスク上では%X/%X、メモリ上では%X/%Xよりあとまで進んでいません。" - -#: backup/basebackup_incremental.c:532 +#: backup/basebackup_incremental.c:437 #, c-format -msgid "still waiting for WAL summarization through %X/%X after %ld seconds" -msgstr "%3$ld秒経過しましたが、WAL集計が%1$X/%2$Xに到達するのを待っている状況です" +msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup." +msgstr "これはスタンバイ上の差分バックアップで前回のバックアップ以降の更新が少なかった場合に起きることがあります。" -#: backup/basebackup_incremental.c:535 +#: backup/basebackup_incremental.c:444 #, c-format -msgid "Summarization has reached %X/%X on disk and %X/%X in memory." -msgstr "集計がディスク上で%X/%X、メモリ上で%X/%Xに到達しました。" +msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" +msgstr "マニフェストが%2$X/%3$Xで終了する非最終タイムライン%1$uのWALをを必要としてますが、このサーバーではタイムラインが%4$X/%5$Xで切り替わっています" -#: backup/basebackup_incremental.c:604 +#: backup/basebackup_incremental.c:525 #, c-format msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist" msgstr "WAL集計がタイムライン%u上の%X/%Xから%X/%Xまで必要ですが、そのタイムライン上のそのLSN範囲での集計は存在しません" -#: backup/basebackup_incremental.c:611 +#: backup/basebackup_incremental.c:532 #, c-format msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete" msgstr "WAL集計がタイムライン%u上の%X/%Xから%X/%Xまで必要ですが、そのタイムライン上のそのLSN範囲での集計は不完全です" -#: backup/basebackup_incremental.c:615 +#: backup/basebackup_incremental.c:536 #, c-format msgid "The first unsummarized LSN in this range is %X/%X." msgstr "この範囲で集計されていない最初のLSNは%X/%Xです。" -#: backup/basebackup_incremental.c:1015 +#: backup/basebackup_incremental.c:934 #, c-format msgid "backup manifest version 1 does not support incremental backup" msgstr "バックアップ目録のバージョン1は差分バックアップをサポートしていません" -#: backup/basebackup_incremental.c:1033 +#: backup/basebackup_incremental.c:952 #, c-format -msgid "manifest system identifier is %llu, but database system identifier is %llu" -msgstr "目録のシステム識別子が%lluですが、データベースのシステム識別子は%lluです" +msgid "system identifier in backup manifest is %, but database system identifier is %" +msgstr "バックアップ目録中のシステム識別子が%ですが、データベースのシステム識別子は%です" #: backup/basebackup_lz4.c:67 #, c-format @@ -3718,7 +3678,7 @@ msgstr "\"%s\"ロールの権限を持つロールのみが、サーバー上に msgid "relative path not allowed for backup stored on server" msgstr "サーバー上に格納されるバックアップでは相対パスは指定できません" -#: backup/basebackup_server.c:102 commands/dbcommands.c:477 commands/tablespace.c:157 commands/tablespace.c:173 commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 storage/file/copydir.c:47 +#: backup/basebackup_server.c:102 commands/dbcommands.c:478 commands/tablespace.c:157 commands/tablespace.c:173 commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:2179 storage/file/copydir.c:58 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" @@ -3728,12 +3688,12 @@ msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" msgid "directory \"%s\" exists but is not empty" msgstr "ディレクトリ\"%s\"は存在しますが、空ではありません" -#: backup/basebackup_server.c:123 utils/init/postinit.c:1177 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1171 #, c-format msgid "could not access directory \"%s\": %m" msgstr "ディレクトリ\"%s\"にアクセスできませんでした: %m" -#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 backup/basebackup_server.c:268 backup/basebackup_server.c:275 backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 backup/basebackup_server.c:268 backup/basebackup_server.c:275 backup/walsummary.c:312 storage/smgr/md.c:519 storage/smgr/md.c:526 storage/smgr/md.c:608 storage/smgr/md.c:630 storage/smgr/md.c:1123 #, c-format msgid "Check free disk space." msgstr "ディスクの空き容量をチェックしてください。" @@ -3770,669 +3730,669 @@ msgstr "長距離モードを有効化できませんでした: %s" #: backup/walsummaryfuncs.c:95 #, c-format -msgid "invalid timeline %lld" -msgstr "不正なタイムライン%lld" +msgid "invalid timeline %" +msgstr "不正なタイムライン%" -#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3859 +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:626 tcop/postgres.c:3863 +#, c-format +msgid "--%s must be first argument" +msgstr "--%sは最初の引数でなければなりません" + +#: bootstrap/bootstrap.c:253 postmaster/postmaster.c:640 tcop/postgres.c:3877 #, c-format msgid "--%s requires a value" msgstr "--%sには値が必要です" -#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3864 +#: bootstrap/bootstrap.c:258 postmaster/postmaster.c:645 tcop/postgres.c:3882 #, c-format msgid "-c %s requires a value" msgstr "-c %sは値が必要です" -#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 postmaster/postmaster.c:759 +#: bootstrap/bootstrap.c:296 postmaster/postmaster.c:763 postmaster/postmaster.c:776 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "詳細については\"%s --help\"を実行してください。\n" -#: bootstrap/bootstrap.c:291 +#: bootstrap/bootstrap.c:305 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: コマンドライン引数が不正です\n" -#: catalog/aclchk.c:210 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "グラントオプションはロールにのみ付与できます" -#: catalog/aclchk.c:332 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の列\"%1$s\"に付与された権限はありません" -#: catalog/aclchk.c:337 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "\"%s\"に付与された権限はありません" -#: catalog/aclchk.c:345 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の列\"%1$s\"に対して一部の権限が付与されませんでした" -#: catalog/aclchk.c:350 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "\"%s\"に対して一部の権限が付与されませんでした" -#: catalog/aclchk.c:361 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の列\"%1$s\"から剥奪できた権限はありません" -#: catalog/aclchk.c:366 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "\"%s\"に対して剥奪できた権限はありません" -#: catalog/aclchk.c:374 +#: catalog/aclchk.c:375 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の列\"%1$s\"に対して一部の権限が剥奪できませんでした" -#: catalog/aclchk.c:379 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "\"%s\"に対して一部の権限が剥奪できませんでした" -#: catalog/aclchk.c:411 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "権限付与者は現在のユーザーでなければなりません" -#: catalog/aclchk.c:479 catalog/aclchk.c:1054 +#: catalog/aclchk.c:480 catalog/aclchk.c:982 #, c-format msgid "invalid privilege type %s for relation" msgstr "リレーションに対する不正な権限のタイプ %s" -#: catalog/aclchk.c:483 catalog/aclchk.c:1058 +#: catalog/aclchk.c:484 catalog/aclchk.c:986 #, c-format msgid "invalid privilege type %s for sequence" msgstr "シーケンスに対する不正な権限のタイプ %s" -#: catalog/aclchk.c:487 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "データベースに対する不正な権限タイプ %s" -#: catalog/aclchk.c:491 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "ドメインに対する不正な権限タイプ %s" -#: catalog/aclchk.c:495 catalog/aclchk.c:1062 +#: catalog/aclchk.c:496 catalog/aclchk.c:990 #, c-format msgid "invalid privilege type %s for function" msgstr "関数に対する不正な権限タイプ %s" -#: catalog/aclchk.c:499 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "言語に対する不正な権限タイプ %s" -#: catalog/aclchk.c:503 +#: catalog/aclchk.c:504 catalog/aclchk.c:1010 #, c-format msgid "invalid privilege type %s for large object" msgstr "ラージオブジェクトに対する不正な権限タイプ %s" -#: catalog/aclchk.c:507 catalog/aclchk.c:1078 +#: catalog/aclchk.c:508 catalog/aclchk.c:1006 #, c-format msgid "invalid privilege type %s for schema" msgstr "スキーマに対する不正な権限タイプ %s" -#: catalog/aclchk.c:511 catalog/aclchk.c:1066 +#: catalog/aclchk.c:512 catalog/aclchk.c:994 #, c-format msgid "invalid privilege type %s for procedure" msgstr "プロシージャに対する不正な権限タイプ %s" -#: catalog/aclchk.c:515 catalog/aclchk.c:1070 +#: catalog/aclchk.c:516 catalog/aclchk.c:998 #, c-format msgid "invalid privilege type %s for routine" msgstr "ルーチンに対する不正な権限のタイプ %s" -#: catalog/aclchk.c:519 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "テーブル空間に対する不正な権限タイプ %s" -#: catalog/aclchk.c:523 catalog/aclchk.c:1074 +#: catalog/aclchk.c:524 catalog/aclchk.c:1002 #, c-format msgid "invalid privilege type %s for type" msgstr "型に対する不正な権限タイプ %s" -#: catalog/aclchk.c:527 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "外部データラッパーに対する不正な権限タイプ %s" -#: catalog/aclchk.c:531 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "外部サーバーに対する不正な権限タイプ %s" -#: catalog/aclchk.c:535 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "パラメータに対する不正な権限タイプ %s" -#: catalog/aclchk.c:574 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "列権限はリレーションに対してのみ有効です" -#: catalog/aclchk.c:737 catalog/aclchk.c:3626 catalog/objectaddress.c:1054 catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 -#, c-format -msgid "large object %u does not exist" -msgstr "ラージオブジェクト%uは存在しません" - -#: catalog/aclchk.c:1111 +#: catalog/aclchk.c:1043 #, c-format msgid "default privileges cannot be set for columns" msgstr "デフォルト権限は列には設定できません" -#: catalog/aclchk.c:1147 +#: catalog/aclchk.c:1079 #, c-format msgid "permission denied to change default privileges" msgstr "デフォルト権限を変更する権限がありません" -#: catalog/aclchk.c:1265 +#: catalog/aclchk.c:1197 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "GRANT/REVOKE ON SCHEMAS を使っている時には IN SCHEMA 句は指定できません" -#: catalog/aclchk.c:1616 catalog/catalog.c:629 catalog/objectaddress.c:1523 catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:913 commands/sequence.c:1645 commands/tablecmds.c:7549 commands/tablecmds.c:7703 commands/tablecmds.c:7753 commands/tablecmds.c:7827 commands/tablecmds.c:7897 commands/tablecmds.c:8027 commands/tablecmds.c:8156 commands/tablecmds.c:8250 commands/tablecmds.c:8351 commands/tablecmds.c:8478 commands/tablecmds.c:8508 -#: commands/tablecmds.c:8650 commands/tablecmds.c:8743 commands/tablecmds.c:8877 commands/tablecmds.c:8989 commands/tablecmds.c:12709 commands/tablecmds.c:12890 commands/tablecmds.c:13051 commands/tablecmds.c:14240 commands/tablecmds.c:16866 commands/trigger.c:942 parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 parser/parse_type.c:144 parser/parse_utilcmd.c:3538 parser/parse_utilcmd.c:3578 parser/parse_utilcmd.c:3620 utils/adt/acl.c:2917 -#: utils/adt/ruleutils.c:2811 +#: catalog/aclchk.c:1207 +#, c-format +msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON LARGE OBJECTS" +msgstr "GRANT/REVOKE ON LARGE OBJECTS を使っている時には IN SCHEMA 句は指定できません" + +#: catalog/aclchk.c:1561 catalog/catalog.c:655 catalog/heap.c:2611 catalog/heap.c:2930 catalog/objectaddress.c:1528 catalog/pg_publication.c:570 commands/analyze.c:388 commands/copy.c:1000 commands/sequence.c:1655 commands/tablecmds.c:7750 commands/tablecmds.c:7928 commands/tablecmds.c:8129 commands/tablecmds.c:8258 commands/tablecmds.c:8387 commands/tablecmds.c:8481 commands/tablecmds.c:8584 commands/tablecmds.c:8750 commands/tablecmds.c:8780 +#: commands/tablecmds.c:8935 commands/tablecmds.c:9038 commands/tablecmds.c:9172 commands/tablecmds.c:9285 commands/tablecmds.c:14325 commands/tablecmds.c:14525 commands/tablecmds.c:14686 commands/tablecmds.c:15891 commands/tablecmds.c:18658 commands/trigger.c:947 parser/analyze.c:2660 parser/parse_relation.c:749 parser/parse_target.c:1070 parser/parse_type.c:144 parser/parse_utilcmd.c:3641 parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3723 +#: statistics/attribute_stats.c:209 statistics/attribute_stats.c:948 utils/adt/acl.c:2921 utils/adt/ruleutils.c:2858 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"の列\"%1$s\"は存在しません" -#: catalog/aclchk.c:1861 +#: catalog/aclchk.c:1806 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\"はインデックスです" -#: catalog/aclchk.c:1868 commands/tablecmds.c:14397 commands/tablecmds.c:17775 +#: catalog/aclchk.c:1813 commands/tablecmds.c:16048 commands/tablecmds.c:19577 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\"は複合型です" -#: catalog/aclchk.c:1876 catalog/objectaddress.c:1363 commands/tablecmds.c:263 commands/tablecmds.c:17739 utils/adt/acl.c:2101 utils/adt/acl.c:2131 utils/adt/acl.c:2164 utils/adt/acl.c:2200 utils/adt/acl.c:2231 utils/adt/acl.c:2262 +#: catalog/aclchk.c:1821 catalog/objectaddress.c:1368 commands/tablecmds.c:266 commands/tablecmds.c:19541 utils/adt/acl.c:2105 utils/adt/acl.c:2135 utils/adt/acl.c:2168 utils/adt/acl.c:2204 utils/adt/acl.c:2235 utils/adt/acl.c:2266 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\"はシーケンスではありません" -#: catalog/aclchk.c:1914 +#: catalog/aclchk.c:1859 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "シーケンス \"%s\"では USAGE, SELECT, UPDATE 権限のみをサポートします" -#: catalog/aclchk.c:1931 +#: catalog/aclchk.c:1876 #, c-format msgid "invalid privilege type %s for table" msgstr "テーブルに対する権限タイプ%sは不正です" -#: catalog/aclchk.c:2094 +#: catalog/aclchk.c:2041 #, c-format msgid "invalid privilege type %s for column" msgstr "列では権限タイプ %s は無効です" -#: catalog/aclchk.c:2107 +#: catalog/aclchk.c:2054 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "シーケンス \"%s\"では USAGE, SELECT, UPDATE のみをサポートします" -#: catalog/aclchk.c:2297 +#: catalog/aclchk.c:2245 #, c-format msgid "language \"%s\" is not trusted" msgstr "言語\"%s\"は信頼されていません" -#: catalog/aclchk.c:2299 +#: catalog/aclchk.c:2247 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." msgstr "信頼されない言語はスーパーユーザーのみが使用可能なため、GRANTとREVOKEは信頼されない言語上では実行不可です。" -#: catalog/aclchk.c:2451 +#: catalog/aclchk.c:2398 #, c-format msgid "cannot set privileges of array types" msgstr "配列型の権限を設定できません" -#: catalog/aclchk.c:2452 +#: catalog/aclchk.c:2399 #, c-format msgid "Set the privileges of the element type instead." msgstr "代わりに要素型の権限を設定してください。" -#: catalog/aclchk.c:2456 +#: catalog/aclchk.c:2403 #, c-format msgid "cannot set privileges of multirange types" msgstr "複範囲型の権限を設定できません" -#: catalog/aclchk.c:2457 +#: catalog/aclchk.c:2404 #, c-format msgid "Set the privileges of the range type instead." msgstr "代わりに範囲型の権限を設定してください。" -#: catalog/aclchk.c:2464 catalog/objectaddress.c:1629 -#, c-format -msgid "\"%s\" is not a domain" -msgstr "\"%s\"はドメインではありません" - -#: catalog/aclchk.c:2650 +#: catalog/aclchk.c:2587 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "認識できない権限タイプ\"%s\"" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2654 #, c-format msgid "permission denied for aggregate %s" msgstr "集約 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2657 #, c-format msgid "permission denied for collation %s" msgstr "照合順序 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2660 #, c-format msgid "permission denied for column %s" msgstr "列 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2663 #, c-format msgid "permission denied for conversion %s" msgstr "変換 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2666 #, c-format msgid "permission denied for database %s" msgstr "データベース %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2669 #, c-format msgid "permission denied for domain %s" msgstr "ドメイン %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2672 #, c-format msgid "permission denied for event trigger %s" msgstr "イベントトリガ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2675 #, c-format msgid "permission denied for extension %s" msgstr "機能拡張 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2678 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "外部データラッパ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2681 #, c-format msgid "permission denied for foreign server %s" msgstr "外部サーバー %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2684 #, c-format msgid "permission denied for foreign table %s" msgstr "外部テーブル %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2687 #, c-format msgid "permission denied for function %s" msgstr "関数 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2690 #, c-format msgid "permission denied for index %s" msgstr "インデックス %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2693 #, c-format msgid "permission denied for language %s" msgstr "言語 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2759 +#: catalog/aclchk.c:2696 #, c-format msgid "permission denied for large object %s" msgstr "ラージオブジェクト %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2699 #, c-format msgid "permission denied for materialized view %s" msgstr "実体化ビュー %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2702 #, c-format msgid "permission denied for operator class %s" msgstr "演算子クラス %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2705 #, c-format msgid "permission denied for operator %s" msgstr "演算子 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2708 #, c-format msgid "permission denied for operator family %s" msgstr "演算子族 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2711 #, c-format msgid "permission denied for parameter %s" msgstr "パラメータ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2714 #, c-format msgid "permission denied for policy %s" msgstr "ポリシ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2717 #, c-format msgid "permission denied for procedure %s" msgstr "プロシージャ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for publication %s" msgstr "パブリケーション%sへのアクセスが拒否されました" -#: catalog/aclchk.c:2786 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for routine %s" msgstr "ルーチン %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2789 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for schema %s" msgstr "スキーマ %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2792 commands/sequence.c:647 commands/sequence.c:873 commands/sequence.c:915 commands/sequence.c:956 commands/sequence.c:1743 commands/sequence.c:1789 +#: catalog/aclchk.c:2729 commands/sequence.c:654 commands/sequence.c:880 commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 #, c-format msgid "permission denied for sequence %s" msgstr "シーケンス %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2795 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for statistics object %s" msgstr "統計情報オブジェクト %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2798 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for subscription %s" msgstr "サブスクリプション %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2801 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for table %s" msgstr "テーブル %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2804 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for tablespace %s" msgstr "テーブル空間 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2807 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for text search configuration %s" msgstr "テキスト検索設定 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2810 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for text search dictionary %s" msgstr "テキスト検索辞書 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2813 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for type %s" msgstr "型 %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2816 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for view %s" msgstr "ビュー %s へのアクセスが拒否されました" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2789 #, c-format msgid "must be owner of aggregate %s" msgstr "集約 %s の所有者である必要があります" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2792 #, c-format msgid "must be owner of collation %s" msgstr "照合順序 %s の所有者である必要があります" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2795 #, c-format msgid "must be owner of conversion %s" msgstr "変換 %s の所有者である必要があります" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2798 #, c-format msgid "must be owner of database %s" msgstr "データベース %s の所有者である必要があります" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2801 #, c-format msgid "must be owner of domain %s" msgstr "ドメイン %s の所有者である必要があります" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2804 #, c-format msgid "must be owner of event trigger %s" msgstr "イベントトリガ %s の所有者である必要があります" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2807 #, c-format msgid "must be owner of extension %s" msgstr "機能拡張 %s の所有者である必要があります" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2810 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "外部データラッパー %s の所有者である必要があります" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2813 #, c-format msgid "must be owner of foreign server %s" msgstr "外部サーバー %s の所有者である必要があります" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2816 #, c-format msgid "must be owner of foreign table %s" msgstr "外部テーブル %s の所有者である必要があります" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2819 #, c-format msgid "must be owner of function %s" msgstr "関数 %s の所有者である必要があります" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2822 #, c-format msgid "must be owner of index %s" msgstr "インデックス %s の所有者である必要があります" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2825 #, c-format msgid "must be owner of language %s" msgstr "言語 %s の所有者である必要があります" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2828 #, c-format msgid "must be owner of large object %s" msgstr "ラージオブジェクト %s の所有者である必要があります" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2831 #, c-format msgid "must be owner of materialized view %s" msgstr "実体化ビュー %s の所有者である必要があります" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2834 #, c-format msgid "must be owner of operator class %s" msgstr "演算子クラス %s の所有者である必要があります" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2837 #, c-format msgid "must be owner of operator %s" msgstr "演算子 %s の所有者である必要があります" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2840 #, c-format msgid "must be owner of operator family %s" msgstr "演算子族 %s の所有者である必要があります" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2843 #, c-format msgid "must be owner of procedure %s" msgstr "プロシージャ %s の所有者である必要があります" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2846 #, c-format msgid "must be owner of publication %s" msgstr "パブリケーション %s の所有者である必要があります" -#: catalog/aclchk.c:2912 +#: catalog/aclchk.c:2849 #, c-format msgid "must be owner of routine %s" msgstr "ルーチン %s の所有者である必要があります" -#: catalog/aclchk.c:2915 +#: catalog/aclchk.c:2852 #, c-format msgid "must be owner of sequence %s" msgstr "シーケンス %s の所有者である必要があります" -#: catalog/aclchk.c:2918 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of subscription %s" msgstr "サブスクリプション %s の所有者である必要があります" -#: catalog/aclchk.c:2921 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of table %s" msgstr "テーブル %s の所有者である必要があります" -#: catalog/aclchk.c:2924 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of type %s" msgstr "型 %s の所有者である必要があります" -#: catalog/aclchk.c:2927 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of view %s" msgstr "ビュー %s の所有者である必要があります" -#: catalog/aclchk.c:2930 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of schema %s" msgstr "スキーマ %s の所有者である必要があります" -#: catalog/aclchk.c:2933 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of statistics object %s" msgstr "統計情報オブジェクト %s の所有者である必要があります" -#: catalog/aclchk.c:2936 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of tablespace %s" msgstr "テーブル空間 %s の所有者である必要があります" -#: catalog/aclchk.c:2939 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of text search configuration %s" msgstr "テキスト検索設定 %s の所有者である必要があります" -#: catalog/aclchk.c:2942 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of text search dictionary %s" msgstr "テキスト検索辞書 %s の所有者である必要があります" -#: catalog/aclchk.c:2956 +#: catalog/aclchk.c:2893 #, c-format msgid "must be owner of relation %s" msgstr "リレーション %s の所有者である必要があります" -#: catalog/aclchk.c:3002 +#: catalog/aclchk.c:2939 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の列\"%1$s\"へのアクセスが拒否されました" -#: catalog/aclchk.c:3159 catalog/aclchk.c:4167 catalog/aclchk.c:4198 -#, c-format -msgid "%s with OID %u does not exist" -msgstr "OID %2$uの%1$sは存在しません" - -#: catalog/aclchk.c:3242 catalog/aclchk.c:3261 +#: catalog/aclchk.c:3173 catalog/aclchk.c:3192 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "OID %2$uのリレーションに属性%1$dは存在しません" -#: catalog/aclchk.c:3299 catalog/aclchk.c:3362 catalog/aclchk.c:4001 +#: catalog/aclchk.c:3230 catalog/aclchk.c:3293 catalog/aclchk.c:3932 #, c-format msgid "relation with OID %u does not exist" msgstr "OID %uのリレーションは存在しません" -#: catalog/aclchk.c:3547 +#: catalog/aclchk.c:3478 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "OID %uのパラメータACLは存在しません" -#: catalog/aclchk.c:3720 commands/collationcmds.c:853 commands/publicationcmds.c:1739 +#: catalog/aclchk.c:3557 catalog/objectaddress.c:1055 catalog/pg_largeobject.c:125 libpq/be-fsstubs.c:323 storage/large_object/inv_api.c:247 +#, c-format +msgid "large object %u does not exist" +msgstr "ラージオブジェクト%uは存在しません" + +#: catalog/aclchk.c:3651 commands/collationcmds.c:849 commands/publicationcmds.c:1846 #, c-format msgid "schema with OID %u does not exist" msgstr "OID %uのスキーマは存在しません" -#: catalog/aclchk.c:3794 catalog/aclchk.c:3821 catalog/aclchk.c:3850 utils/cache/typcache.c:392 utils/cache/typcache.c:447 +#: catalog/aclchk.c:3725 catalog/aclchk.c:3752 catalog/aclchk.c:3781 utils/cache/typcache.c:473 utils/cache/typcache.c:528 #, c-format msgid "type with OID %u does not exist" msgstr "OID %uの型は存在しません" -#: catalog/catalog.c:447 +#: catalog/catalog.c:475 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "リレーション\"%s\"での未使用のOIDを探索を継続中" -#: catalog/catalog.c:449 +#: catalog/catalog.c:477 #, c-format -msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." -msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." -msgstr[0] "OID候補のチェックを%llu回行いましたが、使用されていないOIDはまだ見つかっていません。" +msgid "OID candidates have been checked % time, but no unused OID has been found yet." +msgid_plural "OID candidates have been checked % times, but no unused OID has been found yet." +msgstr[0] "OID候補のチェックを%回行いましたが、使用されていないOIDはまだ見つかっていません。" -#: catalog/catalog.c:474 +#: catalog/catalog.c:502 #, c-format -msgid "new OID has been assigned in relation \"%s\" after %llu retry" -msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" -msgstr[0] "リレーション\\\"%s\\\"で%llu回の試行後に新しいOIDが割り当てられました" +msgid "new OID has been assigned in relation \"%s\" after % retry" +msgid_plural "new OID has been assigned in relation \"%s\" after % retries" +msgstr[0] "リレーション\\\"%s\\\"で%回の試行後に新しいOIDが割り当てられました" -#: catalog/catalog.c:607 catalog/catalog.c:674 +#: catalog/catalog.c:633 catalog/catalog.c:700 #, c-format msgid "must be superuser to call %s()" msgstr "%s()を呼び出すにはスーパーユーザーである必要があります" -#: catalog/catalog.c:616 +#: catalog/catalog.c:642 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() はシステムカタログでのみ使用できます" -#: catalog/catalog.c:621 parser/parse_utilcmd.c:2245 +#: catalog/catalog.c:647 parser/parse_utilcmd.c:2426 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "インデックス\"%s\"はテーブル\"%s\"には属していません" -#: catalog/catalog.c:638 +#: catalog/catalog.c:664 #, c-format msgid "column \"%s\" is not of type oid" msgstr "列\"%s\"はoid型ではありません" -#: catalog/catalog.c:645 +#: catalog/catalog.c:671 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "インデックス\"%s\"は列\"%s\"に対するインデックスではありません" -#: catalog/dependency.c:497 catalog/pg_shdepend.c:695 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "データベースシステムが必要としているため%sを削除できません" @@ -4457,7 +4417,7 @@ msgstr "%sは%sに依存しています" msgid "drop cascades to %s" msgstr "削除は%sへ伝播します" -#: catalog/dependency.c:1138 catalog/pg_shdepend.c:860 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -4474,8 +4434,8 @@ msgstr[0] "" msgid "cannot drop %s because other objects depend on it" msgstr "他のオブジェクトが依存しているため%sを削除できません" -#: catalog/dependency.c:1153 catalog/dependency.c:1160 catalog/dependency.c:1171 commands/tablecmds.c:1447 commands/tablecmds.c:14989 commands/tablespace.c:460 commands/user.c:1302 commands/vacuum.c:211 commands/view.c:441 libpq/auth.c:324 replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1427 utils/misc/guc.c:3169 utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6781 -#: utils/misc/guc.c:6815 utils/misc/guc.c:6849 utils/misc/guc.c:6892 utils/misc/guc.c:6934 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 catalog/dependency.c:1171 commands/tablecmds.c:1518 commands/tablecmds.c:16642 commands/tablespace.c:460 commands/user.c:1302 commands/vacuum.c:224 commands/view.c:441 executor/execExprInterp.c:5211 executor/execExprInterp.c:5219 libpq/auth.c:312 replication/logical/applyparallelworker.c:1041 replication/slot.c:1594 replication/syncrep.c:1012 storage/aio/method_io_uring.c:191 storage/lmgr/deadlock.c:1137 +#: storage/lmgr/proc.c:1526 utils/misc/guc.c:3166 utils/misc/guc.c:3207 utils/misc/guc.c:3282 utils/misc/guc.c:6823 utils/misc/guc.c:6857 utils/misc/guc.c:6891 utils/misc/guc.c:6934 utils/misc/guc.c:6976 #, c-format msgid "%s" msgstr "%s" @@ -4496,647 +4456,692 @@ msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "削除は他の%d個のオブジェクトに対しても行われます" -#: catalog/dependency.c:1848 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "%s型の定数をここで使用することはできません" -#: catalog/dependency.c:2373 parser/parse_relation.c:3407 parser/parse_relation.c:3417 +#: catalog/dependency.c:2205 +#, c-format +msgid "transition table \"%s\" cannot be referenced in a persistent object" +msgstr "遷移テーブル\"%s\"は永続オブジェクトからは参照できません" + +#: catalog/dependency.c:2390 parser/parse_relation.c:3513 parser/parse_relation.c:3523 statistics/attribute_stats.c:221 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"の列\"%1$d\"は存在しません" -#: catalog/heap.c:325 +#: catalog/heap.c:321 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "\"%s.%s\"を作成する権限がありません" -#: catalog/heap.c:327 +#: catalog/heap.c:323 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "システムカタログの更新は現在禁止されています" -#: catalog/heap.c:467 commands/tablecmds.c:2483 commands/tablecmds.c:2905 commands/tablecmds.c:7171 +#: catalog/heap.c:463 commands/tablecmds.c:2561 commands/tablecmds.c:3013 commands/tablecmds.c:7360 #, c-format msgid "tables can have at most %d columns" msgstr "テーブルは最大で%d列までしか持てません" -#: catalog/heap.c:485 commands/tablecmds.c:7440 +#: catalog/heap.c:481 commands/tablecmds.c:7662 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "列名\"%s\"はシステム用の列名に使われています" -#: catalog/heap.c:501 +#: catalog/heap.c:497 #, c-format msgid "column name \"%s\" specified more than once" msgstr "列名\"%s\"が複数指定されました" #. translator: first %s is an integer not a name -#: catalog/heap.c:579 +#: catalog/heap.c:575 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "パーティションキー列%sは疑似型%sです" -#: catalog/heap.c:584 +#: catalog/heap.c:580 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "列\"%s\"は疑似型%sです" -#: catalog/heap.c:615 +#: catalog/heap.c:595 +#, c-format +msgid "virtual generated column \"%s\" cannot have a domain type" +msgstr "仮想生成列\"%s\"ではドメイン型は使用できません" + +#: catalog/heap.c:622 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "複合型 %s がそれ自身のメンバーになることはできません" #. translator: first %s is an integer not a name -#: catalog/heap.c:670 +#: catalog/heap.c:677 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "照合可能な型 %2$s のパーティションキー列%1$sのための照合順序が見つかりませんでした" -#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:507 +#: catalog/heap.c:683 commands/createas.c:200 commands/createas.c:513 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "照合可能な型 %2$s を持つ列\"%1$s\"のための照合順序を決定できませんでした" -#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:403 commands/tablecmds.c:4142 commands/tablecmds.c:20463 commands/tablecmds.c:20725 +#: catalog/heap.c:1169 catalog/index.c:901 commands/createas.c:409 commands/tablecmds.c:4295 #, c-format msgid "relation \"%s\" already exists" msgstr "リレーション\"%s\"はすでに存在します" -#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 commands/typecmds.c:1585 commands/typecmds.c:2556 +#: catalog/heap.c:1185 catalog/pg_type.c:434 catalog/pg_type.c:805 catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 commands/typecmds.c:758 commands/typecmds.c:1205 commands/typecmds.c:1431 commands/typecmds.c:1611 commands/typecmds.c:2586 #, c-format msgid "type \"%s\" already exists" msgstr "型\"%s\"はすでに存在します" -#: catalog/heap.c:1178 +#: catalog/heap.c:1186 #, 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 "リレーションは同じ名前の関連する型を持ちます。このため既存の型と競合しない名前である必要があります。" -#: catalog/heap.c:1218 +#: catalog/heap.c:1226 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にTOASTのrelfilenumberの値が設定されていません" -#: catalog/heap.c:1229 +#: catalog/heap.c:1237 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_classのヒープOIDが設定されていません" -#: catalog/heap.c:1239 +#: catalog/heap.c:1247 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にrelfilenumberの値が設定されていません" -#: catalog/heap.c:2121 +#: catalog/heap.c:2192 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"に NO INHERIT 制約は追加できません" -#: catalog/heap.c:2393 +#: catalog/heap.c:2515 #, c-format msgid "check constraint \"%s\" already exists" msgstr "検査制約\"%s\"はすでに存在します" -#: catalog/heap.c:2565 catalog/index.c:913 catalog/pg_constraint.c:724 commands/tablecmds.c:9364 +#: catalog/heap.c:2616 catalog/heap.c:2936 +#, c-format +msgid "cannot add not-null constraint on system column \"%s\"" +msgstr "システム列\"%s\"に対して非NULL制約を追加することはできません" + +#: catalog/heap.c:2643 catalog/heap.c:2769 catalog/heap.c:3020 catalog/index.c:915 catalog/pg_constraint.c:1000 commands/tablecmds.c:9765 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "すでに制約\"%s\"はリレーション\"%s\"に存在します" -#: catalog/heap.c:2572 +#: catalog/heap.c:2776 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "制約\"%s\"は、リレーション\"%s\"上の継承されていない制約と競合します" -#: catalog/heap.c:2583 +#: catalog/heap.c:2787 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "制約\"%s\"は、リレーション\"%s\"上の継承された制約と競合します" -#: catalog/heap.c:2593 +#: catalog/heap.c:2797 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "制約\"%s\"は、リレーション\"%s\"上の NOT VALID 制約と競合します" -#: catalog/heap.c:2598 +#: catalog/heap.c:2809 +#, c-format +msgid "constraint \"%s\" conflicts with NOT ENFORCED constraint on relation \"%s\"" +msgstr "制約\"%s\"は、リレーション\"%s\"上の \\NOT ENFORCED制約と競合します" + +#: catalog/heap.c:2814 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "継承された定義により制約\"%s\"をマージしています" -#: catalog/heap.c:2624 catalog/pg_constraint.c:853 commands/tablecmds.c:3062 commands/tablecmds.c:3365 commands/tablecmds.c:7097 commands/tablecmds.c:15807 commands/tablecmds.c:15938 +#: catalog/heap.c:2838 catalog/pg_constraint.c:778 catalog/pg_constraint.c:1129 commands/tablecmds.c:3178 commands/tablecmds.c:3498 commands/tablecmds.c:7285 commands/tablecmds.c:7966 commands/tablecmds.c:17485 commands/tablecmds.c:17667 #, c-format msgid "too many inheritance parents" msgstr "継承の親テーブルが多すぎます" -#: catalog/heap.c:2708 +#: catalog/heap.c:2955 parser/parse_utilcmd.c:2634 +#, c-format +msgid "conflicting NO INHERIT declaration for not-null constraint on column \"%s\"" +msgstr "列\"%s\"に対する非NULL制約にNO INHERIT宣言が競合しています" + +#: catalog/heap.c:2969 +#, c-format +msgid "conflicting not-null constraint names \"%s\" and \"%s\"" +msgstr "非NULL制約の名前\"%s\"と\"%s\"が競合しています" + +#: catalog/heap.c:2999 +#, c-format +msgid "cannot define not-null constraint on column \"%s\" with NO INHERIT" +msgstr "NO INHERIT指定されている列\"%s\"に対して非NULL制約を定義することはできません" + +#: catalog/heap.c:3001 +#, c-format +msgid "The column has an inherited not-null constraint." +msgstr "この列には継承された非NULL制約が存在します。" + +#: catalog/heap.c:3191 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "生成カラム\"%s\"はカラム生成式中では使用できません" -#: catalog/heap.c:2710 +#: catalog/heap.c:3193 #, c-format msgid "A generated column cannot reference another generated column." msgstr "生成カラムは他の生成カラムを参照できません。" -#: catalog/heap.c:2716 +#: catalog/heap.c:3199 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "列生成式内では行全体参照は使用できません" -#: catalog/heap.c:2717 +#: catalog/heap.c:3200 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "これは生成列を自身の値に依存させることにつながります。" -#: catalog/heap.c:2772 +#: catalog/heap.c:3255 #, c-format msgid "generation expression is not immutable" msgstr "生成式は不変ではありません" -#: catalog/heap.c:2800 rewrite/rewriteHandler.c:1281 +#: catalog/heap.c:3283 rewrite/rewriteHandler.c:1285 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "列\"%s\"の型は%sですが、デフォルト式の型は%sです" -#: catalog/heap.c:2805 commands/prepare.c:331 parser/analyze.c:2758 parser/parse_target.c:592 parser/parse_target.c:882 parser/parse_target.c:892 rewrite/rewriteHandler.c:1286 +#: catalog/heap.c:3288 commands/prepare.c:335 parser/analyze.c:2991 parser/parse_target.c:595 parser/parse_target.c:885 parser/parse_target.c:895 rewrite/rewriteHandler.c:1290 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "式を書き換えるかキャストする必要があります。" -#: catalog/heap.c:2852 +#: catalog/heap.c:3335 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "検査制約ではテーブル\"%s\"のみを参照することができます" -#: catalog/heap.c:3158 +#: catalog/heap.c:3641 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "ON COMMITと外部キーの組み合わせはサポートされていません" -#: catalog/heap.c:3159 +#: catalog/heap.c:3642 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "テーブル\"%s\"は\"%s\"を参照します。しかし、これらのON COMMIT設定は同一ではありません。" -#: catalog/heap.c:3164 +#: catalog/heap.c:3647 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "外部キー制約で参照されているテーブルを削除できません" -#: catalog/heap.c:3165 +#: catalog/heap.c:3648 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "テーブル\"%s\"は\"%s\"を参照します。" -#: catalog/heap.c:3167 +#: catalog/heap.c:3650 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "同時にテーブル\"%s\"がtruncateされました。TRUNCATE ... CASCADEを使用してください。" -#: catalog/index.c:219 parser/parse_utilcmd.c:2151 +#: catalog/index.c:220 parser/parse_utilcmd.c:2331 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "テーブル\"%s\"に複数のプライマリキーを持たせることはできません" -#: catalog/index.c:233 +#: catalog/index.c:234 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "プライマリキーではNULLS NOT DISTINCTであるインデックスを使用することはできません" -#: catalog/index.c:250 +#: catalog/index.c:251 #, c-format msgid "primary keys cannot be expressions" msgstr "プライマリキーを式にすることはできません" -#: catalog/index.c:267 +#: catalog/index.c:268 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "主キー列\"%s\"がNOT NULL指定されていません" -#: catalog/index.c:798 catalog/index.c:1914 +#: catalog/index.c:800 catalog/index.c:1921 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "ユーザーによるシステムカタログテーブルに対するインデックスの定義はサポートされていません" -#: catalog/index.c:838 +#: catalog/index.c:840 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "非決定的照合順序は演算子クラス \"%s\" ではサポートされません" -#: catalog/index.c:853 +#: catalog/index.c:855 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "システムカタログテーブルの並行的インデックス作成はサポートされていません" -#: catalog/index.c:862 catalog/index.c:1330 +#: catalog/index.c:864 catalog/index.c:1333 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "排他制約のためのインデックスの並列的作成はサポートされていません" -#: catalog/index.c:871 +#: catalog/index.c:873 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "initdbの後に共有インデックスを作成できません" -#: catalog/index.c:891 commands/createas.c:418 commands/sequence.c:159 parser/parse_utilcmd.c:212 +#: catalog/index.c:893 commands/createas.c:424 commands/sequence.c:159 parser/parse_utilcmd.c:210 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "リレーション\"%s\"はすでに存在します、スキップします" -#: catalog/index.c:941 +#: catalog/index.c:943 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_classのインデックスOIDが設定されていません" -#: catalog/index.c:951 utils/cache/relcache.c:3787 +#: catalog/index.c:953 utils/cache/relcache.c:3781 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にインデックスのrelfilenumberの値が設定されていません" -#: catalog/index.c:2213 +#: catalog/index.c:2222 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLYはトランザクション内で最初の操作でなければなりません" -#: catalog/index.c:3669 +#: catalog/index.c:3729 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "他のセッションの一時テーブルはインデクス再構築できません" -#: catalog/index.c:3680 commands/indexcmds.c:3648 +#: catalog/index.c:3740 commands/indexcmds.c:3757 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "TOASTテーブルの無効なインデックスの再作成はできません" -#: catalog/index.c:3696 commands/indexcmds.c:3526 commands/indexcmds.c:3672 commands/tablecmds.c:3557 +#: catalog/index.c:3756 commands/indexcmds.c:3635 commands/indexcmds.c:3781 commands/tablecmds.c:3702 #, c-format msgid "cannot move system relation \"%s\"" msgstr "システムリレーション\"%s\"を移動できません" -#: catalog/index.c:3833 +#: catalog/index.c:3893 #, c-format msgid "index \"%s\" was reindexed" msgstr "インデックス\"%s\"のインデックス再構築が完了しました" -#: catalog/index.c:3999 +#: catalog/index.c:4059 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "TOASTテーブルの無効なインデックス \"%s.%s\"の再作成はできません、スキップします " -#: catalog/namespace.c:447 catalog/namespace.c:651 catalog/namespace.c:743 commands/trigger.c:5729 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 commands/trigger.c:5780 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "データベース間の参照は実装されていません: \"%s.%s.%s\"" -#: catalog/namespace.c:504 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "一時テーブルにはスキーマ名を指定できません" -#: catalog/namespace.c:585 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "リレーション\"%s.%s\"のロックを取得できませんでした" -#: catalog/namespace.c:590 commands/lockcmds.c:143 commands/lockcmds.c:223 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "リレーション\"%s\"のロックを取得できませんでした" -#: catalog/namespace.c:618 parser/parse_relation.c:1430 +#: catalog/namespace.c:633 parser/parse_relation.c:1447 statistics/stat_utils.c:231 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "リレーション\"%s.%s\"は存在しません" -#: catalog/namespace.c:623 parser/parse_relation.c:1443 parser/parse_relation.c:1451 utils/adt/regproc.c:913 +#: catalog/namespace.c:638 parser/parse_relation.c:1460 parser/parse_relation.c:1468 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "リレーション\"%s\"は存在しません" -#: catalog/namespace.c:689 catalog/namespace.c:3507 commands/extension.c:1607 commands/extension.c:1613 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1804 commands/extension.c:1810 #, c-format msgid "no schema has been selected to create in" msgstr "作成先のスキーマが選択されていません" -#: catalog/namespace.c:841 catalog/namespace.c:854 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "他のセッションの一時スキーマの中にリレーションを作成できません" -#: catalog/namespace.c:845 +#: catalog/namespace.c:860 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "非一時スキーマの中に一時リレーションを作成できません" -#: catalog/namespace.c:860 +#: catalog/namespace.c:875 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "一時スキーマの中には一時リレーションしか作成できません" -#: catalog/namespace.c:2604 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "統計情報オブジェクト\"%s\"は存在しません" -#: catalog/namespace.c:2746 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "テキスト検索パーサ\"%s\"は存在しません" -#: catalog/namespace.c:2891 utils/adt/regproc.c:1459 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "テキスト検索辞書\"%s\"は存在しません" -#: catalog/namespace.c:3037 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "テキスト検索テンプレート\"%s\"は存在しません" -#: catalog/namespace.c:3182 commands/tsearchcmds.c:1168 utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "テキスト検索設定\"%s\"は存在しません" -#: catalog/namespace.c:3314 parser/parse_expr.c:869 parser/parse_target.c:1259 +#: catalog/namespace.c:3329 parser/parse_expr.c:866 parser/parse_target.c:1262 #, c-format msgid "cross-database references are not implemented: %s" msgstr "データベース間の参照は実装されていません: %s" -#: catalog/namespace.c:3320 gram.y:19230 gram.y:19270 parser/parse_expr.c:876 parser/parse_target.c:1266 +#: catalog/namespace.c:3335 gram.y:19418 gram.y:19458 parser/parse_expr.c:873 parser/parse_target.c:1269 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "修飾名が不適切です(ドット区切りの名前が多すぎます): %s" -#: catalog/namespace.c:3450 +#: catalog/namespace.c:3465 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "一時スキーマへ、または一時スキーマからオブジェクトを移動できません" -#: catalog/namespace.c:3456 +#: catalog/namespace.c:3471 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "TOASTスキーマへ、またはTOASTスキーマからオブジェクトを移動できません" -#: catalog/namespace.c:3529 commands/schemacmds.c:264 commands/schemacmds.c:344 commands/tablecmds.c:1392 utils/adt/regproc.c:1688 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 commands/tablecmds.c:1463 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "スキーマ\"%s\"は存在しません" -#: catalog/namespace.c:3560 +#: catalog/namespace.c:3575 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "リレーション名が不適切です(ドット区切りの名前が多すぎます): %s" -#: catalog/namespace.c:4001 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "エンコーディング\"%2$s\"の照合順序\"%1$s\"は存在しません" -#: catalog/namespace.c:4056 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "変換\"%sは存在しません" -#: catalog/namespace.c:4397 +#: catalog/namespace.c:4412 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "データベース\"%s\"に一時テーブルを作成する権限がありません" -#: catalog/namespace.c:4413 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "リカバリ中は一時テーブルを作成できません" -#: catalog/namespace.c:4419 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "並行処理中は一時テーブルを作成できません" -#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2315 commands/tablecmds.c:12826 parser/parse_utilcmd.c:3249 +#: catalog/objectaddress.c:1376 commands/policy.c:93 commands/policy.c:373 commands/tablecmds.c:260 commands/tablecmds.c:302 commands/tablecmds.c:2386 commands/tablecmds.c:14460 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\"はテーブルではありません" -#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 commands/tablecmds.c:17744 commands/view.c:114 +#: catalog/objectaddress.c:1383 commands/tablecmds.c:272 commands/tablecmds.c:19546 commands/view.c:113 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\"はビューではありません" -#: catalog/objectaddress.c:1385 commands/matview.c:183 commands/tablecmds.c:275 commands/tablecmds.c:17749 +#: catalog/objectaddress.c:1390 commands/matview.c:201 commands/tablecmds.c:278 commands/tablecmds.c:19551 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\"は実体化ビューではありません" -#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 commands/tablecmds.c:17754 +#: catalog/objectaddress.c:1397 commands/tablecmds.c:296 commands/tablecmds.c:19556 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\"は外部テーブルではありません" -#: catalog/objectaddress.c:1433 +#: catalog/objectaddress.c:1438 #, c-format msgid "must specify relation and object name" msgstr "リレーションとオブジェクトの名前の指定が必要です" -#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 +#: catalog/objectaddress.c:1514 catalog/objectaddress.c:1567 #, c-format msgid "column name must be qualified" msgstr "列名を修飾する必要があります" -#: catalog/objectaddress.c:1581 +#: catalog/objectaddress.c:1586 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"の列\"%1$s\"に対するデフォルト値が存在しません" -#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 utils/adt/acl.c:4554 +#: catalog/objectaddress.c:1623 commands/functioncmds.c:132 commands/tablecmds.c:288 commands/typecmds.c:278 commands/typecmds.c:3834 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 utils/adt/acl.c:4558 #, c-format msgid "type \"%s\" does not exist" msgstr "型\"%s\"は存在しません" -#: catalog/objectaddress.c:1737 +#: catalog/objectaddress.c:1634 +#, c-format +msgid "\"%s\" is not a domain" +msgstr "\"%s\"はドメインではありません" + +#: catalog/objectaddress.c:1742 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "%4$sの演算子 %1$d (%2$s, %3$s) がありません" -#: catalog/objectaddress.c:1768 +#: catalog/objectaddress.c:1773 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "%4$s の関数 %1$d (%2$s, %3$s) がありません" -#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 +#: catalog/objectaddress.c:1824 catalog/objectaddress.c:1850 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "ユーザー\"%s\"に対するユーザーマッピングがサーバー\"%s\"には存在しません" -#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:703 +#: catalog/objectaddress.c:1839 commands/foreigncmds.c:430 commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "サーバー\"%s\"は存在しません" -#: catalog/objectaddress.c:1901 +#: catalog/objectaddress.c:1906 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "パブリケーション\"%2$s\"にパブリケーションリレーション\"%1$s\"は存在しません" -#: catalog/objectaddress.c:1948 +#: catalog/objectaddress.c:1953 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "パブリケーション\"%2$s\"にパブリケーションスキーマ\"%1$s\"は存在しません" -#: catalog/objectaddress.c:2006 +#: catalog/objectaddress.c:2014 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "デフォルトのACLオブジェクトタイプ\"%c\"は認識できません" -#: catalog/objectaddress.c:2007 +#: catalog/objectaddress.c:2015 #, c-format -msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -msgstr "有効な値は \"%c\", \"%c\", \"%c\", \"%c\", \"%c\" です。" +msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." +msgstr "有効なオブジェクトタイプは \"%c\"、\"%c\"、\"%c\"、\"%c\"、\"%c\"、\"%c\" です。" -#: catalog/objectaddress.c:2058 +#: catalog/objectaddress.c:2067 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "ユーザー\"%s\"に対する、名前空間\"%s\"の%sへのデフォルトのACLはありません" -#: catalog/objectaddress.c:2063 +#: catalog/objectaddress.c:2072 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "ユーザー\"%s\"に対する%sへのデフォルトACLは存在しません" -#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2098 catalog/objectaddress.c:2155 catalog/objectaddress.c:2210 #, c-format msgid "name or argument lists may not contain nulls" msgstr "名前または引数のリストはnullを含むことができません" -#: catalog/objectaddress.c:2123 +#: catalog/objectaddress.c:2132 #, c-format msgid "unsupported object type \"%s\"" msgstr "サポートされないオブジェクトタイプ\"%s\"" -#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 +#: catalog/objectaddress.c:2151 catalog/objectaddress.c:2168 catalog/objectaddress.c:2233 catalog/objectaddress.c:2317 #, c-format msgid "name list length must be exactly %d" msgstr "名前リストの長さは正確に%dでなくてはなりません" -#: catalog/objectaddress.c:2163 +#: catalog/objectaddress.c:2172 #, c-format msgid "large object OID may not be null" msgstr "ラージオブジェクトのOIDはnullにはなり得ません" -#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 catalog/objectaddress.c:2249 +#: catalog/objectaddress.c:2181 catalog/objectaddress.c:2251 catalog/objectaddress.c:2258 #, c-format msgid "name list length must be at least %d" msgstr "名前リストの長さは%d以上でなくてはなりません" -#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 +#: catalog/objectaddress.c:2244 catalog/objectaddress.c:2265 #, c-format msgid "argument list length must be exactly %d" msgstr "引数リストの長さはちょうど%dである必要があります" -#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2479 libpq/be-fsstubs.c:334 #, c-format msgid "must be owner of large object %u" msgstr "ラージオブジェクト %u の所有者である必要があります" -#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 +#: catalog/objectaddress.c:2494 commands/functioncmds.c:1578 #, c-format msgid "must be owner of type %s or type %s" msgstr "型%sまたは型%sの所有者である必要があります" -#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 catalog/objectaddress.c:2527 +#: catalog/objectaddress.c:2521 catalog/objectaddress.c:2530 catalog/objectaddress.c:2536 #, c-format msgid "permission denied" msgstr "権限がありません" -#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 +#: catalog/objectaddress.c:2522 catalog/objectaddress.c:2531 #, c-format msgid "The current user must have the %s attribute." msgstr "現在のユーザーは%s属性を持つ必要があります。" -#: catalog/objectaddress.c:2528 +#: catalog/objectaddress.c:2537 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "現在のユーザーはロール\"%2$s\"に対する%1$sオプションを持っている必要があります。" -#: catalog/objectaddress.c:2542 +#: catalog/objectaddress.c:2551 #, c-format msgid "must be superuser" msgstr "スーパーユーザーである必要があります" -#: catalog/objectaddress.c:2611 +#: catalog/objectaddress.c:2620 #, c-format msgid "unrecognized object type \"%s\"" msgstr "認識されないオブジェクトタイプ\"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2903 +#: catalog/objectaddress.c:2937 #, c-format msgid "column %s of %s" msgstr "%2$s の列 %1$s" -#: catalog/objectaddress.c:2918 +#: catalog/objectaddress.c:2952 #, c-format msgid "function %s" msgstr "関数%s" -#: catalog/objectaddress.c:2931 +#: catalog/objectaddress.c:2965 #, c-format msgid "type %s" msgstr "型%s" -#: catalog/objectaddress.c:2968 +#: catalog/objectaddress.c:3002 #, c-format msgid "cast from %s to %s" msgstr "%sから%sへの型変換" -#: catalog/objectaddress.c:3001 +#: catalog/objectaddress.c:3035 #, c-format msgid "collation %s" msgstr "照合順序%s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3032 +#: catalog/objectaddress.c:3066 #, c-format msgid "constraint %s on %s" msgstr "%2$sに対する制約%1$s" -#: catalog/objectaddress.c:3038 +#: catalog/objectaddress.c:3072 #, c-format msgid "constraint %s" msgstr "制約%s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3104 #, c-format msgid "conversion %s" msgstr "変換%s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3092 +#: catalog/objectaddress.c:3126 #, c-format msgid "default value for %s" msgstr "%s のデフォルト値" -#: catalog/objectaddress.c:3103 +#: catalog/objectaddress.c:3137 #, c-format msgid "language %s" msgstr "言語%s" -#: catalog/objectaddress.c:3111 +#: catalog/objectaddress.c:3145 #, c-format msgid "large object %u" msgstr "ラージオブジェクト%u" -#: catalog/objectaddress.c:3124 +#: catalog/objectaddress.c:3158 #, c-format msgid "operator %s" msgstr "演算子%s" -#: catalog/objectaddress.c:3161 +#: catalog/objectaddress.c:3195 #, c-format msgid "operator class %s for access method %s" msgstr "アクセスメソッド%2$s用の演算子クラス%1$s" -#: catalog/objectaddress.c:3189 +#: catalog/objectaddress.c:3223 #, c-format msgid "access method %s" msgstr "アクセスメソッド%s" @@ -5145,7 +5150,7 @@ msgstr "アクセスメソッド%s" #. 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:3238 +#: catalog/objectaddress.c:3278 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "%4$sの演算子%1$d (%2$s, %3$s): %5$s" @@ -5154,236 +5159,241 @@ msgstr "%4$sの演算子%1$d (%2$s, %3$s): %5$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 #. function with arguments. -#: catalog/objectaddress.c:3295 +#: catalog/objectaddress.c:3343 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "%4$s の関数 %1$d (%2$s, %3$s): %5$s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3347 +#: catalog/objectaddress.c:3397 #, c-format msgid "rule %s on %s" msgstr "%2$s のルール %1$s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3393 +#: catalog/objectaddress.c:3443 #, c-format msgid "trigger %s on %s" msgstr "%2$s のトリガ %1$s" -#: catalog/objectaddress.c:3413 +#: catalog/objectaddress.c:3463 #, c-format msgid "schema %s" msgstr "スキーマ%s" -#: catalog/objectaddress.c:3441 +#: catalog/objectaddress.c:3491 #, c-format msgid "statistics object %s" msgstr "統計オブジェクト%s" -#: catalog/objectaddress.c:3472 +#: catalog/objectaddress.c:3522 #, c-format msgid "text search parser %s" msgstr "テキスト検索パーサ%s" -#: catalog/objectaddress.c:3503 +#: catalog/objectaddress.c:3553 #, c-format msgid "text search dictionary %s" msgstr "テキスト検索辞書%s" -#: catalog/objectaddress.c:3534 +#: catalog/objectaddress.c:3584 #, c-format msgid "text search template %s" msgstr "テキスト検索テンプレート%s" -#: catalog/objectaddress.c:3565 +#: catalog/objectaddress.c:3615 #, c-format msgid "text search configuration %s" msgstr "テキスト検索設定%s" -#: catalog/objectaddress.c:3578 +#: catalog/objectaddress.c:3628 #, c-format msgid "role %s" msgstr "ロール%s" -#: catalog/objectaddress.c:3615 catalog/objectaddress.c:5464 +#: catalog/objectaddress.c:3665 catalog/objectaddress.c:5589 #, c-format msgid "membership of role %s in role %s" msgstr "ロール%sのロール%sへの所属" -#: catalog/objectaddress.c:3636 +#: catalog/objectaddress.c:3686 #, c-format msgid "database %s" msgstr "データベース%s" -#: catalog/objectaddress.c:3652 +#: catalog/objectaddress.c:3702 #, c-format msgid "tablespace %s" msgstr "テーブル空間%s" -#: catalog/objectaddress.c:3663 +#: catalog/objectaddress.c:3713 #, c-format msgid "foreign-data wrapper %s" msgstr "外部データラッパー%s" -#: catalog/objectaddress.c:3673 +#: catalog/objectaddress.c:3723 #, c-format msgid "server %s" msgstr "サーバー%s" -#: catalog/objectaddress.c:3706 +#: catalog/objectaddress.c:3756 #, c-format msgid "user mapping for %s on server %s" msgstr "サーバー%2$s上のユーザーマッピング%1$s" -#: catalog/objectaddress.c:3758 +#: catalog/objectaddress.c:3808 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" -msgstr "スキーマ %2$s のロール %1$s のものである新しいリレーションのデフォルト権限" +msgstr "スキーマ %2$s のロール %1$s に属する新しいリレーションのデフォルト権限" -#: catalog/objectaddress.c:3762 +#: catalog/objectaddress.c:3812 #, c-format msgid "default privileges on new relations belonging to role %s" -msgstr "新しいリレーションに関するデフォルトの権限は、ロール%sに属します。" +msgstr "ロール %s に属する新しいリレーションのデフォルト権限" -#: catalog/objectaddress.c:3768 +#: catalog/objectaddress.c:3818 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" -msgstr "スキーマ %2$s のロール %1$s のものである新しいシーケンスのデフォルト権限" +msgstr "スキーマ %2$s のロール %1$s に属する新しいシーケンスのデフォルト権限" -#: catalog/objectaddress.c:3772 +#: catalog/objectaddress.c:3822 #, c-format msgid "default privileges on new sequences belonging to role %s" -msgstr "新しいシーケンスに関するデフォルトの権限は、ロール%sに属します。" +msgstr "ロール %s に属する新しい新しいシーケンスのデフォルト権限" -#: catalog/objectaddress.c:3778 +#: catalog/objectaddress.c:3828 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" -msgstr "スキーマ %2$s のロール %1$s のものである新しい関数のデフォルト権限" +msgstr "スキーマ %2$s のロール %1$s に属する新しい関数のデフォルト権限" -#: catalog/objectaddress.c:3782 +#: catalog/objectaddress.c:3832 #, c-format msgid "default privileges on new functions belonging to role %s" -msgstr "新しい関数に関するデフォルトの権限は、ロール%sに属します。" +msgstr "ロール %s に属する新しい関数のデフォルト権限" -#: catalog/objectaddress.c:3788 +#: catalog/objectaddress.c:3838 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" -msgstr "スキーマ %2$s のロール %1$s のものである新しい型のデフォルト権限" +msgstr "スキーマ %2$s のロール %1$s に属する新しい型のデフォルト権限" -#: catalog/objectaddress.c:3792 +#: catalog/objectaddress.c:3842 #, c-format msgid "default privileges on new types belonging to role %s" -msgstr "新しい型に関するデフォルトの権限は、ロール%sに属します" +msgstr "ロール %s に属する新しい型のデフォルト権限" -#: catalog/objectaddress.c:3798 +#: catalog/objectaddress.c:3848 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "ロール%sに属する新しいスキーマ上のデフォルト権限" -#: catalog/objectaddress.c:3805 +#: catalog/objectaddress.c:3854 +#, c-format +msgid "default privileges on new large objects belonging to role %s" +msgstr "ロール %s に属する新しいラージオブジェクトのデフォルト権限" + +#: catalog/objectaddress.c:3861 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "スキーマ %2$s のロール %1$s に属するデフォルト権限" -#: catalog/objectaddress.c:3809 +#: catalog/objectaddress.c:3865 #, c-format msgid "default privileges belonging to role %s" -msgstr "デフォルトの権限はロール%sに属します。" +msgstr "ロール %s に属するデフォルト権限" -#: catalog/objectaddress.c:3831 +#: catalog/objectaddress.c:3887 #, c-format msgid "extension %s" msgstr "機能拡張%s" -#: catalog/objectaddress.c:3848 +#: catalog/objectaddress.c:3904 #, c-format msgid "event trigger %s" msgstr "イベントトリガ%s" -#: catalog/objectaddress.c:3872 +#: catalog/objectaddress.c:3928 #, c-format msgid "parameter %s" msgstr "パラメータ %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3915 +#: catalog/objectaddress.c:3971 #, c-format msgid "policy %s on %s" msgstr "%2$s のポリシ %1$s" -#: catalog/objectaddress.c:3929 +#: catalog/objectaddress.c:3985 #, c-format msgid "publication %s" msgstr "パブリケーション%s" -#: catalog/objectaddress.c:3942 +#: catalog/objectaddress.c:3998 #, c-format msgid "publication of schema %s in publication %s" msgstr "パブリケーション%2$sでのスキーマ%1$sのパブリケーション" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:3973 +#: catalog/objectaddress.c:4029 #, c-format msgid "publication of %s in publication %s" msgstr "パブリケーション %2$s での %1$s のパブリケーション" -#: catalog/objectaddress.c:3986 +#: catalog/objectaddress.c:4042 #, c-format msgid "subscription %s" msgstr "サブスクリプション%s" -#: catalog/objectaddress.c:4007 +#: catalog/objectaddress.c:4063 #, c-format msgid "transform for %s language %s" msgstr "言語%2$sの%1$s型に対する変換" -#: catalog/objectaddress.c:4076 +#: catalog/objectaddress.c:4132 #, c-format msgid "table %s" msgstr "テーブル%s" -#: catalog/objectaddress.c:4081 +#: catalog/objectaddress.c:4137 #, c-format msgid "index %s" msgstr "インデックス%s" -#: catalog/objectaddress.c:4085 +#: catalog/objectaddress.c:4141 #, c-format msgid "sequence %s" msgstr "シーケンス%s" -#: catalog/objectaddress.c:4089 +#: catalog/objectaddress.c:4145 #, c-format msgid "toast table %s" msgstr "TOASTテーブル%s" -#: catalog/objectaddress.c:4093 +#: catalog/objectaddress.c:4149 #, c-format msgid "view %s" msgstr "ビュー%s" -#: catalog/objectaddress.c:4097 +#: catalog/objectaddress.c:4153 #, c-format msgid "materialized view %s" msgstr "実体化ビュー%s" -#: catalog/objectaddress.c:4101 +#: catalog/objectaddress.c:4157 #, c-format msgid "composite type %s" msgstr "複合型%s" -#: catalog/objectaddress.c:4105 +#: catalog/objectaddress.c:4161 #, c-format msgid "foreign table %s" msgstr "外部テーブル%s" -#: catalog/objectaddress.c:4110 +#: catalog/objectaddress.c:4166 #, c-format msgid "relation %s" msgstr "リレーション%s" -#: catalog/objectaddress.c:4151 +#: catalog/objectaddress.c:4207 #, c-format msgid "operator family %s for access method %s" msgstr "アクセスメソッド%2$sの演算子族%1$s" @@ -5424,7 +5434,7 @@ msgstr "遷移関数がSTRICTかつ遷移用の型が入力型とバイナリ互 msgid "return type of inverse transition function %s is not %s" msgstr "逆遷移関数%sの戻り値の型が%sではありません" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2992 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3057 #, c-format msgid "strictness of aggregate's forward and inverse transition functions must match" msgstr "集約の前進と反転の遷移関数のSTRICT属性は一致している必要があります" @@ -5439,7 +5449,7 @@ msgstr "追加の引数を持つ最終関数はSTRICT宣言できません" msgid "return type of combine function %s is not %s" msgstr "結合関数%sの戻り値の型が%sではありません" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:4005 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "遷移タイプ%sの結合関数はSTRICT宣言できません" @@ -5454,12 +5464,12 @@ msgstr "直列化関数%sの戻り値の型が%sではありません" msgid "return type of deserialization function %s is not %s" msgstr "復元関数%sの戻り値の型が%sではありません" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:217 catalog/pg_proc.c:251 #, c-format msgid "cannot determine result data type" msgstr "結果のデータ型を決定できません" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:230 catalog/pg_proc.c:259 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "\"internal\"疑似型の安全ではない使用" @@ -5474,48 +5484,48 @@ msgstr "移動集約の実装が%s型を返却しました、しかし普通の msgid "sort operator can only be specified for single-argument aggregates" msgstr "ソート演算子は単一引数の集約でのみ指定可能です" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 +#: catalog/pg_aggregate.c:707 catalog/pg_proc.c:412 #, c-format msgid "cannot change routine kind" msgstr "ルーチンの種別は変更できません" -#: catalog/pg_aggregate.c:708 +#: catalog/pg_aggregate.c:709 #, c-format msgid "\"%s\" is an ordinary aggregate function." msgstr "\"%s\"は通常の集約関数です。" -#: catalog/pg_aggregate.c:710 +#: catalog/pg_aggregate.c:711 #, c-format msgid "\"%s\" is an ordered-set aggregate." msgstr "\"%s\"は順序集合集約です。" -#: catalog/pg_aggregate.c:712 +#: catalog/pg_aggregate.c:713 #, c-format msgid "\"%s\" is a hypothetical-set aggregate." msgstr "\"%s\"は仮説集合集約です。" -#: catalog/pg_aggregate.c:717 +#: catalog/pg_aggregate.c:718 #, c-format msgid "cannot change number of direct arguments of an aggregate function" msgstr "集約関数の直接引数の数は変更できません" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 parser/parse_func.c:631 +#: catalog/pg_aggregate.c:859 commands/functioncmds.c:701 commands/typecmds.c:2015 commands/typecmds.c:2061 commands/typecmds.c:2113 commands/typecmds.c:2150 commands/typecmds.c:2184 commands/typecmds.c:2218 commands/typecmds.c:2252 commands/typecmds.c:2281 commands/typecmds.c:2368 commands/typecmds.c:2410 parser/parse_func.c:417 parser/parse_func.c:448 parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 parser/parse_func.c:631 #: parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "関数%sは存在しません" -#: catalog/pg_aggregate.c:864 +#: catalog/pg_aggregate.c:865 #, c-format msgid "function %s returns a set" msgstr "関数%sは集合を返します" -#: catalog/pg_aggregate.c:879 +#: catalog/pg_aggregate.c:880 #, c-format msgid "function %s must accept VARIADIC ANY to be used in this aggregate" msgstr "この集約で使うには関数%sは VARIADIC ANY を受け付ける必要があります" -#: catalog/pg_aggregate.c:903 +#: catalog/pg_aggregate.c:904 #, c-format msgid "function %s requires run-time type coercion" msgstr "関数%sは実行時の型強制が必要です" @@ -5595,21 +5605,46 @@ msgstr "照合順序\"%s\"はすでに存在します" msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "エンコーディング\"%2$s\"の照合順序\"%1$s\"はすでに存在します" -#: catalog/pg_constraint.c:732 +#: catalog/pg_constraint.c:758 commands/tablecmds.c:7951 +#, c-format +msgid "cannot change NO INHERIT status of NOT NULL constraint \"%s\" on relation \"%s\"" +msgstr "リレーション\"%2$s\"の非NULL制約\"%1$s\"のNO INHERIT設定は変更できません" + +#: catalog/pg_constraint.c:768 +#, c-format +msgid "incompatible NOT VALID constraint \"%s\" on relation \"%s\"" +msgstr "リレーション\"%2$s\"上の NOT VALID 制約\"%1$s\"は非互換です" + +#: catalog/pg_constraint.c:770 +#, c-format +msgid "You will need to use ALTER TABLE ... VALIDATE CONSTRAINT to validate it." +msgstr "ALTER TABLE ... VALIDATE CONSTRAINT を使用してこの制約を検証すべきです。" + +#: catalog/pg_constraint.c:1008 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "ドメイン\"%2$s\"の制約\"%1$s\"はすでに存在します" -#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 +#: catalog/pg_constraint.c:1209 catalog/pg_constraint.c:1302 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "テーブル\"%2$s\"の制約\"%1$s\"は存在しません" -#: catalog/pg_constraint.c:1125 +#: catalog/pg_constraint.c:1402 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "ドメイン\"%2$s\"に対する制約\"%1$s\"は存在しません" +#: catalog/pg_constraint.c:1656 +#, c-format +msgid "invalid type for PERIOD part of foreign key" +msgstr "外部キーのPERIOD部に対して不正な型" + +#: catalog/pg_constraint.c:1657 +#, c-format +msgid "Only range and multirange are supported." +msgstr "範囲型および副範囲型のみがサポートされます。" + #: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" @@ -5620,27 +5655,27 @@ msgstr "変換\"%s\"はすでに存在します" msgid "default conversion for %s to %s already exists" msgstr "%sから%sへのデフォルトの変換はすでに存在します" -#: catalog/pg_depend.c:224 commands/extension.c:3397 +#: catalog/pg_depend.c:223 commands/extension.c:3665 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%sはすでに機能拡張\"%s\"のメンバです" -#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 +#: catalog/pg_depend.c:230 catalog/pg_depend.c:281 commands/extension.c:3705 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s は機能拡張\"%s\"のメンバではありません" -#: catalog/pg_depend.c:234 +#: catalog/pg_depend.c:233 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "機能拡張は自身が所有していないオブジェクトを置き換えることができません。" -#: catalog/pg_depend.c:285 +#: catalog/pg_depend.c:284 #, c-format msgid "An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns." msgstr "機能拡張はCREATE ... IF NOT EXISTSを自身がすでに所有しているオブジェクトと競合するオブジェクトの生成をスキップするためにのみ使用することができます。" -#: catalog/pg_depend.c:648 +#: catalog/pg_depend.c:647 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "システムオブジェクトであるため、%sの依存関係を削除できません。" @@ -5690,7 +5725,7 @@ msgstr "パーティション\"%s\"を取り外せません" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "このパーティションは今現在取り外し中であるか取り外し処理が未完了の状態です。" -#: catalog/pg_inherits.c:595 commands/tablecmds.c:4778 commands/tablecmds.c:16053 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4915 commands/tablecmds.c:17793 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "ALTER TABLE ... DETACH PARTITION ... FINALIZE を実行して保留中の取り外し処理を完了させてください。" @@ -5795,43 +5830,43 @@ msgstr "否定演算子 %s はすでに演算子 %u の否定子です" msgid "parameter ACL \"%s\" does not exist" msgstr "パラメータACL \"%s\"は存在しません" -#: catalog/pg_proc.c:130 parser/parse_func.c:2234 +#: catalog/pg_proc.c:158 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" msgstr[0] "関数は%dを超える引数を取ることができません" -#: catalog/pg_proc.c:374 +#: catalog/pg_proc.c:402 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "同じ引数型を持つ関数\"%s\"はすでに存在します" -#: catalog/pg_proc.c:386 +#: catalog/pg_proc.c:414 #, c-format msgid "\"%s\" is an aggregate function." msgstr "\"%s\"は集約関数です。" -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:416 #, c-format msgid "\"%s\" is a function." msgstr "\"%s\"は関数です。" -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:418 #, c-format msgid "\"%s\" is a procedure." msgstr "\"%s\"はプロシージャです。" -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:420 #, c-format msgid "\"%s\" is a window function." msgstr "関数\"%s\"はウィンドウ関数です。" -#: catalog/pg_proc.c:412 +#: catalog/pg_proc.c:440 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "プロシージャの出力パラメータの有無は変更できません" -#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 +#: catalog/pg_proc.c:441 catalog/pg_proc.c:471 #, c-format msgid "cannot change return type of existing function" msgstr "既存の関数の戻り値型を変更できません" @@ -5840,112 +5875,112 @@ msgstr "既存の関数の戻り値型を変更できません" #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 catalog/pg_proc.c:517 catalog/pg_proc.c:541 +#: catalog/pg_proc.c:447 catalog/pg_proc.c:474 catalog/pg_proc.c:519 catalog/pg_proc.c:545 catalog/pg_proc.c:569 #, c-format msgid "Use %s %s first." msgstr "まず %s %s を使用してください。" -#: catalog/pg_proc.c:444 +#: catalog/pg_proc.c:472 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "OUTパラメータで定義された行型が異なります。" -#: catalog/pg_proc.c:488 +#: catalog/pg_proc.c:516 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "入力パラメーター\"%s\"の名称を変更できません" -#: catalog/pg_proc.c:515 +#: catalog/pg_proc.c:543 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "既存の関数からパラメータのデフォルト値を削除できません" -#: catalog/pg_proc.c:539 +#: catalog/pg_proc.c:567 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "既存のパラメータのデフォルト値のデータ型を変更できません" -#: catalog/pg_proc.c:750 +#: catalog/pg_proc.c:771 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "\"%s\"という名前の組み込み関数はありません" -#: catalog/pg_proc.c:843 +#: catalog/pg_proc.c:864 #, c-format msgid "SQL functions cannot return type %s" msgstr "SQL関数は型%sを返すことができません" -#: catalog/pg_proc.c:858 +#: catalog/pg_proc.c:879 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "SQL関数は型%sの引数と取ることができません" -#: catalog/pg_proc.c:986 executor/functions.c:1467 +#: catalog/pg_proc.c:1007 #, c-format msgid "SQL function \"%s\"" msgstr "SQL関数\"%s\"" -#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 catalog/pg_publication.c:82 catalog/pg_publication.c:88 +#: catalog/pg_publication.c:63 catalog/pg_publication.c:71 catalog/pg_publication.c:79 catalog/pg_publication.c:85 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "パブリケーションにリレーション\"%s\"を追加できません" -#: catalog/pg_publication.c:76 +#: catalog/pg_publication.c:73 #, c-format msgid "This operation is not supported for system tables." msgstr "この操作はシステムテーブルに対してはサポートされていません。" -#: catalog/pg_publication.c:84 +#: catalog/pg_publication.c:81 #, c-format msgid "This operation is not supported for temporary tables." msgstr "この操作は一時テーブルに対してはサポートされていません。" -#: catalog/pg_publication.c:90 +#: catalog/pg_publication.c:87 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "この操作はUNLOGGEDテーブルに対してはサポートされていません。" -#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 +#: catalog/pg_publication.c:101 catalog/pg_publication.c:109 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "パブリケーションにスキーマ\"%s\"を追加できません" -#: catalog/pg_publication.c:106 +#: catalog/pg_publication.c:103 #, c-format msgid "This operation is not supported for system schemas." msgstr "この操作はシステムスキーマに対してはサポートされていません。" -#: catalog/pg_publication.c:114 +#: catalog/pg_publication.c:111 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "一時スキーマは複製できません" -#: catalog/pg_publication.c:392 +#: catalog/pg_publication.c:462 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "リレーション\"%s\"はすでにパブリケーション\"%s\"のメンバです" -#: catalog/pg_publication.c:534 +#: catalog/pg_publication.c:576 #, c-format msgid "cannot use system column \"%s\" in publication column list" msgstr "システム列\"%s\"はパブリケーション列リスト内では使用できません" -#: catalog/pg_publication.c:540 +#: catalog/pg_publication.c:582 #, c-format -msgid "cannot use generated column \"%s\" in publication column list" -msgstr "生成列\"%s\"はパブリケーション列リスト内では使用できません" +msgid "cannot use virtual generated column \"%s\" in publication column list" +msgstr "仮想生成列\"%s\"はパブリケーションの列リストでは使用できません" -#: catalog/pg_publication.c:546 +#: catalog/pg_publication.c:588 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "パブリケーション列リスト内に重複した列 \"%s\"" -#: catalog/pg_publication.c:636 +#: catalog/pg_publication.c:700 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "スキーマ\"%s\"はすでにパブリケーション\"%s\"のメンバです" -#: catalog/pg_shdepend.c:867 +#: catalog/pg_shdepend.c:875 #, c-format msgid "" "\n" @@ -5957,69 +5992,69 @@ msgstr[0] "" "\n" "および、他の%dのデータベース内のオブジェクト(一覧についてはサーバーログを参照してください)" -#: catalog/pg_shdepend.c:1214 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "ロール%uの削除が同時に行われました" -#: catalog/pg_shdepend.c:1226 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "テーブル空間%uの削除が同時に行われました" -#: catalog/pg_shdepend.c:1240 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "データベース%uの削除が同時に行われました" -#: catalog/pg_shdepend.c:1291 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "%sの所有者" -#: catalog/pg_shdepend.c:1293 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" msgstr "%sの権限" -#: catalog/pg_shdepend.c:1295 +#: catalog/pg_shdepend.c:1303 #, c-format msgid "initial privileges for %s" msgstr "%sの初期権限" -#: catalog/pg_shdepend.c:1297 +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "%sの対象" -#: catalog/pg_shdepend.c:1299 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "%sのテーブル空間" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1307 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%2$s内の%1$d個のオブジェクト" -#: catalog/pg_shdepend.c:1371 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "データベースシステムが必要としているため%sが所有するオブジェクトを削除できません" -#: catalog/pg_shdepend.c:1545 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "データベースシステムが必要としているため%sが所有するオブジェクトの所有者を再割り当てできません" -#: catalog/pg_subscription.c:438 +#: catalog/pg_subscription.c:469 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "サブスクリプション\"%s\"に対するリレーションマッピングを削除できませんでした" -#: catalog/pg_subscription.c:440 +#: catalog/pg_subscription.c:471 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "リレーション\\\"%s\\\"のテーブル同期が進行中で、状態は\\\"%c\\\"です。" @@ -6027,7 +6062,7 @@ msgstr "リレーション\\\"%s\\\"のテーブル同期が進行中で、状 #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:447 +#: catalog/pg_subscription.c:478 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "サブスクリプションが有効にされていない場合は%sを実行して有効化するか、%sを実行してこのサブスクリプションを削除してください。" @@ -6057,7 +6092,7 @@ msgstr "値渡し型の場合、内部サイズ%dは不正です" msgid "alignment \"%c\" is invalid for variable-length type" msgstr "可変長型の場合、アラインメント\"%c\"は不正です" -#: catalog/pg_type.c:325 commands/typecmds.c:4363 +#: catalog/pg_type.c:325 commands/typecmds.c:4354 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "固定長型の場合はPLAIN格納方式でなければなりません" @@ -6072,7 +6107,7 @@ msgstr "\"%s\"の複範囲型の作成中に失敗しました。" msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "\"multirange_type_name\"属性で複範囲型の型名を手動で指定することができます。" -#: catalog/storage.c:508 storage/buffer/bufmgr.c:1540 +#: catalog/storage.c:549 storage/buffer/bufmgr.c:7269 #, c-format msgid "invalid page in block %u of relation %s" msgstr "リレーション%2$sのブロック%1$uに不正なページ" @@ -6157,7 +6192,7 @@ msgstr "直列化関数は集約遷移データの型が%sの場合にだけ指 msgid "must specify both or neither of serialization and deserialization functions" msgstr "直列化関数と復元関数は両方指定するか、両方指定しないかのどちらかである必要があります" -#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:649 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "パラメータ\"parallel\"はSAVE、RESTRICTEDまたはUNSAFEのいずれかでなければなりません" @@ -6167,82 +6202,82 @@ msgstr "パラメータ\"parallel\"はSAVE、RESTRICTEDまたはUNSAFEのいず msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "パラメータ\"%s\"は READ_ONLY、SHAREABLE または READ_WRITE でなくてはなりません" -#: commands/alter.c:82 commands/event_trigger.c:191 +#: commands/alter.c:83 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" msgstr "イベントトリガ\"%s\"はすでに存在します" -#: commands/alter.c:85 commands/foreigncmds.c:593 +#: commands/alter.c:86 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "外部データラッパー\"%s\"はすでに存在します" -#: commands/alter.c:88 commands/foreigncmds.c:884 +#: commands/alter.c:89 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "サーバー\"%s\"はすでに存在します" -#: commands/alter.c:91 commands/proclang.c:131 +#: commands/alter.c:92 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "言語\"%s\"はすでに存在します" -#: commands/alter.c:94 commands/publicationcmds.c:764 +#: commands/alter.c:95 commands/publicationcmds.c:865 #, c-format msgid "publication \"%s\" already exists" msgstr "パブリケーション\"%s\"はすでに存在します" -#: commands/alter.c:97 commands/subscriptioncmds.c:669 +#: commands/alter.c:98 commands/subscriptioncmds.c:629 #, c-format msgid "subscription \"%s\" already exists" msgstr "サブスクリプション\"%s\"はすでに存在します" -#: commands/alter.c:120 +#: commands/alter.c:121 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "変換\"%s\"はスキーマ\"%s\"内にすでに存在します" -#: commands/alter.c:124 +#: commands/alter.c:125 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "統計情報オブジェクト\"%s\"はスキーマ\"%s\"内にすでに存在します" -#: commands/alter.c:128 +#: commands/alter.c:129 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "テキスト検索パーサ\"%s\"はすでにスキーマ\"%s\"存在します" -#: commands/alter.c:132 +#: commands/alter.c:133 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "テキスト検索辞書\"%s\"はすでにスキーマ\"%s\"存在します" -#: commands/alter.c:136 +#: commands/alter.c:137 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "テキスト検索テンプレート\"%s\"はすでにスキーマ\"%s\"存在します" -#: commands/alter.c:140 +#: commands/alter.c:141 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "テキスト検索設定\"%s\"はすでにスキーマ\"%s\"存在します" -#: commands/alter.c:213 +#: commands/alter.c:214 #, c-format msgid "must be superuser to rename %s" msgstr "%sの名前を変更するにはスーパーユーザーである必要があります" -#: commands/alter.c:255 commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 commands/subscriptioncmds.c:1918 +#: commands/alter.c:256 commands/subscriptioncmds.c:608 commands/subscriptioncmds.c:1147 commands/subscriptioncmds.c:1231 commands/subscriptioncmds.c:1989 #, c-format msgid "password_required=false is superuser-only" msgstr "password_required=falseはスーパーユーザーのみ可能です" -#: commands/alter.c:256 commands/subscriptioncmds.c:649 commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 commands/subscriptioncmds.c:1919 +#: commands/alter.c:257 commands/subscriptioncmds.c:609 commands/subscriptioncmds.c:1148 commands/subscriptioncmds.c:1232 commands/subscriptioncmds.c:1990 #, c-format msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." msgstr "password_requiredオプションがfalseに設定されたサブスクリプションはスーパーユーザのみ作成と変更が可能です。" -#: commands/alter.c:734 +#: commands/alter.c:746 #, c-format msgid "must be superuser to set schema of %s" msgstr "%sのスキーマを設定するにはスーパーユーザーである必要があります" @@ -6262,7 +6297,7 @@ msgstr "アクセスメソッドを作成するにはスーパーユーザーで msgid "access method \"%s\" already exists" msgstr "アクセスメソッド\"%s\"は存在しません" -#: commands/amcmds.c:154 commands/indexcmds.c:221 commands/indexcmds.c:841 commands/opclasscmds.c:374 commands/opclasscmds.c:832 +#: commands/amcmds.c:154 commands/indexcmds.c:226 commands/indexcmds.c:859 commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" msgstr "アクセスメソッド\"%s\"は存在しません" @@ -6272,52 +6307,57 @@ msgstr "アクセスメソッド\"%s\"は存在しません" msgid "handler function is not specified" msgstr "ハンドラ関数の指定がありません" -#: commands/amcmds.c:264 commands/event_trigger.c:200 commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 parser/parse_clause.c:943 +#: commands/amcmds.c:264 commands/event_trigger.c:200 commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:705 parser/parse_clause.c:941 #, c-format msgid "function %s must return type %s" msgstr "関数%sは型%sを返さなければなりません" -#: commands/analyze.c:217 +#: commands/analyze.c:215 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "\"%s\"をスキップしています --- この外部テーブルに対してANALYZEを実行することはできません" -#: commands/analyze.c:234 +#: commands/analyze.c:232 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "\"%s\"をスキップしています --- テーブルでないものや特別なシステムテーブルに対してANALYZEを実行することはできません" -#: commands/analyze.c:314 +#: commands/analyze.c:317 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "\"%s.%s\"継承ツリーを解析しています" -#: commands/analyze.c:319 +#: commands/analyze.c:322 #, c-format msgid "analyzing \"%s.%s\"" msgstr "\"%s.%s\"を解析しています" -#: commands/analyze.c:385 +#: commands/analyze.c:393 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "リレーション\"%2$s\"の列\"%1$s\"が2回以上現れます" -#: commands/analyze.c:780 +#: commands/analyze.c:803 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "テーブル\"%s.%s.%s\"に対する自動ANALYZE\n" -#: commands/analyze.c:1295 +#: commands/analyze.c:805 +#, c-format +msgid "finished analyzing table \"%s.%s.%s\"\n" +msgstr "テーブル\"%s.%s.%s\"の解析完了\n" + +#: commands/analyze.c:1346 #, 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 "\"%1$s\": %3$uページの内%2$dをスキャン。%4$.0fの有効な行と%5$.0fの不要な行が存在。%6$d行をサンプリング。推定総行数は%7$.0f" -#: commands/analyze.c:1379 +#: commands/analyze.c:1430 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "継承ツリー\"%s.%s\"のANALYZEをスキップします --- このツリーには子テーブルがありません" -#: commands/analyze.c:1477 +#: commands/analyze.c:1528 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "継承ツリー\"%s.%s\"のANALYZEをスキップします --- このツリーにはアナライズ可能な子テーブルがありません" @@ -6362,82 +6402,82 @@ msgstr "PID %d のサーバープロセスは、この中で最も古いトラ msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "このプロセスが現在のトランザクションを終了するまで NOTYFY キューを空にすることはできません" -#: commands/cluster.c:128 +#: commands/cluster.c:127 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "認識できないCLUSTERオプション \"%s\"" -#: commands/cluster.c:159 commands/cluster.c:433 +#: commands/cluster.c:158 commands/cluster.c:421 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "他のセッションの一時テーブルをクラスタ化できません" -#: commands/cluster.c:177 +#: commands/cluster.c:176 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "テーブル\"%s\"には事前にクラスタ化されたインデックスはありません" -#: commands/cluster.c:191 commands/tablecmds.c:14698 commands/tablecmds.c:16629 +#: commands/cluster.c:190 commands/tablecmds.c:16349 commands/tablecmds.c:18415 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "テーブル\"%2$s\"にはインデックス\"%1$s\"は存在しません" -#: commands/cluster.c:422 +#: commands/cluster.c:410 #, c-format msgid "cannot cluster a shared catalog" msgstr "共有カタログをクラスタ化できません" -#: commands/cluster.c:437 +#: commands/cluster.c:425 #, c-format msgid "cannot vacuum temporary tables of other sessions" msgstr "他のセッションの一時テーブルに対してはVACUUMを実行できません" -#: commands/cluster.c:513 commands/tablecmds.c:16639 +#: commands/cluster.c:507 commands/tablecmds.c:18425 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\"はテーブル\"%s\"のインデックスではありません" -#: commands/cluster.c:521 +#: commands/cluster.c:515 #, c-format msgid "cannot cluster on index \"%s\" because access method does not support clustering" msgstr "インデックス\"%s\"でクラスタ化できません。アクセスメソッドがクラスタ化をサポートしないためです" -#: commands/cluster.c:533 +#: commands/cluster.c:527 #, c-format msgid "cannot cluster on partial index \"%s\"" msgstr "部分インデックス\"%s\"をクラスタ化できません" -#: commands/cluster.c:547 +#: commands/cluster.c:541 #, c-format msgid "cannot cluster on invalid index \"%s\"" msgstr "無効なインデックス\"%s\"ではクラスタ化できません" -#: commands/cluster.c:571 +#: commands/cluster.c:565 #, c-format msgid "cannot mark index clustered in partitioned table" msgstr "パーティションテーブル内のインデックスは CLUSTER 済みとマークできません`" -#: commands/cluster.c:956 +#: commands/cluster.c:961 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "\"%3$s\"に対するインデックススキャンを使って\"%1$s.%2$s\"をクラスタ化しています" -#: commands/cluster.c:962 +#: commands/cluster.c:967 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "シーケンシャルスキャンとソートを使って\"%s.%s\"をクラスタ化しています" -#: commands/cluster.c:967 +#: commands/cluster.c:972 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "\"%s.%s\"に対してVACUUMを実行しています" -#: commands/cluster.c:994 +#: commands/cluster.c:999 #, c-format msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" msgstr "\"%1$s.%2$s\": %5$u ページ中に見つかった行バージョン: 移動可能 %3$.0f 行、削除不可 %4$.0f 行" -#: commands/cluster.c:999 +#: commands/cluster.c:1004 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -6446,7 +6486,7 @@ msgstr "" "%.0f 個の無効な行が今はまだ削除できません。\n" "%s." -#: commands/cluster.c:1744 +#: commands/cluster.c:1751 #, c-format msgid "permission denied to cluster \"%s\", skipping it" msgstr "\"%s\"のクラスタ化を行う権限がありません、スキップします" @@ -6456,8 +6496,8 @@ msgstr "\"%s\"のクラスタ化を行う権限がありません、スキップ msgid "collation attribute \"%s\" not recognized" msgstr "照合順序の属性\"%s\"が認識できません" -#: commands/collationcmds.c:123 commands/collationcmds.c:129 commands/define.c:388 commands/tablecmds.c:8137 replication/pgoutput/pgoutput.c:307 replication/pgoutput/pgoutput.c:330 replication/pgoutput/pgoutput.c:344 replication/pgoutput/pgoutput.c:354 replication/pgoutput/pgoutput.c:364 replication/pgoutput/pgoutput.c:374 replication/pgoutput/pgoutput.c:386 replication/walsender.c:1146 replication/walsender.c:1168 replication/walsender.c:1178 -#: replication/walsender.c:1187 replication/walsender.c:1426 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 commands/define.c:375 commands/tablecmds.c:8368 replication/pgoutput/pgoutput.c:320 replication/pgoutput/pgoutput.c:343 replication/pgoutput/pgoutput.c:357 replication/pgoutput/pgoutput.c:367 replication/pgoutput/pgoutput.c:377 replication/pgoutput/pgoutput.c:387 replication/pgoutput/pgoutput.c:399 replication/walsender.c:1123 replication/walsender.c:1145 replication/walsender.c:1155 +#: replication/walsender.c:1164 replication/walsender.c:1406 replication/walsender.c:1415 #, c-format msgid "conflicting or redundant options" msgstr "競合するオプション、あるいは余計なオプションがあります" @@ -6489,7 +6529,7 @@ msgstr "認識できないの照合順序プロバイダ: %s" msgid "parameter \"%s\" must be specified" msgstr "パラメータ\"%s\"の指定が必要です" -#: commands/collationcmds.c:293 commands/dbcommands.c:1134 +#: commands/collationcmds.c:293 commands/dbcommands.c:1148 #, c-format msgid "using standard form \"%s\" for ICU locale \"%s\"" msgstr "ICUロケール\"%s\"の標準形式\"%s\"を使用します" @@ -6499,7 +6539,7 @@ msgstr "ICUロケール\"%s\"の標準形式\"%s\"を使用します" msgid "nondeterministic collations not supported with this provider" msgstr "非決定的照合順序はこのプロバイダではサポートされません" -#: commands/collationcmds.c:317 commands/dbcommands.c:1087 +#: commands/collationcmds.c:317 commands/dbcommands.c:1101 #, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" msgstr "ICUルールはロケールプロバイダがICUでなければ指定できません" @@ -6509,59 +6549,59 @@ msgstr "ICUルールはロケールプロバイダがICUでなければ指定で msgid "current database's encoding is not supported with this provider" msgstr "現在のデータベースのエンコーディングはこのプロバイダではサポートされません" -#: commands/collationcmds.c:409 +#: commands/collationcmds.c:405 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "エンコーディング\"%2$s\"のための照合順序\"%1$s\"はすでにスキーマ\"%3$s\"内に存在します" -#: commands/collationcmds.c:420 +#: commands/collationcmds.c:416 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "照合順序\"%s\"はすでにスキーマ\"%s\"内に存在します" -#: commands/collationcmds.c:445 +#: commands/collationcmds.c:441 #, c-format msgid "cannot refresh version of default collation" msgstr "デフォルト照合順序のバーションはリフレッシュできません" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command -#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 commands/tablecmds.c:7913 commands/tablecmds.c:7923 commands/tablecmds.c:7925 commands/tablecmds.c:14400 commands/tablecmds.c:17777 commands/tablecmds.c:17798 commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 +#: commands/collationcmds.c:443 commands/subscriptioncmds.c:1445 commands/tablecmds.c:8145 commands/tablecmds.c:8155 commands/tablecmds.c:8157 commands/tablecmds.c:16051 commands/tablecmds.c:19579 commands/tablecmds.c:19600 commands/typecmds.c:3778 commands/typecmds.c:3863 commands/typecmds.c:4217 #, c-format msgid "Use %s instead." msgstr "代わりに%sを使用してください" -#: commands/collationcmds.c:480 commands/dbcommands.c:2550 +#: commands/collationcmds.c:476 commands/dbcommands.c:2580 #, c-format msgid "changing version from %s to %s" msgstr "バージョン%sから%sへの変更" -#: commands/collationcmds.c:495 commands/dbcommands.c:2563 +#: commands/collationcmds.c:491 commands/dbcommands.c:2593 #, c-format msgid "version has not changed" msgstr "バージョンが変わっていません" -#: commands/collationcmds.c:528 commands/dbcommands.c:2729 +#: commands/collationcmds.c:524 commands/dbcommands.c:2763 utils/adt/dbsize.c:180 #, c-format msgid "database with OID %u does not exist" msgstr "OID %uのデータベースは存在しません" -#: commands/collationcmds.c:554 +#: commands/collationcmds.c:550 #, c-format msgid "collation with OID %u does not exist" msgstr "OID %uの照合順序は存在しません" -#: commands/collationcmds.c:848 +#: commands/collationcmds.c:844 #, c-format msgid "must be superuser to import system collations" msgstr "システム照合順序をインポートするにはスーパーユーザーである必要があります" -#: commands/collationcmds.c:968 commands/collationcmds.c:1053 +#: commands/collationcmds.c:964 commands/collationcmds.c:1049 #, c-format msgid "no usable system locales were found" msgstr "使用できるシステムロケールが見つかりません" -#: commands/comment.c:61 commands/dbcommands.c:1663 commands/dbcommands.c:1875 commands/dbcommands.c:1985 commands/dbcommands.c:2183 commands/dbcommands.c:2421 commands/dbcommands.c:2512 commands/dbcommands.c:2633 commands/dbcommands.c:3141 utils/init/postinit.c:1033 utils/init/postinit.c:1097 utils/init/postinit.c:1170 +#: commands/comment.c:61 commands/dbcommands.c:1679 commands/dbcommands.c:1897 commands/dbcommands.c:2009 commands/dbcommands.c:2207 commands/dbcommands.c:2447 commands/dbcommands.c:2540 commands/dbcommands.c:2664 commands/dbcommands.c:3175 utils/init/postinit.c:1027 utils/init/postinit.c:1091 utils/init/postinit.c:1164 #, c-format msgid "database \"%s\" does not exist" msgstr "データベース\"%s\"は存在しません" @@ -6571,12 +6611,12 @@ msgstr "データベース\"%s\"は存在しません" msgid "cannot set comment on relation \"%s\"" msgstr "リレーション\"%s\"にはコメントを設定できません" -#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2175 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "関数\"%s\"はトリガ関数として呼び出されていません" -#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2184 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "関数\"%s\"はAFTER ROWトリガで実行してください" @@ -6666,308 +6706,264 @@ msgstr "COPY TO の HEADERで\"%s\"は使用できません" msgid "%s requires a Boolean value or \"match\"" msgstr "パラメータ\"%s\"はBoolean値または\"match\"のみを取ります" -#: commands/copy.c:400 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:818 commands/copy.c:834 commands/copy.c:851 commands/copy.c:877 commands/copy.c:887 #, c-format -msgid "COPY ON_ERROR cannot be used with COPY TO" -msgstr "COPY ONJ_ERROR は COPY TO では使用できません" +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s は %s と同時には使えません" -#: commands/copy.c:413 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:474 #, c-format -msgid "COPY ON_ERROR \"%s\" not recognized" -msgstr "COPY ON_ERROR \"%s\"を認識できません" +msgid "COPY %s \"%s\" not recognized" +msgstr "COPY %s \"%s\"を認識できません" + +#: commands/copy.c:436 commands/define.c:73 commands/define.c:84 commands/define.c:178 commands/define.c:196 commands/define.c:211 commands/define.c:229 +#, c-format +msgid "%s requires a numeric value" +msgstr "%sは数値が必要です" -#: commands/copy.c:437 +#: commands/copy.c:446 #, c-format -msgid "COPY LOG_VERBOSITY \"%s\" not recognized" -msgstr "COPY LOG_VERBOSITY \"%s\"を認識できません" +msgid "REJECT_LIMIT (%) must be greater than zero" +msgstr "REJECT_LIMIT (%)は0より大きくなければなりません" -#: commands/copy.c:498 +#: commands/copy.c:536 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "COPY フォーマット\"%s\"を認識できません" -#: commands/copy.c:556 commands/copy.c:571 commands/copy.c:586 commands/copy.c:605 +#: commands/copy.c:594 commands/copy.c:609 commands/copy.c:624 commands/copy.c:643 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "オプション\"%s\"の引数は列名のリストでなければなりません" -#: commands/copy.c:617 +#: commands/copy.c:655 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "オプション\"%s\"の引数は有効なエンコーディング名でなければなりません" -#: commands/copy.c:638 commands/dbcommands.c:866 commands/dbcommands.c:2369 +#: commands/copy.c:683 commands/dbcommands.c:880 commands/dbcommands.c:2395 #, c-format msgid "option \"%s\" not recognized" msgstr "タイムゾーン\"%s\"を認識できません" -#: commands/copy.c:650 -#, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "BINARYモードではDELIMITERを指定できません" - -#: commands/copy.c:655 -#, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "BINARYモードではNULLを指定できません" - -#: commands/copy.c:660 -#, c-format -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "BINARYモードではDEFAULTを指定できません" - -#: commands/copy.c:665 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:696 commands/copy.c:701 commands/copy.c:706 commands/copy.c:776 #, c-format -msgid "only ON_ERROR STOP is allowed in BINARY mode" -msgstr "BINARYモードではN_ERROR STOPのみ使用可能です" +msgid "cannot specify %s in BINARY mode" +msgstr "BINARYモードでは%sを指定できません" -#: commands/copy.c:687 +#: commands/copy.c:728 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "COPYの区切り文字は単一の1バイト文字でなければなりません" -#: commands/copy.c:694 +#: commands/copy.c:735 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "COPYの区切り文字は改行や復帰記号とすることができません" -#: commands/copy.c:700 +#: commands/copy.c:741 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "COPYのNULL表現には改行や復帰記号を使用することはできません" -#: commands/copy.c:710 +#: commands/copy.c:751 #, c-format msgid "COPY default representation cannot use newline or carriage return" msgstr "COPYのデフォルト表現には改行や復帰記号を使用することはできません" -#: commands/copy.c:728 +#: commands/copy.c:769 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "COPYの区切り文字を\"%s\"とすることはできません" -#: commands/copy.c:734 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:783 commands/copy.c:800 commands/copy.c:812 commands/copy.c:827 commands/copy.c:843 #, c-format -msgid "cannot specify HEADER in BINARY mode" -msgstr "BINARYモードではHEADERを指定できません" +msgid "COPY %s requires CSV mode" +msgstr "COPY %s はCSVモードを要求します" -#: commands/copy.c:740 -#, c-format -msgid "COPY QUOTE requires CSV mode" -msgstr "COPY QUOTE はCSVモードでのみ指定できます" - -#: commands/copy.c:745 +#: commands/copy.c:788 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "COPYの引用符は単一の1バイト文字でなければなりません" -#: commands/copy.c:750 +#: commands/copy.c:793 #, c-format msgid "COPY delimiter and quote must be different" msgstr "COPYの区切り文字と引用符は異なる文字でなければなりません" -#: commands/copy.c:756 -#, c-format -msgid "COPY ESCAPE requires CSV mode" -msgstr "COPY ESCAPE はCSVモードでのみ指定できます" - -#: commands/copy.c:761 +#: commands/copy.c:805 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "COPYのエスケープは単一の1バイト文字でなければなりません" -#: commands/copy.c:767 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:859 commands/copy.c:895 #, c-format -msgid "COPY FORCE_QUOTE requires CSV mode" -msgstr "COPY FORCE_QUOTE はCSVモードでのみ指定できます" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "COPYの区切り文字は%s指定では使用できません" -#: commands/copy.c:771 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:868 commands/copy.c:904 #, c-format -msgid "COPY FORCE_QUOTE cannot be used with COPY FROM" -msgstr "COPY FORCE_QUOTE は COPY FROM では使用できません" +msgid "CSV quote character must not appear in the %s specification" +msgstr "COPYの引用符は%s指定では使用できません" -#: commands/copy.c:777 +#: commands/copy.c:913 #, c-format -msgid "COPY FORCE_NOT_NULL requires CSV mode" -msgstr "CCOPY FORCE_NOT_NULL はCSVモードでのみ指定できます" +msgid "NULL specification and DEFAULT specification cannot be the same" +msgstr "NULL指定とDEFAULT指定は同じにはできません" -#: commands/copy.c:781 +#: commands/copy.c:919 #, c-format -msgid "COPY FORCE_NOT_NULL cannot be used with COPY TO" -msgstr "COPY FORCE_NOT_NULL は COPY TO では使用できません" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "BINARYモードではN_ERROR STOPのみ使用可能です" -#: commands/copy.c:787 +#. translator: first and second %s are the names of COPY option, e.g. +#. * ON_ERROR, third is the value of the COPY option, e.g. IGNORE +#: commands/copy.c:926 #, c-format -msgid "COPY FORCE_NULL requires CSV mode" -msgstr "COPY FORCE_NULL はCSVモードでのみ指定できます" +msgid "COPY %s requires %s to be set to %s" +msgstr "COPY %s では %s が %s に設定されている必要があります" -#: commands/copy.c:792 +#: commands/copy.c:988 #, c-format -msgid "COPY FORCE_NULL cannot be used with COPY TO" -msgstr "CCOPY FORCE_NULL は COPY TO では使用できません" +msgid "column \"%s\" is a generated column" +msgstr "列\"%s\"は生成カラムです" -#: commands/copy.c:798 +#: commands/copy.c:990 #, c-format -msgid "COPY delimiter character must not appear in the NULL specification" -msgstr "COPYの区切り文字はNULL指定では使用できません" +msgid "Generated columns cannot be used in COPY." +msgstr "生成カラムはCOPYでは使えません。" -#: commands/copy.c:805 +#: commands/copy.c:1005 commands/indexcmds.c:1959 commands/statscmds.c:239 commands/tablecmds.c:2592 commands/tablecmds.c:3100 commands/tablecmds.c:3929 parser/parse_relation.c:3798 parser/parse_relation.c:3808 parser/parse_relation.c:3826 parser/parse_relation.c:3833 parser/parse_relation.c:3847 utils/adt/tsvector_op.c:2853 #, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "COPYの引用符はNULL指定では使用できません" +msgid "column \"%s\" does not exist" +msgstr "列\"%s\"は存在しません" -#: commands/copy.c:811 +#: commands/copy.c:1012 commands/tablecmds.c:2618 commands/trigger.c:956 parser/parse_target.c:1086 parser/parse_target.c:1097 #, c-format -msgid "COPY FREEZE cannot be used with COPY TO" -msgstr "COPY FREEZE は COPY TO では使用できません" +msgid "column \"%s\" specified more than once" +msgstr "列\"%s\"が複数指定されました" -#: commands/copy.c:818 +#: commands/copyfrom.c:260 #, c-format -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "COPY DEFAULTはCOPY FROMでのみ使用できます" +msgid "COPY %s" +msgstr "%sのCOPY" -#: commands/copy.c:824 +#: commands/copyfrom.c:268 #, c-format -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "COPYの区切り文字はDEFAULT指定では使用できません" +msgid "COPY %s, line %, column %s" +msgstr "%sのCOPY、行 %、列 %s" -#: commands/copy.c:831 +#: commands/copyfrom.c:273 commands/copyfrom.c:319 #, c-format -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "COPYの引用符はDEFAULT指定では使用できません" +msgid "COPY %s, line %" +msgstr "%sのCOPY、行 %" -#: commands/copy.c:839 +#: commands/copyfrom.c:285 #, c-format -msgid "NULL specification and DEFAULT specification cannot be the same" -msgstr "NULL指定とDEFAULT指定は同じにはできません" - -#: commands/copy.c:901 -#, c-format -msgid "column \"%s\" is a generated column" -msgstr "列\"%s\"は生成カラムです" - -#: commands/copy.c:903 -#, c-format -msgid "Generated columns cannot be used in COPY." -msgstr "生成カラムはCOPYでは使えません。" - -#: commands/copy.c:918 commands/indexcmds.c:1915 commands/statscmds.c:239 commands/tablecmds.c:2514 commands/tablecmds.c:2985 commands/tablecmds.c:3781 parser/parse_relation.c:3692 parser/parse_relation.c:3702 parser/parse_relation.c:3720 parser/parse_relation.c:3727 parser/parse_relation.c:3741 utils/adt/tsvector_op.c:2853 -#, c-format -msgid "column \"%s\" does not exist" -msgstr "列\"%s\"は存在しません" - -#: commands/copy.c:925 commands/tablecmds.c:2540 commands/trigger.c:951 parser/parse_target.c:1083 parser/parse_target.c:1094 -#, c-format -msgid "column \"%s\" specified more than once" -msgstr "列\"%s\"が複数指定されました" - -#: commands/copyfrom.c:118 -#, c-format -msgid "COPY %s" -msgstr "%sのCOPY" - -#: commands/copyfrom.c:126 -#, c-format -msgid "COPY %s, line %llu, column %s" -msgstr "%sのCOPY、行 %llu、列 %s" +msgid "COPY %s, line %, column %s: \"%s\"" +msgstr "%sのCOPY、行 %、列 %s: \"%s\"" -#: commands/copyfrom.c:131 commands/copyfrom.c:177 +#: commands/copyfrom.c:295 #, c-format -msgid "COPY %s, line %llu" -msgstr "%sのCOPY、行 %llu" +msgid "COPY %s, line %, column %s: null input" +msgstr "%sのCOPY、行 %、列 %s: null が入力されました" -#: commands/copyfrom.c:143 +#: commands/copyfrom.c:312 #, c-format -msgid "COPY %s, line %llu, column %s: \"%s\"" -msgstr "%sのCOPY、行 %llu、列 %s: \"%s\"" +msgid "COPY %s, line %: \"%s\"" +msgstr "%sのCOPY、行 %: \"%s\"" -#: commands/copyfrom.c:153 -#, c-format -msgid "COPY %s, line %llu, column %s: null input" -msgstr "%sのCOPY、行 %llu、列 %s: null が入力されました" - -#: commands/copyfrom.c:170 -#, c-format -msgid "COPY %s, line %llu: \"%s\"" -msgstr "%sのCOPY、行 %llu: \"%s\"" - -#: commands/copyfrom.c:673 +#: commands/copyfrom.c:823 #, c-format msgid "cannot copy to view \"%s\"" msgstr "ビュー\"%s\"へのコピーはできません" -#: commands/copyfrom.c:675 +#: commands/copyfrom.c:825 #, c-format msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger." msgstr "ビューへのコピーを可能にするためには、INSTEAD OF INSERTトリガを作成してください。" -#: commands/copyfrom.c:679 +#: commands/copyfrom.c:829 #, c-format msgid "cannot copy to materialized view \"%s\"" msgstr "実体化ビュー\"%s\"へのコピーはできません" -#: commands/copyfrom.c:684 +#: commands/copyfrom.c:834 #, c-format msgid "cannot copy to sequence \"%s\"" msgstr "シーケンス\"%s\"へのコピーはできません" -#: commands/copyfrom.c:689 +#: commands/copyfrom.c:839 #, c-format msgid "cannot copy to non-table relation \"%s\"" msgstr "テーブル以外のリレーション\"%s\"へのコピーはできません" -#: commands/copyfrom.c:729 +#: commands/copyfrom.c:879 #, c-format msgid "cannot perform COPY FREEZE on a partitioned table" msgstr "パーティション親テーブルに対して COPY FREEZE は実行できません" -#: commands/copyfrom.c:744 +#: commands/copyfrom.c:886 +#, c-format +msgid "cannot perform COPY FREEZE on a foreign table" +msgstr "外部テーブルに対して COPY FREEZE は実行できません" + +#: commands/copyfrom.c:900 #, c-format msgid "cannot perform COPY FREEZE because of prior transaction activity" msgstr "先行するトランザクション処理のためCOPY FREEZEを実行することができません" -#: commands/copyfrom.c:750 +#: commands/copyfrom.c:906 #, c-format msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "このテーブルは現在のサブトランザクションにおいて作成または切り詰めされていないため、COPY FREEZEを実行することができません" -#: commands/copyfrom.c:1313 +#: commands/copyfrom.c:1171 #, c-format -msgid "%llu row was skipped due to data type incompatibility" -msgid_plural "%llu rows were skipped due to data type incompatibility" -msgstr[0] "%llu行がデータ型の不適合によりスキップされました" +msgid "skipped more than REJECT_LIMIT (%) rows due to data type incompatibility" +msgstr "データ型の不適合により、REJECT_LIMIT (%)を超える行がスキップされました" -#: commands/copyfrom.c:1447 +#: commands/copyfrom.c:1474 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "FORCE_NOT_NULL指定された列\"%s\"はCOPYで参照されません" +msgid "% row was skipped due to data type incompatibility" +msgid_plural "% rows were skipped due to data type incompatibility" +msgstr[0] "%行がデータ型の不適合によりスキップされました" -#: commands/copyfrom.c:1489 +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1611 commands/copyfrom.c:1654 commands/copyto.c:881 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "FORCE_NULL指定された列\"%s\"はCOPYで参照されません" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "%s指定された列\"%s\"はCOPYで参照されません" -#: commands/copyfrom.c:1542 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1707 utils/mb/mbutils.c:385 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "符号化方式\"%s\"から\"%s\"用のデフォルト変換関数は存在しません" -#: commands/copyfrom.c:1740 +#: commands/copyfrom.c:1882 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROMによってPostgreSQLサーバープロセスはファイルを読み込みます。psqlの \\copy のようなクライアント側の仕組みが必要かもしれません" -#: commands/copyfrom.c:1753 commands/copyto.c:701 +#: commands/copyfrom.c:1895 commands/copyto.c:986 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\"はディレクトリです" -#: commands/copyfrom.c:1821 commands/copyto.c:299 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1953 commands/copyto.c:572 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "外部コマンドに対するパイプをクローズできませんでした: %m" -#: commands/copyfrom.c:1836 commands/copyto.c:304 +#: commands/copyfrom.c:1968 commands/copyto.c:577 #, c-format msgid "program \"%s\" failed" msgstr "プログラム\"%s\"の実行に失敗しました" @@ -7007,661 +7003,661 @@ msgstr "COPYファイルのヘッダが不正です(サイズが不正です)" msgid "could not read from COPY file: %m" msgstr "COPYファイルから読み込めませんでした: %m" -#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:377 +#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 replication/walsender.c:732 replication/walsender.c:758 tcop/postgres.c:369 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "トランザクションを実行中のクライアント接続で想定外のEOFがありました" -#: commands/copyfromparse.c:294 replication/walsender.c:772 +#: commands/copyfromparse.c:294 replication/walsender.c:748 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "標準入力からのCOPY中に想定外のメッセージタイプ0x%02Xがありました" -#: commands/copyfromparse.c:317 replication/walsender.c:803 +#: commands/copyfromparse.c:317 replication/walsender.c:779 #, c-format msgid "COPY from stdin failed: %s" msgstr "標準入力からのCOPYが失敗しました: %s" -#: commands/copyfromparse.c:785 +#: commands/copyfromparse.c:802 #, c-format msgid "wrong number of fields in header line: got %d, expected %d" msgstr "ヘッダ行の列数が間違っています: %dでしたが、%dを想定していました" -#: commands/copyfromparse.c:801 +#: commands/copyfromparse.c:818 #, c-format msgid "column name mismatch in header line field %d: got null value (\"%s\"), expected \"%s\"" msgstr "ヘッダ行フィールド%dでカラム名の不一致: NULL値(\"%s\")を検出, 予期していた値\"%s\"" -#: commands/copyfromparse.c:808 +#: commands/copyfromparse.c:825 #, c-format msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "ヘッダ行フィールド%dでカラム名の不一致: \"%s\"を検出, 予期していた値\"%s\"" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 commands/copyfromparse.c:1810 +#: commands/copyfromparse.c:962 commands/copyfromparse.c:1581 commands/copyfromparse.c:1837 #, c-format msgid "extra data after last expected column" msgstr "推定最終列の後に余計なデータがありました" -#: commands/copyfromparse.c:906 +#: commands/copyfromparse.c:976 #, c-format msgid "missing data for column \"%s\"" msgstr "列\"%s\"のデータがありません" -#: commands/copyfromparse.c:990 +#: commands/copyfromparse.c:1056 #, c-format -msgid "skipping row due to data type incompatibility at line %llu for column %s: \"%s\"" -msgstr "データ型非互換のため行をスキップします: 行%llu 列 %s: \"%s\"" +msgid "skipping row due to data type incompatibility at line % for column \"%s\": \"%s\"" +msgstr "行%での列 \"%s\"に対するデータ型非互換のため、この行をスキップします : \"%s\"" -#: commands/copyfromparse.c:998 +#: commands/copyfromparse.c:1064 #, c-format -msgid "skipping row due to data type incompatibility at line %llu for column %s: null input" -msgstr "データ型非互換のため行をスキップします: 行%llu 列 %s: NULLが入力されました" +msgid "skipping row due to data type incompatibility at line % for column \"%s\": null input" +msgstr "行%での列\"%s\"に対するデータ型非互換のため、この行をスキップします: NULL入力" -#: commands/copyfromparse.c:1044 +#: commands/copyfromparse.c:1122 #, c-format msgid "received copy data after EOF marker" msgstr "EOF マーカーの後ろでコピーデータを受信しました" -#: commands/copyfromparse.c:1051 +#: commands/copyfromparse.c:1129 #, c-format msgid "row field count is %d, expected %d" msgstr "行のフィールド数は%d、その期待値は%dです" -#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 +#: commands/copyfromparse.c:1394 commands/copyfromparse.c:1411 #, c-format msgid "literal carriage return found in data" msgstr "データの中に復帰記号そのものがありました" -#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 +#: commands/copyfromparse.c:1395 commands/copyfromparse.c:1412 #, c-format msgid "unquoted carriage return found in data" msgstr "データの中に引用符のない復帰記号がありました" -#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 +#: commands/copyfromparse.c:1397 commands/copyfromparse.c:1414 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "復帰記号は\"\\r\"と表現してください" -#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 +#: commands/copyfromparse.c:1398 commands/copyfromparse.c:1415 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "復帰記号を表現するにはCSVフィールドを引用符で括ってください" -#: commands/copyfromparse.c:1369 +#: commands/copyfromparse.c:1427 #, c-format msgid "literal newline found in data" msgstr "データの中に改行記号そのものがありました" -#: commands/copyfromparse.c:1370 +#: commands/copyfromparse.c:1428 #, c-format msgid "unquoted newline found in data" msgstr "データの中に引用符のない改行記号がありました" -#: commands/copyfromparse.c:1372 +#: commands/copyfromparse.c:1430 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "改行記号は\"\\n\"と表現してください" -#: commands/copyfromparse.c:1373 +#: commands/copyfromparse.c:1431 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "改行記号を表現するにはCSVフィールドを引用符で括ってください" -#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 +#: commands/copyfromparse.c:1469 commands/copyfromparse.c:1491 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "コピー終端記号がこれまでの改行方式と一致しません" -#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 +#: commands/copyfromparse.c:1473 commands/copyfromparse.c:1484 commands/copyfromparse.c:1500 #, c-format -msgid "end-of-copy marker corrupt" -msgstr "コピー終端記号が破損しています" +msgid "end-of-copy marker is not alone on its line" +msgstr "コピー終端記号が行内で単独ではありません" -#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 +#: commands/copyfromparse.c:1773 commands/copyfromparse.c:1988 #, c-format msgid "unexpected default marker in COPY data" msgstr "COPYデータの中に想定外のデフォルトマーカーがあります" -#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 +#: commands/copyfromparse.c:1774 commands/copyfromparse.c:1989 #, c-format msgid "Column \"%s\" has no default value." msgstr "列\"%s\"はデフォルト値を持ちません。" -#: commands/copyfromparse.c:1894 +#: commands/copyfromparse.c:1921 #, c-format msgid "unterminated CSV quoted field" msgstr "CSV引用符が閉じていません" -#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 +#: commands/copyfromparse.c:2023 commands/copyfromparse.c:2042 #, c-format msgid "unexpected EOF in COPY data" msgstr "COPYデータの中に想定外のEOFがあります" -#: commands/copyfromparse.c:2005 +#: commands/copyfromparse.c:2032 #, c-format msgid "invalid field size" msgstr "フィールドサイズが不正です" -#: commands/copyfromparse.c:2028 +#: commands/copyfromparse.c:2055 #, c-format msgid "incorrect binary data format" msgstr "バイナリデータ書式が不正です" -#: commands/copyto.c:229 +#: commands/copyto.c:477 #, c-format msgid "could not write to COPY program: %m" msgstr "COPYプログラムに書き出せませんでした: %m" -#: commands/copyto.c:234 +#: commands/copyto.c:482 #, c-format msgid "could not write to COPY file: %m" msgstr "COPYファイルに書き出せませんでした: %m" -#: commands/copyto.c:379 +#: commands/copyto.c:652 #, c-format msgid "cannot copy from view \"%s\"" msgstr "ビュー\"%s\"からのコピーはできません" -#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 commands/copyto.c:404 +#: commands/copyto.c:654 commands/copyto.c:669 commands/copyto.c:680 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "COPY (SELECT ...) TO構文を試してください" -#: commands/copyto.c:385 +#: commands/copyto.c:660 +#, c-format +msgid "cannot copy from unpopulated materialized view \"%s\"" +msgstr "データ未投入の実体化ビュー\"%s\"からのコピーはできません" + +#: commands/copyto.c:662 executor/execUtils.c:761 #, c-format -msgid "cannot copy from materialized view \"%s\"" -msgstr "実体化ビュー\"%s\"からのコピーはできません" +msgid "Use the REFRESH MATERIALIZED VIEW command." +msgstr "REFRESH MATERIALIZED VIEWコマンドを使用してください。" -#: commands/copyto.c:391 +#: commands/copyto.c:667 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "外部テーブル \"%s\" からのコピーはできません" -#: commands/copyto.c:397 +#: commands/copyto.c:673 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "シーケンス\"%s\"からのコピーはできません" -#: commands/copyto.c:402 +#: commands/copyto.c:678 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"からのコピーはできません" -#: commands/copyto.c:408 +#: commands/copyto.c:684 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "テーブル以外のリレーション\"%s\"からのコピーはできません" -#: commands/copyto.c:460 +#: commands/copyto.c:739 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "DO INSTEAD NOTHING ルールは COPY ではサポートされていません" -#: commands/copyto.c:474 +#: commands/copyto.c:753 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "条件付き DO INSTEAD ルールは COPY ではサポートされていません" -#: commands/copyto.c:478 +#: commands/copyto.c:757 #, c-format -msgid "DO ALSO rules are not supported for the COPY" +msgid "DO ALSO rules are not supported for COPY" msgstr "DO ALSO ルールは COPY ではサポートされていません" -#: commands/copyto.c:483 +#: commands/copyto.c:762 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "マルチステートメントの DO INSTEAD ルールは COPY ではサポートされていません" -#: commands/copyto.c:493 +#: commands/copyto.c:772 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO)はサポートされていません" -#: commands/copyto.c:511 +#: commands/copyto.c:778 +#, c-format +msgid "COPY query must not be a utility command" +msgstr "COPY問い合わせはユーティリティコマンドであってはなりません" + +#: commands/copyto.c:794 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "COPY文中の問い合わせではRETURNING句が必須です" -#: commands/copyto.c:540 +#: commands/copyto.c:823 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "COPY文で参照されているリレーションが変更されました" -#: commands/copyto.c:596 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "FORCE_QUOTE指定された列\"%s\"はCOPYで参照されません" - -#: commands/copyto.c:666 +#: commands/copyto.c:951 #, c-format msgid "relative path not allowed for COPY to file" msgstr "ファイルへのCOPYでは相対パスは指定できません" -#: commands/copyto.c:685 +#: commands/copyto.c:970 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "ファイル\"%s\"を書き込み用にオープンできませんでした: %m" -#: commands/copyto.c:688 +#: commands/copyto.c:973 #, c-format msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY TOによってPostgreSQLサーバープロセスはファイルの書き込みを行います。psqlの \\copy のようなクライアント側の仕組みが必要かもしれません" -#: commands/createas.c:210 commands/createas.c:518 +#: commands/createas.c:212 commands/createas.c:524 #, c-format msgid "too many column names were specified" msgstr "指定された列別名が多すぎます" -#: commands/createas.c:541 +#: commands/createas.c:547 #, c-format msgid "policies not yet implemented for this command" msgstr "このコマンドにはポリシは実装されていません" -#: commands/dbcommands.c:829 +#: commands/dbcommands.c:843 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATIONはもはやサポートされません" -#: commands/dbcommands.c:830 +#: commands/dbcommands.c:844 #, c-format msgid "Consider using tablespaces instead." msgstr "代わりにテーブル空間の使用を検討してください" -#: commands/dbcommands.c:855 +#: commands/dbcommands.c:869 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "%uより小さいOIDはシステムオブジェクトのために予約されています" -#: commands/dbcommands.c:886 utils/adt/ascii.c:146 +#: commands/dbcommands.c:900 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%dは有効な符号化方式コードではありません" -#: commands/dbcommands.c:897 utils/adt/ascii.c:128 +#: commands/dbcommands.c:911 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%sは有効な符号化方式名ではありません" -#: commands/dbcommands.c:931 +#: commands/dbcommands.c:945 #, c-format msgid "unrecognized locale provider: %s" msgstr "認識できない照合順序プロバイダ: %s" -#: commands/dbcommands.c:944 commands/dbcommands.c:2402 commands/user.c:299 commands/user.c:739 +#: commands/dbcommands.c:958 commands/dbcommands.c:2428 commands/user.c:300 commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "不正な接続数制限: %d" -#: commands/dbcommands.c:965 +#: commands/dbcommands.c:979 #, c-format msgid "permission denied to create database" msgstr "データベースを作成する権限がありません" -#: commands/dbcommands.c:989 +#: commands/dbcommands.c:1003 #, c-format msgid "template database \"%s\" does not exist" msgstr "テンプレートデータベース\"%s\"は存在しません" -#: commands/dbcommands.c:999 +#: commands/dbcommands.c:1013 #, c-format msgid "cannot use invalid database \"%s\" as template" msgstr "無効なデータベース\"%s\"はテンプレートとして使用できません" -#: commands/dbcommands.c:1000 commands/dbcommands.c:2431 utils/init/postinit.c:1112 +#: commands/dbcommands.c:1014 commands/dbcommands.c:2458 utils/init/postinit.c:1106 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "DROP DATABASEを使用して無効なデータベースを削除してください。" -#: commands/dbcommands.c:1011 +#: commands/dbcommands.c:1025 #, c-format msgid "permission denied to copy database \"%s\"" msgstr "データベース\"%s\"をコピーする権限がありません" -#: commands/dbcommands.c:1028 +#: commands/dbcommands.c:1042 #, c-format msgid "invalid create database strategy \"%s\"" msgstr "データベース作成の方法\"%s\"は不正です" -#: commands/dbcommands.c:1029 +#: commands/dbcommands.c:1043 #, c-format msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "有効な方法は\"wal_log\"と\"file_copy\"です。" -#: commands/dbcommands.c:1050 +#: commands/dbcommands.c:1064 #, c-format msgid "invalid server encoding %d" msgstr "サーバーの符号化方式%dは不正です" -#: commands/dbcommands.c:1056 +#: commands/dbcommands.c:1070 #, c-format msgid "invalid LC_COLLATE locale name: \"%s\"" msgstr "LC_COLLATEのロケール名\"%s\"は不正です" -#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 +#: commands/dbcommands.c:1071 commands/dbcommands.c:1077 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." msgstr "ロケール名がICU特有のものである場合は、ICU_LOCALEを使用してください。" -#: commands/dbcommands.c:1062 +#: commands/dbcommands.c:1076 #, c-format msgid "invalid LC_CTYPE locale name: \"%s\"" msgstr "LC_CTYPEのロケール名\"%s\"は不正です" -#: commands/dbcommands.c:1074 +#: commands/dbcommands.c:1088 #, c-format msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" msgstr "BUILTIN_LOCALEはロケールプロバイダがbuiltinでなければ指定できません" -#: commands/dbcommands.c:1082 +#: commands/dbcommands.c:1096 #, c-format msgid "ICU locale cannot be specified unless locale provider is ICU" msgstr "ICUロケールはロケールプロバイダがICUでなければ指定できません" -#: commands/dbcommands.c:1100 +#: commands/dbcommands.c:1114 #, c-format msgid "LOCALE or BUILTIN_LOCALE must be specified" msgstr "LOCALEかBUILTIN_LOCALEのいずれかを指定しなければなりません" -#: commands/dbcommands.c:1109 +#: commands/dbcommands.c:1123 #, c-format msgid "encoding \"%s\" is not supported with ICU provider" msgstr "エンコーディング\"%s\"はICUではサポートされていません" -#: commands/dbcommands.c:1119 +#: commands/dbcommands.c:1133 #, c-format msgid "LOCALE or ICU_LOCALE must be specified" msgstr "LOCALEかICU_LOCALEのいずれかを指定しなければなりません" -#: commands/dbcommands.c:1163 +#: commands/dbcommands.c:1177 #, c-format msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" msgstr "新しい符号化方式(%s)はテンプレートデータベースの符号化方式(%s)と互換性がありません" -#: commands/dbcommands.c:1166 +#: commands/dbcommands.c:1180 #, c-format msgid "Use the same encoding as in the template database, or use template0 as template." msgstr "テンプレートデータベースの符号化方式と同じものを使うか、もしくは template0 をテンプレートとして使用してください" -#: commands/dbcommands.c:1171 +#: commands/dbcommands.c:1185 #, c-format msgid "new collation (%s) is incompatible with the collation of the template database (%s)" msgstr "新しい照合順序(%s)はテンプレートデータベースの照合順序(%s)と互換性がありません" -#: commands/dbcommands.c:1173 +#: commands/dbcommands.c:1187 #, c-format msgid "Use the same collation as in the template database, or use template0 as template." msgstr "テンプレートデータベースの照合順序と同じものを使うか、もしくは template0 をテンプレートとして使用してください" -#: commands/dbcommands.c:1178 +#: commands/dbcommands.c:1192 #, c-format msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)" msgstr "新しいLC_CTYPE(%s)はテンプレートデータベース(%s)のLC_CTYPEと互換性がありません" -#: commands/dbcommands.c:1180 +#: commands/dbcommands.c:1194 #, c-format msgid "Use the same LC_CTYPE as in the template database, or use template0 as template." msgstr "テンプレートデータベースのLC_CTYPEと同じものを使うか、もしくはtemplate0をテンプレートとして使用してください" -#: commands/dbcommands.c:1185 +#: commands/dbcommands.c:1199 #, c-format msgid "new locale provider (%s) does not match locale provider of the template database (%s)" msgstr "新しいロケール・プロバイダ(%s)はテンプレートデータベースのロケール・プロバイダ(%s)と一致しません" -#: commands/dbcommands.c:1187 +#: commands/dbcommands.c:1201 #, c-format msgid "Use the same locale provider as in the template database, or use template0 as template." msgstr "テンプレートデータベースと同じロケールプロバイダを使うか、もしくは template0 をテンプレートとして使用してください" -#: commands/dbcommands.c:1199 +#: commands/dbcommands.c:1213 #, c-format msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)" msgstr "新しいICUロケール(%s)はテンプレートデータベースのICUロケール(%s)と互換性がありません" -#: commands/dbcommands.c:1201 +#: commands/dbcommands.c:1215 #, c-format msgid "Use the same ICU locale as in the template database, or use template0 as template." msgstr "テンプレートデータベースと同じICUロケールを使うか、もしくは template0 をテンプレートとして使用してください。" -#: commands/dbcommands.c:1212 +#: commands/dbcommands.c:1226 #, c-format msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)" msgstr "新しいICU照合順序ルール(%s)はテンプレートデータベースのICU照合順序(%s)と互換性がありません" -#: commands/dbcommands.c:1214 +#: commands/dbcommands.c:1228 #, c-format msgid "Use the same ICU collation rules as in the template database, or use template0 as template." msgstr "テンプレートデータベースのICU照合順序ルールと同じものを使うか、もしくは template0 をテンプレートとして使用してください" -#: commands/dbcommands.c:1243 +#: commands/dbcommands.c:1257 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" msgstr "テンプレートデータベース\"%s\"には照合順序のバージョンが設定されていますが、実際の照合順序バージョンが特定できません" -#: commands/dbcommands.c:1248 +#: commands/dbcommands.c:1262 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "テンプレートデータベース\"%s\"では照合順序バージョンの不一致が起きています" -#: commands/dbcommands.c:1250 +#: commands/dbcommands.c:1264 #, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." msgstr "データベース中の照合順序はバージョン%sで作成されていますが、オペレーティングシステムはバージョン%sを提供しています。" -#: commands/dbcommands.c:1253 +#: commands/dbcommands.c:1267 #, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "デフォルトの照合順序を使用しているテンプレート・データベースの全てのオブジェクトを再構築して、ALTER DATABASE %s REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。" -#: commands/dbcommands.c:1298 commands/dbcommands.c:2031 +#: commands/dbcommands.c:1312 commands/dbcommands.c:2055 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "デフォルトのテーブル空間としてpg_globalを使用できません" -#: commands/dbcommands.c:1324 +#: commands/dbcommands.c:1338 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "新しいデフォルトのテーブル空間\"%s\"を割り当てられません" -#: commands/dbcommands.c:1326 +#: commands/dbcommands.c:1340 #, c-format msgid "There is a conflict because database \"%s\" already has some tables in this tablespace." msgstr "データベース\"%s\"のいくつかテーブルはすでにこのテーブル空間にあるため、競合しています。" -#: commands/dbcommands.c:1356 commands/dbcommands.c:1904 +#: commands/dbcommands.c:1370 commands/dbcommands.c:1926 #, c-format msgid "database \"%s\" already exists" msgstr "データベース\"%s\"はすでに存在します" -#: commands/dbcommands.c:1370 +#: commands/dbcommands.c:1384 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "元となるデータベース\"%s\"は他のユーザーによってアクセスされています" -#: commands/dbcommands.c:1392 +#: commands/dbcommands.c:1406 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "データベースOID %uはすでにデータベース\"%s\"で使用されています" -#: commands/dbcommands.c:1398 +#: commands/dbcommands.c:1412 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "指定されたOID %uのデータディレクトリはすでに存在します" -#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 utils/adt/pg_locale.c:2565 +#: commands/dbcommands.c:1585 commands/dbcommands.c:1600 utils/adt/pg_locale.c:1515 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "符号化方式\"%s\"がロケール\"%s\"に合いません" -#: commands/dbcommands.c:1574 +#: commands/dbcommands.c:1588 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "選択されたLC_CTYPEを設定するには、符号化方式\"%s\"である必要があります。" -#: commands/dbcommands.c:1589 +#: commands/dbcommands.c:1603 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "選択されたLC_COLLATEを設定するには、符号化方式\"%s\"である必要があります。" -#: commands/dbcommands.c:1670 +#: commands/dbcommands.c:1686 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "データベース\"%s\"は存在しません、スキップします" -#: commands/dbcommands.c:1694 +#: commands/dbcommands.c:1710 #, c-format msgid "cannot drop a template database" msgstr "テンプレートデータベースを削除できません" -#: commands/dbcommands.c:1700 +#: commands/dbcommands.c:1716 #, c-format msgid "cannot drop the currently open database" msgstr "現在オープンしているデータベースを削除できません" -#: commands/dbcommands.c:1713 +#: commands/dbcommands.c:1729 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "データベース\"%s\"は有効な論理レプリケーションスロットで使用中です" -#: commands/dbcommands.c:1715 +#: commands/dbcommands.c:1731 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." msgstr[0] "%d 個のアクティブなスロットがあります。" -#: commands/dbcommands.c:1729 +#: commands/dbcommands.c:1745 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "データベース\"%s\"は論理レプリケーションのサブスクリプションで使用中です" -#: commands/dbcommands.c:1731 +#: commands/dbcommands.c:1747 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." msgstr[0] "%d個のサブスクリプションがあります" -#: commands/dbcommands.c:1752 commands/dbcommands.c:1926 commands/dbcommands.c:2053 +#: commands/dbcommands.c:1768 commands/dbcommands.c:1948 commands/dbcommands.c:2077 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "データベース\"%s\"は他のユーザーからアクセスされています" -#: commands/dbcommands.c:1886 +#: commands/dbcommands.c:1908 #, c-format msgid "permission denied to rename database" msgstr "データベースの名前を変更する権限がありません" -#: commands/dbcommands.c:1915 +#: commands/dbcommands.c:1937 #, c-format msgid "current database cannot be renamed" msgstr "現在のデータベースの名前を変更できません" -#: commands/dbcommands.c:2009 +#: commands/dbcommands.c:2033 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "現在オープン中のデータベースのテーブルスペースは変更できません" -#: commands/dbcommands.c:2115 +#: commands/dbcommands.c:2139 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "データベース\"%s\"のリレーションの中に、テーブルスペース\"%s\"にすでに存在するものがあります" -#: commands/dbcommands.c:2117 +#: commands/dbcommands.c:2141 #, c-format msgid "You must move them back to the database's default tablespace before using this command." msgstr "このコマンドを使う前に、データベースのデフォルトのテーブルスペースに戻す必要があります。" -#: commands/dbcommands.c:2244 commands/dbcommands.c:2979 commands/dbcommands.c:3279 commands/dbcommands.c:3392 +#: commands/dbcommands.c:2270 commands/dbcommands.c:3013 commands/dbcommands.c:3313 commands/dbcommands.c:3426 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "元のデータベースのディレクトリ\"%s\"に不要なファイルが残っているかもしれません" -#: commands/dbcommands.c:2305 +#: commands/dbcommands.c:2331 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "DROP DATABASEのオプション\"%s\"が認識できません" -#: commands/dbcommands.c:2383 +#: commands/dbcommands.c:2409 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "オプション\"%s\"は他のオプションと一緒に指定はできません" -#: commands/dbcommands.c:2430 +#: commands/dbcommands.c:2457 #, c-format msgid "cannot alter invalid database \"%s\"" msgstr "無効なデータベース\"%s\"は変更できません" -#: commands/dbcommands.c:2447 +#: commands/dbcommands.c:2474 #, c-format msgid "cannot disallow connections for current database" msgstr "現在のデータベースへの接続は禁止できません" -#: commands/dbcommands.c:2673 +#: commands/dbcommands.c:2704 #, c-format msgid "permission denied to change owner of database" msgstr "データベースの所有者を変更する権限がありません" -#: commands/dbcommands.c:3085 +#: commands/dbcommands.c:3119 #, c-format msgid "There are %d other session(s) and %d prepared transaction(s) using the database." msgstr "他にこのデータベースを使っている %d 個のセッションと %d 個の準備済みトランザクションがあります。" -#: commands/dbcommands.c:3088 +#: commands/dbcommands.c:3122 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." msgstr[0] "他にこのデータベースを使っている %d 個のセッションがあります。" -#: commands/dbcommands.c:3093 storage/ipc/procarray.c:3847 +#: commands/dbcommands.c:3127 storage/ipc/procarray.c:3860 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." msgstr[0] "このデータベースを使用する準備されたトランザクションが%d存在します。" -#: commands/dbcommands.c:3235 +#: commands/dbcommands.c:3269 #, c-format msgid "missing directory \"%s\"" msgstr "ディレクトリ\"%s\"がありません" -#: commands/dbcommands.c:3293 commands/tablespace.c:184 commands/tablespace.c:633 +#: commands/dbcommands.c:3327 commands/tablespace.c:184 commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "ディレクトリ\"%s\"のstatができませんでした: %m" -#: commands/define.c:53 commands/define.c:257 commands/define.c:289 commands/define.c:317 commands/define.c:363 +#: commands/define.c:40 commands/define.c:244 commands/define.c:276 commands/define.c:304 commands/define.c:350 #, c-format msgid "%s requires a parameter" msgstr "%sはパラメータが必要です" -#: commands/define.c:86 commands/define.c:97 commands/define.c:191 commands/define.c:209 commands/define.c:224 commands/define.c:242 -#, c-format -msgid "%s requires a numeric value" -msgstr "%sは数値が必要です" - -#: commands/define.c:153 +#: commands/define.c:140 #, c-format msgid "%s requires a Boolean value" msgstr "パラメータ\"%s\"はboolean値が必要です" -#: commands/define.c:167 commands/define.c:176 commands/define.c:326 +#: commands/define.c:154 commands/define.c:163 commands/define.c:313 #, c-format msgid "%s requires an integer value" msgstr "%sは整数値が必要です" -#: commands/define.c:271 +#: commands/define.c:258 #, c-format msgid "argument of %s must be a name" msgstr "%sの引数は名前でなければなりません" -#: commands/define.c:301 +#: commands/define.c:288 #, c-format msgid "argument of %s must be a type name" msgstr "%sの引数は型名でなければなりません" -#: commands/define.c:347 +#: commands/define.c:334 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "%sの引数が不正です: \"%s\"" -#: commands/dropcmds.c:96 commands/functioncmds.c:1382 utils/adt/ruleutils.c:2909 +#: commands/dropcmds.c:96 commands/functioncmds.c:1400 utils/adt/ruleutils.c:2956 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\"は集約関数です" @@ -7671,17 +7667,17 @@ msgstr "\"%s\"は集約関数です" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "集約関数を削除するにはDROP AGGREGATEを使用してください" -#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3865 commands/tablecmds.c:4023 commands/tablecmds.c:4075 commands/tablecmds.c:17061 tcop/utility.c:1325 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:4013 commands/tablecmds.c:4174 commands/tablecmds.c:4226 commands/tablecmds.c:18856 tcop/utility.c:1328 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "リレーション\"%s\"は存在しません、スキップします" -#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1397 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1468 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "スキーマ\"%s\"は存在しません、スキップします" -#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:289 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "型\"%s\"は存在しません、スキップします" @@ -7701,7 +7697,7 @@ msgstr "照合順序\"%s\"は存在しません、スキップします" msgid "conversion \"%s\" does not exist, skipping" msgstr "変換\"%sは存在しません、スキップします" -#: commands/dropcmds.c:288 commands/statscmds.c:664 +#: commands/dropcmds.c:288 commands/statscmds.c:682 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "統計情報オブジェクト\"%s\"は存在しません、スキップします" @@ -7857,347 +7853,347 @@ msgstr "%sではイベントトリガはサポートされません" msgid "filter variable \"%s\" specified more than once" msgstr "フィルタ変数\"%s\"が複数指定されました" -#: commands/event_trigger.c:435 commands/event_trigger.c:487 commands/event_trigger.c:581 +#: commands/event_trigger.c:438 commands/event_trigger.c:490 commands/event_trigger.c:584 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "イベントトリガ\"%s\"は存在しません" -#: commands/event_trigger.c:519 +#: commands/event_trigger.c:522 #, c-format msgid "event trigger with OID %u does not exist" msgstr "OID %uのイベントトリガは存在しません" -#: commands/event_trigger.c:549 +#: commands/event_trigger.c:552 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "イベントトリガ\"%s\"の所有者を変更する権限がありません" -#: commands/event_trigger.c:551 +#: commands/event_trigger.c:554 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "イベントトリガの所有者はスーパーユーザーでなければなりません" -#: commands/event_trigger.c:1411 +#: commands/event_trigger.c:1404 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%sはsql_dropイベントトリガ関数内でのみ呼び出すことができます" -#: commands/event_trigger.c:1504 commands/event_trigger.c:1525 +#: commands/event_trigger.c:1497 commands/event_trigger.c:1518 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%sはtable_rewriteイベントトリガ関数でのみ呼び出すことができます" -#: commands/event_trigger.c:1938 +#: commands/event_trigger.c:1931 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%sはイベントトリガ関数でのみ呼び出すことができます" -#: commands/explain.c:240 commands/explain.c:265 +#: commands/explain_state.c:133 commands/explain_state.c:158 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "EXPLAIN オプション\"%s\"が認識できない値です: \"%s\"" -#: commands/explain.c:272 +#: commands/explain_state.c:165 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "EXPLAIN オプション\"%s\"が認識できません" -#: commands/explain.c:281 +#: commands/explain_state.c:174 commands/explain_state.c:186 commands/explain_state.c:192 #, c-format -msgid "EXPLAIN option WAL requires ANALYZE" -msgstr "EXPLAINのオプションWALにはANALYZE指定が必要です" +msgid "EXPLAIN option %s requires ANALYZE" +msgstr "EXPLAINのオプション %s には ANALYZE 指定が必要です" -#: commands/explain.c:290 -#, c-format -msgid "EXPLAIN option TIMING requires ANALYZE" -msgstr "EXPLAINオプションのTIMINGにはANALYZE指定が必要です" - -#: commands/explain.c:296 -#, c-format -msgid "EXPLAIN option SERIALIZE requires ANALYZE" -msgstr "EXPLAINのオプションSERIALIZEにはANALYZE指定が必要です" - -#: commands/explain.c:302 +#: commands/explain_state.c:198 #, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" msgstr "EXPLAINのオプションANALYZEとGENERIC_PLANは同時に使用できません" -#: commands/extension.c:178 commands/extension.c:3031 +#: commands/extension.c:174 commands/extension.c:3299 #, c-format msgid "extension \"%s\" does not exist" msgstr "機能拡張\"%s\"は存在しません" -#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 commands/extension.c:308 +#: commands/extension.c:239 commands/extension.c:248 commands/extension.c:260 commands/extension.c:270 #, c-format msgid "invalid extension name: \"%s\"" msgstr "機能拡張名が不正です: \"%s\"" -#: commands/extension.c:278 +#: commands/extension.c:240 #, c-format msgid "Extension names must not be empty." msgstr "機能拡張名が無効です: 空であってはなりません" -#: commands/extension.c:287 +#: commands/extension.c:249 #, c-format msgid "Extension names must not contain \"--\"." msgstr "機能拡張名に\"--\"が含まれていてはなりません" -#: commands/extension.c:299 +#: commands/extension.c:261 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "機能拡張名が\"-\"で始まったり終わったりしてはなりません" -#: commands/extension.c:309 +#: commands/extension.c:271 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "機能拡張名にディレクトリの区切り文字が含まれていてはなりません" -#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 commands/extension.c:352 +#: commands/extension.c:286 commands/extension.c:295 commands/extension.c:304 commands/extension.c:314 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "機能拡張のバージョン名が不正す: \"%s\"" -#: commands/extension.c:325 +#: commands/extension.c:287 #, c-format msgid "Version names must not be empty." msgstr "バージョン名が無効です: 空であってはなりません" -#: commands/extension.c:334 +#: commands/extension.c:296 #, c-format msgid "Version names must not contain \"--\"." msgstr "バージョン名に\"--\"が含まれていてはなりません" -#: commands/extension.c:343 +#: commands/extension.c:305 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "バージョン名が\"-\"で始まったり終わったりしてはなりません" -#: commands/extension.c:353 +#: commands/extension.c:315 #, c-format msgid "Version names must not contain directory separator characters." msgstr "バージョン名にディレクトリの区切り文字が含まれていてはなりません" -#: commands/extension.c:507 +#: commands/extension.c:549 #, c-format msgid "extension \"%s\" is not available" msgstr "機能拡張\"%s\" は利用できません" -#: commands/extension.c:508 -#, c-format -msgid "Could not open extension control file \"%s\": %m." -msgstr "機能拡張の制御ファイル\"%s\"をオープンできませんでした: %m" - -#: commands/extension.c:510 +#: commands/extension.c:550 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." msgstr "PostgreSQLが稼働しているシステムで、事前に機能拡張がインストールされている必要があります。" -#: commands/extension.c:514 +#: commands/extension.c:564 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "機能拡張の制御ファイル\"%s\"をオープンできませんでした: %m" -#: commands/extension.c:537 commands/extension.c:547 +#: commands/extension.c:587 commands/extension.c:597 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "セカンダリの機能拡張制御ファイルにパラメータ\"%s\"を設定できません" -#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 utils/misc/guc.c:3147 +#: commands/extension.c:619 commands/extension.c:627 commands/extension.c:635 utils/misc/guc.c:3144 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "パラメータ\"%s\"にはbooleanを指定します" -#: commands/extension.c:594 +#: commands/extension.c:644 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\"は有効な符号化方式名ではありません" -#: commands/extension.c:608 commands/extension.c:623 +#: commands/extension.c:658 commands/extension.c:673 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "パラメータ\"%s\"は機能拡張名のリストでなければなりません" -#: commands/extension.c:630 +#: commands/extension.c:680 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "ファイル\"%2$s\"中に認識できないパラメータ\"%1$s\"があります" -#: commands/extension.c:639 +#: commands/extension.c:689 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "\"relocatable\"が真の場合はパラメータ\"schema\"は指定できません" -#: commands/extension.c:817 +#: commands/extension.c:865 +#, c-format +msgid "SQL statement \"%.*s\"" +msgstr "SQL文 \"%.*s\"" + +#: commands/extension.c:894 +#, c-format +msgid "extension script file \"%s\", near line %d" +msgstr "機能拡張スクリプトファイル \"%s\"、%d 行目付近" + +#: commands/extension.c:898 +#, c-format +msgid "extension script file \"%s\"" +msgstr "機能拡張スクリプトファイル \"%s\"" + +#: commands/extension.c:1012 #, c-format msgid "transaction control statements are not allowed within an extension script" msgstr "トランザクション制御ステートメントを機能拡張スクリプトの中に書くことはできません" -#: commands/extension.c:897 +#: commands/extension.c:1094 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "機能拡張\"%s\"を作成する権限がありません" -#: commands/extension.c:900 +#: commands/extension.c:1097 #, c-format msgid "Must have CREATE privilege on current database to create this extension." msgstr "この機能拡張を生成するには現在のデータベースのCREATE権限が必要です。" -#: commands/extension.c:901 +#: commands/extension.c:1098 #, c-format msgid "Must be superuser to create this extension." msgstr "この機能拡張を生成するにはスーパーユーザーである必要があります。" -#: commands/extension.c:905 +#: commands/extension.c:1102 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "機能拡張\"%s\"を更新する権限がありません" -#: commands/extension.c:908 +#: commands/extension.c:1105 #, c-format msgid "Must have CREATE privilege on current database to update this extension." msgstr "この機能拡張を更新するには現在のデータベースのCREATE権限が必要です。" -#: commands/extension.c:909 +#: commands/extension.c:1106 #, c-format msgid "Must be superuser to update this extension." msgstr "この機能拡張を更新するにはスーパーユーザーである必要があります。" -#: commands/extension.c:1042 +#: commands/extension.c:1239 #, c-format msgid "invalid character in extension owner: must not contain any of \"%s\"" msgstr "機能拡張の所有者名に不正な文字: \"%s\"のいずれの文字も含むことはできません" -#: commands/extension.c:1066 commands/extension.c:1093 +#: commands/extension.c:1263 commands/extension.c:1290 #, c-format msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" msgstr "機能拡張\"%s\"のスキーマ名に不正な文字: \"%s\"のいずれの文字も含むことはできません" -#: commands/extension.c:1288 +#: commands/extension.c:1485 #, c-format msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgstr "機能拡張\"%s\"について、バージョン\"%s\"からバージョン\"%s\"へのアップデートパスがありません" -#: commands/extension.c:1496 commands/extension.c:3089 +#: commands/extension.c:1693 commands/extension.c:3357 #, c-format msgid "version to install must be specified" msgstr "インストールするバージョンを指定してください" -#: commands/extension.c:1533 +#: commands/extension.c:1730 #, c-format msgid "extension \"%s\" has no installation script nor update path for version \"%s\"" msgstr "機能拡張\"%s\"にはバージョン\"%s\"のインストールスクリプトもアップデートパスもありません" -#: commands/extension.c:1567 +#: commands/extension.c:1764 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "機能拡張\"%s\"はスキーマ\"%s\"内にインストールされていなければなりません" -#: commands/extension.c:1727 +#: commands/extension.c:1924 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "機能拡張\"%s\"と\"%s\"の間に循環依存関係が検出されました" -#: commands/extension.c:1732 +#: commands/extension.c:1929 #, c-format msgid "installing required extension \"%s\"" msgstr "必要な機能拡張をインストールします:\"%s\"" -#: commands/extension.c:1755 +#: commands/extension.c:1952 #, c-format msgid "required extension \"%s\" is not installed" msgstr "要求された機能拡張\"%s\"はインストールされていません" -#: commands/extension.c:1758 +#: commands/extension.c:1955 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "必要な機能拡張を一緒にインストールするには CREATE EXTENSION ... CASCADE を使ってください。" -#: commands/extension.c:1793 +#: commands/extension.c:1990 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "機能拡張\"%s\"はすでに存在します、スキップします" -#: commands/extension.c:1800 +#: commands/extension.c:1997 #, c-format msgid "extension \"%s\" already exists" msgstr "機能拡張\"%s\"はすでに存在します" -#: commands/extension.c:1811 +#: commands/extension.c:2008 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "入れ子の CREATE EXTENSION はサポートされません" -#: commands/extension.c:1975 +#: commands/extension.c:2172 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "変更されているため拡張\"%s\"を削除できません" -#: commands/extension.c:2450 +#: commands/extension.c:2665 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "%s はCREATE EXTENSIONにより実行されるSQLスクリプトからのみ呼び出すことができます" -#: commands/extension.c:2462 +#: commands/extension.c:2677 #, c-format msgid "OID %u does not refer to a table" msgstr "OID %u がテーブルを参照していません" -#: commands/extension.c:2467 +#: commands/extension.c:2682 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "テーブル\"%s\"は生成されようとしている機能拡張のメンバではありません" -#: commands/extension.c:2813 +#: commands/extension.c:3081 #, c-format msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema" msgstr "機能拡張がそのスキーマを含んでいるため、機能拡張\"%s\"をスキーマ\"%s\"に移動できません" -#: commands/extension.c:2854 commands/extension.c:2948 +#: commands/extension.c:3122 commands/extension.c:3216 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "機能拡張\"%s\"は SET SCHEMA をサポートしていません" -#: commands/extension.c:2911 +#: commands/extension.c:3179 #, c-format msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" msgstr "他の機能拡張によって禁止されているため、機能拡張\"%s\"の SET SCHEMAが実行できません" -#: commands/extension.c:2913 +#: commands/extension.c:3181 #, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." msgstr "機能拡張\"%s\"は機能拡張\"%s\"の再配置禁止を要求しています。" -#: commands/extension.c:2950 +#: commands/extension.c:3218 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "機能拡張のスキーマ\"%2$s\"に%1$sが見つかりません" -#: commands/extension.c:3011 +#: commands/extension.c:3279 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "入れ子になった ALTER EXTENSION はサポートされていません" -#: commands/extension.c:3100 +#: commands/extension.c:3368 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "機能拡張 \"%2$s\"のバージョン\"%1$s\"はすでにインストールされています" -#: commands/extension.c:3311 +#: commands/extension.c:3579 #, c-format msgid "cannot add an object of this type to an extension" msgstr "この型のオブジェクトは機能拡張に追加できません" -#: commands/extension.c:3409 +#: commands/extension.c:3677 #, c-format msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension" msgstr "スキーマ\"%s\"を拡張\"%s\"に追加できません。そのスキーマにその拡張が含まれているためです" -#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#: commands/extension.c:3759 commands/typecmds.c:4033 utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "データ型%sの複範囲型がありませんでした" -#: commands/extension.c:3532 +#: commands/extension.c:3801 #, c-format msgid "file \"%s\" is too large" msgstr "ファイル\"%s\"は大きすぎます" @@ -8227,7 +8223,7 @@ msgstr "外部データラッパーの所有者を変更するにはスーパー msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "外部データラッパーの所有者はスーパーユーザーでなければなりません" -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:681 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "外部データラッパー\"%s\"は存在しません" @@ -8297,7 +8293,7 @@ msgstr "\"%s\"のユーザーマッピングはサーバー\"%s\"に対しては msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "\"%s\"のユーザーマッピングはサーバー\"%s\"に対しては存在しません、スキップします" -#: commands/foreigncmds.c:1507 foreign/foreign.c:394 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "外部データラッパー\"%s\"にはハンドラがありません" @@ -8342,628 +8338,673 @@ msgstr "シェル型の定義を作成します" msgid "SQL function cannot accept shell type %s" msgstr "SQL関数はシェル型\"%s\"を受け付けられません" -#: commands/functioncmds.c:250 +#: commands/functioncmds.c:251 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "集約はシェル型\"%s\"を受け付けられません" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:257 #, c-format msgid "argument type %s is only a shell" msgstr "引数型%sは単なるシェルです" -#: commands/functioncmds.c:265 +#: commands/functioncmds.c:268 #, c-format msgid "type %s does not exist" msgstr "型%sは存在しません" -#: commands/functioncmds.c:279 +#: commands/functioncmds.c:283 #, c-format msgid "aggregates cannot accept set arguments" msgstr "集約は集合引数を受け付けられません" -#: commands/functioncmds.c:283 +#: commands/functioncmds.c:288 #, c-format msgid "procedures cannot accept set arguments" msgstr "プロシージャは集合引数を受け付けません" -#: commands/functioncmds.c:287 +#: commands/functioncmds.c:293 #, c-format msgid "functions cannot accept set arguments" msgstr "関数は集合を引数として受け付けられません" -#: commands/functioncmds.c:297 +#: commands/functioncmds.c:304 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "VARIADIC パラメータは最後の入力パラメータでなければなりません" -#: commands/functioncmds.c:317 +#: commands/functioncmds.c:325 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "VARIADIC パラメータは最後のパラメータでなければなりません" -#: commands/functioncmds.c:342 +#: commands/functioncmds.c:351 #, c-format msgid "VARIADIC parameter must be an array" msgstr "VARIADIC パラメータは配列でなければなりません" -#: commands/functioncmds.c:387 +#: commands/functioncmds.c:397 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "パラメータ\"%s\"が複数指定されました" -#: commands/functioncmds.c:405 +#: commands/functioncmds.c:416 #, c-format msgid "only input parameters can have default values" msgstr "入力パラメータのみがデフォルト値を持てます" -#: commands/functioncmds.c:420 +#: commands/functioncmds.c:432 #, c-format msgid "cannot use table references in parameter default value" msgstr "パラメータのデフォルト値としてテーブル参照を使用できません" -#: commands/functioncmds.c:444 +#: commands/functioncmds.c:457 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "デフォルト値を持つパラメータの後にある入力パラメータは、必ずデフォルト値を持たなければなりません" -#: commands/functioncmds.c:454 +#: commands/functioncmds.c:468 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "プロシージャの出力パラメータはデフォルト値を持つパラメータの後には置けません" -#: commands/functioncmds.c:596 commands/functioncmds.c:775 +#: commands/functioncmds.c:611 commands/functioncmds.c:790 #, c-format msgid "invalid attribute in procedure definition" msgstr "プロシージャ定義内の不正な属性" -#: commands/functioncmds.c:692 +#: commands/functioncmds.c:707 #, c-format msgid "support function %s must return type %s" msgstr "サポート関数%sは%s型を返さなければなりません" -#: commands/functioncmds.c:703 +#: commands/functioncmds.c:718 #, c-format msgid "must be superuser to specify a support function" msgstr "サポート関数を指定するにはスーパーユーザーである必要があります" -#: commands/functioncmds.c:824 commands/functioncmds.c:1427 +#: commands/functioncmds.c:839 commands/functioncmds.c:1445 #, c-format msgid "COST must be positive" msgstr "COSTは正数でなければなりません" -#: commands/functioncmds.c:832 commands/functioncmds.c:1435 +#: commands/functioncmds.c:847 commands/functioncmds.c:1453 #, c-format msgid "ROWS must be positive" msgstr "ROWSは正数でなければなりません" -#: commands/functioncmds.c:861 +#: commands/functioncmds.c:876 #, c-format msgid "no function body specified" msgstr "関数本体の指定がありません" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:881 #, c-format msgid "duplicate function body specified" msgstr "関数本体の指定が重複しています" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:886 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "インラインのSQL関数本体は言語指定がSQLの場合にのみ有効です" -#: commands/functioncmds.c:913 +#: commands/functioncmds.c:928 #, c-format msgid "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "本体をクォートせずに定義するSQL関数は多態引き数を取れません" -#: commands/functioncmds.c:939 commands/functioncmds.c:958 +#: commands/functioncmds.c:954 commands/functioncmds.c:973 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%sはクォートしない関数本体ではサポートされません" -#: commands/functioncmds.c:986 +#: commands/functioncmds.c:1001 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "言語\"%s\"ではAS項目は1つだけ必要です" -#: commands/functioncmds.c:1091 +#: commands/functioncmds.c:1107 #, c-format msgid "no language specified" msgstr "言語が指定されていません" -#: commands/functioncmds.c:1099 commands/functioncmds.c:2104 commands/proclang.c:235 +#: commands/functioncmds.c:1115 commands/functioncmds.c:2135 commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "言語\"%s\"は存在しません" -#: commands/functioncmds.c:1101 commands/functioncmds.c:2106 +#: commands/functioncmds.c:1117 commands/functioncmds.c:2137 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "言語をデータベースに読み込むためには CREATE EXTENSION を使用してください" -#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 +#: commands/functioncmds.c:1150 commands/functioncmds.c:1437 #, c-format msgid "only superuser can define a leakproof function" msgstr "スーパーユーザーのみがリークプルーフ関数を定義することができます" -#: commands/functioncmds.c:1185 +#: commands/functioncmds.c:1202 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "OUTパラメータで定義されているため、関数の戻り値型は%sでなければなりません" -#: commands/functioncmds.c:1198 +#: commands/functioncmds.c:1215 #, c-format msgid "function result type must be specified" msgstr "関数の結果型を指定しなければなりません" -#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 +#: commands/functioncmds.c:1268 commands/functioncmds.c:1457 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "関数が集合を返す場合にROWSは適していません" -#: commands/functioncmds.c:1546 +#: commands/functioncmds.c:1564 #, c-format msgid "source data type %s is a pseudo-type" msgstr "変換元データ型%sは疑似型です" -#: commands/functioncmds.c:1552 +#: commands/functioncmds.c:1570 #, c-format msgid "target data type %s is a pseudo-type" msgstr "変換先データ型%sは疑似型です" -#: commands/functioncmds.c:1576 +#: commands/functioncmds.c:1594 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "元のデータ型がドメインであるため、キャストは無視されます" -#: commands/functioncmds.c:1581 +#: commands/functioncmds.c:1599 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "対象のデータ型がドメインであるため、キャストは無視されます" -#: commands/functioncmds.c:1606 +#: commands/functioncmds.c:1624 #, c-format msgid "cast function must take one to three arguments" msgstr "キャスト関数の引数は1つから3つまでです" -#: commands/functioncmds.c:1612 +#: commands/functioncmds.c:1630 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "キャスト関数の引数は変換元データ型と同一であるか、変換元データ型からバイナリ変換可能である必要があります" -#: commands/functioncmds.c:1616 +#: commands/functioncmds.c:1634 #, c-format msgid "second argument of cast function must be type %s" msgstr "キャスト関数の第2引数は%s型でなければなりません" -#: commands/functioncmds.c:1621 +#: commands/functioncmds.c:1639 #, c-format msgid "third argument of cast function must be type %s" msgstr "キャスト関数の第3引数は%s型でなければなりません" -#: commands/functioncmds.c:1628 +#: commands/functioncmds.c:1646 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "キャスト関数の戻り値データ型は変換先データ型と一致するか、変換先データ型へバイナリ変換可能である必要があります" -#: commands/functioncmds.c:1639 +#: commands/functioncmds.c:1657 #, c-format msgid "cast function must not be volatile" msgstr "キャスト関数はvolatileではいけません" -#: commands/functioncmds.c:1644 +#: commands/functioncmds.c:1662 #, c-format msgid "cast function must be a normal function" msgstr "キャスト関数は通常の関数でなければなりません" -#: commands/functioncmds.c:1648 +#: commands/functioncmds.c:1666 #, c-format msgid "cast function must not return a set" msgstr "キャスト関数は集合を返してはいけません" -#: commands/functioncmds.c:1674 +#: commands/functioncmds.c:1692 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "WITHOUT FUNCTION指定のキャストを作成するにはスーパーユーザーである必要があります" -#: commands/functioncmds.c:1689 +#: commands/functioncmds.c:1707 #, c-format msgid "source and target data types are not physically compatible" msgstr "変換元と変換先のデータ型の間には物理的な互換性がありません" -#: commands/functioncmds.c:1704 +#: commands/functioncmds.c:1727 #, c-format msgid "composite data types are not binary-compatible" -msgstr "複合データ型はバイナリ互換ではありません" +msgstr "複合データ型がバイナリ互換ではありません" -#: commands/functioncmds.c:1710 +#: commands/functioncmds.c:1733 #, c-format -msgid "enum data types are not binary-compatible" -msgstr "列挙データ型はバイナリ互換ではありません" +msgid "array data types are not binary-compatible" +msgstr "配列データ型がバイナリ互換ではありません" -#: commands/functioncmds.c:1716 +#: commands/functioncmds.c:1741 #, c-format -msgid "array data types are not binary-compatible" -msgstr "配列データ型はバイナリ互換ではありません" +msgid "range data types are not binary-compatible" +msgstr "範囲データ型がバイナリ互換ではありません" -#: commands/functioncmds.c:1733 +#: commands/functioncmds.c:1747 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "列挙データ型がバイナリ互換ではありません" + +#: commands/functioncmds.c:1764 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "ドメインデータ型はバイナリ互換としてマークされていてはなりません" -#: commands/functioncmds.c:1743 +#: commands/functioncmds.c:1774 #, c-format msgid "source data type and target data type are the same" msgstr "変換元と変換先のデータ型が同一です" -#: commands/functioncmds.c:1776 +#: commands/functioncmds.c:1807 #, c-format msgid "transform function must not be volatile" msgstr "変換関数はvolatileではいけません" -#: commands/functioncmds.c:1780 +#: commands/functioncmds.c:1811 #, c-format msgid "transform function must be a normal function" msgstr "変換関数は通常の関数でなければなりません" -#: commands/functioncmds.c:1784 +#: commands/functioncmds.c:1815 #, c-format msgid "transform function must not return a set" msgstr "変換関数は集合を返してはいけません" -#: commands/functioncmds.c:1788 +#: commands/functioncmds.c:1819 #, c-format msgid "transform function must take one argument" msgstr "変換関数は引数を1つとらなければなりません" -#: commands/functioncmds.c:1792 +#: commands/functioncmds.c:1823 #, c-format msgid "first argument of transform function must be type %s" msgstr "変換関数の第1引数は%s型でなければなりません" -#: commands/functioncmds.c:1831 +#: commands/functioncmds.c:1862 #, c-format msgid "data type %s is a pseudo-type" msgstr "データ型%sは擬似型です" -#: commands/functioncmds.c:1837 +#: commands/functioncmds.c:1868 #, c-format msgid "data type %s is a domain" msgstr "データ型%sはドメインです" -#: commands/functioncmds.c:1877 +#: commands/functioncmds.c:1908 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "FROM SQL関数の戻り値のデータ型は%sでなければなりません" -#: commands/functioncmds.c:1903 +#: commands/functioncmds.c:1934 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "TO SQL関数の戻り値データ型はこの変換関数のデータ型でなければなりません" -#: commands/functioncmds.c:1930 +#: commands/functioncmds.c:1961 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "型%s、言語\"%s\"の変換はすでに存在します" -#: commands/functioncmds.c:2016 +#: commands/functioncmds.c:2047 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "型%s、言語\"%s\"の変換は存在しません" -#: commands/functioncmds.c:2040 +#: commands/functioncmds.c:2071 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "関数%sはすでにスキーマ\"%s\"内に存在します" -#: commands/functioncmds.c:2091 +#: commands/functioncmds.c:2122 #, c-format msgid "no inline code specified" msgstr "インラインコードの指定がありません" -#: commands/functioncmds.c:2137 +#: commands/functioncmds.c:2168 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "言語\"%s\"ではインラインコード実行をサポートしていません" -#: commands/functioncmds.c:2232 +#: commands/functioncmds.c:2263 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" msgstr[0] "プロシージャには %d 個以上の引数を渡すことはできません" -#: commands/indexcmds.c:647 +#: commands/indexcmds.c:659 #, c-format msgid "must specify at least one column" msgstr "少なくとも1つの列を指定しなければなりません" -#: commands/indexcmds.c:651 +#: commands/indexcmds.c:663 #, c-format msgid "cannot use more than %d columns in an index" msgstr "インデックスには%dを超える列を使用できません" -#: commands/indexcmds.c:694 +#: commands/indexcmds.c:712 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "リレーション\"%s\"のインデックスを作成できません" -#: commands/indexcmds.c:720 +#: commands/indexcmds.c:738 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "パーティション親テーブル\"%s\"には CREATE INDEX CONCURRENTLY は実行できません" -#: commands/indexcmds.c:730 +#: commands/indexcmds.c:748 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "他のセッションの一時テーブルに対するインデックスを作成できません" -#: commands/indexcmds.c:768 commands/tablecmds.c:806 commands/tablespace.c:1178 +#: commands/indexcmds.c:786 commands/tablecmds.c:891 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "パーティション親リレーションにはデフォルトテーブル空間は指定できません" -#: commands/indexcmds.c:800 commands/tablecmds.c:837 commands/tablecmds.c:3564 +#: commands/indexcmds.c:818 commands/tablecmds.c:922 commands/tablecmds.c:3709 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "共有リレーションのみをpg_globalテーブル空間に格納することができます" -#: commands/indexcmds.c:833 +#: commands/indexcmds.c:851 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "古いメソッド\"rtree\"をアクセスメソッド\"gist\"に置換しています" -#: commands/indexcmds.c:854 +#: commands/indexcmds.c:872 #, c-format msgid "access method \"%s\" does not support unique indexes" -msgstr "アクセスメソッド\"%s\"では一意性インデックスをサポートしていません" +msgstr "アクセスメソッド\"%s\"ではユニークインデックスをサポートしていません" -#: commands/indexcmds.c:859 +#: commands/indexcmds.c:877 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "アクセスメソッド\"%s\"では包含列をサポートしていません" -#: commands/indexcmds.c:864 +#: commands/indexcmds.c:882 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "アクセスメソッド\"%s\"は複数列インデックスをサポートしません" -#: commands/indexcmds.c:869 +#: commands/indexcmds.c:887 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "アクセスメソッド\"%s\"は排除制約をサポートしていません" -#: commands/indexcmds.c:998 +#: commands/indexcmds.c:892 #, c-format -msgid "cannot match partition key to an index using access method \"%s\"" -msgstr "パーティションキーはアクセスメソッド\"%s\"を使っているインデックスには適合させられません" +msgid "access method \"%s\" does not support WITHOUT OVERLAPS constraints" +msgstr "アクセスメソッド\"%s\"はWITHOUT OVERLAPS制約をサポートしていません" -#: commands/indexcmds.c:1008 +#: commands/indexcmds.c:1019 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "パーティションキー定義では %s 制約はサポートしていません" -#: commands/indexcmds.c:1010 +#: commands/indexcmds.c:1021 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "%s 制約はパーティションキーが式を含む場合は使用できません" -#: commands/indexcmds.c:1060 +#: commands/indexcmds.c:1056 commands/indexcmds.c:2469 commands/indexcmds.c:2488 executor/execReplication.c:329 parser/parse_cte.c:303 parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1410 utils/adt/array_userfuncs.c:1553 utils/adt/arrayfuncs.c:3864 utils/adt/arrayfuncs.c:4419 utils/adt/arrayfuncs.c:6440 utils/adt/rowtypes.c:1220 +#, c-format +msgid "could not identify an equality operator for type %s" +msgstr "型%sの等価演算子を特定できませんでした" + +#: commands/indexcmds.c:1057 commands/indexcmds.c:2491 +#, c-format +msgid "There is no suitable operator in operator family \"%s\" for access method \"%s\"." +msgstr "アクセスメソッド\"%2$s\"に対する演算子族\"%1$s\"に適切な演算子がありません。" + +#: commands/indexcmds.c:1077 #, c-format msgid "cannot match partition key to index on column \"%s\" using non-equal operator \"%s\"" msgstr "パーティションキーの、列\"%s\"上のインデックスへの適合を非等価演算子\"%s\"を使って行うことはできません" -#: commands/indexcmds.c:1076 +#: commands/indexcmds.c:1093 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "パーティション親テーブル上のユニーク制約はすべてのパーティショニング列を含まなければなりません" -#: commands/indexcmds.c:1077 +#: commands/indexcmds.c:1094 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "テーブル\"%2$s\"上の%1$s制約にパーティションキーの一部である列\"%3$s\"が含まれていません。" -#: commands/indexcmds.c:1096 commands/indexcmds.c:1115 +#: commands/indexcmds.c:1116 commands/indexcmds.c:1147 #, c-format msgid "index creation on system columns is not supported" msgstr "システム列へのインデックス作成はサポートされていません" -#: commands/indexcmds.c:1344 tcop/utility.c:1515 +#: commands/indexcmds.c:1123 +#, c-format +msgid "primary keys on virtual generated columns are not supported" +msgstr "仮想生成列に対する主キーはサポートされていません" + +#: commands/indexcmds.c:1125 commands/indexcmds.c:1164 +#, c-format +msgid "unique constraints on virtual generated columns are not supported" +msgstr "一意性制約は仮想生成列ではサポートされていません" + +#: commands/indexcmds.c:1126 commands/indexcmds.c:1165 +#, c-format +msgid "indexes on virtual generated columns are not supported" +msgstr "仮想生成列に対するインデックスはサポートされていません" + +#: commands/indexcmds.c:1397 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"にはユニークインデックスを構築できません" -#: commands/indexcmds.c:1346 tcop/utility.c:1517 +#: commands/indexcmds.c:1399 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "テーブル\"%s\"は外部テーブルを子テーブルとして含んでいます" -#: commands/indexcmds.c:1831 +#: commands/indexcmds.c:1857 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "インデックスの述部の関数はIMMUTABLEマークが必要です" -#: commands/indexcmds.c:1910 parser/parse_utilcmd.c:2494 parser/parse_utilcmd.c:2629 +#: commands/indexcmds.c:1954 parser/parse_utilcmd.c:2714 parser/parse_utilcmd.c:2897 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "キーとして指名された列\"%s\"は存在しません" -#: commands/indexcmds.c:1934 parser/parse_utilcmd.c:1782 +#: commands/indexcmds.c:1978 parser/parse_utilcmd.c:1967 #, c-format msgid "expressions are not supported in included columns" msgstr "包含列では式はサポートされません" -#: commands/indexcmds.c:1975 +#: commands/indexcmds.c:2019 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "式インデックスの関数はIMMUTABLEマークが必要です" -#: commands/indexcmds.c:1990 +#: commands/indexcmds.c:2034 #, c-format msgid "including column does not support a collation" msgstr "包含列は照合順序をサポートしません" -#: commands/indexcmds.c:1994 +#: commands/indexcmds.c:2038 #, c-format msgid "including column does not support an operator class" msgstr "包含列は演算子クラスをサポートしません" -#: commands/indexcmds.c:1998 +#: commands/indexcmds.c:2042 #, c-format msgid "including column does not support ASC/DESC options" msgstr "包含列は ASC/DESC オプションをサポートしません" -#: commands/indexcmds.c:2002 +#: commands/indexcmds.c:2046 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "包含列は NULLS FIRST/LAST オプションをサポートしません" -#: commands/indexcmds.c:2044 +#: commands/indexcmds.c:2089 #, c-format msgid "could not determine which collation to use for index expression" msgstr "インデックス式で使用する照合順序を特定できませんでした" -#: commands/indexcmds.c:2052 commands/tablecmds.c:18078 commands/typecmds.c:811 parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3918 utils/adt/misc.c:630 +#: commands/indexcmds.c:2097 commands/tablecmds.c:19886 commands/typecmds.c:812 parser/parse_expr.c:2801 parser/parse_type.c:568 parser/parse_utilcmd.c:4043 utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "%s 型では照合順序はサポートされません" -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2164 #, c-format msgid "operator %s is not commutative" msgstr "演算子 %s は可換ではありません" -#: commands/indexcmds.c:2119 +#: commands/indexcmds.c:2166 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "排除制約で使えるのは可換演算子だけです" -#: commands/indexcmds.c:2145 +#: commands/indexcmds.c:2176 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "演算子%sは演算子族\"%s\"のメンバーではありません" -#: commands/indexcmds.c:2148 +#: commands/indexcmds.c:2179 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "この排除に使用する演算子はこの制約に使用するインデックス演算子に関連付けられている必要があります。" -#: commands/indexcmds.c:2183 +#: commands/indexcmds.c:2228 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "アクセスメソッド\"%s\"はASC/DESCオプションをサポートしません" -#: commands/indexcmds.c:2188 +#: commands/indexcmds.c:2233 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "アクセスメソッド\"%s\"はNULLS FIRST/LASTオプションをサポートしません" -#: commands/indexcmds.c:2232 commands/tablecmds.c:18103 commands/tablecmds.c:18109 commands/typecmds.c:2311 +#: commands/indexcmds.c:2277 commands/tablecmds.c:19911 commands/tablecmds.c:19917 commands/typecmds.c:2341 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"にはデータ型%1$s用のデフォルトの演算子クラスがありません" -#: commands/indexcmds.c:2234 +#: commands/indexcmds.c:2279 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "このインデックスの演算子クラスを指定するか、あるいはこのデータ型のデフォルト演算子クラスを定義しなければなりません。" -#: commands/indexcmds.c:2263 commands/indexcmds.c:2271 commands/opclasscmds.c:204 +#: commands/indexcmds.c:2308 commands/indexcmds.c:2316 commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"用の演算子クラス\"%1$s\"は存在しません" -#: commands/indexcmds.c:2285 commands/typecmds.c:2299 +#: commands/indexcmds.c:2330 commands/typecmds.c:2329 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "演算子クラス\"%s\"はデータ型%sを受け付けません" -#: commands/indexcmds.c:2375 +#: commands/indexcmds.c:2420 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "データ型%sには複数のデフォルトの演算子クラスがあります" -#: commands/indexcmds.c:2703 +#: commands/indexcmds.c:2470 commands/indexcmds.c:2489 +#, c-format +msgid "could not identify an overlaps operator for type %s" +msgstr "型%sの重複検出演算子を特定できませんでした" + +#: commands/indexcmds.c:2471 commands/indexcmds.c:2490 +#, c-format +msgid "could not identify a contained-by operator for type %s" +msgstr "型%sの被包含演算子を特定できませんでした" + +#: commands/indexcmds.c:2472 commands/tablecmds.c:10302 +#, c-format +msgid "Could not translate compare type %d for operator family \"%s\", input type %s, access method \"%s\"." +msgstr "演算子ファミリー\"%2$s\"、入力型 %3$s、アクセスメソッド\"%4$s\"に対応する比較方式%1$dを変換できませんでした。" + +#: commands/indexcmds.c:2812 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "認識できないREINDEXのオプション \"%s\"" -#: commands/indexcmds.c:2935 +#: commands/indexcmds.c:3044 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "テーブル\"%s\"には並行インデックス再作成が可能なインデックスがありません" -#: commands/indexcmds.c:2949 +#: commands/indexcmds.c:3058 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "テーブル\"%s\"には再構築すべきインデックスはありません" -#: commands/indexcmds.c:2996 commands/indexcmds.c:3507 commands/indexcmds.c:3637 +#: commands/indexcmds.c:3105 commands/indexcmds.c:3616 commands/indexcmds.c:3746 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "システムカタログではインデックスの並行再構築はできません" -#: commands/indexcmds.c:3020 +#: commands/indexcmds.c:3129 #, c-format msgid "can only reindex the currently open database" msgstr "現在オープンしているデータベースのみをインデックス再構築することができます" -#: commands/indexcmds.c:3112 +#: commands/indexcmds.c:3221 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "システムカタログではインデックスの並行再構築はできません、全てスキップします" -#: commands/indexcmds.c:3145 +#: commands/indexcmds.c:3254 #, c-format msgid "cannot move system relations, skipping all" msgstr "システムリレーションは移動できません、すべてスキップします" -#: commands/indexcmds.c:3191 +#: commands/indexcmds.c:3300 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "パーティションテーブル\"%s.%s\"のインデックス再構築中" -#: commands/indexcmds.c:3194 +#: commands/indexcmds.c:3303 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "パーティションインデックス\"%s.%s\"のインデックス再構築中" -#: commands/indexcmds.c:3387 commands/indexcmds.c:4255 +#: commands/indexcmds.c:3496 commands/indexcmds.c:4388 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "テーブル\"%s.%s\"のインデックス再構築が完了しました" -#: commands/indexcmds.c:3539 commands/indexcmds.c:3592 +#: commands/indexcmds.c:3648 commands/indexcmds.c:3701 #, c-format msgid "skipping reindex of invalid index \"%s.%s\"" msgstr "無効なインデックス\"%s.%s\"の再構築をスキップします" -#: commands/indexcmds.c:3542 commands/indexcmds.c:3595 +#: commands/indexcmds.c:3651 commands/indexcmds.c:3704 #, c-format msgid "Use DROP INDEX or REINDEX INDEX." msgstr "DROP INDEXあるいはREINDEX INDEXを使用してください。" -#: commands/indexcmds.c:3546 +#: commands/indexcmds.c:3655 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "排他制約インデックス\"%s.%s\"を並行再構築することはできません、スキップします " -#: commands/indexcmds.c:3702 +#: commands/indexcmds.c:3811 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "このタイプのリレーションでインデックス並列再構築はできません" -#: commands/indexcmds.c:3720 +#: commands/indexcmds.c:3829 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "テーブルスペース\"%s\"への非共有リレーションの移動はできません" -#: commands/indexcmds.c:4236 commands/indexcmds.c:4248 +#: commands/indexcmds.c:4369 commands/indexcmds.c:4381 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr " インデックス\"%s.%s\"の再構築が完了しました " -#: commands/indexcmds.c:4238 commands/indexcmds.c:4257 +#: commands/indexcmds.c:4371 commands/indexcmds.c:4390 #, c-format msgid "%s." msgstr "%s。" @@ -8973,252 +9014,272 @@ msgstr "%s。" msgid "cannot lock relation \"%s\"" msgstr "リレーション\"%s\"はロックできません" -#: commands/matview.c:190 +#: commands/matview.c:208 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "実体化ビューにデータが投入されていない場合はCONCURRENTLYを使用することはできません" -#: commands/matview.c:196 gram.y:18967 +#: commands/matview.c:214 gram.y:19148 #, c-format msgid "%s and %s options cannot be used together" msgstr "%sオプションと%sオプションとを同時に使用することはできません" -#: commands/matview.c:253 +#: commands/matview.c:273 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "実体化ビュー\"%s\"を平行的に最新化することはできません" -#: commands/matview.c:256 +#: commands/matview.c:276 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." -msgstr "実体化ビュー上の1つ以上の列に対してWHERE句を持たないUNIQUEインデックスを作成してください。" +msgstr "実体化ビュー上の1つ以上の列に対してWHERE句を持たないユニークインデックスを作成してください。" -#: commands/matview.c:650 +#: commands/matview.c:683 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "実体化ビュー\"%s\"に対する新しいデータにはNULL列を持たない重複行があります" -#: commands/matview.c:652 +#: commands/matview.c:685 #, c-format msgid "Row: %s" msgstr "行: %s" -#: commands/opclasscmds.c:123 +#: commands/matview.c:839 +#, c-format +msgid "could not find suitable unique index on materialized view" +msgstr "実体化ビューに適切なユニークインデックスがありませんでした" + +#: commands/opclasscmds.c:124 #, c-format msgid "operator family \"%s\" does not exist for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"用の演算子族\"%1$s\"は存在しません" -#: commands/opclasscmds.c:266 +#: commands/opclasscmds.c:267 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists" msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"はすでに存在します" -#: commands/opclasscmds.c:415 +#: commands/opclasscmds.c:416 #, c-format msgid "must be superuser to create an operator class" msgstr "演算子クラスを作成するにはスーパーユーザーである必要があります" -#: commands/opclasscmds.c:492 commands/opclasscmds.c:909 commands/opclasscmds.c:1055 +#: commands/opclasscmds.c:493 commands/opclasscmds.c:910 commands/opclasscmds.c:1056 #, c-format msgid "invalid operator number %d, must be between 1 and %d" msgstr "演算子番号%dが不正です。1から%dまででなければなりません" -#: commands/opclasscmds.c:537 commands/opclasscmds.c:959 commands/opclasscmds.c:1071 +#: commands/opclasscmds.c:538 commands/opclasscmds.c:960 commands/opclasscmds.c:1072 #, c-format msgid "invalid function number %d, must be between 1 and %d" msgstr "演算子番号%dが不正です、1と%dの間でなければなりません" -#: commands/opclasscmds.c:566 +#: commands/opclasscmds.c:567 #, c-format msgid "storage type specified more than once" msgstr "格納型が複数指定されました" -#: commands/opclasscmds.c:593 +#: commands/opclasscmds.c:594 #, c-format msgid "storage type cannot be different from data type for access method \"%s\"" msgstr "アクセスメソッド\"%s\"用のデータ型と異なる格納型を使用できません" -#: commands/opclasscmds.c:609 +#: commands/opclasscmds.c:610 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists" msgstr "アクセスメソッド\"%2$s\"の演算子クラス\"%1$s\"はすでに存在します" -#: commands/opclasscmds.c:637 +#: commands/opclasscmds.c:638 #, c-format msgid "could not make operator class \"%s\" be default for type %s" msgstr "演算子クラス\"%s\"を型%sのデフォルトにすることができませんでした" -#: commands/opclasscmds.c:640 +#: commands/opclasscmds.c:641 #, c-format msgid "Operator class \"%s\" already is the default." msgstr "演算子クラス\"%s\"はすでにデフォルトです。" -#: commands/opclasscmds.c:800 +#: commands/opclasscmds.c:801 #, c-format msgid "must be superuser to create an operator family" msgstr "演算子族を作成するにはスーパーユーザーである必要があります" -#: commands/opclasscmds.c:860 +#: commands/opclasscmds.c:861 #, c-format msgid "must be superuser to alter an operator family" msgstr "演算子族を更新するにはスーパーユーザーである必要があります" -#: commands/opclasscmds.c:918 +#: commands/opclasscmds.c:919 #, c-format msgid "operator argument types must be specified in ALTER OPERATOR FAMILY" msgstr "ALTER OPERATOR FAMILYでは演算子の引数型の指定が必要です" -#: commands/opclasscmds.c:993 +#: commands/opclasscmds.c:994 #, c-format msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY" msgstr "ALTER OPERATOR FAMILYではSTORAGEを指定できません" -#: commands/opclasscmds.c:1127 +#: commands/opclasscmds.c:1128 #, c-format msgid "one or two argument types must be specified" msgstr "1または2つの引数型が指定する必要があります" -#: commands/opclasscmds.c:1153 +#: commands/opclasscmds.c:1154 #, c-format msgid "index operators must be binary" msgstr "インデックス演算子は二項演算子でなければなりません" -#: commands/opclasscmds.c:1172 +#: commands/opclasscmds.c:1173 #, c-format msgid "access method \"%s\" does not support ordering operators" msgstr "アクセスメソッド\"%s\"は並べ替え演算子をサポートしていません" -#: commands/opclasscmds.c:1183 +#: commands/opclasscmds.c:1184 #, c-format msgid "index search operators must return boolean" msgstr "インデックス検索演算子はブール型を返す必要があります" -#: commands/opclasscmds.c:1223 +#: commands/opclasscmds.c:1224 #, c-format msgid "associated data types for operator class options parsing functions must match opclass input type" msgstr "演算子クラスのパース関数に対応するデータ型は演算子クラスの入力型と一致している必要があります" -#: commands/opclasscmds.c:1230 +#: commands/opclasscmds.c:1231 #, c-format msgid "left and right associated data types for operator class options parsing functions must match" msgstr "演算子クラスオプションのパース関数の左右辺の対応するデータ型は一致している必要があります" -#: commands/opclasscmds.c:1238 +#: commands/opclasscmds.c:1239 #, c-format msgid "invalid operator class options parsing function" msgstr "不正な演算子クラスオプションのパース関数" -#: commands/opclasscmds.c:1239 +#: commands/opclasscmds.c:1240 #, c-format msgid "Valid signature of operator class options parsing function is %s." msgstr "演算子クラスオプションのパース関数の正しいシグネチャは %s です。" -#: commands/opclasscmds.c:1258 +#: commands/opclasscmds.c:1259 +#, c-format +msgid "ordering comparison functions must have two arguments" +msgstr "順序付け比較関数は2つの引数を取る必要があります" + +#: commands/opclasscmds.c:1263 +#, c-format +msgid "ordering comparison functions must return integer" +msgstr "順序付け比較関数は整数を返さなければなりません" + +#: commands/opclasscmds.c:1280 +#, c-format +msgid "ordering sort support functions must accept type \"internal\"" +msgstr "順序付けソートサポート関数は\"internal\"型を取らなければなりません" + +#: commands/opclasscmds.c:1284 #, c-format -msgid "btree comparison functions must have two arguments" -msgstr "btree比較関数は2つの引数を取る必要があります" +msgid "ordering sort support functions must return void" +msgstr "順序付けソートサポート関数はvoidを返さなければなりません" -#: commands/opclasscmds.c:1262 +#: commands/opclasscmds.c:1295 #, c-format -msgid "btree comparison functions must return integer" -msgstr "btree比較関数は整数を返さなければなりません" +msgid "ordering in_range functions must have five arguments" +msgstr "順序付け in_range 関数は5つの引数を取る必要があります" -#: commands/opclasscmds.c:1279 +#: commands/opclasscmds.c:1299 #, c-format -msgid "btree sort support functions must accept type \"internal\"" -msgstr "btreeソートサポート関数は\"internal\"型を取らなければなりません" +msgid "ordering in_range functions must return boolean" +msgstr "順序付け in_range 関数はブール型を返す必要があります" -#: commands/opclasscmds.c:1283 +#: commands/opclasscmds.c:1315 #, c-format -msgid "btree sort support functions must return void" -msgstr "btreeソートサポート関数はvoidを返さなければなりません" +msgid "ordering equal image functions must have one argument" +msgstr "順序付け等価イメージ関数は1つの引数を取る必要があります" -#: commands/opclasscmds.c:1294 +#: commands/opclasscmds.c:1319 #, c-format -msgid "btree in_range functions must have five arguments" -msgstr "btree in_range 関数は5つの引数を取る必要があります" +msgid "ordering equal image functions must return boolean" +msgstr "順序付け等価イメージ関数はブール型を返す必要があります" -#: commands/opclasscmds.c:1298 +#: commands/opclasscmds.c:1332 #, c-format -msgid "btree in_range functions must return boolean" -msgstr "btree in_range 関数はブール型を返す必要があります" +msgid "ordering equal image functions must not be cross-type" +msgstr "順序付け等価イメージ関数は異なる型の引数を取ってはなりません" -#: commands/opclasscmds.c:1314 +#: commands/opclasscmds.c:1340 #, c-format -msgid "btree equal image functions must have one argument" -msgstr "btreeの equal image 関数は1つの引数を取る必要があります" +msgid "btree skip support functions must accept type \"internal\"" +msgstr "btreeスキップサポート関数は\"internal\"型を取らなければなりません" -#: commands/opclasscmds.c:1318 +#: commands/opclasscmds.c:1344 #, c-format -msgid "btree equal image functions must return boolean" -msgstr "btreeの euqal image 関数はブール型を返す必要があります" +msgid "btree skip support functions must return void" +msgstr "btreeスキップサポート関数はvoidを返さなければなりません" -#: commands/opclasscmds.c:1331 +#: commands/opclasscmds.c:1357 #, c-format -msgid "btree equal image functions must not be cross-type" -msgstr "btreeの equal image 関数は同じ型の引数を取る必要があります" +msgid "btree skip support functions must not be cross-type" +msgstr "btreeスキップサポート関数は異なる型の引数を取ってはなりません" -#: commands/opclasscmds.c:1341 +#: commands/opclasscmds.c:1367 #, c-format msgid "hash function 1 must have one argument" msgstr "ハッシュ関数1は引数を1つ取る必要があります" -#: commands/opclasscmds.c:1345 +#: commands/opclasscmds.c:1371 #, c-format msgid "hash function 1 must return integer" msgstr "ハッシュ関数1は整数を返す必要があります" -#: commands/opclasscmds.c:1352 +#: commands/opclasscmds.c:1378 #, c-format msgid "hash function 2 must have two arguments" msgstr "ハッシュ関数2は2つの引数を取る必要があります" -#: commands/opclasscmds.c:1356 +#: commands/opclasscmds.c:1382 #, c-format msgid "hash function 2 must return bigint" msgstr "ハッシュ関数2は bigint を返す必要があります" -#: commands/opclasscmds.c:1381 +#: commands/opclasscmds.c:1407 #, c-format msgid "associated data types must be specified for index support function" msgstr "インデックスサポート関数に対して関連データ型を指定する必要があります" -#: commands/opclasscmds.c:1406 +#: commands/opclasscmds.c:1432 #, c-format msgid "function number %d for (%s,%s) appears more than once" msgstr "(%2$s,%3$s)に対応する演算子番号%1$dが複数あります" -#: commands/opclasscmds.c:1413 +#: commands/opclasscmds.c:1439 #, c-format msgid "operator number %d for (%s,%s) appears more than once" msgstr "(%2$s,%3$s)用の演算子番号%1$dが複数あります" -#: commands/opclasscmds.c:1459 +#: commands/opclasscmds.c:1485 #, c-format msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "演算子%d(%s,%s)はすでに演算子族\"%s\"に存在します" -#: commands/opclasscmds.c:1565 +#: commands/opclasscmds.c:1614 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "関数%d(%s,%s)はすでに演算子族\"%s\"内に存在します" -#: commands/opclasscmds.c:1646 +#: commands/opclasscmds.c:1769 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "演算子%d(%s,%s)は演算子族\"%s\"内にありません" -#: commands/opclasscmds.c:1686 +#: commands/opclasscmds.c:1809 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "関数%d(%s,%s)は演算子族\"%s\"内に存在しません" -#: commands/opclasscmds.c:1717 +#: commands/opclasscmds.c:1840 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "アクセスメソッド\"%2$s\"用の演算子クラス\"%1$s\"はスキーマ\"%3$s\"内にすでに存在します" -#: commands/opclasscmds.c:1740 +#: commands/opclasscmds.c:1863 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "アクセスメソッド\"%2$s\"用の演算子族\"%1$s\"はスキーマ\"%3$s\"内にすでに存在します" @@ -9288,7 +9349,7 @@ msgstr "演算子の属性\"%s\"は変更できません" msgid "operator attribute \"%s\" cannot be changed if it has already been set" msgstr "演算子の属性\"%s\"は、すでに設定されている場合には変更できません" -#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 commands/tablecmds.c:1728 commands/tablecmds.c:2328 commands/tablecmds.c:3675 commands/tablecmds.c:6613 commands/tablecmds.c:9645 commands/tablecmds.c:17665 commands/tablecmds.c:17700 commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1442 rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 commands/tablecmds.c:1799 commands/tablecmds.c:2399 commands/tablecmds.c:3823 commands/tablecmds.c:6792 commands/tablecmds.c:10058 commands/tablecmds.c:19467 commands/tablecmds.c:19502 commands/trigger.c:318 commands/trigger.c:1337 commands/trigger.c:1447 rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "権限がありません: \"%s\"はシステムカタログです" @@ -9328,52 +9389,52 @@ msgstr "テーブル\"%2$s\"に対するポリシ\"%1$s\"は存在しません" msgid "only USING expression allowed for SELECT, DELETE" msgstr "SELECT、DELETEにはUSING式のみが指定可能です" -#: commands/portalcmds.c:60 commands/portalcmds.c:181 commands/portalcmds.c:232 +#: commands/portalcmds.c:63 commands/portalcmds.c:192 commands/portalcmds.c:243 #, c-format msgid "invalid cursor name: must not be empty" msgstr "カーソル名が不正です: 空ではいけません" -#: commands/portalcmds.c:72 +#: commands/portalcmds.c:75 #, c-format msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "セキュリティー制限操作中は、WITH HOLD指定のカーソルを作成できません" -#: commands/portalcmds.c:189 commands/portalcmds.c:242 executor/execCurrent.c:70 utils/adt/xml.c:2873 utils/adt/xml.c:3043 +#: commands/portalcmds.c:200 commands/portalcmds.c:253 executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "カーソル\"%s\"は存在しません" -#: commands/prepare.c:72 +#: commands/prepare.c:75 #, c-format msgid "invalid statement name: must not be empty" msgstr "不正な文の名前: 空ではいけません" -#: commands/prepare.c:227 commands/prepare.c:232 +#: commands/prepare.c:231 commands/prepare.c:236 #, c-format msgid "prepared statement is not a SELECT" msgstr "準備された文はSELECTではありません" -#: commands/prepare.c:292 +#: commands/prepare.c:296 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "準備された文\"%s\"のパラメータ数が間違っています" -#: commands/prepare.c:294 +#: commands/prepare.c:298 #, c-format msgid "Expected %d parameters but got %d." msgstr "%dパラメータを想定しましたが、%dパラメータでした" -#: commands/prepare.c:327 +#: commands/prepare.c:331 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "パラメータ$%dの型%sを想定している型%sに強制することができません" -#: commands/prepare.c:411 +#: commands/prepare.c:415 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "準備された文\"%s\"はすでに存在します" -#: commands/prepare.c:450 +#: commands/prepare.c:454 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "準備された文\"%s\"は存在しません" @@ -9383,200 +9444,205 @@ msgstr "準備された文\"%s\"は存在しません" msgid "must be superuser to create custom procedural language" msgstr "手続き言語を生成するためにはスーパーユーザーである必要があります" -#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 postmaster/postmaster.c:1210 utils/init/miscinit.c:1811 +#: commands/publicationcmds.c:130 libpq/auth-oauth.c:850 postmaster/postmaster.c:1130 postmaster/postmaster.c:1232 utils/init/miscinit.c:1870 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "パラメータ\"%s\"のリスト構文が不正です" -#: commands/publicationcmds.c:143 +#: commands/publicationcmds.c:149 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "パブリケーションオプション\"%s\"に対する認識できない値: \"%s\"" -#: commands/publicationcmds.c:157 +#: commands/publicationcmds.c:170 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "識別できないパブリケーションのパラメータ: \"%s\"" -#: commands/publicationcmds.c:198 +#: commands/publicationcmds.c:211 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "SURRENT_SCHEMAでスキーマの選択ができませんでした" -#: commands/publicationcmds.c:495 +#: commands/publicationcmds.c:592 msgid "System columns are not allowed." msgstr "システム列は使用できません。" -#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 commands/publicationcmds.c:524 +#: commands/publicationcmds.c:599 commands/publicationcmds.c:604 commands/publicationcmds.c:621 msgid "User-defined operators are not allowed." msgstr "ユーザー定義演算子は使用できません。" -#: commands/publicationcmds.c:548 +#: commands/publicationcmds.c:645 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "列、定数、組み込み演算子、組み込みデータ型、組み込み照合順序、そして不変組み込み関数のみ使用可能です。" -#: commands/publicationcmds.c:560 +#: commands/publicationcmds.c:657 msgid "User-defined types are not allowed." msgstr "ユーザー定義型は使用できません。" -#: commands/publicationcmds.c:563 +#: commands/publicationcmds.c:660 msgid "User-defined or built-in mutable functions are not allowed." msgstr "ユーザー定義または組み込みの不変関数は使用できません。" -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:663 msgid "User-defined collations are not allowed." msgstr "ユーザー定義照合順序は使用できません。" -#: commands/publicationcmds.c:576 +#: commands/publicationcmds.c:673 #, c-format msgid "invalid publication WHERE expression" msgstr "パブリケーションのWHERE式が不正です" -#: commands/publicationcmds.c:629 +#: commands/publicationcmds.c:726 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "リレーション\"%s\"に対してはパブリケーションのWHERE句は使用できません" -#: commands/publicationcmds.c:631 +#: commands/publicationcmds.c:728 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "%sが偽のときはWHERE句をパーティション親テーブルに対して使用することはできません。" -#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 +#: commands/publicationcmds.c:801 commands/publicationcmds.c:815 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "パブリケーション\"%3$s\"のリレーション\"%1$s.%2$s\"に対して列リストを使用することはできません" -#: commands/publicationcmds.c:705 +#: commands/publicationcmds.c:804 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "FOR TABLES IN SCHEMA要素を含むパブリケーションで列リストは指定できません。" -#: commands/publicationcmds.c:719 +#: commands/publicationcmds.c:818 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "%sが偽のときはパーティション親テーブルに対して列リストを使用できません。" -#: commands/publicationcmds.c:754 +#: commands/publicationcmds.c:855 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "FOR ALL TABLE 指定のパブリケーションを生成するためにはスーパーユーザーである必要があります" -#: commands/publicationcmds.c:825 +#: commands/publicationcmds.c:930 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "FOR TABLES IN SCHEMA設定のパブリケーションを作成するにはスーパーユーザーである必要があります" -#: commands/publicationcmds.c:861 +#: commands/publicationcmds.c:966 #, c-format msgid "\"wal_level\" is insufficient to publish logical changes" msgstr "\"wal_level\"が論理更新情報のパブリッシュには不十分です" -#: commands/publicationcmds.c:862 +#: commands/publicationcmds.c:967 #, c-format msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." msgstr "サブスクリプションを作成する前に\"wal_level\"を\"logical\"に設定にしてください。" -#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 +#: commands/publicationcmds.c:1067 commands/publicationcmds.c:1075 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "パブリケーション\"%2$s\"に対してパラメーター\"%1$s\"を偽に設定することはできません" -#: commands/publicationcmds.c:961 +#: commands/publicationcmds.c:1070 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "このパブリケーションはパーティション親テーブル\"%s\"に対するWHERE句を含んでいますが、これは\"%s\" が偽の場合は許可されません。" -#: commands/publicationcmds.c:969 +#: commands/publicationcmds.c:1078 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "このパブリケーションはパーティション親テーブルに\"%s\"対する列リストを含んでいますが、これは\"%s\" が偽の場合は許可されません。" -#: commands/publicationcmds.c:1292 +#: commands/publicationcmds.c:1399 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "パブリケーション\"%s\"にはスキーマは追加できません" -#: commands/publicationcmds.c:1294 +#: commands/publicationcmds.c:1401 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "カラムリストが指定されているテーブルがパブリケーションに含まれている場合はスキーマの追加ができません。" -#: commands/publicationcmds.c:1342 +#: commands/publicationcmds.c:1449 #, c-format msgid "must be superuser to add or set schemas" msgstr "スキーマを追加または設定するにはスーパーユーザーである必要があります" -#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1458 commands/publicationcmds.c:1466 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "パブリケーション\"%s\"は FOR ALL TABLES と定義されています" -#: commands/publicationcmds.c:1353 +#: commands/publicationcmds.c:1460 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "FOR ALL TABLES指定のパブリケーションではスキーマの追加や削除はできません。" -#: commands/publicationcmds.c:1361 +#: commands/publicationcmds.c:1468 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "FOR ALL TABLES指定のパブリケーションではテーブルの追加や削除はできません。" -#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 +#: commands/publicationcmds.c:1492 commands/publicationcmds.c:1531 commands/publicationcmds.c:2068 utils/cache/lsyscache.c:3774 #, c-format msgid "publication \"%s\" does not exist" msgstr "パブリケーション\"%s\"は存在しません" -#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 +#: commands/publicationcmds.c:1694 commands/publicationcmds.c:1757 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "テーブル\"%s\"でWHERE句が衝突しているか重複しています" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 +#: commands/publicationcmds.c:1701 commands/publicationcmds.c:1769 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "テーブル\"%s\"で列リストが衝突しているか重複しています" -#: commands/publicationcmds.c:1796 +#: commands/publicationcmds.c:1903 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "ALTER PUBLICATION ... DROPでは、列リストは指定できません" -#: commands/publicationcmds.c:1808 +#: commands/publicationcmds.c:1915 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "リレーション\"%s\"はパブリケーションの一部ではありません" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1922 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "テーブルをパブリケーションから削除する際にはWHERE句を指定できません" -#: commands/publicationcmds.c:1875 +#: commands/publicationcmds.c:1982 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "スキーマ\"%s\"のテーブルはこのパブリケーションに含まれてません" -#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 +#: commands/publicationcmds.c:2025 commands/publicationcmds.c:2032 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "パブリケーション\"%s\"の所有者を変更する権限がありません" -#: commands/publicationcmds.c:1920 +#: commands/publicationcmds.c:2027 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "FOR ALL TABLES設定のパブリケーションの所有者はスーパーユーザーである必要があります" -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:2034 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "FOR TABLES IN SCHEMA設定のパブリケーションの所有者はスーパーユーザーでなければなりません。" -#: commands/publicationcmds.c:1993 +#: commands/publicationcmds.c:2100 #, c-format msgid "publication with OID %u does not exist" msgstr "OID %uのパブリケーションは存在しません" +#: commands/publicationcmds.c:2133 +#, c-format +msgid "%s requires a \"none\" or \"stored\" value" +msgstr "%sの値は\"none\"または\"stored\"である必要があります" + #: commands/schemacmds.c:109 commands/schemacmds.c:289 #, c-format msgid "unacceptable schema name \"%s\"" @@ -9618,127 +9684,127 @@ msgid "cannot set security label on relation \"%s\"" msgstr "リレーション\"%s\"のセキュリティラベルは設定できません" # (%s) -#: commands/sequence.c:741 +#: commands/sequence.c:748 #, c-format -msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" -msgstr "nextval: シーケンス\"%s\"の最大値(%lld)に達しました" +msgid "nextval: reached maximum value of sequence \"%s\" (%)" +msgstr "nextval: シーケンス\"%s\"の最大値(%)に達しました" -#: commands/sequence.c:760 +#: commands/sequence.c:767 #, c-format -msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" -msgstr "nextval: シーケンス\"%s\"の最小値(%lld)に達しました" +msgid "nextval: reached minimum value of sequence \"%s\" (%)" +msgstr "nextval: シーケンス\"%s\"の最小値(%)に達しました" -#: commands/sequence.c:879 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "本セッションでシーケンス\"%s\"のcurrvalはまだ定義されていません" -#: commands/sequence.c:898 commands/sequence.c:904 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "本セッションでlastvalはまだ定義されていません" -#: commands/sequence.c:984 +#: commands/sequence.c:991 #, c-format -msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" -msgstr "setval: 値%lldはシーケンス\"%s\"の範囲(%lld..%lld)外です\"" +msgid "setval: value % is out of bounds for sequence \"%s\" (%..%)" +msgstr "setval: 値%はシーケンス\"%s\"の範囲(%..%)外です\"" -#: commands/sequence.c:1347 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "不正なオプション SEQUENCE NAME" -#: commands/sequence.c:1373 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "識別列の型はsmallint、integerまたはbigintでなくてはなりません" -#: commands/sequence.c:1374 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "シーケンスの型はsmallint、integerまたはbigintでなくてはなりません" -#: commands/sequence.c:1408 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENTはゼロではいけません" -#: commands/sequence.c:1456 +#: commands/sequence.c:1466 #, c-format -msgid "MAXVALUE (%lld) is out of range for sequence data type %s" -msgstr "MAXVALUE (%lld) はシーケンスデータ型%sの範囲外です" +msgid "MAXVALUE (%) is out of range for sequence data type %s" +msgstr "MAXVALUE (%) はシーケンスデータ型%sの範囲外です" -#: commands/sequence.c:1488 +#: commands/sequence.c:1498 #, c-format -msgid "MINVALUE (%lld) is out of range for sequence data type %s" -msgstr "MINVALUE (%lld) はシーケンスデータ型%sの範囲外です" +msgid "MINVALUE (%) is out of range for sequence data type %s" +msgstr "MINVALUE (%) はシーケンスデータ型%sの範囲外です" -#: commands/sequence.c:1496 +#: commands/sequence.c:1506 #, c-format -msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" -msgstr "MINVALUE (%lld)はMAXVALUE (%lld)より小さくなければなりません" +msgid "MINVALUE (%) must be less than MAXVALUE (%)" +msgstr "MINVALUE (%)はMAXVALUE (%)より小さくなければなりません" -#: commands/sequence.c:1517 +#: commands/sequence.c:1527 #, c-format -msgid "START value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "STARTの値(%lld)はMINVALUE(%lld)より小さくすることはできません" +msgid "START value (%) cannot be less than MINVALUE (%)" +msgstr "STARTの値(%)はMINVALUE(%)より小さくすることはできません" -#: commands/sequence.c:1523 +#: commands/sequence.c:1533 #, c-format -msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "STARTの値(%lld)はMAXVALUE(%lld)より大きくすることはできません" +msgid "START value (%) cannot be greater than MAXVALUE (%)" +msgstr "STARTの値(%)はMAXVALUE(%)より大きくすることはできません" -#: commands/sequence.c:1547 +#: commands/sequence.c:1557 #, c-format -msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "RESTART の値(%lld)は MINVALUE(%lld) より小さくすることはできません" +msgid "RESTART value (%) cannot be less than MINVALUE (%)" +msgstr "RESTART の値(%)は MINVALUE(%) より小さくすることはできません" -#: commands/sequence.c:1553 +#: commands/sequence.c:1563 #, c-format -msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "RESTART の値(%lld)は MAXVALUE(%lld) より大きくすることはできません" +msgid "RESTART value (%) cannot be greater than MAXVALUE (%)" +msgstr "RESTART の値(%)は MAXVALUE(%) より大きくすることはできません" -#: commands/sequence.c:1564 +#: commands/sequence.c:1574 #, c-format -msgid "CACHE (%lld) must be greater than zero" -msgstr "CACHE(%lld)はゼロより大きくなければなりません" +msgid "CACHE (%) must be greater than zero" +msgstr "CACHE(%)はゼロより大きくなければなりません" -#: commands/sequence.c:1600 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "不正なOWNED BYオプションです" -#: commands/sequence.c:1601 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "OWNED BY table.column または OWNED BY NONEを指定してください。" -#: commands/sequence.c:1626 +#: commands/sequence.c:1636 #, c-format msgid "sequence cannot be owned by relation \"%s\"" msgstr "シーケンスの所有者をリレーション\"%s\"にはできません" -#: commands/sequence.c:1634 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "シーケンスは関連するテーブルと同じ所有者でなければなりません" -#: commands/sequence.c:1638 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "シーケンスは関連するテーブルと同じスキーマでなければなりません" -#: commands/sequence.c:1660 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "識別シーケンスの所有者は変更できません" -#: commands/sequence.c:1661 commands/tablecmds.c:14387 commands/tablecmds.c:17081 +#: commands/sequence.c:1671 commands/tablecmds.c:16038 commands/tablecmds.c:18876 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "シーケンス\"%s\"はテーブル\"%s\"にリンクされています" -#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1886 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "CREATE STATISTICSで指定可能なリレーションは一つのみです" @@ -9763,1754 +9829,1920 @@ msgstr "統計情報オブジェクト\"%s\"はすでに存在します" msgid "cannot have more than %d columns in statistics" msgstr "統計情報は%dを超える列を使用できません" -#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 +#: commands/statscmds.c:247 commands/statscmds.c:276 commands/statscmds.c:316 #, c-format msgid "statistics creation on system columns is not supported" msgstr "システム列に対する統計情報の作成はサポートされていません" -#: commands/statscmds.c:254 commands/statscmds.c:277 +#: commands/statscmds.c:253 commands/statscmds.c:282 commands/statscmds.c:322 +#, c-format +msgid "statistics creation on virtual generated columns is not supported" +msgstr "仮想生成列に対する統計情報の作成はサポートされていません" + +#: commands/statscmds.c:260 commands/statscmds.c:289 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "列\"%s\"の型%sはデフォルトのbtreeオペレータクラスを持たないため統計情報では利用できません" -#: commands/statscmds.c:321 +#: commands/statscmds.c:339 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "式の型%sがデフォルトbtree演算子クラスを持たないためこの式は多値統計情報では使用できません" -#: commands/statscmds.c:342 +#: commands/statscmds.c:360 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "単一式上の統計情報の構築時には、統計種別は指定できません" -#: commands/statscmds.c:371 +#: commands/statscmds.c:389 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "認識できない統計情報種別\"%s\"" -#: commands/statscmds.c:400 +#: commands/statscmds.c:418 #, c-format msgid "extended statistics require at least 2 columns" msgstr "拡張統計情報には最低でも2つの列が必要です" -#: commands/statscmds.c:418 +#: commands/statscmds.c:436 #, c-format msgid "duplicate column name in statistics definition" msgstr "定形情報定義中の列名が重複しています" -#: commands/statscmds.c:453 +#: commands/statscmds.c:471 #, c-format msgid "duplicate expression in statistics definition" msgstr "統計情報定義内に重複した式" -#: commands/statscmds.c:628 commands/tablecmds.c:8628 +#: commands/statscmds.c:646 commands/tablecmds.c:8913 #, c-format msgid "statistics target %d is too low" msgstr "統計情報目標%dは小さすぎます" -#: commands/statscmds.c:636 commands/tablecmds.c:8636 +#: commands/statscmds.c:654 commands/tablecmds.c:8921 #, c-format msgid "lowering statistics target to %d" msgstr "統計情報目標を%dに減らします" -#: commands/statscmds.c:660 +#: commands/statscmds.c:678 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "統計情報オブジェクト\"%s.%s\"は存在しません、スキップします" -#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 -#, c-format -msgid "unrecognized subscription parameter: \"%s\"" -msgstr "認識できないサブスクリプションパラメータ: \"%s\"" - -#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:397 +#: commands/subscriptioncmds.c:331 replication/pgoutput/pgoutput.c:410 #, c-format msgid "unrecognized origin value: \"%s\"" msgstr "識別できないoriginの値: \"%s\"" -#: commands/subscriptioncmds.c:363 +#: commands/subscriptioncmds.c:354 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "不正なWAL位置(LSN): %s" +#: commands/subscriptioncmds.c:363 +#, c-format +msgid "unrecognized subscription parameter: \"%s\"" +msgstr "認識できないサブスクリプションパラメータ: \"%s\"" + #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 commands/subscriptioncmds.c:439 +#: commands/subscriptioncmds.c:378 commands/subscriptioncmds.c:385 commands/subscriptioncmds.c:392 commands/subscriptioncmds.c:414 commands/subscriptioncmds.c:430 #, 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:429 commands/subscriptioncmds.c:445 +#: commands/subscriptioncmds.c:420 commands/subscriptioncmds.c:436 #, c-format msgid "subscription with %s must also set %s" msgstr "%s としたサブスクリプションでは %s を設定する必要があります" -#: commands/subscriptioncmds.c:506 +#: commands/subscriptioncmds.c:466 #, c-format msgid "could not receive list of publications from the publisher: %s" msgstr "パブリケーション一覧をパブリッシャから受け取れませんでした: %s" -#: commands/subscriptioncmds.c:538 +#: commands/subscriptioncmds.c:498 #, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" msgstr[0] "パブリケーション%sはパブリッシャ上には存在しません" -#: commands/subscriptioncmds.c:626 +#: commands/subscriptioncmds.c:586 #, c-format msgid "permission denied to create subscription" msgstr "サブスクリプションを作成する権限がありません" -#: commands/subscriptioncmds.c:627 +#: commands/subscriptioncmds.c:587 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "\"%s\"ロールの権限を持つロールのみがサブスクリプションを作成できます。" -#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 replication/logical/worker.c:4503 +#: commands/subscriptioncmds.c:718 commands/subscriptioncmds.c:852 commands/subscriptioncmds.c:1594 #, c-format -msgid "could not connect to the publisher: %s" -msgstr "パブリッシャへの接続ができませんでした: %s" +msgid "subscription \"%s\" could not connect to the publisher: %s" +msgstr "サブスクリプション\"%s\"はパブリッシャに接続できませんでした: %s" -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:790 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "パブリッシャ上でレプリケーションスロット\"%s\"を作成しました" -#: commands/subscriptioncmds.c:841 +#: commands/subscriptioncmds.c:802 #, c-format msgid "subscription was created, but is not connected" msgstr "サブスクリプションは作成されましたが接続されていません" -#: commands/subscriptioncmds.c:842 +#: commands/subscriptioncmds.c:803 #, c-format msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." msgstr "レプリケーションを開始するにはレプリケーションスロットの作成、サブスクリプションの有効化そしてサブスクリプションのリフレッシュを手動で行う必要があります。" -#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 +#: commands/subscriptioncmds.c:1070 +#, c-format +msgid "cannot set option \"%s\" for enabled subscription" +msgstr "有効にされているサブスクリプションにはオプション”%s”を指定できません" + +#: commands/subscriptioncmds.c:1084 +#, c-format +msgid "cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "スロット名を指定されていないサブスクリプションのオプション\"%s\"を設定することはできません" + +#: commands/subscriptioncmds.c:1127 commands/subscriptioncmds.c:1663 commands/subscriptioncmds.c:2044 utils/cache/lsyscache.c:3824 #, c-format msgid "subscription \"%s\" does not exist" msgstr "サブスクリプション\"%s\"は存在しません" -#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 +#: commands/subscriptioncmds.c:1185 #, c-format msgid "cannot set %s for enabled subscription" msgstr "有効にされているサブスクリプションには %s を指定できません" -#: commands/subscriptioncmds.c:1233 +#: commands/subscriptioncmds.c:1270 +#, c-format +msgid "slot_name and two_phase cannot be altered at the same time" +msgstr "slot_nameとtwo_phaseは同時に変更できません" + +#: commands/subscriptioncmds.c:1286 +#, c-format +msgid "cannot alter two_phase when logical replication worker is still running" +msgstr "論理レプリケーションワーカーがまだ実行中のためtwo_phaseは変更できません" + +#: commands/subscriptioncmds.c:1287 +#, c-format +msgid "Try again after some time." +msgstr "少し待ってから再試行してください。" + +#: commands/subscriptioncmds.c:1300 +#, c-format +msgid "cannot disable two_phase when prepared transactions are present" +msgstr "準備済みトランザクションが存在するためtwo_phaseを無効にできません" + +#: commands/subscriptioncmds.c:1301 #, c-format -msgid "cannot set %s for a subscription that does not have a slot name" -msgstr "スロット名を指定されていないサブスクリプションの%sを設定することはできません" +msgid "Resolve these transactions and try again." +msgstr "トランザクションの解決後に再試行してください。" -#: commands/subscriptioncmds.c:1279 +#: commands/subscriptioncmds.c:1348 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "スロット名を指定されていないサブスクリプションを有効にはできません" -#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 +#: commands/subscriptioncmds.c:1392 commands/subscriptioncmds.c:1443 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "refresh指定された ALTER SUBSCRIPTION は無効化されているサブスクリプションには実行できません" -#: commands/subscriptioncmds.c:1324 +#: commands/subscriptioncmds.c:1393 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false) を使ってください。" -#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 +#: commands/subscriptioncmds.c:1402 commands/subscriptioncmds.c:1457 #, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" msgstr "two_phaseが有効である場合、refreshおよびcopy_data指定された ALTER SUBSCRIPTIONは実行できません" -#: commands/subscriptioncmds.c:1334 +#: commands/subscriptioncmds.c:1403 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "refresh = false または copy_data = false を指定してALTER SUBSCRIPTION ... SET PUBLICATIONを実行するか、DROP/CREATE SUBSCRIPTIONを実行してください。" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1390 +#: commands/subscriptioncmds.c:1459 #, c-format msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "refresh = false または copy_data = false を指定して%sを実行するか、DROP/CREATE SUBSCRIPTIONを実行してください。" -#: commands/subscriptioncmds.c:1412 +#: commands/subscriptioncmds.c:1481 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESHは無効化されているサブスクリプションには実行できません" -#: commands/subscriptioncmds.c:1437 +#: commands/subscriptioncmds.c:1506 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" msgstr "two_phaseが有効である場合、copy_data指定のALTER SUBSCRIPTION ... REFRESHは実行できません" -#: commands/subscriptioncmds.c:1438 +#: commands/subscriptioncmds.c:1507 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "ALTER SUBSCRIPTION ... REFRESH を copy_data = false を指定して実行するか、DROP/CREATE SUBSCRIPTIONを実行してください。" -#: commands/subscriptioncmds.c:1473 +#: commands/subscriptioncmds.c:1542 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "WAL読み飛ばし位置(LSN %X/%X)は基点LSN %X/%Xより大きくなければなりません" -#: commands/subscriptioncmds.c:1594 +#: commands/subscriptioncmds.c:1667 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "サブスクリプション\"%s\"は存在しません、スキップします" -#: commands/subscriptioncmds.c:1863 +#: commands/subscriptioncmds.c:1934 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "パブリッシャ上でレプリケーションスロット\"%s\"を削除しました" -#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 +#: commands/subscriptioncmds.c:1943 commands/subscriptioncmds.c:1951 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "パブリッシャ上でのレプリケーションスロット\"%s\"の削除に失敗しました: %s" -#: commands/subscriptioncmds.c:2005 +#: commands/subscriptioncmds.c:2076 #, c-format msgid "subscription with OID %u does not exist" msgstr "OID %uのサブスクリプションは存在しません" -#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 +#: commands/subscriptioncmds.c:2150 commands/subscriptioncmds.c:2274 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "パブリッシャから複製テーブルの一覧を受け取れませんでした: %s" -#: commands/subscriptioncmds.c:2112 +#: commands/subscriptioncmds.c:2186 #, c-format msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" msgstr "サブスクリプション\"%s\"がcopy_dataをorigin = NONEで要求しましたが、異なる基点を持つデータをコピーする可能性があります" -#: commands/subscriptioncmds.c:2114 +#: commands/subscriptioncmds.c:2188 #, c-format msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." msgstr[0] "作成中のサブスクリプションは他のサブスクリプションによって書き込まれるテーブルを含むパブリケーション(%s)をサブスクライブします" -#: commands/subscriptioncmds.c:2117 +#: commands/subscriptioncmds.c:2191 #, c-format msgid "Verify that initial data copied from the publisher tables did not come from other origins." msgstr "パブリッシャテーブルからコピーされた初期データが異なる起源からのものでないことを確認してください。" -#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 replication/pgoutput/pgoutput.c:1117 +#: commands/subscriptioncmds.c:2296 replication/logical/tablesync.c:904 replication/pgoutput/pgoutput.c:1162 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "テーブル\"%s.%s\"に対して、異なるパブリケーションで異なる列リストを使用することはできません" -#: commands/subscriptioncmds.c:2273 +#: commands/subscriptioncmds.c:2346 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" msgstr "レプリケーションスロット\"%s\"を削除する際にパブリッシャへの接続に失敗しました: %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2276 +#: commands/subscriptioncmds.c:2349 #, c-format msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." msgstr "%s でサブスクリプションを無効化してから、%s でスロットとの関連付けを解除してください。" -#: commands/subscriptioncmds.c:2307 +#: commands/subscriptioncmds.c:2380 #, c-format msgid "publication name \"%s\" used more than once" msgstr "パブリケーション名\"%s\"が2回以上使われています" -#: commands/subscriptioncmds.c:2351 +#: commands/subscriptioncmds.c:2424 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "パブリケーション\"%s\"はサブスクリプション\"%s\"にすでに存在します" -#: commands/subscriptioncmds.c:2365 +#: commands/subscriptioncmds.c:2438 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "パブリケーション\"%s\"はサブスクリプション\"%s\"にはありません" -#: commands/subscriptioncmds.c:2376 +#: commands/subscriptioncmds.c:2449 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "サブスクリプションからすべてのパブリケーションを削除することはできません" -#: commands/subscriptioncmds.c:2433 +#: commands/subscriptioncmds.c:2506 #, c-format msgid "%s requires a Boolean value or \"parallel\"" msgstr "パラメータ\"%s\"はBoolean値または\"parallel\"のみを取ります" -#: commands/tablecmds.c:255 commands/tablecmds.c:297 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 #, c-format msgid "table \"%s\" does not exist" msgstr "テーブル\"%s\"は存在しません" -#: commands/tablecmds.c:256 commands/tablecmds.c:298 +#: commands/tablecmds.c:259 commands/tablecmds.c:301 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "テーブル\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:258 commands/tablecmds.c:300 +#: commands/tablecmds.c:261 commands/tablecmds.c:303 msgid "Use DROP TABLE to remove a table." msgstr "テーブルを削除するにはDROP TABLEを使用してください。" -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:264 #, c-format msgid "sequence \"%s\" does not exist" msgstr "シーケンス\"%s\"は存在しません" -#: commands/tablecmds.c:262 +#: commands/tablecmds.c:265 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "シーケンス\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:267 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "シーケンスを削除するにはDROP SEQUENCEを使用してください。" -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:270 #, c-format msgid "view \"%s\" does not exist" msgstr "ビュー\"%s\"は存在しません" -#: commands/tablecmds.c:268 +#: commands/tablecmds.c:271 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "ビュー\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:270 +#: commands/tablecmds.c:273 msgid "Use DROP VIEW to remove a view." msgstr "ビューを削除するにはDROP VIEWを使用してください。" -#: commands/tablecmds.c:273 +#: commands/tablecmds.c:276 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "実体化ビュー\"%s\"は存在しません" -#: commands/tablecmds.c:274 +#: commands/tablecmds.c:277 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "実体化ビュー\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:276 +#: commands/tablecmds.c:279 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "実体化ビューを削除するにはDROP MATERIALIZED VIEWを使用してください。" -#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19627 parser/parse_utilcmd.c:2226 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 commands/tablecmds.c:21531 parser/parse_utilcmd.c:2407 #, c-format msgid "index \"%s\" does not exist" msgstr "インデックス\"%s\"は存在しません" -#: commands/tablecmds.c:280 commands/tablecmds.c:304 +#: commands/tablecmds.c:283 commands/tablecmds.c:307 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "インデックス\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:282 commands/tablecmds.c:306 +#: commands/tablecmds.c:285 commands/tablecmds.c:309 msgid "Use DROP INDEX to remove an index." msgstr "インデックスを削除するにはDROP INDEXを使用してください" -#: commands/tablecmds.c:287 +#: commands/tablecmds.c:290 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\"は型ではありません" -#: commands/tablecmds.c:288 +#: commands/tablecmds.c:291 msgid "Use DROP TYPE to remove a type." msgstr "型を削除するにはDROP TYPEを使用してください" -#: commands/tablecmds.c:291 commands/tablecmds.c:14226 commands/tablecmds.c:16786 +#: commands/tablecmds.c:294 commands/tablecmds.c:15877 commands/tablecmds.c:18578 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "外部テーブル\"%s\"は存在しません" -#: commands/tablecmds.c:292 +#: commands/tablecmds.c:295 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "外部テーブル\"%s\"は存在しません、スキップします" -#: commands/tablecmds.c:294 +#: commands/tablecmds.c:297 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "外部テーブルを削除するには DROP FOREIGN TABLE を使用してください。" -#: commands/tablecmds.c:722 +#: commands/tablecmds.c:801 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMITは一時テーブルでのみ使用できます" -#: commands/tablecmds.c:753 +#: commands/tablecmds.c:818 +#, c-format +msgid "partitioned tables cannot be unlogged" +msgstr "パーティションテーブルはログ非取得にはできません" + +#: commands/tablecmds.c:838 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "セキュリティー制限操作中は、一時テーブルを作成できません" -#: commands/tablecmds.c:789 commands/tablecmds.c:15645 +#: commands/tablecmds.c:874 commands/tablecmds.c:17302 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "リレーション\"%s\"が複数回継承されました" -#: commands/tablecmds.c:1055 +#: commands/tablecmds.c:1132 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\"はパーティションされていません" -#: commands/tablecmds.c:1149 +#: commands/tablecmds.c:1226 #, c-format msgid "cannot partition using more than %d columns" msgstr "%d以上の列を使ったパーティションはできません" -#: commands/tablecmds.c:1205 +#: commands/tablecmds.c:1282 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "パーティションテーブル\"%s\"では外部子テーブルを作成できません" -#: commands/tablecmds.c:1207 +#: commands/tablecmds.c:1284 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "テーブル\"%s\"はユニークインデックスを持っています" -#: commands/tablecmds.c:1326 commands/tablecmds.c:13242 +#: commands/tablecmds.c:1414 commands/tablecmds.c:14877 #, c-format msgid "too many array dimensions" msgstr "配列の次元多すぎます" -#: commands/tablecmds.c:1331 parser/parse_clause.c:774 parser/parse_relation.c:1912 +#: commands/tablecmds.c:1419 parser/parse_clause.c:772 parser/parse_relation.c:1929 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "列\"%s\"はSETOFとして宣言できません" -#: commands/tablecmds.c:1477 +#: commands/tablecmds.c:1548 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLYは複数オブジェクトの削除をサポートしていません" -#: commands/tablecmds.c:1481 +#: commands/tablecmds.c:1552 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLYはCASCADEをサポートしません" -#: commands/tablecmds.c:1585 +#: commands/tablecmds.c:1656 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "パーティション親インデックス\"%s\"は並行的に削除することはできません" -#: commands/tablecmds.c:1873 +#: commands/tablecmds.c:1944 #, c-format msgid "cannot truncate only a partitioned table" msgstr "パーティションの親テーブルのみの切り詰めはできません" -#: commands/tablecmds.c:1874 +#: commands/tablecmds.c:1945 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "ONLY キーワードを指定しないでください、もしくは子テーブルに対して直接 TRUNCATE ONLY を実行してください。" -#: commands/tablecmds.c:1947 +#: commands/tablecmds.c:2018 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "テーブル\"%s\"へのカスケードを削除します" -#: commands/tablecmds.c:2308 +#: commands/tablecmds.c:2379 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "外部テーブル\"%s\"の切り詰めはできません" -#: commands/tablecmds.c:2365 +#: commands/tablecmds.c:2436 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "他のセッションの一時テーブルを削除できません" -#: commands/tablecmds.c:2594 commands/tablecmds.c:15542 +#: commands/tablecmds.c:2674 commands/tablecmds.c:17199 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"からの継承はできません" -#: commands/tablecmds.c:2599 +#: commands/tablecmds.c:2679 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "パーティション子テーブル\"%s\"からの継承はできません" -#: commands/tablecmds.c:2607 parser/parse_utilcmd.c:2456 parser/parse_utilcmd.c:2598 +#: commands/tablecmds.c:2687 parser/parse_utilcmd.c:2678 parser/parse_utilcmd.c:2866 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "継承しようとしたリレーション\"%s\"はテーブルまたは外部テーブルではありません" -#: commands/tablecmds.c:2619 commands/tablecmds.c:20391 +#: commands/tablecmds.c:2699 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "一時リレーションを永続リレーション\"%s\"のパーティション子テーブルとして作ることはできません" -#: commands/tablecmds.c:2628 commands/tablecmds.c:15521 +#: commands/tablecmds.c:2708 commands/tablecmds.c:17178 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "一時リレーション\"%s\"から継承することはできません" -#: commands/tablecmds.c:2638 commands/tablecmds.c:15529 +#: commands/tablecmds.c:2718 commands/tablecmds.c:17186 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "他のセッションの一時リレーションから継承することはできません" -#: commands/tablecmds.c:2779 commands/tablecmds.c:2833 commands/tablecmds.c:12925 parser/parse_utilcmd.c:1240 parser/parse_utilcmd.c:1283 parser/parse_utilcmd.c:1710 parser/parse_utilcmd.c:1818 +#: commands/tablecmds.c:2873 commands/tablecmds.c:2927 commands/tablecmds.c:14560 parser/parse_utilcmd.c:1418 parser/parse_utilcmd.c:1463 parser/parse_utilcmd.c:1895 parser/parse_utilcmd.c:2003 #, c-format msgid "cannot convert whole-row table reference" msgstr "行全体テーブル参照を変換できません" -#: commands/tablecmds.c:2780 parser/parse_utilcmd.c:1241 +#: commands/tablecmds.c:2874 parser/parse_utilcmd.c:1419 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "制約\"%s\"はテーブル\"%s\"への行全体参照を含みます。" -#: commands/tablecmds.c:2834 parser/parse_utilcmd.c:1284 +#: commands/tablecmds.c:2928 parser/parse_utilcmd.c:1464 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "制約\"%s\"はテーブル\"%s\"への行全体参照を含みます。" -#: commands/tablecmds.c:2944 commands/tablecmds.c:3215 +#: commands/tablecmds.c:3050 commands/tablecmds.c:3344 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "列\"%s\"は生成列を継承しますが、default 指定がされています" -#: commands/tablecmds.c:2949 commands/tablecmds.c:3220 +#: commands/tablecmds.c:3055 commands/tablecmds.c:3349 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "列\"%s\"は生成列を継承しますが、識別列と指定されています" -#: commands/tablecmds.c:2957 commands/tablecmds.c:3228 +#: commands/tablecmds.c:3063 commands/tablecmds.c:3357 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "子テーブルの列\"%s\"は生成式を指定しています" -#: commands/tablecmds.c:2959 commands/tablecmds.c:3230 +#: commands/tablecmds.c:3065 commands/tablecmds.c:3359 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "子テーブルの列は、親となる列が生成列でなければ生成列にはできません。" -#: commands/tablecmds.c:3005 +#: commands/tablecmds.c:3071 commands/tablecmds.c:3365 commands/tablecmds.c:17464 +#, c-format +msgid "column \"%s\" inherits from generated column of different kind" +msgstr "列\"%s\"は異なる種類の生成列を継承しています" + +#: commands/tablecmds.c:3073 commands/tablecmds.c:3367 commands/tablecmds.c:17465 +#, c-format +msgid "Parent column is %s, child column is %s." +msgstr "親の列は %s、子の列は %s です。" + +#: commands/tablecmds.c:3120 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "列\"%s\"は競合する生成式を継承します" -#: commands/tablecmds.c:3007 +#: commands/tablecmds.c:3122 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "この競合を解消するには明示的に生成式を指定してください。" -#: commands/tablecmds.c:3011 +#: commands/tablecmds.c:3126 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "列\"%s\"は競合するデフォルト値を継承します" -#: commands/tablecmds.c:3013 +#: commands/tablecmds.c:3128 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "競合を解消するには明示的にデフォルトを指定してください" -#: commands/tablecmds.c:3068 +#: commands/tablecmds.c:3195 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "異なる式を持つ検査制約名\"%s\"が複数あります。" -#: commands/tablecmds.c:3119 +#: commands/tablecmds.c:3248 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "継承される定義で列\"%s\"をマージしています" -#: commands/tablecmds.c:3123 +#: commands/tablecmds.c:3252 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "継承される定義で列\"%s\"を移動してマージします" -#: commands/tablecmds.c:3124 +#: commands/tablecmds.c:3253 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "ユーザーが指定した列が継承した列の位置に移動されました。" -#: commands/tablecmds.c:3136 +#: commands/tablecmds.c:3265 #, c-format msgid "column \"%s\" has a type conflict" msgstr "列\"%s\"の型が競合しています" -#: commands/tablecmds.c:3138 commands/tablecmds.c:3172 commands/tablecmds.c:3188 commands/tablecmds.c:3295 commands/tablecmds.c:3328 commands/tablecmds.c:3344 parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 parser/parse_param.c:223 +#: commands/tablecmds.c:3267 commands/tablecmds.c:3301 commands/tablecmds.c:3317 commands/tablecmds.c:3433 commands/tablecmds.c:3461 commands/tablecmds.c:3477 parser/parse_coerce.c:2190 parser/parse_coerce.c:2210 parser/parse_coerce.c:2230 parser/parse_coerce.c:2251 parser/parse_coerce.c:2306 parser/parse_coerce.c:2340 parser/parse_coerce.c:2416 parser/parse_coerce.c:2447 parser/parse_coerce.c:2486 parser/parse_coerce.c:2553 parser/parse_param.c:224 #, c-format msgid "%s versus %s" msgstr "%s対%s" -#: commands/tablecmds.c:3150 +#: commands/tablecmds.c:3279 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "列\"%s\"の照合順序が競合しています" -#: commands/tablecmds.c:3152 commands/tablecmds.c:3314 commands/tablecmds.c:7088 +#: commands/tablecmds.c:3281 commands/tablecmds.c:3447 commands/tablecmds.c:7276 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "\"%s\"対\"%s\"" -#: commands/tablecmds.c:3170 +#: commands/tablecmds.c:3299 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "列\"%s\"でストレージパラメータが競合しています" -#: commands/tablecmds.c:3186 commands/tablecmds.c:3342 +#: commands/tablecmds.c:3315 commands/tablecmds.c:3475 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "列\"%s\"で圧縮方式が競合しています" -#: commands/tablecmds.c:3281 +#: commands/tablecmds.c:3419 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "複数の継承される列\"%s\"の定義をマージしています" -#: commands/tablecmds.c:3293 +#: commands/tablecmds.c:3431 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "継承される列\"%s\"の型が競合しています" -#: commands/tablecmds.c:3312 +#: commands/tablecmds.c:3445 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "継承される列 \"%s\"の照合順序が競合しています" -#: commands/tablecmds.c:3326 +#: commands/tablecmds.c:3459 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "継承される列\"%s\"でストレージパラメータが競合しています" -#: commands/tablecmds.c:3354 +#: commands/tablecmds.c:3487 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "継承された列 \"%s\"の生成が競合しています" -#: commands/tablecmds.c:3573 +#: commands/tablecmds.c:3718 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "他のセッションの一時テーブルを移動できません" -#: commands/tablecmds.c:3643 +#: commands/tablecmds.c:3791 #, c-format msgid "cannot rename column of typed table" msgstr "型付けされたテーブルの列をリネームできません" -#: commands/tablecmds.c:3662 +#: commands/tablecmds.c:3810 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "リレーション\"%s\"の列名は変更できません" -#: commands/tablecmds.c:3757 +#: commands/tablecmds.c:3905 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "継承される列\"%s\"の名前を子テーブルでも変更する必要があります" -#: commands/tablecmds.c:3789 +#: commands/tablecmds.c:3937 #, c-format msgid "cannot rename system column \"%s\"" msgstr "システム列%s\"の名前を変更できません" -#: commands/tablecmds.c:3804 +#: commands/tablecmds.c:3952 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "継承される列\"%s\"の名前を変更できません" -#: commands/tablecmds.c:3956 +#: commands/tablecmds.c:4107 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "継承される制約\"%s\"の名前を子テーブルでも変更する必要があります" -#: commands/tablecmds.c:3963 +#: commands/tablecmds.c:4114 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "継承される制約\"%s\"の名前を変更できません" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4260 +#: commands/tablecmds.c:4414 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "このセッションで実行中の問い合わせで使用されているため\"%2$s\"を%1$sできません" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4269 +#: commands/tablecmds.c:4423 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "保留中のトリガイベントがあるため\"%2$s\"を%1$sできません" -#: commands/tablecmds.c:4295 +#: commands/tablecmds.c:4449 #, c-format msgid "cannot alter temporary tables of other sessions" msgstr "他のセッションの一時テーブルは変更できません" -#: commands/tablecmds.c:4776 +#: commands/tablecmds.c:4913 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "パーティション子テーブル\"%s\"は不完全な取り外し状態であるため変更できません" -#: commands/tablecmds.c:4980 commands/tablecmds.c:4995 +#: commands/tablecmds.c:5142 #, c-format msgid "cannot change persistence setting twice" msgstr "永続性設定の変更は2度はできません" -#: commands/tablecmds.c:5016 +#: commands/tablecmds.c:5159 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "SET ACCESS METHODサブコマンドを複数指定できません" -#: commands/tablecmds.c:5772 +#: commands/tablecmds.c:5893 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "システムリレーション\"%sを書き換えられません" -#: commands/tablecmds.c:5778 +#: commands/tablecmds.c:5899 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "カタログテーブルとして使用されているテーブル\"%s\"は書き換えられません" -#: commands/tablecmds.c:5790 +#: commands/tablecmds.c:5911 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "他のセッションの一時テーブルを書き換えられません" -#: commands/tablecmds.c:6285 +#: commands/tablecmds.c:6447 commands/tablecmds.c:6467 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "リレーション\"%2$s\"の列\"%1$s\"にNULL値があります" -#: commands/tablecmds.c:6302 +#: commands/tablecmds.c:6484 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "一部の行がリレーション\"%2$s\"の検査制約\"%1$s\"に違反してます" -#: commands/tablecmds.c:6321 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6504 partitioning/partbounds.c:3387 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "デフォルトパーティション\"%s\"の一部の行が更新後のパーティション制約に違反しています" -#: commands/tablecmds.c:6327 +#: commands/tablecmds.c:6510 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "一部の行がリレーション\"%s\"のパーティション制約に違反しています" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6596 +#: commands/tablecmds.c:6775 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "ALTERのアクション%sはリレーション\"%s\"では実行できません" -#: commands/tablecmds.c:6851 commands/tablecmds.c:6858 +#: commands/tablecmds.c:7030 commands/tablecmds.c:7037 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "型\"%s\"を変更できません。列\"%s\".\"%s\"でその型を使用しているためです" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:7044 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "列%2$s\".\"%3$s\"がその行型を使用しているため、外部テーブル\"%1$s\"を変更できません。" -#: commands/tablecmds.c:6872 +#: commands/tablecmds.c:7051 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "テーブル\"%s\"を変更できません。その行型を列\"%s\".\"%s\"で使用しているためです" -#: commands/tablecmds.c:6928 +#: commands/tablecmds.c:7107 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "型付けされたテーブルの型であるため、外部テーブル\"%s\"を変更できません。" -#: commands/tablecmds.c:6930 +#: commands/tablecmds.c:7109 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "型付けされたテーブルを変更する場合も ALTER .. CASCADE を使用してください" -#: commands/tablecmds.c:6976 +#: commands/tablecmds.c:7155 +#, c-format +msgid "type %s is the row type of another table" +msgstr "型\"%s\"は他のテーブルの行型です" + +#: commands/tablecmds.c:7157 +#, c-format +msgid "A typed table must use a stand-alone composite type created with CREATE TYPE." +msgstr "型付きテーブルは、CREATE TYPEで作成された独立した複合型を使用する必要があります。" + +#: commands/tablecmds.c:7162 #, c-format msgid "type %s is not a composite type" msgstr "型 %s は複合型ではありません" -#: commands/tablecmds.c:7003 +#: commands/tablecmds.c:7189 #, c-format msgid "cannot add column to typed table" msgstr "型付けされたテーブルに列を追加できません" -#: commands/tablecmds.c:7051 +#: commands/tablecmds.c:7239 #, c-format msgid "cannot add column to a partition" msgstr "パーティションに列は追加できません" -#: commands/tablecmds.c:7080 commands/tablecmds.c:15760 +#: commands/tablecmds.c:7268 commands/tablecmds.c:17420 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "子テーブル\"%s\"に異なる型の列\"%s\"があります" -#: commands/tablecmds.c:7086 commands/tablecmds.c:15766 +#: commands/tablecmds.c:7274 commands/tablecmds.c:17426 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "子テーブル\"%s\"に異なる照合順序の列\"%s\"があります" -#: commands/tablecmds.c:7104 +#: commands/tablecmds.c:7292 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "子\"%2$s\"の列\"%1$s\"の定義をマージしています" -#: commands/tablecmds.c:7157 +#: commands/tablecmds.c:7345 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "子テーブルを持つテーブルに識別列を再帰的に追加することはできません" -#: commands/tablecmds.c:7370 +#: commands/tablecmds.c:7592 #, c-format msgid "column must be added to child tables too" msgstr "列は子テーブルでも追加する必要があります" -#: commands/tablecmds.c:7448 +#: commands/tablecmds.c:7670 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "リレーション\"%2$s\"の列\"%1$s\"はすでに存在します、スキップします" -#: commands/tablecmds.c:7455 +#: commands/tablecmds.c:7677 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "リレーション\"%2$s\"の列\"%1$s\"はすでに存在します" -#: commands/tablecmds.c:7521 commands/tablecmds.c:12564 -#, c-format -msgid "cannot remove constraint from only the partitioned table when partitions exist" -msgstr "パーティションが存在する場合にはパーティション親テーブルのみから制約を削除することはできません" - -#: commands/tablecmds.c:7522 commands/tablecmds.c:7836 commands/tablecmds.c:8014 commands/tablecmds.c:8121 commands/tablecmds.c:8238 commands/tablecmds.c:9057 commands/tablecmds.c:12565 -#, c-format -msgid "Do not specify the ONLY keyword." -msgstr "ONLYキーワードを指定しないでください。" - -#: commands/tablecmds.c:7558 commands/tablecmds.c:7762 commands/tablecmds.c:7904 commands/tablecmds.c:8036 commands/tablecmds.c:8165 commands/tablecmds.c:8259 commands/tablecmds.c:8360 commands/tablecmds.c:8517 commands/tablecmds.c:8670 commands/tablecmds.c:8751 commands/tablecmds.c:8885 commands/tablecmds.c:12718 commands/tablecmds.c:14249 commands/tablecmds.c:16875 +#: commands/tablecmds.c:7768 commands/tablecmds.c:7935 commands/tablecmds.c:8136 commands/tablecmds.c:8267 commands/tablecmds.c:8396 commands/tablecmds.c:8490 commands/tablecmds.c:8593 commands/tablecmds.c:8789 commands/tablecmds.c:8955 commands/tablecmds.c:9046 commands/tablecmds.c:9180 commands/tablecmds.c:14335 commands/tablecmds.c:15900 commands/tablecmds.c:18667 #, c-format msgid "cannot alter system column \"%s\"" msgstr "システム列\"%s\"を変更できません" -#: commands/tablecmds.c:7564 commands/tablecmds.c:7910 +#: commands/tablecmds.c:7774 commands/tablecmds.c:8142 commands/tablecmds.c:14096 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "リレーション\"%2$s\"の列\"%1$s\"は識別列です" -#: commands/tablecmds.c:7605 -#, c-format -msgid "column \"%s\" is in a primary key" -msgstr "列\"%s\"はプライマリキーで使用しています" - -#: commands/tablecmds.c:7610 -#, c-format -msgid "column \"%s\" is in index used as replica identity" -msgstr "列\"%s\"は複製識別として使用中のインデックスに含まれています" - -#: commands/tablecmds.c:7633 +#: commands/tablecmds.c:7791 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "列\"%s\"は親テーブルでNOT NULL指定されています" -#: commands/tablecmds.c:7833 commands/tablecmds.c:9541 +#: commands/tablecmds.c:8013 commands/tablecmds.c:9957 #, c-format msgid "constraint must be added to child tables too" msgstr "制約は子テーブルにも追加する必要があります" -#: commands/tablecmds.c:7834 +#: commands/tablecmds.c:8014 commands/tablecmds.c:8245 commands/tablecmds.c:8352 commands/tablecmds.c:8469 commands/tablecmds.c:9353 commands/tablecmds.c:12159 #, c-format -msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." -msgstr "リレーション\"%2$s\"の列\"%1$s\"はすでにNOT NULLではありません。" +msgid "Do not specify the ONLY keyword." +msgstr "ONLYキーワードを指定しないでください。" -#: commands/tablecmds.c:7919 +#: commands/tablecmds.c:8151 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "リレーション\"%2$s\"の列\"%1$s\"は生成カラムです" -#: commands/tablecmds.c:8013 +#: commands/tablecmds.c:8244 #, c-format msgid "cannot add identity to a column of only the partitioned table" msgstr "パーティション親テーブルのみで列を識別列とすることはできません" -#: commands/tablecmds.c:8019 +#: commands/tablecmds.c:8250 #, c-format msgid "cannot add identity to a column of a partition" msgstr "パーティション子テーブルの列を識別列とすることはできません" -#: commands/tablecmds.c:8047 +#: commands/tablecmds.c:8278 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "識別列を追加するにはリレーション\"%s\"の列\"%s\"はNOT NULLと宣言されている必要があります" -#: commands/tablecmds.c:8053 +#: commands/tablecmds.c:8284 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "リレーション\"%2$s\"の列\"%1$s\"はすでに識別列です" -#: commands/tablecmds.c:8059 +#: commands/tablecmds.c:8290 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "リレーション\"%2$s\"の列\"%1$s\"はすでにデフォルト値が指定されています" -#: commands/tablecmds.c:8120 +#: commands/tablecmds.c:8351 #, c-format msgid "cannot change identity column of only the partitioned table" msgstr "パーティション親テーブルのみで列の識別列属性を変更することはできません" -#: commands/tablecmds.c:8126 +#: commands/tablecmds.c:8357 #, c-format msgid "cannot change identity column of a partition" msgstr "パーティション子テーブルの列の識別列属性を変更することはできません" -#: commands/tablecmds.c:8171 commands/tablecmds.c:8267 +#: commands/tablecmds.c:8402 commands/tablecmds.c:8498 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "リレーション\"%2$s\"の列\"%1$s\"は識別列ではありません" -#: commands/tablecmds.c:8237 +#: commands/tablecmds.c:8468 #, c-format msgid "cannot drop identity from a column of only the partitioned table" msgstr "パーティション親テーブルのみで列の識別列属性を削除することはできません" -#: commands/tablecmds.c:8243 +#: commands/tablecmds.c:8474 #, c-format msgid "cannot drop identity from a column of a partition" msgstr "パーティション子テーブルの列の識別列属性を削除することはできません" -#: commands/tablecmds.c:8272 +#: commands/tablecmds.c:8503 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "リレーション\"%2$s\"の列\"%1$s\"は識別列ではありません、スキップします" -#: commands/tablecmds.c:8366 +#: commands/tablecmds.c:8600 commands/tablecmds.c:8810 #, c-format msgid "column \"%s\" of relation \"%s\" is not a generated column" msgstr "リレーション\"%2$s\"の列\"%1$s\"は生成列ではありません" -#: commands/tablecmds.c:8464 +#: commands/tablecmds.c:8611 +#, c-format +msgid "ALTER TABLE / SET EXPRESSION is not supported for virtual generated columns on tables with check constraints" +msgstr "ALTER TABLE / SET EXPRESSION は、チェック制約のあるテーブルの仮想生成列ではサポートされていません" + +#: commands/tablecmds.c:8612 commands/tablecmds.c:8630 commands/tablecmds.c:8802 +#, c-format +msgid "Column \"%s\" of relation \"%s\" is a virtual generated column." +msgstr "リレーション\"%2$s\"の列\"%1$s\"は仮想生成列です。" + +#: commands/tablecmds.c:8629 +#, c-format +msgid "ALTER TABLE / SET EXPRESSION is not supported for virtual generated columns on tables that are part of a publication" +msgstr "ALTER TABLE / SET EXPRESSION は、パブリケーションに含まれるテーブルの仮想生成列ではサポートされていません" + +#: commands/tablecmds.c:8736 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSIONは子テーブルに対しても適用されなくてはなりません" -#: commands/tablecmds.c:8486 +#: commands/tablecmds.c:8758 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "継承列から生成式を削除することはできません" -#: commands/tablecmds.c:8525 +#: commands/tablecmds.c:8801 #, c-format -msgid "column \"%s\" of relation \"%s\" is not a stored generated column" -msgstr "リレーション\"%2$s\"の列\"%1$s\"は格納生成列ではありません" +msgid "ALTER TABLE / DROP EXPRESSION is not supported for virtual generated columns" +msgstr "ALTER TABLE / DROP EXPRESSIONは仮想生成列ではサポートされていません" -#: commands/tablecmds.c:8530 +#: commands/tablecmds.c:8815 #, c-format -msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" -msgstr "リレーション\"%2$s\"の列\"%1$s\"は格納生成列ではありません、スキップします" +msgid "column \"%s\" of relation \"%s\" is not a generated column, skipping" +msgstr "リレーション\"%2$s\"の列\"%1$s\"は生成列ではありません、スキップします" -#: commands/tablecmds.c:8608 +#: commands/tablecmds.c:8893 #, c-format msgid "cannot refer to non-index column by number" msgstr "非インデックス列を番号で参照することはできません" -#: commands/tablecmds.c:8660 +#: commands/tablecmds.c:8945 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "リレーション \"%2$s\"の列 %1$d は存在しません" -#: commands/tablecmds.c:8679 +#: commands/tablecmds.c:8965 +#, c-format +msgid "cannot alter statistics on virtual generated column \"%s\"" +msgstr "仮想生成列\"%s\"の統計情報は変更できません" + +#: commands/tablecmds.c:8974 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "インデックス\"%2$s\"の包含列\"%1$s\"への統計情報の変更はできません" -#: commands/tablecmds.c:8684 +#: commands/tablecmds.c:8979 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "インデックス \"%2$s\"の非式列\"%1$s\"の統計情報の変更はできません" -#: commands/tablecmds.c:8686 +#: commands/tablecmds.c:8981 #, c-format msgid "Alter statistics on table column instead." msgstr "代わりにテーブルカラムの統計情報を変更してください。" -#: commands/tablecmds.c:8932 +#: commands/tablecmds.c:9227 #, c-format msgid "cannot drop column from typed table" msgstr "型付けされたテーブルから列を削除できません" -#: commands/tablecmds.c:8995 +#: commands/tablecmds.c:9291 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "リレーション\"%2$s\"の列\"%1$s\"は存在しません、スキップします" -#: commands/tablecmds.c:9008 +#: commands/tablecmds.c:9304 #, c-format msgid "cannot drop system column \"%s\"" msgstr "システム列\"%s\"を削除できません" -#: commands/tablecmds.c:9018 +#: commands/tablecmds.c:9314 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "継承される列\"%s\"を削除できません" -#: commands/tablecmds.c:9031 +#: commands/tablecmds.c:9327 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "列\"%s\"はリレーション\"%s\"のパーティションキーの一部であるため、削除できません" -#: commands/tablecmds.c:9056 +#: commands/tablecmds.c:9352 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "子テーブルが存在する場合にはパーティション親テーブルのみから列を削除することはできません" -#: commands/tablecmds.c:9261 +#: commands/tablecmds.c:9479 +#, c-format +msgid "column \"%s\" of table \"%s\" is not marked NOT NULL" +msgstr "テーブル\"%2$s\"の列\"%1$s\"は非NULLに設定されていません" + +#: commands/tablecmds.c:9507 commands/tablecmds.c:9519 +#, c-format +msgid "cannot create primary key on column \"%s\"" +msgstr "列%s\"に主キーを作成することはできません" + +#. translator: third %s is a constraint characteristic such as NOT VALID +#: commands/tablecmds.c:9510 commands/tablecmds.c:9522 +#, c-format +msgid "The constraint \"%s\" on column \"%s\", marked %s, is incompatible with a primary key." +msgstr " %3$s とマークされている列 \"%2$s\" の制約 \"%1$s\" は、主キーと非互換です" + +#: commands/tablecmds.c:9512 +#, c-format +msgid "You will need to make it inheritable using %s." +msgstr "%s を用いてこの制約を継承可能にすべきです。" + +#: commands/tablecmds.c:9524 +#, c-format +msgid "You will need to validate it using %s." +msgstr "%s を用いてこの制約を検証してください。" + +#: commands/tablecmds.c:9661 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX はパーティションテーブルではサポートされていません" -#: commands/tablecmds.c:9286 +#: commands/tablecmds.c:9686 #, 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:9623 +#: commands/tablecmds.c:10044 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "パーティションテーブル\"%s\"上のリレーション\"%s\"を参照する外部キー定義ではONLY指定はできません " -#: commands/tablecmds.c:9629 -#, c-format -msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" -msgstr "パーティションテーブル\"%1$s\"にリレーション\"%2$s\"を参照する NOT VALID 指定の外部キーは追加できません " - -#: commands/tablecmds.c:9632 -#, c-format -msgid "This feature is not yet supported on partitioned tables." -msgstr "この機能はパーティションテーブルに対してはサポートされていません。" - -#: commands/tablecmds.c:9639 commands/tablecmds.c:10095 +#: commands/tablecmds.c:10052 commands/tablecmds.c:10679 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "参照先のリレーション\"%s\"はテーブルではありません" -#: commands/tablecmds.c:9662 +#: commands/tablecmds.c:10075 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "永続テーブルの制約は永続テーブルだけを参照できます" -#: commands/tablecmds.c:9669 +#: commands/tablecmds.c:10082 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "UNLOGGEDテーブルに対する制約は、永続テーブルまたはUNLOGGEDテーブルだけを参照する場合があります" -#: commands/tablecmds.c:9675 +#: commands/tablecmds.c:10088 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "一時テーブルに対する制約は一時テーブルだけを参照する場合があります" -#: commands/tablecmds.c:9679 +#: commands/tablecmds.c:10092 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "一時テーブルに対する制約にはこのセッションの一時テーブルを加える必要があります" -#: commands/tablecmds.c:9743 commands/tablecmds.c:9749 +#: commands/tablecmds.c:10107 commands/tablecmds.c:10135 +#, c-format +msgid "foreign key uses PERIOD on the referenced table but not the referencing table" +msgstr "外部キーが参照先テーブル上ではPERIODを使用していますが、参照元テーブルでは使用していません" + +#: commands/tablecmds.c:10147 +#, c-format +msgid "foreign key uses PERIOD on the referencing table but not the referenced table" +msgstr "外部キーが参照元テーブル上ではPERIODを使用していますが、参照先テーブルでは使用していません" + +#: commands/tablecmds.c:10161 +#, c-format +msgid "foreign key must use PERIOD when referencing a primary using WITHOUT OVERLAPS" +msgstr "主キーがWITHOUT OVERLAPSを使用している場合は外部キーはPERIODを使用する必要があります" + +#: commands/tablecmds.c:10185 commands/tablecmds.c:10191 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "生成カラムを含む外部キー制約に対する不正な %s 処理" -#: commands/tablecmds.c:9765 +#: commands/tablecmds.c:10206 +#, c-format +msgid "foreign key constraints on virtual generated columns are not supported" +msgstr "外部キー制約は仮想生成列ではサポートされていません" + +#: commands/tablecmds.c:10220 commands/tablecmds.c:10229 +#, c-format +msgid "unsupported %s action for foreign key constraint using PERIOD" +msgstr "PERIODを使用する外部キー制約に対するサポートされない %s 処理" + +#: commands/tablecmds.c:10244 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "外部キーの参照列数と被参照列数が合いません" -#: commands/tablecmds.c:9872 +#: commands/tablecmds.c:10300 +#, c-format +msgid "could not identify an overlaps operator for foreign key" +msgstr "外部キーに使用する重複検出演算子を特定できませんでした" + +#: commands/tablecmds.c:10301 +#, c-format +msgid "could not identify an equality operator for foreign key" +msgstr "外部キーに使用する等価演算子を特定できませんでした" + +#: commands/tablecmds.c:10366 commands/tablecmds.c:10400 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "外部キー制約\"%sは実装されていません" -#: commands/tablecmds.c:9874 +#: commands/tablecmds.c:10368 +#, c-format +msgid "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table are of incompatible types: %s and %s." +msgstr "キー列である参照元テーブルの\"%1$s\"と参照先テーブルの\"%2$s\"の型に互換性がありません: %3$sと%4$s。" + +#: commands/tablecmds.c:10401 #, c-format -msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." -msgstr "キーとなる列\"%s\"と\"%s\"との間で型に互換性がありません:%sと%s" +msgid "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\". If either collation is nondeterministic, then both collations have to be the same." +msgstr "キー列である参照元テーブルの\"%1$s\"と参照先テーブルの\"%2$s\"の照合順序に互換性がありません: %3$sと%4$s。いずれかの照合順序が非決定的である場合は両方の照合順序が同一である必要があります。" -#: commands/tablecmds.c:10031 +#: commands/tablecmds.c:10607 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "ON DELETE SETアクションで参照されている列\"%s\"は外部キーの一部である必要があります" -#: commands/tablecmds.c:10305 commands/tablecmds.c:10775 parser/parse_utilcmd.c:797 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:10989 commands/tablecmds.c:11435 parser/parse_utilcmd.c:941 parser/parse_utilcmd.c:1086 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "外部テーブルでは外部キー制約はサポートされていません" -#: commands/tablecmds.c:11328 commands/tablecmds.c:11609 commands/tablecmds.c:12521 commands/tablecmds.c:12595 +#: commands/tablecmds.c:11418 +#, c-format +msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"" +msgstr "外部キー\"%2$s\"で参照されているため、テーブル\"%1$s\"を子テーブルとしてアタッチすることはできません" + +#: commands/tablecmds.c:11699 +#, c-format +msgid "constraint \"%s\" enforceability conflicts with constraint \"%s\" on relation \"%s\"" +msgstr "制約\"%1$s\"の強制性が、リレーション\"%3$s\"上の制約\"%2$s\"と競合しています" + +#: commands/tablecmds.c:12158 +#, c-format +msgid "constraint must be altered in child tables too" +msgstr "制約は子テーブルでも変更される必要があります" + +#: commands/tablecmds.c:12187 commands/tablecmds.c:12881 commands/tablecmds.c:13975 commands/tablecmds.c:14204 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"の制約\"%1$s\"は存在しません" -#: commands/tablecmds.c:11335 +#: commands/tablecmds.c:12194 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "リレーション\"%2$s\"の制約\"%1$s\"は外部キー制約ではありません" -#: commands/tablecmds.c:11373 +#: commands/tablecmds.c:12199 +#, c-format +msgid "cannot alter enforceability of constraint \"%s\" of relation \"%s\"" +msgstr "リレーション\"%2$s\"の制約\"%1$s\"の強制性を変更できません" + +#: commands/tablecmds.c:12205 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" is not a not-null constraint" +msgstr "リレーション\"%2$s\"の制約\"%1$s\"は非NULL制約ではありません" + +#: commands/tablecmds.c:12213 +#, c-format +msgid "cannot alter inherited constraint \"%s\" on relation \"%s\"" +msgstr "リレーション\"%2$s\"の継承された制約\"%1$s\"を変更できません" + +#: commands/tablecmds.c:12253 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "リレーション\"%2$s\"の制約\"%1$s\"を変更できません" -#: commands/tablecmds.c:11376 +#: commands/tablecmds.c:12256 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "制約\"%1$s\"は、リレーション\"%3$s\"上の制約\"%2$s\"から派生しています。" -#: commands/tablecmds.c:11378 +#: commands/tablecmds.c:12258 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "この制約の代わりに派生元の制約を変更することは可能です。" -#: commands/tablecmds.c:11617 +#: commands/tablecmds.c:12890 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" is not a foreign key, check, or not-null constraint" +msgstr "リレーション\"%2$s\"の制約\"%1$s\"は外部キー制約、検査制約、非NULL制約のいずれでもありません" + +#: commands/tablecmds.c:12896 #, c-format -msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" -msgstr "リレーション\"%2$s\"の制約\"%1$s\"は外部キー制約でも検査制約でもありません" +msgid "cannot validate NOT ENFORCED constraint" +msgstr "NOT ENFORCED制約は検証できません" -#: commands/tablecmds.c:11694 +#: commands/tablecmds.c:13085 commands/tablecmds.c:13185 #, c-format msgid "constraint must be validated on child tables too" msgstr "制約は子テーブルでも検証される必要があります" -#: commands/tablecmds.c:11781 +#: commands/tablecmds.c:13262 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "外部キー制約で参照される列\"%s\"が存在しません" -#: commands/tablecmds.c:11787 +#: commands/tablecmds.c:13268 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "システム列は外部キーに使用できません" -#: commands/tablecmds.c:11791 +#: commands/tablecmds.c:13272 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "外部キーでは%dを超えるキーを持つことができません" -#: commands/tablecmds.c:11856 +#: commands/tablecmds.c:13340 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "被参照テーブル\"%s\"には遅延可能プライマリキーは使用できません" -#: commands/tablecmds.c:11873 +#: commands/tablecmds.c:13357 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "被参照テーブル\"%s\"にはプライマリキーがありません" -#: commands/tablecmds.c:11941 +#: commands/tablecmds.c:13430 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "外部キーの被参照列リストには重複があってはなりません" -#: commands/tablecmds.c:12033 +#: commands/tablecmds.c:13533 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "被参照テーブル\"%s\"に対しては、遅延可能な一意性制約は使用できません" -#: commands/tablecmds.c:12038 +#: commands/tablecmds.c:13538 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "被参照テーブル\"%s\"に、指定したキーに一致する一意性制約がありません" -#: commands/tablecmds.c:12477 +#: commands/tablecmds.c:13979 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" +msgstr "リレーション\"%2$s\"の制約\"%1$s\"は存在しません、スキップします" + +#: commands/tablecmds.c:14024 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の継承された制約\"%1$s\"を削除できません" -#: commands/tablecmds.c:12527 +#: commands/tablecmds.c:14076 #, c-format -msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" -msgstr "リレーション\"%2$s\"の制約\"%1$s\"は存在しません、スキップします" +msgid "column \"%s\" is in a primary key" +msgstr "列\"%s\"はプライマリキーで使用しています" + +#: commands/tablecmds.c:14084 +#, c-format +msgid "column \"%s\" is in index used as replica identity" +msgstr "列\"%s\"は複製識別として使用中のインデックスに含まれています" -#: commands/tablecmds.c:12702 +#: commands/tablecmds.c:14317 #, c-format msgid "cannot alter column type of typed table" msgstr "型付けされたテーブルの列の型を変更できません" -#: commands/tablecmds.c:12729 +#: commands/tablecmds.c:14345 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "生成列の型変更の際にはUSINGを指定することはできません" + +#: commands/tablecmds.c:14346 commands/tablecmds.c:19726 commands/tablecmds.c:19819 commands/trigger.c:659 rewrite/rewriteHandler.c:949 rewrite/rewriteHandler.c:984 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "列\"%s\"は生成カラムです。" + +#: commands/tablecmds.c:14357 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "継承される列\"%s\"を変更できません" -#: commands/tablecmds.c:12738 +#: commands/tablecmds.c:14366 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "列\"%s\"はリレーション\"%s\"のパーティションキーの一部であるため、変更できません" -#: commands/tablecmds.c:12788 +#: commands/tablecmds.c:14421 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "列\"%s\"に対するUSING句の結果は自動的に%s型に型変換できません" -#: commands/tablecmds.c:12791 +#: commands/tablecmds.c:14424 #, c-format msgid "You might need to add an explicit cast." msgstr "必要に応じて明示的な型変換を追加してください。" -#: commands/tablecmds.c:12795 +#: commands/tablecmds.c:14428 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "列\"%s\"は型%sには自動的に型変換できません" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12798 +#: commands/tablecmds.c:14432 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "必要に応じて\"USING %s::%s\"を追加してください。" -#: commands/tablecmds.c:12897 +#: commands/tablecmds.c:14532 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"の継承列\"%1$s\"は変更できません" -#: commands/tablecmds.c:12926 +#: commands/tablecmds.c:14561 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USING式が行全体テーブル参照を含んでいます。" -#: commands/tablecmds.c:12937 +#: commands/tablecmds.c:14572 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "継承される列\"%s\"の型を子テーブルで変更しなければなりません" -#: commands/tablecmds.c:13062 +#: commands/tablecmds.c:14697 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "列\"%s\"の型を2回変更することはできません" -#: commands/tablecmds.c:13100 +#: commands/tablecmds.c:14735 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "カラム\"%s\"に対する生成式は自動的に%s型にキャストできません" -#: commands/tablecmds.c:13105 +#: commands/tablecmds.c:14740 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "列\"%s\"のデフォルト値を自動的に%s型にキャストできません" -#: commands/tablecmds.c:13409 +#: commands/tablecmds.c:15044 #, c-format msgid "cannot alter type of a column used by a function or procedure" msgstr "関数またはプロシージャで使用される列の型は変更できません" -#: commands/tablecmds.c:13410 commands/tablecmds.c:13425 commands/tablecmds.c:13445 commands/tablecmds.c:13464 commands/tablecmds.c:13523 +#: commands/tablecmds.c:15045 commands/tablecmds.c:15060 commands/tablecmds.c:15080 commands/tablecmds.c:15099 commands/tablecmds.c:15158 #, c-format msgid "%s depends on column \"%s\"" msgstr "%sは列\"%s\"に依存しています" -#: commands/tablecmds.c:13424 +#: commands/tablecmds.c:15059 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "ビューまたはルールで使用される列の型は変更できません" -#: commands/tablecmds.c:13444 +#: commands/tablecmds.c:15079 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "トリガー定義で使用される列の型は変更できません" -#: commands/tablecmds.c:13463 +#: commands/tablecmds.c:15098 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "ポリシ定義で使用されている列の型は変更できません" -#: commands/tablecmds.c:13494 +#: commands/tablecmds.c:15129 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "生成カラムで使用される列の型は変更できません" -#: commands/tablecmds.c:13495 +#: commands/tablecmds.c:15130 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "カラム\"%s\"は生成カラム\"%s\"で使われています。" -#: commands/tablecmds.c:13522 +#: commands/tablecmds.c:15157 #, c-format msgid "cannot alter type of a column used by a publication WHERE clause" msgstr "パブリケーションのWHERE句で使用される列の型は変更できません" -#: commands/tablecmds.c:14357 commands/tablecmds.c:14369 +#: commands/tablecmds.c:16008 commands/tablecmds.c:16020 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "インデックス\"%s\"の所有者を変更できません" -#: commands/tablecmds.c:14359 commands/tablecmds.c:14371 +#: commands/tablecmds.c:16010 commands/tablecmds.c:16022 #, c-format msgid "Change the ownership of the index's table instead." msgstr "代わりにインデックスのテーブルの所有者を変更してください。" -#: commands/tablecmds.c:14385 +#: commands/tablecmds.c:16036 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "シーケンス\"%s\"の所有者を変更できません" -#: commands/tablecmds.c:14410 +#: commands/tablecmds.c:16061 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "リレーション\"%s\"の所有者を変更できません" -#: commands/tablecmds.c:14877 +#: commands/tablecmds.c:16528 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "SET TABLESPACEサブコマンドを複数指定できません" -#: commands/tablecmds.c:14954 +#: commands/tablecmds.c:16607 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "リレーション\"%s\"のオプションは設定できません" -#: commands/tablecmds.c:14988 commands/view.c:440 +#: commands/tablecmds.c:16641 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTIONは自動更新可能ビューでのみサポートされます" -#: commands/tablecmds.c:15238 +#: commands/tablecmds.c:16894 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "テーブルスペースにはテーブル、インデックスおよび実体化ビューしかありません" -#: commands/tablecmds.c:15250 +#: commands/tablecmds.c:16906 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "pg_globalテーブルスペースとの間のリレーションの移動はできません" -#: commands/tablecmds.c:15342 +#: commands/tablecmds.c:16998 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "リレーション\"%s.%s\"のロックが獲得できなかったため中断します" -#: commands/tablecmds.c:15358 +#: commands/tablecmds.c:17014 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "テーブルスペース\"%s\"には合致するリレーションはありませんでした" -#: commands/tablecmds.c:15480 +#: commands/tablecmds.c:17136 #, c-format msgid "cannot change inheritance of typed table" msgstr "型付けされたテーブルの継承を変更できません" -#: commands/tablecmds.c:15485 commands/tablecmds.c:15985 +#: commands/tablecmds.c:17141 commands/tablecmds.c:17725 #, c-format msgid "cannot change inheritance of a partition" msgstr "パーティションの継承は変更できません" -#: commands/tablecmds.c:15490 +#: commands/tablecmds.c:17146 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "パーティションテーブルの継承は変更できません" -#: commands/tablecmds.c:15536 +#: commands/tablecmds.c:17193 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "他のセッションの一時テーブルを継承できません" -#: commands/tablecmds.c:15549 +#: commands/tablecmds.c:17206 #, c-format msgid "cannot inherit from a partition" msgstr "パーティションからの継承はできません" -#: commands/tablecmds.c:15571 commands/tablecmds.c:18453 +#: commands/tablecmds.c:17228 commands/tablecmds.c:20239 #, c-format msgid "circular inheritance not allowed" msgstr "循環継承を行うことはできません" -#: commands/tablecmds.c:15572 commands/tablecmds.c:18454 +#: commands/tablecmds.c:17229 commands/tablecmds.c:20240 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\"はすでに\"%s\"の子です" -#: commands/tablecmds.c:15585 +#: commands/tablecmds.c:17242 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "トリガ\"%s\"によってテーブル\"%s\"が継承子テーブルになることができません" -#: commands/tablecmds.c:15587 +#: commands/tablecmds.c:17244 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "遷移テーブルを使用したROWトリガは継承関係ではサポートされていません。" -#: commands/tablecmds.c:15776 +#: commands/tablecmds.c:17445 commands/tablecmds.c:17694 #, c-format -msgid "column \"%s\" in child table must be marked NOT NULL" -msgstr "子テーブルの列\"%s\"はNOT NULLである必要があります" +msgid "column \"%s\" in child table \"%s\" must be marked NOT NULL" +msgstr "子テーブル\"%2$s\"の列\"%1$s\"は非NULLに設定されていません" -#: commands/tablecmds.c:15785 +#: commands/tablecmds.c:17455 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "子テーブルの列\"%s\"は生成列である必要があります" -#: commands/tablecmds.c:15789 +#: commands/tablecmds.c:17459 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "子テーブルの列\"%s\"は生成列であってはなりません" -#: commands/tablecmds.c:15827 +#: commands/tablecmds.c:17505 #, c-format msgid "child table is missing column \"%s\"" msgstr "子テーブルには列\"%s\"がありません" -#: commands/tablecmds.c:15908 +#: commands/tablecmds.c:17622 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "子テーブル\"%s\"では検査制約\"%s\"に異なった定義がされています" -#: commands/tablecmds.c:15915 +#: commands/tablecmds.c:17631 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "制約\"%s\"は子テーブル\"%s\"上の継承されない制約と競合します" -#: commands/tablecmds.c:15925 +#: commands/tablecmds.c:17642 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "制約\"%s\"は子テーブル\"%s\"のNOT VALID制約と衝突しています" -#: commands/tablecmds.c:15963 +#: commands/tablecmds.c:17653 +#, c-format +msgid "constraint \"%s\" conflicts with NOT ENFORCED constraint on child table \"%s\"" +msgstr "制約\"%s\"は子テーブル\"%s\"のNOT ENFORCED制約と衝突しています" + +#: commands/tablecmds.c:17702 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "子テーブルには制約\"%s\"がありません" -#: commands/tablecmds.c:16049 +#: commands/tablecmds.c:17789 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "パーティション\"%s\"はすでにパーティションテーブル\"%s.%s\"からの取り外し保留中です" -#: commands/tablecmds.c:16078 commands/tablecmds.c:16124 parser/parse_utilcmd.c:3261 +#: commands/tablecmds.c:17818 commands/tablecmds.c:17866 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "リレーション\"%s\"はリレーション\"%s\"のパーティション子テーブルではありません" -#: commands/tablecmds.c:16130 +#: commands/tablecmds.c:17872 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "リレーション\"%s\"はリレーション\"%s\"の親ではありません" -#: commands/tablecmds.c:16357 +#: commands/tablecmds.c:18143 #, c-format msgid "typed tables cannot inherit" msgstr "型付けされたテーブルは継承できません" -#: commands/tablecmds.c:16387 +#: commands/tablecmds.c:18173 #, c-format msgid "table is missing column \"%s\"" msgstr "テーブルには列\"%s\"がありません" -#: commands/tablecmds.c:16398 +#: commands/tablecmds.c:18184 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "テーブルには列\"%s\"がありますが型は\"%s\"を必要としています" -#: commands/tablecmds.c:16407 +#: commands/tablecmds.c:18193 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "テーブル\"%s\"では列\"%s\"の型が異なっています" -#: commands/tablecmds.c:16421 +#: commands/tablecmds.c:18207 #, c-format msgid "table has extra column \"%s\"" msgstr "テーブルに余分な列\"%s\"があります" -#: commands/tablecmds.c:16473 +#: commands/tablecmds.c:18259 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\"は型付けされたテーブルではありません" -#: commands/tablecmds.c:16647 +#: commands/tablecmds.c:18439 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "非ユニークインデックス\"%s\"は複製識別としては使用できません" -#: commands/tablecmds.c:16653 +#: commands/tablecmds.c:18445 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "一意性を即時検査しないインデックス\"%s\"は複製識別には使用できません" -#: commands/tablecmds.c:16659 +#: commands/tablecmds.c:18451 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "式インデックス\"%s\"は複製識別としては使用できません" -#: commands/tablecmds.c:16665 +#: commands/tablecmds.c:18457 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "部分インデックス\"%s\"を複製識別としては使用できません" -#: commands/tablecmds.c:16682 +#: commands/tablecmds.c:18474 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "列%2$dはシステム列であるためインデックス\"%1$s\"は複製識別には使えません" -#: commands/tablecmds.c:16689 +#: commands/tablecmds.c:18481 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "列\"%2$s\"はnull可であるためインデックス\"%1$s\"は複製識別には使えません" -#: commands/tablecmds.c:16941 +#: commands/tablecmds.c:18730 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "テーブル\"%s\"は一時テーブルであるため、ログ出力設定を変更できません" -#: commands/tablecmds.c:16965 +#: commands/tablecmds.c:18754 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "テーブル\"%s\"はパブリケーションの一部であるため、UNLOGGEDに変更できません" -#: commands/tablecmds.c:16967 +#: commands/tablecmds.c:18756 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "UNLOGGEDリレーションはレプリケーションできません。" -#: commands/tablecmds.c:17012 +#: commands/tablecmds.c:18801 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "テーブル\"%s\"はUNLOGGEDテーブル\"%s\"を参照しているためLOGGEDには設定できません" -#: commands/tablecmds.c:17022 +#: commands/tablecmds.c:18811 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "テーブル\"%s\"はLOGGEDテーブル\"%s\"を参照しているためUNLOGGEDには設定できません" -#: commands/tablecmds.c:17080 +#: commands/tablecmds.c:18875 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "所有するシーケンスを他のスキーマに移動することができません" -#: commands/tablecmds.c:17185 +#: commands/tablecmds.c:18983 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "リレーション\"%s\"はスキーマ\"%s\"内にすでに存在します" -#: commands/tablecmds.c:17606 +#: commands/tablecmds.c:19408 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\"はテーブルや実体化ビューではありません" -#: commands/tablecmds.c:17759 +#: commands/tablecmds.c:19561 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\"は複合型ではありません" -#: commands/tablecmds.c:17789 +#: commands/tablecmds.c:19591 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "インデックス\"%s\"のスキーマを変更できません" -#: commands/tablecmds.c:17791 commands/tablecmds.c:17805 +#: commands/tablecmds.c:19593 commands/tablecmds.c:19607 #, c-format msgid "Change the schema of the table instead." msgstr "代わりにこのテーブルのスキーマを変更してください。" -#: commands/tablecmds.c:17795 +#: commands/tablecmds.c:19597 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "複合型%sのスキーマは変更できません" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:19605 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "TOASTテーブル\"%s\"のスキーマは変更できません" -#: commands/tablecmds.c:17835 +#: commands/tablecmds.c:19637 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "\"list\"パーティションストラテジは2つ以上の列に対しては使えません" -#: commands/tablecmds.c:17901 +#: commands/tablecmds.c:19703 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "パーティションキーに指定されている列\"%s\"は存在しません" -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:19711 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "パーティションキーでシステム列\"%s\"は使用できません" -#: commands/tablecmds.c:17920 commands/tablecmds.c:18010 +#: commands/tablecmds.c:19725 commands/tablecmds.c:19818 #, c-format msgid "cannot use generated column in partition key" msgstr "パーティションキーで生成カラムは使用できません" -#: commands/tablecmds.c:17921 commands/tablecmds.c:18011 commands/trigger.c:656 rewrite/rewriteHandler.c:934 rewrite/rewriteHandler.c:969 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "列\"%s\"は生成カラムです。" - -#: commands/tablecmds.c:17993 +#: commands/tablecmds.c:19798 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "パーティションキー式はシステム列への参照を含むことができません" -#: commands/tablecmds.c:18040 +#: commands/tablecmds.c:19848 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "パーティションキー式で使われる関数はIMMUTABLE指定されている必要があります" -#: commands/tablecmds.c:18049 +#: commands/tablecmds.c:19857 #, c-format msgid "cannot use constant expression as partition key" msgstr "定数式をパーティションキーとして使うことはできません" -#: commands/tablecmds.c:18070 +#: commands/tablecmds.c:19878 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "パーティション式で使用する照合順序を特定できませんでした" -#: commands/tablecmds.c:18105 +#: commands/tablecmds.c:19913 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "ハッシュ演算子クラスを指定するか、もしくはこのデータ型にデフォルトのハッシュ演算子クラスを定義する必要があります。" -#: commands/tablecmds.c:18111 +#: commands/tablecmds.c:19919 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "btree演算子クラスを指定するか、もしくはこのデータ型にデフォルトのbtree演算子クラスを定義するかする必要があります。" -#: commands/tablecmds.c:18393 +#: commands/tablecmds.c:20179 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\"はすでパーティションです" -#: commands/tablecmds.c:18399 +#: commands/tablecmds.c:20185 #, c-format msgid "cannot attach a typed table as partition" msgstr "型付けされたテーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18415 +#: commands/tablecmds.c:20201 #, c-format msgid "cannot attach inheritance child as partition" msgstr "継承子テーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18429 +#: commands/tablecmds.c:20215 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "継承親テーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18463 +#: commands/tablecmds.c:20249 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "一時リレーションを永続リレーション \"%s\" のパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18471 +#: commands/tablecmds.c:20257 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "永続リレーションを一時リレーション\"%s\"のパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18479 +#: commands/tablecmds.c:20265 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "他セッションの一時リレーションのパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18486 +#: commands/tablecmds.c:20272 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "他セッションの一時リレーションにパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18506 +#: commands/tablecmds.c:20292 #, c-format msgid "table \"%s\" being attached contains an identity column \"%s\"" msgstr "アタッチ対象のテーブル\"%s\"には識別列\"%s\"が含まれています" -#: commands/tablecmds.c:18508 +#: commands/tablecmds.c:20294 #, c-format msgid "The new partition may not contain an identity column." msgstr "新しいパーティションは識別列を含むことはできません" -#: commands/tablecmds.c:18516 +#: commands/tablecmds.c:20302 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "テーブル\"%1$s\"は親テーブル\"%3$s\"にない列\"%2$s\"を含んでいます" -#: commands/tablecmds.c:18519 +#: commands/tablecmds.c:20305 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "新しいパーティションは親に存在する列のみを含むことができます。" -#: commands/tablecmds.c:18531 +#: commands/tablecmds.c:20317 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "トリガ\"%s\"のため、テーブル\"%s\"はパーティション子テーブルにはなれません" -#: commands/tablecmds.c:18533 +#: commands/tablecmds.c:20319 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "遷移テーブルを使用するROWトリガはパーティションではサポートされません。" -#: commands/tablecmds.c:18694 +#: commands/tablecmds.c:20501 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "外部テーブル\"%s\"はパーティションテーブル\"%s\"の子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18697 +#: commands/tablecmds.c:20504 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "パーティション親テーブル\"%s\"はユニークインデックスを持っています。" -#: commands/tablecmds.c:19019 +#: commands/tablecmds.c:20827 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "デフォルトパーティションを持つパーティションは並列的に取り外しはできません" -#: commands/tablecmds.c:19128 +#: commands/tablecmds.c:20936 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "パーティション親テーブル\"%s\"には CREATE INDEX CONCURRENTLY は実行できません" -#: commands/tablecmds.c:19134 +#: commands/tablecmds.c:20942 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "パーティション子テーブル\\\"%s\\\"は同時に削除されました" -#: commands/tablecmds.c:19661 commands/tablecmds.c:19681 commands/tablecmds.c:19702 commands/tablecmds.c:19721 commands/tablecmds.c:19763 +#: commands/tablecmds.c:21565 commands/tablecmds.c:21585 commands/tablecmds.c:21606 commands/tablecmds.c:21625 commands/tablecmds.c:21674 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "インデックス\"%s\"をインデックス\"%s\"の子インデックスとしてアタッチすることはできません" -#: commands/tablecmds.c:19664 +#: commands/tablecmds.c:21568 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "インデックス\"%s\"はすでに別のインデックスにアタッチされています。" -#: commands/tablecmds.c:19684 +#: commands/tablecmds.c:21588 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "インデックス\"%s\"はテーブル\"%s\"のどの子テーブルのインデックスでもありません。" -#: commands/tablecmds.c:19705 +#: commands/tablecmds.c:21609 #, c-format msgid "The index definitions do not match." msgstr "インデックス定義が合致しません。" -#: commands/tablecmds.c:19724 +#: commands/tablecmds.c:21628 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "インデックス\"%s\"はテーブル\"%s\"の制約に属していますが、インデックス\"%s\"には制約がありません。" -#: commands/tablecmds.c:19766 +#: commands/tablecmds.c:21677 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "子テーブル\"%s\"にはすでに他のインデックスがアタッチされています。" -#: commands/tablecmds.c:20002 +#: commands/tablecmds.c:21800 +#, c-format +msgid "invalid primary key definition" +msgstr "不正な主キー定義" + +#: commands/tablecmds.c:21801 +#, c-format +msgid "Column \"%s\" of relation \"%s\" is not marked NOT NULL." +msgstr "リレーション\"%2$s\"の列\"%1$s\"は非NULLに設定されていません。" + +#: commands/tablecmds.c:21936 #, c-format msgid "column data type %s does not support compression" msgstr "列データ型%sは圧縮をサポートしていません" -#: commands/tablecmds.c:20009 +#: commands/tablecmds.c:21943 #, c-format msgid "invalid compression method \"%s\"" msgstr "無効な圧縮方式\"%s\"" -#: commands/tablecmds.c:20035 +#: commands/tablecmds.c:21969 #, c-format msgid "invalid storage type \"%s\"" msgstr "不正な格納タイプ\"%s\"" -#: commands/tablecmds.c:20045 +#: commands/tablecmds.c:21979 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "列のデータ型%sは格納タイプPLAINしか取ることができません" -#: commands/tablecmds.c:20242 -#, c-format -msgid "can not find partition for split partition row" -msgstr "パーティション分割行に該当するパーティションが見つかりません" - -#: commands/tablecmds.c:20328 -#, c-format -msgid "cannot create as partition of temporary relation of another session" -msgstr "他セッションの一時リレーションのパーティション子テーブルとして作成することはできません" - -#: commands/tablecmds.c:20399 -#, c-format -msgid "cannot create a permanent relation as partition of temporary relation \"%s\"" -msgstr "永続リレーションを一時リレーション\"%s\"のパーティション子テーブルとして作成することはできません" - #: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" @@ -11631,277 +11863,272 @@ msgstr "テーブル空間%u用のディレクトリを削除することがで msgid "You can remove the directories manually if necessary." msgstr "必要ならば手作業でこのディレクトリを削除することができます" -#: commands/trigger.c:225 commands/trigger.c:236 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\"はテーブルです" -#: commands/trigger.c:227 commands/trigger.c:238 +#: commands/trigger.c:229 commands/trigger.c:240 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "テーブルは INSTEAD OF トリガーを持つことができません" -#: commands/trigger.c:259 +#: commands/trigger.c:261 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\"はパーティション親テーブルです" -#: commands/trigger.c:261 +#: commands/trigger.c:263 #, c-format msgid "ROW triggers with transition tables are not supported on partitioned tables." msgstr "遷移テーブルを使用するROWトリガはパーティション親テーブルではサポートされません。" -#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 +#: commands/trigger.c:275 commands/trigger.c:282 commands/trigger.c:446 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\"はビューです" -#: commands/trigger.c:275 +#: commands/trigger.c:277 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "ビューは行レベルの BEFORE / AFTER トリガーを持つことができません" -#: commands/trigger.c:282 +#: commands/trigger.c:284 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "ビューは TRUNCATE トリガーを持つことができません" -#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 +#: commands/trigger.c:292 commands/trigger.c:304 commands/trigger.c:439 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\"は外部テーブルです" -#: commands/trigger.c:292 +#: commands/trigger.c:294 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "外部テーブルは INSTEAD OF トリガを持つことができません。" -#: commands/trigger.c:304 +#: commands/trigger.c:306 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "外部テーブルは制約トリガを持つことができません。" -#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 +#: commands/trigger.c:311 commands/trigger.c:1330 commands/trigger.c:1437 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "リレーション\"%s\"にはトリガーを設定できません" -#: commands/trigger.c:380 +#: commands/trigger.c:382 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "TRUNCATE FOR EACH ROW トリガはサポートされていません" -#: commands/trigger.c:388 +#: commands/trigger.c:390 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "INSTEAD OF トリガーは FOR EACH ROW でなければなりません" -#: commands/trigger.c:392 +#: commands/trigger.c:394 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "INSTEAD OF トリガーは WHEN 条件を持つことができません" -#: commands/trigger.c:396 +#: commands/trigger.c:398 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "INSTEAD OF トリガーは列リストを持つことができません" -#: commands/trigger.c:425 +#: commands/trigger.c:427 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "REFERENCING句でのROW変数の命名はサポートされていません" -#: commands/trigger.c:426 +#: commands/trigger.c:428 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "遷移テーブルを指定するには OLD TABLE または NEW TABLE を使ってください" -#: commands/trigger.c:439 +#: commands/trigger.c:441 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "外部テーブルに対するトリガは遷移テーブルを持てません。" -#: commands/trigger.c:446 +#: commands/trigger.c:448 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "ビューに対するトリガは遷移テーブルを持てません。" -#: commands/trigger.c:462 +#: commands/trigger.c:464 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "遷移テーブルを使用するROWトリガはパーティションではサポートされません" -#: commands/trigger.c:466 +#: commands/trigger.c:468 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" msgstr "遷移テーブルをもったROWトリガは継承子テーブルではサポートされません" -#: commands/trigger.c:472 +#: commands/trigger.c:474 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "遷移テーブル名はAFTERトリガでの指定可能です" -#: commands/trigger.c:477 +#: commands/trigger.c:479 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "遷移テーブルを使用するTRUNCATEトリガはサポートされていません" -#: commands/trigger.c:494 +#: commands/trigger.c:496 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" msgstr "2つ以上のイベントに対するトリガには遷移テーブルは指定できません" -#: commands/trigger.c:505 +#: commands/trigger.c:507 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "列リストを指定したトリガに対しては遷移テーブルは指定できません" -#: commands/trigger.c:522 +#: commands/trigger.c:524 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE はINSERTまたはUPDATEトリガに対してのみ指定可能です" -#: commands/trigger.c:527 +#: commands/trigger.c:529 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE は複数回指定できません" -#: commands/trigger.c:537 +#: commands/trigger.c:539 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE はDELETEまたはUPDATEトリガに対してのみ指定可能です" -#: commands/trigger.c:542 +#: commands/trigger.c:544 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE は複数回指定できません" -#: commands/trigger.c:552 +#: commands/trigger.c:554 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "OLD TABLE の名前と NEW TABLE の名前は同じにはできません" -#: commands/trigger.c:616 commands/trigger.c:629 +#: commands/trigger.c:618 commands/trigger.c:631 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "ステートメントトリガーの WHEN 条件では列の値を参照できません" -#: commands/trigger.c:621 +#: commands/trigger.c:623 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "INSERT トリガーの WHEN 条件では OLD 値を参照できません" -#: commands/trigger.c:634 +#: commands/trigger.c:636 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "DELETE トリガーの WHEN 条件では NEW 値を参照できません" -#: commands/trigger.c:639 +#: commands/trigger.c:641 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "BEFORE トリガーの WHEN 条件では NEW システム列を参照できません" -#: commands/trigger.c:647 commands/trigger.c:655 +#: commands/trigger.c:650 commands/trigger.c:658 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "BEFORE トリガーの WHEN 条件では NEW の生成列を参照できません" -#: commands/trigger.c:648 +#: commands/trigger.c:651 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "行全体参照が使われていてかつ、このテーブルは生成カラムを含んでいます。" -#: commands/trigger.c:763 commands/trigger.c:1607 +#: commands/trigger.c:766 commands/trigger.c:1613 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "リレーション\"%2$s\"用のトリガ\"%1$s\"はすでに存在します" -#: commands/trigger.c:776 +#: commands/trigger.c:779 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "リレーション\"%2$s\"のトリガー\"%1$s\"は内部トリガーまたは子トリガーです" -#: commands/trigger.c:795 +#: commands/trigger.c:798 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr "リレーション\"%2$s\"のトリガー\"%1$s\"は制約トリガーです" -#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 +#: commands/trigger.c:1402 commands/trigger.c:1556 commands/trigger.c:1837 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "テーブル\"%2$s\"のトリガ\"%1$s\"は存在しません" -#: commands/trigger.c:1522 +#: commands/trigger.c:1528 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "テーブル\"%2$s\"のトリガー\"%1$s\"の名前は変更できません" -#: commands/trigger.c:1524 +#: commands/trigger.c:1530 #, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "代わりにパーティション親テーブル\"%s\"でこのトリガーの名前を変更してください。" -#: commands/trigger.c:1624 +#: commands/trigger.c:1630 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "リレーション\"%2$s\"のトリガー\"%1$s\"の名前を変更しました" -#: commands/trigger.c:1770 +#: commands/trigger.c:1776 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "権限がありません: \"%s\"はシステムトリガです" -#: commands/trigger.c:2379 +#: commands/trigger.c:2385 #, c-format msgid "trigger function %u returned null value" msgstr "トリガ関数%uはNULL値を返しました" -#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 commands/trigger.c:3263 +#: commands/trigger.c:2445 commands/trigger.c:2665 commands/trigger.c:2918 commands/trigger.c:3273 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "BEFORE STATEMENTトリガは値を返すことができません" -#: commands/trigger.c:2515 +#: commands/trigger.c:2523 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "BEFORE FOR EACH ROWトリガの実行では、他のパーティションへの行の移動はサポートされていません" -#: commands/trigger.c:2516 +#: commands/trigger.c:2524 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "トリガ\"%s\"の実行前には、この行はパーティション\"%s.%s\"に置かれるはずでした。" -#: commands/trigger.c:3340 executor/nodeModifyTable.c:2363 executor/nodeModifyTable.c:2446 -#, c-format -msgid "tuple to be updated was already modified by an operation triggered by the current command" -msgstr "更新対象のタプルはすでに現在のコマンドによって起動された操作によって変更されています" - -#: commands/trigger.c:3341 executor/nodeModifyTable.c:1532 executor/nodeModifyTable.c:1606 executor/nodeModifyTable.c:2364 executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3075 executor/nodeModifyTable.c:3236 +#: commands/trigger.c:3351 executor/nodeModifyTable.c:1665 executor/nodeModifyTable.c:1739 executor/nodeModifyTable.c:2546 executor/nodeModifyTable.c:2636 executor/nodeModifyTable.c:3308 executor/nodeModifyTable.c:3478 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "他の行への変更を伝搬させるためにBEFOREトリガではなくAFTERトリガの使用を検討してください" -#: commands/trigger.c:3382 executor/nodeLockRows.c:228 executor/nodeLockRows.c:237 executor/nodeModifyTable.c:305 executor/nodeModifyTable.c:1548 executor/nodeModifyTable.c:2381 executor/nodeModifyTable.c:2589 +#: commands/trigger.c:3392 executor/nodeLockRows.c:228 executor/nodeLockRows.c:237 executor/nodeModifyTable.c:368 executor/nodeModifyTable.c:1681 executor/nodeModifyTable.c:2562 executor/nodeModifyTable.c:2787 #, c-format msgid "could not serialize access due to concurrent update" msgstr "更新が同時に行われたためアクセスの直列化ができませんでした" -#: commands/trigger.c:3390 executor/nodeModifyTable.c:1638 executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613 executor/nodeModifyTable.c:3093 +#: commands/trigger.c:3400 executor/nodeModifyTable.c:1771 executor/nodeModifyTable.c:2653 executor/nodeModifyTable.c:2811 executor/nodeModifyTable.c:3326 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "削除が同時に行われたためアクセスの直列化ができませんでした" -#: commands/trigger.c:4597 +#: commands/trigger.c:4635 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "セキュリティー制限操作中は、遅延トリガーは発火させられません" -#: commands/trigger.c:5780 +#: commands/trigger.c:5831 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "制約\"%s\"は遅延可能ではありません" -#: commands/trigger.c:5803 +#: commands/trigger.c:5854 #, c-format msgid "constraint \"%s\" does not exist" msgstr "制約\"%s\"は存在しません" @@ -12011,7 +12238,7 @@ msgstr "基本型を作成するにはスーパーユーザーである必要が msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "最初に型をシェル型として生成して、続いてI/O関数を生成した後に完全な CREATE TYPE を実行してください。" -#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 +#: commands/typecmds.c:331 commands/typecmds.c:1486 commands/typecmds.c:4471 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "型の属性\"%s\"は不明です" @@ -12031,7 +12258,7 @@ msgstr "%sを配列要素の型にすることはできません" msgid "alignment \"%s\" not recognized" msgstr "アライメント\"%s\"は不明です" -#: commands/typecmds.c:454 commands/typecmds.c:4354 +#: commands/typecmds.c:454 commands/typecmds.c:4345 #, c-format msgid "storage \"%s\" not recognized" msgstr "格納方式\"%s\"は不明です" @@ -12061,332 +12288,347 @@ msgstr "添字処理関数なしで要素型を指定することはできませ msgid "\"%s\" is not a valid base type for a domain" msgstr "\"%s\"はドメインの基本型として無効です" -#: commands/typecmds.c:883 +#: commands/typecmds.c:885 #, c-format msgid "multiple default expressions" msgstr "デフォルト式が複数あります" -#: commands/typecmds.c:946 commands/typecmds.c:955 +#: commands/typecmds.c:945 commands/typecmds.c:960 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "NULL制約とNOT NULL制約が競合しています" -#: commands/typecmds.c:971 +#: commands/typecmds.c:950 +#, c-format +msgid "not-null constraints for domains cannot be marked NO INHERIT" +msgstr "ドメインに対する非NULL制約はNO INHERIT指定できません" + +#: commands/typecmds.c:977 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "ドメインに対する検査制約はNO INHERITとマークすることができません" -#: commands/typecmds.c:980 commands/typecmds.c:2940 +#: commands/typecmds.c:988 #, c-format msgid "unique constraints not possible for domains" msgstr "ドメインでは一意性制約は使用できません" -#: commands/typecmds.c:986 commands/typecmds.c:2946 +#: commands/typecmds.c:995 #, c-format msgid "primary key constraints not possible for domains" msgstr "ドメインではプライマリキー制約はできません" -#: commands/typecmds.c:992 commands/typecmds.c:2952 +#: commands/typecmds.c:1002 #, c-format msgid "exclusion constraints not possible for domains" msgstr "ドメインでは排除制約は使用できません" -#: commands/typecmds.c:998 commands/typecmds.c:2958 +#: commands/typecmds.c:1009 #, c-format msgid "foreign key constraints not possible for domains" msgstr "ドメイン用の外部キー制約はできません" -#: commands/typecmds.c:1007 commands/typecmds.c:2967 +#: commands/typecmds.c:1019 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "ドメインでは制約遅延の指定はサポートしていません" -#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 +#: commands/typecmds.c:1027 +#, c-format +msgid "specifying GENERATED not supported for domains" +msgstr "ドメインではGENERATEDの指定はサポートしていません" + +#: commands/typecmds.c:1035 +#, c-format +msgid "specifying constraint enforceability not supported for domains" +msgstr "ドメインでは制約の強制性指定はサポートしていません" + +#: commands/typecmds.c:1353 utils/cache/typcache.c:2745 #, c-format msgid "%s is not an enum" msgstr "%s は数値ではありません" -#: commands/typecmds.c:1468 +#: commands/typecmds.c:1494 #, c-format msgid "type attribute \"subtype\" is required" msgstr "型の属性\"subtype\"が必要です" -#: commands/typecmds.c:1473 +#: commands/typecmds.c:1499 #, c-format msgid "range subtype cannot be %s" msgstr "範囲の派生元型を%sにすることはできません" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1518 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "範囲の照合順序が指定されましたが、派生もと型が照合順序をサポートしていません" -#: commands/typecmds.c:1502 +#: commands/typecmds.c:1528 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "事前にシェル型を生成せずに正規化関数を指定することはできません" -#: commands/typecmds.c:1503 +#: commands/typecmds.c:1529 #, c-format msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." msgstr "最初に型をシェル型として生成して、続いて正規化関数を生成した後に完全な CREATE TYPE を実行してください。" -#: commands/typecmds.c:1975 +#: commands/typecmds.c:2005 #, c-format msgid "type input function %s has multiple matches" msgstr "型の入力関数%sが複数合致します" -#: commands/typecmds.c:1993 +#: commands/typecmds.c:2023 #, c-format msgid "type input function %s must return type %s" msgstr "型の入力関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2009 +#: commands/typecmds.c:2039 #, c-format msgid "type input function %s should not be volatile" msgstr "型の入力関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2037 +#: commands/typecmds.c:2067 #, c-format msgid "type output function %s must return type %s" msgstr "型の出力関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2044 +#: commands/typecmds.c:2074 #, c-format msgid "type output function %s should not be volatile" msgstr "型の出力関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2073 +#: commands/typecmds.c:2103 #, c-format msgid "type receive function %s has multiple matches" msgstr "型の受信関数 %s が複数合致しました" -#: commands/typecmds.c:2091 +#: commands/typecmds.c:2121 #, c-format msgid "type receive function %s must return type %s" msgstr "型の受信関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2098 +#: commands/typecmds.c:2128 #, c-format msgid "type receive function %s should not be volatile" msgstr "型の受信関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2126 +#: commands/typecmds.c:2156 #, c-format msgid "type send function %s must return type %s" msgstr "型の送信関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2133 +#: commands/typecmds.c:2163 #, c-format msgid "type send function %s should not be volatile" msgstr "型の送信関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2160 +#: commands/typecmds.c:2190 #, c-format msgid "typmod_in function %s must return type %s" msgstr "typmod_in関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2167 +#: commands/typecmds.c:2197 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "型修正子の入力関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2194 +#: commands/typecmds.c:2224 #, c-format msgid "typmod_out function %s must return type %s" msgstr "typmod_out関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2201 +#: commands/typecmds.c:2231 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "型修正子の出力関数%sはvolatileであってはなりません" -#: commands/typecmds.c:2228 +#: commands/typecmds.c:2258 #, c-format msgid "type analyze function %s must return type %s" msgstr "型のANALYZE関数%sは%s型を返す必要があります" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2287 #, c-format msgid "type subscripting function %s must return type %s" msgstr "型の添字処理関数%sは型%sを返す必要があります" -#: commands/typecmds.c:2267 +#: commands/typecmds.c:2297 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "ユーザー定義型は添字処理関数%sを使用できません" -#: commands/typecmds.c:2313 +#: commands/typecmds.c:2343 #, c-format msgid "You must specify an operator class for the range type or define a default operator class for the subtype." msgstr "この範囲型に演算子クラスを指定するか、派生元の型でデフォルト演算子クラスを定義する必要があります。" -#: commands/typecmds.c:2344 +#: commands/typecmds.c:2374 #, c-format msgid "range canonical function %s must return range type" msgstr "範囲の正規化関数 %s は範囲型を返す必要があります" -#: commands/typecmds.c:2350 +#: commands/typecmds.c:2380 #, c-format msgid "range canonical function %s must be immutable" msgstr "範囲の正規化関数 %s は不変関数でなければなりません" -#: commands/typecmds.c:2386 +#: commands/typecmds.c:2416 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "範囲の派生元の型の差分関数 %s は %s型を返す必要があります" -#: commands/typecmds.c:2393 +#: commands/typecmds.c:2423 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "範囲の派生元の型の差分関数 %s は不変関数である必要があります" -#: commands/typecmds.c:2420 +#: commands/typecmds.c:2450 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_typeの配列型OIDが設定されていません" -#: commands/typecmds.c:2453 +#: commands/typecmds.c:2483 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_typeの複範囲型OIDの値が設定されていません" -#: commands/typecmds.c:2486 +#: commands/typecmds.c:2516 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_typeの複範囲配列型OIDの値が設定されていません" -#: commands/typecmds.c:2868 commands/typecmds.c:3093 +#: commands/typecmds.c:2898 commands/typecmds.c:3080 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "ドメイン\"%2$s\"の制約\"%1$s\"は存在しません" -#: commands/typecmds.c:2872 +#: commands/typecmds.c:2902 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "ドメイン\"%2$s\"の制約\"%1$s\"は存在しません、スキップします" -#: commands/typecmds.c:3100 +#: commands/typecmds.c:3087 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "ドメイン\"%2$s\"の制約\"%1$s\"は検査制約ではありません" -#: commands/typecmds.c:3180 +#: commands/typecmds.c:3167 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "テーブル\"%2$s\"の列\"%1$s\"にNULL値があります" -#: commands/typecmds.c:3269 +#: commands/typecmds.c:3256 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "テーブル\"%2$s\"の列\"%1$s\"に新しい制約に違反する値があります" -#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 commands/typecmds.c:4073 +#: commands/typecmds.c:3485 commands/typecmds.c:3763 commands/typecmds.c:3848 commands/typecmds.c:4064 #, c-format msgid "%s is not a domain" msgstr "%s はドメインではありません" -#: commands/typecmds.c:3532 commands/typecmds.c:3686 +#: commands/typecmds.c:3519 commands/typecmds.c:3675 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "ドメイン\"%2$s\"の制約\"%1$s\"はすでに存在します" -#: commands/typecmds.c:3583 +#: commands/typecmds.c:3570 #, c-format msgid "cannot use table references in domain check constraint" msgstr "ドメインの検査制約ではテーブル参照を使用できません" -#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 +#: commands/typecmds.c:3775 commands/typecmds.c:3860 commands/typecmds.c:4214 #, c-format msgid "%s is a table's row type" msgstr "%sはテーブルの行型です" -#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 +#: commands/typecmds.c:3785 commands/typecmds.c:3870 commands/typecmds.c:4112 #, c-format msgid "cannot alter array type %s" msgstr "配列型%sを変更できません" -#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4114 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "型%sを変更することができます。これは同時にその配列型も変更します。" -#: commands/typecmds.c:3892 +#: commands/typecmds.c:3883 #, c-format msgid "cannot alter multirange type %s" msgstr "複範囲型%sを変更できません" -#: commands/typecmds.c:3895 +#: commands/typecmds.c:3886 #, c-format msgid "You can alter type %s, which will alter the multirange type as well." msgstr "型%sを変更することができます。これは同時にその複範囲型も変更します。" -#: commands/typecmds.c:4202 +#: commands/typecmds.c:4193 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "型\"%s\"はスキーマ\"%s\"内にすでに存在します" -#: commands/typecmds.c:4382 +#: commands/typecmds.c:4373 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "型の格納方式をPLAINには変更できません" -#: commands/typecmds.c:4475 +#: commands/typecmds.c:4466 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "型の属性\"%s\"は変更できません" -#: commands/typecmds.c:4493 +#: commands/typecmds.c:4484 #, c-format msgid "must be superuser to alter a type" msgstr "型の変更を行うにはスーパーユーザーである必要があります" -#: commands/typecmds.c:4514 commands/typecmds.c:4523 +#: commands/typecmds.c:4505 commands/typecmds.c:4514 #, c-format msgid "%s is not a base type" msgstr "\"%s\"は基本型ではありません" -#: commands/user.c:200 +#: commands/user.c:201 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSIDはもう指定することができません" -#: commands/user.c:318 commands/user.c:324 commands/user.c:330 commands/user.c:336 commands/user.c:342 +#: commands/user.c:319 commands/user.c:325 commands/user.c:331 commands/user.c:337 commands/user.c:343 #, c-format msgid "permission denied to create role" msgstr "ロールを作成する権限がありません" -#: commands/user.c:319 +#: commands/user.c:320 #, c-format msgid "Only roles with the %s attribute may create roles." msgstr "%s属性を持つロールのみがロールを作成できます。" -#: commands/user.c:325 commands/user.c:331 commands/user.c:337 commands/user.c:343 +#: commands/user.c:326 commands/user.c:332 commands/user.c:338 commands/user.c:344 #, c-format msgid "Only roles with the %s attribute may create roles with the %s attribute." msgstr "%s属性を持つロールのみが%s属性を持つロールを作成できます。" -#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 gram.y:17355 gram.y:17401 utils/adt/acl.c:5568 utils/adt/acl.c:5574 +#: commands/user.c:355 commands/user.c:1386 commands/user.c:1393 gram.y:17493 gram.y:17539 utils/adt/acl.c:5690 utils/adt/acl.c:5696 #, c-format msgid "role name \"%s\" is reserved" msgstr "ロール名\"%s\"は予約されています" -#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 +#: commands/user.c:357 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "\"pg_\"で始まるロール名は予約されています。" -#: commands/user.c:377 commands/user.c:1410 +#: commands/user.c:378 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "ロール\"%s\"はすでに存在します" -#: commands/user.c:439 commands/user.c:924 +#: commands/user.c:440 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "空の文字列はパスワードとして使えません、パスワードを消去します" -#: commands/user.c:468 +#: commands/user.c:469 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にpg_authidのOIDが設定されていません" @@ -12422,8 +12664,8 @@ msgstr "他のロールのパスワードを変更するには、現在のユー #: commands/user.c:825 #, c-format -msgid "Only roles with the %s option on role \"%s\" may add members." -msgstr "ロール\"%2$s\"に対する%1$sオプションを持つロールのみがメンバを追加することができます。" +msgid "Only roles with the %s option on role \"%s\" may add or drop members." +msgstr "ロール\"%2$s\"に対する%1$sオプションを持つロールのみがメンバの追加および削除をすることができます。" #: commands/user.c:870 #, c-format @@ -12455,7 +12697,7 @@ msgstr "%s属性および削除対象ロールに対する%sオプションを msgid "cannot use special role specifier in DROP ROLE" msgstr "DROP ROLE で特殊ロールの識別子は使えません" -#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:838 commands/variable.c:841 commands/variable.c:947 commands/variable.c:950 utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5423 utils/adt/acl.c:5471 utils/adt/acl.c:5499 utils/adt/acl.c:5518 utils/adt/regproc.c:1571 utils/init/miscinit.c:762 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:864 commands/variable.c:867 commands/variable.c:983 commands/variable.c:986 utils/adt/acl.c:366 utils/adt/acl.c:386 utils/adt/acl.c:5545 utils/adt/acl.c:5593 utils/adt/acl.c:5621 utils/adt/acl.c:5640 utils/adt/regproc.c:1571 utils/init/miscinit.c:804 #, c-format msgid "role \"%s\" does not exist" msgstr "ロール\"%s\"は存在しません" @@ -12520,7 +12762,7 @@ msgstr "%1$s属性とロール\"%3$s\"に対する%2$sオプションを持つ msgid "MD5 password cleared because of role rename" msgstr "ロール名が変更されたためMD5パスワードがクリアされました" -#: commands/user.c:1518 gram.y:1297 +#: commands/user.c:1518 gram.y:1286 #, c-format msgid "unrecognized role option \"%s\"" msgstr "ロールオプション\"%s\"が認識できません" @@ -12560,207 +12802,212 @@ msgstr "ロール\"%s\"の権限を持つロールのみが、そのロールが msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "ロール\"%s\"の権限を持つロールのみが、オブジェクトの所有者をそのロールに変更できます。" -#: commands/user.c:1733 +#: commands/user.c:1734 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "ロール\"%s\"はどのロールのメンバーにもなれません" -#: commands/user.c:1746 +#: commands/user.c:1747 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "ロール\"%s\"はロール\"%s\"のメンバです" -#: commands/user.c:1786 commands/user.c:1812 +#: commands/user.c:1787 commands/user.c:1813 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "%sオプションはもとの付与者に付与し返すことはできません" -#: commands/user.c:1889 +#: commands/user.c:1890 #, c-format msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "ロール\"%s\"はすでにロール\"%s\"のメンバ権限をロール\"%s\"によって付与されています" -#: commands/user.c:2024 +#: commands/user.c:2036 #, c-format msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "ロール\"%s\"はロール\"%s\"のメンバ権限をロール\"%s\"によって付与されていません" -#: commands/user.c:2124 +#: commands/user.c:2137 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "ロール\"%s\"は明示的なメンバーを持てません" -#: commands/user.c:2135 commands/user.c:2158 +#: commands/user.c:2148 commands/user.c:2171 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "ロール\"%s\"権限を付与する権限がありません" -#: commands/user.c:2137 +#: commands/user.c:2150 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "%s属性を持つロールのみが%s属性を持つロールの権限を付与できます。" -#: commands/user.c:2142 commands/user.c:2165 +#: commands/user.c:2155 commands/user.c:2178 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "ロール\"%s\"の権限を剥奪する権限がありません" -#: commands/user.c:2144 +#: commands/user.c:2157 #, c-format msgid "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "%s属性を持つロールのみが%s属性を持つロールの権限を剥奪できます。" -#: commands/user.c:2160 +#: commands/user.c:2173 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "ロール\"%2$s\"に対する%1$sオプションを持つロールのみがこのロール権限を付与できます。" -#: commands/user.c:2167 +#: commands/user.c:2180 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "ロール\"%2$s\"に対する%1$sオプションを持つロールのみがこのロール権限を剥奪できます。" -#: commands/user.c:2247 commands/user.c:2256 +#: commands/user.c:2260 commands/user.c:2269 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "ロール\"%s\"として権限を付与する権限がありません" -#: commands/user.c:2249 +#: commands/user.c:2262 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "ロール\"%s\"の権限を持つロールのみがこのロールとして権限を付与できます。" -#: commands/user.c:2258 +#: commands/user.c:2271 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "付与者はロール\"%s\"に対する%sオプションを持つ必要があります。" -#: commands/user.c:2266 +#: commands/user.c:2279 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "ロール\"%s\"によって付与された権限を剥奪する権限がありません" -#: commands/user.c:2268 +#: commands/user.c:2281 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." msgstr "ロール\"%s\"の権限を持つロールのみがこのロールが付与した権限を剥奪できます。" -#: commands/user.c:2491 utils/adt/acl.c:1318 +#: commands/user.c:2504 utils/adt/acl.c:1325 #, c-format msgid "dependent privileges exist" msgstr "依存する権限が存在します" -#: commands/user.c:2492 utils/adt/acl.c:1319 +#: commands/user.c:2505 utils/adt/acl.c:1326 #, c-format msgid "Use CASCADE to revoke them too." msgstr "これらも剥奪するにはCASCADEを使用してください" -#: commands/vacuum.c:134 +#: commands/vacuum.c:146 #, c-format -msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" -msgstr "\"vacuum_buffer_usage_limit\"は0または%d kBと%d kBとの間でなければなりません" +msgid "\"%s\" must be 0 or between %d kB and %d kB." +msgstr "\"%s\"は0または%d kBと%d kBとの間でなければなりません。" -#: commands/vacuum.c:209 +#: commands/vacuum.c:222 #, c-format msgid "BUFFER_USAGE_LIMIT option must be 0 or between %d kB and %d kB" msgstr "BUFFER_USAGE_LIMITオプションは0または%d kBと%d kBの間でなければなりません" -#: commands/vacuum.c:219 +#: commands/vacuum.c:232 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "ANALYZEオプション\"%s\"が認識できません" -#: commands/vacuum.c:259 +#: commands/vacuum.c:272 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "パラレルオプションには0から%dまでの値である必要があります" -#: commands/vacuum.c:271 +#: commands/vacuum.c:284 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "VACUUMの並列ワーカーの数はは0から%dまでの値でなければなりません" -#: commands/vacuum.c:292 +#: commands/vacuum.c:305 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "認識できないVACUUMオプション \"%s\"" -#: commands/vacuum.c:318 +#: commands/vacuum.c:331 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULLは並列実行できません" -#: commands/vacuum.c:329 +#: commands/vacuum.c:342 #, c-format msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL" msgstr "BUFFER_USAGE_LIMITはVACUUM FULLに対しては指定できません" -#: commands/vacuum.c:343 +#: commands/vacuum.c:356 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "ANALYZE オプションは列リストが与えられているときのみ指定できます" -#: commands/vacuum.c:355 +#: commands/vacuum.c:368 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "VACUUM のオプションDISABLE_PAGE_SKIPPINGはFULLと同時には指定できません" -#: commands/vacuum.c:362 +#: commands/vacuum.c:375 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "VACUUM FULLではPROCESS_TOASTの指定が必須です" -#: commands/vacuum.c:371 +#: commands/vacuum.c:384 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables" msgstr "ONLY_DATABASE_STATSはテーブルのリストと一緒に指定することはできません" -#: commands/vacuum.c:380 +#: commands/vacuum.c:393 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options" msgstr "ONLY_DATABASE_STATSは他のVACUUMオプションと一緒に指定することはできません" -#: commands/vacuum.c:515 +#: commands/vacuum.c:533 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%sはVACUUMやANALYZEからは実行できません" -#: commands/vacuum.c:730 +#: commands/vacuum.c:745 #, c-format msgid "permission denied to vacuum \"%s\", skipping it" msgstr "列%sのVACUUMを行う権限がありません、スキップします" -#: commands/vacuum.c:743 +#: commands/vacuum.c:758 #, c-format msgid "permission denied to analyze \"%s\", skipping it" msgstr "列%sのANALYZEを行う権限がありません、スキップします" -#: commands/vacuum.c:821 commands/vacuum.c:918 +#: commands/vacuum.c:836 commands/vacuum.c:937 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "\"%s\"のVACUUM処理をスキップしています -- ロックを獲得できませんでした" -#: commands/vacuum.c:826 +#: commands/vacuum.c:841 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "\"%s\"のVACUUM処理をスキップしています -- リレーションはすでに存在しません" -#: commands/vacuum.c:842 commands/vacuum.c:923 +#: commands/vacuum.c:857 commands/vacuum.c:942 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "\"%s\"のANALYZEをスキップしています --- ロック獲得できませんでした" -#: commands/vacuum.c:847 +#: commands/vacuum.c:862 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "\"%s\"のANALYZEをスキップします --- リレーションはすでに存在しません" -#: commands/vacuum.c:1139 +#: commands/vacuum.c:978 +#, c-format +msgid "VACUUM ONLY of partitioned table \"%s\" has no effect" +msgstr "パーティション親テーブル\"%s\"に対する VACUUM ONLY は効果がありません" + +#: commands/vacuum.c:1169 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" msgstr "タプルの削除およびフリーズのカットオフ値が古すぎます" -#: commands/vacuum.c:1140 commands/vacuum.c:1145 +#: commands/vacuum.c:1170 commands/vacuum.c:1175 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12769,37 +13016,37 @@ msgstr "" "周回問題を回避するためにすぐに実行中のトランザクションを終了してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除が必要な場合もあります。" -#: commands/vacuum.c:1144 +#: commands/vacuum.c:1174 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "マルチトランザクションのフリーズのカットオフ値が古すぎます" -#: commands/vacuum.c:1890 +#: commands/vacuum.c:1936 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "データベースの一部は20億トランザクション以上の間にVACUUMを実行されていませんでした" -#: commands/vacuum.c:1891 +#: commands/vacuum.c:1937 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "トランザクションの周回によるデータ損失が発生している可能性があります" -#: commands/vacuum.c:2070 +#: commands/vacuum.c:2116 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "\"%s\"をスキップしています --- テーブルではないものや、特別なシステムテーブルに対してはVACUUMを実行できません" -#: commands/vacuum.c:2502 +#: commands/vacuum.c:2617 #, c-format -msgid "scanned index \"%s\" to remove %lld row versions" -msgstr "インデックス\"%s\"をスキャンして%lldの行バージョンを削除しました" +msgid "scanned index \"%s\" to remove % row versions" +msgstr "インデックス\"%s\"をスキャンして%の行バージョンを削除しました" -#: commands/vacuum.c:2521 +#: commands/vacuum.c:2636 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "現在インデックス\"%s\"は%.0f行バージョンを%uページで含んでいます" -#: commands/vacuum.c:2525 +#: commands/vacuum.c:2640 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12810,13 +13057,13 @@ msgstr "" "%uインデックスページを新たに削除\n" "%uページが現在削除中、うち%uページが再利用可能。" -#: commands/vacuumparallel.c:708 +#: commands/vacuumparallel.c:709 #, 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)" msgstr[0] "インデックスのVACUUMのために%d個の並列VACUUMワーカーを起動しました (計画値: %d)" -#: commands/vacuumparallel.c:714 +#: commands/vacuumparallel.c:715 #, 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)" @@ -12824,8 +13071,8 @@ msgstr[0] "インデックスのクリーンアップのために%d個の並列V #: commands/variable.c:185 #, c-format -msgid "Conflicting \"datestyle\" specifications." -msgstr "\"datestyle\"指定が競合しています。" +msgid "Conflicting \"DateStyle\" specifications." +msgstr "\"DateStyle\"指定が競合しています。" #: commands/variable.c:307 #, c-format @@ -12837,12 +13084,12 @@ msgstr "タイムゾーンのインターバル指定では月は指定できま msgid "Cannot specify days in time zone interval." msgstr "タイムゾーンのインターバル指定では日は指定できません。" -#: commands/variable.c:351 commands/variable.c:433 +#: commands/variable.c:351 commands/variable.c:435 #, c-format msgid "time zone \"%s\" appears to use leap seconds" msgstr "タイムゾーン\"%s\"はうるう秒を使用するようです" -#: commands/variable.c:353 commands/variable.c:435 +#: commands/variable.c:353 commands/variable.c:437 #, c-format msgid "PostgreSQL does not support leap seconds." msgstr "PostgreSQLはうるう秒をサポートしていません。" @@ -12852,107 +13099,97 @@ msgstr "PostgreSQLはうるう秒をサポートしていません。" msgid "UTC timezone offset is out of range." msgstr "UTCのタイムゾーンオフセットが範囲外です。" -#: commands/variable.c:552 +#: commands/variable.c:554 #, c-format msgid "cannot set transaction read-write mode inside a read-only transaction" msgstr "読み取りのみのトランザクションでトランザクションモードを読み書きモードに設定することはできません" -#: commands/variable.c:559 +#: commands/variable.c:561 #, c-format msgid "transaction read-write mode must be set before any query" msgstr "トランザクションの読み書きモードの設定は、問い合わせより前に行う必要があります" -#: commands/variable.c:566 +#: commands/variable.c:568 #, c-format msgid "cannot set transaction read-write mode during recovery" msgstr "リカバリ中にはトランザクションを読み書きモードに設定できません" -#: commands/variable.c:592 +#: commands/variable.c:596 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query" msgstr "SET TRANSACTION ISOLATION LEVEL は問い合わせより前に実行する必要があります" -#: commands/variable.c:599 +#: commands/variable.c:603 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "SET TRANSACTION ISOLATION LEVELをサブトランザクションで呼び出してはなりません" -#: commands/variable.c:606 storage/lmgr/predicate.c:1680 +#: commands/variable.c:610 storage/lmgr/predicate.c:1695 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "ホットスタンバイ中はシリアライズモードを使用できません" -#: commands/variable.c:607 +#: commands/variable.c:611 #, c-format msgid "You can use REPEATABLE READ instead." msgstr "代わりに REPEATABLE READ を使ってください" -#: commands/variable.c:625 +#: commands/variable.c:633 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction" msgstr "SET TRANSACTION [NOT] DEFERRABLE をサブトランザクション内部では呼び出せません" -#: commands/variable.c:631 +#: commands/variable.c:639 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query" msgstr "SET TRANSACTION [NOT] DEFERRABLE は問い合わせより前に実行する必要があります" -#: commands/variable.c:713 +#: commands/variable.c:715 +#, c-format +msgid "Cannot change \"client_encoding\" during a parallel operation." +msgstr "並列処理中は\"client_encoding\"を変更できません。" + +#: commands/variable.c:743 #, c-format msgid "Conversion between %s and %s is not supported." msgstr "%sと%s 間の変換はサポートされていません。" -#: commands/variable.c:720 +#: commands/variable.c:750 #, c-format msgid "Cannot change \"client_encoding\" now." msgstr "現在\"client_encoding\"を変更できません。" -#: commands/variable.c:781 -#, c-format -msgid "cannot change \"client_encoding\" during a parallel operation" -msgstr "並列処理中は\"client_encoding\"を変更できません" - -#: commands/variable.c:863 +#: commands/variable.c:889 #, c-format msgid "permission will be denied to set session authorization \"%s\"" msgstr "セッション認証を\"%s\"に設定する権限は拒否されます" -#: commands/variable.c:868 +#: commands/variable.c:894 #, c-format msgid "permission denied to set session authorization \"%s\"" msgstr "セッション認証を\"%s\"に設定する権限は拒否されました" -#: commands/variable.c:972 +#: commands/variable.c:1003 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "ロール\"%s\"を設定する権限がありません" -#: commands/variable.c:977 +#: commands/variable.c:1008 #, c-format msgid "permission denied to set role \"%s\"" msgstr "ロール\"%s\"を設定する権限がありません" -#: commands/variable.c:1177 +#: commands/variable.c:1228 #, c-format msgid "Bonjour is not supported by this build" msgstr "このビルドでは bonjour はサポートされていません" -#: commands/variable.c:1205 -#, c-format -msgid "\"effective_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." -msgstr "posix_fadvise() をもたないプラットフォームでは\"effective_io_concurrency\"は0に設定する必要があります。" - -#: commands/variable.c:1218 -#, c-format -msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." -msgstr "posix_fadvise() をもたないプラットフォームでは\"maintenance_io_concurrency\"は0に設定する必要があります。" - -#: commands/variable.c:1231 +#: commands/variable.c:1256 #, c-format msgid "SSL is not supported by this build" msgstr "このインストレーションではSSLはサポートされていません" -#: commands/view.c:79 +#: commands/view.c:78 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "ビューの列\"%s\"で使用する照合順序を特定できませんでした" @@ -13037,400 +13274,411 @@ msgstr "カーソル\"%s\"は行上に位置していません" msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "カーソル\"%s\"はテーブル\"%s\"を単純な更新可能スキャンではありません" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2543 +#: executor/execCurrent.c:280 executor/execExprInterp.c:3093 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "パラメータの型%d(%s)が実行計画(%s)を準備する時点と一致しません" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2555 +#: executor/execCurrent.c:292 executor/execExprInterp.c:3105 #, c-format msgid "no value found for parameter %d" msgstr "パラメータ%dの値がありません" -#: executor/execExpr.c:641 executor/execExpr.c:648 executor/execExpr.c:654 executor/execExprInterp.c:4741 executor/execExprInterp.c:4758 executor/execExprInterp.c:4857 executor/nodeModifyTable.c:194 executor/nodeModifyTable.c:205 executor/nodeModifyTable.c:222 executor/nodeModifyTable.c:230 +#: executor/execExpr.c:667 executor/execExpr.c:674 executor/execExpr.c:680 executor/execExprInterp.c:5440 executor/execExprInterp.c:5457 executor/execExprInterp.c:5556 executor/nodeModifyTable.c:210 executor/nodeModifyTable.c:221 executor/nodeModifyTable.c:238 executor/nodeModifyTable.c:246 #, c-format msgid "table row type and query-specified row type do not match" msgstr "テーブルの行型と問い合わせで指定した行型が一致しません" -#: executor/execExpr.c:642 executor/nodeModifyTable.c:195 +#: executor/execExpr.c:668 executor/nodeModifyTable.c:211 #, c-format msgid "Query has too many columns." msgstr "問い合わせの列が多すぎます" -#: executor/execExpr.c:649 executor/nodeModifyTable.c:223 +#: executor/execExpr.c:675 executor/nodeModifyTable.c:239 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "問い合わせで %d 番目に削除される列の値を指定しています。" -#: executor/execExpr.c:655 executor/execExprInterp.c:4759 executor/nodeModifyTable.c:206 +#: executor/execExpr.c:681 executor/execExprInterp.c:5458 executor/nodeModifyTable.c:222 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "テーブルでは %2$d 番目の型は %1$s ですが、問い合わせでは %3$s を想定しています。" -#: executor/execExpr.c:1103 parser/parse_agg.c:840 +#: executor/execExpr.c:1157 parser/parse_agg.c:843 #, c-format msgid "window function calls cannot be nested" msgstr "ウィンドウ関数の呼び出しを入れ子にすることはできません" -#: executor/execExpr.c:1640 +#: executor/execExpr.c:1689 #, c-format msgid "target type is not an array" msgstr "対象型は配列ではありません" -#: executor/execExpr.c:1980 +#: executor/execExpr.c:2033 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "ROW()列の型が%2$sではなく%1$sです" -#: executor/execExpr.c:2642 executor/execSRF.c:718 parser/parse_func.c:138 parser/parse_func.c:655 parser/parse_func.c:1033 +#: executor/execExpr.c:2729 executor/execSRF.c:718 parser/parse_func.c:138 parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "関数に%dを超える引数を渡せません" -#: executor/execExpr.c:2669 executor/execSRF.c:738 executor/functions.c:1067 utils/adt/jsonfuncs.c:4032 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2756 executor/execSRF.c:738 executor/functions.c:1474 utils/adt/jsonfuncs.c:4056 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "このコンテキストで集合値の関数は集合を受け付けられません" -#: executor/execExpr.c:3075 parser/parse_node.c:272 parser/parse_node.c:322 +#: executor/execExpr.c:3262 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "添字をサポートしないため、型%sには添字をつけられません" -#: executor/execExpr.c:3203 executor/execExpr.c:3225 +#: executor/execExpr.c:3390 executor/execExpr.c:3412 #, c-format msgid "type %s does not support subscripted assignment" msgstr "型%sは添字を使った代入をサポートしません" -#: executor/execExprInterp.c:2007 +#: executor/execExprInterp.c:2415 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "%2$s型の属性%1$dが削除されています" -#: executor/execExprInterp.c:2013 +#: executor/execExprInterp.c:2421 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "型%2$sの属性%1$dの型が間違っています" -#: executor/execExprInterp.c:2015 executor/execExprInterp.c:3214 executor/execExprInterp.c:3260 +#: executor/execExprInterp.c:2423 executor/execExprInterp.c:3782 executor/execExprInterp.c:3828 #, c-format msgid "Table has type %s, but query expects %s." msgstr "テーブルの型は%sですが、問い合わせでは%sを想定しています。" -#: executor/execExprInterp.c:2095 utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 utils/fmgr/funcapi.c:569 +#: executor/execExprInterp.c:2503 utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1841 utils/cache/typcache.c:2000 utils/cache/typcache.c:2147 utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "型%sは複合型ではありません" -#: executor/execExprInterp.c:2698 +#: executor/execExprInterp.c:3266 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "このタイプのテーブルではWHERE CURRENT OFをサポートしません" -#: executor/execExprInterp.c:2911 +#: executor/execExprInterp.c:3479 #, c-format msgid "cannot merge incompatible arrays" msgstr "互換性がない配列をマージできません" -#: executor/execExprInterp.c:2912 +#: executor/execExprInterp.c:3480 #, c-format msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "要素型%sの配列を要素型%sのARRAY式に含められません" -#: executor/execExprInterp.c:2933 utils/adt/arrayfuncs.c:1305 utils/adt/arrayfuncs.c:3496 utils/adt/arrayfuncs.c:5586 utils/adt/arrayfuncs.c:6103 utils/adt/arraysubs.c:150 utils/adt/arraysubs.c:488 +#: executor/execExprInterp.c:3501 utils/adt/arrayfuncs.c:1305 utils/adt/arrayfuncs.c:3515 utils/adt/arrayfuncs.c:5605 utils/adt/arrayfuncs.c:6124 utils/adt/arraysubs.c:151 utils/adt/arraysubs.c:489 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "配列の次数(%d)が上限(%d)を超えています" -#: executor/execExprInterp.c:2953 executor/execExprInterp.c:2988 +#: executor/execExprInterp.c:3521 executor/execExprInterp.c:3556 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "多次元配列の配列式の次数があっていなければなりません" -#: executor/execExprInterp.c:2965 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 utils/adt/arrayfuncs.c:2942 utils/adt/arrayfuncs.c:2957 utils/adt/arrayfuncs.c:3298 utils/adt/arrayfuncs.c:3526 utils/adt/arrayfuncs.c:5358 utils/adt/arrayfuncs.c:6195 -#: utils/adt/arrayfuncs.c:6539 utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 utils/adt/arrayutils.c:99 +#: executor/execExprInterp.c:3533 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 utils/adt/arrayfuncs.c:3545 utils/adt/arrayfuncs.c:5377 +#: utils/adt/arrayfuncs.c:6216 utils/adt/arrayfuncs.c:6560 utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "配列の次数が上限(%d)を超えています" -#: executor/execExprInterp.c:3213 executor/execExprInterp.c:3259 +#: executor/execExprInterp.c:3781 executor/execExprInterp.c:3827 #, c-format msgid "attribute %d has wrong type" msgstr "属性%dの型が間違っています" -#: executor/execExprInterp.c:3845 utils/adt/domains.c:158 +#: executor/execExprInterp.c:4413 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "ドメイン%sはnull値を許しません" -#: executor/execExprInterp.c:3860 utils/adt/domains.c:196 +#: executor/execExprInterp.c:4428 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "ドメイン%sの値が検査制約\"%s\"に違反しています" -#: executor/execExprInterp.c:4433 +#: executor/execExprInterp.c:5003 #, c-format msgid "no SQL/JSON item found for specified path of column \"%s\"" msgstr "列\"%s\"の指定されたパスに対応するSQL/JSON項目が見つかりません" -#: executor/execExprInterp.c:4438 +#: executor/execExprInterp.c:5008 #, c-format msgid "no SQL/JSON item found for specified path" msgstr "指定されたパスに対応するSQL/JSON項目が見つかりません" -#: executor/execExprInterp.c:4742 +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:5208 executor/execExprInterp.c:5216 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "%s式(%s)をRETURNING型に強制変換できませんでした" + +#: executor/execExprInterp.c:5441 #, 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] "テーブル行には%d属性ありますが、問い合わせでは%dを想定しています。" -#: executor/execExprInterp.c:4858 executor/execSRF.c:977 +#: executor/execExprInterp.c:5557 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "序数位置%dの削除された属性における物理格納形式が一致しません。" -#: executor/execIndexing.c:593 +#: executor/execIndexing.c:608 #, c-format msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters" msgstr "ON CONFLICT は遅延可なユニーク制約/排除制約の調停主体としての指定をサポートしません" -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:911 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "排除制約\"%s\"を作成できませんでした" -#: executor/execIndexing.c:873 +#: executor/execIndexing.c:914 #, c-format msgid "Key %s conflicts with key %s." msgstr "キー %s がキー %s と競合しています" -#: executor/execIndexing.c:875 +#: executor/execIndexing.c:916 #, c-format msgid "Key conflicts exist." msgstr "キーの競合が存在します" -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:922 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "重複キーの値が排除制約\"%s\"に違反しています" -#: executor/execIndexing.c:884 +#: executor/execIndexing.c:925 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "キー %s が既存のキー %s と競合しています" -#: executor/execIndexing.c:886 +#: executor/execIndexing.c:927 #, c-format msgid "Key conflicts with existing key." msgstr "キーが既存のキーと衝突しています" -#: executor/execMain.c:1041 +#: executor/execIndexing.c:1172 +#, c-format +msgid "empty WITHOUT OVERLAPS value found in column \"%s\" in relation \"%s\"" +msgstr "リレーション\"%2$s\"の列\"%1$s\"に空のWITHOUT OVERLAPS値が見つかりました" + +#: executor/execMain.c:1171 #, c-format msgid "cannot change sequence \"%s\"" msgstr "シーケンス\"%s\"を変更できません" -#: executor/execMain.c:1047 +#: executor/execMain.c:1177 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "TOASTリレーション\"%s\"を変更できません" -#: executor/execMain.c:1066 +#: executor/execMain.c:1196 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "実体化ビュー\"%s\"を変更できません" -#: executor/execMain.c:1078 +#: executor/execMain.c:1208 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "外部テーブル\"%s\"への挿入ができません" -#: executor/execMain.c:1084 +#: executor/execMain.c:1214 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "外部テーブル\"%s\"は挿入を許しません" -#: executor/execMain.c:1091 +#: executor/execMain.c:1221 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "外部テーブル \"%s\"の更新ができません" -#: executor/execMain.c:1097 +#: executor/execMain.c:1227 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "外部テーブル\"%s\"は更新を許しません" -#: executor/execMain.c:1104 +#: executor/execMain.c:1234 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "外部テーブル\"%s\"からの削除ができません" -#: executor/execMain.c:1110 +#: executor/execMain.c:1240 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "外部テーブル\"%s\"は削除を許しません" -#: executor/execMain.c:1121 +#: executor/execMain.c:1251 #, c-format msgid "cannot change relation \"%s\"" msgstr "リレーション\"%s\"を変更できません" -#: executor/execMain.c:1148 +#: executor/execMain.c:1278 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "シーケンス\"%s\"では行のロックはできません" -#: executor/execMain.c:1155 +#: executor/execMain.c:1285 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "TOAST リレーション\"%s\"では行のロックはできません" -#: executor/execMain.c:1162 +#: executor/execMain.c:1292 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "ビュー\"%s\"では行のロックはできません" -#: executor/execMain.c:1170 +#: executor/execMain.c:1300 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "実体化ビュー\"%s\"では行のロックはできません" -#: executor/execMain.c:1179 executor/execMain.c:2684 executor/nodeLockRows.c:135 +#: executor/execMain.c:1309 executor/execMain.c:2941 executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "外部テーブル\"%s\"では行のロックはできません" -#: executor/execMain.c:1185 +#: executor/execMain.c:1315 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "リレーション\"%s\"では行のロックはできません" -#: executor/execMain.c:1898 +#: executor/execMain.c:2038 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "リレーション\"%s\"の新しい行はパーティション制約に違反しています" -#: executor/execMain.c:1900 executor/execMain.c:1984 executor/execMain.c:2035 executor/execMain.c:2145 +#: executor/execMain.c:2040 executor/execMain.c:2152 executor/execMain.c:2290 executor/execMain.c:2398 #, c-format msgid "Failing row contains %s." msgstr "失敗した行は%sを含みます" -#: executor/execMain.c:1981 -#, c-format -msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" -msgstr "リレーション\"%2$s\"の列\"%1$s\"のNULL値が非NULL制約に違反しています" - -#: executor/execMain.c:2033 +#: executor/execMain.c:2150 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "リレーション\"%s\"の新しい行は検査制約\"%s\"に違反しています" -#: executor/execMain.c:2143 +#: executor/execMain.c:2287 +#, c-format +msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" +msgstr "リレーション\"%2$s\"の列\"%1$s\"のNULL値が非NULL制約に違反しています" + +#: executor/execMain.c:2396 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "新しい行はビュー\"%s\"のチェックオプションに違反しています" -#: executor/execMain.c:2153 +#: executor/execMain.c:2406 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "新しい行はテーブル\"%2$s\"行レベルセキュリティポリシ\"%1$s\"に違反しています" -#: executor/execMain.c:2158 +#: executor/execMain.c:2411 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "新しい行はテーブル\"%s\"の行レベルセキュリティポリシに違反しています" -#: executor/execMain.c:2166 +#: executor/execMain.c:2419 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "ターゲットの行はテーブル\"%s\"の行レベルセキュリティポリシ\"%s\"(USING式)に違反しています" -#: executor/execMain.c:2171 +#: executor/execMain.c:2424 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "ターゲットの行はテーブル\"%s\"の行レベルセキュリティポリシ(USING式)に違反しています" -#: executor/execMain.c:2178 +#: executor/execMain.c:2431 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "新しい行はテーブル\"%1$s\"の行レベルセキュリティポリシ\"%2$s\"(USING式)に違反しています" -#: executor/execMain.c:2183 +#: executor/execMain.c:2436 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "新しい行はテーブル\"%s\"の行レベルセキュリティポリシ(USING式)に違反しています" -#: executor/execPartition.c:327 +#: executor/execPartition.c:331 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "行に対応するパーティションがリレーション\"%s\"に見つかりません" -#: executor/execPartition.c:330 +#: executor/execPartition.c:334 #, c-format msgid "Partition key of the failing row contains %s." msgstr "失敗した行のパーティションキーは%sを含みます。" -#: executor/execReplication.c:272 executor/execReplication.c:456 +#: executor/execReplication.c:147 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying" msgstr "ロック対象のタプルは同時に行われた更新によって他の子テーブルに移動されています、再試行しています" -#: executor/execReplication.c:276 executor/execReplication.c:460 +#: executor/execReplication.c:151 #, c-format msgid "concurrent update, retrying" msgstr "同時更新がありました、リトライします" -#: executor/execReplication.c:282 executor/execReplication.c:466 +#: executor/execReplication.c:158 #, c-format msgid "concurrent delete, retrying" msgstr "並行する削除がありました、リトライします" -#: executor/execReplication.c:352 parser/parse_cte.c:302 parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3845 utils/adt/arrayfuncs.c:4400 utils/adt/arrayfuncs.c:6419 utils/adt/rowtypes.c:1220 -#, c-format -msgid "could not identify an equality operator for type %s" -msgstr "型%sの等価演算子を特定できませんでした" - -#: executor/execReplication.c:683 executor/execReplication.c:689 +#: executor/execReplication.c:809 executor/execReplication.c:815 executor/execReplication.c:821 #, c-format msgid "cannot update table \"%s\"" msgstr "テーブル\"%s\"の更新ができません" -#: executor/execReplication.c:685 executor/execReplication.c:697 +#: executor/execReplication.c:811 executor/execReplication.c:829 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." msgstr "このパブリケーションのWHERE式で使用されている列は識別列の一部ではありません。" -#: executor/execReplication.c:691 executor/execReplication.c:703 +#: executor/execReplication.c:817 executor/execReplication.c:835 #, c-format msgid "Column list used by the publication does not cover the replica identity." msgstr "このパブリケーションで使用されてる列リストは識別列を包含していません。" -#: executor/execReplication.c:695 executor/execReplication.c:701 +#: executor/execReplication.c:823 executor/execReplication.c:841 +#, c-format +msgid "Replica identity must not contain unpublished generated columns." +msgstr "複製識別がパブリッシュされていない生成列を含んでいてはなりません。" + +#: executor/execReplication.c:827 executor/execReplication.c:833 executor/execReplication.c:839 #, c-format msgid "cannot delete from table \"%s\"" msgstr "テーブル\"%s\"からの削除ができません" -#: executor/execReplication.c:721 +#: executor/execReplication.c:859 #, c-format msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates" msgstr "テーブル\"%s\"は複製識別を持たずかつ更新をパブリッシュしているため、更新できません" -#: executor/execReplication.c:723 +#: executor/execReplication.c:861 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "テーブルの更新を可能にするには ALTER TABLE で REPLICA IDENTITY を設定してください。" -#: executor/execReplication.c:727 +#: executor/execReplication.c:865 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" msgstr "テーブル\"%s\"は複製識別がなくかつ削除をパブリッシュしているため、このテーブルでは行の削除ができません" -#: executor/execReplication.c:729 +#: executor/execReplication.c:867 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "このテーブルでの行削除を可能にするには ALTER TABLE で REPLICA IDENTITY を設定してください。" -#: executor/execReplication.c:745 +#: executor/execReplication.c:883 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "リレーション\"%s.%s\"は論理レプリケーション先としては使用できません" @@ -13476,114 +13724,114 @@ msgstr[0] "%d属性を持つ行が返されました。問い合わせでは%d msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "序数位置%2$dの型%1$sが返されました。問い合わせでは%3$sを想定しています。" -#: executor/execTuples.c:147 executor/execTuples.c:368 executor/execTuples.c:563 executor/execTuples.c:772 +#: executor/execTuples.c:147 executor/execTuples.c:369 executor/execTuples.c:564 executor/execTuples.c:774 #, c-format msgid "cannot retrieve a system column in this context" msgstr "この文脈ではシステム列は取り出せません" -#: executor/execTuples.c:163 executor/execTuples.c:580 +#: executor/execTuples.c:163 executor/execTuples.c:581 #, c-format msgid "don't have transaction information for this type of tuple" msgstr "このタイプのタプルのトランザクション情報は持たないでください" -#: executor/execTuples.c:390 executor/execTuples.c:794 +#: executor/execTuples.c:391 executor/execTuples.c:796 #, c-format msgid "don't have a storage tuple in this context" msgstr "この文脈ではストレージタプルを保持しないでください" -#: executor/execUtils.c:713 +#: executor/execUtils.c:759 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "実体化ビュー\"%s\"にはデータが格納されていません" -#: executor/execUtils.c:715 -#, c-format -msgid "Use the REFRESH MATERIALIZED VIEW command." -msgstr "REFRESH MATERIALIZED VIEWコマンドを使用してください。" - -#: executor/functions.c:217 +#: executor/functions.c:293 #, c-format msgid "could not determine actual type of argument declared %s" msgstr "%sと宣言された引数の型を特定できませんでした" -#: executor/functions.c:512 +#: executor/functions.c:726 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "SQL関数の中ではCOPY文によるクライアントとの間の入出力はできません" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:732 #, c-format msgid "%s is not allowed in an SQL function" msgstr "SQL関数では%sは使用不可です" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1741 executor/spi.c:2649 +#: executor/functions.c:740 executor/spi.c:1746 executor/spi.c:2660 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "volatile関数以外では%sは許可されません" -#: executor/functions.c:1451 +#: executor/functions.c:1135 executor/functions.c:2129 executor/functions.c:2167 executor/functions.c:2181 executor/functions.c:2271 executor/functions.c:2304 executor/functions.c:2318 #, c-format -msgid "SQL function \"%s\" statement %d" -msgstr "SQL関数\"%s\"の行番号 %d" +msgid "return type mismatch in function declared to return %s" +msgstr "%sを返すと宣言された関数において戻り値型が一致しません" -#: executor/functions.c:1477 +#: executor/functions.c:1137 executor/functions.c:2131 #, c-format -msgid "SQL function \"%s\" during startup" -msgstr "SQL関数\"%s\"の起動中" +msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." +msgstr "関数中の最後の文はSELECTまたはINSERT/UPDATE/DELETE/MERGE RETURNING のいずれかである必要があります。" -#: executor/functions.c:1562 +#: executor/functions.c:1220 utils/cache/plancache.c:869 #, c-format -msgid "calling procedures with output arguments is not supported in SQL functions" -msgstr "出力引数を持つプロシージャの呼び出しはSQL関数ではサポートされていません" +msgid "cached plan must not change result type" +msgstr "キャッシュした実行計画は結果型を変更してはなりません" -#: executor/functions.c:1697 executor/functions.c:1735 executor/functions.c:1749 executor/functions.c:1844 executor/functions.c:1877 executor/functions.c:1891 +#: executor/functions.c:1822 executor/functions.c:1853 #, c-format -msgid "return type mismatch in function declared to return %s" -msgstr "%sを返すと宣言された関数において戻り値型が一致しません" +msgid "SQL function \"%s\" during startup" +msgstr "SQL関数\"%s\"の起動中" -#: executor/functions.c:1699 +#: executor/functions.c:1850 #, c-format -msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." -msgstr "関数中の最後の文はSELECTまたはINSERT/UPDATE/DELETE/MERGE RETURNING のいずれかである必要があります。" +msgid "SQL function \"%s\" statement %d" +msgstr "SQL関数\"%s\"の行番号 %d" + +#: executor/functions.c:1980 +#, c-format +msgid "calling procedures with output arguments is not supported in SQL functions" +msgstr "出力引数を持つプロシージャの呼び出しはSQL関数ではサポートされていません" -#: executor/functions.c:1737 +#: executor/functions.c:2169 #, c-format msgid "Final statement must return exactly one column." msgstr "最後のステートメントはちょうど1列を返さなければなりません。" -#: executor/functions.c:1751 +#: executor/functions.c:2183 #, c-format msgid "Actual return type is %s." msgstr "実際の戻り値型は%sです。" -#: executor/functions.c:1846 +#: executor/functions.c:2273 #, c-format msgid "Final statement returns too many columns." msgstr "最後のステートメントが返す列が多すぎます。" -#: executor/functions.c:1879 +#: executor/functions.c:2306 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "最後のステートメントが列%3$dで%2$sではなく%1$sを返しました。" -#: executor/functions.c:1893 +#: executor/functions.c:2320 #, c-format msgid "Final statement returns too few columns." msgstr "最後のステートメントが返す列が少なすぎます。" -#: executor/functions.c:1921 +#: executor/functions.c:2348 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "戻り値型%sはSQL関数でサポートされていません" -#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2976 +#: executor/nodeAgg.c:4039 executor/nodeWindowAgg.c:3041 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "集約%uは入力データ型と遷移用の型間で互換性が必要です" -#: executor/nodeAgg.c:3966 parser/parse_agg.c:682 parser/parse_agg.c:710 +#: executor/nodeAgg.c:4062 parser/parse_agg.c:685 parser/parse_agg.c:713 #, c-format msgid "aggregate function calls cannot be nested" msgstr "集約関数の呼び出しを入れ子にすることはできません" @@ -13593,12 +13841,12 @@ msgstr "集約関数の呼び出しを入れ子にすることはできません msgid "custom scan \"%s\" does not support MarkPos" msgstr "カスタムスキャン\"%s\"はMarkPosをサポートしていません" -#: executor/nodeHashjoin.c:1130 executor/nodeHashjoin.c:1160 +#: executor/nodeHashjoin.c:1230 executor/nodeHashjoin.c:1260 #, c-format msgid "could not rewind hash-join temporary file" msgstr "ハッシュ結合用一時ファイルを巻き戻せませんでした" -#: executor/nodeIndexonlyscan.c:239 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "概算距離関数はインデックスオンリースキャンではサポートされていません" @@ -13613,73 +13861,73 @@ msgstr "OFFSET は負数であってはなりません" msgid "LIMIT must not be negative" msgstr "LIMIT は負数であってはなりません" -#: executor/nodeMergejoin.c:1578 +#: executor/nodeMergejoin.c:1574 #, c-format msgid "RIGHT JOIN is only supported with merge-joinable join conditions" msgstr "RIGHT JOINはマージ結合可能な結合条件でのみサポートされています" -#: executor/nodeMergejoin.c:1596 +#: executor/nodeMergejoin.c:1592 #, c-format msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOINはマージ結合可能な結合条件でのみサポートされています" -#: executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:247 #, c-format msgid "Query has too few columns." msgstr "問い合わせの列が少なすぎます。" -#: executor/nodeModifyTable.c:1531 executor/nodeModifyTable.c:1605 +#: executor/nodeModifyTable.c:1664 executor/nodeModifyTable.c:1738 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "削除対象のタプルはすでに現在のコマンドによって引き起こされた操作によって変更されています" -#: executor/nodeModifyTable.c:1760 +#: executor/nodeModifyTable.c:1937 #, c-format msgid "invalid ON UPDATE specification" msgstr "不正な ON UPDATE 指定です" -#: executor/nodeModifyTable.c:1761 +#: executor/nodeModifyTable.c:1938 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "結果タプルをもとのパーティションではなく異なるパーティションに追加しようとしました。" -#: executor/nodeModifyTable.c:2217 +#: executor/nodeModifyTable.c:2394 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "ソースパーティションのルート以外の上位パーティションが外部キーで直接参照されている場合はパーティション間でタプルを移動させることができません" -#: executor/nodeModifyTable.c:2218 +#: executor/nodeModifyTable.c:2395 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "外部キーがパーティションルートテーブル\"%2$s\"ではなくパーティション親テーブル\"%1$s\"を指しています。" -#: executor/nodeModifyTable.c:2221 +#: executor/nodeModifyTable.c:2398 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "テーブル\"%s\"上に外部キー制約を定義することを検討してください。" #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:3081 executor/nodeModifyTable.c:3242 +#: executor/nodeModifyTable.c:2765 executor/nodeModifyTable.c:3314 executor/nodeModifyTable.c:3484 #, c-format msgid "%s command cannot affect row a second time" msgstr "%sコマンドは単一の行に2度は適用できません" -#: executor/nodeModifyTable.c:2569 +#: executor/nodeModifyTable.c:2767 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "同じコマンドでの挿入候補の行が同じ制約値を持つことがないようにしてください" -#: executor/nodeModifyTable.c:3074 executor/nodeModifyTable.c:3235 +#: executor/nodeModifyTable.c:3307 executor/nodeModifyTable.c:3477 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "更新または削除対象のタプルは、現在のコマンドによって発火した操作トリガーによってすでに更新されています" -#: executor/nodeModifyTable.c:3083 executor/nodeModifyTable.c:3244 +#: executor/nodeModifyTable.c:3316 executor/nodeModifyTable.c:3486 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "ソース行が2行以上ターゲット行に合致しないようにしてください。" -#: executor/nodeModifyTable.c:3152 +#: executor/nodeModifyTable.c:3385 #, c-format msgid "tuple to be merged was already moved to another partition due to concurrent update" msgstr "マージ対象のタプルは同時に行われた更新によってすでに他の子テーブルに移動されています" @@ -13694,7 +13942,7 @@ msgstr "TABLESAMPLEパラメータにnullは指定できません" msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "TABLESAMPLE REPEATABLE パラメータにnullは指定できません" -#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 +#: executor/nodeSubplan.c:317 executor/nodeSubplan.c:343 executor/nodeSubplan.c:397 executor/nodeSubplan.c:1182 #, c-format msgid "more than one row returned by a subquery used as an expression" msgstr "式として使用された副問い合わせが2行以上の行を返しました" @@ -13729,104 +13977,104 @@ msgstr "列\"%s\"でnullは許可されません" msgid "moving-aggregate transition function must not return null" msgstr "移動集約の推移関数はnullを返却してはなりません" -#: executor/nodeWindowAgg.c:2083 +#: executor/nodeWindowAgg.c:2106 #, c-format msgid "frame starting offset must not be null" msgstr "フレームの開始オフセットは NULL であってはなりません" -#: executor/nodeWindowAgg.c:2096 +#: executor/nodeWindowAgg.c:2120 #, c-format msgid "frame starting offset must not be negative" msgstr "フレームの開始オフセットは負数であってはなりません" -#: executor/nodeWindowAgg.c:2108 +#: executor/nodeWindowAgg.c:2133 #, c-format msgid "frame ending offset must not be null" msgstr "フレームの終了オフセットは NULL であってはなりません" -#: executor/nodeWindowAgg.c:2121 +#: executor/nodeWindowAgg.c:2147 #, c-format msgid "frame ending offset must not be negative" msgstr "フレームの終了オフセットは負数であってはなりません" -#: executor/nodeWindowAgg.c:2892 +#: executor/nodeWindowAgg.c:2957 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "集約関数 %s はウィンドウ関数としての使用をサポートしていません" -#: executor/spi.c:241 executor/spi.c:341 +#: executor/spi.c:242 executor/spi.c:342 #, c-format msgid "invalid transaction termination" msgstr "不正なトランザクション終了" -#: executor/spi.c:256 +#: executor/spi.c:257 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "サブトランザクションの実行中はコミットできません" -#: executor/spi.c:347 +#: executor/spi.c:348 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "サブトランザクションの実行中はロールバックできません" -#: executor/spi.c:471 +#: executor/spi.c:472 #, c-format msgid "transaction left non-empty SPI stack" msgstr "トランザクションは空でないSPIスタックを残しました" -#: executor/spi.c:472 executor/spi.c:532 +#: executor/spi.c:473 executor/spi.c:533 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "\"SPI_finish\"呼出の抜けを確認ください" -#: executor/spi.c:531 +#: executor/spi.c:532 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "サブトランザクションが空でないSPIスタックを残しました" -#: executor/spi.c:1599 +#: executor/spi.c:1603 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "カーソルにマルチクエリの実行計画を開くことができません" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1609 +#: executor/spi.c:1613 #, c-format msgid "cannot open %s query as cursor" msgstr "カーソルで%s問い合わせを開くことができません" -#: executor/spi.c:1715 +#: executor/spi.c:1720 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHAREはサポートされていません" -#: executor/spi.c:1716 parser/analyze.c:2928 +#: executor/spi.c:1721 parser/analyze.c:3161 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "スクロール可能カーソルは読み取り専用である必要があります。" -#: executor/spi.c:2488 +#: executor/spi.c:2498 #, c-format msgid "empty query does not return tuples" msgstr "空の問い合わせは結果を返却しません" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2562 +#: executor/spi.c:2573 #, c-format msgid "%s query does not return tuples" msgstr "%s問い合わせがタプルを返しません" -#: executor/spi.c:2979 +#: executor/spi.c:3004 #, c-format -msgid "SQL expression \"%s\"" -msgstr "SQL関数\"%s\"" +msgid "PL/pgSQL expression \"%s\"" +msgstr "PL/pgSQL式 \"%s\"" -#: executor/spi.c:2984 +#: executor/spi.c:3009 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "PL/pgSQL代入\"%s\"" -#: executor/spi.c:2987 +#: executor/spi.c:3012 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL文 \"%s\"" @@ -13836,478 +14084,480 @@ msgstr "SQL文 \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "共有メモリキューにタプルを送出できませんでした" -#: foreign/foreign.c:224 +#: foreign/foreign.c:225 #, c-format msgid "user mapping not found for user \"%s\", server \"%s\"" msgstr "ユーザー\"%s\"、サーバー\"%s\"に対するユーザーマッピングが見つかりません" -#: foreign/foreign.c:650 +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7228 optimizer/util/plancat.c:538 +#, c-format +msgid "access to non-system foreign table is restricted" +msgstr "非システムの外部テーブルへのアクセスは制限されています" + +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "不正なオプション\"%s\"" -#: foreign/foreign.c:652 +#: foreign/foreign.c:662 #, c-format msgid "Perhaps you meant the option \"%s\"." msgstr "おそらくオプション\"%s\"なのではないでしょうか。" -#: foreign/foreign.c:654 +#: foreign/foreign.c:664 #, c-format msgid "There are no valid options in this context." msgstr "このコンテクストで有効なオプションはありません。" -#: gram.y:1234 +#: gram.y:1223 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD は今後サポートされません" -#: gram.y:1235 +#: gram.y:1224 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "UNENCRYPTED を削除してください。そうすれば替わりにパスワードを暗号化形式で格納します。" -#: gram.y:1562 gram.y:1578 +#: gram.y:1551 gram.y:1567 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTSにはスキーマ要素を含めることはできません" -#: gram.y:1730 +#: gram.y:1728 #, c-format msgid "current database cannot be changed" msgstr "現在のデータベースを変更できません" -#: gram.y:1863 +#: gram.y:1869 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "タイムゾーンの間隔はHOURまたはHOUR TO MINUTEでなければなりません" -#: gram.y:2539 +#: gram.y:2501 #, c-format msgid "column number must be in range from 1 to %d" msgstr "列番号は1から%dまでの範囲でなければなりません" -#: gram.y:3135 +#: gram.y:3120 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "シーケンスのオプション\"%s\"はここではサポートされていません" -#: gram.y:3174 +#: gram.y:3159 #, c-format msgid "modulus for hash partition provided more than once" msgstr "ハッシュパーティションで法(除数)が2回以上指定されています" -#: gram.y:3183 +#: gram.y:3168 #, c-format msgid "remainder for hash partition provided more than once" msgstr "ハッシュパーティションで剰余が2回以上指定されています" -#: gram.y:3190 +#: gram.y:3175 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "ハッシュパーティションの境界条件\"%s\"が認識できません" -#: gram.y:3198 +#: gram.y:3183 #, c-format msgid "modulus for hash partition must be specified" msgstr "ハッシュパーティションでは法(除数)の指定が必要です" -#: gram.y:3202 +#: gram.y:3188 #, c-format msgid "remainder for hash partition must be specified" msgstr "ハッシュパーティションでは剰余の指定が必要です" -#: gram.y:3410 gram.y:3444 +#: gram.y:3397 gram.y:3432 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "STDIN/STDOUTはPROGRAMと同時に使用できません" -#: gram.y:3416 +#: gram.y:3403 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "COPY TO で WHERE 句は使用できません" -#: gram.y:3764 gram.y:3771 gram.y:13068 gram.y:13076 +#: gram.y:3752 gram.y:3759 gram.y:13184 gram.y:13192 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "一時テーブル作成におけるGLOBALは廃止予定です" -#: gram.y:4047 +#: gram.y:4041 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "生成カラムに対しては GENERATED ALWAYS の指定が必須です" -#: gram.y:4392 utils/adt/ri_triggers.c:2103 +#: gram.y:4450 utils/adt/ri_triggers.c:2259 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "MMATCH PARTIAL はまだ実装されていません" -#: gram.y:4484 +#: gram.y:4542 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "%sが指定された列リストはON DELETEのアクションに対してのみサポートされます" -#: gram.y:5196 +#: gram.y:5261 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM はすでにサポートされていません" -#: gram.y:5894 +#: gram.y:5959 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "認識できない行セキュリティオプション \"%s\"" -#: gram.y:5895 +#: gram.y:5960 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "現時点ではPERMISSIVEもしくはRESTRICTIVEポリシのみがサポートされています" -#: gram.y:5980 +#: gram.y:6045 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGERはサポートされません" -#: gram.y:6017 +#: gram.y:6083 msgid "duplicate trigger events specified" msgstr "重複したトリガーイベントが指定されました" -#: gram.y:6159 parser/parse_utilcmd.c:3839 parser/parse_utilcmd.c:3865 +#: gram.y:6225 parser/parse_utilcmd.c:3925 parser/parse_utilcmd.c:3951 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "INITIALLY DEFERREDと宣言された制約はDEFERRABLEでなければなりません" -#: gram.y:6166 +#: gram.y:6233 #, c-format msgid "conflicting constraint properties" msgstr "制約属性の競合" -#: gram.y:6265 +#: gram.y:6334 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTIONはまだ実装されていません" -#: gram.y:6582 +#: gram.y:6652 #, c-format msgid "dropping an enum value is not implemented" msgstr "列挙型の値の削除は実装されていません" -#: gram.y:6700 -#, c-format -msgid "RECHECK is no longer required" -msgstr "RECHECK はもはや必要とされません" - -#: gram.y:6701 -#, c-format -msgid "Update your data type." -msgstr "データ型を更新してください" - -#: gram.y:8574 +#: gram.y:8632 #, c-format msgid "aggregates cannot have output arguments" msgstr "集約は出力の引数を持つことができません" -#: gram.y:9037 utils/adt/regproc.c:670 +#: gram.y:9096 utils/adt/regproc.c:670 #, c-format msgid "missing argument" msgstr "引数が足りません" -#: gram.y:9038 utils/adt/regproc.c:671 +#: gram.y:9097 utils/adt/regproc.c:671 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "単項演算子の存在しない引数を表すにはNONEを使用してください。" -#: gram.y:11266 gram.y:11285 +#: gram.y:11325 gram.y:11344 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTIONは再帰ビューではサポートされていません" -#: gram.y:13207 +#: gram.y:13331 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "LIMIT #,#構文は実装されていません" -#: gram.y:13208 +#: gram.y:13332 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "分割してLIMITとOFFSET句を使用してください" -#: gram.y:14083 +#: gram.y:14220 #, c-format msgid "only one DEFAULT value is allowed" msgstr "DEFAULT値は一つだけ指定可能です" -#: gram.y:14092 +#: gram.y:14229 #, c-format msgid "only one PATH value per column is allowed" msgstr "列一つにつきPATH値は一つだけ指定可能です" -#: gram.y:14101 +#: gram.y:14238 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "列\"%s\"でNULL / NOT NULL宣言が衝突しているか重複しています" -#: gram.y:14110 +#: gram.y:14247 #, c-format msgid "unrecognized column option \"%s\"" msgstr "認識できない列オプション \"%s\"" -#: gram.y:14192 +#: gram.y:14329 #, c-format msgid "only string constants are supported in JSON_TABLE path specification" msgstr "JSON_TABLEパス指定では文字列定数のみがサポートされます" -#: gram.y:14514 +#: gram.y:14651 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "浮動小数点数の型の精度は最低でも1ビット必要です" -#: gram.y:14523 +#: gram.y:14660 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "浮動小数点型の精度は54ビットより低くなければなりません" -#: gram.y:15040 +#: gram.y:15177 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "OVERLAPS式の左辺のパラメータ数が間違っています" -#: gram.y:15045 +#: gram.y:15182 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "OVERLAPS式の右辺のパラメータ数が間違っています" -#: gram.y:15222 +#: gram.y:15359 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "UNIQUE 述部はまだ実装されていません" -#: gram.y:15636 +#: gram.y:15773 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "複数のORDER BY句はWITHIN GROUPと一緒には使用できません" -#: gram.y:15641 +#: gram.y:15778 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "DISTINCT は WITHIN GROUP と同時には使えません" -#: gram.y:15646 +#: gram.y:15783 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "VARIADIC は WITHIN GROUP と同時には使えません" -#: gram.y:16373 gram.y:16397 +#: gram.y:16510 gram.y:16534 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "フレームの開始は UNBOUNDED FOLLOWING であってはなりません" -#: gram.y:16378 +#: gram.y:16515 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "次の行から始まるフレームは、現在行では終了できません" -#: gram.y:16402 +#: gram.y:16539 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "フレームの終了は UNBOUNDED PRECEDING であってはなりません" -#: gram.y:16408 +#: gram.y:16545 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "現在行から始まるフレームは、先行する行を含むことができません" -#: gram.y:16415 +#: gram.y:16552 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "次の行から始まるフレームは、先行する行を含むことができません" -#: gram.y:16964 +#: gram.y:17101 #, c-format msgid "unrecognized JSON encoding: %s" msgstr "不明なJSON符号化方式: \"%s\"" -#: gram.y:17288 +#: gram.y:17426 #, c-format msgid "type modifier cannot have parameter name" msgstr "型修正子はパラメータ名を持つことはできません" -#: gram.y:17294 +#: gram.y:17432 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "型修正子はORDER BYを持つことはできません" -#: gram.y:17362 gram.y:17369 gram.y:17376 +#: gram.y:17500 gram.y:17507 gram.y:17514 #, c-format msgid "%s cannot be used as a role name here" msgstr "%sはここではロール名として使用できません" -#: gram.y:17466 gram.y:18955 +#: gram.y:17604 gram.y:19135 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIESはORDER BY句なしでは指定できません" -#: gram.y:18646 gram.y:18821 +#: gram.y:18828 gram.y:19003 msgid "improper use of \"*\"" msgstr "\"*\"の使い方が不適切です" -#: gram.y:18784 gram.y:18801 tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 tsearch/spell.c:1014 tsearch/spell.c:1079 +#: gram.y:18966 gram.y:18983 tsearch/spell.c:965 tsearch/spell.c:982 tsearch/spell.c:999 tsearch/spell.c:1016 tsearch/spell.c:1082 #, c-format msgid "syntax error" msgstr "構文エラー" -#: gram.y:18885 +#: gram.y:19067 #, c-format msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type" msgstr "VARIADIC直接引数を使った順序集合集約は同じデータタイプのVARIADIC集約引数を一つ持つ必要があります" -#: gram.y:18922 +#: gram.y:19104 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "複数のORDER BY句は使用できません" -#: gram.y:18933 +#: gram.y:19115 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "複数のOFFSET句は使用できません" -#: gram.y:18942 +#: gram.y:19124 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "複数のLIMIT句は使用できません" -#: gram.y:18951 -#, c-format -msgid "multiple limit options not allowed" -msgstr "複数のLIMITオプションは使用できません" - -#: gram.y:18978 +#: gram.y:19160 #, c-format msgid "multiple WITH clauses not allowed" msgstr "複数の WITH 句は使用できません" -#: gram.y:19171 +#: gram.y:19358 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "テーブル関数では OUT と INOUT 引数は使用できません" -#: gram.y:19304 +#: gram.y:19492 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "複数の COLLATE 句は使用できません" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19342 gram.y:19355 +#: gram.y:19532 gram.y:19545 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "%s制約は遅延可能にはできません" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19368 +#: gram.y:19558 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "%s制約をNOT VALIDとマークすることはできません" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19381 +#: gram.y:19571 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "%s制約をNO INHERITをマークすることはできません" -#: gram.y:19403 +#. translator: %s is CHECK, UNIQUE, or similar +#: gram.y:19584 +#, c-format +msgid "%s constraints cannot be marked NOT ENFORCED" +msgstr "%s制約をNOT ENFORCEDとマークすることはできません" + +#. translator: %s is CHECK, UNIQUE, or similar +#: gram.y:19606 +#, c-format +msgid "%s constraints cannot be marked ENFORCED" +msgstr "%s制約をENFORCEDとマークすることはできません" + +#: gram.y:19628 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "識別できないパーティションストラテジ \"%s\"" -#: gram.y:19427 +#: gram.y:19652 #, c-format msgid "invalid publication object list" msgstr "不正なパブリケーションオブジェクトリスト" -#: gram.y:19428 +#: gram.y:19653 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." msgstr "テーブル名やスキーマ名を単独記述の前にTABLEまたはTABLES IN SCHEMAのいずれかを指定する必要があります。" -#: gram.y:19444 +#: gram.y:19669 #, c-format msgid "invalid table name" msgstr "不正なテーブル名" -#: gram.y:19465 +#: gram.y:19690 #, c-format msgid "WHERE clause not allowed for schema" msgstr "WHERE句はスキーマに対しては使用できません" -#: gram.y:19472 +#: gram.y:19697 #, c-format msgid "column specification not allowed for schema" msgstr "列指定はスキーマに対しては使用できません" -#: gram.y:19486 +#: gram.y:19711 #, c-format msgid "invalid schema name" msgstr "不正なスキーマ名" -#: guc-file.l:192 +#: guc-file.l:193 #, c-format msgid "empty configuration file name: \"%s\"" msgstr "空の設定ファイル名: \"%s\"" -#: guc-file.l:209 +#: guc-file.l:210 #, c-format msgid "could not open configuration file \"%s\": maximum nesting depth exceeded" msgstr "設定ファイル\"%s\"をオープンできませんでした: 入れ子長が上限を超えています" -#: guc-file.l:229 +#: guc-file.l:230 #, c-format msgid "configuration file recursion in \"%s\"" msgstr "設定ファイル\"%s\"が再帰しています" -#: guc-file.l:245 +#: guc-file.l:246 #, c-format msgid "could not open configuration file \"%s\": %m" msgstr "設定ファイル\"%s\"をオープンできませんでした: %m" -#: guc-file.l:256 +#: guc-file.l:257 #, c-format msgid "skipping missing configuration file \"%s\"" msgstr "存在しない設定ファイル\"%s\"をスキップします" -#: guc-file.l:511 +#: guc-file.l:518 #, c-format msgid "syntax error in file \"%s\" line %u, near end of line" msgstr "ファイル\"%s\"の行%uの行末近辺で構文エラーがありました" -#: guc-file.l:521 +#: guc-file.l:528 #, c-format msgid "syntax error in file \"%s\" line %u, near token \"%s\"" msgstr "ファイル\"%s\"の行%uのトークン\"%s\"近辺で構文エラーがありました" -#: guc-file.l:541 +#: guc-file.l:548 #, c-format msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "多くの構文エラーがありました。ファイル\"%s\"を断念します" -#: jsonpath_gram.y:266 jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 jsonpath_scan.l:661 jsonpath_scan.l:712 utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:658 utils/adt/varlena.c:333 utils/adt/varlena.c:374 +#: jsonpath_gram.y:268 jsonpath_gram.y:600 jsonpath_scan.l:617 jsonpath_scan.l:628 jsonpath_scan.l:638 jsonpath_scan.l:690 utils/adt/encode.c:513 utils/adt/encode.c:578 utils/adt/jsonfuncs.c:661 utils/adt/varlena.c:341 utils/adt/varlena.c:382 #, c-format msgid "invalid input syntax for type %s" msgstr "%s型に対する不正な入力構文" -#: jsonpath_gram.y:267 +#: jsonpath_gram.y:269 #, c-format msgid ".decimal() can only have an optional precision[,scale]." msgstr ".decimal()では\"精度[,スケール]\"のオプションを1つだけ指定可能です" -#: jsonpath_gram.y:599 +#: jsonpath_gram.y:601 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "LIKE_REGEX 述語の中に認識できないフラグ文字\"%.*s\"があります。" -#: jsonpath_gram.y:629 tsearch/spell.c:749 utils/adt/regexp.c:223 +#: jsonpath_gram.y:631 tsearch/spell.c:751 utils/adt/regexp.c:223 #, c-format msgid "invalid regular expression: %s" msgstr "正規表現が不正です: %s" -#: jsonpath_gram.y:677 +#: jsonpath_gram.y:679 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "XQueryの\"x\"フラグ(拡張正規表現)は実装されていません" @@ -14324,48 +14574,48 @@ msgstr "不正な16進文字列" msgid "unexpected end after backslash" msgstr "バックスラッシュの後の想定外の終了" -#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:742 +#: jsonpath_scan.l:201 repl_scanner.l:217 scan.l:742 msgid "unterminated quoted string" msgstr "文字列の引用符が閉じていません" -#: jsonpath_scan.l:228 +#: jsonpath_scan.l:227 msgid "unexpected end of comment" msgstr "コメントの想定外の終了" -#: jsonpath_scan.l:319 +#: jsonpath_scan.l:317 msgid "invalid numeric literal" msgstr "不正なnumericリテラル" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1050 scan.l:1054 scan.l:1058 scan.l:1062 scan.l:1066 scan.l:1070 scan.l:1074 +#: jsonpath_scan.l:322 jsonpath_scan.l:327 jsonpath_scan.l:332 scan.l:1056 scan.l:1060 scan.l:1064 scan.l:1068 msgid "trailing junk after numeric literal" msgstr "数値リテラルの後ろにゴミがあります" #. translator: %s is typically "syntax error" -#: jsonpath_scan.l:375 +#: jsonpath_scan.l:378 #, c-format msgid "%s at end of jsonpath input" msgstr "jsonpath の最後に %s があります" #. translator: first %s is typically "syntax error" -#: jsonpath_scan.l:382 +#: jsonpath_scan.l:385 #, c-format msgid "%s at or near \"%s\" of jsonpath input" msgstr "jsonpath 入力の\"%2$s\"または近くに %1$s があります" -#: jsonpath_scan.l:568 +#: jsonpath_scan.l:545 msgid "invalid input" msgstr "不正な入力" -#: jsonpath_scan.l:594 +#: jsonpath_scan.l:571 msgid "invalid hexadecimal digit" msgstr "不正な16進数桁" -#: jsonpath_scan.l:607 utils/adt/jsonfuncs.c:646 +#: jsonpath_scan.l:584 utils/adt/jsonfuncs.c:649 #, c-format msgid "unsupported Unicode escape sequence" msgstr "サポートされないUnicodeエスケープシーケンス" -#: jsonpath_scan.l:625 +#: jsonpath_scan.l:602 #, c-format msgid "could not convert Unicode to server encoding" msgstr "Unicodeのサーバーエンコーディングへの変換に失敗しました" @@ -14375,684 +14625,851 @@ msgstr "Unicodeのサーバーエンコーディングへの変換に失敗し msgid "Failed on DSA request of size %zu." msgstr "サイズ%zuの動的共有エリアの要求に失敗しました。" -#: libpq/auth-sasl.c:97 -#, c-format -msgid "expected SASL response, got message type %d" -msgstr "SASL応答を想定していましたが、メッセージタイプ%dを受け取りました" - -#: libpq/auth-scram.c:263 +#: libpq/auth-oauth.c:109 libpq/auth-scram.c:267 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "クライアントが無効なSASL認証機構を選択しました" -#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 +#: libpq/auth-oauth.c:169 libpq/auth-oauth.c:174 libpq/auth-oauth.c:192 libpq/auth-oauth.c:220 libpq/auth-oauth.c:230 libpq/auth-oauth.c:239 libpq/auth-oauth.c:254 libpq/auth-oauth.c:263 libpq/auth-oauth.c:272 libpq/auth-oauth.c:279 libpq/auth-oauth.c:342 libpq/auth-oauth.c:349 libpq/auth-oauth.c:375 libpq/auth-oauth.c:420 libpq/auth-oauth.c:438 libpq/auth-oauth.c:452 libpq/auth-oauth.c:472 +#, c-format +msgid "malformed OAUTHBEARER message" +msgstr "不正なフォーマットのOAUTHBEARERメッセージです" + +#: libpq/auth-oauth.c:170 libpq/auth-scram.c:383 +#, c-format +msgid "The message is empty." +msgstr "メッセージが空です。" + +#: libpq/auth-oauth.c:175 libpq/auth-scram.c:388 +#, c-format +msgid "Message length does not match input length." +msgstr "メッセージの長さが入力の長さと一致しません" + +#: libpq/auth-oauth.c:193 +#, c-format +msgid "Client did not send a kvsep response." +msgstr "クライアントは kvsep レスポンスを送信しませんでした。" + +#: libpq/auth-oauth.c:221 +#, c-format +msgid "The server does not support channel binding for OAuth, but the client message includes channel binding data." +msgstr "このサーバーはOAuthのチャンネルバインディングをサポートしていませんが、クライアントからのメッセージにはチャンネルバインディングのデータが含まれています。" + +#: libpq/auth-oauth.c:231 libpq/auth-scram.c:1003 libpq/auth-scram.c:1033 +#, c-format +msgid "Comma expected, but found character \"%s\"." +msgstr "カンマを想定していましたが、文字\"%s\"が見つかりました" + +#: libpq/auth-oauth.c:240 libpq/auth-scram.c:1065 +#, c-format +msgid "Unexpected channel-binding flag \"%s\"." +msgstr "予期しないチャネル割り当てフラグ \"%s\"" + +#: libpq/auth-oauth.c:250 libpq/auth-scram.c:1075 +#, c-format +msgid "client uses authorization identity, but it is not supported" +msgstr "クライアントは認証識別子を使っていますがサポートされていません" + +#: libpq/auth-oauth.c:255 libpq/auth-scram.c:1080 +#, c-format +msgid "Unexpected attribute \"%s\" in client-first-message." +msgstr "client-fist-message での想定外の属性\"%s\"" + +#: libpq/auth-oauth.c:264 +#, c-format +msgid "Key-value separator expected, but found character \"%s\"." +msgstr "キー/値の区切り文字を期待していましたが、文字\"%s\"が見つかりました。" + +#: libpq/auth-oauth.c:273 +#, c-format +msgid "Message does not contain an auth value." +msgstr "メッセージに認証値が含まれていません。" + +#: libpq/auth-oauth.c:280 +#, c-format +msgid "Message contains additional data after the final terminator." +msgstr "メッセージには、最終終端記号の後に追加のデータが含まれています。" + +#: libpq/auth-oauth.c:343 +#, c-format +msgid "Message contains an empty key name." +msgstr "メッセージに空のキー名が含まれています。" + +#: libpq/auth-oauth.c:350 +#, c-format +msgid "Message contains an invalid key name." +msgstr "メッセージに不正なキー名が含まれています。" + +#: libpq/auth-oauth.c:376 +#, c-format +msgid "Message contains an invalid value." +msgstr "メッセージに不正な値が含まれてます。" + +#: libpq/auth-oauth.c:421 +#, c-format +msgid "Message contains an unterminated key/value pair." +msgstr "メッセージに終端されていないキー/値ペアが含まれています。" + +#: libpq/auth-oauth.c:439 +#, c-format +msgid "Message contains a key without a value." +msgstr "メッセージに値を伴わないキーが含まれています。" + +#: libpq/auth-oauth.c:453 +#, c-format +msgid "Message contains multiple auth values." +msgstr "メッセージに複数の認証値が含まれています。" + +#: libpq/auth-oauth.c:473 +#, c-format +msgid "Message did not contain a final terminator." +msgstr "メッセージに最終終端記号がありません。" + +#: libpq/auth-oauth.c:499 +#, c-format +msgid "OAuth is not properly configured for this user" +msgstr "OAuthがこのユーザーに対して適切に設定されていません" + +#: libpq/auth-oauth.c:500 +#, c-format +msgid "The issuer and scope parameters must be set in pg_hba.conf." +msgstr "issuerとscopeのパラメータは pg_hba.conf で設定する必要があります。" + +#: libpq/auth-oauth.c:585 libpq/auth-oauth.c:602 libpq/auth-oauth.c:624 +#, c-format +msgid "malformed OAuth bearer token" +msgstr "不正な形式のBearerトークン" + +#: libpq/auth-oauth.c:586 +#, c-format +msgid "Client response indicated a non-Bearer authentication scheme." +msgstr "クライアントの応答はBearer以外の認証スキームを示していました。" + +#: libpq/auth-oauth.c:603 +#, c-format +msgid "Bearer token is empty." +msgstr "Beareトークンが空です。" + +#: libpq/auth-oauth.c:625 +#, c-format +msgid "Bearer token is not in the correct format." +msgstr "Bearerトークンのフォーマットが正しくありません。" + +#: libpq/auth-oauth.c:656 +#, c-format +msgid "validation of OAuth token requested without a validator loaded" +msgstr "バリデータがロードされていない状態で、OAuthトークンの検証が要求されました" + +#: libpq/auth-oauth.c:665 +#, c-format +msgid "internal error in OAuth validator module" +msgstr "OAuthバリデータの内部エラー" + +#: libpq/auth-oauth.c:679 libpq/auth-oauth.c:703 libpq/auth.c:294 +#, c-format +msgid "OAuth bearer authentication failed for user \"%s\"" +msgstr "ユーザー \"%s\" の OAuth Bearer 認証に失敗しました" + +#: libpq/auth-oauth.c:681 +#, c-format +msgid "Validator failed to authorize the provided token." +msgstr "バリデータは、与えられたトークンを認可できませんでした。" + +#: libpq/auth-oauth.c:705 +#, c-format +msgid "Validator provided no identity." +msgstr "バリデータが識別情報を提供しませんでした。" + +#: libpq/auth-oauth.c:760 +#, c-format +msgid "%s module \"%s\" must define the symbol %s" +msgstr "%s モジュール \"%s\" はシンボル %s を定義する必要があります" + +#: libpq/auth-oauth.c:773 +#, c-format +msgid "%s module \"%s\": magic number mismatch" +msgstr "%s モジュール \"%s\": マジックナンバーが不一致です" + +#: libpq/auth-oauth.c:775 +#, c-format +msgid "Server has magic number 0x%08X, module has 0x%08X." +msgstr "サーバーのマジックナンバーは 0x%08X ですが、モジュールのマジックナンバーは 0x%08X です。" + +#: libpq/auth-oauth.c:784 +#, c-format +msgid "%s module \"%s\" must provide a %s callback" +msgstr "%s モジュール \"%s\" は %s コールバックを実装する必要があります" + +#: libpq/auth-oauth.c:833 +#, c-format +msgid "oauth_validator_libraries must be set for authentication method %s" +msgstr "認証方式 %s では、oauth_validator_libraries を設定しなければなりません。" + +#: libpq/auth-oauth.c:835 libpq/auth-oauth.c:868 libpq/auth-oauth.c:884 libpq/hba.c:331 libpq/hba.c:666 libpq/hba.c:1251 libpq/hba.c:1271 libpq/hba.c:1294 libpq/hba.c:1307 libpq/hba.c:1360 libpq/hba.c:1388 libpq/hba.c:1396 libpq/hba.c:1408 libpq/hba.c:1429 libpq/hba.c:1442 libpq/hba.c:1467 libpq/hba.c:1494 libpq/hba.c:1506 libpq/hba.c:1565 libpq/hba.c:1585 libpq/hba.c:1599 libpq/hba.c:1619 libpq/hba.c:1630 libpq/hba.c:1645 libpq/hba.c:1664 libpq/hba.c:1680 +#: libpq/hba.c:1692 libpq/hba.c:1760 libpq/hba.c:1773 libpq/hba.c:1795 libpq/hba.c:1807 libpq/hba.c:1825 libpq/hba.c:1875 libpq/hba.c:1919 libpq/hba.c:1930 libpq/hba.c:1946 libpq/hba.c:1963 libpq/hba.c:1974 libpq/hba.c:1993 libpq/hba.c:2009 libpq/hba.c:2025 libpq/hba.c:2069 libpq/hba.c:2115 libpq/hba.c:2132 libpq/hba.c:2145 libpq/hba.c:2157 libpq/hba.c:2176 libpq/hba.c:2262 libpq/hba.c:2280 libpq/hba.c:2374 libpq/hba.c:2393 libpq/hba.c:2422 libpq/hba.c:2435 +#: libpq/hba.c:2458 libpq/hba.c:2480 libpq/hba.c:2517 tsearch/ts_locale.c:196 +#, c-format +msgid "line %d of configuration file \"%s\"" +msgstr "設定ファイル \"%2$s\" の %1$d 行目" + +#: libpq/auth-oauth.c:867 +#, c-format +msgid "authentication method \"oauth\" requires argument \"validator\" to be set when oauth_validator_libraries contains multiple options" +msgstr "認証方式 \"oauth\" で、oauth_validator_libraries に複数のオプションを指定する場合は、引数 \"validator\" を設定する必要があります" + +#: libpq/auth-oauth.c:882 +#, c-format +msgid "validator \"%s\" is not permitted by %s" +msgstr "バリデータ \"%s\" は %s により許可されていません" + +#: libpq/auth-sasl.c:89 +#, c-format +msgid "expected SASL response, got message type %d" +msgstr "SASL応答を想定していましたが、メッセージタイプ%dを受け取りました" + +#: libpq/auth-scram.c:291 libpq/auth-scram.c:547 libpq/auth-scram.c:558 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "ユーザー\"%s\"に対する不正なSCRAMシークレット" -#: libpq/auth-scram.c:298 +#: libpq/auth-scram.c:302 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "ユーザー\"%s\"は有効なSCRAMシークレットを持ちません。" -#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:382 libpq/auth-scram.c:387 libpq/auth-scram.c:751 libpq/auth-scram.c:759 libpq/auth-scram.c:864 libpq/auth-scram.c:877 libpq/auth-scram.c:887 libpq/auth-scram.c:995 libpq/auth-scram.c:1002 libpq/auth-scram.c:1017 libpq/auth-scram.c:1032 libpq/auth-scram.c:1046 libpq/auth-scram.c:1064 libpq/auth-scram.c:1079 libpq/auth-scram.c:1392 libpq/auth-scram.c:1400 #, c-format msgid "malformed SCRAM message" msgstr "不正なフォーマットのSCRAMメッセージです" -#: libpq/auth-scram.c:379 -#, c-format -msgid "The message is empty." -msgstr "メッセージが空です。" - -#: libpq/auth-scram.c:384 -#, c-format -msgid "Message length does not match input length." -msgstr "メッセージの長さが入力の長さと一致しません" - -#: libpq/auth-scram.c:416 +#: libpq/auth-scram.c:420 #, c-format msgid "invalid SCRAM response" msgstr "不正なSCRAM応答" -#: libpq/auth-scram.c:417 +#: libpq/auth-scram.c:421 #, c-format msgid "Nonce does not match." msgstr "Nonce が合致しません" -#: libpq/auth-scram.c:493 +#: libpq/auth-scram.c:504 #, c-format msgid "could not generate random salt" msgstr "乱数ソルトを生成できませんでした" -#: libpq/auth-scram.c:738 +#: libpq/auth-scram.c:752 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "属性\"%c\"を想定していましたが、\"%s\"でした。" -#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 +#: libpq/auth-scram.c:760 libpq/auth-scram.c:888 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "属性\"%c\"としては文字\"=\"を想定していました。" -#: libpq/auth-scram.c:851 +#: libpq/auth-scram.c:865 #, c-format msgid "Attribute expected, but found end of string." msgstr "属性を想定しましたが、文字列が終了しました。" -#: libpq/auth-scram.c:864 +#: libpq/auth-scram.c:878 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "属性を想定しましたが、不正な文字\"%s\"でした。" -#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 +#: libpq/auth-scram.c:996 libpq/auth-scram.c:1018 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." msgstr "クライアントは SCRAM-SHA-256-PLUS を選択しましたが、SCRAM メッセージにはチャネルバインディング情報が含まれていません。" -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 -#, c-format -msgid "Comma expected, but found character \"%s\"." -msgstr "カンマを想定していましたが、文字\"%s\"が見つかりました" - -#: libpq/auth-scram.c:1010 +#: libpq/auth-scram.c:1024 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "SCRAM チャネルバインディングのネゴシエーションエラー" -#: libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:1025 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." msgstr "クライアントは SCRAM チャネルバインディングをサポートしていますが、サーバーではサポートされていないと思っています。しかし実際にはサポートしています。" -#: libpq/auth-scram.c:1033 +#: libpq/auth-scram.c:1047 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." msgstr "クライアントはチャネルバインディングなしの SCRAM-SHA-256 を選択しましたが、SCRAM メッセージにはチャネルバインディング情報が含まれています。" -#: libpq/auth-scram.c:1044 +#: libpq/auth-scram.c:1058 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "SCRAM チャネルバインディングタイプ \"%s\"はサポートされていません" -#: libpq/auth-scram.c:1051 -#, c-format -msgid "Unexpected channel-binding flag \"%s\"." -msgstr "予期しないチャネル割り当てフラグ \"%s\"" - -#: libpq/auth-scram.c:1061 -#, c-format -msgid "client uses authorization identity, but it is not supported" -msgstr "クライアントは認証識別子を使っていますがサポートされていません" - -#: libpq/auth-scram.c:1066 -#, c-format -msgid "Unexpected attribute \"%s\" in client-first-message." -msgstr "client-fist-message での想定外の属性\"%s\"" - -#: libpq/auth-scram.c:1082 +#: libpq/auth-scram.c:1096 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "クライアントはサポート外のSCRAM拡張を要求しています" -#: libpq/auth-scram.c:1096 +#: libpq/auth-scram.c:1110 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "SCRAM nonce の中に表示不能な文字があります" -#: libpq/auth-scram.c:1227 +#: libpq/auth-scram.c:1240 #, c-format msgid "could not generate random nonce" msgstr "乱数nonceを生成できませんでした" -#: libpq/auth-scram.c:1237 +#: libpq/auth-scram.c:1250 #, c-format msgid "could not encode random nonce" msgstr "乱数nonceをエンコードできませんでした" -#: libpq/auth-scram.c:1343 +#: libpq/auth-scram.c:1356 #, c-format msgid "SCRAM channel binding check failed" msgstr "SCRAM チャネルバインディングの確認で失敗しました" -#: libpq/auth-scram.c:1361 +#: libpq/auth-scram.c:1374 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "client-final-message 中に想定外の SCRAM channel-binding 属性がありました" -#: libpq/auth-scram.c:1380 +#: libpq/auth-scram.c:1393 #, c-format msgid "Malformed proof in client-final-message." msgstr "client-final-message 中の proof の形式が不正です" -#: libpq/auth-scram.c:1388 +#: libpq/auth-scram.c:1401 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "client-final-message の終端に不要なデータがあります。" -#: libpq/auth.c:269 +#: libpq/auth.c:254 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "ユーザー\"%s\"の認証に失敗しました: ホストを拒絶しました" -#: libpq/auth.c:272 +#: libpq/auth.c:257 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"の\"trust\"認証に失敗しました" -#: libpq/auth.c:275 +#: libpq/auth.c:260 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のIdent認証に失敗しました" -#: libpq/auth.c:278 +#: libpq/auth.c:263 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"で対向(peer)認証に失敗しました" -#: libpq/auth.c:283 +#: libpq/auth.c:268 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のパスワード認証に失敗しました" -#: libpq/auth.c:288 +#: libpq/auth.c:273 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のGSSAPI認証に失敗しました" -#: libpq/auth.c:291 +#: libpq/auth.c:276 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のSSPI認証に失敗しました" -#: libpq/auth.c:294 +#: libpq/auth.c:279 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のPAM認証に失敗しました" -#: libpq/auth.c:297 +#: libpq/auth.c:282 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のBSD認証に失敗しました" -#: libpq/auth.c:300 +#: libpq/auth.c:285 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"のLDAP認証に失敗しました" -#: libpq/auth.c:303 +#: libpq/auth.c:288 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"の証明書認証に失敗しました" -#: libpq/auth.c:306 +#: libpq/auth.c:291 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "ユーザー\"%s\"の RADIUS 認証に失敗しました" -#: libpq/auth.c:309 +#: libpq/auth.c:297 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "ユーザー\"%s\"の認証に失敗しました: 認証方式が不正です" -#: libpq/auth.c:313 +#: libpq/auth.c:301 #, c-format msgid "Connection matched file \"%s\" line %d: \"%s\"" msgstr "接続はファイル%sの行%dに一致しました: \"%s\"" -#: libpq/auth.c:357 +#: libpq/auth.c:346 #, c-format msgid "authentication identifier set more than once" msgstr "認証識別子が2度以上設定されました" -#: libpq/auth.c:358 +#: libpq/auth.c:347 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "以前の識別子: \"%s\"; 新しい識別子: \"%s\"" -#: libpq/auth.c:368 +#: libpq/auth.c:357 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "接続認証完了: 識別名=\"%s\" 方式=%s (%s:%d)" -#: libpq/auth.c:408 +#: libpq/auth.c:397 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "クライアント証明書はルート証明書ストアが利用できる場合にのみ検証されます" -#: libpq/auth.c:419 +#: libpq/auth.c:408 #, c-format msgid "connection requires a valid client certificate" msgstr "この接続には有効なクライアント証明が必要です" -#: libpq/auth.c:450 libpq/auth.c:496 +#: libpq/auth.c:439 libpq/auth.c:485 msgid "GSS encryption" msgstr "GSS暗号化" -#: libpq/auth.c:453 libpq/auth.c:499 +#: libpq/auth.c:442 libpq/auth.c:488 msgid "SSL encryption" msgstr "SSL暗号化" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:444 libpq/auth.c:490 msgid "no encryption" msgstr "暗号化なし" #. translator: last %s describes encryption state -#: libpq/auth.c:461 +#: libpq/auth.c:450 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf の設定でホスト \"%s\"、ユーザー \"%s\", %s 用のレプリケーション接続を拒否しました" #. translator: last %s describes encryption state -#: libpq/auth.c:468 +#: libpq/auth.c:457 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf の設定でホスト \"%s\"、ユーザー \"%s\"、データベース \"%s\", %sの接続を拒否しました" -#: libpq/auth.c:506 +#: libpq/auth.c:495 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "クライアントIPアドレスは\"%s\"に解決され、前方検索と一致しました。" -#: libpq/auth.c:509 +#: libpq/auth.c:498 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "クライアントIPアドレスは\"%s\"に解決されました。前方検索は検査されません。" -#: libpq/auth.c:512 +#: libpq/auth.c:501 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "クライアントIPアドレスは\"%s\"に解決され、前方検索と一致しませんでした。" -#: libpq/auth.c:515 +#: libpq/auth.c:504 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "クライアントのホスト名\"%s\"をIPアドレスに変換できませんでした: %s。" -#: libpq/auth.c:520 +#: libpq/auth.c:509 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "クライアントのIPアドレスをホスト名に解決できませんでした: %s。" #. translator: last %s describes encryption state -#: libpq/auth.c:528 +#: libpq/auth.c:517 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf にホスト\"%s\"、ユーザー\"%s\", %s用のエントリがありません" #. translator: last %s describes encryption state -#: libpq/auth.c:536 +#: libpq/auth.c:525 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf にホスト\"%s\"、ユーザー\"%s\"、データベース\"%s, %s用のエントリがありません" -#: libpq/auth.c:656 +#: libpq/auth.c:649 #, c-format msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" msgstr "接続認証完了: ユーザー=\"%s\" 方式=%s (%s:%d)" -#: libpq/auth.c:725 +#: libpq/auth.c:718 #, c-format msgid "expected password response, got message type %d" msgstr "パスワード応答を想定しましたが、メッセージタイプ%dを受け取りました" -#: libpq/auth.c:746 +#: libpq/auth.c:739 #, c-format msgid "invalid password packet size" msgstr "パスワードパケットのサイズが不正です" -#: libpq/auth.c:764 +#: libpq/auth.c:757 #, c-format msgid "empty password returned by client" msgstr "クライアントから空のパスワードが返されました" -#: libpq/auth.c:892 +#: libpq/auth.c:885 #, c-format msgid "could not generate random MD5 salt" msgstr "ランダムなMD5ソルトの生成に失敗しました" -#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:936 libpq/be-secure-gssapi.c:543 #, c-format msgid "could not set environment: %m" msgstr "環境を設定できません: %m" -#: libpq/auth.c:982 +#: libpq/auth.c:975 #, c-format msgid "expected GSS response, got message type %d" msgstr "GSS応答を想定しましたが、メッセージタイプ %d を受け取りました" -#: libpq/auth.c:1048 +#: libpq/auth.c:1041 msgid "accepting GSS security context failed" msgstr "GSSセキュリティコンテキストの受け付けに失敗しました" -#: libpq/auth.c:1089 +#: libpq/auth.c:1082 msgid "retrieving GSS user name failed" msgstr "GSSユーザー名の受信に失敗しました" -#: libpq/auth.c:1235 +#: libpq/auth.c:1228 msgid "could not acquire SSPI credentials" msgstr "SSPIの資格ハンドルを入手できませんでした" -#: libpq/auth.c:1260 +#: libpq/auth.c:1253 #, c-format msgid "expected SSPI response, got message type %d" msgstr "SSPI応答を想定しましたが、メッセージタイプ%dを受け取りました" -#: libpq/auth.c:1338 +#: libpq/auth.c:1331 msgid "could not accept SSPI security context" msgstr "SSPIセキュリティコンテキストを受け付けられませんでした" -#: libpq/auth.c:1379 +#: libpq/auth.c:1372 msgid "could not get token from SSPI security context" msgstr "SSPIセキュリティコンテキストからトークンを入手できませんでした" -#: libpq/auth.c:1515 libpq/auth.c:1534 +#: libpq/auth.c:1508 libpq/auth.c:1527 #, c-format msgid "could not translate name" msgstr "名前の変換ができませんでした" -#: libpq/auth.c:1547 +#: libpq/auth.c:1540 #, c-format msgid "realm name too long" msgstr "realm名が長すぎます" -#: libpq/auth.c:1562 +#: libpq/auth.c:1555 #, c-format msgid "translated account name too long" msgstr "変換後のアカウント名が長すぎます" -#: libpq/auth.c:1741 +#: libpq/auth.c:1734 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "Ident接続用のソケットを作成できませんでした: %m" -#: libpq/auth.c:1756 +#: libpq/auth.c:1749 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "ローカルアドレス\"%s\"にバインドできませんでした: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1761 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"、ポート%sのIdentサーバーに接続できませんでした: %m" -#: libpq/auth.c:1790 +#: libpq/auth.c:1783 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"、ポート%sのIdentサーバーに問い合わせを送信できませんでした: %m" -#: libpq/auth.c:1807 +#: libpq/auth.c:1800 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"、ポート%sのIdentサーバーからの応答を受信できませんでした: %m" -#: libpq/auth.c:1817 +#: libpq/auth.c:1810 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "Identサーバーからの応答の書式が不正です: \"%s\"" -#: libpq/auth.c:1870 +#: libpq/auth.c:1866 #, c-format msgid "peer authentication is not supported on this platform" msgstr "このプラットフォームでは対向(peer)認証はサポートされていません" -#: libpq/auth.c:1874 +#: libpq/auth.c:1870 #, c-format msgid "could not get peer credentials: %m" msgstr "ピアの資格証明を入手できませんでした: %m" +#: libpq/auth.c:1880 +#, c-format +msgid "could not look up local user ID %ld: %m" +msgstr "ローカルユーザーID %ldの参照に失敗しました: %m" + #: libpq/auth.c:1886 #, c-format -msgid "could not look up local user ID %ld: %s" -msgstr "ローカルユーザーID %ldの参照に失敗しました: %s" +msgid "local user with ID %ld does not exist" +msgstr "ID %ld を持つローカルユーザーは存在しません" -#: libpq/auth.c:1988 +#: libpq/auth.c:1986 #, c-format msgid "error from underlying PAM layer: %s" msgstr "背後のPAM層でエラーがありました: %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1997 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "非サポートのPAM変換%d/\"%s\"" -#: libpq/auth.c:2056 +#: libpq/auth.c:2054 #, c-format msgid "could not create PAM authenticator: %s" msgstr "PAM authenticatorを作成できませんでした: %s" -#: libpq/auth.c:2067 +#: libpq/auth.c:2065 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER)が失敗しました: %s" -#: libpq/auth.c:2099 +#: libpq/auth.c:2097 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST)が失敗しました: %s" -#: libpq/auth.c:2111 +#: libpq/auth.c:2109 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "\"pam_set_item(PAM_CONV)が失敗しました: %s" -#: libpq/auth.c:2124 +#: libpq/auth.c:2122 #, c-format msgid "pam_authenticate failed: %s" msgstr "\"pam_authenticateが失敗しました: %s" -#: libpq/auth.c:2137 +#: libpq/auth.c:2135 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmtが失敗しました: %s" -#: libpq/auth.c:2148 +#: libpq/auth.c:2146 #, c-format msgid "could not release PAM authenticator: %s" msgstr "PAM authenticatorを解放できませんでした: %s" -#: libpq/auth.c:2228 +#: libpq/auth.c:2226 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "LDAPを初期化できませんでした: %d" -#: libpq/auth.c:2265 +#: libpq/auth.c:2263 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "ldapbasedn からドメイン名を抽出できませんでした" -#: libpq/auth.c:2273 +#: libpq/auth.c:2271 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "LDAP認証で\"%s\"に対する DNS SRV レコードが見つかりませんでした" -#: libpq/auth.c:2275 +#: libpq/auth.c:2273 #, c-format msgid "Set an LDAP server name explicitly." msgstr "LDAPサーバー名を明示的に指定してください。" -#: libpq/auth.c:2327 +#: libpq/auth.c:2325 #, c-format msgid "could not initialize LDAP: %s" msgstr "LDAPを初期化できませんでした: %s" -#: libpq/auth.c:2337 +#: libpq/auth.c:2335 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "この LDAP ライブラリでは ldaps はサポートされていません" -#: libpq/auth.c:2345 +#: libpq/auth.c:2343 #, c-format msgid "could not initialize LDAP: %m" msgstr "LDAPを初期化できませんでした: %m" -#: libpq/auth.c:2355 +#: libpq/auth.c:2353 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "LDAPプロトコルバージョンを設定できませんでした: %s" -#: libpq/auth.c:2371 +#: libpq/auth.c:2369 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "LDAP TLSセッションを開始できませんでした: %s" -#: libpq/auth.c:2448 +#: libpq/auth.c:2446 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP サーバーも ldapbasedn も指定されていません" -#: libpq/auth.c:2455 +#: libpq/auth.c:2453 #, c-format msgid "LDAP server not specified" msgstr "LDAP サーバーの指定がありません" -#: libpq/auth.c:2517 +#: libpq/auth.c:2515 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "LDAP 認証でユーザー名の中に不正な文字があります" -#: libpq/auth.c:2534 +#: libpq/auth.c:2532 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "サーバー\"%2$s\"で、ldapbinddn \"%1$s\"によるLDAPバインドを実行できませんでした: %3$s" -#: libpq/auth.c:2564 +#: libpq/auth.c:2562 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "サーバー\"%2$s\"で、フィルタ\"%1$s\"によるLDAP検索ができませんでした: %3$s" -#: libpq/auth.c:2580 +#: libpq/auth.c:2578 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAPサーバー\"%s\"は存在しません" -#: libpq/auth.c:2581 +#: libpq/auth.c:2579 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "サーバー\"%2$s\"で、フィルタ\"%1$s\"によるLDAP検索が何も返しませんでした。" -#: libpq/auth.c:2585 +#: libpq/auth.c:2583 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAPユーザー\"%s\"は一意ではありません" -#: libpq/auth.c:2586 +#: libpq/auth.c:2584 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "サーバー\"%2$s\"で、フィルタ\"%1$s\"によるLDAP検索が%3$d項目返しました。" -#: libpq/auth.c:2606 +#: libpq/auth.c:2604 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "サーバー\"%2$s\"で\"%1$s\"にマッチする最初のエントリの dn を取得できません: %3$s" -#: libpq/auth.c:2633 +#: libpq/auth.c:2631 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "サーバー\"%2$s\"でユーザー\"%1$s\"のLDAPログインが失敗しました: %3$s" -#: libpq/auth.c:2665 +#: libpq/auth.c:2663 #, c-format msgid "LDAP diagnostics: %s" msgstr "LDAP診断: %s" -#: libpq/auth.c:2703 +#: libpq/auth.c:2701 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "ユーザー \"%s\" の証明書認証に失敗しました: クライアント証明書にユーザー名が含まれていません" -#: libpq/auth.c:2724 +#: libpq/auth.c:2722 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "ユーザー\"%s\"の証明書認証に失敗しました: サブジェクト識別名(DN)が取得できません" -#: libpq/auth.c:2747 +#: libpq/auth.c:2745 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "ユーザー\"%s\"に対する証明書の検証(clientcert=verify-full) に失敗しました: DN 不一致" -#: libpq/auth.c:2752 +#: libpq/auth.c:2750 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "ユーザー\"%s\"に対する証明書の検証(clientcert=verify-full) に失敗しました: CN 不一致" -#: libpq/auth.c:2854 +#: libpq/auth.c:2852 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS サーバーが指定されていません" -#: libpq/auth.c:2861 +#: libpq/auth.c:2859 #, c-format msgid "RADIUS secret not specified" msgstr "RADIUS secret が指定されていません" -#: libpq/auth.c:2875 +#: libpq/auth.c:2873 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUS認証では%d文字より長いパスワードはサポートしていません" -#: libpq/auth.c:2977 libpq/hba.c:2352 +#: libpq/auth.c:2975 libpq/hba.c:2391 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "RADIUS サーバー名\"%s\"をアドレスに変換できませんでした: %s" -#: libpq/auth.c:2991 +#: libpq/auth.c:2989 #, c-format msgid "could not generate random encryption vector" msgstr "ランダムな暗号化ベクトルを生成できませんでした" -#: libpq/auth.c:3028 +#: libpq/auth.c:3026 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "パスワードのMD5暗号化に失敗しました: %s" -#: libpq/auth.c:3055 +#: libpq/auth.c:3053 #, c-format msgid "could not create RADIUS socket: %m" msgstr "RADIUSのソケットを作成できませんでした: %m" -#: libpq/auth.c:3071 +#: libpq/auth.c:3069 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "ローカルの RADIUS ソケットをバインドできませんでした: %m" -#: libpq/auth.c:3081 +#: libpq/auth.c:3079 #, c-format msgid "could not send RADIUS packet: %m" msgstr "RADIUS パケットを送信できませんでした: %m" -#: libpq/auth.c:3115 libpq/auth.c:3141 +#: libpq/auth.c:3113 libpq/auth.c:3139 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "%sからのRADIUSの応答待ちがタイムアウトしました" -#: libpq/auth.c:3134 +#: libpq/auth.c:3132 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "RADIUSソケットの状態をチェックできませんでした: %m" -#: libpq/auth.c:3164 +#: libpq/auth.c:3162 #, c-format msgid "could not read RADIUS response: %m" msgstr "RADIUS応答を読めませんでした: %m" -#: libpq/auth.c:3172 +#: libpq/auth.c:3170 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "%sからのRADIUS応答が誤ったポートから送られてきました: %d" -#: libpq/auth.c:3180 +#: libpq/auth.c:3178 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "%sからのRADIUS応答が短すぎます: %d" -#: libpq/auth.c:3187 +#: libpq/auth.c:3185 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "%sからのRADIUS応答が間違った長さを保持しています: %d(実際の長さは%d)" -#: libpq/auth.c:3195 +#: libpq/auth.c:3193 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "%sからのRADIUS応答は異なるリクエストに対するものです: %d (%d であるはず)" @@ -15072,7 +15489,7 @@ msgstr "%sからのRADIUS応答が間違ったMD5シグネチャを保持して msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "%1$sからのRADIUS応答がユーザー\"%3$s\"にとって不正なコード(%2$d)を保持しています" -#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:565 #, c-format msgid "invalid large-object descriptor: %d" msgstr "ラージオブジェクト記述子が不正です: %d" @@ -15082,7 +15499,7 @@ msgstr "ラージオブジェクト記述子が不正です: %d" msgid "large object descriptor %d was not opened for reading" msgstr "ラージオブジェクト記述子 %d は読み込み用にオープンされていませんでした" -#: libpq/be-fsstubs.c:197 libpq/be-fsstubs.c:567 +#: libpq/be-fsstubs.c:197 libpq/be-fsstubs.c:572 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "ラージオブジェクト記述子%dは書き込み用に開かれていませんでした" @@ -15097,32 +15514,32 @@ msgstr "lo_lseekの結果がラージオブジェクト記述子の範囲%dを msgid "lo_tell result out of range for large-object descriptor %d" msgstr "lo_tellの結果がラージオブジェクト記述子の範囲%dを超えています" -#: libpq/be-fsstubs.c:439 +#: libpq/be-fsstubs.c:444 #, c-format msgid "could not open server file \"%s\": %m" msgstr "サーバーファイル\"%s\"をオープンできませんでした: %m" -#: libpq/be-fsstubs.c:462 +#: libpq/be-fsstubs.c:467 #, c-format msgid "could not read server file \"%s\": %m" msgstr "サーバーファイル\"%s\"を読み取れませんでした: %m" -#: libpq/be-fsstubs.c:521 +#: libpq/be-fsstubs.c:526 #, c-format msgid "could not create server file \"%s\": %m" msgstr "サーバーファイル\"%s\"を作成できませんでした: %m" -#: libpq/be-fsstubs.c:533 +#: libpq/be-fsstubs.c:538 #, c-format msgid "could not write server file \"%s\": %m" msgstr "サーバーファイル\"%s\"を書き出せませんでした: %m" -#: libpq/be-fsstubs.c:774 +#: libpq/be-fsstubs.c:779 #, c-format msgid "large object read request is too large" msgstr "ラージオブジェクトの読み込み要求が大きすぎます" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 +#: libpq/be-fsstubs.c:821 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "負の長さを指定することはできません" @@ -15157,805 +15574,840 @@ msgstr "秘密鍵ファイル\"%s\"はグループまたは全員からアクセ 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 "ファイルはデータベースユーザーの所有の場合は u=rw (0600) かそれよりも低いパーミッション、root所有の場合は u=rw,g=r (0640) かそれよりも低いパーミッションである必要があります" -#: libpq/be-secure-gssapi.c:201 +#: libpq/be-secure-gssapi.c:202 msgid "GSSAPI wrap error" msgstr "GSSAPI名ラップエラー" -#: libpq/be-secure-gssapi.c:208 +#: libpq/be-secure-gssapi.c:209 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "送出されるGSSAPIメッセージに機密性が適用されません" -#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 +#: libpq/be-secure-gssapi.c:216 libpq/be-secure-gssapi.c:637 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "サーバーは過大なサイズのGSSAPIパケットを送信しようとしました: (%zu > %zu)" -#: libpq/be-secure-gssapi.c:351 +#: libpq/be-secure-gssapi.c:352 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %zu)" msgstr "過大なサイズのGSSAPIパケットがクライアントから送出されました: (%zu > %zu)" -#: libpq/be-secure-gssapi.c:389 +#: libpq/be-secure-gssapi.c:390 msgid "GSSAPI unwrap error" msgstr "GSSAPIアンラップエラー" -#: libpq/be-secure-gssapi.c:396 +#: libpq/be-secure-gssapi.c:397 #, c-format msgid "incoming GSSAPI message did not use confidentiality" msgstr "到着したGSSAPIメッセージには機密性が適用されていません" -#: libpq/be-secure-gssapi.c:575 +#: libpq/be-secure-gssapi.c:578 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %d)" msgstr "過大なサイズのGSSAPIパケットがクライアントから送出されました: (%zu > %d)" -#: libpq/be-secure-gssapi.c:600 +#: libpq/be-secure-gssapi.c:603 msgid "could not accept GSSAPI security context" msgstr "GSSAPIセキュリティコンテキストを受け入れられませんでした" -#: libpq/be-secure-gssapi.c:701 +#: libpq/be-secure-gssapi.c:704 msgid "GSSAPI size check error" msgstr "GSSAPIサイズチェックエラー" -#: libpq/be-secure-openssl.c:131 +#: libpq/be-secure-openssl.c:118 #, c-format msgid "could not create SSL context: %s" msgstr "SSLコンテキストを作成できませんでした: %s" -#: libpq/be-secure-openssl.c:157 +#: libpq/be-secure-openssl.c:144 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "サーバー証明書ファイル\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:177 +#: libpq/be-secure-openssl.c:164 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "パスフレーズが要求されたため秘密鍵ファイル\"%s\"をリロードできませんでした" -#: libpq/be-secure-openssl.c:182 +#: libpq/be-secure-openssl.c:169 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "秘密鍵ファイル\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:191 +#: libpq/be-secure-openssl.c:178 #, 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:204 libpq/be-secure-openssl.c:227 +#: libpq/be-secure-openssl.c:191 libpq/be-secure-openssl.c:214 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "このビルドでは\"%s\"の\"%s\"への設定はサポートされていません" -#: libpq/be-secure-openssl.c:214 +#: libpq/be-secure-openssl.c:201 #, c-format msgid "could not set minimum SSL protocol version" msgstr "最小SSLプロトコルバージョンを設定できませんでした" -#: libpq/be-secure-openssl.c:237 +#: libpq/be-secure-openssl.c:224 #, c-format msgid "could not set maximum SSL protocol version" msgstr "最大SSLプロトコルバージョンを設定できませんでした" -#: libpq/be-secure-openssl.c:253 +#: libpq/be-secure-openssl.c:241 #, c-format msgid "could not set SSL protocol version range" msgstr "SSLプロトコルバージョンの範囲を設定できませんでした" -#: libpq/be-secure-openssl.c:254 +#: libpq/be-secure-openssl.c:242 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\"は\"%s\"より大きくできません" -#: libpq/be-secure-openssl.c:296 +#: libpq/be-secure-openssl.c:295 +#, c-format +msgid "could not set the TLSv1.2 cipher list (no valid ciphers available)" +msgstr " TLSv1.2 の暗号方式リストが設定できませんでした (有効な暗号方式がありません)" + +#: libpq/be-secure-openssl.c:310 #, c-format -msgid "could not set the cipher list (no valid ciphers available)" -msgstr "暗号方式リストがセットできません (利用可能な暗号方式がありません)" +msgid "could not set the TLSv1.3 cipher suites (no valid ciphers available)" +msgstr " TLSv1.3 の暗号スイートが設定できませんでした (有効な暗号方式がありません)" -#: libpq/be-secure-openssl.c:316 +#: libpq/be-secure-openssl.c:331 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "ルート証明書ファイル\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:365 +#: libpq/be-secure-openssl.c:380 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "SSL証明失効リストファイル\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:373 +#: libpq/be-secure-openssl.c:388 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "SSL証明失効リストディレクトリ\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:381 +#: libpq/be-secure-openssl.c:396 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "SSL証明失効リストファイル\"%s\"またはディレクトリ\"%s\"をロードできませんでした: %s" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:454 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "SSL接続を初期化できませんでした: SSLコンテクストが準備できていません" -#: libpq/be-secure-openssl.c:453 +#: libpq/be-secure-openssl.c:468 #, c-format msgid "could not initialize SSL connection: %s" msgstr "SSL接続を初期化できませんでした: %s" -#: libpq/be-secure-openssl.c:461 +#: libpq/be-secure-openssl.c:476 #, c-format msgid "could not set SSL socket: %s" msgstr "SSLソケットを設定できませんでした: %s" -#: libpq/be-secure-openssl.c:517 +#: libpq/be-secure-openssl.c:532 #, c-format msgid "could not accept SSL connection: %m" msgstr "SSL接続を受け付けられませんでした: %m" -#: libpq/be-secure-openssl.c:521 libpq/be-secure-openssl.c:578 +#: libpq/be-secure-openssl.c:536 libpq/be-secure-openssl.c:593 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "SSL接続を受け付けられませんでした: EOFを検出しました" -#: libpq/be-secure-openssl.c:562 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "could not accept SSL connection: %s" msgstr "SSL接続を受け付けられませんでした: %s" -#: libpq/be-secure-openssl.c:566 +#: libpq/be-secure-openssl.c:581 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "このことは、クライアントがSSLプロトコルのバージョン%sから%sのいずれもサポートしていないことを示唆しているかもしれません。" -#: libpq/be-secure-openssl.c:583 libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:868 +#: libpq/be-secure-openssl.c:598 libpq/be-secure-openssl.c:813 libpq/be-secure-openssl.c:883 #, c-format msgid "unrecognized SSL error code: %d" msgstr "認識できないSSLエラーコード: %d" -#: libpq/be-secure-openssl.c:611 +#: libpq/be-secure-openssl.c:626 #, c-format msgid "received SSL connection request with unexpected ALPN protocol" msgstr "想定外のALPNプロトコルによるSSL接続要求を受信しました" -#: libpq/be-secure-openssl.c:655 +#: libpq/be-secure-openssl.c:670 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "SSL 証明書のコモンネームに null が含まれています" -#: libpq/be-secure-openssl.c:701 +#: libpq/be-secure-openssl.c:716 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "SSL証明書の識別名の途中にnullが含まれています" -#: libpq/be-secure-openssl.c:787 libpq/be-secure-openssl.c:852 +#: libpq/be-secure-openssl.c:802 libpq/be-secure-openssl.c:867 #, c-format msgid "SSL error: %s" msgstr "SSLエラー: %s" -#: libpq/be-secure-openssl.c:1027 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "DHパラメータファイル\"%s\"をオープンできませんでした: %m" -#: libpq/be-secure-openssl.c:1039 +#: libpq/be-secure-openssl.c:1062 #, c-format msgid "could not load DH parameters file: %s" msgstr "DHパラメータをロードできませんでした: %s" -#: libpq/be-secure-openssl.c:1049 +#: libpq/be-secure-openssl.c:1072 #, c-format msgid "invalid DH parameters: %s" msgstr "不正なDHパラメータです: %s" -#: libpq/be-secure-openssl.c:1058 +#: libpq/be-secure-openssl.c:1081 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "不正なDHパラメータ: pは素数ではありません" -#: libpq/be-secure-openssl.c:1067 +#: libpq/be-secure-openssl.c:1090 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "不正なDHパラメータ: 適切な生成器も安全な素数もありません" -#: libpq/be-secure-openssl.c:1203 +#: libpq/be-secure-openssl.c:1226 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "クライアント証明書の検証に深さ%dで失敗しました: %s。" -#: libpq/be-secure-openssl.c:1240 +#: libpq/be-secure-openssl.c:1263 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." msgstr "失敗した証明書の情報(未検証): サブジェクト \"%s\", シリアル番号 %s, 発行者 \"%s\"。" -#: libpq/be-secure-openssl.c:1241 +#: libpq/be-secure-openssl.c:1264 msgid "unknown" msgstr "不明" -#: libpq/be-secure-openssl.c:1378 +#: libpq/be-secure-openssl.c:1401 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: DHパラメータをロードできませんでした" -#: libpq/be-secure-openssl.c:1386 +#: libpq/be-secure-openssl.c:1409 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: DHパラメータを設定できませんでした: %s" -#: libpq/be-secure-openssl.c:1413 +#: libpq/be-secure-openssl.c:1439 #, c-format -msgid "ECDH: unrecognized curve name: %s" -msgstr "ECDH: 認識できない曲線名: %s" +msgid "failed to set group names specified in ssl_groups: %s" +msgstr "ssl_groupsで指定されたグループ名の設定に失敗しました: %s" -#: libpq/be-secure-openssl.c:1422 +#: libpq/be-secure-openssl.c:1441 +msgid "No valid groups found" +msgstr "有効なグループが見つかりませんでした" + +#: libpq/be-secure-openssl.c:1442 #, c-format -msgid "ECDH: could not create key" -msgstr "ECDH: キーを生成できませんでした" +msgid "Ensure that each group name is spelled correctly and supported by the installed version of OpenSSL" +msgstr "すべてのグループ名が正しく記述されおり、インストールされているバージョンのOpenSSLでサポートされていることを確認してください" -#: libpq/be-secure-openssl.c:1450 +#: libpq/be-secure-openssl.c:1488 msgid "no SSL error reported" msgstr "SSLエラーはありませんでした" -#: libpq/be-secure-openssl.c:1467 +#: libpq/be-secure-openssl.c:1506 #, c-format msgid "SSL error code %lu" msgstr "SSLエラーコード: %lu" -#: libpq/be-secure-openssl.c:1624 +#: libpq/be-secure-openssl.c:1663 #, c-format msgid "could not create BIO" msgstr "BIOを作成できませんでした" -#: libpq/be-secure-openssl.c:1634 +#: libpq/be-secure-openssl.c:1673 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "ASN1_OBJECTオブジェクトのNIDを取得できませんでした" -#: libpq/be-secure-openssl.c:1642 +#: libpq/be-secure-openssl.c:1681 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "NID %dをASN1_OBJECT構造体へ変換できませんでした" -#: libpq/crypt.c:48 +#: libpq/crypt.c:50 #, c-format msgid "Role \"%s\" does not exist." msgstr "ロール\"%s\"は存在しません。" -#: libpq/crypt.c:58 +#: libpq/crypt.c:60 #, c-format msgid "User \"%s\" has no password assigned." msgstr "ユーザー\"%s\"はパスワードが設定されていません。" -#: libpq/crypt.c:76 +#: libpq/crypt.c:78 #, c-format msgid "User \"%s\" has an expired password." msgstr "ユーザー\"%s\"のパスワードは期限切れです。" -#: libpq/crypt.c:182 +#: libpq/crypt.c:174 #, c-format -msgid "User \"%s\" has a password that cannot be used with MD5 authentication." -msgstr "ユーザー\"%s\"のパスワードはMD5認証で使用不能です。" +msgid "encrypted password is too long" +msgstr "暗号化されたパスワードが長すぎます" -#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 +#: libpq/crypt.c:175 #, c-format -msgid "Password does not match for user \"%s\"." -msgstr "ユーザー\"%s\"のパスワードが合致しません。" +msgid "Encrypted passwords must be no longer than %d bytes." +msgstr "暗号化されたパスワードは%dバイト以下でなければなりません。" -#: libpq/crypt.c:284 +#: libpq/crypt.c:183 #, c-format -msgid "Password of user \"%s\" is in unrecognized format." -msgstr "ユーザー\"%s\"のパスワードは識別不能な形式です。" +msgid "setting an MD5-encrypted password" +msgstr "MD5暗号化パスワードを設定しています" -#: libpq/hba.c:327 +#: libpq/crypt.c:184 #, c-format -msgid "invalid regular expression \"%s\": %s" -msgstr "不正な正規表現\"%s\": %s" +msgid "MD5 password support is deprecated and will be removed in a future release of PostgreSQL." +msgstr "MD5パスワードは非推奨であり、PostgreSQLの将来のリリースでは廃止される予定です。" -#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 -#: libpq/hba.c:1799 libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 tsearch/ts_locale.c:241 +#: libpq/crypt.c:185 #, c-format -msgid "line %d of configuration file \"%s\"" -msgstr "設定ファイル \"%2$s\" の %1$d 行目" +msgid "Refer to the PostgreSQL documentation for details about migrating to another password type." +msgstr "他のパスワードタイプへの移行の詳細についてはPostgreSQL文書を参照してください。" + +#: libpq/crypt.c:216 +#, c-format +msgid "User \"%s\" has a password that cannot be used with MD5 authentication." +msgstr "ユーザー\"%s\"のパスワードはMD5認証で使用不能です。" + +#: libpq/crypt.c:237 libpq/crypt.c:279 libpq/crypt.c:299 +#, c-format +msgid "Password does not match for user \"%s\"." +msgstr "ユーザー\"%s\"のパスワードが合致しません。" + +#: libpq/crypt.c:318 +#, c-format +msgid "Password of user \"%s\" is in unrecognized format." +msgstr "ユーザー\"%s\"のパスワードは識別不能な形式です。" + +#: libpq/hba.c:329 +#, c-format +msgid "invalid regular expression \"%s\": %s" +msgstr "不正な正規表現\"%s\": %s" -#: libpq/hba.c:457 +#: libpq/hba.c:459 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "存在しない認証設定ファイル\"%s\"をスキップします" -#: libpq/hba.c:609 +#: libpq/hba.c:611 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "ファイル\"%s\"をオープンできませんでした: 入れ子の深さが上限を超えています" -#: libpq/hba.c:1216 +#: libpq/hba.c:1222 #, c-format msgid "error enumerating network interfaces: %m" msgstr "ネットワークインターフェース列挙中のエラー: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1243 +#: libpq/hba.c:1249 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "認証オプション\"%s\"は認証方式%sでのみ有効です" -#: libpq/hba.c:1263 +#: libpq/hba.c:1269 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "認証方式\"%s\"の場合は引数\"%s\"がセットされなければなりません" -#: libpq/hba.c:1287 +#: libpq/hba.c:1293 #, c-format msgid "missing entry at end of line" msgstr "行末の要素が足りません" -#: libpq/hba.c:1300 +#: libpq/hba.c:1306 #, c-format msgid "multiple values in ident field" msgstr "identヂールド内の複数の値" -#: libpq/hba.c:1352 +#: libpq/hba.c:1358 #, c-format msgid "multiple values specified for connection type" msgstr "接続タイプで複数の値が指定されました" -#: libpq/hba.c:1353 +#: libpq/hba.c:1359 #, c-format msgid "Specify exactly one connection type per line." msgstr "1行に1つの接続タイプだけを指定してください" -#: libpq/hba.c:1380 +#: libpq/hba.c:1386 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "SSLが無効なため、hostssl行は照合できません" -#: libpq/hba.c:1381 +#: libpq/hba.c:1387 #, c-format msgid "Set \"ssl = on\" in postgresql.conf." msgstr "postgresql.confで\"ssl = on\"に設定してください。" -#: libpq/hba.c:1389 +#: libpq/hba.c:1395 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "このビルドではhostsslはサポートされていないため、hostssl行は照合できません" -#: libpq/hba.c:1401 +#: libpq/hba.c:1407 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "このビルドでは GSSAPI をサポートしていないため hostgssenc レコードは照合できません" -#: libpq/hba.c:1421 +#: libpq/hba.c:1427 #, c-format msgid "invalid connection type \"%s\"" msgstr "接続オプションタイプ \"%s\" は不正です" -#: libpq/hba.c:1435 +#: libpq/hba.c:1441 #, c-format msgid "end-of-line before database specification" msgstr "データベース指定の前に行末を検出しました" -#: libpq/hba.c:1460 +#: libpq/hba.c:1466 #, c-format msgid "end-of-line before role specification" msgstr "ロール指定の前に行末を検出しました" -#: libpq/hba.c:1487 +#: libpq/hba.c:1493 #, c-format msgid "end-of-line before IP address specification" msgstr "IP アドレス指定の前に行末を検出しました" -#: libpq/hba.c:1498 +#: libpq/hba.c:1504 #, c-format msgid "multiple values specified for host address" msgstr "ホストアドレスで複数の値が指定されました" -#: libpq/hba.c:1499 +#: libpq/hba.c:1505 #, c-format msgid "Specify one address range per line." msgstr "1行に1つのアドレス範囲を指定してください" -#: libpq/hba.c:1557 +#: libpq/hba.c:1563 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "不正なIPアドレス\"%s\": %s" -#: libpq/hba.c:1577 +#: libpq/hba.c:1583 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "ホスト名とCIDRマスクを両方指定するのは不正です: \"%s\"" -#: libpq/hba.c:1591 +#: libpq/hba.c:1597 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "IPアドレス\"%s\"内の CIDR マスクが不正です" -#: libpq/hba.c:1611 +#: libpq/hba.c:1617 #, c-format msgid "end-of-line before netmask specification" msgstr "ネットマスク指定の前に行末を検出しました" -#: libpq/hba.c:1612 +#: libpq/hba.c:1618 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "CIDR記法でアドレス範囲を指定してするか、ネットマスクを分けて指定してください。" -#: libpq/hba.c:1623 +#: libpq/hba.c:1629 #, c-format msgid "multiple values specified for netmask" msgstr "ネットマスクで複数の値が指定されました" -#: libpq/hba.c:1637 +#: libpq/hba.c:1643 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "不正なIPマスク\"%s\": %s" -#: libpq/hba.c:1657 +#: libpq/hba.c:1663 #, c-format msgid "IP address and mask do not match" msgstr "IPアドレスとマスクが一致しません" -#: libpq/hba.c:1673 +#: libpq/hba.c:1679 #, c-format msgid "end-of-line before authentication method" msgstr "認証方式指定の前に行末を検出しました" -#: libpq/hba.c:1684 +#: libpq/hba.c:1690 #, c-format msgid "multiple values specified for authentication type" msgstr "認証タイプで複数の値が指定されました" -#: libpq/hba.c:1685 +#: libpq/hba.c:1691 #, c-format msgid "Specify exactly one authentication type per line." msgstr "認証タイプは1行に1つだけ指定してください。" -#: libpq/hba.c:1750 +#: libpq/hba.c:1758 #, c-format msgid "invalid authentication method \"%s\"" msgstr "不正な認証方式\"%s\"" -#: libpq/hba.c:1763 +#: libpq/hba.c:1771 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "不正な認証方式\"%s\": このビルドではサポートされていません" -#: libpq/hba.c:1786 +#: libpq/hba.c:1794 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "ローカルソケットではgssapi認証はサポートしていません" -#: libpq/hba.c:1798 +#: libpq/hba.c:1806 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "peer認証はローカルソケットでのみサポートしています" -#: libpq/hba.c:1816 +#: libpq/hba.c:1824 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "hostssl接続では証明書認証のみをサポートしています" -#: libpq/hba.c:1866 +#: libpq/hba.c:1874 #, c-format msgid "authentication option not in name=value format: %s" msgstr "認証オプションが 名前=値 形式になっていません: %s" -#: libpq/hba.c:1910 +#: libpq/hba.c:1918 #, c-format -msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" -msgstr "ldapbasedn、 ldapbinddn、ldapbindpasswd、ldapsearchattribute、, ldapsearchfilter またはldapurlは、ldapprefixと同時には指定できません" +msgid "cannot mix options for simple bind and search+bind modes" +msgstr "単純バインドモードと検索+バインドモードのオプションを混在させることはできません" -#: libpq/hba.c:1921 +#: libpq/hba.c:1929 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "\"ldap\"認証方式の場合は引数 \"ldapbasedn\"、\"ldapprefix\"、\"ldapsuffix\"のいずれかを指定してください" -#: libpq/hba.c:1937 +#: libpq/hba.c:1945 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "ldapsearchattribute、ldapsearchfilter と同時には指定できません" -#: libpq/hba.c:1954 +#: libpq/hba.c:1962 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "RADIUSサーバーのリストは空にはできません" -#: libpq/hba.c:1965 +#: libpq/hba.c:1973 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "RADIUSシークレットのリストは空にはできません" -#: libpq/hba.c:1982 +#: libpq/hba.c:1990 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "RADIUSシークレットの数(%d)は1またはRADIUSサーバーの数(%d)と同じである必要があります" -#: libpq/hba.c:1998 +#: libpq/hba.c:2006 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "RADIUSポートの数(%d)は1またはRADIUSサーバーの数(%d)と同じである必要があります" -#: libpq/hba.c:2014 +#: libpq/hba.c:2022 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "RADIUS識別子の数(%d)は1またはRADIUSサーバーの数(%d)と同じである必要があります" +#. translator: strings are replaced with hba options +#: libpq/hba.c:2067 +#, c-format +msgid "%s cannot be used in combination with %s" +msgstr "%s は %s と同時に使用できません" + # -#: libpq/hba.c:2066 -msgid "ident, peer, gssapi, sspi, and cert" -msgstr "ident、peer、gssapi、sspiおよびcert" +#: libpq/hba.c:2105 +msgid "ident, peer, gssapi, sspi, cert, and oauth" +msgstr "ident、peer、gssapi、sspi、cert および oauth" -#: libpq/hba.c:2075 +#: libpq/hba.c:2114 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "クライアント証明書は\"hostssl\"の行でのみ設定できます" -#: libpq/hba.c:2092 +#: libpq/hba.c:2131 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "\"cert\"認証使用時はclientcertは\"verify-full\"にしか設定できません" -#: libpq/hba.c:2105 +#: libpq/hba.c:2144 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "clientcertの値が不正です: \"%s\"" -#: libpq/hba.c:2117 +#: libpq/hba.c:2156 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "クライアント名は\"hostssl\"の行でのみ設定できます" -#: libpq/hba.c:2136 +#: libpq/hba.c:2175 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "clientnameの値が不正です: \"%s\"" -#: libpq/hba.c:2169 +#: libpq/hba.c:2208 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "LDAP URL\"%s\"をパースできませんでした: %s" -#: libpq/hba.c:2180 +#: libpq/hba.c:2219 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "非サポートのLDAP URLコード: %s" -#: libpq/hba.c:2204 +#: libpq/hba.c:2243 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "このプラットフォームではLDAP URLをサポートしていません。" -#: libpq/hba.c:2222 +#: libpq/hba.c:2261 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "不正な ldapscheme の値: \"%s\"" -#: libpq/hba.c:2240 +#: libpq/hba.c:2279 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "不正なLDAPポート番号です: \"%s\"" # -#: libpq/hba.c:2286 libpq/hba.c:2293 +#: libpq/hba.c:2325 libpq/hba.c:2332 msgid "gssapi and sspi" msgstr "gssapiおよびsspi" -#: libpq/hba.c:2302 libpq/hba.c:2311 +#: libpq/hba.c:2341 libpq/hba.c:2350 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2333 +#: libpq/hba.c:2372 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "RADIUSサーバーのリスト\"%s\"のパースに失敗しました" -#: libpq/hba.c:2381 +#: libpq/hba.c:2420 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "RADIUSポートのリスト\"%s\"のパースに失敗しました" -#: libpq/hba.c:2395 +#: libpq/hba.c:2434 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "不正なRADIUSポート番号: \"%s\"" -#: libpq/hba.c:2417 +#: libpq/hba.c:2456 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "RADIUSシークレットのリスト\"%s\"のパースに失敗しました" -#: libpq/hba.c:2439 +#: libpq/hba.c:2478 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "RADIUS識別子のリスト\"%s\"のパースに失敗しました" -#: libpq/hba.c:2453 +#: libpq/hba.c:2515 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "認証オプション名を認識できません: \"%s\"" -#: libpq/hba.c:2645 +#: libpq/hba.c:2707 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "設定ファイル\"%s\"には何も含まれていません" -#: libpq/hba.c:2798 +#: libpq/hba.c:2860 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "正規表現\"%s\"で照合に失敗しました: %s" -#: libpq/hba.c:2822 +#: libpq/hba.c:2884 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "正規表現\"%s\"には\"%s\"における後方参照が要求する副表現が含まれていません" -#: libpq/hba.c:2925 +#: libpq/hba.c:2987 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "与えられたユーザー名 (%s) と認証されたユーザー名 (%s) が一致しません" -#: libpq/hba.c:2945 +#: libpq/hba.c:3007 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "\"%3$s\"として認証されたユーザー\"%2$s\"はユーザーマップ\"%1$s\"に一致しません" -#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#: libpq/pqcomm.c:212 libpq/pqcomm.c:220 libpq/pqcomm.c:251 libpq/pqcomm.c:260 libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s)が失敗しました: %m" -#: libpq/pqcomm.c:296 +#: libpq/pqcomm.c:297 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "ソケットを非ブロッキングモードに設定できませんでした: %m" -#: libpq/pqcomm.c:456 +#: libpq/pqcomm.c:457 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unixドメインソケットのパス\"%s\"が長すぎます(最大 %d バイト)" -#: libpq/pqcomm.c:476 +#: libpq/pqcomm.c:477 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "ホスト名\"%s\"、サービス\"%s\"をアドレスに変換できませんでした: %s" -#: libpq/pqcomm.c:480 +#: libpq/pqcomm.c:481 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "サービス\"%s\"をアドレスに変換できませんでした: %s" -#: libpq/pqcomm.c:502 +#: libpq/pqcomm.c:503 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "要求されたアドレスを全てバインドできませんでした: MAXLISTEN (%d)を超えています" -#: libpq/pqcomm.c:511 +#: libpq/pqcomm.c:512 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:514 +#: libpq/pqcomm.c:515 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:517 +#: libpq/pqcomm.c:518 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:521 +#: libpq/pqcomm.c:522 #, c-format msgid "unrecognized address family %d" msgstr "アドレスファミリ %d を認識できません" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:545 +#: libpq/pqcomm.c:546 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "アドレス\"%s\"に対する%sソケットの作成に失敗しました: %m" -#. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 +#. translator: third %s is IPv4 or IPv6 +#. translator: third %s is IPv6 +#: libpq/pqcomm.c:575 libpq/pqcomm.c:593 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%3$sアドレス%4$sに対する%1$s(%2$s)が失敗しました: %5$m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:615 +#: libpq/pqcomm.c:616 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "%sアドレス\"%s\"のbindに失敗しました: %m" -#: libpq/pqcomm.c:619 +#: libpq/pqcomm.c:620 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "すでに他のpostmasterがポート%dで稼動していませんか?" -#: libpq/pqcomm.c:621 +#: libpq/pqcomm.c:622 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "すでに他にpostmasterがポート%dで稼動していませんか? 稼動していなければ数秒待ってから再試行してください。" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:650 +#: libpq/pqcomm.c:651 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "%sアドレス\"%s\"のlistenに失敗しました: %m" -#: libpq/pqcomm.c:658 +#: libpq/pqcomm.c:659 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "Unixソケット\"%s\"で待ち受けています" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:663 +#: libpq/pqcomm.c:664 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "%sアドレス\"%s\"、ポート%dで待ち受けています" -#: libpq/pqcomm.c:753 +#: libpq/pqcomm.c:754 #, c-format msgid "group \"%s\" does not exist" msgstr "グループ\"%s\"は存在しません" -#: libpq/pqcomm.c:763 +#: libpq/pqcomm.c:764 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "ファイル\"%s\"のグループを設定できませんでした: %m" -#: libpq/pqcomm.c:774 +#: libpq/pqcomm.c:775 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "ファイル\"%s\"の権限を設定できませんでした: %m" -#: libpq/pqcomm.c:803 +#: libpq/pqcomm.c:804 #, c-format msgid "could not accept new connection: %m" msgstr "新しい接続を受け付けることができませんでした: %m" -#: libpq/pqcomm.c:885 +#: libpq/pqcomm.c:886 #, c-format msgid "there is no client connection" msgstr "クライアント接続がありません" -#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 +#: libpq/pqcomm.c:942 libpq/pqcomm.c:1043 #, c-format msgid "could not receive data from client: %m" msgstr "クライアントからデータを受信できませんでした: %m" -#: libpq/pqcomm.c:1149 tcop/postgres.c:4446 +#: libpq/pqcomm.c:1151 tcop/postgres.c:4505 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "プロトコルの同期が失われたためコネクションを終了します" -#: libpq/pqcomm.c:1215 +#: libpq/pqcomm.c:1217 #, c-format msgid "unexpected EOF within message length word" msgstr "メッセージ長ワード内のEOFは想定外です" -#: libpq/pqcomm.c:1225 +#: libpq/pqcomm.c:1227 #, c-format msgid "invalid message length" msgstr "メッセージ長が不正です" -#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 +#: libpq/pqcomm.c:1249 libpq/pqcomm.c:1262 #, c-format msgid "incomplete message from client" msgstr "クライアントからのメッセージが不完全です" -#: libpq/pqcomm.c:1401 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "クライアントにデータを送信できませんでした: %m" -#: libpq/pqcomm.c:1616 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s)が失敗しました: エラーコード %d" -#: libpq/pqcomm.c:1705 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "キープアライブのアイドル時間の設定はサポートされていません" -#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s)はサポートされていません" @@ -15965,7 +16417,7 @@ msgstr "%s(%s)はサポートされていません" msgid "no data left in message" msgstr "メッセージ内にデータが残っていません" -#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 utils/adt/rowtypes.c:613 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 utils/adt/array_userfuncs.c:873 utils/adt/arrayfuncs.c:1481 utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "メッセージ内に残るデータが不十分です" @@ -15980,12 +16432,12 @@ msgstr "メッセージ内の文字列が不正です" msgid "invalid message format" msgstr "メッセージの書式が不正です" -#: main/main.c:234 +#: main/main.c:298 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: WSAStartupが失敗しました: %d\n" -#: main/main.c:322 +#: main/main.c:386 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -15994,7 +16446,7 @@ msgstr "" "%sはPostgreSQLサーバーです\n" "\n" -#: main/main.c:323 +#: main/main.c:387 #, c-format msgid "" "Usage:\n" @@ -16005,107 +16457,107 @@ msgstr "" " %s [オプション]...\n" "\n" -#: main/main.c:324 +#: main/main.c:388 #, c-format msgid "Options:\n" msgstr "オプション:\n" -#: main/main.c:325 +#: main/main.c:389 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS 共有バッファの数\n" -#: main/main.c:326 +#: main/main.c:390 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c NAME=VALUE 実行時パラメータの設定\n" -#: main/main.c:327 +#: main/main.c:391 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NAME 実行時パラメータの値を表示し、終了\n" -#: main/main.c:328 +#: main/main.c:392 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 デバッグレベル\n" -#: main/main.c:329 +#: main/main.c:393 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR データベースディレクトリ\n" -#: main/main.c:330 +#: main/main.c:394 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e ヨーロッパ式の日付フォーマットでの入力(DMY)\n" -#: main/main.c:331 +#: main/main.c:395 #, c-format msgid " -F turn fsync off\n" msgstr " -F fsyncを無効にする\n" -#: main/main.c:332 +#: main/main.c:396 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h HOSTNAME 接続を待ち受けるホスト名またはIPアドレス\n" -#: main/main.c:333 +#: main/main.c:397 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr " -i TCP/IP接続を有効にする (非推奨)\n" -#: main/main.c:334 +#: main/main.c:398 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k DIRECTORY Unixドメインソケットの場所\n" -#: main/main.c:336 +#: main/main.c:400 #, c-format msgid " -l enable SSL connections\n" msgstr " -l SSL接続を有効にする\n" -#: main/main.c:338 +#: main/main.c:402 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-CONNECT 許容する最大接続数\n" -#: main/main.c:339 +#: main/main.c:403 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PORT 接続を待ち受けるポート番号\n" -#: main/main.c:340 +#: main/main.c:404 #, c-format msgid " -s show statistics after each query\n" msgstr " -s 各問い合わせの後に統計情報を表示\n" -#: main/main.c:341 +#: main/main.c:405 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM ソート用のメモリ量 (KB単位)\n" -#: main/main.c:342 +#: main/main.c:406 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示し、終了\n" -#: main/main.c:343 +#: main/main.c:407 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NAME=VALUE 実行時パラメータを設定\n" -#: main/main.c:344 +#: main/main.c:408 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config 設定パラメータの説明を出力し、終了\n" -#: main/main.c:345 +#: main/main.c:409 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示し、終了\n" -#: main/main.c:347 +#: main/main.c:411 #, c-format msgid "" "\n" @@ -16114,39 +16566,39 @@ msgstr "" "\n" "開発者向けオプション:\n" -#: main/main.c:348 +#: main/main.c:412 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h いくつかのプランタイプを禁止\n" -#: main/main.c:349 +#: main/main.c:413 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O システムテーブル構造の変更を許可\n" -#: main/main.c:350 +#: main/main.c:414 #, c-format msgid " -P disable system indexes\n" msgstr " -P システムインデックスを無効にする\n" -#: main/main.c:351 +#: main/main.c:415 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex 各問い合わせの後に時間情報を表示\n" -#: main/main.c:352 +#: main/main.c:416 #, c-format msgid " -T send SIGABRT to all backend processes if one dies\n" msgstr "" " -T ひとつのバックエンドプロセスが異常停止した時に全ての\n" " バックエンドプロセスにSIGABRTを送信\n" -#: main/main.c:353 +#: main/main.c:417 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W NUM デバッガをアタッチできるようにNUM秒待機\n" -#: main/main.c:355 +#: main/main.c:419 #, c-format msgid "" "\n" @@ -16155,39 +16607,39 @@ msgstr "" "\n" "シングルユーザーモード用のオプション:\n" -#: main/main.c:356 +#: main/main.c:420 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr "" " --single シングルユーザーモードを選択(最初の引数でなければ\n" " なりません)\n" -#: main/main.c:357 +#: main/main.c:421 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME データベース名 (デフォルトはユーザー名)\n" -#: main/main.c:358 +#: main/main.c:422 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 デバッグレベルを上書き\n" -#: main/main.c:359 +#: main/main.c:423 #, c-format msgid " -E echo statement before execution\n" msgstr " -E 実行前に文を表示\n" -#: main/main.c:360 +#: main/main.c:424 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j 対話式問い合わせの区切りとして改行を使用しない\n" -#: main/main.c:361 main/main.c:367 +#: main/main.c:425 main/main.c:431 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r FILENAME 標準出力と標準エラー出力を指定したファイルに出力\n" -#: main/main.c:363 +#: main/main.c:427 #, c-format msgid "" "\n" @@ -16196,22 +16648,22 @@ msgstr "" "\n" "初期起動用のオプション:\n" -#: main/main.c:364 +#: main/main.c:428 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot 初期起動モードを選択 (最初の引数でなければなりません)\n" -#: main/main.c:365 +#: main/main.c:429 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check チェックモードを選択 (最初の引数でなければなりません)\n" -#: main/main.c:366 +#: main/main.c:430 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAME データベース名 (初期起動モードでは必須の引数)\n" -#: main/main.c:369 +#: main/main.c:433 #, c-format msgid "" "\n" @@ -16227,12 +16679,12 @@ msgstr "" "\n" "不具合は<%s>まで報告してください。\n" -#: main/main.c:373 +#: main/main.c:437 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: main/main.c:384 +#: main/main.c:448 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -16245,12 +16697,12 @@ msgstr "" "する必要があります。適切なサーバーの起動方法に関する詳細はドキュメントを\n" "参照してください\n" -#: main/main.c:401 +#: main/main.c:465 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: 実ユーザーIDと実効ユーザーIDは一致しなければなりません\n" -#: main/main.c:408 +#: main/main.c:472 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -16274,12 +16726,12 @@ msgstr "拡張可能ノードタイプ\"%s\"はすでに存在します" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods \"%s\"は登録されていません" -#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 +#: nodes/makefuncs.c:154 nodes/makefuncs.c:180 statistics/extended_stats.c:2306 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "リレーション\"%s\"は複合型を持っていません" -#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2567 parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 utils/fmgr/funcapi.c:669 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2602 parser/parse_coerce.c:2740 parser/parse_coerce.c:2787 parser/parse_expr.c:2118 parser/parse_func.c:710 parser/parse_oper.c:869 utils/adt/array_userfuncs.c:1950 utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "データ型%sの配列型がありませんでした" @@ -16294,763 +16746,784 @@ msgstr "パラメータを持つポータル\"%s\": %s" msgid "unnamed portal with parameters: %s" msgstr "パラメータを持つ無名ポータル: %s" -#: optimizer/path/joinrels.c:972 +#: optimizer/path/joinrels.c:973 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN はマージ結合可能もしくはハッシュ結合可能な場合のみサポートされています" -#: optimizer/plan/createplan.c:7162 parser/parse_merge.c:203 rewrite/rewriteHandler.c:1695 +#: optimizer/plan/createplan.c:7250 parser/parse_merge.c:203 rewrite/rewriteHandler.c:1689 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "リレーション\"%s\"に対してMERGEは実行できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1407 +#: optimizer/plan/initsplan.c:1755 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "外部結合のNULL可な側では%sを適用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 parser/analyze.c:3247 +#: optimizer/plan/planner.c:1459 parser/analyze.c:1900 parser/analyze.c:2159 parser/analyze.c:3480 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "UNION/INTERSECT/EXCEPTでは%sを使用できません" -#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4107 +#: optimizer/plan/planner.c:2202 optimizer/plan/planner.c:4045 #, c-format msgid "could not implement GROUP BY" msgstr "GROUP BY を実行できませんでした" -#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4108 optimizer/plan/planner.c:4789 optimizer/prep/prepunion.c:1320 +#: optimizer/plan/planner.c:2203 optimizer/plan/planner.c:4046 optimizer/plan/planner.c:4727 optimizer/prep/prepunion.c:1073 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "一部のデータ型がハッシュのみをサポートする一方で、別の型はソートのみをサポートしています。" -#: optimizer/plan/planner.c:4788 +#: optimizer/plan/planner.c:4726 #, c-format msgid "could not implement DISTINCT" msgstr "DISTINCTを実行できませんでした" -#: optimizer/plan/planner.c:6133 +#: optimizer/plan/planner.c:6188 #, c-format msgid "could not implement window PARTITION BY" msgstr "ウィンドウの PARTITION BY を実行できませんでした" -#: optimizer/plan/planner.c:6134 +#: optimizer/plan/planner.c:6189 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "ウィンドウ分割に使用する列は、ソート可能なデータ型でなければなりません。" -#: optimizer/plan/planner.c:6138 +#: optimizer/plan/planner.c:6193 #, c-format msgid "could not implement window ORDER BY" msgstr "ウィンドウの ORDER BY を実行できませんでした" -#: optimizer/plan/planner.c:6139 +#: optimizer/plan/planner.c:6194 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "ウィンドウの順序付けをする列は、ソート可能なデータ型でなければなりません。" -#: optimizer/prep/prepunion.c:467 +#: optimizer/prep/prepunion.c:440 #, c-format msgid "could not implement recursive UNION" msgstr "再帰UNIONを実行できませんでした" -#: optimizer/prep/prepunion.c:468 +#: optimizer/prep/prepunion.c:441 #, c-format msgid "All column datatypes must be hashable." msgstr "すべての列のデータ型はハッシュ可能でなければなりません。" -#. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1319 +#. translator: %s is INTERSECT or EXCEPT +#: optimizer/prep/prepunion.c:1071 #, c-format msgid "could not implement %s" msgstr "%sを実行できませんでした" -#: optimizer/util/clauses.c:4951 +#: optimizer/util/appendinfo.c:165 +#, c-format +msgid "attribute \"%s\" of relation \"%s\" does not match parent's type" +msgstr "リレーション\"%2$s\"の属性\"%1$s\"は親での型と一致していません" + +#: optimizer/util/appendinfo.c:170 +#, c-format +msgid "attribute \"%s\" of relation \"%s\" does not match parent's collation" +msgstr "リレーション\"%2$s\"の属性\"%1$s\"は親での照合順序と一致していません" + +#: optimizer/util/clauses.c:4966 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL関数\"%s\"のインライン化処理中" -#: optimizer/util/plancat.c:152 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "リカバリ中は一時テーブルやUNLOGGEDテーブルにはアクセスできません" -#: optimizer/util/plancat.c:754 +#: optimizer/util/plancat.c:770 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "行全体に渡るユニークインデックスの推定指定はサポートされていません" -#: optimizer/util/plancat.c:771 +#: optimizer/util/plancat.c:787 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "ON CONFLICT句中の制約には関連付けられるインデックスがありません" -#: optimizer/util/plancat.c:821 +#: optimizer/util/plancat.c:837 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATEでの排除制約の使用はサポートされていません" -#: optimizer/util/plancat.c:926 +#: optimizer/util/plancat.c:954 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "ON CONFLICT 指定に合致するユニーク制約または排除制約がありません" -#: parser/analyze.c:824 parser/analyze.c:1550 +#: parser/analyze.c:954 parser/analyze.c:1679 #, c-format msgid "VALUES lists must all be the same length" msgstr "VALUESリストはすべて同じ長さでなければなりません" -#: parser/analyze.c:1027 +#: parser/analyze.c:1156 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERTに対象列よりも多くの式があります" -#: parser/analyze.c:1045 +#: parser/analyze.c:1174 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERTに式よりも多くの対象列があります" -#: parser/analyze.c:1049 +#: parser/analyze.c:1178 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "挿入ソースがINSERTが期待するのと同じ列数を含む行表現になっています。うっかり余計なカッコをつけたりしませんでしたか?" -#: parser/analyze.c:1357 parser/analyze.c:1744 +#: parser/analyze.c:1486 parser/analyze.c:1873 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "ここではSELECT ... INTOは許可されません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1673 parser/analyze.c:3479 +#: parser/analyze.c:1802 parser/analyze.c:3712 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%sをVALUESに使用できません" -#: parser/analyze.c:1911 +#: parser/analyze.c:2040 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "不正なUNION/INTERSECT/EXCEPT ORDER BY句です" -#: parser/analyze.c:1912 +#: parser/analyze.c:2041 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "式や関数ではなく、結果列の名前のみが使用できます。" -#: parser/analyze.c:1913 +#: parser/analyze.c:2042 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "式/関数をすべてのSELECTにつけてください。またはこのUNIONをFROM句に移動してください。" -#: parser/analyze.c:2019 +#: parser/analyze.c:2149 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTOはUNION/INTERSECT/EXCEPTの最初のSELECTでのみ使用できます" -#: parser/analyze.c:2091 +#: parser/analyze.c:2221 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "UNION/INTERSECT/EXCEPTの要素となる文では同一問い合わせレベルの他のリレーションを参照できません" -#: parser/analyze.c:2178 +#: parser/analyze.c:2308 #, c-format msgid "each %s query must have the same number of columns" msgstr "すべての%s問い合わせは同じ列数を返す必要があります" -#: parser/analyze.c:2535 +#: parser/analyze.c:2665 #, c-format msgid "SET target columns cannot be qualified with the relation name." msgstr "SETの対象列はリレーション名で修飾することはできません。" -#: parser/analyze.c:2589 +#. translator: %s is OLD or NEW +#: parser/analyze.c:2753 parser/analyze.c:2763 +#, c-format +msgid "%s cannot be specified multiple times" +msgstr "%s は複数回指定できません" + +#: parser/analyze.c:2775 parser/parse_relation.c:473 +#, c-format +msgid "table name \"%s\" specified more than once" +msgstr "テーブル名\"%s\"が複数指定されました" + +#: parser/analyze.c:2823 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNINGには少なくとも1つの列が必要です" -#: parser/analyze.c:2692 +#: parser/analyze.c:2925 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "代入元が%d個の列を返しました" -#: parser/analyze.c:2753 +#: parser/analyze.c:2986 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "変数\"%s\"は型%sですが、式は型%sでした" #. translator: %s is a SQL keyword -#: parser/analyze.c:2878 parser/analyze.c:2886 +#: parser/analyze.c:3111 parser/analyze.c:3119 #, c-format msgid "cannot specify both %s and %s" msgstr "%sと%sの両方を同時には指定できません" -#: parser/analyze.c:2906 +#: parser/analyze.c:3139 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR では WITH にデータを変更する文を含んではなりません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2914 +#: parser/analyze.c:3147 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %sはサポートされていません" -#: parser/analyze.c:2917 +#: parser/analyze.c:3150 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "保持可能カーソルは読み取り専用である必要があります。" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2925 +#: parser/analyze.c:3158 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %sはサポートされていません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2936 +#: parser/analyze.c:3169 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %sはが不正です" -#: parser/analyze.c:2939 +#: parser/analyze.c:3172 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "INSENSITIVEカーソルは読み取り専用である必要があります。" -#: parser/analyze.c:3033 +#: parser/analyze.c:3266 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "実体化ビューではWITH句にデータを変更する文を含んではなりません" -#: parser/analyze.c:3043 +#: parser/analyze.c:3276 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "実体化ビューでは一時テーブルやビューを使用してはいけません" -#: parser/analyze.c:3053 +#: parser/analyze.c:3286 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "実体化ビューは境界パラメータを用いて定義してはなりません" -#: parser/analyze.c:3065 +#: parser/analyze.c:3298 #, c-format msgid "materialized views cannot be unlogged" msgstr "実体化ビューをログ非取得にはできません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3254 +#: parser/analyze.c:3487 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "DISTINCT句では%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3261 +#: parser/analyze.c:3494 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "GROUP BY句で%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3268 +#: parser/analyze.c:3501 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "HAVING 句では%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3275 +#: parser/analyze.c:3508 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "集約関数では%sは使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3282 +#: parser/analyze.c:3515 #, c-format msgid "%s is not allowed with window functions" msgstr "ウィンドウ関数では%sは使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3289 +#: parser/analyze.c:3522 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "ターゲットリストの中では%sを集合返却関数と一緒に使うことはできません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3388 +#: parser/analyze.c:3621 #, 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:3452 +#: parser/analyze.c:3685 #, 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:3461 +#: parser/analyze.c:3694 #, 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:3470 +#: parser/analyze.c:3703 #, 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:3488 +#: parser/analyze.c:3721 #, 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:3497 +#: parser/analyze.c:3730 #, 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:3517 +#: parser/analyze.c:3750 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "%2$s句のリレーション\"%1$s\"はFROM句にありません" -#: parser/parse_agg.c:210 parser/parse_oper.c:215 +#: parser/parse_agg.c:215 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "型%sの順序演算子を特定できませんでした" -#: parser/parse_agg.c:212 +#: parser/parse_agg.c:217 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "DISTINCT 付きの集約関数は、入力がソート可能である必要があります。" -#: parser/parse_agg.c:270 +#: parser/parse_agg.c:275 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPINGの引数は32より少くなければなりません" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:378 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "JOIN条件で集約関数を使用できません" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:380 msgid "grouping operations are not allowed in JOIN conditions" msgstr "グルーピング演算はJOIN条件の中では使用できません" -#: parser/parse_agg.c:387 +#: parser/parse_agg.c:390 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "集約関数は自身の問い合わせレベルのFROM句の中では使用できません" -#: parser/parse_agg.c:389 +#: parser/parse_agg.c:392 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "グルーピング演算は自身のクエリレベルのFROM句の中では使用できません" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:397 msgid "aggregate functions are not allowed in functions in FROM" msgstr "集約関数はFROM句内の関数では使用できません" -#: parser/parse_agg.c:396 +#: parser/parse_agg.c:399 msgid "grouping operations are not allowed in functions in FROM" msgstr "グルーピング演算はFROM句内の関数では使用できません" -#: parser/parse_agg.c:404 +#: parser/parse_agg.c:407 msgid "aggregate functions are not allowed in policy expressions" msgstr "集約関数はポリシ式では使用できません" -#: parser/parse_agg.c:406 +#: parser/parse_agg.c:409 msgid "grouping operations are not allowed in policy expressions" msgstr "グルーピング演算はポリシ式では使用できません" -#: parser/parse_agg.c:423 +#: parser/parse_agg.c:426 msgid "aggregate functions are not allowed in window RANGE" msgstr "集約関数はウィンドウRANGEの中では集約関数を使用できません" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:428 msgid "grouping operations are not allowed in window RANGE" msgstr "ウィンドウ定義のRANGE句の中ではグルーピング演算は使用できません" -#: parser/parse_agg.c:430 +#: parser/parse_agg.c:433 msgid "aggregate functions are not allowed in window ROWS" msgstr "ウィンドウ定義のROWS句では集約関数は使用できません" -#: parser/parse_agg.c:432 +#: parser/parse_agg.c:435 msgid "grouping operations are not allowed in window ROWS" msgstr "ウィンドウ定義のROWS句ではグルーピング演算は使用できません" -#: parser/parse_agg.c:437 +#: parser/parse_agg.c:440 msgid "aggregate functions are not allowed in window GROUPS" msgstr "ウィンドウ定義のGROUPS句では集約関数は使用できません" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:442 msgid "grouping operations are not allowed in window GROUPS" msgstr "ウィンドウ定義のGROUPS句ではグルーピング演算は使用できません" -#: parser/parse_agg.c:452 +#: parser/parse_agg.c:455 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件では集約関数を使用できません" -#: parser/parse_agg.c:454 +#: parser/parse_agg.c:457 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件ではグルーピング演算を使用できません" -#: parser/parse_agg.c:481 +#: parser/parse_agg.c:484 msgid "aggregate functions are not allowed in check constraints" msgstr "検査制約では集約関数を使用できません" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:486 msgid "grouping operations are not allowed in check constraints" msgstr "検査制約ではグルーピング演算を使用できません" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:493 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "DEFAULT式では集約関数を使用できません" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:495 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "DEFAULT式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:500 msgid "aggregate functions are not allowed in index expressions" msgstr "インデックス式では集約関数を使用できません" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:502 msgid "grouping operations are not allowed in index expressions" msgstr "インデックス式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:507 msgid "aggregate functions are not allowed in index predicates" msgstr "インデックス述語では集約関数を使用できません" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:509 msgid "grouping operations are not allowed in index predicates" msgstr "インデックス述語ではグルーピング演算を使用できません" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:514 msgid "aggregate functions are not allowed in statistics expressions" msgstr "統計情報式では集約関数を使用できません" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:516 msgid "grouping operations are not allowed in statistics expressions" msgstr "統計情報式ではグルーピング演算使用できません" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:521 msgid "aggregate functions are not allowed in transform expressions" msgstr "変換式では集約関数を使用できません" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:523 msgid "grouping operations are not allowed in transform expressions" msgstr "変換式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:528 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "EXECUTEのパラメータでは集約関数を使用できません" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:530 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "EXECUTEのパラメータではグルーピング演算を使用できません" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:535 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件では集約関数を使用できません" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:537 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件ではグルーピング演算を使用できません" -#: parser/parse_agg.c:539 +#: parser/parse_agg.c:542 msgid "aggregate functions are not allowed in partition bound" msgstr "集約関数はパーティション境界では使用できません" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:544 msgid "grouping operations are not allowed in partition bound" msgstr "グルーピング演算はパーティション境界では使用できません" -#: parser/parse_agg.c:546 +#: parser/parse_agg.c:549 msgid "aggregate functions are not allowed in partition key expressions" msgstr "パーティションキー式では集約関数は使用できません" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:551 msgid "grouping operations are not allowed in partition key expressions" msgstr "パーティションキー式ではグルーピング演算は使用できません" -#: parser/parse_agg.c:554 +#: parser/parse_agg.c:557 msgid "aggregate functions are not allowed in column generation expressions" msgstr "集約関数はカラム生成式では使用できません" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:559 msgid "grouping operations are not allowed in column generation expressions" msgstr "グルーピング演算はカラム生成式では使用できません" -#: parser/parse_agg.c:562 +#: parser/parse_agg.c:565 msgid "aggregate functions are not allowed in CALL arguments" msgstr "CALLの引数では集約関数を使用できません" -#: parser/parse_agg.c:564 +#: parser/parse_agg.c:567 msgid "grouping operations are not allowed in CALL arguments" msgstr "CALLの引数ではグルーピング演算を使用できません" -#: parser/parse_agg.c:570 +#: parser/parse_agg.c:573 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "集約関数は COPY FROM の WHERE 条件では使用できません" -#: parser/parse_agg.c:572 +#: parser/parse_agg.c:575 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "グルーピング演算は COPY FROM の WHERE 条件の中では使用できません" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:599 parser/parse_clause.c:1962 +#: parser/parse_agg.c:602 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "%sでは集約関数を使用できません" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:602 +#: parser/parse_agg.c:605 #, c-format msgid "grouping operations are not allowed in %s" msgstr "%sではグルーピング演算を使用できません" -#: parser/parse_agg.c:703 +#: parser/parse_agg.c:706 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "アウタレベルの集約は直接引数に低位の変数を含むことができません" -#: parser/parse_agg.c:781 +#: parser/parse_agg.c:784 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "集合返却関数の呼び出しに集約関数の呼び出しを含むことはできません" -#: parser/parse_agg.c:782 parser/parse_expr.c:1762 parser/parse_expr.c:2245 parser/parse_func.c:885 +#: parser/parse_agg.c:785 parser/parse_expr.c:1760 parser/parse_expr.c:2251 parser/parse_func.c:885 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "この集合返却関数をLATERAL FROM項目に移動できるかもしれません。" -#: parser/parse_agg.c:787 +#: parser/parse_agg.c:790 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "集約関数の呼び出しにウィンドウ関数の呼び出しを含むことはできません" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:869 msgid "window functions are not allowed in JOIN conditions" msgstr "JOIN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:873 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in functions in FROM" msgstr "FROM句内の関数ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:882 msgid "window functions are not allowed in policy expressions" msgstr "ポリシ式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:892 +#: parser/parse_agg.c:895 msgid "window functions are not allowed in window definitions" msgstr "ウィンドウ定義ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:903 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in check constraints" msgstr "検査制約の中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:935 msgid "window functions are not allowed in DEFAULT expressions" msgstr "DEFAULT式の中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:938 msgid "window functions are not allowed in index expressions" msgstr "インデックス式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:941 msgid "window functions are not allowed in statistics expressions" msgstr "統計情報式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:944 msgid "window functions are not allowed in index predicates" msgstr "インデックス述語ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:947 msgid "window functions are not allowed in transform expressions" msgstr "変換式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:950 msgid "window functions are not allowed in EXECUTE parameters" msgstr "EXECUTEパラメータではウィンドウ関数を使用できません" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:953 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:956 msgid "window functions are not allowed in partition bound" msgstr "ウィンドウ関数はパーティション境界では使用できません" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:959 msgid "window functions are not allowed in partition key expressions" msgstr "パーティションキー式ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:962 msgid "window functions are not allowed in CALL arguments" msgstr "CALLの引数ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:962 +#: parser/parse_agg.c:965 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "ウィンドウ関数は COPY FROM の WHERE 条件では使用できません" -#: parser/parse_agg.c:965 +#: parser/parse_agg.c:968 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:988 parser/parse_clause.c:1971 +#: parser/parse_agg.c:991 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "%sの中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:1022 parser/parse_clause.c:2804 +#: parser/parse_agg.c:1025 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "ウィンドウ\"%s\"は存在しません" -#: parser/parse_agg.c:1110 +#: parser/parse_agg.c:1115 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "グルーピングセットの数が多すぎます (最大4096)" -#: parser/parse_agg.c:1250 +#: parser/parse_agg.c:1276 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "再帰問い合わせの再帰項では集約関数を使用できません" -#: parser/parse_agg.c:1443 +#: parser/parse_agg.c:1499 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "列\"%s.%s\"はGROUP BY句で指定するか、集約関数内で使用しなければなりません" -#: parser/parse_agg.c:1446 +#: parser/parse_agg.c:1502 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "順序集合集約の直接引数はグルーピングされた列のみを使用しなければなりません。" -#: parser/parse_agg.c:1451 +#: parser/parse_agg.c:1507 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "外部問い合わせから副問い合わせがグループ化されていない列\"%s.%s\"を使用しています" -#: parser/parse_agg.c:1615 +#: parser/parse_agg.c:1672 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "GROUPINGの引数は関連するクエリレベルのグルーピング式でなければなりません" -#: parser/parse_clause.c:193 +#: parser/parse_clause.c:191 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "リレーション\"%s\"は更新文の対象にはなれません" -#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 +#: parser/parse_clause.c:567 parser/parse_clause.c:595 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "集合返却関数はFROMの最上位レベルにある必要があります" -#: parser/parse_clause.c:609 +#: parser/parse_clause.c:607 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "同じ関数に対して複数の列定義リストを持つことができません" -#: parser/parse_clause.c:642 +#: parser/parse_clause.c:640 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "複数の関数を伴った ROWS FROM() は列定義リストを持つことができません" -#: parser/parse_clause.c:643 +#: parser/parse_clause.c:641 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "ROWS FROM() 内のそれぞれの関数ごとに個別の列定義リストを付けてください。" -#: parser/parse_clause.c:649 +#: parser/parse_clause.c:647 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "複数の引数をもつUNNEST()は列定義リストを持つことができません" -#: parser/parse_clause.c:650 +#: parser/parse_clause.c:648 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "ROWS FROM() の中で個別に UNNEST() をコールして、列定義リストをそれぞれに付加してください。" -#: parser/parse_clause.c:657 +#: parser/parse_clause.c:655 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY は列定義リストがあるときは使えません" -#: parser/parse_clause.c:658 +#: parser/parse_clause.c:656 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "ROWS FROM() の中に列定義リストをおいてください。" -#: parser/parse_clause.c:762 +#: parser/parse_clause.c:760 parser/parse_jsontable.c:293 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "FOR ORDINALITY 列は一つまでです" -#: parser/parse_clause.c:823 +#: parser/parse_clause.c:821 #, c-format msgid "column name \"%s\" is not unique" msgstr "列名\"%s\"は一意ではありません" -#: parser/parse_clause.c:865 +#: parser/parse_clause.c:863 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "名前空間名\"%s\"は一意ではありません" -#: parser/parse_clause.c:875 +#: parser/parse_clause.c:873 #, c-format msgid "only one default namespace is allowed" msgstr "デフォルト名前空間は一つのみ指定可能です" -#: parser/parse_clause.c:935 +#: parser/parse_clause.c:933 #, c-format msgid "tablesample method %s does not exist" msgstr "テーブルサンプルメソッド%sは存在しません" -#: parser/parse_clause.c:957 +#: parser/parse_clause.c:955 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" msgstr[0] "テーブルサンプルメソッド%sは%d個の引数を必要とします、%d個ではありません" -#: parser/parse_clause.c:991 +#: parser/parse_clause.c:989 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "テーブルサンプルメソッド%sはREPEATABLEをサポートしていません" -#: parser/parse_clause.c:1144 +#: parser/parse_clause.c:1142 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "TABLESAMPLE句はテーブルおよび実体化ビューのみに適用可能です" -#: parser/parse_clause.c:1331 +#: parser/parse_clause.c:1329 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "USING句に列名\"%s\"が複数あります" -#: parser/parse_clause.c:1346 +#: parser/parse_clause.c:1344 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "左テーブルに列名\"%s\"が複数あります" -#: parser/parse_clause.c:1355 +#: parser/parse_clause.c:1353 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "USING句で指定した列\"%sが左テーブルに存在しません" -#: parser/parse_clause.c:1370 +#: parser/parse_clause.c:1368 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "右テーブルに列名\"%s\"が複数あります" -#: parser/parse_clause.c:1379 +#: parser/parse_clause.c:1377 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "USING句で指定した列\"%sが右テーブルに存在しません" @@ -17189,173 +17662,173 @@ msgstr "演算子\"%s\"は有効な順序付け演算子名ではありません msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "順序付け演算子はB-Tree演算子族の\"<\"または\">\"要素でなければなりません。" -#: parser/parse_clause.c:3775 +#: parser/parse_clause.c:3778 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "offset PRECEDING/FOLLOWING を伴った RANGE は列型 %s に対してはサポートされません" -#: parser/parse_clause.c:3781 +#: parser/parse_clause.c:3784 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "offset PRECEDING/FOLLOWING を伴った RANGE は列型 %s とオフセット型 %s に対してはサポートされません" -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3787 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "オフセット値を適切な型にキャストしてください。" -#: parser/parse_clause.c:3789 +#: parser/parse_clause.c:3792 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "offset PRECEDING/FOLLOWING を伴った RANGE は列型 %s とオフセット型 %s に対して複数の解釈が可能になっています" -#: parser/parse_clause.c:3792 +#: parser/parse_clause.c:3795 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "オフセット値を意図した型そのものにキャストしてください。" -#: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3403 parser/parse_expr.c:3624 parser/parse_expr.c:4388 parser/parse_target.c:998 +#: parser/parse_coerce.c:1048 parser/parse_coerce.c:1086 parser/parse_coerce.c:1104 parser/parse_coerce.c:1119 parser/parse_expr.c:2152 parser/parse_expr.c:2770 parser/parse_expr.c:3421 parser/parse_expr.c:3650 parser/parse_target.c:1001 #, c-format msgid "cannot cast type %s to %s" msgstr "型%sから%sへの型変換ができません" -#: parser/parse_coerce.c:1091 +#: parser/parse_coerce.c:1089 #, c-format msgid "Input has too few columns." msgstr "入力列が少なすぎます。" -#: parser/parse_coerce.c:1109 +#: parser/parse_coerce.c:1107 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "列%3$dで型%1$sから%2$sへの型変換ができません。" -#: parser/parse_coerce.c:1124 +#: parser/parse_coerce.c:1122 #, 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:1179 parser/parse_coerce.c:1227 +#: parser/parse_coerce.c:1177 parser/parse_coerce.c:1225 #, c-format msgid "argument of %s must be type %s, not type %s" msgstr "%1$sの引数は型%3$sではなく%2$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:1190 parser/parse_coerce.c:1239 +#: parser/parse_coerce.c:1188 parser/parse_coerce.c:1237 #, 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:1383 +#: parser/parse_coerce.c:1418 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "%sの型%sと%sを一致させることができません" -#: parser/parse_coerce.c:1499 +#: parser/parse_coerce.c:1534 #, 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:1551 +#: parser/parse_coerce.c:1586 #, c-format msgid "%s could not convert type %s to %s" msgstr "%sで型%sから%sへ変換できませんでした" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2189 parser/parse_coerce.c:2209 parser/parse_coerce.c:2229 parser/parse_coerce.c:2250 parser/parse_coerce.c:2305 parser/parse_coerce.c:2339 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "\"%s\"と宣言された引数が全て同じでありません" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 utils/fmgr/funcapi.c:600 +#: parser/parse_coerce.c:2284 parser/parse_coerce.c:2397 utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "%sと宣言された引数が配列ではなく%s型です" -#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 utils/fmgr/funcapi.c:614 +#: parser/parse_coerce.c:2317 parser/parse_coerce.c:2467 utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "%sと宣言された引数が範囲型ではなく型%sです" -#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 +#: parser/parse_coerce.c:2351 parser/parse_coerce.c:2431 parser/parse_coerce.c:2564 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "%sと宣言された引数が複範囲型ではなく型%sです" -#: parser/parse_coerce.c:2353 +#: parser/parse_coerce.c:2388 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "\"anyarray\"型の引数の要素型を決定できません" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2414 parser/parse_coerce.c:2445 parser/parse_coerce.c:2484 parser/parse_coerce.c:2550 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "%sと宣言された引数と%sと宣言された引数とで整合性がありません" -#: parser/parse_coerce.c:2474 +#: parser/parse_coerce.c:2509 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "入力型が%sであったため多様型が特定できませんでした" -#: parser/parse_coerce.c:2488 +#: parser/parse_coerce.c:2523 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "anynonarrayと照合されたは配列型です: %s" -#: parser/parse_coerce.c:2498 +#: parser/parse_coerce.c:2533 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "anyenumと照合された型は列挙型ではありません: %s" -#: parser/parse_coerce.c:2559 +#: parser/parse_coerce.c:2594 #, c-format msgid "arguments of anycompatible family cannot be cast to a common type" msgstr "anycompatible系の引数を共通の型にキャストできません" -#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2612 parser/parse_coerce.c:2633 parser/parse_coerce.c:2683 parser/parse_coerce.c:2688 parser/parse_coerce.c:2752 parser/parse_coerce.c:2764 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "入力型が%2$sであるため多様型%1$sが特定できませんでした" -#: parser/parse_coerce.c:2587 +#: parser/parse_coerce.c:2622 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "anycompatiblerange型%sはanycompatiblerange型%sと合致しません" -#: parser/parse_coerce.c:2608 +#: parser/parse_coerce.c:2643 #, c-format msgid "anycompatiblemultirange type %s does not match anycompatible type %s" msgstr "anycompatiblemultirange型%sはanycompatible型%sと合致しません" -#: parser/parse_coerce.c:2622 +#: parser/parse_coerce.c:2657 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "anycompatiblenonarrayに対応する型が配列型です: %s" -#: parser/parse_coerce.c:2857 +#: parser/parse_coerce.c:2892 #, c-format msgid "A result of type %s requires at least one input of type anyrange or anymultirange." msgstr "%s型の返却値にはanyrangeまたはanymultirange型の入力が最低でも一つ必要です。" -#: parser/parse_coerce.c:2874 +#: parser/parse_coerce.c:2909 #, c-format msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange." msgstr "%s型の返却値には少なくとも一つのanycompatiblerangeまたはanycompatiblemultirange型の入力が必要です。" -#: parser/parse_coerce.c:2886 +#: parser/parse_coerce.c:2921 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange." msgstr "%s型の返却値には少なくとも一つのanyelement、anyarray、anynonarray、anyenum、anyrange またはanymultirange型の入力が必要です。" -#: parser/parse_coerce.c:2898 +#: parser/parse_coerce.c:2933 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange." msgstr "%s型の返却値には少なくとも一つのanycompatible、anycompatiblearray、anycompatiblenonarray、anycompatiblerangeまたはanycompatiblemultirange型の入力が必要です。" -#: parser/parse_coerce.c:2928 +#: parser/parse_coerce.c:2963 msgid "A result of type internal requires at least one input of type internal." msgstr "internal型の返却値には少なくとも1つのinternal型の入力が必要です。" @@ -17399,488 +17872,545 @@ msgstr "問い合わせ\"%s\"への再帰的参照が、INTERSECT内に現れて msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "問い合わせ\"%s\"への再帰的参照が、EXCEPT内で現れてはなりません" -#: parser/parse_cte.c:136 +#: parser/parse_cte.c:137 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "WITH 問い合わせ名\"%s\"が複数回指定されました" -#: parser/parse_cte.c:308 +#: parser/parse_cte.c:309 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "型%sの不等演算子を特定できませんでした" -#: parser/parse_cte.c:335 +#: parser/parse_cte.c:336 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "データを変更するようなステートメントを含む WITH 句はトップレベルでなければなりません" -#: parser/parse_cte.c:384 +#: parser/parse_cte.c:385 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "再帰問い合わせ\"%s\"の列%dの型は、非再帰項の内では%sになっていますが全体としては%sです" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:391 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "非再帰項の出力を正しい型に変換してください。" -#: parser/parse_cte.c:395 +#: parser/parse_cte.c:396 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "再帰問い合わせ\"%s\"の列%dの照合順序は、非再帰項では\"%s\"ですが全体としては\"%s\"です" -#: parser/parse_cte.c:399 +#: parser/parse_cte.c:400 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "COLLATE句を使って非再帰項の照合順序を設定してください。" -#: parser/parse_cte.c:420 +#: parser/parse_cte.c:421 #, c-format msgid "WITH query is not recursive" msgstr "WITH問い合わせは再帰的ではありません" -#: parser/parse_cte.c:451 +#: parser/parse_cte.c:452 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "SEARCHまたはCYCLE句を指定する場合、UNIONの左辺はSELECTでなければなりません" -#: parser/parse_cte.c:456 +#: parser/parse_cte.c:457 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "SEARCHまたはCYCLE句を指定する場合、UNIONの右辺はSELECTでなければなりません" -#: parser/parse_cte.c:471 +#: parser/parse_cte.c:472 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "検索カラム\\\"%s\\\"はWITH問い合わせの列リストの中にありません" -#: parser/parse_cte.c:478 +#: parser/parse_cte.c:479 #, c-format msgid "search column \"%s\" specified more than once" msgstr "検索列\"%s\"が複数回指定されています" -#: parser/parse_cte.c:487 +#: parser/parse_cte.c:488 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "検索順序列の名前\\\"%s\\\"はすでにWITH問い合わせの列リストで使われています" -#: parser/parse_cte.c:504 +#: parser/parse_cte.c:505 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "循環列\"%s\"がWITH問い合わせの列リストに存在しません" -#: parser/parse_cte.c:511 +#: parser/parse_cte.c:512 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "循環列\"%s\"が複数回指定されています" -#: parser/parse_cte.c:520 +#: parser/parse_cte.c:521 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "循環識別列の名前\\\"%s\\\"はすでにWITH問い合わせの列リストで使われています" -#: parser/parse_cte.c:527 +#: parser/parse_cte.c:528 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "循環経路列の名前\\\"%s\\\"はすでにWITH問い合わせの列リストで使われています" -#: parser/parse_cte.c:535 +#: parser/parse_cte.c:536 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "循環識別列と循環経路列の名前が同一です" -#: parser/parse_cte.c:545 +#: parser/parse_cte.c:546 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "検索順序列と循環識別列の名前が同一です" -#: parser/parse_cte.c:552 +#: parser/parse_cte.c:553 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "検索順序列と循環経路列の名前が同一です" -#: parser/parse_cte.c:636 +#: parser/parse_cte.c:637 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "WITH問い合わせ\"%s\"には%d列しかありませんが、%d列指定されています" -#: parser/parse_cte.c:816 +#: parser/parse_cte.c:882 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "WITH項目間の再帰は実装されていません" -#: parser/parse_cte.c:868 +#: parser/parse_cte.c:934 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "再帰問い合わせ\"%s\"はデータを更新するス文を含んでいてはなりません" -#: parser/parse_cte.c:876 +#: parser/parse_cte.c:942 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "再帰問い合わせ\"%s\"が、<非再帰項> UNION [ALL] <再帰項> の形式になっていません" -#: parser/parse_cte.c:920 +#: parser/parse_cte.c:977 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "再帰問い合わせ内の ORDER BY は実装されていません" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:983 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "再帰問い合わせ内の OFFSET は実装されていません" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:989 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "再帰問い合わせ内の LIMIT は実装されていません" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:995 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "再帰問い合わせ内の FOR UPDATE/SHARE は実装されていません" -#: parser/parse_cte.c:995 +#: parser/parse_cte.c:1074 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "問い合わせ\"%s\"への再帰参照が2回以上現れてはなりません" -#: parser/parse_expr.c:314 +#: parser/parse_expr.c:311 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "この文脈ではDEFAULTは使えません" -#: parser/parse_expr.c:407 parser/parse_relation.c:3691 parser/parse_relation.c:3701 parser/parse_relation.c:3719 parser/parse_relation.c:3726 parser/parse_relation.c:3740 +#: parser/parse_expr.c:404 parser/parse_relation.c:3797 parser/parse_relation.c:3807 parser/parse_relation.c:3825 parser/parse_relation.c:3832 parser/parse_relation.c:3846 #, c-format msgid "column %s.%s does not exist" msgstr "列%s.%sは存在しません" -#: parser/parse_expr.c:419 +#: parser/parse_expr.c:416 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "データ型%2$sの列\"%1$s\"はありません" -#: parser/parse_expr.c:425 +#: parser/parse_expr.c:422 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "レコードデータ型の列\"%s\"を特定できませんでした" -#: parser/parse_expr.c:431 +#: parser/parse_expr.c:428 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "列記法 .%sが型%sに使用されましたが、この型は複合型ではありません" -#: parser/parse_expr.c:462 parser/parse_target.c:732 +#: parser/parse_expr.c:459 parser/parse_target.c:735 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "\"*\"を通した行展開は、ここではサポートされていません" -#: parser/parse_expr.c:585 +#: parser/parse_expr.c:582 msgid "cannot use column reference in DEFAULT expression" msgstr "列参照はDEFAULT式では使用できません" -#: parser/parse_expr.c:588 +#: parser/parse_expr.c:585 msgid "cannot use column reference in partition bound expression" msgstr "列参照はパーティション境界式では使用できません" -#: parser/parse_expr.c:847 parser/parse_relation.c:833 parser/parse_relation.c:915 parser/parse_target.c:1238 +#: parser/parse_expr.c:844 parser/parse_relation.c:848 parser/parse_relation.c:930 parser/parse_target.c:1241 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "列参照\"%s\"は曖昧です" -#: parser/parse_expr.c:903 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:204 parser/parse_param.c:303 +#: parser/parse_expr.c:900 parser/parse_param.c:111 parser/parse_param.c:143 parser/parse_param.c:205 parser/parse_param.c:304 #, c-format msgid "there is no parameter $%d" msgstr "パラメータ$%dがありません" -#: parser/parse_expr.c:1103 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1101 parser/parse_expr.c:3081 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "NULLIF では = 演算子が boolean を返す必要があります" +msgid "%s requires = operator to yield boolean" +msgstr "%sは真偽値を得るために = 演算子を必要とします" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1109 parser/parse_expr.c:3070 +#: parser/parse_expr.c:1107 parser/parse_expr.c:3088 #, c-format msgid "%s must not return a set" msgstr "%sは集合を返してはなりません" -#: parser/parse_expr.c:1395 +#: parser/parse_expr.c:1393 #, c-format msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" msgstr "MERGE_ACTION()はMERGEコマンドのRETURNINGリストの中でのみ使用可能です" -#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 +#: parser/parse_expr.c:1517 parser/parse_expr.c:1549 #, c-format msgid "number of columns does not match number of values" msgstr "列の数がVALUESの数と一致しません" -#: parser/parse_expr.c:1565 +#: parser/parse_expr.c:1563 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "複数列のUPDATE項目のソースは副問合せまたはROW()式でなければなりません" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 +#: parser/parse_expr.c:1758 parser/parse_expr.c:2249 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "集合返却関数は%sでは使用できません" -#: parser/parse_expr.c:1824 +#: parser/parse_expr.c:1822 msgid "cannot use subquery in check constraint" msgstr "検査制約では副問い合わせを使用できません" -#: parser/parse_expr.c:1828 +#: parser/parse_expr.c:1826 msgid "cannot use subquery in DEFAULT expression" msgstr "DEFAULT式には副問い合わせを使用できません" -#: parser/parse_expr.c:1831 +#: parser/parse_expr.c:1829 msgid "cannot use subquery in index expression" msgstr "式インデックスには副問い合わせを使用できません" -#: parser/parse_expr.c:1834 +#: parser/parse_expr.c:1832 msgid "cannot use subquery in index predicate" msgstr "インデックスの述部に副問い合わせを使用できません" -#: parser/parse_expr.c:1837 +#: parser/parse_expr.c:1835 msgid "cannot use subquery in statistics expression" msgstr "時計情報式では副問い合わせを使用できません" -#: parser/parse_expr.c:1840 +#: parser/parse_expr.c:1838 msgid "cannot use subquery in transform expression" msgstr "変換式では副問い合わせを使用できません" -#: parser/parse_expr.c:1843 +#: parser/parse_expr.c:1841 msgid "cannot use subquery in EXECUTE parameter" msgstr "EXECUTEのパラメータに副問い合わせを使用できません" -#: parser/parse_expr.c:1846 +#: parser/parse_expr.c:1844 msgid "cannot use subquery in trigger WHEN condition" msgstr "トリガーの WHEN 条件では副問い合わせを使用できません" -#: parser/parse_expr.c:1849 +#: parser/parse_expr.c:1847 msgid "cannot use subquery in partition bound" msgstr "副問い合わせはパーティション境界では使用できません" -#: parser/parse_expr.c:1852 +#: parser/parse_expr.c:1850 msgid "cannot use subquery in partition key expression" msgstr "パーティションキー式では副問い合わせを使用できません" -#: parser/parse_expr.c:1855 +#: parser/parse_expr.c:1853 msgid "cannot use subquery in CALL argument" msgstr "CALLの引数で副問い合わせは使用できません" -#: parser/parse_expr.c:1858 +#: parser/parse_expr.c:1856 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "副問い合わせは COPY FROM の WHERE 条件では使用できません" -#: parser/parse_expr.c:1861 +#: parser/parse_expr.c:1859 msgid "cannot use subquery in column generation expression" msgstr "副問い合わせはカラム生成式では使用できません" -#: parser/parse_expr.c:1914 parser/parse_expr.c:3756 +#: parser/parse_expr.c:1912 parser/parse_expr.c:3780 #, c-format msgid "subquery must return only one column" msgstr "副問い合わせは1列のみを返さなければなりません" -#: parser/parse_expr.c:1985 +#: parser/parse_expr.c:1983 #, c-format msgid "subquery has too many columns" msgstr "副問い合わせの列が多すぎます" -#: parser/parse_expr.c:1990 +#: parser/parse_expr.c:1988 #, c-format msgid "subquery has too few columns" msgstr "副問い合わせの列が少なすぎます" -#: parser/parse_expr.c:2086 +#: parser/parse_expr.c:2092 #, c-format msgid "cannot determine type of empty array" msgstr "空の配列のデータ型を決定できません" -#: parser/parse_expr.c:2087 +#: parser/parse_expr.c:2093 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "必要な型に明示的にキャストしてください。例: ARRAY[]::integer[]" -#: parser/parse_expr.c:2101 +#: parser/parse_expr.c:2107 #, c-format msgid "could not find element type for data type %s" msgstr "データ型%sの要素を見つけられませんでした" -#: parser/parse_expr.c:2184 +#: parser/parse_expr.c:2190 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW式は最大でも%dエントリまでしか持てません" -#: parser/parse_expr.c:2389 +#: parser/parse_expr.c:2395 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "無名のXML属性値は列参照でなければなりません" -#: parser/parse_expr.c:2390 +#: parser/parse_expr.c:2396 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "無名のXML要素値は列参照でなければなりません" -#: parser/parse_expr.c:2405 +#: parser/parse_expr.c:2411 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "XML属性名\"%s\"が複数あります" -#: parser/parse_expr.c:2513 +#: parser/parse_expr.c:2519 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "XMLSERIALIZE の結果を %s へキャストできません" -#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 +#: parser/parse_expr.c:2843 parser/parse_expr.c:3039 #, c-format msgid "unequal number of entries in row expressions" msgstr "行式において項目数が一致しません" -#: parser/parse_expr.c:2837 +#: parser/parse_expr.c:2853 #, c-format msgid "cannot compare rows of zero length" msgstr "長さ0の行を比較できません" -#: parser/parse_expr.c:2862 +#: parser/parse_expr.c:2878 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "行比較演算子は型%sではなくbooleanを返さなければなりません" -#: parser/parse_expr.c:2869 +#: parser/parse_expr.c:2885 #, c-format msgid "row comparison operator must not return a set" msgstr "行比較演算子は集合を返してはいけません" -#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 +#: parser/parse_expr.c:2944 parser/parse_expr.c:2985 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "行比較演算子%sの解釈を特定できませんでした" -#: parser/parse_expr.c:2930 +#: parser/parse_expr.c:2946 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "行比較演算子はbtree演算子族と関連付けされなければなりません。" -#: parser/parse_expr.c:2971 +#: parser/parse_expr.c:2987 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "同程度の適合度の候補が複数存在します。" -#: parser/parse_expr.c:3064 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "IS DISTINCT FROMでは=演算子はbooleanを返さなければなりません" - -#: parser/parse_expr.c:3304 +#: parser/parse_expr.c:3322 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "JSON ENCODING句は入力型がbyteaの場合にのみ使用可能です" -#: parser/parse_expr.c:3368 +#: parser/parse_expr.c:3386 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "非文字列型は暗黙のFORMAT JSON句とともには使用できません" -#: parser/parse_expr.c:3369 +#: parser/parse_expr.c:3387 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "非文字列型は明示的なFORMAT JSON句とともには使用できません" -#: parser/parse_expr.c:3458 +#: parser/parse_expr.c:3476 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "JSONフォーマットは非文字列出力型とともには使用できません" -#: parser/parse_expr.c:3471 +#: parser/parse_expr.c:3489 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "bytrea以外の出力型に対してはJSON符号化方式は設定できません" -#: parser/parse_expr.c:3476 +#: parser/parse_expr.c:3494 #, c-format msgid "unsupported JSON encoding" msgstr "サポートされてないJSON符号化方式" -#: parser/parse_expr.c:3477 +#: parser/parse_expr.c:3495 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "JSON符号化方式ではUTF8のみがサポートされています。" -#: parser/parse_expr.c:3514 +#: parser/parse_expr.c:3532 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "SQL/JSON関数ではSETOF型の返却はサポートされていません" -#: parser/parse_expr.c:3519 +#: parser/parse_expr.c:3537 #, c-format msgid "returning pseudo-types is not supported in SQL/JSON functions" msgstr "SQL/JSON関数では疑似型の返却はサポートされていません" -#: parser/parse_expr.c:3841 parser/parse_func.c:866 +#: parser/parse_expr.c:3865 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "ウィンドウ関数に対する集約の ORDER BY は実装されていません" -#: parser/parse_expr.c:4063 +#: parser/parse_expr.c:4088 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "bytrea以外の入力型に対しては JSON FORMAT ENCODING句は使用できません" -#: parser/parse_expr.c:4083 +#: parser/parse_expr.c:4108 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "JSON述語では型%sを使用できません" -#: parser/parse_expr.c:4109 parser/parse_expr.c:4229 +#: parser/parse_expr.c:4134 parser/parse_expr.c:4255 +#, c-format +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "%s()のRETURNING節では型%sは指定できません" + +#: parser/parse_expr.c:4136 #, c-format -msgid "cannot use RETURNING type %s in %s" -msgstr "%2$sではRETURNING型%1$sを使用できません" +msgid "Try returning json or jsonb." +msgstr "jsonまたはjsonbでの返却を試してください。" -#: parser/parse_expr.c:4158 +#: parser/parse_expr.c:4184 #, c-format msgid "cannot use non-string types with WITH UNIQUE KEYS clause" msgstr "非文字列型はWITH UNIQUE KEYS句とともには使用できません" -#: parser/parse_expr.c:4232 +#: parser/parse_expr.c:4258 #, c-format msgid "Try returning a string type or bytea." msgstr "文字列型またはBYTEA型での返却を試してください。" -#: parser/parse_expr.c:4297 +#: parser/parse_expr.c:4323 #, c-format msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" msgstr "%s()のRETURNING節ではFORMAT JSONは指定できません" -#: parser/parse_expr.c:4309 +#: parser/parse_expr.c:4336 #, c-format msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" msgstr "WITH WRAPPERが使われてるときにはSQL/JSONのQUOTESの挙動は指定できまえん" -#: parser/parse_expr.c:4336 +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4350 parser/parse_expr.c:4379 parser/parse_expr.c:4410 parser/parse_expr.c:4436 parser/parse_expr.c:4462 parser/parse_jsontable.c:92 +#, c-format +msgid "invalid %s behavior" +msgstr "不正な%s挙動指定" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4353 parser/parse_expr.c:4382 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s." +msgstr "%2$sに対する%1$s句ではERROR, NULL, EMPTY ARRAY, EMPTY OBJECTまたはDEFAULT式のみが使用可能です。" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4360 parser/parse_expr.c:4389 parser/parse_expr.c:4418 parser/parse_expr.c:4446 parser/parse_expr.c:4472 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "列\"%s\"に対する不正な%s挙動指定" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4363 parser/parse_expr.c:4392 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns." +msgstr "フォーマット化対象列に対する%s句ではERROR, NULL, EMPTY ARRAY, EMPTY OBJECTまたはDEFAULT式のみが使用可能です。" + +#: parser/parse_expr.c:4411 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "%2$sに対する%1$s句ではERROR, TRUE, FALSEまたはUNKNOWNのみが使用可能です。" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4421 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "EXIST列に対する%s句ではERROR, TRUE, FALSEまたはUNKNOWNのみが使用可能です。" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4439 parser/parse_expr.c:4465 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "%2$sに対する%1$s句ではERROR, NULLまたはDEFAULT式のみが使用可能です。" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4449 parser/parse_expr.c:4475 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "スカラー列に対する%s句ではERROR, NULLまたはDEFAULT式のみが使用可能です。" + +#: parser/parse_expr.c:4505 #, c-format msgid "JSON path expression must be of type %s, not of type %s" msgstr "JSONパス式は型%2$sではなく%1$s型でなければなりません" -#: parser/parse_expr.c:4677 +#: parser/parse_expr.c:4723 #, c-format msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT" msgstr "DEFAULTには定数、非集約関数、および演算子式のみ指定可能です" -#: parser/parse_expr.c:4682 +#: parser/parse_expr.c:4728 #, c-format msgid "DEFAULT expression must not contain column references" msgstr "DEFAULT式は列参照を含むことができません" -#: parser/parse_expr.c:4687 +#: parser/parse_expr.c:4733 #, c-format msgid "DEFAULT expression must not return a set" msgstr "DEFAULT式は集合を返してはなりません" -#: parser/parse_expr.c:4721 +#: parser/parse_expr.c:4809 parser/parse_expr.c:4818 #, c-format msgid "cannot cast behavior expression of type %s to %s" msgstr "型%sの挙動式の%sへの型変換はできません" +#: parser/parse_expr.c:4812 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "式を%s型に明示的にキャストする必要があります。" + #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -18212,26 +18742,16 @@ msgstr "集合返却関数は COPY FROM の WHERE条件では使用できませ msgid "set-returning functions are not allowed in column generation expressions" msgstr "集合返却関数はカラム生成式では使用できません" -#: parser/parse_jsontable.c:94 +#: parser/parse_jsontable.c:93 #, c-format -msgid "invalid ON ERROR behavior" -msgstr "不正な ON ERROR 挙動指定です" +msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "最上位のON ERROR句ではEMPTY [ ARRAY ] またERRORのみ使用可能です。" -#: parser/parse_jsontable.c:95 -#, c-format -msgid "Only EMPTY or ERROR is allowed in the top-level ON ERROR clause." -msgstr "最上位のON ERROR句ではEMPTYまたERRORのみ使用可能です。" - -#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#: parser/parse_jsontable.c:187 parser/parse_jsontable.c:201 #, c-format msgid "duplicate JSON_TABLE column or path name: %s" msgstr "JSON_TABLEのカラムまたはパス名の重複: %s" -#: parser/parse_jsontable.c:295 -#, c-format -msgid "cannot use more than one FOR ORDINALITY column" -msgstr "FOR ORDINALITY 列は2つ以上は使用できません" - #: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" @@ -18307,227 +18827,222 @@ msgstr "演算子 ANY/ALL (配列) はブール型を返さなければなりま msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "演算子 ANY/ALL (配列) 集合を返してはなりません" -#: parser/parse_param.c:221 +#: parser/parse_param.c:222 #, c-format msgid "inconsistent types deduced for parameter $%d" msgstr "パラメータ$%dについて推定された型が不整合です" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:310 tcop/postgres.c:734 #, c-format msgid "could not determine data type of parameter $%d" msgstr "パラメータ$%dのデータ型が特定できませんでした" -#: parser/parse_relation.c:221 +#: parser/parse_relation.c:226 #, c-format msgid "table reference \"%s\" is ambiguous" msgstr "テーブル参照\"%s\"は曖昧です" -#: parser/parse_relation.c:265 +#: parser/parse_relation.c:273 #, c-format msgid "table reference %u is ambiguous" msgstr "テーブル参照%uは曖昧です" -#: parser/parse_relation.c:465 -#, c-format -msgid "table name \"%s\" specified more than once" -msgstr "テーブル名\"%s\"が複数指定されました" - -#: parser/parse_relation.c:494 parser/parse_relation.c:3633 parser/parse_relation.c:3642 +#: parser/parse_relation.c:502 parser/parse_relation.c:3739 parser/parse_relation.c:3748 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "テーブル\"%s\"用のFROM句に対する不正な参照" -#: parser/parse_relation.c:498 parser/parse_relation.c:3644 +#: parser/parse_relation.c:506 parser/parse_relation.c:3750 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "テーブル\"%s\"の項目がありますが、問い合わせのこの部分からは参照できません。\"" -#: parser/parse_relation.c:500 +#: parser/parse_relation.c:508 #, c-format msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference." msgstr "LATERAL参照では組み合わせる結合のタイプはINNERまたはLEFTでなければなりません" -#: parser/parse_relation.c:703 +#: parser/parse_relation.c:711 #, c-format msgid "system column \"%s\" reference in check constraint is invalid" msgstr "検査制約で参照されるシステム列\"%s\"は不正です" -#: parser/parse_relation.c:712 +#: parser/parse_relation.c:724 #, c-format msgid "cannot use system column \"%s\" in column generation expression" msgstr "カラム生成式ではシステム列\"%s\"は使用できません" -#: parser/parse_relation.c:723 +#: parser/parse_relation.c:735 #, c-format msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "MERGE WHEN条件ではシステム列\"%s\"は使用できません" -#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 parser/parse_relation.c:2384 +#: parser/parse_relation.c:1251 parser/parse_relation.c:1708 parser/parse_relation.c:2402 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "テーブル\"%s\"では%d列使用できますが、%d列指定されました" -#: parser/parse_relation.c:1445 +#: parser/parse_relation.c:1462 #, c-format msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query." msgstr "\"%s\"というWITH項目はありますが、これは問い合わせのこの部分からは参照できません。" -#: parser/parse_relation.c:1447 +#: parser/parse_relation.c:1464 #, c-format msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "WITH RECURSIVE を使うか、もしくは WITH 項目の場所を変えて前方参照をなくしてください" -#: parser/parse_relation.c:1833 +#: parser/parse_relation.c:1850 #, c-format msgid "a column definition list is redundant for a function with OUT parameters" msgstr "OUTパラメータを持つ関数に対しては列定義リストは不要です" -#: parser/parse_relation.c:1839 +#: parser/parse_relation.c:1856 #, c-format msgid "a column definition list is redundant for a function returning a named composite type" msgstr "名前付き複合型w返す関数に対しては列定義リストは不要です" -#: parser/parse_relation.c:1846 +#: parser/parse_relation.c:1863 #, c-format msgid "a column definition list is only allowed for functions returning \"record\"" msgstr "列定義リストは\"record\"を返す関数でのみ使用できます" -#: parser/parse_relation.c:1857 +#: parser/parse_relation.c:1874 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "\"record\"を返す関数では列定義リストが必要です" -#: parser/parse_relation.c:1894 +#: parser/parse_relation.c:1911 #, c-format msgid "column definition lists can have at most %d entries" msgstr "列定義リストは最大でも%dエントリまでしか持てません" -#: parser/parse_relation.c:1954 +#: parser/parse_relation.c:1971 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "FROM句の関数\"%s\"の戻り値型%sはサポートされていません" -#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 +#: parser/parse_relation.c:1998 parser/parse_relation.c:2083 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "FROM内の関数は最大%d列までしか返却できません" -#: parser/parse_relation.c:2096 +#: parser/parse_relation.c:2113 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "%s関数では%d列使用できますが、%d列指定されました" -#: parser/parse_relation.c:2177 +#: parser/parse_relation.c:2194 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "VALUESリスト\"%s\"は%d列使用可能ですが、%d列が指定されました" -#: parser/parse_relation.c:2242 +#: parser/parse_relation.c:2259 #, c-format msgid "joins can have at most %d columns" msgstr "JOIN で指定できるのは、最大 %d 列です" -#: parser/parse_relation.c:2267 +#: parser/parse_relation.c:2284 #, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" msgstr "結合式\"%s\"では%d列使用できますが、%d列指定されました" -#: parser/parse_relation.c:2357 +#: parser/parse_relation.c:2375 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH 問い合わせ\"%s\"にRETURNING句がありません" -#: parser/parse_relation.c:3635 +#: parser/parse_relation.c:3741 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "テーブル別名\"%s\"を参照しようとしていたようです。" -#: parser/parse_relation.c:3647 +#: parser/parse_relation.c:3753 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "そのテーブルを参照するためには、この副問合せをLATERALとマークする必要があります。" -#: parser/parse_relation.c:3653 +#: parser/parse_relation.c:3759 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "テーブル\"%s\"用のFROM句エントリがありません" -#: parser/parse_relation.c:3693 +#: parser/parse_relation.c:3799 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "\"%s\"という名前の列はありますが、問い合わせのこの部分からは参照できないテーブルに属しています。" -#: parser/parse_relation.c:3695 +#: parser/parse_relation.c:3801 #, c-format msgid "Try using a table-qualified name." msgstr "テーブル名で修飾した名前を試してください。" -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3809 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "テーブル\"%2$s\"には\"%1$s\"という名前の列がありますが、問い合わせのこの部分からは参照できません。" -#: parser/parse_relation.c:3706 +#: parser/parse_relation.c:3812 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "その列を参照するには、この副問合せをLATERALとマークする必要があります。" -#: parser/parse_relation.c:3708 +#: parser/parse_relation.c:3814 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "その列を参照するには、テーブル名で修飾した名前を使う必要があります。" -#: parser/parse_relation.c:3728 +#: parser/parse_relation.c:3834 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "列\"%s.%s\"を参照しようとしていたようです。" -#: parser/parse_relation.c:3742 +#: parser/parse_relation.c:3848 #, 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:480 parser/parse_target.c:795 +#: parser/parse_target.c:483 parser/parse_target.c:798 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "システム列\"%s\"に代入できません" -#: parser/parse_target.c:508 +#: parser/parse_target.c:511 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "配列要素にDEFAULTを設定できません" -#: parser/parse_target.c:513 +#: parser/parse_target.c:516 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "サブフィールドにDEFAULTを設定できません" -#: parser/parse_target.c:587 +#: parser/parse_target.c:590 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "列\"%s\"は型%sですが、式は型%sでした" -#: parser/parse_target.c:779 +#: parser/parse_target.c:782 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "型%3$sが複合型でありませんので、列\"%2$s\"のフィールド\"%1$s\"に代入できません。" -#: parser/parse_target.c:788 +#: parser/parse_target.c:791 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "データ型%3$sの列がありませんので、列\"%2$s\"のフィールド\"%1$s\"に代入できません。" -#: parser/parse_target.c:877 +#: parser/parse_target.c:880 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "\"%s\"への添字付き代入には型%sが必要ですが、式は型%sでした" -#: parser/parse_target.c:887 +#: parser/parse_target.c:890 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "サブフィールド\"%s\"は型%sですが、式は型%sでした" -#: parser/parse_target.c:1327 +#: parser/parse_target.c:1330 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "テーブル指定のないSELECT *は無効です" @@ -18547,7 +19062,7 @@ msgstr "%%TYPE参照が不適切です(ドット区切りの名前が多すぎ msgid "type reference %s converted to %s" msgstr "型参照%sは%sに変換されました" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 utils/cache/typcache.c:452 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:478 utils/cache/typcache.c:533 #, c-format msgid "type \"%s\" is only a shell" msgstr "型\"%s\"は単なるシェルです" @@ -18567,337 +19082,352 @@ msgstr "型修正子は単純な定数または識別子でなければなりま msgid "invalid type name \"%s\"" msgstr "不正な型名\"%s\"" -#: parser/parse_utilcmd.c:266 +#: parser/parse_utilcmd.c:265 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "パーティション親テーブルを継承の子テーブルとして作成はできません" -#: parser/parse_utilcmd.c:586 +#: parser/parse_utilcmd.c:504 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "一時シーケンスのログ出力状態は設定できません" + +#: parser/parse_utilcmd.c:642 #, c-format msgid "array of serial is not implemented" msgstr "連番(SERIAL)の配列は実装されていません" -#: parser/parse_utilcmd.c:665 parser/parse_utilcmd.c:677 parser/parse_utilcmd.c:736 +#: parser/parse_utilcmd.c:747 parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:873 parser/parse_utilcmd.c:906 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"でNULL宣言とNOT NULL宣言が競合しています" -#: parser/parse_utilcmd.c:689 +#: parser/parse_utilcmd.c:759 parser/parse_utilcmd.c:1077 +#, c-format +msgid "not-null constraints on partitioned tables cannot be NO INHERIT" +msgstr "パーティション親テーブルに対する非NULL制約はNO INHERIT指定できません" + +#: parser/parse_utilcmd.c:773 parser/parse_utilcmd.c:808 +#, c-format +msgid "conflicting NO INHERIT declarations for not-null constraints on column \"%s\"" +msgstr "列\"%s\"の非NULL制約に関する矛盾するNO INHERIT宣言" + +#: parser/parse_utilcmd.c:821 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"で複数のデフォルト値の指定があります" -#: parser/parse_utilcmd.c:706 +#: parser/parse_utilcmd.c:838 #, c-format msgid "identity columns are not supported on typed tables" msgstr "型付けされたテーブルでは識別列はサポートされていません" -#: parser/parse_utilcmd.c:710 +#: parser/parse_utilcmd.c:842 #, c-format msgid "identity columns are not supported on partitions" msgstr "パーティションでは識別列はサポートされていません" -#: parser/parse_utilcmd.c:719 +#: parser/parse_utilcmd.c:851 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"に複数の識別指定があります" -#: parser/parse_utilcmd.c:749 +#: parser/parse_utilcmd.c:884 #, c-format msgid "generated columns are not supported on typed tables" msgstr "型付けされたテーブルでは生成カラムはサポートされていません" -#: parser/parse_utilcmd.c:753 +#: parser/parse_utilcmd.c:888 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"に複数のGENERATED句の指定があります" -#: parser/parse_utilcmd.c:771 parser/parse_utilcmd.c:886 +#: parser/parse_utilcmd.c:915 parser/parse_utilcmd.c:1043 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "外部テーブルでは主キー制約はサポートされていません" -#: parser/parse_utilcmd.c:780 parser/parse_utilcmd.c:896 +#: parser/parse_utilcmd.c:924 parser/parse_utilcmd.c:1053 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "外部テーブルではユニーク制約はサポートされていません" -#: parser/parse_utilcmd.c:825 +#: parser/parse_utilcmd.c:971 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "デフォルト値と識別指定の両方がテーブル\"%2$s\"の列\"%1$s\"に指定されています" -#: parser/parse_utilcmd.c:833 +#: parser/parse_utilcmd.c:979 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"にデフォルト値と生成式の両方が指定されています" -#: parser/parse_utilcmd.c:841 +#: parser/parse_utilcmd.c:987 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "テーブル\"%2$s\"の列\"%1$s\"に識別指定と生成式の両方が指定されています" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:1063 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "外部テーブルでは除外制約はサポートされていません" -#: parser/parse_utilcmd.c:971 -#, c-format -msgid "LIKE is not supported for creating foreign tables" -msgstr "外部テーブルの作成においてLIKEはサポートされていません" - -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:1149 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "LIKE句ではリレーション\"%s\"は不正です" -#: parser/parse_utilcmd.c:1711 parser/parse_utilcmd.c:1819 +#: parser/parse_utilcmd.c:1896 parser/parse_utilcmd.c:2004 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "インデックス\"%s\"には行全体テーブル参照が含まれます" -#: parser/parse_utilcmd.c:2217 +#: parser/parse_utilcmd.c:2398 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "CREATE TABLE では既存のインデックスを使えません" -#: parser/parse_utilcmd.c:2237 +#: parser/parse_utilcmd.c:2418 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "インデックス\"%s\"はすでに1つの制約に割り当てられています" -#: parser/parse_utilcmd.c:2258 +#: parser/parse_utilcmd.c:2444 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\"はユニークインデックスではありません" -#: parser/parse_utilcmd.c:2259 parser/parse_utilcmd.c:2266 parser/parse_utilcmd.c:2273 parser/parse_utilcmd.c:2350 +#: parser/parse_utilcmd.c:2445 parser/parse_utilcmd.c:2452 parser/parse_utilcmd.c:2459 parser/parse_utilcmd.c:2535 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "このようなインデックスを使ってプライマリキーや一意性制約を作成することはできません" -#: parser/parse_utilcmd.c:2265 +#: parser/parse_utilcmd.c:2451 #, c-format msgid "index \"%s\" contains expressions" msgstr "インデックス\"%s\"は式を含んでいます" -#: parser/parse_utilcmd.c:2272 +#: parser/parse_utilcmd.c:2458 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\"は部分インデックスです" -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2470 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\"は遅延可能インデックスです" -#: parser/parse_utilcmd.c:2285 +#: parser/parse_utilcmd.c:2471 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "遅延可能インデックスを使った遅延不可制約は作れません。" -#: parser/parse_utilcmd.c:2349 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "インデックス\"%s\"の列番号%dにはデフォルトのソート動作がありません" -#: parser/parse_utilcmd.c:2506 +#: parser/parse_utilcmd.c:2726 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "列\"%s\"がプライマリキー制約内に2回出現します" -#: parser/parse_utilcmd.c:2512 +#: parser/parse_utilcmd.c:2732 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "列\"%s\"が一意性制約内に2回出現します" -#: parser/parse_utilcmd.c:2846 +#: parser/parse_utilcmd.c:2777 +#, c-format +msgid "column \"%s\" in WITHOUT OVERLAPS is not a range or multirange type" +msgstr "WITHOUT OVERLAPS中の列\"%s\"は範囲型でも副範囲型でもありません" + +#: parser/parse_utilcmd.c:2805 +#, c-format +msgid "constraint using WITHOUT OVERLAPS needs at least two columns" +msgstr "WITHOUT OVERLAPSを使用する制約では少なくとも2つの列が必要です" + +#: parser/parse_utilcmd.c:3102 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "インデックス式と述語はインデックス付けされるテーブルのみを参照できます" -#: parser/parse_utilcmd.c:2918 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "統計情報式は参照されているテーブルのみを参照できます" -#: parser/parse_utilcmd.c:2961 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "rules on materialized views are not supported" msgstr "実体化ビューに対するルールはサポートされません" -#: parser/parse_utilcmd.c:3021 +#: parser/parse_utilcmd.c:3277 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "ルールのWHERE条件に他のリレーションへの参照を持たせられません" -#: parser/parse_utilcmd.c:3093 +#: parser/parse_utilcmd.c:3349 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "ルールのWHERE条件はSELECT、INSERT、UPDATE、DELETE動作のみを持つことができます" -#: parser/parse_utilcmd.c:3111 parser/parse_utilcmd.c:3212 rewrite/rewriteHandler.c:537 rewrite/rewriteManip.c:1095 +#: parser/parse_utilcmd.c:3367 parser/parse_utilcmd.c:3468 rewrite/rewriteHandler.c:546 rewrite/rewriteManip.c:1234 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "条件付きのUNION/INTERSECT/EXCEPT文は実装されていません" -#: parser/parse_utilcmd.c:3129 +#: parser/parse_utilcmd.c:3385 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON SELECTルールではOLDを使用できません" -#: parser/parse_utilcmd.c:3133 +#: parser/parse_utilcmd.c:3389 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON SELECTルールではNEWを使用できません" -#: parser/parse_utilcmd.c:3142 +#: parser/parse_utilcmd.c:3398 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON INSERTルールではOLDを使用できません" -#: parser/parse_utilcmd.c:3148 +#: parser/parse_utilcmd.c:3404 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON DELETEルールではNEWを使用できません" -#: parser/parse_utilcmd.c:3176 +#: parser/parse_utilcmd.c:3432 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "WITH 問い合わせ内では OLD は参照できません" -#: parser/parse_utilcmd.c:3183 +#: parser/parse_utilcmd.c:3439 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "WITH 問い合わせ内では NEW は参照できません" -#: parser/parse_utilcmd.c:3255 -#, c-format -msgid "\"%s\" is not a partition" -msgstr "\"%s\"はパーティション子テーブルではありません" - -#: parser/parse_utilcmd.c:3290 parser/parse_utilcmd.c:3335 parser/parse_utilcmd.c:4101 -#, c-format -msgid "\"%s\" is not a partitioned table" -msgstr "\"%s\"はパーティションテーブルではありません" - -#: parser/parse_utilcmd.c:3343 -#, c-format -msgid "partition of hash-partitioned table cannot be merged" -msgstr "ハッシュパーティションテーブルの子テーブルは結合できません" - -#: parser/parse_utilcmd.c:3361 -#, c-format -msgid "partition with name \"%s\" is already used" -msgstr "名前\"%s\"を持つパーティションはすでに使用されてます" - -#: parser/parse_utilcmd.c:3673 -#, c-format -msgid "list of new partitions should contain at least two items" -msgstr "新しいパーティションリストには最低2つの要素が必要です" - -#: parser/parse_utilcmd.c:3811 +#: parser/parse_utilcmd.c:3897 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "DEFERRABLE句の場所が間違っています" -#: parser/parse_utilcmd.c:3816 parser/parse_utilcmd.c:3831 +#: parser/parse_utilcmd.c:3902 parser/parse_utilcmd.c:3917 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "複数のDEFERRABLE/NOT DEFERRABLE句を使用できません" -#: parser/parse_utilcmd.c:3826 +#: parser/parse_utilcmd.c:3912 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "NOT DEFERRABLE句の場所が間違っています" -#: parser/parse_utilcmd.c:3847 +#: parser/parse_utilcmd.c:3933 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "INITIALLY DEFERRED句の場所が間違っています<" -#: parser/parse_utilcmd.c:3852 parser/parse_utilcmd.c:3878 +#: parser/parse_utilcmd.c:3938 parser/parse_utilcmd.c:3964 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "複数のINITIALLY IMMEDIATE/DEFERRED句を使用できません" -#: parser/parse_utilcmd.c:3873 +#: parser/parse_utilcmd.c:3959 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "INITIALLY IMMEDIATE句の場所が間違っています<" -#: parser/parse_utilcmd.c:4066 +#: parser/parse_utilcmd.c:3976 +#, c-format +msgid "misplaced ENFORCED clause" +msgstr "ENFORCED句の場所が間違っています" + +#: parser/parse_utilcmd.c:3981 parser/parse_utilcmd.c:3998 +#, c-format +msgid "multiple ENFORCED/NOT ENFORCED clauses not allowed" +msgstr "複数のENFORCED/NOT ENFORCED句は指定できません" + +#: parser/parse_utilcmd.c:3993 +#, c-format +msgid "misplaced NOT ENFORCED clause" +msgstr "NOT ENFORCED句の場所が間違っています" + +#: parser/parse_utilcmd.c:4191 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATEで指定したスキーマ(%s)が作成先のスキーマ(%s)と異なります" -#: parser/parse_utilcmd.c:4108 +#: parser/parse_utilcmd.c:4226 +#, c-format +msgid "\"%s\" is not a partitioned table" +msgstr "\"%s\"はパーティションテーブルではありません" + +#: parser/parse_utilcmd.c:4233 #, c-format msgid "table \"%s\" is not partitioned" msgstr "テーブル\"%s\"はパーティションされていません" -#: parser/parse_utilcmd.c:4115 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "index \"%s\" is not partitioned" msgstr "インデックス\"%s\"はパーティションされていません" -#: parser/parse_utilcmd.c:4155 +#: parser/parse_utilcmd.c:4280 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "ハッシュパーティションテーブルはデフォルトパーティションを持つことができません" -#: parser/parse_utilcmd.c:4172 +#: parser/parse_utilcmd.c:4297 #, c-format msgid "invalid bound specification for a hash partition" msgstr "ハッシュパーティションに対する不正な境界指定" -#: parser/parse_utilcmd.c:4178 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4303 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "ハッシュパーティションの法は0より大きい整数にする必要があります" -#: parser/parse_utilcmd.c:4185 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4310 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "ハッシュパーティションの剰余は法よりも小さくなければなりません" -#: parser/parse_utilcmd.c:4198 +#: parser/parse_utilcmd.c:4323 #, c-format msgid "invalid bound specification for a list partition" msgstr "リストパーティションに対する不正な境界指定" -#: parser/parse_utilcmd.c:4251 +#: parser/parse_utilcmd.c:4376 #, c-format msgid "invalid bound specification for a range partition" msgstr "範囲パーティションに対する不正な境界指定" -#: parser/parse_utilcmd.c:4257 +#: parser/parse_utilcmd.c:4382 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROMは全てのパーティション列ごとに一つの値を指定しなければなりません" -#: parser/parse_utilcmd.c:4261 +#: parser/parse_utilcmd.c:4386 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TOは全てのパーティション列ごとに一つの値を指定しなければなりません" -#: parser/parse_utilcmd.c:4375 +#: parser/parse_utilcmd.c:4500 #, c-format msgid "cannot specify NULL in range bound" msgstr "範囲境界でNULLは使用できません" -#: parser/parse_utilcmd.c:4424 +#: parser/parse_utilcmd.c:4549 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "MAXVALUEに続く境界値はMAXVALUEでなければなりません" -#: parser/parse_utilcmd.c:4431 +#: parser/parse_utilcmd.c:4556 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "MINVALUEに続く境界値はMINVALUEでなければなりません" -#: parser/parse_utilcmd.c:4474 +#: parser/parse_utilcmd.c:4599 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "指定した値は列\"%s\"の%s型に変換できません" @@ -18910,12 +19440,12 @@ msgstr "UESCAPE の後には単純な文字列リテラルが続かなければ msgid "invalid Unicode escape character" msgstr "不正なUnicodeエスケープ文字" -#: parser/parser.c:347 scan.l:1391 +#: parser/parser.c:347 scan.l:1385 #, c-format msgid "invalid Unicode escape value" msgstr "不正なUnicodeエスケープシーケンスの値" -#: parser/parser.c:494 scan.l:702 utils/adt/varlena.c:6640 +#: parser/parser.c:494 scan.l:702 utils/adt/varlena.c:6842 #, c-format msgid "invalid Unicode escape" msgstr "不正なUnicodeエスケープ" @@ -18925,7 +19455,7 @@ msgstr "不正なUnicodeエスケープ" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Unicodeエスケープは\\XXXXまたは\\+XXXXXXでなければなりません。" -#: parser/parser.c:523 scan.l:663 scan.l:679 scan.l:695 utils/adt/varlena.c:6665 +#: parser/parser.c:523 scan.l:663 scan.l:679 scan.l:695 utils/adt/varlena.c:6867 #, c-format msgid "invalid Unicode surrogate pair" msgstr "不正なUnicodeサロゲートペア" @@ -18955,127 +19485,52 @@ msgstr "新しい法(除数)%1$dは既存のパーティション\"%3$s\"の法 msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "新しい法(除数)%1$dは既存のパーティション\"%3$s\"の法である%2$dで割り切れません。" -#: partitioning/partbounds.c:3127 partitioning/partbounds.c:5202 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "リレーション\"%s\"に対して空の範囲境界が指定されました" -#: partitioning/partbounds.c:3129 partitioning/partbounds.c:5204 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "指定された下限%sは上限%sより大きいか同じです。" -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "パーティション\"%s\"はパーティション\"%s\"と重複があります" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "デフォルトパーティション\"%2$s\"の子テーブルであるためテーブル\"%1$s\"のスキャンをスキップします" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" msgstr "ハッシュパーティションの剰余は`0以上の整数でなければなりません" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\"はハッシュパーティションテーブルではありません" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "パーティション列の数(%d)と与えられたキー値の数(%d)が一致していません" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "パーティションキーの列%dは%s型です、しかし与えられた値は%s型です" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "パーティションキーの列 %d は \"%s\"型です、しかし与えられた値は \"%s\"型です" -#: partitioning/partbounds.c:5038 -#, c-format -msgid "lower bound of partition \"%s\" conflicts with upper bound of previous partition \"%s\"" -msgstr "パーティション\"%s\"の下界が直前のパーティション\"%s\"の上界と衝突しています" - -#: partitioning/partbounds.c:5092 -#, c-format -msgid "new partition \"%s\" would overlap with another new partition \"%s\"" -msgstr "新しいパーティション\"%s\"は他の新しいパーティション\"%s\"と重複しています" - -#: partitioning/partbounds.c:5239 -#, c-format -msgid "lower bound of partition \"%s\" is not equal to lower bound of split partition" -msgstr "パーティション\"%s\"の下界が分割対象のパーティションの下界と一致していません" - -#: partitioning/partbounds.c:5251 -#, c-format -msgid "lower bound of partition \"%s\" is less than lower bound of split partition" -msgstr "パーティション\"%s\"の下界が分割対象のパーティションの下界よりも小さいです" - -#: partitioning/partbounds.c:5280 -#, c-format -msgid "upper bound of partition \"%s\" is not equal to upper bound of split partition" -msgstr "パーティション\"%s\"の上界が分割対象のパーティションの上界と一致していません" - -#: partitioning/partbounds.c:5292 -#, c-format -msgid "upper bound of partition \"%s\" is greater than upper bound of split partition" -msgstr "パーティション\"%s\"の上界が分割対象のパーティションの上界よりも大きいです" - -#: partitioning/partbounds.c:5364 -#, c-format -msgid "new partition \"%s\" cannot have this value because split partition does not have" -msgstr "分割対象のパーティションがその値を含んでいないため、新しいパーティション\"%s\"はこの値を持てません" - -#: partitioning/partbounds.c:5380 -#, c-format -msgid "new partition \"%s\" cannot have NULL value because split partition does not have" -msgstr "分割対象パーティションがNULLを含んでいないため、新しいパーティション\"%s\"はNULLを持てません" - -#: partitioning/partbounds.c:5390 -#, c-format -msgid "new partition \"%s\" would overlap with another (not split) partition \"%s\"" -msgstr "新しいパーティション\"%s\"は他の(分割されない)パーティション\"%s\"と重複しています" - -#: partitioning/partbounds.c:5530 -#, c-format -msgid "new partitions do not have value %s but split partition does" -msgstr "新しいパーティションには値%sが含まれていませんが、分割したパーティションには含まれています" - -#: partitioning/partbounds.c:5607 -#, c-format -msgid "DEFAULT partition should be one" -msgstr "DEFAULTパーティションは一つのみ存在できます" - -#: partitioning/partbounds.c:5623 -#, c-format -msgid "partition of hash-partitioned table cannot be split" -msgstr "ハッシュパーティションテーブルの子テーブルは分割できません" - -#: partitioning/partbounds.c:5677 -#, c-format -msgid "one partition in the list should be DEFAULT because split partition is DEFAULT" -msgstr "分割対象のパーティションがDEFAULTであるため、リスト中の一つのパーティションがDEFAULTである必要があります" - -#: partitioning/partbounds.c:5687 -#, c-format -msgid "new partition cannot be DEFAULT because DEFAULT partition already exists" -msgstr "DEFAULTパーティションがすでに存在するため、新しいパーティションをDEFAULTにはできません" - -#: partitioning/partbounds.c:5746 -#, c-format -msgid "name \"%s\" is already used" -msgstr "名前\"%s\"はすでに使用されています" - -#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 port/sysv_sema.c:323 port/sysv_shmem.c:717 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "データディレクトリ\"%s\"のstatに失敗しました: %m" @@ -19142,27 +19597,27 @@ msgstr "このプラットフォームではヒュージページをサポート msgid "huge pages not supported with the current \"shared_memory_type\" setting" msgstr "ヒュージページは現在の\"shared_memory_type\"の設定ではサポートされません" -#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1347 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1406 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "既存の共有メモリブロック(キー%lu、ID %lu)がまだ使用中です" -#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1349 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1408 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "データディレクトリ \"%s\". に対応する古いサーバープロセスをすべて終了させてください。" -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "セマフォを作成できませんでした: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "失敗したシステムコールはsemget(%lu, %d, 0%o)です。" -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n" @@ -19171,7 +19626,7 @@ msgstr "" "このエラーは、ディスクが足りなくなったことを意味していません。この原因はセマフォセット数が上限(SEMMNI)に達したか、またはシステム全体でのセマフォ数を上限まで(SEMMNS)を使いきるような場合です。対処としては、対応するカーネルのパラメータを増やす必要があります。もしくは PostgreSQLの\"max_connections\"設定をを減らすことで、消費するセマフォの数を減らしてください。\n" "PostgreSQL向けの共有メモリ設定に関する詳細情報は、PostgreSQL のドキュメントに記載されています。" -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "" @@ -19295,385 +19750,400 @@ msgstr "失敗したシステムコールはMapViewOfFileExです。" msgid "Failed system call was MapViewOfFileEx." msgstr "失敗したシステムコールはMapViewOfFileExです。" -#: postmaster/autovacuum.c:686 +#: postmaster/autovacuum.c:693 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "自動VACUUMワーカーの起動に時間がかかりすぎています; キャンセルしました" -#: postmaster/autovacuum.c:2199 +#: postmaster/autovacuum.c:2221 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "自動VACUUM: 孤立した一時テーブル\"%s.%s.%s\"を削除します" -#: postmaster/autovacuum.c:2435 +#: postmaster/autovacuum.c:2457 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "テーブル\"%s.%s.%s\"に対する自動VACUUM" -#: postmaster/autovacuum.c:2438 +#: postmaster/autovacuum.c:2460 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "テーブル\"%s.%s.%s\"に対する自動ANALYZE" -#: postmaster/autovacuum.c:2632 +#: postmaster/autovacuum.c:2654 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "リレーション\"%s.%s.%s\"の作業エントリを処理しています" -#: postmaster/autovacuum.c:3250 +#: postmaster/autovacuum.c:3312 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "誤設定のため自動VACUUMが起動できません" -#: postmaster/autovacuum.c:3251 +#: postmaster/autovacuum.c:3313 #, c-format msgid "Enable the \"track_counts\" option." msgstr "\"track_counts\"オプションを有効にしてください。" +#: postmaster/autovacuum.c:3435 +#, c-format +msgid "\"autovacuum_max_workers\" (%d) should be less than or equal to \"autovacuum_worker_slots\" (%d)" +msgstr "\"autovacuum_max_workers\" (%d) は \"autovacuum_worker_slots\" (%d) 以下でなければなりません" + +#: postmaster/autovacuum.c:3437 +#, c-format +msgid "The server will only start up to \"autovacuum_worker_slots\" (%d) autovacuum workers at a given time." +msgstr "このサーバーは、同時に最大 \"autovacuum_worker_slots\" (%d) プロセスの自動バキュームワーカーを起動します。" + #: postmaster/bgworker.c:260 #, c-format -msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" -msgstr "バックグラウンドワーカー状態の矛盾 (max_worker_processes=%d, total_slots=%d)" +msgid "inconsistent background worker state (\"max_worker_processes\"=%d, total slots=%d)" +msgstr "バックグラウンドワーカー状態の不整合 (\"max_worker_processes\"=%d, スロット総数=%d)" -#: postmaster/bgworker.c:651 +#: postmaster/bgworker.c:645 #, c-format msgid "background worker \"%s\": background workers without shared memory access are not supported" msgstr "バックグラウンドワーカー\"%s\": 共有メモリアクセスを伴わないバックグラウンドワーカーはサポートされません" -#: postmaster/bgworker.c:662 +#: postmaster/bgworker.c:656 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "バックグラウンドワーカー\"%s\": postmaster起動中に起動している場合にはデータベースアクセスを要求することはできません" -#: postmaster/bgworker.c:676 +#: postmaster/bgworker.c:670 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "バックグラウンドワーカー\"%s\": 不正な再起動間隔" -#: postmaster/bgworker.c:691 +#: postmaster/bgworker.c:685 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "バックグラウンドワーカー\"%s\": パラレルワーカーは再起動するように設定してはいけません" -#: postmaster/bgworker.c:715 tcop/postgres.c:3285 +#: postmaster/bgworker.c:709 tcop/postgres.c:3345 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "管理者コマンドによりバックグラウンドワーカー\"%s\"を終了しています" -#: postmaster/bgworker.c:888 +#: postmaster/bgworker.c:868 postmaster/bgworker.c:902 +#, c-format +msgid "database connection requirement not indicated during registration" +msgstr "登録時にデータベース接続の必要性が示されていません" + +#: postmaster/bgworker.c:878 postmaster/bgworker.c:912 +#, c-format +msgid "invalid processing mode in background worker" +msgstr "バックグラウンドワーカー内の不正な処理モード" + +#: postmaster/bgworker.c:965 #, c-format msgid "background worker \"%s\": must be registered in \"shared_preload_libraries\"" msgstr "バックグラウンドワーカー\"%s\": \"shared_preload_libraries\"に登録されていなければなりません" -#: postmaster/bgworker.c:911 +#: postmaster/bgworker.c:988 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "バックグラウンドワーカー\"%s\": 動的バックグラウンドワーカーのみが通知を要求できます" -#: postmaster/bgworker.c:926 +#: postmaster/bgworker.c:1003 #, c-format msgid "too many background workers" msgstr "バックグラウンドワーカーが多すぎます" -#: postmaster/bgworker.c:927 +#: postmaster/bgworker.c:1004 #, 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] "現在の設定では最大%dのバックグラウンドワーカーを登録することができます。" -#: postmaster/bgworker.c:931 +#: postmaster/bgworker.c:1008 postmaster/checkpointer.c:459 #, c-format -msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "設定パラメータ\"max_worker_processes\"を増やすことを検討してください。" +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "設定パラメータ\"%s\"を増やすことを検討してください。" -#: postmaster/checkpointer.c:441 +#: postmaster/checkpointer.c:455 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" msgstr[0] "チェックポイントの発生周期が短すぎます(%d秒間隔)" -#: postmaster/checkpointer.c:445 -#, c-format -msgid "Consider increasing the configuration parameter \"%s\"." -msgstr "設定パラメータ\"%s\"を増やすことを検討してください。" - -#: postmaster/checkpointer.c:1067 +#: postmaster/checkpointer.c:1125 #, c-format msgid "checkpoint request failed" msgstr "チェックポイント要求が失敗しました" -#: postmaster/checkpointer.c:1068 +#: postmaster/checkpointer.c:1126 #, c-format msgid "Consult recent messages in the server log for details." msgstr "詳細はサーバーログの最近のメッセージを調査してください" -#: postmaster/launch_backend.c:369 +#: postmaster/launch_backend.c:395 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "サーバープロセス\"%s\"を実行できませんでした: %m" -#: postmaster/launch_backend.c:422 +#: postmaster/launch_backend.c:449 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "バックエンドパラメータファイルのファイルマッピングを作成できませんでした: エラーコード%lu" -#: postmaster/launch_backend.c:430 +#: postmaster/launch_backend.c:457 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "バックエンドパラメータのメモリをマップできませんでした: エラーコード %lu" -#: postmaster/launch_backend.c:447 +#: postmaster/launch_backend.c:474 #, c-format msgid "subprocess command line too long" msgstr "サブプロセスのコマンドラインが長すぎます" -#: postmaster/launch_backend.c:465 +#: postmaster/launch_backend.c:492 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "CreateProcess() の呼び出しが失敗しました: %m (エラーコード %lu)" -#: postmaster/launch_backend.c:492 +#: postmaster/launch_backend.c:521 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "バックエンドパラメータファイルのビューをアンマップできませんでした: エラーコード %lu" -#: postmaster/launch_backend.c:496 +#: postmaster/launch_backend.c:525 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "バックエンドパラメータファイルのハンドルをクローズできませんでした: エラーコード%lu" -#: postmaster/launch_backend.c:518 +#: postmaster/launch_backend.c:547 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "共有メモリの確保のリトライ回数が多すぎるため中断します" -#: postmaster/launch_backend.c:519 +#: postmaster/launch_backend.c:548 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "これはASLRまたはアンチウイルスソフトウェアが原因である可能性があります。" -#: postmaster/launch_backend.c:817 +#: postmaster/launch_backend.c:854 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "バックエンドで使用するためにソケット%dを複製できませんでした: エラーコード %d" -#: postmaster/launch_backend.c:849 +#: postmaster/launch_backend.c:886 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "継承したソケットを作成できませんでした: エラーコード %d\n" -#: postmaster/launch_backend.c:878 +#: postmaster/launch_backend.c:915 #, c-format msgid "could not open backend variables file \"%s\": %m\n" msgstr "バックエンド変数ファイル\"%s\"をオープンできませんでした: %m\n" -#: postmaster/launch_backend.c:884 +#: postmaster/launch_backend.c:921 #, c-format msgid "could not read from backend variables file \"%s\": %m\n" msgstr "バックエンド変数ファイル\"%s\"から読み込めませんでした: %m\n" -#: postmaster/launch_backend.c:895 +#: postmaster/launch_backend.c:932 #, c-format msgid "could not read startup data from backend variables file \"%s\": %m\n" msgstr "バックエンド変数ファイル\"%s\"から起動データ読み込めませんでした: %m\n" -#: postmaster/launch_backend.c:907 +#: postmaster/launch_backend.c:944 #, c-format msgid "could not remove file \"%s\": %m\n" msgstr "ファイル\"%s\"を削除できませんでした: %m\n" -#: postmaster/launch_backend.c:923 +#: postmaster/launch_backend.c:960 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "バックエンド変数のビューをマップできませんでした: エラーコード %lu\n" -#: postmaster/launch_backend.c:942 +#: postmaster/launch_backend.c:979 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "バックエンド変数のビューをアンマップできませんでした: エラーコード %lu\n" -#: postmaster/launch_backend.c:949 +#: postmaster/launch_backend.c:986 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "バックエンドパラメータ変数のハンドルをクローズできませんでした: エラーコード%lu\n" -#: postmaster/pgarch.c:428 +#: postmaster/pgarch.c:429 #, c-format msgid "\"archive_mode\" enabled, yet archiving is not configured" msgstr "\"archive_mode\"は有効ですが、アーカイブ方法が設定されていません" -#: postmaster/pgarch.c:452 +#: postmaster/pgarch.c:453 #, c-format msgid "removed orphan archive status file \"%s\"" msgstr "孤立したアーカイブステータスファイル\"%s\"を削除しました" -#: postmaster/pgarch.c:462 +#: postmaster/pgarch.c:463 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" msgstr "孤立したアーカイブステータスファイル\"%s\"の削除の失敗回数が上限を超えました、あとでリトライします" -#: postmaster/pgarch.c:498 +#: postmaster/pgarch.c:499 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "先行書き込みログファイル\"%s\"のアーカイブ処理の失敗回数が超過しました、後で再度試します" -#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 +#: postmaster/pgarch.c:885 postmaster/pgarch.c:924 #, c-format msgid "both \"archive_command\" and \"archive_library\" set" msgstr "\"archive_command\"と\"archive_library\"が両方設定されています" -#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 +#: postmaster/pgarch.c:886 postmaster/pgarch.c:925 #, c-format msgid "Only one of \"archive_command\", \"archive_library\" may be set." msgstr "\"archive_command\"と\"archive_library\"のいずれか一方のみ設定できます。" -#: postmaster/pgarch.c:897 +#: postmaster/pgarch.c:903 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "\"archive_library\"の設定が変更されたためアーカイバプロセスを再起動します" -#: postmaster/pgarch.c:934 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules have to define the symbol %s" msgstr "アーカイブモジュールはシンボル%sを定義しなくてはなりません" -#: postmaster/pgarch.c:940 +#: postmaster/pgarch.c:946 #, c-format msgid "archive modules must register an archive callback" msgstr "アーカイブモジュールはアーカイブコールバックを登録しなくてはなりません" -#: postmaster/postmaster.c:661 +#: postmaster/postmaster.c:678 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: -fオプションに対する不正な引数: \"%s\"\n" -#: postmaster/postmaster.c:734 +#: postmaster/postmaster.c:751 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: -tオプションに対する不正な引数: \"%s\"\n" -#: postmaster/postmaster.c:757 +#: postmaster/postmaster.c:774 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: 不正な引数: \"%s\"\n" -#: postmaster/postmaster.c:825 +#: postmaster/postmaster.c:842 #, c-format msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" msgstr "%s: \"superuser_reserved_connections\" (%d)と\"reserved_connections\" (%d)との和は \"max_connections\" (%d)より小さくなければなりません\n" -#: postmaster/postmaster.c:833 +#: postmaster/postmaster.c:850 #, c-format msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" msgstr "\"wal_level\"が\"minimal\"の時はWALアーカイブは有効にできません" -#: postmaster/postmaster.c:836 +#: postmaster/postmaster.c:853 #, c-format msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\"" msgstr "WALストリーミング(\"max_wal_senders\" > 0)を行うには wal_levelを\"replica\"または\"logical\"にする必要があります" -#: postmaster/postmaster.c:839 +#: postmaster/postmaster.c:856 #, c-format msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" msgstr "\"wal_level\"が\"minimal\"の時はWALは集約できません" -#: postmaster/postmaster.c:847 +#: postmaster/postmaster.c:864 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: データトークンテーブルが不正です、修復してください\n" -#: postmaster/postmaster.c:1004 +#: postmaster/postmaster.c:1025 #, c-format msgid "could not create I/O completion port for child queue" msgstr "子キュー向けのI/O終了ポートを作成できませんでした" -#: postmaster/postmaster.c:1069 +#: postmaster/postmaster.c:1091 #, c-format msgid "ending log output to stderr" msgstr "標準エラー出力へのログ出力を終了しています" -#: postmaster/postmaster.c:1070 +#: postmaster/postmaster.c:1092 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "この後のログ出力はログ配送先\"%s\"に出力されます。" -#: postmaster/postmaster.c:1081 +#: postmaster/postmaster.c:1103 #, c-format msgid "starting %s" msgstr "%s を起動しています" -#: postmaster/postmaster.c:1143 +#: postmaster/postmaster.c:1165 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "\"%s\"に関する監視用ソケットを作成できませんでした" -#: postmaster/postmaster.c:1149 +#: postmaster/postmaster.c:1171 #, c-format msgid "could not create any TCP/IP sockets" msgstr "TCP/IPソケットを作成できませんでした" -#: postmaster/postmaster.c:1181 +#: postmaster/postmaster.c:1203 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister()が失敗しました: エラーコード %ld" -#: postmaster/postmaster.c:1234 +#: postmaster/postmaster.c:1256 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "ディレクトリ\"%s\"においてUnixドメインソケットを作成できませんでした" -#: postmaster/postmaster.c:1240 +#: postmaster/postmaster.c:1262 #, c-format msgid "could not create any Unix-domain sockets" msgstr "Unixドメインソケットを作成できませんでした" -#: postmaster/postmaster.c:1251 +#: postmaster/postmaster.c:1273 #, c-format msgid "no socket created for listening" msgstr "監視用に作成するソケットはありません" -#: postmaster/postmaster.c:1282 +#: postmaster/postmaster.c:1304 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %m\n" msgstr "%s: 外部PIDファイル\"%s\"の権限を変更できませんでした: %m\n" -#: postmaster/postmaster.c:1286 +#: postmaster/postmaster.c:1308 #, c-format msgid "%s: could not write external PID file \"%s\": %m\n" msgstr "%s: 外部PIDファイル\"%s\"に書き込めませんでした: %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1336 utils/init/postinit.c:225 #, c-format msgid "could not load %s" msgstr "%s\"をロードできませんでした" -#: postmaster/postmaster.c:1340 +#: postmaster/postmaster.c:1364 #, c-format msgid "postmaster became multithreaded during startup" -msgstr "postmasterは起動値処理中はマルチスレッドで動作します" +msgstr "postmasterは起動処理中はマルチスレッドで動作します" -#: postmaster/postmaster.c:1341 +#: postmaster/postmaster.c:1365 postmaster/postmaster.c:3661 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "LC_ALL環境変数を使用可能なロケールに設定してください。" -#: postmaster/postmaster.c:1440 +#: postmaster/postmaster.c:1468 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: 自身の実行ファイルのパスが特定できません" -#: postmaster/postmaster.c:1447 +#: postmaster/postmaster.c:1475 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: 一致するpostgres実行ファイルがありませんでした" -#: postmaster/postmaster.c:1470 utils/misc/tzparser.c:341 +#: postmaster/postmaster.c:1498 utils/misc/tzparser.c:342 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "これは、PostgreSQLのインストールが不完全であるかまたは、ファイル\"%s\"が本来の場所からなくなってしまったことを示しています。" -#: postmaster/postmaster.c:1497 +#: postmaster/postmaster.c:1525 #, c-format msgid "" "%s: could not find the database system\n" @@ -19685,472 +20155,467 @@ msgstr "" "ファイル\"%s\"をオープンできませんでした: %m\n" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1787 +#: postmaster/postmaster.c:1762 #, c-format msgid "issuing %s to recalcitrant children" msgstr "手に負えない子プロセスに%sを送出します" -#: postmaster/postmaster.c:1809 +#: postmaster/postmaster.c:1784 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "データディレクトリのロックファイルが不正なため、即時シャットダウンを実行中です" -#: postmaster/postmaster.c:1872 -#, c-format -msgid "wrong key in cancel request for process %d" -msgstr "プロセス%dに対するキャンセル要求においてキーが間違っています" - -#: postmaster/postmaster.c:1884 -#, c-format -msgid "PID %d in cancel request did not match any process" -msgstr "キャンセル要求内のPID %dがどのプロセスにも一致しません" - -#: postmaster/postmaster.c:2105 +#: postmaster/postmaster.c:2004 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "SIGHUPを受け取りました。設定ファイルをリロードしています" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2133 postmaster/postmaster.c:2137 +#: postmaster/postmaster.c:2012 postmaster/postmaster.c:2016 #, c-format msgid "%s was not reloaded" msgstr "%s は再読み込みされていません" -#: postmaster/postmaster.c:2147 +#: postmaster/postmaster.c:2026 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL設定は再読み込みされていません" -#: postmaster/postmaster.c:2233 +#: postmaster/postmaster.c:2112 #, c-format msgid "received smart shutdown request" msgstr "スマートシャットダウン要求を受け取りました" -#: postmaster/postmaster.c:2274 +#: postmaster/postmaster.c:2153 #, c-format msgid "received fast shutdown request" msgstr "高速シャットダウン要求を受け取りました" -#: postmaster/postmaster.c:2292 +#: postmaster/postmaster.c:2171 #, c-format msgid "aborting any active transactions" msgstr "活動中の全トランザクションをアボートしています" -#: postmaster/postmaster.c:2316 +#: postmaster/postmaster.c:2195 #, c-format msgid "received immediate shutdown request" msgstr "即時シャットダウン要求を受け取りました" -#: postmaster/postmaster.c:2388 +#: postmaster/postmaster.c:2270 #, c-format msgid "shutdown at recovery target" msgstr "リカバリ目標でシャットダウンします" -#: postmaster/postmaster.c:2406 postmaster/postmaster.c:2442 +#: postmaster/postmaster.c:2288 postmaster/postmaster.c:2324 msgid "startup process" msgstr "起動プロセス" -#: postmaster/postmaster.c:2409 +#: postmaster/postmaster.c:2291 #, c-format msgid "aborting startup due to startup process failure" msgstr "起動プロセスの失敗のため起動を中断しています" -#: postmaster/postmaster.c:2484 +#: postmaster/postmaster.c:2347 #, c-format msgid "database system is ready to accept connections" msgstr "データベースシステムの接続受け付け準備が整いました" -#: postmaster/postmaster.c:2505 +#: postmaster/postmaster.c:2369 msgid "background writer process" msgstr "バックグランドライタプロセス" -#: postmaster/postmaster.c:2552 +#: postmaster/postmaster.c:2402 msgid "checkpointer process" msgstr "チェックポイント処理プロセス" -#: postmaster/postmaster.c:2568 +#: postmaster/postmaster.c:2419 msgid "WAL writer process" msgstr "WALライタプロセス" -#: postmaster/postmaster.c:2583 +#: postmaster/postmaster.c:2435 msgid "WAL receiver process" msgstr "WAL 受信プロセス" -#: postmaster/postmaster.c:2597 +#: postmaster/postmaster.c:2450 msgid "WAL summarizer process" msgstr "WAL集約プロセス" -#: postmaster/postmaster.c:2612 +#: postmaster/postmaster.c:2466 msgid "autovacuum launcher process" msgstr "自動VACUUM起動プロセス" -#: postmaster/postmaster.c:2630 +#: postmaster/postmaster.c:2482 msgid "archiver process" msgstr "アーカイバプロセス" -#: postmaster/postmaster.c:2643 +#: postmaster/postmaster.c:2497 msgid "system logger process" msgstr "システムログ取得プロセス" -#: postmaster/postmaster.c:2660 +#: postmaster/postmaster.c:2515 msgid "slot sync worker process" msgstr "スロット同期ワーカープロセス" -#: postmaster/postmaster.c:2716 +#: postmaster/postmaster.c:2523 utils/init/miscinit.c:297 +msgid "io worker" +msgstr "IOワーカー" + +#: postmaster/postmaster.c:2545 postmaster/postmaster.c:2547 +msgid "untracked child process" +msgstr "追跡されていない子プロセス" + +#: postmaster/postmaster.c:2580 #, c-format msgid "background worker \"%s\"" msgstr "バックグラウンドワーカー\"%s\"" -#: postmaster/postmaster.c:2795 postmaster/postmaster.c:2815 postmaster/postmaster.c:2822 postmaster/postmaster.c:2840 -msgid "server process" -msgstr "サーバープロセス" - -#: postmaster/postmaster.c:2894 +#: postmaster/postmaster.c:2797 #, 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:3081 +#: postmaster/postmaster.c:2830 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d)は終了コード%dで終了しました" -#: postmaster/postmaster.c:3083 postmaster/postmaster.c:3095 postmaster/postmaster.c:3105 postmaster/postmaster.c:3116 +#: postmaster/postmaster.c:2832 postmaster/postmaster.c:2844 postmaster/postmaster.c:2854 postmaster/postmaster.c:2865 #, 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:3092 +#: postmaster/postmaster.c:2841 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d)は例外%Xで終了しました" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3102 +#: postmaster/postmaster.c:2851 #, 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:3114 +#: postmaster/postmaster.c:2863 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d)は認識できないステータス%dで終了しました" -#: postmaster/postmaster.c:3330 +#: postmaster/postmaster.c:3154 #, c-format msgid "abnormal database system shutdown" msgstr "データベースシステムは異常にシャットダウンしました" -#: postmaster/postmaster.c:3356 +#: postmaster/postmaster.c:3180 #, c-format msgid "shutting down due to startup process failure" msgstr "起動プロセスの失敗のためシャットダウンしています" -#: postmaster/postmaster.c:3362 +#: postmaster/postmaster.c:3186 #, c-format msgid "shutting down because \"restart_after_crash\" is off" msgstr "\"restart_after_crash\"がoffであるためシャットダウンします" -#: postmaster/postmaster.c:3374 +#: postmaster/postmaster.c:3198 #, c-format msgid "all server processes terminated; reinitializing" msgstr "全てのサーバープロセスが終了しました: 再初期化しています" -#: postmaster/postmaster.c:3573 postmaster/postmaster.c:3983 postmaster/postmaster.c:4372 -#, c-format -msgid "could not generate random cancel key" -msgstr "ランダムなキャンセルキーを生成できませんでした" - -#: postmaster/postmaster.c:3606 +#: postmaster/postmaster.c:3591 #, c-format msgid "could not fork new process for connection: %m" msgstr "接続用の新しいプロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:3648 +#: postmaster/postmaster.c:3626 msgid "could not fork new process for connection: " msgstr "接続用の新しいプロセスをforkできませんでした" -#: postmaster/postmaster.c:3682 +#: postmaster/postmaster.c:3660 #, c-format -msgid "Please report this to <%s>." -msgstr "これを<%s>まで報告してください。" +msgid "postmaster became multithreaded" +msgstr "postmasterがマルチスレッド動作になっています" -#: postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3738 #, c-format msgid "database system is ready to accept read-only connections" msgstr "データベースシステムはリードオンリー接続の受け付け準備ができました" -#: postmaster/postmaster.c:3933 -#, c-format -msgid "could not fork \"%s\" process: %m" -msgstr "\"%s\"プロセスをforkできませんでした: %m" - -#: postmaster/postmaster.c:4171 postmaster/postmaster.c:4205 +#: postmaster/postmaster.c:3839 #, c-format -msgid "database connection requirement not indicated during registration" -msgstr "登録時にデータベース接続の必要性が示されていません" +msgid "WAL was shut down unexpectedly" +msgstr "WALが予期せずシャットダウンされました。" -#: postmaster/postmaster.c:4181 postmaster/postmaster.c:4215 +#: postmaster/postmaster.c:3964 #, c-format -msgid "invalid processing mode in background worker" -msgstr "バックグラウンドワーカー内の不正な処理モード" +msgid "no slot available for new autovacuum worker process" +msgstr "新しい自動VACUUMワーカープロセスに割り当て可能なスロットがありません" -#: postmaster/postmaster.c:4275 +#: postmaster/postmaster.c:3979 #, c-format -msgid "could not fork background worker process: %m" -msgstr "バックグランドワーカープロセスをforkできませんでした: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "\"%s\"プロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:4358 +#: postmaster/postmaster.c:4138 #, c-format msgid "no slot available for new background worker process" msgstr "新しいバックグラウンドワーカープロセスに割り当て可能なスロットがありません" -#: postmaster/postmaster.c:4621 +#: postmaster/postmaster.c:4156 +#, c-format +msgid "could not fork background worker process: %m" +msgstr "バックグランドワーカープロセスをforkできませんでした: %m" + +#: postmaster/postmaster.c:4489 #, c-format msgid "could not read exit code for process\n" msgstr "子プロセスの終了コードの読み込みができませんでした\n" -#: postmaster/postmaster.c:4663 +#: postmaster/postmaster.c:4531 #, c-format msgid "could not post child completion status\n" msgstr "個プロセスの終了コードを投稿できませんでした\n" -#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 +#: postmaster/syslogger.c:527 postmaster/syslogger.c:1172 #, c-format msgid "could not read from logger pipe: %m" msgstr "ロガーパイプから読み取れませんでした: %m" -#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 +#: postmaster/syslogger.c:626 postmaster/syslogger.c:640 #, c-format msgid "could not create pipe for syslog: %m" msgstr "syslog用のパイプを作成できませんでした: %m" -#: postmaster/syslogger.c:712 +#: postmaster/syslogger.c:711 #, c-format msgid "could not fork system logger: %m" msgstr "システムロガーをforkできませんでした: %m" -#: postmaster/syslogger.c:731 +#: postmaster/syslogger.c:730 #, c-format msgid "redirecting log output to logging collector process" msgstr "ログ出力をログ収集プロセスにリダイレクトしています" -#: postmaster/syslogger.c:732 +#: postmaster/syslogger.c:731 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "ここからのログ出力はディレクトリ\"%s\"に現れます。" -#: postmaster/syslogger.c:740 +#: postmaster/syslogger.c:739 #, c-format msgid "could not redirect stdout: %m" msgstr "標準出力にリダイレクトできませんでした: %m" -#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 +#: postmaster/syslogger.c:744 postmaster/syslogger.c:761 #, c-format msgid "could not redirect stderr: %m" msgstr "標準エラー出力にリダイレクトできませんでした: %m" -#: postmaster/syslogger.c:1128 +#: postmaster/syslogger.c:1127 #, c-format msgid "could not write to log file: %m\n" msgstr "ログファイルに書き込めませんでした: %m\n" -#: postmaster/syslogger.c:1246 +#: postmaster/syslogger.c:1247 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ロックファイル\"%s\"をオープンできませんでした: %m" -#: postmaster/syslogger.c:1336 +#: postmaster/syslogger.c:1337 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "自動ローテーションを無効にしています(再度有効にするにはSIGHUPを使用してください)" -#: postmaster/walsummarizer.c:384 +#: postmaster/walsummarizer.c:743 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "WAL集計が進んでいません" + +#: postmaster/walsummarizer.c:744 +#, c-format +msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." +msgstr "集計は%X/%Xまで進んでいる必要がありますが、ディスク上では%X/%X、メモリ上では%X/%Xよりあとまで進んでいません。" + +#: postmaster/walsummarizer.c:758 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "%3$ld秒経過しましたが、WAL集計が%1$X/%2$Xに到達するのをまだ待ってます" + +#: postmaster/walsummarizer.c:763 #, c-format -msgid "switch point from TLI %u to TLI %u is at %X/%X" -msgstr "TLI %uから%uへの切り替え点は%X/%X" +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "集計がディスク上で%X/%X、メモリ上で%X/%Xに到達しました。" -#: postmaster/walsummarizer.c:885 +#: postmaster/walsummarizer.c:1007 #, c-format msgid "could not find a valid record after %X/%X" msgstr "%X/%Xの後に有効なレコードが見つかりませんでした" -#: postmaster/walsummarizer.c:930 +#: postmaster/walsummarizer.c:1052 #, c-format msgid "could not read WAL from timeline %u at %X/%X: %s" msgstr "%X/%Xでタイムライン%uのWALを読み取れませんでした: %s" -#: postmaster/walsummarizer.c:936 +#: postmaster/walsummarizer.c:1058 #, c-format msgid "could not read WAL from timeline %u at %X/%X" msgstr "%X/%Xでタイムライン%uのWALを読み取れませんでした" -#: postmaster/walsummarizer.c:1077 -#, c-format -msgid "summarized WAL on TLI %u from %X/%X to %X/%X" -msgstr "TLI %uの%X/%Xから%X/%Xまで集計しました" - -#: postmaster/walsummarizer.c:1385 -#, c-format -msgid "timeline %u became historic, can read up to %X/%X" -msgstr "タイムライン%uは過去のものになりました、%X/%Xまでは読み取り可能です" - #: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "正規表現で使用する照合規則を特定できませんでした" -#: regex/regc_pg_locale.c:262 +#: regex/regc_pg_locale.c:265 #, c-format msgid "nondeterministic collations are not supported for regular expressions" msgstr "非決定的照合順序は正規表現ではサポートされていません" -#: repl_gram.y:318 repl_gram.y:359 +#: repl_gram.y:322 repl_gram.y:363 #, c-format msgid "invalid timeline %u" msgstr "タイムライン%uは不正です" -#: repl_scanner.l:154 +#: repl_scanner.l:160 msgid "invalid streaming start location" msgstr "不正なストリーミング開始位置" -#: replication/libpqwalreceiver/libpqwalreceiver.c:267 replication/libpqwalreceiver/libpqwalreceiver.c:358 +#: replication/libpqwalreceiver/libpqwalreceiver.c:230 replication/libpqwalreceiver/libpqwalreceiver.c:322 #, c-format msgid "password is required" msgstr "パスワードが必要です" -#: replication/libpqwalreceiver/libpqwalreceiver.c:268 +#: replication/libpqwalreceiver/libpqwalreceiver.c:231 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "非スーパーユーザーはサーバーがパスワードを要求してこない場合は接続できません。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:269 +#: replication/libpqwalreceiver/libpqwalreceiver.c:232 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." msgstr "接続先サーバーの認証方式を変更するか、サブスクリプション属性でpassword_requiredをfalseに設定する必要があります。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:285 +#: replication/libpqwalreceiver/libpqwalreceiver.c:249 #, c-format msgid "could not clear search path: %s" msgstr "search_pathを消去できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:331 replication/libpqwalreceiver/libpqwalreceiver.c:517 +#: replication/libpqwalreceiver/libpqwalreceiver.c:295 replication/libpqwalreceiver/libpqwalreceiver.c:483 #, c-format msgid "invalid connection string syntax: %s" msgstr "不正な接続文字列の構文: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:359 +#: replication/libpqwalreceiver/libpqwalreceiver.c:323 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "非スーパーユーザーは接続文字列中でパスワードを指定する必要があります。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:386 +#: replication/libpqwalreceiver/libpqwalreceiver.c:350 #, c-format msgid "could not parse connection string: %s" msgstr "接続文字列をパースできませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:459 +#: replication/libpqwalreceiver/libpqwalreceiver.c:425 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "プライマリサーバーからデータベースシステムの識別子とタイムライン ID を受信できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 replication/libpqwalreceiver/libpqwalreceiver.c:763 +#: replication/libpqwalreceiver/libpqwalreceiver.c:442 replication/libpqwalreceiver/libpqwalreceiver.c:737 #, c-format msgid "invalid response from primary server" msgstr "プライマリサーバーからの応答が不正です" -#: replication/libpqwalreceiver/libpqwalreceiver.c:477 +#: replication/libpqwalreceiver/libpqwalreceiver.c:443 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "システムを識別できませんでした: 受信したのは%d行で%d列、期待していたのは%d行で%d以上の列でした。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:606 replication/libpqwalreceiver/libpqwalreceiver.c:613 replication/libpqwalreceiver/libpqwalreceiver.c:643 +#: replication/libpqwalreceiver/libpqwalreceiver.c:572 replication/libpqwalreceiver/libpqwalreceiver.c:579 replication/libpqwalreceiver/libpqwalreceiver.c:611 #, c-format msgid "could not start WAL streaming: %s" msgstr "WAL ストリーミングを開始できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:667 +#: replication/libpqwalreceiver/libpqwalreceiver.c:635 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "プライマリにストリーミングの終了メッセージを送信できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:690 +#: replication/libpqwalreceiver/libpqwalreceiver.c:659 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "ストリーミングの終了後の想定外の結果セット" -#: replication/libpqwalreceiver/libpqwalreceiver.c:705 +#: replication/libpqwalreceiver/libpqwalreceiver.c:675 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ストリーミングCOPY終了中のエラー: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:715 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "error reading result of streaming command: %s" msgstr "ストリーミングコマンドの結果読み取り中のエラー: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:724 replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:696 replication/libpqwalreceiver/libpqwalreceiver.c:832 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "CommandComplete後の想定外の結果: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:751 +#: replication/libpqwalreceiver/libpqwalreceiver.c:725 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "プライマリサーバーからタイムライン履歴ファイルを受信できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:764 +#: replication/libpqwalreceiver/libpqwalreceiver.c:738 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "2個のフィールドを持つ1個のタプルを期待していましたが、%2$d 個のフィールドを持つ %1$d 個のタプルを受信しました。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:920 replication/libpqwalreceiver/libpqwalreceiver.c:973 replication/libpqwalreceiver/libpqwalreceiver.c:980 +#: replication/libpqwalreceiver/libpqwalreceiver.c:793 replication/libpqwalreceiver/libpqwalreceiver.c:848 replication/libpqwalreceiver/libpqwalreceiver.c:855 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "WAL ストリームからデータを受信できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 +#: replication/libpqwalreceiver/libpqwalreceiver.c:875 #, c-format msgid "could not send data to WAL stream: %s" msgstr "WAL ストリームにデータを送信できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 +#: replication/libpqwalreceiver/libpqwalreceiver.c:978 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "レプリケーションスロット\"%s\"を作成できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1030 #, c-format msgid "could not alter replication slot \"%s\": %s" msgstr "レプリケーションスロット\"%s\"を変更できませんでした: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1064 #, c-format msgid "invalid query response" msgstr "不正な問い合わせ応答" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1065 #, c-format msgid "Expected %d fields, got %d fields." msgstr "%d個の列を期待していましたが、%d列を受信しました。" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1135 #, c-format msgid "the query interface requires a database connection" msgstr "クエリインタフェースの動作にはデータベースコネクションが必要です" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1169 msgid "empty query" msgstr "空の問い合わせ" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 msgid "unexpected pipeline mode" msgstr "想定されていないパイプラインモード" @@ -20188,40 +20653,149 @@ msgstr "共有メモリキューにデータを送出できませんでした" msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" msgstr "論理レプリケーションt起用ワーカーはリモートトランザクション%uの残りの変更をシリアライズしてファイルに格納します" -#: replication/logical/decode.c:177 replication/logical/logical.c:141 +#: replication/logical/conflict.c:126 #, c-format -msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" -msgstr "スタンバイ上で論理デコードを行うためにはプライマリ上で\"wal_level\" >= \"logical\"である必要があります" +msgid "conflict detected on relation \"%s.%s\": conflict=%s" +msgstr "リレーション\"%s.%s\"で衝突が検出されました: conflict=%s" -#: replication/logical/launcher.c:334 +#: replication/logical/conflict.c:223 #, c-format -msgid "cannot start logical replication workers when max_replication_slots = 0" -msgstr "max_replication_slots = 0 の時は論理レプリケーションワーカーは起動できません" +msgid "Key already exists in unique index \"%s\", modified locally in transaction %u at %s." +msgstr "ユニークインデックス\"%s\"にすでにキーが存在しており、トランザクション%uで%sにローカルに更新されています。" -#: replication/logical/launcher.c:427 +#: replication/logical/conflict.c:227 #, c-format -msgid "out of logical replication worker slots" -msgstr "論理レプリケーションワーカースロットは全て使用中です" +msgid "Key already exists in unique index \"%s\", modified by origin \"%s\" in transaction %u at %s." +msgstr "ユニークインデックス\"%s\"にすでにキーが存在しており、起源\"%s\"によってトランザクション%uで%sにに更新されています。" -#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 replication/slot.c:1524 storage/lmgr/lock.c:963 storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2804 storage/lmgr/lock.c:4189 storage/lmgr/lock.c:4254 storage/lmgr/lock.c:4604 storage/lmgr/predicate.c:2464 storage/lmgr/predicate.c:2479 storage/lmgr/predicate.c:3876 +#: replication/logical/conflict.c:239 #, c-format -msgid "You might need to increase \"%s\"." -msgstr "\"%s\"を大きくする必要があるかもしれません。" +msgid "Key already exists in unique index \"%s\", modified by a non-existent origin in transaction %u at %s." +msgstr "ユニークインデックス\"%s\"にすでにキーが存在しており、存在しない起源によってトランザクション%uで%sにに更新されています。" -#: replication/logical/launcher.c:513 +#: replication/logical/conflict.c:244 #, c-format -msgid "out of background worker slots" -msgstr "バックグラウンドワーカースロットが足りません" +msgid "Key already exists in unique index \"%s\", modified in transaction %u." +msgstr "ユニークインデックス\"%s\"にすでにキーが存在しており、トランザクション%uで更新されています。" -#: replication/logical/launcher.c:720 +#: replication/logical/conflict.c:251 #, c-format -msgid "logical replication worker slot %d is empty, cannot attach" -msgstr "論理レプリケーションワーカースロット%dが空いていないため接続できません" +msgid "Updating the row that was modified locally in transaction %u at %s." +msgstr "トランザクション%uで%sにローカルに更新された行の更新中。" -#: replication/logical/launcher.c:729 +#: replication/logical/conflict.c:254 #, c-format -msgid "logical replication worker slot %d is already used by another worker, cannot attach" -msgstr "論理レプリケーションワーカースロット%dが既に他のワーカーに使用されているため接続できません" +msgid "Updating the row that was modified by a different origin \"%s\" in transaction %u at %s." +msgstr "異なる起源”%s\"よってトランザクション%uで%sに更新された行の更新中。" + +#: replication/logical/conflict.c:259 +#, c-format +msgid "Updating the row that was modified by a non-existent origin in transaction %u at %s." +msgstr "存在しない起源よってトランザクション%uで%sに更新された行の更新中。" + +#: replication/logical/conflict.c:265 +msgid "Could not find the row to be updated." +msgstr "更新すべき行が見つかりませんでした。" + +#: replication/logical/conflict.c:270 +#, c-format +msgid "Deleting the row that was modified locally in transaction %u at %s." +msgstr "トランザクション%uで%sにローカルに更新された行の削除中。" + +#: replication/logical/conflict.c:273 +#, c-format +msgid "Deleting the row that was modified by a different origin \"%s\" in transaction %u at %s." +msgstr "異なる起源”%s\"よってトランザクション%uで%sに更新された行の削除中。" + +#: replication/logical/conflict.c:278 +#, c-format +msgid "Deleting the row that was modified by a non-existent origin in transaction %u at %s." +msgstr "存在しない起源よってトランザクション%uで%sに更新された行の削除中。" + +#: replication/logical/conflict.c:284 +msgid "Could not find the row to be deleted." +msgstr "削除すべき行が見つかりませんでした。" + +#: replication/logical/conflict.c:347 +#, c-format +msgid "Key %s" +msgstr "キー %s" + +#: replication/logical/conflict.c:364 +#, c-format +msgid "existing local tuple %s" +msgstr "存在するローカルタプル %s" + +#: replication/logical/conflict.c:369 +#, c-format +msgid "Existing local tuple %s" +msgstr "存在するローカルタプル %s" + +#: replication/logical/conflict.c:396 +#, c-format +msgid "remote tuple %s" +msgstr "リモートタプル %s" + +#: replication/logical/conflict.c:400 +#, c-format +msgid "Remote tuple %s" +msgstr "リモートタプル %s" + +#: replication/logical/conflict.c:434 +#, c-format +msgid "replica identity %s" +msgstr "複製識別 %s" + +#: replication/logical/conflict.c:435 +#, c-format +msgid "replica identity full %s" +msgstr "全列複製識別 %s" + +#: replication/logical/conflict.c:440 +#, c-format +msgid "Replica identity %s" +msgstr "複製識別 %s" + +#: replication/logical/conflict.c:441 +#, c-format +msgid "Replica identity full %s" +msgstr "全列複製識別 %s" + +#: replication/logical/decode.c:177 replication/logical/logical.c:141 +#, c-format +msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" +msgstr "スタンバイ上で論理デコードを行うためにはプライマリ上で\"wal_level\" >= \"logical\"である必要があります" + +#: replication/logical/launcher.c:331 +#, c-format +msgid "cannot start logical replication workers when \"max_active_replication_origins\"=0" +msgstr "\"max_active_replication_origins\"=0 の時は論理レプリケーションワーカーは起動できません" + +#: replication/logical/launcher.c:424 +#, c-format +msgid "out of logical replication worker slots" +msgstr "論理レプリケーションワーカースロットは全て使用中です" + +#. translator: %s is a GUC variable name +#: replication/logical/launcher.c:425 replication/logical/launcher.c:511 replication/slot.c:1556 replication/slot.c:1579 storage/lmgr/lock.c:1039 storage/lmgr/lock.c:1077 storage/lmgr/lock.c:2966 storage/lmgr/lock.c:4371 storage/lmgr/lock.c:4436 storage/lmgr/lock.c:4786 storage/lmgr/predicate.c:2479 storage/lmgr/predicate.c:2494 storage/lmgr/predicate.c:3891 +#, c-format +msgid "You might need to increase \"%s\"." +msgstr "\"%s\"を大きくする必要があるかもしれません。" + +#: replication/logical/launcher.c:510 +#, c-format +msgid "out of background worker slots" +msgstr "バックグラウンドワーカースロットが足りません" + +#: replication/logical/launcher.c:717 +#, c-format +msgid "logical replication worker slot %d is empty, cannot attach" +msgstr "論理レプリケーションワーカースロット%dが空いていないため接続できません" + +#: replication/logical/launcher.c:726 +#, c-format +msgid "logical replication worker slot %d is already used by another worker, cannot attach" +msgstr "論理レプリケーションワーカースロット%dが既に他のワーカーに使用されているため接続できません" #: replication/logical/logical.c:121 #, c-format @@ -20233,82 +20807,67 @@ msgstr "論理デコードを行うためには\"wal_level\" >= \"logical\" で msgid "logical decoding requires a database connection" msgstr "論理デコードを行うにはデータベース接続が必要です" -#: replication/logical/logical.c:364 replication/logical/logical.c:518 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "物理レプリケーションスロットを論理デコードに使用するとはできません" -#: replication/logical/logical.c:369 replication/logical/logical.c:528 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "レプリケーションスロット\"%s\"はこのデータベースでは作成されていません" -#: replication/logical/logical.c:376 +#: replication/logical/logical.c:377 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "論理レプリケーションスロットは書き込みを行ったトランザクションの中で生成することはできません" -#: replication/logical/logical.c:539 +#: replication/logical/logical.c:540 #, c-format msgid "cannot use replication slot \"%s\" for logical decoding" msgstr "レプリケーションスロット\"%s\"は論理デコードには使用できません" -#: replication/logical/logical.c:541 +#: replication/logical/logical.c:542 replication/slot.c:828 replication/slot.c:863 #, c-format -msgid "This slot is being synchronized from the primary server." -msgstr "このスロットはプライマリサーバーからの同期中です。" +msgid "This replication slot is being synchronized from the primary server." +msgstr "このレプリケーションスロットはプライマリサーバーからの同期中です。" -#: replication/logical/logical.c:542 +#: replication/logical/logical.c:543 #, c-format msgid "Specify another replication slot." msgstr "他のレプリケーションスロットを指定してください。" -#: replication/logical/logical.c:553 replication/logical/logical.c:560 -#, c-format -msgid "can no longer get changes from replication slot \"%s\"" -msgstr "すでにレプリケーションスロット\"%s\"から変更を取り出すことはできません" - -#: replication/logical/logical.c:555 -#, c-format -msgid "This slot has been invalidated because it exceeded the maximum reserved size." -msgstr "最大留保量を超えたため、このスロットは無効化されています。" - -#: replication/logical/logical.c:562 -#, c-format -msgid "This slot has been invalidated because it was conflicting with recovery." -msgstr "リカバリとの競合のため、このスロットは無効化されました。" - -#: replication/logical/logical.c:627 +#: replication/logical/logical.c:609 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "スロット\"%s\"の論理デコードを開始します" -#: replication/logical/logical.c:629 +#: replication/logical/logical.c:611 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "%3$X/%4$XからWALを読み取って、%1$X/%2$X以降にコミットされるトランザクションをストリーミングします。" -#: replication/logical/logical.c:777 +#: replication/logical/logical.c:759 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "スロット\"%s\", 出力プラグイン\"%s\", %sコールバックの処理中, 関連LSN %X/%X" -#: replication/logical/logical.c:783 +#: replication/logical/logical.c:765 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "スロット\"%s\", 出力プラグイン\"%s\", %sコールバックの処理中" -#: replication/logical/logical.c:954 replication/logical/logical.c:999 replication/logical/logical.c:1044 replication/logical/logical.c:1090 +#: replication/logical/logical.c:936 replication/logical/logical.c:981 replication/logical/logical.c:1026 replication/logical/logical.c:1072 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "プリペア時の論理レプリケーションを行うには%sコールバックが必要です" -#: replication/logical/logical.c:1322 replication/logical/logical.c:1371 replication/logical/logical.c:1412 replication/logical/logical.c:1498 replication/logical/logical.c:1547 +#: replication/logical/logical.c:1304 replication/logical/logical.c:1353 replication/logical/logical.c:1394 replication/logical/logical.c:1480 replication/logical/logical.c:1529 #, c-format msgid "logical streaming requires a %s callback" msgstr "論理ストリーミングを行うには%sコールバックが必要です" -#: replication/logical/logical.c:1457 +#: replication/logical/logical.c:1439 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "プリペア時の論理ストリーミングを行うには%sコールバックが必要です" @@ -20333,7 +20892,7 @@ msgstr "配列は1次元でなければなりません" msgid "array must not contain nulls" msgstr "配列にはNULL値を含めてはいけません" -#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1406 utils/adt/jsonb.c:1304 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1428 utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "配列の要素数は偶数でなければなりません" @@ -20343,32 +20902,32 @@ msgstr "配列の要素数は偶数でなければなりません" msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "論理デコード出力プラグイン\"%s\"はバイナリ出力を生成します, しかし関数\"%s\"はテキストデータを期待しています" -#: replication/logical/origin.c:190 +#: replication/logical/origin.c:195 #, c-format -msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0" -msgstr "\"max_replication_slots\"が0の時はレプリケーション基点の問い合わせや操作はできません" +msgid "cannot query or manipulate replication origin when \"max_active_replication_origins\" is 0" +msgstr "\"max_active_replication_origins\"が0の時はレプリケーション基点の問い合わせや操作はできません" -#: replication/logical/origin.c:195 +#: replication/logical/origin.c:200 #, c-format msgid "cannot manipulate replication origins during recovery" msgstr "リカバリ中はレプリケーション基点を操作できません" -#: replication/logical/origin.c:240 +#: replication/logical/origin.c:245 #, c-format msgid "replication origin \"%s\" does not exist" msgstr "レプリケーション基点\"%s\"は存在しません" -#: replication/logical/origin.c:331 +#: replication/logical/origin.c:336 #, c-format msgid "could not find free replication origin ID" msgstr "レプリケーション基点IDの空きがありません" -#: replication/logical/origin.c:365 +#: replication/logical/origin.c:370 #, c-format msgid "could not drop replication origin with ID %d, in use by PID %d" msgstr "ID%dのレプリケーション基点を削除できません, PID%dで使用中です" -#: replication/logical/origin.c:492 +#: replication/logical/origin.c:497 #, c-format msgid "replication origin with ID %d does not exist" msgstr "IDが%dのレプリケーション基点がありません" @@ -20380,8 +20939,8 @@ msgstr "レプリケーションチェックポイントのマジックナンバ #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase \"max_replication_slots\"" -msgstr "使用可能なレプリケーション状態領域がありません、\"max_replication_slots\"を増やしてください" +msgid "could not find free replication state, increase \"max_active_replication_origins\"" +msgstr "使用可能なレプリケーション状態領域がありません、\"max_active_replication_origins\"を増やしてください" #: replication/logical/origin.c:806 #, c-format @@ -20403,10 +20962,10 @@ msgstr "ID%dのレプリケーション基点は既にPID%dで使用中です" msgid "could not find free replication state slot for replication origin with ID %d" msgstr "ID%dのレプリケーション基点に対するレプリケーション状態スロットの空きがありません" -#: replication/logical/origin.c:957 replication/logical/origin.c:1158 replication/slot.c:2384 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 #, c-format -msgid "Increase \"max_replication_slots\" and try again." -msgstr "\"max_replication_slots\"を増やして再度試してください" +msgid "Increase \"max_active_replication_origins\" and try again." +msgstr "\"max_active_replication_origins\"を増やして再度試してください" #: replication/logical/origin.c:1114 #, c-format @@ -20428,826 +20987,907 @@ msgstr "レプリケーション基点名\"%s\"は予約されています" msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." msgstr "\"%s\"、\"%s\"、および\"pg_\"で始まる基点名は予約されています。" -#: replication/logical/relation.c:242 +#: replication/logical/relation.c:241 +msgid ", " +msgstr ", " + +#: replication/logical/relation.c:243 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:245 -#, c-format -msgid ", \"%s\"" -msgstr ", \"%s\"" - -#: replication/logical/relation.c:251 +#: replication/logical/relation.c:262 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" msgstr[0] "論理レプリケーション先のリレーション\"%s.%s\"は複製された列を失っています: %s" -#: replication/logical/relation.c:306 +#: replication/logical/relation.c:273 +#, c-format +msgid "logical replication target relation \"%s.%s\" has incompatible generated column: %s" +msgid_plural "logical replication target relation \"%s.%s\" has incompatible generated columns: %s" +msgstr[0] "論理レプリケーション先のリレーション\"%s.%s\"に非互換の生成列が存在します: %s" + +#: replication/logical/relation.c:328 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "論理レプリケーションのターゲットリレーション\"%s.%s\"がREPLICA IDENTITYインデックスでシステム列を使用しています" -#: replication/logical/relation.c:398 +#: replication/logical/relation.c:421 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "論理レプリケーション先のリレーション\"%s.%s\"は存在しません" -#: replication/logical/reorderbuffer.c:3970 +#: replication/logical/reorderbuffer.c:4122 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "XID%uのためのデータファイルの書き出しに失敗しました: %m" -#: replication/logical/reorderbuffer.c:4316 replication/logical/reorderbuffer.c:4341 +#: replication/logical/reorderbuffer.c:4468 replication/logical/reorderbuffer.c:4493 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "並べ替えバッファのあふれファイルの読み込みに失敗しました: %m" -#: replication/logical/reorderbuffer.c:4320 replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4472 replication/logical/reorderbuffer.c:4497 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "並べ替えバッファのあふれファイルの読み込みに失敗しました: %2$uバイトのはずが%1$dバイトでした" -#: replication/logical/reorderbuffer.c:4595 +#: replication/logical/reorderbuffer.c:4746 #, c-format -msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" -msgstr "pg_replslot/%2$s/xid* の削除中にファイル\"%1$s\"が削除できませんでした: %3$m" +msgid "could not remove file \"%s\" during removal of %s/%s/xid*: %m" +msgstr "%2$s/%3$s/xid* の削除中にファイル\"%1$s\"が削除できませんでした: %4$m" -#: replication/logical/reorderbuffer.c:5091 +#: replication/logical/reorderbuffer.c:5243 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "ファイル\"%1$s\"の読み込みに失敗しました: %3$dバイトのはずが%2$dバイトでした" -#: replication/logical/slotsync.c:215 +#: replication/logical/slotsync.c:214 #, c-format -msgid "could not sync slot \"%s\" as remote slot precedes local slot" -msgstr "リモートスロットがローカルスロットよりも進んでいるためスロット\"%s\"を同期できませんでした" +msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot" +msgstr "リモートのスロットがローカルのスロットよりも進んでいるためレプリケーションスロット\"%s\"を同期できませんでした" -#: replication/logical/slotsync.c:217 +#: replication/logical/slotsync.c:216 #, c-format -msgid "Remote slot has LSN %X/%X and catalog xmin %u, but local slot has LSN %X/%X and catalog xmin %u." +msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u." msgstr "リモートスロットのLSNは%X/%Xでカタログxminは%uですが, ローカルスロットのLSNは%X/%Xでカタログxminは%uです。" -#: replication/logical/slotsync.c:459 +#: replication/logical/slotsync.c:460 #, c-format -msgid "dropped replication slot \"%s\" of dbid %u" -msgstr "dbid %2$uのレプリケーションスロット\"%1$s\"を削除しました" +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "OID %2$uのデータベースのレプリケーションスロット\"%1$s\"を削除しました" -#: replication/logical/slotsync.c:579 +#: replication/logical/slotsync.c:580 #, c-format -msgid "could not sync slot \"%s\"" -msgstr "スロット\"%s\"を同期できませんでした" +msgid "could not synchronize replication slot \"%s\"" +msgstr "レプリケーションスロット\"%s\"を同期できませんでした" -#: replication/logical/slotsync.c:580 +#: replication/logical/slotsync.c:581 #, c-format -msgid "Logical decoding cannot find consistent point from local slot's LSN %X/%X." -msgstr "論理デコードが一貫性ポイントをローカルスロットのLSN%X/%Xから見つけられません。" +msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X." +msgstr "論理デコードが一貫性ポイントをローカルスロットのLSN%X/%Xから見つけられませんでした。" -#: replication/logical/slotsync.c:589 +#: replication/logical/slotsync.c:590 #, c-format -msgid "newly created slot \"%s\" is sync-ready now" -msgstr "新規に作成したスロット\"%s\"が同期可能になりました" +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "新規に作成したレプリケーションスロット\"%s\"が同期可能になりました" -#: replication/logical/slotsync.c:628 +#: replication/logical/slotsync.c:629 #, c-format -msgid "skipping slot synchronization as the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" +msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" msgstr "受信したスロット\"%3$s\"のスロット同期LSN%1$X/%2$XがスタンバイのLSN%4$X/%5$Xよりも進んでいるためスロット同期をスキップします" -#: replication/logical/slotsync.c:650 +#: replication/logical/slotsync.c:651 #, c-format msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby" msgstr "スタンバイに同名のスロット\"%s\"がすでに存在するため、スロット同期を終了しました" -#: replication/logical/slotsync.c:819 +#: replication/logical/slotsync.c:820 #, c-format msgid "could not fetch failover logical slots info from the primary server: %s" msgstr "プライマリサーバーからフェイルオーバー属性を持つ論理スロットを取得できませんでした: %s" -#: replication/logical/slotsync.c:965 +#: replication/logical/slotsync.c:969 #, c-format -msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s" -msgstr "プライマリサーバーからprimary_slot_name \"%s\"の情報を取得できませんでした: %s" +msgid "could not fetch primary slot name \"%s\" info from the primary server: %s" +msgstr "プライマリサーバーからプライマリのスロット名\"%s\"の情報を取得できませんでした: %s" -#: replication/logical/slotsync.c:967 +#: replication/logical/slotsync.c:971 #, c-format -msgid "Check if primary_slot_name is configured correctly." -msgstr "primary_slot_nameが正しく設定されてるか確認してください。" +msgid "Check if \"primary_slot_name\" is configured correctly." +msgstr "\"primary_slot_name\"が正しく設定されているか確認してください。" -#: replication/logical/slotsync.c:987 +#: replication/logical/slotsync.c:991 #, c-format msgid "cannot synchronize replication slots from a standby server" msgstr "スタンバイサーバーからのリプリケーションスロットの同期ができませんでした" -#: replication/logical/slotsync.c:995 -#, c-format -msgid "slot synchronization requires valid primary_slot_name" -msgstr "スロット同期ではprimary_slot_nameを正しく設定する必要があります" - #. translator: second %s is a GUC variable name -#: replication/logical/slotsync.c:997 +#: replication/logical/slotsync.c:1000 #, c-format -msgid "The replication slot \"%s\" specified by %s does not exist on the primary server." -msgstr "%2$sで指定されたレプリケーションスロット\"%1$s\"はプライマリサーバーに存在しません。" +msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "%2$sで指定されたレプリケーションスロット\"%1$s\"はプライマリサーバーに存在しません" -#: replication/logical/slotsync.c:1029 +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1033 #, c-format -msgid "slot synchronization requires dbname to be specified in %s" -msgstr "スロット同期を行う際は%sでdbnameが指定されている必要があります" +msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "レプリケーションスロットの同期を行う際は\"%2$s\"で\"%1$s\"が指定されている必要があります" -#: replication/logical/slotsync.c:1050 +#: replication/logical/slotsync.c:1054 #, c-format -msgid "slot synchronization requires \"wal_level\" >= \"logical\"" -msgstr "スロット同期を行う際は\"wal_level\" >= \"logical\" である必要があります" +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "レプリケーションスロットの同期を行う際は\"wal_level\" >= \"logical\" である必要があります" -#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1067 replication/logical/slotsync.c:1095 #, c-format -msgid "slot synchronization requires %s to be defined" -msgstr "スロット同期を行う際は%sが定義されている必要があります" +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "レプリケーションスロットの同期を行う際は\"%s\"が設定されている必要があります" -#: replication/logical/slotsync.c:1077 +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1081 #, c-format -msgid "slot synchronization requires %s to be enabled" -msgstr "スロット同期を行う際は%sが有効になっている必要があります" +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "レプリケーションスロットの同期を行う際は\"%s\"が有効になっている必要があります" #. translator: %s is a GUC variable name -#: replication/logical/slotsync.c:1129 +#: replication/logical/slotsync.c:1133 #, c-format -msgid "slot sync worker will shutdown because %s is disabled" -msgstr "%sが無効にされたため、スロット同期ワーカーがシャットダウンします" +msgid "replication slot synchronization worker will shut down because \"%s\" is disabled" +msgstr "\"%s\"が無効にされたため、レプリケーションスロット同期ワーカーがシャットダウンします" -#: replication/logical/slotsync.c:1138 +#: replication/logical/slotsync.c:1142 #, c-format -msgid "slot sync worker will restart because of a parameter change" -msgstr "パラメータの変更があったため、スロット同期ワーカーが再起動します" +msgid "replication slot synchronization worker will restart because of a parameter change" +msgstr "パラメータの変更があったため、レプリケーションスロット同期ワーカーが再起動します" -#: replication/logical/slotsync.c:1162 +#: replication/logical/slotsync.c:1166 #, c-format -msgid "slot sync worker is shutting down on receiving SIGINT" -msgstr "SIGINTを受信したためスロット同期ワーカーがシャットダウンします" +msgid "replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "SIGINTを受信したためレプリケーションスロット同期ワーカーがシャットダウンします" -#: replication/logical/slotsync.c:1287 +#: replication/logical/slotsync.c:1291 #, c-format msgid "cannot synchronize replication slots when standby promotion is ongoing" msgstr "スタンバイの昇格処理中はリプリケーションスロットの同期はできません" -#: replication/logical/slotsync.c:1295 +#: replication/logical/slotsync.c:1299 #, c-format msgid "cannot synchronize replication slots concurrently" msgstr "複数のレプリケーションスロットの並行同期はできません" -#: replication/logical/slotsync.c:1403 +#: replication/logical/slotsync.c:1407 #, c-format msgid "slot sync worker started" msgstr "スロット同期ワーカーが起動しました" -#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 replication/walreceiver.c:307 +#: replication/logical/slotsync.c:1470 replication/slotfuncs.c:929 #, c-format -msgid "could not connect to the primary server: %s" -msgstr "プライマリサーバーへの接続ができませんでした: %s" +msgid "synchronization worker \"%s\" could not connect to the primary server: %s" +msgstr "同期ワーカー\"%s\"はプライマリ・サーバーに接続できませんでした: %s" -#: replication/logical/snapbuild.c:643 +#: replication/logical/snapbuild.c:514 #, c-format msgid "initial slot snapshot too large" msgstr "初期スロットスナップショットが大きすぎます" -#: replication/logical/snapbuild.c:697 +#: replication/logical/snapbuild.c:568 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" msgstr[0] "エクスポートされた論理デコードスナップショット: \"%s\" (%u個のトランザクションID を含む)" -#: replication/logical/snapbuild.c:1392 replication/logical/snapbuild.c:1484 replication/logical/snapbuild.c:2000 +#: replication/logical/snapbuild.c:1265 replication/logical/snapbuild.c:1362 replication/logical/snapbuild.c:1868 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "論理デコードは一貫性ポイントを%X/%Xで発見しました" -#: replication/logical/snapbuild.c:1394 +#: replication/logical/snapbuild.c:1267 #, c-format msgid "There are no running transactions." msgstr "実行中のトランザクションはありません。" -#: replication/logical/snapbuild.c:1436 +#: replication/logical/snapbuild.c:1314 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "論理デコードは初期開始点を%X/%Xで発見しました" -#: replication/logical/snapbuild.c:1438 replication/logical/snapbuild.c:1462 +#: replication/logical/snapbuild.c:1316 replication/logical/snapbuild.c:1340 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "%2$uより古いトランザクション(おおよそ%1$d個)の完了を待っています" -#: replication/logical/snapbuild.c:1460 +#: replication/logical/snapbuild.c:1338 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "論理デコードは初期の一貫性ポイントを%X/%Xで発見しました" -#: replication/logical/snapbuild.c:1486 +#: replication/logical/snapbuild.c:1364 #, c-format msgid "There are no old transactions anymore." msgstr "古いトランザクションはこれ以上はありません" -#: replication/logical/snapbuild.c:1887 +#: replication/logical/snapbuild.c:1735 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "スナップショット構築状態ファイル\"%1$s\"のマジックナンバーが不正です: %3$uのはずが%2$uでした" -#: replication/logical/snapbuild.c:1893 +#: replication/logical/snapbuild.c:1741 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "スナップショット状態ファイル\"%1$s\"のバージョン%2$uはサポート外です: %3$uのはずが%2$uでした" -#: replication/logical/snapbuild.c:1934 +#: replication/logical/snapbuild.c:1782 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "スナップショット生成状態ファイル\"%s\"のチェックサムが一致しません: %uですが、%uであるべきです" -#: replication/logical/snapbuild.c:2002 +#: replication/logical/snapbuild.c:1870 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "論理デコードは保存されたスナップショットを使って開始します。" -#: replication/logical/snapbuild.c:2109 +#: replication/logical/snapbuild.c:1977 #, c-format msgid "could not parse file name \"%s\"" msgstr "ファイル名\"%s\"をパースできませんでした" -#: replication/logical/tablesync.c:161 +#: replication/logical/tablesync.c:160 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "サブスクリプション\"%s\"、テーブル\"%s\"に対する論理レプリケーションテーブル同期ワーカーが終了しました" -#: replication/logical/tablesync.c:641 +#: replication/logical/tablesync.c:640 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "two_phaseを有効化可能にするため、サブスクリプション\"%s\"に対応する論理レプリケーション適用ワーカーを再起動します" -#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 +#: replication/logical/tablesync.c:830 replication/logical/tablesync.c:971 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "パブリッシャからテーブル\"%s.%s\"のテーブル情報を取得できませんでした: %s" -#: replication/logical/tablesync.c:834 +#: replication/logical/tablesync.c:837 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "テーブル\"%s.%s\"がパブリッシャ上で見つかりませんでした" -#: replication/logical/tablesync.c:892 +#: replication/logical/tablesync.c:890 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "パブリッシャからテーブル\"%s.%s\"の列リスト情報を取得できませんでした: %s" -#: replication/logical/tablesync.c:1071 +#: replication/logical/tablesync.c:1069 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "パブリッシャからテーブル\"%s.%s\"のテーブルのテーブルWHERE句を取得できませんでした: %s" -#: replication/logical/tablesync.c:1230 +#: replication/logical/tablesync.c:1236 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "テーブル\"%s.%s\"の初期内容のコピーを開始できませんでした: %s" -#: replication/logical/tablesync.c:1429 +#: replication/logical/tablesync.c:1351 +#, c-format +msgid "table synchronization worker for subscription \"%s\" could not connect to the publisher: %s" +msgstr "サブスクリプション\"%s\"のテーブル同期ワーカーがパブリッシャに接続できませんでした: %s" + +#: replication/logical/tablesync.c:1436 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "テーブルコピー中にパブリッシャ上でのトランザクション開始に失敗しました: %s" -#: replication/logical/tablesync.c:1472 +#: replication/logical/tablesync.c:1479 #, c-format msgid "replication origin \"%s\" already exists" msgstr "レプリケーション基点\"%s\"はすでに存在します" -#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 +#: replication/logical/tablesync.c:1512 replication/logical/worker.c:2383 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "ユーザー\"%s\"は行レベルセキュリティが有効なリレーションへのレプリケーションはできません: \"%s\"" -#: replication/logical/tablesync.c:1518 +#: replication/logical/tablesync.c:1525 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "テーブルコピー中にパブリッシャ上でのトランザクション終了に失敗しました: %s" -#: replication/logical/worker.c:481 +#: replication/logical/worker.c:479 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" msgstr "サブスクリプション\"%s\"に対応する論理レプリケーション並列適用ワーカーが停止します" -#: replication/logical/worker.c:483 +#: replication/logical/worker.c:481 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." msgstr "すべてのテーブルの同期が完了するまでは、ストリームされたトランザクションを適用ワーカーで扱うことはできません。" -#: replication/logical/worker.c:852 replication/logical/worker.c:967 +#: replication/logical/worker.c:851 replication/logical/worker.c:966 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "論理レプリケーション列%dのバイナリデータ書式が不正です" -#: replication/logical/worker.c:2500 +#: replication/logical/worker.c:2530 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "論理レプリケーション先のリレーション\"%s.%s\"は複製の識別列を期待していましたが、パブリッシャは送信しませんでした" -#: replication/logical/worker.c:2507 +#: replication/logical/worker.c:2537 #, 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 "論理レプリケーション先のリレーション\"%s.%s\"が識別列インデックスも主キーをもっておらず、かつパブリッシュされたリレーションがREPLICA IDENTITY FULLとなっていません" -#: replication/logical/worker.c:3371 +#: replication/logical/worker.c:3472 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "不正な論理レプリケーションのメッセージタイプ \"??? (%d)\"" -#: replication/logical/worker.c:3543 +#: replication/logical/worker.c:3644 #, c-format msgid "data stream from publisher has ended" msgstr "パブリッシャからのデータストリームが終了しました" -#: replication/logical/worker.c:3697 +#: replication/logical/worker.c:3798 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "タイムアウトにより論理レプリケーションワーカーを終了しています" -#: replication/logical/worker.c:3891 +#: replication/logical/worker.c:3995 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" msgstr "サブスクリプション\"%s\"が削除されたため、このサブスクリプションに対応する論理レプリケーションワーカーが停止します" -#: replication/logical/worker.c:3905 +#: replication/logical/worker.c:4009 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "サブスクリプション\"%s\"が無効化されたため、このサブスクリプションに対応する論理レプリケーションワーカーが停止します" -#: replication/logical/worker.c:3936 +#: replication/logical/worker.c:4040 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" msgstr "パラメータの変更があったため、サブスクリプション\"%s\"に対応する論理レプリケーション並列適用ワーカーが停止します" -#: replication/logical/worker.c:3940 +#: replication/logical/worker.c:4044 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" msgstr "パラメータの変更があったため、サブスクリプション\"%s\"に対応する論理レプリケーションワーカーが再起動します" -#: replication/logical/worker.c:3954 +#: replication/logical/worker.c:4058 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked" msgstr "サブスクリプション\"%s\"の所有者のスーパーユーザー権限が剥奪されたため、このサブスクリプションに対応する論理レプリケーション並列適用ワーカーが停止します" -#: replication/logical/worker.c:3958 +#: replication/logical/worker.c:4062 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked" msgstr "サブスクリプション\"%s\"の所有者のスーパーユーザー権限が剥奪されたため、このサブスクリプションに対応する論理レプリケーションワーカーが再起動します" -#: replication/logical/worker.c:4478 +#: replication/logical/worker.c:4564 #, c-format msgid "subscription has no replication slot set" msgstr "サブスクリプションにレプリケーションスロットが設定されていません" -#: replication/logical/worker.c:4591 +#: replication/logical/worker.c:4589 +#, c-format +msgid "apply worker for subscription \"%s\" could not connect to the publisher: %s" +msgstr "サブスクリプション\"%s\"の適用ワーカーがパブリッシャに接続できませんでした: %s" + +#: replication/logical/worker.c:4678 #, c-format msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" msgstr "サブスクリプション%uが起動中に削除されたため、このサブスクリプションに対応する論理レプリケーションワーカーは起動しません" -#: replication/logical/worker.c:4607 +#: replication/logical/worker.c:4694 #, c-format msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "サブスクリプション\"%s\"が起動中に無効化されたため、このサブスクリプションに対応する論理レプリケーションワーカーは起動しません" -#: replication/logical/worker.c:4631 +#: replication/logical/worker.c:4718 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "サブスクリプション\"%s\"、テーブル\"%s\"に対応する論理レプリケーションテーブル同期ワーカーが起動しました" -#: replication/logical/worker.c:4636 +#: replication/logical/worker.c:4723 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "サブスクリプション\"%s\"に対応する論理レプリケーション適用ワーカーが起動しました" -#: replication/logical/worker.c:4734 +#: replication/logical/worker.c:4845 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "サブスクリプション\"%s\"はエラーのため無効化されました" -#: replication/logical/worker.c:4782 +#: replication/logical/worker.c:4893 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "論理レプリケーションは%X/%Xででトランザクションのスキップを開始します" -#: replication/logical/worker.c:4796 +#: replication/logical/worker.c:4907 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "論理レプリケーションは%X/%Xでトランザクションのスキップを完了しました" -#: replication/logical/worker.c:4878 +#: replication/logical/worker.c:4989 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "サブスクリプションの\"%s\"スキップLSNをクリアしました" -#: replication/logical/worker.c:4879 +#: replication/logical/worker.c:4990 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." msgstr "リモートトランザクションの完了WAL位置(LSN) %X/%XがスキップLSN %X/%X と一致しません。" -#: replication/logical/worker.c:4905 +#: replication/logical/worker.c:5027 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" msgstr "メッセージタイプ \"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/logical/worker.c:4909 +#: replication/logical/worker.c:5031 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" msgstr "トランザクション%3$u中、メッセージタイプ\"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/logical/worker.c:4914 +#: replication/logical/worker.c:5036 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" msgstr "%4$X/%5$Xで終了したトランザクション%3$u中、メッセージタイプ\"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/logical/worker.c:4925 +#: replication/logical/worker.c:5047 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" msgstr "レプリケーション起点\"%1$s\"のリモートデータ処理中、トランザクション%5$uのレプリケーション対象リレーション\"%3$s.%4$s\"に対するメッセージタイプ\"%2$s\"内" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:5054 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" msgstr "%6$X/%7$Xで終了したトランザクション%5$u中、レプリケーション先リレーション\"%3$s.%4$s\"に対するメッセージタイプ\"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/logical/worker.c:4943 +#: replication/logical/worker.c:5065 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" msgstr "レプリケーション起点\"%1$s\"のリモートデータ処理中、トランザクション%6$uのレプリケーション対象リレーション\"%3$s.%4$s\"、列\"%5$s\"に対するメッセージタイプ\"%2$s\"内" -#: replication/logical/worker.c:4951 +#: replication/logical/worker.c:5073 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "%7$X/%8$Xで終了したトランザクション%6$u中、レプリケーション先リレーション\"%3$s.%4$s\"、列\"%5$s\"に対するメッセージタイプ\"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/pgoutput/pgoutput.c:315 +#: replication/pgoutput/pgoutput.c:328 #, c-format msgid "invalid proto_version" msgstr "不正なproto_version" -#: replication/pgoutput/pgoutput.c:320 +#: replication/pgoutput/pgoutput.c:333 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version \"%s\"は範囲外です" -#: replication/pgoutput/pgoutput.c:337 +#: replication/pgoutput/pgoutput.c:350 #, c-format msgid "invalid publication_names syntax" msgstr "publication_namesの構文が不正です" -#: replication/pgoutput/pgoutput.c:407 +#: replication/pgoutput/pgoutput.c:420 replication/pgoutput/pgoutput.c:424 #, c-format -msgid "proto_version option missing" -msgstr "proto_version オプションが指定されていません" +msgid "option \"%s\" missing" +msgstr "オプション\"%s\"が指定されていません" -#: replication/pgoutput/pgoutput.c:411 -#, c-format -msgid "publication_names option missing" -msgstr "publication_names オプションが指定されていません" - -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:469 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or lower" msgstr "クライアントが proto_version=%d を送信してきましたが、サーバーはバージョン%d以下のプロトコルのみしかサポートしていません" -#: replication/pgoutput/pgoutput.c:458 +#: replication/pgoutput/pgoutput.c:475 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or higher" msgstr "クライアントが proto_version=%d を送信してきましたが、サーバーはバージョン%d以上のプロトコルのみしかサポートしていません" -#: replication/pgoutput/pgoutput.c:473 +#: replication/pgoutput/pgoutput.c:490 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "要求されたproto_version=%dではストリーミングをサポートしていません、%d以上が必要です" -#: replication/pgoutput/pgoutput.c:479 +#: replication/pgoutput/pgoutput.c:496 #, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" msgstr "要求された proto_version=%d は並列ストリーミングをサポートしません、%d以上である必要があります" -#: replication/pgoutput/pgoutput.c:484 +#: replication/pgoutput/pgoutput.c:501 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "ストリーミングが要求されましたが、出力プラグインでサポートされていません" -#: replication/pgoutput/pgoutput.c:498 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "要求されたproto_version=%dは2相コミットをサポートしていません、%d以上が必要です" -#: replication/pgoutput/pgoutput.c:503 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "2相コミットが要求されました、しかし出力プラグインではサポートされていません" -#: replication/slot.c:260 +#: replication/pgoutput/pgoutput.c:1085 +#, c-format +msgid "cannot use different values of publish_generated_columns for table \"%s.%s\" in different publications" +msgstr "異なるパブリケーションでテーブル\"%s.%s\"に対してpublish_generated_columnsの値を異なる設定にすることはできません" + +#: replication/pgoutput/pgoutput.c:1792 +#, c-format +msgid "skipped loading publication: %s" +msgstr "パブリケーションの読み込みをスキップしました: %s" + +#: replication/pgoutput/pgoutput.c:1793 +#, c-format +msgid "The publication does not exist at this point in the WAL." +msgstr "このパブリケーションはWALのこの時点では存在しません。" + +#: replication/pgoutput/pgoutput.c:1794 +#, c-format +msgid "Create the publication if it does not exist." +msgstr "パブリケーションが存在しない場合は作成してください。" + +#: replication/slot.c:275 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "レプリケーションスロット名\"%s\"は短すぎます" -#: replication/slot.c:269 +#: replication/slot.c:284 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "レプリケーションスロット名\"%s\"は長すぎます" -#: replication/slot.c:282 +#: replication/slot.c:297 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "レプリケーションスロット名\"%s\"は不正な文字を含んでいます" -#: replication/slot.c:284 +#: replication/slot.c:299 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "レプリケーションスロット名は小文字、数字とアンダースコアのみを含むことができます。" -#: replication/slot.c:333 +#: replication/slot.c:348 #, c-format msgid "cannot enable failover for a replication slot created on the standby" msgstr "スタンバイ上で作成したレプリケーションスロットのフェイルオーバーを有効にすることはできません" -#: replication/slot.c:345 replication/slot.c:849 +#: replication/slot.c:360 replication/slot.c:885 #, c-format msgid "cannot enable failover for a temporary replication slot" msgstr "一時レプリケーションスロットのフェイルオーバーを有効にすることはできません" -#: replication/slot.c:370 +#: replication/slot.c:385 #, c-format msgid "replication slot \"%s\" already exists" msgstr "レプリケーションスロット\"%s\"はすでに存在します" -#: replication/slot.c:380 +#: replication/slot.c:395 #, c-format msgid "all replication slots are in use" msgstr "レプリケーションスロットは全て使用中です" -#: replication/slot.c:381 +#: replication/slot.c:396 #, c-format msgid "Free one or increase \"max_replication_slots\"." msgstr "どれか一つを解放するか、\"max_replication_slots\"を大きくしてください。" -#: replication/slot.c:560 replication/slot.c:2453 replication/slotfuncs.c:661 utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 +#: replication/slot.c:579 replication/slotfuncs.c:664 utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:739 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "レプリケーションスロット\"%s\"は存在しません" -#: replication/slot.c:606 replication/slot.c:1337 +#: replication/slot.c:634 replication/slot.c:1388 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "レプリケーションスロット\"%s\"はPID%dで使用中です" -#: replication/slot.c:638 +#: replication/slot.c:651 +#, c-format +msgid "can no longer access replication slot \"%s\"" +msgstr "レプリケーションスロット\"%s\"にはすでにアクセスできなくなっています" + +#: replication/slot.c:653 +#, c-format +msgid "This replication slot has been invalidated due to \"%s\"." +msgstr "このレプリケーションスロットは\"%s\"によって無効化されています。" + +#: replication/slot.c:672 #, c-format msgid "acquired logical replication slot \"%s\"" msgstr "論理レプリケーションスロット\"%s\"を取得しました" -#: replication/slot.c:640 +#: replication/slot.c:674 #, c-format msgid "acquired physical replication slot \"%s\"" msgstr "物理レプリケーションスロット\"%s\"を取得しました" -#: replication/slot.c:729 +#: replication/slot.c:759 #, c-format msgid "released logical replication slot \"%s\"" msgstr "論理レプリケーションスロット\"%s\"を解放しました" -#: replication/slot.c:731 +#: replication/slot.c:761 #, c-format msgid "released physical replication slot \"%s\"" msgstr "物理レプリケーションスロット\"%s\"を解放しました" -#: replication/slot.c:797 +#: replication/slot.c:827 #, c-format msgid "cannot drop replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"を削除できませんでした" -#: replication/slot.c:798 replication/slot.c:829 -#, c-format -msgid "This slot is being synced from the primary server." -msgstr "このスロットはプライマリサーバーからの同期中です。" - -#: replication/slot.c:816 +#: replication/slot.c:850 #, c-format msgid "cannot use %s with a physical replication slot" msgstr "%sは物理レプリケーションスロットでは使用できません" -#: replication/slot.c:828 +#: replication/slot.c:862 #, c-format msgid "cannot alter replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"を変更できませんでした" -#: replication/slot.c:838 +#: replication/slot.c:872 #, c-format msgid "cannot enable failover for a replication slot on the standby" msgstr "スタンバイ上ではレプリケーションスロットのフェイルオーバーを有効にすることはできません" -#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 +#: replication/slot.c:1020 replication/slot.c:2120 replication/slot.c:2505 #, c-format msgid "could not remove directory \"%s\"" msgstr "ディレクトリ\"%s\"を削除できませんでした" -#: replication/slot.c:1372 +#: replication/slot.c:1423 #, c-format msgid "replication slots can only be used if \"max_replication_slots\" > 0" msgstr "レプリケーションスロットは\"max_replication_slots\" > 0 のときだけ使用できます" -#: replication/slot.c:1377 +#: replication/slot.c:1428 #, c-format msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" msgstr "レプリケーションスロットは\"wal_level\" >= \"replica\" のときだけ使用できます" -#: replication/slot.c:1389 +#: replication/slot.c:1440 #, c-format msgid "permission denied to use replication slots" msgstr "レプリケーションスロットを使用する権限がありません" -#: replication/slot.c:1390 +#: replication/slot.c:1441 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "%s属性を持つロールのみがレプリケーションスロットを使用できます。" -#: replication/slot.c:1498 +#: replication/slot.c:1550 #, c-format -msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." -msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." -msgstr[0] "このスロットのrestart_lsn %X/%Xは制限を%lluバイト超過しています。" +msgid "The slot's restart_lsn %X/%X exceeds the limit by % byte." +msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by % bytes." +msgstr[0] "このスロットのrestart_lsn %X/%Xは制限を%バイト超過しています。" -#: replication/slot.c:1506 +#: replication/slot.c:1561 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "このスロットはXID地平線%uと競合しました。" -#: replication/slot.c:1511 +#: replication/slot.c:1566 msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server." msgstr "論理デコードを行うためにはプライマリサーバー上で\"wal_level\" >= \"logical\" である必要があります。" -#: replication/slot.c:1519 +#. translator: %s is a GUC variable name +#: replication/slot.c:1575 +#, c-format +msgid "The slot's idle time of %dmin %02ds exceeds the configured \"%s\" duration of %dmin." +msgstr "このスロットのアイドル時間 %d分%02d秒が、\"%s\"で設定された %d分を超えています。" + +#: replication/slot.c:1589 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "プロセス%dを終了してレプリケーションスロット\"%s\"を解放します" -#: replication/slot.c:1521 +#: replication/slot.c:1591 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "使用不能のレプリケーションスロット\"%s\"を無効化します" -#: replication/slot.c:2249 +#: replication/slot.c:2443 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "レプリケーションスロットファイル\"%1$s\"のマジックナンバーが不正です: %3$uのはずが%2$uでした" -#: replication/slot.c:2256 +#: replication/slot.c:2450 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "レプリケーションスロットファイル\"%s\"はサポート外のバージョン%uです" -#: replication/slot.c:2263 +#: replication/slot.c:2457 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "レプリケーションスロットファイル\"%s\"のサイズ%uは異常です" -#: replication/slot.c:2299 +#: replication/slot.c:2493 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "レプリケーションスロットファイル\"%s\"のチェックサムが一致しません: %uですが、%uであるべきです" -#: replication/slot.c:2333 +#: replication/slot.c:2529 #, c-format msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" msgstr "論理レプリケーションスロット\"%s\"がありますが、\"wal_level\" < \"logical\" です" -#: replication/slot.c:2335 +#: replication/slot.c:2531 #, c-format msgid "Change \"wal_level\" to be \"logical\" or higher." msgstr "\"wal_level\"を\"logical\"もしくはそれより上位の設定にしてください。" -#: replication/slot.c:2339 +#: replication/slot.c:2543 +#, c-format +msgid "logical replication slot \"%s\" exists on the standby, but \"hot_standby\" = \"off\"" +msgstr "論理レプリケーションスロット\"%s\"がありますが、\"hot_standby\" = \"off\" です" + +#: replication/slot.c:2545 +#, c-format +msgid "Change \"hot_standby\" to be \"on\"." +msgstr "\"hot_standby\" を \"on\" に変更してください。" + +#: replication/slot.c:2550 #, c-format msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" msgstr "物理レプリケーションスロット\"%s\"がありますが、\"wal_level\" < \"replica\" です" -#: replication/slot.c:2341 +#: replication/slot.c:2552 #, c-format msgid "Change \"wal_level\" to be \"replica\" or higher." msgstr "\"wal_level\"を\"replica\"もしくはそれより上位の設定にしてください。" -#: replication/slot.c:2383 +#: replication/slot.c:2598 #, c-format msgid "too many replication slots active before shutdown" msgstr "シャットダウン前のアクティブなレプリケーションスロットの数が多すぎます" -#: replication/slot.c:2461 +#: replication/slot.c:2599 +#, c-format +msgid "Increase \"max_replication_slots\" and try again." +msgstr "\"max_replication_slots\"を増やして再度試してください" + +#: replication/slot.c:2676 +#, c-format +msgid "Replication slot \"%s\" does not exist." +msgstr "レプリケーションスロット\"%s\"は存在しません。" + +#: replication/slot.c:2684 +#, c-format +msgid "\"%s\" is not a physical replication slot." +msgstr "\"%s\"は物理レプリケーションスロットではありません。" + +#: replication/slot.c:2863 #, c-format -msgid "\"%s\" is not a physical replication slot" -msgstr "\"%s\"は物理レプリケーションスロットではありません" +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "パラメータ\"%2$s\"で指定されているレプリケーションスロット\"%1$s\"は存在しません" -#: replication/slot.c:2637 +#: replication/slot.c:2865 replication/slot.c:2899 replication/slot.c:2914 #, c-format -msgid "replication slot \"%s\" specified in parameter %s does not exist" -msgstr "パラメータ%2$sで指定されているレプリケーションスロット\"%1$s\"は存在しません" +msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"." +msgstr "論理レプリケーションはレプリケーションスロット”%s\"に対応するスタンバイを待っています。 " -#: replication/slot.c:2639 replication/slot.c:2680 replication/slot.c:2695 +#: replication/slot.c:2867 #, c-format -msgid "Logical replication is waiting on the standby associated with \"%s\"." -msgstr "論理レプリケーションは”%s\"に対応するスタンバイを待っています。 " +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "レプリケーションスロット\"%s\"を作成するか、パラメータ\"%s\"を修正してください。" -#: replication/slot.c:2641 +#: replication/slot.c:2877 #, c-format -msgid "Consider creating the slot \"%s\" or amend parameter %s." -msgstr "スロット\"%s\"を作成するか、パラメータ%sを修正することを検討してください。" +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "パラメータ\"%2$s\"では論理レプリケーションスロット\"%1$s\"は指定できません" -#: replication/slot.c:2658 +#: replication/slot.c:2879 #, c-format -msgid "cannot have logical replication slot \"%s\" in parameter %s" -msgstr "パラメータ%2$sでは論理レプリケーションスロット\"%1$s\"は指定できません" +msgid "Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "論理レプリケーションはレプリケーションスロット\"%s\"が修正されるのを待っています。" -#: replication/slot.c:2660 +#: replication/slot.c:2881 #, c-format -msgid "Logical replication is waiting for correction on \"%s\"." -msgstr "論理レプリケーションは\"%s\"が修正されるのを待っています。" +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "論理レプリケーションスロット\"%s\"をパラメータ\"%s\"から削除してください。" -#: replication/slot.c:2662 +#: replication/slot.c:2897 #, c-format -msgid "Consider removing logical slot \"%s\" from parameter %s." -msgstr "パラメータ%sから論理スロット\"%s\"を削除することを検討してください。" +msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated" +msgstr "パラメータ\"%2$s\"で指定された物理レプリケーションスロット\"%1$s\"は無効化されています" -#: replication/slot.c:2678 +#: replication/slot.c:2901 #, c-format -msgid "physical slot \"%s\" specified in parameter %s has been invalidated" -msgstr "パラメータ%2$sで指定された物理スロット\"%1$s\"は無効化されました" +msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "レプリケーションスロット\"%s\"を削除して再作成するか、パラメータ\"%s\"を修正してください。" -#: replication/slot.c:2682 +#: replication/slot.c:2912 #, c-format -msgid "Consider dropping and recreating the slot \"%s\" or amend parameter %s." -msgstr "スロット\"%s\"の削除および再作成、もしくはパラメータ%sの修正を検討してください。" +msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid" +msgstr "\"%2$s\"で指定されたレプリケーションスロット\"%1$s\"にはactive_pidがありません" -#: replication/slot.c:2693 +#: replication/slot.c:2916 #, c-format -msgid "replication slot \"%s\" specified in parameter %s does not have active_pid" -msgstr "%2$sで指定されたレプリケーションスロット\"%1$s\"にはactive_pidがありません" +msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "レプリケーションスロット\"%s\"に関連付けられているスタンバイを起動するか、パラメータ%sを修正してください。" -#: replication/slot.c:2697 +#: replication/slot.c:3008 #, c-format -msgid "Consider starting standby associated with \"%s\" or amend parameter %s." -msgstr "\"%s\"に関連付けられているスタンバイを起動するか、パラメータ%sを修正することを検討してくだささい。" +msgid "\"%s\" must be set to 0 during binary upgrade mode." +msgstr "バイナリアップグレードモード中は\"%s\"は0に設定されている必要があります。" -#: replication/slotfuncs.c:526 +#: replication/slotfuncs.c:529 #, c-format msgid "invalid target WAL LSN" msgstr "不正な目標WAL LSN" -#: replication/slotfuncs.c:548 +#: replication/slotfuncs.c:551 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "レプリケーションスロット\"%s\"は進められません" -#: replication/slotfuncs.c:550 +#: replication/slotfuncs.c:553 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." msgstr "このスロットはWALを留保したことがないか、無効化さています。" -#: replication/slotfuncs.c:566 +#: replication/slotfuncs.c:569 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "レプリケーションスロットを %X/%X に進めることはできません、最小値は %X/%X" -#: replication/slotfuncs.c:673 +#: replication/slotfuncs.c:676 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "物理レプリケーションスロット\"%s\"を論理レプリケーションスロットとしてコピーすることはできません" -#: replication/slotfuncs.c:675 +#: replication/slotfuncs.c:678 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "論理レプリケーションスロット\"%s\"を物理レプリケーションスロットとしてコピーすることはできません" -#: replication/slotfuncs.c:682 +#: replication/slotfuncs.c:685 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "WAL の留保をしていないレプリケーションスロットはコピーできません" -#: replication/slotfuncs.c:768 +#: replication/slotfuncs.c:691 +#, c-format +msgid "cannot copy invalidated replication slot \"%s\"" +msgstr "無効化されたレプリケーションスロット\"%s\"はコピーできません" + +#: replication/slotfuncs.c:783 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"をコピーできませんでした" -#: replication/slotfuncs.c:770 +#: replication/slotfuncs.c:785 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "コピー処理中にコピー元のレプリケーションスロットが非互換的に変更されました。" -#: replication/slotfuncs.c:776 +#: replication/slotfuncs.c:791 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "未完成の論理レプリケーションスロット\"%s\"はコピーできません" -#: replication/slotfuncs.c:778 +#: replication/slotfuncs.c:793 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "このソースレプリケーションスロットの confirmed_flush_lsn が有効値になってから再度実行してください。" -#: replication/slotfuncs.c:877 +#: replication/slotfuncs.c:805 +#, c-format +msgid "cannot copy replication slot \"%s\"" +msgstr "レプリケーションスロット\"%s\"はコピーできません" + +#: replication/slotfuncs.c:807 +#, c-format +msgid "The source replication slot was invalidated during the copy operation." +msgstr "コピー元のレプリケーションスロットがコピー処理中に無効化されました。" + +#: replication/slotfuncs.c:906 #, c-format msgid "replication slots can only be synchronized to a standby server" msgstr "レプリケーションスロットはスタンバイサーバーへのみ同期可能です" @@ -21278,203 +21918,203 @@ msgstr "スタンバイ\"%s\"は優先度%dの同期スタンバイになりま msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "スタンバイ\"%s\"は定足数同期スタンバイの候補になりました" -#: replication/syncrep.c:1013 +#: replication/syncrep.c:1014 #, c-format -msgid "\"synchronous_standby_names\" parser failed" -msgstr "\"synchronous_standby_names\"の読み取りに失敗しました" +msgid "\"%s\" parser failed." +msgstr "\"%s\"のパーサーが失敗しました。" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1021 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "同期スタンバイの数(%d)は1以上である必要があります" -#: replication/walreceiver.c:176 +#: replication/walreceiver.c:276 #, c-format -msgid "terminating walreceiver process due to administrator command" -msgstr "管理者コマンドにより WAL 受信プロセスを終了しています" +msgid "streaming replication receiver \"%s\" could not connect to the primary server: %s" +msgstr "ストリーミングレプリケーション・レシーバー\"%s\"はプライマリ・サーバーに接続できませんでした: %s" -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:324 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "データベースシステムの識別子がプライマリサーバーとスタンバイサーバー間で異なります" -#: replication/walreceiver.c:355 +#: replication/walreceiver.c:325 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "プライマリ側の識別子は %s ですが、スタンバイ側の識別子は %s です。" -#: replication/walreceiver.c:366 +#: replication/walreceiver.c:336 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "プライマリの最大のタイムライン%uが、リカバリのタイムライン %uより遅れています" -#: replication/walreceiver.c:419 +#: replication/walreceiver.c:389 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "プライマリのタイムライン%3$uの %1$X/%2$XからでWALストリーミングを始めます" -#: replication/walreceiver.c:423 +#: replication/walreceiver.c:393 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "タイムライン%3$uの %1$X/%2$XからでWALストリーミングを再開します" -#: replication/walreceiver.c:458 +#: replication/walreceiver.c:428 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "WAL ストリーミングを継続できません。リカバリはすでに終わっています。" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:472 #, c-format msgid "replication terminated by primary server" msgstr "プライマリサーバーによりレプリケーションが打ち切られました" -#: replication/walreceiver.c:503 +#: replication/walreceiver.c:473 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "タイムライン%uの%X/%XでWALの最後に達しました" -#: replication/walreceiver.c:593 +#: replication/walreceiver.c:573 #, c-format msgid "terminating walreceiver due to timeout" msgstr "レプリケーションタイムアウトによりwalreceiverを終了しています" -#: replication/walreceiver.c:625 +#: replication/walreceiver.c:605 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "プライマリサーバーには要求されたタイムライン%u上にこれ以上WALがありません" -#: replication/walreceiver.c:641 replication/walreceiver.c:1071 +#: replication/walreceiver.c:621 replication/walreceiver.c:1063 #, c-format msgid "could not close WAL segment %s: %m" msgstr "WALセグメント%sをクローズできませんでした: %m" -#: replication/walreceiver.c:760 +#: replication/walreceiver.c:740 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "プライマリサーバーからライムライン%u用のタイムライン履歴ファイルを取り込みしています" -#: replication/walreceiver.c:959 +#: replication/walreceiver.c:951 #, c-format msgid "could not write to WAL segment %s at offset %d, length %lu: %m" msgstr "WALファイルセグメント%sのオフセット%d、長さ%luの書き込みが失敗しました: %m" -#: replication/walsender.c:531 +#: replication/walsender.c:505 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "%sは論理レプリケーションスロットでは使用できません" -#: replication/walsender.c:635 storage/smgr/md.c:1723 +#: replication/walsender.c:609 storage/smgr/md.c:1867 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "ファイル\"%s\"の終端へシークできませんでした: %m" -#: replication/walsender.c:639 +#: replication/walsender.c:613 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "ファイル\"%s\"の先頭にシークできませんでした: %m" -#: replication/walsender.c:853 +#: replication/walsender.c:829 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "論理レプリケーションスロットは物理レプリケーションには使用できません" -#: replication/walsender.c:919 +#: replication/walsender.c:895 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "タイムライン%3$u上の要求された開始ポイント%1$X/%2$Xはサーバーの履歴にありません" -#: replication/walsender.c:922 +#: replication/walsender.c:898 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "サーバーの履歴はタイムライン%uの%X/%Xからフォークしました。" -#: replication/walsender.c:966 +#: replication/walsender.c:942 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "要求された開始ポイント%X/%XはサーバーのWALフラッシュ位置%X/%Xより進んでいます" -#: replication/walsender.c:1160 +#: replication/walsender.c:1137 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "CREATE_REPLICATION_SLOTのオプション\"%s\"に対する認識できない値: \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1266 +#: replication/walsender.c:1243 #, c-format msgid "%s must not be called inside a transaction" msgstr "%sはトランザクション内では呼び出せません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1276 +#: replication/walsender.c:1253 #, c-format msgid "%s must be called inside a transaction" msgstr "%sはトランザクション内で呼び出さなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1282 +#: replication/walsender.c:1259 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s は REPEATABLE READ 分離レベルのトランザクションで呼び出されなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1287 +#: replication/walsender.c:1264 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%sは読み取り専用トランザクションの中で呼び出さなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1293 +#: replication/walsender.c:1270 #, c-format msgid "%s must be called before any query" msgstr "%s は問い合わせの実行前に呼び出されなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1299 +#: replication/walsender.c:1276 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s はサブトランザクション内では呼び出せません" -#: replication/walsender.c:1472 +#: replication/walsender.c:1453 #, c-format msgid "terminating walsender process after promotion" msgstr "昇格後にWAL送信プロセスを終了します" -#: replication/walsender.c:2000 +#: replication/walsender.c:1994 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "WAL送信プロセスが停止モードの間は新しいコマンドを実行できません" -#: replication/walsender.c:2035 +#: replication/walsender.c:2029 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "物理レプリケーション用のWAL送信プロセスでSQLコマンドは実行できません" -#: replication/walsender.c:2068 +#: replication/walsender.c:2060 #, c-format msgid "received replication command: %s" msgstr "レプリケーションコマンドを受信しました: %s" -#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1138 tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2206 tcop/postgres.c:2644 tcop/postgres.c:2722 +#: replication/walsender.c:2068 tcop/fastpath.c:208 tcop/postgres.c:1137 tcop/postgres.c:1495 tcop/postgres.c:1747 tcop/postgres.c:2253 tcop/postgres.c:2690 tcop/postgres.c:2767 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "現在のトランザクションがアボートしました。トランザクションブロックが終わるまでコマンドは無視されます" -#: replication/walsender.c:2233 replication/walsender.c:2268 +#: replication/walsender.c:2225 replication/walsender.c:2260 #, c-format msgid "unexpected EOF on standby connection" msgstr "スタンバイ接続で想定外のEOFがありました" -#: replication/walsender.c:2256 +#: replication/walsender.c:2248 #, c-format msgid "invalid standby message type \"%c\"" msgstr "スタンバイのメッセージタイプ\"%c\"は不正です" -#: replication/walsender.c:2345 +#: replication/walsender.c:2337 #, c-format msgid "unexpected message type \"%c\"" msgstr "想定しないメッセージタイプ\"%c\"" -#: replication/walsender.c:2759 +#: replication/walsender.c:2751 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "レプリケーションタイムアウトにより WAL 送信プロセスを終了しています" @@ -21654,280 +22294,285 @@ msgstr "リレーション\"%2$s\"のルール\"%1$s\"は存在しません" msgid "renaming an ON SELECT rule is not allowed" msgstr "ON SELECTルールの名前を変更することはできません" -#: rewrite/rewriteHandler.c:581 +#: rewrite/rewriteHandler.c:590 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH の問い合わせ名\"%s\"が、ルールのアクションと書き換えられようとしている問い合わせの両方に現れています" -#: rewrite/rewriteHandler.c:608 +#: rewrite/rewriteHandler.c:617 #, 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:661 +#: rewrite/rewriteHandler.c:671 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "複数ルールではRETURNINGリストを持つことはできません" -#: rewrite/rewriteHandler.c:893 rewrite/rewriteHandler.c:932 +#: rewrite/rewriteHandler.c:908 rewrite/rewriteHandler.c:947 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "列\"%s\"への非デフォルト値の挿入はできません" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:961 +#: rewrite/rewriteHandler.c:910 rewrite/rewriteHandler.c:976 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "列\"%s\"は GENERATED ALWAYS として定義されています。" -#: rewrite/rewriteHandler.c:897 +#: rewrite/rewriteHandler.c:912 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "OVERRIDING SYSTEM VALUE を指定することで挿入を強制できます。" -#: rewrite/rewriteHandler.c:959 rewrite/rewriteHandler.c:967 +#: rewrite/rewriteHandler.c:974 rewrite/rewriteHandler.c:982 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "列\"%s\"はDEFAULTにのみ更新可能です" -#: rewrite/rewriteHandler.c:1114 rewrite/rewriteHandler.c:1132 +#: rewrite/rewriteHandler.c:1118 rewrite/rewriteHandler.c:1136 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "同じ列\"%s\"に複数の代入があります" -#: rewrite/rewriteHandler.c:1697 +#: rewrite/rewriteHandler.c:1691 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "MERGEはルールを持つリレーションに対してはサポートされません。" -#: rewrite/rewriteHandler.c:2110 rewrite/rewriteHandler.c:4197 +#: rewrite/rewriteHandler.c:1731 rewrite/rewriteHandler.c:3271 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "非システムのビュー\"%s\"へのアクセスは制限されています" + +#: rewrite/rewriteHandler.c:2130 rewrite/rewriteHandler.c:4265 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "リレーション\"%s\"のルールで無限再帰を検出しました" -#: rewrite/rewriteHandler.c:2195 +#: rewrite/rewriteHandler.c:2235 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "リレーション\"%s\"のポリシで無限再帰を検出しました" -#: rewrite/rewriteHandler.c:2547 +#: rewrite/rewriteHandler.c:2598 msgid "Junk view columns are not updatable." msgstr "ジャンクビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2552 +#: rewrite/rewriteHandler.c:2603 msgid "View columns that are not columns of their base relation are not updatable." msgstr "基底リレーションの列ではないビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2555 +#: rewrite/rewriteHandler.c:2606 msgid "View columns that refer to system columns are not updatable." msgstr "システム列を参照するビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2558 +#: rewrite/rewriteHandler.c:2609 msgid "View columns that return whole-row references are not updatable." msgstr "行全体参照を返すビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2619 +#: rewrite/rewriteHandler.c:2670 msgid "Views containing DISTINCT are not automatically updatable." msgstr "DISTINCTを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2622 +#: rewrite/rewriteHandler.c:2673 msgid "Views containing GROUP BY are not automatically updatable." msgstr "GROUP BYを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2625 +#: rewrite/rewriteHandler.c:2676 msgid "Views containing HAVING are not automatically updatable." msgstr "HAVINGを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2628 +#: rewrite/rewriteHandler.c:2679 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "UNION、INTERSECT、EXCEPTを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2631 +#: rewrite/rewriteHandler.c:2682 msgid "Views containing WITH are not automatically updatable." msgstr "WITHを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2634 +#: rewrite/rewriteHandler.c:2685 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "LIMIT、OFFSETを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2646 +#: rewrite/rewriteHandler.c:2697 msgid "Views that return aggregate functions are not automatically updatable." msgstr "集約関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2649 +#: rewrite/rewriteHandler.c:2700 msgid "Views that return window functions are not automatically updatable." msgstr "ウィンドウ関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2652 +#: rewrite/rewriteHandler.c:2703 msgid "Views that return set-returning functions are not automatically updatable." msgstr "集合返却関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2659 rewrite/rewriteHandler.c:2663 rewrite/rewriteHandler.c:2671 +#: rewrite/rewriteHandler.c:2710 rewrite/rewriteHandler.c:2714 rewrite/rewriteHandler.c:2722 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "単一のテーブルまたはビューからselectしていないビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2674 +#: rewrite/rewriteHandler.c:2725 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "TABLESAMPLEを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2698 +#: rewrite/rewriteHandler.c:2749 msgid "Views that have no updatable columns are not automatically updatable." msgstr "更新可能な列を持たないビューは自動更新できません。" -#: rewrite/rewriteHandler.c:3079 rewrite/rewriteHandler.c:3114 +#: rewrite/rewriteHandler.c:3130 rewrite/rewriteHandler.c:3165 #, c-format msgid "cannot insert into view \"%s\"" msgstr "ビュー\"%s\"へは挿入(INSERT)できません" -#: rewrite/rewriteHandler.c:3082 +#: rewrite/rewriteHandler.c:3133 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "ビューへの挿入を可能にするために、INSTEAD OF INSERTトリガまたは無条件のON INSERT DO INSTEADルールを作成してください。" -#: rewrite/rewriteHandler.c:3087 rewrite/rewriteHandler.c:3123 +#: rewrite/rewriteHandler.c:3138 rewrite/rewriteHandler.c:3174 #, c-format msgid "cannot update view \"%s\"" msgstr "ビュー\"%s\"は更新できません" -#: rewrite/rewriteHandler.c:3090 +#: rewrite/rewriteHandler.c:3141 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "ビューへの更新を可能にするために、INSTEAD OF UPDATEトリガまたは無条件のON UPDATE DO INSTEADルールを作成してください。" -#: rewrite/rewriteHandler.c:3095 rewrite/rewriteHandler.c:3132 +#: rewrite/rewriteHandler.c:3146 rewrite/rewriteHandler.c:3183 #, c-format msgid "cannot delete from view \"%s\"" msgstr "ビュー\"%s\"からは削除できません" -#: rewrite/rewriteHandler.c:3098 +#: rewrite/rewriteHandler.c:3149 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "ビューからの削除を可能にするために、INSTEAD OF DELETEトリガまたは無条件のON DELETE DO INSTEADルールを作成してください。" -#: rewrite/rewriteHandler.c:3117 +#: rewrite/rewriteHandler.c:3168 #, c-format msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger." msgstr "MERGEを用いたビューへの挿入を可能にするには、INSTEAD OF INSERTトリガーを作成してください。" -#: rewrite/rewriteHandler.c:3126 +#: rewrite/rewriteHandler.c:3177 #, c-format msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger." msgstr "MERGEを用いたビューの更新を可能にするには、INSTEAD OF UPDATEトリガーを作成してください。" -#: rewrite/rewriteHandler.c:3135 +#: rewrite/rewriteHandler.c:3186 #, c-format msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger." msgstr "MERGEを用いたビューからの削除を可能にするためには、INSTEAD OF DELETEトリガーを作成してください。" -#: rewrite/rewriteHandler.c:3289 +#: rewrite/rewriteHandler.c:3361 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "ビュー\"%2$s\"の列\"%1$s\"への挿入はできません" -#: rewrite/rewriteHandler.c:3297 +#: rewrite/rewriteHandler.c:3369 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "ビュー\"%2$s\"の列\"%1$s\"は更新できません" -#: rewrite/rewriteHandler.c:3305 +#: rewrite/rewriteHandler.c:3377 #, c-format msgid "cannot merge into column \"%s\" of view \"%s\"" msgstr "ビュー\"%2$s\"の列\"%1$s\"への統合はできません" -#: rewrite/rewriteHandler.c:3333 +#: rewrite/rewriteHandler.c:3405 #, c-format msgid "cannot merge into view \"%s\"" msgstr "ビュー\"%s\"への統合はできません" -#: rewrite/rewriteHandler.c:3335 +#: rewrite/rewriteHandler.c:3407 #, c-format -msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions, but not others." -msgstr "MERGEはINSTEAD OFトリガーが一部のアクションにのみ設定されていて、他にはされていないビューではサポートされません。" +msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all." +msgstr "MERGEはINSTEAD OFトリガーが全てではなく一部のアクションに対してのみ設定されてるビューではサポートされません。" -#: rewrite/rewriteHandler.c:3336 +#: rewrite/rewriteHandler.c:3408 #, c-format msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers." msgstr "ビューへの統合を可能にするためには、完全なINSTEAD OF INSERTトリガーを作成するか、または既存のINSTEAD OFトリガーを削除してください。" -#: rewrite/rewriteHandler.c:3855 +#: rewrite/rewriteHandler.c:3923 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "DO INSTEAD NOTIFYルールはWITH内のデータ更新文に対してはサポートされません" -#: rewrite/rewriteHandler.c:3866 +#: rewrite/rewriteHandler.c:3934 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は DO INSTEAD NOTHING ルールはサポートされません" -#: rewrite/rewriteHandler.c:3880 +#: rewrite/rewriteHandler.c:3948 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は、条件付き DO INSTEAD ルールはサポートされません" -#: rewrite/rewriteHandler.c:3884 +#: rewrite/rewriteHandler.c:3952 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は DO ALSO ルールはサポートされません" -#: rewrite/rewriteHandler.c:3889 +#: rewrite/rewriteHandler.c:3957 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合はマルチステートメントの DO INSTEAD ルールはサポートされません" -#: rewrite/rewriteHandler.c:4149 +#: rewrite/rewriteHandler.c:4217 msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "条件付きDO INSTEADルールを持つビューは自動更新できません。" -#: rewrite/rewriteHandler.c:4246 +#: rewrite/rewriteHandler.c:4314 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのINSERT RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4248 +#: rewrite/rewriteHandler.c:4316 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "RETURNING句を持つ無条件のON INSERT DO INSTEADルールが必要です。" -#: rewrite/rewriteHandler.c:4253 +#: rewrite/rewriteHandler.c:4321 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのUPDATE RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4255 +#: rewrite/rewriteHandler.c:4323 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "RETURNING句を持つ無条件のON UPDATE DO INSTEADルールが必要です。" -#: rewrite/rewriteHandler.c:4260 +#: rewrite/rewriteHandler.c:4328 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのDELETE RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4262 +#: rewrite/rewriteHandler.c:4330 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "RETURNING句を持つ無条件のON DELETE DO INSTEADルールが必要です。" -#: rewrite/rewriteHandler.c:4280 +#: rewrite/rewriteHandler.c:4348 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "ON CONFLICT句を伴うINSERTは、INSERTまたはUPDATEルールを持つテーブルでは使えません" -#: rewrite/rewriteHandler.c:4337 +#: rewrite/rewriteHandler.c:4405 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "複数問い合わせに対するルールにより書き換えられた問い合わせでは WITH を使用できません" -#: rewrite/rewriteManip.c:1083 +#: rewrite/rewriteManip.c:1222 #, c-format msgid "conditional utility statements are not implemented" msgstr "条件付きのユーティリティ文は実装されていません" -#: rewrite/rewriteManip.c:1427 +#: rewrite/rewriteManip.c:1567 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "ビューに対するWHERE CURRENT OFは実装されていません" -#: rewrite/rewriteManip.c:1762 +#: rewrite/rewriteManip.c:1970 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "ON UPDATE ルールのNEW変数は、対象のUPDATEコマンドでの複数列代入の一部となる列を参照することはできません" @@ -21986,7 +22631,7 @@ msgstr "文字列のドル引用符が閉じていません" msgid "zero-length delimited identifier" msgstr "二重引用符で囲まれた識別子の長さがゼロです" -#: scan.l:825 syncrep_scanner.l:101 +#: scan.l:825 syncrep_scanner.l:114 msgid "unterminated quoted identifier" msgstr "識別子の引用符が閉じていません" @@ -21995,89 +22640,163 @@ msgid "operator too long" msgstr "演算子が長すぎます" #: scan.l:1001 +msgid "parameter number too large" +msgstr "パラメータ数が多すぎます" + +#: scan.l:1007 msgid "trailing junk after parameter" msgstr "パラメータの後に余分な文字" -#: scan.l:1022 +#: scan.l:1028 msgid "invalid hexadecimal integer" msgstr "不正な16進整数" -#: scan.l:1026 +#: scan.l:1032 msgid "invalid octal integer" msgstr "不正な8進整数" -#: scan.l:1030 +#: scan.l:1036 msgid "invalid binary integer" msgstr "不正な2進整数" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1237 +#: scan.l:1231 #, c-format msgid "%s at end of input" msgstr "入力の最後で %s" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1245 +#: scan.l:1239 #, c-format msgid "%s at or near \"%s\"" msgstr "\"%2$s\"またはその近辺で%1$s" -#: scan.l:1437 +#: scan.l:1431 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "文字列リテラルないでの\\'の非標準的な使用" -#: scan.l:1438 +#: scan.l:1432 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "文字列内で単一引用符を記述するには''、またはエスケープ文字列構文(E'...')を使用してください。" -#: scan.l:1447 +#: scan.l:1441 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "文字列リテラル内での\\\\の非標準的な使用" -#: scan.l:1448 +#: scan.l:1442 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "バックスラッシュのエスケープ文字列構文、例えばE'\\\\'を使用してください。" -#: scan.l:1462 +#: scan.l:1456 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "文字列リテラル内でのエスケープの非標準的な使用" -#: scan.l:1463 +#: scan.l:1457 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "エスケープのエスケープ文字列構文、例えばE'\\r\\n'を使用してください。" -#: snowball/dict_snowball.c:215 +#: snowball/dict_snowball.c:220 #, c-format msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\"" msgstr "言語\"%s\"および符号化方式\"%s\"用に使用可能なSnowballステマがありません" -#: snowball/dict_snowball.c:238 tsearch/dict_ispell.c:74 tsearch/dict_simple.c:49 +#: snowball/dict_snowball.c:243 tsearch/dict_ispell.c:75 tsearch/dict_simple.c:50 #, c-format msgid "multiple StopWords parameters" msgstr "重複したStopWordsパラメータ" -#: snowball/dict_snowball.c:247 +#: snowball/dict_snowball.c:252 #, c-format msgid "multiple Language parameters" msgstr "重複したLanguageパラメータ" -#: snowball/dict_snowball.c:254 +#: snowball/dict_snowball.c:259 #, c-format msgid "unrecognized Snowball parameter: \"%s\"" msgstr "認識できないSnowballパラメータ: \"%s\"" -#: snowball/dict_snowball.c:262 +#: snowball/dict_snowball.c:267 #, c-format msgid "missing Language parameter" msgstr "Languageパラメータがありません" -#: statistics/extended_stats.c:176 +#: statistics/attribute_stats.c:191 statistics/attribute_stats.c:932 statistics/relation_stats.c:98 +#, c-format +msgid "Statistics cannot be modified during recovery." +msgstr "リカバリ中は統計情報の更新はできません。" + +#: statistics/attribute_stats.c:202 +#, c-format +msgid "cannot specify both attname and attnum" +msgstr "attname と attnum の両方を指定することはできません" + +#: statistics/attribute_stats.c:228 +#, c-format +msgid "must specify either attname or attnum" +msgstr "attname または attnum のいずれかを指定する必要があります" + +#: statistics/attribute_stats.c:236 +#, c-format +msgid "cannot modify statistics on system column \"%s\"" +msgstr "システム列\"%s\"の統計情報は更新できません" + +#: statistics/attribute_stats.c:300 +#, c-format +msgid "unable to determine element type of attribute \"%s\"" +msgstr "属性 \"%s\" の要素型を特定できません" + +#: statistics/attribute_stats.c:301 +#, c-format +msgid "Cannot set STATISTIC_KIND_MCELEM or STATISTIC_KIND_DECHIST." +msgstr "STATISTIC_KIND_MCELEM および STATISTIC_KIND_DECHIST は設定できません。" + +#: statistics/attribute_stats.c:316 +#, c-format +msgid "could not determine less-than operator for attribute \"%s\"" +msgstr "属性 \"%s\" の小なり演算子(<)を特定できませんでした" + +#: statistics/attribute_stats.c:317 +#, c-format +msgid "Cannot set STATISTIC_KIND_HISTOGRAM or STATISTIC_KIND_CORRELATION." +msgstr "STATISTIC_KIND_HISTOGRAM および STATISTIC_KIND_CORRELATION は設定できません。" + +#: statistics/attribute_stats.c:330 +#, c-format +msgid "attribute \"%s\" is not a range type" +msgstr "属性 \"%s\" は範囲型ではありません" + +#: statistics/attribute_stats.c:331 +#, c-format +msgid "Cannot set STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM or STATISTIC_KIND_BOUNDS_HISTOGRAM." +msgstr "STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM および STATISTIC_KIND_BOUNDS_HISTOGRAM は設定できません。" + +#: statistics/attribute_stats.c:590 statistics/attribute_stats.c:598 +#, c-format +msgid "attribute %d of relation \"%s\" does not exist" +msgstr "リレーション \"%2$s\" の属性%1$dは存在しません" + +#: statistics/attribute_stats.c:732 statistics/stat_utils.c:80 +#, c-format +msgid "\"%s\" array cannot contain NULL values" +msgstr "\"%s\" の配列はNULL値を格納できません" + +#: statistics/attribute_stats.c:775 +#, c-format +msgid "maximum number of statistics slots exceeded: %d" +msgstr "統計情報スロットの最大数を超過しました: %d" + +#: statistics/attribute_stats.c:942 +#, c-format +msgid "cannot clear statistics on system column \"%s\"" +msgstr "システム列\"%s\"の統計情報はクリアできません" + +#: statistics/extended_stats.c:175 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "統計オブジェクト\"%s.%s\"がリレーション\"%s.%s\"に対して計算できませんでした" @@ -22087,57 +22806,210 @@ msgstr "統計オブジェクト\"%s.%s\"がリレーション\"%s.%s\"に対し msgid "function returning record called in context that cannot accept type record" msgstr "レコード型を受け付けられないコンテキストでレコードを返す関数が呼び出されました" -#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 +#: statistics/relation_stats.c:115 #, c-format -msgid "cannot access temporary tables of other sessions" -msgstr "他のセッションの一時テーブルにはアクセスできません" +msgid "reltuples cannot be < -1.0" +msgstr "reltuplesは-1.0未満にはできません" -#: storage/buffer/bufmgr.c:1532 +#: statistics/stat_utils.c:44 #, c-format -msgid "invalid page in block %u of relation %s; zeroing out page" -msgstr "リレーション %2$s の %1$u ブロック目のページが不正です: ページをゼロで埋めました" +msgid "\"%s\" cannot be NULL" +msgstr "\"%s\"はNULLにはできません" + +#: statistics/stat_utils.c:71 +#, c-format +msgid "\"%s\" cannot be a multidimensional array" +msgstr "\"%s\"は多次元配列にはなれません" + +#: statistics/stat_utils.c:111 +#, c-format +msgid "\"%s\" must be specified when \"%s\" is specified" +msgstr "\"%s” は、\"%s\"が指定される際には必ず指定される必要があります" + +#: statistics/stat_utils.c:178 +#, c-format +msgid "cannot modify statistics for relation \"%s\"" +msgstr "リレーション\"%s\"の統計情報は変更できません" + +#: statistics/stat_utils.c:199 +#, c-format +msgid "cannot modify statistics for shared relation" +msgstr "共有リレーションの統計情報は変更できません" + +#: statistics/stat_utils.c:252 +#, c-format +msgid "unrecognized argument name: \"%s\"" +msgstr "識別できない引数名: \"%s\"" + +#: statistics/stat_utils.c:266 +#, c-format +msgid "argument \"%s\" has type \"%s\", expected type \"%s\"" +msgstr "引数\"%s\"の型は\"%s\"ですが、期待される型は\"%s\"です" + +#: statistics/stat_utils.c:307 +#, c-format +msgid "variadic arguments must be name/value pairs" +msgstr "可変長引数は名前/値のペアである必要があります" + +#: statistics/stat_utils.c:308 +#, c-format +msgid "Provide an even number of variadic arguments that can be divided into pairs." +msgstr "2つ組に分割できるよう、偶数個の可変長引数を指定してください。" + +#: statistics/stat_utils.c:322 +#, c-format +msgid "name at variadic position %d is NULL" +msgstr "可変長引数の位置%dの名前がNULLです" + +#: statistics/stat_utils.c:326 +#, c-format +msgid "name at variadic position %d has type \"%s\", expected type \"%s\"" +msgstr "可変長引数の位置%dの名前の型が\"%s\"ですが、期待される型は\"%s\"です" + +#: storage/aio/aio.c:1222 +#, c-format +msgid "Only -1 or values bigger than 0 are valid." +msgstr "-1または0より大きい値のみ有効です。" + +#: storage/aio/method_io_uring.c:171 +msgid "Check if io_uring is disabled via /proc/sys/kernel/io_uring_disabled." +msgstr "io_uringが無効化されていないかを /proc/sys/kernel/io_uring_disabled で確認してください。" + +#: storage/aio/method_io_uring.c:176 +#, c-format +msgid "Consider increasing \"ulimit -n\" to at least %d." +msgstr "\"ulimit -n\"を少なくとも%dに増やすことを検討してください。" + +#: storage/aio/method_io_uring.c:182 +msgid "Kernel does not support io_uring." +msgstr "カーネルはio_uringをサポートしていません。" + +#: storage/aio/method_io_uring.c:190 +#, c-format +msgid "could not setup io_uring queue: %m" +msgstr "io_uringキューのセットアップに失敗しました: %m" + +#: storage/aio/method_io_uring.c:324 +#, c-format +msgid "completing I/O on behalf of process %d" +msgstr "プロセス %d に代わってI/O完了させています" -#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 +#: storage/aio/method_worker.c:379 +#, c-format +msgid "I/O worker executing I/O on behalf of process %d" +msgstr "I/Oワーカーがプロセス %d に代わってI/Oを実行中" + +#: storage/buffer/bufmgr.c:655 storage/buffer/bufmgr.c:811 +#, c-format +msgid "cannot access temporary tables of other sessions" +msgstr "他のセッションの一時テーブルにはアクセスできません" + +#: storage/buffer/bufmgr.c:2701 storage/buffer/localbuf.c:393 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "リレーション\"%s\"を%uブロックを超えて拡張できません" -#: storage/buffer/bufmgr.c:2348 +#: storage/buffer/bufmgr.c:2772 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "リレーション %2$s の %1$u ブロック目で、EOF の先に想定外のデータを検出しました" -#: storage/buffer/bufmgr.c:2350 +#: storage/buffer/bufmgr.c:2775 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "これはカーネルの不具合で発生した模様です。システムの更新を検討してください。" -#: storage/buffer/bufmgr.c:5653 +#: storage/buffer/bufmgr.c:6115 #, c-format msgid "could not write block %u of %s" msgstr "%u ブロックを %s に書き出せませんでした" -#: storage/buffer/bufmgr.c:5655 +#: storage/buffer/bufmgr.c:6119 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "複数回失敗しました ---ずっと書き込みエラーが続くかもしれません。" -#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 +#: storage/buffer/bufmgr.c:6136 storage/buffer/bufmgr.c:6151 #, c-format msgid "writing block %u of relation %s" msgstr "ブロック %u を リレーション %s に書き込んでいます" -#: storage/buffer/localbuf.c:220 +#: storage/buffer/bufmgr.c:7250 +#, c-format +msgid "zeroing %u page(s) and ignoring %u checksum failure(s) among blocks %u..%u of relation %s" +msgstr "リレーション %5$s のブロック %3$u..%4$u の間で%1$uページをゼロクリアして、%2$u件のチェックサムエラーを無視しています" + +#: storage/buffer/bufmgr.c:7253 storage/buffer/bufmgr.c:7279 +#, c-format +msgid "Block %u held first zeroed page." +msgstr "ゼロクリアした最初のページはブロック %u にありました。" + +#: storage/buffer/bufmgr.c:7255 +#, c-format +msgid "See server log for details about the other %u invalid block(s)." +msgstr "他の%u個の不正なブロックの詳細については、サーバーログを参照してください。" + +#: storage/buffer/bufmgr.c:7270 +#, c-format +msgid "%u invalid pages among blocks %u..%u of relation %s" +msgstr "リレーション%4$sのブロック%2$u..%3$uに%1$uの不正なページ" + +#: storage/buffer/bufmgr.c:7271 +#, c-format +msgid "Block %u held first invalid page." +msgstr "最初の不正なページはブロック %u にありました。" + +#: storage/buffer/bufmgr.c:7272 +#, c-format +msgid "See server log for the other %u invalid block(s)." +msgstr "他の%u個の不正なブロックについてはサーバーログを参照してください。" + +#: storage/buffer/bufmgr.c:7277 +#, c-format +msgid "invalid page in block %u of relation %s; zeroing out page" +msgstr "リレーション %2$s の %1$u ブロック目のページが不正です: ページをゼロで埋めました" + +#: storage/buffer/bufmgr.c:7278 +#, c-format +msgid "zeroing out %u invalid pages among blocks %u..%u of relation %s" +msgstr "リレーション %4$s のブロック%2$u~%3$uにある%1$u個の不正なページをゼロクリアします" + +#: storage/buffer/bufmgr.c:7280 +#, c-format +msgid "See server log for the other %u zeroed block(s)." +msgstr "他の%u個の0クリアしたブロックについてはサーバーログを参照してください。" + +#: storage/buffer/bufmgr.c:7285 +#, c-format +msgid "ignoring checksum failure in block %u of relation %s" +msgstr "リレーション%2$sでのブロック%1$uのチェックサムエラーを無視します" + +#: storage/buffer/bufmgr.c:7286 +#, c-format +msgid "ignoring %u checksum failures among blocks %u..%u of relation %s" +msgstr "リレーション%4$sでのブロック%2$u..%3$uの%1$u件のチェックサムエラーを無視します" + +#: storage/buffer/bufmgr.c:7287 +#, c-format +msgid "Block %u held first ignored page." +msgstr "無視した最初のページはブロック %u にありました。" + +#: storage/buffer/bufmgr.c:7288 +#, c-format +msgid "See server log for the other %u ignored block(s)." +msgstr "他の%u個のエラーを無視したブロックについてはサーバーログを参照してください。" + +#: storage/buffer/localbuf.c:272 #, c-format msgid "no empty local buffer available" msgstr "利用できる、空のローカルバッファがありません" -#: storage/buffer/localbuf.c:597 +#: storage/buffer/localbuf.c:736 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "並列処理中は一時テーブルにはアクセスできません" -#: storage/buffer/localbuf.c:712 +#: storage/buffer/localbuf.c:876 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "当該セッションで何らかの一時テーブルがアクセスされた後は\"temp_buffers\"を変更できません。" @@ -22157,21 +23029,26 @@ msgstr "ファイルセット\"%1$s\"からの読み込みができませんで msgid "could not read from temporary file: read only %zu of %zu bytes" msgstr "一時ファイルからの読み込み失敗しました: %2$zuバイト中%1$zuバイト分のみ読み込みました" -#: storage/file/buffile.c:774 storage/file/buffile.c:877 +#: storage/file/buffile.c:774 storage/file/buffile.c:875 #, c-format msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "BufFile \"%s\"の一時ファイル\"%s\"のサイズの確認に失敗しました: %m" -#: storage/file/buffile.c:956 +#: storage/file/buffile.c:951 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "ファイルセット\"%s\"を削除できませんでした: %m" -#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1192 +#: storage/file/buffile.c:969 storage/smgr/md.c:356 storage/smgr/md.c:1318 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "ファイル\"%s\"の切り詰め処理ができませんでした: %m" +#: storage/file/copydir.c:244 storage/file/copydir.c:275 +#, c-format +msgid "could not clone file \"%s\" to \"%s\": %m" +msgstr "ファイル\"%s\"を\"%s\"にクローニングできませんでした: %m" + #: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" @@ -22192,120 +23069,120 @@ msgstr "データの書き出し中にmunmap()に失敗しました: %m" msgid "getrlimit failed: %m" msgstr "getrlimitが失敗しました: %m" -#: storage/file/fd.c:1073 +#: storage/file/fd.c:1074 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "サーバープロセスを起動させるために利用できるファイル記述子が不足しています" -#: storage/file/fd.c:1074 +#: storage/file/fd.c:1075 #, c-format -msgid "System allows %d, server needs at least %d." -msgstr "システムでは%d使用できますが、サーバーでは少なくとも%d必要です。" +msgid "System allows %d, server needs at least %d, %d files are already open." +msgstr "システムでは%d個のファイルを使用できますが、サーバーでは少なくとも%d個必要で、すでに%d個がオープンされています。" -#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 storage/file/fd.c:2878 +#: storage/file/fd.c:1164 storage/file/fd.c:2679 storage/file/fd.c:2788 storage/file/fd.c:2942 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "ファイル記述子が不足しています: %m: 解放後再実行してください" -#: storage/file/fd.c:1536 +#: storage/file/fd.c:1540 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "一時ファイル: パス \"%s\"、サイズ %lu" -#: storage/file/fd.c:1675 +#: storage/file/fd.c:1679 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "一時ディレクトリ\"%s\"を作成できませんでした: %m" -#: storage/file/fd.c:1682 +#: storage/file/fd.c:1686 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "一時サブディレクトリ\"%s\"を作成できませんでした: %m" -#: storage/file/fd.c:1879 +#: storage/file/fd.c:1883 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "一時ファイル\"%s\"を作成できませんでした: %m" -#: storage/file/fd.c:1915 +#: storage/file/fd.c:1919 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "一時ファイル\"%s\"をオープンできませんでした: %m" -#: storage/file/fd.c:1956 +#: storage/file/fd.c:1960 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "一時ファイル\"%s\"を unlink できませんでした: %m" -#: storage/file/fd.c:2044 +#: storage/file/fd.c:2050 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ファイル\"%s\"を削除できませんでした: %m" -#: storage/file/fd.c:2234 +#: storage/file/fd.c:2289 #, c-format -msgid "temporary file size exceeds temp_file_limit (%dkB)" -msgstr "一時ファイルのサイズがtemp_file_limit(%d KB)を超えています" +msgid "temporary file size exceeds \"temp_file_limit\" (%dkB)" +msgstr "一時ファイルのサイズが\"temp_file_limit\" (%dkB)を超えています" -#: storage/file/fd.c:2594 storage/file/fd.c:2653 +#: storage/file/fd.c:2655 storage/file/fd.c:2714 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "ファイル\"%2$s\"をオープンしようとした時にmaxAllocatedDescs(%1$d)を超えました" -#: storage/file/fd.c:2698 +#: storage/file/fd.c:2759 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "コマンド\"%2$s\"を実行しようとした時にmaxAllocatedDescs(%1$d)を超えました" -#: storage/file/fd.c:2854 +#: storage/file/fd.c:2918 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "ディレクトリ\"%2$s\"をオープンしようとした時にmaxAllocatedDescs(%1$d)を超えました" -#: storage/file/fd.c:3384 +#: storage/file/fd.c:3449 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "一時ファイル用ディレクトリに想定外のファイルがありました: \"%s\"" -#: storage/file/fd.c:3502 +#: storage/file/fd.c:3567 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "データディレクトリを同期しています(syncfs)、経過時間: %ld.%02d秒, 現在のパス: %s" -#: storage/file/fd.c:3729 +#: storage/file/fd.c:3794 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "データディレクトリを同期しています(pre-syncfs)、経過時間: %ld.%02d秒, 現在のパス: %s" -#: storage/file/fd.c:3761 +#: storage/file/fd.c:3826 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "データディレクトリを同期しています(fsync)、経過時間: %ld.%02d秒, 現在のパス: %s" -#: storage/file/fd.c:3950 +#: storage/file/fd.c:4015 #, c-format -msgid "\"debug_io_direct\" is not supported on this platform." -msgstr "このプラットフォームでは\"debug_io_direct\"はサポートされていません。" +msgid "\"%s\" is not supported on this platform." +msgstr "このプラットフォームでは\"%s\"をサポートしていません。" -#: storage/file/fd.c:3964 +#: storage/file/fd.c:4030 #, c-format -msgid "Invalid list syntax in parameter \"%s\"" -msgstr "パラメータ\"%s\"のリスト構文が不正です" +msgid "Invalid list syntax in parameter \"%s\"." +msgstr "パラメータ\"%s\"のリスト構文が不正です。" -#: storage/file/fd.c:3984 +#: storage/file/fd.c:4050 tcop/backend_startup.c:1054 #, c-format -msgid "Invalid option \"%s\"" -msgstr "不正なオプション\"%s\"" +msgid "Invalid option \"%s\"." +msgstr "不正なオプション\"%s\"。" -#: storage/file/fd.c:3997 +#: storage/file/fd.c:4063 #, c-format -msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "XLOG_BLCKSZが小さすぎるため\"debug_io_direct\"はWALに対してはサポートされません" +msgid "\"%s\" is not supported for WAL because %s is too small." +msgstr "%2$sが小さすぎるため\"%1$s\"はWALに対してはサポートされません。" -#: storage/file/fd.c:4004 +#: storage/file/fd.c:4071 #, c-format -msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" -msgstr "BLCKSZが小さすぎるため\"debug_io_direct\"はデータに対してサポートされません" +msgid "\"%s\" is not supported for data because %s is too small." +msgstr "%2$sが小さすぎるため\"%1$s\"はデータに対してはサポートされません。" #: storage/file/reinit.c:145 #, c-format @@ -22407,36 +23284,46 @@ msgstr "DSMセグメントサイズは0以外の値である必要がありま msgid "requested DSM segment size does not match size of existing segment" msgstr "要求されたDSMセグメントサイズが既存のセグメントのサイズと異なっています" -#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:352 tcop/backend_startup.c:304 +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:458 tcop/backend_startup.c:343 #, c-format msgid "sorry, too many clients already" msgstr "現在クライアント数が多すぎます" -#: storage/ipc/procarray.c:3845 +#: storage/ipc/procarray.c:3858 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "データベース\"%s\"は準備済みトランザクションで使用中です" -#: storage/ipc/procarray.c:3881 storage/ipc/procarray.c:3889 storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 +#: storage/ipc/procarray.c:3894 storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:256 storage/ipc/signalfuncs.c:263 storage/ipc/signalfuncs.c:270 #, c-format msgid "permission denied to terminate process" msgstr "プロセスを終了させる権限がありません" -#: storage/ipc/procarray.c:3882 storage/ipc/signalfuncs.c:236 +#: storage/ipc/procarray.c:3895 storage/ipc/signalfuncs.c:257 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." msgstr "%s属性を持つロールのみが%s属性を持つロールが接続中のプロセスを終了できます。" -#: storage/ipc/procarray.c:3890 storage/ipc/signalfuncs.c:243 +#: storage/ipc/procarray.c:3903 storage/ipc/signalfuncs.c:271 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." msgstr "終了させようとしているプロセスに接続しているロールの権限を持つロール、または\"%sロール権限を持つロールのみがこのプロセスを終了できます。" -#: storage/ipc/procsignal.c:416 +#: storage/ipc/procsignal.c:450 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "PID %dのバックエンドがProcSignalBarrierを受け付けるのを待っています" +#: storage/ipc/procsignal.c:786 +#, c-format +msgid "wrong key in cancel request for process %d" +msgstr "プロセス%dに対するキャンセル要求においてキーが間違っています" + +#: storage/ipc/procsignal.c:795 +#, c-format +msgid "PID %d in cancel request did not match any process" +msgstr "キャンセル要求内のPID %dがどのプロセスにも一致しません" + #: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" @@ -22447,215 +23334,225 @@ msgstr "共有メモリキュー経由で大きさ%zuのメッセージは送信 msgid "invalid message size %zu in shared memory queue" msgstr "共有メモリキュー内の不正なメッセージ長%zu" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:962 storage/lmgr/lock.c:1000 storage/lmgr/lock.c:2803 storage/lmgr/lock.c:4188 storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4603 storage/lmgr/predicate.c:2463 storage/lmgr/predicate.c:2478 storage/lmgr/predicate.c:3875 storage/lmgr/predicate.c:4922 utils/hash/dynahash.c:1095 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:1038 storage/lmgr/lock.c:1076 storage/lmgr/lock.c:2965 storage/lmgr/lock.c:4370 storage/lmgr/lock.c:4435 storage/lmgr/lock.c:4785 storage/lmgr/predicate.c:2478 storage/lmgr/predicate.c:2493 storage/lmgr/predicate.c:3890 storage/lmgr/predicate.c:4937 utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "共有メモリが足りません" -#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 +#: storage/ipc/shmem.c:159 storage/ipc/shmem.c:255 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "共有メモリが足りません (%zu バイト要求しました)" -#: storage/ipc/shmem.c:436 +#: storage/ipc/shmem.c:434 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "データ構造体\"%s\"のためのShmemIndexエントリを作成できませんでした" -#: storage/ipc/shmem.c:451 +#: storage/ipc/shmem.c:449 #, c-format msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu" msgstr "データ構造体\"%s\"のためのShmemIndexエントリのサイズが誤っています: %zuバイトを期待しましたが、実際は%zuバイトでした" -#: storage/ipc/shmem.c:470 +#: storage/ipc/shmem.c:468 #, c-format msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)" msgstr "データ構造体\"%s\"のための共有メモリが不足しています ( %zu バイトが必要)" -#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 +#: storage/ipc/shmem.c:500 storage/ipc/shmem.c:519 #, c-format msgid "requested shared memory size overflows size_t" msgstr "要求された共有メモリのサイズはsize_tを超えています" -#: storage/ipc/signalfuncs.c:72 +#: storage/ipc/signalfuncs.c:74 #, c-format msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %dはPostgreSQLバックエンドプロセスではありません" -#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1448 utils/adt/mcxtfuncs.c:182 +#: storage/ipc/signalfuncs.c:123 storage/lmgr/proc.c:1547 utils/adt/mcxtfuncs.c:314 utils/adt/mcxtfuncs.c:412 #, c-format msgid "could not send signal to process %d: %m" msgstr "プロセス%dにシグナルを送信できませんでした: %m" -#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 +#: storage/ipc/signalfuncs.c:143 storage/ipc/signalfuncs.c:150 storage/ipc/signalfuncs.c:157 #, c-format msgid "permission denied to cancel query" msgstr "問い合わせをキャンセルする権限がありません" -#: storage/ipc/signalfuncs.c:130 +#: storage/ipc/signalfuncs.c:144 #, c-format msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." msgstr "%s属性を持つロールのみが、%s属性を持つロールが実行中の問い合わせをキャンセルできます。" -#: storage/ipc/signalfuncs.c:137 +#: storage/ipc/signalfuncs.c:151 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may cancel autovacuum workers." +msgstr "\"%s\"ロールの権限を持つロールのみが自動VACUUMワーカーのキャンセルを行うことができます。" + +#: storage/ipc/signalfuncs.c:158 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." msgstr "キャンセル対象の問い合わせを実行しているロールの権限を持つロール、または\"%s\"ロールの権限を持つロールのみがこの問い合わせをキャンセルできます。" -#: storage/ipc/signalfuncs.c:179 +#: storage/ipc/signalfuncs.c:200 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "PID %dのバックエンドの存在の確認に失敗しました: %m" -#: storage/ipc/signalfuncs.c:197 +#: storage/ipc/signalfuncs.c:218 #, c-format -msgid "backend with PID %d did not terminate within %lld millisecond" -msgid_plural "backend with PID %d did not terminate within %lld milliseconds" -msgstr[0] "PID %dのバックエンドが%lldミリ秒で終了しませんでした" +msgid "backend with PID %d did not terminate within % millisecond" +msgid_plural "backend with PID %d did not terminate within % milliseconds" +msgstr[0] "PID %dのバックエンドが%ミリ秒以内に終了しませんでした" -#: storage/ipc/signalfuncs.c:228 +#: storage/ipc/signalfuncs.c:249 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\"は負数であってはなりません" -#: storage/ipc/signalfuncs.c:285 +#: storage/ipc/signalfuncs.c:264 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may terminate autovacuum workers." +msgstr "\"%s\"ロールの権限を持つロールのみが自動VACUUMワーカーを終了させることができます。" + +#: storage/ipc/signalfuncs.c:313 #, c-format msgid "rotation not possible because log collection not active" msgstr "ログ収集が活動していませんのでローテーションを行うことができません" -#: storage/ipc/standby.c:329 +#: storage/ipc/standby.c:330 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "リカバリは%ld.%03dミリ秒経過後待機継続中: %s" -#: storage/ipc/standby.c:338 +#: storage/ipc/standby.c:339 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "リカバリは%ld.%03dミリ秒で待機終了: %s" -#: storage/ipc/standby.c:920 tcop/postgres.c:3169 +#: storage/ipc/standby.c:921 tcop/postgres.c:3225 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "リカバリで競合が発生したためステートメントをキャンセルしています" -#: storage/ipc/standby.c:921 tcop/postgres.c:2529 +#: storage/ipc/standby.c:922 tcop/postgres.c:2575 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "リカバリ時にユーザーのトランザクションがバッファのデッドロックを引き起こしました。" -#: storage/ipc/standby.c:1486 +#: storage/ipc/standby.c:1494 msgid "unknown reason" msgstr "不明な理由" -#: storage/ipc/standby.c:1491 +#: storage/ipc/standby.c:1499 msgid "recovery conflict on buffer pin" msgstr "バッファピンによるリカバリ競合" -#: storage/ipc/standby.c:1494 +#: storage/ipc/standby.c:1502 msgid "recovery conflict on lock" msgstr "ロック上のリカバリ衝突" -#: storage/ipc/standby.c:1497 +#: storage/ipc/standby.c:1505 msgid "recovery conflict on tablespace" msgstr "テーブル空間上のリカバリ衝突" -#: storage/ipc/standby.c:1500 +#: storage/ipc/standby.c:1508 msgid "recovery conflict on snapshot" msgstr "スナップショットによるリカバリ競合" -#: storage/ipc/standby.c:1503 +#: storage/ipc/standby.c:1511 msgid "recovery conflict on replication slot" msgstr "レプリケーションスロットに対するリカバリ競合" -#: storage/ipc/standby.c:1506 +#: storage/ipc/standby.c:1514 msgid "recovery conflict on buffer deadlock" msgstr "バッファのデッドロックによるリカバリ競合" -#: storage/ipc/standby.c:1509 +#: storage/ipc/standby.c:1517 msgid "recovery conflict on database" msgstr "データベース上のリカバリ衝突" -#: storage/large_object/inv_api.c:190 +#: storage/large_object/inv_api.c:152 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "OID%u、ページ%dに対応するpg_largeobjectのエントリのデータフィールドの大きさ%dは不正です" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:234 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "ラージオブジェクトを開くためのフラグが不正です: %d" -#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 storage/large_object/inv_api.c:807 +#: storage/large_object/inv_api.c:259 storage/large_object/inv_api.c:271 storage/large_object/inv_api.c:468 storage/large_object/inv_api.c:579 storage/large_object/inv_api.c:769 #, c-format msgid "permission denied for large object %u" msgstr "ラージオブジェクト %u に対する権限がありません" -#: storage/large_object/inv_api.c:455 +#: storage/large_object/inv_api.c:417 #, c-format msgid "invalid whence setting: %d" msgstr "不正なwhence設定: %d" -#: storage/large_object/inv_api.c:627 +#: storage/large_object/inv_api.c:589 #, c-format msgid "invalid large object write request size: %d" msgstr "ラージオブジェクトの書き出し要求サイズが不正です: %d" -#: storage/lmgr/deadlock.c:1104 +#: storage/lmgr/deadlock.c:1107 #, c-format msgid "Process %d waits for %s on %s; blocked by process %d." msgstr "プロセス %d は %s を %s で待機していましたが、プロセス %d でブロックされました" -#: storage/lmgr/deadlock.c:1123 +#: storage/lmgr/deadlock.c:1126 #, c-format msgid "Process %d: %s" msgstr "プロセス %d: %s" -#: storage/lmgr/deadlock.c:1132 +#: storage/lmgr/deadlock.c:1135 #, c-format msgid "deadlock detected" msgstr "デッドロックを検出しました" -#: storage/lmgr/deadlock.c:1135 +#: storage/lmgr/deadlock.c:1138 #, c-format msgid "See server log for query details." msgstr "問い合わせの詳細はサーバーログを参照してください" -#: storage/lmgr/lmgr.c:858 +#: storage/lmgr/lmgr.c:856 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプル(%1$u,%2$u)の更新中" -#: storage/lmgr/lmgr.c:861 +#: storage/lmgr/lmgr.c:859 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプル(%1$u,%2$u)の削除中" -#: storage/lmgr/lmgr.c:864 +#: storage/lmgr/lmgr.c:862 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプル(%1$u,%2$u)のロック中" -#: storage/lmgr/lmgr.c:867 +#: storage/lmgr/lmgr.c:865 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプルの更新後バージョン(%1$u,%2$u)のロック中" -#: storage/lmgr/lmgr.c:870 +#: storage/lmgr/lmgr.c:868 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のインデックスタプル(%1$u,%2$u)の挿入中" -#: storage/lmgr/lmgr.c:873 +#: storage/lmgr/lmgr.c:871 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプル(%1$u,%2$u)の一意性の確認中" -#: storage/lmgr/lmgr.c:876 +#: storage/lmgr/lmgr.c:874 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"の更新されたタプル(%1$u,%2$u)の再チェック中" -#: storage/lmgr/lmgr.c:879 +#: storage/lmgr/lmgr.c:877 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "リレーション\"%3$s\"のタプル(%1$u,%2$u)に対する排除制約のチェック中" @@ -22725,17 +23622,22 @@ msgstr "データベース%3$uのサブスクリプション%2$uのリモート msgid "unrecognized locktag type %d" msgstr "ロックタグタイプ%dは不明です" -#: storage/lmgr/lock.c:790 +#: storage/lmgr/lock.c:866 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "リカバリの実行中はデータベースオブジェクトでロックモード %s を獲得できません" -#: storage/lmgr/lock.c:792 +#: storage/lmgr/lock.c:868 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." msgstr "リカバリの実行中は、データベースオブジェクトで RowExclusiveLock もしくはそれ以下だけが獲得できます" -#: storage/lmgr/lock.c:3252 storage/lmgr/lock.c:3320 storage/lmgr/lock.c:3436 +#: storage/lmgr/lock.c:1182 +#, c-format +msgid "process %d could not obtain %s on %s" +msgstr "プロセス%1$dは、%3$sの%2$sを取得できませんでした" + +#: storage/lmgr/lock.c:3423 storage/lmgr/lock.c:3491 storage/lmgr/lock.c:3607 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "同一オブジェクト上にセッションレベルとトランザクションレベルのロックの両方を保持している時にPREPAREすることはできません" @@ -22755,485 +23657,535 @@ msgstr "トランザクションの同時実行数を減らすか\"max_connectio msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "RWConflictPoolに読み書き競合の可能性を記録するための要素が不足しています" -#: storage/lmgr/predicate.c:1681 +#: storage/lmgr/predicate.c:1696 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "\"default_transaction_isolation\"が\"serializable\"に設定されました。" -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1697 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "このデフォルトを変更するためには\"SET default_transaction_isolation = 'repeatable read'\"を使用することができます。" -#: storage/lmgr/predicate.c:1733 +#: storage/lmgr/predicate.c:1748 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "スナップショットをインポートするトランザクションはREAD ONLY DEFERRABLEではいけません" -#: storage/lmgr/predicate.c:1812 utils/time/snapmgr.c:535 utils/time/snapmgr.c:541 +#: storage/lmgr/predicate.c:1827 utils/time/snapmgr.c:556 utils/time/snapmgr.c:562 #, c-format msgid "could not import the requested snapshot" msgstr "要求したスナップショットをインポートできませんでした" -#: storage/lmgr/predicate.c:1813 utils/time/snapmgr.c:542 +#: storage/lmgr/predicate.c:1828 utils/time/snapmgr.c:563 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "PID%dであるソースプロセスは既に実行中ではありません。" -#: storage/lmgr/predicate.c:3986 storage/lmgr/predicate.c:4022 storage/lmgr/predicate.c:4055 storage/lmgr/predicate.c:4063 storage/lmgr/predicate.c:4102 storage/lmgr/predicate.c:4332 storage/lmgr/predicate.c:4651 storage/lmgr/predicate.c:4663 storage/lmgr/predicate.c:4710 storage/lmgr/predicate.c:4746 +#: storage/lmgr/predicate.c:4001 storage/lmgr/predicate.c:4037 storage/lmgr/predicate.c:4070 storage/lmgr/predicate.c:4078 storage/lmgr/predicate.c:4117 storage/lmgr/predicate.c:4347 storage/lmgr/predicate.c:4666 storage/lmgr/predicate.c:4678 storage/lmgr/predicate.c:4725 storage/lmgr/predicate.c:4761 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "トランザクション間で read/write の依存性があったため、アクセスの直列化ができませんでした" -#: storage/lmgr/predicate.c:3988 storage/lmgr/predicate.c:4024 storage/lmgr/predicate.c:4057 storage/lmgr/predicate.c:4065 storage/lmgr/predicate.c:4104 storage/lmgr/predicate.c:4334 storage/lmgr/predicate.c:4653 storage/lmgr/predicate.c:4665 storage/lmgr/predicate.c:4712 storage/lmgr/predicate.c:4748 +#: storage/lmgr/predicate.c:4003 storage/lmgr/predicate.c:4039 storage/lmgr/predicate.c:4072 storage/lmgr/predicate.c:4080 storage/lmgr/predicate.c:4119 storage/lmgr/predicate.c:4349 storage/lmgr/predicate.c:4668 storage/lmgr/predicate.c:4680 storage/lmgr/predicate.c:4727 storage/lmgr/predicate.c:4763 #, c-format msgid "The transaction might succeed if retried." msgstr "リトライが行われた場合、このトランザクションは成功するかもしれません" -#: storage/lmgr/proc.c:348 +#: storage/lmgr/proc.c:454 #, c-format msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)" msgstr "要求されたスタンバイ接続が\"max_wal_senders を超えています\" (現在は %d)" -#: storage/lmgr/proc.c:1541 +#: storage/lmgr/proc.c:1592 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "プロセス%1$dは、%4$ld.%5$03d ms後にキューの順番を再調整することで、%3$s上の%2$sに対するデッドロックを防ぎました。" -#: storage/lmgr/proc.c:1556 +#: storage/lmgr/proc.c:1607 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "プロセス%1$dは、%3$s上の%2$sに対し%4$ld.%5$03d ms待機するデッドロックを検知しました" -#: storage/lmgr/proc.c:1565 +#: storage/lmgr/proc.c:1616 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "プロセス%dは%sを%sで待機しています。%ld.%03dミリ秒後" -#: storage/lmgr/proc.c:1572 +#: storage/lmgr/proc.c:1623 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "プロセス%1$dは%4$ld.%5$03d ms後に%3$s上の%2$sを獲得しました" -#: storage/lmgr/proc.c:1589 +#: storage/lmgr/proc.c:1640 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "プロセス%1$dは%4$ld.%5$03d ms後に%3$s上で%2$sを獲得することに失敗しました" -#: storage/page/bufpage.c:152 +#: storage/page/bufpage.c:154 #, c-format msgid "page verification failed, calculated checksum %u but expected %u" msgstr "ページ検証が失敗しました。計算されたチェックサムは%uですが想定は%uです" -#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 +#: storage/page/bufpage.c:216 storage/page/bufpage.c:729 storage/page/bufpage.c:1072 storage/page/bufpage.c:1207 storage/page/bufpage.c:1313 storage/page/bufpage.c:1425 #, c-format msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" msgstr "ページポインタが破損しています: lower = %u, upper = %u, special = %u\"" -#: storage/page/bufpage.c:759 +#: storage/page/bufpage.c:758 #, c-format msgid "corrupted line pointer: %u" msgstr "ラインポインタが破損しています: %u" -#: storage/page/bufpage.c:789 storage/page/bufpage.c:1266 +#: storage/page/bufpage.c:788 storage/page/bufpage.c:1265 #, c-format msgid "corrupted item lengths: total %u, available space %u" msgstr "アイテム長が破損しています: 合計 %u 利用可能空間 %u" -#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 +#: storage/page/bufpage.c:1091 storage/page/bufpage.c:1232 storage/page/bufpage.c:1329 storage/page/bufpage.c:1441 #, c-format msgid "corrupted line pointer: offset = %u, size = %u" msgstr "ラインポインタが破損しています: オフセット = %u サイズ = %u" -#: storage/smgr/md.c:485 storage/smgr/md.c:547 +#: storage/smgr/md.c:502 storage/smgr/md.c:564 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "ファイル\"%s\"を%uブロック以上に拡張できません" -#: storage/smgr/md.c:500 storage/smgr/md.c:611 +#: storage/smgr/md.c:517 storage/smgr/md.c:628 #, c-format msgid "could not extend file \"%s\": %m" msgstr "ファイル\"%s\"を拡張できませんでした: %m" -#: storage/smgr/md.c:506 +#: storage/smgr/md.c:523 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "ファイル\"%1$s\"を拡張できませんでした: %4$uブロックで%3$dバイト中%2$dバイト分のみを書き出しました。" -#: storage/smgr/md.c:589 +#: storage/smgr/md.c:606 #, c-format msgid "could not extend file \"%s\" with FileFallocate(): %m" msgstr "ファイル\"%s\"をFileFallocate()で拡張できませんでした: %m" -#: storage/smgr/md.c:869 +#: storage/smgr/md.c:899 storage/smgr/md.c:2047 #, c-format msgid "could not read blocks %u..%u in file \"%s\": %m" msgstr "ファイル\"%3$s\"でブロック範囲 %1$u...%2$u を読み取れませんでした: %3$m" -#: storage/smgr/md.c:895 +#: storage/smgr/md.c:946 storage/smgr/md.c:2060 #, c-format msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" msgstr "ファイル\"%3$s\"でブロック範囲 %1$u...%2$u を読み取れませんでした: %5$zuバイト中%4$zuバイト分のみ読み込みました" -#: storage/smgr/md.c:995 +#: storage/smgr/md.c:1023 +#, c-format +msgid "could not start reading blocks %u..%u in file \"%s\": %m" +msgstr "ファイル\"%3$s\"のブロック範囲 %1$u...%2$u の読み取りを開始できませんでした: %m" + +#: storage/smgr/md.c:1119 #, c-format msgid "could not write blocks %u..%u in file \"%s\": %m" msgstr "ファイル\"%3$s\"でブロック範囲 %1$u...%2$u を書き込めませんでした: %3$m" -#: storage/smgr/md.c:1163 +#: storage/smgr/md.c:1289 #, 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:1218 +#: storage/smgr/md.c:1344 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "ファイル\"%s\"を%uブロックに切り詰められませんでした: %m" -#: storage/smgr/md.c:1688 +#: storage/smgr/md.c:1832 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "ファイル\"%s\"(対象ブロック%u)をオープンできませんでした: 直前のセグメントは%uブロックだけでした" -#: storage/smgr/md.c:1702 +#: storage/smgr/md.c:1846 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "ファイル \"%s\"(対象ブロック %u)をオープンできませんでした: %m" -#: tcop/backend_startup.c:85 +#: storage/smgr/smgr.c:1106 #, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "SSL構成は子プロセスでは読み込めません" +msgid "file \"%s\"" +msgstr "ファイル\"%s\"" -#: tcop/backend_startup.c:208 +#: storage/smgr/smgr.c:1108 #, c-format -msgid "connection received: host=%s port=%s" -msgstr "接続を受け付けました: ホスト=%s ポート番号=%s" +msgid "block %u in file \"%s\"" +msgstr "ファイル\"%2$s\"のブロック%1$u" -#: tcop/backend_startup.c:213 +#: storage/smgr/smgr.c:1112 +#, c-format +msgid "blocks %u..%u in file \"%s\"" +msgstr "ファイル\"%3$s\"でブロック範囲 %1$u...%2$u" + +#: tcop/backend_startup.c:104 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "SSL構成は子プロセスでは読み込めません" + +#: tcop/backend_startup.c:226 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "接続を受け付けました: ホスト=%s ポート番号=%s" + +#: tcop/backend_startup.c:231 #, c-format msgid "connection received: host=%s" msgstr "接続を受け付けました: ホスト=%s" -#: tcop/backend_startup.c:277 +#: tcop/backend_startup.c:309 #, c-format msgid "the database system is starting up" msgstr "データベースシステムは起動処理中です" -#: tcop/backend_startup.c:283 +#: tcop/backend_startup.c:315 +#, c-format +msgid "the database system is not accepting connections" +msgstr "データベースシステムは接続を受け付けていません" + +#: tcop/backend_startup.c:316 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "ホットスタンバイモードは無効です。" + +#: tcop/backend_startup.c:320 tcop/backend_startup.c:327 #, c-format msgid "the database system is not yet accepting connections" msgstr "データベースシステムはまだ接続を受け付けていません" -#: tcop/backend_startup.c:284 +#: tcop/backend_startup.c:321 #, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "リカバリの一貫性はまだ確保されていません。" +msgid "Recovery snapshot is not yet ready for hot standby." +msgstr "リカバリースナップショットはホットスタンバイではまだ使用できません。" -#: tcop/backend_startup.c:288 +#: tcop/backend_startup.c:322 #, c-format -msgid "the database system is not accepting connections" -msgstr "データベースシステムは接続を受け付けていません" +msgid "To enable hot standby, close write transactions with more than %d subtransactions on the primary server." +msgstr "ホットスタンバイを有効にするため、プライマリサーバー上で%d以上のサブトランザクションを持つ書き込みトランザクションを終了させてください。" -#: tcop/backend_startup.c:289 +#: tcop/backend_startup.c:328 #, c-format -msgid "Hot standby mode is disabled." -msgstr "ホットスタンバイモードは無効です。" +msgid "Consistent recovery state has not been yet reached." +msgstr "リカバリの一貫性はまだ確保されていません。" -#: tcop/backend_startup.c:294 +#: tcop/backend_startup.c:333 #, c-format msgid "the database system is shutting down" msgstr "データベースシステムはシャットダウンしています" -#: tcop/backend_startup.c:299 +#: tcop/backend_startup.c:338 #, c-format msgid "the database system is in recovery mode" msgstr "データベースシステムはリカバリモードです" -#: tcop/backend_startup.c:414 +#: tcop/backend_startup.c:453 #, c-format msgid "received direct SSL connection request without ALPN protocol negotiation extension" msgstr "ALPNプロトコルネゴシエーション拡張を持たない直接SSL接続要求を受信しました" -#: tcop/backend_startup.c:420 +#: tcop/backend_startup.c:459 #, c-format msgid "direct SSL connection accepted" msgstr "直接SSL接続を受け付けられました" -#: tcop/backend_startup.c:430 +#: tcop/backend_startup.c:469 #, c-format msgid "direct SSL connection rejected" msgstr "直接SSL接続が拒否されました" -#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#: tcop/backend_startup.c:528 tcop/backend_startup.c:556 #, c-format msgid "incomplete startup packet" msgstr "開始パケットが不完全です" -#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#: tcop/backend_startup.c:540 #, c-format msgid "invalid length of startup packet" msgstr "不正な開始パケット長" -#: tcop/backend_startup.c:573 +#: tcop/backend_startup.c:597 #, c-format msgid "SSLRequest accepted" msgstr "SSLRequestを受け付けました" -#: tcop/backend_startup.c:576 +#: tcop/backend_startup.c:600 #, c-format msgid "SSLRequest rejected" msgstr "SSLRequestを拒否しました" -#: tcop/backend_startup.c:585 +#: tcop/backend_startup.c:609 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "SSLネゴシエーション応答の送信に失敗しました: %m" -#: tcop/backend_startup.c:603 +#: tcop/backend_startup.c:627 #, c-format msgid "received unencrypted data after SSL request" msgstr "SSL要求の後に非暗号化データを受信しました" -#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#: tcop/backend_startup.c:628 tcop/backend_startup.c:682 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "これはクライアントソフトウェアのバグであるか、man-in-the-middle攻撃の証左である可能性があります。" -#: tcop/backend_startup.c:627 +#: tcop/backend_startup.c:651 #, c-format msgid "GSSENCRequest accepted" msgstr "GSSENCRequestを受け付けました" -#: tcop/backend_startup.c:630 +#: tcop/backend_startup.c:654 #, c-format msgid "GSSENCRequest rejected" msgstr "GSSENCRequestを拒否しました" -#: tcop/backend_startup.c:639 +#: tcop/backend_startup.c:663 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "GSSAPIネゴシエーション応答の送信に失敗しました: %m" -#: tcop/backend_startup.c:657 +#: tcop/backend_startup.c:681 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "GSSAPI暗号化リクエストの後に非暗号化データを受信" -#: tcop/backend_startup.c:681 +#: tcop/backend_startup.c:709 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "フロントエンドプロトコル%u.%uをサポートしていません: サーバーは%u.0から %u.%uまでをサポートします" -#: tcop/backend_startup.c:744 +#: tcop/backend_startup.c:772 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "有効な値: \"false\", 0, \"true\", 1, \"database\"。" -#: tcop/backend_startup.c:785 +#: tcop/backend_startup.c:813 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "開始パケットの配置が不正です: 最終バイトはターミネータであるはずです" -#: tcop/backend_startup.c:802 +#: tcop/backend_startup.c:830 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "開始パケットで指定されたPostgreSQLユーザー名は存在しません" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 +#: tcop/backend_startup.c:884 +#, c-format +msgid "invalid length of query cancel packet" +msgstr "不正なキャンセルパケット長" + +#: tcop/backend_startup.c:892 +#, c-format +msgid "invalid length of query cancel key" +msgstr "不正なキャンセルパケットキー長" + +#: tcop/backend_startup.c:1022 +#, c-format +msgid "Cannot specify log_connections option \"%s\" in a list with other options." +msgstr "log_connectionsオプション\"%s\"は、リスト内で他のオプションと同時に指定できません。" + +#: tcop/backend_startup.c:1080 +#, c-format +msgid "Invalid list syntax in parameter \"log_connections\"." +msgstr "パラメータ\"log_connections\"のリスト構文が不正です。" + +#: tcop/fastpath.c:141 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "OID %uの関数は存在しません" -#: tcop/fastpath.c:149 +#: tcop/fastpath.c:148 #, c-format msgid "cannot call function \"%s\" via fastpath interface" msgstr "関数\"%s\"は高速呼び出しインタフェースでの呼び出しはできません" -#: tcop/fastpath.c:234 +#: tcop/fastpath.c:233 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" msgstr "近道関数呼び出し: \"%s\"(OID %u))" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 tcop/postgres.c:2055 tcop/postgres.c:2305 +#: tcop/fastpath.c:312 tcop/postgres.c:1364 tcop/postgres.c:1600 tcop/postgres.c:2079 tcop/postgres.c:2351 #, c-format msgid "duration: %s ms" msgstr "期間: %s ミリ秒" -#: tcop/fastpath.c:317 +#: tcop/fastpath.c:316 #, c-format msgid "duration: %s ms fastpath function call: \"%s\" (OID %u)" msgstr "期間: %sミリ秒 ファストパス関数呼び出し: \"%s\" (OID %u)" -#: tcop/fastpath.c:353 +#: tcop/fastpath.c:352 #, c-format msgid "function call message contains %d arguments but function requires %d" msgstr "関数呼び出しメッセージには%d引数ありましたが、関数には%d必要です" -#: tcop/fastpath.c:361 +#: tcop/fastpath.c:360 #, c-format msgid "function call message contains %d argument formats but %d arguments" msgstr "関数呼び出しメッセージには%dの引数書式がありましたが、引数は%dでした" -#: tcop/fastpath.c:385 +#: tcop/fastpath.c:384 #, c-format msgid "invalid argument size %d in function call message" msgstr "関数呼び出しメッセージ内の引数サイズ%dが不正です" -#: tcop/fastpath.c:448 +#: tcop/fastpath.c:447 #, c-format msgid "incorrect binary data format in function argument %d" msgstr "関数引数%dのバイナリデータ書式が不正です" -#: tcop/postgres.c:463 tcop/postgres.c:4925 +#: tcop/postgres.c:455 tcop/postgres.c:5023 #, c-format msgid "invalid frontend message type %d" msgstr "フロントエンドメッセージタイプ%dが不正です" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1070 #, c-format msgid "statement: %s" msgstr "文: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1369 #, c-format msgid "duration: %s ms statement: %s" msgstr "期間: %s ミリ秒 文: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1475 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "準備された文に複数のコマンドを挿入できません" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1605 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "期間: %s ミリ秒 パース%s : %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2625 +#: tcop/postgres.c:1672 tcop/postgres.c:2671 #, c-format msgid "unnamed prepared statement does not exist" msgstr "無名の準備された文が存在しません" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1724 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "バインドメッセージは%dパラメータ書式ありましたがパラメータは%dでした" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1730 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "バインドメッセージは%dパラメータを提供しましたが、準備された文\"%s\"では%d必要でした" -#: tcop/postgres.c:1933 +#: tcop/postgres.c:1944 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "バインドパラメータ%dにおいてバイナリデータ書式が不正です" -#: tcop/postgres.c:2060 +#: tcop/postgres.c:2084 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "期間: %s ミリ秒 バインド %s%s%s: %s" -#: tcop/postgres.c:2114 tcop/postgres.c:2708 +#: tcop/postgres.c:2139 tcop/postgres.c:2753 #, c-format msgid "portal \"%s\" does not exist" msgstr "ポータル\"%s\"は存在しません" -#: tcop/postgres.c:2185 +#: tcop/postgres.c:2232 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2187 tcop/postgres.c:2313 +#: tcop/postgres.c:2234 tcop/postgres.c:2359 msgid "execute fetch from" msgstr "取り出し実行" -#: tcop/postgres.c:2188 tcop/postgres.c:2314 +#: tcop/postgres.c:2235 tcop/postgres.c:2360 msgid "execute" msgstr "実行" -#: tcop/postgres.c:2310 +#: tcop/postgres.c:2356 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "期間: %s ミリ秒 %s %s%s%s: %s" -#: tcop/postgres.c:2458 +#: tcop/postgres.c:2504 #, c-format msgid "prepare: %s" msgstr "準備: %s" -#: tcop/postgres.c:2483 +#: tcop/postgres.c:2529 #, c-format msgid "Parameters: %s" msgstr "パラメータ: %s" -#: tcop/postgres.c:2498 +#: tcop/postgres.c:2544 #, c-format msgid "Abort reason: recovery conflict" msgstr "異常終了の理由: リカバリ衝突" -#: tcop/postgres.c:2514 +#: tcop/postgres.c:2560 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "ユーザーが共有バッファ・ピンを長く保持し過ぎていました" -#: tcop/postgres.c:2517 +#: tcop/postgres.c:2563 #, c-format msgid "User was holding a relation lock for too long." msgstr "ユーザーリレーションのロックを長く保持し過ぎていました" -#: tcop/postgres.c:2520 +#: tcop/postgres.c:2566 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "削除されるべきテーブルスペースをユーザーが使っていました(もしくはその可能性がありました)。" -#: tcop/postgres.c:2523 +#: tcop/postgres.c:2569 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "削除されるべきバージョンの行をユーザー問い合わせが参照しなければならなかった可能性がありました。" -#: tcop/postgres.c:2526 +#: tcop/postgres.c:2572 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "無効化されるべき論理レプリケーションスロットをユーザーが使用していました。" -#: tcop/postgres.c:2532 +#: tcop/postgres.c:2578 #, c-format msgid "User was connected to a database that must be dropped." msgstr "削除されるべきデータベースにユーザーが接続していました。" -#: tcop/postgres.c:2571 +#: tcop/postgres.c:2617 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "ポータル\"%s\" パラメータ$%d = %s" -#: tcop/postgres.c:2574 +#: tcop/postgres.c:2620 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "ポータル\"%s\" パラメータ $%d" -#: tcop/postgres.c:2580 +#: tcop/postgres.c:2626 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "無名ポータルパラメータ $%d = %s" -#: tcop/postgres.c:2583 +#: tcop/postgres.c:2629 #, c-format msgid "unnamed portal parameter $%d" msgstr "無名ポータルパラメータ $%d" -#: tcop/postgres.c:2928 +#: tcop/postgres.c:2984 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "予期しないSIGQUITシグナルによりコネクションを終了します" -#: tcop/postgres.c:2934 +#: tcop/postgres.c:2990 #, c-format msgid "terminating connection because of crash of another server process" msgstr "他のサーバープロセスがクラッシュしたため接続を終了します" -#: tcop/postgres.c:2935 +#: tcop/postgres.c:2991 #, c-format 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 "" @@ -23241,182 +24193,177 @@ msgstr "" "postmasterはこのサーバープロセスに対し、現在のトランザクションをロールバック\n" "し終了するよう指示しました。" -#: tcop/postgres.c:2939 tcop/postgres.c:3192 +#: tcop/postgres.c:2995 tcop/postgres.c:3248 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "この後、データベースに再接続し、コマンドを繰り返さなければなりません。" -#: tcop/postgres.c:2946 +#: tcop/postgres.c:3002 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "即時シャットダウンコマンドによりコネクションを終了します" -#: tcop/postgres.c:3024 +#: tcop/postgres.c:3080 #, c-format msgid "floating-point exception" msgstr "浮動小数点例外" -#: tcop/postgres.c:3025 +#: tcop/postgres.c:3081 #, c-format 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 "不正な浮動小数点演算がシグナルされました。おそらくこれは、範囲外の結果もしくは0除算のような不正な演算によるものです。" -#: tcop/postgres.c:3190 +#: tcop/postgres.c:3246 #, c-format msgid "terminating connection due to conflict with recovery" msgstr "リカバリで競合が発生したため、接続を終了しています" -#: tcop/postgres.c:3262 +#: tcop/postgres.c:3318 #, c-format msgid "canceling authentication due to timeout" msgstr "タイムアウトにより認証処理をキャンセルしています" -#: tcop/postgres.c:3266 +#: tcop/postgres.c:3322 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "管理者コマンドにより自動VACUUM処理を終了しています" -#: tcop/postgres.c:3270 +#: tcop/postgres.c:3326 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "管理者コマンドにより、論理レプリケーションワーカーを終了します" -#: tcop/postgres.c:3290 +#: tcop/postgres.c:3341 +#, c-format +msgid "terminating walreceiver process due to administrator command" +msgstr "管理者コマンドにより WAL 受信プロセスを終了しています" + +#: tcop/postgres.c:3357 #, c-format msgid "terminating connection due to administrator command" msgstr "管理者コマンドにより接続を終了しています" -#: tcop/postgres.c:3321 +#: tcop/postgres.c:3388 #, c-format msgid "connection to client lost" msgstr "クライアントへの接続が切れました。" -#: tcop/postgres.c:3373 +#: tcop/postgres.c:3440 #, c-format msgid "canceling statement due to lock timeout" msgstr "ロックのタイムアウトのためステートメントをキャンセルしています" -#: tcop/postgres.c:3380 +#: tcop/postgres.c:3447 #, c-format msgid "canceling statement due to statement timeout" msgstr "ステートメントのタイムアウトのためステートメントをキャンセルしています" -#: tcop/postgres.c:3387 +#: tcop/postgres.c:3454 #, c-format msgid "canceling autovacuum task" msgstr "自動VACUUM処理をキャンセルしています" -#: tcop/postgres.c:3400 +#: tcop/postgres.c:3467 #, c-format msgid "canceling statement due to user request" msgstr "ユーザーからの要求により文をキャンセルしています" -#: tcop/postgres.c:3421 +#: tcop/postgres.c:3488 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "トランザクション中アイドルタイムアウトのため接続を終了します" -#: tcop/postgres.c:3434 +#: tcop/postgres.c:3501 #, c-format msgid "terminating connection due to transaction timeout" msgstr "トランザクションタイムアウトのため接続を終了します" -#: tcop/postgres.c:3447 +#: tcop/postgres.c:3514 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "アイドルセッションタイムアウトにより接続を終了します" -#: tcop/postgres.c:3537 -#, c-format -msgid "stack depth limit exceeded" -msgstr "スタック長制限を越えました" - -#: tcop/postgres.c:3538 -#, c-format -msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." -msgstr "プラットフォームのスタック長制限が適切であることを確認した後に、設定パラメータ\"max_stack_depth\" (現在 %dkB)を増やしてください。" - -#: tcop/postgres.c:3585 -#, c-format -msgid "\"max_stack_depth\" must not exceed %ldkB." -msgstr "\"max_stack_depth\"は%ldkBを越えてはなりません。" - -#: tcop/postgres.c:3587 -#, c-format -msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." -msgstr "プラットフォームのスタック長制限を\"ulimit -s\"または同等の機能を使用して増加してください" - -#: tcop/postgres.c:3610 +#: tcop/postgres.c:3553 #, c-format msgid "\"client_connection_check_interval\" must be set to 0 on this platform." msgstr "このプラットフォームでは\"client_connection_check_interval\"を0に設定する必要があります。" -#: tcop/postgres.c:3631 +#: tcop/postgres.c:3574 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "\"log_statement_stats\"が真の場合、パラメータを有効にできません" -#: tcop/postgres.c:3646 +#: tcop/postgres.c:3589 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "\"log_parser_stats\"、\"log_planner_stats\"、または\"log_executor_stats\"のいずれかがtrueの場合は\"log_statement_stats\"を有効にできません。" -#: tcop/postgres.c:4011 +#: tcop/postgres.c:4029 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "サーバープロセスに対する不正なコマンドライン引数: %s" -#: tcop/postgres.c:4012 tcop/postgres.c:4018 +#: tcop/postgres.c:4030 tcop/postgres.c:4036 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: tcop/postgres.c:4016 +#: tcop/postgres.c:4034 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: 不正なコマンドライン引数: %s" -#: tcop/postgres.c:4069 +#: tcop/postgres.c:4087 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: データベース名もユーザー名も指定されていません" -#: tcop/postgres.c:4822 +#: tcop/postgres.c:4280 +#, c-format +msgid "could not generate random cancel key" +msgstr "ランダムなキャンセルキーを生成できませんでした" + +#: tcop/postgres.c:4682 +#, c-format +msgid "connection ready: setup total=%.3f ms, fork=%.3f ms, authentication=%.3f ms" +msgstr "接続完了: 所要時間=%.3fミリ秒、fork=%.3fミリ秒、認証処理=%.3fミリ秒" + +#: tcop/postgres.c:4913 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "不正なCLOSEメッセージのサブタイプ%d" -#: tcop/postgres.c:4859 +#: tcop/postgres.c:4950 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "不正なDESCRIBEメッセージのサブタイプ%d" -#: tcop/postgres.c:4946 +#: tcop/postgres.c:5044 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "レプリケーション接続では高速関数呼び出しはサポートされていません" -#: tcop/postgres.c:4950 +#: tcop/postgres.c:5048 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "レプリケーション接続では拡張問い合わせプロトコルはサポートされていません" -#: tcop/postgres.c:5130 +#: tcop/postgres.c:5194 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "接続を切断: セッション時間: %d:%02d:%02d.%03d ユーザー=%s データベース=%s ホスト=%s%s%s" -#: tcop/pquery.c:641 +#: tcop/pquery.c:674 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "バインドメッセージは%dの結果書式がありましたが、問い合わせは%d列でした" -#: tcop/pquery.c:944 tcop/pquery.c:1701 +#: tcop/pquery.c:972 tcop/pquery.c:1734 #, c-format msgid "cursor can only scan forward" msgstr "カーゾルは前方へのスキャンしかできません" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:973 tcop/pquery.c:1735 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "後方スキャンを有効にするためにはSCROLLオプションを付けて宣言してください。" @@ -23446,68 +24393,68 @@ msgid "cannot execute %s within security-restricted operation" msgstr "セキュリティー制限操作の中では %s を実行できません" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:821 +#: tcop/utility.c:824 #, c-format msgid "cannot execute %s within a background process" msgstr "バックグラウンドプロセス内で%sを実行することはできません" #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:947 +#: tcop/utility.c:950 #, c-format msgid "permission denied to execute %s command" msgstr "%sコマンドを実行する権限がありません" -#: tcop/utility.c:949 +#: tcop/utility.c:952 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "\"%s\"ロールの権限を持つロールのみがこのコマンドを実行できます。" -#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:616 +#: tsearch/dict_ispell.c:53 tsearch/dict_thesaurus.c:616 #, c-format msgid "multiple DictFile parameters" msgstr "重複するDictFileパラメータ" -#: tsearch/dict_ispell.c:63 +#: tsearch/dict_ispell.c:64 #, c-format msgid "multiple AffFile parameters" msgstr "重複するAffFileパラメータ" -#: tsearch/dict_ispell.c:82 +#: tsearch/dict_ispell.c:83 #, c-format msgid "unrecognized Ispell parameter: \"%s\"" msgstr "認識不可のIspellパラメータ: \"%s\"" -#: tsearch/dict_ispell.c:96 +#: tsearch/dict_ispell.c:97 #, c-format msgid "missing AffFile parameter" msgstr "AffFileパラメータがありません" -#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:640 +#: tsearch/dict_ispell.c:103 tsearch/dict_thesaurus.c:640 #, c-format msgid "missing DictFile parameter" msgstr "DictFileパラメータがありません" -#: tsearch/dict_simple.c:58 +#: tsearch/dict_simple.c:59 #, c-format msgid "multiple Accept parameters" msgstr "重複するAcceptパラメータ" -#: tsearch/dict_simple.c:66 +#: tsearch/dict_simple.c:67 #, c-format msgid "unrecognized simple dictionary parameter: \"%s\"" msgstr "認識できない単純辞書パラメータ: \"%s\"" -#: tsearch/dict_synonym.c:118 +#: tsearch/dict_synonym.c:120 #, c-format msgid "unrecognized synonym parameter: \"%s\"" msgstr "認識できない類義語パラメータ: \"%s\"" -#: tsearch/dict_synonym.c:125 +#: tsearch/dict_synonym.c:127 #, c-format msgid "missing Synonyms parameter" msgstr "類義語パラメータがありません" -#: tsearch/dict_synonym.c:132 +#: tsearch/dict_synonym.c:134 #, c-format msgid "could not open synonym file \"%s\": %m" msgstr "類義語ファイル\"%s\"をオープンできませんでした: %m" @@ -23582,76 +24529,71 @@ msgstr "認識できないシソーラスパラメータ \"%s\"" msgid "missing Dictionary parameter" msgstr "Dictionaryパラメータがありません" -#: tsearch/spell.c:381 tsearch/spell.c:398 tsearch/spell.c:407 tsearch/spell.c:1043 +#: tsearch/spell.c:383 tsearch/spell.c:400 tsearch/spell.c:409 tsearch/spell.c:1046 #, c-format msgid "invalid affix flag \"%s\"" msgstr "不正な接辞フラグ\"%s\"" -#: tsearch/spell.c:385 tsearch/spell.c:1047 +#: tsearch/spell.c:387 tsearch/spell.c:1050 #, c-format msgid "affix flag \"%s\" is out of range" msgstr "接辞フラグ\"%s\"は範囲外です" -#: tsearch/spell.c:415 +#: tsearch/spell.c:417 #, c-format msgid "invalid character in affix flag \"%s\"" msgstr "接辞フラグ中の不正な文字\"%s\"" -#: tsearch/spell.c:435 +#: tsearch/spell.c:437 #, c-format msgid "invalid affix flag \"%s\" with \"long\" flag value" msgstr "\"long\"フラグ値を伴った不正な接辞フラグ\"%s\"" -#: tsearch/spell.c:525 +#: tsearch/spell.c:527 #, c-format msgid "could not open dictionary file \"%s\": %m" msgstr "辞書ファイル\"%s\"をオープンできませんでした: %m" -#: tsearch/spell.c:1170 tsearch/spell.c:1182 tsearch/spell.c:1742 tsearch/spell.c:1747 tsearch/spell.c:1752 +#: tsearch/spell.c:1174 tsearch/spell.c:1186 tsearch/spell.c:1751 tsearch/spell.c:1756 tsearch/spell.c:1761 #, c-format msgid "invalid affix alias \"%s\"" msgstr "不正な接辞の別名 \"%s\"" -#: tsearch/spell.c:1223 tsearch/spell.c:1294 tsearch/spell.c:1443 +#: tsearch/spell.c:1227 tsearch/spell.c:1298 tsearch/spell.c:1447 #, c-format msgid "could not open affix file \"%s\": %m" msgstr "affixファイル\"%s\"をオープンできませんでした: %m" -#: tsearch/spell.c:1277 +#: tsearch/spell.c:1281 #, c-format msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values" msgstr "Ispell辞書はフラグ値\"default\"、\"long\"および\"num\"のみをサポートします" -#: tsearch/spell.c:1321 +#: tsearch/spell.c:1325 #, c-format msgid "invalid number of flag vector aliases" msgstr "不正な数のフラグベクタの別名" -#: tsearch/spell.c:1344 +#: tsearch/spell.c:1348 #, c-format msgid "number of aliases exceeds specified number %d" msgstr "別名の数が指定された数 %d を超えています" -#: tsearch/spell.c:1559 +#: tsearch/spell.c:1563 #, c-format msgid "affix file contains both old-style and new-style commands" msgstr "接辞ファイルが新旧両方の形式のコマンドを含んでいます" -#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:274 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "TSベクターのための文字列が長すぎます(%dバイト、最大は%dバイト)" -#: tsearch/ts_locale.c:236 +#: tsearch/ts_locale.c:191 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "設定ファイル\"%2$s\"の%1$d行目: \"%3$s\"" -#: tsearch/ts_locale.c:315 -#, c-format -msgid "conversion from wchar_t to server encoding failed: %m" -msgstr "wchar_tからサーバー符号化方式への変換が失敗しました: %m" - #: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:573 tsearch/ts_parse.c:580 #, c-format msgid "word is too long to be indexed" @@ -23662,12 +24604,12 @@ msgstr "インデックス付けするには単語が長すぎます" msgid "Words longer than %d characters are ignored." msgstr "%dより長い単語は無視されます。" -#: tsearch/ts_utils.c:51 +#: tsearch/ts_utils.c:52 #, c-format msgid "invalid text search configuration file name \"%s\"" msgstr "テキスト検索設定ファイル名は%sは不正です" -#: tsearch/ts_utils.c:83 +#: tsearch/ts_utils.c:84 #, c-format msgid "could not open stop-word file \"%s\": %m" msgstr "ストップワードファイル\"%s\"をオープンできませんでした: %m" @@ -23684,60 +24626,105 @@ msgstr "認識できない見出しパラメータ: \"%s\"" #: tsearch/wparser_def.c:2674 #, c-format -msgid "MinWords should be less than MaxWords" -msgstr "MinWordsはMaxWordsより小さくなければなりません" +msgid "%s must be less than %s" +msgstr "\"%s\"は\"%s\"より小さくなければなりません" #: tsearch/wparser_def.c:2678 #, c-format -msgid "MinWords should be positive" -msgstr "MinWordsは正でなければなりません" +msgid "%s must be positive" +msgstr "%sは正数でなければなりまsん" -#: tsearch/wparser_def.c:2682 +#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686 #, c-format -msgid "ShortWord should be >= 0" -msgstr "ShortWordは>= 0でなければなりません" +msgid "%s must be >= 0" +msgstr "%sは0以上でなければなりません" -#: tsearch/wparser_def.c:2686 -#, c-format -msgid "MaxFragments should be >= 0" -msgstr "MaxFragments は 0 以上でなければなりません" - -#: utils/activity/pgstat.c:435 +#: utils/activity/pgstat.c:533 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "永続統計情報ファイル\"%s\"をunlinkできませんでした: %m" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1443 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "不正な統計情報種別: \"%s\"" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1488 +#, c-format +msgid "custom cumulative statistics name is invalid" +msgstr "独自集積統計情報の名前が不正です" + +#: utils/activity/pgstat.c:1489 +#, c-format +msgid "Provide a non-empty name for the custom cumulative statistics." +msgstr "独自集積統計情報の名前には空ではない文字列を設定してください。" + +#: utils/activity/pgstat.c:1492 +#, c-format +msgid "custom cumulative statistics ID %u is out of range" +msgstr "独自集積統計情報のID %uは範囲外です" + +#: utils/activity/pgstat.c:1493 +#, c-format +msgid "Provide a custom cumulative statistics ID between %u and %u." +msgstr "独自集積統計情報IDは%uから%uの間の値で指定してください。" + +#: utils/activity/pgstat.c:1498 utils/activity/pgstat.c:1525 utils/activity/pgstat.c:1538 +#, c-format +msgid "failed to register custom cumulative statistics \"%s\" with ID %u" +msgstr "独自集積統計情報\"%s\"のID %uでの登録に失敗しました" + +#: utils/activity/pgstat.c:1499 +#, c-format +msgid "Custom cumulative statistics must be registered while initializing modules in \"shared_preload_libraries\"." +msgstr "独自集積統計情報は\"shared_preload_libraries\"にあるモジュールの初期化中に登録する必要があります。" + +#: utils/activity/pgstat.c:1508 +#, c-format +msgid "custom cumulative statistics property is invalid" +msgstr "独自集積統計情報の特性が不正です" + +#: utils/activity/pgstat.c:1509 +#, c-format +msgid "Custom cumulative statistics require a shared memory size for fixed-numbered objects." +msgstr "独自集積統計情報は固定数のオブジェクトのための共有メモリのサイズを必要とします。" + +#: utils/activity/pgstat.c:1526 +#, c-format +msgid "Custom cumulative statistics \"%s\" already registered with the same ID." +msgstr "独自集積統計情報\"%s\"はすでに同一のIDで登録されています。" + +#: utils/activity/pgstat.c:1539 +#, c-format +msgid "Existing cumulative statistics with ID %u has the same name." +msgstr "ID %uの既存の独自集積統計情報が同じ名前です。" + +#: utils/activity/pgstat.c:1545 +#, c-format +msgid "registered custom cumulative statistics \"%s\" with ID %u" +msgstr "独自集積統計情報\"%s\"をID %uで登録しました" + +#: utils/activity/pgstat.c:1614 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "一時統計情報ファイル\"%s\"をオープンできませんでした: %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1735 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "一時統計情報ファイル\"%s\"に書き込みできませんでした: %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1744 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "一時統計情報ファイル\"%s\"をクローズできませんでした: %m" -#: utils/activity/pgstat.c:1461 -#, c-format -msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" -msgstr "一時統計情報ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" - -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1798 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "統計情報ファイル\"%s\"をオープンできませんでした: %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:2030 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "統計情報ファイル\"%s\"が破損しています" @@ -23747,178 +24734,183 @@ msgstr "統計情報ファイル\"%s\"が破損しています" msgid "function call to dropped function" msgstr "削除された関数の呼び出し" -#: utils/activity/pgstat_xact.c:362 +#: utils/activity/pgstat_xact.c:366 +#, c-format +msgid "resetting existing statistics for kind %s, db=%u, oid=%" +msgstr "種類%s、db=%u、oid=%に対する既存の統計情報をリセットします" + +#: utils/activity/wait_event.c:206 utils/activity/wait_event.c:231 #, c-format -msgid "resetting existing statistics for kind %s, db=%u, oid=%u" -msgstr "種類%s、db=%u、oid=%uの既存統計情報をリセットします" +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "待機イベント\"%s\"は待機イベントタイプ\"%s\"内にすでに存在します" -#: utils/activity/wait_event.c:210 +#: utils/activity/wait_event.c:245 #, c-format -msgid "too many wait events for extensions" -msgstr "機能拡張の待機イベントが多すぎます" +msgid "too many custom wait events" +msgstr "独自待機イベントの数が多すぎます" -#: utils/adt/acl.c:183 utils/adt/name.c:93 +#: utils/adt/acl.c:187 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "識別子が長すぎます" -#: utils/adt/acl.c:184 utils/adt/name.c:94 +#: utils/adt/acl.c:188 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "識別子は%d文字より短くなければなりません。" -#: utils/adt/acl.c:272 +#: utils/adt/acl.c:276 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "キーワードが不明です: \"%s\"" -#: utils/adt/acl.c:273 +#: utils/adt/acl.c:277 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "ACLキーワードは\"group\"または\"user\"でなければなりません。" -#: utils/adt/acl.c:281 +#: utils/adt/acl.c:285 #, c-format msgid "missing name" msgstr "名前がありません" -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:286 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "\"group\"または\"user\"キーワードの後には名前が必要です。" -#: utils/adt/acl.c:288 +#: utils/adt/acl.c:292 #, c-format msgid "missing \"=\" sign" msgstr "\"=\"記号がありません" -#: utils/adt/acl.c:350 +#: utils/adt/acl.c:351 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "不正なモード文字: \"%s\"の一つでなければなりません" -#: utils/adt/acl.c:380 +#: utils/adt/acl.c:381 #, c-format msgid "a name must follow the \"/\" sign" msgstr "\"/\"記号の後には名前が必要です" -#: utils/adt/acl.c:392 +#: utils/adt/acl.c:393 #, c-format msgid "defaulting grantor to user ID %u" msgstr "権限付与者をデフォルトのユーザーID %uにしています" -#: utils/adt/acl.c:578 +#: utils/adt/acl.c:579 #, c-format msgid "ACL array contains wrong data type" msgstr "ACL配列に不正なデータ型があります。" -#: utils/adt/acl.c:582 +#: utils/adt/acl.c:583 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "ACL配列は1次元の配列でなければなりません" -#: utils/adt/acl.c:586 +#: utils/adt/acl.c:587 #, c-format msgid "ACL arrays must not contain null values" msgstr "ACL配列にはNULL値を含めてはいけません" -#: utils/adt/acl.c:615 +#: utils/adt/acl.c:616 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "ACL指定の後に余計なごみがあります" -#: utils/adt/acl.c:1257 +#: utils/adt/acl.c:1264 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "グラントオプションでその権限付与者に権限を付与し返すことはできません" -#: utils/adt/acl.c:1573 +#: utils/adt/acl.c:1580 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsertはもうサポートされていません" -#: utils/adt/acl.c:1583 +#: utils/adt/acl.c:1590 #, c-format msgid "aclremove is no longer supported" msgstr "aclremoveはもうサポートされていません" -#: utils/adt/acl.c:1703 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "権限タイプが不明です: \"%s\"" -#: utils/adt/acl.c:3544 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3548 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "関数\"%s\"は存在しません" -#: utils/adt/acl.c:5190 +#: utils/adt/acl.c:5330 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "SET ROLE\"%s\"ができなければなりません" -#: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 +#: utils/adt/array_userfuncs.c:118 utils/adt/array_userfuncs.c:565 utils/adt/array_userfuncs.c:942 utils/adt/json.c:611 utils/adt/json.c:749 utils/adt/json.c:799 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "入力データ型を特定できませんでした" -#: utils/adt/array_userfuncs.c:107 +#: utils/adt/array_userfuncs.c:123 #, c-format msgid "input data type is not an array" msgstr "入力データ型は配列ではありません" -#: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 utils/adt/int.c:1263 -#: utils/adt/int.c:1331 utils/adt/int.c:1337 utils/adt/int8.c:1256 utils/adt/numeric.c:1902 utils/adt/numeric.c:4439 utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 utils/adt/varlena.c:3137 +#: utils/adt/array_userfuncs.c:167 utils/adt/array_userfuncs.c:249 utils/adt/float.c:1229 utils/adt/float.c:1303 utils/adt/float.c:4107 utils/adt/float.c:4145 utils/adt/int.c:778 utils/adt/int.c:800 utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 utils/adt/int.c:1263 +#: utils/adt/int.c:1331 utils/adt/int.c:1337 utils/adt/int8.c:1256 utils/adt/numeric.c:2039 utils/adt/numeric.c:4557 utils/adt/rangetypes.c:1552 utils/adt/rangetypes.c:1565 utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1143 utils/adt/varlena.c:3184 utils/adt/varlena.c:4118 #, c-format msgid "integer out of range" msgstr "integerの範囲外です" -#: utils/adt/array_userfuncs.c:158 utils/adt/array_userfuncs.c:213 +#: utils/adt/array_userfuncs.c:174 utils/adt/array_userfuncs.c:259 #, c-format msgid "argument must be empty or one-dimensional array" msgstr "引数は空か1次元の配列でなければなりません" -#: utils/adt/array_userfuncs.c:295 utils/adt/array_userfuncs.c:334 utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:400 utils/adt/array_userfuncs.c:428 +#: utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:410 utils/adt/array_userfuncs.c:447 utils/adt/array_userfuncs.c:476 utils/adt/array_userfuncs.c:504 #, c-format msgid "cannot concatenate incompatible arrays" msgstr "互換性がない配列を連結できません" -#: utils/adt/array_userfuncs.c:296 +#: utils/adt/array_userfuncs.c:372 #, c-format msgid "Arrays with element types %s and %s are not compatible for concatenation." msgstr "要素型%sと%sの配列の連結には互換性がありません" -#: utils/adt/array_userfuncs.c:335 +#: utils/adt/array_userfuncs.c:411 #, c-format msgid "Arrays of %d and %d dimensions are not compatible for concatenation." msgstr "要素数%dと%dの配列の連結には互換性がありません" -#: utils/adt/array_userfuncs.c:372 +#: utils/adt/array_userfuncs.c:448 #, c-format msgid "Arrays with differing element dimensions are not compatible for concatenation." msgstr "異なる要素次数の配列の連結には互換性がありません。" -#: utils/adt/array_userfuncs.c:401 utils/adt/array_userfuncs.c:429 +#: utils/adt/array_userfuncs.c:477 utils/adt/array_userfuncs.c:505 #, c-format msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "異なる次数の配列の連結には互換性がありません。" -#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 utils/adt/arrayfuncs.c:5609 utils/adt/arrayfuncs.c:5615 +#: utils/adt/array_userfuncs.c:1051 utils/adt/array_userfuncs.c:1059 utils/adt/arrayfuncs.c:5628 utils/adt/arrayfuncs.c:5634 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "次元の異なる配列は結合できません" -#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 +#: utils/adt/array_userfuncs.c:1348 utils/adt/array_userfuncs.c:1502 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "多次元配列内の要素の検索はサポートされません" -#: utils/adt/array_userfuncs.c:1301 +#: utils/adt/array_userfuncs.c:1377 #, c-format msgid "initial position must not be null" msgstr "初期位置nullであってはなりません" -#: utils/adt/array_userfuncs.c:1674 +#: utils/adt/array_userfuncs.c:1750 #, c-format msgid "sample size must be between 0 and %d" msgstr "サンプルの大きさは0と%dの間でなければなりません" @@ -23963,7 +24955,7 @@ msgstr "\"[\"は配列次元の明示的な指定の先頭である必要があ msgid "Missing array dimension value." msgstr "配列の次元数の値がありません。" -#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2933 utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "上限を下限より小さくすることはできません" @@ -23993,7 +24985,7 @@ msgstr "想定外の配列要素。" msgid "Specified array dimensions do not match array contents." msgstr "指定された配列の次元数が配列の内容と合致していません。" -#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2597 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2600 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "多次元配列は合致する次元の副配列を持たなければなりません。" @@ -24003,12 +24995,12 @@ msgstr "多次元配列は合致する次元の副配列を持たなければな msgid "Incorrectly quoted array element." msgstr "配列要素が正しくクォートされていません" -#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 utils/adt/rangetypes.c:2528 utils/adt/rangetypes.c:2536 utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 #, c-format msgid "Unexpected end of input." msgstr "想定外の入力の終端。" -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3492 utils/adt/arrayfuncs.c:6099 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3511 utils/adt/arrayfuncs.c:6120 #, c-format msgid "invalid number of dimensions: %d" msgstr "不正な次元数: %d" @@ -24023,7 +25015,7 @@ msgstr "不正な配列フラグ" msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "バイナリデータ中に期待される型%3$u(%4$s)の代わりに%1$u(%2$s)がありました" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:353 utils/cache/lsyscache.c:3098 #, c-format msgid "no binary input function available for type %s" msgstr "型%sにはバイナリ入力関数がありません" @@ -24033,7 +25025,7 @@ msgstr "型%sにはバイナリ入力関数がありません" msgid "improper binary format in array element %d" msgstr "配列要素%dのバイナリ書式が不適切です" -#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 utils/adt/rangetypes.c:358 utils/cache/lsyscache.c:3131 #, c-format msgid "no binary output function available for type %s" msgstr "型%sにはバイナリ出力関数がありません" @@ -24043,12 +25035,12 @@ msgstr "型%sにはバイナリ出力関数がありません" msgid "slices of fixed-length arrays not implemented" msgstr "固定長配列の部分配列は実装されていません" -#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 utils/adt/arrayfuncs.c:2908 utils/adt/arrayfuncs.c:6085 utils/adt/arrayfuncs.c:6111 utils/adt/arrayfuncs.c:6122 utils/adt/json.c:1419 utils/adt/json.c:1491 utils/adt/jsonb.c:1317 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4688 utils/adt/jsonfuncs.c:4841 utils/adt/jsonfuncs.c:4952 utils/adt/jsonfuncs.c:5000 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6106 utils/adt/arrayfuncs.c:6132 utils/adt/arrayfuncs.c:6143 utils/adt/json.c:1441 utils/adt/json.c:1509 utils/adt/jsonb.c:1317 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4734 utils/adt/jsonfuncs.c:4887 utils/adt/jsonfuncs.c:4998 utils/adt/jsonfuncs.c:5046 #, c-format msgid "wrong number of array subscripts" msgstr "配列の添え字が不正な数値です" -#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2983 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "配列の添え字が範囲外です" @@ -24073,92 +25065,92 @@ msgstr "配列のスライスの添え字は両方の境界を示す必要があ msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "空の配列値のスライスに代入するには、スライスの範囲は完全に指定する必要があります。" -#: utils/adt/arrayfuncs.c:2898 utils/adt/arrayfuncs.c:3010 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "元の配列が小さすぎます" -#: utils/adt/arrayfuncs.c:3650 +#: utils/adt/arrayfuncs.c:3669 #, c-format msgid "null array element not allowed in this context" msgstr "この文脈ではNULLの配列要素は許可されません" -#: utils/adt/arrayfuncs.c:3821 utils/adt/arrayfuncs.c:3992 utils/adt/arrayfuncs.c:4383 +#: utils/adt/arrayfuncs.c:3840 utils/adt/arrayfuncs.c:4011 utils/adt/arrayfuncs.c:4402 #, c-format msgid "cannot compare arrays of different element types" msgstr "要素型の異なる配列を比較できません" -#: utils/adt/arrayfuncs.c:4170 utils/adt/multirangetypes.c:2805 utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 +#: utils/adt/arrayfuncs.c:4189 utils/adt/multirangetypes.c:2805 utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1425 utils/adt/rangetypes.c:1489 utils/adt/rowtypes.c:1893 #, c-format msgid "could not identify a hash function for type %s" msgstr "型 %s のハッシュ関数を特定できません" -#: utils/adt/arrayfuncs.c:4298 utils/adt/rowtypes.c:1996 +#: utils/adt/arrayfuncs.c:4317 utils/adt/rowtypes.c:2014 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "型 %s の拡張ハッシュ関数を特定できませんでした" -#: utils/adt/arrayfuncs.c:5499 +#: utils/adt/arrayfuncs.c:5518 #, c-format msgid "data type %s is not an array type" msgstr "データ型%sは配列型ではありません" -#: utils/adt/arrayfuncs.c:5554 +#: utils/adt/arrayfuncs.c:5573 #, c-format msgid "cannot accumulate null arrays" msgstr "null配列は連結できません" -#: utils/adt/arrayfuncs.c:5582 +#: utils/adt/arrayfuncs.c:5601 #, c-format msgid "cannot accumulate empty arrays" msgstr "空の配列は連結できません" -#: utils/adt/arrayfuncs.c:5983 utils/adt/arrayfuncs.c:6023 +#: utils/adt/arrayfuncs.c:6004 utils/adt/arrayfuncs.c:6044 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "次元配列もしくは下限値配列が NULL であってはなりません" -#: utils/adt/arrayfuncs.c:6086 utils/adt/arrayfuncs.c:6112 +#: utils/adt/arrayfuncs.c:6107 utils/adt/arrayfuncs.c:6133 #, c-format msgid "Dimension array must be one dimensional." msgstr "次元配列は1次元でなければなりません" -#: utils/adt/arrayfuncs.c:6091 utils/adt/arrayfuncs.c:6117 +#: utils/adt/arrayfuncs.c:6112 utils/adt/arrayfuncs.c:6138 #, c-format msgid "dimension values cannot be null" msgstr "次元値にnullにはできません" -#: utils/adt/arrayfuncs.c:6123 +#: utils/adt/arrayfuncs.c:6144 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "下限配列が次元配列のサイズと異なっています" -#: utils/adt/arrayfuncs.c:6404 +#: utils/adt/arrayfuncs.c:6425 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "多次元配列からの要素削除はサポートされません" -#: utils/adt/arrayfuncs.c:6681 +#: utils/adt/arrayfuncs.c:6702 #, c-format msgid "thresholds must be one-dimensional array" msgstr "閾値は1次元の配列でなければなりません" -#: utils/adt/arrayfuncs.c:6686 +#: utils/adt/arrayfuncs.c:6707 #, c-format msgid "thresholds array must not contain NULLs" msgstr "閾値配列にはNULL値を含めてはいけません" -#: utils/adt/arrayfuncs.c:6919 +#: utils/adt/arrayfuncs.c:6940 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "削除する要素の数は0と%dとの間でなければなりません" -#: utils/adt/arraysubs.c:93 utils/adt/arraysubs.c:130 +#: utils/adt/arraysubs.c:94 utils/adt/arraysubs.c:131 #, c-format msgid "array subscript must have type integer" msgstr "配列の添え字は整数型でなければなりません" -#: utils/adt/arraysubs.c:198 utils/adt/arraysubs.c:217 +#: utils/adt/arraysubs.c:199 utils/adt/arraysubs.c:218 #, c-format msgid "array subscript in assignment must not be null" msgstr "代入における配列の添え字はnullにはできません" @@ -24189,24 +25181,29 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "%s符号化方式からASCIIへの変換はサポートされていません" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:149 utils/adt/cash.c:277 utils/adt/datetime.c:4142 utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 utils/adt/geo_ops.c:4672 utils/adt/int.c:174 -#: utils/adt/int.c:186 utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 utils/adt/network.c:99 utils/adt/numeric.c:796 utils/adt/numeric.c:7206 utils/adt/numeric.c:7409 utils/adt/numeric.c:8356 utils/adt/numutils.c:356 utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 utils/adt/tid.c:94 -#: utils/adt/tid.c:103 utils/adt/timestamp.c:510 utils/adt/uuid.c:140 utils/adt/xid8funcs.c:360 +#: utils/adt/bool.c:150 utils/adt/cash.c:354 utils/adt/datetime.c:4258 utils/adt/float.c:207 utils/adt/float.c:294 utils/adt/float.c:308 utils/adt/float.c:413 utils/adt/float.c:496 utils/adt/float.c:510 utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 utils/adt/geo_ops.c:4672 utils/adt/int.c:174 +#: utils/adt/int.c:186 utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 utils/adt/network.c:99 utils/adt/numeric.c:805 utils/adt/numeric.c:7324 utils/adt/numeric.c:7527 utils/adt/numeric.c:8474 utils/adt/numutils.c:356 utils/adt/numutils.c:617 utils/adt/numutils.c:878 utils/adt/numutils.c:917 utils/adt/numutils.c:939 utils/adt/numutils.c:1003 utils/adt/numutils.c:1025 utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 utils/adt/tid.c:94 +#: utils/adt/tid.c:103 utils/adt/timestamp.c:512 utils/adt/uuid.c:176 utils/adt/xid8funcs.c:323 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "\"%s\"型の入力構文が不正です: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:350 utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "値\"%s\"は型%sの範囲外です" +msgid "money out of range" +msgstr "マネー型の値が範囲外です" -#: 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:99 utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 utils/adt/numeric.c:3176 utils/adt/numeric.c:3199 -#: utils/adt/numeric.c:3284 utils/adt/numeric.c:3302 utils/adt/numeric.c:3398 utils/adt/numeric.c:8905 utils/adt/numeric.c:9218 utils/adt/numeric.c:9566 utils/adt/numeric.c:9682 utils/adt/numeric.c:11192 utils/adt/timestamp.c:3713 +#: utils/adt/cash.c:161 utils/adt/cash.c:725 utils/adt/float.c:106 utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 utils/adt/numeric.c:3294 utils/adt/numeric.c:3317 utils/adt/numeric.c:3402 utils/adt/numeric.c:3420 utils/adt/numeric.c:3516 utils/adt/numeric.c:9399 +#: utils/adt/numeric.c:9923 utils/adt/numeric.c:10039 utils/adt/numeric.c:11550 utils/adt/timestamp.c:3772 #, c-format msgid "division by zero" msgstr "0 による除算が行われました" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 utils/adt/numutils.c:611 utils/adt/numutils.c:872 utils/adt/numutils.c:923 utils/adt/numutils.c:962 utils/adt/numutils.c:1009 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "値\"%s\"は型%sの範囲外です" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -24217,140 +25214,140 @@ msgstr "\"char\"の範囲外です" msgid "could not compute %s hash: %s" msgstr "%sハッシュを計算できませんでした: %s" -#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 utils/adt/varchar.c:48 +#: utils/adt/date.c:65 utils/adt/timestamp.c:118 utils/adt/varbit.c:105 utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "不正な型修飾子です。" -#: utils/adt/date.c:76 +#: utils/adt/date.c:77 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "(%d)%sの精度は負ではいけません" -#: utils/adt/date.c:82 +#: utils/adt/date.c:83 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%sの位取りを許容最大値%dまで減らしました" -#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 utils/adt/formatting.c:4548 +#: utils/adt/date.c:168 utils/adt/date.c:176 utils/adt/formatting.c:4171 utils/adt/formatting.c:4180 utils/adt/formatting.c:4285 utils/adt/formatting.c:4295 #, c-format msgid "date out of range: \"%s\"" msgstr "日付が範囲外です: \"%s\"" -#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2489 +#: utils/adt/date.c:223 utils/adt/date.c:585 utils/adt/date.c:609 utils/adt/rangetypes.c:1648 utils/adt/rangetypes.c:1663 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "日付が範囲外です" -#: utils/adt/date.c:268 utils/adt/timestamp.c:598 +#: utils/adt/date.c:266 utils/adt/date.c:276 utils/adt/timestamp.c:600 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "日付フィールドの値が範囲外です: %d-%02d-%02d" -#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 +#: utils/adt/date.c:283 utils/adt/date.c:292 utils/adt/timestamp.c:606 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "日付が範囲外です: %d-%02d-%02d" -#: utils/adt/date.c:495 +#: utils/adt/date.c:560 #, c-format msgid "cannot subtract infinite dates" msgstr "無限大の日付は減算できません" -#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 utils/adt/date.c:2906 utils/adt/date.c:2916 +#: utils/adt/date.c:658 utils/adt/date.c:721 utils/adt/date.c:757 utils/adt/date.c:2971 utils/adt/date.c:2981 #, c-format msgid "date out of range for timestamp" msgstr "タイムスタンプで日付が範囲外です" -#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 utils/adt/timestamp.c:6070 +#: utils/adt/date.c:1187 utils/adt/date.c:1270 utils/adt/date.c:1286 utils/adt/date.c:2280 utils/adt/date.c:3076 utils/adt/timestamp.c:4724 utils/adt/timestamp.c:4815 utils/adt/timestamp.c:4963 utils/adt/timestamp.c:5064 utils/adt/timestamp.c:5179 utils/adt/timestamp.c:5231 utils/adt/timestamp.c:5488 utils/adt/timestamp.c:5689 utils/adt/timestamp.c:5736 utils/adt/timestamp.c:5960 utils/adt/timestamp.c:6007 utils/adt/timestamp.c:6088 utils/adt/timestamp.c:6232 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "単位\"%s\"は型%sに対してはサポートされていません" -#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 +#: utils/adt/date.c:1295 utils/adt/date.c:2296 utils/adt/date.c:3096 utils/adt/timestamp.c:4829 utils/adt/timestamp.c:5081 utils/adt/timestamp.c:5245 utils/adt/timestamp.c:5448 utils/adt/timestamp.c:5745 utils/adt/timestamp.c:6016 utils/adt/timestamp.c:6057 utils/adt/timestamp.c:6293 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "単位\"%s\"は型%sに対しては認識できません" -#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 -#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 utils/adt/timestamp.c:3266 -#: utils/adt/timestamp.c:3279 utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 -#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2511 utils/adt/xml.c:2518 utils/adt/xml.c:2538 utils/adt/xml.c:2545 +#: utils/adt/date.c:1379 utils/adt/date.c:1425 utils/adt/date.c:1984 utils/adt/date.c:2015 utils/adt/date.c:2044 utils/adt/date.c:2934 utils/adt/date.c:3166 utils/adt/datetime.c:432 utils/adt/datetime.c:1817 utils/adt/formatting.c:4016 utils/adt/formatting.c:4052 utils/adt/formatting.c:4139 utils/adt/formatting.c:4261 utils/adt/json.c:375 utils/adt/json.c:414 utils/adt/timestamp.c:250 utils/adt/timestamp.c:282 utils/adt/timestamp.c:707 utils/adt/timestamp.c:716 +#: utils/adt/timestamp.c:794 utils/adt/timestamp.c:827 utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3134 utils/adt/timestamp.c:3151 utils/adt/timestamp.c:3156 utils/adt/timestamp.c:3175 utils/adt/timestamp.c:3188 utils/adt/timestamp.c:3199 utils/adt/timestamp.c:3205 utils/adt/timestamp.c:3211 utils/adt/timestamp.c:3216 utils/adt/timestamp.c:3269 utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3299 utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3325 +#: utils/adt/timestamp.c:3338 utils/adt/timestamp.c:3352 utils/adt/timestamp.c:3360 utils/adt/timestamp.c:3366 utils/adt/timestamp.c:3371 utils/adt/timestamp.c:4439 utils/adt/timestamp.c:4591 utils/adt/timestamp.c:4667 utils/adt/timestamp.c:4733 utils/adt/timestamp.c:4823 utils/adt/timestamp.c:4902 utils/adt/timestamp.c:4972 utils/adt/timestamp.c:5075 utils/adt/timestamp.c:5553 utils/adt/timestamp.c:5827 utils/adt/timestamp.c:6361 utils/adt/timestamp.c:6371 +#: utils/adt/timestamp.c:6376 utils/adt/timestamp.c:6382 utils/adt/timestamp.c:6422 utils/adt/timestamp.c:6509 utils/adt/timestamp.c:6550 utils/adt/timestamp.c:6554 utils/adt/timestamp.c:6608 utils/adt/timestamp.c:6612 utils/adt/timestamp.c:6618 utils/adt/timestamp.c:6659 utils/adt/xml.c:2574 utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "timestampの範囲外です" -#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 +#: utils/adt/date.c:1601 utils/adt/date.c:2417 utils/adt/formatting.c:4344 #, c-format msgid "time out of range" msgstr "時刻が範囲外です" -#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 +#: utils/adt/date.c:1653 utils/adt/timestamp.c:615 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "時刻フィールドの値が範囲外です: %d:%02d:%02g" -#: utils/adt/date.c:2020 +#: utils/adt/date.c:2085 #, c-format msgid "cannot convert infinite interval to time" msgstr "無限大のintervalはtimeに変換できません" -#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#: utils/adt/date.c:2126 utils/adt/date.c:2670 #, c-format msgid "cannot add infinite interval to time" msgstr "無限大のintervalのtimeへの加算はできません" -#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#: utils/adt/date.c:2149 utils/adt/date.c:2697 #, c-format msgid "cannot subtract infinite interval from time" msgstr "無限大のintervalのtimeからの減算できません" -#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2580 utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3888 +#: utils/adt/date.c:2180 utils/adt/date.c:2732 utils/adt/float.c:1043 utils/adt/float.c:1119 utils/adt/int.c:635 utils/adt/int.c:682 utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2698 utils/adt/timestamp.c:3869 utils/adt/timestamp.c:3906 utils/adt/timestamp.c:3947 #, c-format msgid "invalid preceding or following size in window function" msgstr "ウィンドウ関数での不正なサイズの PRECEDING または FOLLOWING 指定" -#: utils/adt/date.c:2360 +#: utils/adt/date.c:2425 #, c-format msgid "time zone displacement out of range" msgstr "タイムゾーンの置換が範囲外です" -#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#: utils/adt/date.c:3197 utils/adt/timestamp.c:6404 utils/adt/timestamp.c:6641 #, c-format msgid "interval time zone \"%s\" must be finite" msgstr "タイムゾーンのインターバル\"%s\"は有限でなければなりません" -#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 +#: utils/adt/date.c:3204 utils/adt/timestamp.c:6411 utils/adt/timestamp.c:6648 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "intervalによるタイムゾーン\"%s\"には月または日を含めてはいけません" -#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 +#: utils/adt/datetime.c:3324 utils/adt/datetime.c:4243 utils/adt/datetime.c:4249 utils/adt/timestamp.c:530 #, c-format msgid "time zone \"%s\" not recognized" msgstr "タイムゾーン\"%s\"は不明です" -#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 +#: utils/adt/datetime.c:4217 utils/adt/datetime.c:4224 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "日付時刻のフィールドが範囲外です: \"%s\"" -#: utils/adt/datetime.c:4110 +#: utils/adt/datetime.c:4226 #, c-format -msgid "Perhaps you need a different \"datestyle\" setting." -msgstr "他の\"datestyle\"設定が必要かもしれません。" +msgid "Perhaps you need a different \"DateStyle\" setting." +msgstr "他の\"DateStyle\"設定が必要かもしれません。" -#: utils/adt/datetime.c:4115 +#: utils/adt/datetime.c:4231 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "intervalフィールドの値が範囲外です: \"%s\"" -#: utils/adt/datetime.c:4121 +#: utils/adt/datetime.c:4237 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "タイムゾーンの置換が範囲外です: \"%s\"" -#: utils/adt/datetime.c:4135 +#: utils/adt/datetime.c:4251 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "このタイムゾーンはタイムゾーン省略名\"%s\"の構成ファイルにあるようです。" @@ -24360,17 +25357,22 @@ msgstr "このタイムゾーンはタイムゾーン省略名\"%s\"の構成フ msgid "invalid Datum pointer" msgstr "不正なDatumポインタ" -#: utils/adt/dbsize.c:760 utils/adt/dbsize.c:836 +#: utils/adt/dbsize.c:293 utils/adt/genfile.c:656 +#, c-format +msgid "tablespace with OID %u does not exist" +msgstr "OID %uのテーブル空間は存在しません" + +#: utils/adt/dbsize.c:782 utils/adt/dbsize.c:858 #, c-format msgid "invalid size: \"%s\"" msgstr "不正なサイズ: \"%s\"" -#: utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:859 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "不正なサイズの単位: \"%s\"" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:860 #, c-format msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." msgstr "有効な単位は \"bytes\"、\"B\"、\"kB\"、\"MB\"、\"GB\"、\"TB\"そして\"PB\"です。" @@ -24395,32 +25397,32 @@ msgstr "エンコーディング変換の結果が大きすぎです" msgid "result of decoding conversion is too large" msgstr "デコード変換の結果が大きすぎます" -#: utils/adt/encode.c:217 utils/adt/encode.c:227 +#: utils/adt/encode.c:238 utils/adt/encode.c:248 #, c-format msgid "invalid hexadecimal digit: \"%.*s\"" msgstr "不正な16進数表現: \"%.*s\"" -#: utils/adt/encode.c:223 +#: utils/adt/encode.c:244 #, c-format msgid "invalid hexadecimal data: odd number of digits" msgstr "不正な16進数データ: 桁数が奇数です" -#: utils/adt/encode.c:344 +#: utils/adt/encode.c:365 #, c-format msgid "unexpected \"=\" while decoding base64 sequence" msgstr "base64シーケンスのデコード中に想定外の\"=\"" -#: utils/adt/encode.c:356 +#: utils/adt/encode.c:377 #, c-format msgid "invalid symbol \"%.*s\" found while decoding base64 sequence" msgstr "base64シーケンスのデコード中に検出された不正なシンボル\"%.*s\"" -#: utils/adt/encode.c:377 +#: utils/adt/encode.c:398 #, c-format msgid "invalid base64 end sequence" msgstr "不正なbase64終了シーケンス" -#: utils/adt/encode.c:378 +#: utils/adt/encode.c:399 #, c-format msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "入力データにパディングがありません、切り詰められたかさもなければ壊れています。" @@ -24455,335 +25457,355 @@ msgstr "実際の列挙型を特定できませんでした" msgid "enum %s contains no values" msgstr "列挙型 %s に値がありません" -#: utils/adt/float.c:83 +#: utils/adt/float.c:90 #, c-format msgid "value out of range: overflow" msgstr "範囲外の値です: オーバーフロー" -#: utils/adt/float.c:91 +#: utils/adt/float.c:98 #, c-format msgid "value out of range: underflow" msgstr "範囲外の値です: アンダーフロー" -#: utils/adt/float.c:280 +#: utils/adt/float.c:287 #, c-format msgid "\"%s\" is out of range for type real" msgstr "型realでは\"%s\"は範囲外です" -#: utils/adt/float.c:482 +#: utils/adt/float.c:489 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "型double precisionでは\"%s\"は範囲外です" -#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 utils/adt/int8.c:1277 utils/adt/numeric.c:4578 utils/adt/numeric.c:4583 +#: utils/adt/float.c:1254 utils/adt/float.c:1328 utils/adt/int.c:355 utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 utils/adt/int8.c:1277 utils/adt/numeric.c:4696 utils/adt/numeric.c:4701 utils/adt/varlena.c:4093 #, c-format msgid "smallint out of range" msgstr "smallintの範囲外です" -#: utils/adt/float.c:1447 utils/adt/numeric.c:3694 utils/adt/numeric.c:10097 +#: utils/adt/float.c:1454 utils/adt/numeric.c:3812 utils/adt/numeric.c:10454 #, c-format msgid "cannot take square root of a negative number" msgstr "負の値の平方根を取ることができません" -#: utils/adt/float.c:1515 utils/adt/numeric.c:3982 utils/adt/numeric.c:4094 +#: utils/adt/float.c:1522 utils/adt/numeric.c:4100 utils/adt/numeric.c:4212 #, c-format msgid "zero raised to a negative power is undefined" msgstr "0 の負数乗は定義されていません" -#: utils/adt/float.c:1519 utils/adt/numeric.c:3986 utils/adt/numeric.c:10988 +#: utils/adt/float.c:1526 utils/adt/numeric.c:4104 utils/adt/numeric.c:11345 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "負数を整数でない数でべき乗すると、結果が複雑になります" -#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3894 utils/adt/numeric.c:10768 +#: utils/adt/float.c:1702 utils/adt/float.c:1735 utils/adt/numeric.c:4012 utils/adt/numeric.c:11125 #, c-format msgid "cannot take logarithm of zero" msgstr "ゼロの対数を取ることができません" -#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3832 utils/adt/numeric.c:3889 utils/adt/numeric.c:10772 +#: utils/adt/float.c:1706 utils/adt/float.c:1739 utils/adt/numeric.c:3950 utils/adt/numeric.c:4007 utils/adt/numeric.c:11129 #, c-format msgid "cannot take logarithm of a negative number" msgstr "負の値の対数を取ることができません" -#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 utils/adt/float.c:2696 utils/adt/float.c:2720 +#: utils/adt/float.c:1772 utils/adt/float.c:1803 utils/adt/float.c:1898 utils/adt/float.c:1925 utils/adt/float.c:1953 utils/adt/float.c:1980 utils/adt/float.c:2127 utils/adt/float.c:2164 utils/adt/float.c:2334 utils/adt/float.c:2390 utils/adt/float.c:2455 utils/adt/float.c:2512 utils/adt/float.c:2703 utils/adt/float.c:2727 #, c-format msgid "input is out of range" msgstr "入力が範囲外です" -#: utils/adt/float.c:4000 utils/adt/numeric.c:1842 +#: utils/adt/float.c:4085 utils/adt/numeric.c:1979 #, c-format msgid "count must be greater than zero" msgstr "カウントは0より大きくなければなりません" -#: utils/adt/float.c:4005 utils/adt/numeric.c:1853 +#: utils/adt/float.c:4090 utils/adt/numeric.c:1990 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "オペランド、下限、上限をNaNにすることはできません" -#: utils/adt/float.c:4011 utils/adt/numeric.c:1858 +#: utils/adt/float.c:4096 utils/adt/numeric.c:1995 #, c-format msgid "lower and upper bounds must be finite" msgstr "下限および上限は有限でなければなりません" -#: utils/adt/float.c:4077 utils/adt/numeric.c:1872 +#: utils/adt/float.c:4162 utils/adt/numeric.c:2009 #, c-format msgid "lower bound cannot equal upper bound" msgstr "下限を上限と同じにできません" -#: utils/adt/formatting.c:530 +#: utils/adt/formatting.c:556 #, c-format msgid "invalid format specification for an interval value" msgstr "\"tinterval\"値に対する不正な書式指定" -#: utils/adt/formatting.c:531 +#: utils/adt/formatting.c:557 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "時間間隔が特定の暦日付に結びついていません" -#: utils/adt/formatting.c:1161 +#: utils/adt/formatting.c:1197 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\"は最終パターンでなければなりません。" -#: utils/adt/formatting.c:1169 +#: utils/adt/formatting.c:1205 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\"は\"PR\"の前になければなりません" -#: utils/adt/formatting.c:1185 +#: utils/adt/formatting.c:1221 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\"は\"PR\"の前になければなりません" -#: utils/adt/formatting.c:1212 +#: utils/adt/formatting.c:1248 #, c-format msgid "multiple decimal points" msgstr "複数の小数点があります" -#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 +#: utils/adt/formatting.c:1252 utils/adt/formatting.c:1339 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "\"V\"と小数点を混在できません" -#: utils/adt/formatting.c:1228 +#: utils/adt/formatting.c:1264 #, c-format msgid "cannot use \"S\" twice" msgstr "\"S\"は1回しか使用できません" -#: utils/adt/formatting.c:1232 +#: utils/adt/formatting.c:1268 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "\"S\"と\"PL\"/\"MI\"/\"SG\"/\"PR\"を混在できません" -#: utils/adt/formatting.c:1252 +#: utils/adt/formatting.c:1288 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "\"S\"と\"MI\"を混在できません" -#: utils/adt/formatting.c:1262 +#: utils/adt/formatting.c:1298 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "\"S\"と\"PL\"を混在できません" -#: utils/adt/formatting.c:1272 +#: utils/adt/formatting.c:1308 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "\"S\"と\"SG\"を混在できません" -#: utils/adt/formatting.c:1281 +#: utils/adt/formatting.c:1317 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "\"PR\"と\"S\"/\"PL\"/\"MI\"/\"SG\"を混在できません" -#: utils/adt/formatting.c:1307 +#: utils/adt/formatting.c:1326 +#, c-format +msgid "cannot use \"RN\" twice" +msgstr "\"RN\"は1回しか使用できません" + +#: utils/adt/formatting.c:1347 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "\"EEEE\"は1回しか使用できません" -#: utils/adt/formatting.c:1313 +#: utils/adt/formatting.c:1353 #, c-format msgid "\"EEEE\" is incompatible with other formats" -msgstr "\"EEEE\"が他のフォーマットと互換性がありません。" +msgstr "\"EEEE\"が他のフォーマットと互換性がありません" -#: utils/adt/formatting.c:1314 +#: utils/adt/formatting.c:1354 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." -msgstr "\"EEEE\"は数値または小数点パターンと共に指定してください。" +msgstr "\"EEEE\"は数値および小数点パターンと共にのみ使用できます。" -#: utils/adt/formatting.c:1398 +#: utils/adt/formatting.c:1363 +#, c-format +msgid "\"RN\" is incompatible with other formats" +msgstr "\"RN\"が他のフォーマットと互換性がありません" + +#: utils/adt/formatting.c:1364 +#, c-format +msgid "\"RN\" may only be used together with \"FM\"." +msgstr "\"RN\"は\"FM\"と共にのみ使用できます。" + +#: utils/adt/formatting.c:1445 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "不正なdatetime書式のセパレータ: \"%s\"" -#: utils/adt/formatting.c:1525 +#: utils/adt/formatting.c:1572 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\"は数値ではありません" -#: utils/adt/formatting.c:1603 -#, c-format -msgid "case conversion failed: %s" -msgstr "文字ケースの変換に失敗しました: %s" - -#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 utils/adt/formatting.c:1989 +#: utils/adt/formatting.c:1653 utils/adt/formatting.c:1717 utils/adt/formatting.c:1781 utils/adt/formatting.c:1845 #, c-format msgid "could not determine which collation to use for %s function" msgstr "%s 関数に対して使用する照合順序を特定できませんでした" -#: utils/adt/formatting.c:2410 +#: utils/adt/formatting.c:1853 +#, c-format +msgid "Unicode case folding can only be performed if server encoding is UTF8" +msgstr "UnicodeケースフォールディングはサーバーエンコーディングがUTF-8の場合にのみ実行可能です" + +#: utils/adt/formatting.c:2150 #, c-format msgid "invalid combination of date conventions" msgstr "不正な暦法の組み合わせ" -#: utils/adt/formatting.c:2411 +#: utils/adt/formatting.c:2151 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "単一の書式テンプレートの中では、グレゴリオ暦とISO歴週日付を混在させないでください。" -#: utils/adt/formatting.c:2433 +#: utils/adt/formatting.c:2173 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "書式文字列中で\"%s\"フィールドの値が衝突しています" -#: utils/adt/formatting.c:2435 +#: utils/adt/formatting.c:2175 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "この値は同じフィールド型に対する以前の設定と矛盾しています" -#: utils/adt/formatting.c:2502 +#: utils/adt/formatting.c:2242 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "書式フィールド\"%s\"に対して元の文字列が短すぎます" -#: utils/adt/formatting.c:2504 +#: utils/adt/formatting.c:2244 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "フィールドには%d文字必要ですが、%d文字しか残っていません。" -#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 +#: utils/adt/formatting.c:2246 utils/adt/formatting.c:2260 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "元の文字列が固定長でない場合は、修飾子\"FM\"を試してみてください。" -#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 +#: utils/adt/formatting.c:2256 utils/adt/formatting.c:2269 utils/adt/formatting.c:2490 utils/adt/formatting.c:3390 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "\"%2$s\"に対する不正な値\"%1$s\"" -#: utils/adt/formatting.c:2518 +#: utils/adt/formatting.c:2258 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "このフィールドには%d文字必要ですが、%d文字しかパースされませんでした。" -#: utils/adt/formatting.c:2531 +#: utils/adt/formatting.c:2271 #, c-format msgid "Value must be an integer." msgstr "値は整数でなければなりません。" -#: utils/adt/formatting.c:2536 +#: utils/adt/formatting.c:2276 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "もとの文字列において\"%s\"に対応する値が範囲外です" -#: utils/adt/formatting.c:2538 +#: utils/adt/formatting.c:2278 #, c-format msgid "Value must be in the range %d to %d." msgstr "値は%dから%dまでの範囲でなければなりません。" -#: utils/adt/formatting.c:2752 +#: utils/adt/formatting.c:2492 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "与えられた値がこの項目に対して許されるいずれの値ともマッチしません。" -#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 +#: utils/adt/formatting.c:2708 utils/adt/formatting.c:2728 utils/adt/formatting.c:2748 utils/adt/formatting.c:2768 utils/adt/formatting.c:2787 utils/adt/formatting.c:2806 utils/adt/formatting.c:2830 utils/adt/formatting.c:2848 utils/adt/formatting.c:2866 utils/adt/formatting.c:2884 utils/adt/formatting.c:2901 utils/adt/formatting.c:2918 #, c-format msgid "localized string format value too long" msgstr "地域化した文字列のフォーマットが長すぎます" -#: utils/adt/formatting.c:3458 +#: utils/adt/formatting.c:3198 #, c-format msgid "unmatched format separator \"%c\"" msgstr "合致しないフォーマットセパレータ \"%c\"" -#: utils/adt/formatting.c:3519 +#: utils/adt/formatting.c:3259 #, c-format msgid "unmatched format character \"%s\"" msgstr "合致しないフォーマット文字\"%s\"" -#: utils/adt/formatting.c:3652 +#: utils/adt/formatting.c:3392 #, c-format msgid "Time zone abbreviation is not recognized." msgstr "タイムゾーン省略名が認識されません。" -#: utils/adt/formatting.c:3853 +#: utils/adt/formatting.c:3593 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr " \"Y,YYY\"に対応する入力文字列が不正です" -#: utils/adt/formatting.c:3942 +#: utils/adt/formatting.c:3600 +#, c-format +msgid "value for \"Y,YYY\" in source string is out of range" +msgstr "もとの文字列内の\"Y,YYY\"に対応する値が範囲外です" + +#: utils/adt/formatting.c:3689 #, c-format msgid "input string is too short for datetime format" msgstr "datetime書式に対して入力文字列が短すぎます" -#: utils/adt/formatting.c:3950 +#: utils/adt/formatting.c:3697 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "datetimeフォーマット後に文字が入力文字列中に残っています" -#: utils/adt/formatting.c:4494 +#: utils/adt/formatting.c:4241 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "timestamptz型に対応する入力に時間帯がありません" -#: utils/adt/formatting.c:4500 +#: utils/adt/formatting.c:4247 #, c-format msgid "timestamptz out of range" msgstr "timestamptzの範囲外です" -#: utils/adt/formatting.c:4528 +#: utils/adt/formatting.c:4275 #, c-format msgid "datetime format is zoned but not timed" msgstr "datetimeフォーマットで時間帯は指定されていますが、時刻が指定されていません" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4324 #, c-format msgid "missing time zone in input string for type timetz" msgstr "timetz型に対する入力文字列中に時間帯がありません" -#: utils/adt/formatting.c:4583 +#: utils/adt/formatting.c:4330 #, c-format msgid "timetz out of range" msgstr "timetzの範囲外です" -#: utils/adt/formatting.c:4609 +#: utils/adt/formatting.c:4356 #, c-format msgid "datetime format is not dated and not timed" msgstr "datetimeフォーマットで日付は指定されていますが、時間が指定されていません" -#: utils/adt/formatting.c:4786 +#: utils/adt/formatting.c:4533 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "12時間形式では\"%d\"時は不正です" -#: utils/adt/formatting.c:4788 +#: utils/adt/formatting.c:4535 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "24時間形式を使うか、もしくは 1 から 12 の間で指定してください。" -#: utils/adt/formatting.c:4900 +#: utils/adt/formatting.c:4712 #, c-format msgid "cannot calculate day of year without year information" msgstr "年の情報なしでは年内の日数は計算できません" -#: utils/adt/formatting.c:5852 +#: utils/adt/formatting.c:5833 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\"は入力としてサポートしていません" -#: utils/adt/formatting.c:5864 +#: utils/adt/formatting.c:6110 #, c-format -msgid "\"RN\" not supported for input" -msgstr "\"RN\"は入力としてサポートしていません" +msgid "invalid Roman numeral" +msgstr "不正なローマ数字" #: utils/adt/genfile.c:84 #, c-format @@ -24795,7 +25817,7 @@ msgstr "絶対パスは許可されていません" msgid "path must be in or below the data directory" msgstr "パスはデータディレクトリ内もしくはより下層でなければなりません" -#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 utils/adt/oracle_compat.c:1142 +#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:206 utils/adt/oracle_compat.c:304 utils/adt/oracle_compat.c:855 utils/adt/oracle_compat.c:1158 #, c-format msgid "requested length too large" msgstr "要求した長さが長すぎます" @@ -24810,11 +25832,6 @@ msgstr "ファイル\"%s\"をシークできませんでした: %m" msgid "file length too large" msgstr "ファイルが大きすぎます" -#: utils/adt/genfile.c:656 -#, c-format -msgid "tablespace with OID %u does not exist" -msgstr "OID %uのテーブル空間は存在しません" - #: utils/adt/geo_ops.c:998 utils/adt/geo_ops.c:1052 #, c-format msgid "invalid line specification: A and B cannot both be zero" @@ -24865,13 +25882,13 @@ msgstr "少なくとも2ポイントを要求しなければなりません" msgid "invalid int2vector data" msgstr "不正なint2vectorデータ" -#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1750 utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1767 utils/adt/timestamp.c:6708 utils/adt/timestamp.c:6794 #, c-format msgid "step size cannot equal zero" msgstr "ステップ数をゼロにすることはできません" #: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 utils/adt/int8.c:1055 -#: utils/adt/int8.c:1069 utils/adt/int8.c:1100 utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4527 utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 utils/adt/varbit.c:1676 +#: utils/adt/int8.c:1069 utils/adt/int8.c:1100 utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4645 utils/adt/rangetypes.c:1599 utils/adt/rangetypes.c:1612 utils/adt/varbit.c:1676 utils/adt/varlena.c:4143 #, c-format msgid "bigint out of range" msgstr "bigintの範囲外です" @@ -24881,48 +25898,48 @@ msgstr "bigintの範囲外です" msgid "OID out of range" msgstr "OIDの範囲外です" -#: utils/adt/json.c:202 utils/adt/jsonb.c:664 +#: utils/adt/json.c:204 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "キー値は配列でも複合型でもJSONでもなく、スカラでなくてはなりません" -#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 +#: utils/adt/json.c:1043 utils/adt/json.c:1053 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "引数%dのデータ型が特定できませんでした" -#: utils/adt/json.c:1067 utils/adt/json.c:1259 utils/adt/json.c:1435 utils/adt/json.c:1513 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 +#: utils/adt/json.c:1076 utils/adt/json.c:1275 utils/adt/json.c:1457 utils/adt/json.c:1531 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "オブジェクトキーにnullは使えません" -#: utils/adt/json.c:1110 utils/adt/json.c:1274 +#: utils/adt/json.c:1126 utils/adt/json.c:1297 #, c-format msgid "duplicate JSON object key value: %s" msgstr "JSONオブジェクトキー値の重複: %s" -#: utils/adt/json.c:1219 utils/adt/jsonb.c:1134 +#: utils/adt/json.c:1235 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "引数リストの要素数は偶数でなければなりません" #. translator: %s is a SQL function name -#: utils/adt/json.c:1221 utils/adt/jsonb.c:1136 +#: utils/adt/json.c:1237 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "%s の引数ではキーと値が交互になっている必要があります。" -#: utils/adt/json.c:1413 utils/adt/jsonb.c:1311 +#: utils/adt/json.c:1435 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "配列は最低でも2つの列が必要です" -#: utils/adt/json.c:1502 utils/adt/jsonb.c:1412 +#: utils/adt/json.c:1520 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "配列の次元が合っていません" -#: utils/adt/json.c:1688 utils/adt/jsonb_util.c:1956 +#: utils/adt/json.c:1850 utils/adt/jsonb_util.c:1963 #, c-format msgid "duplicate JSON object key value" msgstr "JSONオブジェクトキー値の重複" @@ -24987,22 +26004,22 @@ msgstr "jsonbオブジェクトは%s型へはキャストできません" msgid "cannot cast jsonb array or object to type %s" msgstr "jsonbの配列またはオブジェクトは%s型へはキャストできません" -#: utils/adt/jsonb_util.c:756 +#: utils/adt/jsonb_util.c:763 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "jsonbオブジェクトペア数が許された最大の値(%zu)を上回っています" -#: utils/adt/jsonb_util.c:797 +#: utils/adt/jsonb_util.c:804 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "jsonbの配列要素の数が許された最大の値(%zu)を上回っています" -#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 +#: utils/adt/jsonb_util.c:1678 utils/adt/jsonb_util.c:1698 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "jsonb配列全体のサイズが最大値%dバイトを超えています" -#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 utils/adt/jsonb_util.c:1807 +#: utils/adt/jsonb_util.c:1759 utils/adt/jsonb_util.c:1794 utils/adt/jsonb_util.c:1814 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "jsonbオブジェクト要素全体のサイズが最大値%dを超えています" @@ -25037,204 +26054,204 @@ msgstr "jsonb添字はテキスト型でなければなりません" msgid "jsonb subscript in assignment must not be null" msgstr "代入におけるjsonb添え字はnullにはできません" -#: utils/adt/jsonfuncs.c:582 utils/adt/jsonfuncs.c:829 utils/adt/jsonfuncs.c:2438 utils/adt/jsonfuncs.c:3013 utils/adt/jsonfuncs.c:3926 utils/adt/jsonfuncs.c:4273 +#: utils/adt/jsonfuncs.c:585 utils/adt/jsonfuncs.c:832 utils/adt/jsonfuncs.c:2441 utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3950 utils/adt/jsonfuncs.c:4297 #, c-format msgid "cannot call %s on a scalar" msgstr "スカラに対して%sを呼び出すことはできません" -#: utils/adt/jsonfuncs.c:587 utils/adt/jsonfuncs.c:814 utils/adt/jsonfuncs.c:3015 utils/adt/jsonfuncs.c:3913 +#: utils/adt/jsonfuncs.c:590 utils/adt/jsonfuncs.c:817 utils/adt/jsonfuncs.c:3019 utils/adt/jsonfuncs.c:3937 #, c-format msgid "cannot call %s on an array" msgstr "配列に対して%sを呼び出すことはできません" -#: utils/adt/jsonfuncs.c:723 +#: utils/adt/jsonfuncs.c:726 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "JSONデータ、%d行目: %s%s%s" -#: utils/adt/jsonfuncs.c:1882 utils/adt/jsonfuncs.c:1919 +#: utils/adt/jsonfuncs.c:1885 utils/adt/jsonfuncs.c:1922 #, c-format msgid "cannot get array length of a scalar" msgstr "スカラから配列長を得ることはできません" -#: utils/adt/jsonfuncs.c:1886 utils/adt/jsonfuncs.c:1905 +#: utils/adt/jsonfuncs.c:1889 utils/adt/jsonfuncs.c:1908 #, c-format msgid "cannot get array length of a non-array" msgstr "配列では無いものから配列長を得ることはできません" -#: utils/adt/jsonfuncs.c:1985 +#: utils/adt/jsonfuncs.c:1988 #, c-format msgid "cannot call %s on a non-object" msgstr "非オブジェクトに対して%sは呼び出せません" -#: utils/adt/jsonfuncs.c:2173 +#: utils/adt/jsonfuncs.c:2176 #, c-format msgid "cannot deconstruct an array as an object" msgstr "配列をオブジェクトとして再構築することはできません" -#: utils/adt/jsonfuncs.c:2187 +#: utils/adt/jsonfuncs.c:2190 #, c-format msgid "cannot deconstruct a scalar" msgstr "スカラを再構築することはできません" -#: utils/adt/jsonfuncs.c:2232 +#: utils/adt/jsonfuncs.c:2235 #, c-format msgid "cannot extract elements from a scalar" msgstr "スカラから要素を取り出すことはできません" -#: utils/adt/jsonfuncs.c:2236 +#: utils/adt/jsonfuncs.c:2239 #, c-format msgid "cannot extract elements from an object" msgstr "オブジェクトから要素を取り出すことはできません" -#: utils/adt/jsonfuncs.c:2423 utils/adt/jsonfuncs.c:4151 +#: utils/adt/jsonfuncs.c:2426 utils/adt/jsonfuncs.c:4175 #, c-format msgid "cannot call %s on a non-array" msgstr "非配列に対して%sを呼び出すことはできません" -#: utils/adt/jsonfuncs.c:2514 utils/adt/jsonfuncs.c:2519 utils/adt/jsonfuncs.c:2537 utils/adt/jsonfuncs.c:2543 +#: utils/adt/jsonfuncs.c:2517 utils/adt/jsonfuncs.c:2522 utils/adt/jsonfuncs.c:2540 utils/adt/jsonfuncs.c:2546 #, c-format msgid "expected JSON array" msgstr "JSON配列を期待していました" -#: utils/adt/jsonfuncs.c:2515 +#: utils/adt/jsonfuncs.c:2518 #, c-format msgid "See the value of key \"%s\"." msgstr "キー\"%s\"の値を見てください。" -#: utils/adt/jsonfuncs.c:2538 +#: utils/adt/jsonfuncs.c:2541 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "キー\"%s\"の配列要素%sを見てください。" -#: utils/adt/jsonfuncs.c:2544 +#: utils/adt/jsonfuncs.c:2547 #, c-format msgid "See the array element %s." msgstr "配列要素%sを見てください。" -#: utils/adt/jsonfuncs.c:2596 +#: utils/adt/jsonfuncs.c:2599 #, c-format msgid "malformed JSON array" msgstr "不正な形式のJSON配列" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3625 +#: utils/adt/jsonfuncs.c:3649 #, c-format msgid "first argument of %s must be a row type" msgstr "%sの最初の引数は行型でなければなりません" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3649 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "could not determine row type for result of %s" msgstr "%sの結果に対応する行の型を決定できませんでした" -#: utils/adt/jsonfuncs.c:3651 +#: utils/adt/jsonfuncs.c:3675 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "非NULLのレコード引数を与えるか、列定義リストを用いてこの関数をFROM句中で呼び出してください。" -#: utils/adt/jsonfuncs.c:4037 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4061 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "マテリアライズモードが必要ですが、現在のコンテクストで禁止されています" -#: utils/adt/jsonfuncs.c:4168 utils/adt/jsonfuncs.c:4252 +#: utils/adt/jsonfuncs.c:4192 utils/adt/jsonfuncs.c:4276 #, c-format msgid "argument of %s must be an array of objects" msgstr "%sの引数はオブジェクト配列でなければなりません" -#: utils/adt/jsonfuncs.c:4201 +#: utils/adt/jsonfuncs.c:4225 #, c-format msgid "cannot call %s on an object" msgstr "オブジェクトに対して%sを呼び出すことはできません" -#: utils/adt/jsonfuncs.c:4634 utils/adt/jsonfuncs.c:4693 utils/adt/jsonfuncs.c:4773 +#: utils/adt/jsonfuncs.c:4680 utils/adt/jsonfuncs.c:4739 utils/adt/jsonfuncs.c:4819 #, c-format msgid "cannot delete from scalar" msgstr "スカラから削除することはできません" -#: utils/adt/jsonfuncs.c:4778 +#: utils/adt/jsonfuncs.c:4824 #, c-format msgid "cannot delete from object using integer index" msgstr "オブジェクトから整数添字を使って削除することはできません" -#: utils/adt/jsonfuncs.c:4846 utils/adt/jsonfuncs.c:5005 +#: utils/adt/jsonfuncs.c:4892 utils/adt/jsonfuncs.c:5051 #, c-format msgid "cannot set path in scalar" msgstr "スカラにパスを設定することはできません" -#: utils/adt/jsonfuncs.c:4887 utils/adt/jsonfuncs.c:4929 +#: utils/adt/jsonfuncs.c:4933 utils/adt/jsonfuncs.c:4975 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "null_value_treatment は \"delete_key\", \"return_target\", \"use_json_null\" または \"raise_exception\"である必要があります" -#: utils/adt/jsonfuncs.c:4900 +#: utils/adt/jsonfuncs.c:4946 #, c-format msgid "JSON value must not be null" msgstr "JSON値はnullではあってはなりません" -#: utils/adt/jsonfuncs.c:4901 +#: utils/adt/jsonfuncs.c:4947 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "null_value_treatmentが\"raise_exception\"であるため、例外が出力されました" -#: utils/adt/jsonfuncs.c:4902 +#: utils/adt/jsonfuncs.c:4948 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "これを避けるには、 null_value_treatment引数を変更するか、SQLのNULLを渡さないようにしてください。" -#: utils/adt/jsonfuncs.c:4957 +#: utils/adt/jsonfuncs.c:5003 #, c-format msgid "cannot delete path in scalar" msgstr "スカラでパスを削除することはできません" -#: utils/adt/jsonfuncs.c:5171 +#: utils/adt/jsonfuncs.c:5217 #, c-format msgid "path element at position %d is null" msgstr "位置%dのパス要素がnullです" -#: utils/adt/jsonfuncs.c:5190 utils/adt/jsonfuncs.c:5221 utils/adt/jsonfuncs.c:5294 +#: utils/adt/jsonfuncs.c:5236 utils/adt/jsonfuncs.c:5267 utils/adt/jsonfuncs.c:5340 #, c-format msgid "cannot replace existing key" msgstr "既存のキーを置き換えることはできません" -#: utils/adt/jsonfuncs.c:5191 utils/adt/jsonfuncs.c:5222 +#: utils/adt/jsonfuncs.c:5237 utils/adt/jsonfuncs.c:5268 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "このパスではキー値は複合オブジェクトであると想定していますが、スカラー値でした" -#: utils/adt/jsonfuncs.c:5295 +#: utils/adt/jsonfuncs.c:5341 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "jsonb_set関数を使ってキー値を置き換えることを試してください。" -#: utils/adt/jsonfuncs.c:5399 +#: utils/adt/jsonfuncs.c:5445 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "位置%dのパス要素が整数ではありません: \"%s\"" -#: utils/adt/jsonfuncs.c:5416 +#: utils/adt/jsonfuncs.c:5462 #, c-format msgid "path element at position %d is out of range: %d" msgstr "位置%dのパス要素は範囲外です: %d" -#: utils/adt/jsonfuncs.c:5568 +#: utils/adt/jsonfuncs.c:5614 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "間違ったフラグのタイプ; 配列およびスカラのみ使用可能です" -#: utils/adt/jsonfuncs.c:5575 +#: utils/adt/jsonfuncs.c:5621 #, c-format msgid "flag array element is not a string" msgstr "フラグ配列の要素が文字列ではありません" -#: utils/adt/jsonfuncs.c:5576 utils/adt/jsonfuncs.c:5598 +#: utils/adt/jsonfuncs.c:5622 utils/adt/jsonfuncs.c:5644 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "使用可能な値は: \"string\", \"numeric\", \"boolean\", \"key\"、および \"all\"。" -#: utils/adt/jsonfuncs.c:5596 +#: utils/adt/jsonfuncs.c:5642 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "フラグ配列内の間違ったフラグ値: \"%s\"" @@ -25249,214 +26266,194 @@ msgstr "ルート式では@を使用できません" msgid "LAST is allowed only in array subscripts" msgstr "LAST は配列の添え字でのみ使用可能です" -#: utils/adt/jsonpath_exec.c:491 +#: utils/adt/jsonpath_exec.c:489 #, c-format msgid "single boolean result is expected" msgstr "単一のブール値の結果が必要です" -#: utils/adt/jsonpath_exec.c:851 +#: utils/adt/jsonpath_exec.c:849 #, c-format msgid "jsonpath wildcard array accessor can only be applied to an array" msgstr "jsonpath ワイルドカード配列アクセサは配列にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:874 +#: utils/adt/jsonpath_exec.c:872 #, c-format msgid "jsonpath wildcard member accessor can only be applied to an object" msgstr "jsonpathワイルドカードメンバアクセサはオブジェクトに対してのみ適用可能です" -#: utils/adt/jsonpath_exec.c:923 +#: utils/adt/jsonpath_exec.c:921 #, c-format msgid "jsonpath array subscript is out of bounds" msgstr "jsonpath配列の添え字が範囲外です" -#: utils/adt/jsonpath_exec.c:980 +#: utils/adt/jsonpath_exec.c:978 #, c-format msgid "jsonpath array accessor can only be applied to an array" msgstr "jsonpath 配列アクセサは配列にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:1044 +#: utils/adt/jsonpath_exec.c:1042 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "JSONオブジェクトはキー\"%s\"を含んでいません" -#: utils/adt/jsonpath_exec.c:1056 +#: utils/adt/jsonpath_exec.c:1054 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "jsonpathメンバアクセサはオブジェクトに対してのみ適用可能です" -#: utils/adt/jsonpath_exec.c:1114 +#: utils/adt/jsonpath_exec.c:1112 #, c-format msgid "jsonpath item method .%s() can only be applied to an array" msgstr "jsonpath 項目メソッド .%s() は配列にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 +#: utils/adt/jsonpath_exec.c:1165 utils/adt/jsonpath_exec.c:1191 utils/adt/jsonpath_exec.c:1279 utils/adt/jsonpath_exec.c:1304 utils/adt/jsonpath_exec.c:1356 utils/adt/jsonpath_exec.c:1376 utils/adt/jsonpath_exec.c:1438 utils/adt/jsonpath_exec.c:1527 utils/adt/jsonpath_exec.c:1560 utils/adt/jsonpath_exec.c:1584 #, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type double precision" -msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"がdouble precision型に適合しません" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type %s" +msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"が型%3$sに適合しません" -#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 +#: utils/adt/jsonpath_exec.c:1170 utils/adt/jsonpath_exec.c:1196 utils/adt/jsonpath_exec.c:1413 utils/adt/jsonpath_exec.c:1445 #, c-format msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" msgstr "NaNとInifinityはjsonpath項目メソッド .%s() では使用できません" -#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 +#: utils/adt/jsonpath_exec.c:1209 utils/adt/jsonpath_exec.c:1312 utils/adt/jsonpath_exec.c:1454 utils/adt/jsonpath_exec.c:1592 #, c-format msgid "jsonpath item method .%s() can only be applied to a string or numeric value" msgstr "jsonpath 項目メソッド .%s() は文字列または数値にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 -#, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" -msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"がbigint型に適合しません" - -#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 +#: utils/adt/jsonpath_exec.c:1385 #, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" -msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"がboolean型に適合しません" - -#: utils/adt/jsonpath_exec.c:1386 -#, c-format -msgid "jsonpath item method .%s() can only be applied to a bool, string, or numeric value" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, or numeric value" msgstr "jsonpath 項目メソッド .%s() は真偽値、文字列または数値にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 -#, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" -msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"がnumeric型に適合しません" - -#: utils/adt/jsonpath_exec.c:1487 +#: utils/adt/jsonpath_exec.c:1486 #, c-format msgid "precision of jsonpath item method .%s() is out of range for type integer" msgstr "JSONパス項目メソッド .%s() の精度がinteger型の範囲外です" -#: utils/adt/jsonpath_exec.c:1501 +#: utils/adt/jsonpath_exec.c:1500 #, c-format msgid "scale of jsonpath item method .%s() is out of range for type integer" msgstr "JSONパス項目メソッド .%s() のスケールがinteger型の範囲外です" -#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 +#: utils/adt/jsonpath_exec.c:1647 #, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type integer" -msgstr "jsonpath項目メソッド .%2$s() の引数\"%1$s\"がinteger型に適合しません" - -#: utils/adt/jsonpath_exec.c:1664 -#, c-format -msgid "jsonpath item method .%s() can only be applied to a bool, string, numeric, or datetime value" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value" msgstr "jsonpath 項目メソッド .%s() は真偽値、文字列、数値、または日時値にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:2136 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "jsonpath演算子 %s の左辺値が単一の数値ではありません" -#: utils/adt/jsonpath_exec.c:2160 +#: utils/adt/jsonpath_exec.c:2143 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "jsonpath演算子 %s の右辺値が単一の数値ではありません" -#: utils/adt/jsonpath_exec.c:2228 +#: utils/adt/jsonpath_exec.c:2211 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "単項jsonpath演算子 %s のオペランドが数値ではありません" -#: utils/adt/jsonpath_exec.c:2327 +#: utils/adt/jsonpath_exec.c:2310 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "jsonpath 項目メソッド .%s() は数値にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:2373 +#: utils/adt/jsonpath_exec.c:2356 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "jsonpath 項目メソッド .%s() は文字列にのみ適用可能です" -#: utils/adt/jsonpath_exec.c:2466 +#: utils/adt/jsonpath_exec.c:2449 #, c-format msgid "time precision of jsonpath item method .%s() is out of range for type integer" msgstr "JSONパス項目メソッド .%s() の日付時刻精度がinteger型の範囲外です" -#: utils/adt/jsonpath_exec.c:2500 utils/adt/jsonpath_exec.c:2506 utils/adt/jsonpath_exec.c:2533 utils/adt/jsonpath_exec.c:2561 utils/adt/jsonpath_exec.c:2614 utils/adt/jsonpath_exec.c:2665 utils/adt/jsonpath_exec.c:2721 +#: utils/adt/jsonpath_exec.c:2483 utils/adt/jsonpath_exec.c:2489 utils/adt/jsonpath_exec.c:2516 utils/adt/jsonpath_exec.c:2544 utils/adt/jsonpath_exec.c:2597 utils/adt/jsonpath_exec.c:2648 utils/adt/jsonpath_exec.c:2719 #, c-format msgid "%s format is not recognized: \"%s\"" msgstr "%sの書式を認識できません: \"%s\"" -#: utils/adt/jsonpath_exec.c:2502 +#: utils/adt/jsonpath_exec.c:2485 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "datetimeテンプレート引数を使って入力データフォーマットを指定してください。" -#: utils/adt/jsonpath_exec.c:2695 utils/adt/jsonpath_exec.c:2751 +#: utils/adt/jsonpath_exec.c:2678 utils/adt/jsonpath_exec.c:2759 #, c-format msgid "time precision of jsonpath item method .%s() is invalid" msgstr "jsonpath項目メソッド .%s() の日付時刻精度が不正です" -#: utils/adt/jsonpath_exec.c:2831 +#: utils/adt/jsonpath_exec.c:2839 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "jsonpath項目メソッド .%s() はオブジェクトに対してのみ適用可能です" -#: utils/adt/jsonpath_exec.c:3114 +#: utils/adt/jsonpath_exec.c:3123 #, c-format msgid "could not convert value of type %s to jsonpath" msgstr "型%sの値のjsonpathへ変換ができませんでした" -#: utils/adt/jsonpath_exec.c:3148 +#: utils/adt/jsonpath_exec.c:3157 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "jsonpath変数\"%s\"が見つかりませんでした" -#: utils/adt/jsonpath_exec.c:3201 +#: utils/adt/jsonpath_exec.c:3210 #, c-format msgid "\"vars\" argument is not an object" msgstr "引数\"vars\"がオブジェクトではありません" -#: utils/adt/jsonpath_exec.c:3202 +#: utils/adt/jsonpath_exec.c:3211 #, c-format msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." msgstr "Jsonpath パラメータは \"vars\"オブジェクトの key-value ペアの形にエンコードされていなければなりません。" -#: utils/adt/jsonpath_exec.c:3465 +#: utils/adt/jsonpath_exec.c:3474 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "jsonpath配列添え字が単一の数値ではありません" -#: utils/adt/jsonpath_exec.c:3477 +#: utils/adt/jsonpath_exec.c:3486 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "jsonpath配列の添え字が整数の範囲外です" -#: utils/adt/jsonpath_exec.c:3661 +#: utils/adt/jsonpath_exec.c:3670 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "時間帯を使用せずに%sから%sへの値の変換はできません" -#: utils/adt/jsonpath_exec.c:3663 +#: utils/adt/jsonpath_exec.c:3672 #, c-format msgid "Use *_tz() function for time zone support." msgstr "*_tz() 関数を使用することで時間帯がサポートされます。" -#: utils/adt/jsonpath_exec.c:3957 +#: utils/adt/jsonpath_exec.c:3980 #, c-format -msgid "JSON path expression for column \"%s\" should return single item without wrapper" -msgstr "列\"%s\"に対するJSONパス式はラッパーなしの単一要素を返却する必要があります" +msgid "JSON path expression for column \"%s\" must return single item when no wrapper is requested" +msgstr "ラッパーが要求されていない場合は、列\"%s\"に対するJSONパス式は単一要素を返却する必要があります" -#: utils/adt/jsonpath_exec.c:3959 utils/adt/jsonpath_exec.c:3964 +#: utils/adt/jsonpath_exec.c:3982 utils/adt/jsonpath_exec.c:3987 #, c-format -msgid "Use WITH WRAPPER clause to wrap SQL/JSON items into array." +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." msgstr "SQL/JSON要素列を配列にまとめるにはWITH WRAPPER句を使用してください。" -#: utils/adt/jsonpath_exec.c:3963 +#: utils/adt/jsonpath_exec.c:3986 #, c-format -msgid "JSON path expression in JSON_QUERY should return single item without wrapper" -msgstr "JSON_QUERY中のJSONパス式はラッパーなしの単一要素を返却する必要があります" +msgid "JSON path expression in JSON_QUERY must return single item when no wrapper is requested" +msgstr "ラッパーが要求されていない場合は、JSON_QUERY中のJSONパス式は単一要素を返却する必要があります" -#: utils/adt/jsonpath_exec.c:4021 utils/adt/jsonpath_exec.c:4045 +#: utils/adt/jsonpath_exec.c:4044 utils/adt/jsonpath_exec.c:4068 #, c-format -msgid "JSON path expression for column \"%s\" should return single scalar item" +msgid "JSON path expression for column \"%s\" must return single scalar item" msgstr "列\"%s\"に対するJSONパス式は単一のスカラー要素を返却する必要があります" -#: utils/adt/jsonpath_exec.c:4026 utils/adt/jsonpath_exec.c:4050 +#: utils/adt/jsonpath_exec.c:4049 utils/adt/jsonpath_exec.c:4073 #, c-format -msgid "JSON path expression in JSON_VALUE should return single scalar item" +msgid "JSON path expression in JSON_VALUE must return single scalar item" msgstr "JSON_VALUE中のJSONパス式は単一のスカラー要素を返却する必要があります" #: utils/adt/levenshtein.c:132 @@ -25464,42 +26461,42 @@ msgstr "JSON_VALUE中のJSONパス式は単一のスカラー要素を返却す msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "レーベンシュタイン距離関数の引数の長さが上限の%d文字を超えています" -#: utils/adt/like.c:159 +#: utils/adt/like.c:162 #, c-format -msgid "nondeterministic collations are not supported for LIKE" -msgstr "非決定的照合順序はLIKEではサポートされません" +msgid "could not determine which collation to use for LIKE" +msgstr "LIKE で使用する照合順序を特定できませんでした" -#: utils/adt/like.c:188 utils/adt/like_support.c:1023 +#: utils/adt/like.c:193 utils/adt/like_support.c:1019 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "ILIKE で使用する照合順序を特定できませんでした" -#: utils/adt/like.c:200 +#: utils/adt/like.c:202 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "非決定的照合順序はILIKEではサポートされません" -#: utils/adt/like_match.c:108 utils/adt/like_match.c:168 +#: utils/adt/like_match.c:107 utils/adt/like_match.c:169 utils/adt/like_match.c:237 #, c-format msgid "LIKE pattern must not end with escape character" msgstr "LIKE パターンはエスケープ文字で終わってはなりません" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 +#: utils/adt/like_match.c:437 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "不正なエスケープ文字列" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:438 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "エスケープ文字は空か1文字でなければなりません。" -#: utils/adt/like_support.c:1013 +#: utils/adt/like_support.c:1009 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "型byteaでは大文字小文字の区別をしないマッチをサポートしません" -#: utils/adt/like_support.c:1114 +#: utils/adt/like_support.c:1106 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "型byteaでは正規表現のマッチをサポートしません" @@ -25519,11 +26516,16 @@ msgstr "macaddr8データがmacaddr型に変換するには範囲外です" msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "左から4、5バイト目にFFとFEがあるアドレス、具体的には xx:xx:xx:ff:fe:xx:xx:xx のみがmacaddr8からmacaddrに変換できます。" -#: utils/adt/mcxtfuncs.c:173 +#: utils/adt/mcxtfuncs.c:305 utils/adt/mcxtfuncs.c:391 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %dはPostgreSQLサーバープロセスではありません" +#: utils/adt/mcxtfuncs.c:480 +#, c-format +msgid "PID %d is no longer a PostgreSQL server process" +msgstr "PID %dはすでにPostgreSQLサーバープロセスではありません" + #: utils/adt/misc.c:237 #, c-format msgid "global tablespace never has databases" @@ -25633,7 +26635,7 @@ msgstr "不正なCIDR値: \"%s\"" msgid "Value has bits set to right of mask." msgstr "値ではマスクの右側のビットがセットされています。" -#: utils/adt/network.c:152 utils/adt/network.c:1184 utils/adt/network.c:1209 utils/adt/network.c:1234 +#: utils/adt/network.c:152 utils/adt/network.c:1151 utils/adt/network.c:1176 utils/adt/network.c:1201 #, c-format msgid "could not format inet value: %m" msgstr "inet値を整形できませんでした: %m" @@ -25666,157 +26668,157 @@ msgstr "\"cidr\"の外部値が不正です" msgid "invalid mask length: %d" msgstr "不正なマスク長: %d" -#: utils/adt/network.c:1252 +#: utils/adt/network.c:1219 #, c-format msgid "could not format cidr value: %m" msgstr "cidr値を整形できませんでした: %m" -#: utils/adt/network.c:1485 +#: utils/adt/network.c:1452 #, c-format msgid "cannot merge addresses from different families" msgstr "異なるファミリのアドレスは結合できません" -#: utils/adt/network.c:1893 +#: utils/adt/network.c:1860 #, c-format msgid "cannot AND inet values of different sizes" msgstr "サイズが異なるinet値のANDはできません" -#: utils/adt/network.c:1925 +#: utils/adt/network.c:1892 #, c-format msgid "cannot OR inet values of different sizes" msgstr "サイズが異なるinet値のORはできません" -#: utils/adt/network.c:1986 utils/adt/network.c:2062 +#: utils/adt/network.c:1953 utils/adt/network.c:2029 #, c-format msgid "result is out of range" msgstr "結果が範囲外です" -#: utils/adt/network.c:2027 +#: utils/adt/network.c:1994 #, c-format msgid "cannot subtract inet values of different sizes" msgstr "サイズが異なるinet値の引き算はできません" -#: utils/adt/numeric.c:786 utils/adt/numeric.c:3644 utils/adt/numeric.c:7201 utils/adt/numeric.c:7404 utils/adt/numeric.c:7876 utils/adt/numeric.c:10571 utils/adt/numeric.c:11045 utils/adt/numeric.c:11139 utils/adt/numeric.c:11273 +#: utils/adt/numeric.c:795 utils/adt/numeric.c:3762 utils/adt/numeric.c:7319 utils/adt/numeric.c:7522 utils/adt/numeric.c:7994 utils/adt/numeric.c:10928 utils/adt/numeric.c:11403 utils/adt/numeric.c:11497 utils/adt/numeric.c:11632 #, c-format msgid "value overflows numeric format" msgstr "値がnumericの形式でオーバフローします" -#: utils/adt/numeric.c:1099 +#: utils/adt/numeric.c:1108 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "外部\"numeric\"の値の符号が不正です" -#: utils/adt/numeric.c:1105 +#: utils/adt/numeric.c:1114 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "外部\"numeric\"の値の位取りが不正です" -#: utils/adt/numeric.c:1114 +#: utils/adt/numeric.c:1123 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "外部\"numeric\"の値の桁が不正です" -#: utils/adt/numeric.c:1329 utils/adt/numeric.c:1343 +#: utils/adt/numeric.c:1338 utils/adt/numeric.c:1352 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "NUMERICの精度%dは1から%dまででなければなりません" -#: utils/adt/numeric.c:1334 +#: utils/adt/numeric.c:1343 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "NUMERICの位取り%dは%dから%dまでの間でなければなりません" -#: utils/adt/numeric.c:1352 +#: utils/adt/numeric.c:1361 #, c-format msgid "invalid NUMERIC type modifier" msgstr "不正なNUMERIC型の修正子" -#: utils/adt/numeric.c:1710 +#: utils/adt/numeric.c:1727 #, c-format msgid "start value cannot be NaN" msgstr "開始値はNaNにはできません" -#: utils/adt/numeric.c:1714 +#: utils/adt/numeric.c:1731 #, c-format msgid "start value cannot be infinity" msgstr "開始値は無限大にはできません" -#: utils/adt/numeric.c:1721 +#: utils/adt/numeric.c:1738 #, c-format msgid "stop value cannot be NaN" msgstr "終了値はNaNにはできません" -#: utils/adt/numeric.c:1725 +#: utils/adt/numeric.c:1742 #, c-format msgid "stop value cannot be infinity" msgstr "終了値は無限大にはできません" -#: utils/adt/numeric.c:1738 +#: utils/adt/numeric.c:1755 #, c-format msgid "step size cannot be NaN" msgstr "加算量はNaNにはできません" -#: utils/adt/numeric.c:1742 +#: utils/adt/numeric.c:1759 #, c-format msgid "step size cannot be infinity" msgstr "加算量は無限大にはできません" -#: utils/adt/numeric.c:3634 +#: utils/adt/numeric.c:3752 #, c-format msgid "factorial of a negative number is undefined" msgstr "負数の階乗は定義されていません" -#: utils/adt/numeric.c:4241 +#: utils/adt/numeric.c:4359 #, c-format msgid "lower bound cannot be NaN" msgstr "下限をNaNにすることはできません" -#: utils/adt/numeric.c:4245 +#: utils/adt/numeric.c:4363 #, c-format msgid "lower bound cannot be infinity" msgstr "下限を無限値にすることはできません" -#: utils/adt/numeric.c:4252 +#: utils/adt/numeric.c:4370 #, c-format msgid "upper bound cannot be NaN" msgstr "上限をNaNにすることはできません" -#: utils/adt/numeric.c:4256 +#: utils/adt/numeric.c:4374 #, c-format msgid "upper bound cannot be infinity" msgstr "上限を無限値にすることはできません" -#: utils/adt/numeric.c:4417 utils/adt/numeric.c:4505 utils/adt/numeric.c:4565 utils/adt/numeric.c:4761 +#: utils/adt/numeric.c:4535 utils/adt/numeric.c:4623 utils/adt/numeric.c:4683 utils/adt/numeric.c:4879 #, c-format msgid "cannot convert NaN to %s" msgstr "NaNを%sには変換できません" -#: utils/adt/numeric.c:4421 utils/adt/numeric.c:4509 utils/adt/numeric.c:4569 utils/adt/numeric.c:4765 +#: utils/adt/numeric.c:4539 utils/adt/numeric.c:4627 utils/adt/numeric.c:4687 utils/adt/numeric.c:4883 #, c-format msgid "cannot convert infinity to %s" msgstr "無限大を%sに変換できません" -#: utils/adt/numeric.c:4774 +#: utils/adt/numeric.c:4892 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsnの範囲外です" -#: utils/adt/numeric.c:7966 utils/adt/numeric.c:8017 +#: utils/adt/numeric.c:8084 utils/adt/numeric.c:8135 #, c-format msgid "numeric field overflow" msgstr "numericフィールドのオーバーフロー" -#: utils/adt/numeric.c:7967 +#: utils/adt/numeric.c:8085 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "精度%d、位取り%dを持つフィールドは、%s%dより小さな絶対値に丸められます。" -#: utils/adt/numeric.c:8018 +#: utils/adt/numeric.c:8136 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "精度%d、位取り%dを持つフィールドは、無限大値を格納できません。" -#: utils/adt/numeric.c:11342 utils/adt/pseudorandomfuncs.c:135 utils/adt/pseudorandomfuncs.c:159 +#: utils/adt/numeric.c:11701 utils/adt/pseudorandomfuncs.c:135 utils/adt/pseudorandomfuncs.c:159 #, c-format msgid "lower bound must be less than or equal to upper bound" msgstr "下限は上限と同じあるいはより小さい必要があります" @@ -25826,27 +26828,27 @@ msgstr "下限は上限と同じあるいはより小さい必要があります msgid "invalid oidvector data" msgstr "不正なoidvectorデータ" -#: utils/adt/oracle_compat.c:976 +#: utils/adt/oracle_compat.c:992 #, c-format msgid "requested character too large" msgstr "要求された文字が大きすぎます" -#: utils/adt/oracle_compat.c:1020 +#: utils/adt/oracle_compat.c:1036 #, c-format msgid "character number must be positive" msgstr "文字番号は正数でなければなりません" -#: utils/adt/oracle_compat.c:1024 +#: utils/adt/oracle_compat.c:1040 #, c-format msgid "null character not permitted" msgstr "NULL文字は許可されません" -#: utils/adt/oracle_compat.c:1042 utils/adt/oracle_compat.c:1095 +#: utils/adt/oracle_compat.c:1058 utils/adt/oracle_compat.c:1111 #, c-format msgid "requested character too large for encoding: %u" msgstr "要求された文字は符号化するには大きすぎます: %u" -#: utils/adt/oracle_compat.c:1083 +#: utils/adt/oracle_compat.c:1099 #, c-format msgid "requested character not valid for encoding: %u" msgstr "要求された文字は符号化方式に対して不正です: %u" @@ -25856,137 +26858,147 @@ msgstr "要求された文字は符号化方式に対して不正です: %u" msgid "percentile value %g is not between 0 and 1" msgstr "百分位数の値%gが0と1の間ではありません" -#: utils/adt/pg_locale.c:1484 -#, c-format -msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" -msgstr "ルール\"%2$s\"を持つロケール\"%1$s\"の照合器をオープンできませんでした: %3$s" - -#: utils/adt/pg_locale.c:1495 utils/adt/pg_locale.c:2969 utils/adt/pg_locale.c:3042 -#, c-format -msgid "ICU is not supported in this build" -msgstr "このビルドではICUはサポートされていません" - -#: utils/adt/pg_locale.c:1523 -#, c-format -msgid "could not create locale \"%s\": %m" -msgstr "ロケール\"%s\"を作成できませんでした: %m" - -#: utils/adt/pg_locale.c:1526 -#, c-format -msgid "The operating system could not find any locale data for the locale name \"%s\"." -msgstr "オペレーティングシステムはロケール名\"%s\"のロケールデータを見つけられませんでした。" - -#: utils/adt/pg_locale.c:1647 +#: utils/adt/pg_locale.c:303 utils/adt/pg_locale.c:335 #, c-format -msgid "collations with different collate and ctype values are not supported on this platform" -msgstr "このプラットフォームでは値が異なるcollateとctypeによる照合順序をサポートしていません" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "ロケール名\"%s\"は不正な非ASCII文字を含んでいます" -#: utils/adt/pg_locale.c:1694 +#: utils/adt/pg_locale.c:1119 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "照合順序\"%s\"には実際のバージョンがありませんが、バージョンが記録されています" -#: utils/adt/pg_locale.c:1700 +#: utils/adt/pg_locale.c:1125 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "照合順序\"%s\"でバージョンの不一致が起きています" -#: utils/adt/pg_locale.c:1702 +#: utils/adt/pg_locale.c:1127 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "データベース中の照合順序はバージョン%sで作成されていますが、オペレーティングシステムはバージョン%sを提供しています。" -#: utils/adt/pg_locale.c:1705 +#: utils/adt/pg_locale.c:1130 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "この照合順序の影響を受ける全てのオブジェクトを再構築して、ALTER COLLATION %s REFRESH VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。" -#: utils/adt/pg_locale.c:1749 utils/adt/pg_locale.c:2533 utils/adt/pg_locale.c:2558 +#: utils/adt/pg_locale.c:1481 utils/adt/pg_locale.c:1508 utils/adt/pg_locale_builtin.c:186 #, c-format msgid "invalid locale name \"%s\" for builtin provider" msgstr "ロケール名\"%s\"は組み込みプロバイダでは不正です" -#: utils/adt/pg_locale.c:1791 +#: utils/adt/pg_locale.c:1573 #, c-format -msgid "could not load locale \"%s\"" -msgstr "ロケール\"%s\"をロードできませんでした" +msgid "could not convert locale name \"%s\" to language tag: %s" +msgstr "ロケール名\"%s\"を、言語タグに変換できませんでした: %s" -#: utils/adt/pg_locale.c:1816 +#: utils/adt/pg_locale.c:1582 utils/adt/pg_locale.c:1657 utils/adt/pg_locale_icu.c:221 #, c-format -msgid "could not get collation version for locale \"%s\": error code %lu" -msgstr "ロケール\"%s\"に対応する照合順序バージョンを取得できませんでした: エラーコード %lu" +msgid "ICU is not supported in this build" +msgstr "このビルドではICUはサポートされていません" -#: utils/adt/pg_locale.c:1872 utils/adt/pg_locale.c:1885 +#: utils/adt/pg_locale.c:1615 #, c-format -msgid "could not convert string to UTF-16: error code %lu" -msgstr "文字列をUTF-16に変換できませんでした: エラーコード %lu" +msgid "could not get language from ICU locale \"%s\": %s" +msgstr "ICUロケール\"%s\"から言語を取得できませんでした: %s" -#: utils/adt/pg_locale.c:1897 +#: utils/adt/pg_locale.c:1617 utils/adt/pg_locale.c:1647 #, c-format -msgid "could not compare Unicode strings: %m" -msgstr "Unicode文字列を比較できませんでした: %m" +msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." +msgstr "ICUロケールを無効にするには、パラメータ\"%s\"を\"%s\"に設定してください。" + +#: utils/adt/pg_locale.c:1645 +#, c-format +msgid "ICU locale \"%s\" has unknown language \"%s\"" +msgstr "ICUロケール\"%s\"には未知の言語\"%s\"が含まれています" + +#: utils/adt/pg_locale_icu.c:270 +#, c-format +msgid "could not get language from locale \"%s\": %s" +msgstr "ロケール\"%s\"から言語を取得できませんでした: %s" + +#: utils/adt/pg_locale_icu.c:292 utils/adt/pg_locale_icu.c:309 +#, c-format +msgid "could not open collator for locale \"%s\": %s" +msgstr "ロケール\"%s\"の照合器をオープンできませんでした: %s" -#: utils/adt/pg_locale.c:2071 +#: utils/adt/pg_locale_icu.c:380 +#, c-format +msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" +msgstr "ルール\"%2$s\"を持つロケール\"%1$s\"の照合器をオープンできませんでした: %3$s" + +#: utils/adt/pg_locale_icu.c:494 #, c-format msgid "collation failed: %s" msgstr "照合順序による比較に失敗しました: %s" -#: utils/adt/pg_locale.c:2290 utils/adt/pg_locale.c:2322 +#: utils/adt/pg_locale_icu.c:573 utils/adt/pg_locale_icu.c:837 #, c-format msgid "sort key generation failed: %s" msgstr "ソートキーの生成に失敗しました: %s" -#: utils/adt/pg_locale.c:2612 +#: utils/adt/pg_locale_icu.c:647 utils/adt/pg_locale_icu.c:659 utils/adt/pg_locale_icu.c:884 utils/adt/pg_locale_icu.c:905 #, c-format -msgid "could not get language from locale \"%s\": %s" -msgstr "ロケール\"%s\"から言語を取得できませんでした: %s" +msgid "%s failed: %s" +msgstr "%s が失敗しました: %s" -#: utils/adt/pg_locale.c:2633 utils/adt/pg_locale.c:2649 +#: utils/adt/pg_locale_icu.c:688 #, c-format -msgid "could not open collator for locale \"%s\": %s" -msgstr "ロケール\"%s\"の照合器をオープンできませんでした: %s" +msgid "case conversion failed: %s" +msgstr "文字ケースの変換に失敗しました: %s" -#: utils/adt/pg_locale.c:2674 +#: utils/adt/pg_locale_icu.c:857 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "エンコーディング\"%s\"はICUではサポートされていません" -#: utils/adt/pg_locale.c:2681 +#: utils/adt/pg_locale_icu.c:864 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "エンコーディング\"%s\"のICU変換器をオープンできませんでした: %s" -#: utils/adt/pg_locale.c:2699 utils/adt/pg_locale.c:2718 utils/adt/pg_locale.c:2774 utils/adt/pg_locale.c:2785 +#: utils/adt/pg_locale_libc.c:553 #, c-format -msgid "%s failed: %s" -msgstr "%s が失敗しました: %s" +msgid "collations with different collate and ctype values are not supported on this platform" +msgstr "このプラットフォームでは値が異なるcollateとctypeによる照合順序をサポートしていません" -#: utils/adt/pg_locale.c:2960 +#: utils/adt/pg_locale_libc.c:683 #, c-format -msgid "could not convert locale name \"%s\" to language tag: %s" -msgstr "ロケール名\"%s\"を、言語タグに変換できませんでした: %s" +msgid "could not load locale \"%s\"" +msgstr "ロケール\"%s\"をロードできませんでした" -#: utils/adt/pg_locale.c:3001 +#: utils/adt/pg_locale_libc.c:708 #, c-format -msgid "could not get language from ICU locale \"%s\": %s" -msgstr "ICUロケール\"%s\"から言語を取得できませんでした: %s" +msgid "could not get collation version for locale \"%s\": error code %lu" +msgstr "ロケール\"%s\"に対応する照合順序バージョンを取得できませんでした: エラーコード %lu" -#: utils/adt/pg_locale.c:3003 utils/adt/pg_locale.c:3032 +#: utils/adt/pg_locale_libc.c:771 utils/adt/pg_locale_libc.c:784 #, c-format -msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." -msgstr "ICUロケールを無効にするには、パラメータ\"%s\"を\"%s\"に設定してください。" +msgid "could not convert string to UTF-16: error code %lu" +msgstr "文字列をUTF-16に変換できませんでした: エラーコード %lu" -#: utils/adt/pg_locale.c:3030 +#: utils/adt/pg_locale_libc.c:793 #, c-format -msgid "ICU locale \"%s\" has unknown language \"%s\"" -msgstr "ICUロケール\"%s\"には未知の言語\"%s\"が含まれています" +msgid "could not compare Unicode strings: %m" +msgstr "Unicode文字列を比較できませんでした: %m" -#: utils/adt/pg_locale.c:3181 +#: utils/adt/pg_locale_libc.c:825 +#, c-format +msgid "could not create locale \"%s\": %m" +msgstr "ロケール\"%s\"を作成できませんでした: %m" + +#: utils/adt/pg_locale_libc.c:828 +#, c-format +msgid "The operating system could not find any locale data for the locale name \"%s\"." +msgstr "オペレーティングシステムはロケール名\"%s\"のロケールデータを見つけられませんでした。" + +#: utils/adt/pg_locale_libc.c:1000 #, c-format msgid "invalid multibyte character for locale" msgstr "ロケールに対する不正なマルチバイト文字" -#: utils/adt/pg_locale.c:3182 +#: utils/adt/pg_locale_libc.c:1001 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "おそらくサーバーのLC_CTYPEロケールはデータベースの符号化方式と互換性がありません" @@ -26001,27 +27013,27 @@ msgstr "pg_lsnにNaNは加算できません" msgid "cannot subtract NaN from pg_lsn" msgstr "pg_lsnからNaNは減算できません" -#: utils/adt/pg_upgrade_support.c:39 +#: utils/adt/pg_upgrade_support.c:38 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "関数はサーバーがバイナリアップグレードモードであるときのみ呼び出せます" -#: utils/adt/pgstatfuncs.c:252 +#: utils/adt/pgstatfuncs.c:280 #, c-format msgid "invalid command name: \"%s\"" msgstr "不正なコマンド名: \"%s\"" -#: utils/adt/pgstatfuncs.c:1739 +#: utils/adt/pgstatfuncs.c:1909 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "認識できないリセットターゲット: \"%s\"" -#: utils/adt/pgstatfuncs.c:1740 +#: utils/adt/pgstatfuncs.c:1910 #, c-format msgid "Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", or \"wal\"." msgstr "対象は\"archiver\"、\"bgwriter\"、\"checkpointer\"、\"io\"、\"recovery_prefetch\"、\"slru\"または\"wal\"でなければなりません。" -#: utils/adt/pgstatfuncs.c:1822 +#: utils/adt/pgstatfuncs.c:2027 #, c-format msgid "invalid subscription OID %u" msgstr "不正なサブスクリプションOID %u" @@ -26046,67 +27058,67 @@ msgstr "シェル型の値は受け付けられません" msgid "cannot display a value of a shell type" msgstr "シェル型の値は表示できません" -#: utils/adt/rangetypes.c:422 +#: utils/adt/rangetypes.c:424 #, c-format msgid "range constructor flags argument must not be null" msgstr "範囲コンストラクタフラグ引数はNULLではいけません" -#: utils/adt/rangetypes.c:1021 +#: utils/adt/rangetypes.c:1023 #, c-format msgid "result of range difference would not be contiguous" msgstr "範囲の差分が連続ではありません" -#: utils/adt/rangetypes.c:1082 +#: utils/adt/rangetypes.c:1084 #, c-format msgid "result of range union would not be contiguous" msgstr "範囲の和が連続ではありません" -#: utils/adt/rangetypes.c:1757 +#: utils/adt/rangetypes.c:1821 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "範囲の下限は範囲の上限以下でなければなりません" -#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 utils/adt/rangetypes.c:2283 +#: utils/adt/rangetypes.c:2320 utils/adt/rangetypes.c:2333 utils/adt/rangetypes.c:2347 #, c-format msgid "invalid range bound flags" msgstr "不正な範囲境界フラグ" -#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 utils/adt/rangetypes.c:2284 +#: utils/adt/rangetypes.c:2321 utils/adt/rangetypes.c:2334 utils/adt/rangetypes.c:2348 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "有効な値は\"[]\"、\"[)\"、\"(]\"、\"()\"です" -#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 utils/adt/rangetypes.c:2470 +#: utils/adt/rangetypes.c:2416 utils/adt/rangetypes.c:2433 utils/adt/rangetypes.c:2448 utils/adt/rangetypes.c:2468 utils/adt/rangetypes.c:2479 utils/adt/rangetypes.c:2526 utils/adt/rangetypes.c:2534 #, c-format msgid "malformed range literal: \"%s\"" msgstr "不正な範囲リテラル: \"%s\"" -#: utils/adt/rangetypes.c:2354 +#: utils/adt/rangetypes.c:2418 #, c-format msgid "Junk after \"empty\" key word." msgstr "\"empty\"キーワードの後にゴミがあります。" -#: utils/adt/rangetypes.c:2371 +#: utils/adt/rangetypes.c:2435 #, c-format msgid "Missing left parenthesis or bracket." msgstr "左括弧または左角括弧がありません" -#: utils/adt/rangetypes.c:2386 +#: utils/adt/rangetypes.c:2450 #, c-format msgid "Missing comma after lower bound." msgstr "下限値の後にカンマがありません" -#: utils/adt/rangetypes.c:2406 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "Too many commas." msgstr "カンマが多すぎます" -#: utils/adt/rangetypes.c:2417 +#: utils/adt/rangetypes.c:2481 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "右括弧または右角括弧の後にごみがあります" -#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4475 #, c-format msgid "regular expression failed: %s" msgstr "正規表現が失敗しました: %s" @@ -26121,7 +27133,7 @@ msgstr "不正な正規表現オプション: \"%.*s\"" msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "regexp_replace()でパラメータstartを指定したいのであれば、4番目のパラメータを明示的に整数にキャストしてください。" -#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 utils/adt/regexp.c:1871 utils/misc/guc.c:6776 utils/misc/guc.c:6810 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 utils/adt/regexp.c:1871 utils/misc/guc.c:6818 utils/misc/guc.c:6852 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "パラメータ\"%s\"の値が無効です: %d" @@ -26157,7 +27169,7 @@ msgstr "\"%s\"という名前の関数が複数あります" msgid "more than one operator named %s" msgstr "%sという名前の演算子が複数あります" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10424 utils/adt/ruleutils.c:10637 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10826 utils/adt/ruleutils.c:11039 #, c-format msgid "too many arguments" msgstr "引数が多すぎます" @@ -26167,7 +27179,7 @@ msgstr "引数が多すぎます" msgid "Provide two argument types for operator." msgstr "演算子では2つの引数型を指定してください" -#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 utils/adt/regproc.c:1815 utils/adt/varlena.c:3481 utils/adt/varlena.c:3486 #, c-format msgid "invalid name syntax" msgstr "不正な名前の構文" @@ -26192,77 +27204,92 @@ msgstr "型の名前を想定していました" msgid "improper type name" msgstr "型の名前が不適切です" -#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 utils/adt/ri_triggers.c:2601 +#: utils/adt/ri_triggers.c:314 utils/adt/ri_triggers.c:1775 utils/adt/ri_triggers.c:2774 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "テーブル\"%s\"への挿入、更新は外部キー制約\"%s\"に違反しています" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 +#: utils/adt/ri_triggers.c:317 utils/adt/ri_triggers.c:1778 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MACTH FULLではNULLキー値と非NULLキー値を混在できません" -#: utils/adt/ri_triggers.c:2036 +#: utils/adt/ri_triggers.c:2192 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "関数\"%s\"はINSERTで発火しなければなりません" -#: utils/adt/ri_triggers.c:2042 +#: utils/adt/ri_triggers.c:2198 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "関数\"%s\"はUPDATEで発火しなければなりません" -#: utils/adt/ri_triggers.c:2048 +#: utils/adt/ri_triggers.c:2204 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "関数\"%s\"はDELETEで発火しなければなりません" -#: utils/adt/ri_triggers.c:2071 +#: utils/adt/ri_triggers.c:2227 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "テーブル\"%2$s\"のトリガ\"%1$s\"用のpg_constraint項目がありません" -#: utils/adt/ri_triggers.c:2073 +#: utils/adt/ri_triggers.c:2229 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "この参照整合性トリガとその対象を削除し、ALTER TABLE ADD CONSTRAINTを実行してください" -#: utils/adt/ri_triggers.c:2426 +#: utils/adt/ri_triggers.c:2599 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "\"%3$s\"の制約\"%2$s\"から\"%1$s\"に行われた参照整合性問い合わせが想定外の結果になりました" -#: utils/adt/ri_triggers.c:2430 +#: utils/adt/ri_triggers.c:2603 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "これは概ねこの問い合わせを書き換えるルールが原因です" -#: utils/adt/ri_triggers.c:2591 +#: utils/adt/ri_triggers.c:2764 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "子テーブル \"%s\"の削除は外部キー制約\"%s\"違反となります" -#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 +#: utils/adt/ri_triggers.c:2767 utils/adt/ri_triggers.c:2806 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "キー(%s)=(%s)はまだテーブル\"%s\"から参照されています" -#: utils/adt/ri_triggers.c:2605 +#: utils/adt/ri_triggers.c:2778 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "テーブル\"%3$s\"にキー(%1$s)=(%2$s)がありません" -#: utils/adt/ri_triggers.c:2608 +#: utils/adt/ri_triggers.c:2781 #, c-format msgid "Key is not present in table \"%s\"." msgstr "テーブル\"%s\"にキーがありません。" -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2787 +#, c-format +msgid "update or delete on table \"%s\" violates RESTRICT setting of foreign key constraint \"%s\" on table \"%s\"" +msgstr "テーブル\"%1$s\"の更新または削除は、テーブル\"%3$s\"の外部キー制約\"%2$s\"のRESTRICT設定に違反しています" + +#: utils/adt/ri_triggers.c:2792 +#, c-format +msgid "Key (%s)=(%s) is referenced from table \"%s\"." +msgstr "キー(%s)=(%s)はテーブル\"%s\"から参照されています。" + +#: utils/adt/ri_triggers.c:2795 +#, c-format +msgid "Key is referenced from table \"%s\"." +msgstr "キーがテーブル\"%s\"から参照されています。" + +#: utils/adt/ri_triggers.c:2801 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "テーブル\"%1$s\"の更新または削除は、テーブル\"%3$s\"の外部キー制約\"%2$s\"に違反します" -#: utils/adt/ri_triggers.c:2622 +#: utils/adt/ri_triggers.c:2809 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "テーブル\"%s\"からキーがまだ参照されています。" @@ -26312,133 +27339,158 @@ msgstr "バイナリデータのレコードカラム%5$dで予期していた%3 msgid "improper binary format in record column %d" msgstr "レコード列%dのバイナリ書式が不適切です" -#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 utils/adt/rowtypes.c:1699 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1471 utils/adt/rowtypes.c:1717 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "レコードの列 %3$d において、全く異なる型 %1$s と %2$s では比較ができません" -#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 utils/adt/rowtypes.c:1568 utils/adt/rowtypes.c:1753 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "個数が異なる列同士ではレコード型の比較ができません" -#: utils/adt/ruleutils.c:2693 +#: utils/adt/ruleutils.c:2740 #, c-format msgid "input is a query, not an expression" msgstr "入力が式ではなく文です" -#: utils/adt/ruleutils.c:2705 +#: utils/adt/ruleutils.c:2752 #, c-format msgid "expression contains variables of more than one relation" msgstr "式が2つ以上のリレーションの変数を含んでいます" -#: utils/adt/ruleutils.c:2712 +#: utils/adt/ruleutils.c:2759 #, c-format msgid "expression contains variables" msgstr "式が変数を含んでいます" -#: utils/adt/ruleutils.c:5242 +#: utils/adt/ruleutils.c:5433 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "ルール\"%s\"はサポートしていないイベントタイプ%dを持ちます" -#: utils/adt/timestamp.c:128 +#: utils/adt/tid.c:317 +#, c-format +msgid "cannot look at latest visible tid for relation \"%s.%s\"" +msgstr "リレーション\"%s.%s\"の最新の可視TIDを参照できません" + +#: utils/adt/tid.c:356 +#, c-format +msgid "ctid isn't of type TID" +msgstr "ctidはTID型ではありません" + +#: utils/adt/tid.c:364 +#, c-format +msgid "currtid cannot handle views with no CTID" +msgstr "currtidはCTIDを持たないビューは扱えません" + +#: utils/adt/tid.c:369 +#, c-format +msgid "the view has no rules" +msgstr "このビューにはルールが設定されていません" + +#: utils/adt/tid.c:381 +#, c-format +msgid "only one select rule is allowed in views" +msgstr "ビューではSELECTルールは一つしか設定できません" + +#: utils/adt/timestamp.c:130 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s の精度は負であってはなりません" -#: utils/adt/timestamp.c:134 +#: utils/adt/timestamp.c:136 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%sの位取りを許容最大値%dまで減らしました" -#: utils/adt/timestamp.c:394 +#: utils/adt/timestamp.c:204 utils/adt/timestamp.c:457 +#, c-format +msgid "timestamp out of range: \"%s\"" +msgstr "timestampが範囲外です: \"%s\"" + +#: utils/adt/timestamp.c:396 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "timestamp(%d)の精度は%dから%dまででなければなりません" -#: utils/adt/timestamp.c:512 +#: utils/adt/timestamp.c:514 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "数字タイムゾーンは先頭の文字が\"-\"または\"+\"でなければなりません。" -#: utils/adt/timestamp.c:524 +#: utils/adt/timestamp.c:526 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "数値タイムゾーン\"%s\"が範囲外です" -#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 utils/adt/timestamp.c:643 +#: utils/adt/timestamp.c:626 utils/adt/timestamp.c:634 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "timestampが範囲外です: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:744 +#: utils/adt/timestamp.c:735 #, c-format msgid "timestamp cannot be NaN" msgstr "タイムスタンプは NaN にはできません" -#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 +#: utils/adt/timestamp.c:753 utils/adt/timestamp.c:765 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "timestampが範囲外です: \"%g\"" -#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 utils/adt/timestamp.c:3537 -#: utils/adt/timestamp.c:3546 utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 utils/adt/timestamp.c:5097 +#: utils/adt/timestamp.c:948 utils/adt/timestamp.c:1507 utils/adt/timestamp.c:1517 utils/adt/timestamp.c:1578 utils/adt/timestamp.c:2866 utils/adt/timestamp.c:2875 utils/adt/timestamp.c:2890 utils/adt/timestamp.c:2964 utils/adt/timestamp.c:2981 utils/adt/timestamp.c:3038 utils/adt/timestamp.c:3081 utils/adt/timestamp.c:3459 utils/adt/timestamp.c:3517 utils/adt/timestamp.c:3540 utils/adt/timestamp.c:3549 utils/adt/timestamp.c:3573 utils/adt/timestamp.c:3596 +#: utils/adt/timestamp.c:3605 utils/adt/timestamp.c:3740 utils/adt/timestamp.c:3841 utils/adt/timestamp.c:4248 utils/adt/timestamp.c:4285 utils/adt/timestamp.c:4333 utils/adt/timestamp.c:4342 utils/adt/timestamp.c:4434 utils/adt/timestamp.c:4481 utils/adt/timestamp.c:4490 utils/adt/timestamp.c:4586 utils/adt/timestamp.c:4639 utils/adt/timestamp.c:4649 utils/adt/timestamp.c:4874 utils/adt/timestamp.c:4884 utils/adt/timestamp.c:5239 #, c-format msgid "interval out of range" msgstr "intervalが範囲外です" -#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 +#: utils/adt/timestamp.c:1085 utils/adt/timestamp.c:1118 #, c-format msgid "invalid INTERVAL type modifier" msgstr "不正なINTERVAL型の修正子です" -#: utils/adt/timestamp.c:1110 +#: utils/adt/timestamp.c:1101 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d)の精度は負ではいけません" -#: utils/adt/timestamp.c:1116 +#: utils/adt/timestamp.c:1107 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d)の精度を許容最大値%dまで減らしました" -#: utils/adt/timestamp.c:1506 +#: utils/adt/timestamp.c:1497 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "interval(%d)の精度は%dから%dまででなければなりません" -#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 -#, c-format -msgid "interval out of range." -msgstr "intervalが範囲外です" - -#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 +#: utils/adt/timestamp.c:4623 utils/adt/timestamp.c:4858 #, c-format msgid "origin out of range" msgstr "基点が範囲外です" -#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#: utils/adt/timestamp.c:4628 utils/adt/timestamp.c:4863 #, c-format msgid "timestamps cannot be binned into infinite intervals" msgstr "タイムスタンプは無限のintervalにビニングすることはできません" -#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 +#: utils/adt/timestamp.c:4633 utils/adt/timestamp.c:4868 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "タイムスタンプ型は月や年を含む間隔にビニングすることはできません" -#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 +#: utils/adt/timestamp.c:4644 utils/adt/timestamp.c:4879 #, c-format msgid "stride must be greater than zero" msgstr "増分は0より大きくなければなりません" -#: utils/adt/timestamp.c:5091 +#: utils/adt/timestamp.c:5181 utils/adt/timestamp.c:5233 #, c-format msgid "Months usually have fractional weeks." msgstr "月は通常週の端数を含んでいます。" -#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#: utils/adt/timestamp.c:6713 utils/adt/timestamp.c:6799 #, c-format msgid "step size cannot be infinite" msgstr "加算量は無限にはできません" @@ -26473,32 +27525,32 @@ msgstr "フレーズ演算子での距離は0以上%d以下の整数でなくて msgid "no operand in tsquery: \"%s\"" msgstr "tsquery内にオペランドがありません\"%s\"" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "tsquery内の値が大きすぎます: \"%s\"" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "tsqueryのオペランドが長過ぎます: \"%s\"" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "tsquery内の単語が長すぎます: \"%s\"" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "tsquery内の構文エラー: \"%s\"" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "テキスト検索問い合わせが字句要素を含みません: \"%s\"" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsqueryが大きすぎます" @@ -26513,32 +27565,32 @@ msgstr "テキスト検索問い合わせはストップワードのみを含む msgid "ts_rewrite query must return two tsquery columns" msgstr "ts_rewrite問い合わせは2列のtsquery列を返さなければなりません" -#: utils/adt/tsrank.c:412 +#: utils/adt/tsrank.c:415 #, c-format msgid "array of weight must be one-dimensional" msgstr "重み配列は1次元の配列でなければなりません" -#: utils/adt/tsrank.c:417 +#: utils/adt/tsrank.c:420 #, c-format msgid "array of weight is too short" msgstr "重み配列が短すぎます" -#: utils/adt/tsrank.c:422 +#: utils/adt/tsrank.c:425 #, c-format msgid "array of weight must not contain nulls" msgstr "重み配列にはNULL値を含めてはいけません" -#: utils/adt/tsrank.c:431 utils/adt/tsrank.c:871 +#: utils/adt/tsrank.c:434 utils/adt/tsrank.c:876 #, c-format msgid "weight out of range" msgstr "重みが範囲外です" -#: utils/adt/tsvector.c:216 +#: utils/adt/tsvector.c:213 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "単語が長すぎます(%ldバイト、最大は%ldバイト)" -#: utils/adt/tsvector.c:223 +#: utils/adt/tsvector.c:220 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "tsベクターのための文字列が長すぎます(%ldバイト、最大は%ldバイト)" @@ -26618,7 +27670,7 @@ msgstr "エスケープ文字がありません: \"%s\"" msgid "wrong position info in tsvector: \"%s\"" msgstr "tsvector内の位置情報が間違っています: \"%s\"" -#: utils/adt/uuid.c:418 +#: utils/adt/uuid.c:535 utils/adt/uuid.c:632 #, c-format msgid "could not generate random values" msgstr "乱数値を生成できませんでした" @@ -26663,7 +27715,7 @@ msgstr "ビット列の外部値の不正な長さ" msgid "bit string too long for type bit varying(%d)" msgstr "ビット列は型bit varying(%d)には長すぎます" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 utils/adt/varlena.c:3133 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:919 utils/adt/varlena.c:982 utils/adt/varlena.c:1139 utils/adt/varlena.c:3102 utils/adt/varlena.c:3180 #, c-format msgid "negative substring length not allowed" msgstr "負の長さのsubstringは許可されません" @@ -26688,7 +27740,7 @@ msgstr "サイズが異なるビット列のXORはできません" msgid "bit index %d out of valid range (0..%d)" msgstr "ビットのインデックス%dが有効範囲0..%dの間にありません" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3384 #, c-format msgid "new bit must be 0 or 1" msgstr "新しいビットは0か1でなければなりません" @@ -26703,92 +27755,92 @@ msgstr "値は型character(%d)としては長すぎます" msgid "value too long for type character varying(%d)" msgstr "値は型character varying(%d)としては長すぎます" -#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1591 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "文字列比較で使用する照合順序を特定できませんでした" -#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 +#: utils/adt/varlena.c:1864 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "非決定的照合順序は部分文字列探索ではサポートされません" -#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 +#: utils/adt/varlena.c:3268 utils/adt/varlena.c:3335 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "インデックス%dは有効範囲0..%dの間にありません" -#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 +#: utils/adt/varlena.c:3299 utils/adt/varlena.c:3371 #, c-format -msgid "index %lld out of valid range, 0..%lld" -msgstr "インデックス%lldは有効範囲0..%lldの間にありません" +msgid "index % out of valid range, 0..%" +msgstr "インデックス%は有効範囲0..%の間にありません" -#: utils/adt/varlena.c:4385 +#: utils/adt/varlena.c:4587 #, c-format msgid "field position must not be zero" msgstr "フィールド位置には0は指定できません" -#: utils/adt/varlena.c:5630 +#: utils/adt/varlena.c:5832 #, c-format msgid "unterminated format() type specifier" msgstr "終端されていないformat()型指定子" -#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 +#: utils/adt/varlena.c:5833 utils/adt/varlena.c:5967 utils/adt/varlena.c:6088 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "一つの\"%%\"には\"%%%%\"を使ってください。" -#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 +#: utils/adt/varlena.c:5965 utils/adt/varlena.c:6086 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "認識できない format() の型指定子\"%.*s\"" -#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 +#: utils/adt/varlena.c:5978 utils/adt/varlena.c:6035 #, c-format msgid "too few arguments for format()" msgstr "format()の引数が少なすぎます" -#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 +#: utils/adt/varlena.c:6131 utils/adt/varlena.c:6313 #, c-format msgid "number is out of range" msgstr "数値が範囲外です" -#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 +#: utils/adt/varlena.c:6194 utils/adt/varlena.c:6222 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "書式は引数0を指定していますが、引数が1から始まっています" -#: utils/adt/varlena.c:6013 +#: utils/adt/varlena.c:6215 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "width引数の位置は\"$\"で終わらなければなりません" -#: utils/adt/varlena.c:6058 +#: utils/adt/varlena.c:6260 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "NULLはSQL識別子として書式付けできません" -#: utils/adt/varlena.c:6266 +#: utils/adt/varlena.c:6468 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "Unicode正規化はサーバーエンコーディングがUTF-8の場合にのみ実行されます" -#: utils/adt/varlena.c:6279 +#: utils/adt/varlena.c:6481 #, c-format msgid "invalid normalization form: %s" msgstr "不正な正規化形式: %s" -#: utils/adt/varlena.c:6324 +#: utils/adt/varlena.c:6526 #, c-format msgid "Unicode categorization can only be performed if server encoding is UTF8" msgstr "Unicodeカテゴリー分類はサーバーエンコーディングがUTF-8の場合にのみ実行可能です" -#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 +#: utils/adt/varlena.c:6743 utils/adt/varlena.c:6778 utils/adt/varlena.c:6813 #, c-format msgid "invalid Unicode code point: %04X" msgstr "不正なUnicodeコードポイント: %04X" -#: utils/adt/varlena.c:6641 +#: utils/adt/varlena.c:6843 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Unicodeエスケープは \\XXXX、\\+XXXXXX、\\uXXXX または \\UXXXXXXXX でなければなりません。" @@ -26803,12 +27855,12 @@ msgstr "ntileの値は0より大きくなければなりません" msgid "argument of nth_value must be greater than zero" msgstr "nth_valueの値0より大きくなければなりません" -#: utils/adt/xid8funcs.c:124 +#: utils/adt/xid8funcs.c:120 #, c-format -msgid "transaction ID %llu is in the future" -msgstr "トランザクションID %lluは未来の値です" +msgid "transaction ID % is in the future" +msgstr "トランザクションID %は未来の値です" -#: utils/adt/xid8funcs.c:553 +#: utils/adt/xid8funcs.c:522 #, c-format msgid "invalid external pg_snapshot data" msgstr "不正な外部pg_snapshotデータ" @@ -26833,161 +27885,166 @@ msgstr "不正な符号化方式名\"%s\"" msgid "invalid XML comment" msgstr "無効なXMLコメント" -#: utils/adt/xml.c:691 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "XML文書ではありません" -#: utils/adt/xml.c:987 utils/adt/xml.c:1010 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "無効なXML処理命令です" -#: utils/adt/xml.c:988 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "XML処理命令の対象名を\"%s\"とすることができませんでした。" -#: utils/adt/xml.c:1011 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML処理命令には\"?>\"を含めることはできません。" -#: utils/adt/xml.c:1090 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "XML の妥当性検査は実装されていません" -#: utils/adt/xml.c:1146 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "XMLライブラリを初期化できませんでした" -#: utils/adt/xml.c:1147 +#: utils/adt/xml.c:1168 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2が互換性がない文字型を持ちます: sizeof(char)=%zu、sizeof(xmlChar)=%zu" -#: utils/adt/xml.c:1233 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "XMLエラーハンドラを設定できませんでした" -#: utils/adt/xml.c:1234 +#: utils/adt/xml.c:1255 #, c-format msgid "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のバージョンがPostgreSQLを構築する時に使用したlibxml2ヘッダと互換性がないことを示します。" -#: utils/adt/xml.c:2218 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "文字の値が有効ではありません" -#: utils/adt/xml.c:2221 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "スペースをあけてください。" -#: utils/adt/xml.c:2224 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone には 'yes' か 'no' だけが有効です。" -#: utils/adt/xml.c:2227 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "不正な形式の宣言: バージョンがありません。" -#: utils/adt/xml.c:2230 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "テキスト宣言にエンコーディングの指定がありません。" -#: utils/adt/xml.c:2233 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "XML 宣言のパース中: '>?' が必要です。" -#: utils/adt/xml.c:2236 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "認識できないlibxml のエラーコード: %d" -#: utils/adt/xml.c:2490 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XMLはデータ値として無限をサポートしません。" -#: utils/adt/xml.c:2512 utils/adt/xml.c:2539 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XMLタイムスタンプ値としては無限をサポートしません。" -#: utils/adt/xml.c:2955 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "不正な無効な問い合わせ" -#: utils/adt/xml.c:3047 +#: utils/adt/xml.c:3110 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "ポータル\"%s\"はタプルを返却しません" -#: utils/adt/xml.c:4299 +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "XML名前空間マッピングに対する不正な配列" -#: utils/adt/xml.c:4300 +#: utils/adt/xml.c:4363 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "この配列は第2軸の長さが2である2次元配列でなければなりません。" -#: utils/adt/xml.c:4324 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "空のXPath式" -#: utils/adt/xml.c:4376 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "名前空間名もURIもnullにはできません" -#: utils/adt/xml.c:4383 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "\"%s\"という名前のXML名前空間およびURI\"%s\"を登録できませんでした" -#: utils/adt/xml.c:4726 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "デフォルト名前空間は実装されていません" -#: utils/adt/xml.c:4755 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "行パスフィルタは空文字列であってはなりません" -#: utils/adt/xml.c:4786 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "列パスフィルタ空文字列であってはなりません" -#: utils/adt/xml.c:4930 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "列XPath式が2つ以上の値を返却しました" -#: utils/cache/lsyscache.c:1017 +#: utils/cache/funccache.c:364 #, c-format -msgid "cast from type %s to type %s does not exist" +msgid "could not determine actual argument type for polymorphic function \"%s\"" +msgstr "多相関数\"%s\"の実際の引数の型を特定できませんでした" + +#: utils/cache/lsyscache.c:1109 +#, c-format +msgid "cast from type %s to type %s does not exist" msgstr "型%sから型%sへのキャストは存在しません" -#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 +#: utils/cache/lsyscache.c:3027 utils/cache/lsyscache.c:3060 utils/cache/lsyscache.c:3093 utils/cache/lsyscache.c:3126 #, c-format msgid "type %s is only a shell" msgstr "型%sは単なるシェルです" -#: utils/cache/lsyscache.c:2892 +#: utils/cache/lsyscache.c:3032 #, c-format msgid "no input function available for type %s" msgstr "型%sの利用可能な入力関数がありません" -#: utils/cache/lsyscache.c:2925 +#: utils/cache/lsyscache.c:3065 #, c-format msgid "no output function available for type %s" msgstr "型%sの利用可能な出力関数がありません" @@ -26997,32 +28054,27 @@ msgstr "型%sの利用可能な出力関数がありません" msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "アクセスメソッド %2$s の演算子クラス\"%1$s\"は%4$s型に対応するサポート関数%3$dを含んでいません" -#: utils/cache/plancache.c:747 -#, c-format -msgid "cached plan must not change result type" -msgstr "キャッシュした実行計画は結果型を変更してはなりません" - -#: utils/cache/relcache.c:3797 +#: utils/cache/relcache.c:3791 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "バイナリアップグレードモード中にヒープのrelfilenumberの値が設定されていません" -#: utils/cache/relcache.c:3805 +#: utils/cache/relcache.c:3799 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "バイナリアップグレードモード中に、予期しない新規relfilenumberの要求がありました" -#: utils/cache/relcache.c:6533 +#: utils/cache/relcache.c:6616 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "リレーションキャッシュ初期化ファイル\"%sを作成できません: %m" -#: utils/cache/relcache.c:6535 +#: utils/cache/relcache.c:6618 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "とりあえず続行しますが、何かがおかしいです。" -#: utils/cache/relcache.c:6865 +#: utils/cache/relcache.c:6948 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "キャッシュファイル\"%s\"を削除できませんでした: %m" @@ -27042,7 +28094,7 @@ msgstr "リレーションマッピングファイル\"%s\"に不正なデータ msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "リレーションマッピングファイル\"%s\"の中に不正なチェックサムがあります" -#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 +#: utils/cache/typcache.c:1901 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "レコード型は登録されていません" @@ -27057,193 +28109,185 @@ msgstr "TRAP: 例外条件: PID %dで不正な引数\n" msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "TRAP: Assert(\"%s\")が失敗、ファイル: \"%s\"、行: %d、PID: %d)\n" -#: utils/error/elog.c:415 +#: utils/error/elog.c:412 #, c-format msgid "error occurred before error message processing is available\n" msgstr "エラーメッセージの処理が可能になる前にエラーが発生しました\n" -#: utils/error/elog.c:2101 +#: utils/error/elog.c:2159 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "ファイル\"%s\"の標準エラー出力としての再オープンに失敗しました: %m" -#: utils/error/elog.c:2114 +#: utils/error/elog.c:2172 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "ファイル\"%s\"の標準出力としての再オープンに失敗しました: %m" -#: utils/error/elog.c:2150 +#: utils/error/elog.c:2208 #, c-format -msgid "Invalid character" -msgstr "不正な文字" +msgid "Invalid character." +msgstr "不正な文字。" -#: utils/error/elog.c:2856 utils/error/elog.c:2883 utils/error/elog.c:2899 +#: utils/error/elog.c:2918 utils/error/elog.c:2945 utils/error/elog.c:2961 msgid "[unknown]" msgstr "[不明]" -#: utils/error/elog.c:3169 utils/error/elog.c:3493 utils/error/elog.c:3600 +#: utils/error/elog.c:3263 utils/error/elog.c:3587 utils/error/elog.c:3694 msgid "missing error text" msgstr "エラーテキストがありません" -#: utils/error/elog.c:3172 utils/error/elog.c:3175 +#: utils/error/elog.c:3266 utils/error/elog.c:3269 #, c-format msgid " at character %d" msgstr "(%d文字目)" -#: utils/error/elog.c:3185 utils/error/elog.c:3192 +#: utils/error/elog.c:3279 utils/error/elog.c:3286 msgid "DETAIL: " msgstr "詳細: " -#: utils/error/elog.c:3199 +#: utils/error/elog.c:3293 msgid "HINT: " msgstr "ヒント: " -#: utils/error/elog.c:3206 +#: utils/error/elog.c:3300 msgid "QUERY: " msgstr "問い合わせ: " -#: utils/error/elog.c:3213 +#: utils/error/elog.c:3307 msgid "CONTEXT: " msgstr "文脈: " -#: utils/error/elog.c:3223 +#: utils/error/elog.c:3317 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "場所: %s, %s:%d\n" -#: utils/error/elog.c:3230 +#: utils/error/elog.c:3324 #, c-format msgid "LOCATION: %s:%d\n" msgstr "場所: %s:%d\n" -#: utils/error/elog.c:3237 +#: utils/error/elog.c:3331 msgid "BACKTRACE: " msgstr "バックトレース: " -#: utils/error/elog.c:3249 +#: utils/error/elog.c:3343 msgid "STATEMENT: " msgstr "文: " -#: utils/error/elog.c:3645 +#: utils/error/elog.c:3739 msgid "DEBUG" msgstr "DEBUG" -#: utils/error/elog.c:3649 +#: utils/error/elog.c:3743 msgid "LOG" msgstr "LOG" -#: utils/error/elog.c:3652 +#: utils/error/elog.c:3746 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3655 +#: utils/error/elog.c:3749 msgid "NOTICE" msgstr "NOTICE" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3753 msgid "WARNING" msgstr "WARNING" -#: utils/error/elog.c:3662 +#: utils/error/elog.c:3756 msgid "ERROR" msgstr "ERROR" -#: utils/error/elog.c:3665 +#: utils/error/elog.c:3759 msgid "FATAL" msgstr "FATAL" -#: utils/error/elog.c:3668 +#: utils/error/elog.c:3762 msgid "PANIC" msgstr "PANIC" -#: utils/fmgr/dfmgr.c:128 +#: utils/fmgr/dfmgr.c:118 #, c-format msgid "could not find function \"%s\" in file \"%s\"" msgstr "ファイル\"%2$s\"内に関数\"%1$s\"がありませんでした" -#: utils/fmgr/dfmgr.c:247 +#: utils/fmgr/dfmgr.c:237 #, c-format msgid "could not load library \"%s\": %s" msgstr "ライブラリ\"%s\"をロードできませんでした: %s" -#: utils/fmgr/dfmgr.c:279 +#: utils/fmgr/dfmgr.c:274 #, c-format msgid "incompatible library \"%s\": missing magic block" msgstr "\"%s\"は互換性がないライブラリです。マジックブロックの欠落" -#: utils/fmgr/dfmgr.c:281 +#: utils/fmgr/dfmgr.c:276 #, c-format msgid "Extension libraries are required to use the PG_MODULE_MAGIC macro." msgstr "拡張ライブラリはPG_MODULE_MAGICマクロを使用しなければなりません。" -#: utils/fmgr/dfmgr.c:327 +#: utils/fmgr/dfmgr.c:322 #, c-format msgid "incompatible library \"%s\": version mismatch" msgstr "\"%s\"は互換性がないライブラリです: バージョンの不一致" -#: utils/fmgr/dfmgr.c:329 +#: utils/fmgr/dfmgr.c:324 #, c-format msgid "Server is version %d, library is version %s." msgstr "サーバーはバージョン%d、ライブラリはバージョン%sです。" -#: utils/fmgr/dfmgr.c:341 +#: utils/fmgr/dfmgr.c:336 #, c-format msgid "incompatible library \"%s\": ABI mismatch" msgstr "非互換のライブラリ\"%s\": ABIの不一致" -#: utils/fmgr/dfmgr.c:343 +#: utils/fmgr/dfmgr.c:338 #, c-format msgid "Server has ABI \"%s\", library has \"%s\"." msgstr "サーバー側ABIは\"%s\"、ライブラリ側は\"%s\"です。" -#: utils/fmgr/dfmgr.c:361 +#. translator: %s is a variable name and %d its values +#: utils/fmgr/dfmgr.c:357 utils/fmgr/dfmgr.c:367 utils/fmgr/dfmgr.c:377 #, c-format -msgid "Server has FUNC_MAX_ARGS = %d, library has %d." -msgstr "サーバー側は FUNC_MAX_ARGS = %d ですが、ライブラリ側は %d です" +msgid "Server has %s = %d, library has %d." +msgstr "サーバー側では %s = %d ですが、ライブラリ側は %d です。" -#: utils/fmgr/dfmgr.c:370 +#. translator: %s is a variable name and %d its values +#: utils/fmgr/dfmgr.c:387 #, c-format -msgid "Server has INDEX_MAX_KEYS = %d, library has %d." -msgstr "サーバー側は INDEX_MAX_KEYS = %d ですが、ライブラリ側は %d です" +msgid "Server has %s = %s, library has %s." +msgstr "サーバー側では %s = \"%s\"ですが、ライブラリ側は\"%s\"です。" -#: utils/fmgr/dfmgr.c:379 -#, c-format -msgid "Server has NAMEDATALEN = %d, library has %d." -msgstr "サーバー側は NAMEDATALEN = %d ですが、ライブラリ側は %d です" - -#: utils/fmgr/dfmgr.c:388 -#, c-format -msgid "Server has FLOAT8PASSBYVAL = %s, library has %s." -msgstr "サーバー側はFLOAT8PASSBYVAL = %sですが、ライブラリ側は%sです。" - -#: utils/fmgr/dfmgr.c:395 +#: utils/fmgr/dfmgr.c:394 msgid "Magic block has unexpected length or padding difference." msgstr "マジックブロックが意図しない長さであるか、またはパディングが異なります。" -#: utils/fmgr/dfmgr.c:398 +#: utils/fmgr/dfmgr.c:397 #, c-format msgid "incompatible library \"%s\": magic block mismatch" msgstr "\"%s\"は互換性がないライブラリです: マジックブロックの不一致" -#: utils/fmgr/dfmgr.c:475 +#: utils/fmgr/dfmgr.c:520 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "ライブラリ\"%s\"へのアクセスは許可されません" -#: utils/fmgr/dfmgr.c:501 +#: utils/fmgr/dfmgr.c:547 #, c-format -msgid "invalid macro name in dynamic library path: %s" -msgstr "ダイナミックライブラリパス内のマクロが不正です: %s" +msgid "invalid macro name in path: %s" +msgstr "パス内のマクロ名が無効です: %s" -#: utils/fmgr/dfmgr.c:541 +#: utils/fmgr/dfmgr.c:599 #, c-format -msgid "zero-length component in parameter \"dynamic_library_path\"" -msgstr "パラメータ\"dynamic_library_path\"内に長さが0の要素があります" +msgid "zero-length component in parameter \"%s\"" +msgstr "パラメータ\"%s\"に長さ0の構成要素があります" -#: utils/fmgr/dfmgr.c:560 +#: utils/fmgr/dfmgr.c:618 #, c-format -msgid "component in parameter \"dynamic_library_path\" is not an absolute path" -msgstr "パラメータ\"dynamic_library_path\"内の要素が絶対パスでありません" +msgid "component in parameter \"%s\" is not an absolute path" +msgstr "パラメータ\"%s\"に絶対パスではない要素が含まれています" #: utils/fmgr/fmgr.c:236 #, c-format @@ -27300,340 +28344,422 @@ msgstr "列の別名が提供されていませんでした" msgid "could not determine row description for function returning record" msgstr "レコードを返す関数についての行定義を特定できませんでした" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:265 +msgid "unknown process type" +msgstr "不明なプロセスタイプ" + +#: utils/init/miscinit.c:270 +msgid "not initialized" +msgstr "未初期化プロセス" + +#: utils/init/miscinit.c:273 +msgid "archiver" +msgstr "アーカイバー" + +#: utils/init/miscinit.c:276 +msgid "autovacuum launcher" +msgstr "自動VACUUM起動プロセス" + +#: utils/init/miscinit.c:279 +msgid "autovacuum worker" +msgstr "自動VACUUMワーカー" + +#: utils/init/miscinit.c:282 +msgid "client backend" +msgstr "クライアント バックエンド" + +#: utils/init/miscinit.c:285 +msgid "dead-end client backend" +msgstr "終了待ちバックエンド" + +#: utils/init/miscinit.c:288 +msgid "background worker" +msgstr "バックグラウンドワーカー" + +#: utils/init/miscinit.c:291 +msgid "background writer" +msgstr "バックグランドライター" + +#: utils/init/miscinit.c:294 +msgid "checkpointer" +msgstr "チェックポインター" + +#: utils/init/miscinit.c:300 +msgid "logger" +msgstr "ログ出力プロセス" + +#: utils/init/miscinit.c:303 +msgid "slotsync worker" +msgstr "スロット同期ワーカー" + +#: utils/init/miscinit.c:306 +msgid "standalone backend" +msgstr "単独起動バックエンド" + +#: utils/init/miscinit.c:309 +msgid "startup" +msgstr "初期起動プロセス" + +#: utils/init/miscinit.c:312 +msgid "walreceiver" +msgstr "WAL受信プロセス" + +#: utils/init/miscinit.c:315 +msgid "walsender" +msgstr "WAL送信プロセス" + +#: utils/init/miscinit.c:318 +msgid "walsummarizer" +msgstr "WAL集計プロセス" + +#: utils/init/miscinit.c:321 +msgid "walwriter" +msgstr "WAL書き込みプロセス" + +#: utils/init/miscinit.c:358 #, c-format msgid "data directory \"%s\" does not exist" msgstr "データディレクトリ\"%s\"は存在しません" -#: utils/init/miscinit.c:357 +#: utils/init/miscinit.c:363 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を読み取れませんでした: %m" -#: utils/init/miscinit.c:365 +#: utils/init/miscinit.c:371 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "指定されたデータディレクトリ\"%s\"はディレクトリではありません" -#: utils/init/miscinit.c:381 +#: utils/init/miscinit.c:387 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "データディレクトリ\"%s\"の所有者情報が間違っています" -#: utils/init/miscinit.c:383 +#: utils/init/miscinit.c:389 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "データディレクトリを所有するユーザーがサーバーを起動しなければなりません。" -#: utils/init/miscinit.c:401 +#: utils/init/miscinit.c:407 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "データディレクトリ\"%s\"の権限設定が不正です" -#: utils/init/miscinit.c:403 +#: utils/init/miscinit.c:409 #, 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:461 +#: utils/init/miscinit.c:467 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "ディレクトリ\"%s\"に移動できませんでした: %m" -#: utils/init/miscinit.c:697 utils/misc/guc.c:3641 +#: utils/init/miscinit.c:725 utils/misc/guc.c:3647 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "セキュリティー制限操作内でパラメーター\"%s\"を設定できません" -#: utils/init/miscinit.c:770 +#: utils/init/miscinit.c:812 #, c-format msgid "role with OID %u does not exist" msgstr "OID が %u であるロールは存在しません" -#: utils/init/miscinit.c:800 +#: utils/init/miscinit.c:858 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "ロール\"%s\"はログインが許可されません" -#: utils/init/miscinit.c:818 +#: utils/init/miscinit.c:879 #, c-format msgid "too many connections for role \"%s\"" msgstr "ロール\"%s\"からの接続が多すぎます" -#: utils/init/miscinit.c:991 +#: utils/init/miscinit.c:1050 #, c-format msgid "invalid role OID: %u" msgstr "不正なロールID: %u" -#: utils/init/miscinit.c:1138 +#: utils/init/miscinit.c:1197 #, c-format msgid "database system is shut down" msgstr "データベースシステムはシャットダウンしました" -#: utils/init/miscinit.c:1225 +#: utils/init/miscinit.c:1284 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "ロックファイル\"%s\"を作成できませんでした: %m" -#: utils/init/miscinit.c:1239 +#: utils/init/miscinit.c:1298 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "ロックファイル\"%s\"をオープンできませんでした: %m" -#: utils/init/miscinit.c:1246 +#: utils/init/miscinit.c:1305 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "ロックファイル\"%s\"を読み取れませんでした: %m" -#: utils/init/miscinit.c:1255 +#: utils/init/miscinit.c:1314 #, c-format msgid "lock file \"%s\" is empty" msgstr "ロックファイル\"%s\"が空です" -#: utils/init/miscinit.c:1256 +#: utils/init/miscinit.c:1315 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "他のサーバーが稼働しているか、前回のサーバー起動失敗のためロックファイルが残っているかのいずれかです" -#: utils/init/miscinit.c:1300 +#: utils/init/miscinit.c:1359 #, c-format msgid "lock file \"%s\" already exists" msgstr "ロックファイル\"%s\"はすでに存在します" -#: utils/init/miscinit.c:1304 +#: utils/init/miscinit.c:1363 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "他のpostgres(PID %d)がデータディレクトリ\"%s\"で稼動していませんか?" -#: utils/init/miscinit.c:1306 +#: utils/init/miscinit.c:1365 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "他のpostmaster(PID %d)がデータディレクトリ\"%s\"で稼動していませんか?" -#: utils/init/miscinit.c:1309 +#: utils/init/miscinit.c:1368 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "他のpostgres(PID %d)がソケットファイル\"%s\"を使用していませんか?" -#: utils/init/miscinit.c:1311 +#: utils/init/miscinit.c:1370 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "他のpostmaster(PID %d)がソケットファイル\"%s\"を使用していませんか?" -#: utils/init/miscinit.c:1362 +#: utils/init/miscinit.c:1421 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "古いロックファイル\"%s\"を削除できませんでした: %m" -#: utils/init/miscinit.c:1364 +#: utils/init/miscinit.c:1423 #, 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 "このファイルは偶然残ってしまったようですが、削除できませんでした。手作業でこれを削除し再実行してください。" -#: utils/init/miscinit.c:1401 utils/init/miscinit.c:1415 utils/init/miscinit.c:1426 +#: utils/init/miscinit.c:1460 utils/init/miscinit.c:1474 utils/init/miscinit.c:1485 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "ロックファイル\"%s\"に書き出せませんでした: %m" -#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1679 utils/misc/guc.c:5715 +#: utils/init/miscinit.c:1596 utils/init/miscinit.c:1738 utils/misc/guc.c:5763 #, c-format msgid "could not read from file \"%s\": %m" msgstr "ファイル\"%s\"から読み取れませんでした: %m" -#: utils/init/miscinit.c:1667 +#: utils/init/miscinit.c:1726 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "ファイル\"%s\"をオープンできませんでした: %m; とりあえず続けます" -#: utils/init/miscinit.c:1692 +#: utils/init/miscinit.c:1751 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "ロックファイル\"%s\"が誤ったPIDをもっています: %ld、正しくは%ld" -#: utils/init/miscinit.c:1731 utils/init/miscinit.c:1747 +#: utils/init/miscinit.c:1790 utils/init/miscinit.c:1806 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\"は有効なデータディレクトリではありません" -#: utils/init/miscinit.c:1733 +#: utils/init/miscinit.c:1792 #, c-format msgid "File \"%s\" is missing." msgstr "ファイル\"%s\"が存在しません" -#: utils/init/miscinit.c:1749 +#: utils/init/miscinit.c:1808 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "ファイル\"%s\"に有効なデータがありません。" -#: utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1810 #, c-format msgid "You might need to initdb." msgstr "initdbする必要があるかもしれません" -#: utils/init/miscinit.c:1759 +#: utils/init/miscinit.c:1818 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "データディレクトリはPostgreSQLバージョン%sで初期化されましたが、これはバージョン%sとは互換性がありません" -#: utils/init/postinit.c:259 +#: utils/init/postinit.c:269 #, c-format msgid "replication connection authorized: user=%s" msgstr "レプリケーション接続の認証完了: ユーザー=%s" -#: utils/init/postinit.c:262 +#: utils/init/postinit.c:272 #, c-format msgid "connection authorized: user=%s" msgstr "接続の認証完了: ユーザー=%s" -#: utils/init/postinit.c:265 +#: utils/init/postinit.c:275 #, c-format msgid " database=%s" msgstr " データベース=%s" -#: utils/init/postinit.c:268 +#: utils/init/postinit.c:278 #, c-format msgid " application_name=%s" msgstr " application_name=%s" -#: utils/init/postinit.c:273 +#: utils/init/postinit.c:283 #, c-format msgid " SSL enabled (protocol=%s, cipher=%s, bits=%d)" msgstr " SSL有効(プロトコル=%s、暗号化方式=%s、ビット長=%d)" -#: utils/init/postinit.c:285 +#: utils/init/postinit.c:295 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" msgstr " GSS (認証=%s、暗号化=%s、委任資格証明=%s、プリンシパル=%s)" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:296 utils/init/postinit.c:297 utils/init/postinit.c:298 utils/init/postinit.c:303 utils/init/postinit.c:304 utils/init/postinit.c:305 msgid "no" msgstr "いいえ" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:296 utils/init/postinit.c:297 utils/init/postinit.c:298 utils/init/postinit.c:303 utils/init/postinit.c:304 utils/init/postinit.c:305 msgid "yes" msgstr "はい" -#: utils/init/postinit.c:292 +#: utils/init/postinit.c:302 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" msgstr " GSS (認証=%s、暗号化=%s、委任資格証明=%s)" -#: utils/init/postinit.c:333 +#: utils/init/postinit.c:342 #, c-format msgid "database \"%s\" has disappeared from pg_database" msgstr "データベース\"%s\"はpg_databaseから消失しました" -#: utils/init/postinit.c:335 +#: utils/init/postinit.c:344 #, c-format msgid "Database OID %u now seems to belong to \"%s\"." msgstr "OID%uのデータベースは\"%s\"に属するようです。" -#: utils/init/postinit.c:355 +#: utils/init/postinit.c:364 #, c-format msgid "database \"%s\" is not currently accepting connections" msgstr "現在データベース\"%s\"は接続を受け付けません" -#: utils/init/postinit.c:368 +#: utils/init/postinit.c:377 #, c-format msgid "permission denied for database \"%s\"" msgstr "データベース\"%s\"へのアクセスが拒否されました" -#: utils/init/postinit.c:369 +#: utils/init/postinit.c:378 #, c-format msgid "User does not have CONNECT privilege." msgstr "ユーザーはCONNECT権限を持ちません。" -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:398 #, c-format msgid "too many connections for database \"%s\"" msgstr "データベース\"%s\"への接続が多すぎます" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:422 utils/init/postinit.c:429 #, c-format msgid "database locale is incompatible with operating system" msgstr "データベースのロケールがオペレーティングシステムと互換性がありません" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:423 #, c-format msgid "The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale()." msgstr "データベースは LC_COLLATE \"%s\"で初期化されていますが、setlocale() でこれを認識されません" -#: utils/init/postinit.c:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:425 utils/init/postinit.c:432 #, c-format msgid "Recreate the database with another locale or install the missing locale." msgstr "データベースを別のロケールで再生成するか、または不足しているロケールをインストールしてください" -#: utils/init/postinit.c:418 +#: utils/init/postinit.c:430 #, c-format msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "データベースは LC_CTYPE \"%s\"で初期化されていますが、setlocale()でこれを認識されません" -#: utils/init/postinit.c:491 +#: utils/init/postinit.c:471 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "データベース\"%s\"で照合順序バージョンの不一致が起きています" -#: utils/init/postinit.c:493 +#: utils/init/postinit.c:473 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." msgstr "データベースは照合順序バージョン%sで作成されていますが、オペレーティングシステムはバージョン%sを提供しています。" -#: utils/init/postinit.c:496 +#: utils/init/postinit.c:476 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE %s REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。" -#: utils/init/postinit.c:902 +#: utils/init/postinit.c:566 +#, c-format +msgid "too many server processes configured" +msgstr "サーバープロセス数の設定が大きすぎます" + +#: utils/init/postinit.c:567 +#, c-format +msgid "\"max_connections\" (%d) plus \"autovacuum_worker_slots\" (%d) plus \"max_worker_processes\" (%d) plus \"max_wal_senders\" (%d) must be less than %d." +msgstr "\"max_connections\" (%d) + \"autovacuum_worker_slots\" (%d) + \"max_worker_processes\" (%d) + \"max_wal_senders\" (%d)は%dより小さくなければなりません。" + +#: utils/init/postinit.c:889 #, c-format msgid "no roles are defined in this database system" msgstr "データベースシステム内でロールが定義されていません" -#: utils/init/postinit.c:903 +#: utils/init/postinit.c:890 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "すぐに CREATE USER \"%s\" SUPERUSER; を実行してください。" -#: utils/init/postinit.c:940 +#: utils/init/postinit.c:935 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "バイナリアップグレードモード中に接続するにはスーパーユーザーである必要があります" -#: utils/init/postinit.c:961 +#: utils/init/postinit.c:955 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "残りの接続枠は%s属性を持つロールのために予約されています" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:961 #, c-format msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" msgstr "残りの接続枠は\"%s\"ロールの権限を持つロールのために予約されています" -#: utils/init/postinit.c:979 +#: utils/init/postinit.c:973 #, c-format msgid "permission denied to start WAL sender" msgstr "WAL送信プロセスを開始する権限がありません" -#: utils/init/postinit.c:980 +#: utils/init/postinit.c:974 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "%s属性を持つロールのみがWAL送信プロセスを開始できます。" -#: utils/init/postinit.c:1098 +#: utils/init/postinit.c:1092 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "削除またはリネームされたばかりのようです。" -#: utils/init/postinit.c:1102 +#: utils/init/postinit.c:1096 #, c-format msgid "database %u does not exist" msgstr "データベース %u は存在しません" -#: utils/init/postinit.c:1111 +#: utils/init/postinit.c:1105 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "無効なデータベース\"%s\"への接続はできません" -#: utils/init/postinit.c:1172 +#: utils/init/postinit.c:1166 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "データベースのサブディレクトリ\"%s\"がありません。" @@ -27648,12 +28774,12 @@ msgstr "ロール\"%s\"は\"%s\"へのSET ROLEはできません" msgid "invalid encoding number: %d" msgstr "不正な符号化方式番号: %d" -#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:129 utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:165 +#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:132 utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:168 #, c-format msgid "unexpected encoding ID %d for ISO 8859 character sets" msgstr "ISO8859文字セットに対する符号化方式ID %dは想定外です" -#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:110 utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:146 +#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:113 utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:149 #, c-format msgid "unexpected encoding ID %d for WIN character sets" msgstr "WIN文字セットに対する符号化方式ID %dは想定外です<" @@ -27713,80 +28839,80 @@ msgstr "空の設定ディレクトリ名: \"%s\"" msgid "could not open configuration directory \"%s\": %m" msgstr "設定ディレクトリ\"%s\"をオープンできませんでした: %m" -#: utils/misc/guc.c:122 +#: utils/misc/guc.c:119 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "このパラメータで使用可能な単位は\"B\"、\"kB\"、\"MB\"、\"GB\"および\"TB\"です。" -#: utils/misc/guc.c:159 +#: utils/misc/guc.c:156 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." msgstr "このパラメータの有効単位は \"us\"、\"ms\"、\"s\"、\"min\"、\"h\"そして\"d\"です。" -#: utils/misc/guc.c:430 +#: utils/misc/guc.c:428 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "ファイル\"%2$s\"行%3$dで認識できない設定パラメータ\"%1$s\"" -#: utils/misc/guc.c:470 utils/misc/guc.c:3495 utils/misc/guc.c:3739 utils/misc/guc.c:3837 utils/misc/guc.c:3935 utils/misc/guc.c:4059 utils/misc/guc.c:4162 +#: utils/misc/guc.c:468 utils/misc/guc.c:3501 utils/misc/guc.c:3745 utils/misc/guc.c:3843 utils/misc/guc.c:3941 utils/misc/guc.c:4068 utils/misc/guc.c:4209 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "パラメータ\"%s\"を変更するにはサーバーの再起動が必要です" -#: utils/misc/guc.c:506 +#: utils/misc/guc.c:504 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "パラメーター\"%s\"が設定ファイルから削除されました。デフォルト値に戻ります。" -#: utils/misc/guc.c:571 +#: utils/misc/guc.c:569 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "パラメータ\"%s\"は\"%s\"に変更されました" -#: utils/misc/guc.c:613 +#: utils/misc/guc.c:611 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "設定ファイル\"%s\"にはエラーがあります" -#: utils/misc/guc.c:618 +#: utils/misc/guc.c:616 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "設定ファイル\"%s\"にはエラーがあります。影響がない変更は適用されました" -#: utils/misc/guc.c:623 +#: utils/misc/guc.c:621 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "設定ファイル\"%s\"にはエラーがあります。変更は適用されませんでした" -#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 +#: utils/misc/guc.c:1137 utils/misc/guc.c:1153 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "設定パラメータ名\"%s\"は不正です" -#: utils/misc/guc.c:1141 +#: utils/misc/guc.c:1139 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." msgstr "独自パラメータの名前は2つ以上の単純識別子をピリオドでつないだ形式でなければなりません。" -#: utils/misc/guc.c:1157 +#: utils/misc/guc.c:1155 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\"は予約されている接頭辞です。" -#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 +#: utils/misc/guc.c:1168 utils/misc/guc.c:1278 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "設定パラメータ\"%s\"は不明です" -#: utils/misc/guc.c:1802 +#: utils/misc/guc.c:1800 #, c-format msgid "%s: could not access directory \"%s\": %m\n" msgstr "%s: ディレクトリ\"%s\"にアクセスできませんでした: %m\n" -#: utils/misc/guc.c:1806 +#: utils/misc/guc.c:1804 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "initdbまたはpg_basebackupを実行して、PostgreSQLデータディレクトリを初期化してください。\n" -#: utils/misc/guc.c:1830 +#: utils/misc/guc.c:1828 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -27796,12 +28922,12 @@ msgstr "" "--config-fileまたは-Dオプションを指定する、あるいはPGDATA環境変数を設\n" "定する必要があります。\n" -#: utils/misc/guc.c:1853 +#: utils/misc/guc.c:1851 #, c-format msgid "%s: could not access the server configuration file \"%s\": %m\n" msgstr "%s: サーバー設定ファイル\"%s\"にアクセスできませんでした: %m\n" -#: utils/misc/guc.c:1881 +#: utils/misc/guc.c:1879 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -27811,7 +28937,7 @@ msgstr "" "\"%s\"内の\"data_directory\"で指定するか、実行時に-Dオプションを指定する、またはPGDATA環\n" "境変数で設定することができます。\n" -#: utils/misc/guc.c:1933 +#: utils/misc/guc.c:1931 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -27821,7 +28947,7 @@ msgstr "" "\"%s\"内で\"hba_directory\"を指定する、-Dオプションを指定する、PGDATA環\n" "境変数で設定することができます。\n" -#: utils/misc/guc.c:1964 +#: utils/misc/guc.c:1962 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -27831,125 +28957,130 @@ msgstr "" "\"%s\"内で\"ident_directory\"を指定する、-Dオプションを指定する、PGDATA環\n" "境変数で設定することができます。\n" -#: utils/misc/guc.c:2943 +#: utils/misc/guc.c:2941 msgid "Value exceeds integer range." msgstr "値が整数範囲を超えています。" -#: utils/misc/guc.c:3185 +#: utils/misc/guc.c:3182 #, c-format msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" msgstr "%d%s%sはパラメータ\"%s\"の有効範囲(%d%s%s .. %d%s%s)の範囲外です" -#: utils/misc/guc.c:3226 +#: utils/misc/guc.c:3223 #, c-format msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" msgstr "%g%s%sはパラメータ\"%s\"の有効範囲(%g%s%s .. %g%s%s)の範囲外です" -#: utils/misc/guc.c:3447 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3462 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "並列処理中はパラメータの設定はできません" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "パラメータ\"%s\"は並列操作中には設定できません" -#: utils/misc/guc.c:3472 utils/misc/guc.c:4646 +#: utils/misc/guc.c:3478 utils/misc/guc.c:4693 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "パラメータ\"%s\"を変更できません" -#: utils/misc/guc.c:3505 +#: utils/misc/guc.c:3511 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "現在パラメータ\"%s\"を変更できません" -#: utils/misc/guc.c:3532 utils/misc/guc.c:3594 utils/misc/guc.c:4621 utils/misc/guc.c:6712 +#: utils/misc/guc.c:3538 utils/misc/guc.c:3600 utils/misc/guc.c:4668 utils/misc/guc.c:6754 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "パラメータ\"%s\"を設定する権限がありません" -#: utils/misc/guc.c:3574 +#: utils/misc/guc.c:3580 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "接続開始後にパラメータ\"%s\"を変更できません" -#: utils/misc/guc.c:3633 +#: utils/misc/guc.c:3639 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "セキュリティー定義用関数内でパラメーター\"%s\"を設定できません" -#: utils/misc/guc.c:3654 +#: utils/misc/guc.c:3660 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "パラメータ\"%s\"は設定できません" -#: utils/misc/guc.c:3661 +#: utils/misc/guc.c:3667 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "パラメータ\"%s\"は関数内では変更できません" -#: utils/misc/guc.c:4320 utils/misc/guc.c:4368 utils/misc/guc.c:5400 +#: utils/misc/guc.c:4367 utils/misc/guc.c:4415 utils/misc/guc.c:5448 #, c-format msgid "permission denied to examine \"%s\"" msgstr "”%s\"を参照する権限がありません" -#: utils/misc/guc.c:4321 utils/misc/guc.c:4369 utils/misc/guc.c:5401 +#: utils/misc/guc.c:4368 utils/misc/guc.c:4416 utils/misc/guc.c:5449 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "\"%s\"ロールの権限を持つロールのみがこのパラメータを参照することができます。" -#: utils/misc/guc.c:4579 +#: utils/misc/guc.c:4626 #, c-format msgid "ALTER SYSTEM is not allowed in this environment" msgstr "ALTER SYSTEMはこの環境では許可されていません" -#: utils/misc/guc.c:4611 +#: utils/misc/guc.c:4658 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "ALTER SYSTEM RESET ALLを行う権限がありません" -#: utils/misc/guc.c:4690 +#: utils/misc/guc.c:4737 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "ALTER SYSTEMでのパラメータ値は改行を含んではいけません" -#: utils/misc/guc.c:4735 +#: utils/misc/guc.c:4782 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "ファイル\"%s\"の内容をパースできませんでした" -#: utils/misc/guc.c:4917 +#: utils/misc/guc.c:4965 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "パラメータ\"%s\"を再定義しようとしています" -#: utils/misc/guc.c:5256 +#: utils/misc/guc.c:5304 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "設定パラメータ名\"%s\"は不正です、削除します" -#: utils/misc/guc.c:5258 +#: utils/misc/guc.c:5306 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" は予約された接頭辞になりました。" -#: utils/misc/guc.c:6135 +#: utils/misc/guc.c:6177 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "パラメータ\"%s\"の\"%s\"への変更中" -#: utils/misc/guc.c:6304 +#: utils/misc/guc.c:6346 #, c-format msgid "parameter \"%s\" could not be set" msgstr "パラメータ\"%s\"を設定できません" -#: utils/misc/guc.c:6394 +#: utils/misc/guc.c:6436 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "パラメータ\"%s\"の設定をパースできません" -#: utils/misc/guc.c:6844 +#: utils/misc/guc.c:6886 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "パラメータ\"%s\"の値が無効です: %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "並列処理中はパラメータの設定はできません" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -27965,2059 +29096,2267 @@ msgstr "SET %sは1つの引数のみを取ります" msgid "SET requires parameter name" msgstr "SETにはパラメータ名が必要です" -#: utils/misc/guc_tables.c:675 +#: utils/misc/guc_tables.c:692 msgid "Ungrouped" msgstr "その他" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:693 msgid "File Locations" msgstr "ファイルの位置" -#: utils/misc/guc_tables.c:677 +#: utils/misc/guc_tables.c:694 msgid "Connections and Authentication / Connection Settings" msgstr "接続と認証/接続設定" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:695 msgid "Connections and Authentication / TCP Settings" msgstr "接続と認証/TCP設定" -#: utils/misc/guc_tables.c:679 +#: utils/misc/guc_tables.c:696 msgid "Connections and Authentication / Authentication" msgstr "接続と認証/認証" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:697 msgid "Connections and Authentication / SSL" msgstr "接続と認証/SSL" -#: utils/misc/guc_tables.c:681 +#: utils/misc/guc_tables.c:698 msgid "Resource Usage / Memory" msgstr "使用リソース/メモリ" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:699 msgid "Resource Usage / Disk" msgstr "使用リソース/ディスク" -#: utils/misc/guc_tables.c:683 +#: utils/misc/guc_tables.c:700 msgid "Resource Usage / Kernel Resources" msgstr "使用リソース/カーネルリソース" -#: utils/misc/guc_tables.c:684 -msgid "Resource Usage / Cost-Based Vacuum Delay" -msgstr "使用リソース / コストベースvacuum遅延" - -#: utils/misc/guc_tables.c:685 +#: utils/misc/guc_tables.c:701 msgid "Resource Usage / Background Writer" msgstr "使用リソース / バックグラウンド・ライタ" -#: utils/misc/guc_tables.c:686 -msgid "Resource Usage / Asynchronous Behavior" -msgstr "使用リソース / 非同期動作" +#: utils/misc/guc_tables.c:702 +msgid "Resource Usage / I/O" +msgstr "使用リソース/ I/O" -#: utils/misc/guc_tables.c:687 +#: utils/misc/guc_tables.c:703 +msgid "Resource Usage / Worker Processes" +msgstr "使用リソース/ワーカープロセス" + +#: utils/misc/guc_tables.c:704 msgid "Write-Ahead Log / Settings" msgstr "先行書き込みログ / 設定" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:705 msgid "Write-Ahead Log / Checkpoints" msgstr "先行書き込みログ / チェックポイント" -#: utils/misc/guc_tables.c:689 +#: utils/misc/guc_tables.c:706 msgid "Write-Ahead Log / Archiving" msgstr "先行書き込みログ / アーカイビング" -#: utils/misc/guc_tables.c:690 +#: utils/misc/guc_tables.c:707 msgid "Write-Ahead Log / Recovery" msgstr "先行書き込みログ / リカバリ" -#: utils/misc/guc_tables.c:691 +#: utils/misc/guc_tables.c:708 msgid "Write-Ahead Log / Archive Recovery" msgstr "先行書き込みログ / アーカイブリカバリ" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:709 msgid "Write-Ahead Log / Recovery Target" msgstr "先行書き込みログ / チェックポイント" -#: utils/misc/guc_tables.c:693 +#: utils/misc/guc_tables.c:710 msgid "Write-Ahead Log / Summarization" msgstr "先行書き込みログ / 集約" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:711 msgid "Replication / Sending Servers" msgstr "レプリケーション / 送信サーバー" -#: utils/misc/guc_tables.c:695 +#: utils/misc/guc_tables.c:712 msgid "Replication / Primary Server" msgstr "レプリケーション / プライマリサーバー" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:713 msgid "Replication / Standby Servers" msgstr "レプリケーション / スタンバイサーバー" -#: utils/misc/guc_tables.c:697 +#: utils/misc/guc_tables.c:714 msgid "Replication / Subscribers" msgstr "レプリケーション / サブスクライバ" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:715 msgid "Query Tuning / Planner Method Configuration" msgstr "問い合わせのチューニング / プランナ手法設定" -#: utils/misc/guc_tables.c:699 +#: utils/misc/guc_tables.c:716 msgid "Query Tuning / Planner Cost Constants" msgstr "問い合わせのチューニング / プランナコスト定数" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:717 msgid "Query Tuning / Genetic Query Optimizer" msgstr "問い合わせのチューニング / 遺伝的問い合わせオプティマイザ" -#: utils/misc/guc_tables.c:701 +#: utils/misc/guc_tables.c:718 msgid "Query Tuning / Other Planner Options" msgstr "問い合わせのチューニング / その他のプランオプション" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:719 msgid "Reporting and Logging / Where to Log" msgstr "レポートとログ出力 / ログの出力先" -#: utils/misc/guc_tables.c:703 +#: utils/misc/guc_tables.c:720 msgid "Reporting and Logging / When to Log" msgstr "レポートとログ出力 / ログのタイミング" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:721 msgid "Reporting and Logging / What to Log" msgstr "レポートとログ出力 / ログの内容" -#: utils/misc/guc_tables.c:705 +#: utils/misc/guc_tables.c:722 msgid "Reporting and Logging / Process Title" msgstr "レポートとログ出力 / プロセス表記" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:723 msgid "Statistics / Monitoring" msgstr "統計情報 / 監視" -#: utils/misc/guc_tables.c:707 +#: utils/misc/guc_tables.c:724 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "統計情報 / 問い合わせとインデックスの累積統計情報" -#: utils/misc/guc_tables.c:708 -msgid "Autovacuum" -msgstr "自動VACUUM" +#: utils/misc/guc_tables.c:725 +msgid "Vacuuming / Automatic Vacuuming" +msgstr "VACUUM / 自動VACUUM" -#: utils/misc/guc_tables.c:709 +#: utils/misc/guc_tables.c:726 +msgid "Vacuuming / Cost-Based Vacuum Delay" +msgstr "VACUUM / コストベースVACUUM遅延" + +#: utils/misc/guc_tables.c:727 +msgid "Vacuuming / Default Behavior" +msgstr "VACUUM / デフォルト動作" + +#: utils/misc/guc_tables.c:728 +msgid "Vacuuming / Freezing" +msgstr "VACUUM / 凍結" + +#: utils/misc/guc_tables.c:729 msgid "Client Connection Defaults / Statement Behavior" msgstr "クライアント接続のデフォルト設定 / 文の振舞い" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:730 msgid "Client Connection Defaults / Locale and Formatting" msgstr "クライアント接続のデフォルト設定 / ロケールと整形" -#: utils/misc/guc_tables.c:711 +#: utils/misc/guc_tables.c:731 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "クライアント接続のデフォルト設定 / ライブラリの事前読み込み" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:732 msgid "Client Connection Defaults / Other Defaults" msgstr "クライアント接続のデフォルト設定 / その他のデフォルト設定" -#: utils/misc/guc_tables.c:713 +#: utils/misc/guc_tables.c:733 msgid "Lock Management" msgstr "ロック管理" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:734 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "バージョンおよびプラットフォーム間の互換性 / PostgreSQLの以前のバージョン" -#: utils/misc/guc_tables.c:715 +#: utils/misc/guc_tables.c:735 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "バージョンおよびプラットフォーム間の互換性 / 他のプラットフォームおよびクライアント" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:736 msgid "Error Handling" msgstr "エラーハンドリング" -#: utils/misc/guc_tables.c:717 +#: utils/misc/guc_tables.c:737 msgid "Preset Options" msgstr "事前設定オプション" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:738 msgid "Customized Options" msgstr "独自オプション" -#: utils/misc/guc_tables.c:719 +#: utils/misc/guc_tables.c:739 msgid "Developer Options" msgstr "開発者向けオプション" -#: utils/misc/guc_tables.c:774 +#: utils/misc/guc_tables.c:794 msgid "Enables the planner's use of sequential-scan plans." msgstr "プランナでのシーケンシャルスキャンプランの使用を有効にします。" -#: utils/misc/guc_tables.c:784 +#: utils/misc/guc_tables.c:804 msgid "Enables the planner's use of index-scan plans." msgstr "プランナでのインデックススキャンプランの使用を有効にします。" -#: utils/misc/guc_tables.c:794 +#: utils/misc/guc_tables.c:814 msgid "Enables the planner's use of index-only-scan plans." msgstr "プランナでのインデックスオンリースキャンプランの使用を有効にします。" -#: utils/misc/guc_tables.c:804 +#: utils/misc/guc_tables.c:824 msgid "Enables the planner's use of bitmap-scan plans." msgstr "プランナでのビットマップスキャンプランの使用を有効にします。" -#: utils/misc/guc_tables.c:814 +#: utils/misc/guc_tables.c:834 msgid "Enables the planner's use of TID scan plans." msgstr "プランナでのTIDスキャンプランの使用を有効にします。" -#: utils/misc/guc_tables.c:824 +#: utils/misc/guc_tables.c:844 msgid "Enables the planner's use of explicit sort steps." msgstr "プランナでの明示的ソートの使用を有効にします。" -#: utils/misc/guc_tables.c:834 +#: utils/misc/guc_tables.c:854 msgid "Enables the planner's use of incremental sort steps." msgstr "プランナでの差分ソート処理の使用を有効にします。" -#: utils/misc/guc_tables.c:844 +#: utils/misc/guc_tables.c:864 msgid "Enables the planner's use of hashed aggregation plans." msgstr "プランナでのハッシュ集約プランの使用を有効にします。" -#: utils/misc/guc_tables.c:854 +#: utils/misc/guc_tables.c:874 msgid "Enables the planner's use of materialization." msgstr "プランナでの実体化の使用を有効にします。" -#: utils/misc/guc_tables.c:864 +#: utils/misc/guc_tables.c:884 msgid "Enables the planner's use of memoization." msgstr "プランナでのメモ化の使用を有効にします。" -#: utils/misc/guc_tables.c:874 +#: utils/misc/guc_tables.c:894 msgid "Enables the planner's use of nested-loop join plans." msgstr "プランナでのネストループジョインプランの使用を有効にします。" -#: utils/misc/guc_tables.c:884 +#: utils/misc/guc_tables.c:904 msgid "Enables the planner's use of merge join plans." msgstr "プランナでのマージジョインプランの使用を有効にします。" -#: utils/misc/guc_tables.c:894 +#: utils/misc/guc_tables.c:914 msgid "Enables the planner's use of hash join plans." msgstr "プランナでのハッシュジョインプランの使用を有効にします。" -#: utils/misc/guc_tables.c:904 +#: utils/misc/guc_tables.c:924 msgid "Enables the planner's use of gather merge plans." msgstr "プランナでのギャザーマージプランの使用を有効にします。" -#: utils/misc/guc_tables.c:914 +#: utils/misc/guc_tables.c:934 msgid "Enables partitionwise join." msgstr "パーティション単位ジョインを有効にします。" -#: utils/misc/guc_tables.c:924 +#: utils/misc/guc_tables.c:944 msgid "Enables partitionwise aggregation and grouping." msgstr "パーティション単位の集約およびグルーピングを有効にします。" -#: utils/misc/guc_tables.c:934 +#: utils/misc/guc_tables.c:954 msgid "Enables the planner's use of parallel append plans." msgstr "プランナでの並列アペンドプランの使用を有効にします。" -#: utils/misc/guc_tables.c:944 +#: utils/misc/guc_tables.c:964 msgid "Enables the planner's use of parallel hash plans." msgstr "プランナでの並列ハッシュプランの使用を有効にします。" -#: utils/misc/guc_tables.c:954 +#: utils/misc/guc_tables.c:974 msgid "Enables plan-time and execution-time partition pruning." msgstr "実行計画作成時および実行時のパーティション除外処理を有効にします。" -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:975 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "実行計画時と実行時の、クエリ中の条件とパーティション境界の比較に基づいたパーティション単位のスキャン除外処理を許可します。" -#: utils/misc/guc_tables.c:966 +#: utils/misc/guc_tables.c:986 msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." msgstr "プランナにおいてORDER BY / DISTINCT集約関数に対してソート済みの入力を供給する実行計画の生成を有効化します。" -#: utils/misc/guc_tables.c:969 +#: utils/misc/guc_tables.c:989 msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." msgstr "問い合わせプランナがORDER BY / DISTINCT句を使用する集約関数に対してソート済みの入力を供給する実行計画を生成することを許可します。無効にすると、実行時にソートが常に暗黙的に実行されるようになります。" -#: utils/misc/guc_tables.c:981 +#: utils/misc/guc_tables.c:1001 msgid "Enables the planner's use of async append plans." msgstr "プランナでの非同期アペンドプランの使用を有効にします。" -#: utils/misc/guc_tables.c:991 +#: utils/misc/guc_tables.c:1011 +msgid "Enables removal of unique self-joins." +msgstr "ユニークな自己結合の削除を有効にします。" + +#: utils/misc/guc_tables.c:1021 msgid "Enables reordering of GROUP BY keys." msgstr "GROUP BYキーによる再ソートを有効化します。" -#: utils/misc/guc_tables.c:1001 +#: utils/misc/guc_tables.c:1031 +msgid "Enables reordering of DISTINCT pathkeys." +msgstr "DISTINCTパスキーの順序変更を有効にします。" + +#: utils/misc/guc_tables.c:1041 msgid "Enables genetic query optimization." msgstr "遺伝的問い合わせ最適化を有効にします。" -#: utils/misc/guc_tables.c:1002 +#: utils/misc/guc_tables.c:1042 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "このアルゴリズムでは、全数探索を伴わずに行う実行計画の作成を試みます。" -#: utils/misc/guc_tables.c:1016 +#: utils/misc/guc_tables.c:1056 msgid "Shows whether the current user is a superuser." msgstr "現在のユーザーがスーパーユーザーかどうかを表示します。" -#: utils/misc/guc_tables.c:1031 +#: utils/misc/guc_tables.c:1071 msgid "Allows running the ALTER SYSTEM command." msgstr "ALTER SYSTEMコマンドの実行を許可します。" -#: utils/misc/guc_tables.c:1032 +#: utils/misc/guc_tables.c:1072 msgid "Can be set to off for environments where global configuration changes should be made using a different method." msgstr "グローバル設定の変更を他の方法で行うべき環境ではoffにすることができます。" -#: utils/misc/guc_tables.c:1042 +#: utils/misc/guc_tables.c:1082 msgid "Enables advertising the server via Bonjour." msgstr "Bonjour を経由したサーバーのアドバタイズを有効にします。" -#: utils/misc/guc_tables.c:1051 +#: utils/misc/guc_tables.c:1091 msgid "Collects transaction commit time." msgstr "トランザクションのコミット時刻を収集します。" -#: utils/misc/guc_tables.c:1060 +#: utils/misc/guc_tables.c:1100 msgid "Enables SSL connections." msgstr "SSL接続を有効にします。" -#: utils/misc/guc_tables.c:1069 +#: utils/misc/guc_tables.c:1109 msgid "Controls whether \"ssl_passphrase_command\" is called during server reload." msgstr "サーバーリロード時に\"ssl_passphrase_command\"を呼び出すかどうかを制御します。" -#: utils/misc/guc_tables.c:1078 +#: utils/misc/guc_tables.c:1118 msgid "Give priority to server ciphersuite order." msgstr "サーバー側の暗号スイート順序を優先します。" -#: utils/misc/guc_tables.c:1087 +#: utils/misc/guc_tables.c:1127 msgid "Forces synchronization of updates to disk." msgstr "強制的に更新をディスクに同期します。" -#: utils/misc/guc_tables.c:1088 +#: utils/misc/guc_tables.c:1128 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "サーバーは、確実に更新が物理的にディスクに書き込まれるように複数の場所でfsync()システムコールを使用します。これにより、オペレーティングシステムやハードウェアがクラッシュした後でもデータベースクラスタは一貫した状態に復旧することができます。" -#: utils/misc/guc_tables.c:1099 +#: utils/misc/guc_tables.c:1139 msgid "Continues processing after a checksum failure." msgstr "チェックサムエラーの発生時に処理を継続します。" -#: utils/misc/guc_tables.c:1100 +#: utils/misc/guc_tables.c:1140 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "チェックサムエラーを検知すると、通常PostgreSQLはエラーの報告を行ない、現在のトランザクションを中断させます。ignore_checksum_failureを真に設定することによりエラーを無視します(代わりに警告を報告します)この動作はクラッシュや他の深刻な問題を引き起こすかもしれません。チェックサムが有効な場合にのみ効果があります。" -#: utils/misc/guc_tables.c:1114 +#: utils/misc/guc_tables.c:1154 msgid "Continues processing past damaged page headers." msgstr "破損したページヘッダがあっても処理を継続します。" -#: utils/misc/guc_tables.c:1115 +#: utils/misc/guc_tables.c:1155 msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting \"zero_damaged_pages\" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." msgstr "ページヘッダの障害が検出されると、通常PostgreSQLはエラーの報告を行ない、現在のトランザクションを中断させます。\"zero_damaged_pages\"をtrueに設定することにより、システムは代わりに警告を報告し、障害のあるページをゼロで埋め、処理を継続します。 この動作により、障害のあったページ上にある全ての行のデータが破壊されます。" -#: utils/misc/guc_tables.c:1128 +#: utils/misc/guc_tables.c:1168 msgid "Continues recovery after an invalid pages failure." msgstr "不正ページエラーの発生時に処理を継続します。" -#: utils/misc/guc_tables.c:1129 +#: utils/misc/guc_tables.c:1169 msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." msgstr "リカバリ中に不正なページへの参照を行うWALレコードを検出した場合、PostgreSQLはPANICレベルのエラーを出力してリカバリを中断します。”ignore_invalid_pages\"をtrueに設定するとシステムはWALレコード中の不正なページへの参照を無視してリカバリを継続します(ただし、引き続き警告は出力します)。この挙動はクラッシュ、データ損失、破壊の伝播ないしは隠蔽または他の深刻な問題を引き起こします。リカバリモードもしくはスタンバイモードでのみ有効となります。" -#: utils/misc/guc_tables.c:1147 +#: utils/misc/guc_tables.c:1187 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "チェックポイントの後最初に変更された際にページ全体をWALに出力します。" -#: utils/misc/guc_tables.c:1148 +#: utils/misc/guc_tables.c:1188 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." msgstr "ページ書き込み処理中にオペレーティングシステムがクラッシュすると、ディスクへの書き込みが一部分のみ行われる可能性があります。リカバリでは、WALに保存された行の変更だけでは完全に復旧させることができません。このオプションにより、チェックポイントの後の最初の更新時にWALにページを出力するため、完全な復旧が可能になります。" -#: utils/misc/guc_tables.c:1161 +#: utils/misc/guc_tables.c:1201 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." msgstr "チェックポイントの後最初に更新された時に、重要な更新ではなくてもページ全体をWALに書き出します。" -#: utils/misc/guc_tables.c:1171 +#: utils/misc/guc_tables.c:1211 msgid "Writes zeroes to new WAL files before first use." msgstr "新しいWALファイルの使用前にゼロを書き込みます。" -#: utils/misc/guc_tables.c:1181 +#: utils/misc/guc_tables.c:1221 msgid "Recycles WAL files by renaming them." msgstr "WALファイルを名前を変更して再利用します。" -#: utils/misc/guc_tables.c:1191 +#: utils/misc/guc_tables.c:1231 msgid "Logs each checkpoint." msgstr "チェックポイントをログに記録します。" -#: utils/misc/guc_tables.c:1200 -msgid "Logs each successful connection." -msgstr "成功した接続を全てログに記録します。" - -#: utils/misc/guc_tables.c:1209 +#: utils/misc/guc_tables.c:1240 msgid "Logs details of pre-authentication connection handshake." msgstr "認証前接続ハンドシェークの詳細をログに出力します。" -#: utils/misc/guc_tables.c:1219 +#: utils/misc/guc_tables.c:1250 msgid "Logs end of a session, including duration." msgstr "セッションの終了時刻とその期間をログに記録します。" -#: utils/misc/guc_tables.c:1228 +#: utils/misc/guc_tables.c:1259 msgid "Logs each replication command." msgstr "各レプリケーションコマンドをログに記録します。" -#: utils/misc/guc_tables.c:1237 +#: utils/misc/guc_tables.c:1268 msgid "Shows whether the running server has assertion checks enabled." msgstr "起動中のサーバーがアサーションチェックを有効にしているかどうかを表示します。" -#: utils/misc/guc_tables.c:1248 +#: utils/misc/guc_tables.c:1279 msgid "Terminate session on any error." msgstr "何からのエラーがあればセッションを終了します" -#: utils/misc/guc_tables.c:1257 +#: utils/misc/guc_tables.c:1288 msgid "Reinitialize server after backend crash." msgstr "バックエンドがクラッシュした後サーバーを再初期化します" -#: utils/misc/guc_tables.c:1266 +#: utils/misc/guc_tables.c:1297 msgid "Remove temporary files after backend crash." msgstr "バックエンドのクラッシュ後に一時ファイルを削除します。" -#: utils/misc/guc_tables.c:1276 +#: utils/misc/guc_tables.c:1307 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "バックエンドのクラッシュ後にSIGQUITではなくSIGABRTを子プロセスに送信します。" -#: utils/misc/guc_tables.c:1286 +#: utils/misc/guc_tables.c:1317 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "固まっているプロセスにSIGKILLではなくSIGABRTを送信します。" -#: utils/misc/guc_tables.c:1297 +#: utils/misc/guc_tables.c:1328 msgid "Logs the duration of each completed SQL statement." msgstr "完了したSQL全ての実行時間をログに記録します。" -#: utils/misc/guc_tables.c:1306 +#: utils/misc/guc_tables.c:1338 +msgid "Set this to force all parse and plan trees to be passed through copyObject(), to facilitate catching errors and omissions in copyObject()." +msgstr "これを設定すると、すべてのパースおよび実行計画ツリーがcopyObject()を通過するようになり、copyObject()でのエラーや処理漏れを検出しやすくします。" + +#: utils/misc/guc_tables.c:1355 +msgid "Set this to force all parse and plan trees to be passed through outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in those modules." +msgstr "これを設定すると、すべてのパースおよび実行計画ツリーがoutfuncs.c/readfuncs.cを通過するようになり、これらのモジュールでのエラーや処理漏れを検出しやすくします。" + +#: utils/misc/guc_tables.c:1372 +msgid "Set this to force all raw parse trees for DML statements to be scanned by raw_expression_tree_walker(), to facilitate catching errors and omissions in that function." +msgstr "これを設定すると、DML文のすべての未処理のパースツリーがraw_expression_tree_walker()でスキャンされ、この関数でのエラーや処理漏れを検出しやすくします。" + +#: utils/misc/guc_tables.c:1390 msgid "Logs each query's parse tree." msgstr "問い合わせのパースツリーをログに記録します。" -#: utils/misc/guc_tables.c:1315 +#: utils/misc/guc_tables.c:1399 msgid "Logs each query's rewritten parse tree." msgstr "リライト後の問い合わせのパースツリーをログに記録します。" -#: utils/misc/guc_tables.c:1324 +#: utils/misc/guc_tables.c:1408 msgid "Logs each query's execution plan." msgstr "問い合わせの実行計画をログに記録します。" -#: utils/misc/guc_tables.c:1333 +#: utils/misc/guc_tables.c:1417 msgid "Indents parse and plan tree displays." msgstr "パースツリーと実行計画ツリーの表示をインデントします。" -#: utils/misc/guc_tables.c:1342 +#: utils/misc/guc_tables.c:1426 msgid "Writes parser performance statistics to the server log." msgstr "パーサの性能統計情報をサーバーログに出力します。" -#: utils/misc/guc_tables.c:1351 +#: utils/misc/guc_tables.c:1435 msgid "Writes planner performance statistics to the server log." msgstr "プランナの性能統計情報をサーバーログに出力します。" -#: utils/misc/guc_tables.c:1360 +#: utils/misc/guc_tables.c:1444 msgid "Writes executor performance statistics to the server log." msgstr "エグゼキュータの性能統計情報をサーバーログに出力します。" -#: utils/misc/guc_tables.c:1369 +#: utils/misc/guc_tables.c:1453 msgid "Writes cumulative performance statistics to the server log." msgstr "累積の性能統計情報をサーバーログに出力します。" -#: utils/misc/guc_tables.c:1379 +#: utils/misc/guc_tables.c:1463 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "B-treeの各種操作に関するシステムリソース(メモリとCPU)の使用統計をログに記録します。" -#: utils/misc/guc_tables.c:1391 +#: utils/misc/guc_tables.c:1475 msgid "Collects information about executing commands." msgstr "実行中のコマンドに関する情報を収集します。" -#: utils/misc/guc_tables.c:1392 +#: utils/misc/guc_tables.c:1476 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "そのコマンドが実行を開始した時刻を伴った、各セッションでの現時点で実行中のコマンドに関する情報の収集を有効にします。" -#: utils/misc/guc_tables.c:1402 +#: utils/misc/guc_tables.c:1486 msgid "Collects statistics on database activity." msgstr "データベースの活動について統計情報を収集します。" -#: utils/misc/guc_tables.c:1411 +#: utils/misc/guc_tables.c:1495 +msgid "Collects timing statistics for cost-based vacuum delay." +msgstr "コストベースのVACUUM遅延に関する時間統計を収集します。" + +#: utils/misc/guc_tables.c:1504 msgid "Collects timing statistics for database I/O activity." msgstr "データベースのI/O処理時間に関する統計情報を収集します。" -#: utils/misc/guc_tables.c:1420 +#: utils/misc/guc_tables.c:1513 msgid "Collects timing statistics for WAL I/O activity." msgstr "WALのI/O処理時間に関する統計情報を収集します。" -#: utils/misc/guc_tables.c:1430 +#: utils/misc/guc_tables.c:1523 msgid "Updates the process title to show the active SQL command." msgstr "活動中のSQLコマンドを表示するようプロセスタイトルを更新します。" -#: utils/misc/guc_tables.c:1431 +#: utils/misc/guc_tables.c:1524 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "新しいSQLコマンドをサーバーが受信する度に行うプロセスタイトルの更新を有効にします。" -#: utils/misc/guc_tables.c:1440 +#: utils/misc/guc_tables.c:1533 msgid "Starts the autovacuum subprocess." msgstr "autovacuumサブプロセスを起動します。" -#: utils/misc/guc_tables.c:1450 +#: utils/misc/guc_tables.c:1543 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "LISTENとNOTIFYコマンドのためのデバッグ出力を生成します。" -#: utils/misc/guc_tables.c:1462 +#: utils/misc/guc_tables.c:1555 msgid "Emits information about lock usage." msgstr "ロック使用状況に関する情報を出力します。" -#: utils/misc/guc_tables.c:1472 +#: utils/misc/guc_tables.c:1565 msgid "Emits information about user lock usage." msgstr "ユーザーロックの使用状況に関する情報を出力します。" -#: utils/misc/guc_tables.c:1482 +#: utils/misc/guc_tables.c:1575 msgid "Emits information about lightweight lock usage." msgstr "軽量ロックの使用状況に関する情報を出力します。" -#: utils/misc/guc_tables.c:1492 +#: utils/misc/guc_tables.c:1585 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "デッドロックの発生時点の全てのロックについての情報をダンプします。" -#: utils/misc/guc_tables.c:1504 +#: utils/misc/guc_tables.c:1597 msgid "Logs long lock waits." msgstr "長時間のロック待機をログに記録します。" -#: utils/misc/guc_tables.c:1513 +#: utils/misc/guc_tables.c:1606 +msgid "Logs lock failures." +msgstr "ロックの失敗をログ出力します。" + +#: utils/misc/guc_tables.c:1615 msgid "Logs standby recovery conflict waits." msgstr "スタンバイのリカバリ衝突による待機をログ出力します。" -#: utils/misc/guc_tables.c:1522 +#: utils/misc/guc_tables.c:1624 msgid "Logs the host name in the connection logs." msgstr "接続ログ内でホスト名を出力します。" -#: utils/misc/guc_tables.c:1523 +#: utils/misc/guc_tables.c:1625 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "デフォルトでは、接続ログメッセージには接続ホストのIPアドレスのみが表示されます。 このオプションを有効にすることで、ホスト名もログに表示されるようになります。 ホスト名解決の設定によってはで、無視できないほどの性能の悪化が起きうることに注意してください。" -#: utils/misc/guc_tables.c:1534 +#: utils/misc/guc_tables.c:1636 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "\"expr=NULL\"という形の式は\"expr IS NULL\"として扱います。" -#: utils/misc/guc_tables.c:1535 +#: utils/misc/guc_tables.c:1637 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "有効にした場合、expr = NULL(またはNULL = expr)という形の式はexpr IS NULLとして扱われます。つまり、exprの評価がNULL値の場合に真を、さもなくば偽を返します。expr = NULLのSQL仕様に基づいた正しい動作は常にNULL(未知)を返すことです。" -#: utils/misc/guc_tables.c:1547 +#: utils/misc/guc_tables.c:1649 msgid "Sets the default read-only status of new transactions." msgstr "新しいトランザクションのリードオンリー設定のデフォルト値を設定。" -#: utils/misc/guc_tables.c:1557 +#: utils/misc/guc_tables.c:1659 msgid "Sets the current transaction's read-only status." msgstr "現在のトランザクションのリードオンリー設定を設定。" -#: utils/misc/guc_tables.c:1567 +#: utils/misc/guc_tables.c:1669 msgid "Sets the default deferrable status of new transactions." msgstr "新しいトランザクションの遅延可否設定のデフォルト値を設定。" -#: utils/misc/guc_tables.c:1576 +#: utils/misc/guc_tables.c:1678 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures." msgstr "リードオンリーのシリアライズ可能なトランザクションを、シリアライズに失敗することなく実行できるまで遅延させるかどうか" -#: utils/misc/guc_tables.c:1586 -msgid "Enable row security." +#: utils/misc/guc_tables.c:1688 +msgid "Enables row security." msgstr "行セキュリティを有効にします。" -#: utils/misc/guc_tables.c:1587 +#: utils/misc/guc_tables.c:1689 msgid "When enabled, row security will be applied to all users." msgstr "有効にすると、行セキュリティが全てのユーザーに適用されます。" -#: utils/misc/guc_tables.c:1595 +#: utils/misc/guc_tables.c:1697 msgid "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE." msgstr "CREATE FUNCTIONおよびCREATE PROCEDUREにおいて関数本体を検査します。" -#: utils/misc/guc_tables.c:1604 -msgid "Enable input of NULL elements in arrays." +#: utils/misc/guc_tables.c:1706 +msgid "Enables input of NULL elements in arrays." msgstr "配列内のNULL要素入力を有効化。" -#: utils/misc/guc_tables.c:1605 +#: utils/misc/guc_tables.c:1707 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally." msgstr "有効にすると、配列入力値における引用符のないNULLはNULL値を意味するようになります。さもなくば文字通りに解釈されます。" -#: utils/misc/guc_tables.c:1621 +#: utils/misc/guc_tables.c:1723 msgid "WITH OIDS is no longer supported; this can only be false." msgstr "WITH OIDS は今後サポートされません; false のみに設定可能です。" -#: utils/misc/guc_tables.c:1631 -msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." -msgstr "標準エラー出力、CSVログ、またはその両方をログファイルに捕捉するための子プロセスを開始します。" +#: utils/misc/guc_tables.c:1733 +msgid "Start a subprocess to capture stderr, csvlog and/or jsonlog into log files." +msgstr "標準エラー出力、CSVログ、および/またはJSONログをログファイルに記録するための子プロセスを開始します。" -#: utils/misc/guc_tables.c:1640 +#: utils/misc/guc_tables.c:1742 msgid "Truncate existing log files of same name during log rotation." msgstr "ログローテーション時に既存の同一名称のログファイルを切り詰めます。" -#: utils/misc/guc_tables.c:1651 +#: utils/misc/guc_tables.c:1752 msgid "Emit information about resource usage in sorting." msgstr "ソート中にリソース使用状況に関する情報を出力します。" -#: utils/misc/guc_tables.c:1665 +#: utils/misc/guc_tables.c:1765 msgid "Generate debugging output for synchronized scanning." msgstr "同期スキャン処理のデバッグ出力を生成します。" -#: utils/misc/guc_tables.c:1680 -msgid "Enable bounded sorting using heap sort." -msgstr "ヒープソートを使用した境界のソート処理を有効にします" +#: utils/misc/guc_tables.c:1780 +msgid "Enables bounded sorting using heap sort." +msgstr "ヒープソートを使用した有界ソート処理を有効にします。" -#: utils/misc/guc_tables.c:1693 +#: utils/misc/guc_tables.c:1793 msgid "Emit WAL-related debugging output." msgstr "WAL関連のデバッグ出力を出力します。" -#: utils/misc/guc_tables.c:1705 +#: utils/misc/guc_tables.c:1805 msgid "Shows whether datetimes are integer based." msgstr "日付時刻が整数ベースかどうかを表示します。" -#: utils/misc/guc_tables.c:1716 +#: utils/misc/guc_tables.c:1816 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive." msgstr "KerberosおよびGSSAPIユーザー名を大文字小文字を区別して扱うかどうかを設定します。" -#: utils/misc/guc_tables.c:1726 +#: utils/misc/guc_tables.c:1826 msgid "Sets whether GSSAPI delegation should be accepted from the client." msgstr "GSSAPI資格証明委任をクライアントから受け付けるかどかを設定します。" -#: utils/misc/guc_tables.c:1736 +#: utils/misc/guc_tables.c:1836 msgid "Warn about backslash escapes in ordinary string literals." msgstr "普通の文字列リテラル内のバックスラッシュエスケープを警告します。" -#: utils/misc/guc_tables.c:1746 +#: utils/misc/guc_tables.c:1846 msgid "Causes '...' strings to treat backslashes literally." msgstr "'...' 文字列はバックスラッシュをそのまま扱います。" -#: utils/misc/guc_tables.c:1757 -msgid "Enable synchronized sequential scans." +#: utils/misc/guc_tables.c:1857 +msgid "Enables synchronized sequential scans." msgstr "同期シーケンシャルスキャンを有効にします。" -#: utils/misc/guc_tables.c:1767 +#: utils/misc/guc_tables.c:1867 msgid "Sets whether to include or exclude transaction with recovery target." msgstr "リカバリ目標のトランザクションを含めるか除外するかを設定。" -#: utils/misc/guc_tables.c:1777 +#: utils/misc/guc_tables.c:1877 msgid "Starts the WAL summarizer process to enable incremental backup." msgstr "差分バックアップを可能にするためのWAL集約プロセスを起動します。" -#: utils/misc/guc_tables.c:1787 +#: utils/misc/guc_tables.c:1887 msgid "Allows connections and queries during recovery." msgstr "リカバリ中でも接続と問い合わせを受け付けます" -#: utils/misc/guc_tables.c:1797 +#: utils/misc/guc_tables.c:1897 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "問い合わせの衝突を避けるためのホットスタンバイからプライマリへのフィードバックを受け付けます" -#: utils/misc/guc_tables.c:1807 +#: utils/misc/guc_tables.c:1907 msgid "Shows whether hot standby is currently active." msgstr "現在ホットスタンバイが有効であるかどうかを示します。" -#: utils/misc/guc_tables.c:1818 +#: utils/misc/guc_tables.c:1918 msgid "Allows modifications of the structure of system tables." msgstr "システムテーブル構造の変更を許可。" -#: utils/misc/guc_tables.c:1829 +#: utils/misc/guc_tables.c:1929 msgid "Disables reading from system indexes." msgstr "システムインデックスの読み込みを無効にします。" -#: utils/misc/guc_tables.c:1830 +#: utils/misc/guc_tables.c:1930 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "これはインデックスの更新は妨げないため使用しても安全です。最も大きな悪影響は低速化です。" -#: utils/misc/guc_tables.c:1841 +#: utils/misc/guc_tables.c:1941 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "pg_tblspc直下のテーブル空間を許可します、テスト用。" -#: utils/misc/guc_tables.c:1852 +#: utils/misc/guc_tables.c:1952 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "ラージオブジェクトで権限チェックを行う際、後方互換性モードを有効にします。" -#: utils/misc/guc_tables.c:1853 +#: utils/misc/guc_tables.c:1953 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "9.0 より前のPostgreSQLとの互換のため、ラージオブジェクトを読んだり変更したりする際に権限チェックをスキップする。" -#: utils/misc/guc_tables.c:1863 +#: utils/misc/guc_tables.c:1963 msgid "When generating SQL fragments, quote all identifiers." msgstr "SQL文を生成する時に、すべての識別子を引用符で囲みます。" -#: utils/misc/guc_tables.c:1873 +#: utils/misc/guc_tables.c:1973 msgid "Shows whether data checksums are turned on for this cluster." msgstr "データチェックサムがこのクラスタで有効になっているかどうかを表示します。" -#: utils/misc/guc_tables.c:1884 +#: utils/misc/guc_tables.c:1984 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "シーケンス番号を付加することでsyslogメッセージの重複を防ぎます。" -#: utils/misc/guc_tables.c:1894 +#: utils/misc/guc_tables.c:1994 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "syslogに送出するメッセージを行単位で分割して、1024バイトに収まるようにします。" -#: utils/misc/guc_tables.c:1904 +#: utils/misc/guc_tables.c:2004 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Gather および Gather Merge でも下位プランを実行するかどうかを制御します。" -#: utils/misc/guc_tables.c:1905 +#: utils/misc/guc_tables.c:2005 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "Gather ノードでも下位プランを実行するのか、もしくはただタプルの収集のみを行うのか?" -#: utils/misc/guc_tables.c:1915 +#: utils/misc/guc_tables.c:2015 msgid "Allow JIT compilation." msgstr "JITコンパイルを許可します。" -#: utils/misc/guc_tables.c:1926 +#: utils/misc/guc_tables.c:2026 msgid "Register JIT-compiled functions with debugger." msgstr "JITコンパイルされた関数をデバッガに登録します。" -#: utils/misc/guc_tables.c:1943 +#: utils/misc/guc_tables.c:2043 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "LLVMビットコードを出力して、JITデバッグを容易にします。" -#: utils/misc/guc_tables.c:1954 +#: utils/misc/guc_tables.c:2054 msgid "Allow JIT compilation of expressions." msgstr "式のJITコンパイルを許可します。" -#: utils/misc/guc_tables.c:1965 +#: utils/misc/guc_tables.c:2065 msgid "Register JIT-compiled functions with perf profiler." msgstr "perfプロファイラにJITコンパイルされた関数を登録します。" -#: utils/misc/guc_tables.c:1982 +#: utils/misc/guc_tables.c:2082 msgid "Allow JIT compilation of tuple deforming." msgstr "タプル分解処理のJITコンパイルを許可します。" -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2093 msgid "Whether to continue running after a failure to sync data files." msgstr "データファイルの同期失敗の後に処理を継続するかどうか。" -#: utils/misc/guc_tables.c:2002 +#: utils/misc/guc_tables.c:2102 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "永続レプリケーションスロットがない場合にWALレシーバが一時スロットを作成するかどうかを設定します。" -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2111 msgid "Enables event triggers." msgstr "イベントトリガを有効にします。" -#: utils/misc/guc_tables.c:2012 +#: utils/misc/guc_tables.c:2112 msgid "When enabled, event triggers will fire for all applicable statements." msgstr "有効にすると、イベントトリガは適用可能なすべての文に対して発火します。" -#: utils/misc/guc_tables.c:2021 -msgid "Enables a physical standby to synchronize logical failover slots from the primary server." -msgstr "物理スタンバイがプライマリサーバーの論理フェイルオーバースロットを同期できるようにする。" +#: utils/misc/guc_tables.c:2121 +msgid "Enables a physical standby to synchronize logical failover replication slots from the primary server." +msgstr "物理スタンバイがプライマリサーバーから論理フェイルオーバーレプリケーションスロットを同期できるようにする。" -#: utils/misc/guc_tables.c:2039 +#: utils/misc/guc_tables.c:2130 +msgid "Enables deprecation warnings for MD5 passwords." +msgstr "MD5パスワードの非推奨警告を有効にする。" + +#: utils/misc/guc_tables.c:2139 +msgid "Enables vacuum to truncate empty pages at the end of the table." +msgstr "VACUUMの際にテーブル末尾の空のページを切り詰めるようにします。" + +#: utils/misc/guc_tables.c:2157 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "次のWALへの強制切り替え時間を設定します。" -#: utils/misc/guc_tables.c:2050 +#: utils/misc/guc_tables.c:2159 utils/misc/guc_tables.c:2313 utils/misc/guc_tables.c:2732 utils/misc/guc_tables.c:2743 utils/misc/guc_tables.c:2754 utils/misc/guc_tables.c:2765 utils/misc/guc_tables.c:2776 +msgid "0 disables the timeout." +msgstr "0でこのタイムアウトを無効にします。" + +#: utils/misc/guc_tables.c:2168 msgid "Sets the amount of time to wait after authentication on connection startup." msgstr "接続開始時の認証後の待ち時間を設定します。" -#: utils/misc/guc_tables.c:2052 utils/misc/guc_tables.c:2774 +#: utils/misc/guc_tables.c:2170 utils/misc/guc_tables.c:2908 msgid "This allows attaching a debugger to the process." msgstr "これによりデバッガがプロセスに接続できます。" -#: utils/misc/guc_tables.c:2061 +#: utils/misc/guc_tables.c:2179 msgid "Sets the default statistics target." msgstr "デフォルトの統計情報収集目標を設定。" -#: utils/misc/guc_tables.c:2062 +#: utils/misc/guc_tables.c:2180 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "ALTER TABLE SET STATISTICS経由で列固有の目標値を持たないテーブル列についての統計情報収集目標を設定します。" -#: utils/misc/guc_tables.c:2071 +#: utils/misc/guc_tables.c:2189 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "副問い合わせを展開する上限のFROMリストのサイズを設定。" -#: utils/misc/guc_tables.c:2073 +#: utils/misc/guc_tables.c:2191 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "最終的なFROMリストがこの値より多くの要素を持たない時に、プランナは副問い合わせを上位問い合わせにマージします。" -#: utils/misc/guc_tables.c:2084 +#: utils/misc/guc_tables.c:2202 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "JOIN式を平坦化する上限のFROMリストのサイズを設定。" -#: utils/misc/guc_tables.c:2086 +#: utils/misc/guc_tables.c:2204 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "最終的にFROMリストの項目数がこの値を超えない時には常に、プランナは明示的なJOIN構文をFROM項目のリストに組み込みます。" -#: utils/misc/guc_tables.c:2097 +#: utils/misc/guc_tables.c:2215 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "この数を超えるとGEQOを使用するFROM項目数の閾値を設定。" -#: utils/misc/guc_tables.c:2107 +#: utils/misc/guc_tables.c:2225 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: effortは他のGEQOパラメータのデフォルトを設定するために使用されます。" -#: utils/misc/guc_tables.c:2117 +#: utils/misc/guc_tables.c:2235 msgid "GEQO: number of individuals in the population." msgstr "GEQO: 集団内の個体数。" -#: utils/misc/guc_tables.c:2118 utils/misc/guc_tables.c:2128 -msgid "Zero selects a suitable default value." +#: utils/misc/guc_tables.c:2236 utils/misc/guc_tables.c:2246 +msgid "0 means use a suitable default value." msgstr "0は適切なデフォルト値を選択します。" -#: utils/misc/guc_tables.c:2127 +#: utils/misc/guc_tables.c:2245 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: アルゴリズムの反復回数です。" -#: utils/misc/guc_tables.c:2139 +#: utils/misc/guc_tables.c:2257 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "デッドロック状態があるかどうかを調べる前にロックを待つ時間を設定。" -#: utils/misc/guc_tables.c:2150 +#: utils/misc/guc_tables.c:2268 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "ホットスタンバイサーバーがアーカイブされた WAL データを処理している場合は、問い合わせをキャンセルする前に遅延秒数の最大値を設定。" -#: utils/misc/guc_tables.c:2161 +#: utils/misc/guc_tables.c:2269 utils/misc/guc_tables.c:2280 +msgid "-1 means wait forever." +msgstr "-1は無期限を意味します。" + +#: utils/misc/guc_tables.c:2279 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "ホットスタンバイサーバーがストリームの WAL データを処理している場合は、問い合わせをキャンセルする前に遅延秒数の最大値を設定。" -#: utils/misc/guc_tables.c:2172 +#: utils/misc/guc_tables.c:2290 msgid "Sets the minimum delay for applying changes during recovery." msgstr "リカバリ中の変更の適用の最小遅延時間を設定します。" -#: utils/misc/guc_tables.c:2183 +#: utils/misc/guc_tables.c:2301 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "WAL受信プロセスが送出側サーバーへ行う状況報告の最大間隔を設定。" -#: utils/misc/guc_tables.c:2194 +#: utils/misc/guc_tables.c:2312 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "送出側サーバーからのデータ受信を待機する最長時間を設定。" -#: utils/misc/guc_tables.c:2205 +#: utils/misc/guc_tables.c:2323 msgid "Sets the maximum number of concurrent connections." msgstr "同時接続数の最大値を設定。" -#: utils/misc/guc_tables.c:2216 +#: utils/misc/guc_tables.c:2334 msgid "Sets the number of connection slots reserved for superusers." msgstr "スーパーユーザーによる接続用に予約される接続スロットの数を設定。" -#: utils/misc/guc_tables.c:2226 +#: utils/misc/guc_tables.c:2344 msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." msgstr "pg_use_reserved_connections権限を持つロールのために予約する接続スロットの数を設定。" -#: utils/misc/guc_tables.c:2237 +#: utils/misc/guc_tables.c:2355 msgid "Amount of dynamic shared memory reserved at startup." msgstr "起動時に予約される動的共有メモリの量。" -#: utils/misc/guc_tables.c:2252 +#: utils/misc/guc_tables.c:2370 msgid "Sets the number of shared memory buffers used by the server." msgstr "サーバーで使用される共有メモリのバッファ数を設定。" -#: utils/misc/guc_tables.c:2263 +#: utils/misc/guc_tables.c:2381 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "VACUUM, ANALYZE, および自動VACUUMで使用するバッファプールのサイズを設定します。" -#: utils/misc/guc_tables.c:2274 +#: utils/misc/guc_tables.c:2392 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "サーバーの主共有メモリ領域のサイズを表示します(MB単位に切り上げられます)" -#: utils/misc/guc_tables.c:2285 +#: utils/misc/guc_tables.c:2403 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "主共有メモリ領域に必要となるヒュージページの数を表示します。" -#: utils/misc/guc_tables.c:2286 -msgid "-1 indicates that the value could not be determined." -msgstr "-1はこの値が確定できなかったことを示します。" +#: utils/misc/guc_tables.c:2404 +msgid "-1 means huge pages are not supported." +msgstr "-1はヒュージページがサポートされていないことを示します。" + +#: utils/misc/guc_tables.c:2414 +msgid "Shows the number of semaphores required for the server." +msgstr "サーバーで必要となるセマフォの数を表示。" -#: utils/misc/guc_tables.c:2296 +#: utils/misc/guc_tables.c:2425 msgid "Sets the size of the dedicated buffer pool used for the commit timestamp cache." msgstr "コミットタイムスタンプのキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2297 utils/misc/guc_tables.c:2352 utils/misc/guc_tables.c:2363 -msgid "Specify 0 to have this value determined as a fraction of shared_buffers." -msgstr "0を指定するとこの値がshared_buffersに対する比率で決定されます。" +#: utils/misc/guc_tables.c:2426 utils/misc/guc_tables.c:2481 utils/misc/guc_tables.c:2492 +msgid "0 means use a fraction of \"shared_buffers\"." +msgstr "0で\"shared_buffers\"の一部を使用します。" -#: utils/misc/guc_tables.c:2307 +#: utils/misc/guc_tables.c:2436 msgid "Sets the size of the dedicated buffer pool used for the MultiXact member cache." msgstr "マルチトランザクションメンバーのキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2318 +#: utils/misc/guc_tables.c:2447 msgid "Sets the size of the dedicated buffer pool used for the MultiXact offset cache." msgstr "マルチトランザクションオフセットのキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2329 +#: utils/misc/guc_tables.c:2458 msgid "Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache." msgstr "LISTEN/NOTIFYのメッセージキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2340 +#: utils/misc/guc_tables.c:2469 msgid "Sets the size of the dedicated buffer pool used for the serializable transaction cache." msgstr "直列化可能トランザクションのキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2351 -msgid "Sets the size of the dedicated buffer pool used for the sub-transaction cache." -msgstr "サブトランザクションのキャッシュで専有するバッファプールのサイズを設定する。" +#: utils/misc/guc_tables.c:2480 +msgid "Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "サブトランザクションキャッシュ専用のバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2362 +#: utils/misc/guc_tables.c:2491 msgid "Sets the size of the dedicated buffer pool used for the transaction status cache." msgstr "トランザクション状態のキャッシュで専有するバッファプールのサイズを設定する。" -#: utils/misc/guc_tables.c:2373 +#: utils/misc/guc_tables.c:2502 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "各セッションで使用される一時バッファの最大数を設定。" -#: utils/misc/guc_tables.c:2384 +#: utils/misc/guc_tables.c:2513 msgid "Sets the TCP port the server listens on." msgstr "サーバーが接続を監視するTCPポートを設定。" -#: utils/misc/guc_tables.c:2394 +#: utils/misc/guc_tables.c:2523 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Unixドメインソケットのアクセス権限を設定。" -#: utils/misc/guc_tables.c:2395 +#: utils/misc/guc_tables.c:2524 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Unixドメインソケットは、通常のUnixファイルシステム権限の設定を使います。 このパラメータ値は chmod と umask システムコールが受け付ける数値のモード指定を想定しています(慣習的な8進数書式を使うためには、0(ゼロ)で始めなくてはなりません)。 " -#: utils/misc/guc_tables.c:2409 +#: utils/misc/guc_tables.c:2538 msgid "Sets the file permissions for log files." msgstr "ログファイルのパーミッションを設定。" -#: utils/misc/guc_tables.c:2410 +#: utils/misc/guc_tables.c:2539 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "このパタメータ値は chmod や umask システムコールで使えるような数値モード指定であることが想定されます(慣習的な記法である8進数書式を使う場合は先頭に0(ゼロ) をつけてください)。 " -#: utils/misc/guc_tables.c:2424 +#: utils/misc/guc_tables.c:2553 msgid "Shows the mode of the data directory." msgstr "データディレクトリのモードを表示します。" -#: utils/misc/guc_tables.c:2425 +#: utils/misc/guc_tables.c:2554 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "このパタメータ値は chmod や umask システムコールが受け付ける数値形式のモード指定です(慣習的な8進形式を使う場合は先頭に0(ゼロ) をつけてください)。 " -#: utils/misc/guc_tables.c:2438 +#: utils/misc/guc_tables.c:2567 msgid "Sets the maximum memory to be used for query workspaces." msgstr "問い合わせの作業用空間として使用されるメモリの最大値を設定。" -#: utils/misc/guc_tables.c:2439 +#: utils/misc/guc_tables.c:2568 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "内部ソート操作とハッシュテーブルで使われるメモリの量がこの量に達した時に一時ディスクファイルへの切替えを行います。" -#: utils/misc/guc_tables.c:2451 +#: utils/misc/guc_tables.c:2585 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "保守作業で使用される最大メモリ量を設定。" -#: utils/misc/guc_tables.c:2452 +#: utils/misc/guc_tables.c:2586 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "VACUUMやCREATE INDEXなどの作業が含まれます。" -#: utils/misc/guc_tables.c:2462 +#: utils/misc/guc_tables.c:2596 msgid "Sets the maximum memory to be used for logical decoding." msgstr "論理デコーディングで使用するメモリ量の上限を設定します。" -#: utils/misc/guc_tables.c:2463 +#: utils/misc/guc_tables.c:2597 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "個々の内部リオーダバッファはディスクに書き出す前にこれだけの量のメモリを使用することができます。" -#: utils/misc/guc_tables.c:2479 +#: utils/misc/guc_tables.c:2613 msgid "Sets the maximum stack depth, in kilobytes." msgstr "スタック長の最大値をキロバイト単位で設定。" -#: utils/misc/guc_tables.c:2490 +#: utils/misc/guc_tables.c:2624 msgid "Limits the total size of all temporary files used by each process." msgstr "各プロセスで使用される全ての一時ファイルの合計サイズを制限します。" -#: utils/misc/guc_tables.c:2491 +#: utils/misc/guc_tables.c:2625 msgid "-1 means no limit." msgstr "-1は無制限を意味します。" -#: utils/misc/guc_tables.c:2501 +#: utils/misc/guc_tables.c:2635 msgid "Vacuum cost for a page found in the buffer cache." msgstr "バッファキャッシュにある1つのページをVACUUM処理する際のコスト。" -#: utils/misc/guc_tables.c:2511 +#: utils/misc/guc_tables.c:2645 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "バッファキャッシュにない1つのページをVACUUM処理する際のコスト。" -#: utils/misc/guc_tables.c:2521 +#: utils/misc/guc_tables.c:2655 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "VACUUM処理が1つのページをダーティにした際に課すコスト。" -#: utils/misc/guc_tables.c:2531 +#: utils/misc/guc_tables.c:2665 msgid "Vacuum cost amount available before napping." msgstr "VACUUM処理を一時休止させるまでに使用できるコスト。" -#: utils/misc/guc_tables.c:2541 +#: utils/misc/guc_tables.c:2675 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "自動VACUUM用のVACUUM処理を一時休止させるまでに使用できるコスト。" -#: utils/misc/guc_tables.c:2551 -msgid "Sets the maximum number of simultaneously open files for each server process." +#: utils/misc/guc_tables.c:2676 +msgid "-1 means use \"vacuum_cost_limit\"." +msgstr "-1で\"vacuum_cost_limit\"を使用します。" + +#: utils/misc/guc_tables.c:2685 +msgid "Sets the maximum number of files each server process is allowed to open simultaneously." msgstr "各サーバープロセスで同時にオープンできるファイルの最大数を設定。" -#: utils/misc/guc_tables.c:2564 +#: utils/misc/guc_tables.c:2698 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "同時に準備状態にできるトランザクションの最大数を設定。" -#: utils/misc/guc_tables.c:2575 +#: utils/misc/guc_tables.c:2709 msgid "Sets the minimum OID of tables for tracking locks." msgstr "ロックの追跡を行うテーブルの最小のOIDを設定。" -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2710 msgid "Is used to avoid output on system tables." msgstr "システムテーブルに関するの出力を避けるために使います。" -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2719 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "無条件でロックの追跡を行うテーブルのOIDを設定。" -#: utils/misc/guc_tables.c:2597 +#: utils/misc/guc_tables.c:2731 msgid "Sets the maximum allowed duration of any statement." msgstr "あらゆる文に対して実行時間として許容する上限値を設定。" -#: utils/misc/guc_tables.c:2598 utils/misc/guc_tables.c:2609 utils/misc/guc_tables.c:2620 utils/misc/guc_tables.c:2631 utils/misc/guc_tables.c:2642 -msgid "A value of 0 turns off the timeout." -msgstr "0でこのタイムアウトは無効になります。 " - -#: utils/misc/guc_tables.c:2608 +#: utils/misc/guc_tables.c:2742 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "ロックの待機の最大許容時間を設定。" -#: utils/misc/guc_tables.c:2619 +#: utils/misc/guc_tables.c:2753 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "問い合わせ間のアイドル時間のトランザクション内における最大許容値を設定。" -#: utils/misc/guc_tables.c:2630 +#: utils/misc/guc_tables.c:2764 msgid "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)." msgstr "(準備済みトランザクションではない)セッション内のトランザクションの最大許容時間を設定。" -#: utils/misc/guc_tables.c:2641 +#: utils/misc/guc_tables.c:2775 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "問い合わせ間のアイドル時間のトランザクション外における最大許容値を設定。" -#: utils/misc/guc_tables.c:2652 +#: utils/misc/guc_tables.c:2786 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "VACUUM にテーブル行の凍結をさせる最小のトランザクションID差分。" -#: utils/misc/guc_tables.c:2662 +#: utils/misc/guc_tables.c:2796 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "行の凍結のためのテーブル全体スキャンを強制させる時のトランザクションID差分。" -#: utils/misc/guc_tables.c:2672 +#: utils/misc/guc_tables.c:2806 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "テーブル行でのマルチトランザクションIDの凍結を強制する最小のマルチトランザクション差分。" -#: utils/misc/guc_tables.c:2682 +#: utils/misc/guc_tables.c:2816 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "行の凍結のためにテーブル全体スキャンを強制する時点のマルチトランザクション差分。" -#: utils/misc/guc_tables.c:2692 +#: utils/misc/guc_tables.c:2826 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "VACUUMにおいて周回による停止を回避するためのフェイルセーフを実行されるまでの経過トランザクション数。" -#: utils/misc/guc_tables.c:2701 +#: utils/misc/guc_tables.c:2835 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "VACUUMにおいて周回による停止を回避するためのフェイルセーフが実行されるまでの経過マルチトランザクション数。" -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2848 msgid "Sets the maximum number of locks per transaction." msgstr "1トランザクション当たりのロック数の上限を設定。" -#: utils/misc/guc_tables.c:2715 +#: utils/misc/guc_tables.c:2849 msgid "The shared lock table is sized on the assumption that at most \"max_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." msgstr "共有ロックテーブルの大きさは、サーバープロセスまたは準備済みトランザクションごとに最大で\"max_locks_per_transaction\"個のオブジェクトが同時にロックされることを前提として決定されます。" -#: utils/misc/guc_tables.c:2726 +#: utils/misc/guc_tables.c:2860 msgid "Sets the maximum number of predicate locks per transaction." msgstr "1トランザクション当たりの述語ロック数の上限を設定。" -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2861 msgid "The shared predicate lock table is sized on the assumption that at most \"max_pred_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." msgstr "共有述語ロックテーブルの大きさは、サーバープロセスまたは準備済みトランザクションごとに最大で\"max_pred_locks_per_transaction\"個のオブジェクトが同時にロックされることを前提として決定されます。" -#: utils/misc/guc_tables.c:2738 +#: utils/misc/guc_tables.c:2872 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "1リレーション当たりで述語ロックされるページとタプルの数の上限値を設定。" -#: utils/misc/guc_tables.c:2739 +#: utils/misc/guc_tables.c:2873 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "あるコネクションで、同じリレーション内でロックされるページ数とタプル数の合計がこの値を超えたときには、これらのロックはリレーションレベルのロックに置き換えられます。" -#: utils/misc/guc_tables.c:2749 +#: utils/misc/guc_tables.c:2883 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "1ページあたりで述語ロックされるタプル数の上限値を設定。" -#: utils/misc/guc_tables.c:2750 +#: utils/misc/guc_tables.c:2884 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "あるコネクションで 、同じページ上でロックされるタプルの数がこの値を超えたときには、これらのロックはページレベルのロックに置き換えられます。" -#: utils/misc/guc_tables.c:2760 +#: utils/misc/guc_tables.c:2894 msgid "Sets the maximum allowed time to complete client authentication." msgstr "クライアント認証の完了までの最大許容時間を設定。" -#: utils/misc/guc_tables.c:2772 +#: utils/misc/guc_tables.c:2906 msgid "Sets the amount of time to wait before authentication on connection startup." msgstr "接続開始時の認証前の待ち時間を設定します。" -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2918 msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." msgstr "LISTEN / NOTIFYキュー用に割り当てられるページ数の上限を設定。" -#: utils/misc/guc_tables.c:2794 +#: utils/misc/guc_tables.c:2928 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "リカバリ中のWAL先読みバッファのサイズ。" -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2929 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "参照先データブロックの先行読み込みのためのWAL先読みの最大量。" -#: utils/misc/guc_tables.c:2805 +#: utils/misc/guc_tables.c:2939 msgid "Sets the size of WAL files held for standby servers." msgstr "スタンバイサーバーのために確保するWALの量を設定します。" -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2950 msgid "Sets the minimum size to shrink the WAL to." msgstr "WALを縮小させる際の最小のサイズを設定。" -#: utils/misc/guc_tables.c:2828 +#: utils/misc/guc_tables.c:2962 msgid "Sets the WAL size that triggers a checkpoint." msgstr "チェックポイントの契機となるWALのサイズを指定。" -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2974 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "自動WALチェックポイントの最大間隔を設定。" -#: utils/misc/guc_tables.c:2851 +#: utils/misc/guc_tables.c:2985 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "WALの量契機のチェックポイントが高頻度で起きる場合に、警告を発するまでの回数を設定。" -#: utils/misc/guc_tables.c:2853 -msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." -msgstr "チェックポイントセグメントファイルを使い切ることが原因で起きるチェックポイントがこの時間間隔よりも頻繁に発生する場合、サーバーログにメッセージを書き出します。ゼロはこの警告を無効にします。 " +#: utils/misc/guc_tables.c:2987 +msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. 0 disables the warning." +msgstr "チェックポイントセグメントファイルを使い切ることが原因で起きるチェックポイントがこの時間間隔よりも頻繁に発生する場合、サーバーログにメッセージを書き出します。0でこの警告を無効にします。 " -#: utils/misc/guc_tables.c:2866 utils/misc/guc_tables.c:3084 utils/misc/guc_tables.c:3138 +#: utils/misc/guc_tables.c:3000 utils/misc/guc_tables.c:3230 utils/misc/guc_tables.c:3322 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "すでに実行された書き込みがディスクに書き出されるまでのページ数。" -#: utils/misc/guc_tables.c:2877 +#: utils/misc/guc_tables.c:3001 utils/misc/guc_tables.c:3231 utils/misc/guc_tables.c:3323 +msgid "0 disables forced writeback." +msgstr "0で強制ライトバックを無効にします。" + +#: utils/misc/guc_tables.c:3011 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "共有メモリ内に割り当てられた、WALデータ用のディスクページバッファ数を設定。" -#: utils/misc/guc_tables.c:2878 -msgid "Specify -1 to have this value determined as a fraction of shared_buffers." -msgstr "-1を指定するとこの値がshared_buffersに対する比率で決定されます。" +#: utils/misc/guc_tables.c:3012 +msgid "-1 means use a fraction of \"shared_buffers\"." +msgstr "-1で\"shared_buffers\"の一部を使用します。" -#: utils/misc/guc_tables.c:2888 +#: utils/misc/guc_tables.c:3022 msgid "Time between WAL flushes performed in the WAL writer." msgstr "WALライタで実行する書き出しの時間間隔。" -#: utils/misc/guc_tables.c:2899 +#: utils/misc/guc_tables.c:3033 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "書き出しが実行されるまでにWALライタで出力するWALの量。" -#: utils/misc/guc_tables.c:2910 +#: utils/misc/guc_tables.c:3044 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "WALを出力する代わりにfsyncを使用する新規ファイルの最小サイズ。" -#: utils/misc/guc_tables.c:2921 +#: utils/misc/guc_tables.c:3055 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "WAL送信プロセスの最大同時実行数を設定。" -#: utils/misc/guc_tables.c:2932 +#: utils/misc/guc_tables.c:3066 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "同時に定義できるレプリケーションスロットの数の最大値を設定。" -#: utils/misc/guc_tables.c:2942 +#: utils/misc/guc_tables.c:3076 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "レプリケーションスロットで確保できるWALの量の最大値を設定します。" -#: utils/misc/guc_tables.c:2943 -msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." -msgstr "ディスク内のWALがこの量に達すると、レプリケーションスロットは停止とマークされ、セグメントは削除あるいは再利用のために解放されます。" +#: utils/misc/guc_tables.c:3077 +msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk. -1 means no maximum." +msgstr "ディスク内のWALがこの量に達すると、レプリケーションスロットは停止とマークされ、セグメントは削除あるいは再利用のために解放されます。-1で上限なしとなります。" -#: utils/misc/guc_tables.c:2955 +#: utils/misc/guc_tables.c:3089 msgid "Sets the maximum time to wait for WAL replication." msgstr "WALレプリケーションを待つ時間の最大値を設定。" -#: utils/misc/guc_tables.c:2966 +#: utils/misc/guc_tables.c:3100 +msgid "Sets the duration a replication slot can remain idle before it is invalidated." +msgstr "レプリケーションスロットが無効化されるまでのアイドル時間を設定。" + +#: utils/misc/guc_tables.c:3112 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "トランザクションのコミットからWALのディスク書き出しまでの遅延時間をマイクロ秒単位で設定。" -#: utils/misc/guc_tables.c:2978 +#: utils/misc/guc_tables.c:3124 msgid "Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"." msgstr "”commit_delay\"の実行に必要となる、同時に開いているトランザクション数の最小値を設定。" -#: utils/misc/guc_tables.c:2989 +#: utils/misc/guc_tables.c:3135 msgid "Sets the number of digits displayed for floating-point values." msgstr "浮動小数点値の表示桁数を設定。" -#: utils/misc/guc_tables.c:2990 +#: utils/misc/guc_tables.c:3136 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "このパラメータは、real、double precision、幾何データ型に影響します。ゼロまたは負のパラメータ値は標準的な桁数(FLT_DIG もしくは DBL_DIGどちらか適切な方)に追加されます。正の値は直接出力形式を指定します。" -#: utils/misc/guc_tables.c:3002 -msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." -msgstr "文がログに出力される最小の実行時間を設定します。サンプリングについてはlog_statement_sample_rateで決定されます。" +#: utils/misc/guc_tables.c:3148 +msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by \"log_statement_sample_rate\"." +msgstr "文がログ出力の対象となる最小の実行時間を設定します。サンプリングは\"log_statement_sample_rate\"で決定されます。" -#: utils/misc/guc_tables.c:3005 -msgid "Zero logs a sample of all queries. -1 turns this feature off." -msgstr "ゼロにすると全ての問い合わせを記録します。-1はこの機能を無効にします。" +#: utils/misc/guc_tables.c:3151 +msgid "-1 disables sampling. 0 means sample all statements." +msgstr "-1 でサンプリングを無効にします。0 はすべての文をサンプルすることを意味します。" -#: utils/misc/guc_tables.c:3015 +#: utils/misc/guc_tables.c:3161 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "全ての文のログを記録する最小の実行時間を設定。" -#: utils/misc/guc_tables.c:3017 -msgid "Zero prints all queries. -1 turns this feature off." -msgstr "ゼロにすると全ての問い合わせを出力します。-1はこの機能を無効にします。" +#: utils/misc/guc_tables.c:3163 +msgid "-1 disables logging statement durations. 0 means log all statement durations." +msgstr "-1 で文の実行時間のログ出力を無効にします。0 はすべての文の実行時間を記録することを意味します。" -#: utils/misc/guc_tables.c:3027 +#: utils/misc/guc_tables.c:3173 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "自動VACUUMの活動のログを記録する最小の実行時間を設定。" -#: utils/misc/guc_tables.c:3029 -msgid "Zero prints all actions. -1 turns autovacuum logging off." -msgstr "ゼロはすべての活動を出力します。-1は自動VACUUMのログ記録を無効にします。" +#: utils/misc/guc_tables.c:3175 +msgid "-1 disables logging autovacuum actions. 0 means log all autovacuum actions." +msgstr "-1 で自動VACUUMの実行ログ出力を無効にします。0 はすべての自動VACUUMの実行を記録することを意味します。" -#: utils/misc/guc_tables.c:3039 +#: utils/misc/guc_tables.c:3185 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "問い合わせ文をログ出力する際に、出力するbindパラメータ値データの最大バイト数を設定。" -#: utils/misc/guc_tables.c:3041 utils/misc/guc_tables.c:3053 -msgid "-1 to print values in full." -msgstr "-1 で値を全て出力します。" +#: utils/misc/guc_tables.c:3187 utils/misc/guc_tables.c:3199 +msgid "-1 means log values in full." +msgstr "-1 で値全体を出力します。" -#: utils/misc/guc_tables.c:3051 +#: utils/misc/guc_tables.c:3197 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "エラー時の問い合わせ文をログ出力する際に、出力するbindパラメータ値データの最大バイト数を設定。" -#: utils/misc/guc_tables.c:3063 +#: utils/misc/guc_tables.c:3209 msgid "Background writer sleep time between rounds." msgstr "バックグランドライタの周期毎の待機時間" -#: utils/misc/guc_tables.c:3074 +#: utils/misc/guc_tables.c:3220 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "バックグランドライタが1周期で書き出すLRUページ数の最大値。" -#: utils/misc/guc_tables.c:3097 +#: utils/misc/guc_tables.c:3221 +msgid "0 disables background writing." +msgstr "0でバックグラウンド書き込みを無効にします。" + +#: utils/misc/guc_tables.c:3243 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "ディスクサブシステムが効率的に処理可能な同時並行リクエスト数" -#: utils/misc/guc_tables.c:3111 +#: utils/misc/guc_tables.c:3244 utils/misc/guc_tables.c:3258 +msgid "0 disables simultaneous requests." +msgstr "0で同時並列リクエストを無効にします。" + +#: utils/misc/guc_tables.c:3257 msgid "A variant of \"effective_io_concurrency\" that is used for maintenance work." msgstr "保守作業に使用される\"effective_io_concurrency\"の亜種。" -#: utils/misc/guc_tables.c:3126 +#: utils/misc/guc_tables.c:3272 +msgid "Server-wide limit that clamps io_combine_limit." +msgstr "io_combine_limit の上限を制約する、サーバ全体の制限。" + +#: utils/misc/guc_tables.c:3286 msgid "Limit on the size of data reads and writes." msgstr "データの読み込みとか書き込みのサイズ制限" -#: utils/misc/guc_tables.c:3151 +#: utils/misc/guc_tables.c:3300 +msgid "Max number of IOs that one process can execute simultaneously." +msgstr "ひとつのプロセスが同時に実行できるIOの最大数。" + +#: utils/misc/guc_tables.c:3312 +msgid "Number of IO worker processes, for io_method=worker." +msgstr "io_method=worker の場合のIOワーカープロセス数。" + +#: utils/misc/guc_tables.c:3335 msgid "Maximum number of concurrent worker processes." msgstr "同時に実行されるワーカープロセス数の最大値です。" -#: utils/misc/guc_tables.c:3163 +#: utils/misc/guc_tables.c:3347 msgid "Maximum number of logical replication worker processes." msgstr "レプリケーションワーカープロセス数の最大値です。" -#: utils/misc/guc_tables.c:3175 +#: utils/misc/guc_tables.c:3359 msgid "Maximum number of table synchronization workers per subscription." msgstr "サブスクリプション毎のテーブル同期ワーカー数の最大値です。" -#: utils/misc/guc_tables.c:3187 +#: utils/misc/guc_tables.c:3371 msgid "Maximum number of parallel apply workers per subscription." msgstr "サブスクリプション毎のテーブル適用ワーカー数の最大値です。" -#: utils/misc/guc_tables.c:3197 +#: utils/misc/guc_tables.c:3383 +msgid "Sets the maximum number of active replication origins." +msgstr "有効なレプリケーション起源の最大数を設定します。" + +#: utils/misc/guc_tables.c:3393 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "ログファイルのローテーションを行う時間間隔を設定します。" -#: utils/misc/guc_tables.c:3209 +#: utils/misc/guc_tables.c:3395 +msgid "0 disables time-based creation of new log files." +msgstr "0で時間ベースでのログファイル作成を無効にします。" + +#: utils/misc/guc_tables.c:3405 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "ローテートされるまでに許容するログファイルの最大サイズを設定します。" -#: utils/misc/guc_tables.c:3221 +#: utils/misc/guc_tables.c:3407 +msgid "0 disables size-based creation of new log files." +msgstr "0でサイズベースでのログファイル作成を無効にします。" + +#: utils/misc/guc_tables.c:3417 msgid "Shows the maximum number of function arguments." msgstr "関数の引数の最大数を示します。" -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3428 msgid "Shows the maximum number of index keys." msgstr "インデックスキーの最大数を示します。" -#: utils/misc/guc_tables.c:3243 +#: utils/misc/guc_tables.c:3439 msgid "Shows the maximum identifier length." msgstr "識別子の最大長を示します。" -#: utils/misc/guc_tables.c:3254 +#: utils/misc/guc_tables.c:3450 msgid "Shows the size of a disk block." msgstr "ディスクブロックサイズを示します。" -#: utils/misc/guc_tables.c:3265 +#: utils/misc/guc_tables.c:3461 msgid "Shows the number of pages per disk file." msgstr "ディスクファイルごとのページ数を表示します。" -#: utils/misc/guc_tables.c:3276 +#: utils/misc/guc_tables.c:3472 msgid "Shows the block size in the write ahead log." msgstr "先行書き込みログ(WAL)におけるブロックサイズを表示します" -#: utils/misc/guc_tables.c:3287 +#: utils/misc/guc_tables.c:3483 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "WALの取り出しの失敗後に再試行する回数を設定。" -#: utils/misc/guc_tables.c:3299 +#: utils/misc/guc_tables.c:3495 msgid "Shows the size of write ahead log segments." msgstr "先行書き込みログ(WAL)セグメントのサイズを表示します" -#: utils/misc/guc_tables.c:3312 +#: utils/misc/guc_tables.c:3508 msgid "Time for which WAL summary files should be kept." msgstr "WAL集約ファイルを保持する時間。" -#: utils/misc/guc_tables.c:3325 +#: utils/misc/guc_tables.c:3509 +msgid "0 disables automatic summary file deletion." +msgstr "0で集約ファイルの自動削除を無効にします。" + +#: utils/misc/guc_tables.c:3521 msgid "Time to sleep between autovacuum runs." msgstr "自動VACUUMの実行開始間隔。" -#: utils/misc/guc_tables.c:3335 +#: utils/misc/guc_tables.c:3531 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "VACUUMを行うまでの、タプルを更新または削除した回数の最小値。" -#: utils/misc/guc_tables.c:3344 -msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." -msgstr "VACUUMが行われるまでの行挿入の回数の最小値、-1で挿入契機のVACUUMを無効化します。" +#: utils/misc/guc_tables.c:3540 +msgid "Maximum number of tuple updates or deletes prior to vacuum." +msgstr "VACUUMを行うまでの、タプルを更新または削除した回数の最大値。" + +#: utils/misc/guc_tables.c:3541 +msgid "-1 disables the maximum threshold." +msgstr "-1で上限を無効にします。" + +#: utils/misc/guc_tables.c:3549 +msgid "Minimum number of tuple inserts prior to vacuum." +msgstr "VACUUMを行うまでの、タプルを挿入した回数の最小値。" -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3550 +msgid "-1 disables insert vacuums." +msgstr "-1で挿入契機のVACUUMを無効にします。" + +#: utils/misc/guc_tables.c:3558 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "ANALYZEが実行されるまでの、タプルを挿入、更新、削除した回数の最小値。" -#: utils/misc/guc_tables.c:3363 +#: utils/misc/guc_tables.c:3568 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "トランザクションID周回を防ぐためにテーブルを自動VACUUMする時点のトランザクションID差分。" -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3580 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "マルチトランザクション周回を防止するためにテーブルを自動VACUUMする、マルチトランザクション差分。" -#: utils/misc/guc_tables.c:3385 +#: utils/misc/guc_tables.c:3590 +msgid "Sets the number of backend slots to allocate for autovacuum workers." +msgstr "自動VACUUMプロセスに割り当てるバックエンドスロット数を設定。" + +#: utils/misc/guc_tables.c:3599 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "自動VACUUMのワーカープロセスの最大同時実行数を設定。" -#: utils/misc/guc_tables.c:3395 +#: utils/misc/guc_tables.c:3609 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "ひとつの保守作業に割り当てる並列処理プロセスの数の最大値を設定。" -#: utils/misc/guc_tables.c:3405 +#: utils/misc/guc_tables.c:3619 msgid "Sets the maximum number of parallel processes per executor node." msgstr "エグゼキュータノードあたりの並列処理プロセスの数の最大値を設定。" -#: utils/misc/guc_tables.c:3416 +#: utils/misc/guc_tables.c:3630 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "同時に活動可能な並列処理ワーカーの数の最大値を設定。" -#: utils/misc/guc_tables.c:3427 +#: utils/misc/guc_tables.c:3641 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "自動VACUUMプロセスで使用するメモリ量の最大値を設定。" -#: utils/misc/guc_tables.c:3438 +#: utils/misc/guc_tables.c:3642 +msgid "-1 means use \"maintenance_work_mem\"." +msgstr "-1で\"maintenance_work_mem\"を使用します。" + +#: utils/misc/guc_tables.c:3652 msgid "Time between issuing TCP keepalives." msgstr "TCPキープアライブを発行する時間間隔。" -#: utils/misc/guc_tables.c:3439 utils/misc/guc_tables.c:3450 utils/misc/guc_tables.c:3574 -msgid "A value of 0 uses the system default." -msgstr "0でシステムのデフォルトを使用します。" +#: utils/misc/guc_tables.c:3653 utils/misc/guc_tables.c:3664 utils/misc/guc_tables.c:3787 utils/misc/guc_tables.c:3798 +msgid "0 means use the system default." +msgstr "0でシステムのデフォルト値を使用します。" -#: utils/misc/guc_tables.c:3449 +#: utils/misc/guc_tables.c:3663 msgid "Time between TCP keepalive retransmits." msgstr "TCPキープアライブの再送信の時間間隔。" -#: utils/misc/guc_tables.c:3460 +#: utils/misc/guc_tables.c:3674 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "SSLの再ネゴシエーションは今後サポートされません; 0のみに設定可能です。" -#: utils/misc/guc_tables.c:3471 +#: utils/misc/guc_tables.c:3685 msgid "Maximum number of TCP keepalive retransmits." msgstr "TCPキープアライブの再送信回数の最大値です。" -#: utils/misc/guc_tables.c:3472 -msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." -msgstr "接続が失われると判断するまでに再送信される、ひとつづきのキープアライブの数。0の場合はシステムのデフォルトを使用します。" +#: utils/misc/guc_tables.c:3686 +msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. 0 means use the system default." +msgstr "接続が失われると判断するまでに再送信される、ひとつづきのキープアライブの数。0でシステムのデフォルト値を使用します。" -#: utils/misc/guc_tables.c:3483 +#: utils/misc/guc_tables.c:3697 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "GINによる正確な検索に対して許容する結果数の最大値を設定。" -#: utils/misc/guc_tables.c:3494 +#: utils/misc/guc_tables.c:3698 +msgid "0 means no limit." +msgstr "0は無制限を意味します。" + +#: utils/misc/guc_tables.c:3707 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "プランナが想定するデータキャッシュ全体のサイズを設定。" -#: utils/misc/guc_tables.c:3495 +#: utils/misc/guc_tables.c:3708 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "つまり、PostgreSQLのデータファイルに対して使用されるキャッシュ(カーネルキャッシュおよび共有バッファ)全体の量です。これは通常8KBのディスクページを単位とします。" -#: utils/misc/guc_tables.c:3506 +#: utils/misc/guc_tables.c:3719 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "並列スキャンを検討するテーブルデータの量の最小値を設定。" -#: utils/misc/guc_tables.c:3507 +#: utils/misc/guc_tables.c:3720 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "この限度に到達できないような少ないテーブルページ数しか読み取らないとプランナが見積もった場合、並列スキャンは検討されません。" -#: utils/misc/guc_tables.c:3517 +#: utils/misc/guc_tables.c:3730 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "並列スキャンを検討するインデックスデータの量の最小値を設定。" -#: utils/misc/guc_tables.c:3518 +#: utils/misc/guc_tables.c:3731 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "この限度に到達できないような少ないページ数しか読み取らないとプランナが見積もった場合、並列スキャンは検討されません。" -#: utils/misc/guc_tables.c:3529 +#: utils/misc/guc_tables.c:3742 msgid "Shows the server version as an integer." msgstr "サーバーのバージョンを整数値で表示します。" -#: utils/misc/guc_tables.c:3540 +#: utils/misc/guc_tables.c:3753 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "このキロバイト数よりも大きな一時ファイルの使用をログに記録します。" -#: utils/misc/guc_tables.c:3541 -msgid "Zero logs all files. The default is -1 (turning this feature off)." -msgstr "ゼロにすると、全てのファイルを記録します。デフォルトは-1です(この機能を無効にします)。" +#: utils/misc/guc_tables.c:3754 +msgid "-1 disables logging temporary files. 0 means log all temporary files." +msgstr "-1で一時ファイルのログへの記録を無効にします。0ですべての一時ファイルをログに記録します。" -#: utils/misc/guc_tables.c:3551 +#: utils/misc/guc_tables.c:3764 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "pg_stat_activity.queryのために予約するサイズをバイト単位で設定。" -#: utils/misc/guc_tables.c:3562 +#: utils/misc/guc_tables.c:3775 msgid "Sets the maximum size of the pending list for GIN index." msgstr "GINインデックスの保留リストの最大サイズを設定。" -#: utils/misc/guc_tables.c:3573 +#: utils/misc/guc_tables.c:3786 msgid "TCP user timeout." msgstr "TCPユーザータイムアウト。" -#: utils/misc/guc_tables.c:3584 +#: utils/misc/guc_tables.c:3797 msgid "The size of huge page that should be requested." msgstr "要求が見込まれるヒュージページのサイズ。" -#: utils/misc/guc_tables.c:3595 +#: utils/misc/guc_tables.c:3808 msgid "Aggressively flush system caches for debugging purposes." msgstr "デバッグ目的のために積極的にシステムキャッシュを消去する。" -#: utils/misc/guc_tables.c:3618 +#: utils/misc/guc_tables.c:3809 +msgid "0 means use normal caching behavior." +msgstr "0で通常のキャッシュ動作を行います。" + +#: utils/misc/guc_tables.c:3831 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "問い合わせ実行中に接続確認を行う時間間隔を設定します。" -#: utils/misc/guc_tables.c:3629 +#: utils/misc/guc_tables.c:3832 +msgid "0 disables connection checks." +msgstr "0で接続チェックを無効にします。" + +#: utils/misc/guc_tables.c:3842 msgid "Time between progress updates for long-running startup operations." msgstr "起動処理が長引いた際のステータス更新の時間間隔。" -#: utils/misc/guc_tables.c:3631 -msgid "0 turns this feature off." -msgstr "ゼロにするとこの機能を無効にします。" +#: utils/misc/guc_tables.c:3844 +msgid "0 disables progress updates." +msgstr "0で進捗情報の更新を無効にします。" -#: utils/misc/guc_tables.c:3641 +#: utils/misc/guc_tables.c:3854 msgid "Sets the iteration count for SCRAM secret generation." msgstr "SCRAMシークレット生成の際の反復回数を設定。" -#: utils/misc/guc_tables.c:3661 +#: utils/misc/guc_tables.c:3874 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "ひと続きに読み込むディスクページについてプランナで使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3672 +#: utils/misc/guc_tables.c:3885 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "ひと続きでは読み込めないディスクページについてプランナで使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3683 +#: utils/misc/guc_tables.c:3896 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "一つのタプル(行)の処理についてプランナで使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3694 +#: utils/misc/guc_tables.c:3907 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "インデックススキャンにおける一つのインデックスエントリの処理についてプランナで使用する見積もりコストを設定。 " -#: utils/misc/guc_tables.c:3705 +#: utils/misc/guc_tables.c:3918 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "一つの演算子または関数の処理についてプランナで使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3716 +#: utils/misc/guc_tables.c:3929 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "並列処理ワーカーからリーダーバックエンドへの一つのタプル(行)の受け渡しについてプランナが使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3727 +#: utils/misc/guc_tables.c:3940 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "並列問い合わせ実行のためのワーカープロセスの起動についてプランナで使用する見積もりコストを設定。" -#: utils/misc/guc_tables.c:3739 +#: utils/misc/guc_tables.c:3952 msgid "Perform JIT compilation if query is more expensive." msgstr "問い合わせがこの値より高コストであればJITコンパイルを実行します。" -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3953 msgid "-1 disables JIT compilation." msgstr "-1 でJITコンパイルを禁止します。" -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3963 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "問い合わせがこの値より高コストであればJITコンパイルされた関数を最適化します。" -#: utils/misc/guc_tables.c:3751 +#: utils/misc/guc_tables.c:3964 msgid "-1 disables optimization." msgstr "-1で最適化を行わなくなります。" -#: utils/misc/guc_tables.c:3761 +#: utils/misc/guc_tables.c:3974 msgid "Perform JIT inlining if query is more expensive." msgstr "問い合わせがこの値より高コストであればJITコンパイルされた関数をインライン化します。" -#: utils/misc/guc_tables.c:3762 +#: utils/misc/guc_tables.c:3975 msgid "-1 disables inlining." msgstr "-1 でインライン化を禁止します。" -#: utils/misc/guc_tables.c:3772 +#: utils/misc/guc_tables.c:3985 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "カーソルから取り出される行数の全行に対する割合についてプランナで使用する値を設定。" -#: utils/misc/guc_tables.c:3784 +#: utils/misc/guc_tables.c:3997 msgid "Sets the planner's estimate of the average size of a recursive query's working table." msgstr "再帰問い合わせでプランナが使用する中間テーブルの平均見積もりサイズを設定します。" -#: utils/misc/guc_tables.c:3796 +#: utils/misc/guc_tables.c:4009 msgid "GEQO: selective pressure within the population." msgstr "GEQO: 集合内の選択圧力。" -#: utils/misc/guc_tables.c:3807 +#: utils/misc/guc_tables.c:4020 msgid "GEQO: seed for random path selection." msgstr "GEQO: ランダムパス選択用のシード" -#: utils/misc/guc_tables.c:3818 +#: utils/misc/guc_tables.c:4031 msgid "Multiple of \"work_mem\" to use for hash tables." msgstr "ハッシュテーブルで使用する\"work_mem\"に対する倍率。" -#: utils/misc/guc_tables.c:3829 +#: utils/misc/guc_tables.c:4042 msgid "Multiple of the average buffer usage to free per round." msgstr "周期ごとに解放するバッファ数の平均バッファ使用量に対する倍数" -#: utils/misc/guc_tables.c:3839 +#: utils/misc/guc_tables.c:4052 msgid "Sets the seed for random-number generation." msgstr "乱数生成用のシードを設定。" -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:4063 msgid "Vacuum cost delay in milliseconds." msgstr "ミリ秒単位のコストベースのVACUUM処理の遅延時間です。" -#: utils/misc/guc_tables.c:3861 +#: utils/misc/guc_tables.c:4074 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "自動VACUUM用のミリ秒単位のコストベースのVACUUM処理の遅延時間です。" -#: utils/misc/guc_tables.c:3872 +#: utils/misc/guc_tables.c:4075 +msgid "-1 means use \"vacuum_cost_delay\"." +msgstr "-1で\"vacuum_cost_delay\"を使用します。" + +#: utils/misc/guc_tables.c:4085 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "VACUUMが実行されるまでのタプルの更新または削除回数のreltuplesに対する割合。" -#: utils/misc/guc_tables.c:3882 +#: utils/misc/guc_tables.c:4095 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "VACUUMが実行されるまでのタプルの挿入行数のreltuplesに対する割合。" -#: utils/misc/guc_tables.c:3892 +#: utils/misc/guc_tables.c:4105 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "ANALYZEが実行されるまでのタプルの更新または削除回数のreltuplesに対する割合。" -#: utils/misc/guc_tables.c:3902 +#: utils/misc/guc_tables.c:4115 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." msgstr "チェックポイント中にダーティバッファの書き出しに使う時間のチェックポイント間隔に対する割合。" -#: utils/misc/guc_tables.c:3912 +#: utils/misc/guc_tables.c:4125 msgid "Fraction of statements exceeding \"log_min_duration_sample\" to be logged." msgstr "\"log_min_duration_sample\"を超過した文のうちログ出力を行う割合。" -#: utils/misc/guc_tables.c:3913 +#: utils/misc/guc_tables.c:4126 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "0.0(ログ出力しない)から1.0(すべてログ出力する)の間の値を指定してください。" -#: utils/misc/guc_tables.c:3922 +#: utils/misc/guc_tables.c:4135 msgid "Sets the fraction of transactions from which to log all statements." msgstr "すべての文をログ出力するトランザクションの割合を設定します。" -#: utils/misc/guc_tables.c:3923 +#: utils/misc/guc_tables.c:4136 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "0.0 (ログ出力しない)から 1.0 (全てのトランザクションの全ての文をログ出力する)の間の値を指定してください。" +#: utils/misc/guc_tables.c:4146 +msgid "Fraction of pages in a relation vacuum can scan and fail to freeze before disabling eager scanning." +msgstr "VACUUMが貪欲スキャンを無効にする前にスキャンできるページ数の、リレーション全体に対する割合" + +#: utils/misc/guc_tables.c:4147 +msgid "A value of 0.0 disables eager scanning and a value of 1.0 will eagerly scan up to 100 percent of the all-visible pages in the relation. If vacuum successfully freezes these pages, the cap is lower than 100 percent, because the goal is to amortize page freezing across multiple vacuums." +msgstr "0.0で貪欲スキャンを無効にし、1.0ではリレーション内の全可視ページを最大100%まで貪欲にスキャンします。ページの凍結を複数回のVACUUMに分散させることを目的としているため、VACUUMがスキャンしたページの凍結に成功した場合には、この上限は100%を下回ることがあります。" + # hoge -#: utils/misc/guc_tables.c:3942 +#: utils/misc/guc_tables.c:4165 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "WALファイルの保管のために呼び出されるシェルスクリプトを設定。" -#: utils/misc/guc_tables.c:3943 -msgid "This is used only if \"archive_library\" is not set." -msgstr "これは\"archive_library\"の設定がされていない場合にのみ使用されます。" +#: utils/misc/guc_tables.c:4166 +msgid "An empty string means use \"archive_library\"." +msgstr "空文字列で”archive_library\"を使用します。" # hoge -#: utils/misc/guc_tables.c:3952 +#: utils/misc/guc_tables.c:4175 msgid "Sets the library that will be called to archive a WAL file." msgstr "WALファイルのアーカイブのために呼び出すライブラリを設定します。" -#: utils/misc/guc_tables.c:3953 -msgid "An empty string indicates that \"archive_command\" should be used." -msgstr "空文字列は\"archive_command\"の使用を指示します。" +#: utils/misc/guc_tables.c:4176 +msgid "An empty string means use \"archive_command\"." +msgstr "空文字列で\"archive_command\"を使用します。" # hoge -#: utils/misc/guc_tables.c:3962 +#: utils/misc/guc_tables.c:4185 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "アーカイブされたWALファイルを取り出すために呼び出すシェルコマンドを設定します。" # hoge -#: utils/misc/guc_tables.c:3972 +#: utils/misc/guc_tables.c:4195 msgid "Sets the shell command that will be executed at every restart point." msgstr "リスタートポイントの時に実行するシェルコマンドを設定。" # hoge -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4205 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "リカバリ終了時に1度だけ実行されるシェルコマンドを設定。" -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4215 msgid "Specifies the timeline to recover into." msgstr "リカバリの目標タイムラインを指定します。" -#: utils/misc/guc_tables.c:4002 +#: utils/misc/guc_tables.c:4225 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "\"immediate\"を指定すると一貫性が確保できた時点でリカバリを終了します。" -#: utils/misc/guc_tables.c:4011 +#: utils/misc/guc_tables.c:4234 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "リカバリを指定したトランザクションIDまで進めます。" -#: utils/misc/guc_tables.c:4020 +#: utils/misc/guc_tables.c:4243 msgid "Sets the time stamp up to which recovery will proceed." msgstr "リカバリを指定したタイムスタンプの時刻まで進めます。" -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4252 msgid "Sets the named restore point up to which recovery will proceed." msgstr "リカバリを指定した名前のリストアポイントまで進めます。" -#: utils/misc/guc_tables.c:4038 +#: utils/misc/guc_tables.c:4261 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "リカバリを先行書き込みログの指定したLSNまで進めます。" -#: utils/misc/guc_tables.c:4048 +#: utils/misc/guc_tables.c:4271 msgid "Sets the connection string to be used to connect to the sending server." msgstr "送出側サーバーへの接続に使用する接続文字列をしています。" -#: utils/misc/guc_tables.c:4059 +#: utils/misc/guc_tables.c:4282 msgid "Sets the name of the replication slot to use on the sending server." msgstr "送出サーバーで使用するレプリケーションスロットの名前を設定。" -#: utils/misc/guc_tables.c:4069 +#: utils/misc/guc_tables.c:4292 msgid "Sets the client's character set encoding." msgstr "クライアントの文字集合の符号化方式を設定。" -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4303 msgid "Controls information prefixed to each log line." msgstr "各ログ行の前に付ける情報を制御します。" -#: utils/misc/guc_tables.c:4081 -msgid "If blank, no prefix is used." -msgstr "もし空であればなにも付加しません。" +#: utils/misc/guc_tables.c:4304 +msgid "An empty string means no prefix." +msgstr "空文字列で何も付加しません。" -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4313 msgid "Sets the time zone to use in log messages." msgstr "ログメッセージ使用するタイムゾーンを設定。" -#: utils/misc/guc_tables.c:4100 +#: utils/misc/guc_tables.c:4323 msgid "Sets the display format for date and time values." msgstr "日付時刻値の表示用書式を設定。" -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4324 msgid "Also controls interpretation of ambiguous date inputs." msgstr "曖昧な日付の入力の解釈も制御します。" -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4335 msgid "Sets the default table access method for new tables." msgstr "新規テーブルで使用されるデフォルトテーブルアクセスメソッドを設定。" -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4346 msgid "Sets the default tablespace to create tables and indexes in." msgstr "テーブルとインデックスの作成先となるデフォルトのテーブル空間を設定。" -#: utils/misc/guc_tables.c:4124 -msgid "An empty string selects the database's default tablespace." -msgstr "空文字列はデータベースのデフォルトのテーブル空間を選択します。" +#: utils/misc/guc_tables.c:4347 utils/misc/guc_tables.c:4358 +msgid "An empty string means use the database's default tablespace." +msgstr "空文字列でデータベースのデフォルトのテーブル空間を使用します。" -#: utils/misc/guc_tables.c:4134 +#: utils/misc/guc_tables.c:4357 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "一時テーブルとファイルのソートで使用されるテーブル空間を設定。" -#: utils/misc/guc_tables.c:4145 +#: utils/misc/guc_tables.c:4368 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." msgstr "CREATEROLEを持つユーザーが自動的にそのロールを自身にGRANTするかどうかを対象となるオプションとともに設定します" -#: utils/misc/guc_tables.c:4157 +#: utils/misc/guc_tables.c:4370 +msgid "An empty string disables automatic self grants." +msgstr "空文字列で自動の自己権限付与を無効にします。" + +#: utils/misc/guc_tables.c:4380 msgid "Sets the path for dynamically loadable modules." msgstr "動的ロード可能モジュールのパスを設定。" -#: utils/misc/guc_tables.c:4158 +#: utils/misc/guc_tables.c:4381 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "オープンする必要がある動的ロード可能なモジュールについて、指定されたファイル名にディレクトリ要素がない(つまり、名前にスラッシュが含まれない)場合、システムは指定されたファイルをこのパスから検索します。 " -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4394 +msgid "Sets the path for extension control files." +msgstr "機能拡張制御ファイルのパスを設定。" + +#: utils/misc/guc_tables.c:4395 +msgid "The remaining extension script and secondary control files are then loaded from the same directory where the primary control file was found." +msgstr "残りの機能拡張スクリプトと二次制御ファイルは、主制御ファイルと同じディレクトリから読み込まれます。" + +#: utils/misc/guc_tables.c:4406 msgid "Sets the location of the Kerberos server key file." msgstr "Kerberosサーバーキーファイルの場所を設定。" -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4417 msgid "Sets the Bonjour service name." msgstr "Bonjour サービス名を設定。" -#: utils/misc/guc_tables.c:4192 +#: utils/misc/guc_tables.c:4418 +msgid "An empty string means use the computer name." +msgstr "空文字列でコンピューター名を使用します。" + +#: utils/misc/guc_tables.c:4427 msgid "Sets the language in which messages are displayed." msgstr "表示用メッセージの言語を設定。" -#: utils/misc/guc_tables.c:4202 +#: utils/misc/guc_tables.c:4428 utils/misc/guc_tables.c:4438 utils/misc/guc_tables.c:4448 utils/misc/guc_tables.c:4458 +msgid "An empty string means use the operating system setting." +msgstr "空文字列でオペレーティングシステムの設定を使用します。" + +#: utils/misc/guc_tables.c:4437 msgid "Sets the locale for formatting monetary amounts." msgstr "通貨書式で使用するロケールを設定。 " -#: utils/misc/guc_tables.c:4212 +#: utils/misc/guc_tables.c:4447 msgid "Sets the locale for formatting numbers." msgstr "数字の書式で使用するロケールを設定。" -#: utils/misc/guc_tables.c:4222 +#: utils/misc/guc_tables.c:4457 msgid "Sets the locale for formatting date and time values." msgstr "日付と時間の書式で使用するロケールを設定。" -#: utils/misc/guc_tables.c:4232 +#: utils/misc/guc_tables.c:4467 msgid "Lists shared libraries to preload into each backend." msgstr "各バックエンドに事前ロードする共有ライブラリを列挙します。" -#: utils/misc/guc_tables.c:4243 +#: utils/misc/guc_tables.c:4478 msgid "Lists shared libraries to preload into server." msgstr "サーバーに事前ロードする共有ライブラリを列挙します。" -#: utils/misc/guc_tables.c:4254 +#: utils/misc/guc_tables.c:4489 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "各バックエンドに事前読み込みする非特権共有ライブラリを列挙します。" -#: utils/misc/guc_tables.c:4265 +#: utils/misc/guc_tables.c:4500 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "スキーマ部を含まない名前に対するスキーマの検索順を設定。" -#: utils/misc/guc_tables.c:4277 +#: utils/misc/guc_tables.c:4512 msgid "Shows the server (database) character set encoding." msgstr "サーバー(データベース)文字セット符号化方式を表示します。" -#: utils/misc/guc_tables.c:4289 +#: utils/misc/guc_tables.c:4524 msgid "Shows the server version." msgstr "サーバーのバージョンを表示します。" -#: utils/misc/guc_tables.c:4301 +#: utils/misc/guc_tables.c:4536 msgid "Sets the current role." msgstr "現在のロールを設定。" -#: utils/misc/guc_tables.c:4313 +#: utils/misc/guc_tables.c:4548 msgid "Sets the session user name." msgstr "セッションユーザー名を設定。" -#: utils/misc/guc_tables.c:4324 +#: utils/misc/guc_tables.c:4559 msgid "Sets the destination for server log output." msgstr "サーバーログの出力先を設定。" -#: utils/misc/guc_tables.c:4325 +#: utils/misc/guc_tables.c:4560 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." msgstr "有効な値は、プラットフォームに依存しますが\"stderr\"、\"syslog\"、\"csvlog\"、\"jsonlog\"そして\"eventlog\"の組み合わせです。" -#: utils/misc/guc_tables.c:4336 +#: utils/misc/guc_tables.c:4571 msgid "Sets the destination directory for log files." msgstr "ログファイルの格納ディレクトリを設定。" -#: utils/misc/guc_tables.c:4337 +#: utils/misc/guc_tables.c:4572 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "データディレクトリからの相対パスでも絶対パスでも指定できます" -#: utils/misc/guc_tables.c:4347 +#: utils/misc/guc_tables.c:4582 msgid "Sets the file name pattern for log files." msgstr "ログファイルのファイル名パターンを設定。" -#: utils/misc/guc_tables.c:4358 +#: utils/misc/guc_tables.c:4593 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "syslog内でPostgreSQLのメッセージを識別するために使用されるプログラム名を設定。" -#: utils/misc/guc_tables.c:4369 +#: utils/misc/guc_tables.c:4604 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "イベントログ内でPostgreSQLのメッセージを識別するために使用されるアプリケーション名を設定。" -#: utils/misc/guc_tables.c:4380 +#: utils/misc/guc_tables.c:4615 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "タイムスタンプの表示と解釈に使用するタイムゾーンを設定。" -#: utils/misc/guc_tables.c:4390 +#: utils/misc/guc_tables.c:4625 msgid "Selects a file of time zone abbreviations." msgstr "タイムゾーン省略形用のファイルを選択します。" -#: utils/misc/guc_tables.c:4400 +#: utils/misc/guc_tables.c:4635 msgid "Sets the owning group of the Unix-domain socket." msgstr "Unixドメインソケットを所有するグループを設定。" -#: utils/misc/guc_tables.c:4401 -msgid "The owning user of the socket is always the user that starts the server." -msgstr "ソケットを所有するユーザーは常にサーバーを開始したユーザーです。" +#: utils/misc/guc_tables.c:4636 +msgid "The owning user of the socket is always the user that starts the server. An empty string means use the user's default group." +msgstr "ソケットを所有するユーザーは常にサーバーを開始したユーザーです。空文字列でユーザのデフォルトグループを使用します。" -#: utils/misc/guc_tables.c:4411 +#: utils/misc/guc_tables.c:4646 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Unixドメインソケットの作成先ディレクトリを設定。" -#: utils/misc/guc_tables.c:4422 +#: utils/misc/guc_tables.c:4657 msgid "Sets the host name or IP address(es) to listen to." msgstr "接続を監視するホスト名またはIPアドレスを設定。" -#: utils/misc/guc_tables.c:4437 +#: utils/misc/guc_tables.c:4672 msgid "Sets the server's data directory." msgstr "サーバーのデータディレクトリを設定。" -#: utils/misc/guc_tables.c:4448 +#: utils/misc/guc_tables.c:4683 msgid "Sets the server's main configuration file." msgstr "サーバーのメイン設定ファイルを設定。" -#: utils/misc/guc_tables.c:4459 +#: utils/misc/guc_tables.c:4694 msgid "Sets the server's \"hba\" configuration file." msgstr "サーバーの\"hba\"設定ファイルを設定。" -#: utils/misc/guc_tables.c:4470 +#: utils/misc/guc_tables.c:4705 msgid "Sets the server's \"ident\" configuration file." msgstr "サーバーの\"ident\"設定ファイルを設定。" -#: utils/misc/guc_tables.c:4481 +#: utils/misc/guc_tables.c:4716 msgid "Writes the postmaster PID to the specified file." msgstr "postmasterのPIDを指定したファイルに書き込みます。" -#: utils/misc/guc_tables.c:4492 +#: utils/misc/guc_tables.c:4727 msgid "Shows the name of the SSL library." msgstr "SSLライブラリの名前を表示します。" -#: utils/misc/guc_tables.c:4507 +#: utils/misc/guc_tables.c:4742 msgid "Location of the SSL server certificate file." msgstr "SSLサーバー証明書ファイルの場所です" -#: utils/misc/guc_tables.c:4517 +#: utils/misc/guc_tables.c:4752 msgid "Location of the SSL server private key file." msgstr "SSLサーバー秘密鍵ファイルの場所です。" -#: utils/misc/guc_tables.c:4527 +#: utils/misc/guc_tables.c:4762 msgid "Location of the SSL certificate authority file." msgstr "SSL認証局ファイルの場所です" -#: utils/misc/guc_tables.c:4537 +#: utils/misc/guc_tables.c:4772 msgid "Location of the SSL certificate revocation list file." msgstr "SSL証明書失効リストファイルの場所です。" -#: utils/misc/guc_tables.c:4547 +#: utils/misc/guc_tables.c:4782 msgid "Location of the SSL certificate revocation list directory." msgstr "SSL証明書失効リストディレクトリの場所です。" -#: utils/misc/guc_tables.c:4557 +#: utils/misc/guc_tables.c:4792 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "同期スタンバイの数と同期スタンバイ候補の名前の一覧。" -#: utils/misc/guc_tables.c:4568 +#: utils/misc/guc_tables.c:4803 msgid "Sets default text search configuration." msgstr "デフォルトのテキスト検索設定を設定します。" -#: utils/misc/guc_tables.c:4578 -msgid "Sets the list of allowed SSL ciphers." -msgstr "SSL暗号として許されるリストを設定。" +#: utils/misc/guc_tables.c:4813 +msgid "Sets the list of allowed TLSv1.3 cipher suites." +msgstr "使用を許可するTLSv1.3の暗号スイートのリストを設定。" -#: utils/misc/guc_tables.c:4593 -msgid "Sets the curve to use for ECDH." -msgstr "ECDHで使用する曲線を設定。" +#: utils/misc/guc_tables.c:4814 +msgid "An empty string means use the default cipher suites." +msgstr "空文字列でデフォルトの暗号スイートを使用します。" -#: utils/misc/guc_tables.c:4608 +#: utils/misc/guc_tables.c:4824 +msgid "Sets the list of allowed TLSv1.2 (and lower) ciphers." +msgstr "使用可能なTLSv1.2(およびそれ以前)の暗号方式のリストを設定。" + +#: utils/misc/guc_tables.c:4839 +msgid "Sets the group(s) to use for Diffie-Hellman key exchange." +msgstr "Diffie-Hellman鍵交換で使用するグループ(群)を設定。" + +#: utils/misc/guc_tables.c:4840 +msgid "Multiple groups can be specified using colon-separated list." +msgstr "複数のグループはコロン区切りのリストとして指定できます。" + +#: utils/misc/guc_tables.c:4854 msgid "Location of the SSL DH parameters file." msgstr "SSLのDHパラメータファイルの場所です。" -#: utils/misc/guc_tables.c:4619 +#: utils/misc/guc_tables.c:4855 +msgid "An empty string means use compiled-in default parameters." +msgstr "空文字列でコンパイル時設定のデフォルトのパラメーターを使用します。" + +#: utils/misc/guc_tables.c:4865 msgid "Command to obtain passphrases for SSL." msgstr "SSLのパスフレーズを取得するコマンド。" -#: utils/misc/guc_tables.c:4630 +#: utils/misc/guc_tables.c:4866 +msgid "An empty string means use the built-in prompting mechanism." +msgstr "空文字列で内蔵のパスワード入力機構を使用します。" + +#: utils/misc/guc_tables.c:4876 msgid "Sets the application name to be reported in statistics and logs." msgstr "統計やログで報告されるアプリケーション名を設定。" -#: utils/misc/guc_tables.c:4641 +#: utils/misc/guc_tables.c:4887 msgid "Sets the name of the cluster, which is included in the process title." msgstr "プロセスのタイトルに含まれるクラスタ名を指定。" -#: utils/misc/guc_tables.c:4652 +#: utils/misc/guc_tables.c:4898 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "WALの整合性チェックを行う対象とするリソースマネージャを設定。" -#: utils/misc/guc_tables.c:4653 +#: utils/misc/guc_tables.c:4899 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "全ページイメージが全てのデータブロックに対して記録され、WAL再生の結果とクロスチェックされます。" -#: utils/misc/guc_tables.c:4663 +#: utils/misc/guc_tables.c:4909 msgid "JIT provider to use." msgstr "使用するJITプロバイダ。" -#: utils/misc/guc_tables.c:4674 +#: utils/misc/guc_tables.c:4920 msgid "Log backtrace for errors in these functions." msgstr "これらの関数でエラーが起きた場合にはバックトレースをログに出力します。" -#: utils/misc/guc_tables.c:4685 +#: utils/misc/guc_tables.c:4931 msgid "Use direct I/O for file access." msgstr "ファイルアクセスに直接I/Oを使用します。" -#: utils/misc/guc_tables.c:4696 -msgid "Lists streaming replication standby server slot names that logical WAL sender processes will wait for." -msgstr "論理walsenderプロセスが待ち受け対象とするストリーミングレプリケーションのスタンバイのスロット名を列挙します。" +#: utils/misc/guc_tables.c:4932 +msgid "An empty string disables direct I/O." +msgstr "空文字列で直接I/Oを無効にします。" + +#: utils/misc/guc_tables.c:4942 +msgid "Lists streaming replication standby server replication slot names that logical WAL sender processes will wait for." +msgstr "論理WAL senderプロセスが待ち受け対象とするストリーミングレプリケーションのスタンバイサーバーのレプリケーションスロット名を列挙します。" + +#: utils/misc/guc_tables.c:4944 +msgid "Logical WAL sender processes will send decoded changes to output plugins only after the specified replication slots have confirmed receiving WAL." +msgstr "論理WAL senderプロセスは指定されたレプリケーションスロットによるWALの受け取り確認後に初めてデコードされた変更を出力プラグインに送出します。" + +#: utils/misc/guc_tables.c:4956 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "指定した種別の非システムリレーションへのアクセスを禁止します。" + +#: utils/misc/guc_tables.c:4967 +msgid "Lists libraries that may be called to validate OAuth v2 bearer tokens." +msgstr "OAuth v2 の Bearer トークンを検証するために使用できるライブラリの一覧。" -#: utils/misc/guc_tables.c:4698 -msgid "Logical WAL sender processes will send decoded changes to plugins only after the specified replication slots confirm receiving WAL." -msgstr "論理walsenderプロセスは指定されたレプリケーションスロットによるWALの受け取り確認後に初めてデコードされた変更をプラグインに送出します。" +#: utils/misc/guc_tables.c:4978 +msgid "Logs specified aspects of connection establishment and setup." +msgstr "接続の確立やセットアップに関する指定された情報をログに記録します。" -#: utils/misc/guc_tables.c:4719 +#: utils/misc/guc_tables.c:4999 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "文字列リテラルで\"\\'\"が許可されるかどうかを設定。" -#: utils/misc/guc_tables.c:4729 +#: utils/misc/guc_tables.c:5009 msgid "Sets the output format for bytea." msgstr "bytea の出力フォーマットを設定。" -#: utils/misc/guc_tables.c:4739 +#: utils/misc/guc_tables.c:5019 msgid "Sets the message levels that are sent to the client." msgstr "クライアントに送信される最小のメッセージレベルを設定。" -#: utils/misc/guc_tables.c:4740 utils/misc/guc_tables.c:4836 utils/misc/guc_tables.c:4847 +#: utils/misc/guc_tables.c:5020 utils/misc/guc_tables.c:5116 utils/misc/guc_tables.c:5127 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr " 各レベルにはそのレベル以下の全てが含まれます。レベルを低くするほど、送信されるメッセージはより少なくなります。 " -#: utils/misc/guc_tables.c:4750 +#: utils/misc/guc_tables.c:5030 msgid "Enables in-core computation of query identifiers." msgstr "問い合わせ識別子の内部生成を有効にする。" -#: utils/misc/guc_tables.c:4760 +#: utils/misc/guc_tables.c:5040 msgid "Enables the planner to use constraints to optimize queries." msgstr "問い合わせの最適化の際にプランナに制約を利用させる。" -#: utils/misc/guc_tables.c:4761 +#: utils/misc/guc_tables.c:5041 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "制約により、問い合わせに一致する行がないことが保証されているテーブルをスキップします。" -#: utils/misc/guc_tables.c:4772 +#: utils/misc/guc_tables.c:5052 msgid "Sets the default compression method for compressible values." msgstr "圧縮可能な値に対して使用されるデフォルト圧縮方式を設定。" -#: utils/misc/guc_tables.c:4783 +#: utils/misc/guc_tables.c:5063 msgid "Sets the transaction isolation level of each new transaction." msgstr "新規トランザクションのトランザクション分離レベルを設定。" -#: utils/misc/guc_tables.c:4793 +#: utils/misc/guc_tables.c:5073 msgid "Sets the current transaction's isolation level." msgstr "現在のトランザクションの分離レベルを設定。" -#: utils/misc/guc_tables.c:4804 +#: utils/misc/guc_tables.c:5084 msgid "Sets the display format for interval values." msgstr "インターバル値の表示フォーマットを設定。" -#: utils/misc/guc_tables.c:4815 +#: utils/misc/guc_tables.c:5095 msgid "Log level for reporting invalid ICU locale strings." msgstr "不正なICUロケール設定の報告に使用するログレベル。" -#: utils/misc/guc_tables.c:4825 +#: utils/misc/guc_tables.c:5105 msgid "Sets the verbosity of logged messages." msgstr "ログ出力メッセージの詳細度を設定。" -#: utils/misc/guc_tables.c:4835 +#: utils/misc/guc_tables.c:5115 msgid "Sets the message levels that are logged." msgstr "ログに出力するメッセージレベルを設定。" -#: utils/misc/guc_tables.c:4846 +#: utils/misc/guc_tables.c:5126 msgid "Causes all statements generating error at or above this level to be logged." msgstr "このレベル以上のエラーを発生させた全てのSQL文をログに記録します。" -#: utils/misc/guc_tables.c:4857 +#: utils/misc/guc_tables.c:5137 msgid "Sets the type of statements logged." msgstr "ログ出力する文の種類を設定。" -#: utils/misc/guc_tables.c:4867 +#: utils/misc/guc_tables.c:5147 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "syslogを有効にした場合に使用するsyslog \"facility\"を設定。" -#: utils/misc/guc_tables.c:4878 +#: utils/misc/guc_tables.c:5158 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "トリガと書き換えルールに関するセッションの動作を設定。" -#: utils/misc/guc_tables.c:4888 +#: utils/misc/guc_tables.c:5168 msgid "Sets the current transaction's synchronization level." msgstr "現在のトランザクションの同期レベルを設定。" -#: utils/misc/guc_tables.c:4898 +#: utils/misc/guc_tables.c:5178 msgid "Allows archiving of WAL files using \"archive_command\"." msgstr "\"archive_command\"を使用したWALファイルのアーカイブ処理を許可します。" -#: utils/misc/guc_tables.c:4908 +#: utils/misc/guc_tables.c:5188 msgid "Sets the action to perform upon reaching the recovery target." msgstr "リカバリ目標に到達した際の動作を設定。" -#: utils/misc/guc_tables.c:4918 +#: utils/misc/guc_tables.c:5198 msgid "Collects function-level statistics on database activity." msgstr "データベースの動作に関して、関数レベルの統計情報を収集します。" -#: utils/misc/guc_tables.c:4929 +#: utils/misc/guc_tables.c:5209 msgid "Sets the consistency of accesses to statistics data." msgstr "統計情報読み出し時の一貫性レベルを設定します。" -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5219 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "WALファイルに出力される全ページ出力を指定した方式で圧縮します。" -#: utils/misc/guc_tables.c:4949 +#: utils/misc/guc_tables.c:5229 msgid "Sets the level of information written to the WAL." msgstr "WALに書き出される情報のレベルを設定します。" -#: utils/misc/guc_tables.c:4959 +#: utils/misc/guc_tables.c:5239 msgid "Selects the dynamic shared memory implementation used." msgstr "動的共有メモリで使用する実装を選択します。" -#: utils/misc/guc_tables.c:4969 +#: utils/misc/guc_tables.c:5249 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "主共有メモリ領域に使用する共有メモリ実装を選択します。" -#: utils/misc/guc_tables.c:4979 +#: utils/misc/guc_tables.c:5259 +msgid "Selects the file copy method." +msgstr "ファイルのコピー方式を選択します。" + +#: utils/misc/guc_tables.c:5269 msgid "Selects the method used for forcing WAL updates to disk." msgstr "WAL更新のディスクへの書き出しを強制するめの方法を選択します。" -#: utils/misc/guc_tables.c:4989 +#: utils/misc/guc_tables.c:5279 msgid "Sets how binary values are to be encoded in XML." msgstr "XMLでどのようにバイナリ値を符号化するかを設定します。" -#: utils/misc/guc_tables.c:4999 +#: utils/misc/guc_tables.c:5289 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "暗黙的なパースおよび直列化操作においてXMLデータを文書とみなすか断片とみなすかを設定します。" -#: utils/misc/guc_tables.c:5010 +#: utils/misc/guc_tables.c:5300 msgid "Use of huge pages on Linux or Windows." msgstr "LinuxおよびWindowsでヒュージページを使用。" -#: utils/misc/guc_tables.c:5020 +#: utils/misc/guc_tables.c:5310 msgid "Indicates the status of huge pages." msgstr "ヒュージページの状態を表示。" -#: utils/misc/guc_tables.c:5031 +#: utils/misc/guc_tables.c:5321 msgid "Prefetch referenced blocks during recovery." msgstr "リカバリ中に被参照ブロックの事前読み込みを行う。" -#: utils/misc/guc_tables.c:5032 +#: utils/misc/guc_tables.c:5322 msgid "Look ahead in the WAL to find references to uncached data." msgstr "キャッシュされていないデータへの参照の検出のためにWALの先読みを行う。" -#: utils/misc/guc_tables.c:5041 +#: utils/misc/guc_tables.c:5331 msgid "Forces the planner's use parallel query nodes." msgstr "プランナに並列問い合わせノードの使用を強制します。" -#: utils/misc/guc_tables.c:5042 +#: utils/misc/guc_tables.c:5332 msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." msgstr "これは並列問い合わせ機構のテストの際に、プランナにワーカーとメインプロセスとの間でタプルのやり取りを行わせるノードを含む実行計画を強制的に生成させるために使用できます。" -#: utils/misc/guc_tables.c:5054 +#: utils/misc/guc_tables.c:5344 msgid "Chooses the algorithm for encrypting passwords." msgstr "パスワードの暗号化に使用するアルゴリズムを選択する。" -#: utils/misc/guc_tables.c:5064 +#: utils/misc/guc_tables.c:5354 msgid "Controls the planner's selection of custom or generic plan." msgstr "プランナでのカスタムプランと汎用プランの選択を制御。" -#: utils/misc/guc_tables.c:5065 +#: utils/misc/guc_tables.c:5355 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "プリペアド文は個別プランと一般プランを持ち、プランナはよりよいプランの選択を試みます。これを設定することでそのデフォルト動作を変更できます。" -#: utils/misc/guc_tables.c:5077 +#: utils/misc/guc_tables.c:5367 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "使用する SSL/TLSプロトコルの最小バージョンを設定。" -#: utils/misc/guc_tables.c:5089 +#: utils/misc/guc_tables.c:5379 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "使用可能な最大の SSL/TLS プロトコルバージョンを指定します。" -#: utils/misc/guc_tables.c:5101 +#: utils/misc/guc_tables.c:5391 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "クラシュリカバリ前に行うデータディレクトリの同期の方法を設定する。" -#: utils/misc/guc_tables.c:5110 +#: utils/misc/guc_tables.c:5400 msgid "Forces immediate streaming or serialization of changes in large transactions." msgstr "大きなトランザクションにおいて、即時ストリーミングまたは変更のシリアライズを強制します。" -#: utils/misc/guc_tables.c:5111 +#: utils/misc/guc_tables.c:5401 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." msgstr "パブリッシャでは、この設定はロジカルでコーディングで個々の変更のストリーミングまたはシリアル化を実行させます。サブスクライバではすべての変更をファイルへシリアライズし、トランザクション終了時にその変更情報の読み出しおよび適用の実行をパラレルワーカーに指示するようにします。" +#: utils/misc/guc_tables.c:5413 +msgid "Selects the method for executing asynchronous I/O." +msgstr "非同期I/Oの実行方式を選択します。" + #: utils/misc/help_config.c:129 #, c-format msgid "internal error: unrecognized run-time parameter type\n" @@ -30043,6 +31382,26 @@ msgstr "問い合わせはテーブル\"%s\"に対する行レベルセキュリ msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." msgstr "テーブルの所有者に対するポリシを無効にするには、ALTER TABLE NO FORCE ROW LEVEL SECURITY を使ってください。" +#: utils/misc/stack_depth.c:101 +#, c-format +msgid "stack depth limit exceeded" +msgstr "スタック長制限を越えました" + +#: utils/misc/stack_depth.c:102 +#, c-format +msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." +msgstr "プラットフォームのスタック長制限が適切であることを確認した後に、設定パラメータ\"max_stack_depth\" (現在 %dkB)を増やしてください。" + +#: utils/misc/stack_depth.c:149 +#, c-format +msgid "\"max_stack_depth\" must not exceed %zdkB." +msgstr "\"max_stack_depth\"は%zdkBを越えてはなりません。" + +#: utils/misc/stack_depth.c:151 +#, c-format +msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." +msgstr "プラットフォームのスタック長制限を\"ulimit -s\"または同等の機能を使用して増加してください" + #: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" @@ -30058,57 +31417,57 @@ msgstr "タイムゾーンファイル\"%3$s\"の%4$d行のタイムゾーン省 msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%2$s\"の%3$d行のタイムゾーンオフセット%1$dは範囲外です" -#: utils/misc/tzparser.c:112 +#: utils/misc/tzparser.c:113 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dでタイムゾーン省略形がありません" -#: utils/misc/tzparser.c:121 +#: utils/misc/tzparser.c:122 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dでタイムゾーンオフセットがありません" -#: utils/misc/tzparser.c:133 +#: utils/misc/tzparser.c:134 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dのタイムゾーンオフセット値が無効です" -#: utils/misc/tzparser.c:169 +#: utils/misc/tzparser.c:170 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dで構文が無効です" -#: utils/misc/tzparser.c:237 +#: utils/misc/tzparser.c:238 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "タイムゾーン省略形\"%s\"が複数定義されています" -#: utils/misc/tzparser.c:239 +#: utils/misc/tzparser.c:240 #, c-format msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d." msgstr "タイムゾーンファイル\"%s\"の行%dの項目は、ファイル\"%s\"の行%dと競合します。" -#: utils/misc/tzparser.c:301 +#: utils/misc/tzparser.c:302 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "タイムゾーンファイル名が無効です: \"%s\"" -#: utils/misc/tzparser.c:314 +#: utils/misc/tzparser.c:315 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "ファイル\"%s\"でタイムゾーンファイルの再帰の上限を超えました。" -#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 +#: utils/misc/tzparser.c:354 utils/misc/tzparser.c:367 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "タイムゾーンファイル\"%s\"を読み込めませんでした: %m" -#: utils/misc/tzparser.c:377 +#: utils/misc/tzparser.c:378 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dが長すぎます。" -#: utils/misc/tzparser.c:401 +#: utils/misc/tzparser.c:403 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "タイムゾーンファイル\"%s\"の行%dにファイル名がない@INCLUDEがあります" @@ -30123,12 +31482,12 @@ msgstr "メモリコンテキスト\"%s\"の作成時に失敗しました" msgid "could not attach to dynamic shared area" msgstr "動的共有エリアをアタッチできませんでした" -#: utils/mmgr/mcxt.c:1155 +#: utils/mmgr/mcxt.c:1231 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "メモリコンテクスト\"%2$s\"でサイズ%1$zuの要求が失敗しました。" -#: utils/mmgr/mcxt.c:1299 +#: utils/mmgr/mcxt.c:1391 #, c-format msgid "logging memory contexts of PID %d" msgstr "PID %dのメモリコンテクストを記録します" @@ -30143,35 +31502,35 @@ msgstr "カーソル\"%s\"はすでに存在します" msgid "closing existing cursor \"%s\"" msgstr "既存のカーソル\"%s\"をクローズしています" -#: utils/mmgr/portalmem.c:401 +#: utils/mmgr/portalmem.c:403 #, c-format msgid "portal \"%s\" cannot be run" msgstr "ポータル\"%s\"を実行できません" -#: utils/mmgr/portalmem.c:479 +#: utils/mmgr/portalmem.c:481 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "固定されたポータル\"%s\"は削除できません" -#: utils/mmgr/portalmem.c:487 +#: utils/mmgr/portalmem.c:489 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "アクティブなポータル\"%s\"は削除できません" -#: utils/mmgr/portalmem.c:738 +#: utils/mmgr/portalmem.c:740 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "WITH HOLD 付きのカーソルを作成したトランザクションは PREPARE できません" -#: utils/mmgr/portalmem.c:1229 +#: utils/mmgr/portalmem.c:1234 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "読み込み専用ではないカーソルのループ内ではトランザクション命令は実行できません" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %lld of temporary file" -msgstr "一時ファイルのブロック%lldへのシークに失敗しました" +msgid "could not seek to block % of temporary file" +msgstr "一時ファイルのブロック%へのシークに失敗しました" #: utils/sort/sharedtuplestore.c:466 #, c-format @@ -30183,77 +31542,77 @@ msgstr "タプルストア共有一時ファイル内に予期しないチャン msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "共有タプルストア一時ファイルのブロック%uへのシークに失敗しました" -#: utils/sort/tuplesort.c:2372 +#: utils/sort/tuplesort.c:2340 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "外部ソートでは%d以上のラン数は扱えません" -#: utils/sort/tuplesortvariants.c:1552 +#: utils/sort/tuplesortvariants.c:1671 #, c-format msgid "could not create unique index \"%s\"" -msgstr "一意インデックス\"%s\"を作成できませんでした" +msgstr "ユニークインデックス\"%s\"を作成できませんでした" -#: utils/sort/tuplesortvariants.c:1554 +#: utils/sort/tuplesortvariants.c:1673 #, c-format msgid "Key %s is duplicated." msgstr "キー%sは重複しています。" -#: utils/sort/tuplesortvariants.c:1555 +#: utils/sort/tuplesortvariants.c:1674 #, c-format msgid "Duplicate keys exist." msgstr "重複したキーが存在します。" -#: utils/sort/tuplestore.c:518 utils/sort/tuplestore.c:528 utils/sort/tuplestore.c:869 utils/sort/tuplestore.c:973 utils/sort/tuplestore.c:1037 utils/sort/tuplestore.c:1054 utils/sort/tuplestore.c:1256 utils/sort/tuplestore.c:1321 utils/sort/tuplestore.c:1330 +#: utils/sort/tuplestore.c:552 utils/sort/tuplestore.c:562 utils/sort/tuplestore.c:921 utils/sort/tuplestore.c:1025 utils/sort/tuplestore.c:1089 utils/sort/tuplestore.c:1106 utils/sort/tuplestore.c:1308 utils/sort/tuplestore.c:1373 utils/sort/tuplestore.c:1382 #, c-format msgid "could not seek in tuplestore temporary file" msgstr "タプルストア一時ファイルのシークに失敗しました" -#: utils/time/snapmgr.c:536 +#: utils/time/snapmgr.c:557 #, c-format msgid "The source transaction is not running anymore." msgstr "元となるトランザクションはすでに実行中ではありません。" -#: utils/time/snapmgr.c:1136 +#: utils/time/snapmgr.c:1143 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "サブトランザクションからスナップショットをエクスポートすることはできません" -#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 +#: utils/time/snapmgr.c:1303 utils/time/snapmgr.c:1308 utils/time/snapmgr.c:1313 utils/time/snapmgr.c:1328 utils/time/snapmgr.c:1333 utils/time/snapmgr.c:1338 utils/time/snapmgr.c:1353 utils/time/snapmgr.c:1358 utils/time/snapmgr.c:1363 utils/time/snapmgr.c:1477 utils/time/snapmgr.c:1493 utils/time/snapmgr.c:1518 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "ファイル\"%s\"内のスナップショットデータが不正です" -#: utils/time/snapmgr.c:1393 +#: utils/time/snapmgr.c:1400 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOTを全ての問い合わせの前に呼び出さなければなりません" -#: utils/time/snapmgr.c:1402 +#: utils/time/snapmgr.c:1409 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "スナップショットをインポートするトランザクションはSERIALIZABLEまたはREPEATABLE READ分離レベルでなければなりません" -#: utils/time/snapmgr.c:1411 +#: utils/time/snapmgr.c:1418 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "無効なスナップショット識別子: \"%s\"" -#: utils/time/snapmgr.c:1426 +#: utils/time/snapmgr.c:1433 #, c-format msgid "snapshot \"%s\" does not exist" msgstr "スナップショット\"%s\"は存在しません" -#: utils/time/snapmgr.c:1524 +#: utils/time/snapmgr.c:1531 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "シリアライザブルトランザクションはシリアライザブルではないトランザクションからのスナップショットをインポートできません" -#: utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1535 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "読み取り専用のシリアライザブルトランザクションでは、読み取り専用トランザクションからスナップショットをインポートすることができません" -#: utils/time/snapmgr.c:1543 +#: utils/time/snapmgr.c:1550 #, c-format msgid "cannot import a snapshot from a different database" msgstr "異なるデータベースからのスナップショットを読み込むことはできません" diff --git a/src/backend/po/ka.po b/src/backend/po/ka.po index f626631f51660..23730e7181862 100644 --- a/src/backend/po/ka.po +++ b/src/backend/po/ka.po @@ -1,14 +1,14 @@ # Georgian message translation file for postgres # Copyright (C) 2023 PostgreSQL Global Development Group # This file is distributed under the same license as the postgres (PostgreSQL) package. -# Temuri Doghonadze , 2022-2023. +# Temuri Doghonadze , 2022-2025. # msgid "" msgstr "" -"Project-Id-Version: postgres (PostgreSQL) 17\n" +"Project-Id-Version: postgres (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:13+0000\n" -"PO-Revision-Date: 2024-06-14 06:17+0200\n" +"POT-Creation-Date: 2025-04-18 10:14+0000\n" +"PO-Revision-Date: 2025-04-19 04:44+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,7 +16,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../common/binaryheap.c:121 ../common/binaryheap.c:159 #, c-format @@ -76,25 +76,25 @@ msgstr "შეკუმშვის ალგორითმს \"%s\" long-dist msgid "not recorded" msgstr "ჩაწერილი არაა" -#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 commands/copyfrom.c:1737 commands/extension.c:3538 utils/adt/genfile.c:123 utils/time/snapmgr.c:1430 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 commands/copyfrom.c:1879 commands/extension.c:3807 utils/adt/genfile.c:123 utils/time/snapmgr.c:1437 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1369 access/transam/xlog.c:3471 access/transam/xlog.c:4335 access/transam/xlogrecovery.c:1238 access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 -#: replication/logical/origin.c:745 replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5084 replication/logical/snapbuild.c:2035 replication/slot.c:2236 replication/slot.c:2277 replication/walsender.c:655 storage/file/buffile.c:470 storage/file/copydir.c:185 utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1353 access/transam/xlog.c:3621 access/transam/xlog.c:4512 access/transam/xlogrecovery.c:1246 access/transam/xlogrecovery.c:1344 access/transam/xlogrecovery.c:1381 access/transam/xlogrecovery.c:1448 backup/basebackup.c:2128 backup/walsummary.c:283 commands/extension.c:3817 libpq/hba.c:769 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5236 replication/logical/snapbuild.c:1943 replication/slot.c:2430 replication/slot.c:2471 replication/walsender.c:629 storage/file/buffile.c:470 storage/file/copydir.c:201 utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" -#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 access/transam/xlog.c:3476 access/transam/xlog.c:4340 replication/logical/origin.c:750 replication/logical/origin.c:789 replication/logical/snapbuild.c:2040 replication/slot.c:2240 replication/slot.c:2281 replication/walsender.c:660 utils/cache/relmapper.c:833 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 access/transam/xlog.c:3626 access/transam/xlog.c:4517 replication/logical/origin.c:750 replication/logical/origin.c:789 replication/logical/snapbuild.c:1948 replication/slot.c:2434 replication/slot.c:2475 replication/walsender.c:634 utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" -#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1381 access/transam/twophase.c:1793 access/transam/xlog.c:3317 access/transam/xlog.c:3511 access/transam/xlog.c:3516 access/transam/xlog.c:3652 -#: access/transam/xlog.c:4305 access/transam/xlog.c:5239 commands/copyfrom.c:1797 commands/copyto.c:325 libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 replication/logical/origin.c:683 replication/logical/origin.c:822 replication/logical/reorderbuffer.c:5136 replication/logical/snapbuild.c:1802 replication/logical/snapbuild.c:1926 replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 storage/file/copydir.c:208 storage/file/copydir.c:213 -#: storage/file/fd.c:828 storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 utils/cache/relmapper.c:956 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1365 access/transam/twophase.c:1783 access/transam/xlog.c:3467 access/transam/xlog.c:3661 access/transam/xlog.c:3666 access/transam/xlog.c:3802 +#: access/transam/xlog.c:4482 access/transam/xlog.c:5458 commands/copyfrom.c:1929 commands/copyto.c:598 libpq/be-fsstubs.c:475 libpq/be-fsstubs.c:545 replication/logical/origin.c:683 replication/logical/origin.c:822 replication/logical/reorderbuffer.c:5288 replication/logical/snapbuild.c:1688 replication/logical/snapbuild.c:1814 replication/slot.c:2319 replication/slot.c:2482 replication/walsender.c:644 storage/file/copydir.c:224 storage/file/copydir.c:229 +#: storage/file/copydir.c:284 storage/file/copydir.c:289 storage/file/fd.c:828 storage/file/fd.c:3818 storage/file/fd.c:3924 utils/cache/relmapper.c:841 utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "ფაილის (%s) დახურვის შეცდომა: %m" @@ -115,41 +115,41 @@ msgstr "" "ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" "მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." -#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 ../common/file_utils.c:70 ../common/file_utils.c:347 ../common/file_utils.c:406 ../common/file_utils.c:480 access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1325 access/transam/xlog.c:3224 access/transam/xlog.c:3387 access/transam/xlog.c:3426 access/transam/xlog.c:3619 access/transam/xlog.c:4325 -#: access/transam/xlogrecovery.c:4263 access/transam/xlogrecovery.c:4366 access/transam/xlogutils.c:836 backup/basebackup.c:547 backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 postmaster/syslogger.c:1511 replication/logical/origin.c:735 replication/logical/reorderbuffer.c:3737 replication/logical/reorderbuffer.c:4291 replication/logical/reorderbuffer.c:5064 replication/logical/snapbuild.c:1757 replication/logical/snapbuild.c:1867 -#: replication/slot.c:2208 replication/walsender.c:628 replication/walsender.c:3051 storage/file/copydir.c:151 storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 utils/cache/relmapper.c:935 utils/error/elog.c:2091 utils/init/miscinit.c:1526 utils/init/miscinit.c:1660 utils/init/miscinit.c:1737 utils/misc/guc.c:4727 utils/misc/guc.c:4777 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 ../common/file_utils.c:69 ../common/file_utils.c:370 ../common/file_utils.c:428 ../common/file_utils.c:502 access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1309 access/transam/xlog.c:3357 access/transam/xlog.c:3537 access/transam/xlog.c:3576 access/transam/xlog.c:3769 access/transam/xlog.c:4502 +#: access/transam/xlogrecovery.c:4285 access/transam/xlogrecovery.c:4386 access/transam/xlogutils.c:825 backup/basebackup.c:549 backup/basebackup.c:1600 backup/walsummary.c:220 libpq/hba.c:626 postmaster/syslogger.c:1512 replication/logical/origin.c:735 replication/logical/reorderbuffer.c:3889 replication/logical/reorderbuffer.c:4443 replication/logical/reorderbuffer.c:5216 replication/logical/snapbuild.c:1643 replication/logical/snapbuild.c:1755 +#: replication/slot.c:2402 replication/walsender.c:602 replication/walsender.c:3056 storage/file/copydir.c:167 storage/file/copydir.c:255 storage/file/fd.c:803 storage/file/fd.c:3575 storage/file/fd.c:3805 storage/file/fd.c:3895 storage/smgr/md.c:675 utils/cache/relmapper.c:818 utils/cache/relmapper.c:935 utils/error/elog.c:2149 utils/init/miscinit.c:1585 utils/init/miscinit.c:1719 utils/init/miscinit.c:1796 utils/misc/guc.c:4774 utils/misc/guc.c:4824 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 access/transam/twophase.c:1766 access/transam/twophase.c:1775 access/transam/xlog.c:9210 access/transam/xlogfuncs.c:698 backup/basebackup_server.c:173 backup/basebackup_server.c:266 backup/walsummary.c:304 postmaster/postmaster.c:4125 postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 access/transam/twophase.c:1756 access/transam/twophase.c:1765 access/transam/xlog.c:9467 access/transam/xlogfuncs.c:699 backup/basebackup_server.c:173 backup/basebackup_server.c:266 backup/walsummary.c:304 postmaster/postmaster.c:4098 postmaster/syslogger.c:1523 postmaster/syslogger.c:1536 postmaster/syslogger.c:1549 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 ../common/file_utils.c:418 ../common/file_utils.c:488 access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1787 access/transam/xlog.c:3310 access/transam/xlog.c:3505 access/transam/xlog.c:4298 access/transam/xlog.c:8585 access/transam/xlog.c:8630 -#: backup/basebackup_server.c:207 commands/dbcommands.c:514 replication/logical/snapbuild.c:1795 replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 storage/file/fd.c:3851 storage/smgr/md.c:1329 storage/smgr/md.c:1374 storage/sync/sync.c:446 utils/misc/guc.c:4480 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 ../common/file_utils.c:440 ../common/file_utils.c:510 access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1777 access/transam/xlog.c:3457 access/transam/xlog.c:3655 access/transam/xlog.c:4475 access/transam/xlog.c:8853 access/transam/xlog.c:8897 +#: backup/basebackup_server.c:207 commands/dbcommands.c:515 replication/logical/snapbuild.c:1681 replication/slot.c:2305 replication/slot.c:2412 storage/file/fd.c:820 storage/file/fd.c:3916 storage/smgr/md.c:1455 storage/smgr/md.c:1515 storage/sync/sync.c:446 utils/misc/guc.c:4527 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 ../common/md5_common.c:156 ../common/parse_manifest.c:157 ../common/parse_manifest.c:853 ../common/psprintf.c:143 ../common/scram-common.c:269 ../common/stringinfo.c:314 ../port/path.c:751 ../port/path.c:788 -#: ../port/path.c:805 access/transam/twophase.c:1434 access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 postmaster/bgworker.c:355 postmaster/bgworker.c:945 postmaster/postmaster.c:3559 postmaster/postmaster.c:4019 postmaster/postmaster.c:4381 postmaster/walsummarizer.c:820 replication/libpqwalreceiver/libpqwalreceiver.c:387 replication/logical/logical.c:209 replication/walsender.c:835 -#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1453 storage/ipc/procarray.c:2207 storage/ipc/procarray.c:2214 storage/ipc/procarray.c:2719 storage/ipc/procarray.c:3423 utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 utils/adt/formatting.c:2075 utils/adt/pg_locale.c:509 utils/adt/pg_locale.c:673 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 -#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 utils/misc/guc.c:4458 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 utils/mmgr/slab.c:370 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 ../common/cryptohash_openssl.c:356 ../common/exec.c:543 ../common/exec.c:588 ../common/exec.c:680 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:151 ../common/hmac_openssl.c:339 ../common/jsonapi.c:2407 ../common/md5_common.c:156 ../common/parse_manifest.c:157 ../common/parse_manifest.c:852 ../common/psprintf.c:140 ../common/scram-common.c:268 ../port/path.c:829 ../port/path.c:866 +#: ../port/path.c:883 access/transam/twophase.c:1418 access/transam/xlogrecovery.c:570 lib/dshash.c:253 libpq/auth.c:1345 libpq/auth.c:1389 libpq/auth.c:1951 libpq/be-secure-gssapi.c:527 postmaster/bgworker.c:355 postmaster/bgworker.c:1022 postmaster/postmaster.c:3568 postmaster/walsummarizer.c:942 replication/libpqwalreceiver/libpqwalreceiver.c:351 replication/logical/logical.c:210 replication/walsender.c:811 storage/buffer/localbuf.c:745 storage/file/fd.c:912 +#: storage/file/fd.c:1447 storage/file/fd.c:1608 storage/file/fd.c:2592 storage/ipc/procarray.c:1465 storage/ipc/procarray.c:2217 storage/ipc/procarray.c:2224 storage/ipc/procarray.c:2727 storage/ipc/procarray.c:3436 utils/adt/pg_locale.c:509 utils/adt/pg_locale.c:583 utils/adt/pg_locale_icu.c:358 utils/adt/pg_locale_libc.c:207 utils/adt/pg_locale_libc.c:302 utils/adt/pg_locale_libc.c:390 utils/fmgr/dfmgr.c:219 utils/hash/dynahash.c:516 utils/hash/dynahash.c:616 +#: utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:647 utils/misc/guc.c:672 utils/misc/guc.c:1060 utils/misc/guc.c:4505 utils/misc/tzparser.c:479 utils/mmgr/aset.c:451 utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1230 utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" -#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 ../common/hmac_openssl.c:377 +#: ../common/cryptohash.c:266 ../common/cryptohash.c:272 ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:351 ../common/hmac_openssl.c:359 msgid "success" msgstr "წარმატება" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 ../common/hmac_openssl.c:371 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 ../common/hmac_openssl.c:353 msgid "destination buffer too small" msgstr "სამიზნე ბუფერი ძალიან პატარაა" -#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:355 msgid "OpenSSL failure" msgstr "OpenSSL -ის სეცდომა" @@ -173,27 +173,27 @@ msgstr "გასაშვებად ფაილის \"%s\" პოვნა msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "ბილიკის (\"%s\") აბსოლუტურ ფორმაში ამოხსნის შეცდომა: %m" -#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1721 commands/copyto.c:649 libpq/be-secure-common.c:59 +#: ../common/exec.c:363 commands/collationcmds.c:872 commands/copyfrom.c:1863 commands/copyto.c:934 libpq/be-secure-common.c:59 #, c-format msgid "could not execute command \"%s\": %m" msgstr "ბრძანების (\"%s\") შესრულების შეცდომა: %m" -#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#: ../common/exec.c:375 libpq/be-secure-common.c:71 #, c-format msgid "could not read from command \"%s\": %m" msgstr "ბრძანებიდან \"%s\" წაკითხვის შეცდომა: %m" -#: ../common/exec.c:397 +#: ../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "ბრძანებამ \"%s\" მონაცემები არ დააბრუნა" -#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 storage/ipc/latch.c:1349 storage/ipc/latch.c:1582 storage/ipc/latch.c:1744 storage/ipc/latch.c:1870 +#: ../common/exec.c:405 libpq/pqcomm.c:193 storage/ipc/waiteventset.c:782 storage/ipc/waiteventset.c:962 storage/ipc/waiteventset.c:1202 storage/ipc/waiteventset.c:1364 storage/ipc/waiteventset.c:1490 #, c-format msgid "%s() failed: %m" msgstr "%s()-ის შეცდომა: %m" -#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:790 ../port/path.c:807 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 +#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 ../common/psprintf.c:142 ../port/path.c:831 ../port/path.c:868 ../port/path.c:885 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 #, c-format msgid "out of memory\n" msgstr "არასაკმარისი მეხსიერება\n" @@ -203,33 +203,33 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#: ../common/file_utils.c:75 storage/file/fd.c:3581 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../common/file_utils.c:120 ../common/file_utils.c:566 ../common/file_utils.c:570 access/transam/twophase.c:1337 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1747 commands/copyto.c:695 commands/extension.c:3527 commands/tablespace.c:804 commands/tablespace.c:893 postmaster/pgarch.c:680 -#: replication/logical/snapbuild.c:1653 replication/logical/snapbuild.c:2156 storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 +#: ../common/file_utils.c:123 ../common/file_utils.c:588 ../common/file_utils.c:592 access/transam/twophase.c:1321 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 backup/basebackup.c:357 backup/basebackup.c:555 backup/basebackup.c:626 backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1889 commands/copyto.c:980 commands/extension.c:3796 commands/tablespace.c:804 commands/tablespace.c:893 postmaster/pgarch.c:682 +#: replication/logical/snapbuild.c:1538 replication/logical/snapbuild.c:2065 storage/file/fd.c:1972 storage/file/fd.c:2060 storage/file/fd.c:3629 utils/adt/dbsize.c:105 utils/adt/dbsize.c:266 utils/adt/dbsize.c:355 utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#: ../common/file_utils.c:133 ../common/file_utils.c:243 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../common/file_utils.c:151 ../common/file_utils.c:281 ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 commands/tablespace.c:738 postmaster/postmaster.c:1468 storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:339 +#: ../common/file_utils.c:156 ../common/file_utils.c:304 ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 commands/tablespace.c:738 postmaster/postmaster.c:1496 storage/file/fd.c:2997 storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:340 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../common/file_utils.c:169 ../common/file_utils.c:315 ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 +#: ../common/file_utils.c:174 ../common/file_utils.c:338 ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:3009 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 postmaster/pgarch.c:834 postmaster/syslogger.c:1559 replication/logical/snapbuild.c:1814 replication/slot.c:936 replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 utils/time/snapmgr.c:1255 +#: ../common/file_utils.c:520 access/transam/xlogarchive.c:389 postmaster/pgarch.c:836 postmaster/syslogger.c:1560 replication/logical/snapbuild.c:1700 replication/slot.c:987 replication/slot.c:2191 replication/slot.c:2333 storage/file/fd.c:838 utils/time/snapmgr.c:1262 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -238,283 +238,287 @@ msgstr "გადარქმევის შეცდომა %s - %s: %m" msgid "internal error" msgstr "შიდა შეცდომა" -#: ../common/jsonapi.c:2121 +#: ../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "რეკურსიულ დაღმავალ დამმუშავებელს ინკრემენტული lexer-ის გამოყენება არ შეუძლია." -#: ../common/jsonapi.c:2123 +#: ../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "ინკრემენტულ დამმუშავებელს ინკრემენტული lexer სჭირდება." -#: ../common/jsonapi.c:2125 +#: ../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSON მეტისმეტად ღრმადაა ერთმანეთში ჩალაგებული. მაქსიმალური დასაშვები სიღრმეა 6400." -#: ../common/jsonapi.c:2127 +#: ../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "სპეციალური მიმდევრობა \"\\%.*s\" არასწორია." -#: ../common/jsonapi.c:2131 +#: ../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "სიმბოლო კოდით 0x%02x აუცილებლად ეკრანირებული უნდა იყოს." -#: ../common/jsonapi.c:2135 +#: ../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "მოველოდი შეყვანის დასასრულს, მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2138 +#: ../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "მოველოდი მასივის ელემენტს ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2141 +#: ../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "მოველოდი \",\" ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2144 +#: ../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "მოველოდი \":\", მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2147 +#: ../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "მოველოდი JSON მნიშვნელობას. მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2150 +#: ../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "შეყვანის სტრიქონი მოულოდნელად დასრულდა." -#: ../common/jsonapi.c:2152 +#: ../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "მოველოდი სტრიქონს ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2155 +#: ../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "მოველოდი \",\", ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2158 +#: ../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "მოველოდი სტრიქონს, მაგრამ მივიღე \"%.*s\"." -#: ../common/jsonapi.c:2161 +#: ../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "კოდი \"%.*s\" არასწორია." -#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 +#: ../common/jsonapi.c:2478 jsonpath_scan.l:585 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 ტექსტად ვერ გარდაიქმნება." -#: ../common/jsonapi.c:2166 +#: ../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\" ს თექვსმეტობითი ციფრები უნდა მოჰყვებოდეს." -#: ../common/jsonapi.c:2169 +#: ../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "უნიკოდის სპეციალური კოდების გამოყენება კოდის წერტილის მნიშვნელობებად 007F-ის ზემოთ შეუძლებელია, თუ კოდირება UTF-8 არაა." -#: ../common/jsonapi.c:2178 +#: ../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "უნიკოდის სპეციალური კოდების სერვერის კოდირებაში (%s) თარგმნა შეუძლებელია." -#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 +#: ../common/jsonapi.c:2499 jsonpath_scan.l:618 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "უნიკოდის მაღალ სუროგატს მაღალი სუროგატი არ უნდა მოსდევდეს." -#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 jsonpath_scan.l:713 +#: ../common/jsonapi.c:2501 jsonpath_scan.l:629 jsonpath_scan.l:639 jsonpath_scan.l:691 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "უნიკოდის დაბალი სუროგატი მაღალ სუროგატს უნდა მისდევდეს." -#: ../common/logging.c:276 +#: ../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "არასაკმარისი მეხსიერება შეცდომის აღწერის აგებისას" + +#: ../common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../common/logging.c:283 +#: ../common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../common/logging.c:294 +#: ../common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../common/logging.c:301 +#: ../common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " -#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:855 +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის ინიციალიზაციის შეცდომა" -#: ../common/parse_manifest.c:204 ../common/parse_manifest.c:261 +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "მანიფესტი მოულოდნელად დასრულდა" -#: ../common/parse_manifest.c:210 ../common/parse_manifest.c:862 +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის განახლების შეცდომა" -#: ../common/parse_manifest.c:302 +#: ../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "ობიექტის მოულოდნელი დასაწყისი" -#: ../common/parse_manifest.c:337 +#: ../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "ობიექტის მოულოდნელი დასასრული" -#: ../common/parse_manifest.c:366 +#: ../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "მასივის მოულოდნელი დასაწყისი" -#: ../common/parse_manifest.c:391 +#: ../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "მასივის მოულოდნელი დასასრული" -#: ../common/parse_manifest.c:418 +#: ../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "მოსალოდნელი ვერსიის მაჩვენებელი" -#: ../common/parse_manifest.c:454 +#: ../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "უცნობი ველი ზედა დონეზე" -#: ../common/parse_manifest.c:473 +#: ../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "მოულოდნელი ველი ფაილისთვის" -#: ../common/parse_manifest.c:487 +#: ../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "მოულოდნელი ველი WAL-ის დიაპაზონისთვის" -#: ../common/parse_manifest.c:493 +#: ../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "ობიექტის მოულოდნელი ველი" -#: ../common/parse_manifest.c:583 +#: ../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "მოულოდნელი სკალარი" -#: ../common/parse_manifest.c:609 +#: ../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "მანიფესტის ვერსია მთელი რიცხვი არაა" -#: ../common/parse_manifest.c:613 +#: ../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "მანიფესტის მოულოდნელი ვერსია" -#: ../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" msgstr "მანიფესტის სისტემის იდენფიტიკატორი მთელი რიცხვი არაა" -#: ../common/parse_manifest.c:662 +#: ../common/parse_manifest.c:661 msgid "missing path name" msgstr "აკლია ბილიკის სახელი" -#: ../common/parse_manifest.c:665 +#: ../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "ორივე, ბილიკის სახელი და ბილიკის კოდირებული სახელი" -#: ../common/parse_manifest.c:667 +#: ../common/parse_manifest.c:666 msgid "missing size" msgstr "ზომა აკლია" -#: ../common/parse_manifest.c:670 +#: ../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "საკონტროლო ჯამი ალგორითმის გარეშე" -#: ../common/parse_manifest.c:684 +#: ../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ფაილის სახელის გაშიფვრის შეცდომა" -#: ../common/parse_manifest.c:694 +#: ../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ფაილის ზომა მთელი რიცხვი არაა" -#: ../common/parse_manifest.c:700 backup/basebackup.c:870 +#: ../common/parse_manifest.c:699 backup/basebackup.c:872 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "საკონტროლო ჯამის უცნობი ალგორითმი: \"%s\"" -#: ../common/parse_manifest.c:719 +#: ../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "არასწორი საკონტროლო ჯამი ფაილისთვის \"%s\": \"%s\"" -#: ../common/parse_manifest.c:762 +#: ../common/parse_manifest.c:761 msgid "missing timeline" msgstr "აკლია დროის ხაზი" -#: ../common/parse_manifest.c:764 +#: ../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "აკლია საწყისი LSN" -#: ../common/parse_manifest.c:766 +#: ../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "აკლია დასასრულის LSN" -#: ../common/parse_manifest.c:772 +#: ../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "დროის ხაზი მთელი რიცხვი არაა" -#: ../common/parse_manifest.c:775 +#: ../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "საწყისი LSN-ის დამუშავების შეცდომა" -#: ../common/parse_manifest.c:778 +#: ../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "საბოლოო LSN-ის დამუშავების შეცდომა" -#: ../common/parse_manifest.c:843 +#: ../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "ველოდებოდი სულ ცოტა 2 ხაზს" -#: ../common/parse_manifest.c:846 +#: ../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "ბოლო ხაზი ხაზის გადატანით არ სრულდება" -#: ../common/parse_manifest.c:865 +#: ../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის დასრულების შეცდომა" -#: ../common/parse_manifest.c:869 +#: ../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "მანიფესტის საკონტროლო ჯამი არ გააჩნია" -#: ../common/parse_manifest.c:873 +#: ../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "მანიფესტის საკონტროლო ჯამის არასწორია: %s" -#: ../common/parse_manifest.c:877 +#: ../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "მანიფესტის საკონტროლო ჯამი არ ემთხვევა" -#: ../common/parse_manifest.c:892 +#: ../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "მარქაფის მანიფესტის დამუშავების შეცრომა: %s" -#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 ../common/percentrepl.c:118 ../common/percentrepl.c:124 tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 utils/misc/guc.c:3283 utils/misc/guc.c:4662 utils/misc/guc.c:6887 utils/misc/guc.c:6928 +#: ../common/percentrepl.c:79 ../common/percentrepl.c:85 ../common/percentrepl.c:118 ../common/percentrepl.c:124 tcop/backend_startup.c:769 utils/misc/guc.c:3164 utils/misc/guc.c:3205 utils/misc/guc.c:3280 utils/misc/guc.c:4709 utils/misc/guc.c:6929 utils/misc/guc.c:6970 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "არასწორი მნიშვნელობა პარამეტრისთვის \"%s\": \"%s\"" @@ -574,51 +578,56 @@ msgstr "შეზღუდულ კოდის ხელახლა შეს msgid "could not get exit code from subprocess: error code %lu" msgstr "ქვეპროცესიდან გასასვლელი კოდი ვერ მივიღე: შეცდომის კოდი %lu" -#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 access/transam/twophase.c:1726 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 postmaster/syslogger.c:1488 replication/logical/origin.c:591 replication/logical/reorderbuffer.c:4560 replication/logical/snapbuild.c:1695 replication/logical/snapbuild.c:2129 replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 storage/file/fd.c:3440 -#: storage/file/reinit.c:261 storage/ipc/dsm.c:343 storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 utils/time/snapmgr.c:1591 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 access/transam/twophase.c:1716 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:399 postmaster/postmaster.c:1069 postmaster/syslogger.c:1489 replication/logical/origin.c:591 replication/logical/reorderbuffer.c:4711 replication/logical/snapbuild.c:1581 replication/logical/snapbuild.c:2037 replication/slot.c:2386 storage/file/fd.c:878 storage/file/fd.c:3443 storage/file/fd.c:3505 +#: storage/file/reinit.c:261 storage/ipc/dsm.c:343 storage/smgr/md.c:401 storage/smgr/md.c:460 storage/sync/sync.c:243 utils/time/snapmgr.c:1598 #, c-format msgid "could not remove file \"%s\": %m" msgstr "ფაილის წაშლის შეცდომა \"%s\": %m" -#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 storage/file/fd.c:3779 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3435 storage/file/fd.c:3844 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "საქაღალდის (\"%s\") წაშლის შეცდომა: %m" -#: ../common/scram-common.c:282 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "მარილის კოდირების შეცდომა" -#: ../common/scram-common.c:298 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "დამახსოვრებული გასაღების კოდირების შეცდომა" -#: ../common/scram-common.c:315 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "სერვერის გასაღების კოდირების შეცდომა" -#: ../common/stringinfo.c:315 +#: ../common/stringinfo.c:362 +#, c-format +msgid "string buffer exceeds maximum allowed length (%zu bytes)" +msgstr "სტიქონის ბუფერი გადასცდა მაქსიმალურ დასაშვებ სიგრძეს (%zu ბაიტი)" + +#: ../common/stringinfo.c:363 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "სტრიქონების ბაფერის, რომელიც უკვე შეიცავს %d ბაიტს, %d ბაიტით ვერ გავადიდებ." -#: ../common/stringinfo.c:319 +#: ../common/stringinfo.c:367 #, c-format msgid "" -"out of memory\n" +"string buffer exceeds maximum allowed length (%zu bytes)\n" "\n" "Cannot enlarge string buffer containing %d bytes by %d more bytes.\n" msgstr "" -"არასაკმარისი მეხსიერების\n" +"სტიქონის ბუფერი გადასცდა მაქსიმალურ დასაშვებ სიგრძეს (%zu ბაიტი)\n" "\n" -"შეუძლებელია სტრიქონის ბუფერის (%d ბაიტიგ) აფართოება %d ბაიტით.\n" +"%d ბაიტის შემცველი სტრიქონის ბუფერის კიდევ %d ბაიტით გადიდება შეუძლებელია.\n" #: ../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" msgstr "მომხმარებლის ეფექტური ID-ის (%ld) ამოხსნა შეუძლებელია: %s" -#: ../common/username.c:45 libpq/auth.c:1888 +#: ../common/username.c:45 msgid "user does not exist" msgstr "მომხმარებელი არ არსებობს" @@ -657,12 +666,12 @@ msgstr "პროცესი გაჩერდა სიგნალით: %d msgid "child process exited with unrecognized status %d" msgstr "შვილი პროცესი დასრულდა უცნობი სტატუსით %d" -#: ../port/chklocale.c:283 +#: ../port/chklocale.c:280 #, c-format msgid "could not determine encoding for codeset \"%s\"" msgstr "კოდირების დადგენა ვერ მოხერხდა \"%s\"-ისთვის" -#: ../port/chklocale.c:404 ../port/chklocale.c:410 +#: ../port/chklocale.c:370 ../port/chklocale.c:376 #, c-format msgid "could not determine encoding for locale \"%s\": codeset is \"%s\"" msgstr "ენისთვის \"%s\" კოდირების დადგენა ვერ მოხერხდა: კოდების ნაკრები არის \"%s\"" @@ -710,7 +719,7 @@ msgstr "ვაგრძელებ თავიდან ცდას 30 წა msgid "You might have antivirus, backup, or similar software interfering with the database system." msgstr "შეიძლება თქვენი ანტივირუსი, მარქაფი ან რამე სხვა პროგრამა ხელს უშლის მონაცემთა ბაზის სისტემის მუშაობას." -#: ../port/path.c:775 +#: ../port/path.c:853 #, c-format msgid "could not get current working directory: %m\n" msgstr "მიმდინარე სამუშაო საქაღალდის მიღების შეცდომა: %m\n" @@ -720,16 +729,6 @@ msgstr "მიმდინარე სამუშაო საქაღალ msgid "operating system error %d" msgstr "ოპერაციული სისტემის შეცდომა %d" -#: ../port/user.c:43 ../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "ლოკალური მომხმარებლის ID-ის (%d) ამოხსნა შეუძლებელია: %s" - -#: ../port/user.c:48 ../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "ლოკალური მომხმარებელი ID-ით %d არ არსებობს" - #: ../port/win32security.c:62 #, c-format msgid "could not get SID for Administrators group: error code %lu\n" @@ -745,47 +744,47 @@ msgstr "ვერ მივიღე SID PowerUsers ჯგუფისთვი msgid "could not check access token membership: error code %lu\n" msgstr "კოდის წევრობის წვდომის შემოწმების შეცდომა: შეცდომის კოდი %lu\n" -#: access/brin/brin.c:405 +#: access/brin/brin.c:414 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "\"BRIN\" შეჯამების დიაპაზონის ინდექსისთვის \"%s\" გვერდი %u ჩაწერილი არაა" -#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 +#: access/brin/brin.c:1397 access/brin/brin.c:1504 access/gin/ginfast.c:1040 access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:242 access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:323 access/transam/xlogfuncs.c:389 access/transam/xlogfuncs.c:447 statistics/attribute_stats.c:190 statistics/attribute_stats.c:931 statistics/relation_stats.c:97 #, c-format msgid "recovery is in progress" msgstr "აღდგენა მიმდინარეობს" -#: access/brin/brin.c:1386 access/brin/brin.c:1494 +#: access/brin/brin.c:1398 access/brin/brin.c:1505 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "აღდგენის დროს BRIN კონტროლის ფუნქციების შესრულება შეუძლებელია." -#: access/brin/brin.c:1391 access/brin/brin.c:1499 +#: access/brin/brin.c:1403 access/brin/brin.c:1510 #, c-format -msgid "block number out of range: %lld" -msgstr "ბლოკების რაოდენობა დიაპაზონს გარეთაა: %lld" +msgid "block number out of range: %" +msgstr "ბლოკების რაოდენობა დიაპაზონს გარეთაა: %" -#: access/brin/brin.c:1436 access/brin/brin.c:1525 +#: access/brin/brin.c:1447 access/brin/brin.c:1536 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" BRIN ინდექსი არაა" -#: access/brin/brin.c:1452 access/brin/brin.c:1541 +#: access/brin/brin.c:1463 access/brin/brin.c:1552 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "ინდექსის \"%s\" მშობელი ცხრილის გახსნის შეცდომა" -#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 parser/parse_utilcmd.c:2252 +#: access/brin/brin.c:1472 access/brin/brin.c:1568 access/gin/ginfast.c:1085 parser/parse_utilcmd.c:2433 #, c-format msgid "index \"%s\" is not valid" msgstr "ინდექსი არასწორია: \"%s\"" -#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 statistics/dependencies.c:661 statistics/dependencies.c:714 statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 +#: access/brin/brin_bloom.c:784 access/brin/brin_bloom.c:826 access/brin/brin_minmax_multi.c:2984 access/brin/brin_minmax_multi.c:3121 statistics/dependencies.c:661 statistics/dependencies.c:714 statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format msgid "cannot accept a value of type %s" msgstr "მნიშვნელობის ეს ტიპი მიუღებელია: %s" -#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 access/spgist/spgdoinsert.c:2278 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 access/gist/gist.c:1475 access/spgist/spgdoinsert.c:2001 access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "ინდექსის მწკრივის ზომა %zu მაქსიმუმზე (%zu) მეტია ინდექსისთვის \"%s\"" @@ -800,77 +799,77 @@ msgstr "დაზიანებული BRIN ინდექსი: დია msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "გვერდის მოულოდნელი ტიპი 0x%04X BRIN ინდექსში \"%s\" ბლოკში %u" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 +#: access/brin/brin_validate.c:111 access/gin/ginvalidate.c:142 access/gist/gistvalidate.c:150 access/hash/hashvalidate.c:112 access/nbtree/nbtvalidate.c:116 access/spgist/spgvalidate.c:181 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "ოპერატორის ოჯახი \"%s\" წვდომის მეთოდიდან %s შეიცავს ფუნქციას %s არასწორი მხარდაჭერის ნომრით %d" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 +#: access/brin/brin_validate.c:127 access/gin/ginvalidate.c:154 access/gist/gistvalidate.c:162 access/hash/hashvalidate.c:124 access/nbtree/nbtvalidate.c:128 access/spgist/spgvalidate.c:193 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "ოპერატორის ოჯახი (\"%s\") (წვდომის მეთოდისგან %s) შეიცავს ფუნქციას %s, რომელსაც არასწორი ხელმოწერა აქვს მხარდაჭერის ნომრით %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 +#: access/brin/brin_validate.c:149 access/gin/ginvalidate.c:173 access/gist/gistvalidate.c:182 access/hash/hashvalidate.c:150 access/nbtree/nbtvalidate.c:148 access/spgist/spgvalidate.c:213 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "ოპერატორის ოჯახი \"%s\" წვდომის მეთოდის %s შეიცავს ოპერატორს %s არასწორი სტრატეგიის ნომრით %d" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 access/spgist/spgvalidate.c:237 +#: access/brin/brin_validate.c:178 access/gin/ginvalidate.c:186 access/hash/hashvalidate.c:163 access/nbtree/nbtvalidate.c:161 access/spgist/spgvalidate.c:229 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "ოპერატორის ოჯახი \"%s\" წვდომის მეთოდის %s შეიცავს არასწორი ORDER BY სპეციფიკაციას ოპერატორისთვის %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 +#: access/brin/brin_validate.c:191 access/gin/ginvalidate.c:199 access/gist/gistvalidate.c:230 access/hash/hashvalidate.c:176 access/nbtree/nbtvalidate.c:174 access/spgist/spgvalidate.c:245 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" msgstr "წვდომის მეთოდის %s ოპერატორის ოჯახი \"%s\" შეიცავს ოპერატორს %s არასწორი ხელმოწერით" -#: access/brin/brin_validate.c:236 access/hash/hashvalidate.c:226 access/nbtree/nbtvalidate.c:236 access/spgist/spgvalidate.c:280 +#: access/brin/brin_validate.c:229 access/hash/hashvalidate.c:216 access/nbtree/nbtvalidate.c:232 access/spgist/spgvalidate.c:272 #, c-format msgid "operator family \"%s\" of access method %s is missing operator(s) for types %s and %s" msgstr "ოპერატორის ოჯახს \"%s\" ( წვდომის მეთოდისგან \"%s\") აკლია ოპერატორი ტიპებისთვის %s და %s" -#: access/brin/brin_validate.c:246 +#: access/brin/brin_validate.c:239 #, c-format msgid "operator family \"%s\" of access method %s is missing support function(s) for types %s and %s" msgstr "ოპერატორის ოჯახს \"%s\" ( წვდომის მეთოდისგან \"%s\") აკლია ოპერატორი ტიპებისთვის %s და %s" -#: access/brin/brin_validate.c:259 access/hash/hashvalidate.c:240 access/nbtree/nbtvalidate.c:260 access/spgist/spgvalidate.c:315 +#: access/brin/brin_validate.c:252 access/hash/hashvalidate.c:230 access/nbtree/nbtvalidate.c:256 access/spgist/spgvalidate.c:307 #, c-format msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "ოპერატორის კლასს \"%s\" (წვდომის მეთოდიდან %s) ოპერატორები აკლია" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 access/gist/gistvalidate.c:273 +#: access/brin/brin_validate.c:263 access/gin/ginvalidate.c:241 access/gist/gistvalidate.c:272 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "ოპერატორის კლასს \"%s\" წვდომის მეთოდიდან %s აკლია მხარდაჭერის ფუნქცია %d" -#: access/common/attmap.c:121 +#: access/common/attmap.c:118 #, c-format -msgid "Returned type %s does not match expected type %s in column %d." -msgstr "დაბრუნებული ტიპი %s არ ემთხვევა მოსალოდნელ ტიპს %s სვეტისთვის %d." +msgid "Returned type %s does not match expected type %s in column \"%s\" (position %d)." +msgstr "დაბრუნებული ტიპი %s არ ემთხვევა მოსალოდნელ ტიპს %s სვეტში \"%s\" (მდებარეობა %d)." -#: access/common/attmap.c:149 +#: access/common/attmap.c:147 #, c-format msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "სვეტების დაბრუნებული რაოდენობა (%d) არ ემთხვევა მოსალოდნელს (%d) არ ემთხვევა." -#: access/common/attmap.c:233 access/common/attmap.c:245 +#: access/common/attmap.c:231 access/common/attmap.c:243 #, c-format msgid "could not convert row type" msgstr "მწკრივის ტიპის გადაყვანის შეცდომა" -#: access/common/attmap.c:234 +#: access/common/attmap.c:232 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "ატრიბუტი %s ტიპისთვის %s ტიპის(%s) შესაბამის ატრიბუტს არ ემთხვევა." -#: access/common/attmap.c:246 +#: access/common/attmap.c:244 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "ატრიბუტი \"%s\" ტიპისთვის \"%s\" არ არსებობს ტიპში \"%s\"." -#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1472 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "სვეტების რაოდენობა (%d) აღემატება ლიმიტს (%d)" @@ -880,95 +879,95 @@ msgstr "სვეტების რაოდენობა (%d) აღემ msgid "number of index columns (%d) exceeds limit (%d)" msgstr "ინდექსის სვეტების რაოდენობა (%d) აღემატება ლიმიტს (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:959 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:978 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "ინდექსის მწკრივი მოითხოვს %zu ბაიტს, მაქსიმალური ზომა %zu" -#: access/common/printtup.c:291 commands/explain.c:5375 tcop/fastpath.c:107 tcop/fastpath.c:454 tcop/postgres.c:1940 +#: access/common/printtup.c:292 commands/explain_dr.c:94 tcop/fastpath.c:106 tcop/fastpath.c:453 tcop/postgres.c:1951 #, c-format msgid "unsupported format code: %d" msgstr "ფორმატის მხარდაუჭერელი კოდი: %d" -#: access/common/reloptions.c:519 access/common/reloptions.c:530 +#: access/common/reloptions.c:530 access/common/reloptions.c:541 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "სწორი მნიშვნელობებია \"on\", \"off\" და \"auto\"." -#: access/common/reloptions.c:541 +#: access/common/reloptions.c:552 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "სწორი მნიშვნელობებია \"local\" და \"cascaded\"." -#: access/common/reloptions.c:689 +#: access/common/reloptions.c:700 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "მომხმარებლის მიერ განსაზღვრული ურთიერთობის პარამეტრის ტიპებმა ლიმიტს გადააჭარბა" -#: access/common/reloptions.c:1231 +#: access/common/reloptions.c:1242 #, c-format msgid "RESET must not include values for parameters" msgstr "RESET პარამეტრების მნიშვნელობებს არ უნდა შეიცავდეს" -#: access/common/reloptions.c:1263 +#: access/common/reloptions.c:1274 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "პარამეტრების სახელების უცნობი სივრცე: \"%s\"" -#: access/common/reloptions.c:1300 commands/variable.c:1191 +#: access/common/reloptions.c:1311 commands/variable.c:1242 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "ცხრილები, აღწერილი WITH OIDS-ით, მხარდაუჭერელია" -#: access/common/reloptions.c:1468 +#: access/common/reloptions.c:1479 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "უცნობი პარამეტრი\"%s\"" -#: access/common/reloptions.c:1580 +#: access/common/reloptions.c:1591 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "პარამეტრი \"%s\" ერთზე მეტჯერაა მითთებული" -#: access/common/reloptions.c:1596 +#: access/common/reloptions.c:1607 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "არასწორი მნიშვნელობა ლოგიკური პარამეტრისთვის \"%s\": %s" -#: access/common/reloptions.c:1608 +#: access/common/reloptions.c:1619 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "არასწორი მნიშვნელობა მთელი რიცხვის პარამეტრისთვის \"%s\": %s" -#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 +#: access/common/reloptions.c:1625 access/common/reloptions.c:1645 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "მნიშვნელობა %s პარამეტრისთვის \"%s\" საზღვრებს გარეთაა" -#: access/common/reloptions.c:1616 +#: access/common/reloptions.c:1627 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "სწორი მნიშვნელობები \"%d\"-სა და \"%d\"-ს შორისაა." -#: access/common/reloptions.c:1628 +#: access/common/reloptions.c:1639 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "წილადი პარამეტრის (\"%s\") არასწორი მნიშვნელობა: %s" -#: access/common/reloptions.c:1636 +#: access/common/reloptions.c:1647 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "სწორი მნიშვნელობების დიაპაზონია \"%f\"-სა და \"%f\"-ს შორის." -#: access/common/reloptions.c:1658 +#: access/common/reloptions.c:1669 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "ჩამონათვალი პარამეტრის \"%s\" არასწორი მნიშვნელობა: %s" -#: access/common/reloptions.c:1989 +#: access/common/reloptions.c:2016 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "დაყოფილი ცხრილისთვის საცავის პარამეტრების მითითება შეუძლებელია" -#: access/common/reloptions.c:1990 +#: access/common/reloptions.c:2017 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "" @@ -1013,52 +1012,52 @@ msgstr "სხვა სესიების დროებით ინდე msgid "failed to re-find tuple within index \"%s\"" msgstr "კორტეჟის თავიდან პოვნის შეცდომა ინდექსში \"%s\"" -#: access/gin/ginscan.c:431 +#: access/gin/gininsert.c:1283 access/gin/ginutil.c:152 executor/execExpr.c:2244 utils/adt/array_userfuncs.c:1963 utils/adt/arrayfuncs.c:4028 utils/adt/arrayfuncs.c:6726 utils/adt/rowtypes.c:974 +#, c-format +msgid "could not identify a comparison function for type %s" +msgstr "ტიპისთვის \"%s\" შედარების ფუნქცია ვერ ვიპოვე" + +#: access/gin/ginscan.c:437 #, c-format msgid "old GIN indexes do not support whole-index scans nor searches for nulls" msgstr "ძველ GIN ინდექსებს არც ინდექსების სრული სკანირების მხარდაჭერა აქვს, არც ნულების ძებნის" -#: access/gin/ginscan.c:432 +#: access/gin/ginscan.c:438 #, c-format msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "გასასწორებლად გაუშვით REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:147 executor/execExpr.c:2191 utils/adt/arrayfuncs.c:4009 utils/adt/arrayfuncs.c:6705 utils/adt/rowtypes.c:974 -#, c-format -msgid "could not identify a comparison function for type %s" -msgstr "ტიპისთვის \"%s\" შედარების ფუნქცია ვერ ვიპოვე" - -#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 +#: access/gin/ginvalidate.c:83 access/gist/gistvalidate.c:84 access/hash/hashvalidate.c:89 access/spgist/spgvalidate.c:94 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "ოპერატორის ოჯახი \"%s\" (წვდომის მეთოდიდან %s) შეიცავს მხარდაჭერის ფუნქციას %s, რომელსაც სხვადასხვა მარცხენა და მარჯვენა შეყვანები გააჩნია" -#: access/gin/ginvalidate.c:258 +#: access/gin/ginvalidate.c:251 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "ოპერატორის ოჯახი \"%s\" (წვდომის მეთოდიდან %s) აკლია მხარდაჭერის ფუნქია %d ან %d" -#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 access/spgist/spgvalidate.c:387 +#: access/gin/ginvalidate.c:323 access/gist/gistvalidate.c:348 access/spgist/spgvalidate.c:378 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "მხარდაჭერის ფუნქცია ნომრით %d არასწორია წვდომის მეთოდისთვის: %s" -#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:765 access/gist/gistvacuum.c:462 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "ინდექსი (\"%s\") შეიცავს შიდა კორტეჟს, რომელიც მონიშნულია, როგორც არასწორი" -#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:767 access/gist/gistvacuum.c:464 #, c-format msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1." msgstr "გამოწვეულია ავარიის აღდგენისას გვერდის არასწორი დაყოფისგან, PostgreSQL 9.1-მდე განახლებამდე." -#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 access/hash/hashutil.c:237 access/hash/hashutil.c:249 access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 access/nbtree/nbtpage.c:824 +#: access/gist/gist.c:768 access/gist/gistutil.c:801 access/gist/gistutil.c:812 access/gist/gistvacuum.c:465 access/hash/hashutil.c:226 access/hash/hashutil.c:237 access/hash/hashutil.c:249 access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "გადაატარეთ REINDEX." -#: access/gist/gist.c:1196 +#: access/gist/gist.c:1208 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "ინდექსის (%s) არასწორი დაყოფის გასწორება. ბლოკი %u" @@ -1073,33 +1072,33 @@ msgstr "picksplit მეთოდის შეცდომა სვეტის msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command." msgstr "ინდექსი ოპტიმალური არაა. ოპტიმიზაციისთვის დაუკავშირდით დეველოპერს ან სცადეთ ეს სვეტი CREATE INDEX ბრძანებაში, როგორც მეორე, ისე გამოიყენოთ." -#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 access/nbtree/nbtpage.c:810 +#: access/gist/gistutil.c:798 access/hash/hashutil.c:223 access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "ინდექსი \"%s\" ბლოკ %u-სთან მოულოდნელ ნულოვან გვერდს შეიცავს" -#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:809 access/hash/hashutil.c:234 access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "ინდექსი \"%s\" შეიცავს გაფუჭებულ გვერდს ბლოკთან %u" -#: access/gist/gistvalidate.c:202 +#: access/gist/gistvalidate.c:200 #, c-format msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s" msgstr "ოპერატორის ოჯახი \"%s\" (წვდომის მეთოდიდან %s) ოპერატორისთვის %s მხარდაუჭერელ ORDER BY-ის სპეფიციკაციას შეიცავს" -#: access/gist/gistvalidate.c:213 +#: access/gist/gistvalidate.c:211 #, c-format msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "ოპერატორის ოჯახი \"%s\" (წვდომის მეთოდიდან %s) ოპერატორისთვის %s არასწორ ORDER BY-ის სპეფიციკაციას შეიცავს" -#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:331 utils/adt/varchar.c:1008 utils/adt/varchar.c:1063 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:332 utils/adt/varchar.c:1000 utils/adt/varchar.c:1056 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "სტრიქონების ჰეშირებისთვის საჭირო კოლაციის გარკვევა შეუძლებელია" -#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:332 catalog/heap.c:672 catalog/heap.c:678 commands/createas.c:201 commands/createas.c:510 commands/indexcmds.c:2045 commands/tablecmds.c:18071 commands/view.c:81 regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 utils/adt/like_support.c:1024 utils/adt/varchar.c:738 utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 -#: utils/adt/varlena.c:1521 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:333 catalog/heap.c:679 catalog/heap.c:685 commands/createas.c:203 commands/createas.c:516 commands/indexcmds.c:2090 commands/tablecmds.c:19910 commands/view.c:80 regex/regc_pg_locale.c:242 utils/adt/formatting.c:1655 utils/adt/formatting.c:1719 utils/adt/formatting.c:1783 utils/adt/formatting.c:1847 utils/adt/like.c:163 utils/adt/like.c:194 utils/adt/like_support.c:1020 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1001 utils/adt/varchar.c:1057 utils/adt/varlena.c:1592 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "კოლაციის ხელით მისათითებლად გამოიყენეთ COLLATE." @@ -1109,7 +1108,7 @@ msgstr "კოლაციის ხელით მისათითებლ msgid "index row size %zu exceeds hash maximum %zu" msgstr "ინდექსის მწკრივის ზომა %zu აჭარბებს ჰეშის მაქსიმუმს %zu" -#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1020 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1039 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "ბაფერის გვერდზე დიდი მნიშვნელობების დაინდექსება შეუძლებელია." @@ -1124,7 +1123,7 @@ msgstr "გადავსებული ბლოკის არასწო msgid "out of overflow pages in hash index \"%s\"" msgstr "ჰეშ-ინდექსში \"%s\" გადავსების გვერდები საკმარისი არაა" -#: access/hash/hashsearch.c:311 +#: access/hash/hashsearch.c:313 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "ჰეშის ინდექსებს სრული ინდექსების სკანირების მხარდაჭერა არ გააჩნიათ" @@ -1139,47 +1138,52 @@ msgstr "ინდექსი \"%s\" ჰეშ ინდექსი არა msgid "index \"%s\" has wrong hash version" msgstr "ინდექსს \"%s\" ჰეშის არასწორი ვერსია აქვს" -#: access/hash/hashvalidate.c:198 +#: access/hash/hashvalidate.c:188 #, c-format msgid "operator family \"%s\" of access method %s lacks support function for operator %s" msgstr "ოპერატორის ოჯახს \"%s\" (წვდომის მეთოდიდან \"%s\") აკლია მხარდაჭერის ფუნქცია ოპერატორისთვის %s" -#: access/hash/hashvalidate.c:256 access/nbtree/nbtvalidate.c:276 +#: access/hash/hashvalidate.c:246 access/nbtree/nbtvalidate.c:272 #, c-format msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "ოპერატორის ოჯახს \"%s\" წვდომის მეთოდში %s ჯვარედინი ტიპის ოპერატორები აკლია" -#: access/heap/heapam.c:2194 +#: access/heap/heapam.c:2257 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "პარალელურ დამხმარე პროცესში კორტეჟებს ვერ ჩასვამთ" -#: access/heap/heapam.c:2713 +#: access/heap/heapam.c:2776 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "პარალელური ოპერაციის დროს კორტეჟის წაშლა შეუძლებელია" -#: access/heap/heapam.c:2760 +#: access/heap/heapam.c:2823 #, c-format msgid "attempted to delete invisible tuple" msgstr "უხილავი კორტეჟის წაშლის მცდელობა" -#: access/heap/heapam.c:3208 access/heap/heapam.c:6081 +#: access/heap/heapam.c:3271 access/index/genam.c:829 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "პარალელური ოპერაციის დროს კორტეჟის განახლება შეუძლებელია" -#: access/heap/heapam.c:3336 +#: access/heap/heapam.c:3448 #, c-format msgid "attempted to update invisible tuple" msgstr "უხილავი კორტეჟის განახლების მცდელობა" -#: access/heap/heapam.c:4725 access/heap/heapam.c:4763 access/heap/heapam.c:5028 access/heap/heapam_handler.c:468 +#: access/heap/heapam.c:4959 access/heap/heapam.c:4997 access/heap/heapam.c:5262 access/heap/heapam_handler.c:470 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "ურთიერთობაში \"%s\" მწკრივის დაბლოკვის შეცდომა" -#: access/heap/heapam_handler.c:413 +#: access/heap/heapam.c:6376 commands/trigger.c:3350 executor/nodeModifyTable.c:2565 executor/nodeModifyTable.c:2655 +#, c-format +msgid "tuple to be updated was already modified by an operation triggered by the current command" +msgstr "" + +#: access/heap/heapam_handler.c:415 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "დასაბლოკი კორტეჟი პარალელური განახლების გამო უკვე სხვა დანაყოფშია გადატანილი" @@ -1194,8 +1198,8 @@ msgstr "მწკრივი ძალიან დიდია: ზომა % msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "ფაილში \"%s\" ჩაწერა შეუძლებელია. ჩაწერილია %d %d-დან: %m" -#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:3249 access/transam/xlog.c:3440 access/transam/xlog.c:4277 access/transam/xlog.c:9199 access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:494 postmaster/launch_backend.c:328 postmaster/postmaster.c:4112 postmaster/walsummarizer.c:1067 -#: replication/logical/origin.c:603 replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 utils/time/snapmgr.c:1234 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:3382 access/transam/xlog.c:3590 access/transam/xlog.c:4454 access/transam/xlog.c:9456 access/transam/xlogfuncs.c:693 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:495 postmaster/launch_backend.c:354 postmaster/postmaster.c:4085 postmaster/walsummarizer.c:1219 +#: replication/logical/origin.c:603 replication/slot.c:2252 storage/file/copydir.c:173 storage/file/copydir.c:261 storage/smgr/md.c:252 utils/time/snapmgr.c:1241 #, c-format msgid "could not create file \"%s\": %m" msgstr "ფაილის (%s) შექმნის შეცდომა: %m" @@ -1205,154 +1209,169 @@ msgstr "ფაილის (%s) შექმნის შეცდომა: %m" msgid "could not truncate file \"%s\" to %u: %m" msgstr "ფაილის (%s) %u-მდე მოკვეთის შეცდომა: %m" -#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3299 access/transam/xlog.c:3496 access/transam/xlog.c:4289 commands/dbcommands.c:506 postmaster/launch_backend.c:339 postmaster/launch_backend.c:351 replication/logical/origin.c:615 replication/logical/origin.c:657 replication/logical/origin.c:676 replication/logical/snapbuild.c:1771 replication/slot.c:2094 -#: storage/file/buffile.c:545 storage/file/copydir.c:197 utils/init/miscinit.c:1601 utils/init/miscinit.c:1612 utils/init/miscinit.c:1620 utils/misc/guc.c:4441 utils/misc/guc.c:4472 utils/misc/guc.c:5625 utils/misc/guc.c:5643 utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3443 access/transam/xlog.c:3646 access/transam/xlog.c:4466 commands/dbcommands.c:507 postmaster/launch_backend.c:365 postmaster/launch_backend.c:377 replication/logical/origin.c:615 replication/logical/origin.c:657 replication/logical/origin.c:676 replication/logical/snapbuild.c:1657 replication/slot.c:2287 +#: storage/file/buffile.c:545 storage/file/copydir.c:213 utils/init/miscinit.c:1660 utils/init/miscinit.c:1671 utils/init/miscinit.c:1679 utils/misc/guc.c:4488 utils/misc/guc.c:4519 utils/misc/guc.c:5673 utils/misc/guc.c:5691 utils/time/snapmgr.c:1246 utils/time/snapmgr.c:1253 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: access/heap/vacuumlazy.c:473 +#: access/heap/vacuumlazy.c:814 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "აგრესიული დამტვერსასრუტება \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:478 +#: access/heap/vacuumlazy.c:819 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "დამტვერსასრუტება \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:626 +#: access/heap/vacuumlazy.c:987 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "მომტვერსასრუტება დასრულებულია \"%s.%s.%s\": დასკანერებული ინდექსები: %d\n" -#: access/heap/vacuumlazy.c:637 +#: access/heap/vacuumlazy.c:998 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "ჩაციკვლის თავიდან ასაცილებლად ავტომატური აგრესიული მომტვერსასრუტება ცხრილისთვის \"%s.%s.%s\": ინდექსის სკანირების რიცხვი: %d\n" -#: access/heap/vacuumlazy.c:639 +#: access/heap/vacuumlazy.c:1000 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "ჩაციკვლის თავიდან ასაცილებლად ავტომატური მომტვერსასრუტება ცხრილისთვის \"%s.%s.%s\": ინდექსის სკანირების რიცხვი: %d\n" -#: access/heap/vacuumlazy.c:644 +#: access/heap/vacuumlazy.c:1005 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "ცხრილის (\"%s.%s.%s\") ავტომატური აგრესიული მომტვერსასრუტება: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:1007 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "ცხრილის (\"%s.%s.%s\") ავტომატური მომტვერსასრუტება: ინდექსების სკანირება: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:1014 #, c-format -msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" -msgstr "გვერდები: %u წაშლილი, %u რჩება, %u დასკანერებული (სულ %.2f%%)\n" +msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total), %u eagerly scanned\n" +msgstr "გვერდები: %u წაშლილი, %u რჩება, %u დასკანერებული (სულ %.2f%%), %u სასწრაფოდ სკანირებული\n" -#: access/heap/vacuumlazy.c:660 +#: access/heap/vacuumlazy.c:1023 #, c-format -msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" -msgstr "კორტეჟები: %lld წაიშალა, %lld დარჩა, %lld მკვდარია, მაგრამ ჯერ ვერ წავშლი\n" +msgid "tuples: % removed, % remain, % are dead but not yet removable\n" +msgstr "კორტეჟები: % წაიშალა, % დარჩა, % მკვდარია, მაგრამ ჯერ ვერ წავშლი\n" -#: access/heap/vacuumlazy.c:666 +#: access/heap/vacuumlazy.c:1029 #, c-format -msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" -msgstr "გასუფთავების ბლოკირების კონფლიქტის გამო გამოტოვებული სტრიქონების ვერსიები: %lld, %u გვერდიდან\n" +msgid "tuples missed: % dead from %u pages not removed due to cleanup lock contention\n" +msgstr "აცდენილი კორტეჟები: % მკვდრები არ წაშლილა %u გვერდიდან გასუფთავების ბლოკის დაბლოკვის გამო\n" -#: access/heap/vacuumlazy.c:672 +#: access/heap/vacuumlazy.c:1035 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "წაშლადი ამოჭრილი: %u, რომელიც იყო %d XID ასაკის, როცა ოპერაცია დასრულდა\n" -#: access/heap/vacuumlazy.c:679 +#: access/heap/vacuumlazy.c:1042 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "ახალი relfrozenxid: %u, რომელიც წინა მნიშვნელობაზე %d XID-ით წინაა\n" -#: access/heap/vacuumlazy.c:687 +#: access/heap/vacuumlazy.c:1050 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "ახალი relminmxid: %u, რომელიც წინა მნიშვნელობაზე %d MXID-ით წინაა\n" -#: access/heap/vacuumlazy.c:690 +#: access/heap/vacuumlazy.c:1053 +#, c-format +msgid "frozen: %u pages from table (%.2f%% of total) had % tuples frozen\n" +msgstr "გაყინული : %u გვერდს ცხრილიდან (%.2f%% სრული რაოდენობიდან) % კორტეჟი აქვს გაყინული\n" + +#: access/heap/vacuumlazy.c:1061 #, c-format -msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" -msgstr "გაყინული : %u გვერდს ცხრილიდან (%.2f%% სრული რაოდენობიდან) %lld კორტეჟი აქვს გაყინული\n" +msgid "visibility map: %u pages set all-visible, %u pages set all-frozen (%u were all-visible)\n" +msgstr "" -#: access/heap/vacuumlazy.c:698 +#: access/heap/vacuumlazy.c:1069 msgid "index scan not needed: " msgstr "ინდექსების სკანირება საჭირო არაა: " -#: access/heap/vacuumlazy.c:700 +#: access/heap/vacuumlazy.c:1071 msgid "index scan needed: " msgstr "ინდექსების სკანირება საჭიროა: " -#: access/heap/vacuumlazy.c:702 +#: access/heap/vacuumlazy.c:1073 #, c-format -msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" -msgstr "ცხრილის %u გვერდიდან (სულ %.2f%%) წაშლილია %lld ჩანაწერის მკვდარი იდენტიფიკატორი\n" +msgid "%u pages from table (%.2f%% of total) had % dead item identifiers removed\n" +msgstr "ცხრილის %u გვერდიდან (სულ %.2f%%) წაშლილია % ჩანაწერის მკვდარი იდენტიფიკატორი\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:1078 msgid "index scan bypassed: " msgstr "სკანირებისას გამოტოვებული ინდექსები: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:1080 msgid "index scan bypassed by failsafe: " msgstr "სკანირებისას უსაფრთხოების გამო გამოტოვებული ინდექსები: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:1082 #, c-format -msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" -msgstr "ცხრილის %u გვერდზე (სულ %.2f%%) ნაპოვნია %lld ჩანაწერის მკვდარი იდენტიფიკატორი\n" +msgid "%u pages from table (%.2f%% of total) have % dead item identifiers\n" +msgstr "ცხრილის %u გვერდზე (სულ %.2f%%) ნაპოვნია % ჩანაწერის მკვდარი იდენტიფიკატორი\n" -#: access/heap/vacuumlazy.c:726 +#: access/heap/vacuumlazy.c:1097 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "ინდექსი \"%s\": გვერდები: %u ჯამში %u ახლად წაშლილი, %u ამჟამად წაშლილი, %u მრავალჯერადი\n" -#: access/heap/vacuumlazy.c:738 commands/analyze.c:789 +#: access/heap/vacuumlazy.c:1112 commands/analyze.c:817 +#, c-format +msgid "delay time: %.3f ms\n" +msgstr "დაყოვნების დრო: %.3f მწმ\n" + +#: access/heap/vacuumlazy.c:1120 commands/analyze.c:825 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "I/O დროები: კითხვა: %.3f მწმ, ჩაწერა: %.3f მწმ\n" -#: access/heap/vacuumlazy.c:748 commands/analyze.c:792 +#: access/heap/vacuumlazy.c:1130 commands/analyze.c:828 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "კითხვის საშ. სიჩქარე: %.3f მბ/წმ, ჩაწერის საშ. სიჩქარე: %.3f მბ/წმ\n" -#: access/heap/vacuumlazy.c:751 commands/analyze.c:794 +#: access/heap/vacuumlazy.c:1133 commands/analyze.c:830 #, c-format -msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" -msgstr "ბაფერის გამოყენება: %lld მოხვედრა, %lld აცდენა, %lld ტურტლიანი\n" +msgid "buffer usage: % hits, % reads, % dirtied\n" +msgstr "ბუფერის გამოყენება: % მოხვედრა, % წაკითხვა, % ტურტლიანი\n" -#: access/heap/vacuumlazy.c:756 +#: access/heap/vacuumlazy.c:1138 commands/analyze.c:835 #, c-format -msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" -msgstr "WAL გამოყენება: %lld ჩანაწერი, %lld სრული გვერდის ასლი, %llu ბაიტი\n" +msgid "WAL usage: % records, % full page images, % bytes, % buffers full\n" +msgstr "WAL გამოყენება: % ჩანაწერი, % სრული გვერდის ასლი, % ბაიტი, % ბუფერი სავსეა\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:798 +#: access/heap/vacuumlazy.c:1143 commands/analyze.c:840 #, c-format msgid "system usage: %s" msgstr "სისტემური გამოყენება: %s" -#: access/heap/vacuumlazy.c:2172 +#: access/heap/vacuumlazy.c:1431 #, c-format -msgid "table \"%s\": removed %lld dead item identifiers in %u pages" -msgstr "ცხრილი \"%s\": წაიშალა %lld მკვდარი ჩანაწერის იდენტიფიკატორი %u გვერდზე" +msgid "disabling eager scanning after freezing %u eagerly scanned blocks of \"%s.%s.%s\"" +msgstr "" + +#: access/heap/vacuumlazy.c:2820 +#, c-format +msgid "table \"%s\": removed % dead item identifiers in %u pages" +msgstr "ცხრილი \"%s\": წაიშალა % მკვდარი ჩანაწერის იდენტიფიკატორი %u გვერდზე" -#: access/heap/vacuumlazy.c:2326 +#: access/heap/vacuumlazy.c:2992 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "ცხრილის \"%s.%s.%s\" უმნიშვნელო ოპერაციის გამოტოვება დაცვის მიზნით %d ინდექსის სკანირების შემდეგ" -#: access/heap/vacuumlazy.c:2329 +#: access/heap/vacuumlazy.c:2995 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "ცხრილის relfrozenxid -ის და relminmxid -ის მნიშვნელობები ძალიან უკანაა წარშულში." -#: access/heap/vacuumlazy.c:2330 +#: access/heap/vacuumlazy.c:2996 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1361,67 +1380,67 @@ msgstr "" "მხედველობაში იქონიეთ, რომ საჭიროა კონფიგურაციის პარამეტრის \"maintenance_work_mem\" ან \"autovacuum_work_mem\" გაზრდა.\n" "ასევე შეიძლება დაგჭირდეთ განიხილოთ მომტვერსასრუტების სხვა გზები, რომ დაეწიოთ ტრანზაქცების ID-ების გამოყოფას." -#: access/heap/vacuumlazy.c:2592 +#: access/heap/vacuumlazy.c:3258 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "%s: წაკვეთის შეჩერება ბლოკირების კონფლიქტური მოთხოვნის გამო" -#: access/heap/vacuumlazy.c:2662 +#: access/heap/vacuumlazy.c:3328 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "ცხრილი \"%s\": წაიკვეთა %u-დან %u გვერდზე" -#: access/heap/vacuumlazy.c:2724 +#: access/heap/vacuumlazy.c:3390 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "ცხრილი %s: წაკვეთის შეჩერება ბლოკირების კონფლიქტური მოთხოვნის გამო" -#: access/heap/vacuumlazy.c:2843 +#: access/heap/vacuumlazy.c:3509 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "%s-ზე პარალელური მომტვერსასრუტების გამორთვა --- დროებითი ცხრილების პარალელური მომტვერსასრუტება შეუძლებელია" -#: access/heap/vacuumlazy.c:3113 +#: access/heap/vacuumlazy.c:3776 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "ურთიერთობის(%3$s.%4$s) წანაცვლების(%2$u) ბლოკის(%1$u) სკანირებისას" -#: access/heap/vacuumlazy.c:3116 +#: access/heap/vacuumlazy.c:3779 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "%u ბლოკის (ურთიერთობის %s.%s) სკანირებისას" -#: access/heap/vacuumlazy.c:3120 +#: access/heap/vacuumlazy.c:3783 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "ურთიერთობის სკანირებისას \"%s.%s\"" -#: access/heap/vacuumlazy.c:3128 +#: access/heap/vacuumlazy.c:3791 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "ბლოკის %u, წანაცვლება %u (ურთიერთობის \"%s.%s\") მომტვერსასრუტებისას" -#: access/heap/vacuumlazy.c:3131 +#: access/heap/vacuumlazy.c:3794 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "ბლოკის (%u) მომტვერსასრუტებისას (ურთიერთობიდან \"%s.%s\")" -#: access/heap/vacuumlazy.c:3135 +#: access/heap/vacuumlazy.c:3798 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "ურთერთობის დამტვერსასრუტებისას \"%s.%s\"" -#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1113 +#: access/heap/vacuumlazy.c:3803 commands/vacuumparallel.c:1126 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "ინდექსის (%s) მომტვერსასრუტებისას (ურთიერთობიდან \"%s.%s\")" -#: access/heap/vacuumlazy.c:3145 commands/vacuumparallel.c:1119 +#: access/heap/vacuumlazy.c:3808 commands/vacuumparallel.c:1132 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "ინდექსის \"%s\" მოსუფთავებისას, რომელიც ეკუთვნის ურთიერთობას \"%s.%s\"" -#: access/heap/vacuumlazy.c:3151 +#: access/heap/vacuumlazy.c:3814 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "ურთიერთობის \"%s.%s\" %u ბლოკამდე მოკვეთისას" @@ -1436,22 +1455,22 @@ msgstr "წვდომის მეთოდი \"%s\" არ არის ტ msgid "index access method \"%s\" does not have a handler" msgstr "ინდექსის წვდომის მეთოდს \"%s\" დამმუშავებელი არ აქვს" -#: access/index/genam.c:487 +#: access/index/genam.c:498 #, c-format msgid "transaction aborted during system catalog scan" msgstr "ტრანზაქცია გაუქმდა სისტემური კატალოგის სკანირებისას" -#: access/index/genam.c:655 access/index/indexam.c:82 +#: access/index/genam.c:663 access/index/indexam.c:82 #, c-format msgid "cannot access index \"%s\" while it is being reindexed" msgstr "ინდექსთან \"%s\" წვდომა მაშინ, როცა მისი რეინდექსი მიმდინარეობს, შეუძლებელია" -#: access/index/indexam.c:203 catalog/objectaddress.c:1356 commands/indexcmds.c:2873 commands/tablecmds.c:281 commands/tablecmds.c:305 commands/tablecmds.c:17766 commands/tablecmds.c:19584 +#: access/index/indexam.c:203 catalog/objectaddress.c:1361 commands/indexcmds.c:2982 commands/tablecmds.c:284 commands/tablecmds.c:308 commands/tablecmds.c:19599 commands/tablecmds.c:21519 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" ინდექსი არაა" -#: access/index/indexam.c:1028 +#: access/index/indexam.c:1075 #, c-format msgid "operator class %s has no options" msgstr "ოპერატორის კლასს %s პარამეტრები არ გააჩნია" @@ -1471,7 +1490,7 @@ msgstr "გასაღები უკვე არსებობს: %s." msgid "This may be because of a non-immutable index expression." msgstr "შეიძლებa ინდექსის გამოსახულების შეცვლადობის ბრალი იყოს." -#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 parser/parse_utilcmd.c:2298 +#: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 parser/parse_utilcmd.c:2483 #, c-format msgid "index \"%s\" is not a btree" msgstr "ინდექსი \"%s\" ორობითი ხე არაა" @@ -1491,17 +1510,17 @@ msgstr "ინდექსი (\"%s\") ნახევრად მკვდა msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "შესაძლებელია გამოწვეული იყოს შეწყვეტილი მომტვერსასრუტების მიერ 9.3 ან უფრო ძველ ვერსიაში. განახლებამდე საჭიროა REINDEX-ის გადატარება." -#: access/nbtree/nbtutils.c:5112 +#: access/nbtree/nbtutils.c:4247 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "ინდექსის სტრიქონის ზომა %zu btree-ის ვერსიის (%u) მაქსიმალურ (%zu) მნიშვნელობაზე მეტია, ინდექსისთვის \"%s\"" -#: access/nbtree/nbtutils.c:5118 +#: access/nbtree/nbtutils.c:4252 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "ინდექსის მწკრივები გადაბმულია კორტეჟზე (%u, %u) ურთიერთობაში \"%s\"." -#: access/nbtree/nbtutils.c:5122 +#: access/nbtree/nbtutils.c:4256 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1510,57 +1529,57 @@ msgstr "" "ბუფერის გვერდის 1/3-ზე მეტი მნიშვნელობების ინდექსირება შეუძლებელია.\n" "სჯობს დააყენოთ ამ მნიშვნელობის MD5 ჰეშის ფუნქციის ინდექსი ან სრული ტექსტური ინდექსირება გამოიყენეთ." -#: access/nbtree/nbtvalidate.c:246 +#: access/nbtree/nbtvalidate.c:242 #, c-format msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "ოპერატორის ოჯახი \"%s\" წვდომის მეთოდის %s აკლია მხარდაჭერის ფუნქცია ტიპებისთვის %s და %s" -#: access/sequence/sequence.c:75 access/table/table.c:145 optimizer/util/plancat.c:143 +#: access/sequence/sequence.c:75 access/table/table.c:145 optimizer/util/plancat.c:144 #, c-format msgid "cannot open relation \"%s\"" msgstr "ურთიერთობის (\"%s\") გახსნა შეუძლებელია" -#: access/spgist/spgutils.c:245 +#: access/spgist/spgutils.c:251 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "როდესაც ფოთლის ტიპი შეყვანის ტიპისგან განსხვავდება, შეკუმშვის მეთოდის მითითება აუცილებელია" -#: access/spgist/spgutils.c:1017 +#: access/spgist/spgutils.c:1036 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "SP-GiST-ის შიდა კორტეჟის ზომა%zu მაქსიმუმს %zu აჭარბებს" -#: access/spgist/spgvalidate.c:136 +#: access/spgist/spgvalidate.c:128 #, c-format msgid "SP-GiST leaf data type %s does not match declared type %s" msgstr "SP-GiST ფოთლის მონაცემების ტიპი %s არ ემთხვევა აღწერილ ტიპს: %s" -#: access/spgist/spgvalidate.c:302 +#: access/spgist/spgvalidate.c:294 #, c-format msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "ოპერატორის ოჯახს \"%s\" ( წვდომის მეთოდისგან \"%s\") აკლია მხარდაჭერის ფუნქცია (%d) ტიპისთვის: %s" -#: access/table/tableam.c:255 +#: access/table/tableam.c:256 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "კორტეჟის იდენტიფიკატორი (%u, %u) არასწორია ურთიერთობისთვის: \"%s\"" -#: access/table/tableamapi.c:109 +#: access/table/tableamapi.c:106 #, c-format msgid "\"%s\" cannot be empty." msgstr "\"%s\" ცარიელი არ შეიძლება იყოს." -#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4858 +#: access/table/tableamapi.c:113 access/transam/xlogrecovery.c:4879 #, c-format msgid "\"%s\" is too long (maximum %d characters)." msgstr "\"%s\" ძალიან გრძელია (მაქს %d სიმბოლო)" -#: access/table/tableamapi.c:139 +#: access/table/tableamapi.c:136 #, c-format msgid "table access method \"%s\" does not exist" msgstr "ცხრილის წვდომის მეთოდი \"%s\" არ არსებობს" -#: access/table/tableamapi.c:144 +#: access/table/tableamapi.c:141 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "ცხრილის წვდომის მეთოდი \"%s\" არ არსებობს." @@ -1590,12 +1609,12 @@ msgstr "დარწმუნდით, რომ ძირითად სე msgid "Make sure the configuration parameter \"%s\" is set." msgstr "დარწმუნდით, რომ კონფიგურაციის პარამეტრი \"%s\" დაყენებულია." -#: access/transam/multixact.c:1050 +#: access/transam/multixact.c:1097 #, c-format msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "ბაზაში (\"%s\") მონაცემების ჩაციკვლის თავიდან ასაცილებლად მონაცემთა ბაზა ბრძანებებს, რომლებიც ახალ მულტიტრანზაქციებს ანიჭებენ, არ იღებს" -#: access/transam/multixact.c:1052 access/transam/multixact.c:1059 access/transam/multixact.c:1083 access/transam/multixact.c:1092 access/transam/varsup.c:158 access/transam/varsup.c:165 +#: access/transam/multixact.c:1099 access/transam/multixact.c:1106 access/transam/multixact.c:1130 access/transam/multixact.c:1139 access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1604,65 +1623,65 @@ msgstr "" "გაუშვით მთელი ბაზის მომტვერსასრუტება.\n" "ასევე შეიძლება დაგჭირდეთ ძველი მომზადებული ტრანზაქციების გადაცემა ან გაუქმება, ან წაშალეთ გაჭედილი რეპლიკაციის სლოტები." -#: access/transam/multixact.c:1057 +#: access/transam/multixact.c:1104 #, c-format msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "ბაზაში (OID-ით \"%u\") მონაცემების გადატანის თავიდან ასაცილებლად მონაცემთა ბაზა ბრძანებებს, რომლებიც ახალ მულტიტრანზაქციებს ანიჭებენ, არ იღებს" -#: access/transam/multixact.c:1078 access/transam/multixact.c:2433 +#: access/transam/multixact.c:1125 access/transam/multixact.c:2482 #, 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] "კიდევ %2$u მულტიტრანზაქციის გამოსაყენებლად ბაზის (%1$s) მომტვერსასრუტებაა საჭირო" msgstr[1] "კიდევ %2$u მულტიტრანზაქციის გამოსაყენებლად ბაზის (%1$s) მომტვერსასრუტებაა საჭირო" -#: access/transam/multixact.c:1087 access/transam/multixact.c:2442 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2491 #, 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" msgstr[0] "კიდევ %2$u მულტიტრანზაქციის გამოსაყენებლად OID-ი %1$u -ის მქონე ბაზა ჯერ უნდა დამტვერსასრუტდეს" msgstr[1] "კიდევ %2$u მულტიტრანზაქციის გამოსაყენებლად OID-ი %1$u -ის მქონე ბაზა ჯერ უნდა დამტვერსასრუტდეს" -#: access/transam/multixact.c:1148 +#: access/transam/multixact.c:1195 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "მულტიტრანზაქციული \"წევრების\" ლიმიტი გადაჭარბებულია" -#: access/transam/multixact.c:1149 +#: access/transam/multixact.c:1196 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "ბრძანება კი შექმნიდა %u-წევრიან მულტიტრანზაქციას, მაგრამ დარჩენილი ადგილი მხოლოდ %u წევრს ეყოფა." msgstr[1] "ბრძანება კი შექმნიდა %u-წევრიან მულტიტრანზაქციას, მაგრამ დარჩენილი ადგილი მხოლოდ %u წევრს ეყოფა." -#: access/transam/multixact.c:1154 +#: access/transam/multixact.c:1201 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." msgstr "მთელ ბაზაზე მომტვერსასრუტების შესრულება ბაზაში OID-ით %u შემცირებული \"vacuum_multixact_freeze_min_age\" და \"vacuum_multixact_freeze_table_age\" პარამეტრებით." -#: access/transam/multixact.c:1185 +#: access/transam/multixact.c:1232 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "ბაზა OID-ით %u უნდა მომტვერსასრუტდეს მანამდე, სანამ კიდევ %d მულტიტრანზაქციული წევრი იქნება გამოყენებული" msgstr[1] "ბაზა OID-ით %u უნდა მომტვერსასრუტდეს მანამდე, სანამ კიდევ %d მულტიტრანზაქციული წევრი იქნება გამოყენებული" -#: access/transam/multixact.c:1190 +#: access/transam/multixact.c:1237 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." msgstr "მთელ ბაზაზე მომტვერსასრუტების შესრულება მითითებულ ბაზაში შემცირებული \"vacuum_multixact_freeze_min_age\" და \"vacuum_multixact_freeze_table_age\" პარამეტრებით." -#: access/transam/multixact.c:1330 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u აღარ არსებობს - აშკარა გადატანა" -#: access/transam/multixact.c:1336 +#: access/transam/multixact.c:1383 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ჯერ არ არის შექმნილი - აშკარა გადატანა" -#: access/transam/multixact.c:2438 access/transam/multixact.c:2447 +#: access/transam/multixact.c:2487 access/transam/multixact.c:2496 #, c-format msgid "" "To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n" @@ -1671,61 +1690,61 @@ msgstr "" "მულტიტრანზაქციების მინიჭებების თავიდან ასაცილებლად გაუშვით VACUUM მთელ ბაზაზე იმ მონაცემთა ბაზისთვის.\n" "შეიძლება, ასევე, დაგჭირდეთ ძველი მომზადებული ტრანზაქციების კომიტი ან დაბრუნება, ან გამოუყენებელი რეპლიკაციის სლოტების წაშლა." -#: access/transam/multixact.c:2726 +#: access/transam/multixact.c:2775 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "მულტიტრანზაქციული წევრის გადატანის დაცვის ფუნქციები გათიშულია, რადგან უძველესი საკონტროლო წერტილის მქონე მულტიტრანზაქცია %u დისკზე არ არსებობს" -#: access/transam/multixact.c:2748 +#: access/transam/multixact.c:2797 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "მულტიტრანზაქციების ჩაციკვლისგან დაცვის მექანიზმები ახლა ჩართულია" -#: access/transam/multixact.c:3138 +#: access/transam/multixact.c:3188 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "უძველესი მულტიტრანზაქცია %u ვერ ვიპოვე. უახლესი მულტიტრანზაქციაა %u. წაკვეთა გამოტოვებული იქნება" -#: access/transam/multixact.c:3156 +#: access/transam/multixact.c:3206 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "მულტიტრანზაქციამდე %u მოკვეთა შეუძლებელია, რადგან ის დისკზე არ არსებობს. მოკვეთა გამოტოვებული იქნება" -#: access/transam/multixact.c:3475 +#: access/transam/multixact.c:3525 #, c-format msgid "invalid MultiXactId: %u" msgstr "არასწორი MultiXactId: %u" -#: access/transam/parallel.c:731 access/transam/parallel.c:850 +#: access/transam/parallel.c:752 access/transam/parallel.c:871 #, c-format msgid "parallel worker failed to initialize" msgstr "პარალელური დამხმარე პროცესის ინიციალიზაციის შეცდომა" -#: access/transam/parallel.c:732 access/transam/parallel.c:851 +#: access/transam/parallel.c:753 access/transam/parallel.c:872 #, c-format msgid "More details may be available in the server log." msgstr "მეტი დეტალები შეიძლება სერვერის ჟურნალში იყოს ხელმისაწვდომი." -#: access/transam/parallel.c:912 +#: access/transam/parallel.c:933 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster-ი დასრულდა პარალელური ტრანზაქციისას" -#: access/transam/parallel.c:1099 +#: access/transam/parallel.c:1120 #, c-format msgid "lost connection to parallel worker" msgstr "პარალელური დამხმარე პროცესთან კავშირი დაკარგულია" -#: access/transam/parallel.c:1155 access/transam/parallel.c:1157 +#: access/transam/parallel.c:1176 access/transam/parallel.c:1178 msgid "parallel worker" msgstr "პარალელური დამხმარე პროცესი" -#: access/transam/parallel.c:1327 replication/logical/applyparallelworker.c:890 +#: access/transam/parallel.c:1348 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "დინამიური გაზიარებული მეხსიერების სეგმენტის მიბმის შეცდომა" -#: access/transam/parallel.c:1332 replication/logical/applyparallelworker.c:896 +#: access/transam/parallel.c:1353 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "დინამიური გაზიარებული მეხსიერების სეგმენტის არასწორი მაგიური რიცხვი" @@ -1785,62 +1804,62 @@ msgstr "რესურსის მმართველს ID-ით %d იგ msgid "registered custom resource manager \"%s\" with ID %d" msgstr "რეგისტრირებულია მორგებული რესურსის მმართველი \"%s\" ID-ით %d" -#: access/transam/slru.c:346 +#: access/transam/slru.c:360 #, c-format -msgid "\"%s\" must be a multiple of %d" -msgstr "\"%s\" %d-ის ნამრავლი უნდა იყოს" +msgid "\"%s\" must be a multiple of %d." +msgstr "\"%s\" %d-ის ნამრავლი უნდა იყოს." -#: access/transam/slru.c:815 +#: access/transam/slru.c:832 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "ფაილი \"%s\" არ არსებობს. წაკითხული იქნება, როგორც ნულებ" -#: access/transam/slru.c:1044 access/transam/slru.c:1050 access/transam/slru.c:1058 access/transam/slru.c:1063 access/transam/slru.c:1070 access/transam/slru.c:1075 access/transam/slru.c:1082 access/transam/slru.c:1089 +#: access/transam/slru.c:1061 access/transam/slru.c:1067 access/transam/slru.c:1075 access/transam/slru.c:1080 access/transam/slru.c:1087 access/transam/slru.c:1092 access/transam/slru.c:1099 access/transam/slru.c:1106 #, c-format msgid "could not access status of transaction %u" msgstr "ტრანზაქციის %u სტატუსის წვდომის შეცდომა" -#: access/transam/slru.c:1045 +#: access/transam/slru.c:1062 #, c-format msgid "Could not open file \"%s\": %m." msgstr "ფაილის (%s) გახსნის შეცდომა: %m." -#: access/transam/slru.c:1051 +#: access/transam/slru.c:1068 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "ფაილში \"%s\" წანაცვლებაზე %d გადახვევის შეცდომა: %m." -#: access/transam/slru.c:1059 +#: access/transam/slru.c:1076 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "კითხვის შეცდომა ფაილიდან \"%s\" წანაცვლებასთან %d: %m." -#: access/transam/slru.c:1064 +#: access/transam/slru.c:1081 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "კითხვის შეცდომა ფაილიდან \"%s\" წანაცვლებასთან %d: ყველა ბაიტის წაკითხვა შეუძლებელია." -#: access/transam/slru.c:1071 +#: access/transam/slru.c:1088 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "ფაილში (\"%s\") ჩაწერის შეცდომა წანაცვლებასთან %d: %m." -#: access/transam/slru.c:1076 +#: access/transam/slru.c:1093 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "ფაილში (\"%s\") ჩაწერის შეცდომა წანაცვლებასთან %d: ყველა ბაიტის ჩაწერა შეუძლებელია." -#: access/transam/slru.c:1083 +#: access/transam/slru.c:1100 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "ფაილის (%s) fsync-ის შეცდომა: %m." -#: access/transam/slru.c:1090 +#: access/transam/slru.c:1107 #, c-format msgid "Could not close file \"%s\": %m." msgstr "ფაილის (%s) დახურვის შეცდომა: %m." -#: access/transam/slru.c:1416 +#: access/transam/slru.c:1433 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "საქაღალდის გასუფთავების შეცდომა: \"%s\" აშკარა ჩაციკვლა" @@ -1905,12 +1924,12 @@ msgstr "საჭიროა \"max_prepared_tranzactions\"-ის არან msgid "transaction identifier \"%s\" is already in use" msgstr "ტრანზაქციის იდენტიფიკატორი \"%s\" უკვე გამოიყენება" -#: access/transam/twophase.c:404 access/transam/twophase.c:2541 +#: access/transam/twophase.c:404 access/transam/twophase.c:2530 #, c-format msgid "maximum number of prepared transactions reached" msgstr "მიღწეულია მომზადებული ტრანზაქციების მაქსიმალური რაოდენობა" -#: access/transam/twophase.c:405 access/transam/twophase.c:2542 +#: access/transam/twophase.c:405 access/transam/twophase.c:2531 #, c-format msgid "Increase \"max_prepared_transactions\" (currently %d)." msgstr "გაზარდეთ \"max_prepared_transactions\" (ამჟამად %d)." @@ -1945,147 +1964,147 @@ msgstr "ტრანზაქციის დასამთავრებლ msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "მომზადებული ტრანზაქცია იდენტიფიკატორით \"%s\" არ არსებობს" -#: access/transam/twophase.c:1190 +#: access/transam/twophase.c:1174 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "ორფაზიანი მდგომარეობის ფაილის მაქსიმალური სიგრძე გადაჭარბებულია" -#: access/transam/twophase.c:1345 +#: access/transam/twophase.c:1329 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" msgstr[0] "ფაილის არასწორი ზომა \"%s\": %lld ბაიტი" msgstr[1] "ფაილის არასწორი ზომა \"%s\": %lld ბაიტი" -#: access/transam/twophase.c:1354 +#: access/transam/twophase.c:1338 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "ფაილისთვის \"%s\" CRC-ს წანაცვლების არასწორი სწორება" -#: access/transam/twophase.c:1372 +#: access/transam/twophase.c:1356 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "ფაილის \"%s\" წაკითხვა შეუძლებელია: წაკითხულია %d %lld-დან" -#: access/transam/twophase.c:1387 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "ფაილში (\"%s\") დამახსოვრებული მაგიური რიცხვი არასწორია" -#: access/transam/twophase.c:1393 +#: access/transam/twophase.c:1377 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "ფაილში (\"%s\") დამახსოვრებული ზომა არასწორია" -#: access/transam/twophase.c:1405 +#: access/transam/twophase.c:1389 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "გამოთვლილი CRC საკონტროლო ჯამი არ ემთხვევა მნიშვნელობას, რომელიც ფაილში \"%s\" წერია" -#: access/transam/twophase.c:1435 access/transam/xlogrecovery.c:565 postmaster/walsummarizer.c:821 replication/logical/logical.c:210 replication/walsender.c:836 +#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:571 postmaster/walsummarizer.c:943 replication/logical/logical.c:211 replication/walsender.c:812 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "შეცდომა WAL კითხვის პროცესორის გამოყოფისას." -#: access/transam/twophase.c:1445 +#: access/transam/twophase.c:1429 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "\"WAL\"-დან 2ფაზიანი მდგომარეობის წაკითხვის შეცდომა მისამართზე %X/%X: %s" -#: access/transam/twophase.c:1450 +#: access/transam/twophase.c:1434 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "\"WAL\"-დან 2ფაზიანი მდგომარეობის წაკითხვის შეცდომა მისამართზე %X/%X" -#: access/transam/twophase.c:1458 +#: access/transam/twophase.c:1442 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "\"WAL\"-ში მოსალოდნელი ორფაზიანი მდგომარეობის მონაცემები მისამართზე %X/%X არ არსებობს" -#: access/transam/twophase.c:1754 +#: access/transam/twophase.c:1744 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "ფაილის (\"%s\") თავიდან შექმნის შეცდომა: %m" -#: access/transam/twophase.c:1881 +#: access/transam/twophase.c:1871 #, 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 ორფაზიანი მდგომარეობის ფაილი ჩაიწერა" msgstr[1] "დიდხანს-გაშვებული მომზადებული ტრანზაქციებისთვის %u ორფაზიანი მდგომარეობის ფაილი ჩაიწერა" -#: access/transam/twophase.c:2117 +#: access/transam/twophase.c:2106 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "მიმდინარეობს გაზიარებული მეხსიერებიდან წინასწარ მომზადებული ტრანზაქციის აღდგენა: %u" -#: access/transam/twophase.c:2210 +#: access/transam/twophase.c:2199 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "ორფაზიანი მდგომარეობის გაჭედილი ფაილის მოცილება ტრანზაქციისთვის %u" -#: access/transam/twophase.c:2217 +#: access/transam/twophase.c:2206 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "ორფაზიანი მდგომარეობის გაჭედილი მდგომარეობის წაშლა ტრანზაქციისთვის: %u" -#: access/transam/twophase.c:2230 +#: access/transam/twophase.c:2219 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "მომავალი ორფაზიანი მდგომარეობის ფაილის წაშლა ტრანზაქციისთვის %u" -#: access/transam/twophase.c:2237 +#: access/transam/twophase.c:2226 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "მომავალი ორფაზიანი მდგომარეობის მეხსიერებიდან წაშლა ტრანზაქციისთვის %u" -#: access/transam/twophase.c:2262 +#: access/transam/twophase.c:2251 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "ორფაზიანი მდგომარეობის დაზიანებული ფაილი ტრანზაქციისთვის %u" -#: access/transam/twophase.c:2267 +#: access/transam/twophase.c:2256 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "ორფაზიანი მდგომარეობის დაზიანებული მეხსიერება ტრანზაქციისთვის %u" -#: access/transam/twophase.c:2524 +#: access/transam/twophase.c:2513 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "ორფაზიანი მდგომარეობის ფაილის აღდგენა ტრანზაქციისთვის %u შეუძლებელია" -#: access/transam/twophase.c:2526 +#: access/transam/twophase.c:2515 #, c-format msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." msgstr "" -#: access/transam/twophase.c:2534 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 +#: access/transam/twophase.c:2523 storage/file/fd.c:514 utils/fmgr/dfmgr.c:199 #, c-format msgid "could not access file \"%s\": %m" msgstr "ფაილის (%s) წვდომის შეცდომა: %m" #: access/transam/varsup.c:156 #, c-format -msgid "database is not accepting commands that assign new XIDs to avoid wraparound data loss in database \"%s\"" -msgstr "ბაზაში (\"%s\") მონაცემების ჩაციკვლის თავიდან ასაცილებლად მონაცემთა ბაზა ბრძანებებს, რომლებიც ახალ XID-ებს ანიჭებენ, არ იღებს" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"" +msgstr "" #: access/transam/varsup.c:163 #, c-format -msgid "database is not accepting commands that assign new XIDs to avoid wraparound data loss in database with OID %u" -msgstr "ბაზაში (OID-ით \"%u\") მონაცემების გადატანის თავიდან ასაცილებლად მონაცემთა ბაზა ბრძანებებს, რომლებიც ახალ XID-ებს ანიჭებენ, არ იღებს" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u" +msgstr "" #: access/transam/varsup.c:175 access/transam/varsup.c:490 #, c-format msgid "database \"%s\" must be vacuumed within %u transactions" msgstr "ბაზა \"%s\" ტრანზაქციაში %u უნდა მომტვერსასრუტდეს" -#: access/transam/varsup.c:178 access/transam/varsup.c:185 access/transam/varsup.c:493 access/transam/varsup.c:500 +#: access/transam/varsup.c:178 #, c-format msgid "" -"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"XID-ების მინიჭებების თავიდან ასაცილებლად გაუშვით VACUUM მთელ ბაზაზე იმ მონაცემთა ბაზისთვის.\n" +"ტრანზაქციის ID-ების მინიჭებების თავიდან ასაცილებლად გაუშვით VACUUM მთელ ბაზაზე იმ მონაცემთა ბაზისთვის.\n" "შეიძლება, ასევე, დაგჭირდეთ ძველი მომზადებული ტრანზაქციების კომიტი ან დაბრუნება, ან გამოუყენებელი რეპლიკაციის სლოტების წაშლა." #: access/transam/varsup.c:182 access/transam/varsup.c:497 @@ -2093,561 +2112,516 @@ msgstr "" msgid "database with OID %u must be vacuumed within %u transactions" msgstr "ბაზა \"%u\" %u ტრანზაქციის განმავლობაში უნდა მომტვერსასრუტდეს" -#: access/transam/xact.c:649 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 access/transam/varsup.c:500 +#, c-format +msgid "" +"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "" +"XID-ების მინიჭებების თავიდან ასაცილებლად გაუშვით VACUUM მთელ ბაზაზე იმ მონაცემთა ბაზისთვის.\n" +"შეიძლება, ასევე, დაგჭირდეთ ძველი მომზადებული ტრანზაქციების კომიტი ან დაბრუნება, ან გამოუყენებელი რეპლიკაციის სლოტების წაშლა." + +#: access/transam/xact.c:652 #, c-format -msgid "cannot assign XIDs during a parallel operation" -msgstr "პარალელური ოპერაციის დროს XID-ების მინიჭება შეუძლებელია" +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "პარალელური ოპერაციის დროს ტრანზაქციის ID-ების მინიჭება შეუძლებელია" -#: access/transam/xact.c:840 +#: access/transam/xact.c:843 #, c-format msgid "cannot modify data in a parallel worker" msgstr "პარალელურ დამხმარე პროცესში მონაცემების შეცვლა შეუძლებელია" -#: access/transam/xact.c:1115 +#: access/transam/xact.c:1118 #, c-format msgid "cannot start commands during a parallel operation" msgstr "პარალელური ოპერაციის დროს ბრძანებების გაშვება შეუძლებელია" -#: access/transam/xact.c:1123 +#: access/transam/xact.c:1126 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "ტრანზაქციაში 2^32-2 ბრძანებაზე მეტი ვერ იქნება" -#: access/transam/xact.c:1664 +#: access/transam/xact.c:1695 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "გადაცილებულია გადაცემული ქვეტრანზაქციების მაქსიმალური რაოდენობა: %d" -#: access/transam/xact.c:2561 +#: access/transam/xact.c:2616 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "ტრანზაქციაზე, რომელიც დროებით ობიექტებზე მუშაობდა, PREPARE-ს ვერ იზამთ" -#: access/transam/xact.c:2571 +#: access/transam/xact.c:2626 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "ტრანზაქციაზე, რომლიდანაც სწრაფი ასლები გაიტანეს, PREPARE-ს ვერ გაუშვებთ" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3593 +#: access/transam/xact.c:3657 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s ქვეტრანზაქციის ბლოკის შიგნით ვერ გაეშვება" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3603 +#: access/transam/xact.c:3667 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s ქვეტრანზაქციაში ვერ გაეშვება" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3613 -#, c-format -msgid "%s cannot be executed within a pipeline" -msgstr "%s ფუნქციიდან ვერ გაეშვება" - -#. translator: %s represents an SQL statement name -#: access/transam/xact.c:3623 +#: access/transam/xact.c:3677 #, c-format msgid "%s cannot be executed from a function" msgstr "%s ფუნქციიდან ვერ გაეშვება" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3694 access/transam/xact.c:4019 access/transam/xact.c:4098 access/transam/xact.c:4221 access/transam/xact.c:4372 access/transam/xact.c:4441 access/transam/xact.c:4552 +#: access/transam/xact.c:3748 access/transam/xact.c:4070 access/transam/xact.c:4149 access/transam/xact.c:4272 access/transam/xact.c:4423 access/transam/xact.c:4492 access/transam/xact.c:4603 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s მხოლოდ ტრანზაქციის ბლოკში შეიძლება იყოს გამოყენებული" -#: access/transam/xact.c:3905 +#: access/transam/xact.c:3956 #, c-format msgid "there is already a transaction in progress" msgstr "ტრანზაქცია უკვე მიმდინარეობს" -#: access/transam/xact.c:4024 access/transam/xact.c:4103 access/transam/xact.c:4226 +#: access/transam/xact.c:4075 access/transam/xact.c:4154 access/transam/xact.c:4277 #, c-format msgid "there is no transaction in progress" msgstr "ტრანზაქცია გაშვებული არაა" -#: access/transam/xact.c:4114 +#: access/transam/xact.c:4165 #, c-format msgid "cannot commit during a parallel operation" msgstr "პარალელური ოპერაციის დროს გადაცემა შეუძლებელია" -#: access/transam/xact.c:4237 +#: access/transam/xact.c:4288 #, c-format msgid "cannot abort during a parallel operation" msgstr "პარალელური ოპერაციის დროს გაუქმება შეუძლებელია" -#: access/transam/xact.c:4336 +#: access/transam/xact.c:4387 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "პარალელური ოპერაციის დროს შესანახი წერტილების აღწერა შეუძლებელია" -#: access/transam/xact.c:4423 +#: access/transam/xact.c:4474 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "პარალელური ოპერაციის დროს შესანახი წერტილების წაშლა შეუძლებელია" -#: access/transam/xact.c:4433 access/transam/xact.c:4484 access/transam/xact.c:4544 access/transam/xact.c:4593 +#: access/transam/xact.c:4484 access/transam/xact.c:4535 access/transam/xact.c:4595 access/transam/xact.c:4644 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "შესანახი წერტილი არ არსებობს: %s" -#: access/transam/xact.c:4490 access/transam/xact.c:4599 +#: access/transam/xact.c:4541 access/transam/xact.c:4650 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "შესანახი წერტილების მიმდინარე დონეზე შესანახი წერტილი არ არსებობს: %s" -#: access/transam/xact.c:4532 +#: access/transam/xact.c:4583 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "პარალელური ოპერაციის დროს შენახულ წერტილზე დაბრუნება შეუძლებელია" -#: access/transam/xact.c:5376 +#: access/transam/xact.c:5438 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "ტრანზაქციაში 2^32-1 ქვეტრანზაქციაზე მეტი ვერ იქნება" -#: access/transam/xlog.c:1536 +#: access/transam/xlog.c:1552 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "" -#: access/transam/xlog.c:1763 +#: access/transam/xlog.c:1779 #, c-format msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X" msgstr "" -#: access/transam/xlog.c:2204 access/transam/xlog.c:4495 +#: access/transam/xlog.c:2342 access/transam/xlog.c:4690 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WAL სეგმენტის ზომა ორის ხარისხი უნდა იყოს, შუალედიდან 1მბ-1გბ." -#: access/transam/xlog.c:2222 +#: access/transam/xlog.c:2360 #, c-format msgid "\"%s\" must be set to -1 during binary upgrade mode." msgstr "ბინარული განახლების რეჟიმისას \"%s\"-ის მნიშვნელობა -1-ზე უნდა დააყენოთ." -#: access/transam/xlog.c:2471 +#: access/transam/xlog.c:2597 #, 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:3733 access/transam/xlogutils.c:831 replication/walsender.c:3045 +#: access/transam/xlog.c:3883 access/transam/xlogutils.c:820 replication/walsender.c:3050 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "მოთხოვნილი WAL სეგმენტი %s უკვე წაშლილია" -#: access/transam/xlog.c:4055 +#: access/transam/xlog.c:4205 #, c-format msgid "could not rename file \"%s\": %m" msgstr "ფაილის გადარქმევის შეცდომა %s: %m" -#: access/transam/xlog.c:4098 access/transam/xlog.c:4109 access/transam/xlog.c:4130 +#: access/transam/xlog.c:4248 access/transam/xlog.c:4259 access/transam/xlog.c:4280 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "wal-ის აუცილებელი საქაღალდე \"%s\" არ არსებობს" -#: access/transam/xlog.c:4115 access/transam/xlog.c:4136 +#: access/transam/xlog.c:4265 access/transam/xlog.c:4286 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "ნაკლული WAL საქაღალდის შექმნა: \"%s\"" -#: access/transam/xlog.c:4119 access/transam/xlog.c:4139 commands/dbcommands.c:3242 +#: access/transam/xlog.c:4269 access/transam/xlog.c:4289 commands/dbcommands.c:3276 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "ნაკლული საქაღალდის (\"%s\") შექმნის შეცდომა: %m" -#: access/transam/xlog.c:4206 +#: access/transam/xlog.c:4356 #, c-format msgid "could not generate secret authorization token" msgstr "ავთენტიკაციისთვის ერთჯერადი კოდის გენერაციის შეცდომა" -#: access/transam/xlog.c:4357 access/transam/xlog.c:4367 access/transam/xlog.c:4393 access/transam/xlog.c:4401 access/transam/xlog.c:4409 access/transam/xlog.c:4415 access/transam/xlog.c:4423 access/transam/xlog.c:4431 access/transam/xlog.c:4439 access/transam/xlog.c:4447 access/transam/xlog.c:4455 access/transam/xlog.c:4463 access/transam/xlog.c:4473 access/transam/xlog.c:4481 utils/init/miscinit.c:1758 +#: access/transam/xlog.c:4534 access/transam/xlog.c:4544 access/transam/xlog.c:4570 access/transam/xlog.c:4580 access/transam/xlog.c:4590 access/transam/xlog.c:4596 access/transam/xlog.c:4606 access/transam/xlog.c:4616 access/transam/xlog.c:4626 access/transam/xlog.c:4636 access/transam/xlog.c:4646 access/transam/xlog.c:4656 access/transam/xlog.c:4668 access/transam/xlog.c:4676 utils/init/miscinit.c:1817 #, c-format msgid "database files are incompatible with server" msgstr "ბაზის ფაილები სერვერთან თავსებადი არაა" -#: access/transam/xlog.c:4358 +#: access/transam/xlog.c:4535 #, 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 "ბაზის კლასტერის ინიციალიზაცია მოხდა PG_CONTROL_VERSION %d (0x%08x)-ით, მაგრამ სერვერის აგებისას PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4362 +#: access/transam/xlog.c:4539 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "ეს შეიძლება ბაიტების არასწორი დალაგების პრობლემაც იყოს. როგორც ჩანს, initdb გჭირდებათ." -#: access/transam/xlog.c:4368 +#: access/transam/xlog.c:4545 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "ბაზის კლასტერის ინიციალიზაცია მოხდა PG_CONTROL_VERSION %d, მაგრამ სერვერის აგებისას PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4371 access/transam/xlog.c:4397 access/transam/xlog.c:4405 access/transam/xlog.c:4411 +#: access/transam/xlog.c:4548 access/transam/xlog.c:4576 access/transam/xlog.c:4586 access/transam/xlog.c:4592 #, c-format msgid "It looks like you need to initdb." msgstr "როგორც ჩანს, initdb გჭირდებათ." -#: access/transam/xlog.c:4383 +#: access/transam/xlog.c:4560 #, c-format msgid "incorrect checksum in control file" msgstr "არასწორი საკონტროლო ჯამი pg_control-ის ფაილში" -#: access/transam/xlog.c:4394 -#, c-format -msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა CATALOG_VERSION_NO %d -ით, მაგრამ სერვერი აგებულია CATALOG_VERSION_NO %d-ით." - -#: access/transam/xlog.c:4402 +#. translator: %s is a variable name and %d is its value +#: access/transam/xlog.c:4572 access/transam/xlog.c:4582 access/transam/xlog.c:4598 access/transam/xlog.c:4608 access/transam/xlog.c:4618 access/transam/xlog.c:4628 access/transam/xlog.c:4638 access/transam/xlog.c:4648 access/transam/xlog.c:4658 #, c-format -msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა MAXALIGN %d -ით, მაგრამ სერვერი აგებულია MAXALIGN %d-ით." +msgid "The database cluster was initialized with %s %d, but the server was compiled with %s %d." +msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა %s %d -ით, მაგრამ სერვერი აგებულია %s %d-ით." -#: access/transam/xlog.c:4410 +#: access/transam/xlog.c:4591 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "როგორც ჩანს, ბაზის კლასტერი წილადი რიცხვების სხვა ფორმატს იყენებს, ვიდრე სერვერის გამშვები ფაილი." -#: access/transam/xlog.c:4416 -#, c-format -msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა BLCKSZ %d -ით, მაგრამ სერვერი აგებულია BLCKSZ %d-ით." - -#: access/transam/xlog.c:4419 access/transam/xlog.c:4427 access/transam/xlog.c:4435 access/transam/xlog.c:4443 access/transam/xlog.c:4451 access/transam/xlog.c:4459 access/transam/xlog.c:4467 access/transam/xlog.c:4476 access/transam/xlog.c:4484 +#: access/transam/xlog.c:4602 access/transam/xlog.c:4612 access/transam/xlog.c:4622 access/transam/xlog.c:4632 access/transam/xlog.c:4642 access/transam/xlog.c:4652 access/transam/xlog.c:4662 access/transam/xlog.c:4671 access/transam/xlog.c:4679 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "როგორც ჩანს, გჭირდებათ თავიდან ააგოთ პროდუქტი, ან initdb." -#: access/transam/xlog.c:4424 -#, c-format -msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა RELSEG_SIZE%d -ით, მაგრამ სერვერი აგებულია RELSEG_SIZE %d-ით." - -#: access/transam/xlog.c:4432 -#, c-format -msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა XLOG_BLCKSZ%d -ით, მაგრამ სერვერი აგებულია XLOG_BLCKSZ%d-ით." - -#: access/transam/xlog.c:4440 -#, c-format -msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა NAMEDATALEN %d -ით, მაგრამ სერვერი აგებულია NAMEDATALEN %d-ით." - -#: access/transam/xlog.c:4448 -#, c-format -msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა INDEX_MAX_KEYS %d -ით, მაგრამ სერვერი აგებულია INDEX_MAX_KEYS %d-ით." - -#: access/transam/xlog.c:4456 -#, 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 "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა TOAST_MAX_CHUNK_SIZE %d -ით, მაგრამ სერვერი აგებულია TOAST_MAX_CHUNK_SIZE %d-ით." - -#: access/transam/xlog.c:4464 -#, c-format -msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." -msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა LOBLKSIZE %d -ით, მაგრამ სერვერი აგებულია LOBLKSIZE %d-ით." - -#: access/transam/xlog.c:4474 +#: access/transam/xlog.c:4669 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა USE_FLOAT8_BYVAL-ის გარეშე, მაგრამ სერვერი აგებულია USE_FLOAT8_BYVAL-ით." -#: access/transam/xlog.c:4482 +#: access/transam/xlog.c:4677 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა USE_FLOAT8_BYVA -ის გარეშე, მაგრამ სერვერი აგებულია USE_FLOAT8_BYVAL-ით." -#: access/transam/xlog.c:4491 +#: access/transam/xlog.c:4686 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" msgstr[1] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" -#: access/transam/xlog.c:4504 -#, 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:4508 +#. translator: both %s are GUC names +#: access/transam/xlog.c:4700 access/transam/xlog.c:4706 #, c-format -msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" -msgstr "\"max_wal_size\"-ი \"wal_segment_size\"-ზე, მინიმუმ, ორჯერ მეტი უნდა იყოს" +msgid "\"%s\" must be at least twice \"%s\"" +msgstr "\"%s\", სულ ცოტა, ორჯერ მეტი უნდა იყოს \"%s\"-ზე" -#: access/transam/xlog.c:4656 catalog/namespace.c:4681 commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 replication/slot.c:2429 utils/error/elog.c:2214 +#: access/transam/xlog.c:4868 catalog/namespace.c:4696 commands/tablespace.c:1210 commands/user.c:2542 commands/variable.c:72 replication/slot.c:2655 tcop/postgres.c:3631 utils/error/elog.c:2274 #, c-format msgid "List syntax is invalid." msgstr "სია სინტაქსი არასწორია." -#: access/transam/xlog.c:4702 commands/user.c:2545 commands/variable.c:173 utils/error/elog.c:2240 +#: access/transam/xlog.c:4914 commands/user.c:2558 commands/variable.c:173 tcop/postgres.c:3647 utils/error/elog.c:2300 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "უცნობი საკვანძო სიტყვა: \"%s\"." -#: access/transam/xlog.c:5122 +#: access/transam/xlog.c:5341 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "ფაილში წინასწარ-ჩაწერადი ჟურნალის ფაილის დასაწყისის ჩაწერის შეცდომა: %m" -#: access/transam/xlog.c:5130 +#: access/transam/xlog.c:5349 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "ფაილში წინასწარ-ჩაწერადი ჟურნალის ფაილის დასაწყისის fsync-ის შეცდომა: %m" -#: access/transam/xlog.c:5136 +#: access/transam/xlog.c:5355 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "ფაილში წინასწარ-ჩაწერადი ჟურნალის ფაილის დასაწყისის დახურვის შეცდომა: %m" -#: access/transam/xlog.c:5354 +#: access/transam/xlog.c:5580 #, c-format msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering" msgstr "WAL-ი გენერირებული იყო \"wal_level=minimal\"-ით. აღდგენა ვერ გაგრძელდება" -#: access/transam/xlog.c:5355 +#: access/transam/xlog.c:5581 #, c-format msgid "This happens if you temporarily set \"wal_level=minimal\" on the server." msgstr "ეს ხდება, თუ სერვერზე დროებით \"wal_level=minimal\"-ს დააყენებთ." -#: access/transam/xlog.c:5356 +#: access/transam/xlog.c:5582 #, c-format msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." msgstr "გამოიყენეთ მარქაფი, რომელიც \"wal_level\"-ის \"minimal\"-ზე მეტზე დაყენების შემდეგ აიღეთ." -#: access/transam/xlog.c:5421 +#: access/transam/xlog.c:5647 #, c-format msgid "control file contains invalid checkpoint location" msgstr "საკონტროლო ფაილი საკონტროლო წერტილის არასწორ მდებარეობას შეიცავს" -#: access/transam/xlog.c:5432 +#: access/transam/xlog.c:5658 #, c-format msgid "database system was shut down at %s" msgstr "მონაცემთა ბაზის სისტემის გათიშვის დრო: %s" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5664 #, c-format msgid "database system was shut down in recovery at %s" msgstr "მონაცემთა ბაზის სისტემის აღდგენისას გათიშვის დრო: %s" -#: access/transam/xlog.c:5444 +#: access/transam/xlog.c:5670 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "მონაცემთა ბაზა შეწყვეტილია; ბოლოს ჩართული იყო: %s" -#: access/transam/xlog.c:5450 +#: access/transam/xlog.c:5676 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "მონაცემთა ბაზის სისტემის აღდგენისას გათიშვის დრო: %s" -#: access/transam/xlog.c:5452 +#: access/transam/xlog.c:5678 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "ეს ალბათ ნიშნავს, რომ ზოგიერთი მონაცემი დაზიანებულია და აღდგენისთვის ბოლო მარქაფის გამოყენება მოგიწევთ." -#: access/transam/xlog.c:5458 +#: access/transam/xlog.c:5684 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "მონაცემთა ბაზის სისტემა გაითიშა აღდგენისას ჟურნალის დროს %s" -#: access/transam/xlog.c:5460 +#: access/transam/xlog.c:5686 #, 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 "თუ ეს კიდევ ერთხელ მაინც მოხდა, ეს ნიშნავს, რომ მონაცემები დაზიანებულია და უფრო ძველი აღდგენის სამიზნე უნდა აირჩიოთ." -#: access/transam/xlog.c:5466 +#: access/transam/xlog.c:5692 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "მონაცემთა ბაზა შეწყვეტილია; ბოლოს ჩართული იყო: %s" -#: access/transam/xlog.c:5473 +#: access/transam/xlog.c:5699 #, c-format msgid "control file contains invalid database cluster state" msgstr "კონტროლის ფაილი ბაზის კლასტერის არასწორ მდგომარეობას შეიცავს" -#: access/transam/xlog.c:5860 +#: access/transam/xlog.c:6087 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL ონლაინ მარქაფის დასასრულამდე მთავრდება" -#: access/transam/xlog.c:5861 +#: access/transam/xlog.c:6088 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "აღდგენისას ონლაინ მარქაფის აღებისას გენერირებული ყველა WAL-ი ხელმისაწვდომი უნდა იყოს." -#: access/transam/xlog.c:5865 +#: access/transam/xlog.c:6092 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL აღდგენის შეთანხმებულ წერტილამდე მთავრდება" -#: access/transam/xlog.c:5911 +#: access/transam/xlog.c:6138 #, c-format msgid "selected new timeline ID: %u" msgstr "დროის ახალი ხაზის არჩეული ID: %u" -#: access/transam/xlog.c:5944 +#: access/transam/xlog.c:6171 #, c-format msgid "archive recovery complete" msgstr "არქივიდან აღდგენა დასრულდა" -#: access/transam/xlog.c:6552 +#: access/transam/xlog.c:6803 #, c-format msgid "shutting down" msgstr "მიმდინარეობს გამორთვა" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6591 +#: access/transam/xlog.c:6842 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "გადატვირთვის წერტილი დაიწყო:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6603 +#: access/transam/xlog.c:6854 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "საკონტროლო წერტილი იწყება:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6668 +#: access/transam/xlog.c:6919 #, c-format -msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgid "restartpoint complete: wrote %d buffers (%.1f%%), wrote %d SLRU buffers; %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "" -#: access/transam/xlog.c:6691 +#: access/transam/xlog.c:6943 #, c-format -msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" +msgid "checkpoint complete: wrote %d buffers (%.1f%%), wrote %d SLRU buffers; %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "" -#: access/transam/xlog.c:7165 +#: access/transam/xlog.c:7429 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "კონკურენტული წინასწარ-ჩაწერადი ჟურნალის აქტივობა, სანამ მონაცემთა ბაზა მუშაობას ასრულებს" -#: access/transam/xlog.c:7749 +#: access/transam/xlog.c:8016 #, c-format msgid "recovery restart point at %X/%X" msgstr "აღდგენის გადატვირთვის წერტილი: %X/%X" -#: access/transam/xlog.c:7751 +#: access/transam/xlog.c:8018 #, c-format msgid "Last completed transaction was at log time %s." msgstr "უკანასკნელად დასრულებული ტრანზაქცია მოხდა ჟურნალის დროით %s." -#: access/transam/xlog.c:8013 +#: access/transam/xlog.c:8280 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "აღდგენის წერტილი \"%s\" შექმნილია %X/%X -სთან" -#: access/transam/xlog.c:8220 +#: access/transam/xlog.c:8487 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "ონლაინ მარქაფი გაუქმდა. აღდგენა ვერ გაგრძელდება" -#: access/transam/xlog.c:8277 +#: access/transam/xlog.c:8545 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "გამორთვის საკონტროლო წერტილში ნაპოვნია დროის ხაზი %u მოულოდნელია (უნდა იყოს %u)" -#: access/transam/xlog.c:8335 +#: access/transam/xlog.c:8603 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "ჩართვის საკონტროლო წერტილში ნაპოვნია დროის ხაზი %u მოულოდნელია (უნდა იყოს %u)" -#: access/transam/xlog.c:8364 +#: access/transam/xlog.c:8632 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "აღდგენის ბოლო საკონტროლო წერტილში ნაპოვნია დროის ხაზი %u მოულოდნელია (უნდა იყოს %u)" -#: access/transam/xlog.c:8635 +#: access/transam/xlog.c:8902 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "გამჭოლად-ჩაწერადი ფაილის (%s) fsync-ის შეცდომა: %m" -#: access/transam/xlog.c:8640 +#: access/transam/xlog.c:8907 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "ფაილის \"%s\" fdatasync შეუძლებელია: %m" -#: access/transam/xlog.c:8727 access/transam/xlog.c:9063 +#: access/transam/xlog.c:8984 access/transam/xlog.c:9320 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "ონლაინ მარქაფისთვის WAL-ის მიმდინარე დონე საკმარისი არაა" -#: access/transam/xlog.c:8728 access/transam/xlogfuncs.c:248 +#: access/transam/xlog.c:8985 access/transam/xlog.c:9321 access/transam/xlogfuncs.c:249 #, c-format msgid "\"wal_level\" must be set to \"replica\" or \"logical\" at server start." msgstr "სერვისის გაშვებისას \"wal_level\"-ის მნიშვნელობა უნდა იყოს \"replica\" ან \"logical\"." -#: access/transam/xlog.c:8733 +#: access/transam/xlog.c:8990 #, c-format msgid "backup label too long (max %d bytes)" msgstr "მარქაფის ჭდე ძალიან გრძელია (max %d ბაიტი)" -#: access/transam/xlog.c:8854 +#: access/transam/xlog.c:9111 #, c-format msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint" msgstr "" -#: access/transam/xlog.c:8856 access/transam/xlog.c:9152 +#: access/transam/xlog.c:9113 access/transam/xlog.c:9409 #, 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 primary, and then try an online backup again." msgstr "ეს ნიშნავს, რომ უქმეზე აღებული მარქაფი დაზიანებულია და არ უნდა გამოიყენოთ. ჩართეთ ძირითად სერვერზე \"full_page_writes\" და გაუშვით CHECKPOINT და მხოლოდ შემდეგ სცადეთ ონლაინ აღდგენა." -#: access/transam/xlog.c:8936 backup/basebackup.c:1417 utils/adt/misc.c:354 +#: access/transam/xlog.c:9193 backup/basebackup.c:1419 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "სიმბოლური ბმის \"%s\" წაკითხვის შეცდომა: %m" -#: access/transam/xlog.c:8943 backup/basebackup.c:1422 utils/adt/misc.c:359 +#: access/transam/xlog.c:9200 backup/basebackup.c:1424 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "%s: სიმბმული ძალიან გრძელია" -#: access/transam/xlog.c:9064 -#, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." -msgstr "სერვისის გაშვებისას wal_level -ის მნიშვნელობა უნდა იყოს \"replica\" ან \"logical\"." - -#: access/transam/xlog.c:9102 backup/basebackup.c:1281 +#: access/transam/xlog.c:9359 backup/basebackup.c:1283 #, c-format msgid "the standby was promoted during online backup" msgstr "უქმე წახალისდა ონლაინ მარქაფის მიმდინარეობის დროს" -#: access/transam/xlog.c:9103 backup/basebackup.c:1282 +#: access/transam/xlog.c:9360 backup/basebackup.c:1284 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "ეს ნიშნავს, რომ მარქაფი, რომლის აღებაც მიმდინარეობს, დაზიანებულია და არ უნდა გამოიყენოთ. სცადეთ, სხვა ონლაინ მარქაფი აიღოთ." -#: access/transam/xlog.c:9150 +#: access/transam/xlog.c:9407 #, c-format msgid "WAL generated with \"full_page_writes=off\" was replayed during online backup" msgstr "" -#: access/transam/xlog.c:9266 +#: access/transam/xlog.c:9523 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "ძირითადი მარქაფი დასრულდა. ველოდები აუცილებელი WAL-ის სეგმენტების დაარქივებას" -#: access/transam/xlog.c:9280 +#: access/transam/xlog.c:9537 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "ჯერ კიდევ ველოდები ყველა აუცილებელი WAL სეგმენტის დაარქივებას (გასულია %d წამი)" -#: access/transam/xlog.c:9282 +#: access/transam/xlog.c:9539 #, 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 "" -#: access/transam/xlog.c:9289 +#: access/transam/xlog.c:9546 #, c-format msgid "all required WAL segments have been archived" msgstr "ყველა საჭირო WAL სეგმენტი დაარქივებულია" -#: access/transam/xlog.c:9293 +#: access/transam/xlog.c:9550 #, 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 "" -#: access/transam/xlog.c:9332 +#: access/transam/xlog.c:9589 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "მარქაფი გაუქმდა, რადგან უკანაბოლომ მუშაობა pg_backup_stop-ის გამოძახებამდე დაასრულა" @@ -2690,269 +2664,269 @@ msgstr "არქივის სტატუსის ფაილის (%s) msgid "could not write archive status file \"%s\": %m" msgstr "არქივის სტატუსის ფაილის (%s) ჩაწერის შეცდომა: %m" -#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 +#: access/transam/xlogfuncs.c:70 backup/basebackup.c:999 #, c-format msgid "a backup is already in progress in this session" msgstr "ამ სესიაში მარქაფი უკვე მიმდინარეობს" -#: access/transam/xlogfuncs.c:140 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "backup is not in progress" msgstr "მარქაფი არ მიმდინარეობს" -#: access/transam/xlogfuncs.c:141 +#: access/transam/xlogfuncs.c:142 #, c-format msgid "Did you call pg_backup_start()?" msgstr "თქვენ გამოიძახეთ pg_backup_start()?" -#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 access/transam/xlogfuncs.c:323 +#: access/transam/xlogfuncs.c:185 access/transam/xlogfuncs.c:243 access/transam/xlogfuncs.c:282 access/transam/xlogfuncs.c:303 access/transam/xlogfuncs.c:324 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "WAL კონტროლის ფუნქციების შესრულება აღდგენის დროს შეუძლებელია." -#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 access/transam/xlogfuncs.c:447 +#: access/transam/xlogfuncs.c:210 access/transam/xlogfuncs.c:390 access/transam/xlogfuncs.c:448 #, c-format msgid "%s cannot be executed during recovery." msgstr "%s არ შეიძლება შესრულდეს აღდგენის დროს." -#: access/transam/xlogfuncs.c:215 +#: access/transam/xlogfuncs.c:216 #, c-format msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" msgstr "pg_log_standby_snapshot()-ის გამოყენება შესაძლებელია, მხოლოდ, მაშინ, როცა \"wal_level\" >= \"replica\"" -#: access/transam/xlogfuncs.c:247 +#: access/transam/xlogfuncs.c:248 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "WAL დონე არ არის საკმარისი აღდგენის წერტილის შესაქმნელად" -#: access/transam/xlogfuncs.c:255 +#: access/transam/xlogfuncs.c:256 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "აღდგენის წერტილისთვის მნიშვნელობა ძალიან გრძელია (მაქს. %d სიმბოლო)" -#: access/transam/xlogfuncs.c:486 +#: access/transam/xlogfuncs.c:487 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "არასწორი WAL ფაილის სახელი \"%s\"" -#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 access/transam/xlogfuncs.c:679 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 access/transam/xlogfuncs.c:680 #, c-format msgid "recovery is not in progress" msgstr "აღდგენა არ მიმდინარეობს" -#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 access/transam/xlogfuncs.c:680 +#: access/transam/xlogfuncs.c:524 access/transam/xlogfuncs.c:554 access/transam/xlogfuncs.c:578 access/transam/xlogfuncs.c:601 access/transam/xlogfuncs.c:681 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "აღდგენის კონტროლის ფუნქციების შესრულება მხოლოდ აღდგენის დროს შეიძლება." -#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "standby promotion is ongoing" msgstr "მინდინარეობს უქმობის დაწინაურება" -#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 +#: access/transam/xlogfuncs.c:530 access/transam/xlogfuncs.c:560 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "წახალისების დაწყების შემდეგ %s-ის შესრულება შეუძლებელია." -#: access/transam/xlogfuncs.c:685 +#: access/transam/xlogfuncs.c:686 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" უარყოფითი ან ნულოვანი არ უნდა იყოს" -#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 +#: access/transam/xlogfuncs.c:708 storage/ipc/signalfuncs.c:293 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "postmaster-ისთვის სიგნალის გაგზავნის შეცდომა: %m" -#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#: access/transam/xlogfuncs.c:740 libpq/be-secure.c:241 libpq/be-secure.c:350 #, c-format msgid "terminating connection due to unexpected postmaster exit" msgstr "მიერთების შეწყვეტა postmaster-ის მოულოდნელი გასვლის გამო" -#: access/transam/xlogfuncs.c:740 +#: access/transam/xlogfuncs.c:741 #, c-format msgid "while waiting on promotion" msgstr "წახალისების მოლოდინისას" -#: access/transam/xlogfuncs.c:744 +#: access/transam/xlogfuncs.c:745 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" msgstr[0] "სერვერი არ წახალისდა %d წამში" msgstr[1] "სერვერი არ წახალისდა %d წამში" -#: access/transam/xlogprefetcher.c:1088 +#: access/transam/xlogprefetcher.c:1086 #, c-format -msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()." -msgstr "\"recovery_prefetch\" პლატფორმებზე, რომლებსაც posix_fadvise() არ აქვთ, მხარდაჭერილი არაა." +msgid "\"recovery_prefetch\" is not supported on platforms that lack support for issuing read-ahead advice." +msgstr "\"recovery_prefetch\" პლატფორმებზე, რომლებსაც წინასწარ-წაკითხვის მითითება არ აქვთ, მხარდაჭერილი არაა." -#: access/transam/xlogreader.c:619 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი წანაცვლება მისამართზე %X/%X: მოველოდი მინიმუმ %u, მივიღე %u" -#: access/transam/xlogreader.c:628 +#: access/transam/xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord მოთხოვნილია %X/%X-ის მიერ" -#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 +#: access/transam/xlogreader.c:670 access/transam/xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი სიგრძე მისამართზე %X/%X: მოველოდი მინიმუმ %u, მივიღე %u" -#: access/transam/xlogreader.c:758 +#: access/transam/xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "მისამართზე %X/%X contrecord ალამი არ არსებობს" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "contrecord -ის არასწორი სიგრძე %u (მოველოდი %lld) მისამართზე %X/%X" -#: access/transam/xlogreader.c:1142 +#: access/transam/xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "რესურსის მმართველის არასწორი ID %u მისამართზე %X/%X" -#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 +#: access/transam/xlogreader.c:1156 access/transam/xlogreader.c:1172 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "ჩანაწერი არასწორი წინა ბმულით %X/%X მისამართზე %X/%X" -#: access/transam/xlogreader.c:1209 +#: access/transam/xlogreader.c:1210 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "რესურსის მმართველის მონაცემების არასწორი საკონტროლო რიცხვი ჩანაწერში მისამართზე %X/%X" -#: access/transam/xlogreader.c:1243 +#: access/transam/xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი მაგიური რიცხვი %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 +#: access/transam/xlogreader.c:1259 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი საინფორმაციო ბიტები %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: access/transam/xlogreader.c:1274 +#: access/transam/xlogreader.c:1275 #, 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 ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: WAL ფაილის ბაზის სისტემის იდენტიფიკატორია %llu, pg_control-ის ბაზის სისტემის იდენტიფიკატორია %llu" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WAL ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: WAL ფაილის ბაზის სისტემის იდენტიფიკატორია %, pg_control-ის ბაზის სისტემის იდენტიფიკატორია %" -#: access/transam/xlogreader.c:1282 +#: access/transam/xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: გვერდის თავსართში მითითებული სეგმენტის ზომა არასწორია" -#: access/transam/xlogreader.c:1288 +#: access/transam/xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: გვერდის თავსართში მითითებული XLOG_BLKSZ არასწორია" -#: access/transam/xlogreader.c:1320 +#: access/transam/xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "მოულოდნელი pageaddr %X/%X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: access/transam/xlogreader.c:1346 +#: access/transam/xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "მიმდევრობის-გარე დროის ხაზის ID %u (%u-ის შემდეგ) ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: access/transam/xlogreader.c:1749 +#: access/transam/xlogreader.c:1759 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ურიგო block_id %u მისამართზე %X/%X" -#: access/transam/xlogreader.c:1773 +#: access/transam/xlogreader.c:1783 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA დაყენებულია, მაგრამ მონაცემები მისამართზე %X/%X არ არსებობს" -#: access/transam/xlogreader.c:1780 +#: access/transam/xlogreader.c:1790 #, 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:1816 +#: access/transam/xlogreader.c:1826 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE დაყენებულია, მაგრამ ნახვრეტის წანაცვლება %u სიგრძე %u ბლოკის ასლის სიგრძე %u მისამართზე %X/%X" -#: access/transam/xlogreader.c:1832 +#: access/transam/xlogreader.c:1842 #, 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:1846 +#: access/transam/xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED დაყენებულია, მაგრამ ბლოკის ასლის სიგრძეა %u მისამართზე %X/%X" -#: access/transam/xlogreader.c:1861 +#: access/transam/xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "არც BKPIMAGE_HAS_HOLE და არც BKPIMAGE_COMPRESSED დაყენებული არაა, მაგრამ ბლოკის ასლის სიგრძე %u-ა, მისამართზე %X/%X" -#: access/transam/xlogreader.c:1877 +#: access/transam/xlogreader.c:1887 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL დაყენებულია, მაგრამ წინა მნიშვნელობა მითითებული არაა მისამართზე %X/%X" -#: access/transam/xlogreader.c:1889 +#: access/transam/xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "არასწორი block_id %u %X/%X" -#: access/transam/xlogreader.c:1956 +#: access/transam/xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "ჩანაწერი არასწორი სიგრძით მისამართზე %X/%X" -#: access/transam/xlogreader.c:1982 +#: access/transam/xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "შეცდომა WAL ჩანაწერში მარქაფი ბლოკის, ID-ით %d, მოძებნისას" -#: access/transam/xlogreader.c:2066 +#: access/transam/xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X, როცა მითითებულია არასწორი ბლოკი %d" -#: access/transam/xlogreader.c:2073 +#: access/transam/xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "არასწორად შეკუმშული ასლი მისამართზე %X/%X, ბლოკი %d" -#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 +#: access/transam/xlogreader.c:2110 access/transam/xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%3$s მეთოდით შეკუმშული ასლი მისამართზე %1$X/%2$X, ბლოკი %4$d მხარდაუჭერელია ამ აგების მიერ" -#: access/transam/xlogreader.c:2126 +#: access/transam/xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "ასლის აღდგენის შეცდომა მისამართზე %X/%X შეკუმშული უცნობი მეთოდით, ბლოკი %d" -#: access/transam/xlogreader.c:2134 +#: access/transam/xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "არასწორად შეკუმშული ასლი მისამართზე %X/%X, ბლოკი %d" -#: access/transam/xlogrecovery.c:617 +#: access/transam/xlogrecovery.c:623 #, c-format msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" msgstr "იწყება მარქაფის აღდგენა გამეორების LSN-ით %X/%X საკონტროლო წერტილზე %X/%X დროის ხაზზე ID-ით %u" -#: access/transam/xlogrecovery.c:649 +#: access/transam/xlogrecovery.c:655 #, c-format msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X" msgstr "ვერ ვიპოვე გამეორების მდებარეობა %X/%X, რომელსაც მიმართავს საკონტროლო წერტილის ჩანაწერი მისამართზე %X/%X" -#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 +#: access/transam/xlogrecovery.c:657 access/transam/xlogrecovery.c:668 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n" @@ -2960,463 +2934,464 @@ msgid "" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup." msgstr "" -#: access/transam/xlogrecovery.c:660 +#: access/transam/xlogrecovery.c:666 #, c-format msgid "could not locate required checkpoint record at %X/%X" msgstr "აუცილებელი საკონტროლო წერტილის მოძებნა შეუძლებელია მისამართზე %X/%X" -#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 +#: access/transam/xlogrecovery.c:696 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "სიმბმულის შექმნის შეცდომა %s: %m" -#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 +#: access/transam/xlogrecovery.c:729 access/transam/xlogrecovery.c:735 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ფაილის (\"%s\") იგნორირება იმიტომ, რომ ფაილი \"%s\" არ არსებობს" -#: access/transam/xlogrecovery.c:725 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "სახელშეცვლილია '%s' -დან '%s'-ზე." -#: access/transam/xlogrecovery.c:731 +#: access/transam/xlogrecovery.c:737 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "გადარქმევის შეცდომა %s - %s: %m." -#: access/transam/xlogrecovery.c:770 +#: access/transam/xlogrecovery.c:776 #, c-format msgid "restarting backup recovery with redo LSN %X/%X" msgstr "მარქაფის აღდგენის თავიდან გაშვება გამეორების LSN-ით %X/%X" -#: access/transam/xlogrecovery.c:795 +#: access/transam/xlogrecovery.c:801 #, c-format msgid "could not locate a valid checkpoint record at %X/%X" msgstr "სწორი საკონტროლო წერტილის ჩანაწერის მოძებნა შეუძლებელია მისამართზე %X/%X" -#: access/transam/xlogrecovery.c:806 +#: access/transam/xlogrecovery.c:812 #, c-format msgid "entering standby mode" msgstr "უქმე რეჟიმზე გადართვა" -#: access/transam/xlogrecovery.c:809 +#: access/transam/xlogrecovery.c:815 #, c-format msgid "starting point-in-time recovery to XID %u" msgstr "დროში-მითითებული-წერტილით აღდგენის დასაწყისი XID-მდე %u" -#: access/transam/xlogrecovery.c:813 +#: access/transam/xlogrecovery.c:819 #, c-format msgid "starting point-in-time recovery to %s" msgstr "დროში-მითითებული-წერტილით აღდგენის დასაწყისი %s" -#: access/transam/xlogrecovery.c:817 +#: access/transam/xlogrecovery.c:823 #, c-format msgid "starting point-in-time recovery to \"%s\"" msgstr "დროში-მითითებული-წერტილით აღდგენის დასაწყისი \"%s\"" -#: access/transam/xlogrecovery.c:821 +#: access/transam/xlogrecovery.c:827 #, c-format msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" msgstr "" -#: access/transam/xlogrecovery.c:825 +#: access/transam/xlogrecovery.c:831 #, c-format msgid "starting point-in-time recovery to earliest consistent point" msgstr "უახლოეს თანმიმდევრულ წერტილამდე დროში-მითითებული-წერტილით აღდგენის დასაწყისი" -#: access/transam/xlogrecovery.c:828 +#: access/transam/xlogrecovery.c:834 #, c-format msgid "starting archive recovery" msgstr "არქივიდან აღდგენა დაიწყო" -#: access/transam/xlogrecovery.c:849 +#: access/transam/xlogrecovery.c:855 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "მოთხოვნილი დროის ხაზი %u სერვერის ისტორიის შვილი არაა" -#: access/transam/xlogrecovery.c:851 +#. translator: %s is a backup_label file or a pg_control file +#: access/transam/xlogrecovery.c:858 #, 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." +msgid "Latest checkpoint in file \"%s\" 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 "" -#: access/transam/xlogrecovery.c:865 +#: access/transam/xlogrecovery.c:873 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "" -#: access/transam/xlogrecovery.c:893 +#: access/transam/xlogrecovery.c:901 #, c-format msgid "invalid next transaction ID" msgstr "შემდეგი ტრანზაქციის არასწორი ID" -#: access/transam/xlogrecovery.c:898 +#: access/transam/xlogrecovery.c:906 #, c-format msgid "invalid redo in checkpoint record" msgstr "არასწორი გამეორება საკონტროლო წერტილის ჩანაწერში" -#: access/transam/xlogrecovery.c:909 +#: access/transam/xlogrecovery.c:917 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "გამეორების არასწორი ჩანაწერი გამორთვის საკონტროლო წერტილში" -#: access/transam/xlogrecovery.c:938 +#: access/transam/xlogrecovery.c:946 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "მონაცემთა ბაზა არასწორად გამოირთო; მიმდინარეობს ავტომატური აღდეგენა" -#: access/transam/xlogrecovery.c:942 +#: access/transam/xlogrecovery.c:950 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "ავარიიდან აღდგენა იწყება დროის ხაზზე %u და სამიზნედ დროის ხაზი %u აქვს" -#: access/transam/xlogrecovery.c:985 +#: access/transam/xlogrecovery.c:993 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label შეიცავს მონაცემებს, რომელიც კონტროლის ფაილს არ შეესაბამება" -#: access/transam/xlogrecovery.c:986 +#: access/transam/xlogrecovery.c:994 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "ეს ნიშნავს, რომ მარქაფი დაზიანებულია და აღდგენისთვის სხვა მარქაფის გამოყენება მოგიწევთ." -#: access/transam/xlogrecovery.c:1040 +#: access/transam/xlogrecovery.c:1048 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "აღდგენის ბრძანების ფაილი \"%s\" მხარდაუჭერელია" -#: access/transam/xlogrecovery.c:1105 +#: access/transam/xlogrecovery.c:1113 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "ერთმომხმარებლიან სერვერებს უქმე რეჟიმი არ გააჩნიათ" -#: access/transam/xlogrecovery.c:1122 +#: access/transam/xlogrecovery.c:1130 #, c-format msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" msgstr "მითითებულია არც\" primary_conninfo\" და არც \"restore_command\"" -#: access/transam/xlogrecovery.c:1123 +#: access/transam/xlogrecovery.c:1131 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "" -#: access/transam/xlogrecovery.c:1131 +#: access/transam/xlogrecovery.c:1139 #, c-format msgid "must specify \"restore_command\" when standby mode is not enabled" msgstr "როცა უქმე რეჟიმი ჩართული არაა, \"restore_command\" პარამეტრის მითითება აუცილებელია" -#: access/transam/xlogrecovery.c:1169 +#: access/transam/xlogrecovery.c:1177 #, c-format msgid "recovery target timeline %u does not exist" msgstr "აღდგენის სამიზნე დროის ხაზი არ არსებობს: %u" -#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 +#: access/transam/xlogrecovery.c:1260 access/transam/xlogrecovery.c:1267 access/transam/xlogrecovery.c:1326 access/transam/xlogrecovery.c:1414 access/transam/xlogrecovery.c:1423 access/transam/xlogrecovery.c:1443 #, c-format msgid "invalid data in file \"%s\"" msgstr "არასწორი მონაცემები ფაილში \"%s\"" -#: access/transam/xlogrecovery.c:1319 +#: access/transam/xlogrecovery.c:1327 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "დროის დამუშავებული ID %u-ა. მოველოდი მნშვნელობას %u." -#: access/transam/xlogrecovery.c:1330 +#: access/transam/xlogrecovery.c:1338 #, c-format msgid "this is an incremental backup, not a data directory" msgstr "ეს ინკრემენტული მარქაფია და არა მონაცემების საქაღალდე" -#: access/transam/xlogrecovery.c:1331 +#: access/transam/xlogrecovery.c:1339 #, c-format msgid "Use pg_combinebackup to reconstruct a valid data directory." msgstr "სწორი მონაცემების საქაღალდის თავიდან ასაგებად გამოიყენეთ ბრძანება pg_combinebackup." -#: access/transam/xlogrecovery.c:1717 +#: access/transam/xlogrecovery.c:1725 #, c-format msgid "unexpected record type found at redo point %X/%X" msgstr "აღმოჩენილია მოულოდნელი ჩანაწერის ტიპი გამეორების წერტილზე %X/%X" -#: access/transam/xlogrecovery.c:1740 +#: access/transam/xlogrecovery.c:1748 #, c-format msgid "redo starts at %X/%X" msgstr "გამეორება დაიწყება მისამართიდან %X/%X" -#: access/transam/xlogrecovery.c:1753 +#: access/transam/xlogrecovery.c:1761 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "მიმდინარეობს გამეორება. გასული დრო: %ld.%02d მიმდინარე LSN: %X/%X" -#: access/transam/xlogrecovery.c:1843 +#: access/transam/xlogrecovery.c:1851 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "მოთხოვნილი აღდგენის წერტილი მუდმივი აღდგენის წერტილამდეა" -#: access/transam/xlogrecovery.c:1875 +#: access/transam/xlogrecovery.c:1883 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "გამეორება დასრულდა %X/%X -სთან. სისტემის დატვირთვა: %s" -#: access/transam/xlogrecovery.c:1881 +#: access/transam/xlogrecovery.c:1889 #, c-format msgid "last completed transaction was at log time %s" msgstr "უკანასკნელად დასრულებული ტრანზაქცია მოხდა ჟურნალის დროით %s" -#: access/transam/xlogrecovery.c:1890 +#: access/transam/xlogrecovery.c:1898 #, c-format msgid "redo is not required" msgstr "გამეორება საჭირო არაა" -#: access/transam/xlogrecovery.c:1901 +#: access/transam/xlogrecovery.c:1910 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "აღდგენა მითითებული აღდგენის სამიზნის მიღწევამდე დასრულდა" -#: access/transam/xlogrecovery.c:2095 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "" -#: access/transam/xlogrecovery.c:2162 +#: access/transam/xlogrecovery.c:2171 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "%2$s-ში ნაპოვნია მოულოდნელი საქაღალდის ჩანაწერი \"%1$s\"" -#: access/transam/xlogrecovery.c:2164 +#: access/transam/xlogrecovery.c:2173 #, c-format -msgid "All directory entries in pg_tblspc/ should be symbolic links." -msgstr "ყველა საქაღალდის ტიპის ელემენტი ph_tblspc/-ში სიმბმულს უნდა წარმოადგენდეს." +msgid "All directory entries in %s/ should be symbolic links." +msgstr "ყველა საქაღალდის ტიპის ელემენტი \"%s/-ში სიმბმულს უნდა წარმოადგენდეს." -#: access/transam/xlogrecovery.c:2165 +#: access/transam/xlogrecovery.c:2175 #, c-format msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete." msgstr "" -#: access/transam/xlogrecovery.c:2217 +#: access/transam/xlogrecovery.c:2227 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "" -#: access/transam/xlogrecovery.c:2247 +#: access/transam/xlogrecovery.c:2258 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "თანმიმდევრული აღდგენის მდგომარეობა მიღწეულია მისამართზე %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2285 +#: access/transam/xlogrecovery.c:2296 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL გამეორება %X/%X %s-სთვის" -#: access/transam/xlogrecovery.c:2383 +#: access/transam/xlogrecovery.c:2394 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "მოულოდნელი წინა დროის ხაზის ID %u (მიმდინარე დროის ხაზის ID %u) საკონტროლო წერტილის ჩანაწერში" -#: access/transam/xlogrecovery.c:2392 +#: access/transam/xlogrecovery.c:2403 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "მოულოდნელი დროის ხაზის ID %u (%u-ის შემდეგ) საკონტროლო წერტილის ჩანაწერში" -#: access/transam/xlogrecovery.c:2408 +#: access/transam/xlogrecovery.c:2419 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "" -#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 +#: access/transam/xlogrecovery.c:2603 access/transam/xlogrecovery.c:2879 #, c-format msgid "recovery stopping after reaching consistency" msgstr "აღდგენა შეთანხმებული მდგომარეობის მიღწევისას დასრულდება" -#: access/transam/xlogrecovery.c:2613 +#: access/transam/xlogrecovery.c:2624 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "აღდგენა შეწყდა WAL-ის მდებარეობამდე (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2703 +#: access/transam/xlogrecovery.c:2714 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "აღდგენა შეწყდა ტრანზაქციის (%u) გადაცემამდე. დრო %s" -#: access/transam/xlogrecovery.c:2710 +#: access/transam/xlogrecovery.c:2721 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "აღდგენა შეწყდა ტრანზაქციის (%u) გაუქმებამდე. დრო %s" -#: access/transam/xlogrecovery.c:2763 +#: access/transam/xlogrecovery.c:2774 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "აღდგენა შეწყდა აღდგენის წერტილთან \"%s\". დრო %s" -#: access/transam/xlogrecovery.c:2781 +#: access/transam/xlogrecovery.c:2792 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "აღდგენა შეწყდა WAL-ის მდებარეობამდე (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2848 +#: access/transam/xlogrecovery.c:2859 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "აღდგენა შეწყდა ტრანზაქციის (%u) გადაცემამდე. დრო %s" -#: access/transam/xlogrecovery.c:2856 +#: access/transam/xlogrecovery.c:2867 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "აღდგენა ტრანზაქციის (%u) გაუქმების შემდეგ შეწყდა. დრო %s" -#: access/transam/xlogrecovery.c:2937 +#: access/transam/xlogrecovery.c:2948 #, c-format msgid "pausing at the end of recovery" msgstr "შეჩერება აღდგენის ბოლოს" -#: access/transam/xlogrecovery.c:2938 +#: access/transam/xlogrecovery.c:2949 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "წასახალისებლად გაუშვით pg_wal_replay_resume()." -#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4678 +#: access/transam/xlogrecovery.c:2952 access/transam/xlogrecovery.c:4698 #, c-format msgid "recovery has paused" msgstr "აღდგენა შეჩერდა" -#: access/transam/xlogrecovery.c:2942 +#: access/transam/xlogrecovery.c:2953 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "გასაგრძელებლად გაუშვით pg_wal_replay_resume()." -#: access/transam/xlogrecovery.c:3205 +#: access/transam/xlogrecovery.c:3216 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "მოულოდნელი დროის ხაზის ID %u WAL სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: access/transam/xlogrecovery.c:3413 +#: access/transam/xlogrecovery.c:3432 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "ჟურნალის სეგმენტიდან (%s, LSN %X/%X, წანაცვლება %u) წაკითხვის შეცდომა: %m" -#: access/transam/xlogrecovery.c:3420 +#: access/transam/xlogrecovery.c:3439 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "ჟურნალის სეგმენტიდან (%s, LSN %X/%X, წანაცვლება %u) წაკითხვის შეცდომა: წავიკითხე %d %zu-დან" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4082 #, c-format msgid "invalid checkpoint location" msgstr "საკონტროლო წერტილის არასწორი მდებარეობა" -#: access/transam/xlogrecovery.c:4070 +#: access/transam/xlogrecovery.c:4092 #, c-format msgid "invalid checkpoint record" msgstr "საკონტროლო წერტილის არასწორი ჩანაწერი" -#: access/transam/xlogrecovery.c:4076 +#: access/transam/xlogrecovery.c:4098 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "რესურსის მმართველის არასწორი ID საკონტროლო წერტილის ჩანაწერში" -#: access/transam/xlogrecovery.c:4084 +#: access/transam/xlogrecovery.c:4106 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "საკონტროლო წერტილის არასწორი xl_info" -#: access/transam/xlogrecovery.c:4090 +#: access/transam/xlogrecovery.c:4112 #, c-format msgid "invalid length of checkpoint record" msgstr "საკონტროლო წერტილის ჩანაწერის არასწორი სიგრძე" -#: access/transam/xlogrecovery.c:4144 +#: access/transam/xlogrecovery.c:4166 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "ახალი დროის ხაზი %u ბაზის სისტემის დროის ხაზის %u შვილი არაა" -#: access/transam/xlogrecovery.c:4158 +#: access/transam/xlogrecovery.c:4180 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "" -#: access/transam/xlogrecovery.c:4177 +#: access/transam/xlogrecovery.c:4199 #, c-format msgid "new target timeline is %u" msgstr "ახალი სამიზნის დროის ხაზია %u" -#: access/transam/xlogrecovery.c:4380 +#: access/transam/xlogrecovery.c:4400 #, c-format msgid "WAL receiver process shutdown requested" msgstr "მოთხოვნილია WAL-ის მიმღები პროცესის გამორთვა" -#: access/transam/xlogrecovery.c:4440 +#: access/transam/xlogrecovery.c:4460 #, c-format msgid "received promote request" msgstr "მიღებულა დაწინაურების მოთხოვნა" -#: access/transam/xlogrecovery.c:4669 +#: access/transam/xlogrecovery.c:4689 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "ცხელი მომლოდინე სერვერის არსებობა შეუძლებელია არასაკმარისი პარამეტრის მნიშვნელობების გამო" -#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 access/transam/xlogrecovery.c:4727 +#: access/transam/xlogrecovery.c:4690 access/transam/xlogrecovery.c:4717 access/transam/xlogrecovery.c:4747 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d ნაკლებია, ვიდრე ძირითად სერვერზე, სადაც მისი მნიშვნელობაა %d." -#: access/transam/xlogrecovery.c:4679 +#: access/transam/xlogrecovery.c:4699 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "თუ აღდგენა გაგრძელდება, სერვერი გამოირთვება." -#: access/transam/xlogrecovery.c:4680 +#: access/transam/xlogrecovery.c:4700 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "კონფიგურაციაში საჭირო ცვლილებების შეტანის შემდეგ შეგიძლიათ სერვერი დაარესტარტოთ." -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4711 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "დაწინაურება შეუძლებელია არასაკმარისი პარამეტრების მნიშვნელობების გამო" -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4721 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "კონფიგურაციაში საჭირო ცვლილებების შეტანის შემდეგ გადატვირთეთ სერვერი." -#: access/transam/xlogrecovery.c:4725 +#: access/transam/xlogrecovery.c:4745 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "აღდგენა შეწყვეტილია არასაკმარისი პარამეტრების მნიშვნელობების გამო" -#: access/transam/xlogrecovery.c:4731 +#: access/transam/xlogrecovery.c:4751 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "კონფიგურაციაში საჭირო ცვლილებების შეტანის შემდეგ შეგიძლიათ სერვერი დაარესტარტოთ." -#: access/transam/xlogrecovery.c:4773 +#: access/transam/xlogrecovery.c:4792 #, c-format msgid "multiple recovery targets specified" msgstr "მითითებულია აღდგენის მრავალი სამიზნე" -#: access/transam/xlogrecovery.c:4774 +#: access/transam/xlogrecovery.c:4793 #, 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 "პარამეტრებიდან \"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\" და \"recovery_target_xid\" მხოლოდ ერთის დაყენება შეგიძლიათ." -#: access/transam/xlogrecovery.c:4785 +#: access/transam/xlogrecovery.c:4804 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "დაშვებულია მხოლოდ ერთი მნიშვნელობა: \"immediate\"." -#: access/transam/xlogrecovery.c:4937 utils/adt/timestamp.c:202 utils/adt/timestamp.c:455 +#: access/transam/xlogrecovery.c:4958 #, c-format -msgid "timestamp out of range: \"%s\"" -msgstr "დროის შტამპი დიაპაზონს გარეთაა: \"%s\"" +msgid "Timestamp out of range: \"%s\"." +msgstr "დროის შტამპი დიაპაზონს გარეთაა: \"%s\"." -#: access/transam/xlogrecovery.c:4982 +#: access/transam/xlogrecovery.c:5003 #, c-format msgid "\"recovery_target_timeline\" is not a valid number." msgstr "\"recovery_target_timeline\" სწორი რიცხვი არაა." -#: access/transam/xlogutils.c:1032 +#: access/transam/xlogutils.c:1023 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "'WAL'-ის სეგმენტიდან წაკითხვის შეცდომა %s, წანაცვლება %d: %m" -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1030 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "'WAL'-ის სეგმენტიდან წაკითხვის შეცდომა %s, წანაცვლება %d: წაკითხულია %d %d-დან" @@ -3436,7 +3411,7 @@ msgstr "არქივირების წარუმატებლად msgid "archive command was terminated by exception 0x%X" msgstr "არქივაციის ბრძანება დასრულდა გამონაკლისით 0x%X" -#: archive/shell_archive.c:109 postmaster/postmaster.c:3094 +#: archive/shell_archive.c:109 postmaster/postmaster.c:2843 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "თექვსმეტობითი მნიშვნელობის აღწერისთვის იხილეთ C-ის ჩასასმელი ფაილი \"ntstatus.h\"." @@ -3451,161 +3426,161 @@ msgstr "არქივაციის ბრძანება დასრუ msgid "archive command exited with unrecognized status %d" msgstr "არქივის ბრძანება უცნობი სტატუსით დასრულდა: %d" -#: backup/backup_manifest.c:254 +#: backup/backup_manifest.c:255 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "მოველოდი დროის ხაზის (%u) ბოლოს, მაგრამ ნაპოვნია დროის ხაზი %u" -#: backup/backup_manifest.c:278 +#: backup/backup_manifest.c:279 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "მოველოდი დროის ხაზის (%u) დასაწყისს, მაგრამ ნაპოვნია დროის ხაზი %u" -#: backup/backup_manifest.c:305 +#: backup/backup_manifest.c:306 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "დროის ხაზის %u დასაწყისი დროის ხაზის %u ისტორიაში აღმოჩენილი არაა" -#: backup/backup_manifest.c:356 +#: backup/backup_manifest.c:357 #, c-format msgid "could not rewind temporary file" msgstr "დროებითი ფაილის გადახვევის შეცდომა" -#: backup/basebackup.c:479 +#: backup/basebackup.c:481 #, c-format msgid "could not find any WAL files" msgstr "ვერცერთი WAL ფაილი ვერ ვიპოვე" -#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 +#: backup/basebackup.c:496 backup/basebackup.c:511 backup/basebackup.c:520 #, c-format msgid "could not find WAL file \"%s\"" msgstr "\"WAL\" ფაილის (\"%s\") მოძებნა შეუძლებელია" -#: backup/basebackup.c:560 backup/basebackup.c:585 +#: backup/basebackup.c:562 backup/basebackup.c:587 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "მოულოდნელი WAL ფაილის ზომა \"%s\"" -#: backup/basebackup.c:656 +#: backup/basebackup.c:658 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" msgstr[0] "ჯამში %lld საკონტროლო ჯამის გადამოწმების შეცდომა" msgstr[1] "ჯამში %lld საკონტროლო ჯამის გადამოწმების შეცდომა" -#: backup/basebackup.c:663 +#: backup/basebackup.c:665 #, c-format msgid "checksum verification failure during base backup" msgstr "ბაზის მარქაფისას საკონტროლო ჯამის შემოწმების შეცდომა" -#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 +#: backup/basebackup.c:735 backup/basebackup.c:744 backup/basebackup.c:755 backup/basebackup.c:772 backup/basebackup.c:781 backup/basebackup.c:790 backup/basebackup.c:805 backup/basebackup.c:822 backup/basebackup.c:831 backup/basebackup.c:843 backup/basebackup.c:867 backup/basebackup.c:881 backup/basebackup.c:892 backup/basebackup.c:903 backup/basebackup.c:916 #, c-format msgid "duplicate option \"%s\"" msgstr "დუბლიკატი პარამეტრი \"%s\"" -#: backup/basebackup.c:761 +#: backup/basebackup.c:763 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "საკონტროლო წერტილის უცნობი ტიპი: \"%s\"" -#: backup/basebackup.c:793 +#: backup/basebackup.c:795 #, c-format msgid "incremental backups cannot be taken unless WAL summarization is enabled" msgstr "ინკრემენტული მარქაფების აღება შეუძლებელია, სანამ WAL შეჯამებას არ ჩართავთ" -#: backup/basebackup.c:809 +#: backup/basebackup.c:811 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d პარამეტრისთვის \"%s\" დასაშვებ დიაპაზონს (%d .. %d) გარეთაა" -#: backup/basebackup.c:854 +#: backup/basebackup.c:856 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "მანიფესტის უცნობი პარამეტრი: \"%s\"" -#: backup/basebackup.c:905 +#: backup/basebackup.c:907 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "შეკუმშვის უცხო ალგორითმი: \"%s\"" -#: backup/basebackup.c:921 +#: backup/basebackup.c:923 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "ბაზის მარქაფის უცნობი პარამეტრი: \"%s\"" -#: backup/basebackup.c:932 +#: backup/basebackup.c:934 #, c-format msgid "manifest checksums require a backup manifest" msgstr "მანიფესტის საკონტროლო ჯამებს მარქაფი მანიფესტი ესაჭიროება" -#: backup/basebackup.c:941 +#: backup/basebackup.c:943 #, c-format msgid "target detail cannot be used without target" msgstr "სამიზნის დეტალს სამიზნის გარეშე ვერ გამოიყენებთ" -#: backup/basebackup.c:950 backup/basebackup_target.c:218 +#: backup/basebackup.c:952 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "სამიზნეს \"%s\" სამიზნის დეტალების მხარდაჭერა არ გააჩნია" -#: backup/basebackup.c:961 +#: backup/basebackup.c:963 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "შეკუმშვის დეტალებს ვერ დააყენებთ, სანამ შეკუმშვა ჩართული არაა" -#: backup/basebackup.c:974 +#: backup/basebackup.c:976 #, c-format msgid "invalid compression specification: %s" msgstr "შეკუმშვის არასწორი სპეციფიკაცია: %s" -#: backup/basebackup.c:1024 +#: backup/basebackup.c:1026 #, c-format msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" msgstr "ინკრემენტული BASE_BACKUP-ის შესრულებამდე აუცილებელია UPLOAD_MANIFEST" -#: backup/basebackup.c:1157 backup/basebackup.c:1358 +#: backup/basebackup.c:1159 backup/basebackup.c:1360 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "ფაილის ან საქაღალდის \"%s\" პოვნა შეუძლებელია: %m" -#: backup/basebackup.c:1544 +#: backup/basebackup.c:1546 #, c-format msgid "skipping special file \"%s\"" msgstr "სპეციალური ფაილის გამოტოვება \"%s\"" -#: backup/basebackup.c:1751 +#: backup/basebackup.c:1753 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "საკონტროლო ჯამის გადამოწმება შეუძლებელია ფაილში \"%s\", ბლოკი %u: წაკითხვის ბუფერის ზომა %d და გვერდის ზომა %d განსხვავდება" -#: backup/basebackup.c:1813 +#: backup/basebackup.c:1815 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" msgstr[0] "ფაილს \"%s\" სულ %d საკონტროლო ჯამის გადამოწმების ჩავარდნა აღმოაჩნდა" msgstr[1] "ფაილს \"%s\" სულ %d საკონტროლო ჯამის გადამოწმების ჩავარდნა აღმოაჩნდა" -#: backup/basebackup.c:1917 +#: backup/basebackup.c:1920 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "საკონტროლო ჯამის გამოთვლის შეცდომა ფაილში \"%s\", ბლოკი \"%u\": გამოთვლილი საკონტროლო ჯამია %X, მაგრამ მოველოდი: %X" -#: backup/basebackup.c:1924 +#: backup/basebackup.c:1927 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "ამის შემდეგ ფაილში \"%s\" შეხვედრილი საკონტროლო ჯამის გადამოწმების ჩავარდნები ანგარიშში აღარ გამოჩნდება" -#: backup/basebackup.c:2048 +#: backup/basebackup.c:2052 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "ფაილის სახელი ძალიან გრძელია tar ფორმატისთვის: \"%s\"" -#: backup/basebackup.c:2053 +#: backup/basebackup.c:2058 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "სიმბოლური ბმულის სამიზნე ძალიან გრძელია tar ფორმატისთვის: ფაილის სახელი '%s', სამიზნე '%s'" -#: backup/basebackup.c:2127 +#: backup/basebackup.c:2132 #, c-format msgid "could not read file \"%s\": read %zd of %zu" msgstr "ფაილი \"%s\" ვერ წავიკითხე: წაკითხულია %zd %zu-დან" @@ -3620,80 +3595,65 @@ msgstr "ამ აგებაში gzip შეკუმშვის მხა msgid "could not initialize compression library" msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზაციის შეცდომა" -#: backup/basebackup_incremental.c:300 +#: backup/basebackup_incremental.c:292 #, c-format msgid "manifest contains no required WAL ranges" msgstr "მანიფესტი აუცილებელ WAL შუალედებს არ შეიცავს" -#: backup/basebackup_incremental.c:355 +#: backup/basebackup_incremental.c:347 #, c-format msgid "timeline %u found in manifest, but not in this server's history" msgstr "დროის ხაზი %u ვიპოვე მანიფესტში, სერვერის ისტორიაში კი - ვერა" -#: backup/basebackup_incremental.c:420 +#: backup/basebackup_incremental.c:412 #, c-format msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X" msgstr "მანიფესტი მოითხოვს WAL-ს საწყისი დროის ხაზიდან %u საწყისი წერტილით %X/%X, მაგრამ დროის ხაზი იწყება მნიშვნელობაზე %X/%X" -#: backup/basebackup_incremental.c:430 +#: backup/basebackup_incremental.c:422 #, c-format msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X" msgstr "მანიფესტი მოითხოვს WAL-ს გაგრძელების დროის ხაზიდან %u საწყისი წერტილით %X/%X, მაგრამ დროის ხაზი იწყება მნიშვნელობაზე %X/%X" -#: backup/basebackup_incremental.c:441 +#: backup/basebackup_incremental.c:433 #, c-format msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X" msgstr "მანიფესტი მოითხოვს WAL-ს ფინალური დროის ხაზიდან %u საბოლოო წერტილით %X/%X, მაგრამ ეს მარქაფი იწყება მისამართზე %X/%X" -#: backup/basebackup_incremental.c:451 -#, c-format -msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" -msgstr "მანიფესტი მოითხოვს WAL-ს არაფინალური დროის ხაზიდან %u საბოლოო წერტილით %X/%X, მაგრამ ამ სერვერმა გადართო დროის ხაზები მისამართზე %X/%X" - -#: backup/basebackup_incremental.c:518 -#, c-format -msgid "WAL summarization is not progressing" -msgstr "" - -#: backup/basebackup_incremental.c:519 -#, c-format -msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." -msgstr "" - -#: backup/basebackup_incremental.c:532 +#: backup/basebackup_incremental.c:437 #, c-format -msgid "still waiting for WAL summarization through %X/%X after %ld seconds" +msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup." msgstr "" -#: backup/basebackup_incremental.c:535 +#: backup/basebackup_incremental.c:444 #, c-format -msgid "Summarization has reached %X/%X on disk and %X/%X in memory." -msgstr "" +msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" +msgstr "მანიფესტი მოითხოვს WAL-ს არაფინალური დროის ხაზიდან %u საბოლოო წერტილით %X/%X, მაგრამ ამ სერვერმა გადართო დროის ხაზები მისამართზე %X/%X" -#: backup/basebackup_incremental.c:604 +#: backup/basebackup_incremental.c:525 #, c-format msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist" msgstr "" -#: backup/basebackup_incremental.c:611 +#: backup/basebackup_incremental.c:532 #, c-format msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete" msgstr "" -#: backup/basebackup_incremental.c:615 +#: backup/basebackup_incremental.c:536 #, c-format msgid "The first unsummarized LSN in this range is %X/%X." msgstr "" -#: backup/basebackup_incremental.c:1015 +#: backup/basebackup_incremental.c:934 #, c-format msgid "backup manifest version 1 does not support incremental backup" msgstr "მარქაფის მანიფესტის ვერსიას 1 ინკრემენტული მარქაფების მხარდაჭერა არ გააჩნია" -#: backup/basebackup_incremental.c:1033 +#: backup/basebackup_incremental.c:952 #, c-format -msgid "manifest system identifier is %llu, but database system identifier is %llu" -msgstr "მანიფესტის სისტემის იდენტიფიკატორია %llu, მაგრამ კონტროლის ფაილიs მნიშვნელობაა %llu" +msgid "system identifier in backup manifest is %, but database system identifier is %" +msgstr "სისტემის იდენტიფიკატორი სარეზერვო მანიფესტში არის %, მაგრამ მონაცემთა ბაზის სისტემის იდენტიფიკატორია %" #: backup/basebackup_lz4.c:67 #, c-format @@ -3715,7 +3675,7 @@ msgstr "სერვერზე შენახული მარქაფი msgid "relative path not allowed for backup stored on server" msgstr "სერვერზე დამახსოვრებული მარქაფისთვის ფარდობითი ბილიკი დაშვებული არაა" -#: backup/basebackup_server.c:102 commands/dbcommands.c:477 commands/tablespace.c:157 commands/tablespace.c:173 commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 storage/file/copydir.c:47 +#: backup/basebackup_server.c:102 commands/dbcommands.c:478 commands/tablespace.c:157 commands/tablespace.c:173 commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:2179 storage/file/copydir.c:58 #, c-format msgid "could not create directory \"%s\": %m" msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" @@ -3725,12 +3685,12 @@ msgstr "საქაღალდის (%s) შექმნის შეცდ msgid "directory \"%s\" exists but is not empty" msgstr "საქაღალდე \"%s\" არსებობს, მაგრამ ცარიელი არაა" -#: backup/basebackup_server.c:123 utils/init/postinit.c:1177 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1171 #, c-format msgid "could not access directory \"%s\": %m" msgstr "საქაღალდის (%s) წვდომის შეცდომა: %m" -#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 backup/basebackup_server.c:268 backup/basebackup_server.c:275 backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 backup/basebackup_server.c:268 backup/basebackup_server.c:275 backup/walsummary.c:312 storage/smgr/md.c:519 storage/smgr/md.c:526 storage/smgr/md.c:608 storage/smgr/md.c:630 storage/smgr/md.c:1123 #, c-format msgid "Check free disk space." msgstr "შეამოწმეთ, დისკზე ადგილი დარჩა, თუ არა." @@ -3767,671 +3727,671 @@ msgstr "long-distance რეჟიმი ვერ ჩავრთე: %s" #: backup/walsummaryfuncs.c:95 #, c-format -msgid "invalid timeline %lld" -msgstr "არასწორი დროის ხაზი %lld" +msgid "invalid timeline %" +msgstr "არასწორი დროის ხაზი %" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:626 tcop/postgres.c:3863 +#, c-format +msgid "--%s must be first argument" +msgstr "--%s პირველი არგუმენტი უნდა იყოს" -#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3859 +#: bootstrap/bootstrap.c:253 postmaster/postmaster.c:640 tcop/postgres.c:3877 #, c-format msgid "--%s requires a value" msgstr "--%s მნიშვნელობა სჭირდება" -#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3864 +#: bootstrap/bootstrap.c:258 postmaster/postmaster.c:645 tcop/postgres.c:3882 #, c-format msgid "-c %s requires a value" msgstr "-c %s მნიშვნელობა სჭირდება" -#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 postmaster/postmaster.c:759 +#: bootstrap/bootstrap.c:296 postmaster/postmaster.c:763 postmaster/postmaster.c:776 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'.\n" -#: bootstrap/bootstrap.c:291 +#: bootstrap/bootstrap.c:305 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: არასწორი ბრძანების სტრიქონის არგუმენტები\n" -#: catalog/aclchk.c:210 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "უფლებების უფლების მიცემა მხოლოდ როლებზეა შესაძლებელი" -#: catalog/aclchk.c:332 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "ურთიერთობის %2$s სვეტის %1$s პრივილეგიები მინიჭებული არაა" -#: catalog/aclchk.c:337 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "ობიექტს \"%s\" პრივილეგიები მინიჭებული არ აქვს" -#: catalog/aclchk.c:345 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "ურთიერთობის %2$s სვეტის %1$s ყველა პრივილეგია მინიჭებული არაა" -#: catalog/aclchk.c:350 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "\"%s\"-სთვის საჭირო ყველა უფლება მინიჭებული არ ყოფილა" -#: catalog/aclchk.c:361 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "ურთიერთობის %2$s სვეტის %1$s მოსახსნელი პრივილეგიები არ არსებობს" -#: catalog/aclchk.c:366 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "%s-სთვის უფლებები არ გაუქმდება" -#: catalog/aclchk.c:374 +#: catalog/aclchk.c:375 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "ურთიერთობის %2$s სვეტს %1$s ყველა პრივილეგიას ვერ მოხსნით" -#: catalog/aclchk.c:379 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "\"%s\"-ზე ყველა პრივილეგიის გაუქმება შეუძლებელია" -#: catalog/aclchk.c:411 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "მიმნიჭებელი მიმდინარე მომხმარებელი უნდა იყოს" -#: catalog/aclchk.c:479 catalog/aclchk.c:1054 +#: catalog/aclchk.c:480 catalog/aclchk.c:982 #, c-format msgid "invalid privilege type %s for relation" msgstr "ურთიერთობის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:483 catalog/aclchk.c:1058 +#: catalog/aclchk.c:484 catalog/aclchk.c:986 #, c-format msgid "invalid privilege type %s for sequence" msgstr "მიმდევრობის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:487 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "ბაზის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:491 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "დომენის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:495 catalog/aclchk.c:1062 +#: catalog/aclchk.c:496 catalog/aclchk.c:990 #, c-format msgid "invalid privilege type %s for function" msgstr "ფუნქციის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:499 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "ენის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:503 +#: catalog/aclchk.c:504 catalog/aclchk.c:1010 #, c-format msgid "invalid privilege type %s for large object" msgstr "დიდი ობიექტის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:507 catalog/aclchk.c:1078 +#: catalog/aclchk.c:508 catalog/aclchk.c:1006 #, c-format msgid "invalid privilege type %s for schema" msgstr "სქემის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:511 catalog/aclchk.c:1066 +#: catalog/aclchk.c:512 catalog/aclchk.c:994 #, c-format msgid "invalid privilege type %s for procedure" msgstr "პროცედურის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:515 catalog/aclchk.c:1070 +#: catalog/aclchk.c:516 catalog/aclchk.c:998 #, c-format msgid "invalid privilege type %s for routine" msgstr "ქვეპროგრამის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:519 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "ცხრილის სივრცის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:523 catalog/aclchk.c:1074 +#: catalog/aclchk.c:524 catalog/aclchk.c:1002 #, c-format msgid "invalid privilege type %s for type" msgstr "ტიპის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:527 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "გარე მონაცემების გადამტანის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:531 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "გარე სერვერის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:535 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "პარამეტრის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:574 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "სვეტის პრივილეგიები მხოლოდ ურთიერთობებისთვის მოქმედებს" -#: catalog/aclchk.c:737 catalog/aclchk.c:3626 catalog/objectaddress.c:1054 catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 -#, c-format -msgid "large object %u does not exist" -msgstr "დიდი ობიექტი %u არ არსებობს" - -#: catalog/aclchk.c:1111 +#: catalog/aclchk.c:1043 #, c-format msgid "default privileges cannot be set for columns" msgstr "სვეტებისთვის ნაგულისხმევი პრივილეგიების დაყენება შეუძლებელია" -#: catalog/aclchk.c:1147 +#: catalog/aclchk.c:1079 #, c-format msgid "permission denied to change default privileges" msgstr "ნაგულისხმევი პრივილეგიების შეცვლის წვდომა აკრძალულია" -#: catalog/aclchk.c:1265 +#: catalog/aclchk.c:1197 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "'IN SCHEMA' პირობის გამოყენება GRANT/REVOKE ON SCHEMAS-ის გამოყენებისას შეუძლებელია" -#: catalog/aclchk.c:1616 catalog/catalog.c:629 catalog/objectaddress.c:1523 catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:913 commands/sequence.c:1645 commands/tablecmds.c:7549 commands/tablecmds.c:7703 commands/tablecmds.c:7753 commands/tablecmds.c:7827 commands/tablecmds.c:7897 commands/tablecmds.c:8027 commands/tablecmds.c:8156 commands/tablecmds.c:8250 commands/tablecmds.c:8351 commands/tablecmds.c:8478 commands/tablecmds.c:8508 -#: commands/tablecmds.c:8650 commands/tablecmds.c:8743 commands/tablecmds.c:8877 commands/tablecmds.c:8989 commands/tablecmds.c:12709 commands/tablecmds.c:12890 commands/tablecmds.c:13051 commands/tablecmds.c:14240 commands/tablecmds.c:16866 commands/trigger.c:942 parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 parser/parse_type.c:144 parser/parse_utilcmd.c:3538 parser/parse_utilcmd.c:3578 parser/parse_utilcmd.c:3620 utils/adt/acl.c:2917 -#: utils/adt/ruleutils.c:2811 +#: catalog/aclchk.c:1207 +#, c-format +msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON LARGE OBJECTS" +msgstr "'IN SCHEMA' პირობის გამოყენება GRANT/REVOKE ON LARGE OBJECT-ის გამოყენებისას შეუძლებელია" + +#: catalog/aclchk.c:1561 catalog/catalog.c:686 catalog/heap.c:2611 catalog/heap.c:2930 catalog/objectaddress.c:1528 catalog/pg_publication.c:570 commands/analyze.c:388 commands/copy.c:1000 commands/sequence.c:1655 commands/tablecmds.c:7751 commands/tablecmds.c:7929 commands/tablecmds.c:8130 commands/tablecmds.c:8259 commands/tablecmds.c:8388 commands/tablecmds.c:8482 commands/tablecmds.c:8585 commands/tablecmds.c:8751 commands/tablecmds.c:8781 +#: commands/tablecmds.c:8936 commands/tablecmds.c:9039 commands/tablecmds.c:9173 commands/tablecmds.c:9286 commands/tablecmds.c:14356 commands/tablecmds.c:14556 commands/tablecmds.c:14717 commands/tablecmds.c:15922 commands/tablecmds.c:18689 commands/trigger.c:947 parser/analyze.c:2660 parser/parse_relation.c:749 parser/parse_target.c:1070 parser/parse_type.c:144 parser/parse_utilcmd.c:3641 parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3723 +#: statistics/attribute_stats.c:209 statistics/attribute_stats.c:948 utils/adt/acl.c:2921 utils/adt/ruleutils.c:2858 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "სვეტი \"%s\" ურთიერთობაში %s არ არსებობს" -#: catalog/aclchk.c:1861 +#: catalog/aclchk.c:1806 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" ინდექსია" -#: catalog/aclchk.c:1868 commands/tablecmds.c:14397 commands/tablecmds.c:17775 +#: catalog/aclchk.c:1813 commands/tablecmds.c:16079 commands/tablecmds.c:19608 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" კომპოზიტური ტიპია" -#: catalog/aclchk.c:1876 catalog/objectaddress.c:1363 commands/tablecmds.c:263 commands/tablecmds.c:17739 utils/adt/acl.c:2101 utils/adt/acl.c:2131 utils/adt/acl.c:2164 utils/adt/acl.c:2200 utils/adt/acl.c:2231 utils/adt/acl.c:2262 +#: catalog/aclchk.c:1821 catalog/objectaddress.c:1368 commands/tablecmds.c:266 commands/tablecmds.c:19572 utils/adt/acl.c:2105 utils/adt/acl.c:2135 utils/adt/acl.c:2168 utils/adt/acl.c:2204 utils/adt/acl.c:2235 utils/adt/acl.c:2266 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" მიმდევრობა არაა" -#: catalog/aclchk.c:1914 +#: catalog/aclchk.c:1859 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "მიმდევრობა \"%s\"-ს მხოლოდ USAGE, SELECT და UPDATE პრივილეგიების მხარდაჭერა გააჩნიათ" -#: catalog/aclchk.c:1931 +#: catalog/aclchk.c:1876 #, c-format msgid "invalid privilege type %s for table" msgstr "ცხრილის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:2094 +#: catalog/aclchk.c:2041 #, c-format msgid "invalid privilege type %s for column" msgstr "სვეტის პრივილეგიის არასწორი ტიპი: %s" -#: catalog/aclchk.c:2107 +#: catalog/aclchk.c:2054 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "მიმდევრობა \"%s\"-ს მხოლოდ SELECT სვეტის პრივილეგიების მხარდაჭერა გააჩნია" -#: catalog/aclchk.c:2297 +#: catalog/aclchk.c:2245 #, c-format msgid "language \"%s\" is not trusted" msgstr "ენა \"%s\" სანდო არაა" -#: catalog/aclchk.c:2299 +#: catalog/aclchk.c:2247 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." msgstr "GRANT და REVOKE არასანდო ენებზე დაშვებული არაა, რადგან არასანდო ენების გამოყენება მხოლოდ ზემომხმარებლებს შეუძლიათ." -#: catalog/aclchk.c:2451 +#: catalog/aclchk.c:2398 #, c-format msgid "cannot set privileges of array types" msgstr "მასივის ტიპების პრივილეგიის დაყენება შეუძლებელია" -#: catalog/aclchk.c:2452 +#: catalog/aclchk.c:2399 #, c-format msgid "Set the privileges of the element type instead." msgstr "ნაცვლად დააყენეთ ელემენტის ტიპის პრივილეგიები." -#: catalog/aclchk.c:2456 +#: catalog/aclchk.c:2403 #, c-format msgid "cannot set privileges of multirange types" msgstr "მრავალშუალედიანი ტიპების პრივილეგიების დაყენება შეუძლებელია" -#: catalog/aclchk.c:2457 +#: catalog/aclchk.c:2404 #, c-format msgid "Set the privileges of the range type instead." msgstr "სანაცვლოდ შუალედის ტიპის პრივილეგიების დაყენება." -#: catalog/aclchk.c:2464 catalog/objectaddress.c:1629 -#, c-format -msgid "\"%s\" is not a domain" -msgstr "\"%s\" დომენი არაა" - -#: catalog/aclchk.c:2650 +#: catalog/aclchk.c:2587 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "პრივილეგიის უცნობი ტიპი \"%s\"" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2654 #, c-format msgid "permission denied for aggregate %s" msgstr "წვდომა აკრძალულია აგრეგატზე: \"%s\"" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2657 #, c-format msgid "permission denied for collation %s" msgstr "წვდომა აკრძალულია კოლაციაზე: \"%s\"" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2660 #, c-format msgid "permission denied for column %s" msgstr "წვდომა აკრძალულია სვეტზე: \"%s\"" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2663 #, c-format msgid "permission denied for conversion %s" msgstr "წვდომა აკრძალულია გადაყვანაზე: \"%s\"" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2666 #, c-format msgid "permission denied for database %s" msgstr "წვდომა აკრძალულია აგრეგატზე: \"%s\"" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2669 #, c-format msgid "permission denied for domain %s" msgstr "წვდომა აკრძალულია დომენზე: \"%s\"" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2672 #, c-format msgid "permission denied for event trigger %s" msgstr "წვდომა აკრძალულია მოვლენის ტრიგერზე: \"%s\"" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2675 #, c-format msgid "permission denied for extension %s" msgstr "წვდომა აკრძალულია გაფართოებაზე: \"%s\"" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2678 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "წვდომა აკრძალულია გარე მონაცემების გადამტანზე: \"%s\"" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2681 #, c-format msgid "permission denied for foreign server %s" msgstr "წვდომა აკრძალულია გარე სერვერზე: \"%s\"" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2684 #, c-format msgid "permission denied for foreign table %s" msgstr "წვდომა აკრძალულია გარე ცხრილზე: \"%s\"" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2687 #, c-format msgid "permission denied for function %s" msgstr "წვდომა აკრძალულია ფუნქციაზე: \"%s\"" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2690 #, c-format msgid "permission denied for index %s" msgstr "წვდომა აკრძალულია ინდექზე: \"%s\"" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2693 #, c-format msgid "permission denied for language %s" msgstr "წვდომა აკრძალულია ენაზე: \"%s\"" -#: catalog/aclchk.c:2759 +#: catalog/aclchk.c:2696 #, c-format msgid "permission denied for large object %s" msgstr "წვდომა აკრძალულია დიდ ობიექტზე: \"%s\"" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2699 #, c-format msgid "permission denied for materialized view %s" msgstr "წვდომა აკრძალულია მატერიალიზებულ ხედზე: \"%s\"" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2702 #, c-format msgid "permission denied for operator class %s" msgstr "წვდომა აკრძალულია ოპერატორის კლასზე: \"%s\"" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2705 #, c-format msgid "permission denied for operator %s" msgstr "წვდომა აკრძალულია ოპერატორზე: \"%s\"" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2708 #, c-format msgid "permission denied for operator family %s" msgstr "წვდომა აკრძალულია ოპერატორის ოჯახზე: \"%s\"" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2711 #, c-format msgid "permission denied for parameter %s" msgstr "წვდომა აკრძალულია პარამეტრზე: \"%s\"" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2714 #, c-format msgid "permission denied for policy %s" msgstr "წვდომა აკრძალულია წესზე: \"%s\"" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2717 #, c-format msgid "permission denied for procedure %s" msgstr "წვდომა აკრძალულია პროცედურაზე: \"%s\"" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for publication %s" msgstr "წვდომა აკრძალულია პუბლიკაციაზე: \"%s\"" -#: catalog/aclchk.c:2786 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for routine %s" msgstr "წვდომა აკრძალულია ქვეპროგრამაზე: \"%s\"" -#: catalog/aclchk.c:2789 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for schema %s" msgstr "წვდომა აკრძალულია სქემაზე: \"%s\"" -#: catalog/aclchk.c:2792 commands/sequence.c:647 commands/sequence.c:873 commands/sequence.c:915 commands/sequence.c:956 commands/sequence.c:1743 commands/sequence.c:1789 +#: catalog/aclchk.c:2729 commands/sequence.c:654 commands/sequence.c:880 commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 #, c-format msgid "permission denied for sequence %s" msgstr "წვდომა აკრძალულია მიმდევრობაზე: \"%s\"" -#: catalog/aclchk.c:2795 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for statistics object %s" msgstr "წვდომა აკრძალულია სტატისტიკის ობიექტზე: \"%s\"" -#: catalog/aclchk.c:2798 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for subscription %s" msgstr "წვდომა აკრძალულია გამოწერაზე: \"%s\"" -#: catalog/aclchk.c:2801 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for table %s" msgstr "წვდომა აკრძალულია ცხრილზე: \"%s\"" -#: catalog/aclchk.c:2804 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for tablespace %s" msgstr "წვდომა აკრძალულია ცხრილების სივრცეზე: \"%s\"" -#: catalog/aclchk.c:2807 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for text search configuration %s" msgstr "წვდომა აკრძალულია ტექსტის ძებნის კონფიგურაციაზე: \"%s\"" -#: catalog/aclchk.c:2810 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for text search dictionary %s" msgstr "წვდომა აკრძალულია ტექსტის ძებნის ლექსიკონზე: \"%s\"" -#: catalog/aclchk.c:2813 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for type %s" msgstr "წვდომა აკრძალულია ტიპტზე: \"%s\"" -#: catalog/aclchk.c:2816 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for view %s" msgstr "წვდომა აკრძალულია ხედზე: \"%s\"" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2789 #, c-format msgid "must be owner of aggregate %s" msgstr "უნდა ბრძანდებოდეთ აგრეგატის მფლობელი: %s" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2792 #, c-format msgid "must be owner of collation %s" msgstr "უნდა ბრძანდებოდეთ კოლაციის მფლობელი: %s" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2795 #, c-format msgid "must be owner of conversion %s" msgstr "უნდა ბრძანდებოდეთ გადაყვანის მფლობელი: %s" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2798 #, c-format msgid "must be owner of database %s" msgstr "უნდა ბრძანდებოდეთ ბაზის მფლობელი: %s" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2801 #, c-format msgid "must be owner of domain %s" msgstr "უნდა ბრძანდებოდეთ დომენის მფლობელი: %s" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2804 #, c-format msgid "must be owner of event trigger %s" msgstr "უნდა ბრძანდებოდეთ მოვლენის ტრიგერის მფლობელი: %s" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2807 #, c-format msgid "must be owner of extension %s" msgstr "უნდა ბრძანდებოდეთ გაფართოების მფლობელი: %s" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2810 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "უნდა ბრძანდებოდეთ გარე ინფორმაციის გადამტანის მფლობელი: %s" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2813 #, c-format msgid "must be owner of foreign server %s" msgstr "უნდა ბრძანდებოდეთ გარე სერვერის მფლობელი: %s" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2816 #, c-format msgid "must be owner of foreign table %s" msgstr "უნდა ბრძანდებოდეთ გარე ცხრილის მფლობელი: %s" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2819 #, c-format msgid "must be owner of function %s" msgstr "უნდა ბრძანდებოდეთ ფუნქციის მფლობელი: %s" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2822 #, c-format msgid "must be owner of index %s" msgstr "უნდა ბრძანდებოდეთ ინდექსის მფლობელი: %s" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2825 #, c-format msgid "must be owner of language %s" msgstr "უნდა ბრძანდებოდეთ ენის მფლობელი: %s" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2828 #, c-format msgid "must be owner of large object %s" msgstr "უნდა ბრძანდებოდეთ დიდი ობიექტის მფლობელი: %s" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2831 #, c-format msgid "must be owner of materialized view %s" msgstr "უნდა ბრძანდებოდეთ მატერიალიზებული ხედის მფლობელი: %s" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2834 #, c-format msgid "must be owner of operator class %s" msgstr "უნდა ბრძანდებოდეთ ოპერატორის კლასის მფლობელი: %s" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2837 #, c-format msgid "must be owner of operator %s" msgstr "უნდა ბრძანდებოდეთ ოპერატორის მფლობელი: %s" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2840 #, c-format msgid "must be owner of operator family %s" msgstr "უნდა ბრძანდებოდეთ ოპერატორის ოჯახის მფლობელი: %s" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2843 #, c-format msgid "must be owner of procedure %s" msgstr "უნდა ბრძანდებოდეთ პროცედურის მფლობელი: %s" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2846 #, c-format msgid "must be owner of publication %s" msgstr "უნდა ბრძანდებოდეთ პუბლიკაციისმფლობელი: %s" -#: catalog/aclchk.c:2912 +#: catalog/aclchk.c:2849 #, c-format msgid "must be owner of routine %s" msgstr "უნდა ბრძანდებოდეთ ქვეპროგრამის მფლობელი: %s" -#: catalog/aclchk.c:2915 +#: catalog/aclchk.c:2852 #, c-format msgid "must be owner of sequence %s" msgstr "უნდა ბრძანდებოდეთ მიმდევრობის მფლობელი: %s" -#: catalog/aclchk.c:2918 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of subscription %s" msgstr "უნდა ბრძანდებოდეთ გამოწერის მფლობელი: %s" -#: catalog/aclchk.c:2921 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of table %s" msgstr "უნდა ბრძანდებოდეთ ცხრილის მფლობელი: %s" -#: catalog/aclchk.c:2924 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of type %s" msgstr "უნდა ბრძანდებოდეთ ტიპის მფლობელი: %s" -#: catalog/aclchk.c:2927 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of view %s" msgstr "უნდა ბრძანდებოდეთ ხედის მფლობელი: %s" -#: catalog/aclchk.c:2930 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of schema %s" msgstr "უნდა ბრძანდებოდეთ სქემის მფლობელი: %s" -#: catalog/aclchk.c:2933 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of statistics object %s" msgstr "უნდა ბრძანდებოდეთ სტატისტიკის ობიექტის მფლობელი: %s" -#: catalog/aclchk.c:2936 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of tablespace %s" msgstr "უნდა ბრძანდებოდეთ ცხრილების სივრცის მფლობელი: %s" -#: catalog/aclchk.c:2939 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of text search configuration %s" msgstr "უნდა ბრძანდებოდეთ ტექსტის ძებნის კონფიგურაციის მფლობელი: %s" -#: catalog/aclchk.c:2942 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of text search dictionary %s" msgstr "უნდა ბრძანდებოდეთ ტექსტის ძებნის ლექსიკონის მფლობელი: %s" -#: catalog/aclchk.c:2956 +#: catalog/aclchk.c:2893 #, c-format msgid "must be owner of relation %s" msgstr "უნდა ბრძანდებოდეთ ურთიერთობის მფლობელი: %s" -#: catalog/aclchk.c:3002 +#: catalog/aclchk.c:2939 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "რელაციის (%2$s) სვეტზე (%1$s) წვდომა აკრძალულია" -#: catalog/aclchk.c:3159 catalog/aclchk.c:4167 catalog/aclchk.c:4198 -#, c-format -msgid "%s with OID %u does not exist" -msgstr "%s OID-ით %u არ არსებობს" - -#: catalog/aclchk.c:3242 catalog/aclchk.c:3261 +#: catalog/aclchk.c:3173 catalog/aclchk.c:3192 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "ურთერთობის (OID-ით %2$u) ატრიბუტი არ არსებობს: %1$d" -#: catalog/aclchk.c:3299 catalog/aclchk.c:3362 catalog/aclchk.c:4001 +#: catalog/aclchk.c:3230 catalog/aclchk.c:3293 catalog/aclchk.c:3932 #, c-format msgid "relation with OID %u does not exist" msgstr "ურთიერთობა OID-ით %u არ არსებობს" -#: catalog/aclchk.c:3547 +#: catalog/aclchk.c:3478 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "პარამეტრის ACL OID-ით %u არ არსებობს" -#: catalog/aclchk.c:3720 commands/collationcmds.c:853 commands/publicationcmds.c:1739 +#: catalog/aclchk.c:3557 catalog/objectaddress.c:1055 catalog/pg_largeobject.c:125 libpq/be-fsstubs.c:323 storage/large_object/inv_api.c:247 +#, c-format +msgid "large object %u does not exist" +msgstr "დიდი ობიექტი %u არ არსებობს" + +#: catalog/aclchk.c:3651 commands/collationcmds.c:849 commands/publicationcmds.c:1846 #, c-format msgid "schema with OID %u does not exist" msgstr "სქემა OID-ით %u არ არსებობს" -#: catalog/aclchk.c:3794 catalog/aclchk.c:3821 catalog/aclchk.c:3850 utils/cache/typcache.c:392 utils/cache/typcache.c:447 +#: catalog/aclchk.c:3725 catalog/aclchk.c:3752 catalog/aclchk.c:3781 utils/cache/typcache.c:473 utils/cache/typcache.c:528 #, c-format msgid "type with OID %u does not exist" msgstr "ტიპი OID-ით %u არ არსებობს" -#: catalog/catalog.c:447 +#: catalog/catalog.c:506 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "ურთიერთობაში \"%s\" გამოუყენებელი OID-ების ძებნა ჯერ კიდევ მიმდინარეობს" -#: catalog/catalog.c:449 +#: catalog/catalog.c:508 #, c-format -msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." -msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." -msgstr[0] "OID-ის კანდიდატები %llu-ჯერ შემოწმდა, მაგრამ გამოუყენებელი OID-ი ნაპოვნი არაა." -msgstr[1] "OID-ის კანდიდატები %llu-ჯერ შემოწმდა, მაგრამ გამოუყენებელი OID-ი ნაპოვნი არაა." +msgid "OID candidates have been checked % time, but no unused OID has been found yet." +msgid_plural "OID candidates have been checked % times, but no unused OID has been found yet." +msgstr[0] "OID-ის კანდიდატები %-ჯერ შემოწმდა, მაგრამ გამოუყენებელი OID-ი ნაპოვნი არაა." +msgstr[1] "OID-ის კანდიდატები %-ჯერ შემოწმდა, მაგრამ გამოუყენებელი OID-ი ნაპოვნი არაა." -#: catalog/catalog.c:474 +#: catalog/catalog.c:533 #, c-format -msgid "new OID has been assigned in relation \"%s\" after %llu retry" -msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" -msgstr[0] "ახალი OID მინიჭებულია ურთიერთობაში \"%s\" %llu ცდის შემდეგ" -msgstr[1] "ახალი OID მინიჭებულია ურთიერთობაში \"%s\" %llu ცდის შემდეგ" +msgid "new OID has been assigned in relation \"%s\" after % retry" +msgid_plural "new OID has been assigned in relation \"%s\" after % retries" +msgstr[0] "ახალი OID მინიჭებულია ურთიერთობაში \"%s\" % ცდის შემდეგ" +msgstr[1] "ახალი OID მინიჭებულია ურთიერთობაში \"%s\" % ცდის შემდეგ" -#: catalog/catalog.c:607 catalog/catalog.c:674 +#: catalog/catalog.c:664 catalog/catalog.c:731 #, c-format msgid "must be superuser to call %s()" msgstr "%s()-ის გამოსაძახებლად ზემომხმარებელი უნდა იყოთ" -#: catalog/catalog.c:616 +#: catalog/catalog.c:673 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() მხოლოდ სისტემურ კატალოგებზე შეიძლება იყოს გამოყენებული" -#: catalog/catalog.c:621 parser/parse_utilcmd.c:2245 +#: catalog/catalog.c:678 parser/parse_utilcmd.c:2426 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "ინდექსი %s ცხრილს \"%s\" არ მიეკუთვნება" -#: catalog/catalog.c:638 +#: catalog/catalog.c:695 #, c-format msgid "column \"%s\" is not of type oid" msgstr "სვეტი \"%s\" oild-ის ტიპი არაა" -#: catalog/catalog.c:645 +#: catalog/catalog.c:702 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "ინდექსი \"%s\" სვეტის \"%s\" ინდექსი არაა" -#: catalog/dependency.c:497 catalog/pg_shdepend.c:695 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "%s-ის წაშლა შეუძლებელია. საჭიროა ბაზის სისტემისთვის" @@ -4456,7 +4416,7 @@ msgstr "%s დამოკიდებულია %s -ზე" msgid "drop cascades to %s" msgstr "წაშლა %s-ზეც ვრცელდება" -#: catalog/dependency.c:1138 catalog/pg_shdepend.c:860 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -4476,8 +4436,8 @@ msgstr[1] "" msgid "cannot drop %s because other objects depend on it" msgstr "%s-ის წაშლა შეუძლებელია, რადგან არის ობიექტები, რომლებიც მას ეყრდნობა" -#: catalog/dependency.c:1153 catalog/dependency.c:1160 catalog/dependency.c:1171 commands/tablecmds.c:1447 commands/tablecmds.c:14989 commands/tablespace.c:460 commands/user.c:1302 commands/vacuum.c:211 commands/view.c:441 libpq/auth.c:324 replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1427 utils/misc/guc.c:3169 utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6781 -#: utils/misc/guc.c:6815 utils/misc/guc.c:6849 utils/misc/guc.c:6892 utils/misc/guc.c:6934 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 catalog/dependency.c:1171 commands/tablecmds.c:1519 commands/tablecmds.c:16673 commands/tablespace.c:460 commands/user.c:1302 commands/vacuum.c:224 commands/view.c:441 executor/execExprInterp.c:5211 executor/execExprInterp.c:5219 libpq/auth.c:312 replication/logical/applyparallelworker.c:1041 replication/slot.c:1594 replication/syncrep.c:1079 storage/aio/method_io_uring.c:191 storage/lmgr/deadlock.c:1137 +#: storage/lmgr/proc.c:1526 utils/misc/guc.c:3166 utils/misc/guc.c:3207 utils/misc/guc.c:3282 utils/misc/guc.c:6823 utils/misc/guc.c:6857 utils/misc/guc.c:6891 utils/misc/guc.c:6934 utils/misc/guc.c:6976 #, c-format msgid "%s" msgstr "%s" @@ -4499,647 +4459,692 @@ msgid_plural "drop cascades to %d other objects" msgstr[0] "წაშლა გავრცელდება %d სხვა ობიექტზე" msgstr[1] "წაშლა გავრცელდება %d სხვა ობიექტზე" -#: catalog/dependency.c:1848 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "%s ტიპის კონსტანტის აქ გამოყენება არ შეიძლება" -#: catalog/dependency.c:2373 parser/parse_relation.c:3407 parser/parse_relation.c:3417 +#: catalog/dependency.c:2205 +#, c-format +msgid "transition table \"%s\" cannot be referenced in a persistent object" +msgstr "გარდასვლის ცხრილზე \"%s\" მიმართვა შეუძლებელია მუდმივი ობიექტიდან" + +#: catalog/dependency.c:2390 parser/parse_relation.c:3513 parser/parse_relation.c:3523 statistics/attribute_stats.c:221 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "სვეტი \"%d\" ურთიერთობაში %s არ არსებობს" -#: catalog/heap.c:325 +#: catalog/heap.c:321 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "\"%s.%s\"-ის შექმნის წვდომა აკრძალულია" -#: catalog/heap.c:327 +#: catalog/heap.c:323 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "სისტემური კატალოგების შეცვლა ამჟამად აკრძალულია." -#: catalog/heap.c:467 commands/tablecmds.c:2483 commands/tablecmds.c:2905 commands/tablecmds.c:7171 +#: catalog/heap.c:463 commands/tablecmds.c:2562 commands/tablecmds.c:3014 commands/tablecmds.c:7361 #, c-format msgid "tables can have at most %d columns" msgstr "ცხრილებს მაქსიმუმ %d სვეტი შეიძლება ჰქონდეს" -#: catalog/heap.c:485 commands/tablecmds.c:7440 +#: catalog/heap.c:481 commands/tablecmds.c:7663 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "სვეტის სახელი კონფლიქტშია სისტემური სვეტის სახელთან: \"%s\"" -#: catalog/heap.c:501 +#: catalog/heap.c:497 #, c-format msgid "column name \"%s\" specified more than once" msgstr "სვეტის სახელი ერთზე მეტჯერაა მითითებული: %s" #. translator: first %s is an integer not a name -#: catalog/heap.c:579 +#: catalog/heap.c:575 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "დანაყოფის საკვანძო სვეტის %s ფსევდო ტიპია %s" -#: catalog/heap.c:584 +#: catalog/heap.c:580 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "სვეტს \"%s\" გააჩნია ფსევდო ტიპი \"%s\"" -#: catalog/heap.c:615 +#: catalog/heap.c:595 +#, c-format +msgid "virtual generated column \"%s\" cannot have a domain type" +msgstr "ვირტუალურ გენერირებულ სვეტს \"%s\" დომენის ტიპი ვერ ექნება" + +#: catalog/heap.c:622 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "კომპოზიტური ტიპი %s საკუთარი თავის წევრი არ შეიძლება გახდეს" #. translator: first %s is an integer not a name -#: catalog/heap.c:670 +#: catalog/heap.c:677 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "" -#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:507 +#: catalog/heap.c:683 commands/createas.c:200 commands/createas.c:513 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "" -#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:403 commands/tablecmds.c:4142 commands/tablecmds.c:20463 commands/tablecmds.c:20725 +#: catalog/heap.c:1169 catalog/index.c:901 commands/createas.c:409 commands/tablecmds.c:4296 #, c-format msgid "relation \"%s\" already exists" msgstr "ურთიერთობა \"%s\" უკვე არსებობს" -#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 commands/typecmds.c:1585 commands/typecmds.c:2556 +#: catalog/heap.c:1185 catalog/pg_type.c:434 catalog/pg_type.c:805 catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 commands/typecmds.c:758 commands/typecmds.c:1205 commands/typecmds.c:1431 commands/typecmds.c:1611 commands/typecmds.c:2586 #, c-format msgid "type \"%s\" already exists" msgstr "ტიპი \"%s\" უკვე არსებობს" -#: catalog/heap.c:1178 +#: catalog/heap.c:1186 #, 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 "ურთიერთობას იგივე სახელის მქონე ტიპი აქვს ასოცირებული, ასე რომ თქვენ უნდა გამოიყენოთ სახელი, რომელიც არც ერთ არსებულ ტიპთან კონფლიქტში არ შედის." -#: catalog/heap.c:1218 +#: catalog/heap.c:1226 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "toast relfilenumber-ის მნიშვნელობა ბინარული განახლების დროს დაყენებული არაა" -#: catalog/heap.c:1229 +#: catalog/heap.c:1237 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_class-ის დროებითი მეხსიერების OID-ის მნიშვნელობა დაყენებული არაა" -#: catalog/heap.c:1239 +#: catalog/heap.c:1247 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "relfilenumber-ის მნიშვნელობა ბინარული განახლების დროს დაყენებული არაა" -#: catalog/heap.c:2121 +#: catalog/heap.c:2192 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "დაყოფილი ცხრილს (\"%s\") NO INHERIT შეზღუდვას ვერ დაამატებთ" -#: catalog/heap.c:2393 +#: catalog/heap.c:2515 #, c-format msgid "check constraint \"%s\" already exists" msgstr "შეზღუდვის შემმოწმებელი \"%s\" უკვე არსებობს" -#: catalog/heap.c:2565 catalog/index.c:913 catalog/pg_constraint.c:724 commands/tablecmds.c:9364 +#: catalog/heap.c:2616 catalog/heap.c:2936 +#, c-format +msgid "cannot add not-null constraint on system column \"%s\"" +msgstr "არანულოვანი შეზღუდვის დამატება შეუძლებელია სისტემურ სვეტზე \"%s\"" + +#: catalog/heap.c:2643 catalog/heap.c:2769 catalog/heap.c:3020 catalog/index.c:915 catalog/pg_constraint.c:1003 commands/tablecmds.c:9796 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "შეზღუდვა \"%s\" ურთიერთობისთვის \"%s\" უკვე არსებობს" -#: catalog/heap.c:2572 +#: catalog/heap.c:2776 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "შეზღუდვა \"%s\" კონფლიქტშია არა-მემკვიდრეობით მიღებულ შეზღუდვასთან ურთიერთობაზე \"%s\"" -#: catalog/heap.c:2583 +#: catalog/heap.c:2787 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "შეზღუდვა \"%s\" კონფლიქტშია მემკვიდრეობით მიღებულ შეზღუდვასთან ურთიერთობაზე \"%s\"" -#: catalog/heap.c:2593 +#: catalog/heap.c:2797 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "შეზღუდვა \"%s\" კონფლიქტშია შეზღუდვასთან NOT VALID ურთიერთობაზე \"%s\"" -#: catalog/heap.c:2598 +#: catalog/heap.c:2809 +#, c-format +msgid "constraint \"%s\" conflicts with NOT ENFORCED constraint on relation \"%s\"" +msgstr "შეზღუდვა \"%s\" კონფლიქტშია შეზღუდვასთან NOT ENFORCED ურთიერთობაზე \"%s\"" + +#: catalog/heap.c:2814 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "შეზღუდვის (\"%s\") შერწყმა მემკვიდრეობითი აღწერით" -#: catalog/heap.c:2624 catalog/pg_constraint.c:853 commands/tablecmds.c:3062 commands/tablecmds.c:3365 commands/tablecmds.c:7097 commands/tablecmds.c:15807 commands/tablecmds.c:15938 +#: catalog/heap.c:2838 catalog/pg_constraint.c:781 catalog/pg_constraint.c:1132 commands/tablecmds.c:3179 commands/tablecmds.c:3499 commands/tablecmds.c:7286 commands/tablecmds.c:7967 commands/tablecmds.c:17516 commands/tablecmds.c:17698 #, c-format msgid "too many inheritance parents" msgstr "მეტისმეტად ბევრი მემკვიდრეობის მშობლები" -#: catalog/heap.c:2708 +#: catalog/heap.c:2955 parser/parse_utilcmd.c:2634 +#, c-format +msgid "conflicting NO INHERIT declaration for not-null constraint on column \"%s\"" +msgstr "" + +#: catalog/heap.c:2969 +#, c-format +msgid "conflicting not-null constraint names \"%s\" and \"%s\"" +msgstr "ურთიერთგამომრიცხავი არანულოვანი შეზღუდვის სახელები \"%s\" და \"%s\"" + +#: catalog/heap.c:2999 +#, c-format +msgid "cannot define not-null constraint on column \"%s\" with NO INHERIT" +msgstr "არანულოვანი შეზღუდვების აღწერა სვეტზე \"%s\" შეუძლებელია NO INHERIT-თან ერთად" + +#: catalog/heap.c:3001 +#, c-format +msgid "The column has an inherited not-null constraint." +msgstr "სვეტს მემკვიდრეობით მიღებული არანულოვანი შეზღუდვა გააჩნია." + +#: catalog/heap.c:3191 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "სვეტის გენერაციის გამოსახულებაში გენერირებული სვეტის (%s) გამოყენება შეუძლებელია" -#: catalog/heap.c:2710 +#: catalog/heap.c:3193 #, c-format msgid "A generated column cannot reference another generated column." msgstr "გენერირებული სვეტი სხვა გენერირებული სვეტის მიმართვა ვერ იქნება." -#: catalog/heap.c:2716 +#: catalog/heap.c:3199 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "" -#: catalog/heap.c:2717 +#: catalog/heap.c:3200 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "ამან შეიძლება დაგენერირებული სვეტის თავის საკუთარ მნიშვნელობაზე დამოკიდებულება გამოიწვიოს." -#: catalog/heap.c:2772 +#: catalog/heap.c:3255 #, c-format msgid "generation expression is not immutable" msgstr "თაობის გამოსახულება უცვლელი არაა" -#: catalog/heap.c:2800 rewrite/rewriteHandler.c:1281 +#: catalog/heap.c:3283 rewrite/rewriteHandler.c:1285 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "სვეტის \"%s\" ტიპია %s, მაგრამ ნაგულისხმევი გამოსახულების ტიპია %s" -#: catalog/heap.c:2805 commands/prepare.c:331 parser/analyze.c:2758 parser/parse_target.c:592 parser/parse_target.c:882 parser/parse_target.c:892 rewrite/rewriteHandler.c:1286 +#: catalog/heap.c:3288 commands/prepare.c:335 parser/analyze.c:2991 parser/parse_target.c:595 parser/parse_target.c:885 parser/parse_target.c:895 rewrite/rewriteHandler.c:1290 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "საჭიროა გამოსახულების გარდაქმნა ან გადაყვანა." -#: catalog/heap.c:2852 +#: catalog/heap.c:3335 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "შემოწმების შეზღუდვაში მხოლოდ %s ცხრილზე მიმართვა შეიძლება" -#: catalog/heap.c:3158 +#: catalog/heap.c:3641 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "\"ON COMMIT\"-ისა და გარე გასაღების წყვილი მხარდაუჭერელია" -#: catalog/heap.c:3159 +#: catalog/heap.c:3642 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "ცხრილი \"%s\", მითითება \"%s\", მაგრამ მათ იგივე ON COMMIT პარამეტრი არ აქვთ." -#: catalog/heap.c:3164 +#: catalog/heap.c:3647 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "გარე გასაღების შეზღუდვაში მიმართული ცხრილის შემცველობის დაცარიელება შეუძლებელია" -#: catalog/heap.c:3165 +#: catalog/heap.c:3648 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "ცხრილი \"%s\" მიუთითებს \"%s\"." -#: catalog/heap.c:3167 +#: catalog/heap.c:3650 #, 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:2151 +#: catalog/index.c:220 parser/parse_utilcmd.c:2331 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "ცხრილისთვის \"%s\" ერთზე მეტი ძირითადი გასაღები დაუშვებელია" -#: catalog/index.c:233 +#: catalog/index.c:234 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "ძირითად გასაღებებს NULLS NOT DISTINCT ინდექსების გამოყენება არ შეუძლიათ" -#: catalog/index.c:250 +#: catalog/index.c:251 #, c-format msgid "primary keys cannot be expressions" msgstr "ძირითადი გასაღები გამოსახულება არ შეიძლება იყოს" -#: catalog/index.c:267 +#: catalog/index.c:268 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "ძირითადის გასაღების ტიპის სვეტი \"%s\" არაა აღწერილი, როგორც NOT NULL" -#: catalog/index.c:798 catalog/index.c:1914 +#: catalog/index.c:800 catalog/index.c:1921 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "სისტემური კატალოგების ცხრილებზე მომხმარებლის მიერ აღწერილი ინდექსების დადება შეუძლებელია" -#: catalog/index.c:838 +#: catalog/index.c:840 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "არადეტერმინისტული კოლაციები ოპერატორის კლასისთვის \"%s\" მხარდაჭერილი არაა" -#: catalog/index.c:853 +#: catalog/index.c:855 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "სისტემური კატალოგების ცხრილებზე ინდექსების პარალელური შექმნა მხარდაუჭერელია" -#: catalog/index.c:862 catalog/index.c:1330 +#: catalog/index.c:864 catalog/index.c:1333 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "პარალელური ინდექსის შექმნა გამორიცხვის შეზღუდვებისთვის მხარდაჭერილი არაა" -#: catalog/index.c:871 +#: catalog/index.c:873 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "გაზიარებული ინდექსების შექმნა შეუძლებელია initdb-ის შემდეგ" -#: catalog/index.c:891 commands/createas.c:418 commands/sequence.c:159 parser/parse_utilcmd.c:212 +#: catalog/index.c:893 commands/createas.c:424 commands/sequence.c:159 parser/parse_utilcmd.c:210 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "შეერთება \"%s\" უკვე არსებობს, გამოტოვება" -#: catalog/index.c:941 +#: catalog/index.c:943 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_class-ის ინდექსის OID-ის მნიშვნელობა დაყენებული არაა" -#: catalog/index.c:951 utils/cache/relcache.c:3787 +#: catalog/index.c:953 utils/cache/relcache.c:3795 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "index relfilenumber-ის მნიშვნელობა ბინარული განახლების დროს დაყენებული არაა" -#: catalog/index.c:2213 +#: catalog/index.c:2222 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY ტრანზაქციის პირველი ქმედება უნდა იყოს" -#: catalog/index.c:3669 +#: catalog/index.c:3729 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილების რეინდექსი შეუძლებელია" -#: catalog/index.c:3680 commands/indexcmds.c:3648 +#: catalog/index.c:3740 commands/indexcmds.c:3757 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "\"TOAST\" ცხრილზე არასწორი ინდექსის რეინდექსი შეუძლებელია" -#: catalog/index.c:3696 commands/indexcmds.c:3526 commands/indexcmds.c:3672 commands/tablecmds.c:3557 +#: catalog/index.c:3756 commands/indexcmds.c:3635 commands/indexcmds.c:3781 commands/tablecmds.c:3703 #, c-format msgid "cannot move system relation \"%s\"" msgstr "სისტემური ურთიერთობის გაადაადგილება არ შეიძლება: \"%s\"" -#: catalog/index.c:3833 +#: catalog/index.c:3893 #, c-format msgid "index \"%s\" was reindexed" msgstr "\"%s\"-ის რეინდექსი დასრულდა" -#: catalog/index.c:3999 +#: catalog/index.c:4059 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "'TOAST' ცხრილზე მდებარე არასწორი ინდექსის \"%s.%s\" რეინდექსი შეუძლებელია. გამოტოვება" -#: catalog/namespace.c:447 catalog/namespace.c:651 catalog/namespace.c:743 commands/trigger.c:5729 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 commands/trigger.c:5780 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "ბაზებს შორის ბმულები განხორციელებული არაა: \"%s.%s.%s\"" -#: catalog/namespace.c:504 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "დროებით ცხრილებს სქემის სახელი არ მიეთითებათ" -#: catalog/namespace.c:585 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "ბლოკის მიღების შეცდომა ურთიერთობაზე %s.%s\"" -#: catalog/namespace.c:590 commands/lockcmds.c:143 commands/lockcmds.c:223 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "ბლოკის მიღების შეცდომა ურთიერთობაზე %s\"" -#: catalog/namespace.c:618 parser/parse_relation.c:1430 +#: catalog/namespace.c:633 parser/parse_relation.c:1447 statistics/stat_utils.c:231 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "ურთიერთობა \"%s.%s\" არ არსებობს" -#: catalog/namespace.c:623 parser/parse_relation.c:1443 parser/parse_relation.c:1451 utils/adt/regproc.c:913 +#: catalog/namespace.c:638 parser/parse_relation.c:1460 parser/parse_relation.c:1468 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "ურთიერთობა \"%s\" არ არსებობს" -#: catalog/namespace.c:689 catalog/namespace.c:3507 commands/extension.c:1607 commands/extension.c:1613 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1804 commands/extension.c:1810 #, c-format msgid "no schema has been selected to create in" msgstr "შიგნით შესაქმნელი სქემა მონიშნული არაა" -#: catalog/namespace.c:841 catalog/namespace.c:854 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "სხვა სესიების დროებით სქემებთან ურთიერთობის შექმნა შეუძლებელია" -#: catalog/namespace.c:845 +#: catalog/namespace.c:860 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "დროებითი ურთიერთობების შექმნა არა-დროებით სქემაში შეუძლებელია" -#: catalog/namespace.c:860 +#: catalog/namespace.c:875 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "დროებით სქემებში მხოლოდ დროებითი ურთიერთობების შექმნა შეიძლება" -#: catalog/namespace.c:2604 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "სტატისტიკის ობიექტი \"%s\" არ არსებობს" -#: catalog/namespace.c:2746 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "ტექსტის ძებნის დამმუშავებელი \"%s\" არ არსებობს" -#: catalog/namespace.c:2891 utils/adt/regproc.c:1459 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "ტექსტის ძებნის ლექსიკონი \"%s\" არ არსებობს" -#: catalog/namespace.c:3037 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "ტექსტის ძებნის შაბლონი \"%s\" არ არსებობს" -#: catalog/namespace.c:3182 commands/tsearchcmds.c:1168 utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "ტექსტის ძებნის კონფიგურაცია \"%s\" არ არსებობს" -#: catalog/namespace.c:3314 parser/parse_expr.c:869 parser/parse_target.c:1259 +#: catalog/namespace.c:3329 parser/parse_expr.c:866 parser/parse_target.c:1262 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ბაზებს შორის ბმულები განხორციელებული არაა: %s" -#: catalog/namespace.c:3320 gram.y:19230 gram.y:19270 parser/parse_expr.c:876 parser/parse_target.c:1266 +#: catalog/namespace.c:3335 gram.y:19418 gram.y:19458 parser/parse_expr.c:873 parser/parse_target.c:1269 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "არასწორი სრული სახელი (ძალიან ბევრი წერტილიანი სახელი): %s" -#: catalog/namespace.c:3450 +#: catalog/namespace.c:3465 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "ობიექტის დროებითი სქემიდან გამოტანა ან სქემაში შეტანა შეუძლებელია" -#: catalog/namespace.c:3456 +#: catalog/namespace.c:3471 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "\"TOAST\" სქემიდან ობიექტს ვერც გამოიტანთ, ვერც შეიტანთ" -#: catalog/namespace.c:3529 commands/schemacmds.c:264 commands/schemacmds.c:344 commands/tablecmds.c:1392 utils/adt/regproc.c:1688 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 commands/tablecmds.c:1464 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "სქემა \"%s\" არ არსებობს" -#: catalog/namespace.c:3560 +#: catalog/namespace.c:3575 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ურთიერთობის არასწორი სახელი (ძალიან ბევრი წერტილიანი სახელი): %s" -#: catalog/namespace.c:4001 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "კოლაცია \"%s\" კოდირებისთვის \"%s\" არ არსებობს" -#: catalog/namespace.c:4056 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "გადაყვანა \"%s\" არ არსებობს" -#: catalog/namespace.c:4397 +#: catalog/namespace.c:4412 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "ბაზაში \"%s\" დროებითი ცხრილების შექმნის წვდომა აკრძალულია" -#: catalog/namespace.c:4413 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "აღდგენისას დროებითი ცხრილების შექმნა შეუძლებელია" -#: catalog/namespace.c:4419 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "პარალელური ოპერაციის მიმდინარეობისას დროებითი ცხრილების შექმნა შეუძლებელია" -#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2315 commands/tablecmds.c:12826 parser/parse_utilcmd.c:3249 +#: catalog/objectaddress.c:1376 commands/policy.c:93 commands/policy.c:373 commands/tablecmds.c:260 commands/tablecmds.c:302 commands/tablecmds.c:2387 commands/tablecmds.c:14491 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" ცხრილი არაა" -#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 commands/tablecmds.c:17744 commands/view.c:114 +#: catalog/objectaddress.c:1383 commands/tablecmds.c:272 commands/tablecmds.c:19577 commands/view.c:113 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" ხედი არაა" -#: catalog/objectaddress.c:1385 commands/matview.c:183 commands/tablecmds.c:275 commands/tablecmds.c:17749 +#: catalog/objectaddress.c:1390 commands/matview.c:201 commands/tablecmds.c:278 commands/tablecmds.c:19582 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" არ არის მატერიალიზებული ხედი" -#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 commands/tablecmds.c:17754 +#: catalog/objectaddress.c:1397 commands/tablecmds.c:296 commands/tablecmds.c:19587 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" გარე ცხრილი არაა" -#: catalog/objectaddress.c:1433 +#: catalog/objectaddress.c:1438 #, c-format msgid "must specify relation and object name" msgstr "ურთიერთობის და ობიექტის სახელის მითითება აუცილებელია" -#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 +#: catalog/objectaddress.c:1514 catalog/objectaddress.c:1567 #, c-format msgid "column name must be qualified" msgstr "სვეტს სახელი სრულად უნდა მიუთითოთ" -#: catalog/objectaddress.c:1581 +#: catalog/objectaddress.c:1586 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "ურთიერთობის (%2$s) სვეტის (%1$s) ნაგულისხმევი მნიშვნელობა არ არსებობს" -#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 utils/adt/acl.c:4554 +#: catalog/objectaddress.c:1623 commands/functioncmds.c:132 commands/tablecmds.c:288 commands/typecmds.c:278 commands/typecmds.c:3834 parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 utils/adt/acl.c:4558 #, c-format msgid "type \"%s\" does not exist" msgstr "ტიპი \"%s\" არ არსებობს" -#: catalog/objectaddress.c:1737 +#: catalog/objectaddress.c:1634 +#, c-format +msgid "\"%s\" is not a domain" +msgstr "\"%s\" დომენი არაა" + +#: catalog/objectaddress.c:1742 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "ოპერატორი %d (%s, %s) %s-დან არ არსებობს" -#: catalog/objectaddress.c:1768 +#: catalog/objectaddress.c:1773 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "ფუნქცია %d (%s, %s) %s-დან არ არსებობს" -#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 +#: catalog/objectaddress.c:1824 catalog/objectaddress.c:1850 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "სერვერზე (%2$s) მომხმარებლის ბმა %1$s-სთვის არ არსებობს" -#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:703 +#: catalog/objectaddress.c:1839 commands/foreigncmds.c:430 commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "სერვერი \"%s\" არ არსებობს" -#: catalog/objectaddress.c:1901 +#: catalog/objectaddress.c:1906 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "პუბლიკაციის ურთიერთობა %s პუბლიკაციაში %s არ არსებობ" -#: catalog/objectaddress.c:1948 +#: catalog/objectaddress.c:1953 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "პუბლიკაციის სქემა %s პუბლიკაციაში %s არ არსებობს" -#: catalog/objectaddress.c:2006 +#: catalog/objectaddress.c:2014 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "ნაგულისხმევი ACL ობიექტის უცნობი ტიპი \"%c\"" -#: catalog/objectaddress.c:2007 +#: catalog/objectaddress.c:2015 #, c-format -msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -msgstr "ობიექტის სწორი ტიპებია \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." +msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." +msgstr "ობიექტის სწორი ტიპებია \"%c\", \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2058 +#: catalog/objectaddress.c:2067 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "ნაგულისხმევი ACL მომხმარებლისთვის %s სქემაში %s %s-ზე არ არსებობს" -#: catalog/objectaddress.c:2063 +#: catalog/objectaddress.c:2072 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "ნაგულისხმევი ACL მომხმარებლისთვის \"%s\" \"%s\"-ზე არ არსებობს" -#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2098 catalog/objectaddress.c:2155 catalog/objectaddress.c:2210 #, c-format msgid "name or argument lists may not contain nulls" msgstr "სახელი ან არგუმენტი არ შეიძლება ნულოვან სიმბოლოს შეიცავდეს" -#: catalog/objectaddress.c:2123 +#: catalog/objectaddress.c:2132 #, c-format msgid "unsupported object type \"%s\"" msgstr "ობიექტის მხარდაუჭერელი ტიპი: \"%s\"" -#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 +#: catalog/objectaddress.c:2151 catalog/objectaddress.c:2168 catalog/objectaddress.c:2233 catalog/objectaddress.c:2317 #, c-format msgid "name list length must be exactly %d" msgstr "სახელების სიის სიგრძე ზუსტად %d უნდა იყოს" -#: catalog/objectaddress.c:2163 +#: catalog/objectaddress.c:2172 #, c-format msgid "large object OID may not be null" msgstr "დიდი ობიექტის OID ნულის ტოლი არ შეიძლება იყოს" -#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 catalog/objectaddress.c:2249 +#: catalog/objectaddress.c:2181 catalog/objectaddress.c:2251 catalog/objectaddress.c:2258 #, c-format msgid "name list length must be at least %d" msgstr "სახელების სიის სიგრძე ყველაზე ცოტა %d უნდა იყოს" -#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 +#: catalog/objectaddress.c:2244 catalog/objectaddress.c:2265 #, c-format msgid "argument list length must be exactly %d" msgstr "არგუმენტების სიის სიგრძე ზუსტად %d უნდა იყოს" -#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2479 libpq/be-fsstubs.c:334 #, c-format msgid "must be owner of large object %u" msgstr "უნდა ბრძანდებოდეთ დიდი ობიექტის მფლობელი: %u" -#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 +#: catalog/objectaddress.c:2494 commands/functioncmds.c:1578 #, c-format msgid "must be owner of type %s or type %s" msgstr "უნდა ბრძანდებოდეთ მფლობელი ტიპისა %s ან %s" -#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 catalog/objectaddress.c:2527 +#: catalog/objectaddress.c:2521 catalog/objectaddress.c:2530 catalog/objectaddress.c:2536 #, c-format msgid "permission denied" msgstr "წვდომა აკრძალულია" -#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 +#: catalog/objectaddress.c:2522 catalog/objectaddress.c:2531 #, c-format msgid "The current user must have the %s attribute." msgstr "მიმდინარე მომხმარებელს %s ატრიბუტი აუცილებლად უნდა ჰქონდეს." -#: catalog/objectaddress.c:2528 +#: catalog/objectaddress.c:2537 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "მიმდინარე მომხმარებელს უნდა ჰქონდეს %s პარამეტრი როლზე \"%s\"." -#: catalog/objectaddress.c:2542 +#: catalog/objectaddress.c:2551 #, c-format msgid "must be superuser" msgstr "უნდა იყოს ზემომხმარებელი" -#: catalog/objectaddress.c:2611 +#: catalog/objectaddress.c:2620 #, c-format msgid "unrecognized object type \"%s\"" msgstr "ობიექტის უცნობი ტიპი: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2903 +#: catalog/objectaddress.c:2937 #, c-format msgid "column %s of %s" msgstr "სვეტი %s %s-ზე" -#: catalog/objectaddress.c:2918 +#: catalog/objectaddress.c:2952 #, c-format msgid "function %s" msgstr "ფუნქცია %s" -#: catalog/objectaddress.c:2931 +#: catalog/objectaddress.c:2965 #, c-format msgid "type %s" msgstr "ტიპი %s" -#: catalog/objectaddress.c:2968 +#: catalog/objectaddress.c:3002 #, c-format msgid "cast from %s to %s" msgstr "%s-დან %s" -#: catalog/objectaddress.c:3001 +#: catalog/objectaddress.c:3035 #, c-format msgid "collation %s" msgstr "კოლაცია %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3032 +#: catalog/objectaddress.c:3066 #, c-format msgid "constraint %s on %s" msgstr "%s-ის შეზღუდვა %s-ზე" -#: catalog/objectaddress.c:3038 +#: catalog/objectaddress.c:3072 #, c-format msgid "constraint %s" msgstr "შეზღუდვა %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3104 #, c-format msgid "conversion %s" msgstr "გარდაქმნა: %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3092 +#: catalog/objectaddress.c:3126 #, c-format msgid "default value for %s" msgstr "%s-ის ნაგულისხმევი მნიშვნელობა" -#: catalog/objectaddress.c:3103 +#: catalog/objectaddress.c:3137 #, c-format msgid "language %s" msgstr "ენა %s" -#: catalog/objectaddress.c:3111 +#: catalog/objectaddress.c:3145 #, c-format msgid "large object %u" msgstr "დიდი ობიექტი %u" -#: catalog/objectaddress.c:3124 +#: catalog/objectaddress.c:3158 #, c-format msgid "operator %s" msgstr "ოპერატორი %s" -#: catalog/objectaddress.c:3161 +#: catalog/objectaddress.c:3195 #, c-format msgid "operator class %s for access method %s" msgstr "ოპერატორის კლასის %s წვდომის მეთოდისთვის %s" -#: catalog/objectaddress.c:3189 +#: catalog/objectaddress.c:3223 #, c-format msgid "access method %s" msgstr "წვდომის მეთოდი: %s" @@ -5148,7 +5153,7 @@ msgstr "წვდომის მეთოდი: %s" #. 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:3238 +#: catalog/objectaddress.c:3278 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "ოპერატორი %d (%s, %s) of %s: %s" @@ -5157,236 +5162,241 @@ msgstr "ოპერატორი %d (%s, %s) of %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 #. function with arguments. -#: catalog/objectaddress.c:3295 +#: catalog/objectaddress.c:3343 #, c-format msgid "function %d (%s, %s) of %s: %s" msgstr "ფუნქცია %d (%s, %s) of %s: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3347 +#: catalog/objectaddress.c:3397 #, c-format msgid "rule %s on %s" msgstr "წესი %s %s-ზე" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3393 +#: catalog/objectaddress.c:3443 #, c-format msgid "trigger %s on %s" msgstr "ტრიგერი %s %s-ზე" -#: catalog/objectaddress.c:3413 +#: catalog/objectaddress.c:3463 #, c-format msgid "schema %s" msgstr "სქემა %s" -#: catalog/objectaddress.c:3441 +#: catalog/objectaddress.c:3491 #, c-format msgid "statistics object %s" msgstr "სტატისტიკის ობიექტი %s" -#: catalog/objectaddress.c:3472 +#: catalog/objectaddress.c:3522 #, c-format msgid "text search parser %s" msgstr "ტექსტის ძებნის დამმუშავებელი \"%s\"" -#: catalog/objectaddress.c:3503 +#: catalog/objectaddress.c:3553 #, c-format msgid "text search dictionary %s" msgstr "ტექსტის ძებნის ლექსიკონი %s" -#: catalog/objectaddress.c:3534 +#: catalog/objectaddress.c:3584 #, c-format msgid "text search template %s" msgstr "ტექსტის ძებნის შაბლონი %s" -#: catalog/objectaddress.c:3565 +#: catalog/objectaddress.c:3615 #, c-format msgid "text search configuration %s" msgstr "ტექსტის ძებნის კონფიგურაცია \"%s\"" -#: catalog/objectaddress.c:3578 +#: catalog/objectaddress.c:3628 #, c-format msgid "role %s" msgstr "როლი %s" -#: catalog/objectaddress.c:3615 catalog/objectaddress.c:5464 +#: catalog/objectaddress.c:3665 catalog/objectaddress.c:5589 #, c-format msgid "membership of role %s in role %s" msgstr "როლის (%s) წევრობა როლში %s" -#: catalog/objectaddress.c:3636 +#: catalog/objectaddress.c:3686 #, c-format msgid "database %s" msgstr "ბაზა: %s" -#: catalog/objectaddress.c:3652 +#: catalog/objectaddress.c:3702 #, c-format msgid "tablespace %s" msgstr "ცხრილების სივრცე %s" -#: catalog/objectaddress.c:3663 +#: catalog/objectaddress.c:3713 #, c-format msgid "foreign-data wrapper %s" msgstr "გარე-მონაცემების გადამტანი %s" -#: catalog/objectaddress.c:3673 +#: catalog/objectaddress.c:3723 #, c-format msgid "server %s" msgstr "სერვერი %s" -#: catalog/objectaddress.c:3706 +#: catalog/objectaddress.c:3756 #, c-format msgid "user mapping for %s on server %s" msgstr "მომხმარებლის ბმა %s-სთვის სერვერზე %s" -#: catalog/objectaddress.c:3758 +#: catalog/objectaddress.c:3808 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ ურთიერთობებზე, რომელიც ეკუთვნის როლს %s, სქემაში %s" -#: catalog/objectaddress.c:3762 +#: catalog/objectaddress.c:3812 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ ურთიერთობებზე, რომელიც ეკუთვნის როლს %s" -#: catalog/objectaddress.c:3768 +#: catalog/objectaddress.c:3818 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ მიმდევრობებზე, რომელიც ეკუთვნის როლს %s სქემაში %s" -#: catalog/objectaddress.c:3772 +#: catalog/objectaddress.c:3822 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ მიმდევრობებზე, რომელიც ეკუთვნის როლს %s" -#: catalog/objectaddress.c:3778 +#: catalog/objectaddress.c:3828 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ ფუნქციებზე, რომელიც ეკუთვნის როლს %s სქემაში %s" -#: catalog/objectaddress.c:3782 +#: catalog/objectaddress.c:3832 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ ფუნქციებზე, რომელიც ეკუთვნის როლს %s" -#: catalog/objectaddress.c:3788 +#: catalog/objectaddress.c:3838 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ სქემაზე, რომელიც ეკუთვნის როლს %s სქემაში %s" -#: catalog/objectaddress.c:3792 +#: catalog/objectaddress.c:3842 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ ტიპებზე, რომელიც ეკუთვნის როლს %s" -#: catalog/objectaddress.c:3798 +#: catalog/objectaddress.c:3848 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "ნაგულისხმევი პრივილეგიები ახალ სქემაზე, რომელიც ეკუთვნის როლს %s" -#: catalog/objectaddress.c:3805 +#: catalog/objectaddress.c:3854 +#, c-format +msgid "default privileges on new large objects belonging to role %s" +msgstr "ნაგულისხმევი პრივილეგიები ახალ დიდ ურთიერთობებზე, რომელიც ეკუთვნის როლს %s" + +#: catalog/objectaddress.c:3861 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "სქემაში (%s) როლის (%s) ნაგულისხმევი პრივილეგიები" -#: catalog/objectaddress.c:3809 +#: catalog/objectaddress.c:3865 #, c-format msgid "default privileges belonging to role %s" msgstr "როლის (%s) ნაგულისხმევი პრივილეგიები" -#: catalog/objectaddress.c:3831 +#: catalog/objectaddress.c:3887 #, c-format msgid "extension %s" msgstr "გაფართოებa %s" -#: catalog/objectaddress.c:3848 +#: catalog/objectaddress.c:3904 #, c-format msgid "event trigger %s" msgstr "მოვლენის ტრიგერი %s" -#: catalog/objectaddress.c:3872 +#: catalog/objectaddress.c:3928 #, c-format msgid "parameter %s" msgstr "პარამეტრი %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3915 +#: catalog/objectaddress.c:3971 #, c-format msgid "policy %s on %s" msgstr "წესი %s %s-ზე" -#: catalog/objectaddress.c:3929 +#: catalog/objectaddress.c:3985 #, c-format msgid "publication %s" msgstr "პუბლიკაცია %s" -#: catalog/objectaddress.c:3942 +#: catalog/objectaddress.c:3998 #, c-format msgid "publication of schema %s in publication %s" msgstr "სქემის (%s) პუბლიკაცია პუბლიკაციაში %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:3973 +#: catalog/objectaddress.c:4029 #, c-format msgid "publication of %s in publication %s" msgstr "%s-ის პუბლიკაცია პუბლიკაციაში %s" -#: catalog/objectaddress.c:3986 +#: catalog/objectaddress.c:4042 #, c-format msgid "subscription %s" msgstr "გამოწერა %s" -#: catalog/objectaddress.c:4007 +#: catalog/objectaddress.c:4063 #, c-format msgid "transform for %s language %s" msgstr "გარდაქმნა %s-სთვის, ენისთვის %s" -#: catalog/objectaddress.c:4076 +#: catalog/objectaddress.c:4132 #, c-format msgid "table %s" msgstr "ცხრილი %s" -#: catalog/objectaddress.c:4081 +#: catalog/objectaddress.c:4137 #, c-format msgid "index %s" msgstr "ინდექსი %s" -#: catalog/objectaddress.c:4085 +#: catalog/objectaddress.c:4141 #, c-format msgid "sequence %s" msgstr "თანმიმდევრობა %s" -#: catalog/objectaddress.c:4089 +#: catalog/objectaddress.c:4145 #, c-format msgid "toast table %s" msgstr "toast ცხრილი \"%s\"" -#: catalog/objectaddress.c:4093 +#: catalog/objectaddress.c:4149 #, c-format msgid "view %s" msgstr "%s-ის ხედი" -#: catalog/objectaddress.c:4097 +#: catalog/objectaddress.c:4153 #, c-format msgid "materialized view %s" msgstr "მატერიალიზებული ხედი %s" -#: catalog/objectaddress.c:4101 +#: catalog/objectaddress.c:4157 #, c-format msgid "composite type %s" msgstr "კომპოზიტის ტიპი \"%s\"" -#: catalog/objectaddress.c:4105 +#: catalog/objectaddress.c:4161 #, c-format msgid "foreign table %s" msgstr "გარე ცხრილი \"%s\"" -#: catalog/objectaddress.c:4110 +#: catalog/objectaddress.c:4166 #, c-format msgid "relation %s" msgstr "ურთიერთობა %s" -#: catalog/objectaddress.c:4151 +#: catalog/objectaddress.c:4207 #, c-format msgid "operator family %s for access method %s" msgstr "ოპერატორის ოჯახი %s წვდომის მეთოდისთვის %s" @@ -5428,7 +5438,7 @@ msgstr "" msgid "return type of inverse transition function %s is not %s" msgstr "ინვერსიული გარდამავალი ფუნქციის (\"%s\") დაბრუნების ტიპი %s არაა" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2992 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3057 #, c-format msgid "strictness of aggregate's forward and inverse transition functions must match" msgstr "" @@ -5443,7 +5453,7 @@ msgstr "დამატებითი არგუმენტებს მქ msgid "return type of combine function %s is not %s" msgstr "ტიპი, რომელსაც კომბინირებული ფუნქცია %s-ი აბრუნებს, %s არაა" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:4005 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "კომბინირებული ფუნქცია გარდასვლის ტიპით %s არ შეიძლება აღწერილი იყოს, როგორც STRICT" @@ -5458,12 +5468,12 @@ msgstr "სერიალიზაციის ფუნქციის (%s) msgid "return type of deserialization function %s is not %s" msgstr "დესერიალიზაციის ფუნქციის (%s) დაბრუნების ტიპი %s არაა" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:217 catalog/pg_proc.c:251 #, c-format msgid "cannot determine result data type" msgstr "შედეგის მონაცემების ტიპის დადგენა შეუძლებელია" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:230 catalog/pg_proc.c:259 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "ფსევდო-ტიპი \"internal\" არაუსაფრთხოდ გამოიყენება" @@ -5478,48 +5488,48 @@ msgstr "" msgid "sort operator can only be specified for single-argument aggregates" msgstr "" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 +#: catalog/pg_aggregate.c:707 catalog/pg_proc.c:412 #, c-format msgid "cannot change routine kind" msgstr "ქვეპროგრამის ტიპის შეცვლა შეუძლებელია" -#: catalog/pg_aggregate.c:708 +#: catalog/pg_aggregate.c:709 #, c-format msgid "\"%s\" is an ordinary aggregate function." msgstr "\"%s\" ჩვეულებრივი აგრეგატული ფუნქციაა." -#: catalog/pg_aggregate.c:710 +#: catalog/pg_aggregate.c:711 #, c-format msgid "\"%s\" is an ordered-set aggregate." msgstr "\"%s\" დალაგებული-სეტის აგრეგატია." -#: catalog/pg_aggregate.c:712 +#: catalog/pg_aggregate.c:713 #, c-format msgid "\"%s\" is a hypothetical-set aggregate." msgstr "\"%s\" ჰიპოთეტიკური-სეტის აგრეგატია." -#: catalog/pg_aggregate.c:717 +#: catalog/pg_aggregate.c:718 #, c-format msgid "cannot change number of direct arguments of an aggregate function" msgstr "" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 parser/parse_func.c:631 +#: catalog/pg_aggregate.c:859 commands/functioncmds.c:701 commands/typecmds.c:2015 commands/typecmds.c:2061 commands/typecmds.c:2113 commands/typecmds.c:2150 commands/typecmds.c:2184 commands/typecmds.c:2218 commands/typecmds.c:2252 commands/typecmds.c:2281 commands/typecmds.c:2368 commands/typecmds.c:2410 parser/parse_func.c:417 parser/parse_func.c:448 parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 parser/parse_func.c:631 #: parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "ფუნქცია %s არ არსებობს" -#: catalog/pg_aggregate.c:864 +#: catalog/pg_aggregate.c:865 #, c-format msgid "function %s returns a set" msgstr "ფუნქცია %s სეტს აბრუნებს" -#: catalog/pg_aggregate.c:879 +#: catalog/pg_aggregate.c:880 #, c-format msgid "function %s must accept VARIADIC ANY to be used in this aggregate" msgstr "ამ აგრეგატში გამოსაყენებლად ფუნქცია (%s) VARIADIC ANY-ს უნდა იღებდეს" -#: catalog/pg_aggregate.c:903 +#: catalog/pg_aggregate.c:904 #, c-format msgid "function %s requires run-time type coercion" msgstr "" @@ -5599,21 +5609,51 @@ msgstr "კოლაცია \"%s\" უკვე არსებობს" msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "კოლაცია \"%s\" კოდირებისთვის \"%s\" უკვე არსებობს" -#: catalog/pg_constraint.c:732 +#: catalog/pg_constraint.c:758 commands/tablecmds.c:7952 +#, c-format +msgid "cannot change NO INHERIT status of NOT NULL constraint \"%s\" on relation \"%s\"" +msgstr "ურთიერთობაზე \"%2$s\" NOT NULL შეზღუდვის \"%1$s\" NO INHERIT სტატუსს ვერ შეცვლით" + +#: catalog/pg_constraint.c:760 commands/tablecmds.c:9559 +#, c-format +msgid "You might need to make the existing constraint inheritable using %s." +msgstr "" + +#: catalog/pg_constraint.c:770 +#, c-format +msgid "incompatible NOT VALID constraint \"%s\" on relation \"%s\"" +msgstr "შეუთავსებელი NOT VALID შეზღუდვა \"%s\" ურთიერთობაზე \"%s\"" + +#: catalog/pg_constraint.c:772 commands/tablecmds.c:9571 +#, c-format +msgid "You might need to validate it using %s." +msgstr "როგორც ჩანს, საჭიროა მისი სისწორე %s-ით დაამოწმოთ." + +#: catalog/pg_constraint.c:1011 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "შეზღუდვა \"%s\" დომენისთვის %s უკვე არსებობს" -#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 +#: catalog/pg_constraint.c:1212 catalog/pg_constraint.c:1305 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "ცხრილის (%2$s) შეზღუდვა (%1$s) არ არსებობს" -#: catalog/pg_constraint.c:1125 +#: catalog/pg_constraint.c:1405 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "დომენის (%2$s) შეზღუდვა (%1$s) არ არსებობს" +#: catalog/pg_constraint.c:1659 +#, c-format +msgid "invalid type for PERIOD part of foreign key" +msgstr "გარე გასაღების PRIOD ნაწილის ტიპი არასწორია" + +#: catalog/pg_constraint.c:1660 +#, c-format +msgid "Only range and multirange are supported." +msgstr "მხარდაჭერილია, მხოლოდ, შუალედი და მრავალი შუალედი." + #: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" @@ -5624,27 +5664,27 @@ msgstr "გადაყვანა უკვე არსებობს: \"%s\ msgid "default conversion for %s to %s already exists" msgstr "%s-დან %s-ზე ნაგულისხმევი გადაყვანა უკვე არსებობს" -#: catalog/pg_depend.c:224 commands/extension.c:3397 +#: catalog/pg_depend.c:223 commands/extension.c:3665 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s გაფართოების (\"%s\") წევრს უკვე წარმოადგენს" -#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 +#: catalog/pg_depend.c:230 catalog/pg_depend.c:281 commands/extension.c:3705 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s გაფართოების \"%s\"წევრი არაა" -#: catalog/pg_depend.c:234 +#: catalog/pg_depend.c:233 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "გაფართოებას უფლება, ჩაანაცვლოს ობიექტი, რომელიც მას არ ეკუთვნის, არ გააჩნია." -#: catalog/pg_depend.c:285 +#: catalog/pg_depend.c:284 #, c-format msgid "An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns." msgstr "გაფართოებას CREATE … IF NOT EXISTS-ის გამოყენება მხოლოდ იმისთვის შეუძლიათ, რომ გამოტოვონ ობიექტის შექმნა, თუ კონფლიქტური ობიექტი მას უკვე ეკუთვნის." -#: catalog/pg_depend.c:648 +#: catalog/pg_depend.c:647 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "%s-ზე დამოკიდებულებას ვერ მოაცილებთ. ის სისტემური ობიექტია" @@ -5694,7 +5734,7 @@ msgstr "დანაყოფის \"%s\" მოხსნის შეცდო msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "ხდება დანაყოფის პარალელური მოხსნა ან მოხსნა დაუმთავრებელია." -#: catalog/pg_inherits.c:595 commands/tablecmds.c:4778 commands/tablecmds.c:16053 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4916 commands/tablecmds.c:17824 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "მოხსნის ოპერაციის დასასრულებლად გამოიყენეთ ALTER TABLE ... DETACH PARTITION ... FINALIZE ." @@ -5799,44 +5839,44 @@ msgstr "" msgid "parameter ACL \"%s\" does not exist" msgstr "პარამეტრი ACL \"%s\" არ არსებობს" -#: catalog/pg_proc.c:130 parser/parse_func.c:2234 +#: catalog/pg_proc.c:158 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" msgstr[0] "ფუნქციებს %d-ზე მეტი არგუმენტი არ შეიძლება ჰქონდეთ" msgstr[1] "ფუნქციებს %d-ზე მეტი არგუმენტი არ შეიძლება ჰქონდეთ" -#: catalog/pg_proc.c:374 +#: catalog/pg_proc.c:402 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "ფუნქცია \"%s\" უკვე არსებობს იგივე არგუმენტის ტიპებით" -#: catalog/pg_proc.c:386 +#: catalog/pg_proc.c:414 #, c-format msgid "\"%s\" is an aggregate function." msgstr "\"%s\" აგრეგატული ფუნქციაა." -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:416 #, c-format msgid "\"%s\" is a function." msgstr "\"%s\" ფუნქციაა." -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:418 #, c-format msgid "\"%s\" is a procedure." msgstr "\"%s\" პროცედურაა." -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:420 #, c-format msgid "\"%s\" is a window function." msgstr "\"%s\" ფანჯრის ფუნქციაა." -#: catalog/pg_proc.c:412 +#: catalog/pg_proc.c:440 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "ფაქტს, აქვს თუ არა პროცედურას გამოტანის პარამეტრები, ვერ შეცვლით" -#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 +#: catalog/pg_proc.c:441 catalog/pg_proc.c:471 #, c-format msgid "cannot change return type of existing function" msgstr "არსებული ფუნქციის მნიშვნელობის დაბრუნების ტიპს ვერ შეცვლით" @@ -5845,112 +5885,112 @@ msgstr "არსებული ფუნქციის მნიშვნე #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 catalog/pg_proc.c:517 catalog/pg_proc.c:541 +#: catalog/pg_proc.c:447 catalog/pg_proc.c:474 catalog/pg_proc.c:519 catalog/pg_proc.c:545 catalog/pg_proc.c:569 #, c-format msgid "Use %s %s first." msgstr "ჯერ შეასრულეთ %s %s." -#: catalog/pg_proc.c:444 +#: catalog/pg_proc.c:472 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "OUT პარამეტრების მიერ აღწერილი მწკრივის ტიპი განსხვავებულია." -#: catalog/pg_proc.c:488 +#: catalog/pg_proc.c:516 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "შეყვანის პარამეტრის სახელის შეცვლა შეუძლებელია: \"%s\"" -#: catalog/pg_proc.c:515 +#: catalog/pg_proc.c:543 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "არსებული ფუნქციიდან პარამეტრის ნაგულისხმევი მნიშვნელობების წაშლა შეუძლებელია" -#: catalog/pg_proc.c:539 +#: catalog/pg_proc.c:567 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "არსებული პარამეტრის ნაგულისხმევი მნიშვნელობის მონაცემის ტიპს ვერ შეცვლით" -#: catalog/pg_proc.c:750 +#: catalog/pg_proc.c:771 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "ჩაშენებული ფუნქცია სახელით \"%s\" არ არსებობს" -#: catalog/pg_proc.c:843 +#: catalog/pg_proc.c:864 #, c-format msgid "SQL functions cannot return type %s" msgstr "SQL ფუნქციებს %s ტიპის დაბრუნება არ შეუძლიათ" -#: catalog/pg_proc.c:858 +#: catalog/pg_proc.c:879 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "SQL ფუნქციებს \"%s\" ტიპის არგუმენტები ვერ იქნება" -#: catalog/pg_proc.c:986 executor/functions.c:1467 +#: catalog/pg_proc.c:1007 #, c-format msgid "SQL function \"%s\"" msgstr "SQL ფუნქცია \"%s\"" -#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 catalog/pg_publication.c:82 catalog/pg_publication.c:88 +#: catalog/pg_publication.c:63 catalog/pg_publication.c:71 catalog/pg_publication.c:79 catalog/pg_publication.c:85 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "პუბლიკაციისთვის ურთიერთობის დამატება შეუძლებელია: %s" -#: catalog/pg_publication.c:76 +#: catalog/pg_publication.c:73 #, c-format msgid "This operation is not supported for system tables." msgstr "ეს ოპერაცია სისტემური ცხრილებისთვის მხარდაჭერილი არაა." -#: catalog/pg_publication.c:84 +#: catalog/pg_publication.c:81 #, c-format msgid "This operation is not supported for temporary tables." msgstr "ეს ოპერაცია დროებითი ცხრილებისთვის მხარდაჭერილი არაა." -#: catalog/pg_publication.c:90 +#: catalog/pg_publication.c:87 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "ეს ოპერაცია არაჟურნალირებადი ცხრილებისთვის მხარდაჭერილი არაა." -#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 +#: catalog/pg_publication.c:101 catalog/pg_publication.c:109 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "პუბლიკაციისთვის სქემის დამატება შეუძლებელია: %s" -#: catalog/pg_publication.c:106 +#: catalog/pg_publication.c:103 #, c-format msgid "This operation is not supported for system schemas." msgstr "ეს ოპერაცია სისტემური სქემებისთვის მხარდაჭერილი არაა." -#: catalog/pg_publication.c:114 +#: catalog/pg_publication.c:111 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "დროებითი სქემების რეპლიკაცია შეუძლებელია." -#: catalog/pg_publication.c:392 +#: catalog/pg_publication.c:462 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "სქემა %s პუბლიკაციის (%s) ნაწილს უკვე წარმოადგენს" -#: catalog/pg_publication.c:534 +#: catalog/pg_publication.c:576 #, c-format msgid "cannot use system column \"%s\" in publication column list" msgstr "პუბლიკაციის სვეტების სიაში სისტემური სვეტის (\"%s\") გამოყენება შეუძლებელია" -#: catalog/pg_publication.c:540 +#: catalog/pg_publication.c:582 #, c-format -msgid "cannot use generated column \"%s\" in publication column list" -msgstr "პუბლიკაციის სვეტების სიაში გენერირებული სვეტის (\"%s\") გამოყენება შეუძლებელია" +msgid "cannot use virtual generated column \"%s\" in publication column list" +msgstr "ვირტუალურ გენერირებულ სვეტს \"%s\" გამოცემის სვეტების სიაში ვერ გამოიყენებთ" -#: catalog/pg_publication.c:546 +#: catalog/pg_publication.c:588 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "პუბლიკაციის სვეტების სიაში დუბლიკატია: %s" -#: catalog/pg_publication.c:636 +#: catalog/pg_publication.c:700 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "სქემა %s პუბლიკაციის (%s) ნაწილს უკვე წარმოადგენს" -#: catalog/pg_shdepend.c:867 +#: catalog/pg_shdepend.c:875 #, c-format msgid "" "\n" @@ -5965,70 +6005,70 @@ msgstr[1] "" "\n" "და ობიექტები %d სხვა ბაზაში (სიისთვის იხილეთ სერვერის ჟურნალი)" -#: catalog/pg_shdepend.c:1214 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "როლი %u სხვა პროცესის მიერ წაიშალა" -#: catalog/pg_shdepend.c:1226 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "ცხრილების სივრცე %u სხვა პროცესის მიერ წაიშალა" -#: catalog/pg_shdepend.c:1240 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "ბაზა %u სხვა პროცესის მიერ წაიშალა" -#: catalog/pg_shdepend.c:1291 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "%s -ის მფლობელი" -#: catalog/pg_shdepend.c:1293 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" msgstr "პრივილეგიები %s-სთვის" -#: catalog/pg_shdepend.c:1295 +#: catalog/pg_shdepend.c:1303 #, c-format msgid "initial privileges for %s" msgstr "საწყისი პრივილეგიები %s-სთვის" -#: catalog/pg_shdepend.c:1297 +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "%s-ის სამიზნე" -#: catalog/pg_shdepend.c:1299 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "ცხრილების სივრცე %s-სთვის" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1307 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%d ობიექტი %s-ში" msgstr[1] "%d ობიექტი %s-ში" -#: catalog/pg_shdepend.c:1371 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "%s-ის წაშლა შეუძლებელია. საჭიროა ბაზის სისტემისთვის" -#: catalog/pg_shdepend.c:1545 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "%s-ის მფლობელობაში მყოფი ობიექტების წვდომების თავიდან მინიჭება შეუძლებელია, რადგან ისინი ბაზის სისტემისთვისაა საჭირო" -#: catalog/pg_subscription.c:438 +#: catalog/pg_subscription.c:469 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "გამოწერისთვის \"%s\" ურთიერთობის მიბმის წაშლა შეუძლებელია" -#: catalog/pg_subscription.c:440 +#: catalog/pg_subscription.c:471 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "მიმდინარეობს ცხრილის სინქრონიზაცია ურთიერთობისთვის \"%s\" და მისი მდგომარეობაა \"%c\"." @@ -6036,7 +6076,7 @@ msgstr "მიმდინარეობს ცხრილის სინქ #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:447 +#: catalog/pg_subscription.c:478 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "გამოწერის ჩასართავად, თუ ის უკვე ჩართული არაა, %s გამოიყენეთ, ან, %s, გამოწერის წასაშლელად." @@ -6066,7 +6106,7 @@ msgstr "შიდა ზომა %d მნიშვნელობით-გა msgid "alignment \"%c\" is invalid for variable-length type" msgstr "სწორება \"%c\" არასწორია ცვლადი-სიგრძის ტიპისთვის" -#: catalog/pg_type.c:325 commands/typecmds.c:4363 +#: catalog/pg_type.c:325 commands/typecmds.c:4354 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "ფიქსირებული ზომის ტიპებს უნდა PLAIN ტიპის საცავი უნდა ჰქონდეთ" @@ -6081,7 +6121,7 @@ msgstr "შეცდომა მრავალდიაპაზონია msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "მრავალდიაპაზონიანი ტიპის სახელი ხელით, \"multirange_type_name\" ატრიბუტით უნდა მიუთითოთ." -#: catalog/storage.c:508 storage/buffer/bufmgr.c:1540 +#: catalog/storage.c:549 storage/buffer/bufmgr.c:7339 #, c-format msgid "invalid page in block %u of relation %s" msgstr "ურთიერთობის (%2$s) ბლოკის (%1$u) არასწორ გვერდი" @@ -6166,7 +6206,7 @@ msgstr "სერიალიზაციის ფუნქციების msgid "must specify both or neither of serialization and deserialization functions" msgstr "აუცილებელია მიუთითოთ ან ორივე, სერიალიზაციის და დესერიალიზაციის ფუნქციები, ან არც ერთი" -#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:649 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "პარამეტრი \"parallel\" SAFE, RESTRICTED ან UNSAFE -ს შეიძლება უდრიდეს" @@ -6176,82 +6216,82 @@ msgstr "პარამეტრი \"parallel\" SAFE, RESTRICTED ან UNSAFE msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "პარამეტრი \"%s\" READ_ONLY, SHAREABLE, ან READ_WRITE უნდა იყოს" -#: commands/alter.c:82 commands/event_trigger.c:191 +#: commands/alter.c:83 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" msgstr "მოვლენის ტრიგერი უკვე არსებობს: %s" -#: commands/alter.c:85 commands/foreigncmds.c:593 +#: commands/alter.c:86 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "გარე მონაცემების გადამტანი უკვე არსებობს: %s" -#: commands/alter.c:88 commands/foreigncmds.c:884 +#: commands/alter.c:89 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "სერვერი \"%s\" უკვე არსებობს" -#: commands/alter.c:91 commands/proclang.c:131 +#: commands/alter.c:92 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "ენა \"%s\" უკვე არსებობს" -#: commands/alter.c:94 commands/publicationcmds.c:764 +#: commands/alter.c:95 commands/publicationcmds.c:865 #, c-format msgid "publication \"%s\" already exists" msgstr "პუბლიკაცია \"%s\" უკვე არსებობს" -#: commands/alter.c:97 commands/subscriptioncmds.c:669 +#: commands/alter.c:98 commands/subscriptioncmds.c:629 #, c-format msgid "subscription \"%s\" already exists" msgstr "გამოწერა \"%s\" უკვე არსებობს" -#: commands/alter.c:120 +#: commands/alter.c:121 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "გადაყვანა \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:124 +#: commands/alter.c:125 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "სტატისტიკის ობიექტი \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:128 +#: commands/alter.c:129 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "ტექსტის ძებნის დამმუშავებელი \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:132 +#: commands/alter.c:133 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "ტექსტის ძებნის ლექსიკონი \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:136 +#: commands/alter.c:137 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "ტექსტის ძიების შაბლონი \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:140 +#: commands/alter.c:141 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "ტექსტის ძიების კონფიგურაცია \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/alter.c:213 +#: commands/alter.c:214 #, c-format msgid "must be superuser to rename %s" msgstr "%s -ის სახელის გადარქმევისთვის საჭიროა ზემომხმარებლის უფლებები" -#: commands/alter.c:255 commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 commands/subscriptioncmds.c:1918 +#: commands/alter.c:256 commands/subscriptioncmds.c:608 commands/subscriptioncmds.c:1147 commands/subscriptioncmds.c:1231 commands/subscriptioncmds.c:1989 #, c-format msgid "password_required=false is superuser-only" msgstr "password_required=false მხოლოდ superuser-only-სთვისაა" -#: commands/alter.c:256 commands/subscriptioncmds.c:649 commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 commands/subscriptioncmds.c:1919 +#: commands/alter.c:257 commands/subscriptioncmds.c:609 commands/subscriptioncmds.c:1148 commands/subscriptioncmds.c:1232 commands/subscriptioncmds.c:1990 #, c-format msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." msgstr "გამოწერები, რომლის password_required პარამეტრი ჭეშმარიტი არაა, მხოლოდ ზემომხმარებლის მიერ შეიძლება შეიქმნას და შეიცვალოს." -#: commands/alter.c:734 +#: commands/alter.c:746 #, c-format msgid "must be superuser to set schema of %s" msgstr "%s-ის სქემის დასაყენებლად საჭიროა ზემომხმარებლის უფლებები" @@ -6271,7 +6311,7 @@ msgstr "წვდომის მეთოდის შესაქმნელ msgid "access method \"%s\" already exists" msgstr "წვდომის მეთოდი \"%s\" უკვე არსებობს" -#: commands/amcmds.c:154 commands/indexcmds.c:221 commands/indexcmds.c:841 commands/opclasscmds.c:374 commands/opclasscmds.c:832 +#: commands/amcmds.c:154 commands/indexcmds.c:226 commands/indexcmds.c:859 commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" msgstr "წვდომის მეთოდი \"%s\" არ არსებობს" @@ -6281,52 +6321,57 @@ msgstr "წვდომის მეთოდი \"%s\" არ არსებ msgid "handler function is not specified" msgstr "დამმუშავებელი ფუნქცია მითითებული არაა" -#: commands/amcmds.c:264 commands/event_trigger.c:200 commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 parser/parse_clause.c:943 +#: commands/amcmds.c:264 commands/event_trigger.c:200 commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:705 parser/parse_clause.c:941 #, c-format msgid "function %s must return type %s" msgstr "ფუნქციამ (%s) აუცილებლად უნდა დააბრუნოს ტიპი %s" -#: commands/analyze.c:217 +#: commands/analyze.c:215 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "%s-ის გამოტოვება --- გარე ცხრილის ანალიზი შეუძლებელია" -#: commands/analyze.c:234 +#: commands/analyze.c:232 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "%s-ის გამოტოვება --- არაცხრილების და სპეციალური სისტემური ცხრილების ანალიზი შეუძლებელია" -#: commands/analyze.c:314 +#: commands/analyze.c:317 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "\"%s.%s\" -ის მემკვიდრეობითი ხის ანალიზი" -#: commands/analyze.c:319 +#: commands/analyze.c:322 #, c-format msgid "analyzing \"%s.%s\"" msgstr "\"%s.%s\"-ის ანალიზი" -#: commands/analyze.c:385 +#: commands/analyze.c:393 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "ურთიერთობის (%2$s) სვეტი (%1$s) ერთზე მეტჯერ ჩნდება" -#: commands/analyze.c:780 +#: commands/analyze.c:803 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "ცხრილის ავტომატური ანალიზი \"%s.%s.%s\"\n" -#: commands/analyze.c:1295 +#: commands/analyze.c:805 +#, c-format +msgid "finished analyzing table \"%s.%s.%s\"\n" +msgstr "დასრულდა ანალიზი ცხრილისთვის \"%s.%s.%s\"\n" + +#: commands/analyze.c:1346 #, 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 გვერდი %u-დან, შეიცავს %.0f ცოცხალ მწკრივს და %.0f მკვდარ მწკრივს; %d მწკრივს სემპლში, %.0f დაახლოებით მწკრივები სულ" -#: commands/analyze.c:1379 +#: commands/analyze.c:1430 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "\"%s.%s\"-ის მემკვიდრეობის ხის ანალიზის გამოტოვება --- მემკვიდრეობითობის ხე შვილ ცხრილებს არ შეიცავს" -#: commands/analyze.c:1477 +#: commands/analyze.c:1528 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "\"%s.%s\"-ის მემკვიდრეობის ხის ანალიზის გამოტოვება --- მემკვიდრეობითობის ხე გაანალიზებად შვილ ცხრილებს არ შეიცავს" @@ -6371,82 +6416,82 @@ msgstr "სერვერის პროცესი PID-ით %d უძვ msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "რიგის NOTIFY დაცარიელება პროცესის მიერ მიმდინარე ტრანზაქციის დასრულებამდე შეუძლებელია." -#: commands/cluster.c:128 +#: commands/cluster.c:127 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "\"CLUSTER\"-ის უცნობი პარამეტრი \"%s\"" -#: commands/cluster.c:159 commands/cluster.c:433 +#: commands/cluster.c:158 commands/cluster.c:421 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "სხვა სესიების დროებით ცხრილების დაკლასტერება შეუძლებელია" -#: commands/cluster.c:177 +#: commands/cluster.c:176 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "ცხრილისთვის \"%s\" წინასწარ დაკლასტერებული ინდექსი არ არსებობს" -#: commands/cluster.c:191 commands/tablecmds.c:14698 commands/tablecmds.c:16629 +#: commands/cluster.c:190 commands/tablecmds.c:16380 commands/tablecmds.c:18446 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "ინდექსი %s ცხრილისთვის %s არ არსებობს" -#: commands/cluster.c:422 +#: commands/cluster.c:410 #, c-format msgid "cannot cluster a shared catalog" msgstr "გაზიარებული კატალოგის დაკლასტერება შეუძლებელია" -#: commands/cluster.c:437 +#: commands/cluster.c:425 #, c-format msgid "cannot vacuum temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილების მომტვერსასრუტება შეუძლებელია" -#: commands/cluster.c:513 commands/tablecmds.c:16639 +#: commands/cluster.c:507 commands/tablecmds.c:18456 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" არ წარმოადგენს ინდექსს ცხრილისთვის \"%s\"" -#: commands/cluster.c:521 +#: commands/cluster.c:515 #, c-format msgid "cannot cluster on index \"%s\" because access method does not support clustering" msgstr "" -#: commands/cluster.c:533 +#: commands/cluster.c:527 #, c-format msgid "cannot cluster on partial index \"%s\"" msgstr "ნაწილობრივი ინდექსის (\"%s\") დაკლასტერება შეუძლებელია" -#: commands/cluster.c:547 +#: commands/cluster.c:541 #, c-format msgid "cannot cluster on invalid index \"%s\"" msgstr "არასწორი ინდექსის (\"%s\") დაკლასტერება შეუძლებელია" -#: commands/cluster.c:571 +#: commands/cluster.c:565 #, c-format msgid "cannot mark index clustered in partitioned table" msgstr "დაყოფილ ცხრილში ინდექსის დაკლასტერებულად მონიშვნა შეუძლებელია" -#: commands/cluster.c:956 +#: commands/cluster.c:961 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "\"%s.%s\"-ის დაკლასტერება ინდექსის სკანირების გამოყენებით \"%s\"" -#: commands/cluster.c:962 +#: commands/cluster.c:967 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "\"%s.%s\"-ის დაკლასტერება თანმიმდევრული სკანირების და დახარისხების გამოყენებით" -#: commands/cluster.c:967 +#: commands/cluster.c:972 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "დამტვერსასრუტება \"%s.%s\"" -#: commands/cluster.c:994 +#: commands/cluster.c:999 #, c-format msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" msgstr "\"%s.%s\": აღმოჩენილია %.0f წაშლადი და %.0f არაწაშლადი მწკრივის ვერსია %u გვერდში" -#: commands/cluster.c:999 +#: commands/cluster.c:1004 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -6455,7 +6500,7 @@ msgstr "" "%.0f მკვდარი მწკრივის ვერსების წაშლა ჯერჯერობით შეუძლებელია.\n" "%s." -#: commands/cluster.c:1744 +#: commands/cluster.c:1751 #, c-format msgid "permission denied to cluster \"%s\", skipping it" msgstr "კლასტერისთვის \"%s\" წვდომა აკრძალულია. გამოტოვება" @@ -6465,8 +6510,8 @@ msgstr "კლასტერისთვის \"%s\" წვდომა აკ msgid "collation attribute \"%s\" not recognized" msgstr "კოლაციის უცნობი ატრიბუტი: \"%s\"" -#: commands/collationcmds.c:123 commands/collationcmds.c:129 commands/define.c:388 commands/tablecmds.c:8137 replication/pgoutput/pgoutput.c:307 replication/pgoutput/pgoutput.c:330 replication/pgoutput/pgoutput.c:344 replication/pgoutput/pgoutput.c:354 replication/pgoutput/pgoutput.c:364 replication/pgoutput/pgoutput.c:374 replication/pgoutput/pgoutput.c:386 replication/walsender.c:1146 replication/walsender.c:1168 replication/walsender.c:1178 -#: replication/walsender.c:1187 replication/walsender.c:1426 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 commands/define.c:375 commands/tablecmds.c:8369 replication/pgoutput/pgoutput.c:320 replication/pgoutput/pgoutput.c:343 replication/pgoutput/pgoutput.c:357 replication/pgoutput/pgoutput.c:367 replication/pgoutput/pgoutput.c:377 replication/pgoutput/pgoutput.c:387 replication/pgoutput/pgoutput.c:399 replication/walsender.c:1123 replication/walsender.c:1145 replication/walsender.c:1155 +#: replication/walsender.c:1164 replication/walsender.c:1406 replication/walsender.c:1415 #, c-format msgid "conflicting or redundant options" msgstr "კონფლიქტური ან ზედმეტი პარამეტრები" @@ -6496,7 +6541,7 @@ msgstr "კოლაციის უცნობი მომწოდებე msgid "parameter \"%s\" must be specified" msgstr "პარამეტრის \"%s\" მითითება აუცილებელია" -#: commands/collationcmds.c:293 commands/dbcommands.c:1134 +#: commands/collationcmds.c:293 commands/dbcommands.c:1148 #, c-format msgid "using standard form \"%s\" for ICU locale \"%s\"" msgstr "ვიყენებ სტანდარტულ ფორმას \"%s\" ICU ლოკალისთვის \"%s\"" @@ -6506,7 +6551,7 @@ msgstr "ვიყენებ სტანდარტულ ფორმას msgid "nondeterministic collations not supported with this provider" msgstr "არადემინისტური კოლაციები, რომლებიც არ არის მხარდაჭერილი ამ მომწოდებელთან" -#: commands/collationcmds.c:317 commands/dbcommands.c:1087 +#: commands/collationcmds.c:317 commands/dbcommands.c:1101 #, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" msgstr "ICU-ის წესების მითითება მანამდე, სანამ ლოკალის მომწოდებელი ICU არაა, შეუძლებელია" @@ -6516,59 +6561,59 @@ msgstr "ICU-ის წესების მითითება მანა msgid "current database's encoding is not supported with this provider" msgstr "მონაცემთა ბაზის კოდირება არ არის მხარდაჭერილი ამ მომწოდებელთან" -#: commands/collationcmds.c:409 +#: commands/collationcmds.c:405 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "კოლაცია \"%s\" კოდირებისთვის \"%s\" სქემაში \"%s\" უკვე არსებობს" -#: commands/collationcmds.c:420 +#: commands/collationcmds.c:416 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "კოლაცია \"%s\" უკვე არსებობს სქემაში \"%s\"" -#: commands/collationcmds.c:445 +#: commands/collationcmds.c:441 #, c-format msgid "cannot refresh version of default collation" msgstr "ნაგულისხმევი კოლაციის ვერსიის განახლება შეუძლებელია" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command -#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 commands/tablecmds.c:7913 commands/tablecmds.c:7923 commands/tablecmds.c:7925 commands/tablecmds.c:14400 commands/tablecmds.c:17777 commands/tablecmds.c:17798 commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 +#: commands/collationcmds.c:443 commands/subscriptioncmds.c:1445 commands/tablecmds.c:8146 commands/tablecmds.c:8156 commands/tablecmds.c:8158 commands/tablecmds.c:16082 commands/tablecmds.c:19610 commands/tablecmds.c:19631 commands/typecmds.c:3778 commands/typecmds.c:3863 commands/typecmds.c:4217 #, c-format msgid "Use %s instead." msgstr "ამის ნაცვლად %s გამოიყენეთ." -#: commands/collationcmds.c:480 commands/dbcommands.c:2550 +#: commands/collationcmds.c:476 commands/dbcommands.c:2580 #, c-format msgid "changing version from %s to %s" msgstr "ვერსიის შეცვლა %s-დან %s-ზე" -#: commands/collationcmds.c:495 commands/dbcommands.c:2563 +#: commands/collationcmds.c:491 commands/dbcommands.c:2593 #, c-format msgid "version has not changed" msgstr "ვერსია არ შეცვლილა" -#: commands/collationcmds.c:528 commands/dbcommands.c:2729 +#: commands/collationcmds.c:524 commands/dbcommands.c:2763 utils/adt/dbsize.c:180 #, c-format msgid "database with OID %u does not exist" msgstr "ბაზა OID-ით %u არ არსებობს" -#: commands/collationcmds.c:554 +#: commands/collationcmds.c:550 #, c-format msgid "collation with OID %u does not exist" msgstr "კოლაცია OID-ით %u არ არსებობს" -#: commands/collationcmds.c:848 +#: commands/collationcmds.c:844 #, c-format msgid "must be superuser to import system collations" msgstr "სისტემური კოლაციების შემოსატანად საჭიროა ზემომხმარებლის უფლებები" -#: commands/collationcmds.c:968 commands/collationcmds.c:1053 +#: commands/collationcmds.c:964 commands/collationcmds.c:1049 #, c-format msgid "no usable system locales were found" msgstr "გამოყენებადი სისტემური ენები ნაპოვნი არაა" -#: commands/comment.c:61 commands/dbcommands.c:1663 commands/dbcommands.c:1875 commands/dbcommands.c:1985 commands/dbcommands.c:2183 commands/dbcommands.c:2421 commands/dbcommands.c:2512 commands/dbcommands.c:2633 commands/dbcommands.c:3141 utils/init/postinit.c:1033 utils/init/postinit.c:1097 utils/init/postinit.c:1170 +#: commands/comment.c:61 commands/dbcommands.c:1679 commands/dbcommands.c:1897 commands/dbcommands.c:2009 commands/dbcommands.c:2207 commands/dbcommands.c:2447 commands/dbcommands.c:2540 commands/dbcommands.c:2664 commands/dbcommands.c:3175 utils/init/postinit.c:1027 utils/init/postinit.c:1091 utils/init/postinit.c:1164 #, c-format msgid "database \"%s\" does not exist" msgstr "მონაცემთა ბაზა \"%s\" არ არსებობს" @@ -6578,12 +6623,12 @@ msgstr "მონაცემთა ბაზა \"%s\" არ არსებ msgid "cannot set comment on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" კომენტარის დადება შეუძლებელია" -#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2175 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "ფუნქცია ტრიგერის მმართველის მიერ არ გამოძახებულა: %s" -#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2184 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "ფუნქცია %s AFTER-ის ტრიგერით უნდა გაეშვას" @@ -6673,309 +6718,265 @@ msgstr "\"COPY TO\"-ში %s-ის HEADER-თან ერთად გამ msgid "%s requires a Boolean value or \"match\"" msgstr "%s -ს ლოგიკური მნიშვნელობა უნდა ჰქონდეს, ან \"match\"" -#: commands/copy.c:400 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:818 commands/copy.c:834 commands/copy.c:851 commands/copy.c:877 commands/copy.c:887 +#, c-format +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s-ს %s-სთან ერთად ვერ გამოიყენებთ" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:474 #, c-format -msgid "COPY ON_ERROR cannot be used with COPY TO" -msgstr "COPY ON_ERROR-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" +msgid "COPY %s \"%s\" not recognized" +msgstr "COPY %s \"%s\" უცნობია" -#: commands/copy.c:413 +#: commands/copy.c:436 commands/define.c:73 commands/define.c:84 commands/define.c:178 commands/define.c:196 commands/define.c:211 commands/define.c:229 #, c-format -msgid "COPY ON_ERROR \"%s\" not recognized" -msgstr "COPY ON_ERROR \"%s\" უცნობია" +msgid "%s requires a numeric value" +msgstr "%s მოითხოვს რიცხვით მნიშვნელობას" -#: commands/copy.c:437 +#: commands/copy.c:446 #, c-format -msgid "COPY LOG_VERBOSITY \"%s\" not recognized" -msgstr "COPY LOG_VERBOSITY \"%s\" უცნობია" +msgid "REJECT_LIMIT (%) must be greater than zero" +msgstr "REJECT_LIMIT (%) ნულზე მეტი უნდა იყოს" -#: commands/copy.c:498 +#: commands/copy.c:536 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "COPY-ის უცნობი ფორმატი: \"%s\"" -#: commands/copy.c:556 commands/copy.c:571 commands/copy.c:586 commands/copy.c:605 +#: commands/copy.c:594 commands/copy.c:609 commands/copy.c:624 commands/copy.c:643 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "პარამეტრის (%s) არგუმენტი სვეტების სახელების სია უნდა იყოს" -#: commands/copy.c:617 +#: commands/copy.c:655 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "პარამეტრის (%s) არგუმენტი კოდირების სწორი სახელი უნდა იყოს" -#: commands/copy.c:638 commands/dbcommands.c:866 commands/dbcommands.c:2369 +#: commands/copy.c:683 commands/dbcommands.c:880 commands/dbcommands.c:2395 #, c-format msgid "option \"%s\" not recognized" msgstr "უცნობი პარამეტრი: %s" -#: commands/copy.c:650 -#, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "რეჟიმში BINARY \"DELIMITER\"-ს ვერ მიუთითებთ" - -#: commands/copy.c:655 -#, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "რეჟიმში BINARY \"NULL\"-ს ვერ მიუთითებთ" - -#: commands/copy.c:660 -#, c-format -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "'BINARY' რეჟიმში DEFAULT-ს ვერ მიუთითებთ" - -#: commands/copy.c:665 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:696 commands/copy.c:701 commands/copy.c:706 commands/copy.c:776 #, c-format -msgid "only ON_ERROR STOP is allowed in BINARY mode" -msgstr "" +msgid "cannot specify %s in BINARY mode" +msgstr "რეჟიმში BINARY \"%s\"-ს ვერ მიუთითებთ" -#: commands/copy.c:687 +#: commands/copy.c:728 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "COPY-ის გამყოფი ერთბაიტიანი სიმბოლო უნდა იყოს" -#: commands/copy.c:694 +#: commands/copy.c:735 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "COPY-ის გამყოფი ხაზის გადატანა ან კარეტის დაბრუნება არ უნდა იყოს" -#: commands/copy.c:700 +#: commands/copy.c:741 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "COPY-ის ნულოვან რეპრეზენტაციას ახალი ხაზის ან კარეტის დაბრუნება გამოყენება არ შეუძლია" -#: commands/copy.c:710 +#: commands/copy.c:751 #, c-format msgid "COPY default representation cannot use newline or carriage return" msgstr "COPY-ის ნაგულისხმევ რეპრეზენტაციას ახალი ხაზის ან კარეტის დაბრუნება გამოყენება არ შეუძლია" -#: commands/copy.c:728 +#: commands/copy.c:769 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "COPY-ის გამყოფი \"%s\" არ შეიძლება იყოს" -#: commands/copy.c:734 -#, c-format -msgid "cannot specify HEADER in BINARY mode" -msgstr "რეჟიმში BINARY \"HEADER\"-ს ვერ მიუთითებთ" - -#: commands/copy.c:740 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:783 commands/copy.c:800 commands/copy.c:812 commands/copy.c:827 commands/copy.c:843 #, c-format -msgid "COPY QUOTE requires CSV mode" -msgstr "COPY QUOTE-ს CSV რეჟიმი სჭირდება" +msgid "COPY %s requires CSV mode" +msgstr "COPY %s-ს CSV რეჟიმი სჭირდება" -#: commands/copy.c:745 +#: commands/copy.c:788 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "COPY-ის ბრჭყალი ერთბაიტიანი სიმბოლო უნდა იყოს" -#: commands/copy.c:750 +#: commands/copy.c:793 #, c-format msgid "COPY delimiter and quote must be different" msgstr "COPY-ის გამყოფი და ბრჭყალი სხვადასხვა სიმბოლო უნდა იყოს" -#: commands/copy.c:756 -#, c-format -msgid "COPY ESCAPE requires CSV mode" -msgstr "COPY ESCAPE-ს CSV რეჟიმი სჭირდება" - -#: commands/copy.c:761 +#: commands/copy.c:805 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "COPY-ის სპეცსიმბოლო ერთბაიტიანი სიმბოლო უნდა იყოს" -#: commands/copy.c:767 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:859 commands/copy.c:895 #, c-format -msgid "COPY FORCE_QUOTE requires CSV mode" -msgstr "COPY FORCE_QUOTE-ს CSV რეჟიმი სჭირდება" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "COPY-ის გამყოფი სიმბოლო %s-ის სპეციფიკაციაში არ უნდა ჩანდეს" -#: commands/copy.c:771 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:868 commands/copy.c:904 #, c-format -msgid "COPY FORCE_QUOTE cannot be used with COPY FROM" -msgstr "COPY FORCE_QUOTE-ს COPY FROM-სთან ერთად ვერ გამოიყენებთ" +msgid "CSV quote character must not appear in the %s specification" +msgstr "CSV-ის ბრჭყალის სიმბოლო %s-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" -#: commands/copy.c:777 +#: commands/copy.c:913 #, c-format -msgid "COPY FORCE_NOT_NULL requires CSV mode" -msgstr "COPY FORCE_NOT_NULL-ს CSV რეჟიმი სჭირდება" +msgid "NULL specification and DEFAULT specification cannot be the same" +msgstr "NULL-ის სპეციფიკაცია და DEFAULT-ის სპეციფიკაცია ერთი და იგივე ვერ იქნება" -#: commands/copy.c:781 +#: commands/copy.c:919 #, c-format -msgid "COPY FORCE_NOT_NULL cannot be used with COPY TO" -msgstr "COPY FORCE_NOT_NULL-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "" -#: commands/copy.c:787 +#. translator: first and second %s are the names of COPY option, e.g. +#. * ON_ERROR, third is the value of the COPY option, e.g. IGNORE +#: commands/copy.c:926 #, c-format -msgid "COPY FORCE_NULL requires CSV mode" -msgstr "COPY FORCE_NULL-ს CSV რეჟიმი სჭირდება" +msgid "COPY %s requires %s to be set to %s" +msgstr "COPY %s-ს სჭირდება %s დაყენებული იყოს მნიშვნელობაზე %s" -#: commands/copy.c:792 +#: commands/copy.c:988 #, c-format -msgid "COPY FORCE_NULL cannot be used with COPY TO" -msgstr "COPY FORCE_NULL-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" +msgid "column \"%s\" is a generated column" +msgstr "სვეტი \"%s\" გენერირებული სვეტია" -#: commands/copy.c:798 -#, c-format -msgid "COPY delimiter character must not appear in the NULL specification" -msgstr "COPY-ის გამყოფი სიმბოლო NULL-ის სპეციფიკაციაში არ ჩანდეს" - -#: commands/copy.c:805 -#, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "CSV-ის ბრჭყალის სიმბოლო NULL-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" - -#: commands/copy.c:811 -#, c-format -msgid "COPY FREEZE cannot be used with COPY TO" -msgstr "COPY FREEZE-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" - -#: commands/copy.c:818 -#, c-format -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "COPY DEFAULT მხოლოდ COPY FROM-ის გამოყენების დროსაა ხელმისაწვდომი" - -#: commands/copy.c:824 -#, c-format -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "COPY-ის გამყოფი DEFAULT-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" - -#: commands/copy.c:831 -#, c-format -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "CSV-ის ბრჭყალის სიმბოლო DEFAULT-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" - -#: commands/copy.c:839 -#, c-format -msgid "NULL specification and DEFAULT specification cannot be the same" -msgstr "NULL-ის სპეციფიკაცია და DEFAULT-ის სპეციფიკაცია ერთი და იგივე ვერ იქნება" - -#: commands/copy.c:901 -#, c-format -msgid "column \"%s\" is a generated column" -msgstr "სვეტი \"%s\" გენერირებული სვეტია" - -#: commands/copy.c:903 +#: commands/copy.c:990 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "გენერირებული სვეტები COPY-ში არ გამოიყენება." -#: commands/copy.c:918 commands/indexcmds.c:1915 commands/statscmds.c:239 commands/tablecmds.c:2514 commands/tablecmds.c:2985 commands/tablecmds.c:3781 parser/parse_relation.c:3692 parser/parse_relation.c:3702 parser/parse_relation.c:3720 parser/parse_relation.c:3727 parser/parse_relation.c:3741 utils/adt/tsvector_op.c:2853 +#: commands/copy.c:1005 commands/indexcmds.c:1959 commands/statscmds.c:239 commands/tablecmds.c:2593 commands/tablecmds.c:3101 commands/tablecmds.c:3930 parser/parse_relation.c:3798 parser/parse_relation.c:3808 parser/parse_relation.c:3826 parser/parse_relation.c:3833 parser/parse_relation.c:3847 utils/adt/tsvector_op.c:2853 #, c-format msgid "column \"%s\" does not exist" msgstr "სვეტი არ არსებობს: \"%s\"" -#: commands/copy.c:925 commands/tablecmds.c:2540 commands/trigger.c:951 parser/parse_target.c:1083 parser/parse_target.c:1094 +#: commands/copy.c:1012 commands/tablecmds.c:2619 commands/trigger.c:956 parser/parse_target.c:1086 parser/parse_target.c:1097 #, c-format msgid "column \"%s\" specified more than once" msgstr "სვეტი ერთზე მეტჯერაა მითითებული: \"%s\"" -#: commands/copyfrom.c:118 +#: commands/copyfrom.c:260 #, c-format msgid "COPY %s" msgstr "COPY %s" -#: commands/copyfrom.c:126 +#: commands/copyfrom.c:268 #, c-format -msgid "COPY %s, line %llu, column %s" -msgstr "COPY %s, ხაზი %llu, სვეტი %s" +msgid "COPY %s, line %, column %s" +msgstr "COPY %s, ხაზი %, სვეტი %s" -#: commands/copyfrom.c:131 commands/copyfrom.c:177 +#: commands/copyfrom.c:273 commands/copyfrom.c:319 #, c-format -msgid "COPY %s, line %llu" -msgstr "COPY %s, ხაზი %llu" +msgid "COPY %s, line %" +msgstr "COPY %s, ხაზი %" -#: commands/copyfrom.c:143 +#: commands/copyfrom.c:285 #, c-format -msgid "COPY %s, line %llu, column %s: \"%s\"" -msgstr "COPY %s, ხაზი %llu, სვეტი %s: \"%s\"" +msgid "COPY %s, line %, column %s: \"%s\"" +msgstr "COPY %s, ხაზი %, სვეტი %s: \"%s\"" -#: commands/copyfrom.c:153 +#: commands/copyfrom.c:295 #, c-format -msgid "COPY %s, line %llu, column %s: null input" -msgstr "COPY %s, ხაზი %llu, სვეტი %s: ნულოვანი შეყვანა" +msgid "COPY %s, line %, column %s: null input" +msgstr "COPY %s, ხაზი %, სვეტი %s: ნულოვანი შეყვანა" -#: commands/copyfrom.c:170 +#: commands/copyfrom.c:312 #, c-format -msgid "COPY %s, line %llu: \"%s\"" -msgstr "COPY %s, ხაზი %llu: \"%s\"" +msgid "COPY %s, line %: \"%s\"" +msgstr "COPY %s, ხაზი %: \"%s\"" -#: commands/copyfrom.c:673 +#: commands/copyfrom.c:823 #, c-format msgid "cannot copy to view \"%s\"" msgstr "ხედზე კოპირების შეცდომა: \"%s\"" -#: commands/copyfrom.c:675 +#: commands/copyfrom.c:825 #, c-format msgid "To enable copying to a view, provide an INSTEAD OF INSERT trigger." msgstr "ხედში კოპირებისთვის INSTEAD OF INSERT ტრიგერი წარმოადგინეთ." -#: commands/copyfrom.c:679 +#: commands/copyfrom.c:829 #, c-format msgid "cannot copy to materialized view \"%s\"" msgstr "მატერიალიზებულ ხედში კოპირების შეცდომა: %s" -#: commands/copyfrom.c:684 +#: commands/copyfrom.c:834 #, c-format msgid "cannot copy to sequence \"%s\"" msgstr "მიმდევრობაში (%s) კოპირების შეცდომა" -#: commands/copyfrom.c:689 +#: commands/copyfrom.c:839 #, c-format msgid "cannot copy to non-table relation \"%s\"" msgstr "არა-ცხრილოვან ურთიერთობაში კოპირების შეცდომა: %s" -#: commands/copyfrom.c:729 +#: commands/copyfrom.c:879 #, c-format msgid "cannot perform COPY FREEZE on a partitioned table" msgstr "\"COPY FREEZE\"-ის გამოყენება დაყოფილ ცხრილზე შეუძლებელია" -#: commands/copyfrom.c:744 +#: commands/copyfrom.c:886 +#, c-format +msgid "cannot perform COPY FREEZE on a foreign table" +msgstr "\"COPY FREEZE\"-ის გამოყენება გარე ცხრილზე შეუძლებელია" + +#: commands/copyfrom.c:900 #, c-format msgid "cannot perform COPY FREEZE because of prior transaction activity" msgstr "\"COPY FREEZE\"-ის გამოყენება შეუძლებელია წინა ტრანზაქციის აქტივობის გამო" -#: commands/copyfrom.c:750 +#: commands/copyfrom.c:906 #, c-format msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "'COPY FREEZE'-ის განხორციელება შეუძლებელია, რადგან ცხრილი მიმდინარე ქვეტრანზაქციაში არც შექმნილა და არც მოკვეთილა" -#: commands/copyfrom.c:1313 +#: commands/copyfrom.c:1171 #, c-format -msgid "%llu row was skipped due to data type incompatibility" -msgid_plural "%llu rows were skipped due to data type incompatibility" -msgstr[0] "გამოტოვებულია %llu მწკრივი მონაცემების ტიპის შეუთავსებლობის გამო" -msgstr[1] "გამოტოვებულია %llu მწკრივი მონაცემების ტიპის შეუთავსებლობის გამო" +msgid "skipped more than REJECT_LIMIT (%) rows due to data type incompatibility" +msgstr "გამოტოვებულია REJECT_LIMIT-ზე მეტი (%) მწკრივი მონაცემების ტიპის შეუთავსებლობის გამო" -#: commands/copyfrom.c:1447 +#: commands/copyfrom.c:1474 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "FORCE_NOT_NULL სვეტი \"%s\" COPY-ის მიერ მითითებული არაა" +msgid "% row was skipped due to data type incompatibility" +msgid_plural "% rows were skipped due to data type incompatibility" +msgstr[0] "გამოტოვებულია % მწკრივი მონაცემების ტიპის შეუთავსებლობის გამო" +msgstr[1] "გამოტოვებულია % მწკრივი მონაცემების ტიპის შეუთავსებლობის გამო" -#: commands/copyfrom.c:1489 +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1611 commands/copyfrom.c:1654 commands/copyto.c:881 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "FORCE_NULL სვეტი \"%s\" COPY-ის მიერ მითითებული არაა" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "%s-ის სვეტი \"%s\"-ს COPY არ მიმართავს" -#: commands/copyfrom.c:1542 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1707 utils/mb/mbutils.c:385 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "ნაგულისხმევი გადაყვანის ფუნქცია კოდირებისთვის \"%s\"-დან %s-ზე არ არსებობს" -#: commands/copyfrom.c:1740 +#: commands/copyfrom.c:1882 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "ინსტრუქცია 'COPY TO' PostgreSQL-ის სერვერის პროცესს ფაილიდან წაკითხვას უბრძანებს. შეიძლება გნებავთ კლიენტის მხარე, როგორიცაა psql-ის \\copy." -#: commands/copyfrom.c:1753 commands/copyto.c:701 +#: commands/copyfrom.c:1895 commands/copyto.c:986 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" საქაღალდეა" -#: commands/copyfrom.c:1821 commands/copyto.c:299 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1953 commands/copyto.c:572 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "გარე ბრძანებამდე ფაიფის დახურვის შეცდომა: %m" -#: commands/copyfrom.c:1836 commands/copyto.c:304 +#: commands/copyfrom.c:1968 commands/copyto.c:577 #, c-format msgid "program \"%s\" failed" msgstr "პროგრამის (\"%s\") შეცდომა" @@ -7015,665 +7016,665 @@ msgstr "\"COPY\"-ის ფაილის არასწორი თავს msgid "could not read from COPY file: %m" msgstr "\"COPY\" ფაილიდან წაკითხვის შეცდომა: %m" -#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:377 +#: commands/copyfromparse.c:278 commands/copyfromparse.c:303 replication/walsender.c:732 replication/walsender.c:758 tcop/postgres.c:369 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "მოულოდნელი EOF ღია ტრანზაქციის მქონე კლიენტის შეერთებაზე" -#: commands/copyfromparse.c:294 replication/walsender.c:772 +#: commands/copyfromparse.c:294 replication/walsender.c:748 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "stdin-დან COPY ოპერაციისას მიღებულია მოულოდნელი შეტყობინების ტიპი 0x%02X" -#: commands/copyfromparse.c:317 replication/walsender.c:803 +#: commands/copyfromparse.c:317 replication/walsender.c:779 #, c-format msgid "COPY from stdin failed: %s" msgstr "COPY-ი stdin-დან წარუმატებელია: %s" -#: commands/copyfromparse.c:785 +#: commands/copyfromparse.c:802 #, c-format msgid "wrong number of fields in header line: got %d, expected %d" msgstr "ველების არასწორი რაოდენობა თავსართის ხაზში: მივიღე %d, მოველოდი %d" -#: commands/copyfromparse.c:801 +#: commands/copyfromparse.c:818 #, c-format msgid "column name mismatch in header line field %d: got null value (\"%s\"), expected \"%s\"" msgstr "სვეტი სახელი არ ემთხვევა თავსართის %d ხაზის ველზე: მიღებულია ნულოვანი მნიშვნელობა (\"%s\"). მოველოდი: \"%s\"" -#: commands/copyfromparse.c:808 +#: commands/copyfromparse.c:825 #, c-format msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "სვეტი სახელი არ ემთხვევა თავსართის %d ხაზის ველზე: მიღებულია მნიშვნელობა: \"%s\". მოველოდი: \"%s\"" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 commands/copyfromparse.c:1810 +#: commands/copyfromparse.c:962 commands/copyfromparse.c:1581 commands/copyfromparse.c:1837 #, c-format msgid "extra data after last expected column" msgstr "დამატებითი მონაცემები ბოლო მოსალოდნელი სვეტის შემდეგ" -#: commands/copyfromparse.c:906 +#: commands/copyfromparse.c:976 #, c-format msgid "missing data for column \"%s\"" msgstr "არ არსებობს მონაცემები სვეტისთვის \"%s\"" -#: commands/copyfromparse.c:990 +#: commands/copyfromparse.c:1056 #, c-format -msgid "skipping row due to data type incompatibility at line %llu for column %s: \"%s\"" +msgid "skipping row due to data type incompatibility at line % for column \"%s\": \"%s\"" msgstr "" -#: commands/copyfromparse.c:998 +#: commands/copyfromparse.c:1064 #, c-format -msgid "skipping row due to data type incompatibility at line %llu for column %s: null input" +msgid "skipping row due to data type incompatibility at line % for column \"%s\": null input" msgstr "" -#: commands/copyfromparse.c:1044 +#: commands/copyfromparse.c:1122 #, c-format msgid "received copy data after EOF marker" msgstr "მიღებულია კოპირების მონაცემები EOF ნიშნის შემდეგ" -#: commands/copyfromparse.c:1051 +#: commands/copyfromparse.c:1129 #, c-format msgid "row field count is %d, expected %d" msgstr "მწკრივების ველის რაოდენობაა %d. ველოდებოდი %d" -#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 +#: commands/copyfromparse.c:1394 commands/copyfromparse.c:1411 #, c-format msgid "literal carriage return found in data" msgstr "მონაცემებში აღმოჩენილია აშკარა ხაზის გადატანის სიმბოლო" -#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 +#: commands/copyfromparse.c:1395 commands/copyfromparse.c:1412 #, c-format msgid "unquoted carriage return found in data" msgstr "მონაცემებში აღმოჩენილია ხაზის გადატანის სიმბოლო ბრჭყალების გარეშე" -#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 +#: commands/copyfromparse.c:1397 commands/copyfromparse.c:1414 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "კარეტის დაბრუნების სიმბოლოსთვის გამოიყენეთ \"\\r\"." -#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 +#: commands/copyfromparse.c:1398 commands/copyfromparse.c:1415 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "CSV-ის ველში კარეტის დაბრუნების სიმბოლოს ბრჭყალებში ჩასმა." -#: commands/copyfromparse.c:1369 +#: commands/copyfromparse.c:1427 #, c-format msgid "literal newline found in data" msgstr "მონაცემებში აღმოჩენილია ხაზის გადატანის სიმბოლო" -#: commands/copyfromparse.c:1370 +#: commands/copyfromparse.c:1428 #, c-format msgid "unquoted newline found in data" msgstr "მონაცემებში აღმოჩენილია ხაზის გადატანის სიმბოლო ბრჭყალების გარეშე" -#: commands/copyfromparse.c:1372 +#: commands/copyfromparse.c:1430 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "ახალი ხაზს წარმოსადგენად გამოიყენეთ \"\\n\"." -#: commands/copyfromparse.c:1373 +#: commands/copyfromparse.c:1431 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "CSV-ის ველში ახალი ხაზის სიმბოლოს ბრჭყალებში ჩასმა." -#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 +#: commands/copyfromparse.c:1469 commands/copyfromparse.c:1491 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "კოპირების-დასასრულის მარკერი წინა ახალი ხაზის სტილს არ ემთხვევა" -#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 +#: commands/copyfromparse.c:1473 commands/copyfromparse.c:1484 commands/copyfromparse.c:1500 #, c-format -msgid "end-of-copy marker corrupt" -msgstr "კოპირების-დასასრულის სანიშნი დაზიანებულია" +msgid "end-of-copy marker is not alone on its line" +msgstr "კოპირების-დასასრულის მარკერი მის ხაზზე მარტო არაა" -#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 +#: commands/copyfromparse.c:1773 commands/copyfromparse.c:1988 #, c-format msgid "unexpected default marker in COPY data" msgstr "მოულოდნელი ნაგულისხმევი მარკერი COPY-ის მონაცემებში" -#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 +#: commands/copyfromparse.c:1774 commands/copyfromparse.c:1989 #, c-format msgid "Column \"%s\" has no default value." msgstr "სვეტს \"%s\" DEFAULT მნიშვნელობა არ გააჩნია." -#: commands/copyfromparse.c:1894 +#: commands/copyfromparse.c:1921 #, c-format msgid "unterminated CSV quoted field" msgstr "\"CSV\"-ის ველის დამხურავი ბრჭყალი არ არსებობს" -#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 +#: commands/copyfromparse.c:2023 commands/copyfromparse.c:2042 #, c-format msgid "unexpected EOF in COPY data" msgstr "\"COPY\"-ის მონაცემებში ნაპოვნია მოულოდნელი EOF" -#: commands/copyfromparse.c:2005 +#: commands/copyfromparse.c:2032 #, c-format msgid "invalid field size" msgstr "ველის არასწორი ზომა" -#: commands/copyfromparse.c:2028 +#: commands/copyfromparse.c:2055 #, c-format msgid "incorrect binary data format" msgstr "ბინარულ მონაცემების არასწორი ფორმატი" -#: commands/copyto.c:229 +#: commands/copyto.c:477 #, c-format msgid "could not write to COPY program: %m" msgstr "\"COPY\"-ის პროგრამაში ჩაწერის შეცდომა: %m" -#: commands/copyto.c:234 +#: commands/copyto.c:482 #, c-format msgid "could not write to COPY file: %m" msgstr "\"COPY\"-ის ფაილში ჩაწერის შეცდომა: %m" -#: commands/copyto.c:379 +#: commands/copyto.c:652 #, c-format msgid "cannot copy from view \"%s\"" msgstr "ხედიდან კოპირების შეცდომა: \"%s\"" -#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 commands/copyto.c:404 +#: commands/copyto.c:654 commands/copyto.c:669 commands/copyto.c:680 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "სცადეთ COPY (SELECT ...) TO ვარიანტი." -#: commands/copyto.c:385 +#: commands/copyto.c:660 +#, c-format +msgid "cannot copy from unpopulated materialized view \"%s\"" +msgstr "არაშევსებული მატერიალიზებული ხედიდან კოპირების შეცდომა: %s" + +#: commands/copyto.c:662 executor/execUtils.c:761 #, c-format -msgid "cannot copy from materialized view \"%s\"" -msgstr "მატერიალიზებული ხედიდან კოპირების შეცდომა: %s" +msgid "Use the REFRESH MATERIALIZED VIEW command." +msgstr "გამოიყენეთ ბრძანება REFRESH MATERIALIZED VIEW." -#: commands/copyto.c:391 +#: commands/copyto.c:667 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "გარე ცხრილიდან კოპირების შეცდომა: %s" -#: commands/copyto.c:397 +#: commands/copyto.c:673 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "მიმდევრობიდან კოპირების შეცდომა: %s" -#: commands/copyto.c:402 +#: commands/copyto.c:678 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "დაყოფილი ცხრილიდან კოპირების შეცდომა: %s" -#: commands/copyto.c:408 +#: commands/copyto.c:684 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "არა-ცხრილოვანი ურთიერთობიდან კოპირების შეცდომა: %s" -#: commands/copyto.c:460 +#: commands/copyto.c:739 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "DO INSTEAD NOTHING -ის წესები COPY-სთვის მხარდაუჭერელია" -#: commands/copyto.c:474 +#: commands/copyto.c:753 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "\"DO INSTEAD\" -ის პირობითი წესები COPY-სთვის მხარდაუჭერელია" -#: commands/copyto.c:478 +#: commands/copyto.c:757 #, c-format -msgid "DO ALSO rules are not supported for the COPY" -msgstr "DO ALSO -ის წესები COPY-სთვის მხარდაუჭერელია" +msgid "DO ALSO rules are not supported for COPY" +msgstr "DO ALSO -ის წესები COPY-სთვის მხარდაჭერილი არაა" -#: commands/copyto.c:483 +#: commands/copyto.c:762 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "ერთზე მეტი გამოსახულების მქონე DO INSTEAD-ის წესები COPY-ისთვის მხარდაუჭერელია" -#: commands/copyto.c:493 +#: commands/copyto.c:772 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) მხარდაუჭერელია" -#: commands/copyto.c:511 +#: commands/copyto.c:778 +#, c-format +msgid "COPY query must not be a utility command" +msgstr "" + +#: commands/copyto.c:794 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "COPY მოთხოვნას RETURNING პირობა აუცილებლად უნდა გააჩნდეს" -#: commands/copyto.c:540 +#: commands/copyto.c:823 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "" -#: commands/copyto.c:596 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "FORCE_QUOTE სვეტი \"%s\" COPY-ის მიერ მითითებული არაა" - -#: commands/copyto.c:666 +#: commands/copyto.c:951 #, c-format msgid "relative path not allowed for COPY to file" msgstr "ფაილში COPY-სთვის შედარებითი ბილიკის მითითება დაუშვებელია" -#: commands/copyto.c:685 +#: commands/copyto.c:970 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "ფაილის (\"%s\") ჩასაწერად გახსნა შეუძლებელია: %m" -#: commands/copyto.c:688 +#: commands/copyto.c:973 #, c-format msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy." msgstr "ინსტრუქცია 'COPY TO' PostgreSQL-ის სერვერის პროცესს ფაილში ჩაწერას უბრძანებს. შეიძლება გნებავთ კლიენტის მხარე, როგორიცაა psql-ის \\copy." -#: commands/createas.c:210 commands/createas.c:518 +#: commands/createas.c:212 commands/createas.c:524 #, c-format msgid "too many column names were specified" msgstr "მითითებულია მეტისმეტად ბევრი სვეტის სახელი" -#: commands/createas.c:541 +#: commands/createas.c:547 #, c-format msgid "policies not yet implemented for this command" msgstr "ამ ბრძანებისთვის წესები ჯერ არ არსებობს" -#: commands/dbcommands.c:829 +#: commands/dbcommands.c:843 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION მხარდაჭერილი აღარაა" -#: commands/dbcommands.c:830 +#: commands/dbcommands.c:844 #, c-format msgid "Consider using tablespaces instead." msgstr "მის მაგიერ სჯობს ცხრილის სივრცეები გამოიყენოთ." -#: commands/dbcommands.c:855 +#: commands/dbcommands.c:869 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "%u-ზე მცირე OID-ები დაცულია სისტემური ობიექტებისთვის" -#: commands/dbcommands.c:886 utils/adt/ascii.c:146 +#: commands/dbcommands.c:900 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "\"%d\" კოდირების სწორ კოდს არ წარმოადგენს" -#: commands/dbcommands.c:897 utils/adt/ascii.c:128 +#: commands/dbcommands.c:911 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "\"%s\" კოდირების სწორ სახელს არ წარმოადგენს" -#: commands/dbcommands.c:931 +#: commands/dbcommands.c:945 #, c-format msgid "unrecognized locale provider: %s" msgstr "ენის უცნობი მომწოდებელი: %s" -#: commands/dbcommands.c:944 commands/dbcommands.c:2402 commands/user.c:299 commands/user.c:739 +#: commands/dbcommands.c:958 commands/dbcommands.c:2428 commands/user.c:300 commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "კავშირის არასწორი ლიმიტი: %d" -#: commands/dbcommands.c:965 +#: commands/dbcommands.c:979 #, c-format msgid "permission denied to create database" msgstr "ბაზის შექმნის წვდომა აკრძალულია" -#: commands/dbcommands.c:989 +#: commands/dbcommands.c:1003 #, c-format msgid "template database \"%s\" does not exist" msgstr "შაბლონური ბაზა \"%s\" არ არსებობს" -#: commands/dbcommands.c:999 +#: commands/dbcommands.c:1013 #, c-format msgid "cannot use invalid database \"%s\" as template" msgstr "არასწორი მონაცემთა ბაზის \"%s\" შაბლონად გამოყენება შეუძლებელია" -#: commands/dbcommands.c:1000 commands/dbcommands.c:2431 utils/init/postinit.c:1112 +#: commands/dbcommands.c:1014 commands/dbcommands.c:2458 utils/init/postinit.c:1106 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "არასწორი მონაცემთა ბაზების წასაშლელად გამოიყენეთ ბრძანება DROP DATABASE." -#: commands/dbcommands.c:1011 +#: commands/dbcommands.c:1025 #, c-format msgid "permission denied to copy database \"%s\"" msgstr "ბაზის (\"%s\") კოპირების წვდომა აკრძალულია" -#: commands/dbcommands.c:1028 +#: commands/dbcommands.c:1042 #, c-format msgid "invalid create database strategy \"%s\"" msgstr "ბაზის შექმნის არასწორი სტრატეგია \"%s\"" -#: commands/dbcommands.c:1029 +#: commands/dbcommands.c:1043 #, c-format msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "სწორი სტრატეგიებია \"wal_log\" და \"file_copy\"." -#: commands/dbcommands.c:1050 +#: commands/dbcommands.c:1064 #, c-format msgid "invalid server encoding %d" msgstr "სერვერის არასწორი კოდირება %d" -#: commands/dbcommands.c:1056 +#: commands/dbcommands.c:1070 #, c-format msgid "invalid LC_COLLATE locale name: \"%s\"" msgstr "არასწორი LC_COLLATE ლოკალის სახელი: \"%s\"" -#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 +#: commands/dbcommands.c:1071 commands/dbcommands.c:1077 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." msgstr "თუ ლოკალის სახელი მხოლოდ ICU-სთვისა დამახასიათებელი, ICU_LOCALE გამოიყენეთ." -#: commands/dbcommands.c:1062 +#: commands/dbcommands.c:1076 #, c-format msgid "invalid LC_CTYPE locale name: \"%s\"" msgstr "არასწორი LC_TYPE ლოკალის სახელი: \"%s\"" -#: commands/dbcommands.c:1074 +#: commands/dbcommands.c:1088 #, c-format msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" msgstr "BUILTIN_LOCALE-ის მითითება შეუძლებელია, სანამ ლოკალის მომწოდებელი builtin არაა" -#: commands/dbcommands.c:1082 +#: commands/dbcommands.c:1096 #, c-format msgid "ICU locale cannot be specified unless locale provider is ICU" msgstr "ICU-ის ენის მითითება მანამდე, სანამ ლოკალის მომწოდებელი ICU არაა, შეუძლებელია" -#: commands/dbcommands.c:1100 +#: commands/dbcommands.c:1114 #, c-format msgid "LOCALE or BUILTIN_LOCALE must be specified" msgstr "LOCALE-ის ან BUILTIN_LOCALE-ის მითითება აუცილებელია" -#: commands/dbcommands.c:1109 +#: commands/dbcommands.c:1123 #, c-format msgid "encoding \"%s\" is not supported with ICU provider" msgstr "მონაცემთა ბაზის კოდირება \"%s\" ICU მომწოდებელთან ერთად მხარდაჭერილი არაა" -#: commands/dbcommands.c:1119 +#: commands/dbcommands.c:1133 #, c-format msgid "LOCALE or ICU_LOCALE must be specified" msgstr "LOCALE-ის ან ICU_LOCALE-ის მითითება აუცილებელია" -#: commands/dbcommands.c:1163 +#: commands/dbcommands.c:1177 #, c-format msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" msgstr "ახალი კოდირება (%s) შაბლონის ბაზის (%s) კოდირებასთან თავსებადი არაა" -#: commands/dbcommands.c:1166 +#: commands/dbcommands.c:1180 #, c-format msgid "Use the same encoding as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე კოდირება, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1171 +#: commands/dbcommands.c:1185 #, c-format msgid "new collation (%s) is incompatible with the collation of the template database (%s)" msgstr "ახალი კოლაცია (%s) შაბლონის ბაზის (%s) კოლაციასთან თავსებადი არაა" -#: commands/dbcommands.c:1173 +#: commands/dbcommands.c:1187 #, c-format msgid "Use the same collation as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე კოლაცია, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1178 +#: commands/dbcommands.c:1192 #, c-format msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)" msgstr "ახალი LC_TYPE (%s) შაბლონის ბაზის (%s) LC_TYPE-სთან თავსებადი არაა" -#: commands/dbcommands.c:1180 +#: commands/dbcommands.c:1194 #, c-format msgid "Use the same LC_CTYPE as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე LC_CTYPE, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1185 +#: commands/dbcommands.c:1199 #, c-format msgid "new locale provider (%s) does not match locale provider of the template database (%s)" msgstr "ახალი ლოკალის მომწოდებელი (%s) შაბლონის ბაზის (%s) ლოკალის მომწოდებელს არ ემთხვევა" -#: commands/dbcommands.c:1187 +#: commands/dbcommands.c:1201 #, c-format msgid "Use the same locale provider as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე ლოკალის მომწოდებელი, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1199 +#: commands/dbcommands.c:1213 #, c-format msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)" msgstr "ახალი ICU ლოკალი (%s) შაბლონის ბაზის (%s) ICU ლოკალთან თავსებადი არაა" -#: commands/dbcommands.c:1201 +#: commands/dbcommands.c:1215 #, c-format msgid "Use the same ICU locale as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე ICU ლოკალი, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1212 +#: commands/dbcommands.c:1226 #, c-format msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)" msgstr "ახალი ICU კოლაციის წესები (%s) შაბლონის ბაზის (%s) ICU კოლაციის წესებთან თავსებადი არაა" -#: commands/dbcommands.c:1214 +#: commands/dbcommands.c:1228 #, c-format msgid "Use the same ICU collation rules as in the template database, or use template0 as template." msgstr "გამოიყენეთ იგივე ICU კოლაციის წესები, რაც შაბლონის ბაზას გააჩნია, ან შაბლონად template0 გამოიყენეთ." -#: commands/dbcommands.c:1243 +#: commands/dbcommands.c:1257 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" msgstr "შაბლონის ბაზას \"%s\" კოლაცია გააჩნია, მაგრამ ნამდვილი კოლაციის ვერსიის დადგენა შეუძლებელია" -#: commands/dbcommands.c:1248 +#: commands/dbcommands.c:1262 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "შაბლონული ბაზის (%s) კოლაციის ვერსია არ ემთხვევა" -#: commands/dbcommands.c:1250 +#: commands/dbcommands.c:1264 #, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." msgstr "ნიმუში ბაზა შეიქმნა კოლაციის ვერსიით %s, მაგრამ ოპერაციული სისტემის ვერსიაა %s." -#: commands/dbcommands.c:1253 +#: commands/dbcommands.c:1267 #, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "სანიმუშე ბაზაში ყველა ობიექტი, რომლებიც ნაგულისხმევ კოლაციას იყენებს, თავიან ააგეთ და გაუშვით ALTER DATABASE %s REFRESH COLLATION VERSION, ან PostgreSQL სწორი ბიბლიოთეკის ვერსიით ააგეთ." -#: commands/dbcommands.c:1298 commands/dbcommands.c:2031 +#: commands/dbcommands.c:1312 commands/dbcommands.c:2055 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "pg_global არ შეიძლება გამოყენებულ იქნას როგორც ნაგულისხმევი ცხრილის სივრცე" -#: commands/dbcommands.c:1324 +#: commands/dbcommands.c:1338 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "ცხრილების ახალი ნაგულისხმევი სივრცის \"%s\" მინიჭება შეუძლებელია" -#: commands/dbcommands.c:1326 +#: commands/dbcommands.c:1340 #, c-format msgid "There is a conflict because database \"%s\" already has some tables in this tablespace." msgstr "არსებობს კონფლიქტი, რადგან მონაცემთა ბაზას \"%s\" ამ ცხრილების სივრცეში ცხრილები უკვე გააჩნია." -#: commands/dbcommands.c:1356 commands/dbcommands.c:1904 +#: commands/dbcommands.c:1370 commands/dbcommands.c:1926 #, c-format msgid "database \"%s\" already exists" msgstr "ბაზა \"%s\" უკვე არსებობს" -#: commands/dbcommands.c:1370 +#: commands/dbcommands.c:1384 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "საწყის ბაზა %s-სთან ამჟამად სხვა მომხმარებლებიცაა მიერთებული" -#: commands/dbcommands.c:1392 +#: commands/dbcommands.c:1406 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "ბაზის OID %u უკვე გამოიყენება ბაზის \"%s\" მიერ" -#: commands/dbcommands.c:1398 +#: commands/dbcommands.c:1412 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "მონაცემების საქაღალდე მითითებული OID-ით (%u) უკვე არსებობს" -#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 utils/adt/pg_locale.c:2565 +#: commands/dbcommands.c:1585 commands/dbcommands.c:1600 utils/adt/pg_locale.c:1517 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "კოდირება (%s) ენას (%s) არ ემთხვევა" -#: commands/dbcommands.c:1574 +#: commands/dbcommands.c:1588 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "\"LC_CTYPE\"-ის არჩეულ პარამეტრს სჭირდება კოდირება: \"%s\"." -#: commands/dbcommands.c:1589 +#: commands/dbcommands.c:1603 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "\"LC_COLLATE\"-ის არჩეულ პარამეტრს სჭირდება კოდირება: \"%s\"." -#: commands/dbcommands.c:1670 +#: commands/dbcommands.c:1686 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "მონაცემთა ბაზა \"%s\" არ არსებობს, გამოტოვება" -#: commands/dbcommands.c:1694 +#: commands/dbcommands.c:1710 #, c-format msgid "cannot drop a template database" msgstr "შაბლონური ბაზის წაშლა შეუძლებელია" -#: commands/dbcommands.c:1700 +#: commands/dbcommands.c:1716 #, c-format msgid "cannot drop the currently open database" msgstr "ღია ბაზის წაშლა შეუძლებელია" -#: commands/dbcommands.c:1713 +#: commands/dbcommands.c:1729 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "ბაზა %s აქტიური ლოგიკური რეპლიკაციის სლოტის მიერ გამოიყენება" -#: commands/dbcommands.c:1715 +#: commands/dbcommands.c:1731 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." msgstr[0] "ხელმისაწვდომია %d აქტიური სლოტი." msgstr[1] "ხელმისაწვდომია %d აქტიური სლოტი." -#: commands/dbcommands.c:1729 +#: commands/dbcommands.c:1745 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "ბაზა %s ლოგიკური რეპლიკაციის გამოწერის მიერ გამოიყენება" -#: commands/dbcommands.c:1731 +#: commands/dbcommands.c:1747 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." msgstr[0] "აღმოჩენილია %d გამოწერა." msgstr[1] "აღმოჩენილია %d გამოწერა." -#: commands/dbcommands.c:1752 commands/dbcommands.c:1926 commands/dbcommands.c:2053 +#: commands/dbcommands.c:1768 commands/dbcommands.c:1948 commands/dbcommands.c:2077 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "ბაზა %s-სთან ამჟამად სხვა მომხმარებლებიცაა მიერთებული" -#: commands/dbcommands.c:1886 +#: commands/dbcommands.c:1908 #, c-format msgid "permission denied to rename database" msgstr "ბაზის სახელის გადარქმევის წვდომა აკრძალულია" -#: commands/dbcommands.c:1915 +#: commands/dbcommands.c:1937 #, c-format msgid "current database cannot be renamed" msgstr "მიმდინარე ბაზის სახელის გადარქმევა შეუძლებელია" -#: commands/dbcommands.c:2009 +#: commands/dbcommands.c:2033 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "ღია ბაზის ცხრილების სივრცის შეცვლა შეუძლებელია" -#: commands/dbcommands.c:2115 +#: commands/dbcommands.c:2139 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "ბაზის (%s) ზოგიერთი ურთიერთობა ცხრილების სივრცეში \"%s\" უკვე იმყოფება" -#: commands/dbcommands.c:2117 +#: commands/dbcommands.c:2141 #, c-format msgid "You must move them back to the database's default tablespace before using this command." msgstr "ამ ბრძანების გამოყენებამდე ბაზის ნაგულისხმევ ცხრილების სივრცეში უნდა დაბრუნდეთ." -#: commands/dbcommands.c:2244 commands/dbcommands.c:2979 commands/dbcommands.c:3279 commands/dbcommands.c:3392 +#: commands/dbcommands.c:2270 commands/dbcommands.c:3013 commands/dbcommands.c:3313 commands/dbcommands.c:3426 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "ძველი ბაზის საქაღალდეში \"%s\" შეიძლება რამდენიმე გამოუსადეგარი ფაილი დარჩა" -#: commands/dbcommands.c:2305 +#: commands/dbcommands.c:2331 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "\"DROP DATABASE\"-ის უცნობი პარამეტრი \"%s\"" -#: commands/dbcommands.c:2383 +#: commands/dbcommands.c:2409 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "პარამეტრის \"%s\" მითითება სხვა პარამეტრებთან ერთად აკრძალულია" -#: commands/dbcommands.c:2430 +#: commands/dbcommands.c:2457 #, c-format msgid "cannot alter invalid database \"%s\"" msgstr "არასწორი ბაზის (\"%s\") შეცვლა შეუძლებელია" -#: commands/dbcommands.c:2447 +#: commands/dbcommands.c:2474 #, c-format msgid "cannot disallow connections for current database" msgstr "მიმდინარე ბაზასთან დაკავშირების უარყოფა შეუძლებელია" -#: commands/dbcommands.c:2673 +#: commands/dbcommands.c:2704 #, c-format msgid "permission denied to change owner of database" msgstr "ბაზის მფლობელის შეცვლის წვდომა აკრძალულია" -#: commands/dbcommands.c:3085 +#: commands/dbcommands.c:3119 #, c-format msgid "There are %d other session(s) and %d prepared transaction(s) using the database." msgstr "ამ ბაზას %d სხვა სესია და %d მომზადებული ტრანზაქცია იყენებს." -#: commands/dbcommands.c:3088 +#: commands/dbcommands.c:3122 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." msgstr[0] "%d სხვა სესია, რომელიც ბაზას იყენებს." msgstr[1] "%d სხვა სესია, რომელიც ბაზას იყენებს." -#: commands/dbcommands.c:3093 storage/ipc/procarray.c:3847 +#: commands/dbcommands.c:3127 storage/ipc/procarray.c:3860 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." msgstr[0] "ბაზას %d მომზადებული ტრანზაქცია იყენებს." msgstr[1] "ბაზას %d მომზადებული ტრანზაქცია იყენებს." -#: commands/dbcommands.c:3235 +#: commands/dbcommands.c:3269 #, c-format msgid "missing directory \"%s\"" msgstr "ნაკლული საქაღალდე \"%s\"" -#: commands/dbcommands.c:3293 commands/tablespace.c:184 commands/tablespace.c:633 +#: commands/dbcommands.c:3327 commands/tablespace.c:184 commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "საქაღალდის \"%s\" პოვნა შეუძლებელია: %m" -#: commands/define.c:53 commands/define.c:257 commands/define.c:289 commands/define.c:317 commands/define.c:363 +#: commands/define.c:40 commands/define.c:244 commands/define.c:276 commands/define.c:304 commands/define.c:350 #, c-format msgid "%s requires a parameter" msgstr "%s მოითხოვს პარამეტრს" -#: commands/define.c:86 commands/define.c:97 commands/define.c:191 commands/define.c:209 commands/define.c:224 commands/define.c:242 -#, c-format -msgid "%s requires a numeric value" -msgstr "%s მოითხოვს რიცხვით მნიშვნელობას" - -#: commands/define.c:153 +#: commands/define.c:140 #, c-format msgid "%s requires a Boolean value" msgstr "%s მოითხოვს ლოგიკურ მნიშვნელობას" -#: commands/define.c:167 commands/define.c:176 commands/define.c:326 +#: commands/define.c:154 commands/define.c:163 commands/define.c:313 #, c-format msgid "%s requires an integer value" msgstr "%s-ის მნიშვნელობა მთელი რიცხვი უნდა იყოს" -#: commands/define.c:271 +#: commands/define.c:258 #, c-format msgid "argument of %s must be a name" msgstr "%s-ის არგუმენტი სახელი უნდა იყოს" -#: commands/define.c:301 +#: commands/define.c:288 #, c-format msgid "argument of %s must be a type name" msgstr "%s-ის არგუმენტი ტიპის სახელი უნდა იყოს" -#: commands/define.c:347 +#: commands/define.c:334 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "%s-ის არასწორი არგუმენტი: \"%s\"" -#: commands/dropcmds.c:96 commands/functioncmds.c:1382 utils/adt/ruleutils.c:2909 +#: commands/dropcmds.c:96 commands/functioncmds.c:1400 utils/adt/ruleutils.c:2956 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\" აგრეგატული ფუნქციაა" @@ -7683,17 +7684,17 @@ msgstr "\"%s\" აგრეგატული ფუნქციაა" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "აგრეგირებული ფუნქციების წასაშლელად გამოიყენეთ DROP AGGREGATE." -#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3865 commands/tablecmds.c:4023 commands/tablecmds.c:4075 commands/tablecmds.c:17061 tcop/utility.c:1325 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:4014 commands/tablecmds.c:4175 commands/tablecmds.c:4227 commands/tablecmds.c:18887 tcop/utility.c:1328 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "ურთიერთობა \"%s\" არ არსებობს, გამოტოვებს" -#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1397 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1469 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "სქემა \"%s\" არ არსებობს, გამოტოვება" -#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:289 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "ტიპი \"%s\" არ არსებობს, გამოტოვება" @@ -7713,7 +7714,7 @@ msgstr "კოლაცია \"%s\" არ არსებობს, გამ msgid "conversion \"%s\" does not exist, skipping" msgstr "გადაყვანა\"%s\" არ არსებობს, გამოტოვება" -#: commands/dropcmds.c:288 commands/statscmds.c:664 +#: commands/dropcmds.c:288 commands/statscmds.c:682 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "სტატისტიკის ობიექტი \"%s\" არ არსებობს, გამოტოვება" @@ -7869,347 +7870,347 @@ msgstr "მოვლენის ტრიგერები %s-ისთვი msgid "filter variable \"%s\" specified more than once" msgstr "ფილტრის ცვლადი ერთზე მეტჯერაა მითითებული: %s" -#: commands/event_trigger.c:435 commands/event_trigger.c:487 commands/event_trigger.c:581 +#: commands/event_trigger.c:438 commands/event_trigger.c:490 commands/event_trigger.c:584 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "მოვლენის ტრიგერი არ არსებობს: \"%s\"" -#: commands/event_trigger.c:519 +#: commands/event_trigger.c:522 #, c-format msgid "event trigger with OID %u does not exist" msgstr "მოვლენის ტრიგერი OID-ით %u არ არსებობს" -#: commands/event_trigger.c:549 +#: commands/event_trigger.c:552 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "მოვლენის ტრიგერის მფლობელის შეცვლის წვდომა აკრძალულია: %s" -#: commands/event_trigger.c:551 +#: commands/event_trigger.c:554 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "მოვლენის ტრიგერის მფლობელი ზემომხმარებელი უნდა იყოს." -#: commands/event_trigger.c:1411 +#: commands/event_trigger.c:1404 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s-ის გამოძახება sql_drop მოვლენის ტრიგერიდან შეგიძლიათ" -#: commands/event_trigger.c:1504 commands/event_trigger.c:1525 +#: commands/event_trigger.c:1497 commands/event_trigger.c:1518 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%s-ის გამოძახება table_rewrite მოვლენის ტრიგერიდან შეგიძლიათ" -#: commands/event_trigger.c:1938 +#: commands/event_trigger.c:1931 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s-ის გამოძახება მხოლოდ მოვლენის ტრიგერის ფუნქციიდან შეგიძლიათ" -#: commands/explain.c:240 commands/explain.c:265 +#: commands/explain_state.c:133 commands/explain_state.c:158 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "\"EXPLAIN\"-ის უცნობი პარამეტრი \"%s\": \"%s\"" -#: commands/explain.c:272 +#: commands/explain_state.c:165 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "\"EXPLAIN\"-ის უცნობი პარამეტრი \"%s\"" -#: commands/explain.c:281 -#, c-format -msgid "EXPLAIN option WAL requires ANALYZE" -msgstr "EXPLAIN -ის პარამეტრ WAL-ს ANALYZE სჭირდება" - -#: commands/explain.c:290 +#: commands/explain_state.c:174 commands/explain_state.c:186 commands/explain_state.c:192 #, c-format -msgid "EXPLAIN option TIMING requires ANALYZE" -msgstr "EXPLAIN -ის პარამეტრ TIMING-ს ANALYZE სჭირდება" +msgid "EXPLAIN option %s requires ANALYZE" +msgstr "EXPLAIN -ის პარამეტრს %s ANALYZE სჭირდება" -#: commands/explain.c:296 -#, c-format -msgid "EXPLAIN option SERIALIZE requires ANALYZE" -msgstr "EXPLAIN-ის პარამეტრს SERIALIZE 'ANALYZE' სჭირდება" - -#: commands/explain.c:302 +#: commands/explain_state.c:198 #, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" msgstr "EXPLAIN-ის პარამეტრები ANALYZE და GENERIC_PLAN ერთად არ შეიძლება, გამოიყენოთ" -#: commands/extension.c:178 commands/extension.c:3031 +#: commands/extension.c:174 commands/extension.c:3299 #, c-format msgid "extension \"%s\" does not exist" msgstr "გაფართოება %s არ არსებობს" -#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 commands/extension.c:308 +#: commands/extension.c:239 commands/extension.c:248 commands/extension.c:260 commands/extension.c:270 #, c-format msgid "invalid extension name: \"%s\"" msgstr "გაფართოების არასწორი სახელი: \"%s\"" -#: commands/extension.c:278 +#: commands/extension.c:240 #, c-format msgid "Extension names must not be empty." msgstr "გაფართოების სახელები ცარიელი არ უნდა იყოს." -#: commands/extension.c:287 +#: commands/extension.c:249 #, c-format msgid "Extension names must not contain \"--\"." msgstr "გაფართოების სახელები არ უნდა შეიცავდეს \"---\"." -#: commands/extension.c:299 +#: commands/extension.c:261 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "გაფართოების სახელები არ უნდა დაიწყოს ან დასრულდეს \"-\"." -#: commands/extension.c:309 +#: commands/extension.c:271 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "გაფართოების სახელები არ უნდა შეიცავდეს საქაღალდის გამყოფი სიმბოლოს." -#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 commands/extension.c:352 +#: commands/extension.c:286 commands/extension.c:295 commands/extension.c:304 commands/extension.c:314 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "გაფართოების არასწორი ვერსია: \"%s\"" -#: commands/extension.c:325 +#: commands/extension.c:287 #, c-format msgid "Version names must not be empty." msgstr "ვერსიის სახელები არ უნდა იყოს ცარიელი." -#: commands/extension.c:334 +#: commands/extension.c:296 #, c-format msgid "Version names must not contain \"--\"." msgstr "ვერსიის სახელები არ უნდა შეიცავდეს \"---\"." -#: commands/extension.c:343 +#: commands/extension.c:305 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "ვერსიის სახელები არ უნდა დაიწყოს ან დასრულდეს \"-\"." -#: commands/extension.c:353 +#: commands/extension.c:315 #, c-format msgid "Version names must not contain directory separator characters." msgstr "ვერსიის სახელები არ უნდა შეიცავდეს საქაღალდის გამყოფ სიმბოლოებს." -#: commands/extension.c:507 +#: commands/extension.c:549 #, c-format msgid "extension \"%s\" is not available" msgstr "გაფართოება \"%s\" ხელმიუწვდომელია" -#: commands/extension.c:508 -#, c-format -msgid "Could not open extension control file \"%s\": %m." -msgstr "გაფართოების კონტროლის ფაილის (\"%s\") გახსნის შეცდომა: %m." - -#: commands/extension.c:510 +#: commands/extension.c:550 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." msgstr "ჯერ გაფართოება უნდა დააყენოთ სისტემაზე, სადაც PostgreSQL-ია გაშვებული." -#: commands/extension.c:514 +#: commands/extension.c:564 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "გაფართოების კონტროლის ფაილის (\"%s\") გახსნის შეცდომა: %m" -#: commands/extension.c:537 commands/extension.c:547 +#: commands/extension.c:587 commands/extension.c:597 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "პარამეტრს \"%s\" მეორადი გაფართოების კონტროლის ფაილში ვერ დააყენებთ" -#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 utils/misc/guc.c:3147 +#: commands/extension.c:619 commands/extension.c:627 commands/extension.c:635 utils/misc/guc.c:3144 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "პარამეტრს %s ლოგიკური მნიშვნელობა სჭირდება" -#: commands/extension.c:594 +#: commands/extension.c:644 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" კოდირების სწორ სახელს არ წარმოადგენს" -#: commands/extension.c:608 commands/extension.c:623 +#: commands/extension.c:658 commands/extension.c:673 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "პარამეტრი \"%s\" გაფართოებების სახელების სიას უნდა შეიცავდეს" -#: commands/extension.c:630 +#: commands/extension.c:680 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "უცნობი პარამეტრი \"%s\" ფაილში \"%s\"" -#: commands/extension.c:639 +#: commands/extension.c:689 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "როცა \"relocatable\" ჭეშმარიტია, პარამეტრს \"schema\" ვერ მიუთითებთ" -#: commands/extension.c:817 +#: commands/extension.c:865 +#, c-format +msgid "SQL statement \"%.*s\"" +msgstr "SQL ოპერატორი \"%.*s\"" + +#: commands/extension.c:894 +#, c-format +msgid "extension script file \"%s\", near line %d" +msgstr "გაფართოების სკრიპტის ფაილი \"%s\" ხაზთან %d" + +#: commands/extension.c:898 +#, c-format +msgid "extension script file \"%s\"" +msgstr "გაფართოების სკრიპტის ფაილი \"%s\"" + +#: commands/extension.c:1012 #, c-format msgid "transaction control statements are not allowed within an extension script" msgstr "გაფართოების სკრიპტში ტრანზაქციის კონტროლის გამოსახულებები დაშვებული არაა" -#: commands/extension.c:897 +#: commands/extension.c:1094 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "გაფართოების (\"%s\") შექმნის წვდომა აკრძალულა" -#: commands/extension.c:900 +#: commands/extension.c:1097 #, c-format msgid "Must have CREATE privilege on current database to create this extension." msgstr "ამ გაფართოების შესაქმნელად აუცილებელია მიმდინარე ბაზაზე პრივილეგია CREATE-ის ქონა." -#: commands/extension.c:901 +#: commands/extension.c:1098 #, c-format msgid "Must be superuser to create this extension." msgstr "გაფართოების შესაქმნელად საჭიროა ზემომხმარებლის უფლებები." -#: commands/extension.c:905 +#: commands/extension.c:1102 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "გაფართოების (\"%s\") განახლების წვდომა აკრძალულია" -#: commands/extension.c:908 +#: commands/extension.c:1105 #, c-format msgid "Must have CREATE privilege on current database to update this extension." msgstr "ამ გაფართოების განახლებისთვის აუცილებელია მიმდინარე ბაზაზე პრივილეგია CREATE-ის ქონა." -#: commands/extension.c:909 +#: commands/extension.c:1106 #, c-format msgid "Must be superuser to update this extension." msgstr "გაფართოების გასაახლებლად საჭიროა ზემომხმარებლის უფლებები." -#: commands/extension.c:1042 +#: commands/extension.c:1239 #, c-format msgid "invalid character in extension owner: must not contain any of \"%s\"" msgstr "არასწორი სიმბოლო გაფართოების მფლობელში: არ უნდა შეიცავდეს სიმბოლოებს სიიდან \"%s\"" -#: commands/extension.c:1066 commands/extension.c:1093 +#: commands/extension.c:1263 commands/extension.c:1290 #, c-format msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" msgstr "არასწორი სიმბოლო გაფართოებაში \"%s\": სქემა: არ უნდა შეიცავდეს სიმბოლოებს სიიდან \"%s\"" -#: commands/extension.c:1288 +#: commands/extension.c:1485 #, c-format msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgstr "გაფართოებას \"%s\" ვერსიიდან \"%s\" ვერსიამდე \"%s\" განახლების ბილიკი არ გააჩნია" -#: commands/extension.c:1496 commands/extension.c:3089 +#: commands/extension.c:1693 commands/extension.c:3357 #, c-format msgid "version to install must be specified" msgstr "საჭიროა დასაყენებელი ვერსიის მითითება" -#: commands/extension.c:1533 +#: commands/extension.c:1730 #, c-format msgid "extension \"%s\" has no installation script nor update path for version \"%s\"" msgstr "გაფართოებას \"%s\" ვერსიისთვის \"%s\" არც დაყენების სკრიპტი გააჩნია, არც განახლების ბილიკი" -#: commands/extension.c:1567 +#: commands/extension.c:1764 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "გაფართოება \"%s\" დაყენებული უნდა იყოს სქემაში \"%s\"" -#: commands/extension.c:1727 +#: commands/extension.c:1924 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "აღმოჩენილია ციკლური დამოკიდებულებები \"%s\" და \"%s\" გაფართოებებს შორის" -#: commands/extension.c:1732 +#: commands/extension.c:1929 #, c-format msgid "installing required extension \"%s\"" msgstr "მოთხოვნილი გაფართოების დაყენება: \"%s\"" -#: commands/extension.c:1755 +#: commands/extension.c:1952 #, c-format msgid "required extension \"%s\" is not installed" msgstr "მოთხოვნილი გაფართოება დაყენებული არაა: %s" -#: commands/extension.c:1758 +#: commands/extension.c:1955 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "საჭირო გაფართოებების დასაყენებლად გამოიყენეთ CREATE EXTENSION ... CASCADE." -#: commands/extension.c:1793 +#: commands/extension.c:1990 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "გაფართოება \"%s\" უკვე არსებობს, გამოტოვება" -#: commands/extension.c:1800 +#: commands/extension.c:1997 #, c-format msgid "extension \"%s\" already exists" msgstr "გაფართოება \"%s\" უკვე არსებობს" -#: commands/extension.c:1811 +#: commands/extension.c:2008 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "ჩადგმული CREATE EXTENSION მხარდაუჭერელია" -#: commands/extension.c:1975 +#: commands/extension.c:2172 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "გაფართოების \"%s\" წაშლა შეუძლებელია, რადგან მიმდინარეობს მისი ჩასწორება" -#: commands/extension.c:2450 +#: commands/extension.c:2665 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "%s-ის გამოძახება მხოლოდ CREATE EXTENSION-ის მიერ შესრულებულ SQL სკრიპტიდან შეგიძლიათ" -#: commands/extension.c:2462 +#: commands/extension.c:2677 #, c-format msgid "OID %u does not refer to a table" msgstr "OID %u ცხრილს არ ეხება" -#: commands/extension.c:2467 +#: commands/extension.c:2682 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "ცხრილი (%s) არ წარმოადგენს იმ გაფართოების წევრს, რომლის შექმნაც მიმდინარეობს" -#: commands/extension.c:2813 +#: commands/extension.c:3081 #, c-format msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema" msgstr "გაფართოების (\"%s\") სქემაში (\"%s\") გადატანა შეუძლებელია იმიტომ, რომ გაფართოება სქემას შეიცავს" -#: commands/extension.c:2854 commands/extension.c:2948 +#: commands/extension.c:3122 commands/extension.c:3216 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "გაფართოებას SET SCHEMA-ის მხარდაჭერა არ გააჩნია: %s" -#: commands/extension.c:2911 +#: commands/extension.c:3179 #, c-format msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" msgstr "გაფართოება \"%s\"-ის SET SCHEMA შეუძლებელია, რადგან ეს იკრძალება სხვა გაფართოებების მიერ" -#: commands/extension.c:2913 +#: commands/extension.c:3181 #, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." msgstr "გაფართოება \"%s\" გაფართოების \"%s\" გადაადგილებას არ მოითხოვს." -#: commands/extension.c:2950 +#: commands/extension.c:3218 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "%s არ წარმოადგენს გაფართოების სქემას \"%s\"" -#: commands/extension.c:3011 +#: commands/extension.c:3279 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "ჩადგმული ALTER EXTENSION მხარდაუჭერელია" -#: commands/extension.c:3100 +#: commands/extension.c:3368 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "გაფართოების %2$s ვერსია %1$s უკვე დაყენებულია" -#: commands/extension.c:3311 +#: commands/extension.c:3579 #, c-format msgid "cannot add an object of this type to an extension" msgstr "ამ ტიპის ობიექტის გაფართოებაზე დამატება შეუძლებელია" -#: commands/extension.c:3409 +#: commands/extension.c:3677 #, c-format msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension" msgstr "სქემის (\"%s\") გაფართოებაში (\"%s\") ჩამატება შეუძლებელია, რადგან სქემა გაფართოებას შეიცავს" -#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#: commands/extension.c:3759 commands/typecmds.c:4033 utils/fmgr/funcapi.c:725 #, c-format msgid "could not find multirange type for data type %s" msgstr "მონაცემების ტიპისთვის %s მრავალდიაპაზონიანი ტიპი ვერ ვიპოვე" -#: commands/extension.c:3532 +#: commands/extension.c:3801 #, c-format msgid "file \"%s\" is too large" msgstr "%s: ფაილი ძალიან დიდია" @@ -8239,7 +8240,7 @@ msgstr "გარე მონაცემების გადამტან msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "გარე მონაცემების გადამტანის მფლობელი ზემომხმარებელი უნდა იყოს." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:681 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "გარე მონაცემების გადამტანი არ არსებობს: %s" @@ -8309,7 +8310,7 @@ msgstr "მომხმარებლის ბმა %s სერვერი msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "მომხმარებლის ბმა %s სერვერისთვის %s არ არსებობს, გამოტოვება" -#: commands/foreigncmds.c:1507 foreign/foreign.c:394 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "გარე-მონაცემების გადამტანს დამმუშავებელი არ გააჩნია: %s" @@ -8354,629 +8355,674 @@ msgstr "გარსის ტიპის აღწერის შექმნ msgid "SQL function cannot accept shell type %s" msgstr "SQL ფუნქციებს %s გარსის ტიპის მიღება არ შეუძლიათ" -#: commands/functioncmds.c:250 +#: commands/functioncmds.c:251 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "აგრეგატს არ შეუძლია ცარიელი ტიპის მიღება: %s" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:257 #, c-format msgid "argument type %s is only a shell" msgstr "არგუმენტის ტიპი %s მხოლოდ გარსია" -#: commands/functioncmds.c:265 +#: commands/functioncmds.c:268 #, c-format msgid "type %s does not exist" msgstr "ტიპი \"%s\" არ არსებობს" -#: commands/functioncmds.c:279 +#: commands/functioncmds.c:283 #, c-format msgid "aggregates cannot accept set arguments" msgstr "აგრეგატებს არგუმენტების სეტის მიღება არ შეუძლიათ" -#: commands/functioncmds.c:283 +#: commands/functioncmds.c:288 #, c-format msgid "procedures cannot accept set arguments" msgstr "პროცედურებს არგუმენტების სეტის მიღება არ შეუძლიათ" -#: commands/functioncmds.c:287 +#: commands/functioncmds.c:293 #, c-format msgid "functions cannot accept set arguments" msgstr "ფუნქციებს არგუმენტების სეტის მიღება არ შეუძლიათ" -#: commands/functioncmds.c:297 +#: commands/functioncmds.c:304 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "VARIADIC პარამეტრი ბოლო შეყვანის პარამეტრი უნდა იყოს" -#: commands/functioncmds.c:317 +#: commands/functioncmds.c:325 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "VARIADIC პარამეტრი ბოლო უნდა იყოს" -#: commands/functioncmds.c:342 +#: commands/functioncmds.c:351 #, c-format msgid "VARIADIC parameter must be an array" msgstr "VARIADIC პარამეტრი მასივი უნდა იყოს" -#: commands/functioncmds.c:387 +#: commands/functioncmds.c:397 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "პარამეტრის სახელი \"%s\" ერთზე მეტჯერ გამოიყენება" -#: commands/functioncmds.c:405 +#: commands/functioncmds.c:416 #, c-format msgid "only input parameters can have default values" msgstr "ნაგულისხმევი მნიშვნელობების დაყენება მხოლოდ შემომავალ პარამეტრებზეა შესაძლებელი" -#: commands/functioncmds.c:420 +#: commands/functioncmds.c:432 #, c-format msgid "cannot use table references in parameter default value" msgstr "ცხრილის ბმის პარამეტრის ნაგულისხმევ მნიშვნელობად გამოყენება შეუძლებელია" -#: commands/functioncmds.c:444 +#: commands/functioncmds.c:457 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "შეყვანის პარამეტრებში, მას შემდეგ, რაც ერთს აქვს ნაგულისხმევი მნიშვნელობა, ის სხვებსაც უნდა ჰქონდეთ" -#: commands/functioncmds.c:454 +#: commands/functioncmds.c:468 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "პროცედური OUT პარამეტრები ვერ გამოჩნდება ერთის შემდეგ, რომელსაც ნაგულისხმევი მნიშვნელობა გააჩნია" -#: commands/functioncmds.c:596 commands/functioncmds.c:775 +#: commands/functioncmds.c:611 commands/functioncmds.c:790 #, c-format msgid "invalid attribute in procedure definition" msgstr "პროცედურის აღწერაში ნაპოვნია არასწორი ატრიბუტი" -#: commands/functioncmds.c:692 +#: commands/functioncmds.c:707 #, c-format msgid "support function %s must return type %s" msgstr "მხარდაჭერის ფუნქციამ (%s) უნდა დააბრუნოს ტიპი %s" -#: commands/functioncmds.c:703 +#: commands/functioncmds.c:718 #, c-format msgid "must be superuser to specify a support function" msgstr "მხარდაჭერის ფუნქციის მისათითებლად ზემომხმარებლის წვდომელია საჭირო" -#: commands/functioncmds.c:824 commands/functioncmds.c:1427 +#: commands/functioncmds.c:839 commands/functioncmds.c:1445 #, c-format msgid "COST must be positive" msgstr "COST დადებითი უნდა იყოს" -#: commands/functioncmds.c:832 commands/functioncmds.c:1435 +#: commands/functioncmds.c:847 commands/functioncmds.c:1453 #, c-format msgid "ROWS must be positive" msgstr "ROWS დადებითი უნდა იყოს" -#: commands/functioncmds.c:861 +#: commands/functioncmds.c:876 #, c-format msgid "no function body specified" msgstr "ფუნქციის ტანი მითითებული არაა" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:881 #, c-format msgid "duplicate function body specified" msgstr "მითითებულია ფუნქციის დუბლირებული ტანი" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:886 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "" -#: commands/functioncmds.c:913 +#: commands/functioncmds.c:928 #, c-format msgid "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "ბრჭყალების არმქონე ტანის მატარებელ SQL ფუნქციას პოლიმორფული არგუმენტები არ შეიძლება ჰქონდეს" -#: commands/functioncmds.c:939 commands/functioncmds.c:958 +#: commands/functioncmds.c:954 commands/functioncmds.c:973 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%s ბრჭყალგარეშე SQL ფუნქციის სხეულში ჯერ მხარდაჭერილი არაა" -#: commands/functioncmds.c:986 +#: commands/functioncmds.c:1001 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "ენისთვის მხოლოდ ერთი AS არის საჭირო: %s" -#: commands/functioncmds.c:1091 +#: commands/functioncmds.c:1107 #, c-format msgid "no language specified" msgstr "ენა არ არის მითითებული" -#: commands/functioncmds.c:1099 commands/functioncmds.c:2104 commands/proclang.c:235 +#: commands/functioncmds.c:1115 commands/functioncmds.c:2135 commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "ენა \"%s\" არ არსებობს" -#: commands/functioncmds.c:1101 commands/functioncmds.c:2106 +#: commands/functioncmds.c:1117 commands/functioncmds.c:2137 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "ენის ბაზაში შესატვირთად გამოიყენეთ CREATE EXTENSION." -#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 +#: commands/functioncmds.c:1150 commands/functioncmds.c:1437 #, c-format msgid "only superuser can define a leakproof function" msgstr "leakproof ატრიბუტის მქონე ფუნქციის აღწერა მხოლოდ ზემომხმარებელს შეუძლია" -#: commands/functioncmds.c:1185 +#: commands/functioncmds.c:1202 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "\"OUT\" პარამეტრების გამო ფუნქციის შედეგის ტიპი %s უნდა იყოს" -#: commands/functioncmds.c:1198 +#: commands/functioncmds.c:1215 #, c-format msgid "function result type must be specified" msgstr "ფუნქციის შედეგის ტიპის მითითება აუცილებელია" -#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 +#: commands/functioncmds.c:1268 commands/functioncmds.c:1457 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS შესაფერისი არაა, როცა ფუნქცია სეტს არ აბრუნებს" -#: commands/functioncmds.c:1546 +#: commands/functioncmds.c:1564 #, c-format msgid "source data type %s is a pseudo-type" msgstr "საწყისი მონაცემთა ტიპი %s ფსევდო ტიპია" -#: commands/functioncmds.c:1552 +#: commands/functioncmds.c:1570 #, c-format msgid "target data type %s is a pseudo-type" msgstr "საბოლოო მონაცემთა ტიპი %s ფსევდო ტიპია" -#: commands/functioncmds.c:1576 +#: commands/functioncmds.c:1594 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "მოხდება გარდაქმნის დაიგნორება იმის გამო, რომ მონაცემების საწყისი ტიპი დომენს წარმოადგენს" -#: commands/functioncmds.c:1581 +#: commands/functioncmds.c:1599 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "მოხდება გარდაქმნის დაიგნორება იმის გამო, რომ მონაცემების სამიზნე ტიპი დომენს წარმოადგენს" -#: commands/functioncmds.c:1606 +#: commands/functioncmds.c:1624 #, c-format msgid "cast function must take one to three arguments" msgstr "გარდაქმნის ფუნქციამ ერთიდან სამ არგუმენტამდე უნდა მიიღოს" -#: commands/functioncmds.c:1612 +#: commands/functioncmds.c:1630 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "" -#: commands/functioncmds.c:1616 +#: commands/functioncmds.c:1634 #, c-format msgid "second argument of cast function must be type %s" msgstr "გარდაქმნის ფუნქციის მეორე არგუმენტის ტიპი %s უნდა იყოს" -#: commands/functioncmds.c:1621 +#: commands/functioncmds.c:1639 #, c-format msgid "third argument of cast function must be type %s" msgstr "გარდაქმნის ფუნქციის მესამე არგუმენტის ტიპი %s უნდა იყოს" -#: commands/functioncmds.c:1628 +#: commands/functioncmds.c:1646 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "" -#: commands/functioncmds.c:1639 +#: commands/functioncmds.c:1657 #, c-format msgid "cast function must not be volatile" msgstr "გარდაქმნის ფუნქცია ცვალებადი არ უნდა იყოს" -#: commands/functioncmds.c:1644 +#: commands/functioncmds.c:1662 #, c-format msgid "cast function must be a normal function" msgstr "გარდაქმნის ფუნქცია ნორმალური ფუნქცია უნდა იყოს" -#: commands/functioncmds.c:1648 +#: commands/functioncmds.c:1666 #, c-format msgid "cast function must not return a set" msgstr "გარდაქმნის ფუნქციამ სეტი არ უნდა დააბრუნოს" -#: commands/functioncmds.c:1674 +#: commands/functioncmds.c:1692 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "\"WITHOUT FUNCTION\"-ის გარდაქმნის შესაქმნელად ზეომხმარებელი უნდა ბრძანდებოდეთ" -#: commands/functioncmds.c:1689 +#: commands/functioncmds.c:1707 #, c-format msgid "source and target data types are not physically compatible" msgstr "საწყისი და სამიზნე მონაცემის ტიპები ფიზიკურად შეუთავსებელია" -#: commands/functioncmds.c:1704 +#: commands/functioncmds.c:1727 #, c-format msgid "composite data types are not binary-compatible" msgstr "მონაცემების კომპოზიტური ტიპები შეუთავსებელია ორობით დონეზე" -#: commands/functioncmds.c:1710 -#, c-format -msgid "enum data types are not binary-compatible" -msgstr "მონაცემების ჩამონათვალის ტიპები შეუთავსებელია ორობით დონეზე" - -#: commands/functioncmds.c:1716 +#: commands/functioncmds.c:1733 #, c-format msgid "array data types are not binary-compatible" msgstr "მასივის მონაცემების ტიპები შეუთავსებელია ორობით დონეზე" -#: commands/functioncmds.c:1733 +#: commands/functioncmds.c:1741 +#, c-format +msgid "range data types are not binary-compatible" +msgstr "შუალედის მონაცემის ტიპები შეუთავსებელია ორობით დონეზე" + +#: commands/functioncmds.c:1747 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "მონაცემების ჩამონათვალის ტიპები შეუთავსებელია ორობით დონეზე" + +#: commands/functioncmds.c:1764 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "დომენის მონაცემების ტიპები შეუთავსებელია ორობით დონეზე" -#: commands/functioncmds.c:1743 +#: commands/functioncmds.c:1774 #, c-format msgid "source data type and target data type are the same" msgstr "საწყისი და სამიზნე მონაცემების ტიპები ერთი და იგივეა" -#: commands/functioncmds.c:1776 +#: commands/functioncmds.c:1807 #, c-format msgid "transform function must not be volatile" msgstr "გარდაქმნის ფუნქცია ცვალებადი არ უნდა იყოს" -#: commands/functioncmds.c:1780 +#: commands/functioncmds.c:1811 #, c-format msgid "transform function must be a normal function" msgstr "გარდაქმნის ფუნქცია ნორმალური ფუნქცია უნდა იყოს" -#: commands/functioncmds.c:1784 +#: commands/functioncmds.c:1815 #, c-format msgid "transform function must not return a set" msgstr "გარდაქმნის ფუნქციამ სეტი არ უნდა დააბრუნოს" -#: commands/functioncmds.c:1788 +#: commands/functioncmds.c:1819 #, c-format msgid "transform function must take one argument" msgstr "გარდაქმნის ფუნქციამ ერთი არგუმენტი უნდა მიიღოს" -#: commands/functioncmds.c:1792 +#: commands/functioncmds.c:1823 #, c-format msgid "first argument of transform function must be type %s" msgstr "გარდაქმნის ფუნქციის პირველი არგუმენტის ტიპი %s უნდა იყოს" -#: commands/functioncmds.c:1831 +#: commands/functioncmds.c:1862 #, c-format msgid "data type %s is a pseudo-type" msgstr "მონაცემთა ტიპი %s ფსევდო ტიპია" -#: commands/functioncmds.c:1837 +#: commands/functioncmds.c:1868 #, c-format msgid "data type %s is a domain" msgstr "მონაცემების ტიპი %s დომენია" -#: commands/functioncmds.c:1877 +#: commands/functioncmds.c:1908 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "\"FROM SQL\" ფუნქციის დაბრუნებული მონაცემები აუცილებლად უნდა იყოს: %s" -#: commands/functioncmds.c:1903 +#: commands/functioncmds.c:1934 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "" -#: commands/functioncmds.c:1930 +#: commands/functioncmds.c:1961 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "გადაყვანა ტიპისთვის %s ენა \"%s\" უკვე არსებობს" -#: commands/functioncmds.c:2016 +#: commands/functioncmds.c:2047 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "გადაყვანა ტიპისთვის %s ენა \"%s\" არ არსებობს" -#: commands/functioncmds.c:2040 +#: commands/functioncmds.c:2071 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "ფუნქცია (%s) სქემაში (%s) უკვე არსებობს" -#: commands/functioncmds.c:2091 +#: commands/functioncmds.c:2122 #, c-format msgid "no inline code specified" msgstr "ჩადგმული კოდი მითითებული არაა" -#: commands/functioncmds.c:2137 +#: commands/functioncmds.c:2168 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "" -#: commands/functioncmds.c:2232 +#: commands/functioncmds.c:2263 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" msgstr[0] "პროცედურისთვის %d-ზე მეტი არგუმენტის გადაცემა შეუძლებელია" msgstr[1] "პროცედურისთვის %d-ზე მეტი არგუმენტის გადაცემა შეუძლებელია" -#: commands/indexcmds.c:647 +#: commands/indexcmds.c:659 #, c-format msgid "must specify at least one column" msgstr "უნდა მიეთითოს მინიმუმ ერთი სვეტი" -#: commands/indexcmds.c:651 +#: commands/indexcmds.c:663 #, c-format msgid "cannot use more than %d columns in an index" msgstr "ინდექსში %d სვეტზე მეტს ვერ გამოიყენებთ" -#: commands/indexcmds.c:694 +#: commands/indexcmds.c:712 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "ურთიერთბაზე \"%s\" ინდექსის შექმნა შეიძლებელია" -#: commands/indexcmds.c:720 +#: commands/indexcmds.c:738 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "ინდექსს დაყოფილ ცხრილზე %s პარალელურად ვერ შექმნით" -#: commands/indexcmds.c:730 +#: commands/indexcmds.c:748 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილებზე ინდექსების შექმნა შეუძლებელია" -#: commands/indexcmds.c:768 commands/tablecmds.c:806 commands/tablespace.c:1178 +#: commands/indexcmds.c:786 commands/tablecmds.c:892 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "დაყოფილი ურთიერთობებისთვის ნაგულისხმევი ცხრილის სივრცეების მითითება შეუძლებელია" -#: commands/indexcmds.c:800 commands/tablecmds.c:837 commands/tablecmds.c:3564 +#: commands/indexcmds.c:818 commands/tablecmds.c:923 commands/tablecmds.c:3710 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "pg_global ცხრილის სივრცეში მხოლოდ გაზიარებული ურთიერთობების მოთავსება შეგიძლიათ" -#: commands/indexcmds.c:833 +#: commands/indexcmds.c:851 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "მოძველებული მეთოდი \"rtree\" წვდომის მეთოდით \"gist\" ჩანაცვლდება" -#: commands/indexcmds.c:854 +#: commands/indexcmds.c:872 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "სწვდომის მეთოდს (%s) უნიკალური ინდექსების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:859 +#: commands/indexcmds.c:877 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "სწვდომის მეთოდს (%s) ჩასმული სვეტების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:864 +#: commands/indexcmds.c:882 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "სწვდომის მეთოდს (%s) მრავალსვეტიანი ინდექსების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:869 +#: commands/indexcmds.c:887 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "სწვდომის მეთოდს (%s) გამორიცხვის შეზღუდვების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:998 +#: commands/indexcmds.c:892 #, c-format -msgid "cannot match partition key to an index using access method \"%s\"" -msgstr "წვდომის მეთოდით \"%s\" დანაყოფის გასაღების ინდექსთან დამთხვევა შეუძლებელია" +msgid "access method \"%s\" does not support WITHOUT OVERLAPS constraints" +msgstr "სწვდომის მეთოდს (%s) WITHOUT OVERLAPS შეზღუდვების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:1008 +#: commands/indexcmds.c:1019 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "მხარდაუჭერელი %s შეზღუდვა დანაყოფის გასაღების აღწერით" -#: commands/indexcmds.c:1010 +#: commands/indexcmds.c:1021 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "" -#: commands/indexcmds.c:1060 +#: commands/indexcmds.c:1056 commands/indexcmds.c:2469 commands/indexcmds.c:2488 executor/execReplication.c:329 parser/parse_cte.c:303 parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1410 utils/adt/array_userfuncs.c:1553 utils/adt/arrayfuncs.c:3864 utils/adt/arrayfuncs.c:4419 utils/adt/arrayfuncs.c:6440 utils/adt/rowtypes.c:1220 +#, c-format +msgid "could not identify an equality operator for type %s" +msgstr "ტიპისთვის \"%s\" ტოლობის ფუნქცია ვერ ვიპოვე" + +#: commands/indexcmds.c:1057 commands/indexcmds.c:2491 +#, c-format +msgid "There is no suitable operator in operator family \"%s\" for access method \"%s\"." +msgstr "ვერ ვიპოვე შესაბამისი ოპერატორი ოპერატორების ოჯახში \"%s\" წვდომის მეთოდისთვის \"%s\"." + +#: commands/indexcmds.c:1077 #, c-format msgid "cannot match partition key to index on column \"%s\" using non-equal operator \"%s\"" msgstr "დანაყოფის გასაღების დამთხვევა სვეტზე \"%s\" მდებარე ინდექსთან უტოლობის ოპერატორით \"%s\" შეუძლებელია" -#: commands/indexcmds.c:1076 +#: commands/indexcmds.c:1093 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "დაყოფილ ცხრილზე არსებული უნიკალური შეზღუდვა ყველა დაყოფის სვეტს უნდა შეიცავდეს" -#: commands/indexcmds.c:1077 +#: commands/indexcmds.c:1094 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "" -#: commands/indexcmds.c:1096 commands/indexcmds.c:1115 +#: commands/indexcmds.c:1116 commands/indexcmds.c:1147 #, c-format msgid "index creation on system columns is not supported" msgstr "სისტემური სვეტებზე ინდექსების შექმნა მხარდაუჭერელია" -#: commands/indexcmds.c:1344 tcop/utility.c:1515 +#: commands/indexcmds.c:1123 +#, c-format +msgid "primary keys on virtual generated columns are not supported" +msgstr "ვირტუალურ გენერირებულ სვეტებზე ძირითადი გასაღებები მხარდაჭერილი არაა" + +#: commands/indexcmds.c:1125 commands/indexcmds.c:1164 +#, c-format +msgid "unique constraints on virtual generated columns are not supported" +msgstr "ვირტუალურ გენერირებულ სვეტებზე უნიკალური შეზღუდვები მხარდაჭერილი არაა" + +#: commands/indexcmds.c:1126 commands/indexcmds.c:1165 +#, c-format +msgid "indexes on virtual generated columns are not supported" +msgstr "ვირტუალურ გენერირებულ სვეტებზე ინდექსების შექმნა მხარდაჭერილი არაა" + +#: commands/indexcmds.c:1397 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "დაყოფილ ცხრილზე (%s) უნიკალური ინდექსის შექმნა შეუძლებელია" -#: commands/indexcmds.c:1346 tcop/utility.c:1517 +#: commands/indexcmds.c:1399 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "ცხრილი (%s) შეიცავს დანაყოფებს, რომლებც გარე ცხრილებია." -#: commands/indexcmds.c:1831 +#: commands/indexcmds.c:1857 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "ფუნქციები ინდექსის პრედიკატში მონიშნეთ, როგორც IMMUTABLE" -#: commands/indexcmds.c:1910 parser/parse_utilcmd.c:2494 parser/parse_utilcmd.c:2629 +#: commands/indexcmds.c:1954 parser/parse_utilcmd.c:2714 parser/parse_utilcmd.c:2897 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "გასაღებში დასახელებული სვეტი არ არსებობს: %s" -#: commands/indexcmds.c:1934 parser/parse_utilcmd.c:1782 +#: commands/indexcmds.c:1978 parser/parse_utilcmd.c:1967 #, c-format msgid "expressions are not supported in included columns" msgstr "ჩასმულ სვეტებში გამოსახულებები მხარდაჭერილი არაა" -#: commands/indexcmds.c:1975 +#: commands/indexcmds.c:2019 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "ფუნქციები ინდექსის გამოსახულებაში მონიშნეთ, როგორც IMMUTABLE" -#: commands/indexcmds.c:1990 +#: commands/indexcmds.c:2034 #, c-format msgid "including column does not support a collation" msgstr "ჩასმულ სვეტს კოლაციის მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:1994 +#: commands/indexcmds.c:2038 #, c-format msgid "including column does not support an operator class" msgstr "ჩასმულ სვეტს ოპერატორის კლასის მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:1998 +#: commands/indexcmds.c:2042 #, c-format msgid "including column does not support ASC/DESC options" msgstr "ჩასმულ სვეტს ASC/DESC პარამეტრების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:2002 +#: commands/indexcmds.c:2046 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "ჩასმულ სვეტს NULLS FIRST/LAST მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:2044 +#: commands/indexcmds.c:2089 #, c-format msgid "could not determine which collation to use for index expression" msgstr "ინდექსის გამოსახულებისთვის გამოსაყენებელი კოლაციის გამოცნობა შეუძლებელია" -#: commands/indexcmds.c:2052 commands/tablecmds.c:18078 commands/typecmds.c:811 parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3918 utils/adt/misc.c:630 +#: commands/indexcmds.c:2097 commands/tablecmds.c:19917 commands/typecmds.c:812 parser/parse_expr.c:2801 parser/parse_type.c:568 parser/parse_utilcmd.c:4043 utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "ტიპს \"%s\" კოლაციების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2164 #, c-format msgid "operator %s is not commutative" msgstr "ოპერატორი %s არაკომუტაციურია" -#: commands/indexcmds.c:2119 +#: commands/indexcmds.c:2166 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "გამორიცხვის შეზღუდვებში მხოლოდ კომუტაციური ოპერატორების გამოყენება შეგიძლიათ." -#: commands/indexcmds.c:2145 +#: commands/indexcmds.c:2176 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "ოპერატორი (%s) ოპერატორის ოჯახის (%s) წევრი არაა" -#: commands/indexcmds.c:2148 +#: commands/indexcmds.c:2179 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "" -#: commands/indexcmds.c:2183 +#: commands/indexcmds.c:2228 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "წვდომის მეთოდს \"%s\" ASC/DESC პარამეტრების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:2188 +#: commands/indexcmds.c:2233 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "წვდომის მეთოდს \"%s\" 'NULLS FIRST/LAST' პარამეტრების მხარდაჭერა არ გააჩნია" -#: commands/indexcmds.c:2232 commands/tablecmds.c:18103 commands/tablecmds.c:18109 commands/typecmds.c:2311 +#: commands/indexcmds.c:2277 commands/tablecmds.c:19942 commands/tablecmds.c:19948 commands/typecmds.c:2341 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "მონაცემის ტიპს %s წვდომის მეთოდისთვის \"%s\" ნაგულისხმევი ოპერატორის კლასი არ გააჩნია" -#: commands/indexcmds.c:2234 +#: commands/indexcmds.c:2279 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "აუცილებელია მიუთითოთ ოპერატორის კლასი ინდექსისთვის ან აღწეროთ ნაგულისხმევი ოპერატორის კლასი მონაცემის ტიპისთვის." -#: commands/indexcmds.c:2263 commands/indexcmds.c:2271 commands/opclasscmds.c:204 +#: commands/indexcmds.c:2308 commands/indexcmds.c:2316 commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "ოპერატორის კლასი \"%s\" წვდომის მეთოდისთვის \"%s\" არ არსებობს" -#: commands/indexcmds.c:2285 commands/typecmds.c:2299 +#: commands/indexcmds.c:2330 commands/typecmds.c:2329 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "ოპერატორის კლასი \"%s\" მონაცემების ტიპს %s არ იღებს" -#: commands/indexcmds.c:2375 +#: commands/indexcmds.c:2420 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "მონაცემის ტიპისთვის %s ერთზე მეტი ნაგულისხმევი ოპერატორის კლასი არსებობს" -#: commands/indexcmds.c:2703 +#: commands/indexcmds.c:2470 commands/indexcmds.c:2489 +#, c-format +msgid "could not identify an overlaps operator for type %s" +msgstr "ვერ აღმოვაჩინე გადაფარვების ოპერატორი ტიპისთვის %s" + +#: commands/indexcmds.c:2471 commands/indexcmds.c:2490 +#, c-format +msgid "could not identify a contained-by operator for type %s" +msgstr "ტიპისთვის \"%s\" ოპერატორი constained-by ვერ ვიპოვე" + +#: commands/indexcmds.c:2472 commands/tablecmds.c:10333 +#, c-format +msgid "Could not translate compare type %d for operator family \"%s\", input type %s, access method \"%s\"." +msgstr "ვერ ვთარგმნე შედარების ტიპი %d ოპერატორის ოჯახისთვის \"%s\". შეყვანის ტიპი %s, წვდომის მეთოდი \"%s\"." + +#: commands/indexcmds.c:2812 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "\"REINDEX\"-ის უცნობი პარამეტრი \"%s\"" -#: commands/indexcmds.c:2935 +#: commands/indexcmds.c:3044 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "ცხრილს \"%s\" არ გააჩნია ინდექსები, რომლების პარალელური რეინდექსიც შესაძლებელია" -#: commands/indexcmds.c:2949 +#: commands/indexcmds.c:3058 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "ცხრილს \"%s\" რეინდექსისთვის ცხრილები არ არ გააჩნია" -#: commands/indexcmds.c:2996 commands/indexcmds.c:3507 commands/indexcmds.c:3637 +#: commands/indexcmds.c:3105 commands/indexcmds.c:3616 commands/indexcmds.c:3746 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "სისტემური კატალოგების ერთდროული რეინდექსი შეუძლებელია" -#: commands/indexcmds.c:3020 +#: commands/indexcmds.c:3129 #, c-format msgid "can only reindex the currently open database" msgstr "შესაძლებელია მხოლოდ ამჟამად ღია ბაზის რეინდექსი" -#: commands/indexcmds.c:3112 +#: commands/indexcmds.c:3221 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "სისტემური კატალოგების ერთდროული რეინდექსი შეუძლებელია. ყველას გამოტოვება" -#: commands/indexcmds.c:3145 +#: commands/indexcmds.c:3254 #, c-format msgid "cannot move system relations, skipping all" msgstr "სისტემური დანაყოფების გადაადგილება შეუძლებელია. ყველას გამოტოვება" -#: commands/indexcmds.c:3191 +#: commands/indexcmds.c:3300 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "დაყოფილი ცხრილის რეინდექსისას: \"%s.%s\"" -#: commands/indexcmds.c:3194 +#: commands/indexcmds.c:3303 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "დაყოფილი ინდექსის რეინდექსისას: \"%s.%s\"" -#: commands/indexcmds.c:3387 commands/indexcmds.c:4255 +#: commands/indexcmds.c:3496 commands/indexcmds.c:4388 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "\"%s.%s\"-ის რეინდექსი დასრულდა" -#: commands/indexcmds.c:3539 commands/indexcmds.c:3592 +#: commands/indexcmds.c:3648 commands/indexcmds.c:3701 #, c-format msgid "skipping reindex of invalid index \"%s.%s\"" msgstr "რეინდექსის გამოტოვება არასწორი ინდექსისთვის \"%s.%s\"" -#: commands/indexcmds.c:3542 commands/indexcmds.c:3595 +#: commands/indexcmds.c:3651 commands/indexcmds.c:3704 #, c-format msgid "Use DROP INDEX or REINDEX INDEX." msgstr "გამოიყენეთ DROP INDEX ან REINDEX INDEX." -#: commands/indexcmds.c:3546 +#: commands/indexcmds.c:3655 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "გამორიცხვის შეზღუდვის ინდექსის \"%s.%s\" პარალელური რეინდექსი შეუძლებელია. გამოტოვება" -#: commands/indexcmds.c:3702 +#: commands/indexcmds.c:3811 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "ამ ტიპის ურთიერთობის პარალელური რეინდექსი შეუძლებელია" -#: commands/indexcmds.c:3720 +#: commands/indexcmds.c:3829 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "არაგაზიარებული ურთიერთობის ცხრილების სივრცეში \"%s\" გადატანა შეუძლებელია" -#: commands/indexcmds.c:4236 commands/indexcmds.c:4248 +#: commands/indexcmds.c:4369 commands/indexcmds.c:4381 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "\"%s.%s\"-ის რეინდექსი დასრულდა" -#: commands/indexcmds.c:4238 commands/indexcmds.c:4257 +#: commands/indexcmds.c:4371 commands/indexcmds.c:4390 #, c-format msgid "%s." msgstr "%s." @@ -8986,252 +9032,272 @@ msgstr "%s." msgid "cannot lock relation \"%s\"" msgstr "ურთიერთობის დაბლოკვა (\"%s\") შეუძლებელია" -#: commands/matview.c:190 +#: commands/matview.c:208 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY-ის გამოყენება შეუძლებელია, როცა მატერიალიზებული ხედი შევსებული არაა" -#: commands/matview.c:196 gram.y:18967 +#: commands/matview.c:214 gram.y:19148 #, c-format msgid "%s and %s options cannot be used together" msgstr "პარამეტრები %s და %s შეუთავსებლებია" -#: commands/matview.c:253 +#: commands/matview.c:273 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "მატერიალიზებული ხედის (%s) პარალელური განახლება შეუძლებელია" -#: commands/matview.c:256 +#: commands/matview.c:276 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." msgstr "" -#: commands/matview.c:650 +#: commands/matview.c:683 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "ახალი მონაცემები მატერიალიზებულ ხედისთვის \"%s\" დუბლირებულ მწკრივებს შეიცავს, ნულოვანი მწკრივების გარეშე" -#: commands/matview.c:652 +#: commands/matview.c:685 #, c-format msgid "Row: %s" msgstr "მწკრივი: %s" -#: commands/opclasscmds.c:123 +#: commands/matview.c:839 +#, c-format +msgid "could not find suitable unique index on materialized view" +msgstr "მატერიალიზებულ ხედზე შესაბამისი უნიკალური ინდექსი ვერ ვიპოვე" + +#: commands/opclasscmds.c:124 #, c-format msgid "operator family \"%s\" does not exist for access method \"%s\"" msgstr "წვდომის მეთოდისთვის (%2$s) ოპერატორის ოჯახი (%1$s) არ არსებობს" -#: commands/opclasscmds.c:266 +#: commands/opclasscmds.c:267 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists" msgstr "წვდომის მეთოდისთვის (%2$s) ოპერატორის ოჯახი (%1$s) უკვე არსებობს" -#: commands/opclasscmds.c:415 +#: commands/opclasscmds.c:416 #, c-format msgid "must be superuser to create an operator class" msgstr "ოპერატორის კლასის შესაქმნელად ზემომხმარებლის უფლებება საჭირო" -#: commands/opclasscmds.c:492 commands/opclasscmds.c:909 commands/opclasscmds.c:1055 +#: commands/opclasscmds.c:493 commands/opclasscmds.c:910 commands/opclasscmds.c:1056 #, c-format msgid "invalid operator number %d, must be between 1 and %d" msgstr "ოპერატორის არასწორი ნომერი: %d. უნდა იყოს დიაპაზონში 1..%d" -#: commands/opclasscmds.c:537 commands/opclasscmds.c:959 commands/opclasscmds.c:1071 +#: commands/opclasscmds.c:538 commands/opclasscmds.c:960 commands/opclasscmds.c:1072 #, c-format msgid "invalid function number %d, must be between 1 and %d" msgstr "ფუნქციის არასწორი ნომერი: %d. უნდა იყოს დიაპაზონში 1..%d" -#: commands/opclasscmds.c:566 +#: commands/opclasscmds.c:567 #, c-format msgid "storage type specified more than once" msgstr "საცავის ტიპი ერთზე მეტჯერაა მითითებული" -#: commands/opclasscmds.c:593 +#: commands/opclasscmds.c:594 #, c-format msgid "storage type cannot be different from data type for access method \"%s\"" msgstr "წვდომის მეთოდისთვის \"%s\" საცავის ტიპი არ შეიძლება, მონაცემის ტიპისგან განსხვავდებოდეს" -#: commands/opclasscmds.c:609 +#: commands/opclasscmds.c:610 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists" msgstr "ოპერატორის კლასი \"%s\" წვდომის მეთოდისთვის \"%s\" უკვე არსებობს" -#: commands/opclasscmds.c:637 +#: commands/opclasscmds.c:638 #, c-format msgid "could not make operator class \"%s\" be default for type %s" msgstr "ოპერატორის კლასის \"%s\" ტიპისთვის %s ნაგულისხმევად დაყენება შეუძლებელია" -#: commands/opclasscmds.c:640 +#: commands/opclasscmds.c:641 #, c-format msgid "Operator class \"%s\" already is the default." msgstr "ოპერატორის კლასი \"%s\" უკვე ნაგულისხმევია." -#: commands/opclasscmds.c:800 +#: commands/opclasscmds.c:801 #, c-format msgid "must be superuser to create an operator family" msgstr "ოპერატორის ოჯახის შესაქმნელად საჭიროა ზემომხმარებლის უფლებები" -#: commands/opclasscmds.c:860 +#: commands/opclasscmds.c:861 #, c-format msgid "must be superuser to alter an operator family" msgstr "ოპერატორის ოჯახის შესაცვლელად საჭიროა ზემომხმარებლის უფლებები" -#: commands/opclasscmds.c:918 +#: commands/opclasscmds.c:919 #, c-format msgid "operator argument types must be specified in ALTER OPERATOR FAMILY" msgstr "'ALTER OPERATOR FAMILY'-ში ოპერატორის არგუმენის ტიპების მითითება აუცილებელია" -#: commands/opclasscmds.c:993 +#: commands/opclasscmds.c:994 #, c-format msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY" msgstr "ALTER OPERATOR FAMILY-ში STORAGE-ს ვერ მიუთითებთ" -#: commands/opclasscmds.c:1127 +#: commands/opclasscmds.c:1128 #, c-format msgid "one or two argument types must be specified" msgstr "უნდა იყოს მითითებული ერთი ან ორი არგუმენტის ტიპი" -#: commands/opclasscmds.c:1153 +#: commands/opclasscmds.c:1154 #, c-format msgid "index operators must be binary" msgstr "ინდექსის ოპერატორები ბინარული უნდა იყოს" -#: commands/opclasscmds.c:1172 +#: commands/opclasscmds.c:1173 #, c-format msgid "access method \"%s\" does not support ordering operators" msgstr "სწვდომის მეთოდს (%s) ოპერატორების დალაგების მხარდაჭერა არ გააჩნია" -#: commands/opclasscmds.c:1183 +#: commands/opclasscmds.c:1184 #, c-format msgid "index search operators must return boolean" msgstr "ინდექსის ძებნის ოპერატორებმა ლოგიკური მნიშვნელობა უნდა დააბრუნონ" -#: commands/opclasscmds.c:1223 +#: commands/opclasscmds.c:1224 #, c-format msgid "associated data types for operator class options parsing functions must match opclass input type" msgstr "ოპერატორის კლასის პარამეტრების დამუშავების ფუნქციებისთვის ასოცირებული მონაცემის ტიპები opclass-ის შეყვანის ტიპებს უნდა ემთხვეოდეს" -#: commands/opclasscmds.c:1230 +#: commands/opclasscmds.c:1231 #, c-format msgid "left and right associated data types for operator class options parsing functions must match" msgstr "" -#: commands/opclasscmds.c:1238 +#: commands/opclasscmds.c:1239 #, c-format msgid "invalid operator class options parsing function" msgstr "კლასის კლასის პარამეტრების დამუშავების ფუნქციის არასწორი ოპერატორი" -#: commands/opclasscmds.c:1239 +#: commands/opclasscmds.c:1240 #, c-format msgid "Valid signature of operator class options parsing function is %s." msgstr "ოპერატორის კლასის პარამეტრების დამმუშავებელი ფუნქციის სწორი სიგნატურაა %s." -#: commands/opclasscmds.c:1258 +#: commands/opclasscmds.c:1259 #, c-format -msgid "btree comparison functions must have two arguments" -msgstr "ორობითი ხის შედარებით ფუნქციებს ორი არგუმენტი უნდა ჰქონდეთ" +msgid "ordering comparison functions must have two arguments" +msgstr "დალაგების მნიშვნელობის ფუნქციებს ორი არგუმენტი უნდა ჰქონდეს" -#: commands/opclasscmds.c:1262 +#: commands/opclasscmds.c:1263 #, c-format -msgid "btree comparison functions must return integer" -msgstr "ორობითი ხის შედარებით ფუნქციებმა ორი მთელი რიცხვი უნდა დააბრუნოს" +msgid "ordering comparison functions must return integer" +msgstr "დალაგების მნიშვნელობის ფუნქციები მთელ რიცხვს უნდა აბრუნდებდეს" -#: commands/opclasscmds.c:1279 +#: commands/opclasscmds.c:1280 #, c-format -msgid "btree sort support functions must accept type \"internal\"" -msgstr "ორობითი ხის დალაგების ფუნქციები უნდა იღებდნენ ტიპს \"internal\"" +msgid "ordering sort support functions must accept type \"internal\"" +msgstr "დალაგების მხარდაჭერის ფუნქციების დალაგებას \"internal\" ტიპის ცვლადის მიღება უნდა შეეძლოს" -#: commands/opclasscmds.c:1283 +#: commands/opclasscmds.c:1284 #, c-format -msgid "btree sort support functions must return void" -msgstr "ორობითი ხის დალაგების ფუნქციებმა არაფერი უნდა დააბრუნონ" +msgid "ordering sort support functions must return void" +msgstr "დალაგების მხარდაჭერის ფუნქციების დალაგება მნიშვნელობას არ უნდა აბრუნებდეს" -#: commands/opclasscmds.c:1294 +#: commands/opclasscmds.c:1295 #, c-format -msgid "btree in_range functions must have five arguments" -msgstr "btree in_range ფუნქციებს 5 არგუმენტი უნდა ჰქონდეთ" +msgid "ordering in_range functions must have five arguments" +msgstr "in_range ფუნქციების დალაგებას ორი არგუმენტი უნდა ჰქონდეს" -#: commands/opclasscmds.c:1298 +#: commands/opclasscmds.c:1299 #, c-format -msgid "btree in_range functions must return boolean" -msgstr "ორობითი ხის in_range ფუნქციები ლოგიკურ მნიშვნელობებს უნდა აბრუნებდნენ" +msgid "ordering in_range functions must return boolean" +msgstr "in_range ფუნქციების დალაგება ბულევურ მნიშვნელობას უნდა აბრუნებდეს" -#: commands/opclasscmds.c:1314 +#: commands/opclasscmds.c:1315 #, c-format -msgid "btree equal image functions must have one argument" -msgstr "ორობითი ტოლობის ასლის ფუნქციებს ერთი არგუმენტი უნდა ჰქონდეთ" +msgid "ordering equal image functions must have one argument" +msgstr "ტოლი ასლი ფუნქციების დალაგებას ერთი არგუმენტი უნდა ჰქონდეს" -#: commands/opclasscmds.c:1318 +#: commands/opclasscmds.c:1319 #, c-format -msgid "btree equal image functions must return boolean" -msgstr "ორობითი ტოლობის ასლის ფუნქციებმა ლოგიკური მნიშვნელობა უნდა დააბრუნონ" +msgid "ordering equal image functions must return boolean" +msgstr "ტოლი ასლი ფუნქციების დალაგება ბულევურ მნიშვნელობას უნდა აბრუნებდეს" -#: commands/opclasscmds.c:1331 +#: commands/opclasscmds.c:1332 #, c-format -msgid "btree equal image functions must not be cross-type" -msgstr "ორობითი ტოლობის ასლის ფუნქციები ჯვარედინი ტიპის არ უნდა იყოს" +msgid "ordering equal image functions must not be cross-type" +msgstr "ტოლი ასლი ფუნქციების დალაგება ჯვარედინი ტიპის არ უნდა იყოს" -#: commands/opclasscmds.c:1341 +#: commands/opclasscmds.c:1340 +#, c-format +msgid "btree skip support functions must accept type \"internal\"" +msgstr "btree-ის გამოტოვების მხარდაჭერის ფუნქცია უნდა იღებდეს ტიპს \"internal\"" + +#: commands/opclasscmds.c:1344 +#, c-format +msgid "btree skip support functions must return void" +msgstr "btree-ის გამოტოვების მხარდაჭერის ფუნქცია ცარიელ მნიშვნელობას უნდა აბრუნებდეს" + +#: commands/opclasscmds.c:1357 +#, c-format +msgid "btree skip support functions must not be cross-type" +msgstr "btree-ის გამოტოვების მხარდაჭერის ფუნქციები ჯვარედინი ტიპის არ უნდა იყოს" + +#: commands/opclasscmds.c:1367 #, c-format msgid "hash function 1 must have one argument" msgstr "ჰეშის ფუნქცია 1-ს ერთი არგუმენტი უნდა ჰქონდეს" -#: commands/opclasscmds.c:1345 +#: commands/opclasscmds.c:1371 #, c-format msgid "hash function 1 must return integer" msgstr "ჰეშის ფუნქცია 1-მა მთელი რიცხვი უნდა დააბრუნოს" -#: commands/opclasscmds.c:1352 +#: commands/opclasscmds.c:1378 #, c-format msgid "hash function 2 must have two arguments" msgstr "ჰეშის ფუნქცია 2-ს ორი არგუმენტი უნდა ჰქონდეს" -#: commands/opclasscmds.c:1356 +#: commands/opclasscmds.c:1382 #, c-format msgid "hash function 2 must return bigint" msgstr "ჰეშის ფუნქცია 2-მა bigint უნდა დააბრინოს" -#: commands/opclasscmds.c:1381 +#: commands/opclasscmds.c:1407 #, c-format msgid "associated data types must be specified for index support function" msgstr "ინდექსის მხარდაჭერის ფუნქციისთვის ასოცირებული მონაცემის ტიპების მითითება აუცილებელია" -#: commands/opclasscmds.c:1406 +#: commands/opclasscmds.c:1432 #, c-format msgid "function number %d for (%s,%s) appears more than once" msgstr "ფუნქციის ნომერი %d (%s,%s)-სთვის ერთზე მეტჯერ ჩნდება" -#: commands/opclasscmds.c:1413 +#: commands/opclasscmds.c:1439 #, c-format msgid "operator number %d for (%s,%s) appears more than once" msgstr "ოპერატორის ნომერი %d (%s,%s)-სთვის ერთზე მეტჯერ ჩნდება" -#: commands/opclasscmds.c:1459 +#: commands/opclasscmds.c:1485 #, c-format msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "ოპერატორი %d(%s,%s) ოპერატორის ოჯახში \"%s\" უკვე არსებობს" -#: commands/opclasscmds.c:1565 +#: commands/opclasscmds.c:1614 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "ფუნქცია %d(%s,%s) ოპერატორის ოჯახში \"%s\" უკვე არსებობს" -#: commands/opclasscmds.c:1646 +#: commands/opclasscmds.c:1769 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "ოპერატორი %d(%s,%s) ოპერატორის ოჯახში \"%s\" არ არსებობს" -#: commands/opclasscmds.c:1686 +#: commands/opclasscmds.c:1809 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "ფუნქცია %d(%s,%s) ოპერატორის ოჯახში \"%s\" არ არსებობს" -#: commands/opclasscmds.c:1717 +#: commands/opclasscmds.c:1840 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "ოპერატორის კლასი \"%s\" წვდომის მეთოდისთვის \"%s\" სქემაში \"%s\" უკვე არსებობს" -#: commands/opclasscmds.c:1740 +#: commands/opclasscmds.c:1863 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "ოპერატორის ოჯახი \"%s\" წვდომის მეთოდისთვის \"%s\" სქემაში \"%s\" უკვე არსებობს" @@ -9301,7 +9367,7 @@ msgstr "ოპერატორის ატრიბუტის შეცვ msgid "operator attribute \"%s\" cannot be changed if it has already been set" msgstr "ოპერატორის ატრიბუტს \"%s\", თუ ის უკვე დაყენებულია, ვერ შეცვლით" -#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 commands/tablecmds.c:1728 commands/tablecmds.c:2328 commands/tablecmds.c:3675 commands/tablecmds.c:6613 commands/tablecmds.c:9645 commands/tablecmds.c:17665 commands/tablecmds.c:17700 commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1442 rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 commands/tablecmds.c:1800 commands/tablecmds.c:2400 commands/tablecmds.c:3824 commands/tablecmds.c:6793 commands/tablecmds.c:10089 commands/tablecmds.c:19498 commands/tablecmds.c:19533 commands/trigger.c:318 commands/trigger.c:1337 commands/trigger.c:1447 rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "წვდომა აკრძალულია: '%s\" სისტემური კატალოგია" @@ -9341,52 +9407,52 @@ msgstr "წესი \"%s\" ცხრილისთვის \"%s\" არ ა msgid "only USING expression allowed for SELECT, DELETE" msgstr "\"SELECT\" და DELETE-სთვის მხოლოდ USING გამოსახულებაა ნებადართული" -#: commands/portalcmds.c:60 commands/portalcmds.c:181 commands/portalcmds.c:232 +#: commands/portalcmds.c:63 commands/portalcmds.c:192 commands/portalcmds.c:243 #, c-format msgid "invalid cursor name: must not be empty" msgstr "კურსორის არასწორი სახელი. ცარიელი არ უნდა იყოს" -#: commands/portalcmds.c:72 +#: commands/portalcmds.c:75 #, c-format msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "უსაფრთხოებაზე-შეზღუდული ოპერაციის შიგნით კურსორს WITH HOLD ვერ შექმნით" -#: commands/portalcmds.c:189 commands/portalcmds.c:242 executor/execCurrent.c:70 utils/adt/xml.c:2873 utils/adt/xml.c:3043 +#: commands/portalcmds.c:200 commands/portalcmds.c:253 executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "კურსორი \"%s\" არ არსებობს" -#: commands/prepare.c:72 +#: commands/prepare.c:75 #, c-format msgid "invalid statement name: must not be empty" msgstr "ოეპრატორის არასწორი სახელი: ცარიელი არ უნდა იყოს" -#: commands/prepare.c:227 commands/prepare.c:232 +#: commands/prepare.c:231 commands/prepare.c:236 #, c-format msgid "prepared statement is not a SELECT" msgstr "მომზადებული ოპერატორი SELECT არაა" -#: commands/prepare.c:292 +#: commands/prepare.c:296 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "პარამეტრების არასწორი რაოდენობა მომზადებული გამოსახულებისთვის \"%s\"" -#: commands/prepare.c:294 +#: commands/prepare.c:298 #, c-format msgid "Expected %d parameters but got %d." msgstr "მოსალოდნელი %d პარამეტრის მაგიერ მივიღე %d." -#: commands/prepare.c:327 +#: commands/prepare.c:331 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "" -#: commands/prepare.c:411 +#: commands/prepare.c:415 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "მომზადებული ოპერატორი \"%s\" უკვე არსებობს" -#: commands/prepare.c:450 +#: commands/prepare.c:454 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "მომზადებული ოპერატორი \"%s\" არ არსებობს" @@ -9396,200 +9462,205 @@ msgstr "მომზადებული ოპერატორი \"%s\" ა msgid "must be superuser to create custom procedural language" msgstr "პროცედურული ენის ხელით მისათითებლად ზემომხმარებლის პრივილეგიებია საჭირო" -#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 postmaster/postmaster.c:1210 utils/init/miscinit.c:1811 +#: commands/publicationcmds.c:130 libpq/auth-oauth.c:850 postmaster/postmaster.c:1130 postmaster/postmaster.c:1232 utils/init/miscinit.c:1870 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "არასწორი სიის სინტაქსი პარამეტრში \"%s\"" -#: commands/publicationcmds.c:143 +#: commands/publicationcmds.c:149 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "პუბლიკაციის პარამეტრის (\"%s\") უცნობი მნიშვნელობა: \"%s\"" -#: commands/publicationcmds.c:157 +#: commands/publicationcmds.c:170 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "პუბლიკაციის უცნობი პარამეტრი: \"%s\"" -#: commands/publicationcmds.c:198 +#: commands/publicationcmds.c:211 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "'CURRENT_SCHEMA'-სთვის სქემა არჩეული არაა" -#: commands/publicationcmds.c:495 +#: commands/publicationcmds.c:592 msgid "System columns are not allowed." msgstr "სისტემური სვეტები დაუშვებელია." -#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 commands/publicationcmds.c:524 +#: commands/publicationcmds.c:599 commands/publicationcmds.c:604 commands/publicationcmds.c:621 msgid "User-defined operators are not allowed." msgstr "მომხმარებლის მიერ აღწერილი ოპერატორები დაშვებული არაა." -#: commands/publicationcmds.c:548 +#: commands/publicationcmds.c:645 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "დაშვებულია მხოლოდ სვეტები, მუდმივები, ჩაშენებული ოპერატორები, ჩაშენებული მონაცემის ტიპები, ჩაშენებული კოლაციები და არადადუმებადი ჩაშენებული ფუნქციები." -#: commands/publicationcmds.c:560 +#: commands/publicationcmds.c:657 msgid "User-defined types are not allowed." msgstr "მომხმარებლის მიერ განსაზღვრული ტიპები დაშვებული არაა." -#: commands/publicationcmds.c:563 +#: commands/publicationcmds.c:660 msgid "User-defined or built-in mutable functions are not allowed." msgstr "მომხმარებლის-მიერ-აღწერილი ან ჩაშენებული დადუმებადი ფუნქციები დაშვებული არაა." -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:663 msgid "User-defined collations are not allowed." msgstr "მომხმარებლის მიერ განსაზღვრული კოლაციები დაუშვებელია." -#: commands/publicationcmds.c:576 +#: commands/publicationcmds.c:673 #, c-format msgid "invalid publication WHERE expression" msgstr "პუბლიკაციის არასწორი WHERE გამოსახულება" -#: commands/publicationcmds.c:629 +#: commands/publicationcmds.c:726 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "ურთიერთობისთვის \"%s\"გამოცემის პირობას WHERE ვერ გამოიყენებთ" -#: commands/publicationcmds.c:631 +#: commands/publicationcmds.c:728 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "დაყოფილ ცხრილზე პირობის WHERE გამოყენება შეუძლებელია, როცა %s ჭეშმარიტი არაა." -#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 +#: commands/publicationcmds.c:801 commands/publicationcmds.c:815 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "შეუძლებელია სვეტების სიის გამოყენება ურთიერთობისთვის \"%s.%s\" პუბლიკაციაში \"%s\"" -#: commands/publicationcmds.c:705 +#: commands/publicationcmds.c:804 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "გამოცემებში რომლებიც ელემენტებს FOR TABLES IN SCHEMA შეიცავენ, სვეტების სიას ვერ მიუთითებთ." -#: commands/publicationcmds.c:719 +#: commands/publicationcmds.c:818 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "სვეტების სია შეუძლებელია მიუთითოთ დაყოფილ ცხრილს, როცა %s false-ა." -#: commands/publicationcmds.c:754 +#: commands/publicationcmds.c:855 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "'FOR ALL TABLES' პუბლიკაციის შექმნისთვის ზემომხმარებლის უფლებები აუცილებელია" -#: commands/publicationcmds.c:825 +#: commands/publicationcmds.c:930 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "\"FOR TABLES IN SCHEMA\" პუბლიკაციის შესაქმნელად ზემომხმარებელი უნდა ბრძანდებოდეთ" -#: commands/publicationcmds.c:861 +#: commands/publicationcmds.c:966 #, c-format msgid "\"wal_level\" is insufficient to publish logical changes" msgstr "\"wal_level\" არასაკმარისია ლოგიკური ცვლილებების გამოსაქვეყნებლად" -#: commands/publicationcmds.c:862 +#: commands/publicationcmds.c:967 #, c-format msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." msgstr "გამოწერების შექმნამდე საჭიროა \"wal_level\" -ის \"logical\" (ლოგიკურზე) დაყენება." -#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 +#: commands/publicationcmds.c:1067 commands/publicationcmds.c:1075 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "პარამეტრის (\"%s\") false-ზე დაყენება პუბლიკაციისთვის \"%s\" შეუძლებელია" -#: commands/publicationcmds.c:961 +#: commands/publicationcmds.c:1070 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "გამოცემა შეიცავს პირობას WHERE დაყოფილი ცხრილისთვის \"%s\", რაც, მაშინ, როცა \"%s\" ჭეშმარიტი არა, დაშვებული არაა." -#: commands/publicationcmds.c:969 +#: commands/publicationcmds.c:1078 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "გამოცემა შეიცავს სვეტების სიას დაყოფილი ცხრილისთვის \"%s\", რაც მაშინ, როცა \"%s\" ჭეშმარიტი არაა, დაუშვებელია." -#: commands/publicationcmds.c:1292 +#: commands/publicationcmds.c:1399 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "პუბლიკაციისთვის (%s) სქემის დამატება შეუძლებელია" -#: commands/publicationcmds.c:1294 +#: commands/publicationcmds.c:1401 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "სქემების დამატება შეუძლებელია, თუ ნებისმიერი ცხრილი, რომელიც შეიცავს სვეტების სიას, რომელიც უკვე გამოცემის ნაწილია." -#: commands/publicationcmds.c:1342 +#: commands/publicationcmds.c:1449 #, c-format msgid "must be superuser to add or set schemas" msgstr "სქემის დამატების ან დაყენებისთვის ზემომხმარებლის უფლებებია საჭირო" -#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1458 commands/publicationcmds.c:1466 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "პუბლიკაცია %s აღწერილია, როგორც FOR ALL TABLES" -#: commands/publicationcmds.c:1353 +#: commands/publicationcmds.c:1460 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "სქემების FOR ALL TABLES გამოცემებიდან წაშლა ან მასში ჩამატება შეუძლებელია." -#: commands/publicationcmds.c:1361 +#: commands/publicationcmds.c:1468 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "FOR ALL TABLES გამოცემებში ცხრილების ჩამატება ან მათი წაშლა შეუძლებელია." -#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 +#: commands/publicationcmds.c:1492 commands/publicationcmds.c:1531 commands/publicationcmds.c:2068 utils/cache/lsyscache.c:3774 #, c-format msgid "publication \"%s\" does not exist" msgstr "პუბლიკაცია \"%s\" არ არსებობს" -#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 +#: commands/publicationcmds.c:1694 commands/publicationcmds.c:1757 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "კონფლიქტური ან ზედმეტი WHERE პირობები ცხრილისთვის \"%s\"" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 +#: commands/publicationcmds.c:1701 commands/publicationcmds.c:1769 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "კონფლიქტური ან ზედმეტი სვეტის სიები ცხრილისთვის \"%s\"" -#: commands/publicationcmds.c:1796 +#: commands/publicationcmds.c:1903 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "column list must not be specified in ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1808 +#: commands/publicationcmds.c:1915 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "ურთიერთობა (%s) პუბლიკაციის ნაწილს არ წარმოადგენს" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1922 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "გამოცემის ცხრილიდან წაშლისას პირობას WHERE ვერ გამოიყენებთ" -#: commands/publicationcmds.c:1875 +#: commands/publicationcmds.c:1982 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "ცხრილი სქემიდან \"%s\" პუბლიკაციის ნაწილს არ წარმოადგენს" -#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 +#: commands/publicationcmds.c:2025 commands/publicationcmds.c:2032 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "პუბლიკაციის (%s) მფლობელის შეცვლის წვდომა აკრძალულია" -#: commands/publicationcmds.c:1920 +#: commands/publicationcmds.c:2027 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "FOR ALL TABLES გამოცემის მფლობელი ზემომხმარებელი უნდა იყოს." -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:2034 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "FOR TABLES IN SCHEMA პუბლიკაციის მფლობელი ზემომხმარებელი უნდა იყოს." -#: commands/publicationcmds.c:1993 +#: commands/publicationcmds.c:2100 #, c-format msgid "publication with OID %u does not exist" msgstr "პუბლიკაცია OID-ით %u არ არსებობს" +#: commands/publicationcmds.c:2133 +#, c-format +msgid "%s requires a \"none\" or \"stored\" value" +msgstr "%s მოითხოვს მნიშვნელობას \"none' ან \"stored\"" + #: commands/schemacmds.c:109 commands/schemacmds.c:289 #, c-format msgid "unacceptable schema name \"%s\"" @@ -9630,127 +9701,127 @@ msgstr "ამ ტიპის ობიექტისთვის უსაფ msgid "cannot set security label on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" უსაფრთხოების ჭდის დადება შეუძლებელია" -#: commands/sequence.c:741 +#: commands/sequence.c:748 #, c-format -msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" -msgstr "nextval: მიღწეულია მაქსიმალური მნიშვნელობა მიმდევრობისთვის \"%s\" (%lld)" +msgid "nextval: reached maximum value of sequence \"%s\" (%)" +msgstr "nextval: მიღწეულია მაქსიმალური მნიშვნელობა მიმდევრობისთვის \"%s\" (%)" -#: commands/sequence.c:760 +#: commands/sequence.c:767 #, c-format -msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" -msgstr "nextval: მიღწეულია მინიმალური მნიშვნელობა მიმდევრობისთვის \"%s\" (%lld)" +msgid "nextval: reached minimum value of sequence \"%s\" (%)" +msgstr "nextval: მიღწეულია მინიმალური მნიშვნელობა მიმდევრობისთვის \"%s\" (%)" -#: commands/sequence.c:879 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "მიმდევრობის \"%s\" მიმდინარე მნიშვნელობა ამ სესიაში ჯერ აღწერილი არაა" -#: commands/sequence.c:898 commands/sequence.c:904 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "ამ სესიაში lastval ჯერ აღწერილი არაა" -#: commands/sequence.c:984 +#: commands/sequence.c:991 #, c-format -msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" -msgstr "setval: მნიშვნელობა %lld საზღვრებს გარეთაა მიმდევრობისთვის \"%s\" (%lld..%lld)" +msgid "setval: value % is out of bounds for sequence \"%s\" (%..%)" +msgstr "setval: მნიშვნელობა % საზღვრებს გარეთაა მიმდევრობისთვის \"%s\" (%..%)" -#: commands/sequence.c:1347 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "მიმდევრობის არასწორი პარამეტრი SEQUENCE NAME" -#: commands/sequence.c:1373 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "იდენტიფიკაციის სვეტის ტიპი smallint, integer ან bigint უნდა იყოს" -#: commands/sequence.c:1374 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "მიმდევრობის ტიპი smallint, integer ან bigint უნდა იყოს" -#: commands/sequence.c:1408 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENT ნული არ უნდა იყოს" -#: commands/sequence.c:1456 +#: commands/sequence.c:1466 #, c-format -msgid "MAXVALUE (%lld) is out of range for sequence data type %s" -msgstr "MAXVALUE (%lld) მიმდევრობის მონაცემის ტიპის დიაპაზონს გარეთაა %s" +msgid "MAXVALUE (%) is out of range for sequence data type %s" +msgstr "MAXVALUE (%) მიმდევრობის მონაცემის ტიპის დიაპაზონს გარეთაა %s" -#: commands/sequence.c:1488 +#: commands/sequence.c:1498 #, c-format -msgid "MINVALUE (%lld) is out of range for sequence data type %s" -msgstr "MINVALUE (%lld) მიმდევრობის მონაცემის ტიპის დიაპაზონს გარეთაა %s" +msgid "MINVALUE (%) is out of range for sequence data type %s" +msgstr "MINVALUE (%) მიმდევრობის მონაცემის ტიპის დიაპაზონს გარეთაა %s" -#: commands/sequence.c:1496 +#: commands/sequence.c:1506 #, c-format -msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" -msgstr "MINVALUE (%lld)-ი MAXVALUE (%lld)-ზე ნაკლები არ უნდა იყოს" +msgid "MINVALUE (%) must be less than MAXVALUE (%)" +msgstr "MINVALUE (%)-ი MAXVALUE (%)-ზე ნაკლები არ უნდა იყოს" -#: commands/sequence.c:1517 +#: commands/sequence.c:1527 #, c-format -msgid "START value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "START -ის მნიშვნელობა (%lld)-ი MINVALUE (%lld)-ზე ნაკლები არ უნდა იყოს" +msgid "START value (%) cannot be less than MINVALUE (%)" +msgstr "START -ის მნიშვნელობა (%)-ი MINVALUE (%)-ზე ნაკლები არ უნდა იყოს" -#: commands/sequence.c:1523 +#: commands/sequence.c:1533 #, c-format -msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "START -ის მნიშვნელობა (%lld)-ი MAXVALUE (%lld)-ზე მეტი არ უნდა იყოს" +msgid "START value (%) cannot be greater than MAXVALUE (%)" +msgstr "START -ის მნიშვნელობა (%)-ი MAXVALUE (%)-ზე მეტი არ უნდა იყოს" -#: commands/sequence.c:1547 +#: commands/sequence.c:1557 #, c-format -msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" -msgstr "RESTART -ის მნიშვნელობა (%lld) MINVALUE (%lld)-ზე ნაკლები არ უნდა იყოს" +msgid "RESTART value (%) cannot be less than MINVALUE (%)" +msgstr "RESTART -ის მნიშვნელობა (%) MINVALUE (%)-ზე ნაკლები არ უნდა იყოს" -#: commands/sequence.c:1553 +#: commands/sequence.c:1563 #, c-format -msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" -msgstr "RESTART -ის მნიშვნელობა (%lld) MAXVALUE (%lld)-ზე დიდი არ უნდა იყოს" +msgid "RESTART value (%) cannot be greater than MAXVALUE (%)" +msgstr "RESTART -ის მნიშვნელობა (%) MAXVALUE (%)-ზე დიდი არ უნდა იყოს" -#: commands/sequence.c:1564 +#: commands/sequence.c:1574 #, c-format -msgid "CACHE (%lld) must be greater than zero" -msgstr "CACHE (%lld) ნულზე მეტი უნდა იყოს" +msgid "CACHE (%) must be greater than zero" +msgstr "CACHE (%) ნულზე მეტი უნდა იყოს" -#: commands/sequence.c:1600 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "არასწორი პარამეტრი OWNED BY" -#: commands/sequence.c:1601 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "მიუთითეთ OWNED BY ცხრილი.სვეტი ან OWNED BY NONE." -#: commands/sequence.c:1626 +#: commands/sequence.c:1636 #, c-format msgid "sequence cannot be owned by relation \"%s\"" msgstr "მიმდევრობის მფლობელი ურთიერთობა %s ვერ იქნება" -#: commands/sequence.c:1634 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "მიმდევრობას იგივე მფლობელი უნდა ჰყავდეს, რაც ცხრილს, რომელზედაც ის მიბმულია" -#: commands/sequence.c:1638 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "მიმდევრობას იგივე სქემა უნდა ჰქონდეს, რაც ცხრილს, რომელზედაც ის მიბმულია" -#: commands/sequence.c:1660 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "იდენტიფიკაციის მიმდევრობის მფლობელის შეცვლა შეუძლებელია" -#: commands/sequence.c:1661 commands/tablecmds.c:14387 commands/tablecmds.c:17081 +#: commands/sequence.c:1671 commands/tablecmds.c:16069 commands/tablecmds.c:18907 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "მიმდევრობა %s მიბმულია ცხრილზე \"%s\"." -#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1886 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "'CREATE STATISTICS'-ში მხოლოდ ერთი ურთიერთობაა დაშვებული" @@ -9775,1756 +9846,1912 @@ msgstr "სტატისტიკის ობიექტი უკვე ა msgid "cannot have more than %d columns in statistics" msgstr "სტატისტიკაში %d-ზე მეტი სვეტი ვერ გექნებათ" -#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 +#: commands/statscmds.c:247 commands/statscmds.c:276 commands/statscmds.c:316 #, c-format msgid "statistics creation on system columns is not supported" msgstr "სისტემურ სვეტებზე სტატისტიკის შექმნა შეუძლებელია" -#: commands/statscmds.c:254 commands/statscmds.c:277 +#: commands/statscmds.c:253 commands/statscmds.c:282 commands/statscmds.c:322 +#, c-format +msgid "statistics creation on virtual generated columns is not supported" +msgstr "ვირტუალურ გენერირებულ სვეტებზე სტატისტიკის შექმნა მხარდაჭერილი არაა" + +#: commands/statscmds.c:260 commands/statscmds.c:289 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "სვეტს \"%s\" სტატისტიკაში ვერ გამოიყენებთ, რადგან მის ტიპს (\"%s\") ნაგულისხმევი ორობითი ხის ოპერატორის კლასი არ გააჩნია" -#: commands/statscmds.c:321 +#: commands/statscmds.c:339 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "" -#: commands/statscmds.c:342 +#: commands/statscmds.c:360 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "როცა სტატისტიკის აგება ერთ გამოსახულებაზე მიმდინარეობს, სტატისტიკის ტიპის მითითება შეუძლებელია" -#: commands/statscmds.c:371 +#: commands/statscmds.c:389 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "სტატისტიკის უცნობი ტიპი: \"%s\"" -#: commands/statscmds.c:400 +#: commands/statscmds.c:418 #, c-format msgid "extended statistics require at least 2 columns" msgstr "გაფართოებულ სტატისტიკას მინიმუმ 2 სვეტი სჭირდება" -#: commands/statscmds.c:418 +#: commands/statscmds.c:436 #, c-format msgid "duplicate column name in statistics definition" msgstr "სვეტის დუბლირებული სახელი სტატისტიკის აღწერაში" -#: commands/statscmds.c:453 +#: commands/statscmds.c:471 #, c-format msgid "duplicate expression in statistics definition" msgstr "დუბლირებული გამოსახულება სტატისტიკის აღწერაში" -#: commands/statscmds.c:628 commands/tablecmds.c:8628 +#: commands/statscmds.c:646 commands/tablecmds.c:8914 #, c-format msgid "statistics target %d is too low" msgstr "სტატისტიკის სამიზნე %d ძალიან დაბალია" -#: commands/statscmds.c:636 commands/tablecmds.c:8636 +#: commands/statscmds.c:654 commands/tablecmds.c:8922 #, c-format msgid "lowering statistics target to %d" msgstr "სტატისტიკის სამიზნის ჩამოწევა %d-მდე" -#: commands/statscmds.c:660 +#: commands/statscmds.c:678 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "სტატისტიკის ობიექტი \"%s.%s\" არ არსებობს, გამოტოვება" -#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 -#, c-format -msgid "unrecognized subscription parameter: \"%s\"" -msgstr "უცნობი გამოწერის პარამეტრი: \"%s\"" - -#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:397 +#: commands/subscriptioncmds.c:331 replication/pgoutput/pgoutput.c:410 #, c-format msgid "unrecognized origin value: \"%s\"" msgstr "\"origin\"-ის უცნობი მნიშვნელობა: \"%s\"" -#: commands/subscriptioncmds.c:363 +#: commands/subscriptioncmds.c:354 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "\"WAL\"-ის არასწორი მდებარეობა (LSN): %s" +#: commands/subscriptioncmds.c:363 +#, c-format +msgid "unrecognized subscription parameter: \"%s\"" +msgstr "უცნობი გამოწერის პარამეტრი: \"%s\"" + #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 commands/subscriptioncmds.c:439 +#: commands/subscriptioncmds.c:378 commands/subscriptioncmds.c:385 commands/subscriptioncmds.c:392 commands/subscriptioncmds.c:414 commands/subscriptioncmds.c:430 #, 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:429 commands/subscriptioncmds.c:445 +#: commands/subscriptioncmds.c:420 commands/subscriptioncmds.c:436 #, c-format msgid "subscription with %s must also set %s" msgstr "%s-ის გამოწერამ %s-იც უნდა დააყენოს" -#: commands/subscriptioncmds.c:506 +#: commands/subscriptioncmds.c:466 #, c-format msgid "could not receive list of publications from the publisher: %s" msgstr "გამომცემლისგან პუბლიკაციების სიის მიღება შეუძლებელია: %s" -#: commands/subscriptioncmds.c:538 +#: commands/subscriptioncmds.c:498 #, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" msgstr[0] "პუბლიკაცია \"%s\" არ არსებობს" msgstr[1] "პუბლიკაცია \"%s\" არ არსებობს" -#: commands/subscriptioncmds.c:626 +#: commands/subscriptioncmds.c:586 #, c-format msgid "permission denied to create subscription" msgstr "გამოწერის შექმნის წვდომა აკრძალულია" -#: commands/subscriptioncmds.c:627 +#: commands/subscriptioncmds.c:587 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "გამოწერების შექმნა მხოლოდ \"%s\" როლის პრივილეგიების მქონეებს შეუძლიათ." -#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 replication/logical/worker.c:4503 +#: commands/subscriptioncmds.c:718 commands/subscriptioncmds.c:852 commands/subscriptioncmds.c:1594 #, c-format -msgid "could not connect to the publisher: %s" -msgstr "პუბლიკაციის სერვერთან მიერთების პრობლემა: %s" +msgid "subscription \"%s\" could not connect to the publisher: %s" +msgstr "გამოწერა \"%s\" ვერ უერთდება გამომცემელს: %s" -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:790 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "გამომცემელზე შექმნილია რეპლიკაციის სეტი \"%s\"" -#: commands/subscriptioncmds.c:841 +#: commands/subscriptioncmds.c:802 #, c-format msgid "subscription was created, but is not connected" msgstr "გამოწერა შეიქმნა, მაგრამ მიერთებული არაა" -#: commands/subscriptioncmds.c:842 +#: commands/subscriptioncmds.c:803 #, c-format msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." msgstr "რეპლიკაციის დასაწყებად ხელით უნდა შექმნათ რეპლიკაციის სლოტი, ჩართოთ გამოწერა და განაახლოთ გამოწერა." -#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 +#: commands/subscriptioncmds.c:1070 +#, c-format +msgid "cannot set option \"%s\" for enabled subscription" +msgstr "ჩართული გამოწერისთვის პარამეტრის \"%s\" დაყენება შეუძლებელია" + +#: commands/subscriptioncmds.c:1084 +#, c-format +msgid "cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "გამოწერებისთვის, რომლებსაც სლოტის სახელი არ აქვთ, პარამეტრს %s ვერ დავაყენებ" + +#: commands/subscriptioncmds.c:1127 commands/subscriptioncmds.c:1663 commands/subscriptioncmds.c:2044 utils/cache/lsyscache.c:3824 #, c-format msgid "subscription \"%s\" does not exist" msgstr "გამოწერა \"%s\" არ არსებობს" -#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 +#: commands/subscriptioncmds.c:1185 #, c-format msgid "cannot set %s for enabled subscription" msgstr "ჩართული გამოწერისთვის %s-ის დაყენება შეუძლებელია" -#: commands/subscriptioncmds.c:1233 +#: commands/subscriptioncmds.c:1270 +#, c-format +msgid "slot_name and two_phase cannot be altered at the same time" +msgstr "slot_name და two_phase ერთდროულად ვერ შეიცვლება" + +#: commands/subscriptioncmds.c:1286 +#, c-format +msgid "cannot alter two_phase when logical replication worker is still running" +msgstr "two_phase-ის შეცვლა შეუძლებელია, როცა ლოგიკური რეპლიკაციის დამხმარე პროცესი ჯერ კიდევ გაშვებულია" + +#: commands/subscriptioncmds.c:1287 +#, c-format +msgid "Try again after some time." +msgstr "სცადეთ კიდევ ერთხელ რაღაც დროის შემდეგ." + +#: commands/subscriptioncmds.c:1300 #, c-format -msgid "cannot set %s for a subscription that does not have a slot name" -msgstr "გამოწერებისთვის, რომლებსაც სლოტის სახელი არ აქვთ, %s-ს ვერ დავაყენებ" +msgid "cannot disable two_phase when prepared transactions are present" +msgstr "" + +#: commands/subscriptioncmds.c:1301 +#, c-format +msgid "Resolve these transactions and try again." +msgstr "გადაწყვიტეთ ეს ტრანზაქციები და თავიდან სცადეთ." -#: commands/subscriptioncmds.c:1279 +#: commands/subscriptioncmds.c:1348 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "გამოწერების, რომლებსაც სლოტის სახელი არ აქვთ, ჩართვა შეუძლებელია" -#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 +#: commands/subscriptioncmds.c:1392 commands/subscriptioncmds.c:1443 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION განახლებით დაუშვებელია გათიშული გამოწერებისთვის" -#: commands/subscriptioncmds.c:1324 +#: commands/subscriptioncmds.c:1393 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "გამოიყენეთ ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (განახლება = გამორთულია)." -#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 +#: commands/subscriptioncmds.c:1402 commands/subscriptioncmds.c:1457 #, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" msgstr "ALTER SUBSCRIPTION ... განახლებით და copy_data-ით დაუშვებელია, როცა two_phase ჩართულია" -#: commands/subscriptioncmds.c:1334 +#: commands/subscriptioncmds.c:1403 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "გამოიყენეთ ALTER SUBSCRIPTION ... SET PUBLICATION refresh = false-ით, copy_data = false-ით ან გამოიყენეთ DROP/CREATE SUBSCRIPTION." #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1390 +#: commands/subscriptioncmds.c:1459 #, c-format msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "გამოიყენეთ %s 'refresh = false'-ით ან 'copy_data = false'-ით ან გამოიყენეთ DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1412 +#: commands/subscriptioncmds.c:1481 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH დაუშვებელია გათიშული გამოწერებისთვის" -#: commands/subscriptioncmds.c:1437 +#: commands/subscriptioncmds.c:1506 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" msgstr "ALTER SUBSCRIPTION ... REFRESH -ი copy_data-ით დაუშვებელია, როცა two_phase ჩართულია" -#: commands/subscriptioncmds.c:1438 +#: commands/subscriptioncmds.c:1507 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "გამოიყენეთ ALTER SUBSCRIPTION ... REFRESH 'copy_data = false'-ით ან DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1473 +#: commands/subscriptioncmds.c:1542 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "გამოტოვება WAL-ის მდებარეობა (LSN %X/%X) საწყის LSN-ზე %X/%X დიდი უნდა იყოს" -#: commands/subscriptioncmds.c:1594 +#: commands/subscriptioncmds.c:1667 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "გამოწერა \"%s\" არ არსებობს. გამოტოვება" -#: commands/subscriptioncmds.c:1863 +#: commands/subscriptioncmds.c:1934 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "გამომცემელზე რეპლიკაციის სეტი \"%s\" წაშლილია" -#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 +#: commands/subscriptioncmds.c:1943 commands/subscriptioncmds.c:1951 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "შეუძლებელია რეპლიკაციის სლოტის \"%s\" წაშლა გამომცემელზე: %s" -#: commands/subscriptioncmds.c:2005 +#: commands/subscriptioncmds.c:2076 #, c-format msgid "subscription with OID %u does not exist" msgstr "გამოწერა OID-ით %u არ არსებობს" -#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 +#: commands/subscriptioncmds.c:2150 commands/subscriptioncmds.c:2274 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "შეცდომა რეპლიცირებული ცხრილების სიის მიგება გამომცემლისგან: %s" -#: commands/subscriptioncmds.c:2112 +#: commands/subscriptioncmds.c:2186 #, c-format msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" msgstr "" -#: commands/subscriptioncmds.c:2114 +#: commands/subscriptioncmds.c:2188 #, c-format msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." msgstr[0] "" msgstr[1] "" -#: commands/subscriptioncmds.c:2117 +#: commands/subscriptioncmds.c:2191 #, c-format msgid "Verify that initial data copied from the publisher tables did not come from other origins." msgstr "" -#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 replication/pgoutput/pgoutput.c:1117 +#: commands/subscriptioncmds.c:2296 replication/logical/tablesync.c:904 replication/pgoutput/pgoutput.c:1162 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "" -#: commands/subscriptioncmds.c:2273 +#: commands/subscriptioncmds.c:2346 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" msgstr "რეპლიკაციის სლოტის \"%s\" წაშლის მცდელობისას გამომცემელთან მიერთება შეუძლებელია: %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2276 +#: commands/subscriptioncmds.c:2349 #, c-format msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." msgstr "გამოწერის გასათიშად გამოიყენეთ %s, შემდეგ კი, სლოტთან ასოცირების მოსახსნელად, %s გამოიყენეთ." -#: commands/subscriptioncmds.c:2307 +#: commands/subscriptioncmds.c:2380 #, c-format msgid "publication name \"%s\" used more than once" msgstr "პუბლიკაციის სახელი \"%s\" ერთზე მეტჯერ გამოიყენება" -#: commands/subscriptioncmds.c:2351 +#: commands/subscriptioncmds.c:2424 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "პუბლიკაცია \"%s\" უკვე \"%s\" გამოწერაშია" -#: commands/subscriptioncmds.c:2365 +#: commands/subscriptioncmds.c:2438 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "პუბლიკაცია \"%s\" \"%s\" გამოწერაში არაა" -#: commands/subscriptioncmds.c:2376 +#: commands/subscriptioncmds.c:2449 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "გამოწერიდან ყველა პუბლიკაციას ვერ წაშლით" -#: commands/subscriptioncmds.c:2433 +#: commands/subscriptioncmds.c:2506 #, c-format msgid "%s requires a Boolean value or \"parallel\"" msgstr "%s -ს ლოგიკური მნიშვნელობა უნდა ჰქონდეს, ან \"parallel\"" -#: commands/tablecmds.c:255 commands/tablecmds.c:297 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 #, c-format msgid "table \"%s\" does not exist" msgstr "ცხრილი არ არსებობს: %s" -#: commands/tablecmds.c:256 commands/tablecmds.c:298 +#: commands/tablecmds.c:259 commands/tablecmds.c:301 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "ცხრილი \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:258 commands/tablecmds.c:300 +#: commands/tablecmds.c:261 commands/tablecmds.c:303 msgid "Use DROP TABLE to remove a table." msgstr "ცხრილის წასაშლელად გამოიყენეთ DROP TABLE." -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:264 #, c-format msgid "sequence \"%s\" does not exist" msgstr "მიმდევრობა \"%s\" არ არსებობს" -#: commands/tablecmds.c:262 +#: commands/tablecmds.c:265 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "მიმდევრობა \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:267 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "მიმდევრობის წასაშლელად გამოიყენეთ DROP SEQUENCE." -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:270 #, c-format msgid "view \"%s\" does not exist" msgstr "ხედი \"%s\" არ არსებობს" -#: commands/tablecmds.c:268 +#: commands/tablecmds.c:271 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "ხედი \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:270 +#: commands/tablecmds.c:273 msgid "Use DROP VIEW to remove a view." msgstr "ხედის წასაშლელად გამოიყენეთ DROP VIEW." -#: commands/tablecmds.c:273 +#: commands/tablecmds.c:276 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "მატერიალიზებული ხედი \"%s\" არ არსებობს" -#: commands/tablecmds.c:274 +#: commands/tablecmds.c:277 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "მატერიალიზებული ხედი \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:276 +#: commands/tablecmds.c:279 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "მატერიალიზებული ხედის წასაშლელად გამოიყენეთ DROP MATERIALIZED VIEW." -#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19627 parser/parse_utilcmd.c:2226 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 commands/tablecmds.c:21562 parser/parse_utilcmd.c:2407 #, c-format msgid "index \"%s\" does not exist" msgstr "ინდექსი \"%s\" არ არსებობს" -#: commands/tablecmds.c:280 commands/tablecmds.c:304 +#: commands/tablecmds.c:283 commands/tablecmds.c:307 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "ინდექსი \"%s\" არ არსებობს, გამოტოვება" -#: commands/tablecmds.c:282 commands/tablecmds.c:306 +#: commands/tablecmds.c:285 commands/tablecmds.c:309 msgid "Use DROP INDEX to remove an index." msgstr "ინდექსის წასაშლელად გამოიყენეთ DROP INDEX." -#: commands/tablecmds.c:287 +#: commands/tablecmds.c:290 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\" ტიპი არაა" -#: commands/tablecmds.c:288 +#: commands/tablecmds.c:291 msgid "Use DROP TYPE to remove a type." msgstr "ტიპის წასაშლელად გამოიყენეთ DROP TYPE." -#: commands/tablecmds.c:291 commands/tablecmds.c:14226 commands/tablecmds.c:16786 +#: commands/tablecmds.c:294 commands/tablecmds.c:15908 commands/tablecmds.c:18609 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "გარე ცხრილი \"%s\" არ არსებობს" -#: commands/tablecmds.c:292 +#: commands/tablecmds.c:295 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "გარე ცხრილი \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:294 +#: commands/tablecmds.c:297 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "გარე ცხრილის წასაშლელად DROP FOREIGN TABLE გამოიყენეთ." -#: commands/tablecmds.c:722 +#: commands/tablecmds.c:802 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT მხოლოდ დროებით ცხრილებზე გამოიყენება" -#: commands/tablecmds.c:753 +#: commands/tablecmds.c:819 +#, c-format +msgid "partitioned tables cannot be unlogged" +msgstr "დაყოფილი ცხრილების ჟურნალის გამორთვა შეუძლებელია" + +#: commands/tablecmds.c:839 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "უსაფრთხოებაზე-შეზღუდული ოპერაციის შიგნით დროებითი ცხრილის შექმნა შეუძლებელია" -#: commands/tablecmds.c:789 commands/tablecmds.c:15645 +#: commands/tablecmds.c:875 commands/tablecmds.c:17333 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "ურთიერთობა \"%s\" მემკვირდრეობით ერზე მეტჯერ იქნებოდა მიღებული" -#: commands/tablecmds.c:1055 +#: commands/tablecmds.c:1133 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\" დაყოფილი არაა" -#: commands/tablecmds.c:1149 +#: commands/tablecmds.c:1227 #, c-format msgid "cannot partition using more than %d columns" msgstr "%d-ზე მეტი სვეტის გამოყენებით დაყოფა შეუძლებელია" -#: commands/tablecmds.c:1205 +#: commands/tablecmds.c:1283 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "დაყოფილი ცხრილის (%s) გარე დანაყოფს ვერ შექმნით" -#: commands/tablecmds.c:1207 +#: commands/tablecmds.c:1285 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "ცხრილი %s შეიცავს სვეტებს, რომლებიც უნიკალურია." -#: commands/tablecmds.c:1326 commands/tablecmds.c:13242 +#: commands/tablecmds.c:1415 commands/tablecmds.c:14908 #, c-format msgid "too many array dimensions" msgstr "მასივის მეტისმეტად ბევრი განზომილება" -#: commands/tablecmds.c:1331 parser/parse_clause.c:774 parser/parse_relation.c:1912 +#: commands/tablecmds.c:1420 parser/parse_clause.c:772 parser/parse_relation.c:1929 #, c-format msgid "column \"%s\" cannot be declared SETOF" msgstr "სვეტი \"%s\" არ შეიძლება გამოცხადდეს SETOF" -#: commands/tablecmds.c:1477 +#: commands/tablecmds.c:1549 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY-ს ერთზე მეტი ობიექტის წაშლის მხარდაჭერა არ გააჩნია" -#: commands/tablecmds.c:1481 +#: commands/tablecmds.c:1553 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY-ს CASCADE-ის მხარდაჭერა არ გააჩნია" -#: commands/tablecmds.c:1585 +#: commands/tablecmds.c:1657 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "დაყოფილ ინდექსს \"%s\" პარალელურად ვერ წაშლით" -#: commands/tablecmds.c:1873 +#: commands/tablecmds.c:1945 #, c-format msgid "cannot truncate only a partitioned table" msgstr "თვითონ დაყოფილი ცხრილის დაცარიელება შეუძლებელია" -#: commands/tablecmds.c:1874 +#: commands/tablecmds.c:1946 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "არ მიუთითოთ საკვანძო სიტყვა ONLY, ან პირდაპირ დანაყოფებზე გამოიყენეთ TRUNCATE ONLY." -#: commands/tablecmds.c:1947 +#: commands/tablecmds.c:2019 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "მოკვეთა გადაეცემა ცხრილამდე %s" -#: commands/tablecmds.c:2308 +#: commands/tablecmds.c:2380 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "გარე ცხრილის (\"%s\") მოკვეთის შეცდომა" -#: commands/tablecmds.c:2365 +#: commands/tablecmds.c:2437 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილების მოკვეთის შეცდომა" -#: commands/tablecmds.c:2594 commands/tablecmds.c:15542 +#: commands/tablecmds.c:2675 commands/tablecmds.c:17230 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "დაყოფილი ცხრილიდან \"%s\" მემკვიდრეობის მიღება შეუძლებელია" -#: commands/tablecmds.c:2599 +#: commands/tablecmds.c:2680 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "დანაყოფიდან \"%s\" მემკვიდრეობის მიღება შეუძლებელია" -#: commands/tablecmds.c:2607 parser/parse_utilcmd.c:2456 parser/parse_utilcmd.c:2598 +#: commands/tablecmds.c:2688 parser/parse_utilcmd.c:2678 parser/parse_utilcmd.c:2866 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "მემკვიდრეობით მიღებული ურთიერთობა \"%s\" ცხრილს ან გარე ცხრილს არ წარმოადგენს" -#: commands/tablecmds.c:2619 commands/tablecmds.c:20391 +#: commands/tablecmds.c:2700 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "შეუძლებელია შექმნათ დროებით ურთიერთობა, რომელიც მუდმივი ურთიერთობის \"%s\" დანაყოფი იქნება" -#: commands/tablecmds.c:2628 commands/tablecmds.c:15521 +#: commands/tablecmds.c:2709 commands/tablecmds.c:17209 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "დროებითი ურთიერთობიდან (%s) მემკვიდრეობითობა შეუძლებელია" -#: commands/tablecmds.c:2638 commands/tablecmds.c:15529 +#: commands/tablecmds.c:2719 commands/tablecmds.c:17217 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "სხვა სესიის დროებითი ურთიერთობიდან მემკვიდრეობითობა შეუძლებელია" -#: commands/tablecmds.c:2779 commands/tablecmds.c:2833 commands/tablecmds.c:12925 parser/parse_utilcmd.c:1240 parser/parse_utilcmd.c:1283 parser/parse_utilcmd.c:1710 parser/parse_utilcmd.c:1818 +#: commands/tablecmds.c:2874 commands/tablecmds.c:2928 commands/tablecmds.c:14591 parser/parse_utilcmd.c:1418 parser/parse_utilcmd.c:1463 parser/parse_utilcmd.c:1895 parser/parse_utilcmd.c:2003 #, c-format msgid "cannot convert whole-row table reference" msgstr "" -#: commands/tablecmds.c:2780 parser/parse_utilcmd.c:1241 +#: commands/tablecmds.c:2875 parser/parse_utilcmd.c:1419 #, c-format msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." msgstr "" -#: commands/tablecmds.c:2834 parser/parse_utilcmd.c:1284 +#: commands/tablecmds.c:2929 parser/parse_utilcmd.c:1464 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "" -#: commands/tablecmds.c:2944 commands/tablecmds.c:3215 +#: commands/tablecmds.c:3051 commands/tablecmds.c:3345 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "ცხრილი \"%s\" მემკვიდრეობით იღებს გენერირებული ცხრილიდან, მაგრამ ნაგულისხმევიც მითითებულია" -#: commands/tablecmds.c:2949 commands/tablecmds.c:3220 +#: commands/tablecmds.c:3056 commands/tablecmds.c:3350 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "ცხრილი \"%s\" მემკვიდრეობით იღებს გენერირებული ცხრილიდან, მაგრამ იდენტიფიკაციაც მითითებულია" -#: commands/tablecmds.c:2957 commands/tablecmds.c:3228 +#: commands/tablecmds.c:3064 commands/tablecmds.c:3358 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "შვილი სვეტისთვის \"%s\" მითითებულია გენერაციის გამოსახულება" -#: commands/tablecmds.c:2959 commands/tablecmds.c:3230 +#: commands/tablecmds.c:3066 commands/tablecmds.c:3360 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "შვილი ცხრილის სვეტი არ შეიძლება, გენერირებული იყოს, თუ მისი მშობელიც არაა." -#: commands/tablecmds.c:3005 +#: commands/tablecmds.c:3072 commands/tablecmds.c:3366 commands/tablecmds.c:17495 +#, c-format +msgid "column \"%s\" inherits from generated column of different kind" +msgstr "ცხრილი \"%s\" მემკვიდრეობით იღებს სხვა ტიპის გენერირებული სვეტიდან" + +#: commands/tablecmds.c:3074 commands/tablecmds.c:3368 commands/tablecmds.c:17496 +#, c-format +msgid "Parent column is %s, child column is %s." +msgstr "მშობელი სვეტია %s, შვილი სვეტია %s." + +#: commands/tablecmds.c:3121 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "სვეტი \"%s\" მემკვიდრეობით კონფლიქტის მქონე გენერაციის გამოსახულებას იღებს" -#: commands/tablecmds.c:3007 +#: commands/tablecmds.c:3123 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "კონფლიქტის გადასაჭრელად გენერაციის გამოსახულება აშკარად მიუთითეთ." -#: commands/tablecmds.c:3011 +#: commands/tablecmds.c:3127 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "სვეტი \"%s\" მემკვიდრეობით ურთიერთგამომრიცხავ ნაგულისხმევ მნიშვნელობებს იღებს" -#: commands/tablecmds.c:3013 +#: commands/tablecmds.c:3129 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "კონფლიქტის გადასაჭრელად ნაგულისხმევი აშკარად მიუთითეთ." -#: commands/tablecmds.c:3068 +#: commands/tablecmds.c:3196 #, c-format msgid "check constraint name \"%s\" appears multiple times but with different expressions" msgstr "შემოწმების შეზღუდვის სახელი \"%s\" ბევრჯერ გამოჩნდა, მაგრამ სხვადასხვა გამოსახულებებთან ერთად" -#: commands/tablecmds.c:3119 +#: commands/tablecmds.c:3249 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "სვეტის (\"%s\") შერწყმა მემკვიდრეობითი აღწერით" -#: commands/tablecmds.c:3123 +#: commands/tablecmds.c:3253 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "" -#: commands/tablecmds.c:3124 +#: commands/tablecmds.c:3254 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "" -#: commands/tablecmds.c:3136 +#: commands/tablecmds.c:3266 #, c-format msgid "column \"%s\" has a type conflict" msgstr "ტიპის კონფლიქტი სვეტში \"%s\"" -#: commands/tablecmds.c:3138 commands/tablecmds.c:3172 commands/tablecmds.c:3188 commands/tablecmds.c:3295 commands/tablecmds.c:3328 commands/tablecmds.c:3344 parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 parser/parse_param.c:223 +#: commands/tablecmds.c:3268 commands/tablecmds.c:3302 commands/tablecmds.c:3318 commands/tablecmds.c:3434 commands/tablecmds.c:3462 commands/tablecmds.c:3478 parser/parse_coerce.c:2190 parser/parse_coerce.c:2210 parser/parse_coerce.c:2230 parser/parse_coerce.c:2251 parser/parse_coerce.c:2306 parser/parse_coerce.c:2340 parser/parse_coerce.c:2416 parser/parse_coerce.c:2447 parser/parse_coerce.c:2486 parser/parse_coerce.c:2553 parser/parse_param.c:224 #, c-format msgid "%s versus %s" msgstr "%s-ი %s-ის წინააღმდეგ" -#: commands/tablecmds.c:3150 +#: commands/tablecmds.c:3280 #, c-format msgid "column \"%s\" has a collation conflict" msgstr "კოლაციის კონფლიქტი სვეტში \"%s\"" -#: commands/tablecmds.c:3152 commands/tablecmds.c:3314 commands/tablecmds.c:7088 +#: commands/tablecmds.c:3282 commands/tablecmds.c:3448 commands/tablecmds.c:7277 #, c-format msgid "\"%s\" versus \"%s\"" msgstr "'%s\" -ი \"%s\"-ის წინააღმდეგ" -#: commands/tablecmds.c:3170 +#: commands/tablecmds.c:3300 #, c-format msgid "column \"%s\" has a storage parameter conflict" msgstr "საცავის პარამეტრის კონფლიქტი სვეტში \"%s\"" -#: commands/tablecmds.c:3186 commands/tablecmds.c:3342 +#: commands/tablecmds.c:3316 commands/tablecmds.c:3476 #, c-format msgid "column \"%s\" has a compression method conflict" msgstr "სვეტის (%s) შეკუმშვის მეთოდის კონფლიქტი" -#: commands/tablecmds.c:3281 +#: commands/tablecmds.c:3420 #, c-format msgid "merging multiple inherited definitions of column \"%s\"" msgstr "მიმდინარეობს სვეტის (\"%s\") მიერ მემკვიდრეობით მიღებული აღწერების შერწყმა" -#: commands/tablecmds.c:3293 +#: commands/tablecmds.c:3432 #, c-format msgid "inherited column \"%s\" has a type conflict" msgstr "მემკივდრეობითი სვეტის \"%s\" ტიპის კონფლიქტი" -#: commands/tablecmds.c:3312 +#: commands/tablecmds.c:3446 #, c-format msgid "inherited column \"%s\" has a collation conflict" msgstr "მემკივდრეობითი სვეტის \"%s\" კოლაციის კონფლიქტი" -#: commands/tablecmds.c:3326 +#: commands/tablecmds.c:3460 #, c-format msgid "inherited column \"%s\" has a storage parameter conflict" msgstr "მემკივდრეობითი სვეტის \"%s\" საცავის პარამეტრის კონფლიქტი" -#: commands/tablecmds.c:3354 +#: commands/tablecmds.c:3488 #, c-format msgid "inherited column \"%s\" has a generation conflict" msgstr "მემკივდრეობითი სვეტის \"%s\" თაობის კონფლიქტი" -#: commands/tablecmds.c:3573 +#: commands/tablecmds.c:3719 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილების გადაადგილება შეუძლებელია" -#: commands/tablecmds.c:3643 +#: commands/tablecmds.c:3792 #, c-format msgid "cannot rename column of typed table" msgstr "ტიპიზირებული ცხრილის სვეტის გარდაქმნა შეუძლებელია" -#: commands/tablecmds.c:3662 +#: commands/tablecmds.c:3811 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "ურთიერთობის (\"%s\") სვეტების სახელის გადარქმევა შეუძლებელია" -#: commands/tablecmds.c:3757 +#: commands/tablecmds.c:3906 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "მემკვიდრეობით მიღებული სვეტს (\"%s\") სახელი შვილ ცხრილებშიც უნდა გადაერქვას" -#: commands/tablecmds.c:3789 +#: commands/tablecmds.c:3938 #, c-format msgid "cannot rename system column \"%s\"" msgstr "სისტემური სვეტის \"%s\" გადარქმევა შეუძლებელია" -#: commands/tablecmds.c:3804 +#: commands/tablecmds.c:3953 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "მემკვიდრეობითი სვეტის (\"%s\") სახელის გადარქმევა შეუძლებელია" -#: commands/tablecmds.c:3956 +#: commands/tablecmds.c:4108 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "მემკვიდრეობით მიღებული შეზღუდვას (\"%s\") სახელი შვილ ცხრილებშიც უნდა გადაერქვას" -#: commands/tablecmds.c:3963 +#: commands/tablecmds.c:4115 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "მემკვიდრეობითი შეზღუდვის (\"%s\") სახელის გადარქმევა შეუძლებელია" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4260 +#: commands/tablecmds.c:4415 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "%s-ის \"%s\" შეუძლებელია, რადგან ის ამ სესიაში აქტიური მოთხოვნების მიერ გამოიყენება" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4269 +#: commands/tablecmds.c:4424 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "%s-ის \"%s\" შეუძლებელია, რადგან მას დარჩენილი ტრიგერის მოვლენები გააჩნია" -#: commands/tablecmds.c:4295 +#: commands/tablecmds.c:4450 #, c-format msgid "cannot alter temporary tables of other sessions" msgstr "სხვა სესიების დროებითი ცხრილების შეცვლა შეუძლებელია" -#: commands/tablecmds.c:4776 +#: commands/tablecmds.c:4914 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "არასრული მოხსნის მქონე დანაყოფის \"%s\" შეცვლა შეუძლებელია" -#: commands/tablecmds.c:4980 commands/tablecmds.c:4995 +#: commands/tablecmds.c:5143 #, c-format msgid "cannot change persistence setting twice" msgstr "შენახვის პარამეტრების ორჯერ შეცვლა შეუძლებელია" -#: commands/tablecmds.c:5016 +#: commands/tablecmds.c:5160 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "ერთზე მეტი SET ACCESS METHOD ქვებრძანება ვერ გექნებათ" -#: commands/tablecmds.c:5772 +#: commands/tablecmds.c:5894 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "სისტემური შეერთების \"%s\" გადაწერა შეუძლებელია" -#: commands/tablecmds.c:5778 +#: commands/tablecmds.c:5900 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "კატალოგის ცხრილად გამოყენებული ცხრილის \"%s\" თავიდან ჩაწერა შეუძლებელია" -#: commands/tablecmds.c:5790 +#: commands/tablecmds.c:5912 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "სხვა სესიების დროებით ცხრილებს ვერ გადააწერთ" -#: commands/tablecmds.c:6285 +#: commands/tablecmds.c:6448 commands/tablecmds.c:6468 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "ურთიერთობის %2$s სვეტი %1$s ნულოვან მნიშვნელობებს შეიცავს" -#: commands/tablecmds.c:6302 +#: commands/tablecmds.c:6485 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "ურთიერთობის (\"%2$s\") შემოწმების შეზღუდვა \"%1$s\" რომელიღაც მწკრივის მიერ ირღვევა" -#: commands/tablecmds.c:6321 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6505 partitioning/partbounds.c:3387 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "განახებული დანაყოფის შეზღუდვა ნაგულისხმევი დანაყოფისთვის \"%s\" რომელიღაც მწკრივის მიერ დაირღვეოდა" -#: commands/tablecmds.c:6327 +#: commands/tablecmds.c:6511 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "ურთიერთობის (\"%s\") დანაყოფის შეზღუდვა რომელიღაც მწკრივის მიერ ირღვევა" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6596 +#: commands/tablecmds.c:6776 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "ALTER-ის ქმედებას %s ურთიერთობაზე \"%s\" ვერ შეასრულებთ" -#: commands/tablecmds.c:6851 commands/tablecmds.c:6858 +#: commands/tablecmds.c:7031 commands/tablecmds.c:7038 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "ტიპის \"%s\" შეცვლა შეუძლებელია, რადგან მას სვეტი \"%s.%s\" იყენებს" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:7045 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "გარე ცხრილის \"%s\" შეცვლა შეუძლებელია, რადგან სვეტი \"%s.%s\" თავისი მწკრივის ტიპს იყენებს" -#: commands/tablecmds.c:6872 +#: commands/tablecmds.c:7052 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "ცხრილის \"%s\" შეცვლა შეუძლებელია, რადგან სვეტი \"%s.%s\" თავისი მწკრივის ტიპს იყენებს" -#: commands/tablecmds.c:6928 +#: commands/tablecmds.c:7108 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "ტიპის \"%s\" შეცვლა შეუძლებელია, რადგან ის ტიპიზირებული ცხრილის ტიპისაა" -#: commands/tablecmds.c:6930 +#: commands/tablecmds.c:7110 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "ტიპიზირებული ცხრილების ჩასასწორებლად გამოიყენეთ ALTER ... CASCADE." -#: commands/tablecmds.c:6976 +#: commands/tablecmds.c:7156 +#, c-format +msgid "type %s is the row type of another table" +msgstr "ტიპი %s სხვა ცხრილის მწკრივის ტიპია" + +#: commands/tablecmds.c:7158 +#, c-format +msgid "A typed table must use a stand-alone composite type created with CREATE TYPE." +msgstr "" + +#: commands/tablecmds.c:7163 #, c-format msgid "type %s is not a composite type" msgstr "ტიპი %s კომპოზიტური არაა" -#: commands/tablecmds.c:7003 +#: commands/tablecmds.c:7190 #, c-format msgid "cannot add column to typed table" msgstr "ტიპიზირებულ ცხრილში სვეტების ჩამატება შეუძლებელია" -#: commands/tablecmds.c:7051 +#: commands/tablecmds.c:7240 #, c-format msgid "cannot add column to a partition" msgstr "დანაყოფს სვეტს ვერ დაუმატებთ" -#: commands/tablecmds.c:7080 commands/tablecmds.c:15760 +#: commands/tablecmds.c:7269 commands/tablecmds.c:17451 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "შვილ ცხრილს \"%s\" სვეტისთვის \"%s\" სხვა ტიპი გააჩნია" -#: commands/tablecmds.c:7086 commands/tablecmds.c:15766 +#: commands/tablecmds.c:7275 commands/tablecmds.c:17457 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "შვილ ცხრილს \"%s\" სვეტისთვის \"%s\" სხვა კოლაცია გააჩნია" -#: commands/tablecmds.c:7104 +#: commands/tablecmds.c:7293 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "მიმდინარეობს აღწერის შერწყმა სვეტისთვის \"%s\" შვილისთვის \"%s\"" -#: commands/tablecmds.c:7157 +#: commands/tablecmds.c:7346 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "ცხრილისთვის, რომელსაც შვილი ცხრილები გააჩნია, იდენტიფიკაციის სვეტის რეკურსიული დამატება შეუძლებელია" -#: commands/tablecmds.c:7370 +#: commands/tablecmds.c:7593 #, c-format msgid "column must be added to child tables too" msgstr "სვეტი შვილ ცხრილებსაც უნდა დაემატოთ" -#: commands/tablecmds.c:7448 +#: commands/tablecmds.c:7671 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "ურთიერთობის (%2$s) სვეტი %1$s უკვე რსებობს. გამოტოვება" -#: commands/tablecmds.c:7455 +#: commands/tablecmds.c:7678 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "ურთიერთობის (%2$s) სვეტი %1$s უკვე რსებობს" -#: commands/tablecmds.c:7521 commands/tablecmds.c:12564 -#, c-format -msgid "cannot remove constraint from only the partitioned table when partitions exist" -msgstr "შეზღუდვის წაშლა მხოლოდ დაყოფილი ცხრილიდან მაშინ, როცა დანაყოფები არსებობს, შეუძლებელია" - -#: commands/tablecmds.c:7522 commands/tablecmds.c:7836 commands/tablecmds.c:8014 commands/tablecmds.c:8121 commands/tablecmds.c:8238 commands/tablecmds.c:9057 commands/tablecmds.c:12565 -#, c-format -msgid "Do not specify the ONLY keyword." -msgstr "ONLY არ მიუთითოთ." - -#: commands/tablecmds.c:7558 commands/tablecmds.c:7762 commands/tablecmds.c:7904 commands/tablecmds.c:8036 commands/tablecmds.c:8165 commands/tablecmds.c:8259 commands/tablecmds.c:8360 commands/tablecmds.c:8517 commands/tablecmds.c:8670 commands/tablecmds.c:8751 commands/tablecmds.c:8885 commands/tablecmds.c:12718 commands/tablecmds.c:14249 commands/tablecmds.c:16875 +#: commands/tablecmds.c:7769 commands/tablecmds.c:7936 commands/tablecmds.c:8137 commands/tablecmds.c:8268 commands/tablecmds.c:8397 commands/tablecmds.c:8491 commands/tablecmds.c:8594 commands/tablecmds.c:8790 commands/tablecmds.c:8956 commands/tablecmds.c:9047 commands/tablecmds.c:9181 commands/tablecmds.c:14366 commands/tablecmds.c:15931 commands/tablecmds.c:18698 #, c-format msgid "cannot alter system column \"%s\"" msgstr "სისტემური სვეტის \"%s\" შეცვლა შეუძლებელია" -#: commands/tablecmds.c:7564 commands/tablecmds.c:7910 +#: commands/tablecmds.c:7775 commands/tablecmds.c:8143 commands/tablecmds.c:14127 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" იდენტიფიკატორი სვეტია" -#: commands/tablecmds.c:7605 -#, c-format -msgid "column \"%s\" is in a primary key" -msgstr "სვეტი \"%s\" პირველადი გასაღებია" - -#: commands/tablecmds.c:7610 -#, c-format -msgid "column \"%s\" is in index used as replica identity" -msgstr "სვეტი \"%s\" რეპლიკის იდენტიფიკატორად გამოყენებული ინდექსია" - -#: commands/tablecmds.c:7633 +#: commands/tablecmds.c:7792 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "სვეტი \"%s\" მშობელ ცხრილში NOT NULL-ით დანიშნული არაა" -#: commands/tablecmds.c:7833 commands/tablecmds.c:9541 +#: commands/tablecmds.c:8014 commands/tablecmds.c:9988 #, c-format msgid "constraint must be added to child tables too" msgstr "შეზღუდვა შვილ ცხრილებსაც უნდა დაემატოთ" -#: commands/tablecmds.c:7834 +#: commands/tablecmds.c:8015 commands/tablecmds.c:8246 commands/tablecmds.c:8353 commands/tablecmds.c:8470 commands/tablecmds.c:9354 commands/tablecmds.c:12190 #, c-format -msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." -msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" უკვე NOT NULL არაა." +msgid "Do not specify the ONLY keyword." +msgstr "ONLY არ მიუთითოთ." -#: commands/tablecmds.c:7919 +#: commands/tablecmds.c:8152 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" გენერირებული სვეტია" -#: commands/tablecmds.c:8013 +#: commands/tablecmds.c:8245 #, c-format msgid "cannot add identity to a column of only the partitioned table" msgstr "მხოლოდ, დაყოფილი ცხრილში იდენტიფიკაციას სვეტს ვერ დაამატებთ" -#: commands/tablecmds.c:8019 +#: commands/tablecmds.c:8251 #, c-format msgid "cannot add identity to a column of a partition" msgstr "დანაყოფს სვეტს იდენტიფიკატორს ვერ დაუმატებთ" -#: commands/tablecmds.c:8047 +#: commands/tablecmds.c:8279 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" უნდა აღწეროთ როგორც NOT NULL მანამდე, სანამ იდენტიფიკაციას დაამატებთ" -#: commands/tablecmds.c:8053 +#: commands/tablecmds.c:8285 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" უკვე იდენტიფიკატორი სვეტია" -#: commands/tablecmds.c:8059 +#: commands/tablecmds.c:8291 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "ურთიერთობის \"%2$s\" სვეტს \"%1$s\" ნაგულისხმევი მნიშვნელობა უკვე გააჩნია" -#: commands/tablecmds.c:8120 +#: commands/tablecmds.c:8352 #, c-format msgid "cannot change identity column of only the partitioned table" msgstr "მხოლოდ, დაყოფილი ცხრილის იდენტიფიკაციის სვეტს ვერ შეცვლით" -#: commands/tablecmds.c:8126 +#: commands/tablecmds.c:8358 #, c-format msgid "cannot change identity column of a partition" msgstr "დანაყოფის იდენტიფიკაციის სვეტს ვერ შეცვლით" -#: commands/tablecmds.c:8171 commands/tablecmds.c:8267 +#: commands/tablecmds.c:8403 commands/tablecmds.c:8499 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" იდენტიფიკატორი სვეტი არაა" -#: commands/tablecmds.c:8237 +#: commands/tablecmds.c:8469 #, c-format msgid "cannot drop identity from a column of only the partitioned table" msgstr "მხოლოდ, დაყოფილი ცხრილში სვეტიდან იდენტიფიკაციას ვერ წაშლით" -#: commands/tablecmds.c:8243 +#: commands/tablecmds.c:8475 #, c-format msgid "cannot drop identity from a column of a partition" msgstr "დანაყოფს სვეტიდან იდენტიფიკატორს ვერ წაშლით" -#: commands/tablecmds.c:8272 +#: commands/tablecmds.c:8504 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" იდენტიფიკატორი სვეტი არაა. გამოტოვება" -#: commands/tablecmds.c:8366 +#: commands/tablecmds.c:8601 commands/tablecmds.c:8811 #, c-format msgid "column \"%s\" of relation \"%s\" is not a generated column" msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" გენერირებული სვეტი არაა" -#: commands/tablecmds.c:8464 +#: commands/tablecmds.c:8612 +#, c-format +msgid "ALTER TABLE / SET EXPRESSION is not supported for virtual generated columns on tables with check constraints" +msgstr "ALTER TABLE / SET EXPRESSION მხარდაჭერილი არაა შემოწმების შეზღუდვების მქონე ვირტუალური გენერირებული სვეტებისთვის" + +#: commands/tablecmds.c:8613 commands/tablecmds.c:8631 commands/tablecmds.c:8803 +#, c-format +msgid "Column \"%s\" of relation \"%s\" is a virtual generated column." +msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" ვირტუალური გენერირებული სვეტია." + +#: commands/tablecmds.c:8630 +#, c-format +msgid "ALTER TABLE / SET EXPRESSION is not supported for virtual generated columns on tables that are part of a publication" +msgstr "ALTER TABLE / SET EXPRESSION მხარდაჭერილი არაა ვირტუალურ გენერირებულ სვეტებზე ცხრილებზე, რომლებიც გამოცემის ნაწილი არიან" + +#: commands/tablecmds.c:8737 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION შვილ ცხრილებზეც უნდა გადატარდეს" -#: commands/tablecmds.c:8486 +#: commands/tablecmds.c:8759 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "მემკვიდრეობითი სვეტიდან გენერაციის გამოსახულების წაშლა შეუძლებელია" -#: commands/tablecmds.c:8525 +#: commands/tablecmds.c:8802 #, c-format -msgid "column \"%s\" of relation \"%s\" is not a stored generated column" -msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" დამახსოვრებული გენერირებული სვეტი არაა" +msgid "ALTER TABLE / DROP EXPRESSION is not supported for virtual generated columns" +msgstr "ALTER TABLE / DROP EXPRESSION ვირტუალურ გენერირებულ სვეტებზე მხარდაჭერილი არაა" -#: commands/tablecmds.c:8530 +#: commands/tablecmds.c:8816 #, c-format -msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" -msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" დამახსოვრებული გენერირებული სვეტი არაა. გამოტოვება" +msgid "column \"%s\" of relation \"%s\" is not a generated column, skipping" +msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" გენერირებული სვეტი არაა. გამოტოვება" -#: commands/tablecmds.c:8608 +#: commands/tablecmds.c:8894 #, c-format msgid "cannot refer to non-index column by number" msgstr "არა-ინდექსი სვეტის ნომრით მიმართვა შეუძლებელია" -#: commands/tablecmds.c:8660 +#: commands/tablecmds.c:8946 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "ურთიერთობის (%2$s) სვეტი (%1$d) არ არსებობს" -#: commands/tablecmds.c:8679 +#: commands/tablecmds.c:8966 +#, c-format +msgid "cannot alter statistics on virtual generated column \"%s\"" +msgstr "შეუძლებელია სტატისტიკის შეცვლა ვირტუალურ გენერირებულ სვეტზე \"%s\"" + +#: commands/tablecmds.c:8975 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "ინდექსის \"%2$s\" ჩასმული სვეტის \"%1$s\" სტატისტიკის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:8684 +#: commands/tablecmds.c:8980 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" -#: commands/tablecmds.c:8686 +#: commands/tablecmds.c:8982 #, c-format msgid "Alter statistics on table column instead." msgstr "ამის ნაცვლად ცხრილის სვეტის სტატისტიკა შეცვალეთ." -#: commands/tablecmds.c:8932 +#: commands/tablecmds.c:9228 #, c-format msgid "cannot drop column from typed table" msgstr "ტიპიზირებული ცხრილის სვეტის წაშლა შეუძლებელია" -#: commands/tablecmds.c:8995 +#: commands/tablecmds.c:9292 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "სვეტი \"%s\" ურთიერთობაში \"%s\" არ არსებობს. გამოტოვება" -#: commands/tablecmds.c:9008 +#: commands/tablecmds.c:9305 #, c-format msgid "cannot drop system column \"%s\"" msgstr "სისტემური სვეტის \"%s\" წაშლა შეუძლებელია" -#: commands/tablecmds.c:9018 +#: commands/tablecmds.c:9315 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "მემკვიდრეობით მიღებული სვეტის \"%s\" წაშლა შეუძლებელია" -#: commands/tablecmds.c:9031 +#: commands/tablecmds.c:9328 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "" -#: commands/tablecmds.c:9056 +#: commands/tablecmds.c:9353 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "" -#: commands/tablecmds.c:9261 +#: commands/tablecmds.c:9518 +#, c-format +msgid "column \"%s\" of table \"%s\" is not marked NOT NULL" +msgstr "ცხრილის \"%2$s\" სვეტი \"%1$s\" არაა დანიშნული, როგორც NOT NULL" + +#: commands/tablecmds.c:9554 commands/tablecmds.c:9566 +#, c-format +msgid "cannot create primary key on column \"%s\"" +msgstr "ძირითადი გასაღების შექმნა სვეტზე \"%s\" შეუძლებელია" + +#. translator: fourth %s is a constraint characteristic such as NOT VALID +#: commands/tablecmds.c:9556 commands/tablecmds.c:9568 +#, c-format +msgid "The constraint \"%s\" on column \"%s\" of table \"%s\", marked %s, is incompatible with a primary key." +msgstr "" + +#: commands/tablecmds.c:9692 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX დაყოფილ ცხრილებზე მხარდაუჭერელია" -#: commands/tablecmds.c:9286 +#: commands/tablecmds.c:9717 #, 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:9623 +#: commands/tablecmds.c:10075 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "" -#: commands/tablecmds.c:9629 -#, c-format -msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" -msgstr "" - -#: commands/tablecmds.c:9632 -#, c-format -msgid "This feature is not yet supported on partitioned tables." -msgstr "ეს ოპერაცია დაყოფილი ცხრილებისთვის ჯერჯერობით მხარდაჭერილი არაა." - -#: commands/tablecmds.c:9639 commands/tablecmds.c:10095 +#: commands/tablecmds.c:10083 commands/tablecmds.c:10710 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "მითითებული ურთიერთობა \"%s\" ცხრილი არაა" -#: commands/tablecmds.c:9662 +#: commands/tablecmds.c:10106 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "მუდმივ ცხრილებზე არსებული შეზღუდვები მხოლოდ მუდმივ ცხრილებზე შეიძლება, მიუთითებდეს" -#: commands/tablecmds.c:9669 +#: commands/tablecmds.c:10113 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "ჟურნალის გარეშე მყოფი ცხრილების შეზღუდვები მხოლოდ მუდმივ ან ჟურნალის გარეშე მყოფ ცხრილებზე შეიძლება, მიუთითებდეს" -#: commands/tablecmds.c:9675 +#: commands/tablecmds.c:10119 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "დროებით ცხრილებზე არსებული შეზღუდვები მხოლოდ დროებით ცხრილებზე შეიძლება, მიუთითებდეს" -#: commands/tablecmds.c:9679 +#: commands/tablecmds.c:10123 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "დროებითი ცხრილის შეზღუდვები მიმდინარე სესიის დროებით ცხრილებს უნდა მიმართავდეს" -#: commands/tablecmds.c:9743 commands/tablecmds.c:9749 +#: commands/tablecmds.c:10138 commands/tablecmds.c:10166 +#, c-format +msgid "foreign key uses PERIOD on the referenced table but not the referencing table" +msgstr "" + +#: commands/tablecmds.c:10178 +#, c-format +msgid "foreign key uses PERIOD on the referencing table but not the referenced table" +msgstr "" + +#: commands/tablecmds.c:10192 +#, c-format +msgid "foreign key must use PERIOD when referencing a primary using WITHOUT OVERLAPS" +msgstr "" + +#: commands/tablecmds.c:10216 commands/tablecmds.c:10222 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "არასწორი ქმედება %s გარე გასაღების შეზღუდვის შემცველი გენერირებული სვეტისთვის" -#: commands/tablecmds.c:9765 +#: commands/tablecmds.c:10237 +#, c-format +msgid "foreign key constraints on virtual generated columns are not supported" +msgstr "ვირტუალურ გენერირებულ სვეტებზე გარე გასაღების შეზღუდვები მხარდაჭერილი არაა" + +#: commands/tablecmds.c:10251 commands/tablecmds.c:10260 +#, c-format +msgid "unsupported %s action for foreign key constraint using PERIOD" +msgstr "მხარდაუჭერელი %s ქმედება გარე გასაღების შეზღუდვისთვის, რომელიც PERIOD-ს იყენებს" + +#: commands/tablecmds.c:10275 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "" -#: commands/tablecmds.c:9872 +#: commands/tablecmds.c:10331 +#, c-format +msgid "could not identify an overlaps operator for foreign key" +msgstr "ვერ აღმოვაჩინე გადაფარვების ოპერატორი გარე გასაღებისთვის" + +#: commands/tablecmds.c:10332 +#, c-format +msgid "could not identify an equality operator for foreign key" +msgstr "გარე გასაღებისთვის ტოლობის ოპერატორი ვერ ვიპოვე" + +#: commands/tablecmds.c:10397 commands/tablecmds.c:10431 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "გარე გასაღების შეზღუდვის \"%s\" განხორციელება შეუძლებელია" -#: commands/tablecmds.c:9874 +#: commands/tablecmds.c:10399 +#, c-format +msgid "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table are of incompatible types: %s and %s." +msgstr "მიმმართველი ცხრილის გასაღების სვეტები \"%s\" და მიმართვადი ცხრილის გასაღების სვეტები \"%s\" შეუთავსებელი ტიპისაა: %s და %s." + +#: commands/tablecmds.c:10432 #, c-format -msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." -msgstr "გასაღების სვეტები \"%s\" და \"%s\" შეუთავსებელი ტიპებისაა: %s და %s." +msgid "Key columns \"%s\" of the referencing table and \"%s\" of the referenced table have incompatible collations: \"%s\" and \"%s\". If either collation is nondeterministic, then both collations have to be the same." +msgstr "" -#: commands/tablecmds.c:10031 +#: commands/tablecmds.c:10638 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "" -#: commands/tablecmds.c:10305 commands/tablecmds.c:10775 parser/parse_utilcmd.c:797 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:11020 commands/tablecmds.c:11466 parser/parse_utilcmd.c:941 parser/parse_utilcmd.c:1086 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "გარე გასაღების შეზღუდვები გარე ცხრილებზე მხარდაჭერილი არაა" -#: commands/tablecmds.c:11328 commands/tablecmds.c:11609 commands/tablecmds.c:12521 commands/tablecmds.c:12595 +#: commands/tablecmds.c:11449 +#, c-format +msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"" +msgstr "ცხრილს \"%s\" ვერ მივამაგრებ დანაყოფს, რომელსაც მიმართავს გარე გარე გასაღები \"%s\"" + +#: commands/tablecmds.c:11730 +#, c-format +msgid "constraint \"%s\" enforceability conflicts with constraint \"%s\" on relation \"%s\"" +msgstr "შეზღუდვის \"%s\" ნაძალადევობა კონფლიქტშია შეზღუდვასთან \"%s\" ურთიერთობაზე \"%s\"" + +#: commands/tablecmds.c:12189 +#, c-format +msgid "constraint must be altered in child tables too" +msgstr "შეზღუდვა შვილ ცხრილებშიც უნდა შეიცვალოს" + +#: commands/tablecmds.c:12218 commands/tablecmds.c:12912 commands/tablecmds.c:14006 commands/tablecmds.c:14235 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "ურთიერთობის \"%2$s\" შეზღუდვა \"%1$s\" არ არსებობს" -#: commands/tablecmds.c:11335 +#: commands/tablecmds.c:12225 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "ურთიერთობის (\"%2$s\") შეზღუდვა \"%1$s\" გარე გასაღების შეზღუდვა არაა" -#: commands/tablecmds.c:11373 +#: commands/tablecmds.c:12230 +#, c-format +msgid "cannot alter enforceability of constraint \"%s\" of relation \"%s\"" +msgstr "ურთიერთობაზე \"%2$s\" შეზღუდვის \"%1$s\" ძალით დაყენებადობის შეცვლა შეუძლებელია" + +#: commands/tablecmds.c:12236 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" is not a not-null constraint" +msgstr "ურთიერთობის \"%2$s\" შეზღუდვა \"%1$s\" არანულოვანი შეზღუდვა არაა" + +#: commands/tablecmds.c:12244 +#, c-format +msgid "cannot alter inherited constraint \"%s\" on relation \"%s\"" +msgstr "ურთიერთობაზე \"%2$s\" მემკვიდრეობით მიღებული შეზღუდვის \"%1$s\" წაშლა შეუძლებელია" + +#: commands/tablecmds.c:12284 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "ურთიერთობაზე \"%2$s\" შეზღუდვის \"%1$s\" შეცვლა შეუძლებელია" -#: commands/tablecmds.c:11376 +#: commands/tablecmds.c:12287 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "შეზღუდვა \"%1$s\" ურთიერთობის \"%3$s\" შეზღუდვიდანა \"%2$s\"-ია ნაწარმოები." -#: commands/tablecmds.c:11378 +#: commands/tablecmds.c:12289 #, c-format msgid "You may alter the constraint it derives from instead." -msgstr "" +msgstr "ამის მაგიერ, შეიგძლიათ, შეცვალოთ შეზღუდვა, რომლიდანაც ის მიღებულია." + +#: commands/tablecmds.c:12921 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" is not a foreign key, check, or not-null constraint" +msgstr "შეზღუდვა \"%s\" ურთიერთობისთვის \"%s\" გარე გასაღებს, შემოწმებას, ან არანულოვან შეზღუდვას არ წარმოადგენს" -#: commands/tablecmds.c:11617 +#: commands/tablecmds.c:12927 #, c-format -msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" -msgstr "ურთიერთობის (\"%2$s\") შეზღუდვა \"%1$s\" გარე გასაღები ან შემოწმების შეზღუდვა არაა" +msgid "cannot validate NOT ENFORCED constraint" +msgstr "შეზღუდვის NOT ENFORCED დადასტურება შეუძლებელია" -#: commands/tablecmds.c:11694 +#: commands/tablecmds.c:13116 commands/tablecmds.c:13216 #, c-format msgid "constraint must be validated on child tables too" msgstr "შეზღუდვა შვილ ცხრილებზეც უნდა გადამოწმდეს" -#: commands/tablecmds.c:11781 +#: commands/tablecmds.c:13293 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "გარე გასაღების შეზღუდვაში მითითებული სვეტი \"%s\" არ არსებობს" -#: commands/tablecmds.c:11787 +#: commands/tablecmds.c:13299 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "უცხო გასაღებებში სისტემურ სვეტებს ვერ გამოიყენებთ" -#: commands/tablecmds.c:11791 +#: commands/tablecmds.c:13303 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "გარე გასაღებში %d გასაღებზე მეტი ვერ გექნებათ" -#: commands/tablecmds.c:11856 +#: commands/tablecmds.c:13371 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "" -#: commands/tablecmds.c:11873 +#: commands/tablecmds.c:13388 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "მითითებული ცხრილისთვის \"%s\" ძირითადი გასაღები არ არსებობს" -#: commands/tablecmds.c:11941 +#: commands/tablecmds.c:13461 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "" -#: commands/tablecmds.c:12033 +#: commands/tablecmds.c:13564 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" -#: commands/tablecmds.c:12038 +#: commands/tablecmds.c:13569 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "" -#: commands/tablecmds.c:12477 +#: commands/tablecmds.c:14010 +#, c-format +msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" +msgstr "ურთიერთობის (\"%2$s\") შეზღუდვა (\"%1$s\") არ არსებობს. გამოტოვება" + +#: commands/tablecmds.c:14055 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "მემკვიდრეობით მიღებული ურთიერთობის \"%2$s\" შეზღუდვის \"%1$s\" წაშლა შეუძლებელია" -#: commands/tablecmds.c:12527 +#: commands/tablecmds.c:14107 #, c-format -msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" -msgstr "ურთიერთობის (\"%2$s\") შეზღუდვა (\"%1$s\") არ არსებობს. გამოტოვება" +msgid "column \"%s\" is in a primary key" +msgstr "სვეტი \"%s\" პირველადი გასაღებია" + +#: commands/tablecmds.c:14115 +#, c-format +msgid "column \"%s\" is in index used as replica identity" +msgstr "სვეტი \"%s\" რეპლიკის იდენტიფიკატორად გამოყენებული ინდექსია" -#: commands/tablecmds.c:12702 +#: commands/tablecmds.c:14348 #, c-format msgid "cannot alter column type of typed table" msgstr "ტიპიზირებული ცხრილის სვეტის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:12729 +#: commands/tablecmds.c:14376 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "გენერირებული სვეტის ტიპის შეცვლისას USING-ს ვერ მიუთითებთ" + +#: commands/tablecmds.c:14377 commands/tablecmds.c:19757 commands/tablecmds.c:19850 commands/trigger.c:659 rewrite/rewriteHandler.c:949 rewrite/rewriteHandler.c:984 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "სვეტი \"%s\" გენერირებული სვეტია." + +#: commands/tablecmds.c:14388 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "მემკვიდრეობით მიღებული სვეტის \"%s\" შეცვლა შეუძლებელია" -#: commands/tablecmds.c:12738 +#: commands/tablecmds.c:14397 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "სვეტის \"%s\" შეცვლა შეუძლებელია, რადგან ის ურთიერთობის \"%s\" დანაყოფის გასაღების ნაწილია" -#: commands/tablecmds.c:12788 +#: commands/tablecmds.c:14452 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "" -#: commands/tablecmds.c:12791 +#: commands/tablecmds.c:14455 #, c-format msgid "You might need to add an explicit cast." msgstr "შეიძლება აშკარა დაკასტვა უნდა დაამატოთ." -#: commands/tablecmds.c:12795 +#: commands/tablecmds.c:14459 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "სვეტის \"%s\" ავტომატური დაკასტვა ტიპამდე %s შეუძლებელია" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12798 +#: commands/tablecmds.c:14463 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "შეიძლება, გჭირდებათ, მიუთითოთ \"USING %s::%s\"." -#: commands/tablecmds.c:12897 +#: commands/tablecmds.c:14563 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "ურთიერთობის \"%2$s\" სვეტის \"%1$s\" შეცვლა შეუძლებელია" -#: commands/tablecmds.c:12926 +#: commands/tablecmds.c:14592 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "" -#: commands/tablecmds.c:12937 +#: commands/tablecmds.c:14603 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "" -#: commands/tablecmds.c:13062 +#: commands/tablecmds.c:14728 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "სვეტის (\"%s\") ტიპის ორჯერ შეცვლა შეუძლებელია" -#: commands/tablecmds.c:13100 +#: commands/tablecmds.c:14766 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "" -#: commands/tablecmds.c:13105 +#: commands/tablecmds.c:14771 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" -#: commands/tablecmds.c:13409 +#: commands/tablecmds.c:15075 #, c-format msgid "cannot alter type of a column used by a function or procedure" msgstr "ფუნქციის ან პროცედურის მიერ გამოყენებული სვეტის ტიპის შექმნა შეუძლებელია" -#: commands/tablecmds.c:13410 commands/tablecmds.c:13425 commands/tablecmds.c:13445 commands/tablecmds.c:13464 commands/tablecmds.c:13523 +#: commands/tablecmds.c:15076 commands/tablecmds.c:15091 commands/tablecmds.c:15111 commands/tablecmds.c:15130 commands/tablecmds.c:15189 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s ეყრდნობა სვეტს \"%s\"" -#: commands/tablecmds.c:13424 +#: commands/tablecmds.c:15090 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "ხედის ან წესის მიერ გამოყენებული სვეტის ტიპის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:13444 +#: commands/tablecmds.c:15110 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "ტრიგერის აღწერაში გამოყენებული სვეტის ტიპის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:13463 +#: commands/tablecmds.c:15129 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "პოლიტიკის აღწერაში გამოყენებული სვეტის ტიპის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:13494 +#: commands/tablecmds.c:15160 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "გენერირებული სვეტის მიერ გამოყენებული სვეტის ტიპის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:13495 +#: commands/tablecmds.c:15161 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "სვეტი (%s\") გენერირებული სვეტის (%s) მიერ გამოიყენება." -#: commands/tablecmds.c:13522 +#: commands/tablecmds.c:15188 #, c-format msgid "cannot alter type of a column used by a publication WHERE clause" msgstr "გამოცემის WHERE პირობის მიერ გამოყენებული სვეტის ტიპის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:14357 commands/tablecmds.c:14369 +#: commands/tablecmds.c:16039 commands/tablecmds.c:16051 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "ინდექსის \"%s\" მფლობელის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:14359 commands/tablecmds.c:14371 +#: commands/tablecmds.c:16041 commands/tablecmds.c:16053 #, c-format msgid "Change the ownership of the index's table instead." msgstr "ამის მაგიერ ინდექსის ცხრილის მფლობელი შეცვალეთ." -#: commands/tablecmds.c:14385 +#: commands/tablecmds.c:16067 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "მიმდევრობის \"%s\" მფლობელის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:14410 +#: commands/tablecmds.c:16092 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "ურთიერთობის \"%s\" მფლობელის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:14877 +#: commands/tablecmds.c:16559 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "ერთზე მეტი SET TABLESPACE ქვებრძანება ვერ გექნებათ" -#: commands/tablecmds.c:14954 +#: commands/tablecmds.c:16638 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "ურთიერთობის (%s) პარამეტრების დაყენება შეუძლებელია" -#: commands/tablecmds.c:14988 commands/view.c:440 +#: commands/tablecmds.c:16672 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION მხოლოდ ავტომატურად განახლებად ხედებზეა მხარდაჭერილი" -#: commands/tablecmds.c:15238 +#: commands/tablecmds.c:16925 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "ცხრილის სივრცეში მხოლოდ ცხრილები, ინდექსები და მატერიალიზებული ხედები შეიძლება არსებობდეს" -#: commands/tablecmds.c:15250 +#: commands/tablecmds.c:16937 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "ცხრილების სივრცეში pg_globl ურთიერთობების შეტანა/გამოტანა შეუძლებელია" -#: commands/tablecmds.c:15342 +#: commands/tablecmds.c:17029 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "შეწყვეტა, რადგან ბლოკი ურთიერთობაზე \"%s.%s\" ხელმისაწვდომი არაა" -#: commands/tablecmds.c:15358 +#: commands/tablecmds.c:17045 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "ცხრილების სივრცეში \"%s\" ურთიერთობა, რომელიც ემთხვევა, ვერ ვიპოვე" -#: commands/tablecmds.c:15480 +#: commands/tablecmds.c:17167 #, c-format msgid "cannot change inheritance of typed table" msgstr "ტიპიზირებული ცხრილის მემკვიდრეობითობის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:15485 commands/tablecmds.c:15985 +#: commands/tablecmds.c:17172 commands/tablecmds.c:17756 #, c-format msgid "cannot change inheritance of a partition" msgstr "დანაყოფის მემკვიდრეობითობის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:15490 +#: commands/tablecmds.c:17177 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "დაყოფილი ცხრილის მემკვიდრეობითობის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:15536 +#: commands/tablecmds.c:17224 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "სხვა სესიის დროებითი ურთიერთობის მემკვიდრეობით მიღება შეუძლებელია" -#: commands/tablecmds.c:15549 +#: commands/tablecmds.c:17237 #, c-format msgid "cannot inherit from a partition" msgstr "დანაყოფიდან მემკვიდრეობითობა შეუძლებელია" -#: commands/tablecmds.c:15571 commands/tablecmds.c:18453 +#: commands/tablecmds.c:17259 commands/tablecmds.c:20270 #, c-format msgid "circular inheritance not allowed" msgstr "წრიული მემკვიდრეობითობა დაუშვებელია" -#: commands/tablecmds.c:15572 commands/tablecmds.c:18454 +#: commands/tablecmds.c:17260 commands/tablecmds.c:20271 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" უკვე \"%s\"-ის შვილია." -#: commands/tablecmds.c:15585 +#: commands/tablecmds.c:17273 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "ტრიგერი \"%s\" ხელს უშლის ცხრილს \"%s\" მემკვიდრეობის შვილად გადაიქცეს" -#: commands/tablecmds.c:15587 +#: commands/tablecmds.c:17275 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "ROW ტრიგერები, რომლებსაც გარდამავალი ცხრილები გააჩნიათ, მემკვიდრეობითობის იერარქიებში მხარდაჭერილი არაა." -#: commands/tablecmds.c:15776 +#: commands/tablecmds.c:17476 commands/tablecmds.c:17725 #, c-format -msgid "column \"%s\" in child table must be marked NOT NULL" -msgstr "სვეტი \"%s\" შვილ ცხრილში NOT NULL-ით უნდა იყოს დანიშნული" +msgid "column \"%s\" in child table \"%s\" must be marked NOT NULL" +msgstr "სვეტი \"%s\" შვილ ცხრილში \"%s\" NOT NULL-ით უნდა იყოს დანიშნული" -#: commands/tablecmds.c:15785 +#: commands/tablecmds.c:17486 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "შვილ ცხრილში სვეტი \"%s\" გენერირებული სვეტი არ უნდა იყოს" -#: commands/tablecmds.c:15789 +#: commands/tablecmds.c:17490 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "შვილ ცხრილში სვეტი \"%s\" გენერირებული სვეტი არ უნდა იყოს" -#: commands/tablecmds.c:15827 +#: commands/tablecmds.c:17536 #, c-format msgid "child table is missing column \"%s\"" msgstr "შვილ ცხრილს აკლია სვეტი \"%s\"" -#: commands/tablecmds.c:15908 +#: commands/tablecmds.c:17653 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "შვილ ცხრილს \"%s\" შემოწმების შეზღუდვისთვის \"%s\" სხვა განსაზღვრება გააჩნია" -#: commands/tablecmds.c:15915 +#: commands/tablecmds.c:17662 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "შეზღუდვა \"%s\" კონფლიქტშია არა-მემკვიდრეობით მიღებულ შეზღუდვასთან შვილ ცხრილზე \"%s\"" -#: commands/tablecmds.c:15925 +#: commands/tablecmds.c:17673 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "შეზღუდვა \"%s\" კონფლიქტშია შეზღუდვასთან NOT VALID შვილ ცხრილზე \"%s\"" -#: commands/tablecmds.c:15963 +#: commands/tablecmds.c:17684 +#, c-format +msgid "constraint \"%s\" conflicts with NOT ENFORCED constraint on child table \"%s\"" +msgstr "შეზღუდვა \"%s\" კონფლიქტშია შეზღუდვასთან NOT ENFORCED შვილ ცხრილზე \"%s\"" + +#: commands/tablecmds.c:17733 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "შვილ ცხრილს აკლია შეზღუდვა \"%s\"" -#: commands/tablecmds.c:16049 +#: commands/tablecmds.c:17820 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "დანაყოფი \"%s\" უკვე დაყოფილი ცხრილიდან \"%s.%s\" მოხსნის რიგშია" -#: commands/tablecmds.c:16078 commands/tablecmds.c:16124 parser/parse_utilcmd.c:3261 +#: commands/tablecmds.c:17849 commands/tablecmds.c:17897 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "ურთიერთობა \"%s\" ურთიერთობის \"%s\" დანაყოფს არ წარმოადგენს" -#: commands/tablecmds.c:16130 +#: commands/tablecmds.c:17903 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "ურთიერთობა \"%s\" ურთიერთობის \"%s\" მშობელს არ წარმოადგენს" -#: commands/tablecmds.c:16357 +#: commands/tablecmds.c:18174 #, c-format msgid "typed tables cannot inherit" msgstr "ტიპიზირებულ ცხრილებს მემკვიდრეობითობა არ შეუძლიათ" -#: commands/tablecmds.c:16387 +#: commands/tablecmds.c:18204 #, c-format msgid "table is missing column \"%s\"" msgstr "ცხრილს აკლია სვეტი \"%s\"" -#: commands/tablecmds.c:16398 +#: commands/tablecmds.c:18215 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "ცხრილს აქვს სვეტი \"%s\" მაშინ, როცა ტიპი \"%s\"-ს მოითხოვს" -#: commands/tablecmds.c:16407 +#: commands/tablecmds.c:18224 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "ცხრილს \"%s\" სვეტისთვის \"%s\" სხვა ტიპი აქვს" -#: commands/tablecmds.c:16421 +#: commands/tablecmds.c:18238 #, c-format msgid "table has extra column \"%s\"" msgstr "ცხრილს აქვს დამატებითი სვეტი \"%s\"" -#: commands/tablecmds.c:16473 +#: commands/tablecmds.c:18290 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" ტიპიზირებული ცხრილი არაა" -#: commands/tablecmds.c:16647 +#: commands/tablecmds.c:18470 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "არაუნიკალურ ინდექსს \"%s\" რეპლიკის იდენტიფიკაციისთვის ვერ გამოიყენებთ" -#: commands/tablecmds.c:16653 +#: commands/tablecmds.c:18476 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "არასაუყოვნებლივ ინდექსს \"%s\" რეპლიკის იდენფიტიკაციისთვის ვერ გამოიყენებთ" -#: commands/tablecmds.c:16659 +#: commands/tablecmds.c:18482 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "გამოსახულების ინდექსს \"%s\" რეპლიკის იდენტიფიკაციისთვის ვერ გამოიყენებთ" -#: commands/tablecmds.c:16665 +#: commands/tablecmds.c:18488 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "ნაწილობრივი ინდექსის (\"%s\") რეპლიკის იდენტიფიკატორად გამოყენება შეუძლებელია" -#: commands/tablecmds.c:16682 +#: commands/tablecmds.c:18505 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "ინდექსს \"%s\" რეპლიკის იდენტიფიკაციისთვის ვერ გამოიყენებთ, რადგან სვეტი %d სისტემური სვეტია" -#: commands/tablecmds.c:16689 +#: commands/tablecmds.c:18512 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "ინდექსს \"%s\" რეპლიკის იდენტიფიკაციისთვის ვერ გამოიყენებთ, რადგან სვეტი %s განულებადია" -#: commands/tablecmds.c:16941 +#: commands/tablecmds.c:18761 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "ცხრილის \"%s\" ჟურნალში ჩაწერის სტატუსის შეცვლა შეუძლებელია, რადგან ის დროებითია" -#: commands/tablecmds.c:16965 +#: commands/tablecmds.c:18785 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "" -#: commands/tablecmds.c:16967 +#: commands/tablecmds.c:18787 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "უჟურნალო ურთიერთობების რეპლიკაცია შეუძლებელია." -#: commands/tablecmds.c:17012 +#: commands/tablecmds.c:18832 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "" -#: commands/tablecmds.c:17022 +#: commands/tablecmds.c:18842 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "" -#: commands/tablecmds.c:17080 +#: commands/tablecmds.c:18906 #, c-format msgid "cannot move an owned sequence into another schema" -msgstr "" +msgstr "მფლობელობაში არსებული მიმდევრობის სხვა სქემაში გადატანა შეუძლებელია" -#: commands/tablecmds.c:17185 +#: commands/tablecmds.c:19014 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "სქემაში (%2$s) ურთიერთობა (%1$s) უკვე არსებობს" -#: commands/tablecmds.c:17606 +#: commands/tablecmds.c:19439 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" ცხრილი ან მატერიალიზებული ხედი არაა" -#: commands/tablecmds.c:17759 +#: commands/tablecmds.c:19592 #, c-format msgid "\"%s\" is not a composite type" msgstr "ტიპი %s კომპოზიტური არაა" -#: commands/tablecmds.c:17789 +#: commands/tablecmds.c:19622 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "ინდექსის (%s) სქემის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:17791 commands/tablecmds.c:17805 +#: commands/tablecmds.c:19624 commands/tablecmds.c:19638 #, c-format msgid "Change the schema of the table instead." msgstr "ამის მაგიერ ცხრილის სქემა შეცვლათ." -#: commands/tablecmds.c:17795 +#: commands/tablecmds.c:19628 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "კომპოზიტური ტიპის (%s) სქემის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:19636 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "\"TOAST\" ცხრილის (%s) სქემის შეცვლა შეუძლებელია" -#: commands/tablecmds.c:17835 +#: commands/tablecmds.c:19668 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "ერთზე მეტ სვეტთან ერთად დაყოფის სტრატეგიას \"list\" ვერ გამოიყენებთ" -#: commands/tablecmds.c:17901 +#: commands/tablecmds.c:19734 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "დანაყოფის გასაღებში დასახელებული სვეტი \"%s\" არ არსებობს" -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:19742 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "დანაყოფის გასაღებში სისტემური სვეტის (%s) გამოყენება შეუძლებელია" -#: commands/tablecmds.c:17920 commands/tablecmds.c:18010 +#: commands/tablecmds.c:19756 commands/tablecmds.c:19849 #, c-format msgid "cannot use generated column in partition key" msgstr "გენერირებულ სვეტს დანაყოფის გასაღებში ვერ გამოიყენებთ" -#: commands/tablecmds.c:17921 commands/tablecmds.c:18011 commands/trigger.c:656 rewrite/rewriteHandler.c:934 rewrite/rewriteHandler.c:969 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "სვეტი \"%s\" გენერირებული სვეტია." - -#: commands/tablecmds.c:17993 +#: commands/tablecmds.c:19829 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "დანაყოფის გასაღების გამოსახულებები, არ შეიძლება, სისტემურ სვეტზე მითითებებს შეიცავდნენ" -#: commands/tablecmds.c:18040 +#: commands/tablecmds.c:19879 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "ფუნქცია დანაყოფის გასაღების გამოსახულებაში აუცილებლად უნდა იყოს მონიშნული, როგორც IMMUTABLE" -#: commands/tablecmds.c:18049 +#: commands/tablecmds.c:19888 #, c-format msgid "cannot use constant expression as partition key" msgstr "დაყოფის გასაღების გამოსახულებაში მუდმივ გამოსახულებას ვერ გამოიყენებთ" -#: commands/tablecmds.c:18070 +#: commands/tablecmds.c:19909 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "დანაყოფის გამოსახულებისათვის კოლაციის დადგენა შეუძლებელია" -#: commands/tablecmds.c:18105 +#: commands/tablecmds.c:19944 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "" -#: commands/tablecmds.c:18111 +#: commands/tablecmds.c:19950 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "" -#: commands/tablecmds.c:18393 +#: commands/tablecmds.c:20210 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" უკვე დანაყოფია" -#: commands/tablecmds.c:18399 +#: commands/tablecmds.c:20216 #, c-format msgid "cannot attach a typed table as partition" msgstr "ტიპიზირებული ცხრილის, როგორც დანაყოფის მიბმა შეუძლებელია" -#: commands/tablecmds.c:18415 +#: commands/tablecmds.c:20232 #, c-format msgid "cannot attach inheritance child as partition" msgstr "მემკვიდრეობის შვილის დანაყოფად მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18429 +#: commands/tablecmds.c:20246 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "მემკვიდრეობის მშობლის დანაყოფად მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18463 +#: commands/tablecmds.c:20280 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "დროებითი ურითერთობის, როგორც მუდმივი ურთიერთობის (\"%s\") დანაყოფის მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18471 +#: commands/tablecmds.c:20288 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "მუდმივი ურთიერთობის, როგორც დროებითი ურთიერთობის (%s) დანაყოფის მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18479 +#: commands/tablecmds.c:20296 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "სხვა სესიის დროებითი ურთიერთობის დანაყოფის მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18486 +#: commands/tablecmds.c:20303 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "სხვა სესიის დროებითი ურთიერთობის დანაყოფად მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18506 +#: commands/tablecmds.c:20323 #, c-format msgid "table \"%s\" being attached contains an identity column \"%s\"" msgstr "ცხრილი \"%s\", რომლის მიმაგრებაც მიმდინარეობს, შეიცავს იდენტიფიკაციის სვეტს \"%s\"" -#: commands/tablecmds.c:18508 +#: commands/tablecmds.c:20325 #, c-format msgid "The new partition may not contain an identity column." msgstr "ახალი დანაყოფი არ შეიძლება, იდენტიფიკატორის სვეტს შეიცავდეს." -#: commands/tablecmds.c:18516 +#: commands/tablecmds.c:20333 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "ცხრილი \"%s\" შეიცავს სვეტს \"%s\", რომელიც მშობელში \"%s\" აღმოჩენილი არაა" -#: commands/tablecmds.c:18519 +#: commands/tablecmds.c:20336 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "ახალი დანაყოფი მხოლოდ მშობელში არსებულ სვეტებს შეიძლება, შეიცავდეს." -#: commands/tablecmds.c:18531 +#: commands/tablecmds.c:20348 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "ტრიგერი \"%s\" ხელს უშლის ცხრილს \"%s\" დანაყოფად გადაიქცეს" -#: commands/tablecmds.c:18533 +#: commands/tablecmds.c:20350 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "დანაყოფებზე იდენტიფიკაციის სვეტები მხარდაჭერილი არაა." -#: commands/tablecmds.c:18694 +#: commands/tablecmds.c:20532 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "გარე ცხრილის \"%s\" დაყოფილი ცხრილის (\"%s\") დანაყოფის სახით მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:18697 +#: commands/tablecmds.c:20535 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "დაყოფილი ცხრილი \"%s\" უნიკალურ ცხრილებს შეიცავს." -#: commands/tablecmds.c:19019 +#: commands/tablecmds.c:20858 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "ნაგულისხმევი დანაყოფის არსებობის შემთხვევაში დანაყოფების ერთდროული მოხსნა შეუძლებელია" -#: commands/tablecmds.c:19128 +#: commands/tablecmds.c:20967 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "დაყოფილი ცხრილი \"%s\" ერთდროულად წაიშალა" -#: commands/tablecmds.c:19134 +#: commands/tablecmds.c:20973 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "დანაყოფი \"%s\" ერთდროულად წაიშალა" -#: commands/tablecmds.c:19661 commands/tablecmds.c:19681 commands/tablecmds.c:19702 commands/tablecmds.c:19721 commands/tablecmds.c:19763 +#: commands/tablecmds.c:21596 commands/tablecmds.c:21616 commands/tablecmds.c:21637 commands/tablecmds.c:21656 commands/tablecmds.c:21705 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "ერთი ინდექსის ინდექსის (%s) მეორე ინდექსის (\"%s) დანაყოფად მიმაგრება შეუძლებელია" -#: commands/tablecmds.c:19664 +#: commands/tablecmds.c:21599 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "ინდექსი %s სხვა ინდექსზეა უკვე მიმაგრებული." -#: commands/tablecmds.c:19684 +#: commands/tablecmds.c:21619 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "ინდექსი %s ცხრილის (%s) არცერთი დანაყოფის ინდექსი არაა." -#: commands/tablecmds.c:19705 +#: commands/tablecmds.c:21640 #, c-format msgid "The index definitions do not match." msgstr "ინდექსის აღწერები არ ემთხვევა." -#: commands/tablecmds.c:19724 +#: commands/tablecmds.c:21659 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "" -#: commands/tablecmds.c:19766 +#: commands/tablecmds.c:21708 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "ცხრილისთვის %s სხვა ინდექსი უკვე მიმაგრებულია." -#: commands/tablecmds.c:20002 +#: commands/tablecmds.c:21831 +#, c-format +msgid "invalid primary key definition" +msgstr "არასწორი ძირითადი გასაღების აღწერა" + +#: commands/tablecmds.c:21832 +#, c-format +msgid "Column \"%s\" of relation \"%s\" is not marked NOT NULL." +msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" არაა დანიშნული, როგორც NOT NULL." + +#: commands/tablecmds.c:21967 #, c-format msgid "column data type %s does not support compression" msgstr "სვეტის მონაცემის ტიპს (%s) შეკუმშვის მხარდაჭერა არ გააჩნია" -#: commands/tablecmds.c:20009 +#: commands/tablecmds.c:21974 #, c-format msgid "invalid compression method \"%s\"" msgstr "შეკუმშვის არასწორი მეთოდი \"%s\"" -#: commands/tablecmds.c:20035 +#: commands/tablecmds.c:22000 #, c-format msgid "invalid storage type \"%s\"" msgstr "საცავის არასწორი ტიპი \"%s\"" -#: commands/tablecmds.c:20045 +#: commands/tablecmds.c:22010 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "სვეტის მონაცემების ტიპს %s საცავის ტიპად მხოლოდ PLAIN შეიძლება, ჰქონდეს" -#: commands/tablecmds.c:20242 -#, c-format -msgid "can not find partition for split partition row" -msgstr "დაყოფილი დანაყოფის მწკრივისთვის დანაყოფი ვერ ვიპოვე" - -#: commands/tablecmds.c:20328 -#, c-format -msgid "cannot create as partition of temporary relation of another session" -msgstr "სხვა სესის დროებითი ურთიერთობის დანაყოფის სახით ვერ შექმნით" - -#: commands/tablecmds.c:20399 -#, c-format -msgid "cannot create a permanent relation as partition of temporary relation \"%s\"" -msgstr "მუდმივ ურთიერთობას დროებითი ურთიერთობის \"%s\" დანაყოფის სახით ვერ შექმნით" - #: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" @@ -11645,277 +11872,272 @@ msgstr "ცხრილების სივრცის (%u) საქაღ msgid "You can remove the directories manually if necessary." msgstr "თუ გჭირდებათ, საქაღალდეები შეგიძლიათ ხელითაც წაშალოთ." -#: commands/trigger.c:225 commands/trigger.c:236 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" ცხრილია" -#: commands/trigger.c:227 commands/trigger.c:238 +#: commands/trigger.c:229 commands/trigger.c:240 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "ცხრილებს INSTEAD OF ტიპის ტრიგერები ვერ ექნებათ." -#: commands/trigger.c:259 +#: commands/trigger.c:261 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" დაყოფილი ცხრილია" -#: commands/trigger.c:261 +#: commands/trigger.c:263 #, c-format msgid "ROW triggers with transition tables are not supported on partitioned tables." msgstr "დანაყოფებზე იდენტიფიკაციის სვეტები მხარდაჭერილი არაა." -#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 +#: commands/trigger.c:275 commands/trigger.c:282 commands/trigger.c:446 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" ხედია" -#: commands/trigger.c:275 +#: commands/trigger.c:277 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "ხედებს მწკრივის დონის BEFORE და AFTER ტრიგერები ვერ ექნებათ." -#: commands/trigger.c:282 +#: commands/trigger.c:284 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "ხედებს TRUNCATE ტიპის ტრიგერები ვერ ექნებათ." -#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 +#: commands/trigger.c:292 commands/trigger.c:304 commands/trigger.c:439 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" გარე ცხრილია" -#: commands/trigger.c:292 +#: commands/trigger.c:294 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "გარე ცხრილებს INSTEAD OF ტრიგერები ვერ ექნებათ." -#: commands/trigger.c:304 +#: commands/trigger.c:306 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "გარე ცხრილებს შეზღუდვის ტრიგერები ვერ ექნებათ." -#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 +#: commands/trigger.c:311 commands/trigger.c:1330 commands/trigger.c:1437 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "ურთიერთობას \"%s\" ტრიგერები არ შეიძლება ჰქონდეთ" -#: commands/trigger.c:380 +#: commands/trigger.c:382 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "TRUNCATE FOR EACH ROW ტრიგერები მხარდაუჭერელია" -#: commands/trigger.c:388 +#: commands/trigger.c:390 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "INSTEAD OF ტრიგერები უნდა იყოს FOR EACH ROW" -#: commands/trigger.c:392 +#: commands/trigger.c:394 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "INSTEAD OF ტრიგერებს WHEN პირობები არ შეიძლება ჰქონდეს" -#: commands/trigger.c:396 +#: commands/trigger.c:398 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "INSTEAD OF ტრიგერებს სვეტების სიები არ შეიძლება ჰქონდეთ" -#: commands/trigger.c:425 +#: commands/trigger.c:427 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "" -#: commands/trigger.c:426 +#: commands/trigger.c:428 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "გარდამავალი ცხრილების სახელებისთვის OLD TABLE ან NEW TABLE გამოიყენეთ." -#: commands/trigger.c:439 +#: commands/trigger.c:441 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "გარე ცხრილებზე არსებულ ტრიგერებს გარდამავალი ცხრილები ვერ ექნებათ." -#: commands/trigger.c:446 +#: commands/trigger.c:448 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "ხედებზე არსებულ ტრიგერებს გარდამავალი ცხრილები ვერ ექნებათ." -#: commands/trigger.c:462 +#: commands/trigger.c:464 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "ROW ტრიგერები გარდამავალი ცხრილებით დანაყოფებზე მხარდაჭერილი არაა" -#: commands/trigger.c:466 +#: commands/trigger.c:468 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" msgstr "ROW ტრიგერები გარდამავალი ცხრილებით მემკვიდრეობის შვილებზე მხარდაჭერილი არაა" -#: commands/trigger.c:472 +#: commands/trigger.c:474 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "გარდამავალი ცხრილის სახელი მხოლოდ ტრიგერისთვის AFTER შეგიძლიათ, მიუთითოთ" -#: commands/trigger.c:477 +#: commands/trigger.c:479 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "ტრიგერები TRUNCATE გარდამავალი ცხრილებით მხარდაჭერილი არაა" -#: commands/trigger.c:494 +#: commands/trigger.c:496 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" msgstr "გარდამავალი ცხრილების მითითება ტრიგერებისთვის, რომლებსაც ერთზე მეტი მოვლენა გააჩნიათ, შეუძლებელია" -#: commands/trigger.c:505 +#: commands/trigger.c:507 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "გარდამავალი ცხრილების მითითება ტრიგერებისთვის, რომლებსაც სვეტების სიები გააჩნიათ, შეუძლებელია" -#: commands/trigger.c:522 +#: commands/trigger.c:524 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE მხოლოდ INSERT ან UPDATE ტრიგერისთვის შეგიძლიათ, მიუთითოთ" -#: commands/trigger.c:527 +#: commands/trigger.c:529 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE -ის რამდენჯერმე მითითება აკრძალულია" -#: commands/trigger.c:537 +#: commands/trigger.c:539 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE მხოლოდ DELETE ან UPDATE ტრიგერისთვის შეგიძლიათ, მიუთითოთ" -#: commands/trigger.c:542 +#: commands/trigger.c:544 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE -ის რამდენჯერმე მითითება აკრძალულია" -#: commands/trigger.c:552 +#: commands/trigger.c:554 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "OLD TABLE-ის და NEW TABLE-ის სახელები ერთი და იგივე ვერ იქნება" -#: commands/trigger.c:616 commands/trigger.c:629 +#: commands/trigger.c:618 commands/trigger.c:631 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "გამოსახულების ტრიგერის WHEN პირობა არ შეუძლება, სვეტის მნიშვნელობებზე მიუთითებდეს" -#: commands/trigger.c:621 +#: commands/trigger.c:623 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "INSERT-ის ტრიგერის WHEN პირობა არ შეიძლება, OLD მნიშვნელობებზე მიუთითებდეს" -#: commands/trigger.c:634 +#: commands/trigger.c:636 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "DELETE-ის ტრიგერის WHEN პირობა არ შეიძლება, NEW მნიშვნელობებზე მიუთითებდეს" -#: commands/trigger.c:639 +#: commands/trigger.c:641 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "BEFORE-ის ტრიგერის WHEN პირობა არ შეიძლება, NEW სისტემურ სვეტებზე მიუთითებდეს" -#: commands/trigger.c:647 commands/trigger.c:655 +#: commands/trigger.c:650 commands/trigger.c:658 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "BEFORE-ის ტრიგერის WHEN პირობა არ შეიძლება, NEW გენერირებულ სვეტებზე მიუთითებდეს" -#: commands/trigger.c:648 +#: commands/trigger.c:651 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "" -#: commands/trigger.c:763 commands/trigger.c:1607 +#: commands/trigger.c:766 commands/trigger.c:1613 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "ტრიგერი \"%s\" ურთიერთობისთვის \"%s\" უკვე არსებობს" -#: commands/trigger.c:776 +#: commands/trigger.c:779 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "ტრიგერი \"%s\" ურთიერთობისთვის \"%s\" შიდა ან შვილი ტრიგერია" -#: commands/trigger.c:795 +#: commands/trigger.c:798 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr "ტრიგერი \"%s\" ურთიერთობისთვის \"%s\", შეზღუდვის ტრიგერია" -#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 +#: commands/trigger.c:1402 commands/trigger.c:1556 commands/trigger.c:1837 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "ტრიგერი \"%s\" ცხრილისთვის \"%s\" არ არსებობს" -#: commands/trigger.c:1522 +#: commands/trigger.c:1528 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "ტრიგერის (%s) (ცხრილზე %s) სახელის გადარქმევა შეუძლებელია" -#: commands/trigger.c:1524 +#: commands/trigger.c:1530 #, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "ამის მაგიერ დაყოფილ ცხრილზე ('%s\") ტრიგერს გადაარქვით სახელი." -#: commands/trigger.c:1624 +#: commands/trigger.c:1630 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "ურთიერთობაზე \"%2$s\" ტრიგერს \"%1$s\" სახელი გადაერქვა" -#: commands/trigger.c:1770 +#: commands/trigger.c:1776 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "წვდომა აკრძალულია: %s სისტემური ტრიგერია" -#: commands/trigger.c:2379 +#: commands/trigger.c:2385 #, c-format msgid "trigger function %u returned null value" msgstr "ტრიგერის ფუნქციამ %u ნულოვანი მნიშვნელობა დააბრუნა" -#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 commands/trigger.c:3263 +#: commands/trigger.c:2445 commands/trigger.c:2665 commands/trigger.c:2918 commands/trigger.c:3273 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "BEFORE STATEMENT ტრიგერს მნიშვნელობის დაბრუნება არ შეუძლია" -#: commands/trigger.c:2515 +#: commands/trigger.c:2523 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "მწკრივის სხვა დანაყოფში გადატანა BEFORE FOR EACH ROW ტრიგერის დროს მხარდაჭერილი არაა" -#: commands/trigger.c:2516 +#: commands/trigger.c:2524 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "ტრიგერის \"%s\" შესრულებამდე სვეტი დანაყოფში \"%s.%s\" უნდა ყოფილიყო." -#: commands/trigger.c:3340 executor/nodeModifyTable.c:2363 executor/nodeModifyTable.c:2446 -#, c-format -msgid "tuple to be updated was already modified by an operation triggered by the current command" -msgstr "" - -#: commands/trigger.c:3341 executor/nodeModifyTable.c:1532 executor/nodeModifyTable.c:1606 executor/nodeModifyTable.c:2364 executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3075 executor/nodeModifyTable.c:3236 +#: commands/trigger.c:3351 executor/nodeModifyTable.c:1685 executor/nodeModifyTable.c:1759 executor/nodeModifyTable.c:2566 executor/nodeModifyTable.c:2656 executor/nodeModifyTable.c:3328 executor/nodeModifyTable.c:3498 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "" -#: commands/trigger.c:3382 executor/nodeLockRows.c:228 executor/nodeLockRows.c:237 executor/nodeModifyTable.c:305 executor/nodeModifyTable.c:1548 executor/nodeModifyTable.c:2381 executor/nodeModifyTable.c:2589 +#: commands/trigger.c:3392 executor/nodeLockRows.c:228 executor/nodeLockRows.c:237 executor/nodeModifyTable.c:388 executor/nodeModifyTable.c:1701 executor/nodeModifyTable.c:2582 executor/nodeModifyTable.c:2807 #, c-format msgid "could not serialize access due to concurrent update" msgstr "ერთდროული განახლების გამო წვდომის სერიალიზაცია შეუძლებელია" -#: commands/trigger.c:3390 executor/nodeModifyTable.c:1638 executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613 executor/nodeModifyTable.c:3093 +#: commands/trigger.c:3400 executor/nodeModifyTable.c:1791 executor/nodeModifyTable.c:2673 executor/nodeModifyTable.c:2831 executor/nodeModifyTable.c:3346 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "ერთდროული წაშლის გამო წვდომის სერიალიზაცია შეუძლებელია" -#: commands/trigger.c:4597 +#: commands/trigger.c:4635 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "" -#: commands/trigger.c:5780 +#: commands/trigger.c:5831 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "შეზღუდვა გადადებადი არაა %s" -#: commands/trigger.c:5803 +#: commands/trigger.c:5854 #, c-format msgid "constraint \"%s\" does not exist" msgstr "შეზღუდვა \"%s\" არ არსებობს" @@ -11953,7 +12175,7 @@ msgstr "ტექსტის ძებნის დამმუშავებ #: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" -msgstr "" +msgstr "აუცილებელია ტექსტური ძებნის დამმუშაევებლის lextypes-ის მეთოდი" #: commands/tsearchcmds.c:372 #, c-format @@ -12025,7 +12247,7 @@ msgstr "საბაზისო ტიპის შესაცვლელა msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "" -#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 +#: commands/typecmds.c:331 commands/typecmds.c:1486 commands/typecmds.c:4471 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "ტიპის უცნობი ატრიბუტი: %s" @@ -12045,7 +12267,7 @@ msgstr "%s მასივის ელემენტის ტიპი არ msgid "alignment \"%s\" not recognized" msgstr "სწორება \"%s\" უცნობია" -#: commands/typecmds.c:454 commands/typecmds.c:4354 +#: commands/typecmds.c:454 commands/typecmds.c:4345 #, c-format msgid "storage \"%s\" not recognized" msgstr "საცავი \"%s\" უცნობია" @@ -12075,332 +12297,347 @@ msgstr "ელემენტის ტიპის მითითება გ msgid "\"%s\" is not a valid base type for a domain" msgstr "%s დომენისთვის სწორ ბაზისურ ტიპს არ წარმოადგენს" -#: commands/typecmds.c:883 +#: commands/typecmds.c:885 #, c-format msgid "multiple default expressions" msgstr "ერთზე მეტი ნაგულისხმევი გამოსახულება" -#: commands/typecmds.c:946 commands/typecmds.c:955 +#: commands/typecmds.c:945 commands/typecmds.c:960 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "კონფლიქტური NULL/NOT NULL შეზღუდვები" -#: commands/typecmds.c:971 +#: commands/typecmds.c:950 +#, c-format +msgid "not-null constraints for domains cannot be marked NO INHERIT" +msgstr "არანულოვანი შეზღუდვები დომენებისთვის არ შეიძლება, NO INHERIT-ით მონიშნოთ" + +#: commands/typecmds.c:977 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "დომენის შემოწმების შეზღუდვების, როგორც NO INHERIT, მონიშვნა შეუძლებელია" -#: commands/typecmds.c:980 commands/typecmds.c:2940 +#: commands/typecmds.c:988 #, c-format msgid "unique constraints not possible for domains" msgstr "უნიკალური შეზღუდვები დომენებისთვის შეუძლებელია" -#: commands/typecmds.c:986 commands/typecmds.c:2946 +#: commands/typecmds.c:995 #, c-format msgid "primary key constraints not possible for domains" msgstr "ძირითადი გასაღების შეზღუდვა დომენებისთვის შეუძლებელია" -#: commands/typecmds.c:992 commands/typecmds.c:2952 +#: commands/typecmds.c:1002 #, c-format msgid "exclusion constraints not possible for domains" msgstr "გაშვების შეზღუდვა დომენებისთვის შეუძლებელია" -#: commands/typecmds.c:998 commands/typecmds.c:2958 +#: commands/typecmds.c:1009 #, c-format msgid "foreign key constraints not possible for domains" msgstr "გარე გასაღების შეზღუდვა დომენებისთვის შეუძლებელია" -#: commands/typecmds.c:1007 commands/typecmds.c:2967 +#: commands/typecmds.c:1019 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "" -#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 +#: commands/typecmds.c:1027 +#, c-format +msgid "specifying GENERATED not supported for domains" +msgstr "დომენებისთვის GENERATED-ის მითითება მხარდაჭერილი არაა" + +#: commands/typecmds.c:1035 +#, c-format +msgid "specifying constraint enforceability not supported for domains" +msgstr "შეზღუდვის ნაძალადევობის მითითება დომენებისთვის მხარდაჭერილი არაა" + +#: commands/typecmds.c:1353 utils/cache/typcache.c:2745 #, c-format msgid "%s is not an enum" msgstr "%s ჩამონათვალი არაა" -#: commands/typecmds.c:1468 +#: commands/typecmds.c:1494 #, c-format msgid "type attribute \"subtype\" is required" msgstr "ტიპის ატრიბუტი \"subtype\" აუცილებელია" -#: commands/typecmds.c:1473 +#: commands/typecmds.c:1499 #, c-format msgid "range subtype cannot be %s" msgstr "%s დიაპაზონის ქვეტიპი ვერ იქნება" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1518 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "" -#: commands/typecmds.c:1502 +#: commands/typecmds.c:1528 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "" -#: commands/typecmds.c:1503 +#: commands/typecmds.c:1529 #, c-format msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." msgstr "" -#: commands/typecmds.c:1975 +#: commands/typecmds.c:2005 #, c-format msgid "type input function %s has multiple matches" msgstr "ტიპის შეყვანის ფუნქციის (%s) რამდენიმე ასლი არსებობს" -#: commands/typecmds.c:1993 +#: commands/typecmds.c:2023 #, c-format msgid "type input function %s must return type %s" msgstr "ტიპის შეყვანის ფუნქციამ (\"%s\") უნდა დააბრუნოს ტიპი \"%s\"" -#: commands/typecmds.c:2009 +#: commands/typecmds.c:2039 #, c-format msgid "type input function %s should not be volatile" msgstr "ტიპის შეყვანის ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2037 +#: commands/typecmds.c:2067 #, c-format msgid "type output function %s must return type %s" msgstr "ტიპის გამოტანის ფუნქციამ (%s) უნდა დააბრუნოს ტიპი \"%s\"" -#: commands/typecmds.c:2044 +#: commands/typecmds.c:2074 #, c-format msgid "type output function %s should not be volatile" msgstr "ტიპის გამოტანის ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2073 +#: commands/typecmds.c:2103 #, c-format msgid "type receive function %s has multiple matches" msgstr "ტიპის მიღების ფუქნციის (%s) რამდენიმე ასლი არსებობს" -#: commands/typecmds.c:2091 +#: commands/typecmds.c:2121 #, c-format msgid "type receive function %s must return type %s" msgstr "ტიპის მიღების ფუნქციამ (%s) უნდა დააბრუნოს ტიპი %s" -#: commands/typecmds.c:2098 +#: commands/typecmds.c:2128 #, c-format msgid "type receive function %s should not be volatile" msgstr "ტიპის მიღების ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2126 +#: commands/typecmds.c:2156 #, c-format msgid "type send function %s must return type %s" msgstr "ტიპის გაგზავნის ფუნქციამ (%s) უნდა დააბრუნოს ტიპი \"%s\"" -#: commands/typecmds.c:2133 +#: commands/typecmds.c:2163 #, c-format msgid "type send function %s should not be volatile" msgstr "ტიპის გაგზავნის ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2160 +#: commands/typecmds.c:2190 #, c-format msgid "typmod_in function %s must return type %s" msgstr "typmod_in ფუნქციამ (%s) უნდა დააბრუნოს ტიპი %s" -#: commands/typecmds.c:2167 +#: commands/typecmds.c:2197 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "ტიპის მოდიფიკატორის შეყვანის ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2194 +#: commands/typecmds.c:2224 #, c-format msgid "typmod_out function %s must return type %s" msgstr "typmod_out ფუნქციამ (%s) უნდა დააბრუნოს ტიპი %s" -#: commands/typecmds.c:2201 +#: commands/typecmds.c:2231 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "ტიპის მოდიფიკატორის გამოტანის ფუნქცია (%s) ცვალებადი არ უნდა იყოს" -#: commands/typecmds.c:2228 +#: commands/typecmds.c:2258 #, c-format msgid "type analyze function %s must return type %s" msgstr "ტიპის ანალიზის ფუნქციამ (%s) უნდა დააბრუნოს ტიპი %s" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2287 #, c-format msgid "type subscripting function %s must return type %s" msgstr "" -#: commands/typecmds.c:2267 +#: commands/typecmds.c:2297 #, c-format msgid "user-defined types cannot use subscripting function %s" -msgstr "" +msgstr "მომხმარებლის აღწერილ ტიპებს არ შეუძლიათ, გამოიყენონ გამოწერის ფუნქცია %s" -#: commands/typecmds.c:2313 +#: commands/typecmds.c:2343 #, c-format msgid "You must specify an operator class for the range type or define a default operator class for the subtype." msgstr "" -#: commands/typecmds.c:2344 +#: commands/typecmds.c:2374 #, c-format msgid "range canonical function %s must return range type" msgstr "კანონიკური დიაპაზონის ფუნქციამ (%s) დიაპაზონის ტიპი უნდა დააბრუნოს" -#: commands/typecmds.c:2350 +#: commands/typecmds.c:2380 #, c-format msgid "range canonical function %s must be immutable" msgstr "კანონიკური დიაპაზონის ფუნქცია (%s) მუდმივი უნდა იყოს" -#: commands/typecmds.c:2386 +#: commands/typecmds.c:2416 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "დიაპაზონის ქვეტიპის განსხვავების ფუნქციამ (%s) უნდა დააბრუნოს ტიპი: %s" -#: commands/typecmds.c:2393 +#: commands/typecmds.c:2423 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "დიაპაზონის ქვეტიპის განსხვავების ფუნქცია (%s) უცვლელი უნდა იყოს" -#: commands/typecmds.c:2420 +#: commands/typecmds.c:2450 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_type-ის მასივის OID-ის მნიშვნელობა დაყენებული არაა" -#: commands/typecmds.c:2453 +#: commands/typecmds.c:2483 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_type-ის მრავალდიაპაზონიანი OID-ის მნიშვნელობა დაყენებული არაა" -#: commands/typecmds.c:2486 +#: commands/typecmds.c:2516 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_type-ის მრავალდიაპაზონიანი მასივის OID-ის მნიშვნელობა დაყენებული არაა" -#: commands/typecmds.c:2868 commands/typecmds.c:3093 +#: commands/typecmds.c:2898 commands/typecmds.c:3080 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "დომენის (\"%2$s\") შეზღუდვა (\"%1$s\") არ არსებობს" -#: commands/typecmds.c:2872 +#: commands/typecmds.c:2902 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "დომენის (\"%2$s\") შეზღუდვა (\"%1$s\") არ არსებობს. გამოტოვება" -#: commands/typecmds.c:3100 +#: commands/typecmds.c:3087 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "დომენის (\"%2$s\") შეზღუდვა (\"%1$s\") შეზღუდვის შემოწმება არაა" -#: commands/typecmds.c:3180 +#: commands/typecmds.c:3167 #, c-format msgid "column \"%s\" of table \"%s\" contains null values" msgstr "სვეტი \"%s\" (ცხრილში %s) ნულოვან მნიშვნელობებს შეიცავს" -#: commands/typecmds.c:3269 +#: commands/typecmds.c:3256 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "სვეტი \"%s\" ცხრილიდან \"%s\" შეიცავს მნიშვნელობებს, რომელიც ახალ შეზღუდვას არღვევს" -#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 commands/typecmds.c:4073 +#: commands/typecmds.c:3485 commands/typecmds.c:3763 commands/typecmds.c:3848 commands/typecmds.c:4064 #, c-format msgid "%s is not a domain" msgstr "\"%s\" დომენი არაა" -#: commands/typecmds.c:3532 commands/typecmds.c:3686 +#: commands/typecmds.c:3519 commands/typecmds.c:3675 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "შეზღუდვა \"%s\" დომენისთვის %s უკვე არსებობს" -#: commands/typecmds.c:3583 +#: commands/typecmds.c:3570 #, c-format msgid "cannot use table references in domain check constraint" msgstr "" -#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 +#: commands/typecmds.c:3775 commands/typecmds.c:3860 commands/typecmds.c:4214 #, c-format msgid "%s is a table's row type" msgstr "%s ცხრილის მწკრივის ტიპია" -#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 +#: commands/typecmds.c:3785 commands/typecmds.c:3870 commands/typecmds.c:4112 #, c-format msgid "cannot alter array type %s" msgstr "მასივის ტიპის (\"%s\") შეცვლა შეუძლებელია" -#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4114 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "ტიპი %s შეგიძლიათ, შეცვალოთ, რაც მასივის ტიპსაც შეცვლის." -#: commands/typecmds.c:3892 +#: commands/typecmds.c:3883 #, c-format msgid "cannot alter multirange type %s" msgstr "მრავალშუალედანი ტიპის %s შეცვლა შეუძლებელია" -#: commands/typecmds.c:3895 +#: commands/typecmds.c:3886 #, c-format msgid "You can alter type %s, which will alter the multirange type as well." msgstr "შეგიძლიათ შეცვალოთ ტიპი %s, რომელიც მრავალშუალედიან ტიპსაც შეცვლის." -#: commands/typecmds.c:4202 +#: commands/typecmds.c:4193 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "ტიპი \"%s\" სქემაში \"%s\" უკვე არსებობს" -#: commands/typecmds.c:4382 +#: commands/typecmds.c:4373 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "ტიპის საცავს PLAIN-ზე ვერ შეცვლით" -#: commands/typecmds.c:4475 +#: commands/typecmds.c:4466 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "ტიპის ატრიბუტის შეცვლა შეუძლებელია: %s" -#: commands/typecmds.c:4493 +#: commands/typecmds.c:4484 #, c-format msgid "must be superuser to alter a type" msgstr "ტიპის შესაცვლელად ზემომხმარებლის უფლებებია საჭირო" -#: commands/typecmds.c:4514 commands/typecmds.c:4523 +#: commands/typecmds.c:4505 commands/typecmds.c:4514 #, c-format msgid "%s is not a base type" msgstr "%s საბაზისო ტიპი არაა" -#: commands/user.c:200 +#: commands/user.c:201 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID-ის შეცვლა ახლა უკვე შეუძლებელია" -#: commands/user.c:318 commands/user.c:324 commands/user.c:330 commands/user.c:336 commands/user.c:342 +#: commands/user.c:319 commands/user.c:325 commands/user.c:331 commands/user.c:337 commands/user.c:343 #, c-format msgid "permission denied to create role" msgstr "როლის შექმნის წვდომა აკრძალულია" -#: commands/user.c:319 +#: commands/user.c:320 #, c-format msgid "Only roles with the %s attribute may create roles." msgstr "როლების შექმნა მხოლოდ %s ატრიბუტის მქონე როლებს შეუძლიათ." -#: commands/user.c:325 commands/user.c:331 commands/user.c:337 commands/user.c:343 +#: commands/user.c:326 commands/user.c:332 commands/user.c:338 commands/user.c:344 #, c-format msgid "Only roles with the %s attribute may create roles with the %s attribute." msgstr "მხოლოდ როლებს, რომლებსაც %s ატრიბუტი გააჩნიათ, შეუძლიათ როლის შექმნა, რომელსაც აქვს ატრიბუტი %s." -#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 gram.y:17355 gram.y:17401 utils/adt/acl.c:5568 utils/adt/acl.c:5574 +#: commands/user.c:355 commands/user.c:1386 commands/user.c:1393 gram.y:17493 gram.y:17539 utils/adt/acl.c:5690 utils/adt/acl.c:5696 #, c-format msgid "role name \"%s\" is reserved" msgstr "როლის სახელი \"%s\" დაცულია" -#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 +#: commands/user.c:357 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "როლის სახელები, რომლებიც \"pg_\"-ით იწყება, დაცულია." -#: commands/user.c:377 commands/user.c:1410 +#: commands/user.c:378 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "როლი \"%s\" უკვე არსებობს" -#: commands/user.c:439 commands/user.c:924 +#: commands/user.c:440 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "ცარიელი სტრიქონი არ არის სწორი პაროლი, პაროლის გაწმენდა" -#: commands/user.c:468 +#: commands/user.c:469 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "ბინარული განახლების რეჟიმში pg_authid-ის OID-ის მნიშვნელობა დაყენებული არაა" @@ -12436,8 +12673,8 @@ msgstr "სხვა როლის პაროლის შესაცვლ #: commands/user.c:825 #, c-format -msgid "Only roles with the %s option on role \"%s\" may add members." -msgstr "წევრების დამატება მხოლოდ \"%2$s\" როლზე %1$s პარამეტრის მქონე როლებს შეუძლიათ." +msgid "Only roles with the %s option on role \"%s\" may add or drop members." +msgstr "წევრების დამატება, ან წაშლა, მხოლოდ, \"%2$s\" როლზე %1$s პარამეტრის მქონე როლებს შეუძლიათ." #: commands/user.c:870 #, c-format @@ -12469,7 +12706,7 @@ msgstr "როლების წაშლა მხოლოდ სამიზ msgid "cannot use special role specifier in DROP ROLE" msgstr "სპეციალური როლის მიმთითებლის გამოყენება DROP ROLE-ში შეუძლებელია" -#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:838 commands/variable.c:841 commands/variable.c:947 commands/variable.c:950 utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5423 utils/adt/acl.c:5471 utils/adt/acl.c:5499 utils/adt/acl.c:5518 utils/adt/regproc.c:1571 utils/init/miscinit.c:762 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:864 commands/variable.c:867 commands/variable.c:983 commands/variable.c:986 utils/adt/acl.c:366 utils/adt/acl.c:386 utils/adt/acl.c:5545 utils/adt/acl.c:5593 utils/adt/acl.c:5621 utils/adt/acl.c:5640 utils/adt/regproc.c:1571 utils/init/miscinit.c:804 #, c-format msgid "role \"%s\" does not exist" msgstr "როლი არ არსებობს: \"%s\"" @@ -12534,7 +12771,7 @@ msgstr "ამ როლის სახელის გადარქმევ msgid "MD5 password cleared because of role rename" msgstr "MD5 პაროლი გასუფთავდა როლის სახელის შეცვლის გამო" -#: commands/user.c:1518 gram.y:1297 +#: commands/user.c:1518 gram.y:1286 #, c-format msgid "unrecognized role option \"%s\"" msgstr "როლის უცნობი პარამეტრი: \"%s\"" @@ -12574,244 +12811,249 @@ msgstr "მხოლოდ როლებს, რომლებსაც რ msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "მხოლოდ როლებს, რომლებსაც როლის, '%s' პრივილეგიები გააჩნია, შეუძლია, ობიექტები თავიდან მიანიჭოს." -#: commands/user.c:1733 +#: commands/user.c:1734 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "როლი \"%s\" სხვა როლის წევრი ვერ იქნება" -#: commands/user.c:1746 +#: commands/user.c:1747 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "როლი \"%s\" როლის \"%s\" წევრია" -#: commands/user.c:1786 commands/user.c:1812 +#: commands/user.c:1787 commands/user.c:1813 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "%s პარამეტრს მომნიჭებელს ვერ მიანიჭებთ" -#: commands/user.c:1889 +#: commands/user.c:1890 #, c-format msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "როლი \"%s\" უკვე გაწევრდა როლში \"%s\" \"%s\" როლის მიერ" -#: commands/user.c:2024 +#: commands/user.c:2036 #, c-format msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "როლს \"%s\" უარი ეთქვა როლში \"%s\" გაწევრებაზე \"%s\" როლის მიერ" -#: commands/user.c:2124 +#: commands/user.c:2137 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "როლი \"%s\" არ შეიძლება, აშკარა წევრებს შეიცავდეს" -#: commands/user.c:2135 commands/user.c:2158 +#: commands/user.c:2148 commands/user.c:2171 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "როლის (\"%s\") დაყენების წვდომა აკრძალულია" -#: commands/user.c:2137 +#: commands/user.c:2150 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "მხოლოდ როლებს, რომლებსაც %s ატრიბუტი გააჩნიათ, შეუძლიათ, როლებს %s ატრიბუტი მიანიჭონ." -#: commands/user.c:2142 commands/user.c:2165 +#: commands/user.c:2155 commands/user.c:2178 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "როლის (\"%s\") გაუქმების წვდომა აკრძალულია" -#: commands/user.c:2144 +#: commands/user.c:2157 #, c-format msgid "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "მხოლოდ როლებს, რომლებსაც %s ატრიბუტი გააჩნიათ, შეუძლიათ, როლებს %s ატრიბუტი მოაცილონ." -#: commands/user.c:2160 +#: commands/user.c:2173 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "მხოლოდ როლებს, რომლებსაც როლზე \"%2$s\" პარამეტრი \"%1$s\" გააჩნიათ, შეუძლიათ, მიანიჭონ ეს როლი." -#: commands/user.c:2167 +#: commands/user.c:2180 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "მხოლოდ როლებს, რომლებსაც როლზე \"%2$s\" პარამეტრი \"%1$s\" გააჩნიათ, შეუძლიათ, მოაცილონ ეს როლი." -#: commands/user.c:2247 commands/user.c:2256 +#: commands/user.c:2260 commands/user.c:2269 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "როლის (\"%s\") მინიჭების წვდომა აკრძალულია" -#: commands/user.c:2249 +#: commands/user.c:2262 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "მხოლოდ როლებს, რომლებსაც როლის \"%s\" პრივილეგიები გააჩნიათ, შეუძლიათ პრივილეგიები, როგორც, ამ როლმა, მიანიჭონ." -#: commands/user.c:2258 +#: commands/user.c:2271 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "მიმნიჭებელს უნდა ჰქონდეს %s პარამეტრი როლზე \"%s\"." -#: commands/user.c:2266 +#: commands/user.c:2279 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "როლის (\"%s\") მიერ მინიჭებული პრივილეგიების გაუქმების წვდომა აკრძალულია" -#: commands/user.c:2268 +#: commands/user.c:2281 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." msgstr "მხოლოდ როლებს, რომლებსაც როლის \"%s\" პრივილეგიები გააჩნიათ, შეუძლიათ ამ როლის მიერ მინიჭებული პრივილეგიები მოაცილონ." -#: commands/user.c:2491 utils/adt/acl.c:1318 +#: commands/user.c:2504 utils/adt/acl.c:1325 #, c-format msgid "dependent privileges exist" msgstr "დამოკიდებული პრივილეგიები არსებობს" -#: commands/user.c:2492 utils/adt/acl.c:1319 +#: commands/user.c:2505 utils/adt/acl.c:1326 #, c-format msgid "Use CASCADE to revoke them too." msgstr "მათ გასაუქმებლადაც CASCADE გამოიყენეთ." -#: commands/vacuum.c:134 +#: commands/vacuum.c:146 #, c-format -msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" -msgstr "\"vacuum_buffer_usage_limit\"-ის მნიშვნელობა 0 ან %d კბ-სა და %d კბ-ს შორის უნდა იყოს" +msgid "\"%s\" must be 0 or between %d kB and %d kB." +msgstr "\"%s\"-ის მნიშვნელობა 0 ან %d კბ-სა და %d კბ-ს შორის უნდა იყოს." -#: commands/vacuum.c:209 +#: commands/vacuum.c:222 #, c-format msgid "BUFFER_USAGE_LIMIT option must be 0 or between %d kB and %d kB" msgstr "BUFFER_USAGE_LIMIT პარამეტრი 0 ან %d კბ-სა და %d კბ-ს შორის უნდა იყოს" -#: commands/vacuum.c:219 +#: commands/vacuum.c:232 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "\"ANALYZE\"-ის უცნობი პარამეტრი: %s" -#: commands/vacuum.c:259 +#: commands/vacuum.c:272 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "პარალელურ პარამეტრს ესაჭიროება მნიშვნელობა 0-სა და %d-ს შორის" -#: commands/vacuum.c:271 +#: commands/vacuum.c:284 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "პარალელური დამხმარე პროცესების რაოდენობა მომტვერსასრუტებისთვის 0-სა და %d-ს შორის უნდა იყოს" -#: commands/vacuum.c:292 +#: commands/vacuum.c:305 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "\"VACUUM\"-ის უცნობი პარამეტრი: %s" -#: commands/vacuum.c:318 +#: commands/vacuum.c:331 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL პარალელურად ვერ შესრულდება" -#: commands/vacuum.c:329 +#: commands/vacuum.c:342 #, c-format msgid "BUFFER_USAGE_LIMIT cannot be specified for VACUUM FULL" msgstr "VACUUM FULL-სთვის BUFFER_USAGE_LIMIT-ს ვერ მიუთითებთ" -#: commands/vacuum.c:343 +#: commands/vacuum.c:356 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "როცა მიწოდებულია სვეტების სია, პარამეტრის ANALYZE მითითება აუცილებელია" -#: commands/vacuum.c:355 +#: commands/vacuum.c:368 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "VACUUM-ის პარამეტრს 'DISABLE_PAGE_SKIPPING' FULL-თან ერთად ვერ გამოიყენებთ" -#: commands/vacuum.c:362 +#: commands/vacuum.c:375 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "VACUUM FULL-თან ერთად PROCESS_TOAST აუცილებელია" -#: commands/vacuum.c:371 +#: commands/vacuum.c:384 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with a list of tables" msgstr "ONLY_DATABASE_STATS -ის მითითება ცხრილების სიასთან ერთად შეუძლებელია" -#: commands/vacuum.c:380 +#: commands/vacuum.c:393 #, c-format msgid "ONLY_DATABASE_STATS cannot be specified with other VACUUM options" msgstr "ONLY_DATABASE_STAT-ის მითითება სხვა VACUMM პარამეტრებთან ერთად შეუძლებელია" -#: commands/vacuum.c:515 +#: commands/vacuum.c:533 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s-ს VACUUM-დან ან ANALYZE-დან ვერ შეასარულებთ" -#: commands/vacuum.c:730 +#: commands/vacuum.c:745 #, c-format msgid "permission denied to vacuum \"%s\", skipping it" msgstr "\"%s\"-ის მომტვერსასრუტების წვდომა აკრძალულია. გამოტოვება" -#: commands/vacuum.c:743 +#: commands/vacuum.c:758 #, c-format msgid "permission denied to analyze \"%s\", skipping it" msgstr "\"%s\"-ის ანალიზისთვის წვდომა აკრძალულია. გამოტოვება" -#: commands/vacuum.c:821 commands/vacuum.c:918 +#: commands/vacuum.c:836 commands/vacuum.c:937 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "\"%s\"-ის მომტვერსასრუტება გამოტოვებულია -- ბლოკი ხელმისაწვდომი არაა" -#: commands/vacuum.c:826 +#: commands/vacuum.c:841 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "\"%s\"-ის მომტვერსასრუტება გამოტოვებულია -- ურთიერთობა აღარ არსებობს" -#: commands/vacuum.c:842 commands/vacuum.c:923 +#: commands/vacuum.c:857 commands/vacuum.c:942 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "\"%s\"-ის ანალიზი გამოტოვებულია -- ბლოკი ხელმისაწვდომი არაა" -#: commands/vacuum.c:847 +#: commands/vacuum.c:862 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "\"%s\"-ის ანალიზი გამოტოვებულია -- ურთიერთობა აღარ არსებობს" -#: commands/vacuum.c:1139 +#: commands/vacuum.c:978 +#, c-format +msgid "VACUUM ONLY of partitioned table \"%s\" has no effect" +msgstr "დაყოფილ ცხრილზე \"%s\" ბრძანებას VACUUM ONLY გავლენა არ აქვს" + +#: commands/vacuum.c:1169 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" msgstr "" -#: commands/vacuum.c:1140 commands/vacuum.c:1145 +#: commands/vacuum.c:1170 commands/vacuum.c:1175 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -#: commands/vacuum.c:1144 +#: commands/vacuum.c:1174 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "" -#: commands/vacuum.c:1890 +#: commands/vacuum.c:1936 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "ზოგიერთი ბაზა 2 მილიარდ ტრანზაქციაზე მეტია, რაც არ მომტვერსასრუტებულა" -#: commands/vacuum.c:1891 +#: commands/vacuum.c:1937 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "" -#: commands/vacuum.c:2070 +#: commands/vacuum.c:2116 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" -#: commands/vacuum.c:2502 +#: commands/vacuum.c:2617 #, c-format -msgid "scanned index \"%s\" to remove %lld row versions" -msgstr "სკანირებული ინდექსი \"%s\" %lld მწკრივის ვერსიის წაშლას აპირებს" +msgid "scanned index \"%s\" to remove % row versions" +msgstr "სკანირებული ინდექსი \"%s\" % მწკრივის ვერსიის წაშლას აპირებს" -#: commands/vacuum.c:2521 +#: commands/vacuum.c:2636 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "ინდექსი \"%s\" ახლა %.0f მწკრივის ვერსიას შეიცავს, %u გვერდში" -#: commands/vacuum.c:2525 +#: commands/vacuum.c:2640 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12819,14 +13061,14 @@ msgid "" "%u index pages are currently deleted, of which %u are currently reusable." msgstr "" -#: commands/vacuumparallel.c:708 +#: commands/vacuumparallel.c:709 #, 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)" msgstr[0] "ინდექსის მომტვერსასრუტებისთვის გაშვებულია %d პარალელური მომტვერსასრუტების დამხმარე პროცესი (დაგეგმილია: %d)" msgstr[1] "ინდექსის მომტვერსასრუტებისთვის გაშვებულია %d პარალელური მომტვერსასრუტების დამხმარე პროცესი (დაგეგმილია: %d)" -#: commands/vacuumparallel.c:714 +#: commands/vacuumparallel.c:715 #, 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)" @@ -12835,8 +13077,8 @@ msgstr[1] "ინდექსის გასუფთავებისთვ #: commands/variable.c:185 #, c-format -msgid "Conflicting \"datestyle\" specifications." -msgstr "კონფლიქტური \"datestyle\"-ის სპეციფიკაციები." +msgid "Conflicting \"DateStyle\" specifications." +msgstr "კონფლიქტური \"DateStyle\"-ის სპეციფიკაციები." #: commands/variable.c:307 #, c-format @@ -12848,12 +13090,12 @@ msgstr "დროის სარტყელის ინტერვალშ msgid "Cannot specify days in time zone interval." msgstr "დროის სარტყელის ინტერვალში დღეებს ვერ მიუთითებთ." -#: commands/variable.c:351 commands/variable.c:433 +#: commands/variable.c:351 commands/variable.c:435 #, c-format msgid "time zone \"%s\" appears to use leap seconds" msgstr "დროის სარტყელი \"%s\", როგორც ჩანს, დამატებით წამებს იყენებს" -#: commands/variable.c:353 commands/variable.c:435 +#: commands/variable.c:353 commands/variable.c:437 #, c-format msgid "PostgreSQL does not support leap seconds." msgstr "PostgreSQL-ს დამატებითი წამების მხარდაჭერა არ გააჩნია." @@ -12863,107 +13105,97 @@ msgstr "PostgreSQL-ს დამატებითი წამების მ msgid "UTC timezone offset is out of range." msgstr "UTC დროის სარტყელი ზღვარს მიღმაა." -#: commands/variable.c:552 +#: commands/variable.c:554 #, c-format msgid "cannot set transaction read-write mode inside a read-only transaction" msgstr "მხოლოდ-კითხვადი ტრანზაქციის შიგნით ტრანზაქციის რეჟიმის ჩაწერა-წაკითხვის რეჟიმზე გადართვა შეუძლებელია" -#: commands/variable.c:559 +#: commands/variable.c:561 #, c-format msgid "transaction read-write mode must be set before any query" msgstr "ტრანზაქცის ჩაწერა-წაკითხვის რეჟიმი ყველა მოთხოვნის წინ უნდა იქნეს დაყენებული" -#: commands/variable.c:566 +#: commands/variable.c:568 #, c-format msgid "cannot set transaction read-write mode during recovery" msgstr "აღდგენისას ტრანზაქციის ჩაწერა-წაკითხვის რეჟიმის დაყენება შეუძლებელია" -#: commands/variable.c:592 +#: commands/variable.c:596 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must be called before any query" msgstr "SET TRANSACTION ISOLATION LEVEL ყველა მოთხოვნაზე ადრე უნდა გამოიძახოთ" -#: commands/variable.c:599 +#: commands/variable.c:603 #, c-format msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "SET TRANSACTION ISOLATION LEVEL ქვემოთხოვნაში არ უნდა გამოიძახოთ" -#: commands/variable.c:606 storage/lmgr/predicate.c:1680 +#: commands/variable.c:610 storage/lmgr/predicate.c:1695 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "ცხელი მოლოდინში სერიალიზებადი რეჟიმის გამოყენება შეუძლებელია" -#: commands/variable.c:607 +#: commands/variable.c:611 #, c-format msgid "You can use REPEATABLE READ instead." msgstr "სამაგიეროდ, შეგიძლიათ, REPEATABLE READ გამოიყენოთ." -#: commands/variable.c:625 +#: commands/variable.c:633 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE cannot be called within a subtransaction" msgstr "SET TRANSACTION [NOT] DEFERRABLE-ს ქვეტრანზაქციაში ვერ გამოიძახებთ" -#: commands/variable.c:631 +#: commands/variable.c:639 #, c-format msgid "SET TRANSACTION [NOT] DEFERRABLE must be called before any query" msgstr "SET TRANSACTION [NOT] DEFERRABLE ყველა მოთხოვნაზე ადრე უნდა გამოიძახოთ" -#: commands/variable.c:713 +#: commands/variable.c:715 +#, c-format +msgid "Cannot change \"client_encoding\" during a parallel operation." +msgstr "პარალელური ოპერაციის დროს \"client_encoding\" პარამეტრს ვერ შეცვლით." + +#: commands/variable.c:743 #, c-format msgid "Conversion between %s and %s is not supported." msgstr "%s-დან %s-ზე გადაყვანა მხარდაჭერილი არაა." -#: commands/variable.c:720 +#: commands/variable.c:750 #, c-format msgid "Cannot change \"client_encoding\" now." msgstr "ახლა \"client_encoding\"-ს ვერ შეცვლით." -#: commands/variable.c:781 -#, c-format -msgid "cannot change \"client_encoding\" during a parallel operation" -msgstr "პარალელური ოპერაციის დროს \"client_encoding\" პარამეტრს ვერ შეცვლით" - -#: commands/variable.c:863 +#: commands/variable.c:889 #, c-format msgid "permission will be denied to set session authorization \"%s\"" msgstr "სესიის ავტორიზაციის \"%s\" დასაყენებლად წვდომა აკრძალული იქნება" -#: commands/variable.c:868 +#: commands/variable.c:894 #, c-format msgid "permission denied to set session authorization \"%s\"" msgstr "სესიის ავტორიზაციის \"%s\" დასაყენებლად წვდომა აკრძალულია" -#: commands/variable.c:972 +#: commands/variable.c:1003 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "როლის (\"%s\") დაყენების წვდომა აკრძალული იქნება" -#: commands/variable.c:977 +#: commands/variable.c:1008 #, c-format msgid "permission denied to set role \"%s\"" msgstr "როლის (\"%s\") დაყენების წვდომა აკრძალულია" -#: commands/variable.c:1177 +#: commands/variable.c:1228 #, c-format msgid "Bonjour is not supported by this build" msgstr "ამ აგებაში Bonjour -ის მხარდაჭერა არ არსებბს" -#: commands/variable.c:1205 -#, c-format -msgid "\"effective_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." -msgstr "პლატფორმებზე, რომლებზეც posix_fadvise() ხელმისაწვდომი არაა, \"effective_io_concurrency\"-ის მნიშვნელობა 0-ის ტოლი უნდა ყოს." - -#: commands/variable.c:1218 -#, c-format -msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." -msgstr "პლატფორმებზე, რომლებზეც posix_fadvise() ხელმისაწვდომი არაა, \"maintenance_io_concurrency\"-ის მნიშვნელობა 0-ის ტოლი უნდა ყოს." - -#: commands/variable.c:1231 +#: commands/variable.c:1256 #, c-format msgid "SSL is not supported by this build" msgstr "ამ აგებაში SSL-ის მხარდაჭერა არ არსებბს" -#: commands/view.c:79 +#: commands/view.c:78 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "კოლაციის გამოცნობის შეცდომა ხედის სვეტისთვის \"%s\"" @@ -13048,402 +13280,413 @@ msgstr "კურსორი \"%s\" მწკრივზე არ მდე msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "კურსორი \"%s\" ცხრილის (\"%s\") მარტივადი განახლებადი სკანირებას არ წარმოადგენს" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2543 +#: executor/execCurrent.c:280 executor/execExprInterp.c:3093 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "პარამეტრის %d (%s) ტიპი არ ემთხვევა იმას, რომლითაც გეგმა მზადდებოდა (%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2555 +#: executor/execCurrent.c:292 executor/execExprInterp.c:3105 #, c-format msgid "no value found for parameter %d" msgstr "პარამეტრისთვის მნიშვნელობების პოვნა შეუძლებელია: %d" -#: executor/execExpr.c:641 executor/execExpr.c:648 executor/execExpr.c:654 executor/execExprInterp.c:4741 executor/execExprInterp.c:4758 executor/execExprInterp.c:4857 executor/nodeModifyTable.c:194 executor/nodeModifyTable.c:205 executor/nodeModifyTable.c:222 executor/nodeModifyTable.c:230 +#: executor/execExpr.c:667 executor/execExpr.c:674 executor/execExpr.c:680 executor/execExprInterp.c:5440 executor/execExprInterp.c:5457 executor/execExprInterp.c:5556 executor/nodeModifyTable.c:210 executor/nodeModifyTable.c:229 executor/nodeModifyTable.c:246 executor/nodeModifyTable.c:256 executor/nodeModifyTable.c:266 #, c-format msgid "table row type and query-specified row type do not match" msgstr "" -#: executor/execExpr.c:642 executor/nodeModifyTable.c:195 +#: executor/execExpr.c:668 executor/nodeModifyTable.c:211 #, c-format msgid "Query has too many columns." msgstr "მოთხოვნას მეტისმეტად ბევრი სვეტ აქვს." -#: executor/execExpr.c:649 executor/nodeModifyTable.c:223 +#: executor/execExpr.c:675 executor/nodeModifyTable.c:230 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "" -#: executor/execExpr.c:655 executor/execExprInterp.c:4759 executor/nodeModifyTable.c:206 +#: executor/execExpr.c:681 executor/execExprInterp.c:5458 executor/nodeModifyTable.c:257 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "" -#: executor/execExpr.c:1103 parser/parse_agg.c:840 +#: executor/execExpr.c:1157 parser/parse_agg.c:843 #, c-format msgid "window function calls cannot be nested" msgstr "ფანჯრის ფუნქციის გამოძახებებს ერთმანეთში ვერ ჩადგამთ" -#: executor/execExpr.c:1640 +#: executor/execExpr.c:1689 #, c-format msgid "target type is not an array" msgstr "სამიზნე ტიპი მასივი არაა" -#: executor/execExpr.c:1980 +#: executor/execExpr.c:2033 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "ROW() სვეტს %s ტიპის მაგიერ %s აქვს" -#: executor/execExpr.c:2642 executor/execSRF.c:718 parser/parse_func.c:138 parser/parse_func.c:655 parser/parse_func.c:1033 +#: executor/execExpr.c:2729 executor/execSRF.c:718 parser/parse_func.c:138 parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "ფუნქციისთვის %d -ზე მეტი არგუმენტის გადაცემა შეუძლებელია" msgstr[1] "ფუნქციისთვის %d -ზე მეტი არგუმენტის გადაცემა შეუძლებელია" -#: executor/execExpr.c:2669 executor/execSRF.c:738 executor/functions.c:1067 utils/adt/jsonfuncs.c:4032 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2756 executor/execSRF.c:738 executor/functions.c:1558 utils/adt/jsonfuncs.c:4056 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "ფუნქცია, რომელიც სეტს აბრუნებს, გამოძახებულია კონტექსტში, რომელიც სეტებს ვერ იღებს" -#: executor/execExpr.c:3075 parser/parse_node.c:272 parser/parse_node.c:322 +#: executor/execExpr.c:3262 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "" -#: executor/execExpr.c:3203 executor/execExpr.c:3225 +#: executor/execExpr.c:3390 executor/execExpr.c:3412 #, c-format msgid "type %s does not support subscripted assignment" msgstr "" -#: executor/execExprInterp.c:2007 +#: executor/execExprInterp.c:2415 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "%2$s ტიპის ატრიბუტი %1$d წაიშალა" -#: executor/execExprInterp.c:2013 +#: executor/execExprInterp.c:2421 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "%2$s ტიპის ატრიბუტის %1$d ტიპი არასწორია" -#: executor/execExprInterp.c:2015 executor/execExprInterp.c:3214 executor/execExprInterp.c:3260 +#: executor/execExprInterp.c:2423 executor/execExprInterp.c:3782 executor/execExprInterp.c:3828 #, c-format msgid "Table has type %s, but query expects %s." msgstr "ცხრილის ტიპია %s, მოთხოვნა კი %s-ს მოელოდა." -#: executor/execExprInterp.c:2095 utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 utils/fmgr/funcapi.c:569 +#: executor/execExprInterp.c:2503 utils/adt/expandedrecord.c:99 utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1841 utils/cache/typcache.c:2000 utils/cache/typcache.c:2147 utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "ტიპი %s კომპოზიტური არაა" -#: executor/execExprInterp.c:2698 +#: executor/execExprInterp.c:3266 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF ამ ტიპის ცხრილისთვის მხარდაუჭერელია" -#: executor/execExprInterp.c:2911 +#: executor/execExprInterp.c:3479 #, c-format msgid "cannot merge incompatible arrays" msgstr "შეუთავსებელი მასივების შერწყმა შეუძლებელია" -#: executor/execExprInterp.c:2912 +#: executor/execExprInterp.c:3480 #, c-format msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "" -#: executor/execExprInterp.c:2933 utils/adt/arrayfuncs.c:1305 utils/adt/arrayfuncs.c:3496 utils/adt/arrayfuncs.c:5586 utils/adt/arrayfuncs.c:6103 utils/adt/arraysubs.c:150 utils/adt/arraysubs.c:488 +#: executor/execExprInterp.c:3501 utils/adt/arrayfuncs.c:1305 utils/adt/arrayfuncs.c:3515 utils/adt/arrayfuncs.c:5605 utils/adt/arrayfuncs.c:6124 utils/adt/arraysubs.c:151 utils/adt/arraysubs.c:489 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "მასივის ზომების რაოდენობა (%d) მაქსიმუმ დასაშვებზე (%d) დიდია" -#: executor/execExprInterp.c:2953 executor/execExprInterp.c:2988 +#: executor/execExprInterp.c:3521 executor/execExprInterp.c:3556 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "მრავალგანზომილებიან მასივებს უნდა ჰქონდეთ მასივის გამოსახულებები შესაბამისი ზომებით" -#: executor/execExprInterp.c:2965 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 utils/adt/arrayfuncs.c:2942 utils/adt/arrayfuncs.c:2957 utils/adt/arrayfuncs.c:3298 utils/adt/arrayfuncs.c:3526 utils/adt/arrayfuncs.c:5358 utils/adt/arrayfuncs.c:6195 -#: utils/adt/arrayfuncs.c:6539 utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 utils/adt/arrayutils.c:99 +#: executor/execExprInterp.c:3533 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 utils/adt/arrayfuncs.c:3545 utils/adt/arrayfuncs.c:5377 +#: utils/adt/arrayfuncs.c:6216 utils/adt/arrayfuncs.c:6560 utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "მასივის ზომა მაქსიმალურ დასაშვებს(%d) აჭარბებს" -#: executor/execExprInterp.c:3213 executor/execExprInterp.c:3259 +#: executor/execExprInterp.c:3781 executor/execExprInterp.c:3827 #, c-format msgid "attribute %d has wrong type" msgstr "ატრიბუტის არასწორი ტიპი: %d" -#: executor/execExprInterp.c:3845 utils/adt/domains.c:158 +#: executor/execExprInterp.c:4413 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "დომენ %s-ს ნულოვანი მნიშვნელობების მხარდაჭერა არ გააჩნია" -#: executor/execExprInterp.c:3860 utils/adt/domains.c:196 +#: executor/execExprInterp.c:4428 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "მნიშვნელობა დომენისთვის %s არღვევს შემოწმების შეზღუდვას \"%s\"" -#: executor/execExprInterp.c:4433 +#: executor/execExprInterp.c:5003 #, c-format msgid "no SQL/JSON item found for specified path of column \"%s\"" -msgstr "" +msgstr "სვეტის \"%s\" მითითებულ ბილიკზე SQL/JSON ელემენტი აღმოჩენილი არაა" -#: executor/execExprInterp.c:4438 +#: executor/execExprInterp.c:5008 #, c-format msgid "no SQL/JSON item found for specified path" -msgstr "" +msgstr "მითითებულ ბილიკზე SQL/JSON ელემენტი აღმოჩენილი არაა" -#: executor/execExprInterp.c:4742 +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:5208 executor/execExprInterp.c:5216 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "ვერ შევაკავე %s გამოსახულება (%s) ტპზე RETURNING" + +#: executor/execExprInterp.c:5441 #, 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] "ცხრილის მწკრივი %d ატრიბუტს შეიცავს, მოთხოვნა კი %d-ს მოელოდა." msgstr[1] "ცხრილის მწკრივი %d ატრიბუტს შეიცავს, მოთხოვნა კი %d-ს მოელოდა." -#: executor/execExprInterp.c:4858 executor/execSRF.c:977 +#: executor/execExprInterp.c:5557 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "" -#: executor/execIndexing.c:593 +#: executor/execIndexing.c:608 #, c-format msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters" msgstr "" -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:911 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "გამორიცხვის შეზღუდვის (\"%s\") შექმნა შეუძლებელია" -#: executor/execIndexing.c:873 +#: executor/execIndexing.c:914 #, c-format msgid "Key %s conflicts with key %s." msgstr "გასაღები %s კონფლიქტობს გასაღებ %s-სთან." -#: executor/execIndexing.c:875 +#: executor/execIndexing.c:916 #, c-format msgid "Key conflicts exist." msgstr "აღმოჩენილია გასაღებების კონფლიქტი." -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:922 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "კონფლიქტის მქონე გასაღების მნიშვნელობა არღვევს უნიკალურ შეზღუდვას \"%s\"" -#: executor/execIndexing.c:884 +#: executor/execIndexing.c:925 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "გასაღები %s კონფლიქტობს არსებულ გასაღებ %s-სთან." -#: executor/execIndexing.c:886 +#: executor/execIndexing.c:927 #, c-format msgid "Key conflicts with existing key." msgstr "გასაღები აქტიურ გასაღებთან კონფლიქტობს." -#: executor/execMain.c:1041 +#: executor/execIndexing.c:1172 +#, c-format +msgid "empty WITHOUT OVERLAPS value found in column \"%s\" in relation \"%s\"" +msgstr "" + +#: executor/execMain.c:1171 #, c-format msgid "cannot change sequence \"%s\"" msgstr "მიმდევრობის შეცვლა შეუძლებელია: \"%s\"" -#: executor/execMain.c:1047 +#: executor/execMain.c:1177 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "'TOAST' ტიპის ურთიერთობის \"%s\" შეცვლა შეუძლებელია" -#: executor/execMain.c:1066 +#: executor/execMain.c:1196 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "მატერიალიზებული ხედის შეცვლა შეუძლებელია: %s" -#: executor/execMain.c:1078 +#: executor/execMain.c:1208 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "გარე ცხრილში ჩამატების შეცდომა: %s" -#: executor/execMain.c:1084 +#: executor/execMain.c:1214 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "გარე ცხრილი ჩამატების საშუალებას არ იძლევა: %s" -#: executor/execMain.c:1091 +#: executor/execMain.c:1221 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "გარე ცხრილის განახლების შეცდომა: %s" -#: executor/execMain.c:1097 +#: executor/execMain.c:1227 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "გარე ცხრილი განახლებების საშუალებას არ იძლევა: %s" -#: executor/execMain.c:1104 +#: executor/execMain.c:1234 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "გარე ცხრილიდან წაშლის შეცდომა: %s" -#: executor/execMain.c:1110 +#: executor/execMain.c:1240 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "გარე ცხრილი წაშლის საშუალებას არ იძლევა: %s" -#: executor/execMain.c:1121 +#: executor/execMain.c:1251 #, c-format msgid "cannot change relation \"%s\"" msgstr "ურთიერთობის შეცვლის შეცდომა: %s" -#: executor/execMain.c:1148 +#: executor/execMain.c:1278 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "მიმდევრობაში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1155 +#: executor/execMain.c:1285 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "\"TOAST\" ურთიერთობაში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1162 +#: executor/execMain.c:1292 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "ხედში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1170 +#: executor/execMain.c:1300 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "მატერიალიზებულ ხედში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1179 executor/execMain.c:2684 executor/nodeLockRows.c:135 +#: executor/execMain.c:1309 executor/execMain.c:2941 executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "გარე ცხრილში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1185 +#: executor/execMain.c:1315 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "ურთიერთობაში მწკრივების ჩაკეტვა შეუძლებელია: %s" -#: executor/execMain.c:1898 +#: executor/execMain.c:2038 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "ახალი მწკრივი ურთიერთობისთვის \"%s\" დანაყოფის შეზღუდვას არღვევს" -#: executor/execMain.c:1900 executor/execMain.c:1984 executor/execMain.c:2035 executor/execMain.c:2145 +#: executor/execMain.c:2040 executor/execMain.c:2152 executor/execMain.c:2290 executor/execMain.c:2398 #, c-format msgid "Failing row contains %s." msgstr "შეცდომიანი მწკრივი \"%s\"-ს შეიცავს." -#: executor/execMain.c:1981 -#, c-format -msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" -msgstr "ნულოვანი მნიშვნელობა სვეტში \"%s\" ურთიერთობისთვის \"%s\" არანულოვან შეზღუდვას არღვევს" - -#: executor/execMain.c:2033 +#: executor/execMain.c:2150 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "ახალი მწკრივი ურთიერთობისთვის \"%s\" არღვევს შემოწმების შეზღუდვას \"%s\"" -#: executor/execMain.c:2143 +#: executor/execMain.c:2287 +#, c-format +msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" +msgstr "ნულოვანი მნიშვნელობა სვეტში \"%s\" ურთიერთობისთვის \"%s\" არანულოვან შეზღუდვას არღვევს" + +#: executor/execMain.c:2396 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "ახალი მწკრივი არღვევს შემოწმების პარამეტრს ხედისთვის \"%s\"" -#: executor/execMain.c:2153 +#: executor/execMain.c:2406 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "ახალი მწკრივი არღვევს მწკრივის-დონის უსაფრთხოების პოლიტიკას \"%s\" ცხრილისთვის \"%s\"" -#: executor/execMain.c:2158 +#: executor/execMain.c:2411 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "ახალი მწკრივი ცხრილისთვის \"%s\" მწკრივის-დონის უსაფრთხოების პოლიტიკა არღვევს" -#: executor/execMain.c:2166 +#: executor/execMain.c:2419 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "" -#: executor/execMain.c:2171 +#: executor/execMain.c:2424 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "" -#: executor/execMain.c:2178 +#: executor/execMain.c:2431 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "" -#: executor/execMain.c:2183 +#: executor/execMain.c:2436 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "" -#: executor/execPartition.c:327 +#: executor/execPartition.c:331 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "მწკრივისთვის ურთიერთობის \"%s\" დანაყოფი ვერ ვიპოვე" -#: executor/execPartition.c:330 +#: executor/execPartition.c:334 #, c-format msgid "Partition key of the failing row contains %s." msgstr "შეცდომიანი მწკრივის დანაყოფის გასაღები \"%s\"-ს შეიცავს." -#: executor/execReplication.c:272 executor/execReplication.c:456 +#: executor/execReplication.c:147 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying" msgstr "დასაბლოკი კორტეჟი პარალელური განახლების გამო უკვე სხვა დანაყოფშია გადატანილი. თავიდან ვცდი" -#: executor/execReplication.c:276 executor/execReplication.c:460 +#: executor/execReplication.c:151 #, c-format msgid "concurrent update, retrying" msgstr "ერთდროული განახლება. თავიდან ვცდი" -#: executor/execReplication.c:282 executor/execReplication.c:466 +#: executor/execReplication.c:158 #, c-format msgid "concurrent delete, retrying" msgstr "ერთდროული წაშლა. თავიდან ვცდი" -#: executor/execReplication.c:352 parser/parse_cte.c:302 parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3845 utils/adt/arrayfuncs.c:4400 utils/adt/arrayfuncs.c:6419 utils/adt/rowtypes.c:1220 -#, c-format -msgid "could not identify an equality operator for type %s" -msgstr "ტიპისთვის \"%s\" ტოლობის ფუნქცია ვერ ვიპოვე" - -#: executor/execReplication.c:683 executor/execReplication.c:689 +#: executor/execReplication.c:809 executor/execReplication.c:815 executor/execReplication.c:821 #, c-format msgid "cannot update table \"%s\"" msgstr "ცხრილის განახლების შეცდომა: %s" -#: executor/execReplication.c:685 executor/execReplication.c:697 +#: executor/execReplication.c:811 executor/execReplication.c:829 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." msgstr "გამოცემის WHERE გამოსახულებაში გამოყენებული სვეტი რეპლიკის იდენტიფიკაციის ნაწილს არ წარმოადგენს." -#: executor/execReplication.c:691 executor/execReplication.c:703 +#: executor/execReplication.c:817 executor/execReplication.c:835 #, c-format msgid "Column list used by the publication does not cover the replica identity." msgstr "გამოცემის მიერ გამოყენებული სვეტების სია რეპლიკის იდენტიფიკაციას არ ფარავს." -#: executor/execReplication.c:695 executor/execReplication.c:701 +#: executor/execReplication.c:823 executor/execReplication.c:841 +#, c-format +msgid "Replica identity must not contain unpublished generated columns." +msgstr "" + +#: executor/execReplication.c:827 executor/execReplication.c:833 executor/execReplication.c:839 #, c-format msgid "cannot delete from table \"%s\"" msgstr "ცხრილიდან წაშლის შეცდომა: %s" -#: executor/execReplication.c:721 +#: executor/execReplication.c:859 #, c-format msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates" msgstr "ცხრილის \"%s\" განახლება შეუძლებელია, რადგან მას რეპლიკის იდენტიფიკაცია არ გააჩნია და განახლებებს აქვეყნებს" -#: executor/execReplication.c:723 +#: executor/execReplication.c:861 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "ცხრილის განახლების ჩასართავად ALTER TABLE-ით REPLICA IDENTITY დააყენეთ." -#: executor/execReplication.c:727 +#: executor/execReplication.c:865 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" msgstr "ცხრილიდან \"%s\" წაშლა შეუძლებელია, რადგან მას რეპლიკის იდენტიფიკაცია არ გააჩნია და წაშლებს აქვეყნებს" -#: executor/execReplication.c:729 +#: executor/execReplication.c:867 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "ცხრილიდან წაშლის ჩასართავად ALTER TABLE-ის გამოყენებით REPLICA IDENTITY დააყენეთ." -#: executor/execReplication.c:745 +#: executor/execReplication.c:883 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "ურთიერთობას \"%s.%s\" ლოგიკური რეპლიკაციის სამიზნედ ვერ გამოიყენებთ" @@ -13490,114 +13733,114 @@ msgstr[1] "" msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "" -#: executor/execTuples.c:147 executor/execTuples.c:368 executor/execTuples.c:563 executor/execTuples.c:772 +#: executor/execTuples.c:147 executor/execTuples.c:369 executor/execTuples.c:564 executor/execTuples.c:774 #, c-format msgid "cannot retrieve a system column in this context" msgstr "ამ კონტექსტში სისტემური სვეტის მიღება შეუძლებელია" -#: executor/execTuples.c:163 executor/execTuples.c:580 +#: executor/execTuples.c:163 executor/execTuples.c:581 #, c-format msgid "don't have transaction information for this type of tuple" msgstr "" -#: executor/execTuples.c:390 executor/execTuples.c:794 +#: executor/execTuples.c:391 executor/execTuples.c:796 #, c-format msgid "don't have a storage tuple in this context" msgstr "ამ კონტექსტში საცავის კორტეჟი არ აქვს" -#: executor/execUtils.c:713 +#: executor/execUtils.c:759 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "მატერიალიზებული ხედი \"%s\" შევსებული არაა" -#: executor/execUtils.c:715 -#, c-format -msgid "Use the REFRESH MATERIALIZED VIEW command." -msgstr "გამოიყენეთ ბრძანება REFRESH MATERIALIZED VIEW." - -#: executor/functions.c:217 +#: executor/functions.c:288 #, c-format msgid "could not determine actual type of argument declared %s" msgstr "არგუმენტის, აღწერილის, როგორც '%s' ტიპის დადგენა შეუძლებელია" -#: executor/functions.c:512 +#: executor/functions.c:711 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "'SQL' ფუნქციაში კლიენტიდან/კლიენტამდე COPY შეუძლებელია" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:717 #, c-format msgid "%s is not allowed in an SQL function" msgstr "%s SQL ფუნქციაში დაშვებული არაა" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1741 executor/spi.c:2649 +#: executor/functions.c:725 executor/spi.c:1746 executor/spi.c:2660 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "%s-ის გამოყენება არააქროლად ფუნქციაში დაუშვებელია" -#: executor/functions.c:1451 +#: executor/functions.c:1159 executor/functions.c:2182 executor/functions.c:2220 executor/functions.c:2234 executor/functions.c:2324 executor/functions.c:2357 executor/functions.c:2371 #, c-format -msgid "SQL function \"%s\" statement %d" -msgstr "SQL ფუნქცია \"%s\" გამოსახულება %d" +msgid "return type mismatch in function declared to return %s" +msgstr "დაბრუნების ტიპის შეცდომა ფუნქციაში, რომელსაც აღწერილი აქვს, დააბრუნოს %s" -#: executor/functions.c:1477 +#: executor/functions.c:1161 executor/functions.c:2184 #, c-format -msgid "SQL function \"%s\" during startup" -msgstr "SQL ფუნქცია \"%s\" გაშვებისას" +msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." +msgstr "ფუნქციის ბოლო გამოსახულება SELECT ან INSERT/UPDATE/DELETE/MERGE RETURNING უნდა იყოს." -#: executor/functions.c:1562 +#: executor/functions.c:1244 utils/cache/plancache.c:869 #, c-format -msgid "calling procedures with output arguments is not supported in SQL functions" -msgstr "გამოტანის არგუმენტების მქონე პროცედურების გამოძახება SQL-ის ფუნქციებში მხარდაჭერილი არაა" +msgid "cached plan must not change result type" +msgstr "დაკეშილი გეგმა შედეგის ტიპს არ უნდა ცვლიდეს" -#: executor/functions.c:1697 executor/functions.c:1735 executor/functions.c:1749 executor/functions.c:1844 executor/functions.c:1877 executor/functions.c:1891 +#: executor/functions.c:1880 executor/functions.c:1911 #, c-format -msgid "return type mismatch in function declared to return %s" -msgstr "დაბრუნების ტიპის შეცდომა ფუნქციაში, რომელსაც აღწერილი აქვს, დააბრუნოს %s" +msgid "SQL function \"%s\" during startup" +msgstr "SQL ფუნქცია \"%s\" გაშვებისას" -#: executor/functions.c:1699 +#: executor/functions.c:1908 #, c-format -msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." -msgstr "ფუნქციის ბოლო გამოსახულება SELECT ან INSERT/UPDATE/DELETE/MERGE RETURNING უნდა იყოს." +msgid "SQL function \"%s\" statement %d" +msgstr "SQL ფუნქცია \"%s\" გამოსახულება %d" -#: executor/functions.c:1737 +#: executor/functions.c:2033 +#, c-format +msgid "calling procedures with output arguments is not supported in SQL functions" +msgstr "გამოტანის არგუმენტების მქონე პროცედურების გამოძახება SQL-ის ფუნქციებში მხარდაჭერილი არაა" + +#: executor/functions.c:2222 #, c-format msgid "Final statement must return exactly one column." msgstr "პირველი გამოსახულება ზუსტად ერთ სვეტს უნდა აბრუნებდეს." -#: executor/functions.c:1751 +#: executor/functions.c:2236 #, c-format msgid "Actual return type is %s." msgstr "დაბრუნების ნამდვილი ტიპია %s." -#: executor/functions.c:1846 +#: executor/functions.c:2326 #, c-format msgid "Final statement returns too many columns." msgstr "პირველი გამოსახულება მეტისმეტად ბევრ სვეტს აბრუნებს." -#: executor/functions.c:1879 +#: executor/functions.c:2359 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "" -#: executor/functions.c:1893 +#: executor/functions.c:2373 #, c-format msgid "Final statement returns too few columns." msgstr "ბოლო გამოსახულება მეტისმეტად ცოტა სვეტს აბრუნებს." -#: executor/functions.c:1921 +#: executor/functions.c:2401 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "დაბრუნების ტიპი %s SQL ფუნქციებში მხარდაჭერილი არაა" -#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2976 +#: executor/nodeAgg.c:4039 executor/nodeWindowAgg.c:3041 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "" -#: executor/nodeAgg.c:3966 parser/parse_agg.c:682 parser/parse_agg.c:710 +#: executor/nodeAgg.c:4062 parser/parse_agg.c:685 parser/parse_agg.c:713 #, c-format msgid "aggregate function calls cannot be nested" msgstr "აგრეგატულ ფუნქციებს ერთანეთში ვერ ჩადგამთ" @@ -13607,12 +13850,12 @@ msgstr "აგრეგატულ ფუნქციებს ერთან msgid "custom scan \"%s\" does not support MarkPos" msgstr "" -#: executor/nodeHashjoin.c:1130 executor/nodeHashjoin.c:1160 +#: executor/nodeHashjoin.c:1230 executor/nodeHashjoin.c:1260 #, c-format msgid "could not rewind hash-join temporary file" msgstr "" -#: executor/nodeIndexonlyscan.c:239 +#: executor/nodeIndexonlyscan.c:240 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "" @@ -13627,73 +13870,78 @@ msgstr "OFFSET უარყოფითი უნდა იყოს" msgid "LIMIT must not be negative" msgstr "LIMIT უარყოფითი არ უნდა იყოს" -#: executor/nodeMergejoin.c:1578 +#: executor/nodeMergejoin.c:1574 #, c-format msgid "RIGHT JOIN is only supported with merge-joinable join conditions" msgstr "" -#: executor/nodeMergejoin.c:1596 +#: executor/nodeMergejoin.c:1592 #, c-format msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "" -#: executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:247 +#, c-format +msgid "Query provides a value for a generated column at ordinal position %d." +msgstr "" + +#: executor/nodeModifyTable.c:267 #, c-format msgid "Query has too few columns." msgstr "მოთხოვნას ძალიან ცოტა სვეტი აქვს." -#: executor/nodeModifyTable.c:1531 executor/nodeModifyTable.c:1605 +#: executor/nodeModifyTable.c:1684 executor/nodeModifyTable.c:1758 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "" -#: executor/nodeModifyTable.c:1760 +#: executor/nodeModifyTable.c:1957 #, c-format msgid "invalid ON UPDATE specification" msgstr "\"ON UPDATE\"-ის არასწორი სპეციფიკაცია" -#: executor/nodeModifyTable.c:1761 +#: executor/nodeModifyTable.c:1958 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "" -#: executor/nodeModifyTable.c:2217 +#: executor/nodeModifyTable.c:2414 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "" -#: executor/nodeModifyTable.c:2218 +#: executor/nodeModifyTable.c:2415 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "" -#: executor/nodeModifyTable.c:2221 +#: executor/nodeModifyTable.c:2418 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "განიხილეთ გარე გასაღების აღწერა ცხრილზე \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:3081 executor/nodeModifyTable.c:3242 +#: executor/nodeModifyTable.c:2785 executor/nodeModifyTable.c:3334 executor/nodeModifyTable.c:3504 #, c-format msgid "%s command cannot affect row a second time" msgstr "ბრძანებას %s მწკრივის მეორედ შეცვლა არ შეუძლია" -#: executor/nodeModifyTable.c:2569 +#: executor/nodeModifyTable.c:2787 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "" -#: executor/nodeModifyTable.c:3074 executor/nodeModifyTable.c:3235 +#: executor/nodeModifyTable.c:3327 executor/nodeModifyTable.c:3497 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "გასაახლებელი ან წასაშლელ კორტეჟი მიმდინარე ბრძანების მიერ დატრიგერებულმა ოპერაციამ უკვე შეცვალა" -#: executor/nodeModifyTable.c:3083 executor/nodeModifyTable.c:3244 +#: executor/nodeModifyTable.c:3336 executor/nodeModifyTable.c:3506 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" -#: executor/nodeModifyTable.c:3152 +#: executor/nodeModifyTable.c:3405 #, c-format msgid "tuple to be merged was already moved to another partition due to concurrent update" msgstr "შესარწყმელი კორტეჟები პარალელური განახლების გამო უკვე სხვა დანაყოფშია გადატანილი" @@ -13708,7 +13956,7 @@ msgstr "TABLESAMPLE პარამეტრი ნულოვანი ვე msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "TABLESAMPLE REPEATABLE პარამეტრი ნულოვანი ვერ იქნება" -#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 +#: executor/nodeSubplan.c:317 executor/nodeSubplan.c:343 executor/nodeSubplan.c:397 executor/nodeSubplan.c:1182 #, c-format msgid "more than one row returned by a subquery used as an expression" msgstr "" @@ -13743,104 +13991,104 @@ msgstr "სვეტში \"%s\" ნულოვანი მნიშვნე msgid "moving-aggregate transition function must not return null" msgstr "" -#: executor/nodeWindowAgg.c:2083 +#: executor/nodeWindowAgg.c:2106 #, c-format msgid "frame starting offset must not be null" msgstr "ჩარჩოს საწყისი წანაცვლება ნულის ტოლი ვერ იქნება" -#: executor/nodeWindowAgg.c:2096 +#: executor/nodeWindowAgg.c:2120 #, c-format msgid "frame starting offset must not be negative" msgstr "ჩარჩოს საწყისი წანაცვლება უარყოფითი ვერ იქნება" -#: executor/nodeWindowAgg.c:2108 +#: executor/nodeWindowAgg.c:2133 #, c-format msgid "frame ending offset must not be null" msgstr "ჩარჩოს ბოლოს წანაცვლება ნულის ტოლი ვერ იქნება" -#: executor/nodeWindowAgg.c:2121 +#: executor/nodeWindowAgg.c:2147 #, c-format msgid "frame ending offset must not be negative" msgstr "ჩარჩოს ბოლოს წანაცვლება უარყოფითი ვერ იქნება" -#: executor/nodeWindowAgg.c:2892 +#: executor/nodeWindowAgg.c:2957 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "აგრეგატულ ფუნქციას %s ფანჯრის ფუნქციად გაშვების მხარდაჭერა არ გააჩნია" -#: executor/spi.c:241 executor/spi.c:341 +#: executor/spi.c:242 executor/spi.c:342 #, c-format msgid "invalid transaction termination" msgstr "ტრანზაქციის არასწორი დასასრული" -#: executor/spi.c:256 +#: executor/spi.c:257 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "როცა ქვეტრანზაქცია აქტიურია, კომიტი შეუძლებელია" -#: executor/spi.c:347 +#: executor/spi.c:348 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "როცა ქვეტრანზაქცია აქტიურია, ტრანზაქციის გაუქმება შეუძლებელია" -#: executor/spi.c:471 +#: executor/spi.c:472 #, c-format msgid "transaction left non-empty SPI stack" msgstr "ტრანზაქცის შემდეგ დარჩენილი SPI სტეკი ცარიელი არაა" -#: executor/spi.c:472 executor/spi.c:532 +#: executor/spi.c:473 executor/spi.c:533 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "ნაკლულ \"SPI_finish\" გამოძახებებზე შემოწმება." -#: executor/spi.c:531 +#: executor/spi.c:532 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "ქვეტრანზაქცის შემდეგ დარჩენილი SPI სტეკი ცარიელი არაა" -#: executor/spi.c:1599 +#: executor/spi.c:1603 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "მრავალმოთხოვნიანი გეგმის კურსორის სახით გახსნა შეუძლებელია" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1609 +#: executor/spi.c:1613 #, c-format msgid "cannot open %s query as cursor" msgstr "%s გამოსახულების კურსორის სახით გახნა შეუძლებელია" -#: executor/spi.c:1715 +#: executor/spi.c:1720 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE მხარდაჭერილი არაა" -#: executor/spi.c:1716 parser/analyze.c:2928 +#: executor/spi.c:1721 parser/analyze.c:3161 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "გადახვევადი კურსორები READ ONLY უნდა იყოს." -#: executor/spi.c:2488 +#: executor/spi.c:2498 #, c-format msgid "empty query does not return tuples" msgstr "ცარიელი მოთხოვნა კორტეჟებს არ აბრუნებს" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2562 +#: executor/spi.c:2573 #, c-format msgid "%s query does not return tuples" msgstr "მოთხოვნა %s კორტეჟებს არ აბრუნებს" -#: executor/spi.c:2979 +#: executor/spi.c:3004 #, c-format -msgid "SQL expression \"%s\"" -msgstr "SQL გამოსახულება \"%s\"" +msgid "PL/pgSQL expression \"%s\"" +msgstr "PL/pgSQL გამოსახულება \"%s\"" -#: executor/spi.c:2984 +#: executor/spi.c:3009 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "PL/pgSQL მინიჭება \"%s\"" -#: executor/spi.c:2987 +#: executor/spi.c:3012 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL ოპერატორი \"%s\"" @@ -13850,478 +14098,480 @@ msgstr "SQL ოპერატორი \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "გაზიარებული-მეხსიერების მქონე რიგში კორტეჟის გაგზავნა შეუძლებელია" -#: foreign/foreign.c:224 +#: foreign/foreign.c:225 #, c-format msgid "user mapping not found for user \"%s\", server \"%s\"" msgstr "\"%s\"-სთვის მომხმარებლის ასახვა ვერ ვიპოვე. სერვერი \"%s\"" -#: foreign/foreign.c:650 +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7228 optimizer/util/plancat.c:538 +#, c-format +msgid "access to non-system foreign table is restricted" +msgstr "" + +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "არასწორი პარამეტრი \"%s\"" -#: foreign/foreign.c:652 +#: foreign/foreign.c:662 #, c-format msgid "Perhaps you meant the option \"%s\"." msgstr "შესაძლოა, გულისხმობდით პარამეტრს \"%s\"." -#: foreign/foreign.c:654 +#: foreign/foreign.c:664 #, c-format msgid "There are no valid options in this context." msgstr "ამ კონტექსტში სწორი პარამეტრები არ არსებობს." -#: gram.y:1234 +#: gram.y:1223 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD მხარდაჭერილი აღარაა" -#: gram.y:1235 +#: gram.y:1224 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "პაროლის დაშიფრულ ფორმაში დასამახსოვრებლად წაშალეთ UNENCRYPTED." -#: gram.y:1562 gram.y:1578 +#: gram.y:1551 gram.y:1567 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTS არ შეიძლება, სქემის ელემენტებს შეიცავდეს" -#: gram.y:1730 +#: gram.y:1728 #, c-format msgid "current database cannot be changed" msgstr "მიმდინარე ბაზის შეცვლა შეუძლებელია" -#: gram.y:1863 +#: gram.y:1869 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "დროის სარტყლის ინტერვალი HOUR ან HOUR TO MINUTE უნდა იყოს" -#: gram.y:2539 +#: gram.y:2501 #, c-format msgid "column number must be in range from 1 to %d" msgstr "სვეტის ნომერი უნდა იყოს 1-დან %d-მდე" -#: gram.y:3135 +#: gram.y:3120 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "მიმდევრობის პარამეტრი \"%s\" აქ მხარდაჭერილი არაა" -#: gram.y:3174 +#: gram.y:3159 #, c-format msgid "modulus for hash partition provided more than once" msgstr "ჰეშ-დანაყოფის მოდული ერთზე მეტჯერაა მითითებული" -#: gram.y:3183 +#: gram.y:3168 #, c-format msgid "remainder for hash partition provided more than once" msgstr "დარჩენილი ნაწილი ჰეშ-დანაყოფისთვის ერთზე მეტჯერაა მითითებული" -#: gram.y:3190 +#: gram.y:3175 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "" -#: gram.y:3198 +#: gram.y:3183 #, c-format msgid "modulus for hash partition must be specified" msgstr "საჭიროა ჰეშ დანაყოფის მოდულის მითითება" -#: gram.y:3202 +#: gram.y:3188 #, c-format msgid "remainder for hash partition must be specified" msgstr "საჭიროა ჰეშ დანაყოფის ნაშთის მითითება" -#: gram.y:3410 gram.y:3444 +#: gram.y:3397 gram.y:3432 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "STDIN/STDOUT-ი PROGRAM-თან ერთად დაშვებული არაა" -#: gram.y:3416 +#: gram.y:3403 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "პირობა 'WHERE' 'COPY TO'-სთან ერთად დაშვებული არაა" -#: gram.y:3764 gram.y:3771 gram.y:13068 gram.y:13076 +#: gram.y:3752 gram.y:3759 gram.y:13184 gram.y:13192 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "დროებითი ცხრილის შექმნაში GLOBAL-ი მოძველებულია" -#: gram.y:4047 +#: gram.y:4041 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "გენერირებული სვეტისთვის GENERATED ALWAYS-ის მითითება აუცილებელია" -#: gram.y:4392 utils/adt/ri_triggers.c:2103 +#: gram.y:4450 utils/adt/ri_triggers.c:2259 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "MATCH PARTIAL ჯერ განხორციელებული არაა" -#: gram.y:4484 +#: gram.y:4542 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "" -#: gram.y:5196 +#: gram.y:5261 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM უკვე მხარდაუჭერელია" -#: gram.y:5894 +#: gram.y:5959 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "მწკრივის უსაფრთხოების უცნობი პარამეტრი:\"%s\"" -#: gram.y:5895 +#: gram.y:5960 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "" -#: gram.y:5980 +#: gram.y:6045 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER მხარდაუჭერელია" -#: gram.y:6017 +#: gram.y:6083 msgid "duplicate trigger events specified" msgstr "მითითებულია ტრიგერი მეორდება" -#: gram.y:6159 parser/parse_utilcmd.c:3839 parser/parse_utilcmd.c:3865 +#: gram.y:6225 parser/parse_utilcmd.c:3925 parser/parse_utilcmd.c:3951 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" -msgstr "" +msgstr "შეზღუდვა, რომელიც აღწერილია, როგორც 'INITIALLY DEFERRED' DEFERRABLE ტიპის უნდა იყოს" -#: gram.y:6166 +#: gram.y:6233 #, c-format msgid "conflicting constraint properties" msgstr "ერთმანეთთან შეუთავსებელი შეზღუდვის თვისებები" -#: gram.y:6265 +#: gram.y:6334 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTION ჯერ განუხორცელებია" -#: gram.y:6582 +#: gram.y:6652 #, c-format msgid "dropping an enum value is not implemented" msgstr "ჩამონათვლის მნიშვნელობის მოცილება განხორციელებული არაა" -#: gram.y:6700 -#, c-format -msgid "RECHECK is no longer required" -msgstr "RECHECK საჭირო აღარაა" - -#: gram.y:6701 -#, c-format -msgid "Update your data type." -msgstr "განაახლეთ თქვენი მონაცემთა ტიპი." - -#: gram.y:8574 +#: gram.y:8632 #, c-format msgid "aggregates cannot have output arguments" msgstr "აგრეგატებს გამოტანის არგუმენტები ვერ ექნება" -#: gram.y:9037 utils/adt/regproc.c:670 +#: gram.y:9096 utils/adt/regproc.c:670 #, c-format msgid "missing argument" msgstr "ნაკლული არგუმენტი" -#: gram.y:9038 utils/adt/regproc.c:671 +#: gram.y:9097 utils/adt/regproc.c:671 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "" -#: gram.y:11266 gram.y:11285 +#: gram.y:11325 gram.y:11344 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTION რეკურსიულ ხედებზე მხარდაუჭერელია" -#: gram.y:13207 +#: gram.y:13331 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "LIMIT #,# სინტაქსი მხარდაჭერილი არაა" -#: gram.y:13208 +#: gram.y:13332 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "გამოიყენეთ განცალკევებული LIMIT და OFFSET პირობები." -#: gram.y:14083 +#: gram.y:14220 #, c-format msgid "only one DEFAULT value is allowed" msgstr "დასაშვებია DEFAULT_ის მხოლოდ ერთი მნიშვნელობა" -#: gram.y:14092 +#: gram.y:14229 #, c-format msgid "only one PATH value per column is allowed" msgstr "ყოველ სვეტზე PATH-ის მხოლოდ ერთი მნიშვნელობაა დასაშვები" -#: gram.y:14101 +#: gram.y:14238 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "" -#: gram.y:14110 +#: gram.y:14247 #, c-format msgid "unrecognized column option \"%s\"" msgstr "სვეტის უცნობი პარამეტრი %s" -#: gram.y:14192 +#: gram.y:14329 #, c-format msgid "only string constants are supported in JSON_TABLE path specification" msgstr "" -#: gram.y:14514 +#: gram.y:14651 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "წილადი რიცხვების სიზუსტე 1 ბიტი მაინც უნდა იყოს" -#: gram.y:14523 +#: gram.y:14660 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "წილადი რიცხვების სიზუსტე 54 ბიტზე მეტი ვერ იქნება" -#: gram.y:15040 +#: gram.y:15177 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "" -#: gram.y:15045 +#: gram.y:15182 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "" -#: gram.y:15222 +#: gram.y:15359 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "პრედიკატი UNIQUE ჯერ განხორციელებული არაა" -#: gram.y:15636 +#: gram.y:15773 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "'WITHIN GROUP'-თან ერთად ერთზე მეტი ORDER BY პირობის გამოყენება შეუძლებელია" -#: gram.y:15641 +#: gram.y:15778 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "\"DISTINCT\"-ს \"WITHIN GROUP\"-თან ერთად ვერ გამოიყენებთ" -#: gram.y:15646 +#: gram.y:15783 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "\"VARIADIC\"-ს \"WITHIN GROUP\"-თან ერთად ვერ გამოიყენებთ" -#: gram.y:16373 gram.y:16397 +#: gram.y:16510 gram.y:16534 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "ჩარჩოს დასაწყისი UNBOUNDED FOLLOWING ვერ იქნება" -#: gram.y:16378 +#: gram.y:16515 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "ჩარჩო, რომელიც შემდეგი მწკრივიდან იწყება, მიმდინარე მწკრივზე ვერ დასრულდება" -#: gram.y:16402 +#: gram.y:16539 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "ჩარჩოს დასასრული UNBOUNDED PRECEDING ვერ იქნება" -#: gram.y:16408 +#: gram.y:16545 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "ჩარჩოს, რომელიც მიმდინარე მწკრივიდან იწყება, წინა ჩარჩოები ვერ ექნება" -#: gram.y:16415 +#: gram.y:16552 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "ჩარჩოს, რომელიც შემდეგი მწკრივიდან იწყება, წინა ჩარჩოები ვერ ექნება" -#: gram.y:16964 +#: gram.y:17101 #, c-format msgid "unrecognized JSON encoding: %s" msgstr "უცნობი JSON კოდირება \"%s\"" -#: gram.y:17288 +#: gram.y:17426 #, c-format msgid "type modifier cannot have parameter name" msgstr "ტიპის მოდიფიკატორს პარამეტრის სახელი ვერ ექნება" -#: gram.y:17294 +#: gram.y:17432 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "ტიპის მოდიფიკატორს ORDER BY ვერ ექნება" -#: gram.y:17362 gram.y:17369 gram.y:17376 +#: gram.y:17500 gram.y:17507 gram.y:17514 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s აქ როგორც როლის სახელს ვერ გამოიყენებთ" -#: gram.y:17466 gram.y:18955 +#: gram.y:17604 gram.y:19135 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES-ს ORDER BY პირობის გარეშე ვერ მიუთითებთ" -#: gram.y:18646 gram.y:18821 +#: gram.y:18828 gram.y:19003 msgid "improper use of \"*\"" msgstr "\"*\"-ის არასათანადო გამოყენება" -#: gram.y:18784 gram.y:18801 tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 tsearch/spell.c:1014 tsearch/spell.c:1079 +#: gram.y:18966 gram.y:18983 tsearch/spell.c:965 tsearch/spell.c:982 tsearch/spell.c:999 tsearch/spell.c:1016 tsearch/spell.c:1082 #, c-format msgid "syntax error" msgstr "სინტაქსის შეცდომა" -#: gram.y:18885 +#: gram.y:19067 #, c-format msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type" msgstr "" -#: gram.y:18922 +#: gram.y:19104 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "\"ORDER BY\"-ის გამოყენება მხოლოდ ერთხელ შეგიძლიათ" -#: gram.y:18933 +#: gram.y:19115 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "\"OFFSET\"-ის გამოყენება მხოლოდ ერთხელ შეგიძლიათ" -#: gram.y:18942 +#: gram.y:19124 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "\"LIMIT\"-ის გამოყენება მხოლოდ ერთხელ შეგიძლიათ" -#: gram.y:18951 -#, c-format -msgid "multiple limit options not allowed" -msgstr "ლიმიტის პარამეტრების მითითება მხოლოდ ერთხელ შეგიძლიათ" - -#: gram.y:18978 +#: gram.y:19160 #, c-format msgid "multiple WITH clauses not allowed" msgstr "\"WITH\"-ის გამოყენება მხოლოდ ერთხელ შეგიძლიათ" -#: gram.y:19171 +#: gram.y:19358 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "" -#: gram.y:19304 +#: gram.y:19492 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "\"COLLATE\"-ის გამოყენება მხოლოდ ერთხელ შეგიძლიათ" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19342 gram.y:19355 +#: gram.y:19532 gram.y:19545 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "%s -ის შეზღუდვებიs, როგორც DEFERRABLE, მონიშვნა შეუძლებელია" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19368 +#: gram.y:19558 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "%s -ის შეზღუდვებიs, როგორც NOT VALID, მონიშვნა შეუძლებელია" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:19381 +#: gram.y:19571 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "%s -ის შეზღუდვებიs, როგორც NO INHERIT, მონიშვნა შეუძლებელია" -#: gram.y:19403 +#. translator: %s is CHECK, UNIQUE, or similar +#: gram.y:19584 +#, c-format +msgid "%s constraints cannot be marked NOT ENFORCED" +msgstr "%s -ის შეზღუდვების, როგორც NOT ENFORCED, მონიშვნა შეუძლებელია" + +#. translator: %s is CHECK, UNIQUE, or similar +#: gram.y:19606 +#, c-format +msgid "%s constraints cannot be marked ENFORCED" +msgstr "%s -ის შეზღუდვებიs, როგორც ENFORCED, მონიშვნა შეუძლებელია" + +#: gram.y:19628 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "დაყოფის უცნობი სტრატეგია: %s" -#: gram.y:19427 +#: gram.y:19652 #, c-format msgid "invalid publication object list" msgstr "პუბლიკაციების ობიექტების არასწორი სია" -#: gram.y:19428 +#: gram.y:19653 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." msgstr "" -#: gram.y:19444 +#: gram.y:19669 #, c-format msgid "invalid table name" msgstr "არასწორი ცხრილის სახელი" -#: gram.y:19465 +#: gram.y:19690 #, c-format msgid "WHERE clause not allowed for schema" msgstr "WHERE პირობა სქემისთვის დაშვებული არაა" -#: gram.y:19472 +#: gram.y:19697 #, c-format msgid "column specification not allowed for schema" msgstr "სქემისთვის სვეტის მითითება დაშვებული არაა" -#: gram.y:19486 +#: gram.y:19711 #, c-format msgid "invalid schema name" msgstr "არასწორი სქემის სახელი" -#: guc-file.l:192 +#: guc-file.l:193 #, c-format msgid "empty configuration file name: \"%s\"" msgstr "კონფიგურაციის ფაილის ცარიელი სახელი: \"%s\"" -#: guc-file.l:209 +#: guc-file.l:210 #, c-format msgid "could not open configuration file \"%s\": maximum nesting depth exceeded" msgstr "კონფიგურაციის ფაილის (\"%s\") გახსნა შეუძლებელია: ჩალაგების სიღრმე გადაცილებულია" -#: guc-file.l:229 +#: guc-file.l:230 #, c-format msgid "configuration file recursion in \"%s\"" msgstr "კონფიგურაციის ფაილის რეკურსია \"%s\"-ში" -#: guc-file.l:245 +#: guc-file.l:246 #, c-format msgid "could not open configuration file \"%s\": %m" msgstr "კონფიგურაციის ფაილის ('%s') გახსნის შეცდომა: %m" -#: guc-file.l:256 +#: guc-file.l:257 #, c-format msgid "skipping missing configuration file \"%s\"" msgstr "კონფიგურაციის ფაილის გამოტოვება \"%s\"" -#: guc-file.l:511 +#: guc-file.l:518 #, c-format msgid "syntax error in file \"%s\" line %u, near end of line" msgstr "სინტაქსის შეცდომა ფაილში \"%s\" ხაზზე %u, ხაზის ბოლოსთან ახლოს" -#: guc-file.l:521 +#: guc-file.l:528 #, c-format msgid "syntax error in file \"%s\" line %u, near token \"%s\"" msgstr "სინტაქსის შეცდომა ფაილში \"%s\" ხაზზე %u, ახლოს კოდთან \"%s\"" -#: guc-file.l:541 +#: guc-file.l:548 #, c-format msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "აღმოჩენილია მეტისმეტად ბევრი შეცდომა. ფაილი \"%s\" მიტოვებულია" -#: jsonpath_gram.y:266 jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 jsonpath_scan.l:661 jsonpath_scan.l:712 utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:658 utils/adt/varlena.c:333 utils/adt/varlena.c:374 +#: jsonpath_gram.y:268 jsonpath_gram.y:600 jsonpath_scan.l:617 jsonpath_scan.l:628 jsonpath_scan.l:638 jsonpath_scan.l:690 utils/adt/encode.c:513 utils/adt/encode.c:578 utils/adt/jsonfuncs.c:661 utils/adt/varlena.c:341 utils/adt/varlena.c:382 #, c-format msgid "invalid input syntax for type %s" msgstr "არასწორი შეყვანის სინტაქსი ტიპისთვის %s" -#: jsonpath_gram.y:267 +#: jsonpath_gram.y:269 #, c-format msgid ".decimal() can only have an optional precision[,scale]." msgstr "" -#: jsonpath_gram.y:599 +#: jsonpath_gram.y:601 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "უცნობი ალმის სიმბოლო \"%.*s\" LIKE_REGEX პრედიკატში." -#: jsonpath_gram.y:629 tsearch/spell.c:749 utils/adt/regexp.c:223 +#: jsonpath_gram.y:631 tsearch/spell.c:751 utils/adt/regexp.c:223 #, c-format msgid "invalid regular expression: %s" msgstr "არასწორი რეგულარული გამოსახულება: %s" -#: jsonpath_gram.y:677 +#: jsonpath_gram.y:679 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "ენის XQuery ალამი \"x\" (გაფართოებული რეგულარული გამოსახულებები) განხორციელებული არაა" @@ -14338,48 +14588,48 @@ msgstr "არასწორი თექვსმეტობითი სი msgid "unexpected end after backslash" msgstr "მოულოდნელი დასასრული '\\' სიმბოლოს შემდეგ" -#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:742 +#: jsonpath_scan.l:201 repl_scanner.l:217 scan.l:742 msgid "unterminated quoted string" msgstr "ბრჭყალებში ჩასმული ციტატის დაუსრულებელი სტრიქონი" -#: jsonpath_scan.l:228 +#: jsonpath_scan.l:227 msgid "unexpected end of comment" msgstr "კომენტარის მოულოდნელი დასასრული" -#: jsonpath_scan.l:319 +#: jsonpath_scan.l:317 msgid "invalid numeric literal" msgstr "არასწორი რიცხვითი მუდმივა" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1050 scan.l:1054 scan.l:1058 scan.l:1062 scan.l:1066 scan.l:1070 scan.l:1074 +#: jsonpath_scan.l:322 jsonpath_scan.l:327 jsonpath_scan.l:332 scan.l:1056 scan.l:1060 scan.l:1064 scan.l:1068 msgid "trailing junk after numeric literal" msgstr "რიცხვითი მნიშვნელობის შემდეგ მონაცემები ნაგავია" #. translator: %s is typically "syntax error" -#: jsonpath_scan.l:375 +#: jsonpath_scan.l:378 #, c-format msgid "%s at end of jsonpath input" msgstr "%s jsonpath-ის შეყვანის ბოლოში" #. translator: first %s is typically "syntax error" -#: jsonpath_scan.l:382 +#: jsonpath_scan.l:385 #, c-format msgid "%s at or near \"%s\" of jsonpath input" -msgstr "" +msgstr "%s ზუსტად ან ახლოს jsonpath შეყვანის \"%s\"-სთან" -#: jsonpath_scan.l:568 +#: jsonpath_scan.l:545 msgid "invalid input" msgstr "არასწორი შეყვანა" -#: jsonpath_scan.l:594 +#: jsonpath_scan.l:571 msgid "invalid hexadecimal digit" msgstr "არასწორი თექვსმეტობითი ციფრი" -#: jsonpath_scan.l:607 utils/adt/jsonfuncs.c:646 +#: jsonpath_scan.l:584 utils/adt/jsonfuncs.c:649 #, c-format msgid "unsupported Unicode escape sequence" msgstr "უნიკოდის სპეცკოდის მხარდაუჭერელი მიმდევრობა" -#: jsonpath_scan.l:625 +#: jsonpath_scan.l:602 #, c-format msgid "could not convert Unicode to server encoding" msgstr "უნიკოდის სერვერის კოდირებაში გადაყვანა შეუძლებელია" @@ -14389,685 +14639,852 @@ msgstr "უნიკოდის სერვერის კოდირებ msgid "Failed on DSA request of size %zu." msgstr "შეცდომა DSA მეხსიერების გამოთხოვისას (ზომა %zu ბაიტი)." -#: libpq/auth-sasl.c:97 -#, c-format -msgid "expected SASL response, got message type %d" -msgstr "მოველოდი SASL პასუხს. მიღებული შეტყობინების ტიპია %d" - -#: libpq/auth-scram.c:263 +#: libpq/auth-oauth.c:109 libpq/auth-scram.c:267 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "კლიენტის არჩეული SASL ავთენტიკაციის მექანიზმი არასწორია" -#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 +#: libpq/auth-oauth.c:169 libpq/auth-oauth.c:174 libpq/auth-oauth.c:192 libpq/auth-oauth.c:220 libpq/auth-oauth.c:230 libpq/auth-oauth.c:239 libpq/auth-oauth.c:254 libpq/auth-oauth.c:263 libpq/auth-oauth.c:272 libpq/auth-oauth.c:279 libpq/auth-oauth.c:342 libpq/auth-oauth.c:349 libpq/auth-oauth.c:375 libpq/auth-oauth.c:420 libpq/auth-oauth.c:438 libpq/auth-oauth.c:452 libpq/auth-oauth.c:472 +#, c-format +msgid "malformed OAUTHBEARER message" +msgstr "დამახინჯებული OAUTHBEARER-ის შეტყობინება" + +#: libpq/auth-oauth.c:170 libpq/auth-scram.c:383 +#, c-format +msgid "The message is empty." +msgstr "შეტყობინება ცარიელია." + +#: libpq/auth-oauth.c:175 libpq/auth-scram.c:388 +#, c-format +msgid "Message length does not match input length." +msgstr "შეტყობინების სიგრძე შეყვანის სიგრძეს არემთხვევა." + +#: libpq/auth-oauth.c:193 +#, c-format +msgid "Client did not send a kvsep response." +msgstr "კლიენტმა kvsep პასუხი არ გამოაგზავნა." + +#: libpq/auth-oauth.c:221 +#, c-format +msgid "The server does not support channel binding for OAuth, but the client message includes channel binding data." +msgstr "სერვერს არ აქვს არხის მიბმის მხარდაჭერა OAuth-სთვის, მაგრამ კლიენტის შეტყობინება არხის მიბმის მონაცემებს შეიცავს." + +#: libpq/auth-oauth.c:231 libpq/auth-scram.c:1003 libpq/auth-scram.c:1033 +#, c-format +msgid "Comma expected, but found character \"%s\"." +msgstr "მოველოდი მძიმეს, მაგრამ აღმოჩენილია სიმბოლო \"%s\"." + +#: libpq/auth-oauth.c:240 libpq/auth-scram.c:1065 +#, c-format +msgid "Unexpected channel-binding flag \"%s\"." +msgstr "არხზე მიბმის მოულოდნელი ალამი: \"%s\"." + +#: libpq/auth-oauth.c:250 libpq/auth-scram.c:1075 +#, c-format +msgid "client uses authorization identity, but it is not supported" +msgstr "კლიენტი იყენებს ავტორიზაციის იდენტიფიკაციას, მაგრამ ის მხარდაჭერილი არაა" + +#: libpq/auth-oauth.c:255 libpq/auth-scram.c:1080 +#, c-format +msgid "Unexpected attribute \"%s\" in client-first-message." +msgstr "" + +#: libpq/auth-oauth.c:264 +#, c-format +msgid "Key-value separator expected, but found character \"%s\"." +msgstr "მოველოდი გასაღები-მნიშვნელობის წყვილს, მაგრამ აღმოჩენილია სიმბოლო \"%s\"." + +#: libpq/auth-oauth.c:273 +#, c-format +msgid "Message does not contain an auth value." +msgstr "შეტყობინება ავტორიზაციის მნიშვნელობას არ შეიცავს." + +#: libpq/auth-oauth.c:280 +#, c-format +msgid "Message contains additional data after the final terminator." +msgstr "შეტყობინება დასრულების სიმბოლოს შემდეგ მონაცემებს კიდევ შეიცავს." + +#: libpq/auth-oauth.c:343 +#, c-format +msgid "Message contains an empty key name." +msgstr "შეტყობინება ცარიელი გასაღების სახელს შეიცავს." + +#: libpq/auth-oauth.c:350 +#, c-format +msgid "Message contains an invalid key name." +msgstr "შეტყობინება არასწორი გასაღების სახელს შეიცავს." + +#: libpq/auth-oauth.c:376 +#, c-format +msgid "Message contains an invalid value." +msgstr "შეტყობინება არასწორ მნიშვნელობას შეიცავს." + +#: libpq/auth-oauth.c:421 +#, c-format +msgid "Message contains an unterminated key/value pair." +msgstr "შეტყობინება დასრულების სიმბოლოს გარეშე მითითებულ გასაღები/მნიშვნელობის წყვილს შეიცავს." + +#: libpq/auth-oauth.c:439 +#, c-format +msgid "Message contains a key without a value." +msgstr "შეტყობინება შეიცავს გასაღებს მნიშვნელობის გარეშე." + +#: libpq/auth-oauth.c:453 +#, c-format +msgid "Message contains multiple auth values." +msgstr "შეტყობინება ერთზე მეტ ავთენტიკაციის მნიშვნელობას შეიცავს." + +#: libpq/auth-oauth.c:473 +#, c-format +msgid "Message did not contain a final terminator." +msgstr "შეტყობინება საბოლოო დასასრულის სიმბოლოს არ შეიცავს." + +#: libpq/auth-oauth.c:499 +#, c-format +msgid "OAuth is not properly configured for this user" +msgstr "ამ მომხმარებლისთვის OAuth სწორად არაა მორგებული" + +#: libpq/auth-oauth.c:500 +#, c-format +msgid "The issuer and scope parameters must be set in pg_hba.conf." +msgstr "" + +#: libpq/auth-oauth.c:585 libpq/auth-oauth.c:602 libpq/auth-oauth.c:624 +#, c-format +msgid "malformed OAuth bearer token" +msgstr "დამახინჯებული OAuth-ის წარმდგენის ტოკენი" + +#: libpq/auth-oauth.c:586 +#, c-format +msgid "Client response indicated a non-Bearer authentication scheme." +msgstr "კლიენტის პასუხი მიუთითებს არა-წარმდგენ ავთენტიკაციის სქემაზე." + +#: libpq/auth-oauth.c:603 +#, c-format +msgid "Bearer token is empty." +msgstr "წარმდგენის ტოკენი ცარიელია." + +#: libpq/auth-oauth.c:625 +#, c-format +msgid "Bearer token is not in the correct format." +msgstr "" + +#: libpq/auth-oauth.c:656 +#, c-format +msgid "validation of OAuth token requested without a validator loaded" +msgstr "" + +#: libpq/auth-oauth.c:665 +#, c-format +msgid "internal error in OAuth validator module" +msgstr "" + +#: libpq/auth-oauth.c:679 libpq/auth-oauth.c:703 libpq/auth.c:294 +#, c-format +msgid "OAuth bearer authentication failed for user \"%s\"" +msgstr "OAuth-ის წარმდგენის ავთენტიკაცია ჩავარდა მომხმარებლისთვის \"%s\"" + +#: libpq/auth-oauth.c:681 +#, c-format +msgid "Validator failed to authorize the provided token." +msgstr "" + +#: libpq/auth-oauth.c:705 +#, c-format +msgid "Validator provided no identity." +msgstr "" + +#: libpq/auth-oauth.c:760 +#, c-format +msgid "%s module \"%s\" must define the symbol %s" +msgstr "" + +#: libpq/auth-oauth.c:773 +#, c-format +msgid "%s module \"%s\": magic number mismatch" +msgstr "%s-ის მოდული \"%s\": ჯადოსნური რიცხვი არ ემთხვევა" + +#: libpq/auth-oauth.c:775 +#, c-format +msgid "Server has magic number 0x%08X, module has 0x%08X." +msgstr "" + +#: libpq/auth-oauth.c:784 +#, c-format +msgid "%s module \"%s\" must provide a %s callback" +msgstr "" + +#: libpq/auth-oauth.c:833 +#, c-format +msgid "oauth_validator_libraries must be set for authentication method %s" +msgstr "oauth_validator_libraries დაყენებული უნდა იყოს ავთენტიკაციის მეთოდისთვის %s" + +#: libpq/auth-oauth.c:835 libpq/auth-oauth.c:868 libpq/auth-oauth.c:884 libpq/hba.c:331 libpq/hba.c:666 libpq/hba.c:1251 libpq/hba.c:1271 libpq/hba.c:1294 libpq/hba.c:1307 libpq/hba.c:1360 libpq/hba.c:1388 libpq/hba.c:1396 libpq/hba.c:1408 libpq/hba.c:1429 libpq/hba.c:1442 libpq/hba.c:1467 libpq/hba.c:1494 libpq/hba.c:1506 libpq/hba.c:1565 libpq/hba.c:1585 libpq/hba.c:1599 libpq/hba.c:1619 libpq/hba.c:1630 libpq/hba.c:1645 libpq/hba.c:1664 libpq/hba.c:1680 +#: libpq/hba.c:1692 libpq/hba.c:1760 libpq/hba.c:1773 libpq/hba.c:1795 libpq/hba.c:1807 libpq/hba.c:1825 libpq/hba.c:1875 libpq/hba.c:1919 libpq/hba.c:1930 libpq/hba.c:1946 libpq/hba.c:1963 libpq/hba.c:1974 libpq/hba.c:1993 libpq/hba.c:2009 libpq/hba.c:2025 libpq/hba.c:2069 libpq/hba.c:2115 libpq/hba.c:2132 libpq/hba.c:2145 libpq/hba.c:2157 libpq/hba.c:2176 libpq/hba.c:2262 libpq/hba.c:2280 libpq/hba.c:2374 libpq/hba.c:2393 libpq/hba.c:2422 libpq/hba.c:2435 +#: libpq/hba.c:2458 libpq/hba.c:2480 libpq/hba.c:2517 tsearch/ts_locale.c:196 +#, c-format +msgid "line %d of configuration file \"%s\"" +msgstr "კონფიგურაციის ფაილის \"%2$s\" ხაზზე %1$d" + +#: libpq/auth-oauth.c:867 +#, c-format +msgid "authentication method \"oauth\" requires argument \"validator\" to be set when oauth_validator_libraries contains multiple options" +msgstr "ავთენტიკაციის მეთოდს \"oauth\" სჭირდება, რომ არგუმენტი \"validator\" დაყენებული იყოს, როცა oauth_validator_libraries ერთზე მეტ პარამეტრს შეიცავს" + +#: libpq/auth-oauth.c:882 +#, c-format +msgid "validator \"%s\" is not permitted by %s" +msgstr "ვალიდატორი \"%s\" აკრძალულია %s\"-ის მიერ" + +#: libpq/auth-sasl.c:89 +#, c-format +msgid "expected SASL response, got message type %d" +msgstr "მოველოდი SASL პასუხს. მიღებული შეტყობინების ტიპია %d" + +#: libpq/auth-scram.c:291 libpq/auth-scram.c:547 libpq/auth-scram.c:558 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "არასწორი SCRAM საიდუმლო მომხმარებლისთვის \"%s\"" -#: libpq/auth-scram.c:298 +#: libpq/auth-scram.c:302 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "მომხმარებელს \"%s\" სწორი SCRAM საიდუმლო არ გააჩნია." -#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:382 libpq/auth-scram.c:387 libpq/auth-scram.c:751 libpq/auth-scram.c:759 libpq/auth-scram.c:864 libpq/auth-scram.c:877 libpq/auth-scram.c:887 libpq/auth-scram.c:995 libpq/auth-scram.c:1002 libpq/auth-scram.c:1017 libpq/auth-scram.c:1032 libpq/auth-scram.c:1046 libpq/auth-scram.c:1064 libpq/auth-scram.c:1079 libpq/auth-scram.c:1392 libpq/auth-scram.c:1400 #, c-format msgid "malformed SCRAM message" msgstr "დამახინჯებული SCRAM-ის შეტყობინება" -#: libpq/auth-scram.c:379 -#, c-format -msgid "The message is empty." -msgstr "შეტყობინება ცარიელია." - -#: libpq/auth-scram.c:384 -#, c-format -msgid "Message length does not match input length." -msgstr "შეტყობინების სიგრძე შეყვანის სიგრძეს არემთხვევა." - -#: libpq/auth-scram.c:416 +#: libpq/auth-scram.c:420 #, c-format msgid "invalid SCRAM response" msgstr "არასწორი SCRAM პასუხი" -#: libpq/auth-scram.c:417 +#: libpq/auth-scram.c:421 #, c-format msgid "Nonce does not match." msgstr "ერთჯერადი რიცხვები არ ემთხვევა." -#: libpq/auth-scram.c:493 +#: libpq/auth-scram.c:504 #, c-format msgid "could not generate random salt" msgstr "შემთხვევითი მარილის გენერაციის შეცდომა" -#: libpq/auth-scram.c:738 +#: libpq/auth-scram.c:752 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "მოველოდი ატრიბუტს \"%c\" მაგრამ მივიღე \"%s\"." -#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 +#: libpq/auth-scram.c:760 libpq/auth-scram.c:888 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "მოველოდი სიმბოლოს \"=\" ატრიბუტისთვის \"%c\"." -#: libpq/auth-scram.c:851 +#: libpq/auth-scram.c:865 #, c-format msgid "Attribute expected, but found end of string." msgstr "მოველოდი ატრიბუტს, მაგრამ სტრიქონის ბოლო მივიღე." -#: libpq/auth-scram.c:864 +#: libpq/auth-scram.c:878 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "მოველოდი ატრიბუტს, მაგრამ მივიღე არასწორი სიმბოლო \"%s\"." -#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 +#: libpq/auth-scram.c:996 libpq/auth-scram.c:1018 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." msgstr "კლიენტმა აირჩია SCRAM-SHA-256-PLUS, მაგრამ SCRAM შეტყობინება არხზე მიბმის მონაცემებს არ შეიცავს." -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 -#, c-format -msgid "Comma expected, but found character \"%s\"." -msgstr "მოველოდი მძიმეს, მაგრამ აღმოჩენილია სიმბოლო \"%s\"." - -#: libpq/auth-scram.c:1010 +#: libpq/auth-scram.c:1024 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "SCRAM არხზე მიბმის მოლაპარაკების შეცდომა" -#: libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:1025 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." msgstr "კლიენტს აქვს SCRAM არხზე მიბმის მხარდაჭერა, მაგრამ ფიქრობს, რომ სერვერს - არა. მაგრამ სერვერს აქვს არხზე მიბმის მხარდაჭერა." -#: libpq/auth-scram.c:1033 +#: libpq/auth-scram.c:1047 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." msgstr "კლიენტმა SCRAM-SHA-256 არხზე მიბმის გარეშე აირჩია, მაგრამ SCRAM შეტყობინება არხზე მიბმის მონაცემებს შეიცავს." -#: libpq/auth-scram.c:1044 +#: libpq/auth-scram.c:1058 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "მხარდაუჭერელი SCRAM-ის არხზე მიბმის ტიპი \"%s\"" -#: libpq/auth-scram.c:1051 -#, c-format -msgid "Unexpected channel-binding flag \"%s\"." -msgstr "არხზე მიბმის მოულოდნელი ალამი: \"%s\"." - -#: libpq/auth-scram.c:1061 -#, c-format -msgid "client uses authorization identity, but it is not supported" -msgstr "კლიენტი იყენებს ავტორიზაციის იდენტიფიკაციას, მაგრამ ის მხარდაჭერილი არაა" - -#: libpq/auth-scram.c:1066 -#, c-format -msgid "Unexpected attribute \"%s\" in client-first-message." -msgstr "" - -#: libpq/auth-scram.c:1082 +#: libpq/auth-scram.c:1096 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "კლიენტი მოითხოვს SCRAM გაფართოებას, რომელიც მხარდაჭერილი არაა" -#: libpq/auth-scram.c:1096 +#: libpq/auth-scram.c:1110 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "" -#: libpq/auth-scram.c:1227 +#: libpq/auth-scram.c:1240 #, c-format msgid "could not generate random nonce" msgstr "ერთჯერადი კოდის გენერაციის შეცდომა" -#: libpq/auth-scram.c:1237 +#: libpq/auth-scram.c:1250 #, c-format msgid "could not encode random nonce" msgstr "ერთჯერადი კოდის კოდირების შეცდომა" -#: libpq/auth-scram.c:1343 +#: libpq/auth-scram.c:1356 #, c-format msgid "SCRAM channel binding check failed" msgstr "SCRAM არხზე მიბმის შემოწმების შეცდომა" -#: libpq/auth-scram.c:1361 +#: libpq/auth-scram.c:1374 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "" -#: libpq/auth-scram.c:1380 +#: libpq/auth-scram.c:1393 #, c-format msgid "Malformed proof in client-final-message." msgstr "" -#: libpq/auth-scram.c:1388 +#: libpq/auth-scram.c:1401 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "კლიენტის-საბოლოო-შეტყობინების ბოლოში აღმოჩენილია ნაგავი." -#: libpq/auth.c:269 +#: libpq/auth.c:254 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "ავთენტიკაციის შეცდომა მომხმარებლისთვის \"%s\": ჰოსტმა ის უარყო" -#: libpq/auth.c:272 +#: libpq/auth.c:257 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "\"ნდობით\" ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:275 +#: libpq/auth.c:260 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "იდენტიფიკაციით ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:278 +#: libpq/auth.c:263 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "პარტნიორის ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:283 +#: libpq/auth.c:268 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "პაროლით ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:288 +#: libpq/auth.c:273 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "GSSAPI ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:291 +#: libpq/auth.c:276 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "SSPI ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:294 +#: libpq/auth.c:279 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "PAM ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:297 +#: libpq/auth.c:282 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "BSD ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:300 +#: libpq/auth.c:285 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "LDAP ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:303 +#: libpq/auth.c:288 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "სერტიფიკატით ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:306 +#: libpq/auth.c:291 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "რადიუსით ავთენტიფიკაცია მომხმარებლისთვის \"%s\" ვერ მოხერხდა" -#: libpq/auth.c:309 +#: libpq/auth.c:297 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "ავთენტიკაციის შეცდომა მომხმარებლისთვის \"%s\": არასწორი ავთენტიკაციის მეთოდი" -#: libpq/auth.c:313 +#: libpq/auth.c:301 #, c-format msgid "Connection matched file \"%s\" line %d: \"%s\"" msgstr "მიერთება დაემთხვა ფაილ %s-ს ხაზზე %d: \"%s\"" -#: libpq/auth.c:357 +#: libpq/auth.c:346 #, c-format msgid "authentication identifier set more than once" msgstr "ავთენტიფიკაციის იდენტიფიკატორი ერთზე მეტჯერაა დაყენებული" -#: libpq/auth.c:358 +#: libpq/auth.c:347 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "წინა იდენტიფიკატორი: \"%s\"; ახალი იდენტიფიკატორი: \"%s\"" -#: libpq/auth.c:368 +#: libpq/auth.c:357 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "მიერთება ავთენტიფიცირებულია: იდენტიფიკატორი=\"%s\" მეთოდი=%s (%s:%d)" -#: libpq/auth.c:408 +#: libpq/auth.c:397 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "კლიენტის სერტიფიკატების შემოწმება მხოლოდ მაშინაა შესაძლებელი, როცა ხელმისაწვდომია ძირითადი სერტიფიკატების საცავი" -#: libpq/auth.c:419 +#: libpq/auth.c:408 #, c-format msgid "connection requires a valid client certificate" msgstr "მიერთების მცდელობას კლიენტის სწორი სერტიფიკატი ესაჭიროება" -#: libpq/auth.c:450 libpq/auth.c:496 +#: libpq/auth.c:439 libpq/auth.c:485 msgid "GSS encryption" msgstr "GSS დაშიფვრა" -#: libpq/auth.c:453 libpq/auth.c:499 +#: libpq/auth.c:442 libpq/auth.c:488 msgid "SSL encryption" msgstr "SSL დაშიფვრა" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:444 libpq/auth.c:490 msgid "no encryption" msgstr "დაშიფვრის გარეშე" #. translator: last %s describes encryption state -#: libpq/auth.c:461 +#: libpq/auth.c:450 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf უარყოფს რეპლიკაციის მიერთებას ჰოსტისთვის \"%s\", მომხმარებელი \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:468 +#: libpq/auth.c:457 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf უარყოფს მიერთებას ჰოსტისთვის \"%s\", მომხმარებელი \"%s\", ბაზა \"%s\", %s" -#: libpq/auth.c:506 +#: libpq/auth.c:495 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "კლიენტის IP მისამართი იხსნება \"%s\" პირდაპირი DNS ემთხვევა." -#: libpq/auth.c:509 +#: libpq/auth.c:498 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "კლიენტის IP მისამართი იხსნება \"%s\" პირდაპირი DNS არ შემოწმებულა." -#: libpq/auth.c:512 +#: libpq/auth.c:501 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "კლიენტის IP მისამართი იხსნება \"%s\" პირდაპირი DNS არ ემთხვევა." -#: libpq/auth.c:515 +#: libpq/auth.c:504 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "კლიენტის ჰოსტის სახელის (\"%s\") IP მისამართში თარგმნის შეცდომა: %s." -#: libpq/auth.c:520 +#: libpq/auth.c:509 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "კლიენტის IP მისამართიდან ჰოსტის სახელის ამოხსნის შეცდომა: %s." #. translator: last %s describes encryption state -#: libpq/auth.c:528 +#: libpq/auth.c:517 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf-ში ჩანაწერი რეპლიკაციის შეერთების შესახებ ჰოსტიდან \"%s\" მომხმარებელი \"%s\", %s აღმოჩენილი არაა" #. translator: last %s describes encryption state -#: libpq/auth.c:536 +#: libpq/auth.c:525 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf-ში ჩანაწერი ჰოსტისთვის \"%s\" მომხმარებელი \"%s\", ბაზა \"%s\", %s აღმოჩენილი არაა" -#: libpq/auth.c:656 +#: libpq/auth.c:649 #, c-format msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" msgstr "მიერთება ავთენტიფიცირებულია: მომხმარებელი =\"%s\" მეთოდი=%s (%s:%d)" -#: libpq/auth.c:725 +#: libpq/auth.c:718 #, c-format msgid "expected password response, got message type %d" msgstr "მოველოდი პაროლის პასუხს, მივიღე შეტყობინების ტიპი %d" -#: libpq/auth.c:746 +#: libpq/auth.c:739 #, c-format msgid "invalid password packet size" msgstr "პაროლის პაკეტის არასწორი ზომა" -#: libpq/auth.c:764 +#: libpq/auth.c:757 #, c-format msgid "empty password returned by client" msgstr "კლიენტმა ცარიელი პაროლი დააბრუნა" -#: libpq/auth.c:892 +#: libpq/auth.c:885 #, c-format msgid "could not generate random MD5 salt" msgstr "შემთხვევითი MD5 მარილის გენერაციის შეცდომა" -#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:936 libpq/be-secure-gssapi.c:543 #, c-format msgid "could not set environment: %m" msgstr "გარემოს მორგების შეცდომა: %m" -#: libpq/auth.c:982 +#: libpq/auth.c:975 #, c-format msgid "expected GSS response, got message type %d" msgstr "მოველოდი GSS პასუხს, მივიღე შეტყობინების ტიპი %d" -#: libpq/auth.c:1048 +#: libpq/auth.c:1041 msgid "accepting GSS security context failed" msgstr "'GSS'-ის უსაფრთხოების კონტექსტის მიღების შეცდომა" -#: libpq/auth.c:1089 +#: libpq/auth.c:1082 msgid "retrieving GSS user name failed" msgstr "'GSS'-ის მომხმარებლის სახელის მიღების შეცდომა" -#: libpq/auth.c:1235 +#: libpq/auth.c:1228 msgid "could not acquire SSPI credentials" msgstr "შეცდომა SSPI-ის მომხმ./პაროლის მიღებისას" -#: libpq/auth.c:1260 +#: libpq/auth.c:1253 #, c-format msgid "expected SSPI response, got message type %d" msgstr "მოველოდი SSPI პასუხს, მივიღე შეტყობინების ტიპი %d" -#: libpq/auth.c:1338 +#: libpq/auth.c:1331 msgid "could not accept SSPI security context" msgstr "'SSPI'-ის უსაფრთხოების კონტექსტის მიღების შეცდომა" -#: libpq/auth.c:1379 +#: libpq/auth.c:1372 msgid "could not get token from SSPI security context" msgstr "'SSPI'-ის უსაფრთხოების კონტექსტიდან კოდის მიღების შეცდომა" -#: libpq/auth.c:1515 libpq/auth.c:1534 +#: libpq/auth.c:1508 libpq/auth.c:1527 #, c-format msgid "could not translate name" msgstr "სახელის თარგმნა შეუძლებელია" -#: libpq/auth.c:1547 +#: libpq/auth.c:1540 #, c-format msgid "realm name too long" msgstr "რეალმის სახელი ძალიან გრძელია" -#: libpq/auth.c:1562 +#: libpq/auth.c:1555 #, c-format msgid "translated account name too long" msgstr "ანგარიშის ნათარგმნი სახელი ძალიან გრძელია" -#: libpq/auth.c:1741 +#: libpq/auth.c:1734 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "ident მიერთებისთვის სოკეტის შექმნა შეუძლებელია: %m" -#: libpq/auth.c:1756 +#: libpq/auth.c:1749 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "ლოკალურ მისამართზე \"%s\" მიბმის შეცდომა: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1761 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "შეცდომა LDAP სერვერთან მიერთებისას. მისამართი - \"%s\",პორტი - %s: %m" -#: libpq/auth.c:1790 +#: libpq/auth.c:1783 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "შეცდომა LDAP სერვერზე მოთხოვნის გაგზავნისას. მისამართი - \"%s\", პორტი - %s: %m" -#: libpq/auth.c:1807 +#: libpq/auth.c:1800 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "პასუხი Ident-ის სერვერიდან მისამართით \"%s\" პორტზე %s ვერ მივიღე: %m" -#: libpq/auth.c:1817 +#: libpq/auth.c:1810 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "არასწორად დაფორმატებული პასუხი Ident სერვერიდან: \"%s\"" -#: libpq/auth.c:1870 +#: libpq/auth.c:1866 #, c-format msgid "peer authentication is not supported on this platform" msgstr "ამ პლატფორმაზე პარტნიორის ავთენტიკაცია მხარდაჭერილი არაა" -#: libpq/auth.c:1874 +#: libpq/auth.c:1870 #, c-format msgid "could not get peer credentials: %m" msgstr "პარტნიორის ავტორიზაციის დეტალების მიღების შეცდომა: %m" +#: libpq/auth.c:1880 +#, c-format +msgid "could not look up local user ID %ld: %m" +msgstr "ლოკალური მომხმარებლის ID-ით %ld მოძებნა შეუძლებელია: %m" + #: libpq/auth.c:1886 #, c-format -msgid "could not look up local user ID %ld: %s" -msgstr "ლოკალური მომხმარებლის ID-ით %ld მოძებნა შეუძლებელია: %s" +msgid "local user with ID %ld does not exist" +msgstr "ლოკალური მომხმარებელი ID-ით %ld არ არსებობს" -#: libpq/auth.c:1988 +#: libpq/auth.c:1986 #, c-format msgid "error from underlying PAM layer: %s" msgstr "შეცდომა ქვედა PAM ფენიდან: %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1997 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "მხარდაუჭერელი PAM საუბარი %d/\"%s\"" -#: libpq/auth.c:2056 +#: libpq/auth.c:2054 #, c-format msgid "could not create PAM authenticator: %s" msgstr "შეცდომა PAM ავთენტიკატორის შექმნისას: %s" -#: libpq/auth.c:2067 +#: libpq/auth.c:2065 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER) -ის შეცდომა: %s" -#: libpq/auth.c:2099 +#: libpq/auth.c:2097 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST) -ის შეცდომა: %s" -#: libpq/auth.c:2111 +#: libpq/auth.c:2109 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "pam_set_item(PAM_CONV) -ის შეცდომა: %s" -#: libpq/auth.c:2124 +#: libpq/auth.c:2122 #, c-format msgid "pam_authenticate failed: %s" msgstr "pam_authenticate -ის შეცდომა: %s" -#: libpq/auth.c:2137 +#: libpq/auth.c:2135 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmt-ის შეცდომა: %s" -#: libpq/auth.c:2148 +#: libpq/auth.c:2146 #, c-format msgid "could not release PAM authenticator: %s" msgstr "შეცდომა PAM ავთენტიკატორის მოხსნისას: %s" -#: libpq/auth.c:2228 +#: libpq/auth.c:2226 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "შეცდომა LDAP-ის ინიციალიზაციისას: შეცდომის კოდი %d" -#: libpq/auth.c:2265 +#: libpq/auth.c:2263 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "ldapbasedn-დან დომენის სახელის გამოღება შეუძლებელია" -#: libpq/auth.c:2273 +#: libpq/auth.c:2271 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "LDAP ავთენტიკაციამ \"%s\"-სთვის DNS SRV ჩანაწერები ვერ იპოვა" -#: libpq/auth.c:2275 +#: libpq/auth.c:2273 #, c-format msgid "Set an LDAP server name explicitly." msgstr "LDAP სერვერის სახელი აშკარად უნდა დააყენოთ." -#: libpq/auth.c:2327 +#: libpq/auth.c:2325 #, c-format msgid "could not initialize LDAP: %s" msgstr "\"LDAP\"-ის ინიციალიზაციის შეცდომა: %s" -#: libpq/auth.c:2337 +#: libpq/auth.c:2335 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ამ LDAP ბიბლიოთეკას ldaps-ის მხარდაჭერა არ გააჩნია" -#: libpq/auth.c:2345 +#: libpq/auth.c:2343 #, c-format msgid "could not initialize LDAP: %m" msgstr "\"LDAP\"-ის ინიციალიზაციის შეცდომა: %m" -#: libpq/auth.c:2355 +#: libpq/auth.c:2353 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "\"LDAP\"-ის ვერსიის დაყენების შეცდომა: %s" -#: libpq/auth.c:2371 +#: libpq/auth.c:2369 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "\"LDAP TLS\" სესიის დაწყების შეცდომა: %s" -#: libpq/auth.c:2448 +#: libpq/auth.c:2446 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP სერვერი და ldapbasedn მითითებული არაა" -#: libpq/auth.c:2455 +#: libpq/auth.c:2453 #, c-format msgid "LDAP server not specified" msgstr "LDAP სერვერი მითითებული არაა" -#: libpq/auth.c:2517 +#: libpq/auth.c:2515 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "არასწორი სიმბოლო მომხმარებლის სახელში LDAP-ით ავთენტიკაციისას" -#: libpq/auth.c:2534 +#: libpq/auth.c:2532 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "ldapbinddn \"%s\"-სთვის სერვერზე \"%s\" საწყისი LDAP მიბმა ვერ განვახორციელე: %s" -#: libpq/auth.c:2564 +#: libpq/auth.c:2562 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "ფილტრისთვის \"%s\" სერვერზე \"%s\" LDAP ძებნის გაშვება შეუძლებელია: %s" -#: libpq/auth.c:2580 +#: libpq/auth.c:2578 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAP-ის მომხმარებელი \"%s\" არ არსებობს" -#: libpq/auth.c:2581 +#: libpq/auth.c:2579 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP ძებნამ ფილტრისთვის \"%s\" სერვერზე \"%s\" ჩანაწერები არ დააბრუნა." -#: libpq/auth.c:2585 +#: libpq/auth.c:2583 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAP-ის მომხმარებელი \"%s\" უნიკალური არაა" -#: libpq/auth.c:2586 +#: libpq/auth.c:2584 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "LDAP ძებნამ ფილტრისთვის \"%s\" სერვერზე \"%s\" %d ჩანაწერი დააბრუნა." msgstr[1] "LDAP ძებნამ ფილტრისთვის \"%s\" სერვერზე \"%s\" %d ჩანაწერი დააბრუნა." -#: libpq/auth.c:2606 +#: libpq/auth.c:2604 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "" -#: libpq/auth.c:2633 +#: libpq/auth.c:2631 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "LDAP-ით შესვლის შეცდომა მომხმარებლისთვის \"%s\" სერვერზე \"%s\": %s" -#: libpq/auth.c:2665 +#: libpq/auth.c:2663 #, c-format msgid "LDAP diagnostics: %s" msgstr "LDAP-ის დიაგნოსტიკა: %s" -#: libpq/auth.c:2703 +#: libpq/auth.c:2701 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "სერტიფიკატით ავთენტიკაციის შეცდომა მომხმარებლისთვის \"%s\": კლიენტის სერტიფიკატი მომხმარებლის სახელს არ შეიცავს" -#: libpq/auth.c:2724 +#: libpq/auth.c:2722 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "სერტიფიკატით ავთენტიკაცია ჩავარდა მომხმარებლისთვის \"%s\": სათაურის DN-ის მიღება შეუძლებელა" -#: libpq/auth.c:2747 +#: libpq/auth.c:2745 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "სერტიფიკატის გადამოწმების (clientcert=verify-full) შეცდომა მომხმარებლისთვის \"%s\": DN არ ემთხვევა" -#: libpq/auth.c:2752 +#: libpq/auth.c:2750 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "სერტიფიკატის გადამოწმების (clientcert=verify-full) შეცდომა მომხმარებლისთვის \"%s\": CN არ ემთხვევა" -#: libpq/auth.c:2854 +#: libpq/auth.c:2852 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS სერვერი მითითებული არაა" -#: libpq/auth.c:2861 +#: libpq/auth.c:2859 #, c-format msgid "RADIUS secret not specified" msgstr "RADIUS-ის პაროლი მითითებული არაა" -#: libpq/auth.c:2875 +#: libpq/auth.c:2873 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUS-ით ავთენტიკაციისას %d სიმბოლოზე გრძელი პაროლები მხარდაჭერილი არაა" -#: libpq/auth.c:2977 libpq/hba.c:2352 +#: libpq/auth.c:2975 libpq/hba.c:2391 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "შეცდომა RADIUS სერვერის სახელის \"%s\" მისამართში თარგმნისას: %s" -#: libpq/auth.c:2991 +#: libpq/auth.c:2989 #, c-format msgid "could not generate random encryption vector" msgstr "შემთხვევითი დაშიფვრის ვექტორის გენერაციის შეცდომა" -#: libpq/auth.c:3028 +#: libpq/auth.c:3026 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "პაროლის MD5-ით დაშიფვრა შეუძლებელია: %s" -#: libpq/auth.c:3055 +#: libpq/auth.c:3053 #, c-format msgid "could not create RADIUS socket: %m" msgstr "შეცდომა RADIUS სოკეტის შექმნისას: %m" -#: libpq/auth.c:3071 +#: libpq/auth.c:3069 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "ლოკალურ RADIUS სოკეტზე მიბმის შეცდომა: %m" -#: libpq/auth.c:3081 +#: libpq/auth.c:3079 #, c-format msgid "could not send RADIUS packet: %m" msgstr "შეცდომა RADIUS პაკეტის გაგზავნისას: %m" -#: libpq/auth.c:3115 libpq/auth.c:3141 +#: libpq/auth.c:3113 libpq/auth.c:3139 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "%s-დან RADIUS პასუხის მოლოდინის ვადა ამოიწურა" -#: libpq/auth.c:3134 +#: libpq/auth.c:3132 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "შეცდომა RADIUS სოკეტის სტატუსის შემოწმებისას: %m" -#: libpq/auth.c:3164 +#: libpq/auth.c:3162 #, c-format msgid "could not read RADIUS response: %m" msgstr "შეცდომა RADIUS პასუხის წაკითხვისას: %m" -#: libpq/auth.c:3172 +#: libpq/auth.c:3170 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "RADIUS პასუხი \"%s\" გამოგზავნილია არასწორი პორტიდან: %d" -#: libpq/auth.c:3180 +#: libpq/auth.c:3178 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "RADIUS პასუხი %s-დან მეტისმეტად მოკლეა: %d" -#: libpq/auth.c:3187 +#: libpq/auth.c:3185 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "RADIUS პასუხს %s-დან დაზიანებული სიგრძე გააჩნია: %d (რეალური სიგრძე %d)" -#: libpq/auth.c:3195 +#: libpq/auth.c:3193 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "RADIUS პასუხი %s-დან სხვა მოთხოვნას ეკუთვნის: %d (უნდა იყოს %d)" @@ -15087,7 +15504,7 @@ msgstr "%s-დან მიღებული RADIUS პასუხის MD5 msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "%s-დან მიღებულ RADIUS-ს პასუხს არასწორი კოდი (%d) გააჩნია მომხმარებლისთვის \"%s\"" -#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:560 +#: libpq/be-fsstubs.c:133 libpq/be-fsstubs.c:162 libpq/be-fsstubs.c:190 libpq/be-fsstubs.c:216 libpq/be-fsstubs.c:241 libpq/be-fsstubs.c:283 libpq/be-fsstubs.c:306 libpq/be-fsstubs.c:565 #, c-format msgid "invalid large-object descriptor: %d" msgstr "დიდი ობიექტის არასწორი დესკრიპტორი: %d" @@ -15097,7 +15514,7 @@ msgstr "დიდი ობიექტის არასწორი დეს msgid "large object descriptor %d was not opened for reading" msgstr "დიდი ობიექტის დესკრიპტორი %d წაკითხვისთვის არ გახსნილა" -#: libpq/be-fsstubs.c:197 libpq/be-fsstubs.c:567 +#: libpq/be-fsstubs.c:197 libpq/be-fsstubs.c:572 #, c-format msgid "large object descriptor %d was not opened for writing" msgstr "დიდი ობიექტის დესკრიპტორი %d ჩაწერისთვის არ გახსნილა" @@ -15112,32 +15529,32 @@ msgstr "lo_lseek-ის შედეგი დიაპაზონს გარ msgid "lo_tell result out of range for large-object descriptor %d" msgstr "lo_tell-ის შედეგი დიაპაზონს გარეთაა დიდი-ობიექტის დესკრიპტორისთვის %d" -#: libpq/be-fsstubs.c:439 +#: libpq/be-fsstubs.c:444 #, c-format msgid "could not open server file \"%s\": %m" msgstr "სერვერის ფაილის (\"%s\") გახსნის შეცდომა: %m" -#: libpq/be-fsstubs.c:462 +#: libpq/be-fsstubs.c:467 #, c-format msgid "could not read server file \"%s\": %m" msgstr "სერვერის ფაილის (\"%s\") წაკითხვის შეცდომა: %m" -#: libpq/be-fsstubs.c:521 +#: libpq/be-fsstubs.c:526 #, c-format msgid "could not create server file \"%s\": %m" msgstr "სერვერის ფაილის (\"%s\") შექმნის შეცდომა: %m" -#: libpq/be-fsstubs.c:533 +#: libpq/be-fsstubs.c:538 #, c-format msgid "could not write server file \"%s\": %m" msgstr "სერვერის ფაილში (\"%s\") ჩაწერის შეცდომა: %m" -#: libpq/be-fsstubs.c:774 +#: libpq/be-fsstubs.c:779 #, c-format msgid "large object read request is too large" msgstr "დიდი ობიექტის წაკითხვის მოთხოვნა მეტისმეტად დიდია" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 +#: libpq/be-fsstubs.c:821 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "მოთხოვნილი სიგრძე არ შეიძლება, უარყოფითი იყოს" @@ -15172,803 +15589,838 @@ msgstr "პირადი გასაღების ფაილზე \"%s\" 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 "ფაილებს u=rw (0600) ან ნაკლები წვდომები უნდა ჰქონდეს, თუ მათი მფლობელი ბაზის მომხმარებელია, ან წვდომები u=rw,g=r (0640), თუ მფლობელი root-ია." -#: libpq/be-secure-gssapi.c:201 +#: libpq/be-secure-gssapi.c:202 msgid "GSSAPI wrap error" msgstr "GSSAPI -ის გადატანის შეცდომა" -#: libpq/be-secure-gssapi.c:208 +#: libpq/be-secure-gssapi.c:209 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "გამავალი GSSAPI შეტყობინება კონფიდენციალობას ვერ იყენებს" -#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 +#: libpq/be-secure-gssapi.c:216 libpq/be-secure-gssapi.c:637 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "სერვერმა ძალიან დიდი GSSAPI პაკეტის გამოგზავნა სცადა (%zu > %zu)" -#: libpq/be-secure-gssapi.c:351 +#: libpq/be-secure-gssapi.c:352 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %zu)" msgstr "კლიენტის მიერ გამოგზავნილი GSSAPI-ის პაკეტი ძალიან დიდია (%zu > %zu)" -#: libpq/be-secure-gssapi.c:389 +#: libpq/be-secure-gssapi.c:390 msgid "GSSAPI unwrap error" msgstr "GSSAPI-ის გადატანის მოხსნის შეცდომა" -#: libpq/be-secure-gssapi.c:396 +#: libpq/be-secure-gssapi.c:397 #, c-format msgid "incoming GSSAPI message did not use confidentiality" msgstr "შემომავალი GSSAPI შეტყობინება კონფიდენციალობას ვერ იყენებს" -#: libpq/be-secure-gssapi.c:575 +#: libpq/be-secure-gssapi.c:578 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %d)" msgstr "კლიენტის მიერ გამოგზავნილი GSSAPI-ის პაკეტი ძალიან დიდია (%zu > %d)" -#: libpq/be-secure-gssapi.c:600 +#: libpq/be-secure-gssapi.c:603 msgid "could not accept GSSAPI security context" msgstr "\"GSSAPI\"-ის უსაფრთხოების კონტექსტის მიღების შეცდომა" -#: libpq/be-secure-gssapi.c:701 +#: libpq/be-secure-gssapi.c:704 msgid "GSSAPI size check error" msgstr "GSSAPI-ის ზომის შემოწმების შეცდომა" -#: libpq/be-secure-openssl.c:131 +#: libpq/be-secure-openssl.c:118 #, c-format msgid "could not create SSL context: %s" msgstr "შეცდომა SSL კონტექსტის შექმნისას: %s" -#: libpq/be-secure-openssl.c:157 +#: libpq/be-secure-openssl.c:144 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "სერვერის სერტიფიკატის ფაილის ჩატვირთვის შეცდომა \"%s\": %s" -#: libpq/be-secure-openssl.c:177 +#: libpq/be-secure-openssl.c:164 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "პირადი გასაღების ფაილის \"%s\" თავიდან ჩატვირთვა შეუძლებელია, რადგან მას საკვანძო ფრაზა ესაჭიროება" -#: libpq/be-secure-openssl.c:182 +#: libpq/be-secure-openssl.c:169 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "პირადი გასაღების ფაილის \"%s\" ჩატვირთვის შეცდომა: %s" -#: libpq/be-secure-openssl.c:191 +#: libpq/be-secure-openssl.c:178 #, 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:204 libpq/be-secure-openssl.c:227 +#: libpq/be-secure-openssl.c:191 libpq/be-secure-openssl.c:214 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "\"%s\"-ის პარამეტრი \"%s\" ამ პროგრამის აგებისას ჩართული არ იყო" -#: libpq/be-secure-openssl.c:214 +#: libpq/be-secure-openssl.c:201 #, c-format msgid "could not set minimum SSL protocol version" msgstr "'SSL' პროტოკოლის ვერსიის მინიმალური მნიშვნელობის დაყენების შეცდომა" -#: libpq/be-secure-openssl.c:237 +#: libpq/be-secure-openssl.c:224 #, c-format msgid "could not set maximum SSL protocol version" msgstr "'SSL' პროტოკოლის ვერსიის მაქსიმალური მნიშვნელობის დაყენების შეცდომა" -#: libpq/be-secure-openssl.c:253 +#: libpq/be-secure-openssl.c:241 #, c-format msgid "could not set SSL protocol version range" msgstr "'SSL' პროტოკოლის ვერსიის დიაპაზონის დაყენების შეცდომა" -#: libpq/be-secure-openssl.c:254 +#: libpq/be-secure-openssl.c:242 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\"-ი \"%s\"-ზე მაღალი ვერ იქნება" -#: libpq/be-secure-openssl.c:296 +#: libpq/be-secure-openssl.c:295 +#, c-format +msgid "could not set the TLSv1.2 cipher list (no valid ciphers available)" +msgstr "ვერ დავაყენე TLSv1.2-ის შიფრების სია (სწორი შიფრები ხელმისაწვდომი არაა)" + +#: libpq/be-secure-openssl.c:310 #, c-format -msgid "could not set the cipher list (no valid ciphers available)" -msgstr "შიფრების სიის დაყენება შეუძლებელია (სწორი შიფრები ხელმისაწვდომი არაა)" +msgid "could not set the TLSv1.3 cipher suites (no valid ciphers available)" +msgstr "ვერ დავაყენე TLSv1.3-ის შიფრების სია (სწორი შიფრები ხელმისაწვდომი არაა)" -#: libpq/be-secure-openssl.c:316 +#: libpq/be-secure-openssl.c:331 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "root სერტიფიკატის ფაილის (\"%s\") წაკითხვის შეცდომა: %s" -#: libpq/be-secure-openssl.c:365 +#: libpq/be-secure-openssl.c:380 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "" -#: libpq/be-secure-openssl.c:373 +#: libpq/be-secure-openssl.c:388 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "" -#: libpq/be-secure-openssl.c:381 +#: libpq/be-secure-openssl.c:396 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:454 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "" -#: libpq/be-secure-openssl.c:453 +#: libpq/be-secure-openssl.c:468 #, c-format msgid "could not initialize SSL connection: %s" msgstr "\"SSL\" შეერთების ინიციალიზაციის შეცდომა: %s" -#: libpq/be-secure-openssl.c:461 +#: libpq/be-secure-openssl.c:476 #, c-format msgid "could not set SSL socket: %s" msgstr "\"SSL\" სოკეტის დაყენების შეცდომა: %s" -#: libpq/be-secure-openssl.c:517 +#: libpq/be-secure-openssl.c:532 #, c-format msgid "could not accept SSL connection: %m" msgstr "'SSL' შეერთების მიღების შეცდომა: %m" -#: libpq/be-secure-openssl.c:521 libpq/be-secure-openssl.c:578 +#: libpq/be-secure-openssl.c:536 libpq/be-secure-openssl.c:593 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "'SSL' შეერთების მიღების შეცდომა: აღმოჩენილია EOF" -#: libpq/be-secure-openssl.c:562 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "could not accept SSL connection: %s" msgstr "'SSL' შეერთების მიღების შეცდომა: %s" -#: libpq/be-secure-openssl.c:566 +#: libpq/be-secure-openssl.c:581 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "" -#: libpq/be-secure-openssl.c:583 libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:868 +#: libpq/be-secure-openssl.c:598 libpq/be-secure-openssl.c:813 libpq/be-secure-openssl.c:883 #, c-format msgid "unrecognized SSL error code: %d" msgstr "უცნობი SSL-ის შეცდომის კოდი: %d" -#: libpq/be-secure-openssl.c:611 +#: libpq/be-secure-openssl.c:626 #, c-format msgid "received SSL connection request with unexpected ALPN protocol" msgstr "" -#: libpq/be-secure-openssl.c:655 +#: libpq/be-secure-openssl.c:670 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "SSL სერტიფიკატის საერთო სახელი ჩადგმულ ნულოვანს შეიცავს" -#: libpq/be-secure-openssl.c:701 +#: libpq/be-secure-openssl.c:716 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "SSL სერტიფიკატის გამორჩეული სახელი ჩადგმულ ნულოვანს შეიცავს" -#: libpq/be-secure-openssl.c:787 libpq/be-secure-openssl.c:852 +#: libpq/be-secure-openssl.c:802 libpq/be-secure-openssl.c:867 #, c-format msgid "SSL error: %s" msgstr "SSL-ის შეცდომა: %s" -#: libpq/be-secure-openssl.c:1027 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "dh პარამეტრების ფაილის (\"%s\") გახსნის შეცდომა: %m" -#: libpq/be-secure-openssl.c:1039 +#: libpq/be-secure-openssl.c:1062 #, c-format msgid "could not load DH parameters file: %s" msgstr "dh პარამეტრების ფაილის ჩატვირთვის შეცდომა: %s" -#: libpq/be-secure-openssl.c:1049 +#: libpq/be-secure-openssl.c:1072 #, c-format msgid "invalid DH parameters: %s" msgstr "არასწორი DH-ის პარამეტრები: %s" -#: libpq/be-secure-openssl.c:1058 +#: libpq/be-secure-openssl.c:1081 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "არასწორი DH-ის პარამეტრები: p მარტივი რიცხვი არაა" -#: libpq/be-secure-openssl.c:1067 +#: libpq/be-secure-openssl.c:1090 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "" -#: libpq/be-secure-openssl.c:1203 +#: libpq/be-secure-openssl.c:1226 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "კლიენტის სერტიფიკატის გადამოწმების შეცდომა სიღრმეზე %d: %s." -#: libpq/be-secure-openssl.c:1240 +#: libpq/be-secure-openssl.c:1263 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." msgstr "შეცდომის მქონე სერტიფიკატის მონაცემების (გადაუმოწმებელი): სათაური \"%s\", სერიული ნომერი %s, გამომცემელი \"%s\"." -#: libpq/be-secure-openssl.c:1241 +#: libpq/be-secure-openssl.c:1264 msgid "unknown" msgstr "უცნობი" -#: libpq/be-secure-openssl.c:1378 +#: libpq/be-secure-openssl.c:1401 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: DH-ის პარამეტრების ჩატვირთვის შეცდომა" -#: libpq/be-secure-openssl.c:1386 +#: libpq/be-secure-openssl.c:1409 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: DH-ის პარამეტრების დაყენების შეცდომა: %s" -#: libpq/be-secure-openssl.c:1413 +#: libpq/be-secure-openssl.c:1439 #, c-format -msgid "ECDH: unrecognized curve name: %s" -msgstr "ECDH: მრუდის უცნობი სახელი: %s" +msgid "failed to set group names specified in ssl_groups: %s" +msgstr "" -#: libpq/be-secure-openssl.c:1422 +#: libpq/be-secure-openssl.c:1441 +msgid "No valid groups found" +msgstr "სწორი ჯგუფები აღმოჩენილი არაა" + +#: libpq/be-secure-openssl.c:1442 #, c-format -msgid "ECDH: could not create key" -msgstr "ECDH: გასაღების შექნის შეცდომა" +msgid "Ensure that each group name is spelled correctly and supported by the installed version of OpenSSL" +msgstr "დარწმუნდით, რომ თითოეული ჯგუფის სახელის მართლწერა სწორია და მხარდაჭერილია OpenSSL-ის დაყენებული ვერსიის მიერ" -#: libpq/be-secure-openssl.c:1450 +#: libpq/be-secure-openssl.c:1488 msgid "no SSL error reported" msgstr "შეცდომა SSL-ში არ დაფიქსირებულა" -#: libpq/be-secure-openssl.c:1467 +#: libpq/be-secure-openssl.c:1506 #, c-format msgid "SSL error code %lu" msgstr "SSL-ის შეცდომის კოდი %lu" -#: libpq/be-secure-openssl.c:1624 +#: libpq/be-secure-openssl.c:1663 #, c-format msgid "could not create BIO" msgstr "\"BIO\"-ს შექმნის შეცდომა" -#: libpq/be-secure-openssl.c:1634 +#: libpq/be-secure-openssl.c:1673 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "'ASN1_OBJECT' ტიპის ობიექტისთვის NID-ის მიღება შეუძლებელია" -#: libpq/be-secure-openssl.c:1642 +#: libpq/be-secure-openssl.c:1681 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "'NID %d'-ის ASN1_OBJECT ტიპის სტრუქტურად გარდაქნა შეუძლებელია" -#: libpq/crypt.c:48 +#: libpq/crypt.c:50 #, c-format msgid "Role \"%s\" does not exist." msgstr "როლი არ არსებობს: \"%s\"." -#: libpq/crypt.c:58 +#: libpq/crypt.c:60 #, c-format msgid "User \"%s\" has no password assigned." msgstr "მომხმარებელს პაროლი მინიჭებული არ აქვს: %s." -#: libpq/crypt.c:76 +#: libpq/crypt.c:78 #, c-format msgid "User \"%s\" has an expired password." msgstr "მომხმარებლის პაროლის ვადა გასულია: %s." -#: libpq/crypt.c:182 +#: libpq/crypt.c:174 +#, c-format +msgid "encrypted password is too long" +msgstr "დაშიფრული პაროლი მეტისმეტად გრძელია" + +#: libpq/crypt.c:175 +#, c-format +msgid "Encrypted passwords must be no longer than %d bytes." +msgstr "დაშიფრული ბაიტები %d ბაიტზე დიდი არ უნდა იყოს." + +#: libpq/crypt.c:183 +#, c-format +msgid "setting an MD5-encrypted password" +msgstr "მიმდინარეობს MD5-ით დაშიფრული პაროლის დაყენება" + +#: libpq/crypt.c:184 +#, c-format +msgid "MD5 password support is deprecated and will be removed in a future release of PostgreSQL." +msgstr "" + +#: libpq/crypt.c:185 +#, c-format +msgid "Refer to the PostgreSQL documentation for details about migrating to another password type." +msgstr "" + +#: libpq/crypt.c:216 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "მომხმარებლის (\"%s\") პაროლის გამოყენება MD5-ით ავთენტიკაციისთვის შეუძლებელია." -#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 +#: libpq/crypt.c:237 libpq/crypt.c:279 libpq/crypt.c:299 #, c-format msgid "Password does not match for user \"%s\"." msgstr "პაროლი არ ემთხვევა მომხმარებელს \"%s." -#: libpq/crypt.c:284 +#: libpq/crypt.c:318 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "მომხმარებლის (\"%s\") პაროლის უცნობი ფორმატი." -#: libpq/hba.c:327 +#: libpq/hba.c:329 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "არასწორი რეგულარული გამოსახულება (%s): %s" -#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 -#: libpq/hba.c:1799 libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 tsearch/ts_locale.c:241 -#, c-format -msgid "line %d of configuration file \"%s\"" -msgstr "კონფიგურაციის ფაილის \"%2$s\" ხაზზე %1$d" - -#: libpq/hba.c:457 +#: libpq/hba.c:459 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "ნაკლული ავთენტიკაციის ფაილის გამოტოვება \"%s\"" -#: libpq/hba.c:609 +#: libpq/hba.c:611 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "ფაილის (\"%s\") გახსნა შეუძლებელია: გადაცილებულია ჩალაგების სიღრმე" -#: libpq/hba.c:1216 +#: libpq/hba.c:1222 #, c-format msgid "error enumerating network interfaces: %m" msgstr "ქსელის ინტერფეისების ჩამონათვალის მიღების შეცდომა: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1243 +#: libpq/hba.c:1249 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "ავთენტიკაციის პარამეტრი \"%s\" მხოლოდ ავთენტიკაციის მეთოდებისთვის %s შეგიძლიათ, გამოიყენოთ" -#: libpq/hba.c:1263 +#: libpq/hba.c:1269 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "ავთენტიკაციის მეთოდს \"%s\" არგუმენტის (\"%s\") დაყენება სჭირდება" -#: libpq/hba.c:1287 +#: libpq/hba.c:1293 #, c-format msgid "missing entry at end of line" msgstr "ხაზის ბოლოში ჩანაწერი აღმოჩენილი არაა" -#: libpq/hba.c:1300 +#: libpq/hba.c:1306 #, c-format msgid "multiple values in ident field" msgstr "ერთზე მეტი მნიშვნელობა ველში ident" -#: libpq/hba.c:1352 +#: libpq/hba.c:1358 #, c-format msgid "multiple values specified for connection type" msgstr "მიერთების ტიპში მითითებულია ერთზე მეტი მნიშვნელობა" -#: libpq/hba.c:1353 +#: libpq/hba.c:1359 #, c-format msgid "Specify exactly one connection type per line." msgstr "ერთ ხაზზე ზუსტად ერთი მიერთების ტიპი უნდა მიუთითოთ." -#: libpq/hba.c:1380 +#: libpq/hba.c:1386 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "hostssl-ის ჩანაწერის დამთხვევა შეუძლებელია, რადგან SSL გათიშულია" -#: libpq/hba.c:1381 +#: libpq/hba.c:1387 #, c-format msgid "Set \"ssl = on\" in postgresql.conf." msgstr "დააყენეთ \"ssl = on\" postgresql.conf-ში." -#: libpq/hba.c:1389 +#: libpq/hba.c:1395 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "hostssl-ის ჩანაწერის დამთხვევა შეუძლებელია, რადგან SSL-ის მხარდაჭერა ამ აგებისას ჩართული არ იყო" -#: libpq/hba.c:1401 +#: libpq/hba.c:1407 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "hostgssenc-ის ჩანაწერის დამთხვევა შეუძლებელია, რადგან GSSAPI -ის მხარდაჭერა ამ აგებისას ჩართული არ იყო" -#: libpq/hba.c:1421 +#: libpq/hba.c:1427 #, c-format msgid "invalid connection type \"%s\"" msgstr "შეერთების არასწორი ტიპი: %s" -#: libpq/hba.c:1435 +#: libpq/hba.c:1441 #, c-format msgid "end-of-line before database specification" msgstr "ხაზის-დასასრული ბაზის მითითებამდე" -#: libpq/hba.c:1460 +#: libpq/hba.c:1466 #, c-format msgid "end-of-line before role specification" msgstr "ხაზის-დასასრული როლის მითითებამდე" -#: libpq/hba.c:1487 +#: libpq/hba.c:1493 #, c-format msgid "end-of-line before IP address specification" msgstr "ხაზის-დასასრული IP მისამართის მითითებამდე" -#: libpq/hba.c:1498 +#: libpq/hba.c:1504 #, c-format msgid "multiple values specified for host address" msgstr "მითითებულია ჰოსტის მისამართის ერთზე მეტი მნიშვნელობა" -#: libpq/hba.c:1499 +#: libpq/hba.c:1505 #, c-format msgid "Specify one address range per line." msgstr "ერთ ხაზზე ერთი მისამართების დიაპაზონი მიუთითეთ." -#: libpq/hba.c:1557 +#: libpq/hba.c:1563 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "არასწორი IP მისამართი \"%s\": %s" -#: libpq/hba.c:1577 +#: libpq/hba.c:1583 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "ორივეს, ჰოსტის სახელის და CIDR-ის ნიღბის მითითება არასწორია: \"%s\"" -#: libpq/hba.c:1591 +#: libpq/hba.c:1597 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "არასწორი CIDR ნიღაბი მისამართში \"%s\"" -#: libpq/hba.c:1611 +#: libpq/hba.c:1617 #, c-format msgid "end-of-line before netmask specification" msgstr "ხაზის-დასასრული ქსელური ნიღბის მითითებამდე" -#: libpq/hba.c:1612 +#: libpq/hba.c:1618 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "" -#: libpq/hba.c:1623 +#: libpq/hba.c:1629 #, c-format msgid "multiple values specified for netmask" msgstr "მითითებულია ქსელის ნიღბის ერთზე მეტი მნიშვნელობა" -#: libpq/hba.c:1637 +#: libpq/hba.c:1643 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "არასწორი IP ნიღაბი \"%s\": %s" -#: libpq/hba.c:1657 +#: libpq/hba.c:1663 #, c-format msgid "IP address and mask do not match" msgstr "IP მისამართი და ნიღაბი არ ემთხვევა" -#: libpq/hba.c:1673 +#: libpq/hba.c:1679 #, c-format msgid "end-of-line before authentication method" msgstr "ხაზის-დასასრული ავთენტიკაციის მეთოდამდე" -#: libpq/hba.c:1684 +#: libpq/hba.c:1690 #, c-format msgid "multiple values specified for authentication type" msgstr "ავთენტიკაციის ტიპში მითითებულია ერთზე მეტი მნიშვნელობა" -#: libpq/hba.c:1685 +#: libpq/hba.c:1691 #, c-format msgid "Specify exactly one authentication type per line." msgstr "ერთ ხაზზე ზუსტად ერთი ავთენტიკაციის ტიპი უნდა მიუთითოთ." -#: libpq/hba.c:1750 +#: libpq/hba.c:1758 #, c-format msgid "invalid authentication method \"%s\"" msgstr "არასწორი ავთენტიკაციის მეთოდი \"%s\"" -#: libpq/hba.c:1763 +#: libpq/hba.c:1771 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "არასწორი ავთენტიკაციის მეთოდი \"%s\": მხარდაუჭერელია ამ ვერსიის მიერ" -#: libpq/hba.c:1786 +#: libpq/hba.c:1794 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "gssapi ავთენტიკაცია ლოკალურ სოკეტებზე მხარდაუჭერელია" -#: libpq/hba.c:1798 +#: libpq/hba.c:1806 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "პარტნიორის ავთენტიკაცია მხოლოდ ლოკალურ სოკეტებზეა მხარდაჭერილი" -#: libpq/hba.c:1816 +#: libpq/hba.c:1824 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "სერტიფიკატით ავთენტიკაცია მხოლოდ hostssl მიერთებებზეა მხარდაჭერილი" -#: libpq/hba.c:1866 +#: libpq/hba.c:1874 #, c-format msgid "authentication option not in name=value format: %s" msgstr "ავთენტიკაციის პარამეტრი სახელი=მნიშვნელობა ფორმატში არაა: %s" -#: libpq/hba.c:1910 +#: libpq/hba.c:1918 #, c-format -msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" -msgstr "ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, ან ldapurl-ის ldapprefix-სთან ერთად გამოყენება შეუძლებელია" +msgid "cannot mix options for simple bind and search+bind modes" +msgstr "" -#: libpq/hba.c:1921 +#: libpq/hba.c:1929 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "ავთენტიკაციის მეთოდს \"ldap\" არგუმენტების \"ldapbasedn\", \"ldapprefix\", ან \"ldapsuffix\" დაყენება სჭირდება" -#: libpq/hba.c:1937 +#: libpq/hba.c:1945 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "ldapsearchattribute-ს და ldapsearchfilter-ს ერთად ვერ გამოიყენებთ" -#: libpq/hba.c:1954 +#: libpq/hba.c:1962 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "'RADIUS' სერვერების სია არ შეიძლება, ცარიელი იყოს" -#: libpq/hba.c:1965 +#: libpq/hba.c:1973 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "'RADIUS' საიდუმლოების სია არ შეიძლება, ცარიელი იყოს" -#: libpq/hba.c:1982 +#: libpq/hba.c:1990 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "" -#: libpq/hba.c:1998 +#: libpq/hba.c:2006 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "" -#: libpq/hba.c:2014 +#: libpq/hba.c:2022 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "" -#: libpq/hba.c:2066 -msgid "ident, peer, gssapi, sspi, and cert" -msgstr "ident, peer, gssapi, sspi, და cert" +#. translator: strings are replaced with hba options +#: libpq/hba.c:2067 +#, c-format +msgid "%s cannot be used in combination with %s" +msgstr "%s-ს %s-სთან ერთად ვერ გამოიყენებთ" + +#: libpq/hba.c:2105 +msgid "ident, peer, gssapi, sspi, cert, and oauth" +msgstr "ident, peer, gssapi, sspi, cert და oauth" -#: libpq/hba.c:2075 +#: libpq/hba.c:2114 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert-ის მორგება მხოლოდ \"hostssl\" ხაზებისთვის შეგიძლიათ" -#: libpq/hba.c:2092 +#: libpq/hba.c:2131 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "\"cert\" ტიპის ავთენტიკაციის გამოყენებისას clientcert-ს მხოლოდ \"verify-full\" შეგიძლიათ, მიუთითოთ" -#: libpq/hba.c:2105 +#: libpq/hba.c:2144 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "invalid value for clientcert: \"%s\"" -#: libpq/hba.c:2117 +#: libpq/hba.c:2156 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname-ის მორგება მხოლოდ \"hostssl\" ხაზებისთვის შეგიძლიათ" -#: libpq/hba.c:2136 +#: libpq/hba.c:2175 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "არასწორი მნიშვნელობა კლიენტის სახელისთვის: \"%s\"" -#: libpq/hba.c:2169 +#: libpq/hba.c:2208 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "\"LDAP URL\"-ის (%s) დამუშავების შეცდომა: %s" -#: libpq/hba.c:2180 +#: libpq/hba.c:2219 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "\"LDAP URL\"-ის მხარდაუჭერელი სქემა: %s" -#: libpq/hba.c:2204 +#: libpq/hba.c:2243 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "ამ პლატფორმაზე LDAP URL მხარდაჭერილი არაა" -#: libpq/hba.c:2222 +#: libpq/hba.c:2261 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "ldapscheme -ის არასწორი მნიშვნელობა: \"%s\"" -#: libpq/hba.c:2240 +#: libpq/hba.c:2279 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "\"LDAP\"-ის პორტის არასწორი ნომერი: %s" -#: libpq/hba.c:2286 libpq/hba.c:2293 +#: libpq/hba.c:2325 libpq/hba.c:2332 msgid "gssapi and sspi" msgstr "gssapi და sspi" -#: libpq/hba.c:2302 libpq/hba.c:2311 +#: libpq/hba.c:2341 libpq/hba.c:2350 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2333 +#: libpq/hba.c:2372 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "\"RADIUS\"-ის სერვერების სიის დამუშავება შეუძლებელია: %s" -#: libpq/hba.c:2381 +#: libpq/hba.c:2420 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "\"RADIUS\"-ის პორტების სიის დამუშავება შეუძლებელია: %s" -#: libpq/hba.c:2395 +#: libpq/hba.c:2434 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "\"RADIUS\"-ის არასწორი პორტი: \"%s\"" -#: libpq/hba.c:2417 +#: libpq/hba.c:2456 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "'RADIUS'-ის საიდუმლოების სიის დამუშავება შეუძლებელია: %s" -#: libpq/hba.c:2439 +#: libpq/hba.c:2478 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "'RADIUS'-ის იდენტიფიკატორების ჩამონათვალის \"%s\" დამუშავება შეუძლებელია" -#: libpq/hba.c:2453 +#: libpq/hba.c:2515 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "უცნობი ავთნტიკაციის პარამეტრის სახელი: \"%s\"" -#: libpq/hba.c:2645 +#: libpq/hba.c:2707 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "კონფიგურაციის ფაილი \"%s\" ჩანაწერებს არ შეიცავს" -#: libpq/hba.c:2798 +#: libpq/hba.c:2860 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "რეგულარული გამოსახულების დამთხვევა \"%s\"-სთვის ჩავარდა: %s" -#: libpq/hba.c:2822 +#: libpq/hba.c:2884 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "" -#: libpq/hba.c:2925 +#: libpq/hba.c:2987 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "" -#: libpq/hba.c:2945 +#: libpq/hba.c:3007 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "" -#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#: libpq/pqcomm.c:212 libpq/pqcomm.c:220 libpq/pqcomm.c:251 libpq/pqcomm.c:260 libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s)-ის შეცდომა: %m" -#: libpq/pqcomm.c:296 +#: libpq/pqcomm.c:297 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "სოკეტის არაბლოკირებული რეჟიმის დაყენების შეცდომა: %m" -#: libpq/pqcomm.c:456 +#: libpq/pqcomm.c:457 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unix-დომენის სოკეტის მისამართი \"%s\" ძალიან გრძელია (დასაშვებია %d ბაიტი)" -#: libpq/pqcomm.c:476 +#: libpq/pqcomm.c:477 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "ჰოსტის სახელის \"%s\" და სერვისის სახელის \"%s\" მისამართში თარგმნა შეუძლებელია: %s" -#: libpq/pqcomm.c:480 +#: libpq/pqcomm.c:481 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "სერვისის \"%s\" მისამართში თარგმნა შეუძლებელია: %s" -#: libpq/pqcomm.c:502 +#: libpq/pqcomm.c:503 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "ყველა მოთხოვნილ მისამართზე მიმაგრება შეუძლებელია: MAXLISTEN (%d) გადაცილებულია" -#: libpq/pqcomm.c:511 +#: libpq/pqcomm.c:512 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:514 +#: libpq/pqcomm.c:515 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:517 +#: libpq/pqcomm.c:518 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:521 +#: libpq/pqcomm.c:522 #, c-format msgid "unrecognized address family %d" msgstr "მისამართის არასწორი ოჯახი %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:545 +#: libpq/pqcomm.c:546 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "%s სოკეტის შექმნის შეცდომა მისამართისთვის \"%s\": %m" -#. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 +#. translator: third %s is IPv4 or IPv6 +#. translator: third %s is IPv6 +#: libpq/pqcomm.c:575 libpq/pqcomm.c:593 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s)-ის შეცდომა %s-სთვის მისამართი \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:615 +#: libpq/pqcomm.c:616 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "%s მისამართზე \"%s\" მიბმის შეცდომა: %m" -#: libpq/pqcomm.c:619 +#: libpq/pqcomm.c:620 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "იქნებ პორტზე %d სხვა postmaster პროცესი უკვე უსმენს?" -#: libpq/pqcomm.c:621 +#: libpq/pqcomm.c:622 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "იქნებ პორტზე %d სხვა postmaster პროცესი უკვე უსმენს? თუ არა, დაიცადეთ რამდენიმე წამი და თავიდან სცადეთ." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:650 +#: libpq/pqcomm.c:651 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "%s მისამართზე \"%s\" მოსმენა შეუძლებელია: %m" -#: libpq/pqcomm.c:658 +#: libpq/pqcomm.c:659 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "ვუსმენ Unix სოკეტს \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:663 +#: libpq/pqcomm.c:664 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "ვუსმენ %s მისამართი \"%s\", პორტი %d" -#: libpq/pqcomm.c:753 +#: libpq/pqcomm.c:754 #, c-format msgid "group \"%s\" does not exist" msgstr "ჯგუფი \"%s\" არ არსებობს" -#: libpq/pqcomm.c:763 +#: libpq/pqcomm.c:764 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "ფაილის \"%s\" ჯგუფის დაყენება შეუძლებელია: %m" -#: libpq/pqcomm.c:774 +#: libpq/pqcomm.c:775 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "ფაილზე \"%s\" წვდომების დაყენების შეცდომა: %m" -#: libpq/pqcomm.c:803 +#: libpq/pqcomm.c:804 #, c-format msgid "could not accept new connection: %m" msgstr "ახალი მიერთების მიღება შეუძლებელია: %m" -#: libpq/pqcomm.c:885 +#: libpq/pqcomm.c:886 #, c-format msgid "there is no client connection" msgstr "კლიენტის მიერთება არ არსებობს" -#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 +#: libpq/pqcomm.c:942 libpq/pqcomm.c:1043 #, c-format msgid "could not receive data from client: %m" msgstr "კლიენტიდან მონაცემების მიღების შეცდომა: %m" -#: libpq/pqcomm.c:1149 tcop/postgres.c:4446 +#: libpq/pqcomm.c:1151 tcop/postgres.c:4505 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "მიერთება შეწყდება, რადგან პროტოკოლის სინქრონიზაცია დაიკარგა" -#: libpq/pqcomm.c:1215 +#: libpq/pqcomm.c:1217 #, c-format msgid "unexpected EOF within message length word" msgstr "მოულოდნელი EOF შეტყობინების სიგრძის სიტყვაში" -#: libpq/pqcomm.c:1225 +#: libpq/pqcomm.c:1227 #, c-format msgid "invalid message length" msgstr "შეტყობინების არასწორი სიგრძე" -#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 +#: libpq/pqcomm.c:1249 libpq/pqcomm.c:1262 #, c-format msgid "incomplete message from client" msgstr "კლიენტიდან მიღებული შეტყობინება დაუსრულებელია" -#: libpq/pqcomm.c:1401 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "კლიენტისთვის მონაცემების გაგზავნის შეცდომა: %m" -#: libpq/pqcomm.c:1616 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) -ის შეცდომა: შეცდომის კოდი %d" -#: libpq/pqcomm.c:1705 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "" -#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s (%s) მხარდაუჭერელია" @@ -15978,7 +16430,7 @@ msgstr "%s (%s) მხარდაუჭერელია" msgid "no data left in message" msgstr "შეტყობინებაში მონაცემები აღარ დარჩა" -#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 utils/adt/rowtypes.c:613 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 utils/adt/array_userfuncs.c:873 utils/adt/arrayfuncs.c:1481 utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "შეტყობინებაში დარჩენილი მონაცემები არასაკმარისია" @@ -15993,12 +16445,12 @@ msgstr "არასწორი სტრიქონი შეტყობი msgid "invalid message format" msgstr "არასწორი შეტყობინების ფორმატი" -#: main/main.c:234 +#: main/main.c:298 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: WSAStartup-ის შეცდომა: %d\n" -#: main/main.c:322 +#: main/main.c:386 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -16007,7 +16459,7 @@ msgstr "" "%s PostgreSQL სერვერია.\n" "\n" -#: main/main.c:323 +#: main/main.c:387 #, c-format msgid "" "Usage:\n" @@ -16019,107 +16471,107 @@ msgstr "" "\n" "\n" -#: main/main.c:324 +#: main/main.c:388 #, c-format msgid "Options:\n" msgstr "პარამეტრები:\n" -#: main/main.c:325 +#: main/main.c:389 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS გაზიარებული ბაფერების რაოდენობა\n" -#: main/main.c:326 +#: main/main.c:390 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c სახელი=მნიშვნელობა გაშვებული პროცესის პარამეტრის დაყენება\n" -#: main/main.c:327 +#: main/main.c:391 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C სახელი გაშვებული პროცესის პარამეტრის გამოტანა და გასვლა\n" -#: main/main.c:328 +#: main/main.c:392 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 გამართვის დონე\n" -#: main/main.c:329 +#: main/main.c:393 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR მონაცემთა ბაზის დირექტორია\n" -#: main/main.c:330 +#: main/main.c:394 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e ევროპული თარიღის შეყვანის ფორმატის (DMY) გამოყენება\n" -#: main/main.c:331 +#: main/main.c:395 #, c-format msgid " -F turn fsync off\n" msgstr " -F fsync-ის გამორთვა\n" -#: main/main.c:332 +#: main/main.c:396 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h ჰოსტის სახელი ჰოსტის სახელი ან IP მისამართი, რომელზეც უნდა მოვუსმინო\n" -#: main/main.c:333 +#: main/main.c:397 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr " -i TCP/IP-ის ჩართვა (მოძველებული)\n" -#: main/main.c:334 +#: main/main.c:398 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k საქაღალდე Unix-დომენის სოკეტის მდებარეობა\n" -#: main/main.c:336 +#: main/main.c:400 #, c-format msgid " -l enable SSL connections\n" msgstr " -l SSL-ის ჩართვა\n" -#: main/main.c:338 +#: main/main.c:402 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N მაქს-მიერთ მიერთებების დაშვებული მაქსიმალური რაოდენობა\n" -#: main/main.c:339 +#: main/main.c:403 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p პორტი მოსასმენი პორტის ნომერი\n" -#: main/main.c:340 +#: main/main.c:404 #, c-format msgid " -s show statistics after each query\n" msgstr " -s ყოველი მოთხოვნის შემდეგ სტატისტიკსი ჩვენება\n" -#: main/main.c:341 +#: main/main.c:405 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S სამუშ-მეხს დალაგებისთვის გამოყოფილი მეხსიერების დაყენება (კილობაიტებში)\n" -#: main/main.c:342 +#: main/main.c:406 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: main/main.c:343 +#: main/main.c:407 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --სახელი=მნიშვნელობა გაშვებული პროცესის პარამეტრის დაყენება\n" -#: main/main.c:344 +#: main/main.c:408 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config კონფიგურაციის პარამეტრის ახსნის გამოტანა და გასვლა\n" -#: main/main.c:345 +#: main/main.c:409 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: main/main.c:347 +#: main/main.c:411 #, c-format msgid "" "\n" @@ -16128,37 +16580,37 @@ msgstr "" "\n" "პროგრამისტის პარამეტრები:\n" -#: main/main.c:348 +#: main/main.c:412 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h ზოგიერთი გეგმის ტიპის გამოყენების აკრძალვა\n" -#: main/main.c:349 +#: main/main.c:413 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O სისტემური ცხრილის სტრუქტურის შეცვლის დაშვება\n" -#: main/main.c:350 +#: main/main.c:414 #, c-format msgid " -P disable system indexes\n" msgstr " -P სისტემური ინდექსების გამორთვა\n" -#: main/main.c:351 +#: main/main.c:415 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex ყოველი მოთხოვნის დროის მნიშვნელობების ჩვენება\n" -#: main/main.c:352 +#: main/main.c:416 #, c-format msgid " -T send SIGABRT to all backend processes if one dies\n" msgstr " -T ერთის სიკვდილის შემთხვევაში ყველა უკანაბოლოს პროცესისთვის SIGABRT სიგნალის გაგზავნა\n" -#: main/main.c:353 +#: main/main.c:417 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W რიცხვი გამმართველისგან მიმაგრებისას მითითებული რაოდენობის წამების დაცდა\n" -#: main/main.c:355 +#: main/main.c:419 #, c-format msgid "" "\n" @@ -16167,37 +16619,37 @@ msgstr "" "\n" "ერთმომხმარებლიანი რეჟიმის პარამეტრები:\n" -#: main/main.c:356 +#: main/main.c:420 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr " --single ერთმომხმარებლიანი რეჟიმი (უნდა იყოს პირველი არგუმენტი)\n" -#: main/main.c:357 +#: main/main.c:421 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME ბაზის სახელი (ნაგულისხმევი მნიშვნელობა მომხმარებლის სახელია)\n" -#: main/main.c:358 +#: main/main.c:422 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 პროგრამის გამართვის დონის მითითება\n" -#: main/main.c:359 +#: main/main.c:423 #, c-format msgid " -E echo statement before execution\n" msgstr " -E ოპერატორის გამოტანა მის შესრულებამდე\n" -#: main/main.c:360 +#: main/main.c:424 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j ახალ ხაზზე გადატანა ინტერაქტიური მოთხოვნის გამყოფად გამოყენებული არ იქნება\n" -#: main/main.c:361 main/main.c:367 +#: main/main.c:425 main/main.c:431 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r FILENAME stdout-ის და stderr-ის მითითებულ ფაილში გაგზავნა\n" -#: main/main.c:363 +#: main/main.c:427 #, c-format msgid "" "\n" @@ -16206,22 +16658,22 @@ msgstr "" "\n" "სამუშაოდ მომზადების პარამეტრები\n" -#: main/main.c:364 +#: main/main.c:428 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot სამუშაოდ მომზადების რეჟიმი (უნდა იყოს პირველი არგუმენტი)\n" -#: main/main.c:365 +#: main/main.c:429 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check შემოწმების რეჟიმი (უნდა იყოს პირველი არგუმენტი)\n" -#: main/main.c:366 +#: main/main.c:430 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAME ბაზის სახელი (აუცილებელი არგუმენტი სამუშაოდ მომზადებისას)\n" -#: main/main.c:369 +#: main/main.c:433 #, c-format msgid "" "\n" @@ -16232,12 +16684,12 @@ msgid "" "Report bugs to <%s>.\n" msgstr "" -#: main/main.c:373 +#: main/main.c:437 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: main/main.c:384 +#: main/main.c:448 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -16246,12 +16698,12 @@ msgid "" "more information on how to properly start the server.\n" msgstr "" -#: main/main.c:401 +#: main/main.c:465 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: რეალური და მიმდინარე მომხმარებლის ID-ები უნდა ემთხვეოდეს\n" -#: main/main.c:408 +#: main/main.c:472 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -16271,12 +16723,12 @@ msgstr "გაფართოებადი კვანძის ტიპი msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods \"%s\" რეგისტრირებული არ იყო" -#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 +#: nodes/makefuncs.c:154 nodes/makefuncs.c:180 statistics/extended_stats.c:2306 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "ურთიერთობას \"%s\" კომპოზიტური ტიპი არ გააჩნია" -#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2567 parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 utils/fmgr/funcapi.c:669 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2602 parser/parse_coerce.c:2740 parser/parse_coerce.c:2787 parser/parse_expr.c:2118 parser/parse_func.c:710 parser/parse_oper.c:869 utils/adt/array_userfuncs.c:1950 utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "მონაცემების ტიპისთვის %s მასივის ტიპი ვერ ვიპოვე" @@ -16291,765 +16743,786 @@ msgstr "პორტალი \"%s\" პარამეტრებით: %s" msgid "unnamed portal with parameters: %s" msgstr "უსახელო პორტალი პარამეტრებით: %s" -#: optimizer/path/joinrels.c:972 +#: optimizer/path/joinrels.c:973 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "" -#: optimizer/plan/createplan.c:7162 parser/parse_merge.c:203 rewrite/rewriteHandler.c:1695 +#: optimizer/plan/createplan.c:7250 parser/parse_merge.c:203 rewrite/rewriteHandler.c:1689 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" MERGE-ს ვერ გაუშვებთ" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1407 +#: optimizer/plan/initsplan.c:1755 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 parser/analyze.c:3247 +#: optimizer/plan/planner.c:1459 parser/analyze.c:1900 parser/analyze.c:2159 parser/analyze.c:3480 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s აკრძალულია UNION/INTERSECT/EXCEPT-სთან ერთად" -#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4107 +#: optimizer/plan/planner.c:2202 optimizer/plan/planner.c:4045 #, c-format msgid "could not implement GROUP BY" msgstr "\"GROUP BY\"-ის განხორციელება შეუძლებელია" -#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4108 optimizer/plan/planner.c:4789 optimizer/prep/prepunion.c:1320 +#: optimizer/plan/planner.c:2203 optimizer/plan/planner.c:4046 optimizer/plan/planner.c:4727 optimizer/prep/prepunion.c:1073 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "ზოგიერთ მონაცემის ტიპს მხოლოდ ჰეშირების მხარდაჭერა გააჩნია, მაშინ, როცა სხვებს მხოლოდ დალაგება შეუძლიათ." -#: optimizer/plan/planner.c:4788 +#: optimizer/plan/planner.c:4726 #, c-format msgid "could not implement DISTINCT" msgstr "\"DISTINCT\"-ის განხორციელება შეუძლებელია" -#: optimizer/plan/planner.c:6133 +#: optimizer/plan/planner.c:6188 #, c-format msgid "could not implement window PARTITION BY" msgstr "ფანჯრის, \"PARTITION BY\" განხორციელება შეუძლებელია" -#: optimizer/plan/planner.c:6134 +#: optimizer/plan/planner.c:6189 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "ფანჯრის დამყოფი სვეტები დალაგებადი მონაცემის ტიპის უნდა იყოს." -#: optimizer/plan/planner.c:6138 +#: optimizer/plan/planner.c:6193 #, c-format msgid "could not implement window ORDER BY" msgstr "ფანჯრის, \"ORDER BY\" განხორციელება შეუძლებელია" -#: optimizer/plan/planner.c:6139 +#: optimizer/plan/planner.c:6194 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "ფანჯრის დამლაგებელი სვეტები დალაგებადი მონაცემის ტიპის უნდა იყოს." -#: optimizer/prep/prepunion.c:467 +#: optimizer/prep/prepunion.c:440 #, c-format msgid "could not implement recursive UNION" msgstr "რეკურსიული UNION_ის განხორციელება შეუძლებელია" -#: optimizer/prep/prepunion.c:468 +#: optimizer/prep/prepunion.c:441 #, c-format msgid "All column datatypes must be hashable." msgstr "ყველა სვეტის მონაცემის ტიპი ჰეშირებადი უნდა იყოს." -#. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1319 +#. translator: %s is INTERSECT or EXCEPT +#: optimizer/prep/prepunion.c:1071 #, c-format msgid "could not implement %s" msgstr "ვერ განხორციელდა %s" -#: optimizer/util/clauses.c:4951 +#: optimizer/util/appendinfo.c:165 +#, c-format +msgid "attribute \"%s\" of relation \"%s\" does not match parent's type" +msgstr "ურთიერთობის \"%2$s\" ატრიბუტი \"%1$s\" მშობლის ტიპს არ ემთხვევა" + +#: optimizer/util/appendinfo.c:170 +#, c-format +msgid "attribute \"%s\" of relation \"%s\" does not match parent's collation" +msgstr "ურთიერთობის \"%2$s\" ატრიბუტი \"%1$s\" მშობლის კოლაციას არ ემთხვევა" + +#: optimizer/util/clauses.c:4966 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL ფუნქცია \"%s\" ხაზში ჩასმისას" -#: optimizer/util/plancat.c:152 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "აღდგენისას დროებით ან უჟურნალო ურთიერთობებთან წვდომა შეუძლებელია" -#: optimizer/util/plancat.c:756 +#: optimizer/util/plancat.c:770 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "" -#: optimizer/util/plancat.c:773 +#: optimizer/util/plancat.c:787 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "შეზღუდვას ON CONFLICT პირობაში ასოცირებული ინდექსი არ გააჩნია" -#: optimizer/util/plancat.c:823 +#: optimizer/util/plancat.c:837 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE გამორიცხვის შეზღუდვებთან ერთად მხარდაჭერილი არაა" -#: optimizer/util/plancat.c:933 +#: optimizer/util/plancat.c:954 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "უნიკალური ან გამორიცხვის შეზღუდვა, რომელიც ON CONFLICT-ის აღწერას ემთხვევა, არ არსებობს" -#: parser/analyze.c:824 parser/analyze.c:1550 +#: parser/analyze.c:954 parser/analyze.c:1679 #, c-format msgid "VALUES lists must all be the same length" msgstr "VALUES-ის სიები ყველა ტოლი სიგრძის უნდა იყოს" -#: parser/analyze.c:1027 +#: parser/analyze.c:1156 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT-ს მეტი გამოსახულება გააჩნია, ვიდრე სამიზნე სვეტი" -#: parser/analyze.c:1045 +#: parser/analyze.c:1174 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT-ს მეტი სამიზნე სვეტი გააჩნია, ვიდრე გამოსახულება" -#: parser/analyze.c:1049 +#: parser/analyze.c:1178 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "" -#: parser/analyze.c:1357 parser/analyze.c:1744 +#: parser/analyze.c:1486 parser/analyze.c:1873 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO აქ დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1673 parser/analyze.c:3479 +#: parser/analyze.c:1802 parser/analyze.c:3712 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s-ს VALUES-ზე ვერ გამოიყენებთ" -#: parser/analyze.c:1911 +#: parser/analyze.c:2040 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "არასწორი UNION/INTERSECT/EXCEPT ORDER BY პირობა" -#: parser/analyze.c:1912 +#: parser/analyze.c:2041 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "" -#: parser/analyze.c:1913 +#: parser/analyze.c:2042 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "" -#: parser/analyze.c:2019 +#: parser/analyze.c:2149 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "" -#: parser/analyze.c:2091 +#: parser/analyze.c:2221 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "" -#: parser/analyze.c:2178 +#: parser/analyze.c:2308 #, c-format msgid "each %s query must have the same number of columns" msgstr "ყოველ %s მოთხოვნას სვეტების ტოლი რაოდენობა უნდა ჰქონდეს" -#: parser/analyze.c:2535 +#: parser/analyze.c:2665 #, c-format msgid "SET target columns cannot be qualified with the relation name." msgstr "" -#: parser/analyze.c:2589 +#. translator: %s is OLD or NEW +#: parser/analyze.c:2753 parser/analyze.c:2763 +#, c-format +msgid "%s cannot be specified multiple times" +msgstr "%s-ის რამდენჯერმე მითითება აკრძალულია" + +#: parser/analyze.c:2775 parser/parse_relation.c:473 +#, c-format +msgid "table name \"%s\" specified more than once" +msgstr "" + +#: parser/analyze.c:2823 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING-ს ერთი სვეტი მაინც უნდა ჰქონდეს" -#: parser/analyze.c:2692 +#: parser/analyze.c:2925 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "მინიჭების წყარომ %d სვეტი დააბრუნა" msgstr[1] "მინიჭების წყარომ %d სვეტი დააბრუნა" -#: parser/analyze.c:2753 +#: parser/analyze.c:2986 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "\"%s\" ცვლადის ტიპია \"%s\", მაგრამ გამოსახულება %s ტიპისაა" #. translator: %s is a SQL keyword -#: parser/analyze.c:2878 parser/analyze.c:2886 +#: parser/analyze.c:3111 parser/analyze.c:3119 #, c-format msgid "cannot specify both %s and %s" msgstr "ორივე, %s და %s ერთად მითითება შეუძლებელია" -#: parser/analyze.c:2906 +#: parser/analyze.c:3139 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR-ი WITH-ში მონაცემების შემცვლელ გამოსახულებებს არ უნდა შეიცავდეს" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2914 +#: parser/analyze.c:3147 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s მხარდაჭერილი არაა" -#: parser/analyze.c:2917 +#: parser/analyze.c:3150 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "შენახვადი კურსორები READ ONLY ტიპის უნდა იყოს." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2925 +#: parser/analyze.c:3158 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s მხარდაჭერილი არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2936 +#: parser/analyze.c:3169 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s არასწორია" -#: parser/analyze.c:2939 +#: parser/analyze.c:3172 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "დამოუკიდებელი კურსორები READ ONLY ტიპის უნდა იყოს." -#: parser/analyze.c:3033 +#: parser/analyze.c:3266 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "მატერიალიზებულმა ხედებმა WITH-ში მონაცემების-შემცვლელი გამოსახულებები არ უნდა გამოიყენონ" -#: parser/analyze.c:3043 +#: parser/analyze.c:3276 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "მატერიალიზებულმა ხედებმა დროებითი ცხრილები ან ხედები არ უნდა გამოიყენონ" -#: parser/analyze.c:3053 +#: parser/analyze.c:3286 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "მატერიალიზებული ხედის აღწერა მიმაგრებული პარამეტრების გამოყენებით შეუძლებელია" -#: parser/analyze.c:3065 +#: parser/analyze.c:3298 #, c-format msgid "materialized views cannot be unlogged" msgstr "მატერიალიზებული ხედების ჟურნალის გამორთვა შეუძლებელია" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3254 +#: parser/analyze.c:3487 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s-ი DISTINCT პირობასთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3261 +#: parser/analyze.c:3494 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s-ი GROUP BY პირობასთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3268 +#: parser/analyze.c:3501 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s-ი HAVING პირობასთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3275 +#: parser/analyze.c:3508 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s აგრეგატულ ფუნქციებთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3282 +#: parser/analyze.c:3515 #, c-format msgid "%s is not allowed with window functions" msgstr "%s ფანჯრულ ფუნქციებთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3289 +#: parser/analyze.c:3522 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s სამიზნეების სიაში სეტების-დამბრუნებელ ფუნქციებთან ერთად დაშვებული არაა" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3388 +#: parser/analyze.c:3621 #, c-format msgid "%s must specify unqualified relation names" msgstr "" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3452 +#: parser/analyze.c:3685 #, c-format msgid "%s cannot be applied to a join" msgstr "%s join-ზე ვერ გადატარდება" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3461 +#: parser/analyze.c:3694 #, 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:3470 +#: parser/analyze.c:3703 #, 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:3488 +#: parser/analyze.c:3721 #, 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:3497 +#: parser/analyze.c:3730 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3517 +#: parser/analyze.c:3750 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "" -#: parser/parse_agg.c:210 parser/parse_oper.c:215 +#: parser/parse_agg.c:215 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "ტიპისთვის %s დალაგების ოპერატორის იდენტიფიკაცია შეუძლებელია" -#: parser/parse_agg.c:212 +#: parser/parse_agg.c:217 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "DISTINCT-ის მქონე აგრეგატებს შეყვანილი ინფორმაციის დალაგება თვითონ უნდა შეეძლოთ." -#: parser/parse_agg.c:270 +#: parser/parse_agg.c:275 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING-ის არგუმენტების რიცხვი 32-ზე ნაკლები უნდა იყოს" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:378 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "აგრეგატულ ფუნქციებს JOIN-ის პირობებში ვერ გამოიყენებთ" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:380 msgid "grouping operations are not allowed in JOIN conditions" msgstr "დაჯგუფების ოპერაციებს JOIN-ის პირობებში ვერ გამოიყენებთ" -#: parser/parse_agg.c:387 +#: parser/parse_agg.c:390 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "აგრეგატული ფუნქციები მათი საკუთარი მოთხოვნის დონის FROM პირობაში დაშვებული არაა" -#: parser/parse_agg.c:389 +#: parser/parse_agg.c:392 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "დაჯგუფების ფუნქციები მათი საკუთარი მოთხოვნის დონის FROM პირობაში დაშვებული არაა" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:397 msgid "aggregate functions are not allowed in functions in FROM" msgstr "აგრეგატულ ფუნქციებს FROM-ში ვერ გამოიყენებთ" -#: parser/parse_agg.c:396 +#: parser/parse_agg.c:399 msgid "grouping operations are not allowed in functions in FROM" msgstr "დაჯგუფების ოპერაციებს FROM-ში ვერ გამოიყენებთ" -#: parser/parse_agg.c:404 +#: parser/parse_agg.c:407 msgid "aggregate functions are not allowed in policy expressions" msgstr "წესის გამოსახულებებში აგრეგატული ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:406 +#: parser/parse_agg.c:409 msgid "grouping operations are not allowed in policy expressions" msgstr "წესის გამოსახულებებში დაჯგუფების ოპერაციები დაუშვებელია" -#: parser/parse_agg.c:423 +#: parser/parse_agg.c:426 msgid "aggregate functions are not allowed in window RANGE" msgstr "ფანჯრის RANGE-ში აგრეგატული ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:428 msgid "grouping operations are not allowed in window RANGE" msgstr "ფანჯრის RANGE-ში დაჯგუფების ოპერაციები დაუშვებელია" -#: parser/parse_agg.c:430 +#: parser/parse_agg.c:433 msgid "aggregate functions are not allowed in window ROWS" msgstr "ფანჯრის ROWS-ში აგრეგატული ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:432 +#: parser/parse_agg.c:435 msgid "grouping operations are not allowed in window ROWS" msgstr "ფანჯრის ROWS_ში დაჯგუფების ოპერაციები დაუშვებელია" -#: parser/parse_agg.c:437 +#: parser/parse_agg.c:440 msgid "aggregate functions are not allowed in window GROUPS" msgstr "აგრეგატული ფუნქციები ფანჯრის GROUPS-ში დაშვებული არაა" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:442 msgid "grouping operations are not allowed in window GROUPS" msgstr "დაჯგუფების ფუნქციები ფანჯრის GROUPS-ში დაშვებული არაა" -#: parser/parse_agg.c:452 +#: parser/parse_agg.c:455 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "აგრეგატული ფუნქციები MERGE WHEN-ის პირობებში დაშვებული არაა" -#: parser/parse_agg.c:454 +#: parser/parse_agg.c:457 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "დაჯგუფების ფუნქციები MERGE WHEN-ის პირობებში დაშვებული არაა" -#: parser/parse_agg.c:481 +#: parser/parse_agg.c:484 msgid "aggregate functions are not allowed in check constraints" msgstr "აგრეგატული ფუნქციები შეზღუდვის შემოწმებებში დაშვებული არაა" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:486 msgid "grouping operations are not allowed in check constraints" msgstr "დაჯგუფების ფუნქციები შეზღუდვის შემოწმებებში დაშვებული არაა" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:493 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "აგრეგატული ფუნქციები DEFAULT გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:495 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "დაჯგუფების ფუნქციები DEFAULT გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:500 msgid "aggregate functions are not allowed in index expressions" msgstr "აგრეგატული ფუნქციები ინდექსის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:502 msgid "grouping operations are not allowed in index expressions" msgstr "დაჯგუფების ფუნქციები ინდექსის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:507 msgid "aggregate functions are not allowed in index predicates" msgstr "აგრეგატული ფუნქციები ინდექსის პრედიკატებში დაშვებული არაა" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:509 msgid "grouping operations are not allowed in index predicates" msgstr "დაშვებული ფუნქციები ინდექსის პრედიკატებში დაშვებული არაა" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:514 msgid "aggregate functions are not allowed in statistics expressions" msgstr "აგრეგატული ფუნქციები სტატისტიკის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:516 msgid "grouping operations are not allowed in statistics expressions" msgstr "დაჯგუფების ფუნქციები სტატისტიკის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:521 msgid "aggregate functions are not allowed in transform expressions" msgstr "აგრეგატული ფუნქციები გადაყვანის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:523 msgid "grouping operations are not allowed in transform expressions" msgstr "დაჯგუფების ფუნქციები გადაყვანის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:528 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "აგრეგატული ფუნქციები EXECUTE-ის პარამეტრებში დაშვებული არაა" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:530 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "დაჯგუფების ფუნქციები EXECUTE-ის პარამეტრებში დაშვებული არაა" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:535 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "აგრეგატული ფუნქციები WHEN-ის ტრიგერის პირობებში დაშვებული არაა" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:537 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "დაჯგუფების ფუნქციები WHEN-ის ტრიგერის პირობებში დაშვებული არაა" -#: parser/parse_agg.c:539 +#: parser/parse_agg.c:542 msgid "aggregate functions are not allowed in partition bound" msgstr "აგრეგატული ფუნქციები დანაყოფის საზღვარში დაშვებული არაა" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:544 msgid "grouping operations are not allowed in partition bound" msgstr "დაჯგუფების ფუნქციები დანაყოფის საზღვარში დაშვებული არაა" -#: parser/parse_agg.c:546 +#: parser/parse_agg.c:549 msgid "aggregate functions are not allowed in partition key expressions" msgstr "აგრეგატული ფუნქციები დანაყოფის გასაღების გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:551 msgid "grouping operations are not allowed in partition key expressions" msgstr "დაჯგუფების ფუნქციები დანაყოფის გასაღების გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:554 +#: parser/parse_agg.c:557 msgid "aggregate functions are not allowed in column generation expressions" msgstr "აგრეგატული ფუნქციები სვეტის გენერაციის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:559 msgid "grouping operations are not allowed in column generation expressions" msgstr "დაჯგუფების ფუნქციები სვეტის გენერაციის გამოსახულებებში დაშვებული არაა" -#: parser/parse_agg.c:562 +#: parser/parse_agg.c:565 msgid "aggregate functions are not allowed in CALL arguments" msgstr "აგრეგატული ფუნქციები CALL-ის არგუმენტებში დაშვებული არაა" -#: parser/parse_agg.c:564 +#: parser/parse_agg.c:567 msgid "grouping operations are not allowed in CALL arguments" msgstr "დაჯგუფების ფუნქციები CALL-ის არგუმენტებში დაშვებული არაა" -#: parser/parse_agg.c:570 +#: parser/parse_agg.c:573 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "აგრეგატული ფუნქციები COPY FROM WHERE პირობებში დაშვებული არაა" -#: parser/parse_agg.c:572 +#: parser/parse_agg.c:575 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "დაჯგუფების ფუნქციები COPY FROM WHERE პირობებში დაშვებული არაა" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:599 parser/parse_clause.c:1962 +#: parser/parse_agg.c:602 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "აგრეგატული ფუნქციები %s-ში დაშვებული არაა" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:602 +#: parser/parse_agg.c:605 #, c-format msgid "grouping operations are not allowed in %s" msgstr "დაჯგუფების ფუნქციები %s-ში დაშვებული არაა" -#: parser/parse_agg.c:703 +#: parser/parse_agg.c:706 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "" -#: parser/parse_agg.c:781 +#: parser/parse_agg.c:784 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "აგრეგატული ფუნქციის გამოძახებები არ შეძლება, სეტების დამბრუნებელი ფუნქციის გამოძახებებს შეიცავდეს" -#: parser/parse_agg.c:782 parser/parse_expr.c:1762 parser/parse_expr.c:2245 parser/parse_func.c:885 +#: parser/parse_agg.c:785 parser/parse_expr.c:1760 parser/parse_expr.c:2251 parser/parse_func.c:885 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "" -#: parser/parse_agg.c:787 +#: parser/parse_agg.c:790 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "აგრეგატული ფუნქციის გამოძახებები არ შეიძლება, ფანჯრის ფუნქციის გამოძახებებს შეიცავდეს" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:869 msgid "window functions are not allowed in JOIN conditions" msgstr "\"JOIN\"-ის პირობებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:873 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in functions in FROM" msgstr "\"FROM\"-ის ფუნქციებში ფანჯრების ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:882 msgid "window functions are not allowed in policy expressions" msgstr "წესების გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:892 +#: parser/parse_agg.c:895 msgid "window functions are not allowed in window definitions" msgstr "ფანჯრის აღწერებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:903 +#: parser/parse_agg.c:906 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "\"MERGE WHEN\" პირობებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:928 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in check constraints" msgstr "შეზღუდვის შემოწმებაში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:935 msgid "window functions are not allowed in DEFAULT expressions" msgstr "ნაგულისხმევ გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:938 msgid "window functions are not allowed in index expressions" msgstr "ინდექსის გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:941 msgid "window functions are not allowed in statistics expressions" msgstr "სტატისტიკის გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:944 msgid "window functions are not allowed in index predicates" msgstr "ინდექსის პრედიკატებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:947 msgid "window functions are not allowed in transform expressions" msgstr "გადაყვანის გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:950 msgid "window functions are not allowed in EXECUTE parameters" msgstr "\"EXECUTE\"-ის პარამეტრებში ფანჯრის ფუნქციები დაუშვებელია\"" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:953 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "\"WHEN\"-ის პირობების ტრიგერში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:956 msgid "window functions are not allowed in partition bound" msgstr "დანაყოფის საზღვარში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:959 msgid "window functions are not allowed in partition key expressions" msgstr "დანაყოფის გასაღების გამოსახულებებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:962 msgid "window functions are not allowed in CALL arguments" msgstr "\"CALL\"-ის არგუმენტებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:962 +#: parser/parse_agg.c:965 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "\"COPY FROM WHERE\"-ის პირობებში ფანჯრის ფუნქციები დაუშვებელია" -#: parser/parse_agg.c:965 +#: parser/parse_agg.c:968 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:988 parser/parse_clause.c:1971 +#: parser/parse_agg.c:991 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "ფანჯრის ფუნქციები არ არის დაშვებული %s-ში" -#: parser/parse_agg.c:1022 parser/parse_clause.c:2804 +#: parser/parse_agg.c:1025 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "ფანჯარა \"%s\" არ არსებობს" -#: parser/parse_agg.c:1110 +#: parser/parse_agg.c:1115 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "ძალიან ბევრი დაჯგუფების ნაკრებია (მაქსიმუმ 4096)" -#: parser/parse_agg.c:1250 +#: parser/parse_agg.c:1276 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "" -#: parser/parse_agg.c:1443 +#: parser/parse_agg.c:1499 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "" -#: parser/parse_agg.c:1446 +#: parser/parse_agg.c:1502 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "" -#: parser/parse_agg.c:1451 +#: parser/parse_agg.c:1507 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "ქვემოთხოვნა outer მოთხოვნიდან დაუჯგუფებელ სვეტს \"%s.%s\" იყენებს" -#: parser/parse_agg.c:1615 +#: parser/parse_agg.c:1672 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "" -#: parser/parse_clause.c:193 +#: parser/parse_clause.c:191 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "ურთიერთობა \"%s\" არ შეიძლება, შემცვლელი გამოსახულების სამიზნეს წარმოადგენდეს" -#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 +#: parser/parse_clause.c:567 parser/parse_clause.c:595 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "სეტების დამბრუნებელი ფუნქციები FROM-ის ზედა დონეზე უნდა გამოჩნდნენ" -#: parser/parse_clause.c:609 +#: parser/parse_clause.c:607 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "იგივე ფუნქციისთვის ერთზე მეტი სვეტის აღწერის სიები დაშვებული არაა" -#: parser/parse_clause.c:642 +#: parser/parse_clause.c:640 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "ერთზე მეტი ფუნქციის მქონე ROW FROM ()-ს არ შეიძლება, სვეტის აღწერების სია ჰქონდეს" -#: parser/parse_clause.c:643 +#: parser/parse_clause.c:641 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "" -#: parser/parse_clause.c:649 +#: parser/parse_clause.c:647 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "" -#: parser/parse_clause.c:650 +#: parser/parse_clause.c:648 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "" -#: parser/parse_clause.c:657 +#: parser/parse_clause.c:655 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY სვეტების აღწერის სიასთან ერთად არ უნდა გამოიყენოთ" -#: parser/parse_clause.c:658 +#: parser/parse_clause.c:656 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "სვეტის აღწერის სია ROWS FROM()-ის შიგნით გადაიტანეთ." -#: parser/parse_clause.c:762 +#: parser/parse_clause.c:760 parser/parse_jsontable.c:293 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "დაშვებულია მხოლოდ FOR ORDINALITY სვეტი" -#: parser/parse_clause.c:823 +#: parser/parse_clause.c:821 #, c-format msgid "column name \"%s\" is not unique" msgstr "სვეტის სახელი \"%s\" არ არის უნიკალური" -#: parser/parse_clause.c:865 +#: parser/parse_clause.c:863 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "სახელების სივრცის სახელი \"%s\" უნიკალური არაა" -#: parser/parse_clause.c:875 +#: parser/parse_clause.c:873 #, c-format msgid "only one default namespace is allowed" msgstr "დასაშვებია მხოლოდ ერთი ნაგულისხმევი სახელის სივრცე" -#: parser/parse_clause.c:935 +#: parser/parse_clause.c:933 #, c-format msgid "tablesample method %s does not exist" msgstr "" -#: parser/parse_clause.c:957 +#: parser/parse_clause.c:955 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" msgstr[0] "" msgstr[1] "" -#: parser/parse_clause.c:991 +#: parser/parse_clause.c:989 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "" -#: parser/parse_clause.c:1144 +#: parser/parse_clause.c:1142 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "" -#: parser/parse_clause.c:1331 +#: parser/parse_clause.c:1329 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "პირობაში USIN სვეტის სახელი \"%s\" ერთზე მეტჯერ გამოჩნდა" -#: parser/parse_clause.c:1346 +#: parser/parse_clause.c:1344 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "საერთო სვეტის სახელი \"%s\" ერთხელ, მარცხენა ცხრილში გამოჩნდა" -#: parser/parse_clause.c:1355 +#: parser/parse_clause.c:1353 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "სვეტი \"%s\", რომელიც USING პირობაშია მითითებული, მარცხენა ცხრილში არ არსებობს" -#: parser/parse_clause.c:1370 +#: parser/parse_clause.c:1368 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "საერთო სვეტის სახელი \"%s\" ერთხელ, მარჯვენა ცხრილში გამოჩნდა" -#: parser/parse_clause.c:1379 +#: parser/parse_clause.c:1377 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "სვეტი \"%s\", რომელიც USING პირობაშია მითითებული, მარჯვენა ცხრილში არ არსებობს" @@ -17188,173 +17661,173 @@ msgstr "ოპერატორი %s სწორი დამლაგებ msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "" -#: parser/parse_clause.c:3775 +#: parser/parse_clause.c:3778 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "" -#: parser/parse_clause.c:3781 +#: parser/parse_clause.c:3784 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "" -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3787 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "წანაცვლების მნიშვნელობის დამაკმაყოფილებელ ტიპში დაკასტვა." -#: parser/parse_clause.c:3789 +#: parser/parse_clause.c:3792 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "" -#: parser/parse_clause.c:3792 +#: parser/parse_clause.c:3795 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "წანაცვლების მნიშვნელობის ზუსტად განსაზღვრულ ტიპში დაკასტვა." -#: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3403 parser/parse_expr.c:3624 parser/parse_expr.c:4388 parser/parse_target.c:998 +#: parser/parse_coerce.c:1048 parser/parse_coerce.c:1086 parser/parse_coerce.c:1104 parser/parse_coerce.c:1119 parser/parse_expr.c:2152 parser/parse_expr.c:2770 parser/parse_expr.c:3421 parser/parse_expr.c:3650 parser/parse_target.c:1001 #, c-format msgid "cannot cast type %s to %s" msgstr "%s ტიპის %s-ში გადაყვანა შეუძლებელია" -#: parser/parse_coerce.c:1091 +#: parser/parse_coerce.c:1089 #, c-format msgid "Input has too few columns." msgstr "შეყვანას ძალიან ცოტა სვეტი აქვს." -#: parser/parse_coerce.c:1109 +#: parser/parse_coerce.c:1107 #, c-format msgid "Cannot cast type %s to %s in column %d." msgstr "%3$d სვეტში %1$s ტიპის დაკასტვა ტიპამდე %2$s შეუძლებელია." -#: parser/parse_coerce.c:1124 +#: parser/parse_coerce.c:1122 #, 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:1179 parser/parse_coerce.c:1227 +#: parser/parse_coerce.c:1177 parser/parse_coerce.c:1225 #, 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:1190 parser/parse_coerce.c:1239 +#: parser/parse_coerce.c:1188 parser/parse_coerce.c:1237 #, 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:1383 +#: parser/parse_coerce.c:1418 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "%s-ის ტიპები %s და %s არ შეიძლება, ერთმანეთს ემთხვეოდეს" -#: parser/parse_coerce.c:1499 +#: parser/parse_coerce.c:1534 #, 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:1551 +#: parser/parse_coerce.c:1586 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s-მა ტიპი %s-დან %s-ში ვერ გადაიყვანა" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2189 parser/parse_coerce.c:2209 parser/parse_coerce.c:2229 parser/parse_coerce.c:2250 parser/parse_coerce.c:2305 parser/parse_coerce.c:2339 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "\"%s\"-ად აღწერილი არგუმენტები ყველა ერთნაირი არაა" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 utils/fmgr/funcapi.c:600 +#: parser/parse_coerce.c:2284 parser/parse_coerce.c:2397 utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "\"%s\"-ად აღწერილი არგუმენტი მასივი არაა, მაგრამ მისი ტიპია %s" -#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 utils/fmgr/funcapi.c:614 +#: parser/parse_coerce.c:2317 parser/parse_coerce.c:2467 utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "\"%s\"-ად აღწერილი არგუმენტი დიაპაზონის მაგიერ არის %s" -#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 +#: parser/parse_coerce.c:2351 parser/parse_coerce.c:2431 parser/parse_coerce.c:2564 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "\"%s\"-ად აღწერილი არგუმენტი მრავალდიაპაზონის მაგიერ არის %s" -#: parser/parse_coerce.c:2353 +#: parser/parse_coerce.c:2388 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "\"anyarray\" არგუმენტის ტიპის დადგენა შეუძლებელია" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2414 parser/parse_coerce.c:2445 parser/parse_coerce.c:2484 parser/parse_coerce.c:2550 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "" -#: parser/parse_coerce.c:2474 +#: parser/parse_coerce.c:2509 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "" -#: parser/parse_coerce.c:2488 +#: parser/parse_coerce.c:2523 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "ტიპი, რომელიც anytoarray-ს ემთხვევა, მასივის ტიპისაა: %s" -#: parser/parse_coerce.c:2498 +#: parser/parse_coerce.c:2533 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "ტიპი, რომელიც anytoenum-ს ემთხვევა, ჩამონათვალის ტიპის არაა: %s" -#: parser/parse_coerce.c:2559 +#: parser/parse_coerce.c:2594 #, c-format msgid "arguments of anycompatible family cannot be cast to a common type" msgstr "" -#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2612 parser/parse_coerce.c:2633 parser/parse_coerce.c:2683 parser/parse_coerce.c:2688 parser/parse_coerce.c:2752 parser/parse_coerce.c:2764 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "" -#: parser/parse_coerce.c:2587 +#: parser/parse_coerce.c:2622 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "" -#: parser/parse_coerce.c:2608 +#: parser/parse_coerce.c:2643 #, c-format msgid "anycompatiblemultirange type %s does not match anycompatible type %s" msgstr "" -#: parser/parse_coerce.c:2622 +#: parser/parse_coerce.c:2657 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "" -#: parser/parse_coerce.c:2857 +#: parser/parse_coerce.c:2892 #, c-format msgid "A result of type %s requires at least one input of type anyrange or anymultirange." msgstr "" -#: parser/parse_coerce.c:2874 +#: parser/parse_coerce.c:2909 #, c-format msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange." msgstr "" -#: parser/parse_coerce.c:2886 +#: parser/parse_coerce.c:2921 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange." msgstr "" -#: parser/parse_coerce.c:2898 +#: parser/parse_coerce.c:2933 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange." msgstr "" -#: parser/parse_coerce.c:2928 +#: parser/parse_coerce.c:2963 msgid "A result of type internal requires at least one input of type internal." msgstr "" @@ -17398,488 +17871,545 @@ msgstr "" msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "" -#: parser/parse_cte.c:136 +#: parser/parse_cte.c:137 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "WITH მოთხოვნის სახელი \"%s\" ერთზე მეტჯერაა მითითებული" -#: parser/parse_cte.c:308 +#: parser/parse_cte.c:309 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "" -#: parser/parse_cte.c:335 +#: parser/parse_cte.c:336 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "WITH პირობის შემცველი მონაცემების-შემცვლელი გამოსახულება უმაღლეს დონეზე უნდა იიყოს" -#: parser/parse_cte.c:384 +#: parser/parse_cte.c:385 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:391 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "" -#: parser/parse_cte.c:395 +#: parser/parse_cte.c:396 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "" -#: parser/parse_cte.c:399 +#: parser/parse_cte.c:400 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "" -#: parser/parse_cte.c:420 +#: parser/parse_cte.c:421 #, c-format msgid "WITH query is not recursive" msgstr "WITH მოთხოვნა რეკურსიული არაა" -#: parser/parse_cte.c:451 +#: parser/parse_cte.c:452 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "" -#: parser/parse_cte.c:456 +#: parser/parse_cte.c:457 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "" -#: parser/parse_cte.c:471 +#: parser/parse_cte.c:472 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "ძებნის სვეტი \"%s\" WITH მოთხოვნის სვეტების სიაში არაა" -#: parser/parse_cte.c:478 +#: parser/parse_cte.c:479 #, c-format msgid "search column \"%s\" specified more than once" msgstr "ძებნის სვეტი \"%s\" ერთზე მეტჯერაა მითითებული" -#: parser/parse_cte.c:487 +#: parser/parse_cte.c:488 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "" -#: parser/parse_cte.c:504 +#: parser/parse_cte.c:505 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "ციკლის სვეტი \"%s\" WITH მოთხოვნის სვეტების სიაში არაა" -#: parser/parse_cte.c:511 +#: parser/parse_cte.c:512 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "ციკლის სვეტი \"%s\" ერთზემეტჯერაა მითითებული" -#: parser/parse_cte.c:520 +#: parser/parse_cte.c:521 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "" -#: parser/parse_cte.c:527 +#: parser/parse_cte.c:528 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "" -#: parser/parse_cte.c:535 +#: parser/parse_cte.c:536 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "" -#: parser/parse_cte.c:545 +#: parser/parse_cte.c:546 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "" -#: parser/parse_cte.c:552 +#: parser/parse_cte.c:553 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "" -#: parser/parse_cte.c:636 +#: parser/parse_cte.c:637 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "" -#: parser/parse_cte.c:816 +#: parser/parse_cte.c:882 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "\"WITH\"-ის ჩანაწერებს შორის ურთიერთრეკურსია მხარდაჭერილი არაა" -#: parser/parse_cte.c:868 +#: parser/parse_cte.c:934 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "" -#: parser/parse_cte.c:876 +#: parser/parse_cte.c:942 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "" -#: parser/parse_cte.c:920 +#: parser/parse_cte.c:977 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "რეკურსიულ მოთხოვნაში ORDER BY განხორციელებული არაა" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:983 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "რეკურსიულ მოთხოვნაში OFFSET განხორციელებული არაა" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:989 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "რეკურსიულ მოთხოვნაში LIMIT განხორციელებული არაა" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:995 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "რეკურსიულ მოთხოვნაში FOR UPDATE/SHARE განხორციელებული არაა" -#: parser/parse_cte.c:995 +#: parser/parse_cte.c:1074 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "" -#: parser/parse_expr.c:314 +#: parser/parse_expr.c:311 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "ამ კონტექსტში ნაგულისხმევს ვერ გამოიყენებთ" -#: parser/parse_expr.c:407 parser/parse_relation.c:3691 parser/parse_relation.c:3701 parser/parse_relation.c:3719 parser/parse_relation.c:3726 parser/parse_relation.c:3740 +#: parser/parse_expr.c:404 parser/parse_relation.c:3797 parser/parse_relation.c:3807 parser/parse_relation.c:3825 parser/parse_relation.c:3832 parser/parse_relation.c:3846 #, c-format msgid "column %s.%s does not exist" msgstr "სვეტი %s.%s არ არსებობს" -#: parser/parse_expr.c:419 +#: parser/parse_expr.c:416 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "სვეტი \"%s\" მონაცემის ტიპში %s აღმოჩენილი არაა" -#: parser/parse_expr.c:425 +#: parser/parse_expr.c:422 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "ჩანაწერის მონაცემის ტიპში სვეტის \"%s\" იდენტიფიკაცია შეუძლებელია" -#: parser/parse_expr.c:431 +#: parser/parse_expr.c:428 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "" -#: parser/parse_expr.c:462 parser/parse_target.c:732 +#: parser/parse_expr.c:459 parser/parse_target.c:735 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "" -#: parser/parse_expr.c:585 +#: parser/parse_expr.c:582 msgid "cannot use column reference in DEFAULT expression" msgstr "" -#: parser/parse_expr.c:588 +#: parser/parse_expr.c:585 msgid "cannot use column reference in partition bound expression" msgstr "" -#: parser/parse_expr.c:847 parser/parse_relation.c:833 parser/parse_relation.c:915 parser/parse_target.c:1238 +#: parser/parse_expr.c:844 parser/parse_relation.c:848 parser/parse_relation.c:930 parser/parse_target.c:1241 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "სვეტის მითითება \"%s\" ორაზროვანია" -#: parser/parse_expr.c:903 parser/parse_param.c:110 parser/parse_param.c:142 parser/parse_param.c:204 parser/parse_param.c:303 +#: parser/parse_expr.c:900 parser/parse_param.c:111 parser/parse_param.c:143 parser/parse_param.c:205 parser/parse_param.c:304 #, c-format msgid "there is no parameter $%d" msgstr "პარამეტრი $%d არ არსებობს" -#: parser/parse_expr.c:1103 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1101 parser/parse_expr.c:3081 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "" +msgid "%s requires = operator to yield boolean" +msgstr "%s-სთვის აუცილებელია = ოპერატორი, რომ ლოგიკური მნიშვნელობა დააბრუნოს" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1109 parser/parse_expr.c:3070 +#: parser/parse_expr.c:1107 parser/parse_expr.c:3088 #, c-format msgid "%s must not return a set" msgstr "%s -მა სეტი არ უნდა დააბრუნოს" -#: parser/parse_expr.c:1395 +#: parser/parse_expr.c:1393 #, c-format msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" msgstr "" -#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 +#: parser/parse_expr.c:1517 parser/parse_expr.c:1549 #, c-format msgid "number of columns does not match number of values" msgstr "" -#: parser/parse_expr.c:1565 +#: parser/parse_expr.c:1563 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 +#: parser/parse_expr.c:1758 parser/parse_expr.c:2249 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "%s-ში სეტის-დამბრუნებელი ფუნქციები დაშვებული არაა" -#: parser/parse_expr.c:1824 +#: parser/parse_expr.c:1822 msgid "cannot use subquery in check constraint" msgstr "შეზღუდვის შემმოწმებელში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1828 +#: parser/parse_expr.c:1826 msgid "cannot use subquery in DEFAULT expression" msgstr "ნაგულისხმევ გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1831 +#: parser/parse_expr.c:1829 msgid "cannot use subquery in index expression" msgstr "ინდექსის გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1834 +#: parser/parse_expr.c:1832 msgid "cannot use subquery in index predicate" msgstr "ინდექსის პრედიკატში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1837 +#: parser/parse_expr.c:1835 msgid "cannot use subquery in statistics expression" msgstr "სტატისტიკის გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1840 +#: parser/parse_expr.c:1838 msgid "cannot use subquery in transform expression" msgstr "გარდაქმნის გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1843 +#: parser/parse_expr.c:1841 msgid "cannot use subquery in EXECUTE parameter" msgstr "პარამეტრში \"EXECUTE\" ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1846 +#: parser/parse_expr.c:1844 msgid "cannot use subquery in trigger WHEN condition" msgstr "\"WHEN\" პირობის ტრიგერში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1849 +#: parser/parse_expr.c:1847 msgid "cannot use subquery in partition bound" msgstr "დანაყოფის საზღვარში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1852 +#: parser/parse_expr.c:1850 msgid "cannot use subquery in partition key expression" msgstr "დანაყოფის გასაღების გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1855 +#: parser/parse_expr.c:1853 msgid "cannot use subquery in CALL argument" msgstr "\"CALL\"-ის არგუმენტში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1858 +#: parser/parse_expr.c:1856 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "\"COPY FROM WHERE\" პირობაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1861 +#: parser/parse_expr.c:1859 msgid "cannot use subquery in column generation expression" msgstr "სვეტების გენერაციის გამოსახულებაში ქვემოთხოვნას ვერ გამოიყენებთ" -#: parser/parse_expr.c:1914 parser/parse_expr.c:3756 +#: parser/parse_expr.c:1912 parser/parse_expr.c:3780 #, c-format msgid "subquery must return only one column" msgstr "ქვემოთხოვნამ მხოლოდ ერთი სვეტი უნდა დააბრუნოს" -#: parser/parse_expr.c:1985 +#: parser/parse_expr.c:1983 #, c-format msgid "subquery has too many columns" msgstr "ქვემოთხოვნას ძალიან ბევრი სვეტი აქვს" -#: parser/parse_expr.c:1990 +#: parser/parse_expr.c:1988 #, c-format msgid "subquery has too few columns" msgstr "ქვემოთხოვნას ძალიან ცოტა სვეტი აქვს" -#: parser/parse_expr.c:2086 +#: parser/parse_expr.c:2092 #, c-format msgid "cannot determine type of empty array" msgstr "ცარიელი მასივის ტიპის დადგენა შეუძლებელია" -#: parser/parse_expr.c:2087 +#: parser/parse_expr.c:2093 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "" -#: parser/parse_expr.c:2101 +#: parser/parse_expr.c:2107 #, c-format msgid "could not find element type for data type %s" msgstr "" -#: parser/parse_expr.c:2184 +#: parser/parse_expr.c:2190 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW გამოსახულებებს მაქსიმუმ %d ელემენტი შეიძლება ჰქონდეს" -#: parser/parse_expr.c:2389 +#: parser/parse_expr.c:2395 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "უსახელო XML ატრიბუტის მნიშვნელობა სვეტის მიმართვას უნდა წარმოადგენდეს" -#: parser/parse_expr.c:2390 +#: parser/parse_expr.c:2396 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "უსახელო XML ელემენტის მნიშვნელობა სვეტის მიმართვას უნდა წარმოადგენდეს" -#: parser/parse_expr.c:2405 +#: parser/parse_expr.c:2411 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "XML ატრიბუტის სახელი \"%s\" ერთზე მეტჯერ გამოჩნდა" -#: parser/parse_expr.c:2513 +#: parser/parse_expr.c:2519 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "'XMLSERIALIZE'-ის შედეგის %s-ში დაკასტვა შეუძლებელია" -#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 +#: parser/parse_expr.c:2843 parser/parse_expr.c:3039 #, c-format msgid "unequal number of entries in row expressions" msgstr "მწკრივის გამოსახულებებში ჩანაწერების რაოდენობა ტოლი არაა" -#: parser/parse_expr.c:2837 +#: parser/parse_expr.c:2853 #, c-format msgid "cannot compare rows of zero length" msgstr "ნულოვანი სიგრძის მწკრივების შედარება შეუძლებელია" -#: parser/parse_expr.c:2862 +#: parser/parse_expr.c:2878 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "მწკრივის შედარების ოპერატორმა ლოგიკური მნიშვნელობა უნდა დააბრუნოს და არა ტიპი %s" -#: parser/parse_expr.c:2869 +#: parser/parse_expr.c:2885 #, c-format msgid "row comparison operator must not return a set" msgstr "მწკრივის შედარების ოპერატორმა სეტი არ უნდა დააბრუნოს" -#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 +#: parser/parse_expr.c:2944 parser/parse_expr.c:2985 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "მწკრივის შედარების ოპერატორის %s ინტერპრეტაციის დადგენა შეუძლებელია" -#: parser/parse_expr.c:2930 +#: parser/parse_expr.c:2946 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "მწკრივის შედარების ოპერატორები ბინარული ხის ოპერატორის ოჯახებთან უნდა იყოს ასოცირებული." -#: parser/parse_expr.c:2971 +#: parser/parse_expr.c:2987 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "" -#: parser/parse_expr.c:3064 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "IS DISTINCT FROM-ს სჭირდება, რომ ოპერატორი '=' ლოგიკურ მნიშვნელობას აბრუნებდეს" - -#: parser/parse_expr.c:3304 +#: parser/parse_expr.c:3322 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "" -#: parser/parse_expr.c:3368 +#: parser/parse_expr.c:3386 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "" -#: parser/parse_expr.c:3369 +#: parser/parse_expr.c:3387 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "" -#: parser/parse_expr.c:3458 +#: parser/parse_expr.c:3476 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "'JSON' ფორმატის არა-სტრიქონის გამოტანის ტიპებთან ერთად გამოყენება შეუძლებელია" -#: parser/parse_expr.c:3471 +#: parser/parse_expr.c:3489 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "" -#: parser/parse_expr.c:3476 +#: parser/parse_expr.c:3494 #, c-format msgid "unsupported JSON encoding" msgstr "\"JSON\"-ის არასწორი კოდირება" -#: parser/parse_expr.c:3477 +#: parser/parse_expr.c:3495 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "მხარდაჭერილია მხოლოდ UTF8 JSON კოდირება." -#: parser/parse_expr.c:3514 +#: parser/parse_expr.c:3532 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "" -#: parser/parse_expr.c:3519 +#: parser/parse_expr.c:3537 #, c-format msgid "returning pseudo-types is not supported in SQL/JSON functions" msgstr "ფსევდოტიპების დაბრუნება SQL/JSON ფუნქციებში მხარდაჭერილი არაა" -#: parser/parse_expr.c:3841 parser/parse_func.c:866 +#: parser/parse_expr.c:3865 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "ფანჯრის ფუნქციებისთვის აგრეგატული ORDER BY განხორციელებული არაა" -#: parser/parse_expr.c:4063 +#: parser/parse_expr.c:4088 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "" -#: parser/parse_expr.c:4083 +#: parser/parse_expr.c:4108 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "%s ტიპის IS JSON პრედიკატში გამოყენება შეუძლებელია" -#: parser/parse_expr.c:4109 parser/parse_expr.c:4229 +#: parser/parse_expr.c:4134 parser/parse_expr.c:4255 +#, c-format +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "%s ტიპის გამოყენება %s-ის RETURNING პირობაში შეუძლებელია" + +#: parser/parse_expr.c:4136 #, c-format -msgid "cannot use RETURNING type %s in %s" -msgstr "'RETURNING'-ის ტიპს '%s' %s-ში ვერ გამოიყენებთ" +msgid "Try returning json or jsonb." +msgstr "" -#: parser/parse_expr.c:4158 +#: parser/parse_expr.c:4184 #, c-format msgid "cannot use non-string types with WITH UNIQUE KEYS clause" msgstr "" -#: parser/parse_expr.c:4232 +#: parser/parse_expr.c:4258 #, c-format msgid "Try returning a string type or bytea." msgstr "" -#: parser/parse_expr.c:4297 +#: parser/parse_expr.c:4323 #, c-format msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" msgstr "" -#: parser/parse_expr.c:4309 +#: parser/parse_expr.c:4336 #, c-format msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" msgstr "" -#: parser/parse_expr.c:4336 +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4350 parser/parse_expr.c:4379 parser/parse_expr.c:4410 parser/parse_expr.c:4436 parser/parse_expr.c:4462 parser/parse_jsontable.c:92 +#, c-format +msgid "invalid %s behavior" +msgstr "%s-ის არასწორი ქცევა" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4353 parser/parse_expr.c:4382 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s." +msgstr "" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4360 parser/parse_expr.c:4389 parser/parse_expr.c:4418 parser/parse_expr.c:4446 parser/parse_expr.c:4472 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "%s-ის არასწორი ქცევა სვეტისთვის \"%s\"" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4363 parser/parse_expr.c:4392 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns." +msgstr "" + +#: parser/parse_expr.c:4411 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4421 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4439 parser/parse_expr.c:4465 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4449 parser/parse_expr.c:4475 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "" + +#: parser/parse_expr.c:4505 #, c-format msgid "JSON path expression must be of type %s, not of type %s" msgstr "JSON ბილიკის გამოსახულების ტიპი %s უნდა იყოს და არა %s" -#: parser/parse_expr.c:4677 +#: parser/parse_expr.c:4723 #, c-format msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT" msgstr "" -#: parser/parse_expr.c:4682 +#: parser/parse_expr.c:4728 #, c-format msgid "DEFAULT expression must not contain column references" msgstr "DEFAULT გამოსახულება სვეტზე მიმართვებს არ უნდა შეიცავდეს" -#: parser/parse_expr.c:4687 +#: parser/parse_expr.c:4733 #, c-format msgid "DEFAULT expression must not return a set" msgstr "DEFAULT გამოსახულებამ სეტი არ უნდა დააბრუნოს" -#: parser/parse_expr.c:4721 +#: parser/parse_expr.c:4809 parser/parse_expr.c:4818 #, c-format msgid "cannot cast behavior expression of type %s to %s" msgstr "%s ქცევის გამოსახულების ტიპის %s-ში გადაყვანა შეუძლებელია" +#: parser/parse_expr.c:4812 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "დაგჭირდებათ გამოსახულების აშკარად გადაყვანა ტიპში %s." + #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -18214,26 +18744,16 @@ msgstr "სეტების დამბრუნებელი ფუნქ msgid "set-returning functions are not allowed in column generation expressions" msgstr "სეტების დამბრუნებელი ფუნქციების სვეტების გენერაციის გამოსახულებებში გამოყენება აკრძალულია" -#: parser/parse_jsontable.c:94 -#, c-format -msgid "invalid ON ERROR behavior" -msgstr "\"ON UPDATE\"-ის არასწორი ქცევა" - -#: parser/parse_jsontable.c:95 +#: parser/parse_jsontable.c:93 #, c-format -msgid "Only EMPTY or ERROR is allowed in the top-level ON ERROR clause." +msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." msgstr "" -#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#: parser/parse_jsontable.c:187 parser/parse_jsontable.c:201 #, c-format msgid "duplicate JSON_TABLE column or path name: %s" msgstr "დუბლირებული JSON_TABLE სვეტის ან ბილიკის სახელი: %s" -#: parser/parse_jsontable.c:295 -#, c-format -msgid "cannot use more than one FOR ORDINALITY column" -msgstr "ერთზე მეტ FOR ORDINALITY სვეტს ვერ გამოიყენებთ" - #: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" @@ -18309,227 +18829,222 @@ msgstr "" msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "" -#: parser/parse_param.c:221 +#: parser/parse_param.c:222 #, c-format msgid "inconsistent types deduced for parameter $%d" msgstr "" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:310 tcop/postgres.c:734 #, c-format msgid "could not determine data type of parameter $%d" msgstr "პარამეტრისთვის $%d მონაცემის ტიპის განსაზღვრა შეუძლებელია" -#: parser/parse_relation.c:221 +#: parser/parse_relation.c:226 #, c-format msgid "table reference \"%s\" is ambiguous" msgstr "" -#: parser/parse_relation.c:265 +#: parser/parse_relation.c:273 #, c-format msgid "table reference %u is ambiguous" msgstr "" -#: parser/parse_relation.c:465 -#, c-format -msgid "table name \"%s\" specified more than once" -msgstr "" - -#: parser/parse_relation.c:494 parser/parse_relation.c:3633 parser/parse_relation.c:3642 +#: parser/parse_relation.c:502 parser/parse_relation.c:3739 parser/parse_relation.c:3748 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "" -#: parser/parse_relation.c:498 parser/parse_relation.c:3644 +#: parser/parse_relation.c:506 parser/parse_relation.c:3750 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "" -#: parser/parse_relation.c:500 +#: parser/parse_relation.c:508 #, c-format msgid "The combining JOIN type must be INNER or LEFT for a LATERAL reference." msgstr "" -#: parser/parse_relation.c:703 +#: parser/parse_relation.c:711 #, c-format msgid "system column \"%s\" reference in check constraint is invalid" msgstr "" -#: parser/parse_relation.c:712 +#: parser/parse_relation.c:724 #, c-format msgid "cannot use system column \"%s\" in column generation expression" msgstr "სვეტის გენერაციის გამოსახულებაში სისტემურ სვეტს \"%s\" ვერ გამოიყენებთ" -#: parser/parse_relation.c:723 +#: parser/parse_relation.c:735 #, c-format msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "'MERGE WHEN' პირობაში სისტემურ სვეტს \"%s\" ვერ გამოიყენებთ" -#: parser/parse_relation.c:1236 parser/parse_relation.c:1691 parser/parse_relation.c:2384 +#: parser/parse_relation.c:1251 parser/parse_relation.c:1708 parser/parse_relation.c:2402 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "" -#: parser/parse_relation.c:1445 +#: parser/parse_relation.c:1462 #, c-format msgid "There is a WITH item named \"%s\", but it cannot be referenced from this part of the query." msgstr "" -#: parser/parse_relation.c:1447 +#: parser/parse_relation.c:1464 #, c-format msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "" -#: parser/parse_relation.c:1833 +#: parser/parse_relation.c:1850 #, c-format msgid "a column definition list is redundant for a function with OUT parameters" msgstr "" -#: parser/parse_relation.c:1839 +#: parser/parse_relation.c:1856 #, c-format msgid "a column definition list is redundant for a function returning a named composite type" msgstr "" -#: parser/parse_relation.c:1846 +#: parser/parse_relation.c:1863 #, c-format msgid "a column definition list is only allowed for functions returning \"record\"" msgstr "" -#: parser/parse_relation.c:1857 +#: parser/parse_relation.c:1874 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "" -#: parser/parse_relation.c:1894 +#: parser/parse_relation.c:1911 #, c-format msgid "column definition lists can have at most %d entries" msgstr "სვეტის აღწერის სიებს მაქსიმუმ %d ჩანაწერი შეიძლება ჰქონდეს" -#: parser/parse_relation.c:1954 +#: parser/parse_relation.c:1971 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "" -#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 +#: parser/parse_relation.c:1998 parser/parse_relation.c:2083 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "ფუნქციებს FROM-შ მაქსიმუმ %d სვეტის დაბრუნება შეუძლიათ" -#: parser/parse_relation.c:2096 +#: parser/parse_relation.c:2113 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "ფუნქციას %s %d სვეტი ჰქონდა ხელმისაწვდომი, მითითებული კი %d" -#: parser/parse_relation.c:2177 +#: parser/parse_relation.c:2194 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "" -#: parser/parse_relation.c:2242 +#: parser/parse_relation.c:2259 #, c-format msgid "joins can have at most %d columns" msgstr "შეერთებებს მაქსიმუმ %d სვეტი შეიძლება, ჰქონდეთ" -#: parser/parse_relation.c:2267 +#: parser/parse_relation.c:2284 #, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" msgstr "" -#: parser/parse_relation.c:2357 +#: parser/parse_relation.c:2375 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH მოთხოვნას \"%s\" RETURNING პირობა არ გააჩნია" -#: parser/parse_relation.c:3635 +#: parser/parse_relation.c:3741 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "" -#: parser/parse_relation.c:3647 +#: parser/parse_relation.c:3753 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "" -#: parser/parse_relation.c:3653 +#: parser/parse_relation.c:3759 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "" -#: parser/parse_relation.c:3693 +#: parser/parse_relation.c:3799 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "" -#: parser/parse_relation.c:3695 +#: parser/parse_relation.c:3801 #, c-format msgid "Try using a table-qualified name." msgstr "" -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3809 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "" -#: parser/parse_relation.c:3706 +#: parser/parse_relation.c:3812 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "" -#: parser/parse_relation.c:3708 +#: parser/parse_relation.c:3814 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "" -#: parser/parse_relation.c:3728 +#: parser/parse_relation.c:3834 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "" -#: parser/parse_relation.c:3742 +#: parser/parse_relation.c:3848 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\" or the column \"%s.%s\"." msgstr "" -#: parser/parse_target.c:480 parser/parse_target.c:795 +#: parser/parse_target.c:483 parser/parse_target.c:798 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "სისტემური სვეტზე (%s) მინიჭება შეუძლებელია" -#: parser/parse_target.c:508 +#: parser/parse_target.c:511 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "მასივის ელემენტების DEFAULT-ზე დაყენება შეუძლებელია" -#: parser/parse_target.c:513 +#: parser/parse_target.c:516 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "ქვეველის DEFAULT მნიშვნელობის დაყენების შეცდომა" -#: parser/parse_target.c:587 +#: parser/parse_target.c:590 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "" -#: parser/parse_target.c:779 +#: parser/parse_target.c:782 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "" -#: parser/parse_target.c:788 +#: parser/parse_target.c:791 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "" -#: parser/parse_target.c:877 +#: parser/parse_target.c:880 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "" -#: parser/parse_target.c:887 +#: parser/parse_target.c:890 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "" -#: parser/parse_target.c:1327 +#: parser/parse_target.c:1330 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "" @@ -18549,7 +19064,7 @@ msgstr "" msgid "type reference %s converted to %s" msgstr "ტიპის მიმართვა %s გადაყვანილია %s-ში" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 utils/cache/typcache.c:452 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:478 utils/cache/typcache.c:533 #, c-format msgid "type \"%s\" is only a shell" msgstr "ტიპი \"%s\" მხოლოდ გარსია" @@ -18569,337 +19084,352 @@ msgstr "ტიპის მოდიფიკატორების მარ msgid "invalid type name \"%s\"" msgstr "ტიპის არასწორი სახელი: \"%s\"" -#: parser/parse_utilcmd.c:266 +#: parser/parse_utilcmd.c:265 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "" -#: parser/parse_utilcmd.c:586 +#: parser/parse_utilcmd.c:504 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "დროებითი თანმიმდევრობის სტატუსის დადგენა შეუძლებელია" + +#: parser/parse_utilcmd.c:642 #, c-format msgid "array of serial is not implemented" msgstr "სერიალების მასივი განხორციელებული არაა" -#: parser/parse_utilcmd.c:665 parser/parse_utilcmd.c:677 parser/parse_utilcmd.c:736 +#: parser/parse_utilcmd.c:747 parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:873 parser/parse_utilcmd.c:906 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:689 +#: parser/parse_utilcmd.c:759 parser/parse_utilcmd.c:1077 +#, c-format +msgid "not-null constraints on partitioned tables cannot be NO INHERIT" +msgstr "არანულოვანი შეზღუდვები დაყოფილ ცხრილზე NO INHERIT ვერ იქნება" + +#: parser/parse_utilcmd.c:773 parser/parse_utilcmd.c:808 +#, c-format +msgid "conflicting NO INHERIT declarations for not-null constraints on column \"%s\"" +msgstr "ურთიერთგამომრიცხავი NO INHERIT აღწერები არანულოვანი შეზღუდვებისთვის სვეტზე \"%s\"" + +#: parser/parse_utilcmd.c:821 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:706 +#: parser/parse_utilcmd.c:838 #, c-format msgid "identity columns are not supported on typed tables" msgstr "ტიპიზირებულ ცხრილებზე იდენტიფიკაციის სვეტები მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:710 +#: parser/parse_utilcmd.c:842 #, c-format msgid "identity columns are not supported on partitions" msgstr "დანაყოფებზე იდენტიფიკაციის სვეტები მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:719 +#: parser/parse_utilcmd.c:851 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:749 +#: parser/parse_utilcmd.c:884 #, c-format msgid "generated columns are not supported on typed tables" msgstr "ტიპიზირებულ ცხრილებზე გენერირებული სვეტები მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:753 +#: parser/parse_utilcmd.c:888 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:771 parser/parse_utilcmd.c:886 +#: parser/parse_utilcmd.c:915 parser/parse_utilcmd.c:1043 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "ძირითადი გასაღების შეზღუდვები გარე ცხრილებზე მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:780 parser/parse_utilcmd.c:896 +#: parser/parse_utilcmd.c:924 parser/parse_utilcmd.c:1053 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "გარე ცხრილებზე უნიკალური შეზღუდვები მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:825 +#: parser/parse_utilcmd.c:971 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:833 +#: parser/parse_utilcmd.c:979 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:841 +#: parser/parse_utilcmd.c:987 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "" -#: parser/parse_utilcmd.c:906 +#: parser/parse_utilcmd.c:1063 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "" -#: parser/parse_utilcmd.c:971 -#, c-format -msgid "LIKE is not supported for creating foreign tables" -msgstr "გარე ცხრილების შექმნისთვის LIKE მხარდაჭერილი არაა" - -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:1149 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "პირობაში LIKE ურთიერთობა \"%s\" არასწორია" -#: parser/parse_utilcmd.c:1711 parser/parse_utilcmd.c:1819 +#: parser/parse_utilcmd.c:1896 parser/parse_utilcmd.c:2004 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "" -#: parser/parse_utilcmd.c:2217 +#: parser/parse_utilcmd.c:2398 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "'CREATE TABLE'-ში არსებულ ინდექსს ვერ გამოიყენებთ" -#: parser/parse_utilcmd.c:2237 +#: parser/parse_utilcmd.c:2418 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "ინდექსი \"%s\" შეზღუდვასთან უკვე ასოცირებულია" -#: parser/parse_utilcmd.c:2258 +#: parser/parse_utilcmd.c:2444 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" უნიკალური ინდექსი არაა" -#: parser/parse_utilcmd.c:2259 parser/parse_utilcmd.c:2266 parser/parse_utilcmd.c:2273 parser/parse_utilcmd.c:2350 +#: parser/parse_utilcmd.c:2445 parser/parse_utilcmd.c:2452 parser/parse_utilcmd.c:2459 parser/parse_utilcmd.c:2535 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "" -#: parser/parse_utilcmd.c:2265 +#: parser/parse_utilcmd.c:2451 #, c-format msgid "index \"%s\" contains expressions" msgstr "ინდექსი \"%s\" გამოსახულებებს შეიცავს" -#: parser/parse_utilcmd.c:2272 +#: parser/parse_utilcmd.c:2458 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" ნაწილობრივი ინდექსია" -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2470 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" გადადებადი ინდექსია" -#: parser/parse_utilcmd.c:2285 +#: parser/parse_utilcmd.c:2471 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "" -#: parser/parse_utilcmd.c:2349 +#: parser/parse_utilcmd.c:2534 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "" -#: parser/parse_utilcmd.c:2506 +#: parser/parse_utilcmd.c:2726 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "" -#: parser/parse_utilcmd.c:2512 +#: parser/parse_utilcmd.c:2732 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "" -#: parser/parse_utilcmd.c:2846 +#: parser/parse_utilcmd.c:2777 +#, c-format +msgid "column \"%s\" in WITHOUT OVERLAPS is not a range or multirange type" +msgstr "" + +#: parser/parse_utilcmd.c:2805 +#, c-format +msgid "constraint using WITHOUT OVERLAPS needs at least two columns" +msgstr "" + +#: parser/parse_utilcmd.c:3102 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "" -#: parser/parse_utilcmd.c:2918 +#: parser/parse_utilcmd.c:3174 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "" -#: parser/parse_utilcmd.c:2961 +#: parser/parse_utilcmd.c:3217 #, c-format msgid "rules on materialized views are not supported" msgstr "მატერიალიზებულ ხედებზე წესები მხარდაჭერილი არაა" -#: parser/parse_utilcmd.c:3021 +#: parser/parse_utilcmd.c:3277 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "" -#: parser/parse_utilcmd.c:3093 +#: parser/parse_utilcmd.c:3349 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "" -#: parser/parse_utilcmd.c:3111 parser/parse_utilcmd.c:3212 rewrite/rewriteHandler.c:537 rewrite/rewriteManip.c:1095 +#: parser/parse_utilcmd.c:3367 parser/parse_utilcmd.c:3468 rewrite/rewriteHandler.c:546 rewrite/rewriteManip.c:1234 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "პირობითი UNION/INTERSECT/EXCEPT ოპერატორები განხორციელებული არაა" -#: parser/parse_utilcmd.c:3129 +#: parser/parse_utilcmd.c:3385 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON SELECT წესში OLD-ს ვერ გამოიყენებთ" -#: parser/parse_utilcmd.c:3133 +#: parser/parse_utilcmd.c:3389 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON SELECT წესში NEW-ს ვერ გამოიყენებთ" -#: parser/parse_utilcmd.c:3142 +#: parser/parse_utilcmd.c:3398 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON INSERT წესში OLD-ს ვერ გამოიყენებთ" -#: parser/parse_utilcmd.c:3148 +#: parser/parse_utilcmd.c:3404 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON DELETE წესში NEW-ს ვერ გამოიყენებთ" -#: parser/parse_utilcmd.c:3176 +#: parser/parse_utilcmd.c:3432 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "'WITH' მოთხოვნაში OLD-ზე მიმართვა შეუძლებელია" -#: parser/parse_utilcmd.c:3183 +#: parser/parse_utilcmd.c:3439 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "'WITH' მოთხოვნაში NEW-ზე მიმართვა შეუძლებელია" -#: parser/parse_utilcmd.c:3255 -#, c-format -msgid "\"%s\" is not a partition" -msgstr "\"%s\" დანაყოფი არაა" - -#: parser/parse_utilcmd.c:3290 parser/parse_utilcmd.c:3335 parser/parse_utilcmd.c:4101 -#, c-format -msgid "\"%s\" is not a partitioned table" -msgstr "\"%s\" დაყოფილი ცხრილი არაა" - -#: parser/parse_utilcmd.c:3343 -#, c-format -msgid "partition of hash-partitioned table cannot be merged" -msgstr "ჰეშით დაყოფილი ცხრილის დანაყოფების შერწყმა შეუძლებელია" - -#: parser/parse_utilcmd.c:3361 -#, c-format -msgid "partition with name \"%s\" is already used" -msgstr "დანაყოფი სახელით \"%s\" უკვე გამოყენებულია" - -#: parser/parse_utilcmd.c:3673 -#, c-format -msgid "list of new partitions should contain at least two items" -msgstr "" - -#: parser/parse_utilcmd.c:3811 +#: parser/parse_utilcmd.c:3897 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "არასწორ ადგილას დასმული DEFERRABLE პირობა" -#: parser/parse_utilcmd.c:3816 parser/parse_utilcmd.c:3831 +#: parser/parse_utilcmd.c:3902 parser/parse_utilcmd.c:3917 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "ერთზე მეტი DEFERRABLE/NOT DEFERRABLE პირობა დაშვებული არაა" -#: parser/parse_utilcmd.c:3826 +#: parser/parse_utilcmd.c:3912 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "არასწორ ადგილას დასმული NOT DEFERRABLE პირობა" -#: parser/parse_utilcmd.c:3847 +#: parser/parse_utilcmd.c:3933 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "არასწორ ადგილას დასმული INITIALLY DEFERRABLE პირობა" -#: parser/parse_utilcmd.c:3852 parser/parse_utilcmd.c:3878 +#: parser/parse_utilcmd.c:3938 parser/parse_utilcmd.c:3964 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "ერთზე მეტი INITIALLY IMMEDIATE/DEFERRED დაშვებული არაა" -#: parser/parse_utilcmd.c:3873 +#: parser/parse_utilcmd.c:3959 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "არასწორ ადგილას დასმული INITIALLY IMMEDIATE პირობა" -#: parser/parse_utilcmd.c:4066 +#: parser/parse_utilcmd.c:3976 +#, c-format +msgid "misplaced ENFORCED clause" +msgstr "არასწორ ადგილას დასმული ENFORCED პირობა" + +#: parser/parse_utilcmd.c:3981 parser/parse_utilcmd.c:3998 +#, c-format +msgid "multiple ENFORCED/NOT ENFORCED clauses not allowed" +msgstr "ერთზე მეტი ENFORCED/NOT ENFORCED პირობა დაშვებული არაა" + +#: parser/parse_utilcmd.c:3993 +#, c-format +msgid "misplaced NOT ENFORCED clause" +msgstr "არასწორ ადგილას დასმული NOT ENFORCED პირობა" + +#: parser/parse_utilcmd.c:4191 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "" -#: parser/parse_utilcmd.c:4108 +#: parser/parse_utilcmd.c:4226 +#, c-format +msgid "\"%s\" is not a partitioned table" +msgstr "\"%s\" დაყოფილი ცხრილი არაა" + +#: parser/parse_utilcmd.c:4233 #, c-format msgid "table \"%s\" is not partitioned" msgstr "ცხრილი \"%s\" დაყოფილი არაა" -#: parser/parse_utilcmd.c:4115 +#: parser/parse_utilcmd.c:4240 #, c-format msgid "index \"%s\" is not partitioned" msgstr "ინდექსი \"%s\" დაყოფილი არაა" -#: parser/parse_utilcmd.c:4155 +#: parser/parse_utilcmd.c:4280 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "" -#: parser/parse_utilcmd.c:4172 +#: parser/parse_utilcmd.c:4297 #, c-format msgid "invalid bound specification for a hash partition" msgstr "" -#: parser/parse_utilcmd.c:4178 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4303 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "" -#: parser/parse_utilcmd.c:4185 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4310 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "" -#: parser/parse_utilcmd.c:4198 +#: parser/parse_utilcmd.c:4323 #, c-format msgid "invalid bound specification for a list partition" msgstr "" -#: parser/parse_utilcmd.c:4251 +#: parser/parse_utilcmd.c:4376 #, c-format msgid "invalid bound specification for a range partition" msgstr "" -#: parser/parse_utilcmd.c:4257 +#: parser/parse_utilcmd.c:4382 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "" -#: parser/parse_utilcmd.c:4261 +#: parser/parse_utilcmd.c:4386 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "" -#: parser/parse_utilcmd.c:4375 +#: parser/parse_utilcmd.c:4500 #, c-format msgid "cannot specify NULL in range bound" msgstr "დიაპაზონის საზღვრებში NULL-ის მითითება შეუძლებელია" -#: parser/parse_utilcmd.c:4424 +#: parser/parse_utilcmd.c:4549 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "ყოველი MAXVALUE საზღვის შემდეგ ყველა MAXVALUE უნდა იყოს" -#: parser/parse_utilcmd.c:4431 +#: parser/parse_utilcmd.c:4556 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "ყოველი MINVALUE საზღვის შემდეგ ყველა MINVALUE უნდა იყოს" -#: parser/parse_utilcmd.c:4474 +#: parser/parse_utilcmd.c:4599 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "" @@ -18912,12 +19442,12 @@ msgstr "" msgid "invalid Unicode escape character" msgstr "უნიკოდის სპეცკოდის არასწორი სიმბოლო" -#: parser/parser.c:347 scan.l:1391 +#: parser/parser.c:347 scan.l:1385 #, c-format msgid "invalid Unicode escape value" msgstr "უნიკოდის სპეცკოდის არასწორი მნიშვნელობა" -#: parser/parser.c:494 scan.l:702 utils/adt/varlena.c:6640 +#: parser/parser.c:494 scan.l:702 utils/adt/varlena.c:6842 #, c-format msgid "invalid Unicode escape" msgstr "უნიკოდის არასწორი სპეცკოდი" @@ -18927,7 +19457,7 @@ msgstr "უნიკოდის არასწორი სპეცკოდ msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "უნიკოდის სპეცკოდების შესაძლო ვარიანტებია \\XXXX და \\+XXXXXXXX." -#: parser/parser.c:523 scan.l:663 scan.l:679 scan.l:695 utils/adt/varlena.c:6665 +#: parser/parser.c:523 scan.l:663 scan.l:679 scan.l:695 utils/adt/varlena.c:6867 #, c-format msgid "invalid Unicode surrogate pair" msgstr "უნკოდის არასწორი სუროგატული წყვილი" @@ -18957,127 +19487,52 @@ msgstr "" msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "" -#: partitioning/partbounds.c:3127 partitioning/partbounds.c:5202 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "" -#: partitioning/partbounds.c:3129 partitioning/partbounds.c:5204 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "" -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "დანაყოფი \"%s\" გადაფარავდა დანაყოფს \"%s\"" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" msgstr "" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" ჰეშით დაყოფილი ცხრილია" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "დამყოფი სვეტების რაოდენობა (%d) მოწოდებული დაყოფის გასაღებების რაოდენობას (%d) არ ემთხვევა" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "" -#: partitioning/partbounds.c:5038 -#, c-format -msgid "lower bound of partition \"%s\" conflicts with upper bound of previous partition \"%s\"" -msgstr "დანაყოფის \"%s\" ქვედა ზღვარი კონფლიქტშია ზედა ზღვართან წინა დანაყოფისთვის \"%s\"" - -#: partitioning/partbounds.c:5092 -#, c-format -msgid "new partition \"%s\" would overlap with another new partition \"%s\"" -msgstr "ახალი დანაყოფი \"%s\" გადაფარავდა სხვა ახალ დანაყოფს \"%s\"" - -#: partitioning/partbounds.c:5239 -#, c-format -msgid "lower bound of partition \"%s\" is not equal to lower bound of split partition" -msgstr "ქვედა ზღვარი დანაყოფისთვის \"%s\" არ უდრის დაყოფილი დანაყოფის ქვედა საზღვარს" - -#: partitioning/partbounds.c:5251 -#, c-format -msgid "lower bound of partition \"%s\" is less than lower bound of split partition" -msgstr "ქვედა ზღვარი დანაყოფისთვის \"%s\" დაყოფილი დანაყოფის ქვედა საზღვარზე ნაკლებია" - -#: partitioning/partbounds.c:5280 -#, c-format -msgid "upper bound of partition \"%s\" is not equal to upper bound of split partition" -msgstr "ზედა ზღვარი დანაყოფისთვის \"%s\" არ უდრის დაყოფილი დანაყოფის ზედა საზღვარს" - -#: partitioning/partbounds.c:5292 -#, c-format -msgid "upper bound of partition \"%s\" is greater than upper bound of split partition" -msgstr "ზედა ზღვარი დანაყოფისთვის \"%s\" დაყოფილი დანაყოფის ზედა საზღვარზე მეტია" - -#: partitioning/partbounds.c:5364 -#, c-format -msgid "new partition \"%s\" cannot have this value because split partition does not have" -msgstr "" - -#: partitioning/partbounds.c:5380 -#, c-format -msgid "new partition \"%s\" cannot have NULL value because split partition does not have" -msgstr "" - -#: partitioning/partbounds.c:5390 -#, c-format -msgid "new partition \"%s\" would overlap with another (not split) partition \"%s\"" -msgstr "ახალი დანაყოფი \"%s\" გადაფარავდა სხვა (არა დაყოფილ) დანაყოფს \"%s\"" - -#: partitioning/partbounds.c:5530 -#, c-format -msgid "new partitions do not have value %s but split partition does" -msgstr "ახალ დანაყოფს არ აქვს მნიშვნელობა %s, მაგრამ გაყოფილ დანაყოფს აქვს" - -#: partitioning/partbounds.c:5607 -#, c-format -msgid "DEFAULT partition should be one" -msgstr "" - -#: partitioning/partbounds.c:5623 -#, c-format -msgid "partition of hash-partitioned table cannot be split" -msgstr "ჰეშით დაყოფილი ცხრილის დანაყოფების დაყოფა შეუძლებელია" - -#: partitioning/partbounds.c:5677 -#, c-format -msgid "one partition in the list should be DEFAULT because split partition is DEFAULT" -msgstr "" - -#: partitioning/partbounds.c:5687 -#, c-format -msgid "new partition cannot be DEFAULT because DEFAULT partition already exists" -msgstr "" - -#: partitioning/partbounds.c:5746 -#, c-format -msgid "name \"%s\" is already used" -msgstr "სახელი \"%s\" უკვე გამოყენებულია" - -#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 port/sysv_sema.c:323 port/sysv_shmem.c:717 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "მონაცემების საქაღალდის (%s) პოვნა შეუძლებელია: %m" @@ -19138,34 +19593,34 @@ msgstr "ამ პლატფორმაზე უზარმაზარი msgid "huge pages not supported with the current \"shared_memory_type\" setting" msgstr "\"shared_memory_type\" პარამეტრთან ერთად უზარმაზარი გვერდები მხარდაჭერილი არაა" -#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1347 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1406 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "უკვე არსებული გაზიარებული მეხსიერების ბლოკი (გასაღები %lu, ID %lu) ჯერ კიდევ გამოიყენება" -#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1349 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1408 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "" -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "სემაფორების შექმნის შეცდომა: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "ავარიული სისტემური ფუნქცია იყო semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL." msgstr "" -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "" @@ -19287,387 +19742,402 @@ msgstr "წარუმატებლად გამოძახებულ msgid "Failed system call was MapViewOfFileEx." msgstr "წარუმატებლად გამოძახებული სისტემური ფუნქცია: MapViewOfFileEx." -#: postmaster/autovacuum.c:686 +#: postmaster/autovacuum.c:693 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "ავტომომტვერსასრუტების დამხმარე პროცესის გაშვებას მეტისმეტად დიდი დრო მოუნდა. ის გაუქმდა" -#: postmaster/autovacuum.c:2199 +#: postmaster/autovacuum.c:2221 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "ავტომომტვერსასრუტება: წაიშლება მიტოვებული დროებითი ცხრილი \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2435 +#: postmaster/autovacuum.c:2457 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "ცხრილის ავტოდამტვერსასრუტება: \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2438 +#: postmaster/autovacuum.c:2460 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "ცხრილის ავტოანალიზი: \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2632 +#: postmaster/autovacuum.c:2654 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "" -#: postmaster/autovacuum.c:3250 +#: postmaster/autovacuum.c:3312 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "ავტომომტვერსასრუტება არ გაშვებულა კონფიგურაციის შეცდომის გამო" -#: postmaster/autovacuum.c:3251 +#: postmaster/autovacuum.c:3313 #, c-format msgid "Enable the \"track_counts\" option." msgstr "ჩართეთ \"track_counts\" პარამეტრი." +#: postmaster/autovacuum.c:3435 +#, c-format +msgid "\"autovacuum_max_workers\" (%d) should be less than or equal to \"autovacuum_worker_slots\" (%d)" +msgstr "" + +#: postmaster/autovacuum.c:3437 +#, c-format +msgid "The server will only start up to \"autovacuum_worker_slots\" (%d) autovacuum workers at a given time." +msgstr "" + #: postmaster/bgworker.c:260 #, c-format -msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" +msgid "inconsistent background worker state (\"max_worker_processes\"=%d, total slots=%d)" msgstr "" -#: postmaster/bgworker.c:651 +#: postmaster/bgworker.c:645 #, c-format msgid "background worker \"%s\": background workers without shared memory access are not supported" msgstr "" -#: postmaster/bgworker.c:662 +#: postmaster/bgworker.c:656 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "" -#: postmaster/bgworker.c:676 +#: postmaster/bgworker.c:670 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "ფონური დამხმარე პროცესი \"%s\": არასწორი გადატვირთვის ინტერვალი" -#: postmaster/bgworker.c:691 +#: postmaster/bgworker.c:685 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "" -#: postmaster/bgworker.c:715 tcop/postgres.c:3285 +#: postmaster/bgworker.c:709 tcop/postgres.c:3345 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "" -#: postmaster/bgworker.c:888 +#: postmaster/bgworker.c:868 postmaster/bgworker.c:902 +#, c-format +msgid "database connection requirement not indicated during registration" +msgstr "" + +#: postmaster/bgworker.c:878 postmaster/bgworker.c:912 +#, c-format +msgid "invalid processing mode in background worker" +msgstr "არასწორი დამუშავების რეჟიმი ფონურ დამხმარე პროცესში" + +#: postmaster/bgworker.c:965 #, c-format msgid "background worker \"%s\": must be registered in \"shared_preload_libraries\"" msgstr "ფონური დამხმარე პროცესი \"%s\": \"shared_preload_libraries\"-ში დარეგისტრირებული უნდა იყოს" -#: postmaster/bgworker.c:911 +#: postmaster/bgworker.c:988 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "ფონური დახმამრე პროცესი \"%s\": გაფრთხილების მოთხოვნა მხოლოდ დინამიკურ ფონურ დამხმარე პროცესებს შეუძლიათ" -#: postmaster/bgworker.c:926 +#: postmaster/bgworker.c:1003 #, c-format msgid "too many background workers" msgstr "მეტისმეტად ბევრი ფონური დამხმარე პროცესი" -#: postmaster/bgworker.c:927 +#: postmaster/bgworker.c:1004 #, 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] "" msgstr[1] "" -#: postmaster/bgworker.c:931 +#: postmaster/bgworker.c:1008 postmaster/checkpointer.c:459 #, c-format -msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "გაითვალისწინეთ, რომ შეიძლება კონფიგურაციის პარამეტრის \"max_worker_processes\" გაზრდა გჭირდებათ." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "გაითვალისწინეთ, რომ შეიძლება კონფიგურაციის პარამეტრის \"%s\" გაზრდა გჭირდებათ." -#: postmaster/checkpointer.c:441 +#: postmaster/checkpointer.c:455 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" msgstr[0] "საკონტროლო წერტილები მეტისმეტად ხშირად ხდება (%d წამიანი შუალედით)" msgstr[1] "საკონტროლო წერტილები მეტისმეტად ხშირად ხდება (%d წამიანი შუალედით)" -#: postmaster/checkpointer.c:445 -#, c-format -msgid "Consider increasing the configuration parameter \"%s\"." -msgstr "გაითვალისწინეთ, რომ შეიძლება კონფიგურაციის პარამეტრის \"%s\" გაზრდა გჭირდებათ." - -#: postmaster/checkpointer.c:1067 +#: postmaster/checkpointer.c:1125 #, c-format msgid "checkpoint request failed" msgstr "საკონტროლო წერტილის მოთხოვნის შეცდომა" -#: postmaster/checkpointer.c:1068 +#: postmaster/checkpointer.c:1126 #, c-format msgid "Consult recent messages in the server log for details." msgstr "დეტალებისთვის იხილეთ სერვერის ჟურნალის უახლესი შეტყობინებები." -#: postmaster/launch_backend.c:369 +#: postmaster/launch_backend.c:395 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "სერვერის პროცესის (\"%s\") შესრულების შეცდომა: %m" -#: postmaster/launch_backend.c:422 +#: postmaster/launch_backend.c:449 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "უკანაბოლოს პარამეტრის ფაილის მიბმის შექმნის შეცდომა. შეცდომის კოდი: %lu" -#: postmaster/launch_backend.c:430 +#: postmaster/launch_backend.c:457 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "უკანაბოლოს პარამეტრის მეხსიერების მიმაგრების პრობლემა: შეცდომის კოდი %lu" -#: postmaster/launch_backend.c:447 +#: postmaster/launch_backend.c:474 #, c-format msgid "subprocess command line too long" msgstr "ქვეპროექტების ბრძანების სტრიქონი ძალიან გრძელია" -#: postmaster/launch_backend.c:465 +#: postmaster/launch_backend.c:492 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "გამოძახების შეცდომა: CreateProcess(): %m (შეცდომის კოდი %lu)" -#: postmaster/launch_backend.c:492 +#: postmaster/launch_backend.c:521 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "უკანაბოლოს პარამეტრის ფაილის ხედის მოხსნის შეცდომა. შეცდომის კოდი: %lu" -#: postmaster/launch_backend.c:496 +#: postmaster/launch_backend.c:525 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "უკანაბოლოს პარამეტრის ფაილის დამმუშავებლის დახურვა შეუძლებელია. შეცდომის კოდი: %lu" -#: postmaster/launch_backend.c:518 +#: postmaster/launch_backend.c:547 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "გაზიარებული მეხსიერების გამოყოფის მეტისმეტად ბევრი ცდის შემდეგ შევეშვი ცდას" -#: postmaster/launch_backend.c:519 +#: postmaster/launch_backend.c:548 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "ეს შეიძლება გამოწვეული იყოს ASLR ან ანტივირუსული პროგრამული უზრუნველყოფის მიერ." -#: postmaster/launch_backend.c:817 +#: postmaster/launch_backend.c:854 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "" -#: postmaster/launch_backend.c:849 +#: postmaster/launch_backend.c:886 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "მემკვიდრეობით მიღებული სოკეტის შექმნა შეუძლებელია: შეცდომის კოდი %d\n" -#: postmaster/launch_backend.c:878 +#: postmaster/launch_backend.c:915 #, c-format msgid "could not open backend variables file \"%s\": %m\n" msgstr "უკანაბოლოს ცვლადების ფაილის \"%s\" გახსნა შეუძლებელია: %m\n" -#: postmaster/launch_backend.c:884 +#: postmaster/launch_backend.c:921 #, c-format msgid "could not read from backend variables file \"%s\": %m\n" msgstr "უკანაბოლოს ცვლადების ფაილიდან \"%s\" წაკითხვა შეუძლებელია: %m\n" -#: postmaster/launch_backend.c:895 +#: postmaster/launch_backend.c:932 #, c-format msgid "could not read startup data from backend variables file \"%s\": %m\n" msgstr "უკანაბოლოს ცვლადების ფაილიდან \"%s\" გაშვების მონაცემების წაკითხვა შეუძლებელია: %m\n" -#: postmaster/launch_backend.c:907 +#: postmaster/launch_backend.c:944 #, c-format msgid "could not remove file \"%s\": %m\n" msgstr "ფაილის წაშლის შეცდომა \"%s\": %m\n" -#: postmaster/launch_backend.c:923 +#: postmaster/launch_backend.c:960 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "უკანაბოლოს ცვლადების ხედის მიბმა შეუძლებელია: შეცდომის კოდი %lu\n" -#: postmaster/launch_backend.c:942 +#: postmaster/launch_backend.c:979 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "უკანაბოლოს ცვლადების ხედის მოხსნა შეუძლებელია: შეცდომის კოდი %lu\n" -#: postmaster/launch_backend.c:949 +#: postmaster/launch_backend.c:986 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "უკანაბოლოს პარამეტრის ცვლადების დამმუშავებლის დახურვა შეუძლებელია. შეცდომის კოდი: %lu\n" -#: postmaster/pgarch.c:428 +#: postmaster/pgarch.c:429 #, c-format msgid "\"archive_mode\" enabled, yet archiving is not configured" msgstr "\"archive_mode\" ჩართულია, მაგრამ დაარქივება ჯერ მორგებული არაა" -#: postmaster/pgarch.c:452 +#: postmaster/pgarch.c:453 #, c-format msgid "removed orphan archive status file \"%s\"" msgstr "წაიშალა მიტოვებული არქივის სტატუსის ფაილი \"%s\"" -#: postmaster/pgarch.c:462 +#: postmaster/pgarch.c:463 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" msgstr "" -#: postmaster/pgarch.c:498 +#: postmaster/pgarch.c:499 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "" -#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 +#: postmaster/pgarch.c:885 postmaster/pgarch.c:924 #, c-format msgid "both \"archive_command\" and \"archive_library\" set" msgstr "დაყენებულია ორივე, \"archive_command\" და \"archive_library\"" -#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 +#: postmaster/pgarch.c:886 postmaster/pgarch.c:925 #, c-format msgid "Only one of \"archive_command\", \"archive_library\" may be set." msgstr "\"archive_command\"-დან და \"archive_library\"-დან, მხოლოდ, ერთ-ერთი შეგიძლიათ, დააყენოთ." -#: postmaster/pgarch.c:897 +#: postmaster/pgarch.c:903 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "" -#: postmaster/pgarch.c:934 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules have to define the symbol %s" msgstr "" -#: postmaster/pgarch.c:940 +#: postmaster/pgarch.c:946 #, c-format msgid "archive modules must register an archive callback" msgstr "" -#: postmaster/postmaster.c:661 +#: postmaster/postmaster.c:678 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: -f პარამეტრის არასწორი არგუმენტი: \"%s\"\n" -#: postmaster/postmaster.c:734 +#: postmaster/postmaster.c:751 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: -t პარამეტრის არასწორი არგუმენტი: \"%s\"\n" -#: postmaster/postmaster.c:757 +#: postmaster/postmaster.c:774 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: არასწორი არგუმენტი: \"%s\"\n" -#: postmaster/postmaster.c:825 +#: postmaster/postmaster.c:842 #, c-format msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" msgstr "" -#: postmaster/postmaster.c:833 +#: postmaster/postmaster.c:850 #, c-format msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" msgstr "" -#: postmaster/postmaster.c:836 +#: postmaster/postmaster.c:853 #, c-format msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\"" msgstr "" -#: postmaster/postmaster.c:839 +#: postmaster/postmaster.c:856 #, c-format msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" msgstr "" -#: postmaster/postmaster.c:847 +#: postmaster/postmaster.c:864 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "" -#: postmaster/postmaster.c:1004 +#: postmaster/postmaster.c:1025 #, c-format msgid "could not create I/O completion port for child queue" msgstr "" -#: postmaster/postmaster.c:1069 +#: postmaster/postmaster.c:1091 #, c-format msgid "ending log output to stderr" msgstr "ჟურნალის stderr-ზე გამოტანის დასრულება" -#: postmaster/postmaster.c:1070 +#: postmaster/postmaster.c:1092 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "" -#: postmaster/postmaster.c:1081 +#: postmaster/postmaster.c:1103 #, c-format msgid "starting %s" msgstr "\"%s\"-ის გაშვება" -#: postmaster/postmaster.c:1143 +#: postmaster/postmaster.c:1165 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "მოსმენის სოკეტის შექმნა \"%s\"-სთვის შეუძლებელია" -#: postmaster/postmaster.c:1149 +#: postmaster/postmaster.c:1171 #, c-format msgid "could not create any TCP/IP sockets" msgstr "\"TCP/IP\" სოკეტების შექმნის შეცდომა" -#: postmaster/postmaster.c:1181 +#: postmaster/postmaster.c:1203 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister()-ის შეცდომა: შეცდომის კოდი %ld" -#: postmaster/postmaster.c:1234 +#: postmaster/postmaster.c:1256 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "შეცდომა Unix სოკეტის შექმნისას საქაღალდეში \"%s\"" -#: postmaster/postmaster.c:1240 +#: postmaster/postmaster.c:1262 #, c-format msgid "could not create any Unix-domain sockets" msgstr "\"Unix-domain\" სოკეტების შექმნის შეცდომა" -#: postmaster/postmaster.c:1251 +#: postmaster/postmaster.c:1273 #, c-format msgid "no socket created for listening" msgstr "მოსასმენი სოკეტი არ შექმნილა" -#: postmaster/postmaster.c:1282 +#: postmaster/postmaster.c:1304 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %m\n" msgstr "%s: გარე PID ფაილის \"%s\" წვდომების შეცვლა შეუძლებელია: %m\n" -#: postmaster/postmaster.c:1286 +#: postmaster/postmaster.c:1308 #, c-format msgid "%s: could not write external PID file \"%s\": %m\n" msgstr "%s: გარე PID ფაილის ჩაწერის შეცდომა \"%s\": %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1336 utils/init/postinit.c:225 #, c-format msgid "could not load %s" msgstr "%s-ის ჩატვირთვა შეუძლებელია" -#: postmaster/postmaster.c:1340 +#: postmaster/postmaster.c:1364 #, c-format msgid "postmaster became multithreaded during startup" msgstr "პროცესი postmaster გაშვებისას მრავალნაკადიანი გახდა" -#: postmaster/postmaster.c:1341 +#: postmaster/postmaster.c:1365 postmaster/postmaster.c:3661 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "დააყენეთ LC_ALL გარემოს ცვლადი სწორ ლოკალზე." -#: postmaster/postmaster.c:1440 +#: postmaster/postmaster.c:1468 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: ჩემი საკუთარი გამშვები ფაილის ბილიკის მოძებნა შეუძლებელია" -#: postmaster/postmaster.c:1447 +#: postmaster/postmaster.c:1475 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: გამშვები ფაილი postgres ვერ ვიპოვე" -#: postmaster/postmaster.c:1470 utils/misc/tzparser.c:341 +#: postmaster/postmaster.c:1498 utils/misc/tzparser.c:342 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "" -#: postmaster/postmaster.c:1497 +#: postmaster/postmaster.c:1525 #, c-format msgid "" "%s: could not find the database system\n" @@ -19676,324 +20146,320 @@ msgid "" msgstr "" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1787 +#: postmaster/postmaster.c:1762 #, c-format msgid "issuing %s to recalcitrant children" msgstr "" -#: postmaster/postmaster.c:1809 +#: postmaster/postmaster.c:1784 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "" -#: postmaster/postmaster.c:1872 -#, c-format -msgid "wrong key in cancel request for process %d" -msgstr "არასწორი გასაღები გაუქმების მოთხოვნაში პროცესისთვის %d" - -#: postmaster/postmaster.c:1884 -#, c-format -msgid "PID %d in cancel request did not match any process" -msgstr "PID %d, მოთხოვნილი გაუქმების მოთხოვნაში, არც ერთ პროცესს არ ემთხვევა" - -#: postmaster/postmaster.c:2105 +#: postmaster/postmaster.c:2004 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "მიღებულია SIGHUP, მიმდინარეობს კონფიგურაციის ფაილების თავიდან ჩატვირთვა" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2133 postmaster/postmaster.c:2137 +#: postmaster/postmaster.c:2012 postmaster/postmaster.c:2016 #, c-format msgid "%s was not reloaded" msgstr "%s არ გადატვირთულა" -#: postmaster/postmaster.c:2147 +#: postmaster/postmaster.c:2026 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL კონფიგურაცია არ იყო გადატვირთული" -#: postmaster/postmaster.c:2233 +#: postmaster/postmaster.c:2112 #, c-format msgid "received smart shutdown request" msgstr "მიღებულია ჭკვიანი გამორთვის მოთხოვნა" -#: postmaster/postmaster.c:2274 +#: postmaster/postmaster.c:2153 #, c-format msgid "received fast shutdown request" msgstr "მიღებულია სწრაფი გამორთვის მოთხოვნა" -#: postmaster/postmaster.c:2292 +#: postmaster/postmaster.c:2171 #, c-format msgid "aborting any active transactions" msgstr "ყველა აქტიური ტრანზაქციის შეწყვეტა" -#: postmaster/postmaster.c:2316 +#: postmaster/postmaster.c:2195 #, c-format msgid "received immediate shutdown request" msgstr "მიღებულია დაუყოვნებლივი გამორთვის მოთხოვნა" -#: postmaster/postmaster.c:2388 +#: postmaster/postmaster.c:2270 #, c-format msgid "shutdown at recovery target" msgstr "გამორთვა აღდგენის სამიზნეზე" -#: postmaster/postmaster.c:2406 postmaster/postmaster.c:2442 +#: postmaster/postmaster.c:2288 postmaster/postmaster.c:2324 msgid "startup process" msgstr "გაშვების პროცესი" -#: postmaster/postmaster.c:2409 +#: postmaster/postmaster.c:2291 #, c-format msgid "aborting startup due to startup process failure" msgstr "გაშვების გაუქმება გაშვების პროცესის შეცდომის გამო" -#: postmaster/postmaster.c:2484 +#: postmaster/postmaster.c:2347 #, c-format msgid "database system is ready to accept connections" msgstr "მონაცემთა ბაზის სისტემა მზადაა შეერთებების მისაღებად" -#: postmaster/postmaster.c:2505 +#: postmaster/postmaster.c:2369 msgid "background writer process" msgstr "ფონური ჩამწერი პროცესი" -#: postmaster/postmaster.c:2552 +#: postmaster/postmaster.c:2402 msgid "checkpointer process" msgstr "საკონტროლო წერტილის პროცესი" -#: postmaster/postmaster.c:2568 +#: postmaster/postmaster.c:2419 msgid "WAL writer process" msgstr "WAL-ის ჩამწერი პროცესი" -#: postmaster/postmaster.c:2583 +#: postmaster/postmaster.c:2435 msgid "WAL receiver process" msgstr "WAL-ის მიმღები პროცესი" -#: postmaster/postmaster.c:2597 +#: postmaster/postmaster.c:2450 msgid "WAL summarizer process" msgstr "WAL-ის შეჯამების პროცესი" -#: postmaster/postmaster.c:2612 +#: postmaster/postmaster.c:2466 msgid "autovacuum launcher process" msgstr "ავტომომტვერსასრუტების გამშვები პროცესი" -#: postmaster/postmaster.c:2630 +#: postmaster/postmaster.c:2482 msgid "archiver process" msgstr "არქივის პროცესი" -#: postmaster/postmaster.c:2643 +#: postmaster/postmaster.c:2497 msgid "system logger process" msgstr "სისტემური ჟურნალის პროცესი" -#: postmaster/postmaster.c:2660 +#: postmaster/postmaster.c:2515 msgid "slot sync worker process" msgstr "სლოტის სინქრონიზაციის დამხმარე პროცესი" -#: postmaster/postmaster.c:2716 +#: postmaster/postmaster.c:2523 utils/init/miscinit.c:297 +msgid "io worker" +msgstr "შეტანა/გამოტანის დამხმარე პროცესი" + +#: postmaster/postmaster.c:2545 postmaster/postmaster.c:2547 +msgid "untracked child process" +msgstr "შვილი პროცესი ტრეკინგის გარეშე" + +#: postmaster/postmaster.c:2580 #, c-format msgid "background worker \"%s\"" msgstr "ფონური დამხმარე პროცესი \"%s\"" -#: postmaster/postmaster.c:2795 postmaster/postmaster.c:2815 postmaster/postmaster.c:2822 postmaster/postmaster.c:2840 -msgid "server process" -msgstr "სერვერის პროცესი" - -#: postmaster/postmaster.c:2894 +#: postmaster/postmaster.c:2797 #, 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:3081 +#: postmaster/postmaster.c:2830 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) დასრულდა სტატუსით %d" -#: postmaster/postmaster.c:3083 postmaster/postmaster.c:3095 postmaster/postmaster.c:3105 postmaster/postmaster.c:3116 +#: postmaster/postmaster.c:2832 postmaster/postmaster.c:2844 postmaster/postmaster.c:2854 postmaster/postmaster.c:2865 #, 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:3092 +#: postmaster/postmaster.c:2841 #, 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:3102 +#: postmaster/postmaster.c:2851 #, 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:3114 +#: postmaster/postmaster.c:2863 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) დასრულდა უცნობი სტატუსით %d" -#: postmaster/postmaster.c:3330 +#: postmaster/postmaster.c:3154 #, c-format msgid "abnormal database system shutdown" msgstr "მონაცემთა ბაზის სისტემის არანორმალური გამორთვა" -#: postmaster/postmaster.c:3356 +#: postmaster/postmaster.c:3180 #, c-format msgid "shutting down due to startup process failure" msgstr "მუშაობის დასრულება გამშვები პროცესის შეცდომის გამო" -#: postmaster/postmaster.c:3362 +#: postmaster/postmaster.c:3186 #, c-format msgid "shutting down because \"restart_after_crash\" is off" msgstr "მუშაობა დასრულდება. რადგან \"restart_after_crash\" გამორთულია" -#: postmaster/postmaster.c:3374 +#: postmaster/postmaster.c:3198 #, c-format msgid "all server processes terminated; reinitializing" msgstr "სერვერის ყველა პროცესი დასრულდა; მიმდინარეობს რეინიციალიზაცია" -#: postmaster/postmaster.c:3573 postmaster/postmaster.c:3983 postmaster/postmaster.c:4372 -#, c-format -msgid "could not generate random cancel key" -msgstr "შემთხვევითი გაუქმების გასაღების გენერაცია შეუძლებელია" - -#: postmaster/postmaster.c:3606 +#: postmaster/postmaster.c:3591 #, c-format msgid "could not fork new process for connection: %m" msgstr "ახალი პროცესის ფორკის შეცდომა შეერთებისთვის: %m" -#: postmaster/postmaster.c:3648 +#: postmaster/postmaster.c:3626 msgid "could not fork new process for connection: " msgstr "ახალი პროცესის ფორკის შეცდომა შეერთებისთვის: " -#: postmaster/postmaster.c:3682 +#: postmaster/postmaster.c:3660 #, c-format -msgid "Please report this to <%s>." -msgstr "გთხოვთ, შეატყობინოთ <%s>." +msgid "postmaster became multithreaded" +msgstr "postmaster მრავალნაკადიანი გახდა" -#: postmaster/postmaster.c:3750 +#: postmaster/postmaster.c:3738 #, c-format msgid "database system is ready to accept read-only connections" msgstr "მონაცემთა ბაზის სისტემა მზადაა მხოლოდ-კითხვადი შეერთებების მისაღებად" -#: postmaster/postmaster.c:3933 -#, c-format -msgid "could not fork \"%s\" process: %m" -msgstr "\"%s\" პროცესის ფორკის შეცდომა: %m" - -#: postmaster/postmaster.c:4171 postmaster/postmaster.c:4205 +#: postmaster/postmaster.c:3839 #, c-format -msgid "database connection requirement not indicated during registration" -msgstr "" +msgid "WAL was shut down unexpectedly" +msgstr "WAL მოულოდნელად გაითიშა" -#: postmaster/postmaster.c:4181 postmaster/postmaster.c:4215 +#: postmaster/postmaster.c:3964 #, c-format -msgid "invalid processing mode in background worker" -msgstr "არასწორი დამუშავების რეჟიმი ფონურ დამხმარე პროცესში" +msgid "no slot available for new autovacuum worker process" +msgstr "ავტომომტვერსასრუტების ფონური დამხმარე პროცესისთვის სლოტი ხელმისაწვდომი არაა" -#: postmaster/postmaster.c:4275 +#: postmaster/postmaster.c:3979 #, c-format -msgid "could not fork background worker process: %m" -msgstr "ფონური დამხმარე პროცესის ფორკის შეცდომა: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "\"%s\" პროცესის ფორკის შეცდომა: %m" -#: postmaster/postmaster.c:4358 +#: postmaster/postmaster.c:4138 #, c-format msgid "no slot available for new background worker process" msgstr "ახალი ფონური დამხმარე პროცესისთვის სლოტი ხელმისაწვდომი არაა" -#: postmaster/postmaster.c:4621 +#: postmaster/postmaster.c:4156 +#, c-format +msgid "could not fork background worker process: %m" +msgstr "ფონური დამხმარე პროცესის ფორკის შეცდომა: %m" + +#: postmaster/postmaster.c:4489 #, c-format msgid "could not read exit code for process\n" msgstr "პროცესის გამოსვლის კოდის წაკითხვის შეცდომა\n" -#: postmaster/postmaster.c:4663 +#: postmaster/postmaster.c:4531 #, c-format msgid "could not post child completion status\n" msgstr "შვილი პროცესის დასრულების სტატუსის წაკითხვის შეცდომა\n" -#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 +#: postmaster/syslogger.c:527 postmaster/syslogger.c:1172 #, c-format msgid "could not read from logger pipe: %m" msgstr "ჟურნალის ფაიფიდან წაკითხვა შეუძლებელია: %m" -#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 +#: postmaster/syslogger.c:626 postmaster/syslogger.c:640 #, c-format msgid "could not create pipe for syslog: %m" msgstr "სისტემური ჟურნალისთვის ფაიფის შექმნა შეუძლებელია: %m" -#: postmaster/syslogger.c:712 +#: postmaster/syslogger.c:711 #, c-format msgid "could not fork system logger: %m" msgstr "სისტემის ჟურნალის ფორკის შეცდომა: %m" -#: postmaster/syslogger.c:731 +#: postmaster/syslogger.c:730 #, c-format msgid "redirecting log output to logging collector process" msgstr "ჟურნალის გამოტანის გადამისამართება ჟურნალის შემგროვებლის პროცესისკენ" -#: postmaster/syslogger.c:732 +#: postmaster/syslogger.c:731 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "" -#: postmaster/syslogger.c:740 +#: postmaster/syslogger.c:739 #, c-format msgid "could not redirect stdout: %m" msgstr "stdout-ის გადამისამართების შეცდომა: %m" -#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 +#: postmaster/syslogger.c:744 postmaster/syslogger.c:761 #, c-format msgid "could not redirect stderr: %m" msgstr "stderr-ის გადამისამართების შეცდომა: %m" -#: postmaster/syslogger.c:1128 +#: postmaster/syslogger.c:1127 #, c-format msgid "could not write to log file: %m\n" msgstr "ჟურნალის ფაილში ჩაწერის შეცდომა: %m\n" -#: postmaster/syslogger.c:1246 +#: postmaster/syslogger.c:1247 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ჟურნალის ფაილის გახსნის შეცდომა \"%s\": %m" -#: postmaster/syslogger.c:1336 +#: postmaster/syslogger.c:1337 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "" -#: postmaster/walsummarizer.c:384 +#: postmaster/walsummarizer.c:743 #, c-format -msgid "switch point from TLI %u to TLI %u is at %X/%X" +msgid "WAL summarization is not progressing" msgstr "" -#: postmaster/walsummarizer.c:885 +#: postmaster/walsummarizer.c:744 #, c-format -msgid "could not find a valid record after %X/%X" +msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." +msgstr "" + +#: postmaster/walsummarizer.c:758 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "" +msgstr[1] "" + +#: postmaster/walsummarizer.c:763 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "" + +#: postmaster/walsummarizer.c:1007 +#, c-format +msgid "could not find a valid record after %X/%X" msgstr "%X/%X -ის შემდეგ სწორი ჩანაწერი არ არსებობს" -#: postmaster/walsummarizer.c:930 +#: postmaster/walsummarizer.c:1052 #, c-format msgid "could not read WAL from timeline %u at %X/%X: %s" msgstr "ვერ წავიკითხე WAL დროის ხაზიდან %u მისამართზე %X/%X: %s" -#: postmaster/walsummarizer.c:936 +#: postmaster/walsummarizer.c:1058 #, c-format msgid "could not read WAL from timeline %u at %X/%X" msgstr "ვერ წავიკითხე WAL დროის ხაზიდან %u მისამართზე %X/%X" -#: postmaster/walsummarizer.c:1077 -#, c-format -msgid "summarized WAL on TLI %u from %X/%X to %X/%X" -msgstr "" - -#: postmaster/walsummarizer.c:1385 -#, c-format -msgid "timeline %u became historic, can read up to %X/%X" -msgstr "" - -#: regex/regc_pg_locale.c:244 +#: regex/regc_pg_locale.c:241 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "" @@ -20003,145 +20469,145 @@ msgstr "" msgid "nondeterministic collations are not supported for regular expressions" msgstr "" -#: repl_gram.y:318 repl_gram.y:359 +#: repl_gram.y:322 repl_gram.y:363 #, c-format msgid "invalid timeline %u" msgstr "დროის არასწორი ხაზი: %u" -#: repl_scanner.l:154 +#: repl_scanner.l:160 msgid "invalid streaming start location" msgstr "ნაკადის დასაწყისის არასწორი მდებარეობა" -#: replication/libpqwalreceiver/libpqwalreceiver.c:267 replication/libpqwalreceiver/libpqwalreceiver.c:358 +#: replication/libpqwalreceiver/libpqwalreceiver.c:230 replication/libpqwalreceiver/libpqwalreceiver.c:322 #, c-format msgid "password is required" msgstr "პაროლი სავალდებულოა" -#: replication/libpqwalreceiver/libpqwalreceiver.c:268 +#: replication/libpqwalreceiver/libpqwalreceiver.c:231 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:269 +#: replication/libpqwalreceiver/libpqwalreceiver.c:232 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:285 +#: replication/libpqwalreceiver/libpqwalreceiver.c:249 #, c-format msgid "could not clear search path: %s" msgstr "ძებნის ბილიკების გასუფთავების შეცდომა: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:331 replication/libpqwalreceiver/libpqwalreceiver.c:517 +#: replication/libpqwalreceiver/libpqwalreceiver.c:295 replication/libpqwalreceiver/libpqwalreceiver.c:483 #, c-format msgid "invalid connection string syntax: %s" msgstr "შეერთების სტრიქონის არასწორი სინტაქსი: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:359 +#: replication/libpqwalreceiver/libpqwalreceiver.c:323 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:386 +#: replication/libpqwalreceiver/libpqwalreceiver.c:350 #, c-format msgid "could not parse connection string: %s" msgstr "შეერთების სტრიქონის დამუშავების შეცდომა: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:459 +#: replication/libpqwalreceiver/libpqwalreceiver.c:425 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 replication/libpqwalreceiver/libpqwalreceiver.c:763 +#: replication/libpqwalreceiver/libpqwalreceiver.c:442 replication/libpqwalreceiver/libpqwalreceiver.c:737 #, c-format msgid "invalid response from primary server" msgstr "ძირითადი სერვერის არასწორი პასუხი" -#: replication/libpqwalreceiver/libpqwalreceiver.c:477 +#: replication/libpqwalreceiver/libpqwalreceiver.c:443 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:606 replication/libpqwalreceiver/libpqwalreceiver.c:613 replication/libpqwalreceiver/libpqwalreceiver.c:643 +#: replication/libpqwalreceiver/libpqwalreceiver.c:572 replication/libpqwalreceiver/libpqwalreceiver.c:579 replication/libpqwalreceiver/libpqwalreceiver.c:611 #, c-format msgid "could not start WAL streaming: %s" msgstr "wal ნაკადის დაწყების შეცდომა: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:667 +#: replication/libpqwalreceiver/libpqwalreceiver.c:635 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:690 +#: replication/libpqwalreceiver/libpqwalreceiver.c:659 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:705 +#: replication/libpqwalreceiver/libpqwalreceiver.c:675 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:715 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "error reading result of streaming command: %s" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:724 replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:696 replication/libpqwalreceiver/libpqwalreceiver.c:832 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "მოულოდნელი შედეგი CommandComplete-ის შემდეგ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:751 +#: replication/libpqwalreceiver/libpqwalreceiver.c:725 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:764 +#: replication/libpqwalreceiver/libpqwalreceiver.c:738 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "" -#: replication/libpqwalreceiver/libpqwalreceiver.c:920 replication/libpqwalreceiver/libpqwalreceiver.c:973 replication/libpqwalreceiver/libpqwalreceiver.c:980 +#: replication/libpqwalreceiver/libpqwalreceiver.c:793 replication/libpqwalreceiver/libpqwalreceiver.c:848 replication/libpqwalreceiver/libpqwalreceiver.c:855 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "\"WAL\" ნაკადიდან მონაცემების მიღების შეცდომა: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 +#: replication/libpqwalreceiver/libpqwalreceiver.c:875 #, c-format msgid "could not send data to WAL stream: %s" msgstr "'WAL' ნაკადისთვის მონაცემების გაგზავნა შეუძლებელია: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 +#: replication/libpqwalreceiver/libpqwalreceiver.c:978 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "რეპლიკაციის სლოტის \"%s\" შექმნის შეცდომა: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1030 #, c-format msgid "could not alter replication slot \"%s\": %s" msgstr "რეპლიკაციის სლოტის \"%s\" შეცვლა შეუძლებელია: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1064 #, c-format msgid "invalid query response" msgstr "მოთხოვნის არასწორი პასუხი" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1065 #, c-format msgid "Expected %d fields, got %d fields." msgstr "მოველოდი %d ველს. მივიღე %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1135 #, c-format msgid "the query interface requires a database connection" msgstr "მოთხოვნის ინტერფეისს ბაზასთან მიერთება სჭირდება" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1169 msgid "empty query" msgstr "ცარიელი მოთხოვნა" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 msgid "unexpected pipeline mode" msgstr "არხის მოულოდნელი რეჟიმი" @@ -20179,37 +20645,146 @@ msgstr "გაზიარებული-მეხსიერების მ msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" msgstr "" +#: replication/logical/conflict.c:126 +#, c-format +msgid "conflict detected on relation \"%s.%s\": conflict=%s" +msgstr "აღმოჩენილია კონფლიქტი ურთიერთობაზე \"%s.%s\": კონფლიქტი=%s" + +#: replication/logical/conflict.c:223 +#, c-format +msgid "Key already exists in unique index \"%s\", modified locally in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:227 +#, c-format +msgid "Key already exists in unique index \"%s\", modified by origin \"%s\" in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:239 +#, c-format +msgid "Key already exists in unique index \"%s\", modified by a non-existent origin in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:244 +#, c-format +msgid "Key already exists in unique index \"%s\", modified in transaction %u." +msgstr "" + +#: replication/logical/conflict.c:251 +#, c-format +msgid "Updating the row that was modified locally in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:254 +#, c-format +msgid "Updating the row that was modified by a different origin \"%s\" in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:259 +#, c-format +msgid "Updating the row that was modified by a non-existent origin in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:265 +msgid "Could not find the row to be updated." +msgstr "გასაახლებელი მწკრივის აღმოჩენა შეუძლებელია." + +#: replication/logical/conflict.c:270 +#, c-format +msgid "Deleting the row that was modified locally in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:273 +#, c-format +msgid "Deleting the row that was modified by a different origin \"%s\" in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:278 +#, c-format +msgid "Deleting the row that was modified by a non-existent origin in transaction %u at %s." +msgstr "" + +#: replication/logical/conflict.c:284 +msgid "Could not find the row to be deleted." +msgstr "წასაშლელი მწკრივის აღმოჩენა შეუძლებელია." + +#: replication/logical/conflict.c:347 +#, c-format +msgid "Key %s" +msgstr "" + +#: replication/logical/conflict.c:364 +#, c-format +msgid "existing local tuple %s" +msgstr "" + +#: replication/logical/conflict.c:369 +#, c-format +msgid "Existing local tuple %s" +msgstr "" + +#: replication/logical/conflict.c:396 +#, c-format +msgid "remote tuple %s" +msgstr "დაშორებული კორტეჟი %s" + +#: replication/logical/conflict.c:400 +#, c-format +msgid "Remote tuple %s" +msgstr "დაშორებული კორტეჟი %s" + +#: replication/logical/conflict.c:434 +#, c-format +msgid "replica identity %s" +msgstr "რეპლიკის იდენტიფიკატორი %s" + +#: replication/logical/conflict.c:435 +#, c-format +msgid "replica identity full %s" +msgstr "რეპლიკის იდენტიფიკატორი სრული %s" + +#: replication/logical/conflict.c:440 +#, c-format +msgid "Replica identity %s" +msgstr "რეპლიკის იდენტიფიკატორი %s" + +#: replication/logical/conflict.c:441 +#, c-format +msgid "Replica identity full %s" +msgstr "რეპლიკის იდენტიფიკატორი სრული %s" + #: replication/logical/decode.c:177 replication/logical/logical.c:141 #, c-format msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" msgstr "ლოგიკურ გაშიფვრას უქმეზე ძირითად სერვერზე \"wal_level\" >= \"logical\" ესაჭიროება" -#: replication/logical/launcher.c:334 +#: replication/logical/launcher.c:331 #, c-format -msgid "cannot start logical replication workers when max_replication_slots = 0" -msgstr "" +msgid "cannot start logical replication workers when \"max_active_replication_origins\"=0" +msgstr "შეუძლებელია ლოგიკური რეპლიკაციის დამხმარე პროცესების გაშვება, როცა \"max_active_replication_origins\"=0" -#: replication/logical/launcher.c:427 +#: replication/logical/launcher.c:424 #, c-format msgid "out of logical replication worker slots" msgstr "ლოგიკური რეპლიკაციის დამხმარე პროგრამის სლოტები არასაკმარისია" -#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 replication/slot.c:1524 storage/lmgr/lock.c:963 storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2804 storage/lmgr/lock.c:4189 storage/lmgr/lock.c:4254 storage/lmgr/lock.c:4604 storage/lmgr/predicate.c:2464 storage/lmgr/predicate.c:2479 storage/lmgr/predicate.c:3876 +#. translator: %s is a GUC variable name +#: replication/logical/launcher.c:425 replication/logical/launcher.c:511 replication/slot.c:1556 replication/slot.c:1579 storage/lmgr/lock.c:1039 storage/lmgr/lock.c:1077 storage/lmgr/lock.c:2966 storage/lmgr/lock.c:4371 storage/lmgr/lock.c:4436 storage/lmgr/lock.c:4786 storage/lmgr/predicate.c:2479 storage/lmgr/predicate.c:2494 storage/lmgr/predicate.c:3891 #, c-format msgid "You might need to increase \"%s\"." msgstr "როგორც ჩანს, გჭირდებათ, \"%s\" გაზარდოთ." -#: replication/logical/launcher.c:513 +#: replication/logical/launcher.c:510 #, c-format msgid "out of background worker slots" msgstr "ფონური დამხმარე პროცესების სლოტები არასაკმარისია" -#: replication/logical/launcher.c:720 +#: replication/logical/launcher.c:717 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "" -#: replication/logical/launcher.c:729 +#: replication/logical/launcher.c:726 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" msgstr "" @@ -20224,82 +20799,67 @@ msgstr "ლოგიკურ გაშიფვრას \"wal_level\" >= \"log msgid "logical decoding requires a database connection" msgstr "ლოგიკურ გაშიფვრას ბაზასთან მიერთება ესაჭიროება" -#: replication/logical/logical.c:364 replication/logical/logical.c:518 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "ლოგიკური გაშიფვრისთვის ფიზიკური რეპლიკაციის სლოტის გამოყენება შეუძლებელია" -#: replication/logical/logical.c:369 replication/logical/logical.c:528 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "რეპლიკაციის სლოტი \"%s\" ამ ბაზაში არ შექმნილა" -#: replication/logical/logical.c:376 +#: replication/logical/logical.c:377 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "შეუძლებელია ლოგიკური რეპლიკაციის სლოტის შექმნა ტრანზაქციაში, რომელიც ჩაწერებს ახორციელებს" -#: replication/logical/logical.c:539 +#: replication/logical/logical.c:540 #, c-format msgid "cannot use replication slot \"%s\" for logical decoding" msgstr "ლოგიკური გაშიფვრისთვის რეპლიკაციის სლოტის \"%s\" გამოყენება შეუძლებელია" -#: replication/logical/logical.c:541 +#: replication/logical/logical.c:542 replication/slot.c:828 replication/slot.c:863 #, c-format -msgid "This slot is being synchronized from the primary server." -msgstr "მიმდინარეობს ამ სლოტის სინქრონიზაცია ძირითადი სერვერიდან." +msgid "This replication slot is being synchronized from the primary server." +msgstr "მიმდინარეობს ამ რეპლიკაციის სლოტის სინქრონიზაცია ძირითადი სერვერიდან." -#: replication/logical/logical.c:542 +#: replication/logical/logical.c:543 #, c-format msgid "Specify another replication slot." msgstr "მიუთითეთ სხვა რეპლიკაციის სლოტი." -#: replication/logical/logical.c:553 replication/logical/logical.c:560 -#, c-format -msgid "can no longer get changes from replication slot \"%s\"" -msgstr "რეპლიკაციის სლოტიდან \"%s\" ცვლილებების მიღება უკვე შეუძლებელია" - -#: replication/logical/logical.c:555 -#, c-format -msgid "This slot has been invalidated because it exceeded the maximum reserved size." -msgstr "" - -#: replication/logical/logical.c:562 -#, c-format -msgid "This slot has been invalidated because it was conflicting with recovery." -msgstr "" - -#: replication/logical/logical.c:627 +#: replication/logical/logical.c:609 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "იწყება ლოგიკური გაშიფვრა სლოტისთვის \"%s\"" -#: replication/logical/logical.c:629 +#: replication/logical/logical.c:611 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "" -#: replication/logical/logical.c:777 +#: replication/logical/logical.c:759 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "" -#: replication/logical/logical.c:783 +#: replication/logical/logical.c:765 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "" -#: replication/logical/logical.c:954 replication/logical/logical.c:999 replication/logical/logical.c:1044 replication/logical/logical.c:1090 +#: replication/logical/logical.c:936 replication/logical/logical.c:981 replication/logical/logical.c:1026 replication/logical/logical.c:1072 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "" -#: replication/logical/logical.c:1322 replication/logical/logical.c:1371 replication/logical/logical.c:1412 replication/logical/logical.c:1498 replication/logical/logical.c:1547 +#: replication/logical/logical.c:1304 replication/logical/logical.c:1353 replication/logical/logical.c:1394 replication/logical/logical.c:1480 replication/logical/logical.c:1529 #, c-format msgid "logical streaming requires a %s callback" msgstr "" -#: replication/logical/logical.c:1457 +#: replication/logical/logical.c:1439 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "" @@ -20324,7 +20884,7 @@ msgstr "მასივი ერთგანზომილებიანი msgid "array must not contain nulls" msgstr "მასივი ნულოვან მნიშვნელობებს არ უნდა შეიცავდეს" -#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1406 utils/adt/jsonb.c:1304 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1428 utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "მასივს ლუწი რაოდენობის ელემენტები უნდა ჰქონდეს" @@ -20334,32 +20894,32 @@ msgstr "მასივს ლუწი რაოდენობის ელე msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "" -#: replication/logical/origin.c:190 +#: replication/logical/origin.c:195 #, c-format -msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0" -msgstr "რეპლიკაციის წყაროდან გამოთხოვა ან მისით მანიპულაცია შეუძლებელია, როცა \"max_replicaion_slots\" ნულს უდრის" +msgid "cannot query or manipulate replication origin when \"max_active_replication_origins\" is 0" +msgstr "რეპლიკაციის წყაროდან გამოთხოვა ან მისით მანიპულაცია შეუძლებელია, როცა \"max_active_replication_origins\" ნულს უდრის" -#: replication/logical/origin.c:195 +#: replication/logical/origin.c:200 #, c-format msgid "cannot manipulate replication origins during recovery" msgstr "აღდგენისა რეპლიკაციის წყაროებს ვერ შეცვლით" -#: replication/logical/origin.c:240 +#: replication/logical/origin.c:245 #, c-format msgid "replication origin \"%s\" does not exist" msgstr "რეპლიკაციის წყარო \"%s\" არ არსებობს" -#: replication/logical/origin.c:331 +#: replication/logical/origin.c:336 #, c-format msgid "could not find free replication origin ID" msgstr "თავისუფალი რეპლიკაციის წყაროს ID-ის პოვნა შეუძლებელია" -#: replication/logical/origin.c:365 +#: replication/logical/origin.c:370 #, c-format msgid "could not drop replication origin with ID %d, in use by PID %d" msgstr "რეპლიკაციის წყაროს, ID-ით %d გადაგდების შეცდომა. გამოიყენება PID-ის მიერ %d" -#: replication/logical/origin.c:492 +#: replication/logical/origin.c:497 #, c-format msgid "replication origin with ID %d does not exist" msgstr "რეპლიკაციის წყარო ID-ით %d არ არსებობს" @@ -20371,8 +20931,8 @@ msgstr "" #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase \"max_replication_slots\"" -msgstr "თავისუფალი რეპლიკაციის მდგომარეობის პოვნა შეუძლებელია. გაზარდეთ \"max_replication_slots\"" +msgid "could not find free replication state, increase \"max_active_replication_origins\"" +msgstr "თავისუფალი რეპლიკაციის მდგომარეობის პოვნა შეუძლებელია. გაზარდეთ \"max_active_replication_origins\"" #: replication/logical/origin.c:806 #, c-format @@ -20394,10 +20954,10 @@ msgstr "რეპლიკაციის წყარო ID-ით %d უკვ msgid "could not find free replication state slot for replication origin with ID %d" msgstr "" -#: replication/logical/origin.c:957 replication/logical/origin.c:1158 replication/slot.c:2384 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 #, c-format -msgid "Increase \"max_replication_slots\" and try again." -msgstr "გაზარდეთ \"max_replication_slots\"-ის მნიშვნელობა და თავიდან სცადეთ." +msgid "Increase \"max_active_replication_origins\" and try again." +msgstr "გაზარდეთ \"max_active_replication_origins\"-ის მნიშვნელობა და თავიდან სცადეთ." #: replication/logical/origin.c:1114 #, c-format @@ -20419,1055 +20979,1137 @@ msgstr "რეპლიკაციის წყაროს სახელი msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." msgstr "საწყისი სახელები, \"%s\", \"%s\" და სახელები, რომლებიც \"pg_\"-ით იწყება, დარეზერვებულია." -#: replication/logical/relation.c:242 +#: replication/logical/relation.c:241 +msgid ", " +msgstr ", " + +#: replication/logical/relation.c:243 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:245 -#, c-format -msgid ", \"%s\"" -msgstr ", \"%s\"" - -#: replication/logical/relation.c:251 +#: replication/logical/relation.c:262 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" msgstr[0] "" msgstr[1] "" -#: replication/logical/relation.c:306 +#: replication/logical/relation.c:273 +#, c-format +msgid "logical replication target relation \"%s.%s\" has incompatible generated column: %s" +msgid_plural "logical replication target relation \"%s.%s\" has incompatible generated columns: %s" +msgstr[0] "ლოგიკური რეპლიკაციის სამიზნე ურთიერთობას \"%s.%s\" აქვს არათავსებადი გენერირებული სვეტი: %s" +msgstr[1] "ლოგიკური რეპლიკაციის სამიზნე ურთიერთობას \"%s.%s\" აქვს არათავსებადი გენერირებული სვეტი: %s" + +#: replication/logical/relation.c:328 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "" -#: replication/logical/relation.c:398 +#: replication/logical/relation.c:421 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "" -#: replication/logical/reorderbuffer.c:3970 +#: replication/logical/reorderbuffer.c:4122 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "შეცდომა მონაცემის ფაილში ჩაწერისას XID-სთვის %u: %m" -#: replication/logical/reorderbuffer.c:4316 replication/logical/reorderbuffer.c:4341 +#: replication/logical/reorderbuffer.c:4468 replication/logical/reorderbuffer.c:4493 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "" -#: replication/logical/reorderbuffer.c:4320 replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4472 replication/logical/reorderbuffer.c:4497 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "" -#: replication/logical/reorderbuffer.c:4595 +#: replication/logical/reorderbuffer.c:4746 #, c-format -msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" -msgstr "" +msgid "could not remove file \"%s\" during removal of %s/%s/xid*: %m" +msgstr "ვერ წავშალე ფაილი \"%s\" %s/%s/xid*-ის წაშლისას: %m" -#: replication/logical/reorderbuffer.c:5091 +#: replication/logical/reorderbuffer.c:5243 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "" -#: replication/logical/slotsync.c:215 +#: replication/logical/slotsync.c:214 #, c-format -msgid "could not sync slot \"%s\" as remote slot precedes local slot" -msgstr "" +msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot" +msgstr "რეპლიკაციის სლოტის სინქრონიზაცია \"%s\" შეუძლებელია, რადგან დაშორებული სლოტი წინ უსწრებს ლოკალურ სლოტს" -#: replication/logical/slotsync.c:217 +#: replication/logical/slotsync.c:216 #, c-format -msgid "Remote slot has LSN %X/%X and catalog xmin %u, but local slot has LSN %X/%X and catalog xmin %u." +msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u." msgstr "" -#: replication/logical/slotsync.c:459 +#: replication/logical/slotsync.c:460 #, c-format -msgid "dropped replication slot \"%s\" of dbid %u" -msgstr "წაიშალა რეპლიკაციის სლოტი \"%s\" dbid-სთვის %u" +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "წაიშალა რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზიდან OID-ით %u" -#: replication/logical/slotsync.c:579 +#: replication/logical/slotsync.c:580 #, c-format -msgid "could not sync slot \"%s\"" -msgstr "სლოტის \"%s\" სინქრონიზაცია შეუძლებელია" +msgid "could not synchronize replication slot \"%s\"" +msgstr "რეპლიკაციის სლოტის \"%s\" სინქრონიზაცია შეუძლებელია" -#: replication/logical/slotsync.c:580 +#: replication/logical/slotsync.c:581 #, c-format -msgid "Logical decoding cannot find consistent point from local slot's LSN %X/%X." +msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X." msgstr "" -#: replication/logical/slotsync.c:589 +#: replication/logical/slotsync.c:590 #, c-format -msgid "newly created slot \"%s\" is sync-ready now" -msgstr "" +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "ახლად შექმნილი რეპლიკაციის სლოტი \"%s\" ახლა სინქრონიზებულია" -#: replication/logical/slotsync.c:628 +#: replication/logical/slotsync.c:629 #, c-format -msgid "skipping slot synchronization as the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" +msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" msgstr "" -#: replication/logical/slotsync.c:650 +#: replication/logical/slotsync.c:651 #, c-format msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby" msgstr "" -#: replication/logical/slotsync.c:819 +#: replication/logical/slotsync.c:820 #, c-format msgid "could not fetch failover logical slots info from the primary server: %s" msgstr "ვერ გამოვითხოვე გადართვის ლოგიკური სლოტების ინფორმაცია ძირითადი სერვერიდან: %s" -#: replication/logical/slotsync.c:965 +#: replication/logical/slotsync.c:969 #, c-format -msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s" -msgstr "ვერ გამოვითხოვე prmary_slot_name \"%s\"-ის ინფორმაცია ძირითადი სერვერიდან: %s" +msgid "could not fetch primary slot name \"%s\" info from the primary server: %s" +msgstr "ვერ გამოვითხოვე ძირითადი სლოტის სახელის \"%s\" ინფორმაცია ძირითადი სერვერიდან: %s" -#: replication/logical/slotsync.c:967 +#: replication/logical/slotsync.c:971 #, c-format -msgid "Check if primary_slot_name is configured correctly." +msgid "Check if \"primary_slot_name\" is configured correctly." msgstr "" -#: replication/logical/slotsync.c:987 +#: replication/logical/slotsync.c:991 #, c-format msgid "cannot synchronize replication slots from a standby server" msgstr "უქმე სერვერიდან რეპლიკაციის სლოტების სინქრონიზაცია შეუძლებელია" -#: replication/logical/slotsync.c:995 -#, c-format -msgid "slot synchronization requires valid primary_slot_name" -msgstr "" - #. translator: second %s is a GUC variable name -#: replication/logical/slotsync.c:997 +#: replication/logical/slotsync.c:1000 #, c-format -msgid "The replication slot \"%s\" specified by %s does not exist on the primary server." -msgstr "რეპლიკაციის სლოტი \"%s\", რომელიც %s-მა მიუთითა, არ არსებობს ძირითად სერვერზე." +msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "რეპლიკაციის სლოტი \"%s\", რომელიც \"%s\"-მა მიუთითა, არ არსებობს ძირითად სერვერზე" -#: replication/logical/slotsync.c:1029 +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1033 #, c-format -msgid "slot synchronization requires dbname to be specified in %s" -msgstr "სლოტის სინქრონიზაციას \"%s\"-ში ბაზის სახელის მითითება სჭირდება" +msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "რეპლიკაციის სლოტის სინქრონიზაციას სჭირდება, რომ \"%s\" მითითებული იყოს \"%s\"-ში" -#: replication/logical/slotsync.c:1050 +#: replication/logical/slotsync.c:1054 #, c-format -msgid "slot synchronization requires \"wal_level\" >= \"logical\"" -msgstr "სლოტის სინქრონიზაციას \"wal_level\" >= \"logical\" ესაჭიროება" +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "რეპლიკაციის სლოტის სინქრონიზაციას \"wal_level\" >= \"logical\" ესაჭიროება" -#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1067 replication/logical/slotsync.c:1095 #, c-format -msgid "slot synchronization requires %s to be defined" -msgstr "სლოტის სინქრონიზაციას %s-ის აღწერა სჭირდება" +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "რეპლიკაციის სლოტის სინქრონიზაციას \"%s\"-ის დაყენება სჭირდება" -#: replication/logical/slotsync.c:1077 +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1081 #, c-format -msgid "slot synchronization requires %s to be enabled" -msgstr "სლოტის სინქრონიზაციას %s-ის ჩართვა სჭირდება" +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "რეპლიკაციის სლოტის სინქრონიზაციას \"%s\"-ის ჩართვა სჭირდება" #. translator: %s is a GUC variable name -#: replication/logical/slotsync.c:1129 +#: replication/logical/slotsync.c:1133 #, c-format -msgid "slot sync worker will shutdown because %s is disabled" +msgid "replication slot synchronization worker will shut down because \"%s\" is disabled" msgstr "" -#: replication/logical/slotsync.c:1138 +#: replication/logical/slotsync.c:1142 #, c-format -msgid "slot sync worker will restart because of a parameter change" +msgid "replication slot synchronization worker will restart because of a parameter change" msgstr "" -#: replication/logical/slotsync.c:1162 +#: replication/logical/slotsync.c:1166 #, c-format -msgid "slot sync worker is shutting down on receiving SIGINT" +msgid "replication slot synchronization worker is shutting down on receiving SIGINT" msgstr "" -#: replication/logical/slotsync.c:1287 +#: replication/logical/slotsync.c:1291 #, c-format msgid "cannot synchronize replication slots when standby promotion is ongoing" msgstr "რეპლიკაციის სლოტების სინქრონიზაცია შეუძლებელია უქმეს წახალისების მიმდინარეობისას" -#: replication/logical/slotsync.c:1295 +#: replication/logical/slotsync.c:1299 #, c-format msgid "cannot synchronize replication slots concurrently" msgstr "რეპლიკაციის სლოტების ერთდროული სინქრონიზაცია შეუძლებელია" -#: replication/logical/slotsync.c:1403 +#: replication/logical/slotsync.c:1407 #, c-format msgid "slot sync worker started" msgstr "სლოტის სინქრონიზაციის დამხმარე პროცესი გაეშვა" -#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 replication/walreceiver.c:307 +#: replication/logical/slotsync.c:1470 replication/slotfuncs.c:929 #, c-format -msgid "could not connect to the primary server: %s" -msgstr "შეუძლებელია მიერთება ძირითად სერვერთან: %s" +msgid "synchronization worker \"%s\" could not connect to the primary server: %s" +msgstr "სინქრონიზაციის დამხმარე პროცესი \"%s\" ვერ მიუერთდა ძირითად სერვერს: %s" -#: replication/logical/snapbuild.c:643 +#: replication/logical/snapbuild.c:514 #, c-format msgid "initial slot snapshot too large" msgstr "საწყისი სლოტის სწრაფი ასლი ძალიან დიდია" -#: replication/logical/snapbuild.c:697 +#: replication/logical/snapbuild.c:568 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" msgstr[0] "" msgstr[1] "" -#: replication/logical/snapbuild.c:1392 replication/logical/snapbuild.c:1484 replication/logical/snapbuild.c:2000 +#: replication/logical/snapbuild.c:1305 replication/logical/snapbuild.c:1402 replication/logical/snapbuild.c:1908 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "" -#: replication/logical/snapbuild.c:1394 +#: replication/logical/snapbuild.c:1307 #, c-format msgid "There are no running transactions." msgstr "გაშვებული ტრანზაქციების გარეშე." -#: replication/logical/snapbuild.c:1436 +#: replication/logical/snapbuild.c:1354 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "" -#: replication/logical/snapbuild.c:1438 replication/logical/snapbuild.c:1462 +#: replication/logical/snapbuild.c:1356 replication/logical/snapbuild.c:1380 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "" -#: replication/logical/snapbuild.c:1460 +#: replication/logical/snapbuild.c:1378 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "" -#: replication/logical/snapbuild.c:1486 +#: replication/logical/snapbuild.c:1404 #, c-format msgid "There are no old transactions anymore." msgstr "ძველი ტრანზაქციები აღარ დარჩა." -#: replication/logical/snapbuild.c:1887 +#: replication/logical/snapbuild.c:1775 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "" -#: replication/logical/snapbuild.c:1893 +#: replication/logical/snapbuild.c:1781 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "" -#: replication/logical/snapbuild.c:1934 +#: replication/logical/snapbuild.c:1822 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "" -#: replication/logical/snapbuild.c:2002 +#: replication/logical/snapbuild.c:1910 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "ლოგიკური გაშიფვრა შენახული სწრაფი ასლის გამოყენებას დაიწყებს." -#: replication/logical/snapbuild.c:2109 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "could not parse file name \"%s\"" msgstr "ფაილის სახელის დამუშავების შეცდომა: \"%s\"" -#: replication/logical/tablesync.c:161 +#: replication/logical/tablesync.c:160 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "" -#: replication/logical/tablesync.c:641 +#: replication/logical/tablesync.c:640 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "" -#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 +#: replication/logical/tablesync.c:830 replication/logical/tablesync.c:971 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "" -#: replication/logical/tablesync.c:834 +#: replication/logical/tablesync.c:837 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "ცხრილი \"%s.%s\" გამომცემელზე ნაპოვნი არაა" -#: replication/logical/tablesync.c:892 +#: replication/logical/tablesync.c:890 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "" -#: replication/logical/tablesync.c:1071 +#: replication/logical/tablesync.c:1069 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "" -#: replication/logical/tablesync.c:1230 +#: replication/logical/tablesync.c:1236 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" -#: replication/logical/tablesync.c:1429 +#: replication/logical/tablesync.c:1351 +#, c-format +msgid "table synchronization worker for subscription \"%s\" could not connect to the publisher: %s" +msgstr "" + +#: replication/logical/tablesync.c:1436 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "ცხრილის კოპირებამ ვერ გაუშვა ტრანზაქცია გამომცემელზე: %s" -#: replication/logical/tablesync.c:1472 +#: replication/logical/tablesync.c:1479 #, c-format msgid "replication origin \"%s\" already exists" msgstr "რეპლიკაციის წყარო \"%s\" უკვე არსებობს" -#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 +#: replication/logical/tablesync.c:1512 replication/logical/worker.c:2383 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "" -#: replication/logical/tablesync.c:1518 +#: replication/logical/tablesync.c:1525 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "ცხრილის კოპირებამ ვერ დაასრულა ტრანზაქცია გამომცემელზე: %s" -#: replication/logical/worker.c:481 +#: replication/logical/worker.c:479 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" msgstr "" -#: replication/logical/worker.c:483 +#: replication/logical/worker.c:481 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." msgstr "" -#: replication/logical/worker.c:852 replication/logical/worker.c:967 +#: replication/logical/worker.c:851 replication/logical/worker.c:966 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "" -#: replication/logical/worker.c:2500 +#: replication/logical/worker.c:2530 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "" -#: replication/logical/worker.c:2507 +#: replication/logical/worker.c:2537 #, 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 "" -#: replication/logical/worker.c:3371 +#: replication/logical/worker.c:3472 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "არასწორი ლოგიკური რეპლიკაციის შეტყობინების ტიპი \"??? (%d)\"" -#: replication/logical/worker.c:3543 +#: replication/logical/worker.c:3644 #, c-format msgid "data stream from publisher has ended" msgstr "გამომცემლის მონაცემების ნაკადი დასრულდა" -#: replication/logical/worker.c:3697 +#: replication/logical/worker.c:3798 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "ლოგიკური რეპლიკაციის დამხმარე პროცესის შეწყვეტა მოლოდინის ვადის ამოწურვის გამო" -#: replication/logical/worker.c:3891 +#: replication/logical/worker.c:3995 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" msgstr "" -#: replication/logical/worker.c:3905 +#: replication/logical/worker.c:4009 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "" -#: replication/logical/worker.c:3936 +#: replication/logical/worker.c:4040 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" msgstr "" -#: replication/logical/worker.c:3940 +#: replication/logical/worker.c:4044 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" msgstr "" -#: replication/logical/worker.c:3954 +#: replication/logical/worker.c:4058 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked" msgstr "ლოგიკური რეპლიკაციის პარალელური გადატარების დამხმარე პროცესი გამოწერისთვის \"%s\" გაჩერდება, რადგან გამოწერის მფლობელის ზემომხმარებლის პრივილეგიები გაუქმდა" -#: replication/logical/worker.c:3958 +#: replication/logical/worker.c:4062 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked" msgstr "" -#: replication/logical/worker.c:4478 +#: replication/logical/worker.c:4564 #, c-format msgid "subscription has no replication slot set" msgstr "გამოწერას რეპლიკაციის სლოტი დაყენებული არ აქვს" -#: replication/logical/worker.c:4591 +#: replication/logical/worker.c:4589 +#, c-format +msgid "apply worker for subscription \"%s\" could not connect to the publisher: %s" +msgstr "დამხმარე პროცესის გამოყენება გამოწერისთვის \"%s\" ვერ მიუერთდა გამომცემელს: %s" + +#: replication/logical/worker.c:4678 #, c-format msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" msgstr "" -#: replication/logical/worker.c:4607 +#: replication/logical/worker.c:4694 #, c-format msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "" -#: replication/logical/worker.c:4631 +#: replication/logical/worker.c:4718 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "" -#: replication/logical/worker.c:4636 +#: replication/logical/worker.c:4723 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "გაეშვა ლოგიკური რეპლიკაციის გადატარების დამხმარე პროცესი გამოწერისთვის \"%s\"" -#: replication/logical/worker.c:4734 +#: replication/logical/worker.c:4845 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "გამოწერა \"%s\" გაითიშა შეცდომის გამო" -#: replication/logical/worker.c:4782 +#: replication/logical/worker.c:4893 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "ლოგიკური რეპლიკაცია იწყებს ტრანზაქციის გამოტოვებას მისამართზე LSN %X/%X" -#: replication/logical/worker.c:4796 +#: replication/logical/worker.c:4907 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "ლოგიკურმა რეპლიკაციამ დაასრულა ტრანზაქციის გამოტოვება მისამართზე LSN %X/%X" -#: replication/logical/worker.c:4878 +#: replication/logical/worker.c:4989 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "skip-LSN გამოწერისთვის \"%s\" გასუფთავებულია" -#: replication/logical/worker.c:4879 +#: replication/logical/worker.c:4990 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." msgstr "" -#: replication/logical/worker.c:4905 +#: replication/logical/worker.c:5027 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" msgstr "" -#: replication/logical/worker.c:4909 +#: replication/logical/worker.c:5031 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" msgstr "" -#: replication/logical/worker.c:4914 +#: replication/logical/worker.c:5036 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" msgstr "" -#: replication/logical/worker.c:4925 +#: replication/logical/worker.c:5047 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" msgstr "" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:5054 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" msgstr "" -#: replication/logical/worker.c:4943 +#: replication/logical/worker.c:5065 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" msgstr "" -#: replication/logical/worker.c:4951 +#: replication/logical/worker.c:5073 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "" -#: replication/pgoutput/pgoutput.c:315 +#: replication/pgoutput/pgoutput.c:328 #, c-format msgid "invalid proto_version" msgstr "არასწორი proto_version" -#: replication/pgoutput/pgoutput.c:320 +#: replication/pgoutput/pgoutput.c:333 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version \"%s\" დიაპაზონს გარეთაა" -#: replication/pgoutput/pgoutput.c:337 +#: replication/pgoutput/pgoutput.c:350 #, c-format msgid "invalid publication_names syntax" msgstr "არასწორი publication_names syntax" -#: replication/pgoutput/pgoutput.c:407 -#, c-format -msgid "proto_version option missing" -msgstr "პარამეტრი proto_version მითითებული არაა" - -#: replication/pgoutput/pgoutput.c:411 +#: replication/pgoutput/pgoutput.c:420 replication/pgoutput/pgoutput.c:424 #, c-format -msgid "publication_names option missing" -msgstr "აკლა პარამეტრი publication_names" +msgid "option \"%s\" missing" +msgstr "პარამეტრი \"%s\" აკლია" -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:469 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or lower" msgstr "კლიენტმა გამოაგზავნა proto_version=%d მაგრამ სერვერს მხოლოდ %d პროტოკოლის და ქვემოთ გააჩნია მხარდაჭერა" -#: replication/pgoutput/pgoutput.c:458 +#: replication/pgoutput/pgoutput.c:475 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or higher" msgstr "კლიენტმა გამოაგზავნა proto_version=%d მაგრამ სერვერს მხოლოდ %d პროტოკოლის და ზემოთ გააჩნია მხარდაჭერა" -#: replication/pgoutput/pgoutput.c:473 +#: replication/pgoutput/pgoutput.c:490 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "" -#: replication/pgoutput/pgoutput.c:479 +#: replication/pgoutput/pgoutput.c:496 #, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" msgstr "" -#: replication/pgoutput/pgoutput.c:484 +#: replication/pgoutput/pgoutput.c:501 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "" -#: replication/pgoutput/pgoutput.c:498 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "" -#: replication/pgoutput/pgoutput.c:503 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "" -#: replication/slot.c:260 +#: replication/pgoutput/pgoutput.c:1085 +#, c-format +msgid "cannot use different values of publish_generated_columns for table \"%s.%s\" in different publications" +msgstr "" + +#: replication/pgoutput/pgoutput.c:1792 +#, c-format +msgid "skipped loading publication: %s" +msgstr "გამოტოვებულია ჩატვირთვა პუბლიკაციისთვის: %s" + +#: replication/pgoutput/pgoutput.c:1793 +#, c-format +msgid "The publication does not exist at this point in the WAL." +msgstr "WAL-ში ამ წერტილთან პუბლიკაცია არ არსებობს." + +#: replication/pgoutput/pgoutput.c:1794 +#, c-format +msgid "Create the publication if it does not exist." +msgstr "პუბლიკაციის შექმნა, თუ ის არ არსებობს." + +#: replication/slot.c:275 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "რეპლიკაციის სლოტის სახელი \"%s\" ძალიან მოკლეა" -#: replication/slot.c:269 +#: replication/slot.c:284 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "რეპლიკაციის სლოტის სახელი \"%s\" ძალიან გრძელია" -#: replication/slot.c:282 +#: replication/slot.c:297 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "რეპლიკაციის სლოტის სახელი \"%s\" არასწორ სიმბოლოს შეიცავს" -#: replication/slot.c:284 +#: replication/slot.c:299 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "" -#: replication/slot.c:333 +#: replication/slot.c:348 #, c-format msgid "cannot enable failover for a replication slot created on the standby" msgstr "" -#: replication/slot.c:345 replication/slot.c:849 +#: replication/slot.c:360 replication/slot.c:885 #, c-format msgid "cannot enable failover for a temporary replication slot" msgstr "დროებითი რეპლიკაციის სლოტისთვის გადართვის ჩართვა შეუძლებელია" -#: replication/slot.c:370 +#: replication/slot.c:385 #, c-format msgid "replication slot \"%s\" already exists" msgstr "რეპლიკაციის სლოტი \"%s\" უკვე არსებობს" -#: replication/slot.c:380 +#: replication/slot.c:395 #, c-format msgid "all replication slots are in use" msgstr "ყველა რეპლიკაციის სლოტი გამოიყენება" -#: replication/slot.c:381 +#: replication/slot.c:396 #, c-format msgid "Free one or increase \"max_replication_slots\"." msgstr "გაათავისუფლეთ ერთი მაინც ან გაზარდეთ \"max_replication_slots\"." -#: replication/slot.c:560 replication/slot.c:2453 replication/slotfuncs.c:661 utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 +#: replication/slot.c:579 replication/slotfuncs.c:664 utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:739 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "რეპლიკაციის სლოტი არ არსებობს: %s" -#: replication/slot.c:606 replication/slot.c:1337 +#: replication/slot.c:634 replication/slot.c:1388 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "რეპლიკაციის სლოტი (%s) აქტიურია PID-ისთვის %d" -#: replication/slot.c:638 +#: replication/slot.c:651 +#, c-format +msgid "can no longer access replication slot \"%s\"" +msgstr "რეპლიკაციის სლოტთან \"%s\" წვდომა აღარ მაქვს" + +#: replication/slot.c:653 +#, c-format +msgid "This replication slot has been invalidated due to \"%s\"." +msgstr "ეს რეპლიკაციის სლოტი მონიშნულია, როგორც არასწორი \"%s\"-ის გამო." + +#: replication/slot.c:672 #, c-format msgid "acquired logical replication slot \"%s\"" msgstr "მივიღე ლოგიკური რეპლიკაციის სლოტი \"%s\"" -#: replication/slot.c:640 +#: replication/slot.c:674 #, c-format msgid "acquired physical replication slot \"%s\"" msgstr "მივიღე ფიზიკური რეპლიკაციის სლოტი \"%s\"" -#: replication/slot.c:729 +#: replication/slot.c:759 #, c-format msgid "released logical replication slot \"%s\"" msgstr "გათავისუფლდა ლოგიკური რეპლიკაციის სლოტი \"%s\"" -#: replication/slot.c:731 +#: replication/slot.c:761 #, c-format msgid "released physical replication slot \"%s\"" msgstr "გათავისუფლდა ფიზიკური რეპლიკაციის სლოტი \"%s\"" -#: replication/slot.c:797 +#: replication/slot.c:827 #, c-format msgid "cannot drop replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის \"%s\" წაშლის შეცდომა" -#: replication/slot.c:798 replication/slot.c:829 -#, c-format -msgid "This slot is being synced from the primary server." -msgstr "მიმდინარეობს ამ სლოტის სინქრონიზაცია ძირითადი სერვერიდან." - -#: replication/slot.c:816 +#: replication/slot.c:850 #, c-format msgid "cannot use %s with a physical replication slot" msgstr "%s-ის გამოყენება ფიზიკური რეპლიკაციის სლოტთან ერთად შეუძლებელია" -#: replication/slot.c:828 +#: replication/slot.c:862 #, c-format msgid "cannot alter replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის \"%s\" შეცვლა შეუძლებელია" -#: replication/slot.c:838 +#: replication/slot.c:872 #, c-format msgid "cannot enable failover for a replication slot on the standby" msgstr "" -#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 +#: replication/slot.c:1020 replication/slot.c:2120 replication/slot.c:2505 #, c-format msgid "could not remove directory \"%s\"" msgstr "საქაღალდის (\"%s\") წაშლის შეცდომა" -#: replication/slot.c:1372 +#: replication/slot.c:1423 #, c-format msgid "replication slots can only be used if \"max_replication_slots\" > 0" msgstr "რეპლიკაციის სლოტების გამოყენება შესაძლებელია, მხოლოდ, როცა \"max_replication_slots\" > 0" -#: replication/slot.c:1377 +#: replication/slot.c:1428 #, c-format msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" msgstr "რეპლიკაციის სლოტების გამოყენება შესაძლებელია, მხოლოდ, როცა \"wal_level\" >= \"replica\"" -#: replication/slot.c:1389 +#: replication/slot.c:1440 #, c-format msgid "permission denied to use replication slots" msgstr "რეპლიკაციის სლოტების გამოყენების წვდომა აკრძალულია" -#: replication/slot.c:1390 +#: replication/slot.c:1441 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "" -#: replication/slot.c:1498 +#: replication/slot.c:1550 #, c-format -msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." -msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." +msgid "The slot's restart_lsn %X/%X exceeds the limit by % byte." +msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by % bytes." msgstr[0] "" msgstr[1] "" -#: replication/slot.c:1506 +#: replication/slot.c:1561 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "სლოტი კონფლიქტშია XID-ის ჰორიზონტთან %u." -#: replication/slot.c:1511 +#: replication/slot.c:1566 msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server." msgstr "ლოგიკურ გაშიფვრას უქმეზე ძირითად სერვერზე \"wal_level\" >= \"logical\" ესაჭიროება." -#: replication/slot.c:1519 +#. translator: %s is a GUC variable name +#: replication/slot.c:1575 +#, c-format +msgid "The slot's idle time of %dmin %02ds exceeds the configured \"%s\" duration of %dmin." +msgstr "" + +#: replication/slot.c:1589 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის (%2$s) გასათავისუფლებლად მოხდება პროცესის მოკვლა: %1$d" -#: replication/slot.c:1521 +#: replication/slot.c:1591 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "მოძველებული რეპლიკაციის სლოტის (\"%s\") არასწორად გამოცხადება" -#: replication/slot.c:2249 +#: replication/slot.c:2443 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "რეპლიკაციის სლოტის (%s) ფაილის არასწორი მაგიური რიცხვი: %u (უნდა იყოს %u)" -#: replication/slot.c:2256 +#: replication/slot.c:2450 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "რეპლიკაციის სლოტის ფაილის (%s) მხარდაუჭერელი ვერსია %u" -#: replication/slot.c:2263 +#: replication/slot.c:2457 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "რეპლიკაციის სლოტის ფაილის (%s) დაზიანებული სიგრძე: %u" -#: replication/slot.c:2299 +#: replication/slot.c:2493 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "" -#: replication/slot.c:2333 +#: replication/slot.c:2529 #, c-format msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" msgstr "ლოგიკური რეპლიკაციის სლოტი\"%s\" არსებობს, მაგრამ \"wal_level\" < \"logical\"" -#: replication/slot.c:2335 +#: replication/slot.c:2531 #, c-format msgid "Change \"wal_level\" to be \"logical\" or higher." msgstr "შეცვალეთ \"wal_level\" \"logical\"-ზე ან უფრო მაღალზე." -#: replication/slot.c:2339 +#: replication/slot.c:2543 +#, c-format +msgid "logical replication slot \"%s\" exists on the standby, but \"hot_standby\" = \"off\"" +msgstr "ლოგიკური რეპლიკაციის სლოტი\"%s\" არსებობს, მაგრამ \"hot_standby\" = \"off\"" + +#: replication/slot.c:2545 +#, c-format +msgid "Change \"hot_standby\" to be \"on\"." +msgstr "" + +#: replication/slot.c:2550 #, c-format msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" msgstr "ფიზიკური რეპლიკაციის სლოტი\"%s\" არსებობს, მაგრამ \"wal_level\" < \"replica\"" -#: replication/slot.c:2341 +#: replication/slot.c:2552 #, c-format msgid "Change \"wal_level\" to be \"replica\" or higher." msgstr "შეცვალეთ \"wal_level\" \"replica\"-ზე ან ზემოთ." -#: replication/slot.c:2383 +#: replication/slot.c:2598 #, c-format msgid "too many replication slots active before shutdown" msgstr "გამორთვამდე მეტისმეტად ბევრი რეპლიკაციის სლოტი იყო აქტიური" -#: replication/slot.c:2461 +#: replication/slot.c:2599 #, c-format -msgid "\"%s\" is not a physical replication slot" -msgstr "\"%s\" ფიზიკური რეპლიკაციის სლოტი არაა" +msgid "Increase \"max_replication_slots\" and try again." +msgstr "გაზარდეთ \"max_replication_slots\"-ის მნიშვნელობა და თავიდან სცადეთ." -#: replication/slot.c:2637 +#: replication/slot.c:2676 #, c-format -msgid "replication slot \"%s\" specified in parameter %s does not exist" -msgstr "რეპლიკაციის სლოტმა \"%s\" მიუთითა პარამეტრი %s, რომელიც არ არსებობს" +msgid "Replication slot \"%s\" does not exist." +msgstr "რეპლიკაციის სლოტი \"%s\" არ არსებობს." -#: replication/slot.c:2639 replication/slot.c:2680 replication/slot.c:2695 +#: replication/slot.c:2684 #, c-format -msgid "Logical replication is waiting on the standby associated with \"%s\"." -msgstr "ლოგიკური რეპლიკაცია \"%s\"-სთან ასოცირებულ უქმეს ელოდება." +msgid "\"%s\" is not a physical replication slot." +msgstr "\"%s\" ფიზიკური რეპლიკაციის სლოტი არაა." -#: replication/slot.c:2641 +#: replication/slot.c:2863 #, c-format -msgid "Consider creating the slot \"%s\" or amend parameter %s." -msgstr "განიხილეთ, შექმნათ სლოტი \"%s\", ან მიაწერეთ პარამეტრი %s." +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "რეპლიკაციის სლოტი \"%s\", მითითებული პარამეტრში %s, არ არსებობს" -#: replication/slot.c:2658 +#: replication/slot.c:2865 replication/slot.c:2899 replication/slot.c:2914 #, c-format -msgid "cannot have logical replication slot \"%s\" in parameter %s" -msgstr "ვერ გექნებათ ლოგიკური რეპლიკაციის სლოტი \"%s\" პარამეტრში %s" +msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"." +msgstr "ლოგიკური რეპლიკაცია ელოდება უქმე სლოტს, რომელიც დაკავშირებულია რეპლიკაციის სლოტთან \"%s\"." -#: replication/slot.c:2660 +#: replication/slot.c:2867 #, c-format -msgid "Logical replication is waiting for correction on \"%s\"." -msgstr "ლოგიკური რეპლიკაციის სლოტი ელოდება გასწორებას \"%s\"-ზე." +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "შექმენით რეპლიკაციის სლოტი \"%s\" ან შეცვალეთ პარამეტრი \"%s\"." -#: replication/slot.c:2662 +#: replication/slot.c:2877 #, c-format -msgid "Consider removing logical slot \"%s\" from parameter %s." -msgstr "" +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "ვერ მიუთითებთ ლოგიკური რეპლიკაციის სლოტს \"%s\" პარამეტრში \"%s\"" -#: replication/slot.c:2678 +#: replication/slot.c:2879 #, c-format -msgid "physical slot \"%s\" specified in parameter %s has been invalidated" -msgstr "" +msgid "Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "ლოგიკური რეპლიკაცია ელოდება კორექტირებას რეპლიკაციის სლოტზე \"%s\"." -#: replication/slot.c:2682 +#: replication/slot.c:2881 #, c-format -msgid "Consider dropping and recreating the slot \"%s\" or amend parameter %s." -msgstr "განიხილეთ მოცილება ან თავიდან შექმნა სლოტისთვის \"%s\" ან მიაწერეთ პარამეტრი %s." +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "წაშალეთ ლოგიკური რეპლიკაციის სლოტი \"%s\" პარამეტრიდან \"%s\"." -#: replication/slot.c:2693 +#: replication/slot.c:2897 #, c-format -msgid "replication slot \"%s\" specified in parameter %s does not have active_pid" -msgstr "რეპლიკაციის სლოტს \"%s\", რომელიც მითითებულია პარამეტრში %s, active_pid არ გააჩნია" +msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated" +msgstr "ფიზიკური რეპლიკაციის სლოტი \"%s\", მითითებული პარამეტრში \"%s\", გაუქმებულია" -#: replication/slot.c:2697 +#: replication/slot.c:2901 #, c-format -msgid "Consider starting standby associated with \"%s\" or amend parameter %s." -msgstr "" +msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "განიხილეთ მოცილება ან თავიდან შექმნა სლოტისთვის \"%s\" ან მიაწერეთ პარამეტრი \"%s\"." + +#: replication/slot.c:2912 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid" +msgstr "რეპლიკაციის სლოტი \"%s\", რომელიც მითითებულია პარამეტრში \"%s\", active_pid არ გააჩნია" + +#: replication/slot.c:2916 +#, c-format +msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "გაუშვით უქმე, ასოცირებული რეპლიკაციის სლოტთან \"%s\", ან მიაწერეთ პარამეტრი \"%s\"." + +#: replication/slot.c:3008 +#, c-format +msgid "\"%s\" must be set to 0 during binary upgrade mode." +msgstr "ბინარული განახლების რეჟიმისას \"%s\"-ის მნიშვნელობა 0-ზე უნდა დააყენოთ." -#: replication/slotfuncs.c:526 +#: replication/slotfuncs.c:529 #, c-format msgid "invalid target WAL LSN" msgstr "არასწორი სამიზნე WAL LSN" -#: replication/slotfuncs.c:548 +#: replication/slotfuncs.c:551 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "რეპლიკაციის სლოტის (%s) წინ წაწევა შეუძლებელია" -#: replication/slotfuncs.c:550 +#: replication/slotfuncs.c:553 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." msgstr "" -#: replication/slotfuncs.c:566 +#: replication/slotfuncs.c:569 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "" -#: replication/slotfuncs.c:673 +#: replication/slotfuncs.c:676 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "ფიზიკური რეპლიკაციის სლოტის (%s) ლოგიკურ სლოტად კოპირება შეუძლებელია" -#: replication/slotfuncs.c:675 +#: replication/slotfuncs.c:678 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "ლოგიკური რეპლიკაციის სლოტის (%s) ფიზიკურ სლოტად კოპირება შეუძლებელია" -#: replication/slotfuncs.c:682 +#: replication/slotfuncs.c:685 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "რეპლიკაციის სლოტის, რომელიც WAL რეზერვაციას არ აკეთებს, კოპირება შეუძლებელია" -#: replication/slotfuncs.c:768 +#: replication/slotfuncs.c:691 +#, c-format +msgid "cannot copy invalidated replication slot \"%s\"" +msgstr "არასწორად გამოცხადებული რეპლიკაციის სლოტის \"%s\" კოპირება შეუძლებელია" + +#: replication/slotfuncs.c:783 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის კოპირების შეცდომა: %s" -#: replication/slotfuncs.c:770 +#: replication/slotfuncs.c:785 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "კოპირების ოპერაციისას საწყისი რეპლიკაციის სლოტი შეუთავსებლად შეიცვალა." -#: replication/slotfuncs.c:776 +#: replication/slotfuncs.c:791 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "დაუმთავრებელი ლოგიკური რეპლიკაციის სლოტის კოპირება შეუძლებელია: %s" -#: replication/slotfuncs.c:778 +#: replication/slotfuncs.c:793 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "" -#: replication/slotfuncs.c:877 +#: replication/slotfuncs.c:805 +#, c-format +msgid "cannot copy replication slot \"%s\"" +msgstr "რეპლიკაციის სლოტის \"%s\" კოპირება შეუძლებელია" + +#: replication/slotfuncs.c:807 +#, c-format +msgid "The source replication slot was invalidated during the copy operation." +msgstr "კოპირების ოპერაციისას საწყისი რეპლიკაციის სლოტი არასწორად გამოცხადდა." + +#: replication/slotfuncs.c:906 #, c-format msgid "replication slots can only be synchronized to a standby server" msgstr "რეპლიკაციის სლოტების სინქრონიზაცია, მხოლოდ, უქმე სერვერთანაა შესაძლებელი" -#: replication/syncrep.c:261 +#: replication/syncrep.c:304 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "" -#: replication/syncrep.c:262 replication/syncrep.c:279 +#: replication/syncrep.c:305 replication/syncrep.c:322 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "ტრანზაქცია უკვე გადაცემულია ლოკალურად, მაგრამ შეიძლება მომლოდინეზე ჯერ რეპლიცირებული არაა." -#: replication/syncrep.c:278 +#: replication/syncrep.c:321 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "სინქრონული რეპლიკაციის მოლოდინის გაუქმება მომხმარებლის მოთხოვნის გამო" -#: replication/syncrep.c:485 +#: replication/syncrep.c:528 #, c-format msgid "standby \"%s\" is now a synchronous standby with priority %d" msgstr "" -#: replication/syncrep.c:489 +#: replication/syncrep.c:532 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "" -#: replication/syncrep.c:1013 +#: replication/syncrep.c:1081 #, c-format -msgid "\"synchronous_standby_names\" parser failed" -msgstr "\"synchronous_standby_names\"-ის დამმუშავებლის შეცდომა" +msgid "\"%s\" parser failed." +msgstr "\"%s\"-ის დამმუშავებლის შეცდომა." -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1088 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "სინქრონული მომლოდინეების რაოდენობა (%d) ნულზე მეტი უნდა იყოს" -#: replication/walreceiver.c:176 +#: replication/walreceiver.c:276 #, c-format -msgid "terminating walreceiver process due to administrator command" -msgstr "walreceiver პროგრამის შეწყვეტა ადმინისტრატორის ბრძანების გამო" +msgid "streaming replication receiver \"%s\" could not connect to the primary server: %s" +msgstr "სტრიმინგის რეპლიკაციის მიმღები \"%s\" ვერ დაუკავშირდა ძირითად სერვერს: %s" -#: replication/walreceiver.c:354 +#: replication/walreceiver.c:324 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "ბაზის სისტემის იდენტიფიკატორი განსხვავდება ძირითადსა და მომლოდინეს შორის" -#: replication/walreceiver.c:355 +#: replication/walreceiver.c:325 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "ძირითადი სერვერის იდენტიფიკატორია %s, მომლოდინესი კი %s." -#: replication/walreceiver.c:366 +#: replication/walreceiver.c:336 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "" -#: replication/walreceiver.c:419 +#: replication/walreceiver.c:389 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "" -#: replication/walreceiver.c:423 +#: replication/walreceiver.c:393 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "" -#: replication/walreceiver.c:458 +#: replication/walreceiver.c:428 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:472 #, c-format msgid "replication terminated by primary server" msgstr "რეპლიკაცია შეწყვეტილია ძირითადი სერვერის მიერ" -#: replication/walreceiver.c:503 +#: replication/walreceiver.c:473 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "" -#: replication/walreceiver.c:593 +#: replication/walreceiver.c:573 #, c-format msgid "terminating walreceiver due to timeout" msgstr "walreceiver პროგრამის შეწყვეტა მოლოდინის ვადის ამოწურვის გამო" -#: replication/walreceiver.c:625 +#: replication/walreceiver.c:605 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "" -#: replication/walreceiver.c:641 replication/walreceiver.c:1071 +#: replication/walreceiver.c:621 replication/walreceiver.c:1063 #, c-format msgid "could not close WAL segment %s: %m" msgstr "'WAL' სეგმენტის %s დახურვის შეცდომა: %m" -#: replication/walreceiver.c:760 +#: replication/walreceiver.c:740 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "" -#: replication/walreceiver.c:959 +#: replication/walreceiver.c:951 #, c-format msgid "could not write to WAL segment %s at offset %d, length %lu: %m" msgstr "'WAL'-ის სეგმენტში (%s) ჩაწერის შეცდომა. წანაცვლება %d, სიგრძე %lu: %m" -#: replication/walsender.c:531 +#: replication/walsender.c:505 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "%s-ის გამოყენება ლოგიკური რეპლიკაციის სლოტთან ერთად შეუძლებელია" -#: replication/walsender.c:635 storage/smgr/md.c:1723 +#: replication/walsender.c:609 storage/smgr/md.c:1867 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "ფაილის (\"%s\") ბოლოში გადახვევის პრობლემა: %m" -#: replication/walsender.c:639 +#: replication/walsender.c:613 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "ფაილის (\"%s\") დასაწყისში გადახვევის პრობლემა: %m" -#: replication/walsender.c:853 +#: replication/walsender.c:829 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "" -#: replication/walsender.c:919 +#: replication/walsender.c:895 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "" -#: replication/walsender.c:922 +#: replication/walsender.c:898 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "" -#: replication/walsender.c:966 +#: replication/walsender.c:942 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "" -#: replication/walsender.c:1160 +#: replication/walsender.c:1137 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "უცნობი მნიშვნელობა CREATE_REPLICATION_SLOT-ის პარამეტრისთვის \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1266 +#: replication/walsender.c:1243 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s ტრანზაქცის შიგნიდან არ უნდა გამოიძახოთ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1276 +#: replication/walsender.c:1253 #, c-format msgid "%s must be called inside a transaction" msgstr "%s ტრანზაქციის შიგნიდან უნდა გამოიძახოთ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1282 +#: replication/walsender.c:1259 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1287 +#: replication/walsender.c:1264 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%s მხოლოდ-წაკითხვად ტრანზაქციაში უნდა გამოიძახოთ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1293 +#: replication/walsender.c:1270 #, c-format msgid "%s must be called before any query" msgstr "%s ყველა მოთხოვნაზე ადრე უნდა გამოიძახოთ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1299 +#: replication/walsender.c:1276 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s ქვეტრანზაქციაში არ უნდა გამოიძახოთ" -#: replication/walsender.c:1472 +#: replication/walsender.c:1453 #, c-format msgid "terminating walsender process after promotion" msgstr "walsender პროცესის შეწყვეტა დაწინაურების შემდეგ" -#: replication/walsender.c:2000 +#: replication/walsender.c:1994 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "'WAL'-გამგზავნის გაჩერების რეჟიმში ყოფნის დროს ახალი ბრძანებების შესრულება შეუძლებელია" -#: replication/walsender.c:2035 +#: replication/walsender.c:2029 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "ფიზიკური რეპლიკაციისთვის WAL-ის გამგზავნში SQL ბრძანებების შესრულება შეუძლებელია" -#: replication/walsender.c:2068 +#: replication/walsender.c:2060 #, c-format msgid "received replication command: %s" msgstr "მიღებულია რეპლიკაციის ბრძანება: %s" -#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1138 tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2206 tcop/postgres.c:2644 tcop/postgres.c:2722 +#: replication/walsender.c:2068 tcop/fastpath.c:208 tcop/postgres.c:1137 tcop/postgres.c:1495 tcop/postgres.c:1747 tcop/postgres.c:2253 tcop/postgres.c:2690 tcop/postgres.c:2767 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "" -#: replication/walsender.c:2233 replication/walsender.c:2268 +#: replication/walsender.c:2225 replication/walsender.c:2260 #, c-format msgid "unexpected EOF on standby connection" msgstr "მოულოდნელი EOF მომლოდინის მიერთებაზე" -#: replication/walsender.c:2256 +#: replication/walsender.c:2248 #, c-format msgid "invalid standby message type \"%c\"" msgstr "არასწორი მომლოდინის შეტყობინების ტიპი \"%c\"" -#: replication/walsender.c:2345 +#: replication/walsender.c:2337 #, c-format msgid "unexpected message type \"%c\"" msgstr "შეტყობინების მოულოდნელი ტიპი: \"%c\"" -#: replication/walsender.c:2759 +#: replication/walsender.c:2751 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "walsender პროცესის შეწყვეტა რეპლიკაციის მოლოდინის ვადის ამოწურვის გამო" @@ -21647,280 +22289,285 @@ msgstr "წესი %s ურთიერთობისთვის \"%s\" ა msgid "renaming an ON SELECT rule is not allowed" msgstr "'ON SELECT' წესზე სახელის გადარქმევა დაუშვებელია" -#: rewrite/rewriteHandler.c:581 +#: rewrite/rewriteHandler.c:590 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "" -#: rewrite/rewriteHandler.c:608 +#: rewrite/rewriteHandler.c:617 #, 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:661 +#: rewrite/rewriteHandler.c:671 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "" -#: rewrite/rewriteHandler.c:893 rewrite/rewriteHandler.c:932 +#: rewrite/rewriteHandler.c:908 rewrite/rewriteHandler.c:947 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:961 +#: rewrite/rewriteHandler.c:910 rewrite/rewriteHandler.c:976 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "" -#: rewrite/rewriteHandler.c:897 +#: rewrite/rewriteHandler.c:912 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "გადასაფარად გამოიყენეთ OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:959 rewrite/rewriteHandler.c:967 +#: rewrite/rewriteHandler.c:974 rewrite/rewriteHandler.c:982 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "სვეტი \"%s\" მხოლოდ DEFAULT-მდე შეიძლება, განახლდეს" -#: rewrite/rewriteHandler.c:1114 rewrite/rewriteHandler.c:1132 +#: rewrite/rewriteHandler.c:1118 rewrite/rewriteHandler.c:1136 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "" -#: rewrite/rewriteHandler.c:1697 +#: rewrite/rewriteHandler.c:1691 #, c-format msgid "MERGE is not supported for relations with rules." msgstr "წესების მქონე ურთიერთობებისთვის MERGE მხარდაჭერილი არაა." -#: rewrite/rewriteHandler.c:2110 rewrite/rewriteHandler.c:4197 +#: rewrite/rewriteHandler.c:1731 rewrite/rewriteHandler.c:3271 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "" + +#: rewrite/rewriteHandler.c:2130 rewrite/rewriteHandler.c:4265 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "" -#: rewrite/rewriteHandler.c:2195 +#: rewrite/rewriteHandler.c:2235 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "" -#: rewrite/rewriteHandler.c:2547 +#: rewrite/rewriteHandler.c:2598 msgid "Junk view columns are not updatable." msgstr "ნაგვის ნახვის სვეტები განახლებადი არაა." -#: rewrite/rewriteHandler.c:2552 +#: rewrite/rewriteHandler.c:2603 msgid "View columns that are not columns of their base relation are not updatable." msgstr "ხედის სვეტები, რომლებიც მათი საბაზისო ურთიერთობის სვეტები არიან, განახლებადი არაა." -#: rewrite/rewriteHandler.c:2555 +#: rewrite/rewriteHandler.c:2606 msgid "View columns that refer to system columns are not updatable." msgstr "ხედის სვეტები, რომლებიც სისტემურ სვეტებზეა მიბმული, განახლებადი არაა." -#: rewrite/rewriteHandler.c:2558 +#: rewrite/rewriteHandler.c:2609 msgid "View columns that return whole-row references are not updatable." msgstr "ხედის სვეტები, რომლებიც მთელ-მწკრივიან ბმებზე მიუთითებენ, განახლებადი არაა." -#: rewrite/rewriteHandler.c:2619 +#: rewrite/rewriteHandler.c:2670 msgid "Views containing DISTINCT are not automatically updatable." msgstr "\"DISTINCT\"-ის შემცველი ხედები განახლებადი არაა." -#: rewrite/rewriteHandler.c:2622 +#: rewrite/rewriteHandler.c:2673 msgid "Views containing GROUP BY are not automatically updatable." msgstr "\"GROUP BY\"-ის შემცველი ხედები თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2625 +#: rewrite/rewriteHandler.c:2676 msgid "Views containing HAVING are not automatically updatable." msgstr "\"HAVING\"-ის შემცველი ხედები თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2628 +#: rewrite/rewriteHandler.c:2679 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "\"UNION\"-ის, \"INTERSECT\"-ის და \"EXCEPT\"-ის შემცველი ხედები თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2631 +#: rewrite/rewriteHandler.c:2682 msgid "Views containing WITH are not automatically updatable." msgstr "\"WITH\"-ის შემცველი ხედები თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2634 +#: rewrite/rewriteHandler.c:2685 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "\"LIMIT\"-ის და \"OFFSET\"-ის შემცველი ხედები თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2646 +#: rewrite/rewriteHandler.c:2697 msgid "Views that return aggregate functions are not automatically updatable." msgstr "ხედები, რომლებიც აგრეგატულ ფუნქციებს აბრუნებენ, თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2649 +#: rewrite/rewriteHandler.c:2700 msgid "Views that return window functions are not automatically updatable." msgstr "ხედები, რომლებიც ფანჯრის ფუნქციებს აბრუნებენ, თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2652 +#: rewrite/rewriteHandler.c:2703 msgid "Views that return set-returning functions are not automatically updatable." msgstr "ხედები, რომლებიც აბრუნებენ ფუნქციებს, რომლებიც სეტებს აბრუნებენ, თვითგანახლებადი არაა." -#: rewrite/rewriteHandler.c:2659 rewrite/rewriteHandler.c:2663 rewrite/rewriteHandler.c:2671 +#: rewrite/rewriteHandler.c:2710 rewrite/rewriteHandler.c:2714 rewrite/rewriteHandler.c:2722 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "" -#: rewrite/rewriteHandler.c:2674 +#: rewrite/rewriteHandler.c:2725 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "" -#: rewrite/rewriteHandler.c:2698 +#: rewrite/rewriteHandler.c:2749 msgid "Views that have no updatable columns are not automatically updatable." msgstr "ხედები, რომლებსაც განახლებადი ცხრილები არ გააჩნია, ავტომატურად განახლებადები არ არიან." -#: rewrite/rewriteHandler.c:3079 rewrite/rewriteHandler.c:3114 +#: rewrite/rewriteHandler.c:3130 rewrite/rewriteHandler.c:3165 #, c-format msgid "cannot insert into view \"%s\"" msgstr "ხედში ჩამატება შეუძლებელია: %s" -#: rewrite/rewriteHandler.c:3082 +#: rewrite/rewriteHandler.c:3133 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "" -#: rewrite/rewriteHandler.c:3087 rewrite/rewriteHandler.c:3123 +#: rewrite/rewriteHandler.c:3138 rewrite/rewriteHandler.c:3174 #, c-format msgid "cannot update view \"%s\"" msgstr "ხედის განახლება შეუძლებელია: %s" -#: rewrite/rewriteHandler.c:3090 +#: rewrite/rewriteHandler.c:3141 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "" -#: rewrite/rewriteHandler.c:3095 rewrite/rewriteHandler.c:3132 +#: rewrite/rewriteHandler.c:3146 rewrite/rewriteHandler.c:3183 #, c-format msgid "cannot delete from view \"%s\"" msgstr "ხედიდან წაშლა შეუძლებელია: %s" -#: rewrite/rewriteHandler.c:3098 +#: rewrite/rewriteHandler.c:3149 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "" -#: rewrite/rewriteHandler.c:3117 +#: rewrite/rewriteHandler.c:3168 #, c-format msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger." msgstr "ხედში MERGE-ით ჩასმის ჩასართავად მიუთითეთ INSTEAD OF INSERT ტრიგერი." -#: rewrite/rewriteHandler.c:3126 +#: rewrite/rewriteHandler.c:3177 #, c-format msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger." msgstr "ხედის MERGE-ით განახლების ჩასართავად მიუთითეთ INSTEAD OF UPDATE ტრიგერი." -#: rewrite/rewriteHandler.c:3135 +#: rewrite/rewriteHandler.c:3186 #, c-format msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger." msgstr "ამ ხედიდან MERGE-ის საშუალებით წაშლის ჩასართავად მიუთითეთ INSTEAD OF DELETE ტრიგერი." -#: rewrite/rewriteHandler.c:3289 +#: rewrite/rewriteHandler.c:3361 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "ხედის (\"%2$s\") სვეტში \"%1$s\" მონაცემის ჩასმა შეუძლებელია" -#: rewrite/rewriteHandler.c:3297 +#: rewrite/rewriteHandler.c:3369 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "ხედის (\"%2$s\") სვეტის \"%1$s\" განახლება შეუძლებელია" -#: rewrite/rewriteHandler.c:3305 +#: rewrite/rewriteHandler.c:3377 #, c-format msgid "cannot merge into column \"%s\" of view \"%s\"" msgstr "ხედის (\"%2$s\") სვეტთან \"%1$s\" შერწყმა შეუძლებელია" -#: rewrite/rewriteHandler.c:3333 +#: rewrite/rewriteHandler.c:3405 #, c-format msgid "cannot merge into view \"%s\"" msgstr "შეუძლებელია შერწყმა ხედში \"%s\"" -#: rewrite/rewriteHandler.c:3335 +#: rewrite/rewriteHandler.c:3407 #, c-format -msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions, but not others." +msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all." msgstr "" -#: rewrite/rewriteHandler.c:3336 +#: rewrite/rewriteHandler.c:3408 #, c-format msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers." msgstr "ამ ხედში შერწყმის ჩასართავად, ან შეიყვანეთ INSTEAD OF ტრიგერების სრული სია, ან წაშალეთ არსებული INSTEAD OF ტრიგერები." -#: rewrite/rewriteHandler.c:3855 +#: rewrite/rewriteHandler.c:3923 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "" -#: rewrite/rewriteHandler.c:3866 +#: rewrite/rewriteHandler.c:3934 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "" -#: rewrite/rewriteHandler.c:3880 +#: rewrite/rewriteHandler.c:3948 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "" -#: rewrite/rewriteHandler.c:3884 +#: rewrite/rewriteHandler.c:3952 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "" -#: rewrite/rewriteHandler.c:3889 +#: rewrite/rewriteHandler.c:3957 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "" -#: rewrite/rewriteHandler.c:4149 +#: rewrite/rewriteHandler.c:4217 msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "" -#: rewrite/rewriteHandler.c:4246 +#: rewrite/rewriteHandler.c:4314 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" 'INSERT RETURNING'-ის განხორციელება შეუძლებელია" -#: rewrite/rewriteHandler.c:4248 +#: rewrite/rewriteHandler.c:4316 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "" -#: rewrite/rewriteHandler.c:4253 +#: rewrite/rewriteHandler.c:4321 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" 'UPDATE RETURNING'-ის განხორციელება შეუძლებელია" -#: rewrite/rewriteHandler.c:4255 +#: rewrite/rewriteHandler.c:4323 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "" -#: rewrite/rewriteHandler.c:4260 +#: rewrite/rewriteHandler.c:4328 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "ურთიერთობაზე \"%s\" 'DELETE RETURNING'-ის განხორციელება შეუძლებელია" -#: rewrite/rewriteHandler.c:4262 +#: rewrite/rewriteHandler.c:4330 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "" -#: rewrite/rewriteHandler.c:4280 +#: rewrite/rewriteHandler.c:4348 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "" -#: rewrite/rewriteHandler.c:4337 +#: rewrite/rewriteHandler.c:4405 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "" -#: rewrite/rewriteManip.c:1083 +#: rewrite/rewriteManip.c:1222 #, c-format msgid "conditional utility statements are not implemented" msgstr "პირობითი სამსახურეობრივი გამოსახულებები განხორციელებული არაა" -#: rewrite/rewriteManip.c:1427 +#: rewrite/rewriteManip.c:1567 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "WHERE CURRENT OF ხედზე განხორციელებული არაა" -#: rewrite/rewriteManip.c:1762 +#: rewrite/rewriteManip.c:1970 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "" @@ -21979,7 +22626,7 @@ msgstr "$-ით დაწყებული სტრიქონ დაუმ msgid "zero-length delimited identifier" msgstr "გამყოფის ნულოვანი სიგრძის იდენტიფიკატორი" -#: scan.l:825 syncrep_scanner.l:101 +#: scan.l:825 syncrep_scanner.l:114 msgid "unterminated quoted identifier" msgstr "დაუსრულებელი იდენტიფიკატორი ბრჭყალებში" @@ -21988,317 +22635,549 @@ msgid "operator too long" msgstr "ოპერატორი ძალიან გრძელია" #: scan.l:1001 +msgid "parameter number too large" +msgstr "პარამეტრების რაოდენობა მეტისმეტად დიდია" + +#: scan.l:1007 msgid "trailing junk after parameter" msgstr "პარამეტრის შემდეგ მოყოლილი მონაცემები ნაგავია" -#: scan.l:1022 +#: scan.l:1028 msgid "invalid hexadecimal integer" msgstr "არასწორი თექვსმეტობითი მთელი რიცხვი" -#: scan.l:1026 +#: scan.l:1032 msgid "invalid octal integer" msgstr "არასწორი რვაობითი მთელი რიცხვი" -#: scan.l:1030 +#: scan.l:1036 msgid "invalid binary integer" msgstr "არასწორი ბინარული მთელი რიცხვი" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1237 +#: scan.l:1231 #, c-format msgid "%s at end of input" msgstr "%s შეყვანის ბოლოს" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1245 +#: scan.l:1239 #, c-format msgid "%s at or near \"%s\"" msgstr "%s \"%s\"-სთან ან ახლოს" -#: scan.l:1437 +#: scan.l:1431 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "სტრიქონში \\' არასტანდარტულადაა გამოყენებული" -#: scan.l:1438 +#: scan.l:1432 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "" -#: scan.l:1447 +#: scan.l:1441 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "სტრიქონში \\\\ არასტანდარტულადაა გამოყენებული" -#: scan.l:1448 +#: scan.l:1442 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "" -#: scan.l:1462 +#: scan.l:1456 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "" -#: scan.l:1463 +#: scan.l:1457 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "" -#: snowball/dict_snowball.c:215 +#: snowball/dict_snowball.c:220 #, c-format msgid "no Snowball stemmer available for language \"%s\" and encoding \"%s\"" msgstr "" -#: snowball/dict_snowball.c:238 tsearch/dict_ispell.c:74 tsearch/dict_simple.c:49 +#: snowball/dict_snowball.c:243 tsearch/dict_ispell.c:75 tsearch/dict_simple.c:50 #, c-format msgid "multiple StopWords parameters" msgstr "გამეორებადი StopWords პარამეტრი" -#: snowball/dict_snowball.c:247 +#: snowball/dict_snowball.c:252 #, c-format msgid "multiple Language parameters" msgstr "გამეორებადი Language პარამეტრი" -#: snowball/dict_snowball.c:254 +#: snowball/dict_snowball.c:259 #, c-format msgid "unrecognized Snowball parameter: \"%s\"" msgstr "" -#: snowball/dict_snowball.c:262 +#: snowball/dict_snowball.c:267 #, c-format msgid "missing Language parameter" msgstr "აკლია პარამეტრი Language" -#: statistics/extended_stats.c:176 -#, c-format -msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" -msgstr "" - -#: statistics/mcv.c:1368 +#: statistics/attribute_stats.c:191 statistics/attribute_stats.c:932 statistics/relation_stats.c:98 #, c-format -msgid "function returning record called in context that cannot accept type record" -msgstr "ფუნქცია, რომელიც ჩანაწერს აბრუნებს, გამოძახებულია კონტექსტში, რომელსაც ჩანაწერის მიღება არ შეუძლია" +msgid "Statistics cannot be modified during recovery." +msgstr "აღდგენის დროს სტატისტიკას ვერ შეცვლით." -#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 +#: statistics/attribute_stats.c:202 #, c-format -msgid "cannot access temporary tables of other sessions" -msgstr "სხვა სესიების დროებით ცხრილებთან წვდომა შეუძლებელია" +msgid "cannot specify both attname and attnum" +msgstr "ორივეს attname და attnum ვერ მიუთითებთ" -#: storage/buffer/bufmgr.c:1532 +#: statistics/attribute_stats.c:228 #, c-format -msgid "invalid page in block %u of relation %s; zeroing out page" -msgstr "" +msgid "must specify either attname or attnum" +msgstr "აუცილებელია, მიუთითოთ attname ან attnum" -#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 +#: statistics/attribute_stats.c:236 #, c-format -msgid "cannot extend relation %s beyond %u blocks" -msgstr "" +msgid "cannot modify statistics on system column \"%s\"" +msgstr "სტატისტიკის შეცვლა შეუძლებელია სისტემურ სვეტზე \"%s\"" -#: storage/buffer/bufmgr.c:2348 +#: statistics/attribute_stats.c:300 #, c-format -msgid "unexpected data beyond EOF in block %u of relation %s" -msgstr "" +msgid "unable to determine element type of attribute \"%s\"" +msgstr "ატრიბუტის \"%s\" ელემენტის დადგენა შეუძლებელია" -#: storage/buffer/bufmgr.c:2350 +#: statistics/attribute_stats.c:301 #, c-format -msgid "This has been seen to occur with buggy kernels; consider updating your system." +msgid "Cannot set STATISTIC_KIND_MCELEM or STATISTIC_KIND_DECHIST." msgstr "" -#: storage/buffer/bufmgr.c:5653 -#, c-format -msgid "could not write block %u of %s" -msgstr "%2$s-ის %1$u ბლოკის ჩაწერა შეუძლებელია" - -#: storage/buffer/bufmgr.c:5655 +#: statistics/attribute_stats.c:316 #, c-format -msgid "Multiple failures --- write error might be permanent." -msgstr "ბევრი შეცდომა --- ჩაწერის შეცდომა შეიძლება მუდმივი იყოს." +msgid "could not determine less-than operator for attribute \"%s\"" +msgstr "შეუძლებელია ნაკლებია ვიდრე ოპერატორის დადგენა ატრიბუტისთვის \"%s\"" -#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 +#: statistics/attribute_stats.c:317 #, c-format -msgid "writing block %u of relation %s" +msgid "Cannot set STATISTIC_KIND_HISTOGRAM or STATISTIC_KIND_CORRELATION." msgstr "" -#: storage/buffer/localbuf.c:220 +#: statistics/attribute_stats.c:330 #, c-format -msgid "no empty local buffer available" -msgstr "ცარიელი ლოკალური ბაფერები მიუწვდომელია" +msgid "attribute \"%s\" is not a range type" +msgstr "ატრიბუტი \"%s\" შუალედის ტიპი არაა" -#: storage/buffer/localbuf.c:597 +#: statistics/attribute_stats.c:331 #, c-format -msgid "cannot access temporary tables during a parallel operation" +msgid "Cannot set STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM or STATISTIC_KIND_BOUNDS_HISTOGRAM." msgstr "" -#: storage/buffer/localbuf.c:712 +#: statistics/attribute_stats.c:590 statistics/attribute_stats.c:598 #, c-format -msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." -msgstr "" +msgid "attribute %d of relation \"%s\" does not exist" +msgstr "ატრიბუტი %d ურთიერთობისთვის \"%s\" არ არსებობს" -#: storage/file/buffile.c:338 +#: statistics/attribute_stats.c:732 statistics/stat_utils.c:80 #, c-format -msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m" -msgstr "" +msgid "\"%s\" array cannot contain NULL values" +msgstr "\"%s\" მასივი, არ შეიძლება, NULL მნიშვნელობებს შეიცავდეს" -#: storage/file/buffile.c:632 +#: statistics/attribute_stats.c:775 #, c-format -msgid "could not read from file set \"%s\": read only %zu of %zu bytes" -msgstr "ფაილების სეტიდან (\"%s\") წაკითხვის შეცდომა: წავიკითხე მხოლოდ %zu ბაიტი %zu-დან" +msgid "maximum number of statistics slots exceeded: %d" +msgstr "გადაცილებულია სტატისტიკის სლოტების მაქსიმალური რაოდენობა: %d" -#: storage/file/buffile.c:634 +#: statistics/attribute_stats.c:942 #, c-format -msgid "could not read from temporary file: read only %zu of %zu bytes" -msgstr "დროებით ფაილიდან წაკითხვის შეცდომა: წავიკითხე მხოლოდ %zu ბაიტი %zu-დან" +msgid "cannot clear statistics on system column \"%s\"" +msgstr "სტატისტიკის გასუფთავება შეუძლებელია სისტემურ სვეტზე \"%s\"" -#: storage/file/buffile.c:774 storage/file/buffile.c:877 +#: statistics/extended_stats.c:175 #, c-format -msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" +msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "" -#: storage/file/buffile.c:956 +#: statistics/mcv.c:1368 #, c-format -msgid "could not delete fileset \"%s\": %m" -msgstr "ფაილების სეტის (\"%s\") წაშლის შეცდომა: %m" +msgid "function returning record called in context that cannot accept type record" +msgstr "ფუნქცია, რომელიც ჩანაწერს აბრუნებს, გამოძახებულია კონტექსტში, რომელსაც ჩანაწერის მიღება არ შეუძლია" -#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1192 +#: statistics/relation_stats.c:115 #, c-format -msgid "could not truncate file \"%s\": %m" -msgstr "ფაილის (%s) მოკვეთის შეცდომა: %m" +msgid "reltuples cannot be < -1.0" +msgstr "reltuples ვერ იქნება < -1.0" -#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 +#: statistics/stat_utils.c:44 #, c-format -msgid "could not flush dirty data: %m" -msgstr "" +msgid "\"%s\" cannot be NULL" +msgstr "\"%s\" არ შეიძლება, NULL იყოს" -#: storage/file/fd.c:613 +#: statistics/stat_utils.c:71 #, c-format -msgid "could not determine dirty data size: %m" -msgstr "" +msgid "\"%s\" cannot be a multidimensional array" +msgstr "\"%s\" მრავალგანზომილებიანი მასივი ვერ იქნება" -#: storage/file/fd.c:665 +#: statistics/stat_utils.c:111 #, c-format -msgid "could not munmap() while flushing data: %m" -msgstr "" +msgid "\"%s\" must be specified when \"%s\" is specified" +msgstr "\"%s\"-ის მითითება აუცილებელია, როცა მიუთითებთ \"%s\"-ს" -#: storage/file/fd.c:983 +#: statistics/stat_utils.c:178 #, c-format -msgid "getrlimit failed: %m" -msgstr "getrlimit-ის შეცდომა: %m" +msgid "cannot modify statistics for relation \"%s\"" +msgstr "სტატისტიკის შეცვლა ურთიერთობისთვის \"%s\" შეუძლებელია" -#: storage/file/fd.c:1073 +#: statistics/stat_utils.c:199 #, c-format -msgid "insufficient file descriptors available to start server process" -msgstr "სერვერის პროცესის გასაშვებად საკმარისი ფაილის დესკრიპტორების ხელმისაწვდომი არაა" +msgid "cannot modify statistics for shared relation" +msgstr "გაზიარებული ურთიერთობისთვის სტატისტიკის შეცვლა შეუძლებელია" -#: storage/file/fd.c:1074 +#: statistics/stat_utils.c:252 #, c-format -msgid "System allows %d, server needs at least %d." -msgstr "სისტემა გვიშვებს %d, სერვერს კი სჭირდება %d." +msgid "unrecognized argument name: \"%s\"" +msgstr "უცნობი არგუმენტის სახელი: \"%s\"" -#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 storage/file/fd.c:2878 +#: statistics/stat_utils.c:266 #, c-format -msgid "out of file descriptors: %m; release and retry" -msgstr "ფაილების დესკრიპტორების საკმარისი არაა: %m. გაათავისუფლეთ და თავიდან სცადეთ" +msgid "argument \"%s\" has type \"%s\", expected type \"%s\"" +msgstr "არგუმენტს \"%s\" აქვს ტიპი \"%s\". მოველოდი ტიპს \"%s\"" -#: storage/file/fd.c:1536 +#: statistics/stat_utils.c:307 #, c-format -msgid "temporary file: path \"%s\", size %lu" -msgstr "დროებითი ფაილი: ბილიკი \"%s\", ზომა %lu" +msgid "variadic arguments must be name/value pairs" +msgstr "variadic არგუმენტები სახელი/მნიშვნელობის წყვილები უნდა იყოს" -#: storage/file/fd.c:1675 +#: statistics/stat_utils.c:308 #, c-format -msgid "cannot create temporary directory \"%s\": %m" -msgstr "დროებითი საქაღალდის (%s) შექმნის შეცდომა: %m" +msgid "Provide an even number of variadic arguments that can be divided into pairs." +msgstr "" -#: storage/file/fd.c:1682 +#: statistics/stat_utils.c:322 #, c-format -msgid "cannot create temporary subdirectory \"%s\": %m" -msgstr "დროებითი ქვესაქაღალდის (%s) შექმნის შეცდომა: %m" +msgid "name at variadic position %d is NULL" +msgstr "სახელი variadic მდებარეობაზე %d NULL-ს უდრის" -#: storage/file/fd.c:1879 +#: statistics/stat_utils.c:326 #, c-format -msgid "could not create temporary file \"%s\": %m" -msgstr "დროებითი ფაილის (%s) შექმნის შეცდომა: %m" +msgid "name at variadic position %d has type \"%s\", expected type \"%s\"" +msgstr "" -#: storage/file/fd.c:1915 +#: storage/aio/aio.c:1222 #, c-format -msgid "could not open temporary file \"%s\": %m" -msgstr "დროებითი ფაილის (\"%s\") გახსნის შეცდომა: %m" +msgid "Only -1 or values bigger than 0 are valid." +msgstr "" -#: storage/file/fd.c:1956 -#, c-format -msgid "could not unlink temporary file \"%s\": %m" -msgstr "დროებითი ფაილის (%s) ბმულის მოხსნის შეცდომა: %m" +#: storage/aio/method_io_uring.c:171 +msgid "Check if io_uring is disabled via /proc/sys/kernel/io_uring_disabled." +msgstr "" -#: storage/file/fd.c:2044 +#: storage/aio/method_io_uring.c:176 #, c-format -msgid "could not delete file \"%s\": %m" -msgstr "ფაილის (\"%s\") წაშლის შეცდომა: %m" +msgid "Consider increasing \"ulimit -n\" to at least %d." +msgstr "განიხილეთ 'ulimit -n'-ის გაზრდა მინიმუმ %d-მდე." -#: storage/file/fd.c:2234 +#: storage/aio/method_io_uring.c:182 +msgid "Kernel does not support io_uring." +msgstr "ბირთვს io_uring_ის მხარდაჭერა არ გააჩნია." + +#: storage/aio/method_io_uring.c:190 #, c-format -msgid "temporary file size exceeds temp_file_limit (%dkB)" -msgstr "დროებითი ფაილის ზომა temp_file_limit-ს (%dკბ) აჭარბებს" +msgid "could not setup io_uring queue: %m" +msgstr "io_uring რიგის მორგება შეუძლებელია: %m" -#: storage/file/fd.c:2594 storage/file/fd.c:2653 +#: storage/aio/method_io_uring.c:324 #, c-format -msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" -msgstr "გადაცილებულია maxAllocatedDescs (%d) როცა ვცდილობდი, გამეხსნა ფაილი \"%s\"" +msgid "completing I/O on behalf of process %d" +msgstr "" -#: storage/file/fd.c:2698 +#: storage/aio/method_worker.c:379 #, c-format -msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" -msgstr "გადაცილებულია maxAllocatedDescs (%d) როცა ვცდილობდი, გამეშვა ბრძანება \"%s\"" +msgid "I/O worker executing I/O on behalf of process %d" +msgstr "" -#: storage/file/fd.c:2854 +#: storage/buffer/bufmgr.c:662 storage/buffer/bufmgr.c:818 #, c-format -msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" +msgid "cannot access temporary tables of other sessions" +msgstr "სხვა სესიების დროებით ცხრილებთან წვდომა შეუძლებელია" + +#: storage/buffer/bufmgr.c:2708 storage/buffer/localbuf.c:393 +#, c-format +msgid "cannot extend relation %s beyond %u blocks" +msgstr "" + +#: storage/buffer/bufmgr.c:2779 +#, c-format +msgid "unexpected data beyond EOF in block %u of relation %s" +msgstr "" + +#: storage/buffer/bufmgr.c:2782 +#, c-format +msgid "This has been seen to occur with buggy kernels; consider updating your system." +msgstr "" + +#: storage/buffer/bufmgr.c:6185 +#, c-format +msgid "could not write block %u of %s" +msgstr "%2$s-ის %1$u ბლოკის ჩაწერა შეუძლებელია" + +#: storage/buffer/bufmgr.c:6189 +#, c-format +msgid "Multiple failures --- write error might be permanent." +msgstr "ბევრი შეცდომა --- ჩაწერის შეცდომა შეიძლება მუდმივი იყოს." + +#: storage/buffer/bufmgr.c:6206 storage/buffer/bufmgr.c:6221 +#, c-format +msgid "writing block %u of relation %s" +msgstr "" + +#: storage/buffer/bufmgr.c:7320 +#, c-format +msgid "zeroing %u page(s) and ignoring %u checksum failure(s) among blocks %u..%u of relation %s" +msgstr "" + +#: storage/buffer/bufmgr.c:7323 storage/buffer/bufmgr.c:7349 +#, c-format +msgid "Block %u held first zeroed page." +msgstr "" + +#: storage/buffer/bufmgr.c:7325 +#, c-format +msgid "See server log for details about the other %u invalid block(s)." +msgstr "" + +#: storage/buffer/bufmgr.c:7340 +#, c-format +msgid "%u invalid pages among blocks %u..%u of relation %s" +msgstr "%u არასწორი გვერდი ბლოკების %u..%u გასწვრივ ურთიერთობისთვის %s" + +#: storage/buffer/bufmgr.c:7341 +#, c-format +msgid "Block %u held first invalid page." +msgstr "" + +#: storage/buffer/bufmgr.c:7342 +#, c-format +msgid "See server log for the other %u invalid block(s)." +msgstr "დარჩენილი %u არასწორი ბლოკისთვის იხილეთ სერვერის ჟურნალი." + +#: storage/buffer/bufmgr.c:7347 +#, c-format +msgid "invalid page in block %u of relation %s; zeroing out page" +msgstr "" + +#: storage/buffer/bufmgr.c:7348 +#, c-format +msgid "zeroing out %u invalid pages among blocks %u..%u of relation %s" +msgstr "მიმდინარეობს %u არასწორი გვერდის განულება ბლოკების %u..%u გასწვრივ ურთიერთობისთვის %s" + +#: storage/buffer/bufmgr.c:7350 +#, c-format +msgid "See server log for the other %u zeroed block(s)." +msgstr "დარჩენილი %u განულებული ბლოკისთვის იხილეთ სერვერის ჟურნალი." + +#: storage/buffer/bufmgr.c:7355 +#, c-format +msgid "ignoring checksum failure in block %u of relation %s" +msgstr "ურთიერთობის (%2$s) ბლოკის (%1$u) საკონტროლო ჯამის გამოთვლის ჩავარდნა გამოტოვებული იქნება" + +#: storage/buffer/bufmgr.c:7356 +#, c-format +msgid "ignoring %u checksum failures among blocks %u..%u of relation %s" +msgstr "გამოტოვებული იქნება %u საკონტროლო ჯამის გამოთვლის ჩავარდნა ბლოკების %u..%u გასწვრივ ურთიერთობისთვის %s" + +#: storage/buffer/bufmgr.c:7357 +#, c-format +msgid "Block %u held first ignored page." +msgstr "" + +#: storage/buffer/bufmgr.c:7358 +#, c-format +msgid "See server log for the other %u ignored block(s)." +msgstr "დარჩენილი %u გამოტოვებული ბლოკისთვის იხილეთ სერვერის ჟურნალი." + +#: storage/buffer/localbuf.c:272 +#, c-format +msgid "no empty local buffer available" +msgstr "ცარიელი ლოკალური ბაფერები მიუწვდომელია" + +#: storage/buffer/localbuf.c:736 +#, c-format +msgid "cannot access temporary tables during a parallel operation" +msgstr "" + +#: storage/buffer/localbuf.c:876 +#, c-format +msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." +msgstr "" + +#: storage/file/buffile.c:338 +#, c-format +msgid "could not open temporary file \"%s\" from BufFile \"%s\": %m" +msgstr "" + +#: storage/file/buffile.c:632 +#, c-format +msgid "could not read from file set \"%s\": read only %zu of %zu bytes" +msgstr "ფაილების სეტიდან (\"%s\") წაკითხვის შეცდომა: წავიკითხე მხოლოდ %zu ბაიტი %zu-დან" + +#: storage/file/buffile.c:634 +#, c-format +msgid "could not read from temporary file: read only %zu of %zu bytes" +msgstr "დროებით ფაილიდან წაკითხვის შეცდომა: წავიკითხე მხოლოდ %zu ბაიტი %zu-დან" + +#: storage/file/buffile.c:774 storage/file/buffile.c:875 +#, c-format +msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" +msgstr "" + +#: storage/file/buffile.c:951 +#, c-format +msgid "could not delete fileset \"%s\": %m" +msgstr "ფაილების სეტის (\"%s\") წაშლის შეცდომა: %m" + +#: storage/file/buffile.c:969 storage/smgr/md.c:356 storage/smgr/md.c:1318 +#, c-format +msgid "could not truncate file \"%s\": %m" +msgstr "ფაილის (%s) მოკვეთის შეცდომა: %m" + +#: storage/file/copydir.c:244 storage/file/copydir.c:275 +#, c-format +msgid "could not clone file \"%s\" to \"%s\": %m" +msgstr "ფაილის \"%s\"-დან \"%s\"-ში დაკლონვა შეუძლებელია: %m" + +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 +#, c-format +msgid "could not flush dirty data: %m" +msgstr "" + +#: storage/file/fd.c:613 +#, c-format +msgid "could not determine dirty data size: %m" +msgstr "" + +#: storage/file/fd.c:665 +#, c-format +msgid "could not munmap() while flushing data: %m" +msgstr "" + +#: storage/file/fd.c:983 +#, c-format +msgid "getrlimit failed: %m" +msgstr "getrlimit-ის შეცდომა: %m" + +#: storage/file/fd.c:1074 +#, c-format +msgid "insufficient file descriptors available to start server process" +msgstr "სერვერის პროცესის გასაშვებად საკმარისი ფაილის დესკრიპტორების ხელმისაწვდომი არაა" + +#: storage/file/fd.c:1075 +#, c-format +msgid "System allows %d, server needs at least %d, %d files are already open." +msgstr "სისტემა გვიშვებს %d, სერვერს კი სჭირდება %d. უკვე ღიაა %d ფაილი." + +#: storage/file/fd.c:1164 storage/file/fd.c:2679 storage/file/fd.c:2788 storage/file/fd.c:2942 +#, c-format +msgid "out of file descriptors: %m; release and retry" +msgstr "ფაილების დესკრიპტორების საკმარისი არაა: %m. გაათავისუფლეთ და თავიდან სცადეთ" + +#: storage/file/fd.c:1540 +#, c-format +msgid "temporary file: path \"%s\", size %lu" +msgstr "დროებითი ფაილი: ბილიკი \"%s\", ზომა %lu" + +#: storage/file/fd.c:1679 +#, c-format +msgid "cannot create temporary directory \"%s\": %m" +msgstr "დროებითი საქაღალდის (%s) შექმნის შეცდომა: %m" + +#: storage/file/fd.c:1686 +#, c-format +msgid "cannot create temporary subdirectory \"%s\": %m" +msgstr "დროებითი ქვესაქაღალდის (%s) შექმნის შეცდომა: %m" + +#: storage/file/fd.c:1883 +#, c-format +msgid "could not create temporary file \"%s\": %m" +msgstr "დროებითი ფაილის (%s) შექმნის შეცდომა: %m" + +#: storage/file/fd.c:1919 +#, c-format +msgid "could not open temporary file \"%s\": %m" +msgstr "დროებითი ფაილის (\"%s\") გახსნის შეცდომა: %m" + +#: storage/file/fd.c:1960 +#, c-format +msgid "could not unlink temporary file \"%s\": %m" +msgstr "დროებითი ფაილის (%s) ბმულის მოხსნის შეცდომა: %m" + +#: storage/file/fd.c:2050 +#, c-format +msgid "could not delete file \"%s\": %m" +msgstr "ფაილის (\"%s\") წაშლის შეცდომა: %m" + +#: storage/file/fd.c:2289 +#, c-format +msgid "temporary file size exceeds \"temp_file_limit\" (%dkB)" +msgstr "დროებითი ფაილის ზომა 'temp_file_limit\"-ს (%dკბ) აჭარბებს" + +#: storage/file/fd.c:2655 storage/file/fd.c:2714 +#, c-format +msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" +msgstr "გადაცილებულია maxAllocatedDescs (%d) როცა ვცდილობდი, გამეხსნა ფაილი \"%s\"" + +#: storage/file/fd.c:2759 +#, c-format +msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" +msgstr "გადაცილებულია maxAllocatedDescs (%d) როცა ვცდილობდი, გამეშვა ბრძანება \"%s\"" + +#: storage/file/fd.c:2918 +#, c-format +msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "გადაცილებულია maxAllocatedDescs (%d) როცა ვცდილობდი, გამეხსნა საქაღალდე \"%s\"" -#: storage/file/fd.c:3384 +#: storage/file/fd.c:3449 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "დროებითი ფაილების საქაღალდეში აღმოჩენილია მოულოდნელი ფაილი: \"%s\"" -#: storage/file/fd.c:3502 +#: storage/file/fd.c:3567 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "" -#: storage/file/fd.c:3729 +#: storage/file/fd.c:3794 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "" -#: storage/file/fd.c:3761 +#: storage/file/fd.c:3826 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "" -#: storage/file/fd.c:3950 +#: storage/file/fd.c:4015 #, c-format -msgid "\"debug_io_direct\" is not supported on this platform." -msgstr "\"debug_io_direct\" ამ პლატფორმაზე მხარდაჭერილი არაა." +msgid "\"%s\" is not supported on this platform." +msgstr "ამ პლატფორმაზე \"%s\" მხარდაჭერილი არაა." -#: storage/file/fd.c:3964 +#: storage/file/fd.c:4030 #, c-format -msgid "Invalid list syntax in parameter \"%s\"" -msgstr "არასწორი სიის სინტაქსი პარამეტრში \"%s\"" +msgid "Invalid list syntax in parameter \"%s\"." +msgstr "არასწორი სიის სინტაქსი პარამეტრში \"%s\"." -#: storage/file/fd.c:3984 +#: storage/file/fd.c:4050 tcop/backend_startup.c:1054 #, c-format -msgid "Invalid option \"%s\"" -msgstr "არასწორი პარამეტრი \"%s\"" +msgid "Invalid option \"%s\"." +msgstr "არასწორი პარამეტრი \"%s\"." -#: storage/file/fd.c:3997 +#: storage/file/fd.c:4063 #, c-format -msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "\"debug_io_direct\" მხარდაჭერილი არაა WAL-სთვის, რადგან XLOG_BLCKSZ ძალიან პატარაა" +msgid "\"%s\" is not supported for WAL because %s is too small." +msgstr "\"%s\" მხარდაჭერილი არაა WAL-სთვის, რადგან %s ძალიან პატარაა." -#: storage/file/fd.c:4004 +#: storage/file/fd.c:4071 #, c-format -msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" -msgstr "\"debug_io_direct\" მონაცემებისთვის მხარდაჭერილი არაა, რადგან BLCKSZ ძალიან პატარაა" +msgid "\"%s\" is not supported for data because %s is too small." +msgstr "\"%s\" მხარდაჭერილი არაა მონაცემებისთვის, რადგან %s ძალიან პატარაა." #: storage/file/reinit.c:145 #, c-format @@ -22400,36 +23279,46 @@ msgstr "DSM სეგმენტის ზომა არანულოვა msgid "requested DSM segment size does not match size of existing segment" msgstr "" -#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:352 tcop/backend_startup.c:304 +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:458 tcop/backend_startup.c:343 #, c-format msgid "sorry, too many clients already" msgstr "უკაცრავად, უკვე მეტისმეტად ბევრი კლიენტია" -#: storage/ipc/procarray.c:3845 +#: storage/ipc/procarray.c:3858 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "მონაცემთა ბაზა \"%s\" მომზადებული ტრანზაქციების მიერ გამოიყენება" -#: storage/ipc/procarray.c:3881 storage/ipc/procarray.c:3889 storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 +#: storage/ipc/procarray.c:3894 storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:256 storage/ipc/signalfuncs.c:263 storage/ipc/signalfuncs.c:270 #, c-format msgid "permission denied to terminate process" msgstr "პროცესის შეწყვეტის წვდომა აკრძალულია" -#: storage/ipc/procarray.c:3882 storage/ipc/signalfuncs.c:236 +#: storage/ipc/procarray.c:3895 storage/ipc/signalfuncs.c:257 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." msgstr "" -#: storage/ipc/procarray.c:3890 storage/ipc/signalfuncs.c:243 +#: storage/ipc/procarray.c:3903 storage/ipc/signalfuncs.c:271 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." msgstr "" -#: storage/ipc/procsignal.c:416 +#: storage/ipc/procsignal.c:450 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "" +#: storage/ipc/procsignal.c:786 +#, c-format +msgid "wrong key in cancel request for process %d" +msgstr "არასწორი გასაღები გაუქმების მოთხოვნაში პროცესისთვის %d" + +#: storage/ipc/procsignal.c:795 +#, c-format +msgid "PID %d in cancel request did not match any process" +msgstr "PID %d, მოთხოვნილი გაუქმების მოთხოვნაში, არც ერთ პროცესს არ ემთხვევა" + #: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" @@ -22440,7 +23329,7 @@ msgstr "გაზიარებული მეხსიერების რ msgid "invalid message size %zu in shared memory queue" msgstr "გაზიარებული მეხსიერების რიგში არსებული შეტყობინების ზომა %zu არასწორია" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:962 storage/lmgr/lock.c:1000 storage/lmgr/lock.c:2803 storage/lmgr/lock.c:4188 storage/lmgr/lock.c:4253 storage/lmgr/lock.c:4603 storage/lmgr/predicate.c:2463 storage/lmgr/predicate.c:2478 storage/lmgr/predicate.c:3875 storage/lmgr/predicate.c:4922 utils/hash/dynahash.c:1095 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:1038 storage/lmgr/lock.c:1076 storage/lmgr/lock.c:2965 storage/lmgr/lock.c:4370 storage/lmgr/lock.c:4435 storage/lmgr/lock.c:4785 storage/lmgr/predicate.c:2478 storage/lmgr/predicate.c:2493 storage/lmgr/predicate.c:3890 storage/lmgr/predicate.c:4937 utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "არასაკმარისი გაზიარებული მეხსიერება" @@ -22470,186 +23359,196 @@ msgstr "" msgid "requested shared memory size overflows size_t" msgstr "მოთხოვნილი გაზიარებული მეხსიერების ზომა site_t-ის გადავსებას იწვევს" -#: storage/ipc/signalfuncs.c:72 +#: storage/ipc/signalfuncs.c:74 #, c-format msgid "PID %d is not a PostgreSQL backend process" msgstr "პროცესი PID-ით %d PostgreSQL-ის უკანაბოლოს პროცესს არ წარმოადგენს" -#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1448 utils/adt/mcxtfuncs.c:182 +#: storage/ipc/signalfuncs.c:123 storage/lmgr/proc.c:1547 utils/adt/mcxtfuncs.c:314 utils/adt/mcxtfuncs.c:412 #, c-format msgid "could not send signal to process %d: %m" msgstr "პროცესისთვის %d სიგნალის გაგზავნა შეუძლებელია: %m" -#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 +#: storage/ipc/signalfuncs.c:143 storage/ipc/signalfuncs.c:150 storage/ipc/signalfuncs.c:157 #, c-format msgid "permission denied to cancel query" msgstr "მოთხოვნის გაუქმების წვდომა აკრძალულია" -#: storage/ipc/signalfuncs.c:130 +#: storage/ipc/signalfuncs.c:144 #, c-format msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." msgstr "" -#: storage/ipc/signalfuncs.c:137 +#: storage/ipc/signalfuncs.c:151 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may cancel autovacuum workers." +msgstr "ავტომომტვერსასრუტებლის დამხმარე პროცესების გაუქმება, მხოლოდ, \"%s\" პრივილეგიის მქონე როლებს შეუძლიათ." + +#: storage/ipc/signalfuncs.c:158 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." msgstr "" -#: storage/ipc/signalfuncs.c:179 +#: storage/ipc/signalfuncs.c:200 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "" -#: storage/ipc/signalfuncs.c:197 +#: storage/ipc/signalfuncs.c:218 #, c-format -msgid "backend with PID %d did not terminate within %lld millisecond" -msgid_plural "backend with PID %d did not terminate within %lld milliseconds" +msgid "backend with PID %d did not terminate within % millisecond" +msgid_plural "backend with PID %d did not terminate within % milliseconds" msgstr[0] "" msgstr[1] "" -#: storage/ipc/signalfuncs.c:228 +#: storage/ipc/signalfuncs.c:249 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" უარყოფითი არ შეიძლება, იყოს" -#: storage/ipc/signalfuncs.c:285 +#: storage/ipc/signalfuncs.c:264 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may terminate autovacuum workers." +msgstr "ავტომომტვერსასრუტების დამხმარე პროცესების შეწყვეტა, მხოლოდ, \"%s\" პრივილეგიების მქონე როლებს შეუძლიათ." + +#: storage/ipc/signalfuncs.c:313 #, c-format msgid "rotation not possible because log collection not active" msgstr "" -#: storage/ipc/standby.c:329 +#: storage/ipc/standby.c:330 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "" -#: storage/ipc/standby.c:338 +#: storage/ipc/standby.c:339 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "" -#: storage/ipc/standby.c:920 tcop/postgres.c:3169 +#: storage/ipc/standby.c:921 tcop/postgres.c:3225 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "გამოსახულების გაუქმება აღდგენასთან კონფლიქტის გამო" -#: storage/ipc/standby.c:921 tcop/postgres.c:2529 +#: storage/ipc/standby.c:922 tcop/postgres.c:2575 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "" -#: storage/ipc/standby.c:1486 +#: storage/ipc/standby.c:1494 msgid "unknown reason" msgstr "უცნობი მიზეზი" -#: storage/ipc/standby.c:1491 +#: storage/ipc/standby.c:1499 msgid "recovery conflict on buffer pin" msgstr "აღდგენის კონფლიქტი ბაფერის მიმაგრებისას" -#: storage/ipc/standby.c:1494 +#: storage/ipc/standby.c:1502 msgid "recovery conflict on lock" msgstr "აღდგენის კონფლიქტი ბლოკირებისას" -#: storage/ipc/standby.c:1497 +#: storage/ipc/standby.c:1505 msgid "recovery conflict on tablespace" msgstr "აღდგენის კონფლიქტი ცხრილების სივრცეზე" -#: storage/ipc/standby.c:1500 +#: storage/ipc/standby.c:1508 msgid "recovery conflict on snapshot" msgstr "აღდგენის კონფლიქტი სწრაფ ასლზე" -#: storage/ipc/standby.c:1503 +#: storage/ipc/standby.c:1511 msgid "recovery conflict on replication slot" msgstr "აღდგენის კონფლიქტი რეპლიკაციის სლოტზე" -#: storage/ipc/standby.c:1506 +#: storage/ipc/standby.c:1514 msgid "recovery conflict on buffer deadlock" msgstr "აღდგენის კონფლიქტი ბაფერის ურთერთბლოკირებისას" -#: storage/ipc/standby.c:1509 +#: storage/ipc/standby.c:1517 msgid "recovery conflict on database" msgstr "აღდგენის კონფლიქტი მონაცემთა ბაზაზე" -#: storage/large_object/inv_api.c:190 +#: storage/large_object/inv_api.c:152 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "" -#: storage/large_object/inv_api.c:272 +#: storage/large_object/inv_api.c:234 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "დიდი ობიექტის არასწორი ალმები: %d" -#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 storage/large_object/inv_api.c:807 +#: storage/large_object/inv_api.c:259 storage/large_object/inv_api.c:271 storage/large_object/inv_api.c:468 storage/large_object/inv_api.c:579 storage/large_object/inv_api.c:769 #, c-format msgid "permission denied for large object %u" msgstr "წვდომა აკრძალულია დიდ ობიექტზე: \"%u\"" -#: storage/large_object/inv_api.c:455 +#: storage/large_object/inv_api.c:417 #, c-format msgid "invalid whence setting: %d" msgstr "არასწორი ორიენტირის პარამეტრი: %d" -#: storage/large_object/inv_api.c:627 +#: storage/large_object/inv_api.c:589 #, c-format msgid "invalid large object write request size: %d" msgstr "არასწორი დიდი ობიექტის ჩაწერის ზომა: %d" -#: storage/lmgr/deadlock.c:1104 +#: storage/lmgr/deadlock.c:1107 #, c-format msgid "Process %d waits for %s on %s; blocked by process %d." msgstr "" -#: storage/lmgr/deadlock.c:1123 +#: storage/lmgr/deadlock.c:1126 #, c-format msgid "Process %d: %s" msgstr "პროცესი %d: %s" -#: storage/lmgr/deadlock.c:1132 +#: storage/lmgr/deadlock.c:1135 #, c-format msgid "deadlock detected" msgstr "ნაპოვნია ურთიერთბლოკირება" -#: storage/lmgr/deadlock.c:1135 +#: storage/lmgr/deadlock.c:1138 #, c-format msgid "See server log for query details." msgstr "მოთხოვნის დეტალებისთვის იხილეთ სერვერის ჟურნალი." -#: storage/lmgr/lmgr.c:858 +#: storage/lmgr/lmgr.c:856 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "კორტეჟის (%u,%u) განახლებისას ურთიერთობაში \"%s\"" -#: storage/lmgr/lmgr.c:861 +#: storage/lmgr/lmgr.c:859 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "კორტეჟის (%u,%u) წაშლისას ურთიერთობაში \"%s\"" -#: storage/lmgr/lmgr.c:864 +#: storage/lmgr/lmgr.c:862 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "კორტეჟის (%u,%u) დაბლოკვისას ურთიერთობაში \"%s\"" -#: storage/lmgr/lmgr.c:867 +#: storage/lmgr/lmgr.c:865 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "კორტეჟის (%u,%u) განახლებული ვერსიის დაბლოკვისას ურთიერთობაში \"%s\"" -#: storage/lmgr/lmgr.c:870 +#: storage/lmgr/lmgr.c:868 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "" -#: storage/lmgr/lmgr.c:873 +#: storage/lmgr/lmgr.c:871 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "" -#: storage/lmgr/lmgr.c:876 +#: storage/lmgr/lmgr.c:874 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "" -#: storage/lmgr/lmgr.c:879 +#: storage/lmgr/lmgr.c:877 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "" @@ -22719,17 +23618,22 @@ msgstr "დაშორებული ტრანზაქცია %u გა msgid "unrecognized locktag type %d" msgstr "locktag-ის უცნობი ტიპი %d" -#: storage/lmgr/lock.c:790 +#: storage/lmgr/lock.c:866 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "" -#: storage/lmgr/lock.c:792 +#: storage/lmgr/lock.c:868 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." msgstr "" -#: storage/lmgr/lock.c:3252 storage/lmgr/lock.c:3320 storage/lmgr/lock.c:3436 +#: storage/lmgr/lock.c:1182 +#, c-format +msgid "process %d could not obtain %s on %s" +msgstr "პროცესმა %d ვერ მიიღო %s %s-ზე" + +#: storage/lmgr/lock.c:3423 storage/lmgr/lock.c:3491 storage/lmgr/lock.c:3607 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "" @@ -22749,665 +23653,710 @@ msgstr "" msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "" -#: storage/lmgr/predicate.c:1681 +#: storage/lmgr/predicate.c:1696 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "\"default_transaction_isolation\"-ი \"serializable\"-ზეა დაყენებული." -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1697 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "" -#: storage/lmgr/predicate.c:1733 +#: storage/lmgr/predicate.c:1748 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "" -#: storage/lmgr/predicate.c:1812 utils/time/snapmgr.c:535 utils/time/snapmgr.c:541 +#: storage/lmgr/predicate.c:1827 utils/time/snapmgr.c:556 utils/time/snapmgr.c:562 #, c-format msgid "could not import the requested snapshot" msgstr "მოთხოვნილი სწრაფი ასლის შემოტანა შეუძლებელია" -#: storage/lmgr/predicate.c:1813 utils/time/snapmgr.c:542 +#: storage/lmgr/predicate.c:1828 utils/time/snapmgr.c:563 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "საწყისი პროცესი PID-ით %d გაშვებული აღარაა." -#: storage/lmgr/predicate.c:3986 storage/lmgr/predicate.c:4022 storage/lmgr/predicate.c:4055 storage/lmgr/predicate.c:4063 storage/lmgr/predicate.c:4102 storage/lmgr/predicate.c:4332 storage/lmgr/predicate.c:4651 storage/lmgr/predicate.c:4663 storage/lmgr/predicate.c:4710 storage/lmgr/predicate.c:4746 +#: storage/lmgr/predicate.c:4001 storage/lmgr/predicate.c:4037 storage/lmgr/predicate.c:4070 storage/lmgr/predicate.c:4078 storage/lmgr/predicate.c:4117 storage/lmgr/predicate.c:4347 storage/lmgr/predicate.c:4666 storage/lmgr/predicate.c:4678 storage/lmgr/predicate.c:4725 storage/lmgr/predicate.c:4761 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "" -#: storage/lmgr/predicate.c:3988 storage/lmgr/predicate.c:4024 storage/lmgr/predicate.c:4057 storage/lmgr/predicate.c:4065 storage/lmgr/predicate.c:4104 storage/lmgr/predicate.c:4334 storage/lmgr/predicate.c:4653 storage/lmgr/predicate.c:4665 storage/lmgr/predicate.c:4712 storage/lmgr/predicate.c:4748 +#: storage/lmgr/predicate.c:4003 storage/lmgr/predicate.c:4039 storage/lmgr/predicate.c:4072 storage/lmgr/predicate.c:4080 storage/lmgr/predicate.c:4119 storage/lmgr/predicate.c:4349 storage/lmgr/predicate.c:4668 storage/lmgr/predicate.c:4680 storage/lmgr/predicate.c:4727 storage/lmgr/predicate.c:4763 #, c-format msgid "The transaction might succeed if retried." msgstr "ტრანზაქცია შეიძლება გაიტანოს, თუ გაიმეორებთ." -#: storage/lmgr/proc.c:348 +#: storage/lmgr/proc.c:454 #, c-format msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)" msgstr "" -#: storage/lmgr/proc.c:1541 +#: storage/lmgr/proc.c:1592 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "" -#: storage/lmgr/proc.c:1556 +#: storage/lmgr/proc.c:1607 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "" -#: storage/lmgr/proc.c:1565 +#: storage/lmgr/proc.c:1616 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "" -#: storage/lmgr/proc.c:1572 +#: storage/lmgr/proc.c:1623 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "" -#: storage/lmgr/proc.c:1589 +#: storage/lmgr/proc.c:1640 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "" -#: storage/page/bufpage.c:152 +#: storage/page/bufpage.c:154 #, c-format msgid "page verification failed, calculated checksum %u but expected %u" msgstr "" -#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 +#: storage/page/bufpage.c:216 storage/page/bufpage.c:729 storage/page/bufpage.c:1072 storage/page/bufpage.c:1207 storage/page/bufpage.c:1313 storage/page/bufpage.c:1425 #, c-format msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" msgstr "" -#: storage/page/bufpage.c:759 +#: storage/page/bufpage.c:758 #, c-format msgid "corrupted line pointer: %u" msgstr "ხაზის დაზიანებული მაჩვენებელი: %u" -#: storage/page/bufpage.c:789 storage/page/bufpage.c:1266 +#: storage/page/bufpage.c:788 storage/page/bufpage.c:1265 #, c-format msgid "corrupted item lengths: total %u, available space %u" msgstr "" -#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 +#: storage/page/bufpage.c:1091 storage/page/bufpage.c:1232 storage/page/bufpage.c:1329 storage/page/bufpage.c:1441 #, c-format msgid "corrupted line pointer: offset = %u, size = %u" msgstr "" -#: storage/smgr/md.c:485 storage/smgr/md.c:547 +#: storage/smgr/md.c:502 storage/smgr/md.c:564 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "" -#: storage/smgr/md.c:500 storage/smgr/md.c:611 +#: storage/smgr/md.c:517 storage/smgr/md.c:628 #, c-format msgid "could not extend file \"%s\": %m" msgstr "ფაილის გაფართოების შეცდომა \"%s\": %m" -#: storage/smgr/md.c:506 +#: storage/smgr/md.c:523 #, c-format msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" msgstr "" -#: storage/smgr/md.c:589 +#: storage/smgr/md.c:606 #, c-format msgid "could not extend file \"%s\" with FileFallocate(): %m" msgstr "ფაილის (\"%s\") FileFallocate()-ით გაფართოების შეცდომა: %m" -#: storage/smgr/md.c:869 +#: storage/smgr/md.c:899 storage/smgr/md.c:2047 #, c-format msgid "could not read blocks %u..%u in file \"%s\": %m" msgstr "ბლოკების %u..%u წაკითხვის შეცდომა ფაილში \"%s\": %m" -#: storage/smgr/md.c:895 +#: storage/smgr/md.c:946 storage/smgr/md.c:2060 #, c-format msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" msgstr "ვერ წავიკითხე ბლოკები %u..%u ფაილში \"%s\": წავიკითხე, მხოლოდ, %zu ბაიტი %zu-დან" -#: storage/smgr/md.c:995 +#: storage/smgr/md.c:1023 +#, c-format +msgid "could not start reading blocks %u..%u in file \"%s\": %m" +msgstr "ბლოკების %u..%u წაკითხვის დაწყების შეცდომა ფაილში \"%s\": %m" + +#: storage/smgr/md.c:1119 #, c-format msgid "could not write blocks %u..%u in file \"%s\": %m" msgstr "ბლოკის %u..%u ჩაწერის შეცდომა ფაილში \"%s\": %m" -#: storage/smgr/md.c:1163 +#: storage/smgr/md.c:1289 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "" -#: storage/smgr/md.c:1218 +#: storage/smgr/md.c:1344 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "" -#: storage/smgr/md.c:1688 +#: storage/smgr/md.c:1832 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "" -#: storage/smgr/md.c:1702 +#: storage/smgr/md.c:1846 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "" -#: tcop/backend_startup.c:85 +#: storage/smgr/smgr.c:1106 +#, c-format +msgid "file \"%s\"" +msgstr "ფაილი \"%s\"" + +#: storage/smgr/smgr.c:1108 +#, c-format +msgid "block %u in file \"%s\"" +msgstr "ბლოკი %u ფაილში \"%s\"" + +#: storage/smgr/smgr.c:1112 +#, c-format +msgid "blocks %u..%u in file \"%s\"" +msgstr "ბლოკები %u..%u ფაილში \"%s\"" + +#: tcop/backend_startup.c:104 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "SSL კონფიგურაციის შვილ პროცესში შეტვირთვის შეცდომა" -#: tcop/backend_startup.c:208 +#: tcop/backend_startup.c:226 #, c-format msgid "connection received: host=%s port=%s" msgstr "შემოსული დაკავშირება: ჰოსტი=%s პორტი=%s" -#: tcop/backend_startup.c:213 +#: tcop/backend_startup.c:231 #, c-format msgid "connection received: host=%s" msgstr "შემოსული დაკავშირება: ჰოსტი=%s" -#: tcop/backend_startup.c:277 +#: tcop/backend_startup.c:309 #, c-format msgid "the database system is starting up" msgstr "მიმდინარეობს მონაცემთა ბაზის სისტემის გაშვება" -#: tcop/backend_startup.c:283 +#: tcop/backend_startup.c:315 +#, c-format +msgid "the database system is not accepting connections" +msgstr "მონაცემთა ბაზის სისტემა მიერთებებს არ იღებს" + +#: tcop/backend_startup.c:316 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "ცხელი ლოდინის რეჟიმი გამორთულია." + +#: tcop/backend_startup.c:320 tcop/backend_startup.c:327 #, c-format msgid "the database system is not yet accepting connections" msgstr "მონაცემთა ბაზის სისტემა ჯერ მიერთებებს არ იღებს" -#: tcop/backend_startup.c:284 +#: tcop/backend_startup.c:321 #, c-format -msgid "Consistent recovery state has not been yet reached." +msgid "Recovery snapshot is not yet ready for hot standby." msgstr "" -#: tcop/backend_startup.c:288 +#: tcop/backend_startup.c:322 #, c-format -msgid "the database system is not accepting connections" -msgstr "მონაცემთა ბაზის სისტემა მიერთებებს არ იღებს" +msgid "To enable hot standby, close write transactions with more than %d subtransactions on the primary server." +msgstr "" -#: tcop/backend_startup.c:289 +#: tcop/backend_startup.c:328 #, c-format -msgid "Hot standby mode is disabled." -msgstr "ცხელი ლოდინის რეჟიმი გამორთულია." +msgid "Consistent recovery state has not been yet reached." +msgstr "" -#: tcop/backend_startup.c:294 +#: tcop/backend_startup.c:333 #, c-format msgid "the database system is shutting down" msgstr "მონაცემთა ბაზის სისტემა ითიშება" -#: tcop/backend_startup.c:299 +#: tcop/backend_startup.c:338 #, c-format msgid "the database system is in recovery mode" msgstr "მონაცემთა ბაზის სისტემა აღდგენის რეჟიმშია" -#: tcop/backend_startup.c:414 +#: tcop/backend_startup.c:453 #, c-format msgid "received direct SSL connection request without ALPN protocol negotiation extension" msgstr "" -#: tcop/backend_startup.c:420 +#: tcop/backend_startup.c:459 #, c-format msgid "direct SSL connection accepted" msgstr "პირდაპირი SSL მიერთება მიღებულია" -#: tcop/backend_startup.c:430 +#: tcop/backend_startup.c:469 #, c-format msgid "direct SSL connection rejected" msgstr "პირდაპირი SSL მიერთება უარყოფილია" -#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#: tcop/backend_startup.c:528 tcop/backend_startup.c:556 #, c-format msgid "incomplete startup packet" msgstr "გაშვების დაუსრულებელი პაკეტი" -#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#: tcop/backend_startup.c:540 #, c-format msgid "invalid length of startup packet" msgstr "გაშვების პაკეტის არასწორი სიგრძე" -#: tcop/backend_startup.c:573 +#: tcop/backend_startup.c:597 #, c-format msgid "SSLRequest accepted" msgstr "" -#: tcop/backend_startup.c:576 +#: tcop/backend_startup.c:600 #, c-format msgid "SSLRequest rejected" msgstr "" -#: tcop/backend_startup.c:585 +#: tcop/backend_startup.c:609 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "შეცდომა SSL მოლაპარაკების პასუხის გაგზავნისას: %m" -#: tcop/backend_startup.c:603 +#: tcop/backend_startup.c:627 #, c-format msgid "received unencrypted data after SSL request" msgstr "'SSL'-ის მოთხოვნის შემდეგ მიღებულია დაუშიფრავი მონაცემები" -#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#: tcop/backend_startup.c:628 tcop/backend_startup.c:682 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "" -#: tcop/backend_startup.c:627 +#: tcop/backend_startup.c:651 #, c-format msgid "GSSENCRequest accepted" msgstr "" -#: tcop/backend_startup.c:630 +#: tcop/backend_startup.c:654 #, c-format msgid "GSSENCRequest rejected" msgstr "" -#: tcop/backend_startup.c:639 +#: tcop/backend_startup.c:663 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "შეცდომა GSSAPI მოლაპარაკების პასუხის გაგზავნისას: %m" -#: tcop/backend_startup.c:657 +#: tcop/backend_startup.c:681 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "'GSSAPI' დაშიფვრის მოთხოვნის შემდეგ მიღებული მონაცემები დაუშიფრავია" -#: tcop/backend_startup.c:681 +#: tcop/backend_startup.c:709 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "" -#: tcop/backend_startup.c:744 +#: tcop/backend_startup.c:772 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "სწორი მნიშვნელობებია: \"false\", 0, \"true\", 1, \"database\"." -#: tcop/backend_startup.c:785 +#: tcop/backend_startup.c:813 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "" -#: tcop/backend_startup.c:802 +#: tcop/backend_startup.c:830 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "გაშვების პაკეტში PostgreSQL-ის მომხმარებლის სახელი მითითებული არაა" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 +#: tcop/backend_startup.c:884 +#, c-format +msgid "invalid length of query cancel packet" +msgstr "მოთხოვნის გაუქმების პაკეტის სიგრძე არასწორია" + +#: tcop/backend_startup.c:892 +#, c-format +msgid "invalid length of query cancel key" +msgstr "მოთხოვნის გაუქმების გასაღების სიგრძე არასწორია" + +#: tcop/backend_startup.c:1022 +#, c-format +msgid "Cannot specify log_connections option \"%s\" in a list with other options." +msgstr "ვერ მიუთითებთ log_connections-ის პარამეტრს \"%s\" სიაში, სადაც სხვა პარამეტრებიცაა." + +#: tcop/backend_startup.c:1080 +#, c-format +msgid "Invalid list syntax in parameter \"log_connections\"." +msgstr "არასწორი სიის სინტაქსი პარამეტრში \"log_connections\"." + +#: tcop/fastpath.c:141 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "ფუნქცია OID-ით %u არ არსებობს" -#: tcop/fastpath.c:149 +#: tcop/fastpath.c:148 #, c-format msgid "cannot call function \"%s\" via fastpath interface" msgstr "" -#: tcop/fastpath.c:234 +#: tcop/fastpath.c:233 #, c-format msgid "fastpath function call: \"%s\" (OID %u)" msgstr "" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 tcop/postgres.c:2055 tcop/postgres.c:2305 +#: tcop/fastpath.c:312 tcop/postgres.c:1364 tcop/postgres.c:1600 tcop/postgres.c:2079 tcop/postgres.c:2351 #, c-format msgid "duration: %s ms" msgstr "ხანგრძლივობა: %s მწმ" -#: tcop/fastpath.c:317 +#: tcop/fastpath.c:316 #, c-format msgid "duration: %s ms fastpath function call: \"%s\" (OID %u)" msgstr "" -#: tcop/fastpath.c:353 +#: tcop/fastpath.c:352 #, c-format msgid "function call message contains %d arguments but function requires %d" msgstr "" -#: tcop/fastpath.c:361 +#: tcop/fastpath.c:360 #, c-format msgid "function call message contains %d argument formats but %d arguments" msgstr "" -#: tcop/fastpath.c:385 +#: tcop/fastpath.c:384 #, c-format msgid "invalid argument size %d in function call message" msgstr "" -#: tcop/fastpath.c:448 +#: tcop/fastpath.c:447 #, c-format msgid "incorrect binary data format in function argument %d" msgstr "" -#: tcop/postgres.c:463 tcop/postgres.c:4925 +#: tcop/postgres.c:455 tcop/postgres.c:5023 #, c-format msgid "invalid frontend message type %d" msgstr "არასწორი წინაბოლოს შეტყობინების ტიპი %d" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1070 #, c-format msgid "statement: %s" msgstr "ოპერატორი: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1369 #, c-format msgid "duration: %s ms statement: %s" msgstr "ხანგრძლივობა: %s მწმ გამოსახულება: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1475 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1605 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "ხანგრძლივობა: %s მწმ %s-ის დამუშავება: %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2625 +#: tcop/postgres.c:1672 tcop/postgres.c:2671 #, c-format msgid "unnamed prepared statement does not exist" msgstr "" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1724 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1730 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "" -#: tcop/postgres.c:1933 +#: tcop/postgres.c:1944 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "" -#: tcop/postgres.c:2060 +#: tcop/postgres.c:2084 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "ხანგრძლივობა: %s მწმ მიბმა %s%s%s: %s" -#: tcop/postgres.c:2114 tcop/postgres.c:2708 +#: tcop/postgres.c:2139 tcop/postgres.c:2753 #, c-format msgid "portal \"%s\" does not exist" msgstr "პორტალი \"%s\" არ არსებობს" -#: tcop/postgres.c:2185 +#: tcop/postgres.c:2232 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2187 tcop/postgres.c:2313 +#: tcop/postgres.c:2234 tcop/postgres.c:2359 msgid "execute fetch from" msgstr "" -#: tcop/postgres.c:2188 tcop/postgres.c:2314 +#: tcop/postgres.c:2235 tcop/postgres.c:2360 msgid "execute" msgstr "გაშვება" -#: tcop/postgres.c:2310 +#: tcop/postgres.c:2356 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "ხანგრძლივობა: %s მწმs %s %s%s%s: %s" -#: tcop/postgres.c:2458 +#: tcop/postgres.c:2504 #, c-format msgid "prepare: %s" msgstr "მომზადება: %s" -#: tcop/postgres.c:2483 +#: tcop/postgres.c:2529 #, c-format msgid "Parameters: %s" msgstr "პარამეტრები: %s" -#: tcop/postgres.c:2498 +#: tcop/postgres.c:2544 #, c-format msgid "Abort reason: recovery conflict" msgstr "გაუქმების მიზეზი: აღდგენის კონფლიქტი" -#: tcop/postgres.c:2514 +#: tcop/postgres.c:2560 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "" -#: tcop/postgres.c:2517 +#: tcop/postgres.c:2563 #, c-format msgid "User was holding a relation lock for too long." msgstr "" -#: tcop/postgres.c:2520 +#: tcop/postgres.c:2566 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "" -#: tcop/postgres.c:2523 +#: tcop/postgres.c:2569 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "" -#: tcop/postgres.c:2526 +#: tcop/postgres.c:2572 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "" -#: tcop/postgres.c:2532 +#: tcop/postgres.c:2578 #, c-format msgid "User was connected to a database that must be dropped." msgstr "" -#: tcop/postgres.c:2571 +#: tcop/postgres.c:2617 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "პორტალის \"%s\" პარამეტრი $%d = %s" -#: tcop/postgres.c:2574 +#: tcop/postgres.c:2620 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "პორტალის \"%s\" პარამეტრი $%d" -#: tcop/postgres.c:2580 +#: tcop/postgres.c:2626 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "უსახელო პორტალის პარამეტრი $%d = %s" -#: tcop/postgres.c:2583 +#: tcop/postgres.c:2629 #, c-format msgid "unnamed portal parameter $%d" msgstr "უსახელო პორტალის პარამეტრი $%d" -#: tcop/postgres.c:2928 +#: tcop/postgres.c:2984 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "" -#: tcop/postgres.c:2934 +#: tcop/postgres.c:2990 #, c-format msgid "terminating connection because of crash of another server process" msgstr "" -#: tcop/postgres.c:2935 +#: tcop/postgres.c:2991 #, c-format 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 "" -#: tcop/postgres.c:2939 tcop/postgres.c:3192 +#: tcop/postgres.c:2995 tcop/postgres.c:3248 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "" -#: tcop/postgres.c:2946 +#: tcop/postgres.c:3002 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "მიერთების შეწყვეტა დაუყოვნებლივი გამორთვის ბრძანების გამო" -#: tcop/postgres.c:3024 +#: tcop/postgres.c:3080 #, c-format msgid "floating-point exception" msgstr "წილადი რიცხვების ანგარიშის შეცდომა" -#: tcop/postgres.c:3025 +#: tcop/postgres.c:3081 #, c-format 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 "" -#: tcop/postgres.c:3190 +#: tcop/postgres.c:3246 #, c-format msgid "terminating connection due to conflict with recovery" msgstr "მიერთების შეწყვეტა აღდგენასთან კონფლიქტის გამო" -#: tcop/postgres.c:3262 +#: tcop/postgres.c:3318 #, c-format msgid "canceling authentication due to timeout" msgstr "ავთენტიკაცია გაუქმდა მოლოდინის ვადის ამოწურვის გამო" -#: tcop/postgres.c:3266 +#: tcop/postgres.c:3322 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "ავტომომტვერსასრუტების პროცესის შეწყვეტა ადმინისტრატორის ბრძანების გამო" -#: tcop/postgres.c:3270 +#: tcop/postgres.c:3326 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "ლოგიკური რეპლიკაციის დამხმარე პროცესის შეწყვეტა ადმინისტრატორის ბრძანების გამო" -#: tcop/postgres.c:3290 +#: tcop/postgres.c:3341 +#, c-format +msgid "terminating walreceiver process due to administrator command" +msgstr "walreceiver პროგრამის შეწყვეტა ადმინისტრატორის ბრძანების გამო" + +#: tcop/postgres.c:3357 #, c-format msgid "terminating connection due to administrator command" msgstr "მიერთების შეწყვეტა ადმინისტრატორის ბრძანების გამო" -#: tcop/postgres.c:3321 +#: tcop/postgres.c:3388 #, c-format msgid "connection to client lost" msgstr "კლიენტთან შეერთების შეცდომა" -#: tcop/postgres.c:3373 +#: tcop/postgres.c:3440 #, c-format msgid "canceling statement due to lock timeout" msgstr "გამოსახულება გაუქმდება ბლოკის მოლოდინის ვადის ამოწურვის გამო" -#: tcop/postgres.c:3380 +#: tcop/postgres.c:3447 #, c-format msgid "canceling statement due to statement timeout" msgstr "" -#: tcop/postgres.c:3387 +#: tcop/postgres.c:3454 #, c-format msgid "canceling autovacuum task" msgstr "ავტომომტვერსასრუტების ამოცანის გაუქმება" -#: tcop/postgres.c:3400 +#: tcop/postgres.c:3467 #, c-format msgid "canceling statement due to user request" msgstr "" -#: tcop/postgres.c:3421 +#: tcop/postgres.c:3488 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "" -#: tcop/postgres.c:3434 +#: tcop/postgres.c:3501 #, c-format msgid "terminating connection due to transaction timeout" msgstr "მიერთების შეწყვეტა ტრანზაქციის მოლოდინის ვადის ამოწურვის გამო" -#: tcop/postgres.c:3447 +#: tcop/postgres.c:3514 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "" -#: tcop/postgres.c:3537 -#, c-format -msgid "stack depth limit exceeded" -msgstr "გადაცილებულია სტეკის სიღრმის ლიმიტი" - -#: tcop/postgres.c:3538 -#, c-format -msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." -msgstr "" - -#: tcop/postgres.c:3585 -#, c-format -msgid "\"max_stack_depth\" must not exceed %ldkB." -msgstr "\"max_stack_depth\" %ldკბ-ს არ უნდა ზცდებოდეს." - -#: tcop/postgres.c:3587 -#, c-format -msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." -msgstr "" - -#: tcop/postgres.c:3610 +#: tcop/postgres.c:3553 #, c-format msgid "\"client_connection_check_interval\" must be set to 0 on this platform." msgstr "ამ პლატფორმაზე \"client_connection_check_interval\" 0 უნდა იყოს." -#: tcop/postgres.c:3631 +#: tcop/postgres.c:3574 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "პარამეტრის ჩართვა მაშინ, როცა \"log_statement_stats\" ჩართულია, შეუძლებელია." -#: tcop/postgres.c:3646 +#: tcop/postgres.c:3589 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "ვერ ჩართავთ \"log_statement_stats\"-ს, როცა \"when log_parser_stats\", \"log_planner_stats\", ან \"log_executor_stats\" ჭეშმარიტია." -#: tcop/postgres.c:4011 +#: tcop/postgres.c:4029 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "" -#: tcop/postgres.c:4012 tcop/postgres.c:4018 +#: tcop/postgres.c:4030 tcop/postgres.c:4036 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: tcop/postgres.c:4016 +#: tcop/postgres.c:4034 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: არასწორი ბრძანების სტრიქონის არგუმენტი: %s" -#: tcop/postgres.c:4069 +#: tcop/postgres.c:4087 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: არც ბაზა, არც მომხმარებელი მითითებული არაა" -#: tcop/postgres.c:4822 +#: tcop/postgres.c:4280 +#, c-format +msgid "could not generate random cancel key" +msgstr "შემთხვევითი გაუქმების გასაღების გენერაცია შეუძლებელია" + +#: tcop/postgres.c:4682 +#, c-format +msgid "connection ready: setup total=%.3f ms, fork=%.3f ms, authentication=%.3f ms" +msgstr "" + +#: tcop/postgres.c:4913 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "არასწორი CLOSE შეტყობინების ქვეტიპი %d" -#: tcop/postgres.c:4859 +#: tcop/postgres.c:4950 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "არასწორი DESCRIBE შეტყობინების ქვეტიპი %d" -#: tcop/postgres.c:4946 +#: tcop/postgres.c:5044 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "" -#: tcop/postgres.c:4950 +#: tcop/postgres.c:5048 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "" -#: tcop/postgres.c:5130 +#: tcop/postgres.c:5194 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "" -#: tcop/pquery.c:641 +#: tcop/pquery.c:674 #, c-format msgid "bind message has %d result formats but query has %d columns" msgstr "" -#: tcop/pquery.c:944 tcop/pquery.c:1701 +#: tcop/pquery.c:972 tcop/pquery.c:1734 #, c-format msgid "cursor can only scan forward" msgstr "კურსორს მხოლოდ წინ სკანირება შეუძლია" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:973 tcop/pquery.c:1735 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "" @@ -23437,68 +24386,68 @@ msgid "cannot execute %s within security-restricted operation" msgstr "" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:821 +#: tcop/utility.c:824 #, c-format msgid "cannot execute %s within a background process" msgstr "ფონის პროცესში %s-ის შესრულება შეუძლებელია" #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:947 +#: tcop/utility.c:950 #, c-format msgid "permission denied to execute %s command" msgstr "ბრძანების შესრულების წვდომა აკრძალულია: %s" -#: tcop/utility.c:949 +#: tcop/utility.c:952 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "ამ ბრძანების შესრულება მხოლოდ \"%s\" როლის პრივილეგიების მქონეებს შეუძლიათ." -#: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:616 +#: tsearch/dict_ispell.c:53 tsearch/dict_thesaurus.c:616 #, c-format msgid "multiple DictFile parameters" msgstr "გამეორებადი DictFile პარამეტრი" -#: tsearch/dict_ispell.c:63 +#: tsearch/dict_ispell.c:64 #, c-format msgid "multiple AffFile parameters" msgstr "გამეორებადი AffFile პარამეტრი" -#: tsearch/dict_ispell.c:82 +#: tsearch/dict_ispell.c:83 #, c-format msgid "unrecognized Ispell parameter: \"%s\"" msgstr "უცნობი lspell-ის პარამეტრი: \"%s\"" -#: tsearch/dict_ispell.c:96 +#: tsearch/dict_ispell.c:97 #, c-format msgid "missing AffFile parameter" msgstr "აკლია პარამეტრი AffFile" -#: tsearch/dict_ispell.c:102 tsearch/dict_thesaurus.c:640 +#: tsearch/dict_ispell.c:103 tsearch/dict_thesaurus.c:640 #, c-format msgid "missing DictFile parameter" msgstr "აკლია პარამეტრი DictFile" -#: tsearch/dict_simple.c:58 +#: tsearch/dict_simple.c:59 #, c-format msgid "multiple Accept parameters" msgstr "გამეორებადი Accept პარამეტრი" -#: tsearch/dict_simple.c:66 +#: tsearch/dict_simple.c:67 #, c-format msgid "unrecognized simple dictionary parameter: \"%s\"" msgstr "უცნობი მარტივი ლექსიკონის პარამეტრი: \"%s\"" -#: tsearch/dict_synonym.c:118 +#: tsearch/dict_synonym.c:120 #, c-format msgid "unrecognized synonym parameter: \"%s\"" msgstr "უცნობი სინონიმის პარამეტრი: \"%s\"" -#: tsearch/dict_synonym.c:125 +#: tsearch/dict_synonym.c:127 #, c-format msgid "missing Synonyms parameter" msgstr "აკლია პარამეტრი Synonyms" -#: tsearch/dict_synonym.c:132 +#: tsearch/dict_synonym.c:134 #, c-format msgid "could not open synonym file \"%s\": %m" msgstr "სინონიმს ფაილი \"%s\" ვერ გავხსენი: %m" @@ -23573,76 +24522,71 @@ msgstr "გამოუცნობი განმარტებითი ლ msgid "missing Dictionary parameter" msgstr "აკლია პარამეტრი Dictionary" -#: tsearch/spell.c:381 tsearch/spell.c:398 tsearch/spell.c:407 tsearch/spell.c:1043 +#: tsearch/spell.c:383 tsearch/spell.c:400 tsearch/spell.c:409 tsearch/spell.c:1046 #, c-format msgid "invalid affix flag \"%s\"" msgstr "აფიქსის არასწორი ალამი: %s" -#: tsearch/spell.c:385 tsearch/spell.c:1047 +#: tsearch/spell.c:387 tsearch/spell.c:1050 #, c-format msgid "affix flag \"%s\" is out of range" msgstr "აფიქსის ალამი დიაპაზონს გარეთაა: %s" -#: tsearch/spell.c:415 +#: tsearch/spell.c:417 #, c-format msgid "invalid character in affix flag \"%s\"" msgstr "არასწორი სიმბოლო აფიქსის ალამში: %s" -#: tsearch/spell.c:435 +#: tsearch/spell.c:437 #, c-format msgid "invalid affix flag \"%s\" with \"long\" flag value" msgstr "აფიქსის არასწორი ალამი \"%s\" ალამის მნიშვნელობით \"long\"" -#: tsearch/spell.c:525 +#: tsearch/spell.c:527 #, c-format msgid "could not open dictionary file \"%s\": %m" msgstr "ლექსიკონის ფაილის (%s) გახსნის შეცდომა: %m" -#: tsearch/spell.c:1170 tsearch/spell.c:1182 tsearch/spell.c:1742 tsearch/spell.c:1747 tsearch/spell.c:1752 +#: tsearch/spell.c:1174 tsearch/spell.c:1186 tsearch/spell.c:1751 tsearch/spell.c:1756 tsearch/spell.c:1761 #, c-format msgid "invalid affix alias \"%s\"" msgstr "აფისქსის არასწორი მეტსახელი: %s" -#: tsearch/spell.c:1223 tsearch/spell.c:1294 tsearch/spell.c:1443 +#: tsearch/spell.c:1227 tsearch/spell.c:1298 tsearch/spell.c:1447 #, c-format msgid "could not open affix file \"%s\": %m" msgstr "აფიქსის ფაილის (%s) გახსნის შეცდომა: %m" -#: tsearch/spell.c:1277 +#: tsearch/spell.c:1281 #, c-format msgid "Ispell dictionary supports only \"default\", \"long\", and \"num\" flag values" msgstr "" -#: tsearch/spell.c:1321 +#: tsearch/spell.c:1325 #, c-format msgid "invalid number of flag vector aliases" msgstr "ალმის ვექტორის მეტსახელების არასწორი რიცხვი" -#: tsearch/spell.c:1344 +#: tsearch/spell.c:1348 #, c-format msgid "number of aliases exceeds specified number %d" msgstr "მეტსახელების რიცხვი მითითებულ მნიშვნელობაზე მეტია: %d" -#: tsearch/spell.c:1559 +#: tsearch/spell.c:1563 #, c-format msgid "affix file contains both old-style and new-style commands" msgstr "აფიქსის ფაილი ორივე, ახალი და ძველი სტილის ბრძანებებს შეიცავს" -#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:274 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "სტრიქონი tsvector-ისთვის ძალიანგრძელია (%d ბაიტი, მაქს %d ბაიტი)" -#: tsearch/ts_locale.c:236 +#: tsearch/ts_locale.c:191 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "კონფიგურაციის ფაილის \"%2$s\" %1$d-ე ხაზზე: \"%3$s\"" -#: tsearch/ts_locale.c:315 -#, c-format -msgid "conversion from wchar_t to server encoding failed: %m" -msgstr "" - #: tsearch/ts_parse.c:387 tsearch/ts_parse.c:394 tsearch/ts_parse.c:573 tsearch/ts_parse.c:580 #, c-format msgid "word is too long to be indexed" @@ -23653,12 +24597,12 @@ msgstr "სიტყვა ძალიან გრძელია, რომ msgid "Words longer than %d characters are ignored." msgstr "%d სიმბოლოზე გრძელი სიტყვები იგნორირდება." -#: tsearch/ts_utils.c:51 +#: tsearch/ts_utils.c:52 #, c-format msgid "invalid text search configuration file name \"%s\"" msgstr "ტექსტის ძებნის კონფიგურაციის ფაილის არასწორი სახელი: \"%s\"" -#: tsearch/ts_utils.c:83 +#: tsearch/ts_utils.c:84 #, c-format msgid "could not open stop-word file \"%s\": %m" msgstr "" @@ -23675,60 +24619,105 @@ msgstr "" #: tsearch/wparser_def.c:2674 #, c-format -msgid "MinWords should be less than MaxWords" -msgstr "MinWords MaxWords-ზე ნაკლები უნდა იყოს" +msgid "%s must be less than %s" +msgstr "%s უნდა იყოს %s-ზე ნაკლები" #: tsearch/wparser_def.c:2678 #, c-format -msgid "MinWords should be positive" -msgstr "MinWords დადებით უნდა იყოს" - -#: tsearch/wparser_def.c:2682 -#, c-format -msgid "ShortWord should be >= 0" -msgstr "ShortWord >= 0 უნდა იყოს" +msgid "%s must be positive" +msgstr "%s დადებითი უნდა იყოს" -#: tsearch/wparser_def.c:2686 +#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686 #, c-format -msgid "MaxFragments should be >= 0" -msgstr "MaxFragments >= 0 უნდა იყოს" +msgid "%s must be >= 0" +msgstr "" -#: utils/activity/pgstat.c:435 +#: utils/activity/pgstat.c:533 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1443 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "სტატისტიკის არასწორი ტიპი: \"%s\"" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1488 +#, c-format +msgid "custom cumulative statistics name is invalid" +msgstr "კუმულატიური სტატისტიკის ხელით მითითებული სახელი არასწორია" + +#: utils/activity/pgstat.c:1489 +#, c-format +msgid "Provide a non-empty name for the custom cumulative statistics." +msgstr "მიუთითეთ არაცარიელი სახელი მორგებული დაგროვებადი სტატისტიკისთვის." + +#: utils/activity/pgstat.c:1492 +#, c-format +msgid "custom cumulative statistics ID %u is out of range" +msgstr "კუმულატიური სტატისტიკის ხელით მითითებული ID %u დიაპაზონს გარეთაა" + +#: utils/activity/pgstat.c:1493 +#, c-format +msgid "Provide a custom cumulative statistics ID between %u and %u." +msgstr "შეიყვანეთ რესურსების ხელით მითითებული კუმულაციური სტატისტიკის ID %u-დან %u-მდე შუალედიდან." + +#: utils/activity/pgstat.c:1498 utils/activity/pgstat.c:1525 utils/activity/pgstat.c:1538 +#, c-format +msgid "failed to register custom cumulative statistics \"%s\" with ID %u" +msgstr "ვერ დარეგისტრირდა მორგებული დაგროვებითი სტატისტიკა \"%s\" ID-ით %u" + +#: utils/activity/pgstat.c:1499 +#, c-format +msgid "Custom cumulative statistics must be registered while initializing modules in \"shared_preload_libraries\"." +msgstr "მომხმარებლის კუმულაციური სტატისტიკის რეგისტრაცია \"shared_preload_libraries\"-ში მოდულების ინიციალიზაციისას უნდა მოხდეს." + +#: utils/activity/pgstat.c:1508 +#, c-format +msgid "custom cumulative statistics property is invalid" +msgstr "" + +#: utils/activity/pgstat.c:1509 +#, c-format +msgid "Custom cumulative statistics require a shared memory size for fixed-numbered objects." +msgstr "" + +#: utils/activity/pgstat.c:1526 +#, c-format +msgid "Custom cumulative statistics \"%s\" already registered with the same ID." +msgstr "მორგებული კუმულაციური სტატისტიკა \"%s\" უკვე რეგისტრირებულია, იგივე ID-ით." + +#: utils/activity/pgstat.c:1539 +#, c-format +msgid "Existing cumulative statistics with ID %u has the same name." +msgstr "არსებულ კუმულატიურ სტატისტიკას ID-ით %u იგივე სახელი აქვს." + +#: utils/activity/pgstat.c:1545 +#, c-format +msgid "registered custom cumulative statistics \"%s\" with ID %u" +msgstr "რეგისტრირებულია მორგებული კუმულაციური სტატისტიკა \"%s\" ID-ით %u" + +#: utils/activity/pgstat.c:1614 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "სტატისტიკის დროებითი ფაილის (\"%s\") გახსნა შეუძლებელია: %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1735 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "სტატისტიკის დროებითი ფაილში (\"%s\") ჩაწერა შეუძლებელია: %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1744 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "სტატისტიკის დროებითი ფაილის (\"%s\") დახურვა შეუძლებელია: %m" -#: utils/activity/pgstat.c:1461 -#, c-format -msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" -msgstr "სტატისტიკის დროებითი ფაილის \"%s\"-დან \"%s\" -მდე სახელის გადარქმევა შეუძლებელია: %m" - -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1798 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "სტატისტიკის ფაილის (\"%s\") გახსნა შეუძლებელია: %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:2030 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "სტატისტიკის დაზიანებული ფაილი \"%s\"" @@ -23738,178 +24727,183 @@ msgstr "სტატისტიკის დაზიანებული ფ msgid "function call to dropped function" msgstr "ფუნქცია წაშლილ ფუნქციას იძახებს" -#: utils/activity/pgstat_xact.c:362 +#: utils/activity/pgstat_xact.c:366 #, c-format -msgid "resetting existing statistics for kind %s, db=%u, oid=%u" +msgid "resetting existing statistics for kind %s, db=%u, oid=%" msgstr "" -#: utils/activity/wait_event.c:210 +#: utils/activity/wait_event.c:206 utils/activity/wait_event.c:231 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "მოცდის მოვლენა \"%s\" უკვე არსებობს ტიპში \"%s\"" + +#: utils/activity/wait_event.c:245 #, c-format -msgid "too many wait events for extensions" -msgstr "მეტისმეტად ბევრი მოცდის მოვლენა გაფართოებებისთვის" +msgid "too many custom wait events" +msgstr "მეტისმეტად ბევრი მორგებული მოცდის მოვლენა" -#: utils/adt/acl.c:183 utils/adt/name.c:93 +#: utils/adt/acl.c:187 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "იდენტიფიკატორი ძალიან გრძელია" -#: utils/adt/acl.c:184 utils/adt/name.c:94 +#: utils/adt/acl.c:188 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "" -#: utils/adt/acl.c:272 +#: utils/adt/acl.c:276 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "უცნობი საკვანძო სიტყვა: \"%s\"" -#: utils/adt/acl.c:273 +#: utils/adt/acl.c:277 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "ACL-ის საკვანძო სიტყვა უნდა იყოს \"group\" ან \"user\"." -#: utils/adt/acl.c:281 +#: utils/adt/acl.c:285 #, c-format msgid "missing name" msgstr "სახელი აკლია" -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:286 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "" -#: utils/adt/acl.c:288 +#: utils/adt/acl.c:292 #, c-format msgid "missing \"=\" sign" msgstr "აკლია \"=\" ნიშანი" -#: utils/adt/acl.c:350 +#: utils/adt/acl.c:351 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "არასწორი რეჟიმის სიმბოლო: უნდა იყოს ერთ-ერთი სიიდან \"%s\"" -#: utils/adt/acl.c:380 +#: utils/adt/acl.c:381 #, c-format msgid "a name must follow the \"/\" sign" msgstr "\"/\" სიმბოლოს სახელი უნდა მოჰყვებოდეს" -#: utils/adt/acl.c:392 +#: utils/adt/acl.c:393 #, c-format msgid "defaulting grantor to user ID %u" msgstr "" -#: utils/adt/acl.c:578 +#: utils/adt/acl.c:579 #, c-format msgid "ACL array contains wrong data type" msgstr "ACL-ის მასივი მონაცემების არასწორ ტიპს შეიცავს" -#: utils/adt/acl.c:582 +#: utils/adt/acl.c:583 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "ACL-ის მასივები ერთგანზომილებიანი უნდა იყოს" -#: utils/adt/acl.c:586 +#: utils/adt/acl.c:587 #, c-format msgid "ACL arrays must not contain null values" msgstr "ACL-ის მასივები ნულოვან მნიშვნელობებს არ უნდა შეიცავდეს" -#: utils/adt/acl.c:615 +#: utils/adt/acl.c:616 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "" -#: utils/adt/acl.c:1257 +#: utils/adt/acl.c:1264 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "" -#: utils/adt/acl.c:1573 +#: utils/adt/acl.c:1580 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert მხარდაჭერილი აღარაა" -#: utils/adt/acl.c:1583 +#: utils/adt/acl.c:1590 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove მხარდაჭერილი აღარაა" -#: utils/adt/acl.c:1703 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "პრივილეგიის უცნობი ტიპი \"%s\"" -#: utils/adt/acl.c:3544 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3548 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "ფუნქცია არ არსებობს: \"%s\"" -#: utils/adt/acl.c:5190 +#: utils/adt/acl.c:5330 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "უნდა შეეძლოს SET ROLE \"%s\"" -#: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 +#: utils/adt/array_userfuncs.c:118 utils/adt/array_userfuncs.c:565 utils/adt/array_userfuncs.c:942 utils/adt/json.c:611 utils/adt/json.c:749 utils/adt/json.c:799 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "შეყვანილი მონაცემების ტიპის განსაზღვრა შეუძლებელია" -#: utils/adt/array_userfuncs.c:107 +#: utils/adt/array_userfuncs.c:123 #, c-format msgid "input data type is not an array" msgstr "შემოტანის მონაცემების ტიპი მასივი არაა" -#: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 utils/adt/int.c:1263 -#: utils/adt/int.c:1331 utils/adt/int.c:1337 utils/adt/int8.c:1256 utils/adt/numeric.c:1902 utils/adt/numeric.c:4439 utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 utils/adt/varlena.c:3137 +#: utils/adt/array_userfuncs.c:167 utils/adt/array_userfuncs.c:249 utils/adt/float.c:1229 utils/adt/float.c:1303 utils/adt/float.c:4107 utils/adt/float.c:4145 utils/adt/int.c:778 utils/adt/int.c:800 utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 utils/adt/int.c:1263 +#: utils/adt/int.c:1331 utils/adt/int.c:1337 utils/adt/int8.c:1256 utils/adt/numeric.c:2039 utils/adt/numeric.c:4557 utils/adt/rangetypes.c:1552 utils/adt/rangetypes.c:1565 utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1143 utils/adt/varlena.c:3184 utils/adt/varlena.c:4118 #, c-format msgid "integer out of range" msgstr "მთელი მნიშვნელობა დიაპაზონს გარეთაა" -#: utils/adt/array_userfuncs.c:158 utils/adt/array_userfuncs.c:213 +#: utils/adt/array_userfuncs.c:174 utils/adt/array_userfuncs.c:259 #, c-format msgid "argument must be empty or one-dimensional array" msgstr "არგუმენტი ცარიელი ან ერთგანზომილებიანი მასივი უნდა იყოს" -#: utils/adt/array_userfuncs.c:295 utils/adt/array_userfuncs.c:334 utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:400 utils/adt/array_userfuncs.c:428 +#: utils/adt/array_userfuncs.c:371 utils/adt/array_userfuncs.c:410 utils/adt/array_userfuncs.c:447 utils/adt/array_userfuncs.c:476 utils/adt/array_userfuncs.c:504 #, c-format msgid "cannot concatenate incompatible arrays" msgstr "შეუთავსებელი მასივების შერწყმა შეუძლებელია" -#: utils/adt/array_userfuncs.c:296 +#: utils/adt/array_userfuncs.c:372 #, c-format msgid "Arrays with element types %s and %s are not compatible for concatenation." msgstr "%s და %s ტიპის ელემენტების მქონე მასივები შერწყმისთვის თავსებადები არ არიან." -#: utils/adt/array_userfuncs.c:335 +#: utils/adt/array_userfuncs.c:411 #, c-format msgid "Arrays of %d and %d dimensions are not compatible for concatenation." msgstr "" -#: utils/adt/array_userfuncs.c:372 +#: utils/adt/array_userfuncs.c:448 #, c-format msgid "Arrays with differing element dimensions are not compatible for concatenation." msgstr "" -#: utils/adt/array_userfuncs.c:401 utils/adt/array_userfuncs.c:429 +#: utils/adt/array_userfuncs.c:477 utils/adt/array_userfuncs.c:505 #, c-format msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "" -#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 utils/adt/arrayfuncs.c:5609 utils/adt/arrayfuncs.c:5615 +#: utils/adt/array_userfuncs.c:1051 utils/adt/array_userfuncs.c:1059 utils/adt/arrayfuncs.c:5628 utils/adt/arrayfuncs.c:5634 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "სხვადასხვა განსაზღვრების მქონე მასივების შეგროვება შეუძლებელია" -#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 +#: utils/adt/array_userfuncs.c:1348 utils/adt/array_userfuncs.c:1502 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "" -#: utils/adt/array_userfuncs.c:1301 +#: utils/adt/array_userfuncs.c:1377 #, c-format msgid "initial position must not be null" msgstr "საწყისი მდებარეობა ნულოვან ვერ იქნება" -#: utils/adt/array_userfuncs.c:1674 +#: utils/adt/array_userfuncs.c:1750 #, c-format msgid "sample size must be between 0 and %d" msgstr "სემპლის ზომა 0-სა და %d-ს შორის უნდა იყოს" @@ -23954,7 +24948,7 @@ msgstr "" msgid "Missing array dimension value." msgstr "აკლია მასივის განზომილების მნიშვნელობა." -#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2933 utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "" @@ -23984,7 +24978,7 @@ msgstr "მასივის მოულოდნელი ელემენ msgid "Specified array dimensions do not match array contents." msgstr "მითითებული მასივის ზომები მასივის შემცველობას არ ემთხვევა." -#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2597 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2600 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "მრავალგანზომილებიან მასივებს უნდა ჰქონდეთ ქვე-მასივები იგივე ზომებით." @@ -23994,12 +24988,12 @@ msgstr "მრავალგანზომილებიან მასი msgid "Incorrectly quoted array element." msgstr "არასწორად ციტირებული მასივის ელემენტი." -#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 utils/adt/rangetypes.c:2528 utils/adt/rangetypes.c:2536 utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 #, c-format msgid "Unexpected end of input." msgstr "შეყვანის მოულოდნელი დასასრული." -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3492 utils/adt/arrayfuncs.c:6099 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3511 utils/adt/arrayfuncs.c:6120 #, c-format msgid "invalid number of dimensions: %d" msgstr "განზომილებების არასწორი რაოდენობა: %d" @@ -24014,7 +25008,7 @@ msgstr "მასივის არასწორი ალმები" msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:353 utils/cache/lsyscache.c:3098 #, c-format msgid "no binary input function available for type %s" msgstr "" @@ -24024,7 +25018,7 @@ msgstr "" msgid "improper binary format in array element %d" msgstr "" -#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 utils/adt/rangetypes.c:358 utils/cache/lsyscache.c:3131 #, c-format msgid "no binary output function available for type %s" msgstr "" @@ -24034,12 +25028,12 @@ msgstr "" msgid "slices of fixed-length arrays not implemented" msgstr "" -#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 utils/adt/arrayfuncs.c:2908 utils/adt/arrayfuncs.c:6085 utils/adt/arrayfuncs.c:6111 utils/adt/arrayfuncs.c:6122 utils/adt/json.c:1419 utils/adt/json.c:1491 utils/adt/jsonb.c:1317 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4688 utils/adt/jsonfuncs.c:4841 utils/adt/jsonfuncs.c:4952 utils/adt/jsonfuncs.c:5000 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6106 utils/adt/arrayfuncs.c:6132 utils/adt/arrayfuncs.c:6143 utils/adt/json.c:1441 utils/adt/json.c:1509 utils/adt/jsonb.c:1317 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4734 utils/adt/jsonfuncs.c:4887 utils/adt/jsonfuncs.c:4998 utils/adt/jsonfuncs.c:5046 #, c-format msgid "wrong number of array subscripts" msgstr "მასივის ქვესკრიპტების არასწორი რაოდენობა" -#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2983 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "მასივის ინდექსი დიაპაზონს გარეთაა" @@ -24064,92 +25058,92 @@ msgstr "" msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "" -#: utils/adt/arrayfuncs.c:2898 utils/adt/arrayfuncs.c:3010 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "საწყისი მასივი ძალიან პატარაა" -#: utils/adt/arrayfuncs.c:3650 +#: utils/adt/arrayfuncs.c:3669 #, c-format msgid "null array element not allowed in this context" msgstr "ნულოვანი მასივის ელემენტი ამ კონტექსტში დაშვებული არაა" -#: utils/adt/arrayfuncs.c:3821 utils/adt/arrayfuncs.c:3992 utils/adt/arrayfuncs.c:4383 +#: utils/adt/arrayfuncs.c:3840 utils/adt/arrayfuncs.c:4011 utils/adt/arrayfuncs.c:4402 #, c-format msgid "cannot compare arrays of different element types" msgstr "განსხვავებული ელემენტის ტიპების მქონე მასივების შედარება შეუძლებელია" -#: utils/adt/arrayfuncs.c:4170 utils/adt/multirangetypes.c:2805 utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 +#: utils/adt/arrayfuncs.c:4189 utils/adt/multirangetypes.c:2805 utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1425 utils/adt/rangetypes.c:1489 utils/adt/rowtypes.c:1893 #, c-format msgid "could not identify a hash function for type %s" msgstr "ტიპისთვის \"%s\" ჰეშის ფუნქცია ვერ ვიპოვე" -#: utils/adt/arrayfuncs.c:4298 utils/adt/rowtypes.c:1996 +#: utils/adt/arrayfuncs.c:4317 utils/adt/rowtypes.c:2014 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "ტიპისთვის \"%s\" გაფართოებული ჰეშის ფუნქცია ვერ ვიპოვე" -#: utils/adt/arrayfuncs.c:5499 +#: utils/adt/arrayfuncs.c:5518 #, c-format msgid "data type %s is not an array type" msgstr "მონაცემის ტიპი %s მასივის ტიპი არაა" -#: utils/adt/arrayfuncs.c:5554 +#: utils/adt/arrayfuncs.c:5573 #, c-format msgid "cannot accumulate null arrays" msgstr "ნულოვანი მასივების დაგროვება შეუძლებელია" -#: utils/adt/arrayfuncs.c:5582 +#: utils/adt/arrayfuncs.c:5601 #, c-format msgid "cannot accumulate empty arrays" msgstr "ცარიელი მასივების დაგროვება შეუძლებელია" -#: utils/adt/arrayfuncs.c:5983 utils/adt/arrayfuncs.c:6023 +#: utils/adt/arrayfuncs.c:6004 utils/adt/arrayfuncs.c:6044 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "" -#: utils/adt/arrayfuncs.c:6086 utils/adt/arrayfuncs.c:6112 +#: utils/adt/arrayfuncs.c:6107 utils/adt/arrayfuncs.c:6133 #, c-format msgid "Dimension array must be one dimensional." msgstr "განზომილების მასივი ერთგანზომილებიანი უნდა იყოს." -#: utils/adt/arrayfuncs.c:6091 utils/adt/arrayfuncs.c:6117 +#: utils/adt/arrayfuncs.c:6112 utils/adt/arrayfuncs.c:6138 #, c-format msgid "dimension values cannot be null" msgstr "განზომილების მნიშვნელობები ნულოვანი ვერ იქნება" -#: utils/adt/arrayfuncs.c:6123 +#: utils/adt/arrayfuncs.c:6144 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "" -#: utils/adt/arrayfuncs.c:6404 +#: utils/adt/arrayfuncs.c:6425 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "" -#: utils/adt/arrayfuncs.c:6681 +#: utils/adt/arrayfuncs.c:6702 #, c-format msgid "thresholds must be one-dimensional array" msgstr "" -#: utils/adt/arrayfuncs.c:6686 +#: utils/adt/arrayfuncs.c:6707 #, c-format msgid "thresholds array must not contain NULLs" msgstr "" -#: utils/adt/arrayfuncs.c:6919 +#: utils/adt/arrayfuncs.c:6940 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "" -#: utils/adt/arraysubs.c:93 utils/adt/arraysubs.c:130 +#: utils/adt/arraysubs.c:94 utils/adt/arraysubs.c:131 #, c-format msgid "array subscript must have type integer" msgstr "მასივის ქვესკრიპტის ტიპი integer უნდა ჰქონდეს" -#: utils/adt/arraysubs.c:198 utils/adt/arraysubs.c:217 +#: utils/adt/arraysubs.c:199 utils/adt/arraysubs.c:218 #, c-format msgid "array subscript in assignment must not be null" msgstr "" @@ -24180,24 +25174,29 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:149 utils/adt/cash.c:277 utils/adt/datetime.c:4142 utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 utils/adt/geo_ops.c:4672 utils/adt/int.c:174 -#: utils/adt/int.c:186 utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 utils/adt/network.c:99 utils/adt/numeric.c:796 utils/adt/numeric.c:7206 utils/adt/numeric.c:7409 utils/adt/numeric.c:8356 utils/adt/numutils.c:356 utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 utils/adt/tid.c:94 -#: utils/adt/tid.c:103 utils/adt/timestamp.c:510 utils/adt/uuid.c:140 utils/adt/xid8funcs.c:360 +#: utils/adt/bool.c:150 utils/adt/cash.c:354 utils/adt/datetime.c:4258 utils/adt/float.c:207 utils/adt/float.c:294 utils/adt/float.c:308 utils/adt/float.c:413 utils/adt/float.c:496 utils/adt/float.c:510 utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 utils/adt/geo_ops.c:4672 utils/adt/int.c:174 +#: utils/adt/int.c:186 utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 utils/adt/network.c:99 utils/adt/numeric.c:805 utils/adt/numeric.c:7324 utils/adt/numeric.c:7527 utils/adt/numeric.c:8474 utils/adt/numutils.c:356 utils/adt/numutils.c:617 utils/adt/numutils.c:878 utils/adt/numutils.c:917 utils/adt/numutils.c:939 utils/adt/numutils.c:1003 utils/adt/numutils.c:1025 utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 utils/adt/tid.c:94 +#: utils/adt/tid.c:103 utils/adt/timestamp.c:512 utils/adt/uuid.c:176 utils/adt/xid8funcs.c:323 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "არასწორი შეყვანის სინტაქსი ტიპისთვის %s: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:350 utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "" +msgid "money out of range" +msgstr "ფული შუალედს გარეთაა" -#: 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:99 utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 utils/adt/numeric.c:3176 utils/adt/numeric.c:3199 -#: utils/adt/numeric.c:3284 utils/adt/numeric.c:3302 utils/adt/numeric.c:3398 utils/adt/numeric.c:8905 utils/adt/numeric.c:9218 utils/adt/numeric.c:9566 utils/adt/numeric.c:9682 utils/adt/numeric.c:11192 utils/adt/timestamp.c:3713 +#: utils/adt/cash.c:161 utils/adt/cash.c:725 utils/adt/float.c:106 utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 utils/adt/numeric.c:3294 utils/adt/numeric.c:3317 utils/adt/numeric.c:3402 utils/adt/numeric.c:3420 utils/adt/numeric.c:3516 utils/adt/numeric.c:9399 +#: utils/adt/numeric.c:9923 utils/adt/numeric.c:10039 utils/adt/numeric.c:11550 utils/adt/timestamp.c:3772 #, c-format msgid "division by zero" msgstr "ნულზე გაყოფა" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 utils/adt/numutils.c:611 utils/adt/numutils.c:872 utils/adt/numutils.c:923 utils/adt/numutils.c:962 utils/adt/numutils.c:1009 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -24208,140 +25207,140 @@ msgstr "\"char\" დიაპაზონს გარეთაა" msgid "could not compute %s hash: %s" msgstr "%s ჰეშის გამოთვლა შეუძლებელია: %s" -#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 utils/adt/varchar.c:48 +#: utils/adt/date.c:65 utils/adt/timestamp.c:118 utils/adt/varbit.c:105 utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "ტიპის არასწორი მოდიფიკატორი" -#: utils/adt/date.c:76 +#: utils/adt/date.c:77 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "TIME(%d)%s-ის სიზუსტე უარყოფით არ უნდა იყოს" -#: utils/adt/date.c:82 +#: utils/adt/date.c:83 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "" -#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 utils/adt/formatting.c:4548 +#: utils/adt/date.c:168 utils/adt/date.c:176 utils/adt/formatting.c:4171 utils/adt/formatting.c:4180 utils/adt/formatting.c:4285 utils/adt/formatting.c:4295 #, c-format msgid "date out of range: \"%s\"" msgstr "თარიღი დიაპაზონს გარეთაა: \"%s\"" -#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2489 +#: utils/adt/date.c:223 utils/adt/date.c:585 utils/adt/date.c:609 utils/adt/rangetypes.c:1648 utils/adt/rangetypes.c:1663 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "თარიღი დიაპაზონს გარეთაა" -#: utils/adt/date.c:268 utils/adt/timestamp.c:598 +#: utils/adt/date.c:266 utils/adt/date.c:276 utils/adt/timestamp.c:600 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "მონაცემის ველის მნიშვნელობა დიაპაზონს გარეთაა: %d-%02d-%02d" -#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 +#: utils/adt/date.c:283 utils/adt/date.c:292 utils/adt/timestamp.c:606 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "თარიღი დიაპაზონს გარეთაა: %d-%02d-%02d" -#: utils/adt/date.c:495 +#: utils/adt/date.c:560 #, c-format msgid "cannot subtract infinite dates" msgstr "უსასრულო თარიღების გამოკლება შეუძლებელია" -#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 utils/adt/date.c:2906 utils/adt/date.c:2916 +#: utils/adt/date.c:658 utils/adt/date.c:721 utils/adt/date.c:757 utils/adt/date.c:2971 utils/adt/date.c:2981 #, c-format msgid "date out of range for timestamp" msgstr "თარიღი დროის შტამპის დიაპაზონს მიღმაა" -#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 utils/adt/timestamp.c:6070 +#: utils/adt/date.c:1187 utils/adt/date.c:1270 utils/adt/date.c:1286 utils/adt/date.c:2280 utils/adt/date.c:3076 utils/adt/timestamp.c:4724 utils/adt/timestamp.c:4815 utils/adt/timestamp.c:4963 utils/adt/timestamp.c:5064 utils/adt/timestamp.c:5179 utils/adt/timestamp.c:5231 utils/adt/timestamp.c:5488 utils/adt/timestamp.c:5689 utils/adt/timestamp.c:5736 utils/adt/timestamp.c:5960 utils/adt/timestamp.c:6007 utils/adt/timestamp.c:6088 utils/adt/timestamp.c:6232 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "ერთეული \"%s\" ტიპისთვის %s მხარდაუჭერელია" -#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 +#: utils/adt/date.c:1295 utils/adt/date.c:2296 utils/adt/date.c:3096 utils/adt/timestamp.c:4829 utils/adt/timestamp.c:5081 utils/adt/timestamp.c:5245 utils/adt/timestamp.c:5448 utils/adt/timestamp.c:5745 utils/adt/timestamp.c:6016 utils/adt/timestamp.c:6057 utils/adt/timestamp.c:6293 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "ერთეული \"%s\" ტიპისთვის %s შეუძლებელია" -#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 -#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 utils/adt/timestamp.c:3266 -#: utils/adt/timestamp.c:3279 utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 -#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2511 utils/adt/xml.c:2518 utils/adt/xml.c:2538 utils/adt/xml.c:2545 +#: utils/adt/date.c:1379 utils/adt/date.c:1425 utils/adt/date.c:1984 utils/adt/date.c:2015 utils/adt/date.c:2044 utils/adt/date.c:2934 utils/adt/date.c:3166 utils/adt/datetime.c:432 utils/adt/datetime.c:1817 utils/adt/formatting.c:4016 utils/adt/formatting.c:4052 utils/adt/formatting.c:4139 utils/adt/formatting.c:4261 utils/adt/json.c:375 utils/adt/json.c:414 utils/adt/timestamp.c:250 utils/adt/timestamp.c:282 utils/adt/timestamp.c:707 utils/adt/timestamp.c:716 +#: utils/adt/timestamp.c:794 utils/adt/timestamp.c:827 utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3134 utils/adt/timestamp.c:3151 utils/adt/timestamp.c:3156 utils/adt/timestamp.c:3175 utils/adt/timestamp.c:3188 utils/adt/timestamp.c:3199 utils/adt/timestamp.c:3205 utils/adt/timestamp.c:3211 utils/adt/timestamp.c:3216 utils/adt/timestamp.c:3269 utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3299 utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3325 +#: utils/adt/timestamp.c:3338 utils/adt/timestamp.c:3352 utils/adt/timestamp.c:3360 utils/adt/timestamp.c:3366 utils/adt/timestamp.c:3371 utils/adt/timestamp.c:4439 utils/adt/timestamp.c:4591 utils/adt/timestamp.c:4667 utils/adt/timestamp.c:4733 utils/adt/timestamp.c:4823 utils/adt/timestamp.c:4902 utils/adt/timestamp.c:4972 utils/adt/timestamp.c:5075 utils/adt/timestamp.c:5553 utils/adt/timestamp.c:5827 utils/adt/timestamp.c:6361 utils/adt/timestamp.c:6371 +#: utils/adt/timestamp.c:6376 utils/adt/timestamp.c:6382 utils/adt/timestamp.c:6422 utils/adt/timestamp.c:6509 utils/adt/timestamp.c:6550 utils/adt/timestamp.c:6554 utils/adt/timestamp.c:6608 utils/adt/timestamp.c:6612 utils/adt/timestamp.c:6618 utils/adt/timestamp.c:6659 utils/adt/xml.c:2574 utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "დროის შტამპი დიაპაზონს გარეთაა" -#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 +#: utils/adt/date.c:1601 utils/adt/date.c:2417 utils/adt/formatting.c:4344 #, c-format msgid "time out of range" msgstr "დროის მნიშვნელობა დიაპაზონს გარეთაა" -#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 +#: utils/adt/date.c:1653 utils/adt/timestamp.c:615 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "დროის ველის მნიშვნელობა დიაპაზონს გარეთაა: %d:%02d:%02g" -#: utils/adt/date.c:2020 +#: utils/adt/date.c:2085 #, c-format msgid "cannot convert infinite interval to time" msgstr "უსასრულო ინტერვალის დროში გადაყვანა შეუძლებელია" -#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#: utils/adt/date.c:2126 utils/adt/date.c:2670 #, c-format msgid "cannot add infinite interval to time" msgstr "დროისთვის უსასრულო ინტერვალების დამატება შეუძლებელია" -#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#: utils/adt/date.c:2149 utils/adt/date.c:2697 #, c-format msgid "cannot subtract infinite interval from time" msgstr "დროისთვის უსასრულო ინტერვალების გამოკლება შეუძლებელია" -#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2580 utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3888 +#: utils/adt/date.c:2180 utils/adt/date.c:2732 utils/adt/float.c:1043 utils/adt/float.c:1119 utils/adt/int.c:635 utils/adt/int.c:682 utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2698 utils/adt/timestamp.c:3869 utils/adt/timestamp.c:3906 utils/adt/timestamp.c:3947 #, c-format msgid "invalid preceding or following size in window function" msgstr "" -#: utils/adt/date.c:2360 +#: utils/adt/date.c:2425 #, c-format msgid "time zone displacement out of range" msgstr "დროის სარტყლის წანაცვლება დიაპაზონს გარეთაა" -#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#: utils/adt/date.c:3197 utils/adt/timestamp.c:6404 utils/adt/timestamp.c:6641 #, c-format msgid "interval time zone \"%s\" must be finite" msgstr "ინტერვალის დროის სარტყელი \"%s\" სასრული უნდა იყოს" -#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 +#: utils/adt/date.c:3204 utils/adt/timestamp.c:6411 utils/adt/timestamp.c:6648 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "ინტერვალის დროის სარტყელი \"%s\" თვეებს ან დღეებს არ უნდა შეიცავდეს" -#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 +#: utils/adt/datetime.c:3324 utils/adt/datetime.c:4243 utils/adt/datetime.c:4249 utils/adt/timestamp.c:530 #, c-format msgid "time zone \"%s\" not recognized" msgstr "უცნობი დროის სარტყელი: %s" -#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 +#: utils/adt/datetime.c:4217 utils/adt/datetime.c:4224 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "დროის/თარიღის ველის მნიშვნელობა დიაპაზონს გარეთაა: \"%s\"" -#: utils/adt/datetime.c:4110 +#: utils/adt/datetime.c:4226 #, c-format -msgid "Perhaps you need a different \"datestyle\" setting." +msgid "Perhaps you need a different \"DateStyle\" setting." msgstr "" -#: utils/adt/datetime.c:4115 +#: utils/adt/datetime.c:4231 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "ინტერვალის ველის მნიშვნელობა დიაპაზონს გარეთაა: \"%s\"" -#: utils/adt/datetime.c:4121 +#: utils/adt/datetime.c:4237 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "" -#: utils/adt/datetime.c:4135 +#: utils/adt/datetime.c:4251 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "" @@ -24351,17 +25350,22 @@ msgstr "" msgid "invalid Datum pointer" msgstr "არასწორი მაჩვენებელი: Datum" -#: utils/adt/dbsize.c:760 utils/adt/dbsize.c:836 +#: utils/adt/dbsize.c:293 utils/adt/genfile.c:656 +#, c-format +msgid "tablespace with OID %u does not exist" +msgstr "ცხრილების სივრცე OID-ით %u არ არსებობს" + +#: utils/adt/dbsize.c:782 utils/adt/dbsize.c:858 #, c-format msgid "invalid size: \"%s\"" msgstr "არასწორი ზომა: %s" -#: utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:859 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "ერთეულის არასწორი ზომა: \"%s\"." -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:860 #, c-format msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." msgstr "პარამეტრის სწორი ერთეულებია \"ბ\", \"კბ\", \"მბ\", \"გბ\", \"ტბ\" და \"პბ\"." @@ -24386,32 +25390,32 @@ msgstr "დაშიფვრის შედეგი ძალიან დი msgid "result of decoding conversion is too large" msgstr "გაშიფვრის შედეგი ძალიან დიდია" -#: utils/adt/encode.c:217 utils/adt/encode.c:227 +#: utils/adt/encode.c:238 utils/adt/encode.c:248 #, c-format msgid "invalid hexadecimal digit: \"%.*s\"" msgstr "არასწორი თექვსმეტობითი რიცხვი: \"%.*s\"" -#: utils/adt/encode.c:223 +#: utils/adt/encode.c:244 #, c-format msgid "invalid hexadecimal data: odd number of digits" msgstr "არასწორი თექვსმეტობითი მონაცემები: ციფრების კენტი რაოდენობა" -#: utils/adt/encode.c:344 +#: utils/adt/encode.c:365 #, c-format msgid "unexpected \"=\" while decoding base64 sequence" msgstr "base64 მიმდევრობის გაშიფვრისას აღმოჩენილია მოულოდნელი \"=\"" -#: utils/adt/encode.c:356 +#: utils/adt/encode.c:377 #, c-format msgid "invalid symbol \"%.*s\" found while decoding base64 sequence" msgstr "base64 მიმდევრობის გაშიფვრისას აღმოჩენილია არასწორი სიმბოლო \"%.*s\"" -#: utils/adt/encode.c:377 +#: utils/adt/encode.c:398 #, c-format msgid "invalid base64 end sequence" msgstr "base64-ის არასწორი დასრულების მიმდევრობა" -#: utils/adt/encode.c:378 +#: utils/adt/encode.c:399 #, c-format msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "" @@ -24446,335 +25450,355 @@ msgstr "ჩამონათვალის მიმდინარე ტი msgid "enum %s contains no values" msgstr "ჩამონათვალი %s მნიშვნელობებს არ შეიცავს" -#: utils/adt/float.c:83 +#: utils/adt/float.c:90 #, c-format msgid "value out of range: overflow" msgstr "მნიშვნელობა დიაპაზონს გარეთაა: გადავსება" -#: utils/adt/float.c:91 +#: utils/adt/float.c:98 #, c-format msgid "value out of range: underflow" msgstr "მნიშვნელობა დიაპაზონს გარეთაა: არშევსება" -#: utils/adt/float.c:280 +#: utils/adt/float.c:287 #, c-format msgid "\"%s\" is out of range for type real" msgstr "%s დიაპაზონს გარეთაა ტიპისთვის: real" -#: utils/adt/float.c:482 +#: utils/adt/float.c:489 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "%s დიაპაზონს გარეთაა ტიპისთვის: double precision" -#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 utils/adt/int8.c:1277 utils/adt/numeric.c:4578 utils/adt/numeric.c:4583 +#: utils/adt/float.c:1254 utils/adt/float.c:1328 utils/adt/int.c:355 utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 utils/adt/int8.c:1277 utils/adt/numeric.c:4696 utils/adt/numeric.c:4701 utils/adt/varlena.c:4093 #, c-format msgid "smallint out of range" msgstr "smallint დიაპაზონს გარეთაა" -#: utils/adt/float.c:1447 utils/adt/numeric.c:3694 utils/adt/numeric.c:10097 +#: utils/adt/float.c:1454 utils/adt/numeric.c:3812 utils/adt/numeric.c:10454 #, c-format msgid "cannot take square root of a negative number" msgstr "უარყოფითი რიცხვიდან ფესვის ამოღება შეუძლებელია" -#: utils/adt/float.c:1515 utils/adt/numeric.c:3982 utils/adt/numeric.c:4094 +#: utils/adt/float.c:1522 utils/adt/numeric.c:4100 utils/adt/numeric.c:4212 #, c-format msgid "zero raised to a negative power is undefined" msgstr "ნული უარყოფით ხარისხში განუსაზღვრელია" -#: utils/adt/float.c:1519 utils/adt/numeric.c:3986 utils/adt/numeric.c:10988 +#: utils/adt/float.c:1526 utils/adt/numeric.c:4104 utils/adt/numeric.c:11345 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "" -#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3894 utils/adt/numeric.c:10768 +#: utils/adt/float.c:1702 utils/adt/float.c:1735 utils/adt/numeric.c:4012 utils/adt/numeric.c:11125 #, c-format msgid "cannot take logarithm of zero" msgstr "ნულის ლოგარითმის აღება შეუძლებელია" -#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3832 utils/adt/numeric.c:3889 utils/adt/numeric.c:10772 +#: utils/adt/float.c:1706 utils/adt/float.c:1739 utils/adt/numeric.c:3950 utils/adt/numeric.c:4007 utils/adt/numeric.c:11129 #, c-format msgid "cannot take logarithm of a negative number" msgstr "უარყოფითი რიცხვის ლოგარითმის აღება შეუძლებელია" -#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 utils/adt/float.c:2696 utils/adt/float.c:2720 +#: utils/adt/float.c:1772 utils/adt/float.c:1803 utils/adt/float.c:1898 utils/adt/float.c:1925 utils/adt/float.c:1953 utils/adt/float.c:1980 utils/adt/float.c:2127 utils/adt/float.c:2164 utils/adt/float.c:2334 utils/adt/float.c:2390 utils/adt/float.c:2455 utils/adt/float.c:2512 utils/adt/float.c:2703 utils/adt/float.c:2727 #, c-format msgid "input is out of range" msgstr "შეყვანილი მნიშვნელობა დიაპაზონის გარეთაა" -#: utils/adt/float.c:4000 utils/adt/numeric.c:1842 +#: utils/adt/float.c:4085 utils/adt/numeric.c:1979 #, c-format msgid "count must be greater than zero" msgstr "რაოდენობა ნულზე მეტი უნდა იყოს" -#: utils/adt/float.c:4005 utils/adt/numeric.c:1853 +#: utils/adt/float.c:4090 utils/adt/numeric.c:1990 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "" -#: utils/adt/float.c:4011 utils/adt/numeric.c:1858 +#: utils/adt/float.c:4096 utils/adt/numeric.c:1995 #, c-format msgid "lower and upper bounds must be finite" msgstr "ქვედა და ზედა ზღვრები სასრული უნდა ყოს" -#: utils/adt/float.c:4077 utils/adt/numeric.c:1872 +#: utils/adt/float.c:4162 utils/adt/numeric.c:2009 #, c-format msgid "lower bound cannot equal upper bound" msgstr "ქვედა ზღვარი ზედა ზღვარის ტოლი ვერ იქნება" -#: utils/adt/formatting.c:530 +#: utils/adt/formatting.c:556 #, c-format msgid "invalid format specification for an interval value" msgstr "ინტერვალის მნიშვნელობის ფორმატის არასწორი სპეციფიკაცია" -#: utils/adt/formatting.c:531 +#: utils/adt/formatting.c:557 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "" -#: utils/adt/formatting.c:1161 +#: utils/adt/formatting.c:1197 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\" ბოლო გამოყენებული შაბლონი უნდა იყოს" -#: utils/adt/formatting.c:1169 +#: utils/adt/formatting.c:1205 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\" \"PR\"-ზე წინ უნდა იყოს" -#: utils/adt/formatting.c:1185 +#: utils/adt/formatting.c:1221 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\" \"PR\"-ზე წინ უნდა იყოს" -#: utils/adt/formatting.c:1212 +#: utils/adt/formatting.c:1248 #, c-format msgid "multiple decimal points" msgstr "ბევრი ათობითი წერტილი" -#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 +#: utils/adt/formatting.c:1252 utils/adt/formatting.c:1339 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "\"V\"-ს და ათობით წერტილს ერთად ვერ გამოიყენებთ" -#: utils/adt/formatting.c:1228 +#: utils/adt/formatting.c:1264 #, c-format msgid "cannot use \"S\" twice" msgstr "\"S\"-ს ორჯერ ვერ გამოიყენებთ" -#: utils/adt/formatting.c:1232 +#: utils/adt/formatting.c:1268 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "\"S\"-ის და \"PL\"/\"MI\"/\"SG\"/\"PR\"-ის ერთად გამოყენება შეუძლებელია" -#: utils/adt/formatting.c:1252 +#: utils/adt/formatting.c:1288 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "\"S\"-ის და \"MI\"-ის ერთად გამოყენება შეუძლებელია" -#: utils/adt/formatting.c:1262 +#: utils/adt/formatting.c:1298 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "\"S\"-ის და \"PL\"-ის ერთად გამოყენება შეუძლებელია" -#: utils/adt/formatting.c:1272 +#: utils/adt/formatting.c:1308 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "\"S\"-ის და \"SG\"-ის ერთად გამოყენება შეუძლებელია" -#: utils/adt/formatting.c:1281 +#: utils/adt/formatting.c:1317 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "\"PR\"-ის და \"S\"/\"PL\"/\"MI\"/\"SG\"-ის ერთად გამოყენება შეუძლებელია" -#: utils/adt/formatting.c:1307 +#: utils/adt/formatting.c:1326 +#, c-format +msgid "cannot use \"RN\" twice" +msgstr "\"RN\"-ს ორჯერ ვერ გამოიყენებთ" + +#: utils/adt/formatting.c:1347 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "\"EEEE\"-ს ორჯერ ვერ გამოყენებთ" -#: utils/adt/formatting.c:1313 +#: utils/adt/formatting.c:1353 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\" სხვა ფორმატებთან შეუთავსებელია" -#: utils/adt/formatting.c:1314 +#: utils/adt/formatting.c:1354 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "" -#: utils/adt/formatting.c:1398 +#: utils/adt/formatting.c:1363 +#, c-format +msgid "\"RN\" is incompatible with other formats" +msgstr "\"RN\" სხვა ფორმატებთან შეუთავსებელია" + +#: utils/adt/formatting.c:1364 +#, c-format +msgid "\"RN\" may only be used together with \"FM\"." +msgstr "" + +#: utils/adt/formatting.c:1445 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "თარიღი/დროის არასწორი გამყოფი: \"%s\"" -#: utils/adt/formatting.c:1525 +#: utils/adt/formatting.c:1572 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\" რიცხვი არაა" -#: utils/adt/formatting.c:1603 -#, c-format -msgid "case conversion failed: %s" -msgstr "სიმბოლოების ზომის გარდაქმნის შეცდომა: %s" - -#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 utils/adt/formatting.c:1989 +#: utils/adt/formatting.c:1653 utils/adt/formatting.c:1717 utils/adt/formatting.c:1781 utils/adt/formatting.c:1845 #, c-format msgid "could not determine which collation to use for %s function" msgstr "" -#: utils/adt/formatting.c:2410 +#: utils/adt/formatting.c:1853 +#, c-format +msgid "Unicode case folding can only be performed if server encoding is UTF8" +msgstr "უნიკოდის რეგისტრის მოკეცვა, მხოლოდ, მაშინაა შესაძლებელი, როცა სერვერის კოდირებაა UTF8" + +#: utils/adt/formatting.c:2150 #, c-format msgid "invalid combination of date conventions" msgstr "თარიღის გარდაქმნის არასწორი კომბინაცია" -#: utils/adt/formatting.c:2411 +#: utils/adt/formatting.c:2151 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "" -#: utils/adt/formatting.c:2433 +#: utils/adt/formatting.c:2173 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "" -#: utils/adt/formatting.c:2435 +#: utils/adt/formatting.c:2175 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "ეს მნიშვნელობა იგივე ველის ტიპისთვის წინა პარამეტრს ეწინააღმდეგება." -#: utils/adt/formatting.c:2502 +#: utils/adt/formatting.c:2242 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "" -#: utils/adt/formatting.c:2504 +#: utils/adt/formatting.c:2244 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "ველს %d სიმბოლო სჭირდება, მაგრამ მხოლოდ %d-ღაა დარჩენილი." -#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 +#: utils/adt/formatting.c:2246 utils/adt/formatting.c:2260 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "" -#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 +#: utils/adt/formatting.c:2256 utils/adt/formatting.c:2269 utils/adt/formatting.c:2490 utils/adt/formatting.c:3390 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "მნიშვნელობა \"%s\" \"%s\"-თვის არასწორია" -#: utils/adt/formatting.c:2518 +#: utils/adt/formatting.c:2258 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "" -#: utils/adt/formatting.c:2531 +#: utils/adt/formatting.c:2271 #, c-format msgid "Value must be an integer." msgstr "მნიშვნელობა მთელი რიცხვი უნდა იყოს." -#: utils/adt/formatting.c:2536 +#: utils/adt/formatting.c:2276 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "საწყის სტრიქონში \"%s\"-ის მნიშვნელობა დიაპაზონს გარეთაა" -#: utils/adt/formatting.c:2538 +#: utils/adt/formatting.c:2278 #, c-format msgid "Value must be in the range %d to %d." msgstr "მნიშვნელობა უნდა იყოს დიაპაზონიდან %d-%d." -#: utils/adt/formatting.c:2752 +#: utils/adt/formatting.c:2492 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "" -#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 +#: utils/adt/formatting.c:2708 utils/adt/formatting.c:2728 utils/adt/formatting.c:2748 utils/adt/formatting.c:2768 utils/adt/formatting.c:2787 utils/adt/formatting.c:2806 utils/adt/formatting.c:2830 utils/adt/formatting.c:2848 utils/adt/formatting.c:2866 utils/adt/formatting.c:2884 utils/adt/formatting.c:2901 utils/adt/formatting.c:2918 #, c-format msgid "localized string format value too long" msgstr "ლოკალიზებული სტრიქონის ფორმატის მნიშვნელობა მეტისმეტად გრძელია" -#: utils/adt/formatting.c:3458 +#: utils/adt/formatting.c:3198 #, c-format msgid "unmatched format separator \"%c\"" msgstr "" -#: utils/adt/formatting.c:3519 +#: utils/adt/formatting.c:3259 #, c-format msgid "unmatched format character \"%s\"" msgstr "" -#: utils/adt/formatting.c:3652 +#: utils/adt/formatting.c:3392 #, c-format msgid "Time zone abbreviation is not recognized." msgstr "დროის სარტყელის აბრევიატურა უცნობია." -#: utils/adt/formatting.c:3853 +#: utils/adt/formatting.c:3593 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "არასწორი შეყვანილი სტრიქონი \"Y,YYY\"-სთვის" -#: utils/adt/formatting.c:3942 +#: utils/adt/formatting.c:3600 +#, c-format +msgid "value for \"Y,YYY\" in source string is out of range" +msgstr "წყარო სტრიქონში \"Y,YYY\"-ის მნიშვნელობები დიაპაზონს გარეთაა" + +#: utils/adt/formatting.c:3689 #, c-format msgid "input string is too short for datetime format" msgstr "შეყვანილი სტრიქონი datetime ფორმატისთვის მეტისმეტად მოკლეა" -#: utils/adt/formatting.c:3950 +#: utils/adt/formatting.c:3697 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "" -#: utils/adt/formatting.c:4494 +#: utils/adt/formatting.c:4241 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "" -#: utils/adt/formatting.c:4500 +#: utils/adt/formatting.c:4247 #, c-format msgid "timestamptz out of range" msgstr "timestamptz დიაპაზონს გარეთაა" -#: utils/adt/formatting.c:4528 +#: utils/adt/formatting.c:4275 #, c-format msgid "datetime format is zoned but not timed" msgstr "" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4324 #, c-format msgid "missing time zone in input string for type timetz" msgstr "" -#: utils/adt/formatting.c:4583 +#: utils/adt/formatting.c:4330 #, c-format msgid "timetz out of range" msgstr "timetz დიაპაზონს გარეთაა" -#: utils/adt/formatting.c:4609 +#: utils/adt/formatting.c:4356 #, c-format msgid "datetime format is not dated and not timed" msgstr "" -#: utils/adt/formatting.c:4786 +#: utils/adt/formatting.c:4533 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "საათი \"%d\" არასწორია 12-საათიანი ათვლისთვის" -#: utils/adt/formatting.c:4788 +#: utils/adt/formatting.c:4535 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "გამოიყენეთ 24-საათიანი ათვლა ან მიუთითეთ საათი დიაპაზონიდან 1-12." -#: utils/adt/formatting.c:4900 +#: utils/adt/formatting.c:4712 #, c-format msgid "cannot calculate day of year without year information" msgstr "წლის დღის გამოთვლა წლის მითითების გარეშე შეუძლებელია" -#: utils/adt/formatting.c:5852 +#: utils/adt/formatting.c:5833 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" შეყვანისთვის მხარდაჭერილი არაა" -#: utils/adt/formatting.c:5864 +#: utils/adt/formatting.c:6110 #, c-format -msgid "\"RN\" not supported for input" -msgstr "\"RN\" შეყვანისთვის მხარდაჭერილი არაა" +msgid "invalid Roman numeral" +msgstr "არასწორი რომაული რიცხვი" #: utils/adt/genfile.c:84 #, c-format @@ -24786,7 +25810,7 @@ msgstr "აბსოლუტური ბილიკი დაშვებუ msgid "path must be in or below the data directory" msgstr "ბილიკი მონაცემების საქაღალდეში ან უფრო ქვემოთ უნდა იყოს" -#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:190 utils/adt/oracle_compat.c:288 utils/adt/oracle_compat.c:839 utils/adt/oracle_compat.c:1142 +#: utils/adt/genfile.c:114 utils/adt/oracle_compat.c:206 utils/adt/oracle_compat.c:304 utils/adt/oracle_compat.c:855 utils/adt/oracle_compat.c:1158 #, c-format msgid "requested length too large" msgstr "მოთხოვნილი სიგრძე ძალიან დიდია" @@ -24801,11 +25825,6 @@ msgstr "ფაილში (%s) გადახვევის პრობლ msgid "file length too large" msgstr "ფალის სიგრძე მეტისმეად დიდია" -#: utils/adt/genfile.c:656 -#, c-format -msgid "tablespace with OID %u does not exist" -msgstr "ცხრილების სივრცე OID-ით %u არ არსებობს" - #: utils/adt/geo_ops.c:998 utils/adt/geo_ops.c:1052 #, c-format msgid "invalid line specification: A and B cannot both be zero" @@ -24856,13 +25875,13 @@ msgstr "უნდა მოითხოვოთ სულ ცოტა 2 წე msgid "invalid int2vector data" msgstr "int2vector -ის არასწორი მონაცემები" -#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1750 utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1767 utils/adt/timestamp.c:6708 utils/adt/timestamp.c:6794 #, c-format msgid "step size cannot equal zero" msgstr "ბიჯის ზომა ნულის ტოლი ვერ იქნება" #: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 utils/adt/int8.c:1055 -#: utils/adt/int8.c:1069 utils/adt/int8.c:1100 utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4527 utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 utils/adt/varbit.c:1676 +#: utils/adt/int8.c:1069 utils/adt/int8.c:1100 utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4645 utils/adt/rangetypes.c:1599 utils/adt/rangetypes.c:1612 utils/adt/varbit.c:1676 utils/adt/varlena.c:4143 #, c-format msgid "bigint out of range" msgstr "bigint დიაპაზონს გარეთაა" @@ -24872,48 +25891,48 @@ msgstr "bigint დიაპაზონს გარეთაა" msgid "OID out of range" msgstr "OID დიაპაზონს გარეთაა" -#: utils/adt/json.c:202 utils/adt/jsonb.c:664 +#: utils/adt/json.c:204 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "" -#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 +#: utils/adt/json.c:1043 utils/adt/json.c:1053 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "არგუმენტისთვის %d მონაცემების ტიპის განსაზღვრა შეუძლებელია" -#: utils/adt/json.c:1067 utils/adt/json.c:1259 utils/adt/json.c:1435 utils/adt/json.c:1513 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 +#: utils/adt/json.c:1076 utils/adt/json.c:1275 utils/adt/json.c:1457 utils/adt/json.c:1531 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "ობიექტის გასაღებისთვის ნულოვანი მნიშვნელობა დაშვებული არაა" -#: utils/adt/json.c:1110 utils/adt/json.c:1274 +#: utils/adt/json.c:1126 utils/adt/json.c:1297 #, c-format msgid "duplicate JSON object key value: %s" msgstr "დუბლირებული JSON ობიექტის გასაღების მნიშვნელობა: %s" -#: utils/adt/json.c:1219 utils/adt/jsonb.c:1134 +#: utils/adt/json.c:1235 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "არგუმენტების სიას ლუწი რაოდენობის ელემენტები უნდა ჰქონდეს" #. translator: %s is a SQL function name -#: utils/adt/json.c:1221 utils/adt/jsonb.c:1136 +#: utils/adt/json.c:1237 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "%s-ის არგუმენტები პარამეტრებისა და მნიშვნელობების მონაცვლეობით სიას უნდა წარმოადგენდეს." -#: utils/adt/json.c:1413 utils/adt/jsonb.c:1311 +#: utils/adt/json.c:1435 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "მასივს ორი სვეტი უნდა ჰქონდეს" -#: utils/adt/json.c:1502 utils/adt/jsonb.c:1412 +#: utils/adt/json.c:1520 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "მასივის ზომები არ ემთხვევა" -#: utils/adt/json.c:1688 utils/adt/jsonb_util.c:1956 +#: utils/adt/json.c:1850 utils/adt/jsonb_util.c:1963 #, c-format msgid "duplicate JSON object key value" msgstr "დუბლირებული JSON ობიექტის გასაღების მნიშვნელობა" @@ -24978,22 +25997,22 @@ msgstr "jsonb ობიექტის %s-ის ტიპში გადაყ msgid "cannot cast jsonb array or object to type %s" msgstr "jsonb ობიექტის ან მასივის %s-ის ტიპში გადაყვანა შეუძლებელია" -#: utils/adt/jsonb_util.c:756 +#: utils/adt/jsonb_util.c:763 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "" -#: utils/adt/jsonb_util.c:797 +#: utils/adt/jsonb_util.c:804 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "" -#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 +#: utils/adt/jsonb_util.c:1678 utils/adt/jsonb_util.c:1698 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "jsonb მასივის ელემენტების სრული ზომება მაქსიმუმ დასაშვებზე (%d ბაიტი) დიდია" -#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 utils/adt/jsonb_util.c:1807 +#: utils/adt/jsonb_util.c:1759 utils/adt/jsonb_util.c:1794 utils/adt/jsonb_util.c:1814 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "" @@ -25028,204 +26047,204 @@ msgstr "jsonb ქვესკრიპტს ტექსტური ტიპ msgid "jsonb subscript in assignment must not be null" msgstr "" -#: utils/adt/jsonfuncs.c:582 utils/adt/jsonfuncs.c:829 utils/adt/jsonfuncs.c:2438 utils/adt/jsonfuncs.c:3013 utils/adt/jsonfuncs.c:3926 utils/adt/jsonfuncs.c:4273 +#: utils/adt/jsonfuncs.c:585 utils/adt/jsonfuncs.c:832 utils/adt/jsonfuncs.c:2441 utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3950 utils/adt/jsonfuncs.c:4297 #, c-format msgid "cannot call %s on a scalar" msgstr "%s-ის გამოძახება სკალარზე შეუძლებელია" -#: utils/adt/jsonfuncs.c:587 utils/adt/jsonfuncs.c:814 utils/adt/jsonfuncs.c:3015 utils/adt/jsonfuncs.c:3913 +#: utils/adt/jsonfuncs.c:590 utils/adt/jsonfuncs.c:817 utils/adt/jsonfuncs.c:3019 utils/adt/jsonfuncs.c:3937 #, c-format msgid "cannot call %s on an array" msgstr "%s-ის გამოძახება მასივზე შეუძლებელია" -#: utils/adt/jsonfuncs.c:723 +#: utils/adt/jsonfuncs.c:726 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "JSON მონაცემი, ხაზი %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1882 utils/adt/jsonfuncs.c:1919 +#: utils/adt/jsonfuncs.c:1885 utils/adt/jsonfuncs.c:1922 #, c-format msgid "cannot get array length of a scalar" msgstr "სკალარის მასივის სიგრძის მიღება შეუძლებელია" -#: utils/adt/jsonfuncs.c:1886 utils/adt/jsonfuncs.c:1905 +#: utils/adt/jsonfuncs.c:1889 utils/adt/jsonfuncs.c:1908 #, c-format msgid "cannot get array length of a non-array" msgstr "არა-მასივის მასივის სიგრძის მიღება შეუძლებელია" -#: utils/adt/jsonfuncs.c:1985 +#: utils/adt/jsonfuncs.c:1988 #, c-format msgid "cannot call %s on a non-object" msgstr "არა-ობიექტზე %s-ის გამოძახება შეუძლებელია" -#: utils/adt/jsonfuncs.c:2173 +#: utils/adt/jsonfuncs.c:2176 #, c-format msgid "cannot deconstruct an array as an object" msgstr "მასივის დეკონსტრუქცია ობიექტად შეუძლებელია" -#: utils/adt/jsonfuncs.c:2187 +#: utils/adt/jsonfuncs.c:2190 #, c-format msgid "cannot deconstruct a scalar" msgstr "სკალარის დეკონსტრუქცია შეუძლებელია" -#: utils/adt/jsonfuncs.c:2232 +#: utils/adt/jsonfuncs.c:2235 #, c-format msgid "cannot extract elements from a scalar" msgstr "სკალარიდან ელემენტების გამოღება შეუძლებელია" -#: utils/adt/jsonfuncs.c:2236 +#: utils/adt/jsonfuncs.c:2239 #, c-format msgid "cannot extract elements from an object" msgstr "ობიექტიდან ელემენტების გამოღება შეუძლებელია" -#: utils/adt/jsonfuncs.c:2423 utils/adt/jsonfuncs.c:4151 +#: utils/adt/jsonfuncs.c:2426 utils/adt/jsonfuncs.c:4175 #, c-format msgid "cannot call %s on a non-array" msgstr "არა-მასივზე %s-ს ვერ გამოიძახებთ" -#: utils/adt/jsonfuncs.c:2514 utils/adt/jsonfuncs.c:2519 utils/adt/jsonfuncs.c:2537 utils/adt/jsonfuncs.c:2543 +#: utils/adt/jsonfuncs.c:2517 utils/adt/jsonfuncs.c:2522 utils/adt/jsonfuncs.c:2540 utils/adt/jsonfuncs.c:2546 #, c-format msgid "expected JSON array" msgstr "მოველოდი JSON მასივს" -#: utils/adt/jsonfuncs.c:2515 +#: utils/adt/jsonfuncs.c:2518 #, c-format msgid "See the value of key \"%s\"." msgstr "იხილეთ მასივის ელემენტი \"%s\"." -#: utils/adt/jsonfuncs.c:2538 +#: utils/adt/jsonfuncs.c:2541 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "იხილეთ მასივის ელემენტი %s გასაღებიდან \"%s\"." -#: utils/adt/jsonfuncs.c:2544 +#: utils/adt/jsonfuncs.c:2547 #, c-format msgid "See the array element %s." msgstr "იხილეთ მასივის ელემენტი %s." -#: utils/adt/jsonfuncs.c:2596 +#: utils/adt/jsonfuncs.c:2599 #, c-format msgid "malformed JSON array" msgstr "დამახინჯებული JSON მასივი" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3625 +#: utils/adt/jsonfuncs.c:3649 #, c-format msgid "first argument of %s must be a row type" msgstr "%s-ის პირველი არგუმენტი მწკრივის ტიპის უნდა იყოს" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3649 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "could not determine row type for result of %s" msgstr "%s-ის შედეგის მწკრივის ტიპის დადგენა შეუძლებელია" -#: utils/adt/jsonfuncs.c:3651 +#: utils/adt/jsonfuncs.c:3675 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "" -#: utils/adt/jsonfuncs.c:4037 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4061 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "საჭიროა მატერიალიზებული რეჟიმი, მაგრამ ამ კონტექსტში ეს დაუშვებელია" -#: utils/adt/jsonfuncs.c:4168 utils/adt/jsonfuncs.c:4252 +#: utils/adt/jsonfuncs.c:4192 utils/adt/jsonfuncs.c:4276 #, c-format msgid "argument of %s must be an array of objects" msgstr "%s-ის არგუმენტი ობიექტების მასივს უნდა წარმოადგენდეს" -#: utils/adt/jsonfuncs.c:4201 +#: utils/adt/jsonfuncs.c:4225 #, c-format msgid "cannot call %s on an object" msgstr "%s-ს ობიექტზე ვერ გამოიძახებთ" -#: utils/adt/jsonfuncs.c:4634 utils/adt/jsonfuncs.c:4693 utils/adt/jsonfuncs.c:4773 +#: utils/adt/jsonfuncs.c:4680 utils/adt/jsonfuncs.c:4739 utils/adt/jsonfuncs.c:4819 #, c-format msgid "cannot delete from scalar" msgstr "სკალარიდან წაშლა შეუძლებელია" -#: utils/adt/jsonfuncs.c:4778 +#: utils/adt/jsonfuncs.c:4824 #, c-format msgid "cannot delete from object using integer index" msgstr "ობიექტიდან წაშლა მთელი რიცხვის ინდექსის გამოყენებით შეუძლებელია" -#: utils/adt/jsonfuncs.c:4846 utils/adt/jsonfuncs.c:5005 +#: utils/adt/jsonfuncs.c:4892 utils/adt/jsonfuncs.c:5051 #, c-format msgid "cannot set path in scalar" msgstr "სკალარში ბილიკის დაყენება შეუძლებელია" -#: utils/adt/jsonfuncs.c:4887 utils/adt/jsonfuncs.c:4929 +#: utils/adt/jsonfuncs.c:4933 utils/adt/jsonfuncs.c:4975 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "" -#: utils/adt/jsonfuncs.c:4900 +#: utils/adt/jsonfuncs.c:4946 #, c-format msgid "JSON value must not be null" msgstr "JSON მნიშვნელობა ნულოვანი ვერ იქნება" -#: utils/adt/jsonfuncs.c:4901 +#: utils/adt/jsonfuncs.c:4947 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "" -#: utils/adt/jsonfuncs.c:4902 +#: utils/adt/jsonfuncs.c:4948 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "" -#: utils/adt/jsonfuncs.c:4957 +#: utils/adt/jsonfuncs.c:5003 #, c-format msgid "cannot delete path in scalar" msgstr "სკალარში ბილიკის წაშლა შეუძლებელია" -#: utils/adt/jsonfuncs.c:5171 +#: utils/adt/jsonfuncs.c:5217 #, c-format msgid "path element at position %d is null" msgstr "ბილიკის ელემენტი პოზიციაზე %d ნულოვანია" -#: utils/adt/jsonfuncs.c:5190 utils/adt/jsonfuncs.c:5221 utils/adt/jsonfuncs.c:5294 +#: utils/adt/jsonfuncs.c:5236 utils/adt/jsonfuncs.c:5267 utils/adt/jsonfuncs.c:5340 #, c-format msgid "cannot replace existing key" msgstr "არსებული გასაღების ჩანაცვლება შეუძლებელია" -#: utils/adt/jsonfuncs.c:5191 utils/adt/jsonfuncs.c:5222 +#: utils/adt/jsonfuncs.c:5237 utils/adt/jsonfuncs.c:5268 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "" -#: utils/adt/jsonfuncs.c:5295 +#: utils/adt/jsonfuncs.c:5341 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "" -#: utils/adt/jsonfuncs.c:5399 +#: utils/adt/jsonfuncs.c:5445 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "" -#: utils/adt/jsonfuncs.c:5416 +#: utils/adt/jsonfuncs.c:5462 #, c-format msgid "path element at position %d is out of range: %d" msgstr "" -#: utils/adt/jsonfuncs.c:5568 +#: utils/adt/jsonfuncs.c:5614 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "არასწორი ალმის ტიპი. დაშვებულია მხოლოდ მასივები და სკალარები" -#: utils/adt/jsonfuncs.c:5575 +#: utils/adt/jsonfuncs.c:5621 #, c-format msgid "flag array element is not a string" msgstr "ალმის მასივის ელემენტი სტრიქონი არაა" -#: utils/adt/jsonfuncs.c:5576 utils/adt/jsonfuncs.c:5598 +#: utils/adt/jsonfuncs.c:5622 utils/adt/jsonfuncs.c:5644 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "" -#: utils/adt/jsonfuncs.c:5596 +#: utils/adt/jsonfuncs.c:5642 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "არასწორი ალამი ალმების მასივში: \"%s\"" @@ -25240,79 +26259,64 @@ msgstr "" msgid "LAST is allowed only in array subscripts" msgstr "" -#: utils/adt/jsonpath_exec.c:490 +#: utils/adt/jsonpath_exec.c:489 #, c-format msgid "single boolean result is expected" msgstr "მოველოდი ერთ ლოგიკურ შედეგს" -#: utils/adt/jsonpath_exec.c:850 +#: utils/adt/jsonpath_exec.c:849 #, c-format msgid "jsonpath wildcard array accessor can only be applied to an array" msgstr "" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:872 #, c-format msgid "jsonpath wildcard member accessor can only be applied to an object" msgstr "" -#: utils/adt/jsonpath_exec.c:922 +#: utils/adt/jsonpath_exec.c:921 #, c-format msgid "jsonpath array subscript is out of bounds" msgstr "" -#: utils/adt/jsonpath_exec.c:979 +#: utils/adt/jsonpath_exec.c:978 #, c-format msgid "jsonpath array accessor can only be applied to an array" msgstr "" -#: utils/adt/jsonpath_exec.c:1043 +#: utils/adt/jsonpath_exec.c:1042 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "JSON ობიექტი არ შეიცავს გასაღებს \"%s\"" -#: utils/adt/jsonpath_exec.c:1055 +#: utils/adt/jsonpath_exec.c:1054 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "" -#: utils/adt/jsonpath_exec.c:1113 +#: utils/adt/jsonpath_exec.c:1112 #, c-format msgid "jsonpath item method .%s() can only be applied to an array" msgstr "" -#: utils/adt/jsonpath_exec.c:1166 utils/adt/jsonpath_exec.c:1192 +#: utils/adt/jsonpath_exec.c:1165 utils/adt/jsonpath_exec.c:1191 utils/adt/jsonpath_exec.c:1279 utils/adt/jsonpath_exec.c:1304 utils/adt/jsonpath_exec.c:1356 utils/adt/jsonpath_exec.c:1376 utils/adt/jsonpath_exec.c:1438 utils/adt/jsonpath_exec.c:1527 utils/adt/jsonpath_exec.c:1560 utils/adt/jsonpath_exec.c:1584 #, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type double precision" -msgstr "არგუმენტი \"%s\" jsonpath-ის ელემენტის მეთოდისთვის .%s() არასწორია ტიპისთვის double precision" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type %s" +msgstr "არგუმენტი \"%s\" jsonpath-ის ელემენტის მეთოდისთვის .%s() არასწორია ტიპისთვის %s" -#: utils/adt/jsonpath_exec.c:1171 utils/adt/jsonpath_exec.c:1197 utils/adt/jsonpath_exec.c:1413 utils/adt/jsonpath_exec.c:1445 +#: utils/adt/jsonpath_exec.c:1170 utils/adt/jsonpath_exec.c:1196 utils/adt/jsonpath_exec.c:1413 utils/adt/jsonpath_exec.c:1445 #, c-format msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" msgstr "" -#: utils/adt/jsonpath_exec.c:1210 utils/adt/jsonpath_exec.c:1312 utils/adt/jsonpath_exec.c:1454 utils/adt/jsonpath_exec.c:1592 +#: utils/adt/jsonpath_exec.c:1209 utils/adt/jsonpath_exec.c:1312 utils/adt/jsonpath_exec.c:1454 utils/adt/jsonpath_exec.c:1592 #, c-format msgid "jsonpath item method .%s() can only be applied to a string or numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:1280 utils/adt/jsonpath_exec.c:1304 -#, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" -msgstr "" - -#: utils/adt/jsonpath_exec.c:1356 utils/adt/jsonpath_exec.c:1376 -#, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" -msgstr "" - #: utils/adt/jsonpath_exec.c:1385 #, c-format -msgid "jsonpath item method .%s() can only be applied to a bool, string, or numeric value" -msgstr "" - -#: utils/adt/jsonpath_exec.c:1438 utils/adt/jsonpath_exec.c:1527 -#, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, or numeric value" msgstr "" #: utils/adt/jsonpath_exec.c:1486 @@ -25325,129 +26329,124 @@ msgstr "" msgid "scale of jsonpath item method .%s() is out of range for type integer" msgstr "" -#: utils/adt/jsonpath_exec.c:1560 utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1647 #, c-format -msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type integer" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value" msgstr "" -#: utils/adt/jsonpath_exec.c:1663 -#, c-format -msgid "jsonpath item method .%s() can only be applied to a bool, string, numeric, or datetime value" -msgstr "" - -#: utils/adt/jsonpath_exec.c:2152 +#: utils/adt/jsonpath_exec.c:2136 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:2159 +#: utils/adt/jsonpath_exec.c:2143 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:2227 +#: utils/adt/jsonpath_exec.c:2211 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:2326 +#: utils/adt/jsonpath_exec.c:2310 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:2372 +#: utils/adt/jsonpath_exec.c:2356 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "" -#: utils/adt/jsonpath_exec.c:2465 +#: utils/adt/jsonpath_exec.c:2449 #, c-format msgid "time precision of jsonpath item method .%s() is out of range for type integer" msgstr "" -#: utils/adt/jsonpath_exec.c:2499 utils/adt/jsonpath_exec.c:2505 utils/adt/jsonpath_exec.c:2532 utils/adt/jsonpath_exec.c:2560 utils/adt/jsonpath_exec.c:2613 utils/adt/jsonpath_exec.c:2664 utils/adt/jsonpath_exec.c:2720 +#: utils/adt/jsonpath_exec.c:2483 utils/adt/jsonpath_exec.c:2489 utils/adt/jsonpath_exec.c:2516 utils/adt/jsonpath_exec.c:2544 utils/adt/jsonpath_exec.c:2597 utils/adt/jsonpath_exec.c:2648 utils/adt/jsonpath_exec.c:2719 #, c-format msgid "%s format is not recognized: \"%s\"" msgstr "%s-ის ფორმატი უცნობია: \"%s\"" -#: utils/adt/jsonpath_exec.c:2501 +#: utils/adt/jsonpath_exec.c:2485 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "" -#: utils/adt/jsonpath_exec.c:2694 utils/adt/jsonpath_exec.c:2750 +#: utils/adt/jsonpath_exec.c:2678 utils/adt/jsonpath_exec.c:2759 #, c-format msgid "time precision of jsonpath item method .%s() is invalid" msgstr "" -#: utils/adt/jsonpath_exec.c:2830 +#: utils/adt/jsonpath_exec.c:2839 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "" -#: utils/adt/jsonpath_exec.c:3113 +#: utils/adt/jsonpath_exec.c:3123 #, c-format msgid "could not convert value of type %s to jsonpath" msgstr "%s ტიპის მნიშვნელობის jsonpath-ში გადაყვანა ვერ შევძელი" -#: utils/adt/jsonpath_exec.c:3147 +#: utils/adt/jsonpath_exec.c:3157 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "" -#: utils/adt/jsonpath_exec.c:3200 +#: utils/adt/jsonpath_exec.c:3210 #, c-format msgid "\"vars\" argument is not an object" msgstr "არგუმენტი \"vars\" ობიექტი არაა" -#: utils/adt/jsonpath_exec.c:3201 +#: utils/adt/jsonpath_exec.c:3211 #, c-format msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." msgstr "" -#: utils/adt/jsonpath_exec.c:3464 +#: utils/adt/jsonpath_exec.c:3474 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "" -#: utils/adt/jsonpath_exec.c:3476 +#: utils/adt/jsonpath_exec.c:3486 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "" -#: utils/adt/jsonpath_exec.c:3660 +#: utils/adt/jsonpath_exec.c:3670 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "" -#: utils/adt/jsonpath_exec.c:3662 +#: utils/adt/jsonpath_exec.c:3672 #, c-format msgid "Use *_tz() function for time zone support." msgstr "" -#: utils/adt/jsonpath_exec.c:3956 +#: utils/adt/jsonpath_exec.c:3980 #, c-format -msgid "JSON path expression for column \"%s\" should return single item without wrapper" +msgid "JSON path expression for column \"%s\" must return single item when no wrapper is requested" msgstr "" -#: utils/adt/jsonpath_exec.c:3958 utils/adt/jsonpath_exec.c:3963 +#: utils/adt/jsonpath_exec.c:3982 utils/adt/jsonpath_exec.c:3987 #, c-format -msgid "Use WITH WRAPPER clause to wrap SQL/JSON items into array." +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." msgstr "" -#: utils/adt/jsonpath_exec.c:3962 +#: utils/adt/jsonpath_exec.c:3986 #, c-format -msgid "JSON path expression in JSON_QUERY should return single item without wrapper" +msgid "JSON path expression in JSON_QUERY must return single item when no wrapper is requested" msgstr "" -#: utils/adt/jsonpath_exec.c:4020 utils/adt/jsonpath_exec.c:4044 +#: utils/adt/jsonpath_exec.c:4044 utils/adt/jsonpath_exec.c:4068 #, c-format -msgid "JSON path expression for column \"%s\" should return single scalar item" +msgid "JSON path expression for column \"%s\" must return single scalar item" msgstr "" -#: utils/adt/jsonpath_exec.c:4025 utils/adt/jsonpath_exec.c:4049 +#: utils/adt/jsonpath_exec.c:4049 utils/adt/jsonpath_exec.c:4073 #, c-format -msgid "JSON path expression in JSON_VALUE should return single scalar item" +msgid "JSON path expression in JSON_VALUE must return single scalar item" msgstr "" #: utils/adt/levenshtein.c:132 @@ -25455,42 +26454,42 @@ msgstr "" msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "" -#: utils/adt/like.c:159 +#: utils/adt/like.c:162 #, c-format -msgid "nondeterministic collations are not supported for LIKE" -msgstr "" +msgid "could not determine which collation to use for LIKE" +msgstr "შეუძლებელია დადგება, რომელი კოლაცია გამოვიყენო ოპერატორისთვის LIKE" -#: utils/adt/like.c:188 utils/adt/like_support.c:1023 +#: utils/adt/like.c:193 utils/adt/like_support.c:1019 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "" -#: utils/adt/like.c:200 +#: utils/adt/like.c:202 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "" -#: utils/adt/like_match.c:108 utils/adt/like_match.c:168 +#: utils/adt/like_match.c:107 utils/adt/like_match.c:169 utils/adt/like_match.c:237 #, c-format msgid "LIKE pattern must not end with escape character" msgstr "" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 +#: utils/adt/like_match.c:437 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "არასწორი სპეციალური სიმბოლო" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:438 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "" -#: utils/adt/like_support.c:1013 +#: utils/adt/like_support.c:1009 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "" -#: utils/adt/like_support.c:1114 +#: utils/adt/like_support.c:1106 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "" @@ -25510,11 +26509,16 @@ msgstr "" msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "" -#: utils/adt/mcxtfuncs.c:173 +#: utils/adt/mcxtfuncs.c:305 utils/adt/mcxtfuncs.c:391 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "პროცესი PID-ით %d PostgreSQL-ის სერვერის პროცესს არ წარმოადგენს" +#: utils/adt/mcxtfuncs.c:480 +#, c-format +msgid "PID %d is no longer a PostgreSQL server process" +msgstr "პროცესი PID-ით %d PostgreSQL-ის სერვერის პროცესს აღარ წარმოადგენს" + #: utils/adt/misc.c:237 #, c-format msgid "global tablespace never has databases" @@ -25624,7 +26628,7 @@ msgstr "cidr-ის არასწორი მნიშვნელობა: msgid "Value has bits set to right of mask." msgstr "" -#: utils/adt/network.c:152 utils/adt/network.c:1184 utils/adt/network.c:1209 utils/adt/network.c:1234 +#: utils/adt/network.c:152 utils/adt/network.c:1149 utils/adt/network.c:1174 utils/adt/network.c:1199 #, c-format msgid "could not format inet value: %m" msgstr "inet-ის მნიშვნელობის ფორმატის შეცდომა: %m" @@ -25652,162 +26656,162 @@ msgstr "არასწორი სიგრძე გარე \"%s\"-ის msgid "invalid external \"cidr\" value" msgstr "გარე cidr-ს არასწორი მნიშვნელობა" -#: utils/adt/network.c:336 utils/adt/network.c:359 +#: utils/adt/network.c:334 utils/adt/network.c:357 #, c-format msgid "invalid mask length: %d" msgstr "ნიღბის არასწორი სიგრძე: %d" -#: utils/adt/network.c:1252 +#: utils/adt/network.c:1217 #, c-format msgid "could not format cidr value: %m" msgstr "cird-ის მნიშვნელობის ფორმატის შეცდომა: %m" -#: utils/adt/network.c:1485 +#: utils/adt/network.c:1450 #, c-format msgid "cannot merge addresses from different families" msgstr "სხვადასხვა ოჯახის მისამართების შერწყმა შეუძლებელია" -#: utils/adt/network.c:1893 +#: utils/adt/network.c:1858 #, c-format msgid "cannot AND inet values of different sizes" msgstr "განსხვავებული ზომის მქონე inet-ის მნიშვნელობების AND შეუძლებელია" -#: utils/adt/network.c:1925 +#: utils/adt/network.c:1890 #, c-format msgid "cannot OR inet values of different sizes" msgstr "განსხვავებული ზომის მქონე inet-ის მნიშვნელობების OR შეუძლებელია" -#: utils/adt/network.c:1986 utils/adt/network.c:2062 +#: utils/adt/network.c:1951 utils/adt/network.c:2027 #, c-format msgid "result is out of range" msgstr "შედეგი დიაპაზონს გარეთაა" -#: utils/adt/network.c:2027 +#: utils/adt/network.c:1992 #, c-format msgid "cannot subtract inet values of different sizes" msgstr "" -#: utils/adt/numeric.c:786 utils/adt/numeric.c:3644 utils/adt/numeric.c:7201 utils/adt/numeric.c:7404 utils/adt/numeric.c:7876 utils/adt/numeric.c:10571 utils/adt/numeric.c:11045 utils/adt/numeric.c:11139 utils/adt/numeric.c:11273 +#: utils/adt/numeric.c:795 utils/adt/numeric.c:3762 utils/adt/numeric.c:7319 utils/adt/numeric.c:7522 utils/adt/numeric.c:7994 utils/adt/numeric.c:10928 utils/adt/numeric.c:11403 utils/adt/numeric.c:11497 utils/adt/numeric.c:11632 #, c-format msgid "value overflows numeric format" msgstr "მნიშვნელობა გადაავსებს რიცხვის ფორმატს" -#: utils/adt/numeric.c:1099 +#: utils/adt/numeric.c:1108 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "" -#: utils/adt/numeric.c:1105 +#: utils/adt/numeric.c:1114 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "" -#: utils/adt/numeric.c:1114 +#: utils/adt/numeric.c:1123 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "" -#: utils/adt/numeric.c:1329 utils/adt/numeric.c:1343 +#: utils/adt/numeric.c:1338 utils/adt/numeric.c:1352 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "" -#: utils/adt/numeric.c:1334 +#: utils/adt/numeric.c:1343 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "" -#: utils/adt/numeric.c:1352 +#: utils/adt/numeric.c:1361 #, c-format msgid "invalid NUMERIC type modifier" msgstr "არასწორი NUMERIC ტიპის მოდიფიკატორი" -#: utils/adt/numeric.c:1710 +#: utils/adt/numeric.c:1727 #, c-format msgid "start value cannot be NaN" msgstr "საწყისი მნიშვნელობა NaN ვერ იქნება" -#: utils/adt/numeric.c:1714 +#: utils/adt/numeric.c:1731 #, c-format msgid "start value cannot be infinity" msgstr "საწყისი მნიშვნელობა უსასრულო ვერ იქნება" -#: utils/adt/numeric.c:1721 +#: utils/adt/numeric.c:1738 #, c-format msgid "stop value cannot be NaN" msgstr "საბოლოო მნიშვნელობა NaN ვერ იქნება" -#: utils/adt/numeric.c:1725 +#: utils/adt/numeric.c:1742 #, c-format msgid "stop value cannot be infinity" msgstr "საბოლოო მნიშვნელობა უსასრულო ვერ იქნება" -#: utils/adt/numeric.c:1738 +#: utils/adt/numeric.c:1755 #, c-format msgid "step size cannot be NaN" msgstr "ბიჯის ზომა NaN ვერ იქნება" -#: utils/adt/numeric.c:1742 +#: utils/adt/numeric.c:1759 #, c-format msgid "step size cannot be infinity" msgstr "ბიჯის ზომა უსასრულო ვერ იქნება" -#: utils/adt/numeric.c:3634 +#: utils/adt/numeric.c:3752 #, c-format msgid "factorial of a negative number is undefined" msgstr "უასრყოფითი რიცხვის ფაქტორიალი გაურკვეველია" -#: utils/adt/numeric.c:4241 +#: utils/adt/numeric.c:4359 #, c-format msgid "lower bound cannot be NaN" msgstr "ქვედა ზღვარი ნულოვანი ვერ იქნება" -#: utils/adt/numeric.c:4245 +#: utils/adt/numeric.c:4363 #, c-format msgid "lower bound cannot be infinity" msgstr "ქვედა ზღვარი უსასრულობა ვერ იქნება" -#: utils/adt/numeric.c:4252 +#: utils/adt/numeric.c:4370 #, c-format msgid "upper bound cannot be NaN" msgstr "ზედა ზღვარი ნულოვანი ვერ იქნება" -#: utils/adt/numeric.c:4256 +#: utils/adt/numeric.c:4374 #, c-format msgid "upper bound cannot be infinity" msgstr "ზედა ზღვარი უსასრულობა ვერ იქნება" -#: utils/adt/numeric.c:4417 utils/adt/numeric.c:4505 utils/adt/numeric.c:4565 utils/adt/numeric.c:4761 +#: utils/adt/numeric.c:4535 utils/adt/numeric.c:4623 utils/adt/numeric.c:4683 utils/adt/numeric.c:4879 #, c-format msgid "cannot convert NaN to %s" msgstr "\"NaN\"-ის %s-ში გადაყვანა შეუძლებელია" -#: utils/adt/numeric.c:4421 utils/adt/numeric.c:4509 utils/adt/numeric.c:4569 utils/adt/numeric.c:4765 +#: utils/adt/numeric.c:4539 utils/adt/numeric.c:4627 utils/adt/numeric.c:4687 utils/adt/numeric.c:4883 #, c-format msgid "cannot convert infinity to %s" msgstr "უსასრულობის %s-ში გადაყვანა შეუძლებელია" -#: utils/adt/numeric.c:4774 +#: utils/adt/numeric.c:4892 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn დიაპაზონს გარეთაა" -#: utils/adt/numeric.c:7966 utils/adt/numeric.c:8017 +#: utils/adt/numeric.c:8084 utils/adt/numeric.c:8135 #, c-format msgid "numeric field overflow" msgstr "რიცხვითი ველის გადავსება" -#: utils/adt/numeric.c:7967 +#: utils/adt/numeric.c:8085 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "" -#: utils/adt/numeric.c:8018 +#: utils/adt/numeric.c:8136 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "" -#: utils/adt/numeric.c:11342 utils/adt/pseudorandomfuncs.c:135 utils/adt/pseudorandomfuncs.c:159 +#: utils/adt/numeric.c:11701 utils/adt/pseudorandomfuncs.c:135 utils/adt/pseudorandomfuncs.c:159 #, c-format msgid "lower bound must be less than or equal to upper bound" msgstr "ქვედა ზღვარი ზედა ზღვარზე ნაკლები ან ტოლი უნდა იყოს" @@ -25817,27 +26821,27 @@ msgstr "ქვედა ზღვარი ზედა ზღვარზე msgid "invalid oidvector data" msgstr "oidvevtor-ის არასწორი მონაცემები" -#: utils/adt/oracle_compat.c:976 +#: utils/adt/oracle_compat.c:992 #, c-format msgid "requested character too large" msgstr "მოთხოვნილი სიმბოლო ძალიან დიდია" -#: utils/adt/oracle_compat.c:1020 +#: utils/adt/oracle_compat.c:1036 #, c-format msgid "character number must be positive" msgstr "cost დადებით უნდა იყოს" -#: utils/adt/oracle_compat.c:1024 +#: utils/adt/oracle_compat.c:1040 #, c-format msgid "null character not permitted" msgstr "ნულოვანი სიმბოლო ადუშვებელია" -#: utils/adt/oracle_compat.c:1042 utils/adt/oracle_compat.c:1095 +#: utils/adt/oracle_compat.c:1058 utils/adt/oracle_compat.c:1111 #, c-format msgid "requested character too large for encoding: %u" msgstr "მოთხოვნილი სიმბოლო ძალიან დიდია კოდირებისთვის: %u" -#: utils/adt/oracle_compat.c:1083 +#: utils/adt/oracle_compat.c:1099 #, c-format msgid "requested character not valid for encoding: %u" msgstr "მოთხოვნილი სიმბოლო არასწორია კოდირებისთვის: %u" @@ -25847,137 +26851,147 @@ msgstr "მოთხოვნილი სიმბოლო არასწო msgid "percentile value %g is not between 0 and 1" msgstr "" -#: utils/adt/pg_locale.c:1484 -#, c-format -msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" -msgstr "ლოკალისთვის \"%s\" წესებით \"%s\" კოლატორის გახსნის შეცდომა: %s" - -#: utils/adt/pg_locale.c:1495 utils/adt/pg_locale.c:2969 utils/adt/pg_locale.c:3042 -#, c-format -msgid "ICU is not supported in this build" -msgstr "ამ აგებაში ICU-ის მხარდაჭერა არ არსებბს" - -#: utils/adt/pg_locale.c:1523 +#: utils/adt/pg_locale.c:303 utils/adt/pg_locale.c:335 #, c-format -msgid "could not create locale \"%s\": %m" -msgstr "ლოკალის \"%s\" შექმნა შეუძლებელია: %m" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "ლოკალის სახელი \"%s\" არა-ASCII სიმბოლოებს შეიცავს" -#: utils/adt/pg_locale.c:1526 -#, c-format -msgid "The operating system could not find any locale data for the locale name \"%s\"." -msgstr "" - -#: utils/adt/pg_locale.c:1647 -#, c-format -msgid "collations with different collate and ctype values are not supported on this platform" -msgstr "" - -#: utils/adt/pg_locale.c:1694 +#: utils/adt/pg_locale.c:1119 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "" -#: utils/adt/pg_locale.c:1700 +#: utils/adt/pg_locale.c:1125 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "კოლაციის ვერსია არ ემთხვევა: %s" -#: utils/adt/pg_locale.c:1702 +#: utils/adt/pg_locale.c:1127 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "" -#: utils/adt/pg_locale.c:1705 +#: utils/adt/pg_locale.c:1130 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "" -#: utils/adt/pg_locale.c:1749 utils/adt/pg_locale.c:2533 utils/adt/pg_locale.c:2558 +#: utils/adt/pg_locale.c:1483 utils/adt/pg_locale.c:1510 utils/adt/pg_locale_builtin.c:186 #, c-format msgid "invalid locale name \"%s\" for builtin provider" msgstr "არასწორი ლოკალის სახელი \"%s\" ჩაშენებული მომწოდებლისთვის" -#: utils/adt/pg_locale.c:1791 +#: utils/adt/pg_locale.c:1575 #, c-format -msgid "could not load locale \"%s\"" -msgstr "ენის ჩატვირთვის შეცდომა: %s" +msgid "could not convert locale name \"%s\" to language tag: %s" +msgstr "მდებარეობის კოდის \"%s\" ენის ჭდეში (%s) გადაყვანის შეცდომა" -#: utils/adt/pg_locale.c:1816 +#: utils/adt/pg_locale.c:1584 utils/adt/pg_locale.c:1659 utils/adt/pg_locale_icu.c:215 #, c-format -msgid "could not get collation version for locale \"%s\": error code %lu" -msgstr "" +msgid "ICU is not supported in this build" +msgstr "ამ აგებაში ICU-ის მხარდაჭერა არ არსებბს" -#: utils/adt/pg_locale.c:1872 utils/adt/pg_locale.c:1885 +#: utils/adt/pg_locale.c:1617 #, c-format -msgid "could not convert string to UTF-16: error code %lu" +msgid "could not get language from ICU locale \"%s\": %s" +msgstr "'ICU' ლოკალიდან \"%s\" ენის მიღების შეცდომა: %s" + +#: utils/adt/pg_locale.c:1619 utils/adt/pg_locale.c:1649 +#, c-format +msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." +msgstr "ICU ლოკალის გადამოწმების გასათიშად პარამეტრი \"%s\" დააყენეთ მნიშვნელობაზე \"%s\"." + +#: utils/adt/pg_locale.c:1647 +#, c-format +msgid "ICU locale \"%s\" has unknown language \"%s\"" +msgstr "ICU ლოკალს \"%s\" გააჩნია უცნობი ენა \"%s\"" + +#: utils/adt/pg_locale_icu.c:264 +#, c-format +msgid "could not get language from locale \"%s\": %s" +msgstr "ლოკალიდან \"%s\" ენის მიღების შეცდომა: %s" + +#: utils/adt/pg_locale_icu.c:286 utils/adt/pg_locale_icu.c:303 +#, c-format +msgid "could not open collator for locale \"%s\": %s" msgstr "" -#: utils/adt/pg_locale.c:1897 +#: utils/adt/pg_locale_icu.c:374 #, c-format -msgid "could not compare Unicode strings: %m" -msgstr "უნიკოდის სტრიქონების შედარება შეუძლებელია: %m" +msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" +msgstr "ლოკალისთვის \"%s\" წესებით \"%s\" კოლატორის გახსნის შეცდომა: %s" -#: utils/adt/pg_locale.c:2071 +#: utils/adt/pg_locale_icu.c:488 #, c-format msgid "collation failed: %s" msgstr "კოლაციის შეცდომა: %s" -#: utils/adt/pg_locale.c:2290 utils/adt/pg_locale.c:2322 +#: utils/adt/pg_locale_icu.c:567 utils/adt/pg_locale_icu.c:831 #, c-format msgid "sort key generation failed: %s" msgstr "დალაგების გასაღების გენერაციის შეცდომა: %s" -#: utils/adt/pg_locale.c:2612 +#: utils/adt/pg_locale_icu.c:641 utils/adt/pg_locale_icu.c:653 utils/adt/pg_locale_icu.c:878 utils/adt/pg_locale_icu.c:899 #, c-format -msgid "could not get language from locale \"%s\": %s" -msgstr "ლოკალიდან \"%s\" ენის მიღების შეცდომა: %s" +msgid "%s failed: %s" +msgstr "%s ვერ მოხერხდა: %s" -#: utils/adt/pg_locale.c:2633 utils/adt/pg_locale.c:2649 +#: utils/adt/pg_locale_icu.c:682 #, c-format -msgid "could not open collator for locale \"%s\": %s" -msgstr "" +msgid "case conversion failed: %s" +msgstr "სიმბოლოების ზომის გარდაქმნის შეცდომა: %s" -#: utils/adt/pg_locale.c:2674 +#: utils/adt/pg_locale_icu.c:851 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "კოდირება \"%s\" ICU-ის მიერ მხარდაჭერილი არაა" -#: utils/adt/pg_locale.c:2681 +#: utils/adt/pg_locale_icu.c:858 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "შეცდომა ICU გარდამქმნელის გახსნისას კოდირებისთვის \"%s\": %s" -#: utils/adt/pg_locale.c:2699 utils/adt/pg_locale.c:2718 utils/adt/pg_locale.c:2774 utils/adt/pg_locale.c:2785 +#: utils/adt/pg_locale_libc.c:553 #, c-format -msgid "%s failed: %s" -msgstr "%s ვერ მოხერხდა: %s" +msgid "collations with different collate and ctype values are not supported on this platform" +msgstr "" -#: utils/adt/pg_locale.c:2960 +#: utils/adt/pg_locale_libc.c:683 #, c-format -msgid "could not convert locale name \"%s\" to language tag: %s" -msgstr "მდებარეობის კოდის \"%s\" ენის ჭდეში (%s) გადაყვანის შეცდომა" +msgid "could not load locale \"%s\"" +msgstr "ენის ჩატვირთვის შეცდომა: %s" -#: utils/adt/pg_locale.c:3001 +#: utils/adt/pg_locale_libc.c:708 #, c-format -msgid "could not get language from ICU locale \"%s\": %s" -msgstr "'ICU' ლოკალიდან \"%s\" ენის მიღების შეცდომა: %s" +msgid "could not get collation version for locale \"%s\": error code %lu" +msgstr "" -#: utils/adt/pg_locale.c:3003 utils/adt/pg_locale.c:3032 +#: utils/adt/pg_locale_libc.c:771 utils/adt/pg_locale_libc.c:784 #, c-format -msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." -msgstr "ICU ლოკალის გადამოწმების გასათიშად პარამეტრი \"%s\" დააყენეთ მნიშვნელობაზე \"%s\"." +msgid "could not convert string to UTF-16: error code %lu" +msgstr "" -#: utils/adt/pg_locale.c:3030 +#: utils/adt/pg_locale_libc.c:793 #, c-format -msgid "ICU locale \"%s\" has unknown language \"%s\"" -msgstr "ICU ლოკალს \"%s\" გააჩნია უცნობი ენა \"%s\"" +msgid "could not compare Unicode strings: %m" +msgstr "უნიკოდის სტრიქონების შედარება შეუძლებელია: %m" -#: utils/adt/pg_locale.c:3181 +#: utils/adt/pg_locale_libc.c:825 +#, c-format +msgid "could not create locale \"%s\": %m" +msgstr "ლოკალის \"%s\" შექმნა შეუძლებელია: %m" + +#: utils/adt/pg_locale_libc.c:828 +#, c-format +msgid "The operating system could not find any locale data for the locale name \"%s\"." +msgstr "" + +#: utils/adt/pg_locale_libc.c:1000 #, c-format msgid "invalid multibyte character for locale" msgstr "არასწორი მრავალბაიტიანი სიმბოლო ლოკალისთვის" -#: utils/adt/pg_locale.c:3182 +#: utils/adt/pg_locale_libc.c:1001 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "" @@ -25992,27 +27006,27 @@ msgstr "pg_lsn-ში NaN-ის დამატება შეუძლებ msgid "cannot subtract NaN from pg_lsn" msgstr "pg_lsn-დან NaN-ის გამოკლება შეუძლებელია" -#: utils/adt/pg_upgrade_support.c:39 +#: utils/adt/pg_upgrade_support.c:38 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "" -#: utils/adt/pgstatfuncs.c:252 +#: utils/adt/pgstatfuncs.c:280 #, c-format msgid "invalid command name: \"%s\"" msgstr "არასწორი ბრძანების სახელი: \"%s\"" -#: utils/adt/pgstatfuncs.c:1739 +#: utils/adt/pgstatfuncs.c:1909 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "მოთხოვნილია უცნობი მთვლელის განულება: %s" -#: utils/adt/pgstatfuncs.c:1740 +#: utils/adt/pgstatfuncs.c:1910 #, c-format msgid "Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", or \"wal\"." msgstr "სამიზნე უნდა იყოს ერთ-ერთი სიიდან: \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", ან \"wal\"." -#: utils/adt/pgstatfuncs.c:1822 +#: utils/adt/pgstatfuncs.c:2027 #, c-format msgid "invalid subscription OID %u" msgstr "არასწორი გამოწერის OID %u" @@ -26037,67 +27051,67 @@ msgstr "გარსის ტიპის მნიშვნელობის msgid "cannot display a value of a shell type" msgstr "გარსის ტიპის მნიშვნელობის ჩვენება შეუძლებელია" -#: utils/adt/rangetypes.c:422 +#: utils/adt/rangetypes.c:424 #, c-format msgid "range constructor flags argument must not be null" msgstr "" -#: utils/adt/rangetypes.c:1021 +#: utils/adt/rangetypes.c:1023 #, c-format msgid "result of range difference would not be contiguous" msgstr "" -#: utils/adt/rangetypes.c:1082 +#: utils/adt/rangetypes.c:1084 #, c-format msgid "result of range union would not be contiguous" msgstr "" -#: utils/adt/rangetypes.c:1757 +#: utils/adt/rangetypes.c:1821 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "" -#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 utils/adt/rangetypes.c:2283 +#: utils/adt/rangetypes.c:2320 utils/adt/rangetypes.c:2333 utils/adt/rangetypes.c:2347 #, c-format msgid "invalid range bound flags" msgstr "" -#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 utils/adt/rangetypes.c:2284 +#: utils/adt/rangetypes.c:2321 utils/adt/rangetypes.c:2334 utils/adt/rangetypes.c:2348 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "სწორი მნიშვნელობებია \"[]\", \"[)\", \"(]\" და \"()\"." -#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 utils/adt/rangetypes.c:2470 +#: utils/adt/rangetypes.c:2416 utils/adt/rangetypes.c:2433 utils/adt/rangetypes.c:2448 utils/adt/rangetypes.c:2468 utils/adt/rangetypes.c:2479 utils/adt/rangetypes.c:2526 utils/adt/rangetypes.c:2534 #, c-format msgid "malformed range literal: \"%s\"" msgstr "დიაპაზონის არასწორი სტრიქონი: %s" -#: utils/adt/rangetypes.c:2354 +#: utils/adt/rangetypes.c:2418 #, c-format msgid "Junk after \"empty\" key word." msgstr "ნაგავი საკვანძო სიტყვა \"empty\"-ის შემდეგ." -#: utils/adt/rangetypes.c:2371 +#: utils/adt/rangetypes.c:2435 #, c-format msgid "Missing left parenthesis or bracket." msgstr "აკლია მარცხენა ფრჩხილი ან მრგვალი ფრჩხილი." -#: utils/adt/rangetypes.c:2386 +#: utils/adt/rangetypes.c:2450 #, c-format msgid "Missing comma after lower bound." msgstr "ქვედა ზღვარის შემდეგ მძიმე აკლია." -#: utils/adt/rangetypes.c:2406 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "Too many commas." msgstr "ძალიან ბევრი მძიმე." -#: utils/adt/rangetypes.c:2417 +#: utils/adt/rangetypes.c:2481 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "ნაგავი მარჯვენა ფრჩხილის ან მრგვალი ფრჩხილის შემდეგ." -#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4475 #, c-format msgid "regular expression failed: %s" msgstr "რეგულარული გამოსახულების შეცდომა: %s" @@ -26112,7 +27126,7 @@ msgstr "რეგულარული გამოსახულების msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "" -#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 utils/adt/regexp.c:1871 utils/misc/guc.c:6776 utils/misc/guc.c:6810 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 utils/adt/regexp.c:1871 utils/misc/guc.c:6818 utils/misc/guc.c:6852 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "არასწორი მნიშვნელობა პარამეტრისთვის \"%s\": %d" @@ -26148,7 +27162,7 @@ msgstr "ერთზე მეტი ფუნქცია სახელწო msgid "more than one operator named %s" msgstr "ერთზე მეტი ოპერატორი, სახელად %s" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10424 utils/adt/ruleutils.c:10637 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10826 utils/adt/ruleutils.c:11039 #, c-format msgid "too many arguments" msgstr "მეტისმეტად ბევრი არგუმენტი" @@ -26158,7 +27172,7 @@ msgstr "მეტისმეტად ბევრი არგუმენტ msgid "Provide two argument types for operator." msgstr "ოპერატორისთვის ორი არგუმენტის ტიპი მიაწოდეთ." -#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 utils/adt/regproc.c:1815 utils/adt/varlena.c:3481 utils/adt/varlena.c:3486 #, c-format msgid "invalid name syntax" msgstr "სახელის არასწორი სინტაქსი" @@ -26183,77 +27197,92 @@ msgstr "მოველოდი ტიპის სახელს" msgid "improper type name" msgstr "არასწორი ტიპის სახელი" -#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 utils/adt/ri_triggers.c:2601 +#: utils/adt/ri_triggers.c:314 utils/adt/ri_triggers.c:1775 utils/adt/ri_triggers.c:2774 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 +#: utils/adt/ri_triggers.c:317 utils/adt/ri_triggers.c:1778 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "" -#: utils/adt/ri_triggers.c:2036 +#: utils/adt/ri_triggers.c:2192 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "\"INSERT\"-ისთვის საჭიროა %s ფუნქციის გაშვება" -#: utils/adt/ri_triggers.c:2042 +#: utils/adt/ri_triggers.c:2198 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "\"UPDATE\"-ისთვის საჭიროა %s ფუნქციის გაშვება" -#: utils/adt/ri_triggers.c:2048 +#: utils/adt/ri_triggers.c:2204 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "\"DELETE\"-ისთვის საჭიროა %s ფუნქციის გაშვება" -#: utils/adt/ri_triggers.c:2071 +#: utils/adt/ri_triggers.c:2227 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "" -#: utils/adt/ri_triggers.c:2073 +#: utils/adt/ri_triggers.c:2229 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "" -#: utils/adt/ri_triggers.c:2426 +#: utils/adt/ri_triggers.c:2599 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "" -#: utils/adt/ri_triggers.c:2430 +#: utils/adt/ri_triggers.c:2603 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "დიდი შანსია, ეს გამოიწვია წესმა, რომელმაც მოთხოვნა თავიდან დაწერა." -#: utils/adt/ri_triggers.c:2591 +#: utils/adt/ri_triggers.c:2764 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "" -#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 +#: utils/adt/ri_triggers.c:2767 utils/adt/ri_triggers.c:2806 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "" -#: utils/adt/ri_triggers.c:2605 +#: utils/adt/ri_triggers.c:2778 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." -msgstr "" +msgstr "გასაღები (%s)=(%s) არაა წარმოდგენილი ცხრილში \"%s\"." -#: utils/adt/ri_triggers.c:2608 +#: utils/adt/ri_triggers.c:2781 #, c-format msgid "Key is not present in table \"%s\"." msgstr "ცხრილში \"%s\" გასაღები არ არსებობს." -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2787 +#, c-format +msgid "update or delete on table \"%s\" violates RESTRICT setting of foreign key constraint \"%s\" on table \"%s\"" +msgstr "" + +#: utils/adt/ri_triggers.c:2792 +#, c-format +msgid "Key (%s)=(%s) is referenced from table \"%s\"." +msgstr "გასაღებს (%s)=(%s) მიმართავენ ცხრილიდან \"%s\"." + +#: utils/adt/ri_triggers.c:2795 +#, c-format +msgid "Key is referenced from table \"%s\"." +msgstr "გასაღებს მიმართავენ ცხრილიდან \"%s\"." + +#: utils/adt/ri_triggers.c:2801 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "" -#: utils/adt/ri_triggers.c:2622 +#: utils/adt/ri_triggers.c:2809 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "" @@ -26303,133 +27332,158 @@ msgstr "" msgid "improper binary format in record column %d" msgstr "" -#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 utils/adt/rowtypes.c:1699 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1471 utils/adt/rowtypes.c:1717 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "" -#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 utils/adt/rowtypes.c:1568 utils/adt/rowtypes.c:1753 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "" -#: utils/adt/ruleutils.c:2693 +#: utils/adt/ruleutils.c:2740 #, c-format msgid "input is a query, not an expression" msgstr "შეყვანა არის მოთხოვნა და არა გამოსახულება" -#: utils/adt/ruleutils.c:2705 +#: utils/adt/ruleutils.c:2752 #, c-format msgid "expression contains variables of more than one relation" msgstr "" -#: utils/adt/ruleutils.c:2712 +#: utils/adt/ruleutils.c:2759 #, c-format msgid "expression contains variables" msgstr "გამოხატულება შეიცავს ცვლადებს" -#: utils/adt/ruleutils.c:5242 +#: utils/adt/ruleutils.c:5433 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "წესს \"%s\" გააჩნია მხარდაუჭერელი მოვლენის ტიპი %d" -#: utils/adt/timestamp.c:128 +#: utils/adt/tid.c:317 +#, c-format +msgid "cannot look at latest visible tid for relation \"%s.%s\"" +msgstr "უკანასკნელ ხილული tid-ზე შეხედვა შეუძლებელია ურთიერთობისთვის \"%s.%s\"" + +#: utils/adt/tid.c:356 +#, c-format +msgid "ctid isn't of type TID" +msgstr "" + +#: utils/adt/tid.c:364 +#, c-format +msgid "currtid cannot handle views with no CTID" +msgstr "" + +#: utils/adt/tid.c:369 +#, c-format +msgid "the view has no rules" +msgstr "" + +#: utils/adt/tid.c:381 +#, c-format +msgid "only one select rule is allowed in views" +msgstr "ხედებში დაშვებულია, მხოლოდ, ერთი select-ის წესი" + +#: utils/adt/timestamp.c:130 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s-ის სიზუსტე უარყოფით არ უნდა იყოს" -#: utils/adt/timestamp.c:134 +#: utils/adt/timestamp.c:136 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "" -#: utils/adt/timestamp.c:394 +#: utils/adt/timestamp.c:204 utils/adt/timestamp.c:457 +#, c-format +msgid "timestamp out of range: \"%s\"" +msgstr "დროის შტამპი დიაპაზონს გარეთაა: \"%s\"" + +#: utils/adt/timestamp.c:396 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "" -#: utils/adt/timestamp.c:512 +#: utils/adt/timestamp.c:514 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "" -#: utils/adt/timestamp.c:524 +#: utils/adt/timestamp.c:526 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "რიცხვითი დროის სარტყელი \"%s\" დიაპაზონს გარეთაა" -#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 utils/adt/timestamp.c:643 +#: utils/adt/timestamp.c:626 utils/adt/timestamp.c:634 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "დროის შტამპი დიაპაზონს გარეთაა: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:744 +#: utils/adt/timestamp.c:735 #, c-format msgid "timestamp cannot be NaN" msgstr "დროის შტამპი NaN ვერ იქნება" -#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 +#: utils/adt/timestamp.c:753 utils/adt/timestamp.c:765 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "დროის შტამპი დიაპაზონს გარეთაა: \"%g\"" -#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 utils/adt/timestamp.c:3537 -#: utils/adt/timestamp.c:3546 utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 utils/adt/timestamp.c:5097 +#: utils/adt/timestamp.c:948 utils/adt/timestamp.c:1507 utils/adt/timestamp.c:1517 utils/adt/timestamp.c:1578 utils/adt/timestamp.c:2866 utils/adt/timestamp.c:2875 utils/adt/timestamp.c:2890 utils/adt/timestamp.c:2964 utils/adt/timestamp.c:2981 utils/adt/timestamp.c:3038 utils/adt/timestamp.c:3081 utils/adt/timestamp.c:3459 utils/adt/timestamp.c:3517 utils/adt/timestamp.c:3540 utils/adt/timestamp.c:3549 utils/adt/timestamp.c:3573 utils/adt/timestamp.c:3596 +#: utils/adt/timestamp.c:3605 utils/adt/timestamp.c:3740 utils/adt/timestamp.c:3841 utils/adt/timestamp.c:4248 utils/adt/timestamp.c:4285 utils/adt/timestamp.c:4333 utils/adt/timestamp.c:4342 utils/adt/timestamp.c:4434 utils/adt/timestamp.c:4481 utils/adt/timestamp.c:4490 utils/adt/timestamp.c:4586 utils/adt/timestamp.c:4639 utils/adt/timestamp.c:4649 utils/adt/timestamp.c:4874 utils/adt/timestamp.c:4884 utils/adt/timestamp.c:5239 #, c-format msgid "interval out of range" msgstr "ინტერვალი საზღვრებს გარეთაა" -#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 +#: utils/adt/timestamp.c:1085 utils/adt/timestamp.c:1118 #, c-format msgid "invalid INTERVAL type modifier" msgstr "\"INTERVAL\" ტიპის არასწორი მოდიფიკატორი" -#: utils/adt/timestamp.c:1110 +#: utils/adt/timestamp.c:1101 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d)-ის სიზუსტე უარყოფით არ უნდა იყოს" -#: utils/adt/timestamp.c:1116 +#: utils/adt/timestamp.c:1107 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "" -#: utils/adt/timestamp.c:1506 +#: utils/adt/timestamp.c:1497 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "" -#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 -#, c-format -msgid "interval out of range." -msgstr "ინტერვალი დაშვებული შუალედის გარეთაა." - -#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 +#: utils/adt/timestamp.c:4623 utils/adt/timestamp.c:4858 #, c-format msgid "origin out of range" msgstr "წყარო დიაპაზონს გარეთაა" -#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#: utils/adt/timestamp.c:4628 utils/adt/timestamp.c:4863 #, c-format msgid "timestamps cannot be binned into infinite intervals" msgstr "" -#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 +#: utils/adt/timestamp.c:4633 utils/adt/timestamp.c:4868 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "" -#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 +#: utils/adt/timestamp.c:4644 utils/adt/timestamp.c:4879 #, c-format msgid "stride must be greater than zero" msgstr "ბიჯი ნულზე მეტი უნდა იყოს" -#: utils/adt/timestamp.c:5091 +#: utils/adt/timestamp.c:5181 utils/adt/timestamp.c:5233 #, c-format msgid "Months usually have fractional weeks." msgstr "თვეში როგორც წესი გაყოფადი რაოდენობის კვირებია." -#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#: utils/adt/timestamp.c:6713 utils/adt/timestamp.c:6799 #, c-format msgid "step size cannot be infinite" msgstr "ბიჯის ზომა უსასრულო ვერ იქნება" @@ -26504,32 +27558,32 @@ msgstr "" msgid "ts_rewrite query must return two tsquery columns" msgstr "ts_rewrite მოთხოვნამ ორი tsquery სვეტი უნდა დააბრუნოს" -#: utils/adt/tsrank.c:412 +#: utils/adt/tsrank.c:415 #, c-format msgid "array of weight must be one-dimensional" msgstr "წონის მასივი ერთგანზომილებიანი უნდა იყოს" -#: utils/adt/tsrank.c:417 +#: utils/adt/tsrank.c:420 #, c-format msgid "array of weight is too short" msgstr "წონის მასივი ძალიან მოკლეა" -#: utils/adt/tsrank.c:422 +#: utils/adt/tsrank.c:425 #, c-format msgid "array of weight must not contain nulls" msgstr "წონის მასივი არ შეიძლება, ნულოვან მნიშვნელობებს შეიცავდეს" -#: utils/adt/tsrank.c:431 utils/adt/tsrank.c:871 +#: utils/adt/tsrank.c:434 utils/adt/tsrank.c:876 #, c-format msgid "weight out of range" msgstr "სიმძიმე დიაპაზონს გარეთაა" -#: utils/adt/tsvector.c:216 +#: utils/adt/tsvector.c:213 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "სიტყვა მეტისმეტად მოკლეა (%ld ბაიტი, მაქს %ld ბაიტი)" -#: utils/adt/tsvector.c:223 +#: utils/adt/tsvector.c:220 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "" @@ -26609,7 +27663,7 @@ msgstr "სპეციალური სიმბოლო \"%s\" ვერ msgid "wrong position info in tsvector: \"%s\"" msgstr "" -#: utils/adt/uuid.c:418 +#: utils/adt/uuid.c:535 utils/adt/uuid.c:632 #, c-format msgid "could not generate random values" msgstr "შემთხვევითი რიცხვების გენერაციის შეცდომა" @@ -26654,7 +27708,7 @@ msgstr "გარე ბიტური სტრიქონის არას msgid "bit string too long for type bit varying(%d)" msgstr "" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 utils/adt/varlena.c:3133 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:919 utils/adt/varlena.c:982 utils/adt/varlena.c:1139 utils/adt/varlena.c:3102 utils/adt/varlena.c:3180 #, c-format msgid "negative substring length not allowed" msgstr "ქვესტრიქონის სიგრძე უარყოფითი არ შეიძლება იყოს" @@ -26679,7 +27733,7 @@ msgstr "განსხვავებული სიგრძის სტრ msgid "bit index %d out of valid range (0..%d)" msgstr "" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3384 #, c-format msgid "new bit must be 0 or 1" msgstr "ახალი ბიტი უნდა იყოს 0 ან 1" @@ -26694,92 +27748,92 @@ msgstr "მნიშვნელობა სიმბოლოს ტიპი msgid "value too long for type character varying(%d)" msgstr "" -#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1591 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "" -#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 +#: utils/adt/varlena.c:1864 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "" -#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 +#: utils/adt/varlena.c:3268 utils/adt/varlena.c:3335 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "ინდექსი %d დასაშვებ დიაპაზონს (0..%d) გარეთაა" -#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 +#: utils/adt/varlena.c:3299 utils/adt/varlena.c:3371 #, c-format -msgid "index %lld out of valid range, 0..%lld" -msgstr "ინდექსი %lld დასაშვებ დიაპაზონს (0..%lld) გარეთაა" +msgid "index % out of valid range, 0..%" +msgstr "ინდექსი % დასაშვებ დიაპაზონს (0..%) გარეთაა" -#: utils/adt/varlena.c:4385 +#: utils/adt/varlena.c:4587 #, c-format msgid "field position must not be zero" msgstr "ველის მდებარეობა ნულოვანი ვერ იქნება" -#: utils/adt/varlena.c:5630 +#: utils/adt/varlena.c:5832 #, c-format msgid "unterminated format() type specifier" msgstr "" -#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 +#: utils/adt/varlena.c:5833 utils/adt/varlena.c:5967 utils/adt/varlena.c:6088 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "ერთი \"%%\"-სთვის გამოიყენეთ \"%%%%\"." -#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 +#: utils/adt/varlena.c:5965 utils/adt/varlena.c:6086 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "" -#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 +#: utils/adt/varlena.c:5978 utils/adt/varlena.c:6035 #, c-format msgid "too few arguments for format()" msgstr "format()-ის არგუმენტები საკმარისი არაა" -#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 +#: utils/adt/varlena.c:6131 utils/adt/varlena.c:6313 #, c-format msgid "number is out of range" msgstr "რიცხვი დიაპაზონს გარეთაა" -#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 +#: utils/adt/varlena.c:6194 utils/adt/varlena.c:6222 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "" -#: utils/adt/varlena.c:6013 +#: utils/adt/varlena.c:6215 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "" -#: utils/adt/varlena.c:6058 +#: utils/adt/varlena.c:6260 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "" -#: utils/adt/varlena.c:6266 +#: utils/adt/varlena.c:6468 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "" -#: utils/adt/varlena.c:6279 +#: utils/adt/varlena.c:6481 #, c-format msgid "invalid normalization form: %s" msgstr "ნორმალიზაციის არასწორი ფორმა: %s" -#: utils/adt/varlena.c:6324 +#: utils/adt/varlena.c:6526 #, c-format msgid "Unicode categorization can only be performed if server encoding is UTF8" msgstr "" -#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 +#: utils/adt/varlena.c:6743 utils/adt/varlena.c:6778 utils/adt/varlena.c:6813 #, c-format msgid "invalid Unicode code point: %04X" msgstr "უნიკოდის კოდის არასწორი წერტილი: %04X" -#: utils/adt/varlena.c:6641 +#: utils/adt/varlena.c:6843 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "" @@ -26794,12 +27848,12 @@ msgstr "ntile -ის არგუმენტი ნულზე მეტი msgid "argument of nth_value must be greater than zero" msgstr "nth_value-ის არგუმენტი ნულზე მეტი უნდა იყოს" -#: utils/adt/xid8funcs.c:124 +#: utils/adt/xid8funcs.c:120 #, c-format -msgid "transaction ID %llu is in the future" -msgstr "ტრანზაქციის ID მომავალშია: %llu" +msgid "transaction ID % is in the future" +msgstr "ტრანზაქციის ID მომავალშია: %" -#: utils/adt/xid8funcs.c:553 +#: utils/adt/xid8funcs.c:522 #, c-format msgid "invalid external pg_snapshot data" msgstr "pg_snapshot-ის არასწორი გარე მონაცემები" @@ -26824,161 +27878,166 @@ msgstr "კოდირების არასწორი სახელი: msgid "invalid XML comment" msgstr "არასწორი XML კომენტარი" -#: utils/adt/xml.c:691 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "არ არის XML დოკუმენტი" -#: utils/adt/xml.c:987 utils/adt/xml.c:1010 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "xml-ის დამუშავების არასწორი ინსტრუქცია" -#: utils/adt/xml.c:988 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "" -#: utils/adt/xml.c:1011 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "" -#: utils/adt/xml.c:1090 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate განხორციელებული არაა" -#: utils/adt/xml.c:1146 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "xml ბიბლიოთეკის ინიციალიზება ვერ მოხერხდა" -#: utils/adt/xml.c:1147 +#: utils/adt/xml.c:1168 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 აქვს შეუთავსებელი char ტიპის: ზომა (char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1233 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "\"XML\" შეცდომების დამმუშავებლის მორგების შეცდომა" -#: utils/adt/xml.c:1234 +#: utils/adt/xml.c:1255 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "" -#: utils/adt/xml.c:2218 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "სტრიქონის არასწორი მნშვნელობა." -#: utils/adt/xml.c:2221 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "საჭიროა გამოტოვება." -#: utils/adt/xml.c:2224 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone-ის მნიშვნელობა შეიძლება იყოს \"yes\"(დიახ) ან \"no\"(არა)." -#: utils/adt/xml.c:2227 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "არასწორი აღწერა: ვერსია მითითებული არაა." -#: utils/adt/xml.c:2230 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "ტექსტის აღწერაში კოდირება მითითებული არაა." -#: utils/adt/xml.c:2233 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "" -#: utils/adt/xml.c:2236 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Libxml-ის შეცდომის უცნობი კოდი: %d." -#: utils/adt/xml.c:2490 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML-ს უსასრულო თარიღის მნიშვნელობების მხარდაჭერა არ გააჩნია." -#: utils/adt/xml.c:2512 utils/adt/xml.c:2539 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML-ს უსასრულო დროის შტამპის მნიშვნელობების მხარდაჭერა არ გააჩნია." -#: utils/adt/xml.c:2955 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "არასწორი მოთხოვნა" -#: utils/adt/xml.c:3047 +#: utils/adt/xml.c:3110 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "პორტალი \"%s\" კორტეჟებს არ აბრუნებს" -#: utils/adt/xml.c:4299 +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "" -#: utils/adt/xml.c:4300 +#: utils/adt/xml.c:4363 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "" -#: utils/adt/xml.c:4324 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "ცარიელი XPath გამოხატულება" -#: utils/adt/xml.c:4376 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "სახელების სივრცის სახელი და URI ნულოვანი არ შეიძლება, იყოს" -#: utils/adt/xml.c:4383 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "" -#: utils/adt/xml.c:4726 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "სახელების სივრცე DEFAULT მხარდაუჭერელია" -#: utils/adt/xml.c:4755 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "მწკრივის ბილიკის ფილტრი ცარიელი სტრიქონი არ შეიძლება იყოს" -#: utils/adt/xml.c:4786 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "სვეტის ბილიკის ფილტრი ცარიელი სტრიქონი არ შეიძლება იყოს" -#: utils/adt/xml.c:4930 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "" -#: utils/cache/lsyscache.c:1017 +#: utils/cache/funccache.c:364 +#, c-format +msgid "could not determine actual argument type for polymorphic function \"%s\"" +msgstr "პოლიმორფული ფუნქციისთვის (%s) მიმდინარე არგუმენტის ტიპის დადგენა შეუძლებელია" + +#: utils/cache/lsyscache.c:1109 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "" -#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 +#: utils/cache/lsyscache.c:3027 utils/cache/lsyscache.c:3060 utils/cache/lsyscache.c:3093 utils/cache/lsyscache.c:3126 #, c-format msgid "type %s is only a shell" msgstr "ტიპი %s ცარიელია" -#: utils/cache/lsyscache.c:2892 +#: utils/cache/lsyscache.c:3032 #, c-format msgid "no input function available for type %s" msgstr "ტიპისთვის %s შეყვანის ფუნქცია არ არ ასებობს" -#: utils/cache/lsyscache.c:2925 +#: utils/cache/lsyscache.c:3065 #, c-format msgid "no output function available for type %s" msgstr "ტიპისთვის %s გამოტანის ფუნქცია არ არ ასებობს" @@ -26988,32 +28047,27 @@ msgstr "ტიპისთვის %s გამოტანის ფუნქ msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "" -#: utils/cache/plancache.c:747 -#, c-format -msgid "cached plan must not change result type" -msgstr "დაკეშილი გეგმა შედეგის ტიპს არ უნდა ცვლიდეს" - -#: utils/cache/relcache.c:3797 +#: utils/cache/relcache.c:3805 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "heap relfilenumber-ის მნიშვნელობა ბინარული განახლების დროს დაყენებული არაა" -#: utils/cache/relcache.c:3805 +#: utils/cache/relcache.c:3813 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "ახალი relfilenumber-ის მოულოდნელი მოთხოვნა ბინარული განახლების რეჟიმში" -#: utils/cache/relcache.c:6533 +#: utils/cache/relcache.c:6630 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "" -#: utils/cache/relcache.c:6535 +#: utils/cache/relcache.c:6632 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "მაინც ვაგრძელებ, მაგრამ რაღაც ცუდი ხდება." -#: utils/cache/relcache.c:6865 +#: utils/cache/relcache.c:6962 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "კეშის ფაილის \"%s\" წაშლის შეცდომა: %m" @@ -27033,7 +28087,7 @@ msgstr "ურთიერთობის მიბმის ფაილი \"% msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "ურთიერთობის მიბმის ფაილი \"%s\" არასწორ საკონტროლო ჯამს შეიცავს" -#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 +#: utils/cache/typcache.c:1901 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "ჩანაწერის ტიპი რეგისტრირებული არ არის" @@ -27048,193 +28102,185 @@ msgstr "" msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "ხაფანგი: გამოთხოვის შეცდომა (\"%s\"), ფაილი: \"%s\", ხაზი: %d, PID: %d\n" -#: utils/error/elog.c:415 +#: utils/error/elog.c:412 #, c-format msgid "error occurred before error message processing is available\n" msgstr "აღმოჩენილია შეცდომა მანამდე, სანამ შეცდომის შეტყობინებების დამუშავება ხელმისაწვდომი გახდებოდა\n" -#: utils/error/elog.c:2101 +#: utils/error/elog.c:2159 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "" -#: utils/error/elog.c:2114 +#: utils/error/elog.c:2172 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "" -#: utils/error/elog.c:2150 +#: utils/error/elog.c:2208 #, c-format -msgid "Invalid character" -msgstr "არასწორი სიმბოლო" +msgid "Invalid character." +msgstr "არასწორი სიმბოლო." -#: utils/error/elog.c:2856 utils/error/elog.c:2883 utils/error/elog.c:2899 +#: utils/error/elog.c:2918 utils/error/elog.c:2945 utils/error/elog.c:2961 msgid "[unknown]" msgstr "[უცნობი]" -#: utils/error/elog.c:3169 utils/error/elog.c:3493 utils/error/elog.c:3600 +#: utils/error/elog.c:3263 utils/error/elog.c:3587 utils/error/elog.c:3694 msgid "missing error text" msgstr "შეცდომის ტექსტი ხელმიუწვდომელია" -#: utils/error/elog.c:3172 utils/error/elog.c:3175 +#: utils/error/elog.c:3266 utils/error/elog.c:3269 #, c-format msgid " at character %d" msgstr " სიმბოლოსთან %d" -#: utils/error/elog.c:3185 utils/error/elog.c:3192 +#: utils/error/elog.c:3279 utils/error/elog.c:3286 msgid "DETAIL: " msgstr "დეტალები: " -#: utils/error/elog.c:3199 +#: utils/error/elog.c:3293 msgid "HINT: " msgstr "მინიშნება: " -#: utils/error/elog.c:3206 +#: utils/error/elog.c:3300 msgid "QUERY: " msgstr "მოთხოვნა: " -#: utils/error/elog.c:3213 +#: utils/error/elog.c:3307 msgid "CONTEXT: " msgstr "კონტექსტი: " -#: utils/error/elog.c:3223 +#: utils/error/elog.c:3317 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "მდებარეობა: %s, %s:%d\n" -#: utils/error/elog.c:3230 +#: utils/error/elog.c:3324 #, c-format msgid "LOCATION: %s:%d\n" msgstr "მდებარეობა: %s:%d\n" -#: utils/error/elog.c:3237 +#: utils/error/elog.c:3331 msgid "BACKTRACE: " msgstr "სტეკი: " -#: utils/error/elog.c:3249 +#: utils/error/elog.c:3343 msgid "STATEMENT: " msgstr "ოპერატორი: " -#: utils/error/elog.c:3645 +#: utils/error/elog.c:3739 msgid "DEBUG" msgstr "გამართვა" -#: utils/error/elog.c:3649 +#: utils/error/elog.c:3743 msgid "LOG" msgstr "ჟურნალი" -#: utils/error/elog.c:3652 +#: utils/error/elog.c:3746 msgid "INFO" msgstr "ინფორმაცია" -#: utils/error/elog.c:3655 +#: utils/error/elog.c:3749 msgid "NOTICE" msgstr "გაფრთხილება" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3753 msgid "WARNING" msgstr "გაფრთხილება" -#: utils/error/elog.c:3662 +#: utils/error/elog.c:3756 msgid "ERROR" msgstr "შეცდომა" -#: utils/error/elog.c:3665 +#: utils/error/elog.c:3759 msgid "FATAL" msgstr "ფატალური" -#: utils/error/elog.c:3668 +#: utils/error/elog.c:3762 msgid "PANIC" msgstr "პანიკა" -#: utils/fmgr/dfmgr.c:128 +#: utils/fmgr/dfmgr.c:118 #, c-format msgid "could not find function \"%s\" in file \"%s\"" msgstr "ფაილში \"%1$s\" ფუნქცია \"%2$s\" არ არსებობს" -#: utils/fmgr/dfmgr.c:247 +#: utils/fmgr/dfmgr.c:237 #, c-format msgid "could not load library \"%s\": %s" msgstr "ბიბლიოთეკის (\"%s\") ჩატვირთვის შეცდომა: %s" -#: utils/fmgr/dfmgr.c:279 +#: utils/fmgr/dfmgr.c:274 #, c-format msgid "incompatible library \"%s\": missing magic block" msgstr "არათავსებადი ბიბლიოთეკა \"%s\": მაგიური ბლოკი აღმოჩენილი არაა" -#: utils/fmgr/dfmgr.c:281 +#: utils/fmgr/dfmgr.c:276 #, c-format msgid "Extension libraries are required to use the PG_MODULE_MAGIC macro." msgstr "გაფართოების ბიბლიოთეკების მიერ PG_MODULE_MAGIC მაკროს გამოყენება აუცილებელია." -#: utils/fmgr/dfmgr.c:327 +#: utils/fmgr/dfmgr.c:322 #, c-format msgid "incompatible library \"%s\": version mismatch" msgstr "არათავსებადი ბიბლიოთეკა \"%s\": შეუსაბამო ვერსია" -#: utils/fmgr/dfmgr.c:329 +#: utils/fmgr/dfmgr.c:324 #, c-format msgid "Server is version %d, library is version %s." msgstr "სერვერის ვერსიაა %d. ბიბლიოთეკის კი %s." -#: utils/fmgr/dfmgr.c:341 +#: utils/fmgr/dfmgr.c:336 #, c-format msgid "incompatible library \"%s\": ABI mismatch" msgstr "არათავსებადი ბიბლიოთეკა \"%s\": ABI არ ემთხვევა" -#: utils/fmgr/dfmgr.c:343 +#: utils/fmgr/dfmgr.c:338 #, c-format msgid "Server has ABI \"%s\", library has \"%s\"." msgstr "სერვერის ABI \"%s\"-ა, ბიბლიოთეკის კი \"%s\"." -#: utils/fmgr/dfmgr.c:361 -#, c-format -msgid "Server has FUNC_MAX_ARGS = %d, library has %d." -msgstr "სერვერის FUNC_MAX_ARGS = %d, ბიბლიოთეკას კი %d." - -#: utils/fmgr/dfmgr.c:370 +#. translator: %s is a variable name and %d its values +#: utils/fmgr/dfmgr.c:357 utils/fmgr/dfmgr.c:367 utils/fmgr/dfmgr.c:377 #, c-format -msgid "Server has INDEX_MAX_KEYS = %d, library has %d." -msgstr "სერვერის INDEX_MAX_KEYS = %d, ბიბლიოთეკას კი %d." +msgid "Server has %s = %d, library has %d." +msgstr "სერვერს აქვს %s = %d, ბიბლიოთეკას აქვს %d." -#: utils/fmgr/dfmgr.c:379 +#. translator: %s is a variable name and %d its values +#: utils/fmgr/dfmgr.c:387 #, c-format -msgid "Server has NAMEDATALEN = %d, library has %d." -msgstr "სერვერის NAMEDATALEN = %d, ბიბლიოთეკას კი %d." +msgid "Server has %s = %s, library has %s." +msgstr "სერვერს აქვს %s = %s, ბიბლიოთეკას აქვს %s." -#: utils/fmgr/dfmgr.c:388 -#, c-format -msgid "Server has FLOAT8PASSBYVAL = %s, library has %s." -msgstr "სერვერის FLOAT8PASSBYVAL = %s, ბიბლიოთეკას კი %s." - -#: utils/fmgr/dfmgr.c:395 +#: utils/fmgr/dfmgr.c:394 msgid "Magic block has unexpected length or padding difference." msgstr "" -#: utils/fmgr/dfmgr.c:398 +#: utils/fmgr/dfmgr.c:397 #, c-format msgid "incompatible library \"%s\": magic block mismatch" msgstr "არათავსებადი ბიბლიოთეკა \"%s\": მაგიური ბლოკი არ ემთხვევა" -#: utils/fmgr/dfmgr.c:475 +#: utils/fmgr/dfmgr.c:520 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "წვდომა ბიბლიოთეკასთან \"%s\"" -#: utils/fmgr/dfmgr.c:501 +#: utils/fmgr/dfmgr.c:547 #, c-format -msgid "invalid macro name in dynamic library path: %s" -msgstr "მაკროს არასწორი სახელი დინამიკური ბიბლიოთეკის ბილიკში: %s" +msgid "invalid macro name in path: %s" +msgstr "მაკროს არასწორი სახელი ბილიკში: %s" -#: utils/fmgr/dfmgr.c:541 +#: utils/fmgr/dfmgr.c:599 #, c-format -msgid "zero-length component in parameter \"dynamic_library_path\"" -msgstr "ნულოვანი სიგრძის კომპონენტი პარამეტრში \"dynamic_library_path\"" +msgid "zero-length component in parameter \"%s\"" +msgstr "ნულოვანი სიგრძის კომპონენტი პარამეტრში \"%s\"" -#: utils/fmgr/dfmgr.c:560 +#: utils/fmgr/dfmgr.c:618 #, c-format -msgid "component in parameter \"dynamic_library_path\" is not an absolute path" -msgstr "პარამეტრში \"dynamic_library_path\" კომპონენტი აბსოლუტური ბილიკი არაა" +msgid "component in parameter \"%s\" is not an absolute path" +msgstr "პარამეტრში \"%s\" კომპონენტი აბსოლუტური ბილიკი არაა" #: utils/fmgr/fmgr.c:236 #, c-format @@ -27281,350 +28327,432 @@ msgstr "" msgid "number of aliases does not match number of columns" msgstr "მეტსახელების რიცხვი სვეტების რაოდენობას არ ემთხვევა" -#: utils/fmgr/funcapi.c:1955 -#, c-format -msgid "no column alias was provided" -msgstr "სვეტის მეტსახელი მითითებული არაა" +#: utils/fmgr/funcapi.c:1955 +#, c-format +msgid "no column alias was provided" +msgstr "სვეტის მეტსახელი მითითებული არაა" + +#: utils/fmgr/funcapi.c:1979 +#, c-format +msgid "could not determine row description for function returning record" +msgstr "ჩანაწერის დამბრუნებელი ფუნქციისთვის მწკრივის აღწერის დადგენა შეუძლებელია" + +#: utils/init/miscinit.c:265 +msgid "unknown process type" +msgstr "უცნობი პროცესის ტიპი" + +#: utils/init/miscinit.c:270 +msgid "not initialized" +msgstr "ინიციალიზებული არაა" + +#: utils/init/miscinit.c:273 +msgid "archiver" +msgstr "არქივატორი" + +#: utils/init/miscinit.c:276 +msgid "autovacuum launcher" +msgstr "ავტომომტვერსასრუტების გამშვები" + +#: utils/init/miscinit.c:279 +msgid "autovacuum worker" +msgstr "ავტომომტვერსასრუტების დამხმარე პროცესი" + +#: utils/init/miscinit.c:282 +msgid "client backend" +msgstr "კლიენტის უკანაბოლო" + +#: utils/init/miscinit.c:285 +msgid "dead-end client backend" +msgstr "ჩიხის კლიენტის უკანაბოლო" + +#: utils/init/miscinit.c:288 +msgid "background worker" +msgstr "ფონური დამხმარე პროცესი" + +#: utils/init/miscinit.c:291 +msgid "background writer" +msgstr "ფონური ჩამწერი" + +#: utils/init/miscinit.c:294 +msgid "checkpointer" +msgstr "საკონტროლო წერტილი" + +#: utils/init/miscinit.c:300 +msgid "logger" +msgstr "ჟურნალის პროცესი" + +#: utils/init/miscinit.c:303 +msgid "slotsync worker" +msgstr "სლოტის სინქრონიზაციის დამხმარე პროცესი" + +#: utils/init/miscinit.c:306 +msgid "standalone backend" +msgstr "დამოუკიდებელი უკანაბოლო" + +#: utils/init/miscinit.c:309 +msgid "startup" +msgstr "გაშვება" + +#: utils/init/miscinit.c:312 +msgid "walreceiver" +msgstr "walreceiver" -#: utils/fmgr/funcapi.c:1979 -#, c-format -msgid "could not determine row description for function returning record" -msgstr "ჩანაწერის დამბრუნებელი ფუნქციისთვის მწკრივის აღწერის დადგენა შეუძლებელია" +#: utils/init/miscinit.c:315 +msgid "walsender" +msgstr "walsender" + +#: utils/init/miscinit.c:318 +msgid "walsummarizer" +msgstr "walsummarizer" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:321 +msgid "walwriter" +msgstr "walwriter" + +#: utils/init/miscinit.c:358 #, c-format msgid "data directory \"%s\" does not exist" msgstr "მონაცემების საქაღალდე არ არსებობს: \"%s\"" -#: utils/init/miscinit.c:357 +#: utils/init/miscinit.c:363 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "საქაღალდის წვდომების წაკითხვა შეუძლებელია \"%s\": %m" -#: utils/init/miscinit.c:365 +#: utils/init/miscinit.c:371 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "მონაცემების მითითებული საქაღალდე \"%s\" საქაღალდე არაა" -#: utils/init/miscinit.c:381 +#: utils/init/miscinit.c:387 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "მონაცემების მითითებული საქაღალდის (\"%s\") მფლობელი არასწორია" -#: utils/init/miscinit.c:383 +#: utils/init/miscinit.c:389 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "სერვერი იმ მომხმარებლით უნდა გაეშვას, რომელიც მონაცემების საქაღალდის მფლობელია." -#: utils/init/miscinit.c:401 +#: utils/init/miscinit.c:407 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "მონაცემების საქაღალდის \"%s\" წვდომები არასწორია" -#: utils/init/miscinit.c:403 +#: utils/init/miscinit.c:409 #, 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:461 +#: utils/init/miscinit.c:467 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "საქაღალდის %s-ზე შეცვლის შეცდომა: %m" -#: utils/init/miscinit.c:697 utils/misc/guc.c:3641 +#: utils/init/miscinit.c:725 utils/misc/guc.c:3647 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" -#: utils/init/miscinit.c:770 +#: utils/init/miscinit.c:812 #, c-format msgid "role with OID %u does not exist" msgstr "როლი OID-ით %u არ არსებობს" -#: utils/init/miscinit.c:800 +#: utils/init/miscinit.c:858 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "როლს შესვლის უფლება არ აქვს: %s" -#: utils/init/miscinit.c:818 +#: utils/init/miscinit.c:879 #, c-format msgid "too many connections for role \"%s\"" msgstr "მეტისმეტად ბევრი კავშირი როლისთვის \"%s\"" -#: utils/init/miscinit.c:991 +#: utils/init/miscinit.c:1050 #, c-format msgid "invalid role OID: %u" msgstr "როლის არასწორი OID: %u" -#: utils/init/miscinit.c:1138 +#: utils/init/miscinit.c:1197 #, c-format msgid "database system is shut down" msgstr "მონაცემთა ბაზის სისტემა გათიშულია" -#: utils/init/miscinit.c:1225 +#: utils/init/miscinit.c:1284 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "ბლოკის ფაილის (%s) შექმნის შეცდომა: %m" -#: utils/init/miscinit.c:1239 +#: utils/init/miscinit.c:1298 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "ბლოკის ფაილის (%s) გახსნის შეცდომა: %m" -#: utils/init/miscinit.c:1246 +#: utils/init/miscinit.c:1305 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "ბლოკის ფაილის (%s) წაკითხვის შეცდომა: %m" -#: utils/init/miscinit.c:1255 +#: utils/init/miscinit.c:1314 #, c-format msgid "lock file \"%s\" is empty" msgstr "ბლოკის ფაილი (\"%s\") ცარიელია" -#: utils/init/miscinit.c:1256 +#: utils/init/miscinit.c:1315 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "" -#: utils/init/miscinit.c:1300 +#: utils/init/miscinit.c:1359 #, c-format msgid "lock file \"%s\" already exists" msgstr "ბლოკის ფაილი (\"%s\") უკვე არსებობს" -#: utils/init/miscinit.c:1304 +#: utils/init/miscinit.c:1363 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "არის სხვა postgres (PID %d) გაშვებული მონაცემების საქაღალდეში \"%s\"?" -#: utils/init/miscinit.c:1306 +#: utils/init/miscinit.c:1365 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "არის სხვა postmaster (PID %d) გაშვებული მონაცემების საქაღლდეში \"%s\"?" -#: utils/init/miscinit.c:1309 +#: utils/init/miscinit.c:1368 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "იყენებს სხვა postgres (PID %d) სოკეტის ფაილს \"%s\"?" -#: utils/init/miscinit.c:1311 +#: utils/init/miscinit.c:1370 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "იყენებს სხვა postmaster (PID %d) სოკეტის ფაილს \"%s\"?" -#: utils/init/miscinit.c:1362 +#: utils/init/miscinit.c:1421 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "ბლოკის ძველი ფაილის წაშლის შეცდომა \"%s\": %m" -#: utils/init/miscinit.c:1364 +#: utils/init/miscinit.c:1423 #, 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 "" -#: utils/init/miscinit.c:1401 utils/init/miscinit.c:1415 utils/init/miscinit.c:1426 +#: utils/init/miscinit.c:1460 utils/init/miscinit.c:1474 utils/init/miscinit.c:1485 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "ბლოკის ფაილში (%s) ჩაწერის შეცდომა: %m" -#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1679 utils/misc/guc.c:5715 +#: utils/init/miscinit.c:1596 utils/init/miscinit.c:1738 utils/misc/guc.c:5763 #, c-format msgid "could not read from file \"%s\": %m" msgstr "ფაილიდან (\"%s\") წაკითხვის შეცდომა: %m" -#: utils/init/miscinit.c:1667 +#: utils/init/miscinit.c:1726 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "შეცდომა ფაილის (\"%s\") გახსნისას: %m; მაინც ვაგრძელებ" -#: utils/init/miscinit.c:1692 +#: utils/init/miscinit.c:1751 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "ბლოკის ფაილი \"%s\" შეიცავს არასწორ PID-ს: %ld-ს %ld-ის მაგიერ" -#: utils/init/miscinit.c:1731 utils/init/miscinit.c:1747 +#: utils/init/miscinit.c:1790 utils/init/miscinit.c:1806 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "%s მონაცემების არასწორი საქაღალდეა" -#: utils/init/miscinit.c:1733 +#: utils/init/miscinit.c:1792 #, c-format msgid "File \"%s\" is missing." msgstr "ფაილი \"%s\" აკლია." -#: utils/init/miscinit.c:1749 +#: utils/init/miscinit.c:1808 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "ფაილი \"%s\" სწორ მონაცემებს არ შეიცავს." -#: utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1810 #, c-format msgid "You might need to initdb." msgstr "როგორც ჩანს, initdb გჭირდებათ." -#: utils/init/miscinit.c:1759 +#: utils/init/miscinit.c:1818 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "მონაცემის საქაღალდე ინიციალიზებული იყო PostgreSQL-ის %s ვერსიით, რომელიც ამ ვერსიასთან, %s, თავსებადი არაა." -#: utils/init/postinit.c:259 +#: utils/init/postinit.c:269 #, c-format msgid "replication connection authorized: user=%s" msgstr "რეპლიკაციის შეერთება ავტორიზებულია: მომხმარებელი=%s" -#: utils/init/postinit.c:262 +#: utils/init/postinit.c:272 #, c-format msgid "connection authorized: user=%s" msgstr "შეერთება ავტორიზებულია: მომხმარებელი=%s" -#: utils/init/postinit.c:265 +#: utils/init/postinit.c:275 #, c-format msgid " database=%s" msgstr " ბაზა=%s" -#: utils/init/postinit.c:268 +#: utils/init/postinit.c:278 #, c-format msgid " application_name=%s" msgstr " აპლიკაციის_სახელი=%s" -#: utils/init/postinit.c:273 +#: utils/init/postinit.c:283 #, c-format msgid " SSL enabled (protocol=%s, cipher=%s, bits=%d)" msgstr " SSL ჩართულია (პროტოკოლი=%s, შიფრი=%s, ბიტები=%d)" -#: utils/init/postinit.c:285 +#: utils/init/postinit.c:295 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s, principal=%s)" msgstr " GSS (ავთენტიფიცირებული=%s, დაშიფრული=%s, delegated_credentials=%s, პრინციპალი=%s)" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:296 utils/init/postinit.c:297 utils/init/postinit.c:298 utils/init/postinit.c:303 utils/init/postinit.c:304 utils/init/postinit.c:305 msgid "no" msgstr "არა" -#: utils/init/postinit.c:286 utils/init/postinit.c:287 utils/init/postinit.c:288 utils/init/postinit.c:293 utils/init/postinit.c:294 utils/init/postinit.c:295 +#: utils/init/postinit.c:296 utils/init/postinit.c:297 utils/init/postinit.c:298 utils/init/postinit.c:303 utils/init/postinit.c:304 utils/init/postinit.c:305 msgid "yes" msgstr "დიახ" -#: utils/init/postinit.c:292 +#: utils/init/postinit.c:302 #, c-format msgid " GSS (authenticated=%s, encrypted=%s, delegated_credentials=%s)" msgstr " GSS (ავთენტიფიცირებული=%s, დაშიფრული=%s, delegated_credentials=%s)" -#: utils/init/postinit.c:333 +#: utils/init/postinit.c:342 #, c-format msgid "database \"%s\" has disappeared from pg_database" msgstr "ბაზა \"%s\" pg_database-დან გაქრა" -#: utils/init/postinit.c:335 +#: utils/init/postinit.c:344 #, c-format msgid "Database OID %u now seems to belong to \"%s\"." msgstr "ბაზის OID %u, როგორც ჩანს, ახლა \"%s\"-ს ეკუთვნის." -#: utils/init/postinit.c:355 +#: utils/init/postinit.c:364 #, c-format msgid "database \"%s\" is not currently accepting connections" msgstr "ბაზა \"%s\" ამჟამად მიერთებებს არ იღებს" -#: utils/init/postinit.c:368 +#: utils/init/postinit.c:377 #, c-format msgid "permission denied for database \"%s\"" msgstr "წვდომა აკრძალულია ბაზაზე: \"%s\"" -#: utils/init/postinit.c:369 +#: utils/init/postinit.c:378 #, c-format msgid "User does not have CONNECT privilege." msgstr "მომხმარებელს CONNECT პრივილეგია არ გააჩნია." -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:398 #, c-format msgid "too many connections for database \"%s\"" msgstr "ძალიან ბევრი კავშირი ბაზისთვის \"%s\"" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:422 utils/init/postinit.c:429 #, c-format msgid "database locale is incompatible with operating system" msgstr "ბაზის ენა ოპერაციულ სისტემასთან შეუთავსებელია" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:423 #, c-format msgid "The database was initialized with LC_COLLATE \"%s\", which is not recognized by setlocale()." msgstr "ბაზა ინიციალიზებული იყო LC_COLLATE \"%s\"-ით, რომელსაც setlocale() ვერ ცნობს." -#: utils/init/postinit.c:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:425 utils/init/postinit.c:432 #, c-format msgid "Recreate the database with another locale or install the missing locale." msgstr "თავიდან შექმენით ბაზა სხვა ლოკალით ან დააყენეთ ლოკალი, რომელიც ვერ ვიპოვე." -#: utils/init/postinit.c:418 +#: utils/init/postinit.c:430 #, c-format msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "ბაზა ინიციალიზებული იყო LC_CTYPE \"%s\"-ით, რომელსაც setlocale() ვერ ცნობს." -#: utils/init/postinit.c:491 +#: utils/init/postinit.c:471 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "ბაზის \"%s\" კოლაციის ვერსია არ ემთხვევა" -#: utils/init/postinit.c:493 +#: utils/init/postinit.c:473 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." msgstr "" -#: utils/init/postinit.c:496 +#: utils/init/postinit.c:476 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "" -#: utils/init/postinit.c:902 +#: utils/init/postinit.c:566 +#, c-format +msgid "too many server processes configured" +msgstr "მორგებულია მეტისმეტად ბევრი სერვერის პროცესი" + +#: utils/init/postinit.c:567 +#, c-format +msgid "\"max_connections\" (%d) plus \"autovacuum_worker_slots\" (%d) plus \"max_worker_processes\" (%d) plus \"max_wal_senders\" (%d) must be less than %d." +msgstr "" + +#: utils/init/postinit.c:889 #, c-format msgid "no roles are defined in this database system" msgstr "ამ მონაცემთა ბაზაში როლები აღწერილი არაა" -#: utils/init/postinit.c:903 +#: utils/init/postinit.c:890 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "მაშინვე უნდა გაუშვათ CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:940 +#: utils/init/postinit.c:935 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "ორობითი განახლებისას მისაერთებლად ზემომხმარებელი უნდა ბრძანდებოდეთ" -#: utils/init/postinit.c:961 +#: utils/init/postinit.c:955 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "დარჩენილი მიერთების სლოტები დაცულია %s ატრიბუტის მქონე როლებისთვის" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:961 #, c-format msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" msgstr "დარჩენილი მიერთების სლოტები დაცულია %s როლის პრივილეგიების მქონე როლებისთვის" -#: utils/init/postinit.c:979 +#: utils/init/postinit.c:973 #, c-format msgid "permission denied to start WAL sender" msgstr "'WAL' გამგზავნის გაშვების წვდომა აკრძალულია" -#: utils/init/postinit.c:980 +#: utils/init/postinit.c:974 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "" -#: utils/init/postinit.c:1098 +#: utils/init/postinit.c:1092 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "როგორც ჩანს, ახლახანს წაიშალა ან სახელი გადაერქვა." -#: utils/init/postinit.c:1102 +#: utils/init/postinit.c:1096 #, c-format msgid "database %u does not exist" msgstr "ბაზა არ არსებობს: %u" -#: utils/init/postinit.c:1111 +#: utils/init/postinit.c:1105 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "არასწორ მონაცემთა ბაზასთან \"%s\" დაკავშირება ვერ მოხერხდა" -#: utils/init/postinit.c:1172 +#: utils/init/postinit.c:1166 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "ბაზის ქვესაქაღალდე არ არსებობს: %s." @@ -27639,12 +28767,12 @@ msgstr "როლს \"%s\" \"%s\"-ზე SET ROLE არ შეუძლია" msgid "invalid encoding number: %d" msgstr "კოდირების არასწორი ნომერი: %d" -#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:129 utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:165 +#: utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:132 utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.c:168 #, c-format msgid "unexpected encoding ID %d for ISO 8859 character sets" msgstr "მოულოდნელი დაშიფვრის ID %d 'ISO 8859' სიმბოლოების ნაკრებებისთვის" -#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:110 utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:146 +#: utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:113 utils/mb/conversion_procs/utf8_and_win/utf8_and_win.c:149 #, c-format msgid "unexpected encoding ID %d for WIN character sets" msgstr "მოულოდნელი დაშიფვრის ID %d WIN სიმბოლოების ნაკრებებისთვის" @@ -27704,92 +28832,92 @@ msgstr "კონფიგურაციის საქაღალდის msgid "could not open configuration directory \"%s\": %m" msgstr "კონფიგურაციის საქაღალდის (\"%s\") გახსნის შეცდომა: %m" -#: utils/misc/guc.c:122 +#: utils/misc/guc.c:119 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "პარამეტრის სწორი ერთეულებია \"ბ\", \"კბ\", \"მბ\", \"გბ\" და \"ტბ\"." -#: utils/misc/guc.c:159 +#: utils/misc/guc.c:156 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." msgstr "პარამეტრის სწორი ერთეულებია \"მკწმ\", \"მწმ\", \"წმ\", \"წთ\", \"სთ\" და \"დღე\"." -#: utils/misc/guc.c:430 +#: utils/misc/guc.c:428 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "უცნობი კონფიგურაციის პარამეტრი \"%s\" ფაილში \"%s\" ხაზზე %d" -#: utils/misc/guc.c:470 utils/misc/guc.c:3495 utils/misc/guc.c:3739 utils/misc/guc.c:3837 utils/misc/guc.c:3935 utils/misc/guc.c:4059 utils/misc/guc.c:4162 +#: utils/misc/guc.c:468 utils/misc/guc.c:3501 utils/misc/guc.c:3745 utils/misc/guc.c:3843 utils/misc/guc.c:3941 utils/misc/guc.c:4068 utils/misc/guc.c:4209 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "პარამეტრი \"%s\" -ის შეცვლა სერვერის გადატვირთვის გარეშე შეუძლებელია" -#: utils/misc/guc.c:506 +#: utils/misc/guc.c:504 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "პარამეტრი \"%s\" წაიშალა კონფიგურაციის ფაილიდან. დაბრუნდა ნაგულისხმევ მნიშვნელობაზე" -#: utils/misc/guc.c:571 +#: utils/misc/guc.c:569 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "პარამეტრი \"%s\" შეიცვალა \"%s\"-ზე" -#: utils/misc/guc.c:613 +#: utils/misc/guc.c:611 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "კონფიგურაციის ფაილი \"%s\" შეცდომებს შეიცავს" -#: utils/misc/guc.c:618 +#: utils/misc/guc.c:616 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "კონფიგურაციის ფაილი \"%s\" შეცდომებს შეიცავს; გამოყენებული იქნება მხოლოდ სწორი ნაწილი" -#: utils/misc/guc.c:623 +#: utils/misc/guc.c:621 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "კონფიგურაციის ფაილი \"%s\" შეცდომებს შეიცავს; ცვლილებები არ მოხდება" -#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 +#: utils/misc/guc.c:1137 utils/misc/guc.c:1153 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "კონფიგურაციის პარამეტრის არასწორი სახელი: %s" -#: utils/misc/guc.c:1141 +#: utils/misc/guc.c:1139 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." msgstr "მომხმარებლის პარამეტრის სახელები ორი ან მეტი მარტივი, წერტილებით გამოყოფილი იდენტიფიკატორი უნდა იყოს." -#: utils/misc/guc.c:1157 +#: utils/misc/guc.c:1155 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\" დაცული პრეფიქსია." -#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 +#: utils/misc/guc.c:1168 utils/misc/guc.c:1278 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "კონფიგურაციის უცნობი პარამეტრი: \"%s\"" -#: utils/misc/guc.c:1802 +#: utils/misc/guc.c:1800 #, c-format msgid "%s: could not access directory \"%s\": %m\n" msgstr "%s საქაღალდესთან %s წვდომის უფლება არ გაქვთ: %m\n" -#: utils/misc/guc.c:1806 +#: utils/misc/guc.c:1804 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "PostgreSQL-ის მონაცემების საქაღალდის ინიციალიზაციისთვის initdb ან pg_basebackup გაუშვით.\n" -#: utils/misc/guc.c:1830 +#: utils/misc/guc.c:1828 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" "You must specify the --config-file or -D invocation option or set the PGDATA environment variable.\n" msgstr "" -#: utils/misc/guc.c:1853 +#: utils/misc/guc.c:1851 #, c-format msgid "%s: could not access the server configuration file \"%s\": %m\n" msgstr "%s: სერვერის კონფიგურაციის ფაილთან ('%s') წვდომა აკრძალულია: %m\n" -#: utils/misc/guc.c:1881 +#: utils/misc/guc.c:1879 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -27798,139 +28926,144 @@ msgstr "" "%s-მა არ იცის, სად იპოვოს მონაცემთა ბაზის სისტემური მონაცემები.\n" "ამის მითითება \"%s\"-ში \"data_directory\" პარამეტრით შეგიძლიათ, ან -D გაშვების პარამეტრით, ან PGDATA გარემოს ცვლადით.\n" -#: utils/misc/guc.c:1933 +#: utils/misc/guc.c:1931 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" "This can be specified as \"hba_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" msgstr "" -#: utils/misc/guc.c:1964 +#: utils/misc/guc.c:1962 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" "This can be specified as \"ident_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" msgstr "" -#: utils/misc/guc.c:2943 +#: utils/misc/guc.c:2941 msgid "Value exceeds integer range." msgstr "\"lo_write\" -ის არგუმენტიმთელი რიცხვის დასაშვებ საზღვრებს სცდება." -#: utils/misc/guc.c:3185 +#: utils/misc/guc.c:3182 #, c-format msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" msgstr "%d%s%s დაშვებულ დიაპაზონს გარეთაა პარამეტრისთვის \"%s\" (%d%s%s .. %d%s%s)" -#: utils/misc/guc.c:3226 +#: utils/misc/guc.c:3223 #, c-format msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" msgstr "%g%s%s დაშვებულ დიაპაზონს გარეთაა პარამეტრისთვის \"%s\" (%g%s%s .. %g%s%s)" -#: utils/misc/guc.c:3447 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3462 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "პარალელური ოპერაციის დროს პარამეტრების დაყენება შეუძლებელია" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "პარამეტრს \"%s\" ვერ დააყენებთ პარალელური ოპერაციის დროს" -#: utils/misc/guc.c:3472 utils/misc/guc.c:4646 +#: utils/misc/guc.c:3478 utils/misc/guc.c:4693 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "პარამეტრი \"%s\" არ შეიძლება შეიცვალოს" -#: utils/misc/guc.c:3505 +#: utils/misc/guc.c:3511 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "პარამეტრი \"%s\" ახლა არ შეიძლება შეიცვალოს" -#: utils/misc/guc.c:3532 utils/misc/guc.c:3594 utils/misc/guc.c:4621 utils/misc/guc.c:6712 +#: utils/misc/guc.c:3538 utils/misc/guc.c:3600 utils/misc/guc.c:4668 utils/misc/guc.c:6754 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "პარამეტრის (\"%s\") დაყენების წვდომა აკრძალულია" -#: utils/misc/guc.c:3574 +#: utils/misc/guc.c:3580 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "პარამეტრი \"%s\"-ის დაყენება კავშირის დამყარების შემდეგ შეუძლებელია" -#: utils/misc/guc.c:3633 +#: utils/misc/guc.c:3639 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "უსაფრთხოების აღმწერ ფუნქციაში პარამეტრ \"%s\"-ს ვერ გამოიყენებთ" -#: utils/misc/guc.c:3654 +#: utils/misc/guc.c:3660 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "პარამეტრის საწყის მნიშვნელობაზე დაბრუნების შეცდომა: \"%s\"" -#: utils/misc/guc.c:3661 +#: utils/misc/guc.c:3667 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "პარამეტრი \"%s\"-ის ფუნქციებში ლოკალურად დაყენება შეუძლებელია" -#: utils/misc/guc.c:4320 utils/misc/guc.c:4368 utils/misc/guc.c:5400 +#: utils/misc/guc.c:4367 utils/misc/guc.c:4415 utils/misc/guc.c:5448 #, c-format msgid "permission denied to examine \"%s\"" msgstr "\"%s\"-ის მოსინჯვის წვდომა აკრძალულია" -#: utils/misc/guc.c:4321 utils/misc/guc.c:4369 utils/misc/guc.c:5401 +#: utils/misc/guc.c:4368 utils/misc/guc.c:4416 utils/misc/guc.c:5449 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "ამ პარამეტრის შემოწმება მხოლოდ \"%s\" პრივილეგიის მქონე როლებს შეუძლიათ." -#: utils/misc/guc.c:4579 +#: utils/misc/guc.c:4626 #, c-format msgid "ALTER SYSTEM is not allowed in this environment" msgstr "ამ გარემოში ALTER SYSTEM დაშვებული არაა" -#: utils/misc/guc.c:4611 +#: utils/misc/guc.c:4658 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "\"ALTER SYSTEM RESET ALL\"-ის შესრულების წვდომა აკრძალულია" -#: utils/misc/guc.c:4690 +#: utils/misc/guc.c:4737 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "პარამეტრის მნიშვნელობა ALTER SYSTEM-სთვის არ შეიძლება, ახალი ხაზის სიმბოლოს შეიცავდეს" -#: utils/misc/guc.c:4735 +#: utils/misc/guc.c:4782 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "ფაილის დშემცველობის ამუშავების შეცდომა \"%s\"" -#: utils/misc/guc.c:4917 +#: utils/misc/guc.c:4965 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "პარამეტრის თავიდან აღწერის მცდელობა: \"%s\"" -#: utils/misc/guc.c:5256 +#: utils/misc/guc.c:5304 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "კონფიგურაციის პარამეტრის არასწორი სახელი: \"%s\". წაიშლება" -#: utils/misc/guc.c:5258 +#: utils/misc/guc.c:5306 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" ახლა დაცული პრეფიქსია." -#: utils/misc/guc.c:6135 +#: utils/misc/guc.c:6177 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "პარამეტრის \"%s\" \"%s\"-ზე დაყენებისას" -#: utils/misc/guc.c:6304 +#: utils/misc/guc.c:6346 #, c-format msgid "parameter \"%s\" could not be set" msgstr "პარამეტრის დაყენების შეცდომა: \"%s\"" -#: utils/misc/guc.c:6394 +#: utils/misc/guc.c:6436 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "პარამეტრის მნიშვნელობის დამუშავების შეცდომა: %s" -#: utils/misc/guc.c:6844 +#: utils/misc/guc.c:6886 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "არასწორი მნიშვნელობა პარამეტრისთვის \"%s\": %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "პარალელური ოპერაციის დროს პარამეტრების დაყენება შეუძლებელია" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -27946,2054 +29079,2262 @@ msgstr "SET %s მხოლოდ ერთ არგუმენტს იღ msgid "SET requires parameter name" msgstr "SET მოითხოვს პარამეტრის სახელს" -#: utils/misc/guc_tables.c:675 +#: utils/misc/guc_tables.c:692 msgid "Ungrouped" msgstr "დაჯგუფება მოხსნილია" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:693 msgid "File Locations" msgstr "ფაილის მდებარეობები" -#: utils/misc/guc_tables.c:677 +#: utils/misc/guc_tables.c:694 msgid "Connections and Authentication / Connection Settings" msgstr "დაკავშირება და ავთენტიკაცია / შეერთების პარამეტრები" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:695 msgid "Connections and Authentication / TCP Settings" msgstr "დაკავშირება და ავთენტიკაცია / TCP-ის პარამეტრები" -#: utils/misc/guc_tables.c:679 +#: utils/misc/guc_tables.c:696 msgid "Connections and Authentication / Authentication" msgstr "დაკავშირება და ავთენტიკაცია / ავთენტიკაცია" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:697 msgid "Connections and Authentication / SSL" msgstr "დაკავშირება და ავთენტიკაცია / SSL" -#: utils/misc/guc_tables.c:681 +#: utils/misc/guc_tables.c:698 msgid "Resource Usage / Memory" msgstr "რესურსების გამოყენება / მეხსიერება" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:699 msgid "Resource Usage / Disk" msgstr "რესურსების გამოყენება / დისკი" -#: utils/misc/guc_tables.c:683 +#: utils/misc/guc_tables.c:700 msgid "Resource Usage / Kernel Resources" msgstr "რესურსების გამოყენება / ბირთვის რესურსები" -#: utils/misc/guc_tables.c:684 -msgid "Resource Usage / Cost-Based Vacuum Delay" -msgstr "რესურსების გამოყენება / ფასზე-დამოკიდებული დამტვერსასრუტების დაყოვნება" - -#: utils/misc/guc_tables.c:685 +#: utils/misc/guc_tables.c:701 msgid "Resource Usage / Background Writer" msgstr "რესურსების გამოყენება / ფონური ჩამწერი" -#: utils/misc/guc_tables.c:686 -msgid "Resource Usage / Asynchronous Behavior" -msgstr "რესურსების გამოყენება / ასინქრონული ქცევა" +#: utils/misc/guc_tables.c:702 +msgid "Resource Usage / I/O" +msgstr "რესურსების გამოყენება / შეტ/გამოტ" + +#: utils/misc/guc_tables.c:703 +msgid "Resource Usage / Worker Processes" +msgstr "რესურსების გამოყენება / დამხმარე პროცესის რესურსები" -#: utils/misc/guc_tables.c:687 +#: utils/misc/guc_tables.c:704 msgid "Write-Ahead Log / Settings" msgstr "წინასწარ-ჩაწერი ჟურნალი / მორგება" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:705 msgid "Write-Ahead Log / Checkpoints" msgstr "წინასწარ-ჩაწერი ჟურნალი / საკონტროლო წერტილები" -#: utils/misc/guc_tables.c:689 +#: utils/misc/guc_tables.c:706 msgid "Write-Ahead Log / Archiving" msgstr "წინასწარ-ჩაწერი ჟურნალი / არქივირება" -#: utils/misc/guc_tables.c:690 +#: utils/misc/guc_tables.c:707 msgid "Write-Ahead Log / Recovery" msgstr "წინასწარ-ჩაწერი ჟურნალი / აღდგენა" -#: utils/misc/guc_tables.c:691 +#: utils/misc/guc_tables.c:708 msgid "Write-Ahead Log / Archive Recovery" msgstr "წინასწარ-ჩაწერი ჟურნალი / არქივის აღდგენა" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:709 msgid "Write-Ahead Log / Recovery Target" msgstr "წინასწარ-ჩაწერი ჟურნალი / სამიზნის აღდგენა" -#: utils/misc/guc_tables.c:693 +#: utils/misc/guc_tables.c:710 msgid "Write-Ahead Log / Summarization" msgstr "წინასწარ-ჩაწერი ჟურნალი / შეჯამება" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:711 msgid "Replication / Sending Servers" msgstr "რეპლიკაცია / სერვერების გაგზავნა" -#: utils/misc/guc_tables.c:695 +#: utils/misc/guc_tables.c:712 msgid "Replication / Primary Server" msgstr "რეპლიკაცია / ძირითადი სერვერი" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:713 msgid "Replication / Standby Servers" msgstr "რეპლიკაცია / უქმე სერვერები" -#: utils/misc/guc_tables.c:697 +#: utils/misc/guc_tables.c:714 msgid "Replication / Subscribers" msgstr "რეპლიკაცია / გამომწერები" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:715 msgid "Query Tuning / Planner Method Configuration" msgstr "მოთხოვნის მორგება / დამგეგმავის მეთოდის კონფიგურაცია" -#: utils/misc/guc_tables.c:699 +#: utils/misc/guc_tables.c:716 msgid "Query Tuning / Planner Cost Constants" msgstr "მოთხოვნის მორგება / დამგეგმავის ფასის შეზღუდვები" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:717 msgid "Query Tuning / Genetic Query Optimizer" msgstr "მოთხოვნის მორგება / მოთხოვნის ზოგადი ოპტიმიზატორი" -#: utils/misc/guc_tables.c:701 +#: utils/misc/guc_tables.c:718 msgid "Query Tuning / Other Planner Options" msgstr "მოთხოვნის მორგება / დამგეგმავის სხვა პარამეტრები" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:719 msgid "Reporting and Logging / Where to Log" msgstr "ანგარიშები და ჟურნალი / სად ჩავწერო ჟურნალი" -#: utils/misc/guc_tables.c:703 +#: utils/misc/guc_tables.c:720 msgid "Reporting and Logging / When to Log" msgstr "ანგარიშები და ჟურნალი / როდის ჩავწერო ჟურნალი" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:721 msgid "Reporting and Logging / What to Log" msgstr "ანგარიშები და ჟურნალი / რა ჩავწერო ჟურნალში" -#: utils/misc/guc_tables.c:705 +#: utils/misc/guc_tables.c:722 msgid "Reporting and Logging / Process Title" msgstr "ანგარიშები და ჟურნალი / პროცესის სათაური" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:723 msgid "Statistics / Monitoring" msgstr "სტატისტიკა / მონიტორინგი" -#: utils/misc/guc_tables.c:707 +#: utils/misc/guc_tables.c:724 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "სტატისტიკა / კუმულაციური მოთხოვნისა და ინდექსის სტატისტიკა" -#: utils/misc/guc_tables.c:708 -msgid "Autovacuum" -msgstr "ავტომომტვერსასრუტება" +#: utils/misc/guc_tables.c:725 +msgid "Vacuuming / Automatic Vacuuming" +msgstr "მომტვერსასრუტება / ავტომატური მომტვერსასრუტება" -#: utils/misc/guc_tables.c:709 +#: utils/misc/guc_tables.c:726 +msgid "Vacuuming / Cost-Based Vacuum Delay" +msgstr "მომტვერსასრუტება / ფასზე-დამოკიდებული მომტვერსასრუტების დაყოვნება" + +#: utils/misc/guc_tables.c:727 +msgid "Vacuuming / Default Behavior" +msgstr "მომტვერსასრუტება / ნაგულისხმევი ქცევა" + +#: utils/misc/guc_tables.c:728 +msgid "Vacuuming / Freezing" +msgstr "მომტვერსასრუტება / გაყინვა" + +#: utils/misc/guc_tables.c:729 msgid "Client Connection Defaults / Statement Behavior" msgstr "კლიენტის შეერთების ნაგულისხმევი პარამეტრები / ბრძანების ქცევა" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:730 msgid "Client Connection Defaults / Locale and Formatting" msgstr "კლიენტის შეერთების ნაგულისხმევი პარამეტრები / ენა და ფორმატირება" -#: utils/misc/guc_tables.c:711 +#: utils/misc/guc_tables.c:731 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "კლიენტის შეერთების ნაგულისხმევი პარამეტრები / გაზიარებული ბიბლიოთეკის წინასწარი ჩატვირთვა" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:732 msgid "Client Connection Defaults / Other Defaults" msgstr "კლიენტის შეერთების ნაგულისხმევი პარამეტრები / სხვა ნაგულისხმევი პარამეტრები" -#: utils/misc/guc_tables.c:713 +#: utils/misc/guc_tables.c:733 msgid "Lock Management" msgstr "ბლოკის მართვა" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:734 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "ვერსიისა და პლატფორმის თავსებადობა / PostgreSQL-ის წინა ვერსიები" -#: utils/misc/guc_tables.c:715 +#: utils/misc/guc_tables.c:735 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "ვერსიისა და პლატფორმის თავსებადობა / სხვა პლატფორმები და კლიენტები" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:736 msgid "Error Handling" msgstr "შეცდომების დამუშავება" -#: utils/misc/guc_tables.c:717 +#: utils/misc/guc_tables.c:737 msgid "Preset Options" msgstr "პრესეტის მორგება" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:738 msgid "Customized Options" msgstr "ხელით მითითებული პარამეტრები" -#: utils/misc/guc_tables.c:719 +#: utils/misc/guc_tables.c:739 msgid "Developer Options" msgstr "პროგრამისტის პარამეტრები" -#: utils/misc/guc_tables.c:774 +#: utils/misc/guc_tables.c:794 msgid "Enables the planner's use of sequential-scan plans." msgstr "დამგეგმავისთვის მიმდევრობითი სკანირების გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:784 +#: utils/misc/guc_tables.c:804 msgid "Enables the planner's use of index-scan plans." msgstr "დამგეგმავისთვის ინდექსის სკანირების გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:794 +#: utils/misc/guc_tables.c:814 msgid "Enables the planner's use of index-only-scan plans." msgstr "დამგეგმავისთვის მხოლოდ ინდექსის სკანირების გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:804 +#: utils/misc/guc_tables.c:824 msgid "Enables the planner's use of bitmap-scan plans." msgstr "დამგეგმავისთვის ბიტური რუკების სკანირების გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:814 +#: utils/misc/guc_tables.c:834 msgid "Enables the planner's use of TID scan plans." msgstr "დამგეგმავისთვის TID-ის სკანირების გეგმების გამოყენების უფლები მიცემა." -#: utils/misc/guc_tables.c:824 +#: utils/misc/guc_tables.c:844 msgid "Enables the planner's use of explicit sort steps." msgstr "დამგეგმავისთვის აშკარა დალაგების ნაბიჯების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:834 +#: utils/misc/guc_tables.c:854 msgid "Enables the planner's use of incremental sort steps." msgstr "დამგეგმავისთვის ინკრემენტული დალაგების ნაბიჯების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:844 +#: utils/misc/guc_tables.c:864 msgid "Enables the planner's use of hashed aggregation plans." msgstr "დამგეგმავისთვის დაჰეშიილი აგრეგაციის გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:854 +#: utils/misc/guc_tables.c:874 msgid "Enables the planner's use of materialization." msgstr "დამგეგმავისთვის მატერიალიზაციის გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:864 +#: utils/misc/guc_tables.c:884 msgid "Enables the planner's use of memoization." msgstr "დამგეგმავისთვის მემოიზაციის გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:874 +#: utils/misc/guc_tables.c:894 msgid "Enables the planner's use of nested-loop join plans." msgstr "დამგეგმავისთვის ერთმანეთში ჩალაგებული მარყუჟი შერწყმის გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:884 +#: utils/misc/guc_tables.c:904 msgid "Enables the planner's use of merge join plans." msgstr "დამგეგმავისთვის შეერთების გეგმების შერწყმის გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:894 +#: utils/misc/guc_tables.c:914 msgid "Enables the planner's use of hash join plans." msgstr "დამგეგმავისთვის ჰეშის შეერთების გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:904 +#: utils/misc/guc_tables.c:924 msgid "Enables the planner's use of gather merge plans." msgstr "დამგეგმავისთვის შერწყმის გეგმების შეგროვების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:914 +#: utils/misc/guc_tables.c:934 msgid "Enables partitionwise join." msgstr "დანაყოფის გათვალისწინებით შეერთების ჩართვა." -#: utils/misc/guc_tables.c:924 +#: utils/misc/guc_tables.c:944 msgid "Enables partitionwise aggregation and grouping." msgstr "დანაყოფის გათვალისწინებით აგრეგაციისა და დაჯგუფებს ჩართვა." -#: utils/misc/guc_tables.c:934 +#: utils/misc/guc_tables.c:954 msgid "Enables the planner's use of parallel append plans." msgstr "დამგეგმავისთვის პარალელური ბოლოში მიწერის გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:944 +#: utils/misc/guc_tables.c:964 msgid "Enables the planner's use of parallel hash plans." msgstr "დამგეგმავისთვის პარალელური ჰეშის გეგმების გამოყენების უფლების მიცემა." -#: utils/misc/guc_tables.c:954 +#: utils/misc/guc_tables.c:974 msgid "Enables plan-time and execution-time partition pruning." msgstr "" -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:975 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "" -#: utils/misc/guc_tables.c:966 +#: utils/misc/guc_tables.c:986 msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." msgstr "" -#: utils/misc/guc_tables.c:969 +#: utils/misc/guc_tables.c:989 msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." msgstr "" -#: utils/misc/guc_tables.c:981 +#: utils/misc/guc_tables.c:1001 msgid "Enables the planner's use of async append plans." msgstr "" -#: utils/misc/guc_tables.c:991 +#: utils/misc/guc_tables.c:1011 +msgid "Enables removal of unique self-joins." +msgstr "უნიკალური თვითშერწყმების წაშლის ჩართვა." + +#: utils/misc/guc_tables.c:1021 msgid "Enables reordering of GROUP BY keys." msgstr "გასაღების (GROUP BY) გადალაგების ჩართვა." -#: utils/misc/guc_tables.c:1001 +#: utils/misc/guc_tables.c:1031 +msgid "Enables reordering of DISTINCT pathkeys." +msgstr "ჩართავს DISTINCT ბილიკის გასაღებების გადალაგებას." + +#: utils/misc/guc_tables.c:1041 msgid "Enables genetic query optimization." msgstr "მოთხოვნების ზოგადი ოპტიმიზაციის ჩართვა." -#: utils/misc/guc_tables.c:1002 +#: utils/misc/guc_tables.c:1042 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "" -#: utils/misc/guc_tables.c:1016 +#: utils/misc/guc_tables.c:1056 msgid "Shows whether the current user is a superuser." msgstr "აჩვენებს, არის მიმდინარე მომხმარებელი ზემომხმარებელი, თუ არა." -#: utils/misc/guc_tables.c:1031 +#: utils/misc/guc_tables.c:1071 msgid "Allows running the ALTER SYSTEM command." -msgstr "" +msgstr "ALTER SYSTEM ბრძანების გაშვების დაშვება." -#: utils/misc/guc_tables.c:1032 +#: utils/misc/guc_tables.c:1072 msgid "Can be set to off for environments where global configuration changes should be made using a different method." msgstr "" -#: utils/misc/guc_tables.c:1042 +#: utils/misc/guc_tables.c:1082 msgid "Enables advertising the server via Bonjour." msgstr "სერვისის Bonjour-ით გამოქვეყნების ჩართვა." -#: utils/misc/guc_tables.c:1051 +#: utils/misc/guc_tables.c:1091 msgid "Collects transaction commit time." msgstr "აგროვებს ტრანზაქციის გადაცემის დროს." -#: utils/misc/guc_tables.c:1060 +#: utils/misc/guc_tables.c:1100 msgid "Enables SSL connections." msgstr "SSL შეერთებების ჩართვა." -#: utils/misc/guc_tables.c:1069 +#: utils/misc/guc_tables.c:1109 msgid "Controls whether \"ssl_passphrase_command\" is called during server reload." msgstr "" -#: utils/misc/guc_tables.c:1078 +#: utils/misc/guc_tables.c:1118 msgid "Give priority to server ciphersuite order." msgstr "" -#: utils/misc/guc_tables.c:1087 +#: utils/misc/guc_tables.c:1127 msgid "Forces synchronization of updates to disk." msgstr "დისკის განახლებების ნაძალადევი სინქრონიზაცია." -#: utils/misc/guc_tables.c:1088 +#: utils/misc/guc_tables.c:1128 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "" -#: utils/misc/guc_tables.c:1099 +#: utils/misc/guc_tables.c:1139 msgid "Continues processing after a checksum failure." msgstr "აგრძელებს დამუშავებას საკონტროლო ჯამის ჩავარდნის შემდეგ." -#: utils/misc/guc_tables.c:1100 +#: utils/misc/guc_tables.c:1140 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "" -#: utils/misc/guc_tables.c:1114 +#: utils/misc/guc_tables.c:1154 msgid "Continues processing past damaged page headers." msgstr "აგრძელებს დამუშავებას დაზიანებული გვერდის თავსართების შემდეგ." -#: utils/misc/guc_tables.c:1115 +#: utils/misc/guc_tables.c:1155 msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting \"zero_damaged_pages\" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." msgstr "" -#: utils/misc/guc_tables.c:1128 +#: utils/misc/guc_tables.c:1168 msgid "Continues recovery after an invalid pages failure." msgstr "აგრძელებს აღდგენას არასწორი გვერდის ჩავარდნების შემდეგ." -#: utils/misc/guc_tables.c:1129 +#: utils/misc/guc_tables.c:1169 msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." msgstr "" -#: utils/misc/guc_tables.c:1147 +#: utils/misc/guc_tables.c:1187 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "" -#: utils/misc/guc_tables.c:1148 +#: utils/misc/guc_tables.c:1188 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." msgstr "" -#: utils/misc/guc_tables.c:1161 +#: utils/misc/guc_tables.c:1201 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." msgstr "" -#: utils/misc/guc_tables.c:1171 +#: utils/misc/guc_tables.c:1211 msgid "Writes zeroes to new WAL files before first use." msgstr "ახალ WAL-ის ფაილებში მათ პირველ გამოყენებამდე ნულიანების ჩაწერა." -#: utils/misc/guc_tables.c:1181 +#: utils/misc/guc_tables.c:1221 msgid "Recycles WAL files by renaming them." msgstr "WAL-ის ფაილების თავიდან გამოყენება მათი სახელის გადარქმევით." -#: utils/misc/guc_tables.c:1191 +#: utils/misc/guc_tables.c:1231 msgid "Logs each checkpoint." msgstr "საკონტროლო წერტილების ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:1200 -msgid "Logs each successful connection." -msgstr "ყოველი წარმატებული შესვლის ჟურნალში ჩაწერა." - -#: utils/misc/guc_tables.c:1209 +#: utils/misc/guc_tables.c:1240 msgid "Logs details of pre-authentication connection handshake." msgstr "ჩაიწერს ავთენტიკაციამდე მიერთების ხელის ჩამორთმევის დეტალებს." -#: utils/misc/guc_tables.c:1219 +#: utils/misc/guc_tables.c:1250 msgid "Logs end of a session, including duration." msgstr "სესიის დასრულების ჟურნალში ჩაწერა, ხანგრძლივობის ჩართვლით." -#: utils/misc/guc_tables.c:1228 +#: utils/misc/guc_tables.c:1259 msgid "Logs each replication command." msgstr "რეპლიკაციის ყოველი ბრძანების ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:1237 +#: utils/misc/guc_tables.c:1268 msgid "Shows whether the running server has assertion checks enabled." msgstr "" -#: utils/misc/guc_tables.c:1248 +#: utils/misc/guc_tables.c:1279 msgid "Terminate session on any error." msgstr "სესიის დასრულება ნებისმიერი შეცდომის შემთხვევაში." -#: utils/misc/guc_tables.c:1257 +#: utils/misc/guc_tables.c:1288 msgid "Reinitialize server after backend crash." msgstr "უკანაბოლოს ავარიის შემდეგ სერვერის თავიდან ინიციალიზაცია." -#: utils/misc/guc_tables.c:1266 +#: utils/misc/guc_tables.c:1297 msgid "Remove temporary files after backend crash." msgstr "უკანაბოლოს ავარიის შემდეგ დროებითი ფაილების წაშლა." -#: utils/misc/guc_tables.c:1276 +#: utils/misc/guc_tables.c:1307 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "უკანაბოლოს ავარიის შემდეგ შვილი პროცესებისთვის SIGQUIT-ის მაგიერ SIGABRT-ის გაგზავნა." -#: utils/misc/guc_tables.c:1286 +#: utils/misc/guc_tables.c:1317 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "გაჭედილი შვილი პროცესებისთვის SIGKILL-ის მაგიერ SIGABRT-ის გაგზავნა." -#: utils/misc/guc_tables.c:1297 +#: utils/misc/guc_tables.c:1328 msgid "Logs the duration of each completed SQL statement." msgstr "თითოეული დასრულებული SQL გამოსახულების ხანგრძლივობის ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:1306 +#: utils/misc/guc_tables.c:1338 +msgid "Set this to force all parse and plan trees to be passed through copyObject(), to facilitate catching errors and omissions in copyObject()." +msgstr "" + +#: utils/misc/guc_tables.c:1355 +msgid "Set this to force all parse and plan trees to be passed through outfuncs.c/readfuncs.c, to facilitate catching errors and omissions in those modules." +msgstr "" + +#: utils/misc/guc_tables.c:1372 +msgid "Set this to force all raw parse trees for DML statements to be scanned by raw_expression_tree_walker(), to facilitate catching errors and omissions in that function." +msgstr "" + +#: utils/misc/guc_tables.c:1390 msgid "Logs each query's parse tree." msgstr "ჟურნალში თითოეული მოთხოვნის დამუშავების ხის ჩაწერა." -#: utils/misc/guc_tables.c:1315 +#: utils/misc/guc_tables.c:1399 msgid "Logs each query's rewritten parse tree." msgstr "ჟურნალში თითოეული მოთხოვნის გადაწერილი დამუშავების ხის ჩაწერა." -#: utils/misc/guc_tables.c:1324 +#: utils/misc/guc_tables.c:1408 msgid "Logs each query's execution plan." msgstr "ჟურნალში თითოეული მოთხოვნის შესრულების გეგმის ჩაწერა." -#: utils/misc/guc_tables.c:1333 +#: utils/misc/guc_tables.c:1417 msgid "Indents parse and plan tree displays." msgstr "" -#: utils/misc/guc_tables.c:1342 +#: utils/misc/guc_tables.c:1426 msgid "Writes parser performance statistics to the server log." msgstr "დამმუშავებლის წარმადობის სტატისტიკას სერვერის ჟურნალში ჩაწერს." -#: utils/misc/guc_tables.c:1351 +#: utils/misc/guc_tables.c:1435 msgid "Writes planner performance statistics to the server log." msgstr "დამგეგმავის წარმადობის სტატისტიკას სერვერის ჟურნალში ჩაწერს." -#: utils/misc/guc_tables.c:1360 +#: utils/misc/guc_tables.c:1444 msgid "Writes executor performance statistics to the server log." msgstr "შემსრულებლის წარმადობის სტატისტიკას სერვერის ჟურნალში ჩაწერს." -#: utils/misc/guc_tables.c:1369 +#: utils/misc/guc_tables.c:1453 msgid "Writes cumulative performance statistics to the server log." msgstr "საერთო წარმადობის სტატისტიკას სერვერის ჟურნალში ჩაწერს." -#: utils/misc/guc_tables.c:1379 +#: utils/misc/guc_tables.c:1463 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "" -#: utils/misc/guc_tables.c:1391 +#: utils/misc/guc_tables.c:1475 msgid "Collects information about executing commands." msgstr "აგროვებს ინფორმაციას ბრძანებების შესრულების შესახებ." -#: utils/misc/guc_tables.c:1392 +#: utils/misc/guc_tables.c:1476 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "" -#: utils/misc/guc_tables.c:1402 +#: utils/misc/guc_tables.c:1486 msgid "Collects statistics on database activity." msgstr "აგროვებს სტატისტიკას ბაზის აქტივობების შესახებ." -#: utils/misc/guc_tables.c:1411 +#: utils/misc/guc_tables.c:1495 +msgid "Collects timing statistics for cost-based vacuum delay." +msgstr "აგროვებს დროის სტატისტიკას ფასზე დამყარებული მომტვერსასრუტების დაყოვნებისთვის." + +#: utils/misc/guc_tables.c:1504 msgid "Collects timing statistics for database I/O activity." msgstr "აგროვებს ბაზის შეყვანა/გამოტანის აქტივობების დროით სტატისტიკას." -#: utils/misc/guc_tables.c:1420 +#: utils/misc/guc_tables.c:1513 msgid "Collects timing statistics for WAL I/O activity." msgstr "აგროვებს WAL-ის შეყვანა/გამოტანის აქტივობების დროით სტატისტიკას." -#: utils/misc/guc_tables.c:1430 +#: utils/misc/guc_tables.c:1523 msgid "Updates the process title to show the active SQL command." msgstr "განახლებს პროცესის სათაურს, რათა მან აქტიური SQL ბრძანება აჩვენოს." -#: utils/misc/guc_tables.c:1431 +#: utils/misc/guc_tables.c:1524 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "" -#: utils/misc/guc_tables.c:1440 +#: utils/misc/guc_tables.c:1533 msgid "Starts the autovacuum subprocess." msgstr "ავტომომტვერსასრუტების ქვეპროცესის გაშვება." -#: utils/misc/guc_tables.c:1450 +#: utils/misc/guc_tables.c:1543 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "LISTEN-ის და NOTIFY-ის გამართვის შეტყობინებების გენერაცია." -#: utils/misc/guc_tables.c:1462 +#: utils/misc/guc_tables.c:1555 msgid "Emits information about lock usage." msgstr "ბლოკის გამოყენების შესახებ ინფორმაციის გამოტანა." -#: utils/misc/guc_tables.c:1472 +#: utils/misc/guc_tables.c:1565 msgid "Emits information about user lock usage." msgstr "მომხმარებლის ბლოკის გამოყენების შესახებ ინფორმაციის გამოტანა." -#: utils/misc/guc_tables.c:1482 +#: utils/misc/guc_tables.c:1575 msgid "Emits information about lightweight lock usage." msgstr "მსუბუქი ბლოკის გამოყენების შესახებ ინფორმაციის გამოტანა." -#: utils/misc/guc_tables.c:1492 +#: utils/misc/guc_tables.c:1585 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "" -#: utils/misc/guc_tables.c:1504 +#: utils/misc/guc_tables.c:1597 msgid "Logs long lock waits." msgstr "ბლოკირების დიდხნიანია ლოდინის ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:1513 +#: utils/misc/guc_tables.c:1606 +msgid "Logs lock failures." +msgstr "ჩაწერს ჟურნალში დაბლოკვის ჩავარდნებს." + +#: utils/misc/guc_tables.c:1615 msgid "Logs standby recovery conflict waits." msgstr "მომლოდინის აღდგენის კონფლიქტის ლოდინების ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:1522 +#: utils/misc/guc_tables.c:1624 msgid "Logs the host name in the connection logs." msgstr "ჟურნალში ჰოსტის სახელის ჩაწერა." -#: utils/misc/guc_tables.c:1523 +#: utils/misc/guc_tables.c:1625 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "" -#: utils/misc/guc_tables.c:1534 +#: utils/misc/guc_tables.c:1636 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "\"expr=NULL\" მიღებული იქნება, როგორც \"expr IS NULL\"." -#: utils/misc/guc_tables.c:1535 +#: utils/misc/guc_tables.c:1637 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "" -#: utils/misc/guc_tables.c:1547 +#: utils/misc/guc_tables.c:1649 msgid "Sets the default read-only status of new transactions." msgstr "ახალი ტრანზაქციების მხოლოდ კითხვადობის სტატუსის ნაგულისხმევად დაყენება." -#: utils/misc/guc_tables.c:1557 +#: utils/misc/guc_tables.c:1659 msgid "Sets the current transaction's read-only status." msgstr "მიმდინარე ტრანზაქციის მხოლოდ-კითხვადობის სტატუსის დაყენება." -#: utils/misc/guc_tables.c:1567 +#: utils/misc/guc_tables.c:1669 msgid "Sets the default deferrable status of new transactions." msgstr "" -#: utils/misc/guc_tables.c:1576 +#: utils/misc/guc_tables.c:1678 msgid "Whether to defer a read-only serializable transaction until it can be executed with no possible serialization failures." msgstr "" -#: utils/misc/guc_tables.c:1586 -msgid "Enable row security." -msgstr "მწკრივების უსაფრთხოების ჩართვა." +#: utils/misc/guc_tables.c:1688 +msgid "Enables row security." +msgstr "ჩართავს მწკრივების უსაფრთხოებას." -#: utils/misc/guc_tables.c:1587 +#: utils/misc/guc_tables.c:1689 msgid "When enabled, row security will be applied to all users." msgstr "თუ ჩართავთ, მწკრივის უსაფრთხოება ყველა მომხმარებელზე გადატარდება." -#: utils/misc/guc_tables.c:1595 +#: utils/misc/guc_tables.c:1697 msgid "Check routine bodies during CREATE FUNCTION and CREATE PROCEDURE." msgstr "ქვეპროგრამის სხეულების შემოწმება CREATE FUNCTION-ის და CREATE PROCEDURE-ის დროს." -#: utils/misc/guc_tables.c:1604 -msgid "Enable input of NULL elements in arrays." +#: utils/misc/guc_tables.c:1706 +msgid "Enables input of NULL elements in arrays." msgstr "მასივებში NULL ტიპის ელემენტების შეყვანის ჩართვა." -#: utils/misc/guc_tables.c:1605 +#: utils/misc/guc_tables.c:1707 msgid "When turned on, unquoted NULL in an array input value means a null value; otherwise it is taken literally." msgstr "" -#: utils/misc/guc_tables.c:1621 +#: utils/misc/guc_tables.c:1723 msgid "WITH OIDS is no longer supported; this can only be false." msgstr "WITH OIDS მხარდაჭერილი აღარაა. ის ყოველთვის ნულის ტოლია." -#: utils/misc/guc_tables.c:1631 -msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." +#: utils/misc/guc_tables.c:1733 +msgid "Start a subprocess to capture stderr, csvlog and/or jsonlog into log files." msgstr "" -#: utils/misc/guc_tables.c:1640 +#: utils/misc/guc_tables.c:1742 msgid "Truncate existing log files of same name during log rotation." msgstr "" -#: utils/misc/guc_tables.c:1651 +#: utils/misc/guc_tables.c:1752 msgid "Emit information about resource usage in sorting." msgstr "ინფორმაციის გამოტანა დალაგების მიერ რესურსების გამოყენების შესახებ." -#: utils/misc/guc_tables.c:1665 +#: utils/misc/guc_tables.c:1765 msgid "Generate debugging output for synchronized scanning." msgstr "სინქრონიზებული სკანირების შესახებ გამართვის ინფორმაციის გამოტანა." -#: utils/misc/guc_tables.c:1680 -msgid "Enable bounded sorting using heap sort." +#: utils/misc/guc_tables.c:1780 +msgid "Enables bounded sorting using heap sort." msgstr "" -#: utils/misc/guc_tables.c:1693 +#: utils/misc/guc_tables.c:1793 msgid "Emit WAL-related debugging output." msgstr "'WAL'-თან დაკავშირებული გამართვის ინფორმაციის გამოტანა." -#: utils/misc/guc_tables.c:1705 +#: utils/misc/guc_tables.c:1805 msgid "Shows whether datetimes are integer based." msgstr "აჩვენებს, არის თუ არა თარიღი და დრო მთელი რიცხვი." -#: utils/misc/guc_tables.c:1716 +#: utils/misc/guc_tables.c:1816 msgid "Sets whether Kerberos and GSSAPI user names should be treated as case-insensitive." msgstr "იქნება Kerberos-ის და GSSAPI-ის მომხმარებლის სახელები რეგისტრზე-დამოკიდებული, თუ არა." -#: utils/misc/guc_tables.c:1726 +#: utils/misc/guc_tables.c:1826 msgid "Sets whether GSSAPI delegation should be accepted from the client." msgstr "მივიღებთ კლიენტიდან GSSAPI-ის დელეგაციას, თუ არა." -#: utils/misc/guc_tables.c:1736 +#: utils/misc/guc_tables.c:1836 msgid "Warn about backslash escapes in ordinary string literals." msgstr "" -#: utils/misc/guc_tables.c:1746 +#: utils/misc/guc_tables.c:1846 msgid "Causes '...' strings to treat backslashes literally." msgstr "" -#: utils/misc/guc_tables.c:1757 -msgid "Enable synchronized sequential scans." -msgstr "სინქრონული მიმდევრობითი სკანირებების ჩართვა." +#: utils/misc/guc_tables.c:1857 +msgid "Enables synchronized sequential scans." +msgstr "ჩართავს სინქრონული მიმდევრობითი სკანირებებს." -#: utils/misc/guc_tables.c:1767 +#: utils/misc/guc_tables.c:1867 msgid "Sets whether to include or exclude transaction with recovery target." msgstr "აყენებს იქნება ჩასმული ტრანზაქცია აღდგენის სამიზნესთან ერთად, თუ არა." -#: utils/misc/guc_tables.c:1777 +#: utils/misc/guc_tables.c:1877 msgid "Starts the WAL summarizer process to enable incremental backup." msgstr "" -#: utils/misc/guc_tables.c:1787 +#: utils/misc/guc_tables.c:1887 msgid "Allows connections and queries during recovery." msgstr "აღდგენისას მიერთებების და მოთხოვნების დაშვება." -#: utils/misc/guc_tables.c:1797 +#: utils/misc/guc_tables.c:1897 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "" -#: utils/misc/guc_tables.c:1807 +#: utils/misc/guc_tables.c:1907 msgid "Shows whether hot standby is currently active." msgstr "აჩვენებს, ამჟამად ცხელი მომლოდინე აქტიურია, თუ არა." -#: utils/misc/guc_tables.c:1818 +#: utils/misc/guc_tables.c:1918 msgid "Allows modifications of the structure of system tables." msgstr "სისტემური ცხრილების სტრუქტურის ცვლილების დაშვება." -#: utils/misc/guc_tables.c:1829 +#: utils/misc/guc_tables.c:1929 msgid "Disables reading from system indexes." msgstr "სისტემური ინდექსებიდან კითხვის გამორთვა." -#: utils/misc/guc_tables.c:1830 +#: utils/misc/guc_tables.c:1930 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "ის ინდექსების განახლებას ხელს არ უშლის, ასე რომ, გამოსაყენებლად უსაფრთხოა. ყველაზე ცუდი, რაც სჭირს, ნელია." -#: utils/misc/guc_tables.c:1841 +#: utils/misc/guc_tables.c:1941 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "გამოსაცდელად ცხრილის სივრცეების პირდაპირ ph_tblspc-ში დაშვება." -#: utils/misc/guc_tables.c:1852 +#: utils/misc/guc_tables.c:1952 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "დიდი ობიექტების პრივილეგიების შემოწმების წინა ვერსიებთან თავსებადი რეჟიმის ჩართვა." -#: utils/misc/guc_tables.c:1853 +#: utils/misc/guc_tables.c:1953 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "PostgreSQL-ის 9.0 და უფრო ძველ ვერსიებთან თავსებადობისთვის პრივილეგიების შემოწმების გამოტოვება, დიდი ობიექტების კითხვისა და შეცვლისას." -#: utils/misc/guc_tables.c:1863 +#: utils/misc/guc_tables.c:1963 msgid "When generating SQL fragments, quote all identifiers." msgstr "SQL ფრაგმენტების გენერაციისას ყველა იდენტიფიკატორის ბრჭყალებში ჩასმა." -#: utils/misc/guc_tables.c:1873 +#: utils/misc/guc_tables.c:1973 msgid "Shows whether data checksums are turned on for this cluster." msgstr "აჩვენებს, ამ კლასტერზე მონაცემების საკონტროლო ჯამები ჩართულია, თუ არა." -#: utils/misc/guc_tables.c:1884 +#: utils/misc/guc_tables.c:1984 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "დუბლირებული შეტყობინებების შეკვეცის თავიდან ასაცილებლად ჟურნალში გაგზავნილი შეტყობინებებისთვის მიმდევრობის ნომრის დამატება." -#: utils/misc/guc_tables.c:1894 +#: utils/misc/guc_tables.c:1994 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "Syslog-ისთვის გაგზავნილი შეტყობინებების დაჭრა და 1024 ბაიტში ჩატევა." -#: utils/misc/guc_tables.c:1904 +#: utils/misc/guc_tables.c:2004 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "" -#: utils/misc/guc_tables.c:1905 +#: utils/misc/guc_tables.c:2005 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "" -#: utils/misc/guc_tables.c:1915 +#: utils/misc/guc_tables.c:2015 msgid "Allow JIT compilation." msgstr "JIT კომპილაციის ჩართვა." -#: utils/misc/guc_tables.c:1926 +#: utils/misc/guc_tables.c:2026 msgid "Register JIT-compiled functions with debugger." msgstr "JIT-ით კომპილირებული ფუნქციების გამმართველთან რეგისტრაცია." -#: utils/misc/guc_tables.c:1943 +#: utils/misc/guc_tables.c:2043 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "" -#: utils/misc/guc_tables.c:1954 +#: utils/misc/guc_tables.c:2054 msgid "Allow JIT compilation of expressions." msgstr "გამოსახულებების JIT კომპილაციის დაშვება." -#: utils/misc/guc_tables.c:1965 +#: utils/misc/guc_tables.c:2065 msgid "Register JIT-compiled functions with perf profiler." msgstr "" -#: utils/misc/guc_tables.c:1982 +#: utils/misc/guc_tables.c:2082 msgid "Allow JIT compilation of tuple deforming." msgstr "კორტეჟის დეფორმაციის JIT კომპილაციის დაშვება." -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2093 msgid "Whether to continue running after a failure to sync data files." msgstr "გაგრძელდება მუშაობა მონაცემის ფაილების სინქრონიზაციის ჩავარდნის შემდეგ, თუ არა." -#: utils/misc/guc_tables.c:2002 +#: utils/misc/guc_tables.c:2102 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "" -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2111 msgid "Enables event triggers." msgstr "ჩართავს მოვლენის ტრიგერებს." -#: utils/misc/guc_tables.c:2012 +#: utils/misc/guc_tables.c:2112 msgid "When enabled, event triggers will fire for all applicable statements." msgstr "" -#: utils/misc/guc_tables.c:2021 -msgid "Enables a physical standby to synchronize logical failover slots from the primary server." -msgstr "" +#: utils/misc/guc_tables.c:2121 +msgid "Enables a physical standby to synchronize logical failover replication slots from the primary server." +msgstr "საშუალებას აძლევს ფიზიკურ უქმეს სინქრონიზაციას ლოგიკური წარუმატებლობის რეპლიკაციის სლოტები პირველადი სერვერიდან." -#: utils/misc/guc_tables.c:2039 +#: utils/misc/guc_tables.c:2130 +msgid "Enables deprecation warnings for MD5 passwords." +msgstr "მოძველებულობის გაფრთხილებების ჩართვა MD5 პაროლებისთვის." + +#: utils/misc/guc_tables.c:2139 +msgid "Enables vacuum to truncate empty pages at the end of the table." +msgstr "უფლებას აძლევს მომტვერსასრუტებას, მოკვეთოს ცარიელი გვერდები ცხრილის ბოლოში." + +#: utils/misc/guc_tables.c:2157 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "" -#: utils/misc/guc_tables.c:2050 +#: utils/misc/guc_tables.c:2159 utils/misc/guc_tables.c:2313 utils/misc/guc_tables.c:2732 utils/misc/guc_tables.c:2743 utils/misc/guc_tables.c:2754 utils/misc/guc_tables.c:2765 utils/misc/guc_tables.c:2776 +msgid "0 disables the timeout." +msgstr "0 გამორთავს მოლოდინის ვადას." + +#: utils/misc/guc_tables.c:2168 msgid "Sets the amount of time to wait after authentication on connection startup." msgstr "" -#: utils/misc/guc_tables.c:2052 utils/misc/guc_tables.c:2774 +#: utils/misc/guc_tables.c:2170 utils/misc/guc_tables.c:2908 msgid "This allows attaching a debugger to the process." msgstr "პროცესისთვის გამმართველის მიბმის უფლების მიცემა." -#: utils/misc/guc_tables.c:2061 +#: utils/misc/guc_tables.c:2179 msgid "Sets the default statistics target." msgstr "სტატისტიკის ნაგულისხმევი სამიზნის დაყენება." -#: utils/misc/guc_tables.c:2062 +#: utils/misc/guc_tables.c:2180 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "" -#: utils/misc/guc_tables.c:2071 +#: utils/misc/guc_tables.c:2189 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "" -#: utils/misc/guc_tables.c:2073 +#: utils/misc/guc_tables.c:2191 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "" -#: utils/misc/guc_tables.c:2084 +#: utils/misc/guc_tables.c:2202 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "" -#: utils/misc/guc_tables.c:2086 +#: utils/misc/guc_tables.c:2204 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "" -#: utils/misc/guc_tables.c:2097 +#: utils/misc/guc_tables.c:2215 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "" -#: utils/misc/guc_tables.c:2107 +#: utils/misc/guc_tables.c:2225 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "" -#: utils/misc/guc_tables.c:2117 +#: utils/misc/guc_tables.c:2235 msgid "GEQO: number of individuals in the population." msgstr "GEQO: ინდივიდების რაოდენობა პოპულაციაში." -#: utils/misc/guc_tables.c:2118 utils/misc/guc_tables.c:2128 -msgid "Zero selects a suitable default value." -msgstr "ნული შესაბამის ნაგულისხმევ მნიშვნელობას აირჩევს." +#: utils/misc/guc_tables.c:2236 utils/misc/guc_tables.c:2246 +msgid "0 means use a suitable default value." +msgstr "0 ნიშნავს შესაბამისი ნაგულისხმევი მნიშვნელობის გამოყენებას." -#: utils/misc/guc_tables.c:2127 +#: utils/misc/guc_tables.c:2245 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: ალგორითმის იტერაციების რაოდენობა." -#: utils/misc/guc_tables.c:2139 +#: utils/misc/guc_tables.c:2257 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "" -#: utils/misc/guc_tables.c:2150 +#: utils/misc/guc_tables.c:2268 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "" -#: utils/misc/guc_tables.c:2161 +#: utils/misc/guc_tables.c:2269 utils/misc/guc_tables.c:2280 +msgid "-1 means wait forever." +msgstr "-1 ნიშნავს უსაზღვროდ ლოდინს." + +#: utils/misc/guc_tables.c:2279 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "" -#: utils/misc/guc_tables.c:2172 +#: utils/misc/guc_tables.c:2290 msgid "Sets the minimum delay for applying changes during recovery." msgstr "აღდგენისას ცვლილებების გადატარების მინიმალური დაყოვნების დაყენება." -#: utils/misc/guc_tables.c:2183 +#: utils/misc/guc_tables.c:2301 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "" -#: utils/misc/guc_tables.c:2194 +#: utils/misc/guc_tables.c:2312 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "" -#: utils/misc/guc_tables.c:2205 +#: utils/misc/guc_tables.c:2323 msgid "Sets the maximum number of concurrent connections." msgstr "აყენებს ერთდროული შეერთებების მაქსიმალურ რაოდენობას." -#: utils/misc/guc_tables.c:2216 +#: utils/misc/guc_tables.c:2334 msgid "Sets the number of connection slots reserved for superusers." msgstr "აყენებს ზემომხმარებლებისთვის რეზერვირებული შეერთების სლოტებს." -#: utils/misc/guc_tables.c:2226 +#: utils/misc/guc_tables.c:2344 msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." msgstr "" -#: utils/misc/guc_tables.c:2237 +#: utils/misc/guc_tables.c:2355 msgid "Amount of dynamic shared memory reserved at startup." msgstr "გაშვებისას დარეზერვებული დინამიური გაზიარებული მეხსიერების რაოდენობა." -#: utils/misc/guc_tables.c:2252 +#: utils/misc/guc_tables.c:2370 msgid "Sets the number of shared memory buffers used by the server." msgstr "სერვერის მიერ გამოყენებული გაზიარებული მეხსიერების ბაფერების რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2263 +#: utils/misc/guc_tables.c:2381 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "ბუფერი პულის ზომა VACUUM, ANALYZE და ავტომომტვერსასრუტებისთვის." -#: utils/misc/guc_tables.c:2274 +#: utils/misc/guc_tables.c:2392 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "" -#: utils/misc/guc_tables.c:2285 +#: utils/misc/guc_tables.c:2403 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "" -#: utils/misc/guc_tables.c:2286 -msgid "-1 indicates that the value could not be determined." -msgstr "-1 ნიშნავს, რომ მნიშვნელობა ვერ განისაზღვრა." +#: utils/misc/guc_tables.c:2404 +msgid "-1 means huge pages are not supported." +msgstr "-1 ნიშნავს, რომ უზარმაზარი გვერდები მხარდაჭერილი არაა." -#: utils/misc/guc_tables.c:2296 +#: utils/misc/guc_tables.c:2414 +msgid "Shows the number of semaphores required for the server." +msgstr "აჩვენებს სერვერის მიერ გამოყენებული სემაფორების რაოდენობას." + +#: utils/misc/guc_tables.c:2425 msgid "Sets the size of the dedicated buffer pool used for the commit timestamp cache." msgstr "" -#: utils/misc/guc_tables.c:2297 utils/misc/guc_tables.c:2352 utils/misc/guc_tables.c:2363 -msgid "Specify 0 to have this value determined as a fraction of shared_buffers." -msgstr "" +#: utils/misc/guc_tables.c:2426 utils/misc/guc_tables.c:2481 utils/misc/guc_tables.c:2492 +msgid "0 means use a fraction of \"shared_buffers\"." +msgstr "0 ნიშნავს \"shared_buffers\"-ის ნაწილის გამოყენებას." -#: utils/misc/guc_tables.c:2307 +#: utils/misc/guc_tables.c:2436 msgid "Sets the size of the dedicated buffer pool used for the MultiXact member cache." msgstr "" -#: utils/misc/guc_tables.c:2318 +#: utils/misc/guc_tables.c:2447 msgid "Sets the size of the dedicated buffer pool used for the MultiXact offset cache." msgstr "" -#: utils/misc/guc_tables.c:2329 +#: utils/misc/guc_tables.c:2458 msgid "Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache." msgstr "" -#: utils/misc/guc_tables.c:2340 +#: utils/misc/guc_tables.c:2469 msgid "Sets the size of the dedicated buffer pool used for the serializable transaction cache." msgstr "" -#: utils/misc/guc_tables.c:2351 -msgid "Sets the size of the dedicated buffer pool used for the sub-transaction cache." +#: utils/misc/guc_tables.c:2480 +msgid "Sets the size of the dedicated buffer pool used for the subtransaction cache." msgstr "" -#: utils/misc/guc_tables.c:2362 +#: utils/misc/guc_tables.c:2491 msgid "Sets the size of the dedicated buffer pool used for the transaction status cache." msgstr "" -#: utils/misc/guc_tables.c:2373 +#: utils/misc/guc_tables.c:2502 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "" -#: utils/misc/guc_tables.c:2384 +#: utils/misc/guc_tables.c:2513 msgid "Sets the TCP port the server listens on." msgstr "TCP პორტის მითითება, რომელზეც სერვერი უსმენს." -#: utils/misc/guc_tables.c:2394 +#: utils/misc/guc_tables.c:2523 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Unix-დომენის სოკეტზე წვდომის უფლებების დაყენება." -#: utils/misc/guc_tables.c:2395 +#: utils/misc/guc_tables.c:2524 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "" -#: utils/misc/guc_tables.c:2409 +#: utils/misc/guc_tables.c:2538 msgid "Sets the file permissions for log files." msgstr "ჟურნალის ფაილების წვდომების დაყენება." -#: utils/misc/guc_tables.c:2410 +#: utils/misc/guc_tables.c:2539 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "" -#: utils/misc/guc_tables.c:2424 +#: utils/misc/guc_tables.c:2553 msgid "Shows the mode of the data directory." msgstr "მონაცემების საქაღალდის წვდომის ჩვენება." -#: utils/misc/guc_tables.c:2425 +#: utils/misc/guc_tables.c:2554 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "" -#: utils/misc/guc_tables.c:2438 +#: utils/misc/guc_tables.c:2567 msgid "Sets the maximum memory to be used for query workspaces." msgstr "მოთხოვნის სამუშაო სივრცის მიერ გამოყენებული მეხსიერების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2439 +#: utils/misc/guc_tables.c:2568 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "" -#: utils/misc/guc_tables.c:2451 +#: utils/misc/guc_tables.c:2585 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "ტექნიკური ოპერაციებისთვის გამოყენებული მეხსიერების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2452 +#: utils/misc/guc_tables.c:2586 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "მოიცავს ისეთ ოპერაციებს, როგორებიცაა VACUUM და CREATE INDEX." -#: utils/misc/guc_tables.c:2462 +#: utils/misc/guc_tables.c:2596 msgid "Sets the maximum memory to be used for logical decoding." msgstr "ლოგიკური გაშიფვრისთვის გამოყენებული მეხსიერების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2463 +#: utils/misc/guc_tables.c:2597 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "" -#: utils/misc/guc_tables.c:2479 +#: utils/misc/guc_tables.c:2613 msgid "Sets the maximum stack depth, in kilobytes." msgstr "სტეკის მაქსიმალური სიღრმე კილობაიტებში." -#: utils/misc/guc_tables.c:2490 +#: utils/misc/guc_tables.c:2624 msgid "Limits the total size of all temporary files used by each process." msgstr "" -#: utils/misc/guc_tables.c:2491 +#: utils/misc/guc_tables.c:2625 msgid "-1 means no limit." msgstr "-1 ნიშნავს ლიმიტის გარეშე." -#: utils/misc/guc_tables.c:2501 +#: utils/misc/guc_tables.c:2635 msgid "Vacuum cost for a page found in the buffer cache." msgstr "ბაფერის ქეშში ნაპოვნი გვერდის მომტვერსასრუტების ფასი." -#: utils/misc/guc_tables.c:2511 +#: utils/misc/guc_tables.c:2645 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "ბაფერის ქეშში გვერდის მომტვერსასრუტების ფასი ნაპოვნი არაა." -#: utils/misc/guc_tables.c:2521 +#: utils/misc/guc_tables.c:2655 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "" -#: utils/misc/guc_tables.c:2531 +#: utils/misc/guc_tables.c:2665 msgid "Vacuum cost amount available before napping." msgstr "" -#: utils/misc/guc_tables.c:2541 +#: utils/misc/guc_tables.c:2675 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "" -#: utils/misc/guc_tables.c:2551 -msgid "Sets the maximum number of simultaneously open files for each server process." -msgstr "" +#: utils/misc/guc_tables.c:2676 +msgid "-1 means use \"vacuum_cost_limit\"." +msgstr "-1 ნიშნავს \"vacuum_cost_limit\"-ის გამოყენებას." + +#: utils/misc/guc_tables.c:2685 +msgid "Sets the maximum number of files each server process is allowed to open simultaneously." +msgstr "თითოეული სერვერის პროცესისთვის ერთდროულად გახსნილი ფაილების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2564 +#: utils/misc/guc_tables.c:2698 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "" -#: utils/misc/guc_tables.c:2575 +#: utils/misc/guc_tables.c:2709 msgid "Sets the minimum OID of tables for tracking locks." msgstr "" -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2710 msgid "Is used to avoid output on system tables." msgstr "გამოიყენება სისტემურ ცხრილებზე გამოტანის თავიდან ასაცილებლად." -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2719 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "" -#: utils/misc/guc_tables.c:2597 +#: utils/misc/guc_tables.c:2731 msgid "Sets the maximum allowed duration of any statement." msgstr "აყენებს ნებისმიერი გამოსახულების დაშვებულ მაქსიმალურ ხანგრძლივობას." -#: utils/misc/guc_tables.c:2598 utils/misc/guc_tables.c:2609 utils/misc/guc_tables.c:2620 utils/misc/guc_tables.c:2631 utils/misc/guc_tables.c:2642 -msgid "A value of 0 turns off the timeout." -msgstr "0 მოლოდინის ვადას გამორთავს." - -#: utils/misc/guc_tables.c:2608 +#: utils/misc/guc_tables.c:2742 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "აყენებს ბლოკირების ნებისმიერი მოლოდინისთვის დაშვებულ მაქსიმალურ ხანგრძლივობას." -#: utils/misc/guc_tables.c:2619 +#: utils/misc/guc_tables.c:2753 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "აყენებს მაქსიმალურ დაყოვნებას მოთხოვნებს შორის, როცა ის ტრანზაქციაშია." -#: utils/misc/guc_tables.c:2630 +#: utils/misc/guc_tables.c:2764 msgid "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)." msgstr "აყენებს მაქსიმალურ დაშვებულ ხანგრძლივობას ნებისმიერი ტრანზაქციისთვის სესიის შიგნით (მომზადებული ტრანზაქცია არაა)." -#: utils/misc/guc_tables.c:2641 +#: utils/misc/guc_tables.c:2775 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "აყენებს მაქსიმალურ დაყოვნებას მოთხოვნებს შორის, როცა ის ტრანზაქციაში არაა." -#: utils/misc/guc_tables.c:2652 +#: utils/misc/guc_tables.c:2786 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "" -#: utils/misc/guc_tables.c:2662 +#: utils/misc/guc_tables.c:2796 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "" -#: utils/misc/guc_tables.c:2672 +#: utils/misc/guc_tables.c:2806 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "" -#: utils/misc/guc_tables.c:2682 +#: utils/misc/guc_tables.c:2816 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "" -#: utils/misc/guc_tables.c:2692 +#: utils/misc/guc_tables.c:2826 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "" -#: utils/misc/guc_tables.c:2701 +#: utils/misc/guc_tables.c:2835 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "" -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2848 msgid "Sets the maximum number of locks per transaction." msgstr "ტრანზაქციაში ბლოკების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:2715 +#: utils/misc/guc_tables.c:2849 msgid "The shared lock table is sized on the assumption that at most \"max_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." msgstr "" -#: utils/misc/guc_tables.c:2726 +#: utils/misc/guc_tables.c:2860 msgid "Sets the maximum number of predicate locks per transaction." msgstr "" -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2861 msgid "The shared predicate lock table is sized on the assumption that at most \"max_pred_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." msgstr "" -#: utils/misc/guc_tables.c:2738 +#: utils/misc/guc_tables.c:2872 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "" -#: utils/misc/guc_tables.c:2739 +#: utils/misc/guc_tables.c:2873 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "" -#: utils/misc/guc_tables.c:2749 +#: utils/misc/guc_tables.c:2883 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "" -#: utils/misc/guc_tables.c:2750 +#: utils/misc/guc_tables.c:2884 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "" -#: utils/misc/guc_tables.c:2760 +#: utils/misc/guc_tables.c:2894 msgid "Sets the maximum allowed time to complete client authentication." msgstr "კლიენტის ავთენტიკაციის დასრულებისთვის დაშვებული მაქსიმალური დროის დაყენება." -#: utils/misc/guc_tables.c:2772 +#: utils/misc/guc_tables.c:2906 msgid "Sets the amount of time to wait before authentication on connection startup." msgstr "" -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2918 msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." msgstr "აყენებს გამოყოფილი გვერდების მაქსიმალურ რაოდენობას NOTIFY / LISTEN რიგისთვის." -#: utils/misc/guc_tables.c:2794 +#: utils/misc/guc_tables.c:2928 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "აღდგენისას WAL-ში წინასწარ-კითხვის ბაფერის ზომა." -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2929 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "" -#: utils/misc/guc_tables.c:2805 +#: utils/misc/guc_tables.c:2939 msgid "Sets the size of WAL files held for standby servers." msgstr "მომლოდინე სერვერებისთვის WAL ფაილებისთვის შენახული ზომის დაყენება." -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2950 msgid "Sets the minimum size to shrink the WAL to." msgstr "WAL-ის შემცირების მინიმალური ზომის დაყენება." -#: utils/misc/guc_tables.c:2828 +#: utils/misc/guc_tables.c:2962 msgid "Sets the WAL size that triggers a checkpoint." msgstr "აყენებს WAL-ის ზომას, რომელიც საკონტროლო წერტილს ატრიგერებს." -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2974 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "ავტომატური WAL საკონტროლო წერტილებს შორის მაქსიმალური დროის დაყენება." -#: utils/misc/guc_tables.c:2851 +#: utils/misc/guc_tables.c:2985 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "" -#: utils/misc/guc_tables.c:2853 -msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." +#: utils/misc/guc_tables.c:2987 +msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. 0 disables the warning." msgstr "" -#: utils/misc/guc_tables.c:2866 utils/misc/guc_tables.c:3084 utils/misc/guc_tables.c:3138 +#: utils/misc/guc_tables.c:3000 utils/misc/guc_tables.c:3230 utils/misc/guc_tables.c:3322 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "" -#: utils/misc/guc_tables.c:2877 -msgid "Sets the number of disk-page buffers in shared memory for WAL." +#: utils/misc/guc_tables.c:3001 utils/misc/guc_tables.c:3231 utils/misc/guc_tables.c:3323 +msgid "0 disables forced writeback." msgstr "" -#: utils/misc/guc_tables.c:2878 -msgid "Specify -1 to have this value determined as a fraction of shared_buffers." +#: utils/misc/guc_tables.c:3011 +msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "" -#: utils/misc/guc_tables.c:2888 +#: utils/misc/guc_tables.c:3012 +msgid "-1 means use a fraction of \"shared_buffers\"." +msgstr "-1 ნიშნავს \"shared_buffers\"-ის ნაწილის გამოყენებას." + +#: utils/misc/guc_tables.c:3022 msgid "Time between WAL flushes performed in the WAL writer." msgstr "" -#: utils/misc/guc_tables.c:2899 +#: utils/misc/guc_tables.c:3033 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "" -#: utils/misc/guc_tables.c:2910 +#: utils/misc/guc_tables.c:3044 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "" -#: utils/misc/guc_tables.c:2921 +#: utils/misc/guc_tables.c:3055 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "" -#: utils/misc/guc_tables.c:2932 +#: utils/misc/guc_tables.c:3066 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "" -#: utils/misc/guc_tables.c:2942 +#: utils/misc/guc_tables.c:3076 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "" -#: utils/misc/guc_tables.c:2943 -msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." +#: utils/misc/guc_tables.c:3077 +msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk. -1 means no maximum." msgstr "" -#: utils/misc/guc_tables.c:2955 +#: utils/misc/guc_tables.c:3089 msgid "Sets the maximum time to wait for WAL replication." msgstr "WAL რეპლიკაციის მოლოდინის მაქსიმალური ვადის დაყენება." -#: utils/misc/guc_tables.c:2966 +#: utils/misc/guc_tables.c:3100 +msgid "Sets the duration a replication slot can remain idle before it is invalidated." +msgstr "" + +#: utils/misc/guc_tables.c:3112 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "" -#: utils/misc/guc_tables.c:2978 +#: utils/misc/guc_tables.c:3124 msgid "Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"." msgstr "დააყენებს \"commit_delay\"-ის შესრულებამდე საჭირო ერთდროული ღია ტრანზაქციების მინიმალურ რაოდენობას." -#: utils/misc/guc_tables.c:2989 +#: utils/misc/guc_tables.c:3135 msgid "Sets the number of digits displayed for floating-point values." msgstr "" -#: utils/misc/guc_tables.c:2990 +#: utils/misc/guc_tables.c:3136 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "" -#: utils/misc/guc_tables.c:3002 -msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." +#: utils/misc/guc_tables.c:3148 +msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by \"log_statement_sample_rate\"." msgstr "" -#: utils/misc/guc_tables.c:3005 -msgid "Zero logs a sample of all queries. -1 turns this feature off." +#: utils/misc/guc_tables.c:3151 +msgid "-1 disables sampling. 0 means sample all statements." msgstr "" -#: utils/misc/guc_tables.c:3015 +#: utils/misc/guc_tables.c:3161 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "" -#: utils/misc/guc_tables.c:3017 -msgid "Zero prints all queries. -1 turns this feature off." -msgstr "0-ს ყველა მოთხოვნა გამოაქვს, -1 გამორთავს ამ ფუნქციას." +#: utils/misc/guc_tables.c:3163 +msgid "-1 disables logging statement durations. 0 means log all statement durations." +msgstr "" -#: utils/misc/guc_tables.c:3027 +#: utils/misc/guc_tables.c:3173 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "" -#: utils/misc/guc_tables.c:3029 -msgid "Zero prints all actions. -1 turns autovacuum logging off." -msgstr "0-ს ყველა ქმედება გამოაქვს. -1 გამორთავს ავტომომტვერსასრუტებას." +#: utils/misc/guc_tables.c:3175 +msgid "-1 disables logging autovacuum actions. 0 means log all autovacuum actions." +msgstr "" -#: utils/misc/guc_tables.c:3039 +#: utils/misc/guc_tables.c:3185 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "" -#: utils/misc/guc_tables.c:3041 utils/misc/guc_tables.c:3053 -msgid "-1 to print values in full." -msgstr "-1 მნიშვნელობების სრულად გამოსატანად." +#: utils/misc/guc_tables.c:3187 utils/misc/guc_tables.c:3199 +msgid "-1 means log values in full." +msgstr "-1 მნიშვნელობების ჟურნალში სრულად ჩაწერას." -#: utils/misc/guc_tables.c:3051 +#: utils/misc/guc_tables.c:3197 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "" -#: utils/misc/guc_tables.c:3063 +#: utils/misc/guc_tables.c:3209 msgid "Background writer sleep time between rounds." msgstr "" -#: utils/misc/guc_tables.c:3074 +#: utils/misc/guc_tables.c:3220 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "" -#: utils/misc/guc_tables.c:3097 +#: utils/misc/guc_tables.c:3221 +msgid "0 disables background writing." +msgstr "0 გამორთავს ფონურ ჩაწერას." + +#: utils/misc/guc_tables.c:3243 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "" -#: utils/misc/guc_tables.c:3111 +#: utils/misc/guc_tables.c:3244 utils/misc/guc_tables.c:3258 +msgid "0 disables simultaneous requests." +msgstr "0 გამორთავს ერთდროულ მოთხოვნებს." + +#: utils/misc/guc_tables.c:3257 msgid "A variant of \"effective_io_concurrency\" that is used for maintenance work." +msgstr "\"effective_io_concurency\"-ის ვარიანტი, რომელიც სარემონტო სამუშაოებისთვის გამოიყენება." + +#: utils/misc/guc_tables.c:3272 +msgid "Server-wide limit that clamps io_combine_limit." msgstr "" -#: utils/misc/guc_tables.c:3126 +#: utils/misc/guc_tables.c:3286 msgid "Limit on the size of data reads and writes." msgstr "" -#: utils/misc/guc_tables.c:3151 +#: utils/misc/guc_tables.c:3300 +msgid "Max number of IOs that one process can execute simultaneously." +msgstr "" + +#: utils/misc/guc_tables.c:3312 +msgid "Number of IO worker processes, for io_method=worker." +msgstr "" + +#: utils/misc/guc_tables.c:3335 msgid "Maximum number of concurrent worker processes." msgstr "ერთდროულად გაშვებული დამხმარე პროცესების მაქსიმალური რაოდენობა." -#: utils/misc/guc_tables.c:3163 +#: utils/misc/guc_tables.c:3347 msgid "Maximum number of logical replication worker processes." msgstr "ლოგიკური რეპლიკაციის დამხმარე პროცესების მაქსიმალური რაოდენობა." -#: utils/misc/guc_tables.c:3175 +#: utils/misc/guc_tables.c:3359 msgid "Maximum number of table synchronization workers per subscription." msgstr "თითოეული გამოწერის ცხრილის სინქრონიზაციის დამხმარე პროცესების მაქსიმალური რაოდენობა." -#: utils/misc/guc_tables.c:3187 +#: utils/misc/guc_tables.c:3371 msgid "Maximum number of parallel apply workers per subscription." msgstr "თითოეული გამოწერის პარალელური გადატარების დამხმარე პროცესების მაქსიმალური რაოდენობა." -#: utils/misc/guc_tables.c:3197 +#: utils/misc/guc_tables.c:3383 +msgid "Sets the maximum number of active replication origins." +msgstr "აყენებს აქტიური რეპლიკაციის ძრავების მაქსიმალურ რაოდენობას." + +#: utils/misc/guc_tables.c:3393 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "" -#: utils/misc/guc_tables.c:3209 +#: utils/misc/guc_tables.c:3395 +msgid "0 disables time-based creation of new log files." +msgstr "" + +#: utils/misc/guc_tables.c:3405 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "" -#: utils/misc/guc_tables.c:3221 +#: utils/misc/guc_tables.c:3407 +msgid "0 disables size-based creation of new log files." +msgstr "" + +#: utils/misc/guc_tables.c:3417 msgid "Shows the maximum number of function arguments." msgstr "ფუნქციის არგუმენტების მაქსიმალური რაოდენობის ჩვენება." -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3428 msgid "Shows the maximum number of index keys." msgstr "ინდექსის გასაღებების მაქსიმალური რაოდენობის ჩვენება." -#: utils/misc/guc_tables.c:3243 +#: utils/misc/guc_tables.c:3439 msgid "Shows the maximum identifier length." msgstr "იდენტიფიკატორის მაქსიმალური სიგრძის ჩვენება." -#: utils/misc/guc_tables.c:3254 +#: utils/misc/guc_tables.c:3450 msgid "Shows the size of a disk block." msgstr "დისკის ბლოკის ზომის ჩვენება." -#: utils/misc/guc_tables.c:3265 +#: utils/misc/guc_tables.c:3461 msgid "Shows the number of pages per disk file." msgstr "ფაილში არსებული გვერდების რაოდენობის ჩვენება." -#: utils/misc/guc_tables.c:3276 +#: utils/misc/guc_tables.c:3472 msgid "Shows the block size in the write ahead log." msgstr "წინასწარ-ჩაწერადი ჟურნალის ბლოკის ზომის ჩვენება." -#: utils/misc/guc_tables.c:3287 +#: utils/misc/guc_tables.c:3483 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "" -#: utils/misc/guc_tables.c:3299 +#: utils/misc/guc_tables.c:3495 msgid "Shows the size of write ahead log segments." msgstr "წინასწარ-ჩაწერადი ჟურნალის სეგმენტების ზომის ჩვენება." -#: utils/misc/guc_tables.c:3312 +#: utils/misc/guc_tables.c:3508 msgid "Time for which WAL summary files should be kept." msgstr "" -#: utils/misc/guc_tables.c:3325 +#: utils/misc/guc_tables.c:3509 +msgid "0 disables automatic summary file deletion." +msgstr "" + +#: utils/misc/guc_tables.c:3521 msgid "Time to sleep between autovacuum runs." msgstr "ძილის დრო ავტომომტვერსასრუტებების გაშვებებს შორის." -#: utils/misc/guc_tables.c:3335 +#: utils/misc/guc_tables.c:3531 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "" -#: utils/misc/guc_tables.c:3344 -msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." +#: utils/misc/guc_tables.c:3540 +msgid "Maximum number of tuple updates or deletes prior to vacuum." +msgstr "" + +#: utils/misc/guc_tables.c:3541 +msgid "-1 disables the maximum threshold." +msgstr "-1 გამორთავს მაქსიმალურ ზღვარს." + +#: utils/misc/guc_tables.c:3549 +msgid "Minimum number of tuple inserts prior to vacuum." msgstr "" -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3550 +msgid "-1 disables insert vacuums." +msgstr "-1 გამორთავს ვაკუუმების ჩასმას." + +#: utils/misc/guc_tables.c:3558 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "" -#: utils/misc/guc_tables.c:3363 +#: utils/misc/guc_tables.c:3568 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "" -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3580 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "" -#: utils/misc/guc_tables.c:3385 +#: utils/misc/guc_tables.c:3590 +msgid "Sets the number of backend slots to allocate for autovacuum workers." +msgstr "აყენებს უკანაბოლოს სლოტების რაოდენობას გამოსაყოფად ავტომომტვერსასრუტების დამხმარე პროცესებისთვის." + +#: utils/misc/guc_tables.c:3599 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "ერთდროულად გაშვებული ავტომომტვერსასრუტების დამხმარე პროცესების რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:3395 +#: utils/misc/guc_tables.c:3609 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "თითოეული რემონტის ოპერაციისთვის პარალელური პროცესების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:3405 +#: utils/misc/guc_tables.c:3619 msgid "Sets the maximum number of parallel processes per executor node." msgstr "თითოეული შემსრულებელი კვანძისთვის პარალელურად გაშვებული პროცესების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:3416 +#: utils/misc/guc_tables.c:3630 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "ერთდროულად აქტიური პარალელური დამხმარე პროცესების მაქსიმალური რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:3427 +#: utils/misc/guc_tables.c:3641 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "თითოეული ავტომომტვერსასრუტების დამხმარე პროცესის მიერ გამოყენებული მაქსიმალური მეხსიერების რაოდენობის დაყენება." -#: utils/misc/guc_tables.c:3438 +#: utils/misc/guc_tables.c:3642 +msgid "-1 means use \"maintenance_work_mem\"." +msgstr "-1 ნიშნავს \"maintenance_work_mem\"-ის გამოყენებას." + +#: utils/misc/guc_tables.c:3652 msgid "Time between issuing TCP keepalives." msgstr "დაყოვნება TCP keepalive პაკეტებს შორის." -#: utils/misc/guc_tables.c:3439 utils/misc/guc_tables.c:3450 utils/misc/guc_tables.c:3574 -msgid "A value of 0 uses the system default." -msgstr "სისტემური ნაგულისხმევი მნიშვნელობის გამოსაყენებლად მიუთითეთ 0." +#: utils/misc/guc_tables.c:3653 utils/misc/guc_tables.c:3664 utils/misc/guc_tables.c:3787 utils/misc/guc_tables.c:3798 +msgid "0 means use the system default." +msgstr "0 ნიშნავს სისტემის ნაგულისხმევის გამოყენებას." -#: utils/misc/guc_tables.c:3449 +#: utils/misc/guc_tables.c:3663 msgid "Time between TCP keepalive retransmits." msgstr "დაყოვნება TCP keepalive პაკეტების გადაგზავნებს შორის." -#: utils/misc/guc_tables.c:3460 +#: utils/misc/guc_tables.c:3674 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "SSL-ის თავიდან დაყენება უკვე მხარდაუჭერელია. შეგიძლიათ დააყენოთ მხოლოდ 0." -#: utils/misc/guc_tables.c:3471 +#: utils/misc/guc_tables.c:3685 msgid "Maximum number of TCP keepalive retransmits." msgstr "TCP Keepalive-ების გადაგზავნის მაქსიმალური რაოდენობა." -#: utils/misc/guc_tables.c:3472 -msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." +#: utils/misc/guc_tables.c:3686 +msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. 0 means use the system default." msgstr "" -#: utils/misc/guc_tables.c:3483 +#: utils/misc/guc_tables.c:3697 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "" -#: utils/misc/guc_tables.c:3494 +#: utils/misc/guc_tables.c:3698 +msgid "0 means no limit." +msgstr "0 ნიშნავს უსაზღვროს." + +#: utils/misc/guc_tables.c:3707 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "" -#: utils/misc/guc_tables.c:3495 +#: utils/misc/guc_tables.c:3708 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "" -#: utils/misc/guc_tables.c:3506 +#: utils/misc/guc_tables.c:3719 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "ცხრილის მონაცემების მინიმალური რაოდენობა პარალელური სკანირებისთვის." -#: utils/misc/guc_tables.c:3507 +#: utils/misc/guc_tables.c:3720 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "" -#: utils/misc/guc_tables.c:3517 +#: utils/misc/guc_tables.c:3730 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "" -#: utils/misc/guc_tables.c:3518 +#: utils/misc/guc_tables.c:3731 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "" -#: utils/misc/guc_tables.c:3529 +#: utils/misc/guc_tables.c:3742 msgid "Shows the server version as an integer." msgstr "სერვერის ვერსიას, როგორც მთელ რიცხვს, ისე აჩვენებს." -#: utils/misc/guc_tables.c:3540 +#: utils/misc/guc_tables.c:3753 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "მითითებული რაოდენობა კილობაიტზე უფრო დიდი დროებითი ფაილების გამოყენების ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:3541 -msgid "Zero logs all files. The default is -1 (turning this feature off)." -msgstr "" +#: utils/misc/guc_tables.c:3754 +msgid "-1 disables logging temporary files. 0 means log all temporary files." +msgstr "-1 გათიშავს დროებით ფაილების ჟურნალში ჩაწერას. 0 ნიშნავს ყველა დროებითი ფაილის ჟურნალში ჩაწერას." -#: utils/misc/guc_tables.c:3551 +#: utils/misc/guc_tables.c:3764 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "'pg_stat_activity.query'-სთვის დაცული მეხსიერების ზომის დაყნება, ბაიტებში." -#: utils/misc/guc_tables.c:3562 +#: utils/misc/guc_tables.c:3775 msgid "Sets the maximum size of the pending list for GIN index." msgstr "" -#: utils/misc/guc_tables.c:3573 +#: utils/misc/guc_tables.c:3786 msgid "TCP user timeout." msgstr "TCP მომხმარებლის ლოდინის ვადა." -#: utils/misc/guc_tables.c:3584 +#: utils/misc/guc_tables.c:3797 msgid "The size of huge page that should be requested." msgstr "მოსათხოვი უზარმაზარი გვერდების (hugepages) ზომა." -#: utils/misc/guc_tables.c:3595 +#: utils/misc/guc_tables.c:3808 msgid "Aggressively flush system caches for debugging purposes." msgstr "" -#: utils/misc/guc_tables.c:3618 +#: utils/misc/guc_tables.c:3809 +msgid "0 means use normal caching behavior." +msgstr "" + +#: utils/misc/guc_tables.c:3831 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "" -#: utils/misc/guc_tables.c:3629 +#: utils/misc/guc_tables.c:3832 +msgid "0 disables connection checks." +msgstr "0 კავშირის შემოწმებას გამორთავს." + +#: utils/misc/guc_tables.c:3842 msgid "Time between progress updates for long-running startup operations." msgstr "" -#: utils/misc/guc_tables.c:3631 -msgid "0 turns this feature off." -msgstr "0 გამორთავს ამ ფუნქციას." +#: utils/misc/guc_tables.c:3844 +msgid "0 disables progress updates." +msgstr "" -#: utils/misc/guc_tables.c:3641 +#: utils/misc/guc_tables.c:3854 msgid "Sets the iteration count for SCRAM secret generation." msgstr "აყენებს იტერაციების რიცხვს SCRAM-ის პაროლის გენერაციისთვის." -#: utils/misc/guc_tables.c:3661 +#: utils/misc/guc_tables.c:3874 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "" -#: utils/misc/guc_tables.c:3672 +#: utils/misc/guc_tables.c:3885 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "" -#: utils/misc/guc_tables.c:3683 +#: utils/misc/guc_tables.c:3896 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "" -#: utils/misc/guc_tables.c:3694 +#: utils/misc/guc_tables.c:3907 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "" -#: utils/misc/guc_tables.c:3705 +#: utils/misc/guc_tables.c:3918 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "" -#: utils/misc/guc_tables.c:3716 +#: utils/misc/guc_tables.c:3929 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "" -#: utils/misc/guc_tables.c:3727 +#: utils/misc/guc_tables.c:3940 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "" -#: utils/misc/guc_tables.c:3739 +#: utils/misc/guc_tables.c:3952 msgid "Perform JIT compilation if query is more expensive." msgstr "თუ მოთხოვნა უფრო ძვირია, JIT კომპილაციის შესრულება." -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3953 msgid "-1 disables JIT compilation." msgstr "-1 JIT კომპილაციას გამორთავს." -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3963 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "" -#: utils/misc/guc_tables.c:3751 +#: utils/misc/guc_tables.c:3964 msgid "-1 disables optimization." msgstr "-1 ოპტიმიზაციას გამორთავს." -#: utils/misc/guc_tables.c:3761 +#: utils/misc/guc_tables.c:3974 msgid "Perform JIT inlining if query is more expensive." msgstr "" -#: utils/misc/guc_tables.c:3762 +#: utils/misc/guc_tables.c:3975 msgid "-1 disables inlining." msgstr "-1 გამორთავს კოდის ჩადგმას." -#: utils/misc/guc_tables.c:3772 +#: utils/misc/guc_tables.c:3985 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "" -#: utils/misc/guc_tables.c:3784 +#: utils/misc/guc_tables.c:3997 msgid "Sets the planner's estimate of the average size of a recursive query's working table." msgstr "" -#: utils/misc/guc_tables.c:3796 +#: utils/misc/guc_tables.c:4009 msgid "GEQO: selective pressure within the population." msgstr "GEQO: შერჩევითი ზეწოლა პოპულაციაში." -#: utils/misc/guc_tables.c:3807 +#: utils/misc/guc_tables.c:4020 msgid "GEQO: seed for random path selection." msgstr "" -#: utils/misc/guc_tables.c:3818 +#: utils/misc/guc_tables.c:4031 msgid "Multiple of \"work_mem\" to use for hash tables." msgstr "" -#: utils/misc/guc_tables.c:3829 +#: utils/misc/guc_tables.c:4042 msgid "Multiple of the average buffer usage to free per round." msgstr "" -#: utils/misc/guc_tables.c:3839 +#: utils/misc/guc_tables.c:4052 msgid "Sets the seed for random-number generation." -msgstr "" +msgstr "აყენებს თესლს შემთხვევითი რიცხვების გენერაციისთვის." -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:4063 msgid "Vacuum cost delay in milliseconds." msgstr "დამტვერსასრუტების დაყოვნება მილიწამებში." -#: utils/misc/guc_tables.c:3861 +#: utils/misc/guc_tables.c:4074 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "დამტვერსასრუტების დაყოვნება მილიწამებში, ავტოდამტვერსასრუტებისთვის." -#: utils/misc/guc_tables.c:3872 +#: utils/misc/guc_tables.c:4075 +msgid "-1 means use \"vacuum_cost_delay\"." +msgstr "-1 ნიშნავს \"vacuum_cost_delay\"-ის გამოყენებას." + +#: utils/misc/guc_tables.c:4085 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "" -#: utils/misc/guc_tables.c:3882 +#: utils/misc/guc_tables.c:4095 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "" -#: utils/misc/guc_tables.c:3892 +#: utils/misc/guc_tables.c:4105 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "" -#: utils/misc/guc_tables.c:3902 +#: utils/misc/guc_tables.c:4115 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." msgstr "" -#: utils/misc/guc_tables.c:3912 +#: utils/misc/guc_tables.c:4125 msgid "Fraction of statements exceeding \"log_min_duration_sample\" to be logged." msgstr "" -#: utils/misc/guc_tables.c:3913 +#: utils/misc/guc_tables.c:4126 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "გამოიყენეთ მნიშვნელობები 0.0-დან (არასოდეს ჩაწერო ჟურნალში) და 1.0-ს (ჟურნალში ყოველთვის ჩაწერა) შუა." -#: utils/misc/guc_tables.c:3922 +#: utils/misc/guc_tables.c:4135 msgid "Sets the fraction of transactions from which to log all statements." msgstr "ადგენს ტრანზაქციის ნაწილს, რომლის შემდეგაც ყველა ოპერატორი ჟურნალში ჩაიწერება." -#: utils/misc/guc_tables.c:3923 +#: utils/misc/guc_tables.c:4136 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "" -#: utils/misc/guc_tables.c:3942 +#: utils/misc/guc_tables.c:4146 +msgid "Fraction of pages in a relation vacuum can scan and fail to freeze before disabling eager scanning." +msgstr "" + +#: utils/misc/guc_tables.c:4147 +msgid "A value of 0.0 disables eager scanning and a value of 1.0 will eagerly scan up to 100 percent of the all-visible pages in the relation. If vacuum successfully freezes these pages, the cap is lower than 100 percent, because the goal is to amortize page freezing across multiple vacuums." +msgstr "" + +#: utils/misc/guc_tables.c:4165 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "" -#: utils/misc/guc_tables.c:3943 -msgid "This is used only if \"archive_library\" is not set." +#: utils/misc/guc_tables.c:4166 +msgid "An empty string means use \"archive_library\"." msgstr "" -#: utils/misc/guc_tables.c:3952 +#: utils/misc/guc_tables.c:4175 msgid "Sets the library that will be called to archive a WAL file." msgstr "" -#: utils/misc/guc_tables.c:3953 -msgid "An empty string indicates that \"archive_command\" should be used." -msgstr "" +#: utils/misc/guc_tables.c:4176 +msgid "An empty string means use \"archive_command\"." +msgstr "ცარიელი სტრიქონი ნიშნავს \"archive_command\"-ის გამოყენებას." -#: utils/misc/guc_tables.c:3962 +#: utils/misc/guc_tables.c:4185 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "არქივირებული WAL ფაილის მისაღებად გამოსაძახებელი გარსის ბრძანების დაყენება." -#: utils/misc/guc_tables.c:3972 +#: utils/misc/guc_tables.c:4195 msgid "Sets the shell command that will be executed at every restart point." msgstr "ყოველ გადატვირთვის წერტილზე გასაშვები გარსის ბრძანების დაყენება." -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4205 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "" -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4215 msgid "Specifies the timeline to recover into." msgstr "აღდგენისთვის დროის მითითება." -#: utils/misc/guc_tables.c:4002 +#: utils/misc/guc_tables.c:4225 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "" -#: utils/misc/guc_tables.c:4011 +#: utils/misc/guc_tables.c:4234 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "ტრანზაქციის ID, რომლამდეც აღდგენა მოხდება." -#: utils/misc/guc_tables.c:4020 +#: utils/misc/guc_tables.c:4243 msgid "Sets the time stamp up to which recovery will proceed." msgstr "" -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4252 msgid "Sets the named restore point up to which recovery will proceed." msgstr "" -#: utils/misc/guc_tables.c:4038 +#: utils/misc/guc_tables.c:4261 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "" -#: utils/misc/guc_tables.c:4048 +#: utils/misc/guc_tables.c:4271 msgid "Sets the connection string to be used to connect to the sending server." msgstr "" -#: utils/misc/guc_tables.c:4059 +#: utils/misc/guc_tables.c:4282 msgid "Sets the name of the replication slot to use on the sending server." msgstr "" -#: utils/misc/guc_tables.c:4069 +#: utils/misc/guc_tables.c:4292 msgid "Sets the client's character set encoding." msgstr "კლიენტის სიმბოლოების კოდირების დაყენება." -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4303 msgid "Controls information prefixed to each log line." msgstr "ჟურნალის თითოეული ჩანაწერის პრეფიქსის კონტროლი." -#: utils/misc/guc_tables.c:4081 -msgid "If blank, no prefix is used." -msgstr "თუ ცარიელია, პრეფიქსი არ გამოიყენება." +#: utils/misc/guc_tables.c:4304 +msgid "An empty string means no prefix." +msgstr "" -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4313 msgid "Sets the time zone to use in log messages." msgstr "ჟურნალის შეტყობინებების დასამახსოვრებლად გამოყენებული დროის სარტყლის დაყენება." -#: utils/misc/guc_tables.c:4100 +#: utils/misc/guc_tables.c:4323 msgid "Sets the display format for date and time values." msgstr "თარიღისა და დროის მნიშვნელობების ფორმატის დაყენება." -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4324 msgid "Also controls interpretation of ambiguous date inputs." msgstr "" -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4335 msgid "Sets the default table access method for new tables." msgstr "ახალი ცხრილების ნაგულისხმევი წვდომის უფლებების მითითება." -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4346 msgid "Sets the default tablespace to create tables and indexes in." msgstr "" -#: utils/misc/guc_tables.c:4124 -msgid "An empty string selects the database's default tablespace." -msgstr "ცარიელი სტრიქონი ბაზის ნაგულისხმევ ცხრილების სივრცეს აირჩევს." +#: utils/misc/guc_tables.c:4347 utils/misc/guc_tables.c:4358 +msgid "An empty string means use the database's default tablespace." +msgstr "ცარიელი სტრიქონი ბაზის ნაგულისხმევ ცხრილების სივრცეს ნიშნავს." -#: utils/misc/guc_tables.c:4134 +#: utils/misc/guc_tables.c:4357 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "" -#: utils/misc/guc_tables.c:4145 +#: utils/misc/guc_tables.c:4368 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." msgstr "" -#: utils/misc/guc_tables.c:4157 +#: utils/misc/guc_tables.c:4370 +msgid "An empty string disables automatic self grants." +msgstr "" + +#: utils/misc/guc_tables.c:4380 msgid "Sets the path for dynamically loadable modules." msgstr "დინამიურად ჩატვირთული მოდულების ბილიკის დაყენება." -#: utils/misc/guc_tables.c:4158 +#: utils/misc/guc_tables.c:4381 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "თუ საჭიროა დინამიურად ჩატვირთვადი მოდულის გახსნა და მითითებულ სახელს არ გააჩნია საქაღალდის კომპონენტი (ანუ სახელი არ შეიცავს დახრილ ხაზს), სისტემა მითითებულ ფაილს ამ ბილიკებში მოძებნის." -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4394 +msgid "Sets the path for extension control files." +msgstr "დააყენეთ ბილიკი გაფართოების კონტროლის ფაილებისთვის." + +#: utils/misc/guc_tables.c:4395 +msgid "The remaining extension script and secondary control files are then loaded from the same directory where the primary control file was found." +msgstr "" + +#: utils/misc/guc_tables.c:4406 msgid "Sets the location of the Kerberos server key file." msgstr "Kerberos-ის სერვერის გასაღების ფაილის მდებარეობის მითითება." -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4417 msgid "Sets the Bonjour service name." msgstr "Bonjour-ის სერვისის სახელის დაყენება." -#: utils/misc/guc_tables.c:4192 +#: utils/misc/guc_tables.c:4418 +msgid "An empty string means use the computer name." +msgstr "" + +#: utils/misc/guc_tables.c:4427 msgid "Sets the language in which messages are displayed." msgstr "შეტყობინებების საჩვენებელი ენის მითითება." -#: utils/misc/guc_tables.c:4202 +#: utils/misc/guc_tables.c:4428 utils/misc/guc_tables.c:4438 utils/misc/guc_tables.c:4448 utils/misc/guc_tables.c:4458 +msgid "An empty string means use the operating system setting." +msgstr "" + +#: utils/misc/guc_tables.c:4437 msgid "Sets the locale for formatting monetary amounts." msgstr "თანხის რიცხვების ფორმატირების სტანდარტის დაყენება." -#: utils/misc/guc_tables.c:4212 +#: utils/misc/guc_tables.c:4447 msgid "Sets the locale for formatting numbers." msgstr "რიცხვების ფორმატირების ენის დაყენება." -#: utils/misc/guc_tables.c:4222 +#: utils/misc/guc_tables.c:4457 msgid "Sets the locale for formatting date and time values." msgstr "თარიღისა და დროის ფორმატირების ენის დაყენება." -#: utils/misc/guc_tables.c:4232 +#: utils/misc/guc_tables.c:4467 msgid "Lists shared libraries to preload into each backend." msgstr "თითოეული უკანაბოლოსთვის გაშვებამდე ჩასატვირთი გაზიარებული ბიბლიოთეკების სია." -#: utils/misc/guc_tables.c:4243 +#: utils/misc/guc_tables.c:4478 msgid "Lists shared libraries to preload into server." msgstr "სერვერის გაშვებამდე ჩასატვირთი გაზიარებული ბიბლიოთეკების სია." -#: utils/misc/guc_tables.c:4254 +#: utils/misc/guc_tables.c:4489 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "თითოეული უკანაბოლოსთვის გაშვებამდე ჩასატვირთი არაპრივილეგირებული გაზიარებული ბიბლიოთეკების სია." -#: utils/misc/guc_tables.c:4265 +#: utils/misc/guc_tables.c:4500 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "" -#: utils/misc/guc_tables.c:4277 +#: utils/misc/guc_tables.c:4512 msgid "Shows the server (database) character set encoding." msgstr "სერვერის (ბაზის) სიმბოლოების კოდირების ჩვენება." -#: utils/misc/guc_tables.c:4289 +#: utils/misc/guc_tables.c:4524 msgid "Shows the server version." msgstr "სერვერის ვერსიის ჩვენება." -#: utils/misc/guc_tables.c:4301 +#: utils/misc/guc_tables.c:4536 msgid "Sets the current role." msgstr "მიმდინარე როლის დაყენება." -#: utils/misc/guc_tables.c:4313 +#: utils/misc/guc_tables.c:4548 msgid "Sets the session user name." msgstr "სესიის მომხმარებლი სახელის დაყენება." -#: utils/misc/guc_tables.c:4324 +#: utils/misc/guc_tables.c:4559 msgid "Sets the destination for server log output." msgstr "სერვერის ჟურნალის გამოტანის სამიზნის დაყენება." -#: utils/misc/guc_tables.c:4325 +#: utils/misc/guc_tables.c:4560 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." msgstr "" -#: utils/misc/guc_tables.c:4336 +#: utils/misc/guc_tables.c:4571 msgid "Sets the destination directory for log files." msgstr "ჟურნალის ფაილების საქაღალდის დაყენება." -#: utils/misc/guc_tables.c:4337 +#: utils/misc/guc_tables.c:4572 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "" -#: utils/misc/guc_tables.c:4347 +#: utils/misc/guc_tables.c:4582 msgid "Sets the file name pattern for log files." msgstr "ჟურნალის ფაილების სახელის შაბლონის დაყენება." -#: utils/misc/guc_tables.c:4358 +#: utils/misc/guc_tables.c:4593 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Syslog-ში PostgreSQL-ის შეტყობინებების იდენტიფიკატორი პროგრამის სახელის დაყენება." -#: utils/misc/guc_tables.c:4369 +#: utils/misc/guc_tables.c:4604 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "მოვლენების ჟურნალში PostgreSQL-ის შეტყობინებების იდენტიფიკატორი აპლიკაციის სახელის დაყენება." -#: utils/misc/guc_tables.c:4380 +#: utils/misc/guc_tables.c:4615 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "" -#: utils/misc/guc_tables.c:4390 +#: utils/misc/guc_tables.c:4625 msgid "Selects a file of time zone abbreviations." msgstr "დროის სარტყლების აბრევიატურების ფაილის მითითება." -#: utils/misc/guc_tables.c:4400 +#: utils/misc/guc_tables.c:4635 msgid "Sets the owning group of the Unix-domain socket." msgstr "Unix-დომენის სოკეტის მფლობლის ჯგუფის დაყენება." -#: utils/misc/guc_tables.c:4401 -msgid "The owning user of the socket is always the user that starts the server." -msgstr "სოკეტის მფლობელი მომხმარებელი ყოველთვის იგივე მომხმარებელია, ვინც სერვერი გაუშვა." +#: utils/misc/guc_tables.c:4636 +msgid "The owning user of the socket is always the user that starts the server. An empty string means use the user's default group." +msgstr "სოკეტის მფლობელი მომხმარებელი ყოველთვის იგივე მომხმარებელია, ვინც სერვერი გაუშვა. ცარიელი სტრიქონი მომხმარებლის ნაგულისხმევ ჯგუფს ნიშნავს." -#: utils/misc/guc_tables.c:4411 +#: utils/misc/guc_tables.c:4646 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "აყენებს საქაღალდეებს, სადაც Unix-ის სოკეტები შეიქმნება." -#: utils/misc/guc_tables.c:4422 +#: utils/misc/guc_tables.c:4657 msgid "Sets the host name or IP address(es) to listen to." msgstr "მოსასმენი IP მისამართი ან ჰოსტის სახელი." -#: utils/misc/guc_tables.c:4437 +#: utils/misc/guc_tables.c:4672 msgid "Sets the server's data directory." msgstr "სერვერის მონაცმების საქაღალდის დაყენება." -#: utils/misc/guc_tables.c:4448 +#: utils/misc/guc_tables.c:4683 msgid "Sets the server's main configuration file." msgstr "სერვერის კონფიგურაციის მთავარი ფაილის დაყენება." -#: utils/misc/guc_tables.c:4459 +#: utils/misc/guc_tables.c:4694 msgid "Sets the server's \"hba\" configuration file." msgstr "სერვერის hba კონფიგურაციის ფაილის დაყენება." -#: utils/misc/guc_tables.c:4470 +#: utils/misc/guc_tables.c:4705 msgid "Sets the server's \"ident\" configuration file." msgstr "სერვერის ident კონფიგურაციის ფაილის დაყენება." -#: utils/misc/guc_tables.c:4481 +#: utils/misc/guc_tables.c:4716 msgid "Writes the postmaster PID to the specified file." msgstr "Postmaster-ის PID-ის მითითებულ ფაილში ჩაწერა." -#: utils/misc/guc_tables.c:4492 +#: utils/misc/guc_tables.c:4727 msgid "Shows the name of the SSL library." msgstr "SSL ბიბლიოთეკის სახელის ჩვენება." -#: utils/misc/guc_tables.c:4507 +#: utils/misc/guc_tables.c:4742 msgid "Location of the SSL server certificate file." msgstr "SSL სერვერის სერტიფიკატის ფაილის მდებარეობა." -#: utils/misc/guc_tables.c:4517 +#: utils/misc/guc_tables.c:4752 msgid "Location of the SSL server private key file." msgstr "SSL სერვერის პირადი გასაღების ფაილის მდებარეობა." -#: utils/misc/guc_tables.c:4527 +#: utils/misc/guc_tables.c:4762 msgid "Location of the SSL certificate authority file." msgstr "SSL სერვერის CA ფაილის მდებარეობა." -#: utils/misc/guc_tables.c:4537 +#: utils/misc/guc_tables.c:4772 msgid "Location of the SSL certificate revocation list file." msgstr "SSL სერვერის გაუქმებული სერტიფიკატების სიის ფაილის მდებარეობა." -#: utils/misc/guc_tables.c:4547 +#: utils/misc/guc_tables.c:4782 msgid "Location of the SSL certificate revocation list directory." msgstr "SSL სერვერის გაუქმებული სერტიფიკატების სიის საქაღალდის მდებარეობა." -#: utils/misc/guc_tables.c:4557 +#: utils/misc/guc_tables.c:4792 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "" -#: utils/misc/guc_tables.c:4568 +#: utils/misc/guc_tables.c:4803 msgid "Sets default text search configuration." msgstr "ტექსტის ძებნის ნაგულისხმევი კონფიგურაციის დაყენება." -#: utils/misc/guc_tables.c:4578 -msgid "Sets the list of allowed SSL ciphers." -msgstr "ჩართული SSL შიფრაციების სიის დაყენება." +#: utils/misc/guc_tables.c:4813 +msgid "Sets the list of allowed TLSv1.3 cipher suites." +msgstr "აყენებს TLSv1.3-ის დაშვებულ შიფრების ნაკრებებს." -#: utils/misc/guc_tables.c:4593 -msgid "Sets the curve to use for ECDH." -msgstr "ECDH-სთვის გამოყენებული მრუდის დაყენება." +#: utils/misc/guc_tables.c:4814 +msgid "An empty string means use the default cipher suites." +msgstr "ცარიელი სტრიქონი ნაგულისხმევი შიფრების ნაკრების გამოყენებას ნიშნავს." + +#: utils/misc/guc_tables.c:4824 +msgid "Sets the list of allowed TLSv1.2 (and lower) ciphers." +msgstr "აყენებს TLSv1.2-ის (და უფრო ძველი) დაშვებულ შიფრების ნაკრებებს." + +#: utils/misc/guc_tables.c:4839 +msgid "Sets the group(s) to use for Diffie-Hellman key exchange." +msgstr "" + +#: utils/misc/guc_tables.c:4840 +msgid "Multiple groups can be specified using colon-separated list." +msgstr "" -#: utils/misc/guc_tables.c:4608 +#: utils/misc/guc_tables.c:4854 msgid "Location of the SSL DH parameters file." msgstr "SSH DH პარამეტრების ფაილის მდებარეობა." -#: utils/misc/guc_tables.c:4619 +#: utils/misc/guc_tables.c:4855 +msgid "An empty string means use compiled-in default parameters." +msgstr "ცარიელი სტრიქონი კომპილაციის დროს მითითებული ნაგულისხმევი პარამეტრების გამოყენებას ნიშნავს." + +#: utils/misc/guc_tables.c:4865 msgid "Command to obtain passphrases for SSL." msgstr "SSL-ის საკვანძო ფრაზების მისაღები ბრძანება." -#: utils/misc/guc_tables.c:4630 +#: utils/misc/guc_tables.c:4866 +msgid "An empty string means use the built-in prompting mechanism." +msgstr "" + +#: utils/misc/guc_tables.c:4876 msgid "Sets the application name to be reported in statistics and logs." msgstr "" -#: utils/misc/guc_tables.c:4641 +#: utils/misc/guc_tables.c:4887 msgid "Sets the name of the cluster, which is included in the process title." msgstr "" -#: utils/misc/guc_tables.c:4652 +#: utils/misc/guc_tables.c:4898 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "" -#: utils/misc/guc_tables.c:4653 +#: utils/misc/guc_tables.c:4899 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "" -#: utils/misc/guc_tables.c:4663 +#: utils/misc/guc_tables.c:4909 msgid "JIT provider to use." msgstr "JIT სერვისის მომწოდებელი." -#: utils/misc/guc_tables.c:4674 +#: utils/misc/guc_tables.c:4920 msgid "Log backtrace for errors in these functions." msgstr "მითითებულ ფუნქციებში შეცდომის შემთხვევაში სტეკის ჟურნალში ჩაწერა." -#: utils/misc/guc_tables.c:4685 +#: utils/misc/guc_tables.c:4931 msgid "Use direct I/O for file access." msgstr "ფაილებთან წვდომისთვის პირდაპირი შეტანა/გამოტანის გამოყენება." -#: utils/misc/guc_tables.c:4696 -msgid "Lists streaming replication standby server slot names that logical WAL sender processes will wait for." +#: utils/misc/guc_tables.c:4932 +msgid "An empty string disables direct I/O." +msgstr "ცარიელი სტრიქონი გამორთავს პირდაპირ I/O-ს." + +#: utils/misc/guc_tables.c:4942 +msgid "Lists streaming replication standby server replication slot names that logical WAL sender processes will wait for." +msgstr "" + +#: utils/misc/guc_tables.c:4944 +msgid "Logical WAL sender processes will send decoded changes to output plugins only after the specified replication slots have confirmed receiving WAL." msgstr "" -#: utils/misc/guc_tables.c:4698 -msgid "Logical WAL sender processes will send decoded changes to plugins only after the specified replication slots confirm receiving WAL." +#: utils/misc/guc_tables.c:4956 +msgid "Prohibits access to non-system relations of specified kinds." msgstr "" -#: utils/misc/guc_tables.c:4719 +#: utils/misc/guc_tables.c:4967 +msgid "Lists libraries that may be called to validate OAuth v2 bearer tokens." +msgstr "" + +#: utils/misc/guc_tables.c:4978 +msgid "Logs specified aspects of connection establishment and setup." +msgstr "" + +#: utils/misc/guc_tables.c:4999 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "შეიძლება თუ არა ტექსტურ სტრიქონებში \"\\\" სიმბოლოს გამოყენება." -#: utils/misc/guc_tables.c:4729 +#: utils/misc/guc_tables.c:5009 msgid "Sets the output format for bytea." msgstr "\"bytea\"-ის გამოსატანი ფორმატის დაყენება." -#: utils/misc/guc_tables.c:4739 +#: utils/misc/guc_tables.c:5019 msgid "Sets the message levels that are sent to the client." msgstr "კლიენტთან გაგზავნილი შეტყობინების დონეების დაყენება." -#: utils/misc/guc_tables.c:4740 utils/misc/guc_tables.c:4836 utils/misc/guc_tables.c:4847 +#: utils/misc/guc_tables.c:5020 utils/misc/guc_tables.c:5116 utils/misc/guc_tables.c:5127 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "" -#: utils/misc/guc_tables.c:4750 +#: utils/misc/guc_tables.c:5030 msgid "Enables in-core computation of query identifiers." msgstr "მოთხოვნის იდენტიფიკატორის ბირთვის-შიდა გამოთვლის ჩართვა." -#: utils/misc/guc_tables.c:4760 +#: utils/misc/guc_tables.c:5040 msgid "Enables the planner to use constraints to optimize queries." msgstr "მგეგმავისთვის შეზღუდვების ჩართვა, მოთხოვნების ოპტიმიზაციისთვის." -#: utils/misc/guc_tables.c:4761 +#: utils/misc/guc_tables.c:5041 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "" -#: utils/misc/guc_tables.c:4772 +#: utils/misc/guc_tables.c:5052 msgid "Sets the default compression method for compressible values." msgstr "შეკუმშვადი მნიშვნელობების ნაგულისხმევი შეკუმშვის მეთოდის დაყენება." -#: utils/misc/guc_tables.c:4783 +#: utils/misc/guc_tables.c:5063 msgid "Sets the transaction isolation level of each new transaction." msgstr "ახალი ტრანზაქციების იზოლაციის დონის დაყენება." -#: utils/misc/guc_tables.c:4793 +#: utils/misc/guc_tables.c:5073 msgid "Sets the current transaction's isolation level." msgstr "მიმდინარე ტრანზაქციის იზოლაციის დონის დაყენება." -#: utils/misc/guc_tables.c:4804 +#: utils/misc/guc_tables.c:5084 msgid "Sets the display format for interval values." msgstr "ინტერვალის მნიშვნელობების საჩვენებელი ფორმატის დაყენება." -#: utils/misc/guc_tables.c:4815 +#: utils/misc/guc_tables.c:5095 msgid "Log level for reporting invalid ICU locale strings." msgstr "ჟურნალის დონე არასწორი ICU ლოკალის სტრიქონების ანგარიშისთვის." -#: utils/misc/guc_tables.c:4825 +#: utils/misc/guc_tables.c:5105 msgid "Sets the verbosity of logged messages." msgstr "ჟურნალში ჩაწერილი შეტყობინებების დეტალურობის დაყენება." -#: utils/misc/guc_tables.c:4835 +#: utils/misc/guc_tables.c:5115 msgid "Sets the message levels that are logged." msgstr "ჟურნალში ჩასაწერი შეტყობინების დონეების დაყენება." -#: utils/misc/guc_tables.c:4846 +#: utils/misc/guc_tables.c:5126 msgid "Causes all statements generating error at or above this level to be logged." msgstr "შეცდომის მითითებული ან უფრო ზედა კოდების ჟურნალში ჩაწერის მითითება." -#: utils/misc/guc_tables.c:4857 +#: utils/misc/guc_tables.c:5137 msgid "Sets the type of statements logged." msgstr "ჟურნალში ჩასაწერი ოპერატორის ტიპების დაყენება." -#: utils/misc/guc_tables.c:4867 +#: utils/misc/guc_tables.c:5147 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "თუ სისტემურ ჟურნალში ჩაწერა ჩართულია, მიუთითებს syslog-ის \"facility\"-ის." -#: utils/misc/guc_tables.c:4878 +#: utils/misc/guc_tables.c:5158 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "სესიის ქცევის დაყენება ტრიგერებისა და გადაწერის წესებისთვის." -#: utils/misc/guc_tables.c:4888 +#: utils/misc/guc_tables.c:5168 msgid "Sets the current transaction's synchronization level." msgstr "მიმდინარე ტრანზაქციის სინქრონიზაციის დონის დაყენება." -#: utils/misc/guc_tables.c:4898 +#: utils/misc/guc_tables.c:5178 msgid "Allows archiving of WAL files using \"archive_command\"." msgstr "'WAL' ფაილების დაარქივების დაშვება 'archive_command'-ის გამოყენებით." -#: utils/misc/guc_tables.c:4908 +#: utils/misc/guc_tables.c:5188 msgid "Sets the action to perform upon reaching the recovery target." msgstr "" -#: utils/misc/guc_tables.c:4918 +#: utils/misc/guc_tables.c:5198 msgid "Collects function-level statistics on database activity." msgstr "აგროვებს ფუნქციის დონის სტატისტიკას ბაზის აქტივობების შესახებ." -#: utils/misc/guc_tables.c:4929 +#: utils/misc/guc_tables.c:5209 msgid "Sets the consistency of accesses to statistics data." msgstr "სტატისტიკის მონაცემებთან წვდომის მიმდევრობის დაყენება." -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5219 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "'WAL' ფაილში მითითებული მეთოდით ჩაწერილი სრული გვერდის ჩაწერების შეკუმშვა." -#: utils/misc/guc_tables.c:4949 +#: utils/misc/guc_tables.c:5229 msgid "Sets the level of information written to the WAL." msgstr "WAL-ში ჩაწერილი ინფორმაციის დონის დაყენება." -#: utils/misc/guc_tables.c:4959 +#: utils/misc/guc_tables.c:5239 msgid "Selects the dynamic shared memory implementation used." msgstr "გამოყენებული გაზიარებული მეხსიერების განხორციელების არჩევა." -#: utils/misc/guc_tables.c:4969 +#: utils/misc/guc_tables.c:5249 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "" -#: utils/misc/guc_tables.c:4979 +#: utils/misc/guc_tables.c:5259 +msgid "Selects the file copy method." +msgstr "" + +#: utils/misc/guc_tables.c:5269 msgid "Selects the method used for forcing WAL updates to disk." msgstr "WAL-ისთვის დისკზე განახლებების ნაძალადევად ჩაწერის მეთოდის დაყენება." -#: utils/misc/guc_tables.c:4989 +#: utils/misc/guc_tables.c:5279 msgid "Sets how binary values are to be encoded in XML." msgstr "XML-ში ბინარული მნიშვნელობების კოდირების ტიპის დაყენება." -#: utils/misc/guc_tables.c:4999 +#: utils/misc/guc_tables.c:5289 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "" -#: utils/misc/guc_tables.c:5010 +#: utils/misc/guc_tables.c:5300 msgid "Use of huge pages on Linux or Windows." msgstr "Linux-ზე და Windows-ზე უზარმაზარი გვერდების გამოყენება." -#: utils/misc/guc_tables.c:5020 +#: utils/misc/guc_tables.c:5310 msgid "Indicates the status of huge pages." -msgstr "" +msgstr "აჩვენებს უზარმაზარი გვერდების სტატუსს." -#: utils/misc/guc_tables.c:5031 +#: utils/misc/guc_tables.c:5321 msgid "Prefetch referenced blocks during recovery." msgstr "აღდგენისას მიბმული ბლოკების წინასწარ გამოთხოვა." -#: utils/misc/guc_tables.c:5032 +#: utils/misc/guc_tables.c:5322 msgid "Look ahead in the WAL to find references to uncached data." msgstr "" -#: utils/misc/guc_tables.c:5041 +#: utils/misc/guc_tables.c:5331 msgid "Forces the planner's use parallel query nodes." msgstr "დამგეგმავის მიერ პარალელური მოთხოვნის კვანძების ნაძალადევი გამოყენების ჩართვა." -#: utils/misc/guc_tables.c:5042 +#: utils/misc/guc_tables.c:5332 msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." msgstr "" -#: utils/misc/guc_tables.c:5054 +#: utils/misc/guc_tables.c:5344 msgid "Chooses the algorithm for encrypting passwords." msgstr "აირჩიეთ პაროლების დასაშიფრად გამოყენებული ალგორითმი." -#: utils/misc/guc_tables.c:5064 +#: utils/misc/guc_tables.c:5354 msgid "Controls the planner's selection of custom or generic plan." msgstr "" -#: utils/misc/guc_tables.c:5065 +#: utils/misc/guc_tables.c:5355 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "" -#: utils/misc/guc_tables.c:5077 +#: utils/misc/guc_tables.c:5367 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "SSL/TLS-ის პროტოკოლის მინიმალური ვერსიის დაყენება." -#: utils/misc/guc_tables.c:5089 +#: utils/misc/guc_tables.c:5379 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "SSL/TLS-ის პროტოკოლის მაქსიმალური ვერსიის დაყენება." -#: utils/misc/guc_tables.c:5101 +#: utils/misc/guc_tables.c:5391 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "" -#: utils/misc/guc_tables.c:5110 +#: utils/misc/guc_tables.c:5400 msgid "Forces immediate streaming or serialization of changes in large transactions." msgstr "" -#: utils/misc/guc_tables.c:5111 +#: utils/misc/guc_tables.c:5401 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." msgstr "" +#: utils/misc/guc_tables.c:5413 +msgid "Selects the method for executing asynchronous I/O." +msgstr "აირჩიეთ მეთოდი ასინქრონული შეყვანა/გამოყვანის შესასრულებლად." + #: utils/misc/help_config.c:129 #, c-format msgid "internal error: unrecognized run-time parameter type\n" @@ -30019,6 +31360,26 @@ msgstr "" msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." msgstr "" +#: utils/misc/stack_depth.c:101 +#, c-format +msgid "stack depth limit exceeded" +msgstr "გადაცილებულია სტეკის სიღრმის ლიმიტი" + +#: utils/misc/stack_depth.c:102 +#, c-format +msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." +msgstr "" + +#: utils/misc/stack_depth.c:149 +#, c-format +msgid "\"max_stack_depth\" must not exceed %zdkB." +msgstr "\"max_stack_depth\" %zdკბ-ს არ უნდა სცდებოდეს." + +#: utils/misc/stack_depth.c:151 +#, c-format +msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." +msgstr "" + #: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" @@ -30034,57 +31395,57 @@ msgstr "" msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "" -#: utils/misc/tzparser.c:112 +#: utils/misc/tzparser.c:113 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "" -#: utils/misc/tzparser.c:121 +#: utils/misc/tzparser.c:122 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "" -#: utils/misc/tzparser.c:133 +#: utils/misc/tzparser.c:134 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "" -#: utils/misc/tzparser.c:169 +#: utils/misc/tzparser.c:170 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "დროის სარტყელის ფაილის (\"%s\") არასწორი სინტაქსი ხაზზე %d" -#: utils/misc/tzparser.c:237 +#: utils/misc/tzparser.c:238 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "დროის სარტყელის აბრევიატურა ერთზე მეტჯერაა აღწერილი: %s" -#: utils/misc/tzparser.c:239 +#: utils/misc/tzparser.c:240 #, c-format msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d." msgstr "" -#: utils/misc/tzparser.c:301 +#: utils/misc/tzparser.c:302 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "დროის სარტყელის ფაილის არასწორი ფაილი\"%s\"" -#: utils/misc/tzparser.c:314 +#: utils/misc/tzparser.c:315 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "დროის სარტყლის ფაილის რეკურსიის ლიმიტი გადაცილებულია ფაილში \"%s\"" -#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 +#: utils/misc/tzparser.c:354 utils/misc/tzparser.c:367 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "დროის სარტყელის ფაილის წაკითხვის შეცდომა \"%s\": %m" -#: utils/misc/tzparser.c:377 +#: utils/misc/tzparser.c:378 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "დროის სარტყელის ფაილის (\"%s\") ძალიან გრძელი ხაზი (\"%d\")" -#: utils/misc/tzparser.c:401 +#: utils/misc/tzparser.c:403 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "" @@ -30099,12 +31460,12 @@ msgstr "შეცდომა მეხსიერების კონტე msgid "could not attach to dynamic shared area" msgstr "დინამიური გაზიარებული მეხსიერების მიმაგრების შეცდომა" -#: utils/mmgr/mcxt.c:1155 +#: utils/mmgr/mcxt.c:1231 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "%zu ზომის მეხსიერების კონტექსტიდან \"%s\" გამოთხოვა ჩავარდა." -#: utils/mmgr/mcxt.c:1299 +#: utils/mmgr/mcxt.c:1391 #, c-format msgid "logging memory contexts of PID %d" msgstr "პროცესის, PID-ით %d მეხსიერების კონტექსტები ჟურნალში ჩაიწერება" @@ -30119,35 +31480,35 @@ msgstr "კურსორი \"%s\" უკვე არსებობს" msgid "closing existing cursor \"%s\"" msgstr "არსებული კურსორის დახურვა \"%s\"" -#: utils/mmgr/portalmem.c:401 +#: utils/mmgr/portalmem.c:403 #, c-format msgid "portal \"%s\" cannot be run" msgstr "პორტალის \"%s\" გაშვება შეუძლებელია" -#: utils/mmgr/portalmem.c:479 +#: utils/mmgr/portalmem.c:481 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "მიჭიკარტებული პორტალის წაშლა შეუძლებელია:\"%s\"" -#: utils/mmgr/portalmem.c:487 +#: utils/mmgr/portalmem.c:489 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "აქტიური პორტალის წაშლა სეუძლებელია: %s" -#: utils/mmgr/portalmem.c:738 +#: utils/mmgr/portalmem.c:740 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "" -#: utils/mmgr/portalmem.c:1229 +#: utils/mmgr/portalmem.c:1234 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %lld of temporary file" -msgstr "დროებითი ფაილის %lld-ე ბლოკზე გადახვევა შეუძლებელია" +msgid "could not seek to block % of temporary file" +msgstr "დროებითი ფაილის %-ე ბლოკზე გადახვევა შეუძლებელია" #: utils/sort/sharedtuplestore.c:466 #, c-format @@ -30159,77 +31520,77 @@ msgstr "" msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "" -#: utils/sort/tuplesort.c:2372 +#: utils/sort/tuplesort.c:2340 #, c-format msgid "cannot have more than %d runs for an external sort" msgstr "" -#: utils/sort/tuplesortvariants.c:1552 +#: utils/sort/tuplesortvariants.c:1671 #, c-format msgid "could not create unique index \"%s\"" msgstr "უნიკალური ინდექსის შექმნა შეუძლებელია: \"%s\"" -#: utils/sort/tuplesortvariants.c:1554 +#: utils/sort/tuplesortvariants.c:1673 #, c-format msgid "Key %s is duplicated." msgstr "გასაღები %s დუბლირებულია." -#: utils/sort/tuplesortvariants.c:1555 +#: utils/sort/tuplesortvariants.c:1674 #, c-format msgid "Duplicate keys exist." msgstr "არსებობს დუბლიკატი გასაღებები." -#: utils/sort/tuplestore.c:518 utils/sort/tuplestore.c:528 utils/sort/tuplestore.c:869 utils/sort/tuplestore.c:973 utils/sort/tuplestore.c:1037 utils/sort/tuplestore.c:1054 utils/sort/tuplestore.c:1256 utils/sort/tuplestore.c:1321 utils/sort/tuplestore.c:1330 +#: utils/sort/tuplestore.c:552 utils/sort/tuplestore.c:562 utils/sort/tuplestore.c:921 utils/sort/tuplestore.c:1025 utils/sort/tuplestore.c:1089 utils/sort/tuplestore.c:1106 utils/sort/tuplestore.c:1308 utils/sort/tuplestore.c:1373 utils/sort/tuplestore.c:1382 #, c-format msgid "could not seek in tuplestore temporary file" msgstr "კორტეჟების საცავი დროებითი ფაილის გადახვევა შეუძლებელია" -#: utils/time/snapmgr.c:536 +#: utils/time/snapmgr.c:557 #, c-format msgid "The source transaction is not running anymore." msgstr "საწყისი ტრანზაქცია გაშვებული აღარაა." -#: utils/time/snapmgr.c:1136 +#: utils/time/snapmgr.c:1143 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "ქვეტრანზაქციიდან სწრაფი ასლის გამოტანა შეუძლებელია" -#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 +#: utils/time/snapmgr.c:1303 utils/time/snapmgr.c:1308 utils/time/snapmgr.c:1313 utils/time/snapmgr.c:1328 utils/time/snapmgr.c:1333 utils/time/snapmgr.c:1338 utils/time/snapmgr.c:1353 utils/time/snapmgr.c:1358 utils/time/snapmgr.c:1363 utils/time/snapmgr.c:1477 utils/time/snapmgr.c:1493 utils/time/snapmgr.c:1518 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "სწრაფი ასლის არასწორი მონაცემები ფაილში \"%s\"" -#: utils/time/snapmgr.c:1393 +#: utils/time/snapmgr.c:1400 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT ყველა მოთხოვნაზე ადრე უნდა გამოიძახოთ" -#: utils/time/snapmgr.c:1402 +#: utils/time/snapmgr.c:1409 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "" -#: utils/time/snapmgr.c:1411 +#: utils/time/snapmgr.c:1418 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "სწრაფი ასლის არასწორი იდენტიფიკატორი: \"%s\"" -#: utils/time/snapmgr.c:1426 +#: utils/time/snapmgr.c:1433 #, c-format msgid "snapshot \"%s\" does not exist" msgstr "სწრაფი ასლი \"%s\" არ არსებობს" -#: utils/time/snapmgr.c:1524 +#: utils/time/snapmgr.c:1531 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "" -#: utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1535 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "" -#: utils/time/snapmgr.c:1543 +#: utils/time/snapmgr.c:1550 #, c-format msgid "cannot import a snapshot from a different database" msgstr "სხვა ბაზიდან სწრაფი ასლის შემოტანა შეუძლებელია" @@ -30238,13 +31599,114 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid " GSS (authenticated=%s, encrypted=%s)" #~ msgstr " GSS (ავთენტიფიცირებული=%s, დაშიფრული=%s)" +#, c-format +#~ msgid "\"%s\" is not a partition" +#~ msgstr "\"%s\" დანაყოფი არაა" + +#, c-format +#~ msgid "\"%s\" must be set to 0 on platforms that lack support for issuing read-ahead advice." +#~ msgstr "\"%s\" უნდა იყოს 0 პლატფორმებზე, რომლებსაც წინასწარ-წაკითხვის მითითების მხარდაჭერა არ გააჩნიათ." + +#, c-format +#~ msgid "\"RN\" not supported for input" +#~ msgstr "\"RN\" შეყვანისთვის მხარდაჭერილი არაა" + +#, c-format +#~ msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" +#~ msgstr "\"debug_io_direct\" მონაცემებისთვის მხარდაჭერილი არაა, რადგან BLCKSZ ძალიან პატარაა" + +#, c-format +#~ msgid "\"debug_io_direct\" is not supported on this platform." +#~ msgstr "\"debug_io_direct\" ამ პლატფორმაზე მხარდაჭერილი არაა." + +#, c-format +#~ msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." +#~ msgstr "პლატფორმებზე, რომლებზეც posix_fadvise() ხელმისაწვდომი არაა, \"maintenance_io_concurrency\"-ის მნიშვნელობა 0-ის ტოლი უნდა ყოს." + +#, c-format +#~ msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" +#~ msgstr "\"max_wal_size\"-ი \"wal_segment_size\"-ზე, მინიმუმ, ორჯერ მეტი უნდა იყოს" + +#, c-format +#~ msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" +#~ msgstr "\"min_wal_size\"-ი \"wal_segment_size\"-ზე მინიმუმ ორჯერ მეტი უნდა იყოს" + +#, c-format +#~ msgid "\"synchronous_standby_names\" parser failed" +#~ msgstr "\"synchronous_standby_names\"-ის დამმუშავებლის შეცდომა" + +#, c-format +#~ msgid "%s cannot be executed within a pipeline" +#~ msgstr "%s ფუნქციიდან ვერ გაეშვება" + +#, c-format +#~ msgid "%s with OID %u does not exist" +#~ msgstr "%s OID-ით %u არ არსებობს" + +#~ msgid "-1 indicates that the value could not be determined." +#~ msgstr "-1 ნიშნავს, რომ მნიშვნელობა ვერ განისაზღვრა." + #, c-format #~ msgid "-X requires a power of two value between 1 MB and 1 GB" #~ msgstr "-X მოითხოვს მნიშვნელობას, რომელიც ორის ხარისხია და არის 1 მბ-სა და 1გბ-ს შორის" +#~ msgid "0 turns this feature off." +#~ msgstr "0 გამორთავს ამ ფუნქციას." + #~ msgid "A value of -1 disables this feature." #~ msgstr "მნიშვნელობა -1 გამორთავს ამ ფუნქციას." +#~ msgid "A value of 0 turns off the timeout." +#~ msgstr "0 მოლოდინის ვადას გამორთავს." + +#, c-format +#~ msgid "COPY DEFAULT only available using COPY FROM" +#~ msgstr "COPY DEFAULT მხოლოდ COPY FROM-ის გამოყენების დროსაა ხელმისაწვდომი" + +#, c-format +#~ msgid "COPY ESCAPE requires CSV mode" +#~ msgstr "COPY ESCAPE-ს CSV რეჟიმი სჭირდება" + +#, c-format +#~ msgid "COPY FORCE_NOT_NULL cannot be used with COPY TO" +#~ msgstr "COPY FORCE_NOT_NULL-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" + +#, c-format +#~ msgid "COPY FORCE_NOT_NULL requires CSV mode" +#~ msgstr "COPY FORCE_NOT_NULL-ს CSV რეჟიმი სჭირდება" + +#, c-format +#~ msgid "COPY FORCE_NULL cannot be used with COPY TO" +#~ msgstr "COPY FORCE_NULL-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" + +#, c-format +#~ msgid "COPY FORCE_NULL requires CSV mode" +#~ msgstr "COPY FORCE_NULL-ს CSV რეჟიმი სჭირდება" + +#, c-format +#~ msgid "COPY FORCE_QUOTE cannot be used with COPY FROM" +#~ msgstr "COPY FORCE_QUOTE-ს COPY FROM-სთან ერთად ვერ გამოიყენებთ" + +#, c-format +#~ msgid "COPY FORCE_QUOTE requires CSV mode" +#~ msgstr "COPY FORCE_QUOTE-ს CSV რეჟიმი სჭირდება" + +#, c-format +#~ msgid "COPY LOG_VERBOSITY \"%s\" not recognized" +#~ msgstr "COPY LOG_VERBOSITY \"%s\" უცნობია" + +#, c-format +#~ msgid "COPY ON_ERROR \"%s\" not recognized" +#~ msgstr "COPY ON_ERROR \"%s\" უცნობია" + +#, c-format +#~ msgid "COPY ON_ERROR cannot be used with COPY TO" +#~ msgstr "COPY ON_ERROR-ს COPY TO-სთან ერთად ვერ გამოიყენებთ" + +#, c-format +#~ msgid "COPY delimiter must not appear in the DEFAULT specification" +#~ msgstr "COPY-ის გამყოფი DEFAULT-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" + #, c-format #~ msgid "COPY escape available only in CSV mode" #~ msgstr "COPY-ის სპეცსიმბოლო მხოლოდ CSV -ის რეჟიმშია ხელმისაწვდომი" @@ -30277,12 +31739,40 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "COPY quote available only in CSV mode" #~ msgstr "COPY-ის ბრჭყალი მხოლოდ CSV -ის რეჟიმშია ხელმისაწვდომი" +#, c-format +#~ msgid "CSV quote character must not appear in the DEFAULT specification" +#~ msgstr "CSV-ის ბრჭყალის სიმბოლო DEFAULT-ის სპეციფიკაციაში არ უნდა გამოჩნდეს" + +#, c-format +#~ msgid "Consider creating the slot \"%s\" or amend parameter %s." +#~ msgstr "განიხილეთ, შექმნათ სლოტი \"%s\", ან მიაწერეთ პარამეტრი %s." + +#, c-format +#~ msgid "Consider increasing the configuration parameter \"max_worker_processes\"." +#~ msgstr "გაითვალისწინეთ, რომ შეიძლება კონფიგურაციის პარამეტრის \"max_worker_processes\" გაზრდა გჭირდებათ." + #~ msgid "Controls when to replicate or apply each change." #~ msgstr "აკონტროლებს, როდის მოხდება თითოეული ცვლილების რეპლიკაცია ან გადატარება." #, c-format -#~ msgid "Could not translate strategy number %d for operator class \"%s\" for access method \"%s\"." -#~ msgstr "ვერ ვთარგმნე სტრატეგიის ნომერი %d ოპერატორის კლასისთვის \"%s\" წვდომის მეთოდისთვის \"%s\"." +#~ msgid "Could not open extension control file \"%s\": %m." +#~ msgstr "გაფართოების კონტროლის ფაილის (\"%s\") გახსნის შეცდომა: %m." + +#, c-format +#~ msgid "ECDH: could not create key" +#~ msgstr "ECDH: გასაღების შექნის შეცდომა" + +#, c-format +#~ msgid "ECDH: unrecognized curve name: %s" +#~ msgstr "ECDH: მრუდის უცნობი სახელი: %s" + +#, c-format +#~ msgid "EXPLAIN option SERIALIZE requires ANALYZE" +#~ msgstr "EXPLAIN-ის პარამეტრს SERIALIZE 'ANALYZE' სჭირდება" + +#, c-format +#~ msgid "EXPLAIN option TIMING requires ANALYZE" +#~ msgstr "EXPLAIN -ის პარამეტრ TIMING-ს ANALYZE სჭირდება" #~ msgid "Enables logging of recovery-related debugging information." #~ msgstr "აღდგენასთან კავშირში მყოფი გამართვის ინფორმაციის ჟურნალში ჩაწერის ჩართვა." @@ -30294,6 +31784,14 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "Existing constraint \"%s\" is marked NO INHERIT." #~ msgstr "არსებული შეზღუდვა \"%s\" დანიშნულია, როგორც NO INHERIT." +#, c-format +#~ msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" +#~ msgstr "FORCE_NOT_NULL სვეტი \"%s\" COPY-ის მიერ მითითებული არაა" + +#, c-format +#~ msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" +#~ msgstr "FORCE_QUOTE სვეტი \"%s\" COPY-ის მიერ მითითებული არაა" + #, c-format #~ msgid "For example, FROM (SELECT ...) [AS] foo." #~ msgstr "მაგალითად, FROM (SELECT ...) [AS] foo." @@ -30306,6 +31804,9 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "Foreign tables cannot have TRUNCATE triggers." #~ msgstr "გარე ცხრილებს TRUNCATE ტრიგერები ვერ ექნებათ." +#~ msgid "If blank, no prefix is used." +#~ msgstr "თუ ცარიელია, პრეფიქსი არ გამოიყენება." + #~ msgid "Incremental parser requires incremental lexer" #~ msgstr "ინკრემენტულ დამმუშავებელს ინკრემენტული lexer სჭირდება" @@ -30320,9 +31821,16 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "JSON_TABLE column names must be distinct from one another" #~ msgstr "JSON_TABLE-ის სვეტის სახელები ერთმანეთისგან უნდა განსხვავდებოდნენ" +#, c-format +#~ msgid "LIKE is not supported for creating foreign tables" +#~ msgstr "გარე ცხრილების შექმნისთვის LIKE მხარდაჭერილი არაა" + #~ msgid "Log backtrace for any error with error code XX000 (internal error)." #~ msgstr "ნებისმიერი შეცდომის უკუტრეისის ჩაწერა ჟურნალში შეცდომის კოდით XX000 (შიდა შეცდომა)." +#~ msgid "Logs each successful connection." +#~ msgstr "ყოველი წარმატებული შესვლის ჟურნალში ჩაწერა." + #, c-format #~ msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" #~ msgstr "MD5 ავთენტიკაცია მაშინ, როცა \"db_user_namespace\" ჩართულია, მხარდაჭერილი არაა" @@ -30335,21 +31843,59 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "MERGE not supported in WITH query" #~ msgstr "\"MERGE\"-ი \"WITH\" მოთხოვნაში მხარდაუჭერელია" +#, c-format +#~ msgid "MaxFragments should be >= 0" +#~ msgstr "MaxFragments >= 0 უნდა იყოს" + +#, c-format +#~ msgid "MinWords should be less than MaxWords" +#~ msgstr "MinWords MaxWords-ზე ნაკლები უნდა იყოს" + +#, c-format +#~ msgid "MinWords should be positive" +#~ msgstr "MinWords დადებით უნდა იყოს" + #, c-format #~ msgid "Object keys should be text." #~ msgstr "ობიექტის გასაღებები ტექსტი უნდა იყოს." #, c-format -#~ msgid "Only range and multirange are supported." -#~ msgstr "მხარდაჭერილია, მხოლოდ, შუალედი და მრავალი შუალედი." +#~ msgid "Please report this to <%s>." +#~ msgstr "გთხოვთ, შეატყობინოთ <%s>." + +#, c-format +#~ msgid "RECHECK is no longer required" +#~ msgstr "RECHECK საჭირო აღარაა" #~ msgid "Recursive descent parser cannot use incremental lexer" #~ msgstr "რეკურსიულ დაღმავალ დამმუშავებელს ინკრემენტული lexer-ის გამოყენება არ შეუძლია" +#~ msgid "Resource Usage / Asynchronous Behavior" +#~ msgstr "რესურსების გამოყენება / ასინქრონული ქცევა" + #, c-format #~ msgid "SQL/JSON item cannot be cast to target type" #~ msgstr "SQL/JSON ჩანაწერი მითითებულ ტიპში ვერ გადავა" +#, c-format +#~ msgid "Server has FLOAT8PASSBYVAL = %s, library has %s." +#~ msgstr "სერვერის FLOAT8PASSBYVAL = %s, ბიბლიოთეკას კი %s." + +#, c-format +#~ msgid "Server has FUNC_MAX_ARGS = %d, library has %d." +#~ msgstr "სერვერის FUNC_MAX_ARGS = %d, ბიბლიოთეკას კი %d." + +#, c-format +#~ msgid "Server has INDEX_MAX_KEYS = %d, library has %d." +#~ msgstr "სერვერის INDEX_MAX_KEYS = %d, ბიბლიოთეკას კი %d." + +#~ msgid "Sets the curve to use for ECDH." +#~ msgstr "ECDH-სთვის გამოყენებული მრუდის დაყენება." + +#, c-format +#~ msgid "ShortWord should be >= 0" +#~ msgstr "ShortWord >= 0 უნდა იყოს" + #~ msgid "Shows the character classification and case conversion locale." #~ msgstr "სიმბოლოების ზომის გადაყვანისა და სიმბოლოების კლასიფიკაციის ენის ჩვენება." @@ -30363,17 +31909,53 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgstr[1] "გამოწერილი პუბლიკაცია %s სხვა პუბლიკაციებს იწერს." #, c-format -#~ msgid "The column has an inherited not-null constraint." -#~ msgstr "სვეტს მემკვიდრეობით მიღებული არანულოვანი შეზღუდვა გააჩნია." +#~ msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა CATALOG_VERSION_NO %d -ით, მაგრამ სერვერი აგებულია CATALOG_VERSION_NO %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა INDEX_MAX_KEYS %d -ით, მაგრამ სერვერი აგებულია INDEX_MAX_KEYS %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა LOBLKSIZE %d -ით, მაგრამ სერვერი აგებულია LOBLKSIZE %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა MAXALIGN %d -ით, მაგრამ სერვერი აგებულია MAXALIGN %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა NAMEDATALEN %d -ით, მაგრამ სერვერი აგებულია NAMEDATALEN %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა RELSEG_SIZE%d -ით, მაგრამ სერვერი აგებულია RELSEG_SIZE %d-ით." + +#, 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 "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა TOAST_MAX_CHUNK_SIZE %d -ით, მაგრამ სერვერი აგებულია TOAST_MAX_CHUNK_SIZE %d-ით." + +#, c-format +#~ msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." +#~ msgstr "მონაცემთა ბაზის კლასტერის ინიციალიზაცია მოხდა XLOG_BLCKSZ%d -ით, მაგრამ სერვერი აგებულია XLOG_BLCKSZ%d-ით." + +#, c-format +#~ msgid "This feature is not yet supported on partitioned tables." +#~ msgstr "ეს ოპერაცია დაყოფილი ცხრილებისთვის ჯერჯერობით მხარდაჭერილი არაა." #, c-format -#~ msgid "There is no suitable operator in operator family \"%s\" for access method \"%s\"." -#~ msgstr "ვერ ვიპოვე შესაბამისი ოპერატორი ოპერატორების ოჯახში \"%s\" წვდომის მეთოდისთვის \"%s\"." +#~ msgid "This slot is being synced from the primary server." +#~ msgstr "მიმდინარეობს ამ სლოტის სინქრონიზაცია ძირითადი სერვერიდან." #, c-format #~ msgid "Unmatched \"%c\" character." #~ msgstr "სიმბოლო \"%c\" არ ემთხვევა." +#, c-format +#~ msgid "Update your data type." +#~ msgstr "განაახლეთ თქვენი მონაცემთა ტიპი." + #, c-format #~ msgid "Use ALTER DATABASE ... REFRESH COLLATION VERSION instead." #~ msgstr "სანაცვლოდ გამოიყენეთ ALTER DATABASE ... REFRESH COLLATION VERSION." @@ -30408,6 +31990,12 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "Waiting for LSN can only be executed during recovery." #~ msgstr "LSN-ის მოლოდინი, მხოლოდ, აღდგენისას შეიძლება, შესრულდეს." +#~ msgid "Zero prints all actions. -1 turns autovacuum logging off." +#~ msgstr "0-ს ყველა ქმედება გამოაქვს. -1 გამორთავს ავტომომტვერსასრუტებას." + +#~ msgid "Zero prints all queries. -1 turns this feature off." +#~ msgstr "0-ს ყველა მოთხოვნა გამოაქვს, -1 გამორთავს ამ ფუნქციას." + #, c-format #~ msgid "argument %d cannot be null" #~ msgstr "არგუმენტი %d ნულოვანი ვერ იქნება" @@ -30423,6 +32011,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "bogus input" #~ msgstr "საეჭვო შეყვანა" +#, c-format +#~ msgid "can not find partition for split partition row" +#~ msgstr "დაყოფილი დანაყოფის მწკრივისთვის დანაყოფი ვერ ვიპოვე" + #, c-format #~ msgid "cannot add NOT NULL constraint to column \"%s\" of relation \"%s\" with inheritance children" #~ msgstr "ვერ დავამატე NOT NULL შეზღუდვა სვეტს \"%s\" ურთიერთობაზე \"%s\" რომელსაც მემკვიდრეობითი შვილები გააჩნია" @@ -30431,10 +32023,6 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "cannot change NO INHERIT status of NOT NULL constraint \"%s\" in relation \"%s\"" #~ msgstr "ურთიერთობაზე \"%2$s\" NOT NULL შეზღუდვის \"%1$s\" NO INHERIT სტატუსს ვერ შეცვლით" -#, c-format -#~ msgid "cannot change NO INHERIT status of NOT NULL constraint \"%s\" on relation \"%s\"" -#~ msgstr "ურთიერთობაზე \"%2$s\" NOT NULL შეზღუდვის \"%1$s\" NO INHERIT სტატუსს ვერ შეცვლით" - #, c-format #~ msgid "cannot change access method of a partitioned table" #~ msgstr "დაყოფილი ცხრილის წვდომის მეთოდის შეცვლა შეუძლებელია" @@ -30443,6 +32031,14 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "cannot commit subtransactions during a parallel operation" #~ msgstr "პარალელური ოპერაციის დროს ქვეტრანსაქციების გადაგზავნა შეუძლებელია" +#, c-format +#~ msgid "cannot create a permanent relation as partition of temporary relation \"%s\"" +#~ msgstr "მუდმივ ურთიერთობას დროებითი ურთიერთობის \"%s\" დანაყოფის სახით ვერ შექმნით" + +#, c-format +#~ msgid "cannot create as partition of temporary relation of another session" +#~ msgstr "სხვა სესის დროებითი ურთიერთობის დანაყოფის სახით ვერ შექმნით" + #, c-format #~ msgid "cannot create exclusion constraints on partitioned table \"%s\"" #~ msgstr "დაყოფილ ცხრილზე (\"%s\") ექსკლუზიური შეზღუდვების შექმნა შეუძლებელია" @@ -30451,6 +32047,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "cannot create restricted tokens on this platform: error code %lu" #~ msgstr "ამ პლატფორმაზე შეზღუდული კოდების შექმნა შეუძლებელია: შეცდომის კოდი %lu" +#, c-format +#~ msgid "cannot match partition key to an index using access method \"%s\"" +#~ msgstr "წვდომის მეთოდით \"%s\" დანაყოფის გასაღების ინდექსთან დამთხვევა შეუძლებელია" + #, c-format #~ msgid "cannot move table \"%s\" to schema \"%s\"" #~ msgstr "ცხრილის (%s) სქემაში (%s) გადატანა შეუძლებელია" @@ -30459,6 +32059,22 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" #~ msgstr "არასწორი ინდექსის \"%s.%s\" პარალელური რეინდექსი შეუძლებელია. გამოტოვება" +#, c-format +#~ msgid "cannot remove constraint from only the partitioned table when partitions exist" +#~ msgstr "შეზღუდვის წაშლა მხოლოდ დაყოფილი ცხრილიდან მაშინ, როცა დანაყოფები არსებობს, შეუძლებელია" + +#, c-format +#~ msgid "cannot specify DEFAULT in BINARY mode" +#~ msgstr "'BINARY' რეჟიმში DEFAULT-ს ვერ მიუთითებთ" + +#, c-format +#~ msgid "cannot specify DELIMITER in BINARY mode" +#~ msgstr "რეჟიმში BINARY \"DELIMITER\"-ს ვერ მიუთითებთ" + +#, c-format +#~ msgid "cannot specify HEADER in BINARY mode" +#~ msgstr "რეჟიმში BINARY \"HEADER\"-ს ვერ მიუთითებთ" + #, c-format #~ msgid "cannot start subtransactions during a parallel operation" #~ msgstr "პარალელური ოპერაციის დროს ქვეტრანსაქციების დაწყება შეუძლებელია" @@ -30467,10 +32083,26 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "cannot subtract infinite timestamps" #~ msgstr "უსასრულო დროის შტამპების გამოკლება შეუძლებელია" +#, c-format +#~ msgid "cannot use RETURNING type %s in %s" +#~ msgstr "'RETURNING'-ის ტიპს '%s' %s-ში ვერ გამოიყენებთ" + +#, c-format +#~ msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" +#~ msgstr "ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, ან ldapurl-ის ldapprefix-სთან ერთად გამოყენება შეუძლებელია" + +#, c-format +#~ msgid "cannot use more than one FOR ORDINALITY column" +#~ msgstr "ერთზე მეტ FOR ORDINALITY სვეტს ვერ გამოიყენებთ" + #, c-format #~ msgid "collation provider LIBC is not supported on this platform" #~ msgstr "კოლაციის მომწოდებელი LIBC ამ პლატფორმაზე მხარდაჭერილი არაა" +#, c-format +#~ msgid "column \"%s\" of relation \"%s\" is not a stored generated column" +#~ msgstr "ურთიერთობის \"%2$s\" სვეტი \"%1$s\" დამახსოვრებული გენერირებული სვეტი არაა" + #, c-format #~ msgid "conversion with OID %u does not exist" #~ msgstr "გადაყვანა OID-ით %u არ არსებობს" @@ -30523,22 +32155,6 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "could not form array type name for type \"%s\"" #~ msgstr "ტიპისთვის (%s) მასივის ტიპის სახელის ფორმირება შეუძლებელია" -#, c-format -#~ msgid "could not identify a contained-by operator for type %s" -#~ msgstr "ტიპისთვის \"%s\" ოპერატორი constained-by ვერ ვიპოვე" - -#, c-format -#~ msgid "could not identify an equality operator for foreign key" -#~ msgstr "გარე გასაღებისთვის ტოლობის ოპერატორი ვერ ვიპოვე" - -#, c-format -#~ msgid "could not identify an overlaps operator for foreign key" -#~ msgstr "ვერ აღმოვაჩინე გადაფარვების ოპერატორი გარე გასაღებისთვის" - -#, c-format -#~ msgid "could not identify an overlaps operator for type %s" -#~ msgstr "ვერ აღმოვაჩინე გადაფარვების ოპერატორი ტიპისთვის %s" - #, c-format #~ msgid "could not identify current directory: %m" #~ msgstr "მიმდინარე საქაღალდის იდენტიფიკაციის პრობლემა: %m" @@ -30551,6 +32167,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "could not load pg_hba.conf" #~ msgstr "pg_hba.conf -ის ჩატვირთვის სეცდომა" +#, c-format +#~ msgid "could not look up local user ID %d: %s" +#~ msgstr "ლოკალური მომხმარებლის ID-ის (%d) ამოხსნა შეუძლებელია: %s" + #, c-format #~ msgid "could not read from streaming transaction's changes file \"%s\": read only %zu of %zu bytes" #~ msgstr "შეკუმშული ფაილის (\"%s\") წაკითხვის შეცდომა: წაკითხულია %zu %zu-დან" @@ -30564,8 +32184,8 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgstr "ფაილის წაშლის შეცდომა \"%s\": %s\n" #, c-format -#~ msgid "could not remove file or directory \"%s\": %m" -#~ msgstr "ფაილის ან საქაღალდე „%s“ ვერ წაიშალა: %m" +#~ msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" +#~ msgstr "სტატისტიკის დროებითი ფაილის \"%s\"-დან \"%s\" -მდე სახელის გადარქმევა შეუძლებელია: %m" #, c-format #~ msgid "could not set compression flag for %s: %s" @@ -30575,6 +32195,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "could not stat promote trigger file \"%s\": %m" #~ msgstr "წახალისების ტრიგერის ფაილი (\"%s\") არ არსებობს: %m" +#, c-format +#~ msgid "could not sync slot \"%s\"" +#~ msgstr "სლოტის \"%s\" სინქრონიზაცია შეუძლებელია" + #, c-format #~ msgid "could not unlink file \"%s\": %m" #~ msgstr "ფაილის (%s) ბმულის მოხსნის შეცდომა: %m" @@ -30603,6 +32227,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "duplicate JSON object key" #~ msgstr "დუბლირებული JSON ობიექტის გასაღები" +#, c-format +#~ msgid "end-of-copy marker corrupt" +#~ msgstr "კოპირების-დასასრულის სანიშნი დაზიანებულია" + #, c-format #~ msgid "extension with OID %u does not exist" #~ msgstr "გაფართოება OID-ით %u არ არსებობს" @@ -30611,10 +32239,18 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "gtsvector_in not implemented" #~ msgstr "gtsvector_in განხორციელებული არაა" +#, c-format +#~ msgid "index %lld out of valid range, 0..%lld" +#~ msgstr "ინდექსი %lld დასაშვებ დიაპაზონს (0..%lld) გარეთაა" + #, c-format #~ msgid "int2vector has too many elements" #~ msgstr "int2vector -ს მეტისმეტად ბევრი ელემენტი აქვს" +#, c-format +#~ msgid "interval out of range." +#~ msgstr "ინტერვალი დაშვებული შუალედის გარეთაა." + #, c-format #~ msgid "invalid JSON_TABLE expression" #~ msgstr "\"JSON_TABLE\"-ის არასწორი გამოსახულება" @@ -30623,6 +32259,14 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "invalid JSON_TABLE plan" #~ msgstr "\"JSON_TABLE\"-ის არასწორი გეგმა" +#, c-format +#~ msgid "invalid ON ERROR behavior" +#~ msgstr "\"ON UPDATE\"-ის არასწორი ქცევა" + +#, c-format +#~ msgid "invalid ON ERROR behavior for column \"%s\"" +#~ msgstr "\"ON ERROR\"-ის არასწორი ქცევა სვეტისთვის \"%s\"" + #, c-format #~ msgid "invalid checkpoint link in backup_label file" #~ msgstr "backup_label ფაილში არსებული საკონტროლო წერტილი არასწორია" @@ -30635,10 +32279,6 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "invalid parameter name \"%s\"" #~ msgstr "პარამეტრის არასწორი სახელი \"%s\"" -#, c-format -#~ msgid "invalid primary key definition" -#~ msgstr "არასწორი ძირითადი გასაღების აღწერა" - #, c-format #~ msgid "invalid record offset at %X/%X" #~ msgstr "ჩანაწერის არასწორი წანაცვლება მისამართზე %X/%X" @@ -30668,10 +32308,29 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "logical replication table synchronization worker" #~ msgstr "ლოგიკური რეპლიკაციის ცხრილის სინქრონიზაციის დამხმარე პროცესი" +#, c-format +#~ msgid "lower bound of partition \"%s\" conflicts with upper bound of previous partition \"%s\"" +#~ msgstr "დანაყოფის \"%s\" ქვედა ზღვარი კონფლიქტშია ზედა ზღვართან წინა დანაყოფისთვის \"%s\"" + +#, c-format +#~ msgid "lower bound of partition \"%s\" is less than lower bound of split partition" +#~ msgstr "ქვედა ზღვარი დანაყოფისთვის \"%s\" დაყოფილი დანაყოფის ქვედა საზღვარზე ნაკლებია" + +#, c-format +#~ msgid "lower bound of partition \"%s\" is not equal to lower bound of split partition" +#~ msgstr "ქვედა ზღვარი დანაყოფისთვის \"%s\" არ უდრის დაყოფილი დანაყოფის ქვედა საზღვარს" + +#~ msgid "manifest system identifier not an integer" +#~ msgstr "მანიფესტის სისტემის იდენფიტიკატორი მთელი რიცხვი არაა" + #, c-format #~ msgid "missing contrecord at %X/%X" #~ msgstr "მისამართზე %X/%X contrecord ალამი არ არსებობს" +#, c-format +#~ msgid "multiple limit options not allowed" +#~ msgstr "ლიმიტის პარამეტრების მითითება მხოლოდ ერთხელ შეგიძლიათ" + #, c-format #~ msgid "must be a superuser to terminate superuser process" #~ msgstr "ზემომხმარებლის პროცესის დასასრულებლად ზემომხმარებელი უნდა ბრძანდებოდეთ" @@ -30724,6 +32383,22 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "must have privileges of pg_create_subscription to create subscriptions" #~ msgstr "გამოწერების შესაქმნელად pg_create_subscription-ის პრივილეგიები გჭიდებათ" +#, c-format +#~ msgid "name \"%s\" is already used" +#~ msgstr "სახელი \"%s\" უკვე გამოყენებულია" + +#, c-format +#~ msgid "new partition \"%s\" would overlap with another (not split) partition \"%s\"" +#~ msgstr "ახალი დანაყოფი \"%s\" გადაფარავდა სხვა (არა დაყოფილ) დანაყოფს \"%s\"" + +#, c-format +#~ msgid "new partition \"%s\" would overlap with another new partition \"%s\"" +#~ msgstr "ახალი დანაყოფი \"%s\" გადაფარავდა სხვა ახალ დანაყოფს \"%s\"" + +#, c-format +#~ msgid "new partitions do not have value %s but split partition does" +#~ msgstr "ახალ დანაყოფს არ აქვს მნიშვნელობა %s, მაგრამ გაყოფილ დანაყოფს აქვს" + #, c-format #~ msgid "no SQL/JSON item" #~ msgstr "\"SQL/JSON\" ჩანაწერების გარეშე" @@ -30733,8 +32408,8 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgstr "არანულოვანი შეზღუდვა სვეტზე \"%s\" შვილ ცხრილებშიც უნდა წაიშალოს" #, c-format -#~ msgid "not-null constraints on partitioned tables cannot be NO INHERIT" -#~ msgstr "არანულოვანი შეზღუდვები დაყოფილ ცხრილზე NO INHERIT ვერ იქნება" +#~ msgid "not-null constraints are not supported on virtual generated columns" +#~ msgstr "ვირტუალურ დაგენერირებულ სვეტებზე არანულოვანი შეზღუდვები მხარდაჭერილი არაა" #, c-format #~ msgid "oidvector has too many elements" @@ -30752,6 +32427,16 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "operator with OID %u does not exist" #~ msgstr "ოპერატორი OID-ით %u არ არსებობს" +#, c-format +#~ msgid "" +#~ "out of memory\n" +#~ "\n" +#~ "Cannot enlarge string buffer containing %d bytes by %d more bytes.\n" +#~ msgstr "" +#~ "არასაკმარისი მეხსიერება\n" +#~ "\n" +#~ "შეუძლებელია სტრიქონის ბუფერის (%d ბაიტი) გაფართოება %d ბაიტით.\n" + #, c-format #~ msgid "out of memory while trying to decode a record of length %u" #~ msgstr "%u სიგრძის მქონე ჩანაწერის დეკოდირებისთვის მეხსიერება საკმარისი არაა" @@ -30764,14 +32449,37 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "parameter \"lc_ctype\" must be specified" #~ msgstr "უნდა იყოს მითითებული პარამეტრი \"lc_ctype\"" +#, c-format +#~ msgid "partition of hash-partitioned table cannot be merged" +#~ msgstr "ჰეშით დაყოფილი ცხრილის დანაყოფების შერწყმა შეუძლებელია" + +#, c-format +#~ msgid "partition of hash-partitioned table cannot be split" +#~ msgstr "ჰეშით დაყოფილი ცხრილის დანაყოფების დაყოფა შეუძლებელია" + +#, c-format +#~ msgid "partition with name \"%s\" is already used" +#~ msgstr "დანაყოფი სახელით \"%s\" უკვე გამოყენებულია" + #, c-format #~ msgid "promote trigger file found: %s" #~ msgstr "ნაპოვნია წახალისების ტრიგერის ფაილი: %s" +#, c-format +#~ msgid "proto_version option missing" +#~ msgstr "პარამეტრი proto_version მითითებული არაა" + +#, c-format +#~ msgid "publication_names option missing" +#~ msgstr "აკლა პარამეტრი publication_names" + #, c-format #~ msgid "record length %u at %X/%X too long" #~ msgstr "ჩანაწერის სიგრძე %u მისამართზე %X/%X ძალიან გრძელია" +#~ msgid "server process" +#~ msgstr "სერვერის პროცესი" + #, c-format #~ msgid "snapshot too old" #~ msgstr "სწრაფი ასლი ძალიან ძველია" @@ -30816,6 +32524,10 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgid "timestamp_tz format is not recognized: \"%s\"" #~ msgstr "timestamp_tz-ის ფორმატი უცნობია: \"%s\"" +#, c-format +#~ msgid "too many wait events for extensions" +#~ msgstr "მეტისმეტად ბევრი მოცდის მოვლენა გაფართოებებისთვის" + #, c-format #~ msgid "unable to map dynamic shared memory segment" #~ msgstr "დინამიური გაზიარებული მეხსიერების სეგმენტის მიბმის შეცდომა" @@ -30840,5 +32552,13 @@ msgstr "სხვა ბაზიდან სწრაფი ასლის #~ msgstr "სტატისტიკის მუდმივი ფაილი მოხსნილია: %s" #, c-format -#~ msgid "unsupported %s action for foreign key constraint using PERIOD" -#~ msgstr "მხარდაუჭერელი %s ქმედება გარე გასაღების შეზღუდვისთვის, რომელიც PERIOD-ს იყენებს" +#~ msgid "upper bound of partition \"%s\" is greater than upper bound of split partition" +#~ msgstr "ზედა ზღვარი დანაყოფისთვის \"%s\" დაყოფილი დანაყოფის ზედა საზღვარზე მეტია" + +#, c-format +#~ msgid "upper bound of partition \"%s\" is not equal to upper bound of split partition" +#~ msgstr "ზედა ზღვარი დანაყოფისთვის \"%s\" არ უდრის დაყოფილი დანაყოფის ზედა საზღვარს" + +#, c-format +#~ msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +#~ msgstr "სერვისის გაშვებისას wal_level -ის მნიშვნელობა უნდა იყოს \"replica\" ან \"logical\"." diff --git a/src/backend/po/ko.po b/src/backend/po/ko.po index b367ff4dcdeab..d71eed4b6c0eb 100644 --- a/src/backend/po/ko.po +++ b/src/backend/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: postgres (PostgreSQL) 16\n" +"Project-Id-Version: postgres (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:40+0000\n" -"PO-Revision-Date: 2023-09-08 16:12+0900\n" +"POT-Creation-Date: 2025-01-17 04:41+0000\n" +"PO-Revision-Date: 2025-01-20 16:44+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -15,6 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ../common/binaryheap.c:121 ../common/binaryheap.c:159 +#, c-format +msgid "out of binary heap slots" +msgstr "바이너리 힙 슬롯수 초과" + #: ../common/compression.c:132 ../common/compression.c:141 #: ../common/compression.c:150 #, c-format @@ -75,64 +80,66 @@ msgstr "\"%s\" 압축 알고리즘은 long-distance mode를 지원하지 않음" msgid "not recorded" msgstr "기록되어 있지 않음" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 -#: commands/copyfrom.c:1670 commands/extension.c:3480 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 +#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123 +#: utils/time/snapmgr.c:1430 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" -#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1347 access/transam/xlog.c:3193 -#: access/transam/xlog.c:3996 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328 -#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842 -#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: access/transam/twophase.c:1369 access/transam/xlog.c:3477 +#: access/transam/xlog.c:4341 access/transam/xlogrecovery.c:1238 +#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 +#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 +#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 +#: replication/logical/reorderbuffer.c:5113 +#: replication/logical/snapbuild.c:2052 replication/slot.c:2236 +#: replication/slot.c:2277 replication/walsender.c:655 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827 +#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "\"%s\" 파일을 읽을 수 없음: %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 -#: access/transam/xlog.c:3198 access/transam/xlog.c:4001 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 -#: utils/cache/relmapper.c:831 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 +#: access/transam/xlog.c:3482 access/transam/xlog.c:4346 +#: replication/logical/origin.c:750 replication/logical/origin.c:789 +#: replication/logical/snapbuild.c:2057 replication/slot.c:2240 +#: replication/slot.c:2281 replication/walsender.c:660 +#: utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" -#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108 -#: ../common/controldata_utils.c:233 ../common/controldata_utils.c:236 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 +#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 +#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1359 -#: access/transam/twophase.c:1771 access/transam/xlog.c:3039 -#: access/transam/xlog.c:3233 access/transam/xlog.c:3238 -#: access/transam/xlog.c:3374 access/transam/xlog.c:3966 -#: access/transam/xlog.c:4885 commands/copyfrom.c:1730 commands/copyto.c:332 +#: access/transam/timeline.c:512 access/transam/twophase.c:1381 +#: access/transam/twophase.c:1800 access/transam/xlog.c:3323 +#: access/transam/xlog.c:3517 access/transam/xlog.c:3522 +#: access/transam/xlog.c:3658 access/transam/xlog.c:4311 +#: access/transam/xlog.c:5246 commands/copyfrom.c:1799 commands/copyto.c:325 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 #: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:839 -#: utils/cache/relmapper.c:945 +#: replication/logical/reorderbuffer.c:5165 +#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943 +#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828 +#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 +#: utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "\"%s\" 파일을 닫을 수 없음: %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "바이트 순서 불일치" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -147,142 +154,158 @@ msgstr "" "지 않으며\n" "현재 PostgreSQL 설치본과 이 데이터 디렉터리가 호환하지 않습니다." -#: ../common/controldata_utils.c:181 ../common/controldata_utils.c:186 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1303 -#: access/transam/xlog.c:2946 access/transam/xlog.c:3109 -#: access/transam/xlog.c:3148 access/transam/xlog.c:3341 -#: access/transam/xlog.c:3986 access/transam/xlogrecovery.c:4179 -#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:816 -#: utils/cache/relmapper.c:924 utils/error/elog.c:2082 -#: utils/init/miscinit.c:1530 utils/init/miscinit.c:1664 -#: utils/init/miscinit.c:1741 utils/misc/guc.c:4600 utils/misc/guc.c:4650 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 +#: ../common/file_utils.c:70 ../common/file_utils.c:347 +#: ../common/file_utils.c:406 ../common/file_utils.c:480 +#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 +#: access/transam/timeline.c:251 access/transam/timeline.c:348 +#: access/transam/twophase.c:1325 access/transam/xlog.c:3230 +#: access/transam/xlog.c:3393 access/transam/xlog.c:3432 +#: access/transam/xlog.c:3625 access/transam/xlog.c:4331 +#: access/transam/xlogrecovery.c:4263 access/transam/xlogrecovery.c:4366 +#: access/transam/xlogutils.c:836 backup/basebackup.c:547 +#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 +#: postmaster/syslogger.c:1511 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3766 +#: replication/logical/reorderbuffer.c:4320 +#: replication/logical/reorderbuffer.c:5093 +#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884 +#: replication/slot.c:2208 replication/walsender.c:628 +#: replication/walsender.c:3051 storage/file/copydir.c:151 +#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 +#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 +#: utils/cache/relmapper.c:935 utils/error/elog.c:2124 +#: utils/init/miscinit.c:1580 utils/init/miscinit.c:1714 +#: utils/init/miscinit.c:1791 utils/misc/guc.c:4777 utils/misc/guc.c:4827 #, c-format msgid "could not open file \"%s\": %m" msgstr "\"%s\" 파일을 열 수 없음: %m" -#: ../common/controldata_utils.c:202 ../common/controldata_utils.c:205 -#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 -#: access/transam/xlog.c:8755 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:936 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 +#: access/transam/twophase.c:1773 access/transam/twophase.c:1782 +#: access/transam/xlog.c:9280 access/transam/xlogfuncs.c:698 +#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 +#: backup/walsummary.c:304 postmaster/postmaster.c:4124 +#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 +#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "\"%s\" 파일 쓰기 실패: %m" -#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1765 -#: access/transam/xlog.c:3032 access/transam/xlog.c:3227 -#: access/transam/xlog.c:3959 access/transam/xlog.c:8145 -#: access/transam/xlog.c:8190 backup/basebackup_server.c:209 -#: replication/logical/snapbuild.c:1791 replication/slot.c:1830 -#: replication/slot.c:1935 storage/file/fd.c:774 storage/file/fd.c:3798 -#: storage/smgr/md.c:1135 storage/smgr/md.c:1180 storage/sync/sync.c:451 -#: utils/misc/guc.c:4370 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 +#: ../common/file_utils.c:418 ../common/file_utils.c:488 +#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 +#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1794 +#: access/transam/xlog.c:3316 access/transam/xlog.c:3511 +#: access/transam/xlog.c:4304 access/transam/xlog.c:8655 +#: access/transam/xlog.c:8700 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812 +#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 +#: storage/file/fd.c:3851 storage/smgr/md.c:1331 storage/smgr/md.c:1376 +#: storage/sync/sync.c:446 utils/misc/guc.c:4530 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "\"%s\" 파일 fsync 실패: %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:258 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1345 -#: libpq/auth.c:1389 libpq/auth.c:1946 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 -#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:308 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 -#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2232 storage/ipc/procarray.c:2239 -#: storage/ipc/procarray.c:2738 storage/ipc/procarray.c:3374 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:469 -#: utils/adt/pg_locale.c:633 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4348 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 +#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 +#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 +#: ../common/md5_common.c:156 ../common/parse_manifest.c:157 +#: ../common/parse_manifest.c:852 ../common/psprintf.c:143 +#: ../common/scram-common.c:268 ../common/stringinfo.c:314 ../port/path.c:751 +#: ../port/path.c:788 ../port/path.c:805 access/transam/twophase.c:1434 +#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 +#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:355 postmaster/bgworker.c:945 +#: postmaster/postmaster.c:3558 postmaster/postmaster.c:4018 +#: postmaster/postmaster.c:4380 postmaster/walsummarizer.c:935 +#: replication/libpqwalreceiver/libpqwalreceiver.c:387 +#: replication/logical/logical.c:210 replication/walsender.c:835 +#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 +#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465 +#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226 +#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435 +#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 +#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:532 +#: utils/adt/pg_locale.c:696 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 +#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 +#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 +#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 +#: utils/misc/guc.c:4508 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 +#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 +#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 +#: utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "메모리 부족" #: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 +#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 +#: ../common/hmac_openssl.c:377 msgid "success" msgstr "성공" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 +#: ../common/hmac_openssl.c:371 msgid "destination buffer too small" msgstr "대상 버퍼가 너무 작습니다." -#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 msgid "OpenSSL failure" msgstr "OpenSSL 실패" -#: ../common/exec.c:172 +#: ../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일임: %m" -#: ../common/exec.c:215 +#: ../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" # translator: %s is IPv4, IPv6, or Unix -#: ../common/exec.c:223 +#: ../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "\"%s\" 실행 파일을 찾을 수 없음" -#: ../common/exec.c:250 +#: ../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 상대 경로를 절대 경로로 바꿀 수 없음: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723 +#: commands/copyto.c:654 libpq/be-secure-common.c:59 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령에서 읽을 수 없음: %m" + +#: ../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령은 아무런 데이터도 반환하지 않았음" + +#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 +#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1582 storage/ipc/latch.c:1744 +#: storage/ipc/latch.c:1870 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:790 +#: ../port/path.c:807 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 +#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 #, c-format msgid "out of memory\n" msgstr "메모리 부족\n" @@ -292,39 +315,51 @@ msgstr "메모리 부족\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 중복할 수 없음 (내부 오류)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1315 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:229 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1680 commands/copyto.c:702 commands/extension.c:3469 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 -#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일 대상으로 파일 시스템 동기화를 할 수 없습니다: %m" + +#: ../common/file_utils.c:120 ../common/file_utils.c:566 +#: ../common/file_utils.c:570 access/transam/twophase.c:1337 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 +#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 +#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749 +#: commands/copyto.c:700 commands/extension.c:3527 commands/tablespace.c:804 +#: commands/tablespace.c:893 postmaster/pgarch.c:680 +#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173 +#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 +#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 +#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../common/file_utils.c:151 ../common/file_utils.c:281 +#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 +#: commands/tablespace.c:738 postmaster/postmaster.c:1468 +#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 +#: utils/misc/tzparser.c:339 #, c-format msgid "could not open directory \"%s\": %m" msgstr "\"%s\" 디렉터리 열 수 없음: %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2892 +#: ../common/file_utils.c:169 ../common/file_utils.c:315 +#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 #, c-format msgid "could not read directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:383 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 +#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559 +#: replication/logical/snapbuild.c:1831 replication/slot.c:936 +#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 +#: utils/time/snapmgr.c:1255 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" @@ -333,75 +368,87 @@ msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" msgid "internal error" msgstr "내부 오류" -#: ../common/jsonapi.c:1144 +#: ../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "재귀적 하향 구문분석기는 증분 토큰분석기을 사용할 수 없습니다." + +#: ../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "증분 구문분석기는 증분 토큰분석기를 필요로 합니다." + +#: ../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON 계층이 너무 깊음, 허용하는 최대 깊이는 6400입니다." + +#: ../common/jsonapi.c:2127 #, c-format -msgid "Escape sequence \"\\%s\" is invalid." -msgstr "잘못된 이스케이프 조합: \"\\%s\"" +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "잘못된 이스케이프 조합: \"\\%.*s\"" -#: ../common/jsonapi.c:1147 +#: ../common/jsonapi.c:2131 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "0x%02x 값의 문자는 이스케이프 처리를 해야함." -#: ../common/jsonapi.c:1150 +#: ../common/jsonapi.c:2135 #, c-format -msgid "Expected end of input, but found \"%s\"." -msgstr "입력 자료의 끝을 기대했는데, \"%s\" 값이 더 있음." +msgid "Expected end of input, but found \"%.*s\"." +msgstr "입력 자료의 끝을 기대했는데, \"%.*s\" 값이 더 있음." -#: ../common/jsonapi.c:1153 +#: ../common/jsonapi.c:2138 #, c-format -msgid "Expected array element or \"]\", but found \"%s\"." -msgstr "\"]\" 가 필요한데 \"%s\"이(가) 있음" +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "배열 요소나 \"]\" 가 필요한데 \"%.*s\"이(가) 있음" -#: ../common/jsonapi.c:1156 +#: ../common/jsonapi.c:2141 #, c-format -msgid "Expected \",\" or \"]\", but found \"%s\"." -msgstr "\",\" 또는 \"]\"가 필요한데 \"%s\"이(가) 있음" +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "\",\" 또는 \"]\"가 필요한데 \"%.*s\"이(가) 있음" -#: ../common/jsonapi.c:1159 +#: ../common/jsonapi.c:2144 #, c-format -msgid "Expected \":\", but found \"%s\"." -msgstr "\":\"가 필요한데 \"%s\"이(가) 있음" +msgid "Expected \":\", but found \"%.*s\"." +msgstr "\":\"가 필요한데 \"%.*s\"이(가) 있음" -#: ../common/jsonapi.c:1162 +#: ../common/jsonapi.c:2147 #, c-format -msgid "Expected JSON value, but found \"%s\"." -msgstr "JSON 값을 기대했는데, \"%s\" 값임" +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "JSON 값을 기대했는데, \"%.*s\" 값임" -#: ../common/jsonapi.c:1165 +#: ../common/jsonapi.c:2150 msgid "The input string ended unexpectedly." msgstr "입력 문자열이 예상치 않게 끝났음." -#: ../common/jsonapi.c:1167 +#: ../common/jsonapi.c:2152 #, c-format -msgid "Expected string or \"}\", but found \"%s\"." -msgstr "\"}\"가 필요한데 \"%s\"이(가) 있음" +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "문자열이나 \"}\"가 필요한데 \"%.*s\"이(가) 있음" -#: ../common/jsonapi.c:1170 +#: ../common/jsonapi.c:2155 #, c-format -msgid "Expected \",\" or \"}\", but found \"%s\"." -msgstr "\",\" 또는 \"}\"가 필요한데 \"%s\"이(가) 있음" +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "\",\" 또는 \"}\"가 필요한데 \"%.*s\"이(가) 있음" -#: ../common/jsonapi.c:1173 +#: ../common/jsonapi.c:2158 #, c-format -msgid "Expected string, but found \"%s\"." -msgstr "문자열 값을 기대했는데, \"%s\" 값임" +msgid "Expected string, but found \"%.*s\"." +msgstr "문자열 값을 기대했는데, \"%.*s\" 값임" -#: ../common/jsonapi.c:1176 +#: ../common/jsonapi.c:2161 #, c-format -msgid "Token \"%s\" is invalid." -msgstr "잘못된 토큰: \"%s\"" +msgid "Token \"%.*s\" is invalid." +msgstr "잘못된 토큰: \"%.*s\"" -#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 +#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 값은 text 형으로 변환할 수 없음." -#: ../common/jsonapi.c:1181 +#: ../common/jsonapi.c:2166 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\" 표기법은 뒤에 4개의 16진수가 와야 합니다." -#: ../common/jsonapi.c:1184 +#: ../common/jsonapi.c:2169 msgid "" "Unicode escape values cannot be used for code point values above 007F when " "the encoding is not UTF8." @@ -409,19 +456,19 @@ msgstr "" "서버 인코딩이 UTF8이 아닌 경우 007F보다 큰 코드 지점 값에는 유니코드 이스케이" "프 값을 사용할 수 없음" -#: ../common/jsonapi.c:1187 +#: ../common/jsonapi.c:2178 #, c-format msgid "" "Unicode escape value could not be translated to the server's encoding %s." msgstr "유니코드 이스케이프 값을 %s 서버 인코딩으로 변환할 수 없음." -#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 +#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "유니코드 상위 surrogate(딸림 코드)는 상위 딸림 코드 뒤에 오면 안됨." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 +#: jsonpath_scan.l:713 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "유니코드 상위 surrogate(딸림 코드) 뒤에는 하위 딸림 코드가 있어야 함." @@ -446,11 +493,168 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "매니페스트의 체크섬을 초기화할 수 없음" + +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "매니페스트가 예상치 않게 끝났음." + +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "매니페스트의 체크섬을 갱신할 수 없음" + +#: ../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "예상치 않은 객체 시작" + +#: ../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "예상치 않은 객체 끝" + +#: ../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "예상치 않은 배열 시작" + +#: ../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "예상치 않은 배열 끝" + +#: ../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "예상치 않은 버전 지시자" + +#: ../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "알 수 없는 최상위 수준 필드" + +#: ../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "예기치 않은 파일 필드" + +#: ../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "예상치 않은 WAL 범위 필드" + +#: ../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "예기치 않은 객체 필드" + +#: ../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "예기치 않은 스칼라" + +#: ../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "매니페스트 버전이 정수가 아님" + +#: ../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "예기치 않은 매니페스트 버전" + +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "매니페스트에 있는 시스템 식별 번호가 정수가 아님" + +#: ../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "경로 이름이 빠졌음" + +#: ../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "경로 이름과 인코딩된 경로 이름 모두" + +#: ../common/parse_manifest.c:666 +msgid "missing size" +msgstr "크기가 빠졌음" + +#: ../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "알고리즘 생략된 체크섬" + +#: ../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "파일 이름을 디코딩할 수 없음" + +#: ../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "파일 크기가 정수가 아님" + +#: ../common/parse_manifest.c:699 backup/basebackup.c:870 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "알 수 없는 체크섬 알고리즘: \"%s\"" + +#: ../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "\"%s\" 파일의 잘못된 체크섬: \"%s\"" + +#: ../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "타임라인 없음" + +#: ../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "시작 LSN 없음" + +#: ../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "마침 LSN 없음" + +#: ../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "타림라인 값이 숫자가 아님" + +#: ../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "시작 LSN 구문 오류" + +#: ../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "마침 LSN 구문 오류" + +#: ../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "최소 두 줄이 필요함" + +#: ../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "마지막 줄에 줄바꿈 문자 없음" + +#: ../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "매니페스트 체크섬 최종 정리를 못했음" + +#: ../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "매니페스트에 체크섬 없음" + +#: ../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "잘못된 매니페스트 체크섬: \"%s\"" + +#: ../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "매니페스트 체크섬 불일치" + +#: ../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "백업 매니페스트 분석 실패: %s" + #: ../common/percentrepl.c:79 ../common/percentrepl.c:85 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2211 utils/misc/guc.c:3118 utils/misc/guc.c:3154 -#: utils/misc/guc.c:3224 utils/misc/guc.c:4547 utils/misc/guc.c:6721 -#: utils/misc/guc.c:6762 +#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 +#: utils/misc/guc.c:3283 utils/misc/guc.c:4712 utils/misc/guc.c:6931 +#: utils/misc/guc.c:6972 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "잘못된 \"%s\" 매개 변수의 값: \"%s\"" @@ -510,45 +714,45 @@ msgstr "restricted 토큰으로 재실행할 수 없음: 오류 코드 %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "하위 프로세스의 종료 코드를 구할 수 없음: 오류 코드 %lu" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:393 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 -#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 +#: access/transam/twophase.c:1733 access/transam/xlogarchive.c:119 +#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 +#: postmaster/syslogger.c:1488 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4589 +#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146 +#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 +#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343 +#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 +#: utils/time/snapmgr.c:1591 #, c-format msgid "could not remove file \"%s\": %m" msgstr "\"%s\" 파일을 삭제할 수 없음: %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 -#: storage/file/fd.c:3726 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 +#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 +#: storage/file/fd.c:3779 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 삭제할 수 없음: %m" -#: ../common/scram-common.c:271 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "salt를 인코드할 수 없음" -#: ../common/scram-common.c:287 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "저장 키를 인코드할 수 없음" -#: ../common/scram-common.c:304 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "서버 키를 인코드할 수 없음" -#: ../common/stringinfo.c:306 +#: ../common/stringinfo.c:315 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "%d바이트가 포함된 문자열 버퍼를 %d바이트 더 확장할 수 없습니다." -#: ../common/stringinfo.c:310 +#: ../common/stringinfo.c:319 #, c-format msgid "" "out of memory\n" @@ -564,7 +768,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "%ld UID를 찾을 수 없음: %s" -#: ../common/username.c:45 libpq/auth.c:1881 +#: ../common/username.c:45 libpq/auth.c:1888 msgid "user does not exist" msgstr "사용자 없음" @@ -663,20 +867,20 @@ msgstr "" #: ../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "현재 작업 디렉터리를 알 수 없음: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "현재 작업 디렉터리를 알 수 없음: %m\n" #: ../port/strerror.c:72 #, c-format msgid "operating system error %d" msgstr "운영체제 오류 %d" -#: ../port/thread.c:50 ../port/thread.c:86 +#: ../port/user.c:43 ../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "UID %d에 해당하는 로컬 사용자를 찾을 수 없음: %s" -#: ../port/thread.c:55 ../port/thread.c:91 +#: ../port/user.c:48 ../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "%d OID에 해당하는 로컬 사용자가 없음" @@ -696,89 +900,78 @@ msgstr "PowerUsers 그룹의 SID를 가져올 수 없음: 오류 코드 %lu\n" msgid "could not check access token membership: error code %lu\n" msgstr "토큰 맴버쉽 접근을 확인 할 수 없음: 오류 코드 %lu\n" -#: access/brin/brin.c:216 +#: access/brin/brin.c:405 #, c-format msgid "" "request for BRIN range summarization for index \"%s\" page %u was not " "recorded" msgstr "\"%s\" 인덱스에서 BRIN 범위 요약 요청이 기록되지 못함, 해당 페이지: %u" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1040 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 +#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 +#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 +#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 +#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 #, c-format msgid "recovery is in progress" msgstr "복구 작업 진행 중" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1386 access/brin/brin.c:1494 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "BRIN 제어 함수는 복구 작업 중에는 실행 될 수 없음" -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1391 access/brin/brin.c:1499 #, c-format msgid "block number out of range: %lld" msgstr "블록 번호가 범위를 벗어남: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1436 access/brin/brin.c:1525 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" 개체는 BRIN 인덱스가 아닙니다" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1452 access/brin/brin.c:1541 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "\"%s\" 인덱스에 대한 파티션 테이블을 열 수 없음" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:3011 access/brin/brin_minmax_multi.c:3148 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 +#: parser/parse_utilcmd.c:2277 #, c-format -msgid "cannot accept a value of type %s" -msgstr "%s 형식의 값은 사용할 수 없음" +msgid "index \"%s\" is not valid" +msgstr "\"%s\" 인덱스는 사용가능 상태가 아님" -#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178 -#: access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:941 -#: utils/adt/timestamp.c:1518 utils/adt/timestamp.c:2708 -#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2795 -#: utils/adt/timestamp.c:2848 utils/adt/timestamp.c:2887 -#: utils/adt/timestamp.c:3184 utils/adt/timestamp.c:3189 -#: utils/adt/timestamp.c:3194 utils/adt/timestamp.c:3244 -#: utils/adt/timestamp.c:3251 utils/adt/timestamp.c:3258 -#: utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3285 -#: utils/adt/timestamp.c:3292 utils/adt/timestamp.c:3322 -#: utils/adt/timestamp.c:3330 utils/adt/timestamp.c:3374 -#: utils/adt/timestamp.c:3796 utils/adt/timestamp.c:3920 -#: utils/adt/timestamp.c:4440 +#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 +#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 +#: statistics/dependencies.c:661 statistics/dependencies.c:714 +#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 +#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 +#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format -msgid "interval out of range" -msgstr "간격이 범위를 벗어남" +msgid "cannot accept a value of type %s" +msgstr "%s 형식의 값은 사용할 수 없음" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1442 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 +#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 +#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 +#: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "인덱스 행 크기 %zu이(가) 최대값 %zu(\"%s\" 인덱스)을(를) 초과함" -#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399 +#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389 #, c-format msgid "corrupted BRIN index: inconsistent range map" msgstr "BRIN 인덱스 속상: 범위 지도가 연결되지 않음" -#: access/brin/brin_revmap.c:593 +#: access/brin/brin_revmap.c:583 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "예상치 못한 0x%04X 페이지 타입: \"%s\" BRIN 인덱스 %u 블록" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 +#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "" @@ -788,8 +981,8 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 포함된 %s 함수가 잘못된 지원 번호 %d " "로 지정되었습니다." -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 +#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "" @@ -799,8 +992,8 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 포함된 %s 함수가 잘못된 signature 지원 " "번호 %d 로 지정되었습니다." -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 +#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "" @@ -810,7 +1003,7 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 포함된 %s 연산자의 %d 번 전략 번호가 잘" "못되었습니다." -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 #: access/spgist/spgvalidate.c:237 #, c-format @@ -821,8 +1014,8 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 %s 연산자가 잘못된 ORDER BY 명세를 사용" "합니다." -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 +#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "" @@ -855,32 +1048,32 @@ msgstr "" msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "\"%s\" 연산자 클래스(접근 방법: %s)에 연산자가 빠졌습니다" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 +#: access/gist/gistvalidate.c:273 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d" msgstr "\"%s\" 연산자 클래스(접근 방법: %s)에 %d 지원 함수가 빠졌습니다." -#: access/common/attmap.c:122 +#: access/common/attmap.c:121 #, c-format msgid "Returned type %s does not match expected type %s in column %d." msgstr "" "반환 자료형으로 %s 형을 지정했지만, 칼럼은 %s 자료형입니다. 해당 칼럼: %d 번" "째 칼럼" -#: access/common/attmap.c:150 +#: access/common/attmap.c:149 #, c-format msgid "" "Number of returned columns (%d) does not match expected column count (%d)." msgstr "반환할 칼럼 수(%d)와 예상되는 칼럼수(%d)가 다릅니다." -#: access/common/attmap.c:234 access/common/attmap.c:246 +#: access/common/attmap.c:233 access/common/attmap.c:245 #, c-format msgid "could not convert row type" msgstr "로우 자료형을 변환 할 수 없음" -#: access/common/attmap.c:235 +#: access/common/attmap.c:234 #, c-format msgid "" "Attribute \"%s\" of type %s does not match corresponding attribute of type " @@ -888,12 +1081,12 @@ msgid "" msgstr "" " \"%s\" 속성(대상 자료형 %s)이 %s 자료형의 속성 가운데 관련된 것이 없습니다" -#: access/common/attmap.c:247 +#: access/common/attmap.c:246 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "\"%s\" 속성(대상 자료형 %s)이 %s 자료형에는 없습니다." -#: access/common/heaptuple.c:1124 access/common/heaptuple.c:1459 +#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "칼럼 개수(%d)가 최대값(%d)을 초과했습니다" @@ -903,123 +1096,111 @@ msgstr "칼럼 개수(%d)가 최대값(%d)을 초과했습니다" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "인덱스 칼럼 개수(%d)가 최대값(%d)을 초과했습니다" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:950 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:970 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "인덱스 행(row)은 %zu 바이트를 필요로 함, 최대 크기는 %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107 +#: tcop/fastpath.c:454 tcop/postgres.c:1956 #, c-format msgid "unsupported format code: %d" msgstr "지원하지 않는 포맷 코드: %d" -#: access/common/reloptions.c:521 access/common/reloptions.c:532 +#: access/common/reloptions.c:519 access/common/reloptions.c:530 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "유효한 값: \"on\", \"off\", \"auto\"" -#: access/common/reloptions.c:543 +#: access/common/reloptions.c:541 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "사용할 수 있는 값은 \"local\" 또는 \"cascaded\" 입니다" -#: access/common/reloptions.c:691 +#: access/common/reloptions.c:689 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "사용자 정의 관계 매개 변수 형식 제한을 초과함" -#: access/common/reloptions.c:1233 +#: access/common/reloptions.c:1231 #, c-format msgid "RESET must not include values for parameters" msgstr "매개 변수의 값으로 RESET은 올 수 없음" -#: access/common/reloptions.c:1265 +#: access/common/reloptions.c:1263 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "\"%s\" 매개 변수 네임스페이스를 인식할 수 없음" -#: access/common/reloptions.c:1302 commands/variable.c:1167 +#: access/common/reloptions.c:1300 commands/variable.c:1214 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "WITH OIDS 테이블을 지원하지 않음" -#: access/common/reloptions.c:1470 +#: access/common/reloptions.c:1468 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "알 수 없는 환경 설정 이름입니다 \"%s\"" -#: access/common/reloptions.c:1582 +#: access/common/reloptions.c:1580 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "\"%s\" 매개 변수가 여러 번 지정됨" -#: access/common/reloptions.c:1598 +#: access/common/reloptions.c:1596 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "\"%s\" 불리언 옵션 값이 잘못됨: %s" -#: access/common/reloptions.c:1610 +#: access/common/reloptions.c:1608 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "\"%s\" 정수 옵션 값이 잘못됨: %s" -#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 +#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "값 %s은(는) \"%s\" 옵션 범위를 벗어남" -#: access/common/reloptions.c:1618 +#: access/common/reloptions.c:1616 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "유효한 값은 \"%d\"에서 \"%d\" 사이입니다." -#: access/common/reloptions.c:1630 +#: access/common/reloptions.c:1628 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "\"%s\" 부동 소수점 옵션 값이 잘못됨: %s" -#: access/common/reloptions.c:1638 +#: access/common/reloptions.c:1636 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "유효한 값은 \"%f\"에서 \"%f\" 사이입니다." -#: access/common/reloptions.c:1660 +#: access/common/reloptions.c:1658 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "\"%s\" enum 옵션 값이 잘못됨: %s" -#: access/common/reloptions.c:1991 +#: access/common/reloptions.c:1989 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "파티션 상위 테이블 대상으로는 스토리지 매개 변수를 지정할 수 없음" -#: access/common/reloptions.c:1992 +#: access/common/reloptions.c:1990 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "" "대신에 각 하위 파티션 테이블 대상으로 각각 스토리지 매개 변수를 지정하세요." -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:31 #, c-format msgid "compression method lz4 not supported" msgstr "lz4 압축 방법을 지원하지 않습니다" -#: access/common/toast_compression.c:34 +#: access/common/toast_compression.c:32 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "이 기능을 사용하려면 lz4 지원으로 서버를 빌드해야 합니다." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6953 -#: commands/tablecmds.c:12973 -#, c-format -msgid "too many array dimensions" -msgstr "너무 많은 배열 차수" - -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1913 -#, c-format -msgid "column \"%s\" cannot be declared SETOF" -msgstr "\"%s\" 칼럼은 SETOF를 지정할 수 없습니다" - #: access/gin/ginbulk.c:44 #, c-format msgid "posting list is too long" @@ -1027,8 +1208,8 @@ msgstr "포스팅 목록이 너무 깁니다" #: access/gin/ginbulk.c:45 #, c-format -msgid "Reduce maintenance_work_mem." -msgstr "maintenance_work_mem 설정값을 줄이세요." +msgid "Reduce \"maintenance_work_mem\"." +msgstr "\"maintenance_work_mem\" 설정값을 줄이세요." #: access/gin/ginfast.c:1041 #, c-format @@ -1045,7 +1226,7 @@ msgstr "\"%s\" 개체는 GIN 인덱스가 아닙니다" msgid "cannot access temporary indexes of other sessions" msgstr "다른 세션의 임시 인덱스는 접근할 수 없음" -#: access/gin/ginget.c:273 access/nbtree/nbtinsert.c:762 +#: access/gin/ginget.c:271 access/nbtree/nbtinsert.c:762 #, c-format msgid "failed to re-find tuple within index \"%s\"" msgstr "\"%s\" 인덱스에서 튜플 재검색 실패" @@ -1062,14 +1243,14 @@ msgstr "" msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "이 문제를 고치려면, 다음 명령을 수행하세요: REINDEX INDEX \"%s\"" -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:3996 utils/adt/arrayfuncs.c:6683 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:147 executor/execExpr.c:2200 +#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712 +#: utils/adt/rowtypes.c:974 #, c-format msgid "could not identify a comparison function for type %s" msgstr "%s 자료형에서 사용할 비교함수를 찾을 수 없습니다." -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 +#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "" @@ -1079,7 +1260,7 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 서로 다른 양쪽 입력 자료형 인자를 사용" "할 수 있는 %s 지원 함수가 포함되어 있음" -#: access/gin/ginvalidate.c:260 +#: access/gin/ginvalidate.c:258 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d or " @@ -1087,18 +1268,18 @@ msgid "" msgstr "" "\"%s\" 연산자 클래스(접근 방법: %s)에는 %d 또는 %d 지원 함수가 빠졌습니다" -#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 +#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 #: access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "지원 함수 번호 %d 잘못됨, 대상 접근 방법: %s" -#: access/gist/gist.c:759 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "\"%s\" 인덱스에 잘못된 내부 튜플이 있다고 확인되었습니다." -#: access/gist/gist.c:761 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 #, c-format msgid "" "This is caused by an incomplete page split at crash recovery before " @@ -1107,16 +1288,16 @@ msgstr "" "이 문제는 PostgreSQL 9.1 버전으로 업그레이드 하기 전에 장애 복구 처리에서 잘" "못된 페이지 분리 때문에 발생했습니다." -#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 +#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 +#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 +#: access/hash/hashutil.c:237 access/hash/hashutil.c:249 +#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 #: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "REINDEX 명령으로 다시 인덱스를 만드세요" -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1196 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "\"%s\" 인덱스의 불완전한 분기 수정중, 블록번호: %u" @@ -1135,19 +1316,19 @@ msgstr "" "인덱스가 최적화되지 않았습니다. 최적화하려면 개발자에게 문의하거나, CREATE " "INDEX 명령에서 해당 칼럼을 두 번째 인덱스로 사용하십시오." -#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 +#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 #: access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "\"%s\" 인덱스의 %u번째 블럭에서 예상치 않은 zero page가 있습니다" -#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 +#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "\"%s\" 인덱스트 %u번째 블럭이 속상되었습니다" -#: access/gist/gistvalidate.c:203 +#: access/gist/gistvalidate.c:202 #, c-format msgid "" "operator family \"%s\" of access method %s contains unsupported ORDER BY " @@ -1156,7 +1337,7 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 %s 연산자가 지원하지 않는 ORDER BY 명세" "를 사용합니다." -#: access/gist/gistvalidate.c:214 +#: access/gist/gistvalidate.c:213 #, c-format msgid "" "operator family \"%s\" of access method %s contains incorrect ORDER BY " @@ -1165,30 +1346,30 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 %s 연산자가 잘못된 ORDER BY 명세를 사용" "합니다." -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "문자열 해시 작업에 사용할 정렬규칙(collation)을 결정할 수 없음" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2039 commands/tablecmds.c:17462 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672 +#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508 +#: commands/indexcmds.c:2021 commands/tablecmds.c:18178 commands/view.c:81 +#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 +#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 +#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "명시적으로 정렬 규칙을 지정하려면 COLLATE 절을 사용하세요." -#: access/hash/hashinsert.c:86 +#: access/hash/hashinsert.c:84 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "인덱스 행 크기가 초과됨: 현재값 %zu, 최대값 %zu" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1011 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "버퍼 페이지보다 큰 값은 인덱싱할 수 없습니다." @@ -1203,17 +1384,17 @@ msgstr "잘못된 오버플로우 블록 번호: %u" msgid "out of overflow pages in hash index \"%s\"" msgstr "\"%s\" 해시 인덱스에서 오버플로우 페이지 초과" -#: access/hash/hashsearch.c:315 +#: access/hash/hashsearch.c:311 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "해시 인덱스는 whole-index scan을 지원하지 않음" -#: access/hash/hashutil.c:263 +#: access/hash/hashutil.c:262 #, c-format msgid "index \"%s\" is not a hash index" msgstr "\"%s\" 인덱스는 해시 인덱스가 아님" -#: access/hash/hashutil.c:269 +#: access/hash/hashutil.c:268 #, c-format msgid "index \"%s\" has wrong hash version" msgstr "\"%s\" 인덱스는 잘못된 해시 버전임" @@ -1231,104 +1412,114 @@ msgid "" "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "%s 연산자 패밀리(접근 방법: %s)에 cross-type 연산자가 빠졌음" -#: access/heap/heapam.c:2027 +#: access/heap/heapam.c:2204 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "병렬 작업자는 튜플을 추가 할 수 없음" -#: access/heap/heapam.c:2546 +#: access/heap/heapam.c:2723 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "병렬 작업 중에는 튜플을 지울 수 없음" -#: access/heap/heapam.c:2593 +#: access/heap/heapam.c:2770 #, c-format msgid "attempted to delete invisible tuple" msgstr "볼 수 없는 튜플을 삭제 하려고 함" -#: access/heap/heapam.c:3036 access/heap/heapam.c:5903 +#: access/heap/heapam.c:3218 access/heap/heapam.c:6454 access/index/genam.c:818 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "병렬 작업 중에 튜플 갱신은 할 수 없음" -#: access/heap/heapam.c:3164 +#: access/heap/heapam.c:3350 #, c-format msgid "attempted to update invisible tuple" msgstr "볼 수 없는 튜플을 변경하려고 함" -#: access/heap/heapam.c:4551 access/heap/heapam.c:4589 -#: access/heap/heapam.c:4854 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4861 access/heap/heapam.c:4899 +#: access/heap/heapam.c:5164 access/heap/heapam_handler.c:468 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "\"%s\" 릴레이션의 잠금 정보를 구할 수 없음" -#: access/heap/heapam_handler.c:412 +#: access/heap/heapam.c:6267 commands/trigger.c:3340 +#: executor/nodeModifyTable.c:2376 executor/nodeModifyTable.c:2467 +#, c-format +msgid "" +"tuple to be updated was already modified by an operation triggered by the " +"current command" +msgstr "" +"현재 명령으로 실행된 트리거 작업으로 변경해야할 자료가 이미 바뀌었습니다." + +#: access/heap/heapam_handler.c:413 #, c-format msgid "" "tuple to be locked was already moved to another partition due to concurrent " "update" msgstr "잠글 튜플은 동시 업데이트로 다른 파티션으로 이미 옮겨졌음" -#: access/heap/hio.c:536 access/heap/rewriteheap.c:659 +#: access/heap/hio.c:535 access/heap/rewriteheap.c:640 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "로우가 너무 큽니다: 크기 %zu, 최대값 %zu" -#: access/heap/rewriteheap.c:919 +#: access/heap/rewriteheap.c:885 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "\"%s\" 파일 쓰기 실패, %d / %d 기록함: %m." -#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2971 access/transam/xlog.c:3162 -#: access/transam/xlog.c:3938 access/transam/xlog.c:8744 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:518 -#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/transam/xlog.c:3255 access/transam/xlog.c:3446 +#: access/transam/xlog.c:4283 access/transam/xlog.c:9269 +#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 +#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4111 +#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603 +#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 +#: utils/time/snapmgr.c:1234 #, c-format msgid "could not create file \"%s\": %m" msgstr "\"%s\" 파일을 만들 수 없음: %m" -#: access/heap/rewriteheap.c:1138 +#: access/heap/rewriteheap.c:1104 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "\"%s\" 파일을 %u 크기로 정리할 수 없음: %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3021 access/transam/xlog.c:3218 -#: access/transam/xlog.c:3950 commands/dbcommands.c:530 -#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 +#: access/transam/xlog.c:3305 access/transam/xlog.c:3502 +#: access/transam/xlog.c:4295 commands/dbcommands.c:506 +#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363 #: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1605 -#: utils/init/miscinit.c:1616 utils/init/miscinit.c:1624 utils/misc/guc.c:4331 -#: utils/misc/guc.c:4362 utils/misc/guc.c:5490 utils/misc/guc.c:5508 -#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788 +#: replication/slot.c:2094 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1655 +#: utils/init/miscinit.c:1666 utils/init/miscinit.c:1674 utils/misc/guc.c:4491 +#: utils/misc/guc.c:4522 utils/misc/guc.c:5675 utils/misc/guc.c:5693 +#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 #, c-format msgid "could not write to file \"%s\": %m" msgstr "\"%s\" 파일 쓰기 실패: %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:473 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "적극적으로 \"%s.%s.%s\" 청소 중" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:478 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "\"%s.%s.%s\" 청소 중" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:626 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "\"%s.%s.%s\" 테이블 청소 끝남: 인덱스 탐색: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:637 #, c-format msgid "" "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": " @@ -1337,7 +1528,7 @@ msgstr "" "트랙젝션 ID 겹침 방지를 위한 적극적인 \"%s.%s.%s\" 테이블 자동 청소: 인덱스 " "탐색: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:639 #, c-format msgid "" "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: " @@ -1345,29 +1536,29 @@ msgid "" msgstr "" "트랙젝션 ID 겹침 방지를 위한 \"%s.%s.%s\" 테이블 자동 청소: 인덱스 탐색: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "적극적인 \"%s.%s.%s\" 테이블 자동 청소: 인덱스 탐색: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "\"%s.%s.%s\" 테이블 자동 청소: 인덱스 탐색: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "페이지: %u 삭제됨, %u 남음, %u 검사됨 (전체의 %.2f%%)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "" "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "" "튜플: %.lld 삭제됨, %lld 남음, 아직 %lld 개의 튜플을 지워야하지만 못지웠음\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:666 #, c-format msgid "" "tuples missed: %lld dead from %u pages not removed due to cleanup lock " @@ -1376,37 +1567,37 @@ msgstr "" "놓친 튜플: %lld 개의 죽은 튜플이 %u 개의 페이지 안에 있음: cleanup 잠금 연결 " "때문\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:672 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "삭제 가능한 컷오프: %u, which was %d XIDs old when operation ended\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "새 relfrozenxid: %u, which is %d XIDs ahead of previous value\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:687 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "새 relminmxid: %u, which is %d MXIDs ahead of previous value\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:690 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "" "영구보관: 테이블의 %u개 페이지(전체의 %.2f%%)에서 %lld 개의 튜플을 영구 보관" "함\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:698 msgid "index scan not needed: " msgstr "인덱스 검사 필요 없음: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:700 msgid "index scan needed: " msgstr "인덱스 검사 필요함: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:702 #, c-format msgid "" "%u pages from table (%.2f%% of total) had %lld dead item identifiers " @@ -1414,21 +1605,21 @@ msgid "" msgstr "" "테이블의 %u개 페이지(전체의 %.2f%%)에서 %lld 개의 죽은 항목 식별자를 지웠음\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:707 msgid "index scan bypassed: " msgstr "인덱스 검사 통과됨: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:709 msgid "index scan bypassed by failsafe: " msgstr "failsafe의 의해 인덱스 검사 통과됨: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "" "테이블의 %u 개 페이지(전체의 %.2f%%)에서 %lld 개의 죽은 항목 식별자가 있음\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:726 #, c-format msgid "" "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u " @@ -1437,38 +1628,38 @@ msgstr "" "\"%s\" 인덱스: 페이지: 전체 가운데 %u, 새롭게 지운거 %u, 현재 지운거 %u, 재사" "용한 것 %u\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:738 commands/analyze.c:794 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "I/O 속도: 읽기: %.3f ms, 쓰기: %.3f ms\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:748 commands/analyze.c:797 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "평균 읽기 속도: %.3f MB/s, 평균 쓰기 속도: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:751 commands/analyze.c:799 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "버퍼 사용량: %lld 조회, %lld 놓침, %lld 변경됨\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:756 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "WAL 사용량: %lld 레코드, %lld full page 이미지, %llu 바이트\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:803 #, c-format msgid "system usage: %s" msgstr "시스템 사용량: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2170 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "" "\"%s\" 테이블: %lld 개의 죽은 항목 실별자를 %u 개의 페이지에서 삭제했음" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2324 #, c-format msgid "" "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after " @@ -1477,12 +1668,12 @@ msgstr "" "\"%s.%s.%s\" 테이블의 불필요한 관리 작업은 통과했음, %d 번의 인덱스 검사로 굳" "이 필요 없음" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2327 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "해당 테이블의 relfrozenxid 나 relminmxid 값이 너무 오래 된 것입니다." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2328 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or " @@ -1495,22 +1686,22 @@ msgstr "" "VACUUM 작업이 트랜잭션 ID가 증가하는 것을 따라 잡을 있는 다른 방법도 해 봐야 " "할 것 같습니다." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2590 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": 잠금 요청 충돌로 자료 비우기 작업을 중지합니다" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2660 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "\"%s\" 테이블: %u 에서 %u 페이지로 정리했음" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:2722 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "\"%s\" 테이블: 잠금 요청 충돌로 자료 비우기 작업이 지연되고 있음" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:2841 #, c-format msgid "" "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary " @@ -1519,47 +1710,47 @@ msgstr "" "\"%s\" 청소 작업에서의 병렬 옵션은 무시함 --- 임시 테이블은 병렬 처리로 청소 " "할 수 없음" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3108 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "%u 블록 %u 오프셋 탐색 중 (해당 릴레이션: \"%s.%s\")" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3111 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "%u 블록(해당 릴레이션: \"%s.%s\")을 탐색 중" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3115 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "\"%s.%s\" 릴레이션을 탐색 중" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3123 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "%u 블록 %u 오프셋 청소 중 (해당 릴레이션: \"%s.%s\")" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3126 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "%u 블록(해당 릴레이션: \"%s.%s\")을 청소 중" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3130 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "\"%s.%s\" 릴레이션 청소 중" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3135 commands/vacuumparallel.c:1112 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "\"%s\" 인덱스(해당 릴레이션 \"%s.%s\") 청소 중" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1118 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "\"%s\" 인덱스 (해당 릴레이션 \"%s.%s\")을 정돈(clean up) 중" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3146 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "\"%s.%s\" 릴레이션을 %u 블럭으로 줄이는 중" @@ -1574,19 +1765,24 @@ msgstr "\"%s\" 접근 방법은 %s 자료형에는 쓸 수 없음" msgid "index access method \"%s\" does not have a handler" msgstr "\"%s\" 인덱스 접근 방법에 대한 핸들러가 없음" -#: access/index/genam.c:490 +#: access/index/genam.c:489 #, c-format msgid "transaction aborted during system catalog scan" msgstr "시스템 카탈로그 탐색 중 트랜잭션 중지됨" -#: access/index/indexam.c:142 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2867 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17163 commands/tablecmds.c:18935 +#: access/index/genam.c:657 access/index/indexam.c:82 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "reindex 시작할 때는 \"%s\" 인덱스를 접근할 없음" + +#: access/index/indexam.c:203 catalog/objectaddress.c:1356 +#: commands/indexcmds.c:2851 commands/tablecmds.c:281 commands/tablecmds.c:305 +#: commands/tablecmds.c:17873 commands/tablecmds.c:19740 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" 개체는 인덱스가 아닙니다" -#: access/index/indexam.c:979 +#: access/index/indexam.c:1028 #, c-format msgid "operator class %s has no options" msgstr "%s 연산자 클래스는 옵션이 없습니다" @@ -1607,7 +1803,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "이 문제는 non-immutable 인덱스 표현식 때문인듯 합니다." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: parser/parse_utilcmd.c:2323 #, c-format msgid "index \"%s\" is not a btree" msgstr "\"%s\" 인덱스는 btree 인덱스가 아닙니다" @@ -1621,12 +1817,12 @@ msgstr "" "\"%s\" 인덱스의 버전이 틀립니다: 파일 버전 %d, 현재 버전 %d, 최소 지원 버전 " "%d" -#: access/nbtree/nbtpage.c:1866 +#: access/nbtree/nbtpage.c:1861 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "\"%s\" 인덱스에 반쯤 죽은(half-dead) 내부 페이지가 있음" -#: access/nbtree/nbtpage.c:1868 +#: access/nbtree/nbtpage.c:1863 #, c-format msgid "" "This can be caused by an interrupted VACUUM in version 9.3 or older, before " @@ -1635,7 +1831,7 @@ msgstr "" "이 문제는 9.3 버전 이하 환경에서 VACUUM 작업이 중지되고, 그 상태로 업그레이드" "되었을 가능성이 큽니다. 해당 인덱스를 다시 만드십시오." -#: access/nbtree/nbtutils.c:2662 +#: access/nbtree/nbtutils.c:5108 #, c-format msgid "" "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" @@ -1643,12 +1839,12 @@ msgstr "" "인덱스 행 크기(%zu)가 btree(%u 버전)의 최대값(%zu)을 초과함 (해당 인덱스: " "\"%s\")" -#: access/nbtree/nbtutils.c:2668 +#: access/nbtree/nbtutils.c:5114 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "인덱스 로우가 %u,%u 튜플(해당 릴레이션 \"%s\")을 참조함." -#: access/nbtree/nbtutils.c:2672 +#: access/nbtree/nbtutils.c:5118 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1667,13 +1863,19 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에는 %s 자료형과 %s 자료형용 지원 함수가 " "빠졌음" +#: access/sequence/sequence.c:75 access/table/table.c:145 +#: optimizer/util/plancat.c:144 +#, c-format +msgid "cannot open relation \"%s\"" +msgstr "\"%s\" 릴레이션을 열 수 없음" + #: access/spgist/spgutils.c:245 #, c-format msgid "" "compress method must be defined when leaf type is different from input type" msgstr "입력 자료형에서 리프 유형이 다를 때 압축 방법은 반드시 정의해야 함" -#: access/spgist/spgutils.c:1008 +#: access/spgist/spgutils.c:1028 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "SP-GiST 내부 튜플 크기가 초과됨: 현재값 %zu, 최대값 %zu" @@ -1692,73 +1894,69 @@ msgstr "" "\"%s\" 연산자 패밀리(접근 방법: %s)에 %d 지원 함수가 %s 자료형용으로 없습니" "다." -#: access/table/table.c:145 optimizer/util/plancat.c:145 -#, c-format -msgid "cannot open relation \"%s\"" -msgstr "\"%s\" 릴레이션을 열 수 없음" - -#: access/table/tableam.c:265 +#: access/table/tableam.c:255 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "tid (%u, %u)가 바르지 않음, 해당 릴레이션: \"%s\"" -#: access/table/tableamapi.c:116 +#: access/table/tableamapi.c:109 #, c-format -msgid "%s cannot be empty." -msgstr "%s 값은 비워 둘 수 없음" +msgid "\"%s\" cannot be empty." +msgstr "\"%s\" 값은 비워 둘 수 없음" -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774 +#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4858 #, c-format -msgid "%s is too long (maximum %d characters)." -msgstr "%s 설정값이 너무 깁니다 (최대 %d 문자)" +msgid "\"%s\" is too long (maximum %d characters)." +msgstr "\"%s\" 설정값이 너무 깁니다 (최대 %d 문자)" -#: access/table/tableamapi.c:146 +#: access/table/tableamapi.c:139 #, c-format msgid "table access method \"%s\" does not exist" msgstr "\"%s\" 테이블 접근 방법이 없습니다" -#: access/table/tableamapi.c:151 +#: access/table/tableamapi.c:144 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "\"%s\" 테이블 접근 방법이 없습니다." -#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152 +#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151 #, c-format msgid "sample percentage must be between 0 and 100" msgstr "샘플 퍼센트 값은 0에서 100 사이여야 함" -#: access/transam/commit_ts.c:279 +#: access/transam/commit_ts.c:287 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "%u 트랜잭션의 커밋 타임스탬프를 알 수 없음" -#: access/transam/commit_ts.c:377 +#: access/transam/commit_ts.c:385 #, c-format msgid "could not get commit timestamp data" msgstr "커밋 타임스탬프 자료를 찾을 수 없음" -#: access/transam/commit_ts.c:379 +#: access/transam/commit_ts.c:387 #, c-format msgid "" "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "운영 서버에서 \"%s\" 환경 설정 매개 변수를 설정했는지 확인하세요." -#: access/transam/commit_ts.c:381 +#: access/transam/commit_ts.c:389 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "\"%s\" 환경 설정 매개 변수를 지정하세요." -#: access/transam/multixact.c:1023 +#: access/transam/multixact.c:1091 #, c-format msgid "" -"database is not accepting commands that generate new MultiXactIds to avoid " +"database is not accepting commands that assign new MultiXactIds to avoid " "wraparound data loss in database \"%s\"" msgstr "" "\"%s\" 데이터베이스 자료 손실을 막기 위해 새로운 MultiXactId 만드는 작업을 " "더 이상 할 수 없습니다." -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1093 access/transam/multixact.c:1100 +#: access/transam/multixact.c:1124 access/transam/multixact.c:1133 +#: access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1766,19 +1964,19 @@ msgid "" "drop stale replication slots." msgstr "" "해당 데이터베이스 단위로 VACUUM 작업을 진행하십시오.\n" -"또한 오래된 트랜잭션을 커밋또는 롤백하거나 잠긴 복제 슬롯을 지울 필요가 있습" +"또한 오래된 트랜잭션을 커밋 또는 롤백하거나 잠긴 복제 슬롯을 지울 필요가 있습" "니다." -#: access/transam/multixact.c:1030 +#: access/transam/multixact.c:1098 #, c-format msgid "" -"database is not accepting commands that generate new MultiXactIds to avoid " +"database is not accepting commands that assign new MultiXactIds to avoid " "wraparound data loss in database with OID %u" msgstr "" "%u OID 데이터베이스 자료 손실을 막기 위해 새로운 MultiXactId 만드는 작업을 " "더 이상 할 수 없습니다." -#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1119 access/transam/multixact.c:2474 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "" @@ -1787,7 +1985,7 @@ msgstr[0] "" "\"%s\" 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 VACUUM 작업을 해야 합니" "다." -#: access/transam/multixact.c:1060 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1128 access/transam/multixact.c:2483 #, c-format msgid "" "database with OID %u must be vacuumed before %u more MultiXactId is used" @@ -1797,12 +1995,12 @@ msgstr[0] "" "%u OID 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 VACUUM 작업을 해야 합니" "다." -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1189 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "multixact \"회수\" 초과" -#: access/transam/multixact.c:1122 +#: access/transam/multixact.c:1190 #, c-format msgid "" "This command would create a multixact with %u members, but the remaining " @@ -1813,17 +2011,17 @@ msgid_plural "" msgstr[0] "" "이 명령은 %u 개의 multixact를 써야하는데, 쓸 수 있는 공간은 %u 개 뿐입니다." -#: access/transam/multixact.c:1127 +#: access/transam/multixact.c:1195 #, c-format msgid "" "Execute a database-wide VACUUM in database with OID %u with reduced " -"vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age " -"settings." +"\"vacuum_multixact_freeze_min_age\" and " +"\"vacuum_multixact_freeze_table_age\" settings." msgstr "" -"vacuum_multixact_freeze_min_age, vacuum_multixact_freeze_table_age 값을 조정" -"하고, %u OID 데이터베이스 대상으로 VACUUM 작업을 하십시오." +"\"vacuum_multixact_freeze_min_age\", \"vacuum_multixact_freeze_table_age\" 값" +"을 조정하고, %u OID 데이터베이스 대상으로 VACUUM 작업을 하십시오." -#: access/transam/multixact.c:1158 +#: access/transam/multixact.c:1226 #, c-format msgid "" "database with OID %u must be vacuumed before %d more multixact member is used" @@ -1834,42 +2032,41 @@ msgstr[0] "" "%u OID 데이터베이스는 %d 개의 멀티트랜잭션을 사용하기 전에 vacuum 작업을 해" "야 합니다." -#: access/transam/multixact.c:1163 +#: access/transam/multixact.c:1231 #, c-format msgid "" "Execute a database-wide VACUUM in that database with reduced " -"vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age " -"settings." +"\"vacuum_multixact_freeze_min_age\" and " +"\"vacuum_multixact_freeze_table_age\" settings." msgstr "" -"vacuum_multixact_freeze_min_age 설정값과 vacuum_multixact_freeze_table_age 값" -"을 줄여서 데이터베이스 단위로 VACUUM 작업을 진행하세요." +"\"vacuum_multixact_freeze_min_age\" 설정값과 " +"\"vacuum_multixact_freeze_table_age\" 값을 줄여서 데이터베이스 단위로 VACUUM " +"작업을 진행하세요." -#: access/transam/multixact.c:1302 +#: access/transam/multixact.c:1371 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "%u번 MultiXactId 더이상 없음 -- 번호 겹침 현상 발생" -#: access/transam/multixact.c:1308 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "%u번 MultiXactId를 만들 수 없음 -- 번호 겹침 현상 발생" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2479 access/transam/multixact.c:2488 #, c-format msgid "" -"To avoid a database shutdown, execute a database-wide VACUUM in that " -"database.\n" +"To avoid MultiXactId assignment failures, execute a database-wide VACUUM in " +"that database.\n" "You might also need to commit or roll back old prepared transactions, or " "drop stale replication slots." msgstr "" -"데이터베이스가 종료되지 않도록 하려면 데이터베이스 수준의 VACUUM을 실행하십시" +"MultiXactId 할당 실패를 피하려면, 데이터베이스 수준의 VACUUM을 실행하십시" "오.\n" -"또한 오래된 트랜잭션을 커밋또는 롤백 하거나, 잠긴 복제 슬롯을 지울 필요가 있" +"또한 오래된 트랜잭션을 커밋 또는 롤백 하거나, 잠긴 복제 슬롯을 지울 필요가 있" "습니다." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2767 #, c-format msgid "" "MultiXact member wraparound protections are disabled because oldest " @@ -1878,19 +2075,19 @@ msgstr "" "가장 오래된 체크포인트 작업이 완료된 %u 멀티 트랜잭션 번호가 디스크에 없기 때" "문에, 멀티 트랜잭션 번호 겹침 방지 기능이 비활성화 되어 있습니다." -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2789 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "멀티 트랜잭션 번호 겹침 방지 기능이 활성화 되었음" -#: access/transam/multixact.c:3027 +#: access/transam/multixact.c:3180 #, c-format msgid "" "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "" "가장 오래된 멀티 트랜잭션 번호는 %u, 가장 최신 것은 %u, truncate 작업 건너뜀" -#: access/transam/multixact.c:3045 +#: access/transam/multixact.c:3198 #, c-format msgid "" "cannot truncate up to MultiXact %u because it does not exist on disk, " @@ -1899,163 +2096,168 @@ msgstr "" "디스크에 해당 멀티 트랜잭션 번호가 없어, %u 멀티 트랜잭션 번호로 truncate 못" "함, truncate 작업 건너뜀" -#: access/transam/multixact.c:3359 +#: access/transam/multixact.c:3517 #, c-format msgid "invalid MultiXactId: %u" msgstr "잘못된 MultiXactId: %u" -#: access/transam/parallel.c:729 access/transam/parallel.c:848 +#: access/transam/parallel.c:748 access/transam/parallel.c:867 #, c-format msgid "parallel worker failed to initialize" msgstr "병렬 작업자 초기화 실패" -#: access/transam/parallel.c:730 access/transam/parallel.c:849 +#: access/transam/parallel.c:749 access/transam/parallel.c:868 #, c-format msgid "More details may be available in the server log." msgstr "보다 자세한 내용은 서버 로그에 남겨졌을 수 있습니다." -#: access/transam/parallel.c:910 +#: access/transam/parallel.c:929 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "병렬 트랜잭션 처리 중 postmaster 종료됨" -#: access/transam/parallel.c:1097 +#: access/transam/parallel.c:1116 #, c-format msgid "lost connection to parallel worker" msgstr "병렬 처리 작업자 프로세스 연결 끊김" -#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 +#: access/transam/parallel.c:1172 access/transam/parallel.c:1174 msgid "parallel worker" msgstr "병렬 처리 작업자" -#: access/transam/parallel.c:1319 replication/logical/applyparallelworker.c:893 +#: access/transam/parallel.c:1344 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "동적 공유 메모리 세그먼트를 할당할 수 없음" -#: access/transam/parallel.c:1324 replication/logical/applyparallelworker.c:899 +#: access/transam/parallel.c:1349 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "동적 공유 메모리 세그먼트에 잘못된 매직 번호가 있음" -#: access/transam/rmgr.c:84 +#: access/transam/rmgr.c:93 #, c-format msgid "resource manager with ID %d not registered" msgstr "%d ID의 자원 관리자가 등록되어 있지 않음" -#: access/transam/rmgr.c:85 +#: access/transam/rmgr.c:94 #, c-format msgid "" "Include the extension module that implements this resource manager in " -"shared_preload_libraries." +"\"shared_preload_libraries\"." msgstr "" -"이 자원 관리자 확장 모듈 라이브러리를 shared_preload_libraries 설정값으로 추" -"가해주세요." +"이 자원 관리자 구현하는 그 확장 모듈을 \"shared_preload_libraries\" 설정값으" +"로 추가해주세요." -#: access/transam/rmgr.c:101 +#: access/transam/rmgr.c:110 #, c-format msgid "custom resource manager name is invalid" msgstr "사용자 정의 자원 관리자 이름이 바르지 않음" -#: access/transam/rmgr.c:102 +#: access/transam/rmgr.c:111 #, c-format msgid "Provide a non-empty name for the custom resource manager." msgstr "사용자 정의 자원 관리자 이름은 비워둘 수 없습니다." -#: access/transam/rmgr.c:105 +#: access/transam/rmgr.c:114 #, c-format msgid "custom resource manager ID %d is out of range" msgstr "사용자 정의 자원 관리자 %d ID 번호의 범위가 벗어남" -#: access/transam/rmgr.c:106 +#: access/transam/rmgr.c:115 #, c-format msgid "Provide a custom resource manager ID between %d and %d." msgstr "사용자 정의 자원 관리자 ID는 %d 에서 %d 까지만 지정할 수 있음." -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:120 access/transam/rmgr.c:125 +#: access/transam/rmgr.c:137 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" msgstr "\"%s\" 사용자 정의 자원 관리자를 %d ID로 등록할 수 없음" -#: access/transam/rmgr.c:112 +#: access/transam/rmgr.c:121 #, c-format msgid "" "Custom resource manager must be registered while initializing modules in " -"shared_preload_libraries." +"\"shared_preload_libraries\"." msgstr "" -"사용자 정의 자원 관리자를 사용하려면 먼저 shared_preload_libraries 설정값으" -"로 등록되어야 합니다." +"사용자 정의 자원 관리자를 사용하려면 먼저 \"shared_preload_libraries\" 설정값" +"으로 등록되어야 합니다." -#: access/transam/rmgr.c:117 +#: access/transam/rmgr.c:126 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." msgstr "\"%s\" 사용자 정의 자원 관리자 ID가 이미 등록되어 있습니다." -#: access/transam/rmgr.c:129 +#: access/transam/rmgr.c:138 #, c-format msgid "Existing resource manager with ID %d has the same name." msgstr "%d ID 자원 관리자가 같은 이름입니다." -#: access/transam/rmgr.c:135 +#: access/transam/rmgr.c:144 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" msgstr "\"%s\" 사용자 정의 자원 관리자가 %d ID로 등록됨" -#: access/transam/slru.c:714 +#: access/transam/slru.c:361 +#, c-format +msgid "\"%s\" must be a multiple of %d" +msgstr "\"%s\" 값은 %d의 배수여야 함" + +#: access/transam/slru.c:830 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "\"%s\" 파일 없음, 0으로 읽음" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:1059 access/transam/slru.c:1065 +#: access/transam/slru.c:1073 access/transam/slru.c:1078 +#: access/transam/slru.c:1085 access/transam/slru.c:1090 +#: access/transam/slru.c:1097 access/transam/slru.c:1104 #, c-format msgid "could not access status of transaction %u" msgstr "%u 트랜잭션의 상태를 액세스할 수 없음" -#: access/transam/slru.c:947 +#: access/transam/slru.c:1060 #, c-format msgid "Could not open file \"%s\": %m." msgstr "\"%s\" 파일을 열 수 없음: %m." -#: access/transam/slru.c:953 +#: access/transam/slru.c:1066 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "\"%s\" 파일에서 %d 위치를 찾을 수 없음: %m." -#: access/transam/slru.c:961 +#: access/transam/slru.c:1074 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "\"%s\" 파일에서 %d 위치를 읽을 수 없음: %m." -#: access/transam/slru.c:966 +#: access/transam/slru.c:1079 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "\"%s\" 파일에서 %d 위치를 읽을 수 없음: 너무 적은 바이트를 읽음." -#: access/transam/slru.c:973 +#: access/transam/slru.c:1086 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "\"%s\" 파일에서 %d 위치에 쓸 수 없음: %m." -#: access/transam/slru.c:978 +#: access/transam/slru.c:1091 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "\"%s\" 파일에서 %d 위치에 쓸 수 없음: 너무 적은 바이트를 씀." -#: access/transam/slru.c:985 +#: access/transam/slru.c:1098 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "\"%s\" 파일 fsync 실패: %m." -#: access/transam/slru.c:992 +#: access/transam/slru.c:1105 #, c-format msgid "Could not close file \"%s\": %m." msgstr "\"%s\" 파일을 닫을 수 없음: %m." -#: access/transam/slru.c:1253 +#: access/transam/slru.c:1431 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "\"%s\" 디렉터리를 비울 수 없음: 랩어라운드 발생" @@ -2100,130 +2302,131 @@ msgstr "타임라인 ID는 하위 타임라인 ID보다 작아야 합니다." msgid "requested timeline %u is not in this server's history" msgstr "요청한 %u 타이라인이 이 서버 내역에는 없음" -#: access/transam/twophase.c:386 +#: access/transam/twophase.c:368 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "\"%s\" 트랜잭션 식별자가 너무 깁니다" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:375 #, c-format msgid "prepared transactions are disabled" msgstr "준비된 트랜잭션이 비활성화됨" -#: access/transam/twophase.c:394 +#: access/transam/twophase.c:376 #, c-format -msgid "Set max_prepared_transactions to a nonzero value." -msgstr "max_prepared_transactions 설정값을 0이 아닌 값으로 설정하십시오." +msgid "Set \"max_prepared_transactions\" to a nonzero value." +msgstr "\"max_prepared_transactions\" 설정값을 0이 아닌 값으로 설정하십시오." -#: access/transam/twophase.c:413 +#: access/transam/twophase.c:395 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "\"%s\" 이름의 트랜잭션 식별자가 이미 사용 중입니다" -#: access/transam/twophase.c:422 access/transam/twophase.c:2517 +#: access/transam/twophase.c:404 access/transam/twophase.c:2547 #, c-format msgid "maximum number of prepared transactions reached" msgstr "준비된 트랜잭션의 최대 개수를 모두 사용했습니다" -#: access/transam/twophase.c:423 access/transam/twophase.c:2518 +#: access/transam/twophase.c:405 access/transam/twophase.c:2548 #, c-format -msgid "Increase max_prepared_transactions (currently %d)." -msgstr "max_prepared_transactions 값을 늘려주세요 (현재 %d)." +msgid "Increase \"max_prepared_transactions\" (currently %d)." +msgstr "\"max_prepared_transactions\" 값을 늘려주세요 (현재 %d)." -#: access/transam/twophase.c:599 +#: access/transam/twophase.c:580 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "\"%s\" 이름의 준비된 트랜잭션 식별자가 여러 곳에서 쓰이고 있습니다" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:586 #, c-format msgid "permission denied to finish prepared transaction" msgstr "준비된 트랜잭션 끝내기 작업 권한 없음" -#: access/transam/twophase.c:606 +#: access/transam/twophase.c:587 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "해당 준비된 트랜잭션의 소유주이거나 superuser여야 합니다" -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:598 #, c-format msgid "prepared transaction belongs to another database" msgstr "준비된 트랜잭션이 다른 데이터베이스에 속해 있음" -#: access/transam/twophase.c:618 +#: access/transam/twophase.c:599 #, c-format msgid "" "Connect to the database where the transaction was prepared to finish it." msgstr "작업을 마치려면 그 준비된 트랜잭션이 있는 데이터베이스에 연결하십시오." -#: access/transam/twophase.c:633 +#: access/transam/twophase.c:614 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "\"%s\" 이름의 준비된 트랜잭션이 없습니다" -#: access/transam/twophase.c:1168 +#: access/transam/twophase.c:1190 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "2단계 상태 파일 최대 길이를 초과함" -#: access/transam/twophase.c:1323 +#: access/transam/twophase.c:1345 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" msgstr[0] "\"%s\" 파일 크기가 이상함: %lld 바이트" -#: access/transam/twophase.c:1332 +#: access/transam/twophase.c:1354 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "\"%s\" 파일의 CRC 값 맞춤 실패" -#: access/transam/twophase.c:1350 +#: access/transam/twophase.c:1372 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %lld" -#: access/transam/twophase.c:1365 +#: access/transam/twophase.c:1387 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "\"%s\" 파일에 잘못된 매직 번호가 저장되어 있음" -#: access/transam/twophase.c:1371 +#: access/transam/twophase.c:1393 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "\"%s\" 파일 크기가 이상함" -#: access/transam/twophase.c:1383 +#: access/transam/twophase.c:1405 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "계산된 CRC 체크섬 값이 파일에 \"%s\" 파일에 저장된 값과 다름" -#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1435 access/transam/xlogrecovery.c:565 +#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211 +#: replication/walsender.c:836 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "WAL 읽기 프로세서를 할당하는 중에 오류 발생" -#: access/transam/twophase.c:1423 +#: access/transam/twophase.c:1445 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "two-phase 상태정보을 읽을 수 없음 WAL 위치: %X/%X, %s" -#: access/transam/twophase.c:1428 +#: access/transam/twophase.c:1450 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "two-phase 상태정보을 읽을 수 없음 WAL 위치: %X/%X" -#: access/transam/twophase.c:1436 +#: access/transam/twophase.c:1458 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "WAL %X/%X 위치에 2단계 커밋 상태 자료가 없습니다" -#: access/transam/twophase.c:1732 +#: access/transam/twophase.c:1761 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "\"%s\" 파일을 다시 만들 수 없음: %m" -#: access/transam/twophase.c:1859 +#: access/transam/twophase.c:1888 #, c-format msgid "" "%u two-phase state file was written for a long-running prepared transaction" @@ -2232,48 +2435,48 @@ msgid_plural "" msgstr[0] "" "긴 실행 미리 준비된 트랜잭션 용 %u 개의 2단계 상태 파일이 저장되었음" -#: access/transam/twophase.c:2093 +#: access/transam/twophase.c:2123 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "공유 메모리에서 %u 준비된 트랜잭션을 복구함" -#: access/transam/twophase.c:2186 +#: access/transam/twophase.c:2216 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "%u 트랜잭션에서 사용하는 오래된 two-phase 상태정보 파일을 삭제함" -#: access/transam/twophase.c:2193 +#: access/transam/twophase.c:2223 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "" "%u 트랜잭션에서 사용하는 오래된 two-phase 상태정보를 공유 메모리에서 삭제함" -#: access/transam/twophase.c:2206 +#: access/transam/twophase.c:2236 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "%u 트랜잭션에서 사용하는 future two-phase 상태정보 파일을 삭제함" -#: access/transam/twophase.c:2213 +#: access/transam/twophase.c:2243 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "%u 트랜잭션에서 사용하는 future two-phase 상태정보를 메모리에서 삭제함" -#: access/transam/twophase.c:2238 +#: access/transam/twophase.c:2268 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "%u 트랜잭션에서 사용하는 two-phase 상태정보 파일이 손상되었음" -#: access/transam/twophase.c:2243 +#: access/transam/twophase.c:2273 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "%u 트랜잭션에서 사용하는 메모리에 있는 two-phase 상태정보가 손상되었음" -#: access/transam/twophase.c:2500 +#: access/transam/twophase.c:2530 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "%u 트랜잭션에서 사용하는 two-phase 상태정보 파일을 복구할 없음" -#: access/transam/twophase.c:2502 +#: access/transam/twophase.c:2532 #, c-format msgid "" "Two-phase state file has been found in WAL record %X/%X, but this " @@ -2282,223 +2485,261 @@ msgstr "" "WAL 레코드 %X/%X 에서 2PC 상태 파일을 찾았지만, 그 트랜잭션은 이미 디스크에 " "기록한 상태입니다." -#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 -#: utils/fmgr/dfmgr.c:415 +#: access/transam/twophase.c:2540 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 #, c-format msgid "could not access file \"%s\": %m" msgstr "\"%s\" 파일에 액세스할 수 없음: %m" -#: access/transam/varsup.c:129 +#: access/transam/varsup.c:156 #, c-format msgid "" -"database is not accepting commands to avoid wraparound data loss in database " -"\"%s\"" +"database is not accepting commands that assign new transaction IDs to avoid " +"wraparound data loss in database \"%s\"" +msgstr "" +"\"%s\" 데이터베이스 자료 손실을 막기 위해 새로운 트랜잭션 ID 만드는 작업을 " +"더 이상 할 수 없습니다." + +#: access/transam/varsup.c:163 +#, c-format +msgid "" +"database is not accepting commands that assign new transaction IDs to avoid " +"wraparound data loss in database with OID %u" msgstr "" -"\"%s\" 데이터베이스 트랜잭션 ID 겹침에 의한 자료 손실을 방지하기 위해 더 이" -"상 자료 조작 작업을 허용하지 않습니다" +"%u OID 데이터베이스 자료 손실을 막기 위해 새로운 트랜잭션 ID 만드는 작업을 " +"더 이상 할 수 없습니다." + +#: access/transam/varsup.c:175 access/transam/varsup.c:490 +#, c-format +msgid "database \"%s\" must be vacuumed within %u transactions" +msgstr "\"%s\" 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 청소해야 합니다" -#: access/transam/varsup.c:131 access/transam/varsup.c:138 +#: access/transam/varsup.c:178 #, c-format msgid "" -"Stop the postmaster and vacuum that database in single-user mode.\n" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM " +"in that database.\n" "You might also need to commit or roll back old prepared transactions, or " "drop stale replication slots." msgstr "" -"postmaster를 중지하고 단일 사용자 모드로 서버를 실행한 뒤 VACUUM 작업을 하십" -"시오.\n" -"또한 오래된 트랜잭션을 커밋 또는 롤백하거나, 잠긴 복제 슬롯을 지울 필요가 있" +"트랜잭션 ID를 계속 할당할 수 있게 하려면 데이터베이스 수준의 VACUUM을 실행하" +"십시오.\n" +"또한 오래된 트랜잭션을 커밋 또는 롤백 하거나, 잠긴 복제 슬롯을 지울 필요가 있" "습니다." -#: access/transam/varsup.c:136 +#: access/transam/varsup.c:182 access/transam/varsup.c:497 +#, c-format +msgid "database with OID %u must be vacuumed within %u transactions" +msgstr "%u OID 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 청소해야 합니다" + +#: access/transam/varsup.c:185 access/transam/varsup.c:493 +#: access/transam/varsup.c:500 #, c-format msgid "" -"database is not accepting commands to avoid wraparound data loss in database " -"with OID %u" +"To avoid XID assignment failures, execute a database-wide VACUUM in that " +"database.\n" +"You might also need to commit or roll back old prepared transactions, or " +"drop stale replication slots." msgstr "" -"%u OID 데이터베이스에서 자료 겹침으로 발생할 수 있는 자료 손실을 방지하기 위" -"해 명령을 수락하지 않음" +"XID 할당 실패를 피하려면 데이터베이스 수준의 VACUUM을 실행하십시오.\n" +"또한 오래된 트랜잭션을 커밋 또는 롤백 하거나, 잠긴 복제 슬롯을 지울 필요가 있" +"습니다." -#: access/transam/varsup.c:148 access/transam/varsup.c:463 +#: access/transam/xact.c:649 #, c-format -msgid "database \"%s\" must be vacuumed within %u transactions" -msgstr "\"%s\" 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 청소해야 합니다" +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "병렬 처리 중에는 트랜잭션 ID를 지정할 수 없음" -#: access/transam/varsup.c:155 access/transam/varsup.c:470 +#: access/transam/xact.c:840 #, c-format -msgid "database with OID %u must be vacuumed within %u transactions" -msgstr "%u OID 데이터베이스는 %u번의 트랜잭션이 발생되기 전에 청소해야 합니다" +msgid "cannot modify data in a parallel worker" +msgstr "병렬 작업자는 자료 변경을 할 수 없음" + +#: access/transam/xact.c:1115 +#, c-format +msgid "cannot start commands during a parallel operation" +msgstr "병렬 처리 중에는 명령을 시작할 수 없음" -#: access/transam/xact.c:1102 +#: access/transam/xact.c:1123 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "하나의 트랜잭션 안에서는 2^32-2 개의 명령을 초과할 수 없음" -#: access/transam/xact.c:1643 +#: access/transam/xact.c:1664 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "커밋된 하위 트랜잭션 수(%d)가 최대치를 초과함" -#: access/transam/xact.c:2513 +#: access/transam/xact.c:2561 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "임시 개체 대해 실행된 트랜잭션을 PREPARE할 수 없음" -#: access/transam/xact.c:2523 +#: access/transam/xact.c:2571 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "스냅샷으로 내보낸 트랜잭션은 PREPARE 작업을 할 수 없음" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3593 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s 명령은 트랜잭션 블럭안에서 실행할 수 없음" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3603 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s 명령은 서브트랜잭션 블럭안에서 실행할 수 없음" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3613 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s 절은 파이프라인에서 실행될 수 없음" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3519 +#: access/transam/xact.c:3623 #, c-format msgid "%s cannot be executed from a function" msgstr "%s 절은 함수에서 실행될 수 없음" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3590 access/transam/xact.c:3915 -#: access/transam/xact.c:3994 access/transam/xact.c:4117 -#: access/transam/xact.c:4268 access/transam/xact.c:4337 -#: access/transam/xact.c:4448 +#: access/transam/xact.c:3694 access/transam/xact.c:4019 +#: access/transam/xact.c:4098 access/transam/xact.c:4221 +#: access/transam/xact.c:4372 access/transam/xact.c:4441 +#: access/transam/xact.c:4552 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s 명령은 트랜잭션 블럭에서만 사용될 수 있음" -#: access/transam/xact.c:3801 +#: access/transam/xact.c:3905 #, c-format msgid "there is already a transaction in progress" msgstr "이미 트랜잭션 작업이 진행 중입니다" -#: access/transam/xact.c:3920 access/transam/xact.c:3999 -#: access/transam/xact.c:4122 +#: access/transam/xact.c:4024 access/transam/xact.c:4103 +#: access/transam/xact.c:4226 #, c-format msgid "there is no transaction in progress" msgstr "현재 트랜잭션 작업을 하지 않고 있습니다" -#: access/transam/xact.c:4010 +#: access/transam/xact.c:4114 #, c-format msgid "cannot commit during a parallel operation" msgstr "데이터베이스 트랜잭션을 commit 할 수 없음" -#: access/transam/xact.c:4133 +#: access/transam/xact.c:4237 #, c-format msgid "cannot abort during a parallel operation" msgstr "병렬 작업 중에는 중지 할 수 없음" -#: access/transam/xact.c:4232 +#: access/transam/xact.c:4336 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "병렬 작업 중에는 savepoint 지정을 할 수 없음" -#: access/transam/xact.c:4319 +#: access/transam/xact.c:4423 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "병렬 작업 중에는 savepoint를 지울 수 없음" -#: access/transam/xact.c:4329 access/transam/xact.c:4380 -#: access/transam/xact.c:4440 access/transam/xact.c:4489 +#: access/transam/xact.c:4433 access/transam/xact.c:4484 +#: access/transam/xact.c:4544 access/transam/xact.c:4593 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "\"%s\" 이름의 저장위치가 없음" -#: access/transam/xact.c:4386 access/transam/xact.c:4495 +#: access/transam/xact.c:4490 access/transam/xact.c:4599 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "현재 저장위치 수준에서 \"%s\" 이름의 저장위치가 없음" -#: access/transam/xact.c:4428 +#: access/transam/xact.c:4532 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "병렬 작업 중에는 savepoint 지정 취소 작업을 할 수 없음" -#: access/transam/xact.c:4556 -#, c-format -msgid "cannot start subtransactions during a parallel operation" -msgstr "병렬 처리 중에는 하위트랜잭션을 시작할 수 없음" - -#: access/transam/xact.c:4624 -#, c-format -msgid "cannot commit subtransactions during a parallel operation" -msgstr "병렬 처리 중에는 하위트랜잭션을 커밋할 수 없음" - -#: access/transam/xact.c:5270 +#: access/transam/xact.c:5376 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "하나의 트랜잭션 안에서는 2^32-1 개의 하위트랜잭션을 초과할 수 없음" -#: access/transam/xlog.c:1466 +#: access/transam/xlog.c:1542 #, c-format msgid "" "request to flush past end of generated WAL; request %X/%X, current position " "%X/%X" msgstr "생성된 WAL의 끝을 지난 flush 요청, 요청위치: %X/%X, 현재위치: %X/%X" +#: access/transam/xlog.c:1769 +#, c-format +msgid "" +"cannot read past end of generated WAL: requested %X/%X, current position %X/" +"%X" +msgstr "" +"생성된 WAL의 끝을 지나서 읽을 수 없음: 요청위치: %X/%X, 현재위치: %X/%X" + +#: access/transam/xlog.c:2210 access/transam/xlog.c:4501 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL 조각 파일은 1MB부터 1GB 사이 2^n 크기여야 합니다." + #: access/transam/xlog.c:2228 #, c-format -msgid "could not write to log file %s at offset %u, length %zu: %m" -msgstr "%s 로그 파일 쓰기 실패, 위치 %u, 길이 %zu: %m" +msgid "\"%s\" must be set to -1 during binary upgrade mode." +msgstr "바이너리 업그레이드 모드 중는 \"%s\" 값은 -1이어야 합니다." + +#: access/transam/xlog.c:2477 +#, 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:3455 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:3739 access/transam/xlogutils.c:831 +#: replication/walsender.c:3045 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "요청한 %s WAL 조각 파일은 이미 지워졌음" -#: access/transam/xlog.c:3739 +#: access/transam/xlog.c:4061 #, c-format msgid "could not rename file \"%s\": %m" msgstr "\"%s\" 파일의 이름을 바꿀 수 없음: %m" -#: access/transam/xlog.c:3781 access/transam/xlog.c:3791 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4115 +#: access/transam/xlog.c:4136 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "필요한 WAL 디렉터리 \"%s\"이(가) 없음" -#: access/transam/xlog.c:3797 +#: access/transam/xlog.c:4121 access/transam/xlog.c:4142 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "누락된 WAL 디렉터리 \"%s\"을(를) 만드는 중" -#: access/transam/xlog.c:3800 commands/dbcommands.c:3172 +#: access/transam/xlog.c:4125 access/transam/xlog.c:4145 +#: commands/dbcommands.c:3262 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "누락된 \"%s\" 디렉터리를 만들 수 없음: %m" -#: access/transam/xlog.c:3867 +#: access/transam/xlog.c:4212 #, c-format msgid "could not generate secret authorization token" msgstr "비밀 인증 토큰을 만들 수 없음" -#: access/transam/xlog.c:4017 access/transam/xlog.c:4026 -#: access/transam/xlog.c:4050 access/transam/xlog.c:4057 -#: access/transam/xlog.c:4064 access/transam/xlog.c:4069 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4097 -#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 -#: access/transam/xlog.c:4120 access/transam/xlog.c:4127 -#: utils/init/miscinit.c:1762 +#: access/transam/xlog.c:4363 access/transam/xlog.c:4373 +#: access/transam/xlog.c:4399 access/transam/xlog.c:4407 +#: access/transam/xlog.c:4415 access/transam/xlog.c:4421 +#: access/transam/xlog.c:4429 access/transam/xlog.c:4437 +#: access/transam/xlog.c:4445 access/transam/xlog.c:4453 +#: access/transam/xlog.c:4461 access/transam/xlog.c:4469 +#: access/transam/xlog.c:4479 access/transam/xlog.c:4487 +#: utils/init/miscinit.c:1812 #, c-format msgid "database files are incompatible with server" msgstr "데이터베이스 파일들이 서버와 호환성이 없습니다" -#: access/transam/xlog.c:4018 +#: access/transam/xlog.c:4364 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), " @@ -2507,7 +2748,7 @@ msgstr "" "데이터베이스 클러스터는 PG_CONTROL_VERSION %d (0x%08x)(으)로 초기화되었지만 " "서버는 PG_CONTROL_VERSION %d (0x%08x)(으)로 컴파일되었습니다." -#: access/transam/xlog.c:4022 +#: access/transam/xlog.c:4368 #, c-format msgid "" "This could be a problem of mismatched byte ordering. It looks like you need " @@ -2515,7 +2756,7 @@ msgid "" msgstr "" "이것은 바이트 순서 불일치 문제일 수 있습니다. initdb 작업이 필요해 보입니다." -#: access/transam/xlog.c:4027 +#: access/transam/xlog.c:4374 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d, but the " @@ -2524,18 +2765,18 @@ msgstr "" "이 데이터베이스 클러스터는 PG_CONTROL_VERSION %d 버전으로 초기화 되었지만, 서" "버는 PG_CONTROL_VERSION %d 버전으로 컴파일 되어있습니다." -#: access/transam/xlog.c:4030 access/transam/xlog.c:4054 -#: access/transam/xlog.c:4061 access/transam/xlog.c:4066 +#: access/transam/xlog.c:4377 access/transam/xlog.c:4403 +#: access/transam/xlog.c:4411 access/transam/xlog.c:4417 #, c-format msgid "It looks like you need to initdb." msgstr "initdb 명령이 필요한 듯 합니다" -#: access/transam/xlog.c:4041 +#: access/transam/xlog.c:4389 #, c-format msgid "incorrect checksum in control file" msgstr "컨트롤 파일에 잘못된 체크섬 값이 있습니다" -#: access/transam/xlog.c:4051 +#: access/transam/xlog.c:4400 #, c-format msgid "" "The database cluster was initialized with CATALOG_VERSION_NO %d, but the " @@ -2544,7 +2785,7 @@ msgstr "" "이 데이터베이스 클러스터는 CATALOG_VERSION_NO %d 버전으로 초기화 되었지만, 서" "버는 CATALOG_VERSION_NO %d 버전으로 컴파일 되어있습니다." -#: access/transam/xlog.c:4058 +#: access/transam/xlog.c:4408 #, c-format msgid "" "The database cluster was initialized with MAXALIGN %d, but the server was " @@ -2553,7 +2794,7 @@ msgstr "" "이 데이터베이스 클러스터는 MAXALIGN %d (으)로 초기화 되었지만, 서버는 " "MAXALIGN %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4065 +#: access/transam/xlog.c:4416 #, c-format msgid "" "The database cluster appears to use a different floating-point number format " @@ -2562,7 +2803,7 @@ msgstr "" "데이터베이스 클러스터와 서버 실행 파일이 서로 다른 부동 소수점 숫자 형식을 사" "용하고 있습니다." -#: access/transam/xlog.c:4070 +#: access/transam/xlog.c:4422 #, c-format msgid "" "The database cluster was initialized with BLCKSZ %d, but the server was " @@ -2571,18 +2812,18 @@ msgstr "" "이 데이터베이스 클러스터는 BLCKSZ %d (으)로 초기화 되었지만, 서버는 BLCKSZ " "%d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4073 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4094 -#: access/transam/xlog.c:4101 access/transam/xlog.c:4108 -#: access/transam/xlog.c:4115 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4425 access/transam/xlog.c:4433 +#: access/transam/xlog.c:4441 access/transam/xlog.c:4449 +#: access/transam/xlog.c:4457 access/transam/xlog.c:4465 +#: access/transam/xlog.c:4473 access/transam/xlog.c:4482 +#: access/transam/xlog.c:4490 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "" "서버를 새로 컴파일 하거나 initdb 명령을 사용해 새로 데이터베이스 클러스터를 " "다시 만들거나 해야할 것 같습니다." -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4430 #, c-format msgid "" "The database cluster was initialized with RELSEG_SIZE %d, but the server was " @@ -2591,7 +2832,7 @@ msgstr "" "이 데이터베이스 클러스터는 RELSEG_SIZE %d (으)로 초기화 되었지만, 서버는 " "RELSEG_SIZE %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4438 #, c-format msgid "" "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was " @@ -2600,7 +2841,7 @@ msgstr "" "이 데이터베이스 클러스터는 XLOG_BLCKSZ %d (으)로 초기화 되었지만, 서버는 " "XLOG_BLCKSZ %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4446 #, c-format msgid "" "The database cluster was initialized with NAMEDATALEN %d, but the server was " @@ -2609,7 +2850,7 @@ msgstr "" "이 데이터베이스 클러스터는 NAMEDATALEN %d (으)로 초기화 되었지만, 서버는 " "NAMEDATALEN %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4098 +#: access/transam/xlog.c:4454 #, c-format msgid "" "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server " @@ -2618,7 +2859,7 @@ msgstr "" "이 데이터베이스 클러스터는 INDEX_MAX_KEYS %d (으)로 초기화 되었지만, 서버는 " "INDEX_MAX_KEYS %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4105 +#: access/transam/xlog.c:4462 #, c-format msgid "" "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the " @@ -2627,7 +2868,7 @@ msgstr "" "데이터베이스 클러스터는 TOAST_MAX_CHUNK_SIZE %d(으)로 초기화되었지만 서버는 " "TOAST_MAX_CHUNK_SIZE %d(으)로 컴파일 되었습니다." -#: access/transam/xlog.c:4112 +#: access/transam/xlog.c:4470 #, c-format msgid "" "The database cluster was initialized with LOBLKSIZE %d, but the server was " @@ -2636,7 +2877,7 @@ msgstr "" "이 데이터베이스 클러스터는 LOBLKSIZE %d(으)로 초기화 되었지만, 서버는 " "LOBLKSIZE %d (으)로 컴파일 되어있습니다." -#: access/transam/xlog.c:4121 +#: access/transam/xlog.c:4480 #, c-format msgid "" "The database cluster was initialized without USE_FLOAT8_BYVAL but the server " @@ -2645,7 +2886,7 @@ msgstr "" "데이터베이스 클러스터는 USE_FLOAT8_BYVAL 없이 초기화되었지만, 서버는 " "USE_FLOAT8_BYVAL을 사용하여 컴파일되었습니다." -#: access/transam/xlog.c:4128 +#: access/transam/xlog.c:4488 #, c-format msgid "" "The database cluster was initialized with USE_FLOAT8_BYVAL but the server " @@ -2654,103 +2895,100 @@ msgstr "" "데이터베이스 클러스터는 USE_FLOAT8_BYVAL을 사용하여 초기화되었지만, 서버는 " "USE_FLOAT8_BYVAL 없이 컴파일되었습니다." -#: access/transam/xlog.c:4137 +#: access/transam/xlog.c:4497 #, 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 조각 파일은 1MB부터 1GB 사이 2^n 크기여야 하지만, 컨트롤 파일에는 %d 바이" -"트로 지정되었음" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "컨트롤 파일 안 잘못된 WAL 조각 크기 (%d 바이트)" -#: access/transam/xlog.c:4149 +#: access/transam/xlog.c:4510 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" 값은 \"wal_segment_size\" 값의 최소 2배 이상이어야 함" -#: access/transam/xlog.c:4153 +#: access/transam/xlog.c:4514 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" 값은 \"wal_segment_size\" 값의 최소 2배 이상이어야 함" -#: access/transam/xlog.c:4308 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: access/transam/xlog.c:4662 catalog/namespace.c:4696 +#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 +#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247 #, c-format msgid "List syntax is invalid." msgstr "목록 문법이 틀렸습니다." -#: access/transam/xlog.c:4354 commands/user.c:2552 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: access/transam/xlog.c:4708 commands/user.c:2545 commands/variable.c:173 +#: tcop/postgres.c:3731 utils/error/elog.c:2273 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "알 수 없는 키워드: \"%s\"" -#: access/transam/xlog.c:4768 +#: access/transam/xlog.c:5129 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "bootstrap 트랜잭션 로그 파일을 쓸 수 없음: %m" -#: access/transam/xlog.c:4776 +#: access/transam/xlog.c:5137 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "bootstrap 트랜잭션 로그 파일을 fsync할 수 없음: %m" -#: access/transam/xlog.c:4782 +#: access/transam/xlog.c:5143 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "bootstrap 트랜잭션 로그 파일을 닫을 수 없음: %m" -#: access/transam/xlog.c:4999 +#: access/transam/xlog.c:5368 #, c-format -msgid "WAL was generated with wal_level=minimal, cannot continue recovering" +msgid "" +"WAL was generated with \"wal_level=minimal\", cannot continue recovering" msgstr "" -"WAL 내용이 wal_level=minimal 설정으로 만들여졌습니다. 복원 작업을 계속 할 수 " -"없음" +"WAL 내용이 \"wal_level=minimal\" 설정으로 만들여졌습니다. 복구 작업을 계속 " +"할 수 없음" -#: access/transam/xlog.c:5000 +#: access/transam/xlog.c:5369 #, c-format -msgid "This happens if you temporarily set wal_level=minimal on the server." +msgid "" +"This happens if you temporarily set \"wal_level=minimal\" on the server." msgstr "" -"이 문제는 서버가 일시적으로 wal_level=minimal 설정으로 운영된 적이 있다면 발" -"생합니다." +"이 문제는 서버가 일시적으로 \"wal_level=minimal\" 설정으로 운영된 적이 있다" +"면 발생합니다." -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5370 #, c-format -msgid "Use a backup taken after setting wal_level to higher than minimal." -msgstr "wal_level 값을 minimal 보다 높은 것으로 설정해서 백업하세요." +msgid "" +"Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." +msgstr "\"wal_level\" 값을 \"minimal\" 보다 높은 것으로 설정해서 백업하세요." -#: access/transam/xlog.c:5065 +#: access/transam/xlog.c:5435 #, c-format msgid "control file contains invalid checkpoint location" msgstr "컨트롤 파일에 잘못된 체크포인트 위치가 있습니다" -#: access/transam/xlog.c:5076 +#: access/transam/xlog.c:5446 #, c-format msgid "database system was shut down at %s" msgstr "데이터베이스 시스템 마지막 가동 중지 시각: %s" -#: access/transam/xlog.c:5082 +#: access/transam/xlog.c:5452 #, c-format msgid "database system was shut down in recovery at %s" msgstr "복구 중 데이터베이스 시스템 마지막 가동 중지 시각: %s" -#: access/transam/xlog.c:5088 +#: access/transam/xlog.c:5458 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "" "데이터베이스 시스템 셧다운 작업이 비정상적으로 종료되었음; 마지막 운영시간: " "%s" -#: access/transam/xlog.c:5094 +#: access/transam/xlog.c:5464 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "데이터베이스 시스템 복구하는 도중 비정상적으로 가동 중지된 시각: %s" -#: access/transam/xlog.c:5096 +#: access/transam/xlog.c:5466 #, c-format msgid "" "This probably means that some data is corrupted and you will have to use the " @@ -2759,12 +2997,12 @@ msgstr "" "이 사태는 몇몇 데이터가 손상되었을 의미할 수도 있습니다. 확인해 보고, 필요하" "다면, 마지막 백업 자료로 복구해서 사용하세요." -#: access/transam/xlog.c:5102 +#: access/transam/xlog.c:5472 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "데이터베이스 시스템이 로그 시간 %s에 복구 도중 중지 되었음" -#: access/transam/xlog.c:5104 +#: access/transam/xlog.c:5474 #, c-format msgid "" "If this has occurred more than once some data might be corrupted and you " @@ -2773,22 +3011,22 @@ msgstr "" "이 사태로 몇몇 자료가 손상되었을 수도 있는데, 이런 경우라면,확인해 보고, 필요" "하다면, 마지막 백업 자료로 복구해서 사용하세요." -#: access/transam/xlog.c:5110 +#: access/transam/xlog.c:5480 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "데이터베이스 시스템이 비정상적으로 종료되었음; 마지막 운영시간: %s" -#: access/transam/xlog.c:5116 +#: access/transam/xlog.c:5487 #, c-format msgid "control file contains invalid database cluster state" msgstr "컨트롤 파일에 잘못된 데이터베이스 클러스터 상태값이 있습니다" -#: access/transam/xlog.c:5500 +#: access/transam/xlog.c:5875 #, c-format msgid "WAL ends before end of online backup" msgstr "온라인 백업 작업 끝나기전에 WAL 작업 종료됨" -#: access/transam/xlog.c:5501 +#: access/transam/xlog.c:5876 #, c-format msgid "" "All WAL generated while online backup was taken must be available at " @@ -2797,39 +3035,39 @@ msgstr "" "온라인 백업 중 만들어진 WAL 조각 파일은 복구 작업에서 반드시 모두 있어야 합니" "다." -#: access/transam/xlog.c:5504 +#: access/transam/xlog.c:5880 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL이 일치하는 복구 지점 앞에서 종료됨" -#: access/transam/xlog.c:5550 +#: access/transam/xlog.c:5926 #, c-format msgid "selected new timeline ID: %u" msgstr "지정한 새 타임라인 ID: %u" -#: access/transam/xlog.c:5583 +#: access/transam/xlog.c:5959 #, c-format msgid "archive recovery complete" msgstr "아카이브 복구 완료" -#: access/transam/xlog.c:6189 +#: access/transam/xlog.c:6612 #, c-format msgid "shutting down" msgstr "서비스를 멈추고 있습니다" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6228 +#: access/transam/xlog.c:6651 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "restartpoint 시작:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6240 +#: access/transam/xlog.c:6663 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "체크포인트 시작:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6305 +#: access/transam/xlog.c:6728 #, c-format msgid "" "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2842,7 +3080,7 @@ msgstr "" "%03d s; 동기화 파일 개수: %d, 최장시간: %ld.%03d s, 평균시간: %ld.%03d s; 실" "제작업량: %d kB, 예상한작업량: %d kB; lsn=%X/%X, redo lsn=%X/%X" -#: access/transam/xlog.c:6328 +#: access/transam/xlog.c:6751 #, c-format msgid "" "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2855,109 +3093,117 @@ msgstr "" "%03d s; 동기화 파일 개수: %d, 최장시간: %ld.%03d s, 평균시간: %ld.%03d s; 실" "제작업량: %d kB, 예상한작업량: %d kB; lsn=%X/%X, redo lsn=%X/%X" -#: access/transam/xlog.c:6766 +#: access/transam/xlog.c:7233 #, c-format msgid "" "concurrent write-ahead log activity while database system is shutting down" msgstr "데이터베이스 시스템이 중지되는 동안 동시 트랜잭션 로그가 활성화 되었음" -#: access/transam/xlog.c:7327 +#: access/transam/xlog.c:7818 #, c-format msgid "recovery restart point at %X/%X" msgstr "%X/%X에서 복구 작업 시작함" -#: access/transam/xlog.c:7329 +#: access/transam/xlog.c:7820 #, c-format msgid "Last completed transaction was at log time %s." msgstr "마지막 완료된 트랜잭션 기록 시간은 %s 입니다." -#: access/transam/xlog.c:7577 +#: access/transam/xlog.c:8082 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "\"%s\" 이름의 복구 위치는 %X/%X에 만들었음" -#: access/transam/xlog.c:7784 +#: access/transam/xlog.c:8289 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "온라인 백어이 취소되었음, 복구를 계속 할 수 없음" -#: access/transam/xlog.c:7841 +#: access/transam/xlog.c:8347 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "셧다운 체크포인트 레코드에 잘못된 타임라인 ID 값: %u (기대값: %u)" -#: access/transam/xlog.c:7899 +#: access/transam/xlog.c:8405 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "온라인 체크포인트 레코드에 잘못된 타임라인 ID 값: %u (기대값: %u)" -#: access/transam/xlog.c:7928 +#: access/transam/xlog.c:8434 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" -msgstr "복원끝 레코드에 잘못된 타임라인 ID 값: %u (기대값: %u)" +msgstr "복구끝 레코드에 잘못된 타임라인 ID 값: %u (기대값: %u)" -#: access/transam/xlog.c:8195 +#: access/transam/xlog.c:8705 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "\"%s\" write-through 파일을 fsync할 수 없음: %m" -#: access/transam/xlog.c:8200 +#: access/transam/xlog.c:8710 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "\"%s\" 파일 fdatasync 실패: %m" -#: access/transam/xlog.c:8285 access/transam/xlog.c:8608 +#: access/transam/xlog.c:8797 access/transam/xlog.c:9133 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "온라인 백업 작업을 하기 위한 WAL 수준이 충분치 않습니다." -#: access/transam/xlog.c:8286 access/transam/xlog.c:8609 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8798 access/transam/xlogfuncs.c:248 #, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +msgid "" +"\"wal_level\" must be set to \"replica\" or \"logical\" at server start." msgstr "" -"wal_level 값을 \"replica\" 또는 \"logical\"로 지정하고 서버를 실행하십시오." +"\"wal_level\" 값을 \"replica\" 또는 \"logical\"로 지정하고 서버를 실행하십시" +"오." -#: access/transam/xlog.c:8291 +#: access/transam/xlog.c:8803 #, c-format msgid "backup label too long (max %d bytes)" msgstr "백업 라벨 이름이 너무 긺(최대 %d 바이트)" -#: access/transam/xlog.c:8412 +#: access/transam/xlog.c:8924 #, c-format msgid "" -"WAL generated with full_page_writes=off was replayed since last restartpoint" +"WAL generated with \"full_page_writes=off\" was replayed since last " +"restartpoint" msgstr "" -"마지막 재시작 위치부터 재반영된 WAL 내용이 full_page_writes=off 설정으로 만들" -"어진 내용입니다." +"마지막 재시작 위치부터 재반영된 WAL 내용이 \"full_page_writes=off\" 설정으로 " +"만들어진 내용입니다." -#: access/transam/xlog.c:8414 access/transam/xlog.c:8697 +#: access/transam/xlog.c:8926 access/transam/xlog.c:9222 #, 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 primary, and " -"then try an online backup again." +"not be used. Enable \"full_page_writes\" and run CHECKPOINT on the primary, " +"and then try an online backup again." msgstr "" "이런 경우는 대기 서버용으로 쓸 백업이 손상되어 사용할 수 없습니다. " -"full_page_writes 설정을 활성화 하고, 주 서버에서 CHECKPOINT 명령을 실행하고, " -"온라인 백업을 다시 해서 사용하세요." +"\"full_page_writes\" 설정을 활성화 하고, 주 서버에서 CHECKPOINT 명령을 실행하" +"고, 온라인 백업을 다시 해서 사용하세요." -#: access/transam/xlog.c:8481 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:9006 backup/basebackup.c:1417 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "\"%s\" 심볼릭 링크 파일을 읽을 수 없음: %m" -#: access/transam/xlog.c:8488 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:9013 backup/basebackup.c:1422 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "\"%s\" 심볼릭 링크의 대상이 너무 긺" -#: access/transam/xlog.c:8647 backup/basebackup.c:1217 +#: access/transam/xlog.c:9134 +#, c-format +msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +msgstr "" +"wal_level 값을 \"replica\" 또는 \"logical\"로 지정하고 서버를 실행하십시오." + +#: access/transam/xlog.c:9172 backup/basebackup.c:1281 #, c-format msgid "the standby was promoted during online backup" msgstr "대기 서버가 온라인 백업 중 주 서버로 전환되었습니다" -#: access/transam/xlog.c:8648 backup/basebackup.c:1218 +#: access/transam/xlog.c:9173 backup/basebackup.c:1282 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -2966,22 +3212,22 @@ msgstr "" "이런 경우, 해당 백업 자료가 손상되었을 가능성이 있습니다. 다른 백업본을 이용" "하세요." -#: access/transam/xlog.c:8695 +#: access/transam/xlog.c:9220 #, c-format msgid "" -"WAL generated with full_page_writes=off was replayed during online backup" +"WAL generated with \"full_page_writes=off\" was replayed during online backup" msgstr "" -"온라인 백업 도중 full_page_writes=off 설정으로 만들어진 WAL 내용이 재반영되었" -"습니다." +"온라인 백업 도중 \"full_page_writes=off\" 설정으로 만들어진 WAL 내용이 재반영" +"되었습니다." -#: access/transam/xlog.c:8811 +#: access/transam/xlog.c:9336 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "" "베이스 백업이 끝났습니다. 필요한 WAL 조각 파일이 아카이브 되길 기다리고 있습" "니다." -#: access/transam/xlog.c:8825 +#: access/transam/xlog.c:9350 #, c-format msgid "" "still waiting for all required WAL segments to be archived (%d seconds " @@ -2989,22 +3235,22 @@ msgid "" msgstr "" "필요한 WAL 조각 파일 아카이빙이 완료되기를 계속 기다리고 있음 (%d초 경과)" -#: access/transam/xlog.c:8827 +#: access/transam/xlog.c:9352 #, c-format msgid "" -"Check that your archive_command is executing properly. You can safely " +"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 "" -"archive_command 설정을 살펴보세요. 이 백업 작업은 안전하게 취소 할 수 있지" -"만, 데이터베이스 백업은 모든 WAL 조각 없이는 사용될 수 없습니다." +"\"archive_command\" 설정을 살펴보세요. 이 백업 작업은 안전하게 취소 할 수 있" +"지만, 데이터베이스 백업은 모든 WAL 조각 없이는 사용될 수 없습니다." -#: access/transam/xlog.c:8834 +#: access/transam/xlog.c:9359 #, c-format msgid "all required WAL segments have been archived" msgstr "모든 필요한 WAL 조각들이 아카이브 되었습니다." -#: access/transam/xlog.c:8838 +#: access/transam/xlog.c:9363 #, c-format msgid "" "WAL archiving is not enabled; you must ensure that all required WAL segments " @@ -3014,28 +3260,28 @@ msgstr "" "모든 WAL 조각 파일들을 직접 찾아서 따로 보관해 두어야 바르게 복구 할 수 있습" "니다." -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:9402 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "" "pg_backup_stop 작업이 호출되기 전에 백엔드가 종료되어 백업을 중지합니다." -#: access/transam/xlogarchive.c:207 +#: access/transam/xlogarchive.c:213 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "\"%s\" 아카이브 파일의 크기가 이상합니다: 현재값 %lld, 기대값 %lld" -#: access/transam/xlogarchive.c:216 +#: access/transam/xlogarchive.c:222 #, c-format msgid "restored log file \"%s\" from archive" msgstr "아카이브에서 \"%s\" 로그파일을 복구했음" -#: access/transam/xlogarchive.c:230 +#: access/transam/xlogarchive.c:236 #, c-format -msgid "restore_command returned a zero exit status, but stat() failed." -msgstr "restore_command 작업이 0을 반환했지만, stat() 작업 실패." +msgid "\"restore_command\" returned a zero exit status, but stat() failed." +msgstr "\"restore_command\" 작업이 0을 반환했지만, stat() 작업 실패." -#: access/transam/xlogarchive.c:262 +#: access/transam/xlogarchive.c:268 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "아카이브에서 \"%s\" 파일 복원 실패: %s" @@ -3043,180 +3289,182 @@ msgstr "아카이브에서 \"%s\" 파일 복원 실패: %s" #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:340 +#: access/transam/xlogarchive.c:346 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:450 access/transam/xlogarchive.c:530 +#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "\"%s\" archive status 파일을 만들 수 없습니다: %m" -#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:538 +#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "\"%s\" archive status 파일에 쓸 수 없습니다: %m" -#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 +#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 #, c-format msgid "a backup is already in progress in this session" msgstr "이미 이 세션에서 백업 작업이 진행 중입니다" -#: access/transam/xlogfuncs.c:146 +#: access/transam/xlogfuncs.c:140 #, c-format msgid "backup is not in progress" msgstr "현재 백업 작업을 하지 않고 있습니다" -#: access/transam/xlogfuncs.c:147 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "Did you call pg_backup_start()?" msgstr "pg_backup_start() 함수를 호출했나요?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 +#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 +#: access/transam/xlogfuncs.c:323 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "WAL 제어 함수는 복구 작업 중에는 실행 될 수 없음" -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 +#: access/transam/xlogfuncs.c:447 #, c-format msgid "%s cannot be executed during recovery." msgstr "복구 작업 중에는 %s 명령을 실행할 수 없습니다." -#: access/transam/xlogfuncs.c:221 +#: access/transam/xlogfuncs.c:215 #, c-format -msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" +msgid "" +"pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" msgstr "" -"pg_log_standby_snapshot() 함수는 wal_level >= replica 상태에서 사용될 수 있습" -"니다." +"pg_log_standby_snapshot() 함수는 \"wal_level\" >= \"replica\" 상태에서 사용" +"될 수 있습니다." -#: access/transam/xlogfuncs.c:253 +#: access/transam/xlogfuncs.c:247 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "WAL 수준이 복원 위치를 만들 수 없는 수준입니다" -#: access/transam/xlogfuncs.c:261 +#: access/transam/xlogfuncs.c:255 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "복원 위치 이름이 너무 깁니다. (최대값, %d 글자)" -#: access/transam/xlogfuncs.c:496 +#: access/transam/xlogfuncs.c:486 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "잘못된 WAL 파일 이름: \"%s\"" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 +#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 +#: access/transam/xlogfuncs.c:679 #, c-format msgid "recovery is not in progress" msgstr "현재 복구 작업 상태가 아닙니다" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 +#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 +#: access/transam/xlogfuncs.c:680 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "복구 제어 함수는 복구 작업일 때만 실행할 수 있습니다." -#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 +#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 #, c-format msgid "standby promotion is ongoing" msgstr "대기 서버가 운영 서버로 전환 중입니다." -#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s 함수는 운영 전환 중에는 실행될 수 없음." -#: access/transam/xlogfuncs.c:695 +#: access/transam/xlogfuncs.c:685 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" 값은 음수나 0을 사용할 수 없음" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:260 +#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "postmaster로 시그널 보내기 실패: %m" -#: access/transam/xlogfuncs.c:751 +#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#, c-format +msgid "terminating connection due to unexpected postmaster exit" +msgstr "postmaster의 예상치 못한 종료로 연결을 종료합니다" + +#: access/transam/xlogfuncs.c:740 +#, c-format +msgid "while waiting on promotion" +msgstr "주 서버로 전환하는 것을 기다리는 중" + +#: access/transam/xlogfuncs.c:744 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" msgstr[0] "%d 초 이내에 운영 전환을 하지 못했습니다." -#: access/transam/xlogprefetcher.c:1092 +#: access/transam/xlogprefetcher.c:1088 #, c-format msgid "" -"recovery_prefetch is not supported on platforms that lack posix_fadvise()." +"\"recovery_prefetch\" is not supported on platforms that lack " +"posix_fadvise()." msgstr "" -"이 OS는 posix_fadvise() 함수를 지원하지 않아, recovery_prefetch 설정을 지원하" -"지 않습니다." +"이 OS는 posix_fadvise() 함수를 지원하지 않아, \"recovery_prefetch\" 설정을 지" +"원하지 않습니다." -#: access/transam/xlogreader.c:626 +#: access/transam/xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 오프셋: 위치 %X/%X, 기대값 %u, 실재값 %u" -#: access/transam/xlogreader.c:635 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%X에서 contrecord를 필요로 함" -#: access/transam/xlogreader.c:676 access/transam/xlogreader.c:1119 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 길이: 위치 %X/%X, 기대값 %u, 실재값 %u" -#: access/transam/xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "%u 길이의 레코드를 디코딩하는 중 메모리 부족" - -#: access/transam/xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "너무 긴 길이(%u)의 레코드가 %X/%X에 있음" - -#: access/transam/xlogreader.c:776 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%X 위치에 contrecord 플래그가 없음" -#: access/transam/xlogreader.c:789 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "잘못된 contrecord 길이 %u (기대값: %lld), 위치 %X/%X" -#: access/transam/xlogreader.c:1127 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "잘못된 자원 관리 ID %u, 위치: %X/%X" -#: access/transam/xlogreader.c:1140 access/transam/xlogreader.c:1156 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "레코드의 잘못된 프리링크 %X/%X, 해당 레코드 %X/%X" -#: access/transam/xlogreader.c:1192 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "잘못된 자원관리자 데이터 체크섬, 위치: %X/%X 레코드" -#: access/transam/xlogreader.c:1226 +#: access/transam/xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "%04X 매직 번호가 잘못됨, WAL 조각 파일 %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1241 access/transam/xlogreader.c:1283 +#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 정보 비트 %04X, WAL 조각 파일 %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1257 +#: access/transam/xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -3225,7 +3473,7 @@ msgstr "" "WAL 파일이 다른 시스템의 것입니다. WAL 파일의 시스템 식별자는 %llu, " "pg_control 의 식별자는 %llu" -#: access/transam/xlogreader.c:1265 +#: access/transam/xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -3234,7 +3482,7 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더에 지정된 값이 잘" "못된 조각 크기임" -#: access/transam/xlogreader.c:1271 +#: access/transam/xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -3243,12 +3491,12 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더의 XLOG_BLCKSZ 값" "이 바르지 않음" -#: access/transam/xlogreader.c:1303 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 페이지 주소 %X/%X, WAL 조각 파일 %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1329 +#: access/transam/xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -3257,22 +3505,22 @@ msgstr "" "타임라인 범위 벗어남 %u (이전 번호 %u), WAL 조각 파일 %s, LSN %X/%X, offset " "%u" -#: access/transam/xlogreader.c:1735 +#: access/transam/xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "%u block_id는 범위를 벗어남, 위치 %X/%X" -#: access/transam/xlogreader.c:1759 +#: access/transam/xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA 지정했지만, %X/%X 에 자료가 없음" -#: access/transam/xlogreader.c:1766 +#: access/transam/xlogreader.c:1780 #, 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:1802 +#: access/transam/xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -3281,19 +3529,19 @@ msgstr "" "BKPIMAGE_HAS_HOLE 설정이 되어 있지만, 옵셋: %u, 길이: %u, 블록 이미지 길이: " "%u, 대상: %X/%X" -#: access/transam/xlogreader.c:1818 +#: access/transam/xlogreader.c:1832 #, 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:1832 +#: access/transam/xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED 설정이 되어 있지만, 블록 이미지 길이: %u, 대상: %X/%X" -#: access/transam/xlogreader.c:1847 +#: access/transam/xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -3302,147 +3550,160 @@ msgstr "" "BKPIMAGE_HAS_HOLE, BKPIMAGE_COMPRESSED 지정 안되어 있으나, 블록 이미지 길이" "는 %u, 대상: %X/%X" -#: access/transam/xlogreader.c:1863 +#: access/transam/xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL 설정이 되어 있지만, %X/%X 에 이전 릴레이션 없음" -#: access/transam/xlogreader.c:1875 +#: access/transam/xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "잘못된 block_id %u, 위치 %X/%X" -#: access/transam/xlogreader.c:1942 +#: access/transam/xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "잘못된 레코드 길이, 위치 %X/%X" -#: access/transam/xlogreader.c:1968 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WAL 레코드에서 %d ID의 백업 블록을 찾을 수 없음" -#: access/transam/xlogreader.c:2052 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%X 위치에 이미지를 복원할 수 없음 %d 블록이 잘못 지정됨" -#: access/transam/xlogreader.c:2059 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "%X/%X 위치에 이미지를 복원할 수 없음, %d 블록의 상태가 이상함" -#: access/transam/xlogreader.c:2086 access/transam/xlogreader.c:2103 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " "block %d" msgstr "%X/%X 위치에 압축된 이미지 복원 실패, %s 지원 하지 않음, 해당 블록: %d" -#: access/transam/xlogreader.c:2112 +#: access/transam/xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "알 수 없는 방법으로 이미지 압축 복원 실패: 위치 %X/%X, 블록 %d" -#: access/transam/xlogreader.c:2120 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "이미지 압축 풀기 실패, 위치 %X/%X, 블록 %d" -#: access/transam/xlogrecovery.c:547 -#, c-format -msgid "entering standby mode" -msgstr "대기 모드로 전환합니다" - -#: access/transam/xlogrecovery.c:550 -#, c-format -msgid "starting point-in-time recovery to XID %u" -msgstr "%u XID까지 시점 기반 복구 작업을 시작합니다" - -#: access/transam/xlogrecovery.c:554 -#, c-format -msgid "starting point-in-time recovery to %s" -msgstr "%s 까지 시점 복구 작업을 시작합니다" - -#: access/transam/xlogrecovery.c:558 -#, c-format -msgid "starting point-in-time recovery to \"%s\"" -msgstr "\"%s\" 복구 대상 이름까지 시점 복구 작업을 시작합니다" - -#: access/transam/xlogrecovery.c:562 -#, c-format -msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" -msgstr "\"%X/%X\" 위치(LSN)까지 시점 복구 작업을 시작합니다" - -#: access/transam/xlogrecovery.c:566 -#, c-format -msgid "starting point-in-time recovery to earliest consistent point" -msgstr "동기화 할 수 있는 마지막 지점까지 시점 복구 작업을 시작합니다" - -#: access/transam/xlogrecovery.c:569 +#: access/transam/xlogrecovery.c:617 #, c-format -msgid "starting archive recovery" -msgstr "아카이브 복구 작업을 시작합니다" +msgid "" +"starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on " +"timeline ID %u" +msgstr "백업 복구 시작: 리두LSN=%X/%X, 체크포인트LSN=%X/%X, 타임라인ID=%u" -#: access/transam/xlogrecovery.c:653 +#: access/transam/xlogrecovery.c:649 #, c-format -msgid "could not find redo location referenced by checkpoint record" -msgstr "체크포인트 기록으로 참조하는 재실행 위치를 찾을 수 없음" +msgid "" +"could not find redo location %X/%X referenced by checkpoint record at %X/%X" +msgstr "%X/%X 위치의 redo lsn을 찾을 수 없음: 참조하는 체크포인트 레코드=%X/%X" -#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664 +#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 #, c-format msgid "" -"If you are restoring from a backup, touch \"%s/recovery.signal\" and add " -"required recovery options.\n" +"If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/" +"standby.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/" "backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if " "restoring from a backup." msgstr "" -"백업을 복원하려면, \"%s/recovery.signal\" 파일을 만들고, 복구 관련 옵션을 지" -"정하세요.\n" +"백업을 복원하려면, \"%s/recovery.signal\" 또는 \"%s/standby.signal\" 파일을 " +"만들고, 복구 관련 옵션을 지정하세요.\n" "백업 복원을 하는게 아니라면, \"%s/backup_label\" 파일을 지우고 사용할 수 있" "습니다.\n" "주의: 백업 복원 작업을 하는데, \"%s/backup_label\" 파일을 지운다면, 클러스터" "가 손상 될 수 있습니다." -#: access/transam/xlogrecovery.c:663 +#: access/transam/xlogrecovery.c:660 #, c-format -msgid "could not locate required checkpoint record" -msgstr "요청된 체크포인트 레코드의 위치를 바르게 잡을 수 없음" +msgid "could not locate required checkpoint record at %X/%X" +msgstr "요청된 체크포인트 레코드의 위치(%X/%X)를 잡을 수 없음" -#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "\"%s\" 심벌릭 링크를 만들 수 없음: %m" -#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "\"%s\" 파일 무시함, \"%s\" 파일 없음" -#: access/transam/xlogrecovery.c:726 +#: access/transam/xlogrecovery.c:725 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿨습니다." -#: access/transam/xlogrecovery.c:732 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" -#: access/transam/xlogrecovery.c:786 +#: access/transam/xlogrecovery.c:770 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "\"%X/%X\" redo LSN에서 백업 복구 작업을 다시 시작합니다" + +#: access/transam/xlogrecovery.c:795 +#, c-format +msgid "could not locate a valid checkpoint record at %X/%X" +msgstr "%X/%X에서 바른 체크포인트 레코드를 잡을 수 없음" + +#: access/transam/xlogrecovery.c:806 +#, c-format +msgid "entering standby mode" +msgstr "대기 모드로 전환합니다" + +#: access/transam/xlogrecovery.c:809 +#, c-format +msgid "starting point-in-time recovery to XID %u" +msgstr "%u XID까지 시점 기반 복구 작업을 시작합니다" + +#: access/transam/xlogrecovery.c:813 +#, c-format +msgid "starting point-in-time recovery to %s" +msgstr "%s 까지 시점 복구 작업을 시작합니다" + +#: access/transam/xlogrecovery.c:817 +#, c-format +msgid "starting point-in-time recovery to \"%s\"" +msgstr "\"%s\" 복구 대상 이름까지 시점 복구 작업을 시작합니다" + +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" +msgstr "\"%X/%X\" 위치(LSN)까지 시점 복구 작업을 시작합니다" + +#: access/transam/xlogrecovery.c:825 +#, c-format +msgid "starting point-in-time recovery to earliest consistent point" +msgstr "동기화 할 수 있는 마지막 지점까지 시점 복구 작업을 시작합니다" + +#: access/transam/xlogrecovery.c:828 #, c-format -msgid "could not locate a valid checkpoint record" -msgstr "체크포인트 레코드의 위치를 바르게 잡을 수 없음" +msgid "starting archive recovery" +msgstr "아카이브 복구 작업을 시작합니다" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:849 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "요청한 %u 타임라인은 서버 타임라인의 하위가 아님" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:851 #, c-format msgid "" "Latest checkpoint is at %X/%X on timeline %u, but in the history of the " @@ -3451,7 +3712,7 @@ msgstr "" "마지막 체크포인트 위치는 %X/%X (%u 타임라인)입니다. 하지만, 요청받은 타임라" "인 내역파일에는 그 타임라인 %X/%X 위치에서 분기되었습니다." -#: access/transam/xlogrecovery.c:826 +#: access/transam/xlogrecovery.c:865 #, c-format msgid "" "requested timeline %u does not contain minimum recovery point %X/%X on " @@ -3459,22 +3720,22 @@ msgid "" msgstr "" "요청한 %u 타임라인은 %X/%X 최소 복구 위치가 없습니다, 기존 타임라인: %u" -#: access/transam/xlogrecovery.c:854 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid next transaction ID" msgstr "잘못된 다음 트랜잭션 ID" -#: access/transam/xlogrecovery.c:859 +#: access/transam/xlogrecovery.c:898 #, c-format msgid "invalid redo in checkpoint record" msgstr "체크포인트 레코드 안에 잘못된 redo 정보가 있음" -#: access/transam/xlogrecovery.c:870 +#: access/transam/xlogrecovery.c:909 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "운영 중지 체크포인트에서 잘못된 재실행 정보 발견" -#: access/transam/xlogrecovery.c:899 +#: access/transam/xlogrecovery.c:938 #, c-format msgid "" "database system was not properly shut down; automatic recovery in progress" @@ -3482,18 +3743,18 @@ msgstr "" "데이터베이스 시스템이 정상적으로 종료되지 못했습니다, 자동 복구 작업을 진행합" "니다" -#: access/transam/xlogrecovery.c:903 +#: access/transam/xlogrecovery.c:942 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "" "%u 타임라인으로 비정상 중지에 대한 복구작업을 시작함, 기존 타임라인: %u" -#: access/transam/xlogrecovery.c:946 +#: access/transam/xlogrecovery.c:985 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label 파일 안에 컨트롤 파일과 일관성이 맞지 않는 자료가 있음" -#: access/transam/xlogrecovery.c:947 +#: access/transam/xlogrecovery.c:986 #, c-format msgid "" "This means that the backup is corrupted and you will have to use another " @@ -3502,22 +3763,22 @@ msgstr "" "이 문제는 백업 자료 자체가 손상 되었음을 말합니다. 다른 백업본으로 복구 작업" "을 진행해야 합니다." -#: access/transam/xlogrecovery.c:1001 +#: access/transam/xlogrecovery.c:1040 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "\"%s\" 복구 명령 파일을 사용하는 것을 지원하지 않습니다" -#: access/transam/xlogrecovery.c:1066 +#: access/transam/xlogrecovery.c:1105 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "단일 사용자 서버를 대상으로 대기 모드를 사용할 수 없습니다." -#: access/transam/xlogrecovery.c:1083 +#: access/transam/xlogrecovery.c:1122 #, c-format -msgid "specified neither primary_conninfo nor restore_command" -msgstr "primary_conninfo 설정도, restore_command 설정도 없음" +msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" +msgstr "\"primary_conninfo\" 설정도, \"restore_command\" 설정도 없음" -#: access/transam/xlogrecovery.c:1084 +#: access/transam/xlogrecovery.c:1123 #, c-format msgid "" "The database server will regularly poll the pg_wal subdirectory to check for " @@ -3526,101 +3787,122 @@ msgstr "" "데이터베이스 서버는 일반적으로 주 서버에서 발생한 트랜잭션 로그를 반영하기 위" "해 pg_wal 하위 디렉터리를 조사할 것입니다." -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1131 #, c-format -msgid "must specify restore_command when standby mode is not enabled" +msgid "must specify \"restore_command\" when standby mode is not enabled" msgstr "" -"대기 모드를 활성화 하지 않았다면(standby_mode = off), restore_command 설정은 " -"반드시 있어야 함" +"대기 모드를 활성화 하지 않았다면(standby_mode = off), \"restore_command\" 설" +"정은 반드시 있어야 함" -#: access/transam/xlogrecovery.c:1130 +#: access/transam/xlogrecovery.c:1169 #, c-format msgid "recovery target timeline %u does not exist" msgstr "%u 복구 대상 타임라인이 없음" -#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220 -#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359 -#: access/transam/xlogrecovery.c:1383 +#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 +#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 #, c-format msgid "invalid data in file \"%s\"" msgstr "\"%s\" 파일에 유효하지 않은 자료가 있습니다" -#: access/transam/xlogrecovery.c:1280 +#: access/transam/xlogrecovery.c:1319 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "타임라인 ID가 %u 값으로 분석했지만, 기대값은 %u 임" -#: access/transam/xlogrecovery.c:1662 +#: access/transam/xlogrecovery.c:1330 #, c-format -msgid "redo starts at %X/%X" -msgstr "%X/%X에서 redo 작업 시작됨" +msgid "this is an incremental backup, not a data directory" +msgstr "이것은 증분 백업 디렉터리로 데이터 디렉터리가 아님" -#: access/transam/xlogrecovery.c:1675 +#: access/transam/xlogrecovery.c:1331 #, c-format -msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" +msgid "Use pg_combinebackup to reconstruct a valid data directory." +msgstr "" +"바른 데이터 디렉터리로 재구축하려면 pg_combinebackup 명령을 이용하세요." + +#: access/transam/xlogrecovery.c:1717 +#, c-format +msgid "unexpected record type found at redo point %X/%X" +msgstr "%X/%X redo 위치에 잘못된 레크드 형태가 발견됨" + +#: access/transam/xlogrecovery.c:1740 +#, c-format +msgid "redo starts at %X/%X" +msgstr "%X/%X에서 redo 작업 시작됨" + +#: access/transam/xlogrecovery.c:1753 +#, c-format +msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "redo 진행 중, 예상시간: %ld.%02d s, 현재 LSN: %X/%X" -#: access/transam/xlogrecovery.c:1767 +#: access/transam/xlogrecovery.c:1843 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "요청한 복구 중지 지점이 일치하는 복구 지점 앞에 있음" -#: access/transam/xlogrecovery.c:1799 +#: access/transam/xlogrecovery.c:1875 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "%X/%X에서 redo 작업 완료, 시스템 사용량: %s" -#: access/transam/xlogrecovery.c:1805 +#: access/transam/xlogrecovery.c:1881 #, c-format msgid "last completed transaction was at log time %s" msgstr "마지막 완료된 트랜잭션 기록 시간: %s" -#: access/transam/xlogrecovery.c:1814 +#: access/transam/xlogrecovery.c:1890 #, c-format msgid "redo is not required" msgstr "재반영해야 할 트랜잭션이 없음" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1901 #, c-format msgid "recovery ended before configured recovery target was reached" -msgstr "지정한 recovery target 도달 전에 복원 끝남" +msgstr "지정한 recovery target 도달 전에 복구 끝남" -#: access/transam/xlogrecovery.c:2019 +#: access/transam/xlogrecovery.c:2095 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "%X/%X에 빠진 contrecord를 건너뜀, %s에 덮어씀" -#: access/transam/xlogrecovery.c:2086 +#: access/transam/xlogrecovery.c:2162 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "잘못된 디렉터리 엔트리 \"%s\", 위치: %s" -#: access/transam/xlogrecovery.c:2088 +#: access/transam/xlogrecovery.c:2164 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "pg_tblspc/ 안 모든 디렉터리 엔트리는 심볼릭 링크여야 함" -#: access/transam/xlogrecovery.c:2089 +#: access/transam/xlogrecovery.c:2165 #, c-format msgid "" -"Remove those directories, or set allow_in_place_tablespaces to ON " +"Remove those directories, or set \"allow_in_place_tablespaces\" to ON " "transiently to let recovery complete." msgstr "" -"그 디렉터리를 지우든가, allow_in_place_tablespaces 설정을 ON으로 바꿔 임시로 " -"복원 작업을 완료하든가 하세요." +"그 디렉터리를 지우든가, \"allow_in_place_tablespaces\" 설정을 ON으로 바꿔 임" +"시로 복구 작업을 완료하든가 하세요." + +#: access/transam/xlogrecovery.c:2217 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "redo LSN %X/%X 부터 end LSN %X/%X 까지 백업 복구 완료" -#: access/transam/xlogrecovery.c:2163 +#: access/transam/xlogrecovery.c:2247 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "%X/%X 위치에서 복구 일관성을 맞춤" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2201 +#: access/transam/xlogrecovery.c:2285 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL redo 위치: %X/%X, 대상: %s" -#: access/transam/xlogrecovery.c:2299 +#: access/transam/xlogrecovery.c:2383 #, c-format msgid "" "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint " @@ -3628,12 +3910,12 @@ msgid "" msgstr "" "체크포인트 레코드에 예기치 않은 이전 타임라인ID %u(현재 타임라인ID: %u)" -#: access/transam/xlogrecovery.c:2308 +#: access/transam/xlogrecovery.c:2392 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "체크포인트 레코드에 예기치 않은 타임라인 ID %u이(가) 있음(%u 뒤)" -#: access/transam/xlogrecovery.c:2324 +#: access/transam/xlogrecovery.c:2408 #, c-format msgid "" "unexpected timeline ID %u in checkpoint record, before reaching minimum " @@ -3642,113 +3924,113 @@ msgstr "" "체크포인트 내역 안에 %u 타임라인 ID가 기대한 것과 다릅니다. 발생 위치: %X/%X " "(타임라인: %u) 최소 복구 위치 이전" -#: access/transam/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784 +#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 #, c-format msgid "recovery stopping after reaching consistency" msgstr "일관성을 다 맞추어 복구 작업을 중지합니다." -#: access/transam/xlogrecovery.c:2529 +#: access/transam/xlogrecovery.c:2613 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "복구 중지 위치(LSN): \"%X/%X\" 이전" -#: access/transam/xlogrecovery.c:2619 +#: access/transam/xlogrecovery.c:2703 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "%u 트랜잭션 커밋 전 복구 중지함, 시간 %s" -#: access/transam/xlogrecovery.c:2626 +#: access/transam/xlogrecovery.c:2710 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "%u 트랜잭션 중단 전 복구 중지함, 시간 %s" -#: access/transam/xlogrecovery.c:2679 +#: access/transam/xlogrecovery.c:2763 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "복구 중지함, 복구 위치 \"%s\", 시간 %s" -#: access/transam/xlogrecovery.c:2697 +#: access/transam/xlogrecovery.c:2781 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "복구 중지 위치(LSN): \"%X/%X\" 이후" -#: access/transam/xlogrecovery.c:2764 +#: access/transam/xlogrecovery.c:2848 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "%u 트랜잭션 커밋 후 복구 중지함, 시간 %s" -#: access/transam/xlogrecovery.c:2772 +#: access/transam/xlogrecovery.c:2856 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "%u 트랜잭션 중단 후 복구 중지함, 시간 %s" -#: access/transam/xlogrecovery.c:2853 +#: access/transam/xlogrecovery.c:2937 #, c-format msgid "pausing at the end of recovery" msgstr "복구 끝에 기다리는 중" -#: access/transam/xlogrecovery.c:2854 +#: access/transam/xlogrecovery.c:2938 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "운영 서버로 바꾸려면, pg_wal_replay_resume() 함수를 호출하세요." -#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594 +#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4678 #, c-format msgid "recovery has paused" msgstr "복구 작업이 일시 중지 됨" -#: access/transam/xlogrecovery.c:2858 +#: access/transam/xlogrecovery.c:2942 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "계속 진행하려면, pg_wal_replay_resume() 함수를 호출하세요." -#: access/transam/xlogrecovery.c:3121 +#: access/transam/xlogrecovery.c:3205 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "예상치 못한 타임라인 ID %u, WAL 조각 파일: %s, LSN %X/%X, offset %u" -#: access/transam/xlogrecovery.c:3329 +#: access/transam/xlogrecovery.c:3413 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "%s WAL 조각에서 읽기 실패, LSN %X/%X, offset %u: %m" -#: access/transam/xlogrecovery.c:3336 +#: access/transam/xlogrecovery.c:3420 #, c-format msgid "" "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "%s WAL 조각에서 읽기 실패, LSN %X/%X, offset %u: read %d / %zu" -#: access/transam/xlogrecovery.c:3976 +#: access/transam/xlogrecovery.c:4060 #, c-format msgid "invalid checkpoint location" msgstr "잘못된 checkpoint 위치" -#: access/transam/xlogrecovery.c:3986 +#: access/transam/xlogrecovery.c:4070 #, c-format msgid "invalid checkpoint record" msgstr "잘못된 checkpoint 레코드" -#: access/transam/xlogrecovery.c:3992 +#: access/transam/xlogrecovery.c:4076 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "checkpoint 레코드에서 잘못된 자원 관리자 ID 발견" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4084 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "checkpoint 레코드에서 잘못된 xl_info 발견" -#: access/transam/xlogrecovery.c:4006 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "checkpoint 레코드 길이가 잘못되었음" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4144 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "요청한 %u 타임라인은 %u 데이터베이스 시스템 타임라인의 하위가 아님" -#: access/transam/xlogrecovery.c:4074 +#: access/transam/xlogrecovery.c:4158 #, c-format msgid "" "new timeline %u forked off current database system timeline %u before " @@ -3757,28 +4039,28 @@ msgstr "" "복구 위치까지 복구하기 전에 새 타임라인 %u번으로 분기됨, 기존 데이터베이스 타" "임라인: %u, 기대한 복구 위치 %X/%X" -#: access/transam/xlogrecovery.c:4093 +#: access/transam/xlogrecovery.c:4177 #, c-format msgid "new target timeline is %u" msgstr "새 대상 타임라인: %u" -#: access/transam/xlogrecovery.c:4296 +#: access/transam/xlogrecovery.c:4380 #, c-format msgid "WAL receiver process shutdown requested" msgstr "WAL receiver 프로세스가 중지 요청을 받았습니다." -#: access/transam/xlogrecovery.c:4356 +#: access/transam/xlogrecovery.c:4440 #, c-format msgid "received promote request" msgstr "운영 전환 신호를 받았습니다." -#: access/transam/xlogrecovery.c:4585 +#: access/transam/xlogrecovery.c:4669 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "불충분한 서버 설정으로 hot standby 서버를 운영할 수 없음" -#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613 -#: access/transam/xlogrecovery.c:4643 +#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4727 #, c-format msgid "" "%s = %d is a lower setting than on the primary server, where its value was " @@ -3787,238 +4069,240 @@ msgstr "" "이 서버의 현재 %s = %d 설정은 주 서버의 설정값(%d)보다 낮게 설정 되어 있기 때" "문입니다." -#: access/transam/xlogrecovery.c:4595 +#: access/transam/xlogrecovery.c:4679 #, c-format msgid "If recovery is unpaused, the server will shut down." -msgstr "복원 후 멈춰 있을 수 없으면 서버는 종료될 것입니다." +msgstr "복구 후 멈춰 있을 수 없으면 서버는 종료될 것입니다." -#: access/transam/xlogrecovery.c:4596 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "" "You can then restart the server after making the necessary configuration " "changes." msgstr "환경 설정을 바꾸어 서버를 다시 시작할 수 있습니다." -#: access/transam/xlogrecovery.c:4607 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "운영 서버로 전환할 수 없습니다. 설정이 불충분합니다." -#: access/transam/xlogrecovery.c:4617 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "필요한 설정을 바꾸어 서버를 다시 시작하세요." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4725 #, c-format msgid "recovery aborted because of insufficient parameter settings" -msgstr "복원 작업이 불충분한 설정으로 중지 되었습니다." +msgstr "복구 작업이 불충분한 설정으로 중지 되었습니다." -#: access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4731 #, c-format msgid "" "You can restart the server after making the necessary configuration changes." msgstr "필요한 설정을 바꾸어 서버를 다시 시작할 수 있습니다." -#: access/transam/xlogrecovery.c:4689 +#: access/transam/xlogrecovery.c:4773 #, c-format msgid "multiple recovery targets specified" msgstr "복구 대상을 다중 지정했음" -#: access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:4774 #, c-format msgid "" -"At most one of recovery_target, recovery_target_lsn, recovery_target_name, " -"recovery_target_time, recovery_target_xid may be set." +"At most one of \"recovery_target\", \"recovery_target_lsn\", " +"\"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" " +"may be set." msgstr "" -"recovery_target, recovery_target_lsn, recovery_target_name, " -"recovery_target_time, recovery_target_xid 이들 중 하나는 지정해야합니다." +"\"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", " +"\"recovery_target_time\", \"recovery_target_xid\" 이들 중 하나는 지정해야합니" +"다." -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4785 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "이 값으로는 \"immediate\" 만 허용합니다." -#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4937 utils/adt/timestamp.c:202 +#: utils/adt/timestamp.c:455 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "타임스탬프 값이 범위를 벗어났음: \"%s\"" -#: access/transam/xlogrecovery.c:4898 +#: access/transam/xlogrecovery.c:4982 #, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline 값으로 잘못된 숫자입니다." +msgid "\"recovery_target_timeline\" is not a valid number." +msgstr "\"recovery_target_timeline\" 값으로 잘못된 숫자입니다." -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1032 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "%s WAL 조각에서 읽기 실패, offset %d: %m" -#: access/transam/xlogutils.c:1046 +#: access/transam/xlogutils.c:1039 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "%s WAL 조각에서 읽기 실패, 위치: %d, %d 읽음(전체: %d)" -#: archive/shell_archive.c:96 +#: archive/shell_archive.c:98 #, c-format msgid "archive command failed with exit code %d" msgstr "아카이브 명령 실패, 종료 코드: %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:100 archive/shell_archive.c:110 +#: archive/shell_archive.c:116 archive/shell_archive.c:125 #, c-format msgid "The failed archive command was: %s" msgstr "실패한 아카이브 명령: %s" -#: archive/shell_archive.c:105 +#: archive/shell_archive.c:107 #, c-format msgid "archive command was terminated by exception 0x%X" msgstr "0x%X 예외로 인해 아카이브 명령이 종료됨" -#: archive/shell_archive.c:107 postmaster/postmaster.c:3678 +#: archive/shell_archive.c:109 postmaster/postmaster.c:3093 #, c-format msgid "" "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "16진수 값에 대한 설명은 C 포함 파일 \"ntstatus.h\"를 참조하십시오." -#: archive/shell_archive.c:112 +#: archive/shell_archive.c:114 #, c-format msgid "archive command was terminated by signal %d: %s" msgstr "%d번 시그널로 인해 아카이브 명령이 종료됨: %s" -#: archive/shell_archive.c:121 +#: archive/shell_archive.c:123 #, c-format msgid "archive command exited with unrecognized status %d" msgstr "아카이브 명령이 인식할 수 없는 %d 상태로 종료됨" -#: backup/backup_manifest.c:253 +#: backup/backup_manifest.c:254 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "%u 타임라인이 끝이어야하는데, %u 타임라인임" -#: backup/backup_manifest.c:277 +#: backup/backup_manifest.c:278 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "시작 타임라인이 %u 여야하는데, %u 타임라인임" -#: backup/backup_manifest.c:304 +#: backup/backup_manifest.c:305 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "%u 시작 타임라인이 %u 타임라인 내역안에 없음" -#: backup/backup_manifest.c:355 +#: backup/backup_manifest.c:356 #, c-format msgid "could not rewind temporary file" msgstr "임시 파일을 되감을 수 없음" -#: backup/basebackup.c:470 +#: backup/basebackup.c:479 #, c-format msgid "could not find any WAL files" msgstr "어떤 WAL 파일도 찾을 수 없음" -#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 +#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 #, c-format msgid "could not find WAL file \"%s\"" msgstr "\"%s\" WAL 파일 찾기 실패" -#: backup/basebackup.c:551 backup/basebackup.c:576 +#: backup/basebackup.c:560 backup/basebackup.c:585 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "\"%s\" WAL 파일의 크기가 알맞지 않음" -#: backup/basebackup.c:646 +#: backup/basebackup.c:656 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" msgstr[0] "%lld 전체 체크섬 검사 실패" -#: backup/basebackup.c:653 +#: backup/basebackup.c:663 #, c-format msgid "checksum verification failure during base backup" msgstr "베이스 백업 중 체크섬 검사 실패" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 +#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 +#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 +#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 +#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 #, c-format msgid "duplicate option \"%s\"" msgstr "\"%s\" 옵션을 두 번 지정했습니다" -#: backup/basebackup.c:750 +#: backup/basebackup.c:761 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "알 수 없는 체크포인트 종류: \"%s\"" -#: backup/basebackup.c:785 +#: backup/basebackup.c:793 +#, c-format +msgid "incremental backups cannot be taken unless WAL summarization is enabled" +msgstr "증분 백업은 summarize_wal=on 상태에서만 가능함" + +#: backup/basebackup.c:809 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "" "%d 값은 \"%s\" 매개 변수의 값으로 타당한 범위(%d .. %d)를 벗어났습니다." -#: backup/basebackup.c:830 +#: backup/basebackup.c:854 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "인식할 수 없는 메니페스트 옵션 \"%s\"" -#: backup/basebackup.c:846 -#, c-format -msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "알 수 없는 체크섬 알고리즘: \"%s\"" - -#: backup/basebackup.c:881 +#: backup/basebackup.c:905 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "알 수 없는 압축 알고리즘: \"%s\"" -#: backup/basebackup.c:897 +#: backup/basebackup.c:921 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "인식할 수 없는 베이스 백업 옵션: \"%s\"" -#: backup/basebackup.c:908 +#: backup/basebackup.c:932 #, c-format msgid "manifest checksums require a backup manifest" msgstr "매니페스트 체크섬은 하나의 백업 메니페스트를 필요로 함" -#: backup/basebackup.c:917 +#: backup/basebackup.c:941 #, c-format msgid "target detail cannot be used without target" msgstr "타켓 지정 없이 타켓 세부정보를 지정할 수 없음" -#: backup/basebackup.c:926 backup/basebackup_target.c:218 +#: backup/basebackup.c:950 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "\"%s\" 타켓은 타켓 세부정보를 지정할 수 없음" -#: backup/basebackup.c:937 +#: backup/basebackup.c:961 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "압축을 사용하지 않으면 압축 세부 정보를 지정할 수 없음" -#: backup/basebackup.c:950 +#: backup/basebackup.c:974 #, c-format msgid "invalid compression specification: %s" msgstr "잘못된 압축 명세: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1024 +#, c-format +msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" +msgstr "증북 BASE_BACKUP 수행 전에 UPLOAD_MANIFEST 있어야 함" + +#: backup/basebackup.c:1157 backup/basebackup.c:1358 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "파일 또는 디렉터리 \"%s\"의 상태를 확인할 수 없음: %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1544 #, c-format msgid "skipping special file \"%s\"" msgstr "\"%s\" 특수 파일을 건너뜀" -#: backup/basebackup.c:1542 -#, c-format -msgid "invalid segment number %d in file \"%s\"" -msgstr "잘못된 조각 번호 %d, 해당 파일: \"%s\"" - -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1751 #, c-format msgid "" "could not verify checksum in file \"%s\", block %u: read buffer size %d and " @@ -4027,7 +4311,13 @@ msgstr "" "\"%s\" 파일(%u 블록)에서 체크섬 검사 실패: 읽기 버퍼(%d)와 페이지 크기(%d)가 " "서로 다름" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1813 +#, c-format +msgid "file \"%s\" has a total of %d checksum verification failure" +msgid_plural "file \"%s\" has a total of %d checksum verification failures" +msgstr[0] "\"%s\" 파일에서 전체 %d 건 체크섬 검사 실패" + +#: backup/basebackup.c:1917 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated %X but " @@ -4035,7 +4325,7 @@ msgid "" msgstr "" "\"%s\" 파일 체크섬 검사 실패(해당 블럭 %u): 계산된 체크섬 %X (기대값 %X)" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1924 #, c-format msgid "" "further checksum verification failures in file \"%s\" will not be reported" @@ -4043,24 +4333,23 @@ msgstr "" "계속해서 발생하는 \"%s\"에서의 체크섬 검사 실패는 더 이상 보고하지 않을 것입" "니다." -#: backup/basebackup.c:1721 -#, c-format -msgid "file \"%s\" has a total of %d checksum verification failure" -msgid_plural "file \"%s\" has a total of %d checksum verification failures" -msgstr[0] "\"%s\" 파일에서 전체 %d 건 체크섬 검사 실패" - -#: backup/basebackup.c:1767 +#: backup/basebackup.c:2048 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "tar 파일로 묶기에는 파일 이름이 너무 긺: \"%s\"" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:2053 #, c-format msgid "" "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "" -"tar 포멧을 사용하기에는 심볼릭 링크의 대상 경로가 너무 깁니다: 파일 이름 \"%s" -"\", 대상 \"%s\"" +"tar 포멧을 사용하기에는 심볼릭 링크의 대상 경로가 너무 깁니다: 파일 이름 " +"\"%s\", 대상 \"%s\"" + +#: backup/basebackup.c:2127 +#, c-format +msgid "could not read file \"%s\": read %zd of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %zd 읽음, 전체 %zu" #: backup/basebackup_gzip.c:67 #, c-format @@ -4072,55 +4361,148 @@ msgstr "gzip 압축 기능을 뺀 채로 서버가 만들어졌습니다." msgid "could not initialize compression library" msgstr "압축 라이브러리를 초기화할 수 없음" +#: backup/basebackup_incremental.c:294 +#, c-format +msgid "manifest contains no required WAL ranges" +msgstr "매니페스트에 필요한 WAL 범위가 없음" + +#: backup/basebackup_incremental.c:349 +#, c-format +msgid "timeline %u found in manifest, but not in this server's history" +msgstr "매니페스트에 있는 타임라인 %u번이 이 서버 백업 이력 파일에는 없음" + +#: backup/basebackup_incremental.c:414 +#, c-format +msgid "" +"manifest requires WAL from initial timeline %u starting at %X/%X, but that " +"timeline begins at %X/%X" +msgstr "" +"매니페스트에는 시작 타임라인이 %u번으로 %X/%X에 있다고 해서 그 WAL 파일이 필요한데, " +"그 타임라인은 %X/%X에 있음" + +#: backup/basebackup_incremental.c:424 +#, c-format +msgid "" +"manifest requires WAL from continuation timeline %u starting at %X/%X, but " +"that timeline begins at %X/%X" +msgstr "" +"매니페스트에는 연결 타임라인이 %u번으로 %X/%X에 있다고 해서 그 WAL 파일이 필요한데, " +"그 타임라인은 %X/%X에 있음" + +#: backup/basebackup_incremental.c:435 +#, c-format +msgid "" +"manifest requires WAL from final timeline %u ending at %X/%X, but this " +"backup starts at %X/%X" +msgstr "" +"매니페스트에는 최종 타임라인이 %u번으로 %X/%X에 있다고 해서 그 WAL 파일이 필요한데, " +"이 백업은 %X/%X에서 시작됨" + +#: backup/basebackup_incremental.c:439 +#, c-format +msgid "" +"This can happen for incremental backups on a standby if there was little " +"activity since the previous backup." +msgstr "" +"이 현상은 이전 백업 이후 DB 사용이 거의 없었는데, 대기 서버에서 증분 백업을 " +"받는 경우 발생합니다." + +#: backup/basebackup_incremental.c:446 +#, c-format +msgid "" +"manifest requires WAL from non-final timeline %u ending at %X/%X, but this " +"server switched timelines at %X/%X" +msgstr "" +"매니페스트에는 %u 타임라인을 끝내는 것이 %X/%X에 있어 그 WAL 파일이 필요한데, " +"서버는 %X/%X에서 타임라인이 바뀌었음" + +#: backup/basebackup_incremental.c:527 +#, c-format +msgid "" +"WAL summaries are required on timeline %u from %X/%X to %X/%X, but no " +"summaries for that timeline and LSN range exist" +msgstr "" +"WAL 요약 정보에서는 %u번 타임라인은 %X/%X에서 %X/%X까지인데, " +"이 타임라인과 범위에 대한 요약을 못 찾음" + +#: backup/basebackup_incremental.c:534 +#, c-format +msgid "" +"WAL summaries are required on timeline %u from %X/%X to %X/%X, but the " +"summaries for that timeline and LSN range are incomplete" +msgstr "" +"WAL 요약 정보에서는 %u번 타임라인은 %X/%X에서 %X/%X까지인데, " +"이 타임라인과 범위에 대한 요약이 불완전함" + +#: backup/basebackup_incremental.c:538 +#, c-format +msgid "The first unsummarized LSN in this range is %X/%X." +msgstr "이 범위 안의 첫번째 요약푼 LSN은 %X/%X입니다." + +#: backup/basebackup_incremental.c:938 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "백업 매니페이스 버전이 1인데, 이것은 증분 백업을 지원하지 않음" + +#: backup/basebackup_incremental.c:956 +#, c-format +msgid "" +"system identifier in backup manifest is %llu, but database system identifier " +"is %llu" +msgstr "" +"백업 매니페스트에는 시스템 식별자 번호가 %llu인데, 데이터베이스 시스템 식별자는 " +"%llu임" + #: backup/basebackup_lz4.c:67 #, c-format msgid "lz4 compression is not supported by this build" msgstr "lz4 기능을 뺀 채로 서버가 만들어졌습니다." -#: backup/basebackup_server.c:75 +#: backup/basebackup_server.c:73 #, c-format msgid "permission denied to create backup stored on server" msgstr "서버에 백업본을 만들기 위한 권한 없음" -#: backup/basebackup_server.c:76 +#: backup/basebackup_server.c:74 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may create a backup stored on " "the server." msgstr "서버에 백업 결과를 파일로 저장하려면, \"%s\" 롤 구성원이어야 합니다." -#: backup/basebackup_server.c:91 +#: backup/basebackup_server.c:89 #, c-format msgid "relative path not allowed for backup stored on server" msgstr "백업을 서버에 저장할 경로 이름으로 상대경로는 사용할 수 없습니다" -#: backup/basebackup_server.c:104 commands/dbcommands.c:501 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 +#: commands/tablespace.c:157 commands/tablespace.c:173 +#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" -#: backup/basebackup_server.c:117 +#: backup/basebackup_server.c:115 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "\"%s\" 디렉터리가 비어있지 않습니다." -#: backup/basebackup_server.c:125 utils/init/postinit.c:1164 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1178 #, c-format msgid "could not access directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 -#: storage/smgr/md.c:615 storage/smgr/md.c:865 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 +#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 +#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 +#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 #, c-format msgid "Check free disk space." msgstr "디스크 여유 공간을 확인해 주십시오." -#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 +#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/walsummary.c:309 #, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" msgstr "\"%s\" 파일 쓰기 실패: %d 바이트만 썼음(전체: %d), 해당 블록: %u" @@ -4150,248 +4532,248 @@ msgstr "압축 작업자 수를 %d 값으로 지정할 수 없음: %s" msgid "could not enable long-distance mode: %s" msgstr "long-distance 모드를 활성화 할 수 없음: %s" -#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 +#: backup/walsummaryfuncs.c:95 +#, c-format +msgid "invalid timeline %lld" +msgstr "잘못된 타임라인 번호 %lld" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946 #, c-format msgid "--%s requires a value" msgstr "--%s 옵션은 해당 값을 지정해야 합니다" -#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 +#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951 #, c-format msgid "-c %s requires a value" msgstr "-c %s 옵션은 해당 값을 지정해야 합니다" -#: bootstrap/bootstrap.c:289 -#, c-format -msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "-X 값은 1 MB ~ 1 GB 사이 2^n 값이어야 함" - -#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 +#: postmaster/postmaster.c:759 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "자제한 사항은 \"%s --help\" 명령으로 살펴보십시오.\n" -#: bootstrap/bootstrap.c:304 +#: bootstrap/bootstrap.c:291 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: 잘못된 명령행 인자\n" -#: catalog/aclchk.c:201 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "grant 옵션들은 롤에서만 지정될 수 있습니다" -#: catalog/aclchk.c:323 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")에 대한 권한이 부여되지 않았음" -#: catalog/aclchk.c:328 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "\"%s\"에 대한 권한이 부여되지 않았음" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")에 대한 일부 권한이 부여되지 않았음" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "\"%s\"에 대한 일부 권한이 부여되지 않았음" -#: catalog/aclchk.c:352 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")에 대한 권한을 취소할 수 없음" -#: catalog/aclchk.c:357 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "\"%s\"에 대한 권한을 취소할 수 없음" -#: catalog/aclchk.c:365 +#: catalog/aclchk.c:375 #, c-format msgid "" "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")의 일부 권한을 박탈할 수 없음" -#: catalog/aclchk.c:370 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "\"%s\"에 대한 일부 권한을 취소할 수 없음" -#: catalog/aclchk.c:402 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "권한 수여자는 현재 사용자여야합니다" -#: catalog/aclchk.c:470 catalog/aclchk.c:1045 +#: catalog/aclchk.c:480 catalog/aclchk.c:1055 #, c-format msgid "invalid privilege type %s for relation" msgstr "릴레이션의 %s 권한은 잘못된 종류임" -#: catalog/aclchk.c:474 catalog/aclchk.c:1049 +#: catalog/aclchk.c:484 catalog/aclchk.c:1059 #, c-format msgid "invalid privilege type %s for sequence" msgstr "시퀀스의 %s 권한은 잘못된 종류임" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "%s 권한은 데이터베이스에는 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:482 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "%s 권한은 도메인에서 유효하지 않음" -#: catalog/aclchk.c:486 catalog/aclchk.c:1053 +#: catalog/aclchk.c:496 catalog/aclchk.c:1063 #, c-format msgid "invalid privilege type %s for function" msgstr "%s 권한은 함수에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:490 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "%s 권한은 프로시주얼 언어에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:504 #, c-format msgid "invalid privilege type %s for large object" msgstr "%s 권한은 대형 개체에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:498 catalog/aclchk.c:1069 +#: catalog/aclchk.c:508 catalog/aclchk.c:1079 #, c-format msgid "invalid privilege type %s for schema" msgstr "%s 권한은 스키마(schema)에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:502 catalog/aclchk.c:1057 +#: catalog/aclchk.c:512 catalog/aclchk.c:1067 #, c-format msgid "invalid privilege type %s for procedure" msgstr "프로시져용 %s 권한 종류가 잘못됨" -#: catalog/aclchk.c:506 catalog/aclchk.c:1061 +#: catalog/aclchk.c:516 catalog/aclchk.c:1071 #, c-format msgid "invalid privilege type %s for routine" msgstr "루틴용 %s 권한 종류가 잘못됨" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "%s 권한은 테이블스페이스에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:514 catalog/aclchk.c:1065 +#: catalog/aclchk.c:524 catalog/aclchk.c:1075 #, c-format msgid "invalid privilege type %s for type" msgstr "%s 권한은 자료형에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:518 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "%s 권한 형식은 외부 데이터 래퍼에 유효하지 않음" -#: catalog/aclchk.c:522 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "%s 권한 형식은 외부 서버에 유효하지 않음" -#: catalog/aclchk.c:526 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "잘못된 환경 설정 매개 변수용 권한 형태: %s" -#: catalog/aclchk.c:565 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "칼럼 권한은 릴레이션에서만 유효함" -#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287 +#: catalog/aclchk.c:738 catalog/aclchk.c:3629 catalog/objectaddress.c:1054 +#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 #, c-format msgid "large object %u does not exist" msgstr "%u large object 없음" -#: catalog/aclchk.c:1102 +#: catalog/aclchk.c:1112 #, c-format msgid "default privileges cannot be set for columns" msgstr "default privileges 설정은 칼럼 대상으로 할 수 없음" -#: catalog/aclchk.c:1138 +#: catalog/aclchk.c:1148 #, c-format msgid "permission denied to change default privileges" msgstr "default privileges 변경 권한 없음" -#: catalog/aclchk.c:1256 +#: catalog/aclchk.c:1266 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "GRANT/REVOKE ON SCHEMAS 구문을 쓸 때는 IN SCHEMA 구문을 쓸 수 없음" -#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7619 -#: commands/tablecmds.c:7689 commands/tablecmds.c:7801 -#: commands/tablecmds.c:7895 commands/tablecmds.c:7954 -#: commands/tablecmds.c:8043 commands/tablecmds.c:8073 -#: commands/tablecmds.c:8201 commands/tablecmds.c:8283 -#: commands/tablecmds.c:8417 commands/tablecmds.c:8525 -#: commands/tablecmds.c:12240 commands/tablecmds.c:12421 -#: commands/tablecmds.c:12582 commands/tablecmds.c:13744 -#: commands/tablecmds.c:16273 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: catalog/aclchk.c:1617 catalog/catalog.c:659 catalog/objectaddress.c:1523 +#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:951 +#: commands/sequence.c:1655 commands/tablecmds.c:7541 commands/tablecmds.c:7695 +#: commands/tablecmds.c:7745 commands/tablecmds.c:7819 +#: commands/tablecmds.c:7889 commands/tablecmds.c:8019 +#: commands/tablecmds.c:8148 commands/tablecmds.c:8242 +#: commands/tablecmds.c:8343 commands/tablecmds.c:8470 +#: commands/tablecmds.c:8500 commands/tablecmds.c:8642 +#: commands/tablecmds.c:8735 commands/tablecmds.c:8869 +#: commands/tablecmds.c:8981 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12989 commands/tablecmds.c:13150 +#: commands/tablecmds.c:14339 commands/tablecmds.c:16966 commands/trigger.c:942 +#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409 +#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923 +#: utils/adt/ruleutils.c:2812 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "\"%s\" 칼럼은 \"%s\" 릴레이션(relation)에 없음" -#: catalog/aclchk.c:1840 +#: catalog/aclchk.c:1862 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" 개체는 인덱스임" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13901 commands/tablecmds.c:17172 +#: catalog/aclchk.c:1869 commands/tablecmds.c:14496 commands/tablecmds.c:17882 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" 개체는 복합 자료형입니다" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17136 utils/adt/acl.c:2084 -#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 -#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 +#: catalog/aclchk.c:1877 catalog/objectaddress.c:1363 commands/tablecmds.c:263 +#: commands/tablecmds.c:17846 utils/adt/acl.c:2107 utils/adt/acl.c:2137 +#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237 +#: utils/adt/acl.c:2268 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" 시퀀스가 아님" -#: catalog/aclchk.c:1893 +#: catalog/aclchk.c:1915 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "\"%s\" 시퀀스는 USAGE, SELECT 및 UPDATE 권한만 지원함" -#: catalog/aclchk.c:1910 +#: catalog/aclchk.c:1932 #, c-format msgid "invalid privilege type %s for table" msgstr "%s 권한은 테이블에서 사용할 수 없은 권한 형태임" -#: catalog/aclchk.c:2072 +#: catalog/aclchk.c:2097 #, c-format msgid "invalid privilege type %s for column" msgstr "%s 권한 형식은 칼럼에서 유효하지 않음" -#: catalog/aclchk.c:2085 +#: catalog/aclchk.c:2110 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "\"%s\" 시퀀스는 SELECT 열 권한만 지원함" -#: catalog/aclchk.c:2275 +#: catalog/aclchk.c:2301 #, c-format msgid "language \"%s\" is not trusted" msgstr "\"%s\" 프로시주얼 언어는 안전하지 못합니다" -#: catalog/aclchk.c:2277 +#: catalog/aclchk.c:2303 #, c-format msgid "" "GRANT and REVOKE are not allowed on untrusted languages, because only " @@ -4400,400 +4782,411 @@ msgstr "" "안전하지 않은 프로시져 언어에 대해서는 GRANT 또는 REVOKE 작업을 허용하지 않습" "니다, 안전하지 않은 프로시져 언어는 슈퍼유저만 사용할 수 있기 때문입니다." -#: catalog/aclchk.c:2427 +#: catalog/aclchk.c:2454 #, c-format msgid "cannot set privileges of array types" msgstr "배열형 자료형에 권한 설정을 할 수 없음" -#: catalog/aclchk.c:2428 +#: catalog/aclchk.c:2455 #, c-format msgid "Set the privileges of the element type instead." msgstr "그 배열 요소에 해당하는 자료형에 대해서 접근 권한 설정을 하세요." -#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 +#: catalog/aclchk.c:2459 +#, c-format +msgid "cannot set privileges of multirange types" +msgstr "다중 범위 자료형에 권한 설정을 할 수 없음" + +#: catalog/aclchk.c:2460 +#, c-format +msgid "Set the privileges of the range type instead." +msgstr "해당하는 범위 자료형에 대해서 접근 권한 설정을 하세요." + +#: catalog/aclchk.c:2467 catalog/objectaddress.c:1629 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" 이름의 개체는 도메인이 아닙니다" -#: catalog/aclchk.c:2619 +#: catalog/aclchk.c:2653 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "알 수 없는 권한 타입 \"%s\"" -#: catalog/aclchk.c:2684 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for aggregate %s" msgstr "%s 집계함수에 대한 접근 권한 없음" -#: catalog/aclchk.c:2687 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for collation %s" msgstr "%s 정렬정의(collation) 접근 권한 없음" -#: catalog/aclchk.c:2690 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for column %s" msgstr "%s 칼럼에 대한 접근 권한 없음" -#: catalog/aclchk.c:2693 +#: catalog/aclchk.c:2729 #, c-format msgid "permission denied for conversion %s" msgstr "%s 문자코드변환규칙(conversion) 접근 권한 없음" -#: catalog/aclchk.c:2696 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for database %s" msgstr "%s 데이터베이스 접근 권한 없음" -#: catalog/aclchk.c:2699 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for domain %s" msgstr "%s 도메인에 대한 접근 권한 없음" -#: catalog/aclchk.c:2702 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for event trigger %s" msgstr "%s 이벤트 트리거 접근 권한 없음" -#: catalog/aclchk.c:2705 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for extension %s" msgstr "%s 확장 모듈 접근 권한 없음" -#: catalog/aclchk.c:2708 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "%s 외부 데이터 래퍼 접근 권한 없음" -#: catalog/aclchk.c:2711 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for foreign server %s" msgstr "%s 외부 서버 접근 권한 없음" -#: catalog/aclchk.c:2714 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for foreign table %s" msgstr "%s 외부 테이블 접근 권한 없음" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for function %s" msgstr "%s 함수 접근 권한 없음" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2756 #, c-format msgid "permission denied for index %s" msgstr "%s 인덱스 접근 권한 없음" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2759 #, c-format msgid "permission denied for language %s" msgstr "%s 프로시주얼 언어 접근 권한 없음" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2762 #, c-format msgid "permission denied for large object %s" msgstr "%s 대형 개체 접근 권한 없음" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2765 #, c-format msgid "permission denied for materialized view %s" msgstr "%s 구체화된 뷰에 대한 접근 권한 없음" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2768 #, c-format msgid "permission denied for operator class %s" msgstr "%s 연산자 클래스 접근 권한 없음" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2771 #, c-format msgid "permission denied for operator %s" msgstr "%s 연산자 접근 권한 없음" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2774 #, c-format msgid "permission denied for operator family %s" msgstr "%s 연산자 패밀리 접근 권한 없음" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2777 #, c-format msgid "permission denied for parameter %s" msgstr "%s 환경 설정 매개 변수 접근 권한 없음" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2780 #, c-format msgid "permission denied for policy %s" msgstr "%s 정책에 대한 접근 권한 없음" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2783 #, c-format msgid "permission denied for procedure %s" msgstr "%s 프로시져에 대한 접근 권한 없음" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2786 #, c-format msgid "permission denied for publication %s" msgstr "%s 발행 접근 권한 없음" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2789 #, c-format msgid "permission denied for routine %s" msgstr "%s 루틴에 대한 접근 권한 없음" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2792 #, c-format msgid "permission denied for schema %s" msgstr "%s 스키마(schema) 접근 권한 없음" -#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2795 commands/sequence.c:654 commands/sequence.c:880 +#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 +#: commands/sequence.c:1799 #, c-format msgid "permission denied for sequence %s" msgstr "%s 시퀀스 접근 권한 없음" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2798 #, c-format msgid "permission denied for statistics object %s" msgstr "%s 개체 통계정보 접근 권한 없음" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2801 #, c-format msgid "permission denied for subscription %s" msgstr "%s 구독 접근 권한 없음" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2804 #, c-format msgid "permission denied for table %s" msgstr "%s 테이블에 대한 접근 권한 없음" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2807 #, c-format msgid "permission denied for tablespace %s" msgstr "%s 테이블스페이스 접근 권한 없음" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2810 #, c-format msgid "permission denied for text search configuration %s" msgstr "%s 전문 검색 구성 접근 권한 없음" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2813 #, c-format msgid "permission denied for text search dictionary %s" msgstr "%s 전문 검색 사전 접근 권한 없음" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2816 #, c-format msgid "permission denied for type %s" msgstr "%s 자료형 접근 권한 없음" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2819 #, c-format msgid "permission denied for view %s" msgstr "%s 뷰에 대한 접근 권한 없음" -#: catalog/aclchk.c:2819 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of aggregate %s" msgstr "%s 집계함수의 소유주여야만 합니다" -#: catalog/aclchk.c:2822 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of collation %s" msgstr "%s 정렬정의(collation)의 소유주여야만 합니다" -#: catalog/aclchk.c:2825 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of conversion %s" msgstr "%s 문자코드변환규칙(conversion)의 소유주여야만 합니다" -#: catalog/aclchk.c:2828 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of database %s" msgstr "%s 데이터베이스의 소유주여야만 합니다" -#: catalog/aclchk.c:2831 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of domain %s" msgstr "%s 도메인의 소유주여야만 합니다" -#: catalog/aclchk.c:2834 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of event trigger %s" msgstr "%s 이벤트 트리거의 소유주여야만 합니다" -#: catalog/aclchk.c:2837 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of extension %s" msgstr "%s 확장 모듈의 소유주여야만 합니다" -#: catalog/aclchk.c:2840 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "%s 외부 데이터 래퍼의 소유주여야 함" -#: catalog/aclchk.c:2843 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of foreign server %s" msgstr "%s 외부 서버의 소유주여야 함" -#: catalog/aclchk.c:2846 +#: catalog/aclchk.c:2882 #, c-format msgid "must be owner of foreign table %s" msgstr "%s 외부 테이블의 소유주여야 함" -#: catalog/aclchk.c:2849 +#: catalog/aclchk.c:2885 #, c-format msgid "must be owner of function %s" msgstr "%s 함수의 소유주여야만 합니다" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2888 #, c-format msgid "must be owner of index %s" msgstr "%s 인덱스의 소유주여야만 합니다" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2891 #, c-format msgid "must be owner of language %s" msgstr "%s 프로시주얼 언어의 소유주여야만 합니다" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2894 #, c-format msgid "must be owner of large object %s" msgstr "%s 대형 개체의 소유주여야만 합니다" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2897 #, c-format msgid "must be owner of materialized view %s" msgstr "%s 구체화된 뷰의 소유주여야만 합니다" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2900 #, c-format msgid "must be owner of operator class %s" msgstr "%s 연산자 클래스의 소유주여야만 합니다" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2903 #, c-format msgid "must be owner of operator %s" msgstr "%s 연산자의 소유주여야만 합니다" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2906 #, c-format msgid "must be owner of operator family %s" msgstr "%s 연산자 패밀리의 소유주여야 함" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2909 #, c-format msgid "must be owner of procedure %s" msgstr "%s 프로시져의 소유주여야만 합니다" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2912 #, c-format msgid "must be owner of publication %s" msgstr "%s 발행의 소유주여야만 합니다" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2915 #, c-format msgid "must be owner of routine %s" msgstr "%s 루틴의 소유주여야만 합니다" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2918 #, c-format msgid "must be owner of sequence %s" msgstr "%s 시퀀스의 소유주여야만 합니다" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2921 #, c-format msgid "must be owner of subscription %s" msgstr "%s 구독의 소유주여야만 합니다" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2924 #, c-format msgid "must be owner of table %s" msgstr "%s 테이블의 소유주여야만 합니다" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2927 #, c-format msgid "must be owner of type %s" msgstr "%s 자료형의 소유주여야만 합니다" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2930 #, c-format msgid "must be owner of view %s" msgstr "%s 뷰의 소유주여야만 합니다" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2933 #, c-format msgid "must be owner of schema %s" msgstr "%s 스키마(schema)의 소유주여야만 합니다" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2936 #, c-format msgid "must be owner of statistics object %s" msgstr "%s 통계정보 개체의 소유주여야만 합니다" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2939 #, c-format msgid "must be owner of tablespace %s" msgstr "%s 테이블스페이스의 소유주여야만 합니다" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2942 #, c-format msgid "must be owner of text search configuration %s" msgstr "%s 전문 검색 구성의 소유주여야 함" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2945 #, c-format msgid "must be owner of text search dictionary %s" msgstr "%s 전문 검색 사전의 소유주여야 함" -#: catalog/aclchk.c:2923 +#: catalog/aclchk.c:2959 #, c-format msgid "must be owner of relation %s" msgstr "%s 릴레이션(relation)의 소유주여야만 합니다" -#: catalog/aclchk.c:2969 +#: catalog/aclchk.c:3005 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\") 접근 권한 없음" -#: catalog/aclchk.c:3104 catalog/aclchk.c:3979 catalog/aclchk.c:4011 +#: catalog/aclchk.c:3162 catalog/aclchk.c:4170 catalog/aclchk.c:4201 #, c-format msgid "%s with OID %u does not exist" msgstr "%s (해당 OID %u) 없음" -#: catalog/aclchk.c:3188 catalog/aclchk.c:3207 +#: catalog/aclchk.c:3245 catalog/aclchk.c:3264 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "%d번째 속성(해당 릴레이션 OID: %u)이 없음" -#: catalog/aclchk.c:3302 +#: catalog/aclchk.c:3302 catalog/aclchk.c:3365 catalog/aclchk.c:4004 #, c-format msgid "relation with OID %u does not exist" msgstr "OID %u 릴레이션(relation) 없음" -#: catalog/aclchk.c:3476 +#: catalog/aclchk.c:3550 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "OID %u 환경 설정 매개 변수 ACL이 없음" -#: catalog/aclchk.c:3640 commands/collationcmds.c:808 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3723 commands/collationcmds.c:853 +#: commands/publicationcmds.c:1739 #, c-format msgid "schema with OID %u does not exist" msgstr "OID %u 스키마 없음" -#: catalog/aclchk.c:3705 utils/cache/typcache.c:385 utils/cache/typcache.c:440 +#: catalog/aclchk.c:3797 catalog/aclchk.c:3824 catalog/aclchk.c:3853 +#: utils/cache/typcache.c:392 utils/cache/typcache.c:447 #, c-format msgid "type with OID %u does not exist" msgstr "OID %u 자료형 없음" -#: catalog/catalog.c:449 +#: catalog/catalog.c:477 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "\"%s\" 릴레이션에서 사용되지 않는 OID를 여전히 찾는 중" -#: catalog/catalog.c:451 +#: catalog/catalog.c:479 #, c-format msgid "" "OID candidates have been checked %llu time, but no unused OID has been found " @@ -4804,63 +5197,63 @@ msgid_plural "" msgstr[0] "" "OID 후보를 뽑기 위해 %llu 번 시도했지만, 아직 사용되지 않는 OID를 찾지 못함" -#: catalog/catalog.c:476 +#: catalog/catalog.c:504 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" msgstr[0] "\"%s\" 릴레이션의 새 OID를 %llu 시도 끝에 배정함" -#: catalog/catalog.c:609 catalog/catalog.c:676 +#: catalog/catalog.c:637 catalog/catalog.c:704 #, c-format msgid "must be superuser to call %s()" msgstr "%s() 호출은 슈퍼유저만 할 수 있음" -#: catalog/catalog.c:618 +#: catalog/catalog.c:646 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() 함수는 시스템 카탈로그 대상 전용임" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:651 parser/parse_utilcmd.c:2270 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "\"%s\" 인덱스가 \"%s\" 테이블용이 아님" -#: catalog/catalog.c:640 +#: catalog/catalog.c:668 #, c-format msgid "column \"%s\" is not of type oid" msgstr "\"%s\" 칼럼은 oid 자료형이 아님" -#: catalog/catalog.c:647 +#: catalog/catalog.c:675 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "\"%s\" 인덱스는 \"%s\" 칼럼용 인덱스가 아님" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "%s 개체는 데이터베이스 시스템에서 필요하기 때문에 삭제 될 수 없음" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:789 catalog/dependency.c:1016 #, c-format msgid "cannot drop %s because %s requires it" msgstr "%s 삭제할 수 없음, %s에서 필요로함" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:791 catalog/dependency.c:1018 #, c-format msgid "You can drop %s instead." msgstr "대신에, drop %s 명령을 사용할 수 있음." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1097 catalog/dependency.c:1106 #, c-format msgid "%s depends on %s" msgstr "%s 의존대상: %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1121 catalog/dependency.c:1130 #, c-format msgid "drop cascades to %s" msgstr "%s 개체가 덩달아 삭제됨" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -4872,97 +5265,98 @@ msgstr[0] "" "\n" "%d 개의 기타 개체들도 함께 처리함 (목록은 서버 로그에 기록됨)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1150 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "기타 다른 개체들이 이 개체에 의존하고 있어, %s 삭제할 수 없음" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14386 commands/tablespace.c:466 commands/user.c:1309 -#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1358 utils/misc/guc.c:3120 -#: utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:6615 -#: utils/misc/guc.c:6649 utils/misc/guc.c:6683 utils/misc/guc.c:6726 -#: utils/misc/guc.c:6768 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 +#: catalog/dependency.c:1171 commands/tablecmds.c:1459 +#: commands/tablecmds.c:15088 commands/tablespace.c:460 commands/user.c:1302 +#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4655 +#: executor/execExprInterp.c:4663 libpq/auth.c:324 +#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1432 utils/misc/guc.c:3169 +#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6825 +#: utils/misc/guc.c:6859 utils/misc/guc.c:6893 utils/misc/guc.c:6936 +#: utils/misc/guc.c:6978 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1154 catalog/dependency.c:1161 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "" "이 개체와 관계된 모든 개체들을 함께 삭제하려면 DROP ... CASCADE 명령을 사용하" "십시오" -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1158 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "다른 개체가 원하는 개체를 사용하고 있으므로 해당 개체를 삭제할 수 없음" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1166 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" msgstr[0] "%d개의 다른 개체에 대한 관련 항목 삭제" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "%s 자료형은 여기서 사용할 수 없음" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2375 parser/parse_relation.c:3407 +#: parser/parse_relation.c:3417 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "%d번째 칼럼이 없습니다. 해당 릴레이션: \"%s\"" -#: catalog/heap.c:324 +#: catalog/heap.c:325 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "\"%s.%s\" 만들 권한이 없음" -#: catalog/heap.c:326 +#: catalog/heap.c:327 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "시스템 카탈로그 변경은 현재 허용하지 않습니다." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6922 +#: catalog/heap.c:467 commands/tablecmds.c:2495 commands/tablecmds.c:2917 +#: commands/tablecmds.c:7163 #, c-format msgid "tables can have at most %d columns" msgstr "한 테이블에 지정할 수 있는 최대 열 수는 %d입니다" -#: catalog/heap.c:484 commands/tablecmds.c:7229 +#: catalog/heap.c:485 commands/tablecmds.c:7432 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "\"%s\" 열 이름은 시스템 열 이름과 충돌합니다" -#: catalog/heap.c:500 +#: catalog/heap.c:501 #, c-format msgid "column name \"%s\" specified more than once" msgstr "\"%s\" 칼럼 이름이 여러 번 지정됨" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:579 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "\"%s\" 파티션 키 칼럼은 %s 의사 자료형(pseudo-type)을 사용합니다" -#: catalog/heap.c:580 +#: catalog/heap.c:584 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "\"%s\" 칼럼은 %s 의사 자료형(pseudo-type)을 사용합니다" -#: catalog/heap.c:611 +#: catalog/heap.c:615 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "%s 복합 자료형은 자기 자신의 구성원으로 만들 수 없음" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:670 #, c-format msgid "" "no collation was derived for partition key column %s with collatable type %s" @@ -4970,27 +5364,27 @@ msgstr "" "\"%s\" 파티션 키 칼럼에 사용하는 %s 자료형에서 사용할 정렬규칙을 결정할 수없" "습니다." -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "" "\"%s\" 칼럼에 사용하는 %s 자료형에서 사용할 정렬규칙을 결정할 수 없습니다." -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401 +#: commands/tablecmds.c:4171 #, c-format msgid "relation \"%s\" already exists" msgstr "\"%s\" 이름의 릴레이션(relation)이 이미 있습니다" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 +#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 +#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 +#: commands/typecmds.c:1585 commands/typecmds.c:2556 #, c-format msgid "type \"%s\" already exists" msgstr "\"%s\" 자료형이 이미 있습니다" -#: catalog/heap.c:1165 +#: catalog/heap.c:1178 #, c-format msgid "" "A relation has an associated type of the same name, so you must use a name " @@ -4999,119 +5393,119 @@ msgstr "" "하나의 릴레이션은 그 이름과 같은 자료형과 관계합니다. 그래서, 이미 같은 이름" "의 자료형이 있다면 해당 릴레이션을 만들 수 없습니다. 다른 이름을 사용하세요." -#: catalog/heap.c:1205 +#: catalog/heap.c:1218 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, toast relfilenumber 값이 지정되지 않았습니다" -#: catalog/heap.c:1216 +#: catalog/heap.c:1229 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, pg_class 자료 OID 값이 지정되지 않았습니다" -#: catalog/heap.c:1226 +#: catalog/heap.c:1239 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, relfilenumber 값이 지정되지 않았습니다" -#: catalog/heap.c:2119 +#: catalog/heap.c:2130 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "\"%s\" 파티션 테이블에는 NO INHERIT 조건을 사용할 수 없음" -#: catalog/heap.c:2393 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "\"%s\" 이름의 체크 제약 조건이 이미 있습니다" -#: catalog/heap.c:2563 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8900 +#: catalog/heap.c:2574 catalog/index.c:913 catalog/pg_constraint.c:724 +#: commands/tablecmds.c:9356 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "" "\"%s\" 제약 조건이 이미 \"%s\" 릴레이션(relation)에서 사용되고 있습니다" -#: catalog/heap.c:2570 +#: catalog/heap.c:2581 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "" "\"%s\" 제약 조건이 비상속 제약 조건과 충돌합니다, 해당 릴레이션: \"%s\"" -#: catalog/heap.c:2581 +#: catalog/heap.c:2592 #, c-format msgid "" "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "\"%s\" 제약 조건이 상속 제약 조건과 충돌합니다, 해당 릴레이션: \"%s\"" -#: catalog/heap.c:2591 +#: catalog/heap.c:2602 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "" "\"%s\" 제약 조건이 NOT VALID 제약 조건과 충돌합니다, 해당 릴레이션: \"%s\"" -#: catalog/heap.c:2596 +#: catalog/heap.c:2607 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "\"%s\" 제약 조건을 상속된 정의와 병합하는 중" -#: catalog/heap.c:2622 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15208 commands/tablecmds.c:15349 +#: catalog/heap.c:2633 catalog/pg_constraint.c:853 commands/tablecmds.c:3074 +#: commands/tablecmds.c:3377 commands/tablecmds.c:7089 +#: commands/tablecmds.c:15907 commands/tablecmds.c:16038 #, c-format msgid "too many inheritance parents" msgstr "너무 많은 상속 부모" -#: catalog/heap.c:2706 +#: catalog/heap.c:2717 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "\"%s\" 계산된 칼럼은 칼럼 생성 표현식에서는 사용될 수 없음" -#: catalog/heap.c:2708 +#: catalog/heap.c:2719 #, c-format msgid "A generated column cannot reference another generated column." msgstr "계산된 칼럼은 다른 계산된 칼럼을 참조할 수 없음" -#: catalog/heap.c:2714 +#: catalog/heap.c:2725 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "미리 계산된 칼럼 생성 표현식에 row 전체 변수는 사용할 수 없음" -#: catalog/heap.c:2715 +#: catalog/heap.c:2726 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "이 오류는 미리 계산된 칼럼 자체를 그 칼럼 값으로 지정할 때 발생합니다." -#: catalog/heap.c:2768 +#: catalog/heap.c:2781 #, c-format msgid "generation expression is not immutable" msgstr "미리 계산되는 생성 표현식 결과가 immutable이 아님" -#: catalog/heap.c:2796 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2809 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "" "\"%s\" 칼럼의 자료형은 %s 인데, default 표현식에서는 %s 자료형을 사용했습니다" -#: catalog/heap.c:2801 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2814 commands/prepare.c:331 parser/analyze.c:2758 +#: parser/parse_target.c:592 parser/parse_target.c:882 +#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "다시 정의하거나 형변환자를 사용해보십시오" -#: catalog/heap.c:2848 +#: catalog/heap.c:2861 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "\"%s\" 테이블만이 체크 제약 조건에서 참조될 수 있습니다" -#: catalog/heap.c:3154 +#: catalog/heap.c:3167 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "ON COMMIT 및 외래 키 조합이 지원되지 않음" -#: catalog/heap.c:3155 +#: catalog/heap.c:3168 #, c-format msgid "" "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT " @@ -5119,493 +5513,493 @@ msgid "" msgstr "" "\"%s\" 테이블에서 \"%s\" 테이블을 참조하는데 ON COMMIT 설정이 같지 않습니다." -#: catalog/heap.c:3160 +#: catalog/heap.c:3173 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "" "_^_ 테이블 내용을 모두 삭제할 수 없음, 참조키(foreign key) 제약 조건 안에서" -#: catalog/heap.c:3161 +#: catalog/heap.c:3174 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "\"%s\" 테이블은 \"%s\" 개체를 참조합니다." -#: catalog/heap.c:3163 +#: catalog/heap.c:3176 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "" "\"%s\" 테이블도 함께 자료를 지우거나, TRUNCATE ... CASCADE 구문을 사용하세요." -#: catalog/index.c:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:219 parser/parse_utilcmd.c:2176 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "\"%s\" 테이블에는 이미 기본키가 있습니다" -#: catalog/index.c:239 +#: catalog/index.c:233 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "기본키(primary key)는 NULLS NOT DISTINCT 인덱스를 사용할 수 없음" -#: catalog/index.c:256 +#: catalog/index.c:250 #, c-format msgid "primary keys cannot be expressions" msgstr "기본키(primary key)를 표현할 수 없음" -#: catalog/index.c:273 +#: catalog/index.c:267 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "\"%s\" 파티션 키 칼럼에 NOT NULL 속성을 지정해야 함" -#: catalog/index.c:786 catalog/index.c:1942 +#: catalog/index.c:798 catalog/index.c:1915 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "시스템 카탈로그 테이블에는 사용자 정의 인덱스를 지정할 수 없습니다" -#: catalog/index.c:826 +#: catalog/index.c:838 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "\"%s\" 연산자 클래스용으로 자동 결정 가능한 정렬 규칙은 지원하지 않음" -#: catalog/index.c:841 +#: catalog/index.c:853 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "시스템 카탈로그 테이블은 잠금 없는 인덱스 만들기는 지원하지 않습니다" -#: catalog/index.c:850 catalog/index.c:1318 +#: catalog/index.c:862 catalog/index.c:1331 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "exclusion 제약 조건용 잠금 없는 인덱스 만들기는 지원하지 않습니다" -#: catalog/index.c:859 +#: catalog/index.c:871 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "" "공유되는 인덱스들은 initdb 명령으로 데이터베이스 클러스터를 만든 다음에는 만" "들 수 없습니다" -#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 +#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159 #: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "\"%s\" 이름의 릴레이션(relation)이 이미 있습니다, 건너뜀" -#: catalog/index.c:929 +#: catalog/index.c:941 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, pg_class 인덱스 OID 값이 지정되지 않았습니다" -#: catalog/index.c:939 utils/cache/relcache.c:3731 +#: catalog/index.c:951 utils/cache/relcache.c:3791 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, 인덱스 relfilenumber 값이 지정되지 않았습니다" -#: catalog/index.c:2241 +#: catalog/index.c:2214 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY 명령은 트랜잭션 내 가장 처음에 있어야 합니다" -#: catalog/index.c:3649 +#: catalog/index.c:3668 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "임시 테이블의 인덱스 재생성 작업은 다른 세션에서 할 수 없음" -#: catalog/index.c:3660 commands/indexcmds.c:3631 +#: catalog/index.c:3679 commands/indexcmds.c:3626 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "TOAST 테이블에 딸린 잘못된 인덱스에 대해 재색인 작업을 할 수 없음" -#: catalog/index.c:3676 commands/indexcmds.c:3511 commands/indexcmds.c:3655 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3695 commands/indexcmds.c:3504 commands/indexcmds.c:3650 +#: commands/tablecmds.c:3581 #, c-format msgid "cannot move system relation \"%s\"" msgstr "\"%s\" 시스템 릴레이션입니다. 이동할 수 없습니다" -#: catalog/index.c:3820 +#: catalog/index.c:3832 #, c-format msgid "index \"%s\" was reindexed" msgstr "\"%s\" 인덱스가 다시 만들어졌음" -#: catalog/index.c:3957 +#: catalog/index.c:3998 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "" "TOAST 테이블에 지정된 유효하지 않은 \"%s.%s\" 인덱스는 재색인 작업을 할 수 없" "음, 건너뜀" -#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5718 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 +#: commands/trigger.c:5731 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "서로 다른 데이터베이스간의 참조는 구현되어있지 않습니다: \"%s.%s.%s\"" -#: catalog/namespace.c:317 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "임시 테이블은 스키마 이름을 지정할 수 없음" -#: catalog/namespace.c:398 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "\"%s.%s\" 릴레이션의 잠금 정보를 구할 수 없음" -#: catalog/namespace.c:403 commands/lockcmds.c:144 commands/lockcmds.c:224 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "\"%s\" 릴레이션의 잠금 정보를 구할 수 없음" -#: catalog/namespace.c:431 parser/parse_relation.c:1430 +#: catalog/namespace.c:633 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "\"%s.%s\" 이름의 릴레이션(relation)이 없습니다" -#: catalog/namespace.c:436 parser/parse_relation.c:1443 +#: catalog/namespace.c:638 parser/parse_relation.c:1443 #: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "\"%s\" 이름의 릴레이션(relation)이 없습니다" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 -#: commands/extension.c:1617 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1607 +#: commands/extension.c:1613 #, c-format msgid "no schema has been selected to create in" msgstr "선택된 스키마 없음, 대상:" -#: catalog/namespace.c:654 catalog/namespace.c:667 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "다른 세션의 임시 스키마 안에는 릴레이션을 만들 수 없음" -#: catalog/namespace.c:658 +#: catalog/namespace.c:860 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "임시 스키마가 아닌 스키마에 임시 릴레이션을 만들 수 없음" -#: catalog/namespace.c:673 +#: catalog/namespace.c:875 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "임시 스키마 안에는 임시 릴레이션만 만들 수 있음" -#: catalog/namespace.c:2265 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "\"%s\" 통계정보 개체가 없음" -#: catalog/namespace.c:2388 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "\"%s\" 전문 검색 파서가 없음" -#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "\"%s\" 전문 검색 사전이 없음" -#: catalog/namespace.c:2641 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "\"%s\" 전문 검색 템플릿이 없음" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "\"%s\" 전문 검색 구성이 없음" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:3329 parser/parse_expr.c:868 parser/parse_target.c:1259 #, c-format msgid "cross-database references are not implemented: %s" msgstr "서로 다른 데이터베이스간의 참조는 구현되어있지 않습니다: %s" -#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253 -#: gram.y:18569 gram.y:18609 +#: catalog/namespace.c:3335 parser/parse_expr.c:875 parser/parse_target.c:1266 +#: gram.y:19181 gram.y:19221 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "적당하지 않은 qualified 이름 입니다 (너무 많은 점이 있네요): %s" -#: catalog/namespace.c:3016 +#: catalog/namespace.c:3465 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "임시 스키마로(에서) 개체를 이동할 수 없습니다" -#: catalog/namespace.c:3022 +#: catalog/namespace.c:3471 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "TOAST 스키마로(에서) 개체를 이동할 수 없습니다" -#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1404 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "\"%s\" 스키마(schema) 없음" -#: catalog/namespace.c:3126 +#: catalog/namespace.c:3575 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "" "적당하지 않은 릴레이션(relation) 이름 입니다 (너무 많은 점이 있네요): %s" -#: catalog/namespace.c:3693 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "\"%s\" 정렬정의(collation)가 \"%s\" 인코딩에서는 쓸 수 없음" -#: catalog/namespace.c:3748 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "\"%s\" 문자코드변환규칙(conversion) 없음" -#: catalog/namespace.c:4012 +#: catalog/namespace.c:4412 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "\"%s\" 데이터베이스에서 임시 파일을 만들 권한이 없음" -#: catalog/namespace.c:4028 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "복구 작업 중에는 임시 테이블을 만들 수 없음" -#: catalog/namespace.c:4034 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "병렬 작업 중에 임시 테이블을 만들 수 없음" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12357 +#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 +#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2327 +#: commands/tablecmds.c:12925 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" 개체는 테이블이 아님" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17141 commands/view.c:119 +#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 +#: commands/tablecmds.c:17851 commands/view.c:114 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" 개체는 뷰가 아님" -#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17146 +#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275 +#: commands/tablecmds.c:17856 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" 개체는 구체화된 뷰(materialized view)가 아닙니다" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17151 +#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 +#: commands/tablecmds.c:17861 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" 개체는 외부 테이블이 아님" -#: catalog/objectaddress.c:1471 +#: catalog/objectaddress.c:1433 #, c-format msgid "must specify relation and object name" msgstr "릴레이션과 개체 이름을 지정해야 합니다" -#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 +#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 #, c-format msgid "column name must be qualified" msgstr "칼럼 이름으로 적당하지 않습니다" -#: catalog/objectaddress.c:1619 +#: catalog/objectaddress.c:1581 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")의 기본값을 지정하지 않았음" -#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3689 +#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 +#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4441 +#: utils/adt/acl.c:4560 #, c-format msgid "type \"%s\" does not exist" msgstr "\"%s\" 자료형 없음" -#: catalog/objectaddress.c:1775 +#: catalog/objectaddress.c:1737 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "%d (%s, %s) 연산자(대상 %s) 없음" -#: catalog/objectaddress.c:1806 +#: catalog/objectaddress.c:1768 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "%d (%s, %s) 함수(대상 %s) 없음" -#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 +#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "\"%s\" 사용자에 대한 사용자 맵핑 정보(대상 서버: \"%s\")가 없음" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "\"%s\" 이름의 서버가 없음" -#: catalog/objectaddress.c:1939 +#: catalog/objectaddress.c:1901 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "\"%s\" 발행 릴레이션은 \"%s\" 발행에 없습니다." -#: catalog/objectaddress.c:1986 +#: catalog/objectaddress.c:1948 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "\"%s\" 발행 스키마는 \"%s\" 발행에 없습니다." -#: catalog/objectaddress.c:2044 +#: catalog/objectaddress.c:2006 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "알 수 없는 기본 ACL 개체 타입 \"%c\"" -#: catalog/objectaddress.c:2045 +#: catalog/objectaddress.c:2007 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "유효한 개체 형태는 \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2096 +#: catalog/objectaddress.c:2058 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "\"%s\" 사용자용 기본 ACL 없음. (해당 스키마: \"%s\", 해당 개체: %s)" -#: catalog/objectaddress.c:2101 +#: catalog/objectaddress.c:2063 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "\"%s\" 사용자용 기본 ACL 없음. (해당 개체: %s)" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 +#: catalog/objectaddress.c:2201 #, c-format msgid "name or argument lists may not contain nulls" msgstr "이름이나 인자 목록에는 null이 포함되지 않아야 함" -#: catalog/objectaddress.c:2161 +#: catalog/objectaddress.c:2123 #, c-format msgid "unsupported object type \"%s\"" msgstr "\"%s\" 형 지원하지 않음" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 +#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 #, c-format msgid "name list length must be exactly %d" msgstr "이름 목록 길이는 %d 이어야 합니다." -#: catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2163 #, c-format msgid "large object OID may not be null" msgstr "대형 개체 OID는 null 값을 사용할 수 없음" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 +#: catalog/objectaddress.c:2249 #, c-format msgid "name list length must be at least %d" msgstr "이름 목록 길이는 적어도 %d 개 이상이어야 함" -#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 +#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 #, c-format msgid "argument list length must be exactly %d" msgstr "인자 목록은 %d 개여야 함" -#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "%u 대경 개체의 소유주여야만 합니다" -#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 +#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 #, c-format msgid "must be owner of type %s or type %s" msgstr "%s, %s 자료형의 소유주여야 합니다" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 +#: catalog/objectaddress.c:2527 #, c-format msgid "permission denied" msgstr "권한 없음" -#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 #, c-format msgid "The current user must have the %s attribute." msgstr "현재 사용자는 %s 속성이 있어야합니다." -#: catalog/objectaddress.c:2566 +#: catalog/objectaddress.c:2528 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "현재 사용자는 %s 옵션을 지정해야함, 해당 롤: \"%s\"" -#: catalog/objectaddress.c:2580 +#: catalog/objectaddress.c:2542 #, c-format msgid "must be superuser" msgstr "슈퍼유져여야함" -#: catalog/objectaddress.c:2649 +#: catalog/objectaddress.c:2611 #, c-format msgid "unrecognized object type \"%s\"" msgstr "알 수 없는 개체 형태 \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2941 +#: catalog/objectaddress.c:2928 #, c-format msgid "column %s of %s" msgstr " %s 칼럼(%s 의)" -#: catalog/objectaddress.c:2956 +#: catalog/objectaddress.c:2943 #, c-format msgid "function %s" msgstr "%s 함수" -#: catalog/objectaddress.c:2969 +#: catalog/objectaddress.c:2956 #, c-format msgid "type %s" msgstr "%s 자료형" -#: catalog/objectaddress.c:3006 +#: catalog/objectaddress.c:2993 #, c-format msgid "cast from %s to %s" msgstr "%s 자료형을 %s 자료형으로 바꾸는 작업" -#: catalog/objectaddress.c:3039 +#: catalog/objectaddress.c:3026 #, c-format msgid "collation %s" msgstr "collation %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3057 #, c-format msgid "constraint %s on %s" msgstr "%s 제약 조건(해당 개체: %s)" -#: catalog/objectaddress.c:3076 +#: catalog/objectaddress.c:3063 #, c-format msgid "constraint %s" msgstr "%s 제약 조건" -#: catalog/objectaddress.c:3108 +#: catalog/objectaddress.c:3095 #, c-format msgid "conversion %s" msgstr "%s 문자코드변환규칙" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3130 +#: catalog/objectaddress.c:3117 #, c-format msgid "default value for %s" msgstr "%s 용 기본값" -#: catalog/objectaddress.c:3141 +#: catalog/objectaddress.c:3128 #, c-format msgid "language %s" msgstr "프로시주얼 언어 %s" -#: catalog/objectaddress.c:3149 +#: catalog/objectaddress.c:3136 #, c-format msgid "large object %u" msgstr "%u 대형 개체" -#: catalog/objectaddress.c:3162 +#: catalog/objectaddress.c:3149 #, c-format msgid "operator %s" msgstr "%s 연산자" -#: catalog/objectaddress.c:3199 +#: catalog/objectaddress.c:3186 #, c-format msgid "operator class %s for access method %s" msgstr "%s 연산자 클래스, %s 인덱스 액세스 방법" -#: catalog/objectaddress.c:3227 +#: catalog/objectaddress.c:3214 #, c-format msgid "access method %s" msgstr "%s 접근 방법" @@ -5614,7 +6008,7 @@ msgstr "%s 접근 방법" #. 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:3276 +#: catalog/objectaddress.c:3269 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "%d (%s, %s) 연산자 (연산자 패밀리: %s): %s" @@ -5623,239 +6017,239 @@ msgstr "%d (%s, %s) 연산자 (연산자 패밀리: %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 #. function with arguments. -#: catalog/objectaddress.c:3333 +#: catalog/objectaddress.c:3334 #, 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:3385 +#: catalog/objectaddress.c:3388 #, c-format msgid "rule %s on %s" msgstr "%s 룰(rule), 해당 테이블: %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3431 +#: catalog/objectaddress.c:3434 #, c-format msgid "trigger %s on %s" msgstr "%s 트리거, 해당 테이블: %s" -#: catalog/objectaddress.c:3451 +#: catalog/objectaddress.c:3454 #, c-format msgid "schema %s" msgstr "%s 스키마" -#: catalog/objectaddress.c:3479 +#: catalog/objectaddress.c:3482 #, c-format msgid "statistics object %s" msgstr "%s 통계정보 개체" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3513 #, c-format msgid "text search parser %s" msgstr "%s 전문 검색 파서" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3544 #, c-format msgid "text search dictionary %s" msgstr "%s 전문 검색 사전" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3575 #, c-format msgid "text search template %s" msgstr "%s 전문 검색 템플릿" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3606 #, c-format msgid "text search configuration %s" msgstr "%s 전문 검색 구성" -#: catalog/objectaddress.c:3616 +#: catalog/objectaddress.c:3619 #, c-format msgid "role %s" msgstr "%s 롤" -#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 +#: catalog/objectaddress.c:3656 catalog/objectaddress.c:5505 #, c-format msgid "membership of role %s in role %s" msgstr "%s 롤 구성원(해당 롤: %s)" -#: catalog/objectaddress.c:3674 +#: catalog/objectaddress.c:3677 #, c-format msgid "database %s" msgstr "%s 데이터베이스" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3693 #, c-format msgid "tablespace %s" msgstr "%s 테이블스페이스" -#: catalog/objectaddress.c:3701 +#: catalog/objectaddress.c:3704 #, c-format msgid "foreign-data wrapper %s" msgstr "%s 외부 데이터 래퍼" -#: catalog/objectaddress.c:3711 +#: catalog/objectaddress.c:3714 #, c-format msgid "server %s" msgstr "%s 서버" -#: catalog/objectaddress.c:3744 +#: catalog/objectaddress.c:3747 #, c-format msgid "user mapping for %s on server %s" msgstr "%s에 대한 사용자 매핑, 해당 서버: %s" -#: catalog/objectaddress.c:3796 +#: catalog/objectaddress.c:3799 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "" "%s 롤(해당 스키마: %s)이 새 테이블을 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3800 +#: catalog/objectaddress.c:3803 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "%s 롤이 새 테이블을 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3806 +#: catalog/objectaddress.c:3809 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "" "%s 롤(해당 스키마: %s)이 새 시퀀스를 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3810 +#: catalog/objectaddress.c:3813 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "%s 롤이 새 시퀀스를 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3816 +#: catalog/objectaddress.c:3819 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "%s 롤(해당 스키마: %s)이 새 함수를 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3820 +#: catalog/objectaddress.c:3823 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "%s 롤이 새 함수를 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3826 +#: catalog/objectaddress.c:3829 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "" "%s 롤(해당 스키마: %s)이 새 자료형을 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3830 +#: catalog/objectaddress.c:3833 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "%s 롤이 새 자료형을 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3836 +#: catalog/objectaddress.c:3839 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "%s 롤이 새 시퀀스를 만들 때 기본적으로 지정할 접근 권한" -#: catalog/objectaddress.c:3843 +#: catalog/objectaddress.c:3846 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "%s 롤(해당 스키마: %s)의 기본 접근 권한" -#: catalog/objectaddress.c:3847 +#: catalog/objectaddress.c:3850 #, c-format msgid "default privileges belonging to role %s" msgstr "%s 롤의 기본 접근 권한" -#: catalog/objectaddress.c:3869 +#: catalog/objectaddress.c:3872 #, c-format msgid "extension %s" msgstr "%s 확장 모듈" -#: catalog/objectaddress.c:3886 +#: catalog/objectaddress.c:3889 #, c-format msgid "event trigger %s" msgstr "%s 이벤트 트리거" -#: catalog/objectaddress.c:3910 +#: catalog/objectaddress.c:3913 #, c-format msgid "parameter %s" msgstr "매개 변수 %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3953 +#: catalog/objectaddress.c:3956 #, c-format msgid "policy %s on %s" msgstr "%s 정책(%s 의)" -#: catalog/objectaddress.c:3967 +#: catalog/objectaddress.c:3970 #, c-format msgid "publication %s" msgstr "%s 발행" -#: catalog/objectaddress.c:3980 +#: catalog/objectaddress.c:3983 #, c-format msgid "publication of schema %s in publication %s" msgstr "%s 스키마 발행 (해당 발행이름: %s)" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:4011 +#: catalog/objectaddress.c:4014 #, c-format msgid "publication of %s in publication %s" msgstr "%s 발행 (해당 발행이름: %s)" -#: catalog/objectaddress.c:4024 +#: catalog/objectaddress.c:4027 #, c-format msgid "subscription %s" msgstr "%s 구독" -#: catalog/objectaddress.c:4045 +#: catalog/objectaddress.c:4048 #, c-format msgid "transform for %s language %s" msgstr "%s 형 변환자, 대상언어: %s" -#: catalog/objectaddress.c:4116 +#: catalog/objectaddress.c:4117 #, c-format msgid "table %s" msgstr "%s 테이블" -#: catalog/objectaddress.c:4121 +#: catalog/objectaddress.c:4122 #, c-format msgid "index %s" msgstr "%s 인덱스" -#: catalog/objectaddress.c:4125 +#: catalog/objectaddress.c:4126 #, c-format msgid "sequence %s" msgstr "%s 시퀀스" -#: catalog/objectaddress.c:4129 +#: catalog/objectaddress.c:4130 #, c-format msgid "toast table %s" msgstr "%s 토스트 테이블" -#: catalog/objectaddress.c:4133 +#: catalog/objectaddress.c:4134 #, c-format msgid "view %s" msgstr "%s 뷰" -#: catalog/objectaddress.c:4137 +#: catalog/objectaddress.c:4138 #, c-format msgid "materialized view %s" msgstr "%s 구체화된 뷰" -#: catalog/objectaddress.c:4141 +#: catalog/objectaddress.c:4142 #, c-format msgid "composite type %s" msgstr "%s 복합 자료형" -#: catalog/objectaddress.c:4145 +#: catalog/objectaddress.c:4146 #, c-format msgid "foreign table %s" msgstr "%s 외부 테이블" -#: catalog/objectaddress.c:4150 +#: catalog/objectaddress.c:4151 #, c-format msgid "relation %s" msgstr "%s 릴레이션" -#: catalog/objectaddress.c:4191 +#: catalog/objectaddress.c:4192 #, c-format msgid "operator family %s for access method %s" msgstr "%s 연산자 페밀리, 접근 방법: %s" @@ -5904,7 +6298,7 @@ msgstr "" msgid "return type of inverse transition function %s is not %s" msgstr "%s inverse transition 함수의 반환 자료형이 %s 형이 아닙니다." -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2991 #, c-format msgid "" "strictness of aggregate's forward and inverse transition functions must match" @@ -5920,7 +6314,7 @@ msgstr "부가 인자를 쓰는 마침 함수는 STRICT 옵션이 없어야 함" msgid "return type of combine function %s is not %s" msgstr "%s combine 함수의 반환 자료형이 %s 형이 아닙니다" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "" @@ -5936,12 +6330,12 @@ msgstr "%s serialization 함수의 반환 자료형이 %s 형이 아닙니다." msgid "return type of deserialization function %s is not %s" msgstr "%s deserialization 함수의 반환 자료형이 %s 형이 아닙니다" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 #, c-format msgid "cannot determine result data type" msgstr "결과 자료형을 결정할 수 없음" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:204 catalog/pg_proc.c:233 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "\"internal\" 의사-자료형의 사용이 안전하지 않습니다" @@ -5960,7 +6354,7 @@ msgstr "" msgid "sort operator can only be specified for single-argument aggregates" msgstr "정렬 연산자는 단일 인자 집계에만 지정할 수 있음" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:386 +#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 #, c-format msgid "cannot change routine kind" msgstr "루틴 종류를 바꿀 수 없음" @@ -5985,13 +6379,13 @@ msgstr "\"%s\" 함수는 가상 집합 집계 함수입니다." msgid "cannot change number of direct arguments of an aggregate function" msgstr "집계 함수의 direct 인자 번호는 바꿀 수 없음" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 -#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 -#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 -#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 -#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 +#: commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 +#: commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 +#: commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 +#: commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 +#: parser/parse_func.c:631 parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "%s 이름의 함수가 없음" @@ -6066,67 +6460,67 @@ msgstr "이 작업은 파티션 된 테이블 대상으로 지원하지 않습 msgid "This operation is not supported for partitioned indexes." msgstr "이 작업은 파티션 된 인덱스 대상으로 지원하지 않습니다." -#: catalog/pg_collation.c:102 catalog/pg_collation.c:160 +#: catalog/pg_collation.c:101 catalog/pg_collation.c:159 #, c-format msgid "collation \"%s\" already exists, skipping" msgstr "\"%s\" 이름의 정렬규칙이 이미 있습니다, 건너뜀" -#: catalog/pg_collation.c:104 +#: catalog/pg_collation.c:103 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists, skipping" msgstr "\"%s\" 정렬규칙이 \"%s\" 인코딩에 이미 지정되어 있습니다, 건너뜀" -#: catalog/pg_collation.c:112 catalog/pg_collation.c:167 +#: catalog/pg_collation.c:111 catalog/pg_collation.c:166 #, c-format msgid "collation \"%s\" already exists" msgstr "\"%s\" 정렬규칙이 이미 있습니다" -#: catalog/pg_collation.c:114 +#: catalog/pg_collation.c:113 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "\"%s\" 정렬규칙이 \"%s\" 인코딩에 이미 지정되어 있습니다" -#: catalog/pg_constraint.c:690 +#: catalog/pg_constraint.c:732 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "\"%s\" 제약 조건이 %s 도메인에 이미 지정되어 있습니다" -#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 +#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "\"%s\" 제약 조건은 \"%s\" 테이블에 없음" -#: catalog/pg_constraint.c:1083 +#: catalog/pg_constraint.c:1125 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "\"%s\" 제약 조건은 %s 도메인에 없음" -#: catalog/pg_conversion.c:67 +#: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" msgstr "\"%s\" 이름의 변환규칙(conversion)이 이미 있음" -#: catalog/pg_conversion.c:80 +#: catalog/pg_conversion.c:77 #, c-format msgid "default conversion for %s to %s already exists" msgstr "%s 코드에서 %s 코드로 변환하는 기본 변환규칙(conversion)은 이미 있음" -#: catalog/pg_depend.c:222 commands/extension.c:3368 +#: catalog/pg_depend.c:224 commands/extension.c:3397 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s 개체는 \"%s\" 확장모듈에 이미 구성원입니다" -#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3408 +#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "\"%s\" 개체는 \"%s\" 확장 모듈의 구성 요소가 아닙니다" -#: catalog/pg_depend.c:232 +#: catalog/pg_depend.c:234 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "확장 모듈이 자기 소유 객체가 아닌 객체를 덮어 쓸 수는 없습니다." -#: catalog/pg_depend.c:283 +#: catalog/pg_depend.c:285 #, c-format msgid "" "An extension may only use CREATE ... IF NOT EXISTS to skip object creation " @@ -6135,53 +6529,53 @@ msgstr "" "이미 있는 객체와 충돌을 피하기 위해 이미 있는 객체 생성을 건너뛰려면, 확장 모" "듈에서 CREATE ... IF NOT EXISTS 구문을 사용해야합니다." -#: catalog/pg_depend.c:646 +#: catalog/pg_depend.c:648 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "%s 객체가 시스템 객체이기 때문에 의존성을 없앨 수 없습니다." -#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554 +#: catalog/pg_enum.c:175 catalog/pg_enum.c:314 catalog/pg_enum.c:624 #, c-format msgid "invalid enum label \"%s\"" msgstr "\"%s\" 열거형 라벨이 잘못됨" -#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555 +#: catalog/pg_enum.c:176 catalog/pg_enum.c:315 catalog/pg_enum.c:625 #, c-format msgid "Labels must be %d bytes or less." msgstr "라벨은 %d 바이트 이하여야 합니다." -#: catalog/pg_enum.c:288 +#: catalog/pg_enum.c:343 #, c-format msgid "enum label \"%s\" already exists, skipping" msgstr "\"%s\" 이름의 열거형 라벨이 이미 있음, 건너뜀" -#: catalog/pg_enum.c:295 catalog/pg_enum.c:598 +#: catalog/pg_enum.c:350 catalog/pg_enum.c:668 #, c-format msgid "enum label \"%s\" already exists" msgstr "\"%s\" 이름의 열거형 라벨이 이미 있음" -#: catalog/pg_enum.c:350 catalog/pg_enum.c:593 +#: catalog/pg_enum.c:405 catalog/pg_enum.c:663 #, c-format msgid "\"%s\" is not an existing enum label" msgstr "\"%s\" 열거형 라벨이 없음" -#: catalog/pg_enum.c:408 +#: catalog/pg_enum.c:463 #, c-format msgid "pg_enum OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때 pg_enum OID 값이 지정되지 않았습니다" -#: catalog/pg_enum.c:418 +#: catalog/pg_enum.c:473 #, c-format msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade" msgstr "" "ALTER TYPE ADD BEFORE/AFTER 구문은 이진 업그레이드 작업에서 호환하지 않습니다" -#: catalog/pg_inherits.c:593 +#: catalog/pg_inherits.c:592 #, c-format msgid "cannot detach partition \"%s\"" msgstr "\"%s\" 하위 파티션 테이블을 뗄 수 없음" -#: catalog/pg_inherits.c:595 +#: catalog/pg_inherits.c:594 #, c-format msgid "" "The partition is being detached concurrently or has an unfinished detach." @@ -6189,8 +6583,8 @@ msgstr "" "이 파티션은 이미 concurrently 옵션을 사용해서 떼기 작업을 했거나, 아직 떼기" "가 안 끝났습니다." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15464 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4800 +#: commands/tablecmds.c:16153 #, c-format msgid "" "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending " @@ -6199,12 +6593,12 @@ msgstr "" "보류 중인 떼기를 마치려면, ALTER TABLE ... DETACH PARTITION ... FINALIZE 명령" "을 사용하세요." -#: catalog/pg_inherits.c:600 +#: catalog/pg_inherits.c:599 #, c-format msgid "cannot complete detaching partition \"%s\"" msgstr "\"%s\" 파티션 떼기를 끝낼 수 없습니다" -#: catalog/pg_inherits.c:602 +#: catalog/pg_inherits.c:601 #, c-format msgid "There's no pending concurrent detach." msgstr "현재 보류 중인 떼기 작업이 없습니다." @@ -6214,113 +6608,128 @@ msgstr "현재 보류 중인 떼기 작업이 없습니다." msgid "schema \"%s\" already exists" msgstr "\"%s\" 이름의 스키마(schema)가 이미 있음" -#: catalog/pg_operator.c:219 catalog/pg_operator.c:361 +#: catalog/pg_operator.c:213 catalog/pg_operator.c:355 #, c-format msgid "\"%s\" is not a valid operator name" msgstr "\"%s\" 타당한 연산자 이름이 아님" -#: catalog/pg_operator.c:370 +#: catalog/pg_operator.c:379 +#, c-format +msgid "operator %s already exists" +msgstr "%s 연산자가 이미 있음" + +#: catalog/pg_operator.c:445 commands/operatorcmds.c:600 +#, c-format +msgid "operator cannot be its own negator" +msgstr "연산자는 자신의 negator 연산자가 될 수 없음" + +#: catalog/pg_operator.c:572 #, c-format msgid "only binary operators can have commutators" msgstr "바이너리 연산자만이 commutator를 가질 수 있음" -#: catalog/pg_operator.c:374 commands/operatorcmds.c:509 +#: catalog/pg_operator.c:576 #, c-format msgid "only binary operators can have join selectivity" msgstr "바이너리 연산자만이 join selectivity를 가질 수 있음" -#: catalog/pg_operator.c:378 +#: catalog/pg_operator.c:580 #, c-format msgid "only binary operators can merge join" msgstr "바이너리 연산자만이 merge join할 수 있음" -#: catalog/pg_operator.c:382 +#: catalog/pg_operator.c:584 #, c-format msgid "only binary operators can hash" msgstr "바이너리 연산자만이 해시할 수 있음" -#: catalog/pg_operator.c:393 +#: catalog/pg_operator.c:593 #, c-format msgid "only boolean operators can have negators" msgstr "불리언 연산자만 부정어를 포함할 수 있음" -#: catalog/pg_operator.c:397 commands/operatorcmds.c:517 +#: catalog/pg_operator.c:597 #, c-format msgid "only boolean operators can have restriction selectivity" msgstr "불리언 연산자만 제한 선택을 포함할 수 있음" -#: catalog/pg_operator.c:401 commands/operatorcmds.c:521 +#: catalog/pg_operator.c:601 #, c-format msgid "only boolean operators can have join selectivity" msgstr "불리언 연산자만 조인 선택을 포함할 수 있음" -#: catalog/pg_operator.c:405 +#: catalog/pg_operator.c:605 #, c-format msgid "only boolean operators can merge join" msgstr "불리언 연산자만 머지 조인을 지정할 수 있음" -#: catalog/pg_operator.c:409 +#: catalog/pg_operator.c:609 #, c-format msgid "only boolean operators can hash" msgstr "불리언 연산자만 해시를 지정할 수 있음" -#: catalog/pg_operator.c:421 +#: catalog/pg_operator.c:739 #, c-format -msgid "operator %s already exists" -msgstr "%s 연산자가 이미 있음" +msgid "commutator operator %s is already the commutator of operator %s" +msgstr "%s commutator 연산자는 이미 %s 연산자의 commutator임" -#: catalog/pg_operator.c:621 +#: catalog/pg_operator.c:744 #, c-format -msgid "operator cannot be its own negator or sort operator" -msgstr "연산자는 자신의 negator나 sort 연산자가 될 수 없습니다" +msgid "commutator operator %s is already the commutator of operator %u" +msgstr "%s commutator 연산자는 이미 %u 연산자의 commutator임" -#: catalog/pg_parameter_acl.c:53 +#: catalog/pg_operator.c:807 #, c-format -msgid "parameter ACL \"%s\" does not exist" -msgstr "\"%s\" 매개 변수 ACL이 없음" +msgid "negator operator %s is already the negator of operator %s" +msgstr "%s negator 연산자는 이미 %s 연산자의 negator임" + +#: catalog/pg_operator.c:812 +#, c-format +msgid "negator operator %s is already the negator of operator %u" +msgstr "%s negator 연산자는 이미 %u 연산자의 negator임" -#: catalog/pg_parameter_acl.c:88 +#: catalog/pg_parameter_acl.c:50 #, c-format -msgid "invalid parameter name \"%s\"" -msgstr "\"%s\" 이름은 잘못된 매개 변수 이름입니다." +msgid "parameter ACL \"%s\" does not exist" +msgstr "\"%s\" 매개 변수 ACL이 없음" -#: catalog/pg_proc.c:132 parser/parse_func.c:2233 +#: catalog/pg_proc.c:130 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" msgstr[0] "함수는 %d개 이상의 인자를 사용할 수 없음" -#: catalog/pg_proc.c:376 +#: catalog/pg_proc.c:374 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "이미 같은 인자 자료형을 사용하는 \"%s\" 함수가 있습니다" -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:386 #, c-format msgid "\"%s\" is an aggregate function." msgstr "\"%s\" 개체는 집계 함수입니다" -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:388 #, c-format msgid "\"%s\" is a function." msgstr "\"%s\" 개체는 함수입니다." -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:390 #, c-format msgid "\"%s\" is a procedure." msgstr "\"%s\" 개체는 프로시져입니다." -#: catalog/pg_proc.c:394 +#: catalog/pg_proc.c:392 #, c-format msgid "\"%s\" is a window function." msgstr "\"%s\" 개체는 윈도우 함수입니다." -#: catalog/pg_proc.c:414 +#: catalog/pg_proc.c:412 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "프로시져는 출력 매개 변수를 사용하도록 변경 할 수 없음" -#: catalog/pg_proc.c:415 catalog/pg_proc.c:445 +#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 #, c-format msgid "cannot change return type of existing function" msgstr "이미 있는 함수의 리턴 자료형은 바꿀 수 없습니다" @@ -6329,115 +6738,115 @@ msgstr "이미 있는 함수의 리턴 자료형은 바꿀 수 없습니다" #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 +#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 +#: catalog/pg_proc.c:517 catalog/pg_proc.c:541 #, c-format msgid "Use %s %s first." msgstr "먼저 %s %s 명령을 사용하세요." -#: catalog/pg_proc.c:446 +#: catalog/pg_proc.c:444 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "OUT 매개 변수에 정의된 행 형식이 다릅니다." -#: catalog/pg_proc.c:490 +#: catalog/pg_proc.c:488 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "\"%s\" 입력 매개 변수 이름을 바꿀 수 없음" -#: catalog/pg_proc.c:517 +#: catalog/pg_proc.c:515 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "기존 함수에서 매개 변수 기본 값을 제거할 수 없음" -#: catalog/pg_proc.c:541 +#: catalog/pg_proc.c:539 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "기존 매개 변수 기본 값의 데이터 형식을 바꿀 수 없음" -#: catalog/pg_proc.c:752 +#: catalog/pg_proc.c:750 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "\"%s\" 이름의 내장 함수가 없음" -#: catalog/pg_proc.c:845 +#: catalog/pg_proc.c:843 #, c-format msgid "SQL functions cannot return type %s" msgstr "SQL 함수는 %s 자료형을 리턴할 수 없음" -#: catalog/pg_proc.c:860 +#: catalog/pg_proc.c:858 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "SQL 함수의 인자로 %s 자료형은 사용될 수 없습니다" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:986 executor/functions.c:1468 #, c-format msgid "SQL function \"%s\"" msgstr "\"%s\" SQL 함수" -#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 -#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 +#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 +#: catalog/pg_publication.c:82 catalog/pg_publication.c:88 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "\"%s\" 릴레이션을 발행에 추가할 수 없음" -#: catalog/pg_publication.c:81 +#: catalog/pg_publication.c:76 #, c-format msgid "This operation is not supported for system tables." msgstr "이 작업은 시스템 테이블 대상으로 지원하지 않습니다." -#: catalog/pg_publication.c:89 +#: catalog/pg_publication.c:84 #, c-format msgid "This operation is not supported for temporary tables." msgstr "이 작업은 임시 테이블 대상으로 지원하지 않습니다." -#: catalog/pg_publication.c:95 +#: catalog/pg_publication.c:90 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "이 작업은 언로그드 테이블 대상으로 지원하지 않습니다." -#: catalog/pg_publication.c:109 catalog/pg_publication.c:117 +#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "\"%s\" 스키마를 발행에 추가할 수 없음" -#: catalog/pg_publication.c:111 +#: catalog/pg_publication.c:106 #, c-format msgid "This operation is not supported for system schemas." msgstr "이 작업은 시스템 스키마 대상으로 지원하지 않습니다." -#: catalog/pg_publication.c:119 +#: catalog/pg_publication.c:114 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "임시 스키마는 복제할 수 없습니다." -#: catalog/pg_publication.c:397 +#: catalog/pg_publication.c:392 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "\"%s\" 릴레이션은 이미 \"%s\" 발행에 포함되어 있습니다" -#: catalog/pg_publication.c:539 +#: catalog/pg_publication.c:534 #, c-format msgid "cannot use system column \"%s\" in publication column list" msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. 발행 칼럼 목록에 포함될 수 없습니다." -#: catalog/pg_publication.c:545 +#: catalog/pg_publication.c:540 #, c-format msgid "cannot use generated column \"%s\" in publication column list" msgstr "" "\"%s\" 칼럼은 미리 계산된 칼럼으로 발행 칼럼 목록에 포함될 수 없습니다." -#: catalog/pg_publication.c:551 +#: catalog/pg_publication.c:546 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "\"%s\" 칼럼이 발행 칼럼 목록에 중복 되었습니다." -#: catalog/pg_publication.c:641 +#: catalog/pg_publication.c:636 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "\"%s\" 스키마는 이미 \"%s\" 발행에 포함되어 있습니다" -#: catalog/pg_shdepend.c:830 +#: catalog/pg_shdepend.c:875 #, c-format msgid "" "\n" @@ -6446,50 +6855,57 @@ msgid_plural "" "\n" "and objects in %d other databases (see server log for list)" msgstr[0] "" +"\n" +", %d개의 다른 데이터테이스 소속 객체들 (목록은 서버 로그 참조)" -#: catalog/pg_shdepend.c:1177 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "%u 롤이 동시에 삭제되었음" -#: catalog/pg_shdepend.c:1189 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "%u 테이블스페이스는 현재 삭제되었습니다" -#: catalog/pg_shdepend.c:1203 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "%u 데이터베이스는 현재 삭제되었습니다" -#: catalog/pg_shdepend.c:1254 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "%s 개체의 소유주" -#: catalog/pg_shdepend.c:1256 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" -msgstr "\"%s\"에 대한 권한" +msgstr "%s에 대한 권한" + +#: catalog/pg_shdepend.c:1303 +#, c-format +msgid "initial privileges for %s" +msgstr "%s에 대한 초기 권한" -#: catalog/pg_shdepend.c:1258 +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "%s 개체 대상" -#: catalog/pg_shdepend.c:1260 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "%s 용 테이블스페이스" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1268 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" msgstr[0] "%d 개체(데이터베이스: %s)" -#: catalog/pg_shdepend.c:1332 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "" "cannot drop objects owned by %s because they are required by the database " @@ -6498,7 +6914,7 @@ msgstr "" "%s 소유주의 개체 삭제는 그 데이터베이스 시스템에서 필요하기 때문에 삭제 될 " "수 없음" -#: catalog/pg_shdepend.c:1498 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "" "cannot reassign ownership of objects owned by %s because they are required " @@ -6507,22 +6923,22 @@ msgstr "" "%s 소유주의 개체 삭제는 그 데이터베이스 시스템에서 필요하기 때문에 삭제 될 " "수 없음" -#: catalog/pg_subscription.c:424 +#: catalog/pg_subscription.c:438 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "\"%s\" 구독용 릴레이션 맵핑 삭제 실패" -#: catalog/pg_subscription.c:426 +#: catalog/pg_subscription.c:440 #, c-format msgid "" -"Table synchronization for relation \"%s\" is in progress and is in state \"%c" -"\"." +"Table synchronization for relation \"%s\" is in progress and is in state " +"\"%c\"." msgstr "\"%s\" 릴레이션의 동기화 작업은 현재 진행중이고, 상태가 \"%c\" 임." #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:433 +#: catalog/pg_subscription.c:447 #, c-format msgid "" "Use %s to enable subscription if not already enabled or use %s to drop the " @@ -6531,43 +6947,43 @@ msgstr "" "아직 활성화되지 않은 구독을 활성화 하기위해 %s 명령을 이용하거나, 해당 구독" "을 지우려면 %s 명령을 이용하세요." -#: catalog/pg_type.c:134 catalog/pg_type.c:474 +#: catalog/pg_type.c:133 catalog/pg_type.c:474 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때 pg_type OID 값이 지정되지 않았습니다" -#: catalog/pg_type.c:254 +#: catalog/pg_type.c:253 #, c-format msgid "invalid type internal size %d" msgstr "잘못된 자료형의 내부 크기 %d" -#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 -#: catalog/pg_type.c:295 +#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285 +#: catalog/pg_type.c:294 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "\"%c\" 정렬은 크기가 %d인 전달 값 형식에 유효하지 않음" -#: catalog/pg_type.c:302 +#: catalog/pg_type.c:301 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "내부 크기 %d은(는) 전달 값 형식에 유효하지 않음" -#: catalog/pg_type.c:312 catalog/pg_type.c:318 +#: catalog/pg_type.c:311 catalog/pg_type.c:317 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "\"%c\" 정렬은 가변 길이 형식에 유효하지 않음" -#: catalog/pg_type.c:326 commands/typecmds.c:4140 +#: catalog/pg_type.c:325 commands/typecmds.c:4363 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "_^_ 고정크기 자료형은 PLAIN 저장방법을 가져야만 합니다" -#: catalog/pg_type.c:955 +#: catalog/pg_type.c:978 #, c-format msgid "Failed while creating a multirange type for type \"%s\"." msgstr "\"%s\" 자료형용 다중 범위 자료형를 만들기 실패." -#: catalog/pg_type.c:956 +#: catalog/pg_type.c:979 #, c-format msgid "" "You can manually specify a multirange type name using the " @@ -6576,180 +6992,180 @@ msgstr "" "\"multirange_type_name\" 속성을 사용해서 이 다중 범위 자료형 이름을 직접 지정" "하세요." -#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145 +#: catalog/storage.c:533 storage/buffer/bufmgr.c:1540 #, c-format msgid "invalid page in block %u of relation %s" msgstr "%u 블록(해당 릴레이션: %s)에 잘못된 페이지가 있음" -#: commands/aggregatecmds.c:171 +#: commands/aggregatecmds.c:167 #, c-format msgid "only ordered-set aggregates can be hypothetical" msgstr "순서 있는 집합 집계함수만 가상 집합 집계 함수로 쓸 수 있습니다." -#: commands/aggregatecmds.c:196 +#: commands/aggregatecmds.c:192 #, c-format msgid "aggregate attribute \"%s\" not recognized" msgstr "\"%s\" 속성을 aggregate에서 알 수 없음" -#: commands/aggregatecmds.c:206 +#: commands/aggregatecmds.c:202 #, c-format msgid "aggregate stype must be specified" msgstr "aggregate stype 값을 지정하셔야 합니다" -#: commands/aggregatecmds.c:210 +#: commands/aggregatecmds.c:206 #, c-format msgid "aggregate sfunc must be specified" msgstr "aggregate sfunc 값을 지정하셔야 합니다" -#: commands/aggregatecmds.c:222 +#: commands/aggregatecmds.c:218 #, c-format msgid "aggregate msfunc must be specified when mstype is specified" msgstr "mstype 옵션을 사용하면 msfunc 옵션도 함께 지정 해야 함" -#: commands/aggregatecmds.c:226 +#: commands/aggregatecmds.c:222 #, c-format msgid "aggregate minvfunc must be specified when mstype is specified" msgstr "mstype 옵션을 사용하면 minvfunc 옵션도 함께 지정 해야 함" -#: commands/aggregatecmds.c:233 +#: commands/aggregatecmds.c:229 #, c-format msgid "aggregate msfunc must not be specified without mstype" msgstr "msfunc 옵션은 mstype 옵션과 함께 사용해야 함" -#: commands/aggregatecmds.c:237 +#: commands/aggregatecmds.c:233 #, c-format msgid "aggregate minvfunc must not be specified without mstype" msgstr "minvfunc 옵션은 mstype 옵션과 함께 사용해야 함" -#: commands/aggregatecmds.c:241 +#: commands/aggregatecmds.c:237 #, c-format msgid "aggregate mfinalfunc must not be specified without mstype" msgstr "mfinalfunc 옵션은 mstype 옵션과 함께 사용해야 함" -#: commands/aggregatecmds.c:245 +#: commands/aggregatecmds.c:241 #, c-format msgid "aggregate msspace must not be specified without mstype" msgstr "msspace 옵션은 mstype 옵션과 함께 사용해야 함" -#: commands/aggregatecmds.c:249 +#: commands/aggregatecmds.c:245 #, c-format msgid "aggregate minitcond must not be specified without mstype" msgstr "minitcond 옵션은 mstype 옵션과 함께 사용해야 함" -#: commands/aggregatecmds.c:278 +#: commands/aggregatecmds.c:274 #, c-format msgid "aggregate input type must be specified" msgstr "aggregate 입력 자료형을 지정해야 합니다" -#: commands/aggregatecmds.c:308 +#: commands/aggregatecmds.c:304 #, c-format msgid "basetype is redundant with aggregate input type specification" msgstr "집계 입력 형식 지정에서 basetype이 중복됨" -#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392 +#: commands/aggregatecmds.c:347 commands/aggregatecmds.c:388 #, c-format msgid "aggregate transition data type cannot be %s" msgstr "%s 자료형은 STYPE 자료형으로 사용할 수 없습니다" -#: commands/aggregatecmds.c:363 +#: commands/aggregatecmds.c:359 #, c-format msgid "" "serialization functions may be specified only when the aggregate transition " "data type is %s" msgstr "SERIALFUNC 함수는 STYPE 자료형이 %s 형일때만 지정할 수 있습니다." -#: commands/aggregatecmds.c:373 +#: commands/aggregatecmds.c:369 #, c-format msgid "" "must specify both or neither of serialization and deserialization functions" msgstr "" "SERIALFUNC, DESERIALFUNC 함수를 모두 지정하거나 모두 지정하지 않거나 하세요." -#: commands/aggregatecmds.c:438 commands/functioncmds.c:639 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "\"parallel\" 옵션 값은 SAFE, RESTRICTED, UNSAFE 만 지정할 수 있음" -#: commands/aggregatecmds.c:494 +#: commands/aggregatecmds.c:490 #, c-format msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "\"%s\" 인자값은 READ_ONLY, SHAREABLE, READ_WRITE 셋 중 하나여야 함" -#: commands/alter.c:86 commands/event_trigger.c:174 +#: commands/alter.c:83 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" msgstr "\"%s\" 이름의 이벤트 트리거가 이미 있음" -#: commands/alter.c:89 commands/foreigncmds.c:593 +#: commands/alter.c:86 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "\"%s\" 이름의 외부 자료 래퍼가 이미 있음" -#: commands/alter.c:92 commands/foreigncmds.c:884 +#: commands/alter.c:89 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "\"%s\" 이름의 서버가 이미 있음" -#: commands/alter.c:95 commands/proclang.c:133 +#: commands/alter.c:92 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "\"%s\" 이름의 프로시주얼 언어가 이미 있습니다" -#: commands/alter.c:98 commands/publicationcmds.c:771 +#: commands/alter.c:95 commands/publicationcmds.c:764 #, c-format msgid "publication \"%s\" already exists" msgstr "\"%s\" 이름의 발행이 이미 있습니다" -#: commands/alter.c:101 commands/subscriptioncmds.c:657 +#: commands/alter.c:98 commands/subscriptioncmds.c:669 #, c-format msgid "subscription \"%s\" already exists" msgstr "\"%s\" 이름의 구독이 이미 있습니다" -#: commands/alter.c:124 +#: commands/alter.c:121 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 이름의 변환규칙(conversin)이 \"%s\" 스키마에 이미 있습니다" -#: commands/alter.c:128 +#: commands/alter.c:125 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 이름의 통계정보 개체는 \"%s\" 스키마에 이미 있습니다" -#: commands/alter.c:132 +#: commands/alter.c:129 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 전문 검색 파서가 \"%s\" 스키마 안에 이미 있음" -#: commands/alter.c:136 +#: commands/alter.c:133 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 전문 검색 사전이 \"%s\" 스키마 안에 이미 있음" -#: commands/alter.c:140 +#: commands/alter.c:137 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 전문 검색 템플릿이 \"%s\" 스키마 안에 이미 있음" -#: commands/alter.c:144 +#: commands/alter.c:141 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 전문 검색 구성이 \"%s\" 스키마 안에 이미 있음" -#: commands/alter.c:217 +#: commands/alter.c:214 #, c-format msgid "must be superuser to rename %s" msgstr "%s 이름 변경 작업은 슈퍼유저만 할 수 있음" -#: commands/alter.c:259 commands/subscriptioncmds.c:636 -#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 -#: commands/subscriptioncmds.c:1830 +#: commands/alter.c:256 commands/subscriptioncmds.c:648 +#: commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 +#: commands/subscriptioncmds.c:1918 #, c-format msgid "password_required=false is superuser-only" msgstr "password_required=false 는 슈퍼유저 전용임" -#: commands/alter.c:260 commands/subscriptioncmds.c:637 -#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 -#: commands/subscriptioncmds.c:1831 +#: commands/alter.c:257 commands/subscriptioncmds.c:649 +#: commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 +#: commands/subscriptioncmds.c:1919 #, c-format msgid "" "Subscriptions with the password_required option set to false may only be " @@ -6758,7 +7174,7 @@ msgstr "" "구독 옵션으로 password_required 옵션값을 false 지정하거나 변경하는 것은 슈퍼" "유저만 할 수 있습니다." -#: commands/alter.c:775 +#: commands/alter.c:735 #, c-format msgid "must be superuser to set schema of %s" msgstr "%s의 스키마 지정은 슈퍼유져여야 합니다" @@ -6778,7 +7194,7 @@ msgstr "슈퍼유저만 접근 방법을 만들 수 있습니다." msgid "access method \"%s\" already exists" msgstr "\"%s\" 이름의 인덱스 접근 방법이 이미 있습니다." -#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 +#: commands/amcmds.c:154 commands/indexcmds.c:224 commands/indexcmds.c:850 #: commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" @@ -6789,45 +7205,45 @@ msgstr "\"%s\" 인덱스 접근 방법이 없습니다" msgid "handler function is not specified" msgstr "핸들러 함수 부분이 빠졌습니다" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 -#: parser/parse_clause.c:941 +#: commands/amcmds.c:264 commands/event_trigger.c:200 +#: commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 +#: parser/parse_clause.c:943 #, c-format msgid "function %s must return type %s" msgstr "%s 함수는 %s 자료형을 반환해야 함" -#: commands/analyze.c:228 +#: commands/analyze.c:217 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "\"%s\" 건너뜀 --- 외부 테이블은 분석할 수 없음" -#: commands/analyze.c:245 +#: commands/analyze.c:234 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "" "\"%s\" 건너뜀 --- 테이블이 아니거나, 특수 시스템 테이블들은 분석할 수 없음" -#: commands/analyze.c:325 +#: commands/analyze.c:314 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "\"%s.%s\" 상속 관계 분석중" -#: commands/analyze.c:330 +#: commands/analyze.c:319 #, c-format msgid "analyzing \"%s.%s\"" msgstr "\"%s.%s\" 자료 통계 수집 중" -#: commands/analyze.c:395 +#: commands/analyze.c:385 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "\"%s\" 칼럼이 \"%s\" 릴레이션에서 두 번 이상 사용되었음" -#: commands/analyze.c:787 +#: commands/analyze.c:785 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "\"%s.%s.%s\" 테이블 자동 분석\n" -#: commands/analyze.c:1334 +#: commands/analyze.c:1300 #, c-format msgid "" "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead " @@ -6836,7 +7252,7 @@ msgstr "" "\"%s\": 탐색한 페이지: %d, 전체페이지: %u, 실자료: %.0f개, 쓰레기자료: %.0f" "개; 표본 추출 자료: %d개, 예상한 총 자료: %.0f개" -#: commands/analyze.c:1418 +#: commands/analyze.c:1384 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -6845,7 +7261,7 @@ msgstr "" "\"%s.%s\" 상속 나무의 통계 수집 건너뜀 --- 이 상속 나무에는 하위 테이블이 없" "음" -#: commands/analyze.c:1516 +#: commands/analyze.c:1482 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -6854,46 +7270,46 @@ msgstr "" "\"%s.%s\" 상속 나무의 통계 수집 건너뜀 --- 이 상속 나무에는 통계 수집할 하위 " "테이블이 없음" -#: commands/async.c:646 +#: commands/async.c:612 #, c-format msgid "channel name cannot be empty" msgstr "채널 이름은 비워둘 수 없음" -#: commands/async.c:652 +#: commands/async.c:618 #, c-format msgid "channel name too long" msgstr "채널 이름이 너무 긺" # # nonun 부분 begin -#: commands/async.c:657 +#: commands/async.c:623 #, c-format msgid "payload string too long" msgstr "payload 문자열이 너무 긺" -#: commands/async.c:876 +#: commands/async.c:842 #, c-format msgid "" "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "" "LISTEN, UNLISTEN 또는 NOTIFY 옵션으로 실행된 트랜잭션을 PREPARE할 수 없음" -#: commands/async.c:980 +#: commands/async.c:946 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "NOTIFY 큐에 너무 많은 알림이 있습니다" -#: commands/async.c:1602 +#: commands/async.c:1553 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "NOTIFY 큐 사용률: %.0f%%" -#: commands/async.c:1604 +#: commands/async.c:1555 #, c-format msgid "" "The server process with PID %d is among those with the oldest transactions." msgstr "%d PID 서버 프로세스가 가장 오래된 트랜잭션을 사용하고 있습니다." -#: commands/async.c:1607 +#: commands/async.c:1558 #, c-format msgid "" "The NOTIFY queue cannot be emptied until that process ends its current " @@ -6901,22 +7317,22 @@ msgid "" msgstr "" "이 프로세스의 현재 트랜잭션을 종료하지 않으면, NOTIFY 큐를 비울 수 없습니다" -#: commands/cluster.c:130 +#: commands/cluster.c:128 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "알 수 없는 CLUSTER 옵션 \"%s\"" -#: commands/cluster.c:160 commands/cluster.c:433 +#: commands/cluster.c:159 commands/cluster.c:433 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "다른 세션의 임시 테이블은 cluster 작업을 할 수 없습니다" -#: commands/cluster.c:178 +#: commands/cluster.c:177 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "\"%s\" 테이블을 위한 previously clustered 인덱스가 없음" -#: commands/cluster.c:192 commands/tablecmds.c:14200 commands/tablecmds.c:16043 +#: commands/cluster.c:191 commands/tablecmds.c:14797 commands/tablecmds.c:16729 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "\"%s\" 인덱스는 \"%s\" 테이블에 없음" @@ -6931,7 +7347,7 @@ msgstr "공유된 카탈로그는 클러스터 작업을 할 수 없음" msgid "cannot vacuum temporary tables of other sessions" msgstr "다른 세션의 임시 테이블은 vacuum 작업을 할 수 없음" -#: commands/cluster.c:513 commands/tablecmds.c:16053 +#: commands/cluster.c:513 commands/tablecmds.c:16739 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" 개체는 \"%s\" 테이블을 위한 인덱스가 아님" @@ -6960,22 +7376,22 @@ msgstr "잘못된 \"%s\" 인덱스에 대해 클러스터링할 수 없음" msgid "cannot mark index clustered in partitioned table" msgstr "파티션된 테이블 대상으로 인덱스 클러스터 표시를 할 수 없음" -#: commands/cluster.c:950 +#: commands/cluster.c:956 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr " \"%s.%s\" 클러스터링 중 (사용 인덱스: \"%s\")" -#: commands/cluster.c:956 +#: commands/cluster.c:962 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "순차 탐색과 정렬을 이용해서 \"%s.%s\" 개체 클러스터링 중" -#: commands/cluster.c:961 +#: commands/cluster.c:967 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "\"%s.%s\" 청소 중" -#: commands/cluster.c:988 +#: commands/cluster.c:994 #, c-format msgid "" "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" @@ -6983,7 +7399,7 @@ msgstr "" "\"%s.%s\": 삭제가능한 %.0f개, 삭제불가능한 %.0f개의 행 버전을 %u 페이지에서 " "발견했음." -#: commands/cluster.c:993 +#: commands/cluster.c:999 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -6992,33 +7408,39 @@ msgstr "" "%.0f 개의 사용하지 않는 로우 버전을 아직 지우지 못했음.\n" "%s." -#: commands/collationcmds.c:112 +#: commands/cluster.c:1744 +#, c-format +msgid "permission denied to cluster \"%s\", skipping it" +msgstr "\"%s\" 클러스터 권한 없음, 건너뜀" + +#: commands/collationcmds.c:110 #, c-format msgid "collation attribute \"%s\" not recognized" msgstr "\"%s\" 연산자 속성을 처리할 수 없음" -#: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7876 -#: replication/pgoutput/pgoutput.c:310 replication/pgoutput/pgoutput.c:333 -#: replication/pgoutput/pgoutput.c:347 replication/pgoutput/pgoutput.c:357 -#: replication/pgoutput/pgoutput.c:367 replication/pgoutput/pgoutput.c:377 -#: replication/pgoutput/pgoutput.c:387 replication/walsender.c:996 -#: replication/walsender.c:1018 replication/walsender.c:1028 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 +#: commands/define.c:388 commands/tablecmds.c:8129 +#: replication/pgoutput/pgoutput.c:314 replication/pgoutput/pgoutput.c:337 +#: replication/pgoutput/pgoutput.c:351 replication/pgoutput/pgoutput.c:361 +#: replication/pgoutput/pgoutput.c:371 replication/pgoutput/pgoutput.c:381 +#: replication/pgoutput/pgoutput.c:393 replication/walsender.c:1146 +#: replication/walsender.c:1168 replication/walsender.c:1178 +#: replication/walsender.c:1187 replication/walsender.c:1426 #, c-format msgid "conflicting or redundant options" msgstr "상충하거나 중복된 옵션들" -#: commands/collationcmds.c:126 +#: commands/collationcmds.c:124 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." msgstr "LOCALE 값은 LC_COLLATE 또는 LC_CTYPE 값과 함께 지정할 수 없음" -#: commands/collationcmds.c:132 +#: commands/collationcmds.c:130 #, c-format msgid "FROM cannot be specified together with any other options." msgstr "FROM 구문은 다른 옵션들과 함께 사용될 수 없습니다." -#: commands/collationcmds.c:191 +#: commands/collationcmds.c:189 #, c-format msgid "collation \"default\" cannot be copied" msgstr "\"default\" 정렬규칙은 복사될 수 없음" @@ -7028,104 +7450,94 @@ msgstr "\"default\" 정렬규칙은 복사될 수 없음" msgid "unrecognized collation provider: %s" msgstr "알 수 없는 정렬규칙 제공자 이름: %s" -#: commands/collationcmds.c:253 -#, c-format -msgid "parameter \"lc_collate\" must be specified" -msgstr "\"lc_collate\" 옵션을 지정해야 함" - -#: commands/collationcmds.c:258 -#, c-format -msgid "parameter \"lc_ctype\" must be specified" -msgstr "\"lc_ctype\" 옵션을 지정해야 함" - -#: commands/collationcmds.c:265 +#: commands/collationcmds.c:253 commands/collationcmds.c:264 +#: commands/collationcmds.c:270 commands/collationcmds.c:278 #, c-format -msgid "parameter \"locale\" must be specified" -msgstr "\"locale\" 매개 변수를 지정해야 함" +msgid "parameter \"%s\" must be specified" +msgstr "\"%s\" 매개 변수를 지정해야 함" -#: commands/collationcmds.c:279 commands/dbcommands.c:1091 +#: commands/collationcmds.c:293 commands/dbcommands.c:1134 #, c-format msgid "using standard form \"%s\" for ICU locale \"%s\"" msgstr "\"%s\"에서 표준을 사용함(해당 ICU 로케일: \"%s\")" -#: commands/collationcmds.c:298 +#: commands/collationcmds.c:312 #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "이 제공자는 DETERMINISTIC = false 옵션을 지원하지 않음" -#: commands/collationcmds.c:303 commands/dbcommands.c:1110 +#: commands/collationcmds.c:317 commands/dbcommands.c:1087 #, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" msgstr "ICU 규칙은 로케일 제공자로 ICU로 지정했을 때만 사용할 수 있습니다." -#: commands/collationcmds.c:322 +#: commands/collationcmds.c:340 #, c-format msgid "current database's encoding is not supported with this provider" msgstr "이 제공자는 현재 데이터베이스 인코딩을 지원하지 않음" -#: commands/collationcmds.c:382 +#: commands/collationcmds.c:409 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 정렬규칙(대상 인코딩: \"%s\")이 \"%s\" 스키마 안에 이미 있음" -#: commands/collationcmds.c:393 +#: commands/collationcmds.c:420 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 정렬규칙이 \"%s\" 스키마에 이미 있습니다" -#: commands/collationcmds.c:418 +#: commands/collationcmds.c:445 #, c-format msgid "cannot refresh version of default collation" msgstr "기본 문자 정렬의 버전을 갱신할 수 없음" -#: commands/collationcmds.c:419 +#. translator: %s is an SQL command +#. translator: %s is an SQL ALTER command +#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 +#: commands/tablecmds.c:7905 commands/tablecmds.c:7915 +#: commands/tablecmds.c:7917 commands/tablecmds.c:14499 +#: commands/tablecmds.c:17884 commands/tablecmds.c:17905 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 #, c-format -msgid "Use ALTER DATABASE ... REFRESH COLLATION VERSION instead." -msgstr "" -"대신에, ALTER DATABASE ... REFRESH COLLATION VERSION 명령을 사용하세요." +msgid "Use %s instead." +msgstr "대신에 %s 명령을 사용하십시오." -#: commands/collationcmds.c:446 commands/dbcommands.c:2488 +#: commands/collationcmds.c:480 commands/dbcommands.c:2566 #, c-format msgid "changing version from %s to %s" msgstr "%s에서 %s 버전으로 바꿉니다" -#: commands/collationcmds.c:461 commands/dbcommands.c:2501 +#: commands/collationcmds.c:495 commands/dbcommands.c:2579 #, c-format msgid "version has not changed" msgstr "버전이 바뀌지 않았습니다" -#: commands/collationcmds.c:494 commands/dbcommands.c:2667 +#: commands/collationcmds.c:528 commands/dbcommands.c:2749 #, c-format msgid "database with OID %u does not exist" msgstr "OID %u 데이터베이스 없음" -#: commands/collationcmds.c:515 +#: commands/collationcmds.c:554 #, c-format msgid "collation with OID %u does not exist" msgstr "OID %u 정렬정의(collation) 없음" -#: commands/collationcmds.c:803 +#: commands/collationcmds.c:848 #, c-format msgid "must be superuser to import system collations" msgstr "시스템 정렬규칙을 가져오려면 슈퍼유저여야함" -#: commands/collationcmds.c:831 commands/copyfrom.c:1654 commands/copyto.c:656 -#: libpq/be-secure-common.c:59 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "\"%s\" 명령을 실행할 수 없음: %m" - -#: commands/collationcmds.c:923 commands/collationcmds.c:1008 +#: commands/collationcmds.c:968 commands/collationcmds.c:1053 #, c-format msgid "no usable system locales were found" msgstr "사용할 수 있는 시스템 로케일이 없음" -#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 -#: commands/dbcommands.c:1934 commands/dbcommands.c:2132 -#: commands/dbcommands.c:2370 commands/dbcommands.c:2461 -#: commands/dbcommands.c:2571 commands/dbcommands.c:3071 -#: utils/init/postinit.c:1021 utils/init/postinit.c:1085 -#: utils/init/postinit.c:1157 +#: commands/comment.c:61 commands/dbcommands.c:1665 commands/dbcommands.c:1883 +#: commands/dbcommands.c:1995 commands/dbcommands.c:2193 +#: commands/dbcommands.c:2433 commands/dbcommands.c:2526 +#: commands/dbcommands.c:2650 commands/dbcommands.c:3161 +#: utils/init/postinit.c:1034 utils/init/postinit.c:1098 +#: utils/init/postinit.c:1171 #, c-format msgid "database \"%s\" does not exist" msgstr "\"%s\" 데이터베이스 없음" @@ -7135,315 +7547,270 @@ msgstr "\"%s\" 데이터베이스 없음" msgid "cannot set comment on relation \"%s\"" msgstr "\"%s\" 릴레이션에 주석을 달 수 없음" -#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "\"%s\" 함수가 트리거 관리자에서 호출되지 않았음" -#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "AFTER ROW에서 \"%s\" 함수를 실행해야 함" -#: commands/constraint.c:84 +#: commands/constraint.c:82 #, c-format msgid "function \"%s\" must be fired for INSERT or UPDATE" msgstr "INSERT 또는 UPDATE에 대해 \"%s\" 함수를 실행해야 함" -#: commands/conversioncmds.c:69 +#: commands/conversioncmds.c:62 #, c-format msgid "source encoding \"%s\" does not exist" msgstr "\"%s\" 원본 인코딩 없음" -#: commands/conversioncmds.c:76 +#: commands/conversioncmds.c:69 #, c-format msgid "destination encoding \"%s\" does not exist" msgstr "\"%s\" 대상 인코딩 없음" -#: commands/conversioncmds.c:89 +#: commands/conversioncmds.c:82 #, c-format msgid "encoding conversion to or from \"SQL_ASCII\" is not supported" msgstr "\"SQL_ASCII\" 인코딩 변환은 지원하지 않습니다." -#: commands/conversioncmds.c:102 +#: commands/conversioncmds.c:95 #, c-format msgid "encoding conversion function %s must return type %s" msgstr "%s 인코딩 변환 함수는 %s 형을 반환해야 함" -#: commands/conversioncmds.c:132 +#: commands/conversioncmds.c:125 #, c-format msgid "" "encoding conversion function %s returned incorrect result for empty input" msgstr "빈 입력으로 %s 인코딩 변환 함수가 잘못된 결과를 반환했음" -#: commands/copy.c:86 +#: commands/copy.c:84 #, c-format msgid "permission denied to COPY to or from an external program" msgstr "외부 프로그램을 이용한 COPY to/from 작업 권한 없음" -#: commands/copy.c:87 +#: commands/copy.c:85 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may COPY to or from an " "external program." msgstr "외부 프로그램을 이용하는 COPY 작업은 \"%s\" 롤 소속원만 허용합니다." -#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109 +#: commands/copy.c:87 commands/copy.c:98 commands/copy.c:107 #, c-format msgid "" "Anyone can COPY to stdout or from stdin. psql's \\copy command also works " "for anyone." msgstr "일반 사용자인데, 이 작업이 필요하면, psql의 \\copy 명령을 이용하세요" -#: commands/copy.c:97 +#: commands/copy.c:95 #, c-format msgid "permission denied to COPY from a file" msgstr "파일 내용 가져오는 COPY 작업 권한 없음" -#: commands/copy.c:98 +#: commands/copy.c:96 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY from a file." msgstr "" "파일을 읽어 COPY 명령으로 자료를 저장하려면, \"%s\" 롤 소속원이어야 합니다." -#: commands/copy.c:106 +#: commands/copy.c:104 #, c-format msgid "permission denied to COPY to a file" msgstr "파일로 저장하는 COPY 작업 권한 없음" -#: commands/copy.c:107 +#: commands/copy.c:105 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to a file." msgstr "COPY 명령 결과를 파일로 저장하려면, \"%s\" 롤 소속원이어야 합니다." -#: commands/copy.c:195 +#: commands/copy.c:193 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "로우 단위 보안 기능으로 COPY FROM 명령을 사용할 수 없음" -#: commands/copy.c:196 +#: commands/copy.c:194 #, c-format msgid "Use INSERT statements instead." msgstr "대신에 INSERT 구문을 사용하십시오." -#: commands/copy.c:290 -#, c-format -msgid "MERGE not supported in COPY" -msgstr "COPY에서는 MERGE 구문을 지원하지 않습니다" - -#: commands/copy.c:383 +#: commands/copy.c:375 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "COPY TO 명령에서는 HEADER 값으로 \"%s\" 값을 사용할 수 없음" -#: commands/copy.c:392 +#: commands/copy.c:384 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s 값은 불리언 값 또는 \"match\" 이어야 합니다." -#: commands/copy.c:451 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:782 commands/copy.c:798 +#: commands/copy.c:815 commands/copy.c:841 commands/copy.c:851 +#, c-format +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s 옵션은 %s 옵션과 함께 쓸 수 없음" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:441 +#, c-format +msgid "COPY %s \"%s\" not recognized" +msgstr "COPY %s \"%s\" 구문은 지원하지 않음" + +#: commands/copy.c:502 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "\"%s\" COPY 양식은 지원하지 않음" -#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 -#: commands/copy.c:554 +#: commands/copy.c:560 commands/copy.c:575 commands/copy.c:590 +#: commands/copy.c:609 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "\"%s\" 옵션에 대한 인자는 칼럼 이름 목록이어야 합니다." -#: commands/copy.c:566 +#: commands/copy.c:621 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "\"%s\" 옵션에 대한 인자는 인코딩 이름이어야 합니다." -#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2318 +#: commands/copy.c:642 commands/dbcommands.c:866 commands/dbcommands.c:2381 #, c-format msgid "option \"%s\" not recognized" msgstr "\"%s\" 옵션은 타당하지 않습니다." -#: commands/copy.c:585 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:655 commands/copy.c:660 commands/copy.c:665 +#: commands/copy.c:740 #, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "BINARY 모드에서는 DELIMITER 값을 지정할 수 없음" +msgid "cannot specify %s in BINARY mode" +msgstr "BINARY 모드에서는 %s 값을 지정할 수 없음" -#: commands/copy.c:590 -#, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "BINARY 모드에서는 NULL 값을 지정할 수 없음" - -#: commands/copy.c:595 +#: commands/copy.c:670 #, c-format -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "BINARY 모드에서는 DEFAULT 지정할 수 없음" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "BINARY 모드에서는 ON_ERROR STOP만 허용함" -#: commands/copy.c:617 +#: commands/copy.c:692 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "COPY 구분자는 1바이트의 단일 문자여야 함" -#: commands/copy.c:624 +#: commands/copy.c:699 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "COPY 명령에서 사용할 칼럼 구분자로 줄바꿈 문자들을 사용할 수 없습니다" -#: commands/copy.c:630 +#: commands/copy.c:705 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "COPY null 표현에서 줄바꿈 또는 캐리지 리턴을 사용할 수 없음" -#: commands/copy.c:640 +#: commands/copy.c:715 #, c-format msgid "COPY default representation cannot use newline or carriage return" msgstr "COPY 기본 동작에서는 줄바꿈 또는 캐리지 리턴을 사용할 수 없음" -#: commands/copy.c:658 +#: commands/copy.c:733 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "COPY 구분자는 \"%s\"일 수 없음" -#: commands/copy.c:664 -#, c-format -msgid "cannot specify HEADER in BINARY mode" -msgstr "BINARY 모드에서는 HEADER 옵션을 지정할 수 없음" - -#: commands/copy.c:670 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:747 commands/copy.c:764 commands/copy.c:776 +#: commands/copy.c:791 commands/copy.c:807 #, c-format -msgid "COPY quote available only in CSV mode" -msgstr "COPY 따옴표는 CSV 모드에서만 사용할 수 있음" +msgid "COPY %s requires CSV mode" +msgstr "%s COPY 명령 옵션은 CSV 모드가 필요함" -#: commands/copy.c:675 +#: commands/copy.c:752 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "COPY 따옴표는 1바이트의 단일 문자여야 함" -#: commands/copy.c:680 +#: commands/copy.c:757 #, c-format msgid "COPY delimiter and quote must be different" msgstr "COPY 구분자 및 따옴표는 서로 달라야 함" -#: commands/copy.c:686 -#, c-format -msgid "COPY escape available only in CSV mode" -msgstr "COPY 이스케이프는 CSV 모드에서만 사용할 수 있음" - -#: commands/copy.c:691 +#: commands/copy.c:769 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "COPY 이스케이프는 1바이트의 단일 문자여야 함" -#: commands/copy.c:697 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:823 commands/copy.c:859 #, c-format -msgid "COPY force quote available only in CSV mode" -msgstr "COPY force quote는 CSV 모드에서만 사용할 수 있음" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "COPY 구분자는 %s 정의에 없어야 함" -#: commands/copy.c:701 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:832 commands/copy.c:868 #, c-format -msgid "COPY force quote only available using COPY TO" -msgstr "COPY force quote는 COPY TO에서만 사용할 수 있음" +msgid "CSV quote character must not appear in the %s specification" +msgstr "CSV 인용 문자는 %s 정의에 없어야 함" -#: commands/copy.c:707 +#: commands/copy.c:877 #, c-format -msgid "COPY force not null available only in CSV mode" -msgstr "COPY force not null은 CSV 모드에서만 사용할 수 있음" +msgid "NULL specification and DEFAULT specification cannot be the same" +msgstr "NULL 지정과 DEFAULT 지정이 같을 수는 없음" -#: commands/copy.c:711 +#: commands/copy.c:939 #, c-format -msgid "COPY force not null only available using COPY FROM" -msgstr "COPY force not null은 COPY FROM에서만 사용할 수 있음" +msgid "column \"%s\" is a generated column" +msgstr "\"%s\" 칼럼은 미리 계산된 칼럼임" -#: commands/copy.c:717 +#: commands/copy.c:941 #, c-format -msgid "COPY force null available only in CSV mode" -msgstr "COPY force null은 CSV 모드에서만 사용할 수 있음" +msgid "Generated columns cannot be used in COPY." +msgstr "미리 계산된 칼럼은 COPY 작업 대상이 아님" -#: commands/copy.c:722 +#: commands/copy.c:956 commands/indexcmds.c:1890 commands/statscmds.c:239 +#: commands/tablecmds.c:2526 commands/tablecmds.c:2997 +#: commands/tablecmds.c:3808 parser/parse_relation.c:3692 +#: parser/parse_relation.c:3702 parser/parse_relation.c:3720 +#: parser/parse_relation.c:3727 parser/parse_relation.c:3741 +#: utils/adt/tsvector_op.c:2853 #, c-format -msgid "COPY force null only available using COPY FROM" -msgstr "COPY force null은 COPY FROM에서만 사용할 수 있음" +msgid "column \"%s\" does not exist" +msgstr "\"%s\" 이름의 칼럼은 없습니다" -#: commands/copy.c:728 -#, c-format -msgid "COPY delimiter must not appear in the NULL specification" -msgstr "COPY 구분자는 NULL 지정에 표시되지 않아야 함" - -#: commands/copy.c:735 -#, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "CSV 따옴표는 NULL 지정에 표시되지 않아야 함" - -#: commands/copy.c:742 -#, c-format -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "COPY DEFAULT는 COPY FROM에서만 사용할 수 있음" - -#: commands/copy.c:748 -#, c-format -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "COPY 구분자는 DEFAULT 지정에 표시되지 않아야 함" - -#: commands/copy.c:755 -#, c-format -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "CSV 따옴표는 DEFAULT 지정에 표시되지 않아야 함" - -#: commands/copy.c:763 -#, c-format -msgid "NULL specification and DEFAULT specification cannot be the same" -msgstr "NULL 지정과 DEFAULT 지정이 같을 수는 없음" - -#: commands/copy.c:825 -#, c-format -msgid "column \"%s\" is a generated column" -msgstr "\"%s\" 칼럼은 미리 계산된 칼럼임" - -#: commands/copy.c:827 -#, c-format -msgid "Generated columns cannot be used in COPY." -msgstr "미리 계산된 칼럼은 COPY 작업 대상이 아님" - -#: commands/copy.c:842 commands/indexcmds.c:1910 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 -#: utils/adt/tsvector_op.c:2855 -#, c-format -msgid "column \"%s\" does not exist" -msgstr "\"%s\" 이름의 칼럼은 없습니다" - -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:963 commands/tablecmds.c:2552 commands/trigger.c:951 +#: parser/parse_target.c:1083 parser/parse_target.c:1094 #, c-format msgid "column \"%s\" specified more than once" msgstr "\"%s\" 칼럼을 하나 이상 지정했음" -#: commands/copyfrom.c:122 +#: commands/copyfrom.c:118 #, c-format msgid "COPY %s" msgstr "COPY %s" -#: commands/copyfrom.c:130 +#: commands/copyfrom.c:126 #, c-format msgid "COPY %s, line %llu, column %s" msgstr "COPY %s, %llu번째 줄, %s 열" -#: commands/copyfrom.c:135 commands/copyfrom.c:181 +#: commands/copyfrom.c:131 commands/copyfrom.c:177 #, c-format msgid "COPY %s, line %llu" msgstr "COPY %s, %llu번째 줄" -#: commands/copyfrom.c:147 +#: commands/copyfrom.c:143 #, c-format msgid "COPY %s, line %llu, column %s: \"%s\"" msgstr "COPY %s, %llu번째 줄, %s 열: \"%s\"" -#: commands/copyfrom.c:157 +#: commands/copyfrom.c:153 #, c-format msgid "COPY %s, line %llu, column %s: null input" msgstr "COPY %s, %llu행, %s 열: null 입력" -#: commands/copyfrom.c:174 +#: commands/copyfrom.c:170 #, c-format msgid "COPY %s, line %llu: \"%s\"" msgstr "COPY %s, %llu번째 줄: \"%s\"" @@ -7494,17 +7861,27 @@ msgstr "" "현재 하위 트랜잭션에서 만들어지거나 비워진 테이블이 아니기 때문에 COPY " "FREEZE 작업을 할 수 없음" -#: commands/copyfrom.c:1411 +#: commands/copyfrom.c:1313 +#, c-format +msgid "%llu row was skipped due to data type incompatibility" +msgid_plural "%llu rows were skipped due to data type incompatibility" +msgstr[0] "%llu개의 로우가 자료형이 호환되지 않아 건너뜀" + +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1448 commands/copyfrom.c:1491 commands/copyto.c:601 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "\"%s\" FORCE_NOT_NULL 칼럼은 COPY에서 참조되지 않음" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "%s 옵션(해당 칼럼: \"%s\")은 COPY에서 참조되지 않음" -#: commands/copyfrom.c:1434 +#: commands/copyfrom.c:1544 utils/mb/mbutils.c:385 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "\"%s\" FORCE_NULL 칼럼은 COPY에서 참조되지 않음" +msgid "" +"default conversion function for encoding \"%s\" to \"%s\" does not exist" +msgstr "" +"\"%s\" 인코딩을 \"%s\" 인코딩으로 변환할 기본 변환규칙(conversion)이 없음" -#: commands/copyfrom.c:1673 +#: commands/copyfrom.c:1742 #, c-format msgid "" "COPY FROM instructs the PostgreSQL server process to read a file. You may " @@ -7514,17 +7891,17 @@ msgstr "" "언트 쪽에 있는 파일을 읽어 처리 하려면, psql의 \\copy 내장 명령어를 사용하세" "요." -#: commands/copyfrom.c:1686 commands/copyto.c:708 +#: commands/copyfrom.c:1755 commands/copyto.c:706 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" 디렉터리임" -#: commands/copyfrom.c:1754 commands/copyto.c:306 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1823 commands/copyto.c:299 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "외부 명령으로 파이프를 닫을 수 없음: %m" -#: commands/copyfrom.c:1769 commands/copyto.c:311 +#: commands/copyfrom.c:1838 commands/copyto.c:304 #, c-format msgid "program \"%s\" failed" msgstr "\"%s\" 프로그램 실패" @@ -7565,19 +7942,19 @@ msgid "could not read from COPY file: %m" msgstr "COPY 명령에 사용할 파일을 읽을 수 없습니다: %m" #: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:377 +#: replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:381 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "열린 트랜잭션과 함께 클라이언트 연결에서 예상치 않은 EOF 발견됨" -#: commands/copyfromparse.c:294 +#: commands/copyfromparse.c:294 replication/walsender.c:772 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "" "COPY 명령으로 stdin으로 자료를 가져오는 동안 예상치 않은 메시지 타입 0x%02X " "발견됨" -#: commands/copyfromparse.c:317 +#: commands/copyfromparse.c:317 replication/walsender.c:803 #, c-format msgid "COPY from stdin failed: %s" msgstr "COPY 명령에서 stdin으로 자료 가져오기 실패: %s" @@ -7593,19 +7970,19 @@ msgid "" "column name mismatch in header line field %d: got null value (\"%s\"), " "expected \"%s\"" msgstr "" -"헤더 %d 번째 필드의 칼럼 이름이 일치하지 않음: null 값 발견(\"%s\"), 기대값=" -"\"%s\"" +"헤더 %d 번째 필드의 칼럼 이름이 일치하지 않음: null 값 발견(\"%s\"), 기대값" +"=\"%s\"" #: commands/copyfromparse.c:808 #, c-format msgid "" "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "" -"헤더 줄 %d 번째 필드의 칼럼 이름이 일치하지 않음: 해당이름=\"%s\", 기대값=" -"\"%s\"" +"헤더 줄 %d 번째 필드의 칼럼 이름이 일치하지 않음: 해당이름=\"%s\", 기대값" +"=\"%s\"" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 -#: commands/copyfromparse.c:1768 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 +#: commands/copyfromparse.c:1810 #, c-format msgid "extra data after last expected column" msgstr "마지막 칼럼을 초과해서 또 다른 데이터가 있음" @@ -7615,196 +7992,212 @@ msgstr "마지막 칼럼을 초과해서 또 다른 데이터가 있음" msgid "missing data for column \"%s\"" msgstr "\"%s\" 칼럼의 자료가 빠졌음" -#: commands/copyfromparse.c:999 +#: commands/copyfromparse.c:990 +#, c-format +msgid "" +"skipping row due to data type incompatibility at line %llu for column " +"\"%s\": \"%s\"" +msgstr "" +"%llu 줄에서 자료형이 호환되지 않아, 로우를 건너 뜀(해당 칼럼: \"%s\"): \"%s\"" + +#: commands/copyfromparse.c:998 +#, c-format +msgid "" +"skipping row due to data type incompatibility at line %llu for column " +"\"%s\": null input" +msgstr "" +"%llu 줄에서 자료형이 호환되지 않아, 로우를 건너 뜀(해당 칼럼: \"%s\"): null 입력" + +#: commands/copyfromparse.c:1044 #, c-format msgid "received copy data after EOF marker" msgstr "EOF 표시 뒤에도 복사 데이터를 받았음" -#: commands/copyfromparse.c:1006 +#: commands/copyfromparse.c:1051 #, c-format msgid "row field count is %d, expected %d" msgstr "행(row) 필드 갯수가 %d 임, 예상값은 %d" -#: commands/copyfromparse.c:1294 commands/copyfromparse.c:1311 +#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 #, c-format msgid "literal carriage return found in data" msgstr "데이터에 carriage return 값이 잘못되었음" -#: commands/copyfromparse.c:1295 commands/copyfromparse.c:1312 +#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 #, c-format msgid "unquoted carriage return found in data" msgstr "데이터에 carriage return 값 표기가 잘못 되었음" -#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314 +#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "carriage return값으로 \"\\r\" 문자를 사용하세요" -#: commands/copyfromparse.c:1298 commands/copyfromparse.c:1315 +#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "" "carriage return 문자를 그대로 적용하려면, quoted CSV 필드를 사용하세요." -#: commands/copyfromparse.c:1327 +#: commands/copyfromparse.c:1369 #, c-format msgid "literal newline found in data" msgstr "데이터에 newline 값이 잘못되었음" -#: commands/copyfromparse.c:1328 +#: commands/copyfromparse.c:1370 #, c-format msgid "unquoted newline found in data" msgstr "데이터에 newline 값이 잘못 되었음" -#: commands/copyfromparse.c:1330 +#: commands/copyfromparse.c:1372 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "newline 값으로 \"\\n\" 문자를 사용하세요" -#: commands/copyfromparse.c:1331 +#: commands/copyfromparse.c:1373 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "newline 문자를 그대로 적용하려면, quoted CSV 필드를 사용하세요." -#: commands/copyfromparse.c:1377 commands/copyfromparse.c:1413 +#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "end-of-copy 마크는 이전 newline 모양가 틀립니다" -#: commands/copyfromparse.c:1386 commands/copyfromparse.c:1402 +#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 #, c-format msgid "end-of-copy marker corrupt" msgstr "end-of-copy 마크가 잘못되었음" -#: commands/copyfromparse.c:1704 commands/copyfromparse.c:1919 +#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 #, c-format msgid "unexpected default marker in COPY data" msgstr "COPY 자료 안에 예상치 않은 기본 마커" -#: commands/copyfromparse.c:1705 commands/copyfromparse.c:1920 +#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 #, c-format msgid "Column \"%s\" has no default value." msgstr "\"%s\" 칼럼은 DEFAULT 값이 없음." -#: commands/copyfromparse.c:1852 +#: commands/copyfromparse.c:1894 #, c-format msgid "unterminated CSV quoted field" msgstr "종료되지 않은 CSV 따옴표 필드" -#: commands/copyfromparse.c:1954 commands/copyfromparse.c:1973 +#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 #, c-format msgid "unexpected EOF in COPY data" msgstr "복사 자료 안에 예상치 않은 EOF 발견" -#: commands/copyfromparse.c:1963 +#: commands/copyfromparse.c:2005 #, c-format msgid "invalid field size" msgstr "잘못된 필드 크기" -#: commands/copyfromparse.c:1986 +#: commands/copyfromparse.c:2028 #, c-format msgid "incorrect binary data format" msgstr "잘못된 바이너리 자료 포맷" -#: commands/copyto.c:236 +#: commands/copyto.c:229 #, c-format msgid "could not write to COPY program: %m" msgstr "COPY 프로그램으로 파일을 쓸 수 없습니다: %m" -#: commands/copyto.c:241 +#: commands/copyto.c:234 #, c-format msgid "could not write to COPY file: %m" msgstr "COPY 파일로로 파일을 쓸 수 없습니다: %m" -#: commands/copyto.c:386 +#: commands/copyto.c:379 #, c-format msgid "cannot copy from view \"%s\"" msgstr "\"%s\" 이름의 개체는 뷰(view)입니다. 자료를 내보낼 수 없습니다" -#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 -#: commands/copyto.c:411 +#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 +#: commands/copyto.c:404 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "COPY (SELECT ...) TO 변형을 시도하십시오." -#: commands/copyto.c:392 +#: commands/copyto.c:385 #, c-format msgid "cannot copy from materialized view \"%s\"" msgstr "\"%s\" 이름의 개체는 구체화된 뷰입니다. 자료를 내보낼 수 없습니다" -#: commands/copyto.c:398 +#: commands/copyto.c:391 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "\"%s\" 이름의 개체는 외부 테이블입니다. 자료를 내보낼 수 없습니다" -#: commands/copyto.c:404 +#: commands/copyto.c:397 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "\"%s\" 이름의 개체는 시퀀스입니다. 자료를 내보낼 수 없습니다" -#: commands/copyto.c:409 +#: commands/copyto.c:402 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "\"%s\" 파티션 된 테이블에서 복사할 수 없음" -#: commands/copyto.c:415 +#: commands/copyto.c:408 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "" "\"%s\" 개체는 테이블이 아닌 릴레이션(relation)이기에 자료를 내보낼 수 없습니" "다" -#: commands/copyto.c:467 +#: commands/copyto.c:460 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "DO INSTEAD NOTHING 룰(rule)은 COPY 구문에서 지원하지 않습니다." -#: commands/copyto.c:481 +#: commands/copyto.c:474 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "선택적 DO INSTEAD 룰은 COPY 구문에서 지원하지 않음" -#: commands/copyto.c:485 +#: commands/copyto.c:478 #, c-format -msgid "DO ALSO rules are not supported for the COPY" -msgstr "DO ALSO 룰(rule)은 COPY 구문에서 지원하지 않습니다." +msgid "DO ALSO rules are not supported for COPY" +msgstr "DO ALSO 룰은 COPY 구문에서 지원하지 않음" -#: commands/copyto.c:490 +#: commands/copyto.c:483 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "다중 구문 DO INSTEAD 룰은 COPY 구문에서 지원하지 않음" -#: commands/copyto.c:500 +#: commands/copyto.c:493 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) 지원하지 않음" -#: commands/copyto.c:517 +#: commands/copyto.c:499 +#, c-format +msgid "COPY query must not be a utility command" +msgstr "COPY 쿼리는 DDL, DCL 명령이 아니여야 함" + +#: commands/copyto.c:515 #, c-format msgid "COPY query must have a RETURNING clause" -msgstr "COPY 쿼리는 RETURNING 절이 있어야 합니다" +msgstr "COPY 쿼리는 RETURNING 절이 있어야 함" -#: commands/copyto.c:546 +#: commands/copyto.c:544 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "COPY 문에 의해 참조된 릴레이션이 변경 되었음" -#: commands/copyto.c:605 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "\"%s\" FORCE_QUOTE 칼럼은 COPY에서 참조되지 않음" - -#: commands/copyto.c:673 +#: commands/copyto.c:671 #, c-format msgid "relative path not allowed for COPY to file" -msgstr "COPY 명령에 사용할 파일 이름으로 상대경로는 사용할 수 없습니다" +msgstr "COPY 명령에 사용할 파일 이름으로 상대경로는 사용할 수 없음" -#: commands/copyto.c:692 +#: commands/copyto.c:690 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "\"%s\" 파일 열기 실패: %m" -#: commands/copyto.c:695 +#: commands/copyto.c:693 #, c-format msgid "" "COPY TO instructs the PostgreSQL server process to write a file. You may " @@ -7814,132 +8207,142 @@ msgstr "" "저장된다. 클라이언트 쪽에서 그 결과를 저장하려면, psql \\copy 명령으로 처리" "할 수 있다." -#: commands/createas.c:215 commands/createas.c:523 +#: commands/createas.c:210 commands/createas.c:516 #, c-format msgid "too many column names were specified" msgstr "너무 많은 칼럼 이름을 지정했습니다." -#: commands/createas.c:546 +#: commands/createas.c:539 #, c-format msgid "policies not yet implemented for this command" msgstr "이 명령을 위한 정책은 아직 구현되어 있지 않습니다" -#: commands/dbcommands.c:822 +#: commands/dbcommands.c:829 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION 예약어는 이제 더이상 지원하지 않습니다" -#: commands/dbcommands.c:823 +#: commands/dbcommands.c:830 #, c-format msgid "Consider using tablespaces instead." msgstr "대신에 테이블스페이스를 이용하세요." -#: commands/dbcommands.c:848 +#: commands/dbcommands.c:855 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "시스템 객체용으로 사용할 미리 예약된 최대 %u OID 보다 작을 수는 없음" -#: commands/dbcommands.c:879 utils/adt/ascii.c:146 +#: commands/dbcommands.c:886 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%d 값은 잘못된 인코딩 코드임" -#: commands/dbcommands.c:890 utils/adt/ascii.c:128 +#: commands/dbcommands.c:897 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%s 이름은 잘못된 인코딩 이름임" -#: commands/dbcommands.c:919 +#: commands/dbcommands.c:931 #, c-format msgid "unrecognized locale provider: %s" msgstr "알 수 없는 로케일 제공자 이름: %s" -#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 -#: commands/user.c:740 +#: commands/dbcommands.c:944 commands/dbcommands.c:2414 commands/user.c:299 +#: commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "잘못된 연결 제한: %d" -#: commands/dbcommands.c:953 +#: commands/dbcommands.c:965 #, c-format msgid "permission denied to create database" msgstr "데이터베이스를 만들 권한이 없음" -#: commands/dbcommands.c:977 +#: commands/dbcommands.c:989 #, c-format msgid "template database \"%s\" does not exist" msgstr "\"%s\" 템플릿 데이터베이스 없음" -#: commands/dbcommands.c:987 +#: commands/dbcommands.c:999 #, c-format msgid "cannot use invalid database \"%s\" as template" msgstr "\"%s\" 데이터베이스 잘못된 것으로 템플릿으로 사용할 수 없음" -#: commands/dbcommands.c:988 commands/dbcommands.c:2380 -#: utils/init/postinit.c:1100 +#: commands/dbcommands.c:1000 commands/dbcommands.c:2444 +#: utils/init/postinit.c:1113 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "" "바르지 않은 데이터베이스를 삭제하려면, DROP DATABASE 명령을 사용하세요." -#: commands/dbcommands.c:999 +#: commands/dbcommands.c:1011 #, c-format msgid "permission denied to copy database \"%s\"" msgstr "\"%s\" 데이터베이스를 복사할 권한이 없음" -#: commands/dbcommands.c:1016 +#: commands/dbcommands.c:1028 #, c-format msgid "invalid create database strategy \"%s\"" msgstr "잘못된 데이터베이스 만들기 전략: \"%s\"" -#: commands/dbcommands.c:1017 +#: commands/dbcommands.c:1029 #, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." -msgstr "사용할 수 있는 값은 \"wal_log\" 또는 \"file_copy\" 입니다." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." +msgstr "사용할 수 있는 전략값은 \"wal_log\" 또는 \"file_copy\"" -#: commands/dbcommands.c:1043 +#: commands/dbcommands.c:1050 #, c-format msgid "invalid server encoding %d" msgstr "잘못된 서버 인코딩 %d" -#: commands/dbcommands.c:1049 +#: commands/dbcommands.c:1056 #, c-format msgid "invalid LC_COLLATE locale name: \"%s\"" msgstr "LC_COLLATE 로케일 이름이 잘못됨: \"%s\"" -#: commands/dbcommands.c:1050 commands/dbcommands.c:1056 +#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." msgstr "ICU 로케일 이름을 사용하려면, ICU_LOCALE을 사용하세요." -#: commands/dbcommands.c:1055 +#: commands/dbcommands.c:1062 #, c-format msgid "invalid LC_CTYPE locale name: \"%s\"" msgstr "LC_CTYPE 로케일 이름이 잘못됨: \"%s\"" -#: commands/dbcommands.c:1066 +#: commands/dbcommands.c:1074 +#, c-format +msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" +msgstr "BUILTIN_LOCALE 옵션은 로케일 제공자 중에 빌트인이 있어야 쓸 수 있음" + +#: commands/dbcommands.c:1082 +#, c-format +msgid "ICU locale cannot be specified unless locale provider is ICU" +msgstr "ICU 로케일은 ICU 로케일 제공자를 지정해야만 쓸 수 있습니다." + +#: commands/dbcommands.c:1100 +#, c-format +msgid "LOCALE or BUILTIN_LOCALE must be specified" +msgstr "LOCALE 또는 BUILTIN_LOCALE을 지정해야 합니다." + +#: commands/dbcommands.c:1109 #, c-format msgid "encoding \"%s\" is not supported with ICU provider" msgstr "\"%s\" 인코딩은 ICU 제공자에서 지원하지 않음" -#: commands/dbcommands.c:1076 +#: commands/dbcommands.c:1119 #, c-format msgid "LOCALE or ICU_LOCALE must be specified" msgstr "LOCALE 또는 ICU_LOCALE을 지정해야 합니다." -#: commands/dbcommands.c:1105 -#, c-format -msgid "ICU locale cannot be specified unless locale provider is ICU" -msgstr "ICU 로케일은 ICU 로케일 제공자를 지정해야만 쓸 수 있습니다." - -#: commands/dbcommands.c:1128 +#: commands/dbcommands.c:1163 #, c-format msgid "" "new encoding (%s) is incompatible with the encoding of the template database " "(%s)" msgstr "새 인코딩(%s)이 템플릿 데이터베이스의 인코딩(%s)과 호환되지 않음" -#: commands/dbcommands.c:1131 +#: commands/dbcommands.c:1166 #, c-format msgid "" "Use the same encoding as in the template database, or use template0 as " @@ -7948,7 +8351,7 @@ msgstr "" "템플릿 데이터베이스와 동일한 인코딩을 사용하거나 template0을 템플릿으로 사용" "하십시오." -#: commands/dbcommands.c:1136 +#: commands/dbcommands.c:1171 #, c-format msgid "" "new collation (%s) is incompatible with the collation of the template " @@ -7957,7 +8360,7 @@ msgstr "" "새 데이터 정렬 규칙 (%s)이 템플릿 데이터베이스의 데이터 정렬 규칙(%s)과 호환" "되지 않음" -#: commands/dbcommands.c:1138 +#: commands/dbcommands.c:1173 #, c-format msgid "" "Use the same collation as in the template database, or use template0 as " @@ -7966,14 +8369,14 @@ msgstr "" "템플릿 데이터베이스와 동일한 데이터 정렬 규칙을 사용하거나 template0을 템플릿" "으로 사용하십시오." -#: commands/dbcommands.c:1143 +#: commands/dbcommands.c:1178 #, c-format msgid "" "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database " "(%s)" msgstr "새 LC_CTYPE (%s)이 템플릿 데이터베이스의 LC_CTYPE (%s)과 호환되지 않음" -#: commands/dbcommands.c:1145 +#: commands/dbcommands.c:1180 #, c-format msgid "" "Use the same LC_CTYPE as in the template database, or use template0 as " @@ -7982,7 +8385,7 @@ msgstr "" "템플릿 데이터베이스와 동일한 LC_CTYPE을 사용하거나 template0을 템플릿으로 사" "용하십시오." -#: commands/dbcommands.c:1150 +#: commands/dbcommands.c:1185 #, c-format msgid "" "new locale provider (%s) does not match locale provider of the template " @@ -7990,7 +8393,7 @@ msgid "" msgstr "" "새 로케일 제공자(%s)는 템플릿 데이터베이스의 로케일 제공자(%s)와 같지 않음" -#: commands/dbcommands.c:1152 +#: commands/dbcommands.c:1187 #, c-format msgid "" "Use the same locale provider as in the template database, or use template0 " @@ -7999,7 +8402,7 @@ msgstr "" "템플릿 데이터베이스와 동일한 로케일 제공자를 사용하거나 template0을 템플릿으" "로 사용하십시오." -#: commands/dbcommands.c:1164 +#: commands/dbcommands.c:1199 #, c-format msgid "" "new ICU locale (%s) is incompatible with the ICU locale of the template " @@ -8007,7 +8410,7 @@ msgid "" msgstr "" "새 ICU 로케일(%s)이 템플릿 데이터베이스의 ICU 로케일(%s)과 호환되지 않음" -#: commands/dbcommands.c:1166 +#: commands/dbcommands.c:1201 #, c-format msgid "" "Use the same ICU locale as in the template database, or use template0 as " @@ -8016,7 +8419,7 @@ msgstr "" "템플릿 데이터베이스와 동일한 ICU 로케일을 사용하거나 template0을 템플릿으로 " "사용하십시오." -#: commands/dbcommands.c:1177 +#: commands/dbcommands.c:1212 #, c-format msgid "" "new ICU collation rules (%s) are incompatible with the ICU collation rules " @@ -8025,7 +8428,7 @@ msgstr "" "새 ICU 문자열 정렬 규칙 (%s)이 템플릿 데이터베이스의 ICU 문자열 정렬 규칙(%s)" "과 호환되지 않음" -#: commands/dbcommands.c:1179 +#: commands/dbcommands.c:1214 #, c-format msgid "" "Use the same ICU collation rules as in the template database, or use " @@ -8034,7 +8437,7 @@ msgstr "" "템플릿 데이터베이스와 동일한 ICU 문자열 정렬 규칙을 사용하거나 template0을 템" "플릿으로 사용하십시오." -#: commands/dbcommands.c:1202 +#: commands/dbcommands.c:1243 #, c-format msgid "" "template database \"%s\" has a collation version, but no actual collation " @@ -8043,12 +8446,12 @@ msgstr "" "\"%s\" 템플릿 데이터베이스에는 문자 정렬 규칙 버전이 있는데, 그 실제 버전을 " "알 수 없음" -#: commands/dbcommands.c:1207 +#: commands/dbcommands.c:1248 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "\"%s\" 템플릿 데이터베이스의 문자 정렬 규칙 버전이 바르지 않음" -#: commands/dbcommands.c:1209 +#: commands/dbcommands.c:1250 #, c-format msgid "" "The template database was created using collation version %s, but the " @@ -8057,7 +8460,7 @@ msgstr "" "템플릿 데이터베이스는 문자 정렬 규칙 버전이 %s 이고, 운영체제는 %s 버전을 지" "원합니다." -#: commands/dbcommands.c:1212 +#: commands/dbcommands.c:1253 #, c-format msgid "" "Rebuild all objects in the template database that use the default collation " @@ -8068,17 +8471,17 @@ msgstr "" "고, ALTER DATABASE %s REFRESH COLLATION VERSION 명령을 실행하거나, 바른 버전" "의 라이브러리를 사용해서 PostgreSQL 엔진을 다시 만드십시오." -#: commands/dbcommands.c:1248 commands/dbcommands.c:1980 +#: commands/dbcommands.c:1298 commands/dbcommands.c:2041 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "pg_global을 기본 테이블스페이스로 사용할 수 없음" -#: commands/dbcommands.c:1274 +#: commands/dbcommands.c:1324 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "새 \"%s\" 테이블스페이스를 지정할 수 없습니다." -#: commands/dbcommands.c:1276 +#: commands/dbcommands.c:1326 #, c-format msgid "" "There is a conflict because database \"%s\" already has some tables in this " @@ -8087,106 +8490,107 @@ msgstr "" "\"%s\" 데이터베이스 소속 몇몇 테이블들이 이 테이블스페이스안에 있어서 충돌이 " "일어납니다." -#: commands/dbcommands.c:1306 commands/dbcommands.c:1853 +#: commands/dbcommands.c:1356 commands/dbcommands.c:1912 #, c-format msgid "database \"%s\" already exists" msgstr "\"%s\" 이름의 데이터베이스는 이미 있음" -#: commands/dbcommands.c:1320 +#: commands/dbcommands.c:1370 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "\"%s\" 원본 데이터베이스를 다른 사용자가 액세스하기 시작했습니다" -#: commands/dbcommands.c:1342 +#: commands/dbcommands.c:1392 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "%u OID 데이터베이스는 이미 \"%s\" 데이터베이스가 쓰고 있음" -#: commands/dbcommands.c:1348 +#: commands/dbcommands.c:1398 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "%u OID에 해당하는 데이터 디렉터리가 이미 있습니다." -#: commands/dbcommands.c:1520 commands/dbcommands.c:1535 +#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 +#: utils/adt/pg_locale.c:2588 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "\"%s\" 인코딩은 \"%s\" 로케일과 일치하지 않음" -#: commands/dbcommands.c:1523 +#: commands/dbcommands.c:1574 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "선택한 LC_CTYPE 설정에는 \"%s\" 인코딩이 필요합니다." -#: commands/dbcommands.c:1538 +#: commands/dbcommands.c:1589 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "선택한 LC_COLLATE 설정에는 \"%s\" 인코딩이 필요합니다." -#: commands/dbcommands.c:1619 +#: commands/dbcommands.c:1672 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "\"%s\" 데이터베이스 없음, 건너 뜀" -#: commands/dbcommands.c:1643 +#: commands/dbcommands.c:1696 #, c-format msgid "cannot drop a template database" msgstr "템플릿 데이터베이스는 삭제할 수 없습니다" -#: commands/dbcommands.c:1649 +#: commands/dbcommands.c:1702 #, c-format msgid "cannot drop the currently open database" msgstr "현재 열려 있는 데이터베이스는 삭제할 수 없습니다" -#: commands/dbcommands.c:1662 +#: commands/dbcommands.c:1715 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "\"%s\" 데이터베이스는 논리 복제 슬롯이 활성화 되어 있습니다" -#: commands/dbcommands.c:1664 +#: commands/dbcommands.c:1717 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." msgstr[0] "%d 개의 활성 슬롯이 있습니다." -#: commands/dbcommands.c:1678 +#: commands/dbcommands.c:1731 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "\"%s\" 데이터베이스가 논리 복제 구독으로 사용되었음" -#: commands/dbcommands.c:1680 +#: commands/dbcommands.c:1733 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." msgstr[0] "%d 개의 구독이 있습니다." -#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 -#: commands/dbcommands.c:2002 +#: commands/dbcommands.c:1754 commands/dbcommands.c:1934 +#: commands/dbcommands.c:2063 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "\"%s\" 데이터베이스를 다른 사용자가 액세스하기 시작했습니다" -#: commands/dbcommands.c:1835 +#: commands/dbcommands.c:1894 #, c-format msgid "permission denied to rename database" msgstr "데이터베이스 이름을 바꿀 권한이 없습니다" -#: commands/dbcommands.c:1864 +#: commands/dbcommands.c:1923 #, c-format msgid "current database cannot be renamed" msgstr "현재 데이터베이스의 이름을 바꿀 수 없음" -#: commands/dbcommands.c:1958 +#: commands/dbcommands.c:2019 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "현재 열려 있는 데이터베이스의 테이블스페이스를 바꿀 수 없음" -#: commands/dbcommands.c:2064 +#: commands/dbcommands.c:2125 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "" "\"%s\" 데이터베이스의 일부 릴레이션들이 \"%s\" 테이블스페이스에 이미 있음" -#: commands/dbcommands.c:2066 +#: commands/dbcommands.c:2127 #, c-format msgid "" "You must move them back to the database's default tablespace before using " @@ -8195,39 +8599,39 @@ msgstr "" "이 명령을 사용하기 전에 데이터베이스의 기본 테이블스페이스로 다시 이동해야 합" "니다." -#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 -#: commands/dbcommands.c:3209 commands/dbcommands.c:3322 +#: commands/dbcommands.c:2256 commands/dbcommands.c:2999 +#: commands/dbcommands.c:3299 commands/dbcommands.c:3412 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "" "불필요한 일부 파일이 이전 데이터베이스 디렉터리 \"%s\"에 남아 있을 수 있음" -#: commands/dbcommands.c:2254 +#: commands/dbcommands.c:2317 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "알 수 없는 DROP DATABASE 옵션: \"%s\"" -#: commands/dbcommands.c:2332 +#: commands/dbcommands.c:2395 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "\"%s\" 옵션은 다른 옵션들과 함께 사용할 수 없습니다." -#: commands/dbcommands.c:2379 +#: commands/dbcommands.c:2443 #, c-format msgid "cannot alter invalid database \"%s\"" msgstr "잘못된 \"%s\" 데이터베이스에 대해 변경 작업을 할 수 없음" -#: commands/dbcommands.c:2396 +#: commands/dbcommands.c:2460 #, c-format msgid "cannot disallow connections for current database" msgstr "현재 데이터베이스 연결을 허용하지 않습니다." -#: commands/dbcommands.c:2611 +#: commands/dbcommands.c:2690 #, c-format msgid "permission denied to change owner of database" msgstr "데이터베이스 소유주를 바꿀 권한이 없습니다" -#: commands/dbcommands.c:3015 +#: commands/dbcommands.c:3105 #, c-format msgid "" "There are %d other session(s) and %d prepared transaction(s) using the " @@ -8235,448 +8639,458 @@ msgid "" msgstr "" "데이터베이스를 사용하는 %d개의 다른 세션과 %d개의 준비된 트랜잭션이 있습니다." -#: commands/dbcommands.c:3018 +#: commands/dbcommands.c:3108 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." msgstr[0] "데이터베이스를 사용하는 %d개의 다른 세션이 있습니다." -#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3798 +#: commands/dbcommands.c:3113 storage/ipc/procarray.c:3859 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." msgstr[0] "데이터베이스를 사용하는 %d개의 준비된 트랜잭션이 있습니다." -#: commands/dbcommands.c:3165 +#: commands/dbcommands.c:3255 #, c-format msgid "missing directory \"%s\"" msgstr "\"%s\" 디렉터리가 빠졌음" -#: commands/dbcommands.c:3223 commands/tablespace.c:190 -#: commands/tablespace.c:639 +#: commands/dbcommands.c:3313 commands/tablespace.c:184 +#: commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "\"%s\" 디렉터리 상태를 파악할 수 없음: %m" -#: commands/define.c:54 commands/define.c:258 commands/define.c:290 -#: commands/define.c:318 commands/define.c:364 +#: commands/define.c:53 commands/define.c:257 commands/define.c:289 +#: commands/define.c:317 commands/define.c:363 #, c-format msgid "%s requires a parameter" msgstr "%s 매개 변수를 필요로 함" -#: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 commands/define.c:225 commands/define.c:243 +#: commands/define.c:86 commands/define.c:97 commands/define.c:191 +#: commands/define.c:209 commands/define.c:224 commands/define.c:242 #, c-format msgid "%s requires a numeric value" msgstr "%s 숫자값을 필요로 함" -#: commands/define.c:154 +#: commands/define.c:153 #, c-format msgid "%s requires a Boolean value" msgstr "%s 값은 불리언 값이어야 합니다." -#: commands/define.c:168 commands/define.c:177 commands/define.c:327 +#: commands/define.c:167 commands/define.c:176 commands/define.c:326 #, c-format msgid "%s requires an integer value" msgstr "%s 하나의 정수값이 필요함" -#: commands/define.c:272 +#: commands/define.c:271 #, c-format msgid "argument of %s must be a name" msgstr "%s의 인자는 이름이어야 합니다" -#: commands/define.c:302 +#: commands/define.c:301 #, c-format msgid "argument of %s must be a type name" msgstr "%s의 인자는 자료형 이름이어야 합니다" -#: commands/define.c:348 +#: commands/define.c:347 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "%s의 잘못된 인자: \"%s\"" -#: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2897 +#: commands/dropcmds.c:96 commands/functioncmds.c:1382 +#: utils/adt/ruleutils.c:2910 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\" 함수는 집계 함수입니다" -#: commands/dropcmds.c:103 +#: commands/dropcmds.c:98 #, c-format msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "집계 함수는 DROP AGGREGATE 명령으로 삭제할 수 있습니다" -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16468 tcop/utility.c:1336 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3892 +#: commands/tablecmds.c:4050 commands/tablecmds.c:4102 +#: commands/tablecmds.c:17161 tcop/utility.c:1325 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "\"%s\" 릴레이션 없음, 건너뜀" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1409 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "\"%s\" 스키마(schema) 없음, 건너뜀" -#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "\"%s\" 자료형 없음, 건너뜀" -#: commands/dropcmds.c:257 +#: commands/dropcmds.c:252 #, c-format msgid "access method \"%s\" does not exist, skipping" msgstr "\"%s\" 인덱스 접근 방법 없음, 건너뜀" -#: commands/dropcmds.c:275 +#: commands/dropcmds.c:270 #, c-format msgid "collation \"%s\" does not exist, skipping" msgstr "\"%s\" 정렬규칙 없음, 건너뜀" -#: commands/dropcmds.c:282 +#: commands/dropcmds.c:277 #, c-format msgid "conversion \"%s\" does not exist, skipping" msgstr "\"%s\" 문자코드변환규칙(conversion) 없음, 건너뜀" -#: commands/dropcmds.c:293 commands/statscmds.c:654 +#: commands/dropcmds.c:288 commands/statscmds.c:664 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "\"%s\" 통계정보 개체 없음, 무시함" -#: commands/dropcmds.c:300 +#: commands/dropcmds.c:295 #, c-format msgid "text search parser \"%s\" does not exist, skipping" msgstr "\"%s\" 전문 검색 파서가 없음, 건너뜀" -#: commands/dropcmds.c:307 +#: commands/dropcmds.c:302 #, c-format msgid "text search dictionary \"%s\" does not exist, skipping" msgstr "\"%s\" 전문 검색 사전이 없음, 건너뜀" -#: commands/dropcmds.c:314 +#: commands/dropcmds.c:309 #, c-format msgid "text search template \"%s\" does not exist, skipping" msgstr "\"%s\" 전문 검색 템플릿이 없음, 건너뜀" -#: commands/dropcmds.c:321 +#: commands/dropcmds.c:316 #, c-format msgid "text search configuration \"%s\" does not exist, skipping" msgstr "\"%s\" 전문 검색 구성이 없음, 건너뜀" -#: commands/dropcmds.c:326 +#: commands/dropcmds.c:321 #, c-format msgid "extension \"%s\" does not exist, skipping" msgstr "\"%s\" 확장 모듈 없음, 건너 뜀" -#: commands/dropcmds.c:336 +#: commands/dropcmds.c:331 #, c-format msgid "function %s(%s) does not exist, skipping" msgstr "%s(%s) 함수가 없음, 건너뜀" -#: commands/dropcmds.c:349 +#: commands/dropcmds.c:344 #, c-format msgid "procedure %s(%s) does not exist, skipping" msgstr "%s(%s) 프로시져 없음, 건너뜀" -#: commands/dropcmds.c:362 +#: commands/dropcmds.c:357 #, c-format msgid "routine %s(%s) does not exist, skipping" msgstr "%s(%s) 루틴 없음, 건너뜀" -#: commands/dropcmds.c:375 +#: commands/dropcmds.c:370 #, c-format msgid "aggregate %s(%s) does not exist, skipping" msgstr "%s(%s) 집계 함수 없음, 건너뜀" -#: commands/dropcmds.c:388 +#: commands/dropcmds.c:383 #, c-format msgid "operator %s does not exist, skipping" msgstr "%s 연산자가 없음, 건너뜀" -#: commands/dropcmds.c:394 +#: commands/dropcmds.c:389 #, c-format msgid "language \"%s\" does not exist, skipping" msgstr "\"%s\" 프로시주얼 언어 없음, 건너뜀" -#: commands/dropcmds.c:403 +#: commands/dropcmds.c:398 #, c-format msgid "cast from type %s to type %s does not exist, skipping" msgstr "%s 형에서 %s 형으로 바꾸는 형변환 규칙(cast)이 없음, 건너뜀" -#: commands/dropcmds.c:412 +#: commands/dropcmds.c:407 #, c-format msgid "transform for type %s language \"%s\" does not exist, skipping" msgstr "%s 형변환자 (사용언어 \"%s\") 없음, 건너뜀" -#: commands/dropcmds.c:420 +#: commands/dropcmds.c:415 #, c-format msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping" msgstr " \"%s\" 트리거가 \"%s\" 릴레이션에 지정된 것이 없음, 건너뜀" -#: commands/dropcmds.c:429 +#: commands/dropcmds.c:424 #, c-format msgid "policy \"%s\" for relation \"%s\" does not exist, skipping" msgstr " \"%s\" 정책이 \"%s\" 릴레이션에 지정된 것이 없음, 건너뜀" -#: commands/dropcmds.c:436 +#: commands/dropcmds.c:431 #, c-format msgid "event trigger \"%s\" does not exist, skipping" msgstr "\"%s\" 이벤트 트리거 없음, 건너뜀" -#: commands/dropcmds.c:442 +#: commands/dropcmds.c:437 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist, skipping" msgstr " \"%s\" 룰(rule)이 \"%s\" 릴레이션에 지정된 것이 없음, 건너뜀" -#: commands/dropcmds.c:449 +#: commands/dropcmds.c:444 #, c-format msgid "foreign-data wrapper \"%s\" does not exist, skipping" msgstr "\"%s\" 외부 자료 래퍼가 없음, 건너뜀" -#: commands/dropcmds.c:453 commands/foreigncmds.c:1360 +#: commands/dropcmds.c:448 commands/foreigncmds.c:1360 #, c-format msgid "server \"%s\" does not exist, skipping" msgstr "\"%s\" 서버가 없음, 건너뜀" -#: commands/dropcmds.c:462 +#: commands/dropcmds.c:457 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\", skipping" msgstr "" "\"%s\" 연산자 클래스는 \"%s\" 인덱스 접근 방법에서 사용할 수 없음, 건너뜀" -#: commands/dropcmds.c:474 +#: commands/dropcmds.c:469 #, c-format msgid "" "operator family \"%s\" does not exist for access method \"%s\", skipping" msgstr "\"%s\" 연산자 패밀리(\"%s\" 접근 방법)가 없음, 건너뜀" -#: commands/dropcmds.c:481 +#: commands/dropcmds.c:476 #, c-format msgid "publication \"%s\" does not exist, skipping" msgstr "\"%s\" 발행 없음, 건너뜀" -#: commands/event_trigger.c:125 +#: commands/event_trigger.c:137 #, c-format msgid "permission denied to create event trigger \"%s\"" msgstr "\"%s\" 이벤트 트리거를 만들 권한이 없음" -#: commands/event_trigger.c:127 +#: commands/event_trigger.c:139 #, c-format msgid "Must be superuser to create an event trigger." msgstr "슈퍼유저만 이벤트 트리거를 만들 수 있습니다." -#: commands/event_trigger.c:136 +#: commands/event_trigger.c:149 #, c-format msgid "unrecognized event name \"%s\"" msgstr "알 수 없는 이벤트 이름: \"%s\"" -#: commands/event_trigger.c:153 +#: commands/event_trigger.c:166 #, c-format msgid "unrecognized filter variable \"%s\"" msgstr "알 수 없는 필터 변수: \"%s\"" -#: commands/event_trigger.c:207 +#: commands/event_trigger.c:181 +#, c-format +msgid "tag filtering is not supported for login event triggers" +msgstr "태그 필터링은 로그인 이벤트 트리거용으로 쓸 수 없음" + +#: commands/event_trigger.c:224 #, c-format msgid "filter value \"%s\" not recognized for filter variable \"%s\"" msgstr "\"%s\" 필터값은 \"%s\" 필터 변수으로 쓸 수 없음" #. translator: %s represents an SQL statement name -#: commands/event_trigger.c:213 commands/event_trigger.c:235 +#: commands/event_trigger.c:230 commands/event_trigger.c:252 #, c-format msgid "event triggers are not supported for %s" msgstr "%s 용 이벤트 트리거는 지원하지 않음" -#: commands/event_trigger.c:248 +#: commands/event_trigger.c:265 #, c-format msgid "filter variable \"%s\" specified more than once" msgstr "\"%s\" 필터 변수가 한 번 이상 사용되었습니다." -#: commands/event_trigger.c:376 commands/event_trigger.c:420 -#: commands/event_trigger.c:514 +#: commands/event_trigger.c:438 commands/event_trigger.c:490 +#: commands/event_trigger.c:584 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "\"%s\" 이벤트 트리거 없음" -#: commands/event_trigger.c:452 +#: commands/event_trigger.c:522 #, c-format msgid "event trigger with OID %u does not exist" msgstr "OID %u 이벤트 트리거가 없음" -#: commands/event_trigger.c:482 +#: commands/event_trigger.c:552 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "\"%s\" 이벤트 트리거 소유주를 변경할 권한이 없음" -#: commands/event_trigger.c:484 +#: commands/event_trigger.c:554 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "이벤트 트리거 소유주는 슈퍼유저여야 합니다." -#: commands/event_trigger.c:1304 +#: commands/event_trigger.c:1409 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s 개체는 sql_drop 이벤트 트리거 함수 안에서만 호출 되어야 합니다." -#: commands/event_trigger.c:1397 commands/event_trigger.c:1418 +#: commands/event_trigger.c:1502 commands/event_trigger.c:1523 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "" "%s 개체는 table_rewrite 이벤트 트리거 함수 안에서만 호출 되어야 합니다." -#: commands/event_trigger.c:1831 +#: commands/event_trigger.c:1936 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s 개체는 이벤트 트리거 함수 안에서만 호출 되어야 합니다." -#: commands/explain.c:220 +#: commands/explain.c:241 commands/explain.c:266 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "\"%s\" EXPLAIN 옵션에서 쓸 수 없는 값: \"%s\"" -#: commands/explain.c:227 +#: commands/explain.c:273 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "잘못된 EXPLAIN 옵션: \"%s\"" -#: commands/explain.c:236 +#: commands/explain.c:282 #, c-format msgid "EXPLAIN option WAL requires ANALYZE" msgstr "WAL 옵션은 EXPLAIN ANALYZE에서만 쓸 수 있습니다." -#: commands/explain.c:245 +#: commands/explain.c:291 #, c-format msgid "EXPLAIN option TIMING requires ANALYZE" msgstr "TIMING 옵션은 EXPLAIN ANALYZE에서만 쓸 수 있습니다." -#: commands/explain.c:251 +#: commands/explain.c:297 +#, c-format +msgid "EXPLAIN option SERIALIZE requires ANALYZE" +msgstr "SERIALIZE 옵션은 EXPLAIN ANALYZE에서만 쓸 수 있습니다." + +#: commands/explain.c:303 #, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" msgstr "" "EXPLAIN 옵션으로 ANALYZE 옵션과 GENERIC_PLAN 옵션을 함께 사용할 수 없습니다." -#: commands/extension.c:177 commands/extension.c:3033 +#: commands/extension.c:178 commands/extension.c:3031 #, c-format msgid "extension \"%s\" does not exist" msgstr "\"%s\" 이름의 확장 모듈이 없습니다" -#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 -#: commands/extension.c:307 +#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 +#: commands/extension.c:308 #, c-format msgid "invalid extension name: \"%s\"" msgstr "잘못된 확장 모듈 이름: \"%s\"" -#: commands/extension.c:277 +#: commands/extension.c:278 #, c-format msgid "Extension names must not be empty." msgstr "확장 모듈 이름을 지정하세요." -#: commands/extension.c:286 +#: commands/extension.c:287 #, c-format msgid "Extension names must not contain \"--\"." msgstr "확장 모듈 이름에 \"--\" 문자가 포함될 수 없습니다." -#: commands/extension.c:298 +#: commands/extension.c:299 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "확장 모듈 이름의 시작과 끝에는 \"-\" 문자를 사용할 수 없습니다." -#: commands/extension.c:308 +#: commands/extension.c:309 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "확장 모듈 이름에는 디렉터리 구분 문자를 사용할 수 없습니다." -#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 -#: commands/extension.c:351 +#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 +#: commands/extension.c:352 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "잘못된 확장 모듈 버전 이름: \"%s\"" -#: commands/extension.c:324 +#: commands/extension.c:325 #, c-format msgid "Version names must not be empty." msgstr "버전 이름은 비어있으면 안됩니다" -#: commands/extension.c:333 +#: commands/extension.c:334 #, c-format msgid "Version names must not contain \"--\"." msgstr "버전 이름에 \"--\" 문자가 포함될 수 없습니다." -#: commands/extension.c:342 +#: commands/extension.c:343 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "버전 이름의 앞 뒤에 \"-\" 문자를 쓸 수 없습니다." -#: commands/extension.c:352 +#: commands/extension.c:353 #, c-format msgid "Version names must not contain directory separator characters." msgstr "버전 이름에는 디렉터리 분리 문자를 쓸 수 없습니다." -#: commands/extension.c:506 +#: commands/extension.c:507 #, c-format msgid "extension \"%s\" is not available" msgstr "\"%s\" 이름의 확장 모듈을 사용할 수 없습니다" -#: commands/extension.c:507 +#: commands/extension.c:508 #, c-format msgid "Could not open extension control file \"%s\": %m." msgstr "\"%s\" 확장 모듈 제어 파일 열기 실패: %m." -#: commands/extension.c:509 +#: commands/extension.c:510 #, c-format msgid "" "The extension must first be installed on the system where PostgreSQL is " "running." msgstr "해당 확장 모듈은 PostgreSQL 시작 전에 먼저 설치 되어 있어야합니다." -#: commands/extension.c:513 +#: commands/extension.c:514 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "\"%s\" 확장 모듈 제어 파일 열기 실패: %m" -#: commands/extension.c:536 commands/extension.c:546 +#: commands/extension.c:537 commands/extension.c:547 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "\"%s\" 매개 변수는 이차 확장 모듈 제어 파일에서는 사용할 수 없습니다." -#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 -#: utils/misc/guc.c:3098 +#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 +#: utils/misc/guc.c:3147 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "\"%s\" 매개 변수의 값은 불리언 값이어야 합니다." -#: commands/extension.c:593 +#: commands/extension.c:594 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" 이름은 잘못된 인코딩 이름임" -#: commands/extension.c:607 commands/extension.c:622 +#: commands/extension.c:608 commands/extension.c:623 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "\"%s\" 매개 변수는 확장 모듈 이름 목록이어야 함" -#: commands/extension.c:629 +#: commands/extension.c:630 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "알 수 없는 \"%s\" 매개 변수가 \"%s\" 파일 안에 있습니다." -#: commands/extension.c:638 +#: commands/extension.c:639 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "" "\"relocatable\" 값이 true 인 경우 \"schema\" 매개 변수는 사용할 수 없습니다." -#: commands/extension.c:816 +#: commands/extension.c:817 #, c-format msgid "" "transaction control statements are not allowed within an extension script" msgstr "확장 모듈 스크립트 안에서는 트랜잭션 제어 구문은 사용할 수 없습니다." -#: commands/extension.c:896 +#: commands/extension.c:897 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "\"%s\" 확장 모듈을 만들 권한이 없습니다" -#: commands/extension.c:899 +#: commands/extension.c:900 #, c-format msgid "" "Must have CREATE privilege on current database to create this extension." @@ -8684,17 +9098,17 @@ msgstr "" "이 확장 모듈을 설치하려면 현재 데이터베이스에 대해서 CREATE 권한이 있어야 합" "니다." -#: commands/extension.c:900 +#: commands/extension.c:901 #, c-format msgid "Must be superuser to create this extension." msgstr "확장 모듈은 슈퍼유저만 만들 수 있습니다." -#: commands/extension.c:904 +#: commands/extension.c:905 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "\"%s\" 확장 모듈을 업데이트할 권한이 없습니다." -#: commands/extension.c:907 +#: commands/extension.c:908 #, c-format msgid "" "Must have CREATE privilege on current database to update this extension." @@ -8702,24 +9116,24 @@ msgstr "" "이 확장 모듈을 업데이트 하려면 현재 데이터베이스에 대해서 CREATE 권한이 있어" "야 합니다." -#: commands/extension.c:908 +#: commands/extension.c:909 #, c-format msgid "Must be superuser to update this extension." msgstr "슈퍼유저만 해당 모듈을 업데이트 할 수 있습니다." -#: commands/extension.c:1046 +#: commands/extension.c:1042 #, c-format msgid "invalid character in extension owner: must not contain any of \"%s\"" msgstr "해당 모듈 소유주 이름에 잘못된 문자: \"%s\" 문자는 허용하지 않음" -#: commands/extension.c:1070 commands/extension.c:1097 +#: commands/extension.c:1066 commands/extension.c:1093 #, c-format msgid "" "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" msgstr "" "확장 모듈 \"%s\" 스키마 이름에 잘못된 문자: \"%s\" 문자는 허용하지 않음" -#: commands/extension.c:1292 +#: commands/extension.c:1288 #, c-format msgid "" "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" @@ -8727,96 +9141,96 @@ msgstr "" "\"%s\" 확장 모듈을 \"%s\" 버전에서 \"%s\" 버전으로 업데이트할 방법이 없습니" "다." -#: commands/extension.c:1500 commands/extension.c:3091 +#: commands/extension.c:1496 commands/extension.c:3089 #, c-format msgid "version to install must be specified" msgstr "설치할 버전을 지정해야 합니다." -#: commands/extension.c:1537 +#: commands/extension.c:1533 #, c-format msgid "" -"extension \"%s\" has no installation script nor update path for version \"%s" -"\"" +"extension \"%s\" has no installation script nor update path for version " +"\"%s\"" msgstr "" "\"%s\" 확장 모듈에는 \"%s\" 버전용 설치나 업데이트 스크립트가 없습니다." -#: commands/extension.c:1571 +#: commands/extension.c:1567 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "\"%s\" 확장 모듈은 \"%s\" 스키마 안에 설치되어야 합니다." -#: commands/extension.c:1731 +#: commands/extension.c:1727 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "\"%s\" 확장 모듈과 \"%s\" 확장 모듈이 서로 의존 관계입니다" -#: commands/extension.c:1736 +#: commands/extension.c:1732 #, c-format msgid "installing required extension \"%s\"" msgstr "\"%s\" 확장 모듈이 필요해서 실치 하는 중" -#: commands/extension.c:1759 +#: commands/extension.c:1755 #, c-format msgid "required extension \"%s\" is not installed" msgstr "\"%s\" 확장 모듈이 필요한데, 설치되어 있지 않습니다." -#: commands/extension.c:1762 +#: commands/extension.c:1758 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "" "필요한 모듈을 함께 설치하려면, CREATE EXTENSION ... CASCADE 구문을 사용하세" "요." -#: commands/extension.c:1797 +#: commands/extension.c:1793 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "\"%s\" 확장 모듈이 이미 있음, 건너뜀" -#: commands/extension.c:1804 +#: commands/extension.c:1800 #, c-format msgid "extension \"%s\" already exists" msgstr "\"%s\" 이름의 확장 모듈이 이미 있습니다" -#: commands/extension.c:1815 +#: commands/extension.c:1811 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "중첩된 CREATE EXTENSION 구문은 지원하지 않습니다." -#: commands/extension.c:1979 +#: commands/extension.c:1975 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "%s 의존개체들은 시스템 개체이기 때문에 삭제 될 수 없습니다" -#: commands/extension.c:2454 +#: commands/extension.c:2450 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "" "%s 함수는 CREATE EXTENSION 명령에서 내부적으로 사용하는 SQL 스크립트 내에서" "만 사용할 수 있습니다." -#: commands/extension.c:2466 +#: commands/extension.c:2462 #, c-format msgid "OID %u does not refer to a table" msgstr "%u OID 자료가 테이블에 없습니다" -#: commands/extension.c:2471 +#: commands/extension.c:2467 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "\"%s\" 테이블은 만들려고 하는 확장 모듈의 구성 요소가 아닙니다." -#: commands/extension.c:2817 +#: commands/extension.c:2813 #, c-format msgid "" "cannot move extension \"%s\" into schema \"%s\" because the extension " "contains the schema" msgstr "\"%s\" 확장 모듈이 \"%s\" 스키마에 이미 있어 옮길 수 없습니다." -#: commands/extension.c:2858 commands/extension.c:2952 +#: commands/extension.c:2854 commands/extension.c:2948 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "\"%s\" 확장 모듈은 SET SCHEMA 구문을 지원하지 않음" -#: commands/extension.c:2915 +#: commands/extension.c:2911 #, c-format msgid "" "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" @@ -8824,32 +9238,32 @@ msgstr "" "다른 확장 모듈이 해당 스키마를 선점하고 있어, \"%s\" 확장 모듈은 SET SCHEMA " "작업을 할 수 없음." -#: commands/extension.c:2917 +#: commands/extension.c:2913 #, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." msgstr "\"%s\" 확장 모듈은 \"%s\" 확장모듈의 위치 변경을 금지합니다." -#: commands/extension.c:2954 +#: commands/extension.c:2950 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "%s 개체가 확장 모듈 스키마인 \"%s\" 안에 없음" -#: commands/extension.c:3013 +#: commands/extension.c:3011 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "중첩된 ALTER EXTENSION 구문을 지원하지 않음" -#: commands/extension.c:3102 +#: commands/extension.c:3100 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "\"%s\" 버전의 \"%s\" 확장 모듈이 이미 설치 되어 있음" -#: commands/extension.c:3314 +#: commands/extension.c:3311 #, c-format msgid "cannot add an object of this type to an extension" msgstr "해당 확장 모듈에 이런 형태의 객체는 추가 할 수 없음" -#: commands/extension.c:3380 +#: commands/extension.c:3409 #, c-format msgid "" "cannot add schema \"%s\" to extension \"%s\" because the schema contains the " @@ -8858,7 +9272,12 @@ msgstr "" "\"%s\" 스키마에 \"%s\" 확장 모듈을 추가할 수 없음, 이미 해당 스키마 안에 포" "함되어 있음" -#: commands/extension.c:3474 +#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#, c-format +msgid "could not find multirange type for data type %s" +msgstr "%s 자료형용 multirange 형을 찾을 수 없음" + +#: commands/extension.c:3532 #, c-format msgid "file \"%s\" is too large" msgstr "\"%s\" 파일이 너무 큽니다." @@ -8888,7 +9307,7 @@ msgstr "슈퍼유저만 외부 자료 래퍼의 소유주를 바꿀 수 있습 msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "외부 자료 래퍼의 소유주는 슈퍼유저여야 합니다." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "\"%s\" 외부 자료 래퍼가 없음" @@ -8921,7 +9340,7 @@ msgstr "\"%s\" 외부 자료 래퍼를 변경할 권한이 없음" #: commands/foreigncmds.c:699 #, c-format msgid "Must be superuser to alter a foreign-data wrapper." -msgstr "슈퍼유저만 외부 자료 래퍼를 변경할 수 있습니다." +msgstr "슈퍼유저만 외부 자료 래퍼를 바꿀 수 있습니다." #: commands/foreigncmds.c:730 #, c-format @@ -8966,7 +9385,7 @@ msgstr "\"%s\" 사용자 매핑이 \"%s\" 서버용으로 없음" msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "\"%s\" 사용자 매핑이 \"%s\" 서버용으로 없음, 건너뜀" -#: commands/foreigncmds.c:1507 foreign/foreign.c:391 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "\"%s\" 외부 자료 래퍼용 핸들러가 없음" @@ -8981,229 +9400,229 @@ msgstr "\"%s\" 외부 자료 래퍼는 IMPORT FOREIGN SCHEMA 구문을 지원하 msgid "importing foreign table \"%s\"" msgstr "\"%s\" 외부 테이블 가져 오는 중" -#: commands/functioncmds.c:109 +#: commands/functioncmds.c:104 #, c-format msgid "SQL function cannot return shell type %s" msgstr "SQL 함수는 shell type %s 리턴할 수 없음" -#: commands/functioncmds.c:114 +#: commands/functioncmds.c:109 #, c-format msgid "return type %s is only a shell" msgstr "_^_ %s 리턴 자료형은 하나의 shell만 있습니다" -#: commands/functioncmds.c:143 parser/parse_type.c:354 +#: commands/functioncmds.c:138 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "\"%s\" 셸 형식에 대해 형식 한정자를 지정할 수 없음" -#: commands/functioncmds.c:149 +#: commands/functioncmds.c:144 #, c-format msgid "type \"%s\" is not yet defined" msgstr "\"%s\" 자료형이 아직 정의되지 않았음" -#: commands/functioncmds.c:150 +#: commands/functioncmds.c:145 #, c-format msgid "Creating a shell type definition." msgstr "셸 타입 정의를 만들고 있습니다" -#: commands/functioncmds.c:249 +#: commands/functioncmds.c:244 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL 함수는 셸 타입 %s 수용할 수 없음" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:250 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "집계 함수는 셸 타입 %s 수용할 수 없음" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:255 #, c-format msgid "argument type %s is only a shell" msgstr "%s 인자 자료형은 단지 셸입니다" -#: commands/functioncmds.c:270 +#: commands/functioncmds.c:265 #, c-format msgid "type %s does not exist" msgstr "%s 자료형 없음" -#: commands/functioncmds.c:284 +#: commands/functioncmds.c:279 #, c-format msgid "aggregates cannot accept set arguments" msgstr "집계 함수는 세트 인자를 입력 인자로 쓸 수 없음" -#: commands/functioncmds.c:288 +#: commands/functioncmds.c:283 #, c-format msgid "procedures cannot accept set arguments" msgstr "프로시져에서는 집합 인자를 입력 인자로 쓸 수 없음" -#: commands/functioncmds.c:292 +#: commands/functioncmds.c:287 #, c-format msgid "functions cannot accept set arguments" msgstr "함수는 세트 인자를 쓸 수 없음" -#: commands/functioncmds.c:302 +#: commands/functioncmds.c:297 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "VARIADIC 매개 변수는 마지막 입력 매개 변수여야 함" -#: commands/functioncmds.c:322 +#: commands/functioncmds.c:317 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "VARIADIC 매개 변수는 마지막 매개 변수여야 함" -#: commands/functioncmds.c:347 +#: commands/functioncmds.c:342 #, c-format msgid "VARIADIC parameter must be an array" msgstr "VARIADIC 매개 변수는 배열이어야 함" -#: commands/functioncmds.c:392 +#: commands/functioncmds.c:387 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "\"%s\" 매개 변수가 여러 번 사용 됨" -#: commands/functioncmds.c:410 +#: commands/functioncmds.c:405 #, c-format msgid "only input parameters can have default values" msgstr "입력 매개 변수에서만 기본값을 사용할 수 있음" -#: commands/functioncmds.c:425 +#: commands/functioncmds.c:420 #, c-format msgid "cannot use table references in parameter default value" msgstr "입력 매개 변수 초기값으로 테이블 참조형은 사용할 수 없음" -#: commands/functioncmds.c:449 +#: commands/functioncmds.c:444 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "" "기본 값이 있는 입력 매개 변수 뒤에 오는 입력 매개 변수에도 기본 값이 있어야 " "함" -#: commands/functioncmds.c:459 +#: commands/functioncmds.c:454 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "프로시지 OUT 매개 변수는 기본값이 있는 매개 변수 뒤에 지정하면 안됨" -#: commands/functioncmds.c:601 commands/functioncmds.c:780 +#: commands/functioncmds.c:596 commands/functioncmds.c:775 #, c-format msgid "invalid attribute in procedure definition" msgstr "프로시져 정의에 잘못된 속성이 있음" -#: commands/functioncmds.c:697 +#: commands/functioncmds.c:692 #, c-format msgid "support function %s must return type %s" msgstr "%s support 함수는 %s 자료형을 반환해야 함" -#: commands/functioncmds.c:708 +#: commands/functioncmds.c:703 #, c-format msgid "must be superuser to specify a support function" msgstr "support 함수를 지정하려면 슈퍼유져여야 합니다" -#: commands/functioncmds.c:829 commands/functioncmds.c:1432 +#: commands/functioncmds.c:824 commands/functioncmds.c:1427 #, c-format msgid "COST must be positive" msgstr "COST는 양수여야 함" -#: commands/functioncmds.c:837 commands/functioncmds.c:1440 +#: commands/functioncmds.c:832 commands/functioncmds.c:1435 #, c-format msgid "ROWS must be positive" msgstr "ROWS는 양수여야 함" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:861 #, c-format msgid "no function body specified" msgstr "함수 본문(body) 부분이 빠졌습니다" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:866 #, c-format msgid "duplicate function body specified" msgstr "함수 본문(body) 부분을 중복 지정했습니다" -#: commands/functioncmds.c:876 +#: commands/functioncmds.c:871 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "함수의 language 값이 SQL일 때만 인라인 SQL 함수 본문을 쓸 수 있음" -#: commands/functioncmds.c:918 +#: commands/functioncmds.c:913 #, c-format msgid "" "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "" "따옴표 없는 함수 본문을 사용하는 SQL 함수는 다형 자료형 인자를 쓸 수 없음" -#: commands/functioncmds.c:944 commands/functioncmds.c:963 +#: commands/functioncmds.c:939 commands/functioncmds.c:958 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%s 구문은 따옴표 없는 SQL 함수 본문 안에서 지원하지 않음" -#: commands/functioncmds.c:991 +#: commands/functioncmds.c:986 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "\"%s\" 언어에는 하나의 AS 항목만 필요함" -#: commands/functioncmds.c:1096 +#: commands/functioncmds.c:1091 #, c-format msgid "no language specified" msgstr "처리할 프로시주얼 언어를 지정하지 않았습니다" -#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 -#: commands/proclang.c:237 +#: commands/functioncmds.c:1099 commands/functioncmds.c:2117 +#: commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "\"%s\" 프로시주얼 언어 없음" -#: commands/functioncmds.c:1106 commands/functioncmds.c:2107 +#: commands/functioncmds.c:1101 commands/functioncmds.c:2119 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "" "데이터베이스 내에서 프로시주얼 언어를 사용하려면 먼저 CREATE EXTENSION 명령으" "로 사용할 언어를 등록하세요." -#: commands/functioncmds.c:1139 commands/functioncmds.c:1424 +#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 #, c-format msgid "only superuser can define a leakproof function" msgstr "슈퍼유저만 leakproof 함수를 만들 수 있습니다" -#: commands/functioncmds.c:1190 +#: commands/functioncmds.c:1185 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "OUT 매개 변수로 인해 함수 결과 형식은 %s이어야 함" -#: commands/functioncmds.c:1203 +#: commands/functioncmds.c:1198 #, c-format msgid "function result type must be specified" msgstr "함수의 리턴 자료형을 지정해야 합니다" -#: commands/functioncmds.c:1256 commands/functioncmds.c:1444 +#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "함수에서 세트를 반환하지 않는 경우 ROWS를 적용할 수 없음" -#: commands/functioncmds.c:1547 +#: commands/functioncmds.c:1546 #, c-format msgid "source data type %s is a pseudo-type" msgstr "%s 원본 자료형이 의사자료형(pseudo-type) 입니다" -#: commands/functioncmds.c:1553 +#: commands/functioncmds.c:1552 #, c-format msgid "target data type %s is a pseudo-type" msgstr "%s 대상 자료형이 의사자료형(pseudo-type) 입니다" -#: commands/functioncmds.c:1577 +#: commands/functioncmds.c:1576 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "원본 자료형이 도메인이어서 자료형 변환을 무시합니다." -#: commands/functioncmds.c:1582 +#: commands/functioncmds.c:1581 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "대상 자료형이 도메인이어서 자료형 변환을 무시합니다." -#: commands/functioncmds.c:1607 +#: commands/functioncmds.c:1606 #, c-format msgid "cast function must take one to three arguments" msgstr "형변환 함수는 1-3개의 인자만 지정할 수 있습니다" -#: commands/functioncmds.c:1613 +#: commands/functioncmds.c:1612 #, c-format msgid "" "argument of cast function must match or be binary-coercible from source data " @@ -9212,17 +9631,17 @@ msgstr "" "형변환 함수의 인자로 쓸 자료형은 원본 자료형과 일치하거나 바이너리 차원으로 " "같은 자료형이어야 함" -#: commands/functioncmds.c:1617 +#: commands/functioncmds.c:1616 #, c-format msgid "second argument of cast function must be type %s" msgstr "형변화 함수의 두번째 인자 자료형은 반드시 %s 형이여야 합니다" -#: commands/functioncmds.c:1622 +#: commands/functioncmds.c:1621 #, c-format msgid "third argument of cast function must be type %s" msgstr "형변화 함수의 세번째 인자 자료형은 반드시 %s 형이여야 합니다" -#: commands/functioncmds.c:1629 +#: commands/functioncmds.c:1628 #, c-format msgid "" "return data type of cast function must match or be binary-coercible to " @@ -9231,219 +9650,228 @@ msgstr "" "형변환 함수의 반환 자료형은 대상 자료형과 일치하거나 바이너리 차원으로 같은 " "자료형이어야 함" -#: commands/functioncmds.c:1640 +#: commands/functioncmds.c:1639 #, c-format msgid "cast function must not be volatile" msgstr "형변환 함수는 volatile 특성이 없어야 합니다" -#: commands/functioncmds.c:1645 +#: commands/functioncmds.c:1644 #, c-format msgid "cast function must be a normal function" msgstr "형변환 함수는 일반 함수여야 합니다" -#: commands/functioncmds.c:1649 +#: commands/functioncmds.c:1648 #, c-format msgid "cast function must not return a set" msgstr "형변환 함수는 세트(set)를 리턴할 수 없습니다" -#: commands/functioncmds.c:1675 +#: commands/functioncmds.c:1674 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "CREATE CAST ... WITHOUT FUNCTION 명령은 슈퍼유저만 실행할 수 있습니다" -#: commands/functioncmds.c:1690 +#: commands/functioncmds.c:1689 #, c-format msgid "source and target data types are not physically compatible" msgstr "원본 자료형과 대상 자료형이 서로 논리적인 호환성이 없습니다" -#: commands/functioncmds.c:1705 +#: commands/functioncmds.c:1709 #, c-format msgid "composite data types are not binary-compatible" msgstr "복합 자료형은 바이너리와 호환되지 않음" -#: commands/functioncmds.c:1711 -#, c-format -msgid "enum data types are not binary-compatible" -msgstr "열거 자료형은 바이너리와 호환되지 않음" - -#: commands/functioncmds.c:1717 +#: commands/functioncmds.c:1715 #, c-format msgid "array data types are not binary-compatible" msgstr "배열 자료형은 바이너리와 호환되지 않음" -#: commands/functioncmds.c:1734 +#: commands/functioncmds.c:1723 +#, c-format +msgid "range data types are not binary-compatible" +msgstr "범위 자료형은 바이너리와 호환되지 않음" + +#: commands/functioncmds.c:1729 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "열거 자료형은 바이너리와 호환되지 않음" + +#: commands/functioncmds.c:1746 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "도메인 자료형은 바이너리와 호환되지 않음" -#: commands/functioncmds.c:1744 +#: commands/functioncmds.c:1756 #, c-format msgid "source data type and target data type are the same" msgstr "원본 자료형과 대상 자료형의 형태가 같습니다" -#: commands/functioncmds.c:1777 +#: commands/functioncmds.c:1789 #, c-format msgid "transform function must not be volatile" msgstr "형변환 함수는 volatile 특성이 없어야 합니다" -#: commands/functioncmds.c:1781 +#: commands/functioncmds.c:1793 #, c-format msgid "transform function must be a normal function" msgstr "형변환 함수는 일반 함수여야 합니다." -#: commands/functioncmds.c:1785 +#: commands/functioncmds.c:1797 #, c-format msgid "transform function must not return a set" msgstr "형변환 함수는 세트(set)를 리턴할 수 없습니다" -#: commands/functioncmds.c:1789 +#: commands/functioncmds.c:1801 #, c-format msgid "transform function must take one argument" msgstr "형변환 함수는 1개의 인자만 지정할 수 있습니다" -#: commands/functioncmds.c:1793 +#: commands/functioncmds.c:1805 #, c-format msgid "first argument of transform function must be type %s" msgstr "형변화 함수의 첫번째 인자 자료형은 반드시 %s 형이여야 합니다" -#: commands/functioncmds.c:1832 +#: commands/functioncmds.c:1844 #, c-format msgid "data type %s is a pseudo-type" msgstr "%s 자료형은 의사자료형(pseudo-type) 입니다" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1850 #, c-format msgid "data type %s is a domain" msgstr "%s 자료형은 도메인입니다" -#: commands/functioncmds.c:1878 +#: commands/functioncmds.c:1890 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "FROM SQL 함수의 반환 자료형은 %s 형이어야 함" -#: commands/functioncmds.c:1904 +#: commands/functioncmds.c:1916 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "TO SQL 함수의 반환 자료형은 변환 자료형이어야 함" -#: commands/functioncmds.c:1931 +#: commands/functioncmds.c:1943 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "%s 자료형(대상 언어: \"%s\")을 위한 형변환 규칙은 이미 있습니다." -#: commands/functioncmds.c:2017 +#: commands/functioncmds.c:2029 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "%s 자료형(대상 언어: \"%s\")을 위한 형변환 규칙은 없습니다." -#: commands/functioncmds.c:2041 +#: commands/functioncmds.c:2053 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "%s 함수는 이미 \"%s\" 스키마안에 있습니다" -#: commands/functioncmds.c:2092 +#: commands/functioncmds.c:2104 #, c-format msgid "no inline code specified" msgstr "내장 코드가 빠졌습니다" -#: commands/functioncmds.c:2138 +#: commands/functioncmds.c:2150 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "\"%s\" 프로시주얼 언어는 내장 코드 실행 기능을 지원하지 않습니다" -#: commands/functioncmds.c:2233 +#: commands/functioncmds.c:2245 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" msgstr[0] "프로시져에 %d개의 인자 이상을 전달할 수 없음" -#: commands/indexcmds.c:640 +#: commands/indexcmds.c:656 #, c-format msgid "must specify at least one column" msgstr "적어도 하나 이상의 칼럼을 지정해 주십시오" -#: commands/indexcmds.c:644 +#: commands/indexcmds.c:660 #, c-format msgid "cannot use more than %d columns in an index" msgstr "하나의 인덱스에서는 %d개보다 많은 칼럼을 사용할 수 없습니다" -#: commands/indexcmds.c:687 +#: commands/indexcmds.c:703 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "\"%s\" 릴레이션 대상으로 인덱스를 만들 수 없음" -#: commands/indexcmds.c:713 +#: commands/indexcmds.c:729 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "\"%s\" 파티션된 테이블 대상으로 동시에 인덱스를 만들 수 없음" -#: commands/indexcmds.c:718 -#, c-format -msgid "cannot create exclusion constraints on partitioned table \"%s\"" -msgstr "\"%s\" 파티션된 테이블 대상으로 제외 제약조건을 만들 수 없음" - -#: commands/indexcmds.c:728 +#: commands/indexcmds.c:739 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "다른 세션의 임시 테이블에 인덱스를 만들 수는 없습니다" -#: commands/indexcmds.c:766 commands/tablecmds.c:784 commands/tablespace.c:1184 +#: commands/indexcmds.c:777 commands/tablecmds.c:818 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "파티션 테이블용 기본 테이블스페이스를 지정할 수 없습니다." -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:809 commands/tablecmds.c:849 commands/tablecmds.c:3588 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "공유 관계만 pg_global 테이블스페이스에 배치할 수 있음" -#: commands/indexcmds.c:831 +#: commands/indexcmds.c:842 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "사용하지 않는 \"rtree\" 방법을 \"gist\" 액세스 방법으로 대체하는 중" -#: commands/indexcmds.c:852 +#: commands/indexcmds.c:863 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "\"%s\" 인덱스 접근 방법은 고유 인덱스를 지원하지 않습니다" -#: commands/indexcmds.c:857 +#: commands/indexcmds.c:868 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "\"%s\" 인덱스 접근 방법은 포함된 칼럼을 지원하지 않습니다" -#: commands/indexcmds.c:862 +#: commands/indexcmds.c:873 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "\"%s\" 인덱스 접근 방법은 다중 열 인덱스를 지원하지 않습니다" -#: commands/indexcmds.c:867 +#: commands/indexcmds.c:878 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "\"%s\" 인덱스 접근 방법은 제외 제약 조건을 지원하지 않습니다" -#: commands/indexcmds.c:994 +#: commands/indexcmds.c:1007 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" msgstr "\"%s\" 접근 방법을 사용하는 인덱스와 파티션 키가 일치하지 않습니다" -#: commands/indexcmds.c:1004 +#: commands/indexcmds.c:1017 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "파티션 키 정의에는 %s 제약조건을 지원하지 않음" -#: commands/indexcmds.c:1006 +#: commands/indexcmds.c:1019 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "%s 제약조건은 파티션 키 포함 표현식에 사용할 수 없습니다" -#: commands/indexcmds.c:1045 +#: commands/indexcmds.c:1069 +#, c-format +msgid "" +"cannot match partition key to index on column \"%s\" using non-equal " +"operator \"%s\"" +msgstr "" +"\"%s\" 컬럼에서 같지 않음 연산자(\"%s\")를 사용하는데 이것을 파티션 키와 매치" +"할 수 없음" + +#: commands/indexcmds.c:1085 #, c-format msgid "" "unique constraint on partitioned table must include all partitioning columns" msgstr "하위 테이블 용 유니크 제약조건에는 모든 파티션 칼럼이 포함되어야 함" -#: commands/indexcmds.c:1046 +#: commands/indexcmds.c:1086 #, c-format msgid "" "%s constraint on table \"%s\" lacks column \"%s\" which is part of the " @@ -9452,93 +9880,93 @@ msgstr "" "%s 제약조건(해당 테이블: \"%s\")에 기본키의 한 부분인 \"%s\" 칼럼이 빠져있습" "니다." -#: commands/indexcmds.c:1065 commands/indexcmds.c:1084 +#: commands/indexcmds.c:1105 commands/indexcmds.c:1124 #, c-format msgid "index creation on system columns is not supported" msgstr "시스템 카탈로그 테이블에 대한 인덱스 만들기는 지원하지 않습니다" -#: commands/indexcmds.c:1313 tcop/utility.c:1526 +#: commands/indexcmds.c:1354 tcop/utility.c:1515 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "\"%s\" 파티션된 테이블 대상으로 유니크 인덱스를 만들 수 없음" -#: commands/indexcmds.c:1315 tcop/utility.c:1528 +#: commands/indexcmds.c:1356 tcop/utility.c:1517 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "\"%s\" 테이블은 하위 테이블로 외부 테이블을 사용함." -#: commands/indexcmds.c:1827 +#: commands/indexcmds.c:1806 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "" "인덱스 술어(predicate)에서 사용하는 함수는 IMMUTABLE 특성이 있어야 합니다" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:2513 -#: parser/parse_utilcmd.c:2648 +#: commands/indexcmds.c:1885 parser/parse_utilcmd.c:2519 +#: parser/parse_utilcmd.c:2654 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "키에서 지정한 \"%s\" 칼럼이 없습니다" -#: commands/indexcmds.c:1929 parser/parse_utilcmd.c:1812 +#: commands/indexcmds.c:1909 parser/parse_utilcmd.c:1807 #, c-format msgid "expressions are not supported in included columns" msgstr "포함된 칼럼에 쓰인 표현식을 지원하지 않음" -#: commands/indexcmds.c:1970 +#: commands/indexcmds.c:1950 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "인덱스 식(expression)에 사용하는 함수는 IMMUTABLE 특성이 있어야 합니다" -#: commands/indexcmds.c:1985 +#: commands/indexcmds.c:1965 #, c-format msgid "including column does not support a collation" msgstr "포함된 칼럼은 문자정렬규칙을 지원하지 않음" -#: commands/indexcmds.c:1989 +#: commands/indexcmds.c:1969 #, c-format msgid "including column does not support an operator class" msgstr "포함된 칼럼은 연산자 클래스를 지원하지 않음" -#: commands/indexcmds.c:1993 +#: commands/indexcmds.c:1973 #, c-format msgid "including column does not support ASC/DESC options" msgstr "포함된 칼럼은 ASC/DESC 옵션을 지원하지 않음" -#: commands/indexcmds.c:1997 +#: commands/indexcmds.c:1977 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "포함된 칼럼은 NULLS FIRST/LAST 옵션을 지원하지 않음" -#: commands/indexcmds.c:2038 +#: commands/indexcmds.c:2020 #, c-format msgid "could not determine which collation to use for index expression" msgstr "해당 인덱스에서 사용할 정렬규칙(collation)을 결정할 수 없습니다." -#: commands/indexcmds.c:2046 commands/tablecmds.c:17469 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3774 -#: utils/adt/misc.c:586 +#: commands/indexcmds.c:2028 commands/tablecmds.c:18185 commands/typecmds.c:811 +#: parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3771 +#: utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "%s 자료형은 collation 지원 안함" -#: commands/indexcmds.c:2111 +#: commands/indexcmds.c:2095 #, c-format msgid "operator %s is not commutative" msgstr "%s 연산자는 교환법칙이 성립하지 않습니다" -#: commands/indexcmds.c:2113 +#: commands/indexcmds.c:2097 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "" "exclude 제약조건용 인덱스를 만들 때는 교환법칙이 성립하는 연산자만 사용할 수 " "있습니다." -#: commands/indexcmds.c:2139 +#: commands/indexcmds.c:2123 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "%s 연산자는 \"%s\" 연산자 패밀리 구성원이 아닙니다." -#: commands/indexcmds.c:2142 +#: commands/indexcmds.c:2126 #, c-format msgid "" "The exclusion operator must be related to the index operator class for the " @@ -9546,25 +9974,25 @@ msgid "" msgstr "" "제외 연산자는 해당 제약 조건용 인덱스 연산자 클래스의 소속이어야 합니다." -#: commands/indexcmds.c:2177 +#: commands/indexcmds.c:2161 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "\"%s\" 접근 방법은 ASC/DESC 옵션을 지원하지 않음" -#: commands/indexcmds.c:2182 +#: commands/indexcmds.c:2166 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "\"%s\" 접근 방법은 NULLS FIRST/LAST 옵션을 지원하지 않음" -#: commands/indexcmds.c:2228 commands/tablecmds.c:17494 -#: commands/tablecmds.c:17500 commands/typecmds.c:2301 +#: commands/indexcmds.c:2210 commands/tablecmds.c:18210 +#: commands/tablecmds.c:18216 commands/typecmds.c:2311 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" "%s 자료형은 \"%s\" 인덱스 액세스 방법을 위한 기본 연산자 클래스(operator " "class)가 없습니다. " -#: commands/indexcmds.c:2230 +#: commands/indexcmds.c:2212 #, c-format msgid "" "You must specify an operator class for the index or define a default " @@ -9573,83 +10001,87 @@ msgstr "" "이 인덱스를 위한 연산자 클래스를 지정하거나 먼저 이 자료형을 위한 기본 연산" "자 클래스를 정의해 두어야 합니다" -#: commands/indexcmds.c:2259 commands/indexcmds.c:2267 +#: commands/indexcmds.c:2241 commands/indexcmds.c:2249 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "" "\"%s\" 연산자 클래스는 \"%s\" 인덱스 액세스 방법에서 사용할 수 없습니다" -#: commands/indexcmds.c:2281 commands/typecmds.c:2289 +#: commands/indexcmds.c:2263 commands/typecmds.c:2299 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "\"%s\" 연산자 클래스는 %s 자료형을 사용할 수 없습니다" -#: commands/indexcmds.c:2371 +#: commands/indexcmds.c:2353 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "%s 자료형을 위한 기본 연산자 클래스가 여러개 있습니다" -#: commands/indexcmds.c:2699 +#: commands/indexcmds.c:2681 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "알 수 없는 REINDEX 옵션: \"%s\"" -#: commands/indexcmds.c:2923 +#: commands/indexcmds.c:2913 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "\"%s\" 테이블에는 잠금 없는 재색인 작업을 할 대상 인덱스가 없음" -#: commands/indexcmds.c:2937 +#: commands/indexcmds.c:2927 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "\"%s\" 테이블에는 재색인 작업을 할 인덱스가 없습니다" -#: commands/indexcmds.c:2982 commands/indexcmds.c:3492 -#: commands/indexcmds.c:3620 +#: commands/indexcmds.c:2974 commands/indexcmds.c:3485 +#: commands/indexcmds.c:3615 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "시스템 카탈로그 테이블 대상으로 잠금 없는 인덱스를 만들 수 없음" -#: commands/indexcmds.c:3005 +#: commands/indexcmds.c:2998 #, c-format msgid "can only reindex the currently open database" msgstr "열려있는 현재 데이터베이스에서만 reindex 명령을 사용할 수 있습니다" -#: commands/indexcmds.c:3099 +#: commands/indexcmds.c:3090 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "" "시스템 카탈로그 테이블 대상으로 잠금 없는 재색인 작업을 할 수 없음, 모두 건너" "뜀" -#: commands/indexcmds.c:3132 +#: commands/indexcmds.c:3123 #, c-format msgid "cannot move system relations, skipping all" msgstr "시스템 릴레이션은 이동할 수 없습니다, 모두 건너뜀" -#: commands/indexcmds.c:3178 +#: commands/indexcmds.c:3169 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "\"%s.%s\" 파티션된 테이블 대상으로 인덱스 다시 만드는 중" -#: commands/indexcmds.c:3181 +#: commands/indexcmds.c:3172 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "\"%s.%s\" 파티션된 인덱스를 다시 만드는 중" -#: commands/indexcmds.c:3372 commands/indexcmds.c:4228 +#: commands/indexcmds.c:3365 commands/indexcmds.c:4241 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "\"%s.%s\" 테이블의 인덱스들을 다시 만들었습니다." -#: commands/indexcmds.c:3524 commands/indexcmds.c:3576 +#: commands/indexcmds.c:3517 commands/indexcmds.c:3570 #, c-format -msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" -msgstr "" -"유효하지 않은 \"%s.%s\" 인덱스는 잠금 없는 재색인 작업을 할 수 없음, 건너뜀" +msgid "skipping reindex of invalid index \"%s.%s\"" +msgstr "\"%s.%s\" 인덱스가 정상적이지 않아 인덱스 다시 만들기를 건너뜀" + +#: commands/indexcmds.c:3520 commands/indexcmds.c:3573 +#, c-format +msgid "Use DROP INDEX or REINDEX INDEX." +msgstr "DROP INDEX 또는 REINDEX INDEX 명령을 사용하세요." -#: commands/indexcmds.c:3530 +#: commands/indexcmds.c:3524 #, c-format msgid "" "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" @@ -9657,49 +10089,49 @@ msgstr "" "\"%s.%s\" exclusion 제약조건을 대상으로 잠금 없는 재색인 작업을 할 수 없음, " "건너뜀" -#: commands/indexcmds.c:3685 +#: commands/indexcmds.c:3680 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "해당 개체에 대해서는 잠금 없는 재색인 작업을 할 수 없음" -#: commands/indexcmds.c:3706 +#: commands/indexcmds.c:3698 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "비공유 릴레이션은 \"%s\" 테이블스페이스로 이동할 수 없습니다" -#: commands/indexcmds.c:4209 commands/indexcmds.c:4221 +#: commands/indexcmds.c:4222 commands/indexcmds.c:4234 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "\"%s.%s\" 인덱스가 다시 만들어졌음" -#: commands/indexcmds.c:4211 commands/indexcmds.c:4230 +#: commands/indexcmds.c:4224 commands/indexcmds.c:4243 #, c-format msgid "%s." msgstr "%s." -#: commands/lockcmds.c:92 +#: commands/lockcmds.c:91 #, c-format msgid "cannot lock relation \"%s\"" msgstr "\"%s\" 릴레이션 잠그기 실패" -#: commands/matview.c:193 +#: commands/matview.c:206 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "" "구체화된 뷰의 자료가 정리되고 있을 때는 CONCURRENTLY 옵션을 사용할 수 없습니" "다." -#: commands/matview.c:199 gram.y:18306 +#: commands/matview.c:212 gram.y:18918 #, c-format msgid "%s and %s options cannot be used together" msgstr "%s 옵션과, %s 옵션을 함께 사용할 수 없습니다." -#: commands/matview.c:256 +#: commands/matview.c:269 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "\"%s\" 구체화된 뷰를 동시에 재갱신 할 수 없습니다." -#: commands/matview.c:259 +#: commands/matview.c:272 #, c-format msgid "" "Create a unique index with no WHERE clause on one or more columns of the " @@ -9708,7 +10140,7 @@ msgstr "" "구체화된 뷰의 하나 또는 하나 이상의 칼럼에 대한 WHERE 절 없는 고유 인덱스를 " "만드세요." -#: commands/matview.c:653 +#: commands/matview.c:666 #, c-format msgid "" "new data for materialized view \"%s\" contains duplicate rows without any " @@ -9717,7 +10149,7 @@ msgstr "" "\"%s\" 구체화된 뷰의 새 자료에 아무런 null 칼럼 없이 중복된 로우를 포함하고 " "있습니다" -#: commands/matview.c:655 +#: commands/matview.c:668 #, c-format msgid "Row: %s" msgstr "로우: %s" @@ -9783,7 +10215,7 @@ msgstr "슈퍼유저만 연산자 패밀리를 만들 수 있음" #: commands/opclasscmds.c:861 #, c-format msgid "must be superuser to alter an operator family" -msgstr "슈퍼유저만 연산자 패밀리를 변경할 수 있음" +msgstr "슈퍼유저만 연산자 패밀리를 바꿀 수 있음" #: commands/opclasscmds.c:919 #, c-format @@ -9929,35 +10361,35 @@ msgstr "연산자 번호 %d이(가) (%s,%s)에 대해 여러 번 표시됨" msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "%d(%s,%s) 연산자가 \"%s\" 연산자 패밀리에 이미 있음" -#: commands/opclasscmds.c:1566 +#: commands/opclasscmds.c:1589 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "%d(%s,%s) 함수가 \"%s\" 연산자 패밀리에 이미 있음" -#: commands/opclasscmds.c:1647 +#: commands/opclasscmds.c:1744 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "%d(%s,%s) 연산자가 \"%s\" 연산자 패밀리에 없음" -#: commands/opclasscmds.c:1687 +#: commands/opclasscmds.c:1784 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "%d(%s,%s) 함수가 \"%s\" 연산자 패밀리에 없음" -#: commands/opclasscmds.c:1718 +#: commands/opclasscmds.c:1815 #, c-format msgid "" -"operator class \"%s\" for access method \"%s\" already exists in schema \"%s" -"\"" +"operator class \"%s\" for access method \"%s\" already exists in schema " +"\"%s\"" msgstr "" "\"%s\" 연산자 클래스(\"%s\" 액세스 방법을 사용하는)는 이미 \"%s\" 스키마 안" "에 있습니다" -#: commands/opclasscmds.c:1741 +#: commands/opclasscmds.c:1838 #, c-format msgid "" -"operator family \"%s\" for access method \"%s\" already exists in schema \"%s" -"\"" +"operator family \"%s\" for access method \"%s\" already exists in schema " +"\"%s\"" msgstr "\"%s\" 연산자 패밀리(접근 방법: \"%s\")가 \"%s\" 스키마에 이미 있음" #: commands/operatorcmds.c:113 commands/operatorcmds.c:121 @@ -9965,7 +10397,7 @@ msgstr "\"%s\" 연산자 패밀리(접근 방법: \"%s\")가 \"%s\" 스키마에 msgid "SETOF type not allowed for operator argument" msgstr "SETOF 형식은 연산자 인자에 허용되지 않음" -#: commands/operatorcmds.c:154 commands/operatorcmds.c:481 +#: commands/operatorcmds.c:154 commands/operatorcmds.c:554 #, c-format msgid "operator attribute \"%s\" not recognized" msgstr "\"%s\" 연산자 속성을 처리할 수 없음" @@ -10005,53 +10437,70 @@ msgstr "%s 조인 예상 함수가 여러개 있습니다" msgid "join estimator function %s must return type %s" msgstr "%s 조인 예상 함수는 %s 자료형을 반환해야 함" -#: commands/operatorcmds.c:475 +#: commands/operatorcmds.c:388 parser/parse_oper.c:119 parser/parse_oper.c:637 +#: utils/adt/regproc.c:509 utils/adt/regproc.c:683 +#, c-format +msgid "operator does not exist: %s" +msgstr "연산자 없음: %s" + +#: commands/operatorcmds.c:396 parser/parse_oper.c:702 parser/parse_oper.c:815 +#, c-format +msgid "operator is only a shell: %s" +msgstr "연산자는 셸일 뿐임: %s" + +#: commands/operatorcmds.c:548 #, c-format msgid "operator attribute \"%s\" cannot be changed" msgstr "\"%s\" 연산자 속성 바꿀 수 없음" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9181 commands/tablecmds.c:17062 -#: commands/tablecmds.c:17097 commands/trigger.c:323 commands/trigger.c:1339 -#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 -#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 +#: commands/operatorcmds.c:615 commands/operatorcmds.c:622 +#: commands/operatorcmds.c:628 commands/operatorcmds.c:634 +#, c-format +msgid "operator attribute \"%s\" cannot be changed if it has already been set" +msgstr "이미 설정 되어 \"%s\" 연산자 속성 바꿀 수 없음" + +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 +#: commands/tablecmds.c:1740 commands/tablecmds.c:2340 +#: commands/tablecmds.c:3702 commands/tablecmds.c:6605 +#: commands/tablecmds.c:9637 commands/tablecmds.c:17772 +#: commands/tablecmds.c:17807 commands/trigger.c:316 commands/trigger.c:1332 +#: commands/trigger.c:1442 rewrite/rewriteDefine.c:268 +#: rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "액세스 권한 없음: \"%s\" 시스템 카탈로그임" -#: commands/policy.c:172 +#: commands/policy.c:169 #, c-format msgid "ignoring specified roles other than PUBLIC" msgstr "PUBLIC 아닌 지정한 모든 롤 무시함" -#: commands/policy.c:173 +#: commands/policy.c:170 #, c-format msgid "All roles are members of the PUBLIC role." msgstr "모든 롤이 PUBLIC 롤의 소속입니다." -#: commands/policy.c:606 +#: commands/policy.c:603 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK 옵션은 SELECT나 DELETE 작업에 적용 될 수 없음" -#: commands/policy.c:615 commands/policy.c:918 +#: commands/policy.c:612 commands/policy.c:915 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "INSERT 구문에 대해서만 WITH CHECK 옵션을 허용합니다" -#: commands/policy.c:689 commands/policy.c:1141 +#: commands/policy.c:686 commands/policy.c:1138 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "\"%s\" 정책이 \"%s\" 테이블에 이미 지정되어있습니다" -#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 +#: commands/policy.c:887 commands/policy.c:1166 commands/policy.c:1237 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "\"%s\" 정책이 \"%s\" 테이블에 없음" -#: commands/policy.c:908 +#: commands/policy.c:905 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "USING 구문만 SELECT, DELETE 작업에 쓸 수 있음" @@ -10068,83 +10517,82 @@ msgstr "" "엄격한 보안 제한 작업 내에서 WITH HOLD 옵션을 사용하는 커서는 만들 수 없음" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2844 utils/adt/xml.c:3014 +#: executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "\"%s\" 이름의 커서가 없음" -#: commands/prepare.c:75 +#: commands/prepare.c:72 #, c-format msgid "invalid statement name: must not be empty" msgstr "잘못된 명령문 이름: 비어있으면 안됩니다" -#: commands/prepare.c:230 commands/prepare.c:235 +#: commands/prepare.c:227 commands/prepare.c:232 #, c-format msgid "prepared statement is not a SELECT" msgstr "준비된 명령문이 SELECT 구문이 아닙니다." -#: commands/prepare.c:295 +#: commands/prepare.c:292 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "prepared statement \"%s\"에 매개 변수 수가 틀렸습니다" -#: commands/prepare.c:297 +#: commands/prepare.c:294 #, c-format msgid "Expected %d parameters but got %d." msgstr "%d 개의 매개 변수가 요구되는데 %d 개만이 존재합니다" -#: commands/prepare.c:330 +#: commands/prepare.c:327 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "??? parameter $%d of type %s 는 expected type %s 로 강요할 수 없다" -#: commands/prepare.c:414 +#: commands/prepare.c:411 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "\"%s\" 이름의 준비된 명령문(prepared statement)이 이미 있습니다" -#: commands/prepare.c:453 +#: commands/prepare.c:450 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "\"%s\" 이름의 준비된 명령문(prepared statement) 없음" -#: commands/proclang.c:68 +#: commands/proclang.c:66 #, c-format msgid "must be superuser to create custom procedural language" msgstr "슈퍼유저만 사용자 지정 프로시저 언어를 만들 수 있음" -#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 -#: postmaster/postmaster.c:1306 storage/file/fd.c:3911 -#: utils/init/miscinit.c:1815 +#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 +#: postmaster/postmaster.c:1210 utils/init/miscinit.c:1865 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "\"%s\" 매개 변수 구문이 잘못 되었습니다" -#: commands/publicationcmds.c:150 +#: commands/publicationcmds.c:143 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "발행용 \"%s\" 옵션에서 쓸 수 없는 값: \"%s\"" -#: commands/publicationcmds.c:164 +#: commands/publicationcmds.c:157 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "인식할 수 없는 발행 매개 변수: \"%s\"" -#: commands/publicationcmds.c:205 +#: commands/publicationcmds.c:198 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "CURRENT_SCHEMA 용 실제 스키마 없음" -#: commands/publicationcmds.c:502 +#: commands/publicationcmds.c:495 msgid "System columns are not allowed." msgstr "시스템 칼럼은 허용하지 않음." -#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 -#: commands/publicationcmds.c:531 +#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 +#: commands/publicationcmds.c:524 msgid "User-defined operators are not allowed." msgstr "사용자 정의 연산자는 허용하지 않음." -#: commands/publicationcmds.c:555 +#: commands/publicationcmds.c:548 msgid "" "Only columns, constants, built-in operators, built-in data types, built-in " "collations, and immutable built-in functions are allowed." @@ -10152,39 +10600,39 @@ msgstr "" "칼럼, 상수, 내장 연산자, 내장 자료형, 내장 문자 정렬 규칙, 불변형 내장 함수" "만 허용합니다." -#: commands/publicationcmds.c:567 +#: commands/publicationcmds.c:560 msgid "User-defined types are not allowed." msgstr "사용자 정의 자료형은 허용하지 않음." -#: commands/publicationcmds.c:570 +#: commands/publicationcmds.c:563 msgid "User-defined or built-in mutable functions are not allowed." msgstr "사용자 정의나 내장 함수가 mutable 인 경우 허용하지 않음." -#: commands/publicationcmds.c:573 +#: commands/publicationcmds.c:566 msgid "User-defined collations are not allowed." msgstr "사용자 정의 문자 정렬 규칙은 허용하지 않음." -#: commands/publicationcmds.c:583 +#: commands/publicationcmds.c:576 #, c-format msgid "invalid publication WHERE expression" msgstr "잘못된 구독 WHERE 절 구문" -#: commands/publicationcmds.c:636 +#: commands/publicationcmds.c:629 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "\"%s\" 릴레이션용 구독 WHERE 절은 사용할 수 없음" -#: commands/publicationcmds.c:638 +#: commands/publicationcmds.c:631 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "%s 값이 false 일때, 파티션 된 테이블에서는 WHERE 절을 사용할 수 없음." -#: commands/publicationcmds.c:709 commands/publicationcmds.c:723 +#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "\"%s.%s\" 릴레이션용 칼럼 목록을 사용할 수 없음(해당 구독: \"%s\")" -#: commands/publicationcmds.c:712 +#: commands/publicationcmds.c:705 #, c-format msgid "" "Column lists cannot be specified in publications containing FOR TABLES IN " @@ -10193,39 +10641,39 @@ msgstr "" "FOR TABLES IN SCHEMA 구문을 이용해서 구독을 만들 때는 칼럼 목록을 지정할 수 " "없습니다." -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:719 #, c-format msgid "" "Column lists cannot be specified for partitioned tables when %s is false." msgstr "" "%s 값이 false 일때, 파티션 상위 테이블을 위한 칼럼 목록은 지정할 수 없습니다." -#: commands/publicationcmds.c:761 +#: commands/publicationcmds.c:754 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "FOR ALL TABLES 옵션의 발행을 만드려면 슈퍼유저여야만 합니다" -#: commands/publicationcmds.c:832 +#: commands/publicationcmds.c:825 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "FOR TABLES IN SCHEMA 구문을 사용하는 구독은 슈퍼 유저만 쓸 수 있음" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:861 #, c-format -msgid "wal_level is insufficient to publish logical changes" -msgstr "wal_level 수준이 논리 변경 사항 발행을 하기에는 부족합니다" +msgid "\"wal_level\" is insufficient to publish logical changes" +msgstr "\"wal_level\" 수준이 논리 변경 사항 발행을 하기에는 부족합니다" -#: commands/publicationcmds.c:869 +#: commands/publicationcmds.c:862 #, c-format -msgid "Set wal_level to \"logical\" before creating subscriptions." -msgstr "wal_level 값을 \"logical\"로 바꾸고 구독을 만들세요" +msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." +msgstr "\"wal_level\" 값을 \"logical\"로 바꾸고 구독을 만들세요" -#: commands/publicationcmds.c:965 commands/publicationcmds.c:973 +#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "\"%s\" 매개 변수 값으로 false를 지정할 수 없음, 해당 구독: \"%s\"" -#: commands/publicationcmds.c:968 +#: commands/publicationcmds.c:961 #, c-format msgid "" "The publication contains a WHERE clause for partitioned table \"%s\", which " @@ -10234,21 +10682,21 @@ msgstr "" "이 구독은 \"%s\" 파티션 상위테이블 대상 WHERE 절을 포함하고 있습니다. \"%s\" " "값이 false 때는 이 조건을 허용하지 않습니다." -#: commands/publicationcmds.c:976 +#: commands/publicationcmds.c:969 #, c-format msgid "" "The publication contains a column list for partitioned table \"%s\", which " "is not allowed when \"%s\" is false." msgstr "" -"이 구독은 \"%s\" 파티션 상위테이블 대상 칼럼 목록을 포함하고 있습니다. \"%s" -"\" 값이 false 때는 이런 사용을 허용하지 않습니다." +"이 구독은 \"%s\" 파티션 상위테이블 대상 칼럼 목록을 포함하고 있습니다. " +"\"%s\" 값이 false 때는 이런 사용을 허용하지 않습니다." -#: commands/publicationcmds.c:1299 +#: commands/publicationcmds.c:1292 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "\"%s\" 구독에 스키마는 추가 할 수 없음" -#: commands/publicationcmds.c:1301 +#: commands/publicationcmds.c:1294 #, c-format msgid "" "Schemas cannot be added if any tables that specify a column list are already " @@ -10257,79 +10705,79 @@ msgstr "" "이미 해당 발행에 한 부분으로 어떤 테이블의 칼럼 목록을 사용하고 있다면, 그 테" "이블이 있는 그 스키마는 스키마 단위로 발행에 추가 할 수 없습니다." -#: commands/publicationcmds.c:1349 +#: commands/publicationcmds.c:1342 #, c-format msgid "must be superuser to add or set schemas" msgstr "스키마 지정은 슈퍼유져여야 합니다" -#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 +#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "\"%s\" 발행은 FOR ALL TABLES 옵션으로 정의되어 있습니다." -#: commands/publicationcmds.c:1360 +#: commands/publicationcmds.c:1353 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "FOR ALL TABLES 발행에 스키마를 추가하거나 뺄 수 없습니다." -#: commands/publicationcmds.c:1368 +#: commands/publicationcmds.c:1361 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "" "FOR ALL TABLES 발행에 새 테이블을 추가하거나 한 테이블을 뺄 수 없습니다." -#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 -#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 +#: commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 #, c-format msgid "publication \"%s\" does not exist" msgstr "\"%s\" 이름의 발행은 없습니다" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 +#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "\"%s\" 테이블 용 WHERE 절이 충돌나거나, 중복되었음" -#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669 +#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "\"%s\" 테이블 용 칼럼 목록이 충돌나거나, 중복되었음" -#: commands/publicationcmds.c:1803 +#: commands/publicationcmds.c:1796 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "ALTER PUBLICATION ... DROP 구문에서는 칼럼 목록을 지정하지 말아야함" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1808 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "\"%s\" 릴레이션은 해당 발행에 포함되어 있지 않습니다" -#: commands/publicationcmds.c:1822 +#: commands/publicationcmds.c:1815 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "발행에서 테이블을 뺄 때, WHERE 절은 사용할 수 없습니다." -#: commands/publicationcmds.c:1882 +#: commands/publicationcmds.c:1875 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "\"%s\" 스키마의 테이블들은 해당 발행에 포함되어 있지 않습니다" -#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932 +#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "\"%s\" 발행의 소유주를 바꿀 권한이 없습니다" -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:1920 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "FOR ALL TABLES 옵션용 발행의 소유주는 슈퍼유저여야만 합니다" -#: commands/publicationcmds.c:1934 +#: commands/publicationcmds.c:1927 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "FOR ALL TABLES IN SCHEMA 구독의 소유주는 슈퍼유저여야만 합니다" -#: commands/publicationcmds.c:2000 +#: commands/publicationcmds.c:1993 #, c-format msgid "publication with OID %u does not exist" msgstr "OID %u 발행 없음" @@ -10376,158 +10824,158 @@ msgstr "이 객체 형태는 보안 라벨을 지원하지 않음" msgid "cannot set security label on relation \"%s\"" msgstr "\"%s\" 릴레이션에 보안 라벨을 지정할 수 없음" -#: commands/sequence.c:754 +#: commands/sequence.c:748 #, c-format msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" msgstr "nextval: \"%s\" 시퀀스의 최대값(%lld)이 되었습니다" -#: commands/sequence.c:773 +#: commands/sequence.c:767 #, c-format msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" msgstr "nextval: \"%s\" 시퀀스의 최소값(%lld)이 되었습니다" -#: commands/sequence.c:891 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "\"%s\" 시퀀스의 currval 값이 현재 세션에 지정되어 있지 않습니다" -#: commands/sequence.c:910 commands/sequence.c:916 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "이 세션에는 lastval 값이 아직까지 지정되지 않았습니다" -#: commands/sequence.c:996 +#: commands/sequence.c:991 #, c-format msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" msgstr "setval: %lld 값은 \"%s\" 시퀀스의 범위(%lld..%lld)를 벗어났습니다" -#: commands/sequence.c:1365 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "잘못된 SEQUENCE NAME 시퀀스 옵션" -#: commands/sequence.c:1391 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "식별 칼럼에 쓸 자료형은 smallint, integer, bigint 자료형만 쓸 수 있음" -#: commands/sequence.c:1392 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "시퀀스에 쓸 자료형은 smallint, integer, bigint 자료형만 쓸 수 있음" -#: commands/sequence.c:1426 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENT 값은 0(zero)이 될 수 없습니다" -#: commands/sequence.c:1474 +#: commands/sequence.c:1466 #, c-format msgid "MAXVALUE (%lld) is out of range for sequence data type %s" msgstr "MAXVALUE (%lld) 값이 허용 범위 밖임, 해당 시퀀스 자료형: %s" -#: commands/sequence.c:1506 +#: commands/sequence.c:1498 #, c-format msgid "MINVALUE (%lld) is out of range for sequence data type %s" msgstr "MAXVALUE (%lld) 값이 허용 범위 밖임, 해당 시퀀스 자료형: %s" -#: commands/sequence.c:1514 +#: commands/sequence.c:1506 #, c-format msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" msgstr "MINVALUE (%lld) 값은 MAXVALUE (%lld) 값보다 작아야 합니다" -#: commands/sequence.c:1535 +#: commands/sequence.c:1527 #, c-format msgid "START value (%lld) cannot be less than MINVALUE (%lld)" msgstr "START 값(%lld)은 MINVALUE(%lld)보다 작을 수 없음" -#: commands/sequence.c:1541 +#: commands/sequence.c:1533 #, c-format msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "START 값(%lld)은 MAXVALUE(%lld)보다 클 수 없음" -#: commands/sequence.c:1565 +#: commands/sequence.c:1557 #, c-format msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" msgstr "RESTART 값(%lld)은 MINVALUE(%lld)보다 작을 수 없음" -#: commands/sequence.c:1571 +#: commands/sequence.c:1563 #, c-format msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "RESTART 값(%lld)은 MAXVALUE(%lld)보다 클 수 없음" -#: commands/sequence.c:1582 +#: commands/sequence.c:1574 #, c-format msgid "CACHE (%lld) must be greater than zero" msgstr "CACHE (%lld) 값은 0(zero)보다 커야 합니다" -#: commands/sequence.c:1618 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "잘못된 OWNED BY 옵션" -#: commands/sequence.c:1619 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "OWNED BY 테이블.열 또는 OWNED BY NONE을 지정하십시오." -#: commands/sequence.c:1644 +#: commands/sequence.c:1636 #, c-format msgid "sequence cannot be owned by relation \"%s\"" msgstr "\"%s\" 릴레이션의 소속 시퀀스가 될 수 없음" -#: commands/sequence.c:1652 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "시퀀스 및 이 시퀀스가 연결된 테이블의 소유주가 같아야 함" -#: commands/sequence.c:1656 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "시퀀스 및 이 시퀀스가 연결된 테이블이 같은 스키마에 있어야 함" -#: commands/sequence.c:1678 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "식별 시퀀스의 소유주는 바꿀 수 없음" -#: commands/sequence.c:1679 commands/tablecmds.c:13891 -#: commands/tablecmds.c:16488 +#: commands/sequence.c:1671 commands/tablecmds.c:14486 +#: commands/tablecmds.c:17181 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "\"%s\" 시퀀스는 \"%s\" 테이블에 종속되어 있습니다." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1887 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "CREATE STATISTICS 명령에서는 하나의 릴레이션만 사용할 수 있음" -#: commands/statscmds.c:136 +#: commands/statscmds.c:133 #, c-format msgid "cannot define statistics for relation \"%s\"" msgstr "\"%s\" 릴레이션용 통계정보를 정의할 수 없음" -#: commands/statscmds.c:190 +#: commands/statscmds.c:187 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "\"%s\" 이름의 통계정보 개체가 이미 있습니다, 건너뜀" -#: commands/statscmds.c:198 +#: commands/statscmds.c:195 #, c-format msgid "statistics object \"%s\" already exists" msgstr "\"%s\" 이름의 통계정보 개체가 이미 있음" -#: commands/statscmds.c:209 +#: commands/statscmds.c:206 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "통계정보 개체에서는 %d개보다 많은 칼럼을 사용할 수 없습니다" -#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307 +#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 #, c-format msgid "statistics creation on system columns is not supported" msgstr "시스템 칼럼에 대한 통계정보 개체 만들기는 지원하지 않습니다" -#: commands/statscmds.c:257 commands/statscmds.c:280 +#: commands/statscmds.c:254 commands/statscmds.c:277 #, c-format msgid "" "column \"%s\" cannot be used in statistics because its type %s has no " @@ -10536,7 +10984,7 @@ msgstr "" "\"%s\" 칼럼은 사용자 통계정보 수집이 불가능합니다. %s 자료형은 기본 btree 연" "산자 클래스를 정의하지 않았습니다" -#: commands/statscmds.c:324 +#: commands/statscmds.c:321 #, c-format msgid "" "expression cannot be used in multivariate statistics because its type %s has " @@ -10545,7 +10993,7 @@ msgstr "" "%s 자료형에는 기본 btree 연산자 클래스가 없어서, 표현식은 다변적인 통계 정보" "에서 사용될 수 없음" -#: commands/statscmds.c:345 +#: commands/statscmds.c:342 #, c-format msgid "" "when building statistics on a single expression, statistics kinds may not be " @@ -10553,108 +11001,109 @@ msgid "" msgstr "" "단일 표현식으로 통계 정보를 만들 때, 통계 정보 종류는 지정할 수 없습니다." -#: commands/statscmds.c:374 +#: commands/statscmds.c:371 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "알 수 없는 통계정보 종류 \"%s\"" -#: commands/statscmds.c:403 +#: commands/statscmds.c:400 #, c-format msgid "extended statistics require at least 2 columns" msgstr "확장된 통계정보는 두 개 이상의 칼럼이 필요합니다." -#: commands/statscmds.c:421 +#: commands/statscmds.c:418 #, c-format msgid "duplicate column name in statistics definition" msgstr "통계정보 정의에서 사용하는 칼럼이 중복되었습니다" -#: commands/statscmds.c:456 +#: commands/statscmds.c:453 #, c-format msgid "duplicate expression in statistics definition" msgstr "통계정보 정의에서 표현식이 중복되었습니다" -#: commands/statscmds.c:619 commands/tablecmds.c:8180 +#: commands/statscmds.c:628 commands/tablecmds.c:8620 #, c-format msgid "statistics target %d is too low" msgstr "대상 통계값(%d)이 너무 낮습니다" -#: commands/statscmds.c:627 commands/tablecmds.c:8188 +#: commands/statscmds.c:636 commands/tablecmds.c:8628 #, c-format msgid "lowering statistics target to %d" msgstr "%d 값으로 대상 통계값을 낮춥니다" -#: commands/statscmds.c:650 +#: commands/statscmds.c:660 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "\"%s.%s\" 통계정보 개체 없음, 무시함" -#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359 +#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "알 수 없는 구독 매개 변수: \"%s\"" -#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:398 +#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:404 #, c-format msgid "unrecognized origin value: \"%s\"" msgstr "알 수 없는 오리진 값: \"%s\"" -#: commands/subscriptioncmds.c:350 +#: commands/subscriptioncmds.c:363 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "잘못된 WAL 위치 (LSN): %s" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 -#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 -#: commands/subscriptioncmds.c:426 +#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 +#: commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 +#: commands/subscriptioncmds.c:439 #, 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:416 commands/subscriptioncmds.c:432 +#: commands/subscriptioncmds.c:429 commands/subscriptioncmds.c:445 #, c-format msgid "subscription with %s must also set %s" msgstr "%s 구독하려면, %s 설정이 필요함" -#: commands/subscriptioncmds.c:494 +#: commands/subscriptioncmds.c:506 #, c-format msgid "could not receive list of publications from the publisher: %s" msgstr "발행자에게서 발행 목록을 받을 수 없음: %s" -#: commands/subscriptioncmds.c:526 +#: commands/subscriptioncmds.c:538 #, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" msgstr[0] "해당 발행자에게는 \"%s\" 이름의 발행은 없습니다" -#: commands/subscriptioncmds.c:614 +#: commands/subscriptioncmds.c:626 #, c-format msgid "permission denied to create subscription" msgstr "구독을 만들기 위한 권한 없음" -#: commands/subscriptioncmds.c:615 +#: commands/subscriptioncmds.c:627 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "\"%s\" 롤이 부여된 사용자만 구독을 만들 수 있습니다." -#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1309 replication/logical/worker.c:4616 +#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 +#: commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 +#: replication/logical/worker.c:4503 #, c-format msgid "could not connect to the publisher: %s" msgstr "발행 서버에 연결 할 수 없음: %s" -#: commands/subscriptioncmds.c:816 +#: commands/subscriptioncmds.c:829 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "\"%s\" 이름의 복제 슬롯이 없습니다" -#: commands/subscriptioncmds.c:828 +#: commands/subscriptioncmds.c:841 #, c-format msgid "subscription was created, but is not connected" msgstr "구독을 만들었지만, 발행 서버로 접속은 안했습니다." -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:842 #, c-format msgid "" "To initiate replication, you must manually create the replication slot, " @@ -10663,23 +11112,29 @@ msgstr "" "복제 초기화 작업은 먼저 수동으로 복제 슬롯을 만들고, 구독을 활성화하고, 해당 " "구독을 새로고침 하는 순서로 진행합니다." -#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1502 -#: commands/subscriptioncmds.c:1885 utils/cache/lsyscache.c:3642 +#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 +#: commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 #, c-format msgid "subscription \"%s\" does not exist" msgstr "\"%s\" 이름의 구독은 없습니다." -#: commands/subscriptioncmds.c:1152 +#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 #, c-format msgid "cannot set %s for enabled subscription" msgstr "구독 활성화를 위해서는 %s 설정은 할 수 없음" -#: commands/subscriptioncmds.c:1227 +#: commands/subscriptioncmds.c:1233 +#, c-format +msgid "" +"cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "슬롯 이름 없이는 구독에 \"%s\" 옵션을 지정할 수 없음" + +#: commands/subscriptioncmds.c:1279 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "슬롯 이름 없이는 구독을 활성화 할 수 없음" -#: commands/subscriptioncmds.c:1271 commands/subscriptioncmds.c:1322 +#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 #, c-format msgid "" "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" @@ -10687,14 +11142,14 @@ msgstr "" "비활성화 상태인 구독에 대해서는 ALTER SUBSCRIPTION 명령으로 갱신할 수 없습니" "다" -#: commands/subscriptioncmds.c:1272 +#: commands/subscriptioncmds.c:1324 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "" "ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false) 명령을 사용" "하세요." -#: commands/subscriptioncmds.c:1281 commands/subscriptioncmds.c:1336 +#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 #, c-format msgid "" "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase " @@ -10703,7 +11158,7 @@ msgstr "" "two_phase 값이 true인 상태에서는 ALTER SUBSCRIPTION 명령에서 refresh나 " "copy_data 옵션을 사용할 수 없습니다." -#: commands/subscriptioncmds.c:1282 +#: commands/subscriptioncmds.c:1334 #, c-format msgid "" "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with " @@ -10713,13 +11168,7 @@ msgstr "" "copy_data = false 구문을 추가하거나 DROP/CREATE SUBSCRIPTION 작업을 하세요." #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1324 -#, c-format -msgid "Use %s instead." -msgstr "대신에 %s 명령을 사용하십시오." - -#. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1338 +#: commands/subscriptioncmds.c:1390 #, c-format msgid "" "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE " @@ -10728,7 +11177,7 @@ msgstr "" "%s 명령에서 refresh = false 또는 copy_data = false 옵션을 추가하거나, DROP/" "CREATE SUBSCRIPTION 작업을 하세요." -#: commands/subscriptioncmds.c:1360 +#: commands/subscriptioncmds.c:1412 #, c-format msgid "" "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" @@ -10736,7 +11185,7 @@ msgstr "" "비활성화 상태인 구독에 대해서는 ALTER SUBSCRIPTION ... REFRESH 명령을 허용하" "지 않습니다." -#: commands/subscriptioncmds.c:1385 +#: commands/subscriptioncmds.c:1437 #, c-format msgid "" "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase " @@ -10745,7 +11194,7 @@ msgstr "" "two_phase 값이 true인 상태에서는 ALTER SUBSCRIPTION 명령에서 copy_data 옵션" "을 사용할 수 없습니다." -#: commands/subscriptioncmds.c:1386 +#: commands/subscriptioncmds.c:1438 #, c-format msgid "" "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/" @@ -10754,38 +11203,38 @@ msgstr "" "ALTER SUBSCRIPTION ... REFRESH 다음 copy_data = false 구문을 추가하거나 DROP/" "CREATE SUBSCRIPTION 작업을 하세요." -#: commands/subscriptioncmds.c:1421 +#: commands/subscriptioncmds.c:1473 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "" "WAL 위치 (LSN %X/%X)를 건너뛰려면, 그 값이 원본 LSN %X/%X 보다 커야합니다" -#: commands/subscriptioncmds.c:1506 +#: commands/subscriptioncmds.c:1594 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "\"%s\" 구독 없음, 건너뜀" -#: commands/subscriptioncmds.c:1775 +#: commands/subscriptioncmds.c:1863 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "발행에서 \"%s\" 복제 슬롯을 삭제했음" -#: commands/subscriptioncmds.c:1784 commands/subscriptioncmds.c:1792 +#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "발행용 \"%s\" 복제 슬롯을 삭제 할 수 없음: %s" -#: commands/subscriptioncmds.c:1917 +#: commands/subscriptioncmds.c:2005 #, c-format msgid "subscription with OID %u does not exist" msgstr "OID %u 구독 없음" -#: commands/subscriptioncmds.c:1988 commands/subscriptioncmds.c:2113 +#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "해당 발행자로부터 복제 테이블 목록을 구할 수 없음: %s" -#: commands/subscriptioncmds.c:2024 +#: commands/subscriptioncmds.c:2112 #, c-format msgid "" "subscription \"%s\" requested copy_data with origin = NONE but might copy " @@ -10794,7 +11243,7 @@ msgstr "" "\"%s\" 구독이 copy_data 옵션과 origin = NONE 설정을 요구했지만, copy 자료가 " "다른 오리진 것입니다." -#: commands/subscriptioncmds.c:2026 +#: commands/subscriptioncmds.c:2114 #, c-format msgid "" "The subscription being created subscribes to a publication (%s) that " @@ -10803,8 +11252,9 @@ msgid_plural "" "The subscription being created subscribes to publications (%s) that contain " "tables that are written to by other subscriptions." msgstr[0] "" +"만들어질 구독은 다른 구독에 의해 쓰여진 테이블이 포함된 발행(%s)을 구독합니다." -#: commands/subscriptioncmds.c:2029 +#: commands/subscriptioncmds.c:2117 #, c-format msgid "" "Verify that initial data copied from the publisher tables did not come from " @@ -10812,8 +11262,8 @@ msgid "" msgstr "" "복사된 초기 자료가 해당 발행의 다른 오리진에서 복사되었는지 확인하세요." -#: commands/subscriptioncmds.c:2135 replication/logical/tablesync.c:876 -#: replication/pgoutput/pgoutput.c:1115 +#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 +#: replication/pgoutput/pgoutput.c:1143 #, c-format msgid "" "cannot use different column lists for table \"%s.%s\" in different " @@ -10822,15 +11272,15 @@ msgstr "" "서로 다른 발행에서 \"%s.%s\" 테이블에 대한 서로 다른 칼럼 목록을 사용할 수 없" "음." -#: commands/subscriptioncmds.c:2185 +#: commands/subscriptioncmds.c:2273 #, c-format msgid "" -"could not connect to publisher when attempting to drop replication slot \"%s" -"\": %s" +"could not connect to publisher when attempting to drop replication slot " +"\"%s\": %s" msgstr "\"%s\" 복제 슬롯을 삭제하는 중에는 발행 서버로 접속할 수 없음: %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2188 +#: commands/subscriptioncmds.c:2276 #, c-format msgid "" "Use %s to disable the subscription, and then use %s to disassociate it from " @@ -10839,189 +11289,194 @@ msgstr "" "구독을 중지하려면 %s 명령을 한 뒤, 슬롯 관계를 끊기 위해 %s 명령을 사용하세" "요." -#: commands/subscriptioncmds.c:2219 +#: commands/subscriptioncmds.c:2307 #, c-format msgid "publication name \"%s\" used more than once" msgstr "\"%s\" 발행 이름이 여러 번 사용 됨" -#: commands/subscriptioncmds.c:2263 +#: commands/subscriptioncmds.c:2351 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "\"%s\" 이름의 발행이 \"%s\" 구독 안에 이미 있습니다" -#: commands/subscriptioncmds.c:2277 +#: commands/subscriptioncmds.c:2365 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "\"%s\" 발행이 \"%s\" 구독 안에 없습니다" -#: commands/subscriptioncmds.c:2288 +#: commands/subscriptioncmds.c:2376 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "한 구독안에 있는 모든 발행은 지울 수 없음" -#: commands/subscriptioncmds.c:2345 +#: commands/subscriptioncmds.c:2433 #, c-format msgid "%s requires a Boolean value or \"parallel\"" msgstr "%s 값은 불리언 값 또는 \"parallel\" 이어야 합니다." -#: commands/tablecmds.c:246 commands/tablecmds.c:288 +#: commands/tablecmds.c:255 commands/tablecmds.c:297 #, c-format msgid "table \"%s\" does not exist" msgstr "\"%s\" 테이블 없음" -#: commands/tablecmds.c:247 commands/tablecmds.c:289 +#: commands/tablecmds.c:256 commands/tablecmds.c:298 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "\"%s\" 테이블 없음, 무시함" -#: commands/tablecmds.c:249 commands/tablecmds.c:291 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 msgid "Use DROP TABLE to remove a table." msgstr "테이블을 삭제하려면, DROP TABLE 명령을 사용하세요." -#: commands/tablecmds.c:252 +#: commands/tablecmds.c:261 #, c-format msgid "sequence \"%s\" does not exist" msgstr "\"%s\" 시퀀스 없음" -#: commands/tablecmds.c:253 +#: commands/tablecmds.c:262 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "\"%s\" 시퀀스 없음, 무시함" -#: commands/tablecmds.c:255 +#: commands/tablecmds.c:264 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "시퀀스를 삭제하려면 DROP SEQUENCE 명령을 사용하세요." -#: commands/tablecmds.c:258 +#: commands/tablecmds.c:267 #, c-format msgid "view \"%s\" does not exist" msgstr "\"%s\" 뷰(view) 없음" -#: commands/tablecmds.c:259 +#: commands/tablecmds.c:268 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "\"%s\" 뷰(view) 없음, 무시함" -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:270 msgid "Use DROP VIEW to remove a view." msgstr "뷰를 삭제하려면, DROP VIEW 명령을 사용하세요." -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:273 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "\"%s\" 이름의 구체화된 뷰가 없음" -#: commands/tablecmds.c:265 +#: commands/tablecmds.c:274 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "\"%s\" 구체화된 뷰 없음, 건너뜀" -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:276 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "구체화된 뷰를 삭제하려면, DROP MATERIALIZED VIEW 명령을 사용하세요." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:18978 -#: parser/parse_utilcmd.c:2245 +#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19783 +#: parser/parse_utilcmd.c:2251 #, c-format msgid "index \"%s\" does not exist" msgstr "\"%s\" 인덱스 없음" -#: commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:280 commands/tablecmds.c:304 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "\"%s\" 인덱스 없음, 무시함" -#: commands/tablecmds.c:273 commands/tablecmds.c:297 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 msgid "Use DROP INDEX to remove an index." msgstr "인덱스를 삭제하려면, DROP INDEX 명령을 사용하세요." -#: commands/tablecmds.c:278 +#: commands/tablecmds.c:287 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\" 개체는 자료형이 아님" -#: commands/tablecmds.c:279 +#: commands/tablecmds.c:288 msgid "Use DROP TYPE to remove a type." msgstr "자료형을 삭제하려면 DROP TYPE 명령을 사용하세요." -#: commands/tablecmds.c:282 commands/tablecmds.c:13730 -#: commands/tablecmds.c:16193 +#: commands/tablecmds.c:291 commands/tablecmds.c:14325 +#: commands/tablecmds.c:16886 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "\"%s\" 외부 테이블 없음" -#: commands/tablecmds.c:283 +#: commands/tablecmds.c:292 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "\"%s\" 외부 테이블 없음, 건너뜀" -#: commands/tablecmds.c:285 +#: commands/tablecmds.c:294 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "외부 테이블을 삭제하려면, DROP FOREIGN TABLE 명령을 사용하세요." -#: commands/tablecmds.c:700 +#: commands/tablecmds.c:734 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT 옵션은 임시 테이블에서만 사용될 수 있습니다" -#: commands/tablecmds.c:731 +#: commands/tablecmds.c:765 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "보안 제한 작업 내에서 임시 테이블을 만들 수 없음" -#: commands/tablecmds.c:767 commands/tablecmds.c:15038 +#: commands/tablecmds.c:801 commands/tablecmds.c:15745 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "\"%s\" 테이블이 여러 번 상속됨" -#: commands/tablecmds.c:955 -#, c-format -msgid "" -"specifying a table access method is not supported on a partitioned table" -msgstr "테이블 접근 방법은 파티션된 테이블에서는 사용할 수 없음" - -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1067 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\" 파티션 된 테이블 아님" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1161 #, c-format msgid "cannot partition using more than %d columns" msgstr "%d개보다 많은 칼럼을 이용해서 파티션할 수 없음" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1217 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "\"%s\" 파티션된 테이블의 외부 파티션을 만들 수 없음" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1219 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "\"%s\" 테이블은 유니크 인덱스를 포함 하고 있음." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1338 commands/tablecmds.c:13341 +#, c-format +msgid "too many array dimensions" +msgstr "너무 많은 배열 차수" + +#: commands/tablecmds.c:1343 parser/parse_clause.c:774 +#: parser/parse_relation.c:1912 +#, c-format +msgid "column \"%s\" cannot be declared SETOF" +msgstr "\"%s\" 칼럼은 SETOF를 지정할 수 없습니다" + +#: commands/tablecmds.c:1489 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY 명령은 하나의 인덱스만 지울 수 있습니다" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1493 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY 명령에서는 CASCADE 옵션을 사용할 수 없음" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1597 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "" "\"%s\" 파티션된 테이블의 인덱스에 대해서는 CONCURRENTLY 옵션을 사용할 수 없음" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1885 #, c-format msgid "cannot truncate only a partitioned table" msgstr "파티션 된 테이블만 truncate 할 수 없음" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1886 #, c-format msgid "" "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions " @@ -11030,38 +11485,38 @@ msgstr "" "ONLY 옵션을 빼고 사용하거나, 하위 파티션 테이블을 대상으로 직접 TRUNCATE " "ONLY 명령을 사용하세요." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1959 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "\"%s\" 개체의 자료도 함께 삭제됨" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2320 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "\"%s\" 외부 테이블에 자료를 비울 수 없음" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2377 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "다른 세션의 임시 테이블 자료는 비울(truncate) 수 없습니다" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14935 +#: commands/tablecmds.c:2606 commands/tablecmds.c:15642 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "\"%s\" 파티션 된 테이블로부터 상속할 수 없습니다" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2611 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "\"%s\" 파티션 테이블입니다, 그래서 상속 대상이 될 수 없습니다" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2475 -#: parser/parse_utilcmd.c:2617 +#: commands/tablecmds.c:2619 parser/parse_utilcmd.c:2481 +#: parser/parse_utilcmd.c:2623 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "상속할 \"%s\" 릴레이션(relation)은 테이블도, 외부 테이블도 아닙니다" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2631 #, c-format msgid "" "cannot create a temporary relation as partition of permanent relation \"%s\"" @@ -11069,74 +11524,25 @@ msgstr "" "\"%s\" 테이블은 일반 테이블입니다. 임시 테이블을 이것의 파티션 테이블로 만들 " "수 없습니다" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14914 +#: commands/tablecmds.c:2640 commands/tablecmds.c:15621 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "\"%s\" 임시 테이블입니다, 그래서 상속 대상이 될 수 없습니다" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14922 +#: commands/tablecmds.c:2650 commands/tablecmds.c:15629 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "다른 세션의 임시 테이블입니다, 그래서 상속 대상이 될 수 없습니다" -#: commands/tablecmds.c:2585 -#, c-format -msgid "merging multiple inherited definitions of column \"%s\"" -msgstr "\"%s\" 칼럼이 중복되어 상속됩니다." - -#: commands/tablecmds.c:2597 -#, c-format -msgid "inherited column \"%s\" has a type conflict" -msgstr "상위 테이블에서 지정한 \"%s\" 칼럼의 자료형들이 일치하지 않습니다" - -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 -#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 -#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 -#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 -#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 -#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:223 -#, c-format -msgid "%s versus %s" -msgstr "%s 형과 %s 형" - -#: commands/tablecmds.c:2612 -#, c-format -msgid "inherited column \"%s\" has a collation conflict" -msgstr "상속 받은 \"%s\" 칼럼의 정렬규칙에서 충돌합니다." - -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 -#, c-format -msgid "\"%s\" versus \"%s\"" -msgstr "\"%s\" 형과 \"%s\" 형" - -#: commands/tablecmds.c:2626 -#, c-format -msgid "inherited column \"%s\" has a storage parameter conflict" -msgstr "상속 받은 \"%s\" 칼럼의 스토리지 설정값에서 충돌합니다" - -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 -#, c-format -msgid "column \"%s\" has a compression method conflict" -msgstr "\"%s\" 칼럼의 압축 방법이 충돌합니다" - -#: commands/tablecmds.c:2661 -#, c-format -msgid "inherited column \"%s\" has a generation conflict" -msgstr "상속된 \"%s\" 칼럼에 대한 생성 충돌 발생" - -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12456 parser/parse_utilcmd.c:1298 -#: parser/parse_utilcmd.c:1341 parser/parse_utilcmd.c:1740 -#: parser/parse_utilcmd.c:1848 +#: commands/tablecmds.c:2791 commands/tablecmds.c:2845 +#: commands/tablecmds.c:13024 parser/parse_utilcmd.c:1265 +#: parser/parse_utilcmd.c:1308 parser/parse_utilcmd.c:1735 +#: parser/parse_utilcmd.c:1843 #, c-format msgid "cannot convert whole-row table reference" msgstr "전체 로우 테이블 참조형으로 변환할 수 없음" -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1299 +#: commands/tablecmds.c:2792 parser/parse_utilcmd.c:1266 #, c-format msgid "" "Generation expression for column \"%s\" contains a whole-row reference to " @@ -11145,85 +11551,55 @@ msgstr "" "\"%s\" 칼럼용 미리 계산된 칼럼 생성식에 \"%s\" 테이블 전체 로우 참조가 있습니" "다" -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1342 +#: commands/tablecmds.c:2846 parser/parse_utilcmd.c:1309 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "\"%s\" 제약조건에 \"%s\" 테이블 전체 로우 참조가 있습니다" -#: commands/tablecmds.c:2901 -#, c-format -msgid "merging column \"%s\" with inherited definition" -msgstr "\"%s\" 칼럼을 상속된 정의와 병합하는 중" - -#: commands/tablecmds.c:2905 -#, c-format -msgid "moving and merging column \"%s\" with inherited definition" -msgstr "\"%s\" 칼럼을 상속된 정의와 이동, 병합하는 중" - -#: commands/tablecmds.c:2906 -#, c-format -msgid "User-specified column moved to the position of the inherited column." -msgstr "사용자 지정 칼럼이 상속된 칼럼의 위치로 이동되었습니다" - -#: commands/tablecmds.c:2917 -#, c-format -msgid "column \"%s\" has a type conflict" -msgstr "\"%s\" 칼럼의 자료형이 충돌합니다" - -#: commands/tablecmds.c:2933 -#, c-format -msgid "column \"%s\" has a collation conflict" -msgstr "\"%s\" 칼럼의 정렬규칙이 충돌합니다" - -#: commands/tablecmds.c:2953 -#, c-format -msgid "column \"%s\" has a storage parameter conflict" -msgstr "\"%s\" 칼럼의 스토리지 설정값이 충돌합니다" - -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:2956 commands/tablecmds.c:3227 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "상속 받은 \"%s\" 칼럼은 미리 계산된 칼럼인데, 기본값이 설정되어 있음" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:2961 commands/tablecmds.c:3232 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "" "상속 받은 \"%s\" 칼럼은 미리 계산된 칼럼인데, 일련번호 식별 옵션이 있음" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:2969 commands/tablecmds.c:3240 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "" "\"%s\" 칼럼은 상속 받은 칼럼임. 미리 계산된 칼럼의 생성식을 사용할 수 없음" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:2971 commands/tablecmds.c:3242 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "" "하위 테이블의 계산된 칼럼은 상위 테이블에서 이미 계산된 칼럼이어야 합니다." -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3017 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "상속 받는 \"%s\" 칼럼에 지정된 미리 계산된 생성식이 충돌합니다" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3019 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "이 충돌을 피하려면, 명시적으로 미리 계산된 생성식을 지정하십시오." -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3023 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "상속 받는 \"%s\" 칼럼의 default 값이 충돌함" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3025 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "이 충돌을 피하려면, default 값을 바르게 지정하십시오." -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3080 #, c-format msgid "" "check constraint name \"%s\" appears multiple times but with different " @@ -11231,109 +11607,188 @@ msgid "" msgstr "" "\"%s\" 체크 제약 조건 이름이 여러 번 나타나지만, 각각 다른 식으로 되어있음" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3131 #, c-format -msgid "cannot move temporary tables of other sessions" -msgstr "다른 세션의 임시 테이블들은 이동할 수 없습니다" +msgid "merging column \"%s\" with inherited definition" +msgstr "\"%s\" 칼럼을 상속된 정의와 병합하는 중" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3135 #, c-format -msgid "cannot rename column of typed table" -msgstr "칼럼 이름을 바꿀 수 없음" +msgid "moving and merging column \"%s\" with inherited definition" +msgstr "\"%s\" 칼럼을 상속된 정의와 이동, 병합하는 중" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3136 #, c-format -msgid "cannot rename columns of relation \"%s\"" -msgstr "\"%s\" 릴레이션의 칼럼 이름을 바꿀 수 없음" +msgid "User-specified column moved to the position of the inherited column." +msgstr "사용자 지정 칼럼이 상속된 칼럼의 위치로 이동되었습니다" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3148 #, c-format -msgid "inherited column \"%s\" must be renamed in child tables too" -msgstr "하위 테이블에서도 상속된 \"%s\" 칼럼의 이름을 바꾸어야 함" +msgid "column \"%s\" has a type conflict" +msgstr "\"%s\" 칼럼의 자료형이 충돌합니다" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3150 commands/tablecmds.c:3184 +#: commands/tablecmds.c:3200 commands/tablecmds.c:3307 +#: commands/tablecmds.c:3340 commands/tablecmds.c:3356 +#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 +#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 +#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 +#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 +#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 +#: parser/parse_param.c:223 #, c-format -msgid "cannot rename system column \"%s\"" -msgstr "\"%s\" 이름의 칼럼은 시스템 칼럼입니다, 이름을 바꿀 수 없습니다" +msgid "%s versus %s" +msgstr "%s 형과 %s 형" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3162 +#, c-format +msgid "column \"%s\" has a collation conflict" +msgstr "\"%s\" 칼럼의 정렬규칙이 충돌합니다" + +#: commands/tablecmds.c:3164 commands/tablecmds.c:3326 +#: commands/tablecmds.c:7080 +#, c-format +msgid "\"%s\" versus \"%s\"" +msgstr "\"%s\" 형과 \"%s\" 형" + +#: commands/tablecmds.c:3182 +#, c-format +msgid "column \"%s\" has a storage parameter conflict" +msgstr "\"%s\" 칼럼의 스토리지 설정값이 충돌합니다" + +#: commands/tablecmds.c:3198 commands/tablecmds.c:3354 +#, c-format +msgid "column \"%s\" has a compression method conflict" +msgstr "\"%s\" 칼럼의 압축 방법이 충돌합니다" + +#: commands/tablecmds.c:3293 +#, c-format +msgid "merging multiple inherited definitions of column \"%s\"" +msgstr "\"%s\" 칼럼이 중복되어 상속됩니다." + +#: commands/tablecmds.c:3305 +#, c-format +msgid "inherited column \"%s\" has a type conflict" +msgstr "상위 테이블에서 지정한 \"%s\" 칼럼의 자료형들이 일치하지 않습니다" + +#: commands/tablecmds.c:3324 +#, c-format +msgid "inherited column \"%s\" has a collation conflict" +msgstr "상속 받은 \"%s\" 칼럼의 정렬규칙에서 충돌합니다." + +#: commands/tablecmds.c:3338 +#, c-format +msgid "inherited column \"%s\" has a storage parameter conflict" +msgstr "상속 받은 \"%s\" 칼럼의 스토리지 설정값에서 충돌합니다" + +#: commands/tablecmds.c:3366 +#, c-format +msgid "inherited column \"%s\" has a generation conflict" +msgstr "상속된 \"%s\" 칼럼에 대한 생성 충돌 발생" + +#: commands/tablecmds.c:3597 +#, c-format +msgid "cannot move temporary tables of other sessions" +msgstr "다른 세션의 임시 테이블들은 이동할 수 없습니다" + +#: commands/tablecmds.c:3670 +#, c-format +msgid "cannot rename column of typed table" +msgstr "칼럼 이름을 바꿀 수 없음" + +#: commands/tablecmds.c:3689 +#, c-format +msgid "cannot rename columns of relation \"%s\"" +msgstr "\"%s\" 릴레이션의 칼럼 이름을 바꿀 수 없음" + +#: commands/tablecmds.c:3784 +#, c-format +msgid "inherited column \"%s\" must be renamed in child tables too" +msgstr "하위 테이블에서도 상속된 \"%s\" 칼럼의 이름을 바꾸어야 함" + +#: commands/tablecmds.c:3816 +#, c-format +msgid "cannot rename system column \"%s\"" +msgstr "\"%s\" 이름의 칼럼은 시스템 칼럼입니다, 이름을 바꿀 수 없습니다" + +#: commands/tablecmds.c:3831 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "\"%s\" 이름의 칼럼은 상속 받은 칼럼입니다, 이름을 바꿀 수 없습니다" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3983 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "" "하위 테이블에서도 상속된 \"%s\" 제약조건은 하위 테이블에서도 이름이 바뀌어야 " "함" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3990 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "\"%s\" 상속된 제약조건은 이름을 바꿀 수 없습니다" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4290 #, c-format msgid "" "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "이 세션의 활성 쿼리에서 사용 중이므로 %s \"%s\" 작업을 할 수 없음" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4299 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "보류 중인 트리거 이벤트가 있으므로 %s \"%s\" 작업을 할 수 없음" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4325 +#, c-format +msgid "cannot alter temporary tables of other sessions" +msgstr "다른 세션의 임시 테이블에 대해서는 alter 작업을 할 수 없음" + +#: commands/tablecmds.c:4798 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "" "\"%s\" 파티션 테이블은 불완전한 detach 상태이기에 alter 작업을 할 수 없음" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:5002 commands/tablecmds.c:5017 #, c-format msgid "cannot change persistence setting twice" msgstr "로그 사용/미사용 옵션을 중복 해서 지정했음" -#: commands/tablecmds.c:4810 -#, c-format -msgid "cannot change access method of a partitioned table" -msgstr "파티션 된 테이블의 접근 방법은 바꿀 수 없음" - -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:5038 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "다중 SET ACCESS METHOD 구문은 사용할 수 없음" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5768 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "\"%s\" 시스템 릴레이션을 다시 쓰기(rewrite) 할 수 없음" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5774 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "카탈로그 테이블로 사용되어 \"%s\" 테이블을 rewrite 못함" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5786 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "다른 세션의 임시 테이블을 다시 쓰기(rewrite) 할 수 없음" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6281 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "\"%s\" 열(해당 릴레이션 \"%s\")의 자료 가운데 null 값이 있습니다" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6298 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "" "\"%s\" 체크 제약 조건(해당 릴레이션 \"%s\")을 위반하는 몇몇 자료가 있습니다" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6317 partitioning/partbounds.c:3387 #, c-format msgid "" "updated partition constraint for default partition \"%s\" would be violated " @@ -11341,173 +11796,173 @@ msgid "" msgstr "" "몇몇 자료가 \"%s\" 기본 파티션용에서 변경된 파티션 제약조건을 위배한 것 같음" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6323 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "\"%s\" 릴레이션의 파티션 제약 조건을 위반하는 몇몇 자료가 있습니다" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6588 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "%s ALTER 작업은 \"%s\" 릴레이션 대상으로 수행할 수 없음" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6843 commands/tablecmds.c:6850 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" -msgstr "\"%s\" 자료형 변경할 수 없음(\"%s.%s\" 칼럼에서 해당 형식을 사용함)" +msgstr "\"%s\" 자료형 바꿀 수 없음(\"%s.%s\" 칼럼에서 해당 형식을 사용함)" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6857 #, c-format msgid "" "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" -"\"%s\" 외부 테이블을 변경할 수 없음(\"%s.%s\" 칼럼에서 해당 로우 형을 사용함)" +"\"%s\" 외부 테이블을 바꿀 수 없음(\"%s.%s\" 칼럼에서 해당 로우 형을 사용함)" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6864 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" -"\"%s\" 테이블을 변경할 수 없음(\"%s.%s\" 칼럼에서 해당 로우 형식을 사용함)" +"\"%s\" 테이블을 바꿀 수 없음(\"%s.%s\" 칼럼에서 해당 로우 형식을 사용함)" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6920 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "" -"\"%s\" 자료형을 변경할 수 없음, 이 자료형은 typed 테이블의 자료형이기 때문" +"\"%s\" 자료형을 바꿀 수 없음, 이 자료형은 typed 테이블의 자료형이기 때문" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6922 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "" "이 개체와 관계된 모든 개체들을 함께 변경하려면 ALTER ... CASCADE 명령을 사용" "하십시오" -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6968 #, c-format msgid "type %s is not a composite type" msgstr "%s 자료형은 복합 자료형이 아닙니다" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6995 #, c-format msgid "cannot add column to typed table" msgstr "typed 테이블에는 칼럼을 추가 할 수 없음" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:7043 #, c-format msgid "cannot add column to a partition" msgstr "파티션 테이블에는 칼럼을 추가 할 수 없습니다" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15165 +#: commands/tablecmds.c:7072 commands/tablecmds.c:15860 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "" "\"%s\" 상속된 테이블의 \"%s\" 열 자료형이 상위 테이블의 자료형과 틀립니다" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15172 +#: commands/tablecmds.c:7078 commands/tablecmds.c:15866 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "" "\"%s\" 상속된 테이블의 \"%s\" 칼럼 정렬규칙이 상위 테이블의 정렬규칙과 틀립니" "다" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:7096 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "\"%s\" 열(\"%s\" 하위)의 정의를 병합하는 중" -#: commands/tablecmds.c:6908 +#: commands/tablecmds.c:7149 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "하위 테이블에 재귀적으로 식별 칼럼을 추가할 수는 없음" -#: commands/tablecmds.c:7159 +#: commands/tablecmds.c:7362 #, c-format msgid "column must be added to child tables too" msgstr "하위 테이블에도 칼럼을 추가해야 함" -#: commands/tablecmds.c:7237 +#: commands/tablecmds.c:7440 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "\"%s\" 이름의 칼럼이 \"%s\" 릴레이션에 이미 있습니다, 건너뜀" -#: commands/tablecmds.c:7244 +#: commands/tablecmds.c:7447 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "\"%s\" 이름의 칼럼은 \"%s\" 릴레이션에 이미 있습니다" -#: commands/tablecmds.c:7310 commands/tablecmds.c:12094 +#: commands/tablecmds.c:7513 commands/tablecmds.c:12652 #, c-format msgid "" "cannot remove constraint from only the partitioned table when partitions " "exist" msgstr "하위 테이블이 있는 경우, 상위 테이블의 제약조건만 지울 수는 없음" -#: commands/tablecmds.c:7311 commands/tablecmds.c:7628 -#: commands/tablecmds.c:8593 commands/tablecmds.c:12095 +#: commands/tablecmds.c:7514 commands/tablecmds.c:7828 +#: commands/tablecmds.c:8006 commands/tablecmds.c:8113 +#: commands/tablecmds.c:8230 commands/tablecmds.c:9049 +#: commands/tablecmds.c:12653 #, c-format msgid "Do not specify the ONLY keyword." msgstr "ONLY 옵션을 빼고 사용하세요." -#: commands/tablecmds.c:7348 commands/tablecmds.c:7554 -#: commands/tablecmds.c:7696 commands/tablecmds.c:7810 -#: commands/tablecmds.c:7904 commands/tablecmds.c:7963 -#: commands/tablecmds.c:8082 commands/tablecmds.c:8221 -#: commands/tablecmds.c:8291 commands/tablecmds.c:8425 -#: commands/tablecmds.c:12249 commands/tablecmds.c:13753 -#: commands/tablecmds.c:16282 +#: commands/tablecmds.c:7550 commands/tablecmds.c:7754 +#: commands/tablecmds.c:7896 commands/tablecmds.c:8028 +#: commands/tablecmds.c:8157 commands/tablecmds.c:8251 +#: commands/tablecmds.c:8352 commands/tablecmds.c:8509 +#: commands/tablecmds.c:8662 commands/tablecmds.c:8743 +#: commands/tablecmds.c:8877 commands/tablecmds.c:12806 +#: commands/tablecmds.c:14348 commands/tablecmds.c:16975 #, c-format msgid "cannot alter system column \"%s\"" -msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. 그래서 변경될 수 없습니다" +msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. 그래서 바꿀 수 없습니다" -#: commands/tablecmds.c:7354 commands/tablecmds.c:7702 +#: commands/tablecmds.c:7556 commands/tablecmds.c:7902 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "\"%s\" 칼럼(해당 테이블: \"%s\")은 식별 칼럼입니다." -#: commands/tablecmds.c:7397 +#: commands/tablecmds.c:7597 #, c-format msgid "column \"%s\" is in a primary key" msgstr "\"%s\" 칼럼은 기본키 칼럼입니다" -#: commands/tablecmds.c:7402 +#: commands/tablecmds.c:7602 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "\"%s\" 칼럼 대상 인덱스는 복제 식별자로 사용 됨" -#: commands/tablecmds.c:7425 +#: commands/tablecmds.c:7625 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "파티션 테이블에서 \"%s\" 칼럼은 NOT NULL 속성으로 되어 있습니다" -#: commands/tablecmds.c:7625 commands/tablecmds.c:9077 +#: commands/tablecmds.c:7825 commands/tablecmds.c:9533 #, c-format msgid "constraint must be added to child tables too" msgstr "하위 테이블에도 제약 조건을 추가해야 함" -#: commands/tablecmds.c:7626 +#: commands/tablecmds.c:7826 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")은 이미 NOT NULL 속성이 없습니다." -#: commands/tablecmds.c:7704 -#, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." -msgstr "" -"대신에, ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY 명령을 사용하세요." - -#: commands/tablecmds.c:7709 +#: commands/tablecmds.c:7911 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "\"%s\" 칼럼(해당 테이블: \"%s\")은 계산된 칼럼입니다." -#: commands/tablecmds.c:7712 +#: commands/tablecmds.c:8005 #, c-format -msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." -msgstr "" -"대신에, ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION 명령을 사용하세요." +msgid "cannot add identity to a column of only the partitioned table" +msgstr "상위 파티션 테이블 단독으로 식별자 속성의 칼럼을 지정할 수 없음" + +#: commands/tablecmds.c:8011 +#, c-format +msgid "cannot add identity to a column of a partition" +msgstr "한 하위 테이블에 식별자 속성의 칼럼을 지정할 수는 없음" -#: commands/tablecmds.c:7821 +#: commands/tablecmds.c:8039 #, c-format msgid "" "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity " @@ -11516,95 +11971,120 @@ msgstr "" "식별자 옵션을 사용하려면, \"%s\" 칼럼(해당 릴레이션: \"%s\")에 NOT NULL 옵션" "이 있어야 합니다." -#: commands/tablecmds.c:7827 +#: commands/tablecmds.c:8045 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "\"%s\" 이름의 칼럼(해당 릴레이션: \"%s\")은 이미 식별 칼럼입니다" -#: commands/tablecmds.c:7833 +#: commands/tablecmds.c:8051 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "\"%s\" 이름의 칼럼(해당 릴레이션: \"%s\")은 이미 default 입니다" -#: commands/tablecmds.c:7910 commands/tablecmds.c:7971 +#: commands/tablecmds.c:8112 +#, c-format +msgid "cannot change identity column of only the partitioned table" +msgstr "상위 파티션 테이블만 대상으로 식별자 속성 칼럼을 바꿀 수는 없음" + +#: commands/tablecmds.c:8118 +#, c-format +msgid "cannot change identity column of a partition" +msgstr "한 하위 파티션 테이블만 대상으로 식별자 속성 칼럼을 바꿀 수는 없음" + +#: commands/tablecmds.c:8163 commands/tablecmds.c:8259 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "\"%s\" 이름의 칼럼(해당 릴레이션: \"%s\")은 식별 칼럼이 아닙니다" -#: commands/tablecmds.c:7976 +#: commands/tablecmds.c:8229 +#, c-format +msgid "cannot drop identity from a column of only the partitioned table" +msgstr "상위 파티션 테이블만 대상으로 식별자 속성 칼럼을 삭제할 수는 없음" + +#: commands/tablecmds.c:8235 +#, c-format +msgid "cannot drop identity from a column of a partition" +msgstr "한 하위 파티션 테이블만 대상으로 식별자 속성 칼럼을 삭제할 수는 없음" + +#: commands/tablecmds.c:8264 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "\"%s\" 이름의 칼럼(해당 릴레이션: \"%s\")은 식별 칼럼이 아님, 건너뜀" -#: commands/tablecmds.c:8029 +#: commands/tablecmds.c:8358 +#, c-format +msgid "column \"%s\" of relation \"%s\" is not a generated column" +msgstr "\"%s\" 칼럼(해당 테이블: \"%s\")은 계산된 칼럼이 아님" + +#: commands/tablecmds.c:8456 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION 작업은 하위 테이블에도 적용되어야함" -#: commands/tablecmds.c:8051 +#: commands/tablecmds.c:8478 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "상속 받은 칼럼에서는 미리 계산된 표현식을 못 없앰" -#: commands/tablecmds.c:8090 +#: commands/tablecmds.c:8517 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")은 미리 계산된 칼럼이 아님" -#: commands/tablecmds.c:8095 +#: commands/tablecmds.c:8522 #, c-format msgid "" "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "\"%s\" 칼럼(해당 릴레이션: \"%s\")은 미리 계산된 칼럼이 아님, 건너뜀" -#: commands/tablecmds.c:8168 +#: commands/tablecmds.c:8600 #, c-format msgid "cannot refer to non-index column by number" msgstr "숫자로 인덱스 사용하지 않는 칼럼을 참조할 수 없음" -#: commands/tablecmds.c:8211 +#: commands/tablecmds.c:8652 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "%d번째 칼럼이 없습니다. 해당 릴레이션: \"%s\"" -#: commands/tablecmds.c:8230 +#: commands/tablecmds.c:8671 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "" "\"%s\" 포함된 칼럼 (해당 인덱스: \"%s\") 관련 통계정보를 수정할 수 없음" -#: commands/tablecmds.c:8235 +#: commands/tablecmds.c:8676 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" "\"%s\" 비표현식 칼럼 (해당 인덱스: \"%s\") 관련 통계정보를 수정할 수 없음" -#: commands/tablecmds.c:8237 +#: commands/tablecmds.c:8678 #, c-format msgid "Alter statistics on table column instead." msgstr "대신에 테이블 칼럼 대상으로 통계정보를 수정하세요." -#: commands/tablecmds.c:8472 +#: commands/tablecmds.c:8924 #, c-format msgid "cannot drop column from typed table" msgstr "typed 테이블에서 칼럼을 삭제할 수 없음" -#: commands/tablecmds.c:8531 +#: commands/tablecmds.c:8987 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "\"%s\" 칼럼은 \"%s\" 릴레이션에 없음, 건너뜀" -#: commands/tablecmds.c:8544 +#: commands/tablecmds.c:9000 #, c-format msgid "cannot drop system column \"%s\"" msgstr "\"%s\" 칼럼은 시스템 칼럼입니다, 삭제될 수 없습니다" -#: commands/tablecmds.c:8554 +#: commands/tablecmds.c:9010 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "\"%s\" 칼럼은 상속받은 칼럼입니다, 삭제될 수 없습니다" -#: commands/tablecmds.c:8567 +#: commands/tablecmds.c:9023 #, c-format msgid "" "cannot drop column \"%s\" because it is part of the partition key of " @@ -11612,14 +12092,14 @@ msgid "" msgstr "" "\"%s\" 칼럼은 \"%s\" 릴레이션의 파티션 키로 사용되고 있어 삭제 될 수 없음" -#: commands/tablecmds.c:8592 +#: commands/tablecmds.c:9048 #, c-format msgid "" "cannot drop column from only the partitioned table when partitions exist" msgstr "" "파티션 테이블이 있는 파티션된 테이블에서 그 테이블만 칼럼을 삭제 할 수 없음" -#: commands/tablecmds.c:8797 +#: commands/tablecmds.c:9253 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned " @@ -11628,7 +12108,7 @@ msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX 작업은 파티션 된 테이블 대상으로는 " "지원하지 않음" -#: commands/tablecmds.c:8822 +#: commands/tablecmds.c:9278 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" @@ -11636,7 +12116,7 @@ msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX 작업은 \"%s\" 인덱스를 \"%s\" 이름으" "로 바꿀 것입니다." -#: commands/tablecmds.c:9159 +#: commands/tablecmds.c:9615 #, c-format msgid "" "cannot use ONLY for foreign key on partitioned table \"%s\" referencing " @@ -11645,7 +12125,7 @@ msgstr "" "\"%s\" 파티션 상위 테이블의 참조키에는 ONLY 옵션을 사용할 수 없음. 이 테이블" "은 \"%s\" 릴레이션을 참조 함" -#: commands/tablecmds.c:9165 +#: commands/tablecmds.c:9621 #, c-format msgid "" "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing " @@ -11654,22 +12134,22 @@ msgstr "" "\"%s\" 파타션된 테이블에 NOT VALID 참조키를 추가할 수 없음 (참조 하는 테이" "블: \"%s\")" -#: commands/tablecmds.c:9168 +#: commands/tablecmds.c:9624 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "이 기능은 파티션 된 테이블 대상으로는 아직 지원하지 않습니다." -#: commands/tablecmds.c:9175 commands/tablecmds.c:9631 +#: commands/tablecmds.c:9631 commands/tablecmds.c:10092 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "참조된 \"%s\" 릴레이션은 테이블이 아닙니다" -#: commands/tablecmds.c:9198 +#: commands/tablecmds.c:9654 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "영구 저장용 테이블의 제약 조건은 영구 저장용 테이블을 참조 합니다." -#: commands/tablecmds.c:9205 +#: commands/tablecmds.c:9661 #, c-format msgid "" "constraints on unlogged tables may reference only permanent or unlogged " @@ -11678,155 +12158,176 @@ msgstr "" "unlogged 테이블의 제약 조건은 영구 저장용 테이블 또는 unlogged 테이블을 참조" "합니다." -#: commands/tablecmds.c:9211 +#: commands/tablecmds.c:9667 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "임시 테이블의 제약 조건은 임시 테이블에 대해서만 참조할 것입니다." -#: commands/tablecmds.c:9215 +#: commands/tablecmds.c:9671 #, c-format msgid "" "constraints on temporary tables must involve temporary tables of this session" msgstr "" "임시 테이블의 제약 조건은 이 세션용 임시 테이블에 대해서만 적용 됩니다." -#: commands/tablecmds.c:9279 commands/tablecmds.c:9285 +#: commands/tablecmds.c:9735 commands/tablecmds.c:9741 #, c-format msgid "" "invalid %s action for foreign key constraint containing generated column" msgstr "계산된 칼럼을 포함하는 참조키 제약조건용 %s 액션은 잘못 되었음" -#: commands/tablecmds.c:9301 +#: commands/tablecmds.c:9757 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "참조키(foreign key) disagree를 위한 참조하는, 또는 참조되는 열 수" -#: commands/tablecmds.c:9408 +#: commands/tablecmds.c:9864 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "\"%s\" 참조키(foreign key) 제약 조건은 구현되어질 수 없습니다" -#: commands/tablecmds.c:9410 +#: commands/tablecmds.c:9866 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "" "\"%s\" 열과 \"%s\" 열 인덱스는 함께 사용할 수 없는 자료형입니다: %s and %s." -#: commands/tablecmds.c:9567 +#: commands/tablecmds.c:10035 #, c-format msgid "" "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "" "ON DELETE SET 동작을 지정하려는 \"%s\" 칼럼은 참조키의 한 부분이어야 합니다." -#: commands/tablecmds.c:9841 commands/tablecmds.c:10311 -#: parser/parse_utilcmd.c:791 parser/parse_utilcmd.c:920 +#: commands/tablecmds.c:10392 commands/tablecmds.c:10832 +#: parser/parse_utilcmd.c:822 parser/parse_utilcmd.c:945 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "참조키 제약 조건은 외부 테이블에서는 사용할 수 없음" -#: commands/tablecmds.c:10864 commands/tablecmds.c:11142 -#: commands/tablecmds.c:12051 commands/tablecmds.c:12126 +#: commands/tablecmds.c:10815 +#, c-format +msgid "" +"cannot attach table \"%s\" as a partition because it is referenced by " +"foreign key \"%s\"" +msgstr "" +"\"%s\" 테이블은 하위 테이블로 추가 될 수 없음, 이 테이블은 \"%s\" 참조키의 대" +"상이기 때문" + +#: commands/tablecmds.c:11416 commands/tablecmds.c:11697 +#: commands/tablecmds.c:12609 commands/tablecmds.c:12683 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "\"%s\" 제약 조건이 \"%s\" 릴레이션에 없습니다." -#: commands/tablecmds.c:10871 +#: commands/tablecmds.c:11423 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "\"%s\" 제약 조건(해당 테이블: \"%s\")은 참조키 제약조건이 아닙니다." -#: commands/tablecmds.c:10909 +#: commands/tablecmds.c:11461 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" -msgstr "\"%s\" 제약 조건(해당 테이블: \"%s\")을 변경할 수 없음" +msgstr "\"%s\" 제약 조건(해당 테이블: \"%s\")을 바꿀 수 없음" -#: commands/tablecmds.c:10912 +#: commands/tablecmds.c:11464 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "" "\"%s\" 제약 조건은 \"%s\" 제약 조건에서 파생되었음, 해당 릴레이션: \"%s\"" -#: commands/tablecmds.c:10914 +#: commands/tablecmds.c:11466 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "대신에, 원 제약 조건을 변경 하세요." -#: commands/tablecmds.c:11150 +#: commands/tablecmds.c:11705 #, c-format msgid "" "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "" "\"%s\" 제약 조건(해당 테이블: \"%s\")은 참조키도 체크 제약 조건도 아닙니다." -#: commands/tablecmds.c:11227 +#: commands/tablecmds.c:11782 #, c-format msgid "constraint must be validated on child tables too" msgstr "하위 테이블에도 제약 조건이 유효해야 함" -#: commands/tablecmds.c:11314 +#: commands/tablecmds.c:11869 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "참조키(foreign key) 제약 조건에서 참조하는 \"%s\" 칼럼이 없음" -#: commands/tablecmds.c:11320 +#: commands/tablecmds.c:11875 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "시스템 칼럼은 참조키로 사용될 수 없음" -#: commands/tablecmds.c:11324 +#: commands/tablecmds.c:11879 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "참조키(foreign key)에서 %d 키 개수보다 많이 가질 수 없음" -#: commands/tablecmds.c:11389 +#: commands/tablecmds.c:11944 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "참조되는 \"%s\" 테이블의 지연 가능한 기본키를 사용할 수 없음" -#: commands/tablecmds.c:11406 +#: commands/tablecmds.c:11961 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "참조되는 \"%s\" 테이블에는 기본키(primary key)가 없습니다" -#: commands/tablecmds.c:11470 +#: commands/tablecmds.c:12029 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "참조키의 참조 칼럼 목록에 칼럼이 중복되면 안됩니다" -#: commands/tablecmds.c:11562 +#: commands/tablecmds.c:12121 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "참조되는 \"%s\" 테이블의 지연 가능한 유니크 제약 조건을 사용할 수 없음" -#: commands/tablecmds.c:11567 +#: commands/tablecmds.c:12126 #, c-format msgid "" "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "" "참조되는 \"%s\" 테이블을 위한 주워진 키와 일치하는 고유 제약 조건이 없습니다" -#: commands/tablecmds.c:12007 +#: commands/tablecmds.c:12565 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "상속된 \"%s\" 제약 조건(해당 테이블: \"%s\")을 삭제할 수 없음" -#: commands/tablecmds.c:12057 +#: commands/tablecmds.c:12615 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "\"%s\" 제약 조건(해당 테이블: \"%s\")이 없음, 건너뜀" -#: commands/tablecmds.c:12233 +#: commands/tablecmds.c:12790 #, c-format msgid "cannot alter column type of typed table" -msgstr "typed 테이블의 칼럼 자료형은 변경할 수 없음" +msgstr "typed 테이블의 칼럼 자료형은 바꿀 수 없음" + +#: commands/tablecmds.c:12816 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "미리 계산된 칼럼의 자료형을 바꿀 때는 USING 구문을 지정할 수 없음" + +#: commands/tablecmds.c:12817 commands/tablecmds.c:18028 +#: commands/tablecmds.c:18118 commands/trigger.c:656 +#: rewrite/rewriteHandler.c:941 rewrite/rewriteHandler.c:976 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "\"%s\" 칼럼은 미리 계산된 칼럼입니다." -#: commands/tablecmds.c:12260 +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "\"%s\" 이름의 칼럼은 상속 받은 칼럼입니다, 이름을 바꿀 수 없습니다" -#: commands/tablecmds.c:12269 +#: commands/tablecmds.c:12836 #, c-format msgid "" "cannot alter column \"%s\" because it is part of the partition key of " @@ -11835,7 +12336,7 @@ msgstr "" "\"%s\" 칼럼은 \"%s\" 테이블의 파티션 키 가운데 하나이기 때문에, alter 작업" "을 할 수 없음" -#: commands/tablecmds.c:12319 +#: commands/tablecmds.c:12886 #, c-format msgid "" "result of USING clause for column \"%s\" cannot be cast automatically to " @@ -11843,192 +12344,197 @@ msgid "" msgstr "" "\"%s\" 칼럼에서 쓰인 USING 절의 결과가 %s 자료형으로 자동 형변환을 할 수 없음" -#: commands/tablecmds.c:12322 +#: commands/tablecmds.c:12889 #, c-format msgid "You might need to add an explicit cast." msgstr "명시적 형변환을 해야할 것 같습니다." -#: commands/tablecmds.c:12326 +#: commands/tablecmds.c:12893 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "\"%s\" 칼럼의 자료형을 %s 형으로 형변환할 수 없음" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12329 +#: commands/tablecmds.c:12897 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "\"USING %s::%s\" 구문을 추가해야 할 것 같습니다." -#: commands/tablecmds.c:12428 +#: commands/tablecmds.c:12996 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "" "\"%s\" 칼럼은 \"%s\" 테이블의 상속된 칼럼이기에 alter 작업을 할 수 없음" -#: commands/tablecmds.c:12457 +#: commands/tablecmds.c:13025 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USING 표현식에서 전체 로우 테이블 참조를 포함하고 있습니다." -#: commands/tablecmds.c:12468 +#: commands/tablecmds.c:13036 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "하위 테이블에서도 상속된 \"%s\" 칼럼의 형식을 바꾸어야 함" -#: commands/tablecmds.c:12593 +#: commands/tablecmds.c:13161 #, c-format msgid "cannot alter type of column \"%s\" twice" -msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. 그래서 변경될 수 없습니다" +msgstr "\"%s\" 칼럼의 자료형을 중복해서 바꿀 수는 없음" -#: commands/tablecmds.c:12631 +#: commands/tablecmds.c:13199 #, c-format msgid "" "generation expression for column \"%s\" cannot be cast automatically to type " "%s" msgstr "\"%s\" 칼럼의 생성 구문은 %s 형으로 자동 형변환할 수 없음" -#: commands/tablecmds.c:12636 +#: commands/tablecmds.c:13204 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "\"%s\" 칼럼의 기본 값을 %s 형으로 형변환할 수 없음" -#: commands/tablecmds.c:12717 +#: commands/tablecmds.c:13508 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "뷰 또는 규칙에서 사용하는 칼럼의 형식을 변경할 수 없음" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "함수나 프로시져에서 사용하는 칼럼의 자료형 변경은 할 수 없음" -#: commands/tablecmds.c:12718 commands/tablecmds.c:12737 -#: commands/tablecmds.c:12755 +#: commands/tablecmds.c:13509 commands/tablecmds.c:13524 +#: commands/tablecmds.c:13544 commands/tablecmds.c:13563 +#: commands/tablecmds.c:13622 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s 의존대상 열: \"%s\"" -#: commands/tablecmds.c:12736 +#: commands/tablecmds.c:13523 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "뷰 또는 규칙에서 사용하는 칼럼의 형식을 바꿀 수 없음" + +#: commands/tablecmds.c:13543 #, c-format msgid "cannot alter type of a column used in a trigger definition" -msgstr "트리거 정의에서 사용하는 칼럼의 자료형을 변경할 수 없음" +msgstr "트리거 정의에서 사용하는 칼럼의 자료형을 바꿀 수 없음" -#: commands/tablecmds.c:12754 +#: commands/tablecmds.c:13562 #, c-format msgid "cannot alter type of a column used in a policy definition" -msgstr "정책 정의에서 사용하는 칼럼의 자료형을 변경할 수 없음" +msgstr "정책 정의에서 사용하는 칼럼의 자료형을 바꿀 수 없음" -#: commands/tablecmds.c:12785 +#: commands/tablecmds.c:13593 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "미리 계산된 칼럼의 자료형을 바꿀 수 없음" -#: commands/tablecmds.c:12786 +#: commands/tablecmds.c:13594 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "\"%s\" 칼럼은 미리 계산된 칼럼인 \"%s\"에서 사용되고 있음." -#: commands/tablecmds.c:13861 commands/tablecmds.c:13873 +#: commands/tablecmds.c:13621 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "WHERE절이 있는 발행에서 사용되는 칼럼은 자료형을 바꿀 수 없음" + +#: commands/tablecmds.c:14456 commands/tablecmds.c:14468 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "\"%s\" 인덱스의 소유주를 바꿀 수 없음" -#: commands/tablecmds.c:13863 commands/tablecmds.c:13875 +#: commands/tablecmds.c:14458 commands/tablecmds.c:14470 #, c-format msgid "Change the ownership of the index's table instead." msgstr "대신에 그 인덱스의 해당 테이블 소유자을 변경하세요." -#: commands/tablecmds.c:13889 +#: commands/tablecmds.c:14484 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "\"%s\" 시퀀스의 소유주를 바꿀 수 없음" -#: commands/tablecmds.c:13903 commands/tablecmds.c:17173 -#: commands/tablecmds.c:17192 -#, c-format -msgid "Use ALTER TYPE instead." -msgstr "대신 ALTER TYPE을 사용하십시오." - -#: commands/tablecmds.c:13912 +#: commands/tablecmds.c:14509 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "\"%s\" 릴레이션의 소유주를 바꿀 수 없음" -#: commands/tablecmds.c:14274 +#: commands/tablecmds.c:14976 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "SET TABLESPACE 구문이 중복 사용되었습니다" -#: commands/tablecmds.c:14351 +#: commands/tablecmds.c:15053 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "\"%s\" 릴레이션용 옵션을 지정할 수 없음" -#: commands/tablecmds.c:14385 commands/view.c:445 +#: commands/tablecmds.c:15087 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "" "WITH CHECK OPTION 옵션은 자동 갱신 가능한 뷰에 대해서만 사용할 수 있습니다" -#: commands/tablecmds.c:14635 +#: commands/tablecmds.c:15338 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "테이블스페이스에 테이블과 인덱스와 구체화된 뷰만 있습니다." -#: commands/tablecmds.c:14647 +#: commands/tablecmds.c:15350 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "" "해당 개체를 pg_global 테이블스페이스로 옮기거나 그 반대로 작업할 수 없음" -#: commands/tablecmds.c:14739 +#: commands/tablecmds.c:15442 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "\"%s.%s\" 릴레이션을 잠글 수 없어 중지 중입니다" -#: commands/tablecmds.c:14755 +#: commands/tablecmds.c:15458 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "검색조건에 일치하는 릴레이션이 \"%s\" 테이블스페이스에 없음" -#: commands/tablecmds.c:14873 +#: commands/tablecmds.c:15580 #, c-format msgid "cannot change inheritance of typed table" -msgstr "typed 테이블의 상속 정보는 변경할 수 없음" +msgstr "typed 테이블의 상속 정보는 바꿀 수 없음" -#: commands/tablecmds.c:14878 commands/tablecmds.c:15396 +#: commands/tablecmds.c:15585 commands/tablecmds.c:16085 #, c-format msgid "cannot change inheritance of a partition" msgstr "파티션 테이블의 상속 정보는 바꿀 수 없음" -#: commands/tablecmds.c:14883 +#: commands/tablecmds.c:15590 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "파티션된 테이블의 상속 정보는 바꿀 수 없음" -#: commands/tablecmds.c:14929 +#: commands/tablecmds.c:15636 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "다른 세션의 임시 테이블을 상속할 수 없음" -#: commands/tablecmds.c:14942 +#: commands/tablecmds.c:15649 #, c-format msgid "cannot inherit from a partition" msgstr "파티션 테이블에서 상속 할 수 없음" -#: commands/tablecmds.c:14964 commands/tablecmds.c:17813 +#: commands/tablecmds.c:15671 commands/tablecmds.c:18529 #, c-format msgid "circular inheritance not allowed" msgstr "순환 되는 상속은 허용하지 않습니다" -#: commands/tablecmds.c:14965 commands/tablecmds.c:17814 +#: commands/tablecmds.c:15672 commands/tablecmds.c:18530 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" 개체는 이미 \"%s\" 개체로부터 상속받은 상태입니다." -#: commands/tablecmds.c:14978 +#: commands/tablecmds.c:15685 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "" "\"%s\" 트리거(해당 테이블 \"%s\")은 하위테이블 상속과 관련되어 보호되고 있습" "니다." -#: commands/tablecmds.c:14980 +#: commands/tablecmds.c:15687 #, c-format msgid "" "ROW triggers with transition tables are not supported in inheritance " @@ -12036,119 +12542,119 @@ msgid "" msgstr "" "transition 테이블의 ROW 트리거들은 계층적 상속 테이블에서는 지원하지 않음" -#: commands/tablecmds.c:15183 +#: commands/tablecmds.c:15876 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "자식 테이블의 \"%s\" 칼럼은 NOT NULL 속성이 있어야 합니다" -#: commands/tablecmds.c:15192 +#: commands/tablecmds.c:15885 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "자식 테이블의 \"%s\" 칼럼은 미리 계산된 칼럼이어야 함" -#: commands/tablecmds.c:15197 +#: commands/tablecmds.c:15889 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "자식 테이블의 \"%s\" 칼럼은 미리 계산된 칼럼이 아니여야 합니다." -#: commands/tablecmds.c:15228 +#: commands/tablecmds.c:15927 #, c-format msgid "child table is missing column \"%s\"" msgstr "자식 테이블에는 \"%s\" 칼럼이 없습니다" -#: commands/tablecmds.c:15316 +#: commands/tablecmds.c:16008 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "\"%s\" 하위 테이블에 \"%s\" 체크 제약 조건에 대한 다른 정의가 있음" -#: commands/tablecmds.c:15324 +#: commands/tablecmds.c:16015 #, c-format msgid "" -"constraint \"%s\" conflicts with non-inherited constraint on child table \"%s" -"\"" +"constraint \"%s\" conflicts with non-inherited constraint on child table " +"\"%s\"" msgstr "" "\"%s\" 제약 조건이 \"%s\" 하위 테이블에 있는 비 상속 제약 조건과 충돌합니다" -#: commands/tablecmds.c:15335 +#: commands/tablecmds.c:16025 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "" "\"%s\" 제약 조건이 \"%s\" 하위 테이블에 있는 NOT VALID 제약 조건과 충돌합니다" -#: commands/tablecmds.c:15374 +#: commands/tablecmds.c:16063 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "자식 테이블에 \"%s\" 제약 조건이 없습니다" -#: commands/tablecmds.c:15460 +#: commands/tablecmds.c:16149 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "" "\"%s\" 하위 파티션과 \"%s.%s\" 상위 파티션 테이블과 분리 작업을 이미 진행, 지" "연 되고 있습니다." -#: commands/tablecmds.c:15489 commands/tablecmds.c:15537 +#: commands/tablecmds.c:16178 commands/tablecmds.c:16224 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "\"%s\" 릴레이션은 \"%s\" 릴레이션의 파티션이 아닙니다" -#: commands/tablecmds.c:15543 +#: commands/tablecmds.c:16230 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "\"%s\" 릴레이션은 \"%s\" 릴레이션의 부모가 아닙니다" -#: commands/tablecmds.c:15771 +#: commands/tablecmds.c:16457 #, c-format msgid "typed tables cannot inherit" msgstr "typed 테이블은 상속할 수 없음" -#: commands/tablecmds.c:15801 +#: commands/tablecmds.c:16487 #, c-format msgid "table is missing column \"%s\"" msgstr "테이블에는 \"%s\" 칼럼이 없습니다" -#: commands/tablecmds.c:15812 +#: commands/tablecmds.c:16498 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "\"%s\" 칼럼은 \"%s\" 자료형입니다." -#: commands/tablecmds.c:15821 +#: commands/tablecmds.c:16507 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "\"%s\" 테이블의 \"%s\" 칼럼 자료형 틀립니다" -#: commands/tablecmds.c:15835 +#: commands/tablecmds.c:16521 #, c-format msgid "table has extra column \"%s\"" msgstr "\"%s\" 칼럼은 확장형입니다" -#: commands/tablecmds.c:15887 +#: commands/tablecmds.c:16573 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" 테이블은 typed 테이블이 아닙니다" -#: commands/tablecmds.c:16061 +#: commands/tablecmds.c:16747 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "\"%s\" 인덱스는 유니크 인덱스가 아니여서, 복제 식별자로 사용할 수 없음" -#: commands/tablecmds.c:16067 +#: commands/tablecmds.c:16753 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "\"%s\" non-immediate 인덱스는 복제 식별자로 사용할 수 없음" -#: commands/tablecmds.c:16073 +#: commands/tablecmds.c:16759 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "\"%s\" 인덱스는 expression 인덱스여서, 복제 식별자로 사용할 수 없음" -#: commands/tablecmds.c:16079 +#: commands/tablecmds.c:16765 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "\"%s\" 인덱스가 부분인덱스여서, 복제 식별자로 사용할 수 없음" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16782 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column %d is a " @@ -12156,7 +12662,7 @@ msgid "" msgstr "" "\"%s\" 인덱스는 복제 식별자로 사용할 수 없음, %d 번째 칼럼이 시스템 칼럼임" -#: commands/tablecmds.c:16103 +#: commands/tablecmds.c:16789 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column \"%s\" is " @@ -12165,23 +12671,23 @@ msgstr "" "\"%s\" 인덱스는 복제 식별자로 사용할 수 없음, \"%s\" 칼럼이 null 값 사용가능 " "속성임" -#: commands/tablecmds.c:16348 +#: commands/tablecmds.c:17041 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "\"%s\" 테이블은 임시 테이블이기에, 통계 정보를 변경 할 수 없음" -#: commands/tablecmds.c:16372 +#: commands/tablecmds.c:17065 #, c-format msgid "" "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "\"%s\" 테이블은 발생에 사용하고 있어, unlogged 속성으로 바꿀 수 없음" -#: commands/tablecmds.c:16374 +#: commands/tablecmds.c:17067 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "unlogged 릴레이션 복제할 수 없습니다." -#: commands/tablecmds.c:16419 +#: commands/tablecmds.c:17112 #, c-format msgid "" "could not change table \"%s\" to logged because it references unlogged table " @@ -12190,7 +12696,7 @@ msgstr "" "\"%s\" 테이블이 \"%s\" unlogged 테이블을 참조하고 있어 logged 속성으로 바꿀 " "수 없음" -#: commands/tablecmds.c:16429 +#: commands/tablecmds.c:17122 #, c-format msgid "" "could not change table \"%s\" to unlogged because it references logged table " @@ -12199,93 +12705,87 @@ msgstr "" "\"%s\" 테이블이 \"%s\" logged 테이블을 참조하고 있어 unlogged 속성으로 바꿀 " "수 없음" -#: commands/tablecmds.c:16487 +#: commands/tablecmds.c:17180 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "소유된 시퀀스를 다른 스키마로 이동할 수 없음" -#: commands/tablecmds.c:16594 +#: commands/tablecmds.c:17288 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "\"%s\" 릴레이션이 \"%s\" 스키마에 이미 있습니다" -#: commands/tablecmds.c:17006 +#: commands/tablecmds.c:17713 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" 개체는 테이블도 구체화된 뷰도 아닙니다" -#: commands/tablecmds.c:17156 +#: commands/tablecmds.c:17866 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" 개체는 복합 자료형입니다" -#: commands/tablecmds.c:17184 +#: commands/tablecmds.c:17896 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "\"%s\" 인덱스의 스키마를 바꿀 수 없음" -#: commands/tablecmds.c:17186 commands/tablecmds.c:17198 +#: commands/tablecmds.c:17898 commands/tablecmds.c:17912 #, c-format msgid "Change the schema of the table instead." msgstr "대신에 그 인덱스의 해당 테이블 스키마를 변경하세요." -#: commands/tablecmds.c:17190 +#: commands/tablecmds.c:17902 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "\"%s\" 복합 자료형의 스키마를 바꿀 수 없음" -#: commands/tablecmds.c:17196 +#: commands/tablecmds.c:17910 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "\"%s\" TOAST 테이블의 스키마를 바꿀 수 없음" -#: commands/tablecmds.c:17228 +#: commands/tablecmds.c:17942 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "둘 이상의 칼럼을 사용할 \"list\" 파티션은 사용할 수 없습니다" -#: commands/tablecmds.c:17294 +#: commands/tablecmds.c:18008 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "\"%s\" 칼럼이 파티션 키로 사용되고 있지 않습니다" -#: commands/tablecmds.c:17302 +#: commands/tablecmds.c:18016 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. 그래서 파티션 키로 사용될 수 없습니다" -#: commands/tablecmds.c:17313 commands/tablecmds.c:17427 +#: commands/tablecmds.c:18027 commands/tablecmds.c:18117 #, c-format msgid "cannot use generated column in partition key" msgstr "미리 계산된 칼럼은 파티션 키로 사용할 수 없음" -#: commands/tablecmds.c:17314 commands/tablecmds.c:17428 commands/trigger.c:663 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 +#: commands/tablecmds.c:18100 #, c-format -msgid "Column \"%s\" is a generated column." -msgstr "\"%s\" 칼럼은 미리 계산된 칼럼입니다." +msgid "partition key expressions cannot contain system column references" +msgstr "파티션 키 표현식에서는 시스템 칼럼 참조를 포함할 수 없습니다" -#: commands/tablecmds.c:17390 +#: commands/tablecmds.c:18147 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "파티션 키로 사용할 함수는 IMMUTABLE 특성이 있어야 합니다" -#: commands/tablecmds.c:17410 -#, c-format -msgid "partition key expressions cannot contain system column references" -msgstr "파티션 키 표현식에서는 시스템 칼럼 참조를 포함할 수 없습니다" - -#: commands/tablecmds.c:17440 +#: commands/tablecmds.c:18156 #, c-format msgid "cannot use constant expression as partition key" msgstr "파티션 키로 상수는 쓸 수 없습니다" -#: commands/tablecmds.c:17461 +#: commands/tablecmds.c:18177 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "파티션 표현식에 쓸 문자 정렬 규칙을 결정할 수 없습니다" -#: commands/tablecmds.c:17496 +#: commands/tablecmds.c:18212 #, c-format msgid "" "You must specify a hash operator class or define a default hash operator " @@ -12294,7 +12794,7 @@ msgstr "" "해당 자료형을 위한 해시 연산자 클래스를 지정하거나 기본 해시 연산자 클래스를 " "정의해 두어야 합니다" -#: commands/tablecmds.c:17502 +#: commands/tablecmds.c:18218 #, c-format msgid "" "You must specify a btree operator class or define a default btree operator " @@ -12303,121 +12803,134 @@ msgstr "" "해당 자료형을 위한 btree 연산자 클래스를 지정하거나 기본 btree 연산자 클래스" "를 정의해 두어야 합니다" -#: commands/tablecmds.c:17753 +#: commands/tablecmds.c:18469 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" 이름의 파티션 테이블이 이미 있습니다" -#: commands/tablecmds.c:17759 +#: commands/tablecmds.c:18475 #, c-format msgid "cannot attach a typed table as partition" msgstr "파티션 테이블로 typed 테이블을 추가할 수 없음" -#: commands/tablecmds.c:17775 +#: commands/tablecmds.c:18491 #, c-format msgid "cannot attach inheritance child as partition" msgstr "파티션 테이블로 상속을 이용한 하위 테이블을 추가할 수 없음" -#: commands/tablecmds.c:17789 +#: commands/tablecmds.c:18505 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "파티션 테이블로 상속용 상위 테이블을 추가할 수 없음" -#: commands/tablecmds.c:17823 +#: commands/tablecmds.c:18539 #, c-format msgid "" "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "" "\"%s\" 테이블은 일반 테이블입니다, 임시 파티션 테이블을 추가할 수 없습니다" -#: commands/tablecmds.c:17831 +#: commands/tablecmds.c:18547 #, c-format msgid "" "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "" "\"%s\" 테이블은 임시 테이블입니다, 일반 파티션 테이블을 추가할 수 없습니다" -#: commands/tablecmds.c:17839 +#: commands/tablecmds.c:18555 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "다른 세션의 임시 테이블을 파티션 테이블로 추가할 수 없습니다" -#: commands/tablecmds.c:17846 +#: commands/tablecmds.c:18562 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "다른 세션의 임시 테이블을 파티션 테이블로 추가할 수 없습니다" -#: commands/tablecmds.c:17866 +#: commands/tablecmds.c:18582 +#, c-format +msgid "table \"%s\" being attached contains an identity column \"%s\"" +msgstr "" +"\"%s\" 테이블의 \"%s\" 칼럼에 식별자 속성이 있는데 하위 테이블이 되려고 합니" +"다." + +#: commands/tablecmds.c:18584 +#, c-format +msgid "The new partition may not contain an identity column." +msgstr "" +"새로 만들어지는 하위 테이블에는 해당 칼럼에 식별자 속성이 없을 수 있습니다." + +#: commands/tablecmds.c:18592 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "\"%s\" 테이블의 \"%s\" 칼럼이 상위 테이블인 \"%s\"에 없음" -#: commands/tablecmds.c:17869 +#: commands/tablecmds.c:18595 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "새 파티션 테이블은 상위 테이블의 칼럼과 동일해야 합니다." -#: commands/tablecmds.c:17881 +#: commands/tablecmds.c:18607 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "" "\"%s\" 트리거가 \"%s\" 테이블에 있어 파티션 테이블로 포함 될 수 없습니다" -#: commands/tablecmds.c:17883 +#: commands/tablecmds.c:18609 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "" "transition 테이블의 ROW 트리거들은 파티션 하위 테이블에서는 쓸 수 없습니다." -#: commands/tablecmds.c:18062 +#: commands/tablecmds.c:18785 #, c-format msgid "" "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "\"%s\" 외부 테이블을 파티션된 \"%s\" 테이블의 부분으로 추가 할 수 없음" -#: commands/tablecmds.c:18065 +#: commands/tablecmds.c:18788 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "\"%s\" 파티션 상위 테이블에 유니크 인덱스가 있습니다." -#: commands/tablecmds.c:18382 +#: commands/tablecmds.c:19110 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "기본 하위 파티션이 있을 때는 하위 파티션 테이블 분리 작업을 할 수 없음" -#: commands/tablecmds.c:18491 +#: commands/tablecmds.c:19219 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "\"%s\" 파티션 상위 테이블이 온라인 모드로 삭제 되었음" -#: commands/tablecmds.c:18497 +#: commands/tablecmds.c:19225 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "\"%s\" 파티션 하위 테이블이 온라인 모드로 삭제 되었음" -#: commands/tablecmds.c:19012 commands/tablecmds.c:19032 -#: commands/tablecmds.c:19053 commands/tablecmds.c:19072 -#: commands/tablecmds.c:19114 +#: commands/tablecmds.c:19817 commands/tablecmds.c:19837 +#: commands/tablecmds.c:19858 commands/tablecmds.c:19877 +#: commands/tablecmds.c:19919 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "\"%s\" 인덱스를 \"%s\" 인덱스의 파티션으로 추가할 수 없음" -#: commands/tablecmds.c:19015 +#: commands/tablecmds.c:19820 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "\"%s\" 인덱스는 이미 다른 인덱스에 추가되어 있음." -#: commands/tablecmds.c:19035 +#: commands/tablecmds.c:19840 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "\"%s\" 인덱스는 \"%s\" 테이블의 하위 파티션 대상 인덱스가 아닙니다." -#: commands/tablecmds.c:19056 +#: commands/tablecmds.c:19861 #, c-format msgid "The index definitions do not match." msgstr "인덱스 정의가 일치하지 않습니다." -#: commands/tablecmds.c:19075 +#: commands/tablecmds.c:19880 #, c-format msgid "" "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint " @@ -12426,393 +12939,393 @@ msgstr "" "\"%s\" 인덱스는 \"%s\" 테이블의 제약조건과 연결되어 있는데, \"%s\" 인덱스를 " "위한 제약조건이 없습니다." -#: commands/tablecmds.c:19117 +#: commands/tablecmds.c:19922 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "\"%s\" 파티션 용으로 다른 인덱스가 추가되어 있습니다." -#: commands/tablecmds.c:19353 +#: commands/tablecmds.c:20158 #, c-format msgid "column data type %s does not support compression" msgstr "%s 형의 칼럼 자료형은 압축을 지원하지 않음" -#: commands/tablecmds.c:19360 +#: commands/tablecmds.c:20165 #, c-format msgid "invalid compression method \"%s\"" msgstr "잘못된 압축 방법: \"%s\"" -#: commands/tablecmds.c:19386 +#: commands/tablecmds.c:20191 #, c-format msgid "invalid storage type \"%s\"" msgstr "잘못된 STORAGE 값: \"%s\"" -#: commands/tablecmds.c:19396 +#: commands/tablecmds.c:20201 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "%s 자료형의 column의 STORAGE 값은 반드시 PLAIN 이어야 합니다" -#: commands/tablespace.c:199 commands/tablespace.c:650 +#: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "\"%s\" 파일이 존재하지만 디렉터리가 아닙니다" -#: commands/tablespace.c:230 +#: commands/tablespace.c:224 #, c-format msgid "permission denied to create tablespace \"%s\"" msgstr "\"%s\" 테이블스페이스를 만들 권한이 없습니다" -#: commands/tablespace.c:232 +#: commands/tablespace.c:226 #, c-format msgid "Must be superuser to create a tablespace." msgstr "테이블스페이스는 슈퍼유저만 만들 수 있습니다." -#: commands/tablespace.c:248 +#: commands/tablespace.c:242 #, c-format msgid "tablespace location cannot contain single quotes" msgstr "테이블스페이스 위치에는 작은 따옴표를 사용할 수 없음" -#: commands/tablespace.c:261 +#: commands/tablespace.c:255 #, c-format msgid "tablespace location must be an absolute path" msgstr "테이블스페이스 경로는 절대경로여야 합니다" -#: commands/tablespace.c:273 +#: commands/tablespace.c:267 #, c-format msgid "tablespace location \"%s\" is too long" msgstr "테이블스페이스 경로가 너무 깁니다: \"%s\"" -#: commands/tablespace.c:280 +#: commands/tablespace.c:274 #, c-format msgid "tablespace location should not be inside the data directory" msgstr "테이블스페이스 경로는 데이터 디렉터리 안에 있으면 안됩니다" -#: commands/tablespace.c:289 commands/tablespace.c:976 +#: commands/tablespace.c:283 commands/tablespace.c:970 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "\"%s\" 테이블스페이스 이름은 적당치 않습니다" -#: commands/tablespace.c:291 commands/tablespace.c:977 +#: commands/tablespace.c:285 commands/tablespace.c:971 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "\"pg_\" 문자로 시작하는 테이블스페이스는 시스템 테이블스페이스입니다." -#: commands/tablespace.c:310 commands/tablespace.c:998 +#: commands/tablespace.c:304 commands/tablespace.c:992 #, c-format msgid "tablespace \"%s\" already exists" msgstr "\"%s\" 이름의 테이블스페이스는 이미 있음" -#: commands/tablespace.c:326 +#: commands/tablespace.c:320 #, c-format msgid "pg_tablespace OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때 pg_tablespace OID 값이 지정되지 않음" -#: commands/tablespace.c:431 commands/tablespace.c:959 -#: commands/tablespace.c:1048 commands/tablespace.c:1117 -#: commands/tablespace.c:1263 commands/tablespace.c:1466 +#: commands/tablespace.c:425 commands/tablespace.c:953 +#: commands/tablespace.c:1042 commands/tablespace.c:1111 +#: commands/tablespace.c:1257 commands/tablespace.c:1460 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "\"%s\" 테이블스페이스 없음" -#: commands/tablespace.c:437 +#: commands/tablespace.c:431 #, c-format msgid "tablespace \"%s\" does not exist, skipping" msgstr "\"%s\" 테이블스페이스 없음, 건너 뜀" -#: commands/tablespace.c:463 +#: commands/tablespace.c:457 #, c-format msgid "tablespace \"%s\" cannot be dropped because some objects depend on it" msgstr "몇 객체들이 의존관계를 가져 \"%s\" 테이블스페이스를 삭제할 수 없음" -#: commands/tablespace.c:530 +#: commands/tablespace.c:524 #, c-format msgid "tablespace \"%s\" is not empty" msgstr "\"%s\" 테이블스페이스는 비어있지 않음" -#: commands/tablespace.c:617 +#: commands/tablespace.c:611 #, c-format msgid "directory \"%s\" does not exist" msgstr "\"%s\" 디렉터리 없음" -#: commands/tablespace.c:618 +#: commands/tablespace.c:612 #, c-format msgid "Create this directory for the tablespace before restarting the server." msgstr "이 서버를 재시작하기 전에 이 테이블스페이스 용 디렉터리를 만드세요." -#: commands/tablespace.c:623 +#: commands/tablespace.c:617 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "\"%s\" 디렉터리 액세스 권한을 지정할 수 없음: %m" -#: commands/tablespace.c:655 +#: commands/tablespace.c:649 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "\"%s\" 디렉터리는 이미 테이블스페이스로 사용 중임" -#: commands/tablespace.c:833 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:913 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "\"%s\" 심벌릭 링크를 삭제할 수 없음: %m" -#: commands/tablespace.c:842 commands/tablespace.c:927 +#: commands/tablespace.c:836 commands/tablespace.c:921 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "\"%s\" 디렉터리도, 심볼릭 링크도 아님" -#: commands/tablespace.c:1122 +#: commands/tablespace.c:1116 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "\"%s\" 테이블스페이스 없음" -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "%u OID 테이블스페이스용 디렉터리는 삭제될 수 없음" -#: commands/tablespace.c:1570 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "필요하다면 OS 작업으로 그 디레터리를 삭제하세요" -#: commands/trigger.c:232 commands/trigger.c:243 +#: commands/trigger.c:225 commands/trigger.c:236 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" 개체는 테이블임" -#: commands/trigger.c:234 commands/trigger.c:245 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "테이블에 INSTEAD OF 트리거는 설정할 수 없음" -#: commands/trigger.c:266 +#: commands/trigger.c:259 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" 개체는 파티션 상위 테이블임" -#: commands/trigger.c:268 +#: commands/trigger.c:261 #, c-format msgid "" "ROW triggers with transition tables are not supported on partitioned tables." msgstr "" "transition 테이블의 ROW 트리거들은 파티션 상위 테이블에서 지원하지 않음." -#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451 +#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" 개체는 뷰임" -#: commands/trigger.c:282 +#: commands/trigger.c:275 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "뷰에 로우 단위 BEFORE, AFTER 트리거는 설정할 수 없음" -#: commands/trigger.c:289 +#: commands/trigger.c:282 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "뷰에 TRUNCATE 트리거는 설정할 수 없음" -#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444 +#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" 개체는 외부 테이블임" -#: commands/trigger.c:299 +#: commands/trigger.c:292 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "외부테이블에 INSTEAD OF 트리거는 설정할 수 없음" -#: commands/trigger.c:311 +#: commands/trigger.c:304 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "외부 테이블에 제약 조건 트리거는 설정할 수 없음" -#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439 +#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "\"%s\" 릴레이션에는 트리거를 지정할 수 없음" -#: commands/trigger.c:387 +#: commands/trigger.c:380 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "TRUNCATE FOR EACH ROW 트리거는 지원되지 않음" -#: commands/trigger.c:395 +#: commands/trigger.c:388 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "INSTEAD OF 트리거는 FOR EACH ROW 옵션으로 설정해야 함" -#: commands/trigger.c:399 +#: commands/trigger.c:392 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "INSTEAD OF 트리거는 WHEN 조건을 사용할 수 없음" -#: commands/trigger.c:403 +#: commands/trigger.c:396 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "INSTEAD OF 트리거는 칼럼 목록을 사용할 수 없음" -#: commands/trigger.c:432 +#: commands/trigger.c:425 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "REFERENCING 절에 ROW 변수 이름 붙이기를 지원하지 않습니다." -#: commands/trigger.c:433 +#: commands/trigger.c:426 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "이름 기반 전환 테이블은 OLD TABLE 또는 NEW TABLE 을 사용하세요." -#: commands/trigger.c:446 +#: commands/trigger.c:439 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "외부 테이블의 트리거들은 전환 테이블을 가질 수 없음." -#: commands/trigger.c:453 +#: commands/trigger.c:446 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "뷰에 정의한 트리거들은 전환 테이블을 가질 수 없음." -#: commands/trigger.c:469 +#: commands/trigger.c:462 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "" "ROW 트리거들이 있는 테이블을 파티션 테이블로 포함하는 기능은 지원하지 않습니" "다" -#: commands/trigger.c:473 +#: commands/trigger.c:466 #, c-format msgid "" "ROW triggers with transition tables are not supported on inheritance children" msgstr "전환 테이블용 ROW 트리거는 하위 상속 테이블에서는 지정할 수 없습니다." -#: commands/trigger.c:479 +#: commands/trigger.c:472 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "전환 테이블 이름은 AFTER 트리거에서만 사용할 수 있습니다." -#: commands/trigger.c:484 +#: commands/trigger.c:477 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "전환 테이블에서 TRUNCATE 트리거는 지원하지 않습니다" -#: commands/trigger.c:501 +#: commands/trigger.c:494 #, c-format msgid "" "transition tables cannot be specified for triggers with more than one event" msgstr "전환 테이블은 하나 이상의 이벤트에 대한 트리거를 지정할 수 없습니다" -#: commands/trigger.c:512 +#: commands/trigger.c:505 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "전환 테이블은 칼럼 목록들에 대한 트리거를 지정할 수 없습니다" -#: commands/trigger.c:529 +#: commands/trigger.c:522 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE 옵션은 INSERT 또는 UPDATE 트리거에서만 사용할 수 있습니다." -#: commands/trigger.c:534 +#: commands/trigger.c:527 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE 옵션은 중복해서 사용할 수 없음" -#: commands/trigger.c:544 +#: commands/trigger.c:537 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE 옵션은 DELETE 또는 UPDATE 트리거에서만 사용할 수 있습니다." -#: commands/trigger.c:549 +#: commands/trigger.c:542 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE 옵션은 중복해서 사용할 수 없음" -#: commands/trigger.c:559 +#: commands/trigger.c:552 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "OLD TABLE 과 NEW TABLE 뒤에 오는 이름이 같을 수는 없습니다." -#: commands/trigger.c:623 commands/trigger.c:636 +#: commands/trigger.c:616 commands/trigger.c:629 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "트리거의 WHEN 조건에는 칼럼 값을 참조할 수는 없음" -#: commands/trigger.c:628 +#: commands/trigger.c:621 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "INSERT 트리거에서의 WHEN 조건에는 OLD 값을 참조할 수 없음" -#: commands/trigger.c:641 +#: commands/trigger.c:634 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "DELETE 트리거에서의 WHEN 조건에는 NEW 값을 참조할 수 없음" -#: commands/trigger.c:646 +#: commands/trigger.c:639 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "WHEN 조건절이 있는 BEFORE 트리거는 NEW 시스템 칼럼을 참조할 수 없음" -#: commands/trigger.c:654 commands/trigger.c:662 +#: commands/trigger.c:647 commands/trigger.c:655 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "" "WHEN 조건절이 있는 BEFORE 트리거는 NEW 미리 계산된 칼럼을 참조할 수 없음" -#: commands/trigger.c:655 +#: commands/trigger.c:648 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "" "로우 전체 참조가 사용되었고, 그 테이블에는 미리 계산된 칼럼이 있습니다." -#: commands/trigger.c:770 commands/trigger.c:1614 +#: commands/trigger.c:763 commands/trigger.c:1607 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "\"%s\" 이름의 트리거가 \"%s\" 테이블에 이미 있습니다" -#: commands/trigger.c:783 +#: commands/trigger.c:776 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "\"%s\" 트리거가 \"%s\" 테이블에 내장 또는 하위 트리거로 있음" -#: commands/trigger.c:802 +#: commands/trigger.c:795 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr " \"%s\" 트리거가 \"%s\" 릴레이션에 제약 조건 트리거로 있음" -#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 +#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "\"%s\" 트리거는 \"%s\" 테이블에 없음" -#: commands/trigger.c:1529 +#: commands/trigger.c:1522 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "\"%s\" 트리거(해당 테이블: \"%s\") 이름을 바꿀 수 없음" -#: commands/trigger.c:1531 +#: commands/trigger.c:1524 #, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "대신에 상위 파티션 테이블인 \"%s\" 테이블의 트리거 이름을 바꾸세요." -#: commands/trigger.c:1631 +#: commands/trigger.c:1624 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "\"%s\" 트리거(해당 테이블: \"%s\") 이름을 바꿨음" -#: commands/trigger.c:1777 +#: commands/trigger.c:1770 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "액세스 권한 없음: \"%s\" 개체는 시스템 트리거임" -#: commands/trigger.c:2386 +#: commands/trigger.c:2379 #, c-format msgid "trigger function %u returned null value" msgstr "%u 트리거 함수가 null 값을 리턴했습니다" -#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 -#: commands/trigger.c:3252 +#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 +#: commands/trigger.c:3263 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "BEFORE STATEMENT 트리거는 리턴값이 있으면 안됩니다" -#: commands/trigger.c:2522 +#: commands/trigger.c:2515 #, c-format msgid "" "moving row to another partition during a BEFORE FOR EACH ROW trigger is not " @@ -12821,25 +13334,17 @@ msgstr "" "BEFORE FOR EACH ROW 트리거가 실행 중일 때 다른 파티션으로 로우는 옮기는 것은 " "지원 하지 않습니다." -#: commands/trigger.c:2523 +#: commands/trigger.c:2516 #, c-format msgid "" "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "" "\"%s\" 트리거가 실행되기 전에, 그 로우는 \"%s.%s\" 파티션에 있었습니다." -#: commands/trigger.c:3329 executor/nodeModifyTable.c:2363 -#: executor/nodeModifyTable.c:2446 -#, c-format -msgid "" -"tuple to be updated was already modified by an operation triggered by the " -"current command" -msgstr "" -"현재 명령으로 실행된 트리거 작업으로 변경해야할 자료가 이미 바뀌었습니다." - -#: commands/trigger.c:3330 executor/nodeModifyTable.c:1531 -#: executor/nodeModifyTable.c:1605 executor/nodeModifyTable.c:2364 -#: executor/nodeModifyTable.c:2447 executor/nodeModifyTable.c:3078 +#: commands/trigger.c:3341 executor/nodeModifyTable.c:1541 +#: executor/nodeModifyTable.c:1615 executor/nodeModifyTable.c:2377 +#: executor/nodeModifyTable.c:2468 executor/nodeModifyTable.c:3132 +#: executor/nodeModifyTable.c:3302 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -12848,137 +13353,137 @@ msgstr "" "다른 로우를 변경하는 일을 BEFORE 트리거 대신에 AFTER 트리거 사용을 고려해 보" "십시오" -#: commands/trigger.c:3371 executor/nodeLockRows.c:228 -#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1547 executor/nodeModifyTable.c:2381 -#: executor/nodeModifyTable.c:2589 +#: commands/trigger.c:3382 executor/nodeLockRows.c:228 +#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:314 +#: executor/nodeModifyTable.c:1557 executor/nodeModifyTable.c:2394 +#: executor/nodeModifyTable.c:2618 #, c-format msgid "could not serialize access due to concurrent update" msgstr "동시 업데이트 때문에 순차적 액세스가 불가능합니다" -#: commands/trigger.c:3379 executor/nodeModifyTable.c:1637 -#: executor/nodeModifyTable.c:2464 executor/nodeModifyTable.c:2613 -#: executor/nodeModifyTable.c:2966 +#: commands/trigger.c:3390 executor/nodeModifyTable.c:1647 +#: executor/nodeModifyTable.c:2485 executor/nodeModifyTable.c:2642 +#: executor/nodeModifyTable.c:3150 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "동시 삭제 작업 때문에 순차적 액세스가 불가능합니다" -#: commands/trigger.c:4586 +#: commands/trigger.c:4601 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "보안 제한 작업 내에서는 지연 속성 트리거를 실행할 수 없음" -#: commands/trigger.c:5769 +#: commands/trigger.c:5782 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "\"%s\" 제약 조건은 DEFERRABLE 속성으로 만들어지지 않았습니다" -#: commands/trigger.c:5792 +#: commands/trigger.c:5805 #, c-format msgid "constraint \"%s\" does not exist" msgstr "\"%s\" 이름의 제약 조건이 없음" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "%s 함수는 %s 자료형을 반환해야 함" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "슈퍼유저만 전문 검색 파서를 만들 수 있음" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "\"%s\" 전문 검색 파서 매개 변수를 인식할 수 없음" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "텍스트 검색 파서 start 메서드가 필요함" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "텍스트 검색 파서 gettoken 메서드가 필요함" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "텍스트 검색 파서 end 메서드가 필요함" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "텍스트 검색 파서 lextypes 메서드가 필요함" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "\"%s\" 전문 검색 템플릿이 옵션을 수락하지 않음" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "전문 검색 템플릿이 필요함" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "슈퍼유저만 전문 검색 템플릿을 만들 수 있음" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "\"%s\" 전문 검색 템플릿 매개 변수를 인식할 수 없음" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "전문 검색 템플릿 lexize 메서드가 필요함" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "\"%s\" 전문 검색 구성 매개 변수를 인식할 수 없음" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "PARSER 옵션과 COPY 옵션을 모두 지정할 수 없음" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "전문 검색 파서가 필요함" -#: commands/tsearchcmds.c:1241 +#: commands/tsearchcmds.c:1277 #, c-format msgid "token type \"%s\" does not exist" msgstr "\"%s\" 토큰 형식이 없음" -#: commands/tsearchcmds.c:1501 +#: commands/tsearchcmds.c:1540 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "\"%s\" 토큰 형식에 대한 매핑이 없음" -#: commands/tsearchcmds.c:1507 +#: commands/tsearchcmds.c:1546 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "\"%s\" 토큰 형식에 대한 매핑이 없음, 건너뜀" -#: commands/tsearchcmds.c:1670 commands/tsearchcmds.c:1785 +#: commands/tsearchcmds.c:1707 commands/tsearchcmds.c:1822 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "잘못된 매개 변수 목록 형식: \"%s\"" -#: commands/typecmds.c:217 +#: commands/typecmds.c:221 #, c-format msgid "must be superuser to create a base type" msgstr "슈퍼유저만 기본 형식을 만들 수 있음" -#: commands/typecmds.c:275 +#: commands/typecmds.c:279 #, c-format msgid "" "Create the type as a shell type, then create its I/O functions, then do a " @@ -12987,127 +13492,127 @@ msgstr "" "쉘 타입으로 그 자료형을 만들고, 그것을 쓰기 위한 I/O 함수를 만들고, 끝으로 " "CREATE TYPE 명령을 사용해서 자료형을 만드세요." -#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4257 +#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "잘못된 \"%s\" 속성의 자료형" -#: commands/typecmds.c:382 +#: commands/typecmds.c:386 #, c-format msgid "invalid type category \"%s\": must be simple ASCII" msgstr "\"%s\" 형식 범주가 잘못됨: 단순 ASCII여야 함" -#: commands/typecmds.c:401 +#: commands/typecmds.c:405 #, c-format msgid "array element type cannot be %s" msgstr "배열 요소의 자료형으로 %s 자료형을 사용할 수 없습니다" -#: commands/typecmds.c:433 +#: commands/typecmds.c:437 #, c-format msgid "alignment \"%s\" not recognized" msgstr "잘못된 ALIGNMENT 값: \"%s\"" -#: commands/typecmds.c:450 commands/typecmds.c:4131 +#: commands/typecmds.c:454 commands/typecmds.c:4354 #, c-format msgid "storage \"%s\" not recognized" msgstr "잘못된 STORAGE 값: \"%s\"" -#: commands/typecmds.c:461 +#: commands/typecmds.c:465 #, c-format msgid "type input function must be specified" msgstr "자료형 입력 함수를 지정하십시오" -#: commands/typecmds.c:465 +#: commands/typecmds.c:469 #, c-format msgid "type output function must be specified" msgstr "자료형 출력 함수를 지정하십시오" -#: commands/typecmds.c:470 +#: commands/typecmds.c:474 #, c-format msgid "" "type modifier output function is useless without a type modifier input " "function" msgstr "형식 한정자 입력 함수가 없으면 형식 한정자 출력 함수는 의미가 없음" -#: commands/typecmds.c:512 +#: commands/typecmds.c:516 #, c-format msgid "element type cannot be specified without a subscripting function" msgstr "" "요소 자료형은 하위요소 지정 함수(subscripting function) 없이 정의할 수 없음" -#: commands/typecmds.c:781 +#: commands/typecmds.c:785 #, c-format msgid "\"%s\" is not a valid base type for a domain" msgstr "\"%s\" 자료형은 도메인의 기반 자료형이 아닙니다" -#: commands/typecmds.c:879 +#: commands/typecmds.c:883 #, c-format msgid "multiple default expressions" msgstr "default 표현식 여러개 있음" -#: commands/typecmds.c:942 commands/typecmds.c:951 +#: commands/typecmds.c:946 commands/typecmds.c:955 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "NULL/NOT NULL 조건이 함께 있음" -#: commands/typecmds.c:967 +#: commands/typecmds.c:971 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "도메인용 체크 제약 조건에는 NO INHERIT 옵션을 사용할 수 없음" -#: commands/typecmds.c:976 commands/typecmds.c:2956 +#: commands/typecmds.c:980 commands/typecmds.c:2940 #, c-format msgid "unique constraints not possible for domains" msgstr "고유 제약 조건은 도메인 정의에 사용할 수 없음" -#: commands/typecmds.c:982 commands/typecmds.c:2962 +#: commands/typecmds.c:986 commands/typecmds.c:2946 #, c-format msgid "primary key constraints not possible for domains" msgstr "기본키 제약 조건을 도메인 정의에 사용할 수 없음" -#: commands/typecmds.c:988 commands/typecmds.c:2968 +#: commands/typecmds.c:992 commands/typecmds.c:2952 #, c-format msgid "exclusion constraints not possible for domains" msgstr "exclusion 제약 조건은 도메인에는 사용할 수 없음" -#: commands/typecmds.c:994 commands/typecmds.c:2974 +#: commands/typecmds.c:998 commands/typecmds.c:2958 #, c-format msgid "foreign key constraints not possible for domains" msgstr "참조키(foreign key) 제약 조건은 도메인(domain) 정의에 사용할 수 없음" -#: commands/typecmds.c:1003 commands/typecmds.c:2983 +#: commands/typecmds.c:1007 commands/typecmds.c:2967 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "도메인에 대해 제약 조건 지연을 지정할 수 없음" -#: commands/typecmds.c:1317 utils/cache/typcache.c:2561 +#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 #, c-format msgid "%s is not an enum" msgstr "%s 개체는 나열형이 아님" -#: commands/typecmds.c:1458 +#: commands/typecmds.c:1468 #, c-format msgid "type attribute \"subtype\" is required" msgstr "\"subtype\" 속성이 필요함" -#: commands/typecmds.c:1463 +#: commands/typecmds.c:1473 #, c-format msgid "range subtype cannot be %s" msgstr "range subtype은 %s 아니여야 함" -#: commands/typecmds.c:1482 +#: commands/typecmds.c:1492 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "" "range 형에 정렬 규칙을 지정했지만, 소속 자료형이 그 정렬 규칙을 지원하지 않습" "니다" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1502 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "미리 만들어진 쉘 타입 없는 canonical 함수를 지정할 수 없음" -#: commands/typecmds.c:1493 +#: commands/typecmds.c:1503 #, c-format msgid "" "Create the type as a shell type, then create its canonicalization function, " @@ -13116,92 +13621,92 @@ msgstr "" "먼저 쉘 타입 자료형을 만들고, canonical 함수를 만든 다음 CREATE TYPE 명령으" "로 해당 자료형을 만드세요." -#: commands/typecmds.c:1965 +#: commands/typecmds.c:1975 #, c-format msgid "type input function %s has multiple matches" msgstr "자료형 %s 입력 함수가 여러 개 있습니다" -#: commands/typecmds.c:1983 +#: commands/typecmds.c:1993 #, c-format msgid "type input function %s must return type %s" msgstr "자료형 %s 입력 함수의 %s 자료형을 반환해야 합니다" -#: commands/typecmds.c:1999 +#: commands/typecmds.c:2009 #, c-format msgid "type input function %s should not be volatile" msgstr "%s 자료형 입력 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2027 +#: commands/typecmds.c:2037 #, c-format msgid "type output function %s must return type %s" msgstr "%s 자료형 출력 함수는 %s 자료형을 반환해야 합니다" -#: commands/typecmds.c:2034 +#: commands/typecmds.c:2044 #, c-format msgid "type output function %s should not be volatile" msgstr "%s 자료형 출력 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2063 +#: commands/typecmds.c:2073 #, c-format msgid "type receive function %s has multiple matches" msgstr "%s 자료형 receive 함수가 여러 개 있습니다" -#: commands/typecmds.c:2081 +#: commands/typecmds.c:2091 #, c-format msgid "type receive function %s must return type %s" msgstr "%s 자료형 receive 함수는 %s 자료형을 반환해야 합니다" -#: commands/typecmds.c:2088 +#: commands/typecmds.c:2098 #, c-format msgid "type receive function %s should not be volatile" msgstr "%s 자료형 수신 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2116 +#: commands/typecmds.c:2126 #, c-format msgid "type send function %s must return type %s" msgstr "%s 자료형 전송 함수는 %s 자료형을 반환해야 합니다" -#: commands/typecmds.c:2123 +#: commands/typecmds.c:2133 #, c-format msgid "type send function %s should not be volatile" msgstr "%s 자료형 송신 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2150 +#: commands/typecmds.c:2160 #, c-format msgid "typmod_in function %s must return type %s" msgstr "%s typmod_in 함수는 %s 자료형을 반환해야 함" -#: commands/typecmds.c:2157 +#: commands/typecmds.c:2167 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "%s 자료형 형변환 입력 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2184 +#: commands/typecmds.c:2194 #, c-format msgid "typmod_out function %s must return type %s" msgstr "%s typmod_out 함수는 %s 자료형을 반환해야 함" -#: commands/typecmds.c:2191 +#: commands/typecmds.c:2201 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "%s 자료형 형변환 출력 함수는 volatile 특성이 없어야 합니다" -#: commands/typecmds.c:2218 +#: commands/typecmds.c:2228 #, c-format msgid "type analyze function %s must return type %s" msgstr "%s 자료형 분석 함수는 %s 자료형을 반환해야 함" -#: commands/typecmds.c:2247 +#: commands/typecmds.c:2257 #, c-format msgid "type subscripting function %s must return type %s" msgstr "%s subscripting 함수의 반환값 자료형은 %s 형이어야 함" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2267 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "사용자 정의 자료형은 %s subscripting 함수에서 쓸 수 없음" -#: commands/typecmds.c:2303 +#: commands/typecmds.c:2313 #, c-format msgid "" "You must specify an operator class for the range type or define a default " @@ -13210,64 +13715,64 @@ msgstr "" "subtype을 위한 기본 연산자 클래스나 range 자료형을 위한 하나의 연산자 클래스" "를 지정해야 합니다" -#: commands/typecmds.c:2334 +#: commands/typecmds.c:2344 #, c-format msgid "range canonical function %s must return range type" msgstr "%s 범위 기준 함수는 range 자료형을 반환해야 합니다" -#: commands/typecmds.c:2340 +#: commands/typecmds.c:2350 #, c-format msgid "range canonical function %s must be immutable" msgstr "%s 범위 기준 함수는 immutable 속성이어야 합니다" -#: commands/typecmds.c:2376 +#: commands/typecmds.c:2386 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "%s 범위 하위 자료 비교 함수는 %s 자료형을 반환해야 합니다" -#: commands/typecmds.c:2383 +#: commands/typecmds.c:2393 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "%s 범위 하위 자료 비교 함수는 immutable 속성이어야 합니다" -#: commands/typecmds.c:2410 +#: commands/typecmds.c:2420 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때 pg_type 배열 OID 값이 지정되지 않았습니다" -#: commands/typecmds.c:2443 +#: commands/typecmds.c:2453 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "" "이진 업그레이드 작업 때 pg_type multirange OID 값이 지정되지 않았습니다" -#: commands/typecmds.c:2476 +#: commands/typecmds.c:2486 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "" "이진 업그레이드 작업 때 pg_type multirange 배열 OID 값이 지정되지 않았습니다" -#: commands/typecmds.c:2772 -#, c-format -msgid "column \"%s\" of table \"%s\" contains null values" -msgstr "\"%s\" 열(해당 테이블 \"%s\")의 자료 가운데 null 값이 있습니다" - -#: commands/typecmds.c:2885 commands/typecmds.c:3086 +#: commands/typecmds.c:2868 commands/typecmds.c:3093 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "\"%s\" 제약 조건 \"%s\" 도메인에 포함되어 있지 않습니다." -#: commands/typecmds.c:2889 +#: commands/typecmds.c:2872 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "\"%s\" 제약 조건 \"%s\" 도메인에 포함되어 있지 않음, 건너뜀" -#: commands/typecmds.c:3093 +#: commands/typecmds.c:3100 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "\"%s\" 제약 조건(해당 도메인: \"%s\")은 check 제약조건이 아님" -#: commands/typecmds.c:3194 +#: commands/typecmds.c:3180 +#, c-format +msgid "column \"%s\" of table \"%s\" contains null values" +msgstr "\"%s\" 열(해당 테이블 \"%s\")의 자료 가운데 null 값이 있습니다" + +#: commands/typecmds.c:3269 #, c-format msgid "" "column \"%s\" of table \"%s\" contains values that violate the new constraint" @@ -13275,140 +13780,147 @@ msgstr "" "\"%s\" 열(해당 테이블 \"%s\")의 자료 중에, 새 제약 조건을 위반하는 자료가 있" "습니다" -#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3703 -#: commands/typecmds.c:3889 +#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 +#: commands/typecmds.c:4073 #, c-format msgid "%s is not a domain" msgstr "\"%s\" 이름의 개체는 도메인이 아닙니다" -#: commands/typecmds.c:3455 +#: commands/typecmds.c:3532 commands/typecmds.c:3686 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "\"%s\" 제약 조건이 \"%s\" 도메인에 이미 지정되어 있습니다" -#: commands/typecmds.c:3506 +#: commands/typecmds.c:3583 #, c-format msgid "cannot use table references in domain check constraint" msgstr "도메인 용 체크 제약 조건에서는 테이블 참조를 사용할 수 없습니다" -#: commands/typecmds.c:3634 commands/typecmds.c:3715 commands/typecmds.c:4006 +#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 #, c-format msgid "%s is a table's row type" msgstr "%s 자료형은 테이블의 행 자료형(row type)입니다" -#: commands/typecmds.c:3636 commands/typecmds.c:3717 commands/typecmds.c:4008 -#, c-format -msgid "Use ALTER TABLE instead." -msgstr "대신 ALTER TABLE을 사용하십시오." - -#: commands/typecmds.c:3642 commands/typecmds.c:3723 commands/typecmds.c:3921 +#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 #, c-format msgid "cannot alter array type %s" -msgstr "%s 배열 형식을 변경할 수 없음" +msgstr "%s 배열 자료형을 바꿀 수 없음" -#: commands/typecmds.c:3644 commands/typecmds.c:3725 commands/typecmds.c:3923 +#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 #, c-format msgid "You can alter type %s, which will alter the array type as well." -msgstr "%s 형식을 변경할 수 있으며, 이렇게 하면 배열 형식도 변경됩니다." +msgstr "" +"%s 자료형을 바꿀 수 있으며, 이렇게 하면 해당 자료형 배열의 자료형도 변경됩니" +"다." -#: commands/typecmds.c:3991 +#: commands/typecmds.c:3892 +#, c-format +msgid "cannot alter multirange type %s" +msgstr "%s 다중 범위 자료형은 바꿀 수 없음" + +#: commands/typecmds.c:3895 +#, c-format +msgid "You can alter type %s, which will alter the multirange type as well." +msgstr "%s 자료형을 바꿀 수 있으며, 이렇게 하면 다중 범위 자료형도 변경됩니다." + +#: commands/typecmds.c:4202 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "%s 자료형이 이미 \"%s\" 스키마 안에 있습니다" -#: commands/typecmds.c:4159 +#: commands/typecmds.c:4382 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "저장 옵션을 PLAIN으로 바꿀 수 없음" -#: commands/typecmds.c:4252 +#: commands/typecmds.c:4475 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "\"%s\" 자료형 속성 바꿀 수 없음" -#: commands/typecmds.c:4270 +#: commands/typecmds.c:4493 #, c-format msgid "must be superuser to alter a type" msgstr "슈퍼유저만 자료형 속성을 바꿀 수 있음" -#: commands/typecmds.c:4291 commands/typecmds.c:4300 +#: commands/typecmds.c:4514 commands/typecmds.c:4523 #, c-format msgid "%s is not a base type" msgstr "\"%s\" 개체는 기본 자료형이 아님" -#: commands/user.c:201 +#: commands/user.c:200 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID는 더 이상 지정할 수 없음" -#: commands/user.c:319 commands/user.c:325 commands/user.c:331 -#: commands/user.c:337 commands/user.c:343 +#: commands/user.c:318 commands/user.c:324 commands/user.c:330 +#: commands/user.c:336 commands/user.c:342 #, c-format msgid "permission denied to create role" msgstr "롤 만들 권한 없음" -#: commands/user.c:320 +#: commands/user.c:319 #, c-format msgid "Only roles with the %s attribute may create roles." msgstr "%s 속성을 가지고 있는 롤만이 롤을 만들 수 있습니다." -#: commands/user.c:326 commands/user.c:332 commands/user.c:338 -#: commands/user.c:344 +#: commands/user.c:325 commands/user.c:331 commands/user.c:337 +#: commands/user.c:343 #, c-format msgid "" "Only roles with the %s attribute may create roles with the %s attribute." msgstr "%s 속성을 가지고 있는 롤만 %s 속성을 가진 롤을 만들 수 있습니다." -#: commands/user.c:355 commands/user.c:1393 commands/user.c:1400 -#: utils/adt/acl.c:5401 utils/adt/acl.c:5407 gram.y:16726 gram.y:16772 +#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 +#: utils/adt/acl.c:5574 utils/adt/acl.c:5580 gram.y:17310 gram.y:17356 #, c-format msgid "role name \"%s\" is reserved" msgstr "\"%s\" 롤 이름은 내부적으로 사용되고 있습니다" -#: commands/user.c:357 commands/user.c:1395 commands/user.c:1402 +#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "\"pg_\"로 시작하는 롤 이름은 사용할 수 없습니다." -#: commands/user.c:378 commands/user.c:1417 +#: commands/user.c:377 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "\"%s\" 롤 이름이 이미 있습니다" -#: commands/user.c:440 commands/user.c:925 +#: commands/user.c:439 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "비밀번호로 빈 문자열을 사용할 수 없습니다. 비밀번호를 없앱니다" -#: commands/user.c:469 +#: commands/user.c:468 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때 pg_authid OID 값이 지정되지 않았습니다" -#: commands/user.c:653 commands/user.c:1011 +#: commands/user.c:652 commands/user.c:1010 msgid "Cannot alter reserved roles." msgstr "예약된 롤은 수정할 수 없습니다." -#: commands/user.c:760 commands/user.c:766 commands/user.c:782 -#: commands/user.c:790 commands/user.c:804 commands/user.c:810 -#: commands/user.c:816 commands/user.c:825 commands/user.c:870 -#: commands/user.c:1033 commands/user.c:1044 +#: commands/user.c:759 commands/user.c:765 commands/user.c:781 +#: commands/user.c:789 commands/user.c:803 commands/user.c:809 +#: commands/user.c:815 commands/user.c:824 commands/user.c:869 +#: commands/user.c:1032 commands/user.c:1043 #, c-format msgid "permission denied to alter role" msgstr "롤 변경 권한 없음" -#: commands/user.c:761 commands/user.c:1034 +#: commands/user.c:760 commands/user.c:1033 #, c-format msgid "Only roles with the %s attribute may alter roles with the %s attribute." msgstr "%s 속성이 있는 롤만 %s 속성을 가진 롤을 바꿀 수 있습니다." -#: commands/user.c:767 commands/user.c:805 commands/user.c:811 -#: commands/user.c:817 +#: commands/user.c:766 commands/user.c:804 commands/user.c:810 +#: commands/user.c:816 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." msgstr "%s 속성이 있는 롤만 %s 속성을 바꿀 수 있습니다." -#: commands/user.c:783 commands/user.c:1045 +#: commands/user.c:782 commands/user.c:1044 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may alter " @@ -13416,7 +13928,7 @@ msgid "" msgstr "" "%s 속성과 %s 옵션을 지정한 롤(해당 롤: \"%s\")만 이 롤을 수정할 수 있습니다." -#: commands/user.c:791 +#: commands/user.c:790 #, c-format msgid "" "To change another role's password, the current user must have the %s " @@ -13425,32 +13937,32 @@ msgstr "" "다른 롤의 비밀번호를 바꾸려면, 현재 사용자는 %s 속성과 %s 옵션이 지정된 롤이" "어야 합니다." -#: commands/user.c:826 +#: commands/user.c:825 #, c-format -msgid "Only roles with the %s option on role \"%s\" may add members." +msgid "Only roles with the %s option on role \"%s\" may add or drop members." msgstr "%s 옵션 (해당 롤: \"%s\")이 있는 롤만 구성원을 추가할 수 있습니다." -#: commands/user.c:871 +#: commands/user.c:870 #, c-format -msgid "The bootstrap user must have the %s attribute." -msgstr "부트스트랩 사용자는 %s 속성을 가지고 있어야 합니다." +msgid "The bootstrap superuser must have the %s attribute." +msgstr "부트스트랩 슈퍼유저는 %s 속성을 가지고 있어야 합니다." -#: commands/user.c:1076 +#: commands/user.c:1075 #, c-format msgid "permission denied to alter setting" msgstr "설정 변경 권한 없음" -#: commands/user.c:1077 +#: commands/user.c:1076 #, c-format msgid "Only roles with the %s attribute may alter settings globally." msgstr "%s 속성이 부여된 롤만 전역 환경 설정을 바꿀 수 있습니다." -#: commands/user.c:1101 commands/user.c:1173 commands/user.c:1179 +#: commands/user.c:1100 commands/user.c:1171 commands/user.c:1177 #, c-format msgid "permission denied to drop role" msgstr "롤을 삭제할 권한이 없습니다" -#: commands/user.c:1102 +#: commands/user.c:1101 #, c-format msgid "" "Only roles with the %s attribute and the %s option on the target roles may " @@ -13459,41 +13971,41 @@ msgstr "" "작업 롤은 %s 속성이 있어야하고, 삭제할 대상 롤을 %s 옵션이 있는 경우만 롤을 " "삭제 할 수 있음" -#: commands/user.c:1127 +#: commands/user.c:1125 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "DROP ROLE 명령으로 삭제할 수 없는 특별한 롤입니다" -#: commands/user.c:1137 commands/user.c:1364 commands/variable.c:836 -#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 -#: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 -#: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 -#: utils/adt/regproc.c:1551 utils/init/miscinit.c:757 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:851 +#: commands/variable.c:854 commands/variable.c:971 commands/variable.c:974 +#: utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5429 +#: utils/adt/acl.c:5477 utils/adt/acl.c:5505 utils/adt/acl.c:5524 +#: utils/adt/regproc.c:1571 utils/init/miscinit.c:799 #, c-format msgid "role \"%s\" does not exist" msgstr "\"%s\" 롤(role) 없음" -#: commands/user.c:1142 +#: commands/user.c:1140 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "\"%s\" 룰(rule) 없음, 건너 뜀" -#: commands/user.c:1155 commands/user.c:1159 +#: commands/user.c:1153 commands/user.c:1157 #, c-format msgid "current user cannot be dropped" msgstr "현재 사용자는 삭제 될 수 없습니다" -#: commands/user.c:1163 +#: commands/user.c:1161 #, c-format msgid "session user cannot be dropped" msgstr "세션 사용자는 삭제 될 수 없습니다" -#: commands/user.c:1174 +#: commands/user.c:1172 #, c-format msgid "Only roles with the %s attribute may drop roles with the %s attribute." msgstr "%s 속성이 있는 롤만 %s 속성을 가진 롤을 지울 수 있습니다." -#: commands/user.c:1180 +#: commands/user.c:1178 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may drop " @@ -13501,33 +14013,33 @@ msgid "" msgstr "" "%s 속성과 %s 옵션을 지정한 롤(해당 롤: \"%s\")만 이 롤을 지울 수 있습니다." -#: commands/user.c:1306 +#: commands/user.c:1299 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "기타 다른 개체들이 이 롤에 의존하고 있어, \"%s\" 롤을 삭제할 수 없음" -#: commands/user.c:1380 +#: commands/user.c:1373 #, c-format msgid "session user cannot be renamed" msgstr "세션 사용자의 이름은 바꿀 수 없습니다" -#: commands/user.c:1384 +#: commands/user.c:1377 #, c-format msgid "current user cannot be renamed" msgstr "현재 사용자의 이름은 바꿀 수 없습니다" -#: commands/user.c:1428 commands/user.c:1438 +#: commands/user.c:1421 commands/user.c:1431 #, c-format msgid "permission denied to rename role" msgstr "롤 이름 바꾸기 권한 없음" -#: commands/user.c:1429 +#: commands/user.c:1422 #, c-format msgid "" "Only roles with the %s attribute may rename roles with the %s attribute." msgstr "%s 속성을 가지고 있는 롤만 %s 속성을 가진 롤 이름을 바꿀 수 있습니다." -#: commands/user.c:1439 +#: commands/user.c:1432 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may rename " @@ -13535,137 +14047,137 @@ msgid "" msgstr "" "%s 속성과 %s 옵션을 가진 롤(해당 롤: \"%s\")만 이 롤 이름을 바꿀 수 있습니다." -#: commands/user.c:1461 +#: commands/user.c:1454 #, c-format msgid "MD5 password cleared because of role rename" msgstr "롤 이름이 변경 되어 MD5 암호를 지웠습니다" -#: commands/user.c:1525 gram.y:1260 +#: commands/user.c:1518 gram.y:1294 #, c-format msgid "unrecognized role option \"%s\"" msgstr "인식할 수 없는 롤 옵션 \"%s\"" -#: commands/user.c:1530 +#: commands/user.c:1523 #, c-format msgid "unrecognized value for role option \"%s\": \"%s\"" msgstr "\"%s\" 롤 옵션에서 쓸 수 없는 값: \"%s\"" -#: commands/user.c:1563 +#: commands/user.c:1556 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "GRANT/REVOKE ROLE에 열 이름을 포함할 수 없음" -#: commands/user.c:1603 +#: commands/user.c:1596 #, c-format msgid "permission denied to drop objects" msgstr "개체를 삭제할 권한이 없음" -#: commands/user.c:1604 +#: commands/user.c:1597 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." msgstr "\"%s\" 롤의 권한을 가진 롤만 해당 객체를 삭제할 수 있습니다." -#: commands/user.c:1632 commands/user.c:1643 +#: commands/user.c:1625 commands/user.c:1636 #, c-format msgid "permission denied to reassign objects" msgstr "개체 권한을 재 지정할 권한이 없음" -#: commands/user.c:1633 +#: commands/user.c:1626 #, c-format msgid "" "Only roles with privileges of role \"%s\" may reassign objects owned by it." msgstr "\"%s\" 롤의 권한을 가진 롤만 해당 객체의 소유주를 바꿀 수 있습니다." -#: commands/user.c:1644 +#: commands/user.c:1637 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "\"%s\" 롤의 권한을 가진 롤만 해당 객체를 다시 지정 할 수 있습니다." -#: commands/user.c:1740 +#: commands/user.c:1733 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "\"%s\" 롤은 다른 롤의 맴버가 될 수 없음" -#: commands/user.c:1753 +#: commands/user.c:1746 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "\"%s\" 롤은 \"%s\" 롤의 구성원입니다" -#: commands/user.c:1793 commands/user.c:1819 +#: commands/user.c:1786 commands/user.c:1812 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "%s 옵션은 이 롤에 권한 부여한 롤에게 다시 부여될 수 없습니다." -#: commands/user.c:1896 +#: commands/user.c:1889 #, c-format msgid "" "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "\"%s\" 롤은 \"%s\"롤의 구성원입니다, 해당 작업 롤: \"%s\"" -#: commands/user.c:2031 +#: commands/user.c:2024 #, c-format msgid "" "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "\"%s\" 롤은 \"%s\"롤의 구성원이 아닙니다, 해당 작업 롤: \"%s\"" -#: commands/user.c:2131 +#: commands/user.c:2124 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "\"%s\" 롤은 명시적 맴버를 가질 수 없음" -#: commands/user.c:2142 commands/user.c:2165 +#: commands/user.c:2135 commands/user.c:2158 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "\"%s\" 롤 권한을 지정할 수 없음" -#: commands/user.c:2144 +#: commands/user.c:2137 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "%s 속성이 있는 롤만 %s 속성 권한을 부여할 수 있음." -#: commands/user.c:2149 commands/user.c:2172 +#: commands/user.c:2142 commands/user.c:2165 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "\"%s\" 롤 권한 회수할 수 없음" -#: commands/user.c:2151 +#: commands/user.c:2144 #, c-format msgid "" "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "%s 속성이 있는 롤만이 %s 속성 권한을 회수할 수 있음." -#: commands/user.c:2167 +#: commands/user.c:2160 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "%s 옵션을 롤(해당 롤: \"%s\")만이 이 롤 권한을 부여할 수 있음." -#: commands/user.c:2174 +#: commands/user.c:2167 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "%s 옵션을 롤(해당 롤: \"%s\")만이 이 롤 권한을 회수할 수 있음." -#: commands/user.c:2254 commands/user.c:2263 +#: commands/user.c:2247 commands/user.c:2256 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "\"%s\" 롤 권한을 부여할 수 없음" -#: commands/user.c:2256 +#: commands/user.c:2249 #, c-format msgid "" "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "\"%s\" 롤 권한이 있는 롤만이 이 롤 권한을 부여할 수 있음." -#: commands/user.c:2265 +#: commands/user.c:2258 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "권한 부여자는 %s 옵션(해당 롤: \"%s\")이 있어야 함" -#: commands/user.c:2273 +#: commands/user.c:2266 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "\"%s\" 롤이 부여한 권한을 회수 할 수 있는 권한 없음" -#: commands/user.c:2275 +#: commands/user.c:2268 #, c-format msgid "" "Only roles with privileges of role \"%s\" may revoke privileges granted by " @@ -13673,17 +14185,17 @@ msgid "" msgstr "" "\"%s\" 롤 권한이 있는 롤만이 이 롤에 의해 부여한 권한을 회수할 수 있음." -#: commands/user.c:2498 utils/adt/acl.c:1309 +#: commands/user.c:2491 utils/adt/acl.c:1324 #, c-format msgid "dependent privileges exist" msgstr "의존적인 권한이 존재합니다" -#: commands/user.c:2499 utils/adt/acl.c:1310 +#: commands/user.c:2492 utils/adt/acl.c:1325 #, c-format msgid "Use CASCADE to revoke them too." msgstr "그것들을 취소하려면 \"CASCADE\"를 사용하세요." -#: commands/vacuum.c:137 +#: commands/vacuum.c:134 #, c-format msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" msgstr "" @@ -13757,42 +14269,42 @@ msgstr "" msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s 명령은 VACUUM, ANALYZE 명령에서 실행 될 수 없음" -#: commands/vacuum.c:733 +#: commands/vacuum.c:730 #, c-format msgid "permission denied to vacuum \"%s\", skipping it" msgstr "\"%s\" 청소할 접근 권한 없음, 건너 뜀" -#: commands/vacuum.c:746 +#: commands/vacuum.c:743 #, c-format msgid "permission denied to analyze \"%s\", skipping it" msgstr "\"%s\" 통계정보 수집할 권한 없음, 건너 뜀" -#: commands/vacuum.c:824 commands/vacuum.c:921 +#: commands/vacuum.c:821 commands/vacuum.c:918 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "\"%s\" 개체 vacuum 건너뜀 --- 사용 가능한 잠금이 없음" -#: commands/vacuum.c:829 +#: commands/vacuum.c:826 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "\"%s\" 개체 vacuum 건너뜀 --- 해당 릴레이션 없음" -#: commands/vacuum.c:845 commands/vacuum.c:926 +#: commands/vacuum.c:842 commands/vacuum.c:923 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "\"%s\" 분석 건너뜀 --- 잠글 수 없음" -#: commands/vacuum.c:850 +#: commands/vacuum.c:847 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "\"%s\" 분석 건너뜀 --- 릴레이션어 없음" -#: commands/vacuum.c:1161 +#: commands/vacuum.c:1139 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" msgstr "튜플을 지우고, 얼려버려기 위한 시작점이 너무 옛날 시점입니다." -#: commands/vacuum.c:1162 commands/vacuum.c:1167 +#: commands/vacuum.c:1140 commands/vacuum.c:1145 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -13805,41 +14317,41 @@ msgstr "" "합니다." # # search5 부분 -#: commands/vacuum.c:1166 +#: commands/vacuum.c:1144 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "영구 보관 처리할 multixact 값이 너무 옛날 것입니다." -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1900 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "" "몇몇 데이터베이스가 20억 이상의 트랜잭션을 처리했음에도 불구하고 청소가되지 " "않았습니다" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1901 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "이미 트래잭션 ID 겹침 현상으로 자료 손실이 발생했을 수도 있습니다." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2080 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" "\"%s\" 건너뜀 --- 테이블이 아닌 것 또는 특별 시스템 테이블 등은 청소할 수 없" "음" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2512 #, c-format -msgid "scanned index \"%s\" to remove %d row versions" -msgstr "\"%s\" 인덱스를 스캔해서 %d개의 행 버전들을 지웠습니다" +msgid "scanned index \"%s\" to remove %lld row versions" +msgstr "\"%s\" 인덱스를 스캔해서 %lld개의 행 버전을 지웠음" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2531 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "\"%s\" 인덱스는 %.0f 행 버전을 %u 페이지에서 포함하고 있습니다." -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2535 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -13850,14 +14362,14 @@ msgstr "" "%u개 인덱스 페이지를 새롭게 삭제했습니다.\n" "%u개 인덱스 페이지를 현재 삭제해서, %u개 페이지를 다시 사용합니다." -#: commands/vacuumparallel.c:677 +#: commands/vacuumparallel.c:707 #, 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)" msgstr[0] "인덱스 청소를 위해 %d 개의 병렬 청소 작업자가 실행됨 (예상값: %d)" -#: commands/vacuumparallel.c:683 +#: commands/vacuumparallel.c:713 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "" @@ -13920,7 +14432,7 @@ msgstr "쿼리보다 먼저 SET TRANSACTION ISOLATION LEVEL을 호출해야 함" msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "하위 트랜잭션에서 SET TRANSACTION ISOLATION LEVEL을 호출하지 않아야 함" -#: commands/variable.c:606 storage/lmgr/predicate.c:1629 +#: commands/variable.c:606 storage/lmgr/predicate.c:1685 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "읽기 전용 보조 서버 상태에서는 serializable 모드를 사용할 수 없음" @@ -13954,63 +14466,73 @@ msgstr "\"client_encoding\" 값을 지금은 바꿀 수 없음" #: commands/variable.c:781 #, c-format -msgid "cannot change client_encoding during a parallel operation" -msgstr "병렬 작업 중에는 client_encoding 설정을 할 수 없음" +msgid "cannot change \"client_encoding\" during a parallel operation" +msgstr "병렬 작업 중에는 \"client_encoding\" 설정을 할 수 없음" + +#: commands/variable.c:876 +#, c-format +msgid "permission will be denied to set session authorization \"%s\"" +msgstr "set session authorization \"%s\" 작업 권한 거부될 것임" + +#: commands/variable.c:881 +#, c-format +msgid "permission denied to set session authorization \"%s\"" +msgstr "set session authorization \"%s\" 작업 권한 없음" -#: commands/variable.c:948 +#: commands/variable.c:991 #, c-format msgid "permission will be denied to set role \"%s\"" -msgstr "권한이 \"%s\" 롤 권한 지정을 거부할 것입니다" +msgstr "set role \"%s\" 작업 권한 거부될 것임" -#: commands/variable.c:953 +#: commands/variable.c:996 #, c-format msgid "permission denied to set role \"%s\"" -msgstr "\"%s\" 롤 권한을 지정할 수 없음" +msgstr "set role \"%s\" 작업 권한 없음" -#: commands/variable.c:1153 +#: commands/variable.c:1200 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour 기능을 뺀 채로 서버가 만들어졌습니다." -#: commands/variable.c:1181 +#: commands/variable.c:1228 #, c-format msgid "" -"effective_io_concurrency must be set to 0 on platforms that lack " +"\"effective_io_concurrency\" must be set to 0 on platforms that lack " "posix_fadvise()." msgstr "" -"posix_fadvise() 함수에 문제가 있는 플랫폼에서는 effective_io_concurrency 설정" -"값이 0 이어야 합니다." +"posix_fadvise() 함수에 문제가 있는 플랫폼에서는 \"effective_io_concurrency\" " +"설정값이 0 이어야 합니다." -#: commands/variable.c:1194 +#: commands/variable.c:1241 #, c-format msgid "" -"maintenance_io_concurrency must be set to 0 on platforms that lack " +"\"maintenance_io_concurrency\" must be set to 0 on platforms that lack " "posix_fadvise()." msgstr "" -"posix_fadvise() 함수에 문제가 있는 플랫폼에서는 maintenance_io_concurrency 설" -"정값이 0 이어야 합니다." +"posix_fadvise() 함수에 문제가 있는 플랫폼에서는 " +"\"maintenance_io_concurrency\" 설정값이 0 이어야 합니다." -#: commands/variable.c:1207 +#: commands/variable.c:1254 #, c-format msgid "SSL is not supported by this build" msgstr "SSL 접속 기능을 뺀 채로 서버가 만들어졌습니다." -#: commands/view.c:84 +#: commands/view.c:79 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "\"%s\" 칼럼 자료 처리를 위한 정렬 규칙을 결정할 수 없음" -#: commands/view.c:279 commands/view.c:290 +#: commands/view.c:274 commands/view.c:285 #, c-format msgid "cannot drop columns from view" msgstr "뷰에서 칼럼을 삭제할 수 없음" -#: commands/view.c:295 +#: commands/view.c:290 #, c-format msgid "cannot change name of view column \"%s\" to \"%s\"" msgstr "뷰에서 \"%s\" 칼럼 이름을 \"%s\"(으)로 바꿀 수 없음" -#: commands/view.c:298 +#: commands/view.c:293 #, c-format msgid "" "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead." @@ -14018,40 +14540,40 @@ msgstr "" "대신에 ALTER VIEW ... RENAME COLUMN ... 구문을 이용해서 뷰 칼럼 이름을 바꾸" "세요." -#: commands/view.c:309 +#: commands/view.c:304 #, c-format msgid "cannot change data type of view column \"%s\" from %s to %s" msgstr "뷰에서 \"%s\" 칼럼 자료형을을 %s에서 %s(으)로 바꿀 수 없음" -#: commands/view.c:323 +#: commands/view.c:318 #, c-format msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\"" msgstr "" "뷰에서 \"%s\" 칼럼 자료형의 문자 정렬 규칙을 \"%s\"에서 \"%s\"(으)로 바꿀 수 " "없음" -#: commands/view.c:392 +#: commands/view.c:387 #, c-format msgid "views must not contain SELECT INTO" msgstr "뷰에는 SELECT INTO 구문을 포함할 수 없음" -#: commands/view.c:404 +#: commands/view.c:399 #, c-format msgid "views must not contain data-modifying statements in WITH" msgstr "뷰로 사용될 쿼리의 WITH 절에는 자료 변경 구문이 있으면 안됩니다." -#: commands/view.c:474 +#: commands/view.c:469 #, c-format msgid "CREATE VIEW specifies more column names than columns" msgstr "CREATE VIEW 는 columns 보다는 좀더 많은 열 이름을 명시해야 한다" -#: commands/view.c:482 +#: commands/view.c:477 #, c-format msgid "views cannot be unlogged because they do not have storage" msgstr "" "뷰는 저장 공간을 사용하지 않기 때문에 unlogged 속성을 지정할 수 없습니다." -#: commands/view.c:496 +#: commands/view.c:491 #, c-format msgid "view \"%s\" will be a temporary view" msgstr "\"%s\" 뷰는 임시적인 뷰로 만들어집니다" @@ -14089,121 +14611,121 @@ msgstr "\"%s\" 커서가 로우에 놓여 있지 않음" msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "\"%s\" 커서는 \"%s\" 테이블의 단순 업데이트 가능한 스캔이 아님" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2498 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2555 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "" "%d번째 매개 변수의 자료형(%s)이 미리 준비된 실행계획의 자료형(%s)과 다릅니다" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2510 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2567 #, c-format msgid "no value found for parameter %d" msgstr "%d번째 매개 변수 값이 없습니다" -#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 -#: executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 -#: executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 -#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 -#: executor/nodeModifyTable.c:233 +#: executor/execExpr.c:642 executor/execExpr.c:649 executor/execExpr.c:655 +#: executor/execExprInterp.c:4852 executor/execExprInterp.c:4869 +#: executor/execExprInterp.c:4968 executor/nodeModifyTable.c:203 +#: executor/nodeModifyTable.c:214 executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:239 #, c-format msgid "table row type and query-specified row type do not match" msgstr "테이블 행 형식과 쿼리 지정 행 형식이 일치하지 않음" -#: executor/execExpr.c:638 executor/nodeModifyTable.c:198 +#: executor/execExpr.c:643 executor/nodeModifyTable.c:204 #, c-format msgid "Query has too many columns." msgstr "쿼리에 칼럼이 너무 많습니다." -#: executor/execExpr.c:645 executor/nodeModifyTable.c:226 +#: executor/execExpr.c:650 executor/nodeModifyTable.c:232 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "쿼리에서 서수 위치 %d에 있는 삭제된 칼럼의 값을 제공합니다." -#: executor/execExpr.c:651 executor/execExprInterp.c:4252 -#: executor/nodeModifyTable.c:209 +#: executor/execExpr.c:656 executor/execExprInterp.c:4870 +#: executor/nodeModifyTable.c:215 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "" "테이블에는 %s 형식이 있는데(서수 위치 %d) 쿼리에는 %s이(가) 필요합니다." -#: executor/execExpr.c:1099 parser/parse_agg.c:827 +#: executor/execExpr.c:1104 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "윈도우 함수 호출을 중첩할 수 없음" -#: executor/execExpr.c:1618 +#: executor/execExpr.c:1649 #, c-format msgid "target type is not an array" msgstr "대상 자료형이 배열이 아닙니다." -#: executor/execExpr.c:1958 +#: executor/execExpr.c:1989 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "ROW() 칼럼은 %s 자료형을 가집니다. %s 자료형 대신에" -#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1032 +#: executor/execExpr.c:2653 executor/execSRF.c:718 parser/parse_func.c:138 +#: parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" msgstr[0] "함수에 최대 %d개의 인자를 전달할 수 있음" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 -#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2680 executor/execSRF.c:738 executor/functions.c:1068 +#: utils/adt/jsonfuncs.c:4054 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "set-values 함수(테이블 리턴 함수)가 set 정의 없이 사용되었습니다 (테이블과 해" "당 열 alias 지정하세요)" -#: executor/execExpr.c:3007 parser/parse_node.c:277 parser/parse_node.c:327 +#: executor/execExpr.c:3086 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "" "이 자료형은 subscript 형을 지원하지 않기 때문에, %s subscript 자료형을 사용" "할 수 없음" -#: executor/execExpr.c:3135 executor/execExpr.c:3157 +#: executor/execExpr.c:3214 executor/execExpr.c:3236 #, c-format msgid "type %s does not support subscripted assignment" msgstr "%s 자료형은 subscript 지정을 지원하지 않음" -#: executor/execExprInterp.c:1962 +#: executor/execExprInterp.c:2019 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "%d 번째 속성(대상 자료형 %s)이 삭제되었음" -#: executor/execExprInterp.c:1968 +#: executor/execExprInterp.c:2025 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "%d 번째 속성(대상 자료형 %s)의 자료형이 잘못되었음" -#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 -#: executor/execExprInterp.c:3150 +#: executor/execExprInterp.c:2027 executor/execExprInterp.c:3226 +#: executor/execExprInterp.c:3272 #, c-format msgid "Table has type %s, but query expects %s." msgstr "테이블에는 %s 자료형이지만, 쿼리에서는 %s 자료형입니다." -#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 -#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1743 -#: utils/cache/typcache.c:1902 utils/cache/typcache.c:2049 -#: utils/fmgr/funcapi.c:561 +#: executor/execExprInterp.c:2107 utils/adt/expandedrecord.c:99 +#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 +#: utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "%s 자료형은 복합 자료형이 아닙니다" -#: executor/execExprInterp.c:2588 +#: executor/execExprInterp.c:2710 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF 구문은 이 테이블 형 대상으로 지원하지 않습니다." -#: executor/execExprInterp.c:2801 +#: executor/execExprInterp.c:2923 #, c-format msgid "cannot merge incompatible arrays" msgstr "배열 형태가 서로 틀려 병합할 수 없습니다" -#: executor/execExprInterp.c:2802 +#: executor/execExprInterp.c:2924 #, c-format msgid "" "Array with element type %s cannot be included in ARRAY construct with " @@ -14212,59 +14734,79 @@ msgstr "" "%s 자료형의 요소로 구성된 배열은 %s 자료형의 요소로 구성된 ARRAY 구문에 포함" "될 수 없습니다." -#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:265 -#: utils/adt/arrayfuncs.c:575 utils/adt/arrayfuncs.c:1329 -#: utils/adt/arrayfuncs.c:3483 utils/adt/arrayfuncs.c:5567 -#: utils/adt/arrayfuncs.c:6084 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2945 utils/adt/arrayfuncs.c:1305 +#: utils/adt/arrayfuncs.c:3503 utils/adt/arrayfuncs.c:5593 +#: utils/adt/arrayfuncs.c:6110 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "지정한 배열 크기(%d)가 최대치(%d)를 초과했습니다" -#: executor/execExprInterp.c:2843 executor/execExprInterp.c:2878 +#: executor/execExprInterp.c:2965 executor/execExprInterp.c:3000 #, c-format msgid "" "multidimensional arrays must have array expressions with matching dimensions" msgstr "다차원 배열에는 일치하는 차원이 포함된 배열 식이 있어야 함" -#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:959 utils/adt/arrayfuncs.c:1568 -#: utils/adt/arrayfuncs.c:3285 utils/adt/arrayfuncs.c:3513 -#: utils/adt/arrayfuncs.c:6176 utils/adt/arrayfuncs.c:6517 -#: utils/adt/arrayutils.c:104 utils/adt/arrayutils.c:113 -#: utils/adt/arrayutils.c:120 +#: executor/execExprInterp.c:2977 utils/adt/array_expanded.c:274 +#: utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 +#: utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 +#: utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 +#: utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 +#: utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 +#: utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 +#: utils/adt/arrayfuncs.c:3533 utils/adt/arrayfuncs.c:5365 +#: utils/adt/arrayfuncs.c:6202 utils/adt/arrayfuncs.c:6546 +#: utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 +#: utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "배열 크기가 최대치 (%d)를 초과했습니다" -#: executor/execExprInterp.c:3103 executor/execExprInterp.c:3149 +#: executor/execExprInterp.c:3225 executor/execExprInterp.c:3271 #, c-format msgid "attribute %d has wrong type" msgstr "%d 속성의 형식이 잘못됨" -#: executor/execExprInterp.c:3735 utils/adt/domains.c:155 +#: executor/execExprInterp.c:3857 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "%s 도메인에서는 null 값을 허용하지 않습니다" -#: executor/execExprInterp.c:3750 utils/adt/domains.c:193 +#: executor/execExprInterp.c:3872 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "%s 도메인용 값이 \"%s\" 체크 제약 조건을 위반했습니다" -#: executor/execExprInterp.c:4235 +#: executor/execExprInterp.c:4447 +#, c-format +msgid "no SQL/JSON item found for specified path of column \"%s\"" +msgstr "\"%s\" 칼럼에 지정한 패스에서는 SQL/JSON 아이템을 찾을 수 없음" + +#: executor/execExprInterp.c:4452 +#, c-format +msgid "no SQL/JSON item found for specified path" +msgstr "지정한 패스에서는 SQL/JSON 아이템을 찾을 수 없음" + +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:4652 executor/execExprInterp.c:4660 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "%s 표현식 (%s)은 RETURNING 형식으로 바꿀 수 없음" + +#: executor/execExprInterp.c:4853 #, 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] "" "테이블 행에는 %d개 속성이 포함되어 있는데 쿼리에는 %d개가 필요합니다." -#: executor/execExprInterp.c:4351 executor/execSRF.c:978 +#: executor/execExprInterp.c:4969 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "서수 위치 %d의 삭제된 속성에서 실제 스토리지 불일치가 발생합니다." -#: executor/execIndexing.c:588 +#: executor/execIndexing.c:593 #, c-format msgid "" "ON CONFLICT does not support deferrable unique constraints/exclusion " @@ -14273,32 +14815,32 @@ msgstr "" "지연 가능한 고유 제약조건이나 제외 제약 조건은 ON CONFLICT 판별자로 사용할 " "수 없습니다." -#: executor/execIndexing.c:865 +#: executor/execIndexing.c:870 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "\"%s\" exclusion 제약 조건을 만들 수 없음" -#: executor/execIndexing.c:868 +#: executor/execIndexing.c:873 #, c-format msgid "Key %s conflicts with key %s." msgstr "%s 키와 %s 가 충돌함" -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:875 #, c-format msgid "Key conflicts exist." msgstr "키 충돌 발생" -#: executor/execIndexing.c:876 +#: executor/execIndexing.c:881 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "\"%s\" exclusion 제약 조건에 따라 키 값 충돌이 발생했습니다." -#: executor/execIndexing.c:879 +#: executor/execIndexing.c:884 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "%s 키가 이미 있는 %s 키와 충돌합니다." -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:886 #, c-format msgid "Key conflicts with existing key." msgstr "키가 기존 키와 충돌함" @@ -14313,137 +14855,89 @@ msgstr "\"%s\" 시퀀스를 바꿀 수 없음" msgid "cannot change TOAST relation \"%s\"" msgstr "\"%s\" TOAST 릴레이션을 바꿀 수 없음" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 -#: rewrite/rewriteHandler.c:3966 -#, c-format -msgid "cannot insert into view \"%s\"" -msgstr "\"%s\" 뷰에 자료를 입력할 수 없습니다" - -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 -#: rewrite/rewriteHandler.c:3969 -#, c-format -msgid "" -"To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " -"an unconditional ON INSERT DO INSTEAD rule." -msgstr "" -"뷰를 통해 자료를 입력하려면, INSTEAD OF INSERT 트리거나 ON INSERT DO INSTEAD " -"룰을 사용하세요" - -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 -#: rewrite/rewriteHandler.c:3974 -#, c-format -msgid "cannot update view \"%s\"" -msgstr "\"%s\" 뷰로는 자료를 갱신할 수 없습니다" - -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 -#: rewrite/rewriteHandler.c:3977 -#, c-format -msgid "" -"To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " -"unconditional ON UPDATE DO INSTEAD rule." -msgstr "" -"뷰 자료 갱신 기능은 INSTEAD OF UPDATE 트리거를 사용하거나, ON UPDATE DO " -"INSTEAD 속성으로 룰을 만들어서 사용해 보세요." - -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 -#: rewrite/rewriteHandler.c:3982 -#, c-format -msgid "cannot delete from view \"%s\"" -msgstr "\"%s\" 뷰로는 자료를 삭제할 수 없습니다" - -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 -#: rewrite/rewriteHandler.c:3985 -#, c-format -msgid "" -"To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " -"unconditional ON DELETE DO INSTEAD rule." -msgstr "" -"뷰 자료 삭제 기능은 INSTEAD OF DELETE 트리거를 사용하거나, ON DELETE DO " -"INSTEAD 속성으로 룰을 만들어서 사용해 보세요." - -#: executor/execMain.c:1092 +#: executor/execMain.c:1064 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "\"%s\" 구체화된 뷰를 바꿀 수 없음" -#: executor/execMain.c:1104 +#: executor/execMain.c:1076 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "\"%s\" 외부 테이블에 자료를 입력할 수 없음" -#: executor/execMain.c:1110 +#: executor/execMain.c:1082 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "\"%s\" 외부 테이블은 자료 입력을 허용하지 않음" -#: executor/execMain.c:1117 +#: executor/execMain.c:1089 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "\"%s\" 외부 테이블에 자료를 변경 할 수 없음" -#: executor/execMain.c:1123 +#: executor/execMain.c:1095 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "\"%s\" 외부 테이블은 자료 변경을 허용하지 않음" -#: executor/execMain.c:1130 +#: executor/execMain.c:1102 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "\"%s\" 외부 테이블에 자료를 삭제 할 수 없음" -#: executor/execMain.c:1136 +#: executor/execMain.c:1108 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "\"%s\" 외부 테이블은 자료 삭제를 허용하지 않음" -#: executor/execMain.c:1147 +#: executor/execMain.c:1119 #, c-format msgid "cannot change relation \"%s\"" msgstr "\"%s\" 릴레이션을 바꿀 수 없음" -#: executor/execMain.c:1174 +#: executor/execMain.c:1146 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "\"%s\" 시퀀스에서 로우를 잠글 수 없음" -#: executor/execMain.c:1181 +#: executor/execMain.c:1153 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "\"%s\" TOAST 릴레이션에서 로우를 잠글 수 없음" -#: executor/execMain.c:1188 +#: executor/execMain.c:1160 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "\"%s\" 뷰에서 로우를 잠글 수 없음" -#: executor/execMain.c:1196 +#: executor/execMain.c:1168 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "\"%s\" 구체화된 뷰에서 로우를 잠글 수 없음" -#: executor/execMain.c:1205 executor/execMain.c:2708 +#: executor/execMain.c:1177 executor/execMain.c:2687 #: executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "\"%s\" 외부 테이블에서 로우를 잠글 수 없음" -#: executor/execMain.c:1211 +#: executor/execMain.c:1183 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "\"%s\" 릴레이션에서 로우를 잠글 수 없음" -#: executor/execMain.c:1922 +#: executor/execMain.c:1901 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "새 자료가 \"%s\" 릴레이션의 파티션 제약 조건을 위반했습니다" -#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 -#: executor/execMain.c:2169 +#: executor/execMain.c:1903 executor/execMain.c:1987 executor/execMain.c:2038 +#: executor/execMain.c:2148 #, c-format msgid "Failing row contains %s." msgstr "실패한 자료: %s" -#: executor/execMain.c:2005 +#: executor/execMain.c:1984 #, c-format msgid "" "null value in column \"%s\" of relation \"%s\" violates not-null constraint" @@ -14451,28 +14945,28 @@ msgstr "" "\"%s\" 칼럼(해당 릴레이션 \"%s\")의 null 값이 not null 제약조건을 위반했습니" "다." -#: executor/execMain.c:2057 +#: executor/execMain.c:2036 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "새 자료가 \"%s\" 릴레이션의 \"%s\" 체크 제약 조건을 위반했습니다" -#: executor/execMain.c:2167 +#: executor/execMain.c:2146 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "새 자료가 \"%s\" 뷰의 체크 제약 조건을 위반했습니다" -#: executor/execMain.c:2177 +#: executor/execMain.c:2156 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "" "새 자료가 \"%s\" 로우 단위 보안 정책을 위반했습니다, 해당 테이블: \"%s\"" -#: executor/execMain.c:2182 +#: executor/execMain.c:2161 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "새 자료가 \"%s\" 테이블의 로우 단위 보안 정책을 위반했습니다." -#: executor/execMain.c:2190 +#: executor/execMain.c:2169 #, c-format msgid "" "target row violates row-level security policy \"%s\" (USING expression) for " @@ -14481,7 +14975,7 @@ msgstr "" "대상 로우가 \"%s\" 로우 단위 보안 정책(USING 절 사용)을 위반했습니다, 해당 테" "이블: \"%s\"" -#: executor/execMain.c:2195 +#: executor/execMain.c:2174 #, c-format msgid "" "target row violates row-level security policy (USING expression) for table " @@ -14490,7 +14984,7 @@ msgstr "" "대상 로우가 \"%s\" 테이블의 로우 단위 보안 정책(USING 절 사용)을 위반했습니" "다." -#: executor/execMain.c:2202 +#: executor/execMain.c:2181 #, c-format msgid "" "new row violates row-level security policy \"%s\" (USING expression) for " @@ -14499,25 +14993,25 @@ msgstr "" "새 자료가 \"%s\" 로우 단위 보안 정책(USING 절 사용)을 위반했습니다, 해당 테이" "블: \"%s\"" -#: executor/execMain.c:2207 +#: executor/execMain.c:2186 #, c-format msgid "" -"new row violates row-level security policy (USING expression) for table \"%s" -"\"" +"new row violates row-level security policy (USING expression) for table " +"\"%s\"" msgstr "" "새 자료가 \"%s\" 테이블의 로우 단위 보안 정책(USING 절 사용)을 위반했습니다." -#: executor/execPartition.c:330 +#: executor/execPartition.c:327 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "해당 로우를 위한 \"%s\" 릴레이션용 파티션이 없음" -#: executor/execPartition.c:333 +#: executor/execPartition.c:330 #, c-format msgid "Partition key of the failing row contains %s." msgstr "실패한 로우의 파티션 키 값: %s" -#: executor/execReplication.c:231 executor/execReplication.c:415 +#: executor/execReplication.c:272 executor/execReplication.c:456 #, c-format msgid "" "tuple to be locked was already moved to another partition due to concurrent " @@ -14525,50 +15019,50 @@ msgid "" msgstr "" "다른 업데이트 작업으로 잠굴 튜플이 이미 다른 파티션으로 이동되었음, 재시도함" -#: executor/execReplication.c:235 executor/execReplication.c:419 +#: executor/execReplication.c:276 executor/execReplication.c:460 #, c-format msgid "concurrent update, retrying" msgstr "동시 업데이트, 다시 시도 중" -#: executor/execReplication.c:241 executor/execReplication.c:425 +#: executor/execReplication.c:282 executor/execReplication.c:466 #, c-format msgid "concurrent delete, retrying" msgstr "동시 삭제, 다시 시도 중" -#: executor/execReplication.c:311 parser/parse_cte.c:308 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 -#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3832 -#: utils/adt/arrayfuncs.c:4387 utils/adt/arrayfuncs.c:6397 -#: utils/adt/rowtypes.c:1230 +#: executor/execReplication.c:352 parser/parse_cte.c:302 +#: parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 +#: utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3852 +#: utils/adt/arrayfuncs.c:4407 utils/adt/arrayfuncs.c:6426 +#: utils/adt/rowtypes.c:1220 #, c-format msgid "could not identify an equality operator for type %s" msgstr "" "%s 자료형에서 사용할 동등 연산자(equality operator)를 찾을 수 없습니다." -#: executor/execReplication.c:642 executor/execReplication.c:648 +#: executor/execReplication.c:687 executor/execReplication.c:693 #, c-format msgid "cannot update table \"%s\"" msgstr "\"%s\" 테이블에 자료를 변경 할 수 없음" -#: executor/execReplication.c:644 executor/execReplication.c:656 +#: executor/execReplication.c:689 executor/execReplication.c:701 #, c-format msgid "" "Column used in the publication WHERE expression is not part of the replica " "identity." msgstr "발행의 WHERE 절에서 사용한 칼럼이 복제 식별자의 한 부분이 아닙니다." -#: executor/execReplication.c:650 executor/execReplication.c:662 +#: executor/execReplication.c:695 executor/execReplication.c:707 #, c-format msgid "" "Column list used by the publication does not cover the replica identity." msgstr "발행에서 사용되는 칼럼 목록이 복제 식별자를 모두 포함하지 못했습니다." -#: executor/execReplication.c:654 executor/execReplication.c:660 +#: executor/execReplication.c:699 executor/execReplication.c:705 #, c-format msgid "cannot delete from table \"%s\"" msgstr "\"%s\" 테이블에 자료를 삭제 할 수 없음" -#: executor/execReplication.c:680 +#: executor/execReplication.c:725 #, c-format msgid "" "cannot update table \"%s\" because it does not have a replica identity and " @@ -14577,52 +15071,52 @@ msgstr "" "\"%s\" 테이블 업데이트 실패, 이 테이블에는 복제용 식별자를 지정하지 않았거" "나, updates 옵션 없이 발행했습니다" -#: executor/execReplication.c:682 +#: executor/execReplication.c:727 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "" "업데이트를 하려면, ALTER TABLE 명령어에서 REPLICA IDENTITY 옵션을 사용하세요" -#: executor/execReplication.c:686 +#: executor/execReplication.c:731 #, c-format msgid "" "cannot delete from table \"%s\" because it does not have a replica identity " "and publishes deletes" msgstr "\"%s\" 테이블 자료 삭제 실패, 복제 식별자와 deletes 발행을 안함" -#: executor/execReplication.c:688 +#: executor/execReplication.c:733 #, c-format msgid "" "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "삭제 하려면, ALTER TABLE 명령어에서 REPLICA IDENTITY 옵션을 사용하세요" -#: executor/execReplication.c:704 +#: executor/execReplication.c:749 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "\"%s.%s\" 릴레이션은 논리 복제 대상이 될 수 없음" -#: executor/execSRF.c:316 +#: executor/execSRF.c:315 #, c-format msgid "rows returned by function are not all of the same row type" msgstr "함수 호출로 반환되는 로우가 같은 로우형의 전부가 아닙니다" -#: executor/execSRF.c:366 +#: executor/execSRF.c:365 #, c-format msgid "table-function protocol for value-per-call mode was not followed" msgstr "" "value-per-call 모드를 위한 테이블 함수 프로토콜이 뒤이어 오지 않았습니다" -#: executor/execSRF.c:374 executor/execSRF.c:668 +#: executor/execSRF.c:373 executor/execSRF.c:667 #, c-format msgid "table-function protocol for materialize mode was not followed" msgstr "materialize 모드를 위한 테이블 함수 프로토콜이 뒤이어 오지 않았습니다" -#: executor/execSRF.c:381 executor/execSRF.c:686 +#: executor/execSRF.c:380 executor/execSRF.c:685 #, c-format msgid "unrecognized table-function returnMode: %d" msgstr "알 수 없는 테이블-함수 리턴모드: %d" -#: executor/execSRF.c:895 +#: executor/execSRF.c:894 #, c-format msgid "" "function returning setof record called in context that cannot accept type " @@ -14630,35 +15124,45 @@ msgid "" msgstr "" "setof 레코드 반환 함수가 type 레코드를 허용하지 않는 컨텍스트에서 호출됨" -#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977 +#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976 #, c-format msgid "function return row and query-specified return row do not match" msgstr "함수 반환 행과 쿼리 지정 반환 행이 일치하지 않음" -#: executor/execSRF.c:952 +#: executor/execSRF.c:951 #, c-format msgid "Returned row contains %d attribute, but query expects %d." msgid_plural "Returned row contains %d attributes, but query expects %d." msgstr[0] "" "반환된 행에는 %d개 속성이 포함되어 있는데 쿼리에는 %d개가 필요합니다." -#: executor/execSRF.c:968 +#: executor/execSRF.c:967 #, c-format msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "반환된 형식은 %s인데(서수 위치 %d) 쿼리에는 %s이(가) 필요합니다." -#: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:713 +#: executor/execTuples.c:147 executor/execTuples.c:368 +#: executor/execTuples.c:563 executor/execTuples.c:772 #, c-format msgid "cannot retrieve a system column in this context" msgstr "이 컨텍스트에는 시스템 칼럼을 찾을 수 없음" -#: executor/execUtils.c:744 +#: executor/execTuples.c:163 executor/execTuples.c:580 +#, c-format +msgid "don't have transaction information for this type of tuple" +msgstr "튜플의 이런 형태에 대한 트랜잭션 정보가 없음" + +#: executor/execTuples.c:390 executor/execTuples.c:794 +#, c-format +msgid "don't have a storage tuple in this context" +msgstr "이 컨텍스트에는 a storage tuple 을 가질 수 없음." + +#: executor/execUtils.c:713 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "\"%s\" 구체화된 뷰가 아직 구체화되지 못했습니다." -#: executor/execUtils.c:746 +#: executor/execUtils.c:715 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "REFRESH MATERIALIZED VIEW 명령을 사용하세요." @@ -14668,117 +15172,118 @@ msgstr "REFRESH MATERIALIZED VIEW 명령을 사용하세요." msgid "could not determine actual type of argument declared %s" msgstr "%s 인자의 자료형으로 지정한 자료형의 기본 자료형을 찾을 수 없습니다" -#: executor/functions.c:512 +#: executor/functions.c:513 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "SQL 함수에서 클라이언트 대상 COPY to/from 작업을 할 수 없음" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:519 #, c-format msgid "%s is not allowed in an SQL function" msgstr "SQL 함수에서는 %s 구문을 허용하지 않음" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635 +#: executor/functions.c:527 executor/spi.c:1744 executor/spi.c:2657 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "%s 구문은 비휘발성 함수(non-volatile function)에서 허용하지 않습니다" -#: executor/functions.c:1450 +#: executor/functions.c:1452 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL 함수 \"%s\"의 문 %d" -#: executor/functions.c:1476 +#: executor/functions.c:1478 #, c-format msgid "SQL function \"%s\" during startup" msgstr "시작 중 SQL 함수 \"%s\"" -#: executor/functions.c:1561 +#: executor/functions.c:1563 #, c-format msgid "" "calling procedures with output arguments is not supported in SQL functions" msgstr "출력 인자를 포함한 프로시져 호출은 SQL 함수에서 지원하지 않습니다." -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1698 executor/functions.c:1736 +#: executor/functions.c:1750 executor/functions.c:1845 +#: executor/functions.c:1878 executor/functions.c:1892 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "리턴 자료형이 함수 정의에서 지정한 %s 리턴 자료형과 틀립니다" -#: executor/functions.c:1696 +#: executor/functions.c:1700 #, c-format msgid "" -"Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." +"Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE " +"RETURNING." msgstr "" -"함수 내용의 맨 마지막 구문은 SELECT 또는 INSERT/UPDATE/DELETE RETURNING이어" -"야 합니다." +"함수 내용의 맨 마지막 구문은 SELECT 또는 INSERT/UPDATE/DELETE/MERGE RETURNING" +"이어야 합니다." -#: executor/functions.c:1734 +#: executor/functions.c:1738 #, c-format msgid "Final statement must return exactly one column." msgstr "맨 마지막 구문은 정확히 하나의 칼럼만 반환해야 합니다." -#: executor/functions.c:1748 +#: executor/functions.c:1752 #, c-format msgid "Actual return type is %s." msgstr "실재 반환 자료형은 %s" -#: executor/functions.c:1838 +#: executor/functions.c:1847 #, c-format msgid "Final statement returns too many columns." msgstr "맨 마지막 구문이 너무 많은 칼럼을 반환합니다." -#: executor/functions.c:1871 +#: executor/functions.c:1880 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "" "맨 마지막 구문이 %s(기대되는 자료형: %s) 자료형을 %d 번째 칼럼에서 반환합니" "다." -#: executor/functions.c:1885 +#: executor/functions.c:1894 #, c-format msgid "Final statement returns too few columns." msgstr "맨 마지막 구문이 너무 적은 칼럼을 반환합니다." -#: executor/functions.c:1913 +#: executor/functions.c:1922 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "반환 자료형인 %s 자료형은 SQL 함수에서 지원되지 않음" -#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 +#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2975 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "%u OID 집계함수에 호환 가능한 입력 형식과 변환 형식이 있어야 함" -#: executor/nodeAgg.c:3967 parser/parse_agg.c:669 parser/parse_agg.c:697 +#: executor/nodeAgg.c:3966 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "집계 함수는 중첩되어 호출 할 수 없음" -#: executor/nodeCustom.c:154 executor/nodeCustom.c:165 +#: executor/nodeCustom.c:144 executor/nodeCustom.c:155 #, c-format msgid "custom scan \"%s\" does not support MarkPos" msgstr "\"%s\" 이름의 칼럼 탐색은 MarkPos 기능을 지원하지 않음" -#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173 +#: executor/nodeHashjoin.c:1131 executor/nodeHashjoin.c:1161 #, c-format msgid "could not rewind hash-join temporary file" msgstr "해시-조인 임시 파일을 되감을 수 없음" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:239 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "lossy distance 함수들은 인덱스 단독 탐색을 지원하지 않음" -#: executor/nodeLimit.c:374 +#: executor/nodeLimit.c:373 #, c-format msgid "OFFSET must not be negative" msgstr "OFFSET은 음수가 아니어야 함" -#: executor/nodeLimit.c:400 +#: executor/nodeLimit.c:399 #, c-format msgid "LIMIT must not be negative" msgstr "LIMIT는 음수가 아니어야 함" @@ -14793,31 +15298,31 @@ msgstr "RIGHT JOIN은 병합-조인 가능 조인 조건에서만 지원됨" msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOIN은 병합-조인 가능 조인 조건에서만 지원됨" -#: executor/nodeModifyTable.c:234 +#: executor/nodeModifyTable.c:240 #, c-format msgid "Query has too few columns." msgstr "쿼리에 칼럼이 너무 적습니다." -#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:1604 +#: executor/nodeModifyTable.c:1540 executor/nodeModifyTable.c:1614 #, c-format msgid "" "tuple to be deleted was already modified by an operation triggered by the " "current command" msgstr "현재 명령으로 실행된 트리거 작업으로 지울 자료가 이미 바뀌었습니다." -#: executor/nodeModifyTable.c:1758 +#: executor/nodeModifyTable.c:1769 #, c-format msgid "invalid ON UPDATE specification" msgstr "잘못된 ON UPDATE 옵션" -#: executor/nodeModifyTable.c:1759 +#: executor/nodeModifyTable.c:1770 #, c-format msgid "" "The result tuple would appear in a different partition than the original " "tuple." msgstr "결과 튜플이 원래 튜플이 아닌 다른 파티션에서 나타날 것입니다." -#: executor/nodeModifyTable.c:2217 +#: executor/nodeModifyTable.c:2226 #, c-format msgid "" "cannot move tuple across partitions when a non-root ancestor of the source " @@ -14826,7 +15331,7 @@ msgstr "" "참조키가 바로 해당 하위 파티션 테이블을 참조하는 경우 파티션 간 자료 이동은 " "할 수 없습니다." -#: executor/nodeModifyTable.c:2218 +#: executor/nodeModifyTable.c:2227 #, c-format msgid "" "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." @@ -14834,18 +15339,19 @@ msgstr "" "참조키가 \"%s\" 하위 파티션 테이블을 대상으로 합니다. 상위 파티션 테이블은 " "\"%s\" 테이블입니다." -#: executor/nodeModifyTable.c:2221 +#: executor/nodeModifyTable.c:2230 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "\"%s\" 테이블에 참조키 정의를 고려하세요." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2567 executor/nodeModifyTable.c:2955 +#: executor/nodeModifyTable.c:2596 executor/nodeModifyTable.c:3138 +#: executor/nodeModifyTable.c:3308 #, c-format msgid "%s command cannot affect row a second time" msgstr "%s 명령은 두번째 작업에는 아무런 영향을 주 않음" -#: executor/nodeModifyTable.c:2569 +#: executor/nodeModifyTable.c:2598 #, c-format msgid "" "Ensure that no rows proposed for insertion within the same command have " @@ -14854,19 +15360,7 @@ msgstr "" "동일한 명령 내에서 삽입하도록 제안된 행에 중복된 제한 값이 없는지 확인하십시" "오." -#: executor/nodeModifyTable.c:2957 -#, c-format -msgid "Ensure that not more than one source row matches any one target row." -msgstr "둘 이상의 소스 행이 하나의 대상 행과 일치하지 않는지 확인하십시오." - -#: executor/nodeModifyTable.c:3038 -#, c-format -msgid "" -"tuple to be deleted was already moved to another partition due to concurrent " -"update" -msgstr "동시 업데이트로 삭제할 튜플이 이미 다른 파티션으로 옮겨졌음" - -#: executor/nodeModifyTable.c:3077 +#: executor/nodeModifyTable.c:3131 executor/nodeModifyTable.c:3301 #, c-format msgid "" "tuple to be updated or deleted was already modified by an operation " @@ -14875,12 +15369,24 @@ msgstr "" "현재 명령으로 실행된 트리거 작업으로 변경하거나 지울 자료가 이미 바뀌었습니" "다." -#: executor/nodeSamplescan.c:260 +#: executor/nodeModifyTable.c:3140 executor/nodeModifyTable.c:3310 +#, c-format +msgid "Ensure that not more than one source row matches any one target row." +msgstr "둘 이상의 소스 행이 하나의 대상 행과 일치하지 않는지 확인하십시오." + +#: executor/nodeModifyTable.c:3209 +#, c-format +msgid "" +"tuple to be merged was already moved to another partition due to concurrent " +"update" +msgstr "합병될 튜플이 동시 업데이트로 이미 다른 파티션으로 옮겨졌음" + +#: executor/nodeSamplescan.c:244 #, c-format msgid "TABLESAMPLE parameter cannot be null" msgstr "TABLESAMPLE 절에는 반드시 부가 옵션값들이 있어야 합니다" -#: executor/nodeSamplescan.c:272 +#: executor/nodeSamplescan.c:256 #, c-format msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "TABLESAMPLE REPEATABLE 절은 더 이상의 부가 옵션을 쓰면 안됩니다." @@ -14891,7 +15397,7 @@ msgstr "TABLESAMPLE REPEATABLE 절은 더 이상의 부가 옵션을 쓰면 안 msgid "more than one row returned by a subquery used as an expression" msgstr "표현식에 사용된 서브쿼리 결과가 하나 이상의 행을 리턴했습니다" -#: executor/nodeTableFuncscan.c:375 +#: executor/nodeTableFuncscan.c:370 #, c-format msgid "namespace URI must not be null" msgstr "네임스페이스 URI 값은 null 일 수 없습니다." @@ -14901,17 +15407,17 @@ msgstr "네임스페이스 URI 값은 null 일 수 없습니다." msgid "row filter expression must not be null" msgstr "로우 필터 표현식은 null값이 아니여야 함" -#: executor/nodeTableFuncscan.c:415 +#: executor/nodeTableFuncscan.c:416 #, c-format msgid "column filter expression must not be null" msgstr "칼럼 필터 표현식은 null값이 아니여야 함" -#: executor/nodeTableFuncscan.c:416 +#: executor/nodeTableFuncscan.c:417 #, c-format msgid "Filter for column \"%s\" is null." msgstr "\"%s\" 칼럼용 필터가 null입니다." -#: executor/nodeTableFuncscan.c:506 +#: executor/nodeTableFuncscan.c:507 #, c-format msgid "null is not allowed in column \"%s\"" msgstr "\"%s\" 칼럼은 null 값을 허용하지 않습니다" @@ -14941,84 +15447,84 @@ msgstr "프래임 끝 위치값으로 null 값을 사용할 수 없습니다." msgid "frame ending offset must not be negative" msgstr "프래임 끝 위치값으로 음수 값을 사용할 수 없습니다." -#: executor/nodeWindowAgg.c:2909 +#: executor/nodeWindowAgg.c:2891 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "%s 집계 함수는 윈도우 함수로 사용될 수 없습니다" -#: executor/spi.c:242 executor/spi.c:342 +#: executor/spi.c:241 executor/spi.c:341 #, c-format msgid "invalid transaction termination" msgstr "잘못된 트랜잭션 마침" -#: executor/spi.c:257 +#: executor/spi.c:256 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "하위트랜잭션이 활성화 된 상태에서는 커밋 할 수 없음" -#: executor/spi.c:348 +#: executor/spi.c:347 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "하위트랜잭션이 활성화 된 상태에서는 롤백 할 수 없음" -#: executor/spi.c:472 +#: executor/spi.c:471 #, c-format msgid "transaction left non-empty SPI stack" msgstr "트랜잭션이 비어있지 않은 SPI 스택을 남겼습니다" -#: executor/spi.c:473 executor/spi.c:533 +#: executor/spi.c:472 executor/spi.c:532 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "\"SPI_finish\" 호출이 빠졌는지 확인하세요" -#: executor/spi.c:532 +#: executor/spi.c:531 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "하위 트랜잭션이 비어있지 않은 SPI 스택을 남겼습니다" -#: executor/spi.c:1600 +#: executor/spi.c:1602 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "멀티 쿼리를 커서로 열 수는 없습니다" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1610 +#: executor/spi.c:1612 #, c-format msgid "cannot open %s query as cursor" msgstr "%s 쿼리로 커서를 열 수 없음." -#: executor/spi.c:1716 +#: executor/spi.c:1718 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE는 지원되지 않음" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1719 parser/analyze.c:2928 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "스크롤 가능 커서는 READ ONLY여야 합니다." -#: executor/spi.c:2474 +#: executor/spi.c:2496 #, c-format msgid "empty query does not return tuples" msgstr "빈 쿼리는 튜플을 반환하지 않습니다." #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2548 +#: executor/spi.c:2570 #, c-format msgid "%s query does not return tuples" msgstr "%s 쿼리는 집합을 반환할 수 없습니다." -#: executor/spi.c:2963 +#: executor/spi.c:2987 #, c-format msgid "SQL expression \"%s\"" msgstr "SQL 표현식: \"%s\"" -#: executor/spi.c:2968 +#: executor/spi.c:2992 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "PL/pgSQL 지정: \"%s\"" -#: executor/spi.c:2971 +#: executor/spi.c:2995 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL 구문: \"%s\"" @@ -15028,28 +15534,34 @@ msgstr "SQL 구문: \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "공유 메모리 큐로 튜플을 보낼 수 없음" -#: foreign/foreign.c:222 +#: foreign/foreign.c:225 #, c-format -msgid "user mapping not found for \"%s\"" -msgstr "\"%s\"에 대한 사용자 매핑을 찾을 수 없음" +msgid "user mapping not found for user \"%s\", server \"%s\"" +msgstr "\"%s\"에 대한 사용자 매핑을 \"%s\" 서버에서 찾을 수 없음" -#: foreign/foreign.c:647 storage/file/fd.c:3931 +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7153 +#: optimizer/util/plancat.c:540 +#, c-format +msgid "access to non-system foreign table is restricted" +msgstr "non-system 외부 테이블을 접근하는 것은 제한되었음" + +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "\"%s\" 옵션이 잘못됨" -#: foreign/foreign.c:649 +#: foreign/foreign.c:662 #, c-format msgid "Perhaps you meant the option \"%s\"." msgstr "아마 \"%s\" 옵션을 뜻하는 것 같습니다." -#: foreign/foreign.c:651 +#: foreign/foreign.c:664 #, c-format msgid "There are no valid options in this context." msgstr "이 컨텍스트에서 유효한 옵션이 없음." -#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 -#: utils/mmgr/dsa.c:818 +#: lib/dshash.c:254 utils/mmgr/dsa.c:708 utils/mmgr/dsa.c:730 +#: utils/mmgr/dsa.c:811 #, c-format msgid "Failed on DSA request of size %zu." msgstr "크기가 %zu인 DSA 요청에서 오류가 발생했습니다." @@ -15059,77 +15571,77 @@ msgstr "크기가 %zu인 DSA 요청에서 오류가 발생했습니다." msgid "expected SASL response, got message type %d" msgstr "SASL 응답이 필요한데 메시지 형식 %d을(를) 받음" -#: libpq/auth-scram.c:270 +#: libpq/auth-scram.c:263 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "클라이언트가 잘못된 SASL 인증 메카니즘을 선택했음" -#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554 +#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "\"%s\" 사용자에 대한 잘못된 SCRAM secret" -#: libpq/auth-scram.c:305 +#: libpq/auth-scram.c:298 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "\"%s\" 사용자용 바른 SCRAM secret이 없습니다." -#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 -#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 -#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 -#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 -#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 -#: libpq/auth-scram.c:1394 +#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 +#: libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 +#: libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 +#: libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 +#: libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 +#: libpq/auth-scram.c:1387 #, c-format msgid "malformed SCRAM message" msgstr "SCRAM 메시지가 형식에 맞지 않습니다" -#: libpq/auth-scram.c:386 +#: libpq/auth-scram.c:379 #, c-format msgid "The message is empty." msgstr "메시지가 비었습니다." -#: libpq/auth-scram.c:391 +#: libpq/auth-scram.c:384 #, c-format msgid "Message length does not match input length." msgstr "메시지 길이가 입력 길이와 같지 않습니다." -#: libpq/auth-scram.c:423 +#: libpq/auth-scram.c:416 #, c-format msgid "invalid SCRAM response" msgstr "잘못된 SCRAM 응답" -#: libpq/auth-scram.c:424 +#: libpq/auth-scram.c:417 #, c-format msgid "Nonce does not match." msgstr "토큰 불일치" -#: libpq/auth-scram.c:500 +#: libpq/auth-scram.c:493 #, c-format msgid "could not generate random salt" msgstr "무작위 솔트 생성 실패" -#: libpq/auth-scram.c:745 +#: libpq/auth-scram.c:738 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "\"%c\" 속성이어야 하는데, \"%s\" 임." -#: libpq/auth-scram.c:753 libpq/auth-scram.c:881 +#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "\"%c\" 속성에는 \"=\" 문자가 와야 합니다." -#: libpq/auth-scram.c:858 +#: libpq/auth-scram.c:851 #, c-format msgid "Attribute expected, but found end of string." msgstr "속성값이 와야하는데, 문자열 끝이 발견되었음." -#: libpq/auth-scram.c:871 +#: libpq/auth-scram.c:864 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "속성값이 와야하는데, \"%s\" 잘못된 문자가 발견되었음." -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 #, c-format msgid "" "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not " @@ -15138,17 +15650,17 @@ msgstr "" "해당 클라이언트가 SCRAM-SHA-256-PLUS 규약을 선택했는데, SCRAM 메시지에 채널 " "바인딩 데이터가 없습니다." -#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 +#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 #, c-format msgid "Comma expected, but found character \"%s\"." msgstr "쉼표가 와야하는데, \"%s\" 문자가 발견되었음." -#: libpq/auth-scram.c:1017 +#: libpq/auth-scram.c:1010 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "SCRAM 채널 바인딩 협상 오류" -#: libpq/auth-scram.c:1018 +#: libpq/auth-scram.c:1011 #, c-format msgid "" "The client supports SCRAM channel binding but thinks the server does not. " @@ -15157,7 +15669,7 @@ msgstr "" "해당 클라이언트는 SCRAM 채널 바인딩을 지원하지만, 서버는 그렇지 않은 것 같습" "니다. 그런데, 이 서버는 채널 바인딩을 지원합니다." -#: libpq/auth-scram.c:1040 +#: libpq/auth-scram.c:1033 #, c-format msgid "" "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM " @@ -15166,153 +15678,153 @@ msgstr "" "해당 클라이언트가 채널 바인딩을 하지 않는 SCRAM-SHA-256 규약을 선택했는데, " "SCRAM 메시지에 채널 바인딩 데이터가 있습니다." -#: libpq/auth-scram.c:1051 +#: libpq/auth-scram.c:1044 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "지원하지 않는 SCRAM 채널 바인드 종류 \"%s\"" -#: libpq/auth-scram.c:1058 +#: libpq/auth-scram.c:1051 #, c-format msgid "Unexpected channel-binding flag \"%s\"." msgstr "예상치 못한 채널 바인딩 플래그 \"%s\"." -#: libpq/auth-scram.c:1068 +#: libpq/auth-scram.c:1061 #, c-format msgid "client uses authorization identity, but it is not supported" msgstr "" "클라이언트는 authorization identity를 사용하지만, 이것을 지원하지 않습니다." -#: libpq/auth-scram.c:1073 +#: libpq/auth-scram.c:1066 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." msgstr "client-first-message 안에 \"%s\" 속성이 잘못됨" -#: libpq/auth-scram.c:1089 +#: libpq/auth-scram.c:1082 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "클라이언트가 지원하지 않는 SCRAM 확장을 요구합니다." -#: libpq/auth-scram.c:1103 +#: libpq/auth-scram.c:1096 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "SCRAM 토큰에 인쇄할 수 없는 문자가 있음" -#: libpq/auth-scram.c:1234 +#: libpq/auth-scram.c:1227 #, c-format msgid "could not generate random nonce" msgstr "무작위 토큰을 만들 수 없음" -#: libpq/auth-scram.c:1244 +#: libpq/auth-scram.c:1237 #, c-format msgid "could not encode random nonce" msgstr "임의 nonce를 인코드할 수 없음" -#: libpq/auth-scram.c:1350 +#: libpq/auth-scram.c:1343 #, c-format msgid "SCRAM channel binding check failed" msgstr "SCRAM 채널 바인딩 검사 실패" -#: libpq/auth-scram.c:1368 +#: libpq/auth-scram.c:1361 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "client-final-message 안에 예상치 못한 SCRAM 채널 바인딩 속성이 있음" -#: libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:1380 #, c-format msgid "Malformed proof in client-final-message." msgstr "client-final-message 안에 잘못된 증명" -#: libpq/auth-scram.c:1395 +#: libpq/auth-scram.c:1388 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "client-final-message 끝에 추가로 쓸모 없는 값이 있음" -#: libpq/auth.c:271 +#: libpq/auth.c:269 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "사용자 \"%s\"의 인증을 실패했습니다: 호스트 거부됨" -#: libpq/auth.c:274 +#: libpq/auth.c:272 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 \"trust\" 인증을 실패했습니다." -#: libpq/auth.c:277 +#: libpq/auth.c:275 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 Ident 인증을 실패했습니다." -#: libpq/auth.c:280 +#: libpq/auth.c:278 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 peer 인증을 실패했습니다." -#: libpq/auth.c:285 +#: libpq/auth.c:283 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 password 인증을 실패했습니다" -#: libpq/auth.c:290 +#: libpq/auth.c:288 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "\"%s\" 사용자에 대한 GSSAPI 인증을 실패했습니다." -#: libpq/auth.c:293 +#: libpq/auth.c:291 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "\"%s\" 사용자에 대한 SSPI 인증을 실패했습니다." -#: libpq/auth.c:296 +#: libpq/auth.c:294 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 PAM 인증을 실패했습니다." -#: libpq/auth.c:299 +#: libpq/auth.c:297 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "\"%s\" 사용자에 대한 BSD 인증을 실패했습니다." -#: libpq/auth.c:302 +#: libpq/auth.c:300 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "\"%s\" 사용자의 LDAP 인증을 실패했습니다." -#: libpq/auth.c:305 +#: libpq/auth.c:303 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 인증서 인증을 실패했습니다" -#: libpq/auth.c:308 +#: libpq/auth.c:306 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "사용자 \"%s\"의 RADIUS 인증을 실패했습니다." -#: libpq/auth.c:311 +#: libpq/auth.c:309 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "사용자 \"%s\"의 인증을 실패했습니다: 잘못된 인증 방법" -#: libpq/auth.c:315 +#: libpq/auth.c:313 #, c-format msgid "Connection matched file \"%s\" line %d: \"%s\"" msgstr "\"%s\" 파일의 %d번째 줄에 지정한 인증 설정이 사용됨: \"%s\"" -#: libpq/auth.c:359 +#: libpq/auth.c:357 #, c-format msgid "authentication identifier set more than once" msgstr "인증 식별자가 여러 번 사용 됨" -#: libpq/auth.c:360 +#: libpq/auth.c:358 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "이전 식별자: \"%s\"; 새 식별자: \"%s\"" -#: libpq/auth.c:370 +#: libpq/auth.c:368 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "연결 인증됨: 식별자=\"%s\" 인증방법=%s (%s:%d)" -#: libpq/auth.c:410 +#: libpq/auth.c:408 #, c-format msgid "" "client certificates can only be checked if a root certificate store is " @@ -15320,25 +15832,25 @@ msgid "" msgstr "" "루트 인증서 저장소가 사용 가능한 경우에만 클라이언트 인증서를 검사할 수 있음" -#: libpq/auth.c:421 +#: libpq/auth.c:419 #, c-format msgid "connection requires a valid client certificate" msgstr "연결에 유효한 클라이언트 인증서가 필요함" -#: libpq/auth.c:452 libpq/auth.c:498 +#: libpq/auth.c:450 libpq/auth.c:496 msgid "GSS encryption" msgstr "GSS 암호화" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:453 libpq/auth.c:499 msgid "SSL encryption" msgstr "SSL 암호화" -#: libpq/auth.c:457 libpq/auth.c:503 +#: libpq/auth.c:455 libpq/auth.c:501 msgid "no encryption" msgstr "암호화 안함" #. translator: last %s describes encryption state -#: libpq/auth.c:463 +#: libpq/auth.c:461 #, c-format msgid "" "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" @@ -15347,289 +15859,288 @@ msgstr "" "에 따라 거부됩니다" #. translator: last %s describes encryption state -#: libpq/auth.c:470 +#: libpq/auth.c:468 #, c-format msgid "" -"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s" -"\", %s" +"pg_hba.conf rejects connection for host \"%s\", user \"%s\", database " +"\"%s\", %s" msgstr "" "호스트 \"%s\", 사용자 \"%s\", 데이터베이스 \"%s\", %s 연결이 pg_hba.conf 파" "일 설정에 따라 거부됩니다" -#: libpq/auth.c:508 +#: libpq/auth.c:506 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "" "클라이언트 IP 주소가 \"%s\" 이름으로 확인됨, 호스트 이름 확인 기능으로 맞음" -#: libpq/auth.c:511 +#: libpq/auth.c:509 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "" "클라이언트 IP 주소가 \"%s\" 이름으로 확인됨, 호스트 이름 확인 기능 사용안함" -#: libpq/auth.c:514 +#: libpq/auth.c:512 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "" "클라이언트 IP 주소가 \"%s\" 이름으로 확인됨, 호스트 이름 확인 기능으로 틀림" -#: libpq/auth.c:517 +#: libpq/auth.c:515 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "\"%s\" 클라이언트 호스트 이름을 %s IP 주소로 전환할 수 없음." -#: libpq/auth.c:522 +#: libpq/auth.c:520 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "클라이언트 IP 주소를 파악할 수 없음: 대상 호스트 이름: %s" #. translator: last %s describes encryption state -#: libpq/auth.c:530 +#: libpq/auth.c:528 #, c-format msgid "" -"no pg_hba.conf entry for replication connection from host \"%s\", user \"%s" -"\", %s" +"no pg_hba.conf entry for replication connection from host \"%s\", user " +"\"%s\", %s" msgstr "" "호스트 \"%s\", 사용자 \"%s\", %s 연결이 복제용 연결로 pg_hba.conf 파일에 설정" "되어 있지 않습니다" #. translator: last %s describes encryption state -#: libpq/auth.c:538 +#: libpq/auth.c:536 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "" "호스트 \"%s\", 사용자 \"%s\", 데이터베이스 \"%s\", %s 연결에 대한 설정이 " "pg_hba.conf 파일에 없습니다." -#: libpq/auth.c:711 +#: libpq/auth.c:656 +#, c-format +msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" +msgstr "연결 인증됨: 사용자=\"%s\" 인증방법=%s (%s:%d)" + +#: libpq/auth.c:725 #, c-format msgid "expected password response, got message type %d" msgstr "메시지 타입 %d를 얻는 예상된 암호 응답" -#: libpq/auth.c:732 +#: libpq/auth.c:746 #, c-format msgid "invalid password packet size" msgstr "유효하지 않은 암호 패킷 사이즈" -#: libpq/auth.c:750 +#: libpq/auth.c:764 #, c-format msgid "empty password returned by client" msgstr "비어있는 암호는 클라이언트에 의해 돌려보냈습니다" -#: libpq/auth.c:879 libpq/hba.c:1727 -#, c-format -msgid "" -"MD5 authentication is not supported when \"db_user_namespace\" is enabled" -msgstr "\"db_user_namespace\"가 사용 가능한 경우 MD5 인증은 지원되지 않음" - -#: libpq/auth.c:885 +#: libpq/auth.c:892 #, c-format msgid "could not generate random MD5 salt" msgstr "무작위 MD5 솔트 생성 실패" -#: libpq/auth.c:936 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "환경변수를 지정할 수 없음: %m" -#: libpq/auth.c:975 +#: libpq/auth.c:982 #, c-format msgid "expected GSS response, got message type %d" msgstr "GSS 응답이 필요한데 메시지 형식 %d을(를) 받음" -#: libpq/auth.c:1041 +#: libpq/auth.c:1048 msgid "accepting GSS security context failed" msgstr "GSS 보안 컨텍스트를 수락하지 못함" -#: libpq/auth.c:1082 +#: libpq/auth.c:1089 msgid "retrieving GSS user name failed" msgstr "GSS 사용자 이름을 검색하지 못함" -#: libpq/auth.c:1228 +#: libpq/auth.c:1235 msgid "could not acquire SSPI credentials" msgstr "SSPI 자격 증명을 가져올 수 없음" -#: libpq/auth.c:1253 +#: libpq/auth.c:1260 #, c-format msgid "expected SSPI response, got message type %d" msgstr "SSPI 응답이 필요한데 메시지 형식 %d을(를) 받음" -#: libpq/auth.c:1331 +#: libpq/auth.c:1338 msgid "could not accept SSPI security context" msgstr "SSPI 보안 컨텍스트를 수락할 수 없음" -#: libpq/auth.c:1372 +#: libpq/auth.c:1379 msgid "could not get token from SSPI security context" msgstr "SSPI 보안 컨텍스트에서 토큰을 가져올 수 없음" -#: libpq/auth.c:1508 libpq/auth.c:1527 +#: libpq/auth.c:1515 libpq/auth.c:1534 #, c-format msgid "could not translate name" msgstr "이름을 변환할 수 없음" -#: libpq/auth.c:1540 +#: libpq/auth.c:1547 #, c-format msgid "realm name too long" msgstr "realm 이름이 너무 긺" -#: libpq/auth.c:1555 +#: libpq/auth.c:1562 #, c-format msgid "translated account name too long" msgstr "변환된 접속자 이름이 너무 깁니다" -#: libpq/auth.c:1734 +#: libpq/auth.c:1741 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "Ident 연결에 소켓을 생성할 수 없습니다: %m" -#: libpq/auth.c:1749 +#: libpq/auth.c:1756 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "로컬 주소 \"%s\"에 바인드할 수 없습니다: %m" -#: libpq/auth.c:1761 +#: libpq/auth.c:1768 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "주소 \"%s\", 포트 %s의 Ident 서버에게 연결할 수 없습니다: %m" -#: libpq/auth.c:1783 +#: libpq/auth.c:1790 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "주소 \"%s\", 포트 %s의 Ident 서버에게 질의를 보낼 수 없습니다: %m" -#: libpq/auth.c:1800 +#: libpq/auth.c:1807 #, c-format msgid "" "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "주소 \"%s\", 포트 %s의 Ident 서버로부터 응답을 받지 못했습니다: %m" -#: libpq/auth.c:1810 +#: libpq/auth.c:1817 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "Ident 서버로부터 잘못된 형태의 응답를 보냈습니다: \"%s\"" -#: libpq/auth.c:1863 +#: libpq/auth.c:1870 #, c-format msgid "peer authentication is not supported on this platform" msgstr "이 플랫폼에서는 peer 인증이 지원되지 않음" -#: libpq/auth.c:1867 +#: libpq/auth.c:1874 #, c-format msgid "could not get peer credentials: %m" msgstr "신뢰성 피어를 얻을 수 없습니다: %m" -#: libpq/auth.c:1879 +#: libpq/auth.c:1886 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "UID %ld 해당하는 사용자를 찾을 수 없음: %s" -#: libpq/auth.c:1981 +#: libpq/auth.c:1988 #, c-format msgid "error from underlying PAM layer: %s" msgstr "잠재적인 PAM 레이어에서의 에러: %s" -#: libpq/auth.c:1992 +#: libpq/auth.c:1999 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "지원하지 않는 PAM conversation %d/\"%s\"" -#: libpq/auth.c:2049 +#: libpq/auth.c:2056 #, c-format msgid "could not create PAM authenticator: %s" msgstr "PAM 인증자를 생성할 수 없습니다: %s" -#: libpq/auth.c:2060 +#: libpq/auth.c:2067 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER) 실패: %s" -#: libpq/auth.c:2092 +#: libpq/auth.c:2099 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST) 실패: %s" -#: libpq/auth.c:2104 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "pam_set_item(PAM_CONV) 실패: %s" -#: libpq/auth.c:2117 +#: libpq/auth.c:2124 #, c-format msgid "pam_authenticate failed: %s" msgstr "PAM 인증 실패: %s" -#: libpq/auth.c:2130 +#: libpq/auth.c:2137 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmt 실패: %s" -#: libpq/auth.c:2141 +#: libpq/auth.c:2148 #, c-format msgid "could not release PAM authenticator: %s" msgstr "PAM 인증자를 릴리즈할 수 없습니다: %s" -#: libpq/auth.c:2221 +#: libpq/auth.c:2228 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "LDAP 초기화 실패: 오류번호 %d" -#: libpq/auth.c:2258 +#: libpq/auth.c:2265 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "ldapbasedn에서 도메인 이름을 뽑을 수 없음" -#: libpq/auth.c:2266 +#: libpq/auth.c:2273 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "\"%s\"용 LDAP 인증 작업에서 DNS SRV 레코드를 찾을 수 없음" -#: libpq/auth.c:2268 +#: libpq/auth.c:2275 #, c-format msgid "Set an LDAP server name explicitly." msgstr "명시적으로 LDAP 서버 이름을 지정하세요." -#: libpq/auth.c:2320 +#: libpq/auth.c:2327 #, c-format msgid "could not initialize LDAP: %s" msgstr "LDAP 초기화 실패: %s" -#: libpq/auth.c:2330 +#: libpq/auth.c:2337 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ldap 인증으로 사용할 수 없는 LDAP 라이브러리" -#: libpq/auth.c:2338 +#: libpq/auth.c:2345 #, c-format msgid "could not initialize LDAP: %m" msgstr "LDAP 초기화 실패: %m" -#: libpq/auth.c:2348 +#: libpq/auth.c:2355 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "LDAP 프로토콜 버전을 지정할 수 없음: %s" -#: libpq/auth.c:2364 +#: libpq/auth.c:2371 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "LDAP TLS 세션을 시작할 수 없음: %s" -#: libpq/auth.c:2441 +#: libpq/auth.c:2448 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP 서버도 ldapbasedn도 지정하지 않았음" -#: libpq/auth.c:2448 +#: libpq/auth.c:2455 #, c-format msgid "LDAP server not specified" msgstr "LDAP 서버가 지정되지 않음" -#: libpq/auth.c:2510 +#: libpq/auth.c:2517 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "LDAP 인증을 위한 사용자 이름에 사용할 수 없는 문자가 있습니다" -#: libpq/auth.c:2527 +#: libpq/auth.c:2534 #, c-format msgid "" "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": " @@ -15638,55 +16149,50 @@ msgstr "" "\"%s\" ldapbinddn (해당 서버: \"%s\") 설정에 대한 LDAP 바인드 초기화를 할 수 " "없음: %s" -#: libpq/auth.c:2557 +#: libpq/auth.c:2564 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "\"%s\" 필터로 LDAP 검색 실패함, 대상 서버: \"%s\": %s" -#: libpq/auth.c:2573 +#: libpq/auth.c:2580 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "\"%s\" LDAP 사용자가 없음" -#: libpq/auth.c:2574 +#: libpq/auth.c:2581 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "\"%s\" 필터로 \"%s\" 서버에서 LDAP 검색을 했으나, 해당 자료가 없음" -#: libpq/auth.c:2578 +#: libpq/auth.c:2585 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "\"%s\" LDAP 사용자가 유일하지 않습니다" -#: libpq/auth.c:2579 +#: libpq/auth.c:2586 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "" "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "\"%s\" 필터로 \"%s\" 서버에서 LDAP 검색 결과 %d 항목을 반환함" -#: libpq/auth.c:2599 +#: libpq/auth.c:2606 #, c-format msgid "" "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "\"%s\" 첫번째 항목 조회용 dn 값을 \"%s\" 서버에서 찾을 수 없음: %s" -#: libpq/auth.c:2620 -#, c-format -msgid "could not unbind after searching for user \"%s\" on server \"%s\"" -msgstr "\"%s\" 사용자 검색 후 unbind 작업을 \"%s\" 서버에서 할 수 없음" - -#: libpq/auth.c:2651 +#: libpq/auth.c:2633 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "\"%s\" 사용자의 \"%s\" LDAP 서버 로그인 실패: %s" -#: libpq/auth.c:2683 +#: libpq/auth.c:2665 #, c-format msgid "LDAP diagnostics: %s" msgstr "LDAP 진단: %s" -#: libpq/auth.c:2721 +#: libpq/auth.c:2703 #, c-format msgid "" "certificate authentication failed for user \"%s\": client certificate " @@ -15695,14 +16201,14 @@ msgstr "" "\"%s\" 사용자에 대한 인증서 로그인 실패: 클라이언트 인증서에 사용자 이름이 없" "음" -#: libpq/auth.c:2742 +#: libpq/auth.c:2724 #, c-format msgid "" "certificate authentication failed for user \"%s\": unable to retrieve " "subject DN" msgstr "사용자 \"%s\"의 인증서 인증을 실패했습니다: DN 주체가 없음" -#: libpq/auth.c:2765 +#: libpq/auth.c:2747 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": DN " @@ -15711,108 +16217,108 @@ msgstr "" "\"%s\" 사용자를 위한 인증서 유효성 검사(clientcert=verify-full)를 실패 함: " "DN 같지 않음" -#: libpq/auth.c:2770 +#: libpq/auth.c:2752 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": CN " "mismatch" msgstr "\"%s\" 사용자를 위한 인증서 유효성 검사를 실패 함: CN 같지 않음" -#: libpq/auth.c:2872 +#: libpq/auth.c:2854 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS 서버가 지정되지 않음" -#: libpq/auth.c:2879 +#: libpq/auth.c:2861 #, c-format msgid "RADIUS secret not specified" msgstr "RADIUS 비밀키가 지정되지 않음" -#: libpq/auth.c:2893 +#: libpq/auth.c:2875 #, c-format msgid "" "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUS 인증은 %d 글자 보다 큰 비밀번호 인증을 지원하지 않습니다" -#: libpq/auth.c:2995 libpq/hba.c:2369 +#: libpq/auth.c:2977 libpq/hba.c:2352 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "\"%s\" RADIUS 서버 이름을 주소로 바꿀 수 없음: %s" -#: libpq/auth.c:3009 +#: libpq/auth.c:2991 #, c-format msgid "could not generate random encryption vector" msgstr "무작위 암호화 벡터를 만들 수 없음" -#: libpq/auth.c:3046 +#: libpq/auth.c:3028 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "비밀번호의 MD5 암호를 만들 수 없음: %s" # translator: %s is IPv4, IPv6, or Unix -#: libpq/auth.c:3073 +#: libpq/auth.c:3055 #, c-format msgid "could not create RADIUS socket: %m" msgstr "RADIUS 소켓을 생성할 수 없습니다: %m" # translator: %s is IPv4, IPv6, or Unix -#: libpq/auth.c:3089 +#: libpq/auth.c:3071 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "RADIUS 소켓에 바인드할 수 없습니다: %m" -#: libpq/auth.c:3099 +#: libpq/auth.c:3081 #, c-format msgid "could not send RADIUS packet: %m" msgstr "RADIUS 패킷을 보낼 수 없음: %m" -#: libpq/auth.c:3133 libpq/auth.c:3159 +#: libpq/auth.c:3115 libpq/auth.c:3141 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "%s 에서 RADIUS 응답 대기 시간 초과" # translator: %s is IPv4, IPv6, or Unix -#: libpq/auth.c:3152 +#: libpq/auth.c:3134 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "RADIUS 소켓 상태를 확인할 수 없음: %m" -#: libpq/auth.c:3182 +#: libpq/auth.c:3164 #, c-format msgid "could not read RADIUS response: %m" msgstr "RADIUS 응답을 읽을 수 없음: %m" -#: libpq/auth.c:3190 +#: libpq/auth.c:3172 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "%s에서 RADIUS 응답이 바르지 않은 포트로부터 보내졌음: %d" -#: libpq/auth.c:3198 +#: libpq/auth.c:3180 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "%s에서 RADIUS 응답이 너무 짧음: %d" -#: libpq/auth.c:3205 +#: libpq/auth.c:3187 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "%s에서 RADIUS 응답 길이가 이상함: %d (실재 길이: %d)" -#: libpq/auth.c:3213 +#: libpq/auth.c:3195 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "%s에서 RADIUS 응답이 요청과 다름: %d (기대값: %d)" -#: libpq/auth.c:3238 +#: libpq/auth.c:3220 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "받은 패킷을 대상으로 MD5 암호화 작업할 수 없음: %s" -#: libpq/auth.c:3248 +#: libpq/auth.c:3230 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "%s에서 RADIUS 응답의 MD5 값이 이상함" -#: libpq/auth.c:3266 +#: libpq/auth.c:3248 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "%s에서 RADIUS 응답이 바르지 않은 값임 (%d), 대상 사용자: \"%s\"" @@ -15869,51 +16375,38 @@ msgstr "서버 파일 \"%s\"에 쓸 수 없습니다: %m" msgid "large object read request is too large" msgstr "대형 개체 읽기 요청이 너무 큽니다" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 -#: utils/adt/genfile.c:315 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "요청한 길이는 음수일 수 없음" -#: libpq/be-fsstubs.c:871 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 대형 개체에 대한 접근 권한 없음" - -#: libpq/be-secure-common.c:71 -#, c-format -msgid "could not read from command \"%s\": %m" -msgstr "\"%s\" 명령에서 읽을 수 없음: %m" - -#: libpq/be-secure-common.c:91 +#: libpq/be-secure-common.c:94 #, c-format msgid "command \"%s\" failed" msgstr "\"%s\" 명령 실패" -#: libpq/be-secure-common.c:119 +#: libpq/be-secure-common.c:123 #, c-format msgid "could not access private key file \"%s\": %m" msgstr "비밀키 \"%s\"에 액세스할 수 없습니다: %m" -#: libpq/be-secure-common.c:129 +#: libpq/be-secure-common.c:133 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "\"%s\" 개인 키 파일은 일반 파일이 아님" -#: libpq/be-secure-common.c:155 +#: libpq/be-secure-common.c:159 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "" "\"%s\" 개인 키 파일의 소유주는 데이터베이스 사용자이거나 root 여야 합니다." -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:169 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "\"%s\" 개인 키 파일에 그룹 또는 익명 액세스 권한이 있음" -#: libpq/be-secure-common.c:167 +#: libpq/be-secure-common.c:171 #, c-format msgid "" "File must have permissions u=rw (0600) or less if owned by the database " @@ -15923,16 +16416,16 @@ msgstr "" "(0600) 또는 더 작게 설정하고, root가 소유주라면 u=rw,g=r (0640) 권한으로 지정" "하세요" -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPI 감싸기 오류" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "GSSAPI 출력 메시지는 기밀성을 유지하면 안됩니다." -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:634 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:634 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "서버가 너무 큰 GSSAPI 패킷을 보내려고 합니다(%zu > %zu)." @@ -15964,17 +16457,17 @@ msgstr "GSSAPI 보안 내용을 받아드릴 수 없음" msgid "GSSAPI size check error" msgstr "GSSAPI 크기 검사 오류" -#: libpq/be-secure-openssl.c:125 +#: libpq/be-secure-openssl.c:131 #, c-format msgid "could not create SSL context: %s" msgstr "SSL 컨텍스트 정보를 생성할 수 없습니다: %s" -#: libpq/be-secure-openssl.c:151 +#: libpq/be-secure-openssl.c:157 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "서버 인증서 파일 \"%s\"을 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:171 +#: libpq/be-secure-openssl.c:177 #, c-format msgid "" "private key file \"%s\" cannot be reloaded because it requires a passphrase" @@ -15982,102 +16475,102 @@ msgstr "" "\"%s\" 개인 키 파일은 비밀번호를 입력해야 해서 자동으로 다시 불러올 수 없습니" "다." -#: libpq/be-secure-openssl.c:176 +#: libpq/be-secure-openssl.c:182 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "비밀키 파일 \"%s\"을 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:185 +#: libpq/be-secure-openssl.c:191 #, 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:198 libpq/be-secure-openssl.c:221 +#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "\"%s\" 의 \"%s\" 설정 기능을 빼고 빌드 되었음" -#: libpq/be-secure-openssl.c:208 +#: libpq/be-secure-openssl.c:214 #, c-format msgid "could not set minimum SSL protocol version" msgstr "최소 SSL 프로토콜 버전을 설정할 수 없음" -#: libpq/be-secure-openssl.c:231 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set maximum SSL protocol version" msgstr "최대 SSL 프로토콜 버전을 설정할 수 없음" -#: libpq/be-secure-openssl.c:247 +#: libpq/be-secure-openssl.c:253 #, c-format msgid "could not set SSL protocol version range" msgstr "SSL 프로토콜 버전 범위를 지정할 수 없음" -#: libpq/be-secure-openssl.c:248 +#: libpq/be-secure-openssl.c:254 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\" 값은 \"%s\" 보다 높을 수 없음" -#: libpq/be-secure-openssl.c:285 +#: libpq/be-secure-openssl.c:307 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "cipher 목록을 설정할 수 없음 (유요한 cipher가 없음)" -#: libpq/be-secure-openssl.c:305 +#: libpq/be-secure-openssl.c:327 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "root 인증서 파일 \"%s\"을 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:354 +#: libpq/be-secure-openssl.c:376 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "\"%s\" SSL 인증서 회수 목록 파일을 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:362 +#: libpq/be-secure-openssl.c:384 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "\"%s\" SSL 인증서 회수 목록 디렉터리를 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:370 +#: libpq/be-secure-openssl.c:392 #, c-format msgid "" -"could not load SSL certificate revocation list file \"%s\" or directory \"%s" -"\": %s" +"could not load SSL certificate revocation list file \"%s\" or directory " +"\"%s\": %s" msgstr "" "\"%s\" SSL 인증서 회수 목록 파일이나 \"%s\" 디렉터리를 불러들일 수 없습니다: " "%s" -#: libpq/be-secure-openssl.c:428 +#: libpq/be-secure-openssl.c:450 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "SSL연결을 초기화할 수 없습니다: SSL 컨텍스트를 설정 못함" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:464 #, c-format msgid "could not initialize SSL connection: %s" msgstr "SSL연결을 초기화할 수 없습니다: %s" -#: libpq/be-secure-openssl.c:447 +#: libpq/be-secure-openssl.c:472 #, c-format msgid "could not set SSL socket: %s" msgstr "SSL 소켓을 지정할 수 없습니다: %s" -#: libpq/be-secure-openssl.c:502 +#: libpq/be-secure-openssl.c:528 #, c-format msgid "could not accept SSL connection: %m" msgstr "SSL 연결을 받아드릴 수 없습니다: %m" -#: libpq/be-secure-openssl.c:506 libpq/be-secure-openssl.c:561 +#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "SSL 연결을 받아드릴 수 없습니다: EOF 감지됨" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:573 #, c-format msgid "could not accept SSL connection: %s" msgstr "SSL 연결을 받아드릴 수 없습니다: %s" -#: libpq/be-secure-openssl.c:549 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "" "This may indicate that the client does not support any SSL protocol version " @@ -16086,359 +16579,359 @@ msgstr "" "이런 경우는 클라이언트가 %s부터 %s까지 SSL 프로토콜 버전을 지원하지 않는 경우" "에 발생하기도 합니다." -#: libpq/be-secure-openssl.c:566 libpq/be-secure-openssl.c:746 -#: libpq/be-secure-openssl.c:810 +#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809 +#: libpq/be-secure-openssl.c:879 #, c-format msgid "unrecognized SSL error code: %d" msgstr "인식되지 않은 SSL 에러 코드 %d" -#: libpq/be-secure-openssl.c:612 +#: libpq/be-secure-openssl.c:622 +#, c-format +msgid "received SSL connection request with unexpected ALPN protocol" +msgstr "수신된 SSL 연결은 예상치 않은 ALPN 프로토콜을 요구함" + +#: libpq/be-secure-openssl.c:666 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "SSL 인증서의 일반 이름에 포함된 null이 있음" -#: libpq/be-secure-openssl.c:652 +#: libpq/be-secure-openssl.c:712 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "SSL 인증서의 식별자 이름에 포함된 null이 있음" -#: libpq/be-secure-openssl.c:735 libpq/be-secure-openssl.c:794 +#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863 #, c-format msgid "SSL error: %s" msgstr "SSL 에러: %s" -#: libpq/be-secure-openssl.c:976 +#: libpq/be-secure-openssl.c:1038 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "\"%s\" DH 매개 변수 파일을 열 수 없습니다: %m" -#: libpq/be-secure-openssl.c:988 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not load DH parameters file: %s" msgstr "DH 매개 변수 파일을 불러들일 수 없습니다: %s" -#: libpq/be-secure-openssl.c:998 +#: libpq/be-secure-openssl.c:1060 #, c-format msgid "invalid DH parameters: %s" msgstr "잘못된 DH 매개 변수: %s" -#: libpq/be-secure-openssl.c:1007 +#: libpq/be-secure-openssl.c:1069 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "잘못된 DH 매개 변수값: p는 prime 아님" -#: libpq/be-secure-openssl.c:1016 +#: libpq/be-secure-openssl.c:1078 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "잘못된 DH 매개 변수값: 타당한 생성자도 아니고, 안전한 prime도 아님" -#: libpq/be-secure-openssl.c:1152 +#: libpq/be-secure-openssl.c:1214 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "%d 번째 깊이에서 클라이언트 인증서 유효성 검사 실패: %s." -#: libpq/be-secure-openssl.c:1189 +#: libpq/be-secure-openssl.c:1251 #, c-format msgid "" "Failed certificate data (unverified): subject \"%s\", serial number %s, " "issuer \"%s\"." msgstr "" -"데이터 인증 실패 (검증 안됨): subject \"%s\", serial number %s, issuer \"%s" -"\"." +"데이터 인증 실패 (검증 안됨): subject \"%s\", serial number %s, issuer " +"\"%s\"." -#: libpq/be-secure-openssl.c:1190 +#: libpq/be-secure-openssl.c:1252 msgid "unknown" msgstr "알수없음" -#: libpq/be-secure-openssl.c:1281 +#: libpq/be-secure-openssl.c:1389 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: DH 매개 변수 불러오기 실패" -#: libpq/be-secure-openssl.c:1289 +#: libpq/be-secure-openssl.c:1397 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: DH 매개 변수 설정 실패: %s" -#: libpq/be-secure-openssl.c:1316 +#: libpq/be-secure-openssl.c:1424 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: 알 수 없는 curve 이름: %s" -#: libpq/be-secure-openssl.c:1325 +#: libpq/be-secure-openssl.c:1433 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: 키 생성 실패" -#: libpq/be-secure-openssl.c:1353 +#: libpq/be-secure-openssl.c:1461 msgid "no SSL error reported" msgstr "SSL 오류 없음" -#: libpq/be-secure-openssl.c:1357 +#: libpq/be-secure-openssl.c:1479 #, c-format msgid "SSL error code %lu" msgstr "SSL 오류 번호 %lu" -#: libpq/be-secure-openssl.c:1516 +#: libpq/be-secure-openssl.c:1636 #, c-format msgid "could not create BIO" msgstr "BIO 만들기 실패" -#: libpq/be-secure-openssl.c:1526 +#: libpq/be-secure-openssl.c:1646 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "ASN1_OBJECT 객체용 NID 구할 수 없음" -#: libpq/be-secure-openssl.c:1534 +#: libpq/be-secure-openssl.c:1654 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "ASN1_OBJECT 구조체에서 %d NID를 변환할 수 없음" -#: libpq/be-secure.c:207 libpq/be-secure.c:303 -#, c-format -msgid "terminating connection due to unexpected postmaster exit" -msgstr "postmaster의 예상치 못한 종료로 연결을 종료합니다" - -#: libpq/crypt.c:49 +#: libpq/crypt.c:48 #, c-format msgid "Role \"%s\" does not exist." msgstr "\"%s\" 롤 없음" -#: libpq/crypt.c:59 +#: libpq/crypt.c:58 #, c-format msgid "User \"%s\" has no password assigned." msgstr "\"%s\" 사용자 비밀번호가 아직 할당되지 않음" -#: libpq/crypt.c:77 +#: libpq/crypt.c:76 #, c-format msgid "User \"%s\" has an expired password." msgstr "\"%s\" 사용자 비밀번호가 기한 만료되었습니다." -#: libpq/crypt.c:183 +#: libpq/crypt.c:182 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "\"%s\" 사용자의 비밀번호는 MD5 인증용이 아닙니다." -#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 +#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 #, c-format msgid "Password does not match for user \"%s\"." msgstr "\"%s\" 사용자의 비밀번호가 틀립니다." -#: libpq/crypt.c:285 +#: libpq/crypt.c:284 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "\"%s\" 사용자의 비밀번호 암호화 기법을 알 수 없습니다." -#: libpq/hba.c:332 +#: libpq/hba.c:327 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "\"%s\" 정규식이 잘못됨: %s" -#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 -#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 -#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 -#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 -#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 -#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 -#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 -#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 -#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 -#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 -#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 -#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 -#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 -#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 +#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 +#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 +#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 +#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 +#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 +#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799 +#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 +#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 +#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 +#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 +#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 +#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 +#: tsearch/ts_locale.c:241 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "%d번째 줄(\"%s\" 환경 설정 파일)" -#: libpq/hba.c:462 +#: libpq/hba.c:457 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "\"%s\" 인증 설정파일이 없으나 건너뜀" -#: libpq/hba.c:614 +#: libpq/hba.c:609 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "\"%s\" 파일을 열 수 없습니다: 최대 디렉터리 깊이를 초과했음" -#: libpq/hba.c:1221 +#: libpq/hba.c:1216 #, c-format msgid "error enumerating network interfaces: %m" msgstr "네트워크 인터페이스 이뮬레이트 하기 실패: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1248 +#: libpq/hba.c:1243 #, c-format msgid "" "authentication option \"%s\" is only valid for authentication methods %s" msgstr "\"%s\" 인증 옵션은 %s 인증 방법에만 유효함" -#: libpq/hba.c:1268 +#: libpq/hba.c:1263 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "\"%s\" 인증 방법의 경우 \"%s\" 인자를 설정해야 함" -#: libpq/hba.c:1292 +#: libpq/hba.c:1287 #, c-format msgid "missing entry at end of line" msgstr "줄의 끝 라인에 빠진 엔트리가 있음" -#: libpq/hba.c:1305 +#: libpq/hba.c:1300 #, c-format msgid "multiple values in ident field" msgstr "ident 자리에 여러 값이 있음" -#: libpq/hba.c:1357 +#: libpq/hba.c:1352 #, c-format msgid "multiple values specified for connection type" msgstr "연결 형식 자리에 여러 값이 있음" -#: libpq/hba.c:1358 +#: libpq/hba.c:1353 #, c-format msgid "Specify exactly one connection type per line." msgstr "한 줄에 하나의 연결 형태만 지정해야 합니다" -#: libpq/hba.c:1385 +#: libpq/hba.c:1380 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "SSL 기능이 꺼져있어 hostssl 설정을 사용할 수 없습니다" -#: libpq/hba.c:1386 +#: libpq/hba.c:1381 #, c-format -msgid "Set ssl = on in postgresql.conf." -msgstr "postgresql.conf 파일에 ssl = on 설정을 하세요." +msgid "Set \"ssl = on\" in postgresql.conf." +msgstr "postgresql.conf 파일에 \"ssl = on\" 설정을 하세요." -#: libpq/hba.c:1394 +#: libpq/hba.c:1389 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "" "이 서버는 ssl 접속 기능을 지원하지 않아 hostssl 인증을 지원하지 않습니다." -#: libpq/hba.c:1406 +#: libpq/hba.c:1401 #, c-format msgid "" "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "" "이 서버는 GSSAPI 접속 기능을 지원하지 않아 hostgssenc 레코드가 적당하지 않음" -#: libpq/hba.c:1426 +#: libpq/hba.c:1421 #, c-format msgid "invalid connection type \"%s\"" msgstr "\"%s\" 값은 잘못된 연결 형식입니다" -#: libpq/hba.c:1440 +#: libpq/hba.c:1435 #, c-format msgid "end-of-line before database specification" msgstr "데이터베이스 지정 전에 줄 끝에 도달함" -#: libpq/hba.c:1465 +#: libpq/hba.c:1460 #, c-format msgid "end-of-line before role specification" msgstr "롤 지정 전에 줄 끝에 도달함" -#: libpq/hba.c:1492 +#: libpq/hba.c:1487 #, c-format msgid "end-of-line before IP address specification" msgstr "IP 주소 지정 전에 줄 끝에 도달함" -#: libpq/hba.c:1503 +#: libpq/hba.c:1498 #, c-format msgid "multiple values specified for host address" msgstr "호스트 주소 부분에 여러 값이 지정됨" -#: libpq/hba.c:1504 +#: libpq/hba.c:1499 #, c-format msgid "Specify one address range per line." msgstr "한 줄에 하나의 주소 범위가 있어야 합니다." -#: libpq/hba.c:1562 +#: libpq/hba.c:1557 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "\"%s\" 형태는 잘못된 IP 주소 형태입니다: %s" -#: libpq/hba.c:1582 +#: libpq/hba.c:1577 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "호스트 이름과 CIDR 마스크는 함께 쓸 수 없습니다: \"%s\"" -#: libpq/hba.c:1596 +#: libpq/hba.c:1591 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "\"%s\" 주소에 잘못된 CIDR 마스크가 있음" -#: libpq/hba.c:1616 +#: libpq/hba.c:1611 #, c-format msgid "end-of-line before netmask specification" msgstr "넷마스크 지정 전에 줄 끝에 도달함" -#: libpq/hba.c:1617 +#: libpq/hba.c:1612 #, c-format msgid "" "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "주소 범위는 CIDR 표기법을 쓰거나 넷마스크 표기법을 쓰세요" -#: libpq/hba.c:1628 +#: libpq/hba.c:1623 #, c-format msgid "multiple values specified for netmask" msgstr "넷마스크 부분에 여러 값이 지정됨" -#: libpq/hba.c:1642 +#: libpq/hba.c:1637 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "잘못된 IP 마스크, \"%s\": %s" -#: libpq/hba.c:1662 +#: libpq/hba.c:1657 #, c-format msgid "IP address and mask do not match" msgstr "IP 주소와 마스크가 맞지 않습니다" -#: libpq/hba.c:1678 +#: libpq/hba.c:1673 #, c-format msgid "end-of-line before authentication method" msgstr "인증 방법 전에 줄 끝에 도달함" -#: libpq/hba.c:1689 +#: libpq/hba.c:1684 #, c-format msgid "multiple values specified for authentication type" msgstr "인증 방법 부분에 여러 값이 지정됨" -#: libpq/hba.c:1690 +#: libpq/hba.c:1685 #, c-format msgid "Specify exactly one authentication type per line." msgstr "하나의 인증 방법에 대해서 한 줄씩 지정해야 합니다" -#: libpq/hba.c:1767 +#: libpq/hba.c:1750 #, c-format msgid "invalid authentication method \"%s\"" msgstr "\"%s\" 인증 방법이 잘못됨" -#: libpq/hba.c:1780 +#: libpq/hba.c:1763 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "\"%s\" 인증 방법이 잘못됨: 이 서버에서 지원되지 않음" -#: libpq/hba.c:1803 +#: libpq/hba.c:1786 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "gssapi 인증은 로컬 소켓에서 지원되지 않음" -#: libpq/hba.c:1815 +#: libpq/hba.c:1798 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "peer 인증은 로컬 소켓에서만 지원함" -#: libpq/hba.c:1833 +#: libpq/hba.c:1816 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "cert 인증은 hostssl 연결에서만 지원됨" -#: libpq/hba.c:1883 +#: libpq/hba.c:1866 #, c-format msgid "authentication option not in name=value format: %s" msgstr "인증 옵션이 이름=값 형태가 아님: %s" -#: libpq/hba.c:1927 +#: libpq/hba.c:1910 #, c-format msgid "" "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, " @@ -16447,31 +16940,31 @@ msgstr "" "ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, " "ldapsearchfilter, ldapurl 옵션은 ldapprefix 옵션과 함께 사용할 수 없음" -#: libpq/hba.c:1938 +#: libpq/hba.c:1921 #, c-format msgid "" -"authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix" -"\", or \"ldapsuffix\" to be set" +"authentication method \"ldap\" requires argument \"ldapbasedn\", " +"\"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "" "\"ldap\" 인증 방법의 경우 \"ldapbasedn\", \"ldapprefix\", \"ldapsuffix\"옵션" "이 있어야 함" -#: libpq/hba.c:1954 +#: libpq/hba.c:1937 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "ldapsearchattribute 옵션은 ldapsearchfilter 옵션과 함께 사용할 수 없음" -#: libpq/hba.c:1971 +#: libpq/hba.c:1954 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "RADIUS 서버 목록은 비어 있을 수 없음" -#: libpq/hba.c:1982 +#: libpq/hba.c:1965 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "RADIUS 비밀키 목록은 비어 있을 수 없음" -#: libpq/hba.c:1999 +#: libpq/hba.c:1982 #, c-format msgid "" "the number of RADIUS secrets (%d) must be 1 or the same as the number of " @@ -16479,209 +16972,217 @@ msgid "" msgstr "" "RADIUS 비밀번호 개수(%d)는 하나이거나, RADIUS 서버 개수(%d)와 같아야 함" -#: libpq/hba.c:2015 +#: libpq/hba.c:1998 #, c-format msgid "" "the number of RADIUS ports (%d) must be 1 or the same as the number of " "RADIUS servers (%d)" msgstr "RADIUS 포트 개수(%d)는 하나이거나, RADIUS 서버 개수(%d)와 같아야 함" -#: libpq/hba.c:2031 +#: libpq/hba.c:2014 #, c-format msgid "" "the number of RADIUS identifiers (%d) must be 1 or the same as the number of " "RADIUS servers (%d)" msgstr "RADIUS 계정 개수(%d)는 하나이거나, RADIUS 서버 개수(%d)와 같아야 함" -#: libpq/hba.c:2083 +#: libpq/hba.c:2066 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi 및 cert" -#: libpq/hba.c:2092 +#: libpq/hba.c:2075 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert는 \"hostssl\" 행에 대해서만 구성할 수 있음" -#: libpq/hba.c:2109 +#: libpq/hba.c:2092 #, c-format msgid "" "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "" "\"cert\" 인증을 사용하는 경우 clientcert 값은 \"verify-full\" 만 허용함" -#: libpq/hba.c:2122 +#: libpq/hba.c:2105 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "잘못된 clientcert 값: \"%s\"" -#: libpq/hba.c:2134 +#: libpq/hba.c:2117 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname 설정은 \"hostssl\" 줄에만 지정할 수 있음" -#: libpq/hba.c:2153 +#: libpq/hba.c:2136 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "잘못된 clientname 값: \"%s\"" -#: libpq/hba.c:2186 +#: libpq/hba.c:2169 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "\"%s\" LDAP URL을 분석할 수 없음: %s" -#: libpq/hba.c:2197 +#: libpq/hba.c:2180 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "지원하지 않는 LDAP URL 스킴: %s" -#: libpq/hba.c:2221 +#: libpq/hba.c:2204 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "이 플랫폼에서는 LDAP URL 기능을 지원하지 않음." -#: libpq/hba.c:2239 +#: libpq/hba.c:2222 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "잘못된 ldapscheme 값: \"%s\"" -#: libpq/hba.c:2257 +#: libpq/hba.c:2240 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "LDAP 포트 번호가 잘못됨: \"%s\"" -#: libpq/hba.c:2303 libpq/hba.c:2310 +#: libpq/hba.c:2286 libpq/hba.c:2293 msgid "gssapi and sspi" msgstr "gssapi 및 sspi" -#: libpq/hba.c:2319 libpq/hba.c:2328 +#: libpq/hba.c:2302 libpq/hba.c:2311 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2350 +#: libpq/hba.c:2333 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "RADIUS 서버 목록 분석 실패: \"%s\"" -#: libpq/hba.c:2398 +#: libpq/hba.c:2381 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "RADIUS 서버 포트 목록 분석 실패: \"%s\"" -#: libpq/hba.c:2412 +#: libpq/hba.c:2395 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "RADIUS 포트 번호가 잘못됨: \"%s\"" # translator: %s is IPv4, IPv6, or Unix -#: libpq/hba.c:2434 +#: libpq/hba.c:2417 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "RADIUS 서버 비밀키 목록 분석 실패: \"%s\"" -#: libpq/hba.c:2456 +#: libpq/hba.c:2439 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "RADIUS 서버 식별자 목록 분석 실패: \"%s\"" -#: libpq/hba.c:2470 +#: libpq/hba.c:2453 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "알 수 없는 인증 옵션 이름: \"%s\"" -#: libpq/hba.c:2662 +#: libpq/hba.c:2645 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "\"%s\" 설정 파일에 구성 항목이 없음" -#: libpq/hba.c:2815 +#: libpq/hba.c:2798 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "\"%s\"에 대한 정규식 일치 실패: %s" -#: libpq/hba.c:2839 +#: libpq/hba.c:2822 #, c-format msgid "" "regular expression \"%s\" has no subexpressions as requested by " "backreference in \"%s\"" msgstr "\"%s\" 정규식에는 \"%s\"의 backreference에서 요청된 하위 식이 없음" -#: libpq/hba.c:2942 +#: libpq/hba.c:2925 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "제공된 사용자 이름(%s) 및 인증된 사용자 이름(%s)이 일치하지 않음" -#: libpq/hba.c:2962 +#: libpq/hba.c:2945 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "" "\"%s\" 사용자맵 파일에 \"%s\" 사용자를 \"%s\" 사용자로 인증할 설정이 없음" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 +#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 +#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 +#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#, c-format +msgid "%s(%s) failed: %m" +msgstr "%s(%s) 실패: %m" + +#: libpq/pqcomm.c:296 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "소켓을 nonblocking 모드로 지정할 수 없음: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:456 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "\"%s\" 유닉스 도메인 소켓 경로가 너무 깁니다 (최대 %d 바이트)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:476 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "호스트 이름 \"%s\", 서비스 \"%s\"를 변환할 수 없습니다. 주소 : %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:480 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "서비스 \"%s\"를 변환할 수 없습니다. 주소 : %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:502 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "최대 접속자 수 MAXLISTEN (%d) 초과로 더 이상 접속이 불가능합니다" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:511 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:514 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:517 msgid "Unix" msgstr "유닉스" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:521 #, c-format msgid "unrecognized address family %d" msgstr "%d는 인식되지 않는 가족 주소입니다" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:545 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "%s 소켓 만들기 실패, 대상 주소: \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) 실패, 연결 종류: %s, 대상 주소: \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:615 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "%s 바인드 실패, 대상 주소: \"%s\": %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:619 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "다른 postmaster 가 포트 %d에서 이미 실행중인것 같습니다?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:621 #, c-format msgid "" "Is another postmaster already running on port %d? If not, wait a few seconds " @@ -16691,131 +17192,123 @@ msgstr "" "를 기다렸다가 다시 시도해보십시오." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:650 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "%s 리슨 실패, 대상 주소: \"%s\": %m" # translator: %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:658 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "\"%s\" 유닉스 도메인 소켓으로 접속을 허용합니다" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:663 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "%s, 주소: \"%s\", 포트 %d 번으로 접속을 허용합니다" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:753 #, c-format msgid "group \"%s\" does not exist" msgstr "\"%s\" 그룹 없음" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:763 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "파일 \"%s\" 의 그룹을 세팅할 수 없습니다: %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:774 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "파일 \"%s\" 의 퍼미션을 세팅할 수 없습니다: %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:803 #, c-format msgid "could not accept new connection: %m" msgstr "새로운 연결을 생성할 수 없습니다: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1624 libpq/pqcomm.c:1669 libpq/pqcomm.c:1709 -#: libpq/pqcomm.c:1753 libpq/pqcomm.c:1792 libpq/pqcomm.c:1831 -#: libpq/pqcomm.c:1867 libpq/pqcomm.c:1906 -#, c-format -msgid "%s(%s) failed: %m" -msgstr "%s(%s) 실패: %m" - -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:885 #, c-format msgid "there is no client connection" msgstr "클라이언트 연결이 없음" -#: libpq/pqcomm.c:954 libpq/pqcomm.c:1050 +#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 #, c-format msgid "could not receive data from client: %m" msgstr "클라이언트에게 데이터를 받을 수 없습니다: %m" -#: libpq/pqcomm.c:1155 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1149 tcop/postgres.c:4533 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "프로토콜 동기화 작업 실패로 연결을 종료합니다" -#: libpq/pqcomm.c:1221 +#: libpq/pqcomm.c:1215 #, c-format msgid "unexpected EOF within message length word" msgstr "예상치 못한 EOF가 메시지의 길이 워드안에서 발생했습니다." -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1225 #, c-format msgid "invalid message length" msgstr "메시지의 길이가 유효하지 않습니다" -#: libpq/pqcomm.c:1253 libpq/pqcomm.c:1266 +#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 #, c-format msgid "incomplete message from client" msgstr "클라이언트으로부터의 완전하지 못한 메시지입니다" -#: libpq/pqcomm.c:1377 +#: libpq/pqcomm.c:1401 #, c-format msgid "could not send data to client: %m" msgstr "클라이언트에게 데이터를 보낼 수 없습니다: %m" -#: libpq/pqcomm.c:1592 +#: libpq/pqcomm.c:1616 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) 실패: 오류 코드 %d" -#: libpq/pqcomm.c:1681 +#: libpq/pqcomm.c:1705 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "keepalive idle time 지정하는 것은 지원하지 않음" -#: libpq/pqcomm.c:1765 libpq/pqcomm.c:1840 libpq/pqcomm.c:1915 +#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) 지원하지 않음" -#: libpq/pqformat.c:407 +#: libpq/pqformat.c:404 #, c-format msgid "no data left in message" msgstr "메시지에 아무런 데이터가 없습니다" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1506 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 +#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 +#: utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "부족한 데이터는 메시지 안에 넣어져 있습니다" -#: libpq/pqformat.c:598 libpq/pqformat.c:627 +#: libpq/pqformat.c:595 libpq/pqformat.c:624 #, c-format msgid "invalid string in message" msgstr "메시지안에 유효하지 않은 문자열이 있습니다" -#: libpq/pqformat.c:643 +#: libpq/pqformat.c:640 #, c-format msgid "invalid message format" msgstr "메시지 포맷이 유효하지 않습니다." # # search5 끝 # # advance 부분 -#: main/main.c:235 +#: main/main.c:236 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: WSAStartup 작업 실패: %d\n" -#: main/main.c:329 +#: main/main.c:324 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -16824,7 +17317,7 @@ msgstr "" "%s 프로그램은 PostgreSQL 서버입니다.\n" "\n" -#: main/main.c:330 +#: main/main.c:325 #, c-format msgid "" "Usage:\n" @@ -16835,107 +17328,107 @@ msgstr "" " %s [옵션]...\n" "\n" -#: main/main.c:331 +#: main/main.c:326 #, c-format msgid "Options:\n" msgstr "옵션들:\n" -#: main/main.c:332 +#: main/main.c:327 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS 공유 버퍼 개수\n" -#: main/main.c:333 +#: main/main.c:328 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c NAME=VALUE 실시간 매개 변수 지정\n" -#: main/main.c:334 +#: main/main.c:329 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NAME 실시간 매개 변수 값을 보여주고 마침\n" -#: main/main.c:335 +#: main/main.c:330 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 디버깅 수준\n" -#: main/main.c:336 +#: main/main.c:331 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR 데이터 디렉터리\n" -#: main/main.c:337 +#: main/main.c:332 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e 날짜 입력 양식이 유럽형(DMY)을 사용함\n" -#: main/main.c:338 +#: main/main.c:333 #, c-format msgid " -F turn fsync off\n" msgstr " -F fsync 기능 끔\n" -#: main/main.c:339 +#: main/main.c:334 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h HOSTNAME 서버로 사용할 호스트 이름 또는 IP\n" -#: main/main.c:340 +#: main/main.c:335 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr " -i TCP/IP 연결 사용함 (옛 버전 호환용)\n" -#: main/main.c:341 +#: main/main.c:336 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k DIRECTORY 유닉스 도메인 소켓 위치\n" -#: main/main.c:343 +#: main/main.c:338 #, c-format msgid " -l enable SSL connections\n" msgstr " -l SSL 연결 기능 사용함\n" -#: main/main.c:345 +#: main/main.c:340 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-CONNECT 최대 동시 연결 개수\n" -#: main/main.c:346 +#: main/main.c:341 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PORT 서버 포트 번호\n" -#: main/main.c:347 +#: main/main.c:342 #, c-format msgid " -s show statistics after each query\n" msgstr " -s 각 쿼리 뒤에 통계정보를 보여줌\n" -#: main/main.c:348 +#: main/main.c:343 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM 정렬작업에 사용할 메모리 크기(kb 단위)를 지정\n" -#: main/main.c:349 +#: main/main.c:344 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보 보여주고 마침\n" -#: main/main.c:350 +#: main/main.c:345 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NAME=VALUE 실시간 매개 변수 지정\n" -#: main/main.c:351 +#: main/main.c:346 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config 서버 환경 설정값에 대한 설명을 보여주고 마침\n" -#: main/main.c:352 +#: main/main.c:347 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: main/main.c:354 +#: main/main.c:349 #, c-format msgid "" "\n" @@ -16944,27 +17437,27 @@ msgstr "" "\n" "개발자 옵션들:\n" -#: main/main.c:355 +#: main/main.c:350 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h 쿼리최적화기의 기능을 제한 함\n" -#: main/main.c:356 +#: main/main.c:351 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O 시스템 테이블의 구조를 바꿀 수 있도록 함\n" -#: main/main.c:357 +#: main/main.c:352 #, c-format msgid " -P disable system indexes\n" msgstr " -P 시스템 인덱스들을 사용하지 않음\n" -#: main/main.c:358 +#: main/main.c:353 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex 각 쿼리 다음 작업시간을 보여줌\n" -#: main/main.c:359 +#: main/main.c:354 #, c-format msgid "" " -T send SIGABRT to all backend processes if one dies\n" @@ -16972,13 +17465,13 @@ msgstr "" " -T 하나의 하위 서버 프로세스가 비정상으로 마치며 모든\n" " 다른 백엔드 프로세스에게 SIGABRT 신호를 보냄\n" -#: main/main.c:360 +#: main/main.c:355 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr "" " -W NUM 디버그 작업을 위해 지정한 숫자의 초만큼 기다린다\n" -#: main/main.c:362 +#: main/main.c:357 #, c-format msgid "" "\n" @@ -16987,28 +17480,28 @@ msgstr "" "\n" "단일사용자 모드에서 사용할 수 있는 옵션들:\n" -#: main/main.c:363 +#: main/main.c:358 #, c-format msgid "" " --single selects single-user mode (must be first argument)\n" msgstr " --single 단일 사용자 모드 선택 (인자의 첫번째로 와야함)\n" -#: main/main.c:364 +#: main/main.c:359 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME 데이터베이스 이름 (초기값: 사용자이름)\n" -#: main/main.c:365 +#: main/main.c:360 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 디버깅 수준\n" -#: main/main.c:366 +#: main/main.c:361 #, c-format msgid " -E echo statement before execution\n" msgstr " -E 실행하기 전에 작업명령을 출력함\n" -#: main/main.c:367 +#: main/main.c:362 #, c-format msgid "" " -j do not use newline as interactive query delimiter\n" @@ -17016,14 +17509,14 @@ msgstr "" " -j 대화형 쿼리의 명령 실행 구분 문자로 줄바꿈문자를 쓰지 않" "음\n" -#: main/main.c:368 main/main.c:374 +#: main/main.c:363 main/main.c:369 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr "" " -r FILENAME stdout, stderr 쪽으로 보내는 내용을 FILENAME 파일로 저장" "함\n" -#: main/main.c:370 +#: main/main.c:365 #, c-format msgid "" "\n" @@ -17032,25 +17525,25 @@ msgstr "" "\n" "부트스트랩 모드에서 사용할 수 있는 옵션들:\n" -#: main/main.c:371 +#: main/main.c:366 #, c-format msgid "" " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot 부트스트랩 모드로 실행 (첫번째 인자로 와야함)\n" -#: main/main.c:372 +#: main/main.c:367 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check 체크 모드 선택 (첫번째 인자로 와야함)\n" -#: main/main.c:373 +#: main/main.c:368 #, c-format msgid "" " DBNAME database name (mandatory argument in bootstrapping " "mode)\n" msgstr " DBNAME 데이터베이스 이름 (부트스트랩 모드에서 필수)\n" -#: main/main.c:376 +#: main/main.c:371 #, c-format msgid "" "\n" @@ -17067,12 +17560,12 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: main/main.c:380 +#: main/main.c:375 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: main/main.c:391 +#: main/main.c:386 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -17085,12 +17578,12 @@ msgstr "" "반드시 일반 사용자 ID(시스템 관리자 권한이 없는 ID)로 서버를 실행하십시오.\n" "Server를 어떻게 안전하게 기동하는가 하는 것은 문서를 참조하시기 바랍니다.\n" -#: main/main.c:408 +#: main/main.c:403 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: real 또는 effective user ID 들은 반드시 일치되어야 한다.\n" -#: main/main.c:415 +#: main/main.c:410 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -17114,20 +17607,15 @@ msgstr "\"%s\" 이름의 확장가능한 노드 형이 이미 있습니다" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "\"%s\" ExtensibleNodeMethods가 등록되어 있지 않음" -#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 +#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "\"%s\" 릴레이션에 해당하는 복합 자료형이 없음" -#: nodes/makefuncs.c:879 -#, c-format -msgid "unrecognized JSON encoding: %s" -msgstr "알 수 없는 JSON 인코딩: %s" - -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "자료형 %s 에 대해서는 배열 자료형을 사용할 수 없습니다" @@ -17142,7 +17630,7 @@ msgstr "\"%s\" 포탈의 매개 변수: %s" msgid "unnamed portal with parameters: %s" msgstr "이름 없는 포탈의 매개 변수: %s" -#: optimizer/path/joinrels.c:973 +#: optimizer/path/joinrels.c:972 #, c-format msgid "" "FULL JOIN is only supported with merge-joinable or hash-joinable join " @@ -17151,14 +17639,14 @@ msgstr "" "FULL JOIN 구문은 머지 조인이나, 해시 조인이 가능한 상황에서만 사용할 수 있습" "니다" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203 +#: rewrite/rewriteHandler.c:1702 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "\"%s\" 릴레이션에서 MERGE 명령을 실행할 수 없음" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1408 +#: optimizer/plan/initsplan.c:1407 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "" @@ -17166,92 +17654,92 @@ msgstr "" "다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 +#: parser/analyze.c:3247 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s 구문은 UNION/INTERSECT/EXCEPT 예약어들과 함께 사용할 수 없습니다." -#: optimizer/plan/planner.c:2082 optimizer/plan/planner.c:4040 +#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4108 #, c-format msgid "could not implement GROUP BY" msgstr "GROUP BY를 구현할 수 없음" -#: optimizer/plan/planner.c:2083 optimizer/plan/planner.c:4041 -#: optimizer/plan/planner.c:4681 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4109 +#: optimizer/plan/planner.c:4790 optimizer/prep/prepunion.c:1320 #, c-format msgid "" "Some of the datatypes only support hashing, while others only support " "sorting." msgstr "해싱만 지원하는 자료형도 있고, 정렬만 지원하는 자료형도 있습니다." -#: optimizer/plan/planner.c:4680 +#: optimizer/plan/planner.c:4789 #, c-format msgid "could not implement DISTINCT" msgstr "DISTINCT를 구현할 수 없음" -#: optimizer/plan/planner.c:6019 +#: optimizer/plan/planner.c:6134 #, c-format msgid "could not implement window PARTITION BY" msgstr "창 PARTITION BY를 구현할 수 없음" -#: optimizer/plan/planner.c:6020 +#: optimizer/plan/planner.c:6135 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "창 분할 칼럼은 정렬 가능한 데이터 형식이어야 합니다." -#: optimizer/plan/planner.c:6024 +#: optimizer/plan/planner.c:6139 #, c-format msgid "could not implement window ORDER BY" msgstr "창 ORDER BY를 구현할 수 없음" -#: optimizer/plan/planner.c:6025 +#: optimizer/plan/planner.c:6140 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "창 순서 지정 칼럼은 정렬 가능한 데이터 형식이어야 합니다." -#: optimizer/prep/prepunion.c:516 +#: optimizer/prep/prepunion.c:467 #, c-format msgid "could not implement recursive UNION" msgstr "재귀 UNION을 구현할 수 없음" -#: optimizer/prep/prepunion.c:517 +#: optimizer/prep/prepunion.c:468 #, c-format msgid "All column datatypes must be hashable." msgstr "모든 열 데이터 형식은 해시 가능해야 합니다." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1052 +#: optimizer/prep/prepunion.c:1319 #, c-format msgid "could not implement %s" msgstr "%s 구문은 구현할 수 없음" -#: optimizer/util/clauses.c:4856 +#: optimizer/util/clauses.c:4963 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "\"%s\" SQL 함수를 인라인으로 바꾸는 중" -#: optimizer/util/plancat.c:154 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "복구 작업 중에는 임시 테이블이나, 언로그드 테이블을 접근할 수 없음" -#: optimizer/util/plancat.c:726 +#: optimizer/util/plancat.c:768 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "전체 로우 유니크 인덱스 인터페이스 규약은 지원하지 않습니다." -#: optimizer/util/plancat.c:743 +#: optimizer/util/plancat.c:785 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "ON CONFLICT 처리를 위해 관련된 인덱스가 없습니다" -#: optimizer/util/plancat.c:793 +#: optimizer/util/plancat.c:835 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "제외 제약 조건이 있어 ON CONFLICT DO UPDATE 작업은 할 수 없습니다" -#: optimizer/util/plancat.c:898 +#: optimizer/util/plancat.c:945 #, c-format msgid "" "there is no unique or exclusion constraint matching the ON CONFLICT " @@ -17259,23 +17747,23 @@ msgid "" msgstr "" "ON CONFLICT 절을 사용하는 경우, unique 나 exclude 제약 조건이 있어야 함" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:824 parser/analyze.c:1550 #, c-format msgid "VALUES lists must all be the same length" msgstr "VALUES 목록은 모두 같은 길이여야 함" -#: parser/analyze.c:1028 +#: parser/analyze.c:1027 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT 구문에 target columns 보다 더 많은 표현식이 존재하고 있다" -#: parser/analyze.c:1046 +#: parser/analyze.c:1045 #, c-format msgid "INSERT has more target columns than expressions" msgstr "" "INSERT 구문에 target columns 보다 더 많은 표현식(expressions)이 존재하고 있다" -#: parser/analyze.c:1050 +#: parser/analyze.c:1049 #, c-format msgid "" "The insertion source is a row expression containing the same number of " @@ -17284,40 +17772,40 @@ msgstr "" "삽입 소스는 INSERT 작업에서 기대하는 칼럼 수와 같은 로우 표현식입니다. 실수" "로 괄호를 추가한 것은 아닌지 확인하세요." -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1357 parser/analyze.c:1744 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO 구문은 여기서는 사용할 수 없음" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1673 parser/analyze.c:3479 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s 구문은 VALUES 에 적용할 수 없음" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "UNION/INTERSECT/EXCEPT ORDER BY 절이 잘못됨" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "결과 열 이름만 사용할 수 있고 식 또는 함수는 사용할 수 없습니다." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "" "Add the expression/function to every SELECT, or move the UNION into a FROM " "clause." msgstr "모든 SELECT에 식/함수를 추가하거나 UNION을 FROM 절로 이동하십시오." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO 는 UNION/INTERSECT/EXCEPT 의 첫번째 SELECT 에만 허용된다" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "" "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of " @@ -17326,34 +17814,39 @@ msgstr "" "UNION/INTERSECT/EXCEPT 멤버 문에서 같은 쿼리 수준의 다른 관계를 참조할 수 없" "음" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "각각의 %s query 는 같은 수의 columns 를 가져야 한다." -#: parser/analyze.c:2573 +#: parser/analyze.c:2535 +#, c-format +msgid "SET target columns cannot be qualified with the relation name." +msgstr "SET 대상 칼럼들은 해당 릴레이션 이름으로 한정할 수 없습니다." + +#: parser/analyze.c:2589 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING 절에는 적어도 하나 이상의 칼럼이 있어야 합니다" -#: parser/analyze.c:2676 +#: parser/analyze.c:2692 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" -msgstr[0] "" +msgstr[0] "지정된 소스가 %d개의 칼럼을 반환했음" -#: parser/analyze.c:2737 +#: parser/analyze.c:2753 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "변수 \"%s\" 는 %s 자료형인데 표현식은 %s 자료형입니다." #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2878 parser/analyze.c:2886 #, c-format msgid "cannot specify both %s and %s" msgstr "%s, %s 둘다를 명시할 수 없다" -#: parser/analyze.c:2890 +#: parser/analyze.c:2906 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "" @@ -17361,331 +17854,331 @@ msgstr "" "다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2914 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s 구문은 지원되지 않음" -#: parser/analyze.c:2901 +#: parser/analyze.c:2917 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "보류 가능 커서는 READ ONLY여야 합니다." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2925 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s 구문은 지원되지 않음" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2936 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s 구문이 잘못됨" -#: parser/analyze.c:2923 +#: parser/analyze.c:2939 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "민감하지 않은 커서는 READ ONLY여야 합니다." -#: parser/analyze.c:3017 +#: parser/analyze.c:3033 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "" "구체화된 뷰 정의에 사용한 WITH 절 안에는 자료 변경 구문이 없어야 합니다" -#: parser/analyze.c:3027 +#: parser/analyze.c:3043 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "구체화된 뷰는 임시 테이블이나 뷰를 사용할 수 없습니다" -#: parser/analyze.c:3037 +#: parser/analyze.c:3053 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "구체화딘 뷰는 바운드 매개 변수를 이용해서 정의할 수 없습니다" -#: parser/analyze.c:3049 +#: parser/analyze.c:3065 #, c-format msgid "materialized views cannot be unlogged" msgstr "구체화된 뷰는 UNLOGGED 옵션을 사용할 수 없습니다." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3254 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s 절은 DISTINCT 절과 함께 사용할 수 없습니다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3261 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s 절은 GROUP BY 절과 함께 사용할 수 없습니다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3268 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s 절은 HAVING 절과 함께 사용할 수 없습니다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3275 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s 절은 집계 함수와 함께 사용할 수 없습니다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3282 #, c-format msgid "%s is not allowed with window functions" msgstr "%s 절은 윈도우 함수와 함께 사용할 수 없습니다" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3289 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s 절은 대상 목록에서 세트 반환 함수와 함께 사용할 수 없습니다." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3388 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s 절에는 unqualified 릴레이션 이름을 지정해야 합니다." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3436 +#: parser/analyze.c:3452 #, 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:3445 +#: parser/analyze.c:3461 #, 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:3454 +#: parser/analyze.c:3470 #, 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:3472 +#: parser/analyze.c:3488 #, 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:3481 +#: parser/analyze.c:3497 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s 절은 named tuplestore에 적용할 수 없음" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3501 +#: parser/analyze.c:3517 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "\"%s\" 릴레이션 (대상 구문: %s) 이 FROM 절 내에 없습니다" -#: parser/parse_agg.c:221 parser/parse_oper.c:227 +#: parser/parse_agg.c:210 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "%s 자료형에서 사용할 순서 정하는 연산자를 찾을 수 없습니다." -#: parser/parse_agg.c:223 +#: parser/parse_agg.c:212 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "" "DISTINCT와 함께 작업하는 집계 작업은 그 입력 자료가 정렬될 수 있어야 합니다" -#: parser/parse_agg.c:258 +#: parser/parse_agg.c:270 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING 인자로는 32개 이내로 지정해야 합니다" -#: parser/parse_agg.c:361 +#: parser/parse_agg.c:373 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "JOIN 조건문에서는 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:363 +#: parser/parse_agg.c:375 msgid "grouping operations are not allowed in JOIN conditions" msgstr "JOIN 조건문에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:385 msgid "" "aggregate functions are not allowed in FROM clause of their own query level" msgstr "집계 함수는 자신의 쿼리 수준의 FROM 절에서는 사용할 수 없습니다." -#: parser/parse_agg.c:377 +#: parser/parse_agg.c:387 msgid "" "grouping operations are not allowed in FROM clause of their own query level" msgstr "자체 쿼리 수준의 FROM 절에는 그룹핑 작업을 허용하지 않습니다." -#: parser/parse_agg.c:382 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "FROM 절 내의 함수 표현식 내에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:384 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "FROM 절 내의 함수 표현식 내에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "정책 표현식에서는 집계 함수 사용을 허용하지 않습니다" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "정책 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:411 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "윈도우 RANGE 안에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:413 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "윈도우 RANGE 안에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:418 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "윈도우 ROWS 안에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:420 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "윈도우 ROWS 안에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "윈도우 GROUPS 안에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:427 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "윈도우 GROUPS 안에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:440 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN 조건절에 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:442 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN 조건절에 그룹핑 작업이 허용되지 않습니다" -#: parser/parse_agg.c:468 +#: parser/parse_agg.c:479 msgid "aggregate functions are not allowed in check constraints" msgstr "체크 제약 조건에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:470 +#: parser/parse_agg.c:481 msgid "grouping operations are not allowed in check constraints" msgstr "체크 제약 조건에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:477 +#: parser/parse_agg.c:488 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "DEFAULT 표현식에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:479 +#: parser/parse_agg.c:490 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "DEFAULT 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:484 +#: parser/parse_agg.c:495 msgid "aggregate functions are not allowed in index expressions" msgstr "인덱스 표현식에서는 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:486 +#: parser/parse_agg.c:497 msgid "grouping operations are not allowed in index expressions" msgstr "인덱스 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:491 +#: parser/parse_agg.c:502 msgid "aggregate functions are not allowed in index predicates" msgstr "집계 함수는 함수 기반 인덱스의 함수로 사용할 수 없습니다" -#: parser/parse_agg.c:493 +#: parser/parse_agg.c:504 msgid "grouping operations are not allowed in index predicates" msgstr "그룹핑 작업은 함수 기반 인덱스의 함수로 사용할 수 없습니다" -#: parser/parse_agg.c:498 +#: parser/parse_agg.c:509 msgid "aggregate functions are not allowed in statistics expressions" msgstr "정책 표현식에서는 집계 함수 사용을 허용하지 않습니다" -#: parser/parse_agg.c:500 +#: parser/parse_agg.c:511 msgid "grouping operations are not allowed in statistics expressions" msgstr "통계 정보 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:505 +#: parser/parse_agg.c:516 msgid "aggregate functions are not allowed in transform expressions" msgstr "transform 식(expression)에 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:507 +#: parser/parse_agg.c:518 msgid "grouping operations are not allowed in transform expressions" msgstr "transform 식(expression)에 그룹핑 작업를 사용할 수 없습니다" -#: parser/parse_agg.c:512 +#: parser/parse_agg.c:523 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "EXECUTE 매개 변수로 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:514 +#: parser/parse_agg.c:525 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "EXECUTE 매개 변수로 그룹핑 작업을 사용할 수 없습니다" -#: parser/parse_agg.c:519 +#: parser/parse_agg.c:530 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "트리거의 WHEN 조건절에 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:521 +#: parser/parse_agg.c:532 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "트리거의 WHEN 조건절에 그룹핑 작업이 허용되지 않습니다" -#: parser/parse_agg.c:526 +#: parser/parse_agg.c:537 msgid "aggregate functions are not allowed in partition bound" msgstr "파티션 범위 표현식에는 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:528 +#: parser/parse_agg.c:539 msgid "grouping operations are not allowed in partition bound" msgstr "파티션 범위 표현식에는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:533 +#: parser/parse_agg.c:544 msgid "aggregate functions are not allowed in partition key expressions" msgstr "파티션 키 표현식에서는 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:535 +#: parser/parse_agg.c:546 msgid "grouping operations are not allowed in partition key expressions" msgstr "파티션 키 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:552 msgid "aggregate functions are not allowed in column generation expressions" msgstr "미리 계산된 칼럼 표현식에서는 집계 함수 사용을 허용하지 않습니다" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:554 msgid "grouping operations are not allowed in column generation expressions" msgstr "미리 계산된 칼럼 표현식에서는 그룹핑 연산이 허용되지 않습니다" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:560 msgid "aggregate functions are not allowed in CALL arguments" msgstr "CALL 매개 변수로 집계 함수를 사용할 수 없습니다" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:562 msgid "grouping operations are not allowed in CALL arguments" msgstr "CALL 매개 변수로 그룹핑 연산을 사용할 수 없습니다" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:568 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "COPY FROM WHERE 조건문에서는 집계 함수가 허용되지 않습니다" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:570 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "COPY FROM WHERE 조건문에서는 그룹핑 연산이 허용되지 않습니다" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:586 parser/parse_clause.c:1956 +#: parser/parse_agg.c:597 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "집계 함수는 %s 절에서 사용할 수 없습니다." #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:589 +#: parser/parse_agg.c:600 #, c-format msgid "grouping operations are not allowed in %s" msgstr "그룹핑 작업은 %s 절에서 사용할 수 없습니다." -#: parser/parse_agg.c:690 +#: parser/parse_agg.c:701 #, c-format msgid "" "outer-level aggregate cannot contain a lower-level variable in its direct " @@ -17693,119 +18186,119 @@ msgid "" msgstr "" "출력 수준 집계는 그 직접적인 인자 안에 저수준 변수를 포함할 수 없습니다." -#: parser/parse_agg.c:768 +#: parser/parse_agg.c:779 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "집계 함수 호출은 집합 반환 함수 호출을 포함할 수 없음" -#: parser/parse_agg.c:769 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245 +#: parser/parse_func.c:885 #, c-format msgid "" "You might be able to move the set-returning function into a LATERAL FROM " "item." msgstr "집합 반환 함수를 LATERAL FROM 쪽으로 옮겨서 구현할 수도 있습니다." -#: parser/parse_agg.c:774 +#: parser/parse_agg.c:785 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "집계 함수 호출은 윈도우 함수 호출을 포함할 수 없음" -#: parser/parse_agg.c:853 +#: parser/parse_agg.c:864 msgid "window functions are not allowed in JOIN conditions" msgstr "윈도우 함수는 JOIN 조건에 사용할 수 없음" -#: parser/parse_agg.c:860 +#: parser/parse_agg.c:871 msgid "window functions are not allowed in functions in FROM" msgstr "윈도우 함수는 FROM 절에 있는 함수로 사용할 수 없음" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:877 msgid "window functions are not allowed in policy expressions" msgstr "윈도우 함수는 정책 식에 사용할 수 없음" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:890 msgid "window functions are not allowed in window definitions" msgstr "윈도우 함수는 윈도우 함수 정의에 사용할 수 없음" -#: parser/parse_agg.c:890 +#: parser/parse_agg.c:901 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "윈도우 함수는 MERGE WHEN 조건절에서 사용할 수 없음" -#: parser/parse_agg.c:914 +#: parser/parse_agg.c:926 msgid "window functions are not allowed in check constraints" msgstr "윈도우 함수는 check 제약조건에 사용할 수 없음" -#: parser/parse_agg.c:918 +#: parser/parse_agg.c:930 msgid "window functions are not allowed in DEFAULT expressions" msgstr "윈도우 함수는 DEFAULT 식에서 사용할 수 없음" -#: parser/parse_agg.c:921 +#: parser/parse_agg.c:933 msgid "window functions are not allowed in index expressions" msgstr "윈도우 함수는 인덱스 식에서 사용할 수 없음" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:936 msgid "window functions are not allowed in statistics expressions" msgstr "윈도우 함수는 통계 정보식에 사용할 수 없음" -#: parser/parse_agg.c:927 +#: parser/parse_agg.c:939 msgid "window functions are not allowed in index predicates" msgstr "윈도우 함수는 함수 기반 인덱스에서 사용할 수 없음" -#: parser/parse_agg.c:930 +#: parser/parse_agg.c:942 msgid "window functions are not allowed in transform expressions" msgstr "윈도우 함수는 transform 식에서 사용할 수 없음" -#: parser/parse_agg.c:933 +#: parser/parse_agg.c:945 msgid "window functions are not allowed in EXECUTE parameters" msgstr "윈도우 함수는 EXECUTE 매개 변수 설정 값으로 사용할 수 없음" -#: parser/parse_agg.c:936 +#: parser/parse_agg.c:948 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "윈도우 함수는 트리거의 WHEN 조건절에서 사용할 수 없음" -#: parser/parse_agg.c:939 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in partition bound" msgstr "윈도우 함수는 파티션 범위 표현식에서 사용할 수 없음" -#: parser/parse_agg.c:942 +#: parser/parse_agg.c:954 msgid "window functions are not allowed in partition key expressions" msgstr "윈도우 함수는 파티션 키 표현식에서 사용할 수 없음" -#: parser/parse_agg.c:945 +#: parser/parse_agg.c:957 msgid "window functions are not allowed in CALL arguments" msgstr "윈도우 함수는 CALL 매개 변수 설정 값으로 사용할 수 없음" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:960 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "윈도우 함수는 COPY FROM WHERE 조건에 사용할 수 없음" -#: parser/parse_agg.c:951 +#: parser/parse_agg.c:963 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:974 parser/parse_clause.c:1965 +#: parser/parse_agg.c:986 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "%s 안에서는 윈도우 함수를 사용할 수 없음" -#: parser/parse_agg.c:1008 parser/parse_clause.c:2798 +#: parser/parse_agg.c:1020 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "\"%s\" 윈도우 함수가 없음" -#: parser/parse_agg.c:1096 +#: parser/parse_agg.c:1108 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "너무 많은 그룹핑 세트가 있습니다 (최대값 4096)" -#: parser/parse_agg.c:1236 +#: parser/parse_agg.c:1248 #, c-format msgid "" "aggregate functions are not allowed in a recursive query's recursive term" msgstr "집계 함수는 재귀 쿼리의 재귀 조건에 사용할 수 없음" -#: parser/parse_agg.c:1429 +#: parser/parse_agg.c:1441 #, c-format msgid "" "column \"%s.%s\" must appear in the GROUP BY clause or be used in an " @@ -17814,60 +18307,60 @@ msgstr "" "column \"%s.%s\" 는 반드시 GROUP BY 절내에 있어야 하던지 또는 집계 함수 내에" "서 사용되어져야 한다" -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1444 #, c-format msgid "" "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "순서있는 집합 집계 함수의 직접 인자는 그룹화된 칼럼만 사용해야합니다." -#: parser/parse_agg.c:1437 +#: parser/parse_agg.c:1449 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "subquery 가 outer query 에서 그룹화 되지 않은 열인 \"%s.%s\"를 사용합니다" -#: parser/parse_agg.c:1601 +#: parser/parse_agg.c:1613 #, c-format msgid "" "arguments to GROUPING must be grouping expressions of the associated query " "level" msgstr "GROUPING의 인자는 그 관련 쿼리 수준의 그룹핑 표현식이어야 합니다." -#: parser/parse_clause.c:195 +#: parser/parse_clause.c:193 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "\"%s\" 릴레이션은 자료 변경 구문의 대상이 될 수 없음" -#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 +#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "집합 변환 함수는 FROM 절의 최상위 수준에서만 사용할 수 있습니다." -#: parser/parse_clause.c:611 +#: parser/parse_clause.c:609 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "다중 칼럼 정의 목록은 같은 함수용으로 허용하지 않음" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:642 #, c-format msgid "" "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "" "여러 함수를 사용하는 ROWS FROM() 구문에는 칼럼 정의 목록을 지정하면 안됩니다." -#: parser/parse_clause.c:645 +#: parser/parse_clause.c:643 #, c-format msgid "" "Put a separate column definition list for each function inside ROWS FROM()." msgstr "ROWS FROM() 안 각 함수용 칼럼 정의 목록을 구분해 주세요." -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:649 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "" "여러 인자를 사용하는 UNNEST()에서는 칼럼 정의 목록을 사용할 수 없습니다." -#: parser/parse_clause.c:652 +#: parser/parse_clause.c:650 #, c-format msgid "" "Use separate UNNEST() calls inside ROWS FROM(), and attach a column " @@ -17875,153 +18368,153 @@ msgid "" msgstr "" "ROWS FROM() 안에 UNNEST() 호출을 분리하고, 각각 칼럼 정의 목록을 추가하세요." -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:657 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY 구문은 칼럼 정의 목록과 함께 쓸 수 없습니다." -#: parser/parse_clause.c:660 +#: parser/parse_clause.c:658 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "ROWS FROM() 안에 칼럼 정의 목록을 넣으세요." -#: parser/parse_clause.c:760 +#: parser/parse_clause.c:762 parser/parse_jsontable.c:295 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "하나의 FOR ORDINALITY 칼럼만 허용합니다." -#: parser/parse_clause.c:821 +#: parser/parse_clause.c:823 #, c-format msgid "column name \"%s\" is not unique" msgstr "\"%s\" 칼럼은 유일성을 가지지 못합니다(not unique)" -#: parser/parse_clause.c:863 +#: parser/parse_clause.c:865 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "\"%s\" 네임스페이스는 유일성을 가지지 못합니다(not unique)" -#: parser/parse_clause.c:873 +#: parser/parse_clause.c:875 #, c-format msgid "only one default namespace is allowed" msgstr "기본 네임스페이스는 하나만 허용합니다" -#: parser/parse_clause.c:933 +#: parser/parse_clause.c:935 #, c-format msgid "tablesample method %s does not exist" msgstr "\"%s\" 테이블 샘플링 방법이 없습니다" -#: parser/parse_clause.c:955 +#: parser/parse_clause.c:957 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" msgstr[0] "\"%s\" 테이블 샘플링 방법 %d개 인자를 지정해야함, (현재 %d개)" -#: parser/parse_clause.c:989 +#: parser/parse_clause.c:991 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "\"%s\" 테이블 샘플링 방법은 REPEATABLE 옵션을 지원하지 않음" -#: parser/parse_clause.c:1138 +#: parser/parse_clause.c:1144 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "TABLESAMPLE 절은 테이블과 구체화된 뷰에서만 사용할 수 있습니다" -#: parser/parse_clause.c:1325 +#: parser/parse_clause.c:1331 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "USING 절 내에 열 이름 \"%s\" 가 한번 이상 사용되었습니다" -#: parser/parse_clause.c:1340 +#: parser/parse_clause.c:1346 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "left table 내에 common column 이름 \"%s\" 가 한번 이상 사용되었다" -#: parser/parse_clause.c:1349 +#: parser/parse_clause.c:1355 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "USING 조건절에서 지정한 \"%s\" 칼럼이 왼쪽 테이블에 없음" -#: parser/parse_clause.c:1364 +#: parser/parse_clause.c:1370 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "common column name \"%s\"가 right table 에 한번 이상 사용되었다" -#: parser/parse_clause.c:1373 +#: parser/parse_clause.c:1379 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "USING 조건절에서 지정한 \"%s\" 칼럼이 오른쪽 테이블에 없음" -#: parser/parse_clause.c:1901 +#: parser/parse_clause.c:1907 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "FETCH FIRST ... WITH TIES 절 안에 로우가 null 이면 안됩니다." #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1926 +#: parser/parse_clause.c:1932 #, c-format msgid "argument of %s must not contain variables" msgstr "%s 의 인자로 변수를 포함할 수 없습니다." #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2091 +#: parser/parse_clause.c:2097 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "%s \"%s\" 가 명확하지 않은 표현입니다." #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2119 +#: parser/parse_clause.c:2125 #, c-format msgid "non-integer constant in %s" msgstr "정수가 아닌 상수가 %s 에 포함되어 있습니다" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2141 +#: parser/parse_clause.c:2147 #, c-format msgid "%s position %d is not in select list" msgstr "%s position %d 가 select list 에 포함되어 있지 않습니다" -#: parser/parse_clause.c:2580 +#: parser/parse_clause.c:2586 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE 인자로는 12개 이하의 인자만 허용합니다" -#: parser/parse_clause.c:2786 +#: parser/parse_clause.c:2792 #, c-format msgid "window \"%s\" is already defined" msgstr "\"%s\" 이름의 윈도우 함수가 이미 정의됨" -#: parser/parse_clause.c:2847 +#: parser/parse_clause.c:2853 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "\"%s\" 창의 PARTITION BY 절을 재정의할 수 없음" -#: parser/parse_clause.c:2859 +#: parser/parse_clause.c:2865 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "\"%s\" 창의 ORDER BY 절을 재정의할 수 없음" -#: parser/parse_clause.c:2889 parser/parse_clause.c:2895 +#: parser/parse_clause.c:2895 parser/parse_clause.c:2901 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "프래임 절이 있어, \"%s\" 윈도우를 복사할 수 없음." -#: parser/parse_clause.c:2897 +#: parser/parse_clause.c:2903 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "OVER 절에 괄호가 빠졌음" -#: parser/parse_clause.c:2917 +#: parser/parse_clause.c:2923 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" msgstr "PRECEDING/FOLLOWING 옵셋용 RANGE는 하나의 ORDER BY 칼럼이 필요합니다." -#: parser/parse_clause.c:2940 +#: parser/parse_clause.c:2946 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "GROUPS 모드는 ORDER BY 구문이 필요함" -#: parser/parse_clause.c:3011 +#: parser/parse_clause.c:3016 #, c-format msgid "" "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument " @@ -18030,75 +18523,75 @@ msgstr "" "DISTINCT, ORDER BY 표현식을 집계 함수와 쓸 때는, 반드시 select list 에 나타나" "야만 합니다" -#: parser/parse_clause.c:3012 +#: parser/parse_clause.c:3017 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "" "SELECT DISTINCT, ORDER BY 표현식을 위해서 반드시 select list 에 나타나야만 합" "니다" -#: parser/parse_clause.c:3044 +#: parser/parse_clause.c:3049 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "DISTINCT 예약어로 집계를 할 경우 적어도 하나의 인자는 있어야 함" -#: parser/parse_clause.c:3045 +#: parser/parse_clause.c:3050 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "SELECT DISTINCT 구문은 적어도 한 개 이상의 칼럼이 있어야 합니다" -#: parser/parse_clause.c:3111 parser/parse_clause.c:3143 +#: parser/parse_clause.c:3116 parser/parse_clause.c:3148 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "" "SELECT DISTINCT ON 표현식은 반드시 초기 ORDER BY 표현식과 일치하여야 한다" -#: parser/parse_clause.c:3221 +#: parser/parse_clause.c:3226 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC 예약어는 ON CONFLICT 절과 함께 사용할 수 없습니다." -#: parser/parse_clause.c:3227 +#: parser/parse_clause.c:3232 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST 절은 ON CONFLICT 절과 함께 사용할 수 없습니다." -#: parser/parse_clause.c:3306 +#: parser/parse_clause.c:3311 #, c-format msgid "" "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "ON CONFLICT DO UPDATE 구문에는 추론 명세나 제약조건 이름이 필요합니다." -#: parser/parse_clause.c:3307 +#: parser/parse_clause.c:3312 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "사용예, ON CONFLICT (칼럼이름)." -#: parser/parse_clause.c:3318 +#: parser/parse_clause.c:3323 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT 절은 시스템 카탈로그 테이블에서는 사용할 수 없습니다" -#: parser/parse_clause.c:3326 +#: parser/parse_clause.c:3331 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "" "\"%s\" 테이블에는 ON CONFLICT 기능을 사용할 수 없습니다. 이 테이블은 카탈로" "그 테이블로 사용됩니다." -#: parser/parse_clause.c:3457 +#: parser/parse_clause.c:3462 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "%s 연산자는 유효한 순서 지정 연산자가 아님" -#: parser/parse_clause.c:3459 +#: parser/parse_clause.c:3464 #, c-format msgid "" "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "" "순서 지정 연산자는 btree 연산자 패밀리의 \"<\" or \">\" 멤버여야 합니다." -#: parser/parse_clause.c:3770 +#: parser/parse_clause.c:3775 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" @@ -18106,7 +18599,7 @@ msgstr "" "PRECEDING/FOLLOWING 옵셋과 함께 쓰는 RANGE 구문은 칼럼의 %s 자로형을 지원하" "지 않습니다." -#: parser/parse_clause.c:3776 +#: parser/parse_clause.c:3781 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s " @@ -18115,12 +18608,12 @@ msgstr "" "PRECEDING/FOLLOWING 옵셋과 함께 쓰는 RANGE 구문은 %s 자료형 칼럼과 %s 옵셋 형" "식을 지원하지 않습니다." -#: parser/parse_clause.c:3779 +#: parser/parse_clause.c:3784 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "옵셋 값을 적당한 자료형으로 변환하세요." -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3789 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for " @@ -18129,15 +18622,15 @@ msgstr "" "PRECEDING/FOLLOWING 옵셋과 함께 쓰는 RANGE 구문이 %s 자료형 칼럼과 %s 옵셋 형" "식 계산에서 여러 가지로 해석될 수 있습니다." -#: parser/parse_clause.c:3787 +#: parser/parse_clause.c:3792 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "옵셋 값을 분명한 자료형으로 형변환 하세요." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405 +#: parser/parse_expr.c:3634 parser/parse_target.c:998 #, c-format msgid "cannot cast type %s to %s" msgstr "%s 자료형을 %s 자료형으로 형변환할 수 없습니다." @@ -18196,19 +18689,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "\"%s\" 로 선언된 인자들이 모두 같지 않습니다." #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "%s 이름으로 선언된 인자가 array가 아니고, %s 자료형입니다" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "%s 로 선언된 인자가 range 자료형이 아니고, %s 자료형입니다" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "%s 로 선언된 인자가 multirange 자료형이 아니고, %s 자료형입니다" @@ -18365,28 +18858,23 @@ msgstr "\"%s\" 쿼리에 대한 재귀 참조가 INTERSECT 내에 표시되지 msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "\"%s\" 쿼리에 대한 재귀 참조가 EXCEPT 내에 표시되지 않아야 함" -#: parser/parse_cte.c:133 -#, c-format -msgid "MERGE not supported in WITH query" -msgstr "WITH 쿼리 안에 MERGE 구문은 쓸 수 없음" - -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:136 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "\"%s\" WITH 쿼리 이름이 여러 번 지정됨" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:308 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "%s 자료형용 부등식 연산자를 알 수 없음" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:335 #, c-format msgid "" "WITH clause containing a data-modifying statement must be at the top level" msgstr "자료를 변경하는 구문이 있는 WITH 절은 최상위 수준에 있어야 합니다" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:384 #, c-format msgid "" "recursive query \"%s\" column %d has type %s in non-recursive term but type " @@ -18395,12 +18883,12 @@ msgstr "" "\"%s\" 재귀 쿼리의 %d 번째 칼럼은 비재귀 조건에 %s 자료형을 포함하는데 전체적" "으로는 %s 자료형임" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:390 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "비재귀 조건의 출력을 올바른 형식으로 형변환하십시오." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:395 #, c-format msgid "" "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term " @@ -18409,42 +18897,42 @@ msgstr "" "\"%s\" 재귀 쿼리의 %d 번째 칼럼은 비재귀 조건에 %s 자료형을 포함하는데 전체적" "으로는 %s 자료형임" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:399 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "" "비 재귀형 요소들의 문자 정렬 규칙을 지정할 때는 COLLATE 절을 추가하세요." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:420 #, c-format msgid "WITH query is not recursive" msgstr "WITH 쿼리가 재귀 쿼리 형식이 아님" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:451 #, c-format msgid "" "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "" "SEARCH 또는 CYCLE 절을 사용할 때는 UNION 왼쪽 구문은 SELECT 여야 합니다." -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:456 #, c-format msgid "" "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "" "SEARCH 또는 CYCLE 절을 사용할 때는 UNION 오른쪽 구문은 SELECT 여야 합니다." -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:471 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "\"%s\" search용 칼럼이 WITH 쿼리 칼럼 목록에 없음" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" specified more than once" msgstr "\"%s\" search용 칼럼을 하나 이상 지정했음" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:487 #, c-format msgid "" "search sequence column name \"%s\" already used in WITH query column list" @@ -18452,163 +18940,171 @@ msgstr "" "\"%s\" 이름의 search sequence 칼럼 이름은 WITH 쿼리 칼럼 목록 안에서 이미 사" "용되고 있습니다." -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:504 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "\"%s\" cycle용 칼럼이 WITH 쿼리 칼럼 목록에 없습니다" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "\"%s\" cycle용 칼럼을 하나 이상 지정했음" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:520 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "" "\"%s\" cycle mark 칼럼 이름이 WITH 쿼리 칼럼 목록 안에서 이미 사용되고 있습니" "다." -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:527 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "" "\"%s\" cycle path 칼럼 이름이 WITH 쿼리 칼럼 목록 안에서 이미 사용되고 있습니" "다." -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:535 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "cycle mark 칼럼 이름과 cycle path 칼럼 이름이 같습니다." -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:545 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "search sequence 칼럼 이름과 cycle mark 칼럼 이름이 같습니다." -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "search sequence 칼럼 이름과 cycle path 칼럼 이름이 같습니다." -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:636 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "" "\"%s\" WITH 쿼리에는 %d개의 칼럼을 사용할 수 있는데 %d개의 칼럼이 지정됨" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:816 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "WITH 항목 간의 상호 재귀가 구현되지 않음" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:868 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "\"%s\" 재귀 쿼리에 자료 변경 구문이 포함될 수 없습니다." -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:876 #, c-format msgid "" "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] " "recursive-term" msgstr "\"%s\" 재귀 쿼리에 비재귀 조건 형태의 UNION [ALL] 재귀 조건이 없음" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:911 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "재귀 쿼리의 ORDER BY가 구현되지 않음" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:917 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "재귀 쿼리의 OFFSET이 구현되지 않음" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:923 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "재귀 쿼리의 LIMIT가 구현되지 않음" -#: parser/parse_cte.c:944 +#: parser/parse_cte.c:929 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "재귀 쿼리의 FOR UPDATE/SHARE가 구현되지 않음" -#: parser/parse_cte.c:1001 +#: parser/parse_cte.c:1008 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "\"%s\" 쿼리에 대한 재귀 참조가 여러 번 표시되지 않아야 함" -#: parser/parse_expr.c:294 +#: parser/parse_expr.c:313 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "이 영역에서는 DEFAULT를 사용할 수 없습니다" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:406 parser/parse_relation.c:3691 +#: parser/parse_relation.c:3701 parser/parse_relation.c:3719 +#: parser/parse_relation.c:3726 parser/parse_relation.c:3740 #, c-format msgid "column %s.%s does not exist" msgstr "%s.%s 칼럼 없음" -#: parser/parse_expr.c:383 +#: parser/parse_expr.c:418 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "\"%s\" 칼럼은 %s 자료형을 찾을 수 없음" -#: parser/parse_expr.c:389 +#: parser/parse_expr.c:424 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "레코드 데이터 형식에서 \"%s\" 칼럼을 식별할 수 없음" -#: parser/parse_expr.c:395 +#: parser/parse_expr.c:430 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "" ".%s 표현이 %s 자료형 사용되었는데, 이는 복소수형 (complex type)이 아닙니다" -#: parser/parse_expr.c:426 parser/parse_target.c:733 +#: parser/parse_expr.c:461 parser/parse_target.c:732 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "\"*\"를 통한 칼럼 확장은 여기서 지원되지 않음" -#: parser/parse_expr.c:548 +#: parser/parse_expr.c:584 msgid "cannot use column reference in DEFAULT expression" msgstr "DEFAULT 표현식에서는 열 reference를 사용할 수 없음" -#: parser/parse_expr.c:551 +#: parser/parse_expr.c:587 msgid "cannot use column reference in partition bound expression" msgstr "파티션 범위 표현식에서 칼럼 참조를 사용할 수 없음" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_expr.c:846 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1238 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "칼럼 참조 \"%s\" 가 모호합니다." -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 #: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "$%d 매개 변수가 없습니다" -#: parser/parse_expr.c:1066 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1103 parser/parse_expr.c:3065 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "NULIF 절은 불리언 값을 얻기 위해서 = 연산자를 필요로 합니다" +msgid "%s requires = operator to yield boolean" +msgstr "%s 절은 불리언 값을 얻기 위해서 = 연산자를 필요로 합니다" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 +#: parser/parse_expr.c:1109 parser/parse_expr.c:3072 #, c-format msgid "%s must not return a set" msgstr "%s에서는 집합을 반환할 수 없습니다." -#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 +#: parser/parse_expr.c:1395 +#, c-format +msgid "" +"MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" +msgstr "" +"MERGE_ACTION()은 MERGE 명령의 RETURNING 목록 안에서만 사용될 수 있음" + +#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 #, c-format msgid "number of columns does not match number of values" msgstr "칼럼의 개수와, values의 개수가 틀립니다" -#: parser/parse_expr.c:1503 +#: parser/parse_expr.c:1565 #, c-format msgid "" "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() " @@ -18617,222 +19113,350 @@ msgstr "" "다중 칼럼 UPDATE 요소를 위한 소스는 서브셀렉트나 ROW() 표현식이어야 합니다." #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 +#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "%s 안에서는 집합 반환 함수를 사용할 수 없음" -#: parser/parse_expr.c:1761 +#: parser/parse_expr.c:1824 msgid "cannot use subquery in check constraint" msgstr "체크 제약 조건에서는 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1765 +#: parser/parse_expr.c:1828 msgid "cannot use subquery in DEFAULT expression" msgstr "DEFAULT 식에서는 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1768 +#: parser/parse_expr.c:1831 msgid "cannot use subquery in index expression" msgstr "인덱스 식(expression)에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1771 +#: parser/parse_expr.c:1834 msgid "cannot use subquery in index predicate" msgstr "인덱스 술어(predicate)에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1774 +#: parser/parse_expr.c:1837 msgid "cannot use subquery in statistics expression" msgstr "통계 정보 표현식에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1777 +#: parser/parse_expr.c:1840 msgid "cannot use subquery in transform expression" msgstr "transform 식(expression)에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1780 +#: parser/parse_expr.c:1843 msgid "cannot use subquery in EXECUTE parameter" msgstr "EXECUTE 매개 변수로 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1783 +#: parser/parse_expr.c:1846 msgid "cannot use subquery in trigger WHEN condition" msgstr "트리거 WHEN 조건절에서는 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1786 +#: parser/parse_expr.c:1849 msgid "cannot use subquery in partition bound" msgstr "파티션 범위 표현식에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1789 +#: parser/parse_expr.c:1852 msgid "cannot use subquery in partition key expression" msgstr "파티션 키 표현식에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1792 +#: parser/parse_expr.c:1855 msgid "cannot use subquery in CALL argument" msgstr "CALL 매개 변수로 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1795 +#: parser/parse_expr.c:1858 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "COPY FROM WHERE 조건절에서는 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1798 +#: parser/parse_expr.c:1861 msgid "cannot use subquery in column generation expression" msgstr "미리 계산된 칼럼 생성 표현식에 서브쿼리를 사용할 수 없습니다" -#: parser/parse_expr.c:1851 parser/parse_expr.c:3628 +#: parser/parse_expr.c:1914 parser/parse_expr.c:3764 #, c-format msgid "subquery must return only one column" msgstr "subquery는 오로지 한개의 열만을 돌려 주어야 합니다." -#: parser/parse_expr.c:1922 +#: parser/parse_expr.c:1985 #, c-format msgid "subquery has too many columns" msgstr "subquery 에가 너무 많은 칼럼을 가집니다" -#: parser/parse_expr.c:1927 +#: parser/parse_expr.c:1990 #, c-format msgid "subquery has too few columns" msgstr "subquery 에 명시된 열 수가 너무 적다" -#: parser/parse_expr.c:2023 +#: parser/parse_expr.c:2086 #, c-format msgid "cannot determine type of empty array" msgstr "빈 배열의 자료형을 확인할 수 없음" -#: parser/parse_expr.c:2024 +#: parser/parse_expr.c:2087 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "원하는 형식으로 명시적으로 형변환하십시오(예: ARRAY[]::integer[])." -#: parser/parse_expr.c:2038 +#: parser/parse_expr.c:2101 #, c-format msgid "could not find element type for data type %s" msgstr "%s 자료형의 요소 자료형을 찾을 수 없음" -#: parser/parse_expr.c:2121 +#: parser/parse_expr.c:2184 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW 표현식은 최대 %d 개의 항목을 지정할 수 있습니다" -#: parser/parse_expr.c:2326 +#: parser/parse_expr.c:2389 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "이름이 지정되지 않은 XML 속성 값은 열 참조여야 함" -#: parser/parse_expr.c:2327 +#: parser/parse_expr.c:2390 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "이름이 지정되지 않은 XML 요소 값은 열 참조여야 함" -#: parser/parse_expr.c:2342 +#: parser/parse_expr.c:2405 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "\"%s\" XML 속성 이름이 여러 번 표시됨" -#: parser/parse_expr.c:2450 +#: parser/parse_expr.c:2513 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "XMLSERIALIZE 결과를 %s 형으로 바꿀 수 없음" -#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 +#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 #, c-format msgid "unequal number of entries in row expressions" msgstr "행 표현식에서 항목 수가 일치하지 않습니다" -#: parser/parse_expr.c:2774 +#: parser/parse_expr.c:2837 #, c-format msgid "cannot compare rows of zero length" msgstr "길이가 영(0)인 행들은 비교할 수 없습니다" -#: parser/parse_expr.c:2799 +#: parser/parse_expr.c:2862 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "" "행 비교 연산자는 불리언형을 리턴해야 합니다. %s 자료형을 사용할 수 없습니다" -#: parser/parse_expr.c:2806 +#: parser/parse_expr.c:2869 #, c-format msgid "row comparison operator must not return a set" msgstr "행 비교 연산자는 set을 리턴할 수 없습니다" -#: parser/parse_expr.c:2865 parser/parse_expr.c:2906 +#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "%s 행 비교 연산자의 구문을 분석할 수 없습니다" -#: parser/parse_expr.c:2867 +#: parser/parse_expr.c:2930 #, c-format msgid "" "Row comparison operators must be associated with btree operator families." msgstr "로우 비교 연산자를 btree 연산자 패밀리와 연결해야 함" -#: parser/parse_expr.c:2908 +#: parser/parse_expr.c:2971 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "여러 가지 등식들이 성립할 수 있는 가능성이 있습니다" -#: parser/parse_expr.c:3001 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "" -"IS DISTINCT FROM 절에서 불리언 값을 얻기 위해서 = 연산자를 필요로 합니다" - -#: parser/parse_expr.c:3239 +#: parser/parse_expr.c:3306 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "JSON ENCODING 절은 입력 자료형이 bytea 일때만 허용합니다." -#: parser/parse_expr.c:3261 +#: parser/parse_expr.c:3370 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "" "FORMAT JSON 절과 관련된 자료형이 문자열이 아닌 자료형인 경우는 사용할 수 없습" "니다." -#: parser/parse_expr.c:3262 +#: parser/parse_expr.c:3371 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "" "FORMAT JSON 절과 관련된 자료형이 문자열이 아닌 자료형인 경우는 사용할 수 없습" "니다." -#: parser/parse_expr.c:3335 +#: parser/parse_expr.c:3460 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "비 문자열 출력 형으로 JSON 포멧을 사용할 수 없음" -#: parser/parse_expr.c:3348 +#: parser/parse_expr.c:3473 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "이진 자료형이 아닌 출력 자료형을 위한 JSON 인코딩을 지정할 수 없음" -#: parser/parse_expr.c:3353 +#: parser/parse_expr.c:3478 #, c-format msgid "unsupported JSON encoding" msgstr "지원하지 않는 JSON 인코딩" -#: parser/parse_expr.c:3354 +#: parser/parse_expr.c:3479 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "UTF8 JSON 인코딩만 지원합니다." -#: parser/parse_expr.c:3391 +#: parser/parse_expr.c:3516 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "SQL/JSON 함수들은 SETOF 반환 자료형을 지원하지 않음" -#: parser/parse_expr.c:3712 parser/parse_func.c:865 +#: parser/parse_expr.c:3521 +#, c-format +msgid "returning pseudo-types is not supported in SQL/JSON functions" +msgstr "SQL/JSON 함수들은 반환 자료형으로 의사 자료형을 지원하지 않음" + +#: parser/parse_expr.c:3849 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "윈도우 함수에 대해 집계용 ORDER BY가 구현되지 않음" -#: parser/parse_expr.c:3934 +#: parser/parse_expr.c:4072 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "" "이진 자료형이 아닌 입력 자료형을 위한 JSON FORMAT ENCODING 구문을 사용할 수 " "없음" -#: parser/parse_expr.c:3954 +#: parser/parse_expr.c:4092 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "IS JSON 술어(predicate)에 %s 자료형을 사용할 수 없음" +#: parser/parse_expr.c:4118 parser/parse_expr.c:4239 +#, c-format +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "%s 자료형은 %s RETURNING 절에서 사용할 수 없음" + +#: parser/parse_expr.c:4120 +#, c-format +msgid "Try returning json or jsonb." +msgstr "json 또는 jsonb 형을 반환하세요." + +#: parser/parse_expr.c:4168 +#, c-format +msgid "cannot use non-string types with WITH UNIQUE KEYS clause" +msgstr "문자열이 아닌 자료형은 WITH UNIQUE KEYS 절과 함께 사용할 수 없음" + +#: parser/parse_expr.c:4242 +#, c-format +msgid "Try returning a string type or bytea." +msgstr "문자열이나 bytea 자료형을 반환하도록 하세요." + +#: parser/parse_expr.c:4307 +#, c-format +msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgstr "%s()의 RETURNING 절안에는 FORMAT JSON 옵션을 지정할 수 없음" + +#: parser/parse_expr.c:4320 +#, c-format +msgid "" +"SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" +msgstr "WITH WRAPPER 옵션을 사용할 때는 SQL/JSON QUOTES 옵션을 지정하면 안됨" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4334 parser/parse_expr.c:4363 parser/parse_expr.c:4394 +#: parser/parse_expr.c:4420 parser/parse_expr.c:4446 +#: parser/parse_jsontable.c:94 +#, c-format +msgid "invalid %s behavior" +msgstr "%s 절은 바르지 않음" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4337 parser/parse_expr.c:4366 +#, c-format +msgid "" +"Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is " +"allowed in %s for %s." +msgstr "" +"%s 옵션(대상: %s)에는 ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, 또는 " +"DEFAULT 표현식만 쓸 수 있음" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4344 parser/parse_expr.c:4373 parser/parse_expr.c:4402 +#: parser/parse_expr.c:4430 parser/parse_expr.c:4456 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "%s 절은 \"%s\" 칼럼 대상으로는 사용할 수 없음" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4347 parser/parse_expr.c:4376 +#, c-format +msgid "" +"Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is " +"allowed in %s for formatted columns." +msgstr "" +"포멧된 칼럼용 %s 옵션에는 ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, 또는 " +"DEFAULT 표현식만 쓸 수 있음" + +#: parser/parse_expr.c:4395 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "%s 옵션 값으로는 ERROR, TRUE, FALSE, 또는 UNKNOWN 만 쓸 수 있음: 대상=%s" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4405 +#, c-format +msgid "" +"Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "EXISTS 칼럼용 %s 옵션에는 ERROR, TRUE, FALSE, 또는 UNKNOWN 만 쓸 수 있음." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4423 parser/parse_expr.c:4449 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "%s 옵션 값으로는 ERROR, NULL, 또는 DEFAULT 만 쓸 수 있음: 대상=%s" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4433 parser/parse_expr.c:4459 +#, c-format +msgid "" +"Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "스칼라 칼럼용 %s 옵션에는 ERROR, NULL, 또는 DEFAULT 만 쓸 수 있음." + + +#: parser/parse_expr.c:4489 +#, c-format +msgid "JSON path expression must be of type %s, not of type %s" +msgstr "JSON 패스 표현식은 %s 자료형이어야 함(%s 자료형이 아님)" + +#: parser/parse_expr.c:4707 +#, c-format +msgid "" +"can only specify a constant, non-aggregate function, or operator expression " +"for DEFAULT" +msgstr "" +"DEFAULT로는 상수, 비집계 함수, 또는 연산자 표현식만 쓸 수 있음" + +#: parser/parse_expr.c:4712 +#, c-format +msgid "DEFAULT expression must not contain column references" +msgstr "DEFAULT 표현식에서는 칼럼 참조를 포함할 수 없습니다" + +#: parser/parse_expr.c:4717 +#, c-format +msgid "DEFAULT expression must not return a set" +msgstr "DEFAULT 표현식에서는 집합을 반환할 수 없습니다." + +#: parser/parse_expr.c:4793 parser/parse_expr.c:4802 +#, c-format +msgid "cannot cast behavior expression of type %s to %s" +msgstr "%s 자료형을 %s 자료형으로 형변환할 수 없습니다." + +#: parser/parse_expr.c:4796 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "%s형으로 변환하는 형변환자를 사용해보십시오" + #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -18843,7 +19467,7 @@ msgstr "\"%s\" 이름의 매개 변수가 여러 번 사용 됨" msgid "positional argument cannot follow named argument" msgstr "위치 기반 인자 뒤에 이름 기반 인자를 쓸 수 없습니다." -#: parser/parse_func.c:287 parser/parse_func.c:2367 +#: parser/parse_func.c:287 parser/parse_func.c:2368 #, c-format msgid "%s is not a procedure" msgstr "%s 개체는 프로시져가 아님" @@ -18992,7 +19616,7 @@ msgstr "" "른 위치에 쓰지 않은 것 같습니다. ORDER BY 절은 모든 집계용 인자들 맨 뒤에 있" "어야 합니다." -#: parser/parse_func.c:622 parser/parse_func.c:2410 +#: parser/parse_func.c:622 parser/parse_func.c:2411 #, c-format msgid "procedure %s does not exist" msgstr "\"%s\" 프로시져 없음" @@ -19020,7 +19644,7 @@ msgstr "" msgid "VARIADIC argument must be an array" msgstr "VARIADIC 매개 변수는 배열이어야 함" -#: parser/parse_func.c:791 parser/parse_func.c:855 +#: parser/parse_func.c:791 parser/parse_func.c:856 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr "%s(*) 사용할 때는 이 함수가 매개 변수 없는 집계 함수여야 합니다" @@ -19035,237 +19659,238 @@ msgstr "집계 함수는 세트를 반환할 수 없음" msgid "aggregates cannot use named arguments" msgstr "집계 함수는 인자 이름을 사용할 수 없음" -#: parser/parse_func.c:845 +#: parser/parse_func.c:846 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "윈도우 함수에 대해 DISTINCT가 구현되지 않음" -#: parser/parse_func.c:874 +#: parser/parse_func.c:875 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "비집계 윈도우 함수에 대해 FILTER가 구현되지 않음" -#: parser/parse_func.c:883 +#: parser/parse_func.c:884 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "윈도우 함수 호출에 집합 반환 함수 호출을 포함할 수 없음" -#: parser/parse_func.c:891 +#: parser/parse_func.c:892 #, c-format msgid "window functions cannot return sets" msgstr "윈도우 함수는 세트를 반환할 수 없음" -#: parser/parse_func.c:2166 parser/parse_func.c:2439 +#: parser/parse_func.c:2167 parser/parse_func.c:2440 #, c-format msgid "could not find a function named \"%s\"" msgstr "\"%s\" 함수를 찾을 수 없음" -#: parser/parse_func.c:2180 parser/parse_func.c:2457 +#: parser/parse_func.c:2181 parser/parse_func.c:2458 #, c-format msgid "function name \"%s\" is not unique" msgstr "\"%s\" 함수 이름은 유일성을 가지지 못합니다(not unique)" -#: parser/parse_func.c:2182 parser/parse_func.c:2460 +#: parser/parse_func.c:2183 parser/parse_func.c:2461 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "입력 인자를 다르게 해서 이 모호함을 피하세요." -#: parser/parse_func.c:2226 +#: parser/parse_func.c:2227 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" msgstr[0] "프로시져는 %d개 이상의 인자를 사용할 수 없음" -#: parser/parse_func.c:2357 +#: parser/parse_func.c:2358 #, c-format msgid "%s is not a function" msgstr "%s 이름의 개체는 함수가 아닙니다" -#: parser/parse_func.c:2377 +#: parser/parse_func.c:2378 #, c-format msgid "function %s is not an aggregate" msgstr "%s 함수는 집계 함수가 아닙니다" -#: parser/parse_func.c:2405 +#: parser/parse_func.c:2406 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "\"%s\" 이름의 프로시져를 찾을 수 없음" -#: parser/parse_func.c:2419 +#: parser/parse_func.c:2420 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "\"%s\" 이름의 집계 함수를 찾을 수 없음" -#: parser/parse_func.c:2424 +#: parser/parse_func.c:2425 #, c-format msgid "aggregate %s(*) does not exist" msgstr "%s(*) 집계 함수 없음" -#: parser/parse_func.c:2429 +#: parser/parse_func.c:2430 #, c-format msgid "aggregate %s does not exist" msgstr "%s 집계 함수 없음" -#: parser/parse_func.c:2465 +#: parser/parse_func.c:2466 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "\"%s\" 프로시져는 유일성을 가지지 못합니다(not unique)" -#: parser/parse_func.c:2468 +#: parser/parse_func.c:2469 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "해당 프로시져의 입력 인자를 다르게 해서 이 모호함을 피하세요." -#: parser/parse_func.c:2473 +#: parser/parse_func.c:2474 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "\"%s\" 집계 함수가 유일성을 가지지 못합니다(not unique)" -#: parser/parse_func.c:2476 +#: parser/parse_func.c:2477 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "해당 집계 함수의 입력 인자를 다르게 해서 이 모호함을 피하세요." -#: parser/parse_func.c:2481 +#: parser/parse_func.c:2482 #, c-format msgid "routine name \"%s\" is not unique" msgstr "\"%s\" 루틴 이름은 유일성을 가지지 못합니다(not unique)" -#: parser/parse_func.c:2484 +#: parser/parse_func.c:2485 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "해당 루틴의 입력 인자를 다르게 해서 이 모호함을 피하세요." -#: parser/parse_func.c:2539 +#: parser/parse_func.c:2540 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "집합 반환 함수는 JOIN 조건에 사용할 수 없음" -#: parser/parse_func.c:2560 +#: parser/parse_func.c:2561 msgid "set-returning functions are not allowed in policy expressions" msgstr "집합 반환 함수는 정책 식에 사용할 수 없음" -#: parser/parse_func.c:2576 +#: parser/parse_func.c:2577 msgid "set-returning functions are not allowed in window definitions" msgstr "집합 반환 함수는 윈도우 함수 정의에 사용할 수 없음" -#: parser/parse_func.c:2613 +#: parser/parse_func.c:2615 msgid "set-returning functions are not allowed in MERGE WHEN conditions" msgstr "집합 반환 함수는 MERGE WHEN 조건절에서 사용할 수 없음" -#: parser/parse_func.c:2617 +#: parser/parse_func.c:2619 msgid "set-returning functions are not allowed in check constraints" msgstr "집합 반환 함수는 check 제약조건에 사용할 수 없음" -#: parser/parse_func.c:2621 +#: parser/parse_func.c:2623 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "집합 반환 함수는 DEFAULT 식에서 사용할 수 없음" -#: parser/parse_func.c:2624 +#: parser/parse_func.c:2626 msgid "set-returning functions are not allowed in index expressions" msgstr "집합 반환 함수는 인덱스 식에서 사용할 수 없음" -#: parser/parse_func.c:2627 +#: parser/parse_func.c:2629 msgid "set-returning functions are not allowed in index predicates" msgstr "집합 반환 함수는 함수 기반 인덱스에서 사용할 수 없음" -#: parser/parse_func.c:2630 +#: parser/parse_func.c:2632 msgid "set-returning functions are not allowed in statistics expressions" msgstr "집합 반환 함수는 통계 정보 식에 사용할 수 없음" -#: parser/parse_func.c:2633 +#: parser/parse_func.c:2635 msgid "set-returning functions are not allowed in transform expressions" msgstr "집합 반환 함수는 transform 식에서 사용할 수 없음" -#: parser/parse_func.c:2636 +#: parser/parse_func.c:2638 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "집합 반환 함수는 EXECUTE 매개 변수 설정 값으로 사용할 수 없음" -#: parser/parse_func.c:2639 +#: parser/parse_func.c:2641 msgid "set-returning functions are not allowed in trigger WHEN conditions" msgstr "집합 반환 함수는 트리거의 WHEN 조건절에서 사용할 수 없음" -#: parser/parse_func.c:2642 +#: parser/parse_func.c:2644 msgid "set-returning functions are not allowed in partition bound" msgstr "집합 반환 함수는 파티션 범위 식에서 사용할 수 없음" -#: parser/parse_func.c:2645 +#: parser/parse_func.c:2647 msgid "set-returning functions are not allowed in partition key expressions" msgstr "집합 반환 함수는 인덱스 식에서 사용할 수 없음" -#: parser/parse_func.c:2648 +#: parser/parse_func.c:2650 msgid "set-returning functions are not allowed in CALL arguments" msgstr "집합 반환 함수는 CALL 명령의 인자로 사용할 수 없음" -#: parser/parse_func.c:2651 +#: parser/parse_func.c:2653 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "집합 반환 함수는 COPY FROM WHERE 조건절에 사용할 수 없음" -#: parser/parse_func.c:2654 +#: parser/parse_func.c:2656 msgid "" "set-returning functions are not allowed in column generation expressions" msgstr "집합 반환 함수는 미리 계산된 칼럼의 생성식에 사용할 수 없음" -#: parser/parse_merge.c:119 +#: parser/parse_jsontable.c:95 +#, c-format +msgid "" +"Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "" +"EMPTY [ ARRAY ] 또는 ERROR는 최상위 수준 ON ERROR 절에서만 쓸 수 있음" + +#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#, c-format +msgid "duplicate JSON_TABLE column or path name: %s" +msgstr "JSON_TABLE 칼럼이나 패스 이름이 중복됨: %s" + +#: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "MERGE 명령에서는 WITH RECURSIVE 구문을 지원하지 않습니다." -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:176 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "" "WHEN 조건절 판단을 하지 못하는 상황에서 그 뒤에 오는 조건 검사는 할 수 없습니" "다." -#: parser/parse_merge.c:191 -#, c-format -msgid "MERGE is not supported for relations with rules." -msgstr "MERGE 명령은 룰을 사용하는 릴레이션에서 사용할 수 없습니다." - -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:222 #, c-format msgid "name \"%s\" specified more than once" msgstr "\"%s\" 이름이 한번 이상 명시되어 있습니다." -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:224 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "이 이름이 MERGE 타켓 테이블과 데이터 소스 두 곳 모두 사용되었습니다." -#: parser/parse_node.c:87 +#: parser/parse_node.c:82 #, c-format msgid "target lists can have at most %d entries" msgstr "대상 목록은 최대 %d 개의 항목을 지정할 수 있습니다" -#: parser/parse_oper.c:123 parser/parse_oper.c:690 +#: parser/parse_oper.c:114 parser/parse_oper.c:678 #, c-format msgid "postfix operators are not supported" msgstr "postfix 연산자는 지원하지 않습니다" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 -#, c-format -msgid "operator does not exist: %s" -msgstr "연산자 없음: %s" - -#: parser/parse_oper.c:229 +#: parser/parse_oper.c:217 #, c-format msgid "Use an explicit ordering operator or modify the query." msgstr "" "명시적으로 순차연산자(ordering operator) 를 사용하던지, 또는 query 를 수정하" "도록 하세요." -#: parser/parse_oper.c:485 +#: parser/parse_oper.c:473 #, c-format msgid "operator requires run-time type coercion: %s" msgstr "이 연산자는 실행시에 형 강제전화이 필요합니다: %s" -#: parser/parse_oper.c:641 +#: parser/parse_oper.c:629 #, c-format msgid "operator is not unique: %s" msgstr "연산자가 고유하지 않습니다: %s" -#: parser/parse_oper.c:643 +#: parser/parse_oper.c:631 #, c-format msgid "" "Could not choose a best candidate operator. You might need to add explicit " @@ -19274,7 +19899,7 @@ msgstr "" "가장 적당한 연산자를 선택할 수 없습니다. 명시적 형변환자를 추가해야 할 수도 " "있습니다." -#: parser/parse_oper.c:652 +#: parser/parse_oper.c:640 #, c-format msgid "" "No operator matches the given name and argument type. You might need to add " @@ -19283,7 +19908,7 @@ msgstr "" "지정된 이름 및 인자 형식과 일치하는 연산자가 없습니다. 명시적 형변환자를 추가" "해야 할 수도 있습니다." -#: parser/parse_oper.c:654 +#: parser/parse_oper.c:642 #, c-format msgid "" "No operator matches the given name and argument types. You might need to add " @@ -19292,22 +19917,17 @@ msgstr "" "지정된 이름 및 인자 형식과 일치하는 연산자가 없습니다. 명시적 형변환자를 추가" "해야 할 수도 있습니다." -#: parser/parse_oper.c:714 parser/parse_oper.c:828 -#, c-format -msgid "operator is only a shell: %s" -msgstr "연산자는 셸일 뿐임: %s" - -#: parser/parse_oper.c:816 +#: parser/parse_oper.c:803 #, c-format msgid "op ANY/ALL (array) requires array on right side" msgstr "op ANY/ALL (array) 는 우측에 배열이 있어야 합니다." -#: parser/parse_oper.c:858 +#: parser/parse_oper.c:844 #, c-format msgid "op ANY/ALL (array) requires operator to yield boolean" msgstr "op ANY/ALL (array) 는 불리언을 얻기 위한 연산자가 필요합니다." -#: parser/parse_oper.c:863 +#: parser/parse_oper.c:849 #, c-format msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "op ANY/ALL (array) 는 set 을 return 하지 않는 연산자가 요구 됩니다." @@ -19317,7 +19937,7 @@ msgstr "op ANY/ALL (array) 는 set 을 return 하지 않는 연산자가 요구 msgid "inconsistent types deduced for parameter $%d" msgstr "inconsistent types deduced for parameter $%d" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:309 tcop/postgres.c:744 #, c-format msgid "could not determine data type of parameter $%d" msgstr "$%d 매개 변수의 자료형을 알수가 없습니다." @@ -19337,13 +19957,13 @@ msgstr "테이블 참조 %u 가 명확하지 않습니다 (ambiguous)." msgid "table name \"%s\" specified more than once" msgstr "테이블 이름 \"%s\" 가 한번 이상 명시되어 있습니다." -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3633 +#: parser/parse_relation.c:3642 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "\"%s\" 테이블을 사용하는 FROM 절에 대한 참조가 잘못 되었습니다." -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3644 #, c-format msgid "" "There is an entry for table \"%s\", but it cannot be referenced from this " @@ -19373,7 +19993,7 @@ msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "\"%s\" 칼럼은 시스템 칼럼입니다. MERGE WHEN 조건절에서 사용될 수 없음" #: parser/parse_relation.c:1236 parser/parse_relation.c:1691 -#: parser/parse_relation.c:2388 +#: parser/parse_relation.c:2384 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "" @@ -19394,92 +20014,92 @@ msgstr "" "WITH RECURSIVE를 사용하거나 WITH 항목의 순서를 변경하여 정방향 참조를 제거하" "십시오." -#: parser/parse_relation.c:1834 +#: parser/parse_relation.c:1833 #, c-format msgid "" "a column definition list is redundant for a function with OUT parameters" msgstr "칼럼 정의 목록이 OUT 매개 변수를 사용하는 함수에서 중복되었음" -#: parser/parse_relation.c:1840 +#: parser/parse_relation.c:1839 #, c-format msgid "" "a column definition list is redundant for a function returning a named " "composite type" msgstr "칼럼 정의 목록이 이름 기반 복합 자료형을 반환하는 함수에서 중복되었음" -#: parser/parse_relation.c:1847 +#: parser/parse_relation.c:1846 #, c-format msgid "" "a column definition list is only allowed for functions returning \"record\"" msgstr "" "칼럼 정의 목록는 오로지 \"record\" 를 리턴하는 함수 내에서만 허용됩니다." -#: parser/parse_relation.c:1858 +#: parser/parse_relation.c:1857 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "칼럼 정의 목록은 \"record\" 를 리턴하는 함수를 필요로 합니다" -#: parser/parse_relation.c:1895 +#: parser/parse_relation.c:1894 #, c-format msgid "column definition lists can have at most %d entries" msgstr "칼럼 정의 목록은 최대 %d 개의 항목을 지정할 수 있습니다" -#: parser/parse_relation.c:1955 +#: parser/parse_relation.c:1954 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "" "FROM 절 내의 함수 \"%s\" 에 지원되지 않는 return 자료형 %s 이 있습니다." -#: parser/parse_relation.c:1982 parser/parse_relation.c:2068 +#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "FROM 절에 쓰는 함수는 최대 %d개의 칼럼을 반환하는 것이여야 함" -#: parser/parse_relation.c:2098 +#: parser/parse_relation.c:2096 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "%s 함수는 %d 개의 칼럼을 반환하는데, %d 개의 칼럼만 명시되었습니다." -#: parser/parse_relation.c:2180 +#: parser/parse_relation.c:2177 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "" "VALUES 뒤에 오는 \"%s\" 구문에는 %d개의 칼럼이 있는데, 지정한 칼럼은 %d개 입" "니다" -#: parser/parse_relation.c:2246 +#: parser/parse_relation.c:2242 #, c-format msgid "joins can have at most %d columns" msgstr "조인에는 최대 %d개의 칼럼을 포함할 수 있음" -#: parser/parse_relation.c:2271 +#: parser/parse_relation.c:2267 #, c-format msgid "" "join expression \"%s\" has %d columns available but %d columns specified" msgstr "" "\"%s\" 조인식에는 %d 개의 칼럼이 있는데, %d 개의 칼럼만 명시되었습니다." -#: parser/parse_relation.c:2361 +#: parser/parse_relation.c:2357 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "\"%s\" WITH 쿼리에 RETURNING 절이 없습니다." -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3635 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "아 \"%s\" alias를 참조해야 할 것 같습니다." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3647 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "그 테이블을 참조하려면, 서브쿼리에 LATERAL 예약어를 사용하세요." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3653 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "테이블 \"%s\"에 FROM 절이 빠져 있습니다." -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3693 #, c-format msgid "" "There are columns named \"%s\", but they are in tables that cannot be " @@ -19488,12 +20108,12 @@ msgstr "" "\"%s\" 이름의 칼럼이 테이블에 있지만, 이 쿼리의 이 부분에서는 참조될 수 없습" "니다." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3695 #, c-format msgid "Try using a table-qualified name." msgstr "테이블을 지정할 수 있는 이름을 사용하세요." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3703 #, c-format msgid "" "There is a column named \"%s\" in table \"%s\", but it cannot be referenced " @@ -19502,48 +20122,48 @@ msgstr "" "\"%s\" 이름의 칼럼이 \"%s\" 테이블에 있지만, 이 쿼리의 이 부분에서는 참조될 " "수 없습니다." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3706 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "해당 칼럼을 참조하려면, LATERAL 옵션이 있는 서브쿼리를 사용하세요." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3708 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "해당 칼럼을 참조하려면, 테이블 지정 이름을 사용하세요." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3728 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "아마 \"%s.%s\" 칼럼을 참조하는 것 같습니다." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3742 #, 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:481 parser/parse_target.c:796 +#: parser/parse_target.c:480 parser/parse_target.c:795 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "시스템 열 \"%s\"에 할당할 수 없습니다." -#: parser/parse_target.c:509 +#: parser/parse_target.c:508 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "배열 요소를 DEFAULT 로 설정할 수 없습니다." -#: parser/parse_target.c:514 +#: parser/parse_target.c:513 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "하위필드를 DEFAULT로 설정할 수 없습니다." -#: parser/parse_target.c:588 +#: parser/parse_target.c:587 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "열 \"%s\"은(는) %s 자료형인데 표현식은 %s 자료형입니다." -#: parser/parse_target.c:780 +#: parser/parse_target.c:779 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a " @@ -19552,7 +20172,7 @@ msgstr "" "\"%s\" 필드 (대상 열 \"%s\")를 지정할 수 없음, %s 자료형은 복합자료형이 아니" "기 때문" -#: parser/parse_target.c:789 +#: parser/parse_target.c:788 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because there is no such " @@ -19561,7 +20181,7 @@ msgstr "" "\"%s\" 필드 (대상 열 \"%s\")를 지정할 수 없음, %s 자료형에서 그런 칼럼을 찾" "을 수 없음" -#: parser/parse_target.c:869 +#: parser/parse_target.c:877 #, c-format msgid "" "subscripted assignment to \"%s\" requires type %s but expression is of type " @@ -19569,12 +20189,12 @@ msgid "" msgstr "" "\"%s\" subscript 자료형은 %s 형이 필요하지만, 현재 표현식은 %s 자료형입니다" -#: parser/parse_target.c:879 +#: parser/parse_target.c:887 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "하위필드 \"%s\" 는 %s 자료형인데 표현식은 %s 자료형입니다." -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1327 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "테이블이 명시되지 않은 SELECT * 구문은 유효하지 않습니다." @@ -19596,8 +20216,8 @@ msgstr "" msgid "type reference %s converted to %s" msgstr "ype reference %s 가 %s 로 변환되었습니다." -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:390 -#: utils/cache/typcache.c:445 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 +#: utils/cache/typcache.c:452 #, c-format msgid "type \"%s\" is only a shell" msgstr "자료형 \"%s\" 는 오로지 shell 에만 있습니다. " @@ -19617,72 +20237,77 @@ msgstr "자료형 한정자는 단순 상수 또는 식별자여야 함" msgid "invalid type name \"%s\"" msgstr "\"%s\" 자료형 이름은 유효하지 않은 자료형입니다." -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:263 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "상속 하위 테이블로 파티션된 테이블을 만들 수 없음" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:475 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "임시 시퀀스의 기록된 상태를 지정할 수 없음" + +#: parser/parse_utilcmd.c:611 #, c-format msgid "array of serial is not implemented" msgstr "serial 배열이 구현되지 않음" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702 +#: parser/parse_utilcmd.c:761 #, c-format msgid "" "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "NULL/NOT NULL 선언이 서로 충돌합니다 : column \"%s\" of table \"%s\"" -#: parser/parse_utilcmd.c:683 +#: parser/parse_utilcmd.c:714 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "\"%s\" 칼럼(\"%s\" 테이블)에 대해 여러 개의 기본 값이 지정됨" -#: parser/parse_utilcmd.c:700 +#: parser/parse_utilcmd.c:731 #, c-format msgid "identity columns are not supported on typed tables" msgstr "" "식별 칼럼은 타입드 테이블(typed table - 자료형으로써 테이블)에서는 쓸 수 없음" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:735 #, c-format msgid "identity columns are not supported on partitions" msgstr "식별 칼럼은 파티션된 테이블에서는 사용할 수 없음" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:744 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "\"%s\" 칼럼(\"%s\" 테이블)에 대해 여러 개의 식별자 지정이 사용되었음" -#: parser/parse_utilcmd.c:743 +#: parser/parse_utilcmd.c:774 #, c-format msgid "generated columns are not supported on typed tables" msgstr "" "미리 계산된 칼럼은 타입드 테이블(typed table - 자료형으로써 테이블)에서는 쓸 " "수 없음" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:778 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "\"%s\" 칼럼(\"%s\" 테이블)에 대해 여러 개의 생성식이 지정됨" -#: parser/parse_utilcmd.c:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "기본키 제약 조건을 외부 테이블에서는 사용할 수 없음" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "유니크 제약 조건은 외부 테이블에서는 사용할 수 없음" -#: parser/parse_utilcmd.c:819 +#: parser/parse_utilcmd.c:850 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "\"%s\" 칼럼(\"%s\" 테이블)에 대해 default와 식별자 정의가 함께 있음" -#: parser/parse_utilcmd.c:827 +#: parser/parse_utilcmd.c:858 #, c-format msgid "" "both default and generation expression specified for column \"%s\" of table " @@ -19691,7 +20316,7 @@ msgstr "" "\"%s\" 칼럼(해당 테이블 \"%s\")에 대해 default 정의와 미리 계산된 표현식이 함" "께 있음" -#: parser/parse_utilcmd.c:835 +#: parser/parse_utilcmd.c:866 #, c-format msgid "" "both identity and generation expression specified for column \"%s\" of table " @@ -19700,115 +20325,105 @@ msgstr "" "\"%s\" 칼럼(해당 테이블 \"%s\")에 대해 identity 정의와 미리 계산된 표현식이 " "함께 있음" -#: parser/parse_utilcmd.c:900 +#: parser/parse_utilcmd.c:931 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "제외 제약 조건은 외부 테이블에서는 사용할 수 없음" -#: parser/parse_utilcmd.c:906 -#, c-format -msgid "exclusion constraints are not supported on partitioned tables" -msgstr "제외 제약 조건은 파티션된 테이블에서는 사용할 수 없음" - -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:996 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "외부 테이블을 만들 때는 LIKE 옵션을 쓸 수 없음" -#: parser/parse_utilcmd.c:984 +#: parser/parse_utilcmd.c:1009 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "\"%s\" 릴레이션은 LIKE 절에서 바르지 않음" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "\"%s\" 인덱스는 전체 로우 테이블 참조를 포함하고 있습니다." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2242 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "CREATE TABLE 명령에서 이미 있는 인덱스는 사용할 수 없습니다." -#: parser/parse_utilcmd.c:2256 +#: parser/parse_utilcmd.c:2262 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "\"%s\" 인덱스는 이미 한 제약 조건에서 사용 중입니다." -#: parser/parse_utilcmd.c:2271 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "\"%s\" 인덱스는 사용가능 상태가 아님" - -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2283 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" 개체는 유니크 인덱스가 아닙니다" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "이 인덱스를 이용하는 기본키나 유니크 제약조건은 만들 수 없습니다." -#: parser/parse_utilcmd.c:2284 +#: parser/parse_utilcmd.c:2290 #, c-format msgid "index \"%s\" contains expressions" msgstr "\"%s\" 인덱스에 표현식이 포함되어 있음" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2297 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" 개체는 부분 인덱스임" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2309 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" 개체는 지연가능한 인덱스임" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2310 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "" "지연 가능한 인덱스를 사용해서 지연 불가능한 제약 조건은 만들 수 없습니다." -#: parser/parse_utilcmd.c:2368 +#: parser/parse_utilcmd.c:2374 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "\"%s\" 인덱스 %d 번째 칼럼의 기본 정렬 방법이 없음" -#: parser/parse_utilcmd.c:2525 +#: parser/parse_utilcmd.c:2531 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "기본키 제약 조건에서 \"%s\" 칼럼이 두 번 지정되었습니다" -#: parser/parse_utilcmd.c:2531 +#: parser/parse_utilcmd.c:2537 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "고유 제약 조건에서 \"%s\" 칼럼이 두 번 지정되었습니다" -#: parser/parse_utilcmd.c:2878 +#: parser/parse_utilcmd.c:2871 #, c-format msgid "" "index expressions and predicates can refer only to the table being indexed" msgstr "인덱스 식 및 술어는 인덱싱되는 테이블만 참조할 수 있음" -#: parser/parse_utilcmd.c:2950 +#: parser/parse_utilcmd.c:2943 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "통계 정보 식은 참조되는 테이블만 대상이어야 함" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:2986 #, c-format msgid "rules on materialized views are not supported" msgstr "구체화된 뷰에서의 룰은 지원하지 않음" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3046 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "룰에서 지정한 WHERE 조건에 다른 릴레이션에 대한 참조를 포함할 수 없음" -#: parser/parse_utilcmd.c:3125 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "" "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE " @@ -19817,154 +20432,154 @@ msgstr "" "룰에서 지정한 WHERE 조건이 있는 규칙에는 SELECT, INSERT, UPDATE 또는 DELETE " "작업만 포함할 수 있음" -#: parser/parse_utilcmd.c:3143 parser/parse_utilcmd.c:3244 -#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 +#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237 +#: rewrite/rewriteHandler.c:544 rewrite/rewriteManip.c:1095 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "conditional UNION/INTERSECT/EXCEPT 구문은 구현되어 있지 않다" -#: parser/parse_utilcmd.c:3161 +#: parser/parse_utilcmd.c:3154 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON SELECT 룰은 OLD를 사용할 수 없음" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3158 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON SELECT 룰은 NEW를 사용할 수 없음" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3167 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON INSERT 룰은 OLD를 사용할 수 없음" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3173 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON DELETE 룰은 NEW를 사용할 수 없음" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3201 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "WITH 쿼리 안에서 OLD 예약어를 참조할 수 없습니다." -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3208 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "WITH 쿼리 안에서 NEW 예약어를 참조할 수 없습니다." -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3664 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "DEFERABLE 절이 잘못 놓여져 있습니다" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "여러 개의 DEFERRABLE/NOT DEFERRABLE절은 사용할 수 없습니다" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3679 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "NOT DEFERABLE 절이 잘못 놓여 있습니다" -#: parser/parse_utilcmd.c:3695 parser/parse_utilcmd.c:3721 gram.y:5990 +#: parser/parse_utilcmd.c:3692 parser/parse_utilcmd.c:3718 gram.y:6114 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "INITIALLY DEFERRED 로 선언된 조건문은 반드시 DEFERABLE 여야만 한다" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3700 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "INITIALLY DEFERRED 절이 잘못 놓여 있습니다" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "여러 개의 INITIALLY IMMEDIATE/DEFERRED 절은 허용되지 않습니다" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3726 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "INITIALLY IMMEDIATE 절이 잘못 놓여 있습니다" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3919 #, c-format msgid "" "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "CREATE 구문에 명시된 schema (%s) 가 생성된 (%s) 의 것과 다릅니다" -#: parser/parse_utilcmd.c:3957 +#: parser/parse_utilcmd.c:3954 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" 개체는 파티션된 테이블이 아님" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3961 #, c-format msgid "table \"%s\" is not partitioned" msgstr "\"%s\" 테이블은 파티션되어 있지 않음" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3968 #, c-format msgid "index \"%s\" is not partitioned" msgstr "\"%s\" 인덱스는 파티션 된 인덱스가 아님" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4008 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "해시 파티션된 테이블은 기본 파티션을 가질 수 없음" -#: parser/parse_utilcmd.c:4028 +#: parser/parse_utilcmd.c:4025 #, c-format msgid "invalid bound specification for a hash partition" msgstr "해시 파티션용 범위 명세가 잘못됨" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "해시 파티션용 모듈은 영(0)보다 큰 정수 값이어야 함" -#: parser/parse_utilcmd.c:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "해시 파티션용 나머지 처리기는 modulus 보다 작아야 함" -#: parser/parse_utilcmd.c:4054 +#: parser/parse_utilcmd.c:4051 #, c-format msgid "invalid bound specification for a list partition" msgstr "list 파티션을 위한 범위 설정이 잘못됨" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4104 #, c-format msgid "invalid bound specification for a range partition" msgstr "range 파티션을 위한 범위 설정이 잘못됨" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4110 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "FROM에는 파티션 칼럼 당 딱 하나의 값만 지정해야 함" -#: parser/parse_utilcmd.c:4117 +#: parser/parse_utilcmd.c:4114 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "TO에는 파티션 칼럼 당 딱 하나의 값만 지정해야 함" -#: parser/parse_utilcmd.c:4231 +#: parser/parse_utilcmd.c:4228 #, c-format msgid "cannot specify NULL in range bound" msgstr "range 범위에는 NULL 값을 사용할 수 없음" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4277 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "MAXVALUE 뒤에 오는 모든 범위는 MAXVALUE 여야합니다." -#: parser/parse_utilcmd.c:4287 +#: parser/parse_utilcmd.c:4284 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "MINVALUE 뒤에 오는 모든 범위는 MINVALUE 여야합니다." -#: parser/parse_utilcmd.c:4330 +#: parser/parse_utilcmd.c:4327 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "지정된 값은 %s 형으로 형변환 할 수 없음, 해당 칼럼: \"%s\"" @@ -19977,12 +20592,12 @@ msgstr "UESCAPE 표현식은 앞에 한글자만 있어야합니다." msgid "invalid Unicode escape character" msgstr "잘못된 유니코드 이스케이프 문자" -#: parser/parser.c:347 scan.l:1390 +#: parser/parser.c:347 scan.l:1393 #, c-format msgid "invalid Unicode escape value" msgstr "잘못된 유니코드 이스케이프 값" -#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701 +#: parser/parser.c:494 utils/adt/varlena.c:6640 scan.l:716 #, c-format msgid "invalid Unicode escape" msgstr "잘못된 유니코드 이스케이프 값" @@ -19992,8 +20607,8 @@ msgstr "잘못된 유니코드 이스케이프 값" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "유니코드 이스케이프는 \\XXXX 또는 \\+XXXXXX 형태여야 합니다." -#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678 -#: scan.l:694 +#: parser/parser.c:523 utils/adt/varlena.c:6665 scan.l:677 scan.l:693 +#: scan.l:709 #, c-format msgid "invalid Unicode surrogate pair" msgstr "잘못된 유니코드 대리 쌍" @@ -20003,28 +20618,28 @@ msgstr "잘못된 유니코드 대리 쌍" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "\"%s\" 식별자는 \"%.*s\"(으)로 잘림" -#: partitioning/partbounds.c:2921 +#: partitioning/partbounds.c:2920 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "\"%s\" 파티션이 \"%s\" 기본 파티션과 겹칩니다." -#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991 +#: partitioning/partbounds.c:3013 #, c-format msgid "" "every hash partition modulus must be a factor of the next larger modulus" msgstr "모든 해시 파티션 구분값은 최대값보다 작아야합니다." -#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014 #, c-format msgid "" "The new modulus %d is not a factor of %d, the modulus of existing partition " "\"%s\"." msgstr "" -"새 해시 파티션 구분값(나머지값) %d 값은 %d의 인수가 아닙니다. 이미 있는 \"%s" -"\" 하위 파티션은 이 값을 구분값으로 사용합니다." +"새 해시 파티션 구분값(나머지값) %d 값은 %d의 인수가 아닙니다. 이미 있는 " +"\"%s\" 하위 파티션은 이 값을 구분값으로 사용합니다." -#: partitioning/partbounds.c:2993 +#: partitioning/partbounds.c:2992 #, c-format msgid "" "The new modulus %d is not divisible by %d, the modulus of existing partition " @@ -20033,22 +20648,22 @@ msgstr "" "새 해시 구분값 %d 값은 %d 값으로 나눌 수 없습니다. 이미 있는 \"%s\" 하위 파티" "션은 이 값을 나누기 값으로 사용합니다." -#: partitioning/partbounds.c:3128 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "\"%s\" 파티션용 범위 지정이 비어있습니다." -#: partitioning/partbounds.c:3130 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "하한값(%s)은 상한값(%s)과 같거나 커야 합니다" -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "\"%s\" 파티션이 \"%s\" 파티션과 겹칩니다." -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "" "skipped scanning foreign table \"%s\" which is a partition of default " @@ -20057,32 +20672,32 @@ msgstr "" "\"%s\" 외부 테이블 탐색은 생략함, 이 테이블은 \"%s\" 기본 파티션 테이블의 파" "티션이기 때문" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "" "remainder for hash partition must be an integer value greater than or equal " "to zero" msgstr "해시 파티션용 나머지 구분값은 0보다 크거나 같은 정수값이어야 함" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" 개체는 해시 파티션된 테이블이 아님" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "" "number of partitioning columns (%d) does not match number of partition keys " "provided (%d)" msgstr "파티션 칼럼 수: %d, 제공된 파티션 키 수: %d 서로 다름" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "" "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "파티션 키의 %d 번째 칼럼 자료형은 %s 형이지만, %s 형의 값이 지정되었음" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "" "column %d of the partition key has type \"%s\", but supplied value is of " @@ -20091,23 +20706,23 @@ msgstr "" "파티션 키로 사용하는 %d 번째 칼럼의 자료형은 \"%s\" 형이지만, 지정한 값은 " "\"%s\" 자료형을 사용했습니다." -#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 +#: port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "\"%s\" 데이터 디렉터리 상태를 파악할 수 없음: %m" -#: port/pg_shmem.c:223 port/sysv_shmem.c:223 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "could not create shared memory segment: %m" msgstr "공유 메모리 세그먼트를 만들 수 없음: %m" -#: port/pg_shmem.c:224 port/sysv_shmem.c:224 +#: port/pg_shmem.c:225 port/sysv_shmem.c:225 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "shmget(키=%lu, 크기=%zu, 0%o) 시스템 콜 실패" -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:229 port/sysv_shmem.c:229 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -20120,7 +20735,7 @@ msgstr "" "값보다 크거나, SHMMIN 값보다 적은 경우 발생합니다.\n" "공유 메모리 설정에 대한 보다 자세한 내용은 PostgreSQL 문서를 참조하십시오." -#: port/pg_shmem.c:235 port/sysv_shmem.c:235 +#: port/pg_shmem.c:236 port/sysv_shmem.c:236 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -20133,7 +20748,7 @@ msgstr "" "큰 경우 발생합니다. 커널 환경 변수인 SHMALL 값을 좀 더 크게 설정하세요.\n" "공유 메모리 설정에 대한 보다 자세한 내용은 PostgreSQL 문서를 참조하십시오." -#: port/pg_shmem.c:241 port/sysv_shmem.c:241 +#: port/pg_shmem.c:242 port/sysv_shmem.c:242 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs " @@ -20149,62 +20764,63 @@ msgstr "" "확보하세요.\n" "공유 메모리 설정에 대한 보다 자세한 내용은 PostgreSQL 문서를 참조하십시오." -#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646 #, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "huge_page_size 값은 이 플랫폼에서는 0이어야 합니다." +msgid "\"huge_page_size\" must be 0 on this platform." +msgstr "\"huge_page_size\" 값은 이 플랫폼에서는 0이어야 합니다." -#: port/pg_shmem.c:646 port/sysv_shmem.c:646 +#: port/pg_shmem.c:655 port/sysv_shmem.c:655 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "가용 공유 메모리 확보 실패: %m" -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:657 port/sysv_shmem.c:657 #, 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." +"perhaps by reducing \"shared_buffers\" or \"max_connections\"." msgstr "" "이 오류는 일반적으로 PostgreSQL에서 사용할 공유 메모리를 확보하지 못 했을 때 " "발생합니다(물리 메모리, 스왑, huge page). 현재 요구 크기(%zu 바이트)를 좀 줄" -"여 보십시오. 줄이는 방법은, shared_buffers 값을 줄이거나 max_connections 값" +"여 보십시오. 줄이는 방법은, \"shared_buffers\"나 \"max_connections\" 값" "을 줄여 보십시오." -#: port/pg_shmem.c:716 port/sysv_shmem.c:716 +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 #, c-format msgid "huge pages not supported on this platform" msgstr "huge page 기능은 이 플랫폼에서 지원되지 않음" -#: port/pg_shmem.c:723 port/sysv_shmem.c:723 +#: port/pg_shmem.c:732 port/sysv_shmem.c:732 #, c-format -msgid "huge pages not supported with the current shared_memory_type setting" -msgstr "현재 shared_memory_type 설정은 huge page 사용을 지원하지 않습니다." +msgid "" +"huge pages not supported with the current \"shared_memory_type\" setting" +msgstr "현재 \"shared_memory_type\" 설정은 huge page 사용을 지원하지 않습니다." -#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1351 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1401 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "미리 확보된 공유 메모리 영역 (%lu 키, %lu ID)이 여전히 사용중입니다" -#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1353 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1403 #, c-format msgid "" "Terminate any old server processes associated with data directory \"%s\"." msgstr "" "\"%s\" 데이터 디렉터리를 사용하는 옛 서버 프로세스들을 모두 중지시키세요." -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "세마포어를 만들 수 없음: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "semget(%lu, %d, 0%o) 호출에 의한 시스템 콜 실패" -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs " @@ -20212,7 +20828,7 @@ msgid "" "(SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be " "exceeded. You need to raise the respective kernel parameter. " "Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its " -"max_connections parameter.\n" +"\"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring " "your system for PostgreSQL." msgstr "" @@ -20221,11 +20837,11 @@ msgstr "" "이 오류는 시스템에서 지정한 최소 세마포어 수(SEMMNI)가 너무 크거나, 최대 세마" "포어 수(SEMMNS)가 너무 적어서 서버를 실행할 수 없을 때 발생합니다. 이에 따" "라, 정상적으로 서버가 실행되려면, 시스템 값들을 조정할 필요가 있습니다. 아니" -"면, 다른 방법으로, PostgreSQL의 환경 설정에서 max_connections 값을 줄여서 세" +"면, 다른 방법으로, PostgreSQL의 환경 설정에서 \"max_connections\" 값을 줄여서 세" "마포어 사용 수를 줄여보십시오.\n" "보다 자세한 내용은 PostgreSQL 관리자 메뉴얼을 참조 하십시오." -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "" "You possibly need to raise your kernel's SEMVMX value to be at least %d. " @@ -20360,62 +20976,52 @@ msgstr "실패한 시스템 호출은 DuplicateHandle입니다." msgid "Failed system call was MapViewOfFileEx." msgstr "실패한 시스템 호출은 MapViewOfFileEx입니다." -#: postmaster/autovacuum.c:417 -#, c-format -msgid "could not fork autovacuum launcher process: %m" -msgstr "autovacuum 실행기 프로세스를 실행할 수 없음: %m" - -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:686 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "autovacuum 작업자가 너무 오래전에 시작되어 중지됨" -#: postmaster/autovacuum.c:1489 -#, c-format -msgid "could not fork autovacuum worker process: %m" -msgstr "autovacuum 작업자 프로세스를 실행할 수 없음: %m" - -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2203 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "" "autovacuum: 더 이상 사용하지 않는 \"%s.%s.%s\" 임시 테이블을 삭제하는 중" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2439 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "\"%s.%s.%s\" 테이블 대상으로 자동 vacuum 작업 함" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2442 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "\"%s.%s.%s\" 테이블 자동 분석" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2636 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "\"%s.%s.%s\" 릴레이션 작업 항목 작업 중" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3254 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "서버 설정 정보가 잘못되어 자동 청소 작업이 실행되지 못했습니다." -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3255 #, c-format msgid "Enable the \"track_counts\" option." msgstr "\"track_counts\" 옵션을 사용하십시오." -#: postmaster/bgworker.c:259 +#: postmaster/bgworker.c:260 #, c-format msgid "" -"inconsistent background worker state (max_worker_processes=%d, total_slots=" -"%d)" +"inconsistent background worker state (max_worker_processes=%d, " +"total_slots=%d)" msgstr "" -"백그라운드 작업자의 정합성이 맞지 않음 (max_worker_processes=%d, total_slots=" -"%d)" +"백그라운드 작업자의 정합성이 맞지 않음 (max_worker_processes=%d, " +"total_slots=%d)" -#: postmaster/bgworker.c:669 +#: postmaster/bgworker.c:651 #, c-format msgid "" "background worker \"%s\": background workers without shared memory access " @@ -20424,7 +21030,7 @@ msgstr "" "\"%s\" 백그라운드 작업자: 공유 메모리 접근 않는 백그라운드 작업자를 지원하지 " "않음" -#: postmaster/bgworker.c:680 +#: postmaster/bgworker.c:662 #, c-format msgid "" "background worker \"%s\": cannot request database access if starting at " @@ -20433,31 +21039,31 @@ msgstr "" "\"%s\" 백그라운드 작업자: postmaster 시작 중인 상태라면, 데이터베이스 접근을 " "요청할 수 없음" -#: postmaster/bgworker.c:694 +#: postmaster/bgworker.c:676 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "\"%s\" 백그라운드 작업자: 잘못된 재실행 간격" -#: postmaster/bgworker.c:709 +#: postmaster/bgworker.c:691 #, c-format msgid "" "background worker \"%s\": parallel workers may not be configured for restart" msgstr "\"%s\" 백그라운드 작업자: 이 병렬 작업자는 재실행 설정이 없음" -#: postmaster/bgworker.c:733 tcop/postgres.c:3255 +#: postmaster/bgworker.c:715 tcop/postgres.c:3312 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "관리자 명령에 의해 \"%s\" 백그라운드 작업자를 종료합니다." -#: postmaster/bgworker.c:890 +#: postmaster/bgworker.c:888 #, c-format msgid "" -"background worker \"%s\": must be registered in shared_preload_libraries" +"background worker \"%s\": must be registered in \"shared_preload_libraries\"" msgstr "" -"\"%s\" 백그라운드 작업자: 먼저 shared_preload_libraries 설정값으로 등록되어" +"\"%s\" 백그라운드 작업자: 먼저 \"shared_preload_libraries\" 설정값으로 등록되어" "야 합니다." -#: postmaster/bgworker.c:902 +#: postmaster/bgworker.c:911 #, c-format msgid "" "background worker \"%s\": only dynamic background workers can request " @@ -20465,230 +21071,319 @@ msgid "" msgstr "" "\"%s\" 백그라운드 작업자: 동적 백그라운드 작업자만 알림을 요청할 수 있음" -#: postmaster/bgworker.c:917 +#: postmaster/bgworker.c:926 #, c-format msgid "too many background workers" msgstr "백그라운드 작업자가 너무 많음" -#: postmaster/bgworker.c:918 +#: postmaster/bgworker.c:927 #, 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] "현재 설정으로는 %d개의 백그라운드 작업자를 사용할 수 있습니다." -#: postmaster/bgworker.c:922 +#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445 #, c-format -msgid "" -"Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "\"max_worker_processes\" 환경 매개 변수 값을 좀 느려보십시오." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "\"%s\" 환경 매개 변수 값을 좀 늘려보십시오." -#: postmaster/checkpointer.c:431 +#: postmaster/checkpointer.c:441 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" msgstr[0] "체크포인트가 너무 자주 발생함 (%d초 간격)" -#: postmaster/checkpointer.c:435 -#, c-format -msgid "Consider increasing the configuration parameter \"max_wal_size\"." -msgstr "\"max_wal_size\" 환경 매개 변수 값을 좀 느려보십시오." - -#: postmaster/checkpointer.c:1059 +#: postmaster/checkpointer.c:1067 #, c-format msgid "checkpoint request failed" msgstr "체크포인트 요청 실패" -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1068 #, c-format msgid "Consult recent messages in the server log for details." msgstr "더 자세한 것은 서버 로그 파일을 살펴보십시오." -#: postmaster/pgarch.c:416 +#: postmaster/launch_backend.c:381 #, c-format -msgid "archive_mode enabled, yet archiving is not configured" -msgstr "archive_mode가 활성화 되었는데 아카이브 관련 세부 설정이 되어있지 않음" +msgid "could not execute server process \"%s\": %m" +msgstr "\"%s\" 서버 프로세스를 실행할 수 없음: %m" -#: postmaster/pgarch.c:438 +#: postmaster/launch_backend.c:434 #, c-format -msgid "removed orphan archive status file \"%s\"" -msgstr "필요 없는 \"%s\" 아카이브 상태 파일이 삭제됨" +msgid "could not create backend parameter file mapping: error code %lu" +msgstr "백엔드 매개 변수 맵핑 파일을 만들 수 없음: 오류 코드 %lu" -#: postmaster/pgarch.c:448 +#: postmaster/launch_backend.c:442 #, c-format -msgid "" -"removal of orphan archive status file \"%s\" failed too many times, will try " -"again later" -msgstr "" -"필요 없는 \"%s\" 아카이브 상태 파일 삭제 작업이 계속 실패하고 있습니다. 다음" -"에 또 시도할 것입니다." +msgid "could not map backend parameter memory: error code %lu" +msgstr "백엔드 매개 변수 메모리를 맵핑할 수 없음: 오류 코드 %lu" -#: postmaster/pgarch.c:484 +#: postmaster/launch_backend.c:459 #, c-format -msgid "" +msgid "subprocess command line too long" +msgstr "서브프로세스 명령행이 너무 깁니다." + +#: postmaster/launch_backend.c:477 +#, c-format +msgid "CreateProcess() call failed: %m (error code %lu)" +msgstr "CreateProcess() 호출 실패: %m (오류 코드 %lu)" + +#: postmaster/launch_backend.c:504 +#, c-format +msgid "could not unmap view of backend parameter file: error code %lu" +msgstr "백엔드 매개 변수 파일의 view를 unmap할 수 없음: 오류 코드 %lu" + +#: postmaster/launch_backend.c:508 +#, c-format +msgid "could not close handle to backend parameter file: error code %lu" +msgstr "백엔드 매개 변수 파일을 닫을 수 없음: 오류 코드 %lun" + +#: postmaster/launch_backend.c:530 +#, c-format +msgid "giving up after too many tries to reserve shared memory" +msgstr "공유 메모리 확보 작업을 여러 번 시도했으나 실패 함" + +#: postmaster/launch_backend.c:531 +#, c-format +msgid "This might be caused by ASLR or antivirus software." +msgstr "이 현상은 ASLR 또는 바이러스 검사 소프트웨어 때문일 수 있습니다." + +#: postmaster/launch_backend.c:834 +#, c-format +msgid "could not duplicate socket %d for use in backend: error code %d" +msgstr "백엔드에서 사용하기 위해 %d 소켓을 복사할 수 없음: 오류 코드 %d" + +#: postmaster/launch_backend.c:866 +#, c-format +msgid "could not create inherited socket: error code %d\n" +msgstr "상속된 소켓을 만들 수 없음: 오류 코드 %d\n" + +#: postmaster/launch_backend.c:895 +#, c-format +msgid "could not open backend variables file \"%s\": %m\n" +msgstr "\"%s\" 백엔드 변수 파일을 열 수 없음: %m\n" + +#: postmaster/launch_backend.c:901 +#, c-format +msgid "could not read from backend variables file \"%s\": %m\n" +msgstr "\"%s\" 백엔드 변수 파일을 읽을 수 없음: %m\n" + +#: postmaster/launch_backend.c:912 +#, c-format +msgid "could not read startup data from backend variables file \"%s\": %m\n" +msgstr "\"%s\" 백엔드 변수 파일에서 시작 데이터를 읽을 수 없음: %m\n" + +#: postmaster/launch_backend.c:924 +#, c-format +msgid "could not remove file \"%s\": %m\n" +msgstr "\"%s\" 파일을 삭제할 수 없음: %m\n" + +#: postmaster/launch_backend.c:940 +#, c-format +msgid "could not map view of backend variables: error code %lu\n" +msgstr "백엔드 변수 파일의 view를 map할 수 없음: 오류 코드 %lu\n" + +#: postmaster/launch_backend.c:959 +#, c-format +msgid "could not unmap view of backend variables: error code %lu\n" +msgstr "백엔드 변수 파일의 view를 unmap할 수 없음: 오류 코드 %lu\n" + +#: postmaster/launch_backend.c:966 +#, c-format +msgid "could not close handle to backend parameter variables: error code %lu\n" +msgstr "백엔드 변수 파일을 닫을 수 없음: 오류 코드 %lu\n" + +#: postmaster/pgarch.c:428 +#, c-format +msgid "\"archive_mode\" enabled, yet archiving is not configured" +msgstr "\"archive_mode\"가 활성화 되었지만 아카이브 관련 세부 설정이 되어있지 않음" + +#: postmaster/pgarch.c:452 +#, c-format +msgid "removed orphan archive status file \"%s\"" +msgstr "필요 없는 \"%s\" 아카이브 상태 파일이 삭제됨" + +#: postmaster/pgarch.c:462 +#, c-format +msgid "" +"removal of orphan archive status file \"%s\" failed too many times, will try " +"again later" +msgstr "" +"필요 없는 \"%s\" 아카이브 상태 파일 삭제 작업이 계속 실패하고 있습니다. 다음" +"에 또 시도할 것입니다." + +#: postmaster/pgarch.c:498 +#, c-format +msgid "" "archiving write-ahead log file \"%s\" failed too many times, will try again " "later" msgstr "" "\"%s\" 트랜잭션 로그 파일 아카이브 작업이 계속 실패하고 있습니다. 다음에 또 " "시도할 것입니다." -#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 #, c-format -msgid "both archive_command and archive_library set" -msgstr "archive_command, archive_library 두 설정 모두 값을 지정했습니다." +msgid "both \"archive_command\" and \"archive_library\" set" +msgstr "\"archive_command\", \"archive_library\" 두 설정 모두 값을 지정했습니다." -#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 #, c-format -msgid "Only one of archive_command, archive_library may be set." -msgstr "archive_command, archive_library 둘 중 하나만 지정하세요." +msgid "Only one of \"archive_command\", \"archive_library\" may be set." +msgstr "\"archive_command\", \"archive_library\" 둘 중 하나만 지정하세요." -#: postmaster/pgarch.c:809 +#: postmaster/pgarch.c:897 #, c-format msgid "" "restarting archiver process because value of \"archive_library\" was changed" msgstr "" "\"archive_library\" 설정값이 바뀌어서 archiver 프로세스를 다시 시작 합니다." -#: postmaster/pgarch.c:846 +#: postmaster/pgarch.c:934 #, c-format msgid "archive modules have to define the symbol %s" msgstr "아카이브 모듈은 %s 심볼을 정의해야합니다." -#: postmaster/pgarch.c:852 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules must register an archive callback" msgstr "아카이브 모듈은 아카이브 콜백 함수를 등록해야합니다." -#: postmaster/postmaster.c:759 +#: postmaster/postmaster.c:661 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: -f 옵션의 잘못된 인자: \"%s\"\n" -#: postmaster/postmaster.c:832 +#: postmaster/postmaster.c:734 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: -t 옵션의 잘못된 인자: \"%s\"\n" -#: postmaster/postmaster.c:855 +#: postmaster/postmaster.c:757 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: 잘못된 인자: \"%s\"\n" -#: postmaster/postmaster.c:923 +#: postmaster/postmaster.c:825 #, c-format msgid "" -"%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must " -"be less than max_connections (%d)\n" +"%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" " +"(%d) must be less than \"max_connections\" (%d)\n" msgstr "" -"%s: superuser_reserved_connections (%d) 값 + reserved_connections (%d) 값은 " -"max_connections(%d) 값보다 작아야함\n" +"%s: \"superuser_reserved_connections\" (%d) 값 + \"reserved_connections\" (%d) 값은 " +"\"max_connections\" (%d) 값보다 작아야함\n" -#: postmaster/postmaster.c:931 +#: postmaster/postmaster.c:833 #, c-format -msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "wal_level 값이 \"minimal\"일 때는 아카이브 작업을 할 수 없습니다." +msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" +msgstr "\"wal_level\" 값이 \"minimal\"일 때는 아카이브 작업을 할 수 없습니다." -#: postmaster/postmaster.c:934 +#: postmaster/postmaster.c:836 #, c-format msgid "" -"WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or " -"\"logical\"" +"WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be " +"\"replica\" or \"logical\"" msgstr "" -"WAL 스트리밍 작업(max_wal_senders > 0 인경우)은 wal_level 값이 \"replica\" 또" +"WAL 스트리밍 작업(\"max_wal_senders\" > 0 인경우)은 \"wal_level\" 값이 \"replica\" 또" "는 \"logical\" 이어야 합니다." -#: postmaster/postmaster.c:942 +#: postmaster/postmaster.c:839 +#, c-format +msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" +msgstr "\"wal_level\" 값이 \"minimal\"일 때는 아카이브 작업을 할 수 없습니다." + +#: postmaster/postmaster.c:847 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: 잘못된 datetoken 테이블들, 복구하십시오.\n" -#: postmaster/postmaster.c:1099 +#: postmaster/postmaster.c:1004 #, c-format msgid "could not create I/O completion port for child queue" msgstr "하위 대기열에 대해 I/O 완료 포트를 만들 수 없음" -#: postmaster/postmaster.c:1175 +#: postmaster/postmaster.c:1069 #, c-format msgid "ending log output to stderr" msgstr "stderr 쪽 로그 출력을 중지합니다." -#: postmaster/postmaster.c:1176 +#: postmaster/postmaster.c:1070 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "자세한 로그는 \"%s\" 쪽으로 기록됩니다." -#: postmaster/postmaster.c:1187 +#: postmaster/postmaster.c:1081 #, c-format msgid "starting %s" msgstr "%s 서버를 시작합니다." -#: postmaster/postmaster.c:1239 +#: postmaster/postmaster.c:1143 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "\"%s\" 응당 소켓을 만들 수 없습니다" -#: postmaster/postmaster.c:1245 +#: postmaster/postmaster.c:1149 #, c-format msgid "could not create any TCP/IP sockets" msgstr "TCP/IP 소켓을 만들 수 없습니다." -#: postmaster/postmaster.c:1277 +#: postmaster/postmaster.c:1181 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister() 실패: 오류 코드 %ld" -#: postmaster/postmaster.c:1328 +#: postmaster/postmaster.c:1234 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "\"%s\" 디렉터리에 유닉스 도메인 소켓을 만들 수 없습니다" -#: postmaster/postmaster.c:1334 +#: postmaster/postmaster.c:1240 #, c-format msgid "could not create any Unix-domain sockets" msgstr "유닉스 도메인 소켓을 만들 수 없습니다" -#: postmaster/postmaster.c:1345 +#: postmaster/postmaster.c:1251 #, c-format msgid "no socket created for listening" msgstr "서버 접속 대기 작업을 위한 소켓을 만들 수 없음" -#: postmaster/postmaster.c:1376 +#: postmaster/postmaster.c:1282 #, c-format -msgid "%s: could not change permissions of external PID file \"%s\": %s\n" -msgstr "%s: \"%s\" 외부 PID 파일의 접근 권한을 바꿀 수 없음: %s\n" +msgid "%s: could not change permissions of external PID file \"%s\": %m\n" +msgstr "%s: \"%s\" 외부 PID 파일의 접근 권한을 바꿀 수 없음: %m\n" -#: postmaster/postmaster.c:1380 +#: postmaster/postmaster.c:1286 #, c-format -msgid "%s: could not write external PID file \"%s\": %s\n" -msgstr "%s: 외부 pid 파일 \"%s\" 를 쓸 수 없음: %s\n" +msgid "%s: could not write external PID file \"%s\": %m\n" +msgstr "%s: 외부 pid 파일 \"%s\" 를 쓸 수 없음: %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1408 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 #, c-format msgid "could not load %s" msgstr "%s 파일을 로드 할 수 없음" -#: postmaster/postmaster.c:1434 +#: postmaster/postmaster.c:1340 #, c-format msgid "postmaster became multithreaded during startup" msgstr "포스트마스터가 시작하면서 멀티쓰레드 환경이 되었습니다." -#: postmaster/postmaster.c:1435 +#: postmaster/postmaster.c:1341 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "LC_ALL 환경 설정값으로 알맞은 로케일 이름을 지정하세요." -#: postmaster/postmaster.c:1536 +#: postmaster/postmaster.c:1440 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: 실행 가능 경로를 확정할 수 없음" -#: postmaster/postmaster.c:1543 +#: postmaster/postmaster.c:1447 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: 실행가능한 postgres 프로그램을 찾을 수 없습니다" -#: postmaster/postmaster.c:1566 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1470 utils/misc/tzparser.c:341 #, c-format msgid "" "This may indicate an incomplete PostgreSQL installation, or that the file " @@ -20697,558 +21392,375 @@ msgstr "" "이 문제는 PostgreSQL 설치가 불완전하게 되었거나, \"%s\" 파일이 올바른 위치에 " "있지 않아서 발생했습니다." -#: postmaster/postmaster.c:1593 +#: postmaster/postmaster.c:1497 #, c-format msgid "" "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" -"but could not open file \"%s\": %s\n" +"but could not open file \"%s\": %m\n" msgstr "" "%s: 데이터베이스 시스템을 찾을 수 없습니다\n" "\"%s\" 디렉터리 안에 해당 자료가 있기를 기대했는데,\n" -"\"%s\" 파일을 열 수가 없었습니다: %s\n" +"\"%s\" 파일을 열 수가 없었습니다: %m\n" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1890 +#: postmaster/postmaster.c:1787 #, c-format msgid "issuing %s to recalcitrant children" msgstr "하위 프로세스 정리를 위해 %s 신호 보냄" -#: postmaster/postmaster.c:1912 +#: postmaster/postmaster.c:1809 #, c-format msgid "" "performing immediate shutdown because data directory lock file is invalid" msgstr "데이터 디렉터리 잠금 파일이 잘못되어 즉시 종료 작업을 진행합니다." -#: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 -#, c-format -msgid "incomplete startup packet" -msgstr "아직 완료되지 않은 시작 패킷" - -#: postmaster/postmaster.c:1999 postmaster/postmaster.c:2032 -#, c-format -msgid "invalid length of startup packet" -msgstr "시작 패킷의 길이가 잘못 되었습니다" - -#: postmaster/postmaster.c:2061 -#, c-format -msgid "failed to send SSL negotiation response: %m" -msgstr "SSL 연결 작업에 오류가 발생했습니다: %m" - -#: postmaster/postmaster.c:2079 -#, c-format -msgid "received unencrypted data after SSL request" -msgstr "SSL 요청 뒤에 암호화 되지 않은 데이터를 받았음" - -#: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 -#, c-format -msgid "" -"This could be either a client-software bug or evidence of an attempted man-" -"in-the-middle attack." -msgstr "" -"이 현상은 클라이언트 소프트웨어 버그이거나, 중간자 공격으로 발생했을 것입니" -"다." - -#: postmaster/postmaster.c:2105 -#, c-format -msgid "failed to send GSSAPI negotiation response: %m" -msgstr "GSSAPI 협상 응답을 보내지 못했습니다: %m" - -#: postmaster/postmaster.c:2123 -#, c-format -msgid "received unencrypted data after GSSAPI encryption request" -msgstr "GSSAPI 암호화 요청 뒤에 암호화 되지 않은 데이터를 받았습니다." - -#: postmaster/postmaster.c:2147 -#, c-format -msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" -msgstr "" -"지원하지 않는 frontend 프로토콜 %u.%u: 서버에서 지원하는 프로토콜 %u.0 .. %u." -"%u" - -#: postmaster/postmaster.c:2214 -#, c-format -msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." -msgstr "사용할 수 있는 값: \"false\", 0, \"true\", 1, \"database\"." - -#: postmaster/postmaster.c:2255 -#, c-format -msgid "invalid startup packet layout: expected terminator as last byte" -msgstr "잘못된 시작 패킷 레이아웃: 마지막 바이트로 종결문자가 발견되었음" - -#: postmaster/postmaster.c:2272 -#, c-format -msgid "no PostgreSQL user name specified in startup packet" -msgstr "시작 패킷에서 지정한 사용자는 PostgreSQL 사용자 이름이 아닙니다" - -#: postmaster/postmaster.c:2336 -#, c-format -msgid "the database system is starting up" -msgstr "데이터베이스 시스템이 새로 가동 중입니다." - -#: postmaster/postmaster.c:2342 -#, c-format -msgid "the database system is not yet accepting connections" -msgstr "해당 데이터베이스 시스템은 아직 접속을 허용하지 않습니다." - -#: postmaster/postmaster.c:2343 -#, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "일관성 복원 작업을 아직 끝내지 못했습니다." - -#: postmaster/postmaster.c:2347 -#, c-format -msgid "the database system is not accepting connections" -msgstr "해당 데이터베이스 시스템은 접속을 허용하지 않습니다." - -#: postmaster/postmaster.c:2348 -#, c-format -msgid "Hot standby mode is disabled." -msgstr "Hot standby 모드가 비활성화 되었습니다." - -#: postmaster/postmaster.c:2353 -#, c-format -msgid "the database system is shutting down" -msgstr "데이터베이스 시스템이 중지 중입니다" - -#: postmaster/postmaster.c:2358 -#, c-format -msgid "the database system is in recovery mode" -msgstr "데이터베이스 시스템이 자동 복구 작업 중입니다." - -#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 -#, c-format -msgid "sorry, too many clients already" -msgstr "최대 동시 접속자 수를 초과했습니다." - -#: postmaster/postmaster.c:2450 +#: postmaster/postmaster.c:1872 #, c-format msgid "wrong key in cancel request for process %d" msgstr "프로세스 %d에 대한 취소 요청에 잘못된 키가 있음" -#: postmaster/postmaster.c:2462 +#: postmaster/postmaster.c:1884 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "취소 요청의 PID %d과(와) 일치하는 프로세스가 없음" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2104 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "SIGHUP 신호를 받아서, 환경설정파일을 다시 읽고 있습니다." #. translator: %s is a configuration file -#: postmaster/postmaster.c:2753 postmaster/postmaster.c:2757 +#: postmaster/postmaster.c:2132 postmaster/postmaster.c:2136 #, c-format msgid "%s was not reloaded" msgstr "%s 파일을 다시 불러오지 않았음" -#: postmaster/postmaster.c:2767 +#: postmaster/postmaster.c:2146 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL 설정이 다시 로드되지 않았음" -#: postmaster/postmaster.c:2857 +#: postmaster/postmaster.c:2232 #, c-format msgid "received smart shutdown request" msgstr "smart 중지 요청을 받았습니다." -#: postmaster/postmaster.c:2898 +#: postmaster/postmaster.c:2273 #, c-format msgid "received fast shutdown request" msgstr "fast 중지 요청을 받았습니다." -#: postmaster/postmaster.c:2916 +#: postmaster/postmaster.c:2291 #, c-format msgid "aborting any active transactions" msgstr "모든 활성화 되어있는 트랜잭션을 중지하고 있습니다." -#: postmaster/postmaster.c:2940 +#: postmaster/postmaster.c:2315 #, c-format msgid "received immediate shutdown request" msgstr "immediate 중지 요청을 받았습니다." -#: postmaster/postmaster.c:3016 +#: postmaster/postmaster.c:2387 #, c-format msgid "shutdown at recovery target" msgstr "복구 타겟에서 중지함" -#: postmaster/postmaster.c:3034 postmaster/postmaster.c:3070 +#: postmaster/postmaster.c:2405 postmaster/postmaster.c:2441 msgid "startup process" msgstr "시작 프로세스" -#: postmaster/postmaster.c:3037 +#: postmaster/postmaster.c:2408 #, c-format msgid "aborting startup due to startup process failure" msgstr "시작 프로세스 실패 때문에 서버 시작이 중지 되었습니다" -#: postmaster/postmaster.c:3110 +#: postmaster/postmaster.c:2483 #, c-format msgid "database system is ready to accept connections" msgstr "이제 데이터베이스 서버로 접속할 수 있습니다" -#: postmaster/postmaster.c:3131 +#: postmaster/postmaster.c:2504 msgid "background writer process" msgstr "백그라운드 writer 프로세스" -#: postmaster/postmaster.c:3178 +#: postmaster/postmaster.c:2551 msgid "checkpointer process" msgstr "체크포인트 프로세스" -#: postmaster/postmaster.c:3194 +#: postmaster/postmaster.c:2567 msgid "WAL writer process" msgstr "WAL 쓰기 프로세스" -#: postmaster/postmaster.c:3209 +#: postmaster/postmaster.c:2582 msgid "WAL receiver process" msgstr "WAL 수신 프로세스" -#: postmaster/postmaster.c:3224 +#: postmaster/postmaster.c:2596 +msgid "WAL summarizer process" +msgstr "WAL 요약 프로세스" + +#: postmaster/postmaster.c:2611 msgid "autovacuum launcher process" msgstr "autovacuum 실행기 프로세스" -#: postmaster/postmaster.c:3242 +#: postmaster/postmaster.c:2629 msgid "archiver process" msgstr "archiver 프로세스" -#: postmaster/postmaster.c:3255 +#: postmaster/postmaster.c:2642 msgid "system logger process" msgstr "시스템 로그 프로세스" -#: postmaster/postmaster.c:3312 +#: postmaster/postmaster.c:2659 +msgid "slot sync worker process" +msgstr "슬롯 동기화 작업 프로세스" + +#: postmaster/postmaster.c:2715 #, c-format msgid "background worker \"%s\"" msgstr "백그라운드 작업자 \"%s\"" -#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 -#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 +#: postmaster/postmaster.c:2794 postmaster/postmaster.c:2814 +#: postmaster/postmaster.c:2821 postmaster/postmaster.c:2839 msgid "server process" msgstr "서버 프로세스" -#: postmaster/postmaster.c:3490 +#: postmaster/postmaster.c:2893 #, 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:3665 +#: postmaster/postmaster.c:3080 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) 프로그램은 %d 코드로 마쳤습니다" -#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 -#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 +#: postmaster/postmaster.c:3082 postmaster/postmaster.c:3094 +#: postmaster/postmaster.c:3104 postmaster/postmaster.c:3115 #, 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:3676 +#: postmaster/postmaster.c:3091 #, 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:3686 +#: postmaster/postmaster.c:3101 #, 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:3698 +#: postmaster/postmaster.c:3113 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) 프로세스가 인식할 수 없는 %d 상태로 종료됨" -#: postmaster/postmaster.c:3906 +#: postmaster/postmaster.c:3329 #, c-format msgid "abnormal database system shutdown" msgstr "비정상적인 데이터베이스 시스템 서비스를 중지" -#: postmaster/postmaster.c:3932 +#: postmaster/postmaster.c:3355 #, c-format msgid "shutting down due to startup process failure" msgstr "시작 작업 실패로 중지합니다." -#: postmaster/postmaster.c:3938 +#: postmaster/postmaster.c:3361 #, c-format -msgid "shutting down because restart_after_crash is off" -msgstr "restart_after_crash 값이 off 로 지정되어 중지합니다." +msgid "shutting down because \"restart_after_crash\" is off" +msgstr "\"restart_after_crash\" 값이 off 로 지정되어 중지합니다." -#: postmaster/postmaster.c:3950 +#: postmaster/postmaster.c:3373 #, c-format msgid "all server processes terminated; reinitializing" msgstr "모든 서버 프로세스가 중지 되었습니다; 재 초기화 중" -#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 -#: postmaster/postmaster.c:5860 +#: postmaster/postmaster.c:3572 postmaster/postmaster.c:3982 +#: postmaster/postmaster.c:4371 #, c-format msgid "could not generate random cancel key" msgstr "무작위 취소 키를 만들 수 없음" -#: postmaster/postmaster.c:4206 +#: postmaster/postmaster.c:3605 #, c-format msgid "could not fork new process for connection: %m" msgstr "연결을 위한 새 프로세스 할당(fork) 실패: %m" -#: postmaster/postmaster.c:4248 +#: postmaster/postmaster.c:3647 msgid "could not fork new process for connection: " msgstr "연결을 위한 새 프로세스 할당(fork) 실패: " -#: postmaster/postmaster.c:4354 -#, c-format -msgid "connection received: host=%s port=%s" -msgstr "접속 수락: host=%s port=%s" - -#: postmaster/postmaster.c:4359 -#, c-format -msgid "connection received: host=%s" -msgstr "접속 수락: host=%s" - -#: postmaster/postmaster.c:4596 -#, c-format -msgid "could not execute server process \"%s\": %m" -msgstr "\"%s\" 서버 프로세스를 실행할 수 없음: %m" - -#: postmaster/postmaster.c:4654 -#, c-format -msgid "could not create backend parameter file mapping: error code %lu" -msgstr "백엔드 매개 변수 맵핑 파일을 만들 수 없음: 오류 코드 %lu" - -#: postmaster/postmaster.c:4663 -#, c-format -msgid "could not map backend parameter memory: error code %lu" -msgstr "백엔드 매개 변수 메모리를 맵핑할 수 없음: 오류 코드 %lu" - -#: postmaster/postmaster.c:4690 -#, c-format -msgid "subprocess command line too long" -msgstr "서브프로세스 명령행이 너무 깁니다." - -#: postmaster/postmaster.c:4708 -#, c-format -msgid "CreateProcess() call failed: %m (error code %lu)" -msgstr "CreateProcess() 호출 실패: %m (오류 코드 %lu)" - -#: postmaster/postmaster.c:4735 -#, c-format -msgid "could not unmap view of backend parameter file: error code %lu" -msgstr "백엔드 매개 변수 파일의 view를 unmap할 수 없음: 오류 코드 %lu" - -#: postmaster/postmaster.c:4739 -#, c-format -msgid "could not close handle to backend parameter file: error code %lu" -msgstr "백엔드 매개 변수 파일을 닫을 수 없음: 오류 코드 %lun" - -#: postmaster/postmaster.c:4761 -#, c-format -msgid "giving up after too many tries to reserve shared memory" -msgstr "공유 메모리 확보 작업을 여러 번 시도했으나 실패 함" - -#: postmaster/postmaster.c:4762 -#, c-format -msgid "This might be caused by ASLR or antivirus software." -msgstr "이 현상은 ASLR 또는 바이러스 검사 소프트웨어 때문일 수 있습니다." - -#: postmaster/postmaster.c:4935 -#, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "하위 프로세스에서 SSL 환경 설정을 못했음" - -#: postmaster/postmaster.c:5060 +#: postmaster/postmaster.c:3681 #, c-format msgid "Please report this to <%s>." msgstr "이 내용을 <%s> 주소로 보고하십시오." -#: postmaster/postmaster.c:5128 +#: postmaster/postmaster.c:3749 #, c-format msgid "database system is ready to accept read-only connections" msgstr "데이터베이스 시스템이 읽기 전용으로 연결을 수락할 준비가 되었습니다." -#: postmaster/postmaster.c:5386 -#, c-format -msgid "could not fork startup process: %m" -msgstr "시작 프로세스 할당(fork) 실패: %m" - -#: postmaster/postmaster.c:5390 -#, c-format -msgid "could not fork archiver process: %m" -msgstr "archiver 프로세스를 할당(fork)할 수 없음: %m" - -#: postmaster/postmaster.c:5394 -#, c-format -msgid "could not fork background writer process: %m" -msgstr "background writer 프로세스를 할당(fork)할 수 없습니다: %m" - -#: postmaster/postmaster.c:5398 -#, c-format -msgid "could not fork checkpointer process: %m" -msgstr "checkpointer 프로세스를 할당(fork)할 수 없습니다: %m" - -#: postmaster/postmaster.c:5402 -#, c-format -msgid "could not fork WAL writer process: %m" -msgstr "WAL writer 프로세스를 할당(fork)할 수 없음: %m" - -#: postmaster/postmaster.c:5406 -#, c-format -msgid "could not fork WAL receiver process: %m" -msgstr "WAL 수신 프로세스를 할당(fork)할 수 없음: %m" - -#: postmaster/postmaster.c:5410 +#: postmaster/postmaster.c:3932 #, c-format -msgid "could not fork process: %m" -msgstr "프로세스 할당(fork) 실패: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "\"%s\" 프로세스 할당(fork) 실패: %m" -#: postmaster/postmaster.c:5611 postmaster/postmaster.c:5638 +#: postmaster/postmaster.c:4170 postmaster/postmaster.c:4204 #, c-format msgid "database connection requirement not indicated during registration" msgstr "" "백그라운드 프로세스 초기화 중에 데이터베이스 연결 요구 사항이 충족되지 않았습" "니다." -#: postmaster/postmaster.c:5622 postmaster/postmaster.c:5649 +#: postmaster/postmaster.c:4180 postmaster/postmaster.c:4214 #, c-format msgid "invalid processing mode in background worker" msgstr "백그라운드 작업자에서 잘못된 프로세싱 모드가 사용됨" -#: postmaster/postmaster.c:5734 +#: postmaster/postmaster.c:4274 #, c-format -msgid "could not fork worker process: %m" -msgstr "작업자 프로세스를 할당(fork)할 수 없음: %m" +msgid "could not fork background worker process: %m" +msgstr "백그라운드 작업자 프로세스를 할당(fork)할 수 없습니다: %m" -#: postmaster/postmaster.c:5846 +#: postmaster/postmaster.c:4357 #, c-format -msgid "no slot available for new worker process" -msgstr "새 작업자 프로세스에서 쓸 슬롯이 없음" +msgid "no slot available for new background worker process" +msgstr "새 백그라운드 작업자 프로세스에서 쓸 슬롯이 없음" -#: postmaster/postmaster.c:6177 -#, c-format -msgid "could not duplicate socket %d for use in backend: error code %d" -msgstr "백엔드에서 사용하기 위해 %d 소켓을 복사할 수 없음: 오류 코드 %d" - -#: postmaster/postmaster.c:6209 -#, c-format -msgid "could not create inherited socket: error code %d\n" -msgstr "상속된 소켓을 만들 수 없음: 오류 코드 %d\n" - -#: postmaster/postmaster.c:6238 -#, c-format -msgid "could not open backend variables file \"%s\": %s\n" -msgstr "\"%s\" 백엔드 변수 파일을 열 수 없음: %s\n" - -#: postmaster/postmaster.c:6245 -#, c-format -msgid "could not read from backend variables file \"%s\": %s\n" -msgstr "\"%s\" 백엔드 변수 파일을 읽을 수 없음: %s\n" - -#: postmaster/postmaster.c:6254 -#, c-format -msgid "could not remove file \"%s\": %s\n" -msgstr "\"%s\" 파일을 삭제할 수 없음: %s\n" - -#: postmaster/postmaster.c:6271 -#, c-format -msgid "could not map view of backend variables: error code %lu\n" -msgstr "백엔드 변수 파일의 view를 map할 수 없음: 오류 코드 %lu\n" - -#: postmaster/postmaster.c:6280 -#, c-format -msgid "could not unmap view of backend variables: error code %lu\n" -msgstr "백엔드 변수 파일의 view를 unmap할 수 없음: 오류 코드 %lu\n" - -#: postmaster/postmaster.c:6287 -#, c-format -msgid "could not close handle to backend parameter variables: error code %lu\n" -msgstr "백엔드 변수 파일을 닫을 수 없음: 오류 코드 %lu\n" - -#: postmaster/postmaster.c:6446 +#: postmaster/postmaster.c:4620 #, c-format msgid "could not read exit code for process\n" msgstr "프로세스의 종료 코드를 읽을 수 없음\n" -#: postmaster/postmaster.c:6488 +#: postmaster/postmaster.c:4662 #, c-format msgid "could not post child completion status\n" msgstr "하위 완료 상태를 게시할 수 없음\n" -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 +#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 #, c-format msgid "could not read from logger pipe: %m" msgstr "로그 파이프에서 읽기 실패: %m" -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 +#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 #, c-format msgid "could not create pipe for syslog: %m" msgstr "syslog에서 사용할 파이프를 만들 수 없습니다: %m" -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:712 #, c-format msgid "could not fork system logger: %m" msgstr "시스템 로거(logger)를 확보하질 못 했습니다: %m" -#: postmaster/syslogger.c:713 +#: postmaster/syslogger.c:731 #, c-format msgid "redirecting log output to logging collector process" msgstr "서버 로그를 로그 수집 프로세스로 보냅니다." -#: postmaster/syslogger.c:714 +#: postmaster/syslogger.c:732 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "이제부터 서버 로그는 \"%s\" 디렉터리에 보관됩니다." -#: postmaster/syslogger.c:722 +#: postmaster/syslogger.c:740 #, c-format msgid "could not redirect stdout: %m" msgstr "표준출력을 redirect 하지 못했습니다: %m" -#: postmaster/syslogger.c:727 postmaster/syslogger.c:744 +#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 #, c-format msgid "could not redirect stderr: %m" msgstr "표준오류(stderr)를 redirect 하지 못했습니다: %m" -#: postmaster/syslogger.c:1177 +#: postmaster/syslogger.c:1128 #, c-format -msgid "could not write to log file: %s\n" -msgstr "로그파일 쓰기 실패: %s\n" +msgid "could not write to log file: %m\n" +msgstr "로그파일 쓰기 실패: %m\n" -#: postmaster/syslogger.c:1295 +#: postmaster/syslogger.c:1246 #, c-format msgid "could not open log file \"%s\": %m" msgstr "\"%s\" 잠금파일을 열 수 없음: %m" -#: postmaster/syslogger.c:1385 +#: postmaster/syslogger.c:1336 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "" "로그파일 자동 교체 기능을 금지합니다(교체하려면 SIGHUP 시그널을 사용함)" -#: regex/regc_pg_locale.c:242 +#: postmaster/walsummarizer.c:740 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "WAL 요약정보 처리 작업이 진행 중이지 않음" + +#: postmaster/walsummarizer.c:741 +#, c-format +msgid "" +"Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/" +"%X in memory." +msgstr "" +"요약정보 처리 작업은 %X/%X에서 필요한데, 디스크의 %X/%X, 메모리의 %X/%X에서 멈추어 있음" + +#: postmaster/walsummarizer.c:755 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "" +"still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "" +"%X/%X에서 여전히 %ld초 동안 WAL 요약정보 처리 작업이 멈춰 있음" + +#: postmaster/walsummarizer.c:760 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "요약정보 처리 작업이 디스크의 %X/%X에, 메모리의 %X/%X에 다달았음" + +#: postmaster/walsummarizer.c:1000 +#, c-format +msgid "could not find a valid record after %X/%X" +msgstr "%X/%X 뒤에 올바른 레코드를 찾을 수 없음" + +#: postmaster/walsummarizer.c:1045 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X: %s" +msgstr "%u번 타임라인의 %X/%X에서 WAL를 읽을 수 없음: %s" + +#: postmaster/walsummarizer.c:1051 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X" +msgstr "타임라인 %u, 위치 %X/%X 에서 WAL를 읽을 없음" + +#: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "정규식 처리에 쓰일 정렬규칙(collation)을 찾을 수 없음" -#: regex/regc_pg_locale.c:265 +#: regex/regc_pg_locale.c:262 #, c-format msgid "nondeterministic collations are not supported for regular expressions" msgstr "정규식 처리에 쓰일 비결정 정렬규칙(collation)을 지원하지 않음" -#: replication/libpqwalreceiver/libpqwalreceiver.c:197 -#: replication/libpqwalreceiver/libpqwalreceiver.c:280 +#: replication/libpqwalreceiver/libpqwalreceiver.c:267 +#: replication/libpqwalreceiver/libpqwalreceiver.c:358 #, c-format msgid "password is required" msgstr "비밀번호가 필요함" -#: replication/libpqwalreceiver/libpqwalreceiver.c:198 +#: replication/libpqwalreceiver/libpqwalreceiver.c:268 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "해당 서버로 비밀번호 없이 접속한다며, 일반 사용자는 접속할 수 없음" -#: replication/libpqwalreceiver/libpqwalreceiver.c:199 +#: replication/libpqwalreceiver/libpqwalreceiver.c:269 #, c-format msgid "" "Target server's authentication method must be changed, or set " @@ -21257,27 +21769,28 @@ msgstr "" "대상 서버의 인증 방법을 바꾸거나, 또는 구독 속성으로 password_required=false " "로 지정하세요." -#: replication/libpqwalreceiver/libpqwalreceiver.c:211 +#: replication/libpqwalreceiver/libpqwalreceiver.c:285 #, c-format msgid "could not clear search path: %s" msgstr "search path를 지울 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:257 +#: replication/libpqwalreceiver/libpqwalreceiver.c:331 +#: replication/libpqwalreceiver/libpqwalreceiver.c:517 #, c-format msgid "invalid connection string syntax: %s" msgstr "잘못된 연결 문자열 구문: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:281 +#: replication/libpqwalreceiver/libpqwalreceiver.c:359 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "일반 사용자로 접속한다면, 연결 문자열에 비밀번호를 지정하세요." -#: replication/libpqwalreceiver/libpqwalreceiver.c:307 +#: replication/libpqwalreceiver/libpqwalreceiver.c:386 #, c-format msgid "could not parse connection string: %s" msgstr "접속 문자열을 분석할 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:380 +#: replication/libpqwalreceiver/libpqwalreceiver.c:459 #, c-format msgid "" "could not receive database system identifier and timeline ID from the " @@ -21285,13 +21798,13 @@ msgid "" msgstr "" "주 서버에서 데이터베이스 시스템 식별번호와 타임라인 번호를 받을 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:392 -#: replication/libpqwalreceiver/libpqwalreceiver.c:635 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:763 #, c-format msgid "invalid response from primary server" msgstr "주 서버에서 잘못된 응답이 왔음" -#: replication/libpqwalreceiver/libpqwalreceiver.c:393 +#: replication/libpqwalreceiver/libpqwalreceiver.c:477 #, c-format msgid "" "Could not identify system: got %d rows and %d fields, expected %d rows and " @@ -21300,86 +21813,91 @@ msgstr "" "시스템을 식별할 수 없음: 로우수 %d, 필드수 %d, 예상값: 로우수 %d, 필드수 %d " "이상" -#: replication/libpqwalreceiver/libpqwalreceiver.c:478 -#: replication/libpqwalreceiver/libpqwalreceiver.c:485 -#: replication/libpqwalreceiver/libpqwalreceiver.c:515 +#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:613 +#: replication/libpqwalreceiver/libpqwalreceiver.c:643 #, c-format msgid "could not start WAL streaming: %s" msgstr "WAL 스트리밍 작업을 시작할 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 +#: replication/libpqwalreceiver/libpqwalreceiver.c:667 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "주 서버로 스트리밍 종료 메시지를 보낼 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:562 +#: replication/libpqwalreceiver/libpqwalreceiver.c:690 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "스트리밍 종료 요청에 대한 잘못된 응답을 받음" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:705 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "COPY 스트리밍 종료 중 오류 발생: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:715 #, c-format msgid "error reading result of streaming command: %s" msgstr "스트리밍 명령에 대한 결과 처리에서 오류 발생: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 -#: replication/libpqwalreceiver/libpqwalreceiver.c:832 +#: replication/libpqwalreceiver/libpqwalreceiver.c:724 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "CommandComplete 작업 후 예상치 못한 결과를 받음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:751 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "주 서버에서 타임라인 내역 파일을 받을 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:636 +#: replication/libpqwalreceiver/libpqwalreceiver.c:764 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "2개의 칼럼으로 된 하나의 튜플을 예상하지만, %d 튜플 (%d 칼럼)을 수신함" -#: replication/libpqwalreceiver/libpqwalreceiver.c:795 -#: replication/libpqwalreceiver/libpqwalreceiver.c:848 -#: replication/libpqwalreceiver/libpqwalreceiver.c:855 +#: replication/libpqwalreceiver/libpqwalreceiver.c:920 +#: replication/libpqwalreceiver/libpqwalreceiver.c:973 +#: replication/libpqwalreceiver/libpqwalreceiver.c:980 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "WAL 스트림에서 자료 받기 실패: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:875 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 #, c-format msgid "could not send data to WAL stream: %s" msgstr "WAL 스트림에 데이터를 보낼 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:967 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "\"%s\" 복제 슬롯을 만들 수 없음: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1013 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#, c-format +msgid "could not alter replication slot \"%s\": %s" +msgstr "\"%s\" 복제 슬롯을 변경할 수 없음: %s" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 #, c-format msgid "invalid query response" msgstr "잘못된 쿼리 응답" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1014 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 #, c-format msgid "Expected %d fields, got %d fields." msgstr "%d개의 칼럼을 예상하지만, %d개의 칼럼을 수신함" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1084 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 #, c-format msgid "the query interface requires a database connection" msgstr "이 쿼리 인터페이스는 데이터베이스 연결이 필요합니다" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1115 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 msgid "empty query" msgstr "빈 쿼리" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1121 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 msgid "unexpected pipeline mode" msgstr "예기치 않은 파이프라인 모드" @@ -21390,33 +21908,33 @@ msgid "" "finished" msgstr "\"%s\" 구독을 위한 논리 복제 병렬 반영 작업자가 일을 끝냄" -#: replication/logical/applyparallelworker.c:825 +#: replication/logical/applyparallelworker.c:822 #, c-format msgid "lost connection to the logical replication apply worker" msgstr "논리 복제 반영 작업자 연결 끊김" -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 +#: replication/logical/applyparallelworker.c:1024 +#: replication/logical/applyparallelworker.c:1026 msgid "logical replication parallel apply worker" msgstr "논리 복제 병렬 반영 작업자" -#: replication/logical/applyparallelworker.c:1043 +#: replication/logical/applyparallelworker.c:1040 #, c-format msgid "logical replication parallel apply worker exited due to error" msgstr "논리 복제 병렬 반영 작업자가 오류로 종료되었음" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 +#: replication/logical/applyparallelworker.c:1127 +#: replication/logical/applyparallelworker.c:1300 #, c-format msgid "lost connection to the logical replication parallel apply worker" msgstr "논리 복제 병렬 반영 작업자 연결 끊김" -#: replication/logical/applyparallelworker.c:1183 +#: replication/logical/applyparallelworker.c:1180 #, c-format msgid "could not send data to shared-memory queue" msgstr "공유 메모리 큐로 데이터를 보낼 수 없음" -#: replication/logical/applyparallelworker.c:1218 +#: replication/logical/applyparallelworker.c:1215 #, c-format msgid "" "logical replication apply worker will serialize the remaining changes of " @@ -21425,44 +21943,45 @@ msgstr "" "논리 복제 반영 작업자는 %u 원격 트랜잭션의 남아 있는 변경 사항을 파일로 직렬" "화 할 것입니다." -#: replication/logical/decode.c:180 replication/logical/logical.c:140 +#: replication/logical/decode.c:177 replication/logical/logical.c:141 #, c-format msgid "" -"logical decoding on standby requires wal_level >= logical on the primary" +"logical decoding on standby requires \"wal_level\" >= \"logical\" on the " +"primary" msgstr "" -"대기 서버에서 논리적 디코딩은 주서버 설정이 wal_level >= logical 이어야 함" +"대기 서버에서 논리적 디코딩은 주서버 설정이 \"wal_level\" >= \"logical\" 이어야 함" -#: replication/logical/launcher.c:331 +#: replication/logical/launcher.c:334 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" msgstr "" "max_replication_slots = 0 설정 때문에 논리 복제 작업자를 시작 할 수 없습니다" -#: replication/logical/launcher.c:424 +#: replication/logical/launcher.c:427 #, c-format msgid "out of logical replication worker slots" msgstr "더 이상의 논리 복제 작업자용 슬롯이 없습니다" -#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 -#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 -#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 -#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 -#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 +#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 +#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023 +#: storage/lmgr/lock.c:2836 storage/lmgr/lock.c:4221 storage/lmgr/lock.c:4286 +#: storage/lmgr/lock.c:4636 storage/lmgr/predicate.c:2469 +#: storage/lmgr/predicate.c:2484 storage/lmgr/predicate.c:3881 #, c-format -msgid "You might need to increase %s." -msgstr "%s 설정값을 늘릴 필요가 있습니다." +msgid "You might need to increase \"%s\"." +msgstr "\"%s\" 설정값을 늘릴 필요가 있습니다." -#: replication/logical/launcher.c:498 +#: replication/logical/launcher.c:513 #, c-format msgid "out of background worker slots" msgstr "백그라운 작업자 슬롯이 모자랍니다" -#: replication/logical/launcher.c:705 +#: replication/logical/launcher.c:720 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "%d 번 논리 복제 작업자 슬롯이 비어있습니다, 붙일 수 없습니다." -#: replication/logical/launcher.c:714 +#: replication/logical/launcher.c:729 #, c-format msgid "" "logical replication worker slot %d is already used by another worker, cannot " @@ -21471,27 +21990,27 @@ msgstr "" "%d 번 논리 복제 작업자 슬롯을 이미 다른 작업자가 쓰고 있습니다. 붙일 수 없습" "니다." -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:121 #, c-format -msgid "logical decoding requires wal_level >= logical" -msgstr "논리적 디코딩 기능은 wal_level 값이 logical 이상이어야 함" +msgid "logical decoding requires \"wal_level\" >= \"logical\"" +msgstr "논리적 디코딩 기능은 \"wal_level\" 값이 \"logical\" 이상이어야 함" -#: replication/logical/logical.c:125 +#: replication/logical/logical.c:126 #, c-format msgid "logical decoding requires a database connection" msgstr "논리적 디코딩 기능은 데이터베이스 연결이 필요합니다" -#: replication/logical/logical.c:363 replication/logical/logical.c:517 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "논리적 디코딩에서는 물리적 복제 슬롯을 사용할 수 없음" -#: replication/logical/logical.c:368 replication/logical/logical.c:522 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "\"%s\" 복제 슬롯이 이 데이터베이스 만들어져있지 않음" -#: replication/logical/logical.c:375 +#: replication/logical/logical.c:377 #, c-format msgid "" "cannot create logical replication slot in transaction that has performed " @@ -21499,92 +22018,108 @@ msgid "" msgstr "" "자료 변경 작업이 있는 트랜잭션 안에서는 논리적 복제 슬롯을 만들 수 없음" -#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#: replication/logical/logical.c:540 +#, c-format +msgid "cannot use replication slot \"%s\" for logical decoding" +msgstr "논리적 디코딩에서는 \"%s\" 슬롯을 사용할 수 없음" + +#: replication/logical/logical.c:542 replication/slot.c:798 +#: replication/slot.c:829 +#, c-format +msgid "This replication slot is being synchronized from the primary server." +msgstr "이 복제 슬롯은 해당 주 서버로부터 동기화 되었습니다." + +#: replication/logical/logical.c:543 +#, c-format +msgid "Specify another replication slot." +msgstr "다른 복제 슬롯을 지정하세요." + +#: replication/logical/logical.c:554 replication/logical/logical.c:561 #, c-format msgid "can no longer get changes from replication slot \"%s\"" msgstr "\"%s\" 복제 슬롯에서 변경 사항을 더 찾을 수 없음" -#: replication/logical/logical.c:536 +#: replication/logical/logical.c:556 #, c-format msgid "" "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "최대 예약 크기를 초과해서 이 슬롯은 정상적이지 않은 것으로 바꿨습니다." -#: replication/logical/logical.c:543 +#: replication/logical/logical.c:563 #, c-format msgid "" "This slot has been invalidated because it was conflicting with recovery." msgstr "" -"이 슬롯은 복원 작업으로 충돌이 일어나 사용할 수 없는 것으로 처리했습니다." +"이 슬롯은 복구 작업으로 충돌이 일어나 사용할 수 없는 것으로 처리했습니다." -#: replication/logical/logical.c:608 +#: replication/logical/logical.c:628 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "\"%s\" 이름의 논리적 복제 슬롯을 만드는 중" -#: replication/logical/logical.c:610 +#: replication/logical/logical.c:630 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "" "%X/%X 이후 트랜잭션 커밋 정보를 스트리밍 하는 중, %X/%X 위치부터 WAL 읽는 중" -#: replication/logical/logical.c:758 +#: replication/logical/logical.c:778 #, c-format msgid "" "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "" "슬롯: \"%s\", 출력 플러그인: \"%s\", 해당 콜백함수: %s, 관련 LSN: %X/%X" -#: replication/logical/logical.c:764 +#: replication/logical/logical.c:784 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "슬롯: \"%s\", 출력 플러그인: \"%s\", 해당 콜백함수: %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:955 replication/logical/logical.c:1000 +#: replication/logical/logical.c:1045 replication/logical/logical.c:1091 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "준비 시간에 논리 복제가 %s 콜백을 필요로 합니다." -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1323 replication/logical/logical.c:1372 +#: replication/logical/logical.c:1413 replication/logical/logical.c:1499 +#: replication/logical/logical.c:1548 #, c-format msgid "logical streaming requires a %s callback" msgstr "논리적 스트리밍이 %s 콜백을 필요로 합니다" -#: replication/logical/logical.c:1438 +#: replication/logical/logical.c:1458 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "준비 시간에 논리적 스트리밍이 %s 콜백을 필요로 합니다" -#: replication/logical/logicalfuncs.c:126 +#: replication/logical/logicalfuncs.c:123 #, c-format msgid "slot name must not be null" msgstr "슬롯 이름으로 null 값을 사용할 수 없습니다" -#: replication/logical/logicalfuncs.c:142 +#: replication/logical/logicalfuncs.c:139 #, c-format msgid "options array must not be null" msgstr "옵션 배열은 null 값을 사용할 수 없습니다." -#: replication/logical/logicalfuncs.c:159 +#: replication/logical/logicalfuncs.c:156 #, c-format msgid "array must be one-dimensional" msgstr "배열은 일차원 배열이어야 합니다" -#: replication/logical/logicalfuncs.c:165 +#: replication/logical/logicalfuncs.c:162 #, c-format msgid "array must not contain nulls" msgstr "배열에는 null 값을 포함할 수 없습니다" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420 +#: utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "배열은 그 요소의 개수가 짝수여야 함" -#: replication/logical/logicalfuncs.c:227 +#: replication/logical/logicalfuncs.c:224 #, c-format msgid "" "logical decoding output plugin \"%s\" produces binary output, but function " @@ -21596,9 +22131,10 @@ msgstr "" #: replication/logical/origin.c:190 #, c-format msgid "" -"cannot query or manipulate replication origin when max_replication_slots = 0" +"cannot query or manipulate replication origin when \"max_replication_slots\" " +"is 0" msgstr "" -"max_replication_slots = 0 상황에서는 복제 오리진을 질의하거나 관리할 수 없음" +"\"max_replication_slots\" = 0 상황에서는 복제 오리진을 질의하거나 관리할 수 없음" #: replication/logical/origin.c:195 #, c-format @@ -21632,9 +22168,10 @@ msgstr "복제 체크포인트의 잘못된 매직 번호: %u, 기대값: %u" #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase max_replication_slots" +msgid "" +"could not find free replication state, increase \"max_replication_slots\"" msgstr "" -"사용 가능한 복제 슬롯이 부족합니다. max_replication_slots 값을 늘리세요" +"사용 가능한 복제 슬롯이 부족합니다. \"max_replication_slots\" 값을 늘리세요" #: replication/logical/origin.c:806 #, c-format @@ -21646,57 +22183,57 @@ msgstr "%d 노드 %X/%X 위치로 복제 상태가 복구됨" msgid "replication slot checkpoint has wrong checksum %u, expected %u" msgstr "복제 슬롯 체크포인트의 체크섬 값이 잘못됨: %u, 기대값 %u" -#: replication/logical/origin.c:944 replication/logical/origin.c:1141 +#: replication/logical/origin.c:944 replication/logical/origin.c:1143 #, c-format msgid "replication origin with ID %d is already active for PID %d" msgstr "%d ID의 복제 오리진이 %d PID 프로세스가 사용중입니다." -#: replication/logical/origin.c:955 replication/logical/origin.c:1153 +#: replication/logical/origin.c:955 replication/logical/origin.c:1156 #, c-format msgid "" "could not find free replication state slot for replication origin with ID %d" msgstr "%d ID 복제 오리진을 위한 여유 복제 슬롯을 찾을 수 없음" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 +#: replication/slot.c:2384 #, c-format -msgid "Increase max_replication_slots and try again." -msgstr "max_replication_slots 값을 늘린 후 다시 시도해 보세요" +msgid "Increase \"max_replication_slots\" and try again." +msgstr "\"max_replication_slots\" 값을 늘린 후 다시 시도해 보세요" -#: replication/logical/origin.c:1112 +#: replication/logical/origin.c:1114 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "하나가 이미 설정되어 더 이상 복제 오리진 설정을 할 수 없음" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1199 replication/logical/origin.c:1415 +#: replication/logical/origin.c:1435 #, c-format msgid "no replication origin is configured" msgstr "복제 오리진 설정이 없습니다" -#: replication/logical/origin.c:1282 +#: replication/logical/origin.c:1285 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "\"%s\" 복제 오리진 이름은 사용할 수 없음" -#: replication/logical/origin.c:1284 +#: replication/logical/origin.c:1287 #, c-format msgid "" "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." msgstr "" "\"%s\", \"%s\", \"pg_\"로 시작하는 오리진 이름은 미리 예약된 이름입니다." -#: replication/logical/relation.c:240 +#: replication/logical/relation.c:242 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:245 #, c-format msgid ", \"%s\"" msgstr ", \"%s\"" -#: replication/logical/relation.c:249 +#: replication/logical/relation.c:251 #, c-format msgid "" "logical replication target relation \"%s.%s\" is missing replicated column: " @@ -21706,7 +22243,7 @@ msgid_plural "" "%s" msgstr[0] "\"%s.%s\" 이름의 논리 복제 대상 릴레이션에 관련된 칼럼이 빠졌음: %s" -#: replication/logical/relation.c:304 +#: replication/logical/relation.c:306 #, c-format msgid "" "logical replication target relation \"%s.%s\" uses system columns in REPLICA " @@ -21715,117 +22252,272 @@ msgstr "" "\"%s.%s\" 논리 복제 대상 릴레이션이 REPLICA IDENTITY 인덱스에서 시스템 칼럼" "을 사용하고 있습니다." -#: replication/logical/relation.c:396 +#: replication/logical/relation.c:398 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "\"%s.%s\" 이름의 논리 복제 대상 릴레이션이 없습니다." -#: replication/logical/reorderbuffer.c:3936 +#: replication/logical/reorderbuffer.c:3999 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "%u XID 내용을 데이터 파일에 쓸 수 없음: %m" -#: replication/logical/reorderbuffer.c:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4370 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "reorderbuffer 처리용 파일에서 읽기 실패: %m" -#: replication/logical/reorderbuffer.c:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4349 +#: replication/logical/reorderbuffer.c:4374 #, c-format msgid "" "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "" "reorderbuffer 처리용 파일에서 읽기 실패: %d 바이트 읽음, 기대값 %u 바이트" -#: replication/logical/reorderbuffer.c:4561 +#: replication/logical/reorderbuffer.c:4624 #, 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:5057 +#: replication/logical/reorderbuffer.c:5120 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "\"%s\" 파일에서 읽기 실패: %d 바이트 읽음, 기대값 %d 바이트" -#: replication/logical/snapbuild.c:639 +#: replication/logical/slotsync.c:215 +#, c-format +msgid "" +"could not synchronize replication slot \"%s\" because remote slot precedes " +"local slot" +msgstr "원격 슬롯이 로컬 슬롯 보다 우선이어서 복제 슬롯(\"%s\")을 동기화 할 수 없음" + +#: replication/logical/slotsync.c:217 +#, c-format +msgid "" +"The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has " +"LSN %X/%X and catalog xmin %u." +msgstr "" +"원격 슬롯에는 LSN %X/%X, catalog xmin %u 정보가 있지만, " +"로컬 슬롯은 LSN %X/%X, catalog xmin %u 상태입니다." + +#: replication/logical/slotsync.c:459 +#, c-format +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "\"%s\" 복제 슬롯을 %u OID 데이터베이스에서 삭제했음" + +#: replication/logical/slotsync.c:579 +#, c-format +msgid "could not synchronize replication slot \"%s\"" +msgstr "\"%s\" 복제 슬롯을 동기화 할 수 없음" + +#: replication/logical/slotsync.c:580 +#, c-format +msgid "" +"Logical decoding could not find consistent point from local slot's LSN %X/%X." +msgstr "논리적 디코딩이 로컬 슬롯 %X/%X에서 일관성 위치를 찾지 못함" + +#: replication/logical/slotsync.c:589 +#, c-format +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "새롭게 만들어진 \"%s\" 복제 슬롯은 이제 동기화 준비 상태임" + +#: replication/logical/slotsync.c:628 +#, c-format +msgid "" +"skipping slot synchronization because the received slot sync LSN %X/%X for " +"slot \"%s\" is ahead of the standby position %X/%X" +msgstr "" +"슬롯 동기화가 건너뜀, 수신된 슬롯 동기화 LSN은 %X/%X(해당 슬롯: \"%s\")인데 " +"이는 대기 서버 위치인 %X/%X 보다 앞섭니다." + +#: replication/logical/slotsync.c:650 +#, c-format +msgid "" +"exiting from slot synchronization because same name slot \"%s\" already " +"exists on the standby" +msgstr "" +"\"%s\" 이름의 슬롯이 대기 서버에도 이미 있어, 슬롯 동기화 작업이 이미 있음" + +#: replication/logical/slotsync.c:819 +#, c-format +msgid "could not fetch failover logical slots info from the primary server: %s" +msgstr "주 서버에서 failover 논리 복제 슬롯을 찾지 못했음: %s" + +#: replication/logical/slotsync.c:965 +#, c-format +msgid "" +"could not fetch primary_slot_name \"%s\" info from the primary server: %s" +msgstr "주 서버에서 \"%s\" primary_slot_name을 찾지 못했음: %s" + +#: replication/logical/slotsync.c:967 +#, c-format +msgid "Check if primary_slot_name is configured correctly." +msgstr "primary_slot_name 설정값을 확인하세요." + +#: replication/logical/slotsync.c:987 +#, c-format +msgid "cannot synchronize replication slots from a standby server" +msgstr "대기 서버에서 복제 슬롯을 동기화 할 수 없음" + +#. translator: second %s is a GUC variable name +#: replication/logical/slotsync.c:996 +#, c-format +msgid "" +"replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "\"%s\" 이름의 복제 슬롯(\"%s\" 설정에 지정된)이 주 서버에 없음" + +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1029 +#, c-format +msgid "" +"replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "" +"복제 슬롯 동기화는 \"%s\" 설정을 필요로 합니다. 해당 환경 설정 변수: \"%s\"" + +#: replication/logical/slotsync.c:1050 +#, c-format +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "복제 슬롯 동기화는 \"wal_level\" >= \"logical\" 설정이 필요함" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "복제 슬롯 동기화는 \"%s\" 설정이 필요함" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1077 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "복제 슬롯 동기화는 \"%s\" 설정이 활성화 되어야 함" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1129 +#, c-format +msgid "" +"replication slot synchronization worker will shut down because \"%s\" is " +"disabled" +msgstr "" +"\"%s\" 설정이 비활성화되어 복제 슬롯 동기화 작업이 중지될 것임" + +#: replication/logical/slotsync.c:1138 +#, c-format +msgid "" +"replication slot synchronization worker will restart because of a parameter " +"change" +msgstr "" +"매개 변수가 바뀌어서 복제 슬롯 동기화 작업이 중지될 것임" + +#: replication/logical/slotsync.c:1162 +#, c-format +msgid "" +"replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "" +"SIGINT 신호를 받아 복제 슬롯 동기화 작업자를 종료함" + +#: replication/logical/slotsync.c:1287 +#, c-format +msgid "cannot synchronize replication slots when standby promotion is ongoing" +msgstr "대기 서버가 주 서버로 전환 중이여서 복제 슬롯 동기화를 할 수 없음" + +#: replication/logical/slotsync.c:1295 +#, c-format +msgid "cannot synchronize replication slots concurrently" +msgstr "복제 슬롯을 동시에 동기화 할 수 없음" + +#: replication/logical/slotsync.c:1403 +#, c-format +msgid "slot sync worker started" +msgstr "슬롯 동기화 작업자 시작됨" + +#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 +#: replication/walreceiver.c:307 +#, c-format +msgid "could not connect to the primary server: %s" +msgstr "주 서버에 연결 할 수 없음: %s" + +#: replication/logical/snapbuild.c:653 #, c-format msgid "initial slot snapshot too large" msgstr "초기 슬롯 스냅샷이 너무 큽니다." -#: replication/logical/snapbuild.c:693 +#: replication/logical/snapbuild.c:707 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "" "exported logical decoding snapshot: \"%s\" with %u transaction IDs" msgstr[0] "" +"추출된 논리 디코딩 스냅샷: \"%s\" 스냅샷, %u개 트랜잭션 ID" -#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1996 +#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "논리적 디코딩 이어서 시작할 위치: %X/%X" -#: replication/logical/snapbuild.c:1390 +#: replication/logical/snapbuild.c:1406 #, c-format msgid "There are no running transactions." msgstr "실행할 트랜잭션이 없음" -#: replication/logical/snapbuild.c:1432 +#: replication/logical/snapbuild.c:1453 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "논리적 디코딩 시작 위치: %X/%X" -#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 +#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "(대략 %d개) %u 보다 오래된 트랜잭션이 종료되길 기다리고 있습니다." -#: replication/logical/snapbuild.c:1456 +#: replication/logical/snapbuild.c:1477 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "논리적 디코딩을 이어서 시작할 위치: %X/%X" -#: replication/logical/snapbuild.c:1482 +#: replication/logical/snapbuild.c:1503 #, c-format msgid "There are no old transactions anymore." msgstr "더이상 오래된 트랜잭션이 없습니다." -#: replication/logical/snapbuild.c:1883 +#: replication/logical/snapbuild.c:1904 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "\"%s\" snapbuild 상태 파일의 매직 번호가 이상함: 현재값 %u, 기대값 %u" -#: replication/logical/snapbuild.c:1889 +#: replication/logical/snapbuild.c:1910 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "\"%s\" snapbuild 상태 파일의 버전이 이상함: 현재값 %u, 기대값 %u" -#: replication/logical/snapbuild.c:1930 +#: replication/logical/snapbuild.c:1951 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "" "\"%s\" snapbuild 상태 파일의 체크섬이 일치하지 않음: 조회값 %u, 기대값 %u" -#: replication/logical/snapbuild.c:1998 +#: replication/logical/snapbuild.c:2019 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "저장된 스냅샷을 이용해서 논리적 디코딩을 시작할 것입니다." -#: replication/logical/snapbuild.c:2105 +#: replication/logical/snapbuild.c:2126 #, c-format msgid "could not parse file name \"%s\"" msgstr "\"%s\" 파일 이름을 분석할 수 없음" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:161 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " "table \"%s\" has finished" msgstr "\"%s\" 구독용 논리 복제 테이블 동기화 작업자가, \"%s\" 테이블 완료함" -#: replication/logical/tablesync.c:622 +#: replication/logical/tablesync.c:641 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart so " @@ -21834,44 +22526,44 @@ msgstr "" "two_phase 활성화를 위해 \"%s\" 구독을 위해 논리 복제 적용 작업자가 다시 시작" "됩니다." -#: replication/logical/tablesync.c:797 replication/logical/tablesync.c:939 +#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "\"%s.%s\" 테이블용 테이블 정보를 구할 수 없습니다, 해당 발행: %s" -#: replication/logical/tablesync.c:804 +#: replication/logical/tablesync.c:834 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr " \"%s.%s\" 테이블이 발행 안에 없습니다." -#: replication/logical/tablesync.c:862 +#: replication/logical/tablesync.c:892 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "\"%s.%s\" 테이블용 칼럼 목록 정보를 구할 수 없습니다, 해당 발행: %s" -#: replication/logical/tablesync.c:1041 +#: replication/logical/tablesync.c:1071 #, c-format msgid "" "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: " "%s" msgstr "\"%s.%s\" 테이블용 WHERE 절을 구할 수 없습니다, 해당 발행: %s" -#: replication/logical/tablesync.c:1192 +#: replication/logical/tablesync.c:1230 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "\"%s.%s\" 테이블용 초기 자료 복사를 시작할 수 없습니다: %s" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1429 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "발행 서버에서는 테이블 복사 트랜잭션을 시작할 수 없음: %s" -#: replication/logical/tablesync.c:1435 +#: replication/logical/tablesync.c:1472 #, c-format msgid "replication origin \"%s\" already exists" msgstr "\"%s\" 이름의 복제 오리진이 이미 있습니다." -#: replication/logical/tablesync.c:1468 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 #, c-format msgid "" "user \"%s\" cannot replicate into relation with row-level security enabled: " @@ -21880,18 +22572,18 @@ msgstr "" "\"%s\" 사용자는 로우 수준 보안 활성화 상태에서 릴레이션으로 복제할 수 없음: " "\"%s\"" -#: replication/logical/tablesync.c:1481 +#: replication/logical/tablesync.c:1518 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "발행 서버에서 테이블 복사 트랜잭션을 마칠 수 없음: %s" -#: replication/logical/worker.c:499 +#: replication/logical/worker.c:481 #, c-format msgid "" "logical replication parallel apply worker for subscription \"%s\" will stop" msgstr "\"%s\" 구독을 위한 논리 복제 병렬 반영 작업자가 중지됩니다." -#: replication/logical/worker.c:501 +#: replication/logical/worker.c:483 #, c-format msgid "" "Cannot handle streamed replication transactions using parallel apply workers " @@ -21900,12 +22592,12 @@ msgstr "" "모든 테이블 동기화 끝나기 전까지는 병렬 반영 작업자를 사용하는 스트리밍 복제 " "트랜잭셕은 처리할 수 없습니다." -#: replication/logical/worker.c:863 replication/logical/worker.c:978 +#: replication/logical/worker.c:852 replication/logical/worker.c:967 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "%d 번째 논리 복제 칼럼 안에 잘못된 바이너리 자료 형식 발견됨" -#: replication/logical/worker.c:2513 +#: replication/logical/worker.c:2500 #, c-format msgid "" "publisher did not send replica identity column expected by the logical " @@ -21914,7 +22606,7 @@ msgstr "" "발행 서버에서 \"%s.%s\" 논리 복제 대상 릴레이션의 복제 식별자 칼럼을 보내지 " "않았습니다." -#: replication/logical/worker.c:2520 +#: replication/logical/worker.c:2507 #, c-format msgid "" "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY " @@ -21925,22 +22617,22 @@ msgstr "" "KEY 도 없고, 발행 쪽 해당 테이블에 REPLICA IDENTITY FULL 속성 칼럼도 없습니" "다." -#: replication/logical/worker.c:3384 +#: replication/logical/worker.c:3371 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "잘못된 논리 복제 메시지 형태 \"??? (%d)\"" -#: replication/logical/worker.c:3556 +#: replication/logical/worker.c:3543 #, c-format msgid "data stream from publisher has ended" msgstr "발행 서버로부터의 데이터 스트림이 끝났습니다" -#: replication/logical/worker.c:3713 +#: replication/logical/worker.c:3697 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "시간 제한으로 논리 복제 작업자를 중지합니다." -#: replication/logical/worker.c:3907 +#: replication/logical/worker.c:3891 #, c-format msgid "" "logical replication worker for subscription \"%s\" will stop because the " @@ -21949,7 +22641,7 @@ msgstr "" "\"%s\" 구독이 지워졌기 때문에, 해당 구독용 논리 복제 작업자가 중지 될 것입니" "다." -#: replication/logical/worker.c:3920 +#: replication/logical/worker.c:3905 #, c-format msgid "" "logical replication worker for subscription \"%s\" will stop because the " @@ -21958,7 +22650,7 @@ msgstr "" "\"%s\" 구독이 비활성화 되었기 때문에, 해당 구독용 논리 복제 작업자가 중지 될 " "것입니다." -#: replication/logical/worker.c:3951 +#: replication/logical/worker.c:3936 #, c-format msgid "" "logical replication parallel apply worker for subscription \"%s\" will stop " @@ -21967,7 +22659,7 @@ msgstr "" "매개 변수가 바뀌어서 \"%s\" 구독을 위해 논리 복제 병렬 반영 작업자가 중지 될 " "것입니다." -#: replication/logical/worker.c:3955 +#: replication/logical/worker.c:3940 #, c-format msgid "" "logical replication worker for subscription \"%s\" will restart because of a " @@ -21975,8 +22667,31 @@ msgid "" msgstr "" "매개 변수가 바뀌어서 \"%s\" 구독을 위해 논리 복제 작업자가 중지 될 것입니다." +#: replication/logical/worker.c:3954 +#, c-format +msgid "" +"logical replication parallel apply worker for subscription \"%s\" will stop " +"because the subscription owner's superuser privileges have been revoked" +msgstr "" +"구독 소유주의 슈퍼유저 권한이 회수되어 \"%s\" 구독용 논리 복제 병렬 반영 " +"작업자가 중지 될 것임" + +#: replication/logical/worker.c:3958 +#, c-format +msgid "" +"logical replication worker for subscription \"%s\" will restart because the " +"subscription owner's superuser privileges have been revoked" +msgstr "" +"구독 소유주의 슈퍼유저 권한이 회수되어 \"%s\" 구독용 논리 복제 병렬 반영 " +"작업자가 재실행 될 것임" + #: replication/logical/worker.c:4478 #, c-format +msgid "subscription has no replication slot set" +msgstr "구독에서 사용할 복제 슬롯 세트가 없습니다." + +#: replication/logical/worker.c:4591 +#, c-format msgid "" "logical replication worker for subscription %u will not start because the " "subscription was removed during startup" @@ -21984,7 +22699,7 @@ msgstr "" "해당 구독이 시작하는 사이 지워져서 구독번호 %u 번용 논리 복제 작업자가 작동되" "지 못했습니다." -#: replication/logical/worker.c:4493 +#: replication/logical/worker.c:4607 #, c-format msgid "" "logical replication worker for subscription \"%s\" will not start because " @@ -21992,7 +22707,7 @@ msgid "" msgstr "" "\"%s\" 구독이 시작되는 사이 지워져서 논리 복제 작업자가 작동되지 못했습니다." -#: replication/logical/worker.c:4510 +#: replication/logical/worker.c:4631 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " @@ -22001,124 +22716,125 @@ msgstr "" "\"%s\" 구독, \"%s\" 테이블을 위한 논리 복제 테이블 동기화 작업자가 시작되었습" "니다." -#: replication/logical/worker.c:4515 +#: replication/logical/worker.c:4636 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "\"%s\" 구독을 위한 논리 복제 반영 작업자가 시작되었습니다." -#: replication/logical/worker.c:4590 -#, c-format -msgid "subscription has no replication slot set" -msgstr "구독에서 사용할 복제 슬롯 세트가 없습니다." - -#: replication/logical/worker.c:4757 +#: replication/logical/worker.c:4758 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "\"%s\" 구독이 오류로 비활성화 되었습니다." -#: replication/logical/worker.c:4805 +#: replication/logical/worker.c:4806 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "%X/%X LSN 에서 트랜잭션 건너 뛰어 논리 복제를 시작함" -#: replication/logical/worker.c:4819 +#: replication/logical/worker.c:4820 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "논리 복제가 %X/%X LSN까지 트랜잭션을 건너뛰었습니다." -#: replication/logical/worker.c:4901 +#: replication/logical/worker.c:4902 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "\"%s\" 이름의 구독의 LSN 건너뛰기 완료함" -#: replication/logical/worker.c:4902 +#: replication/logical/worker.c:4903 #, c-format msgid "" "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN " "%X/%X." msgstr "원력 트랜잭션 마침 WAL 위치 %X/%X LSN이 skip-LSN %X/%X와 같지 않음" -#: replication/logical/worker.c:4928 +#: replication/logical/worker.c:4940 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\"" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\"" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\"" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:4944 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" in transaction %u" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" in transaction %u" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 트랜잭션: %u" -#: replication/logical/worker.c:4937 +#: replication/logical/worker.c:4949 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" in transaction %u, finished at %X/%X" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" in transaction %u, finished at %X/%X" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 트랜잭션: %u, 마침 위치: %X/%X" -#: replication/logical/worker.c:4948 +#: replication/logical/worker.c:4960 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" for replication target relation \"%s.%s\" in transaction %u" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" for replication target relation \"%s.%s\" in transaction %u" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 복제 대상 릴레이션: \"%s.%s\", 해당 트랜잭션: %u" -#: replication/logical/worker.c:4955 +#: replication/logical/worker.c:4967 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" for replication target relation \"%s.%s\" in transaction %u, finished at " -"%X/%X" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" for replication target relation \"%s.%s\" in transaction %u, finished " +"at %X/%X" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 복제 대상 릴레이션: \"%s.%s\", 해당 트랜잭션: %u, 마침 위치: %X/%X" -#: replication/logical/worker.c:4966 +#: replication/logical/worker.c:4978 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" for replication target relation \"%s.%s\" column \"%s\" in " +"transaction %u" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 복제 대상 릴레이션: \"%s.%s\", 해당 칼럼 \"%s\", 해당 트랜잭션: %u" -#: replication/logical/worker.c:4974 +#: replication/logical/worker.c:4986 #, c-format msgid "" -"processing remote data for replication origin \"%s\" during message type \"%s" -"\" for replication target relation \"%s.%s\" column \"%s\" in transaction " -"%u, finished at %X/%X" +"processing remote data for replication origin \"%s\" during message type " +"\"%s\" for replication target relation \"%s.%s\" column \"%s\" in " +"transaction %u, finished at %X/%X" msgstr "" "\"%s\" 복제 오리진용 원격 데이터를 처리합니다. 해당 메시지 유형: \"%s\", 해" "당 복제 대상 릴레이션: \"%s.%s\", 해당 칼럼 \"%s\", 해당 트랜잭션: %u, 마침 " "위치: %X/%X" -#: replication/pgoutput/pgoutput.c:318 +#: replication/pgoutput/pgoutput.c:322 #, c-format msgid "invalid proto_version" msgstr "잘못된 proto_version" -#: replication/pgoutput/pgoutput.c:323 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_verson \"%s\" 범위 벗어남" -#: replication/pgoutput/pgoutput.c:340 +#: replication/pgoutput/pgoutput.c:344 #, c-format msgid "invalid publication_names syntax" msgstr "잘못된 publication_names 구문" -#: replication/pgoutput/pgoutput.c:443 +#: replication/pgoutput/pgoutput.c:414 replication/pgoutput/pgoutput.c:418 +#, c-format +msgid "option \"%s\" missing" +msgstr "\"%s\" 옵션 빠졌음" + +#: replication/pgoutput/pgoutput.c:478 #, c-format msgid "" "client sent proto_version=%d but server only supports protocol %d or lower" @@ -22126,7 +22842,7 @@ msgstr "" "클라이언트가 proto_version=%d 값을 보냈지만, %d 버전 또는 그 이하 버전 프로토" "콜만 지원합니다." -#: replication/pgoutput/pgoutput.c:449 +#: replication/pgoutput/pgoutput.c:484 #, c-format msgid "" "client sent proto_version=%d but server only supports protocol %d or higher" @@ -22134,12 +22850,7 @@ msgstr "" "클라이언트가 proto_version=%d 값을 보냈지만, %d 버전 또는 그 이상 버전 프로토" "콜만 지원합니다." -#: replication/pgoutput/pgoutput.c:455 -#, c-format -msgid "publication_names parameter missing" -msgstr "publication_names 매개 변수가 빠졌음" - -#: replication/pgoutput/pgoutput.c:469 +#: replication/pgoutput/pgoutput.c:499 #, c-format msgid "" "requested proto_version=%d does not support streaming, need %d or higher" @@ -22147,7 +22858,7 @@ msgstr "" "요청한 %d 버전 proto_version은 스트리밍을 지원하지 않습니다. %d 또는 그 이상 " "버전이 필요합니다." -#: replication/pgoutput/pgoutput.c:475 +#: replication/pgoutput/pgoutput.c:505 #, c-format msgid "" "requested proto_version=%d does not support parallel streaming, need %d or " @@ -22156,12 +22867,12 @@ msgstr "" "요청한 proto_version=%d 값은 스트리밍을 지원하지 않습니다. %d 또는 그 이상 버" "전이 필요합니다." -#: replication/pgoutput/pgoutput.c:480 +#: replication/pgoutput/pgoutput.c:510 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "스트리밍을 요청했지만, 출력 플러그인이 지원하지 않습니다." -#: replication/pgoutput/pgoutput.c:497 +#: replication/pgoutput/pgoutput.c:524 #, c-format msgid "" "requested proto_version=%d does not support two-phase commit, need %d or " @@ -22170,27 +22881,27 @@ msgstr "" "요청한 proto_version=%d 값은 2PC를 지원하지 않습니다. %d 또는 그 이상 버전이 " "필요합니다." -#: replication/pgoutput/pgoutput.c:502 +#: replication/pgoutput/pgoutput.c:529 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "2PC를 요청했지만, 출력 플러그인이 지원하지 않습니다." -#: replication/slot.c:207 +#: replication/slot.c:260 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "\"%s\" 복제 슬롯 이름이 너무 짧음" -#: replication/slot.c:216 +#: replication/slot.c:269 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "\"%s\" 복제 슬롯 이름이 너무 긺" -#: replication/slot.c:229 +#: replication/slot.c:282 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "\"%s\" 복제 슬롯 이름에 사용할 수 없는 문자가 있음" -#: replication/slot.c:231 +#: replication/slot.c:284 #, c-format msgid "" "Replication slot names may only contain lower case letters, numbers, and the " @@ -22199,193 +22910,314 @@ msgstr "" "복제 슬롯 이름으로 사용할 수 있는 문자는 영문 소문자, 숫자, 밑줄(_) 문자입니" "다." -#: replication/slot.c:285 +#: replication/slot.c:333 +#, c-format +msgid "cannot enable failover for a replication slot created on the standby" +msgstr "대기 서버에서 만들어진 복제 슬롯에는 failover 설정을 활성화 할 수 없음" + +#: replication/slot.c:345 replication/slot.c:849 +#, c-format +msgid "cannot enable failover for a temporary replication slot" +msgstr "임시 복제 슬롯에는 failover 설정을 활성화 할 수 없음" + +#: replication/slot.c:370 #, c-format msgid "replication slot \"%s\" already exists" msgstr "\"%s\" 이름의 복제 슬롯이 이미 있습니다." -#: replication/slot.c:295 +#: replication/slot.c:380 #, c-format msgid "all replication slots are in use" msgstr "모든 복제 슬롯이 사용 중입니다." -#: replication/slot.c:296 +#: replication/slot.c:381 #, c-format -msgid "Free one or increase max_replication_slots." -msgstr "하나를 비우든지, max_replication_slots 설정값을 늘리세요." +msgid "Free one or increase \"max_replication_slots\"." +msgstr "하나를 비우든지, \"max_replication_slots\" 설정값을 늘리세요." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:560 replication/slot.c:2450 replication/slotfuncs.c:661 +#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "\"%s\" 이름의 복제 슬롯이 없습니다" -#: replication/slot.c:520 replication/slot.c:1110 +#: replication/slot.c:606 replication/slot.c:1337 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "\"%s\" 이름의 복제 슬롯을 %d PID 프로세스가 사용중입니다." -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:638 +#, c-format +msgid "acquired logical replication slot \"%s\"" +msgstr "\"%s\" 논리 복제 슬롯을 획득함" + +#: replication/slot.c:640 +#, c-format +msgid "acquired physical replication slot \"%s\"" +msgstr "\"%s\" 물리 복제 슬롯을 획득함" + +#: replication/slot.c:729 +#, c-format +msgid "released logical replication slot \"%s\"" +msgstr "\"%s\" 논리 복제 슬롯을 반환함" + +#: replication/slot.c:731 +#, c-format +msgid "released physical replication slot \"%s\"" +msgstr "\"%s\" 물리 복제 슬롯을 반환함" + +#: replication/slot.c:797 +#, c-format +msgid "cannot drop replication slot \"%s\"" +msgstr "\"%s\" 복제 슬롯을 삭제할 수 없음" + +#: replication/slot.c:816 +#, c-format +msgid "cannot use %s with a physical replication slot" +msgstr "물리 복제 슬롯과 함께 %s 사용할 수 없음" + +#: replication/slot.c:828 +#, c-format +msgid "cannot alter replication slot \"%s\"" +msgstr "\"%s\" 복제 슬롯을 변경 할 수 없음" + +#: replication/slot.c:838 +#, c-format +msgid "cannot enable failover for a replication slot on the standby" +msgstr "대기 서버의 복제 슬롯에는 failover 설정을 활성화 할 수 없음" + +#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 #, c-format msgid "could not remove directory \"%s\"" msgstr "\"%s\" 디렉터리를 삭제할 수 없음" -#: replication/slot.c:1145 +#: replication/slot.c:1372 #, c-format -msgid "replication slots can only be used if max_replication_slots > 0" -msgstr "복제 슬롯은 max_replication_slots > 0 상태에서 사용될 수 있습니다." +msgid "replication slots can only be used if \"max_replication_slots\" > 0" +msgstr "복제 슬롯은 \"max_replication_slots\" > 0 상태에서만 사용할 수 있음" -#: replication/slot.c:1150 +#: replication/slot.c:1377 #, c-format -msgid "replication slots can only be used if wal_level >= replica" -msgstr "복제 슬롯은 wal_level >= replica 상태에서 사용될 수 있습니다." +msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" +msgstr "복제 슬롯은 \"wal_level\" >= \"replica\" 상태에서만 사용할 수 있음" -#: replication/slot.c:1162 +#: replication/slot.c:1389 #, c-format msgid "permission denied to use replication slots" msgstr "복제 슬롯을 사용할 권한 없음" -#: replication/slot.c:1163 +#: replication/slot.c:1390 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "복제 슬롯은 %s 속성을 가진 롤만 사용할 수 있습니다." -#: replication/slot.c:1271 +#: replication/slot.c:1498 #, c-format msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." msgstr[0] "" "해당 슬롯 restart_lsn %X/%X 값은 %llu 바이트로 그 크기를 초과했습니다." -#: replication/slot.c:1279 +#: replication/slot.c:1506 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "해당 슬롯이 xid horizon %u 값으로 충돌합니다." -#: replication/slot.c:1284 +#: replication/slot.c:1511 msgid "" -"Logical decoding on standby requires wal_level >= logical on the primary " -"server." +"Logical decoding on standby requires \"wal_level\" >= \"logical\" on the " +"primary server." msgstr "" -"대기 서버의 논리적 디코딩 기능은 주서버의 wal_level >= logical 설정이 필요합" +"대기 서버의 논리적 디코딩 기능은 주서버의 \"wal_level\" >= \"logical\" 설정이 필요합" "니다." -#: replication/slot.c:1292 +#: replication/slot.c:1519 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "%d번 프로세스를 중지합니다. \"%s\" 복제 슬롯이 삭제될 것입니다." -#: replication/slot.c:1294 +#: replication/slot.c:1521 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "\"%s\" 복제 슬롯이 사용되지 않아 삭제될 것입니다." -#: replication/slot.c:1966 +#: replication/slot.c:2249 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "\"%s\" 복제 슬롯 파일의 매직 번호가 이상합니다: 현재값 %u, 기대값 %u" -#: replication/slot.c:1973 +#: replication/slot.c:2256 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "\"%s\" 복제 슬롯 파일은 지원하지 않는 %u 버전 파일입니다" -#: replication/slot.c:1980 +#: replication/slot.c:2263 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "\"%s\" 복제 슬롯 파일이 %u 길이로 손상되었습니다." -#: replication/slot.c:2016 +#: replication/slot.c:2299 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "\"%s\" 복제 슬롯 파일의 체크섬 값이 이상합니다: 현재값 %u, 기대값 %u" -#: replication/slot.c:2050 +#: replication/slot.c:2333 #, c-format -msgid "logical replication slot \"%s\" exists, but wal_level < logical" -msgstr "\"%s\" 논리 복제 슬롯이 있지만, wal_level < logical" +msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" +msgstr "\"%s\" 논리 복제 슬롯이 있지만, \"wal_level\" < \"logical\" 설정임" -#: replication/slot.c:2052 +#: replication/slot.c:2335 #, c-format -msgid "Change wal_level to be logical or higher." -msgstr "wal_level 값을 logical 또는 그 이상으로 지정하세요." +msgid "Change \"wal_level\" to be \"logical\" or higher." +msgstr "\"wal_level\" 값을 \"logical\" 또는 그 이상으로 지정하세요." -#: replication/slot.c:2056 +#: replication/slot.c:2339 #, c-format -msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "\"%s\" 물리 복제 슬롯이 있지만, wal_level < replica" +msgid "" +"physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" +msgstr "\"%s\" 물리 복제 슬롯이 있지만, \"wal_level\" < \"replica\" 설정임" -#: replication/slot.c:2058 +#: replication/slot.c:2341 #, c-format -msgid "Change wal_level to be replica or higher." -msgstr "wal_level 값을 replica 또는 그 이상으로 지정하세요." +msgid "Change \"wal_level\" to be \"replica\" or higher." +msgstr "\"wal_level\" 값을 \"replica\" 또는 그 이상으로 지정하세요." -#: replication/slot.c:2092 +#: replication/slot.c:2383 #, c-format msgid "too many replication slots active before shutdown" msgstr "서버 중지 전에 너무 많은 복제 슬롯이 활성화 상태입니다" -#: replication/slotfuncs.c:601 +#: replication/slot.c:2458 +#, c-format +msgid "\"%s\" is not a physical replication slot" +msgstr "\"%s\" 슬롯은 물리 복제 슬롯이 아님" + +#: replication/slot.c:2635 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "\"%s\" 복제 슬롯에는 \"%s\" 매개 변수 설정이 없음" + +#: replication/slot.c:2637 replication/slot.c:2671 replication/slot.c:2686 +#, c-format +msgid "" +"Logical replication is waiting on the standby associated with replication " +"slot \"%s\"." +msgstr "논리 복제가 \"%s\" 복제 슬롯과 연결된 대기 서버에서 대기 중" + +#: replication/slot.c:2639 +#, c-format +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "\"%s\" 이름의 복제 슬롯을 만들든가, \"%s\" 설정을 바꾸세요." + +#: replication/slot.c:2649 +#, c-format +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "\"%s\" 논리 복제 슬롯을 \"%s\" 설정에 지정할 수 없음" + +#: replication/slot.c:2651 +#, c-format +msgid "" +"Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "논리 복제가 \"%s\" 복제 슬롯 수정을 기다리고 있습니다." + +#: replication/slot.c:2653 +#, c-format +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "\"%s\" 논리 복제 슬롯을 \"%s\" 설정에서 빼세요." + +#: replication/slot.c:2669 +#, c-format +msgid "" +"physical replication slot \"%s\" specified in parameter \"%s\" has been " +"invalidated" +msgstr "\"%s\" 물리 복제 슬롯이 \"%s\" 설정에서 invalid 상태가 되었음" + +#: replication/slot.c:2673 +#, c-format +msgid "" +"Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "\"%s\" 복제 슬롯을 삭제하고 다시 만들거나, \"%s\" 설정을 바꾸세요." + +#: replication/slot.c:2684 +#, c-format +msgid "" +"replication slot \"%s\" specified in parameter \"%s\" does not have " +"active_pid" +msgstr "\"%s\" 복제 슬롯(\"%s\" 설정에 지정된)에 대응하는 active_pid가 없음" + +#: replication/slot.c:2688 +#, c-format +msgid "" +"Start the standby associated with the replication slot \"%s\", or amend " +"parameter \"%s\"." +msgstr "\"%s\" 복제 슬롯과 관계된 대기 서버를 시작하거나, \"%s\" 설정을 바꾸세요." + +#: replication/slotfuncs.c:526 #, c-format msgid "invalid target WAL LSN" msgstr "잘못된 대상 WAL LSN" -#: replication/slotfuncs.c:623 +#: replication/slotfuncs.c:548 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "\"%s\" 이름의 복제 슬롯은 사용할 수 없음" -#: replication/slotfuncs.c:625 +#: replication/slotfuncs.c:550 #, c-format msgid "" "This slot has never previously reserved WAL, or it has been invalidated." msgstr "이 슬롯은 한 번도 WAL를 예약한 적이 없거나, 잘못된 것임" -#: replication/slotfuncs.c:641 +#: replication/slotfuncs.c:566 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "복제 슬롯 위치를 %X/%X 로 바꿀 수 없습니다. 최소값은 %X/%X" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:673 #, c-format msgid "" "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "물리 복제 슬롯(\"%s\")을 논리 복제 슬롯으로 복사할 수 없음" -#: replication/slotfuncs.c:750 +#: replication/slotfuncs.c:675 #, c-format msgid "" "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "논리 복제 슬롯(\"%s\")을 물리 복제 슬롯으로 복사할 수 없음" -#: replication/slotfuncs.c:757 +#: replication/slotfuncs.c:682 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "WAL을 확보하지 않은 복제 슬롯은 복사할 수 없음" -#: replication/slotfuncs.c:834 +#: replication/slotfuncs.c:768 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "\"%s\" 복제 슬롯을 복사할 수 없음" -#: replication/slotfuncs.c:836 +#: replication/slotfuncs.c:770 #, c-format msgid "" "The source replication slot was modified incompatibly during the copy " "operation." msgstr "복사 작업 중 원본 복제 슬롯이 비정상적으로 변경되었습니다." -#: replication/slotfuncs.c:842 +#: replication/slotfuncs.c:776 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "논리 복제가 끝나지 않은 \"%s\" 슬롯은 복사할 수 없음" -#: replication/slotfuncs.c:844 +#: replication/slotfuncs.c:778 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "원본 복제 슬롯의 confirmed_flush_lsn 값이 타당할 때 다시 시도하세요." -#: replication/syncrep.c:262 +#: replication/slotfuncs.c:877 +#, c-format +msgid "replication slots can only be synchronized to a standby server" +msgstr "복제 슬롯은 대기 서버에만 동기화 될 수 있음" + +#: replication/syncrep.c:261 #, c-format msgid "" "canceling the wait for synchronous replication and terminating connection " @@ -22393,7 +23225,7 @@ msgid "" msgstr "" "관리자 명령에 의해 동기식 복제의 대기 작업과 접속 끊기 작업을 취소합니다." -#: replication/syncrep.c:263 replication/syncrep.c:280 +#: replication/syncrep.c:262 replication/syncrep.c:279 #, c-format msgid "" "The transaction has already committed locally, but might not have been " @@ -22402,209 +23234,204 @@ msgstr "" "주 서버에서는 이 트랜잭션이 커밋되었지만, 복제용 대기 서버에서는 아직 커밋 되" "지 않았을 가능성이 있습니다." -#: replication/syncrep.c:279 +#: replication/syncrep.c:278 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "사용자 요청에 의해 동기식 복제 작업을 취소합니다." -#: replication/syncrep.c:486 +#: replication/syncrep.c:485 #, c-format -msgid "standby \"%s\" is now a synchronous standby with priority %u" -msgstr "\"%s\" 대기 서버의 동기식 복제 우선순위가 %u 로 변경되었습니다." +msgid "standby \"%s\" is now a synchronous standby with priority %d" +msgstr "\"%s\" 대기 서버의 동기식 복제 우선순위가 %d 순위로 변경되었음" -#: replication/syncrep.c:490 +#: replication/syncrep.c:489 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "\"%s\" 대기 서버가 동기식 대기 서버 후보가 되었습니다" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1013 #, c-format -msgid "synchronous_standby_names parser failed" -msgstr "synchronous_standby_names 값을 분석할 수 없음" +msgid "\"synchronous_standby_names\" parser failed" +msgstr "\"synchronous_standby_names\" 값을 분석할 수 없음" -#: replication/syncrep.c:1025 +#: replication/syncrep.c:1019 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "동기식 대기 서버 수 (%d)는 0보다 커야 합니다." -#: replication/walreceiver.c:180 +#: replication/walreceiver.c:176 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "관리자 명령으로 인해 WAL 수신기를 종료합니다." -#: replication/walreceiver.c:305 -#, c-format -msgid "could not connect to the primary server: %s" -msgstr "주 서버에 연결 할 수 없음: %s" - -#: replication/walreceiver.c:352 +#: replication/walreceiver.c:354 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "데이터베이스 시스템 식별번호가 주 서버와 대기 서버가 서로 다름" -#: replication/walreceiver.c:353 +#: replication/walreceiver.c:355 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "주 서버: %s, 대기 서버: %s." -#: replication/walreceiver.c:364 +#: replication/walreceiver.c:366 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "" "주 서버의 제일 최신의 타임라인은 %u 인데, 복구 타임라인 %u 보다 옛것입니다" -#: replication/walreceiver.c:417 +#: replication/walreceiver.c:419 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "주 서버의 WAL 스트리밍 시작 위치: %X/%X (타임라인 %u)" -#: replication/walreceiver.c:421 +#: replication/walreceiver.c:423 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "WAL 스트리밍 재시작 위치: %X/%X (타임라인 %u)" -#: replication/walreceiver.c:457 +#: replication/walreceiver.c:458 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "WAL 스트리밍 계속할 수 없음, 복구가 이미 종료됨" -#: replication/walreceiver.c:501 +#: replication/walreceiver.c:502 #, c-format msgid "replication terminated by primary server" msgstr "주 서버에 의해서 복제가 끝남" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:503 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "타임라인 %u, 위치 %X/%X 에서 WAL 끝에 도달함" -#: replication/walreceiver.c:592 +#: replication/walreceiver.c:593 #, c-format msgid "terminating walreceiver due to timeout" msgstr "시간 제한으로 wal 수신기를 중지합니다." -#: replication/walreceiver.c:624 +#: replication/walreceiver.c:625 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "주 서버에는 요청 받은 %u 타임라인의 WAL가 더 이상 없습니다." -#: replication/walreceiver.c:640 replication/walreceiver.c:1066 +#: replication/walreceiver.c:641 replication/walreceiver.c:1071 #, c-format msgid "could not close WAL segment %s: %m" msgstr "%s WAL 조각 파일을 닫을 수 없음: %m" -#: replication/walreceiver.c:759 +#: replication/walreceiver.c:760 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "주 서버에서 %u 타임라인용 타임라인 내역 파일을 가져옵니다." -#: replication/walreceiver.c:954 +#: replication/walreceiver.c:959 #, c-format -msgid "could not write to WAL segment %s at offset %u, length %lu: %m" -msgstr "%s WAL 조각 파일 쓰기 실패: 위치 %u, 길이 %lu: %m" +msgid "could not write to WAL segment %s at offset %d, length %lu: %m" +msgstr "%s WAL 조각 파일 쓰기 실패: 위치 %d, 길이 %lu: %m" -#: replication/walsender.c:519 +#: replication/walsender.c:531 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "논리 복제 슬롯으로 %s 사용할 수 없음" -#: replication/walsender.c:623 storage/smgr/md.c:1529 +#: replication/walsender.c:635 storage/smgr/md.c:1735 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "\"%s\" 파일의 끝을 찾을 수 없음: %m" -#: replication/walsender.c:627 +#: replication/walsender.c:639 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "\"%s\" 파일에서 시작 위치를 찾을 수 없음: %m" -#: replication/walsender.c:704 +#: replication/walsender.c:853 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "물리적 복제에서 논리적 복제 슬롯을 사용할 수 없음" -#: replication/walsender.c:770 +#: replication/walsender.c:919 #, c-format msgid "" "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "요청된 %X/%X 시작 위치(타임라인 %u)가 이 서버 내역에 없습니다." -#: replication/walsender.c:773 +#: replication/walsender.c:922 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "이 서버의 시작 위치: 타임라인 %u, 위치 %X/%X" -#: replication/walsender.c:817 +#: replication/walsender.c:966 #, c-format msgid "" "requested starting point %X/%X is ahead of the WAL flush position of this " "server %X/%X" msgstr "%X/%X 위치는 서버의 %X/%X 보다 미래의 것입니다." -#: replication/walsender.c:1010 +#: replication/walsender.c:1160 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "\"%s\" CREATE_REPLICATION_SLOT 옵션에서 쓸 수 없는 값: \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1095 +#: replication/walsender.c:1266 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s 명령은 트랜잭션 블럭안에서 실행할 수 없음" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1105 +#: replication/walsender.c:1276 #, c-format msgid "%s must be called inside a transaction" msgstr "%s 명령은 트랜잭션 블럭안에서 실행할 수 있음" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1111 +#: replication/walsender.c:1282 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s 구문은 격리 수준이 REPEATABLE READ 일때만 사용할 수 있습니다." #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1287 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%s 명령은 읽기 전용 트랜잭션 블럭안에서만 실행할 수 있음" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1293 #, c-format msgid "%s must be called before any query" msgstr "어떤 쿼리보다 먼저 %s 명령을 호출해야 함" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1299 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s 명령은 서브트랜잭션 블럭안에서 실행할 수 없음" -#: replication/walsender.c:1275 +#: replication/walsender.c:1472 #, c-format msgid "terminating walsender process after promotion" msgstr "운영전환 뒤 wal 송신기 프로세스를 중지합니다." -#: replication/walsender.c:1696 +#: replication/walsender.c:2000 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "WAL 송신기가 중지 중일 때는 새 명령을 실행할 수 없습니다." -#: replication/walsender.c:1731 +#: replication/walsender.c:2035 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "물리적 복제를 위한 WAL 송신기에서 SQL 명령을 실행할 수 없음" -#: replication/walsender.c:1764 +#: replication/walsender.c:2068 #, c-format msgid "received replication command: %s" msgstr "수신된 복제 명령: %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142 +#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234 +#: tcop/postgres.c:2672 tcop/postgres.c:2749 #, c-format msgid "" "current transaction is aborted, commands ignored until end of transaction " @@ -22613,215 +23440,215 @@ msgstr "" "현재 트랜잭션은 중지되어 있습니다. 이 트랜잭션을 종료하기 전까지는 모든 명령" "이 무시될 것입니다" -#: replication/walsender.c:1914 replication/walsender.c:1949 +#: replication/walsender.c:2233 replication/walsender.c:2268 #, c-format msgid "unexpected EOF on standby connection" msgstr "대기 서버 연결에서 예상치 못한 EOF 발견함" -#: replication/walsender.c:1937 +#: replication/walsender.c:2256 #, c-format msgid "invalid standby message type \"%c\"" msgstr "잘못된 대기 서버 메시지 형태 \"%c\"" -#: replication/walsender.c:2026 +#: replication/walsender.c:2345 #, c-format msgid "unexpected message type \"%c\"" msgstr "예상치 못한 메시지 형태: \"%c\"" -#: replication/walsender.c:2439 +#: replication/walsender.c:2759 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "복제 시간 제한으로 wal 송신기 프로세스를 종료합니다." -#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 +#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "\"%s\" 이름의 룰(rule)이 \"%s\" 테이블에 이미 지정되어있습니다" -#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 +#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773 #, c-format msgid "relation \"%s\" cannot have rules" msgstr "\"%s\" 릴레이션은 룰을 지정할 수 없음" -#: rewrite/rewriteDefine.c:299 +#: rewrite/rewriteDefine.c:292 #, c-format msgid "rule actions on OLD are not implemented" msgstr "OLD에 대한 실행 룰(rule)은 아직 구현되지 않았습니다" -#: rewrite/rewriteDefine.c:300 +#: rewrite/rewriteDefine.c:293 #, c-format msgid "Use views or triggers instead." msgstr "대신에 뷰나 트리거를 사용하십시오." -#: rewrite/rewriteDefine.c:304 +#: rewrite/rewriteDefine.c:297 #, c-format msgid "rule actions on NEW are not implemented" msgstr "NEW에 대한 실행 룰(rule)은 아직 구현되지 않았습니다" -#: rewrite/rewriteDefine.c:305 +#: rewrite/rewriteDefine.c:298 #, c-format msgid "Use triggers instead." msgstr "대신에 트리거를 사용하십시오." -#: rewrite/rewriteDefine.c:319 +#: rewrite/rewriteDefine.c:312 #, c-format msgid "relation \"%s\" cannot have ON SELECT rules" msgstr "\"%s\" 릴레이션은 ON SELECT 룰을 지정할 수 없음" -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "SELECT 에서 INSTEAD NOTHING 룰(rule)은 구현되지 않았습니다" -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:323 #, c-format msgid "Use views instead." msgstr "대신에 뷰를 사용하십시오." -#: rewrite/rewriteDefine.c:338 +#: rewrite/rewriteDefine.c:331 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "SELECT에 대한 다중 실행 룰(rule)은 구현되지 않았습니다" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:341 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "" "SELECT에 대한 룰(rule)은 그 지정에 INSTEAD SELECT 실행규칙을 지정해야만합니다" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:349 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "SELECT 룰에는 WITH 절 안에 자료 변경 구문을 포함할 수 없습니다." -#: rewrite/rewriteDefine.c:364 +#: rewrite/rewriteDefine.c:357 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "" "이벤트 자격(event qualifications)은 SELECT 룰(rule)에서 구현되지 않았습니다" -#: rewrite/rewriteDefine.c:391 +#: rewrite/rewriteDefine.c:384 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" 이름의 뷰가 이미 있습니다" -#: rewrite/rewriteDefine.c:415 +#: rewrite/rewriteDefine.c:408 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "\"%s\" 위한 뷰 룰(view rule)의 이름은 \"%s\" 여야만합니다" -#: rewrite/rewriteDefine.c:442 +#: rewrite/rewriteDefine.c:435 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "하나의 rule에서 여러개의 RETURNING 목록을 지정할 수 없습니다" -#: rewrite/rewriteDefine.c:447 +#: rewrite/rewriteDefine.c:440 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "RETURNING 목록은 conditional rule에서는 지원하지 않습니다" -#: rewrite/rewriteDefine.c:451 +#: rewrite/rewriteDefine.c:444 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "RETURNING 목록은 non-INSTEAD rule에서는 지원하지 않습니다" -#: rewrite/rewriteDefine.c:465 +#: rewrite/rewriteDefine.c:458 #, c-format msgid "non-view rule for \"%s\" must not be named \"%s\"" msgstr "\"%s\" 위한 뷰가 아닌 룰 이름은 \"%s\" 아니여야 합니다." -#: rewrite/rewriteDefine.c:539 +#: rewrite/rewriteDefine.c:532 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "SELECT 룰(rule)의 대상 목록이 너무 많은 엔트리를 가지고 있습니다" -#: rewrite/rewriteDefine.c:540 +#: rewrite/rewriteDefine.c:533 #, c-format msgid "RETURNING list has too many entries" msgstr "RETURNING 목록이 너무 많은 항목를 가지고 있습니다" -#: rewrite/rewriteDefine.c:567 +#: rewrite/rewriteDefine.c:560 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "뷰에서 삭제된 칼럼을 포함하고 있는 릴레이션을 변환할 수 없습니다" -#: rewrite/rewriteDefine.c:568 +#: rewrite/rewriteDefine.c:561 #, c-format msgid "" "cannot create a RETURNING list for a relation containing dropped columns" msgstr "" "릴레이션에 삭제된 칼럼을 포함하고 있는 RETURNING 목록을 만들 수 없습니다." -#: rewrite/rewriteDefine.c:574 +#: rewrite/rewriteDefine.c:567 #, c-format msgid "" "SELECT rule's target entry %d has different column name from column \"%s\"" msgstr "SELECT 룰(rule)의 대상 엔트리 번호가(%d)가 \"%s\" 칼럼 이름과 틀립니다" -#: rewrite/rewriteDefine.c:576 +#: rewrite/rewriteDefine.c:569 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "SELECT 대상 엔트리 이름은 \"%s\" 입니다." -#: rewrite/rewriteDefine.c:585 +#: rewrite/rewriteDefine.c:578 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "SELECT 룰(rule)의 대상 엔트리 번호(%d)가 \"%s\" 칼럼 자료형과 틀립니다" -#: rewrite/rewriteDefine.c:587 +#: rewrite/rewriteDefine.c:580 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "RETURNING 목록의 %d번째 항목의 자료형이 \"%s\" 칼럼 자료형과 틀립니다" -#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614 +#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "SELECT 대상 엔트리 자료형은 %s 형이지만, 칼럼 자료형은 %s 형입니다." -#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618 +#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "RETURNING 목록은 %s 자료형이지만, 칼럼 자료형은 %s 형입니다." -#: rewrite/rewriteDefine.c:609 +#: rewrite/rewriteDefine.c:602 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "SELECT 룰(rule)의 대상 엔트리 번호(%d)가 \"%s\" 칼럼 크기와 틀립니다" -#: rewrite/rewriteDefine.c:611 +#: rewrite/rewriteDefine.c:604 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "RETURNING 목록의 %d번째 항목의 크기가 \"%s\" 칼럼 크기와 틀립니다" -#: rewrite/rewriteDefine.c:628 +#: rewrite/rewriteDefine.c:621 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "SELECT 룰(rule)의 대상 목록이 너무 적은 엔트리를 가지고 있습니다" -#: rewrite/rewriteDefine.c:629 +#: rewrite/rewriteDefine.c:622 #, c-format msgid "RETURNING list has too few entries" msgstr "RETURNING 목록에 너무 적은 항목이 있습니다" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826 +#: rewrite/rewriteSupport.c:108 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr " \"%s\" 룰(rule)이 \"%s\" 관계(relation)에 지정된 것이 없음" -#: rewrite/rewriteDefine.c:852 +#: rewrite/rewriteDefine.c:845 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "ON SELECT 룰의 이름 바꾸기는 허용하지 않습니다" -#: rewrite/rewriteHandler.c:583 +#: rewrite/rewriteHandler.c:588 #, c-format msgid "" "WITH query name \"%s\" appears in both a rule action and the query being " "rewritten" msgstr "\"%s\" 이름의 WITH 쿼리가 룰 동작과 쿼리 재작성 두 곳 모두에 보입니다." -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:615 #, c-format msgid "" "INSERT ... SELECT rule actions are not supported for queries having data-" @@ -22829,107 +23656,117 @@ msgid "" msgstr "" "INSERT...SELECT 룰 액션에는 WITH 절 안에 자료 변경 구문을 지원하지 않습니다." -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:668 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "multiple rule에 RETURNING 목록을 지정할 수 없습니다" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:939 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "\"%s\" 칼럼에 non-DEFAULT 값을 입력할 수 없습니다" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:902 rewrite/rewriteHandler.c:968 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "\"%s\" 칼럼은 GENERATED ALWAYS 속성의 식별자 칼럼입니다." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:904 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "이 속성을 무시하려면, OVERRIDING SYSTEM VALUE 옵션을 사용하세요." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:966 rewrite/rewriteHandler.c:974 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "\"%s\" 칼럼은 DEFAULT 로만 업데이트 가능합니다" -#: rewrite/rewriteHandler.c:1116 rewrite/rewriteHandler.c:1134 +#: rewrite/rewriteHandler.c:1121 rewrite/rewriteHandler.c:1139 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "같은 \"%s\" 열에 지정값(assignment)이 중복되었습니다" -#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4040 +#: rewrite/rewriteHandler.c:1704 +#, c-format +msgid "MERGE is not supported for relations with rules." +msgstr "MERGE 명령은 룰을 사용하는 릴레이션에서 사용할 수 없습니다." + +#: rewrite/rewriteHandler.c:1744 rewrite/rewriteHandler.c:3284 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "\"%s\"는 non-system 뷰로 접근이 제한됨" + +#: rewrite/rewriteHandler.c:2144 rewrite/rewriteHandler.c:4276 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "" "\"%s\" 릴레이션(relation)에서 지정된 룰에서 잘못된 재귀호출이 발견되었습니다" -#: rewrite/rewriteHandler.c:2204 +#: rewrite/rewriteHandler.c:2249 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "\"%s\" 릴레이션의 정책에서 무한 재귀 호출이 발견 됨" -#: rewrite/rewriteHandler.c:2524 +#: rewrite/rewriteHandler.c:2611 msgid "Junk view columns are not updatable." msgstr "정크 뷰 칼럼은 업데이트할 수 없습니다." -#: rewrite/rewriteHandler.c:2529 +#: rewrite/rewriteHandler.c:2616 msgid "" "View columns that are not columns of their base relation are not updatable." msgstr "" "뷰의 바탕이 되는 릴레이션의 칼럼이 아닌 뷰 칼럼은 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2532 +#: rewrite/rewriteHandler.c:2619 msgid "View columns that refer to system columns are not updatable." msgstr "시스템 칼럼이 원본인 뷰 칼럼은 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2535 +#: rewrite/rewriteHandler.c:2622 msgid "View columns that return whole-row references are not updatable." msgstr "로우 전체를 참조하는 뷰 칼럼은 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2596 +#: rewrite/rewriteHandler.c:2683 msgid "Views containing DISTINCT are not automatically updatable." msgstr "DISTINCT 조건이 있는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2686 msgid "Views containing GROUP BY are not automatically updatable." msgstr "GROUP BY 절이 있는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2689 msgid "Views containing HAVING are not automatically updatable." msgstr "HAVING 절이 있는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2692 msgid "" "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "" "UNION, INTERSECT, EXCEPT를 포함하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2608 +#: rewrite/rewriteHandler.c:2695 msgid "Views containing WITH are not automatically updatable." msgstr "WITH 절을 포함하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2611 +#: rewrite/rewriteHandler.c:2698 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "" "LIMIT 또는 OFFSET 구문을 포함하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2623 +#: rewrite/rewriteHandler.c:2710 msgid "Views that return aggregate functions are not automatically updatable." msgstr "집계 함수를 반환하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2626 +#: rewrite/rewriteHandler.c:2713 msgid "Views that return window functions are not automatically updatable." msgstr "윈도우 함수를 반환하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2629 +#: rewrite/rewriteHandler.c:2716 msgid "" "Views that return set-returning functions are not automatically updatable." msgstr "집합 반환 함수를 반환하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 -#: rewrite/rewriteHandler.c:2648 +#: rewrite/rewriteHandler.c:2723 rewrite/rewriteHandler.c:2727 +#: rewrite/rewriteHandler.c:2735 msgid "" "Views that do not select from a single table or view are not automatically " "updatable." @@ -22937,32 +23774,122 @@ msgstr "" "단일 테이블 또는 단일 뷰를 SELECT 하지 않는 뷰는 자동으로 업데이트 될 수 없습" "니다." -#: rewrite/rewriteHandler.c:2651 +#: rewrite/rewriteHandler.c:2738 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "TABLESAMPLE 구문을 포함하는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2762 msgid "Views that have no updatable columns are not automatically updatable." msgstr "업데이트 가능한 칼럼이 없는 뷰는 자동으로 업데이트 될 수 없습니다." -#: rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:3143 rewrite/rewriteHandler.c:3178 +#, c-format +msgid "cannot insert into view \"%s\"" +msgstr "\"%s\" 뷰에 자료를 입력할 수 없습니다" + +#: rewrite/rewriteHandler.c:3146 +#, c-format +msgid "" +"To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " +"an unconditional ON INSERT DO INSTEAD rule." +msgstr "" +"뷰를 통해 자료를 입력하려면, INSTEAD OF INSERT 트리거나 ON INSERT DO INSTEAD " +"룰을 사용하세요" + +#: rewrite/rewriteHandler.c:3151 rewrite/rewriteHandler.c:3187 +#, c-format +msgid "cannot update view \"%s\"" +msgstr "\"%s\" 뷰로는 자료를 갱신할 수 없습니다" + +#: rewrite/rewriteHandler.c:3154 +#, c-format +msgid "" +"To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " +"unconditional ON UPDATE DO INSTEAD rule." +msgstr "" +"뷰 자료 갱신 기능은 INSTEAD OF UPDATE 트리거를 사용하거나, ON UPDATE DO " +"INSTEAD 속성으로 룰을 만들어서 사용해 보세요." + +#: rewrite/rewriteHandler.c:3159 rewrite/rewriteHandler.c:3196 +#, c-format +msgid "cannot delete from view \"%s\"" +msgstr "\"%s\" 뷰로는 자료를 삭제할 수 없습니다" + +#: rewrite/rewriteHandler.c:3162 +#, c-format +msgid "" +"To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " +"unconditional ON DELETE DO INSTEAD rule." +msgstr "" +"뷰 자료 삭제 기능은 INSTEAD OF DELETE 트리거를 사용하거나, ON DELETE DO " +"INSTEAD 속성으로 룰을 만들어서 사용해 보세요." + +#: rewrite/rewriteHandler.c:3181 +#, c-format +msgid "" +"To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT " +"trigger." +msgstr "뷰를 통해 자료를 입력하려면, MERGE나 INSTEAD OF INSERT 트리거를 사용하세요" + +#: rewrite/rewriteHandler.c:3190 +#, c-format +msgid "" +"To enable updating the view using MERGE, provide an INSTEAD OF UPDATE " +"trigger." +msgstr "뷰를 통해 자료를 변경하려면, MERGE나 INSTEAD OF INSERT 트리거를 사용하세요" + +#: rewrite/rewriteHandler.c:3199 +#, c-format +msgid "" +"To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE " +"trigger." +msgstr "뷰를 통해 자료를 삭제하려면, MERGE나 INSTEAD OF INSERT 트리거를 사용하세요" + +#: rewrite/rewriteHandler.c:3374 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "\"%s\" 칼럼 (해당 뷰: \"%s\")에 자료를 입력할 수 없습니다" -#: rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:3382 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "\"%s\" 칼럼 (해당 뷰: \"%s\")에 자료를 갱신할 수 없습니다" -#: rewrite/rewriteHandler.c:3667 +#: rewrite/rewriteHandler.c:3390 +#, c-format +msgid "cannot merge into column \"%s\" of view \"%s\"" +msgstr "\"%s\" 칼럼 (해당 뷰: \"%s\")에 병합할 수 없음" + +#: rewrite/rewriteHandler.c:3418 +#, c-format +msgid "cannot merge into view \"%s\"" +msgstr "\"%s\" 뷰에 병합할 수 없음" + +#: rewrite/rewriteHandler.c:3420 +#, c-format +msgid "" +"MERGE is not supported for views with INSTEAD OF triggers for some actions " +"but not all." +msgstr "" +"MERGE 명령은 몇몇 action용 INSTEAD OF 트리거가 있는 뷰를 지원하지 않음" + +#: rewrite/rewriteHandler.c:3421 +#, c-format +msgid "" +"To enable merging into the view, either provide a full set of INSTEAD OF " +"triggers or drop the existing INSTEAD OF triggers." +msgstr "" +"뷰에 병합을 활성화하려면 INSTEAD OF 트리거의 전체 세트를 제공하거나 " +"기존 INSTEAD OF 트리거를 삭제하세요" + +#: rewrite/rewriteHandler.c:3934 #, c-format msgid "" "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in " "WITH" msgstr "DO INSTEAD NOTIFY 룰에서는 WITH 절 안에 자료 변경 구문이 없어야 합니다" -#: rewrite/rewriteHandler.c:3678 +#: rewrite/rewriteHandler.c:3945 #, c-format msgid "" "DO INSTEAD NOTHING rules are not supported for data-modifying statements in " @@ -22970,19 +23897,19 @@ msgid "" msgstr "" "DO INSTEAD NOTHING 룰에서는 WITH 절 안에 자료 변경 구문이 없어야 합니다" -#: rewrite/rewriteHandler.c:3692 +#: rewrite/rewriteHandler.c:3959 #, c-format msgid "" "conditional DO INSTEAD rules are not supported for data-modifying statements " "in WITH" msgstr "선택적 DO INSTEAD 룰에서는 WITH 절 안에 자료 변경 구문이 없어야 합니다" -#: rewrite/rewriteHandler.c:3696 +#: rewrite/rewriteHandler.c:3963 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "DO ALSO 룰에서는 WITH 절 안에 자료 변경 구문이 없어야 합니다" -#: rewrite/rewriteHandler.c:3701 +#: rewrite/rewriteHandler.c:3968 #, c-format msgid "" "multi-statement DO INSTEAD rules are not supported for data-modifying " @@ -22991,20 +23918,18 @@ msgstr "" "여러 구문으로 구성된 DO INSTEAD 룰에서는 WITH 절 안에 자료 변경 구문이 없어" "야 합니다" -#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 -#: rewrite/rewriteHandler.c:3984 -#, c-format +#: rewrite/rewriteHandler.c:4228 msgid "" "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "" "선택적 DO INSTEAD 룰을 포함한 뷰는 자동 업데이트 기능을 사용할 수 없습니다." -#: rewrite/rewriteHandler.c:4089 +#: rewrite/rewriteHandler.c:4325 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "\"%s\" 릴레이션에서 INSERT RETURNING 관련을 구성할 수 없음" -#: rewrite/rewriteHandler.c:4091 +#: rewrite/rewriteHandler.c:4327 #, c-format msgid "" "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." @@ -23012,12 +23937,12 @@ msgstr "" "RETURNING 절에서는 무조건 ON INSERT DO INSTEAD 속성으로 rule이 사용되어야 합" "니다." -#: rewrite/rewriteHandler.c:4096 +#: rewrite/rewriteHandler.c:4332 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "\"%s\" 릴레이션에서 UPDATE RETURNING 관련을 구성할 수 없습니다." -#: rewrite/rewriteHandler.c:4098 +#: rewrite/rewriteHandler.c:4334 #, c-format msgid "" "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." @@ -23025,12 +23950,12 @@ msgstr "" "RETURNING 절에서는 무조건 ON UPDATE DO INSTEAD 속성으로 rule이 사용되어야 합" "니다." -#: rewrite/rewriteHandler.c:4103 +#: rewrite/rewriteHandler.c:4339 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "\"%s\" 릴레이션에서 DELETE RETURNING 관련을 구성할 수 없습니다." -#: rewrite/rewriteHandler.c:4105 +#: rewrite/rewriteHandler.c:4341 #, c-format msgid "" "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." @@ -23038,7 +23963,7 @@ msgstr "" "TURNING 절에서는 무조건 ON DELETE DO INSTEAD 속성으로 rule이 사용되어야 합니" "다" -#: rewrite/rewriteHandler.c:4123 +#: rewrite/rewriteHandler.c:4359 #, c-format msgid "" "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or " @@ -23047,7 +23972,7 @@ msgstr "" "INSERT 또는 UPDATE 룰이 지정된 테이블을 대상으로 INSERT ... ON CONFLICT 구문" "은 사용할 수 없습니다." -#: rewrite/rewriteHandler.c:4180 +#: rewrite/rewriteHandler.c:4416 #, c-format msgid "" "WITH cannot be used in a query that is rewritten by rules into multiple " @@ -23056,19 +23981,19 @@ msgstr "" "WITH 절은 다중 쿼리 작업을 하는 룰로 재작성되는 쿼리 안에서는 사용할 수 없습" "니다." -#: rewrite/rewriteManip.c:1075 +#: rewrite/rewriteManip.c:1083 #, c-format msgid "conditional utility statements are not implemented" msgstr "" "조건 유틸리티 명령 구문(conditional utility statement)은 구현되어있지 않습니" "다" -#: rewrite/rewriteManip.c:1419 +#: rewrite/rewriteManip.c:1430 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "뷰에 대한 WHERE CURRENT OF 구문이 구현되지 않음" -#: rewrite/rewriteManip.c:1754 +#: rewrite/rewriteManip.c:1765 #, c-format msgid "" "NEW variables in ON UPDATE rules cannot reference columns that are part of a " @@ -23112,84 +24037,79 @@ msgstr "인식할 수 없는 Snowball 매개 변수: \"%s\"" msgid "missing Language parameter" msgstr "Language 매개 변수가 누락됨" -#: statistics/extended_stats.c:179 +#: statistics/extended_stats.c:176 #, c-format msgid "" "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "\"%s.%s\" 통계정보 개체를 계산 할 수 없음: 대상 릴레이션: \"%s.%s\"" -#: statistics/mcv.c:1372 +#: statistics/mcv.c:1368 #, c-format msgid "" "function returning record called in context that cannot accept type record" msgstr "반환 자료형이 record인데 함수가 그 자료형으로 반환하지 않음" -#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 +#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "다른 세션의 임시 테이블에 액세스할 수 없음" -#: storage/buffer/bufmgr.c:1137 +#: storage/buffer/bufmgr.c:1532 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "" "%u 블록(해당 릴레이션: %s)에 잘못된 페이지 헤더가 있음, 페이지를 삭제하는 중" -#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359 +#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "%s 릴레이션은 %u개 블록을 초과하여 확장할 수 없음" -#: storage/buffer/bufmgr.c:1998 +#: storage/buffer/bufmgr.c:2348 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "%u 블록(해당 릴레이션: %s)에 EOF 범위를 넘는 예기치 않은 데이터가 있음" -#: storage/buffer/bufmgr.c:2000 +#: storage/buffer/bufmgr.c:2350 #, c-format msgid "" "This has been seen to occur with buggy kernels; consider updating your " "system." msgstr "이 문제는 커널의 문제로 알려졌습니다. 시스템을 업데이트하십시오." -#: storage/buffer/bufmgr.c:5219 +#: storage/buffer/bufmgr.c:5653 #, c-format msgid "could not write block %u of %s" msgstr "%u/%s 블록을 쓸 수 없음" -#: storage/buffer/bufmgr.c:5221 +#: storage/buffer/bufmgr.c:5655 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "여러 번 실패 --- 쓰기 오류가 영구적일 수 있습니다." -#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 +#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 #, c-format msgid "writing block %u of relation %s" msgstr "%u 블록(해당 릴레이션: %s)을 쓰는 중" -#: storage/buffer/bufmgr.c:5593 -#, c-format -msgid "snapshot too old" -msgstr "스냅샷 너무 오래됨" - -#: storage/buffer/localbuf.c:219 +#: storage/buffer/localbuf.c:220 #, c-format msgid "no empty local buffer available" msgstr "비어 있는 로컬 버퍼가 없습니다" -#: storage/buffer/localbuf.c:592 +#: storage/buffer/localbuf.c:597 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "병렬 작업 중에 임시 테이블에 액세스할 수 없음" -#: storage/buffer/localbuf.c:699 +#: storage/buffer/localbuf.c:712 #, c-format msgid "" "\"temp_buffers\" cannot be changed after any temporary tables have been " "accessed in the session." msgstr "" "해당 세션에서 어떤 임시 테이블도 사용하고 있지 않아야 \"temp_buffers\" 설정" -"을 변경할 수 있습니다." +"을 바꿀 수 있습니다." #: storage/file/buffile.c:338 #, c-format @@ -23206,43 +24126,43 @@ msgstr "\"%s\" 파일 세트를 읽을 수 없음: %zu 바이트만 읽음 (전 msgid "could not read from temporary file: read only %zu of %zu bytes" msgstr "임시 파일을 읽을 수 없음: %zu 바이트만 읽음 (전체: %zu)" -#: storage/file/buffile.c:774 storage/file/buffile.c:895 +#: storage/file/buffile.c:774 storage/file/buffile.c:877 #, c-format msgid "" "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "\"%s\" 임시 파일의 크기를 알 수 없음, 버퍼파일: \"%s\": %m" -#: storage/file/buffile.c:974 +#: storage/file/buffile.c:956 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "\"%s\" 파일 세트를 지울 수 없음: %m" -#: storage/file/buffile.c:992 storage/smgr/md.c:338 storage/smgr/md.c:1041 +#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1194 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "\"%s\" 파일을 비울 수 없음: %m" -#: storage/file/fd.c:537 storage/file/fd.c:609 storage/file/fd.c:645 +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" msgstr "dirty 자료를 flush 할 수 없음: %m" -#: storage/file/fd.c:567 +#: storage/file/fd.c:613 #, c-format msgid "could not determine dirty data size: %m" msgstr "dirty 자료 크기를 확인할 수 없음: %m" -#: storage/file/fd.c:619 +#: storage/file/fd.c:665 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "자료 flush 작업 도중 munmap() 호출 실패: %m" -#: storage/file/fd.c:937 +#: storage/file/fd.c:983 #, c-format msgid "getrlimit failed: %m" msgstr "getrlimit 실패: %m" -#: storage/file/fd.c:1027 +#: storage/file/fd.c:1073 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "" @@ -23250,91 +24170,86 @@ msgstr "" "그램에서 너무 많은 파일을 열어 두고 있습니다. 다른 프로그램들을 좀 닫고 다시 " "시도해 보십시오" -#: storage/file/fd.c:1028 +#: storage/file/fd.c:1074 #, c-format msgid "System allows %d, server needs at least %d." msgstr "시스템 허용치 %d, 서버 최소 허용치 %d." -#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 -#: storage/file/fd.c:2825 +#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 +#: storage/file/fd.c:2878 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "" "열려 있는 파일이 너무 많습니다: %m; 다른 프로그램들을 좀 닫고 다시 시도해 보" "십시오" -#: storage/file/fd.c:1490 +#: storage/file/fd.c:1536 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "임시 파일: 경로 \"%s\", 크기 %lu" -#: storage/file/fd.c:1629 +#: storage/file/fd.c:1675 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "\"%s\" 임시 디렉터리를 만들 수 없음: %m" -#: storage/file/fd.c:1636 +#: storage/file/fd.c:1682 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "\"%s\" 임시 하위 디렉터리를 만들 수 없음: %m" -#: storage/file/fd.c:1833 +#: storage/file/fd.c:1879 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "\"%s\" 임시 파일을 만들 수 없습니다: %m" -#: storage/file/fd.c:1869 +#: storage/file/fd.c:1915 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "\"%s\" 임시 파일을 열 수 없음: %m" -#: storage/file/fd.c:1910 +#: storage/file/fd.c:1956 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "\"%s\" 임시 파일을 지울 수 없음: %m" -#: storage/file/fd.c:1998 +#: storage/file/fd.c:2044 #, c-format msgid "could not delete file \"%s\": %m" msgstr "\"%s\" 파일을 지울 수 없음: %m" -#: storage/file/fd.c:2185 +#: storage/file/fd.c:2234 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "임시 파일 크기가 temp_file_limit (%dkB)를 초과했습니다" -#: storage/file/fd.c:2541 storage/file/fd.c:2600 +#: storage/file/fd.c:2594 storage/file/fd.c:2653 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "maxAllocatedDescs (%d) 초과됨, \"%s\" 파일 열기 시도 중에." -#: storage/file/fd.c:2645 +#: storage/file/fd.c:2698 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "maxAllocatedDescs (%d) 초과됨, \"%s\" 명령을 시도 중에." -#: storage/file/fd.c:2801 +#: storage/file/fd.c:2854 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "maxAllocatedDescs (%d) 초과됨, \"%s\" 디렉터리 열기 시도 중에." -#: storage/file/fd.c:3331 +#: storage/file/fd.c:3384 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "임시 디렉터리에서 예상치 못한 파일 발견: \"%s\"" -#: storage/file/fd.c:3449 +#: storage/file/fd.c:3502 #, c-format msgid "" "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "데이터 디렉터리 동기화(syncfs), 소요 시간: %ld.%02d s, 현재 경로: %s" -#: storage/file/fd.c:3463 -#, c-format -msgid "could not synchronize file system for file \"%s\": %m" -msgstr "\"%s\" 파일 대상으로 파일 시스템 동기화를 할 수 없습니다: %m" - -#: storage/file/fd.c:3676 +#: storage/file/fd.c:3729 #, c-format msgid "" "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: " @@ -23342,29 +24257,40 @@ msgid "" msgstr "" "데이터 디렉터리 동기화(pre-fsync), 소요 시간: %ld.%02d s, 현재 경로: %s" -#: storage/file/fd.c:3708 +#: storage/file/fd.c:3761 #, c-format msgid "" "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "데이터 디렉터리 동기화(fsync), 소요 시간: %ld.%02d s, 현재 경로: %s" -#: storage/file/fd.c:3897 +#: storage/file/fd.c:3950 +#, c-format +msgid "\"debug_io_direct\" is not supported on this platform." +msgstr "\"debug_io_direct\" 설정은 이 플랫폼에서 지원되지 않음" + +#: storage/file/fd.c:3964 +#, c-format +msgid "Invalid list syntax in parameter \"%s\"" +msgstr "\"%s\" 매개 변수의 값으로 목록 문법이 잘못됨" + +#: storage/file/fd.c:3984 #, c-format -msgid "debug_io_direct is not supported on this platform." -msgstr "debug_io_direct 설정은 이 플랫폼에서 지원되지 않음" +msgid "Invalid option \"%s\"" +msgstr "\"%s\" 옵션이 잘못됨" -#: storage/file/fd.c:3944 +#: storage/file/fd.c:3997 #, c-format msgid "" -"debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" +"\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" msgstr "" -"XLOG_BLCKSZ 값이 너무 작은 WAL을 사용하고 있어 debug_io_direct 기능을 지원하" +"XLOG_BLCKSZ 값이 너무 작은 WAL을 사용하고 있어 \"debug_io_direct\" 기능을 지원하" "지 않습니다." -#: storage/file/fd.c:3951 +#: storage/file/fd.c:4004 #, c-format -msgid "debug_io_direct is not supported for data because BLCKSZ is too small" -msgstr "BLCKSZ 값이 너무 작아 debug_io_direct 기능을 지원하지 않습니다." +msgid "" +"\"debug_io_direct\" is not supported for data because BLCKSZ is too small" +msgstr "BLCKSZ 값이 너무 작아 \"debug_io_direct\" 기능을 지원하지 않습니다." #: storage/file/reinit.c:145 #, c-format @@ -23382,22 +24308,22 @@ msgid "" msgstr "" "로그 안남기는 릴레이션 재설정 (cleanup), 소요 시간: %ld.%02d s, 현재 경로: %s" -#: storage/file/sharedfileset.c:79 +#: storage/file/sharedfileset.c:73 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "SharedFileSet 확보 실패, 이미 삭제되었음" -#: storage/ipc/dsm.c:352 +#: storage/ipc/dsm.c:379 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "동적 공유 메모리 제어 조각이 손상되었음" -#: storage/ipc/dsm.c:417 +#: storage/ipc/dsm.c:444 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "동적 공유 메모리 제어 조각이 타당하지 않음" -#: storage/ipc/dsm.c:599 +#: storage/ipc/dsm.c:626 #, c-format msgid "too many dynamic shared memory segments" msgstr "너무 많은 동적 공유 메모리 조각이 있음" @@ -23457,18 +24383,44 @@ msgstr "\"%s\" 공유 메모리 조각을 닫을 수 없음: %m" msgid "could not duplicate handle for \"%s\": %m" msgstr "\"%s\" 용 헨들러를 이중화 할 수 없음: %m" -#: storage/ipc/procarray.c:3796 +#: storage/ipc/dsm_registry.c:142 +#, c-format +msgid "DSM segment name cannot be empty" +msgstr "DSM 조각 이름은 비워둘 수 없음" + +#: storage/ipc/dsm_registry.c:146 +#, c-format +msgid "DSM segment name too long" +msgstr "DSM 조각 이름이 너무 긺" + +#: storage/ipc/dsm_registry.c:150 +#, c-format +msgid "DSM segment size must be nonzero" +msgstr "DSM 조각 크기는 0이 아니여야 함" + +#: storage/ipc/dsm_registry.c:176 +#, c-format +msgid "requested DSM segment size does not match size of existing segment" +msgstr "요청된 DSM 조각 크기는 기존 조각 크기와 맞지 않음" + +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:357 +#: tcop/backend_startup.c:304 +#, c-format +msgid "sorry, too many clients already" +msgstr "최대 동시 접속자 수를 초과했습니다." + +#: storage/ipc/procarray.c:3857 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "\"%s\" 데이터베이스가 미리 준비된 트랜잭션에서 사용중임" -#: storage/ipc/procarray.c:3828 storage/ipc/procarray.c:3837 -#: storage/ipc/signalfuncs.c:230 storage/ipc/signalfuncs.c:237 +#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901 +#: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format msgid "permission denied to terminate process" msgstr "프로세스 종료 권한 없음" -#: storage/ipc/procarray.c:3829 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236 #, c-format msgid "" "Only roles with the %s attribute may terminate processes of roles with the " @@ -23476,50 +24428,50 @@ msgid "" msgstr "" "%s 속성이 있는 롤만이 %s 속성을 가진 롤이 실행한 쿼리를 중지 할 수 있습니다." -#: storage/ipc/procarray.c:3838 storage/ipc/signalfuncs.c:238 +#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243 #, c-format msgid "" "Only roles with privileges of the role whose process is being terminated or " "with privileges of the \"%s\" role may terminate this process." msgstr "\"%s\" 롤 권한이 있는 롤만 프로세스를 종료할 수 있습니다." -#: storage/ipc/procsignal.c:420 +#: storage/ipc/procsignal.c:416 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "" "%d PID 백엔드 프로세스가 ProcSignalBarrier 작업을 수락하기를 기다리고 있음" -#: storage/ipc/shm_mq.c:384 +#: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" msgstr "공유 메모리 큐를 통해 %zu 크기의 메시지를 보낼 수 없음" -#: storage/ipc/shm_mq.c:719 +#: storage/ipc/shm_mq.c:718 #, c-format msgid "invalid message size %zu in shared memory queue" msgstr "동적 공유 메모리 큐에 메시지 길이(%zu)가 잘못됨" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 -#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 -#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984 +#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2835 storage/lmgr/lock.c:4220 +#: storage/lmgr/lock.c:4285 storage/lmgr/lock.c:4635 +#: storage/lmgr/predicate.c:2468 storage/lmgr/predicate.c:2483 +#: storage/lmgr/predicate.c:3880 storage/lmgr/predicate.c:4927 +#: utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "공유 메모리 부족" -#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266 +#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "공유 메모리가 부족함 (%zu 바이트가 필요함)" -#: storage/ipc/shmem.c:445 +#: storage/ipc/shmem.c:436 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "\"%s\" 자료 구조체용 ShmemIndex 항목을 만들 수 없음" -#: storage/ipc/shmem.c:460 +#: storage/ipc/shmem.c:451 #, c-format msgid "" "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, " @@ -23527,13 +24479,13 @@ msgid "" msgstr "" "\"%s\" 자료 구조체용 ShmemIndex 항목 크기가 잘못됨: 기대값 %zu, 현재값 %zu" -#: storage/ipc/shmem.c:479 +#: storage/ipc/shmem.c:470 #, c-format msgid "" "not enough shared memory for data structure \"%s\" (%zu bytes requested)" msgstr "\"%s\" 자료 구조체용 공유 메모리가 부족함 (%zu 바이트가 필요함)" -#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530 +#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 #, c-format msgid "requested shared memory size overflows size_t" msgstr "지정한 공유 메모리 사이즈가 size_t 크기를 초과했습니다" @@ -23543,18 +24495,18 @@ msgstr "지정한 공유 메모리 사이즈가 size_t 크기를 초과했습니 msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d 프로그램은 PostgreSQL 백엔드 프로세스가 아닙니다" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1379 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1453 +#: utils/adt/mcxtfuncs.c:182 #, c-format msgid "could not send signal to process %d: %m" msgstr "%d 프로세스로 시스템신호(signal)를 보낼 수 없습니다: %m" -#: storage/ipc/signalfuncs.c:124 storage/ipc/signalfuncs.c:131 +#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 #, c-format msgid "permission denied to cancel query" msgstr "쿼리 중지 권한 없음" -#: storage/ipc/signalfuncs.c:125 +#: storage/ipc/signalfuncs.c:130 #, c-format msgid "" "Only roles with the %s attribute may cancel queries of roles with the %s " @@ -23562,115 +24514,111 @@ msgid "" msgstr "" "%s 속성이 있는 롤만이 %s 속성이 있는 롤이 실행한 쿼리를 중지 할 수 있습니다." -#: storage/ipc/signalfuncs.c:132 +#: storage/ipc/signalfuncs.c:137 #, c-format msgid "" "Only roles with privileges of the role whose query is being canceled or with " "privileges of the \"%s\" role may cancel this query." msgstr "쿼리 실행 중지 작업은 \"%s\" 롤 권한이 부여된 롤만 할 수 있습니다." -#: storage/ipc/signalfuncs.c:174 +#: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "%d PID 백엔드 프로세스의 존재를 확인할 수 없음: %m" -#: storage/ipc/signalfuncs.c:192 +#: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "%d PID 백엔드 프로세스를 %lld ms 내에 종료하지 못했음" -#: storage/ipc/signalfuncs.c:223 +#: storage/ipc/signalfuncs.c:228 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" 값은 음수가 아니어야 함" -#: storage/ipc/signalfuncs.c:279 -#, c-format -msgid "must be superuser to rotate log files with adminpack 1.0" -msgstr "adminpack 1.0 확장 모듈로 로그 전환하려면 슈퍼유저여야 합니다." - -#. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:281 utils/adt/genfile.c:250 -#, c-format -msgid "Consider using %s, which is part of core, instead." -msgstr "대신에 %s 내장 함수를 사용할 것을 권고합니다." - -#: storage/ipc/signalfuncs.c:287 storage/ipc/signalfuncs.c:307 +#: storage/ipc/signalfuncs.c:285 #, c-format msgid "rotation not possible because log collection not active" msgstr "로그 수집이 활성 상태가 아니므로 회전할 수 없음" -#: storage/ipc/standby.c:330 +#: storage/ipc/standby.c:329 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "%ld.%03d ms 기다린 뒤에도 여전히 복구 중: %s" -#: storage/ipc/standby.c:339 +#: storage/ipc/standby.c:338 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "%ld.%03d ms 기다려서 복구 완료: %s" -#: storage/ipc/standby.c:921 tcop/postgres.c:3384 +#: storage/ipc/standby.c:920 tcop/postgres.c:3196 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "복구 작업 중 충돌이 발생해 작업을 중지합니다." -#: storage/ipc/standby.c:922 tcop/postgres.c:2533 +#: storage/ipc/standby.c:921 tcop/postgres.c:2557 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "복구 작업 중 사용자 트랜잭션이 버퍼 데드락을 만들었습니다." -#: storage/ipc/standby.c:1488 +#: storage/ipc/standby.c:1486 msgid "unknown reason" msgstr "알 수 없는 이유" -#: storage/ipc/standby.c:1493 +#: storage/ipc/standby.c:1491 msgid "recovery conflict on buffer pin" msgstr "버퍼 핀에서 복구 충돌" -#: storage/ipc/standby.c:1496 +#: storage/ipc/standby.c:1494 msgid "recovery conflict on lock" msgstr "잠금에서 복구 충돌" -#: storage/ipc/standby.c:1499 +#: storage/ipc/standby.c:1497 msgid "recovery conflict on tablespace" msgstr "테이블스페이스에서 복구 충돌" -#: storage/ipc/standby.c:1502 +#: storage/ipc/standby.c:1500 msgid "recovery conflict on snapshot" msgstr "스냅샷에서 복구 충돌" -#: storage/ipc/standby.c:1505 +#: storage/ipc/standby.c:1503 msgid "recovery conflict on replication slot" msgstr "복제 슬롯에서 복구 충돌" -#: storage/ipc/standby.c:1508 +#: storage/ipc/standby.c:1506 msgid "recovery conflict on buffer deadlock" msgstr "버퍼 데드락에서 복구 충돌" -#: storage/ipc/standby.c:1511 +#: storage/ipc/standby.c:1509 msgid "recovery conflict on database" msgstr "데이터베이스에서 복구 충돌" -#: storage/large_object/inv_api.c:191 +#: storage/large_object/inv_api.c:190 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "" "OID %u (해당 페이지 %d) 를 위한 pg_largeobject 항목의 %d 크기의 데이터 필드" "가 잘못되었음" -#: storage/large_object/inv_api.c:274 +#: storage/large_object/inv_api.c:272 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "대형 개체를 열기 위한 플래그가 잘못 됨: %d" -#: storage/large_object/inv_api.c:457 +#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 +#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 +#: storage/large_object/inv_api.c:807 +#, c-format +msgid "permission denied for large object %u" +msgstr "%u 대형 개체에 대한 접근 권한 없음" + +#: storage/large_object/inv_api.c:455 #, c-format msgid "invalid whence setting: %d" msgstr "잘못된 이동 위치: %d" -#: storage/large_object/inv_api.c:629 +#: storage/large_object/inv_api.c:627 #, c-format msgid "invalid large object write request size: %d" msgstr "유효하지 않은 대형 개체의 쓰기 요청된 크기: %d" @@ -23697,119 +24645,119 @@ msgstr "deadlock 발생했음" msgid "See server log for query details." msgstr "쿼리 상세 정보는 서버 로그를 참조하십시오." -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:848 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 튜플(해당 릴레이션 \"%s\")을 갱신하는 중에 발생" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:851 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 튜플(해당 릴레이션 \"%s\")을 삭제하는 중에 발생" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:854 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 튜플을 \"%s\" 릴레이션에서 잠그는 중에 발생" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:857 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "%u,%u 업데이트된 버전 튜플(해당 릴레이션 \"%s\")을 잠그는 중에 발생" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:860 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 튜플 인덱스(해당 릴레이션 \"%s\")를 삽입하는 중에 발생" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:863 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 튜플(해당 릴레이션: \"%s\")의 고유성을 검사하는 중에 발생" -#: storage/lmgr/lmgr.c:877 +#: storage/lmgr/lmgr.c:866 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "%u,%u 갱신된 튜플(해당 릴레이션: \"%s\")을 재확인하는 중에 발생" -#: storage/lmgr/lmgr.c:880 +#: storage/lmgr/lmgr.c:869 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "" "%u,%u 튜플(해당 릴레이션: \"%s\")의 제외 제약 조건을 검사하는 중에 발생" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1239 #, c-format msgid "relation %u of database %u" msgstr "릴레이션 %u, 데이터베이스 %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "extension of relation %u of database %u" msgstr "%u 관계(%u 데이터베이스) 확장" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1251 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "데이터베이스 %u의 pg_database.datfrozenxid" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1256 #, c-format msgid "page %u of relation %u of database %u" msgstr "페이지 %u, 릴레이션 %u, 데이터베이스 %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1263 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "튜플 (%u,%u), 릴레이션 %u, 데이터베이스 %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1271 #, c-format msgid "transaction %u" msgstr "트랜잭션 %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "virtual transaction %d/%u" msgstr "가상 트랜잭션 %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1282 #, c-format msgid "speculative token %u of transaction %u" msgstr "%u 위험한 토큰, 대상 트랜잭션 %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1288 #, c-format msgid "object %u of class %u of database %u" msgstr "개체 %u, 클래스 %u, 데이터베이스 %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1296 #, c-format msgid "user lock [%u,%u,%u]" msgstr "user lock [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1303 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "advisory lock [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1311 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "원격 트랜잭션: %u, 해당 구독: %u, 해당 데이터베이스 %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1318 #, c-format msgid "unrecognized locktag type %d" msgstr "알 수 없는 locktag 형태 %d" -#: storage/lmgr/lock.c:791 +#: storage/lmgr/lock.c:812 #, c-format msgid "" "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "복구 작업 중 데이터베이스 객체 대상 %s 잠금 상태 취득 실패" -#: storage/lmgr/lock.c:793 +#: storage/lmgr/lock.c:814 #, c-format msgid "" "Only RowExclusiveLock or less can be acquired on database objects during " @@ -23818,7 +24766,7 @@ msgstr "" "복구 중에는 해당 객체를 RowExclusiveLock 또는 그 보다 낮은 수준의 잠금만 할 " "수 있습니다." -#: storage/lmgr/lock.c:3235 storage/lmgr/lock.c:3303 storage/lmgr/lock.c:3419 +#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3352 storage/lmgr/lock.c:3468 #, c-format msgid "" "cannot PREPARE while holding both session-level and transaction-level locks " @@ -23827,19 +24775,19 @@ msgstr "" "세션 수준과 트랜잭션 수준, 이 두 수준의 잠금을 같은 객체 대상으로 할 경우 " "PREPARE 작업은 할 수 없습니다." -#: storage/lmgr/predicate.c:649 +#: storage/lmgr/predicate.c:653 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "읽기/쓰기 충돌을 기록하기 위한 RWConflictPool 안에 충분한 요소가 없음" -#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 +#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679 #, c-format msgid "" "You might need to run fewer transactions at a time or increase " -"max_connections." -msgstr "동시 발생하는 트랜잭션 수를 줄이든가, max_connections 값을 늘리세요." +"\"max_connections\"." +msgstr "동시 발생하는 트랜잭션 수를 줄이든가, \"max_connections\" 값을 늘리세요." -#: storage/lmgr/predicate.c:674 +#: storage/lmgr/predicate.c:678 #, c-format msgid "" "not enough elements in RWConflictPool to record a potential read/write " @@ -23848,13 +24796,13 @@ msgstr "" "필수적인 읽기/쓰기 충돌을 기록하기 위한 RWConflictPool 안에 충분한 요소가 없" "음" -#: storage/lmgr/predicate.c:1630 +#: storage/lmgr/predicate.c:1686 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "" "\"default_transaction_isolation\" 설정값이 \"serializable\"로 지정되었습니다." -#: storage/lmgr/predicate.c:1631 +#: storage/lmgr/predicate.c:1687 #, c-format msgid "" "You can use \"SET default_transaction_isolation = 'repeatable read'\" to " @@ -23863,50 +24811,50 @@ msgstr "" "이 기본값은 \"SET default_transaction_isolation = 'repeatable read'\" 명령으" "로 바꿀 수 있습니다." -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1738 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "" "스냅샷 가져오기 트랜잭션은 READ ONLY DEFERRABLE 속성이 아니여야 합니다." -#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1817 utils/time/snapmgr.c:535 +#: utils/time/snapmgr.c:541 #, c-format msgid "could not import the requested snapshot" msgstr "요청한 스냅샷 가지오기 실패" -#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 +#: storage/lmgr/predicate.c:1818 utils/time/snapmgr.c:542 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "%d PID 소스 프로세스는 더이상 실행 중이지 않습니다." -#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3991 storage/lmgr/predicate.c:4027 +#: storage/lmgr/predicate.c:4060 storage/lmgr/predicate.c:4068 +#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4337 +#: storage/lmgr/predicate.c:4656 storage/lmgr/predicate.c:4668 +#: storage/lmgr/predicate.c:4715 storage/lmgr/predicate.c:4751 #, c-format msgid "" "could not serialize access due to read/write dependencies among transactions" msgstr "트랜잭션간 읽기/쓰기 의존성 때문에 serialize 접근을 할 수 없음" -#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3993 storage/lmgr/predicate.c:4029 +#: storage/lmgr/predicate.c:4062 storage/lmgr/predicate.c:4070 +#: storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4339 +#: storage/lmgr/predicate.c:4658 storage/lmgr/predicate.c:4670 +#: storage/lmgr/predicate.c:4717 storage/lmgr/predicate.c:4753 #, c-format msgid "The transaction might succeed if retried." msgstr "재시도하면 그 트랜잭션이 성공할 것입니다." -#: storage/lmgr/proc.c:349 +#: storage/lmgr/proc.c:353 #, c-format msgid "" -"number of requested standby connections exceeds max_wal_senders (currently " -"%d)" -msgstr "대기 서버 연결 수가 max_wal_senders 설정값(현재 %d)을 초과했습니다" +"number of requested standby connections exceeds \"max_wal_senders\" " +"(currently %d)" +msgstr "대기 서버 연결 수가 \"max_wal_senders\" 설정값(현재 %d)을 초과했습니다" -#: storage/lmgr/proc.c:1472 +#: storage/lmgr/proc.c:1546 #, c-format msgid "" "process %d avoided deadlock for %s on %s by rearranging queue order after " @@ -23915,23 +24863,23 @@ msgstr "" "%d PID 프로세스는 %s(%s)에 대해 교착 상태가 발생하지 않도록 %ld.%03dms 후에 " "대기열 순서를 다시 조정함" -#: storage/lmgr/proc.c:1487 +#: storage/lmgr/proc.c:1561 #, c-format msgid "" "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "%d PID 프로세스에서 %s(%s) 대기중 %ld.%03dms 후에 교착 상태를 감지함" -#: storage/lmgr/proc.c:1496 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "%d PID 프로세스에서 여전히 %s(%s) 작업을 기다리고 있음(%ld.%03dms 후)" -#: storage/lmgr/proc.c:1503 +#: storage/lmgr/proc.c:1577 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "%d PID 프로세스가 %s(%s) 작업을 위해 잠금 취득함(%ld.%03dms 후)" -#: storage/lmgr/proc.c:1520 +#: storage/lmgr/proc.c:1594 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "프로세스 %d에서 %s(%s)을(를) 취득하지 못함(%ld.%03dms 후)" @@ -23964,69 +24912,213 @@ msgstr "손상된 아이템 길이: 전체 %u, 사용가능한 공간 %u" msgid "corrupted line pointer: offset = %u, size = %u" msgstr "손상된 줄 위치: 오프셋 = %u, 크기 = %u" -#: storage/smgr/md.c:487 storage/smgr/md.c:549 +#: storage/smgr/md.c:485 storage/smgr/md.c:547 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "\"%s\" 파일을 %u개 블록을 초과하여 확장할 수 없음" -#: storage/smgr/md.c:502 storage/smgr/md.c:613 +#: storage/smgr/md.c:500 storage/smgr/md.c:611 #, c-format msgid "could not extend file \"%s\": %m" msgstr "\"%s\" 파일을 확장할 수 없음: %m" -#: storage/smgr/md.c:508 +#: storage/smgr/md.c:506 #, 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:591 +#: storage/smgr/md.c:589 #, c-format msgid "could not extend file \"%s\" with FileFallocate(): %m" msgstr "FileFallocate() 함수로 \"%s\" 파일을 확장할 수 없음: %m" -#: storage/smgr/md.c:782 -#, c-format -msgid "could not read block %u in file \"%s\": %m" -msgstr "%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %m" - -#: storage/smgr/md.c:798 +#: storage/smgr/md.c:869 #, c-format -msgid "could not read block %u in file \"%s\": read only %d of %d bytes" -msgstr "%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %d / %d 바이트만 읽음" +msgid "could not read blocks %u..%u in file \"%s\": %m" +msgstr "%u..%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %m" -#: storage/smgr/md.c:856 +#: storage/smgr/md.c:895 #, c-format -msgid "could not write block %u in file \"%s\": %m" -msgstr "%u 블럭을 \"%s\" 파일에 쓸 수 없음: %m" +msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" +msgstr "%u..%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %zu / %zu 바이트만 읽음" -#: storage/smgr/md.c:861 +#: storage/smgr/md.c:995 #, c-format -msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" -msgstr "%u 블럭을 \"%s\" 파일에 쓸 수 없음: %d / %d 바이트만 씀" +msgid "could not write blocks %u..%u in file \"%s\": %m" +msgstr "%u..%u 블럭을 \"%s\" 파일에 쓸 수 없음: %m" -#: storage/smgr/md.c:1012 +#: storage/smgr/md.c:1165 #, 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:1067 +#: storage/smgr/md.c:1220 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "\"%s\" 파일을 %u 블럭으로 정리할 수 없음: %m" -#: storage/smgr/md.c:1494 +#: storage/smgr/md.c:1700 #, c-format msgid "" "could not open file \"%s\" (target block %u): previous segment is only %u " "blocks" msgstr "\"%s\" 파일을 열기 실패(대상 블록: %u): 이전 조각은 %u 블럭 뿐임" -#: storage/smgr/md.c:1508 +#: storage/smgr/md.c:1714 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "\"%s\" 파일을 열기 실패(대상 블록: %u): %m" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#: tcop/backend_startup.c:85 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "하위 프로세스에서 SSL 환경 설정을 못했음" + +#: tcop/backend_startup.c:208 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "접속 수락: host=%s port=%s" + +#: tcop/backend_startup.c:213 +#, c-format +msgid "connection received: host=%s" +msgstr "접속 수락: host=%s" + +#: tcop/backend_startup.c:277 +#, c-format +msgid "the database system is starting up" +msgstr "데이터베이스 시스템이 새로 가동 중입니다." + +#: tcop/backend_startup.c:283 +#, c-format +msgid "the database system is not yet accepting connections" +msgstr "해당 데이터베이스 시스템은 아직 접속을 허용하지 않습니다." + +#: tcop/backend_startup.c:284 +#, c-format +msgid "Consistent recovery state has not been yet reached." +msgstr "일관성 복구 작업을 아직 끝내지 못했습니다." + +#: tcop/backend_startup.c:288 +#, c-format +msgid "the database system is not accepting connections" +msgstr "해당 데이터베이스 시스템은 접속을 허용하지 않습니다." + +#: tcop/backend_startup.c:289 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "Hot standby 모드가 비활성화 되었습니다." + +#: tcop/backend_startup.c:294 +#, c-format +msgid "the database system is shutting down" +msgstr "데이터베이스 시스템이 중지 중입니다" + +#: tcop/backend_startup.c:299 +#, c-format +msgid "the database system is in recovery mode" +msgstr "데이터베이스 시스템이 자동 복구 작업 중입니다." + +#: tcop/backend_startup.c:414 +#, c-format +msgid "" +"received direct SSL connection request without ALPN protocol negotiation " +"extension" +msgstr "" +"수신된 직접 SSL 연결은 ALPN 프로토콜 채결 확장 없이 요청되었음" + +#: tcop/backend_startup.c:420 +#, c-format +msgid "direct SSL connection accepted" +msgstr "직접 SSL 연결 수락됨" + +#: tcop/backend_startup.c:430 +#, c-format +msgid "direct SSL connection rejected" +msgstr "직접 SSL 연결 거절됨" + +#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#, c-format +msgid "incomplete startup packet" +msgstr "아직 완료되지 않은 시작 패킷" + +#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#, c-format +msgid "invalid length of startup packet" +msgstr "시작 패킷의 길이가 잘못 되었습니다" + +#: tcop/backend_startup.c:573 +#, c-format +msgid "SSLRequest accepted" +msgstr "SSLRequest 수락됨" + +#: tcop/backend_startup.c:576 +#, c-format +msgid "SSLRequest rejected" +msgstr "SSLRequest 거절됨" + +#: tcop/backend_startup.c:585 +#, c-format +msgid "failed to send SSL negotiation response: %m" +msgstr "SSL 연결 작업에 오류가 발생했습니다: %m" + +#: tcop/backend_startup.c:603 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "SSL 요청 뒤에 암호화 되지 않은 데이터를 받았음" + +#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#, c-format +msgid "" +"This could be either a client-software bug or evidence of an attempted man-" +"in-the-middle attack." +msgstr "" +"이 현상은 클라이언트 소프트웨어 버그이거나, 중간자 공격으로 발생했을 것입니" +"다." + +#: tcop/backend_startup.c:627 +#, c-format +msgid "GSSENCRequest accepted" +msgstr "GSSENCRequest 수락됨" + +#: tcop/backend_startup.c:630 +#, c-format +msgid "GSSENCRequest rejected" +msgstr "GSSENCRequest 거절됨" + +#: tcop/backend_startup.c:639 +#, c-format +msgid "failed to send GSSAPI negotiation response: %m" +msgstr "GSSAPI 협상 응답을 보내지 못했습니다: %m" + +#: tcop/backend_startup.c:657 +#, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "GSSAPI 암호화 요청 뒤에 암호화 되지 않은 데이터를 받았습니다." + +#: tcop/backend_startup.c:681 +#, c-format +msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" +msgstr "" +"지원하지 않는 frontend 프로토콜 %u.%u: 서버에서 지원하는 프로토콜 %u.0 .. %u." +"%u" + +#: tcop/backend_startup.c:744 +#, c-format +msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." +msgstr "사용할 수 있는 값: \"false\", 0, \"true\", 1, \"database\"." + +#: tcop/backend_startup.c:785 +#, c-format +msgid "invalid startup packet layout: expected terminator as last byte" +msgstr "잘못된 시작 패킷 레이아웃: 마지막 바이트로 종결문자가 발견되었음" + +#: tcop/backend_startup.c:802 +#, c-format +msgid "no PostgreSQL user name specified in startup packet" +msgstr "시작 패킷에서 지정한 사용자는 PostgreSQL 사용자 이름이 아닙니다" + +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "OID %u 함수 없음" @@ -24041,8 +25133,8 @@ msgstr "fastpath 인터페이스를 이용한 \"%s\" 함수 호출 실패" msgid "fastpath function call: \"%s\" (OID %u)" msgstr "fastpath 함수 호출: \"%s\" (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605 +#: tcop/postgres.c:2071 tcop/postgres.c:2333 #, c-format msgid "duration: %s ms" msgstr "실행시간: %s ms" @@ -24072,42 +25164,42 @@ msgstr "함수 호출 메시지 안에 있는 잘못된 %d 인자 크기" msgid "incorrect binary data format in function argument %d" msgstr "함수 인자 %d 안에 잘못된 바이너리 자료 형식 발견됨" -#: tcop/postgres.c:463 tcop/postgres.c:4882 +#: tcop/postgres.c:467 tcop/postgres.c:5012 #, c-format msgid "invalid frontend message type %d" msgstr "잘못된 frontend 메시지 형태 %d" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1076 #, c-format msgid "statement: %s" msgstr "명령 구문: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1374 #, c-format msgid "duration: %s ms statement: %s" msgstr "실행시간: %s ms 명령 구문: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1480 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "준비된 명령 구문에는 다중 명령을 삽입할 수 없습니다" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1610 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "실행시간: %s ms %s 구문분석: %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2629 +#: tcop/postgres.c:1677 tcop/postgres.c:2653 #, c-format msgid "unnamed prepared statement does not exist" msgstr "이름없는 준비된 명령 구문(unnamed prepared statement) 없음" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1729 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "바인드 메시지는 %d 매개 변수 형태지만, %d 매개 변수여야함" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1735 #, c-format msgid "" "bind message supplies %d parameters, but prepared statement \"%s\" requires " @@ -24116,115 +25208,115 @@ msgstr "" "바인드 메시지는 %d개의 매개 변수를 지원하지만, \"%s\" 준비된 명령 구문" "(prepared statement)에서는%d 개의 매개 변수가 필요합니다" -#: tcop/postgres.c:1937 +#: tcop/postgres.c:1949 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "바인드 매개 변수 %d 안에 잘못된 바이너리 자료 형태가 있음" -#: tcop/postgres.c:2064 +#: tcop/postgres.c:2076 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "실행시간: %s ms %s%s%s 접속: %s" -#: tcop/postgres.c:2118 tcop/postgres.c:2712 +#: tcop/postgres.c:2131 tcop/postgres.c:2735 #, c-format msgid "portal \"%s\" does not exist" msgstr "\"%s\" portal 없음" -#: tcop/postgres.c:2189 +#: tcop/postgres.c:2213 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2191 tcop/postgres.c:2317 +#: tcop/postgres.c:2215 tcop/postgres.c:2341 msgid "execute fetch from" msgstr "자료뽑기" -#: tcop/postgres.c:2192 tcop/postgres.c:2318 +#: tcop/postgres.c:2216 tcop/postgres.c:2342 msgid "execute" msgstr "쿼리실행" -#: tcop/postgres.c:2314 +#: tcop/postgres.c:2338 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "수행시간: %s ms %s %s%s%s: %s" -#: tcop/postgres.c:2462 +#: tcop/postgres.c:2486 #, c-format msgid "prepare: %s" msgstr "prepare: %s" -#: tcop/postgres.c:2487 +#: tcop/postgres.c:2511 #, c-format -msgid "parameters: %s" +msgid "Parameters: %s" msgstr "매개 변수: %s" -#: tcop/postgres.c:2502 +#: tcop/postgres.c:2526 #, c-format -msgid "abort reason: recovery conflict" +msgid "Abort reason: recovery conflict" msgstr "중지 이유: 복구 충돌" -#: tcop/postgres.c:2518 +#: tcop/postgres.c:2542 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "사용자가 너무 오랫동안 공유 버퍼 핀을 붙잡고 있습니다." -#: tcop/postgres.c:2521 +#: tcop/postgres.c:2545 #, c-format msgid "User was holding a relation lock for too long." msgstr "사용자가 너무 오랫동안 릴레이션 잠금을 하고 있습니다." -#: tcop/postgres.c:2524 +#: tcop/postgres.c:2548 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "삭제할 테이블스페이스를 사용자가 사용했거나, 사용하고 있습니다." -#: tcop/postgres.c:2527 +#: tcop/postgres.c:2551 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "사용자 쿼리가 삭제해야할 로우 버전를 볼 필요가 있는 것 같습니다." -#: tcop/postgres.c:2530 +#: tcop/postgres.c:2554 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "사용자가 잘못된 논리 복제 슬롯을 사용했습니다." -#: tcop/postgres.c:2536 +#: tcop/postgres.c:2560 #, c-format msgid "User was connected to a database that must be dropped." msgstr "삭제 되어져야할 데이터베이스에 사용자가 접속해 있습니다." -#: tcop/postgres.c:2575 +#: tcop/postgres.c:2599 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "\"%s\" 포탈 $%d 매개 변수 = %s" -#: tcop/postgres.c:2578 +#: tcop/postgres.c:2602 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "\"%s\" 포탈 $%d 매개 변수" -#: tcop/postgres.c:2584 +#: tcop/postgres.c:2608 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "이름없는 포탈 $%d 매개 변수 = %s" -#: tcop/postgres.c:2587 +#: tcop/postgres.c:2611 #, c-format msgid "unnamed portal parameter $%d" msgstr "이름없는 포탈 $%d 매개 변수" -#: tcop/postgres.c:2932 +#: tcop/postgres.c:2955 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "예상치 못한 SIGQUIT 신호로 연결을 끝냅니다" -#: tcop/postgres.c:2938 +#: tcop/postgres.c:2961 #, c-format msgid "terminating connection because of crash of another server process" msgstr "다른 서버 프로세스가 손상을 입어 현재 연결을 중지합니다" -#: tcop/postgres.c:2939 +#: tcop/postgres.c:2962 #, c-format msgid "" "The postmaster has commanded this server process to roll back the current " @@ -24235,24 +25327,24 @@ msgstr "" "와의 연결을 끊으라는 명령을 보냈습니다. 왜냐하면, 다른 서버 프로세스가 비정상" "적으로 중지되어 공유 메모리가 손상되었을 가능성이 있기 때문입니다" -#: tcop/postgres.c:2943 tcop/postgres.c:3310 +#: tcop/postgres.c:2966 tcop/postgres.c:3219 #, c-format msgid "" "In a moment you should be able to reconnect to the database and repeat your " "command." msgstr "잠시 뒤에 다시 연결 해서 작업을 계속 하십시오" -#: tcop/postgres.c:2950 +#: tcop/postgres.c:2973 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "immediate 종료 명령으로 연결을 끝냅니다" -#: tcop/postgres.c:3036 +#: tcop/postgres.c:3051 #, c-format msgid "floating-point exception" msgstr "부동소수점 예외발생" -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3052 #, c-format msgid "" "An invalid floating-point operation was signaled. This probably means an out-" @@ -24261,72 +25353,77 @@ msgstr "" "잘못된 부동소수점 작업이 감지 되었습니다. 이것은 아마도 결과값 범위초과나 0으" "로 나누는 작업과 같은 잘못된 연산 때문에 발생한 것 같습니다" -#: tcop/postgres.c:3214 +#: tcop/postgres.c:3217 +#, c-format +msgid "terminating connection due to conflict with recovery" +msgstr "복구 작업 중 충돌로 연결을 끝냅니다" + +#: tcop/postgres.c:3289 #, c-format msgid "canceling authentication due to timeout" msgstr "시간 초과로 인증 작업을 취소합니다." -#: tcop/postgres.c:3218 +#: tcop/postgres.c:3293 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "관리자 명령으로 인해 자동 청소 프로세스를 끝냅니다" -#: tcop/postgres.c:3222 +#: tcop/postgres.c:3297 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "관리자 요청에 의해서 논리 복제 작업자를 끝냅니다" -#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 -#, c-format -msgid "terminating connection due to conflict with recovery" -msgstr "복구 작업 중 충돌로 연결을 끝냅니다" - -#: tcop/postgres.c:3260 +#: tcop/postgres.c:3317 #, c-format msgid "terminating connection due to administrator command" msgstr "관리자 요청에 의해서 연결을 끝냅니다" -#: tcop/postgres.c:3291 +#: tcop/postgres.c:3348 #, c-format msgid "connection to client lost" msgstr "서버로부터 연결이 끊어졌습니다." -#: tcop/postgres.c:3361 +#: tcop/postgres.c:3400 #, c-format msgid "canceling statement due to lock timeout" msgstr "잠금 대기 시간 초과로 작업을 취소합니다." -#: tcop/postgres.c:3368 +#: tcop/postgres.c:3407 #, c-format msgid "canceling statement due to statement timeout" msgstr "명령실행시간 초과로 작업을 취소합니다." -#: tcop/postgres.c:3375 +#: tcop/postgres.c:3414 #, c-format msgid "canceling autovacuum task" msgstr "자동 청소 작업을 취소하는 중" -#: tcop/postgres.c:3398 +#: tcop/postgres.c:3427 #, c-format msgid "canceling statement due to user request" msgstr "사용자 요청에 의해 작업을 취소합니다." -#: tcop/postgres.c:3412 +#: tcop/postgres.c:3448 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "idle-in-transaction 시간 초과로 연결을 끝냅니다" -#: tcop/postgres.c:3423 +#: tcop/postgres.c:3461 +#, c-format +msgid "terminating connection due to transaction timeout" +msgstr "트랜잭션 시간(transaction_timeout) 초과로 연결을 끝냅니다" + +#: tcop/postgres.c:3474 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "idle-session 시간 초과로 연결을 끝냅니다" -#: tcop/postgres.c:3514 +#: tcop/postgres.c:3564 #, c-format msgid "stack depth limit exceeded" msgstr "스택 깊이를 초과했습니다" -#: tcop/postgres.c:3515 +#: tcop/postgres.c:3565 #, c-format msgid "" "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), " @@ -24335,29 +25432,29 @@ msgstr "" "먼저 OS에서 지원하는 스택 depth 최대값을 확인한 뒤, 허용범위 안에서 " "\"max_stack_depth\" (현재값: %dkB) 매개 변수 값의 설정치를 증가시키세요." -#: tcop/postgres.c:3562 +#: tcop/postgres.c:3612 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "\"max_stack_depth\" 값은 %ldkB를 초과할 수 없습니다" -#: tcop/postgres.c:3564 +#: tcop/postgres.c:3614 #, c-format msgid "" "Increase the platform's stack depth limit via \"ulimit -s\" or local " "equivalent." msgstr "OS의 \"ulimit -s\" 명령과 같은 것으로 스택 깊이를 늘려주십시오." -#: tcop/postgres.c:3587 +#: tcop/postgres.c:3637 #, c-format -msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "이 플랫폼에서는 client_connection_check_interval 값은 0 이어야 합니다." +msgid "\"client_connection_check_interval\" must be set to 0 on this platform." +msgstr "이 플랫폼에서는 \"client_connection_check_interval\" 값은 0 이어야 합니다." -#: tcop/postgres.c:3608 +#: tcop/postgres.c:3658 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "\"log_statement_stats\" 값이 true 일 때는 이 값을 활성화할 수 없습니다" -#: tcop/postgres.c:3623 +#: tcop/postgres.c:3673 #, c-format msgid "" "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", " @@ -24366,54 +25463,54 @@ msgstr "" "\"log_parser_stats\", \"log_planner_stats\", \"log_executor_stats\" 설정값들 " "중 하나가 true 일 때는 \"log_statement_stats\" 설정을 활성화할 수 없습니다" -#: tcop/postgres.c:3971 +#: tcop/postgres.c:4098 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "서버 프로세스의 명령행 인자가 잘못되었습니다: %s" -#: tcop/postgres.c:3972 tcop/postgres.c:3978 +#: tcop/postgres.c:4099 tcop/postgres.c:4105 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: tcop/postgres.c:3976 +#: tcop/postgres.c:4103 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: 잘못된 명령행 인자: %s" -#: tcop/postgres.c:4029 +#: tcop/postgres.c:4156 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: 데이터베이스와 사용자를 지정하지 않았습니다" -#: tcop/postgres.c:4779 +#: tcop/postgres.c:4909 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "잘못된 CLOSE 메시지 서브타입 %d" -#: tcop/postgres.c:4816 +#: tcop/postgres.c:4946 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "잘못된 DESCRIBE 메시지 서브타입 %d" -#: tcop/postgres.c:4903 +#: tcop/postgres.c:5033 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "복제 연결에서는 fastpath 함수 호출을 지원하지 않습니다" -#: tcop/postgres.c:4907 +#: tcop/postgres.c:5037 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "복제 연결에서는 확장된 쿼리 프로토콜을 지원하지 않습니다" -#: tcop/postgres.c:5087 +#: tcop/postgres.c:5217 #, c-format msgid "" -"disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s" -"%s" +"disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s " +"host=%s%s%s" msgstr "" -"연결종료: 세션 시간: %d:%02d:%02d.%03d 사용자=%s 데이터베이스=%s 호스트=%s%s" -"%s" +"연결종료: 세션 시간: %d:%02d:%02d.%03d 사용자=%s 데이터베이스=%s 호스트" +"=%s%s%s" #: tcop/pquery.c:641 #, c-format @@ -24421,54 +25518,54 @@ msgid "bind message has %d result formats but query has %d columns" msgstr "" "바인드 메시지는 %d 결과 포멧을 가지고 있고, 쿼리는 %d 칼럼을 가지고 있습니다" -#: tcop/pquery.c:944 tcop/pquery.c:1701 +#: tcop/pquery.c:942 tcop/pquery.c:1696 #, c-format msgid "cursor can only scan forward" msgstr "이 커서는 앞으로 이동 전용입니다" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:943 tcop/pquery.c:1697 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "" "뒤로 이동 가능한 커서를 만드려면 SCROLL 옵션을 추가해서 커서를 만드세요." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:417 +#: tcop/utility.c:410 #, c-format msgid "cannot execute %s in a read-only transaction" msgstr "읽기 전용 트랜잭션에서는 %s 명령을 실행할 수 없습니다." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:435 +#: tcop/utility.c:428 #, c-format msgid "cannot execute %s during a parallel operation" msgstr "병렬 처리 작업에서는 %s 명령을 실행할 수 없습니다." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:454 +#: tcop/utility.c:447 #, c-format msgid "cannot execute %s during recovery" msgstr "복구 작업 중에는 %s 명령을 실행할 수 없습니다." #. translator: %s is name of a SQL command, eg PREPARE -#: tcop/utility.c:472 +#: tcop/utility.c:465 #, c-format msgid "cannot execute %s within security-restricted operation" msgstr "보안 제한 작업 내에서 %s을(를) 실행할 수 없음" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:828 +#: tcop/utility.c:821 #, c-format msgid "cannot execute %s within a background process" msgstr "백그라운드 프로세스에서는 %s 명령을 실행할 수 없습니다." #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:954 +#: tcop/utility.c:947 #, c-format msgid "permission denied to execute %s command" msgstr "%s 명령 실행 권한 없음" -#: tcop/utility.c:956 +#: tcop/utility.c:949 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "이 명령 실행은 \"%s\" 롤 권한이 있는 롤만 할 수 있습니다." @@ -24621,13 +25718,13 @@ msgstr "\"long\" 플래그 값을 포함하는 잘못된 affix 플래그: \"%s\" msgid "could not open dictionary file \"%s\": %m" msgstr "\"%s\" 사전 파일을 열 수 없음: %m" -#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559 +#: tsearch/spell.c:749 utils/adt/regexp.c:223 jsonpath_gram.y:629 #, c-format msgid "invalid regular expression: %s" msgstr "잘못된 정규식: %s" #: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 -#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18123 gram.y:18140 +#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18735 gram.y:18752 #, c-format msgid "syntax error" msgstr "구문 오류" @@ -24665,18 +25762,18 @@ msgstr "alias 수가 지정한 %d 개수를 초과함" msgid "affix file contains both old-style and new-style commands" msgstr "affix 파일에 옛방식과 새방식 명령이 함께 있습니다" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "" "문자열이 너무 길어서 tsvector에 사용할 수 없음(%d바이트, 최대 %d바이트)" -#: tsearch/ts_locale.c:238 +#: tsearch/ts_locale.c:236 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "%d번째 줄(해당 파일: \"%s\"): \"%s\"" -#: tsearch/ts_locale.c:317 +#: tsearch/ts_locale.c:315 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "wchar_t에서 서버 인코딩으로 변환하지 못함: %m" @@ -24703,72 +25800,72 @@ msgstr "\"%s\" 전문 검색 구성 파일 이름이 잘못됨" msgid "could not open stop-word file \"%s\": %m" msgstr "\"%s\" 중지 단어 파일을 열 수 없음: %m" -#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 +#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471 #, c-format msgid "text search parser does not support headline creation" msgstr "전문 검색 분석기에서 헤드라인 작성을 지원하지 않음" -#: tsearch/wparser_def.c:2663 +#: tsearch/wparser_def.c:2664 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "인식할 수 없는 headline 매개 변수: \"%s\"" -#: tsearch/wparser_def.c:2673 +#: tsearch/wparser_def.c:2674 #, c-format msgid "MinWords should be less than MaxWords" msgstr "MinWords는 MaxWords보다 작아야 함" -#: tsearch/wparser_def.c:2677 +#: tsearch/wparser_def.c:2678 #, c-format msgid "MinWords should be positive" msgstr "MinWords는 양수여야 함" -#: tsearch/wparser_def.c:2681 +#: tsearch/wparser_def.c:2682 #, c-format msgid "ShortWord should be >= 0" msgstr "ShortWord는 0보다 크거나 같아야 함" -#: tsearch/wparser_def.c:2685 +#: tsearch/wparser_def.c:2686 #, c-format msgid "MaxFragments should be >= 0" msgstr "MaxFragments는 0보다 크거나 같아야 함" -#: utils/activity/pgstat.c:438 +#: utils/activity/pgstat.c:435 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "\"%s\" 매개 변수 통계 파일을 지울 수 없음: %m" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1255 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "잘못된 통계정보 종류: \"%s\"" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "\"%s\" 임시 통계 파일을 열 수 없음: %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1455 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "\"%s\" 임시 통계 파일에 쓰기 실패: %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "\"%s\" 임시 통계 파일을 닫을 수 없습니다: %m" -#: utils/activity/pgstat.c:1461 +#: utils/activity/pgstat.c:1472 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "\"%s\" 임시 통계 파일 이름을 \"%s\" (으)로 바꿀 수 없습니다: %m" -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1521 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "\"%s\" 통계 파일을 열 수 없음: %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:1683 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "\"%s\" 통계 파일이 손상되었음" @@ -24778,116 +25875,126 @@ msgstr "\"%s\" 통계 파일이 손상되었음" msgid "function call to dropped function" msgstr "삭제될 함수를 호출함" -#: utils/activity/pgstat_xact.c:363 +#: utils/activity/pgstat_xact.c:362 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "%s 종류의 기존 통계 정보를 초기화합니다, db=%u, oid=%u" +#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "\"%s\" 대기 이벤트는 이미 \"%s\" 자료형 안에 있음" + +#: utils/activity/wait_event.c:246 +#, c-format +msgid "too many custom wait events" +msgstr "너무 많은 사용자 대기 이벤트" + # # nonun 부분 begin -#: utils/adt/acl.c:177 utils/adt/name.c:93 +#: utils/adt/acl.c:183 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "식별자(identifier)가 너무 깁니다." -#: utils/adt/acl.c:178 utils/adt/name.c:94 +#: utils/adt/acl.c:184 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "식별자(Identifier)는 %d 글자 이상일 수 없습니다." -#: utils/adt/acl.c:266 +#: utils/adt/acl.c:272 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "알 수 없는 않은 키워드: \"%s\"" -#: utils/adt/acl.c:267 +#: utils/adt/acl.c:273 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "ACL 키워드는 \"group\" 또는 \"user\" 중에 하나여야 합니다." -#: utils/adt/acl.c:275 +#: utils/adt/acl.c:281 #, c-format msgid "missing name" msgstr "이름이 빠졌습니다." -#: utils/adt/acl.c:276 +#: utils/adt/acl.c:282 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "이름은 \"group\" 또는 \"user\" 키워드 뒤에 있어야 합니다." -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:288 #, c-format msgid "missing \"=\" sign" msgstr "\"=\" 기호가 빠졌습니다." -#: utils/adt/acl.c:341 +#: utils/adt/acl.c:350 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "잘못된 조건: \"%s\" 중에 한 가지여야 합니다." -#: utils/adt/acl.c:371 +#: utils/adt/acl.c:380 #, c-format msgid "a name must follow the \"/\" sign" msgstr "이름은 \"/\"기호 뒤에 있어야 합니다." -#: utils/adt/acl.c:383 +#: utils/adt/acl.c:392 #, c-format msgid "defaulting grantor to user ID %u" msgstr "%u 사용자 ID에서 기본 권한자로 할당하고 있습니다" -#: utils/adt/acl.c:569 +#: utils/adt/acl.c:578 #, c-format msgid "ACL array contains wrong data type" msgstr "ACL 배열에 잘못된 자료형을 사용하고 있습니다" -#: utils/adt/acl.c:573 +#: utils/adt/acl.c:582 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "ACL 배열은 일차원 배열이어야 합니다" -#: utils/adt/acl.c:577 +#: utils/adt/acl.c:586 #, c-format msgid "ACL arrays must not contain null values" msgstr "ACL 배열에는 null 값을 포함할 수 없습니다" -#: utils/adt/acl.c:606 +#: utils/adt/acl.c:615 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "ACL 설정 정보 끝에 끝에 쓸모 없는 내용들이 더 포함되어있습니다" -#: utils/adt/acl.c:1248 +#: utils/adt/acl.c:1263 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "부여 옵션을 해당 부여자에게 다시 부여할 수 없음" -#: utils/adt/acl.c:1564 +#: utils/adt/acl.c:1579 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert 더이상 지원하지 않음" -#: utils/adt/acl.c:1574 +#: utils/adt/acl.c:1589 #, c-format msgid "aclremove is no longer supported" msgstr "aclremovie 더이상 지원하지 않음" -#: utils/adt/acl.c:1693 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "알 수 없는 권한 타입: \"%s\"" -#: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "\"%s\" 함수가 없습니다." -#: utils/adt/acl.c:5023 +#: utils/adt/acl.c:5196 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "SET ROLE \"%s\" 작업이 있어야 함" #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 +#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 +#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "입력 자료형을 결정할 수 없음" @@ -24898,17 +26005,17 @@ msgid "input data type is not an array" msgstr "입력 자료형이 배열이 아닙니다." #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 +#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454 +#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 +#: utils/adt/varlena.c:3137 #, c-format msgid "integer out of range" msgstr "정수 범위를 벗어남" @@ -24948,269 +26055,280 @@ msgstr "차원(배열 깊이)이 다른 배열들을 서로 합칠 수 없습니 msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "차원(배열 깊이)이 다른 배열들을 서로 합칠 수 없습니다" -#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5590 utils/adt/arrayfuncs.c:5596 +#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 +#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "배열 차수가 서로 틀린 배열은 누적할 수 없음" -#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 +#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "다차원 배열에서 요소 검색 기능은 지원하지 않음" -#: utils/adt/array_userfuncs.c:1315 +#: utils/adt/array_userfuncs.c:1301 #, c-format msgid "initial position must not be null" msgstr "초기 위치값은 null값이 아니여야 함" -#: utils/adt/array_userfuncs.c:1688 +#: utils/adt/array_userfuncs.c:1674 #, c-format msgid "sample size must be between 0 and %d" msgstr "샘플 크기는 0에서 %d 사이여야 함" -#: utils/adt/arrayfuncs.c:273 utils/adt/arrayfuncs.c:287 -#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:320 -#: utils/adt/arrayfuncs.c:337 utils/adt/arrayfuncs.c:351 -#: utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:366 -#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:521 -#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:547 -#: utils/adt/arrayfuncs.c:568 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:605 utils/adt/arrayfuncs.c:613 -#: utils/adt/arrayfuncs.c:647 utils/adt/arrayfuncs.c:670 -#: utils/adt/arrayfuncs.c:690 utils/adt/arrayfuncs.c:807 -#: utils/adt/arrayfuncs.c:816 utils/adt/arrayfuncs.c:846 -#: utils/adt/arrayfuncs.c:861 utils/adt/arrayfuncs.c:914 +#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273 +#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307 +#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454 +#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703 +#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777 +#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870 +#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904 +#: utils/adt/arrayfuncs.c:941 #, c-format msgid "malformed array literal: \"%s\"" msgstr "비정상적인 배열 문자: \"%s\"" -#: utils/adt/arrayfuncs.c:274 -#, c-format -msgid "\"[\" must introduce explicitly-specified array dimensions." -msgstr "배열 차원 정의는 \"[\" 문자로 시작해야 합니다." - -#: utils/adt/arrayfuncs.c:288 +#: utils/adt/arrayfuncs.c:265 #, c-format -msgid "Missing array dimension value." -msgstr "배열 차원(배열 깊이) 값이 빠졌습니다." +msgid "Array value must start with \"{\" or dimension information." +msgstr "배열값은 \"{\" 또는 배열 깊이 정보로 시작되어야 합니다" -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:338 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "배열 차원(배열 깊이) 표현에서 \"%s\" 문자가 빠졌습니다." -#: utils/adt/arrayfuncs.c:308 utils/adt/arrayfuncs.c:2933 -#: utils/adt/arrayfuncs.c:2965 utils/adt/arrayfuncs.c:2980 +#: utils/adt/arrayfuncs.c:285 #, c-format -msgid "upper bound cannot be less than lower bound" -msgstr "상한값은 하한값보다 작을 수 없습니다" +msgid "Array contents must start with \"{\"." +msgstr "배열형은 \"{\" 문자로 시작해야 합니다." -#: utils/adt/arrayfuncs.c:321 +#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292 #, c-format -msgid "Array value must start with \"{\" or dimension information." -msgstr "배열값은 \"{\" 또는 배열 깊이 정보로 시작되어야 합니다" +msgid "Junk after closing right brace." +msgstr "오른쪽 닫기 괄호 뒤에 정크" -#: utils/adt/arrayfuncs.c:352 +#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643 #, c-format -msgid "Array contents must start with \"{\"." -msgstr "배열형은 \"{\" 문자로 시작해야 합니다." +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "배열 차원이 최대치(%d)를 초과했음" -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 +#: utils/adt/arrayfuncs.c:441 #, c-format -msgid "Specified array dimensions do not match array contents." -msgstr "지정한 배열 차원에 해당하는 배열이 없습니다." +msgid "\"[\" must introduce explicitly-specified array dimensions." +msgstr "배열 차원 정의는 \"[\" 문자로 시작해야 합니다." -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:533 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:455 #, c-format -msgid "Unexpected end of input." -msgstr "입력의 예상치 못한 종료." +msgid "Missing array dimension value." +msgstr "배열 차원(배열 깊이) 값이 빠졌습니다." + +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 +#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 +#, c-format +msgid "upper bound cannot be less than lower bound" +msgstr "상한값은 하한값보다 작을 수 없습니다" + +#: utils/adt/arrayfuncs.c:487 +#, c-format +msgid "array upper bound is too large: %d" +msgstr "배열 upper bound가 너무 큽니다: %d" + +#: utils/adt/arrayfuncs.c:538 +#, c-format +msgid "array bound is out of integer range" +msgstr "배열 bound가 정수 범위를 초과했음" -#: utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:569 -#: utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:648 +#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669 +#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898 #, c-format msgid "Unexpected \"%c\" character." msgstr "예기치 않은 \"%c\" 문자" -#: utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:671 +#: utils/adt/arrayfuncs.c:719 #, c-format msgid "Unexpected array element." msgstr "예기치 않은 배열 요소" -#: utils/adt/arrayfuncs.c:606 +#: utils/adt/arrayfuncs.c:778 #, c-format -msgid "Unmatched \"%c\" character." -msgstr "짝이 안 맞는 \"%c\" 문자" +msgid "Specified array dimensions do not match array contents." +msgstr "지정한 배열 차원에 해당하는 배열이 없습니다." -#: utils/adt/arrayfuncs.c:614 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2598 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "다차원 배열에는 일치하는 차원이 포함된 배열 식이 있어야 함" -#: utils/adt/arrayfuncs.c:691 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:871 utils/adt/arrayfuncs.c:905 #, c-format -msgid "Junk after closing right brace." -msgstr "오른쪽 닫기 괄호 뒤에 정크" +msgid "Incorrectly quoted array element." +msgstr "바르지 않은 따옴표 배열 요소입니다." + +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 +#: utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 +#: utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#, c-format +msgid "Unexpected end of input." +msgstr "입력의 예상치 못한 종료." -#: utils/adt/arrayfuncs.c:1325 utils/adt/arrayfuncs.c:3479 -#: utils/adt/arrayfuncs.c:6080 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3499 +#: utils/adt/arrayfuncs.c:6106 #, c-format msgid "invalid number of dimensions: %d" msgstr "잘못된 배열 차원(배열 깊이): %d" -#: utils/adt/arrayfuncs.c:1336 +#: utils/adt/arrayfuncs.c:1312 #, c-format msgid "invalid array flags" msgstr "잘못된 배열 플래그" -#: utils/adt/arrayfuncs.c:1358 +#: utils/adt/arrayfuncs.c:1334 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "이진 자료에 있는 배열 요소 자료형이 %u (%s) 입니다. 기대값: %u (%s)" -#: utils/adt/arrayfuncs.c:1402 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 +#: utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 #, c-format msgid "no binary input function available for type %s" msgstr "%s 자료형에서 사용할 바이너리 입력 함수가 없습니다." -#: utils/adt/arrayfuncs.c:1542 +#: utils/adt/arrayfuncs.c:1509 #, c-format msgid "improper binary format in array element %d" msgstr "%d 번째 배열 요소의 포맷이 부적절합니다." -#: utils/adt/arrayfuncs.c:1623 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 +#: utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 #, c-format msgid "no binary output function available for type %s" msgstr "%s 자료형에서 사용할 바이너리 출력 함수가 없습니다." -#: utils/adt/arrayfuncs.c:2102 +#: utils/adt/arrayfuncs.c:2067 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "특정 크기로 배열을 절단하는 기능은 구현되지 않습니다." -#: utils/adt/arrayfuncs.c:2280 utils/adt/arrayfuncs.c:2302 -#: utils/adt/arrayfuncs.c:2351 utils/adt/arrayfuncs.c:2589 -#: utils/adt/arrayfuncs.c:2911 utils/adt/arrayfuncs.c:6066 -#: utils/adt/arrayfuncs.c:6092 utils/adt/arrayfuncs.c:6103 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 +#: utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6092 +#: utils/adt/arrayfuncs.c:6118 utils/adt/arrayfuncs.c:6129 +#: utils/adt/json.c:1433 utils/adt/json.c:1505 utils/adt/jsonb.c:1317 +#: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4710 utils/adt/jsonfuncs.c:4863 +#: utils/adt/jsonfuncs.c:4974 utils/adt/jsonfuncs.c:5022 #, c-format msgid "wrong number of array subscripts" msgstr "잘못된 배열 하위 스크립트(1,2...차원 배열 표시 문제)" -#: utils/adt/arrayfuncs.c:2285 utils/adt/arrayfuncs.c:2393 -#: utils/adt/arrayfuncs.c:2656 utils/adt/arrayfuncs.c:2970 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 +#: utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "배열 하위 스크립트 범위를 초과했습니다" -#: utils/adt/arrayfuncs.c:2290 +#: utils/adt/arrayfuncs.c:2255 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "고정 길이 배열의 요소에 null 값을 지정할 수 없음" -#: utils/adt/arrayfuncs.c:2858 +#: utils/adt/arrayfuncs.c:2855 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "고정된 크기의 배열의 조각을 업데이트 하는 기능은 구현되지 않았습니다." -#: utils/adt/arrayfuncs.c:2889 +#: utils/adt/arrayfuncs.c:2886 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "배열 나누기 서브스크립트는 반드시 둘다 범위안에 있어야 합니다" -#: utils/adt/arrayfuncs.c:2890 +#: utils/adt/arrayfuncs.c:2887 #, c-format msgid "" "When assigning to a slice of an empty array value, slice boundaries must be " "fully specified." msgstr "빈 배열 대상으로 자르기를 할 때는 자르기 범위가 전체여야 합니다." -#: utils/adt/arrayfuncs.c:2901 utils/adt/arrayfuncs.c:2997 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "원본 배열이 너무 작습니다." -#: utils/adt/arrayfuncs.c:3637 +#: utils/adt/arrayfuncs.c:3657 #, c-format msgid "null array element not allowed in this context" msgstr "이 구문에서는 배열의 null 요소를 허용하지 않습니다" -#: utils/adt/arrayfuncs.c:3808 utils/adt/arrayfuncs.c:3979 -#: utils/adt/arrayfuncs.c:4370 +#: utils/adt/arrayfuncs.c:3828 utils/adt/arrayfuncs.c:3999 +#: utils/adt/arrayfuncs.c:4390 #, c-format msgid "cannot compare arrays of different element types" msgstr "배열 요소 자료형이 서로 틀린 배열은 비교할 수 없습니다." -#: utils/adt/arrayfuncs.c:4157 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4177 utils/adt/multirangetypes.c:2805 +#: utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 +#: utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 #, c-format msgid "could not identify a hash function for type %s" msgstr "%s 자료형에서 사용할 해시 함수를 찾을 수 없습니다." -#: utils/adt/arrayfuncs.c:4285 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4305 utils/adt/rowtypes.c:1996 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "%s 자료형에서 사용할 확장된 해시 함수를 찾을 수 없습니다." -#: utils/adt/arrayfuncs.c:5480 +#: utils/adt/arrayfuncs.c:5506 #, c-format msgid "data type %s is not an array type" msgstr "%s 자료형은 배열이 아닙니다." -#: utils/adt/arrayfuncs.c:5535 +#: utils/adt/arrayfuncs.c:5561 #, c-format msgid "cannot accumulate null arrays" msgstr "null 배열을 누적할 수 없음" -#: utils/adt/arrayfuncs.c:5563 +#: utils/adt/arrayfuncs.c:5589 #, c-format msgid "cannot accumulate empty arrays" msgstr "빈 배열을 누적할 수 없음" -#: utils/adt/arrayfuncs.c:5964 utils/adt/arrayfuncs.c:6004 +#: utils/adt/arrayfuncs.c:5990 utils/adt/arrayfuncs.c:6030 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "차원 배열 또는 하한 배열은 NULL일 수 없음" -#: utils/adt/arrayfuncs.c:6067 utils/adt/arrayfuncs.c:6093 +#: utils/adt/arrayfuncs.c:6093 utils/adt/arrayfuncs.c:6119 #, c-format msgid "Dimension array must be one dimensional." msgstr "차원 배열은 일차원 배열이어야 합니다." -#: utils/adt/arrayfuncs.c:6072 utils/adt/arrayfuncs.c:6098 +#: utils/adt/arrayfuncs.c:6098 utils/adt/arrayfuncs.c:6124 #, c-format msgid "dimension values cannot be null" msgstr "차원 값은 null일 수 없음" -#: utils/adt/arrayfuncs.c:6104 +#: utils/adt/arrayfuncs.c:6130 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "하한 배열의 크기가 차원 배열과 다릅니다." -#: utils/adt/arrayfuncs.c:6382 +#: utils/adt/arrayfuncs.c:6411 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "다차원 배열에서 요소 삭제기능은 지원되지 않음" -#: utils/adt/arrayfuncs.c:6659 +#: utils/adt/arrayfuncs.c:6688 #, c-format msgid "thresholds must be one-dimensional array" msgstr "threshold 값은 1차원 배열이어야 합니다." -#: utils/adt/arrayfuncs.c:6664 +#: utils/adt/arrayfuncs.c:6693 #, c-format msgid "thresholds array must not contain NULLs" msgstr "threshold 배열에는 null이 포함되지 않아야 함" -#: utils/adt/arrayfuncs.c:6897 +#: utils/adt/arrayfuncs.c:6926 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "요소 자름 수는 0부터 %d까지입니다" @@ -25225,22 +26343,22 @@ msgstr "배열 요소 번호는 정수형이어야 합니다." msgid "array subscript in assignment must not be null" msgstr "배열 요소 지정하는 번호값으로 null 값을 사용할 수 없습니다" -#: utils/adt/arrayutils.c:161 +#: utils/adt/arrayutils.c:140 #, c-format msgid "array lower bound is too large: %d" msgstr "배열 lower bound가 너무 큽니다: %d" -#: utils/adt/arrayutils.c:263 +#: utils/adt/arrayutils.c:242 #, c-format msgid "typmod array must be type cstring[]" msgstr "typmod 배열은 cstring[] 형식이어야 함" -#: utils/adt/arrayutils.c:268 +#: utils/adt/arrayutils.c:247 #, c-format msgid "typmod array must be one-dimensional" msgstr "typmod 배열은 일차원 배열이어야 함" -#: utils/adt/arrayutils.c:273 +#: utils/adt/arrayutils.c:252 #, c-format msgid "typmod array must not contain nulls" msgstr "typmod 배열에는 null이 포함되지 않아야 함" @@ -25251,48 +26369,52 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "%s 인코딩을 ASCII 인코딩으로의 변환은 지원하지 않습니다." #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/bool.c:149 utils/adt/cash.c:354 utils/adt/datetime.c:4142 +#: utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 +#: utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 #: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 #: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 #: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 #: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 -#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 -#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 +#: utils/adt/network.c:99 utils/adt/numeric.c:803 utils/adt/numeric.c:7221 +#: utils/adt/numeric.c:7424 utils/adt/numeric.c:8371 utils/adt/numutils.c:356 +#: utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 +#: utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 +#: utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:510 +#: utils/adt/uuid.c:140 utils/adt/xid8funcs.c:360 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "%s 자료형 대한 잘못된 입력: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 -#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 -#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 +#: utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "입력한 \"%s\" 값은 %s 자료형 범위를 초과했습니다" +msgid "money out of range" +msgstr "money 자료형 값 범위를 벗어남" -#: 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:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3406 +#: utils/adt/cash.c:161 utils/adt/cash.c:723 utils/adt/float.c:99 +#: utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 +#: utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 +#: utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 +#: utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 +#: utils/adt/numeric.c:3191 utils/adt/numeric.c:3214 utils/adt/numeric.c:3299 +#: utils/adt/numeric.c:3317 utils/adt/numeric.c:3413 utils/adt/numeric.c:8920 +#: utils/adt/numeric.c:9233 utils/adt/numeric.c:9581 utils/adt/numeric.c:9697 +#: utils/adt/numeric.c:11208 utils/adt/timestamp.c:3713 #, c-format msgid "division by zero" msgstr "0으로는 나눌수 없습니다." +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 +#: utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 +#: utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 +#: utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "입력한 \"%s\" 값은 %s 자료형 범위를 초과했습니다" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -25303,161 +26425,189 @@ msgstr "\"char\" 범위를 벗어났습니다." msgid "could not compute %s hash: %s" msgstr "%s 해시 계산 실패: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "잘못된 자료형 한정자" -#: utils/adt/date.c:75 +#: utils/adt/date.c:76 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "TIME(%d)%s 정밀도로 음수를 사용할 수 없습니다" -#: utils/adt/date.c:81 +#: utils/adt/date.c:82 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s 정밀도는 최대값(%d)으로 줄였습니다" -#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 +#: utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 +#: utils/adt/formatting.c:4548 #, c-format msgid "date out of range: \"%s\"" msgstr "날짜 범위가 벗어났음: \"%s\"" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2460 +#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 +#: utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "날짜가 범위를 벗어남" -#: utils/adt/date.c:267 utils/adt/timestamp.c:582 +#: utils/adt/date.c:268 utils/adt/timestamp.c:598 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "날짜 필드의 값이 범위를 벗어남: %d-%02d-%02d" -#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 +#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "날짜 범위가 벗어났음: %d-%02d-%02d" -#: utils/adt/date.c:494 +#: utils/adt/date.c:495 #, c-format msgid "cannot subtract infinite dates" msgstr "무한 날짜를 뺄 수 없음" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 +#: utils/adt/date.c:2906 utils/adt/date.c:2916 #, c-format msgid "date out of range for timestamp" msgstr "날짜가 타임스탬프 범위를 벗어남" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4097 -#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4432 -#: utils/adt/timestamp.c:4685 utils/adt/timestamp.c:4886 -#: utils/adt/timestamp.c:4933 utils/adt/timestamp.c:5157 -#: utils/adt/timestamp.c:5204 utils/adt/timestamp.c:5334 +#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 +#: utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 +#: utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 +#: utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 +#: utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 +#: utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 +#: utils/adt/timestamp.c:6070 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "\"%s\" 단위는 %s 자료형의 값 단위로 지원하지 않음" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4111 utils/adt/timestamp.c:4307 -#: utils/adt/timestamp.c:4446 utils/adt/timestamp.c:4645 -#: utils/adt/timestamp.c:4942 utils/adt/timestamp.c:5213 -#: utils/adt/timestamp.c:5395 +#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 +#: utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 +#: utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 +#: utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 +#: utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "\"%s\" 는 %s 자료형의 단위로 인식될 수 없음" -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2976 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:3045 -#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3081 -#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3100 -#: utils/adt/timestamp.c:3801 utils/adt/timestamp.c:3925 -#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4105 -#: utils/adt/timestamp.c:4198 utils/adt/timestamp.c:4301 -#: utils/adt/timestamp.c:4750 utils/adt/timestamp.c:5024 -#: utils/adt/timestamp.c:5463 utils/adt/timestamp.c:5473 -#: utils/adt/timestamp.c:5478 utils/adt/timestamp.c:5484 -#: utils/adt/timestamp.c:5517 utils/adt/timestamp.c:5604 -#: utils/adt/timestamp.c:5645 utils/adt/timestamp.c:5649 -#: utils/adt/timestamp.c:5703 utils/adt/timestamp.c:5707 -#: utils/adt/timestamp.c:5713 utils/adt/timestamp.c:5747 utils/adt/xml.c:2482 -#: utils/adt/xml.c:2489 utils/adt/xml.c:2509 utils/adt/xml.c:2516 +#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 +#: utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 +#: utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 +#: utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 +#: utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 +#: utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 +#: utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 +#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 +#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 +#: utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 +#: utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 +#: utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 +#: utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 +#: utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 +#: utils/adt/timestamp.c:3266 utils/adt/timestamp.c:3279 +#: utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 +#: utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 +#: utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 +#: utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 +#: utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 +#: utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 +#: utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 +#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 +#: utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 +#: utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 +#: utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 +#: utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2574 +#: utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "타임스탬프 범위를 벗어남" -#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 +#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 #, c-format msgid "time out of range" msgstr "시간 범위를 벗어남" -#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 +#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "시간 필드의 값이 범위를 벗어남: %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3455 utils/adt/timestamp.c:3482 -#: utils/adt/timestamp.c:3513 +#: utils/adt/date.c:2020 +#, c-format +msgid "cannot convert infinite interval to time" +msgstr "infinite interval 자료형은 time 자료형으로 변환할 수 없음" + +#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#, c-format +msgid "cannot add infinite interval to time" +msgstr "infinite interval 자료형 + time 자료형 계산은 할 수 없음" + +#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#, c-format +msgid "cannot subtract infinite interval from time" +msgstr "infinite interval 자료형 - 시간 자료형 계산은 할 수 없음" + +#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 +#: utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2595 +#: utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 +#: utils/adt/timestamp.c:3888 #, c-format msgid "invalid preceding or following size in window function" msgstr "윈도우 함수에서 앞에 오거나 뒤에 따라오는 크기가 잘못됨" -#: utils/adt/date.c:2351 +#: utils/adt/date.c:2360 #, c-format msgid "time zone displacement out of range" msgstr "타임 존 변위가 범위를 벗어남" -#: utils/adt/date.c:3110 utils/adt/timestamp.c:5506 utils/adt/timestamp.c:5736 +#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#, c-format +msgid "interval time zone \"%s\" must be finite" +msgstr "" +"\"%s\" 시간대 간격(interval time zone) 값은 유한해야 함" + +#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "" "\"%s\" 시간대 간격(interval time zone) 값으로 달(month) 또는 일(day)을 포함" "할 수 없습니다" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 +#: utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 #, c-format msgid "time zone \"%s\" not recognized" msgstr "\"%s\" 이름의 시간대는 없습니다." -#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 +#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "날짜/시간 필드의 값이 범위를 벗어남: \"%s\"" -#: utils/adt/datetime.c:3985 +#: utils/adt/datetime.c:4110 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "날짜 표현 방식(\"datestyle\")을 다른 것으로 사용하고 있는 듯 합니다." -#: utils/adt/datetime.c:3990 +#: utils/adt/datetime.c:4115 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "interval 필드의 값이 범위를 벗어남: \"%s\"" -#: utils/adt/datetime.c:3996 +#: utils/adt/datetime.c:4121 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "표준시간대 범위를 벗어남: \"%s\"" -#: utils/adt/datetime.c:4010 +#: utils/adt/datetime.c:4135 #, c-format msgid "" "This time zone name appears in the configuration file for time zone " @@ -25470,24 +26620,24 @@ msgstr "" msgid "invalid Datum pointer" msgstr "잘못된 Datum 포인터" -#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:840 #, c-format msgid "invalid size: \"%s\"" msgstr "잘못된 크기: \"%s\"" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:841 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "잘못된 크기 단위: \"%s\"" -#: utils/adt/dbsize.c:839 +#: utils/adt/dbsize.c:842 #, c-format msgid "" "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." msgstr "" "유효한 단위는 \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\"입니다." -#: utils/adt/domains.c:92 +#: utils/adt/domains.c:95 #, c-format msgid "type %s is not a domain" msgstr "%s 자료형은 도메인이 아닙니다" @@ -25537,10 +26687,10 @@ msgstr "base64 마침 조합이 잘못되었음" msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "입력값에 여백 처리값이 빠졌거나, 자료가 손상되었습니다." -#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 -#: utils/adt/varlena.c:331 utils/adt/varlena.c:372 jsonpath_gram.y:528 -#: jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 -#: jsonpath_scan.l:701 +#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:659 +#: utils/adt/varlena.c:333 utils/adt/varlena.c:374 jsonpath_gram.y:266 +#: jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 +#: jsonpath_scan.l:661 jsonpath_scan.l:712 #, c-format msgid "invalid input syntax for type %s" msgstr "%s 자료형에 대한 잘못된 입력 구문" @@ -25577,357 +26727,352 @@ msgstr "실제 열거형의 자료형을 확인할 수 없음" msgid "enum %s contains no values" msgstr "\"%s\" 열거형 자료에 값이 없음" -#: utils/adt/float.c:89 +#: utils/adt/float.c:83 #, c-format msgid "value out of range: overflow" msgstr "값이 범위를 벗어남: 오버플로" -#: utils/adt/float.c:97 +#: utils/adt/float.c:91 #, c-format msgid "value out of range: underflow" msgstr "값이 범위를 벗어남: 언더플로" -#: utils/adt/float.c:286 +#: utils/adt/float.c:280 #, c-format msgid "\"%s\" is out of range for type real" msgstr "\"%s\"는 real 자료형의 범위를 벗어납니다." -#: utils/adt/float.c:488 +#: utils/adt/float.c:482 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "\"%s\"는 double precision 자료형의 범위를 벗어납니다." -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1277 utils/adt/numeric.c:4593 utils/adt/numeric.c:4598 #, c-format msgid "smallint out of range" msgstr "smallint의 범위를 벗어났습니다." -#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 +#: utils/adt/float.c:1447 utils/adt/numeric.c:3709 utils/adt/numeric.c:10112 #, c-format msgid "cannot take square root of a negative number" msgstr "음수의 제곱근을 구할 수 없습니다." -#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 +#: utils/adt/float.c:1515 utils/adt/numeric.c:3997 utils/adt/numeric.c:4109 #, c-format msgid "zero raised to a negative power is undefined" msgstr "0의 음수 거듭제곱이 정의되어 있지 않음" -#: utils/adt/float.c:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 +#: utils/adt/float.c:1519 utils/adt/numeric.c:4001 utils/adt/numeric.c:11003 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "음수의 비정수 거듭제곱을 계산하면 복잡한 결과가 생성됨" -#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3909 +#: utils/adt/numeric.c:10783 #, c-format msgid "cannot take logarithm of zero" msgstr "0의 대수를 구할 수 없습니다." -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3847 +#: utils/adt/numeric.c:3904 utils/adt/numeric.c:10787 #, c-format msgid "cannot take logarithm of a negative number" msgstr "음수의 대수를 구할 수 없습니다." -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 +#: utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 +#: utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 +#: utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 +#: utils/adt/float.c:2696 utils/adt/float.c:2720 #, c-format msgid "input is out of range" msgstr "입력값이 범위를 벗어났습니다." -#: utils/adt/float.c:2867 -#, c-format -msgid "setseed parameter %g is out of allowed range [-1,1]" -msgstr "%g setseed 매개 변수가 [-1,1] 범위를 벗어났습니다." - -#: utils/adt/float.c:4095 utils/adt/numeric.c:1841 +#: utils/adt/float.c:4000 utils/adt/numeric.c:1857 #, c-format msgid "count must be greater than zero" msgstr "카운트 값은 0 보다 커야 합니다" -#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 +#: utils/adt/float.c:4005 utils/adt/numeric.c:1868 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "피연산자, 하한 및 상한은 NaN일 수 없음" -#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 +#: utils/adt/float.c:4011 utils/adt/numeric.c:1873 #, c-format msgid "lower and upper bounds must be finite" msgstr "하한 및 상한은 유한한 값이어야 함" -#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 +#: utils/adt/float.c:4077 utils/adt/numeric.c:1887 #, c-format msgid "lower bound cannot equal upper bound" msgstr "하한값은 상한값과 같을 수 없습니다" -#: utils/adt/formatting.c:519 +#: utils/adt/formatting.c:530 #, c-format msgid "invalid format specification for an interval value" msgstr "간격 값에 대한 형식 지정이 잘못됨" -#: utils/adt/formatting.c:520 +#: utils/adt/formatting.c:531 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "간격이 특정 달력 날짜에 연결되어 있지 않습니다." -#: utils/adt/formatting.c:1150 +#: utils/adt/formatting.c:1161 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\"는 사용된 마지막 패턴이어야 합니다." -#: utils/adt/formatting.c:1158 +#: utils/adt/formatting.c:1169 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\"는 \"PR\" 앞에 있어야 합니다." -#: utils/adt/formatting.c:1174 +#: utils/adt/formatting.c:1185 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\"은 \"PR\" 앞에 있어야 합니다." -#: utils/adt/formatting.c:1201 +#: utils/adt/formatting.c:1212 #, c-format msgid "multiple decimal points" msgstr "소숫점이 여러개 있습니다." -#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "\"V\" 와 소숫점을 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1217 +#: utils/adt/formatting.c:1228 #, c-format msgid "cannot use \"S\" twice" msgstr "\"S\"를 두 번 사용할 수 없음" -#: utils/adt/formatting.c:1221 +#: utils/adt/formatting.c:1232 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "\"S\" 와 \"PL\"/\"MI\"/\"SG\"/\"PR\" 를 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1241 +#: utils/adt/formatting.c:1252 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "\"S\" 와 \"MI\" 를 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1251 +#: utils/adt/formatting.c:1262 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "\"S\" 와 \"PL\" 를 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1261 +#: utils/adt/formatting.c:1272 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "\"S\" 와 \"SG\" 를 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1270 +#: utils/adt/formatting.c:1281 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "\"PR\" 와 \"S\"/\"PL\"/\"MI\"/\"SG\" 를 함께 쓸 수 없습니다." -#: utils/adt/formatting.c:1296 +#: utils/adt/formatting.c:1307 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "\"EEEE\"를 두 번 사용할 수 없음" -#: utils/adt/formatting.c:1302 +#: utils/adt/formatting.c:1313 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\"는 다른 포맷과 호환하지 않습니다" -#: utils/adt/formatting.c:1303 +#: utils/adt/formatting.c:1314 #, c-format msgid "" "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "\"EEEE\"는 숫자와 소수점 패턴, 이 두 형식과 함께 사용되어야 합니다." -#: utils/adt/formatting.c:1387 +#: utils/adt/formatting.c:1398 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "잘못된 datetime 양식 구분자: \"%s\"" -#: utils/adt/formatting.c:1514 +#: utils/adt/formatting.c:1525 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\"는 숫자가 아닙니다." -#: utils/adt/formatting.c:1592 +#: utils/adt/formatting.c:1603 #, c-format msgid "case conversion failed: %s" msgstr "잘못된 형 변환 규칙: %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 +#: utils/adt/formatting.c:1989 #, c-format msgid "could not determine which collation to use for %s function" msgstr "%s 함수에서 사용할 정렬규칙(collation)을 결정할 수 없음" -#: utils/adt/formatting.c:2274 +#: utils/adt/formatting.c:2410 #, c-format msgid "invalid combination of date conventions" msgstr "날짜 변환을 위한 잘못된 조합" -#: utils/adt/formatting.c:2275 +#: utils/adt/formatting.c:2411 #, c-format msgid "" "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "" "형식 템플릿에 그레고리오력과 ISO week date 변환을 함께 사용하지 마십시오." -#: utils/adt/formatting.c:2297 +#: utils/adt/formatting.c:2433 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "형식 문자열에서 \"%s\" 필드의 값이 충돌함" -#: utils/adt/formatting.c:2299 +#: utils/adt/formatting.c:2435 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "이 값은 동일한 필드 형식의 이전 설정과 모순됩니다." -#: utils/adt/formatting.c:2366 +#: utils/adt/formatting.c:2502 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "소스 문자열이 너무 짧아서 \"%s\" 형식 필드에 사용할 수 없음" -#: utils/adt/formatting.c:2368 +#: utils/adt/formatting.c:2504 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "필드에 %d자가 필요한데 %d자만 남았습니다." -#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 +#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 #, c-format msgid "" "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "소스 문자열이 고정 너비가 아닌 경우 \"FM\" 한정자를 사용해 보십시오." -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 +#: utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "\"%s\" 값은 \"%s\"에 유효하지 않음" -#: utils/adt/formatting.c:2382 +#: utils/adt/formatting.c:2518 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "필드에 %d자가 필요한데 %d자만 구문 분석할 수 있습니다." -#: utils/adt/formatting.c:2395 +#: utils/adt/formatting.c:2531 #, c-format msgid "Value must be an integer." msgstr "값은 정수여야 합니다." -#: utils/adt/formatting.c:2400 +#: utils/adt/formatting.c:2536 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "소스 문자열의 \"%s\" 값이 범위를 벗어남" -#: utils/adt/formatting.c:2402 +#: utils/adt/formatting.c:2538 #, c-format msgid "Value must be in the range %d to %d." msgstr "값은 %d에서 %d 사이의 범위에 있어야 합니다." -#: utils/adt/formatting.c:2616 +#: utils/adt/formatting.c:2752 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "지정된 값이 이 필드에 허용되는 값과 일치하지 않습니다." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 +#: utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 +#: utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 +#: utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 +#: utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 +#: utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 #, c-format msgid "localized string format value too long" msgstr "자국어화 문자열 포멧 값이 너무 깁니다" -#: utils/adt/formatting.c:3322 +#: utils/adt/formatting.c:3458 #, c-format msgid "unmatched format separator \"%c\"" msgstr "맞지 않는 구분자 포멧 \"%c\"" -#: utils/adt/formatting.c:3383 +#: utils/adt/formatting.c:3519 #, c-format msgid "unmatched format character \"%s\"" msgstr "짝이 안 맞는 \"%s\" 문자" -#: utils/adt/formatting.c:3491 +#: utils/adt/formatting.c:3652 #, c-format -msgid "formatting field \"%s\" is only supported in to_char" -msgstr "\"%s\" 필드 양식은 to_char 함수에서만 지원합니다." +msgid "Time zone abbreviation is not recognized." +msgstr "시간대 약어를 알 수 없습니다." -#: utils/adt/formatting.c:3665 +#: utils/adt/formatting.c:3853 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "\"Y,YYY\"에 대한 입력 문자열이 잘못됨" -#: utils/adt/formatting.c:3754 +#: utils/adt/formatting.c:3942 #, c-format msgid "input string is too short for datetime format" msgstr "입력 문자열이 datetime 양식용으로는 너무 짧습니다" -#: utils/adt/formatting.c:3762 +#: utils/adt/formatting.c:3950 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "날짜 및 시간 형식 후 입력 문자열에 남은 문자가 있습니다." -#: utils/adt/formatting.c:4319 +#: utils/adt/formatting.c:4494 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "timestamptz 자료형을 위한 입력 문자열에 시간대가 누락되었습니다." -#: utils/adt/formatting.c:4325 +#: utils/adt/formatting.c:4500 #, c-format msgid "timestamptz out of range" msgstr "timestamptz 범위를 벗어남" -#: utils/adt/formatting.c:4353 +#: utils/adt/formatting.c:4528 #, c-format msgid "datetime format is zoned but not timed" msgstr "datetime 양식이 지역시간대값이 있는데, 시간값이 아님" -#: utils/adt/formatting.c:4411 +#: utils/adt/formatting.c:4577 #, c-format msgid "missing time zone in input string for type timetz" msgstr "timetz 자료형을 위한 입력 문자열에 시간대가 누락되었습니다." -#: utils/adt/formatting.c:4417 +#: utils/adt/formatting.c:4583 #, c-format msgid "timetz out of range" msgstr "timetz 범위를 벗어남" -#: utils/adt/formatting.c:4443 +#: utils/adt/formatting.c:4609 #, c-format msgid "datetime format is not dated and not timed" msgstr "날짜시간 형식이 날짜도 아니고, 시간도 아닙니다." -#: utils/adt/formatting.c:4575 +#: utils/adt/formatting.c:4786 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "시간 \"%d\"은(는) 12시간제에 유효하지 않음" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4788 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "24시간제를 사용하거나 1에서 12 사이의 시간을 지정하십시오." -#: utils/adt/formatting.c:4689 +#: utils/adt/formatting.c:4900 #, c-format msgid "cannot calculate day of year without year information" msgstr "연도 정보 없이 몇번째 날(day of year) 인지 계산할 수 없습니다." -#: utils/adt/formatting.c:5621 +#: utils/adt/formatting.c:5852 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" 입력 양식은 지원되지 않습니다." -#: utils/adt/formatting.c:5633 +#: utils/adt/formatting.c:5864 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" 입력 양식은 지원되지 않습니다." @@ -25959,12 +27104,7 @@ msgstr "\"%s\" 파일에서 seek 작업을 할 수 없음: %m" msgid "file length too large" msgstr "파일 길이가 너무 깁니다" -#: utils/adt/genfile.c:248 -#, c-format -msgid "must be superuser to read files with adminpack 1.0" -msgstr "adminpack 1.0 확장 모듈을 사용할 때는 파일을 읽으려면 슈퍼유져여야함" - -#: utils/adt/genfile.c:702 +#: utils/adt/genfile.c:656 #, c-format msgid "tablespace with OID %u does not exist" msgstr "OID %u 테이블스페이스 없음" @@ -26020,295 +27160,295 @@ msgstr "적어도 2개의 point들이 필요합니다." msgid "invalid int2vector data" msgstr "잘못된 int2vector 자료" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5797 utils/adt/timestamp.c:5879 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1765 +#: utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 #, c-format msgid "step size cannot equal zero" msgstr "단계 크기는 0일 수 없음" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 +#: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 +#: utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 +#: utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 +#: utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 +#: utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 +#: utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 +#: utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 +#: utils/adt/int8.c:1055 utils/adt/int8.c:1069 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 +#: utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4542 +#: utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint의 범위를 벗어났습니다." -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1360 #, c-format msgid "OID out of range" msgstr "OID의 범위를 벗어났습니다." -#: utils/adt/json.c:320 utils/adt/jsonb.c:781 +#: utils/adt/json.c:202 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "" "키 값은 스칼라 형이어야 함. 배열, 복합 자료형, json 형은 사용할 수 없음" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "%d번째 인자의 자료형을 알수가 없습니다." -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1067 utils/adt/json.c:1266 utils/adt/json.c:1449 +#: utils/adt/json.c:1527 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "개체 키 값으로 null 을 허용하지 않음" -#: utils/adt/json.c:1189 utils/adt/json.c:1352 +#: utils/adt/json.c:1117 utils/adt/json.c:1288 #, c-format msgid "duplicate JSON object key value: %s" msgstr "JSON 객체 키 값 중복: %s" -#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 +#: utils/adt/json.c:1226 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "인자 목록은 요소수의 짝수개여야 합니다." #. translator: %s is a SQL function name -#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 +#: utils/adt/json.c:1228 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "%s 함수의 인자들은 각각 key, value 쌍으로 있어야 합니다." -#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 +#: utils/adt/json.c:1427 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "배열은 두개의 칼럼이어야 함" -#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 +#: utils/adt/json.c:1516 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "배열 차수가 안맞음" -#: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 +#: utils/adt/json.c:1702 utils/adt/jsonb_util.c:1956 #, c-format msgid "duplicate JSON object key value" msgstr "JSON 객체 키 값 중복" -#: utils/adt/jsonb.c:294 +#: utils/adt/jsonb.c:282 #, c-format msgid "string too long to represent as jsonb string" msgstr "jsonb 문자열로 길이를 초과함" -#: utils/adt/jsonb.c:295 +#: utils/adt/jsonb.c:283 #, c-format msgid "" "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "구현상 제한으로 jsonb 문자열은 %d 바이트를 넘을 수 없습니다." -#: utils/adt/jsonb.c:1252 +#: utils/adt/jsonb.c:1153 #, c-format msgid "argument %d: key must not be null" msgstr "%d 번째 인자: 키 값은 null이면 안됩니다." -#: utils/adt/jsonb.c:1843 +#: utils/adt/jsonb.c:1744 #, c-format msgid "field name must not be null" msgstr "필드 이름이 null 이면 안됩니다" -#: utils/adt/jsonb.c:1905 +#: utils/adt/jsonb.c:1806 #, c-format msgid "object keys must be strings" msgstr "개체 키는 문자열이어야 합니다" -#: utils/adt/jsonb.c:2116 +#: utils/adt/jsonb.c:2017 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "jsonb null 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2117 +#: utils/adt/jsonb.c:2018 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "jsonb 문자열 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2118 +#: utils/adt/jsonb.c:2019 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "jsonb 숫자 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2119 +#: utils/adt/jsonb.c:2020 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "jsonb 불리언 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2120 +#: utils/adt/jsonb.c:2021 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "jsonb 배열 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2121 +#: utils/adt/jsonb.c:2022 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "jsonb object 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb.c:2122 +#: utils/adt/jsonb.c:2023 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "jsonb object나 배열 값을 %s 자료형으로 형 변환 할 수 없음" -#: utils/adt/jsonb_util.c:758 +#: utils/adt/jsonb_util.c:756 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "jsonb 개체 쌍의 개수가 최대치를 초과함 (%zu)" -#: utils/adt/jsonb_util.c:799 +#: utils/adt/jsonb_util.c:797 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "jsonb 배열 요소 개수가 최대치를 초과함 (%zu)" -#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 +#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "jsonb 배열 요소 총 크기가 최대치를 초과함 (%d 바이트)" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 +#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 +#: utils/adt/jsonb_util.c:1807 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "jsonb 개체 요소들의 총 크기가 최대치를 초과함 (%d 바이트)" -#: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 +#: utils/adt/jsonbsubs.c:67 utils/adt/jsonbsubs.c:148 #, c-format msgid "jsonb subscript does not support slices" msgstr "jsonb 서브스크립트가 slice를 지원하지 않음" -#: utils/adt/jsonbsubs.c:103 utils/adt/jsonbsubs.c:117 +#: utils/adt/jsonbsubs.c:100 utils/adt/jsonbsubs.c:114 #, c-format msgid "subscript type %s is not supported" msgstr "%s 자료형은 서브스크립트를 지원하지 않음" -#: utils/adt/jsonbsubs.c:104 +#: utils/adt/jsonbsubs.c:101 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." msgstr "jsonb 서브스크립트로는 숫자 또는 문자열 중 하나만 쓸 수 있음" -#: utils/adt/jsonbsubs.c:118 +#: utils/adt/jsonbsubs.c:115 #, c-format msgid "jsonb subscript must be coercible to either integer or text." msgstr "jsonb 서브스크립트로는 숫자 또는 문자열 중 하나만 쓸 수 있음" -#: utils/adt/jsonbsubs.c:139 +#: utils/adt/jsonbsubs.c:136 #, c-format msgid "jsonb subscript must have text type" msgstr "배열 서브스크립트는 반드시 문자열이어야합니다." -#: utils/adt/jsonbsubs.c:207 +#: utils/adt/jsonbsubs.c:204 #, c-format msgid "jsonb subscript in assignment must not be null" msgstr "jsonb 서브스크립트로 null 값이 올 수 없음" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:583 utils/adt/jsonfuncs.c:830 +#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:3015 +#: utils/adt/jsonfuncs.c:3948 utils/adt/jsonfuncs.c:4295 #, c-format msgid "cannot call %s on a scalar" msgstr "스칼라형에서는 %s 호출 할 수 없음" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:588 utils/adt/jsonfuncs.c:815 +#: utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3935 #, c-format msgid "cannot call %s on an array" msgstr "배열형에서는 %s 호출 할 수 없음" -#: utils/adt/jsonfuncs.c:636 jsonpath_scan.l:596 +#: utils/adt/jsonfuncs.c:647 jsonpath_scan.l:607 #, c-format msgid "unsupported Unicode escape sequence" msgstr "지원하지 않는 유니코드 이스케이프 조합" -#: utils/adt/jsonfuncs.c:713 +#: utils/adt/jsonfuncs.c:724 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "JSON 자료, %d 번째 줄: %s%s%s" -#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 +#: utils/adt/jsonfuncs.c:1883 utils/adt/jsonfuncs.c:1920 #, c-format msgid "cannot get array length of a scalar" msgstr "스칼라형의 배열 길이를 구할 수 없음" -#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 +#: utils/adt/jsonfuncs.c:1887 utils/adt/jsonfuncs.c:1906 #, c-format msgid "cannot get array length of a non-array" msgstr "비배열형 자료의 배열 길이를 구할 수 없음" -#: utils/adt/jsonfuncs.c:1978 +#: utils/adt/jsonfuncs.c:1986 #, c-format msgid "cannot call %s on a non-object" msgstr "비개체형에서 %s 호출 할 수 없음" -#: utils/adt/jsonfuncs.c:2166 +#: utils/adt/jsonfuncs.c:2174 #, c-format msgid "cannot deconstruct an array as an object" msgstr "배열을 객체로 해체할 수 없음" -#: utils/adt/jsonfuncs.c:2180 +#: utils/adt/jsonfuncs.c:2188 #, c-format msgid "cannot deconstruct a scalar" msgstr "스칼라형으로 재구축할 수 없음" -#: utils/adt/jsonfuncs.c:2225 +#: utils/adt/jsonfuncs.c:2233 #, c-format msgid "cannot extract elements from a scalar" msgstr "스칼라형에서 요소를 추출할 수 없음" -#: utils/adt/jsonfuncs.c:2229 +#: utils/adt/jsonfuncs.c:2237 #, c-format msgid "cannot extract elements from an object" msgstr "개체형에서 요소를 추출할 수 없음" -#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 +#: utils/adt/jsonfuncs.c:2424 utils/adt/jsonfuncs.c:4173 #, c-format msgid "cannot call %s on a non-array" msgstr "비배열형에서 %s 호출 할 수 없음" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2515 utils/adt/jsonfuncs.c:2520 +#: utils/adt/jsonfuncs.c:2538 utils/adt/jsonfuncs.c:2544 #, c-format msgid "expected JSON array" msgstr "예기치 않은 json 배열" -#: utils/adt/jsonfuncs.c:2489 +#: utils/adt/jsonfuncs.c:2516 #, c-format msgid "See the value of key \"%s\"." msgstr "\"%s\" 키의 값을 지정하세요" -#: utils/adt/jsonfuncs.c:2511 +#: utils/adt/jsonfuncs.c:2539 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "%s 배열 요소, 해당 키: \"%s\" 참조" -#: utils/adt/jsonfuncs.c:2517 +#: utils/adt/jsonfuncs.c:2545 #, c-format msgid "See the array element %s." msgstr "배열 요소: %s 참조" -#: utils/adt/jsonfuncs.c:2552 +#: utils/adt/jsonfuncs.c:2597 #, c-format msgid "malformed JSON array" msgstr "잘못된 json 배열" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3389 +#: utils/adt/jsonfuncs.c:3647 #, c-format msgid "first argument of %s must be a row type" msgstr "%s의 첫번째 인자는 row 형이어야 합니다" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3413 +#: utils/adt/jsonfuncs.c:3671 #, c-format msgid "could not determine row type for result of %s" msgstr "%s 함수의 반환 로우 자료형을 알수가 없음" -#: utils/adt/jsonfuncs.c:3415 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "" "Provide a non-null record argument, or call the function in the FROM clause " @@ -26317,52 +27457,52 @@ msgstr "" "non-null 레코드 인자를 지정하거나, 함수를 호출 할 때 FROM 절에서 칼럼 정의 목" "록도 함께 지정해야 합니다." -#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4059 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "materialize 모드가 필요합니다만, 이 구문에서는 허용되지 않습니다" -#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 +#: utils/adt/jsonfuncs.c:4190 utils/adt/jsonfuncs.c:4274 #, c-format msgid "argument of %s must be an array of objects" msgstr "%s의 인자는 개체의 배열이어야 합니다" -#: utils/adt/jsonfuncs.c:3946 +#: utils/adt/jsonfuncs.c:4223 #, c-format msgid "cannot call %s on an object" msgstr "개체에서 %s 호출할 수 없음" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4656 utils/adt/jsonfuncs.c:4715 +#: utils/adt/jsonfuncs.c:4795 #, c-format msgid "cannot delete from scalar" msgstr "스칼라형에서 삭제 할 수 없음" -#: utils/adt/jsonfuncs.c:4524 +#: utils/adt/jsonfuncs.c:4800 #, c-format msgid "cannot delete from object using integer index" msgstr "인덱스 번호를 사용해서 개체에서 삭제 할 수 없음" -#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 +#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:5027 #, c-format msgid "cannot set path in scalar" msgstr "스칼라형에는 path 를 지정할 수 없음" -#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 +#: utils/adt/jsonfuncs.c:4909 utils/adt/jsonfuncs.c:4951 #, c-format msgid "" "null_value_treatment must be \"delete_key\", \"return_target\", " "\"use_json_null\", or \"raise_exception\"" msgstr "" -"null_value_treatment 값은 \"delete_key\", \"return_target\", \"use_json_null" -"\" 또는 \"raise_exception\" 이어야 합니다." +"null_value_treatment 값은 \"delete_key\", \"return_target\", " +"\"use_json_null\" 또는 \"raise_exception\" 이어야 합니다." -#: utils/adt/jsonfuncs.c:4646 +#: utils/adt/jsonfuncs.c:4922 #, c-format msgid "JSON value must not be null" msgstr "JSON 값으로 null을 사용할 수 없음" -#: utils/adt/jsonfuncs.c:4647 +#: utils/adt/jsonfuncs.c:4923 #, c-format msgid "" "Exception was raised because null_value_treatment is \"raise_exception\"." @@ -26370,7 +27510,7 @@ msgstr "" "null_value_treatment 설정값이 \"raise_exception\"으로 되어 있어 예외를 일으켰" "습니다." -#: utils/adt/jsonfuncs.c:4648 +#: utils/adt/jsonfuncs.c:4924 #, c-format msgid "" "To avoid, either change the null_value_treatment argument or ensure that an " @@ -26379,231 +27519,335 @@ msgstr "" "이 상황을 피하려면, null_value_treatment 설정을 바꾸든지, SQL NULL 값을 사용" "하지 않아야 합니다." -#: utils/adt/jsonfuncs.c:4703 +#: utils/adt/jsonfuncs.c:4979 #, c-format msgid "cannot delete path in scalar" msgstr "스칼라형에서 path를 지울 수 없음" -#: utils/adt/jsonfuncs.c:4917 +#: utils/adt/jsonfuncs.c:5193 #, c-format msgid "path element at position %d is null" msgstr "%d 위치의 path 요소는 null 입니다." -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:5212 utils/adt/jsonfuncs.c:5243 +#: utils/adt/jsonfuncs.c:5316 #, c-format msgid "cannot replace existing key" msgstr "이미 있는 키로는 대체할 수 없음" -#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 +#: utils/adt/jsonfuncs.c:5213 utils/adt/jsonfuncs.c:5244 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "path assumes key는 복합 자료형인데, 스칼라 값이 사용되고 있습니다." -#: utils/adt/jsonfuncs.c:5041 +#: utils/adt/jsonfuncs.c:5317 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "키 값을 변경하려면, jsonb_set 함수를 사용하세요." -#: utils/adt/jsonfuncs.c:5145 +#: utils/adt/jsonfuncs.c:5421 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "%d 번째 위치의 path 요소는 정수가 아님: \"%s\"" -#: utils/adt/jsonfuncs.c:5162 +#: utils/adt/jsonfuncs.c:5438 #, c-format msgid "path element at position %d is out of range: %d" msgstr "%d 번째 위치의 path 요소는 범위를 벗어남: %d" -#: utils/adt/jsonfuncs.c:5314 +#: utils/adt/jsonfuncs.c:5590 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "잘못된 플래그 자료형, 배열이나, 스칼라 형만 허용합니다." -#: utils/adt/jsonfuncs.c:5321 +#: utils/adt/jsonfuncs.c:5597 #, c-format msgid "flag array element is not a string" msgstr "플래그 배열 요소가 문자열이 아님" -#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 +#: utils/adt/jsonfuncs.c:5598 utils/adt/jsonfuncs.c:5620 #, c-format msgid "" -"Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all" -"\"." +"Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and " +"\"all\"." msgstr "" "사용 가능한 값: \"string\", \"numeric\", \"boolean\", \"key\", \"all\"." -#: utils/adt/jsonfuncs.c:5342 +#: utils/adt/jsonfuncs.c:5618 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "플래그 배열 안에 잘못된 플래그: \"%s\"" -#: utils/adt/jsonpath.c:382 +#: utils/adt/jsonpath.c:389 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ 기호는 루트 표현식에서는 사용할 수 없음" -#: utils/adt/jsonpath.c:388 +#: utils/adt/jsonpath.c:395 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST 키워드는 배열 하위 스크립트 전용임" -#: utils/adt/jsonpath_exec.c:361 +#: utils/adt/jsonpath_exec.c:491 #, c-format msgid "single boolean result is expected" msgstr "단일 불리언 반환값이 예상 됨" -#: utils/adt/jsonpath_exec.c:557 +#: utils/adt/jsonpath_exec.c:851 #, c-format -msgid "\"vars\" argument is not an object" -msgstr "\"vars\" 인자가 객체가 아닙니다." +msgid "jsonpath wildcard array accessor can only be applied to an array" +msgstr "jsonpath wildcard array accessor는 하나의 배열을 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:558 +#: utils/adt/jsonpath_exec.c:874 #, c-format -msgid "" -"Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "jsonpath 매개 변수는 \"vars\" 객체의 키-값 쌍으로 인코드 되어야합니다." +msgid "jsonpath wildcard member accessor can only be applied to an object" +msgstr "jsonpath wildcard member accessor는 하나의 객체를 대상으로 합니다." + +#: utils/adt/jsonpath_exec.c:923 +#, c-format +msgid "jsonpath array subscript is out of bounds" +msgstr "jsonpath 배열 하위 스크립트 범위를 초과했습니다" + +#: utils/adt/jsonpath_exec.c:980 +#, c-format +msgid "jsonpath array accessor can only be applied to an array" +msgstr "jsonpath array accessor는 하나의 배열을 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:675 +#: utils/adt/jsonpath_exec.c:1044 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "JSON 객체 안에 \"%s\" 이름의 키가 없습니다." -#: utils/adt/jsonpath_exec.c:687 +#: utils/adt/jsonpath_exec.c:1056 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "jsonpath member accessor는 하나의 객체를 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:716 +#: utils/adt/jsonpath_exec.c:1114 #, c-format -msgid "jsonpath wildcard array accessor can only be applied to an array" -msgstr "jsonpath wildcard array accessor는 하나의 배열을 대상으로 합니다." +msgid "jsonpath item method .%s() can only be applied to an array" +msgstr "jsonpath .%s() item method는 하나의 배열을 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:764 +#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 #, c-format -msgid "jsonpath array subscript is out of bounds" -msgstr "jsonpath 배열 하위 스크립트 범위를 초과했습니다" +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type double " +"precision" +msgstr "" +"\"%s\" 인자(대상 jsonpath 아이템 메서드: .%s())는 바르지 않은 double precision형임" -#: utils/adt/jsonpath_exec.c:821 +#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 +#: utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 #, c-format -msgid "jsonpath array accessor can only be applied to an array" -msgstr "jsonpath array accessor는 하나의 배열을 대상으로 합니다." +msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" +msgstr "jsonpath item method .%s()용으로 NaN 또는 Infinity는 허용하지 않음" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 +#: utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 #, c-format -msgid "jsonpath wildcard member accessor can only be applied to an object" -msgstr "jsonpath wildcard member accessor는 하나의 객체를 대상으로 합니다." +msgid "" +"jsonpath item method .%s() can only be applied to a string or numeric value" +msgstr "jsonpath item method .%s() 대상은 문자열이나, 숫자 값만 허용합니다." -#: utils/adt/jsonpath_exec.c:1007 +#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 #, c-format -msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "jsonpath .%s() item method는 하나의 배열을 대상으로 합니다." +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" +msgstr "" +"\"%s\" 인자(대상 jsonpath 아이템 메서드: .%s())는 바르지 않은 bigint형임" -#: utils/adt/jsonpath_exec.c:1060 +#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 #, c-format msgid "" -"numeric argument of jsonpath item method .%s() is out of range for type " -"double precision" +"argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" msgstr "" -"jsonpath 아이템 메서드 .%s() 의 숫자 인자가 double precision 형의 범위를 벗어" -"남" +"\"%s\" 인자(대상 jsonpath 아이템 메서드: .%s())는 바르지 않은 boolean형임" + +#: utils/adt/jsonpath_exec.c:1386 +#, c-format +msgid "" +"jsonpath item method .%s() can only be applied to a boolean, string, or " +"numeric value" +msgstr "jsonpath item method .%s() 대상은 불리언, 문자열이나, 숫자 값만 허용합니다." -#: utils/adt/jsonpath_exec.c:1081 +#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 #, c-format msgid "" -"string argument of jsonpath item method .%s() is not a valid representation " -"of a double precision number" +"argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" msgstr "" -"jsonpath item method .%s()의 문자열 인자가 double precision 숫자로 표현되는 " -"형식이 아닙니다." +"\"%s\" 인자(대상 jsonpath 아이템 메서드: .%s())는 바르지 않은 numeric형임" -#: utils/adt/jsonpath_exec.c:1094 +#: utils/adt/jsonpath_exec.c:1487 #, c-format msgid "" -"jsonpath item method .%s() can only be applied to a string or numeric value" -msgstr "jsonpath item method .%s() 대상은 문자열이나, 숫자 값만 허용합니다." +"precision of jsonpath item method .%s() is out of range for type integer" +msgstr "" +"jsonpath 아이템 메서드 .%s() 의 precision이 정수 범위를 벗어남" + +#: utils/adt/jsonpath_exec.c:1501 +#, c-format +msgid "scale of jsonpath item method .%s() is out of range for type integer" +msgstr "" +"jsonpath 아이템 메서드 .%s() 의 스케일이 정수 범위를 벗어남" + +#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 +#, c-format +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type integer" +msgstr "" +"\"%s\" 인자(대상 jsonpath 아이템 메서드: .%s())는 바르지 않은 integer형임" + +#: utils/adt/jsonpath_exec.c:1648 +#, c-format +msgid "" +"jsonpath item method .%s() can only be applied to a boolean, string, " +"numeric, or datetime value" +msgstr "jsonpath item method .%s() 대상은 불리언, 문자열이나, 숫자 값만 허용합니다." -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:2137 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "jsonpath %s 연산자의 왼쪽 값이 단일 숫자값이 아닙니다." -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:2144 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "jsonpath %s 연산자의 오른쪽 값이 단일 숫자값이 아닙니다." -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:2212 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "jsonpath %s 단항 연산용 값이 숫자가 아닙니다." -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:2311 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "jsonpath .%s() 항목 메서드는 숫자값만 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:2357 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "jsonpath .%s() 항목 메서드는 문자열만 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:2450 +#, c-format +msgid "" +"time precision of jsonpath item method .%s() is out of range for type integer" +msgstr "" +"jsonpath 아이템 메서드 .%s()의 time precision이 정수 범위를 벗어남" + +#: utils/adt/jsonpath_exec.c:2484 utils/adt/jsonpath_exec.c:2490 +#: utils/adt/jsonpath_exec.c:2517 utils/adt/jsonpath_exec.c:2545 +#: utils/adt/jsonpath_exec.c:2598 utils/adt/jsonpath_exec.c:2649 +#: utils/adt/jsonpath_exec.c:2720 #, c-format -msgid "datetime format is not recognized: \"%s\"" -msgstr "알 수 없는 datetime 양식: \"%s\"" +msgid "%s format is not recognized: \"%s\"" +msgstr "%s 포멧은 알 수 없음: \"%s\"" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:2486 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "입력 자료 형식을 지정하는 datetime 템플릿 인자를 사용하세요." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:2679 utils/adt/jsonpath_exec.c:2760 +#, c-format +msgid "time precision of jsonpath item method .%s() is invalid" +msgstr "" +"jsonpath 아이템 메서드 .%s() 의 time precision이 잘못됨" +"남" + +#: utils/adt/jsonpath_exec.c:2840 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "jsonpath .%s() 항목 메서드는 객체만 대상으로 합니다." -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:3124 +#, c-format +msgid "could not convert value of type %s to jsonpath" +msgstr "%s 자료형의 값이 jsonpath 형으로 변환될 수 없음" + +#: utils/adt/jsonpath_exec.c:3158 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "\"%s\" jsonpath 변수 찾기 실패" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:3211 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "\"vars\" 인자가 객체가 아닙니다." + +#: utils/adt/jsonpath_exec.c:3212 +#, c-format +msgid "" +"Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "jsonpath 매개 변수는 \"vars\" 객체의 키-값 쌍으로 인코드 되어야합니다." + +#: utils/adt/jsonpath_exec.c:3475 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "jsonpath 배열 첨자가 단일 숫자값이 아닙니다." -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:3487 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "jsonpath 배열 하위 스크립트가 정수 범위를 초과했음" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:3671 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "지역 시간대 지정 없이는 %s에서 %s로 값을 바꿀 수 없습니다." -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:3673 #, c-format msgid "Use *_tz() function for time zone support." msgstr "지역 시간대를 지정하려면, *_tz() 함수를 사용하세요." +#: utils/adt/jsonpath_exec.c:3981 +#, c-format +msgid "" +"JSON path expression for column \"%s\" should return single item without " +"wrapper" +msgstr "" +"\"%s\" 칼럼의 JSON 패스 표현식은 wrapper 없이 단일 아이템을 반환해야 함" + +#: utils/adt/jsonpath_exec.c:3983 utils/adt/jsonpath_exec.c:3988 +#, c-format +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." +msgstr "SQL/JSON 아이템을 배열로 만들려면, WITH WRAPPER 절을 사용하세요." + +#: utils/adt/jsonpath_exec.c:3987 +#, c-format +msgid "" +"JSON path expression in JSON_QUERY should return single item without wrapper" +msgstr "" +"JSON_QUERY 안 JSON 패스 표현식은 wrapper 없이 단일 아이템을 반환해야 함" + +#: utils/adt/jsonpath_exec.c:4045 utils/adt/jsonpath_exec.c:4069 +#, c-format +msgid "JSON path expression for column \"%s\" should return single scalar item" +msgstr "\"%s\" 칼럼을 위한 JSON 패스 표현식은 단일 스칼라 아이템을 반환해야 함" + +#: utils/adt/jsonpath_exec.c:4050 utils/adt/jsonpath_exec.c:4074 +#, c-format +msgid "JSON path expression in JSON_VALUE should return single scalar item" +msgstr "JSON_VALUE 안 JSON 패스 표현식은 단일 스칼라 아이템을 반환해야 함" + #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "levenshtein 인자값으로 그 길이가 %d 문자의 최대 길이를 초과했음" -#: utils/adt/like.c:161 +#: utils/adt/like.c:159 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "LIKE 연산에서 사용할 비결정 정렬규칙(collation)은 지원하지 않음" -#: utils/adt/like.c:190 utils/adt/like_support.c:1024 +#: utils/adt/like.c:188 utils/adt/like_support.c:1023 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "ILIKE 연산에서 사용할 정렬규칙(collation)을 결정할 수 없음" -#: utils/adt/like.c:202 +#: utils/adt/like.c:200 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "ILIKE 연산에서 사용할 비결정 정렬규칙(collation)은 지원하지 않음" @@ -26613,22 +27857,22 @@ msgstr "ILIKE 연산에서 사용할 비결정 정렬규칙(collation)은 지원 msgid "LIKE pattern must not end with escape character" msgstr "LIKE 패턴은 이스케이프 문자로 끝나지 않아야 함" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "잘못된 이스케이프 문자열" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "이스케이프 문자열은 비어있거나 한개의 문자여야 합니다." -#: utils/adt/like_support.c:1014 +#: utils/adt/like_support.c:1013 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "bytea 형식에서는 대/소문자를 구분하지 않는 일치가 지원되지 않음" -#: utils/adt/like_support.c:1115 +#: utils/adt/like_support.c:1114 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "bytea 형식에서는 정규식 일치가 지원되지 않음" @@ -26638,12 +27882,12 @@ msgstr "bytea 형식에서는 정규식 일치가 지원되지 않음" msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "\"macaddr\"에 대한 잘못된 옥텟(octet) 값: \"%s\"" -#: utils/adt/mac8.c:554 +#: utils/adt/mac8.c:555 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "macaddr8 자료가 macaddr 형으로 변환하기에는 그 범위가 너무 넓습니다." -#: utils/adt/mac8.c:555 +#: utils/adt/mac8.c:556 #, c-format msgid "" "Only addresses that have FF and FE as values in the 4th and 5th bytes from " @@ -26653,7 +27897,7 @@ msgstr "" "macaddr8에서 macaddr 형으로 변환 할 수 있는 값은 왼쪽에서 4번째, 5번째 바이트" "가 FF와 FE 값(예: xx:xx:xx:ff:fe:xx:xx:xx)인 경우일 때만입니다." -#: utils/adt/mcxtfuncs.c:182 +#: utils/adt/mcxtfuncs.c:173 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d 프로그램은 PostgreSQL 서버 프로세스가 아닙니다" @@ -26686,76 +27930,76 @@ msgstr "예약됨" #: utils/adt/misc.c:477 msgid "can be bare label" -msgstr "" +msgstr "베어 라벨 가능" #: utils/adt/misc.c:482 msgid "requires AS" msgstr "AS 필요함" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:897 utils/adt/misc.c:911 utils/adt/misc.c:950 +#: utils/adt/misc.c:956 utils/adt/misc.c:962 utils/adt/misc.c:985 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "문자열이 타당한 식별자가 아님: \"%s\"" -#: utils/adt/misc.c:855 +#: utils/adt/misc.c:899 #, c-format msgid "String has unclosed double quotes." msgstr "문자열 표기에서 큰따옴표 짝이 안맞습니다." -#: utils/adt/misc.c:869 +#: utils/adt/misc.c:913 #, c-format msgid "Quoted identifier must not be empty." msgstr "인용부호 있는 식별자: 비어있으면 안됩니다" -#: utils/adt/misc.c:908 +#: utils/adt/misc.c:952 #, c-format msgid "No valid identifier before \".\"." msgstr "\".\" 전에 타당한 식별자가 없음" -#: utils/adt/misc.c:914 +#: utils/adt/misc.c:958 #, c-format msgid "No valid identifier after \".\"." msgstr "\".\" 뒤에 타당한 식별자 없음" -#: utils/adt/misc.c:974 +#: utils/adt/misc.c:1018 #, c-format msgid "log format \"%s\" is not supported" msgstr "\"%s\" 양식의 로그는 지원하지 않습니다" -#: utils/adt/misc.c:975 +#: utils/adt/misc.c:1019 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "사용할 수 있는 로그 양식은 \"stderr\", \"csvlog\", \"jsonlog\" 입니다." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:150 utils/adt/multirangetypes.c:163 +#: utils/adt/multirangetypes.c:192 utils/adt/multirangetypes.c:266 +#: utils/adt/multirangetypes.c:290 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "비정상적인 multirange 문자열: \"%s\"" -#: utils/adt/multirangetypes.c:153 +#: utils/adt/multirangetypes.c:152 #, c-format msgid "Missing left brace." msgstr "왼쪽 중괄호가 필요합니다." -#: utils/adt/multirangetypes.c:195 +#: utils/adt/multirangetypes.c:194 #, c-format msgid "Expected range start." msgstr "범위 시작값 없음" -#: utils/adt/multirangetypes.c:269 +#: utils/adt/multirangetypes.c:268 #, c-format msgid "Expected comma or end of multirange." msgstr "multirange 구분자(,) 또는 끝이 없습니다." -#: utils/adt/multirangetypes.c:982 +#: utils/adt/multirangetypes.c:981 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "다중 차원 배열은 다중 범위 자료형으로 구성할 수 없습니다." -#: utils/adt/multirangetypes.c:1008 +#: utils/adt/multirangetypes.c:1007 #, c-format msgid "multirange values cannot contain null members" msgstr "multirange의 한 범위로 null 값이 올 수 없음" @@ -26834,102 +28078,122 @@ msgstr "결과가 범위를 벗어났습니다." msgid "cannot subtract inet values of different sizes" msgstr "inet 값에서 서로 크기가 틀리게 부분 추출(subtract)할 수 없음" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:793 utils/adt/numeric.c:3659 utils/adt/numeric.c:7216 +#: utils/adt/numeric.c:7419 utils/adt/numeric.c:7891 utils/adt/numeric.c:10586 +#: utils/adt/numeric.c:11061 utils/adt/numeric.c:11155 +#: utils/adt/numeric.c:11290 #, c-format msgid "value overflows numeric format" msgstr "값이 수치 형식에 넘처남" -#: utils/adt/numeric.c:1098 +#: utils/adt/numeric.c:1106 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "외부 \"numeric\" 값의 부호가 잘못됨" -#: utils/adt/numeric.c:1104 +#: utils/adt/numeric.c:1112 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "외부 \"numeric\" 값의 잘못된 스케일" -#: utils/adt/numeric.c:1113 +#: utils/adt/numeric.c:1121 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "외부 \"numeric\" 값의 숫자가 잘못됨" -#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 +#: utils/adt/numeric.c:1336 utils/adt/numeric.c:1350 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "NUMERIC 정밀도 %d 값은 범위(1 .. %d)를 벗어났습니다." -#: utils/adt/numeric.c:1333 +#: utils/adt/numeric.c:1341 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "NUMERIC 스케일 %d 값은 %d부터 %d까지 입니다." -#: utils/adt/numeric.c:1351 +#: utils/adt/numeric.c:1359 #, c-format msgid "invalid NUMERIC type modifier" msgstr "잘못된 NUMERIC 형식 한정자" -#: utils/adt/numeric.c:1709 +#: utils/adt/numeric.c:1725 #, c-format msgid "start value cannot be NaN" msgstr "시작값은 NaN 일 수 없음" -#: utils/adt/numeric.c:1713 +#: utils/adt/numeric.c:1729 #, c-format msgid "start value cannot be infinity" msgstr "시작 값은 무한일 수 없음" -#: utils/adt/numeric.c:1720 +#: utils/adt/numeric.c:1736 #, c-format msgid "stop value cannot be NaN" msgstr "종료값은 NaN 일 수 없음" -#: utils/adt/numeric.c:1724 +#: utils/adt/numeric.c:1740 #, c-format msgid "stop value cannot be infinity" msgstr "종료값은 무한일 수 없음" -#: utils/adt/numeric.c:1737 +#: utils/adt/numeric.c:1753 #, c-format msgid "step size cannot be NaN" msgstr "단계 크기는 NaN 일 수 없음" -#: utils/adt/numeric.c:1741 +#: utils/adt/numeric.c:1757 #, c-format msgid "step size cannot be infinity" msgstr "단계 크기는 무한일 수 없음" -#: utils/adt/numeric.c:3633 +#: utils/adt/numeric.c:3649 #, c-format msgid "factorial of a negative number is undefined" msgstr "음수 거듭제곱이 정의되어 있지 않음" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4256 +#, c-format +msgid "lower bound cannot be NaN" +msgstr "lower bound는 NaN 일 수 없음" + +#: utils/adt/numeric.c:4260 +#, c-format +msgid "lower bound cannot be infinity" +msgstr "lower bound는 무한일 수 없음" + +#: utils/adt/numeric.c:4267 +#, c-format +msgid "upper bound cannot be NaN" +msgstr "upper bound는 NaN 일 수 없음" + +#: utils/adt/numeric.c:4271 +#, c-format +msgid "upper bound cannot be infinity" +msgstr "upper bound는 무한일 수 없음" + +#: utils/adt/numeric.c:4432 utils/adt/numeric.c:4520 utils/adt/numeric.c:4580 +#: utils/adt/numeric.c:4776 #, c-format msgid "cannot convert NaN to %s" msgstr "NaN 값을 %s 형으로 변환할 수 없습니다" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4436 utils/adt/numeric.c:4524 utils/adt/numeric.c:4584 +#: utils/adt/numeric.c:4780 #, c-format msgid "cannot convert infinity to %s" msgstr "무한은 %s 형으로 변환할 수 없음" -#: utils/adt/numeric.c:4696 +#: utils/adt/numeric.c:4789 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn 값의 범위를 벗어났습니다." -#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:7981 utils/adt/numeric.c:8032 #, c-format msgid "numeric field overflow" msgstr "수치 필드 오버플로우" -#: utils/adt/numeric.c:7897 +#: utils/adt/numeric.c:7982 #, c-format msgid "" "A field with precision %d, scale %d must round to an absolute value less " @@ -26938,12 +28202,18 @@ msgstr "" "전체 자릿수 %d, 소수 자릿수 %d의 필드는 %s%d보다 작은 절대 값으로 반올림해야 " "합니다." -#: utils/adt/numeric.c:7948 +#: utils/adt/numeric.c:8033 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "전체 자릿수 %d, 소수 자릿수 %d의 필드는 무한 값을 처리할 수 없음." -#: utils/adt/oid.c:216 +#: utils/adt/numeric.c:11359 utils/adt/pseudorandomfuncs.c:135 +#: utils/adt/pseudorandomfuncs.c:159 +#, c-format +msgid "lower bound must be less than or equal to upper bound" +msgstr "lower bound는 upper bound보다 작거나 같아야 함" + +#: utils/adt/oid.c:217 #, c-format msgid "invalid oidvector data" msgstr "잘못된 oidvector 자료" @@ -26973,36 +28243,41 @@ msgstr "요청한 문자가 너무 커서 인코딩할 수 없음: %u" msgid "requested character not valid for encoding: %u" msgstr "요청한 문자가 인코딩용으로 타당치 않음: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:446 utils/adt/orderedsetaggs.c:551 +#: utils/adt/orderedsetaggs.c:691 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "%g 퍼센트 값이 0과 1사이가 아닙니다." -#: utils/adt/pg_locale.c:1406 +#: utils/adt/pg_locale.c:326 utils/adt/pg_locale.c:358 +#, c-format +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "\"%s\" 로케일 이름에 사용할 수 없는 문자(non-ASCII)가 있음" + +#: utils/adt/pg_locale.c:1507 #, c-format msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" msgstr "\"%s\" 로케일(해당 규칙 \"%s\")용 문자 정렬 규칙 열기 실패: %s" -#: utils/adt/pg_locale.c:1417 utils/adt/pg_locale.c:2831 -#: utils/adt/pg_locale.c:2904 +#: utils/adt/pg_locale.c:1518 utils/adt/pg_locale.c:2992 +#: utils/adt/pg_locale.c:3065 #, c-format msgid "ICU is not supported in this build" msgstr "ICU 지원 기능을 뺀 채로 서버가 만들어졌습니다." -#: utils/adt/pg_locale.c:1446 +#: utils/adt/pg_locale.c:1546 #, c-format msgid "could not create locale \"%s\": %m" msgstr "\"%s\" 로케일을 만들 수 없음: %m" -#: utils/adt/pg_locale.c:1449 +#: utils/adt/pg_locale.c:1549 #, c-format msgid "" -"The operating system could not find any locale data for the locale name \"%s" -"\"." +"The operating system could not find any locale data for the locale name " +"\"%s\"." msgstr "운영체제에서 \"%s\" 로케일 이름에 대한 로케일 파일을 찾을 수 없습니다." -#: utils/adt/pg_locale.c:1564 +#: utils/adt/pg_locale.c:1670 #, c-format msgid "" "collations with different collate and ctype values are not supported on this " @@ -27011,22 +28286,17 @@ msgstr "" "이 플랫폼에서는 서로 다른 정렬규칙(collation)과 문자집합(ctype)을 함께 쓸 수 " "없습니다." -#: utils/adt/pg_locale.c:1573 -#, c-format -msgid "collation provider LIBC is not supported on this platform" -msgstr "이 플랫폼에서는 LIBC 문자 정렬 제공자 기능(ICU)을 지원하지 않음." - -#: utils/adt/pg_locale.c:1614 +#: utils/adt/pg_locale.c:1717 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "\"%s\" 문자 정렬 규칙은 버전이 없는데 버전을 지정했음" -#: utils/adt/pg_locale.c:1620 +#: utils/adt/pg_locale.c:1723 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "\"%s\" 문자 정렬 규칙은 버전이 맞지 않음" -#: utils/adt/pg_locale.c:1622 +#: utils/adt/pg_locale.c:1725 #, c-format msgid "" "The collation in the database was created using version %s, but the " @@ -27035,7 +28305,7 @@ msgstr "" "데이터베이스를 만들때 %s 버전으로 문자 정렬 규칙을 만들었는데, 현재 OS는 %s " "버전을 제공하고 있습니다." -#: utils/adt/pg_locale.c:1625 +#: utils/adt/pg_locale.c:1728 #, c-format msgid "" "Rebuild all objects affected by this collation and run ALTER COLLATION %s " @@ -27045,224 +28315,235 @@ msgstr "" "VERSION 명령을 실행하거나, 바른 라이브러리 버전을 지정해서, PostgreSQL을 빌드" "하세요." -#: utils/adt/pg_locale.c:1691 +#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:2556 +#: utils/adt/pg_locale.c:2581 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "내장 제공자용 로케일 이름이 잘못됨: \"%s\"" + +#: utils/adt/pg_locale.c:1814 #, c-format msgid "could not load locale \"%s\"" -msgstr "\"%s\" 로케일을 만들 수 없음: %m" +msgstr "\"%s\" 로케일을 불러올 수 없음" -#: utils/adt/pg_locale.c:1716 +#: utils/adt/pg_locale.c:1839 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "\"%s\" 로케일용 정렬 변환 규칙을 구할 수 없음: 오류 코드 %lu" -#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:1785 +#: utils/adt/pg_locale.c:1895 utils/adt/pg_locale.c:1908 #, c-format msgid "could not convert string to UTF-16: error code %lu" msgstr "UTF-16 인코딩으로 문자열을 변환할 수 없음: 오류번호 %lu" -#: utils/adt/pg_locale.c:1799 +#: utils/adt/pg_locale.c:1920 #, c-format msgid "could not compare Unicode strings: %m" msgstr "유니코드 문자열 비교 실패: %m" -#: utils/adt/pg_locale.c:1980 +#: utils/adt/pg_locale.c:2094 #, c-format msgid "collation failed: %s" msgstr "문자열 정렬: %s" -#: utils/adt/pg_locale.c:2201 utils/adt/pg_locale.c:2233 +#: utils/adt/pg_locale.c:2313 utils/adt/pg_locale.c:2345 #, c-format msgid "sort key generation failed: %s" msgstr "정렬 키 생성 실패: %s" -#: utils/adt/pg_locale.c:2474 +#: utils/adt/pg_locale.c:2635 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "\"%s\" 로케일에서 언어를 찾을 수 없음: %s" -#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#: utils/adt/pg_locale.c:2656 utils/adt/pg_locale.c:2672 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "\"%s\" 로케일용 문자 정렬 규칙 열기 실패: %s" -#: utils/adt/pg_locale.c:2536 +#: utils/adt/pg_locale.c:2697 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "\"%s\" 인코딩은 ICU 기능을 지원하지 않음" -#: utils/adt/pg_locale.c:2543 +#: utils/adt/pg_locale.c:2704 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "\"%s\" 인코딩용 ICU 변환기 열기 실패: %s" -#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2722 utils/adt/pg_locale.c:2741 +#: utils/adt/pg_locale.c:2797 utils/adt/pg_locale.c:2808 #, c-format msgid "%s failed: %s" msgstr "%s 실패: %s" -#: utils/adt/pg_locale.c:2822 +#: utils/adt/pg_locale.c:2983 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "\"%s\" 로케일 이름을 언어 태그로 변환할 수 없음: %s" -#: utils/adt/pg_locale.c:2863 +#: utils/adt/pg_locale.c:3024 #, c-format msgid "could not get language from ICU locale \"%s\": %s" msgstr "\"%s\" ICU 로케일에서 언어 찾기 실패: %s" -#: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 +#: utils/adt/pg_locale.c:3026 utils/adt/pg_locale.c:3055 #, c-format msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." msgstr "ICU 로케일 검사를 하지 않으려면, \"%s\" 값을 \"%s\"로 지정하세요." -#: utils/adt/pg_locale.c:2892 +#: utils/adt/pg_locale.c:3053 #, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" msgstr "\"%s\" ICU 로케일은 알 수 없는 \"%s\" 언어를 사용합니다." -#: utils/adt/pg_locale.c:3073 +#: utils/adt/pg_locale.c:3204 #, c-format msgid "invalid multibyte character for locale" msgstr "로케일을 위한 잘못된 멀티바이트 문자" -#: utils/adt/pg_locale.c:3074 +#: utils/adt/pg_locale.c:3205 #, c-format msgid "" "The server's LC_CTYPE locale is probably incompatible with the database " "encoding." msgstr "서버의 LC_CTYPE 로케일은 이 데이터베이스 인코딩과 호환되지 않습니다." -#: utils/adt/pg_lsn.c:263 +#: utils/adt/pg_lsn.c:262 #, c-format msgid "cannot add NaN to pg_lsn" msgstr "NaN 값을 pg_lsn 형으로 변환할 수 없습니다" -#: utils/adt/pg_lsn.c:297 +#: utils/adt/pg_lsn.c:296 #, c-format msgid "cannot subtract NaN from pg_lsn" msgstr "pg_lsn 에서는 NaN 형을 빼낼 수 없습니다" -#: utils/adt/pg_upgrade_support.c:29 +#: utils/adt/pg_upgrade_support.c:39 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "함수는 서버가 이진 업그레이드 상태에서만 호출 될 수 있습니다" -#: utils/adt/pgstatfuncs.c:254 +#: utils/adt/pgstatfuncs.c:252 #, c-format msgid "invalid command name: \"%s\"" msgstr "잘못된 명령어 이름: \"%s\"" -#: utils/adt/pgstatfuncs.c:1774 +#: utils/adt/pgstatfuncs.c:1739 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "알 수 없는 리셋 타겟: \"%s\"" -#: utils/adt/pgstatfuncs.c:1775 +#: utils/adt/pgstatfuncs.c:1740 #, c-format msgid "" -"Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or " -"\"wal\"." +"Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", " +"\"recovery_prefetch\", \"slru\", or \"wal\"." msgstr "" -"사용 가능한 타겟은 \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch" -"\", \"wal\" 입니다." +"사용 가능한 타겟은 \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", " +"\"recovery_prefetch\", \"slru\", \"wal\" 입니다." -#: utils/adt/pgstatfuncs.c:1857 +#: utils/adt/pgstatfuncs.c:1822 #, c-format msgid "invalid subscription OID %u" msgstr "잘못된 구독 OID %u" -#: utils/adt/pseudotypes.c:58 utils/adt/pseudotypes.c:92 +#: utils/adt/pseudorandomfuncs.c:69 +#, c-format +msgid "setseed parameter %g is out of allowed range [-1,1]" +msgstr "%g setseed 매개 변수가 [-1,1] 범위를 벗어났습니다." + +#: utils/adt/pseudotypes.c:55 utils/adt/pseudotypes.c:89 #, c-format msgid "cannot display a value of type %s" msgstr "%s 자료형의 값은 표시할 수 없음" -#: utils/adt/pseudotypes.c:310 +#: utils/adt/pseudotypes.c:307 #, c-format msgid "cannot accept a value of a shell type" msgstr "셸 형태 값은 사용할 수 없음" -#: utils/adt/pseudotypes.c:320 +#: utils/adt/pseudotypes.c:317 #, c-format msgid "cannot display a value of a shell type" msgstr "shell 형식의 값은 표시할 수 없음" -#: utils/adt/rangetypes.c:415 +#: utils/adt/rangetypes.c:422 #, c-format msgid "range constructor flags argument must not be null" msgstr "range 자료형 구성자 플래그 인자로 null을 사용할 수 없음" -#: utils/adt/rangetypes.c:1014 +#: utils/adt/rangetypes.c:1021 #, c-format msgid "result of range difference would not be contiguous" msgstr "범위 차이 결과가 연속적이지 않습니다." -#: utils/adt/rangetypes.c:1075 +#: utils/adt/rangetypes.c:1082 #, c-format msgid "result of range union would not be contiguous" msgstr "범위 결합 결과가 연속적이지 않습니다." -#: utils/adt/rangetypes.c:1750 +#: utils/adt/rangetypes.c:1757 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "range 자료형의 하한값은 상한값과 같거나 작아야 합니다" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 +#: utils/adt/rangetypes.c:2283 #, c-format msgid "invalid range bound flags" msgstr "잘못된 range 구성 플래그" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 +#: utils/adt/rangetypes.c:2284 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "유효한 값은 \"[]\", \"[)\", \"(]\", \"()\"." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 +#: utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 +#: utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "malformed range literal: \"%s\"" msgstr "비정상적인 range 문자: \"%s\"" -#: utils/adt/rangetypes.c:2295 +#: utils/adt/rangetypes.c:2354 #, c-format msgid "Junk after \"empty\" key word." msgstr " \"empty\" 키워드 뒤에 정크가 있음" -#: utils/adt/rangetypes.c:2312 +#: utils/adt/rangetypes.c:2371 #, c-format msgid "Missing left parenthesis or bracket." msgstr "왼쪽 괄호가 빠졌음" -#: utils/adt/rangetypes.c:2327 +#: utils/adt/rangetypes.c:2386 #, c-format msgid "Missing comma after lower bound." msgstr "하한값 뒤에 쉼표가 빠졌음" -#: utils/adt/rangetypes.c:2347 +#: utils/adt/rangetypes.c:2406 #, c-format msgid "Too many commas." msgstr "칼럼이 너무 많습니다." -#: utils/adt/rangetypes.c:2358 +#: utils/adt/rangetypes.c:2417 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "오른쪽 괄호 다음에 정크가 있음" -#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 #, c-format msgid "regular expression failed: %s" msgstr "잘못된 정규식: %s" -#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 +#: utils/adt/regexp.c:445 utils/adt/regexp.c:680 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "잘못된 정규식 옵션: \"%.*s\"" -#: utils/adt/regexp.c:683 +#: utils/adt/regexp.c:682 #, c-format msgid "" "If you meant to use regexp_replace() with a start parameter, cast the fourth " @@ -27271,15 +28552,15 @@ msgstr "" "시작 위치를 지정하려는 regexp_replace() 함수 사용인 경우, 네번째 인자는 정수" "형을 지정해야합니다." -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6610 utils/misc/guc.c:6644 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 +#: utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 +#: utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 +#: utils/adt/regexp.c:1871 utils/misc/guc.c:6820 utils/misc/guc.c:6854 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "잘못된 \"%s\" 매개 변수의 값: %d" -#: utils/adt/regexp.c:937 +#: utils/adt/regexp.c:936 #, c-format msgid "" "SQL regular expression may not contain more than two escape-double-quote " @@ -27288,19 +28569,19 @@ msgstr "" "SQL 정규 표현식에서는 두 개 이상의 이스케이프 큰 따옴표 구분자를 쓸 수 없음" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1093 utils/adt/regexp.c:1184 utils/adt/regexp.c:1271 +#: utils/adt/regexp.c:1310 utils/adt/regexp.c:1698 utils/adt/regexp.c:1753 +#: utils/adt/regexp.c:1882 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s 함수는 \"global\" 옵션을 지원하지 않음" -#: utils/adt/regexp.c:1313 +#: utils/adt/regexp.c:1312 #, c-format msgid "Use the regexp_matches function instead." msgstr "대신에 regexp_matches 함수를 사용하세요." -#: utils/adt/regexp.c:1501 +#: utils/adt/regexp.c:1500 #, c-format msgid "too many regular expression matches" msgstr "너무 많음 정규식 매치" @@ -27315,18 +28596,18 @@ msgstr "\"%s\"(이)라는 함수가 두 개 이상 있음" msgid "more than one operator named %s" msgstr "%s(이)라는 연산자가 두 개 이상 있음" -#: utils/adt/regproc.c:670 gram.y:8841 +#: utils/adt/regproc.c:670 gram.y:8992 #, c-format msgid "missing argument" msgstr "인자가 빠졌음" -#: utils/adt/regproc.c:671 gram.y:8842 +#: utils/adt/regproc.c:671 gram.y:8993 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "단항 연산자에서 인자 없음을 표시할 때는 NONE 인자를 사용하세요." -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10013 -#: utils/adt/ruleutils.c:10226 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10509 +#: utils/adt/ruleutils.c:10722 #, c-format msgid "too many arguments" msgstr "인자가 너무 많습니다" @@ -27336,66 +28617,66 @@ msgstr "인자가 너무 많습니다" msgid "Provide two argument types for operator." msgstr "연산자를 위해서는 두개의 인자 자료형을 지정하십시오." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 +#: utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 #, c-format msgid "invalid name syntax" msgstr "잘못된 이름 구문" -#: utils/adt/regproc.c:1904 +#: utils/adt/regproc.c:1924 #, c-format msgid "expected a left parenthesis" msgstr "왼쪽 괄호가 필요합니다." -#: utils/adt/regproc.c:1922 +#: utils/adt/regproc.c:1942 #, c-format msgid "expected a right parenthesis" msgstr "오른쪽 괄호가 필요합니다." -#: utils/adt/regproc.c:1941 +#: utils/adt/regproc.c:1961 #, c-format msgid "expected a type name" msgstr "자료형 이름을 지정하십시오" -#: utils/adt/regproc.c:1973 +#: utils/adt/regproc.c:1993 #, c-format msgid "improper type name" msgstr "부적절한 형식 이름" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 +#: utils/adt/ri_triggers.c:2601 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "" "\"%s\" 테이블에서 자료 추가, 갱신 작업이 \"%s\" 참조키(foreign key) 제약 조건" "을 위배했습니다" -#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL에 null 키 값과 nonnull 키 값을 함께 사용할 수 없습니다." -#: utils/adt/ri_triggers.c:2045 +#: utils/adt/ri_triggers.c:2036 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "INSERT에 대해 \"%s\" 함수를 실행해야 함" -#: utils/adt/ri_triggers.c:2051 +#: utils/adt/ri_triggers.c:2042 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "UPDATE에 대해 \"%s\" 함수를 실행해야 함" -#: utils/adt/ri_triggers.c:2057 +#: utils/adt/ri_triggers.c:2048 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "DELETE에 대해 \"%s\" 함수를 실행해야 함" -#: utils/adt/ri_triggers.c:2080 +#: utils/adt/ri_triggers.c:2071 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "\"%s\" 트리거(해당 테이블: \"%s\")에 대한 pg_constraint 항목이 없음" -#: utils/adt/ri_triggers.c:2082 +#: utils/adt/ri_triggers.c:2073 #, c-format msgid "" "Remove this referential integrity trigger and its mates, then do ALTER TABLE " @@ -27404,12 +28685,12 @@ msgstr "" "해당 트리거 관련 개체를 제거한 후 ALTER TABLE ADD CONSTRAINT 명령으로 추가하" "세요" -#: utils/adt/ri_triggers.c:2112 gram.y:4223 +#: utils/adt/ri_triggers.c:2103 gram.y:4340 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "MATCH PARTIAL 기능은 아직 구현 안되었습니다" -#: utils/adt/ri_triggers.c:2435 +#: utils/adt/ri_triggers.c:2426 #, c-format msgid "" "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave " @@ -27418,32 +28699,32 @@ msgstr "" "\"%s\"에 대한 참조 무결성 쿼리(제약조건: \"%s\", 해당 릴레이션: \"%s\")를 실" "행하면 예기치 않은 결과가 발생함" -#: utils/adt/ri_triggers.c:2439 +#: utils/adt/ri_triggers.c:2430 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "이 문제는 주로 룰이 재작성 되었을 때 발생합니다." -#: utils/adt/ri_triggers.c:2600 +#: utils/adt/ri_triggers.c:2591 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "\"%s\" 파티션 지우기는 \"%s\" 참조키 제약조건을 위반함" -#: utils/adt/ri_triggers.c:2603 utils/adt/ri_triggers.c:2628 +#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "(%s)=(%s) 키가 \"%s\" 테이블에서 여전히 참조됩니다." -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2605 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "(%s)=(%s) 키가 \"%s\" 테이블에 없습니다." -#: utils/adt/ri_triggers.c:2617 +#: utils/adt/ri_triggers.c:2608 #, c-format msgid "Key is not present in table \"%s\"." msgstr "\"%s\" 테이블에 키가 없습니다." -#: utils/adt/ri_triggers.c:2623 +#: utils/adt/ri_triggers.c:2614 #, c-format msgid "" "update or delete on table \"%s\" violates foreign key constraint \"%s\" on " @@ -27452,66 +28733,66 @@ msgstr "" "\"%s\" 테이블의 자료 갱신, 삭제 작업이 \"%s\" 참조키(foreign key) 제약 조건 " "- \"%s\" 테이블 - 을 위반했습니다" -#: utils/adt/ri_triggers.c:2631 +#: utils/adt/ri_triggers.c:2622 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "\"%s\" 테이블에서 키가 여전히 참조됩니다." -#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 +#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:509 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "익명 복합 형식의 입력이 구현되어 있지 않음" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:158 utils/adt/rowtypes.c:190 utils/adt/rowtypes.c:216 +#: utils/adt/rowtypes.c:227 utils/adt/rowtypes.c:285 utils/adt/rowtypes.c:296 #, c-format msgid "malformed record literal: \"%s\"" msgstr "비정상적인 레코드 문자: \"%s\"" -#: utils/adt/rowtypes.c:160 +#: utils/adt/rowtypes.c:159 #, c-format msgid "Missing left parenthesis." msgstr "왼쪽 괄호가 필요합니다." -#: utils/adt/rowtypes.c:192 +#: utils/adt/rowtypes.c:191 #, c-format msgid "Too few columns." msgstr "칼럼이 너무 적습니다." -#: utils/adt/rowtypes.c:287 +#: utils/adt/rowtypes.c:286 #, c-format msgid "Too many columns." msgstr "칼럼이 너무 많습니다." -#: utils/adt/rowtypes.c:298 +#: utils/adt/rowtypes.c:297 #, c-format msgid "Junk after right parenthesis." msgstr "오른쪽 괄호가 필요합니다." -#: utils/adt/rowtypes.c:559 +#: utils/adt/rowtypes.c:558 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "열 수(%d)가 최대값(%d)을 초과했습니다" -#: utils/adt/rowtypes.c:601 +#: utils/adt/rowtypes.c:599 #, c-format msgid "" "binary data has type %u (%s) instead of expected %u (%s) in record column %d" msgstr "바이너리 자료형이 %u (%s) 임. 기대 자료형: %u (%s), 해당 칼럼: %d" -#: utils/adt/rowtypes.c:668 +#: utils/adt/rowtypes.c:660 #, c-format msgid "improper binary format in record column %d" msgstr "%d 번째 레코드 열에서 잘못된 바이너리 포맷이 있습니다" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 +#: utils/adt/rowtypes.c:1699 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "서로 다른 열 형식 %s과(와) %s(레코드 열 %d)을(를) 비교할 수 없음" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 +#: utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "칼럼 수가 서로 다른 레코드 자료형을 비교할 수 없음" @@ -27531,113 +28812,139 @@ msgstr "expression이 하나 이상의 릴레이션 변수를 포함하고 있 msgid "expression contains variables" msgstr "expression이 변수들을 포함하고 있음" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5246 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "\"%s\" 룰은 %d 이벤트 형태를 지원하지 않습니다" -#: utils/adt/timestamp.c:112 +#: utils/adt/timestamp.c:128 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s 정밀도로 음수를 사용할 수 없습니다" -#: utils/adt/timestamp.c:118 +#: utils/adt/timestamp.c:134 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s 정밀도는 최대값(%d)으로 줄였습니다" -#: utils/adt/timestamp.c:378 +#: utils/adt/timestamp.c:394 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "타임스탬프(%d) 정밀도는 %d에서 %d 사이여야 함" -#: utils/adt/timestamp.c:496 +#: utils/adt/timestamp.c:512 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "숫자형 타임 존 형식은 처음에 \"-\" 또는 \"+\" 문자가 있어야 합니다." -#: utils/adt/timestamp.c:508 +#: utils/adt/timestamp.c:524 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "\"%s\" 숫자형 타임 존 범위 벗어남" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 +#: utils/adt/timestamp.c:643 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "타임스탬프 값이 범위를 벗어났음: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:728 +#: utils/adt/timestamp.c:744 #, c-format msgid "timestamp cannot be NaN" msgstr "타임스탬프 값으로 NaN 값을 지정할 수 없음" -#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 +#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "타임스탬프 값이 범위를 벗어났음: \"%g\"" -#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 +#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 +#: utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 +#: utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 +#: utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 +#: utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 +#: utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 +#: utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 +#: utils/adt/timestamp.c:3537 utils/adt/timestamp.c:3546 +#: utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 +#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 +#: utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 +#: utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 +#: utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 +#: utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 +#: utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 +#: utils/adt/timestamp.c:5097 +#, c-format +msgid "interval out of range" +msgstr "간격이 범위를 벗어남" + +#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 #, c-format msgid "invalid INTERVAL type modifier" msgstr "잘못된 INTERVAL 형식 한정자" -#: utils/adt/timestamp.c:1081 +#: utils/adt/timestamp.c:1110 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d) 정밀도로 음수값이 올 수 없습니다" -#: utils/adt/timestamp.c:1087 +#: utils/adt/timestamp.c:1116 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d) 정밀도는 허용 최대치(%d)로 감소 되었습니다" -#: utils/adt/timestamp.c:1473 +#: utils/adt/timestamp.c:1506 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "간격(%d) 정밀도는 %d에서 %d 사이여야 함" -#: utils/adt/timestamp.c:2703 -#, c-format -msgid "cannot subtract infinite timestamps" -msgstr "타임스탬프 무한값을 추출 할 수 없음" - -#: utils/adt/timestamp.c:3956 utils/adt/timestamp.c:4139 +#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 #, c-format msgid "origin out of range" msgstr "오리진의 범위를 벗어났습니다." -#: utils/adt/timestamp.c:3961 utils/adt/timestamp.c:4144 +#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#, c-format +msgid "timestamps cannot be binned into infinite intervals" +msgstr "timestamp값은 무한 interval 형으로 바인드할 수 없음" + +#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "timestamp값은 월이나 년을 포함하는 interval 형으로 바인드할 수 없음" -#: utils/adt/timestamp.c:3968 utils/adt/timestamp.c:4151 +#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 #, c-format msgid "stride must be greater than zero" msgstr "stride 값은 0 보다 커야 합니다" -#: utils/adt/timestamp.c:4434 +#: utils/adt/timestamp.c:5091 #, c-format msgid "Months usually have fractional weeks." msgstr "달에는 보통 분수형태의 주간이 있습니다." -#: utils/adt/trigfuncs.c:42 +#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#, c-format +msgid "step size cannot be infinite" +msgstr "단계 크기는 무한일 수 없음" + +#: utils/adt/trigfuncs.c:41 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" msgstr "suppress_redundant_updates_trigger: 트리거로 호출되어야 함" -#: utils/adt/trigfuncs.c:48 +#: utils/adt/trigfuncs.c:47 #, c-format msgid "suppress_redundant_updates_trigger: must be called on update" msgstr "suppress_redundant_updates_trigger: 업데이트 시 호출되어야 함" -#: utils/adt/trigfuncs.c:54 +#: utils/adt/trigfuncs.c:53 #, c-format msgid "suppress_redundant_updates_trigger: must be called before update" msgstr "suppress_redundant_updates_trigger: 업데이트 전에 호출되어야 함" -#: utils/adt/trigfuncs.c:60 +#: utils/adt/trigfuncs.c:59 #, c-format msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "suppress_redundant_updates_trigger: 각 행에 대해 호출되어야 함" @@ -27654,32 +28961,32 @@ msgstr "분석 작업에서 사용한 거리값은 %d 보다 클 수 없습니 msgid "no operand in tsquery: \"%s\"" msgstr "tsquery에 피연산자가 없음: \"%s\"" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "tsquery의 값이 너무 큼: \"%s\"" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "tsquery의 피연산자가 너무 긺: \"%s\"" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "tsquery의 단어가 너무 긺: \"%s\"" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "tsquery에 구문 오류가 있음: \"%s\"" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "텍스트 검색 쿼리에 어휘소가 포함되어 있지 않음: \"%s\"" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsquery 길이가 너무 깁니다" @@ -27718,73 +29025,73 @@ msgstr "가중치 배열에는 null이 포함되지 않아야 함" msgid "weight out of range" msgstr "가중치가 범위를 벗어남" -#: utils/adt/tsvector.c:217 +#: utils/adt/tsvector.c:216 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "단어가 너무 긺(%ld바이트, 최대 %ld바이트)" -#: utils/adt/tsvector.c:224 +#: utils/adt/tsvector.c:223 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "" "문자열이 너무 길어서 tsvector에 사용할 수 없음(%ld바이트, 최대 %ld바이트)" -#: utils/adt/tsvector_op.c:773 +#: utils/adt/tsvector_op.c:771 #, c-format msgid "lexeme array may not contain nulls" msgstr "어휘소 배열에는 null이 포함되지 않아야 함" -#: utils/adt/tsvector_op.c:778 +#: utils/adt/tsvector_op.c:776 #, c-format msgid "lexeme array may not contain empty strings" msgstr "어휘소 배열에는 빈문자열이 포함되지 않아야 함" -#: utils/adt/tsvector_op.c:847 +#: utils/adt/tsvector_op.c:845 #, c-format msgid "weight array may not contain nulls" msgstr "가중치 배열에는 null이 포함되지 않아야 함" -#: utils/adt/tsvector_op.c:871 +#: utils/adt/tsvector_op.c:869 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "알 수 없는 가중치: \"%c\"" -#: utils/adt/tsvector_op.c:2601 +#: utils/adt/tsvector_op.c:2599 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "ts_stat 쿼리는 하나의 tsvector 칼럼을 반환해야 함" -#: utils/adt/tsvector_op.c:2790 +#: utils/adt/tsvector_op.c:2788 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "\"%s\" tsvector 칼럼이 없음" -#: utils/adt/tsvector_op.c:2797 +#: utils/adt/tsvector_op.c:2795 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "\"%s\" 칼럼은 tsvector 형식이 아님" -#: utils/adt/tsvector_op.c:2809 +#: utils/adt/tsvector_op.c:2807 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "\"%s\" 구성 칼럼이 없음" -#: utils/adt/tsvector_op.c:2815 +#: utils/adt/tsvector_op.c:2813 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "\"%s\" 칼럼은 regconfig 형이 아님" -#: utils/adt/tsvector_op.c:2822 +#: utils/adt/tsvector_op.c:2820 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "\"%s\" 구성 칼럼은 null이 아니어야 함" -#: utils/adt/tsvector_op.c:2835 +#: utils/adt/tsvector_op.c:2833 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "\"%s\" 텍스트 검색 구성 이름이 스키마로 한정되어야 함" -#: utils/adt/tsvector_op.c:2860 +#: utils/adt/tsvector_op.c:2858 #, c-format msgid "column \"%s\" is not of a character type" msgstr "\"%s\" 칼럼은 문자형이 아님" @@ -27804,17 +29111,17 @@ msgstr "이스케이프 문자가 없음: \"%s\"" msgid "wrong position info in tsvector: \"%s\"" msgstr "tsvector에 잘못된 위치 정보가 있음: \"%s\"" -#: utils/adt/uuid.c:413 +#: utils/adt/uuid.c:418 #, c-format msgid "could not generate random values" msgstr "무작위 값 생성 실패" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 #, c-format msgid "length for type %s must be at least 1" msgstr "%s 자료형의 길이는 최소 1 이상이어야 합니다" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 #, c-format msgid "length for type %s cannot exceed %d" msgstr "%s 자료형의 길이는 최대 %d 이하여야 합니다" @@ -27850,9 +29157,9 @@ msgstr "외부 비트 문자열의 길이가 잘못되었습니다" msgid "bit string too long for type bit varying(%d)" msgstr "비트 문자열이 너무 깁니다(해당 자료형 bit varying(%d))" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 +#: utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 +#: utils/adt/varlena.c:3133 #, c-format msgid "negative substring length not allowed" msgstr "substring에서 음수 길이는 허용하지 않음" @@ -27877,194 +29184,200 @@ msgstr "서로 크기가 틀린 비트 문자열은 XOR 연산을 할 수 없습 msgid "bit index %d out of valid range (0..%d)" msgstr "비트 %d 인덱스의 범위를 벗어남 (0..%d)" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 #, c-format msgid "new bit must be 0 or 1" msgstr "새 비트값은 0 또는 1 이어야 합니다" -#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 +#: utils/adt/varchar.c:161 utils/adt/varchar.c:312 #, c-format msgid "value too long for type character(%d)" msgstr "character(%d) 자료형에 너무 긴 자료를 담으려고 합니다." -#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 +#: utils/adt/varchar.c:475 utils/adt/varchar.c:639 #, c-format msgid "value too long for type character varying(%d)" msgstr "character varying(%d) 자료형에 너무 긴 자료를 담으려고 합니다." -#: utils/adt/varchar.c:738 utils/adt/varlena.c:1517 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "문자열 비교 작업에 사용할 정렬규칙(collation)을 결정할 수 없음" -#: utils/adt/varlena.c:1227 utils/adt/varlena.c:1806 +#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "문자열 검색 작업에 사용할 비결정 정렬규칙(collation)을 지원하지 않음" -#: utils/adt/varlena.c:3218 utils/adt/varlena.c:3285 +#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "%d 인덱스의 범위를 벗어남, 0..%d" -#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 +#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "%lld 인덱스의 범위를 벗어남, 0..%lld" -#: utils/adt/varlena.c:4382 +#: utils/adt/varlena.c:4385 #, c-format msgid "field position must not be zero" msgstr "필드 위치 값은 0 이 아니여야 함" -#: utils/adt/varlena.c:5554 +#: utils/adt/varlena.c:5630 #, c-format msgid "unterminated format() type specifier" msgstr "마무리 안된 format() 형 식별자" -#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 +#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "하나의 \"%%\" 문자를 표시하려면, \"%%%%\" 형태로 사용하세요" -#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 +#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "인식할 수 없는 format() 형 식별자 \"%.*s\"" -#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 +#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 #, c-format msgid "too few arguments for format()" msgstr "format() 작업을 위한 인자가 너무 적음" -#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 +#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 #, c-format msgid "number is out of range" msgstr "수치 범위를 벗어남" -#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 +#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "" "format 함수에서 사용할 수 있는 인자 위치 번호는 0이 아니라, 1부터 시작합니다" -#: utils/adt/varlena.c:5937 +#: utils/adt/varlena.c:6013 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "넓이 인자 위치값은 \"$\" 문자로 끝나야 합니다" -#: utils/adt/varlena.c:5982 +#: utils/adt/varlena.c:6058 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "null 값은 SQL 식별자로 포멧될 수 없음" -#: utils/adt/varlena.c:6190 +#: utils/adt/varlena.c:6266 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "" "유니코드 normalization 작업은 서버 인코딩이 UTF8 일때만 할 수 있습니다." -#: utils/adt/varlena.c:6203 +#: utils/adt/varlena.c:6279 #, c-format msgid "invalid normalization form: %s" msgstr "잘못된 normalization 형식: %s" -#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 +#: utils/adt/varlena.c:6324 +#, c-format +msgid "Unicode categorization can only be performed if server encoding is UTF8" +msgstr "" +"유니코드 분류 작업은 서버 인코딩이 UTF8 일때만 할 수 있습니다." + +#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 #, c-format msgid "invalid Unicode code point: %04X" msgstr "잘못된 유니코드 코드 포인트: %04X" -#: utils/adt/varlena.c:6506 +#: utils/adt/varlena.c:6641 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "" "유니코드 이스케이프는 \\XXXX, \\+XXXXXX, \\uXXXX, 또는 \\UXXXXXXXX 형태여야 " "합니다." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "ntile의 인자는 0보다 커야 함" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:707 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "nth_value의 인자는 0보다 커야 함" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:124 #, c-format msgid "transaction ID %llu is in the future" msgstr "%llu 트랜잭션 ID는 미래의 것입니다" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:553 #, c-format msgid "invalid external pg_snapshot data" msgstr "외부 pg_snapshot 자료가 잘못됨" -#: utils/adt/xml.c:228 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" msgstr "지원되지 않는 XML 기능" -#: utils/adt/xml.c:229 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "이 기능을 사용하려면 libxml 지원으로 서버를 빌드해야 합니다." -#: utils/adt/xml.c:248 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "\"%s\" 인코딩 이름이 잘못됨" -#: utils/adt/xml.c:496 utils/adt/xml.c:501 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "잘못된 XML 주석" -#: utils/adt/xml.c:660 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "XML 문서가 아님" -#: utils/adt/xml.c:956 utils/adt/xml.c:979 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "잘못된 XML 처리 명령" -#: utils/adt/xml.c:957 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "XML 처리 명령 대상 이름은 \"%s\"일 수 없습니다." -#: utils/adt/xml.c:980 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML 처리 명령에는 \"?>\"를 포함할 수 없습니다." -#: utils/adt/xml.c:1059 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate가 구현되어 있지 않음" -#: utils/adt/xml.c:1115 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "XML 라이브러리를 초기화할 수 없음" -#: utils/adt/xml.c:1116 +#: utils/adt/xml.c:1168 #, c-format msgid "" "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "" -"libxml2에 호환되지 않는 문자 자료형 있음: sizeof(char)=%zu, sizeof(xmlChar)=" -"%zu" +"libxml2에 호환되지 않는 문자 자료형 있음: sizeof(char)=%zu, " +"sizeof(xmlChar)=%zu" -#: utils/adt/xml.c:1202 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "XML 오류 핸들러를 설정할 수 없음" -#: utils/adt/xml.c:1203 +#: utils/adt/xml.c:1255 #, c-format msgid "" "This probably indicates that the version of libxml2 being used is not " @@ -28073,121 +29386,126 @@ msgstr "" "이 문제는 PostgreSQL 서버를 만들 때 사용한 libxml2 헤더 파일이 호환성이 없는 " "것 같습니다." -#: utils/adt/xml.c:2189 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "잘못된 문자 값입니다." -#: utils/adt/xml.c:2192 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "공간이 필요합니다." -#: utils/adt/xml.c:2195 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "독립 실행형은 'yes' 또는 'no'만 허용합니다." -#: utils/adt/xml.c:2198 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "선언 형식이 잘못됨: 버전이 누락되었습니다." -#: utils/adt/xml.c:2201 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "텍스트 선언에서 인코딩이 누락되었습니다." -#: utils/adt/xml.c:2204 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "XML 선언 구문 분석 중: '?>'가 필요합니다." -#: utils/adt/xml.c:2207 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "인식할 수 없는 libxml 오류 코드: %d." -#: utils/adt/xml.c:2461 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML은 무한 날짜 값을 지원하지 않습니다." -#: utils/adt/xml.c:2483 utils/adt/xml.c:2510 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML은 무한 타임스탬프 값을 지원하지 않습니다." -#: utils/adt/xml.c:2926 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "잘못된 쿼리" -#: utils/adt/xml.c:4266 +#: utils/adt/xml.c:3110 +#, c-format +msgid "portal \"%s\" does not return tuples" +msgstr "\"%s\" 포털은 집합을 반환할 수 없습니다." + +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "XML 네임스페이스 매핑에 사용할 배열이 잘못됨" -#: utils/adt/xml.c:4267 +#: utils/adt/xml.c:4363 #, c-format msgid "" "The array must be two-dimensional with length of the second axis equal to 2." msgstr "" "이 배열은 key, value로 구성된 배열을 요소로 하는 2차원 배열이어야 합니다." -#: utils/adt/xml.c:4291 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "XPath 식이 비어 있음" -#: utils/adt/xml.c:4343 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "네임스페이스 이름 및 URI는 null일 수 없음" -#: utils/adt/xml.c:4350 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "" "이름 \"%s\" 및 URI \"%s\"을(를) 사용하여 XML 네임스페이스를 등록할 수 없음" -#: utils/adt/xml.c:4693 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "DEFAULT 네임스페이스는 지원하지 않습니다." -#: utils/adt/xml.c:4722 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "로우 경로 필터는 비어있으면 안됩니다" -#: utils/adt/xml.c:4753 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "칼럼 경로 필터는 비어있으면 안됩니다" -#: utils/adt/xml.c:4897 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "칼럼 XPath 표현식에 사용된 결과가 하나 이상의 값을 사용합니다" -#: utils/cache/lsyscache.c:1043 +#: utils/cache/lsyscache.c:1017 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "%s 형에서 %s 형으로 바꾸는 형변환 규칙(cast)가 없음" # # nonun 부분 end -#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 +#: utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 #, c-format msgid "type %s is only a shell" msgstr "%s 형식은 셸일 뿐임" -#: utils/cache/lsyscache.c:2850 +#: utils/cache/lsyscache.c:2892 #, c-format msgid "no input function available for type %s" msgstr "%s 자료형을 위한 입력 함수가 없습니다" -#: utils/cache/lsyscache.c:2883 +#: utils/cache/lsyscache.c:2925 #, c-format msgid "no output function available for type %s" msgstr "%s 자료형을 위한 출력 함수가 없습니다" -#: utils/cache/partcache.c:219 +#: utils/cache/partcache.c:216 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d for " @@ -28196,32 +29514,32 @@ msgstr "" "\"%s\" 연산자 클래스(접근 방법: %s)에는 %d 개의 지원 지원 함수(해당 자료형 " "%s)가 빠졌습니다" -#: utils/cache/plancache.c:724 +#: utils/cache/plancache.c:747 #, c-format msgid "cached plan must not change result type" msgstr "캐시된 계획에서 결과 형식을 바꾸지 않아야 함" -#: utils/cache/relcache.c:3741 +#: utils/cache/relcache.c:3801 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "이진 업그레이드 작업 때, 힙 relfilenumber 값이 지정되지 않았습니다" -#: utils/cache/relcache.c:3749 +#: utils/cache/relcache.c:3809 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "바이너리 업그레이드 모드 중에 새 relfilenumber 값 요청이 실패" -#: utils/cache/relcache.c:6495 +#: utils/cache/relcache.c:6539 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "\"%s\" 릴레이션-캐시 초기화 파일을 만들 수 없음: %m" -#: utils/cache/relcache.c:6497 +#: utils/cache/relcache.c:6541 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "어쨌든 계속하는데, 뭔가 잘못 된 것이 있습니다." -#: utils/cache/relcache.c:6819 +#: utils/cache/relcache.c:6871 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "\"%s\" 캐쉬 파일을 삭제할 수 없음: %m" @@ -28231,17 +29549,17 @@ msgstr "\"%s\" 캐쉬 파일을 삭제할 수 없음: %m" msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "릴레이션 맵핑을 변경하는 트랜잭셜을 PREPARE할 수 없음" -#: utils/cache/relmapper.c:850 +#: utils/cache/relmapper.c:852 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "\"%s\" 릴레이션 맵핑 파일에 잘못된 데이터가 있습니다" -#: utils/cache/relmapper.c:860 +#: utils/cache/relmapper.c:862 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "\"%s\" 릴레이션 맵핑 파일에 잘못된 checksum 값이 있음" -#: utils/cache/typcache.c:1803 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "레코드 형식이 등록되지 않았음" @@ -28256,102 +29574,102 @@ msgstr "TRAP: ExceptionalCondition: %d PID 안에 잘못된 인자\n" msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "TRAP: Assert 실패(\"%s\"), 파일: \"%s\", 줄: %d, PID: %d\n" -#: utils/error/elog.c:416 +#: utils/error/elog.c:415 #, c-format msgid "error occurred before error message processing is available\n" msgstr "오류 메시지 처리가 활성화 되기 전에 오류가 발생했습니다\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2134 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "stderr 로 사용하기 위해 \"%s\" 파일 다시 열기 실패: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2147 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "표준출력(stdout)으로 사용하기 위해 \"%s\" 파일 다시 열기 실패: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2183 #, c-format -msgid "invalid character" +msgid "Invalid character" msgstr "잘못된 문자" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2889 utils/error/elog.c:2916 utils/error/elog.c:2932 msgid "[unknown]" msgstr "[알수없음]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3202 utils/error/elog.c:3526 utils/error/elog.c:3633 msgid "missing error text" msgstr "오류 내용을 뺍니다" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3205 utils/error/elog.c:3208 #, c-format msgid " at character %d" msgstr " %d 번째 문자 부근" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3218 utils/error/elog.c:3225 msgid "DETAIL: " msgstr "상세정보: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3232 msgid "HINT: " msgstr "힌트: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3239 msgid "QUERY: " msgstr "쿼리:" -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3246 msgid "CONTEXT: " msgstr "내용: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3256 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "위치: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3263 #, c-format msgid "LOCATION: %s:%d\n" msgstr "위치: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3270 msgid "BACKTRACE: " msgstr "역추적: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3282 msgid "STATEMENT: " msgstr "명령 구문: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3678 msgid "DEBUG" msgstr "디버그" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3682 msgid "LOG" msgstr "로그" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3685 msgid "INFO" msgstr "정보" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3688 msgid "NOTICE" msgstr "알림" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3692 msgid "WARNING" msgstr "경고" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3695 msgid "ERROR" msgstr "오류" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3698 msgid "FATAL" msgstr "치명적오류" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3701 msgid "PANIC" msgstr "손상" @@ -28424,22 +29742,22 @@ msgstr "매직 블록에 예기치 않은 길이 또는 여백 차이가 있습 msgid "incompatible library \"%s\": magic block mismatch" msgstr "\"%s\" 라이브러리는 사용할 수 없습니다: magic black 틀림" -#: utils/fmgr/dfmgr.c:492 +#: utils/fmgr/dfmgr.c:475 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "\"%s\" 라이브러리 사용이 금지되어있습니다" -#: utils/fmgr/dfmgr.c:518 +#: utils/fmgr/dfmgr.c:501 #, c-format msgid "invalid macro name in dynamic library path: %s" msgstr "동적 라이브러리 경로에서 잘못된 매크로 이름: %s" -#: utils/fmgr/dfmgr.c:558 +#: utils/fmgr/dfmgr.c:541 #, c-format msgid "zero-length component in parameter \"dynamic_library_path\"" msgstr "\"dynamic_library_path\" 매개 변수 값으로 길이가 0인 값을 사용했음" -#: utils/fmgr/dfmgr.c:577 +#: utils/fmgr/dfmgr.c:560 #, c-format msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "\"dynamic_library_path\" 매개 변수 값으로 절대 경로를 사용할 수 없음" @@ -28465,146 +29783,136 @@ msgstr "SQL 호출 가능한 함수는 PG_FUNCTION_INFO_V1(함수명) 정의를 msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "%d 알수 없는 API 버전이 \"%s\" 함수에 의해서 보고되었음" -#: utils/fmgr/fmgr.c:2080 +#: utils/fmgr/fmgr.c:2109 #, c-format msgid "operator class options info is absent in function call context" msgstr "연산자 클래스 옵션 정보가 함수 호출 컨텍스트에서 빠졌음" -#: utils/fmgr/fmgr.c:2147 +#: utils/fmgr/fmgr.c:2176 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "" "%u OID 언어 유효성 검사 함수가 %u OID 프로시져 언어용으로 호출되었음, 원래 언" "어는 %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "" "could not determine actual result type for function \"%s\" declared to " "return type %s" msgstr "\"%s\" 함수의 실재 리턴 자료형을 알 수 없음, 정의된 리턴 자료형: %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "%s 로 선언된 인자가 range 자료형이 아니고, %s 자료형입니다" -#: utils/fmgr/funcapi.c:717 -#, c-format -msgid "could not find multirange type for data type %s" -msgstr "%s 자료형용 multirange 형을 찾을 수 없음" - -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "alias 수가 열 수와 틀립니다" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "열 별칭이 제공되지 않았음" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "레코드를 리턴하는 함수를 위한 행(row) 구성 정보를 구할 수 없음" -#: utils/init/miscinit.c:347 +#: utils/init/miscinit.c:353 #, c-format msgid "data directory \"%s\" does not exist" msgstr "\"%s\" 데이터 디렉터리 없음" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:358 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "\"%s\" 디렉터리 읽기 권한 없음: %m" -#: utils/init/miscinit.c:360 +#: utils/init/miscinit.c:366 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "지정한 \"%s\" 데이터 디렉터리는 디렉터리가 아님" -#: utils/init/miscinit.c:376 +#: utils/init/miscinit.c:382 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "\"%s\" 데이터 디렉터리 소유주가 잘못 되었습니다." -#: utils/init/miscinit.c:378 +#: utils/init/miscinit.c:384 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "서버는 지정한 데이터 디렉터리의 소유주 권한으로 시작되어야 합니다." -#: utils/init/miscinit.c:396 +#: utils/init/miscinit.c:402 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "\"%s\" 데이터 디렉터리 접근 권한에 문제가 있습니다." -#: utils/init/miscinit.c:398 +#: utils/init/miscinit.c:404 #, c-format msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "액세스 권한은 u=rwx (0700) 또는 u=rwx,o=rx (0750) 값이어야 합니다." -#: utils/init/miscinit.c:456 +#: utils/init/miscinit.c:462 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "\"%s\" 이름의 디렉터리로 이동할 수 없습니다: %m" -#: utils/init/miscinit.c:693 utils/misc/guc.c:3548 +#: utils/init/miscinit.c:720 utils/misc/guc.c:3650 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "보안 제한 작업 내에서 \"%s\" 매개 변수를 설정할 수 없음" -#: utils/init/miscinit.c:765 +#: utils/init/miscinit.c:807 #, c-format msgid "role with OID %u does not exist" msgstr "%u OID 롤이 없음" -#: utils/init/miscinit.c:795 +#: utils/init/miscinit.c:853 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "\"%s\" 롤은 접속을 허용하지 않음" -#: utils/init/miscinit.c:813 +#: utils/init/miscinit.c:874 #, c-format msgid "too many connections for role \"%s\"" msgstr "\"%s\" 롤의 최대 동시 접속수를 초과했습니다" -#: utils/init/miscinit.c:912 -#, c-format -msgid "permission denied to set session authorization" -msgstr "세션 인증을 지정하기 위한 권한이 없음" - -#: utils/init/miscinit.c:995 +#: utils/init/miscinit.c:1045 #, c-format msgid "invalid role OID: %u" msgstr "잘못된 롤 OID: %u" -#: utils/init/miscinit.c:1142 +#: utils/init/miscinit.c:1192 #, c-format msgid "database system is shut down" msgstr "데이터베이스 시스템 서비스를 중지했습니다" -#: utils/init/miscinit.c:1229 +#: utils/init/miscinit.c:1279 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "\"%s\" 잠금 파일을 만들 수 없음: %m" -#: utils/init/miscinit.c:1243 +#: utils/init/miscinit.c:1293 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "\"%s\" 잠금파일을 열 수 없음: %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1300 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "\"%s\" 잠금 파일을 읽을 수 없음: %m" -#: utils/init/miscinit.c:1259 +#: utils/init/miscinit.c:1309 #, c-format msgid "lock file \"%s\" is empty" msgstr "\"%s\" 잠금 파일이 비었음" -#: utils/init/miscinit.c:1260 +#: utils/init/miscinit.c:1310 #, c-format msgid "" "Either another server is starting, or the lock file is the remnant of a " @@ -28613,43 +29921,43 @@ msgstr "" "다른 서버가 실행 중이거나, 이전 서버 시작 작업을 실패 해서 잠금 파일이 남아 " "있는 경우입니다." -#: utils/init/miscinit.c:1304 +#: utils/init/miscinit.c:1354 #, c-format msgid "lock file \"%s\" already exists" msgstr "\"%s\" 잠금 파일이 이미 있음" -#: utils/init/miscinit.c:1308 +#: utils/init/miscinit.c:1358 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "" "다른 postgres 프로그램(PID %d)이 \"%s\" 데이터 디렉터리를 사용해서 실행중입니" "까?" -#: utils/init/miscinit.c:1310 +#: utils/init/miscinit.c:1360 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "다른 postmaster 프로그램(PID %d)이 \"%s\" 데이터 디렉터리를 사용해서 실행중입" "니까?" -#: utils/init/miscinit.c:1313 +#: utils/init/miscinit.c:1363 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "" "다른 postgres 프로그램(PID %d)이 \"%s\" 소켓 파일을 사용해서 실행중입니까?" -#: utils/init/miscinit.c:1315 +#: utils/init/miscinit.c:1365 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "" "다른 postmaster 프로그램(PID %d)이 \"%s\" 소켓 파일을 사용해서 실행중입니까?" -#: utils/init/miscinit.c:1366 +#: utils/init/miscinit.c:1416 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "\"%s\" 옛 잠금 파일을 삭제할 수 없음: %m" -#: utils/init/miscinit.c:1368 +#: utils/init/miscinit.c:1418 #, c-format msgid "" "The file seems accidentally left over, but it could not be removed. Please " @@ -28659,48 +29967,48 @@ msgstr "" "셸 명령을 이용해서 파일을 삭제 하고 다시 시도해 보십시오. - 내용 참 거시기 하" "네" -#: utils/init/miscinit.c:1405 utils/init/miscinit.c:1419 -#: utils/init/miscinit.c:1430 +#: utils/init/miscinit.c:1455 utils/init/miscinit.c:1469 +#: utils/init/miscinit.c:1480 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "\"%s\" 잠금 파일에 쓸 수 없음: %m" -#: utils/init/miscinit.c:1541 utils/init/miscinit.c:1683 utils/misc/guc.c:5580 +#: utils/init/miscinit.c:1591 utils/init/miscinit.c:1733 utils/misc/guc.c:5765 #, c-format msgid "could not read from file \"%s\": %m" msgstr "\"%s\" 파일을 읽을 수 없음: %m" -#: utils/init/miscinit.c:1671 +#: utils/init/miscinit.c:1721 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "\"%s\" 파일을 열 수 없음: %m; 어째든 계속 진행함" -#: utils/init/miscinit.c:1696 +#: utils/init/miscinit.c:1746 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "\"%s\" 잠금 파일에 있는 PID 값이 이상합니다: 현재값 %ld, 원래값 %ld" -#: utils/init/miscinit.c:1735 utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1785 utils/init/miscinit.c:1801 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" 값은 바른 데이터디렉터리가 아닙니다" -#: utils/init/miscinit.c:1737 +#: utils/init/miscinit.c:1787 #, c-format msgid "File \"%s\" is missing." msgstr "\"%s\" 파일이 없습니다." -#: utils/init/miscinit.c:1753 +#: utils/init/miscinit.c:1803 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "\"%s\" 파일에 잘못된 자료가 기록되어 있습니다." -#: utils/init/miscinit.c:1755 +#: utils/init/miscinit.c:1805 #, c-format msgid "You might need to initdb." msgstr "initdb 명령을 실행해 새 클러스터를 만들어야 할 수도 있습니다." -#: utils/init/miscinit.c:1763 +#: utils/init/miscinit.c:1813 #, c-format msgid "" "The data directory was initialized by PostgreSQL version %s, which is not " @@ -28783,17 +30091,17 @@ msgstr "\"%s\" 데이터베이스 액세스 권한 없음" msgid "User does not have CONNECT privilege." msgstr "사용자에게 CONNECT 권한이 없습니다." -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:389 #, c-format msgid "too many connections for database \"%s\"" msgstr "\"%s\" 데이터베이스 최대 접속수를 초과했습니다" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:413 utils/init/postinit.c:420 #, c-format msgid "database locale is incompatible with operating system" msgstr "데이터베이스 로케일이 운영 체제와 호환되지 않음" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:414 #, c-format msgid "" "The database was initialized with LC_COLLATE \"%s\", which is not " @@ -28802,14 +30110,14 @@ msgstr "" "데이터베이스가 setlocale()에서 인식할 수 없는 LC_COLLATE \"%s\"(으)로 초기화" "되었습니다." -#: utils/init/postinit.c:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:416 utils/init/postinit.c:423 #, c-format msgid "" "Recreate the database with another locale or install the missing locale." msgstr "" "다른 로케일로 데이터베이스를 다시 만들거나 누락된 로케일을 설치하십시오." -#: utils/init/postinit.c:418 +#: utils/init/postinit.c:421 #, c-format msgid "" "The database was initialized with LC_CTYPE \"%s\", which is not recognized " @@ -28818,12 +30126,12 @@ msgstr "" "setlocale()에서 인식할 수 없는 \"%s\" LC_CTYPE 값으로 데이터베이스가 초기화되" "었습니다." -#: utils/init/postinit.c:475 +#: utils/init/postinit.c:493 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "\"%s\" 데이터베이스의 문자 정렬 규칙은 버전이 맞지 않음" -#: utils/init/postinit.c:477 +#: utils/init/postinit.c:495 #, c-format msgid "" "The database was created using collation version %s, but the operating " @@ -28832,7 +30140,7 @@ msgstr "" "데이터베이스를 만들때 %s 버전으로 문자 정렬 규칙을 만들었는데, 현재 OS는 %s " "버전을 제공하고 있습니다." -#: utils/init/postinit.c:480 +#: utils/init/postinit.c:498 #, c-format msgid "" "Rebuild all objects in this database that use the default collation and run " @@ -28843,59 +30151,59 @@ msgstr "" "VERSION 명령을 실행하거나, 바른 라이브러리 버전을 지정해서, PostgreSQL을 빌드" "하세요." -#: utils/init/postinit.c:891 +#: utils/init/postinit.c:904 #, c-format msgid "no roles are defined in this database system" msgstr "이 데이터베이스에는 어떠한 롤 정의도 없습니다" -#: utils/init/postinit.c:892 +#: utils/init/postinit.c:905 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "다음 명령을 먼저 실행하십시오: CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:928 +#: utils/init/postinit.c:942 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "슈퍼유저만 바이너리 업그레이드 모드 중에 연결 할 수 있음" -#: utils/init/postinit.c:949 +#: utils/init/postinit.c:962 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "남은 연결 슬롯은 %s 속성을 가진 롤용으로 남겨 놓았음" -#: utils/init/postinit.c:955 +#: utils/init/postinit.c:968 #, c-format msgid "" -"remaining connection slots are reserved for roles with privileges of the \"%s" -"\" role" +"remaining connection slots are reserved for roles with privileges of the " +"\"%s\" role" msgstr "남은 연결 슬롯은 \"%s\" 롤 권한이 있는 롤용으로 남겨 놓았음" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:980 #, c-format msgid "permission denied to start WAL sender" msgstr "WAL 송신기 시작할 권한 없음" -#: utils/init/postinit.c:968 +#: utils/init/postinit.c:981 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "WAL 송시기 시작은 %s 속성이 있는 롤만 할 수 있습니다." -#: utils/init/postinit.c:1086 +#: utils/init/postinit.c:1099 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "삭제되었거나 이름이 바뀐 것 같습니다." -#: utils/init/postinit.c:1090 +#: utils/init/postinit.c:1103 #, c-format msgid "database %u does not exist" msgstr "%u 데이터베이스가 없음" -#: utils/init/postinit.c:1099 +#: utils/init/postinit.c:1112 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "잘못된 \"%s\" 데이터베이스로 접속할 수 없음" -#: utils/init/postinit.c:1159 +#: utils/init/postinit.c:1173 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "데이터베이스 디렉터리에 \"%s\" 하위 디렉터리가 없습니다" @@ -28922,55 +30230,48 @@ msgstr "%d은(는) ISO 8859 문자 집합에 대한 예기치 않은 인코딩 I msgid "unexpected encoding ID %d for WIN character sets" msgstr "%d은(는) WIN 문자 집합에 대한 예기치 않은 인코딩 ID임" -#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 +#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 #, c-format msgid "conversion between %s and %s is not supported" msgstr "%s 인코딩과 %s 인코딩 사이의 변환은 지원하지 않습니다" -#: utils/mb/mbutils.c:386 -#, c-format -msgid "" -"default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "" -"\"%s\" 인코딩을 \"%s\" 인코딩으로 변환할 기본 변환규칙(conversion)이 없음" - -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 +#: utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "%d바이트의 문자열은 너무 길어서 인코딩 규칙에 맞지 않습니다." -#: utils/mb/mbutils.c:569 +#: utils/mb/mbutils.c:568 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "\"%s\" 원본 인코딩 이름이 타당치 못함" -#: utils/mb/mbutils.c:574 +#: utils/mb/mbutils.c:573 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "\"%s\" 대상 인코딩 이름이 타당치 못함" -#: utils/mb/mbutils.c:714 +#: utils/mb/mbutils.c:713 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "\"%s\" 인코딩에서 사용할 수 없는 바이트: 0x%02x" -#: utils/mb/mbutils.c:878 +#: utils/mb/mbutils.c:877 #, c-format msgid "invalid Unicode code point" msgstr "잘못된 유니코드 코드 포인트" -#: utils/mb/mbutils.c:1204 +#: utils/mb/mbutils.c:1201 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset 실패" -#: utils/mb/mbutils.c:1725 +#: utils/mb/mbutils.c:1718 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "\"%s\" 인코딩에서 사용할 수 없는 문자가 있음: %s" -#: utils/mb/mbutils.c:1758 +#: utils/mb/mbutils.c:1751 #, c-format msgid "" "character with byte sequence %s in encoding \"%s\" has no equivalent in " @@ -28989,13 +30290,13 @@ msgstr "비어 있는 환경 설정 디렉터리 이름: \"%s\"" msgid "could not open configuration directory \"%s\": %m" msgstr "\"%s\" 환경 설정 디렉터리를 열 수 없습니다: %m" -#: utils/misc/guc.c:115 +#: utils/misc/guc.c:122 msgid "" "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "" "이 매개 변수에 유효한 단위는 \"B\", \"kB\", \"MB\",\"GB\", \"TB\" 입니다." -#: utils/misc/guc.c:152 +#: utils/misc/guc.c:159 msgid "" "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", " "and \"d\"." @@ -29003,50 +30304,50 @@ msgstr "" "이 매개 변수에 유효한 단위는 \"us\", \"ms\", \"s\", \"min\", \"h\", \"d\" 입" "니다." -#: utils/misc/guc.c:421 +#: utils/misc/guc.c:430 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "알 수 없는 환경 매개 변수 이름 \"%s\", 해당 파일: \"%s\", 줄번호: %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3406 utils/misc/guc.c:3646 -#: utils/misc/guc.c:3744 utils/misc/guc.c:3842 utils/misc/guc.c:3966 -#: utils/misc/guc.c:4069 +#: utils/misc/guc.c:470 utils/misc/guc.c:3504 utils/misc/guc.c:3748 +#: utils/misc/guc.c:3846 utils/misc/guc.c:3944 utils/misc/guc.c:4071 +#: utils/misc/guc.c:4212 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "\"%s\" 매개 변수는 서버 재실행 없이 지금 변경 될 수 없음" -#: utils/misc/guc.c:497 +#: utils/misc/guc.c:506 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "환경설정 파일에 \"%s\" 매개 변수가 빠졌음, 초기값을 사용함" -#: utils/misc/guc.c:562 +#: utils/misc/guc.c:571 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "\"%s\" 매개 변수 값을 \"%s\"(으)로 바꿨음" -#: utils/misc/guc.c:604 +#: utils/misc/guc.c:613 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "\"%s\" 환경 설정파일에 오류가 있음" -#: utils/misc/guc.c:609 +#: utils/misc/guc.c:618 #, c-format msgid "" "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "\"%s\" 환경 설정 파일에 오류가 있어 새로 변경될 설정이 없습니다" -#: utils/misc/guc.c:614 +#: utils/misc/guc.c:623 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "\"%s\" 환경 설정 파일에 오류가 있어 아무 설정도 반영되지 않았습니다." -#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "알 수 없는 환경 매개 변수 이름 \"%s\"" -#: utils/misc/guc.c:1213 +#: utils/misc/guc.c:1141 #, c-format msgid "" "Custom parameter names must be two or more simple identifiers separated by " @@ -29055,22 +30356,22 @@ msgstr "" "사용자 정의 환경 설정 변수 이름은 두 글자 이상의 식별자 이름과 점(.)을 구분자" "로 하는 이름이어야 합니다." -#: utils/misc/guc.c:1229 +#: utils/misc/guc.c:1157 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\" 이름은 예약된 접두사입니다." -#: utils/misc/guc.c:1243 +#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "알 수 없는 환경 매개 변수 이름: \"%s\"" -#: utils/misc/guc.c:1765 +#: utils/misc/guc.c:1802 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: \"%s\" 디렉터리에 액세스할 수 없음: %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: \"%s\" 디렉터리에 액세스할 수 없음: %m\n" -#: utils/misc/guc.c:1770 +#: utils/misc/guc.c:1806 #, c-format msgid "" "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" @@ -29078,7 +30379,7 @@ msgstr "" "initdb 명령이나, pg_basebackup 명령으로 PostgreSQL 데이터 디렉터리를 초기화 " "하세요.\n" -#: utils/misc/guc.c:1794 +#: utils/misc/guc.c:1830 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -29090,12 +30391,12 @@ msgstr "" "PGDATA 이름의 환경 변수를 만들고 그 값으로 해당 디렉터리를 지정한 뒤,\n" "이 프로그램을 다시 실행해 보십시오.\n" -#: utils/misc/guc.c:1817 +#: utils/misc/guc.c:1853 #, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s: \"%s\" 환경 설정 파일을 접근할 수 없습니다: %s\n" +msgid "%s: could not access the server configuration file \"%s\": %m\n" +msgstr "%s: \"%s\" 환경 설정 파일을 접근할 수 없습니다: %m\n" -#: utils/misc/guc.c:1845 +#: utils/misc/guc.c:1881 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -29108,7 +30409,7 @@ msgstr "" "PGDATA 이름의 환경 변수를 만들고 그 값으로 해당 디렉터리를 지정한 뒤,\n" "이 프로그램을 다시 실행해 보십시오.\n" -#: utils/misc/guc.c:1897 +#: utils/misc/guc.c:1933 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -29121,7 +30422,7 @@ msgstr "" "PGDATA 이름의 환경 변수를 만들고 그 값으로 해당 디렉터리를 지정한 뒤,\n" "이 프로그램을 다시 실행해 보십시오.\n" -#: utils/misc/guc.c:1928 +#: utils/misc/guc.c:1964 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -29134,123 +30435,135 @@ msgstr "" "PGDATA 이름의 환경 변수를 만들고 그 값으로 해당 디렉터리를 지정한 뒤,\n" "이 프로그램을 다시 실행해 보십시오.\n" -#: utils/misc/guc.c:2894 +#: utils/misc/guc.c:2943 msgid "Value exceeds integer range." msgstr "값이 정수 범위를 초과합니다." -#: utils/misc/guc.c:3130 +#: utils/misc/guc.c:3185 #, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s 값은 \"%s\" 매개 변수의 값으로 타당한 범위(%d .. %d)를 벗어남" +msgid "" +"%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" +msgstr "%d%s%s 값은 \"%s\" 매개 변수의 값으로 타당한 범위(%d%s%s .. %d%s%s)를 벗어남" -#: utils/misc/guc.c:3166 +#: utils/misc/guc.c:3226 #, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s 값은 \"%s\" 매개 변수의 값으로 타당한 범위(%g .. %g)를 벗어남" +msgid "" +"%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" +msgstr "%g%s%s 값은 \"%s\" 매개 변수의 값으로 타당한 범위(%g%s%s .. %g%s%s)를 벗어남" -#: utils/misc/guc.c:3366 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3465 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "병렬 작업 중에는 매개 변수를 설정할 수 없음" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "병렬 작업 중에는 \"%s\" 설정을 할 수 없음" -#: utils/misc/guc.c:3383 utils/misc/guc.c:4530 +#: utils/misc/guc.c:3481 utils/misc/guc.c:4696 #, c-format msgid "parameter \"%s\" cannot be changed" -msgstr "\"%s\" 매개 변수는 변경될 수 없음" +msgstr "\"%s\" 매개 변수는 바꿀 수 없음" -#: utils/misc/guc.c:3416 +#: utils/misc/guc.c:3514 #, c-format msgid "parameter \"%s\" cannot be changed now" -msgstr "\"%s\" 매개 변수는 지금 변경 될 수 없음" +msgstr "\"%s\" 매개 변수는 지금 바꿀 수 없음" -#: utils/misc/guc.c:3443 utils/misc/guc.c:3501 utils/misc/guc.c:4506 -#: utils/misc/guc.c:6546 +#: utils/misc/guc.c:3541 utils/misc/guc.c:3603 utils/misc/guc.c:4671 +#: utils/misc/guc.c:6756 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "\"%s\" 매개 변수를 지정할 권한이 없습니다." -#: utils/misc/guc.c:3481 +#: utils/misc/guc.c:3583 #, c-format msgid "parameter \"%s\" cannot be set after connection start" -msgstr "\"%s\" 매개 변수값은 연결 시작한 뒤에는 변경할 수 없습니다" +msgstr "\"%s\" 매개 변수값은 연결 시작한 뒤에는 바꿀 수 없습니다" -#: utils/misc/guc.c:3540 +#: utils/misc/guc.c:3642 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "보안 정의자 함수 내에서 \"%s\" 매개 변수를 설정할 수 없음" -#: utils/misc/guc.c:3561 +#: utils/misc/guc.c:3663 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "\"%s\" 매개 변수는 리셋할 수 없음" -#: utils/misc/guc.c:3568 +#: utils/misc/guc.c:3670 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "\"%s\" 매개 변수값은 함수 안에서 지역적으로 지정할 수 없습니다" -#: utils/misc/guc.c:4212 utils/misc/guc.c:4259 utils/misc/guc.c:5266 +#: utils/misc/guc.c:4370 utils/misc/guc.c:4418 utils/misc/guc.c:5450 #, c-format msgid "permission denied to examine \"%s\"" msgstr "\"%s\" 검사 권한 없음" -#: utils/misc/guc.c:4213 utils/misc/guc.c:4260 utils/misc/guc.c:5267 +#: utils/misc/guc.c:4371 utils/misc/guc.c:4419 utils/misc/guc.c:5451 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "이 매개 변수의 검사는 \"%s\" 롤 권한이 있는 롤만 할 수 있습니다." -#: utils/misc/guc.c:4496 +#: utils/misc/guc.c:4629 +#, c-format +msgid "ALTER SYSTEM is not allowed in this environment" +msgstr "ALTER SYSTEM 명령은 이 환경에서는 허용하지 않음" + +#: utils/misc/guc.c:4661 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "ALTER SYSTEM RESET ALL 실행 권한 없음" -#: utils/misc/guc.c:4562 +#: utils/misc/guc.c:4740 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "" "ALTER SYSTEM 명령으로 지정하는 매개 변수 값에는 줄바꿈 문자가 없어야 합니다" -#: utils/misc/guc.c:4608 +#: utils/misc/guc.c:4785 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "\"%s\" 파일의 내용을 분석할 수 없음" -#: utils/misc/guc.c:4790 +#: utils/misc/guc.c:4967 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "\"%s\" 매개 변수를 다시 정의하려고 함" -#: utils/misc/guc.c:5129 +#: utils/misc/guc.c:5306 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "알 수 없는 환경 매개 변수 이름 \"%s\", 이 설정은 지웁니다." -#: utils/misc/guc.c:5131 +#: utils/misc/guc.c:5308 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" 이름은 현재 예약된 접두사입니다." -#: utils/misc/guc.c:6000 +#: utils/misc/guc.c:6179 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "\"%s\" 매개 변수 값을 \"%s\" (으)로 바꾸는 중" -#: utils/misc/guc.c:6169 +#: utils/misc/guc.c:6348 #, c-format msgid "parameter \"%s\" could not be set" msgstr "\"%s\" 매개 변수는 설정할 수 없음" -#: utils/misc/guc.c:6259 +#: utils/misc/guc.c:6438 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "지정한 \"%s\" 매개 변수값의 구문분석을 실패했습니다." -#: utils/misc/guc.c:6678 +#: utils/misc/guc.c:6888 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "잘못된 \"%s\" 매개 변수의 값: %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "병렬 작업 중에는 매개 변수를 설정할 수 없음" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -29266,59 +30579,59 @@ msgstr "SET %s 명령은 하나의 값만 지정해야 합니다" msgid "SET requires parameter name" msgstr "SET 명령은 매개 변수 이름이 필요합니다" -#: utils/misc/guc_tables.c:662 +#: utils/misc/guc_tables.c:676 msgid "Ungrouped" msgstr "소속그룹없음" -#: utils/misc/guc_tables.c:664 +#: utils/misc/guc_tables.c:677 msgid "File Locations" msgstr "파일 위치" -#: utils/misc/guc_tables.c:666 +#: utils/misc/guc_tables.c:678 msgid "Connections and Authentication / Connection Settings" msgstr "연결과 인증 / 연결 설정" -#: utils/misc/guc_tables.c:668 +#: utils/misc/guc_tables.c:679 msgid "Connections and Authentication / TCP Settings" msgstr "연결과 인증 / TCP 설정" -#: utils/misc/guc_tables.c:670 +#: utils/misc/guc_tables.c:680 msgid "Connections and Authentication / Authentication" msgstr "연결과 인증 / 인증" -#: utils/misc/guc_tables.c:672 +#: utils/misc/guc_tables.c:681 msgid "Connections and Authentication / SSL" msgstr "연결과 인증 / SSL" -#: utils/misc/guc_tables.c:674 +#: utils/misc/guc_tables.c:682 msgid "Resource Usage / Memory" msgstr "자원 사용량 / 메모리" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:683 msgid "Resource Usage / Disk" msgstr "자원 사용량 / 디스크" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:684 msgid "Resource Usage / Kernel Resources" msgstr "자원 사용량 / 커널 자원" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:685 msgid "Resource Usage / Cost-Based Vacuum Delay" msgstr "자원 사용량 / 비용기반 청소 지연" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:686 msgid "Resource Usage / Background Writer" msgstr "자원 사용량 / 백그라운드 쓰기" -#: utils/misc/guc_tables.c:684 +#: utils/misc/guc_tables.c:687 msgid "Resource Usage / Asynchronous Behavior" msgstr "자원 사용량 / 비동기 기능" -#: utils/misc/guc_tables.c:686 +#: utils/misc/guc_tables.c:688 msgid "Write-Ahead Log / Settings" msgstr "Write-Ahead 로그 / 설정값" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:689 msgid "Write-Ahead Log / Checkpoints" msgstr "Write-Ahead 로그 / 체크포인트" @@ -29326,199 +30639,203 @@ msgstr "Write-Ahead 로그 / 체크포인트" msgid "Write-Ahead Log / Archiving" msgstr "Write-Ahead 로그 / 아카이브" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:691 msgid "Write-Ahead Log / Recovery" msgstr "Write-Ahead 로그 / 복구" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:692 msgid "Write-Ahead Log / Archive Recovery" msgstr "Write-Ahead 로그 / 아카이브 복구" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:693 msgid "Write-Ahead Log / Recovery Target" msgstr "Write-Ahead 로그 / 복구 대상" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Summarization" +msgstr "Write-Ahead 로그 / 요약" + +#: utils/misc/guc_tables.c:695 msgid "Replication / Sending Servers" msgstr "복제 / 보내기 서버" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:696 msgid "Replication / Primary Server" msgstr "복제 / 주 서버" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:697 msgid "Replication / Standby Servers" msgstr "복제 / 대기 서버" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:698 msgid "Replication / Subscribers" msgstr "복제 / 구독" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:699 msgid "Query Tuning / Planner Method Configuration" msgstr "쿼리 튜닝 / 실행계획기 메서드 설정" -#: utils/misc/guc_tables.c:708 +#: utils/misc/guc_tables.c:700 msgid "Query Tuning / Planner Cost Constants" msgstr "쿼리 튜닝 / 실행계획기 비용 상수" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:701 msgid "Query Tuning / Genetic Query Optimizer" msgstr "쿼리 튜닝 / 일반적인 쿼리 최적화기" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:702 msgid "Query Tuning / Other Planner Options" msgstr "쿼리 튜닝 / 기타 실행계획기 옵션들" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:703 msgid "Reporting and Logging / Where to Log" msgstr "보고와 로그 / 로그 위치" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:704 msgid "Reporting and Logging / When to Log" msgstr "보고와 로그 / 로그 시점" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:705 msgid "Reporting and Logging / What to Log" msgstr "보고와 로그 / 로그 내용" -#: utils/misc/guc_tables.c:720 +#: utils/misc/guc_tables.c:706 msgid "Reporting and Logging / Process Title" msgstr "보고와 로그 / 프로세스 타이틀" -#: utils/misc/guc_tables.c:722 +#: utils/misc/guc_tables.c:707 msgid "Statistics / Monitoring" msgstr "통계 / 모니터링" -#: utils/misc/guc_tables.c:724 +#: utils/misc/guc_tables.c:708 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "통계 / 쿼리 및 인덱스 누적 통계" -#: utils/misc/guc_tables.c:726 +#: utils/misc/guc_tables.c:709 msgid "Autovacuum" msgstr "Autovacuum" -#: utils/misc/guc_tables.c:728 +#: utils/misc/guc_tables.c:710 msgid "Client Connection Defaults / Statement Behavior" msgstr "클라이언트 연결 초기값 / 구문 특성" -#: utils/misc/guc_tables.c:730 +#: utils/misc/guc_tables.c:711 msgid "Client Connection Defaults / Locale and Formatting" msgstr "클라이언트 연결 초기값 / 로케일과 출력양식" -#: utils/misc/guc_tables.c:732 +#: utils/misc/guc_tables.c:712 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "클라이언트 연결 초기값 / 공유 라이브러리 미리 로딩" -#: utils/misc/guc_tables.c:734 +#: utils/misc/guc_tables.c:713 msgid "Client Connection Defaults / Other Defaults" msgstr "클라이언트 연결 초기값 / 기타 초기값" -#: utils/misc/guc_tables.c:736 +#: utils/misc/guc_tables.c:714 msgid "Lock Management" msgstr "잠금 관리" -#: utils/misc/guc_tables.c:738 +#: utils/misc/guc_tables.c:715 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "버전과 플랫폼 호환성 / 이전 PostgreSQL 버전" -#: utils/misc/guc_tables.c:740 +#: utils/misc/guc_tables.c:716 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "버전과 플랫폼 호환성 / 다른 플랫폼과 클라이언트" -#: utils/misc/guc_tables.c:742 +#: utils/misc/guc_tables.c:717 msgid "Error Handling" msgstr "오류 처리" -#: utils/misc/guc_tables.c:744 +#: utils/misc/guc_tables.c:718 msgid "Preset Options" msgstr "프리셋 옵션들" -#: utils/misc/guc_tables.c:746 +#: utils/misc/guc_tables.c:719 msgid "Customized Options" msgstr "사용자 정의 옵션들" -#: utils/misc/guc_tables.c:748 +#: utils/misc/guc_tables.c:720 msgid "Developer Options" msgstr "개발자 옵션들" -#: utils/misc/guc_tables.c:805 +#: utils/misc/guc_tables.c:775 msgid "Enables the planner's use of sequential-scan plans." msgstr "실행계획자가 순차적-스캔(sequential-sca) 계획을 사용함" -#: utils/misc/guc_tables.c:815 +#: utils/misc/guc_tables.c:785 msgid "Enables the planner's use of index-scan plans." msgstr "실행계획자가 인덱스-스캔 계획을 사용함." -#: utils/misc/guc_tables.c:825 +#: utils/misc/guc_tables.c:795 msgid "Enables the planner's use of index-only-scan plans." msgstr "실행계획자가 인덱스-전용-탐색 계획을 사용함." -#: utils/misc/guc_tables.c:835 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of bitmap-scan plans." msgstr "실행계획기가 bitmap-scan 계획을 사용하도록 함" -#: utils/misc/guc_tables.c:845 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of TID scan plans." msgstr "실행계획자가 TID 스캔 계획을 사용함" -#: utils/misc/guc_tables.c:855 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of explicit sort steps." msgstr "실행계획자가 명시 정렬 단계(explicit sort step)를 사용함" -#: utils/misc/guc_tables.c:865 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of incremental sort steps." msgstr "실행계획자가 증분 정렬 단계(incremental sort step)를 사용함" -#: utils/misc/guc_tables.c:875 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of hashed aggregation plans." msgstr "실행계획자가 해시된 집계 계획을 사용함" -#: utils/misc/guc_tables.c:885 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of materialization." msgstr "실행계획자가 materialization 계획을 사용함" -#: utils/misc/guc_tables.c:895 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of memoization." msgstr "실행계획자가 memoization 계획을 사용함" -#: utils/misc/guc_tables.c:905 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of nested-loop join plans." msgstr "실행계획자가 근접순환 조인(nested-loop join) 계획을 사용함" -#: utils/misc/guc_tables.c:915 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of merge join plans." msgstr "실행계획자가 병합 조인(merge join) 계획을 사용함" -#: utils/misc/guc_tables.c:925 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of hash join plans." msgstr "실행계획자가 해시 조인(hash join) 계획을 사용함" -#: utils/misc/guc_tables.c:935 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of gather merge plans." msgstr "실행계획자가 병합 수집(gather merge) 계획을 사용함" -#: utils/misc/guc_tables.c:945 +#: utils/misc/guc_tables.c:915 msgid "Enables partitionwise join." msgstr "partitionwise join 활성화" -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:925 msgid "Enables partitionwise aggregation and grouping." msgstr "partitionwise 집계 및 그룹핑 활성화" -#: utils/misc/guc_tables.c:965 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of parallel append plans." msgstr "실행계획자가 병렬 추가 계획을 사용함" -#: utils/misc/guc_tables.c:975 +#: utils/misc/guc_tables.c:945 msgid "Enables the planner's use of parallel hash plans." msgstr "실행계획자가 병렬 해시 계획을 사용함" -#: utils/misc/guc_tables.c:985 +#: utils/misc/guc_tables.c:955 msgid "Enables plan-time and execution-time partition pruning." msgstr "파티션 프루닝 계획수립 및 실행 시간 활성화" -#: utils/misc/guc_tables.c:986 +#: utils/misc/guc_tables.c:956 msgid "" "Allows the query planner and executor to compare partition bounds to " "conditions in the query to determine which partitions must be scanned." @@ -29526,7 +30843,7 @@ msgstr "" "쿼리 실행 계획기와 실행기가 조회해야할 파티션들이 어떤 것들인지 쿼리에서 범위" "를 판단하는 것을 허용함" -#: utils/misc/guc_tables.c:997 +#: utils/misc/guc_tables.c:967 msgid "" "Enables the planner's ability to produce plans that provide presorted input " "for ORDER BY / DISTINCT aggregate functions." @@ -29534,7 +30851,7 @@ msgstr "" "ORDER BY / DISTINCT 집계 함수 처리를 위해 미리 정렬된 입력을 제공하는 계획을 " "생성하는 실행 계획기 기능을 활성화함" -#: utils/misc/guc_tables.c:1000 +#: utils/misc/guc_tables.c:970 msgid "" "Allows the query planner to build plans that provide presorted input for " "aggregate functions with an ORDER BY / DISTINCT clause. When disabled, " @@ -29544,49 +30861,64 @@ msgstr "" "정렬된 입력을 제공하는 계획을 작성할 수 있습니다. 비활성화하면 쿼리 실행 중" "에 암묵적인 정렬을 항상 합니다." -#: utils/misc/guc_tables.c:1012 +#: utils/misc/guc_tables.c:982 msgid "Enables the planner's use of async append plans." msgstr "실행계획자가 비동기 추가 계획을 사용함" -#: utils/misc/guc_tables.c:1022 +#: utils/misc/guc_tables.c:992 +msgid "Enables reordering of GROUP BY keys." +msgstr "GROUP BY 키들의 재정렬 활성화" + +#: utils/misc/guc_tables.c:1002 msgid "Enables genetic query optimization." msgstr "유전적 쿼리 최적화(GEQO)를 사용함" -#: utils/misc/guc_tables.c:1023 +#: utils/misc/guc_tables.c:1003 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "이 알고리즘은 실행계획기의 과도한 작업 비용을 낮춥니다" -#: utils/misc/guc_tables.c:1034 +#: utils/misc/guc_tables.c:1017 msgid "Shows whether the current user is a superuser." msgstr "현재 사용자가 슈퍼유저인지 보여줍니다." -#: utils/misc/guc_tables.c:1044 +#: utils/misc/guc_tables.c:1032 +msgid "Allows running the ALTER SYSTEM command." +msgstr "ALTER SYSTEM 명령 실행 허용" + +#: utils/misc/guc_tables.c:1033 +msgid "" +"Can be set to off for environments where global configuration changes should " +"be made using a different method." +msgstr "다른 방법으로 전역 환경설정 값을 관리하는 환경에서는 off로 설정할 수 있습니다." + +#: utils/misc/guc_tables.c:1043 msgid "Enables advertising the server via Bonjour." msgstr "Bonjour 서버 사용" -#: utils/misc/guc_tables.c:1053 +#: utils/misc/guc_tables.c:1052 msgid "Collects transaction commit time." msgstr "트랜잭션 커밋 시간을 수집함" -#: utils/misc/guc_tables.c:1062 +#: utils/misc/guc_tables.c:1061 msgid "Enables SSL connections." msgstr "SSL 연결을 가능하게 함." -#: utils/misc/guc_tables.c:1071 -msgid "Controls whether ssl_passphrase_command is called during server reload." +#: utils/misc/guc_tables.c:1070 +msgid "" +"Controls whether \"ssl_passphrase_command\" is called during server reload." msgstr "" -"서버 reload 작업 중 ssl_passphrase_command 로 지정한 명령을 실행 할 것인지를 " +"서버 reload 작업 중 \"ssl_passphrase_command\" 로 지정한 명령을 실행 할 것인지를 " "제어함." -#: utils/misc/guc_tables.c:1080 +#: utils/misc/guc_tables.c:1079 msgid "Give priority to server ciphersuite order." msgstr "SSL 인증 알고리즘 우선 순위를 정함" -#: utils/misc/guc_tables.c:1089 +#: utils/misc/guc_tables.c:1088 msgid "Forces synchronization of updates to disk." msgstr "강제로 변경된 버퍼 자료를 디스크와 동기화 시킴." -#: utils/misc/guc_tables.c:1090 +#: utils/misc/guc_tables.c:1089 msgid "" "The server will use the fsync() system call in several places to make sure " "that updates are physically written to disk. This ensures that a database " @@ -29598,11 +30930,11 @@ msgstr "" "스템의 비정상적인 동작이나, 하드웨어에서 오류가 발생되었을 경우에도 자료를 안" "전하게 지킬 수 있도록 도와줄 것입니다." -#: utils/misc/guc_tables.c:1101 +#: utils/misc/guc_tables.c:1100 msgid "Continues processing after a checksum failure." msgstr "체크섬 실패 후 처리 계속 함" -#: utils/misc/guc_tables.c:1102 +#: utils/misc/guc_tables.c:1101 msgid "" "Detection of a checksum failure normally causes PostgreSQL to report an " "error, aborting the current transaction. Setting ignore_checksum_failure to " @@ -29617,51 +30949,51 @@ msgstr "" "니다. 이 설정은 데이터 클러스터에서 체크섬 기능이 활성화 되어 있는 경우에만 " "영향을 받습니다." -#: utils/misc/guc_tables.c:1116 +#: utils/misc/guc_tables.c:1115 msgid "Continues processing past damaged page headers." msgstr "손상된 자료 헤더 발견시 작업 진행 여부 선택" -#: utils/misc/guc_tables.c:1117 +#: utils/misc/guc_tables.c:1116 msgid "" "Detection of a damaged page header normally causes PostgreSQL to report an " -"error, aborting the current transaction. Setting zero_damaged_pages to true " -"causes the system to instead report a warning, zero out the damaged page, " -"and continue processing. This behavior will destroy data, namely all the " -"rows on the damaged page." +"error, aborting the current transaction. Setting \"zero_damaged_pages\" to " +"true causes the system to instead report a warning, zero out the damaged " +"page, and continue processing. This behavior will destroy data, namely all " +"the rows on the damaged page." msgstr "" "일반적으로 손상된 페이지 헤더를 발견하게 되면, PostgreSQL에서는 오류를 발생하" -"고, 현재 트랜잭션을 중지합니다. zero_damaged_pages 값을 true로 지정하면, 이" +"고, 현재 트랜잭션을 중지합니다. \"zero_damaged_pages\" 값을 true로 지정하면, 이" "런 손상된 페이지를 발견하면, 경고 메시지를 보여주고, 그 페이지의 크기를 0으" "로 만들고 작업을 계속 진행합니다. 이 기능을 사용한다 함은 손상된 자료를 없애" "겠다는 것을 의미합니다. 이것은 곧 저장되어있는 자료가 삭제 될 수도 있음을 의" "미하기도 합니다." -#: utils/misc/guc_tables.c:1130 +#: utils/misc/guc_tables.c:1129 msgid "Continues recovery after an invalid pages failure." msgstr "잘못된 페이지 실패 후 복구 계속 함" -#: utils/misc/guc_tables.c:1131 +#: utils/misc/guc_tables.c:1130 msgid "" "Detection of WAL records having references to invalid pages during recovery " "causes PostgreSQL to raise a PANIC-level error, aborting the recovery. " -"Setting ignore_invalid_pages to true causes the system to ignore invalid " +"Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid " "page references in WAL records (but still report a warning), and continue " "recovery. This behavior may cause crashes, data loss, propagate or hide " "corruption, or other serious problems. Only has an effect during recovery or " "in standby mode." msgstr "" "PostgreSQL은 WAL 기반 복구 작업에서 해당 페이지가 잘못되어 있으면, PANIC 오류" -"를 내고 복구 작업을 중지하고 멈춥니다. ignore_invalid_pages 값을 true로 지" +"를 내고 복구 작업을 중지하고 멈춥니다. \"ignore_invalid_pages\" 값을 true로 지" "정하면, 이런 손상된 페이지가 있을 때, 경고 메시지를 보여주고, 복구 작업 계속 " "진행합니다. 이 기능을 사용하면 서버 비정상 종료나 자료 손실 숨은 손상, 기타 " "심각한 문제가 일어 날 수 있습니다. 이 설정은 복구 작업 때나 대기 모드 상태에" "서만 작동합니다." -#: utils/misc/guc_tables.c:1149 +#: utils/misc/guc_tables.c:1148 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "체크포인트 후 처음 수정할 때 전체 페이지를 WAL에 씁니다." -#: utils/misc/guc_tables.c:1150 +#: utils/misc/guc_tables.c:1149 msgid "" "A page write in process during an operating system crash might be only " "partially written to disk. During recovery, the row changes stored in WAL " @@ -29673,7 +31005,7 @@ msgstr "" "없을 수도 있습니다. 이 옵션은 안전하게 복구가 가능하도록 체크포인트 후 처음 " "수정한 페이지는 그 페이지 전체를 WAL에 씁니다." -#: utils/misc/guc_tables.c:1163 +#: utils/misc/guc_tables.c:1162 msgid "" "Writes full pages to WAL when first modified after a checkpoint, even for a " "non-critical modification." @@ -29681,102 +31013,106 @@ msgstr "" "체크포인트 작업 후 자료 페이지에 첫 변경이 있는 경우, 치명적인 변경이 아닐지" "라도 해당 페이지 전체를 기록합니다." -#: utils/misc/guc_tables.c:1173 +#: utils/misc/guc_tables.c:1172 msgid "Writes zeroes to new WAL files before first use." msgstr "처음 사용 되기 전에 WAL 파일을 0으로 채웁니다." -#: utils/misc/guc_tables.c:1183 +#: utils/misc/guc_tables.c:1182 msgid "Recycles WAL files by renaming them." msgstr "파일 이름 변경으로 WAL 파일을 재사용합니다." -#: utils/misc/guc_tables.c:1193 +#: utils/misc/guc_tables.c:1192 msgid "Logs each checkpoint." msgstr "체크포인트 관련 정보를 기록합니다." -#: utils/misc/guc_tables.c:1202 +#: utils/misc/guc_tables.c:1201 msgid "Logs each successful connection." msgstr "연결 성공한 정보들 모두를 기록함" -#: utils/misc/guc_tables.c:1211 +#: utils/misc/guc_tables.c:1210 +msgid "Logs details of pre-authentication connection handshake." +msgstr "연결 맺기를 위한 사전 인증작업 관련 세부사항을 기록합니다." + +#: utils/misc/guc_tables.c:1220 msgid "Logs end of a session, including duration." msgstr "기간을 포함하여 세션의 끝을 기록합니다." -#: utils/misc/guc_tables.c:1220 +#: utils/misc/guc_tables.c:1229 msgid "Logs each replication command." msgstr "복제 관련 작업 내역을 기록합니다." -#: utils/misc/guc_tables.c:1229 +#: utils/misc/guc_tables.c:1238 msgid "Shows whether the running server has assertion checks enabled." msgstr "서버가 assertion 검사 기능이 활성화 되어 실행되는지 보여 줌" -#: utils/misc/guc_tables.c:1240 +#: utils/misc/guc_tables.c:1249 msgid "Terminate session on any error." msgstr "어떤 오류가 생기면 세션을 종료함" -#: utils/misc/guc_tables.c:1249 +#: utils/misc/guc_tables.c:1258 msgid "Reinitialize server after backend crash." msgstr "백엔드가 비정상 종료되면 서버를 재초기화함" -#: utils/misc/guc_tables.c:1258 +#: utils/misc/guc_tables.c:1267 msgid "Remove temporary files after backend crash." msgstr "백엔드 비정상 종료 뒤에는 임시 파일을 지웁니다." -#: utils/misc/guc_tables.c:1268 +#: utils/misc/guc_tables.c:1277 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "" "백엔드 비정상 종료 될 때 하위 프로세스에게 SIGQUIT 대신에 SIGABRT 신호를 보냄" -#: utils/misc/guc_tables.c:1278 +#: utils/misc/guc_tables.c:1287 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "멈춘 하위 프로세스에게 SIGKILL 대신에 SIGABRT 신호를 보냄" -#: utils/misc/guc_tables.c:1289 +#: utils/misc/guc_tables.c:1298 msgid "Logs the duration of each completed SQL statement." msgstr "SQL 명령 구문의 실행완료 시간을 기록함" -#: utils/misc/guc_tables.c:1298 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's parse tree." msgstr "각 쿼리의 구문 분석 트리를 기록합니다." -#: utils/misc/guc_tables.c:1307 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's rewritten parse tree." msgstr "각 쿼리의 재작성된 구문 분석 트리를 기록합니다." -#: utils/misc/guc_tables.c:1316 +#: utils/misc/guc_tables.c:1325 msgid "Logs each query's execution plan." msgstr "각 쿼리의 실행 계획을 기록합니다." -#: utils/misc/guc_tables.c:1325 +#: utils/misc/guc_tables.c:1334 msgid "Indents parse and plan tree displays." msgstr "구문과 실행계획을 보여 줄때, 들여쓰기를 함." -#: utils/misc/guc_tables.c:1334 +#: utils/misc/guc_tables.c:1343 msgid "Writes parser performance statistics to the server log." msgstr "구문분석 성능 통계를 서버 로그에 기록함." -#: utils/misc/guc_tables.c:1343 +#: utils/misc/guc_tables.c:1352 msgid "Writes planner performance statistics to the server log." msgstr "실행계획자 성능 통계를 서버 로그에 기록함." -#: utils/misc/guc_tables.c:1352 +#: utils/misc/guc_tables.c:1361 msgid "Writes executor performance statistics to the server log." msgstr "실행자 성능 통계를 서버 로그에 기록함." -#: utils/misc/guc_tables.c:1361 +#: utils/misc/guc_tables.c:1370 msgid "Writes cumulative performance statistics to the server log." msgstr "누적 성능 통계를 서버 로그에 기록함." -#: utils/misc/guc_tables.c:1371 +#: utils/misc/guc_tables.c:1380 msgid "" "Logs system resource usage statistics (memory and CPU) on various B-tree " "operations." msgstr "다양한 B트리 작업에 자원(메모리, CPU) 사용 통계를 기록에 남기" -#: utils/misc/guc_tables.c:1383 +#: utils/misc/guc_tables.c:1392 msgid "Collects information about executing commands." msgstr "명령 실행에 대한 정보를 수집함" -#: utils/misc/guc_tables.c:1384 +#: utils/misc/guc_tables.c:1393 msgid "" "Enables the collection of information on the currently executing command of " "each session, along with the time at which that command began execution." @@ -29784,67 +31120,67 @@ msgstr "" "각 세션에서 사용하고 있는 현재 실행 중인 명령의 수행 시간, 명령 내용등에 대" "한 정보를 수집하도록 함" -#: utils/misc/guc_tables.c:1394 +#: utils/misc/guc_tables.c:1403 msgid "Collects statistics on database activity." msgstr "데이터베이스 활동에 대한 통계를 수집합니다." -#: utils/misc/guc_tables.c:1403 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for database I/O activity." msgstr "데이터베이스 I/O 활동에 대한 통계를 수집합니다." -#: utils/misc/guc_tables.c:1412 +#: utils/misc/guc_tables.c:1421 msgid "Collects timing statistics for WAL I/O activity." msgstr "WAL I/O 활동에 작업 시간 통계를 수집합니다." -#: utils/misc/guc_tables.c:1422 +#: utils/misc/guc_tables.c:1431 msgid "Updates the process title to show the active SQL command." msgstr "활성 SQL 명령을 표시하도록 프로세스 제목을 업데이트합니다." -#: utils/misc/guc_tables.c:1423 +#: utils/misc/guc_tables.c:1432 msgid "" "Enables updating of the process title every time a new SQL command is " "received by the server." msgstr "" "서버가 새 SQL 명령을 받을 때마다 프로세스 제목이 업데이트될 수 있도록 합니다." -#: utils/misc/guc_tables.c:1432 +#: utils/misc/guc_tables.c:1441 msgid "Starts the autovacuum subprocess." msgstr "자동 청소 하위 프로세스를 실행함" -#: utils/misc/guc_tables.c:1442 +#: utils/misc/guc_tables.c:1451 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "LISTEN, NOTIFY 명령 사용을 위한 디버깅 출력을 만듦." -#: utils/misc/guc_tables.c:1454 +#: utils/misc/guc_tables.c:1463 msgid "Emits information about lock usage." msgstr "잠금 사용 정보를 로그로 남김" -#: utils/misc/guc_tables.c:1464 +#: utils/misc/guc_tables.c:1473 msgid "Emits information about user lock usage." msgstr "사용자 잠금 사용 정보를 로그로 남김" -#: utils/misc/guc_tables.c:1474 +#: utils/misc/guc_tables.c:1483 msgid "Emits information about lightweight lock usage." msgstr "가벼운 잠금 사용 정보를 로그로 남김" -#: utils/misc/guc_tables.c:1484 +#: utils/misc/guc_tables.c:1493 msgid "" "Dumps information about all current locks when a deadlock timeout occurs." msgstr "교착 잠금 시간 제한 상황이 발생하면 그 때의 모든 잠금 정보를 보여줌" -#: utils/misc/guc_tables.c:1496 +#: utils/misc/guc_tables.c:1505 msgid "Logs long lock waits." msgstr "긴 잠금 대기를 기록합니다." -#: utils/misc/guc_tables.c:1505 +#: utils/misc/guc_tables.c:1514 msgid "Logs standby recovery conflict waits." msgstr "대기 서버 복구 충돌에 따른 대기 정보를 로그에 남깁니다." -#: utils/misc/guc_tables.c:1514 +#: utils/misc/guc_tables.c:1523 msgid "Logs the host name in the connection logs." msgstr "연결 기록에서 호스트 이름을 기록함." -#: utils/misc/guc_tables.c:1515 +#: utils/misc/guc_tables.c:1524 msgid "" "By default, connection logs only show the IP address of the connecting host. " "If you want them to show the host name you can turn this on, but depending " @@ -29855,11 +31191,11 @@ msgstr "" "true로 바꾼다면, 이 IP의 호스트 이름을 구해서 이 이름을 사용합니다 이것의 성" "능은 OS의 IP에서 이름구하기 성능과 관계됩니다." -#: utils/misc/guc_tables.c:1526 +#: utils/misc/guc_tables.c:1535 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "\"표현식=NULL\" 식을 \"표현식 IS NULL\"로 취급함." -#: utils/misc/guc_tables.c:1527 +#: utils/misc/guc_tables.c:1536 msgid "" "When turned on, expressions of the form expr = NULL (or NULL = expr) are " "treated as expr IS NULL, that is, they return true if expr evaluates to the " @@ -29870,10 +31206,6 @@ msgstr "" "표현식 = NULL 구문을 표현식 IS NULL 구문으로 바꾸어서 처리하도록 해서 계산에 " "따라 true, false를 반환합니다." -#: utils/misc/guc_tables.c:1539 -msgid "Enables per-database user names." -msgstr "per-database 사용자 이름 활성화." - #: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "새로운 트랜잭션의 상태를 초기값으로 읽기전용으로 설정합니다." @@ -29984,29 +31316,33 @@ msgid "Sets whether to include or exclude transaction with recovery target." msgstr "복구 대상에서 트랜잭션을 포함할지 제외할지 선택합니다." #: utils/misc/guc_tables.c:1778 +msgid "Starts the WAL summarizer process to enable incremental backup." +msgstr "증분 백업을 허용하기 위해 WAL 요약 프로세스를 시작합니다." + +#: utils/misc/guc_tables.c:1788 msgid "Allows connections and queries during recovery." msgstr "복구 중에서도 접속과 쿼리 사용을 허용함" -#: utils/misc/guc_tables.c:1788 +#: utils/misc/guc_tables.c:1798 msgid "" "Allows feedback from a hot standby to the primary that will avoid query " "conflicts." msgstr "" "읽기 전용 보조 서버가 보내는 쿼리 충돌을 피하기 위한 피드백을 주 서버가 받음" -#: utils/misc/guc_tables.c:1798 +#: utils/misc/guc_tables.c:1808 msgid "Shows whether hot standby is currently active." msgstr "hot standby 가 활성화 되었는지 보여줌" -#: utils/misc/guc_tables.c:1809 +#: utils/misc/guc_tables.c:1819 msgid "Allows modifications of the structure of system tables." msgstr "시스템 테이블의 구조를 수정할 수 있도록 합니다." -#: utils/misc/guc_tables.c:1820 +#: utils/misc/guc_tables.c:1830 msgid "Disables reading from system indexes." msgstr "시스템 인덱스 읽기를 금지함" -#: utils/misc/guc_tables.c:1821 +#: utils/misc/guc_tables.c:1831 msgid "" "It does not prevent updating the indexes, so it is safe to use. The worst " "consequence is slowness." @@ -30014,16 +31350,16 @@ msgstr "" "이 설정이 활성화 되어도 그 인덱스는 갱신되어 사용하는데는 안전합니다. 하지" "만 서버가 전체적으로 늦어질 수 있습니다." -#: utils/misc/guc_tables.c:1832 +#: utils/misc/guc_tables.c:1842 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "테이블스페이스를 pg_tblspc 안에 바로 만듦, 테스팅용" -#: utils/misc/guc_tables.c:1843 +#: utils/misc/guc_tables.c:1853 msgid "" "Enables backward compatibility mode for privilege checks on large objects." msgstr "대형 개체에 대한 접근 권한 검사를 위한 하위 호환성이 있게 함" -#: utils/misc/guc_tables.c:1844 +#: utils/misc/guc_tables.c:1854 msgid "" "Skips privilege checks when reading or modifying large objects, for " "compatibility with PostgreSQL releases prior to 9.0." @@ -30031,84 +31367,99 @@ msgstr "" "PostgreSQL 9.0 이전 버전의 호환성을 위해 대형 개체에 대한 읽기, 변경 시 접근 " "권한 검사를 안 하도록 설정함" -#: utils/misc/guc_tables.c:1854 +#: utils/misc/guc_tables.c:1864 msgid "When generating SQL fragments, quote all identifiers." msgstr "SQL 구문을 만들 때, 모든 식별자는 따옴표를 사용함" -#: utils/misc/guc_tables.c:1864 +#: utils/misc/guc_tables.c:1874 msgid "Shows whether data checksums are turned on for this cluster." msgstr "이 클러스터에서 자료 체크섬 기능을 사용하는지 보여줌" -#: utils/misc/guc_tables.c:1875 +#: utils/misc/guc_tables.c:1885 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "syslog 사용시 메시지 중복을 방지하기 위해 일련 번호를 매깁니다." -#: utils/misc/guc_tables.c:1885 +#: utils/misc/guc_tables.c:1895 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "syslog 사용시 메시지를 한 줄에 1024 바이트만 쓰도록 나눕니다" -#: utils/misc/guc_tables.c:1895 +#: utils/misc/guc_tables.c:1905 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Gather와 Gather Merge 작업을 서브플랜에서도 할지를 제어함." -#: utils/misc/guc_tables.c:1896 +#: utils/misc/guc_tables.c:1906 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "서브플랜에서 gather 노드를 실행할지, 단지 튜플만 모을지 지정" -#: utils/misc/guc_tables.c:1906 +#: utils/misc/guc_tables.c:1916 msgid "Allow JIT compilation." msgstr "JIT 짜깁기 허용" -#: utils/misc/guc_tables.c:1917 +#: utils/misc/guc_tables.c:1927 msgid "Register JIT-compiled functions with debugger." msgstr "디버거용 JIT 컴파일된 함수 등록" -#: utils/misc/guc_tables.c:1934 +#: utils/misc/guc_tables.c:1944 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "LLVM bitcode 출력에 JIT 디버깅 정보 함께 기록" -#: utils/misc/guc_tables.c:1945 +#: utils/misc/guc_tables.c:1955 msgid "Allow JIT compilation of expressions." msgstr "표현식의 JIT 짜깁기 허용" -#: utils/misc/guc_tables.c:1956 +#: utils/misc/guc_tables.c:1966 msgid "Register JIT-compiled functions with perf profiler." msgstr "perf 프로파일러용 JIT 컴파일된 함수 등록" -#: utils/misc/guc_tables.c:1973 +#: utils/misc/guc_tables.c:1983 msgid "Allow JIT compilation of tuple deforming." msgstr "튜플 deform에 JIT 짜깁기 허용" -#: utils/misc/guc_tables.c:1984 +#: utils/misc/guc_tables.c:1994 msgid "Whether to continue running after a failure to sync data files." msgstr "데이터 파일 동기화 작업 실패 뒤에도 실행을 계속할지 선택함" -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2003 msgid "" "Sets whether a WAL receiver should create a temporary replication slot if no " "permanent slot is configured." msgstr "" "WAL 수신기가 영구 슬롯 설정이 되어 있지 않을 때, 임시 복제 슬롯을 만들지 지정" -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2012 +msgid "Enables event triggers." +msgstr "이벤트 트리거 활성화합니다." + +#: utils/misc/guc_tables.c:2013 +msgid "When enabled, event triggers will fire for all applicable statements." +msgstr "활성화 되면, 구현 가능한 모든 구문에 대해서 이벤트 트리거가 실행됩니다." + +#: utils/misc/guc_tables.c:2022 +msgid "" +"Enables a physical standby to synchronize logical failover replication slots " +"from the primary server." +msgstr "" +"물리 복제 대기 서버가 주 서버로부터 논리 failover 복제 슬롯 동기화 하도록 합니다." + +#: utils/misc/guc_tables.c:2040 msgid "" "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "다음 WAL 파일로 강제 전환하기 전에 대기할 시간 지정" -#: utils/misc/guc_tables.c:2022 +#: utils/misc/guc_tables.c:2051 msgid "" "Sets the amount of time to wait after authentication on connection startup." msgstr "연결 작업시 인증이 끝난 뒤 대기 시간 지정" -#: utils/misc/guc_tables.c:2024 utils/misc/guc_tables.c:2658 +#: utils/misc/guc_tables.c:2053 utils/misc/guc_tables.c:2780 msgid "This allows attaching a debugger to the process." msgstr "이렇게 하면 디버거를 프로세스에 연결할 수 있습니다." -#: utils/misc/guc_tables.c:2033 +#: utils/misc/guc_tables.c:2062 msgid "Sets the default statistics target." msgstr "기본 통계 대상을 지정합니다." -#: utils/misc/guc_tables.c:2034 +#: utils/misc/guc_tables.c:2063 msgid "" "This applies to table columns that have not had a column-specific target set " "via ALTER TABLE SET STATISTICS." @@ -30116,12 +31467,12 @@ msgstr "" "특정 칼럼을 지정하지 않고 ALTER TABLE SET STATISTICS 명령을 사용했을 때, 통" "계 대상이 될 칼럼을 지정합니다." -#: utils/misc/guc_tables.c:2043 +#: utils/misc/guc_tables.c:2072 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "" "이 크기를 초과할 경우 하위 쿼리가 축소되지 않는 FROM 목록 크기를 설정합니다." -#: utils/misc/guc_tables.c:2045 +#: utils/misc/guc_tables.c:2074 msgid "" "The planner will merge subqueries into upper queries if the resulting FROM " "list would have no more than this many items." @@ -30129,12 +31480,12 @@ msgstr "" "결과 FROM 목록에 포함된 항목이 이 개수를 넘지 않는 경우 계획 관리자가 하" "위 쿼리를 상위 쿼리에 병합합니다." -#: utils/misc/guc_tables.c:2056 +#: utils/misc/guc_tables.c:2085 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "" "이 크기를 초과할 경우 JOIN 구문이 결합되지 않는 FROM 목록 크기를 설정합니다." -#: utils/misc/guc_tables.c:2058 +#: utils/misc/guc_tables.c:2087 msgid "" "The planner will flatten explicit JOIN constructs into lists of FROM items " "whenever a list of no more than this many items would result." @@ -30142,32 +31493,32 @@ msgstr "" "결과 목록에 포함된 항목이 이 개수를 넘지 않을 때마다 계획 관리자가 명시" "적 JOIN 구문을 FROM 항목 목록에 결합합니다." -#: utils/misc/guc_tables.c:2069 +#: utils/misc/guc_tables.c:2098 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "" "이 임계값을 초과할 경우 GEQO가 사용되는 FROM 항목의 임계값을 설정합니다." -#: utils/misc/guc_tables.c:2079 +#: utils/misc/guc_tables.c:2108 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: 다른 GEQO 매개 변수의 기본 값을 설정하는 데 사용됩니다." -#: utils/misc/guc_tables.c:2089 +#: utils/misc/guc_tables.c:2118 msgid "GEQO: number of individuals in the population." msgstr "GEQO: 모집단의 개인 수입니다." -#: utils/misc/guc_tables.c:2090 utils/misc/guc_tables.c:2100 +#: utils/misc/guc_tables.c:2119 utils/misc/guc_tables.c:2129 msgid "Zero selects a suitable default value." msgstr "0을 지정하면 적절한 기본 값이 선택됩니다." -#: utils/misc/guc_tables.c:2099 +#: utils/misc/guc_tables.c:2128 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: 알고리즘의 반복 수입니다." -#: utils/misc/guc_tables.c:2111 +#: utils/misc/guc_tables.c:2140 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "교착 상태를 확인하기 전에 잠금을 기다릴 시간을 설정합니다." -#: utils/misc/guc_tables.c:2122 +#: utils/misc/guc_tables.c:2151 msgid "" "Sets the maximum delay before canceling queries when a hot standby server is " "processing archived WAL data." @@ -30175,38 +31526,38 @@ msgstr "" "읽기 전용 보조 서버가 아카이브된 WAL 자료를 처리할 때, 지연될 수 있는 최대 시" "간" -#: utils/misc/guc_tables.c:2133 +#: utils/misc/guc_tables.c:2162 msgid "" "Sets the maximum delay before canceling queries when a hot standby server is " "processing streamed WAL data." msgstr "" "읽기 전용 보조 서버가 스트림 WAL 자료를 처리할 때, 지연될 수 있는 최대 시간" -#: utils/misc/guc_tables.c:2144 +#: utils/misc/guc_tables.c:2173 msgid "Sets the minimum delay for applying changes during recovery." msgstr "변경 사항 반영을 위한 최소 지연 시간 지정" -#: utils/misc/guc_tables.c:2155 +#: utils/misc/guc_tables.c:2184 msgid "" "Sets the maximum interval between WAL receiver status reports to the sending " "server." msgstr "WAL 정보를 보내는 서버에게 WAL 수신기 상태를 보고하는 최대 간격" -#: utils/misc/guc_tables.c:2166 +#: utils/misc/guc_tables.c:2195 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "" "WAL 정보를 보내는 서버로부터 보낸 자료를 받기위해 기다릴 수 있는 최대 허용 시" "간을 설정합니다." -#: utils/misc/guc_tables.c:2177 +#: utils/misc/guc_tables.c:2206 msgid "Sets the maximum number of concurrent connections." msgstr "최대 동시 접속수를 지정합니다." -#: utils/misc/guc_tables.c:2188 +#: utils/misc/guc_tables.c:2217 msgid "Sets the number of connection slots reserved for superusers." msgstr "superuser 동시 접속수를 지정합니다." -#: utils/misc/guc_tables.c:2198 +#: utils/misc/guc_tables.c:2227 msgid "" "Sets the number of connection slots reserved for roles with privileges of " "pg_use_reserved_connections." @@ -30214,45 +31565,92 @@ msgstr "" "pg_use_reserved_connections 권한이 있는 롤의 예약된 연결 슬롯 수를 설정합니" "다." -#: utils/misc/guc_tables.c:2209 +#: utils/misc/guc_tables.c:2238 msgid "Amount of dynamic shared memory reserved at startup." msgstr "시작시 확보할 동적 공유 메모리 크기" -#: utils/misc/guc_tables.c:2224 +#: utils/misc/guc_tables.c:2253 msgid "Sets the number of shared memory buffers used by the server." msgstr "서버에서 사용할 공유 메모리 버퍼 개수를 지정함" -#: utils/misc/guc_tables.c:2235 +#: utils/misc/guc_tables.c:2264 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "VACUUM, ANALYZE, autovacuum 작업용 버퍼 풀 크기를 설정합니다." -#: utils/misc/guc_tables.c:2246 +#: utils/misc/guc_tables.c:2275 msgid "" "Shows the size of the server's main shared memory area (rounded up to the " "nearest MB)." msgstr "서버의 메인 공유 메모리 영역 크기를 보여줌(MB 단위로 근사값처리함)" -#: utils/misc/guc_tables.c:2257 +#: utils/misc/guc_tables.c:2286 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "메인 공유 메모리 영역용 huge 페이지 개수를 보여줌" -#: utils/misc/guc_tables.c:2258 +#: utils/misc/guc_tables.c:2287 msgid "-1 indicates that the value could not be determined." msgstr "-1 은 사용하지 않음을 뜻함" -#: utils/misc/guc_tables.c:2268 +#: utils/misc/guc_tables.c:2297 +msgid "" +"Sets the size of the dedicated buffer pool used for the commit timestamp " +"cache." +msgstr "커밋 시간 캐시용 버퍼 풀 크기 지정" + +#: utils/misc/guc_tables.c:2298 utils/misc/guc_tables.c:2353 +#: utils/misc/guc_tables.c:2364 +msgid "" +"Specify 0 to have this value determined as a fraction of shared_buffers." +msgstr "이 값을 shared_buffers의 일부로 하려면 0을 지정합니다." + +#: utils/misc/guc_tables.c:2308 +msgid "" +"Sets the size of the dedicated buffer pool used for the MultiXact member " +"cache." +msgstr "MultiXact 번호 캐시용 버퍼 풀 크기 지정" + +#: utils/misc/guc_tables.c:2319 +msgid "" +"Sets the size of the dedicated buffer pool used for the MultiXact offset " +"cache." +msgstr "MultiXact offset 캐시용 버퍼 풀 크기 지정" + +#: utils/misc/guc_tables.c:2330 +msgid "" +"Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY " +"message cache." +msgstr "LISTEN/NOTIFY 메시지 캐시용 버퍼 풀 크기 지정" + +#: utils/misc/guc_tables.c:2341 +msgid "" +"Sets the size of the dedicated buffer pool used for the serializable " +"transaction cache." +msgstr "직렬화 가능한 트랜잭션 캐시용 버퍼 풀 크기 지정" + +#: utils/misc/guc_tables.c:2352 +msgid "" +"Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "하위트랜잭션 캐시를 위한 버퍼 풀 크기를 지정합니다." + +#: utils/misc/guc_tables.c:2363 +msgid "" +"Sets the size of the dedicated buffer pool used for the transaction status " +"cache." +msgstr "트랜잭션 상태 캐시를 위한 버퍼 풀 크기를 지정합니다." + +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "각 세션에서 사용하는 임시 버퍼의 최대 개수를 지정" -#: utils/misc/guc_tables.c:2279 +#: utils/misc/guc_tables.c:2385 msgid "Sets the TCP port the server listens on." msgstr "TCP 포트 번호를 지정함." -#: utils/misc/guc_tables.c:2289 +#: utils/misc/guc_tables.c:2395 msgid "Sets the access permissions of the Unix-domain socket." msgstr "유닉스 도메인 소켓 파일의 액세스 권한을 지정함" -#: utils/misc/guc_tables.c:2290 +#: utils/misc/guc_tables.c:2396 msgid "" "Unix-domain sockets use the usual Unix file system permission set. The " "parameter value is expected to be a numeric mode specification in the form " @@ -30263,11 +31661,11 @@ msgstr "" "수 값은 chmod 및 umask 시스템 호출에서 수락되는 형태의 숫자 모드 지정이어야 " "합니다. (일반적인 8진수 형식을 사용하려면 숫자가 0으로 시작해야 합니다.)" -#: utils/misc/guc_tables.c:2304 +#: utils/misc/guc_tables.c:2410 msgid "Sets the file permissions for log files." msgstr "로그 파일의 파일 접근 권한을 지정합니다." -#: utils/misc/guc_tables.c:2305 +#: utils/misc/guc_tables.c:2411 msgid "" "The parameter value is expected to be a numeric mode specification in the " "form accepted by the chmod and umask system calls. (To use the customary " @@ -30277,11 +31675,11 @@ msgstr "" "이어야 합니다. (일반적인 8진수 형식을 사용하려면 숫자가 0으로 시작해야 합니" "다.)" -#: utils/misc/guc_tables.c:2319 +#: utils/misc/guc_tables.c:2425 msgid "Shows the mode of the data directory." msgstr "데이터 디렉터리의 모드값을 보여줌" -#: utils/misc/guc_tables.c:2320 +#: utils/misc/guc_tables.c:2426 msgid "" "The parameter value is a numeric mode specification in the form accepted by " "the chmod and umask system calls. (To use the customary octal format the " @@ -30291,11 +31689,11 @@ msgstr "" "이어야 합니다. (일반적인 8진수 형식을 사용하려면 숫자가 0으로 시작해야 합니" "다.)" -#: utils/misc/guc_tables.c:2333 +#: utils/misc/guc_tables.c:2439 msgid "Sets the maximum memory to be used for query workspaces." msgstr "쿼리 작업공간을 위해 사용될 메모리의 최대값을 지정함." -#: utils/misc/guc_tables.c:2334 +#: utils/misc/guc_tables.c:2440 msgid "" "This much memory can be used by each internal sort operation and hash table " "before switching to temporary disk files." @@ -30303,128 +31701,136 @@ msgstr "" "임시 디스크 파일로 전환하기 전에 각 내부 정렬 작업과 해시 테이블에서 이 크기" "의 메모리를 사용할 수 있습니다." -#: utils/misc/guc_tables.c:2346 +#: utils/misc/guc_tables.c:2457 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "관리 작업을 위해 사용될 메모리의 최대값을 지정함." -#: utils/misc/guc_tables.c:2347 +#: utils/misc/guc_tables.c:2458 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "관리작업은 VACUUM, CREATE INDEX 같은 작업을 뜻합니다." -#: utils/misc/guc_tables.c:2357 +#: utils/misc/guc_tables.c:2468 msgid "Sets the maximum memory to be used for logical decoding." msgstr "논리 디코딩 작업을 위해 사용될 메모리의 최대값을 지정함." -#: utils/misc/guc_tables.c:2358 +#: utils/misc/guc_tables.c:2469 msgid "" "This much memory can be used by each internal reorder buffer before spilling " "to disk." msgstr "이 메모리는 디스크 기록 전에 각 내부 재정렬 버퍼로 사용될 수 있습니다." -#: utils/misc/guc_tables.c:2374 +#: utils/misc/guc_tables.c:2485 msgid "Sets the maximum stack depth, in kilobytes." msgstr "스택깊이(KB 단위) 최대값을 지정합니다." -#: utils/misc/guc_tables.c:2385 +#: utils/misc/guc_tables.c:2496 msgid "Limits the total size of all temporary files used by each process." msgstr "각 프로세스에서 사용하는 모든 임시 파일의 총 크기 제한" -#: utils/misc/guc_tables.c:2386 +#: utils/misc/guc_tables.c:2497 msgid "-1 means no limit." msgstr "-1은 제한 없음" -#: utils/misc/guc_tables.c:2396 +#: utils/misc/guc_tables.c:2507 msgid "Vacuum cost for a page found in the buffer cache." msgstr "버퍼 캐시에 있는 페이지의 청소 비용입니다." -#: utils/misc/guc_tables.c:2406 +#: utils/misc/guc_tables.c:2517 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "버퍼 캐시에 없는 페이지의 청소 비용입니다." -#: utils/misc/guc_tables.c:2416 +#: utils/misc/guc_tables.c:2527 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "청소로 페이지 변경 시 부과되는 비용입니다." -#: utils/misc/guc_tables.c:2426 +#: utils/misc/guc_tables.c:2537 msgid "Vacuum cost amount available before napping." msgstr "청소가 중지되는 청소 비용 합계입니다." -#: utils/misc/guc_tables.c:2436 +#: utils/misc/guc_tables.c:2547 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "자동 청소에 대한 청소가 중지되는 청소 비용 합계입니다." -#: utils/misc/guc_tables.c:2446 +#: utils/misc/guc_tables.c:2557 msgid "" "Sets the maximum number of simultaneously open files for each server process." msgstr "각각의 서버 프로세스에서 동시에 열릴 수 있는 최대 파일 갯수를 지정함." -#: utils/misc/guc_tables.c:2459 +#: utils/misc/guc_tables.c:2570 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "동시에 준비된 트랜잭션 최대 개수 지정" -#: utils/misc/guc_tables.c:2470 +#: utils/misc/guc_tables.c:2581 msgid "Sets the minimum OID of tables for tracking locks." msgstr "잠금 추적을 위한 테이블의 최소 OID 지정" -#: utils/misc/guc_tables.c:2471 +#: utils/misc/guc_tables.c:2582 msgid "Is used to avoid output on system tables." msgstr "시스템 테이블 출력 방지용" -#: utils/misc/guc_tables.c:2480 +#: utils/misc/guc_tables.c:2591 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "무조건 잠금 추적용 테이블 OID 지정" -#: utils/misc/guc_tables.c:2492 +#: utils/misc/guc_tables.c:2603 msgid "Sets the maximum allowed duration of any statement." msgstr "모든 쿼리문에 적용되는 허용되는 최대 수행시간" -#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 -#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 +#: utils/misc/guc_tables.c:2604 utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2626 utils/misc/guc_tables.c:2637 +#: utils/misc/guc_tables.c:2648 msgid "A value of 0 turns off the timeout." msgstr "이 값이 0이면 이런 제한이 없음." -#: utils/misc/guc_tables.c:2503 +#: utils/misc/guc_tables.c:2614 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "모든 잠금에 적용되는 기다리는 최대 대기 시간" -#: utils/misc/guc_tables.c:2514 +#: utils/misc/guc_tables.c:2625 msgid "" "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "idle-in-transaction 상태로 있을 수 있는 최대 시간 지정" -#: utils/misc/guc_tables.c:2525 +#: utils/misc/guc_tables.c:2636 +msgid "" +"Sets the maximum allowed duration of any transaction within a session (not a " +"prepared transaction)." +msgstr "한 세션에서 최대 유지할 수 있는 트랜잭션(미리 준비된 트랜잭션 아님) " +"시간을 지정합니다." + +#: utils/misc/guc_tables.c:2647 msgid "" "Sets the maximum allowed idle time between queries, when not in a " "transaction." msgstr "idle 상태로 있을 수 있는 최대 시간 지정" -#: utils/misc/guc_tables.c:2536 +#: utils/misc/guc_tables.c:2658 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "VACUUM에서 테이블 행을 동결할 때까지의 최소 기간입니다." -#: utils/misc/guc_tables.c:2546 +#: utils/misc/guc_tables.c:2668 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "" "VACUUM에서 튜플을 동결하기 위해 전체 테이블을 스캔할 때까지의 기간입니다." -#: utils/misc/guc_tables.c:2556 +#: utils/misc/guc_tables.c:2678 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "VACUUM에서 테이블 MultiXactId 동결할 때까지의 최소 기간입니다." -#: utils/misc/guc_tables.c:2566 +#: utils/misc/guc_tables.c:2688 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "" "VACUUM에서 튜플을 동결하기 위해 전체 테이블을 스캔할 때까지의 멀티트랜잭션 기" "간입니다." -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2698 msgid "" "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "" "VACUUM 작업에서 트랜잭션ID 겹침 방지를 피하기 위한 freeze 작업을 하는 테이블 " "나이" -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2707 msgid "" "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound " "outage." @@ -30432,40 +31838,40 @@ msgstr "" "VACUUM 작업에서 트랜잭션ID 겹침 방지를 피하기 위한 freeze 작업을 하는 멀티트" "랜잭션 나이" -#: utils/misc/guc_tables.c:2598 +#: utils/misc/guc_tables.c:2720 msgid "Sets the maximum number of locks per transaction." msgstr "하나의 트랜잭션에서 사용할 수 있는 최대 잠금 횟수를 지정함." -#: utils/misc/guc_tables.c:2599 +#: utils/misc/guc_tables.c:2721 msgid "" "The shared lock table is sized on the assumption that at most " -"max_locks_per_transaction objects per server process or prepared transaction " -"will need to be locked at any one time." +"\"max_locks_per_transaction\" objects per server process or prepared " +"transaction will need to be locked at any one time." msgstr "" "공유 잠금 테이블은 한 번에 잠궈야 할 고유 개체 수가 " -"max_locks_per_transaction * (max_connections 또는 미리 준비된 트랜잭션 수)를 " +"\"max_locks_per_transaction\" * (\"max_connections\" 또는 미리 준비된 트랜잭션 수)를 " "넘지 않는다는 가정 하에 크기가 지정됩니다." -#: utils/misc/guc_tables.c:2610 +#: utils/misc/guc_tables.c:2732 msgid "Sets the maximum number of predicate locks per transaction." msgstr "하나의 트랜잭션에서 사용할 수 있는 최대 잠금 횟수를 지정함." -#: utils/misc/guc_tables.c:2611 +#: utils/misc/guc_tables.c:2733 msgid "" "The shared predicate lock table is sized on the assumption that at most " -"max_pred_locks_per_transaction objects per server process or prepared " +"\"max_pred_locks_per_transaction\" objects per server process or prepared " "transaction will need to be locked at any one time." msgstr "" "공유 predicate 잠금 테이블은 한 번에 잠궈야 할 고유 개체 수가 " -"max_pred_locks_per_transaction * (max_connections 또는 미리 준비된 트랜잭션 " +"\"max_pred_locks_per_transaction\" * (\"max_connections\" 또는 미리 준비된 트랜잭션 " "수)를 넘지 않는다는 가정 하에 크기가 지정됩니다." -#: utils/misc/guc_tables.c:2622 +#: utils/misc/guc_tables.c:2744 msgid "" "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "릴레이션 당 최대 predicate-lock 페이지와 튜플 수 지정" -#: utils/misc/guc_tables.c:2623 +#: utils/misc/guc_tables.c:2745 msgid "" "If more than this total of pages and tuples in the same relation are locked " "by a connection, those locks are replaced by a relation-level lock." @@ -30473,11 +31879,11 @@ msgstr "" "한 연결에서 같은 릴레이션 대상으로 이 값보다 큰 페이지와 튜플을 잠근다면, 그 " "잠금은 릴레이션 수준 잠금으로 변경 된다." -#: utils/misc/guc_tables.c:2633 +#: utils/misc/guc_tables.c:2755 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "페이지당 predicate-lock 튜플 최대 수 지정." -#: utils/misc/guc_tables.c:2634 +#: utils/misc/guc_tables.c:2756 msgid "" "If more than this number of tuples on the same page are locked by a " "connection, those locks are replaced by a page-level lock." @@ -30485,49 +31891,53 @@ msgstr "" "한 연결에서 같은 페이지 대상으로 이 값보다 튜플을 잠근다면, 그 잠금은 페이지 " "수준 잠금으로 변경 된다." -#: utils/misc/guc_tables.c:2644 +#: utils/misc/guc_tables.c:2766 msgid "Sets the maximum allowed time to complete client authentication." msgstr "클라이언트 인증을 완료할 수 있는 최대 허용 시간을 설정합니다." -#: utils/misc/guc_tables.c:2656 +#: utils/misc/guc_tables.c:2778 msgid "" "Sets the amount of time to wait before authentication on connection startup." msgstr "연결 할 때 인증 전 기다리는 시간 지정" -#: utils/misc/guc_tables.c:2668 +#: utils/misc/guc_tables.c:2790 +msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." +msgstr "NOTIFY / LISTEN 큐용 할당된 페이지 최대치 지정" + +#: utils/misc/guc_tables.c:2800 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "복구에서 WAL 미리 읽을 버퍼 크기" -#: utils/misc/guc_tables.c:2669 +#: utils/misc/guc_tables.c:2801 msgid "" "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "" "참조된 데이터 블록을 미리 가져오기 위해 WAL에서 미리 읽을 수 있는 최대 거리." -#: utils/misc/guc_tables.c:2679 +#: utils/misc/guc_tables.c:2811 msgid "Sets the size of WAL files held for standby servers." msgstr "대기 서버를 위해 보관하고 있을 WAL 파일 크기를 지정" -#: utils/misc/guc_tables.c:2690 +#: utils/misc/guc_tables.c:2822 msgid "Sets the minimum size to shrink the WAL to." msgstr "WAL 최소 크기" -#: utils/misc/guc_tables.c:2702 +#: utils/misc/guc_tables.c:2834 msgid "Sets the WAL size that triggers a checkpoint." msgstr "체크포인트 작업을 할 WAL 크기 지정" -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2846 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "자동 WAL 체크포인트 사이의 최대 간격을 설정합니다." -#: utils/misc/guc_tables.c:2725 +#: utils/misc/guc_tables.c:2857 msgid "" "Sets the maximum time before warning if checkpoints triggered by WAL volume " "happen too frequently." msgstr "" "WAL 기록 때문에 자주 발생하는 체크포인트 경고를 보이지 않는 최대 시간 지정" -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2859 msgid "" "Write a message to the server log if checkpoints caused by the filling of " "WAL segment files happen more frequently than this amount of time. Zero " @@ -30537,69 +31947,76 @@ msgstr "" "용이 꽉 차는 사태가 발생하면 경고 메시지를 서버 로그에 남깁니다. 이 값을 0으" "로 지정하면 경고 남기지 않음" -#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 -#: utils/misc/guc_tables.c:2998 +#: utils/misc/guc_tables.c:2872 utils/misc/guc_tables.c:3090 +#: utils/misc/guc_tables.c:3144 msgid "" "Number of pages after which previously performed writes are flushed to disk." msgstr "쓰기 작업 뒤 디스크 동기화를 수행할 페이지 수" -#: utils/misc/guc_tables.c:2751 +#: utils/misc/guc_tables.c:2883 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "" "WAL 기능을 위해 공유 메모리에서 사용할 디스크 페이지 버퍼 개수를 지정함." -#: utils/misc/guc_tables.c:2762 +#: utils/misc/guc_tables.c:2884 +msgid "" +"Specify -1 to have this value determined as a fraction of shared_buffers." +msgstr "shared_buffers 일부로 지정하려면 -1" + +#: utils/misc/guc_tables.c:2894 msgid "Time between WAL flushes performed in the WAL writer." msgstr "WAL 기록자가 지정 시간 만큼 쉬고 쓰기 작업을 반복함" -#: utils/misc/guc_tables.c:2773 +#: utils/misc/guc_tables.c:2905 msgid "Amount of WAL written out by WAL writer that triggers a flush." -msgstr "" +msgstr "WAL 쓰기 프로세스가 이 양만큼 쓰고 flush 합니다." -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2916 msgid "Minimum size of new file to fsync instead of writing WAL." -msgstr "" +msgstr "WAL 쓰기 대신해서 fsync할 새 파일의 최소 크기" -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2927 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "동시에 작동할 WAL 송신 프로세스 최대 수 지정" -#: utils/misc/guc_tables.c:2806 +#: utils/misc/guc_tables.c:2938 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "동시에 사용할 수 있는 복제 슬롯 최대 수 지정" -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2948 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "복제 슬롯을 위해 보관할 최대 WAL 크기 지정" -#: utils/misc/guc_tables.c:2817 +#: utils/misc/guc_tables.c:2949 msgid "" "Replication slots will be marked as failed, and segments released for " "deletion or recycling, if this much space is occupied by WAL on disk." msgstr "" +"디스크에서 WAL이 이 정도의 공간을 차지하면 복제 슬롯은 실패로 표시되고, " +"WAL 조각 파일들은 삭제 또는 재활용 됩니다." -#: utils/misc/guc_tables.c:2829 +#: utils/misc/guc_tables.c:2961 msgid "Sets the maximum time to wait for WAL replication." msgstr "WAL 복제를 위해 기다릴 최대 시간 설정" -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2972 msgid "" "Sets the delay in microseconds between transaction commit and flushing WAL " "to disk." msgstr "" "트랜잭션과 트랜잭션 로그의 적용 사이의 간격을 microsecond 단위로 지정함" -#: utils/misc/guc_tables.c:2852 +#: utils/misc/guc_tables.c:2984 msgid "" "Sets the minimum number of concurrent open transactions required before " -"performing commit_delay." -msgstr "commit_delay 처리하기 전에 있는 최소 동시 열려 있는 트랜잭션 개수." +"performing \"commit_delay\"." +msgstr "\"commit_delay\" 처리하기 전에 있는 최소 동시 열려 있는 트랜잭션 개수." -#: utils/misc/guc_tables.c:2863 +#: utils/misc/guc_tables.c:2995 msgid "Sets the number of digits displayed for floating-point values." msgstr "부동소수형 값을 표기할 때 " -#: utils/misc/guc_tables.c:2864 +#: utils/misc/guc_tables.c:2996 msgid "" "This affects real, double precision, and geometric data types. A zero or " "negative parameter value is added to the standard number of digits (FLT_DIG " @@ -30610,7 +32027,7 @@ msgstr "" "은 정수여야 합니다(FLT_DIG or DBL_DIG as appropriate - 무슨 말인지). 음수면 " "그 만큼 소숫점 자리를 더 많이 생략해서 정확도를 떨어뜨립니다." -#: utils/misc/guc_tables.c:2876 +#: utils/misc/guc_tables.c:3008 msgid "" "Sets the minimum execution time above which a sample of statements will be " "logged. Sampling is determined by log_statement_sample_rate." @@ -30618,20 +32035,20 @@ msgstr "" "log_statement_sample_rate 설정으로 수집할 로그 가운데, 기록할 최소 쿼리 수행 " "시간" -#: utils/misc/guc_tables.c:2879 +#: utils/misc/guc_tables.c:3011 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "0을 지정하면 모든 쿼리를 로깅하고, -1을 지정하면 이 기능이 해제됩니다." -#: utils/misc/guc_tables.c:2889 +#: utils/misc/guc_tables.c:3021 msgid "" "Sets the minimum execution time above which all statements will be logged." msgstr "모든 실행 쿼리문을 로그로 남길 최소 실행 시간을 설정합니다." -#: utils/misc/guc_tables.c:2891 +#: utils/misc/guc_tables.c:3023 msgid "Zero prints all queries. -1 turns this feature off." msgstr "0을 지정하면 모든 쿼리를 로깅하고, -1을 지정하면 이 기능이 해제됩니다." -#: utils/misc/guc_tables.c:2901 +#: utils/misc/guc_tables.c:3033 msgid "" "Sets the minimum execution time above which autovacuum actions will be " "logged." @@ -30639,192 +32056,192 @@ msgstr "" "이 시간을 초과할 경우 자동 청소 작업 로그를 남길 최소 실행 시간을 설정합니" "다." -#: utils/misc/guc_tables.c:2903 +#: utils/misc/guc_tables.c:3035 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "" "0을 지정하면 모든 작업을 로깅하고, -1을 지정하면 자동 청소관련 로그를 남기지 " "않음" -#: utils/misc/guc_tables.c:2913 +#: utils/misc/guc_tables.c:3045 msgid "" "Sets the maximum length in bytes of data logged for bind parameter values " "when logging statements." msgstr "쿼리문 로그 저장에 쓸 매개변수 값의 최대 길이 바이트" -#: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 +#: utils/misc/guc_tables.c:3047 utils/misc/guc_tables.c:3059 msgid "-1 to print values in full." msgstr "-1은 길이 제한 없이 전체" -#: utils/misc/guc_tables.c:2925 +#: utils/misc/guc_tables.c:3057 msgid "" "Sets the maximum length in bytes of data logged for bind parameter values " "when logging statements, on error." msgstr "쿼리 오류 시 쿼리문 로그 저장에 쓸 매개변수 값의 최대 길이 바이트" -#: utils/misc/guc_tables.c:2937 +#: utils/misc/guc_tables.c:3069 msgid "Background writer sleep time between rounds." msgstr "백그라운드 기록자의 잠자는 시간" -#: utils/misc/guc_tables.c:2948 +#: utils/misc/guc_tables.c:3080 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "라운드당 플러시할 백그라운드 작성기 최대 LRU 페이지 수입니다." -#: utils/misc/guc_tables.c:2971 +#: utils/misc/guc_tables.c:3103 msgid "" "Number of simultaneous requests that can be handled efficiently by the disk " "subsystem." msgstr "디스크 하위 시스템에서 효율적으로 처리할 수 있는 동시 요청 수입니다." -#: utils/misc/guc_tables.c:2985 +#: utils/misc/guc_tables.c:3117 msgid "" -"A variant of effective_io_concurrency that is used for maintenance work." +"A variant of \"effective_io_concurrency\" that is used for maintenance work." msgstr "" +"유지보수 작업에 사용되는 \"effective_io_concurrency\"의 변형입니다." -#: utils/misc/guc_tables.c:3011 +#: utils/misc/guc_tables.c:3132 +msgid "Limit on the size of data reads and writes." +msgstr "데이터 읽기 쓰기 크기의 제한을 겁니다." + +#: utils/misc/guc_tables.c:3157 msgid "Maximum number of concurrent worker processes." msgstr "동시 작업자 프로세스의 최대 수" -#: utils/misc/guc_tables.c:3023 +#: utils/misc/guc_tables.c:3169 msgid "Maximum number of logical replication worker processes." msgstr "논리 복제 작업자 프로세스의 최대 수" -#: utils/misc/guc_tables.c:3035 +#: utils/misc/guc_tables.c:3181 msgid "Maximum number of table synchronization workers per subscription." msgstr "구독을 위한 테이블 동기화 작업자의 최대 수" -#: utils/misc/guc_tables.c:3047 +#: utils/misc/guc_tables.c:3193 msgid "Maximum number of parallel apply workers per subscription." msgstr "구독을 위한 테이블 병렬 동기화 작업자의 최대 수" -#: utils/misc/guc_tables.c:3057 +#: utils/misc/guc_tables.c:3203 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "강제 로그 파일 바꾸기 전 대기 시간 지정" -#: utils/misc/guc_tables.c:3069 +#: utils/misc/guc_tables.c:3215 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "로그 파일 바꾸기 전 최대 로그 파일 크기 지정" -#: utils/misc/guc_tables.c:3081 +#: utils/misc/guc_tables.c:3227 msgid "Shows the maximum number of function arguments." msgstr "함수 인자의 최대 갯수를 보여줍니다" -#: utils/misc/guc_tables.c:3092 +#: utils/misc/guc_tables.c:3238 msgid "Shows the maximum number of index keys." msgstr "인덱스 키의 최대개수를 보여줍니다." -#: utils/misc/guc_tables.c:3103 +#: utils/misc/guc_tables.c:3249 msgid "Shows the maximum identifier length." msgstr "최대 식별자 길이를 표시합니다." -#: utils/misc/guc_tables.c:3114 +#: utils/misc/guc_tables.c:3260 msgid "Shows the size of a disk block." msgstr "디스크 블록의 크기를 표시합니다." -#: utils/misc/guc_tables.c:3125 +#: utils/misc/guc_tables.c:3271 msgid "Shows the number of pages per disk file." msgstr "디스크 파일당 페이지 수를 표시합니다." -#: utils/misc/guc_tables.c:3136 +#: utils/misc/guc_tables.c:3282 msgid "Shows the block size in the write ahead log." msgstr "미리 쓰기 로그의 블록 크기를 표시합니다." -#: utils/misc/guc_tables.c:3147 +#: utils/misc/guc_tables.c:3293 msgid "" "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "" +"실패한 시도 후 WAL 검색을 다시 시도하기 전에 기다리는 시간을 설정합니다." -#: utils/misc/guc_tables.c:3159 +#: utils/misc/guc_tables.c:3305 msgid "Shows the size of write ahead log segments." msgstr "미리 쓰기 로그 세그먼트당 페이지 크기를 표시합니다." -#: utils/misc/guc_tables.c:3172 +#: utils/misc/guc_tables.c:3318 +msgid "Time for which WAL summary files should be kept." +msgstr "WAL 요약 파일을 보관해야 하는 시간입니다." + +#: utils/misc/guc_tables.c:3331 msgid "Time to sleep between autovacuum runs." msgstr "자동 청소 실행 사이의 절전 모드 시간입니다." -#: utils/misc/guc_tables.c:3182 +#: utils/misc/guc_tables.c:3341 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "청소 전의 최소 튜플 업데이트 또는 삭제 수입니다." -#: utils/misc/guc_tables.c:3191 +#: utils/misc/guc_tables.c:3350 msgid "" "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert " "vacuums." msgstr "청소를 위한 최소 튜플 삽입 수입니다. -1은 insert는 vacuum에서 제외" -#: utils/misc/guc_tables.c:3200 +#: utils/misc/guc_tables.c:3359 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "통계 정보 수집을 위한 최소 튜플 삽입, 업데이트 또는 삭제 수입니다." -#: utils/misc/guc_tables.c:3210 +#: utils/misc/guc_tables.c:3369 msgid "" "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "" "트랜잭션 ID 겹침 방지를 위해 테이블에 대해 autovacuum 작업을 수행할 테이블 나" "이를 지정합니다." -#: utils/misc/guc_tables.c:3222 +#: utils/misc/guc_tables.c:3381 msgid "" "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "" "멀티 트랜잭션 ID 겹침 방지를 위해 테이블에 대해 autovacuum 작업을 수행할 트랜" "잭션 나이를 지정합니다." -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3391 msgid "" "Sets the maximum number of simultaneously running autovacuum worker " "processes." msgstr "동시에 작업할 수 있는 autovacuum 작업자 최대 수 지정" -#: utils/misc/guc_tables.c:3242 +#: utils/misc/guc_tables.c:3401 msgid "" "Sets the maximum number of parallel processes per maintenance operation." msgstr "유지보수 작업에서 사용할 병렬 프로세스 최대 수를 지정" -#: utils/misc/guc_tables.c:3252 +#: utils/misc/guc_tables.c:3411 msgid "Sets the maximum number of parallel processes per executor node." msgstr "실행 노드당 최대 병렬 처리 수 지정" -#: utils/misc/guc_tables.c:3263 +#: utils/misc/guc_tables.c:3422 msgid "" "Sets the maximum number of parallel workers that can be active at one time." msgstr "한번에 작업할 수 있는 병렬 작업자 최대 수 지정" -#: utils/misc/guc_tables.c:3274 +#: utils/misc/guc_tables.c:3433 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "각 autovacuum 작업자 프로세스가 사용할 메모리 최대치" -#: utils/misc/guc_tables.c:3285 -msgid "" -"Time before a snapshot is too old to read pages changed after the snapshot " -"was taken." -msgstr "" - -#: utils/misc/guc_tables.c:3286 -msgid "A value of -1 disables this feature." -msgstr "이 값이 -1 이면 이 기능 사용 안함" - -#: utils/misc/guc_tables.c:3296 +#: utils/misc/guc_tables.c:3444 msgid "Time between issuing TCP keepalives." msgstr "TCP 연결 유지 실행 간격입니다." -#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 -#: utils/misc/guc_tables.c:3432 +#: utils/misc/guc_tables.c:3445 utils/misc/guc_tables.c:3456 +#: utils/misc/guc_tables.c:3580 msgid "A value of 0 uses the system default." msgstr "이 값이 0이면 시스템 기본 값" -#: utils/misc/guc_tables.c:3307 +#: utils/misc/guc_tables.c:3455 msgid "Time between TCP keepalive retransmits." msgstr "TCP keepalive 시간 설정" -#: utils/misc/guc_tables.c:3318 +#: utils/misc/guc_tables.c:3466 msgid "SSL renegotiation is no longer supported; this can only be 0." -msgstr "" +msgstr "SSL 재협상은 더 이상 지원되지 않습니다. 이 값은 0만 가능합니다." -#: utils/misc/guc_tables.c:3329 +#: utils/misc/guc_tables.c:3477 msgid "Maximum number of TCP keepalive retransmits." msgstr "TCP keepalive 확인 최대 횟수" -#: utils/misc/guc_tables.c:3330 +#: utils/misc/guc_tables.c:3478 msgid "" "Number of consecutive keepalive retransmits that can be lost before a " "connection is considered dead. A value of 0 uses the system default." @@ -30832,15 +32249,15 @@ msgstr "" "연결이 중단된 것으로 간주되기 전에 연결 유지 요청을 위한 연속적인 keepalive " "패킷 전송 수. 0을 지정하면 시스템 기본 값이 사용됩니다." -#: utils/misc/guc_tables.c:3341 +#: utils/misc/guc_tables.c:3489 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "정확한 GIN 기준 검색에 허용되는 최대 결과 수를 설정합니다." -#: utils/misc/guc_tables.c:3352 +#: utils/misc/guc_tables.c:3500 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "디스크 캐시 총 크기에 대한 계획 관리자의 가정을 설정합니다." -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3501 msgid "" "That is, the total size of the caches (kernel cache and shared buffers) used " "for PostgreSQL data files. This is measured in disk pages, which are " @@ -30849,85 +32266,89 @@ msgstr "" "즉, PostgreSQL에서 사용하는 총 캐시 크기입니다(커널 캐시와 공유 버퍼 모두 포" "함). 이 값은 디스크 페이지 단위로 측정되며, 일반적으로 각각 8kB입니다." -#: utils/misc/guc_tables.c:3364 +#: utils/misc/guc_tables.c:3512 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "병렬 조회를 위한 최소 테이블 자료량 지정" -#: utils/misc/guc_tables.c:3365 +#: utils/misc/guc_tables.c:3513 msgid "" "If the planner estimates that it will read a number of table pages too small " "to reach this limit, a parallel scan will not be considered." msgstr "" +"실행계획기가 이 한계에 도달하기에는 너무 작은 수의 테이블 페이지를 읽을 것으로 " +"추정하는 경우 병렬 스캔은 고려하지 않습니다." -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3523 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "병렬 조회를 위한 최소 인덱스 자료량 지정" -#: utils/misc/guc_tables.c:3376 +#: utils/misc/guc_tables.c:3524 msgid "" "If the planner estimates that it will read a number of index pages too small " "to reach this limit, a parallel scan will not be considered." msgstr "" +"실행계획기가 이 한계에 도달하기에는 너무 작은 수의 인덱스 페이지를 읽을 것으로 " +"추정하는 경우 병렬 스캔은 고려하지 않습니다." -#: utils/misc/guc_tables.c:3387 +#: utils/misc/guc_tables.c:3535 msgid "Shows the server version as an integer." msgstr "서버 버전을 정수형으로 보여줍니다" -#: utils/misc/guc_tables.c:3398 +#: utils/misc/guc_tables.c:3546 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "이 킬로바이트 수보다 큰 임시 파일의 사용을 기록합니다." -#: utils/misc/guc_tables.c:3399 +#: utils/misc/guc_tables.c:3547 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "" "0을 지정하면 모든 파일이 기록됩니다. 기본 값은 -1로, 이 기능이 해제됩니다." -#: utils/misc/guc_tables.c:3409 +#: utils/misc/guc_tables.c:3557 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "pg_stat_activity.query에 예약되는 크기(바이트)를 설정합니다." -#: utils/misc/guc_tables.c:3420 +#: utils/misc/guc_tables.c:3568 msgid "Sets the maximum size of the pending list for GIN index." msgstr "GIN 인덱스를 위한 팬딩(pending) 목록의 최대 크기 지정" -#: utils/misc/guc_tables.c:3431 +#: utils/misc/guc_tables.c:3579 msgid "TCP user timeout." -msgstr "" +msgstr "TCP 사용자 제한시간." -#: utils/misc/guc_tables.c:3442 +#: utils/misc/guc_tables.c:3590 msgid "The size of huge page that should be requested." -msgstr "" +msgstr "요청되는 huge page 크기" -#: utils/misc/guc_tables.c:3453 +#: utils/misc/guc_tables.c:3601 msgid "Aggressively flush system caches for debugging purposes." -msgstr "" +msgstr "디버킹 처리를 위해 적극적으로 시스템 캐시를 비웁니다." -#: utils/misc/guc_tables.c:3476 +#: utils/misc/guc_tables.c:3624 msgid "" "Sets the time interval between checks for disconnection while running " "queries." msgstr "쿼리 실행 중에 연결을 끊을지 검사하는 간격을 지정합니다." -#: utils/misc/guc_tables.c:3487 +#: utils/misc/guc_tables.c:3635 msgid "Time between progress updates for long-running startup operations." msgstr "연결 작업이 오래 진행되는 경우 진행 상태 갱신 주기" -#: utils/misc/guc_tables.c:3489 +#: utils/misc/guc_tables.c:3637 msgid "0 turns this feature off." msgstr "0을 지정하면 이 기능이 해제됩니다." -#: utils/misc/guc_tables.c:3499 +#: utils/misc/guc_tables.c:3647 msgid "Sets the iteration count for SCRAM secret generation." msgstr "SCRAM 비밀번호 생성용 이터레이션 수를 지정합니다." -#: utils/misc/guc_tables.c:3519 +#: utils/misc/guc_tables.c:3667 msgid "" "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "" "순차적으로 접근하는 디스크 페이지에 대한 계획 관리자의 예상 비용을 설정합니" "다." -#: utils/misc/guc_tables.c:3530 +#: utils/misc/guc_tables.c:3678 msgid "" "Sets the planner's estimate of the cost of a nonsequentially fetched disk " "page." @@ -30935,11 +32356,11 @@ msgstr "" "비순차적으로 접근하는 디스크 페이지에 대한 계획 관리자의 예상 비용을 설정합니" "다." -#: utils/misc/guc_tables.c:3541 +#: utils/misc/guc_tables.c:3689 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "각 튜플(행)에 대한 계획 관리자의 예상 처리 비용을 설정합니다." -#: utils/misc/guc_tables.c:3552 +#: utils/misc/guc_tables.c:3700 msgid "" "Sets the planner's estimate of the cost of processing each index entry " "during an index scan." @@ -30947,7 +32368,7 @@ msgstr "" "실행 계획기의 비용 계산에 사용될 인덱스 스캔으로 각 인덱스 항목을 처리하는 예" "상 처리 비용을 설정합니다." -#: utils/misc/guc_tables.c:3563 +#: utils/misc/guc_tables.c:3711 msgid "" "Sets the planner's estimate of the cost of processing each operator or " "function call." @@ -30955,7 +32376,7 @@ msgstr "" "실행 계획기의 비용 계산에 사용될 함수 호출이나 연산자 연산 처리하는 예상 처" "리 비용을 설정합니다." -#: utils/misc/guc_tables.c:3574 +#: utils/misc/guc_tables.c:3722 msgid "" "Sets the planner's estimate of the cost of passing each tuple (row) from " "worker to leader backend." @@ -30963,7 +32384,7 @@ msgstr "" "각 튜플(행)을 작업자에서 리더 백엔드로 보내는 예상 비용을 실행계획기에 설정합" "니다." -#: utils/misc/guc_tables.c:3585 +#: utils/misc/guc_tables.c:3733 msgid "" "Sets the planner's estimate of the cost of starting up worker processes for " "parallel query." @@ -30971,71 +32392,71 @@ msgstr "" "병렬 쿼리를 위해 작업자 프로세스 시작하는데 드는 예상 비용을 실행계획기에 설" "정합니다." -#: utils/misc/guc_tables.c:3597 +#: utils/misc/guc_tables.c:3745 msgid "Perform JIT compilation if query is more expensive." msgstr "쿼리 수행 예상 비용이 이 값보다 크면, JIT 짜깁기를 수행" -#: utils/misc/guc_tables.c:3598 +#: utils/misc/guc_tables.c:3746 msgid "-1 disables JIT compilation." msgstr "-1 = JIT 짜깁기 안함" -#: utils/misc/guc_tables.c:3608 +#: utils/misc/guc_tables.c:3756 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "쿼리 수행 예상 비용이 이 값보다 크면, JIT-컴파일된 함수 최적화 함" -#: utils/misc/guc_tables.c:3609 +#: utils/misc/guc_tables.c:3757 msgid "-1 disables optimization." msgstr "-1 = 최적화 비활성화" -#: utils/misc/guc_tables.c:3619 +#: utils/misc/guc_tables.c:3767 msgid "Perform JIT inlining if query is more expensive." msgstr "쿼리 수행 예상 비용이 이 값보다 크면, JIT 인라인 작업 수행" -#: utils/misc/guc_tables.c:3620 +#: utils/misc/guc_tables.c:3768 msgid "-1 disables inlining." msgstr "-1 = 인라인 기능 끔" -#: utils/misc/guc_tables.c:3630 +#: utils/misc/guc_tables.c:3778 msgid "" "Sets the planner's estimate of the fraction of a cursor's rows that will be " "retrieved." msgstr "검색될 커서 행에 대한 계획 관리자의 예상 분수 값을 설정합니다." -#: utils/misc/guc_tables.c:3642 +#: utils/misc/guc_tables.c:3790 msgid "" "Sets the planner's estimate of the average size of a recursive query's " "working table." msgstr "재귀 호출 쿼리 대상 테이블의 평균 크기를 실행 계획기에 설정 함" -#: utils/misc/guc_tables.c:3654 +#: utils/misc/guc_tables.c:3802 msgid "GEQO: selective pressure within the population." msgstr "GEQO: 모집단 내의 선택 압력입니다." -#: utils/misc/guc_tables.c:3665 +#: utils/misc/guc_tables.c:3813 msgid "GEQO: seed for random path selection." msgstr "GEQO: 무작위 경로 선택을 위한 씨드" -#: utils/misc/guc_tables.c:3676 -msgid "Multiple of work_mem to use for hash tables." -msgstr "테이블 해시 작업에서 쓸 work_mem 값의 배율" +#: utils/misc/guc_tables.c:3824 +msgid "Multiple of \"work_mem\" to use for hash tables." +msgstr "테이블 해시 작업에서 쓸 \"work_mem\" 값의 배율" -#: utils/misc/guc_tables.c:3687 +#: utils/misc/guc_tables.c:3835 msgid "Multiple of the average buffer usage to free per round." msgstr "라운드당 해제할 평균 버퍼 사용의 배수입니다." -#: utils/misc/guc_tables.c:3697 +#: utils/misc/guc_tables.c:3845 msgid "Sets the seed for random-number generation." msgstr "난수 생성 속도를 설정합니다." -#: utils/misc/guc_tables.c:3708 +#: utils/misc/guc_tables.c:3856 msgid "Vacuum cost delay in milliseconds." msgstr "청소 비용 지연(밀리초)입니다." -#: utils/misc/guc_tables.c:3719 +#: utils/misc/guc_tables.c:3867 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "자동 청소에 대한 청소 비용 지연(밀리초)입니다." -#: utils/misc/guc_tables.c:3730 +#: utils/misc/guc_tables.c:3878 msgid "" "Number of tuple updates or deletes prior to vacuum as a fraction of " "reltuples." @@ -31043,11 +32464,11 @@ msgstr "" "vacuum 작업을 진행할 update, delete 작업량을 전체 자료에 대한 분수값으로 지정" "합니다." -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3888 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." -msgstr "" +msgstr "vacuum을 위한 전체 튜플 대비 insert 튜플의 비율" -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3898 msgid "" "Number of tuple inserts, updates, or deletes prior to analyze as a fraction " "of reltuples." @@ -31055,147 +32476,148 @@ msgstr "" "통계 수집 작업을 진행할 insert, update, delete 작업량을 전체 자료에 대한 분수" "값으로 지정합니다." -#: utils/misc/guc_tables.c:3760 +#: utils/misc/guc_tables.c:3908 msgid "" "Time spent flushing dirty buffers during checkpoint, as fraction of " "checkpoint interval." msgstr "체크포인트 반복 주기 안에 작업을 완료할 분수값(1=100%)" -#: utils/misc/guc_tables.c:3770 -msgid "Fraction of statements exceeding log_min_duration_sample to be logged." -msgstr "" +#: utils/misc/guc_tables.c:3918 +msgid "" +"Fraction of statements exceeding \"log_min_duration_sample\" to be logged." +msgstr "\"log_min_duration_sample\" 로그의 비율" -#: utils/misc/guc_tables.c:3771 +#: utils/misc/guc_tables.c:3919 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "0.0 (로그 안남김)에서 1.0(모두 남김) 값을 지정할 수 있음" -#: utils/misc/guc_tables.c:3780 +#: utils/misc/guc_tables.c:3928 msgid "Sets the fraction of transactions from which to log all statements." msgstr "모든 구문을 로그로 남기려고 할 때, 그 남길 비율" -#: utils/misc/guc_tables.c:3781 +#: utils/misc/guc_tables.c:3929 msgid "" "Use a value between 0.0 (never log) and 1.0 (log all statements for all " "transactions)." msgstr "0.0(모두 안 남김) 부터 1.0 (모두 남김)까지 지정할 수 있습니다." -#: utils/misc/guc_tables.c:3800 +#: utils/misc/guc_tables.c:3948 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "WAL 파일을 아카이빙하기 위해 호출될 셸 명령을 설정합니다." -#: utils/misc/guc_tables.c:3801 +#: utils/misc/guc_tables.c:3949 msgid "This is used only if \"archive_library\" is not set." msgstr "이 설정은 \"archive_library\" 설정이 안되어 있을 때만 작동합니다." -#: utils/misc/guc_tables.c:3810 +#: utils/misc/guc_tables.c:3958 msgid "Sets the library that will be called to archive a WAL file." msgstr "WAL 파일을 아카이빙하기 위해 호출될 셸 명령을 설정합니다." -#: utils/misc/guc_tables.c:3811 +#: utils/misc/guc_tables.c:3959 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "\"archive_command\" 설정값은 빈 문자열이어야 합니다." -#: utils/misc/guc_tables.c:3820 +#: utils/misc/guc_tables.c:3968 msgid "" "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "아카이브된 WAL 파일을 재 반영할 쉘 명령어를 설정합니다." -#: utils/misc/guc_tables.c:3830 +#: utils/misc/guc_tables.c:3978 msgid "Sets the shell command that will be executed at every restart point." msgstr "매 복구 작업이 끝난 다음 실행할 쉘 명령어를 설정합니다." -#: utils/misc/guc_tables.c:3840 +#: utils/misc/guc_tables.c:3988 msgid "" "Sets the shell command that will be executed once at the end of recovery." msgstr "복구 작업 끝에 한 번 실행될 쉘 명령어를 설정합니다." -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:3998 msgid "Specifies the timeline to recover into." msgstr "복구할 타임라인을 지정합니다." -#: utils/misc/guc_tables.c:3860 +#: utils/misc/guc_tables.c:4008 msgid "" "Set to \"immediate\" to end recovery as soon as a consistent state is " "reached." msgstr "복구를 끝내는 지점을 가장 최근으로 하려면, \"immediate\"로 지정하세요." -#: utils/misc/guc_tables.c:3869 +#: utils/misc/guc_tables.c:4017 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "복구를 끝낼 마지막 트랜잭션 ID 지정" -#: utils/misc/guc_tables.c:3878 +#: utils/misc/guc_tables.c:4026 msgid "Sets the time stamp up to which recovery will proceed." msgstr "복구를 끝낼 마지막 시간 지정" -#: utils/misc/guc_tables.c:3887 +#: utils/misc/guc_tables.c:4035 msgid "Sets the named restore point up to which recovery will proceed." -msgstr "복구를 끝낼 복원 지점 이름 지정" +msgstr "복구를 끝낼 복구 지점 이름 지정" -#: utils/misc/guc_tables.c:3896 +#: utils/misc/guc_tables.c:4044 msgid "" "Sets the LSN of the write-ahead log location up to which recovery will " "proceed." msgstr "복구용 미리 쓰기 로그의 복구 지점 LSN 지정" -#: utils/misc/guc_tables.c:3906 +#: utils/misc/guc_tables.c:4054 msgid "Sets the connection string to be used to connect to the sending server." msgstr "트랜잭션 로그를 보내는 서버로 접속하기 위한 접속 문자열 지정" -#: utils/misc/guc_tables.c:3917 +#: utils/misc/guc_tables.c:4065 msgid "Sets the name of the replication slot to use on the sending server." msgstr "복제 슬롯 이름을 지정합니다." -#: utils/misc/guc_tables.c:3927 +#: utils/misc/guc_tables.c:4075 msgid "Sets the client's character set encoding." msgstr "클라이언트 문자 세트 인코딩을 지정함" -#: utils/misc/guc_tables.c:3938 +#: utils/misc/guc_tables.c:4086 msgid "Controls information prefixed to each log line." msgstr "각 로그 줄 앞에 추가할 정보를 제어합니다." -#: utils/misc/guc_tables.c:3939 +#: utils/misc/guc_tables.c:4087 msgid "If blank, no prefix is used." msgstr "비워 두면 접두사가 사용되지 않습니다." -#: utils/misc/guc_tables.c:3948 +#: utils/misc/guc_tables.c:4096 msgid "Sets the time zone to use in log messages." msgstr "로그 메시지에 사용할 표준 시간대를 설정합니다." -#: utils/misc/guc_tables.c:3958 +#: utils/misc/guc_tables.c:4106 msgid "Sets the display format for date and time values." msgstr "날짜와 시간 값을 나타내는 모양을 지정합니다." -#: utils/misc/guc_tables.c:3959 +#: utils/misc/guc_tables.c:4107 msgid "Also controls interpretation of ambiguous date inputs." msgstr "또한 모호한 날짜 입력의 해석을 제어합니다." -#: utils/misc/guc_tables.c:3970 +#: utils/misc/guc_tables.c:4118 msgid "Sets the default table access method for new tables." msgstr "새 테이블에서 사용할 기본 테이블 접근 방법을 지정합니다." -#: utils/misc/guc_tables.c:3981 +#: utils/misc/guc_tables.c:4129 msgid "Sets the default tablespace to create tables and indexes in." msgstr "테이블 및 인덱스를 만들 기본 테이블스페이스를 설정합니다." -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4130 msgid "An empty string selects the database's default tablespace." msgstr "빈 문자열을 지정하면 데이터베이스의 기본 테이블스페이스가 선택됩니다." -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4140 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "임시 테이블 및 정렬 파일에 사용할 테이블스페이스를 설정합니다." -#: utils/misc/guc_tables.c:4003 +#: utils/misc/guc_tables.c:4151 msgid "" "Sets whether a CREATEROLE user automatically grants the role to themselves, " "and with which options." msgstr "CREATEROLE 권한이 있는 사용자가 자동으로 스스로에게 부여할 옵션 지정" -#: utils/misc/guc_tables.c:4015 +#: utils/misc/guc_tables.c:4163 msgid "Sets the path for dynamically loadable modules." msgstr "동적으로 불러올 수 있는 모듈들이 있는 경로를 지정함." -#: utils/misc/guc_tables.c:4016 +#: utils/misc/guc_tables.c:4164 msgid "" "If a dynamically loadable module needs to be opened and the specified name " "does not have a directory component (i.e., the name does not contain a " @@ -31205,68 +32627,68 @@ msgstr "" "가 없는 경우(즉, 이름에 슬래시 기호가 없는 경우) 시스템은 이 경로에서 지정한 " "파일을 검색합니다." -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4177 msgid "Sets the location of the Kerberos server key file." msgstr "Kerberos 서버 키 파일의 위치를 지정함." -#: utils/misc/guc_tables.c:4040 +#: utils/misc/guc_tables.c:4188 msgid "Sets the Bonjour service name." msgstr "Bonjour 서비스 이름을 지정" -#: utils/misc/guc_tables.c:4050 +#: utils/misc/guc_tables.c:4198 msgid "Sets the language in which messages are displayed." msgstr "보여질 메시지로 사용할 언어 지정." -#: utils/misc/guc_tables.c:4060 +#: utils/misc/guc_tables.c:4208 msgid "Sets the locale for formatting monetary amounts." msgstr "통화금액 표현 양식으로 사용할 로케일 지정." -#: utils/misc/guc_tables.c:4070 +#: utils/misc/guc_tables.c:4218 msgid "Sets the locale for formatting numbers." msgstr "숫자 표현 양식으로 사용할 로케일 지정." -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4228 msgid "Sets the locale for formatting date and time values." msgstr "날짜와 시간 값을 표현할 양식으로 사용할 로케일 지정." -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4238 msgid "Lists shared libraries to preload into each backend." msgstr "각각의 백엔드에 미리 불러올 공유 라이브러리들을 지정합니다" -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4249 msgid "Lists shared libraries to preload into server." msgstr "서버에 미리 불러올 공유 라이브러리들을 지정합니다" -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4260 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "" "각각의 백엔드에 미리 불러올 접근제한 없는 공유 라이브러리들을 지정합니다" -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4271 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "스키마로 한정되지 않은 이름의 스키마 검색 순서를 설정합니다." -#: utils/misc/guc_tables.c:4135 +#: utils/misc/guc_tables.c:4283 msgid "Shows the server (database) character set encoding." msgstr "서버 (데이터베이스) 문자 세트 인코딩 보여줌" -#: utils/misc/guc_tables.c:4147 +#: utils/misc/guc_tables.c:4295 msgid "Shows the server version." msgstr "서버 버전 보임." -#: utils/misc/guc_tables.c:4159 +#: utils/misc/guc_tables.c:4307 msgid "Sets the current role." msgstr "현재 롤을 지정" -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4319 msgid "Sets the session user name." msgstr "세션 사용자 이름 지정." -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4330 msgid "Sets the destination for server log output." msgstr "서버 로그 출력을 위한 대상을 지정합니다." -#: utils/misc/guc_tables.c:4183 +#: utils/misc/guc_tables.c:4331 msgid "" "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", " "\"jsonlog\", and \"eventlog\", depending on the platform." @@ -31274,138 +32696,138 @@ msgstr "" "유효한 값은 플랫폼에 따라 \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\" 및 " "\"eventlog\"의 조합입니다." -#: utils/misc/guc_tables.c:4194 +#: utils/misc/guc_tables.c:4342 msgid "Sets the destination directory for log files." msgstr "로그 파일의 대상 디렉터리를 설정합니다." -#: utils/misc/guc_tables.c:4195 +#: utils/misc/guc_tables.c:4343 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "데이터 디렉터리의 상대 경로 또는 절대 경로로 지정할 수 있습니다." -#: utils/misc/guc_tables.c:4205 +#: utils/misc/guc_tables.c:4353 msgid "Sets the file name pattern for log files." msgstr "로그 파일의 파일 이름 패턴을 설정합니다." -#: utils/misc/guc_tables.c:4216 +#: utils/misc/guc_tables.c:4364 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "syslog에서 구분할 PostgreSQL 메시지에 사용될 프로그램 이름을 지정." -#: utils/misc/guc_tables.c:4227 +#: utils/misc/guc_tables.c:4375 msgid "" "Sets the application name used to identify PostgreSQL messages in the event " "log." msgstr "" "이벤트 로그에서 PostgreSQL 메시지 식별자로 사용할 응용프로그램 이름 지정" -#: utils/misc/guc_tables.c:4238 +#: utils/misc/guc_tables.c:4386 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "시간대(time zone)를 지정함." -#: utils/misc/guc_tables.c:4248 +#: utils/misc/guc_tables.c:4396 msgid "Selects a file of time zone abbreviations." msgstr "표준 시간대 약어 파일을 선택합니다." -#: utils/misc/guc_tables.c:4258 +#: utils/misc/guc_tables.c:4406 msgid "Sets the owning group of the Unix-domain socket." msgstr "유닉스 도메인 소켓의 소유주를 지정" -#: utils/misc/guc_tables.c:4259 +#: utils/misc/guc_tables.c:4407 msgid "" "The owning user of the socket is always the user that starts the server." msgstr "소켓 소유자는 항상 서버를 시작하는 사용자입니다." -#: utils/misc/guc_tables.c:4269 +#: utils/misc/guc_tables.c:4417 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "유닉스 도메인 소켓을 만들 디렉터리를 지정합니다." -#: utils/misc/guc_tables.c:4280 +#: utils/misc/guc_tables.c:4428 msgid "Sets the host name or IP address(es) to listen to." msgstr "서비스할 호스트이름이나, IP를 지정함." -#: utils/misc/guc_tables.c:4295 +#: utils/misc/guc_tables.c:4443 msgid "Sets the server's data directory." msgstr "서버의 데이터 디렉터리 위치를 지정합니다." -#: utils/misc/guc_tables.c:4306 +#: utils/misc/guc_tables.c:4454 msgid "Sets the server's main configuration file." msgstr "서버의 기본 환경설정 파일 경로를 지정합니다." -#: utils/misc/guc_tables.c:4317 +#: utils/misc/guc_tables.c:4465 msgid "Sets the server's \"hba\" configuration file." msgstr "서버의 \"hba\" 구성 파일을 설정합니다." -#: utils/misc/guc_tables.c:4328 +#: utils/misc/guc_tables.c:4476 msgid "Sets the server's \"ident\" configuration file." msgstr "서버의 \"ident\" 구성 파일을 설정합니다." -#: utils/misc/guc_tables.c:4339 +#: utils/misc/guc_tables.c:4487 msgid "Writes the postmaster PID to the specified file." msgstr "postmaster PID가 기록된 파일의 경로를 지정합니다." -#: utils/misc/guc_tables.c:4350 +#: utils/misc/guc_tables.c:4498 msgid "Shows the name of the SSL library." msgstr "SSL 라이브러리 이름을 보여줌" -#: utils/misc/guc_tables.c:4365 +#: utils/misc/guc_tables.c:4513 msgid "Location of the SSL server certificate file." msgstr "서버 인증서 파일 위치를 지정함" -#: utils/misc/guc_tables.c:4375 +#: utils/misc/guc_tables.c:4523 msgid "Location of the SSL server private key file." msgstr "SSL 서버 개인 키 파일의 위치를 지정함." -#: utils/misc/guc_tables.c:4385 +#: utils/misc/guc_tables.c:4533 msgid "Location of the SSL certificate authority file." msgstr "SSL 인증 authority 파일 위치" -#: utils/misc/guc_tables.c:4395 +#: utils/misc/guc_tables.c:4543 msgid "Location of the SSL certificate revocation list file." msgstr "SSL 인증서 파기 목록 파일의 위치" -#: utils/misc/guc_tables.c:4405 +#: utils/misc/guc_tables.c:4553 msgid "Location of the SSL certificate revocation list directory." msgstr "SSL 인증서 파기 목록 디렉터리 위치" -#: utils/misc/guc_tables.c:4415 +#: utils/misc/guc_tables.c:4563 msgid "" "Number of synchronous standbys and list of names of potential synchronous " "ones." -msgstr "" +msgstr "동기식 복제용 대기 서버 수와 운영 서버 전환 대상이 되는 서버 이름 목록" -#: utils/misc/guc_tables.c:4426 +#: utils/misc/guc_tables.c:4574 msgid "Sets default text search configuration." msgstr "기본 텍스트 검색 구성을 설정합니다." -#: utils/misc/guc_tables.c:4436 +#: utils/misc/guc_tables.c:4584 msgid "Sets the list of allowed SSL ciphers." msgstr "허용되는 SSL 암호 목록을 설정합니다." -#: utils/misc/guc_tables.c:4451 +#: utils/misc/guc_tables.c:4599 msgid "Sets the curve to use for ECDH." msgstr "ECDH에 사용할 curve 설정" -#: utils/misc/guc_tables.c:4466 +#: utils/misc/guc_tables.c:4614 msgid "Location of the SSL DH parameters file." msgstr "SSL DH 매개 변수 파일의 위치." -#: utils/misc/guc_tables.c:4477 +#: utils/misc/guc_tables.c:4625 msgid "Command to obtain passphrases for SSL." msgstr "SSL 비밀번호 입력을 위한 명령" -#: utils/misc/guc_tables.c:4488 +#: utils/misc/guc_tables.c:4636 msgid "Sets the application name to be reported in statistics and logs." msgstr "통계정보와 로그에 포함될 응용프로그램 이름 지정" -#: utils/misc/guc_tables.c:4499 +#: utils/misc/guc_tables.c:4647 msgid "Sets the name of the cluster, which is included in the process title." msgstr "프로세스 타이틀에 포함될 클러스터 이름 지정" -#: utils/misc/guc_tables.c:4510 +#: utils/misc/guc_tables.c:4658 msgid "" "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "WAL 동시성 검사 완료용 WAL 자원 관리자 지정" -#: utils/misc/guc_tables.c:4511 +#: utils/misc/guc_tables.c:4659 msgid "" "Full-page images will be logged for all data blocks and cross-checked " "against the results of WAL replay." @@ -31413,32 +32835,51 @@ msgstr "" "풀페이지 이미지가 모든 데이터 블록을 위해 기록될 것이며 WAL 재반영 결과를 이" "중 검증을 합니다." -#: utils/misc/guc_tables.c:4521 +#: utils/misc/guc_tables.c:4669 msgid "JIT provider to use." msgstr "사용할 JIT 제공자" -#: utils/misc/guc_tables.c:4532 +#: utils/misc/guc_tables.c:4680 msgid "Log backtrace for errors in these functions." msgstr "이 함수들 안에 오류 추적용 로그를 남김" -#: utils/misc/guc_tables.c:4543 +#: utils/misc/guc_tables.c:4691 msgid "Use direct I/O for file access." msgstr "파일 접근을 위해 직접 I/O를 사용합니다." -#: utils/misc/guc_tables.c:4563 +#: utils/misc/guc_tables.c:4702 +msgid "" +"Lists streaming replication standby server replication slot names that " +"logical WAL sender processes will wait for." +msgstr "" +"논리 WAL 송신 프로세스가 기다릴 스트리밍 복제 대기 서버 복제 슬롯 이름 목록" + +#: utils/misc/guc_tables.c:4704 +msgid "" +"Logical WAL sender processes will send decoded changes to output plugins " +"only after the specified replication slots have confirmed receiving WAL." +msgstr "" +"논리 WAL 송신 프로세스는 지정된 복제 슬롯이 WAL 수신을 확인한 후에만 " +"디코딩된 변경 사항을 출력 플러그인으로 전송합니다." + +#: utils/misc/guc_tables.c:4716 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "지정된 종류의 non-system 릴레이션에 대한 접근을 금지합니다." + +#: utils/misc/guc_tables.c:4736 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "문자열에서 \"\\'\" 문자 사용을 허용할 것인지를 정하세요" -#: utils/misc/guc_tables.c:4573 +#: utils/misc/guc_tables.c:4746 msgid "Sets the output format for bytea." msgstr "bytea 값의 표시 형식을 설정합니다." -#: utils/misc/guc_tables.c:4583 +#: utils/misc/guc_tables.c:4756 msgid "Sets the message levels that are sent to the client." msgstr "클라이언트 측에 보여질 메시지 수준을 지정함." -#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 -#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 +#: utils/misc/guc_tables.c:4757 utils/misc/guc_tables.c:4853 +#: utils/misc/guc_tables.c:4864 msgid "" "Each level includes all the levels that follow it. The later the level, the " "fewer messages are sent." @@ -31446,118 +32887,114 @@ msgstr "" "각 수준은 이 수준 뒤에 있는 모든 수준이 포함됩니다. 수준이 뒤에 있을수록 전송" "되는 메시지 수가 적습니다." -#: utils/misc/guc_tables.c:4594 +#: utils/misc/guc_tables.c:4767 msgid "Enables in-core computation of query identifiers." msgstr "query_id를 내부적으로 사용함" -#: utils/misc/guc_tables.c:4604 +#: utils/misc/guc_tables.c:4777 msgid "Enables the planner to use constraints to optimize queries." msgstr "실행계획기가 쿼리 최적화 작업에서 제약 조건을 사용하도록 함" -#: utils/misc/guc_tables.c:4605 +#: utils/misc/guc_tables.c:4778 msgid "" "Table scans will be skipped if their constraints guarantee that no rows " "match the query." msgstr "" "제약 조건에 의해 쿼리와 일치하는 행이 없는 경우 테이블 스캔을 건너뜁니다." -#: utils/misc/guc_tables.c:4616 +#: utils/misc/guc_tables.c:4789 msgid "Sets the default compression method for compressible values." msgstr "압축 가능한 값을 압축하기 위한 기본 압축 방법을 지정합니다." -#: utils/misc/guc_tables.c:4627 +#: utils/misc/guc_tables.c:4800 msgid "Sets the transaction isolation level of each new transaction." msgstr "각 새 트랜잭션의 트랜잭션 격리 수준을 설정합니다." -#: utils/misc/guc_tables.c:4637 +#: utils/misc/guc_tables.c:4810 msgid "Sets the current transaction's isolation level." msgstr "현재 트랜잭션 독립성 수준(isolation level)을 지정함." -#: utils/misc/guc_tables.c:4648 +#: utils/misc/guc_tables.c:4821 msgid "Sets the display format for interval values." msgstr "간격 값의 표시 형식을 설정합니다." -#: utils/misc/guc_tables.c:4659 +#: utils/misc/guc_tables.c:4832 msgid "Log level for reporting invalid ICU locale strings." -msgstr "" +msgstr "잘못된 ICU 로케일 설정을 보고할 로그 수준" -#: utils/misc/guc_tables.c:4669 +#: utils/misc/guc_tables.c:4842 msgid "Sets the verbosity of logged messages." msgstr "기록되는 메시지의 상세 정도를 지정합니다." -#: utils/misc/guc_tables.c:4679 +#: utils/misc/guc_tables.c:4852 msgid "Sets the message levels that are logged." msgstr "서버 로그에 기록될 메시지 수준을 지정함." -#: utils/misc/guc_tables.c:4690 +#: utils/misc/guc_tables.c:4863 msgid "" "Causes all statements generating error at or above this level to be logged." msgstr "" "오류가 있는 모든 쿼리문이나 지정한 로그 레벨 이상의 쿼리문을 로그로 남김" -#: utils/misc/guc_tables.c:4701 +#: utils/misc/guc_tables.c:4874 msgid "Sets the type of statements logged." msgstr "서버로그에 기록될 구문 종류를 지정합니다." -#: utils/misc/guc_tables.c:4711 +#: utils/misc/guc_tables.c:4884 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "syslog 기능을 사용할 때, 사용할 syslog \"facility\" 값을 지정." -#: utils/misc/guc_tables.c:4722 +#: utils/misc/guc_tables.c:4895 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "트리거 및 다시 쓰기 규칙에 대한 세션의 동작을 설정합니다." -#: utils/misc/guc_tables.c:4732 +#: utils/misc/guc_tables.c:4905 msgid "Sets the current transaction's synchronization level." msgstr "현재 트랜잭션 격리 수준(isolation level)을 지정함." -#: utils/misc/guc_tables.c:4742 -msgid "Allows archiving of WAL files using archive_command." -msgstr "archive_command를 사용하여 WAL 파일을 따로 보관하도록 설정합니다." +#: utils/misc/guc_tables.c:4915 +msgid "Allows archiving of WAL files using \"archive_command\"." +msgstr "\"archive_command\"를 사용하여 WAL 파일을 따로 보관하도록 설정합니다." -#: utils/misc/guc_tables.c:4752 +#: utils/misc/guc_tables.c:4925 msgid "Sets the action to perform upon reaching the recovery target." -msgstr "" +msgstr "복구 타켓에 도달했을 때 수행할 액션을 지정합니다." -#: utils/misc/guc_tables.c:4762 -msgid "Enables logging of recovery-related debugging information." -msgstr "복구 작업과 관련된 디버깅 정보를 기록하도록 합니다." - -#: utils/misc/guc_tables.c:4779 +#: utils/misc/guc_tables.c:4935 msgid "Collects function-level statistics on database activity." msgstr "데이터베이스 활동에 대한 함수 수준 통계를 수집합니다." -#: utils/misc/guc_tables.c:4790 +#: utils/misc/guc_tables.c:4946 msgid "Sets the consistency of accesses to statistics data." msgstr "통계 자료 접근의 동시성을 지정합니다." -#: utils/misc/guc_tables.c:4800 +#: utils/misc/guc_tables.c:4956 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "WAL 파일에 페이지 전체를 기록할 때 사용할 압축 방법" -#: utils/misc/guc_tables.c:4810 +#: utils/misc/guc_tables.c:4966 msgid "Sets the level of information written to the WAL." msgstr "WAL에 저장할 내용 수준을 지정합니다." -#: utils/misc/guc_tables.c:4820 +#: utils/misc/guc_tables.c:4976 msgid "Selects the dynamic shared memory implementation used." msgstr "사용할 동적 공유 메모리 관리방식을 선택합니다." -#: utils/misc/guc_tables.c:4830 +#: utils/misc/guc_tables.c:4986 msgid "" "Selects the shared memory implementation used for the main shared memory " "region." msgstr "사용할 동적 공유 메모리 관리방식을 선택합니다." -#: utils/misc/guc_tables.c:4840 +#: utils/misc/guc_tables.c:4996 msgid "Selects the method used for forcing WAL updates to disk." msgstr "디스크에 대한 강제 WAL 업데이트에 사용되는 방법을 선택합니다." -#: utils/misc/guc_tables.c:4850 +#: utils/misc/guc_tables.c:5006 msgid "Sets how binary values are to be encoded in XML." msgstr "XML에서 바이너리 값이 인코딩되는 방식을 설정합니다." -#: utils/misc/guc_tables.c:4860 +#: utils/misc/guc_tables.c:5016 msgid "" "Sets whether XML data in implicit parsing and serialization operations is to " "be considered as documents or content fragments." @@ -31565,77 +33002,92 @@ msgstr "" "암시적 구문 분석 및 직렬화 작업의 XML 데이터를 문서 또는 내용 조각으로 간주할" "지 여부를 설정합니다." -#: utils/misc/guc_tables.c:4871 +#: utils/misc/guc_tables.c:5027 msgid "Use of huge pages on Linux or Windows." msgstr "리눅스 또는 Windows huge 페이지 사용 여부" -#: utils/misc/guc_tables.c:4881 +#: utils/misc/guc_tables.c:5037 +msgid "Indicates the status of huge pages." +msgstr "huge page 상태를 보고할지 지정" + +#: utils/misc/guc_tables.c:5048 msgid "Prefetch referenced blocks during recovery." msgstr "복구 작업 중에 참조하는 블록을 미리 준비하는 방법." -#: utils/misc/guc_tables.c:4882 +#: utils/misc/guc_tables.c:5049 msgid "Look ahead in the WAL to find references to uncached data." msgstr "따라잡지 못한 데이터를 WAL에서 미리 준비함" -#: utils/misc/guc_tables.c:4891 +#: utils/misc/guc_tables.c:5058 msgid "Forces the planner's use parallel query nodes." msgstr "병렬 쿼리를 강제로 사용하도록 지정합니다." -#: utils/misc/guc_tables.c:4892 +#: utils/misc/guc_tables.c:5059 msgid "" "This can be useful for testing the parallel query infrastructure by forcing " "the planner to generate plans that contain nodes that perform tuple " "communication between workers and the main process." msgstr "" +"이것은 실행계획기가 작업자와 메인 프로세스 간에 튜플 통신을 수행하는 " +"노드가 포함된 플랜을 생성하도록 강제하여 병렬 쿼리 환경을 테스트하는 " +"데 유용할 수 있습니다." -#: utils/misc/guc_tables.c:4904 +#: utils/misc/guc_tables.c:5071 msgid "Chooses the algorithm for encrypting passwords." -msgstr "" +msgstr "비밀번호 암호화 알고리즘 선택" -#: utils/misc/guc_tables.c:4914 +#: utils/misc/guc_tables.c:5081 msgid "Controls the planner's selection of custom or generic plan." -msgstr "" +msgstr "실행계획기가 사용자 정의 계획이나, 일반적 계획을 선택하는 것을 조정함" -#: utils/misc/guc_tables.c:4915 +#: utils/misc/guc_tables.c:5082 msgid "" "Prepared statements can have custom and generic plans, and the planner will " "attempt to choose which is better. This can be set to override the default " "behavior." msgstr "" +"미리 준비된 구문에는 사용자 정의 및 일반 계획이 있을 수 있으며, " +"실행계획기는 어느 것이 더 나은지 선택하려고 시도합니다. " +"이 설정은 기본 동작을 재정의하도록 설정할 수 있습니다." -#: utils/misc/guc_tables.c:4927 +#: utils/misc/guc_tables.c:5094 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "사용할 최소 SSL/TLS 프로토콜 버전을 지정합니다." -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5106 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "사용할 최대 SSL/TLS 프로토콜 버전을 지정합니다." -#: utils/misc/guc_tables.c:4951 +#: utils/misc/guc_tables.c:5118 msgid "" "Sets the method for synchronizing the data directory before crash recovery." msgstr "" +"충돌 복구 전에 데이터 디렉토리를 동기화하는 방법을 설정합니다." -#: utils/misc/guc_tables.c:4960 +#: utils/misc/guc_tables.c:5127 msgid "" "Forces immediate streaming or serialization of changes in large transactions." msgstr "" +"대량 트랜잭션에서 변경 사항을 강제로 즉시 스트리밍하거나 직렬화합니다." -#: utils/misc/guc_tables.c:4961 +#: utils/misc/guc_tables.c:5128 msgid "" "On the publisher, it allows streaming or serializing each change in logical " "decoding. On the subscriber, it allows serialization of all changes to files " "and notifies the parallel apply workers to read and apply them at the end of " "the transaction." msgstr "" +"발행 서버에서 논리 디코딩의 각 변경 사항을 스트리밍하거나 직렬화할 수 있습니다. " +"구독 서버에서 파일에 대한 모든 변경 사항을 직렬화할 수 있으며, " +"병렬 반영 작업자에게 트랜잭션이 끝날 때 읽고 적용하도록 알립니다." #: utils/misc/help_config.c:129 #, c-format msgid "internal error: unrecognized run-time parameter type\n" msgstr "내부 오류: 알 수 없는 실시간 서버 설정 변수\n" -#: utils/misc/pg_controldata.c:48 utils/misc/pg_controldata.c:86 -#: utils/misc/pg_controldata.c:175 utils/misc/pg_controldata.c:214 +#: utils/misc/pg_controldata.c:50 utils/misc/pg_controldata.c:90 +#: utils/misc/pg_controldata.c:181 utils/misc/pg_controldata.c:222 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "계산된 CRC 체크섬 값이 파일에 저장된 값과 다름" @@ -31643,7 +33095,7 @@ msgstr "계산된 CRC 체크섬 값이 파일에 저장된 값과 다름" #: utils/misc/pg_rusage.c:64 #, c-format msgid "CPU: user: %d.%02d s, system: %d.%02d s, elapsed: %d.%02d s" -msgstr "" +msgstr "CPU: user: %d.%02d s, system: %d.%02d s, elapsed: %d.%02d s" #: utils/misc/rls.c:127 #, c-format @@ -31659,12 +33111,12 @@ msgstr "" "테이블 소유주를 위해 정책을 비활성하려면, ALTER TABLE NO FORCE ROW LEVEL " "SECURITY 명령을 사용하세요" -#: utils/misc/timeout.c:524 +#: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" msgstr "시간 초과로 더이상 추가할 수 없음" -#: utils/misc/tzparser.c:60 +#: utils/misc/tzparser.c:61 #, c-format msgid "" "time zone abbreviation \"%s\" is too long (maximum %d characters) in time " @@ -31673,144 +33125,143 @@ msgstr "" "\"%s\" 타임 존 이름이 너무 깁니다(최대 %d자) (\"%s\" 타임 존 파일의 %d번째 줄" "에 있음)." -#: utils/misc/tzparser.c:72 +#: utils/misc/tzparser.c:73 #, c-format msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "" "%d 타임 존 오프셋 값이 범위를 벗어났습니다(\"%s\" 타임 존 파일의 %d번째 줄에 " "있음)." -#: utils/misc/tzparser.c:111 +#: utils/misc/tzparser.c:112 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "\"%s\" time zone 파일의 %d번째 줄에 time zone 생략형이 빠졌음" -#: utils/misc/tzparser.c:120 +#: utils/misc/tzparser.c:121 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "\"%s\" time zone 파일의 %d번째 줄에 time zone 옵셋이 빠졌음" -#: utils/misc/tzparser.c:132 +#: utils/misc/tzparser.c:133 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "" "\"%s\" 표준 시간대 파일의 %d번째 줄에서 표준 시간대 오프셋 숫자가 잘못됨" -#: utils/misc/tzparser.c:168 +#: utils/misc/tzparser.c:169 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "\"%s\" time zone 파일의 %d번째 줄에 구문 오류" -#: utils/misc/tzparser.c:236 +#: utils/misc/tzparser.c:237 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "표준 시간대 약어 \"%s\"은(는) 배수로 정의됨" -#: utils/misc/tzparser.c:238 +#: utils/misc/tzparser.c:239 #, c-format msgid "" -"Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s" -"\", line %d." +"Entry in time zone file \"%s\", line %d, conflicts with entry in file " +"\"%s\", line %d." msgstr "" "\"%s\" 타임 존 파일의 %d번째 줄에 있는 항목이 \"%s\" 파일의 %d번째 줄에 있는 " "항목과 충돌합니다." -#: utils/misc/tzparser.c:300 +#: utils/misc/tzparser.c:301 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "잘못된 time zone 파일 이름: \"%s\"" -#: utils/misc/tzparser.c:313 +#: utils/misc/tzparser.c:314 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "\"%s\" 파일에서 time zone 파일 재귀호출 최대치를 초과했음" -#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365 +#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "\"%s\" time zone 파일을 읽을 수 없음: %m" -#: utils/misc/tzparser.c:376 +#: utils/misc/tzparser.c:377 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "\"%s\" 표준 시간대 파일의 %d번째 줄이 너무 깁니다." -#: utils/misc/tzparser.c:400 +#: utils/misc/tzparser.c:401 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "\"%s\" 표준 시간대 파일의 %d번째 줄에 파일 이름이 없는 @INCLUDE가 있음" -#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 +#: utils/mmgr/aset.c:452 utils/mmgr/bump.c:184 utils/mmgr/generation.c:216 +#: utils/mmgr/slab.c:371 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "\"%s\" 메모리 컨텍스트를 만드는 동안 오류가 발생했습니다." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:523 utils/mmgr/dsa.c:1364 #, c-format msgid "could not attach to dynamic shared area" msgstr "동적 공유 메모리 영역을 할당할 수 없음" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1155 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "크기가 %zu인 요청에서 오류가 발생했습니다. 해당 메모리 컨텍스트 \"%s\"" -#: utils/mmgr/mcxt.c:1210 +#: utils/mmgr/mcxt.c:1299 #, c-format msgid "logging memory contexts of PID %d" -msgstr "" +msgstr "%d번 PID의 메모리 현황을 로깅함" -#: utils/mmgr/portalmem.c:188 +#: utils/mmgr/portalmem.c:187 #, c-format msgid "cursor \"%s\" already exists" msgstr "\"%s\" 이름의 커서가 이미 있음" -#: utils/mmgr/portalmem.c:192 +#: utils/mmgr/portalmem.c:191 #, c-format msgid "closing existing cursor \"%s\"" msgstr "이미 있는 \"%s\" 커서를 닫습니다" -#: utils/mmgr/portalmem.c:402 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "\"%s\" portal 실행할 수 없음" -#: utils/mmgr/portalmem.c:480 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "\"%s\" 선점된 포털을 삭제할 수 없음" -#: utils/mmgr/portalmem.c:488 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "\"%s\" 활성 포털을 삭제할 수 없음" -#: utils/mmgr/portalmem.c:739 +#: utils/mmgr/portalmem.c:738 #, c-format msgid "cannot PREPARE a transaction that has created a cursor WITH HOLD" msgstr "WITH HOLD 옵션으로 커서를 만든 트랜잭션을 PREPARE할 수 없음" -#: utils/mmgr/portalmem.c:1230 +#: utils/mmgr/portalmem.c:1232 #, c-format msgid "" "cannot perform transaction commands inside a cursor loop that is not read-" "only" msgstr "" +"읽기 전용이 아닌 커서 루프 내에서 트랜잭션 명령을 수행할 수 없습니다" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %ld of temporary file" -msgstr "임시 파일의 %ld 블럭을 찾을 수 없음" +msgid "could not seek to block %lld of temporary file" +msgstr "임시 파일의 %lld 블럭을 찾을 수 없음" -#: utils/sort/sharedtuplestore.c:467 +#: utils/sort/sharedtuplestore.c:466 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "공유된 tuplestore 임시 파일에서 예상치 못한 청크" -#: utils/sort/sharedtuplestore.c:549 +#: utils/sort/sharedtuplestore.c:548 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "공유 tuplestore 임시 파일에서 %u 블록을 찾을 수 없음" @@ -31820,17 +33271,17 @@ msgstr "공유 tuplestore 임시 파일에서 %u 블록을 찾을 수 없음" msgid "cannot have more than %d runs for an external sort" msgstr "외부 정렬을 위해 %d 개 이상의 런을 만들 수 없음" -#: utils/sort/tuplesortvariants.c:1363 +#: utils/sort/tuplesortvariants.c:1552 #, c-format msgid "could not create unique index \"%s\"" msgstr "\"%s\" 고유 인덱스를 만들 수 없음" -#: utils/sort/tuplesortvariants.c:1365 +#: utils/sort/tuplesortvariants.c:1554 #, c-format msgid "Key %s is duplicated." msgstr "%s 키가 중복됨" -#: utils/sort/tuplesortvariants.c:1366 +#: utils/sort/tuplesortvariants.c:1555 #, c-format msgid "Duplicate keys exist." msgstr "중복된 키가 있음" @@ -31844,32 +33295,32 @@ msgstr "중복된 키가 있음" msgid "could not seek in tuplestore temporary file" msgstr "tuplestore 임시 파일에서 seek 작업을 할 수 없음" -#: utils/time/snapmgr.c:571 +#: utils/time/snapmgr.c:536 #, c-format msgid "The source transaction is not running anymore." msgstr "소스 트랜잭션이 더 이상 실행중이지 않음" -#: utils/time/snapmgr.c:1166 +#: utils/time/snapmgr.c:1136 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "서브트랜잭션에서 스냅샷을 내보낼 수 없음" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 +#: utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 +#: utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 +#: utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 +#: utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "\"%s\" 파일에 유효하지 않은 스냅샷 자료가 있습니다" -#: utils/time/snapmgr.c:1422 +#: utils/time/snapmgr.c:1393 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "쿼리보다 먼저 SET TRANSACTION SNAPSHOP 명령을 호출해야 함" -#: utils/time/snapmgr.c:1431 +#: utils/time/snapmgr.c:1402 #, c-format msgid "" "a snapshot-importing transaction must have isolation level SERIALIZABLE or " @@ -31878,12 +33329,17 @@ msgstr "" "스냅샷 가져오기 트랜잭션은 그 격리 수준이 SERIALIZABLE 또는 REPEATABLE READ " "여야 함" -#: utils/time/snapmgr.c:1440 utils/time/snapmgr.c:1449 +#: utils/time/snapmgr.c:1411 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "잘못된 스냅샷 식별자: \"%s\"" -#: utils/time/snapmgr.c:1541 +#: utils/time/snapmgr.c:1426 +#, c-format +msgid "snapshot \"%s\" does not exist" +msgstr "\"%s\" 이름의 스냅샷이 없음" + +#: utils/time/snapmgr.c:1524 #, c-format msgid "" "a serializable transaction cannot import a snapshot from a non-serializable " @@ -31892,7 +33348,7 @@ msgstr "" "직렬화 가능한 트랜잭션은 직렬화 가능하지 않은 트랜잭션에서 스냅샷을 가져올 " "수 없음" -#: utils/time/snapmgr.c:1545 +#: utils/time/snapmgr.c:1528 #, c-format msgid "" "a non-read-only serializable transaction cannot import a snapshot from a " @@ -31900,365 +33356,383 @@ msgid "" msgstr "" "읽기-쓰기 직렬화된 트랜잭션이 읽기 전용 트랜잭션의 스냅샷을 가져올 수 없음" -#: utils/time/snapmgr.c:1560 +#: utils/time/snapmgr.c:1543 #, c-format msgid "cannot import a snapshot from a different database" msgstr "서로 다른 데이터베이스를 대상으로는 스냅샷을 가져올 수 없음" -#: gram.y:1197 +#: gram.y:1231 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD 옵션은 더이상 지원하지 않음" -#: gram.y:1198 +#: gram.y:1232 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." -msgstr "" +msgstr "비밀번호를 암호화된 형태로 저장하려면 UNENCRYPTED를 빼세요." -#: gram.y:1525 gram.y:1541 +#: gram.y:1559 gram.y:1575 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "" "CREATE SCHEMA IF NOT EXISTS 구문에서는 스키마 요소들을 포함할 수 없습니다." -#: gram.y:1693 +#: gram.y:1727 #, c-format msgid "current database cannot be changed" msgstr "현재 데이터베이스를 바꿀 수 없음" -#: gram.y:1826 +#: gram.y:1860 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "" "지역시간대 간격(time zone interval) 값은 시(HOUR) 또는 시분(HOUR TO MINUTE) " "값이어야 합니다" -#: gram.y:2443 +#: gram.y:2487 #, c-format msgid "column number must be in range from 1 to %d" msgstr "칼럼 번호는 1 - %d 사이의 범위에 있어야 합니다." -#: gram.y:3039 +#: gram.y:3083 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "\"%s\" 시퀀스 옵션은 지원되지 않음" -#: gram.y:3068 +#: gram.y:3122 #, c-format msgid "modulus for hash partition provided more than once" msgstr "해시 파티션용 모듈을 한 번 이상 지정했습니다" -#: gram.y:3077 +#: gram.y:3131 #, c-format msgid "remainder for hash partition provided more than once" msgstr "해시 파티션용 나머지 처리기를 한 번 이상 지정했습니다" -#: gram.y:3084 +#: gram.y:3138 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "잘못된 해시 파티션 범위 명세 \"%s\"" -#: gram.y:3092 +#: gram.y:3146 #, c-format msgid "modulus for hash partition must be specified" msgstr "해시 파티션용 모듈을 지정하세요" -#: gram.y:3096 +#: gram.y:3150 #, c-format msgid "remainder for hash partition must be specified" msgstr "해시 파티션용 나머지 처리기를 지정하세요" -#: gram.y:3304 gram.y:3338 +#: gram.y:3358 gram.y:3392 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "PROGRAM 옵션과 STDIN/STDOUT 옵션은 함께 쓸 수 없습니다" -#: gram.y:3310 +#: gram.y:3364 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "WHERE 절은 COPY TO 구문을 허용하지 않음" -#: gram.y:3649 gram.y:3656 gram.y:12821 gram.y:12829 +#: gram.y:3712 gram.y:3719 gram.y:13023 gram.y:13031 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "GLOBAL 예약어는 임시 테이블 만들기에서 더 이상 사용하지 않습니다" -#: gram.y:3932 +#: gram.y:3995 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" -msgstr "" +msgstr "계산된 칼럼을 사용하려면, GENERATED ALWAYS 옵션이 있어야 함" -#: gram.y:4315 +#: gram.y:4432 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "%s의 칼럼 목록은 ON DELETE 액션용으로만 지원합니다." -#: gram.y:5027 +#: gram.y:5151 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM 구문은 지원하지 않습니다." -#: gram.y:5725 +#: gram.y:5849 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "인식할 수 없는 로우 단위 보안 옵션 \"%s\"" -#: gram.y:5726 +#: gram.y:5850 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." -msgstr "" +msgstr "PERMISSIVE 또는 RESTRICTIVE 정책만 현재 지원합니다." -#: gram.y:5811 +#: gram.y:5935 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER 구문은 지원하지 않습니다." -#: gram.y:5848 +#: gram.y:5972 msgid "duplicate trigger events specified" msgstr "중복 트리거 이벤트가 지정됨" -#: gram.y:5997 +#: gram.y:6121 #, c-format msgid "conflicting constraint properties" msgstr "제약조건 속성이 충돌함" -#: gram.y:6096 +#: gram.y:6220 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTION 명령은 아직 구현 되지 않았습니다" -#: gram.y:6504 +#: gram.y:6537 +#, c-format +msgid "dropping an enum value is not implemented" +msgstr "구현되지 않은 enum 값을 삭제 중" + +#: gram.y:6655 #, c-format msgid "RECHECK is no longer required" msgstr "RECHECK는 더 이상 필요하지 않음" -#: gram.y:6505 +#: gram.y:6656 #, c-format msgid "Update your data type." msgstr "자료형을 업데이트하십시오." -#: gram.y:8378 +#: gram.y:8529 #, c-format msgid "aggregates cannot have output arguments" msgstr "집계 함수는 output 인자를 지정할 수 없음" -#: gram.y:11054 gram.y:11073 +#: gram.y:11221 gram.y:11240 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTION 구문은 재귀적인 뷰에서 지원하지 않습니다" -#: gram.y:12960 +#: gram.y:13162 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "LIMIT #,# 구문은 지원하지 않습니다." -#: gram.y:12961 +#: gram.y:13163 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "LIMIT # OFFSET # 구문을 사용하세요." -#: gram.y:13821 +#: gram.y:14038 #, c-format msgid "only one DEFAULT value is allowed" -msgstr "" +msgstr "DEFAULT 값은 하나만 허용함" -#: gram.y:13830 +#: gram.y:14047 #, c-format msgid "only one PATH value per column is allowed" -msgstr "" +msgstr "PATH 값은 칼럼당 하나만 허용함" -#: gram.y:13839 +#: gram.y:14056 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "NULL/NOT NULL 선언이 서로 충돌합니다 : \"%s\" 칼럼" -#: gram.y:13848 +#: gram.y:14065 #, c-format msgid "unrecognized column option \"%s\"" msgstr "인식할 수 없는 칼럼 옵션 \"%s\"" -#: gram.y:14102 +#: gram.y:14147 +#, c-format +msgid "only string constants are supported in JSON_TABLE path specification" +msgstr "JSON_TABLE 경로 명세에서는 문자열 상수만 지원함" + +#: gram.y:14469 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "실수형 자료의 정밀도 값으로는 적어도 1 bit 이상을 지정해야 합니다." -#: gram.y:14111 +#: gram.y:14478 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "실수형 자료의 정밀도 값으로 최대 54 bit 까지입니다." -#: gram.y:14614 +#: gram.y:14995 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "OVERLAPS 식의 왼쪽에 있는 매개 변수 수가 잘못됨" -#: gram.y:14619 +#: gram.y:15000 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "OVERLAPS 식의 오른쪽에 있는 매개 변수 수가 잘못됨" -#: gram.y:14796 +#: gram.y:15177 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "UNIQUE 술어는 아직 구현되지 못했습니다" -#: gram.y:15212 +#: gram.y:15591 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "WITHIN GROUP 구문 안에서 중복된 ORDER BY 구문은 허용하지 않습니다" -#: gram.y:15217 +#: gram.y:15596 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "DISTINCT과 WITHIN GROUP을 함께 쓸 수 없습니다" -#: gram.y:15222 +#: gram.y:15601 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "VARIADIC과 WITHIN GROUP을 함께 쓸 수 없습니다" -#: gram.y:15856 gram.y:15880 +#: gram.y:16328 gram.y:16352 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "프레임 시작은 UNBOUNDED FOLLOWING일 수 없음" -#: gram.y:15861 +#: gram.y:16333 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "따라오는 로우의 프레임 시작은 현재 로우의 끝일 수 없습니다" -#: gram.y:15885 +#: gram.y:16357 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "프레임 끝은 UNBOUNDED PRECEDING일 수 없음" -#: gram.y:15891 +#: gram.y:16363 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "현재 로우의 프레임 시작은 선행하는 로우를 가질 수 없습니다" -#: gram.y:15898 +#: gram.y:16370 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "따라오는 로우의 프레임 시작은 선행하는 로우를 가질 수 없습니다" -#: gram.y:16659 +#: gram.y:16919 +#, c-format +msgid "unrecognized JSON encoding: %s" +msgstr "알 수 없는 JSON 인코딩: %s" + +#: gram.y:17243 #, c-format msgid "type modifier cannot have parameter name" msgstr "자료형 한정자는 매개 변수 이름을 사용할 수 없음" -#: gram.y:16665 +#: gram.y:17249 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "자료형 한정자는 ORDER BY 구문을 사용할 수 없음" -#: gram.y:16733 gram.y:16740 gram.y:16747 +#: gram.y:17317 gram.y:17324 gram.y:17331 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s 이름은 여기서 롤 이름으로 사용할 수 없음" -#: gram.y:16837 gram.y:18294 +#: gram.y:17421 gram.y:18906 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" -msgstr "" +msgstr "WITH TIES 절은 ORDER BY 절과 함께 사용되어야 함" -#: gram.y:17973 gram.y:18160 +#: gram.y:18597 gram.y:18772 msgid "improper use of \"*\"" msgstr "\"*\" 사용이 잘못됨" -#: gram.y:18224 +#: gram.y:18836 #, c-format msgid "" "an ordered-set aggregate with a VARIADIC direct argument must have one " "VARIADIC aggregated argument of the same data type" msgstr "" +"VARIADIC 직접 인자가 있는 정렬된 집합 집계 함수는 동일한 자료형의 VARIADIC " +"집계된 인자가 하나 있어야 합니다." -#: gram.y:18261 +#: gram.y:18873 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "중복된 ORDER BY 구문은 허용하지 않습니다" -#: gram.y:18272 +#: gram.y:18884 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "중복된 OFFSET 구문은 허용하지 않습니다" -#: gram.y:18281 +#: gram.y:18893 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "중복된 LIMIT 구문은 허용하지 않습니다" -#: gram.y:18290 +#: gram.y:18902 #, c-format msgid "multiple limit options not allowed" msgstr "중복된 limit 옵션은 허용하지 않음" -#: gram.y:18317 +#: gram.y:18929 #, c-format msgid "multiple WITH clauses not allowed" msgstr "중복된 WITH 절은 허용하지 않음" -#: gram.y:18510 +#: gram.y:19122 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "OUT 및 INOUT 인자는 TABLE 함수에 사용할 수 없음" -#: gram.y:18643 +#: gram.y:19255 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "중복된 COLLATE 구문은 허용하지 않습니다" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18681 gram.y:18694 +#: gram.y:19293 gram.y:19306 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "%s 제약조건에는 DEFERRABLE 옵션을 쓸 수 없음" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18707 +#: gram.y:19319 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "%s 제약조건에는 NOT VALID 옵션을 쓸 수 없음" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18720 +#: gram.y:19332 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "%s 제약조건에는 NO INHERIT 옵션을 쓸 수 없음" -#: gram.y:18742 +#: gram.y:19354 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "알 수 없는 파티션 규칙 \"%s\"" -#: gram.y:18766 +#: gram.y:19378 #, c-format msgid "invalid publication object list" msgstr "잘못된 발행 객체 목록" -#: gram.y:18767 +#: gram.y:19379 #, c-format msgid "" "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table " "or schema name." msgstr "" +"TABLE이나 TABLES IN SCHEMA 중 하나가 독립 테이블이나 스키마 이름 앞에 있어야 합니다." -#: gram.y:18783 +#: gram.y:19395 #, c-format msgid "invalid table name" msgstr "잘못된 테이블 이름" -#: gram.y:18804 +#: gram.y:19416 #, c-format msgid "WHERE clause not allowed for schema" msgstr "WHERE 절은 스키마용으로 허용하지 않음" -#: gram.y:18811 +#: gram.y:19423 #, c-format msgid "column specification not allowed for schema" msgstr "칼럼 명세는 스키마용으로 허용하지 않음" -#: gram.y:18825 +#: gram.y:19437 #, c-format msgid "invalid schema name" msgstr "잘못된 스키마 이름" @@ -32304,12 +33778,17 @@ msgstr "\"%s\" 파일 %u 줄에서 구문 오류 있음, \"%s\" 토큰 부근" msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "구문 오류가 너무 많습니다. \"%s\" 파일을 무시합니다" -#: jsonpath_gram.y:529 +#: jsonpath_gram.y:267 +#, c-format +msgid ".decimal() can only have an optional precision[,scale]." +msgstr ".decimal() 함수는 precision[,scale] 만 선택적으로 쓸 수 있음." + +#: jsonpath_gram.y:599 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "LIKE_REGEX 구문에서 알 수 없는 플래그 문자: \"%.*s\"" -#: jsonpath_gram.y:607 +#: jsonpath_gram.y:677 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "XQuery \"x\" 플래그 (확장된 정규 표현식)는 구현되지 않았습니다." @@ -32326,7 +33805,7 @@ msgstr "잘못된 16진수 문자 순차연결" msgid "unexpected end after backslash" msgstr "백슬래시 뒤 예기치 않은 줄 끝" -#: jsonpath_scan.l:201 repl_scanner.l:209 scan.l:741 +#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:756 msgid "unterminated quoted string" msgstr "마무리 안된 따옴표 안의 문자열" @@ -32338,8 +33817,8 @@ msgstr "주석 뒤 예기치 않은 줄 끝" msgid "invalid numeric literal" msgstr "잘못된 숫자 문자열" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 -#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1064 +#: scan.l:1068 scan.l:1072 scan.l:1076 msgid "trailing junk after numeric literal" msgstr "숫자 뒤에 쓸모 없는 값이 더 있음" @@ -32355,70 +33834,70 @@ msgstr "%s, jsonpath 입력 끝부분" msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s, jsonpath 입력 \"%s\" 부근" -#: jsonpath_scan.l:557 +#: jsonpath_scan.l:568 msgid "invalid input" msgstr "잘못된 입력" -#: jsonpath_scan.l:583 +#: jsonpath_scan.l:594 msgid "invalid hexadecimal digit" msgstr "잘못된 16진수" -#: jsonpath_scan.l:614 +#: jsonpath_scan.l:625 #, c-format msgid "could not convert Unicode to server encoding" msgstr "유니코드를 서버 인코딩으로 바꿀 수 없음" -#: repl_gram.y:301 repl_gram.y:333 +#: repl_gram.y:318 repl_gram.y:359 #, c-format msgid "invalid timeline %u" msgstr "잘못된 타임라인: %u" -#: repl_scanner.l:152 +#: repl_scanner.l:154 msgid "invalid streaming start location" msgstr "잘못된 스트리밍 시작 위치" # # advance 끝 -#: scan.l:482 +#: scan.l:497 msgid "unterminated /* comment" msgstr "마무리 안된 /* 주석" -#: scan.l:502 +#: scan.l:517 msgid "unterminated bit string literal" msgstr "마무리 안된 비트 문자열 문자" -#: scan.l:516 +#: scan.l:531 msgid "unterminated hexadecimal string literal" msgstr "마무리 안된 16진수 문자열 문자" -#: scan.l:566 +#: scan.l:581 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "유니코드 이스케이프와 함께 문자열 상수를 사용하는 것은 안전하지 않음" -#: scan.l:567 +#: scan.l:582 #, c-format msgid "" "String constants with Unicode escapes cannot be used when " -"standard_conforming_strings is off." +"\"standard_conforming_strings\" is off." msgstr "" -"standard_conforming_strings = off 인 경우 문자열 상수 표기에서 유니코드 이스" +"\"standard_conforming_strings\" = off 인 경우 문자열 상수 표기에서 유니코드 이스" "케이프를 사용할 수 없습니다." -#: scan.l:628 +#: scan.l:643 msgid "unhandled previous state in xqs" msgstr "xqs 안에 처리할 수 없는 이전 상태" -#: scan.l:702 +#: scan.l:717 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "유니코드 이스케이프는 \\uXXXX 또는 \\UXXXXXXXX 형태여야 합니다." -#: scan.l:713 +#: scan.l:728 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "문자열 안에 \\' 사용이 안전하지 않습니다" -#: scan.l:714 +#: scan.l:729 #, c-format msgid "" "Use '' to write quotes in strings. \\' is insecure in client-only encodings." @@ -32426,176 +33905,92 @@ msgstr "" "작은 따옴표는 '' 형태로 사용하십시오. \\' 표기법은 클라이언트 전용 인코딩에" "서 안전하지 않습니다." -#: scan.l:786 +#: scan.l:801 msgid "unterminated dollar-quoted string" msgstr "마무리 안된 달러-따옴표 안의 문자열" -#: scan.l:803 scan.l:813 +#: scan.l:818 scan.l:828 msgid "zero-length delimited identifier" msgstr "길이가 0인 구분 식별자" -#: scan.l:824 syncrep_scanner.l:101 +#: scan.l:839 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "마무리 안된 따옴표 안의 식별자" # # nonun 부분 begin -#: scan.l:987 +#: scan.l:1002 msgid "operator too long" msgstr "연산자가 너무 깁니다." -#: scan.l:1000 +#: scan.l:1015 msgid "trailing junk after parameter" msgstr "매개 변수 뒤에 쓸모 없는 값이 더 있음" -#: scan.l:1021 +#: scan.l:1036 msgid "invalid hexadecimal integer" msgstr "잘못된 16진수" -#: scan.l:1025 +#: scan.l:1040 msgid "invalid octal integer" msgstr "잘못된 8진수" -#: scan.l:1029 +#: scan.l:1044 msgid "invalid binary integer" msgstr "잘못된 바이너리 숫자" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1236 +#: scan.l:1239 #, c-format msgid "%s at end of input" msgstr "%s, 입력 끝부분" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1244 +#: scan.l:1247 #, c-format msgid "%s at or near \"%s\"" msgstr "%s, \"%s\" 부근" -#: scan.l:1434 +#: scan.l:1439 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "문자열 안에 있는 \\' 문자는 표준이 아닙니다" -#: scan.l:1435 +#: scan.l:1440 #, c-format msgid "" "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "작은 따옴표는 '' 형태니, 인용부호 표기법(E'...') 형태로 사용하십시오." -#: scan.l:1444 +#: scan.l:1449 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "문자열 안에 있는 \\\\ 문자는 표준이 아닙니다" -#: scan.l:1445 +#: scan.l:1450 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "백슬래시 표기는 인용부호 표기법으로 사용하세요, 예, E'\\\\'." -#: scan.l:1459 +#: scan.l:1464 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "문자열 안에 비표준 escape 문자를 사용하고 있습니다" -#: scan.l:1460 +#: scan.l:1465 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "인용부호 표기법을 사용하세요, 예, E'\\r\\n'." #, c-format -#~ msgid "FORMAT JSON has no effect for json and jsonb types" +#~ msgid "removing future two-phase state file of epoch %u for transaction %u" #~ msgstr "" -#~ "json, jsonb 자료형에서는 FORMAT JSON 지정이 아무런 영향을 끼치지 못합니다." - -#, c-format -#~ msgid "Subscribed publication %s is subscribing to other publications." -#~ msgid_plural "" -#~ "Subscribed publications %s are subscribing to other publications." -#~ msgstr[0] "%s 구독은 이미 다른 발행을 구독하고 있습니다." - -#, c-format -#~ msgid "duplicate JSON key %s" -#~ msgstr "중복된 JSON 키 %s" - -#, c-format -#~ msgid "duplicate JSON object key" -#~ msgstr "JSON 객체 키 중복" - -#, c-format -#~ msgid "authentication file token too long, skipping: \"%s\"" -#~ msgstr "인증 파일의 토큰이 너무 길어서 건너뜁니다: \"%s\"" - -#~ msgid "logical replication table synchronization worker" -#~ msgstr "논리 복제 테이블 동기화 작업자" - -#~ msgid "logical replication apply worker" -#~ msgstr "논리 복제 반영 작업자" - -#, c-format -#~ msgid "" -#~ "%s for subscription \"%s\" will restart because of a parameter change" -#~ msgstr "매개 변수가 바뀌어서 %s(해당 구독: \"%s\")가 다시 시작됩니다." - -#, c-format -#~ msgid "%s for subscription \"%s\" has started" -#~ msgstr "%s가 \"%s\" 구독용으로 시작되었음" - -#, c-format -#~ msgid "could not set compression flag for %s: %s" -#~ msgstr "%s 용 압축 플래그를 지정할 수 없음: %s" - -#, c-format -#~ msgid "permission denied to cluster \"%s\", skipping it" -#~ msgstr "\"%s\" 클러스터 권한 없음, 건너뜀" - -#, c-format -#~ msgid "unexpected DEFAULT in COPY data" -#~ msgstr "COPY 자료 안에 예상치 못한 DEFAULT" - -#, c-format -#~ msgid "must be a superuser to terminate superuser process" -#~ msgstr "슈퍼유저의 세션을 정리하려면 슈퍼유저여야 합니다." - -#~ msgid "invalid unicode sequence" -#~ msgstr "잘못된 유니코드 이스케이프" - -#~ msgid "unexpected end of quoted string" -#~ msgstr "따옴표 뒤 예기치 않은 줄 끝" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "%X/%X 위치에 contrecord 없음" - -#, c-format -#~ msgid "unable to map dynamic shared memory segment" -#~ msgstr "동적 공유 메모리 세그먼트를 할당할 수 없음" - -#, c-format -#~ msgid "bad magic number in dynamic shared memory segment" -#~ msgstr "동적 공유 메모리 세그먼트에 잘못된 매직 번호가 있음" - -#, c-format -#~ msgid "You might need to increase max_logical_replication_workers." -#~ msgstr "max_logical_replication_workers 값을 늘리세요." - -#, c-format -#~ msgid "You might need to increase max_worker_processes." -#~ msgstr "max_worker_processes 값을 늘리세요." - -#, c-format -#~ msgid "You might need to increase max_slot_wal_keep_size." -#~ msgstr "max_slot_wal_keep_size 값을 늘리세요." +#~ "epoch %u의 future two-phase 상태정보 파일을 삭제함, 대상 트랜잭션: %u" #, c-format -#~ msgid "You might need to increase max_locks_per_transaction." -#~ msgstr "max_locks_per_transaction을 늘려야 할 수도 있습니다." +#~ msgid "removing past two-phase state file of epoch %u for transaction %u" +#~ msgstr "epoch %u의 past two-phase 상태정보 파일을 삭제함, 대상 트랜잭션: %u" #, c-format -#~ msgid "You might need to increase max_pred_locks_per_transaction." -#~ msgstr "max_pred_locks_per_transaction 값을 늘려야 할 수도 있습니다." - -#~ msgid "Shows the collation order locale." -#~ msgstr "데이터 정렬 순서 로케일을 표시합니다." - -#~ msgid "Shows the character classification and case conversion locale." -#~ msgstr "문자 분류 및 대/소문자 변환 로케일을 표시합니다." +#~ msgid "removing past two-phase state from memory for transaction %u" +#~ msgstr "" +#~ "%u 트랜잭션에서 사용하는 past two-phase 상태정보를 메모리에서 삭제함" diff --git a/src/backend/po/ru.po b/src/backend/po/ru.po index 85d9a1535a411..f8e7152cd84f1 100644 --- a/src/backend/po/ru.po +++ b/src/backend/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. -# Maxim Yablokov , 2021, 2022. +# Alexander Lakhin , 2012-2025. +# Maxim Yablokov , 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2024-05-04 10:47+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2025-02-08 08:50+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -21,6 +21,11 @@ msgstr "" "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/binaryheap.c:121 ../common/binaryheap.c:159 +#, c-format +msgid "out of binary heap slots" +msgstr "недостаточно слотов в двоичной куче" + #: ../common/compression.c:132 ../common/compression.c:141 #: ../common/compression.c:150 #, c-format @@ -82,64 +87,66 @@ msgstr "алгоритм сжатия \"%s\" не поддерживает ре msgid "not recorded" msgstr "не записано" -#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 -#: commands/copyfrom.c:1687 commands/extension.c:3480 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 +#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123 +#: utils/time/snapmgr.c:1430 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1347 access/transam/xlog.c:3195 -#: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 -#: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 -#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1846 -#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1980 -#: replication/slot.c:2021 replication/walsender.c:643 +#: access/transam/twophase.c:1353 access/transam/xlog.c:3477 +#: access/transam/xlog.c:4341 access/transam/xlogrecovery.c:1238 +#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 +#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 +#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 +#: replication/logical/reorderbuffer.c:5113 +#: replication/logical/snapbuild.c:2052 replication/slot.c:2236 +#: replication/slot.c:2277 replication/walsender.c:655 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 +#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 -#: access/transam/xlog.c:3200 access/transam/xlog.c:4003 -#: backup/basebackup.c:1850 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1984 replication/slot.c:2025 replication/walsender.c:648 -#: utils/cache/relmapper.c:834 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 +#: access/transam/xlog.c:3482 access/transam/xlog.c:4346 +#: replication/logical/origin.c:750 replication/logical/origin.c:789 +#: replication/logical/snapbuild.c:2057 replication/slot.c:2240 +#: replication/slot.c:2281 replication/walsender.c:660 +#: utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" -#: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 -#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:266 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 +#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 +#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1359 -#: access/transam/twophase.c:1771 access/transam/xlog.c:3041 -#: access/transam/xlog.c:3235 access/transam/xlog.c:3240 -#: access/transam/xlog.c:3376 access/transam/xlog.c:3968 -#: access/transam/xlog.c:4887 commands/copyfrom.c:1747 commands/copyto.c:332 +#: access/transam/timeline.c:512 access/transam/twophase.c:1365 +#: access/transam/twophase.c:1784 access/transam/xlog.c:3323 +#: access/transam/xlog.c:3517 access/transam/xlog.c:3522 +#: access/transam/xlog.c:3658 access/transam/xlog.c:4311 +#: access/transam/xlog.c:5246 commands/copyfrom.c:1799 commands/copyto.c:325 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 #: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1871 replication/slot.c:2032 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 -#: utils/cache/relmapper.c:957 +#: replication/logical/reorderbuffer.c:5165 +#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943 +#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828 +#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 +#: utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: ../common/controldata_utils.c:154 +#: ../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "несоответствие порядка байт" -#: ../common/controldata_utils.c:156 +#: ../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -153,141 +160,157 @@ msgstr "" "этой программой. В этом случае результаты будут неверными и\n" "установленный PostgreSQL будет несовместим с этим каталогом данных." -#: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1303 -#: access/transam/xlog.c:2948 access/transam/xlog.c:3111 -#: access/transam/xlog.c:3150 access/transam/xlog.c:3343 -#: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 -#: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1516 libpq/hba.c:629 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1952 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 -#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 -#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 -#: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 +#: ../common/file_utils.c:70 ../common/file_utils.c:347 +#: ../common/file_utils.c:406 ../common/file_utils.c:480 +#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 +#: access/transam/timeline.c:251 access/transam/timeline.c:348 +#: access/transam/twophase.c:1309 access/transam/xlog.c:3230 +#: access/transam/xlog.c:3393 access/transam/xlog.c:3432 +#: access/transam/xlog.c:3625 access/transam/xlog.c:4331 +#: access/transam/xlogrecovery.c:4264 access/transam/xlogrecovery.c:4367 +#: access/transam/xlogutils.c:836 backup/basebackup.c:547 +#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 +#: postmaster/syslogger.c:1511 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3766 +#: replication/logical/reorderbuffer.c:4320 +#: replication/logical/reorderbuffer.c:5093 +#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884 +#: replication/slot.c:2208 replication/walsender.c:628 +#: replication/walsender.c:3051 storage/file/copydir.c:151 +#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 +#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 +#: utils/cache/relmapper.c:935 utils/error/elog.c:2124 +#: utils/init/miscinit.c:1580 utils/init/miscinit.c:1714 +#: utils/init/miscinit.c:1791 utils/misc/guc.c:4777 utils/misc/guc.c:4827 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" -#: ../common/controldata_utils.c:232 ../common/controldata_utils.c:235 -#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 -#: access/transam/xlog.c:8757 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:948 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 +#: access/transam/twophase.c:1757 access/transam/twophase.c:1766 +#: access/transam/xlog.c:9280 access/transam/xlogfuncs.c:698 +#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 +#: backup/walsummary.c:304 postmaster/postmaster.c:4127 +#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 +#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: ../common/controldata_utils.c:249 ../common/controldata_utils.c:254 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1765 -#: access/transam/xlog.c:3034 access/transam/xlog.c:3229 -#: access/transam/xlog.c:3961 access/transam/xlog.c:8147 -#: access/transam/xlog.c:8192 backup/basebackup_server.c:209 -#: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 -#: replication/slot.c:1857 replication/slot.c:1962 storage/file/fd.c:774 -#: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 -#: storage/sync/sync.c:451 utils/misc/guc.c:4379 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 +#: ../common/file_utils.c:418 ../common/file_utils.c:488 +#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 +#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1778 +#: access/transam/xlog.c:3316 access/transam/xlog.c:3511 +#: access/transam/xlog.c:4304 access/transam/xlog.c:8655 +#: access/transam/xlog.c:8700 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812 +#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 +#: storage/file/fd.c:3851 storage/smgr/md.c:1331 storage/smgr/md.c:1376 +#: storage/sync/sync.c:446 utils/misc/guc.c:4530 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:269 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1343 -#: libpq/auth.c:1387 libpq/auth.c:1944 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 -#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:361 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 -#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2231 storage/ipc/procarray.c:2238 -#: storage/ipc/procarray.c:2737 storage/ipc/procarray.c:3373 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 -#: utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4357 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 +#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 +#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 +#: ../common/md5_common.c:156 ../common/parse_manifest.c:157 +#: ../common/parse_manifest.c:852 ../common/psprintf.c:143 +#: ../common/scram-common.c:268 ../common/stringinfo.c:314 ../port/path.c:828 +#: ../port/path.c:865 ../port/path.c:882 access/transam/twophase.c:1418 +#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 +#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:355 postmaster/bgworker.c:945 +#: postmaster/postmaster.c:3560 postmaster/postmaster.c:4021 +#: postmaster/postmaster.c:4383 postmaster/walsummarizer.c:935 +#: replication/libpqwalreceiver/libpqwalreceiver.c:387 +#: replication/logical/logical.c:210 replication/walsender.c:835 +#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 +#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465 +#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226 +#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435 +#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 +#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:532 +#: utils/adt/pg_locale.c:696 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 +#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 +#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 +#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 +#: utils/misc/guc.c:4508 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 +#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 +#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 +#: utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "нехватка памяти" #: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 +#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 +#: ../common/hmac_openssl.c:377 msgid "success" msgstr "успех" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 +#: ../common/hmac_openssl.c:371 msgid "destination buffer too small" msgstr "буфер назначения слишком мал" -#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 msgid "OpenSSL failure" msgstr "ошибка OpenSSL" -#: ../common/exec.c:172 +#: ../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../common/exec.c:215 +#: ../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../common/exec.c:223 +#: ../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../common/exec.c:250 +#: ../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:724 storage/ipc/latch.c:1134 -#: storage/ipc/latch.c:1314 storage/ipc/latch.c:1547 storage/ipc/latch.c:1709 -#: storage/ipc/latch.c:1835 +#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723 +#: commands/copyto.c:654 libpq/be-secure-common.c:59 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 +#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1589 storage/ipc/latch.c:1751 +#: storage/ipc/latch.c:1877 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:195 utils/misc/ps_status.c:203 -#: utils/misc/ps_status.c:230 utils/misc/ps_status.c:238 +#: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:867 +#: ../port/path.c:884 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 +#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 #, c-format msgid "out of memory\n" msgstr "нехватка памяти\n" @@ -297,39 +320,51 @@ msgstr "нехватка памяти\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1315 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:236 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1697 commands/copyto.c:702 commands/extension.c:3469 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 -#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../common/file_utils.c:120 ../common/file_utils.c:566 +#: ../common/file_utils.c:570 access/transam/twophase.c:1321 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 +#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 +#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749 +#: commands/copyto.c:700 commands/extension.c:3527 commands/tablespace.c:804 +#: commands/tablespace.c:893 postmaster/pgarch.c:680 +#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173 +#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 +#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 +#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../common/file_utils.c:151 ../common/file_utils.c:281 +#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 +#: commands/tablespace.c:738 postmaster/postmaster.c:1470 +#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 +#: utils/misc/tzparser.c:339 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2892 +#: ../common/file_utils.c:169 ../common/file_utils.c:315 +#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1743 replication/slot.c:1885 storage/file/fd.c:792 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 +#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559 +#: replication/logical/snapbuild.c:1831 replication/slot.c:936 +#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 +#: utils/time/snapmgr.c:1255 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" @@ -338,75 +373,92 @@ msgstr "не удалось переименовать файл \"%s\" в \"%s\" msgid "internal error" msgstr "внутренняя ошибка" -#: ../common/jsonapi.c:1144 +#: ../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "" +"Инкрементальный лексический анализатор не подходит для нисходящего " +"рекурсивного разбора." + +#: ../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "" +"Для инкрементального разбора требуется инкрементальный лексический " +"анализатор." + +#: ../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "" +"Слишком большая вложенность JSON, максимальная допустимая глубина: 6400." + +#: ../common/jsonapi.c:2127 #, c-format -msgid "Escape sequence \"\\%s\" is invalid." -msgstr "Неверная спецпоследовательность: \"\\%s\"." +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Неверная спецпоследовательность: \"\\%.*s\"." -#: ../common/jsonapi.c:1147 +#: ../common/jsonapi.c:2131 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Символ с кодом 0x%02x необходимо экранировать." -#: ../common/jsonapi.c:1150 +#: ../common/jsonapi.c:2135 #, c-format -msgid "Expected end of input, but found \"%s\"." -msgstr "Ожидался конец текста, но обнаружено продолжение \"%s\"." +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Ожидался конец текста, но обнаружено продолжение \"%.*s\"." -#: ../common/jsonapi.c:1153 +#: ../common/jsonapi.c:2138 #, c-format -msgid "Expected array element or \"]\", but found \"%s\"." -msgstr "Ожидался элемент массива или \"]\", но обнаружено \"%s\"." +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Ожидался элемент массива или \"]\", но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1156 +#: ../common/jsonapi.c:2141 #, c-format -msgid "Expected \",\" or \"]\", but found \"%s\"." -msgstr "Ожидалась \",\" или \"]\", но обнаружено \"%s\"." +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Ожидалась \",\" или \"]\", но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1159 +#: ../common/jsonapi.c:2144 #, c-format -msgid "Expected \":\", but found \"%s\"." -msgstr "Ожидалось \":\", но обнаружено \"%s\"." +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Ожидалось \":\", но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1162 +#: ../common/jsonapi.c:2147 #, c-format -msgid "Expected JSON value, but found \"%s\"." -msgstr "Ожидалось значение JSON, но обнаружено \"%s\"." +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Ожидалось значение JSON, но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1165 +#: ../common/jsonapi.c:2150 msgid "The input string ended unexpectedly." msgstr "Неожиданный конец входной строки." -#: ../common/jsonapi.c:1167 +#: ../common/jsonapi.c:2152 #, c-format -msgid "Expected string or \"}\", but found \"%s\"." -msgstr "Ожидалась строка или \"}\", но обнаружено \"%s\"." +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Ожидалась строка или \"}\", но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1170 +#: ../common/jsonapi.c:2155 #, c-format -msgid "Expected \",\" or \"}\", but found \"%s\"." -msgstr "Ожидалась \",\" или \"}\", но обнаружено \"%s\"." +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Ожидалась \",\" или \"}\", но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1173 +#: ../common/jsonapi.c:2158 #, c-format -msgid "Expected string, but found \"%s\"." -msgstr "Ожидалась строка, но обнаружено \"%s\"." +msgid "Expected string, but found \"%.*s\"." +msgstr "Ожидалась строка, но обнаружено \"%.*s\"." -#: ../common/jsonapi.c:1176 +#: ../common/jsonapi.c:2161 #, c-format -msgid "Token \"%s\" is invalid." -msgstr "Ошибочный элемент текста \"%s\"." +msgid "Token \"%.*s\" is invalid." +msgstr "Ошибочный элемент \"%.*s\"." -#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 +#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 нельзя преобразовать в текст." -#: ../common/jsonapi.c:1181 +#: ../common/jsonapi.c:2166 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "За \"\\u\" должны следовать четыре шестнадцатеричные цифры." -#: ../common/jsonapi.c:1184 +#: ../common/jsonapi.c:2169 msgid "" "Unicode escape values cannot be used for code point values above 007F when " "the encoding is not UTF8." @@ -414,20 +466,20 @@ msgstr "" "Спецкоды Unicode для значений выше 007F можно использовать только с " "кодировкой UTF8." -#: ../common/jsonapi.c:1187 +#: ../common/jsonapi.c:2178 #, c-format msgid "" "Unicode escape value could not be translated to the server's encoding %s." msgstr "Спецкод Unicode нельзя преобразовать в серверную кодировку %s." -#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 +#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "" "Старшее слово суррогата Unicode не может следовать за другим старшим словом." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 +#: jsonpath_scan.l:713 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Младшее слово суррогата Unicode должно следовать за старшим словом." @@ -452,11 +504,168 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "не удалось подготовить контекст контрольной суммы манифеста" + +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "неожиданный конец манифеста" + +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "не удалось изменить контекст контрольной суммы манифеста" + +#: ../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "неожиданное начало объекта" + +#: ../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "неожиданный конец объекта" + +#: ../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "неожиданное начало массива" + +#: ../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "неожиданный конец массива" + +#: ../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "ожидалось указание версии" + +#: ../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "нераспознанное поле на верхнем уровне" + +#: ../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "неизвестное поле для файла" + +#: ../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "неизвестное поле в указании диапазона WAL" + +#: ../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "неожиданное поле объекта" + +#: ../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "неожиданное скалярное значение" + +#: ../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "версия манифеста не является целым числом" + +#: ../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "неожиданная версия манифеста" + +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "идентификатор системы в манифесте не является целым числом" + +#: ../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "отсутствует указание пути" + +#: ../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "путь задан в обычном виде и в закодированном" + +#: ../common/parse_manifest.c:666 +msgid "missing size" +msgstr "отсутствует указание размера" + +#: ../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "не задан алгоритм расчёта контрольной суммы" + +#: ../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "не удалось декодировать имя файла" + +#: ../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "размер файла не является целочисленным" + +#: ../common/parse_manifest.c:699 backup/basebackup.c:870 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "нераспознанный алгоритм расчёта контрольных сумм: \"%s\"" + +#: ../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "неверная контрольная сумма для файла \"%s\": \"%s\"" + +#: ../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "отсутствует линия времени" + +#: ../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "отсутствует начальный LSN" + +#: ../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "отсутствует конечный LSN" + +#: ../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "линия времени задана не целым числом" + +#: ../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "не удалось разобрать начальный LSN" + +#: ../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "не удалось разобрать конечный LSN" + +#: ../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "ожидалось как минимум 2 строки" + +#: ../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "последняя строка не оканчивается символом новой строки" + +#: ../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "не удалось завершить расчёт контрольной суммы манифеста" + +#: ../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "в манифесте нет контрольной суммы" + +#: ../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "неверная контрольная сумма в манифесте: \"%s\"" + +#: ../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "ошибка контрольной суммы манифеста" + +#: ../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "не удалось разобрать манифест копии: %s" + #: ../common/percentrepl.c:79 ../common/percentrepl.c:85 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2211 utils/misc/guc.c:3120 utils/misc/guc.c:3156 -#: utils/misc/guc.c:3226 utils/misc/guc.c:4556 utils/misc/guc.c:6738 -#: utils/misc/guc.c:6779 +#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 +#: utils/misc/guc.c:3283 utils/misc/guc.c:4712 utils/misc/guc.c:6931 +#: utils/misc/guc.c:6972 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неверное значение для параметра \"%s\": \"%s\"" @@ -517,46 +726,46 @@ msgstr "не удалось перезапуститься с ограничен msgid "could not get exit code from subprocess: error code %lu" msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:400 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1936 storage/file/fd.c:832 storage/file/fd.c:3325 -#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 +#: access/transam/twophase.c:1717 access/transam/xlogarchive.c:119 +#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 +#: postmaster/syslogger.c:1488 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4589 +#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146 +#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 +#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343 +#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 +#: utils/time/snapmgr.c:1591 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не удалось стереть файл \"%s\": %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 -#: storage/file/fd.c:3726 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 +#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 +#: storage/file/fd.c:3779 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "ошибка при удалении каталога \"%s\": %m" -#: ../common/scram-common.c:282 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "не удалось закодировать соль" -#: ../common/scram-common.c:298 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "не удалось закодировать сохранённый ключ" -#: ../common/scram-common.c:315 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "не удалось закодировать ключ сервера" -#: ../common/stringinfo.c:306 +#: ../common/stringinfo.c:315 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "" "Не удалось увеличить строковый буфер (в буфере байт: %d, требовалось ещё %d)." -#: ../common/stringinfo.c:310 +#: ../common/stringinfo.c:319 #, c-format msgid "" "out of memory\n" @@ -573,7 +782,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" -#: ../common/username.c:45 libpq/auth.c:1879 +#: ../common/username.c:45 libpq/auth.c:1888 msgid "user does not exist" msgstr "пользователь не существует" @@ -610,7 +819,7 @@ msgstr "дочерний процесс завершён по сигналу %d: #: ../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "дочерний процесс завершился с нераспознанным состоянием %d" +msgstr "дочерний процесс завершился с нераспознанным кодом состояния %d" #: ../port/chklocale.c:283 #, c-format @@ -670,22 +879,22 @@ msgstr "" "Возможно, работе СУБД мешает антивирус, программа резервного копирования или " "что-то подобное." -#: ../port/path.c:775 +#: ../port/path.c:852 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "не удалось определить текущий рабочий каталог: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "не удалось определить текущий рабочий каталог: %m\n" #: ../port/strerror.c:72 #, c-format msgid "operating system error %d" msgstr "ошибка ОС %d" -#: ../port/thread.c:50 ../port/thread.c:86 +#: ../port/user.c:43 ../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "найти локального пользователя по идентификатору (%d) не удалось: %s" -#: ../port/thread.c:55 ../port/thread.c:91 +#: ../port/user.c:48 ../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "локальный пользователь с ID %d не существует" @@ -707,7 +916,7 @@ msgid "could not check access token membership: error code %lu\n" msgstr "" "не удалось проверить вхождение в маркере безопасности (код ошибки: %lu)\n" -#: access/brin/brin.c:216 +#: access/brin/brin.c:405 #, c-format msgid "" "request for BRIN range summarization for index \"%s\" page %u was not " @@ -716,72 +925,72 @@ msgstr "" "запрос на расчёт сводки диапазона BRIN для индекса \"%s\" страницы %u не был " "записан" -#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1039 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 +#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 +#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 +#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 +#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 #, c-format msgid "recovery is in progress" msgstr "идёт процесс восстановления" -#: access/brin/brin.c:1037 access/brin/brin.c:1144 +#: access/brin/brin.c:1386 access/brin/brin.c:1494 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Функции управления BRIN нельзя использовать в процессе восстановления." -#: access/brin/brin.c:1042 access/brin/brin.c:1149 +#: access/brin/brin.c:1391 access/brin/brin.c:1499 #, c-format msgid "block number out of range: %lld" msgstr "номер блока вне диапазона: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1175 +#: access/brin/brin.c:1436 access/brin/brin.c:1525 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" - это не индекс BRIN" -#: access/brin/brin.c:1102 access/brin/brin.c:1191 +#: access/brin/brin.c:1452 access/brin/brin.c:1541 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "не удалось открыть родительскую таблицу индекса \"%s\"" -#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 -#: parser/parse_utilcmd.c:2280 +#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 +#: parser/parse_utilcmd.c:2277 #, c-format msgid "index \"%s\" is not valid" msgstr "индекс \"%s\" - нерабочий" -#: access/brin/brin_bloom.c:752 access/brin/brin_bloom.c:794 -#: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 +#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 +#: statistics/dependencies.c:661 statistics/dependencies.c:714 +#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 +#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 +#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format msgid "cannot accept a value of type %s" msgstr "значение типа %s нельзя ввести" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 +#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 +#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 +#: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "" "размер строки индекса (%zu) больше предельного размера (%zu) (индекс \"%s\")" -#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399 +#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389 #, c-format msgid "corrupted BRIN index: inconsistent range map" msgstr "испорченный индекс BRIN: несогласованность в карте диапазонов" -#: access/brin/brin_revmap.c:593 +#: access/brin/brin_revmap.c:583 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "неожиданный тип страницы 0x%04X в BRIN-индексе \"%s\" (блок: %u)" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 +#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "" @@ -791,8 +1000,8 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит функцию %s с " "неправильным опорным номером %d" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 +#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "" @@ -802,8 +1011,8 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит функцию %s с " "неподходящим объявлением для опорного номера %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 +#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "" @@ -813,7 +1022,7 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит оператор %s с " "неправильным номером стратегии %d" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 #: access/spgist/spgvalidate.c:237 #, c-format @@ -824,8 +1033,8 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит некорректное " "определение ORDER BY для оператора %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 +#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "" @@ -860,31 +1069,31 @@ msgstr "" msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "в классе операторов \"%s\" метода доступа %s нет оператора(ов)" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 +#: access/gist/gistvalidate.c:273 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d" msgstr "в классе операторов \"%s\" метода доступа %s нет опорной функции %d" -#: access/common/attmap.c:122 +#: access/common/attmap.c:121 #, c-format msgid "Returned type %s does not match expected type %s in column %d." msgstr "Возвращаемый тип %s не соответствует ожидаемому типу %s в столбце %d." -#: access/common/attmap.c:150 +#: access/common/attmap.c:149 #, c-format msgid "" "Number of returned columns (%d) does not match expected column count (%d)." msgstr "" "Число возвращённых столбцов (%d) не соответствует ожидаемому числу (%d)." -#: access/common/attmap.c:234 access/common/attmap.c:246 +#: access/common/attmap.c:233 access/common/attmap.c:245 #, c-format msgid "could not convert row type" msgstr "не удалось преобразовать тип строки" -#: access/common/attmap.c:235 +#: access/common/attmap.c:234 #, c-format msgid "" "Attribute \"%s\" of type %s does not match corresponding attribute of type " @@ -892,12 +1101,12 @@ msgid "" msgstr "" "Атрибут \"%s\" типа %s несовместим с соответствующим атрибутом типа %s." -#: access/common/attmap.c:247 +#: access/common/attmap.c:246 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "Атрибут \"%s\" типа %s не существует в типе %s." -#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 +#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "число столбцов (%d) превышает предел (%d)" @@ -907,122 +1116,110 @@ msgstr "число столбцов (%d) превышает предел (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "число столбцов индекса (%d) превышает предел (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:957 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:970 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "строка индекса требует байт: %zu, при максимуме: %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107 +#: tcop/fastpath.c:454 tcop/postgres.c:1956 #, c-format msgid "unsupported format code: %d" msgstr "неподдерживаемый код формата: %d" -#: access/common/reloptions.c:521 access/common/reloptions.c:532 +#: access/common/reloptions.c:519 access/common/reloptions.c:530 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "Допускаются только значения \"on\", \"off\" и \"auto\"." -#: access/common/reloptions.c:543 +#: access/common/reloptions.c:541 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "Допускаются только значения \"local\" и \"cascaded\"." -#: access/common/reloptions.c:691 +#: access/common/reloptions.c:689 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "превышен предел пользовательских типов реляционных параметров" -#: access/common/reloptions.c:1233 +#: access/common/reloptions.c:1231 #, c-format msgid "RESET must not include values for parameters" msgstr "В RESET не должно передаваться значение параметров" -#: access/common/reloptions.c:1265 +#: access/common/reloptions.c:1263 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "нераспознанное пространство имён параметров \"%s\"" -#: access/common/reloptions.c:1302 commands/variable.c:1167 +#: access/common/reloptions.c:1300 commands/variable.c:1214 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблицы со свойством WITH OIDS не поддерживаются" -#: access/common/reloptions.c:1470 +#: access/common/reloptions.c:1468 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "нераспознанный параметр \"%s\"" -#: access/common/reloptions.c:1582 +#: access/common/reloptions.c:1580 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "параметр \"%s\" указан неоднократно" -#: access/common/reloptions.c:1598 +#: access/common/reloptions.c:1596 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "неверное значение для логического параметра \"%s\": %s" -#: access/common/reloptions.c:1610 +#: access/common/reloptions.c:1608 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "неверное значение для целочисленного параметра \"%s\": %s" -#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 +#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "значение %s вне допустимых пределов параметра \"%s\"" -#: access/common/reloptions.c:1618 +#: access/common/reloptions.c:1616 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Допускаются значения только от \"%d\" до \"%d\"." -#: access/common/reloptions.c:1630 +#: access/common/reloptions.c:1628 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "неверное значение для численного параметра \"%s\": %s" -#: access/common/reloptions.c:1638 +#: access/common/reloptions.c:1636 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Допускаются значения только от \"%f\" до \"%f\"." -#: access/common/reloptions.c:1660 +#: access/common/reloptions.c:1658 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "неверное значение для параметра-перечисления \"%s\": %s" -#: access/common/reloptions.c:1991 +#: access/common/reloptions.c:1989 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "задать параметры хранения для секционированной таблицы нельзя" -#: access/common/reloptions.c:1992 +#: access/common/reloptions.c:1990 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "Задайте параметры хранения для её конечных секций." -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:31 #, c-format msgid "compression method lz4 not supported" msgstr "метод сжатия lz4 не поддерживается" -#: access/common/toast_compression.c:34 +#: access/common/toast_compression.c:32 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "Для этой функциональности в сервере не хватает поддержки lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6956 -#: commands/tablecmds.c:13027 -#, c-format -msgid "too many array dimensions" -msgstr "слишком много размерностей массива" - -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1913 -#, c-format -msgid "column \"%s\" cannot be declared SETOF" -msgstr "столбец \"%s\" не может быть объявлен как SETOF" - #: access/gin/ginbulk.c:44 #, c-format msgid "posting list is too long" @@ -1030,25 +1227,25 @@ msgstr "слишком длинный список указателей" #: access/gin/ginbulk.c:45 #, c-format -msgid "Reduce maintenance_work_mem." -msgstr "Уменьшите maintenance_work_mem." +msgid "Reduce \"maintenance_work_mem\"." +msgstr "Уменьшите \"maintenance_work_mem\"." -#: access/gin/ginfast.c:1040 +#: access/gin/ginfast.c:1041 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "Очередь записей GIN нельзя очистить в процессе восстановления." -#: access/gin/ginfast.c:1047 +#: access/gin/ginfast.c:1048 #, c-format msgid "\"%s\" is not a GIN index" msgstr "\"%s\" - это не индекс GIN" -#: access/gin/ginfast.c:1058 +#: access/gin/ginfast.c:1059 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "обращаться к временным индексам других сеансов нельзя" -#: access/gin/ginget.c:273 access/nbtree/nbtinsert.c:762 +#: access/gin/ginget.c:271 access/nbtree/nbtinsert.c:762 #, c-format msgid "failed to re-find tuple within index \"%s\"" msgstr "не удалось повторно найти кортеж в индексе \"%s\"" @@ -1064,14 +1261,14 @@ msgstr "" msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Для исправления выполните REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:4045 utils/adt/arrayfuncs.c:6732 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:147 executor/execExpr.c:2200 +#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712 +#: utils/adt/rowtypes.c:974 #, c-format msgid "could not identify a comparison function for type %s" msgstr "не удалось найти функцию сравнения для типа %s" -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 +#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "" @@ -1081,7 +1278,7 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит опорную функцию %s с " "межтиповой регистрацией" -#: access/gin/ginvalidate.c:260 +#: access/gin/ginvalidate.c:258 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d or " @@ -1089,18 +1286,18 @@ msgid "" msgstr "" "в классе операторов \"%s\" метода доступа %s нет опорной функции %d или %d" -#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 +#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 #: access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "номер опорной функции %d не подходит для метода доступа %s" -#: access/gist/gist.c:759 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "индекс \"%s\" содержит внутренний кортеж, отмеченный как ошибочный" -#: access/gist/gist.c:761 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 #, c-format msgid "" "This is caused by an incomplete page split at crash recovery before " @@ -1109,16 +1306,16 @@ msgstr "" "Это вызвано неполным разделением страницы при восстановлении после сбоя в " "PostgreSQL до версии 9.1." -#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 +#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 +#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 +#: access/hash/hashutil.c:237 access/hash/hashutil.c:249 +#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 #: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Пожалуйста, выполните REINDEX для него." -#: access/gist/gist.c:1195 +#: access/gist/gist.c:1196 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "исправление неполного разделения в индексе \"%s\" (блок: %u)" @@ -1138,19 +1335,19 @@ msgstr "" "разработчиками или попробуйте указать этот столбец в команде CREATE INDEX " "вторым." -#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 +#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 #: access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "в индексе \"%s\" неожиданно оказалась нулевая страница в блоке %u" -#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 +#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "индекс \"%s\" содержит испорченную страницу в блоке %u" -#: access/gist/gistvalidate.c:203 +#: access/gist/gistvalidate.c:202 #, c-format msgid "" "operator family \"%s\" of access method %s contains unsupported ORDER BY " @@ -1159,7 +1356,7 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит неподдерживаемое " "определение ORDER BY для оператора %s" -#: access/gist/gistvalidate.c:214 +#: access/gist/gistvalidate.c:213 #, c-format msgid "" "operator family \"%s\" of access method %s contains incorrect ORDER BY " @@ -1168,32 +1365,32 @@ msgstr "" "семейство операторов \"%s\" метода доступа %s содержит некорректное " "определение ORDER BY для оператора %s" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "" "не удалось определить, какое правило сортировки использовать для хеширования " "строк" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:671 -#: catalog/heap.c:677 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2015 commands/tablecmds.c:17527 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672 +#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508 +#: commands/indexcmds.c:2021 commands/tablecmds.c:18178 commands/view.c:81 +#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 +#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 +#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Задайте правило сортировки явно в предложении COLLATE." -#: access/hash/hashinsert.c:86 +#: access/hash/hashinsert.c:84 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "размер строки индекса (%zu) больше предельного размера хеша (%zu)" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1018 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Значения, не умещающиеся в страницу буфера, нельзя проиндексировать." @@ -1208,17 +1405,17 @@ msgstr "неверный номер блока переполнения: %u" msgid "out of overflow pages in hash index \"%s\"" msgstr "в хеш-индексе \"%s\" не хватает страниц переполнения" -#: access/hash/hashsearch.c:315 +#: access/hash/hashsearch.c:311 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "хеш-индексы не поддерживают сканирование всего индекса" -#: access/hash/hashutil.c:263 +#: access/hash/hashutil.c:262 #, c-format msgid "index \"%s\" is not a hash index" msgstr "индекс \"%s\" не является хеш-индексом" -#: access/hash/hashutil.c:269 +#: access/hash/hashutil.c:268 #, c-format msgid "index \"%s\" has wrong hash version" msgstr "индекс \"%s\" имеет неправильную версию хеша" @@ -1239,38 +1436,48 @@ msgid "" msgstr "" "в семействе операторов \"%s\" метода доступа %s нет межтипового оператора(ов)" -#: access/heap/heapam.c:2038 +#: access/heap/heapam.c:2206 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "вставлять кортежи в параллельном исполнителе нельзя" -#: access/heap/heapam.c:2557 +#: access/heap/heapam.c:2725 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "удалять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:2604 +#: access/heap/heapam.c:2772 #, c-format msgid "attempted to delete invisible tuple" msgstr "попытка удаления невидимого кортежа" -#: access/heap/heapam.c:3052 access/heap/heapam.c:5921 +#: access/heap/heapam.c:3220 access/heap/heapam.c:6501 access/index/genam.c:818 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "изменять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:3180 +#: access/heap/heapam.c:3397 #, c-format msgid "attempted to update invisible tuple" msgstr "попытка изменения невидимого кортежа" -#: access/heap/heapam.c:4569 access/heap/heapam.c:4607 -#: access/heap/heapam.c:4872 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4908 access/heap/heapam.c:4946 +#: access/heap/heapam.c:5211 access/heap/heapam_handler.c:468 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не удалось получить блокировку строки в таблице \"%s\"" -#: access/heap/heapam_handler.c:412 +#: access/heap/heapam.c:6314 commands/trigger.c:3340 +#: executor/nodeModifyTable.c:2376 executor/nodeModifyTable.c:2467 +#, c-format +msgid "" +"tuple to be updated was already modified by an operation triggered by the " +"current command" +msgstr "" +"кортеж, который должен быть изменён, уже модифицирован в операции, вызванной " +"текущей командой" + +#: access/heap/heapam_handler.c:413 #, c-format msgid "" "tuple to be locked was already moved to another partition due to concurrent " @@ -1279,66 +1486,67 @@ msgstr "" "кортеж, подлежащий блокировке, был перемещён в другую секцию в результате " "параллельного изменения" -#: access/heap/hio.c:536 access/heap/rewriteheap.c:659 +#: access/heap/hio.c:535 access/heap/rewriteheap.c:640 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "размер строки (%zu) превышает предел (%zu)" -#: access/heap/rewriteheap.c:919 +#: access/heap/rewriteheap.c:885 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "не удалось записать в файл \"%s\" (записано байт: %d из %d): %m" -#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2973 access/transam/xlog.c:3164 -#: access/transam/xlog.c:3940 access/transam/xlog.c:8746 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:495 -#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1804 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/transam/xlog.c:3255 access/transam/xlog.c:3446 +#: access/transam/xlog.c:4283 access/transam/xlog.c:9269 +#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 +#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4114 +#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603 +#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 +#: utils/time/snapmgr.c:1234 #, c-format msgid "could not create file \"%s\": %m" msgstr "не удалось создать файл \"%s\": %m" -#: access/heap/rewriteheap.c:1138 +#: access/heap/rewriteheap.c:1104 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "не удалось обрезать файл \"%s\" до нужного размера (%u): %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3023 access/transam/xlog.c:3220 -#: access/transam/xlog.c:3952 commands/dbcommands.c:507 -#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 +#: access/transam/xlog.c:3305 access/transam/xlog.c:3502 +#: access/transam/xlog.c:4295 commands/dbcommands.c:506 +#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363 #: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1839 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1612 -#: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 -#: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 -#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788 +#: replication/slot.c:2094 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1655 +#: utils/init/miscinit.c:1666 utils/init/miscinit.c:1674 utils/misc/guc.c:4491 +#: utils/misc/guc.c:4522 utils/misc/guc.c:5675 utils/misc/guc.c:5693 +#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 #, c-format msgid "could not write to file \"%s\": %m" msgstr "не удалось записать в файл \"%s\": %m" -#: access/heap/vacuumlazy.c:480 +#: access/heap/vacuumlazy.c:473 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "агрессивная очистка \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:485 +#: access/heap/vacuumlazy.c:478 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "очистка \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:633 +#: access/heap/vacuumlazy.c:626 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "закончена очистка \"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:644 +#: access/heap/vacuumlazy.c:637 #, c-format msgid "" "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": " @@ -1347,7 +1555,7 @@ msgstr "" "автоматическая агрессивная очистка, предотвращающая зацикливание, таблицы " "\"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:639 #, c-format msgid "" "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: " @@ -1356,27 +1564,27 @@ msgstr "" "автоматическая очистка, предотвращающая зацикливание, таблицы \"%s.%s.%s\": " "сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:651 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "" "автоматическая агрессивная очистка таблицы \"%s.%s.%s\": сканирований " "индекса: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "" "автоматическая очистка таблицы \"%s.%s.%s\": сканирований индекса: %d\n" -#: access/heap/vacuumlazy.c:660 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "" "страниц удалено: %u, осталось: %u, просканировано: %u (%.2f%% от общего " "числа)\n" -#: access/heap/vacuumlazy.c:667 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "" "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" @@ -1384,7 +1592,7 @@ msgstr "" "версий строк: удалено: %lld, осталось: %lld, «мёртвых», но ещё не подлежащих " "удалению: %lld\n" -#: access/heap/vacuumlazy.c:673 +#: access/heap/vacuumlazy.c:666 #, c-format msgid "" "tuples missed: %lld dead from %u pages not removed due to cleanup lock " @@ -1393,43 +1601,43 @@ msgstr "" "из-за конфликта блокировки очистки пропущено версий строк: %lld, на " "страницах: %u\n" -#: access/heap/vacuumlazy.c:679 +#: access/heap/vacuumlazy.c:672 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "" "XID отсечки удаления: %u, на момент завершения операции он имел возраст: %d " "XID\n" -#: access/heap/vacuumlazy.c:686 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "" "новое значение relfrozenxid: %u, оно продвинулось вперёд от предыдущего " "значения на %d XID\n" -#: access/heap/vacuumlazy.c:694 +#: access/heap/vacuumlazy.c:687 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "" "новое значение relminmxid: %u, оно продвинулось вперёд от предыдущего " "значения на %d MXID\n" -#: access/heap/vacuumlazy.c:697 +#: access/heap/vacuumlazy.c:690 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "" "замораживание: на страницах таблицы (%u, %.2f%% от общего числа) заморожено " "кортежей: %lld\n" -#: access/heap/vacuumlazy.c:705 +#: access/heap/vacuumlazy.c:698 msgid "index scan not needed: " msgstr "сканирование индекса не требуется: " -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:700 msgid "index scan needed: " msgstr "сканирование индекса требуется: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:702 #, c-format msgid "" "%u pages from table (%.2f%% of total) had %lld dead item identifiers " @@ -1438,22 +1646,22 @@ msgstr "" "на страницах таблицы (%u, %.2f%% от общего числа) удалено мёртвых " "идентификаторов элементов: %lld\n" -#: access/heap/vacuumlazy.c:714 +#: access/heap/vacuumlazy.c:707 msgid "index scan bypassed: " msgstr "сканирование индекса пропущено: " -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:709 msgid "index scan bypassed by failsafe: " msgstr "сканирование индекса пропущено из-за защиты: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "" "на страницах таблицы (%u, %.2f%% от общего числа) находится мёртвых " "идентификаторов элементов: %lld\n" -#: access/heap/vacuumlazy.c:733 +#: access/heap/vacuumlazy.c:726 #, c-format msgid "" "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u " @@ -1462,43 +1670,43 @@ msgstr "" "индекс \"%s\": всего страниц: %u, сейчас удалено: %u, удалено на данный " "момент: %u, свободно: %u\n" -#: access/heap/vacuumlazy.c:745 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:738 commands/analyze.c:794 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "время ввода/вывода: чтение: %.3f мс, запись: %.3f мс\n" -#: access/heap/vacuumlazy.c:755 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:748 commands/analyze.c:797 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "" "средняя скорость чтения: %.3f МБ/с, средняя скорость записи: %.3f МБ/с\n" -#: access/heap/vacuumlazy.c:758 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:751 commands/analyze.c:799 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "" "использование буфера: попаданий: %lld, промахов: %lld, «грязных» записей: " "%lld\n" -#: access/heap/vacuumlazy.c:763 +#: access/heap/vacuumlazy.c:756 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "" "использование WAL: записей: %lld, полных образов страниц: %lld, байт: %llu\n" -#: access/heap/vacuumlazy.c:767 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:803 #, c-format msgid "system usage: %s" msgstr "нагрузка системы: %s" -#: access/heap/vacuumlazy.c:2476 +#: access/heap/vacuumlazy.c:2170 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "" "таблица \"%s\": удалено мёртвых идентификаторов элементов: %lld, на " "страницах: %u" -#: access/heap/vacuumlazy.c:2636 +#: access/heap/vacuumlazy.c:2324 #, c-format msgid "" "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after " @@ -1507,12 +1715,12 @@ msgstr "" "несущественная операция обслуживания таблицы \"%s.%s.%s\" пропускается в " "качестве меры защиты после %d сканирований индекса" -#: access/heap/vacuumlazy.c:2639 +#: access/heap/vacuumlazy.c:2327 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "Значение relfrozenxid или relminmxid таблицы слишком далеко в прошлом." -#: access/heap/vacuumlazy.c:2640 +#: access/heap/vacuumlazy.c:2328 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or " @@ -1525,23 +1733,23 @@ msgstr "" "Также можно рассмотреть другие способы обеспечения производительности " "VACUUM, соответствующей скорости выделения идентификаторов транзакций." -#: access/heap/vacuumlazy.c:2885 +#: access/heap/vacuumlazy.c:2590 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": остановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:2955 +#: access/heap/vacuumlazy.c:2660 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "таблица \"%s\": усечение (было страниц: %u, стало: %u)" -#: access/heap/vacuumlazy.c:3017 +#: access/heap/vacuumlazy.c:2722 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "" "таблица \"%s\": приостановка усечения из-за конфликтующего запроса блокировки" -#: access/heap/vacuumlazy.c:3177 +#: access/heap/vacuumlazy.c:2841 #, c-format msgid "" "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary " @@ -1550,47 +1758,47 @@ msgstr "" "отключение параллельного режима очистки \"%s\" --- создавать временные " "таблицы в параллельном режиме нельзя" -#: access/heap/vacuumlazy.c:3393 +#: access/heap/vacuumlazy.c:3108 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "при сканировании блока %u (смещение %u) отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3396 +#: access/heap/vacuumlazy.c:3111 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "при сканировании блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3400 +#: access/heap/vacuumlazy.c:3115 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "при сканировании отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3408 +#: access/heap/vacuumlazy.c:3123 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "при очистке блока %u (смещение %u) отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3411 +#: access/heap/vacuumlazy.c:3126 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "при очистке блока %u отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3415 +#: access/heap/vacuumlazy.c:3130 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "при очистке отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3420 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3135 commands/vacuumparallel.c:1112 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "при очистке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3425 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1118 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "при уборке индекса \"%s\" отношения \"%s.%s\"" -#: access/heap/vacuumlazy.c:3431 +#: access/heap/vacuumlazy.c:3146 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "при усечении отношения \"%s.%s\" до %u блок." @@ -1605,24 +1813,24 @@ msgstr "метод доступа \"%s\" имеет не тип %s" msgid "index access method \"%s\" does not have a handler" msgstr "для метода доступа индекса \"%s\" не задан обработчик" -#: access/index/genam.c:490 +#: access/index/genam.c:489 #, c-format msgid "transaction aborted during system catalog scan" msgstr "транзакция прервана во время сканирования системного каталога" -#: access/index/genam.c:658 access/index/indexam.c:87 +#: access/index/genam.c:657 access/index/indexam.c:82 #, c-format msgid "cannot access index \"%s\" while it is being reindexed" msgstr "индекс \"%s\" перестраивается, обращаться к нему нельзя" -#: access/index/indexam.c:208 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17222 commands/tablecmds.c:19000 +#: access/index/indexam.c:203 catalog/objectaddress.c:1356 +#: commands/indexcmds.c:2851 commands/tablecmds.c:281 commands/tablecmds.c:305 +#: commands/tablecmds.c:17873 commands/tablecmds.c:19762 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" - это не индекс" -#: access/index/indexam.c:1021 +#: access/index/indexam.c:1028 #, c-format msgid "operator class %s has no options" msgstr "у класса операторов %s нет параметров" @@ -1643,7 +1851,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Возможно, это вызвано переменной природой индексного выражения." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2326 +#: parser/parse_utilcmd.c:2323 #, c-format msgid "index \"%s\" is not a btree" msgstr "индекс \"%s\" не является b-деревом" @@ -1657,12 +1865,12 @@ msgstr "" "несовпадение версии в индексе \"%s\": версия файла: %d, версия кода: %d, " "минимальная поддерживаемая версия: %d" -#: access/nbtree/nbtpage.c:1866 +#: access/nbtree/nbtpage.c:1861 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "индекс \"%s\" содержит полумёртвую внутреннюю страницу" -#: access/nbtree/nbtpage.c:1868 +#: access/nbtree/nbtpage.c:1863 #, c-format msgid "" "This can be caused by an interrupted VACUUM in version 9.3 or older, before " @@ -1671,7 +1879,7 @@ msgstr "" "Причиной тому могло быть прерывание операции VACUUM в версии 9.3 или старее, " "до обновления. Этот индекс нужно перестроить (REINDEX)." -#: access/nbtree/nbtutils.c:2677 +#: access/nbtree/nbtutils.c:5108 #, c-format msgid "" "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" @@ -1679,12 +1887,12 @@ msgstr "" "размер строки индекса (%zu) больше предельного для btree версии %u размера " "(%zu) (индекс \"%s\")" -#: access/nbtree/nbtutils.c:2683 +#: access/nbtree/nbtutils.c:5114 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Строка индекса ссылается на кортеж (%u,%u) в отношении \"%s\"." -#: access/nbtree/nbtutils.c:2687 +#: access/nbtree/nbtutils.c:5118 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1705,7 +1913,13 @@ msgstr "" "в семействе операторов \"%s\" метода доступа %s нет опорной функции для " "типов %s и %s" -#: access/spgist/spgutils.c:243 +#: access/sequence/sequence.c:75 access/table/table.c:145 +#: optimizer/util/plancat.c:144 +#, c-format +msgid "cannot open relation \"%s\"" +msgstr "открыть отношение \"%s\" нельзя" + +#: access/spgist/spgutils.c:245 #, c-format msgid "" "compress method must be defined when leaf type is different from input type" @@ -1713,7 +1927,7 @@ msgstr "" "метод сжатия должен быть определён, когда тип листьев отличается от входного " "типа" -#: access/spgist/spgutils.c:1015 +#: access/spgist/spgutils.c:1028 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "внутренний размер кортежа SP-GiST (%zu) превышает максимум (%zu)" @@ -1734,75 +1948,71 @@ msgstr "" "в семействе операторов \"%s\" метода доступа %s нет опорной функции %d для " "типа %s" -#: access/table/table.c:145 optimizer/util/plancat.c:145 -#, c-format -msgid "cannot open relation \"%s\"" -msgstr "открыть отношение \"%s\" нельзя" - -#: access/table/tableam.c:265 +#: access/table/tableam.c:255 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "идентификатор кортежа (%u, %u) недопустим для отношения \"%s\"" -#: access/table/tableamapi.c:116 +#: access/table/tableamapi.c:109 #, c-format -msgid "%s cannot be empty." -msgstr "Значение %s не может быть пустым." +msgid "\"%s\" cannot be empty." +msgstr "Значение \"%s\" не может быть пустым." # well-spelled: симв -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4808 +#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4859 #, c-format -msgid "%s is too long (maximum %d characters)." -msgstr "Длина %s превышает предел (%d симв.)." +msgid "\"%s\" is too long (maximum %d characters)." +msgstr "Длина \"%s\" превышает предел (%d симв.)." -#: access/table/tableamapi.c:146 +#: access/table/tableamapi.c:139 #, c-format msgid "table access method \"%s\" does not exist" msgstr "табличный метод доступа \"%s\" не существует" -#: access/table/tableamapi.c:151 +#: access/table/tableamapi.c:144 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "Табличный метод доступа \"%s\" не существует." -#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152 +#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151 #, c-format msgid "sample percentage must be between 0 and 100" msgstr "процент выборки должен задаваться числом от 0 до 100" -#: access/transam/commit_ts.c:279 +#: access/transam/commit_ts.c:287 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "не удалось получить метку времени фиксации транзакции %u" -#: access/transam/commit_ts.c:377 +#: access/transam/commit_ts.c:385 #, c-format msgid "could not get commit timestamp data" msgstr "не удалось получить отметку времени фиксации" -#: access/transam/commit_ts.c:379 +#: access/transam/commit_ts.c:387 #, c-format msgid "" "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "" "Убедитесь, что в конфигурации ведущего сервера установлен параметр \"%s\"." -#: access/transam/commit_ts.c:381 +#: access/transam/commit_ts.c:389 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Убедитесь, что в конфигурации установлен параметр \"%s\"." -#: access/transam/multixact.c:1023 +#: access/transam/multixact.c:1091 #, c-format msgid "" -"database is not accepting commands that generate new MultiXactIds to avoid " +"database is not accepting commands that assign new MultiXactIds to avoid " "wraparound data loss in database \"%s\"" msgstr "" -"база данных не принимает команды, создающие новые MultiXactId, во избежание " -"потери данных из-за зацикливания в базе данных \"%s\"" +"база данных не принимает команды, назначающие новые MultiXactId, во " +"избежание потери данных из-за зацикливания в базе данных \"%s\"" -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1093 access/transam/multixact.c:1100 +#: access/transam/multixact.c:1124 access/transam/multixact.c:1133 +#: access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1813,16 +2023,16 @@ msgstr "" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/multixact.c:1030 +#: access/transam/multixact.c:1098 #, c-format msgid "" -"database is not accepting commands that generate new MultiXactIds to avoid " +"database is not accepting commands that assign new MultiXactIds to avoid " "wraparound data loss in database with OID %u" msgstr "" -"база данных не принимает команды, создающие новые MultiXactId, во избежание " -"потери данных из-за зацикливания в базе данных с OID %u" +"база данных не принимает команды, назначающие новые MultiXactId, во " +"избежание потери данных из-за зацикливания в базе данных с OID %u" -#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1119 access/transam/multixact.c:2474 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "" @@ -1837,7 +2047,7 @@ msgstr[2] "" "база данных \"%s\" должна быть очищена, прежде чем будут использованы " "оставшиеся MultiXactId (%u)" -#: access/transam/multixact.c:1060 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1128 access/transam/multixact.c:2483 #, c-format msgid "" "database with OID %u must be vacuumed before %u more MultiXactId is used" @@ -1853,12 +2063,12 @@ msgstr[2] "" "база данных с OID %u должна быть очищена, прежде чем будут использованы " "оставшиеся MultiXactId (%u)" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1189 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "слишком много членов мультитранзакции" -#: access/transam/multixact.c:1122 +#: access/transam/multixact.c:1190 #, c-format msgid "" "This command would create a multixact with %u members, but the remaining " @@ -1876,17 +2086,17 @@ msgstr[2] "" "Мультитранзакция, создаваемая этой командой, должна включать членов: %u, но " "оставшегося места хватает только для %u." -#: access/transam/multixact.c:1127 +#: access/transam/multixact.c:1195 #, c-format msgid "" "Execute a database-wide VACUUM in database with OID %u with reduced " -"vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age " -"settings." +"\"vacuum_multixact_freeze_min_age\" and " +"\"vacuum_multixact_freeze_table_age\" settings." msgstr "" "Выполните очистку (VACUUM) всей базы данных с OID %u, уменьшив значения " -"vacuum_multixact_freeze_min_age и vacuum_multixact_freeze_table_age." +"\"vacuum_multixact_freeze_min_age\" и \"vacuum_multixact_freeze_table_age\"." -#: access/transam/multixact.c:1158 +#: access/transam/multixact.c:1226 #, c-format msgid "" "database with OID %u must be vacuumed before %d more multixact member is used" @@ -1903,41 +2113,40 @@ msgstr[2] "" "база данных с OID %u должна быть очищена, пока не использованы оставшиеся " "члены мультитранзакций (%d)" -#: access/transam/multixact.c:1163 +#: access/transam/multixact.c:1231 #, c-format msgid "" "Execute a database-wide VACUUM in that database with reduced " -"vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age " -"settings." +"\"vacuum_multixact_freeze_min_age\" and " +"\"vacuum_multixact_freeze_table_age\" settings." msgstr "" "Выполните очистку (VACUUM) всей этой базы данных, уменьшив значения " -"vacuum_multixact_freeze_min_age и vacuum_multixact_freeze_table_age." +"\"vacuum_multixact_freeze_min_age\" и \"vacuum_multixact_freeze_table_age\"." -#: access/transam/multixact.c:1302 +#: access/transam/multixact.c:1371 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u прекратил существование: видимо, произошло зацикливание" -#: access/transam/multixact.c:1308 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ещё не был создан: видимо, произошло зацикливание" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2479 access/transam/multixact.c:2488 #, c-format msgid "" -"To avoid a database shutdown, execute a database-wide VACUUM in that " -"database.\n" +"To avoid MultiXactId assignment failures, execute a database-wide VACUUM in " +"that database.\n" "You might also need to commit or roll back old prepared transactions, or " "drop stale replication slots." msgstr "" -"Во избежание отключения базы данных выполните очистку (VACUUM) всей базы.\n" +"Во избежание сбоев при назначении MultiXactId, выполните очистку (VACUUM) " +"всей базы.\n" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2767 #, c-format msgid "" "MultiXact member wraparound protections are disabled because oldest " @@ -1946,12 +2155,12 @@ msgstr "" "Защита от зацикливания членов мультитранзакций отключена, так как старейшая " "отмеченная мультитранзакция %u не найдена на диске" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2789 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Защита от зацикливания мультитранзакций сейчас включена" -#: access/transam/multixact.c:3027 +#: access/transam/multixact.c:3180 #, c-format msgid "" "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" @@ -1959,7 +2168,7 @@ msgstr "" "старейшая мультитранзакция %u не найдена, новейшая мультитранзакция: %u, " "усечение пропускается" -#: access/transam/multixact.c:3045 +#: access/transam/multixact.c:3198 #, c-format msgid "" "cannot truncate up to MultiXact %u because it does not exist on disk, " @@ -1968,167 +2177,172 @@ msgstr "" "выполнить усечение до мультитранзакции %u нельзя ввиду её отсутствия на " "диске, усечение пропускается" -#: access/transam/multixact.c:3359 +#: access/transam/multixact.c:3517 #, c-format msgid "invalid MultiXactId: %u" msgstr "неверный MultiXactId: %u" -#: access/transam/parallel.c:729 access/transam/parallel.c:848 +#: access/transam/parallel.c:748 access/transam/parallel.c:867 #, c-format msgid "parallel worker failed to initialize" msgstr "не удалось инициализировать параллельный исполнитель" -#: access/transam/parallel.c:730 access/transam/parallel.c:849 +#: access/transam/parallel.c:749 access/transam/parallel.c:868 #, c-format msgid "More details may be available in the server log." msgstr "Дополнительная информация может быть в журнале сервера." -#: access/transam/parallel.c:910 +#: access/transam/parallel.c:929 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершился в процессе параллельной транзакции" -#: access/transam/parallel.c:1097 +#: access/transam/parallel.c:1116 #, c-format msgid "lost connection to parallel worker" msgstr "потеряно подключение к параллельному исполнителю" -#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 +#: access/transam/parallel.c:1172 access/transam/parallel.c:1174 msgid "parallel worker" msgstr "параллельный исполнитель" -#: access/transam/parallel.c:1319 replication/logical/applyparallelworker.c:893 +#: access/transam/parallel.c:1344 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не удалось отобразить динамический сегмент разделяемой памяти" -#: access/transam/parallel.c:1324 replication/logical/applyparallelworker.c:899 +#: access/transam/parallel.c:1349 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неверное магическое число в динамическом сегменте разделяемой памяти" -#: access/transam/rmgr.c:84 +#: access/transam/rmgr.c:93 #, c-format msgid "resource manager with ID %d not registered" msgstr "менеджер ресурсов с ID %d не зарегистрирован" -#: access/transam/rmgr.c:85 +#: access/transam/rmgr.c:94 #, c-format msgid "" "Include the extension module that implements this resource manager in " -"shared_preload_libraries." +"\"shared_preload_libraries\"." msgstr "" -"Включите в shared_preload_libraries модуль расширения, в котором реализован " -"данный менеджер ресурсов." +"Включите в \"shared_preload_libraries\" модуль расширения, в котором " +"реализован данный менеджер ресурсов." -#: access/transam/rmgr.c:101 +#: access/transam/rmgr.c:110 #, c-format msgid "custom resource manager name is invalid" msgstr "неверное имя пользовательского менеджера ресурсов" -#: access/transam/rmgr.c:102 +#: access/transam/rmgr.c:111 #, c-format msgid "Provide a non-empty name for the custom resource manager." msgstr "Задайте непустое имя для менеджера ресурсов." -#: access/transam/rmgr.c:105 +#: access/transam/rmgr.c:114 #, c-format msgid "custom resource manager ID %d is out of range" msgstr "идентификатор пользовательского менеджера ресурсов %d вне диапазона" -#: access/transam/rmgr.c:106 +#: access/transam/rmgr.c:115 #, c-format msgid "Provide a custom resource manager ID between %d and %d." msgstr "Задайте идентификатор менеджера ресурсов от %d до %d." -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:120 access/transam/rmgr.c:125 +#: access/transam/rmgr.c:137 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" msgstr "" "не удалось зарегистрировать пользовательский менеджер ресурсов \"%s\" с ID %d" -#: access/transam/rmgr.c:112 +#: access/transam/rmgr.c:121 #, c-format msgid "" "Custom resource manager must be registered while initializing modules in " -"shared_preload_libraries." +"\"shared_preload_libraries\"." msgstr "" "Пользовательский менеджер ресурсов должен быть зарегистрирован при " -"инициализации модулей в shared_preload_libraries." +"инициализации модулей в \"shared_preload_libraries\"." -#: access/transam/rmgr.c:117 +#: access/transam/rmgr.c:126 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." msgstr "" "Пользовательский менеджер ресурсов \"%s\" уже зарегистрирован с тем же ID." -#: access/transam/rmgr.c:129 +#: access/transam/rmgr.c:138 #, c-format msgid "Existing resource manager with ID %d has the same name." msgstr "Существующий менеджер ресурсов с ID %d имеет то же имя." -#: access/transam/rmgr.c:135 +#: access/transam/rmgr.c:144 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" msgstr "зарегистрирован пользовательский менеджер ресурсов \"%s\" с ID %d" -#: access/transam/slru.c:714 +#: access/transam/slru.c:361 +#, c-format +msgid "\"%s\" must be a multiple of %d" +msgstr "значение \"%s\" должно быть кратно %d" + +#: access/transam/slru.c:830 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "файл \"%s\" не существует, считается нулевым" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:1059 access/transam/slru.c:1065 +#: access/transam/slru.c:1073 access/transam/slru.c:1078 +#: access/transam/slru.c:1085 access/transam/slru.c:1090 +#: access/transam/slru.c:1097 access/transam/slru.c:1104 #, c-format msgid "could not access status of transaction %u" msgstr "не удалось получить состояние транзакции %u" -#: access/transam/slru.c:947 +#: access/transam/slru.c:1060 #, c-format msgid "Could not open file \"%s\": %m." msgstr "Не удалось открыть файл \"%s\": %m." -#: access/transam/slru.c:953 +#: access/transam/slru.c:1066 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "Не удалось переместиться в файле \"%s\" к смещению %d: %m." -#: access/transam/slru.c:961 +#: access/transam/slru.c:1074 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "Не удалось прочитать файл \"%s\" (по смещению %d): %m." -#: access/transam/slru.c:966 +#: access/transam/slru.c:1079 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "" "Не удалось прочитать файл \"%s\" (по смещению %d): прочитаны не все байты." -#: access/transam/slru.c:973 +#: access/transam/slru.c:1086 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "Не удалось записать в файл \"%s\" (по смещению %d): %m." -#: access/transam/slru.c:978 +#: access/transam/slru.c:1091 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "" "Не удалось записать в файл \"%s\" (по смещению %d): записаны не все байты." -#: access/transam/slru.c:985 +#: access/transam/slru.c:1098 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "Не удалось синхронизировать с ФС файл \"%s\": %m." -#: access/transam/slru.c:992 +#: access/transam/slru.c:1105 #, c-format msgid "Could not close file \"%s\": %m." msgstr "Не удалось закрыть файл \"%s\": %m." -#: access/transam/slru.c:1253 +#: access/transam/slru.c:1431 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "не удалось очистить каталог \"%s\": видимо, произошло зацикливание" @@ -2174,59 +2388,60 @@ msgstr "" msgid "requested timeline %u is not in this server's history" msgstr "в истории сервера нет запрошенной линии времени %u" -#: access/transam/twophase.c:386 +#: access/transam/twophase.c:368 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "идентификатор транзакции \"%s\" слишком длинный" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:375 #, c-format msgid "prepared transactions are disabled" msgstr "подготовленные транзакции отключены" -#: access/transam/twophase.c:394 +#: access/transam/twophase.c:376 #, c-format -msgid "Set max_prepared_transactions to a nonzero value." -msgstr "Установите ненулевое значение параметра max_prepared_transactions." +msgid "Set \"max_prepared_transactions\" to a nonzero value." +msgstr "Установите ненулевое значение параметра \"max_prepared_transactions\"." -#: access/transam/twophase.c:413 +#: access/transam/twophase.c:395 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "идентификатор транзакции \"%s\" уже используется" -#: access/transam/twophase.c:422 access/transam/twophase.c:2517 +#: access/transam/twophase.c:404 access/transam/twophase.c:2531 #, c-format msgid "maximum number of prepared transactions reached" msgstr "достигнут предел числа подготовленных транзакций" -#: access/transam/twophase.c:423 access/transam/twophase.c:2518 +#: access/transam/twophase.c:405 access/transam/twophase.c:2532 #, c-format -msgid "Increase max_prepared_transactions (currently %d)." -msgstr "Увеличьте параметр max_prepared_transactions (текущее значение %d)." +msgid "Increase \"max_prepared_transactions\" (currently %d)." +msgstr "" +"Увеличьте параметр \"max_prepared_transactions\" (текущее значение %d)." -#: access/transam/twophase.c:599 +#: access/transam/twophase.c:580 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "подготовленная транзакция с идентификатором \"%s\" занята" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:586 #, c-format msgid "permission denied to finish prepared transaction" -msgstr "нет доступа для завершения подготовленной транзакции" +msgstr "нет прав для завершения подготовленной транзакции" -#: access/transam/twophase.c:606 +#: access/transam/twophase.c:587 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "" "Это разрешено только суперпользователю и пользователю, подготовившему " "транзакцию." -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:598 #, c-format msgid "prepared transaction belongs to another database" msgstr "подготовленная транзакция относится к другой базе данных" -#: access/transam/twophase.c:618 +#: access/transam/twophase.c:599 #, c-format msgid "" "Connect to the database where the transaction was prepared to finish it." @@ -2235,17 +2450,17 @@ msgstr "" "подготовлена." # [SM]: TO REVIEW -#: access/transam/twophase.c:633 +#: access/transam/twophase.c:614 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "подготовленной транзакции с идентификатором \"%s\" нет" -#: access/transam/twophase.c:1168 +#: access/transam/twophase.c:1174 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "превышен предельный размер файла состояния 2PC" -#: access/transam/twophase.c:1323 +#: access/transam/twophase.c:1329 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" @@ -2253,62 +2468,63 @@ msgstr[0] "некорректный размер файла \"%s\": %lld Б" msgstr[1] "некорректный размер файла \"%s\": %lld Б" msgstr[2] "некорректный размер файла \"%s\": %lld Б" -#: access/transam/twophase.c:1332 +#: access/transam/twophase.c:1338 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "некорректное выравнивание смещения CRC для файла \"%s\"" -#: access/transam/twophase.c:1350 +#: access/transam/twophase.c:1356 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %lld)" -#: access/transam/twophase.c:1365 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "в файле \"%s\" содержится неверная сигнатура" -#: access/transam/twophase.c:1371 +#: access/transam/twophase.c:1377 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "в файле \"%s\" содержится неверный размер" -#: access/transam/twophase.c:1383 +#: access/transam/twophase.c:1389 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "" "вычисленная контрольная сумма (CRC) не соответствует значению, сохранённому " "в файле \"%s\"" -#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:565 +#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211 +#: replication/walsender.c:836 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Не удалось разместить обработчик журнала транзакций." -#: access/transam/twophase.c:1423 +#: access/transam/twophase.c:1429 #, 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:1428 +#: access/transam/twophase.c:1434 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "не удалось прочитать состояние 2PC из WAL в позиции %X/%X" -#: access/transam/twophase.c:1436 +#: access/transam/twophase.c:1442 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "" "ожидаемые данные состояния двухфазной фиксации отсутствуют в WAL в позиции " "%X/%X" -#: access/transam/twophase.c:1732 +#: access/transam/twophase.c:1745 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "пересоздать файл \"%s\" не удалось: %m" -#: access/transam/twophase.c:1859 +#: access/transam/twophase.c:1872 #, c-format msgid "" "%u two-phase state file was written for a long-running prepared transaction" @@ -2321,47 +2537,47 @@ msgstr[1] "" msgstr[2] "" "для длительных подготовленных транзакций записано файлов состояния 2PC: %u" -#: access/transam/twophase.c:2093 +#: access/transam/twophase.c:2107 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "восстановление подготовленной транзакции %u из разделяемой памяти" -#: access/transam/twophase.c:2186 +#: access/transam/twophase.c:2200 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "удаление устаревшего файла состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2193 +#: access/transam/twophase.c:2207 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "удаление из памяти устаревшего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2206 +#: access/transam/twophase.c:2220 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "удаление файла будущего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2213 +#: access/transam/twophase.c:2227 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "удаление из памяти будущего состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2238 +#: access/transam/twophase.c:2252 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "испорчен файл состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2243 +#: access/transam/twophase.c:2257 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "испорчено состояние 2PC в памяти для транзакции %u" -#: access/transam/twophase.c:2500 +#: access/transam/twophase.c:2514 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "не удалось восстановить файл состояния 2PC для транзакции %u" -#: access/transam/twophase.c:2502 +#: access/transam/twophase.c:2516 #, c-format msgid "" "Two-phase state file has been found in WAL record %X/%X, but this " @@ -2370,172 +2586,194 @@ msgstr "" "Для WAL-записи %X/%X найден файл состояния двухфазной фиксации, но эта " "транзакция уже была восстановлена с диска." -#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 -#: utils/fmgr/dfmgr.c:415 +#: access/transam/twophase.c:2524 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 #, c-format msgid "could not access file \"%s\": %m" -msgstr "нет доступа к файлу \"%s\": %m" +msgstr "ошибка при обращении к файлу \"%s\": %m" -#: access/transam/varsup.c:129 +#: access/transam/varsup.c:156 #, c-format msgid "" -"database is not accepting commands to avoid wraparound data loss in database " +"database is not accepting commands that assign new transaction IDs to avoid " +"wraparound data loss in database \"%s\"" +msgstr "" +"база данных не принимает команды, назначающие новые идентификаторы " +"транзакций, во избежание потери данных из-за зацикливания в базе данных " "\"%s\"" + +#: access/transam/varsup.c:163 +#, c-format +msgid "" +"database is not accepting commands that assign new transaction IDs to avoid " +"wraparound data loss in database with OID %u" +msgstr "" +"база данных не принимает команды, назначающие новые идентификаторы " +"транзакций, во избежание потери данных из-за зацикливания в базе данных с " +"OID %u" + +#: access/transam/varsup.c:175 access/transam/varsup.c:490 +#, c-format +msgid "database \"%s\" must be vacuumed within %u transactions" msgstr "" -"база данных не принимает команды во избежание потери данных из-за " -"зацикливания транзакций в базе данных \"%s\"" +"база данных \"%s\" должна быть очищена (предельное число транзакций: %u)" -#: access/transam/varsup.c:131 access/transam/varsup.c:138 +#: access/transam/varsup.c:178 #, c-format msgid "" -"Stop the postmaster and vacuum that database in single-user mode.\n" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM " +"in that database.\n" "You might also need to commit or roll back old prepared transactions, or " "drop stale replication slots." msgstr "" -"Остановите управляющий процесс (postmaster) и выполните очистку (VACUUM) " -"базы данных в монопольном режиме.\n" +"Во избежание сбоев при назначении идентификаторов транзакций, выполните " +"очистку (VACUUM) всей базы.\n" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/varsup.c:136 +#: access/transam/varsup.c:182 access/transam/varsup.c:497 #, c-format -msgid "" -"database is not accepting commands to avoid wraparound data loss in database " -"with OID %u" +msgid "database with OID %u must be vacuumed within %u transactions" msgstr "" -"база данных не принимает команды во избежание потери данных из-за " -"зацикливания транзакций в базе данных с OID %u" +"база данных с OID %u должна быть очищена (предельное число транзакций: %u)" -#: access/transam/varsup.c:148 access/transam/varsup.c:463 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 +#: access/transam/varsup.c:500 #, c-format -msgid "database \"%s\" must be vacuumed within %u transactions" +msgid "" +"To avoid XID assignment failures, execute a database-wide VACUUM in that " +"database.\n" +"You might also need to commit or roll back old prepared transactions, or " +"drop stale replication slots." msgstr "" -"база данных \"%s\" должна быть очищена (предельное число транзакций: %u)" +"Во избежание сбоев при назначении XID, выполните очистку (VACUUM) всей " +"базы.\n" +"Возможно, вам также придётся зафиксировать или откатить старые " +"подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/varsup.c:155 access/transam/varsup.c:470 +#: access/transam/xact.c:649 #, c-format -msgid "database with OID %u must be vacuumed within %u transactions" +msgid "cannot assign transaction IDs during a parallel operation" msgstr "" -"база данных с OID %u должна быть очищена (предельное число транзакций: %u)" +"идентификаторы транзакций не могут назначаться во время параллельных операций" + +#: access/transam/xact.c:840 +#, c-format +msgid "cannot modify data in a parallel worker" +msgstr "модифицировать данные в параллельном исполнителе нельзя" -#: access/transam/xact.c:1102 +#: access/transam/xact.c:1115 +#, c-format +msgid "cannot start commands during a parallel operation" +msgstr "начинать команды во время параллельной операции нельзя" + +#: access/transam/xact.c:1123 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одной транзакции не может быть больше 2^32-2 команд" -#: access/transam/xact.c:1643 +#: access/transam/xact.c:1664 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "превышен предел числа зафиксированных подтранзакций (%d)" -#: access/transam/xact.c:2513 +#: access/transam/xact.c:2561 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "" "нельзя выполнить PREPARE для транзакции, оперирующей с временными объектами" -#: access/transam/xact.c:2523 +#: access/transam/xact.c:2571 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "нельзя выполнить PREPARE для транзакции, снимки которой экспортированы" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3490 +#: access/transam/xact.c:3593 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s не может выполняться внутри блока транзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3500 +#: access/transam/xact.c:3603 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s не может выполняться внутри подтранзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3510 +#: access/transam/xact.c:3613 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s нельзя выполнять в конвейере" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3520 +#: access/transam/xact.c:3623 #, c-format msgid "%s cannot be executed from a function" msgstr "%s нельзя выполнять внутри функции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3591 access/transam/xact.c:3916 -#: access/transam/xact.c:3995 access/transam/xact.c:4118 -#: access/transam/xact.c:4269 access/transam/xact.c:4338 -#: access/transam/xact.c:4449 +#: access/transam/xact.c:3694 access/transam/xact.c:4019 +#: access/transam/xact.c:4098 access/transam/xact.c:4221 +#: access/transam/xact.c:4372 access/transam/xact.c:4441 +#: access/transam/xact.c:4552 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s может выполняться только внутри блоков транзакций" -#: access/transam/xact.c:3802 +#: access/transam/xact.c:3905 #, c-format msgid "there is already a transaction in progress" msgstr "транзакция уже выполняется" -#: access/transam/xact.c:3921 access/transam/xact.c:4000 -#: access/transam/xact.c:4123 +#: access/transam/xact.c:4024 access/transam/xact.c:4103 +#: access/transam/xact.c:4226 #, c-format msgid "there is no transaction in progress" msgstr "нет незавершённой транзакции" -#: access/transam/xact.c:4011 +#: access/transam/xact.c:4114 #, c-format msgid "cannot commit during a parallel operation" msgstr "фиксировать транзакции во время параллельных операций нельзя" -#: access/transam/xact.c:4134 +#: access/transam/xact.c:4237 #, c-format msgid "cannot abort during a parallel operation" msgstr "прерывание во время параллельных операций невозможно" -#: access/transam/xact.c:4233 +#: access/transam/xact.c:4336 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "определять точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4320 +#: access/transam/xact.c:4423 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "высвобождать точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4330 access/transam/xact.c:4381 -#: access/transam/xact.c:4441 access/transam/xact.c:4490 +#: access/transam/xact.c:4433 access/transam/xact.c:4484 +#: access/transam/xact.c:4544 access/transam/xact.c:4593 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка сохранения \"%s\" не существует" -#: access/transam/xact.c:4387 access/transam/xact.c:4496 +#: access/transam/xact.c:4490 access/transam/xact.c:4599 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "" "точка сохранения \"%s\" на текущем уровне точек сохранения не существует" -#: access/transam/xact.c:4429 +#: access/transam/xact.c:4532 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "откатиться к точке сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4557 -#, c-format -msgid "cannot start subtransactions during a parallel operation" -msgstr "запускать подтранзакции во время параллельных операций нельзя" - -#: access/transam/xact.c:4625 -#, c-format -msgid "cannot commit subtransactions during a parallel operation" -msgstr "фиксировать подтранзакции во время параллельных операций нельзя" - -#: access/transam/xact.c:5271 +#: access/transam/xact.c:5376 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одной транзакции не может быть больше 2^32-1 подтранзакций" -#: access/transam/xlog.c:1468 +#: access/transam/xlog.c:1542 #, c-format msgid "" "request to flush past end of generated WAL; request %X/%X, current position " @@ -2544,55 +2782,78 @@ msgstr "" "запрос на сброс данных за концом сгенерированного WAL; запрошена позиция %X/" "%X, текущая позиция %X/%X" -#: access/transam/xlog.c:2230 +#: access/transam/xlog.c:1769 +#, c-format +msgid "" +"cannot read past end of generated WAL: requested %X/%X, current position %X/" +"%X" +msgstr "" +"чтение за концом сгенерированного WAL невозможно: запрошена позиция %X/%X, " +"текущая позиция %X/%X" + +#: access/transam/xlog.c:2210 access/transam/xlog.c:4501 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "" +"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 ГБ." + +#: access/transam/xlog.c:2228 +#, c-format +msgid "\"%s\" must be set to -1 during binary upgrade mode." +msgstr "Параметр \"%s\" должен быть равен -1 в режиме двоичного обновления." + +#: access/transam/xlog.c:2477 #, c-format -msgid "could not write to log file %s at offset %u, length %zu: %m" -msgstr "не удалось записать в файл журнала %s (смещение: %u, длина: %zu): %m" +msgid "could not write to log file \"%s\" at offset %u, length %zu: %m" +msgstr "" +"не удалось записать в файл журнала \"%s\" (смещение: %u, длина: %zu): %m" -#: access/transam/xlog.c:3457 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:3739 access/transam/xlogutils.c:831 +#: replication/walsender.c:3045 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запрошенный сегмент WAL %s уже удалён" -#: access/transam/xlog.c:3741 +#: access/transam/xlog.c:4061 #, c-format msgid "could not rename file \"%s\": %m" msgstr "не удалось переименовать файл \"%s\": %m" -#: access/transam/xlog.c:3783 access/transam/xlog.c:3793 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4115 +#: access/transam/xlog.c:4136 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "требуемый каталог WAL \"%s\" не существует" -#: access/transam/xlog.c:3799 +#: access/transam/xlog.c:4121 access/transam/xlog.c:4142 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "создаётся отсутствующий каталог WAL \"%s\"" -#: access/transam/xlog.c:3802 commands/dbcommands.c:3172 +#: access/transam/xlog.c:4125 access/transam/xlog.c:4145 +#: commands/dbcommands.c:3262 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не удалось создать отсутствующий каталог \"%s\": %m" -#: access/transam/xlog.c:3869 +#: access/transam/xlog.c:4212 #, c-format msgid "could not generate secret authorization token" msgstr "не удалось сгенерировать случайное число для аутентификации" -#: access/transam/xlog.c:4019 access/transam/xlog.c:4028 -#: access/transam/xlog.c:4052 access/transam/xlog.c:4059 -#: access/transam/xlog.c:4066 access/transam/xlog.c:4071 -#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 -#: access/transam/xlog.c:4092 access/transam/xlog.c:4099 -#: access/transam/xlog.c:4106 access/transam/xlog.c:4113 -#: access/transam/xlog.c:4122 access/transam/xlog.c:4129 -#: utils/init/miscinit.c:1769 +#: access/transam/xlog.c:4363 access/transam/xlog.c:4373 +#: access/transam/xlog.c:4399 access/transam/xlog.c:4407 +#: access/transam/xlog.c:4415 access/transam/xlog.c:4421 +#: access/transam/xlog.c:4429 access/transam/xlog.c:4437 +#: access/transam/xlog.c:4445 access/transam/xlog.c:4453 +#: access/transam/xlog.c:4461 access/transam/xlog.c:4469 +#: access/transam/xlog.c:4479 access/transam/xlog.c:4487 +#: utils/init/miscinit.c:1812 #, c-format msgid "database files are incompatible with server" msgstr "файлы базы данных несовместимы с сервером" -#: access/transam/xlog.c:4020 +#: access/transam/xlog.c:4364 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), " @@ -2601,7 +2862,7 @@ msgstr "" "Кластер баз данных был инициализирован с PG_CONTROL_VERSION %d (0x%08x), но " "сервер скомпилирован с PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4024 +#: access/transam/xlog.c:4368 #, c-format msgid "" "This could be a problem of mismatched byte ordering. It looks like you need " @@ -2610,7 +2871,7 @@ msgstr "" "Возможно, проблема вызвана разным порядком байт. Кажется, вам надо выполнить " "initdb." -#: access/transam/xlog.c:4029 +#: access/transam/xlog.c:4374 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d, but the " @@ -2619,18 +2880,18 @@ msgstr "" "Кластер баз данных был инициализирован с PG_CONTROL_VERSION %d, но сервер " "скомпилирован с PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4032 access/transam/xlog.c:4056 -#: access/transam/xlog.c:4063 access/transam/xlog.c:4068 +#: access/transam/xlog.c:4377 access/transam/xlog.c:4403 +#: access/transam/xlog.c:4411 access/transam/xlog.c:4417 #, c-format msgid "It looks like you need to initdb." msgstr "Кажется, вам надо выполнить initdb." -#: access/transam/xlog.c:4043 +#: access/transam/xlog.c:4389 #, c-format msgid "incorrect checksum in control file" msgstr "ошибка контрольной суммы в файле pg_control" -#: access/transam/xlog.c:4053 +#: access/transam/xlog.c:4400 #, c-format msgid "" "The database cluster was initialized with CATALOG_VERSION_NO %d, but the " @@ -2639,7 +2900,7 @@ msgstr "" "Кластер баз данных был инициализирован с CATALOG_VERSION_NO %d, но сервер " "скомпилирован с CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4060 +#: access/transam/xlog.c:4408 #, c-format msgid "" "The database cluster was initialized with MAXALIGN %d, but the server was " @@ -2648,7 +2909,7 @@ msgstr "" "Кластер баз данных был инициализирован с MAXALIGN %d, но сервер " "скомпилирован с MAXALIGN %d." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4416 #, c-format msgid "" "The database cluster appears to use a different floating-point number format " @@ -2657,7 +2918,7 @@ msgstr "" "Кажется, в кластере баз данных и в программе сервера используются разные " "форматы чисел с плавающей точкой." -#: access/transam/xlog.c:4072 +#: access/transam/xlog.c:4422 #, c-format msgid "" "The database cluster was initialized with BLCKSZ %d, but the server was " @@ -2666,16 +2927,16 @@ msgstr "" "Кластер баз данных был инициализирован с BLCKSZ %d, но сервер скомпилирован " "с BLCKSZ %d." -#: access/transam/xlog.c:4075 access/transam/xlog.c:4082 -#: access/transam/xlog.c:4089 access/transam/xlog.c:4096 -#: access/transam/xlog.c:4103 access/transam/xlog.c:4110 -#: access/transam/xlog.c:4117 access/transam/xlog.c:4125 -#: access/transam/xlog.c:4132 +#: access/transam/xlog.c:4425 access/transam/xlog.c:4433 +#: access/transam/xlog.c:4441 access/transam/xlog.c:4449 +#: access/transam/xlog.c:4457 access/transam/xlog.c:4465 +#: access/transam/xlog.c:4473 access/transam/xlog.c:4482 +#: access/transam/xlog.c:4490 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Кажется, вам надо перекомпилировать сервер или выполнить initdb." -#: access/transam/xlog.c:4079 +#: access/transam/xlog.c:4430 #, c-format msgid "" "The database cluster was initialized with RELSEG_SIZE %d, but the server was " @@ -2684,7 +2945,7 @@ msgstr "" "Кластер баз данных был инициализирован с RELSEG_SIZE %d, но сервер " "скомпилирован с RELSEG_SIZE %d." -#: access/transam/xlog.c:4086 +#: access/transam/xlog.c:4438 #, c-format msgid "" "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was " @@ -2693,7 +2954,7 @@ msgstr "" "Кластер баз данных был инициализирован с XLOG_BLCKSZ %d, но сервер " "скомпилирован с XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4093 +#: access/transam/xlog.c:4446 #, c-format msgid "" "The database cluster was initialized with NAMEDATALEN %d, but the server was " @@ -2702,7 +2963,7 @@ msgstr "" "Кластер баз данных был инициализирован с NAMEDATALEN %d, но сервер " "скомпилирован с NAMEDATALEN %d." -#: access/transam/xlog.c:4100 +#: access/transam/xlog.c:4454 #, c-format msgid "" "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server " @@ -2711,7 +2972,7 @@ msgstr "" "Кластер баз данных был инициализирован с INDEX_MAX_KEYS %d, но сервер " "скомпилирован с INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4107 +#: access/transam/xlog.c:4462 #, c-format msgid "" "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the " @@ -2720,7 +2981,7 @@ msgstr "" "Кластер баз данных был инициализирован с TOAST_MAX_CHUNK_SIZE %d, но сервер " "скомпилирован с TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4114 +#: access/transam/xlog.c:4470 #, c-format msgid "" "The database cluster was initialized with LOBLKSIZE %d, but the server was " @@ -2729,7 +2990,7 @@ msgstr "" "Кластер баз данных был инициализирован с LOBLKSIZE %d, но сервер " "скомпилирован с LOBLKSIZE %d." -#: access/transam/xlog.c:4123 +#: access/transam/xlog.c:4480 #, c-format msgid "" "The database cluster was initialized without USE_FLOAT8_BYVAL but the server " @@ -2738,7 +2999,7 @@ msgstr "" "Кластер баз данных был инициализирован без USE_FLOAT8_BYVAL, но сервер " "скомпилирован с USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4488 #, c-format msgid "" "The database cluster was initialized with USE_FLOAT8_BYVAL but the server " @@ -2747,107 +3008,100 @@ msgstr "" "Кластер баз данных был инициализирован с USE_FLOAT8_BYVAL, но сервер был " "скомпилирован без USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4139 +#: access/transam/xlog.c:4497 #, 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 должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" -msgstr[1] "" -"размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" -msgstr[2] "" -"размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[1] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[2] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" -#: access/transam/xlog.c:4151 +#: access/transam/xlog.c:4510 #, 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:4155 +#: access/transam/xlog.c:4514 #, 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:4310 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 -#: utils/error/elog.c:2209 +#: access/transam/xlog.c:4662 catalog/namespace.c:4696 +#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 +#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247 #, c-format msgid "List syntax is invalid." msgstr "Ошибка синтаксиса в списке." -#: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 -#: utils/error/elog.c:2235 +#: access/transam/xlog.c:4708 commands/user.c:2545 commands/variable.c:173 +#: tcop/postgres.c:3731 utils/error/elog.c:2273 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "нераспознанное ключевое слово: \"%s\"." -#: access/transam/xlog.c:4770 +#: access/transam/xlog.c:5129 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не удалось записать начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:4778 +#: access/transam/xlog.c:5137 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не удалось сбросить на диск начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:4784 +#: access/transam/xlog.c:5143 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не удалось закрыть начальный файл журнала предзаписи: %m" -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5368 #, c-format -msgid "WAL was generated with wal_level=minimal, cannot continue recovering" +msgid "" +"WAL was generated with \"wal_level=minimal\", cannot continue recovering" msgstr "" -"WAL был создан с параметром wal_level=minimal, продолжение восстановления " -"невозможно" +"WAL был создан с параметром \"wal_level=minimal\", продолжение " +"восстановления невозможно" -#: access/transam/xlog.c:5002 +#: access/transam/xlog.c:5369 #, c-format -msgid "This happens if you temporarily set wal_level=minimal on the server." -msgstr "Это происходит, если вы на время устанавливали wal_level=minimal." +msgid "" +"This happens if you temporarily set \"wal_level=minimal\" on the server." +msgstr "Это происходит, если вы на время устанавливали \"wal_level=minimal\"." -#: access/transam/xlog.c:5003 +#: access/transam/xlog.c:5370 #, c-format -msgid "Use a backup taken after setting wal_level to higher than minimal." +msgid "" +"Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." msgstr "" -"Используйте резервную копию, сделанную после переключения wal_level на любой " -"уровень выше minimal." +"Используйте резервную копию, сделанную после переключения \"wal_level\" на " +"любой уровень выше \"minimal\"." -#: access/transam/xlog.c:5067 +#: access/transam/xlog.c:5435 #, c-format msgid "control file contains invalid checkpoint location" msgstr "файл pg_control содержит неправильную позицию контрольной точки" -#: access/transam/xlog.c:5078 +#: access/transam/xlog.c:5446 #, c-format msgid "database system was shut down at %s" msgstr "система БД была выключена: %s" -#: access/transam/xlog.c:5084 +#: access/transam/xlog.c:5452 #, c-format msgid "database system was shut down in recovery at %s" msgstr "система БД была выключена в процессе восстановления: %s" -#: access/transam/xlog.c:5090 +#: access/transam/xlog.c:5458 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "выключение системы БД было прервано; последний момент работы: %s" -#: access/transam/xlog.c:5096 +#: access/transam/xlog.c:5464 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "работа системы БД была прервана во время восстановления: %s" -#: access/transam/xlog.c:5098 +#: access/transam/xlog.c:5466 #, c-format msgid "" "This probably means that some data is corrupted and you will have to use the " @@ -2856,14 +3110,14 @@ msgstr "" "Это скорее всего означает, что некоторые данные повреждены и вам придётся " "восстановить БД из последней резервной копии." -#: access/transam/xlog.c:5104 +#: access/transam/xlog.c:5472 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "" "работа системы БД была прервана в процессе восстановления, время в журнале: " "%s" -#: access/transam/xlog.c:5106 +#: access/transam/xlog.c:5474 #, c-format msgid "" "If this has occurred more than once some data might be corrupted and you " @@ -2872,22 +3126,22 @@ msgstr "" "Если это происходит постоянно, возможно, какие-то данные были испорчены и " "для восстановления стоит выбрать более раннюю точку." -#: access/transam/xlog.c:5112 +#: access/transam/xlog.c:5480 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "работа системы БД была прервана; последний момент работы: %s" -#: access/transam/xlog.c:5118 +#: access/transam/xlog.c:5487 #, c-format msgid "control file contains invalid database cluster state" msgstr "файл pg_control содержит неверный код состояния кластера" -#: access/transam/xlog.c:5502 +#: access/transam/xlog.c:5875 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL закончился без признака окончания копирования" -#: access/transam/xlog.c:5503 +#: access/transam/xlog.c:5876 #, c-format msgid "" "All WAL generated while online backup was taken must be available at " @@ -2896,40 +3150,40 @@ msgstr "" "Все журналы WAL, созданные во время резервного копирования \"на ходу\", " "должны быть в наличии для восстановления." -#: access/transam/xlog.c:5506 +#: access/transam/xlog.c:5880 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL закончился до согласованной точки восстановления" -#: access/transam/xlog.c:5552 +#: access/transam/xlog.c:5926 #, c-format msgid "selected new timeline ID: %u" msgstr "выбранный ID новой линии времени: %u" -#: access/transam/xlog.c:5585 +#: access/transam/xlog.c:5959 #, c-format msgid "archive recovery complete" msgstr "восстановление архива завершено" -#: access/transam/xlog.c:6191 +#: access/transam/xlog.c:6612 #, c-format msgid "shutting down" msgstr "выключение" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6230 +#: access/transam/xlog.c:6651 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "начата точка перезапуска:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6242 +#: access/transam/xlog.c:6663 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "начата контрольная точка:%s%s%s%s%s%s%s%s" # well-spelled: синхр -#: access/transam/xlog.c:6307 +#: access/transam/xlog.c:6728 #, c-format msgid "" "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2944,7 +3198,7 @@ msgstr "" "lsn=%X/%X, lsn redo=%X/%X" # well-spelled: синхр -#: access/transam/xlog.c:6330 +#: access/transam/xlog.c:6751 #, c-format msgid "" "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2958,7 +3212,7 @@ msgstr "" "=%ld.%03d сек., средняя=%ld.%03d сек.; расстояние=%d kB, ожидалось=%d kB; " "lsn=%X/%X, lsn redo=%X/%X" -#: access/transam/xlog.c:6768 +#: access/transam/xlog.c:7233 #, c-format msgid "" "concurrent write-ahead log activity while database system is shutting down" @@ -2966,111 +3220,119 @@ msgstr "" "во время выключения системы баз данных отмечена активность в журнале " "предзаписи" -#: access/transam/xlog.c:7329 +#: access/transam/xlog.c:7818 #, c-format msgid "recovery restart point at %X/%X" msgstr "точка перезапуска восстановления в позиции %X/%X" -#: access/transam/xlog.c:7331 +#: access/transam/xlog.c:7820 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Последняя завершённая транзакция была выполнена в %s." -#: access/transam/xlog.c:7579 +#: access/transam/xlog.c:8082 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка восстановления \"%s\" создана в позиции %X/%X" -#: access/transam/xlog.c:7786 +#: access/transam/xlog.c:8289 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "" "резервное копирование \"на ходу\" было отменено, продолжить восстановление " "нельзя" -#: access/transam/xlog.c:7843 +#: access/transam/xlog.c:8347 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи точки выключения" -#: access/transam/xlog.c:7901 +#: access/transam/xlog.c:8405 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи точки активности" -#: access/transam/xlog.c:7930 +#: access/transam/xlog.c:8434 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи конец-" "восстановления" -#: access/transam/xlog.c:8197 +#: access/transam/xlog.c:8705 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл сквозной записи %s: %m" -#: access/transam/xlog.c:8202 +#: access/transam/xlog.c:8710 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС данные (fdatasync) файла \"%s\": %m" -#: access/transam/xlog.c:8287 access/transam/xlog.c:8610 +#: access/transam/xlog.c:8797 access/transam/xlog.c:9133 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "" "Выбранный уровень WAL недостаточен для резервного копирования \"на ходу\"" -#: access/transam/xlog.c:8288 access/transam/xlog.c:8611 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8798 access/transam/xlogfuncs.c:248 #, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." -msgstr "Установите wal_level \"replica\" или \"logical\" при запуске сервера." +msgid "" +"\"wal_level\" must be set to \"replica\" or \"logical\" at server start." +msgstr "" +"Параметр \"wal_level\" должен иметь значение \"replica\" или \"logical\" при " +"запуске сервера." -#: access/transam/xlog.c:8293 +#: access/transam/xlog.c:8803 #, c-format msgid "backup label too long (max %d bytes)" msgstr "длина метки резервной копии превышает предел (%d байт)" -#: access/transam/xlog.c:8414 +#: access/transam/xlog.c:8924 #, c-format msgid "" -"WAL generated with full_page_writes=off was replayed since last restartpoint" +"WAL generated with \"full_page_writes=off\" was replayed since last " +"restartpoint" msgstr "" -"После последней точки перезапуска был воспроизведён WAL, созданный в режиме " -"full_page_writes=off." +"после последней точки перезапуска был воспроизведён WAL, созданный в режиме " +"\"full_page_writes=off\"" -#: access/transam/xlog.c:8416 access/transam/xlog.c:8699 +#: access/transam/xlog.c:8926 access/transam/xlog.c:9222 #, 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 primary, and " -"then try an online backup again." +"not be used. Enable \"full_page_writes\" and run CHECKPOINT on the primary, " +"and then try an online backup again." msgstr "" -"Это означает, что резервная копия, сделанная на дежурном сервере, испорчена " -"и использовать её не следует. Включите режим full_page_writes и выполните " +"Это означает, что резервная копия, сделанная на ведомом сервере, испорчена и " +"использовать её не следует. Включите режим \"full_page_writes\" и выполните " "CHECKPOINT на ведущем сервере, а затем попробуйте резервное копирование \"на " "ходу\" ещё раз." -#: access/transam/xlog.c:8483 backup/basebackup.c:1355 utils/adt/misc.c:354 +#: access/transam/xlog.c:9006 backup/basebackup.c:1417 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не удалось прочитать символическую ссылку \"%s\": %m" -#: access/transam/xlog.c:8490 backup/basebackup.c:1360 utils/adt/misc.c:359 +#: access/transam/xlog.c:9013 backup/basebackup.c:1422 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь символической ссылки \"%s\" слишком длинный" -#: access/transam/xlog.c:8649 backup/basebackup.c:1221 +#: access/transam/xlog.c:9134 +#, c-format +msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +msgstr "Установите wal_level \"replica\" или \"logical\" при запуске сервера." + +#: access/transam/xlog.c:9172 backup/basebackup.c:1281 #, c-format msgid "the standby was promoted during online backup" msgstr "" -"дежурный сервер был повышен в процессе резервного копирования \"на ходу\"" +"ведомый сервер был повышен в процессе резервного копирования \"на ходу\"" -#: access/transam/xlog.c:8650 backup/basebackup.c:1222 +#: access/transam/xlog.c:9173 backup/basebackup.c:1282 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -3079,21 +3341,21 @@ msgstr "" "Это означает, что создаваемая резервная копия испорчена и использовать её не " "следует. Попробуйте резервное копирование \"на ходу\" ещё раз." -#: access/transam/xlog.c:8697 +#: access/transam/xlog.c:9220 #, c-format msgid "" -"WAL generated with full_page_writes=off was replayed during online backup" +"WAL generated with \"full_page_writes=off\" was replayed during online backup" msgstr "" -"В процессе резервного копирования \"на ходу\" был воспроизведён WAL, " -"созданный в режиме full_page_writes=off" +"в процессе резервного копирования \"на ходу\" был воспроизведён WAL, " +"созданный в режиме \"full_page_writes=off\"" -#: access/transam/xlog.c:8813 +#: access/transam/xlog.c:9336 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "" "базовое копирование выполнено, ожидается архивация нужных сегментов WAL" -#: access/transam/xlog.c:8827 +#: access/transam/xlog.c:9350 #, c-format msgid "" "still waiting for all required WAL segments to be archived (%d seconds " @@ -3101,23 +3363,23 @@ msgid "" msgstr "" "продолжается ожидание архивации всех нужных сегментов WAL (прошло %d сек.)" -#: access/transam/xlog.c:8829 +#: access/transam/xlog.c:9352 #, c-format msgid "" -"Check that your archive_command is executing properly. You can safely " +"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 "" -"Проверьте, правильно ли работает команда archive_command. Операцию " +"Проверьте, правильно ли работает команда \"archive_command\". Операцию " "копирования можно отменить безопасно, но резервная копия базы будет " "непригодна без всех сегментов WAL." -#: access/transam/xlog.c:8836 +#: access/transam/xlog.c:9359 #, c-format msgid "all required WAL segments have been archived" msgstr "все нужные сегменты WAL заархивированы" -#: access/transam/xlog.c:8840 +#: access/transam/xlog.c:9363 #, c-format msgid "" "WAL archiving is not enabled; you must ensure that all required WAL segments " @@ -3126,31 +3388,31 @@ msgstr "" "архивация WAL не настроена; вы должны обеспечить копирование всех требуемых " "сегментов WAL другими средствами для получения резервной копии" -#: access/transam/xlog.c:8879 +#: access/transam/xlog.c:9402 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "" "прерывание резервного копирования из-за завершения обслуживающего процесса " "до вызова pg_backup_stop" -#: access/transam/xlogarchive.c:214 +#: access/transam/xlogarchive.c:213 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "файл архива \"%s\" имеет неправильный размер: %lld вместо %lld" -#: access/transam/xlogarchive.c:223 +#: access/transam/xlogarchive.c:222 #, c-format msgid "restored log file \"%s\" from archive" msgstr "файл журнала \"%s\" восстановлен из архива" -#: access/transam/xlogarchive.c:237 +#: access/transam/xlogarchive.c:236 #, c-format -msgid "restore_command returned a zero exit status, but stat() failed." +msgid "\"restore_command\" returned a zero exit status, but stat() failed." msgstr "" -"Команда restore_command возвратила нулевой код состояния, но stat() выдала " -"ошибку." +"Команда \"restore_command\" возвратила нулевой код состояния, но stat() " +"выдала ошибку." -#: access/transam/xlogarchive.c:269 +#: access/transam/xlogarchive.c:268 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "восстановить файл \"%s\" из архива не удалось: %s" @@ -3158,109 +3420,120 @@ msgstr "восстановить файл \"%s\" из архива не удал #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:347 +#: access/transam/xlogarchive.c:346 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:457 access/transam/xlogarchive.c:537 +#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "не удалось создать файл состояния архива \"%s\": %m" -#: access/transam/xlogarchive.c:465 access/transam/xlogarchive.c:545 +#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "не удалось записать файл состояния архива \"%s\": %m" -#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 +#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 #, c-format msgid "a backup is already in progress in this session" msgstr "резервное копирование уже выполняется в этом сеансе" -#: access/transam/xlogfuncs.c:146 +#: access/transam/xlogfuncs.c:140 #, c-format msgid "backup is not in progress" msgstr "резервное копирование не выполняется" -#: access/transam/xlogfuncs.c:147 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "Did you call pg_backup_start()?" msgstr "Вы вызывали pg_backup_start()?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 +#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 +#: access/transam/xlogfuncs.c:323 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "Функции управления WAL нельзя использовать в процессе восстановления." -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 +#: access/transam/xlogfuncs.c:447 #, c-format msgid "%s cannot be executed during recovery." msgstr "выполнить %s во время восстановления нельзя." -#: access/transam/xlogfuncs.c:221 +#: access/transam/xlogfuncs.c:215 #, c-format -msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" +msgid "" +"pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" msgstr "" -"pg_log_standby_snapshot() можно использовать, только если wal_level >= " -"replica" +"pg_log_standby_snapshot() можно использовать, только если \"wal_level\" >= " +"\"replica\"" -#: access/transam/xlogfuncs.c:253 +#: access/transam/xlogfuncs.c:247 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "Выбранный уровень WAL не достаточен для создания точки восстановления" # well-spelled: симв -#: access/transam/xlogfuncs.c:261 +#: access/transam/xlogfuncs.c:255 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "значение для точки восстановления превышает предел (%d симв.)" -#: access/transam/xlogfuncs.c:496 +#: access/transam/xlogfuncs.c:486 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "неправильное имя файла WAL \"%s\"" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 +#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 +#: access/transam/xlogfuncs.c:679 #, c-format msgid "recovery is not in progress" msgstr "восстановление не выполняется" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 +#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 +#: access/transam/xlogfuncs.c:680 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "" "Функции управления восстановлением можно использовать только в процессе " "восстановления." -#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 +#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 #, c-format msgid "standby promotion is ongoing" msgstr "производится повышение ведомого" -#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s нельзя выполнять, когда производится повышение." -#: access/transam/xlogfuncs.c:695 +#: access/transam/xlogfuncs.c:685 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "значение \"wait_seconds\" не должно быть отрицательным или нулевым" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:265 +#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "отправить сигнал процессу postmaster не удалось: %m" -#: access/transam/xlogfuncs.c:751 +#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#, c-format +msgid "terminating connection due to unexpected postmaster exit" +msgstr "закрытие подключения из-за неожиданного завершения главного процесса" + +#: access/transam/xlogfuncs.c:740 +#, c-format +msgid "while waiting on promotion" +msgstr "в процессе ожидания повышения" + +#: access/transam/xlogfuncs.c:744 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" @@ -3268,71 +3541,72 @@ msgstr[0] "повышение сервера не завершилось за %d msgstr[1] "повышение сервера не завершилось за %d секунды" msgstr[2] "повышение сервера не завершилось за %d секунд" -#: access/transam/xlogprefetcher.c:1092 +#: access/transam/xlogprefetcher.c:1088 #, c-format msgid "" -"recovery_prefetch is not supported on platforms that lack posix_fadvise()." +"\"recovery_prefetch\" is not supported on platforms that lack " +"posix_fadvise()." msgstr "" -"recovery_prefetch не поддерживается на платформах, где отсутствует " +"\"recovery_prefetch\" не поддерживается на платформах, где отсутствует " "posix_fadvise()." -#: access/transam/xlogreader.c:621 +#: access/transam/xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "" "неверное смещение записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: access/transam/xlogreader.c:630 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение записи" -#: access/transam/xlogreader.c:671 access/transam/xlogreader.c:1136 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "" "неверная длина записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: access/transam/xlogreader.c:760 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: access/transam/xlogreader.c:773 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неверная длина contrecord: %u (ожидалась %lld) в позиции %X/%X" -#: access/transam/xlogreader.c:1144 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера ресурсов %u в позиции %X/%X" -#: access/transam/xlogreader.c:1157 access/transam/xlogreader.c:1173 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запись с неверной ссылкой назад %X/%X в позиции %X/%X" -#: access/transam/xlogreader.c:1211 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "некорректная контрольная сумма данных менеджера ресурсов в записи в позиции " "%X/%X" -#: access/transam/xlogreader.c:1245 +#: access/transam/xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверное магическое число %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1302 +#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверные информационные биты %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: access/transam/xlogreader.c:1276 +#: access/transam/xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -3341,7 +3615,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД " "%llu, а идентификатор системы pg_control: %llu" -#: access/transam/xlogreader.c:1284 +#: access/transam/xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -3350,7 +3624,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке " "страницы" -#: access/transam/xlogreader.c:1290 +#: access/transam/xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -3359,12 +3633,12 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "страницы" -#: access/transam/xlogreader.c:1322 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неожиданный pageaddr %X/%X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: access/transam/xlogreader.c:1348 +#: access/transam/xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -3373,23 +3647,23 @@ msgstr "" "нарушение последовательности ID линии времени %u (после %u) в сегменте WAL " "%s, LSN %X/%X, смещение %u" -#: access/transam/xlogreader.c:1754 +#: access/transam/xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X" -#: access/transam/xlogreader.c:1778 +#: access/transam/xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет" -#: access/transam/xlogreader.c:1785 +#: access/transam/xlogreader.c:1780 #, 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:1821 +#: access/transam/xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -3398,21 +3672,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1837 +#: access/transam/xlogreader.c:1832 #, 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:1851 +#: access/transam/xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED установлен, но длина образа блока равна %u в позиции %X/" "%X" -#: access/transam/xlogreader.c:1866 +#: access/transam/xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -3421,41 +3695,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не установлены, но длина образа " "блока равна %u в позиции %X/%X" -#: access/transam/xlogreader.c:1882 +#: access/transam/xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/" "%X" -#: access/transam/xlogreader.c:1894 +#: access/transam/xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1961 +#: access/transam/xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запись с неверной длиной в позиции %X/%X" -#: access/transam/xlogreader.c:1987 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалось найти копию блока с ID %d в записи журнала WAL" -#: access/transam/xlogreader.c:2071 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалось восстановить образ в позиции %X/%X с указанным неверным блоком %d" -#: access/transam/xlogreader.c:2078 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалось восстановить образ в позиции %X/%X с неверным состоянием, блок %d" -#: access/transam/xlogreader.c:2105 access/transam/xlogreader.c:2122 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -3464,7 +3738,7 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый методом %s, который не " "поддерживается этой сборкой, блок %d" -#: access/transam/xlogreader.c:2131 +#: access/transam/xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -3472,49 +3746,12 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый неизвестным методом, " "блок %d" -#: access/transam/xlogreader.c:2139 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалось развернуть образ в позиции %X/%X, блок %d" -#: access/transam/xlogrecovery.c:547 -#, c-format -msgid "entering standby mode" -msgstr "переход в режим резервного сервера" - -#: access/transam/xlogrecovery.c:550 -#, c-format -msgid "starting point-in-time recovery to XID %u" -msgstr "начинается восстановление точки во времени до XID %u" - -#: access/transam/xlogrecovery.c:554 -#, c-format -msgid "starting point-in-time recovery to %s" -msgstr "начинается восстановление точки во времени до %s" - -#: access/transam/xlogrecovery.c:558 -#, c-format -msgid "starting point-in-time recovery to \"%s\"" -msgstr "начинается восстановление точки во времени до \"%s\"" - -#: access/transam/xlogrecovery.c:562 -#, c-format -msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" -msgstr "" -"начинается восстановление точки во времени до позиции в WAL (LSN) \"%X/%X\"" - -#: access/transam/xlogrecovery.c:566 -#, c-format -msgid "starting point-in-time recovery to earliest consistent point" -msgstr "" -"начинается восстановление точки во времени до первой точки согласованности" - -#: access/transam/xlogrecovery.c:569 -#, c-format -msgid "starting archive recovery" -msgstr "начинается восстановление архива" - -#: access/transam/xlogrecovery.c:637 +#: access/transam/xlogrecovery.c:617 #, c-format msgid "" "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on " @@ -3523,68 +3760,108 @@ msgstr "" "начинается восстановление копии с LSN redo %X/%X, LSN контрольной точки %X/" "%X, на линии времени %u" -#: access/transam/xlogrecovery.c:669 +#: access/transam/xlogrecovery.c:649 #, c-format -msgid "could not find redo location referenced by checkpoint record" -msgstr "не удалось найти положение REDO, указанное записью контрольной точки" +msgid "" +"could not find redo location %X/%X referenced by checkpoint record at %X/%X" +msgstr "" +"не удалось найти положение REDO %X/%X, указанное в записи контрольной точки " +"в %X/%X" -#: access/transam/xlogrecovery.c:670 access/transam/xlogrecovery.c:680 +#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 #, c-format msgid "" -"If you are restoring from a backup, touch \"%s/recovery.signal\" and add " -"required recovery options.\n" +"If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/" +"standby.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/" "backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if " "restoring from a backup." msgstr "" -"Если вы восстанавливаете резервную копию, создайте \"%s/recovery.signal\" и " -"задайте обязательные параметры восстановления.\n" +"Если вы восстанавливаете резервную копию, создайте \"%s/recovery.signal\" " +"или \"%s/standby.signal\" и задайте обязательные параметры восстановления.\n" "В других случаях попытайтесь удалить файл \"%s/backup_label\".\n" "Будьте осторожны: при восстановлении резервной копии удаление \"%s/" "backup_label\" приведёт к повреждению кластера." -#: access/transam/xlogrecovery.c:679 +#: access/transam/xlogrecovery.c:660 #, c-format -msgid "could not locate required checkpoint record" -msgstr "не удалось считать нужную запись контрольной точки" +msgid "could not locate required checkpoint record at %X/%X" +msgstr "не удалось найти нужную запись контрольной точки в %X/%X" -#: access/transam/xlogrecovery.c:708 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: access/transam/xlogrecovery.c:740 access/transam/xlogrecovery.c:746 +#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "файл \"%s\" игнорируется ввиду отсутствия файла \"%s\"" -#: access/transam/xlogrecovery.c:742 +#: access/transam/xlogrecovery.c:725 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Файл \"%s\" был переименован в \"%s\"." -#: access/transam/xlogrecovery.c:748 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Не удалось переименовать файл \"%s\" в \"%s\" (%m)." -#: access/transam/xlogrecovery.c:787 +#: access/transam/xlogrecovery.c:770 #, c-format msgid "restarting backup recovery with redo LSN %X/%X" msgstr "перезапуск восстановления копии с LSN redo %X/%X" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:795 +#, c-format +msgid "could not locate a valid checkpoint record at %X/%X" +msgstr "не удалось найти корректную запись контрольной точки в %X/%X" + +#: access/transam/xlogrecovery.c:806 +#, c-format +msgid "entering standby mode" +msgstr "переход в режим резервного сервера" + +#: access/transam/xlogrecovery.c:809 +#, c-format +msgid "starting point-in-time recovery to XID %u" +msgstr "начинается восстановление точки во времени до XID %u" + +#: access/transam/xlogrecovery.c:813 +#, c-format +msgid "starting point-in-time recovery to %s" +msgstr "начинается восстановление точки во времени до %s" + +#: access/transam/xlogrecovery.c:817 +#, c-format +msgid "starting point-in-time recovery to \"%s\"" +msgstr "начинается восстановление точки во времени до \"%s\"" + +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" +msgstr "" +"начинается восстановление точки во времени до позиции в WAL (LSN) \"%X/%X\"" + +#: access/transam/xlogrecovery.c:825 #, c-format -msgid "could not locate a valid checkpoint record" -msgstr "не удалось считать правильную запись контрольной точки" +msgid "starting point-in-time recovery to earliest consistent point" +msgstr "" +"начинается восстановление точки во времени до первой точки согласованности" + +#: access/transam/xlogrecovery.c:828 +#, c-format +msgid "starting archive recovery" +msgstr "начинается восстановление архива" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:849 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "в истории сервера нет ответвления запрошенной линии времени %u" -#: access/transam/xlogrecovery.c:838 +#: access/transam/xlogrecovery.c:851 #, c-format msgid "" "Latest checkpoint is at %X/%X on timeline %u, but in the history of the " @@ -3593,7 +3870,7 @@ msgstr "" "Последняя контрольная точка: %X/%X на линии времени %u, но в истории " "запрошенной линии времени сервер ответвился с этой линии в %X/%X." -#: access/transam/xlogrecovery.c:852 +#: access/transam/xlogrecovery.c:865 #, c-format msgid "" "requested timeline %u does not contain minimum recovery point %X/%X on " @@ -3602,22 +3879,22 @@ msgstr "" "запрошенная линия времени %u не содержит минимальную точку восстановления %X/" "%X на линии времени %u" -#: access/transam/xlogrecovery.c:880 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid next transaction ID" msgstr "неверный ID следующей транзакции" -#: access/transam/xlogrecovery.c:885 +#: access/transam/xlogrecovery.c:898 #, c-format msgid "invalid redo in checkpoint record" msgstr "неверная запись REDO в контрольной точке" -#: access/transam/xlogrecovery.c:896 +#: access/transam/xlogrecovery.c:909 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "неверная запись REDO в контрольной точке выключения" -#: access/transam/xlogrecovery.c:925 +#: access/transam/xlogrecovery.c:938 #, c-format msgid "" "database system was not properly shut down; automatic recovery in progress" @@ -3625,19 +3902,19 @@ msgstr "" "система БД была остановлена нештатно; производится автоматическое " "восстановление" -#: access/transam/xlogrecovery.c:929 +#: access/transam/xlogrecovery.c:942 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "" "восстановление после сбоя начинается на линии времени %u, целевая линия " "времени: %u" -#: access/transam/xlogrecovery.c:972 +#: access/transam/xlogrecovery.c:985 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label содержит данные, не согласованные с файлом pg_control" -#: access/transam/xlogrecovery.c:973 +#: access/transam/xlogrecovery.c:986 #, c-format msgid "" "This means that the backup is corrupted and you will have to use another " @@ -3646,24 +3923,24 @@ msgstr "" "Это означает, что резервная копия повреждена и для восстановления БД " "придётся использовать другую копию." -#: access/transam/xlogrecovery.c:1027 +#: access/transam/xlogrecovery.c:1040 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "" "использование файла с конфигурацией восстановления \"%s\" не поддерживается" -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1105 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "" "режим резервного сервера не поддерживается однопользовательским сервером" -#: access/transam/xlogrecovery.c:1109 +#: access/transam/xlogrecovery.c:1122 #, c-format -msgid "specified neither primary_conninfo nor restore_command" -msgstr "не указано ни primary_conninfo, ни restore_command" +msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" +msgstr "не указано ни \"primary_conninfo\", ни \"restore_command\"" -#: access/transam/xlogrecovery.c:1110 +#: access/transam/xlogrecovery.c:1123 #, c-format msgid "" "The database server will regularly poll the pg_wal subdirectory to check for " @@ -3672,111 +3949,128 @@ msgstr "" "Сервер БД будет регулярно опрашивать подкаталог pg_wal и проверять " "содержащиеся в нём файлы." -#: access/transam/xlogrecovery.c:1118 +#: access/transam/xlogrecovery.c:1131 #, c-format -msgid "must specify restore_command when standby mode is not enabled" +msgid "must specify \"restore_command\" when standby mode is not enabled" msgstr "" -"необходимо задать restore_command, если не выбран режим резервного сервера" +"необходимо задать \"restore_command\", если не выбран режим резервного " +"сервера" -#: access/transam/xlogrecovery.c:1156 +#: access/transam/xlogrecovery.c:1169 #, c-format msgid "recovery target timeline %u does not exist" msgstr "целевая линия времени для восстановления %u не существует" -#: access/transam/xlogrecovery.c:1239 access/transam/xlogrecovery.c:1246 -#: access/transam/xlogrecovery.c:1305 access/transam/xlogrecovery.c:1385 -#: access/transam/xlogrecovery.c:1409 +#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 +#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 #, c-format msgid "invalid data in file \"%s\"" msgstr "неверные данные в файле \"%s\"" -#: access/transam/xlogrecovery.c:1306 +#: access/transam/xlogrecovery.c:1319 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Получен идентификатор линии времени %u, но ожидался %u." -#: access/transam/xlogrecovery.c:1688 +#: access/transam/xlogrecovery.c:1330 +#, c-format +msgid "this is an incremental backup, not a data directory" +msgstr "это каталог инкрементальной копии, не каталог данных" + +#: access/transam/xlogrecovery.c:1331 +#, c-format +msgid "Use pg_combinebackup to reconstruct a valid data directory." +msgstr "" +"Реконструируйте полноценный каталог данных, используя pg_combinebackup." + +#: access/transam/xlogrecovery.c:1717 +#, c-format +msgid "unexpected record type found at redo point %X/%X" +msgstr "в точке redo %X/%X обнаружена запись неожиданного типа" + +#: access/transam/xlogrecovery.c:1740 #, c-format msgid "redo starts at %X/%X" msgstr "запись REDO начинается со смещения %X/%X" -#: access/transam/xlogrecovery.c:1701 +#: access/transam/xlogrecovery.c:1753 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "" "выполняется воспроизведение, прошло времени: %ld.%02d с, текущий LSN: %X/%X" -#: access/transam/xlogrecovery.c:1793 +#: access/transam/xlogrecovery.c:1843 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "запрошенная точка остановки восстановления предшествует согласованной точке " "восстановления" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1875 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "записи REDO обработаны до смещения %X/%X, нагрузка системы: %s" -#: access/transam/xlogrecovery.c:1831 +#: access/transam/xlogrecovery.c:1881 #, c-format msgid "last completed transaction was at log time %s" msgstr "последняя завершённая транзакция была выполнена в %s" -#: access/transam/xlogrecovery.c:1840 +#: access/transam/xlogrecovery.c:1890 #, c-format msgid "redo is not required" msgstr "данные REDO не требуются" -#: access/transam/xlogrecovery.c:1851 +#: access/transam/xlogrecovery.c:1901 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "восстановление окончилось до достижения заданной цели восстановления" -#: access/transam/xlogrecovery.c:2045 +#: access/transam/xlogrecovery.c:2095 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "" "успешно пропущена отсутствующая запись contrecord в %X/%X, перезаписанная в " "%s" -#: access/transam/xlogrecovery.c:2112 +#: access/transam/xlogrecovery.c:2162 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "в %2$s обнаружен недопустимый элемент-каталог \"%1$s\"" -#: access/transam/xlogrecovery.c:2114 +#: access/transam/xlogrecovery.c:2164 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "" "Все элементы-каталоги в pg_tblspc/ должны быть символическими ссылками." -#: access/transam/xlogrecovery.c:2115 +#: access/transam/xlogrecovery.c:2165 #, c-format msgid "" -"Remove those directories, or set allow_in_place_tablespaces to ON " +"Remove those directories, or set \"allow_in_place_tablespaces\" to ON " "transiently to let recovery complete." msgstr "" -"Удалите эти каталоги или на время установите в allow_in_place_tablespaces " -"значение ON, чтобы восстановление завершилось." +"Удалите эти каталоги или на время установите в " +"\"allow_in_place_tablespaces\" значение ON, чтобы восстановление завершилось." -#: access/transam/xlogrecovery.c:2167 +#: access/transam/xlogrecovery.c:2217 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "завершено восстановление копии с LSN redo %X/%X и конечным LSN %X/%X" -#: access/transam/xlogrecovery.c:2197 +#: access/transam/xlogrecovery.c:2247 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "согласованное состояние восстановления достигнуто в позиции %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2235 +#: access/transam/xlogrecovery.c:2285 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запись REDO в WAL в позиции %X/%X для %s" -#: access/transam/xlogrecovery.c:2333 +#: access/transam/xlogrecovery.c:2383 #, c-format msgid "" "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint " @@ -3785,13 +4079,13 @@ msgstr "" "неожиданный ID предыдущей линии времени %u (ID текущей линии времени %u) в " "записи контрольной точки" -#: access/transam/xlogrecovery.c:2342 +#: access/transam/xlogrecovery.c:2392 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неожиданный ID линии времени %u (после %u) в записи контрольной точки" # skip-rule: capital-letter-first -#: access/transam/xlogrecovery.c:2358 +#: access/transam/xlogrecovery.c:2408 #, c-format msgid "" "unexpected timeline ID %u in checkpoint record, before reaching minimum " @@ -3800,83 +4094,83 @@ msgstr "" "неожиданный ID линии времени %u в записи контрольной точки, до достижения " "минимальной к. т. %X/%X на линии времени %u" -#: access/transam/xlogrecovery.c:2542 access/transam/xlogrecovery.c:2818 +#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 #, c-format msgid "recovery stopping after reaching consistency" msgstr "" "восстановление останавливается после достижения согласованного состояния" -#: access/transam/xlogrecovery.c:2563 +#: access/transam/xlogrecovery.c:2613 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается перед позицией в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2653 +#: access/transam/xlogrecovery.c:2703 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "" "восстановление останавливается перед фиксированием транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2660 +#: access/transam/xlogrecovery.c:2710 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "" "восстановление останавливается перед прерыванием транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2713 +#: access/transam/xlogrecovery.c:2763 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "восстановление останавливается в точке восстановления \"%s\", время %s" -#: access/transam/xlogrecovery.c:2731 +#: access/transam/xlogrecovery.c:2781 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается после позиции в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2798 +#: access/transam/xlogrecovery.c:2848 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "" "восстановление останавливается после фиксирования транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2806 +#: access/transam/xlogrecovery.c:2856 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "" "восстановление останавливается после прерывания транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2887 +#: access/transam/xlogrecovery.c:2937 #, c-format msgid "pausing at the end of recovery" msgstr "остановка в конце восстановления" -#: access/transam/xlogrecovery.c:2888 +#: access/transam/xlogrecovery.c:2938 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Выполните pg_wal_replay_resume() для повышения." -#: access/transam/xlogrecovery.c:2891 access/transam/xlogrecovery.c:4628 +#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4679 #, c-format msgid "recovery has paused" msgstr "восстановление приостановлено" -#: access/transam/xlogrecovery.c:2892 +#: access/transam/xlogrecovery.c:2942 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Выполните pg_wal_replay_resume() для продолжения." -#: access/transam/xlogrecovery.c:3155 +#: access/transam/xlogrecovery.c:3205 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неожиданный ID линии времени %u в сегменте WAL %s, LSN %X/%X, смещение %u" -#: access/transam/xlogrecovery.c:3363 +#: access/transam/xlogrecovery.c:3413 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "не удалось прочитать сегмент WAL %s, LSN %X/%X, смещение %u: %m" -#: access/transam/xlogrecovery.c:3370 +#: access/transam/xlogrecovery.c:3420 #, c-format msgid "" "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" @@ -3884,38 +4178,38 @@ msgstr "" "не удалось прочитать сегмент WAL %s, LSN %X/%X, смещение %u (прочитано байт: " "%d из %zu)" -#: access/transam/xlogrecovery.c:4010 +#: access/transam/xlogrecovery.c:4061 #, c-format msgid "invalid checkpoint location" msgstr "неверное положение контрольной точки" -#: access/transam/xlogrecovery.c:4020 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid checkpoint record" msgstr "неверная запись контрольной точки" -#: access/transam/xlogrecovery.c:4026 +#: access/transam/xlogrecovery.c:4077 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "неверный ID менеджера ресурсов в записи контрольной точки" -#: access/transam/xlogrecovery.c:4034 +#: access/transam/xlogrecovery.c:4085 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "неверные флаги xl_info в записи контрольной точки" -#: access/transam/xlogrecovery.c:4040 +#: access/transam/xlogrecovery.c:4091 #, c-format msgid "invalid length of checkpoint record" msgstr "неверная длина записи контрольной точки" -#: access/transam/xlogrecovery.c:4094 +#: access/transam/xlogrecovery.c:4145 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "" "новая линия времени %u не является ответвлением линии времени системы БД %u" -#: access/transam/xlogrecovery.c:4108 +#: access/transam/xlogrecovery.c:4159 #, c-format msgid "" "new timeline %u forked off current database system timeline %u before " @@ -3924,30 +4218,30 @@ msgstr "" "новая линия времени %u ответвилась от текущей линии времени базы данных %u " "до текущей точки восстановления %X/%X" -#: access/transam/xlogrecovery.c:4127 +#: access/transam/xlogrecovery.c:4178 #, c-format msgid "new target timeline is %u" msgstr "новая целевая линия времени %u" -#: access/transam/xlogrecovery.c:4330 +#: access/transam/xlogrecovery.c:4381 #, c-format msgid "WAL receiver process shutdown requested" msgstr "получен запрос на выключение процесса приёмника WAL" -#: access/transam/xlogrecovery.c:4390 +#: access/transam/xlogrecovery.c:4441 #, c-format msgid "received promote request" msgstr "получен запрос повышения статуса" -#: access/transam/xlogrecovery.c:4619 +#: access/transam/xlogrecovery.c:4670 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "" "режим горячего резерва невозможен из-за отсутствия достаточных значений " "параметров" -#: access/transam/xlogrecovery.c:4620 access/transam/xlogrecovery.c:4647 -#: access/transam/xlogrecovery.c:4677 +#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 +#: access/transam/xlogrecovery.c:4728 #, c-format msgid "" "%s = %d is a lower setting than on the primary server, where its value was " @@ -3955,12 +4249,12 @@ msgid "" msgstr "" "Параметр %s = %d меньше, чем на ведущем сервере, где его значение было %d." -#: access/transam/xlogrecovery.c:4629 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "В случае возобновления восстановления сервер отключится." -#: access/transam/xlogrecovery.c:4630 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "" "You can then restart the server after making the necessary configuration " @@ -3969,24 +4263,24 @@ msgstr "" "Затем вы можете перезапустить сервер после внесения необходимых изменений " "конфигурации." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4692 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "повышение невозможно из-за отсутствия достаточных значений параметров" -#: access/transam/xlogrecovery.c:4651 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "" "Перезапустите сервер после внесения необходимых изменений конфигурации." -#: access/transam/xlogrecovery.c:4675 +#: access/transam/xlogrecovery.c:4726 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "" "восстановление прервано из-за отсутствия достаточных значений параметров" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4732 #, c-format msgid "" "You can restart the server after making the necessary configuration changes." @@ -3994,66 +4288,67 @@ msgstr "" "Вы можете перезапустить сервер после внесения необходимых изменений " "конфигурации." -#: access/transam/xlogrecovery.c:4723 +#: access/transam/xlogrecovery.c:4774 #, c-format msgid "multiple recovery targets specified" msgstr "указано несколько целей восстановления" -#: access/transam/xlogrecovery.c:4724 +#: access/transam/xlogrecovery.c:4775 #, c-format msgid "" -"At most one of recovery_target, recovery_target_lsn, recovery_target_name, " -"recovery_target_time, recovery_target_xid may be set." +"At most one of \"recovery_target\", \"recovery_target_lsn\", " +"\"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" " +"may be set." msgstr "" -"Может быть указана только одна из целей: recovery_target, " -"recovery_target_lsn, recovery_target_name, recovery_target_time, " -"recovery_target_xid." +"Может быть указана только одна из целей: \"recovery_target\", " +"\"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\", " +"\"recovery_target_xid\"." -#: access/transam/xlogrecovery.c:4735 +#: access/transam/xlogrecovery.c:4786 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Единственное допустимое значение: \"immediate\"." -#: access/transam/xlogrecovery.c:4887 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4938 utils/adt/timestamp.c:202 +#: utils/adt/timestamp.c:455 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp вне диапазона: \"%s\"" -#: access/transam/xlogrecovery.c:4932 +#: access/transam/xlogrecovery.c:4983 #, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline не является допустимым числом." +msgid "\"recovery_target_timeline\" is not a valid number." +msgstr "Значение \"recovery_target_timeline\" не является допустимым числом." -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1032 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "не удалось прочитать из сегмента WAL %s по смещению %d: %m" -#: access/transam/xlogutils.c:1046 +#: access/transam/xlogutils.c:1039 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "" "не удалось прочитать из сегмента WAL %s по смещению %d (прочитано байт: %d " "из %d)" -#: archive/shell_archive.c:96 +#: archive/shell_archive.c:98 #, c-format msgid "archive command failed with exit code %d" msgstr "команда архивации завершилась ошибкой с кодом %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:100 archive/shell_archive.c:110 +#: archive/shell_archive.c:116 archive/shell_archive.c:125 #, c-format msgid "The failed archive command was: %s" msgstr "Команда архивации с ошибкой: %s" -#: archive/shell_archive.c:105 +#: archive/shell_archive.c:107 #, c-format msgid "archive command was terminated by exception 0x%X" msgstr "команда архивации была прервана исключением 0x%X" -#: archive/shell_archive.c:107 postmaster/postmaster.c:3678 +#: archive/shell_archive.c:109 postmaster/postmaster.c:3095 #, c-format msgid "" "See C include file \"ntstatus.h\" for a description of the hexadecimal value." @@ -4061,52 +4356,52 @@ msgstr "" "Описание этого шестнадцатеричного значения ищите во включаемом C-файле " "\"ntstatus.h\"" -#: archive/shell_archive.c:112 +#: archive/shell_archive.c:114 #, c-format msgid "archive command was terminated by signal %d: %s" msgstr "команда архивации завершена по сигналу %d: %s" -#: archive/shell_archive.c:121 +#: archive/shell_archive.c:123 #, c-format msgid "archive command exited with unrecognized status %d" -msgstr "команда архивации завершилась с неизвестным кодом состояния %d" +msgstr "команда архивации завершилась с нераспознанным кодом состояния %d" -#: backup/backup_manifest.c:253 +#: backup/backup_manifest.c:254 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "ожидался конец линии времени %u, но обнаружена линия времени %u" -#: backup/backup_manifest.c:277 +#: backup/backup_manifest.c:278 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "ожидалось начало линии времени %u, но обнаружена линия времени %u" -#: backup/backup_manifest.c:304 +#: backup/backup_manifest.c:305 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "начальная линия времени %u не найдена в истории линии времени %u" -#: backup/backup_manifest.c:355 +#: backup/backup_manifest.c:356 #, c-format msgid "could not rewind temporary file" msgstr "не удалось переместиться во временном файле" -#: backup/basebackup.c:470 +#: backup/basebackup.c:479 #, c-format msgid "could not find any WAL files" msgstr "не удалось найти ни одного файла WAL" -#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 +#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 #, c-format msgid "could not find WAL file \"%s\"" msgstr "не удалось найти файл WAL \"%s\"" -#: backup/basebackup.c:551 backup/basebackup.c:576 +#: backup/basebackup.c:560 backup/basebackup.c:585 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "неприемлемый размер файла WAL \"%s\"" -#: backup/basebackup.c:646 +#: backup/basebackup.c:656 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" @@ -4114,93 +4409,95 @@ msgstr[0] "всего ошибок контрольных сумм: %lld" msgstr[1] "всего ошибок контрольных сумм: %lld" msgstr[2] "всего ошибок контрольных сумм: %lld" -#: backup/basebackup.c:653 +#: backup/basebackup.c:663 #, c-format msgid "checksum verification failure during base backup" msgstr "при базовом резервном копировании выявлены ошибки контрольных сумм" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 +#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 +#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 +#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 +#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 #, c-format msgid "duplicate option \"%s\"" msgstr "повторяющийся параметр \"%s\"" -#: backup/basebackup.c:750 +#: backup/basebackup.c:761 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "нераспознанный тип контрольной точки: \"%s\"" -#: backup/basebackup.c:785 +#: backup/basebackup.c:793 +#, c-format +msgid "incremental backups cannot be taken unless WAL summarization is enabled" +msgstr "" +"сделать инкрементальную копию можно, только когда включено обобщение WAL" + +#: backup/basebackup.c:809 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d вне диапазона, допустимого для параметра \"%s\" (%d .. %d)" -#: backup/basebackup.c:830 +#: backup/basebackup.c:854 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "нераспознанный параметр в манифесте: \"%s\"" -#: backup/basebackup.c:846 -#, c-format -msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "нераспознанный алгоритм расчёта контрольных сумм: \"%s\"" - -#: backup/basebackup.c:881 +#: backup/basebackup.c:905 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "нераспознанный алгоритм сжатия: \"%s\"" -#: backup/basebackup.c:897 +#: backup/basebackup.c:921 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "нераспознанный параметр операции базового копирования: \"%s\"" -#: backup/basebackup.c:908 +#: backup/basebackup.c:932 #, c-format msgid "manifest checksums require a backup manifest" msgstr "контрольные суммы не могут рассчитываться без манифеста копии" # skip-rule: capital-letter-first -#: backup/basebackup.c:917 +#: backup/basebackup.c:941 #, c-format msgid "target detail cannot be used without target" msgstr "доп. информацию о получателе нельзя задать без указания получателя" # skip-rule: capital-letter-first -#: backup/basebackup.c:926 backup/basebackup_target.c:218 +#: backup/basebackup.c:950 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "получатель \"%s\" не принимает доп. информацию" -#: backup/basebackup.c:937 +#: backup/basebackup.c:961 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "параметры сжатия нельзя указывать, если не включено сжатие" -#: backup/basebackup.c:950 +#: backup/basebackup.c:974 #, c-format msgid "invalid compression specification: %s" msgstr "неправильное указание сжатия: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1298 +#: backup/basebackup.c:1024 +#, c-format +msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" +msgstr "" +"инкрементальной команде BASE_BACKUP должна предшествовать UPLOAD_MANIFEST" + +#: backup/basebackup.c:1157 backup/basebackup.c:1358 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "не удалось получить информацию о файле или каталоге \"%s\": %m" -#: backup/basebackup.c:1434 +#: backup/basebackup.c:1544 #, c-format msgid "skipping special file \"%s\"" msgstr "специальный файл \"%s\" пропускается" -#: backup/basebackup.c:1546 -#, c-format -msgid "invalid segment number %d in file \"%s\"" -msgstr "неверный номер сегмента %d в файле \"%s\"" - -#: backup/basebackup.c:1578 +#: backup/basebackup.c:1751 #, c-format msgid "" "could not verify checksum in file \"%s\", block %u: read buffer size %d and " @@ -4209,7 +4506,15 @@ msgstr "" "не удалось проверить контрольную сумму в файле \"%s\", блоке %u: размер " "прочитанного буфера (%d) отличается от размера страницы (%d)" -#: backup/basebackup.c:1662 +#: backup/basebackup.c:1813 +#, c-format +msgid "file \"%s\" has a total of %d checksum verification failure" +msgid_plural "file \"%s\" has a total of %d checksum verification failures" +msgstr[0] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" +msgstr[1] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" +msgstr[2] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" + +#: backup/basebackup.c:1917 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated %X but " @@ -4218,27 +4523,19 @@ msgstr "" "ошибка контрольной суммы в файле \"%s\", блоке %u: вычислено значение %X, но " "ожидалось %X" -#: backup/basebackup.c:1669 +#: backup/basebackup.c:1924 #, c-format msgid "" "further checksum verification failures in file \"%s\" will not be reported" msgstr "" "о дальнейших ошибках контрольных сумм в файле \"%s\" сообщаться не будет" -#: backup/basebackup.c:1725 -#, c-format -msgid "file \"%s\" has a total of %d checksum verification failure" -msgid_plural "file \"%s\" has a total of %d checksum verification failures" -msgstr[0] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" -msgstr[1] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" -msgstr[2] "всего в файле \"%s\" обнаружено ошибок контрольных сумм: %d" - -#: backup/basebackup.c:1771 +#: backup/basebackup.c:2048 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "слишком длинное имя файла для формата tar: \"%s\"" -#: backup/basebackup.c:1776 +#: backup/basebackup.c:2053 #, c-format msgid "" "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" @@ -4246,6 +4543,11 @@ msgstr "" "цель символической ссылки слишком длинная для формата tar: имя файла \"%s\", " "цель \"%s\"" +#: backup/basebackup.c:2127 +#, c-format +msgid "could not read file \"%s\": read %zd of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %zd из %zu)" + #: backup/basebackup_gzip.c:67 #, c-format msgid "gzip compression is not supported by this build" @@ -4256,17 +4558,110 @@ msgstr "сжатие gzip не поддерживается в данной сб msgid "could not initialize compression library" msgstr "не удалось инициализировать библиотеку сжатия" +#: backup/basebackup_incremental.c:294 +#, c-format +msgid "manifest contains no required WAL ranges" +msgstr "в манифесте не указаны нужные диапазоны WAL" + +#: backup/basebackup_incremental.c:349 +#, c-format +msgid "timeline %u found in manifest, but not in this server's history" +msgstr "в манифесте найдена линия времени %u, но её нет в истории сервера" + +#: backup/basebackup_incremental.c:414 +#, c-format +msgid "" +"manifest requires WAL from initial timeline %u starting at %X/%X, but that " +"timeline begins at %X/%X" +msgstr "" +"манифест требует наличия WAL с изначальной линии времени %u, начиная с " +"позиции %X/%X, но эта линия времени начинается с %X/%X" + +#: backup/basebackup_incremental.c:424 +#, c-format +msgid "" +"manifest requires WAL from continuation timeline %u starting at %X/%X, but " +"that timeline begins at %X/%X" +msgstr "" +"манифест требует наличия WAL с последующей линии времени %u, начиная с " +"позиции %X/%X, но эта линия времени начинается с %X/%X" + +#: backup/basebackup_incremental.c:435 +#, c-format +msgid "" +"manifest requires WAL from final timeline %u ending at %X/%X, but this " +"backup starts at %X/%X" +msgstr "" +"манифест требует наличия WAL с последней линии времени %u, завершающейся в " +"%X/%X, но эта копия начинается с %X/%X" + +#: backup/basebackup_incremental.c:439 +#, c-format +msgid "" +"This can happen for incremental backups on a standby if there was little " +"activity since the previous backup." +msgstr "" +"Такая ситуация возможна, когда инкрементальная копия создаётся на резервном " +"сервере при незначительной активности после создания предыдущей копии." + +#: backup/basebackup_incremental.c:446 +#, c-format +msgid "" +"manifest requires WAL from non-final timeline %u ending at %X/%X, but this " +"server switched timelines at %X/%X" +msgstr "" +"манифест требует наличия WAL с промежуточной линии времени %u, завершающейся " +"в %X/%X, но этот сервер переключил линии времени в %X/%X" + +#: backup/basebackup_incremental.c:527 +#, c-format +msgid "" +"WAL summaries are required on timeline %u from %X/%X to %X/%X, but no " +"summaries for that timeline and LSN range exist" +msgstr "" +"требуются обобщения WAL для линии времени %u с позиции %X/%X по %X/%X, но " +"они не найдены" + +#: backup/basebackup_incremental.c:534 +#, c-format +msgid "" +"WAL summaries are required on timeline %u from %X/%X to %X/%X, but the " +"summaries for that timeline and LSN range are incomplete" +msgstr "" +"требуются обобщения WAL для линии времени %u с позиции %X/%X по %X/%X, но " +"обобщения для этой линии времени и этого диапазона LSN неполные" + +#: backup/basebackup_incremental.c:538 +#, c-format +msgid "The first unsummarized LSN in this range is %X/%X." +msgstr "Первый необобщённый LSN в этом диапазоне: %X/%X." + +#: backup/basebackup_incremental.c:938 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "" +"с версией 1 манифеста копии инкрементальное копирование не поддерживается" + +#: backup/basebackup_incremental.c:956 +#, c-format +msgid "" +"system identifier in backup manifest is %llu, but database system identifier " +"is %llu" +msgstr "" +"в манифесте копии указан идентификатор системы: %llu, но идентификатор " +"системы базы данных: %llu" + #: backup/basebackup_lz4.c:67 #, c-format msgid "lz4 compression is not supported by this build" msgstr "сжатие lz4 не поддерживается в данной сборке" -#: backup/basebackup_server.c:75 +#: backup/basebackup_server.c:73 #, c-format msgid "permission denied to create backup stored on server" msgstr "нет прав для создания копии, сохраняемой на сервере" -#: backup/basebackup_server.c:76 +#: backup/basebackup_server.c:74 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may create a backup stored on " @@ -4275,40 +4670,41 @@ msgstr "" "Создавать копии, сохраняемые на сервере, могут только роли с правами роли " "\"%s\"." -#: backup/basebackup_server.c:91 +#: backup/basebackup_server.c:89 #, c-format msgid "relative path not allowed for backup stored on server" msgstr "" "для копии, сохраняемой на стороне сервера, нельзя указывать относительный " "путь" -#: backup/basebackup_server.c:104 commands/dbcommands.c:478 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1731 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 +#: commands/tablespace.c:157 commands/tablespace.c:173 +#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: backup/basebackup_server.c:117 +#: backup/basebackup_server.c:115 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" существует, но он не пуст" -#: backup/basebackup_server.c:125 utils/init/postinit.c:1164 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1178 #, c-format msgid "could not access directory \"%s\": %m" -msgstr "ошибка доступа к каталогу \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 -#: storage/smgr/md.c:615 storage/smgr/md.c:865 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 +#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 +#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 +#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 #, c-format msgid "Check free disk space." msgstr "Проверьте, есть ли место на диске." -#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 +#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/walsummary.c:309 #, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" msgstr "" @@ -4340,252 +4736,251 @@ msgstr "не удалось установить для zstd число пото msgid "could not enable long-distance mode: %s" msgstr "не удалось включить режим большой дистанции: %s" -#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 +#: backup/walsummaryfuncs.c:95 +#, c-format +msgid "invalid timeline %lld" +msgstr "неверная линия времени %lld" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946 #, c-format msgid "--%s requires a value" msgstr "для --%s требуется значение" -#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 +#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951 #, c-format msgid "-c %s requires a value" msgstr "для -c %s требуется значение" -#: bootstrap/bootstrap.c:289 -#, c-format -msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "" -"для -X требуется число, равное степени двух, в интервале от 1 МБ до 1 ГБ" - -#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 +#: postmaster/postmaster.c:759 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: bootstrap/bootstrap.c:304 +#: bootstrap/bootstrap.c:291 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: неверные аргументы командной строки\n" -#: catalog/aclchk.c:201 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "право назначения прав можно давать только ролям" -#: catalog/aclchk.c:323 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "для столбца \"%s\" отношения \"%s\" не были назначены никакие права" -#: catalog/aclchk.c:328 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "для объекта \"%s\" не были назначены никакие права" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "" "для столбца \"%s\" отношения \"%s\" были назначены не все запрошенные права" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "для объекта \"%s\" были назначены не все запрошенные права" -#: catalog/aclchk.c:352 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для столбца \"%s\" отношения \"%s\" не были отозваны никакие права" -#: catalog/aclchk.c:357 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "для объекта \"%s\" не были отозваны никакие права" -#: catalog/aclchk.c:365 +#: catalog/aclchk.c:375 #, c-format msgid "" "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для столбца \"%s\" отношения \"%s\" были отозваны не все права" -#: catalog/aclchk.c:370 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "для объекта \"%s\" были отозваны не все права" -#: catalog/aclchk.c:402 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "праводателем должен быть текущий пользователь" -#: catalog/aclchk.c:470 catalog/aclchk.c:1045 +#: catalog/aclchk.c:480 catalog/aclchk.c:1055 #, c-format msgid "invalid privilege type %s for relation" msgstr "право %s неприменимо для отношений" -#: catalog/aclchk.c:474 catalog/aclchk.c:1049 +#: catalog/aclchk.c:484 catalog/aclchk.c:1059 #, c-format msgid "invalid privilege type %s for sequence" msgstr "право %s неприменимо для последовательностей" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "право %s неприменимо для баз данных" -#: catalog/aclchk.c:482 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "право %s неприменимо для домена" -#: catalog/aclchk.c:486 catalog/aclchk.c:1053 +#: catalog/aclchk.c:496 catalog/aclchk.c:1063 #, c-format msgid "invalid privilege type %s for function" msgstr "право %s неприменимо для функций" -#: catalog/aclchk.c:490 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "право %s неприменимо для языков" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:504 #, c-format msgid "invalid privilege type %s for large object" msgstr "право %s неприменимо для больших объектов" -#: catalog/aclchk.c:498 catalog/aclchk.c:1069 +#: catalog/aclchk.c:508 catalog/aclchk.c:1079 #, c-format msgid "invalid privilege type %s for schema" msgstr "право %s неприменимо для схем" -#: catalog/aclchk.c:502 catalog/aclchk.c:1057 +#: catalog/aclchk.c:512 catalog/aclchk.c:1067 #, c-format msgid "invalid privilege type %s for procedure" msgstr "право %s неприменимо для процедур" -#: catalog/aclchk.c:506 catalog/aclchk.c:1061 +#: catalog/aclchk.c:516 catalog/aclchk.c:1071 #, c-format msgid "invalid privilege type %s for routine" msgstr "право %s неприменимо для подпрограмм" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "право %s неприменимо для табличных пространств" -#: catalog/aclchk.c:514 catalog/aclchk.c:1065 +#: catalog/aclchk.c:524 catalog/aclchk.c:1075 #, c-format msgid "invalid privilege type %s for type" msgstr "право %s неприменимо для типа" -#: catalog/aclchk.c:518 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "право %s неприменимо для обёрток сторонних данных" -#: catalog/aclchk.c:522 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "право %s неприменимо для сторонних серверов" -#: catalog/aclchk.c:526 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "неверный тип прав %s для параметра" -#: catalog/aclchk.c:565 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "права для столбцов применимы только к отношениям" -#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:286 +#: catalog/aclchk.c:738 catalog/aclchk.c:3629 catalog/objectaddress.c:1054 +#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 #, c-format msgid "large object %u does not exist" msgstr "большой объект %u не существует" -#: catalog/aclchk.c:1102 +#: catalog/aclchk.c:1112 #, c-format msgid "default privileges cannot be set for columns" msgstr "права по умолчанию нельзя определить для столбцов" -#: catalog/aclchk.c:1138 +#: catalog/aclchk.c:1148 #, c-format msgid "permission denied to change default privileges" msgstr "нет полномочий для изменения прав доступа по умолчанию" -#: catalog/aclchk.c:1256 +#: catalog/aclchk.c:1266 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "предложение IN SCHEMA нельзя использовать в GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7342 commands/tablecmds.c:7498 -#: commands/tablecmds.c:7548 commands/tablecmds.c:7622 -#: commands/tablecmds.c:7692 commands/tablecmds.c:7808 -#: commands/tablecmds.c:7902 commands/tablecmds.c:7961 -#: commands/tablecmds.c:8050 commands/tablecmds.c:8080 -#: commands/tablecmds.c:8208 commands/tablecmds.c:8290 -#: commands/tablecmds.c:8424 commands/tablecmds.c:8536 -#: commands/tablecmds.c:12261 commands/tablecmds.c:12442 -#: commands/tablecmds.c:12603 commands/tablecmds.c:13798 -#: commands/tablecmds.c:16329 commands/trigger.c:949 parser/analyze.c:2529 -#: parser/parse_relation.c:737 parser/parse_target.c:1068 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 -#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2797 +#: catalog/aclchk.c:1617 catalog/catalog.c:659 catalog/objectaddress.c:1523 +#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:951 +#: commands/sequence.c:1655 commands/tablecmds.c:7541 commands/tablecmds.c:7695 +#: commands/tablecmds.c:7745 commands/tablecmds.c:7819 +#: commands/tablecmds.c:7889 commands/tablecmds.c:8019 +#: commands/tablecmds.c:8148 commands/tablecmds.c:8242 +#: commands/tablecmds.c:8343 commands/tablecmds.c:8470 +#: commands/tablecmds.c:8500 commands/tablecmds.c:8642 +#: commands/tablecmds.c:8735 commands/tablecmds.c:8869 +#: commands/tablecmds.c:8981 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12989 commands/tablecmds.c:13150 +#: commands/tablecmds.c:14339 commands/tablecmds.c:16966 commands/trigger.c:942 +#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409 +#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923 +#: utils/adt/ruleutils.c:2812 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "столбец \"%s\" в таблице \"%s\" не существует" -#: catalog/aclchk.c:1840 +#: catalog/aclchk.c:1862 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" - это индекс" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13955 commands/tablecmds.c:17231 +#: catalog/aclchk.c:1869 commands/tablecmds.c:14496 commands/tablecmds.c:17882 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" - это составной тип" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17195 utils/adt/acl.c:2084 -#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 -#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 +#: catalog/aclchk.c:1877 catalog/objectaddress.c:1363 commands/tablecmds.c:263 +#: commands/tablecmds.c:17846 utils/adt/acl.c:2107 utils/adt/acl.c:2137 +#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237 +#: utils/adt/acl.c:2268 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" - это не последовательность" -#: catalog/aclchk.c:1893 +#: catalog/aclchk.c:1915 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "" "для последовательности \"%s\" применимы только права USAGE, SELECT и UPDATE" -#: catalog/aclchk.c:1910 +#: catalog/aclchk.c:1932 #, c-format msgid "invalid privilege type %s for table" msgstr "право %s неприменимо для таблиц" -#: catalog/aclchk.c:2072 +#: catalog/aclchk.c:2097 #, c-format msgid "invalid privilege type %s for column" msgstr "право %s неприменимо для столбцов" -#: catalog/aclchk.c:2085 +#: catalog/aclchk.c:2110 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "для последовательности \"%s\" применимо только право SELECT" # TO REVIEW -#: catalog/aclchk.c:2275 +#: catalog/aclchk.c:2301 #, c-format msgid "language \"%s\" is not trusted" msgstr "язык \"%s\" не является доверенным" -#: catalog/aclchk.c:2277 +#: catalog/aclchk.c:2303 #, c-format msgid "" "GRANT and REVOKE are not allowed on untrusted languages, because only " @@ -4594,400 +4989,411 @@ msgstr "" "GRANT и REVOKE не допускаются для недоверенных языков, так как использовать " "такие языки могут только суперпользователи." -#: catalog/aclchk.c:2427 +#: catalog/aclchk.c:2454 #, c-format msgid "cannot set privileges of array types" msgstr "для типов массивов нельзя определить права" -#: catalog/aclchk.c:2428 +#: catalog/aclchk.c:2455 #, c-format msgid "Set the privileges of the element type instead." msgstr "Вместо этого установите права для типа элемента." -#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 +#: catalog/aclchk.c:2459 +#, c-format +msgid "cannot set privileges of multirange types" +msgstr "для мультидиапазонных типов нельзя определить права" + +#: catalog/aclchk.c:2460 +#, c-format +msgid "Set the privileges of the range type instead." +msgstr "Вместо этого установите права для диапазонного типа." + +#: catalog/aclchk.c:2467 catalog/objectaddress.c:1629 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" - это не домен" -#: catalog/aclchk.c:2619 +#: catalog/aclchk.c:2653 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "нераспознанное право: \"%s\"" -#: catalog/aclchk.c:2684 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for aggregate %s" msgstr "нет доступа к агрегату %s" -#: catalog/aclchk.c:2687 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for collation %s" msgstr "нет доступа к правилу сортировки %s" -#: catalog/aclchk.c:2690 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for column %s" msgstr "нет доступа к столбцу %s" -#: catalog/aclchk.c:2693 +#: catalog/aclchk.c:2729 #, c-format msgid "permission denied for conversion %s" msgstr "нет доступа к преобразованию %s" -#: catalog/aclchk.c:2696 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for database %s" msgstr "нет доступа к базе данных %s" -#: catalog/aclchk.c:2699 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for domain %s" msgstr "нет доступа к домену %s" -#: catalog/aclchk.c:2702 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for event trigger %s" msgstr "нет доступа к событийному триггеру %s" -#: catalog/aclchk.c:2705 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for extension %s" msgstr "нет доступа к расширению %s" -#: catalog/aclchk.c:2708 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "нет доступа к обёртке сторонних данных %s" -#: catalog/aclchk.c:2711 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for foreign server %s" msgstr "нет доступа к стороннему серверу %s" -#: catalog/aclchk.c:2714 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for foreign table %s" msgstr "нет доступа к сторонней таблице %s" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for function %s" msgstr "нет доступа к функции %s" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2756 #, c-format msgid "permission denied for index %s" msgstr "нет доступа к индексу %s" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2759 #, c-format msgid "permission denied for language %s" msgstr "нет доступа к языку %s" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2762 #, c-format msgid "permission denied for large object %s" msgstr "нет доступа к большому объекту %s" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2765 #, c-format msgid "permission denied for materialized view %s" msgstr "нет доступа к материализованному представлению %s" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2768 #, c-format msgid "permission denied for operator class %s" msgstr "нет доступа к классу операторов %s" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2771 #, c-format msgid "permission denied for operator %s" msgstr "нет доступа к оператору %s" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2774 #, c-format msgid "permission denied for operator family %s" msgstr "нет доступа к семейству операторов %s" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2777 #, c-format msgid "permission denied for parameter %s" msgstr "нет доступа к параметру %s" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2780 #, c-format msgid "permission denied for policy %s" msgstr "нет доступа к политике %s" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2783 #, c-format msgid "permission denied for procedure %s" msgstr "нет доступа к процедуре %s" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2786 #, c-format msgid "permission denied for publication %s" msgstr "нет доступа к публикации %s" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2789 #, c-format msgid "permission denied for routine %s" msgstr "нет доступа к подпрограмме %s" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2792 #, c-format msgid "permission denied for schema %s" msgstr "нет доступа к схеме %s" -#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2795 commands/sequence.c:654 commands/sequence.c:880 +#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 +#: commands/sequence.c:1799 #, c-format msgid "permission denied for sequence %s" msgstr "нет доступа к последовательности %s" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2798 #, c-format msgid "permission denied for statistics object %s" msgstr "нет доступа к объекту статистики %s" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2801 #, c-format msgid "permission denied for subscription %s" msgstr "нет доступа к подписке %s" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2804 #, c-format msgid "permission denied for table %s" msgstr "нет доступа к таблице %s" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2807 #, c-format msgid "permission denied for tablespace %s" msgstr "нет доступа к табличному пространству %s" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2810 #, c-format msgid "permission denied for text search configuration %s" msgstr "нет доступа к конфигурации текстового поиска %s" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2813 #, c-format msgid "permission denied for text search dictionary %s" msgstr "нет доступа к словарю текстового поиска %s" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2816 #, c-format msgid "permission denied for type %s" msgstr "нет доступа к типу %s" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2819 #, c-format msgid "permission denied for view %s" msgstr "нет доступа к представлению %s" -#: catalog/aclchk.c:2819 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of aggregate %s" msgstr "нужно быть владельцем агрегата %s" -#: catalog/aclchk.c:2822 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of collation %s" msgstr "нужно быть владельцем правила сортировки %s" -#: catalog/aclchk.c:2825 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of conversion %s" msgstr "нужно быть владельцем преобразования %s" -#: catalog/aclchk.c:2828 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of database %s" msgstr "нужно быть владельцем базы %s" -#: catalog/aclchk.c:2831 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of domain %s" msgstr "нужно быть владельцем домена %s" -#: catalog/aclchk.c:2834 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of event trigger %s" msgstr "нужно быть владельцем событийного триггера %s" -#: catalog/aclchk.c:2837 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of extension %s" msgstr "нужно быть владельцем расширения %s" -#: catalog/aclchk.c:2840 +#: catalog/aclchk.c:2876 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "нужно быть владельцем обёртки сторонних данных %s" -#: catalog/aclchk.c:2843 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of foreign server %s" msgstr "нужно быть \"владельцем\" стороннего сервера %s" -#: catalog/aclchk.c:2846 +#: catalog/aclchk.c:2882 #, c-format msgid "must be owner of foreign table %s" msgstr "нужно быть владельцем сторонней таблицы %s" -#: catalog/aclchk.c:2849 +#: catalog/aclchk.c:2885 #, c-format msgid "must be owner of function %s" msgstr "нужно быть владельцем функции %s" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2888 #, c-format msgid "must be owner of index %s" msgstr "нужно быть владельцем индекса %s" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2891 #, c-format msgid "must be owner of language %s" msgstr "нужно быть владельцем языка %s" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2894 #, c-format msgid "must be owner of large object %s" msgstr "нужно быть владельцем большого объекта %s" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2897 #, c-format msgid "must be owner of materialized view %s" msgstr "нужно быть владельцем материализованного представления %s" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2900 #, c-format msgid "must be owner of operator class %s" msgstr "нужно быть владельцем класса операторов %s" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2903 #, c-format msgid "must be owner of operator %s" msgstr "нужно быть владельцем оператора %s" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2906 #, c-format msgid "must be owner of operator family %s" msgstr "нужно быть владельцем семейства операторов %s" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2909 #, c-format msgid "must be owner of procedure %s" msgstr "нужно быть владельцем процедуры %s" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2912 #, c-format msgid "must be owner of publication %s" msgstr "нужно быть владельцем публикации %s" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2915 #, c-format msgid "must be owner of routine %s" msgstr "нужно быть владельцем подпрограммы %s" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2918 #, c-format msgid "must be owner of sequence %s" msgstr "нужно быть владельцем последовательности %s" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2921 #, c-format msgid "must be owner of subscription %s" msgstr "нужно быть владельцем подписки %s" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2924 #, c-format msgid "must be owner of table %s" msgstr "нужно быть владельцем таблицы %s" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2927 #, c-format msgid "must be owner of type %s" msgstr "нужно быть владельцем типа %s" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2930 #, c-format msgid "must be owner of view %s" msgstr "нужно быть владельцем представления %s" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2933 #, c-format msgid "must be owner of schema %s" msgstr "нужно быть владельцем схемы %s" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2936 #, c-format msgid "must be owner of statistics object %s" msgstr "нужно быть владельцем объекта статистики %s" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2939 #, c-format msgid "must be owner of tablespace %s" msgstr "нужно быть владельцем табличного пространства %s" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2942 #, c-format msgid "must be owner of text search configuration %s" msgstr "нужно быть владельцем конфигурации текстового поиска %s" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2945 #, c-format msgid "must be owner of text search dictionary %s" msgstr "нужно быть владельцем словаря текстового поиска %s" -#: catalog/aclchk.c:2923 +#: catalog/aclchk.c:2959 #, c-format msgid "must be owner of relation %s" msgstr "нужно быть владельцем отношения %s" -#: catalog/aclchk.c:2969 +#: catalog/aclchk.c:3005 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "нет доступа к столбцу \"%s\" отношения \"%s\"" -#: catalog/aclchk.c:3104 catalog/aclchk.c:3984 catalog/aclchk.c:4015 +#: catalog/aclchk.c:3162 catalog/aclchk.c:4170 catalog/aclchk.c:4201 #, c-format msgid "%s with OID %u does not exist" msgstr "%s с OID %u не существует" -#: catalog/aclchk.c:3188 catalog/aclchk.c:3207 +#: catalog/aclchk.c:3245 catalog/aclchk.c:3264 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "атрибут %d отношения с OID %u не существует" -#: catalog/aclchk.c:3302 +#: catalog/aclchk.c:3302 catalog/aclchk.c:3365 catalog/aclchk.c:4004 #, c-format msgid "relation with OID %u does not exist" msgstr "отношение с OID %u не существует" -#: catalog/aclchk.c:3476 +#: catalog/aclchk.c:3550 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "ACL параметра с OID %u не существует" -#: catalog/aclchk.c:3640 commands/collationcmds.c:813 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3723 commands/collationcmds.c:853 +#: commands/publicationcmds.c:1739 #, c-format msgid "schema with OID %u does not exist" msgstr "схема с OID %u не существует" -#: catalog/aclchk.c:3705 utils/cache/typcache.c:390 utils/cache/typcache.c:445 +#: catalog/aclchk.c:3797 catalog/aclchk.c:3824 catalog/aclchk.c:3853 +#: utils/cache/typcache.c:392 utils/cache/typcache.c:447 #, c-format msgid "type with OID %u does not exist" msgstr "тип с OID %u не существует" -#: catalog/catalog.c:449 +#: catalog/catalog.c:477 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "продолжается поиск неиспользованного OID в отношении \"%s\"" -#: catalog/catalog.c:451 +#: catalog/catalog.c:479 #, c-format msgid "" "OID candidates have been checked %llu time, but no unused OID has been found " @@ -5005,7 +5411,7 @@ msgstr[2] "" "Потенциальные OID были проверены %llu раз, но неиспользуемые OID ещё не были " "найдены." -#: catalog/catalog.c:476 +#: catalog/catalog.c:504 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" @@ -5013,57 +5419,57 @@ msgstr[0] "новый OID был назначен в отношении \"%s\" msgstr[1] "новый OID был назначен в отношении \"%s\" после %llu попыток" msgstr[2] "новый OID был назначен в отношении \"%s\" после %llu попыток" -#: catalog/catalog.c:609 catalog/catalog.c:676 +#: catalog/catalog.c:637 catalog/catalog.c:704 #, c-format msgid "must be superuser to call %s()" msgstr "вызывать %s() может только суперпользователь" -#: catalog/catalog.c:618 +#: catalog/catalog.c:646 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() можно использовать только для системных каталогов" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 +#: catalog/catalog.c:651 parser/parse_utilcmd.c:2270 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "индекс \"%s\" не принадлежит таблице \"%s\"" -#: catalog/catalog.c:640 +#: catalog/catalog.c:668 #, c-format msgid "column \"%s\" is not of type oid" msgstr "столбец \"%s\" имеет тип не oid" -#: catalog/catalog.c:647 +#: catalog/catalog.c:675 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "индекс \"%s\" не является индексом столбца \"%s\"" -#: catalog/dependency.c:553 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "удалить объект %s нельзя, так как он нужен системе баз данных" -#: catalog/dependency.c:845 catalog/dependency.c:1072 +#: catalog/dependency.c:789 catalog/dependency.c:1016 #, c-format msgid "cannot drop %s because %s requires it" msgstr "удалить объект %s нельзя, так как он нужен объекту %s" -#: catalog/dependency.c:847 catalog/dependency.c:1074 +#: catalog/dependency.c:791 catalog/dependency.c:1018 #, c-format msgid "You can drop %s instead." msgstr "Однако можно удалить %s." -#: catalog/dependency.c:1153 catalog/dependency.c:1162 +#: catalog/dependency.c:1097 catalog/dependency.c:1106 #, c-format msgid "%s depends on %s" msgstr "%s зависит от объекта %s" -#: catalog/dependency.c:1177 catalog/dependency.c:1186 +#: catalog/dependency.c:1121 catalog/dependency.c:1130 #, c-format msgid "drop cascades to %s" msgstr "удаление распространяется на объект %s" -#: catalog/dependency.c:1194 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -5081,36 +5487,37 @@ msgstr[2] "" "\n" "и ещё %d объектов (см. список в протоколе сервера)" -#: catalog/dependency.c:1206 +#: catalog/dependency.c:1150 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "удалить объект %s нельзя, так как от него зависят другие объекты" -#: catalog/dependency.c:1209 catalog/dependency.c:1216 -#: catalog/dependency.c:1227 commands/tablecmds.c:1331 -#: commands/tablecmds.c:14442 commands/tablespace.c:466 commands/user.c:1303 -#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 -#: utils/misc/guc.c:3158 utils/misc/guc.c:3228 utils/misc/guc.c:6632 -#: utils/misc/guc.c:6666 utils/misc/guc.c:6700 utils/misc/guc.c:6743 -#: utils/misc/guc.c:6785 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 +#: catalog/dependency.c:1171 commands/tablecmds.c:1459 +#: commands/tablecmds.c:15088 commands/tablespace.c:460 commands/user.c:1302 +#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4655 +#: executor/execExprInterp.c:4663 libpq/auth.c:324 +#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1432 utils/misc/guc.c:3169 +#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6825 +#: utils/misc/guc.c:6859 utils/misc/guc.c:6893 utils/misc/guc.c:6936 +#: utils/misc/guc.c:6978 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1210 catalog/dependency.c:1217 +#: catalog/dependency.c:1154 catalog/dependency.c:1161 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Для удаления зависимых объектов используйте DROP ... CASCADE." -#: catalog/dependency.c:1214 +#: catalog/dependency.c:1158 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "" "удалить запрошенные объекты нельзя, так как от них зависят другие объекты" -#: catalog/dependency.c:1222 +#: catalog/dependency.c:1166 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" @@ -5118,61 +5525,61 @@ msgstr[0] "удаление распространяется на ещё %d об msgstr[1] "удаление распространяется на ещё %d объекта" msgstr[2] "удаление распространяется на ещё %d объектов" -#: catalog/dependency.c:1906 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "константу типа %s здесь использовать нельзя" -#: catalog/dependency.c:2431 parser/parse_relation.c:3413 -#: parser/parse_relation.c:3423 +#: catalog/dependency.c:2375 parser/parse_relation.c:3407 +#: parser/parse_relation.c:3417 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "столбец %d отношения \"%s\" не существует" -#: catalog/heap.c:324 +#: catalog/heap.c:325 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "нет прав для создания отношения \"%s.%s\"" -#: catalog/heap.c:326 +#: catalog/heap.c:327 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "Изменение системного каталога в текущем состоянии запрещено." -#: catalog/heap.c:466 commands/tablecmds.c:2370 commands/tablecmds.c:3043 -#: commands/tablecmds.c:6925 +#: catalog/heap.c:467 commands/tablecmds.c:2495 commands/tablecmds.c:2917 +#: commands/tablecmds.c:7163 #, c-format msgid "tables can have at most %d columns" msgstr "максимальное число столбцов в таблице: %d" -#: catalog/heap.c:484 commands/tablecmds.c:7232 +#: catalog/heap.c:485 commands/tablecmds.c:7432 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "имя столбца \"%s\" конфликтует с системным столбцом" -#: catalog/heap.c:500 +#: catalog/heap.c:501 #, c-format msgid "column name \"%s\" specified more than once" msgstr "имя столбца \"%s\" указано неоднократно" #. translator: first %s is an integer not a name -#: catalog/heap.c:578 +#: catalog/heap.c:579 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "столбец \"%s\" ключа разбиения имеет псевдотип %s" -#: catalog/heap.c:583 +#: catalog/heap.c:584 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "столбец \"%s\" имеет псевдотип %s" -#: catalog/heap.c:614 +#: catalog/heap.c:615 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "составной тип %s не может содержать себя же" #. translator: first %s is an integer not a name -#: catalog/heap.c:669 +#: catalog/heap.c:670 #, c-format msgid "" "no collation was derived for partition key column %s with collatable type %s" @@ -5180,28 +5587,28 @@ msgstr "" "для входящего в ключ разбиения столбца \"%s\" с сортируемым типом %s не " "удалось получить правило сортировки" -#: catalog/heap.c:675 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "" "для столбца \"%s\" с сортируемым типом %s не удалось получить правило " "сортировки" -#: catalog/heap.c:1151 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3983 +#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401 +#: commands/tablecmds.c:4171 #, c-format msgid "relation \"%s\" already exists" msgstr "отношение \"%s\" уже существует" -#: catalog/heap.c:1167 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 +#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 +#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 +#: commands/typecmds.c:1585 commands/typecmds.c:2556 #, c-format msgid "type \"%s\" already exists" msgstr "тип \"%s\" уже существует" -#: catalog/heap.c:1168 +#: catalog/heap.c:1178 #, c-format msgid "" "A relation has an associated type of the same name, so you must use a name " @@ -5210,54 +5617,54 @@ msgstr "" "С отношением уже связан тип с таким же именем; выберите имя, не " "конфликтующее с существующими типами." -#: catalog/heap.c:1208 +#: catalog/heap.c:1218 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "" "значение relfilenumber для TOAST не задано в режиме двоичного обновления" -#: catalog/heap.c:1219 +#: catalog/heap.c:1229 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "значение OID кучи в pg_class не задано в режиме двоичного обновления" -#: catalog/heap.c:1229 +#: catalog/heap.c:1239 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "значение relfilenumber не задано в режиме двоичного обновления" -#: catalog/heap.c:2122 +#: catalog/heap.c:2130 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "" "добавить ограничение NO INHERIT к секционированной таблице \"%s\" нельзя" -#: catalog/heap.c:2397 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "ограничение-проверка \"%s\" уже существует" -#: catalog/heap.c:2567 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8911 +#: catalog/heap.c:2574 catalog/index.c:913 catalog/pg_constraint.c:724 +#: commands/tablecmds.c:9356 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "ограничение \"%s\" для отношения \"%s\" уже существует" -#: catalog/heap.c:2574 +#: catalog/heap.c:2581 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с ненаследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2585 +#: catalog/heap.c:2592 #, c-format msgid "" "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует с наследуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2595 +#: catalog/heap.c:2602 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" @@ -5265,71 +5672,71 @@ msgstr "" "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "таблицы \"%s\"" -#: catalog/heap.c:2600 +#: catalog/heap.c:2607 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "слияние ограничения \"%s\" с унаследованным определением" -#: catalog/heap.c:2626 catalog/pg_constraint.c:811 commands/tablecmds.c:2668 -#: commands/tablecmds.c:3195 commands/tablecmds.c:6857 -#: commands/tablecmds.c:15264 commands/tablecmds.c:15405 +#: catalog/heap.c:2633 catalog/pg_constraint.c:853 commands/tablecmds.c:3074 +#: commands/tablecmds.c:3377 commands/tablecmds.c:7089 +#: commands/tablecmds.c:15907 commands/tablecmds.c:16038 #, c-format msgid "too many inheritance parents" msgstr "слишком много родителей в иерархии наследования" -#: catalog/heap.c:2710 +#: catalog/heap.c:2717 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "" "использовать генерируемый столбец \"%s\" в выражении генерируемого столбца " "нельзя" -#: catalog/heap.c:2712 +#: catalog/heap.c:2719 #, c-format msgid "A generated column cannot reference another generated column." msgstr "" "Генерируемый столбец не может ссылаться на другой генерируемый столбец." -#: catalog/heap.c:2718 +#: catalog/heap.c:2725 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "" "в выражении генерируемого столбца нельзя использовать переменные «вся строка»" -#: catalog/heap.c:2719 +#: catalog/heap.c:2726 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "" "Это сделало бы генерируемый столбец зависимым от собственного значения." -#: catalog/heap.c:2774 +#: catalog/heap.c:2781 #, c-format msgid "generation expression is not immutable" msgstr "генерирующее выражение не является постоянным" -#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2809 rewrite/rewriteHandler.c:1276 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, но тип выражения по умолчанию %s" -#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2753 -#: parser/parse_target.c:593 parser/parse_target.c:883 -#: parser/parse_target.c:893 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2814 commands/prepare.c:331 parser/analyze.c:2758 +#: parser/parse_target.c:592 parser/parse_target.c:882 +#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1281 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Перепишите выражение или преобразуйте его тип." -#: catalog/heap.c:2854 +#: catalog/heap.c:2861 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в ограничении-проверке можно ссылаться только на таблицу \"%s\"" -#: catalog/heap.c:3160 +#: catalog/heap.c:3167 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "неподдерживаемое сочетание внешнего ключа с ON COMMIT" -#: catalog/heap.c:3161 +#: catalog/heap.c:3168 #, c-format msgid "" "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT " @@ -5337,501 +5744,501 @@ msgid "" msgstr "" "Таблица \"%s\" ссылается на \"%s\", и для них задан разный режим ON COMMIT." -#: catalog/heap.c:3166 +#: catalog/heap.c:3173 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "опустошить таблицу, на которую ссылается внешний ключ, нельзя" -#: catalog/heap.c:3167 +#: catalog/heap.c:3174 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблица \"%s\" ссылается на \"%s\"." -#: catalog/heap.c:3169 +#: catalog/heap.c:3176 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "" "Опустошите таблицу \"%s\" параллельно или используйте TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2179 +#: catalog/index.c:219 parser/parse_utilcmd.c:2176 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "таблица \"%s\" не может иметь несколько первичных ключей" -#: catalog/index.c:239 +#: catalog/index.c:233 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "для первичных ключей нельзя использовать индексы с NULLS NOT DISTINCT" -#: catalog/index.c:256 +#: catalog/index.c:250 #, c-format msgid "primary keys cannot be expressions" msgstr "первичные ключи не могут быть выражениями" -#: catalog/index.c:273 +#: catalog/index.c:267 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "столбец первичного ключа \"%s\" не помечен как NOT NULL" -#: catalog/index.c:786 catalog/index.c:1942 +#: catalog/index.c:798 catalog/index.c:1915 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "" "пользовательские индексы в таблицах системного каталога не поддерживаются" -#: catalog/index.c:826 +#: catalog/index.c:838 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "" "недетерминированные правила сортировки не поддерживаются для класса " "операторов \"%s\"" -#: catalog/index.c:841 +#: catalog/index.c:853 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "" "параллельное создание индекса в таблицах системного каталога не " "поддерживается" -#: catalog/index.c:850 catalog/index.c:1318 +#: catalog/index.c:862 catalog/index.c:1331 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "" "параллельное создание индекса для ограничений-исключений не поддерживается" -#: catalog/index.c:859 +#: catalog/index.c:871 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "нельзя создать разделяемые индексы после initdb" -#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 +#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159 #: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "отношение \"%s\" уже существует, пропускается" -#: catalog/index.c:929 +#: catalog/index.c:941 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "" "значение OID индекса в pg_class не задано в режиме двоичного обновления" -#: catalog/index.c:939 utils/cache/relcache.c:3731 +#: catalog/index.c:951 utils/cache/relcache.c:3791 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "" "значение relfilenumber для индекса не задано в режиме двоичного обновления" -#: catalog/index.c:2241 +#: catalog/index.c:2214 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY должен быть первым действием в транзакции" -#: catalog/index.c:3675 +#: catalog/index.c:3668 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "переиндексировать временные таблицы других сеансов нельзя" -#: catalog/index.c:3686 commands/indexcmds.c:3607 +#: catalog/index.c:3679 commands/indexcmds.c:3626 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "перестроить нерабочий индекс в таблице TOAST нельзя" -#: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 -#: commands/tablecmds.c:3398 +#: catalog/index.c:3695 commands/indexcmds.c:3504 commands/indexcmds.c:3650 +#: commands/tablecmds.c:3581 #, c-format msgid "cannot move system relation \"%s\"" msgstr "переместить системную таблицу \"%s\" нельзя" -#: catalog/index.c:3846 +#: catalog/index.c:3832 #, c-format msgid "index \"%s\" was reindexed" msgstr "индекс \"%s\" был перестроен" -#: catalog/index.c:3983 +#: catalog/index.c:3998 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "" "перестроить нерабочий индекс \"%s.%s\" в таблице TOAST нельзя, он " "пропускается" -#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5736 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 +#: commands/trigger.c:5729 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "ссылки между базами не реализованы: \"%s.%s.%s\"" -#: catalog/namespace.c:317 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "для временных таблиц имя схемы не указывается" -#: catalog/namespace.c:398 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "не удалось получить блокировку таблицы \"%s.%s\"" -#: catalog/namespace.c:403 commands/lockcmds.c:144 commands/lockcmds.c:224 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "не удалось получить блокировку таблицы \"%s\"" -#: catalog/namespace.c:431 parser/parse_relation.c:1430 +#: catalog/namespace.c:633 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "отношение \"%s.%s\" не существует" -#: catalog/namespace.c:436 parser/parse_relation.c:1443 +#: catalog/namespace.c:638 parser/parse_relation.c:1443 #: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "отношение \"%s\" не существует" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 -#: commands/extension.c:1617 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1607 +#: commands/extension.c:1613 #, c-format msgid "no schema has been selected to create in" msgstr "схема для создания объектов не выбрана" -#: catalog/namespace.c:654 catalog/namespace.c:667 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "во временных схемах других сеансов нельзя создавать отношения" -#: catalog/namespace.c:658 +#: catalog/namespace.c:860 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "создавать временные отношения можно только во временных схемах" -#: catalog/namespace.c:673 +#: catalog/namespace.c:875 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "во временных схемах можно создавать только временные отношения" -#: catalog/namespace.c:2265 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "объект статистики \"%s\" не существует" -#: catalog/namespace.c:2388 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "анализатор текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "словарь текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2641 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "шаблон текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1168 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "конфигурация текстового поиска \"%s\" не существует" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1260 +#: catalog/namespace.c:3329 parser/parse_expr.c:868 parser/parse_target.c:1259 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ссылки между базами не реализованы: %s" -#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1267 -#: gram.y:18569 gram.y:18609 +#: catalog/namespace.c:3335 parser/parse_expr.c:875 parser/parse_target.c:1266 +#: gram.y:19181 gram.y:19221 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" -#: catalog/namespace.c:3016 +#: catalog/namespace.c:3465 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "перемещать объекты в/из внутренних схем нельзя" -#: catalog/namespace.c:3022 +#: catalog/namespace.c:3471 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "перемещать объекты в/из схем TOAST нельзя" -#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1276 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1404 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не существует" -#: catalog/namespace.c:3126 +#: catalog/namespace.c:3575 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неверное имя отношения (слишком много компонентов): %s" -#: catalog/namespace.c:3693 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "правило сортировки \"%s\" для кодировки \"%s\" не существует" -#: catalog/namespace.c:3748 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "преобразование \"%s\" не существует" -#: catalog/namespace.c:4012 +#: catalog/namespace.c:4412 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "нет прав для создания временных таблиц в базе \"%s\"" -#: catalog/namespace.c:4028 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "создавать временные таблицы в процессе восстановления нельзя" -#: catalog/namespace.c:4034 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "создавать временные таблицы во время параллельных операций нельзя" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2202 -#: commands/tablecmds.c:12378 +#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 +#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2327 +#: commands/tablecmds.c:12925 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" - это не таблица" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17200 commands/view.c:119 +#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 +#: commands/tablecmds.c:17851 commands/view.c:114 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" - это не представление" -#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17205 +#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275 +#: commands/tablecmds.c:17856 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" - это не материализованное представление" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17210 +#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 +#: commands/tablecmds.c:17861 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" - это не сторонняя таблица" -#: catalog/objectaddress.c:1471 +#: catalog/objectaddress.c:1433 #, c-format msgid "must specify relation and object name" msgstr "необходимо указать имя отношения и объекта" -#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 +#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 #, c-format msgid "column name must be qualified" msgstr "имя столбца нужно указать в полной форме" -#: catalog/objectaddress.c:1619 +#: catalog/objectaddress.c:1581 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "" "значение по умолчанию для столбца \"%s\" отношения \"%s\" не существует" -#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3691 +#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 +#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4441 +#: utils/adt/acl.c:4560 #, c-format msgid "type \"%s\" does not exist" msgstr "тип \"%s\" не существует" -#: catalog/objectaddress.c:1775 +#: catalog/objectaddress.c:1737 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "оператор %d (%s, %s) из семейства %s не существует" -#: catalog/objectaddress.c:1806 +#: catalog/objectaddress.c:1768 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "функция %d (%s, %s) из семейства %s не существует" -#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 +#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "сопоставление для пользователя \"%s\" на сервере \"%s\" не существует" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "сервер \"%s\" не существует" -#: catalog/objectaddress.c:1939 +#: catalog/objectaddress.c:1901 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "публикуемое отношение \"%s\" в публикации \"%s\" не существует" -#: catalog/objectaddress.c:1986 +#: catalog/objectaddress.c:1948 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "публикуемая схема \"%s\" в публикации \"%s\" не существует" -#: catalog/objectaddress.c:2044 +#: catalog/objectaddress.c:2006 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "нераспознанный тип объекта ACL по умолчанию: \"%c\"" -#: catalog/objectaddress.c:2045 +#: catalog/objectaddress.c:2007 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "Допустимые типы объектов: \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2096 +#: catalog/objectaddress.c:2058 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "" "ACL по умолчанию для пользователя \"%s\" в схеме \"%s\" для объекта %s не " "существует" -#: catalog/objectaddress.c:2101 +#: catalog/objectaddress.c:2063 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "" "ACL по умолчанию для пользователя \"%s\" и для объекта %s не существует" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 +#: catalog/objectaddress.c:2201 #, c-format msgid "name or argument lists may not contain nulls" msgstr "списки имён и аргументов не должны содержать NULL" -#: catalog/objectaddress.c:2161 +#: catalog/objectaddress.c:2123 #, c-format msgid "unsupported object type \"%s\"" msgstr "неподдерживаемый тип объекта: \"%s\"" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 +#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 #, c-format msgid "name list length must be exactly %d" msgstr "длина списка имён должна быть равна %d" -#: catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2163 #, c-format msgid "large object OID may not be null" msgstr "OID большого объекта не может быть NULL" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 +#: catalog/objectaddress.c:2249 #, c-format msgid "name list length must be at least %d" msgstr "длина списка аргументов должна быть не меньше %d" -#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 +#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 #, c-format msgid "argument list length must be exactly %d" msgstr "длина списка аргументов должна быть равна %d" -#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "нужно быть владельцем большого объекта %u" -#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 +#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 #, c-format msgid "must be owner of type %s or type %s" msgstr "это разрешено только владельцу типа %s или %s" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 +#: catalog/objectaddress.c:2527 #, c-format msgid "permission denied" msgstr "нет доступа" -#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 #, c-format msgid "The current user must have the %s attribute." msgstr "Текущий пользователь должен иметь атрибут %s." -#: catalog/objectaddress.c:2566 +#: catalog/objectaddress.c:2528 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "Текущий пользователь должен иметь привилегию %s для роли \"%s\"." -#: catalog/objectaddress.c:2580 +#: catalog/objectaddress.c:2542 #, c-format msgid "must be superuser" msgstr "требуются права суперпользователя" -#: catalog/objectaddress.c:2649 +#: catalog/objectaddress.c:2611 #, c-format msgid "unrecognized object type \"%s\"" msgstr "нераспознанный тип объекта \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2941 +#: catalog/objectaddress.c:2928 #, c-format msgid "column %s of %s" msgstr "столбец %s отношения %s" -#: catalog/objectaddress.c:2956 +#: catalog/objectaddress.c:2943 #, c-format msgid "function %s" msgstr "функция %s" -#: catalog/objectaddress.c:2969 +#: catalog/objectaddress.c:2956 #, c-format msgid "type %s" msgstr "тип %s" -#: catalog/objectaddress.c:3006 +#: catalog/objectaddress.c:2993 #, c-format msgid "cast from %s to %s" msgstr "приведение %s к %s" -#: catalog/objectaddress.c:3039 +#: catalog/objectaddress.c:3026 #, c-format msgid "collation %s" msgstr "правило сортировки %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3057 #, c-format msgid "constraint %s on %s" msgstr "ограничение %s в отношении %s" -#: catalog/objectaddress.c:3076 +#: catalog/objectaddress.c:3063 #, c-format msgid "constraint %s" msgstr "ограничение %s" -#: catalog/objectaddress.c:3108 +#: catalog/objectaddress.c:3095 #, c-format msgid "conversion %s" msgstr "преобразование %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3130 +#: catalog/objectaddress.c:3117 #, c-format msgid "default value for %s" msgstr "значение по умолчанию для %s" -#: catalog/objectaddress.c:3141 +#: catalog/objectaddress.c:3128 #, c-format msgid "language %s" msgstr "язык %s" -#: catalog/objectaddress.c:3149 +#: catalog/objectaddress.c:3136 #, c-format msgid "large object %u" msgstr "большой объект %u" -#: catalog/objectaddress.c:3162 +#: catalog/objectaddress.c:3149 #, c-format msgid "operator %s" msgstr "оператор %s" -#: catalog/objectaddress.c:3199 +#: catalog/objectaddress.c:3186 #, c-format msgid "operator class %s for access method %s" msgstr "класс операторов %s для метода доступа %s" -#: catalog/objectaddress.c:3227 +#: catalog/objectaddress.c:3214 #, c-format msgid "access method %s" msgstr "метод доступа %s" @@ -5840,7 +6247,7 @@ msgstr "метод доступа %s" #. 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:3276 +#: catalog/objectaddress.c:3269 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "оператор %d (%s, %s) из семейства \"%s\": %s" @@ -5849,241 +6256,241 @@ msgstr "оператор %d (%s, %s) из семейства \"%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 #. function with arguments. -#: catalog/objectaddress.c:3333 +#: catalog/objectaddress.c:3334 #, 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:3385 +#: catalog/objectaddress.c:3388 #, c-format msgid "rule %s on %s" msgstr "правило %s для отношения %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3431 +#: catalog/objectaddress.c:3434 #, c-format msgid "trigger %s on %s" msgstr "триггер %s в отношении %s" -#: catalog/objectaddress.c:3451 +#: catalog/objectaddress.c:3454 #, c-format msgid "schema %s" msgstr "схема %s" -#: catalog/objectaddress.c:3479 +#: catalog/objectaddress.c:3482 #, c-format msgid "statistics object %s" msgstr "объект статистики %s" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3513 #, c-format msgid "text search parser %s" msgstr "анализатор текстового поиска %s" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3544 #, c-format msgid "text search dictionary %s" msgstr "словарь текстового поиска %s" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3575 #, c-format msgid "text search template %s" msgstr "шаблон текстового поиска %s" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3606 #, c-format msgid "text search configuration %s" msgstr "конфигурация текстового поиска %s" -#: catalog/objectaddress.c:3616 +#: catalog/objectaddress.c:3619 #, c-format msgid "role %s" msgstr "роль %s" -#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 +#: catalog/objectaddress.c:3656 catalog/objectaddress.c:5505 #, c-format msgid "membership of role %s in role %s" msgstr "членство роли %s в роли %s" -#: catalog/objectaddress.c:3674 +#: catalog/objectaddress.c:3677 #, c-format msgid "database %s" msgstr "база данных %s" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3693 #, c-format msgid "tablespace %s" msgstr "табличное пространство %s" -#: catalog/objectaddress.c:3701 +#: catalog/objectaddress.c:3704 #, c-format msgid "foreign-data wrapper %s" msgstr "обёртка сторонних данных %s" -#: catalog/objectaddress.c:3711 +#: catalog/objectaddress.c:3714 #, c-format msgid "server %s" msgstr "сервер %s" -#: catalog/objectaddress.c:3744 +#: catalog/objectaddress.c:3747 #, c-format msgid "user mapping for %s on server %s" msgstr "сопоставление для пользователя %s на сервере %s" -#: catalog/objectaddress.c:3796 +#: catalog/objectaddress.c:3799 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых отношений, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3800 +#: catalog/objectaddress.c:3803 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "права по умолчанию для новых отношений, принадлежащих роли %s" -#: catalog/objectaddress.c:3806 +#: catalog/objectaddress.c:3809 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых последовательностей, принадлежащих роли %s в " "схеме %s" -#: catalog/objectaddress.c:3810 +#: catalog/objectaddress.c:3813 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "" "права по умолчанию для новых последовательностей, принадлежащих роли %s" -#: catalog/objectaddress.c:3816 +#: catalog/objectaddress.c:3819 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "права по умолчанию для новых функций, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3820 +#: catalog/objectaddress.c:3823 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "права по умолчанию для новых функций, принадлежащих роли %s" -#: catalog/objectaddress.c:3826 +#: catalog/objectaddress.c:3829 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "права по умолчанию для новых типов, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3830 +#: catalog/objectaddress.c:3833 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "права по умолчанию для новых типов, принадлежащих роли %s" -#: catalog/objectaddress.c:3836 +#: catalog/objectaddress.c:3839 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "права по умолчанию для новых схем, принадлежащих роли %s" -#: catalog/objectaddress.c:3843 +#: catalog/objectaddress.c:3846 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "" "права по умолчанию для новых объектов, принадлежащих роли %s в схеме %s" -#: catalog/objectaddress.c:3847 +#: catalog/objectaddress.c:3850 #, c-format msgid "default privileges belonging to role %s" msgstr "права по умолчанию для новых объектов, принадлежащих роли %s" -#: catalog/objectaddress.c:3869 +#: catalog/objectaddress.c:3872 #, c-format msgid "extension %s" msgstr "расширение %s" -#: catalog/objectaddress.c:3886 +#: catalog/objectaddress.c:3889 #, c-format msgid "event trigger %s" msgstr "событийный триггер %s" -#: catalog/objectaddress.c:3910 +#: catalog/objectaddress.c:3913 #, c-format msgid "parameter %s" msgstr "параметр %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3953 +#: catalog/objectaddress.c:3956 #, c-format msgid "policy %s on %s" msgstr "политика %s отношения %s" -#: catalog/objectaddress.c:3967 +#: catalog/objectaddress.c:3970 #, c-format msgid "publication %s" msgstr "публикация %s" -#: catalog/objectaddress.c:3980 +#: catalog/objectaddress.c:3983 #, c-format msgid "publication of schema %s in publication %s" msgstr "публикация схемы %s в публикации %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:4011 +#: catalog/objectaddress.c:4014 #, c-format msgid "publication of %s in publication %s" msgstr "публикуемое отношение %s в публикации %s" -#: catalog/objectaddress.c:4024 +#: catalog/objectaddress.c:4027 #, c-format msgid "subscription %s" msgstr "подписка %s" -#: catalog/objectaddress.c:4045 +#: catalog/objectaddress.c:4048 #, c-format msgid "transform for %s language %s" msgstr "преобразование для %s, языка %s" -#: catalog/objectaddress.c:4116 +#: catalog/objectaddress.c:4117 #, c-format msgid "table %s" msgstr "таблица %s" -#: catalog/objectaddress.c:4121 +#: catalog/objectaddress.c:4122 #, c-format msgid "index %s" msgstr "индекс %s" -#: catalog/objectaddress.c:4125 +#: catalog/objectaddress.c:4126 #, c-format msgid "sequence %s" msgstr "последовательность %s" -#: catalog/objectaddress.c:4129 +#: catalog/objectaddress.c:4130 #, c-format msgid "toast table %s" msgstr "TOAST-таблица %s" -#: catalog/objectaddress.c:4133 +#: catalog/objectaddress.c:4134 #, c-format msgid "view %s" msgstr "представление %s" -#: catalog/objectaddress.c:4137 +#: catalog/objectaddress.c:4138 #, c-format msgid "materialized view %s" msgstr "материализованное представление %s" -#: catalog/objectaddress.c:4141 +#: catalog/objectaddress.c:4142 #, c-format msgid "composite type %s" msgstr "составной тип %s" -#: catalog/objectaddress.c:4145 +#: catalog/objectaddress.c:4146 #, c-format msgid "foreign table %s" msgstr "сторонняя таблица %s" -#: catalog/objectaddress.c:4150 +#: catalog/objectaddress.c:4151 #, c-format msgid "relation %s" msgstr "отношение %s" -#: catalog/objectaddress.c:4191 +#: catalog/objectaddress.c:4192 #, c-format msgid "operator family %s for access method %s" msgstr "семейство операторов %s для метода доступа %s" @@ -6136,7 +6543,7 @@ msgstr "" msgid "return type of inverse transition function %s is not %s" msgstr "обратная функция перехода %s должна возвращать тип %s" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2991 #, c-format msgid "" "strictness of aggregate's forward and inverse transition functions must match" @@ -6155,7 +6562,7 @@ msgstr "" msgid "return type of combine function %s is not %s" msgstr "комбинирующая функция %s должна возвращать тип %s" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "" @@ -6172,12 +6579,12 @@ msgstr "функция сериализации %s должна возвраща msgid "return type of deserialization function %s is not %s" msgstr "функция десериализации %s должна возвращать тип %s" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 #, c-format msgid "cannot determine result data type" msgstr "не удалось определить тип результата" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:204 catalog/pg_proc.c:233 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "небезопасное использование псевдотипа \"internal\"" @@ -6198,7 +6605,7 @@ msgstr "" "оператор сортировки можно указать только для агрегатных функций с одним " "аргументом" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:386 +#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 #, c-format msgid "cannot change routine kind" msgstr "тип подпрограммы изменить нельзя" @@ -6223,13 +6630,13 @@ msgstr "\"%s\" — гипотезирующая агрегатная функц msgid "cannot change number of direct arguments of an aggregate function" msgstr "изменить число непосредственных аргументов агрегатной функции нельзя" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 -#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 -#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 -#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 -#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 +#: commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 +#: commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 +#: commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 +#: commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 +#: parser/parse_func.c:631 parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "функция %s не существует" @@ -6306,69 +6713,69 @@ msgstr "Эта операция не поддерживается для сек msgid "This operation is not supported for partitioned indexes." msgstr "Эта операция не поддерживается для секционированных индексов." -#: catalog/pg_collation.c:102 catalog/pg_collation.c:160 +#: catalog/pg_collation.c:101 catalog/pg_collation.c:159 #, c-format msgid "collation \"%s\" already exists, skipping" msgstr "правило сортировки \"%s\" уже существует, пропускается" -#: catalog/pg_collation.c:104 +#: catalog/pg_collation.c:103 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists, skipping" msgstr "" "правило сортировки \"%s\" для кодировки \"%s\" уже существует, пропускается" -#: catalog/pg_collation.c:112 catalog/pg_collation.c:167 +#: catalog/pg_collation.c:111 catalog/pg_collation.c:166 #, c-format msgid "collation \"%s\" already exists" msgstr "правило сортировки \"%s\" уже существует" -#: catalog/pg_collation.c:114 +#: catalog/pg_collation.c:113 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "правило сортировки \"%s\" для кодировки \"%s\" уже существует" -#: catalog/pg_constraint.c:690 +#: catalog/pg_constraint.c:732 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "ограничение \"%s\" для домена %s уже существует" -#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 +#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "ограничение \"%s\" для таблицы \"%s\" не существует" -#: catalog/pg_constraint.c:1083 +#: catalog/pg_constraint.c:1125 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "ограничение \"%s\" для домена %s не существует" -#: catalog/pg_conversion.c:67 +#: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" msgstr "преобразование \"%s\" уже существует" -#: catalog/pg_conversion.c:80 +#: catalog/pg_conversion.c:77 #, c-format msgid "default conversion for %s to %s already exists" msgstr "преобразование по умолчанию из %s в %s уже существует" -#: catalog/pg_depend.c:222 commands/extension.c:3368 +#: catalog/pg_depend.c:224 commands/extension.c:3397 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s уже относится к расширению \"%s\"" -#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3408 +#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s не относится к расширению \"%s\"" -#: catalog/pg_depend.c:232 +#: catalog/pg_depend.c:234 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "" "Расширениям не разрешается заменять объекты, которые им не принадлежат." -#: catalog/pg_depend.c:283 +#: catalog/pg_depend.c:285 #, c-format msgid "" "An extension may only use CREATE ... IF NOT EXISTS to skip object creation " @@ -6377,55 +6784,55 @@ msgstr "" "Расширение может выполнять CREATE ... IF NOT EXISTS только для того, чтобы " "не создавать объект, когда оно уже владеет конфликтующим объектом." -#: catalog/pg_depend.c:646 +#: catalog/pg_depend.c:648 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "" "ликвидировать зависимость от объекта %s нельзя, так как это системный объект" -#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554 +#: catalog/pg_enum.c:175 catalog/pg_enum.c:314 catalog/pg_enum.c:624 #, c-format msgid "invalid enum label \"%s\"" msgstr "неверная метка в перечислении \"%s\"" -#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555 +#: catalog/pg_enum.c:176 catalog/pg_enum.c:315 catalog/pg_enum.c:625 #, c-format msgid "Labels must be %d bytes or less." msgstr "Длина метки не должна превышать %d байт." -#: catalog/pg_enum.c:288 +#: catalog/pg_enum.c:343 #, c-format msgid "enum label \"%s\" already exists, skipping" msgstr "метка перечисления \"%s\" уже существует, пропускается" -#: catalog/pg_enum.c:295 catalog/pg_enum.c:598 +#: catalog/pg_enum.c:350 catalog/pg_enum.c:668 #, c-format msgid "enum label \"%s\" already exists" msgstr "метка перечисления \"%s\" уже существует" -#: catalog/pg_enum.c:350 catalog/pg_enum.c:593 +#: catalog/pg_enum.c:405 catalog/pg_enum.c:663 #, c-format msgid "\"%s\" is not an existing enum label" msgstr "в перечислении нет метки\"%s\"" -#: catalog/pg_enum.c:408 +#: catalog/pg_enum.c:463 #, c-format msgid "pg_enum OID value not set when in binary upgrade mode" msgstr "значение OID в pg_enum не задано в режиме двоичного обновления" -#: catalog/pg_enum.c:418 +#: catalog/pg_enum.c:473 #, c-format msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade" msgstr "" "конструкция ALTER TYPE ADD BEFORE/AFTER несовместима с двоичным обновлением " "данных" -#: catalog/pg_inherits.c:593 +#: catalog/pg_inherits.c:592 #, c-format msgid "cannot detach partition \"%s\"" msgstr "отсоединить секцию \"%s\" нельзя" -#: catalog/pg_inherits.c:595 +#: catalog/pg_inherits.c:594 #, c-format msgid "" "The partition is being detached concurrently or has an unfinished detach." @@ -6433,8 +6840,8 @@ msgstr "" "Эта секция отсоединяется параллельно или для неё не была завершена операция " "отсоединения." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4579 -#: commands/tablecmds.c:15520 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4800 +#: commands/tablecmds.c:16153 #, c-format msgid "" "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending " @@ -6443,12 +6850,12 @@ msgstr "" "Чтобы завершить неоконченную операцию отсоединения, выполните команду ALTER " "TABLE ... DETACH PARTITION ... FINALIZE." -#: catalog/pg_inherits.c:600 +#: catalog/pg_inherits.c:599 #, c-format msgid "cannot complete detaching partition \"%s\"" msgstr "завершить отсоединение секции \"%s\" нельзя" -#: catalog/pg_inherits.c:602 +#: catalog/pg_inherits.c:601 #, c-format msgid "There's no pending concurrent detach." msgstr "На данный момент все операции отсоединения завершены." @@ -6458,84 +6865,98 @@ msgstr "На данный момент все операции отсоедин msgid "schema \"%s\" already exists" msgstr "схема \"%s\" уже существует" -#: catalog/pg_operator.c:219 catalog/pg_operator.c:361 +#: catalog/pg_operator.c:213 catalog/pg_operator.c:355 #, c-format msgid "\"%s\" is not a valid operator name" msgstr "имя \"%s\" недопустимо для оператора" -#: catalog/pg_operator.c:370 +#: catalog/pg_operator.c:379 +#, c-format +msgid "operator %s already exists" +msgstr "оператор %s уже существует" + +#: catalog/pg_operator.c:445 commands/operatorcmds.c:600 +#, c-format +msgid "operator cannot be its own negator" +msgstr "оператор не может быть обратным к себе" + +#: catalog/pg_operator.c:572 #, c-format msgid "only binary operators can have commutators" msgstr "коммутативную операцию можно определить только для бинарных операторов" -#: catalog/pg_operator.c:374 commands/operatorcmds.c:509 +#: catalog/pg_operator.c:576 #, c-format msgid "only binary operators can have join selectivity" msgstr "" "функцию оценки соединения можно определить только для бинарных операторов" -#: catalog/pg_operator.c:378 +#: catalog/pg_operator.c:580 #, c-format msgid "only binary operators can merge join" msgstr "" "поддержку соединения слиянием можно обозначить только для бинарных операторов" -#: catalog/pg_operator.c:382 +#: catalog/pg_operator.c:584 #, c-format msgid "only binary operators can hash" msgstr "поддержку хеша можно обозначить только для бинарных операторов" -#: catalog/pg_operator.c:393 +#: catalog/pg_operator.c:593 #, c-format msgid "only boolean operators can have negators" msgstr "обратную операцию можно определить только для логических операторов" -#: catalog/pg_operator.c:397 commands/operatorcmds.c:517 +#: catalog/pg_operator.c:597 #, c-format msgid "only boolean operators can have restriction selectivity" msgstr "" "функцию оценки ограничения можно определить только для логических операторов" -#: catalog/pg_operator.c:401 commands/operatorcmds.c:521 +#: catalog/pg_operator.c:601 #, c-format msgid "only boolean operators can have join selectivity" msgstr "" "функцию оценки соединения можно определить только для логических операторов" -#: catalog/pg_operator.c:405 +#: catalog/pg_operator.c:605 #, c-format msgid "only boolean operators can merge join" msgstr "" "поддержку соединения слиянием можно обозначить только для логических " "операторов" -#: catalog/pg_operator.c:409 +#: catalog/pg_operator.c:609 #, c-format msgid "only boolean operators can hash" msgstr "поддержку хеша можно обозначить только для логических операторов" -#: catalog/pg_operator.c:421 +#: catalog/pg_operator.c:739 #, c-format -msgid "operator %s already exists" -msgstr "оператор %s уже существует" +msgid "commutator operator %s is already the commutator of operator %s" +msgstr "коммутирующий оператор %s уже является коммутирующим для оператора %s" -#: catalog/pg_operator.c:621 +#: catalog/pg_operator.c:744 #, c-format -msgid "operator cannot be its own negator or sort operator" -msgstr "" -"оператор не может быть обратным к себе или собственным оператором сортировки" +msgid "commutator operator %s is already the commutator of operator %u" +msgstr "коммутирующий оператор %s уже является коммутирующим для оператора %u" -#: catalog/pg_parameter_acl.c:53 +#: catalog/pg_operator.c:807 #, c-format -msgid "parameter ACL \"%s\" does not exist" -msgstr "ACL параметра \"%s\" не существует" +msgid "negator operator %s is already the negator of operator %s" +msgstr "обратный оператор %s уже является обратным для оператора %s" + +#: catalog/pg_operator.c:812 +#, c-format +msgid "negator operator %s is already the negator of operator %u" +msgstr "обратный оператор %s уже является обратным для оператора %u" -#: catalog/pg_parameter_acl.c:88 +#: catalog/pg_parameter_acl.c:50 #, c-format -msgid "invalid parameter name \"%s\"" -msgstr "неверное имя параметра \"%s\"" +msgid "parameter ACL \"%s\" does not exist" +msgstr "ACL параметра \"%s\" не существует" -#: catalog/pg_proc.c:132 parser/parse_func.c:2233 +#: catalog/pg_proc.c:130 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" @@ -6543,37 +6964,37 @@ msgstr[0] "функции не могут иметь больше %d аргум msgstr[1] "функции не могут иметь больше %d аргументов" msgstr[2] "функции не могут иметь больше %d аргументов" -#: catalog/pg_proc.c:376 +#: catalog/pg_proc.c:374 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "функция \"%s\" с аргументами таких типов уже существует" -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:386 #, c-format msgid "\"%s\" is an aggregate function." msgstr "\"%s\" — агрегатная функция." -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:388 #, c-format msgid "\"%s\" is a function." msgstr "\"%s\" — функция." -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:390 #, c-format msgid "\"%s\" is a procedure." msgstr "\"%s\" — процедура." -#: catalog/pg_proc.c:394 +#: catalog/pg_proc.c:392 #, c-format msgid "\"%s\" is a window function." msgstr "\"%s\" — оконная функция." -#: catalog/pg_proc.c:414 +#: catalog/pg_proc.c:412 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "определить выходные параметры для процедуры нельзя" -#: catalog/pg_proc.c:415 catalog/pg_proc.c:445 +#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 #, c-format msgid "cannot change return type of existing function" msgstr "изменить тип возврата существующей функции нельзя" @@ -6582,118 +7003,118 @@ msgstr "изменить тип возврата существующей фун #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 +#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 +#: catalog/pg_proc.c:517 catalog/pg_proc.c:541 #, c-format msgid "Use %s %s first." msgstr "Сначала выполните %s %s." -#: catalog/pg_proc.c:446 +#: catalog/pg_proc.c:444 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "Параметры OUT определяют другой тип строки." -#: catalog/pg_proc.c:490 +#: catalog/pg_proc.c:488 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "изменить имя входного параметра \"%s\" нельзя" -#: catalog/pg_proc.c:517 +#: catalog/pg_proc.c:515 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "" "для существующей функции нельзя убрать значения параметров по умолчанию" -#: catalog/pg_proc.c:541 +#: catalog/pg_proc.c:539 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "" "для существующего значения параметра по умолчанию нельзя изменить тип данных" -#: catalog/pg_proc.c:752 +#: catalog/pg_proc.c:750 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "встроенной функции \"%s\" нет" -#: catalog/pg_proc.c:845 +#: catalog/pg_proc.c:843 #, c-format msgid "SQL functions cannot return type %s" msgstr "SQL-функции не могут возвращать тип %s" -#: catalog/pg_proc.c:860 +#: catalog/pg_proc.c:858 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "SQL-функции не могут иметь аргументы типа %s" -#: catalog/pg_proc.c:988 executor/functions.c:1467 +#: catalog/pg_proc.c:986 executor/functions.c:1468 #, c-format msgid "SQL function \"%s\"" msgstr "SQL-функция \"%s\"" -#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 -#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 +#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 +#: catalog/pg_publication.c:82 catalog/pg_publication.c:88 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "добавить отношение \"%s\" в публикацию нельзя" -#: catalog/pg_publication.c:81 +#: catalog/pg_publication.c:76 #, c-format msgid "This operation is not supported for system tables." msgstr "Эта операция не поддерживается для системных таблиц." -#: catalog/pg_publication.c:89 +#: catalog/pg_publication.c:84 #, c-format msgid "This operation is not supported for temporary tables." msgstr "Эта операция не поддерживается для временных таблиц." -#: catalog/pg_publication.c:95 +#: catalog/pg_publication.c:90 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "Эта операция не поддерживается для нежурналируемых таблиц." -#: catalog/pg_publication.c:109 catalog/pg_publication.c:117 +#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "добавить схему \"%s\" в публикацию нельзя" -#: catalog/pg_publication.c:111 +#: catalog/pg_publication.c:106 #, c-format msgid "This operation is not supported for system schemas." msgstr "Эта операция не поддерживается для системных схем." -#: catalog/pg_publication.c:119 +#: catalog/pg_publication.c:114 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "Временные схемы нельзя реплицировать." -#: catalog/pg_publication.c:397 +#: catalog/pg_publication.c:392 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "отношение \"%s\" уже включено в публикацию \"%s\"" -#: catalog/pg_publication.c:539 +#: catalog/pg_publication.c:534 #, c-format msgid "cannot use system column \"%s\" in publication column list" msgstr "" "в списке публикуемых столбцов нельзя использовать системный столбец \"%s\"" -#: catalog/pg_publication.c:545 +#: catalog/pg_publication.c:540 #, c-format msgid "cannot use generated column \"%s\" in publication column list" msgstr "" "в списке публикуемых столбцов нельзя использовать генерируемый столбец \"%s\"" -#: catalog/pg_publication.c:551 +#: catalog/pg_publication.c:546 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "в списке публикуемых столбцов повторяется столбец \"%s\"" -#: catalog/pg_publication.c:641 +#: catalog/pg_publication.c:636 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "схема \"%s\" уже включена в публикацию \"%s\"" -#: catalog/pg_shdepend.c:830 +#: catalog/pg_shdepend.c:875 #, c-format msgid "" "\n" @@ -6711,43 +7132,48 @@ msgstr[2] "" "\n" "и объекты в %d других базах данных (см. список в протоколе сервера)" -#: catalog/pg_shdepend.c:1177 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "роль %u удалена другим процессом" -#: catalog/pg_shdepend.c:1189 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "табличное пространство %u удалено другим процессом" -#: catalog/pg_shdepend.c:1203 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "база данных %u удалена другим процессом" -#: catalog/pg_shdepend.c:1254 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "владелец объекта %s" -#: catalog/pg_shdepend.c:1256 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" msgstr "права доступа к объекту %s" -#: catalog/pg_shdepend.c:1258 +#: catalog/pg_shdepend.c:1303 +#, c-format +msgid "initial privileges for %s" +msgstr "начальные права для %s" + +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "субъект политики %s" -#: catalog/pg_shdepend.c:1260 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "табличное пространство для %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1268 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" @@ -6755,7 +7181,7 @@ msgstr[0] "%d объект (%s)" msgstr[1] "%d объекта (%s)" msgstr[2] "%d объектов (%s)" -#: catalog/pg_shdepend.c:1332 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "" "cannot drop objects owned by %s because they are required by the database " @@ -6764,7 +7190,7 @@ msgstr "" "удалить объекты, принадлежащие роли %s, нельзя, так как они нужны системе " "баз данных" -#: catalog/pg_shdepend.c:1498 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "" "cannot reassign ownership of objects owned by %s because they are required " @@ -6773,12 +7199,12 @@ msgstr "" "изменить владельца объектов, принадлежащих роли %s, нельзя, так как они " "нужны системе баз данных" -#: catalog/pg_subscription.c:424 +#: catalog/pg_subscription.c:438 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "удалить сопоставление отношений для подписки \"%s\" не получилось" -#: catalog/pg_subscription.c:426 +#: catalog/pg_subscription.c:440 #, c-format msgid "" "Table synchronization for relation \"%s\" is in progress and is in state " @@ -6788,7 +7214,7 @@ msgstr "Выполняется синхронизация отношения \"% #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:433 +#: catalog/pg_subscription.c:447 #, c-format msgid "" "Use %s to enable subscription if not already enabled or use %s to drop the " @@ -6797,45 +7223,45 @@ msgstr "" "Выполните %s, чтобы включить подписку, если она ещё не включена, либо %s, " "чтобы удалить её." -#: catalog/pg_type.c:134 catalog/pg_type.c:474 +#: catalog/pg_type.c:133 catalog/pg_type.c:474 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "значение OID в pg_type не задано в режиме двоичного обновления" -#: catalog/pg_type.c:254 +#: catalog/pg_type.c:253 #, c-format msgid "invalid type internal size %d" msgstr "неверный внутренний размер типа: %d" -#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 -#: catalog/pg_type.c:295 +#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285 +#: catalog/pg_type.c:294 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "" "выравнивание \"%c\" не подходит для типа, передаваемого по значению (с " "размером: %d)" -#: catalog/pg_type.c:302 +#: catalog/pg_type.c:301 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "внутренний размер %d не подходит для типа, передаваемого по значению" -#: catalog/pg_type.c:312 catalog/pg_type.c:318 +#: catalog/pg_type.c:311 catalog/pg_type.c:317 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "выравнивание \"%c\" не подходит для типа переменной длины" -#: catalog/pg_type.c:326 commands/typecmds.c:4146 +#: catalog/pg_type.c:325 commands/typecmds.c:4363 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "для типов постоянного размера применим только режим хранения PLAIN" -#: catalog/pg_type.c:955 +#: catalog/pg_type.c:978 #, c-format msgid "Failed while creating a multirange type for type \"%s\"." msgstr "Ошибка при создании мультидиапазонного типа для типа \"%s\"." -#: catalog/pg_type.c:956 +#: catalog/pg_type.c:979 #, c-format msgid "" "You can manually specify a multirange type name using the " @@ -6844,82 +7270,82 @@ msgstr "" "Имя мультидиапазонного типа можно указать вручную, воспользовавшись " "атрибутом \"multirange_type_name\"." -#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145 +#: catalog/storage.c:533 storage/buffer/bufmgr.c:1540 #, c-format msgid "invalid page in block %u of relation %s" msgstr "неверная страница в блоке %u отношения %s" -#: commands/aggregatecmds.c:171 +#: commands/aggregatecmds.c:167 #, c-format msgid "only ordered-set aggregates can be hypothetical" msgstr "гипотезирующими могут быть только сортирующие агрегатные функции" -#: commands/aggregatecmds.c:196 +#: commands/aggregatecmds.c:192 #, c-format msgid "aggregate attribute \"%s\" not recognized" msgstr "нераспознанный атрибут \"%s\" в определении агрегатной функции" -#: commands/aggregatecmds.c:206 +#: commands/aggregatecmds.c:202 #, c-format msgid "aggregate stype must be specified" msgstr "в определении агрегата требуется stype" -#: commands/aggregatecmds.c:210 +#: commands/aggregatecmds.c:206 #, c-format msgid "aggregate sfunc must be specified" msgstr "в определении агрегата требуется sfunc" -#: commands/aggregatecmds.c:222 +#: commands/aggregatecmds.c:218 #, c-format msgid "aggregate msfunc must be specified when mstype is specified" msgstr "в определении агрегата требуется msfunc, если указан mstype" -#: commands/aggregatecmds.c:226 +#: commands/aggregatecmds.c:222 #, c-format msgid "aggregate minvfunc must be specified when mstype is specified" msgstr "в определении агрегата требуется minvfunc, если указан mstype" -#: commands/aggregatecmds.c:233 +#: commands/aggregatecmds.c:229 #, c-format msgid "aggregate msfunc must not be specified without mstype" msgstr "msfunc для агрегата не должна указываться без mstype" -#: commands/aggregatecmds.c:237 +#: commands/aggregatecmds.c:233 #, c-format msgid "aggregate minvfunc must not be specified without mstype" msgstr "minvfunc для агрегата не должна указываться без mstype" -#: commands/aggregatecmds.c:241 +#: commands/aggregatecmds.c:237 #, c-format msgid "aggregate mfinalfunc must not be specified without mstype" msgstr "mfinalfunc для агрегата не должна указываться без mstype" -#: commands/aggregatecmds.c:245 +#: commands/aggregatecmds.c:241 #, c-format msgid "aggregate msspace must not be specified without mstype" msgstr "msspace для агрегата не должна указываться без mstype" -#: commands/aggregatecmds.c:249 +#: commands/aggregatecmds.c:245 #, c-format msgid "aggregate minitcond must not be specified without mstype" msgstr "minitcond для агрегата не должна указываться без mstype" -#: commands/aggregatecmds.c:278 +#: commands/aggregatecmds.c:274 #, c-format msgid "aggregate input type must be specified" msgstr "в определении агрегата требуется входной тип" -#: commands/aggregatecmds.c:308 +#: commands/aggregatecmds.c:304 #, c-format msgid "basetype is redundant with aggregate input type specification" msgstr "в определении агрегата с указанием входного типа не нужен базовый тип" -#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392 +#: commands/aggregatecmds.c:347 commands/aggregatecmds.c:388 #, c-format msgid "aggregate transition data type cannot be %s" msgstr "переходным типом агрегата не может быть %s" -#: commands/aggregatecmds.c:363 +#: commands/aggregatecmds.c:359 #, c-format msgid "" "serialization functions may be specified only when the aggregate transition " @@ -6928,100 +7354,100 @@ msgstr "" "функции сериализации могут задаваться, только когда переходный тип данных " "агрегата - %s" -#: commands/aggregatecmds.c:373 +#: commands/aggregatecmds.c:369 #, c-format msgid "" "must specify both or neither of serialization and deserialization functions" msgstr "функции сериализации и десериализации должны задаваться совместно" -#: commands/aggregatecmds.c:438 commands/functioncmds.c:639 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "" "параметр \"parallel\" должен иметь значение SAFE, RESTRICTED или UNSAFE" -#: commands/aggregatecmds.c:494 +#: commands/aggregatecmds.c:490 #, c-format msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "" "параметр \"%s\" должен иметь характеристику READ_ONLY, SHAREABLE или " "READ_WRITE" -#: commands/alter.c:86 commands/event_trigger.c:174 +#: commands/alter.c:83 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" msgstr "событийный триггер \"%s\" уже существует" -#: commands/alter.c:89 commands/foreigncmds.c:593 +#: commands/alter.c:86 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "обёртка сторонних данных \"%s\" уже существует" -#: commands/alter.c:92 commands/foreigncmds.c:884 +#: commands/alter.c:89 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "сервер \"%s\" уже существует" -#: commands/alter.c:95 commands/proclang.c:133 +#: commands/alter.c:92 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "язык \"%s\" уже существует" -#: commands/alter.c:98 commands/publicationcmds.c:771 +#: commands/alter.c:95 commands/publicationcmds.c:764 #, c-format msgid "publication \"%s\" already exists" msgstr "публикация \"%s\" уже существует" -#: commands/alter.c:101 commands/subscriptioncmds.c:657 +#: commands/alter.c:98 commands/subscriptioncmds.c:669 #, c-format msgid "subscription \"%s\" already exists" msgstr "подписка \"%s\" уже существует" -#: commands/alter.c:124 +#: commands/alter.c:121 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "преобразование \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:128 +#: commands/alter.c:125 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "объект статистики \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:132 +#: commands/alter.c:129 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "анализатор текстового поиска \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:136 +#: commands/alter.c:133 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "словарь текстового поиска \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:140 +#: commands/alter.c:137 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "шаблон текстового поиска \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:144 +#: commands/alter.c:141 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "конфигурация текстового поиска \"%s\" уже существует в схеме \"%s\"" -#: commands/alter.c:217 +#: commands/alter.c:214 #, c-format msgid "must be superuser to rename %s" msgstr "переименовать \"%s\" может только суперпользователь" -#: commands/alter.c:259 commands/subscriptioncmds.c:636 -#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 -#: commands/subscriptioncmds.c:1837 +#: commands/alter.c:256 commands/subscriptioncmds.c:648 +#: commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 +#: commands/subscriptioncmds.c:1918 #, c-format msgid "password_required=false is superuser-only" msgstr "задать password_required=false может только суперпользователь" -#: commands/alter.c:260 commands/subscriptioncmds.c:637 -#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 -#: commands/subscriptioncmds.c:1838 +#: commands/alter.c:257 commands/subscriptioncmds.c:649 +#: commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 +#: commands/subscriptioncmds.c:1919 #, c-format msgid "" "Subscriptions with the password_required option set to false may only be " @@ -7030,7 +7456,7 @@ msgstr "" "Подписки с параметром password_required option, равным false, могут " "создавать или изменять только суперпользователи." -#: commands/alter.c:775 +#: commands/alter.c:735 #, c-format msgid "must be superuser to set schema of %s" msgstr "для назначения схемы объекта %s нужно быть суперпользователем" @@ -7038,7 +7464,7 @@ msgstr "для назначения схемы объекта %s нужно бы #: commands/amcmds.c:60 #, c-format msgid "permission denied to create access method \"%s\"" -msgstr "нет прав на создание метода доступа \"%s\"" +msgstr "нет прав для создания метода доступа \"%s\"" #: commands/amcmds.c:62 #, c-format @@ -7050,7 +7476,7 @@ msgstr "Для создания метода доступа нужно быть msgid "access method \"%s\" already exists" msgstr "метод доступа \"%s\" уже существует" -#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 +#: commands/amcmds.c:154 commands/indexcmds.c:224 commands/indexcmds.c:850 #: commands/opclasscmds.c:375 commands/opclasscmds.c:833 #, c-format msgid "access method \"%s\" does not exist" @@ -7061,46 +7487,46 @@ msgstr "метод доступа \"%s\" не существует" msgid "handler function is not specified" msgstr "не указана функция-обработчик" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 -#: parser/parse_clause.c:941 +#: commands/amcmds.c:264 commands/event_trigger.c:200 +#: commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 +#: parser/parse_clause.c:943 #, c-format msgid "function %s must return type %s" msgstr "функция %s должна возвращать тип %s" -#: commands/analyze.c:228 +#: commands/analyze.c:217 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "\"%s\" пропускается --- анализировать эту стороннюю таблицу нельзя" -#: commands/analyze.c:245 +#: commands/analyze.c:234 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "" "\"%s\" пропускается --- анализировать не таблицы или специальные системные " "таблицы нельзя" -#: commands/analyze.c:325 +#: commands/analyze.c:314 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "анализируется дерево наследования \"%s.%s\"" -#: commands/analyze.c:330 +#: commands/analyze.c:319 #, c-format msgid "analyzing \"%s.%s\"" msgstr "анализируется \"%s.%s\"" -#: commands/analyze.c:395 +#: commands/analyze.c:385 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "столбец \"%s\" отношения \"%s\" указан неоднократно" -#: commands/analyze.c:787 +#: commands/analyze.c:785 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "автоматический анализ таблицы \"%s.%s.%s\"\n" -#: commands/analyze.c:1334 +#: commands/analyze.c:1300 #, c-format msgid "" "\"%s\": scanned %d of %u pages, containing %.0f live rows and %.0f dead " @@ -7110,7 +7536,7 @@ msgstr "" "%.0f, \"мёртвых\" строк: %.0f; строк в выборке: %d, примерное общее число " "строк: %.0f" -#: commands/analyze.c:1418 +#: commands/analyze.c:1384 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -7119,7 +7545,7 @@ msgstr "" "пропускается анализ дерева наследования \"%s.%s\" --- это дерево " "наследования не содержит дочерних таблиц" -#: commands/analyze.c:1516 +#: commands/analyze.c:1482 #, c-format msgid "" "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree " @@ -7128,22 +7554,22 @@ msgstr "" "пропускается анализ дерева наследования \"%s.%s\" --- это дерево " "наследования не содержит анализируемых дочерних таблиц" -#: commands/async.c:646 +#: commands/async.c:612 #, c-format msgid "channel name cannot be empty" msgstr "имя канала не может быть пустым" -#: commands/async.c:652 +#: commands/async.c:618 #, c-format msgid "channel name too long" msgstr "слишком длинное имя канала" -#: commands/async.c:657 +#: commands/async.c:623 #, c-format msgid "payload string too long" msgstr "слишком длинная строка сообщения-нагрузки" -#: commands/async.c:876 +#: commands/async.c:842 #, c-format msgid "" "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" @@ -7151,17 +7577,17 @@ msgstr "" "выполнить PREPARE для транзакции с командами LISTEN, UNLISTEN или NOTIFY " "нельзя" -#: commands/async.c:980 +#: commands/async.c:946 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "слишком много уведомлений в очереди NOTIFY" -#: commands/async.c:1602 +#: commands/async.c:1553 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "очередь NOTIFY заполнена на %.0f%%" -#: commands/async.c:1604 +#: commands/async.c:1555 #, c-format msgid "" "The server process with PID %d is among those with the oldest transactions." @@ -7169,7 +7595,7 @@ msgstr "" "В число серверных процессов с самыми старыми транзакциями входит процесс с " "PID %d." -#: commands/async.c:1607 +#: commands/async.c:1558 #, c-format msgid "" "The NOTIFY queue cannot be emptied until that process ends its current " @@ -7178,22 +7604,22 @@ msgstr "" "Очередь NOTIFY можно будет освободить, только когда этот процесс завершит " "текущую транзакцию." -#: commands/cluster.c:130 +#: commands/cluster.c:128 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "нераспознанный параметр CLUSTER: \"%s\"" -#: commands/cluster.c:160 commands/cluster.c:433 +#: commands/cluster.c:159 commands/cluster.c:433 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "кластеризовать временные таблицы других сеансов нельзя" -#: commands/cluster.c:178 +#: commands/cluster.c:177 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "таблица \"%s\" ранее не кластеризовалась по какому-либо индексу" -#: commands/cluster.c:192 commands/tablecmds.c:14256 commands/tablecmds.c:16099 +#: commands/cluster.c:191 commands/tablecmds.c:14797 commands/tablecmds.c:16729 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "индекс \"%s\" для таблицы \"%s\" не существует" @@ -7208,7 +7634,7 @@ msgstr "кластеризовать разделяемый каталог не msgid "cannot vacuum temporary tables of other sessions" msgstr "очищать временные таблицы других сеансов нельзя" -#: commands/cluster.c:513 commands/tablecmds.c:16109 +#: commands/cluster.c:513 commands/tablecmds.c:16739 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не является индексом таблицы \"%s\"" @@ -7236,23 +7662,23 @@ msgstr "нельзя кластеризовать таблицу по невер msgid "cannot mark index clustered in partitioned table" msgstr "пометить индекс как кластеризованный в секционированной таблице нельзя" -#: commands/cluster.c:950 +#: commands/cluster.c:956 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "кластеризация \"%s.%s\" путём сканирования индекса \"%s\"" -#: commands/cluster.c:956 +#: commands/cluster.c:962 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "" "кластеризация \"%s.%s\" путём последовательного сканирования и сортировки" -#: commands/cluster.c:961 +#: commands/cluster.c:967 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "очистка \"%s.%s\"" -#: commands/cluster.c:988 +#: commands/cluster.c:994 #, c-format msgid "" "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" @@ -7260,7 +7686,7 @@ msgstr "" "\"%s.%s\": найдено удаляемых версий строк: %.0f, неудаляемых: %.0f, " "просмотрено страниц: %u" -#: commands/cluster.c:993 +#: commands/cluster.c:999 #, c-format msgid "" "%.0f dead row versions cannot be removed yet.\n" @@ -7269,33 +7695,39 @@ msgstr "" "В данный момент нельзя удалить \"мёртвых\" строк %.0f.\n" "%s." -#: commands/collationcmds.c:112 +#: commands/cluster.c:1744 +#, c-format +msgid "permission denied to cluster \"%s\", skipping it" +msgstr "нет прав для кластеризации отношения \"%s\", оно пропускается" + +#: commands/collationcmds.c:110 #, c-format msgid "collation attribute \"%s\" not recognized" msgstr "атрибут COLLATION \"%s\" не распознан" -#: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7883 -#: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 -#: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 -#: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 -#: replication/pgoutput/pgoutput.c:386 replication/walsender.c:996 -#: replication/walsender.c:1018 replication/walsender.c:1028 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 +#: commands/define.c:388 commands/tablecmds.c:8129 +#: replication/pgoutput/pgoutput.c:314 replication/pgoutput/pgoutput.c:337 +#: replication/pgoutput/pgoutput.c:351 replication/pgoutput/pgoutput.c:361 +#: replication/pgoutput/pgoutput.c:371 replication/pgoutput/pgoutput.c:381 +#: replication/pgoutput/pgoutput.c:393 replication/walsender.c:1146 +#: replication/walsender.c:1168 replication/walsender.c:1178 +#: replication/walsender.c:1187 replication/walsender.c:1426 #, c-format msgid "conflicting or redundant options" msgstr "конфликтующие или избыточные параметры" -#: commands/collationcmds.c:126 +#: commands/collationcmds.c:124 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." msgstr "LOCALE нельзя указать вместе с LC_COLLATE или LC_CTYPE." -#: commands/collationcmds.c:132 +#: commands/collationcmds.c:130 #, c-format msgid "FROM cannot be specified together with any other options." msgstr "FROM нельзя задать вместе с каким-либо другим параметром." -#: commands/collationcmds.c:191 +#: commands/collationcmds.c:189 #, c-format msgid "collation \"default\" cannot be copied" msgstr "правило сортировки \"default\" нельзя скопировать" @@ -7305,103 +7737,97 @@ msgstr "правило сортировки \"default\" нельзя скопи msgid "unrecognized collation provider: %s" msgstr "нераспознанный провайдер правил сортировки: %s" -#: commands/collationcmds.c:253 commands/collationcmds.c:259 -#: commands/collationcmds.c:267 +#: commands/collationcmds.c:253 commands/collationcmds.c:264 +#: commands/collationcmds.c:270 commands/collationcmds.c:278 #, c-format msgid "parameter \"%s\" must be specified" msgstr "необходимо указать параметр \"%s\"" -#: commands/collationcmds.c:282 commands/dbcommands.c:1091 +#: commands/collationcmds.c:293 commands/dbcommands.c:1134 #, c-format msgid "using standard form \"%s\" for ICU locale \"%s\"" msgstr "используется стандартная форма \"%s\" локали ICU \"%s\"" -#: commands/collationcmds.c:301 +#: commands/collationcmds.c:312 #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "" "недетерминированные правила сортировки не поддерживаются данным провайдером" -#: commands/collationcmds.c:306 commands/dbcommands.c:1110 +#: commands/collationcmds.c:317 commands/dbcommands.c:1087 #, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" msgstr "правила ICU можно указать, только если выбран провайдер локали ICU" -#: commands/collationcmds.c:325 +#: commands/collationcmds.c:340 #, c-format msgid "current database's encoding is not supported with this provider" msgstr "кодировка текущей БД не поддерживается данным провайдером" -#: commands/collationcmds.c:385 +#: commands/collationcmds.c:409 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "" "правило сортировки \"%s\" для кодировки \"%s\" уже существует в схеме \"%s\"" -#: commands/collationcmds.c:396 +#: commands/collationcmds.c:420 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "правило сортировки \"%s\" уже существует в схеме \"%s\"" -#: commands/collationcmds.c:421 +#: commands/collationcmds.c:445 #, c-format msgid "cannot refresh version of default collation" msgstr "нельзя обновить версию правила сортировки по умолчанию" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command -#: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7708 commands/tablecmds.c:7718 -#: commands/tablecmds.c:13958 commands/tablecmds.c:17233 -#: commands/tablecmds.c:17254 commands/typecmds.c:3637 commands/typecmds.c:3720 -#: commands/typecmds.c:4013 +#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 +#: commands/tablecmds.c:7905 commands/tablecmds.c:7915 +#: commands/tablecmds.c:7917 commands/tablecmds.c:14499 +#: commands/tablecmds.c:17884 commands/tablecmds.c:17905 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 #, c-format msgid "Use %s instead." msgstr "Выполните %s." -#: commands/collationcmds.c:451 commands/dbcommands.c:2488 +#: commands/collationcmds.c:480 commands/dbcommands.c:2566 #, c-format msgid "changing version from %s to %s" msgstr "изменение версии с %s на %s" -#: commands/collationcmds.c:466 commands/dbcommands.c:2501 +#: commands/collationcmds.c:495 commands/dbcommands.c:2579 #, c-format msgid "version has not changed" msgstr "версия не была изменена" -#: commands/collationcmds.c:499 commands/dbcommands.c:2667 +#: commands/collationcmds.c:528 commands/dbcommands.c:2749 #, c-format msgid "database with OID %u does not exist" msgstr "база данных с OID %u не существует" -#: commands/collationcmds.c:520 +#: commands/collationcmds.c:554 #, c-format msgid "collation with OID %u does not exist" msgstr "правило сортировки с OID %u не существует" -#: commands/collationcmds.c:808 +#: commands/collationcmds.c:848 #, c-format msgid "must be superuser to import system collations" msgstr "" "импортировать системные правила сортировки может только суперпользователь" -#: commands/collationcmds.c:836 commands/copyfrom.c:1671 commands/copyto.c:656 -#: libpq/be-secure-common.c:59 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не удалось выполнить команду \"%s\": %m" - -#: commands/collationcmds.c:928 commands/collationcmds.c:1013 +#: commands/collationcmds.c:968 commands/collationcmds.c:1053 #, c-format msgid "no usable system locales were found" msgstr "пригодные системные локали не найдены" -#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 -#: commands/dbcommands.c:1934 commands/dbcommands.c:2132 -#: commands/dbcommands.c:2370 commands/dbcommands.c:2461 -#: commands/dbcommands.c:2571 commands/dbcommands.c:3071 -#: utils/init/postinit.c:1021 utils/init/postinit.c:1085 -#: utils/init/postinit.c:1157 +#: commands/comment.c:61 commands/dbcommands.c:1665 commands/dbcommands.c:1883 +#: commands/dbcommands.c:1995 commands/dbcommands.c:2193 +#: commands/dbcommands.c:2433 commands/dbcommands.c:2526 +#: commands/dbcommands.c:2650 commands/dbcommands.c:3161 +#: utils/init/postinit.c:1034 utils/init/postinit.c:1098 +#: utils/init/postinit.c:1171 #, c-format msgid "database \"%s\" does not exist" msgstr "база данных \"%s\" не существует" @@ -7411,42 +7837,42 @@ msgstr "база данных \"%s\" не существует" msgid "cannot set comment on relation \"%s\"" msgstr "задать комментарий для отношения \"%s\" нельзя" -#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "функция \"%s\" была вызвана не менеджером триггеров" -#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "функция \"%s\" должна запускаться в триггере AFTER для строк" -#: commands/constraint.c:84 +#: commands/constraint.c:82 #, c-format msgid "function \"%s\" must be fired for INSERT or UPDATE" msgstr "функция \"%s\" должна запускаться для INSERT или UPDATE" -#: commands/conversioncmds.c:69 +#: commands/conversioncmds.c:62 #, c-format msgid "source encoding \"%s\" does not exist" msgstr "исходная кодировка \"%s\" не существует" -#: commands/conversioncmds.c:76 +#: commands/conversioncmds.c:69 #, c-format msgid "destination encoding \"%s\" does not exist" msgstr "целевая кодировка \"%s\" не существует" -#: commands/conversioncmds.c:89 +#: commands/conversioncmds.c:82 #, c-format msgid "encoding conversion to or from \"SQL_ASCII\" is not supported" msgstr "преобразование кодировки из/в \"SQL_ASCII\" не поддерживается" -#: commands/conversioncmds.c:102 +#: commands/conversioncmds.c:95 #, c-format msgid "encoding conversion function %s must return type %s" msgstr "функция преобразования кодировки %s должна возвращать тип %s" -#: commands/conversioncmds.c:132 +#: commands/conversioncmds.c:125 #, c-format msgid "" "encoding conversion function %s returned incorrect result for empty input" @@ -7454,12 +7880,12 @@ msgstr "" "функция преобразования кодировки %s возвратила некорректный результат для " "пустой строки" -#: commands/copy.c:86 +#: commands/copy.c:84 #, c-format msgid "permission denied to COPY to or from an external program" msgstr "нет прав для выполнения COPY с внешней программой" -#: commands/copy.c:87 +#: commands/copy.c:85 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may COPY to or from an " @@ -7468,7 +7894,7 @@ msgstr "" "Использовать COPY с внешними программами могут только роли с правами роли " "\"%s\"." -#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109 +#: commands/copy.c:87 commands/copy.c:98 commands/copy.c:107 #, c-format msgid "" "Anyone can COPY to stdout or from stdin. psql's \\copy command also works " @@ -7477,262 +7903,216 @@ msgstr "" "Не имея административных прав, можно использовать COPY с stdout и stdin (а " "также команду psql \\copy)." -#: commands/copy.c:97 +#: commands/copy.c:95 #, c-format msgid "permission denied to COPY from a file" msgstr "нет прав для выполнения COPY с чтением файла" -#: commands/copy.c:98 +#: commands/copy.c:96 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY from a file." msgstr "" "Выполнять COPY с чтением файла могут только роли с правами роли \"%s\"." -#: commands/copy.c:106 +#: commands/copy.c:104 #, c-format msgid "permission denied to COPY to a file" msgstr "нет прав для выполнения COPY с записью в файл" -#: commands/copy.c:107 +#: commands/copy.c:105 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to a file." msgstr "" "Выполнять COPY с записью в файл могут только роли с правами роли \"%s\"." -#: commands/copy.c:195 +#: commands/copy.c:193 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM не поддерживается с защитой на уровне строк." -#: commands/copy.c:196 +#: commands/copy.c:194 #, c-format msgid "Use INSERT statements instead." msgstr "Используйте операторы INSERT." -#: commands/copy.c:290 -#, c-format -msgid "MERGE not supported in COPY" -msgstr "MERGE не поддерживается в COPY" - -#: commands/copy.c:383 +#: commands/copy.c:375 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "использовать \"%s\" с параметром HEADER в COPY TO нельзя" -#: commands/copy.c:392 +#: commands/copy.c:384 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s требует логическое значение или \"match\"" -#: commands/copy.c:451 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:782 commands/copy.c:798 +#: commands/copy.c:815 commands/copy.c:841 commands/copy.c:851 +#, c-format +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s нельзя использовать с %s" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:441 +#, c-format +msgid "COPY %s \"%s\" not recognized" +msgstr "параметр COPY %s \"%s\" не распознан" + +#: commands/copy.c:502 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "формат \"%s\" для COPY не распознан" -#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 -#: commands/copy.c:554 +#: commands/copy.c:560 commands/copy.c:575 commands/copy.c:590 +#: commands/copy.c:609 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "аргументом параметра \"%s\" должен быть список имён столбцов" -#: commands/copy.c:566 +#: commands/copy.c:621 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "аргументом параметра \"%s\" должно быть название допустимой кодировки" -#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2318 +#: commands/copy.c:642 commands/dbcommands.c:866 commands/dbcommands.c:2381 #, c-format msgid "option \"%s\" not recognized" msgstr "параметр \"%s\" не распознан" -#: commands/copy.c:585 -#, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "в режиме BINARY нельзя указывать DELIMITER" - -#: commands/copy.c:590 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:655 commands/copy.c:660 commands/copy.c:665 +#: commands/copy.c:740 #, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "в режиме BINARY нельзя указывать NULL" +msgid "cannot specify %s in BINARY mode" +msgstr "в режиме BINARY нельзя указывать %s" -#: commands/copy.c:595 +#: commands/copy.c:670 #, c-format -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "в режиме BINARY нельзя указывать DEFAULT" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "в режиме BINARY допускается только ON_ERROR STOP" -#: commands/copy.c:617 +#: commands/copy.c:692 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "разделитель для COPY должен быть однобайтным символом" -#: commands/copy.c:624 +#: commands/copy.c:699 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "" "разделителем для COPY не может быть символ новой строки или возврата каретки" -#: commands/copy.c:630 +#: commands/copy.c:705 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "" "представление NULL для COPY не может включать символ новой строки или " "возврата каретки" -#: commands/copy.c:640 +#: commands/copy.c:715 #, c-format msgid "COPY default representation cannot use newline or carriage return" msgstr "" "представление DEFAULT для COPY не может включать символ новой строки или " "возврата каретки" -#: commands/copy.c:658 +#: commands/copy.c:733 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "\"%s\" не может быть разделителем для COPY" -#: commands/copy.c:664 -#, c-format -msgid "cannot specify HEADER in BINARY mode" -msgstr "в режиме BINARY нельзя использовать HEADER" - -#: commands/copy.c:670 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:747 commands/copy.c:764 commands/copy.c:776 +#: commands/copy.c:791 commands/copy.c:807 #, c-format -msgid "COPY quote available only in CSV mode" -msgstr "определить кавычки для COPY можно только в режиме CSV" +msgid "COPY %s requires CSV mode" +msgstr "для COPY %s требуется режим CSV" -#: commands/copy.c:675 +#: commands/copy.c:752 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "символ кавычек для COPY должен быть однобайтным" -#: commands/copy.c:680 +#: commands/copy.c:757 #, c-format msgid "COPY delimiter and quote must be different" msgstr "символ кавычек для COPY должен отличаться от разделителя" -#: commands/copy.c:686 -#, c-format -msgid "COPY escape available only in CSV mode" -msgstr "определить спецсимвол для COPY можно только в режиме CSV" - -#: commands/copy.c:691 +#: commands/copy.c:769 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "спецсимвол для COPY должен быть однобайтным" -#: commands/copy.c:697 -#, c-format -msgid "COPY force quote available only in CSV mode" -msgstr "параметр force quote для COPY можно использовать только в режиме CSV" - -#: commands/copy.c:701 -#, c-format -msgid "COPY force quote only available using COPY TO" -msgstr "параметр force quote для COPY можно использовать только с COPY TO" - -#: commands/copy.c:707 -#, c-format -msgid "COPY force not null available only in CSV mode" -msgstr "" -"параметр force not null для COPY можно использовать только в режиме CSV" - -#: commands/copy.c:711 -#, c-format -msgid "COPY force not null only available using COPY FROM" -msgstr "параметр force not null для COPY можно использовать только с COPY FROM" - -#: commands/copy.c:717 -#, c-format -msgid "COPY force null available only in CSV mode" -msgstr "параметр force null для COPY можно использовать только в режиме CSV" - -#: commands/copy.c:722 -#, c-format -msgid "COPY force null only available using COPY FROM" -msgstr "параметр force null для COPY можно использовать только с COPY FROM" - -#: commands/copy.c:728 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:823 commands/copy.c:859 #, c-format -msgid "COPY delimiter must not appear in the NULL specification" -msgstr "разделитель для COPY не должен присутствовать в представлении NULL" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "символ разделителя для COPY не должен присутствовать в указании %s" -#: commands/copy.c:735 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:832 commands/copy.c:868 #, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "символ кавычек в CSV не должен присутствовать в представлении NULL" +msgid "CSV quote character must not appear in the %s specification" +msgstr "символ кавычек в CSV не должен присутствовать в указании %s" -#: commands/copy.c:742 -#, c-format -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "параметр DEFAULT для COPY можно использовать только с COPY FROM" - -#: commands/copy.c:748 -#, c-format -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "разделитель для COPY не должен присутствовать в представлении DEFAULT" - -#: commands/copy.c:755 -#, c-format -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "символ кавычек в CSV не должен присутствовать в представлении DEFAULT" - -#: commands/copy.c:763 +#: commands/copy.c:877 #, c-format msgid "NULL specification and DEFAULT specification cannot be the same" msgstr "представления NULL и DEFAULT не могут быть одинаковыми" -#: commands/copy.c:825 +#: commands/copy.c:939 #, c-format msgid "column \"%s\" is a generated column" msgstr "столбец \"%s\" — генерируемый" -#: commands/copy.c:827 +#: commands/copy.c:941 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Генерируемые столбцы нельзя использовать в COPY." -#: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 -#: commands/tablecmds.c:2401 commands/tablecmds.c:3123 -#: commands/tablecmds.c:3622 parser/parse_relation.c:3698 -#: parser/parse_relation.c:3708 parser/parse_relation.c:3726 -#: parser/parse_relation.c:3733 parser/parse_relation.c:3747 -#: utils/adt/tsvector_op.c:2855 +#: commands/copy.c:956 commands/indexcmds.c:1890 commands/statscmds.c:239 +#: commands/tablecmds.c:2526 commands/tablecmds.c:2997 +#: commands/tablecmds.c:3808 parser/parse_relation.c:3692 +#: parser/parse_relation.c:3702 parser/parse_relation.c:3720 +#: parser/parse_relation.c:3727 parser/parse_relation.c:3741 +#: utils/adt/tsvector_op.c:2853 #, c-format msgid "column \"%s\" does not exist" msgstr "столбец \"%s\" не существует" -#: commands/copy.c:849 commands/tablecmds.c:2427 commands/trigger.c:958 -#: parser/parse_target.c:1084 parser/parse_target.c:1095 +#: commands/copy.c:963 commands/tablecmds.c:2552 commands/trigger.c:951 +#: parser/parse_target.c:1083 parser/parse_target.c:1094 #, c-format msgid "column \"%s\" specified more than once" msgstr "столбец \"%s\" указан неоднократно" -#: commands/copyfrom.c:122 +#: commands/copyfrom.c:118 #, c-format msgid "COPY %s" msgstr "COPY %s" -#: commands/copyfrom.c:130 +#: commands/copyfrom.c:126 #, c-format msgid "COPY %s, line %llu, column %s" msgstr "COPY %s, строка %llu, столбец %s" -#: commands/copyfrom.c:135 commands/copyfrom.c:181 +#: commands/copyfrom.c:131 commands/copyfrom.c:177 #, c-format msgid "COPY %s, line %llu" msgstr "COPY %s, строка %llu" -#: commands/copyfrom.c:147 +#: commands/copyfrom.c:143 #, c-format msgid "COPY %s, line %llu, column %s: \"%s\"" msgstr "COPY %s, строка %llu, столбец %s: \"%s\"" -#: commands/copyfrom.c:157 +#: commands/copyfrom.c:153 #, c-format msgid "COPY %s, line %llu, column %s: null input" msgstr "COPY %s, строка %llu, столбец %s: значение NULL" -#: commands/copyfrom.c:174 +#: commands/copyfrom.c:170 #, c-format msgid "COPY %s, line %llu: \"%s\"" msgstr "COPY %s, строка %llu: \"%s\"" @@ -7783,24 +8163,29 @@ msgstr "" "выполнить COPY FREEZE нельзя, так как таблица не была создана или усечена в " "текущей подтранзакции" -#: commands/copyfrom.c:1414 +#: commands/copyfrom.c:1313 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "столбец FORCE_NOT_NULL \"%s\" не фигурирует в COPY" +msgid "%llu row was skipped due to data type incompatibility" +msgid_plural "%llu rows were skipped due to data type incompatibility" +msgstr[0] "из-за несовместимости типов данных пропущена %llu строка" +msgstr[1] "из-за несовместимости типов данных пропущены %llu строки" +msgstr[2] "из-за несовместимости типов данных пропущены %llu строк" -#: commands/copyfrom.c:1437 +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1448 commands/copyfrom.c:1491 commands/copyto.c:601 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "столбец FORCE_NULL \"%s\" не фигурирует в COPY" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "столбец %s \"%s\" не входит в список столбцов COPY" -#: commands/copyfrom.c:1490 utils/mb/mbutils.c:386 +#: commands/copyfrom.c:1544 utils/mb/mbutils.c:385 #, c-format msgid "" "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "" "стандартной функции преобразования из кодировки \"%s\" в \"%s\" не существует" -#: commands/copyfrom.c:1690 +#: commands/copyfrom.c:1742 #, c-format msgid "" "COPY FROM instructs the PostgreSQL server process to read a file. You may " @@ -7810,17 +8195,17 @@ msgstr "" "файла. Возможно, на самом деле вам нужно клиентское средство, например, " "\\copy в psql." -#: commands/copyfrom.c:1703 commands/copyto.c:708 +#: commands/copyfrom.c:1755 commands/copyto.c:706 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - это каталог" -#: commands/copyfrom.c:1771 commands/copyto.c:306 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1823 commands/copyto.c:299 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "не удалось закрыть канал сообщений с внешней командой: %m" -#: commands/copyfrom.c:1786 commands/copyto.c:311 +#: commands/copyfrom.c:1838 commands/copyto.c:304 #, c-format msgid "program \"%s\" failed" msgstr "сбой программы \"%s\"" @@ -7861,17 +8246,17 @@ msgid "could not read from COPY file: %m" msgstr "не удалось прочитать файл COPY: %m" #: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:377 +#: replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:381 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "неожиданный обрыв соединения с клиентом при открытой транзакции" -#: commands/copyfromparse.c:294 +#: commands/copyfromparse.c:294 replication/walsender.c:772 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "неожиданный тип сообщения 0x%02X при вводе данных COPY из stdin" -#: commands/copyfromparse.c:317 +#: commands/copyfromparse.c:317 replication/walsender.c:803 #, c-format msgid "COPY from stdin failed: %s" msgstr "ошибка при вводе данных COPY из stdin: %s" @@ -7898,8 +8283,8 @@ msgstr "" "несоответствие имени столбца в поле %d строки заголовка: получено \"%s\", " "ожидалось \"%s\"" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 -#: commands/copyfromparse.c:1768 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 +#: commands/copyfromparse.c:1810 #, c-format msgid "extra data after last expected column" msgstr "лишние данные после содержимого последнего столбца" @@ -7909,193 +8294,211 @@ msgstr "лишние данные после содержимого послед msgid "missing data for column \"%s\"" msgstr "нет данных для столбца \"%s\"" -#: commands/copyfromparse.c:999 +#: commands/copyfromparse.c:990 #, c-format -msgid "received copy data after EOF marker" -msgstr "после маркера конца файла продолжаются данные COPY" +msgid "" +"skipping row due to data type incompatibility at line %llu for column " +"\"%s\": \"%s\"" +msgstr "" +"строка пропускается из-за несовместимости данных в строке %llu, столбце " +"\"%s\": \"%s\"" + +#: commands/copyfromparse.c:998 +#, c-format +msgid "" +"skipping row due to data type incompatibility at line %llu for column " +"\"%s\": null input" +msgstr "" +"строка пропускается из-за несовместимости данных в строке %llu, столбце " +"\"%s\": значение null" + +#: commands/copyfromparse.c:1044 +#, c-format +msgid "received copy data after EOF marker" +msgstr "после маркера конца файла продолжаются данные COPY" -#: commands/copyfromparse.c:1006 +#: commands/copyfromparse.c:1051 #, c-format msgid "row field count is %d, expected %d" msgstr "количество полей в строке: %d, ожидалось: %d" -#: commands/copyfromparse.c:1294 commands/copyfromparse.c:1311 +#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 #, c-format msgid "literal carriage return found in data" msgstr "в данных обнаружен явный возврат каретки" -#: commands/copyfromparse.c:1295 commands/copyfromparse.c:1312 +#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 #, c-format msgid "unquoted carriage return found in data" msgstr "в данных обнаружен возврат каретки не в кавычках" -#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314 +#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "Представьте возврат каретки как \"\\r\"." -#: commands/copyfromparse.c:1298 commands/copyfromparse.c:1315 +#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "Заключите возврат каретки в кавычки CSV." -#: commands/copyfromparse.c:1327 +#: commands/copyfromparse.c:1369 #, c-format msgid "literal newline found in data" msgstr "в данных обнаружен явный символ новой строки" -#: commands/copyfromparse.c:1328 +#: commands/copyfromparse.c:1370 #, c-format msgid "unquoted newline found in data" msgstr "в данных обнаружен явный символ новой строки не в кавычках" -#: commands/copyfromparse.c:1330 +#: commands/copyfromparse.c:1372 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "Представьте символ новой строки как \"\\n\"." -#: commands/copyfromparse.c:1331 +#: commands/copyfromparse.c:1373 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "Заключите символ новой строки в кавычки CSV." -#: commands/copyfromparse.c:1377 commands/copyfromparse.c:1413 +#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "маркер \"конец копии\" не соответствует предыдущему стилю новой строки" -#: commands/copyfromparse.c:1386 commands/copyfromparse.c:1402 +#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 #, c-format msgid "end-of-copy marker corrupt" msgstr "маркер \"конец копии\" испорчен" -#: commands/copyfromparse.c:1704 commands/copyfromparse.c:1919 +#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 #, c-format msgid "unexpected default marker in COPY data" msgstr "неожиданный маркер DEFAULT в данных COPY" -#: commands/copyfromparse.c:1705 commands/copyfromparse.c:1920 +#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 #, c-format msgid "Column \"%s\" has no default value." msgstr "Для столбца \"%s\" не определено значение по умолчанию." -#: commands/copyfromparse.c:1852 +#: commands/copyfromparse.c:1894 #, c-format msgid "unterminated CSV quoted field" msgstr "незавершённое поле в кавычках CSV" -#: commands/copyfromparse.c:1954 commands/copyfromparse.c:1973 +#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 #, c-format msgid "unexpected EOF in COPY data" msgstr "неожиданный конец данных COPY" -#: commands/copyfromparse.c:1963 +#: commands/copyfromparse.c:2005 #, c-format msgid "invalid field size" msgstr "неверный размер поля" -#: commands/copyfromparse.c:1986 +#: commands/copyfromparse.c:2028 #, c-format msgid "incorrect binary data format" msgstr "неверный двоичный формат данных" -#: commands/copyto.c:236 +#: commands/copyto.c:229 #, c-format msgid "could not write to COPY program: %m" msgstr "не удалось записать в канал программы COPY: %m" -#: commands/copyto.c:241 +#: commands/copyto.c:234 #, c-format msgid "could not write to COPY file: %m" msgstr "не удалось записать в файл COPY: %m" -#: commands/copyto.c:386 +#: commands/copyto.c:379 #, c-format msgid "cannot copy from view \"%s\"" msgstr "копировать из представления \"%s\" нельзя" -#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 -#: commands/copyto.c:411 +#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 +#: commands/copyto.c:404 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "Попробуйте вариацию COPY (SELECT ...) TO." -#: commands/copyto.c:392 +#: commands/copyto.c:385 #, c-format msgid "cannot copy from materialized view \"%s\"" msgstr "копировать из материализованного представления \"%s\" нельзя" -#: commands/copyto.c:398 +#: commands/copyto.c:391 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "копировать из сторонней таблицы \"%s\" нельзя" -#: commands/copyto.c:404 +#: commands/copyto.c:397 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "копировать из последовательности \"%s\" нельзя" -#: commands/copyto.c:409 +#: commands/copyto.c:402 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "копировать из секционированной таблицы \"%s\" нельзя" -#: commands/copyto.c:415 +#: commands/copyto.c:408 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "копировать из отношения \"%s\", не являющегося таблицей, нельзя" -#: commands/copyto.c:467 +#: commands/copyto.c:460 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "правила DO INSTEAD NOTHING не поддерживаются с COPY" -#: commands/copyto.c:481 +#: commands/copyto.c:474 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "условные правила DO INSTEAD не поддерживаются с COPY" -#: commands/copyto.c:485 +#: commands/copyto.c:478 #, c-format -msgid "DO ALSO rules are not supported for the COPY" +msgid "DO ALSO rules are not supported for COPY" msgstr "правила DO ALSO не поддерживаются с COPY" -#: commands/copyto.c:490 +#: commands/copyto.c:483 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "составные правила DO INSTEAD не поддерживаются с COPY" -#: commands/copyto.c:500 +#: commands/copyto.c:493 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) не поддерживается" -#: commands/copyto.c:517 +#: commands/copyto.c:499 +#, c-format +msgid "COPY query must not be a utility command" +msgstr "служебная команда в запросе COPY не допускается" + +#: commands/copyto.c:515 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "в запросе COPY должно быть предложение RETURNING" -#: commands/copyto.c:546 +#: commands/copyto.c:544 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "отношение, задействованное в операторе COPY, изменилось" -#: commands/copyto.c:605 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "столбец FORCE_QUOTE \"%s\" не фигурирует в COPY" - -#: commands/copyto.c:673 +#: commands/copyto.c:671 #, c-format msgid "relative path not allowed for COPY to file" msgstr "при выполнении COPY в файл нельзя указывать относительный путь" -#: commands/copyto.c:692 +#: commands/copyto.c:690 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не удалось открыть файл \"%s\" для записи: %m" -#: commands/copyto.c:695 +#: commands/copyto.c:693 #, c-format msgid "" "COPY TO instructs the PostgreSQL server process to write a file. You may " @@ -8105,124 +8508,135 @@ msgstr "" "Возможно, на самом деле вам нужно клиентское средство, например, \\copy в " "psql." -#: commands/createas.c:215 commands/createas.c:523 +#: commands/createas.c:210 commands/createas.c:516 #, c-format msgid "too many column names were specified" msgstr "указано слишком много имён столбцов" -#: commands/createas.c:546 +#: commands/createas.c:539 #, c-format msgid "policies not yet implemented for this command" msgstr "политики для этой команды ещё не реализованы" -#: commands/dbcommands.c:822 +#: commands/dbcommands.c:829 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION больше не поддерживается" -#: commands/dbcommands.c:823 +#: commands/dbcommands.c:830 #, c-format msgid "Consider using tablespaces instead." msgstr "Рассмотрите возможность использования табличных пространств." -#: commands/dbcommands.c:848 +#: commands/dbcommands.c:855 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "значения OID меньше %u зарезервированы для системных объектов" -#: commands/dbcommands.c:879 utils/adt/ascii.c:146 +#: commands/dbcommands.c:886 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%d не является верным кодом кодировки" -#: commands/dbcommands.c:890 utils/adt/ascii.c:128 +#: commands/dbcommands.c:897 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%s не является верным названием кодировки" -#: commands/dbcommands.c:919 +#: commands/dbcommands.c:931 #, c-format msgid "unrecognized locale provider: %s" msgstr "нераспознанный провайдер локали: %s" -#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 -#: commands/user.c:740 +#: commands/dbcommands.c:944 commands/dbcommands.c:2414 commands/user.c:299 +#: commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "неверный предел подключений: %d" -#: commands/dbcommands.c:953 +#: commands/dbcommands.c:965 #, c-format msgid "permission denied to create database" -msgstr "нет прав на создание базы данных" +msgstr "нет прав для создания базы данных" -#: commands/dbcommands.c:977 +#: commands/dbcommands.c:989 #, c-format msgid "template database \"%s\" does not exist" msgstr "шаблон базы данных \"%s\" не существует" -#: commands/dbcommands.c:987 +#: commands/dbcommands.c:999 #, c-format msgid "cannot use invalid database \"%s\" as template" msgstr "использовать некорректную базу \"%s\" в качестве шаблона нельзя" -#: commands/dbcommands.c:988 commands/dbcommands.c:2380 -#: utils/init/postinit.c:1100 +#: commands/dbcommands.c:1000 commands/dbcommands.c:2444 +#: utils/init/postinit.c:1113 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "Выполните DROP DATABASE для удаления некорректных баз данных." -#: commands/dbcommands.c:999 +#: commands/dbcommands.c:1011 #, c-format msgid "permission denied to copy database \"%s\"" -msgstr "нет прав на копирование базы данных \"%s\"" +msgstr "нет прав для копирования базы данных \"%s\"" -#: commands/dbcommands.c:1016 +#: commands/dbcommands.c:1028 #, c-format msgid "invalid create database strategy \"%s\"" msgstr "неверная стратегия создания БД \"%s\"" -#: commands/dbcommands.c:1017 +#: commands/dbcommands.c:1029 #, c-format msgid "Valid strategies are \"wal_log\" and \"file_copy\"." msgstr "Возможные стратегии: \"wal_log\" и \"file_copy\"." -#: commands/dbcommands.c:1043 +#: commands/dbcommands.c:1050 #, c-format msgid "invalid server encoding %d" msgstr "неверная кодировка для сервера: %d" -#: commands/dbcommands.c:1049 +#: commands/dbcommands.c:1056 #, c-format msgid "invalid LC_COLLATE locale name: \"%s\"" msgstr "неверное имя локали LC_COLLATE: \"%s\"" -#: commands/dbcommands.c:1050 commands/dbcommands.c:1056 +#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." msgstr "Если эта локаль свойственна ICU, используйте ICU_LOCALE." -#: commands/dbcommands.c:1055 +#: commands/dbcommands.c:1062 #, c-format msgid "invalid LC_CTYPE locale name: \"%s\"" msgstr "неверное имя локали LC_CTYPE: \"%s\"" -#: commands/dbcommands.c:1066 +#: commands/dbcommands.c:1074 +#, c-format +msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" +msgstr "" +"BUILTIN_LOCALE можно указать, только если выбран встроенный провайдер локали" + +#: commands/dbcommands.c:1082 +#, c-format +msgid "ICU locale cannot be specified unless locale provider is ICU" +msgstr "локаль ICU можно указать, только если выбран провайдер локали ICU" + +#: commands/dbcommands.c:1100 +#, c-format +msgid "LOCALE or BUILTIN_LOCALE must be specified" +msgstr "необходимо указать LOCALE или BUILTIN_LOCALE" + +#: commands/dbcommands.c:1109 #, c-format msgid "encoding \"%s\" is not supported with ICU provider" msgstr "кодировка \"%s\" не поддерживается провайдером ICU" -#: commands/dbcommands.c:1076 +#: commands/dbcommands.c:1119 #, c-format msgid "LOCALE or ICU_LOCALE must be specified" msgstr "необходимо задать LOCALE или ICU_LOCALE" -#: commands/dbcommands.c:1105 -#, c-format -msgid "ICU locale cannot be specified unless locale provider is ICU" -msgstr "локаль ICU можно указать, только если выбран провайдер локали ICU" - -#: commands/dbcommands.c:1128 +#: commands/dbcommands.c:1163 #, c-format msgid "" "new encoding (%s) is incompatible with the encoding of the template database " @@ -8230,7 +8644,7 @@ msgid "" msgstr "" "новая кодировка (%s) несовместима с кодировкой шаблона базы данных (%s)" -#: commands/dbcommands.c:1131 +#: commands/dbcommands.c:1166 #, c-format msgid "" "Use the same encoding as in the template database, or use template0 as " @@ -8239,7 +8653,7 @@ msgstr "" "Используйте кодировку шаблона базы данных или выберите в качестве шаблона " "template0." -#: commands/dbcommands.c:1136 +#: commands/dbcommands.c:1171 #, c-format msgid "" "new collation (%s) is incompatible with the collation of the template " @@ -8248,7 +8662,7 @@ msgstr "" "новое правило сортировки (%s) несовместимо с правилом в шаблоне базы данных " "(%s)" -#: commands/dbcommands.c:1138 +#: commands/dbcommands.c:1173 #, c-format msgid "" "Use the same collation as in the template database, or use template0 as " @@ -8257,7 +8671,7 @@ msgstr "" "Используйте то же правило сортировки, что и в шаблоне базы данных, или " "выберите в качестве шаблона template0." -#: commands/dbcommands.c:1143 +#: commands/dbcommands.c:1178 #, c-format msgid "" "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database " @@ -8266,7 +8680,7 @@ msgstr "" "новый параметр LC_CTYPE (%s) несовместим с LC_CTYPE в шаблоне базы данных " "(%s)" -#: commands/dbcommands.c:1145 +#: commands/dbcommands.c:1180 #, c-format msgid "" "Use the same LC_CTYPE as in the template database, or use template0 as " @@ -8275,7 +8689,7 @@ msgstr "" "Используйте тот же LC_CTYPE, что и в шаблоне базы данных, или выберите в " "качестве шаблона template0." -#: commands/dbcommands.c:1150 +#: commands/dbcommands.c:1185 #, c-format msgid "" "new locale provider (%s) does not match locale provider of the template " @@ -8284,7 +8698,7 @@ msgstr "" "новый провайдер локали (%s) не соответствует провайдеру локали в базе-" "шаблоне (%s)" -#: commands/dbcommands.c:1152 +#: commands/dbcommands.c:1187 #, c-format msgid "" "Use the same locale provider as in the template database, or use template0 " @@ -8293,14 +8707,14 @@ msgstr "" "Используйте тот же провайдер локали, что и в базе-шаблоне, или выберите в " "качестве шаблона template0." -#: commands/dbcommands.c:1164 +#: commands/dbcommands.c:1199 #, c-format msgid "" "new ICU locale (%s) is incompatible with the ICU locale of the template " "database (%s)" msgstr "новая локаль ICU (%s) несовместима с локалью ICU в базе-шаблоне (%s)" -#: commands/dbcommands.c:1166 +#: commands/dbcommands.c:1201 #, c-format msgid "" "Use the same ICU locale as in the template database, or use template0 as " @@ -8309,7 +8723,7 @@ msgstr "" "Используйте ту же локаль ICU, что и в базе-шаблоне, или выберите в качестве " "шаблона template0." -#: commands/dbcommands.c:1177 +#: commands/dbcommands.c:1212 #, c-format msgid "" "new ICU collation rules (%s) are incompatible with the ICU collation rules " @@ -8318,7 +8732,7 @@ msgstr "" "новые правила сортировки ICU (%s) несовместимы с правилами сортировки в " "шаблоне базы данных (%s)" -#: commands/dbcommands.c:1179 +#: commands/dbcommands.c:1214 #, c-format msgid "" "Use the same ICU collation rules as in the template database, or use " @@ -8327,7 +8741,7 @@ msgstr "" "Используйте те же правила сортировки, что и в шаблоне базы данных, или " "выберите в качестве шаблона template0." -#: commands/dbcommands.c:1202 +#: commands/dbcommands.c:1243 #, c-format msgid "" "template database \"%s\" has a collation version, but no actual collation " @@ -8336,13 +8750,13 @@ msgstr "" "в шаблоне \"%s\" имеется версия правила сортировки, но фактическую версию " "правила сортировки определить нельзя" -#: commands/dbcommands.c:1207 +#: commands/dbcommands.c:1248 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "" "в базе-шаблоне \"%s\" обнаружено несоответствие версии правила сортировки" -#: commands/dbcommands.c:1209 +#: commands/dbcommands.c:1250 #, c-format msgid "" "The template database was created using collation version %s, but the " @@ -8351,7 +8765,7 @@ msgstr "" "База-шаблон была создана с версией правила сортировки %s, но операционная " "система предоставляет версию %s." -#: commands/dbcommands.c:1212 +#: commands/dbcommands.c:1253 #, c-format msgid "" "Rebuild all objects in the template database that use the default collation " @@ -8362,18 +8776,18 @@ msgstr "" "сортировки, и выполните ALTER DATABASE %s REFRESH COLLATION VERSION, либо " "соберите PostgreSQL с правильной версией библиотеки." -#: commands/dbcommands.c:1248 commands/dbcommands.c:1980 +#: commands/dbcommands.c:1298 commands/dbcommands.c:2041 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "" "pg_global нельзя использовать в качестве табличного пространства по умолчанию" -#: commands/dbcommands.c:1274 +#: commands/dbcommands.c:1324 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "не удалось назначить новое табличное пространство по умолчанию \"%s\"" -#: commands/dbcommands.c:1276 +#: commands/dbcommands.c:1326 #, c-format msgid "" "There is a conflict because database \"%s\" already has some tables in this " @@ -8382,62 +8796,63 @@ msgstr "" "База данных \"%s\" содержит таблицы, которые уже находятся в этом табличном " "пространстве." -#: commands/dbcommands.c:1306 commands/dbcommands.c:1853 +#: commands/dbcommands.c:1356 commands/dbcommands.c:1912 #, c-format msgid "database \"%s\" already exists" msgstr "база данных \"%s\" уже существует" -#: commands/dbcommands.c:1320 +#: commands/dbcommands.c:1370 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "исходная база \"%s\" занята другими пользователями" -#: commands/dbcommands.c:1342 +#: commands/dbcommands.c:1392 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "OID базы данных %u уже используется базой данных \"%s\"" -#: commands/dbcommands.c:1348 +#: commands/dbcommands.c:1398 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "каталог данных с указанным OID %u уже существует" -#: commands/dbcommands.c:1520 commands/dbcommands.c:1535 +#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 +#: utils/adt/pg_locale.c:2588 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "кодировка \"%s\" не соответствует локали \"%s\"" -#: commands/dbcommands.c:1523 +#: commands/dbcommands.c:1574 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "Для выбранного параметра LC_CTYPE требуется кодировка \"%s\"." -#: commands/dbcommands.c:1538 +#: commands/dbcommands.c:1589 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "Для выбранного параметра LC_COLLATE требуется кодировка \"%s\"." -#: commands/dbcommands.c:1619 +#: commands/dbcommands.c:1672 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "база данных \"%s\" не существует, пропускается" -#: commands/dbcommands.c:1643 +#: commands/dbcommands.c:1696 #, c-format msgid "cannot drop a template database" msgstr "удалить шаблон базы данных нельзя" -#: commands/dbcommands.c:1649 +#: commands/dbcommands.c:1702 #, c-format msgid "cannot drop the currently open database" msgstr "удалить базу данных, открытую в данный момент, нельзя" -#: commands/dbcommands.c:1662 +#: commands/dbcommands.c:1715 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "база \"%s\" используется активным слотом логической репликации" -#: commands/dbcommands.c:1664 +#: commands/dbcommands.c:1717 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." @@ -8445,12 +8860,12 @@ msgstr[0] "Обнаружен %d активный слот." msgstr[1] "Обнаружены %d активных слота." msgstr[2] "Обнаружено %d активных слотов." -#: commands/dbcommands.c:1678 +#: commands/dbcommands.c:1731 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "база \"%s\" используется в подписке с логической репликацией" -#: commands/dbcommands.c:1680 +#: commands/dbcommands.c:1733 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." @@ -8458,36 +8873,36 @@ msgstr[0] "Обнаружена %d подписка." msgstr[1] "Обнаружены %d подписки." msgstr[2] "Обнаружено %d подписок." -#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 -#: commands/dbcommands.c:2002 +#: commands/dbcommands.c:1754 commands/dbcommands.c:1934 +#: commands/dbcommands.c:2063 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "база данных \"%s\" занята другими пользователями" -#: commands/dbcommands.c:1835 +#: commands/dbcommands.c:1894 #, c-format msgid "permission denied to rename database" -msgstr "нет прав на переименование базы данных" +msgstr "нет прав для переименования базы данных" -#: commands/dbcommands.c:1864 +#: commands/dbcommands.c:1923 #, c-format msgid "current database cannot be renamed" msgstr "нельзя переименовать текущую базу данных" -#: commands/dbcommands.c:1958 +#: commands/dbcommands.c:2019 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "" "изменить табличное пространство открытой в данный момент базы данных нельзя" -#: commands/dbcommands.c:2064 +#: commands/dbcommands.c:2125 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "" "некоторые отношения базы данных \"%s\" уже находятся в табличном " "пространстве \"%s\"" -#: commands/dbcommands.c:2066 +#: commands/dbcommands.c:2127 #, c-format msgid "" "You must move them back to the database's default tablespace before using " @@ -8496,38 +8911,38 @@ msgstr "" "Прежде чем выполнять эту команду, вы должны вернуть их назад в табличное " "пространство по умолчанию для этой базы данных." -#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 -#: commands/dbcommands.c:3209 commands/dbcommands.c:3322 +#: commands/dbcommands.c:2256 commands/dbcommands.c:2999 +#: commands/dbcommands.c:3299 commands/dbcommands.c:3412 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "в старом каталоге базы данных \"%s\" могли остаться ненужные файлы" -#: commands/dbcommands.c:2254 +#: commands/dbcommands.c:2317 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "нераспознанный параметр DROP DATABASE: \"%s\"" -#: commands/dbcommands.c:2332 +#: commands/dbcommands.c:2395 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "параметр \"%s\" нельзя задать с другими параметрами" -#: commands/dbcommands.c:2379 +#: commands/dbcommands.c:2443 #, c-format msgid "cannot alter invalid database \"%s\"" msgstr "изменить свойства некорректной базы \"%s\" нельзя" -#: commands/dbcommands.c:2396 +#: commands/dbcommands.c:2460 #, c-format msgid "cannot disallow connections for current database" msgstr "запретить подключения к текущей базе данных нельзя" -#: commands/dbcommands.c:2611 +#: commands/dbcommands.c:2690 #, c-format msgid "permission denied to change owner of database" -msgstr "нет прав на изменение владельца базы данных" +msgstr "нет прав для изменения владельца базы данных" -#: commands/dbcommands.c:3015 +#: commands/dbcommands.c:3105 #, c-format msgid "" "There are %d other session(s) and %d prepared transaction(s) using the " @@ -8536,7 +8951,7 @@ msgstr "" "С этой базой данных связаны другие сеансы (%d) и подготовленные транзакции " "(%d)." -#: commands/dbcommands.c:3018 +#: commands/dbcommands.c:3108 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." @@ -8544,7 +8959,7 @@ msgstr[0] "Эта база данных используется ещё в %d с msgstr[1] "Эта база данных используется ещё в %d сеансах." msgstr[2] "Эта база данных используется ещё в %d сеансах." -#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3797 +#: commands/dbcommands.c:3113 storage/ipc/procarray.c:3859 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -8552,204 +8967,204 @@ msgstr[0] "С этой базой данных связана %d подгото msgstr[1] "С этой базой данных связаны %d подготовленные транзакции." msgstr[2] "С этой базой данных связаны %d подготовленных транзакций." -#: commands/dbcommands.c:3165 +#: commands/dbcommands.c:3255 #, c-format msgid "missing directory \"%s\"" msgstr "отсутствует каталог \"%s\"" -#: commands/dbcommands.c:3223 commands/tablespace.c:190 -#: commands/tablespace.c:639 +#: commands/dbcommands.c:3313 commands/tablespace.c:184 +#: commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "не удалось получить информацию о каталоге \"%s\": %m" -#: commands/define.c:54 commands/define.c:258 commands/define.c:290 -#: commands/define.c:318 commands/define.c:364 +#: commands/define.c:53 commands/define.c:257 commands/define.c:289 +#: commands/define.c:317 commands/define.c:363 #, c-format msgid "%s requires a parameter" msgstr "%s требует параметр" -#: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 commands/define.c:225 commands/define.c:243 +#: commands/define.c:86 commands/define.c:97 commands/define.c:191 +#: commands/define.c:209 commands/define.c:224 commands/define.c:242 #, c-format msgid "%s requires a numeric value" msgstr "%s требует числовое значение" -#: commands/define.c:154 +#: commands/define.c:153 #, c-format msgid "%s requires a Boolean value" msgstr "%s требует логическое значение" -#: commands/define.c:168 commands/define.c:177 commands/define.c:327 +#: commands/define.c:167 commands/define.c:176 commands/define.c:326 #, c-format msgid "%s requires an integer value" msgstr "%s требует целое значение" -#: commands/define.c:272 +#: commands/define.c:271 #, c-format msgid "argument of %s must be a name" msgstr "аргументом %s должно быть имя" -#: commands/define.c:302 +#: commands/define.c:301 #, c-format msgid "argument of %s must be a type name" msgstr "аргументом %s должно быть имя типа" -#: commands/define.c:348 +#: commands/define.c:347 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "неверный аргумент для %s: \"%s\"" -#: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2895 +#: commands/dropcmds.c:96 commands/functioncmds.c:1382 +#: utils/adt/ruleutils.c:2910 #, c-format msgid "\"%s\" is an aggregate function" msgstr "функция \"%s\" является агрегатной" -#: commands/dropcmds.c:103 +#: commands/dropcmds.c:98 #, c-format msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Используйте DROP AGGREGATE для удаления агрегатных функций." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3706 -#: commands/tablecmds.c:3864 commands/tablecmds.c:3916 -#: commands/tablecmds.c:16524 tcop/utility.c:1336 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3892 +#: commands/tablecmds.c:4050 commands/tablecmds.c:4102 +#: commands/tablecmds.c:17161 tcop/utility.c:1325 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "отношение \"%s\" не существует, пропускается" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1281 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1409 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "схема \"%s\" не существует, пропускается" -#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "тип \"%s\" не существует, пропускается" -#: commands/dropcmds.c:257 +#: commands/dropcmds.c:252 #, c-format msgid "access method \"%s\" does not exist, skipping" msgstr "метод доступа \"%s\" не существует, пропускается" -#: commands/dropcmds.c:275 +#: commands/dropcmds.c:270 #, c-format msgid "collation \"%s\" does not exist, skipping" msgstr "правило сортировки \"%s\" не существует, пропускается" -#: commands/dropcmds.c:282 +#: commands/dropcmds.c:277 #, c-format msgid "conversion \"%s\" does not exist, skipping" msgstr "преобразование \"%s\" не существует, пропускается" -#: commands/dropcmds.c:293 commands/statscmds.c:654 +#: commands/dropcmds.c:288 commands/statscmds.c:664 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "объект статистики \"%s\" не существует, пропускается" -#: commands/dropcmds.c:300 +#: commands/dropcmds.c:295 #, c-format msgid "text search parser \"%s\" does not exist, skipping" msgstr "анализатор текстового поиска \"%s\" не существует, пропускается" -#: commands/dropcmds.c:307 +#: commands/dropcmds.c:302 #, c-format msgid "text search dictionary \"%s\" does not exist, skipping" msgstr "словарь текстового поиска \"%s\" не существует, пропускается" -#: commands/dropcmds.c:314 +#: commands/dropcmds.c:309 #, c-format msgid "text search template \"%s\" does not exist, skipping" msgstr "шаблон текстового поиска \"%s\" не существует, пропускается" -#: commands/dropcmds.c:321 +#: commands/dropcmds.c:316 #, c-format msgid "text search configuration \"%s\" does not exist, skipping" msgstr "конфигурация текстового поиска \"%s\" не существует, пропускается" -#: commands/dropcmds.c:326 +#: commands/dropcmds.c:321 #, c-format msgid "extension \"%s\" does not exist, skipping" msgstr "расширение \"%s\" не существует, пропускается" -#: commands/dropcmds.c:336 +#: commands/dropcmds.c:331 #, c-format msgid "function %s(%s) does not exist, skipping" msgstr "функция %s(%s) не существует, пропускается" -#: commands/dropcmds.c:349 +#: commands/dropcmds.c:344 #, c-format msgid "procedure %s(%s) does not exist, skipping" msgstr "процедура %s(%s) не существует, пропускается" -#: commands/dropcmds.c:362 +#: commands/dropcmds.c:357 #, c-format msgid "routine %s(%s) does not exist, skipping" msgstr "подпрограмма %s(%s) не существует, пропускается" -#: commands/dropcmds.c:375 +#: commands/dropcmds.c:370 #, c-format msgid "aggregate %s(%s) does not exist, skipping" msgstr "агрегатная функция %s(%s) не существует, пропускается" -#: commands/dropcmds.c:388 +#: commands/dropcmds.c:383 #, c-format msgid "operator %s does not exist, skipping" msgstr "оператор %s не существует, пропускается" -#: commands/dropcmds.c:394 +#: commands/dropcmds.c:389 #, c-format msgid "language \"%s\" does not exist, skipping" msgstr "язык \"%s\" не существует, пропускается" -#: commands/dropcmds.c:403 +#: commands/dropcmds.c:398 #, c-format msgid "cast from type %s to type %s does not exist, skipping" msgstr "приведение %s к типу %s не существует, пропускается" -#: commands/dropcmds.c:412 +#: commands/dropcmds.c:407 #, c-format msgid "transform for type %s language \"%s\" does not exist, skipping" msgstr "преобразование для типа %s, языка \"%s\" не существует, пропускается" -#: commands/dropcmds.c:420 +#: commands/dropcmds.c:415 #, c-format msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping" msgstr "триггер \"%s\" для отношения \"%s\" не существует, пропускается" -#: commands/dropcmds.c:429 +#: commands/dropcmds.c:424 #, c-format msgid "policy \"%s\" for relation \"%s\" does not exist, skipping" msgstr "политика \"%s\" для отношения \"%s\" не существует, пропускается" -#: commands/dropcmds.c:436 +#: commands/dropcmds.c:431 #, c-format msgid "event trigger \"%s\" does not exist, skipping" msgstr "событийный триггер \"%s\" не существует, пропускается" -#: commands/dropcmds.c:442 +#: commands/dropcmds.c:437 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist, skipping" msgstr "правило \"%s\" для отношения \"%s\" не существует, пропускается" -#: commands/dropcmds.c:449 +#: commands/dropcmds.c:444 #, c-format msgid "foreign-data wrapper \"%s\" does not exist, skipping" msgstr "обёртка сторонних данных \"%s\" не существует, пропускается" -#: commands/dropcmds.c:453 commands/foreigncmds.c:1360 +#: commands/dropcmds.c:448 commands/foreigncmds.c:1360 #, c-format msgid "server \"%s\" does not exist, skipping" msgstr "сервер \"%s\" не существует, пропускается" -#: commands/dropcmds.c:462 +#: commands/dropcmds.c:457 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\", skipping" msgstr "" "класс операторов \"%s\" не существует для метода доступа \"%s\", пропускается" -#: commands/dropcmds.c:474 +#: commands/dropcmds.c:469 #, c-format msgid "" "operator family \"%s\" does not exist for access method \"%s\", skipping" @@ -8757,179 +9172,189 @@ msgstr "" "семейство операторов \"%s\" не существует для метода доступа \"%s\", " "пропускается" -#: commands/dropcmds.c:481 +#: commands/dropcmds.c:476 #, c-format msgid "publication \"%s\" does not exist, skipping" msgstr "публикация \"%s\" не существует, пропускается" -#: commands/event_trigger.c:125 +#: commands/event_trigger.c:137 #, c-format msgid "permission denied to create event trigger \"%s\"" -msgstr "нет прав на создание событийного триггера \"%s\"" +msgstr "нет прав для создания событийного триггера \"%s\"" -#: commands/event_trigger.c:127 +#: commands/event_trigger.c:139 #, c-format msgid "Must be superuser to create an event trigger." msgstr "Для создания событийного триггера нужно быть суперпользователем." -#: commands/event_trigger.c:136 +#: commands/event_trigger.c:149 #, c-format msgid "unrecognized event name \"%s\"" msgstr "нераспознанное имя события \"%s\"" -#: commands/event_trigger.c:153 +#: commands/event_trigger.c:166 #, c-format msgid "unrecognized filter variable \"%s\"" msgstr "нераспознанная переменная фильтра \"%s\"" -#: commands/event_trigger.c:207 +#: commands/event_trigger.c:181 +#, c-format +msgid "tag filtering is not supported for login event triggers" +msgstr "фильтрация по тегу для событийных триггеров входа не поддерживается" + +#: commands/event_trigger.c:224 #, c-format msgid "filter value \"%s\" not recognized for filter variable \"%s\"" msgstr "значение фильтра \"%s\" неприемлемо для переменной фильтра \"%s\"" #. translator: %s represents an SQL statement name -#: commands/event_trigger.c:213 commands/event_trigger.c:235 +#: commands/event_trigger.c:230 commands/event_trigger.c:252 #, c-format msgid "event triggers are not supported for %s" msgstr "для %s событийные триггеры не поддерживаются" -#: commands/event_trigger.c:248 +#: commands/event_trigger.c:265 #, c-format msgid "filter variable \"%s\" specified more than once" msgstr "переменная фильтра \"%s\" указана больше одного раза" -#: commands/event_trigger.c:376 commands/event_trigger.c:420 -#: commands/event_trigger.c:514 +#: commands/event_trigger.c:438 commands/event_trigger.c:490 +#: commands/event_trigger.c:584 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "событийный триггер \"%s\" не существует" -#: commands/event_trigger.c:452 +#: commands/event_trigger.c:522 #, c-format msgid "event trigger with OID %u does not exist" msgstr "событийный триггер с OID %u не существует" -#: commands/event_trigger.c:482 +#: commands/event_trigger.c:552 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" -msgstr "нет прав на изменение владельца событийного триггера \"%s\"" +msgstr "нет прав для изменения владельца событийного триггера \"%s\"" -#: commands/event_trigger.c:484 +#: commands/event_trigger.c:554 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "Владельцем событийного триггера должен быть суперпользователь." -#: commands/event_trigger.c:1304 +#: commands/event_trigger.c:1409 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s можно вызывать только в событийной триггерной функции sql_drop" -#: commands/event_trigger.c:1397 commands/event_trigger.c:1418 +#: commands/event_trigger.c:1502 commands/event_trigger.c:1523 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%s можно вызывать только в событийной триггерной функции table_rewrite" -#: commands/event_trigger.c:1831 +#: commands/event_trigger.c:1936 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s можно вызывать только в событийной триггерной функции" -#: commands/explain.c:220 +#: commands/explain.c:241 commands/explain.c:266 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "нераспознанное значение параметра EXPLAIN \"%s\": \"%s\"" -#: commands/explain.c:227 +#: commands/explain.c:273 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "нераспознанный параметр EXPLAIN: \"%s\"" -#: commands/explain.c:236 +#: commands/explain.c:282 #, c-format msgid "EXPLAIN option WAL requires ANALYZE" msgstr "параметр WAL оператора EXPLAIN требует указания ANALYZE" -#: commands/explain.c:245 +#: commands/explain.c:291 #, c-format msgid "EXPLAIN option TIMING requires ANALYZE" msgstr "параметр TIMING оператора EXPLAIN требует указания ANALYZE" -#: commands/explain.c:251 +#: commands/explain.c:297 +#, c-format +msgid "EXPLAIN option SERIALIZE requires ANALYZE" +msgstr "параметр SERIALIZE оператора EXPLAIN требует указания ANALYZE" + +#: commands/explain.c:303 #, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" msgstr "" "параметры ANALYZE и GENERIC_PLAN оператора EXPLAIN нельзя использовать " "одновременно" -#: commands/extension.c:177 commands/extension.c:3033 +#: commands/extension.c:178 commands/extension.c:3031 #, c-format msgid "extension \"%s\" does not exist" msgstr "расширение \"%s\" не существует" -#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 -#: commands/extension.c:307 +#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 +#: commands/extension.c:308 #, c-format msgid "invalid extension name: \"%s\"" msgstr "неверное имя расширения: \"%s\"" -#: commands/extension.c:277 +#: commands/extension.c:278 #, c-format msgid "Extension names must not be empty." msgstr "Имя расширения не может быть пустым." -#: commands/extension.c:286 +#: commands/extension.c:287 #, c-format msgid "Extension names must not contain \"--\"." msgstr "Имя расширения не может содержать \"--\"." -#: commands/extension.c:298 +#: commands/extension.c:299 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "Имя расширения не может начинаться или заканчиваться символом \"-\"." -#: commands/extension.c:308 +#: commands/extension.c:309 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "Имя расширения не может содержать разделители пути." -#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 -#: commands/extension.c:351 +#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 +#: commands/extension.c:352 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "неверный идентификатор версии расширения: \"%s\"" -#: commands/extension.c:324 +#: commands/extension.c:325 #, c-format msgid "Version names must not be empty." msgstr "Идентификатор версии не может быть пустым." -#: commands/extension.c:333 +#: commands/extension.c:334 #, c-format msgid "Version names must not contain \"--\"." msgstr "Идентификатор версии не может содержать \"--\"." -#: commands/extension.c:342 +#: commands/extension.c:343 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "" "Идентификатор версии не может начинаться или заканчиваться символом \"-\"." -#: commands/extension.c:352 +#: commands/extension.c:353 #, c-format msgid "Version names must not contain directory separator characters." msgstr "Идентификатор версии не может содержать разделители пути." -#: commands/extension.c:506 +#: commands/extension.c:507 #, c-format msgid "extension \"%s\" is not available" msgstr "расширение \"%s\" отсутствует" -#: commands/extension.c:507 +#: commands/extension.c:508 #, c-format msgid "Could not open extension control file \"%s\": %m." msgstr "Не удалось открыть управляющий файл расширения \"%s\": %m." -#: commands/extension.c:509 +#: commands/extension.c:510 #, c-format msgid "" "The extension must first be installed on the system where PostgreSQL is " @@ -8937,91 +9362,91 @@ msgid "" msgstr "" "Сначала расширение нужно установить в системе, где работает PostgreSQL." -#: commands/extension.c:513 +#: commands/extension.c:514 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "не удалось открыть управляющий файл расширения \"%s\": %m" -#: commands/extension.c:536 commands/extension.c:546 +#: commands/extension.c:537 commands/extension.c:547 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "" "параметр \"%s\" нельзя задавать в дополнительном управляющем файле расширения" -#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 -#: utils/misc/guc.c:3100 +#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 +#: utils/misc/guc.c:3147 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "параметр \"%s\" требует логическое значение" -#: commands/extension.c:593 +#: commands/extension.c:594 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не является верным названием кодировки" -#: commands/extension.c:607 commands/extension.c:622 +#: commands/extension.c:608 commands/extension.c:623 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "параметр \"%s\" должен содержать список имён расширений" -#: commands/extension.c:629 +#: commands/extension.c:630 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "нераспознанный параметр \"%s\" в файле \"%s\"" -#: commands/extension.c:638 +#: commands/extension.c:639 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "" "параметр \"schema\" не может быть указан вместе с \"relocatable\" = true" -#: commands/extension.c:816 +#: commands/extension.c:817 #, c-format msgid "" "transaction control statements are not allowed within an extension script" msgstr "в скрипте расширения не должно быть операторов управления транзакциями" -#: commands/extension.c:896 +#: commands/extension.c:897 #, c-format msgid "permission denied to create extension \"%s\"" -msgstr "нет прав на создание расширения \"%s\"" +msgstr "нет прав для создания расширения \"%s\"" -#: commands/extension.c:899 +#: commands/extension.c:900 #, c-format msgid "" "Must have CREATE privilege on current database to create this extension." msgstr "Для создания этого расширения нужно иметь право CREATE в текущей базе." -#: commands/extension.c:900 +#: commands/extension.c:901 #, c-format msgid "Must be superuser to create this extension." msgstr "Для создания этого расширения нужно быть суперпользователем." -#: commands/extension.c:904 +#: commands/extension.c:905 #, c-format msgid "permission denied to update extension \"%s\"" -msgstr "нет прав на изменение расширения \"%s\"" +msgstr "нет прав для изменения расширения \"%s\"" -#: commands/extension.c:907 +#: commands/extension.c:908 #, c-format msgid "" "Must have CREATE privilege on current database to update this extension." msgstr "" "Для обновления этого расширения нужно иметь право CREATE в текущей базе." -#: commands/extension.c:908 +#: commands/extension.c:909 #, c-format msgid "Must be superuser to update this extension." msgstr "Для изменения этого расширения нужно быть суперпользователем." -#: commands/extension.c:1046 +#: commands/extension.c:1042 #, c-format msgid "invalid character in extension owner: must not contain any of \"%s\"" msgstr "" "недопустимый символ в имени владельца расширения: имя не должно содержать " "\"%s\"" -#: commands/extension.c:1070 commands/extension.c:1097 +#: commands/extension.c:1066 commands/extension.c:1093 #, c-format msgid "" "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" @@ -9029,7 +9454,7 @@ msgstr "" "недопустимый символ в имени схемы расширения \"%s\": имя не должно содержать " "\"%s\"" -#: commands/extension.c:1292 +#: commands/extension.c:1288 #, c-format msgid "" "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" @@ -9037,12 +9462,12 @@ msgstr "" "для расширения \"%s\" не определён путь обновления с версии \"%s\" до версии " "\"%s\"" -#: commands/extension.c:1500 commands/extension.c:3091 +#: commands/extension.c:1496 commands/extension.c:3089 #, c-format msgid "version to install must be specified" msgstr "нужно указать версию для установки" -#: commands/extension.c:1537 +#: commands/extension.c:1533 #, c-format msgid "" "extension \"%s\" has no installation script nor update path for version " @@ -9051,71 +9476,71 @@ msgstr "" "для расширения \"%s\" не определён путь установки или обновления для версии " "\"%s\"" -#: commands/extension.c:1571 +#: commands/extension.c:1567 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "расширение \"%s\" должно устанавливаться в схему \"%s\"" -#: commands/extension.c:1731 +#: commands/extension.c:1727 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "выявлена циклическая зависимость между расширениями \"%s\" и \"%s\"" -#: commands/extension.c:1736 +#: commands/extension.c:1732 #, c-format msgid "installing required extension \"%s\"" msgstr "установка требуемого расширения \"%s\"" -#: commands/extension.c:1759 +#: commands/extension.c:1755 #, c-format msgid "required extension \"%s\" is not installed" msgstr "требуемое расширение \"%s\" не установлено" -#: commands/extension.c:1762 +#: commands/extension.c:1758 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "" "Выполните CREATE EXTENSION ... CASCADE, чтобы установить также требуемые " "расширения." -#: commands/extension.c:1797 +#: commands/extension.c:1793 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "расширение \"%s\" уже существует, пропускается" -#: commands/extension.c:1804 +#: commands/extension.c:1800 #, c-format msgid "extension \"%s\" already exists" msgstr "расширение \"%s\" уже существует" -#: commands/extension.c:1815 +#: commands/extension.c:1811 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "вложенные операторы CREATE EXTENSION не поддерживаются" -#: commands/extension.c:1979 +#: commands/extension.c:1975 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "удалить расширение \"%s\" нельзя, так как это модифицируемый объект" -#: commands/extension.c:2454 +#: commands/extension.c:2450 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "" "%s можно вызывать только из SQL-скрипта, запускаемого командой CREATE " "EXTENSION" -#: commands/extension.c:2466 +#: commands/extension.c:2462 #, c-format msgid "OID %u does not refer to a table" msgstr "OID %u не относится к таблице" -#: commands/extension.c:2471 +#: commands/extension.c:2467 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "таблица \"%s\" не относится к созданному расширению" -#: commands/extension.c:2817 +#: commands/extension.c:2813 #, c-format msgid "" "cannot move extension \"%s\" into schema \"%s\" because the extension " @@ -9124,12 +9549,12 @@ msgstr "" "переместить расширение \"%s\" в схему \"%s\" нельзя, так как оно содержит " "схему" -#: commands/extension.c:2858 commands/extension.c:2952 +#: commands/extension.c:2854 commands/extension.c:2948 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "расширение \"%s\" не поддерживает SET SCHEMA" -#: commands/extension.c:2915 +#: commands/extension.c:2911 #, c-format msgid "" "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" @@ -9137,32 +9562,32 @@ msgstr "" "выполнить SET SCHEMA для расширения \"%s\" нельзя, так как этому " "препятствуют другие расширения" -#: commands/extension.c:2917 +#: commands/extension.c:2913 #, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." msgstr "Расширение \"%s\" не допускает перемещения расширения \"%s\"." -#: commands/extension.c:2954 +#: commands/extension.c:2950 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "объект %s не принадлежит схеме расширения \"%s\"" -#: commands/extension.c:3013 +#: commands/extension.c:3011 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "вложенные операторы ALTER EXTENSION не поддерживаются" -#: commands/extension.c:3102 +#: commands/extension.c:3100 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "версия \"%s\" расширения \"%s\" уже установлена" -#: commands/extension.c:3314 +#: commands/extension.c:3311 #, c-format msgid "cannot add an object of this type to an extension" msgstr "добавить объект этого типа к расширению нельзя" -#: commands/extension.c:3380 +#: commands/extension.c:3409 #, c-format msgid "" "cannot add schema \"%s\" to extension \"%s\" because the schema contains the " @@ -9171,7 +9596,12 @@ msgstr "" "добавить схему \"%s\" к расширению \"%s\" нельзя, так как схема содержит " "расширение" -#: commands/extension.c:3474 +#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#, c-format +msgid "could not find multirange type for data type %s" +msgstr "тип мультидиапазона для типа данных %s не найден" + +#: commands/extension.c:3532 #, c-format msgid "file \"%s\" is too large" msgstr "файл \"%s\" слишком большой" @@ -9189,7 +9619,7 @@ msgstr "параметр \"%s\" указан неоднократно" #: commands/foreigncmds.c:221 commands/foreigncmds.c:229 #, c-format msgid "permission denied to change owner of foreign-data wrapper \"%s\"" -msgstr "нет прав на изменение владельца обёртки сторонних данных \"%s\"" +msgstr "нет прав для изменения владельца обёртки сторонних данных \"%s\"" #: commands/foreigncmds.c:223 #, c-format @@ -9202,7 +9632,7 @@ msgstr "" msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "Владельцем обёртки сторонних данных должен быть суперпользователь." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "обёртка сторонних данных \"%s\" не существует" @@ -9220,7 +9650,7 @@ msgstr "сторонний сервер с OID %u не существует" #: commands/foreigncmds.c:580 #, c-format msgid "permission denied to create foreign-data wrapper \"%s\"" -msgstr "нет прав на создание обёртки сторонних данных \"%s\"" +msgstr "нет прав для создания обёртки сторонних данных \"%s\"" #: commands/foreigncmds.c:582 #, c-format @@ -9230,7 +9660,7 @@ msgstr "Для создания обёртки сторонних данных #: commands/foreigncmds.c:697 #, c-format msgid "permission denied to alter foreign-data wrapper \"%s\"" -msgstr "нет прав на изменение обёртки сторонних данных \"%s\"" +msgstr "нет прав для изменения обёртки сторонних данных \"%s\"" #: commands/foreigncmds.c:699 #, c-format @@ -9284,7 +9714,7 @@ msgstr "" "сопоставление пользователя \"%s\" для сервера \"%s\" не существует, " "пропускается" -#: commands/foreigncmds.c:1507 foreign/foreign.c:391 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "обёртка сторонних данных \"%s\" не имеет обработчика" @@ -9299,151 +9729,151 @@ msgstr "обёртка сторонних данных \"%s\" не поддер msgid "importing foreign table \"%s\"" msgstr "импорт сторонней таблицы \"%s\"" -#: commands/functioncmds.c:109 +#: commands/functioncmds.c:104 #, c-format msgid "SQL function cannot return shell type %s" msgstr "SQL-функция не может возвращать тип-пустышку %s" -#: commands/functioncmds.c:114 +#: commands/functioncmds.c:109 #, c-format msgid "return type %s is only a shell" msgstr "возвращаемый тип %s - лишь пустышка" -#: commands/functioncmds.c:143 parser/parse_type.c:354 +#: commands/functioncmds.c:138 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "для типа-пустышки \"%s\" нельзя указать модификатор типа" -#: commands/functioncmds.c:149 +#: commands/functioncmds.c:144 #, c-format msgid "type \"%s\" is not yet defined" msgstr "тип \"%s\" ещё не определён" -#: commands/functioncmds.c:150 +#: commands/functioncmds.c:145 #, c-format msgid "Creating a shell type definition." msgstr "Создание определения типа-пустышки." -#: commands/functioncmds.c:249 +#: commands/functioncmds.c:244 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL-функция не может принимать значение типа-пустышки %s" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:250 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "агрегатная функция не может принимать значение типа-пустышки %s" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:255 #, c-format msgid "argument type %s is only a shell" msgstr "тип аргумента %s - лишь пустышка" -#: commands/functioncmds.c:270 +#: commands/functioncmds.c:265 #, c-format msgid "type %s does not exist" msgstr "тип %s не существует" -#: commands/functioncmds.c:284 +#: commands/functioncmds.c:279 #, c-format msgid "aggregates cannot accept set arguments" msgstr "агрегатные функции не принимают в аргументах множества" -#: commands/functioncmds.c:288 +#: commands/functioncmds.c:283 #, c-format msgid "procedures cannot accept set arguments" msgstr "процедуры не принимают в аргументах множества" -#: commands/functioncmds.c:292 +#: commands/functioncmds.c:287 #, c-format msgid "functions cannot accept set arguments" msgstr "функции не принимают аргументы-множества" -#: commands/functioncmds.c:302 +#: commands/functioncmds.c:297 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "параметр VARIADIC должен быть последним в списке входных параметров" -#: commands/functioncmds.c:322 +#: commands/functioncmds.c:317 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "параметр VARIADIC должен быть последним в списке параметров" -#: commands/functioncmds.c:347 +#: commands/functioncmds.c:342 #, c-format msgid "VARIADIC parameter must be an array" msgstr "параметр VARIADIC должен быть массивом" -#: commands/functioncmds.c:392 +#: commands/functioncmds.c:387 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "имя параметра \"%s\" указано неоднократно" -#: commands/functioncmds.c:410 +#: commands/functioncmds.c:405 #, c-format msgid "only input parameters can have default values" msgstr "значения по умолчанию могут быть только у входных параметров" -#: commands/functioncmds.c:425 +#: commands/functioncmds.c:420 #, c-format msgid "cannot use table references in parameter default value" msgstr "в значениях параметров по умолчанию нельзя ссылаться на таблицы" -#: commands/functioncmds.c:449 +#: commands/functioncmds.c:444 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "" "входные параметры, следующие за параметром со значением по умолчанию, также " "должны иметь значения по умолчанию" -#: commands/functioncmds.c:459 +#: commands/functioncmds.c:454 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "" "в объявлении процедуры параметры OUT не могут находиться после параметра со " "значением по умолчанию" -#: commands/functioncmds.c:601 commands/functioncmds.c:780 +#: commands/functioncmds.c:596 commands/functioncmds.c:775 #, c-format msgid "invalid attribute in procedure definition" msgstr "некорректный атрибут в определении процедуры" -#: commands/functioncmds.c:697 +#: commands/functioncmds.c:692 #, c-format msgid "support function %s must return type %s" msgstr "вспомогательная функция %s должна возвращать тип %s" -#: commands/functioncmds.c:708 +#: commands/functioncmds.c:703 #, c-format msgid "must be superuser to specify a support function" msgstr "для указания вспомогательной функции нужно быть суперпользователем" -#: commands/functioncmds.c:829 commands/functioncmds.c:1432 +#: commands/functioncmds.c:824 commands/functioncmds.c:1427 #, c-format msgid "COST must be positive" msgstr "значение COST должно быть положительным" -#: commands/functioncmds.c:837 commands/functioncmds.c:1440 +#: commands/functioncmds.c:832 commands/functioncmds.c:1435 #, c-format msgid "ROWS must be positive" msgstr "значение ROWS должно быть положительным" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:861 #, c-format msgid "no function body specified" msgstr "не указано тело функции" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:866 #, c-format msgid "duplicate function body specified" msgstr "тело функции задано неоднократно" -#: commands/functioncmds.c:876 +#: commands/functioncmds.c:871 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "встроенное тело функции SQL допускается только для языка SQL" -#: commands/functioncmds.c:918 +#: commands/functioncmds.c:913 #, c-format msgid "" "SQL function with unquoted function body cannot have polymorphic arguments" @@ -9451,84 +9881,84 @@ msgstr "" "у SQL-функции с телом, задаваемым не в кавычках, не может быть полиморфных " "аргументов" -#: commands/functioncmds.c:944 commands/functioncmds.c:963 +#: commands/functioncmds.c:939 commands/functioncmds.c:958 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "" "%s на данный момент не поддерживается в теле SQL-функции, задаваемом не в " "кавычках" -#: commands/functioncmds.c:991 +#: commands/functioncmds.c:986 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "для языка \"%s\" нужно только одно выражение AS" -#: commands/functioncmds.c:1096 +#: commands/functioncmds.c:1091 #, c-format msgid "no language specified" msgstr "язык не указан" -#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 -#: commands/proclang.c:237 +#: commands/functioncmds.c:1099 commands/functioncmds.c:2117 +#: commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "язык \"%s\" не существует" -#: commands/functioncmds.c:1106 commands/functioncmds.c:2107 +#: commands/functioncmds.c:1101 commands/functioncmds.c:2119 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Выполните CREATE EXTENSION, чтобы загрузить язык в базу данных." -#: commands/functioncmds.c:1139 commands/functioncmds.c:1424 +#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 #, c-format msgid "only superuser can define a leakproof function" msgstr "" "только суперпользователь может определить функцию с атрибутом LEAKPROOF" -#: commands/functioncmds.c:1190 +#: commands/functioncmds.c:1185 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "" "результат функции должен иметь тип %s (в соответствии с параметрами OUT)" -#: commands/functioncmds.c:1203 +#: commands/functioncmds.c:1198 #, c-format msgid "function result type must be specified" msgstr "необходимо указать тип результата функции" -#: commands/functioncmds.c:1256 commands/functioncmds.c:1444 +#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "указание ROWS неприменимо, когда функция возвращает не множество" -#: commands/functioncmds.c:1547 +#: commands/functioncmds.c:1546 #, c-format msgid "source data type %s is a pseudo-type" msgstr "исходный тип данных %s является псевдотипом" -#: commands/functioncmds.c:1553 +#: commands/functioncmds.c:1552 #, c-format msgid "target data type %s is a pseudo-type" msgstr "целевой тип данных %s является псевдотипом" -#: commands/functioncmds.c:1577 +#: commands/functioncmds.c:1576 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "" "приведение будет проигнорировано, так как исходные данные имеют тип домен" -#: commands/functioncmds.c:1582 +#: commands/functioncmds.c:1581 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "" "приведение будет проигнорировано, так как целевые данные имеют тип домен" -#: commands/functioncmds.c:1607 +#: commands/functioncmds.c:1606 #, c-format msgid "cast function must take one to three arguments" msgstr "функция приведения должна принимать от одного до трёх аргументов" -#: commands/functioncmds.c:1613 +#: commands/functioncmds.c:1612 #, c-format msgid "" "argument of cast function must match or be binary-coercible from source data " @@ -9537,17 +9967,17 @@ msgstr "" "аргумент функции приведения должен совпадать или быть двоично-совместимым с " "исходным типом данных" -#: commands/functioncmds.c:1617 +#: commands/functioncmds.c:1616 #, c-format msgid "second argument of cast function must be type %s" msgstr "второй аргумент функции приведения должен иметь тип %s" -#: commands/functioncmds.c:1622 +#: commands/functioncmds.c:1621 #, c-format msgid "third argument of cast function must be type %s" msgstr "третий аргумент функции приведения должен иметь тип %s" -#: commands/functioncmds.c:1629 +#: commands/functioncmds.c:1628 #, c-format msgid "" "return data type of cast function must match or be binary-coercible to " @@ -9556,127 +9986,132 @@ msgstr "" "тип возвращаемых данных функции приведения должен совпадать или быть двоично-" "совместимым с целевым типом данных" -#: commands/functioncmds.c:1640 +#: commands/functioncmds.c:1639 #, c-format msgid "cast function must not be volatile" msgstr "функция приведения не может быть изменчивой (volatile)" -#: commands/functioncmds.c:1645 +#: commands/functioncmds.c:1644 #, c-format msgid "cast function must be a normal function" msgstr "функция приведения должна быть обычной функцией" -#: commands/functioncmds.c:1649 +#: commands/functioncmds.c:1648 #, c-format msgid "cast function must not return a set" msgstr "функция приведения не может возвращать множество" -#: commands/functioncmds.c:1675 +#: commands/functioncmds.c:1674 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "для создания приведения WITHOUT FUNCTION нужно быть суперпользователем" -#: commands/functioncmds.c:1690 +#: commands/functioncmds.c:1689 #, c-format msgid "source and target data types are not physically compatible" msgstr "исходный и целевой типы данных несовместимы физически" -#: commands/functioncmds.c:1705 +#: commands/functioncmds.c:1709 #, c-format msgid "composite data types are not binary-compatible" msgstr "составные типы данных несовместимы на двоичном уровне" -#: commands/functioncmds.c:1711 -#, c-format -msgid "enum data types are not binary-compatible" -msgstr "типы-перечисления несовместимы на двоичном уровне" - -#: commands/functioncmds.c:1717 +#: commands/functioncmds.c:1715 #, c-format msgid "array data types are not binary-compatible" msgstr "типы-массивы несовместимы на двоичном уровне" -#: commands/functioncmds.c:1734 +#: commands/functioncmds.c:1723 +#, c-format +msgid "range data types are not binary-compatible" +msgstr "диапазонные типы несовместимы на двоичном уровне" + +#: commands/functioncmds.c:1729 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "типы-перечисления несовместимы на двоичном уровне" + +#: commands/functioncmds.c:1746 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "типы-домены не могут считаться двоично-совместимыми" -#: commands/functioncmds.c:1744 +#: commands/functioncmds.c:1756 #, c-format msgid "source data type and target data type are the same" msgstr "исходный тип данных совпадает с целевым" -#: commands/functioncmds.c:1777 +#: commands/functioncmds.c:1789 #, c-format msgid "transform function must not be volatile" msgstr "функция преобразования не может быть изменчивой" -#: commands/functioncmds.c:1781 +#: commands/functioncmds.c:1793 #, c-format msgid "transform function must be a normal function" msgstr "функция преобразования должна быть обычной функцией" -#: commands/functioncmds.c:1785 +#: commands/functioncmds.c:1797 #, c-format msgid "transform function must not return a set" msgstr "функция преобразования не может возвращать множество" -#: commands/functioncmds.c:1789 +#: commands/functioncmds.c:1801 #, c-format msgid "transform function must take one argument" msgstr "функция преобразования должна принимать один аргумент" -#: commands/functioncmds.c:1793 +#: commands/functioncmds.c:1805 #, c-format msgid "first argument of transform function must be type %s" msgstr "первый аргумент функции преобразования должен иметь тип %s" -#: commands/functioncmds.c:1832 +#: commands/functioncmds.c:1844 #, c-format msgid "data type %s is a pseudo-type" msgstr "тип данных %s является псевдотипом" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1850 #, c-format msgid "data type %s is a domain" msgstr "тип данных \"%s\" является доменом" -#: commands/functioncmds.c:1878 +#: commands/functioncmds.c:1890 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "результат функции FROM SQL должен иметь тип %s" -#: commands/functioncmds.c:1904 +#: commands/functioncmds.c:1916 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "результат функции TO SQL должен иметь тип данных преобразования" -#: commands/functioncmds.c:1931 +#: commands/functioncmds.c:1943 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "преобразование для типа %s, языка \"%s\" уже существует" -#: commands/functioncmds.c:2017 +#: commands/functioncmds.c:2029 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "преобразование для типа %s, языка \"%s\" не существует" -#: commands/functioncmds.c:2041 +#: commands/functioncmds.c:2053 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "функция %s уже существует в схеме \"%s\"" -#: commands/functioncmds.c:2092 +#: commands/functioncmds.c:2104 #, c-format msgid "no inline code specified" msgstr "нет внедрённого кода" -#: commands/functioncmds.c:2138 +#: commands/functioncmds.c:2150 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "язык \"%s\" не поддерживает выполнение внедрённого кода" -#: commands/functioncmds.c:2233 +#: commands/functioncmds.c:2245 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -9684,97 +10119,100 @@ msgstr[0] "процедуре нельзя передать больше %d ар msgstr[1] "процедуре нельзя передать больше %d аргументов" msgstr[2] "процедуре нельзя передать больше %d аргументов" -#: commands/indexcmds.c:640 +#: commands/indexcmds.c:656 #, c-format msgid "must specify at least one column" msgstr "нужно указать минимум один столбец" -#: commands/indexcmds.c:644 +#: commands/indexcmds.c:660 #, c-format msgid "cannot use more than %d columns in an index" msgstr "число столбцов в индексе не может превышать %d" -#: commands/indexcmds.c:687 +#: commands/indexcmds.c:703 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "создать индекс для отношения \"%s\" нельзя" -#: commands/indexcmds.c:713 +#: commands/indexcmds.c:729 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "" "создать индекс в секционированной таблице \"%s\" параллельным способом нельзя" -#: commands/indexcmds.c:718 -#, c-format -msgid "cannot create exclusion constraints on partitioned table \"%s\"" -msgstr "" -"создать ограничение-исключение в секционированной таблице \"%s\" нельзя" - -#: commands/indexcmds.c:728 +#: commands/indexcmds.c:739 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "создавать индексы во временных таблицах других сеансов нельзя" -#: commands/indexcmds.c:766 commands/tablecmds.c:784 commands/tablespace.c:1184 +#: commands/indexcmds.c:777 commands/tablecmds.c:818 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "" "для секционированных отношений нельзя назначить табличное пространство по " "умолчанию" -#: commands/indexcmds.c:798 commands/tablecmds.c:815 commands/tablecmds.c:3405 +#: commands/indexcmds.c:809 commands/tablecmds.c:849 commands/tablecmds.c:3588 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "" "в табличное пространство pg_global можно поместить только разделяемые таблицы" -#: commands/indexcmds.c:831 +#: commands/indexcmds.c:842 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "устаревший метод доступа \"rtree\" подменяется методом \"gist\"" -#: commands/indexcmds.c:852 +#: commands/indexcmds.c:863 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "метод доступа \"%s\" не поддерживает уникальные индексы" -#: commands/indexcmds.c:857 +#: commands/indexcmds.c:868 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "метод доступа \"%s\" не поддерживает включаемые столбцы" -#: commands/indexcmds.c:862 +#: commands/indexcmds.c:873 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "метод доступа \"%s\" не поддерживает индексы по многим столбцам" -#: commands/indexcmds.c:867 +#: commands/indexcmds.c:878 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "метод доступа \"%s\" не поддерживает ограничения-исключения" -#: commands/indexcmds.c:994 +#: commands/indexcmds.c:1007 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" msgstr "" "сопоставить ключ секционирования с индексом, использующим метод доступа " "\"%s\", нельзя" -#: commands/indexcmds.c:1004 +#: commands/indexcmds.c:1017 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "" "неподдерживаемое ограничение \"%s\" с определением ключа секционирования" -#: commands/indexcmds.c:1006 +#: commands/indexcmds.c:1019 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "" "Ограничения %s не могут использоваться, когда ключи секционирования включают " "выражения." -#: commands/indexcmds.c:1048 +#: commands/indexcmds.c:1069 +#, c-format +msgid "" +"cannot match partition key to index on column \"%s\" using non-equal " +"operator \"%s\"" +msgstr "" +"сопоставить ключ секционирования с индексом, построенному по столбцу \"%s\" " +"с оператором неравенства \"%s\", нельзя" + +#: commands/indexcmds.c:1085 #, c-format msgid "" "unique constraint on partitioned table must include all partitioning columns" @@ -9782,7 +10220,7 @@ msgstr "" "ограничение уникальности в секционированной таблице должно включать все " "секционирующие столбцы" -#: commands/indexcmds.c:1049 +#: commands/indexcmds.c:1086 #, c-format msgid "" "%s constraint on table \"%s\" lacks column \"%s\" which is part of the " @@ -9791,92 +10229,92 @@ msgstr "" "В ограничении %s таблицы \"%s\" не хватает столбца \"%s\", входящего в ключ " "секционирования." -#: commands/indexcmds.c:1068 commands/indexcmds.c:1087 +#: commands/indexcmds.c:1105 commands/indexcmds.c:1124 #, c-format msgid "index creation on system columns is not supported" msgstr "создание индекса для системных столбцов не поддерживается" -#: commands/indexcmds.c:1316 tcop/utility.c:1526 +#: commands/indexcmds.c:1354 tcop/utility.c:1515 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "создать уникальный индекс в секционированной таблице \"%s\" нельзя" -#: commands/indexcmds.c:1318 tcop/utility.c:1528 +#: commands/indexcmds.c:1356 tcop/utility.c:1517 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Таблица \"%s\" содержит секции, являющиеся сторонними таблицами." -#: commands/indexcmds.c:1803 +#: commands/indexcmds.c:1806 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функции в предикате индекса должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 -#: parser/parse_utilcmd.c:2657 +#: commands/indexcmds.c:1885 parser/parse_utilcmd.c:2519 +#: parser/parse_utilcmd.c:2654 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "указанный в ключе столбец \"%s\" не существует" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 +#: commands/indexcmds.c:1909 parser/parse_utilcmd.c:1807 #, c-format msgid "expressions are not supported in included columns" msgstr "выражения во включаемых столбцах не поддерживаются" -#: commands/indexcmds.c:1946 +#: commands/indexcmds.c:1950 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "функции в индексном выражении должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1961 +#: commands/indexcmds.c:1965 #, c-format msgid "including column does not support a collation" msgstr "включаемые столбцы не поддерживают правила сортировки" -#: commands/indexcmds.c:1965 +#: commands/indexcmds.c:1969 #, c-format msgid "including column does not support an operator class" msgstr "включаемые столбцы не поддерживают классы операторов" -#: commands/indexcmds.c:1969 +#: commands/indexcmds.c:1973 #, c-format msgid "including column does not support ASC/DESC options" msgstr "включаемые столбцы не поддерживают сортировку ASC/DESC" -#: commands/indexcmds.c:1973 +#: commands/indexcmds.c:1977 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "включаемые столбцы не поддерживают указания NULLS FIRST/LAST" -#: commands/indexcmds.c:2014 +#: commands/indexcmds.c:2020 #, c-format msgid "could not determine which collation to use for index expression" msgstr "не удалось определить правило сортировки для индексного выражения" -#: commands/indexcmds.c:2022 commands/tablecmds.c:17534 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 -#: utils/adt/misc.c:586 +#: commands/indexcmds.c:2028 commands/tablecmds.c:18185 commands/typecmds.c:811 +#: parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3771 +#: utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не поддерживает сортировку (COLLATION)" -#: commands/indexcmds.c:2087 +#: commands/indexcmds.c:2095 #, c-format msgid "operator %s is not commutative" msgstr "оператор %s не коммутативен" -#: commands/indexcmds.c:2089 +#: commands/indexcmds.c:2097 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "" "В ограничениях-исключениях могут использоваться только коммутативные " "операторы." -#: commands/indexcmds.c:2115 +#: commands/indexcmds.c:2123 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "оператор \"%s\" не входит в семейство операторов \"%s\"" -#: commands/indexcmds.c:2118 +#: commands/indexcmds.c:2126 #, c-format msgid "" "The exclusion operator must be related to the index operator class for the " @@ -9885,25 +10323,25 @@ msgstr "" "Оператор исключения для ограничения должен относиться к классу операторов " "индекса." -#: commands/indexcmds.c:2153 +#: commands/indexcmds.c:2161 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "метод доступа \"%s\" не поддерживает сортировку ASC/DESC" -#: commands/indexcmds.c:2158 +#: commands/indexcmds.c:2166 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступа \"%s\" не поддерживает параметр NULLS FIRST/LAST" -#: commands/indexcmds.c:2204 commands/tablecmds.c:17559 -#: commands/tablecmds.c:17565 commands/typecmds.c:2301 +#: commands/indexcmds.c:2210 commands/tablecmds.c:18210 +#: commands/tablecmds.c:18216 commands/typecmds.c:2311 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" "для типа данных %s не определён класс операторов по умолчанию для метода " "доступа \"%s\"" -#: commands/indexcmds.c:2206 +#: commands/indexcmds.c:2212 #, c-format msgid "" "You must specify an operator class for the index or define a default " @@ -9912,86 +10350,89 @@ msgstr "" "Вы должны указать класс операторов для индекса или определить класс " "операторов по умолчанию для этого типа данных." -#: commands/indexcmds.c:2235 commands/indexcmds.c:2243 +#: commands/indexcmds.c:2241 commands/indexcmds.c:2249 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "класс операторов \"%s\" для метода доступа \"%s\" не существует" -#: commands/indexcmds.c:2257 commands/typecmds.c:2289 +#: commands/indexcmds.c:2263 commands/typecmds.c:2299 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "класс операторов \"%s\" не принимает тип данных %s" -#: commands/indexcmds.c:2347 +#: commands/indexcmds.c:2353 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "" "для типа данных %s определено несколько классов операторов по умолчанию" -#: commands/indexcmds.c:2675 +#: commands/indexcmds.c:2681 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нераспознанный параметр REINDEX: \"%s\"" -#: commands/indexcmds.c:2899 +#: commands/indexcmds.c:2913 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "" "в таблице \"%s\" нет индексов, которые можно переиндексировать неблокирующим " "способом" -#: commands/indexcmds.c:2913 +#: commands/indexcmds.c:2927 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "в таблице \"%s\" нет индексов для переиндексации" -#: commands/indexcmds.c:2958 commands/indexcmds.c:3468 -#: commands/indexcmds.c:3596 +#: commands/indexcmds.c:2974 commands/indexcmds.c:3485 +#: commands/indexcmds.c:3615 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "Переиндексировать системные каталоги неблокирующим способом нельзя" -#: commands/indexcmds.c:2981 +#: commands/indexcmds.c:2998 #, c-format msgid "can only reindex the currently open database" msgstr "переиндексировать можно только текущую базу данных" -#: commands/indexcmds.c:3075 +#: commands/indexcmds.c:3090 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "" "все системные каталоги пропускаются, так как их нельзя переиндексировать " "неблокирующим способом" -#: commands/indexcmds.c:3108 +#: commands/indexcmds.c:3123 #, c-format msgid "cannot move system relations, skipping all" msgstr "переместить системные отношения нельзя, все они пропускаются" -#: commands/indexcmds.c:3154 +#: commands/indexcmds.c:3169 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "при переиндексировании секционированной таблицы \"%s.%s\"" -#: commands/indexcmds.c:3157 +#: commands/indexcmds.c:3172 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "при перестроении секционированного индекса \"%s.%s\"" -#: commands/indexcmds.c:3348 commands/indexcmds.c:4204 +#: commands/indexcmds.c:3365 commands/indexcmds.c:4241 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "таблица \"%s.%s\" переиндексирована" -#: commands/indexcmds.c:3500 commands/indexcmds.c:3552 +#: commands/indexcmds.c:3517 commands/indexcmds.c:3570 #, c-format -msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" -msgstr "" -"перестроить нерабочий индекс \"%s.%s\" неблокирующим способом нельзя, он " -"пропускается" +msgid "skipping reindex of invalid index \"%s.%s\"" +msgstr "индекс \"%s.%s\" — нерабочий, переиндексация пропускается" + +#: commands/indexcmds.c:3520 commands/indexcmds.c:3573 +#, c-format +msgid "Use DROP INDEX or REINDEX INDEX." +msgstr "Выполните DROP INDEX или REINDEX INDEX." -#: commands/indexcmds.c:3506 +#: commands/indexcmds.c:3524 #, c-format msgid "" "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" @@ -9999,51 +10440,51 @@ msgstr "" "перестроить индекс ограничения-исключения \"%s.%s\" неблокирующим способом " "нельзя, он пропускается" -#: commands/indexcmds.c:3661 +#: commands/indexcmds.c:3680 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "переиндексировать отношение такого типа неблокирующим способом нельзя" -#: commands/indexcmds.c:3682 +#: commands/indexcmds.c:3698 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "" "переместить отношение, не являющееся разделяемым, в табличное пространство " "\"%s\" нельзя" -#: commands/indexcmds.c:4185 commands/indexcmds.c:4197 +#: commands/indexcmds.c:4222 commands/indexcmds.c:4234 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "индекс \"%s.%s\" был перестроен" -#: commands/indexcmds.c:4187 commands/indexcmds.c:4206 +#: commands/indexcmds.c:4224 commands/indexcmds.c:4243 #, c-format msgid "%s." msgstr "%s." -#: commands/lockcmds.c:92 +#: commands/lockcmds.c:91 #, c-format msgid "cannot lock relation \"%s\"" msgstr "заблокировать отношение \"%s\" нельзя" -#: commands/matview.c:193 +#: commands/matview.c:206 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "" "CONCURRENTLY нельзя использовать, когда материализованное представление не " "наполнено" -#: commands/matview.c:199 gram.y:18306 +#: commands/matview.c:212 gram.y:18918 #, c-format msgid "%s and %s options cannot be used together" msgstr "параметры %s и %s исключают друг друга" -#: commands/matview.c:256 +#: commands/matview.c:269 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "обновить материализованное представление \"%s\" параллельно нельзя" -#: commands/matview.c:259 +#: commands/matview.c:272 #, c-format msgid "" "Create a unique index with no WHERE clause on one or more columns of the " @@ -10052,7 +10493,7 @@ msgstr "" "Создайте уникальный индекс без предложения WHERE для одного или нескольких " "столбцов материализованного представления." -#: commands/matview.c:653 +#: commands/matview.c:666 #, c-format msgid "" "new data for materialized view \"%s\" contains duplicate rows without any " @@ -10061,7 +10502,7 @@ msgstr "" "новые данные для материализованного представления \"%s\" содержат " "дублирующиеся строки (без учёта столбцов с NULL)" -#: commands/matview.c:655 +#: commands/matview.c:668 #, c-format msgid "Row: %s" msgstr "Строка: %s" @@ -10276,22 +10717,22 @@ msgstr "номер оператора %d для (%s,%s) дублируется" msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "оператор %d(%s,%s) уже существует в семействе \"%s\"" -#: commands/opclasscmds.c:1566 +#: commands/opclasscmds.c:1589 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "функция %d(%s,%s) уже существует в семействе операторов \"%s\"" -#: commands/opclasscmds.c:1647 +#: commands/opclasscmds.c:1744 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "оператор %d(%s,%s) не существует в семействе операторов \"%s\"" -#: commands/opclasscmds.c:1687 +#: commands/opclasscmds.c:1784 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "функция %d(%s,%s) не существует в семействе операторов \"%s\"" -#: commands/opclasscmds.c:1718 +#: commands/opclasscmds.c:1815 #, c-format msgid "" "operator class \"%s\" for access method \"%s\" already exists in schema " @@ -10300,7 +10741,7 @@ msgstr "" "класс операторов \"%s\" для метода доступа \"%s\" уже существует в схеме " "\"%s\"" -#: commands/opclasscmds.c:1741 +#: commands/opclasscmds.c:1838 #, c-format msgid "" "operator family \"%s\" for access method \"%s\" already exists in schema " @@ -10314,7 +10755,7 @@ msgstr "" msgid "SETOF type not allowed for operator argument" msgstr "аргументом оператора не может быть тип SETOF" -#: commands/operatorcmds.c:154 commands/operatorcmds.c:481 +#: commands/operatorcmds.c:154 commands/operatorcmds.c:554 #, c-format msgid "operator attribute \"%s\" not recognized" msgstr "атрибут оператора \"%s\" не распознан" @@ -10354,53 +10795,70 @@ msgstr "функция оценки соединения %s присутству msgid "join estimator function %s must return type %s" msgstr "функция оценки соединения %s должна возвращать тип %s" -#: commands/operatorcmds.c:475 +#: commands/operatorcmds.c:388 parser/parse_oper.c:119 parser/parse_oper.c:637 +#: utils/adt/regproc.c:509 utils/adt/regproc.c:683 +#, c-format +msgid "operator does not exist: %s" +msgstr "оператор не существует: %s" + +#: commands/operatorcmds.c:396 parser/parse_oper.c:702 parser/parse_oper.c:815 +#, c-format +msgid "operator is only a shell: %s" +msgstr "оператор \"%s\" - лишь оболочка" + +#: commands/operatorcmds.c:548 #, c-format msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" нельзя изменить" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1612 commands/tablecmds.c:2215 -#: commands/tablecmds.c:3516 commands/tablecmds.c:6365 -#: commands/tablecmds.c:9192 commands/tablecmds.c:17121 -#: commands/tablecmds.c:17156 commands/trigger.c:323 commands/trigger.c:1339 -#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 -#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 +#: commands/operatorcmds.c:615 commands/operatorcmds.c:622 +#: commands/operatorcmds.c:628 commands/operatorcmds.c:634 +#, c-format +msgid "operator attribute \"%s\" cannot be changed if it has already been set" +msgstr "атрибут оператора \"%s\" нельзя изменить, если он уже установлен" + +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 +#: commands/tablecmds.c:1740 commands/tablecmds.c:2340 +#: commands/tablecmds.c:3702 commands/tablecmds.c:6605 +#: commands/tablecmds.c:9637 commands/tablecmds.c:17772 +#: commands/tablecmds.c:17807 commands/trigger.c:316 commands/trigger.c:1332 +#: commands/trigger.c:1442 rewrite/rewriteDefine.c:268 +#: rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "доступ запрещён: \"%s\" - это системный каталог" -#: commands/policy.c:172 +#: commands/policy.c:169 #, c-format msgid "ignoring specified roles other than PUBLIC" msgstr "все указанные роли, кроме PUBLIC, игнорируются" -#: commands/policy.c:173 +#: commands/policy.c:170 #, c-format msgid "All roles are members of the PUBLIC role." msgstr "Роль PUBLIC включает в себя все остальные роли." -#: commands/policy.c:606 +#: commands/policy.c:603 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK нельзя применить к SELECT или DELETE" -#: commands/policy.c:615 commands/policy.c:918 +#: commands/policy.c:612 commands/policy.c:915 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "для INSERT допускается только выражение WITH CHECK" -#: commands/policy.c:689 commands/policy.c:1141 +#: commands/policy.c:686 commands/policy.c:1138 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "политика \"%s\" для таблицы \"%s\" уже существует" -#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 +#: commands/policy.c:887 commands/policy.c:1166 commands/policy.c:1237 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "политика \"%s\" для таблицы \"%s\" не существует" -#: commands/policy.c:908 +#: commands/policy.c:905 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "для SELECT, DELETE допускается только выражение USING" @@ -10418,87 +10876,86 @@ msgstr "" "HOLD" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2854 utils/adt/xml.c:3024 +#: executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не существует" -#: commands/prepare.c:75 +#: commands/prepare.c:72 #, c-format msgid "invalid statement name: must not be empty" msgstr "неверный оператор: имя не должно быть пустым" # [SM]: TO REVIEW -#: commands/prepare.c:230 commands/prepare.c:235 +#: commands/prepare.c:227 commands/prepare.c:232 #, c-format msgid "prepared statement is not a SELECT" msgstr "подготовленный оператор - не SELECT" -#: commands/prepare.c:295 +#: commands/prepare.c:292 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "неверное число параметров для подготовленного оператора \"%s\"" -#: commands/prepare.c:297 +#: commands/prepare.c:294 #, c-format msgid "Expected %d parameters but got %d." msgstr "Ожидалось параметров: %d, получено: %d." -#: commands/prepare.c:330 +#: commands/prepare.c:327 #, 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:414 +#: commands/prepare.c:411 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "подготовленный оператор \"%s\" уже существует" # [SM]: TO REVIEW -#: commands/prepare.c:453 +#: commands/prepare.c:450 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "подготовленный оператор \"%s\" не существует" -#: commands/proclang.c:68 +#: commands/proclang.c:66 #, c-format msgid "must be superuser to create custom procedural language" msgstr "" "для создания дополнительного процедурного языка нужно быть суперпользователем" -#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 -#: postmaster/postmaster.c:1306 storage/file/fd.c:3911 -#: utils/init/miscinit.c:1822 +#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 +#: postmaster/postmaster.c:1210 utils/init/miscinit.c:1865 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неверный формат списка в параметре \"%s\"" -#: commands/publicationcmds.c:150 +#: commands/publicationcmds.c:143 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "нераспознанное значение параметра публикации \"%s\": \"%s\"" -#: commands/publicationcmds.c:164 +#: commands/publicationcmds.c:157 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "нераспознанный параметр репликации: \"%s\"" -#: commands/publicationcmds.c:205 +#: commands/publicationcmds.c:198 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "для CURRENT_SCHEMA требуется, чтобы была выбрана схема" -#: commands/publicationcmds.c:502 +#: commands/publicationcmds.c:495 msgid "System columns are not allowed." msgstr "Системные столбцы не допускаются." -#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 -#: commands/publicationcmds.c:531 +#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 +#: commands/publicationcmds.c:524 msgid "User-defined operators are not allowed." msgstr "Пользовательские операторы не допускаются." -#: commands/publicationcmds.c:555 +#: commands/publicationcmds.c:548 msgid "" "Only columns, constants, built-in operators, built-in data types, built-in " "collations, and immutable built-in functions are allowed." @@ -10506,43 +10963,43 @@ msgstr "" "Допускаются только столбцы, константы, встроенные операторы, встроенные типы " "данных, встроенные правила сортировки и встроенные постоянные функции." -#: commands/publicationcmds.c:567 +#: commands/publicationcmds.c:560 msgid "User-defined types are not allowed." msgstr "Пользовательские типы не допускаются." -#: commands/publicationcmds.c:570 +#: commands/publicationcmds.c:563 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Пользовательские или встроенные непостоянные функции не допускаются." -#: commands/publicationcmds.c:573 +#: commands/publicationcmds.c:566 msgid "User-defined collations are not allowed." msgstr "Пользовательские правила сортировки не допускаются." -#: commands/publicationcmds.c:583 +#: commands/publicationcmds.c:576 #, c-format msgid "invalid publication WHERE expression" msgstr "неверное выражение в предложении WHERE публикации" -#: commands/publicationcmds.c:636 +#: commands/publicationcmds.c:629 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "" "использовать в публикации предложение WHERE для отношения \"%s\" нельзя" -#: commands/publicationcmds.c:638 +#: commands/publicationcmds.c:631 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "" "Предложение WHERE нельзя использовать для секционированной таблицы, когда %s " "равен false." -#: commands/publicationcmds.c:709 commands/publicationcmds.c:723 +#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "" "использовать список столбцов отношения \"%s.%s\" в публикации \"%s\" нельзя" -#: commands/publicationcmds.c:712 +#: commands/publicationcmds.c:705 #, c-format msgid "" "Column lists cannot be specified in publications containing FOR TABLES IN " @@ -10551,7 +11008,7 @@ msgstr "" "Списки столбцов нельзя задавать в публикациях, содержащих элементы FOR " "TABLES IN SCHEMA." -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:719 #, c-format msgid "" "Column lists cannot be specified for partitioned tables when %s is false." @@ -10559,34 +11016,34 @@ msgstr "" "Списки столбцов нельзя задавать для секционированных таблиц, когда %s равен " "false." -#: commands/publicationcmds.c:761 +#: commands/publicationcmds.c:754 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "для создания публикации всех таблиц нужно быть суперпользователем" -#: commands/publicationcmds.c:832 +#: commands/publicationcmds.c:825 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "" "для создания публикации вида FOR ALL TABLES IN SCHEMA нужно быть " "суперпользователем" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:861 #, c-format -msgid "wal_level is insufficient to publish logical changes" -msgstr "уровень wal_level недостаточен для публикации логических изменений" +msgid "\"wal_level\" is insufficient to publish logical changes" +msgstr "уровень \"wal_level\" недостаточен для публикации логических изменений" -#: commands/publicationcmds.c:869 +#: commands/publicationcmds.c:862 #, c-format -msgid "Set wal_level to \"logical\" before creating subscriptions." -msgstr "Задайте для wal_level значение \"logical\" до создания подписок." +msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." +msgstr "Задайте для \"wal_level\" значение \"logical\" до создания подписок." -#: commands/publicationcmds.c:965 commands/publicationcmds.c:973 +#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "параметру \"%s\" публикации \"%s\" нельзя присвоить false" -#: commands/publicationcmds.c:968 +#: commands/publicationcmds.c:961 #, c-format msgid "" "The publication contains a WHERE clause for partitioned table \"%s\", which " @@ -10595,7 +11052,7 @@ msgstr "" "Публикация содержит предложение WHERE для секционированной таблицы \"%s\", " "что не допускается, когда \"%s\" равен false." -#: commands/publicationcmds.c:976 +#: commands/publicationcmds.c:969 #, c-format msgid "" "The publication contains a column list for partitioned table \"%s\", which " @@ -10604,12 +11061,12 @@ msgstr "" "Публикация содержит список столбцов для секционированной таблицы \"%s\", что " "не допускается, когда \"%s\" равен false." -#: commands/publicationcmds.c:1299 +#: commands/publicationcmds.c:1292 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "добавить схему в публикацию \"%s\" нельзя" -#: commands/publicationcmds.c:1301 +#: commands/publicationcmds.c:1294 #, c-format msgid "" "Schemas cannot be added if any tables that specify a column list are already " @@ -10618,82 +11075,82 @@ msgstr "" "Схемы нельзя добавлять в публикацию, если в неё уже добавлены таблицы, для " "которых задан список столбцов." -#: commands/publicationcmds.c:1349 +#: commands/publicationcmds.c:1342 #, c-format msgid "must be superuser to add or set schemas" msgstr "для добавления или замены схем нужно быть суперпользователем" -#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 +#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "публикация \"%s\" определена для всех таблиц (FOR ALL TABLES)" -#: commands/publicationcmds.c:1360 +#: commands/publicationcmds.c:1353 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "В публикации вида FOR ALL TABLES нельзя добавлять или удалять таблицы." -#: commands/publicationcmds.c:1368 +#: commands/publicationcmds.c:1361 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "В публикации всех таблиц нельзя добавлять или удалять таблицы." -#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 -#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 +#: commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 #, c-format msgid "publication \"%s\" does not exist" msgstr "публикация \"%s\" не существует" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 +#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "конфликтующие или избыточные предложения WHERE для таблицы \"%s\"" -#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669 +#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "конфликтующие или избыточные списки столбцов для таблицы \"%s\"" -#: commands/publicationcmds.c:1803 +#: commands/publicationcmds.c:1796 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "в ALTER PUBLICATION ... DROP не должен задаваться список столбцов" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1808 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "отношение \"%s\" не включено в публикацию" -#: commands/publicationcmds.c:1822 +#: commands/publicationcmds.c:1815 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "использовать WHERE при удалении таблицы из публикации нельзя" -#: commands/publicationcmds.c:1882 +#: commands/publicationcmds.c:1875 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "таблицы из схемы \"%s\" не являются частью публикации" -#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932 +#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 #, c-format msgid "permission denied to change owner of publication \"%s\"" -msgstr "нет прав на изменение владельца публикации \"%s\"" +msgstr "нет прав для изменения владельца публикации \"%s\"" -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:1920 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "" "Владельцем публикации всех таблиц (FOR ALL TABLES) должен быть " "суперпользователь." -#: commands/publicationcmds.c:1934 +#: commands/publicationcmds.c:1927 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "" "Владельцем публикации вида FOR TABLES IN SCHEMA должен быть " "суперпользователь." -#: commands/publicationcmds.c:2000 +#: commands/publicationcmds.c:1993 #, c-format msgid "publication with OID %u does not exist" msgstr "публикация с OID %u не существует" @@ -10741,170 +11198,170 @@ msgstr "метки безопасности не поддерживаются д msgid "cannot set security label on relation \"%s\"" msgstr "задать метку безопасности для отношения \"%s\" нельзя" -#: commands/sequence.c:754 +#: commands/sequence.c:748 #, c-format msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" msgstr "" "функция nextval достигла максимума для последовательности \"%s\" (%lld)" -#: commands/sequence.c:773 +#: commands/sequence.c:767 #, c-format msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" msgstr "функция nextval достигла минимума для последовательности \"%s\" (%lld)" -#: commands/sequence.c:891 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "" "текущее значение (currval) для последовательности \"%s\" ещё не определено в " "этом сеансе" -#: commands/sequence.c:910 commands/sequence.c:916 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "последнее значение (lastval) ещё не определено в этом сеансе" -#: commands/sequence.c:996 +#: commands/sequence.c:991 #, c-format msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" msgstr "" "функции setval передано значение %lld вне пределов последовательности " "\"%s\" (%lld..%lld)" -#: commands/sequence.c:1365 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "неверное свойство последовательности SEQUENCE NAME" -#: commands/sequence.c:1391 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "" "типом столбца идентификации может быть только smallint, integer или bigint" -#: commands/sequence.c:1392 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "" "типом последовательности может быть только smallint, integer или bigint" -#: commands/sequence.c:1426 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENT не может быть нулевым" -#: commands/sequence.c:1474 +#: commands/sequence.c:1466 #, c-format msgid "MAXVALUE (%lld) is out of range for sequence data type %s" msgstr "MAXVALUE (%lld) выходит за пределы типа данных последовательности %s" -#: commands/sequence.c:1506 +#: commands/sequence.c:1498 #, c-format msgid "MINVALUE (%lld) is out of range for sequence data type %s" msgstr "MINVALUE (%lld) выходит за пределы типа данных последовательности %s" -#: commands/sequence.c:1514 +#: commands/sequence.c:1506 #, c-format msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" msgstr "MINVALUE (%lld) должно быть меньше MAXVALUE (%lld)" -#: commands/sequence.c:1535 +#: commands/sequence.c:1527 #, c-format msgid "START value (%lld) cannot be less than MINVALUE (%lld)" msgstr "значение START (%lld) не может быть меньше MINVALUE (%lld)" -#: commands/sequence.c:1541 +#: commands/sequence.c:1533 #, c-format msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "значение START (%lld) не может быть больше MAXVALUE (%lld)" -#: commands/sequence.c:1565 +#: commands/sequence.c:1557 #, c-format msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" msgstr "значение RESTART (%lld) не может быть меньше MINVALUE (%lld)" -#: commands/sequence.c:1571 +#: commands/sequence.c:1563 #, c-format msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "значение RESTART (%lld) не может быть больше MAXVALUE (%lld)" -#: commands/sequence.c:1582 +#: commands/sequence.c:1574 #, c-format msgid "CACHE (%lld) must be greater than zero" msgstr "значение CACHE (%lld) должно быть больше нуля" -#: commands/sequence.c:1618 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "неверное указание OWNED BY" # skip-rule: no-space-after-period -#: commands/sequence.c:1619 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "Укажите OWNED BY таблица.столбец или OWNED BY NONE." -#: commands/sequence.c:1644 +#: commands/sequence.c:1636 #, c-format msgid "sequence cannot be owned by relation \"%s\"" msgstr "последовательность не может принадлежать отношению \"%s\"" -#: commands/sequence.c:1652 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "" "последовательность должна иметь того же владельца, что и таблица, с которой " "она связана" -#: commands/sequence.c:1656 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "" "последовательность должна быть в той же схеме, что и таблица, с которой она " "связана" -#: commands/sequence.c:1678 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "сменить владельца последовательности идентификации нельзя" -#: commands/sequence.c:1679 commands/tablecmds.c:13945 -#: commands/tablecmds.c:16544 +#: commands/sequence.c:1671 commands/tablecmds.c:14486 +#: commands/tablecmds.c:17181 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Последовательность \"%s\" связана с таблицей \"%s\"." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1887 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "в CREATE STATISTICS можно указать только одно отношение" -#: commands/statscmds.c:136 +#: commands/statscmds.c:133 #, c-format msgid "cannot define statistics for relation \"%s\"" msgstr "для отношения \"%s\" нельзя определить объект статистики" -#: commands/statscmds.c:190 +#: commands/statscmds.c:187 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "объект статистики \"%s\" уже существует, пропускается" -#: commands/statscmds.c:198 +#: commands/statscmds.c:195 #, c-format msgid "statistics object \"%s\" already exists" msgstr "объект статистики \"%s\" уже существует" -#: commands/statscmds.c:209 +#: commands/statscmds.c:206 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "в статистике не может быть больше %d столбцов" -#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307 +#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 #, c-format msgid "statistics creation on system columns is not supported" msgstr "создание статистики для системных столбцов не поддерживается" -#: commands/statscmds.c:257 commands/statscmds.c:280 +#: commands/statscmds.c:254 commands/statscmds.c:277 #, c-format msgid "" "column \"%s\" cannot be used in statistics because its type %s has no " @@ -10913,7 +11370,7 @@ msgstr "" "столбец \"%s\" нельзя использовать в статистике, так как для его типа %s не " "определён класс операторов B-дерева по умолчанию" -#: commands/statscmds.c:324 +#: commands/statscmds.c:321 #, c-format msgid "" "expression cannot be used in multivariate statistics because its type %s has " @@ -10922,7 +11379,7 @@ msgstr "" "выражение нельзя использовать в многовариантной статистике, так как для его " "типа %s не определён класс операторов btree по умолчанию" -#: commands/statscmds.c:345 +#: commands/statscmds.c:342 #, c-format msgid "" "when building statistics on a single expression, statistics kinds may not be " @@ -10931,76 +11388,76 @@ msgstr "" "при построении статистики по единственному выражению указывать виды " "статистики нельзя" -#: commands/statscmds.c:374 +#: commands/statscmds.c:371 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "нераспознанный вид статистики \"%s\"" -#: commands/statscmds.c:403 +#: commands/statscmds.c:400 #, c-format msgid "extended statistics require at least 2 columns" msgstr "для расширенной статистики требуются минимум 2 столбца" -#: commands/statscmds.c:421 +#: commands/statscmds.c:418 #, c-format msgid "duplicate column name in statistics definition" msgstr "повторяющееся имя столбца в определении статистики" -#: commands/statscmds.c:456 +#: commands/statscmds.c:453 #, c-format msgid "duplicate expression in statistics definition" msgstr "повторяющееся выражение в определении статистики" -#: commands/statscmds.c:619 commands/tablecmds.c:8187 +#: commands/statscmds.c:628 commands/tablecmds.c:8620 #, c-format msgid "statistics target %d is too low" msgstr "ориентир статистики слишком мал (%d)" -#: commands/statscmds.c:627 commands/tablecmds.c:8195 +#: commands/statscmds.c:636 commands/tablecmds.c:8628 #, c-format msgid "lowering statistics target to %d" msgstr "ориентир статистики снижается до %d" -#: commands/statscmds.c:650 +#: commands/statscmds.c:660 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "объект статистики \"%s.%s\" не существует, пропускается" -#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359 +#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "нераспознанный параметр подписки: \"%s\"" -#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:395 +#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:404 #, c-format msgid "unrecognized origin value: \"%s\"" msgstr "нераспознанное значение origin: \"%s\"" -#: commands/subscriptioncmds.c:350 +#: commands/subscriptioncmds.c:363 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "неверная позиция в WAL (LSN): %s" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 -#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 -#: commands/subscriptioncmds.c:426 +#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 +#: commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 +#: commands/subscriptioncmds.c:439 #, 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:416 commands/subscriptioncmds.c:432 +#: commands/subscriptioncmds.c:429 commands/subscriptioncmds.c:445 #, c-format msgid "subscription with %s must also set %s" msgstr "для подписки с параметром %s необходимо также задать %s" -#: commands/subscriptioncmds.c:494 +#: commands/subscriptioncmds.c:506 #, c-format msgid "could not receive list of publications from the publisher: %s" msgstr "не удалось получить список публикаций с публикующего сервера: %s" -#: commands/subscriptioncmds.c:526 +#: commands/subscriptioncmds.c:538 #, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" @@ -11008,33 +11465,34 @@ msgstr[0] "публикация %s не существует на публику msgstr[1] "публикации %s не существуют на публикующем сервере" msgstr[2] "публикации %s не существуют на публикующем сервере" -#: commands/subscriptioncmds.c:614 +#: commands/subscriptioncmds.c:626 #, c-format msgid "permission denied to create subscription" msgstr "нет прав для создания подписки" -#: commands/subscriptioncmds.c:615 +#: commands/subscriptioncmds.c:627 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "Создавать подписки могут только роли с правами роли \"%s\"." -#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1334 replication/logical/worker.c:4616 +#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 +#: commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 +#: replication/logical/worker.c:4503 #, c-format msgid "could not connect to the publisher: %s" msgstr "не удалось подключиться к серверу публикации: %s" -#: commands/subscriptioncmds.c:816 +#: commands/subscriptioncmds.c:829 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "на сервере публикации создан слот репликации \"%s\"" -#: commands/subscriptioncmds.c:828 +#: commands/subscriptioncmds.c:841 #, c-format msgid "subscription was created, but is not connected" msgstr "подписка создана, но не подключена" -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:842 #, c-format msgid "" "To initiate replication, you must manually create the replication slot, " @@ -11043,36 +11501,43 @@ msgstr "" "Чтобы начать репликацию, вы должны вручную создать слот репликации, включить " "подписку, а затем обновить её." -#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 -#: commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 +#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 +#: commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 #, c-format msgid "subscription \"%s\" does not exist" msgstr "подписка \"%s\" не существует" -#: commands/subscriptioncmds.c:1152 +#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 #, c-format msgid "cannot set %s for enabled subscription" msgstr "для включённой подписки нельзя задать %s" -#: commands/subscriptioncmds.c:1234 +#: commands/subscriptioncmds.c:1233 +#, c-format +msgid "" +"cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "" +"задать параметр \"%s\" для подписки, для которой не задано имя слота, нельзя" + +#: commands/subscriptioncmds.c:1279 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "включить подписку, для которой не задано имя слота, нельзя" -#: commands/subscriptioncmds.c:1278 commands/subscriptioncmds.c:1329 +#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 #, c-format msgid "" "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "" "ALTER SUBSCRIPTION с обновлением для отключённых подписок не допускается" -#: commands/subscriptioncmds.c:1279 +#: commands/subscriptioncmds.c:1324 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "" "Выполните ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -#: commands/subscriptioncmds.c:1288 commands/subscriptioncmds.c:1343 +#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 #, c-format msgid "" "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase " @@ -11081,7 +11546,7 @@ msgstr "" "ALTER SUBSCRIPTION с параметром публикации refresh в режиме copy_data не " "допускается, когда включён параметр two_phase" -#: commands/subscriptioncmds.c:1289 +#: commands/subscriptioncmds.c:1334 #, c-format msgid "" "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with " @@ -11091,7 +11556,7 @@ msgstr "" "copy_data = false либо выполните DROP/CREATE SUBSCRIPTION." #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1345 +#: commands/subscriptioncmds.c:1390 #, c-format msgid "" "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE " @@ -11100,13 +11565,13 @@ msgstr "" "Выполните %s с refresh = false или с copy_data = false либо выполните DROP/" "CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1367 +#: commands/subscriptioncmds.c:1412 #, c-format msgid "" "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH для отключённых подписок не допускается" -#: commands/subscriptioncmds.c:1392 +#: commands/subscriptioncmds.c:1437 #, c-format msgid "" "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase " @@ -11115,7 +11580,7 @@ msgstr "" "ALTER SUBSCRIPTION ... REFRESH в режиме copy_data не допускается, когда " "включён параметр two_phase" -#: commands/subscriptioncmds.c:1393 +#: commands/subscriptioncmds.c:1438 #, c-format msgid "" "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/" @@ -11124,39 +11589,39 @@ msgstr "" "Выполните ALTER SUBSCRIPTION ... REFRESH с copy_data = false либо выполните " "DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1428 +#: commands/subscriptioncmds.c:1473 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "" "позиция пропуска в WAL (LSN %X/%X) должна быть больше начального LSN %X/%X" -#: commands/subscriptioncmds.c:1513 +#: commands/subscriptioncmds.c:1594 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "подписка \"%s\" не существует, пропускается" -#: commands/subscriptioncmds.c:1782 +#: commands/subscriptioncmds.c:1863 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "слот репликации \"%s\" удалён на сервере репликации" -#: commands/subscriptioncmds.c:1791 commands/subscriptioncmds.c:1799 +#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "слот репликации \"%s\" на сервере публикации не был удалён: %s" -#: commands/subscriptioncmds.c:1924 +#: commands/subscriptioncmds.c:2005 #, c-format msgid "subscription with OID %u does not exist" msgstr "подписка с OID %u не существует" -#: commands/subscriptioncmds.c:1995 commands/subscriptioncmds.c:2120 +#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "" "не удалось получить список реплицируемых таблиц с сервера репликации: %s" -#: commands/subscriptioncmds.c:2031 +#: commands/subscriptioncmds.c:2112 #, c-format msgid "" "subscription \"%s\" requested copy_data with origin = NONE but might copy " @@ -11165,7 +11630,7 @@ msgstr "" "для подписки \"%s\" выбран режим copy_data с origin = NONE, но в неё могут " "попасть данные из другого источника" -#: commands/subscriptioncmds.c:2033 +#: commands/subscriptioncmds.c:2114 #, c-format msgid "" "The subscription being created subscribes to a publication (%s) that " @@ -11183,7 +11648,7 @@ msgstr[2] "" "Создаваемая подписка связана с публикациями (%s), содержащими таблицы, в " "которые записывают другие подписки." -#: commands/subscriptioncmds.c:2036 +#: commands/subscriptioncmds.c:2117 #, c-format msgid "" "Verify that initial data copied from the publisher tables did not come from " @@ -11192,8 +11657,8 @@ msgstr "" "Убедитесь, что начальные данные, скопированные из таблиц публикации, " "поступили не из других источников." -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:893 -#: replication/pgoutput/pgoutput.c:1112 +#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 +#: replication/pgoutput/pgoutput.c:1143 #, c-format msgid "" "cannot use different column lists for table \"%s.%s\" in different " @@ -11202,7 +11667,7 @@ msgstr "" "использовать различные списки столбцов таблицы \"%s.%s\" в разных " "публикациях нельзя" -#: commands/subscriptioncmds.c:2192 +#: commands/subscriptioncmds.c:2273 #, c-format msgid "" "could not connect to publisher when attempting to drop replication slot " @@ -11212,7 +11677,7 @@ msgstr "" "\"%s\": %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2195 +#: commands/subscriptioncmds.c:2276 #, c-format msgid "" "Use %s to disable the subscription, and then use %s to disassociate it from " @@ -11221,194 +11686,197 @@ msgstr "" "Выполните %s, чтобы отключить подписку, а затем выполните %s, чтобы отвязать " "её от слота." -#: commands/subscriptioncmds.c:2226 +#: commands/subscriptioncmds.c:2307 #, c-format msgid "publication name \"%s\" used more than once" msgstr "имя публикации \"%s\" используется неоднократно" -#: commands/subscriptioncmds.c:2270 +#: commands/subscriptioncmds.c:2351 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "публикация \"%s\" уже имеется в подписке \"%s\"" -#: commands/subscriptioncmds.c:2284 +#: commands/subscriptioncmds.c:2365 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "публикация \"%s\" отсутствует в подписке \"%s\"" -#: commands/subscriptioncmds.c:2295 +#: commands/subscriptioncmds.c:2376 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "удалить все публикации из подписки нельзя" -#: commands/subscriptioncmds.c:2352 +#: commands/subscriptioncmds.c:2433 #, c-format msgid "%s requires a Boolean value or \"parallel\"" msgstr "%s требует логическое значение или \"parallel\"" -#: commands/tablecmds.c:246 commands/tablecmds.c:288 +#: commands/tablecmds.c:255 commands/tablecmds.c:297 #, c-format msgid "table \"%s\" does not exist" msgstr "таблица \"%s\" не существует" -#: commands/tablecmds.c:247 commands/tablecmds.c:289 +#: commands/tablecmds.c:256 commands/tablecmds.c:298 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "таблица \"%s\" не существует, пропускается" -#: commands/tablecmds.c:249 commands/tablecmds.c:291 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 msgid "Use DROP TABLE to remove a table." msgstr "Выполните DROP TABLE для удаления таблицы." -#: commands/tablecmds.c:252 +#: commands/tablecmds.c:261 #, c-format msgid "sequence \"%s\" does not exist" msgstr "последовательность \"%s\" не существует" -#: commands/tablecmds.c:253 +#: commands/tablecmds.c:262 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "последовательность \"%s\" не существует, пропускается" -#: commands/tablecmds.c:255 +#: commands/tablecmds.c:264 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "Выполните DROP SEQUENCE для удаления последовательности." -#: commands/tablecmds.c:258 +#: commands/tablecmds.c:267 #, c-format msgid "view \"%s\" does not exist" msgstr "представление \"%s\" не существует" -#: commands/tablecmds.c:259 +#: commands/tablecmds.c:268 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "представление \"%s\" не существует, пропускается" -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:270 msgid "Use DROP VIEW to remove a view." msgstr "Выполните DROP VIEW для удаления представления." -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:273 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "материализованное представление \"%s\" не существует" -#: commands/tablecmds.c:265 +#: commands/tablecmds.c:274 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "материализованное представление \"%s\" не существует, пропускается" -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:276 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "" "Выполните DROP MATERIALIZED VIEW для удаления материализованного " "представления." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19043 -#: parser/parse_utilcmd.c:2254 +#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19805 +#: parser/parse_utilcmd.c:2251 #, c-format msgid "index \"%s\" does not exist" msgstr "индекс \"%s\" не существует" -#: commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:280 commands/tablecmds.c:304 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "индекс \"%s\" не существует, пропускается" -#: commands/tablecmds.c:273 commands/tablecmds.c:297 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 msgid "Use DROP INDEX to remove an index." msgstr "Выполните DROP INDEX для удаления индекса." -#: commands/tablecmds.c:278 +#: commands/tablecmds.c:287 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\" - это не тип" -#: commands/tablecmds.c:279 +#: commands/tablecmds.c:288 msgid "Use DROP TYPE to remove a type." msgstr "Выполните DROP TYPE для удаления типа." -#: commands/tablecmds.c:282 commands/tablecmds.c:13784 -#: commands/tablecmds.c:16249 +#: commands/tablecmds.c:291 commands/tablecmds.c:14325 +#: commands/tablecmds.c:16886 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "сторонняя таблица \"%s\" не существует" -#: commands/tablecmds.c:283 +#: commands/tablecmds.c:292 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "сторонняя таблица \"%s\" не существует, пропускается" -#: commands/tablecmds.c:285 +#: commands/tablecmds.c:294 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Выполните DROP FOREIGN TABLE для удаления сторонней таблицы." -#: commands/tablecmds.c:700 +#: commands/tablecmds.c:734 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT можно использовать только для временных таблиц" -#: commands/tablecmds.c:731 +#: commands/tablecmds.c:765 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "" "в рамках операции с ограничениями по безопасности нельзя создать временную " "таблицу" -#: commands/tablecmds.c:767 commands/tablecmds.c:15094 +#: commands/tablecmds.c:801 commands/tablecmds.c:15745 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "отношение \"%s\" наследуется неоднократно" -#: commands/tablecmds.c:951 -#, c-format -msgid "" -"specifying a table access method is not supported on a partitioned table" -msgstr "" -"указание табличного метода доступа для секционированных таблиц не " -"поддерживаются" - -#: commands/tablecmds.c:1044 +#: commands/tablecmds.c:1067 #, c-format msgid "\"%s\" is not partitioned" msgstr "отношение \"%s\" не является секционированным" -#: commands/tablecmds.c:1138 +#: commands/tablecmds.c:1161 #, c-format msgid "cannot partition using more than %d columns" msgstr "число столбцов в ключе секционирования не может превышать %d" -#: commands/tablecmds.c:1194 +#: commands/tablecmds.c:1217 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "создать стороннюю секцию для секционированной таблицы \"%s\" нельзя" -#: commands/tablecmds.c:1196 +#: commands/tablecmds.c:1219 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Таблица \"%s\" содержит индексы, являющиеся уникальными." -#: commands/tablecmds.c:1361 +#: commands/tablecmds.c:1338 commands/tablecmds.c:13341 +#, c-format +msgid "too many array dimensions" +msgstr "слишком много размерностей массива" + +#: commands/tablecmds.c:1343 parser/parse_clause.c:774 +#: parser/parse_relation.c:1912 +#, c-format +msgid "column \"%s\" cannot be declared SETOF" +msgstr "столбец \"%s\" не может быть объявлен как SETOF" + +#: commands/tablecmds.c:1489 #, c-format msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" msgstr "DROP INDEX CONCURRENTLY не поддерживает удаление нескольких объектов" -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1493 #, c-format msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY не поддерживает режим CASCADE" -#: commands/tablecmds.c:1469 +#: commands/tablecmds.c:1597 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "удалить секционированный индекс \"%s\" параллельным способом нельзя" -#: commands/tablecmds.c:1757 +#: commands/tablecmds.c:1885 #, c-format msgid "cannot truncate only a partitioned table" msgstr "опустошить собственно секционированную таблицу нельзя" -#: commands/tablecmds.c:1758 +#: commands/tablecmds.c:1886 #, c-format msgid "" "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions " @@ -11417,39 +11885,39 @@ msgstr "" "Не указывайте ключевое слово ONLY или выполните TRUNCATE ONLY " "непосредственно для секций." -#: commands/tablecmds.c:1831 +#: commands/tablecmds.c:1959 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "опустошение распространяется на таблицу %s" -#: commands/tablecmds.c:2195 +#: commands/tablecmds.c:2320 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "опустошить стороннюю таблицу \"%s\" нельзя" -#: commands/tablecmds.c:2252 +#: commands/tablecmds.c:2377 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "временные таблицы других сеансов нельзя опустошить" -#: commands/tablecmds.c:2484 commands/tablecmds.c:14991 +#: commands/tablecmds.c:2606 commands/tablecmds.c:15642 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "наследование от секционированной таблицы \"%s\" не допускается" -#: commands/tablecmds.c:2489 +#: commands/tablecmds.c:2611 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "наследование от секции \"%s\" не допускается" -#: commands/tablecmds.c:2497 parser/parse_utilcmd.c:2484 -#: parser/parse_utilcmd.c:2626 +#: commands/tablecmds.c:2619 parser/parse_utilcmd.c:2481 +#: parser/parse_utilcmd.c:2623 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "" "наследуемое отношение \"%s\" не является таблицей или сторонней таблицей" -#: commands/tablecmds.c:2509 +#: commands/tablecmds.c:2631 #, c-format msgid "" "cannot create a temporary relation as partition of permanent relation \"%s\"" @@ -11457,74 +11925,25 @@ msgstr "" "создать временное отношение в качестве секции постоянного отношения \"%s\" " "нельзя" -#: commands/tablecmds.c:2518 commands/tablecmds.c:14970 +#: commands/tablecmds.c:2640 commands/tablecmds.c:15621 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "временное отношение \"%s\" не может наследоваться" -#: commands/tablecmds.c:2528 commands/tablecmds.c:14978 +#: commands/tablecmds.c:2650 commands/tablecmds.c:15629 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "наследование от временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:2581 -#, c-format -msgid "merging multiple inherited definitions of column \"%s\"" -msgstr "слияние нескольких наследованных определений столбца \"%s\"" - -#: commands/tablecmds.c:2593 -#, c-format -msgid "inherited column \"%s\" has a type conflict" -msgstr "конфликт типов в наследованном столбце \"%s\"" - -#: commands/tablecmds.c:2595 commands/tablecmds.c:2624 -#: commands/tablecmds.c:2643 commands/tablecmds.c:2915 -#: commands/tablecmds.c:2951 commands/tablecmds.c:2967 -#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 -#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 -#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 -#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 -#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:223 -#, c-format -msgid "%s versus %s" -msgstr "%s и %s" - -#: commands/tablecmds.c:2608 -#, c-format -msgid "inherited column \"%s\" has a collation conflict" -msgstr "конфликт правил сортировки в наследованном столбце \"%s\"" - -#: commands/tablecmds.c:2610 commands/tablecmds.c:2931 -#: commands/tablecmds.c:6848 -#, c-format -msgid "\"%s\" versus \"%s\"" -msgstr "\"%s\" и \"%s\"" - -#: commands/tablecmds.c:2622 -#, c-format -msgid "inherited column \"%s\" has a storage parameter conflict" -msgstr "конфликт параметров хранения в наследованном столбце \"%s\"" - -#: commands/tablecmds.c:2641 commands/tablecmds.c:2965 -#, c-format -msgid "column \"%s\" has a compression method conflict" -msgstr "в столбце \"%s\" возник конфликт методов сжатия" - -#: commands/tablecmds.c:2657 -#, c-format -msgid "inherited column \"%s\" has a generation conflict" -msgstr "конфликт свойства генерирования в наследованном столбце \"%s\"" - -#: commands/tablecmds.c:2763 commands/tablecmds.c:2818 -#: commands/tablecmds.c:12477 parser/parse_utilcmd.c:1307 -#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 -#: parser/parse_utilcmd.c:1857 +#: commands/tablecmds.c:2791 commands/tablecmds.c:2845 +#: commands/tablecmds.c:13024 parser/parse_utilcmd.c:1265 +#: parser/parse_utilcmd.c:1308 parser/parse_utilcmd.c:1735 +#: parser/parse_utilcmd.c:1843 #, c-format msgid "cannot convert whole-row table reference" msgstr "преобразовать ссылку на тип всей строки таблицы нельзя" -#: commands/tablecmds.c:2764 parser/parse_utilcmd.c:1308 +#: commands/tablecmds.c:2792 parser/parse_utilcmd.c:1266 #, c-format msgid "" "Generation expression for column \"%s\" contains a whole-row reference to " @@ -11533,89 +11952,58 @@ msgstr "" "Генерирующее выражение столбца \"%s\" ссылается на тип всей строки в таблице " "\"%s\"." -#: commands/tablecmds.c:2819 parser/parse_utilcmd.c:1351 +#: commands/tablecmds.c:2846 parser/parse_utilcmd.c:1309 #, c-format msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." msgstr "Ограничение \"%s\" ссылается на тип всей строки в таблице \"%s\"." -#: commands/tablecmds.c:2897 -#, c-format -msgid "merging column \"%s\" with inherited definition" -msgstr "слияние столбца \"%s\" с наследованным определением" - -#: commands/tablecmds.c:2901 -#, c-format -msgid "moving and merging column \"%s\" with inherited definition" -msgstr "перемещение и слияние столбца \"%s\" с наследуемым определением" - -#: commands/tablecmds.c:2902 -#, c-format -msgid "User-specified column moved to the position of the inherited column." -msgstr "" -"Определённый пользователем столбец перемещён в позицию наследуемого столбца." - -#: commands/tablecmds.c:2913 -#, c-format -msgid "column \"%s\" has a type conflict" -msgstr "конфликт типов в столбце \"%s\"" - -#: commands/tablecmds.c:2929 -#, c-format -msgid "column \"%s\" has a collation conflict" -msgstr "конфликт правил сортировки в столбце \"%s\"" - -#: commands/tablecmds.c:2949 -#, c-format -msgid "column \"%s\" has a storage parameter conflict" -msgstr "конфликт параметров хранения в столбце \"%s\"" - -#: commands/tablecmds.c:2995 commands/tablecmds.c:3082 +#: commands/tablecmds.c:2956 commands/tablecmds.c:3227 #, c-format msgid "column \"%s\" inherits from generated column but specifies default" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "значение по умолчанию" -#: commands/tablecmds.c:3000 commands/tablecmds.c:3087 +#: commands/tablecmds.c:2961 commands/tablecmds.c:3232 #, c-format msgid "column \"%s\" inherits from generated column but specifies identity" msgstr "" "столбец \"%s\" наследуется от генерируемого столбца, но для него задано " "свойство идентификации" -#: commands/tablecmds.c:3008 commands/tablecmds.c:3095 +#: commands/tablecmds.c:2969 commands/tablecmds.c:3240 #, c-format msgid "child column \"%s\" specifies generation expression" msgstr "для дочернего столбца \"%s\" указано генерирующее выражение" -#: commands/tablecmds.c:3010 commands/tablecmds.c:3097 +#: commands/tablecmds.c:2971 commands/tablecmds.c:3242 #, c-format msgid "A child table column cannot be generated unless its parent column is." msgstr "" "Дочерний столбец может быть генерируемым, только если родительский столбец " "является таковым." -#: commands/tablecmds.c:3143 +#: commands/tablecmds.c:3017 #, c-format msgid "column \"%s\" inherits conflicting generation expressions" msgstr "столбец \"%s\" наследует конфликтующие генерирующие выражения" -#: commands/tablecmds.c:3145 +#: commands/tablecmds.c:3019 #, c-format msgid "To resolve the conflict, specify a generation expression explicitly." msgstr "Для разрешения конфликта укажите генерирующее выражение явно." -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3023 #, c-format msgid "column \"%s\" inherits conflicting default values" msgstr "столбец \"%s\" наследует конфликтующие значения по умолчанию" -#: commands/tablecmds.c:3151 +#: commands/tablecmds.c:3025 #, c-format msgid "To resolve the conflict, specify a default explicitly." msgstr "Для решения конфликта укажите желаемое значение по умолчанию." -#: commands/tablecmds.c:3201 +#: commands/tablecmds.c:3080 #, c-format msgid "" "check constraint name \"%s\" appears multiple times but with different " @@ -11624,113 +12012,193 @@ msgstr "" "имя ограничения-проверки \"%s\" фигурирует несколько раз, но с разными " "выражениями" -#: commands/tablecmds.c:3414 +#: commands/tablecmds.c:3131 #, c-format -msgid "cannot move temporary tables of other sessions" -msgstr "перемещать временные таблицы других сеансов нельзя" +msgid "merging column \"%s\" with inherited definition" +msgstr "слияние столбца \"%s\" с наследованным определением" -#: commands/tablecmds.c:3484 +#: commands/tablecmds.c:3135 #, c-format -msgid "cannot rename column of typed table" -msgstr "переименовать столбец типизированной таблицы нельзя" +msgid "moving and merging column \"%s\" with inherited definition" +msgstr "перемещение и слияние столбца \"%s\" с наследуемым определением" -#: commands/tablecmds.c:3503 +#: commands/tablecmds.c:3136 #, c-format -msgid "cannot rename columns of relation \"%s\"" -msgstr "переименовывать столбцы отношения \"%s\" нельзя" +msgid "User-specified column moved to the position of the inherited column." +msgstr "" +"Определённый пользователем столбец перемещён в позицию наследуемого столбца." -#: commands/tablecmds.c:3598 +#: commands/tablecmds.c:3148 #, c-format -msgid "inherited column \"%s\" must be renamed in child tables too" -msgstr "" -"наследованный столбец \"%s\" должен быть также переименован в дочерних " -"таблицах" +msgid "column \"%s\" has a type conflict" +msgstr "конфликт типов в столбце \"%s\"" -#: commands/tablecmds.c:3630 +#: commands/tablecmds.c:3150 commands/tablecmds.c:3184 +#: commands/tablecmds.c:3200 commands/tablecmds.c:3307 +#: commands/tablecmds.c:3340 commands/tablecmds.c:3356 +#: parser/parse_coerce.c:2192 parser/parse_coerce.c:2212 +#: parser/parse_coerce.c:2232 parser/parse_coerce.c:2253 +#: parser/parse_coerce.c:2308 parser/parse_coerce.c:2342 +#: parser/parse_coerce.c:2418 parser/parse_coerce.c:2449 +#: parser/parse_coerce.c:2488 parser/parse_coerce.c:2555 +#: parser/parse_param.c:223 #, c-format -msgid "cannot rename system column \"%s\"" -msgstr "нельзя переименовать системный столбец \"%s\"" +msgid "%s versus %s" +msgstr "%s и %s" -#: commands/tablecmds.c:3645 +#: commands/tablecmds.c:3162 #, c-format -msgid "cannot rename inherited column \"%s\"" -msgstr "нельзя переименовать наследованный столбец \"%s\"" +msgid "column \"%s\" has a collation conflict" +msgstr "конфликт правил сортировки в столбце \"%s\"" -#: commands/tablecmds.c:3797 +#: commands/tablecmds.c:3164 commands/tablecmds.c:3326 +#: commands/tablecmds.c:7080 #, c-format -msgid "inherited constraint \"%s\" must be renamed in child tables too" -msgstr "" -"наследуемое ограничение \"%s\" должно быть также переименовано в дочерних " -"таблицах" +msgid "\"%s\" versus \"%s\"" +msgstr "\"%s\" и \"%s\"" -#: commands/tablecmds.c:3804 +#: commands/tablecmds.c:3182 #, c-format -msgid "cannot rename inherited constraint \"%s\"" -msgstr "нельзя переименовать наследованное ограничение \"%s\"" +msgid "column \"%s\" has a storage parameter conflict" +msgstr "конфликт параметров хранения в столбце \"%s\"" -#. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4101 +#: commands/tablecmds.c:3198 commands/tablecmds.c:3354 #, c-format -msgid "" -"cannot %s \"%s\" because it is being used by active queries in this session" -msgstr "" -"нельзя выполнить %s \"%s\", так как этот объект используется активными " -"запросами в данном сеансе" +msgid "column \"%s\" has a compression method conflict" +msgstr "в столбце \"%s\" возник конфликт методов сжатия" -#. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4110 +#: commands/tablecmds.c:3293 #, c-format -msgid "cannot %s \"%s\" because it has pending trigger events" -msgstr "" -"нельзя выполнить %s \"%s\", так как с этим объектом связаны отложенные " -"события триггеров" +msgid "merging multiple inherited definitions of column \"%s\"" +msgstr "слияние нескольких наследованных определений столбца \"%s\"" -#: commands/tablecmds.c:4577 +#: commands/tablecmds.c:3305 #, c-format -msgid "cannot alter partition \"%s\" with an incomplete detach" -msgstr "нельзя изменить секцию \"%s\", которая не полностью отсоединена" +msgid "inherited column \"%s\" has a type conflict" +msgstr "конфликт типов в наследованном столбце \"%s\"" -#: commands/tablecmds.c:4770 commands/tablecmds.c:4785 +#: commands/tablecmds.c:3324 #, c-format -msgid "cannot change persistence setting twice" -msgstr "изменить характеристику хранения дважды нельзя" +msgid "inherited column \"%s\" has a collation conflict" +msgstr "конфликт правил сортировки в наследованном столбце \"%s\"" + +#: commands/tablecmds.c:3338 +#, c-format +msgid "inherited column \"%s\" has a storage parameter conflict" +msgstr "конфликт параметров хранения в наследованном столбце \"%s\"" + +#: commands/tablecmds.c:3366 +#, c-format +msgid "inherited column \"%s\" has a generation conflict" +msgstr "конфликт свойства генерирования в наследованном столбце \"%s\"" + +#: commands/tablecmds.c:3597 +#, c-format +msgid "cannot move temporary tables of other sessions" +msgstr "перемещать временные таблицы других сеансов нельзя" + +#: commands/tablecmds.c:3670 +#, c-format +msgid "cannot rename column of typed table" +msgstr "переименовать столбец типизированной таблицы нельзя" + +#: commands/tablecmds.c:3689 +#, c-format +msgid "cannot rename columns of relation \"%s\"" +msgstr "переименовывать столбцы отношения \"%s\" нельзя" + +#: commands/tablecmds.c:3784 +#, c-format +msgid "inherited column \"%s\" must be renamed in child tables too" +msgstr "" +"наследованный столбец \"%s\" должен быть также переименован в дочерних " +"таблицах" + +#: commands/tablecmds.c:3816 +#, c-format +msgid "cannot rename system column \"%s\"" +msgstr "нельзя переименовать системный столбец \"%s\"" + +#: commands/tablecmds.c:3831 +#, c-format +msgid "cannot rename inherited column \"%s\"" +msgstr "нельзя переименовать наследованный столбец \"%s\"" + +#: commands/tablecmds.c:3983 +#, c-format +msgid "inherited constraint \"%s\" must be renamed in child tables too" +msgstr "" +"наследуемое ограничение \"%s\" должно быть также переименовано в дочерних " +"таблицах" + +#: commands/tablecmds.c:3990 +#, c-format +msgid "cannot rename inherited constraint \"%s\"" +msgstr "нельзя переименовать наследованное ограничение \"%s\"" + +#. translator: first %s is a SQL command, eg ALTER TABLE +#: commands/tablecmds.c:4290 +#, c-format +msgid "" +"cannot %s \"%s\" because it is being used by active queries in this session" +msgstr "" +"нельзя выполнить %s \"%s\", так как этот объект используется активными " +"запросами в данном сеансе" + +#. translator: first %s is a SQL command, eg ALTER TABLE +#: commands/tablecmds.c:4299 +#, c-format +msgid "cannot %s \"%s\" because it has pending trigger events" +msgstr "" +"нельзя выполнить %s \"%s\", так как с этим объектом связаны отложенные " +"события триггеров" -#: commands/tablecmds.c:4806 +#: commands/tablecmds.c:4325 #, c-format -msgid "cannot change access method of a partitioned table" -msgstr "менять метод доступа для секционированной таблицы нельзя" +msgid "cannot alter temporary tables of other sessions" +msgstr "модифицировать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:4812 +#: commands/tablecmds.c:4798 +#, c-format +msgid "cannot alter partition \"%s\" with an incomplete detach" +msgstr "нельзя изменить секцию \"%s\", которая не полностью отсоединена" + +#: commands/tablecmds.c:5002 commands/tablecmds.c:5017 +#, c-format +msgid "cannot change persistence setting twice" +msgstr "изменить характеристику хранения дважды нельзя" + +#: commands/tablecmds.c:5038 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "множественные подкоманды SET ACCESS METHOD не допускаются" -#: commands/tablecmds.c:5533 +#: commands/tablecmds.c:5768 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "перезаписать системное отношение \"%s\" нельзя" -#: commands/tablecmds.c:5539 +#: commands/tablecmds.c:5774 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "перезаписать таблицу \"%s\", используемую как таблицу каталога, нельзя" -#: commands/tablecmds.c:5549 +#: commands/tablecmds.c:5786 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "перезаписывать временные таблицы других сеансов нельзя" -#: commands/tablecmds.c:6044 +#: commands/tablecmds.c:6281 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "столбец \"%s\" отношения \"%s\" содержит значения NULL" -#: commands/tablecmds.c:6061 +#: commands/tablecmds.c:6298 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "ограничение-проверку \"%s\" отношения \"%s\" нарушает некоторая строка" -#: commands/tablecmds.c:6080 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6317 partitioning/partbounds.c:3387 #, c-format msgid "" "updated partition constraint for default partition \"%s\" would be violated " @@ -11739,24 +12207,24 @@ msgstr "" "изменённое ограничение секции для секции по умолчанию \"%s\" будет нарушено " "некоторыми строками" -#: commands/tablecmds.c:6086 +#: commands/tablecmds.c:6323 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "ограничение секции отношения \"%s\" нарушает некоторая строка" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6348 +#: commands/tablecmds.c:6588 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "действие ALTER %s нельзя выполнить с отношением \"%s\"" -#: commands/tablecmds.c:6603 commands/tablecmds.c:6610 +#: commands/tablecmds.c:6843 commands/tablecmds.c:6850 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "" "изменить тип \"%s\" нельзя, так как он задействован в столбце \"%s.%s\"" -#: commands/tablecmds.c:6617 +#: commands/tablecmds.c:6857 #, c-format msgid "" "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" @@ -11764,77 +12232,77 @@ msgstr "" "изменить стороннюю таблицу \"%s\" нельзя, так как столбец \"%s.%s\" " "задействует тип её строки" -#: commands/tablecmds.c:6624 +#: commands/tablecmds.c:6864 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "" "изменить таблицу \"%s\" нельзя, так как столбец \"%s.%s\" задействует тип её " "строки" -#: commands/tablecmds.c:6680 +#: commands/tablecmds.c:6920 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "изменить тип \"%s\", так как это тип типизированной таблицы" -#: commands/tablecmds.c:6682 +#: commands/tablecmds.c:6922 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "" "Чтобы изменить также типизированные таблицы, выполните ALTER ... CASCADE." -#: commands/tablecmds.c:6728 +#: commands/tablecmds.c:6968 #, c-format msgid "type %s is not a composite type" msgstr "тип %s не является составным" -#: commands/tablecmds.c:6755 +#: commands/tablecmds.c:6995 #, c-format msgid "cannot add column to typed table" msgstr "добавить столбец в типизированную таблицу нельзя" -#: commands/tablecmds.c:6811 +#: commands/tablecmds.c:7043 #, c-format msgid "cannot add column to a partition" msgstr "добавить столбец в секцию нельзя" -#: commands/tablecmds.c:6840 commands/tablecmds.c:15221 +#: commands/tablecmds.c:7072 commands/tablecmds.c:15860 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочерняя таблица \"%s\" имеет другой тип для столбца \"%s\"" -#: commands/tablecmds.c:6846 commands/tablecmds.c:15228 +#: commands/tablecmds.c:7078 commands/tablecmds.c:15866 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "" "дочерняя таблица \"%s\" имеет другое правило сортировки для столбца \"%s\"" -#: commands/tablecmds.c:6864 +#: commands/tablecmds.c:7096 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "объединение определений столбца \"%s\" для потомка \"%s\"" -#: commands/tablecmds.c:6911 +#: commands/tablecmds.c:7149 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "" "добавить столбец идентификации в таблицу, у которой есть дочерние, нельзя" -#: commands/tablecmds.c:7162 +#: commands/tablecmds.c:7362 #, c-format msgid "column must be added to child tables too" msgstr "столбец также должен быть добавлен к дочерним таблицам" -#: commands/tablecmds.c:7240 +#: commands/tablecmds.c:7440 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "столбец \"%s\" отношения \"%s\" уже существует, пропускается" -#: commands/tablecmds.c:7247 +#: commands/tablecmds.c:7447 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "столбец \"%s\" отношения \"%s\" уже существует" -#: commands/tablecmds.c:7313 commands/tablecmds.c:12115 +#: commands/tablecmds.c:7513 commands/tablecmds.c:12652 #, c-format msgid "" "cannot remove constraint from only the partitioned table when partitions " @@ -11843,59 +12311,73 @@ msgstr "" "удалить ограничение только из секционированной таблицы, когда существуют " "секции, нельзя" -#: commands/tablecmds.c:7314 commands/tablecmds.c:7631 -#: commands/tablecmds.c:8604 commands/tablecmds.c:12116 +#: commands/tablecmds.c:7514 commands/tablecmds.c:7828 +#: commands/tablecmds.c:8006 commands/tablecmds.c:8113 +#: commands/tablecmds.c:8230 commands/tablecmds.c:9049 +#: commands/tablecmds.c:12653 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не указывайте ключевое слово ONLY." -#: commands/tablecmds.c:7351 commands/tablecmds.c:7557 -#: commands/tablecmds.c:7699 commands/tablecmds.c:7817 -#: commands/tablecmds.c:7911 commands/tablecmds.c:7970 -#: commands/tablecmds.c:8089 commands/tablecmds.c:8228 -#: commands/tablecmds.c:8298 commands/tablecmds.c:8432 -#: commands/tablecmds.c:12270 commands/tablecmds.c:13807 -#: commands/tablecmds.c:16338 +#: commands/tablecmds.c:7550 commands/tablecmds.c:7754 +#: commands/tablecmds.c:7896 commands/tablecmds.c:8028 +#: commands/tablecmds.c:8157 commands/tablecmds.c:8251 +#: commands/tablecmds.c:8352 commands/tablecmds.c:8509 +#: commands/tablecmds.c:8662 commands/tablecmds.c:8743 +#: commands/tablecmds.c:8877 commands/tablecmds.c:12806 +#: commands/tablecmds.c:14348 commands/tablecmds.c:16975 #, c-format msgid "cannot alter system column \"%s\"" msgstr "системный столбец \"%s\" нельзя изменить" -#: commands/tablecmds.c:7357 commands/tablecmds.c:7705 +#: commands/tablecmds.c:7556 commands/tablecmds.c:7902 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "столбец \"%s\" отношения \"%s\" является столбцом идентификации" -#: commands/tablecmds.c:7400 +#: commands/tablecmds.c:7597 #, c-format msgid "column \"%s\" is in a primary key" msgstr "столбец \"%s\" входит в первичный ключ" -#: commands/tablecmds.c:7405 +#: commands/tablecmds.c:7602 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "столбец \"%s\" входит в индекс, используемый для идентификации реплики" -#: commands/tablecmds.c:7428 +#: commands/tablecmds.c:7625 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "столбец \"%s\" в родительской таблице помечен как NOT NULL" -#: commands/tablecmds.c:7628 commands/tablecmds.c:9088 +#: commands/tablecmds.c:7825 commands/tablecmds.c:9533 #, c-format msgid "constraint must be added to child tables too" msgstr "ограничение также должно быть добавлено к дочерним таблицам" -#: commands/tablecmds.c:7629 +#: commands/tablecmds.c:7826 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Столбец \"%s\" отношения \"%s\" уже имеет свойство NOT NULL." -#: commands/tablecmds.c:7714 +#: commands/tablecmds.c:7911 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "столбец \"%s\" отношения \"%s\" является генерируемым" -#: commands/tablecmds.c:7828 +#: commands/tablecmds.c:8005 +#, c-format +msgid "cannot add identity to a column of only the partitioned table" +msgstr "" +"сделать столбцом идентификации столбец одной лишь секционированной таблицы " +"нельзя" + +#: commands/tablecmds.c:8011 +#, c-format +msgid "cannot add identity to a column of a partition" +msgstr "сделать столбцом идентификации столбец одной секции нельзя" + +#: commands/tablecmds.c:8039 #, c-format msgid "" "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity " @@ -11904,46 +12386,74 @@ msgstr "" "столбец \"%s\" отношения \"%s\" должен быть объявлен как NOT NULL, чтобы его " "можно было сделать столбцом идентификации" -#: commands/tablecmds.c:7834 +#: commands/tablecmds.c:8045 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "столбец \"%s\" отношения \"%s\" уже является столбцом идентификации" -#: commands/tablecmds.c:7840 +#: commands/tablecmds.c:8051 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "столбец \"%s\" отношения \"%s\" уже имеет значение по умолчанию" -#: commands/tablecmds.c:7917 commands/tablecmds.c:7978 +#: commands/tablecmds.c:8112 +#, c-format +msgid "cannot change identity column of only the partitioned table" +msgstr "" +"изменить столбец идентификации для одной лишь секционированной таблицы нельзя" + +#: commands/tablecmds.c:8118 +#, c-format +msgid "cannot change identity column of a partition" +msgstr "изменить столбец идентификации для одной секции нельзя" + +#: commands/tablecmds.c:8163 commands/tablecmds.c:8259 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "столбец \"%s\" отношения \"%s\" не является столбцом идентификации" -#: commands/tablecmds.c:7983 +#: commands/tablecmds.c:8229 +#, c-format +msgid "cannot drop identity from a column of only the partitioned table" +msgstr "" +"лишить свойства идентификации столбец одной лишь секционированной таблицы " +"нельзя" + +#: commands/tablecmds.c:8235 +#, c-format +msgid "cannot drop identity from a column of a partition" +msgstr "лишить свойства идентификации столбец одной секции нельзя" + +#: commands/tablecmds.c:8264 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "" "столбец \"%s\" отношения \"%s\" не является столбцом идентификации, " "пропускается" -#: commands/tablecmds.c:8036 +#: commands/tablecmds.c:8358 +#, c-format +msgid "column \"%s\" of relation \"%s\" is not a generated column" +msgstr "столбец \"%s\" отношения \"%s\" не является генерируемым столбцом" + +#: commands/tablecmds.c:8456 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "" "ALTER TABLE / DROP EXPRESSION нужно применять также к дочерним таблицам" -#: commands/tablecmds.c:8058 +#: commands/tablecmds.c:8478 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "нельзя удалить генерирующее выражение из наследуемого столбца" -#: commands/tablecmds.c:8097 +#: commands/tablecmds.c:8517 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "" "столбец \"%s\" отношения \"%s\" не является сохранённым генерируемым столбцом" -#: commands/tablecmds.c:8102 +#: commands/tablecmds.c:8522 #, c-format msgid "" "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" @@ -11951,53 +12461,53 @@ msgstr "" "столбец \"%s\" отношения \"%s\" пропускается, так как не является " "сохранённым генерируемым столбцом" -#: commands/tablecmds.c:8175 +#: commands/tablecmds.c:8600 #, c-format msgid "cannot refer to non-index column by number" msgstr "по номеру можно ссылаться только на столбец в индексе" -#: commands/tablecmds.c:8218 +#: commands/tablecmds.c:8652 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "столбец с номером %d отношения \"%s\" не существует" -#: commands/tablecmds.c:8237 +#: commands/tablecmds.c:8671 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "изменить статистику включённого столбца \"%s\" индекса \"%s\" нельзя" -#: commands/tablecmds.c:8242 +#: commands/tablecmds.c:8676 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" "изменить статистику столбца \"%s\" (не выражения) индекса \"%s\" нельзя" -#: commands/tablecmds.c:8244 +#: commands/tablecmds.c:8678 #, c-format msgid "Alter statistics on table column instead." msgstr "Вместо этого измените статистику для столбца в таблице." -#: commands/tablecmds.c:8479 +#: commands/tablecmds.c:8924 #, c-format msgid "cannot drop column from typed table" msgstr "нельзя удалить столбец в типизированной таблице" -#: commands/tablecmds.c:8542 +#: commands/tablecmds.c:8987 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "столбец \"%s\" в таблице\"%s\" не существует, пропускается" -#: commands/tablecmds.c:8555 +#: commands/tablecmds.c:9000 #, c-format msgid "cannot drop system column \"%s\"" msgstr "нельзя удалить системный столбец \"%s\"" -#: commands/tablecmds.c:8565 +#: commands/tablecmds.c:9010 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "нельзя удалить наследованный столбец \"%s\"" -#: commands/tablecmds.c:8578 +#: commands/tablecmds.c:9023 #, c-format msgid "" "cannot drop column \"%s\" because it is part of the partition key of " @@ -12006,7 +12516,7 @@ msgstr "" "удалить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:8603 +#: commands/tablecmds.c:9048 #, c-format msgid "" "cannot drop column from only the partitioned table when partitions exist" @@ -12014,7 +12524,7 @@ msgstr "" "удалить столбец только из секционированной таблицы, когда существуют секции, " "нельзя" -#: commands/tablecmds.c:8808 +#: commands/tablecmds.c:9253 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned " @@ -12023,14 +12533,14 @@ msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX не поддерживается с " "секционированными таблицами" -#: commands/tablecmds.c:8833 +#: commands/tablecmds.c:9278 #, 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:9170 +#: commands/tablecmds.c:9615 #, c-format msgid "" "cannot use ONLY for foreign key on partitioned table \"%s\" referencing " @@ -12039,7 +12549,7 @@ msgstr "" "нельзя использовать ONLY для стороннего ключа в секционированной таблице " "\"%s\", ссылающегося на отношение \"%s\"" -#: commands/tablecmds.c:9176 +#: commands/tablecmds.c:9621 #, c-format msgid "" "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing " @@ -12048,25 +12558,25 @@ msgstr "" "нельзя добавить с характеристикой NOT VALID сторонний ключ в " "секционированной таблице \"%s\", ссылающийся на отношение \"%s\"" -#: commands/tablecmds.c:9179 +#: commands/tablecmds.c:9624 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "" "Эта функциональность с секционированными таблицами пока не поддерживается." -#: commands/tablecmds.c:9186 commands/tablecmds.c:9642 +#: commands/tablecmds.c:9631 commands/tablecmds.c:10092 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "указанный объект \"%s\" не является таблицей" -#: commands/tablecmds.c:9209 +#: commands/tablecmds.c:9654 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "" "ограничения в постоянных таблицах могут ссылаться только на постоянные " "таблицы" -#: commands/tablecmds.c:9216 +#: commands/tablecmds.c:9661 #, c-format msgid "" "constraints on unlogged tables may reference only permanent or unlogged " @@ -12075,13 +12585,13 @@ msgstr "" "ограничения в нежурналируемых таблицах могут ссылаться только на постоянные " "или нежурналируемые таблицы" -#: commands/tablecmds.c:9222 +#: commands/tablecmds.c:9667 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "ограничения во временных таблицах могут ссылаться только на временные таблицы" -#: commands/tablecmds.c:9226 +#: commands/tablecmds.c:9671 #, c-format msgid "" "constraints on temporary tables must involve temporary tables of this session" @@ -12089,7 +12599,7 @@ msgstr "" "ограничения во временных таблицах должны ссылаться только на временные " "таблицы текущего сеанса" -#: commands/tablecmds.c:9290 commands/tablecmds.c:9296 +#: commands/tablecmds.c:9735 commands/tablecmds.c:9741 #, c-format msgid "" "invalid %s action for foreign key constraint containing generated column" @@ -12097,22 +12607,22 @@ msgstr "" "некорректное действие %s для ограничения внешнего ключа, содержащего " "генерируемый столбец" -#: commands/tablecmds.c:9312 +#: commands/tablecmds.c:9757 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число столбцов в источнике и назначении внешнего ключа не совпадает" -#: commands/tablecmds.c:9419 +#: commands/tablecmds.c:9864 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "ограничение внешнего ключа \"%s\" нельзя реализовать" -#: commands/tablecmds.c:9421 +#: commands/tablecmds.c:9866 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Столбцы ключа \"%s\" и \"%s\" имеют несовместимые типы: %s и %s." -#: commands/tablecmds.c:9578 +#: commands/tablecmds.c:10035 #, c-format msgid "" "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" @@ -12120,40 +12630,49 @@ msgstr "" "столбец \"%s\", фигурирующий в действии ON DELETE SET, должен входить во " "внешний ключ" -#: commands/tablecmds.c:9852 commands/tablecmds.c:10322 -#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 +#: commands/tablecmds.c:10392 commands/tablecmds.c:10832 +#: parser/parse_utilcmd.c:822 parser/parse_utilcmd.c:945 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "ограничения внешнего ключа для сторонних таблиц не поддерживаются" -#: commands/tablecmds.c:10875 commands/tablecmds.c:11156 -#: commands/tablecmds.c:12072 commands/tablecmds.c:12147 +#: commands/tablecmds.c:10815 +#, c-format +msgid "" +"cannot attach table \"%s\" as a partition because it is referenced by " +"foreign key \"%s\"" +msgstr "" +"присоединить таблицу \"%s\" в качестве секции нельзя, так как на неё " +"ссылается внешний ключ \"%s\"" + +#: commands/tablecmds.c:11416 commands/tablecmds.c:11697 +#: commands/tablecmds.c:12609 commands/tablecmds.c:12683 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "ограничение \"%s\" в таблице \"%s\" не существует" -#: commands/tablecmds.c:10882 +#: commands/tablecmds.c:11423 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "ограничение \"%s\" в таблице \"%s\" не является внешним ключом" -#: commands/tablecmds.c:10920 +#: commands/tablecmds.c:11461 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "изменить ограничение \"%s\" таблицы \"%s\" нельзя" -#: commands/tablecmds.c:10923 +#: commands/tablecmds.c:11464 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "" "Ограничение \"%s\" является производным от ограничения \"%s\" таблицы \"%s\"." -#: commands/tablecmds.c:10925 +#: commands/tablecmds.c:11466 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "Вместо этого вы можете изменить родительское ограничение." -#: commands/tablecmds.c:11164 +#: commands/tablecmds.c:11705 #, c-format msgid "" "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" @@ -12161,51 +12680,51 @@ msgstr "" "ограничение \"%s\" в таблице \"%s\" не является внешним ключом или " "ограничением-проверкой" -#: commands/tablecmds.c:11241 +#: commands/tablecmds.c:11782 #, c-format msgid "constraint must be validated on child tables too" msgstr "ограничение также должно соблюдаться в дочерних таблицах" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11869 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "столбец \"%s\", указанный в ограничении внешнего ключа, не существует" -#: commands/tablecmds.c:11334 +#: commands/tablecmds.c:11875 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "системные столбцы нельзя использовать во внешних ключах" -#: commands/tablecmds.c:11338 +#: commands/tablecmds.c:11879 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "во внешнем ключе не может быть больше %d столбцов" -#: commands/tablecmds.c:11403 +#: commands/tablecmds.c:11944 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "" "использовать откладываемый первичный ключ в целевой внешней таблице \"%s\" " "нельзя" -#: commands/tablecmds.c:11420 +#: commands/tablecmds.c:11961 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "в целевой внешней таблице \"%s\" нет первичного ключа" -#: commands/tablecmds.c:11488 +#: commands/tablecmds.c:12029 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "в списке столбцов внешнего ключа не должно быть повторений" -#: commands/tablecmds.c:11580 +#: commands/tablecmds.c:12121 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "использовать откладываемое ограничение уникальности в целевой внешней " "таблице \"%s\" нельзя" -#: commands/tablecmds.c:11585 +#: commands/tablecmds.c:12126 #, c-format msgid "" "there is no unique constraint matching given keys for referenced table \"%s\"" @@ -12213,27 +12732,39 @@ msgstr "" "в целевой внешней таблице \"%s\" нет ограничения уникальности, " "соответствующего данным ключам" -#: commands/tablecmds.c:12028 +#: commands/tablecmds.c:12565 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "удалить наследованное ограничение \"%s\" таблицы \"%s\" нельзя" -#: commands/tablecmds.c:12078 +#: commands/tablecmds.c:12615 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" в таблице \"%s\" не существует, пропускается" -#: commands/tablecmds.c:12254 +#: commands/tablecmds.c:12790 #, c-format msgid "cannot alter column type of typed table" msgstr "изменить тип столбца в типизированной таблице нельзя" -#: commands/tablecmds.c:12281 +#: commands/tablecmds.c:12816 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "изменяя тип генерируемого столбца, нельзя указывать USING" + +#: commands/tablecmds.c:12817 commands/tablecmds.c:18028 +#: commands/tablecmds.c:18118 commands/trigger.c:656 +#: rewrite/rewriteHandler.c:941 rewrite/rewriteHandler.c:976 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "Столбец \"%s\" является генерируемым." + +#: commands/tablecmds.c:12827 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "изменить наследованный столбец \"%s\" нельзя" -#: commands/tablecmds.c:12290 +#: commands/tablecmds.c:12836 #, c-format msgid "" "cannot alter column \"%s\" because it is part of the partition key of " @@ -12242,7 +12773,7 @@ msgstr "" "изменить столбец \"%s\" нельзя, так как он входит в ключ разбиения отношения " "\"%s\"" -#: commands/tablecmds.c:12340 +#: commands/tablecmds.c:12886 #, c-format msgid "" "result of USING clause for column \"%s\" cannot be cast automatically to " @@ -12250,45 +12781,45 @@ msgid "" msgstr "" "результат USING для столбца \"%s\" нельзя автоматически привести к типу %s" -#: commands/tablecmds.c:12343 +#: commands/tablecmds.c:12889 #, c-format msgid "You might need to add an explicit cast." msgstr "Возможно, необходимо добавить явное приведение." -#: commands/tablecmds.c:12347 +#: commands/tablecmds.c:12893 #, 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:12350 +#: commands/tablecmds.c:12897 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Возможно, необходимо указать \"USING %s::%s\"." -#: commands/tablecmds.c:12449 +#: commands/tablecmds.c:12996 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "изменить наследованный столбец \"%s\" отношения \"%s\" нельзя" -#: commands/tablecmds.c:12478 +#: commands/tablecmds.c:13025 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Выражение USING ссылается на тип всей строки таблицы." -#: commands/tablecmds.c:12489 +#: commands/tablecmds.c:13036 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "" "тип наследованного столбца \"%s\" должен быть изменён и в дочерних таблицах" -#: commands/tablecmds.c:12614 +#: commands/tablecmds.c:13161 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "нельзя изменить тип столбца \"%s\" дважды" -#: commands/tablecmds.c:12652 +#: commands/tablecmds.c:13199 #, c-format msgid "" "generation expression for column \"%s\" cannot be cast automatically to type " @@ -12297,160 +12828,160 @@ msgstr "" "генерирующее выражение для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:12657 +#: commands/tablecmds.c:13204 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "значение по умолчанию для столбца \"%s\" нельзя автоматически привести к " "типу %s" -#: commands/tablecmds.c:12745 +#: commands/tablecmds.c:13508 #, c-format msgid "cannot alter type of a column used by a function or procedure" msgstr "изменить тип столбца, задействованного в функции или процедуре, нельзя" -#: commands/tablecmds.c:12746 commands/tablecmds.c:12760 -#: commands/tablecmds.c:12779 commands/tablecmds.c:12797 -#: commands/tablecmds.c:12855 +#: commands/tablecmds.c:13509 commands/tablecmds.c:13524 +#: commands/tablecmds.c:13544 commands/tablecmds.c:13563 +#: commands/tablecmds.c:13622 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s зависит от столбца \"%s\"" -#: commands/tablecmds.c:12759 +#: commands/tablecmds.c:13523 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "" "изменить тип столбца, задействованного в представлении или правиле, нельзя" -#: commands/tablecmds.c:12778 +#: commands/tablecmds.c:13543 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "изменить тип столбца, задействованного в определении триггера, нельзя" -#: commands/tablecmds.c:12796 +#: commands/tablecmds.c:13562 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "изменить тип столбца, задействованного в определении политики, нельзя" -#: commands/tablecmds.c:12827 +#: commands/tablecmds.c:13593 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "изменить тип столбца, задействованного в генерируемом столбце, нельзя" -#: commands/tablecmds.c:12828 +#: commands/tablecmds.c:13594 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Столбец \"%s\" используется генерируемым столбцом \"%s\"." -#: commands/tablecmds.c:12854 +#: commands/tablecmds.c:13621 #, c-format msgid "cannot alter type of a column used by a publication WHERE clause" msgstr "" "изменить тип столбца, задействованного в заданном для публикации предложении " "WHERE, нельзя" -#: commands/tablecmds.c:13915 commands/tablecmds.c:13927 +#: commands/tablecmds.c:14456 commands/tablecmds.c:14468 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "сменить владельца индекса \"%s\" нельзя" -#: commands/tablecmds.c:13917 commands/tablecmds.c:13929 +#: commands/tablecmds.c:14458 commands/tablecmds.c:14470 #, c-format msgid "Change the ownership of the index's table instead." msgstr "Однако возможно сменить владельца таблицы, содержащей этот индекс." -#: commands/tablecmds.c:13943 +#: commands/tablecmds.c:14484 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "сменить владельца последовательности \"%s\" нельзя" -#: commands/tablecmds.c:13968 +#: commands/tablecmds.c:14509 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "сменить владельца отношения \"%s\" нельзя" -#: commands/tablecmds.c:14330 +#: commands/tablecmds.c:14976 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одной инструкции не может быть несколько подкоманд SET TABLESPACE" -#: commands/tablecmds.c:14407 +#: commands/tablecmds.c:15053 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "задать параметры отношения \"%s\" нельзя" -#: commands/tablecmds.c:14441 commands/view.c:445 +#: commands/tablecmds.c:15087 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "" "WITH CHECK OPTION поддерживается только с автообновляемыми представлениями" -#: commands/tablecmds.c:14691 +#: commands/tablecmds.c:15338 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "" "в табличных пространствах есть только таблицы, индексы и материализованные " "представления" -#: commands/tablecmds.c:14703 +#: commands/tablecmds.c:15350 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "перемещать объекты в/из табличного пространства pg_global нельзя" -#: commands/tablecmds.c:14795 +#: commands/tablecmds.c:15442 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "" "обработка прерывается из-за невозможности заблокировать отношение \"%s.%s\"" -#: commands/tablecmds.c:14811 +#: commands/tablecmds.c:15458 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "в табличном пространстве \"%s\" не найдены подходящие отношения" -#: commands/tablecmds.c:14929 +#: commands/tablecmds.c:15580 #, c-format msgid "cannot change inheritance of typed table" msgstr "изменить наследование типизированной таблицы нельзя" -#: commands/tablecmds.c:14934 commands/tablecmds.c:15452 +#: commands/tablecmds.c:15585 commands/tablecmds.c:16085 #, c-format msgid "cannot change inheritance of a partition" msgstr "изменить наследование секции нельзя" -#: commands/tablecmds.c:14939 +#: commands/tablecmds.c:15590 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "изменить наследование секционированной таблицы нельзя" -#: commands/tablecmds.c:14985 +#: commands/tablecmds.c:15636 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "наследование для временного отношения другого сеанса невозможно" -#: commands/tablecmds.c:14998 +#: commands/tablecmds.c:15649 #, c-format msgid "cannot inherit from a partition" msgstr "наследование от секции невозможно" -#: commands/tablecmds.c:15020 commands/tablecmds.c:17878 +#: commands/tablecmds.c:15671 commands/tablecmds.c:18529 #, c-format msgid "circular inheritance not allowed" msgstr "циклическое наследование недопустимо" -#: commands/tablecmds.c:15021 commands/tablecmds.c:17879 +#: commands/tablecmds.c:15672 commands/tablecmds.c:18530 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" уже является потомком \"%s\"." -#: commands/tablecmds.c:15034 +#: commands/tablecmds.c:15685 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "" "триггер \"%s\" не позволяет таблице \"%s\" стать потомком в иерархии " "наследования" -#: commands/tablecmds.c:15036 +#: commands/tablecmds.c:15687 #, c-format msgid "" "ROW triggers with transition tables are not supported in inheritance " @@ -12459,34 +12990,34 @@ msgstr "" "Триггеры ROW с переходными таблицами не поддерживаются в иерархиях " "наследования." -#: commands/tablecmds.c:15239 +#: commands/tablecmds.c:15876 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "столбец \"%s\" в дочерней таблице должен быть помечен как NOT NULL" -#: commands/tablecmds.c:15248 +#: commands/tablecmds.c:15885 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "столбец \"%s\" в дочерней таблице должен быть генерируемым" -#: commands/tablecmds.c:15253 +#: commands/tablecmds.c:15889 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "столбец \"%s\" в дочерней таблице должен быть не генерируемым" -#: commands/tablecmds.c:15284 +#: commands/tablecmds.c:15927 #, c-format msgid "child table is missing column \"%s\"" msgstr "в дочерней таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:15372 +#: commands/tablecmds.c:16008 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "" "дочерняя таблица \"%s\" содержит другое определение ограничения-проверки " "\"%s\"" -#: commands/tablecmds.c:15380 +#: commands/tablecmds.c:16015 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on child table " @@ -12495,7 +13026,7 @@ msgstr "" "ограничение \"%s\" конфликтует с ненаследуемым ограничением дочерней таблицы " "\"%s\"" -#: commands/tablecmds.c:15391 +#: commands/tablecmds.c:16025 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" @@ -12503,82 +13034,82 @@ msgstr "" "ограничение \"%s\" конфликтует с непроверенным (NOT VALID) ограничением " "дочерней таблицы \"%s\"" -#: commands/tablecmds.c:15430 +#: commands/tablecmds.c:16063 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "в дочерней таблице не хватает ограничения \"%s\"" -#: commands/tablecmds.c:15516 +#: commands/tablecmds.c:16149 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "" "секция \"%s\" уже ожидает отсоединения от секционированной таблицы \"%s.%s\"" -#: commands/tablecmds.c:15545 commands/tablecmds.c:15593 +#: commands/tablecmds.c:16178 commands/tablecmds.c:16224 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "отношение \"%s\" не является секцией отношения \"%s\"" -#: commands/tablecmds.c:15599 +#: commands/tablecmds.c:16230 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "отношение \"%s\" не является предком отношения \"%s\"" -#: commands/tablecmds.c:15827 +#: commands/tablecmds.c:16457 #, c-format msgid "typed tables cannot inherit" msgstr "типизированные таблицы не могут наследоваться" -#: commands/tablecmds.c:15857 +#: commands/tablecmds.c:16487 #, c-format msgid "table is missing column \"%s\"" msgstr "в таблице не хватает столбца \"%s\"" -#: commands/tablecmds.c:15868 +#: commands/tablecmds.c:16498 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблица содержит столбец \"%s\", тогда как тип требует \"%s\"" -#: commands/tablecmds.c:15877 +#: commands/tablecmds.c:16507 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблица \"%s\" содержит столбец \"%s\" другого типа" -#: commands/tablecmds.c:15891 +#: commands/tablecmds.c:16521 #, c-format msgid "table has extra column \"%s\"" msgstr "таблица содержит лишний столбец \"%s\"" -#: commands/tablecmds.c:15943 +#: commands/tablecmds.c:16573 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - это не типизированная таблица" -#: commands/tablecmds.c:16117 +#: commands/tablecmds.c:16747 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать неуникальный индекс \"%s\"" -#: commands/tablecmds.c:16123 +#: commands/tablecmds.c:16753 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать не непосредственный индекс " "\"%s\"" -#: commands/tablecmds.c:16129 +#: commands/tablecmds.c:16759 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "" "для идентификации реплики нельзя использовать индекс с выражением \"%s\"" -#: commands/tablecmds.c:16135 +#: commands/tablecmds.c:16765 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для идентификации реплики нельзя использовать частичный индекс \"%s\"" -#: commands/tablecmds.c:16152 +#: commands/tablecmds.c:16782 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column %d is a " @@ -12587,7 +13118,7 @@ msgstr "" "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "%d - системный" -#: commands/tablecmds.c:16159 +#: commands/tablecmds.c:16789 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column \"%s\" is " @@ -12596,13 +13127,13 @@ msgstr "" "индекс \"%s\" нельзя использовать для идентификации реплики, так как столбец " "\"%s\" допускает NULL" -#: commands/tablecmds.c:16404 +#: commands/tablecmds.c:17041 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "" "изменить состояние журналирования таблицы %s нельзя, так как она временная" -#: commands/tablecmds.c:16428 +#: commands/tablecmds.c:17065 #, c-format msgid "" "cannot change table \"%s\" to unlogged because it is part of a publication" @@ -12610,12 +13141,12 @@ msgstr "" "таблицу \"%s\" нельзя сделать нежурналируемой, так как она включена в " "публикацию" -#: commands/tablecmds.c:16430 +#: commands/tablecmds.c:17067 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурналируемые отношения не поддерживают репликацию." -#: commands/tablecmds.c:16475 +#: commands/tablecmds.c:17112 #, c-format msgid "" "could not change table \"%s\" to logged because it references unlogged table " @@ -12624,7 +13155,7 @@ msgstr "" "не удалось сделать таблицу \"%s\" журналируемой, так как она ссылается на " "нежурналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16485 +#: commands/tablecmds.c:17122 #, c-format msgid "" "could not change table \"%s\" to unlogged because it references logged table " @@ -12633,97 +13164,91 @@ msgstr "" "не удалось сделать таблицу \"%s\" нежурналируемой, так как она ссылается на " "журналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16543 +#: commands/tablecmds.c:17180 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "переместить последовательность с владельцем в другую схему нельзя" -#: commands/tablecmds.c:16645 +#: commands/tablecmds.c:17288 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "отношение \"%s\" уже существует в схеме \"%s\"" -#: commands/tablecmds.c:17065 +#: commands/tablecmds.c:17713 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" - это не таблица и не материализованное представление" -#: commands/tablecmds.c:17215 +#: commands/tablecmds.c:17866 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - это не составной тип" -#: commands/tablecmds.c:17245 +#: commands/tablecmds.c:17896 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "сменить схему индекса \"%s\" нельзя" -#: commands/tablecmds.c:17247 commands/tablecmds.c:17261 +#: commands/tablecmds.c:17898 commands/tablecmds.c:17912 #, c-format msgid "Change the schema of the table instead." msgstr "Однако возможно сменить владельца таблицы." -#: commands/tablecmds.c:17251 +#: commands/tablecmds.c:17902 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "сменить схему составного типа \"%s\" нельзя" -#: commands/tablecmds.c:17259 +#: commands/tablecmds.c:17910 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "сменить схему TOAST-таблицы \"%s\" нельзя" -#: commands/tablecmds.c:17291 +#: commands/tablecmds.c:17942 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегия секционирования по списку не поддерживает несколько столбцов" -#: commands/tablecmds.c:17357 +#: commands/tablecmds.c:18008 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "столбец \"%s\", упомянутый в ключе секционирования, не существует" -#: commands/tablecmds.c:17365 +#: commands/tablecmds.c:18016 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системный столбец \"%s\" нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:17376 commands/tablecmds.c:17466 +#: commands/tablecmds.c:18027 commands/tablecmds.c:18117 #, c-format msgid "cannot use generated column in partition key" msgstr "генерируемый столбец нельзя использовать в ключе секционирования" -#: commands/tablecmds.c:17377 commands/tablecmds.c:17467 commands/trigger.c:663 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "Столбец \"%s\" является генерируемым." - -#: commands/tablecmds.c:17449 +#: commands/tablecmds.c:18100 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "" "выражения ключей секционирования не могут содержать ссылки на системный " "столбец" -#: commands/tablecmds.c:17496 +#: commands/tablecmds.c:18147 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "" "функции в выражении ключа секционирования должны быть помечены как IMMUTABLE" -#: commands/tablecmds.c:17505 +#: commands/tablecmds.c:18156 #, c-format msgid "cannot use constant expression as partition key" msgstr "" "в качестве ключа секционирования нельзя использовать константное выражение" -#: commands/tablecmds.c:17526 +#: commands/tablecmds.c:18177 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не удалось определить правило сортировки для выражения секционирования" -#: commands/tablecmds.c:17561 +#: commands/tablecmds.c:18212 #, c-format msgid "" "You must specify a hash operator class or define a default hash operator " @@ -12732,7 +13257,7 @@ msgstr "" "Вы должны указать класс операторов хеширования или определить класс " "операторов хеширования по умолчанию для этого типа данных." -#: commands/tablecmds.c:17567 +#: commands/tablecmds.c:18218 #, c-format msgid "" "You must specify a btree operator class or define a default btree operator " @@ -12741,27 +13266,27 @@ msgstr "" "Вы должны указать класс операторов B-дерева или определить класс операторов " "B-дерева по умолчанию для этого типа данных." -#: commands/tablecmds.c:17818 +#: commands/tablecmds.c:18469 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" уже является секцией" -#: commands/tablecmds.c:17824 +#: commands/tablecmds.c:18475 #, c-format msgid "cannot attach a typed table as partition" msgstr "подключить типизированную таблицу в качестве секции нельзя" -#: commands/tablecmds.c:17840 +#: commands/tablecmds.c:18491 #, c-format msgid "cannot attach inheritance child as partition" msgstr "подключить потомок в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:17854 +#: commands/tablecmds.c:18505 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "подключить родитель в иерархии наследования в качестве секции нельзя" -#: commands/tablecmds.c:17888 +#: commands/tablecmds.c:18539 #, c-format msgid "" "cannot attach a temporary relation as partition of permanent relation \"%s\"" @@ -12769,7 +13294,7 @@ msgstr "" "подключить временное отношение в качестве секции постоянного отношения " "\"%s\" нельзя" -#: commands/tablecmds.c:17896 +#: commands/tablecmds.c:18547 #, c-format msgid "" "cannot attach a permanent relation as partition of temporary relation \"%s\"" @@ -12777,92 +13302,102 @@ msgstr "" "подключить постоянное отношение в качестве секции временного отношения " "\"%s\" нельзя" -#: commands/tablecmds.c:17904 +#: commands/tablecmds.c:18555 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "подключить секцию к временному отношению в другом сеансе нельзя" -#: commands/tablecmds.c:17911 +#: commands/tablecmds.c:18562 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "" "подключить временное отношение из другого сеанса в качестве секции нельзя" -#: commands/tablecmds.c:17931 +#: commands/tablecmds.c:18582 +#, c-format +msgid "table \"%s\" being attached contains an identity column \"%s\"" +msgstr "присоединяемая таблица \"%s\" содержит столбец идентификации \"%s\"" + +#: commands/tablecmds.c:18584 +#, c-format +msgid "The new partition may not contain an identity column." +msgstr "Новая секция не может содержать столбец идентификации." + +#: commands/tablecmds.c:18592 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "" "таблица \"%s\" содержит столбец \"%s\", отсутствующий в родителе \"%s\"" -#: commands/tablecmds.c:17934 +#: commands/tablecmds.c:18595 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "" "Новая секция может содержать только столбцы, имеющиеся в родительской " "таблице." -#: commands/tablecmds.c:17946 +#: commands/tablecmds.c:18607 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "триггер \"%s\" не позволяет сделать таблицу \"%s\" секцией" -#: commands/tablecmds.c:17948 +#: commands/tablecmds.c:18609 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Триггеры ROW с переходными таблицами для секций не поддерживаются." -#: commands/tablecmds.c:18127 +#: commands/tablecmds.c:18785 #, c-format msgid "" "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "" "нельзя присоединить стороннюю таблицу \"%s\" в качестве секции таблицы \"%s\"" -#: commands/tablecmds.c:18130 +#: commands/tablecmds.c:18788 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секционированная таблица \"%s\" содержит уникальные индексы." -#: commands/tablecmds.c:18447 +#: commands/tablecmds.c:19110 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "" "секции нельзя отсоединять в режиме CONCURRENTLY, когда существует секция по " "умолчанию" -#: commands/tablecmds.c:18556 +#: commands/tablecmds.c:19219 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "секционированная таблица \"%s\" была параллельно удалена" -#: commands/tablecmds.c:18562 +#: commands/tablecmds.c:19225 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "секция \"%s\" была параллельно удалена" -#: commands/tablecmds.c:19077 commands/tablecmds.c:19097 -#: commands/tablecmds.c:19118 commands/tablecmds.c:19137 -#: commands/tablecmds.c:19179 +#: commands/tablecmds.c:19839 commands/tablecmds.c:19859 +#: commands/tablecmds.c:19880 commands/tablecmds.c:19899 +#: commands/tablecmds.c:19941 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "нельзя присоединить индекс \"%s\" в качестве секции индекса \"%s\"" -#: commands/tablecmds.c:19080 +#: commands/tablecmds.c:19842 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Индекс \"%s\" уже присоединён к другому индексу." -#: commands/tablecmds.c:19100 +#: commands/tablecmds.c:19862 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Индекс \"%s\" не является индексом какой-либо секции таблицы \"%s\"." -#: commands/tablecmds.c:19121 +#: commands/tablecmds.c:19883 #, c-format msgid "The index definitions do not match." msgstr "Определения индексов не совпадают." -#: commands/tablecmds.c:19140 +#: commands/tablecmds.c:19902 #, c-format msgid "" "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint " @@ -12871,172 +13406,172 @@ msgstr "" "Индекс \"%s\" принадлежит ограничению в таблице \"%s\", но для индекса " "\"%s\" ограничения нет." -#: commands/tablecmds.c:19182 +#: commands/tablecmds.c:19944 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "К секции \"%s\" уже присоединён другой индекс." -#: commands/tablecmds.c:19418 +#: commands/tablecmds.c:20180 #, c-format msgid "column data type %s does not support compression" msgstr "тим данных столбца %s не поддерживает сжатие" -#: commands/tablecmds.c:19425 +#: commands/tablecmds.c:20187 #, c-format msgid "invalid compression method \"%s\"" msgstr "неверный метод сжатия \"%s\"" -#: commands/tablecmds.c:19451 +#: commands/tablecmds.c:20213 #, c-format msgid "invalid storage type \"%s\"" msgstr "неверный тип хранилища \"%s\"" -#: commands/tablecmds.c:19461 +#: commands/tablecmds.c:20223 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип данных столбца %s совместим только с хранилищем PLAIN" -#: commands/tablespace.c:199 commands/tablespace.c:650 +#: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "\"%s\" существует, но это не каталог" -#: commands/tablespace.c:230 +#: commands/tablespace.c:224 #, c-format msgid "permission denied to create tablespace \"%s\"" -msgstr "нет прав на создание табличного пространства \"%s\"" +msgstr "нет прав для создания табличного пространства \"%s\"" -#: commands/tablespace.c:232 +#: commands/tablespace.c:226 #, c-format msgid "Must be superuser to create a tablespace." msgstr "Для создания табличного пространства нужно быть суперпользователем." -#: commands/tablespace.c:248 +#: commands/tablespace.c:242 #, c-format msgid "tablespace location cannot contain single quotes" msgstr "в пути к табличному пространству не должно быть одинарных кавычек" -#: commands/tablespace.c:261 +#: commands/tablespace.c:255 #, c-format msgid "tablespace location must be an absolute path" msgstr "путь к табличному пространству должен быть абсолютным" -#: commands/tablespace.c:273 +#: commands/tablespace.c:267 #, c-format msgid "tablespace location \"%s\" is too long" msgstr "путь к табличному пространству \"%s\" слишком длинный" -#: commands/tablespace.c:280 +#: commands/tablespace.c:274 #, c-format msgid "tablespace location should not be inside the data directory" msgstr "табличное пространство не должно располагаться внутри каталога данных" -#: commands/tablespace.c:289 commands/tablespace.c:976 +#: commands/tablespace.c:283 commands/tablespace.c:970 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "неприемлемое имя табличного пространства: \"%s\"" -#: commands/tablespace.c:291 commands/tablespace.c:977 +#: commands/tablespace.c:285 commands/tablespace.c:971 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Префикс \"pg_\" зарезервирован для системных табличных пространств." -#: commands/tablespace.c:310 commands/tablespace.c:998 +#: commands/tablespace.c:304 commands/tablespace.c:992 #, c-format msgid "tablespace \"%s\" already exists" msgstr "табличное пространство \"%s\" уже существует" -#: commands/tablespace.c:326 +#: commands/tablespace.c:320 #, c-format msgid "pg_tablespace OID value not set when in binary upgrade mode" msgstr "значение OID в pg_tablespace не задано в режиме двоичного обновления" -#: commands/tablespace.c:431 commands/tablespace.c:959 -#: commands/tablespace.c:1048 commands/tablespace.c:1117 -#: commands/tablespace.c:1263 commands/tablespace.c:1466 +#: commands/tablespace.c:425 commands/tablespace.c:953 +#: commands/tablespace.c:1042 commands/tablespace.c:1111 +#: commands/tablespace.c:1257 commands/tablespace.c:1460 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "табличное пространство \"%s\" не существует" -#: commands/tablespace.c:437 +#: commands/tablespace.c:431 #, c-format msgid "tablespace \"%s\" does not exist, skipping" msgstr "табличное пространство \"%s\" не существует, пропускается" -#: commands/tablespace.c:463 +#: commands/tablespace.c:457 #, c-format msgid "tablespace \"%s\" cannot be dropped because some objects depend on it" msgstr "" "табличное пространство \"%s\" нельзя удалить, так как есть зависящие от него " "объекты" -#: commands/tablespace.c:530 +#: commands/tablespace.c:524 #, c-format msgid "tablespace \"%s\" is not empty" msgstr "табличное пространство \"%s\" не пусто" -#: commands/tablespace.c:617 +#: commands/tablespace.c:611 #, c-format msgid "directory \"%s\" does not exist" msgstr "каталог \"%s\" не существует" -#: commands/tablespace.c:618 +#: commands/tablespace.c:612 #, c-format msgid "Create this directory for the tablespace before restarting the server." msgstr "" "Создайте этот каталог для табличного пространства до перезапуска сервера." -#: commands/tablespace.c:623 +#: commands/tablespace.c:617 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не удалось установить права для каталога \"%s\": %m" -#: commands/tablespace.c:655 +#: commands/tablespace.c:649 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "каталог \"%s\" уже используется как табличное пространство" -#: commands/tablespace.c:833 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:913 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "ошибка при удалении символической ссылки \"%s\": %m" -#: commands/tablespace.c:842 commands/tablespace.c:927 +#: commands/tablespace.c:836 commands/tablespace.c:921 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "\"%s\" - это не каталог или символическая ссылка" -#: commands/tablespace.c:1122 +#: commands/tablespace.c:1116 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Табличное пространство \"%s\" не существует." -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "удалить каталоги табличного пространства %u не удалось" -#: commands/tablespace.c:1570 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "При необходимости вы можете удалить их вручную." -#: commands/trigger.c:232 commands/trigger.c:243 +#: commands/trigger.c:225 commands/trigger.c:236 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" - это таблица" -#: commands/trigger.c:234 commands/trigger.c:245 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "У таблиц не может быть триггеров INSTEAD OF." -#: commands/trigger.c:266 +#: commands/trigger.c:259 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" - секционированная таблица" -#: commands/trigger.c:268 +#: commands/trigger.c:261 #, c-format msgid "" "ROW triggers with transition tables are not supported on partitioned tables." @@ -13044,88 +13579,88 @@ msgstr "" "Триггеры ROW с переходными таблицами не поддерживаются в секционированных " "таблицах." -#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451 +#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" - это представление" -#: commands/trigger.c:282 +#: commands/trigger.c:275 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "У представлений не может быть строковых триггеров BEFORE/AFTER." -#: commands/trigger.c:289 +#: commands/trigger.c:282 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "У представлений не может быть триггеров TRUNCATE." -#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444 +#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" - сторонняя таблица" -#: commands/trigger.c:299 +#: commands/trigger.c:292 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "У сторонних таблиц не может быть триггеров INSTEAD OF." -#: commands/trigger.c:311 +#: commands/trigger.c:304 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "У сторонних таблиц не может быть ограничивающих триггеров." -#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439 +#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "в отношении \"%s\" не может быть триггеров" -#: commands/trigger.c:387 +#: commands/trigger.c:380 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "триггеры TRUNCATE FOR EACH ROW не поддерживаются" -#: commands/trigger.c:395 +#: commands/trigger.c:388 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "триггеры INSTEAD OF должны иметь тип FOR EACH ROW" -#: commands/trigger.c:399 +#: commands/trigger.c:392 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "триггеры INSTEAD OF несовместимы с условиями WHEN" -#: commands/trigger.c:403 +#: commands/trigger.c:396 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "для триггеров INSTEAD OF нельзя задать список столбцов" -#: commands/trigger.c:432 +#: commands/trigger.c:425 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "" "указание переменной типа кортеж в предложении REFERENCING не поддерживается" -#: commands/trigger.c:433 +#: commands/trigger.c:426 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "Используйте OLD TABLE или NEW TABLE для именования переходных таблиц." -#: commands/trigger.c:446 +#: commands/trigger.c:439 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "Триггеры сторонних таблиц не могут использовать переходные таблицы." -#: commands/trigger.c:453 +#: commands/trigger.c:446 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "Триггеры представлений не могут использовать переходные таблицы." -#: commands/trigger.c:469 +#: commands/trigger.c:462 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "триггеры ROW с переходными таблицами для секций не поддерживаются" -#: commands/trigger.c:473 +#: commands/trigger.c:466 #, c-format msgid "" "ROW triggers with transition tables are not supported on inheritance children" @@ -13133,17 +13668,17 @@ msgstr "" "триггеры ROW с переходными таблицами для потомков в иерархии наследования не " "поддерживаются" -#: commands/trigger.c:479 +#: commands/trigger.c:472 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "имя переходной таблицы можно задать только для триггера AFTER" -#: commands/trigger.c:484 +#: commands/trigger.c:477 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "триггеры TRUNCATE с переходными таблицами не поддерживаются" -#: commands/trigger.c:501 +#: commands/trigger.c:494 #, c-format msgid "" "transition tables cannot be specified for triggers with more than one event" @@ -13151,127 +13686,127 @@ msgstr "" "переходные таблицы нельзя задать для триггеров, назначаемых для нескольких " "событий" -#: commands/trigger.c:512 +#: commands/trigger.c:505 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "переходные таблицы нельзя задать для триггеров со списками столбцов" -#: commands/trigger.c:529 +#: commands/trigger.c:522 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE можно задать только для триггеров INSERT или UPDATE" -#: commands/trigger.c:534 +#: commands/trigger.c:527 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE нельзя задать несколько раз" -#: commands/trigger.c:544 +#: commands/trigger.c:537 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE можно задать только для триггеров DELETE или UPDATE" -#: commands/trigger.c:549 +#: commands/trigger.c:542 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE нельзя задать несколько раз" -#: commands/trigger.c:559 +#: commands/trigger.c:552 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "имя OLD TABLE не должно совпадать с именем NEW TABLE" -#: commands/trigger.c:623 commands/trigger.c:636 +#: commands/trigger.c:616 commands/trigger.c:629 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "" "в условии WHEN для операторного триггера нельзя ссылаться на значения " "столбцов" -#: commands/trigger.c:628 +#: commands/trigger.c:621 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "в условии WHEN для триггера INSERT нельзя ссылаться на значения OLD" -#: commands/trigger.c:641 +#: commands/trigger.c:634 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "в условии WHEN для триггера DELETE нельзя ссылаться на значения NEW" -#: commands/trigger.c:646 +#: commands/trigger.c:639 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "" "в условии WHEN для триггера BEFORE нельзя ссылаться на системные столбцы NEW" -#: commands/trigger.c:654 commands/trigger.c:662 +#: commands/trigger.c:647 commands/trigger.c:655 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "" "в условии WHEN для триггера BEFORE нельзя ссылаться на генерируемые столбцы " "NEW" -#: commands/trigger.c:655 +#: commands/trigger.c:648 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "" "Используется ссылка на всю строку таблицы, а таблица содержит генерируемые " "столбцы." -#: commands/trigger.c:770 commands/trigger.c:1614 +#: commands/trigger.c:763 commands/trigger.c:1607 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "триггер \"%s\" для отношения \"%s\" уже существует" -#: commands/trigger.c:783 +#: commands/trigger.c:776 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "триггер \"%s\" для отношения \"%s\" является внутренним или дочерним" -#: commands/trigger.c:802 +#: commands/trigger.c:795 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr "" "триггер \"%s\" для отношения \"%s\" является триггером, реализующим " "ограничение" -#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 +#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "триггер \"%s\" для таблицы \"%s\" не существует" -#: commands/trigger.c:1529 +#: commands/trigger.c:1522 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "переименовать триггер \"%s\" в таблице \"%s\" нельзя" -#: commands/trigger.c:1531 +#: commands/trigger.c:1524 #, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "Однако можно переименовать триггер в секционированной таблице \"%s\"." -#: commands/trigger.c:1631 +#: commands/trigger.c:1624 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "триггер \"%s\" в отношении \"%s\" переименован" -#: commands/trigger.c:1777 +#: commands/trigger.c:1770 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "нет доступа: \"%s\" - это системный триггер" -#: commands/trigger.c:2386 +#: commands/trigger.c:2379 #, c-format msgid "trigger function %u returned null value" msgstr "триггерная функция %u вернула значение NULL" -#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 -#: commands/trigger.c:3270 +#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 +#: commands/trigger.c:3263 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "триггер BEFORE STATEMENT не может возвращать значение" -#: commands/trigger.c:2522 +#: commands/trigger.c:2515 #, c-format msgid "" "moving row to another partition during a BEFORE FOR EACH ROW trigger is not " @@ -13279,7 +13814,7 @@ msgid "" msgstr "" "в триггере BEFORE FOR EACH ROW нельзя перемещать строку в другую секцию" -#: commands/trigger.c:2523 +#: commands/trigger.c:2516 #, c-format msgid "" "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." @@ -13287,20 +13822,10 @@ msgstr "" "До выполнения триггера \"%s\" строка должна была находиться в секции \"%s." "%s\"." -#: commands/trigger.c:3347 executor/nodeModifyTable.c:2369 -#: executor/nodeModifyTable.c:2452 -#, c-format -msgid "" -"tuple to be updated was already modified by an operation triggered by the " -"current command" -msgstr "" -"кортеж, который должен быть изменён, уже модифицирован в операции, вызванной " -"текущей командой" - -#: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 -#: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 -#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:2990 -#: executor/nodeModifyTable.c:3117 +#: commands/trigger.c:3341 executor/nodeModifyTable.c:1541 +#: executor/nodeModifyTable.c:1615 executor/nodeModifyTable.c:2377 +#: executor/nodeModifyTable.c:2468 executor/nodeModifyTable.c:3132 +#: executor/nodeModifyTable.c:3302 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -13309,34 +13834,34 @@ msgstr "" "Возможно, для распространения изменений в другие строки следует использовать " "триггер AFTER вместо BEFORE." -#: commands/trigger.c:3389 executor/nodeLockRows.c:228 -#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1551 executor/nodeModifyTable.c:2387 -#: executor/nodeModifyTable.c:2595 +#: commands/trigger.c:3382 executor/nodeLockRows.c:228 +#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:314 +#: executor/nodeModifyTable.c:1557 executor/nodeModifyTable.c:2394 +#: executor/nodeModifyTable.c:2618 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не удалось сериализовать доступ из-за параллельного изменения" -#: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 -#: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 -#: executor/nodeModifyTable.c:3008 +#: commands/trigger.c:3390 executor/nodeModifyTable.c:1647 +#: executor/nodeModifyTable.c:2485 executor/nodeModifyTable.c:2642 +#: executor/nodeModifyTable.c:3150 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не удалось сериализовать доступ из-за параллельного удаления" -#: commands/trigger.c:4604 +#: commands/trigger.c:4599 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "" "в рамках операции с ограничениями по безопасности нельзя вызвать отложенный " "триггер" -#: commands/trigger.c:5787 +#: commands/trigger.c:5780 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "ограничение \"%s\" не является откладываемым" -#: commands/trigger.c:5810 +#: commands/trigger.c:5803 #, c-format msgid "constraint \"%s\" does not exist" msgstr "ограничение \"%s\" не существует" @@ -13437,12 +13962,12 @@ msgstr "сопоставление для типа фрагмента \"%s\" н msgid "invalid parameter list format: \"%s\"" msgstr "неверный формат списка параметров: \"%s\"" -#: commands/typecmds.c:217 +#: commands/typecmds.c:221 #, c-format msgid "must be superuser to create a base type" msgstr "для создания базового типа нужно быть суперпользователем" -#: commands/typecmds.c:275 +#: commands/typecmds.c:279 #, c-format msgid "" "Create the type as a shell type, then create its I/O functions, then do a " @@ -13451,42 +13976,42 @@ msgstr "" "Создайте тип в виде оболочки, затем определите для него функции ввода-вывода " "и в завершение выполните полноценную команду CREATE TYPE." -#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4263 +#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "атрибут типа \"%s\" не распознан" -#: commands/typecmds.c:382 +#: commands/typecmds.c:386 #, c-format msgid "invalid type category \"%s\": must be simple ASCII" msgstr "неверная категория типа \"%s\": допустим только ASCII-символ" -#: commands/typecmds.c:401 +#: commands/typecmds.c:405 #, c-format msgid "array element type cannot be %s" msgstr "типом элемента массива не может быть %s" -#: commands/typecmds.c:433 +#: commands/typecmds.c:437 #, c-format msgid "alignment \"%s\" not recognized" msgstr "тип выравнивания \"%s\" не распознан" -#: commands/typecmds.c:450 commands/typecmds.c:4137 +#: commands/typecmds.c:454 commands/typecmds.c:4354 #, c-format msgid "storage \"%s\" not recognized" msgstr "неизвестная стратегия хранения \"%s\"" -#: commands/typecmds.c:461 +#: commands/typecmds.c:465 #, c-format msgid "type input function must be specified" msgstr "необходимо указать функцию ввода типа" -#: commands/typecmds.c:465 +#: commands/typecmds.c:469 #, c-format msgid "type output function must be specified" msgstr "необходимо указать функцию вывода типа" -#: commands/typecmds.c:470 +#: commands/typecmds.c:474 #, c-format msgid "" "type modifier output function is useless without a type modifier input " @@ -13495,89 +14020,89 @@ msgstr "" "функция вывода модификатора типа бесполезна без функции ввода модификатора " "типа" -#: commands/typecmds.c:512 +#: commands/typecmds.c:516 #, c-format msgid "element type cannot be specified without a subscripting function" msgstr "" "тип элемента нельзя задать без указания обработчика обращения по индексу" -#: commands/typecmds.c:781 +#: commands/typecmds.c:785 #, c-format msgid "\"%s\" is not a valid base type for a domain" msgstr "\"%s\" - неподходящий базовый тип для домена" -#: commands/typecmds.c:879 +#: commands/typecmds.c:883 #, c-format msgid "multiple default expressions" msgstr "неоднократное определение значения типа по умолчанию" -#: commands/typecmds.c:942 commands/typecmds.c:951 +#: commands/typecmds.c:946 commands/typecmds.c:955 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "конфликтующие ограничения NULL/NOT NULL" -#: commands/typecmds.c:967 +#: commands/typecmds.c:971 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "" "ограничения-проверки для доменов не могут иметь характеристики NO INHERIT" -#: commands/typecmds.c:976 commands/typecmds.c:2956 +#: commands/typecmds.c:980 commands/typecmds.c:2940 #, c-format msgid "unique constraints not possible for domains" msgstr "ограничения уникальности невозможны для доменов" -#: commands/typecmds.c:982 commands/typecmds.c:2962 +#: commands/typecmds.c:986 commands/typecmds.c:2946 #, c-format msgid "primary key constraints not possible for domains" msgstr "ограничения первичного ключа невозможны для доменов" -#: commands/typecmds.c:988 commands/typecmds.c:2968 +#: commands/typecmds.c:992 commands/typecmds.c:2952 #, c-format msgid "exclusion constraints not possible for domains" msgstr "ограничения-исключения невозможны для доменов" -#: commands/typecmds.c:994 commands/typecmds.c:2974 +#: commands/typecmds.c:998 commands/typecmds.c:2958 #, c-format msgid "foreign key constraints not possible for domains" msgstr "ограничения внешних ключей невозможны для доменов" -#: commands/typecmds.c:1003 commands/typecmds.c:2983 +#: commands/typecmds.c:1007 commands/typecmds.c:2967 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "" "возможность определения отложенных ограничений для доменов не поддерживается" -#: commands/typecmds.c:1317 utils/cache/typcache.c:2567 +#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 #, c-format msgid "%s is not an enum" msgstr "\"%s\" не является перечислением" -#: commands/typecmds.c:1458 +#: commands/typecmds.c:1468 #, c-format msgid "type attribute \"subtype\" is required" msgstr "требуется атрибут типа \"subtype\"" -#: commands/typecmds.c:1463 +#: commands/typecmds.c:1473 #, c-format msgid "range subtype cannot be %s" msgstr "%s не может быть подтипом диапазона" -#: commands/typecmds.c:1482 +#: commands/typecmds.c:1492 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "" "указано правило сортировки для диапазона, но подтип не поддерживает " "сортировку" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1502 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "" "функцию получения канонического диапазона нельзя задать без предварительно " "созданного типа-пустышки" -#: commands/typecmds.c:1493 +#: commands/typecmds.c:1503 #, c-format msgid "" "Create the type as a shell type, then create its canonicalization function, " @@ -13586,96 +14111,96 @@ msgstr "" "Создайте тип в виде оболочки, затем определите для него функции приведения к " "каноническому виду и в завершение выполните полноценную команду CREATE TYPE." -#: commands/typecmds.c:1965 +#: commands/typecmds.c:1975 #, c-format msgid "type input function %s has multiple matches" msgstr "функция ввода типа %s присутствует в нескольких экземплярах" -#: commands/typecmds.c:1983 +#: commands/typecmds.c:1993 #, c-format msgid "type input function %s must return type %s" msgstr "функция ввода типа %s должна возвращать тип %s" -#: commands/typecmds.c:1999 +#: commands/typecmds.c:2009 #, c-format msgid "type input function %s should not be volatile" msgstr "функция ввода типа %s не должна быть изменчивой" -#: commands/typecmds.c:2027 +#: commands/typecmds.c:2037 #, c-format msgid "type output function %s must return type %s" msgstr "функция вывода типа %s должна возвращать тип %s" -#: commands/typecmds.c:2034 +#: commands/typecmds.c:2044 #, c-format msgid "type output function %s should not be volatile" msgstr "функция вывода типа %s не должна быть изменчивой" -#: commands/typecmds.c:2063 +#: commands/typecmds.c:2073 #, c-format msgid "type receive function %s has multiple matches" msgstr "функция получения типа %s присутствует в нескольких экземплярах" -#: commands/typecmds.c:2081 +#: commands/typecmds.c:2091 #, c-format msgid "type receive function %s must return type %s" msgstr "функция получения типа %s должна возвращать тип %s" -#: commands/typecmds.c:2088 +#: commands/typecmds.c:2098 #, c-format msgid "type receive function %s should not be volatile" msgstr "функция получения типа %s не должна быть изменчивой" -#: commands/typecmds.c:2116 +#: commands/typecmds.c:2126 #, c-format msgid "type send function %s must return type %s" msgstr "функция отправки типа %s должна возвращать тип %s" -#: commands/typecmds.c:2123 +#: commands/typecmds.c:2133 #, c-format msgid "type send function %s should not be volatile" msgstr "функция отправки типа %s не должна быть изменчивой" -#: commands/typecmds.c:2150 +#: commands/typecmds.c:2160 #, c-format msgid "typmod_in function %s must return type %s" msgstr "функция TYPMOD_IN %s должна возвращать тип %s" -#: commands/typecmds.c:2157 +#: commands/typecmds.c:2167 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "функция ввода модификатора типа %s не должна быть изменчивой" -#: commands/typecmds.c:2184 +#: commands/typecmds.c:2194 #, c-format msgid "typmod_out function %s must return type %s" msgstr "функция TYPMOD_OUT %s должна возвращать тип %s" -#: commands/typecmds.c:2191 +#: commands/typecmds.c:2201 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "функция вывода модификатора типа %s не должна быть изменчивой" -#: commands/typecmds.c:2218 +#: commands/typecmds.c:2228 #, c-format msgid "type analyze function %s must return type %s" msgstr "функция анализа типа %s должна возвращать тип %s" -#: commands/typecmds.c:2247 +#: commands/typecmds.c:2257 #, c-format msgid "type subscripting function %s must return type %s" msgstr "" "функция %s, реализующая для типа обращение по индексу, должна возвращать тип " "%s" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2267 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "" "для пользовательских типов нельзя использовать функцию-обработчик обращения " "по индексу %s" -#: commands/typecmds.c:2303 +#: commands/typecmds.c:2313 #, c-format msgid "" "You must specify an operator class for the range type or define a default " @@ -13684,207 +14209,218 @@ msgstr "" "Вы должны указать класс операторов для типа диапазона или определить класс " "операторов по умолчанию для этого подтипа." -#: commands/typecmds.c:2334 +#: commands/typecmds.c:2344 #, c-format msgid "range canonical function %s must return range type" msgstr "" "функция получения канонического диапазона %s должна возвращать диапазон" -#: commands/typecmds.c:2340 +#: commands/typecmds.c:2350 #, c-format msgid "range canonical function %s must be immutable" msgstr "" "функция получения канонического диапазона %s должна быть постоянной " "(IMMUTABLE)" -#: commands/typecmds.c:2376 +#: commands/typecmds.c:2386 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "функция различий для подтипа диапазона (%s) должна возвращать тип %s" -#: commands/typecmds.c:2383 +#: commands/typecmds.c:2393 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "" "функция различий для подтипа диапазона (%s) должна быть постоянной " "(IMMUTABLE)" -#: commands/typecmds.c:2410 +#: commands/typecmds.c:2420 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "значение OID массива в pg_type не задано в режиме двоичного обновления" -#: commands/typecmds.c:2443 +#: commands/typecmds.c:2453 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "" "значение OID мультидиапазона в pg_type не задано в режиме двоичного " "обновления" -#: commands/typecmds.c:2476 +#: commands/typecmds.c:2486 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "" "значение OID массива мультидиапазонов в pg_type не задано в режиме двоичного " "обновления" -#: commands/typecmds.c:2772 -#, c-format -msgid "column \"%s\" of table \"%s\" contains null values" -msgstr "столбец \"%s\" таблицы \"%s\" содержит значения NULL" - -#: commands/typecmds.c:2885 commands/typecmds.c:3086 +#: commands/typecmds.c:2868 commands/typecmds.c:3093 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "ограничение \"%s\" для домена \"%s\" не существует" -#: commands/typecmds.c:2889 +#: commands/typecmds.c:2872 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" для домена \"%s\" не существует, пропускается" -#: commands/typecmds.c:3093 +#: commands/typecmds.c:3100 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "" "ограничение \"%s\" для домена \"%s\" не является ограничением-проверкой" -#: commands/typecmds.c:3194 +#: commands/typecmds.c:3180 +#, c-format +msgid "column \"%s\" of table \"%s\" contains null values" +msgstr "столбец \"%s\" таблицы \"%s\" содержит значения NULL" + +#: commands/typecmds.c:3269 #, c-format msgid "" "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "" "столбец \"%s\" таблицы \"%s\" содержит значения, нарушающие новое ограничение" -#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3705 -#: commands/typecmds.c:3893 +#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 +#: commands/typecmds.c:4073 #, c-format msgid "%s is not a domain" msgstr "\"%s\" - это не домен" -#: commands/typecmds.c:3455 +#: commands/typecmds.c:3532 commands/typecmds.c:3686 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "ограничение \"%s\" для домена \"%s\" уже существует" -#: commands/typecmds.c:3506 +#: commands/typecmds.c:3583 #, c-format msgid "cannot use table references in domain check constraint" msgstr "в ограничении-проверке для домена нельзя ссылаться на таблицы" -#: commands/typecmds.c:3634 commands/typecmds.c:3717 commands/typecmds.c:4010 +#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 #, c-format msgid "%s is a table's row type" msgstr "%s - это тип строк таблицы" -#: commands/typecmds.c:3644 commands/typecmds.c:3727 commands/typecmds.c:3925 +#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 #, c-format msgid "cannot alter array type %s" msgstr "изменить тип массива \"%s\" нельзя" -#: commands/typecmds.c:3646 commands/typecmds.c:3729 commands/typecmds.c:3927 +#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Однако можно изменить тип %s, что повлечёт изменение типа массива." -#: commands/typecmds.c:3995 +#: commands/typecmds.c:3892 +#, c-format +msgid "cannot alter multirange type %s" +msgstr "изменить мультидиапазонный тип %s нельзя" + +#: commands/typecmds.c:3895 +#, c-format +msgid "You can alter type %s, which will alter the multirange type as well." +msgstr "" +"Однако можно изменить тип %s, что повлечёт изменение мультидиапазонного типа." + +#: commands/typecmds.c:4202 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "тип \"%s\" уже существует в схеме \"%s\"" -#: commands/typecmds.c:4165 +#: commands/typecmds.c:4382 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "сменить вариант хранения типа на PLAIN нельзя" -#: commands/typecmds.c:4258 +#: commands/typecmds.c:4475 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "у типа нельзя изменить атрибут \"%s\"" -#: commands/typecmds.c:4276 +#: commands/typecmds.c:4493 #, c-format msgid "must be superuser to alter a type" msgstr "для модификации типа нужно быть суперпользователем" -#: commands/typecmds.c:4297 commands/typecmds.c:4306 +#: commands/typecmds.c:4514 commands/typecmds.c:4523 #, c-format msgid "%s is not a base type" msgstr "%s — не базовый тип" -#: commands/user.c:201 +#: commands/user.c:200 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID уже не нужно указывать" -#: commands/user.c:319 commands/user.c:325 commands/user.c:331 -#: commands/user.c:337 commands/user.c:343 +#: commands/user.c:318 commands/user.c:324 commands/user.c:330 +#: commands/user.c:336 commands/user.c:342 #, c-format msgid "permission denied to create role" msgstr "нет прав для создания роли" -#: commands/user.c:320 +#: commands/user.c:319 #, c-format msgid "Only roles with the %s attribute may create roles." msgstr "Создавать роли могут только роли с атрибутом %s." -#: commands/user.c:326 commands/user.c:332 commands/user.c:338 -#: commands/user.c:344 +#: commands/user.c:325 commands/user.c:331 commands/user.c:337 +#: commands/user.c:343 #, c-format msgid "" "Only roles with the %s attribute may create roles with the %s attribute." msgstr "Создавать роли с атрибутом %s могут только роли с атрибутом %s." -#: commands/user.c:355 commands/user.c:1387 commands/user.c:1394 -#: utils/adt/acl.c:5401 utils/adt/acl.c:5407 gram.y:16726 gram.y:16772 +#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 +#: utils/adt/acl.c:5574 utils/adt/acl.c:5580 gram.y:17310 gram.y:17356 #, c-format msgid "role name \"%s\" is reserved" msgstr "имя роли \"%s\" зарезервировано" -#: commands/user.c:357 commands/user.c:1389 commands/user.c:1396 +#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Имена ролей, начинающиеся с \"pg_\", зарезервированы." -#: commands/user.c:378 commands/user.c:1411 +#: commands/user.c:377 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "роль \"%s\" уже существует" -#: commands/user.c:440 commands/user.c:925 +#: commands/user.c:439 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "пустая строка не является допустимым паролем; пароль сбрасывается" -#: commands/user.c:469 +#: commands/user.c:468 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "значение OID в pg_authid не задано в режиме двоичного обновления" -#: commands/user.c:653 commands/user.c:1011 +#: commands/user.c:652 commands/user.c:1010 msgid "Cannot alter reserved roles." msgstr "Изменять зарезервированные роли нельзя." -#: commands/user.c:760 commands/user.c:766 commands/user.c:782 -#: commands/user.c:790 commands/user.c:804 commands/user.c:810 -#: commands/user.c:816 commands/user.c:825 commands/user.c:870 -#: commands/user.c:1033 commands/user.c:1044 +#: commands/user.c:759 commands/user.c:765 commands/user.c:781 +#: commands/user.c:789 commands/user.c:803 commands/user.c:809 +#: commands/user.c:815 commands/user.c:824 commands/user.c:869 +#: commands/user.c:1032 commands/user.c:1043 #, c-format msgid "permission denied to alter role" msgstr "нет прав для изменения роли" -#: commands/user.c:761 commands/user.c:1034 +#: commands/user.c:760 commands/user.c:1033 #, c-format msgid "Only roles with the %s attribute may alter roles with the %s attribute." msgstr "Изменять роли с атрибутом %s могут только роли с атрибутом %s." -#: commands/user.c:767 commands/user.c:805 commands/user.c:811 -#: commands/user.c:817 +#: commands/user.c:766 commands/user.c:804 commands/user.c:810 +#: commands/user.c:816 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." msgstr "Изменять атрибут %s могут только роли с атрибутом %s." -#: commands/user.c:783 commands/user.c:1045 +#: commands/user.c:782 commands/user.c:1044 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may alter " @@ -13893,7 +14429,7 @@ msgstr "" "Изменять эту роль могут только роли с атрибутом %s и привилегией %s для роли " "\"%s\"." -#: commands/user.c:791 +#: commands/user.c:790 #, c-format msgid "" "To change another role's password, the current user must have the %s " @@ -13902,32 +14438,34 @@ msgstr "" "Чтобы сменить пароль другой роли, текущий пользователь должен иметь атрибут " "%s и привилегию %s для этой роли." -#: commands/user.c:826 +#: commands/user.c:825 #, c-format -msgid "Only roles with the %s option on role \"%s\" may add members." -msgstr "Добавлять членов могут только роли с привилегией %s для роли \"%s\"." +msgid "Only roles with the %s option on role \"%s\" may add or drop members." +msgstr "" +"Добавлять или удалять членов могут только роли с привилегией %s для роли " +"\"%s\"." -#: commands/user.c:871 +#: commands/user.c:870 #, c-format -msgid "The bootstrap user must have the %s attribute." -msgstr "Стартовый пользователь должен иметь атрибут %s." +msgid "The bootstrap superuser must have the %s attribute." +msgstr "Стартовый суперпользователь должен иметь атрибут %s." -#: commands/user.c:1076 +#: commands/user.c:1075 #, c-format msgid "permission denied to alter setting" msgstr "нет прав для изменения параметров" -#: commands/user.c:1077 +#: commands/user.c:1076 #, c-format msgid "Only roles with the %s attribute may alter settings globally." msgstr "Изменять параметры глобально могут только роли с атрибутом %s." -#: commands/user.c:1101 commands/user.c:1172 commands/user.c:1178 +#: commands/user.c:1100 commands/user.c:1171 commands/user.c:1177 #, c-format msgid "permission denied to drop role" msgstr "нет прав для удаления роли" -#: commands/user.c:1102 +#: commands/user.c:1101 #, c-format msgid "" "Only roles with the %s attribute and the %s option on the target roles may " @@ -13936,41 +14474,41 @@ msgstr "" "Удалять роли могут только роли с атрибутом %s и с привилегией %s для целевых " "ролей." -#: commands/user.c:1126 +#: commands/user.c:1125 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "использовать специальную роль в DROP ROLE нельзя" -#: commands/user.c:1136 commands/user.c:1358 commands/variable.c:836 -#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 -#: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 -#: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 -#: utils/adt/regproc.c:1551 utils/init/miscinit.c:756 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:851 +#: commands/variable.c:854 commands/variable.c:971 commands/variable.c:974 +#: utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5429 +#: utils/adt/acl.c:5477 utils/adt/acl.c:5505 utils/adt/acl.c:5524 +#: utils/adt/regproc.c:1571 utils/init/miscinit.c:799 #, c-format msgid "role \"%s\" does not exist" msgstr "роль \"%s\" не существует" -#: commands/user.c:1141 +#: commands/user.c:1140 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "роль \"%s\" не существует, пропускается" -#: commands/user.c:1154 commands/user.c:1158 +#: commands/user.c:1153 commands/user.c:1157 #, c-format msgid "current user cannot be dropped" msgstr "пользователь не может удалить сам себя" -#: commands/user.c:1162 +#: commands/user.c:1161 #, c-format msgid "session user cannot be dropped" msgstr "пользователя текущего сеанса нельзя удалить" -#: commands/user.c:1173 +#: commands/user.c:1172 #, c-format msgid "Only roles with the %s attribute may drop roles with the %s attribute." msgstr "Только роли с атрибутом %s могут удалять роли с атрибутом %s." -#: commands/user.c:1179 +#: commands/user.c:1178 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may drop " @@ -13979,33 +14517,33 @@ msgstr "" "Эту роль могут удалить только роли с атрибутом %s и привилегией %s для роли " "\"%s\"." -#: commands/user.c:1300 +#: commands/user.c:1299 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "роль \"%s\" нельзя удалить, так как есть зависящие от неё объекты" -#: commands/user.c:1374 +#: commands/user.c:1373 #, c-format msgid "session user cannot be renamed" msgstr "пользователя текущего сеанса нельзя переименовать" -#: commands/user.c:1378 +#: commands/user.c:1377 #, c-format msgid "current user cannot be renamed" msgstr "пользователь не может переименовать сам себя" -#: commands/user.c:1422 commands/user.c:1432 +#: commands/user.c:1421 commands/user.c:1431 #, c-format msgid "permission denied to rename role" -msgstr "нет прав на переименование роли" +msgstr "нет прав для переименования роли" -#: commands/user.c:1423 +#: commands/user.c:1422 #, c-format msgid "" "Only roles with the %s attribute may rename roles with the %s attribute." msgstr "Только роли с атрибутом %s могут переименовывать роли с атрибутом %s." -#: commands/user.c:1433 +#: commands/user.c:1432 #, c-format msgid "" "Only roles with the %s attribute and the %s option on role \"%s\" may rename " @@ -14014,43 +14552,43 @@ msgstr "" "Переименовать эту роль могут только роли с атрибутом %s и привилегией %s для " "роли \"%s\"." -#: commands/user.c:1455 +#: commands/user.c:1454 #, c-format msgid "MD5 password cleared because of role rename" msgstr "в результате переименования роли очищен MD5-хеш пароля" -#: commands/user.c:1519 gram.y:1260 +#: commands/user.c:1518 gram.y:1294 #, c-format msgid "unrecognized role option \"%s\"" msgstr "нераспознанный параметр роли \"%s\"" -#: commands/user.c:1524 +#: commands/user.c:1523 #, c-format msgid "unrecognized value for role option \"%s\": \"%s\"" msgstr "нераспознанное значение для параметра роли \"%s\": \"%s\"" -#: commands/user.c:1557 +#: commands/user.c:1556 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "в GRANT/REVOKE ROLE нельзя включать названия столбцов" -#: commands/user.c:1597 +#: commands/user.c:1596 #, c-format msgid "permission denied to drop objects" -msgstr "нет прав на удаление объектов" +msgstr "нет прав для удаления объектов" -#: commands/user.c:1598 +#: commands/user.c:1597 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." msgstr "" "Только роли с правами роли \"%s\" могут удалять принадлежащие ей объекты." -#: commands/user.c:1626 commands/user.c:1637 +#: commands/user.c:1625 commands/user.c:1636 #, c-format msgid "permission denied to reassign objects" msgstr "нет прав для переназначения объектов" -#: commands/user.c:1627 +#: commands/user.c:1626 #, c-format msgid "" "Only roles with privileges of role \"%s\" may reassign objects owned by it." @@ -14058,102 +14596,102 @@ msgstr "" "Только роли с правами роли \"%s\" могут поменять владельца принадлежащих ей " "объектов." -#: commands/user.c:1638 +#: commands/user.c:1637 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "" "Только роли с правами роли \"%s\" могут назначать её владельцем объектов." -#: commands/user.c:1734 +#: commands/user.c:1733 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "роль \"%s\" не может быть членом другой роли" -#: commands/user.c:1747 +#: commands/user.c:1746 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "роль \"%s\" включена в роль \"%s\"" -#: commands/user.c:1787 commands/user.c:1813 +#: commands/user.c:1786 commands/user.c:1812 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "привилегию %s нельзя вернуть тому, кто назначил её вам" -#: commands/user.c:1890 +#: commands/user.c:1889 #, c-format msgid "" "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "роль \"%s\" уже назначена членом роли \"%s\" ролью \"%s\"" -#: commands/user.c:2025 +#: commands/user.c:2024 #, c-format msgid "" "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "роль \"%s\" не была назначена членом роли \"%s\" ролью \"%s\"" -#: commands/user.c:2125 +#: commands/user.c:2124 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "роль \"%s\" не может содержать явных членов" -#: commands/user.c:2136 commands/user.c:2159 +#: commands/user.c:2135 commands/user.c:2158 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "нет прав для назначения членства в роли \"%s\"" -#: commands/user.c:2138 +#: commands/user.c:2137 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "" "Только роли с атрибутом %s могут назначать членов в ролях с атрибутов %s." -#: commands/user.c:2143 commands/user.c:2166 +#: commands/user.c:2142 commands/user.c:2165 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "нет прав для лишения членства в роли \"%s\"" -#: commands/user.c:2145 +#: commands/user.c:2144 #, c-format msgid "" "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "" "Только роли с атрибутом %s могут лишать членства в ролях с атрибутом %s." -#: commands/user.c:2161 +#: commands/user.c:2160 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "" "Только роли с привилегией %s для роли \"%s\" могут назначать членов в ней." -#: commands/user.c:2168 +#: commands/user.c:2167 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "" "Только роли с привилегией %s для роли \"%s\" могут лишать членства в ней." -#: commands/user.c:2248 commands/user.c:2257 +#: commands/user.c:2247 commands/user.c:2256 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "нет полномочий для назначения прав доступа роли \"%s\"" -#: commands/user.c:2250 +#: commands/user.c:2249 #, c-format msgid "" "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "" "Только роли с правами роли \"%s\" могут назначать права от имени этой роли." -#: commands/user.c:2259 +#: commands/user.c:2258 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "Праводатель должен иметь привилегию %s для роли \"%s\"." -#: commands/user.c:2267 +#: commands/user.c:2266 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "нет полномочий для отзыва прав доступа, назначенных ролью \"%s\"" -#: commands/user.c:2269 +#: commands/user.c:2268 #, c-format msgid "" "Only roles with privileges of role \"%s\" may revoke privileges granted by " @@ -14161,17 +14699,17 @@ msgid "" msgstr "" "Только роли с правами роли \"%s\" могут отзывать права от имени этой роли." -#: commands/user.c:2492 utils/adt/acl.c:1309 +#: commands/user.c:2491 utils/adt/acl.c:1324 #, c-format msgid "dependent privileges exist" msgstr "существуют зависимые права" -#: commands/user.c:2493 utils/adt/acl.c:1310 +#: commands/user.c:2492 utils/adt/acl.c:1325 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Используйте CASCADE, чтобы отозвать и их." -#: commands/vacuum.c:137 +#: commands/vacuum.c:134 #, c-format msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" msgstr "" @@ -14246,42 +14784,42 @@ msgstr "ONLY_DATABASE_STATS нельзя задавать с другими па msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s нельзя выполнить в ходе VACUUM или ANALYZE" -#: commands/vacuum.c:733 +#: commands/vacuum.c:730 #, c-format msgid "permission denied to vacuum \"%s\", skipping it" msgstr "нет доступа для очистки отношения \"%s\", оно пропускается" -#: commands/vacuum.c:746 +#: commands/vacuum.c:743 #, c-format msgid "permission denied to analyze \"%s\", skipping it" msgstr "нет доступа для анализа отношения \"%s\", оно пропускается" -#: commands/vacuum.c:824 commands/vacuum.c:921 +#: commands/vacuum.c:821 commands/vacuum.c:918 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "очистка \"%s\" пропускается --- блокировка недоступна" -#: commands/vacuum.c:829 +#: commands/vacuum.c:826 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "очистка \"%s\" пропускается --- это отношение более не существует" -#: commands/vacuum.c:845 commands/vacuum.c:926 +#: commands/vacuum.c:842 commands/vacuum.c:923 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "анализ \"%s\" пропускается --- блокировка недоступна" -#: commands/vacuum.c:850 +#: commands/vacuum.c:847 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "анализ \"%s\" пропускается --- это отношение более не существует" -#: commands/vacuum.c:1161 +#: commands/vacuum.c:1139 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" msgstr "момент отсечки для удаления и замораживания кортежей далеко в прошлом" -#: commands/vacuum.c:1162 commands/vacuum.c:1167 +#: commands/vacuum.c:1140 commands/vacuum.c:1145 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -14293,42 +14831,42 @@ msgstr "" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: commands/vacuum.c:1166 +#: commands/vacuum.c:1144 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "момент отсечки для замораживания мультитранзакций далеко в прошлом" -#: commands/vacuum.c:1912 +#: commands/vacuum.c:1900 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "" "есть базы данных, которые не очищались на протяжении более чем 2 миллиардов " "транзакций" -#: commands/vacuum.c:1913 +#: commands/vacuum.c:1901 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "" "Возможно, вы уже потеряли данные в результате зацикливания ID транзакций." -#: commands/vacuum.c:2082 +#: commands/vacuum.c:2080 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" "\"%s\" пропускается --- очищать не таблицы или специальные системные таблицы " "нельзя" -#: commands/vacuum.c:2507 +#: commands/vacuum.c:2512 #, c-format -msgid "scanned index \"%s\" to remove %d row versions" -msgstr "просканирован индекс \"%s\", удалено версий строк: %d" +msgid "scanned index \"%s\" to remove %lld row versions" +msgstr "просканирован индекс \"%s\", удалено версий строк: %lld" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2531 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "индекс \"%s\" теперь содержит версий строк: %.0f, в страницах: %u" -#: commands/vacuum.c:2530 +#: commands/vacuum.c:2535 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -14340,7 +14878,7 @@ msgstr "" "На данный момент удалено страниц индекса: %u, из них свободны для " "использования: %u." -#: commands/vacuumparallel.c:677 +#: commands/vacuumparallel.c:707 #, c-format msgid "launched %d parallel vacuum worker for index vacuuming (planned: %d)" msgid_plural "" @@ -14355,7 +14893,7 @@ msgstr[2] "" "запущено %d параллельных процессов очистки для очистки индекса " "(планировалось: %d)" -#: commands/vacuumparallel.c:683 +#: commands/vacuumparallel.c:713 #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "" @@ -14432,7 +14970,7 @@ msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "" "команда SET TRANSACTION ISOLATION LEVEL не должна вызываться в подтранзакции" -#: commands/variable.c:606 storage/lmgr/predicate.c:1629 +#: commands/variable.c:606 storage/lmgr/predicate.c:1685 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "использовать сериализуемый режим в горячем резерве нельзя" @@ -14467,65 +15005,76 @@ msgstr "Изменить клиентскую кодировку сейчас н #: commands/variable.c:781 #, c-format -msgid "cannot change client_encoding during a parallel operation" -msgstr "изменить клиентскую кодировку во время параллельной операции нельзя" +msgid "cannot change \"client_encoding\" during a parallel operation" +msgstr "" +"изменить параметр \"client_encoding\" во время параллельной операции нельзя" + +#: commands/variable.c:876 +#, c-format +msgid "permission will be denied to set session authorization \"%s\"" +msgstr "в доступе для смены объекта авторизации \"%s\" будет отказано" + +#: commands/variable.c:881 +#, c-format +msgid "permission denied to set session authorization \"%s\"" +msgstr "нет доступа для смены объекта авторизации в сеансе \"%s\"" -#: commands/variable.c:948 +#: commands/variable.c:991 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "нет прав установить роль \"%s\"" -#: commands/variable.c:953 +#: commands/variable.c:996 #, c-format msgid "permission denied to set role \"%s\"" msgstr "нет прав установить роль \"%s\"" -#: commands/variable.c:1153 +#: commands/variable.c:1200 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не поддерживается в данной сборке" -#: commands/variable.c:1181 +#: commands/variable.c:1228 #, c-format msgid "" -"effective_io_concurrency must be set to 0 on platforms that lack " +"\"effective_io_concurrency\" must be set to 0 on platforms that lack " "posix_fadvise()." msgstr "" -"Значение effective_io_concurrency должно равняться 0 на платформах, где " -"отсутствует lack posix_fadvise()." +"Значение \"effective_io_concurrency\" должно равняться 0 на платформах, где " +"отсутствует posix_fadvise()." -#: commands/variable.c:1194 +#: commands/variable.c:1241 #, c-format msgid "" -"maintenance_io_concurrency must be set to 0 on platforms that lack " +"\"maintenance_io_concurrency\" must be set to 0 on platforms that lack " "posix_fadvise()." msgstr "" -"Значение maintenance_io_concurrency должно равняться 0 на платформах, где " -"отсутствует lack posix_fadvise()." +"Значение \"maintenance_io_concurrency\" должно равняться 0 на платформах, " +"где отсутствует posix_fadvise()." -#: commands/variable.c:1207 +#: commands/variable.c:1254 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не поддерживается в данной сборке" -#: commands/view.c:84 +#: commands/view.c:79 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "" "не удалось определить правило сортировки для столбца представления \"%s\"" -#: commands/view.c:279 commands/view.c:290 +#: commands/view.c:274 commands/view.c:285 #, c-format msgid "cannot drop columns from view" msgstr "удалять столбцы из представления нельзя" -#: commands/view.c:295 +#: commands/view.c:290 #, c-format msgid "cannot change name of view column \"%s\" to \"%s\"" msgstr "изменить имя столбца \"%s\" на \"%s\" в представлении нельзя" # skip-rule: space-before-ellipsis -#: commands/view.c:298 +#: commands/view.c:293 #, c-format msgid "" "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead." @@ -14533,40 +15082,40 @@ msgstr "" "Чтобы изменить имя столбца представления, выполните ALTER VIEW ... RENAME " "COLUMN ..." -#: commands/view.c:309 +#: commands/view.c:304 #, c-format msgid "cannot change data type of view column \"%s\" from %s to %s" msgstr "изменить тип столбца представления \"%s\" с %s на %s нельзя" -#: commands/view.c:323 +#: commands/view.c:318 #, c-format msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\"" msgstr "" "изменить правило сортировки для столбца представления \"%s\" с \"%s\" на " "\"%s\" нельзя" -#: commands/view.c:392 +#: commands/view.c:387 #, c-format msgid "views must not contain SELECT INTO" msgstr "представления не должны содержать SELECT INTO" -#: commands/view.c:404 +#: commands/view.c:399 #, c-format msgid "views must not contain data-modifying statements in WITH" msgstr "представления не должны содержать операторы, изменяющие данные в WITH" -#: commands/view.c:474 +#: commands/view.c:469 #, c-format msgid "CREATE VIEW specifies more column names than columns" msgstr "в CREATE VIEW указано больше имён столбцов, чем самих столбцов" -#: commands/view.c:482 +#: commands/view.c:477 #, c-format msgid "views cannot be unlogged because they do not have storage" msgstr "" "представления не могут быть нежурналируемыми, так как они нигде не хранятся" -#: commands/view.c:496 +#: commands/view.c:491 #, c-format msgid "view \"%s\" will be a temporary view" msgstr "представление \"%s\" будет создано как временное" @@ -14604,7 +15153,7 @@ msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "" "для курсора \"%s\" не выполняется обновляемое сканирование таблицы \"%s\"" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2498 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2555 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" @@ -14612,56 +15161,56 @@ msgstr "" "тип параметра %d (%s) не соответствует тому, с которым подготавливался план " "(%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2510 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2567 #, c-format msgid "no value found for parameter %d" msgstr "не найдено значение параметра %d" -#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 -#: executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 -#: executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 -#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 -#: executor/nodeModifyTable.c:233 +#: executor/execExpr.c:642 executor/execExpr.c:649 executor/execExpr.c:655 +#: executor/execExprInterp.c:4852 executor/execExprInterp.c:4869 +#: executor/execExprInterp.c:4968 executor/nodeModifyTable.c:203 +#: executor/nodeModifyTable.c:214 executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:239 #, c-format msgid "table row type and query-specified row type do not match" msgstr "тип строки таблицы отличается от типа строки-результата запроса" -#: executor/execExpr.c:638 executor/nodeModifyTable.c:198 +#: executor/execExpr.c:643 executor/nodeModifyTable.c:204 #, c-format msgid "Query has too many columns." msgstr "Запрос возвращает больше столбцов." -#: executor/execExpr.c:645 executor/nodeModifyTable.c:226 +#: executor/execExpr.c:650 executor/nodeModifyTable.c:232 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "" "Запрос выдаёт значение для удалённого столбца (с порядковым номером %d)." -#: executor/execExpr.c:651 executor/execExprInterp.c:4252 -#: executor/nodeModifyTable.c:209 +#: executor/execExpr.c:656 executor/execExprInterp.c:4870 +#: executor/nodeModifyTable.c:215 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "" "В таблице определён тип %s (номер столбца: %d), а в запросе предполагается " "%s." -#: executor/execExpr.c:1099 parser/parse_agg.c:838 +#: executor/execExpr.c:1104 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "вложенные вызовы оконных функций недопустимы" -#: executor/execExpr.c:1618 +#: executor/execExpr.c:1649 #, c-format msgid "target type is not an array" msgstr "целевой тип не является массивом" -#: executor/execExpr.c:1958 +#: executor/execExpr.c:1989 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "столбец ROW() имеет тип %s, а должен - %s" -#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1032 +#: executor/execExpr.c:2653 executor/execSRF.c:718 parser/parse_func.c:138 +#: parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" @@ -14669,60 +15218,60 @@ msgstr[0] "функции нельзя передать больше %d аргу msgstr[1] "функции нельзя передать больше %d аргументов" msgstr[2] "функции нельзя передать больше %d аргументов" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1067 -#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2680 executor/execSRF.c:738 executor/functions.c:1068 +#: utils/adt/jsonfuncs.c:4054 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "функция, возвращающая множество, вызвана в контексте, где ему нет места" -#: executor/execExpr.c:3007 parser/parse_node.c:277 parser/parse_node.c:327 +#: executor/execExpr.c:3086 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "" "к элементам типа %s нельзя обращаться по индексам, так как он это не " "поддерживает" -#: executor/execExpr.c:3135 executor/execExpr.c:3157 +#: executor/execExpr.c:3214 executor/execExpr.c:3236 #, c-format msgid "type %s does not support subscripted assignment" msgstr "тип %s не поддерживает изменение элемента по индексу" -#: executor/execExprInterp.c:1962 +#: executor/execExprInterp.c:2019 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "атрибут %d типа %s был удалён" -#: executor/execExprInterp.c:1968 +#: executor/execExprInterp.c:2025 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "атрибут %d типа %s имеет неправильный тип" -#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 -#: executor/execExprInterp.c:3150 +#: executor/execExprInterp.c:2027 executor/execExprInterp.c:3226 +#: executor/execExprInterp.c:3272 #, c-format msgid "Table has type %s, but query expects %s." msgstr "В таблице задан тип %s, а в запросе ожидается %s." -#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 -#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 -#: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 +#: executor/execExprInterp.c:2107 utils/adt/expandedrecord.c:99 +#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 +#: utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 #: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "тип %s не является составным" -#: executor/execExprInterp.c:2588 +#: executor/execExprInterp.c:2710 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF для таблиц такого типа не поддерживается" -#: executor/execExprInterp.c:2801 +#: executor/execExprInterp.c:2923 #, c-format msgid "cannot merge incompatible arrays" msgstr "не удалось объединить несовместимые массивы" -#: executor/execExprInterp.c:2802 +#: executor/execExprInterp.c:2924 #, c-format msgid "" "Array with element type %s cannot be included in ARRAY construct with " @@ -14731,16 +15280,15 @@ msgstr "" "Массив с типом элементов %s нельзя включить в конструкцию ARRAY с типом " "элементов %s." -#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:266 -#: utils/adt/arrayfuncs.c:576 utils/adt/arrayfuncs.c:1330 -#: utils/adt/arrayfuncs.c:3532 utils/adt/arrayfuncs.c:5616 -#: utils/adt/arrayfuncs.c:6133 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2945 utils/adt/arrayfuncs.c:1305 +#: utils/adt/arrayfuncs.c:3503 utils/adt/arrayfuncs.c:5593 +#: utils/adt/arrayfuncs.c:6110 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число размерностей массива (%d) превышает предел (%d)" -#: executor/execExprInterp.c:2843 executor/execExprInterp.c:2878 +#: executor/execExprInterp.c:2965 executor/execExprInterp.c:3000 #, c-format msgid "" "multidimensional arrays must have array expressions with matching dimensions" @@ -14748,35 +15296,53 @@ msgstr "" "для многомерных массивов должны задаваться выражения с соответствующими " "размерностями" -#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:960 utils/adt/arrayfuncs.c:1569 -#: utils/adt/arrayfuncs.c:2377 utils/adt/arrayfuncs.c:2392 -#: utils/adt/arrayfuncs.c:2654 utils/adt/arrayfuncs.c:2670 -#: utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 -#: utils/adt/arrayfuncs.c:3334 utils/adt/arrayfuncs.c:3562 -#: utils/adt/arrayfuncs.c:6225 utils/adt/arrayfuncs.c:6566 -#: utils/adt/arrayutils.c:98 utils/adt/arrayutils.c:107 -#: utils/adt/arrayutils.c:114 +#: executor/execExprInterp.c:2977 utils/adt/array_expanded.c:274 +#: utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 +#: utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 +#: utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 +#: utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 +#: utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 +#: utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 +#: utils/adt/arrayfuncs.c:3533 utils/adt/arrayfuncs.c:5365 +#: utils/adt/arrayfuncs.c:6202 utils/adt/arrayfuncs.c:6546 +#: utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 +#: utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "размер массива превышает предел (%d)" -#: executor/execExprInterp.c:3103 executor/execExprInterp.c:3149 +#: executor/execExprInterp.c:3225 executor/execExprInterp.c:3271 #, c-format msgid "attribute %d has wrong type" msgstr "атрибут %d имеет неверный тип" -#: executor/execExprInterp.c:3735 utils/adt/domains.c:155 +#: executor/execExprInterp.c:3857 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "домен %s не допускает значения null" -#: executor/execExprInterp.c:3750 utils/adt/domains.c:193 +#: executor/execExprInterp.c:3872 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "значение домена %s нарушает ограничение-проверку \"%s\"" -#: executor/execExprInterp.c:4235 +#: executor/execExprInterp.c:4447 +#, c-format +msgid "no SQL/JSON item found for specified path of column \"%s\"" +msgstr "по заданному для столбца \"%s\" пути не найден элемент SQL/JSON" + +#: executor/execExprInterp.c:4452 +#, c-format +msgid "no SQL/JSON item found for specified path" +msgstr "по заданному пути не найден элемент SQL/JSON" + +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:4652 executor/execExprInterp.c:4660 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "привести выражение %s (%s) к типу RETURNING не удалось" + +#: executor/execExprInterp.c:4853 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." @@ -14784,14 +15350,14 @@ msgstr[0] "Строка таблицы содержит %d атрибут, а в msgstr[1] "Строка таблицы содержит %d атрибута, а в запросе ожидается %d." msgstr[2] "Строка таблицы содержит %d атрибутов, а в запросе ожидается %d." -#: executor/execExprInterp.c:4351 executor/execSRF.c:978 +#: executor/execExprInterp.c:4969 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "" "Несоответствие параметров физического хранения удалённого атрибута (под " "номером %d)." -#: executor/execIndexing.c:588 +#: executor/execIndexing.c:593 #, c-format msgid "" "ON CONFLICT does not support deferrable unique constraints/exclusion " @@ -14800,32 +15366,32 @@ msgstr "" "ON CONFLICT не поддерживает откладываемые ограничения уникальности/" "ограничения-исключения в качестве определяющего индекса" -#: executor/execIndexing.c:865 +#: executor/execIndexing.c:870 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "не удалось создать ограничение-исключение \"%s\"" -#: executor/execIndexing.c:868 +#: executor/execIndexing.c:873 #, c-format msgid "Key %s conflicts with key %s." msgstr "Ключ %s конфликтует с ключом %s." -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:875 #, c-format msgid "Key conflicts exist." msgstr "Обнаружен конфликт ключей." -#: executor/execIndexing.c:876 +#: executor/execIndexing.c:881 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "конфликтующее значение ключа нарушает ограничение-исключение \"%s\"" -#: executor/execIndexing.c:879 +#: executor/execIndexing.c:884 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "Ключ %s конфликтует с существующим ключом %s." -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:886 #, c-format msgid "Key conflicts with existing key." msgstr "Ключ конфликтует с уже существующим." @@ -14840,167 +15406,119 @@ msgstr "последовательность \"%s\" изменить нельз msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-отношение \"%s\" изменить нельзя" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 -#: rewrite/rewriteHandler.c:3966 -#, c-format -msgid "cannot insert into view \"%s\"" -msgstr "вставить данные в представление \"%s\" нельзя" - -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 -#: rewrite/rewriteHandler.c:3969 -#, c-format -msgid "" -"To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " -"an unconditional ON INSERT DO INSTEAD rule." -msgstr "" -"Чтобы представление допускало добавление данных, установите триггер INSTEAD " -"OF INSERT или безусловное правило ON INSERT DO INSTEAD." - -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 -#: rewrite/rewriteHandler.c:3974 -#, c-format -msgid "cannot update view \"%s\"" -msgstr "изменить данные в представлении \"%s\" нельзя" - -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 -#: rewrite/rewriteHandler.c:3977 -#, c-format -msgid "" -"To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " -"unconditional ON UPDATE DO INSTEAD rule." -msgstr "" -"Чтобы представление допускало изменение данных, установите триггер INSTEAD " -"OF UPDATE или безусловное правило ON UPDATE DO INSTEAD." - -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 -#: rewrite/rewriteHandler.c:3982 -#, c-format -msgid "cannot delete from view \"%s\"" -msgstr "удалить данные из представления \"%s\" нельзя" - -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 -#: rewrite/rewriteHandler.c:3985 -#, c-format -msgid "" -"To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " -"unconditional ON DELETE DO INSTEAD rule." -msgstr "" -"Чтобы представление допускало удаление данных, установите триггер INSTEAD OF " -"DELETE или безусловное правило ON DELETE DO INSTEAD." - -#: executor/execMain.c:1092 +#: executor/execMain.c:1064 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "изменить материализованное представление \"%s\" нельзя" -#: executor/execMain.c:1104 +#: executor/execMain.c:1076 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "вставлять данные в стороннюю таблицу \"%s\" нельзя" -#: executor/execMain.c:1110 +#: executor/execMain.c:1082 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "сторонняя таблица \"%s\" не допускает добавления" -#: executor/execMain.c:1117 +#: executor/execMain.c:1089 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "изменять данные в сторонней таблице \"%s\"" -#: executor/execMain.c:1123 +#: executor/execMain.c:1095 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "сторонняя таблица \"%s\" не допускает изменения" -#: executor/execMain.c:1130 +#: executor/execMain.c:1102 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "удалять данные из сторонней таблицы \"%s\" нельзя" -#: executor/execMain.c:1136 +#: executor/execMain.c:1108 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "сторонняя таблица \"%s\" не допускает удаления" -#: executor/execMain.c:1147 +#: executor/execMain.c:1119 #, c-format msgid "cannot change relation \"%s\"" msgstr "отношение \"%s\" изменить нельзя" -#: executor/execMain.c:1174 +#: executor/execMain.c:1146 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "блокировать строки в последовательности \"%s\" нельзя" -#: executor/execMain.c:1181 +#: executor/execMain.c:1153 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "блокировать строки в TOAST-отношении \"%s\" нельзя" -#: executor/execMain.c:1188 +#: executor/execMain.c:1160 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "блокировать строки в представлении \"%s\" нельзя" -#: executor/execMain.c:1196 +#: executor/execMain.c:1168 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "блокировать строки в материализованном представлении \"%s\" нельзя" -#: executor/execMain.c:1205 executor/execMain.c:2708 +#: executor/execMain.c:1177 executor/execMain.c:2687 #: executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "блокировать строки в сторонней таблице \"%s\" нельзя" -#: executor/execMain.c:1211 +#: executor/execMain.c:1183 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "блокировать строки в отношении \"%s\" нельзя" -#: executor/execMain.c:1922 +#: executor/execMain.c:1901 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "новая строка в отношении \"%s\" нарушает ограничение секции" -#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 -#: executor/execMain.c:2169 +#: executor/execMain.c:1903 executor/execMain.c:1987 executor/execMain.c:2038 +#: executor/execMain.c:2148 #, c-format msgid "Failing row contains %s." msgstr "Ошибочная строка содержит %s." -#: executor/execMain.c:2005 +#: executor/execMain.c:1984 #, c-format msgid "" "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "" "значение NULL в столбце \"%s\" отношения \"%s\" нарушает ограничение NOT NULL" -#: executor/execMain.c:2057 +#: executor/execMain.c:2036 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "новая строка в отношении \"%s\" нарушает ограничение-проверку \"%s\"" -#: executor/execMain.c:2167 +#: executor/execMain.c:2146 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "новая строка нарушает ограничение-проверку для представления \"%s\"" -#: executor/execMain.c:2177 +#: executor/execMain.c:2156 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "" "новая строка нарушает политику защиты на уровне строк \"%s\" для таблицы " "\"%s\"" -#: executor/execMain.c:2182 +#: executor/execMain.c:2161 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "" "новая строка нарушает политику защиты на уровне строк для таблицы \"%s\"" -#: executor/execMain.c:2190 +#: executor/execMain.c:2169 #, c-format msgid "" "target row violates row-level security policy \"%s\" (USING expression) for " @@ -15009,7 +15527,7 @@ msgstr "" "целевая строка нарушает политику защиты на уровне строк \"%s\" (выражение " "USING) для таблицы \"%s\"" -#: executor/execMain.c:2195 +#: executor/execMain.c:2174 #, c-format msgid "" "target row violates row-level security policy (USING expression) for table " @@ -15018,7 +15536,7 @@ msgstr "" "новая строка нарушает политику защиты на уровне строк (выражение USING) для " "таблицы \"%s\"" -#: executor/execMain.c:2202 +#: executor/execMain.c:2181 #, c-format msgid "" "new row violates row-level security policy \"%s\" (USING expression) for " @@ -15027,7 +15545,7 @@ msgstr "" "новая строка нарушает политику защиты на уровне строк \"%s\" (выражение " "USING) для таблицы \"%s\"" -#: executor/execMain.c:2207 +#: executor/execMain.c:2186 #, c-format msgid "" "new row violates row-level security policy (USING expression) for table " @@ -15036,17 +15554,17 @@ msgstr "" "новая строка нарушает политику защиты на уровне строк (выражение USING) для " "таблицы \"%s\"" -#: executor/execPartition.c:330 +#: executor/execPartition.c:327 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "для строки не найдена секция в отношении \"%s\"" -#: executor/execPartition.c:333 +#: executor/execPartition.c:330 #, c-format msgid "Partition key of the failing row contains %s." msgstr "Ключ секционирования для неподходящей строки содержит %s." -#: executor/execReplication.c:231 executor/execReplication.c:415 +#: executor/execReplication.c:272 executor/execReplication.c:456 #, c-format msgid "" "tuple to be locked was already moved to another partition due to concurrent " @@ -15055,31 +15573,31 @@ msgstr "" "кортеж, подлежащий блокировке, был перемещён в другую секцию в результате " "параллельного изменения; следует повторная попытка" -#: executor/execReplication.c:235 executor/execReplication.c:419 +#: executor/execReplication.c:276 executor/execReplication.c:460 #, c-format msgid "concurrent update, retrying" msgstr "параллельное изменение; следует повторная попытка" -#: executor/execReplication.c:241 executor/execReplication.c:425 +#: executor/execReplication.c:282 executor/execReplication.c:466 #, c-format msgid "concurrent delete, retrying" msgstr "параллельное удаление; следует повторная попытка" -#: executor/execReplication.c:311 parser/parse_cte.c:308 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 -#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3881 -#: utils/adt/arrayfuncs.c:4436 utils/adt/arrayfuncs.c:6446 -#: utils/adt/rowtypes.c:1230 +#: executor/execReplication.c:352 parser/parse_cte.c:302 +#: parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 +#: utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3852 +#: utils/adt/arrayfuncs.c:4407 utils/adt/arrayfuncs.c:6426 +#: utils/adt/rowtypes.c:1220 #, c-format msgid "could not identify an equality operator for type %s" msgstr "не удалось найти оператор равенства для типа %s" -#: executor/execReplication.c:642 executor/execReplication.c:648 +#: executor/execReplication.c:687 executor/execReplication.c:693 #, c-format msgid "cannot update table \"%s\"" msgstr "изменять данные в таблице \"%s\" нельзя" -#: executor/execReplication.c:644 executor/execReplication.c:656 +#: executor/execReplication.c:689 executor/execReplication.c:701 #, c-format msgid "" "Column used in the publication WHERE expression is not part of the replica " @@ -15088,7 +15606,7 @@ msgstr "" "Столбец, фигурирующий в выражении WHERE публикации, не входит в " "идентификатор реплики." -#: executor/execReplication.c:650 executor/execReplication.c:662 +#: executor/execReplication.c:695 executor/execReplication.c:707 #, c-format msgid "" "Column list used by the publication does not cover the replica identity." @@ -15096,12 +15614,12 @@ msgstr "" "Список столбцов, используемых в публикации, не покрывает идентификатор " "реплики." -#: executor/execReplication.c:654 executor/execReplication.c:660 +#: executor/execReplication.c:699 executor/execReplication.c:705 #, c-format msgid "cannot delete from table \"%s\"" msgstr "удалять данные из таблицы \"%s\" нельзя" -#: executor/execReplication.c:680 +#: executor/execReplication.c:725 #, c-format msgid "" "cannot update table \"%s\" because it does not have a replica identity and " @@ -15110,14 +15628,14 @@ msgstr "" "изменение в таблице \"%s\" невозможно, так как в ней отсутствует " "идентификатор реплики, но она публикует изменения" -#: executor/execReplication.c:682 +#: executor/execReplication.c:727 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "" "Чтобы эта таблица поддерживала изменение, установите REPLICA IDENTITY, " "выполнив ALTER TABLE." -#: executor/execReplication.c:686 +#: executor/execReplication.c:731 #, c-format msgid "" "cannot delete from table \"%s\" because it does not have a replica identity " @@ -15126,7 +15644,7 @@ msgstr "" "удаление из таблицы \"%s\" невозможно, так как в ней отсутствует " "идентификатор реплики, но она публикует удаления" -#: executor/execReplication.c:688 +#: executor/execReplication.c:733 #, c-format msgid "" "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." @@ -15134,34 +15652,34 @@ msgstr "" "Чтобы эта таблица поддерживала удаление, установите REPLICA IDENTITY, " "выполнив ALTER TABLE." -#: executor/execReplication.c:704 +#: executor/execReplication.c:749 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "" "в качестве целевого отношения для логической репликации нельзя использовать " "\"%s.%s\"" -#: executor/execSRF.c:316 +#: executor/execSRF.c:315 #, c-format msgid "rows returned by function are not all of the same row type" msgstr "строки, возвращённые функцией, имеют разные типы" -#: executor/execSRF.c:366 +#: executor/execSRF.c:365 #, c-format msgid "table-function protocol for value-per-call mode was not followed" msgstr "нарушение протокола табличной функции в режиме вызов-значение" -#: executor/execSRF.c:374 executor/execSRF.c:668 +#: executor/execSRF.c:373 executor/execSRF.c:667 #, c-format msgid "table-function protocol for materialize mode was not followed" msgstr "нарушение протокола табличной функции в режиме материализации" -#: executor/execSRF.c:381 executor/execSRF.c:686 +#: executor/execSRF.c:380 executor/execSRF.c:685 #, c-format msgid "unrecognized table-function returnMode: %d" msgstr "нераспознанный режим возврата табличной функции: %d" -#: executor/execSRF.c:895 +#: executor/execSRF.c:894 #, c-format msgid "" "function returning setof record called in context that cannot accept type " @@ -15170,12 +15688,12 @@ msgstr "" "функция, возвращающая запись SET OF, вызвана в контексте, не допускающем " "этот тип" -#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977 +#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976 #, c-format msgid "function return row and query-specified return row do not match" msgstr "тип результат функции отличается от типа строки-результата запроса" -#: executor/execSRF.c:952 +#: executor/execSRF.c:951 #, c-format msgid "Returned row contains %d attribute, but query expects %d." msgid_plural "Returned row contains %d attributes, but query expects %d." @@ -15185,23 +15703,33 @@ msgstr[1] "" msgstr[2] "" "Возвращённая строка содержит %d атрибутов, но запрос предполагает %d." -#: executor/execSRF.c:968 +#: executor/execSRF.c:967 #, c-format msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "Возвращён тип %s (номер столбца: %d), а в запросе предполагается %s." -#: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:713 +#: executor/execTuples.c:147 executor/execTuples.c:368 +#: executor/execTuples.c:563 executor/execTuples.c:772 #, c-format msgid "cannot retrieve a system column in this context" msgstr "системный столбец нельзя получить в данном контексте" -#: executor/execUtils.c:744 +#: executor/execTuples.c:163 executor/execTuples.c:580 +#, c-format +msgid "don't have transaction information for this type of tuple" +msgstr "для этого типа кортежей транзакционная информация отсутствует" + +#: executor/execTuples.c:390 executor/execTuples.c:794 +#, c-format +msgid "don't have a storage tuple in this context" +msgstr "в данном контексте хранимый кортеж отсутствует" + +#: executor/execUtils.c:713 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "материализованное представление \"%s\" не было наполнено" -#: executor/execUtils.c:746 +#: executor/execUtils.c:715 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "Примените команду REFRESH MATERIALIZED VIEW." @@ -15211,119 +15739,120 @@ msgstr "Примените команду REFRESH MATERIALIZED VIEW." msgid "could not determine actual type of argument declared %s" msgstr "не удалось определить фактический тип аргумента, объявленного как %s" -#: executor/functions.c:512 +#: executor/functions.c:513 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "в функции SQL нельзя выполнить COPY с участием клиента" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:519 #, c-format msgid "%s is not allowed in an SQL function" msgstr "%s нельзя использовать в SQL-функции" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635 +#: executor/functions.c:527 executor/spi.c:1744 executor/spi.c:2657 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "%s нельзя использовать в не изменчивой (volatile) функции" -#: executor/functions.c:1451 +#: executor/functions.c:1452 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL-функция \"%s\", оператор %d" -#: executor/functions.c:1477 +#: executor/functions.c:1478 #, c-format msgid "SQL function \"%s\" during startup" msgstr "SQL-функция \"%s\" (при старте)" -#: executor/functions.c:1562 +#: executor/functions.c:1563 #, c-format msgid "" "calling procedures with output arguments is not supported in SQL functions" msgstr "" "вызов процедур с выходными аргументами в функциях SQL не поддерживается" -#: executor/functions.c:1710 executor/functions.c:1748 -#: executor/functions.c:1762 executor/functions.c:1857 -#: executor/functions.c:1890 executor/functions.c:1904 +#: executor/functions.c:1698 executor/functions.c:1736 +#: executor/functions.c:1750 executor/functions.c:1845 +#: executor/functions.c:1878 executor/functions.c:1892 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "несовпадение типа возврата в функции (в объявлении указан тип %s)" -#: executor/functions.c:1712 +#: executor/functions.c:1700 #, c-format msgid "" -"Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." -msgstr "" -"Последним оператором в функции должен быть SELECT или INSERT/UPDATE/DELETE " +"Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE " "RETURNING." +msgstr "" +"Последним оператором в функции должен быть SELECT или INSERT/UPDATE/DELETE/" +"MERGE RETURNING." -#: executor/functions.c:1750 +#: executor/functions.c:1738 #, c-format msgid "Final statement must return exactly one column." msgstr "Последний оператор должен возвращать один столбец." -#: executor/functions.c:1764 +#: executor/functions.c:1752 #, c-format msgid "Actual return type is %s." msgstr "Фактический тип возврата: %s." -#: executor/functions.c:1859 +#: executor/functions.c:1847 #, c-format msgid "Final statement returns too many columns." msgstr "Последний оператор возвращает слишком много столбцов." -#: executor/functions.c:1892 +#: executor/functions.c:1880 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "Последний оператор возвращает %s вместо %s для столбца %d." -#: executor/functions.c:1906 +#: executor/functions.c:1894 #, c-format msgid "Final statement returns too few columns." msgstr "Последний оператор возвращает слишком мало столбцов." -#: executor/functions.c:1934 +#: executor/functions.c:1922 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "для SQL-функций тип возврата %s не поддерживается" -#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 +#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2975 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "" "агрегатная функция %u должна иметь совместимые входной и переходный типы" -#: executor/nodeAgg.c:3967 parser/parse_agg.c:680 parser/parse_agg.c:708 +#: executor/nodeAgg.c:3966 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "вложенные вызовы агрегатных функций недопустимы" -#: executor/nodeCustom.c:154 executor/nodeCustom.c:165 +#: executor/nodeCustom.c:144 executor/nodeCustom.c:155 #, c-format msgid "custom scan \"%s\" does not support MarkPos" msgstr "нестандартное сканирование \"%s\" не поддерживает MarkPos" -#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173 +#: executor/nodeHashjoin.c:1131 executor/nodeHashjoin.c:1161 #, c-format msgid "could not rewind hash-join temporary file" msgstr "не удалось переместиться во временном файле хеш-соединения" -#: executor/nodeIndexonlyscan.c:240 +#: executor/nodeIndexonlyscan.c:239 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "" "функции неточного расстояния не поддерживаются в сканировании только по " "индексу" -#: executor/nodeLimit.c:374 +#: executor/nodeLimit.c:373 #, c-format msgid "OFFSET must not be negative" msgstr "OFFSET не может быть отрицательным" -#: executor/nodeLimit.c:400 +#: executor/nodeLimit.c:399 #, c-format msgid "LIMIT must not be negative" msgstr "LIMIT не может быть отрицательным" @@ -15341,12 +15870,12 @@ msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "" "FULL JOIN поддерживается только с условиями, допускающими соединение слиянием" -#: executor/nodeModifyTable.c:234 +#: executor/nodeModifyTable.c:240 #, c-format msgid "Query has too few columns." msgstr "Запрос возвращает меньше столбцов." -#: executor/nodeModifyTable.c:1534 executor/nodeModifyTable.c:1608 +#: executor/nodeModifyTable.c:1540 executor/nodeModifyTable.c:1614 #, c-format msgid "" "tuple to be deleted was already modified by an operation triggered by the " @@ -15355,12 +15884,12 @@ msgstr "" "кортеж, который должен быть удалён, уже модифицирован в операции, вызванной " "текущей командой" -#: executor/nodeModifyTable.c:1763 +#: executor/nodeModifyTable.c:1769 #, c-format msgid "invalid ON UPDATE specification" msgstr "неверное указание ON UPDATE" -#: executor/nodeModifyTable.c:1764 +#: executor/nodeModifyTable.c:1770 #, c-format msgid "" "The result tuple would appear in a different partition than the original " @@ -15369,7 +15898,7 @@ msgstr "" "Результирующий кортеж окажется перемещённым из секции исходного кортежа в " "другую." -#: executor/nodeModifyTable.c:2223 +#: executor/nodeModifyTable.c:2226 #, c-format msgid "" "cannot move tuple across partitions when a non-root ancestor of the source " @@ -15378,26 +15907,26 @@ msgstr "" "нельзя переместить кортеж между секциями, когда внешний ключ непосредственно " "ссылается на предка исходной секции, который не является корнем иерархии" -#: executor/nodeModifyTable.c:2224 +#: executor/nodeModifyTable.c:2227 #, c-format msgid "" "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "" "Внешний ключ ссылается на предка \"%s\", а не на корневого предка \"%s\"." -#: executor/nodeModifyTable.c:2227 +#: executor/nodeModifyTable.c:2230 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "Возможно, имеет смысл перенацелить внешний ключ на таблицу \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2996 -#: executor/nodeModifyTable.c:3123 +#: executor/nodeModifyTable.c:2596 executor/nodeModifyTable.c:3138 +#: executor/nodeModifyTable.c:3308 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не может подействовать на строку дважды" -#: executor/nodeModifyTable.c:2575 +#: executor/nodeModifyTable.c:2598 #, c-format msgid "" "Ensure that no rows proposed for insertion within the same command have " @@ -15406,7 +15935,7 @@ msgstr "" "Проверьте, не содержат ли строки, которые должна добавить команда, " "дублирующиеся значения, подпадающие под ограничения." -#: executor/nodeModifyTable.c:2989 executor/nodeModifyTable.c:3116 +#: executor/nodeModifyTable.c:3131 executor/nodeModifyTable.c:3301 #, c-format msgid "" "tuple to be updated or deleted was already modified by an operation " @@ -15415,28 +15944,28 @@ msgstr "" "кортеж, который должен быть изменён или удалён, уже модифицирован в " "операции, вызванной текущей командой" -#: executor/nodeModifyTable.c:2998 executor/nodeModifyTable.c:3125 +#: executor/nodeModifyTable.c:3140 executor/nodeModifyTable.c:3310 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" "Проверьте, не может ли какой-либо целевой строке соответствовать более одной " "исходной строки." -#: executor/nodeModifyTable.c:3080 +#: executor/nodeModifyTable.c:3209 #, c-format msgid "" -"tuple to be deleted was already moved to another partition due to concurrent " +"tuple to be merged was already moved to another partition due to concurrent " "update" msgstr "" -"кортеж, подлежащий удалению, был перемещён в другую секцию в результате " +"кортеж, подлежащий объединению, был перемещён в другую секцию в результате " "параллельного изменения" -#: executor/nodeSamplescan.c:260 +#: executor/nodeSamplescan.c:244 #, c-format msgid "TABLESAMPLE parameter cannot be null" msgstr "параметр TABLESAMPLE не может быть NULL" -#: executor/nodeSamplescan.c:272 +#: executor/nodeSamplescan.c:256 #, c-format msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "параметр TABLESAMPLE REPEATABLE не может быть NULL" @@ -15447,7 +15976,7 @@ msgstr "параметр TABLESAMPLE REPEATABLE не может быть NULL" msgid "more than one row returned by a subquery used as an expression" msgstr "подзапрос в выражении вернул больше одной строки" -#: executor/nodeTableFuncscan.c:375 +#: executor/nodeTableFuncscan.c:370 #, c-format msgid "namespace URI must not be null" msgstr "URI пространства имён должен быть не NULL" @@ -15457,17 +15986,17 @@ msgstr "URI пространства имён должен быть не NULL" msgid "row filter expression must not be null" msgstr "выражение отбора строк должно быть не NULL" -#: executor/nodeTableFuncscan.c:415 +#: executor/nodeTableFuncscan.c:416 #, c-format msgid "column filter expression must not be null" msgstr "выражение отбора столбца должно быть не NULL" -#: executor/nodeTableFuncscan.c:416 +#: executor/nodeTableFuncscan.c:417 #, c-format msgid "Filter for column \"%s\" is null." msgstr "Для столбца \"%s\" задано выражение NULL." -#: executor/nodeTableFuncscan.c:506 +#: executor/nodeTableFuncscan.c:507 #, c-format msgid "null is not allowed in column \"%s\"" msgstr "в столбце \"%s\" не допускается NULL" @@ -15497,86 +16026,86 @@ msgstr "смещение конца рамки не может быть NULL" msgid "frame ending offset must not be negative" msgstr "смещение конца рамки не может быть отрицательным" -#: executor/nodeWindowAgg.c:2909 +#: executor/nodeWindowAgg.c:2891 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "" "агрегатная функция %s не поддерживает использование в качестве оконной " "функции" -#: executor/spi.c:242 executor/spi.c:342 +#: executor/spi.c:241 executor/spi.c:341 #, c-format msgid "invalid transaction termination" msgstr "неверное завершение транзакции" -#: executor/spi.c:257 +#: executor/spi.c:256 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "фиксировать транзакцию при наличии активных подтранзакций нельзя" -#: executor/spi.c:348 +#: executor/spi.c:347 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "откатить транзакцию при наличии активных подтранзакций нельзя" -#: executor/spi.c:472 +#: executor/spi.c:471 #, c-format msgid "transaction left non-empty SPI stack" msgstr "после транзакции остался непустой стек SPI" -#: executor/spi.c:473 executor/spi.c:533 +#: executor/spi.c:472 executor/spi.c:532 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "Проверьте наличие вызова \"SPI_finish\"." -#: executor/spi.c:532 +#: executor/spi.c:531 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "после подтранзакции остался непустой стек SPI" -#: executor/spi.c:1600 +#: executor/spi.c:1602 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "не удалось открыть план нескольких запросов как курсор" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1610 +#: executor/spi.c:1612 #, c-format msgid "cannot open %s query as cursor" msgstr "не удалось открыть запрос %s как курсор" -#: executor/spi.c:1716 +#: executor/spi.c:1718 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не поддерживается" -#: executor/spi.c:1717 parser/analyze.c:2923 +#: executor/spi.c:1719 parser/analyze.c:2928 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Прокручиваемые курсоры должны быть READ ONLY." -#: executor/spi.c:2474 +#: executor/spi.c:2496 #, c-format msgid "empty query does not return tuples" msgstr "пустой запрос не возвращает кортежи" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2548 +#: executor/spi.c:2570 #, c-format msgid "%s query does not return tuples" msgstr "запрос %s не возвращает кортежи" -#: executor/spi.c:2963 +#: executor/spi.c:2987 #, c-format msgid "SQL expression \"%s\"" msgstr "SQL-выражение \"%s\"" -#: executor/spi.c:2968 +#: executor/spi.c:2992 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "присваивание PL/pgSQL \"%s\"" -#: executor/spi.c:2971 +#: executor/spi.c:2995 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL-оператор: \"%s\"" @@ -15586,28 +16115,34 @@ msgstr "SQL-оператор: \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "не удалось передать кортеж в очередь в разделяемой памяти" -#: foreign/foreign.c:222 +#: foreign/foreign.c:225 +#, c-format +msgid "user mapping not found for user \"%s\", server \"%s\"" +msgstr "сопоставление для пользователя \"%s\", сервера \"%s\" не найдено" + +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7153 +#: optimizer/util/plancat.c:540 #, c-format -msgid "user mapping not found for \"%s\"" -msgstr "сопоставление пользователя для \"%s\" не найдено" +msgid "access to non-system foreign table is restricted" +msgstr "доступ к несистемным сторонним таблицам ограничен" -#: foreign/foreign.c:647 storage/file/fd.c:3931 +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "неверный параметр \"%s\"" -#: foreign/foreign.c:649 +#: foreign/foreign.c:662 #, c-format msgid "Perhaps you meant the option \"%s\"." msgstr "Возможно, предполагался параметр \"%s\"." -#: foreign/foreign.c:651 +#: foreign/foreign.c:664 #, c-format msgid "There are no valid options in this context." msgstr "В данном контексте недопустимы никакие параметры." -#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 -#: utils/mmgr/dsa.c:818 +#: lib/dshash.c:254 utils/mmgr/dsa.c:708 utils/mmgr/dsa.c:730 +#: utils/mmgr/dsa.c:811 #, c-format msgid "Failed on DSA request of size %zu." msgstr "Ошибка при запросе памяти DSA (%zu Б)." @@ -15617,77 +16152,77 @@ msgstr "Ошибка при запросе памяти DSA (%zu Б)." msgid "expected SASL response, got message type %d" msgstr "ожидался ответ SASL, но получено сообщение %d" -#: libpq/auth-scram.c:270 +#: libpq/auth-scram.c:263 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "клиент выбрал неверный механизм аутентификации SASL" -#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554 +#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "неверная запись секрета SCRAM для пользователя \"%s\"" -#: libpq/auth-scram.c:305 +#: libpq/auth-scram.c:298 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "Для пользователя \"%s\" нет подходящей записи секрета SCRAM." -#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 -#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 -#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 -#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 -#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 -#: libpq/auth-scram.c:1394 +#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 +#: libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 +#: libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 +#: libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 +#: libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 +#: libpq/auth-scram.c:1387 #, c-format msgid "malformed SCRAM message" msgstr "неправильное сообщение SCRAM" -#: libpq/auth-scram.c:386 +#: libpq/auth-scram.c:379 #, c-format msgid "The message is empty." msgstr "Сообщение пустое." -#: libpq/auth-scram.c:391 +#: libpq/auth-scram.c:384 #, c-format msgid "Message length does not match input length." msgstr "Длина сообщения не соответствует входной длине." -#: libpq/auth-scram.c:423 +#: libpq/auth-scram.c:416 #, c-format msgid "invalid SCRAM response" msgstr "неверный ответ SCRAM" -#: libpq/auth-scram.c:424 +#: libpq/auth-scram.c:417 #, c-format msgid "Nonce does not match." msgstr "Разовый код не совпадает." -#: libpq/auth-scram.c:500 +#: libpq/auth-scram.c:493 #, c-format msgid "could not generate random salt" msgstr "не удалось сгенерировать случайную соль" -#: libpq/auth-scram.c:745 +#: libpq/auth-scram.c:738 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "Ожидался атрибут \"%c\", но обнаружено \"%s\"." -#: libpq/auth-scram.c:753 libpq/auth-scram.c:881 +#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "Ожидался символ \"=\" для атрибута \"%c\"." -#: libpq/auth-scram.c:858 +#: libpq/auth-scram.c:851 #, c-format msgid "Attribute expected, but found end of string." msgstr "Ожидался атрибут, но обнаружен конец строки." -#: libpq/auth-scram.c:871 +#: libpq/auth-scram.c:864 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "Ожидался атрибут, но обнаружен неправильный символ \"%s\"." -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 #, c-format msgid "" "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not " @@ -15696,17 +16231,17 @@ msgstr "" "Клиент выбрал алгоритм SCRAM-SHA-256-PLUS, но в сообщении SCRAM отсутствуют " "данные связывания каналов." -#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 +#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 #, c-format msgid "Comma expected, but found character \"%s\"." msgstr "Ожидалась запятая, но обнаружен символ \"%s\"." -#: libpq/auth-scram.c:1017 +#: libpq/auth-scram.c:1010 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "Ошибка согласования связывания каналов SCRAM" -#: libpq/auth-scram.c:1018 +#: libpq/auth-scram.c:1011 #, c-format msgid "" "The client supports SCRAM channel binding but thinks the server does not. " @@ -15715,7 +16250,7 @@ msgstr "" "Клиент поддерживает связывание каналов SCRAM, но полагает, что оно не " "поддерживается сервером. Однако сервер тоже поддерживает связывание каналов." -#: libpq/auth-scram.c:1040 +#: libpq/auth-scram.c:1033 #, c-format msgid "" "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM " @@ -15724,155 +16259,155 @@ msgstr "" "Клиент выбрал алгоритм SCRAM-SHA-256 без связывания каналов, но сообщение " "SCRAM содержит данные связывания каналов." -#: libpq/auth-scram.c:1051 +#: libpq/auth-scram.c:1044 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "неподдерживаемый тип связывания каналов SCRAM \"%s\"" -#: libpq/auth-scram.c:1058 +#: libpq/auth-scram.c:1051 #, c-format msgid "Unexpected channel-binding flag \"%s\"." msgstr "Неожиданный флаг связывания каналов \"%s\"." -#: libpq/auth-scram.c:1068 +#: libpq/auth-scram.c:1061 #, c-format msgid "client uses authorization identity, but it is not supported" msgstr "клиент передал идентификатор для авторизации, но это не поддерживается" -#: libpq/auth-scram.c:1073 +#: libpq/auth-scram.c:1066 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." msgstr "Неожиданный атрибут \"%s\" в первом сообщении клиента." -#: libpq/auth-scram.c:1089 +#: libpq/auth-scram.c:1082 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "клиенту требуется неподдерживаемое расширение SCRAM" -#: libpq/auth-scram.c:1103 +#: libpq/auth-scram.c:1096 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "непечатаемые символы в разовом коде SCRAM" -#: libpq/auth-scram.c:1234 +#: libpq/auth-scram.c:1227 #, c-format msgid "could not generate random nonce" msgstr "не удалось сгенерировать разовый код" -#: libpq/auth-scram.c:1244 +#: libpq/auth-scram.c:1237 #, c-format msgid "could not encode random nonce" msgstr "не удалось оформить разовый код" -#: libpq/auth-scram.c:1350 +#: libpq/auth-scram.c:1343 #, c-format msgid "SCRAM channel binding check failed" msgstr "ошибка проверки связывания каналов SCRAM" -#: libpq/auth-scram.c:1368 +#: libpq/auth-scram.c:1361 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "" "неожиданный атрибут связывания каналов в последнем сообщении клиента SCRAM" -#: libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:1380 #, c-format msgid "Malformed proof in client-final-message." msgstr "Некорректное подтверждение в последнем сообщении клиента." -#: libpq/auth-scram.c:1395 +#: libpq/auth-scram.c:1388 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "Мусор в конце последнего сообщения клиента." -#: libpq/auth.c:271 +#: libpq/auth.c:269 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "" "пользователь \"%s\" не прошёл проверку подлинности: не разрешённый компьютер" -#: libpq/auth.c:274 +#: libpq/auth.c:272 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (\"trust\")" -#: libpq/auth.c:277 +#: libpq/auth.c:275 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (Ident)" -#: libpq/auth.c:280 +#: libpq/auth.c:278 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (Peer)" -#: libpq/auth.c:285 +#: libpq/auth.c:283 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (по паролю)" -#: libpq/auth.c:290 +#: libpq/auth.c:288 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (GSSAPI)" -#: libpq/auth.c:293 +#: libpq/auth.c:291 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (SSPI)" -#: libpq/auth.c:296 +#: libpq/auth.c:294 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (PAM)" -#: libpq/auth.c:299 +#: libpq/auth.c:297 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (BSD)" -#: libpq/auth.c:302 +#: libpq/auth.c:300 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (LDAP)" -#: libpq/auth.c:305 +#: libpq/auth.c:303 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (по сертификату)" -#: libpq/auth.c:308 +#: libpq/auth.c:306 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "пользователь \"%s\" не прошёл проверку подлинности (RADIUS)" -#: libpq/auth.c:311 +#: libpq/auth.c:309 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "" "пользователь \"%s\" не прошёл проверку подлинности: неверный метод проверки" -#: libpq/auth.c:315 +#: libpq/auth.c:313 #, c-format msgid "Connection matched file \"%s\" line %d: \"%s\"" msgstr "Подключение соответствует строке %2$d в \"%1$s\": \"%3$s\"" -#: libpq/auth.c:359 +#: libpq/auth.c:357 #, c-format msgid "authentication identifier set more than once" msgstr "аутентификационный идентификатор указан повторно" -#: libpq/auth.c:360 +#: libpq/auth.c:358 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "предыдущий идентификатор: \"%s\"; новый: \"%s\"" -#: libpq/auth.c:370 +#: libpq/auth.c:368 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "соединение аутентифицировано: идентификатор=\"%s\" метод=%s (%s:%d)" -#: libpq/auth.c:410 +#: libpq/auth.c:408 #, c-format msgid "" "client certificates can only be checked if a root certificate store is " @@ -15881,25 +16416,25 @@ msgstr "" "сертификаты клиентов могут проверяться, только если доступно хранилище " "корневых сертификатов" -#: libpq/auth.c:421 +#: libpq/auth.c:419 #, c-format msgid "connection requires a valid client certificate" msgstr "для подключения требуется годный сертификат клиента" -#: libpq/auth.c:452 libpq/auth.c:498 +#: libpq/auth.c:450 libpq/auth.c:496 msgid "GSS encryption" msgstr "Шифрование GSS" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:453 libpq/auth.c:499 msgid "SSL encryption" msgstr "Шифрование SSL" -#: libpq/auth.c:457 libpq/auth.c:503 +#: libpq/auth.c:455 libpq/auth.c:501 msgid "no encryption" msgstr "без шифрования" #. translator: last %s describes encryption state -#: libpq/auth.c:463 +#: libpq/auth.c:461 #, c-format msgid "" "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" @@ -15908,7 +16443,7 @@ msgstr "" "пользователь \"%s\", \"%s\"" #. translator: last %s describes encryption state -#: libpq/auth.c:470 +#: libpq/auth.c:468 #, c-format msgid "" "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database " @@ -15917,38 +16452,38 @@ msgstr "" "pg_hba.conf отвергает подключение: компьютер \"%s\", пользователь \"%s\", " "база данных \"%s\", %s" -#: libpq/auth.c:508 +#: libpq/auth.c:506 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "" "IP-адрес клиента разрешается в \"%s\", соответствует прямому преобразованию." -#: libpq/auth.c:511 +#: libpq/auth.c:509 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "" "IP-адрес клиента разрешается в \"%s\", прямое преобразование не проверялось." -#: libpq/auth.c:514 +#: libpq/auth.c:512 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "" "IP-адрес клиента разрешается в \"%s\", это не соответствует прямому " "преобразованию." -#: libpq/auth.c:517 +#: libpq/auth.c:515 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "" "Преобразовать имя клиентского компьютера \"%s\" в IP-адрес не удалось: %s." -#: libpq/auth.c:522 +#: libpq/auth.c:520 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "Получить имя компьютера из IP-адреса клиента не удалось: %s." #. translator: last %s describes encryption state -#: libpq/auth.c:530 +#: libpq/auth.c:528 #, c-format msgid "" "no pg_hba.conf entry for replication connection from host \"%s\", user " @@ -15958,245 +16493,242 @@ msgstr "" "компьютера \"%s\" для пользователя \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:538 +#: libpq/auth.c:536 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "" "в pg_hba.conf нет записи для компьютера \"%s\", пользователя \"%s\", базы " "\"%s\", %s" -#: libpq/auth.c:711 +#: libpq/auth.c:656 +#, c-format +msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" +msgstr "соединение аутентифицировано: пользователь=\"%s\" метод=%s (%s:%d)" + +#: libpq/auth.c:725 #, c-format msgid "expected password response, got message type %d" msgstr "ожидался ответ с паролем, но получено сообщение %d" -#: libpq/auth.c:732 +#: libpq/auth.c:746 #, c-format msgid "invalid password packet size" msgstr "неверный размер пакета с паролем" -#: libpq/auth.c:750 +#: libpq/auth.c:764 #, c-format msgid "empty password returned by client" msgstr "клиент возвратил пустой пароль" -#: libpq/auth.c:877 libpq/hba.c:1727 -#, c-format -msgid "" -"MD5 authentication is not supported when \"db_user_namespace\" is enabled" -msgstr "" -"проверка подлинности MD5 не поддерживается, когда включён режим " -"\"db_user_namespace\"" - -#: libpq/auth.c:883 +#: libpq/auth.c:892 #, c-format msgid "could not generate random MD5 salt" msgstr "не удалось сгенерировать случайную соль для MD5" -#: libpq/auth.c:934 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "не удалось задать переменную окружения: %m" -#: libpq/auth.c:973 +#: libpq/auth.c:982 #, c-format msgid "expected GSS response, got message type %d" msgstr "ожидался ответ GSS, но получено сообщение %d" -#: libpq/auth.c:1039 +#: libpq/auth.c:1048 msgid "accepting GSS security context failed" msgstr "принять контекст безопасности GSS не удалось" -#: libpq/auth.c:1080 +#: libpq/auth.c:1089 msgid "retrieving GSS user name failed" msgstr "получить имя пользователя GSS не удалось" -#: libpq/auth.c:1226 +#: libpq/auth.c:1235 msgid "could not acquire SSPI credentials" msgstr "не удалось получить удостоверение SSPI" -#: libpq/auth.c:1251 +#: libpq/auth.c:1260 #, c-format msgid "expected SSPI response, got message type %d" msgstr "ожидался ответ SSPI, но получено сообщение %d" -#: libpq/auth.c:1329 +#: libpq/auth.c:1338 msgid "could not accept SSPI security context" msgstr "принять контекст безопасности SSPI не удалось" -#: libpq/auth.c:1370 +#: libpq/auth.c:1379 msgid "could not get token from SSPI security context" msgstr "не удалось получить маркер из контекста безопасности SSPI" -#: libpq/auth.c:1506 libpq/auth.c:1525 +#: libpq/auth.c:1515 libpq/auth.c:1534 #, c-format msgid "could not translate name" msgstr "не удалось преобразовать имя" -#: libpq/auth.c:1538 +#: libpq/auth.c:1547 #, c-format msgid "realm name too long" msgstr "имя области слишком длинное" -#: libpq/auth.c:1553 +#: libpq/auth.c:1562 #, c-format msgid "translated account name too long" msgstr "преобразованное имя учётной записи слишком длинное" -#: libpq/auth.c:1732 +#: libpq/auth.c:1741 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не удалось создать сокет для подключения к серверу Ident: %m" -#: libpq/auth.c:1747 +#: libpq/auth.c:1756 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не удалось привязаться к локальному адресу \"%s\": %m" -#: libpq/auth.c:1759 +#: libpq/auth.c:1768 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не удалось подключиться к серверу Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1781 +#: libpq/auth.c:1790 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "" "не удалось отправить запрос серверу Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1798 +#: libpq/auth.c:1807 #, c-format msgid "" "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "" "не удалось получить ответ от сервера Ident по адресу \"%s\", порт %s: %m" -#: libpq/auth.c:1808 +#: libpq/auth.c:1817 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неверно форматированный ответ от сервера Ident: \"%s\"" -#: libpq/auth.c:1861 +#: libpq/auth.c:1870 #, c-format msgid "peer authentication is not supported on this platform" msgstr "проверка подлинности peer в этой ОС не поддерживается" -#: libpq/auth.c:1865 +#: libpq/auth.c:1874 #, c-format msgid "could not get peer credentials: %m" msgstr "не удалось получить данные пользователя через механизм peer: %m" -#: libpq/auth.c:1877 +#: libpq/auth.c:1886 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "найти локального пользователя по идентификатору (%ld) не удалось: %s" -#: libpq/auth.c:1979 +#: libpq/auth.c:1988 #, c-format msgid "error from underlying PAM layer: %s" msgstr "ошибка в нижележащем слое PAM: %s" -#: libpq/auth.c:1990 +#: libpq/auth.c:1999 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "неподдерживаемое сообщение ответа PAM %d/\"%s\"" -#: libpq/auth.c:2047 +#: libpq/auth.c:2056 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не удалось создать аутентификатор PAM: %s" -#: libpq/auth.c:2058 +#: libpq/auth.c:2067 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "ошибка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2090 +#: libpq/auth.c:2099 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "ошибка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2102 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "ошибка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2115 +#: libpq/auth.c:2124 #, c-format msgid "pam_authenticate failed: %s" msgstr "ошибка в pam_authenticate: %s" -#: libpq/auth.c:2128 +#: libpq/auth.c:2137 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "ошибка в pam_acct_mgmt: %s" -#: libpq/auth.c:2139 +#: libpq/auth.c:2148 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не удалось освободить аутентификатор PAM: %s" -#: libpq/auth.c:2219 +#: libpq/auth.c:2228 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не удалось инициализировать LDAP (код ошибки: %d)" -#: libpq/auth.c:2256 +#: libpq/auth.c:2265 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не удалось извлечь имя домена из ldapbasedn" -#: libpq/auth.c:2264 +#: libpq/auth.c:2273 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "для аутентификации LDAP не удалось найти записи DNS SRV для \"%s\"" -#: libpq/auth.c:2266 +#: libpq/auth.c:2275 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Задайте имя сервера LDAP явным образом." -#: libpq/auth.c:2318 +#: libpq/auth.c:2327 #, c-format msgid "could not initialize LDAP: %s" msgstr "не удалось инициализировать LDAP: %s" -#: libpq/auth.c:2328 +#: libpq/auth.c:2337 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps с текущей библиотекой LDAP не поддерживается" -#: libpq/auth.c:2336 +#: libpq/auth.c:2345 #, c-format msgid "could not initialize LDAP: %m" msgstr "не удалось инициализировать LDAP: %m" -#: libpq/auth.c:2346 +#: libpq/auth.c:2355 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не удалось задать версию протокола LDAP: %s" -#: libpq/auth.c:2362 +#: libpq/auth.c:2371 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не удалось начать сеанс LDAP TLS: %s" -#: libpq/auth.c:2439 +#: libpq/auth.c:2448 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP-сервер не задан и значение ldapbasedn не определено" -#: libpq/auth.c:2446 +#: libpq/auth.c:2455 #, c-format msgid "LDAP server not specified" msgstr "LDAP-сервер не определён" -#: libpq/auth.c:2508 +#: libpq/auth.c:2517 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "недопустимый символ в имени пользователя для проверки подлинности LDAP" -#: libpq/auth.c:2525 +#: libpq/auth.c:2534 #, c-format msgid "" "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": " @@ -16205,28 +16737,28 @@ msgstr "" "не удалось выполнить начальную привязку LDAP для ldapbinddn \"%s\" на " "сервере \"%s\": %s" -#: libpq/auth.c:2555 +#: libpq/auth.c:2564 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "" "не удалось выполнить LDAP-поиск по фильтру \"%s\" на сервере \"%s\": %s" -#: libpq/auth.c:2571 +#: libpq/auth.c:2580 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "в LDAP нет пользователя \"%s\"" -#: libpq/auth.c:2572 +#: libpq/auth.c:2581 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" не вернул результатов" -#: libpq/auth.c:2576 +#: libpq/auth.c:2585 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "пользователь LDAP \"%s\" не уникален" -#: libpq/auth.c:2577 +#: libpq/auth.c:2586 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "" @@ -16235,7 +16767,7 @@ msgstr[0] "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" msgstr[1] "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" вернул %d записи." msgstr[2] "LDAP-поиск по фильтру \"%s\" на сервере \"%s\" вернул %d записей." -#: libpq/auth.c:2597 +#: libpq/auth.c:2606 #, c-format msgid "" "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" @@ -16243,24 +16775,18 @@ msgstr "" "не удалось получить dn для первого результата, соответствующего \"%s\" на " "сервере \"%s\": %s" -#: libpq/auth.c:2618 -#, c-format -msgid "could not unbind after searching for user \"%s\" on server \"%s\"" -msgstr "" -"не удалось отвязаться после поиска пользователя \"%s\" на сервере \"%s\"" - -#: libpq/auth.c:2649 +#: libpq/auth.c:2633 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "" "ошибка при регистрации в LDAP пользователя \"%s\" на сервере \"%s\": %s" -#: libpq/auth.c:2681 +#: libpq/auth.c:2665 #, c-format msgid "LDAP diagnostics: %s" msgstr "Диагностика LDAP: %s" -#: libpq/auth.c:2719 +#: libpq/auth.c:2703 #, c-format msgid "" "certificate authentication failed for user \"%s\": client certificate " @@ -16269,7 +16795,7 @@ msgstr "" "ошибка проверки подлинности пользователя \"%s\" по сертификату: сертификат " "клиента не содержит имя пользователя" -#: libpq/auth.c:2740 +#: libpq/auth.c:2724 #, c-format msgid "" "certificate authentication failed for user \"%s\": unable to retrieve " @@ -16278,7 +16804,7 @@ msgstr "" "пользователь \"%s\" не прошёл проверку подлинности по сертификату: не " "удалось получить DN субъекта" -#: libpq/auth.c:2763 +#: libpq/auth.c:2747 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": DN " @@ -16287,7 +16813,7 @@ msgstr "" "проверка сертификата (clientcert=verify-full) для пользователя \"%s\" не " "прошла: отличается DN" -#: libpq/auth.c:2768 +#: libpq/auth.c:2752 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": CN " @@ -16296,99 +16822,99 @@ msgstr "" "проверка сертификата (clientcert=verify-full) для пользователя \"%s\" не " "прошла: отличается CN" -#: libpq/auth.c:2870 +#: libpq/auth.c:2854 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-сервер не определён" -#: libpq/auth.c:2877 +#: libpq/auth.c:2861 #, c-format msgid "RADIUS secret not specified" msgstr "секрет RADIUS не определён" # well-spelled: симв -#: libpq/auth.c:2891 +#: libpq/auth.c:2875 #, c-format msgid "" "RADIUS authentication does not support passwords longer than %d characters" msgstr "проверка подлинности RADIUS не поддерживает пароли длиннее %d симв." -#: libpq/auth.c:2993 libpq/hba.c:2369 +#: libpq/auth.c:2977 libpq/hba.c:2352 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не удалось преобразовать имя сервера RADIUS \"%s\" в адрес: %s" -#: libpq/auth.c:3007 +#: libpq/auth.c:2991 #, c-format msgid "could not generate random encryption vector" msgstr "не удалось сгенерировать случайный вектор шифрования" -#: libpq/auth.c:3044 +#: libpq/auth.c:3028 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "не удалось вычислить MD5-хеш пароля: %s" -#: libpq/auth.c:3071 +#: libpq/auth.c:3055 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не удалось создать сокет RADIUS: %m" -#: libpq/auth.c:3087 +#: libpq/auth.c:3071 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не удалось привязаться к локальному сокету RADIUS: %m" -#: libpq/auth.c:3097 +#: libpq/auth.c:3081 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не удалось отправить пакет RADIUS: %m" -#: libpq/auth.c:3131 libpq/auth.c:3157 +#: libpq/auth.c:3115 libpq/auth.c:3141 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "превышено время ожидания ответа RADIUS от %s" -#: libpq/auth.c:3150 +#: libpq/auth.c:3134 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не удалось проверить состояние сокета RADIUS: %m" -#: libpq/auth.c:3180 +#: libpq/auth.c:3164 #, c-format msgid "could not read RADIUS response: %m" msgstr "не удалось прочитать ответ RADIUS: %m" -#: libpq/auth.c:3188 +#: libpq/auth.c:3172 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "ответ RADIUS от %s был отправлен с неверного порта: %d" -#: libpq/auth.c:3196 +#: libpq/auth.c:3180 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "слишком короткий ответ RADIUS от %s: %d" -#: libpq/auth.c:3203 +#: libpq/auth.c:3187 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "в ответе RADIUS от %s испорчена длина: %d (фактическая длина %d)" -#: libpq/auth.c:3211 +#: libpq/auth.c:3195 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "пришёл ответ RADIUS от %s на другой запрос: %d (ожидался %d)" -#: libpq/auth.c:3236 +#: libpq/auth.c:3220 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "не удалось вычислить MD5-хеш для принятого пакета: %s" -#: libpq/auth.c:3246 +#: libpq/auth.c:3230 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "ответ RADIUS от %s содержит неверную подпись MD5" -#: libpq/auth.c:3264 +#: libpq/auth.c:3248 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "ответ RADIUS от %s содержит неверный код (%d) для пользователя \"%s\"" @@ -16449,52 +16975,39 @@ msgstr "не удалось записать файл сервера \"%s\": %m" msgid "large object read request is too large" msgstr "при чтении большого объекта запрошен чрезмерный размер" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 -#: utils/adt/genfile.c:315 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "запрошенная длина не может быть отрицательной" -#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:298 -#: storage/large_object/inv_api.c:310 storage/large_object/inv_api.c:507 -#: storage/large_object/inv_api.c:618 storage/large_object/inv_api.c:808 -#, c-format -msgid "permission denied for large object %u" -msgstr "нет доступа к большому объекту %u" - -#: libpq/be-secure-common.c:71 -#, c-format -msgid "could not read from command \"%s\": %m" -msgstr "не удалось прочитать вывод команды \"%s\": %m" - -#: libpq/be-secure-common.c:91 +#: libpq/be-secure-common.c:94 #, c-format msgid "command \"%s\" failed" msgstr "ошибка команды \"%s\"" -#: libpq/be-secure-common.c:119 +#: libpq/be-secure-common.c:123 #, c-format msgid "could not access private key file \"%s\": %m" msgstr "не удалось обратиться к файлу закрытого ключа \"%s\": %m" -#: libpq/be-secure-common.c:129 +#: libpq/be-secure-common.c:133 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "файл закрытого ключа \"%s\" - не обычный файл" -#: libpq/be-secure-common.c:155 +#: libpq/be-secure-common.c:159 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "" "файл закрытого ключа \"%s\" должен принадлежать пользователю, запускающему " "сервер, или root" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:169 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "к файлу закрытого ключа \"%s\" имеют доступ все или группа" -#: libpq/be-secure-common.c:167 +#: libpq/be-secure-common.c:171 #, c-format msgid "" "File must have permissions u=rw (0600) or less if owned by the database " @@ -16545,82 +17058,82 @@ msgstr "принять контекст безопасности GSSAPI не у msgid "GSSAPI size check error" msgstr "ошибка проверки размера в GSSAPI" -#: libpq/be-secure-openssl.c:125 +#: libpq/be-secure-openssl.c:131 #, c-format msgid "could not create SSL context: %s" msgstr "не удалось создать контекст SSL: %s" -#: libpq/be-secure-openssl.c:151 +#: libpq/be-secure-openssl.c:157 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "не удалось загрузить сертификат сервера \"%s\": %s" -#: libpq/be-secure-openssl.c:171 +#: libpq/be-secure-openssl.c:177 #, c-format msgid "" "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "" "файл закрытого ключа \"%s\" нельзя перезагрузить, так как он защищён паролем" -#: libpq/be-secure-openssl.c:176 +#: libpq/be-secure-openssl.c:182 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "не удалось загрузить файл закрытого ключа \"%s\": %s" -#: libpq/be-secure-openssl.c:185 +#: libpq/be-secure-openssl.c:191 #, 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:198 libpq/be-secure-openssl.c:221 +#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "для параметра \"%s\" значение \"%s\" не поддерживается в данной сборке" -#: libpq/be-secure-openssl.c:208 +#: libpq/be-secure-openssl.c:214 #, c-format msgid "could not set minimum SSL protocol version" msgstr "не удалось задать минимальную версию протокола SSL" -#: libpq/be-secure-openssl.c:231 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set maximum SSL protocol version" msgstr "не удалось задать максимальную версию протокола SSL" -#: libpq/be-secure-openssl.c:247 +#: libpq/be-secure-openssl.c:253 #, c-format msgid "could not set SSL protocol version range" msgstr "не удалось задать диапазон версий протокола SSL" -#: libpq/be-secure-openssl.c:248 +#: libpq/be-secure-openssl.c:254 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "Версия \"%s\" не может быть выше \"%s\"" -#: libpq/be-secure-openssl.c:285 +#: libpq/be-secure-openssl.c:307 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "не удалось установить список шифров (подходящие шифры отсутствуют)" -#: libpq/be-secure-openssl.c:305 +#: libpq/be-secure-openssl.c:327 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "не удалось загрузить файл корневых сертификатов \"%s\": %s" -#: libpq/be-secure-openssl.c:354 +#: libpq/be-secure-openssl.c:376 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "" "не удалось загрузить список отзыва сертификатов SSL из файла \"%s\": %s" -#: libpq/be-secure-openssl.c:362 +#: libpq/be-secure-openssl.c:384 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "" "не удалось загрузить списки отзыва сертификатов SSL из каталога \"%s\": %s" -#: libpq/be-secure-openssl.c:370 +#: libpq/be-secure-openssl.c:392 #, c-format msgid "" "could not load SSL certificate revocation list file \"%s\" or directory " @@ -16629,38 +17142,38 @@ msgstr "" "не удалось загрузить списки отзыва сертификатов SSL из файла \"%s\" или " "каталога \"%s\": %s" -#: libpq/be-secure-openssl.c:428 +#: libpq/be-secure-openssl.c:450 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "" "инициализировать SSL-подключение не удалось: контекст SSL не установлен" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:464 #, c-format msgid "could not initialize SSL connection: %s" msgstr "инициализировать SSL-подключение не удалось: %s" -#: libpq/be-secure-openssl.c:447 +#: libpq/be-secure-openssl.c:472 #, c-format msgid "could not set SSL socket: %s" msgstr "не удалось создать SSL-сокет: %s" -#: libpq/be-secure-openssl.c:503 +#: libpq/be-secure-openssl.c:528 #, c-format msgid "could not accept SSL connection: %m" msgstr "не удалось принять SSL-подключение: %m" -#: libpq/be-secure-openssl.c:507 libpq/be-secure-openssl.c:562 +#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не удалось принять SSL-подключение: обрыв данных" -#: libpq/be-secure-openssl.c:546 +#: libpq/be-secure-openssl.c:573 #, c-format msgid "could not accept SSL connection: %s" msgstr "не удалось принять SSL-подключение: %s" -#: libpq/be-secure-openssl.c:550 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "" "This may indicate that the client does not support any SSL protocol version " @@ -16669,60 +17182,65 @@ msgstr "" "Это может указывать на то, что клиент не поддерживает ни одну версию " "протокола SSL между %s и %s." -#: libpq/be-secure-openssl.c:567 libpq/be-secure-openssl.c:756 -#: libpq/be-secure-openssl.c:826 +#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809 +#: libpq/be-secure-openssl.c:879 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нераспознанный код ошибки SSL: %d" -#: libpq/be-secure-openssl.c:613 +#: libpq/be-secure-openssl.c:622 +#, c-format +msgid "received SSL connection request with unexpected ALPN protocol" +msgstr "получен запрос на SSL-подключение с неизвестным протоколом ALPN" + +#: libpq/be-secure-openssl.c:666 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Имя SSL-сертификата включает нулевой байт" -#: libpq/be-secure-openssl.c:659 +#: libpq/be-secure-openssl.c:712 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "уникальное имя (DN) в SSL-сертификате содержит нулевой байт" -#: libpq/be-secure-openssl.c:745 libpq/be-secure-openssl.c:810 +#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863 #, c-format msgid "SSL error: %s" msgstr "ошибка SSL: %s" -#: libpq/be-secure-openssl.c:987 +#: libpq/be-secure-openssl.c:1038 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не удалось открыть файл параметров DH \"%s\": %m" -#: libpq/be-secure-openssl.c:999 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not load DH parameters file: %s" msgstr "не удалось загрузить файл параметров DH: %s" -#: libpq/be-secure-openssl.c:1009 +#: libpq/be-secure-openssl.c:1060 #, c-format msgid "invalid DH parameters: %s" msgstr "неверные параметры DH: %s" -#: libpq/be-secure-openssl.c:1018 +#: libpq/be-secure-openssl.c:1069 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неверные параметры DH: p - не простое число" -#: libpq/be-secure-openssl.c:1027 +#: libpq/be-secure-openssl.c:1078 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "" "неверные параметры DH: нет подходящего генератора или небезопасное простое " "число" -#: libpq/be-secure-openssl.c:1163 +#: libpq/be-secure-openssl.c:1214 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "Ошибка при проверке клиентского сертификата на глубине %d: %s." -#: libpq/be-secure-openssl.c:1200 +#: libpq/be-secure-openssl.c:1251 #, c-format msgid "" "Failed certificate data (unverified): subject \"%s\", serial number %s, " @@ -16731,178 +17249,173 @@ msgstr "" "Данные ошибочного сертификата (непроверенные): субъект \"%s\", серийный " "номер %s, издатель \"%s\"." -#: libpq/be-secure-openssl.c:1201 +#: libpq/be-secure-openssl.c:1252 msgid "unknown" msgstr "н/д" -#: libpq/be-secure-openssl.c:1292 +#: libpq/be-secure-openssl.c:1389 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не удалось загрузить параметры DH" -#: libpq/be-secure-openssl.c:1300 +#: libpq/be-secure-openssl.c:1397 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не удалось задать параметры DH: %s" -#: libpq/be-secure-openssl.c:1327 +#: libpq/be-secure-openssl.c:1424 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нераспознанное имя кривой: %s" -#: libpq/be-secure-openssl.c:1336 +#: libpq/be-secure-openssl.c:1433 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не удалось создать ключ" -#: libpq/be-secure-openssl.c:1364 +#: libpq/be-secure-openssl.c:1461 msgid "no SSL error reported" msgstr "нет сообщения об ошибке SSL" -#: libpq/be-secure-openssl.c:1381 +#: libpq/be-secure-openssl.c:1479 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: libpq/be-secure-openssl.c:1540 +#: libpq/be-secure-openssl.c:1636 #, c-format msgid "could not create BIO" msgstr "не удалось создать BIO" -#: libpq/be-secure-openssl.c:1550 +#: libpq/be-secure-openssl.c:1646 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не удалось получить NID для объекта ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1558 +#: libpq/be-secure-openssl.c:1654 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не удалось преобразовать NID %d в структуру ASN1_OBJECT" -#: libpq/be-secure.c:207 libpq/be-secure.c:303 -#, c-format -msgid "terminating connection due to unexpected postmaster exit" -msgstr "закрытие подключения из-за неожиданного завершения главного процесса" - -#: libpq/crypt.c:49 +#: libpq/crypt.c:48 #, c-format msgid "Role \"%s\" does not exist." msgstr "Роль \"%s\" не существует." -#: libpq/crypt.c:59 +#: libpq/crypt.c:58 #, c-format msgid "User \"%s\" has no password assigned." msgstr "Пользователь \"%s\" не имеет пароля." -#: libpq/crypt.c:77 +#: libpq/crypt.c:76 #, c-format msgid "User \"%s\" has an expired password." msgstr "Срок действия пароля пользователя \"%s\" истёк." -#: libpq/crypt.c:183 +#: libpq/crypt.c:182 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "" "Пользователь \"%s\" имеет пароль, неподходящий для аутентификации по MD5." -#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 +#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 #, c-format msgid "Password does not match for user \"%s\"." msgstr "Пароль не подходит для пользователя \"%s\"." -#: libpq/crypt.c:285 +#: libpq/crypt.c:284 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "Пароль пользователя \"%s\" представлен в неизвестном формате." -#: libpq/hba.c:332 +#: libpq/hba.c:327 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "неверное регулярное выражение \"%s\": %s" -#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 -#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 -#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 -#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 -#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 -#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 -#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 -#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 -#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 -#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 -#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 -#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 -#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 -#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 +#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 +#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 +#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 +#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 +#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 +#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799 +#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 +#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 +#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 +#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 +#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 +#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 +#: tsearch/ts_locale.c:241 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "строка %d файла конфигурации \"%s\"" -#: libpq/hba.c:462 +#: libpq/hba.c:457 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "отсутствующий файл настройки аутентификации \"%s\" пропускается" -#: libpq/hba.c:614 +#: libpq/hba.c:609 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "открыть файл \"%s\" не удалось: превышен предел вложенности" -#: libpq/hba.c:1221 +#: libpq/hba.c:1216 #, c-format msgid "error enumerating network interfaces: %m" msgstr "ошибка при перечислении сетевых интерфейсов: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1248 +#: libpq/hba.c:1243 #, c-format msgid "" "authentication option \"%s\" is only valid for authentication methods %s" msgstr "параметр проверки подлинности \"%s\" допускается только для методов %s" -#: libpq/hba.c:1268 +#: libpq/hba.c:1263 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "" "для метода проверки подлинности \"%s\" требуется определить аргумент \"%s\"" -#: libpq/hba.c:1292 +#: libpq/hba.c:1287 #, c-format msgid "missing entry at end of line" msgstr "отсутствует запись в конце строки" -#: libpq/hba.c:1305 +#: libpq/hba.c:1300 #, c-format msgid "multiple values in ident field" msgstr "множественные значения в поле ident" -#: libpq/hba.c:1357 +#: libpq/hba.c:1352 #, c-format msgid "multiple values specified for connection type" msgstr "для типа подключения указано несколько значений" -#: libpq/hba.c:1358 +#: libpq/hba.c:1353 #, c-format msgid "Specify exactly one connection type per line." msgstr "Определите в строке единственный тип подключения." -#: libpq/hba.c:1385 +#: libpq/hba.c:1380 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "запись с hostssl недействительна, так как поддержка SSL отключена" -#: libpq/hba.c:1386 +#: libpq/hba.c:1381 #, c-format -msgid "Set ssl = on in postgresql.conf." -msgstr "Установите ssl = on в postgresql.conf." +msgid "Set \"ssl = on\" in postgresql.conf." +msgstr "Установите \"ssl = on\" в postgresql.conf." -#: libpq/hba.c:1394 +#: libpq/hba.c:1389 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "" "запись с hostssl недействительна, так как SSL не поддерживается в этой сборке" -#: libpq/hba.c:1406 +#: libpq/hba.c:1401 #, c-format msgid "" "hostgssenc record cannot match because GSSAPI is not supported by this build" @@ -16910,126 +17423,126 @@ msgstr "" "запись с hostgssenc недействительна, так как GSSAPI не поддерживается в этой " "сборке" -#: libpq/hba.c:1426 +#: libpq/hba.c:1421 #, c-format msgid "invalid connection type \"%s\"" msgstr "неверный тип подключения \"%s\"" -#: libpq/hba.c:1440 +#: libpq/hba.c:1435 #, c-format msgid "end-of-line before database specification" msgstr "конец строки перед определением базы данных" -#: libpq/hba.c:1465 +#: libpq/hba.c:1460 #, c-format msgid "end-of-line before role specification" msgstr "конец строки перед определением роли" -#: libpq/hba.c:1492 +#: libpq/hba.c:1487 #, c-format msgid "end-of-line before IP address specification" msgstr "конец строки перед определением IP-адресов" -#: libpq/hba.c:1503 +#: libpq/hba.c:1498 #, c-format msgid "multiple values specified for host address" msgstr "для адреса узла указано несколько значений" -#: libpq/hba.c:1504 +#: libpq/hba.c:1499 #, c-format msgid "Specify one address range per line." msgstr "Определите в строке один диапазон адресов." -#: libpq/hba.c:1562 +#: libpq/hba.c:1557 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "неверный IP-адрес \"%s\": %s" -#: libpq/hba.c:1582 +#: libpq/hba.c:1577 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "указать одновременно и имя узла, и маску CIDR нельзя: \"%s\"" -#: libpq/hba.c:1596 +#: libpq/hba.c:1591 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "неверная маска CIDR в адресе \"%s\"" -#: libpq/hba.c:1616 +#: libpq/hba.c:1611 #, c-format msgid "end-of-line before netmask specification" msgstr "конец строки перед определением маски сети" -#: libpq/hba.c:1617 +#: libpq/hba.c:1612 #, c-format msgid "" "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "" "Укажите диапазон адресов в формате CIDR или задайте отдельную маску сети." -#: libpq/hba.c:1628 +#: libpq/hba.c:1623 #, c-format msgid "multiple values specified for netmask" msgstr "для сетевой маски указано несколько значений" -#: libpq/hba.c:1642 +#: libpq/hba.c:1637 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "неверная маска IP \"%s\": %s" -#: libpq/hba.c:1662 +#: libpq/hba.c:1657 #, c-format msgid "IP address and mask do not match" msgstr "IP-адрес не соответствует маске" -#: libpq/hba.c:1678 +#: libpq/hba.c:1673 #, c-format msgid "end-of-line before authentication method" msgstr "конец строки перед методом проверки подлинности" -#: libpq/hba.c:1689 +#: libpq/hba.c:1684 #, c-format msgid "multiple values specified for authentication type" msgstr "для типа проверки подлинности указано несколько значений" -#: libpq/hba.c:1690 +#: libpq/hba.c:1685 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Определите в строке единственный тип проверки подлинности." -#: libpq/hba.c:1767 +#: libpq/hba.c:1750 #, c-format msgid "invalid authentication method \"%s\"" msgstr "неверный метод проверки подлинности \"%s\"" -#: libpq/hba.c:1780 +#: libpq/hba.c:1763 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "" "неверный метод проверки подлинности \"%s\": не поддерживается в этой сборке" -#: libpq/hba.c:1803 +#: libpq/hba.c:1786 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "проверка подлинности gssapi для локальных сокетов не поддерживается" -#: libpq/hba.c:1815 +#: libpq/hba.c:1798 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "проверка подлинности peer поддерживается только для локальных сокетов" -#: libpq/hba.c:1833 +#: libpq/hba.c:1816 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "" "проверка подлинности cert поддерживается только для подключений hostssl" -#: libpq/hba.c:1883 +#: libpq/hba.c:1866 #, c-format msgid "authentication option not in name=value format: %s" msgstr "параметр проверки подлинности указан не в формате имя=значение: %s" -#: libpq/hba.c:1927 +#: libpq/hba.c:1910 #, c-format msgid "" "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, " @@ -17038,7 +17551,7 @@ msgstr "" "нельзя использовать ldapbasedn, ldapbinddn, ldapbindpasswd, " "ldapsearchattribute, ldapsearchfilter или ldapurl вместе с ldapprefix" -#: libpq/hba.c:1938 +#: libpq/hba.c:1921 #, c-format msgid "" "authentication method \"ldap\" requires argument \"ldapbasedn\", " @@ -17047,22 +17560,22 @@ msgstr "" "для метода проверки подлинности \"ldap\" требуется установить аргументы " "\"ldapbasedn\" и \"ldapprefix\" или \"ldapsuffix\"" -#: libpq/hba.c:1954 +#: libpq/hba.c:1937 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "нельзя использовать ldapsearchattribute вместе с ldapsearchfilter" -#: libpq/hba.c:1971 +#: libpq/hba.c:1954 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "список серверов RADIUS не может быть пустым" -#: libpq/hba.c:1982 +#: libpq/hba.c:1965 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "список секретов RADIUS не может быть пустым" -#: libpq/hba.c:1999 +#: libpq/hba.c:1982 #, c-format msgid "" "the number of RADIUS secrets (%d) must be 1 or the same as the number of " @@ -17071,7 +17584,7 @@ msgstr "" "количество секретов RADIUS (%d) должно равняться 1 или количеству серверов " "RADIUS (%d)" -#: libpq/hba.c:2015 +#: libpq/hba.c:1998 #, c-format msgid "" "the number of RADIUS ports (%d) must be 1 or the same as the number of " @@ -17080,7 +17593,7 @@ msgstr "" "количество портов RADIUS (%d) должно равняться 1 или количеству серверов " "RADIUS (%d)" -#: libpq/hba.c:2031 +#: libpq/hba.c:2014 #, c-format msgid "" "the number of RADIUS identifiers (%d) must be 1 or the same as the number of " @@ -17089,16 +17602,16 @@ msgstr "" "количество идентификаторов RADIUS (%d) должно равняться 1 или количеству " "серверов RADIUS (%d)" -#: libpq/hba.c:2083 +#: libpq/hba.c:2066 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi и cert" -#: libpq/hba.c:2092 +#: libpq/hba.c:2075 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert можно определить только в строках \"hostssl\"" -#: libpq/hba.c:2109 +#: libpq/hba.c:2092 #, c-format msgid "" "clientcert only accepts \"verify-full\" when using \"cert\" authentication" @@ -17106,95 +17619,95 @@ msgstr "" "с проверкой подлинности \"cert\" для clientcert допускается только значение " "\"verify-full\"" -#: libpq/hba.c:2122 +#: libpq/hba.c:2105 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "неверное значение для clientcert: \"%s\"" -#: libpq/hba.c:2134 +#: libpq/hba.c:2117 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname можно определить только в строках \"hostssl\"" -#: libpq/hba.c:2153 +#: libpq/hba.c:2136 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "неверное значение для clientname: \"%s\"" -#: libpq/hba.c:2186 +#: libpq/hba.c:2169 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "не удалось разобрать URL-адрес LDAP \"%s\": %s" -#: libpq/hba.c:2197 +#: libpq/hba.c:2180 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "неподдерживаемая схема в URL-адресе LDAP: %s" -#: libpq/hba.c:2221 +#: libpq/hba.c:2204 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "URL-адреса LDAP не поддерживаются в этой ОС" -#: libpq/hba.c:2239 +#: libpq/hba.c:2222 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "неверное значение ldapscheme: \"%s\"" -#: libpq/hba.c:2257 +#: libpq/hba.c:2240 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "неверный номер порта LDAP: \"%s\"" -#: libpq/hba.c:2303 libpq/hba.c:2310 +#: libpq/hba.c:2286 libpq/hba.c:2293 msgid "gssapi and sspi" msgstr "gssapi и sspi" -#: libpq/hba.c:2319 libpq/hba.c:2328 +#: libpq/hba.c:2302 libpq/hba.c:2311 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2350 +#: libpq/hba.c:2333 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "не удалось разобрать список серверов RADIUS \"%s\"" -#: libpq/hba.c:2398 +#: libpq/hba.c:2381 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "не удалось разобрать список портов RADIUS \"%s\"" -#: libpq/hba.c:2412 +#: libpq/hba.c:2395 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "неверный номер порта RADIUS: \"%s\"" -#: libpq/hba.c:2434 +#: libpq/hba.c:2417 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "не удалось разобрать список секретов RADIUS \"%s\"" -#: libpq/hba.c:2456 +#: libpq/hba.c:2439 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "не удалось разобрать список идентификаторов RADIUS \"%s\"" -#: libpq/hba.c:2470 +#: libpq/hba.c:2453 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "нераспознанное имя атрибута проверки подлинности: \"%s\"" -#: libpq/hba.c:2662 +#: libpq/hba.c:2645 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "файл конфигурации \"%s\" не содержит записей" -#: libpq/hba.c:2815 +#: libpq/hba.c:2798 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "ошибка при поиске по регулярному выражению для \"%s\": %s" -#: libpq/hba.c:2839 +#: libpq/hba.c:2822 #, c-format msgid "" "regular expression \"%s\" has no subexpressions as requested by " @@ -17203,88 +17716,96 @@ msgstr "" "в регулярном выражении \"%s\" нет подвыражений, требуемых для обратной " "ссылки в \"%s\"" -#: libpq/hba.c:2942 +#: libpq/hba.c:2925 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "" "указанное имя пользователя (%s) не совпадает с именем прошедшего проверку " "(%s)" -#: libpq/hba.c:2962 +#: libpq/hba.c:2945 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "" "нет соответствия в файле сопоставлений \"%s\" для пользователя \"%s\", " "прошедшего проверку как \"%s\"" -#: libpq/pqcomm.c:196 +#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 +#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 +#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 +#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#, c-format +msgid "%s(%s) failed: %m" +msgstr "ошибка в %s(%s): %m" + +#: libpq/pqcomm.c:296 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "не удалось перевести сокет в неблокирующий режим: %m" -#: libpq/pqcomm.c:357 +#: libpq/pqcomm.c:456 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "длина пути Unix-сокета \"%s\" превышает предел (%d байт)" -#: libpq/pqcomm.c:377 +#: libpq/pqcomm.c:476 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "перевести имя узла \"%s\", службы \"%s\" в адрес не удалось: %s" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:480 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "не удалось перевести имя службы \"%s\" в адрес: %s" -#: libpq/pqcomm.c:408 +#: libpq/pqcomm.c:502 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "" "не удалось привязаться ко всем запрошенным адресам: превышен предел " "MAXLISTEN (%d)" -#: libpq/pqcomm.c:417 +#: libpq/pqcomm.c:511 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:420 +#: libpq/pqcomm.c:514 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:423 +#: libpq/pqcomm.c:517 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:521 #, c-format msgid "unrecognized address family %d" msgstr "нераспознанное семейство адресов: %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:451 +#: libpq/pqcomm.c:545 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "не удалось создать сокет %s для адреса \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:477 libpq/pqcomm.c:495 +#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "ошибка в %s(%s) для адреса %s \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:518 +#: libpq/pqcomm.c:615 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "не удалось привязаться к адресу %s \"%s\": %m" -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:619 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Возможно, порт %d занят другим процессом postmaster?" -#: libpq/pqcomm.c:524 +#: libpq/pqcomm.c:621 #, c-format msgid "" "Is another postmaster already running on port %d? If not, wait a few seconds " @@ -17294,128 +17815,120 @@ msgstr "" "попытку через несколько секунд." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:553 +#: libpq/pqcomm.c:650 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "не удалось привязаться к адресу %s \"%s\": %m" -#: libpq/pqcomm.c:561 +#: libpq/pqcomm.c:658 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "для приёма подключений открыт Unix-сокет \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:566 +#: libpq/pqcomm.c:663 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "для приёма подключений по адресу %s \"%s\" открыт порт %d" -#: libpq/pqcomm.c:655 +#: libpq/pqcomm.c:753 #, c-format msgid "group \"%s\" does not exist" msgstr "группа \"%s\" не существует" -#: libpq/pqcomm.c:665 +#: libpq/pqcomm.c:763 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "не удалось установить группу для файла \"%s\": %m" -#: libpq/pqcomm.c:676 +#: libpq/pqcomm.c:774 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "не удалось установить права доступа для файла \"%s\": %m" -#: libpq/pqcomm.c:704 +#: libpq/pqcomm.c:803 #, c-format msgid "could not accept new connection: %m" msgstr "не удалось принять новое подключение: %m" -#: libpq/pqcomm.c:744 libpq/pqcomm.c:753 libpq/pqcomm.c:785 libpq/pqcomm.c:795 -#: libpq/pqcomm.c:1630 libpq/pqcomm.c:1675 libpq/pqcomm.c:1715 -#: libpq/pqcomm.c:1759 libpq/pqcomm.c:1798 libpq/pqcomm.c:1837 -#: libpq/pqcomm.c:1873 libpq/pqcomm.c:1912 -#, c-format -msgid "%s(%s) failed: %m" -msgstr "ошибка в %s(%s): %m" - -#: libpq/pqcomm.c:899 +#: libpq/pqcomm.c:885 #, c-format msgid "there is no client connection" msgstr "нет клиентского подключения" -#: libpq/pqcomm.c:955 libpq/pqcomm.c:1056 +#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 #, c-format msgid "could not receive data from client: %m" msgstr "не удалось получить данные от клиента: %m" -#: libpq/pqcomm.c:1161 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1149 tcop/postgres.c:4533 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "закрытие подключения из-за потери синхронизации протокола" -#: libpq/pqcomm.c:1227 +#: libpq/pqcomm.c:1215 #, c-format msgid "unexpected EOF within message length word" msgstr "неожиданный обрыв данных в слове длины сообщения" -#: libpq/pqcomm.c:1237 +#: libpq/pqcomm.c:1225 #, c-format msgid "invalid message length" msgstr "неверная длина сообщения" -#: libpq/pqcomm.c:1259 libpq/pqcomm.c:1272 +#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 #, c-format msgid "incomplete message from client" msgstr "неполное сообщение от клиента" -#: libpq/pqcomm.c:1383 +#: libpq/pqcomm.c:1401 #, c-format msgid "could not send data to client: %m" msgstr "не удалось послать данные клиенту: %m" -#: libpq/pqcomm.c:1598 +#: libpq/pqcomm.c:1616 #, c-format msgid "%s(%s) failed: error code %d" msgstr "ошибка в %s(%s): код ошибки %d" -#: libpq/pqcomm.c:1687 +#: libpq/pqcomm.c:1705 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "изменение значения keepalives_idle не поддерживается" -#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1846 libpq/pqcomm.c:1921 +#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не поддерживается" -#: libpq/pqformat.c:407 +#: libpq/pqformat.c:404 #, c-format msgid "no data left in message" msgstr "в сообщении не осталось данных" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1507 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 +#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 +#: utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "недостаточно данных осталось в сообщении" -#: libpq/pqformat.c:598 libpq/pqformat.c:627 +#: libpq/pqformat.c:595 libpq/pqformat.c:624 #, c-format msgid "invalid string in message" msgstr "неверная строка в сообщении" -#: libpq/pqformat.c:643 +#: libpq/pqformat.c:640 #, c-format msgid "invalid message format" msgstr "неверный формат сообщения" -#: main/main.c:235 +#: main/main.c:236 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: ошибка WSAStartup: %d\n" -#: main/main.c:329 +#: main/main.c:324 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -17424,7 +17937,7 @@ msgstr "" "%s - сервер PostgreSQL.\n" "\n" -#: main/main.c:330 +#: main/main.c:325 #, c-format msgid "" "Usage:\n" @@ -17435,110 +17948,110 @@ msgstr "" " %s [ПАРАМЕТР]...\n" "\n" -#: main/main.c:331 +#: main/main.c:326 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: main/main.c:332 +#: main/main.c:327 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B ЧИСЛО_БУФ число разделяемых буферов\n" -#: main/main.c:333 +#: main/main.c:328 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c ИМЯ=ЗНАЧЕНИЕ установить параметр выполнения\n" -#: main/main.c:334 +#: main/main.c:329 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C ИМЯ вывести значение параметра выполнения и выйти\n" -#: main/main.c:335 +#: main/main.c:330 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 уровень отладочных сообщений\n" -#: main/main.c:336 +#: main/main.c:331 #, c-format msgid " -D DATADIR database directory\n" -msgstr " -D КАТАЛОГ каталог с данными\n" +msgstr " -D КАТ_ДАННЫХ каталог с данными\n" # well-spelled: ДМГ -#: main/main.c:337 +#: main/main.c:332 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e использовать европейский формат дат (ДМГ)\n" -#: main/main.c:338 +#: main/main.c:333 #, c-format msgid " -F turn fsync off\n" msgstr " -F выключить синхронизацию с ФС\n" -#: main/main.c:339 +#: main/main.c:334 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h ИМЯ имя или IP-адрес для приёма сетевых соединений\n" -#: main/main.c:340 +#: main/main.c:335 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr "" " -i включить соединения TCP/IP (устаревший параметр)\n" -#: main/main.c:341 +#: main/main.c:336 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k КАТАЛОГ расположение Unix-сокетов\n" -#: main/main.c:343 +#: main/main.c:338 #, c-format msgid " -l enable SSL connections\n" msgstr " -l разрешить SSL-подключения\n" # well-spelled: ПОДКЛ -#: main/main.c:345 +#: main/main.c:340 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N МАКС_ПОДКЛ предельное число подключений\n" -#: main/main.c:346 +#: main/main.c:341 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p ПОРТ номер порта для приёма подключений\n" -#: main/main.c:347 +#: main/main.c:342 #, c-format msgid " -s show statistics after each query\n" msgstr " -s показывать статистику после каждого запроса\n" -#: main/main.c:348 +#: main/main.c:343 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S РАБ_ПАМЯТЬ задать объём памяти для сортировки (в КБ)\n" -#: main/main.c:349 +#: main/main.c:344 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: main/main.c:350 +#: main/main.c:345 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --ИМЯ=ЗНАЧЕНИЕ установить параметр выполнения\n" -#: main/main.c:351 +#: main/main.c:346 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config вывести параметры конфигурации и выйти\n" -#: main/main.c:352 +#: main/main.c:347 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: main/main.c:354 +#: main/main.c:349 #, c-format msgid "" "\n" @@ -17547,27 +18060,27 @@ msgstr "" "\n" "Параметры для разработчиков:\n" -#: main/main.c:355 +#: main/main.c:350 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h запретить некоторые типы планов\n" -#: main/main.c:356 +#: main/main.c:351 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O разрешить изменять структуру системных таблиц\n" -#: main/main.c:357 +#: main/main.c:352 #, c-format msgid " -P disable system indexes\n" msgstr " -P отключить системные индексы\n" -#: main/main.c:358 +#: main/main.c:353 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex показать время каждого запроса\n" -#: main/main.c:359 +#: main/main.c:354 #, c-format msgid "" " -T send SIGABRT to all backend processes if one dies\n" @@ -17575,13 +18088,13 @@ msgstr "" " -T посылать сигнал SIGABRT всем серверным процессам\n" " при отключении одного\n" -#: main/main.c:360 +#: main/main.c:355 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr "" " -W СЕК ждать заданное число секунд для подключения отладчика\n" -#: main/main.c:362 +#: main/main.c:357 #, c-format msgid "" "\n" @@ -17590,7 +18103,7 @@ msgstr "" "\n" "Параметры для монопольного режима:\n" -#: main/main.c:363 +#: main/main.c:358 #, c-format msgid "" " --single selects single-user mode (must be first argument)\n" @@ -17598,22 +18111,22 @@ msgstr "" " --single включить монопольный режим\n" " (этот аргумент должен быть первым)\n" -#: main/main.c:364 +#: main/main.c:359 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " ИМЯ_БД база данных (по умолчанию - имя пользователя)\n" -#: main/main.c:365 +#: main/main.c:360 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 переопределить уровень отладочных сообщений\n" -#: main/main.c:366 +#: main/main.c:361 #, c-format msgid " -E echo statement before execution\n" msgstr " -E выводить SQL-операторы перед выполнением\n" -#: main/main.c:367 +#: main/main.c:362 #, c-format msgid "" " -j do not use newline as interactive query delimiter\n" @@ -17621,12 +18134,12 @@ msgstr "" " -j не считать конец строки разделителем интерактивных " "запросов\n" -#: main/main.c:368 main/main.c:374 +#: main/main.c:363 main/main.c:369 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r ИМЯ_ФАЙЛА перенаправить STDOUT и STDERR в указанный файл\n" -#: main/main.c:370 +#: main/main.c:365 #, c-format msgid "" "\n" @@ -17635,7 +18148,7 @@ msgstr "" "\n" "Параметры для режима инициализации:\n" -#: main/main.c:371 +#: main/main.c:366 #, c-format msgid "" " --boot selects bootstrapping mode (must be first argument)\n" @@ -17643,14 +18156,14 @@ msgstr "" " --boot включить режим инициализации\n" " (этот аргумент должен быть первым)\n" -#: main/main.c:372 +#: main/main.c:367 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr "" " --check включить режим проверки (этот аргумент должен быть " "первым)\n" -#: main/main.c:373 +#: main/main.c:368 #, c-format msgid "" " DBNAME database name (mandatory argument in bootstrapping " @@ -17658,7 +18171,7 @@ msgid "" msgstr "" " ИМЯ_БД имя базы данных (необходимо в режиме инициализации)\n" -#: main/main.c:376 +#: main/main.c:371 #, c-format msgid "" "\n" @@ -17675,12 +18188,12 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: main/main.c:380 +#: main/main.c:375 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: main/main.c:391 +#: main/main.c:386 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -17693,12 +18206,12 @@ msgstr "" "должен запускать обычный пользователь. Подробнее о том, как\n" "правильно запускать сервер, вы можете узнать в документации.\n" -#: main/main.c:408 +#: main/main.c:403 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: фактический и эффективный ID пользователя должны совпадать\n" -#: main/main.c:415 +#: main/main.c:410 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -17723,19 +18236,14 @@ msgstr "расширенный тип узла \"%s\" уже существуе msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "методы расширенного узла \"%s\" не зарегистрированы" -#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 +#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "отношение \"%s\" не имеет составного типа" -#: nodes/makefuncs.c:879 -#, c-format -msgid "unrecognized JSON encoding: %s" -msgstr "нераспознанная кодировка JSON: %s" - -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 -#: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2604 +#: parser/parse_coerce.c:2742 parser/parse_coerce.c:2789 +#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 #: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" @@ -17751,7 +18259,7 @@ msgstr "портал \"%s\" с параметрами: %s" msgid "unnamed portal with parameters: %s" msgstr "неименованный портал с параметрами: %s" -#: optimizer/path/joinrels.c:973 +#: optimizer/path/joinrels.c:972 #, c-format msgid "" "FULL JOIN is only supported with merge-joinable or hash-joinable join " @@ -17760,32 +18268,32 @@ msgstr "" "FULL JOIN поддерживается только с условиями, допускающими соединение " "слиянием или хеш-соединение" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:187 -#: parser/parse_merge.c:194 +#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203 +#: rewrite/rewriteHandler.c:1680 #, c-format msgid "cannot execute MERGE on relation \"%s\"" -msgstr "выполнить MERGE для отношение \"%s\" нельзя" +msgstr "выполнить MERGE для отношения \"%s\" нельзя" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1408 +#: optimizer/plan/initsplan.c:1407 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s не может применяться к NULL-содержащей стороне внешнего соединения" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1772 parser/analyze.c:2029 -#: parser/analyze.c:3242 +#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 +#: parser/analyze.c:3247 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несовместимо с UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2076 optimizer/plan/planner.c:4035 +#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4108 #, c-format msgid "could not implement GROUP BY" msgstr "не удалось реализовать GROUP BY" -#: optimizer/plan/planner.c:2077 optimizer/plan/planner.c:4036 -#: optimizer/plan/planner.c:4676 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4109 +#: optimizer/plan/planner.c:4790 optimizer/prep/prepunion.c:1320 #, c-format msgid "" "Some of the datatypes only support hashing, while others only support " @@ -17794,77 +18302,77 @@ msgstr "" "Одни типы данных поддерживают только хеширование, а другие - только " "сортировку." -#: optimizer/plan/planner.c:4675 +#: optimizer/plan/planner.c:4789 #, c-format msgid "could not implement DISTINCT" msgstr "не удалось реализовать DISTINCT" -#: optimizer/plan/planner.c:6014 +#: optimizer/plan/planner.c:6134 #, c-format msgid "could not implement window PARTITION BY" msgstr "не удалось реализовать PARTITION BY для окна" -#: optimizer/plan/planner.c:6015 +#: optimizer/plan/planner.c:6135 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Столбцы, разбивающие окна, должны иметь сортируемые типы данных." -#: optimizer/plan/planner.c:6019 +#: optimizer/plan/planner.c:6139 #, c-format msgid "could not implement window ORDER BY" msgstr "не удалось реализовать ORDER BY для окна" -#: optimizer/plan/planner.c:6020 +#: optimizer/plan/planner.c:6140 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Столбцы, сортирующие окна, должны иметь сортируемые типы данных." -#: optimizer/prep/prepunion.c:516 +#: optimizer/prep/prepunion.c:467 #, c-format msgid "could not implement recursive UNION" msgstr "не удалось реализовать рекурсивный UNION" -#: optimizer/prep/prepunion.c:517 +#: optimizer/prep/prepunion.c:468 #, c-format msgid "All column datatypes must be hashable." msgstr "Все столбцы должны иметь хешируемые типы данных." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1052 +#: optimizer/prep/prepunion.c:1319 #, c-format msgid "could not implement %s" msgstr "не удалось реализовать %s" -#: optimizer/util/clauses.c:4933 +#: optimizer/util/clauses.c:4963 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "внедрённая в код SQL-функция \"%s\"" -#: optimizer/util/plancat.c:154 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "" "обращаться к временным или нежурналируемым отношениям в процессе " "восстановления нельзя" -#: optimizer/util/plancat.c:726 +#: optimizer/util/plancat.c:768 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "" "указания со ссылкой на всю строку для выбора уникального индекса не " "поддерживаются" -#: optimizer/util/plancat.c:743 +#: optimizer/util/plancat.c:785 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "ограничению в ON CONFLICT не соответствует индекс" -#: optimizer/util/plancat.c:793 +#: optimizer/util/plancat.c:835 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE не поддерживается с ограничениями-исключениями" -#: optimizer/util/plancat.c:898 +#: optimizer/util/plancat.c:945 #, c-format msgid "" "there is no unique or exclusion constraint matching the ON CONFLICT " @@ -17873,22 +18381,22 @@ msgstr "" "нет уникального ограничения или ограничения-исключения, соответствующего " "указанию ON CONFLICT" -#: parser/analyze.c:826 parser/analyze.c:1551 +#: parser/analyze.c:824 parser/analyze.c:1550 #, c-format msgid "VALUES lists must all be the same length" msgstr "списки VALUES должны иметь одинаковую длину" -#: parser/analyze.c:1028 +#: parser/analyze.c:1027 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT содержит больше выражений, чем целевых столбцов" -#: parser/analyze.c:1046 +#: parser/analyze.c:1045 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT содержит больше целевых столбцов, чем выражений" -#: parser/analyze.c:1050 +#: parser/analyze.c:1049 #, c-format msgid "" "The insertion source is a row expression containing the same number of " @@ -17897,13 +18405,13 @@ msgstr "" "Источником данных является строка, включающая столько же столбцов, сколько " "требуется для INSERT. Вы намеренно использовали скобки?" -#: parser/analyze.c:1358 parser/analyze.c:1745 +#: parser/analyze.c:1357 parser/analyze.c:1744 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO здесь не допускается" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1674 parser/analyze.c:3474 +#: parser/analyze.c:1673 parser/analyze.c:3479 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s нельзя применять к VALUES" @@ -17947,12 +18455,17 @@ msgstr "" msgid "each %s query must have the same number of columns" msgstr "все запросы в %s должны возвращать одинаковое число столбцов" -#: parser/analyze.c:2584 +#: parser/analyze.c:2535 +#, c-format +msgid "SET target columns cannot be qualified with the relation name." +msgstr "К именам целевых столбцов в SET нельзя добавлять имя отношения." + +#: parser/analyze.c:2589 #, c-format msgid "RETURNING must have at least one column" msgstr "в RETURNING должен быть минимум один столбец" -#: parser/analyze.c:2687 +#: parser/analyze.c:2692 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" @@ -17960,234 +18473,234 @@ msgstr[0] "источник присваиваемого значения выд msgstr[1] "источник присваиваемого значения выдал %d столбца" msgstr[2] "источник присваиваемого значения выдал %d столбцов" -#: parser/analyze.c:2748 +#: parser/analyze.c:2753 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "переменная \"%s\" имеет тип %s, а выражение - тип %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2873 parser/analyze.c:2881 +#: parser/analyze.c:2878 parser/analyze.c:2886 #, c-format msgid "cannot specify both %s and %s" msgstr "указать %s и %s одновременно нельзя" -#: parser/analyze.c:2901 +#: parser/analyze.c:2906 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR не может содержать операторы, изменяющие данные, в WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2914 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не поддерживается" -#: parser/analyze.c:2912 +#: parser/analyze.c:2917 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Сохраняемые курсоры должны быть READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2925 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s не поддерживается" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2931 +#: parser/analyze.c:2936 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не допускается" -#: parser/analyze.c:2934 +#: parser/analyze.c:2939 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Независимые курсоры должны быть READ ONLY." -#: parser/analyze.c:3028 +#: parser/analyze.c:3033 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "" "в материализованных представлениях не должны использоваться операторы, " "изменяющие данные в WITH" -#: parser/analyze.c:3038 +#: parser/analyze.c:3043 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "" "в материализованных представлениях не должны использоваться временные " "таблицы и представления" -#: parser/analyze.c:3048 +#: parser/analyze.c:3053 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "" "определять материализованные представления со связанными параметрами нельзя" -#: parser/analyze.c:3060 +#: parser/analyze.c:3065 #, c-format msgid "materialized views cannot be unlogged" msgstr "материализованные представления не могут быть нежурналируемыми" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3249 +#: parser/analyze.c:3254 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s несовместимо с предложением DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3256 +#: parser/analyze.c:3261 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s несовместимо с предложением GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3263 +#: parser/analyze.c:3268 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s несовместимо с предложением HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3270 +#: parser/analyze.c:3275 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s несовместимо с агрегатными функциями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3277 +#: parser/analyze.c:3282 #, c-format msgid "%s is not allowed with window functions" msgstr "%s несовместимо с оконными функциями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3284 +#: parser/analyze.c:3289 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "" "%s не допускается с функциями, возвращающие множества, в списке результатов" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3383 +#: parser/analyze.c:3388 #, 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:3447 +#: parser/analyze.c:3452 #, 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:3456 +#: parser/analyze.c:3461 #, 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:3465 +#: parser/analyze.c:3470 #, 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:3483 +#: parser/analyze.c:3488 #, 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:3492 +#: parser/analyze.c:3497 #, 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:3512 +#: parser/analyze.c:3517 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "отношение \"%s\" в определении %s отсутствует в предложении FROM" -#: parser/parse_agg.c:209 parser/parse_oper.c:227 +#: parser/parse_agg.c:210 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "для типа %s не удалось найти оператор сортировки" -#: parser/parse_agg.c:211 +#: parser/parse_agg.c:212 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Агрегатным функциям с DISTINCT необходимо сортировать входные данные." -#: parser/parse_agg.c:269 +#: parser/parse_agg.c:270 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "у GROUPING должно быть меньше 32 аргументов" -#: parser/parse_agg.c:372 +#: parser/parse_agg.c:373 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатные функции нельзя применять в условиях JOIN" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:375 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операции группировки нельзя применять в условиях JOIN" -#: parser/parse_agg.c:386 +#: parser/parse_agg.c:385 msgid "" "aggregate functions are not allowed in FROM clause of their own query level" msgstr "" "агрегатные функции нельзя применять в предложении FROM их уровня запроса" -#: parser/parse_agg.c:388 +#: parser/parse_agg.c:387 msgid "" "grouping operations are not allowed in FROM clause of their own query level" msgstr "" "операции группировки нельзя применять в предложении FROM их уровня запроса" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатные функции нельзя применять в функциях во FROM" -#: parser/parse_agg.c:395 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "операции группировки нельзя применять в функциях во FROM" -#: parser/parse_agg.c:403 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатные функции нельзя применять в выражениях политик" -#: parser/parse_agg.c:405 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "операции группировки нельзя применять в выражениях политик" -#: parser/parse_agg.c:422 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатные функции нельзя применять в указании RANGE для окна" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "операции группировки нельзя применять в указании RANGE для окна" -#: parser/parse_agg.c:429 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатные функции нельзя применять в указании ROWS для окна" -#: parser/parse_agg.c:431 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "операции группировки нельзя применять в указании ROWS для окна" -#: parser/parse_agg.c:436 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатные функции нельзя применять в указании GROUPS для окна" -#: parser/parse_agg.c:438 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "операции группировки нельзя применять в указании GROUPS для окна" -#: parser/parse_agg.c:451 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатные функции нельзя применять в условиях MERGE WHEN" -#: parser/parse_agg.c:453 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операции группировки нельзя применять в условиях MERGE WHEN" @@ -18298,7 +18811,7 @@ msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "операции группировки нельзя применять в условиях COPY FROM WHERE" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:597 parser/parse_clause.c:1956 +#: parser/parse_agg.c:597 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "агрегатные функции нельзя применять в конструкции %s" @@ -18325,8 +18838,8 @@ msgstr "" "вызовы агрегатных функций не могут включать вызовы функций, возвращающих " "множества" -#: parser/parse_agg.c:780 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245 +#: parser/parse_func.c:885 #, c-format msgid "" "You might be able to move the set-returning function into a LATERAL FROM " @@ -18360,82 +18873,82 @@ msgstr "оконные функции нельзя применять в опр msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "оконные функции нельзя применять в условиях MERGE WHEN" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:926 msgid "window functions are not allowed in check constraints" msgstr "оконные функции нельзя применять в ограничениях-проверках" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:930 msgid "window functions are not allowed in DEFAULT expressions" msgstr "оконные функции нельзя применять в выражениях DEFAULT" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:933 msgid "window functions are not allowed in index expressions" msgstr "оконные функции нельзя применять в выражениях индексов" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:936 msgid "window functions are not allowed in statistics expressions" msgstr "оконные функции нельзя применять в выражениях статистики" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:939 msgid "window functions are not allowed in index predicates" msgstr "оконные функции нельзя применять в предикатах индексов" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:942 msgid "window functions are not allowed in transform expressions" msgstr "оконные функции нельзя применять в выражениях преобразований" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:945 msgid "window functions are not allowed in EXECUTE parameters" msgstr "оконные функции нельзя применять в параметрах EXECUTE" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:948 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "оконные функции нельзя применять в условиях WHEN для триггеров" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in partition bound" msgstr "оконные функции нельзя применять в выражении границы секции" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:954 msgid "window functions are not allowed in partition key expressions" msgstr "оконные функции нельзя применять в выражениях ключа секционирования" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:957 msgid "window functions are not allowed in CALL arguments" msgstr "оконные функции нельзя применять в аргументах CALL" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:960 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "оконные функции нельзя применять в условиях COPY FROM WHERE" -#: parser/parse_agg.c:962 +#: parser/parse_agg.c:963 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:985 parser/parse_clause.c:1965 +#: parser/parse_agg.c:986 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "оконные функции нельзя применять в конструкции %s" -#: parser/parse_agg.c:1019 parser/parse_clause.c:2798 +#: parser/parse_agg.c:1020 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "окно \"%s\" не существует" -#: parser/parse_agg.c:1107 +#: parser/parse_agg.c:1108 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "слишком много наборов группирования (при максимуме 4096)" -#: parser/parse_agg.c:1247 +#: parser/parse_agg.c:1248 #, c-format msgid "" "aggregate functions are not allowed in a recursive query's recursive term" msgstr "" "в рекурсивной части рекурсивного запроса агрегатные функции недопустимы" -#: parser/parse_agg.c:1440 +#: parser/parse_agg.c:1441 #, c-format msgid "" "column \"%s.%s\" must appear in the GROUP BY clause or be used in an " @@ -18444,7 +18957,7 @@ msgstr "" "столбец \"%s.%s\" должен фигурировать в предложении GROUP BY или " "использоваться в агрегатной функции" -#: parser/parse_agg.c:1443 +#: parser/parse_agg.c:1444 #, c-format msgid "" "Direct arguments of an ordered-set aggregate must use only grouped columns." @@ -18452,13 +18965,13 @@ msgstr "" "Прямые аргументы сортирующей агрегатной функции могут включать только " "группируемые столбцы." -#: parser/parse_agg.c:1448 +#: parser/parse_agg.c:1449 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "подзапрос использует негруппированный столбец \"%s.%s\" из внешнего запроса" -#: parser/parse_agg.c:1612 +#: parser/parse_agg.c:1613 #, c-format msgid "" "arguments to GROUPING must be grouping expressions of the associated query " @@ -18467,25 +18980,25 @@ msgstr "" "аргументами GROUPING должны быть выражения группирования для " "соответствующего уровня запроса" -#: parser/parse_clause.c:195 +#: parser/parse_clause.c:193 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "отношение \"%s\" не может быть целевым в операторе, изменяющем данные" -#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 +#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "" "функции, возвращающие множества, должны находиться на верхнем уровне FROM" -#: parser/parse_clause.c:611 +#: parser/parse_clause.c:609 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "" "для одной и той же функции нельзя задать разные списки с определениями " "столбцов" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:642 #, c-format msgid "" "ROWS FROM() with multiple functions cannot have a column definition list" @@ -18493,7 +19006,7 @@ msgstr "" "у ROWS FROM() с несколькими функциями не может быть списка с определениями " "столбцов" -#: parser/parse_clause.c:645 +#: parser/parse_clause.c:643 #, c-format msgid "" "Put a separate column definition list for each function inside ROWS FROM()." @@ -18501,14 +19014,14 @@ msgstr "" "Добавьте отдельные списки с определениями столбцов для каждой функции в ROWS " "FROM()." -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:649 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "" "у UNNEST() с несколькими аргументами не может быть списка с определениями " "столбцов" -#: parser/parse_clause.c:652 +#: parser/parse_clause.c:650 #, c-format msgid "" "Use separate UNNEST() calls inside ROWS FROM(), and attach a column " @@ -18517,43 +19030,43 @@ msgstr "" "Напишите отдельные вызовы UNNEST() внутри ROWS FROM() и добавьте список " "определений столбцов к каждому." -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:657 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "" "WITH ORDINALITY нельзя использовать со списком с определениями столбцов" -#: parser/parse_clause.c:660 +#: parser/parse_clause.c:658 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "Поместите список определений столбцов внутрь ROWS FROM()." -#: parser/parse_clause.c:760 +#: parser/parse_clause.c:762 parser/parse_jsontable.c:295 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "FOR ORDINALITY допускается только для одного столбца" -#: parser/parse_clause.c:821 +#: parser/parse_clause.c:823 #, c-format msgid "column name \"%s\" is not unique" msgstr "имя столбца \"%s\" не уникально" -#: parser/parse_clause.c:863 +#: parser/parse_clause.c:865 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "имя пространства имён \"%s\" не уникально" -#: parser/parse_clause.c:873 +#: parser/parse_clause.c:875 #, c-format msgid "only one default namespace is allowed" msgstr "допускается только одно пространство имён по умолчанию" -#: parser/parse_clause.c:933 +#: parser/parse_clause.c:935 #, c-format msgid "tablesample method %s does not exist" msgstr "метод %s для получения выборки не существует" -#: parser/parse_clause.c:955 +#: parser/parse_clause.c:957 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" @@ -18561,104 +19074,104 @@ msgstr[0] "метод %s для получения выборки требует msgstr[1] "метод %s для получения выборки требует аргументов: %d, получено: %d" msgstr[2] "метод %s для получения выборки требует аргументов: %d, получено: %d" -#: parser/parse_clause.c:989 +#: parser/parse_clause.c:991 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "метод %s для получения выборки не поддерживает REPEATABLE" -#: parser/parse_clause.c:1138 +#: parser/parse_clause.c:1144 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "" "предложение TABLESAMPLE можно применять только к таблицам и " "материализованным представлениям" -#: parser/parse_clause.c:1325 +#: parser/parse_clause.c:1331 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "имя столбца \"%s\" фигурирует в предложении USING неоднократно" -#: parser/parse_clause.c:1340 +#: parser/parse_clause.c:1346 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "имя общего столбца \"%s\" фигурирует в таблице слева неоднократно" -#: parser/parse_clause.c:1349 +#: parser/parse_clause.c:1355 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "в таблице слева нет столбца \"%s\", указанного в предложении USING" -#: parser/parse_clause.c:1364 +#: parser/parse_clause.c:1370 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "имя общего столбца \"%s\" фигурирует в таблице справа неоднократно" -#: parser/parse_clause.c:1373 +#: parser/parse_clause.c:1379 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "в таблице справа нет столбца \"%s\", указанного в предложении USING" -#: parser/parse_clause.c:1901 +#: parser/parse_clause.c:1907 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "" "количество строк в FETCH FIRST ... WITH TIES должно быть отличным от NULL" #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1926 +#: parser/parse_clause.c:1932 #, c-format msgid "argument of %s must not contain variables" msgstr "аргумент %s не может содержать переменные" #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2091 +#: parser/parse_clause.c:2097 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "выражение %s \"%s\" неоднозначно" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2119 +#: parser/parse_clause.c:2125 #, c-format msgid "non-integer constant in %s" msgstr "не целочисленная константа в %s" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2141 +#: parser/parse_clause.c:2147 #, c-format msgid "%s position %d is not in select list" msgstr "в списке выборки %s нет элемента %d" -#: parser/parse_clause.c:2580 +#: parser/parse_clause.c:2586 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE имеет ограничение в 12 элементов" -#: parser/parse_clause.c:2786 +#: parser/parse_clause.c:2792 #, c-format msgid "window \"%s\" is already defined" msgstr "окно \"%s\" уже определено" -#: parser/parse_clause.c:2847 +#: parser/parse_clause.c:2853 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "переопределить предложение PARTITION BY для окна \"%s\" нельзя" -#: parser/parse_clause.c:2859 +#: parser/parse_clause.c:2865 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "переопределить предложение ORDER BY для окна \"%s\" нельзя" -#: parser/parse_clause.c:2889 parser/parse_clause.c:2895 +#: parser/parse_clause.c:2895 parser/parse_clause.c:2901 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "скопировать окно \"%s\", имеющее предложение рамки, нельзя" -#: parser/parse_clause.c:2897 +#: parser/parse_clause.c:2903 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "Уберите скобки в предложении OVER." -#: parser/parse_clause.c:2917 +#: parser/parse_clause.c:2923 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" @@ -18666,12 +19179,12 @@ msgstr "" "для RANGE со смещением PRECEDING/FOLLOWING требуется ровно один столбец в " "ORDER BY" -#: parser/parse_clause.c:2940 +#: parser/parse_clause.c:2946 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "для режима GROUPS требуется предложение ORDER BY" -#: parser/parse_clause.c:3011 +#: parser/parse_clause.c:3016 #, c-format msgid "" "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument " @@ -18680,68 +19193,68 @@ msgstr "" "для агрегатной функции с DISTINCT, выражения ORDER BY должны быть в списке " "аргументов" -#: parser/parse_clause.c:3012 +#: parser/parse_clause.c:3017 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "" "в конструкции SELECT DISTINCT выражения ORDER BY должны быть в списке выборки" -#: parser/parse_clause.c:3044 +#: parser/parse_clause.c:3049 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "агрегатной функции с DISTINCT нужен минимум один аргумент" -#: parser/parse_clause.c:3045 +#: parser/parse_clause.c:3050 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "в SELECT DISTINCT нужен минимум один столбец" -#: parser/parse_clause.c:3111 parser/parse_clause.c:3143 +#: parser/parse_clause.c:3116 parser/parse_clause.c:3148 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "" "выражения SELECT DISTINCT ON должны соответствовать начальным выражениям " "ORDER BY" -#: parser/parse_clause.c:3221 +#: parser/parse_clause.c:3226 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC нельзя использовать в ON CONFLICT" -#: parser/parse_clause.c:3227 +#: parser/parse_clause.c:3232 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST нельзя использовать в ON CONFLICT" -#: parser/parse_clause.c:3306 +#: parser/parse_clause.c:3311 #, c-format msgid "" "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "" "в ON CONFLICT DO UPDATE требуется наводящее указание или имя ограничения" -#: parser/parse_clause.c:3307 +#: parser/parse_clause.c:3312 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "Например: ON CONFLICT (имя_столбца)." -#: parser/parse_clause.c:3318 +#: parser/parse_clause.c:3323 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT с таблицами системного каталога не поддерживается" -#: parser/parse_clause.c:3326 +#: parser/parse_clause.c:3331 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "" "ON CONFLICT не поддерживается для таблицы \"%s\", служащей таблицей каталога" -#: parser/parse_clause.c:3457 +#: parser/parse_clause.c:3462 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "оператор %s не годится для сортировки" -#: parser/parse_clause.c:3459 +#: parser/parse_clause.c:3464 #, c-format msgid "" "Ordering operators must be \"<\" or \">\" members of btree operator families." @@ -18749,14 +19262,14 @@ msgstr "" "Операторы сортировки должны быть членами \"<\" или \">\" семейств операторов " "btree." -#: parser/parse_clause.c:3770 +#: parser/parse_clause.c:3775 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "" "RANGE со смещением PRECEDING/FOLLOWING не поддерживается для типа столбца %s" -#: parser/parse_clause.c:3776 +#: parser/parse_clause.c:3781 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s " @@ -18765,12 +19278,12 @@ msgstr "" "RANGE со смещением PRECEDING/FOLLOWING не поддерживается для типа столбца %s " "и типа смещения %s" -#: parser/parse_clause.c:3779 +#: parser/parse_clause.c:3784 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "Приведите значение смещения к подходящему типу." -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3789 #, c-format msgid "" "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for " @@ -18779,15 +19292,15 @@ msgstr "" "RANGE со смещением PRECEDING/FOLLOWING допускает несколько интерпретаций для " "типа столбца %s и типа смещения %s" -#: parser/parse_clause.c:3787 +#: parser/parse_clause.c:3792 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "Приведите значение смещения в точности к желаемому типу." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:999 +#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405 +#: parser/parse_expr.c:3634 parser/parse_target.c:998 #, c-format msgid "cannot cast type %s to %s" msgstr "привести тип %s к %s нельзя" @@ -18822,112 +19335,112 @@ 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:1383 +#: parser/parse_coerce.c:1420 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "в конструкции %s типы %s и %s не имеют общего" -#: parser/parse_coerce.c:1499 +#: parser/parse_coerce.c:1536 #, 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:1551 +#: parser/parse_coerce.c:1588 #, c-format msgid "%s could not convert type %s to %s" msgstr "в конструкции %s нельзя преобразовать тип %s в %s" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 -#: parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 -#: parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2191 parser/parse_coerce.c:2211 +#: parser/parse_coerce.c:2231 parser/parse_coerce.c:2252 +#: parser/parse_coerce.c:2307 parser/parse_coerce.c:2341 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "аргументы, объявленные как \"%s\", должны быть однотипными" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 +#: parser/parse_coerce.c:2286 parser/parse_coerce.c:2399 #: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "аргумент, объявленный как \"%s\", оказался не массивом, а типом %s" -#: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 +#: parser/parse_coerce.c:2319 parser/parse_coerce.c:2469 #: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "аргумент, объявленный как \"%s\", имеет не диапазонный тип, а %s" -#: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 +#: parser/parse_coerce.c:2353 parser/parse_coerce.c:2433 +#: parser/parse_coerce.c:2566 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "аргумент, объявленный как \"%s\", имеет не мультидиапазонный тип, а %s" -#: parser/parse_coerce.c:2353 +#: parser/parse_coerce.c:2390 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "тип элемента аргумента \"anyarray\" определить нельзя" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 -#: parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2447 +#: parser/parse_coerce.c:2486 parser/parse_coerce.c:2552 #, c-format msgid "argument declared %s is not consistent with argument declared %s" msgstr "аргумент, объявленный как \"%s\", не согласуется с аргументом %s" -#: parser/parse_coerce.c:2474 +#: parser/parse_coerce.c:2511 #, c-format msgid "could not determine polymorphic type because input has type %s" msgstr "" "не удалось определить полиморфный тип, так как входные аргументы имеют тип %s" -#: parser/parse_coerce.c:2488 +#: parser/parse_coerce.c:2525 #, c-format msgid "type matched to anynonarray is an array type: %s" msgstr "" "в нарушение объявления \"anynonarray\" соответствующий аргумент оказался " "массивом: %s" -#: parser/parse_coerce.c:2498 +#: parser/parse_coerce.c:2535 #, c-format msgid "type matched to anyenum is not an enum type: %s" msgstr "" "в нарушение объявления \"anyenum\" соответствующий аргумент оказался не " "перечислением: %s" -#: parser/parse_coerce.c:2559 +#: parser/parse_coerce.c:2596 #, c-format msgid "arguments of anycompatible family cannot be cast to a common type" msgstr "" "аргументы семейства anycompatible не могут быть приведены к общему типу" -#: parser/parse_coerce.c:2577 parser/parse_coerce.c:2598 -#: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 -#: parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2614 parser/parse_coerce.c:2635 +#: parser/parse_coerce.c:2685 parser/parse_coerce.c:2690 +#: parser/parse_coerce.c:2754 parser/parse_coerce.c:2766 #, c-format msgid "could not determine polymorphic type %s because input has type %s" msgstr "" "не удалось определить полиморфный тип %s, так как входные аргументы имеют " "тип %s" -#: parser/parse_coerce.c:2587 +#: parser/parse_coerce.c:2624 #, c-format msgid "anycompatiblerange type %s does not match anycompatible type %s" msgstr "тип %s (anycompatiblerange) не соответствует типу %s (anycompatible)" -#: parser/parse_coerce.c:2608 +#: parser/parse_coerce.c:2645 #, c-format msgid "anycompatiblemultirange type %s does not match anycompatible type %s" msgstr "" "тип %s (anycompatiblemultirange) не соответствует типу %s (anycompatible)" -#: parser/parse_coerce.c:2622 +#: parser/parse_coerce.c:2659 #, c-format msgid "type matched to anycompatiblenonarray is an array type: %s" msgstr "" "в нарушение объявления \"anycompatiblenonarray\" соответствующий аргумент " "оказался массивом: %s" -#: parser/parse_coerce.c:2857 +#: parser/parse_coerce.c:2894 #, c-format msgid "" "A result of type %s requires at least one input of type anyrange or " @@ -18936,7 +19449,7 @@ msgstr "" "Для результата типа %s требуется минимум один аргумент типа anyrange или " "anymultirange." -#: parser/parse_coerce.c:2874 +#: parser/parse_coerce.c:2911 #, c-format msgid "" "A result of type %s requires at least one input of type anycompatiblerange " @@ -18945,7 +19458,7 @@ msgstr "" "Для результата типа %s требуется минимум один аргумент типа " "anycompatiblerange или anycompatiblemultirange." -#: parser/parse_coerce.c:2886 +#: parser/parse_coerce.c:2923 #, c-format msgid "" "A result of type %s requires at least one input of type anyelement, " @@ -18954,7 +19467,7 @@ msgstr "" "Для результата типа %s требуется минимум один аргумент типа anyelement, " "anyarray, anynonarray, anyenum, anyrange или anymultirange." -#: parser/parse_coerce.c:2898 +#: parser/parse_coerce.c:2935 #, c-format msgid "" "A result of type %s requires at least one input of type anycompatible, " @@ -18965,7 +19478,7 @@ msgstr "" "anycompatiblearray, anycompatiblenonarray, anycompatiblerange или " "anycompatiblemultirange." -#: parser/parse_coerce.c:2928 +#: parser/parse_coerce.c:2965 msgid "A result of type internal requires at least one input of type internal." msgstr "" "Для результата типа internal требуется минимум один аргумент типа internal." @@ -19024,22 +19537,17 @@ msgstr "рекурсивная ссылка на запрос \"%s\" не дол msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "рекурсивная ссылка на запрос \"%s\" не должна фигурировать в EXCEPT" -#: parser/parse_cte.c:133 -#, c-format -msgid "MERGE not supported in WITH query" -msgstr "MERGE не поддерживается в запросе WITH" - -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:136 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "имя запроса WITH \"%s\" указано неоднократно" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:308 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "не удалось найти оператор неравенства для типа %s" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:335 #, c-format msgid "" "WITH clause containing a data-modifying statement must be at the top level" @@ -19047,7 +19555,7 @@ msgstr "" "предложение WITH, содержащее оператор, изменяющий данные, должно быть на " "верхнем уровне" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:384 #, c-format msgid "" "recursive query \"%s\" column %d has type %s in non-recursive term but type " @@ -19056,12 +19564,12 @@ msgstr "" "в рекурсивном запросе \"%s\" столбец %d имеет тип %s в нерекурсивной части, " "но в результате тип %s" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:390 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Приведите результат нерекурсивной части к правильному типу." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:395 #, c-format msgid "" "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term " @@ -19070,43 +19578,43 @@ msgstr "" "в рекурсивном запросе \"%s\" у столбца %d правило сортировки \"%s\" в не " "рекурсивной части, но в результате правило \"%s\"" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:399 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "" "Измените правило сортировки в нерекурсивной части, добавив предложение " "COLLATE." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:420 #, c-format msgid "WITH query is not recursive" msgstr "запрос WITH не рекурсивный" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:451 #, c-format msgid "" "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "" "с предложением SEARCH или CYCLE в левой стороне UNION должен быть SELECT" -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:456 #, c-format msgid "" "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "" "с предложением SEARCH или CYCLE в правой стороне UNION должен быть SELECT" -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:471 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "столбец поиска \"%s\" отсутствует в списке столбцов запроса WITH" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" specified more than once" msgstr "столбец поиска \"%s\" указан неоднократно" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:487 #, c-format msgid "" "search sequence column name \"%s\" already used in WITH query column list" @@ -19114,64 +19622,64 @@ msgstr "" "имя столбца последовательности поиска \"%s\" уже используется в списке " "столбцов запроса WITH" -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:504 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "столбец цикла \"%s\" отсутствует в списке столбцов запроса WITH" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "столбец цикла \"%s\" указан неоднократно" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:520 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "" "имя столбца пометки цикла \"%s\" уже используется в списке столбцов запроса " "WITH" -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:527 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "" "имя столбца пути цикла \"%s\" уже используется в списке столбцов запроса WITH" -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:535 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "имя столбца пометки цикла совпадает с именем столбца пути цикла" -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:545 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "" "имя столбца последовательности поиска совпадает с именем столбца пометки " "цикла" -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "" "имя столбца последовательности поиска совпадает с именем столбца пути цикла" -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:636 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "запрос WITH \"%s\" содержит столбцов: %d, но указано: %d" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:816 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "взаимная рекурсия между элементами WITH не реализована" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:868 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "" "рекурсивный запрос \"%s\" не должен содержать операторов, изменяющих данные" -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:876 #, c-format msgid "" "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] " @@ -19180,102 +19688,110 @@ msgstr "" "рекурсивный запрос \"%s\" должен иметь форму {нерекурсивная часть} UNION " "[ALL] {рекурсивная часть}" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:911 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY в рекурсивном запросе не поддерживается" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:917 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET в рекурсивном запросе не поддерживается" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:923 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT в рекурсивном запросе не поддерживается" -#: parser/parse_cte.c:944 +#: parser/parse_cte.c:929 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE в рекурсивном запросе не поддерживается" -#: parser/parse_cte.c:1001 +#: parser/parse_cte.c:1008 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "рекурсивная ссылка на запрос \"%s\" указана неоднократно" -#: parser/parse_expr.c:294 +#: parser/parse_expr.c:313 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT не допускается в данном контексте" -#: parser/parse_expr.c:371 parser/parse_relation.c:3697 -#: parser/parse_relation.c:3707 parser/parse_relation.c:3725 -#: parser/parse_relation.c:3732 parser/parse_relation.c:3746 +#: parser/parse_expr.c:406 parser/parse_relation.c:3691 +#: parser/parse_relation.c:3701 parser/parse_relation.c:3719 +#: parser/parse_relation.c:3726 parser/parse_relation.c:3740 #, c-format msgid "column %s.%s does not exist" msgstr "столбец %s.%s не существует" -#: parser/parse_expr.c:383 +#: parser/parse_expr.c:418 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "столбец \"%s\" не найден в типе данных %s" -#: parser/parse_expr.c:389 +#: parser/parse_expr.c:424 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "не удалось идентифицировать столбец \"%s\" в типе записи" # skip-rule: space-before-period -#: parser/parse_expr.c:395 +#: parser/parse_expr.c:430 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "" "запись имени столбца .%s применена к типу %s, который не является составным" -#: parser/parse_expr.c:426 parser/parse_target.c:733 +#: parser/parse_expr.c:461 parser/parse_target.c:732 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "расширение строки через \"*\" здесь не поддерживается" -#: parser/parse_expr.c:548 +#: parser/parse_expr.c:584 msgid "cannot use column reference in DEFAULT expression" msgstr "в выражении DEFAULT (по умолчанию) нельзя ссылаться на столбцы" -#: parser/parse_expr.c:551 +#: parser/parse_expr.c:587 msgid "cannot use column reference in partition bound expression" msgstr "в выражении границы секции нельзя ссылаться на столбцы" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1239 +#: parser/parse_expr.c:846 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1238 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "неоднозначная ссылка на столбец \"%s\"" -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 #: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "параметр $%d не существует" -#: parser/parse_expr.c:1066 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1103 parser/parse_expr.c:3065 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "для NULLIF требуется, чтобы оператор = возвращал логическое значение" +msgid "%s requires = operator to yield boolean" +msgstr "для %s требуется, чтобы оператор = возвращал логическое значение" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 +#: parser/parse_expr.c:1109 parser/parse_expr.c:3072 #, c-format msgid "%s must not return a set" msgstr "%s не должна возвращать множество" -#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 +#: parser/parse_expr.c:1395 +#, c-format +msgid "" +"MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" +msgstr "" +"MERGE_ACTION() может использоваться только в списке RETURNING команды MERGE" + +#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 #, c-format msgid "number of columns does not match number of values" msgstr "число столбцов не равно числу значений" -#: parser/parse_expr.c:1503 +#: parser/parse_expr.c:1565 #, c-format msgid "" "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() " @@ -19285,224 +19801,357 @@ msgstr "" "SELECT или выражение ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 +#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "функции, возвращающие множества, нельзя применять в конструкции %s" -#: parser/parse_expr.c:1761 +#: parser/parse_expr.c:1824 msgid "cannot use subquery in check constraint" msgstr "в ограничении-проверке нельзя использовать подзапросы" -#: parser/parse_expr.c:1765 +#: parser/parse_expr.c:1828 msgid "cannot use subquery in DEFAULT expression" msgstr "в выражении DEFAULT нельзя использовать подзапросы" -#: parser/parse_expr.c:1768 +#: parser/parse_expr.c:1831 msgid "cannot use subquery in index expression" msgstr "в индексном выражении нельзя использовать подзапросы" -#: parser/parse_expr.c:1771 +#: parser/parse_expr.c:1834 msgid "cannot use subquery in index predicate" msgstr "в предикате индекса нельзя использовать подзапросы" -#: parser/parse_expr.c:1774 +#: parser/parse_expr.c:1837 msgid "cannot use subquery in statistics expression" msgstr "в выражении статистики нельзя использовать подзапросы" -#: parser/parse_expr.c:1777 +#: parser/parse_expr.c:1840 msgid "cannot use subquery in transform expression" msgstr "нельзя использовать подзапрос в выражении преобразования" -#: parser/parse_expr.c:1780 +#: parser/parse_expr.c:1843 msgid "cannot use subquery in EXECUTE parameter" msgstr "в качестве параметра EXECUTE нельзя использовать подзапрос" -#: parser/parse_expr.c:1783 +#: parser/parse_expr.c:1846 msgid "cannot use subquery in trigger WHEN condition" msgstr "в условии WHEN для триггера нельзя использовать подзапросы" -#: parser/parse_expr.c:1786 +#: parser/parse_expr.c:1849 msgid "cannot use subquery in partition bound" msgstr "в выражении границы секции нельзя использовать подзапросы" -#: parser/parse_expr.c:1789 +#: parser/parse_expr.c:1852 msgid "cannot use subquery in partition key expression" msgstr "в выражении ключа секционирования нельзя использовать подзапросы" -#: parser/parse_expr.c:1792 +#: parser/parse_expr.c:1855 msgid "cannot use subquery in CALL argument" msgstr "в качестве аргумента CALL нельзя использовать подзапрос" -#: parser/parse_expr.c:1795 +#: parser/parse_expr.c:1858 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "в условии COPY FROM WHERE нельзя использовать подзапросы" -#: parser/parse_expr.c:1798 +#: parser/parse_expr.c:1861 msgid "cannot use subquery in column generation expression" msgstr "в выражении генерируемого столбца нельзя использовать подзапросы" -#: parser/parse_expr.c:1851 parser/parse_expr.c:3628 +#: parser/parse_expr.c:1914 parser/parse_expr.c:3764 #, c-format msgid "subquery must return only one column" msgstr "подзапрос должен вернуть только один столбец" -#: parser/parse_expr.c:1922 +#: parser/parse_expr.c:1985 #, c-format msgid "subquery has too many columns" msgstr "в подзапросе слишком много столбцов" -#: parser/parse_expr.c:1927 +#: parser/parse_expr.c:1990 #, c-format msgid "subquery has too few columns" msgstr "в подзапросе недостаточно столбцов" -#: parser/parse_expr.c:2023 +#: parser/parse_expr.c:2086 #, c-format msgid "cannot determine type of empty array" msgstr "тип пустого массива определить нельзя" -#: parser/parse_expr.c:2024 +#: parser/parse_expr.c:2087 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "" "Приведите его к желаемому типу явным образом, например ARRAY[]::integer[]." -#: parser/parse_expr.c:2038 +#: parser/parse_expr.c:2101 #, c-format msgid "could not find element type for data type %s" msgstr "не удалось определить тип элемента для типа данных %s" -#: parser/parse_expr.c:2121 +#: parser/parse_expr.c:2184 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "число элементов в выражениях ROW ограничено %d" -#: parser/parse_expr.c:2326 +#: parser/parse_expr.c:2389 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "вместо значения XML-атрибута без имени должен указываться столбец" -#: parser/parse_expr.c:2327 +#: parser/parse_expr.c:2390 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "вместо значения XML-элемента без имени должен указываться столбец" -#: parser/parse_expr.c:2342 +#: parser/parse_expr.c:2405 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "имя XML-атрибута \"%s\" указано неоднократно" -#: parser/parse_expr.c:2450 +#: parser/parse_expr.c:2513 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "привести результат XMLSERIALIZE к типу %s нельзя" -#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 +#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 #, c-format msgid "unequal number of entries in row expressions" msgstr "разное число элементов в строках" -#: parser/parse_expr.c:2774 +#: parser/parse_expr.c:2837 #, c-format msgid "cannot compare rows of zero length" msgstr "строки нулевой длины сравнивать нельзя" -#: parser/parse_expr.c:2799 +#: parser/parse_expr.c:2862 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "" "оператор сравнения строк должен выдавать результат логического типа, а не %s" -#: parser/parse_expr.c:2806 +#: parser/parse_expr.c:2869 #, c-format msgid "row comparison operator must not return a set" msgstr "оператор сравнения строк не должен возвращать множество" -#: parser/parse_expr.c:2865 parser/parse_expr.c:2906 +#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "не удалось выбрать интерпретацию оператора сравнения строк %s" -#: parser/parse_expr.c:2867 +#: parser/parse_expr.c:2930 #, c-format msgid "" "Row comparison operators must be associated with btree operator families." msgstr "" "Операторы сравнения строк должны быть связаны с семейством операторов btree." -#: parser/parse_expr.c:2908 +#: parser/parse_expr.c:2971 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Оказалось несколько равноценных кандидатур." -#: parser/parse_expr.c:3001 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "" -"для IS DISTINCT FROM требуется, чтобы оператор = возвращал логическое " -"значение" - -#: parser/parse_expr.c:3239 +#: parser/parse_expr.c:3306 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "" "предложение JSON ENCODING можно добавить только для входного типа bytea" -#: parser/parse_expr.c:3261 +#: parser/parse_expr.c:3370 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "" "с неявным предложением FORMAT JSON можно использовать только строковые типы" -#: parser/parse_expr.c:3262 +#: parser/parse_expr.c:3371 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "" "с явным предложением FORMAT JSON можно использовать только строковые типы" -#: parser/parse_expr.c:3335 +#: parser/parse_expr.c:3460 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "формат JSON можно использовать, только если возвращаемый тип строковый" -#: parser/parse_expr.c:3348 +#: parser/parse_expr.c:3473 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "" "кодировку JSON можно использовать, только если возвращаемый тип — bytea" -#: parser/parse_expr.c:3353 +#: parser/parse_expr.c:3478 #, c-format msgid "unsupported JSON encoding" msgstr "неподдерживаемая кодировка JSON" -#: parser/parse_expr.c:3354 +#: parser/parse_expr.c:3479 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "Для JSON поддерживается только кодировка UTF-8." -#: parser/parse_expr.c:3391 +#: parser/parse_expr.c:3516 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "функции SQL/JSON не могут возвращать типы SETOF" -#: parser/parse_expr.c:3712 parser/parse_func.c:865 +#: parser/parse_expr.c:3521 +#, c-format +msgid "returning pseudo-types is not supported in SQL/JSON functions" +msgstr "функции SQL/JSON не могут возвращать псевдотипы" + +#: parser/parse_expr.c:3849 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "агрегатное предложение ORDER BY для оконных функций не реализовано" -#: parser/parse_expr.c:3934 +#: parser/parse_expr.c:4072 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "" "предложение JSON FORMAT ENCODING можно использовать только с типом bytea" -#: parser/parse_expr.c:3954 +#: parser/parse_expr.c:4092 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "в предикате IS JSON нельзя использовать тип %s" +#: parser/parse_expr.c:4118 parser/parse_expr.c:4239 +#, c-format +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "тип %s нельзя использовать в предложении RETURNING функции %s" + +#: parser/parse_expr.c:4120 +#, c-format +msgid "Try returning json or jsonb." +msgstr "Попробуйте возвратить тип json или jsonb." + +#: parser/parse_expr.c:4168 +#, c-format +msgid "cannot use non-string types with WITH UNIQUE KEYS clause" +msgstr "" +"с предложением WITH UNIQUE KEYS можно использовать только строковые типы " +"данных" + +#: parser/parse_expr.c:4242 +#, c-format +msgid "Try returning a string type or bytea." +msgstr "Попробуйте возвратить строковый тип или bytea." + +#: parser/parse_expr.c:4307 +#, c-format +msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgstr "FORMAT JSON не может указываться в предложении RETURNING %s()" + +#: parser/parse_expr.c:4320 +#, c-format +msgid "" +"SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" +msgstr "" +"когда используется WITH WRAPPER, поведение QUOTES в SQL/JSON задать нельзя" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4334 parser/parse_expr.c:4363 parser/parse_expr.c:4394 +#: parser/parse_expr.c:4420 parser/parse_expr.c:4446 +#: parser/parse_jsontable.c:94 +#, c-format +msgid "invalid %s behavior" +msgstr "неверное поведение %s" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4337 parser/parse_expr.c:4366 +#, c-format +msgid "" +"Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is " +"allowed in %s for %s." +msgstr "" +"В %s для %s допускается только ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT или " +"выражение DEFAULT." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4344 parser/parse_expr.c:4373 parser/parse_expr.c:4402 +#: parser/parse_expr.c:4430 parser/parse_expr.c:4456 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "неверное поведение %s для столбца \"%s\"" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4347 parser/parse_expr.c:4376 +#, c-format +msgid "" +"Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is " +"allowed in %s for formatted columns." +msgstr "" +"В %s для форматируемых столбцов допускается только ERROR, NULL, EMPTY ARRAY, " +"EMPTY OBJECT или выражение DEFAULT." + +#: parser/parse_expr.c:4395 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "В %s для %s допускается только ERROR, TRUE, FALSE или UNKNOWN." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4405 +#, c-format +msgid "" +"Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "" +"В %s для столбцов в EXISTS допускается только ERROR, TRUE, FALSE или UNKNOWN." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4423 parser/parse_expr.c:4449 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "В %s для %s допускается только ERROR, NULL или выражение DEFAULT." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4433 parser/parse_expr.c:4459 +#, c-format +msgid "" +"Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "" +"В %s для скалярных столбцов допускается только ERROR, NULL или выражение " +"DEFAULT." + +#: parser/parse_expr.c:4489 +#, c-format +msgid "JSON path expression must be of type %s, not of type %s" +msgstr "выражение пути JSON должно быть типа %s, а не типа %s" + +#: parser/parse_expr.c:4707 +#, c-format +msgid "" +"can only specify a constant, non-aggregate function, or operator expression " +"for DEFAULT" +msgstr "" +"в DEFAULT может задаваться только константа, вызов не агрегатной функции или " +"выражение с оператором" + +#: parser/parse_expr.c:4712 +#, c-format +msgid "DEFAULT expression must not contain column references" +msgstr "выражения в DEFAULT не могут содержать ссылки на столбцы" + +#: parser/parse_expr.c:4717 +#, c-format +msgid "DEFAULT expression must not return a set" +msgstr "выражение в DEFAULT не может возвращать множество" + +#: parser/parse_expr.c:4793 parser/parse_expr.c:4802 +#, c-format +msgid "cannot cast behavior expression of type %s to %s" +msgstr "привести выражение поведения, имеющее тип %s, к типу %s нельзя" + +#: parser/parse_expr.c:4796 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "Приведите выражение к типу %s явно." + #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -19513,7 +20162,7 @@ msgstr "имя аргумента \"%s\" используется неоднок msgid "positional argument cannot follow named argument" msgstr "нумерованный аргумент не может следовать за именованным аргументом" -#: parser/parse_func.c:287 parser/parse_func.c:2367 +#: parser/parse_func.c:287 parser/parse_func.c:2368 #, c-format msgid "%s is not a procedure" msgstr "\"%s\" — не процедура" @@ -19675,7 +20324,7 @@ msgstr "" "Возможно, неверно расположено предложение ORDER BY - оно должно следовать за " "всеми обычными аргументами функции." -#: parser/parse_func.c:622 parser/parse_func.c:2410 +#: parser/parse_func.c:622 parser/parse_func.c:2411 #, c-format msgid "procedure %s does not exist" msgstr "процедура %s не существует" @@ -19703,7 +20352,7 @@ msgstr "" msgid "VARIADIC argument must be an array" msgstr "параметр VARIADIC должен быть массивом" -#: parser/parse_func.c:791 parser/parse_func.c:855 +#: parser/parse_func.c:791 parser/parse_func.c:856 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr "агрегатная функция без параметров должна вызываться так: %s(*)" @@ -19718,44 +20367,44 @@ msgstr "агрегатные функции не могут возвращать msgid "aggregates cannot use named arguments" msgstr "у агрегатных функций не может быть именованных аргументов" -#: parser/parse_func.c:845 +#: parser/parse_func.c:846 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "предложение DISTINCT для оконных функций не реализовано" -#: parser/parse_func.c:874 +#: parser/parse_func.c:875 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "предложение FILTER для не агрегатных оконных функций не реализовано" -#: parser/parse_func.c:883 +#: parser/parse_func.c:884 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "" "вызовы оконных функций не могут включать вызовы функций, возвращающих " "множества" -#: parser/parse_func.c:891 +#: parser/parse_func.c:892 #, c-format msgid "window functions cannot return sets" msgstr "оконные функции не могут возвращать множества" -#: parser/parse_func.c:2166 parser/parse_func.c:2439 +#: parser/parse_func.c:2167 parser/parse_func.c:2440 #, c-format msgid "could not find a function named \"%s\"" msgstr "не удалось найти функцию с именем \"%s\"" -#: parser/parse_func.c:2180 parser/parse_func.c:2457 +#: parser/parse_func.c:2181 parser/parse_func.c:2458 #, c-format msgid "function name \"%s\" is not unique" msgstr "имя функции \"%s\" не уникально" -#: parser/parse_func.c:2182 parser/parse_func.c:2460 +#: parser/parse_func.c:2183 parser/parse_func.c:2461 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "Задайте список аргументов для однозначного выбора функции." -#: parser/parse_func.c:2226 +#: parser/parse_func.c:2227 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" @@ -19763,207 +20412,209 @@ msgstr[0] "процедуры допускают не более %d аргуме msgstr[1] "процедуры допускают не более %d аргументов" msgstr[2] "процедуры допускают не более %d аргументов" -#: parser/parse_func.c:2357 +#: parser/parse_func.c:2358 #, c-format msgid "%s is not a function" msgstr "%s — не функция" -#: parser/parse_func.c:2377 +#: parser/parse_func.c:2378 #, c-format msgid "function %s is not an aggregate" msgstr "функция \"%s\" не является агрегатной" -#: parser/parse_func.c:2405 +#: parser/parse_func.c:2406 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "не удалось найти процедуру с именем \"%s\"" -#: parser/parse_func.c:2419 +#: parser/parse_func.c:2420 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "не удалось найти агрегат с именем \"%s\"" -#: parser/parse_func.c:2424 +#: parser/parse_func.c:2425 #, c-format msgid "aggregate %s(*) does not exist" msgstr "агрегатная функция %s(*) не существует" -#: parser/parse_func.c:2429 +#: parser/parse_func.c:2430 #, c-format msgid "aggregate %s does not exist" msgstr "агрегатная функция %s не существует" -#: parser/parse_func.c:2465 +#: parser/parse_func.c:2466 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "имя процедуры \"%s\" не уникально" -#: parser/parse_func.c:2468 +#: parser/parse_func.c:2469 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "Задайте список аргументов для однозначного выбора процедуры." -#: parser/parse_func.c:2473 +#: parser/parse_func.c:2474 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "имя агрегатной функции \"%s\" не уникально" -#: parser/parse_func.c:2476 +#: parser/parse_func.c:2477 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "Задайте список аргументов для однозначного выбора агрегатной функции." -#: parser/parse_func.c:2481 +#: parser/parse_func.c:2482 #, c-format msgid "routine name \"%s\" is not unique" msgstr "имя подпрограммы \"%s\" не уникально" -#: parser/parse_func.c:2484 +#: parser/parse_func.c:2485 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "Задайте список аргументов для однозначного выбора подпрограммы." -#: parser/parse_func.c:2539 +#: parser/parse_func.c:2540 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "функции, возвращающие множества, нельзя применять в условиях JOIN" -#: parser/parse_func.c:2560 +#: parser/parse_func.c:2561 msgid "set-returning functions are not allowed in policy expressions" msgstr "функции, возвращающие множества, нельзя применять в выражениях политик" -#: parser/parse_func.c:2576 +#: parser/parse_func.c:2577 msgid "set-returning functions are not allowed in window definitions" msgstr "функции, возвращающие множества, нельзя применять в определении окна" -#: parser/parse_func.c:2613 +#: parser/parse_func.c:2615 msgid "set-returning functions are not allowed in MERGE WHEN conditions" msgstr "" "функции, возвращающие множества, нельзя применять в условиях MERGE WHEN" -#: parser/parse_func.c:2617 +#: parser/parse_func.c:2619 msgid "set-returning functions are not allowed in check constraints" msgstr "" "функции, возвращающие множества, нельзя применять в ограничениях-проверках" -#: parser/parse_func.c:2621 +#: parser/parse_func.c:2623 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "функции, возвращающие множества, нельзя применять в выражениях DEFAULT" -#: parser/parse_func.c:2624 +#: parser/parse_func.c:2626 msgid "set-returning functions are not allowed in index expressions" msgstr "" "функции, возвращающие множества, нельзя применять в выражениях индексов" -#: parser/parse_func.c:2627 +#: parser/parse_func.c:2629 msgid "set-returning functions are not allowed in index predicates" msgstr "" "функции, возвращающие множества, нельзя применять в предикатах индексов" -#: parser/parse_func.c:2630 +#: parser/parse_func.c:2632 msgid "set-returning functions are not allowed in statistics expressions" msgstr "" "функции, возвращающие множества, нельзя применять в выражениях статистики" -#: parser/parse_func.c:2633 +#: parser/parse_func.c:2635 msgid "set-returning functions are not allowed in transform expressions" msgstr "" "функции, возвращающие множества, нельзя применять в выражениях преобразований" -#: parser/parse_func.c:2636 +#: parser/parse_func.c:2638 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "функции, возвращающие множества, нельзя применять в параметрах EXECUTE" -#: parser/parse_func.c:2639 +#: parser/parse_func.c:2641 msgid "set-returning functions are not allowed in trigger WHEN conditions" msgstr "" "функции, возвращающие множества, нельзя применять в условиях WHEN для " "триггеров" -#: parser/parse_func.c:2642 +#: parser/parse_func.c:2644 msgid "set-returning functions are not allowed in partition bound" msgstr "" "функции, возвращающие множества, нельзя применять в выражении границы секции" -#: parser/parse_func.c:2645 +#: parser/parse_func.c:2647 msgid "set-returning functions are not allowed in partition key expressions" msgstr "" "функции, возвращающие множества, нельзя применять в выражениях ключа " "секционирования" -#: parser/parse_func.c:2648 +#: parser/parse_func.c:2650 msgid "set-returning functions are not allowed in CALL arguments" msgstr "функции, возвращающие множества, нельзя применять в аргументах CALL" -#: parser/parse_func.c:2651 +#: parser/parse_func.c:2653 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "" "функции, возвращающие множества, нельзя применять в условиях COPY FROM WHERE" -#: parser/parse_func.c:2654 +#: parser/parse_func.c:2656 msgid "" "set-returning functions are not allowed in column generation expressions" msgstr "" "функции, возвращающие множества, нельзя применять в выражениях генерируемых " "столбцов" -#: parser/parse_merge.c:119 +#: parser/parse_jsontable.c:95 +#, c-format +msgid "" +"Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "" +"На верхнем уровне предложения ON ERROR допускается только EMPTY [ ARRAY ] " +"или ERROR." + +#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#, c-format +msgid "duplicate JSON_TABLE column or path name: %s" +msgstr "повторяющийся столбец или имя пути в JSON_TABLE: %s" + +#: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "предложение WITH RECURSIVE не поддерживается с оператором MERGE" -#: parser/parse_merge.c:166 +#: parser/parse_merge.c:176 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "" "после безусловного предложения WHEN указано недостижимое предложение WHEN" -#: parser/parse_merge.c:196 -#, c-format -msgid "MERGE is not supported for relations with rules." -msgstr "MERGE не поддерживается для отношений с правилами." - -#: parser/parse_merge.c:213 +#: parser/parse_merge.c:222 #, c-format msgid "name \"%s\" specified more than once" msgstr "имя \"%s\" указано больше одного раза" -#: parser/parse_merge.c:215 +#: parser/parse_merge.c:224 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Это имя используется и в целевой таблице, и в источнике данных MERGE." -#: parser/parse_node.c:87 +#: parser/parse_node.c:82 #, c-format msgid "target lists can have at most %d entries" msgstr "число элементов в целевом списке ограничено %d" -#: parser/parse_oper.c:123 parser/parse_oper.c:690 +#: parser/parse_oper.c:114 parser/parse_oper.c:678 #, c-format msgid "postfix operators are not supported" msgstr "постфиксные операторы не поддерживаются" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 -#, c-format -msgid "operator does not exist: %s" -msgstr "оператор не существует: %s" - -#: parser/parse_oper.c:229 +#: parser/parse_oper.c:217 #, c-format msgid "Use an explicit ordering operator or modify the query." msgstr "Используйте явный оператор сортировки или измените запрос." -#: parser/parse_oper.c:485 +#: parser/parse_oper.c:473 #, c-format msgid "operator requires run-time type coercion: %s" msgstr "оператору требуется приведение типов во время выполнения: %s" -#: parser/parse_oper.c:641 +#: parser/parse_oper.c:629 #, c-format msgid "operator is not unique: %s" msgstr "оператор не уникален: %s" -#: parser/parse_oper.c:643 +#: parser/parse_oper.c:631 #, c-format msgid "" "Could not choose a best candidate operator. You might need to add explicit " @@ -19972,7 +20623,7 @@ msgstr "" "Не удалось выбрать лучшую кандидатуру оператора. Возможно, вам следует " "добавить явные приведения типов." -#: parser/parse_oper.c:652 +#: parser/parse_oper.c:640 #, c-format msgid "" "No operator matches the given name and argument type. You might need to add " @@ -19981,7 +20632,7 @@ msgstr "" "Оператор с данным именем и типом аргумента не найден. Возможно, вам следует " "добавить явное приведение типа." -#: parser/parse_oper.c:654 +#: parser/parse_oper.c:642 #, c-format msgid "" "No operator matches the given name and argument types. You might need to add " @@ -19990,24 +20641,19 @@ msgstr "" "Оператор с данными именем и типами аргументов не найден. Возможно, вам " "следует добавить явные приведения типов." -#: parser/parse_oper.c:714 parser/parse_oper.c:828 -#, c-format -msgid "operator is only a shell: %s" -msgstr "оператор \"%s\" - лишь оболочка" - -#: parser/parse_oper.c:816 +#: parser/parse_oper.c:803 #, c-format msgid "op ANY/ALL (array) requires array on right side" msgstr "для операторов ANY/ALL (с массивом) требуется массив справа" -#: parser/parse_oper.c:858 +#: parser/parse_oper.c:844 #, c-format msgid "op ANY/ALL (array) requires operator to yield boolean" msgstr "" "для операторов ANY/ALL (с массивом) требуется, чтобы оператор = возвращал " "логическое значение" -#: parser/parse_oper.c:863 +#: parser/parse_oper.c:849 #, c-format msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "" @@ -20019,7 +20665,7 @@ msgstr "" msgid "inconsistent types deduced for parameter $%d" msgstr "для параметра $%d выведены несогласованные типы" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:309 tcop/postgres.c:744 #, c-format msgid "could not determine data type of parameter $%d" msgstr "не удалось определить тип данных параметра $%d" @@ -20039,13 +20685,13 @@ msgstr "ссылка на таблицу %u неоднозначна" msgid "table name \"%s\" specified more than once" msgstr "имя таблицы \"%s\" указано больше одного раза" -#: parser/parse_relation.c:494 parser/parse_relation.c:3639 -#: parser/parse_relation.c:3648 +#: parser/parse_relation.c:494 parser/parse_relation.c:3633 +#: parser/parse_relation.c:3642 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "в элементе предложения FROM неверная ссылка на таблицу \"%s\"" -#: parser/parse_relation.c:498 parser/parse_relation.c:3650 +#: parser/parse_relation.c:498 parser/parse_relation.c:3644 #, c-format msgid "" "There is an entry for table \"%s\", but it cannot be referenced from this " @@ -20077,7 +20723,7 @@ msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "системный столбец \"%s\" нельзя использовать в условии MERGE WHEN" #: parser/parse_relation.c:1236 parser/parse_relation.c:1691 -#: parser/parse_relation.c:2388 +#: parser/parse_relation.c:2384 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "в таблице \"%s\" содержится столбцов: %d, но указано: %d" @@ -20099,13 +20745,13 @@ msgstr "" "Используйте WITH RECURSIVE или исключите ссылки вперёд, переупорядочив " "элементы WITH." -#: parser/parse_relation.c:1834 +#: parser/parse_relation.c:1833 #, c-format msgid "" "a column definition list is redundant for a function with OUT parameters" msgstr "список определений столбцов не нужен для функции с параметрами OUT" -#: parser/parse_relation.c:1840 +#: parser/parse_relation.c:1839 #, c-format msgid "" "a column definition list is redundant for a function returning a named " @@ -20114,79 +20760,79 @@ msgstr "" "список определений столбцов не нужен для функции, возвращающий именованный " "составной тип" -#: parser/parse_relation.c:1847 +#: parser/parse_relation.c:1846 #, c-format msgid "" "a column definition list is only allowed for functions returning \"record\"" msgstr "" "список определений столбцов может быть только у функций, возвращающих запись" -#: parser/parse_relation.c:1858 +#: parser/parse_relation.c:1857 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "" "у функций, возвращающих запись, должен быть список определений столбцов" -#: parser/parse_relation.c:1895 +#: parser/parse_relation.c:1894 #, c-format msgid "column definition lists can have at most %d entries" msgstr "число элементов в списках определения столбцов ограничено %d" -#: parser/parse_relation.c:1955 +#: parser/parse_relation.c:1954 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "" "функция \"%s\", используемая во FROM, возвращает неподдерживаемый тип %s" -#: parser/parse_relation.c:1982 parser/parse_relation.c:2068 +#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "число столбцов, возвращаемых функциями во FROM, ограничено %d" -#: parser/parse_relation.c:2098 +#: parser/parse_relation.c:2096 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "функция %s выдаёт столбцов: %d, но указано: %d" -#: parser/parse_relation.c:2180 +#: parser/parse_relation.c:2177 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "в списках VALUES \"%s\" содержится столбцов: %d, но указано: %d" -#: parser/parse_relation.c:2246 +#: parser/parse_relation.c:2242 #, c-format msgid "joins can have at most %d columns" msgstr "число столбцов в соединениях ограничено %d" -#: parser/parse_relation.c:2271 +#: parser/parse_relation.c:2267 #, c-format msgid "" "join expression \"%s\" has %d columns available but %d columns specified" msgstr "в выражении соединения \"%s\" имеется столбцов: %d, но указано: %d" -#: parser/parse_relation.c:2361 +#: parser/parse_relation.c:2357 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "в запросе \"%s\" в WITH нет предложения RETURNING" -#: parser/parse_relation.c:3641 +#: parser/parse_relation.c:3635 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Возможно, предполагалась ссылка на псевдоним таблицы \"%s\"." -#: parser/parse_relation.c:3653 +#: parser/parse_relation.c:3647 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "" "Чтобы обратиться к этой таблице, нужно добавить для данного подзапроса " "пометку LATERAL." -#: parser/parse_relation.c:3659 +#: parser/parse_relation.c:3653 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "таблица \"%s\" отсутствует в предложении FROM" -#: parser/parse_relation.c:3699 +#: parser/parse_relation.c:3693 #, c-format msgid "" "There are columns named \"%s\", but they are in tables that cannot be " @@ -20195,12 +20841,12 @@ msgstr "" "Имеются столбцы с именем \"%s\", но они относятся к таблицам, к которым " "нельзя обратиться из этой части запроса." -#: parser/parse_relation.c:3701 +#: parser/parse_relation.c:3695 #, c-format msgid "Try using a table-qualified name." msgstr "Попробуйте использовать имя с указанием таблицы." -#: parser/parse_relation.c:3709 +#: parser/parse_relation.c:3703 #, c-format msgid "" "There is a column named \"%s\" in table \"%s\", but it cannot be referenced " @@ -20209,52 +20855,52 @@ msgstr "" "Столбец \"%s\" есть в таблице \"%s\", но на него нельзя ссылаться из этой " "части запроса." -#: parser/parse_relation.c:3712 +#: parser/parse_relation.c:3706 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "" "Чтобы обратиться к этому столбцу, нужно добавить для данного подзапроса " "пометку LATERAL." -#: parser/parse_relation.c:3714 +#: parser/parse_relation.c:3708 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "" "Чтобы обратиться к этому столбцу, нужно использовать имя с указанием таблицы." -#: parser/parse_relation.c:3734 +#: parser/parse_relation.c:3728 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Возможно, предполагалась ссылка на столбец \"%s.%s\"." -#: parser/parse_relation.c:3748 +#: parser/parse_relation.c:3742 #, 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:481 parser/parse_target.c:796 +#: parser/parse_target.c:480 parser/parse_target.c:795 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "присвоить значение системному столбцу \"%s\" нельзя" -#: parser/parse_target.c:509 +#: parser/parse_target.c:508 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "элементу массива нельзя присвоить значение по умолчанию" -#: parser/parse_target.c:514 +#: parser/parse_target.c:513 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "вложенному полю нельзя присвоить значение по умолчанию" -#: parser/parse_target.c:588 +#: parser/parse_target.c:587 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, а выражение - %s" -#: parser/parse_target.c:780 +#: parser/parse_target.c:779 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a " @@ -20263,7 +20909,7 @@ msgstr "" "присвоить значение полю \"%s\" столбца \"%s\" нельзя, так как тип %s не " "является составным" -#: parser/parse_target.c:789 +#: parser/parse_target.c:788 #, c-format msgid "" "cannot assign to field \"%s\" of column \"%s\" because there is no such " @@ -20272,7 +20918,7 @@ msgstr "" "присвоить значение полю \"%s\" столбца \"%s\" нельзя, так как в типе данных " "%s нет такого столбца" -#: parser/parse_target.c:878 +#: parser/parse_target.c:877 #, c-format msgid "" "subscripted assignment to \"%s\" requires type %s but expression is of type " @@ -20281,12 +20927,12 @@ msgstr "" "для присваивания \"%s\" значения по индексу требуется тип %s, однако " "выражение имеет тип %s" -#: parser/parse_target.c:888 +#: parser/parse_target.c:887 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "вложенное поле \"%s\" имеет тип %s, а выражение - %s" -#: parser/parse_target.c:1328 +#: parser/parse_target.c:1327 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * должен ссылаться на таблицы" @@ -20306,8 +20952,8 @@ msgstr "неправильное указание %%TYPE (слишком мно msgid "type reference %s converted to %s" msgstr "ссылка на тип %s преобразована в тип %s" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 -#: utils/cache/typcache.c:450 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 +#: utils/cache/typcache.c:452 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" является пустышкой" @@ -20327,74 +20973,79 @@ msgstr "модификатором типа должна быть простая msgid "invalid type name \"%s\"" msgstr "неверное имя типа \"%s\"" -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:263 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "создать секционированную таблицу в виде потомка нельзя" -#: parser/parse_utilcmd.c:589 +#: parser/parse_utilcmd.c:475 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "изменить состояние журналирования временной последовательности нельзя" + +#: parser/parse_utilcmd.c:611 #, c-format msgid "array of serial is not implemented" msgstr "массивы с типом serial не реализованы" -#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 -#: parser/parse_utilcmd.c:739 +#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702 +#: parser/parse_utilcmd.c:761 #, c-format msgid "" "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "конфликт NULL/NOT NULL в объявлении столбца \"%s\" таблицы \"%s\"" -#: parser/parse_utilcmd.c:692 +#: parser/parse_utilcmd.c:714 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" указано несколько значений по умолчанию" -#: parser/parse_utilcmd.c:709 +#: parser/parse_utilcmd.c:731 #, c-format msgid "identity columns are not supported on typed tables" msgstr "столбцы идентификации не поддерживаются с типизированными таблицами" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:735 #, c-format msgid "identity columns are not supported on partitions" msgstr "столбцы идентификации не поддерживаются с секциями" -#: parser/parse_utilcmd.c:722 +#: parser/parse_utilcmd.c:744 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" свойство identity задано неоднократно" -#: parser/parse_utilcmd.c:752 +#: parser/parse_utilcmd.c:774 #, c-format msgid "generated columns are not supported on typed tables" msgstr "генерируемые столбцы не поддерживаются с типизированными таблицами" -#: parser/parse_utilcmd.c:756 +#: parser/parse_utilcmd.c:778 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" указано несколько генерирующих выражений" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 +#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "ограничения первичного ключа для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 +#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "ограничения уникальности для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:828 +#: parser/parse_utilcmd.c:850 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и свойство " "identity" -#: parser/parse_utilcmd.c:836 +#: parser/parse_utilcmd.c:858 #, c-format msgid "" "both default and generation expression specified for column \"%s\" of table " @@ -20403,7 +21054,7 @@ msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и значение по умолчанию, и " "генерирующее выражение" -#: parser/parse_utilcmd.c:844 +#: parser/parse_utilcmd.c:866 #, c-format msgid "" "both identity and generation expression specified for column \"%s\" of table " @@ -20412,93 +21063,88 @@ msgstr "" "для столбца \"%s\" таблицы \"%s\" задано и генерирующее выражение, и " "свойство identity" -#: parser/parse_utilcmd.c:909 +#: parser/parse_utilcmd.c:931 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "ограничения-исключения для сторонних таблиц не поддерживаются" -#: parser/parse_utilcmd.c:915 -#, c-format -msgid "exclusion constraints are not supported on partitioned tables" -msgstr "ограничения-исключения для секционированных таблиц не поддерживаются" - -#: parser/parse_utilcmd.c:980 +#: parser/parse_utilcmd.c:996 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE при создании сторонних таблиц не поддерживается" -#: parser/parse_utilcmd.c:993 +#: parser/parse_utilcmd.c:1009 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "отношение \"%s\" не подходит для предложения LIKE" -#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 +#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Индекс \"%s\" ссылается на тип всей строки таблицы." -#: parser/parse_utilcmd.c:2245 +#: parser/parse_utilcmd.c:2242 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "в CREATE TABLE нельзя использовать существующий индекс" -#: parser/parse_utilcmd.c:2265 +#: parser/parse_utilcmd.c:2262 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "индекс \"%s\" уже связан с ограничением" -#: parser/parse_utilcmd.c:2286 +#: parser/parse_utilcmd.c:2283 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" не является уникальным индексом" -#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 -#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 +#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "" "Создать первичный ключ или ограничение уникальности для такого индекса " "нельзя." -#: parser/parse_utilcmd.c:2293 +#: parser/parse_utilcmd.c:2290 #, c-format msgid "index \"%s\" contains expressions" msgstr "индекс \"%s\" содержит выражения" -#: parser/parse_utilcmd.c:2300 +#: parser/parse_utilcmd.c:2297 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" - частичный индекс" -#: parser/parse_utilcmd.c:2312 +#: parser/parse_utilcmd.c:2309 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" - откладываемый индекс" -#: parser/parse_utilcmd.c:2313 +#: parser/parse_utilcmd.c:2310 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "" "Создать не откладываемое ограничение на базе откладываемого индекса нельзя." -#: parser/parse_utilcmd.c:2377 +#: parser/parse_utilcmd.c:2374 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "" "в индексе \"%s\" для столбца номер %d не определено поведение сортировки по " "умолчанию" -#: parser/parse_utilcmd.c:2534 +#: parser/parse_utilcmd.c:2531 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "столбец \"%s\" фигурирует в первичном ключе дважды" -#: parser/parse_utilcmd.c:2540 +#: parser/parse_utilcmd.c:2537 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "столбец \"%s\" фигурирует в ограничении уникальности дважды" -#: parser/parse_utilcmd.c:2887 +#: parser/parse_utilcmd.c:2871 #, c-format msgid "" "index expressions and predicates can refer only to the table being indexed" @@ -20506,22 +21152,22 @@ msgstr "" "индексные выражения и предикаты могут ссылаться только на индексируемую " "таблицу" -#: parser/parse_utilcmd.c:2959 +#: parser/parse_utilcmd.c:2943 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "выражения статистики могут ссылаться только на целевую таблицу" -#: parser/parse_utilcmd.c:3002 +#: parser/parse_utilcmd.c:2986 #, c-format msgid "rules on materialized views are not supported" msgstr "правила для материализованных представлений не поддерживаются" -#: parser/parse_utilcmd.c:3062 +#: parser/parse_utilcmd.c:3046 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "в условиях WHERE для правил нельзя ссылаться на другие отношения" -#: parser/parse_utilcmd.c:3134 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "" "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE " @@ -20530,158 +21176,158 @@ msgstr "" "правила с условиями WHERE могут содержать только действия SELECT, INSERT, " "UPDATE или DELETE" -#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 -#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 +#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237 +#: rewrite/rewriteHandler.c:544 rewrite/rewriteManip.c:1096 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "условные операторы UNION/INTERSECT/EXCEPT не реализованы" -#: parser/parse_utilcmd.c:3170 +#: parser/parse_utilcmd.c:3154 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "в правиле ON SELECT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3158 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "в правиле ON SELECT нельзя использовать NEW" -#: parser/parse_utilcmd.c:3183 +#: parser/parse_utilcmd.c:3167 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "в правиле ON INSERT нельзя использовать OLD" -#: parser/parse_utilcmd.c:3189 +#: parser/parse_utilcmd.c:3173 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "в правиле ON DELETE нельзя использовать NEW" -#: parser/parse_utilcmd.c:3217 +#: parser/parse_utilcmd.c:3201 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "в запросе WITH нельзя ссылаться на OLD" -#: parser/parse_utilcmd.c:3224 +#: parser/parse_utilcmd.c:3208 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "в запросе WITH нельзя ссылаться на NEW" -#: parser/parse_utilcmd.c:3676 +#: parser/parse_utilcmd.c:3664 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "предложение DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 +#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "DEFERRABLE/NOT DEFERRABLE можно указать только один раз" -#: parser/parse_utilcmd.c:3691 +#: parser/parse_utilcmd.c:3679 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "предложение NOT DEFERRABLE расположено неправильно" -#: parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 gram.y:5990 +#: parser/parse_utilcmd.c:3692 parser/parse_utilcmd.c:3718 gram.y:6114 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "" "ограничение с характеристикой INITIALLY DEFERRED должно быть объявлено как " "DEFERRABLE" -#: parser/parse_utilcmd.c:3712 +#: parser/parse_utilcmd.c:3700 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "предложение INITIALLY DEFERRED расположено неправильно" -#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 +#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "INITIALLY IMMEDIATE/DEFERRED можно указать только один раз" -#: parser/parse_utilcmd.c:3738 +#: parser/parse_utilcmd.c:3726 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "предложение INITIALLY IMMEDIATE расположено неправильно" -#: parser/parse_utilcmd.c:3931 +#: parser/parse_utilcmd.c:3919 #, c-format msgid "" "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "в CREATE указана схема (%s), отличная от создаваемой (%s)" -#: parser/parse_utilcmd.c:3966 +#: parser/parse_utilcmd.c:3954 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" — не секционированная таблица" -#: parser/parse_utilcmd.c:3973 +#: parser/parse_utilcmd.c:3961 #, c-format msgid "table \"%s\" is not partitioned" msgstr "таблица \"%s\" не является секционированной" -#: parser/parse_utilcmd.c:3980 +#: parser/parse_utilcmd.c:3968 #, c-format msgid "index \"%s\" is not partitioned" msgstr "индекс \"%s\" не секционирован" -#: parser/parse_utilcmd.c:4020 +#: parser/parse_utilcmd.c:4008 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "у секционированной по хешу таблицы не может быть секции по умолчанию" -#: parser/parse_utilcmd.c:4037 +#: parser/parse_utilcmd.c:4025 #, c-format msgid "invalid bound specification for a hash partition" msgstr "неправильное указание ограничения для хеш-секции" -#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "модуль для хеш-секции должен быть положительным целым" -#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "остаток для хеш-секции должен быть меньше модуля" -#: parser/parse_utilcmd.c:4063 +#: parser/parse_utilcmd.c:4051 #, c-format msgid "invalid bound specification for a list partition" msgstr "неправильное указание ограничения для секции по списку" -#: parser/parse_utilcmd.c:4116 +#: parser/parse_utilcmd.c:4104 #, c-format msgid "invalid bound specification for a range partition" msgstr "неправильное указание ограничения для секции по диапазону" -#: parser/parse_utilcmd.c:4122 +#: parser/parse_utilcmd.c:4110 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "" "во FROM должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4126 +#: parser/parse_utilcmd.c:4114 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "" "в TO должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4240 +#: parser/parse_utilcmd.c:4228 #, c-format msgid "cannot specify NULL in range bound" msgstr "указать NULL в диапазонном ограничении нельзя" -#: parser/parse_utilcmd.c:4289 +#: parser/parse_utilcmd.c:4277 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за границей MAXVALUE могут следовать только границы MAXVALUE" -#: parser/parse_utilcmd.c:4296 +#: parser/parse_utilcmd.c:4284 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за границей MINVALUE могут следовать только границы MINVALUE" -#: parser/parse_utilcmd.c:4339 +#: parser/parse_utilcmd.c:4327 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "указанное значение нельзя привести к типу %s столбца \"%s\"" @@ -20694,12 +21340,12 @@ msgstr "За UESCAPE должна следовать простая строко msgid "invalid Unicode escape character" msgstr "неверный символ спецкода Unicode" -#: parser/parser.c:347 scan.l:1390 +#: parser/parser.c:347 scan.l:1393 #, c-format msgid "invalid Unicode escape value" msgstr "неверное значение спецкода Unicode" -#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701 +#: parser/parser.c:494 utils/adt/varlena.c:6640 scan.l:716 #, c-format msgid "invalid Unicode escape" msgstr "неверный спецкод Unicode" @@ -20709,8 +21355,8 @@ msgstr "неверный спецкод Unicode" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Спецкоды Unicode должны иметь вид \\XXXX или \\+XXXXXX." -#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678 -#: scan.l:694 +#: parser/parser.c:523 utils/adt/varlena.c:6665 scan.l:677 scan.l:693 +#: scan.l:709 #, c-format msgid "invalid Unicode surrogate pair" msgstr "неверная суррогатная пара Unicode" @@ -20720,20 +21366,20 @@ msgstr "неверная суррогатная пара Unicode" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "идентификатор \"%s\" будет усечён до \"%.*s\"" -#: partitioning/partbounds.c:2921 +#: partitioning/partbounds.c:2920 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "секция \"%s\" конфликтует с существующей секцией по умолчанию \"%s\"" -#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991 +#: partitioning/partbounds.c:3013 #, c-format msgid "" "every hash partition modulus must be a factor of the next larger modulus" msgstr "" "модуль каждой хеш-секции должен быть делителем модулей, превышающих его" -#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014 #, c-format msgid "" "The new modulus %d is not a factor of %d, the modulus of existing partition " @@ -20741,29 +21387,29 @@ msgid "" msgstr "" "Новый модуль %d не является делителем %d, модуля существующей секции \"%s\"." -#: partitioning/partbounds.c:2993 +#: partitioning/partbounds.c:2992 #, c-format msgid "" "The new modulus %d is not divisible by %d, the modulus of existing partition " "\"%s\"." msgstr "Новый модуль %d не делится на %d, модуль существующей секции \"%s\"." -#: partitioning/partbounds.c:3128 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "для секции \"%s\" заданы границы, образующие пустой диапазон" -#: partitioning/partbounds.c:3130 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "Указанная нижняя граница %s больше или равна верхней границе %s." -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "секция \"%s\" пересекается с секцией \"%s\"" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "" "skipped scanning foreign table \"%s\" which is a partition of default " @@ -20772,19 +21418,19 @@ msgstr "" "пропущено сканирование сторонней таблицы \"%s\", являющейся секцией секции " "по умолчанию \"%s\"" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "" "remainder for hash partition must be an integer value greater than or equal " "to zero" msgstr "значение остатка для хеш-секции должно быть неотрицательным целым" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" не является таблицей, секционированной по хешу" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "" "number of partitioning columns (%d) does not match number of partition keys " @@ -20793,7 +21439,7 @@ msgstr "" "число секционирующих столбцов (%d) не равно числу представленных ключей " "секционирования (%d)" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "" "column %d of the partition key has type %s, but supplied value is of type %s" @@ -20801,7 +21447,7 @@ msgstr "" "столбец %d ключа секционирования имеет тип %s, но для него передано значение " "типа %s" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "" "column %d of the partition key has type \"%s\", but supplied value is of " @@ -20810,23 +21456,23 @@ msgstr "" "столбец %d ключа секционирования имеет тип \"%s\", но для него передано " "значение типа \"%s\"" -#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 +#: port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "не удалось получить информацию о каталоге данных \"%s\": %m" -#: port/pg_shmem.c:223 port/sysv_shmem.c:223 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "could not create shared memory segment: %m" msgstr "не удалось создать сегмент разделяемой памяти: %m" -#: port/pg_shmem.c:224 port/sysv_shmem.c:224 +#: port/pg_shmem.c:225 port/sysv_shmem.c:225 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Ошибка в системном вызове shmget(ключ=%lu, размер=%zu, 0%o)." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:229 port/sysv_shmem.c:229 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -20840,7 +21486,7 @@ msgstr "" "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:235 port/sysv_shmem.c:235 +#: port/pg_shmem.c:236 port/sysv_shmem.c:236 #, c-format msgid "" "This error usually means that PostgreSQL's request for a shared memory " @@ -20855,7 +21501,7 @@ msgstr "" "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:241 port/sysv_shmem.c:241 +#: port/pg_shmem.c:242 port/sysv_shmem.c:242 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs " @@ -20872,49 +21518,51 @@ msgstr "" "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646 #, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "Значение huge_page_size должно равняться 0 на этой платформе." +msgid "\"huge_page_size\" must be 0 on this platform." +msgstr "Значение \"huge_page_size\" должно равняться 0 на этой платформе." -#: port/pg_shmem.c:646 port/sysv_shmem.c:646 +#: port/pg_shmem.c:655 port/sysv_shmem.c:655 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "не удалось получить анонимную разделяемую память: %m" -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:657 port/sysv_shmem.c:657 #, 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." +"perhaps by reducing \"shared_buffers\" or \"max_connections\"." msgstr "" "Эта ошибка обычно возникает, когда PostgreSQL запрашивает сегмент " "разделяемой памяти, превышая объём доступной физической либо виртуальной " "памяти или огромных страниц. Для уменьшения запроса (текущий размер: %zu Б) " "можно снизить использование разделяемой памяти, возможно, уменьшив " -"shared_buffers или max_connections." +"\"shared_buffers\" или \"max_connections\"." -#: port/pg_shmem.c:716 port/sysv_shmem.c:716 +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 #, c-format msgid "huge pages not supported on this platform" msgstr "огромные страницы на этой платформе не поддерживаются" -#: port/pg_shmem.c:723 port/sysv_shmem.c:723 +#: port/pg_shmem.c:732 port/sysv_shmem.c:732 #, c-format -msgid "huge pages not supported with the current shared_memory_type setting" +msgid "" +"huge pages not supported with the current \"shared_memory_type\" setting" msgstr "" -"огромные страницы не поддерживаются с текущим значением shared_memory_type" +"огромные страницы не поддерживаются с текущим значением " +"\"shared_memory_type\"" -#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1358 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1401 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "" "ранее выделенный блок разделяемой памяти (ключ %lu, ID %lu) по-прежнему " "используется" -#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1360 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1403 #, c-format msgid "" "Terminate any old server processes associated with data directory \"%s\"." @@ -20922,17 +21570,17 @@ msgstr "" "Завершите все старые серверные процессы, работающие с каталогом данных " "\"%s\"." -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "не удалось создать семафоры: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "Ошибка в системном вызове semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" "This error does *not* mean that you have run out of disk space. It occurs " @@ -20940,18 +21588,19 @@ msgid "" "(SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be " "exceeded. You need to raise the respective kernel parameter. " "Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its " -"max_connections parameter.\n" +"\"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring " "your system for PostgreSQL." msgstr "" "Эта ошибка НЕ означает, что на диске нет места. Вероятнее всего, превышен " "предел числа установленных семафоров (SEMMNI), либо общего числа семафоров " "(SEMMNS) в системе. Увеличьте соответствующий параметр ядра или уменьшите " -"потребность PostgreSQL в семафорах, уменьшив его параметр max_connections.\n" +"потребность PostgreSQL в семафорах, уменьшив его параметр " +"\"max_connections\".\n" "Подробная информация о настройке разделяемой памяти содержится в " "документации PostgreSQL." -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "" "You possibly need to raise your kernel's SEMVMX value to be at least %d. " @@ -21093,53 +21742,43 @@ msgstr "Ошибка в системном вызове DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Ошибка в системном вызове MapViewOfFileEx." -#: postmaster/autovacuum.c:418 -#, c-format -msgid "could not fork autovacuum launcher process: %m" -msgstr "породить процесс запуска автоочистки не удалось: %m" - -#: postmaster/autovacuum.c:765 +#: postmaster/autovacuum.c:686 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "процесс автоочистки запускался слишком долго; его запуск отменён" -#: postmaster/autovacuum.c:1490 -#, c-format -msgid "could not fork autovacuum worker process: %m" -msgstr "не удалось породить рабочий процесс автоочистки: %m" - # skip-rule: capital-letter-first -#: postmaster/autovacuum.c:2353 +#: postmaster/autovacuum.c:2203 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "автоочистка: удаление устаревшей врем. таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2589 +#: postmaster/autovacuum.c:2439 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "автоматическая очистка таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2592 +#: postmaster/autovacuum.c:2442 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "автоматический анализ таблицы \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2786 +#: postmaster/autovacuum.c:2636 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "обработка рабочей записи для отношения \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3400 +#: postmaster/autovacuum.c:3254 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "автоочистка не запущена из-за неправильной конфигурации" -#: postmaster/autovacuum.c:3401 +#: postmaster/autovacuum.c:3255 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Включите параметр \"track_counts\"." -#: postmaster/bgworker.c:259 +#: postmaster/bgworker.c:260 #, c-format msgid "" "inconsistent background worker state (max_worker_processes=%d, " @@ -21148,7 +21787,7 @@ msgstr "" "несогласованное состояние фонового рабочего процесса " "(max_worker_processes=%d, total_slots=%d)" -#: postmaster/bgworker.c:669 +#: postmaster/bgworker.c:651 #, c-format msgid "" "background worker \"%s\": background workers without shared memory access " @@ -21157,7 +21796,7 @@ msgstr "" "фоновый процесс \"%s\": фоновые процессы, не обращающиеся к общей памяти, не " "поддерживаются" -#: postmaster/bgworker.c:680 +#: postmaster/bgworker.c:662 #, c-format msgid "" "background worker \"%s\": cannot request database access if starting at " @@ -21166,12 +21805,12 @@ msgstr "" "фоновый процесс \"%s\" не может получить доступ к БД, если он запущен при " "старте главного процесса" -#: postmaster/bgworker.c:694 +#: postmaster/bgworker.c:676 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "фоновый процесс \"%s\": неправильный интервал перезапуска" -#: postmaster/bgworker.c:709 +#: postmaster/bgworker.c:691 #, c-format msgid "" "background worker \"%s\": parallel workers may not be configured for restart" @@ -21179,19 +21818,20 @@ msgstr "" "фоновый процесс \"%s\": параллельные исполнители не могут быть настроены для " "перезапуска" -#: postmaster/bgworker.c:733 tcop/postgres.c:3255 +#: postmaster/bgworker.c:715 tcop/postgres.c:3312 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "завершение фонового процесса \"%s\" по команде администратора" -#: postmaster/bgworker.c:890 +#: postmaster/bgworker.c:888 #, c-format msgid "" -"background worker \"%s\": must be registered in shared_preload_libraries" +"background worker \"%s\": must be registered in \"shared_preload_libraries\"" msgstr "" -"фоновой процесс \"%s\" должен быть зарегистрирован в shared_preload_libraries" +"фоновой процесс \"%s\" должен быть зарегистрирован в " +"\"shared_preload_libraries\"" -#: postmaster/bgworker.c:902 +#: postmaster/bgworker.c:911 #, c-format msgid "" "background worker \"%s\": only dynamic background workers can request " @@ -21200,12 +21840,12 @@ msgstr "" "фоновый процесс \"%s\": только динамические фоновые процессы могут " "запрашивать уведомление" -#: postmaster/bgworker.c:917 +#: postmaster/bgworker.c:926 #, c-format msgid "too many background workers" msgstr "слишком много фоновых процессов" -#: postmaster/bgworker.c:918 +#: postmaster/bgworker.c:927 #, c-format msgid "Up to %d background worker can be registered with the current settings." msgid_plural "" @@ -21217,13 +21857,12 @@ msgstr[1] "" msgstr[2] "" "Максимально возможное число фоновых процессов при текущих параметрах: %d." -#: postmaster/bgworker.c:922 +#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445 #, c-format -msgid "" -"Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "Возможно, стоит увеличить параметр \"max_worker_processes\"." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "Возможно, стоит увеличить параметр \"%s\"." -#: postmaster/checkpointer.c:431 +#: postmaster/checkpointer.c:441 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" @@ -21231,209 +21870,310 @@ msgstr[0] "контрольные точки происходят слишком msgstr[1] "контрольные точки происходят слишком часто (через %d сек.)" msgstr[2] "контрольные точки происходят слишком часто (через %d сек.)" -#: postmaster/checkpointer.c:435 -#, c-format -msgid "Consider increasing the configuration parameter \"max_wal_size\"." -msgstr "Возможно, стоит увеличить параметр \"max_wal_size\"." - -#: postmaster/checkpointer.c:1059 +#: postmaster/checkpointer.c:1067 #, c-format msgid "checkpoint request failed" msgstr "сбой при запросе контрольной точки" -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1068 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Смотрите подробности в протоколе сервера." -#: postmaster/pgarch.c:416 +#: postmaster/launch_backend.c:381 #, c-format -msgid "archive_mode enabled, yet archiving is not configured" -msgstr "режим архивации включён, но архивирование ещё не настроено" +msgid "could not execute server process \"%s\": %m" +msgstr "запустить серверный процесс \"%s\" не удалось: %m" -#: postmaster/pgarch.c:438 +#: postmaster/launch_backend.c:434 #, c-format -msgid "removed orphan archive status file \"%s\"" -msgstr "удалён ненужный файл состояния архива \"%s\"" +msgid "could not create backend parameter file mapping: error code %lu" +msgstr "" +"создать отображение файла серверных параметров не удалось (код ошибки: %lu)" -#: postmaster/pgarch.c:448 +#: postmaster/launch_backend.c:442 #, c-format -msgid "" -"removal of orphan archive status file \"%s\" failed too many times, will try " -"again later" +msgid "could not map backend parameter memory: error code %lu" msgstr "" -"удалить ненужный файл состояния архива \"%s\" не получилось много раз " -"подряд; следующая попытка будет сделана позже" +"отобразить файл серверных параметров в память не удалось (код ошибки: %lu)" -#: postmaster/pgarch.c:484 +#: postmaster/launch_backend.c:459 #, c-format -msgid "" -"archiving write-ahead log file \"%s\" failed too many times, will try again " -"later" -msgstr "" -"заархивировать файл журнала предзаписи \"%s\" не удалось много раз подряд; " -"следующая попытка будет сделана позже" +msgid "subprocess command line too long" +msgstr "слишком длинная командная строка подпроцесса" -#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#: postmaster/launch_backend.c:477 #, c-format -msgid "both archive_command and archive_library set" -msgstr "archive_command и archive_library заданы одновременно" +msgid "CreateProcess() call failed: %m (error code %lu)" +msgstr "ошибка в CreateProcess(): %m (код ошибки: %lu)" -#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#: postmaster/launch_backend.c:504 #, c-format -msgid "Only one of archive_command, archive_library may be set." +msgid "could not unmap view of backend parameter file: error code %lu" msgstr "" -"Только один из параметров archive_command, archive_library может иметь " -"значение." +"отключить отображение файла серверных параметров не удалось (код ошибки: %lu)" -#: postmaster/pgarch.c:809 +#: postmaster/launch_backend.c:508 #, c-format -msgid "" -"restarting archiver process because value of \"archive_library\" was changed" +msgid "could not close handle to backend parameter file: error code %lu" msgstr "" -"процесс архиватора перезапускается, так как было изменено значение " -"\"archive_library\"" +"закрыть указатель файла серверных параметров не удалось (код ошибки: %lu)" -#: postmaster/pgarch.c:846 +#: postmaster/launch_backend.c:530 #, c-format -msgid "archive modules have to define the symbol %s" -msgstr "в модулях архивирования должен объявляться символ %s" +msgid "giving up after too many tries to reserve shared memory" +msgstr "" +"число повторных попыток резервирования разделяемой памяти достигло предела" -#: postmaster/pgarch.c:852 +#: postmaster/launch_backend.c:531 #, c-format -msgid "archive modules must register an archive callback" -msgstr "модули архивирования должны регистрировать обработчик вызова архивации" +msgid "This might be caused by ASLR or antivirus software." +msgstr "Это может быть вызвано антивирусным ПО или механизмом ASLR." -#: postmaster/postmaster.c:759 +#: postmaster/launch_backend.c:834 #, c-format -msgid "%s: invalid argument for option -f: \"%s\"\n" -msgstr "%s: неверный аргумент для параметра -f: \"%s\"\n" +msgid "could not duplicate socket %d for use in backend: error code %d" +msgstr "" +"продублировать сокет %d для серверного процесса не удалось (код ошибки: %d)" -#: postmaster/postmaster.c:832 +#: postmaster/launch_backend.c:866 #, c-format -msgid "%s: invalid argument for option -t: \"%s\"\n" -msgstr "%s: неверный аргумент для параметра -t: \"%s\"\n" +msgid "could not create inherited socket: error code %d\n" +msgstr "создать наследуемый сокет не удалось (код ошибки: %d)\n" -#: postmaster/postmaster.c:855 +#: postmaster/launch_backend.c:895 #, c-format -msgid "%s: invalid argument: \"%s\"\n" -msgstr "%s: неверный аргумент: \"%s\"\n" +msgid "could not open backend variables file \"%s\": %m\n" +msgstr "открыть файл серверных переменных \"%s\" не удалось: %m\n" -#: postmaster/postmaster.c:923 +#: postmaster/launch_backend.c:901 #, c-format -msgid "" -"%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must " -"be less than max_connections (%d)\n" -msgstr "" -"%s: значение superuser_reserved_connections (%d) плюс reserved_connections " -"(%d) должно быть меньше max_connections (%d)\n" +msgid "could not read from backend variables file \"%s\": %m\n" +msgstr "прочитать файл серверных переменных \"%s\" не удалось: %m\n" -#: postmaster/postmaster.c:931 +#: postmaster/launch_backend.c:912 #, c-format -msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "Архивацию WAL нельзя включить, если установлен wal_level \"minimal\"" +msgid "could not read startup data from backend variables file \"%s\": %m\n" +msgstr "" +"прочитать стартовые данные из файла серверных переменных \"%s\" не удалось: " +"%m\n" -#: postmaster/postmaster.c:934 +#: postmaster/launch_backend.c:924 #, c-format -msgid "" -"WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or " -"\"logical\"" -msgstr "" -"Для потоковой трансляции WAL (max_wal_senders > 0) wal_level должен быть " -"\"replica\" или \"logical\"" +msgid "could not remove file \"%s\": %m\n" +msgstr "не удалось стереть файл \"%s\": %m\n" -#: postmaster/postmaster.c:942 +#: postmaster/launch_backend.c:940 #, c-format -msgid "%s: invalid datetoken tables, please fix\n" -msgstr "%s: ошибка в таблицах маркеров времени, требуется исправление\n" +msgid "could not map view of backend variables: error code %lu\n" +msgstr "отобразить файл серверных переменных не удалось (код ошибки: %lu)\n" -#: postmaster/postmaster.c:1099 +#: postmaster/launch_backend.c:959 #, c-format -msgid "could not create I/O completion port for child queue" -msgstr "не удалось создать порт завершения ввода/вывода для очереди потомков" +msgid "could not unmap view of backend variables: error code %lu\n" +msgstr "" +"отключить отображение файла серверных переменных не удалось (код ошибки: " +"%lu)\n" -#: postmaster/postmaster.c:1175 +#: postmaster/launch_backend.c:966 +#, c-format +msgid "could not close handle to backend parameter variables: error code %lu\n" +msgstr "" +"закрыть указатель файла серверных переменных не удалось (код ошибки: %lu)\n" + +#: postmaster/pgarch.c:428 +#, c-format +msgid "\"archive_mode\" enabled, yet archiving is not configured" +msgstr "параметр \"archive_mode\" включён, но архивирование ещё не настроено" + +#: postmaster/pgarch.c:452 +#, c-format +msgid "removed orphan archive status file \"%s\"" +msgstr "удалён ненужный файл состояния архива \"%s\"" + +#: postmaster/pgarch.c:462 +#, c-format +msgid "" +"removal of orphan archive status file \"%s\" failed too many times, will try " +"again later" +msgstr "" +"удалить ненужный файл состояния архива \"%s\" не получилось много раз " +"подряд; следующая попытка будет сделана позже" + +#: postmaster/pgarch.c:498 +#, c-format +msgid "" +"archiving write-ahead log file \"%s\" failed too many times, will try again " +"later" +msgstr "" +"заархивировать файл журнала предзаписи \"%s\" не удалось много раз подряд; " +"следующая попытка будет сделана позже" + +#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 +#, c-format +msgid "both \"archive_command\" and \"archive_library\" set" +msgstr "\"archive_command\" и \"archive_library\" заданы одновременно" + +#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 +#, c-format +msgid "Only one of \"archive_command\", \"archive_library\" may be set." +msgstr "" +"Только один из параметров \"archive_command\", \"archive_library\" может " +"иметь значение." + +#: postmaster/pgarch.c:897 +#, c-format +msgid "" +"restarting archiver process because value of \"archive_library\" was changed" +msgstr "" +"процесс архиватора перезапускается, так как было изменено значение " +"\"archive_library\"" + +#: postmaster/pgarch.c:934 +#, c-format +msgid "archive modules have to define the symbol %s" +msgstr "в модулях архивирования должен объявляться символ %s" + +#: postmaster/pgarch.c:940 +#, c-format +msgid "archive modules must register an archive callback" +msgstr "модули архивирования должны регистрировать обработчик вызова архивации" + +#: postmaster/postmaster.c:661 +#, c-format +msgid "%s: invalid argument for option -f: \"%s\"\n" +msgstr "%s: неверный аргумент для параметра -f: \"%s\"\n" + +#: postmaster/postmaster.c:734 +#, c-format +msgid "%s: invalid argument for option -t: \"%s\"\n" +msgstr "%s: неверный аргумент для параметра -t: \"%s\"\n" + +#: postmaster/postmaster.c:757 +#, c-format +msgid "%s: invalid argument: \"%s\"\n" +msgstr "%s: неверный аргумент: \"%s\"\n" + +#: postmaster/postmaster.c:825 +#, c-format +msgid "" +"%s: \"superuser_reserved_connections\" (%d) plus " +"\"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" +msgstr "" +"%s: значение \"superuser_reserved_connections\" (%d) плюс " +"\"reserved_connections\" (%d) должно быть меньше \"max_connections\" (%d)\n" + +#: postmaster/postmaster.c:833 +#, c-format +msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" +msgstr "архивацию WAL нельзя включить, если \"wal_level\" = \"minimal\"" + +#: postmaster/postmaster.c:836 +#, c-format +msgid "" +"WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be " +"\"replica\" or \"logical\"" +msgstr "" +"для потоковой трансляции WAL (\"max_wal_senders\" > 0) \"wal_level\" должен " +"быть \"replica\" или \"logical\"" + +#: postmaster/postmaster.c:839 +#, c-format +msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" +msgstr "обобщение WAL нельзя включить, если выбран \"wal_level\" \"minimal\"" + +#: postmaster/postmaster.c:847 +#, c-format +msgid "%s: invalid datetoken tables, please fix\n" +msgstr "%s: ошибка в таблицах маркеров времени, требуется исправление\n" + +#: postmaster/postmaster.c:1004 +#, c-format +msgid "could not create I/O completion port for child queue" +msgstr "не удалось создать порт завершения ввода/вывода для очереди потомков" + +#: postmaster/postmaster.c:1069 #, c-format msgid "ending log output to stderr" msgstr "завершение вывода в stderr" -#: postmaster/postmaster.c:1176 +#: postmaster/postmaster.c:1070 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "В дальнейшем протокол будет выводиться в \"%s\"." -#: postmaster/postmaster.c:1187 +#: postmaster/postmaster.c:1081 #, c-format msgid "starting %s" msgstr "запускается %s" -#: postmaster/postmaster.c:1239 +#: postmaster/postmaster.c:1143 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "не удалось создать принимающий сокет для \"%s\"" -#: postmaster/postmaster.c:1245 +#: postmaster/postmaster.c:1149 #, c-format msgid "could not create any TCP/IP sockets" msgstr "не удалось создать сокеты TCP/IP" -#: postmaster/postmaster.c:1277 +#: postmaster/postmaster.c:1181 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "функция DNSServiceRegister() выдала ошибку с кодом %ld" -#: postmaster/postmaster.c:1328 +#: postmaster/postmaster.c:1234 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "не удалось создать Unix-сокет в каталоге \"%s\"" -#: postmaster/postmaster.c:1334 +#: postmaster/postmaster.c:1240 #, c-format msgid "could not create any Unix-domain sockets" msgstr "ни один Unix-сокет создать не удалось" -#: postmaster/postmaster.c:1345 +#: postmaster/postmaster.c:1251 #, c-format msgid "no socket created for listening" msgstr "отсутствуют принимающие сокеты" -#: postmaster/postmaster.c:1376 +#: postmaster/postmaster.c:1282 #, c-format -msgid "%s: could not change permissions of external PID file \"%s\": %s\n" -msgstr "%s: не удалось поменять права для внешнего файла PID \"%s\": %s\n" +msgid "%s: could not change permissions of external PID file \"%s\": %m\n" +msgstr "%s: не удалось поменять права для внешнего файла PID \"%s\": %m\n" -#: postmaster/postmaster.c:1380 +#: postmaster/postmaster.c:1286 #, c-format -msgid "%s: could not write external PID file \"%s\": %s\n" -msgstr "%s: не удалось записать внешний файл PID \"%s\": %s\n" +msgid "%s: could not write external PID file \"%s\": %m\n" +msgstr "%s: не удалось записать внешний файл PID \"%s\": %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1408 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 #, c-format msgid "could not load %s" msgstr "не удалось загрузить %s" -#: postmaster/postmaster.c:1434 +#: postmaster/postmaster.c:1342 #, c-format msgid "postmaster became multithreaded during startup" msgstr "процесс postmaster стал многопоточным при запуске" -#: postmaster/postmaster.c:1435 +#: postmaster/postmaster.c:1343 postmaster/postmaster.c:3684 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Установите в переменной окружения LC_ALL правильную локаль." -#: postmaster/postmaster.c:1536 +#: postmaster/postmaster.c:1442 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: не удалось найти путь к собственному исполняемому файлу" -#: postmaster/postmaster.c:1543 +#: postmaster/postmaster.c:1449 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: подходящий исполняемый файл postgres не найден" -#: postmaster/postmaster.c:1566 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1472 utils/misc/tzparser.c:341 #, c-format msgid "" "This may indicate an incomplete PostgreSQL installation, or that the file " @@ -21442,574 +22182,383 @@ msgstr "" "Возможно, PostgreSQL установлен не полностью или файла \"%s\" нет в " "положенном месте." -#: postmaster/postmaster.c:1593 +#: postmaster/postmaster.c:1499 #, c-format msgid "" "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" -"but could not open file \"%s\": %s\n" +"but could not open file \"%s\": %m\n" msgstr "" "%s: не найдена система баз данных\n" "Ожидалось найти её в каталоге \"%s\",\n" -"но открыть файл \"%s\" не удалось: %s\n" +"но открыть файл \"%s\" не удалось: %m\n" # well-spelled: неподчиняющимся #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1890 +#: postmaster/postmaster.c:1789 #, c-format msgid "issuing %s to recalcitrant children" msgstr "неподчиняющимся потомкам посылается %s" -#: postmaster/postmaster.c:1912 +#: postmaster/postmaster.c:1811 #, c-format msgid "" "performing immediate shutdown because data directory lock file is invalid" msgstr "" "немедленное отключение из-за ошибочного файла блокировки каталога данных" -#: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 -#, c-format -msgid "incomplete startup packet" -msgstr "неполный стартовый пакет" - -#: postmaster/postmaster.c:1999 postmaster/postmaster.c:2032 -#, c-format -msgid "invalid length of startup packet" -msgstr "неверная длина стартового пакета" - -#: postmaster/postmaster.c:2061 -#, c-format -msgid "failed to send SSL negotiation response: %m" -msgstr "не удалось отправить ответ в процессе SSL-согласования: %m" - -#: postmaster/postmaster.c:2079 -#, c-format -msgid "received unencrypted data after SSL request" -msgstr "после запроса SSL получены незашифрованные данные" - -#: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 -#, 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:2105 -#, c-format -msgid "failed to send GSSAPI negotiation response: %m" -msgstr "не удалось отправить ответ в процессе согласования GSSAPI: %m" - -#: postmaster/postmaster.c:2123 -#, c-format -msgid "received unencrypted data after GSSAPI encryption request" -msgstr "после запроса шифрования GSSAPI получены незашифрованные данные" - -#: postmaster/postmaster.c:2147 -#, 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:2214 -#, c-format -msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." -msgstr "Допустимые значения: \"false\", 0, \"true\", 1, \"database\"." - -#: postmaster/postmaster.c:2255 -#, c-format -msgid "invalid startup packet layout: expected terminator as last byte" -msgstr "" -"неверная структура стартового пакета: последним байтом должен быть терминатор" - -#: postmaster/postmaster.c:2272 -#, c-format -msgid "no PostgreSQL user name specified in startup packet" -msgstr "в стартовом пакете не указано имя пользователя PostgreSQL" - -#: postmaster/postmaster.c:2336 -#, c-format -msgid "the database system is starting up" -msgstr "система баз данных запускается" - -#: postmaster/postmaster.c:2342 -#, c-format -msgid "the database system is not yet accepting connections" -msgstr "система БД ещё не принимает подключения" - -#: postmaster/postmaster.c:2343 -#, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "Согласованное состояние восстановления ещё не достигнуто." - -#: postmaster/postmaster.c:2347 -#, c-format -msgid "the database system is not accepting connections" -msgstr "система БД не принимает подключения" - -#: postmaster/postmaster.c:2348 -#, c-format -msgid "Hot standby mode is disabled." -msgstr "Режим горячего резерва отключён." - -#: postmaster/postmaster.c:2353 -#, c-format -msgid "the database system is shutting down" -msgstr "система баз данных останавливается" - -#: postmaster/postmaster.c:2358 -#, c-format -msgid "the database system is in recovery mode" -msgstr "система баз данных в режиме восстановления" - -#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 -#, c-format -msgid "sorry, too many clients already" -msgstr "извините, уже слишком много клиентов" - -#: postmaster/postmaster.c:2450 +#: postmaster/postmaster.c:1874 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильный ключ в запросе на отмену процесса %d" -#: postmaster/postmaster.c:2462 +#: postmaster/postmaster.c:1886 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "процесс с кодом %d, полученным в запросе на отмену, не найден" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2106 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "получен SIGHUP, файлы конфигурации перезагружаются" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2753 postmaster/postmaster.c:2757 +#: postmaster/postmaster.c:2134 postmaster/postmaster.c:2138 #, c-format msgid "%s was not reloaded" msgstr "%s не был перезагружен" -#: postmaster/postmaster.c:2767 +#: postmaster/postmaster.c:2148 #, c-format msgid "SSL configuration was not reloaded" msgstr "конфигурация SSL не была перезагружена" -#: postmaster/postmaster.c:2857 +#: postmaster/postmaster.c:2234 #, c-format msgid "received smart shutdown request" msgstr "получен запрос на \"вежливое\" выключение" -#: postmaster/postmaster.c:2898 +#: postmaster/postmaster.c:2275 #, c-format msgid "received fast shutdown request" msgstr "получен запрос на быстрое выключение" -#: postmaster/postmaster.c:2916 +#: postmaster/postmaster.c:2293 #, c-format msgid "aborting any active transactions" msgstr "прерывание всех активных транзакций" -#: postmaster/postmaster.c:2940 +#: postmaster/postmaster.c:2317 #, c-format msgid "received immediate shutdown request" msgstr "получен запрос на немедленное выключение" -#: postmaster/postmaster.c:3016 +#: postmaster/postmaster.c:2389 #, c-format msgid "shutdown at recovery target" msgstr "выключение при достижении цели восстановления" -#: postmaster/postmaster.c:3034 postmaster/postmaster.c:3070 +#: postmaster/postmaster.c:2407 postmaster/postmaster.c:2443 msgid "startup process" msgstr "стартовый процесс" -#: postmaster/postmaster.c:3037 +#: postmaster/postmaster.c:2410 #, c-format msgid "aborting startup due to startup process failure" msgstr "прерывание запуска из-за ошибки в стартовом процессе" -#: postmaster/postmaster.c:3110 +#: postmaster/postmaster.c:2485 #, c-format msgid "database system is ready to accept connections" msgstr "система БД готова принимать подключения" -#: postmaster/postmaster.c:3131 +#: postmaster/postmaster.c:2506 msgid "background writer process" msgstr "процесс фоновой записи" -#: postmaster/postmaster.c:3178 +#: postmaster/postmaster.c:2553 msgid "checkpointer process" msgstr "процесс контрольных точек" -#: postmaster/postmaster.c:3194 +#: postmaster/postmaster.c:2569 msgid "WAL writer process" msgstr "процесс записи WAL" -#: postmaster/postmaster.c:3209 +#: postmaster/postmaster.c:2584 msgid "WAL receiver process" msgstr "процесс считывания WAL" -#: postmaster/postmaster.c:3224 +#: postmaster/postmaster.c:2598 +msgid "WAL summarizer process" +msgstr "процесс обобщения WAL" + +#: postmaster/postmaster.c:2613 msgid "autovacuum launcher process" msgstr "процесс запуска автоочистки" -#: postmaster/postmaster.c:3242 +#: postmaster/postmaster.c:2631 msgid "archiver process" msgstr "процесс архивации" -#: postmaster/postmaster.c:3255 +#: postmaster/postmaster.c:2644 msgid "system logger process" msgstr "процесс системного протоколирования" -#: postmaster/postmaster.c:3312 +#: postmaster/postmaster.c:2661 +msgid "slot sync worker process" +msgstr "рабочий процесс синхронизации слотов" + +#: postmaster/postmaster.c:2717 #, c-format msgid "background worker \"%s\"" msgstr "фоновый процесс \"%s\"" -#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 -#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 +#: postmaster/postmaster.c:2796 postmaster/postmaster.c:2816 +#: postmaster/postmaster.c:2823 postmaster/postmaster.c:2841 msgid "server process" msgstr "процесс сервера" -#: postmaster/postmaster.c:3490 +#: postmaster/postmaster.c:2895 #, 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:3665 +#: postmaster/postmaster.c:3082 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершился с кодом выхода %d" -#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 -#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 +#: postmaster/postmaster.c:3084 postmaster/postmaster.c:3096 +#: postmaster/postmaster.c:3106 postmaster/postmaster.c:3117 #, 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:3676 +#: postmaster/postmaster.c:3093 #, 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:3686 +#: postmaster/postmaster.c:3103 #, 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:3698 +#: postmaster/postmaster.c:3115 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" -msgstr "%s (PID %d) завершился с неизвестным кодом состояния %d" +msgstr "%s (PID %d) завершился с нераспознанным кодом состояния %d" -#: postmaster/postmaster.c:3906 +#: postmaster/postmaster.c:3331 #, c-format msgid "abnormal database system shutdown" msgstr "аварийное выключение системы БД" -#: postmaster/postmaster.c:3932 +#: postmaster/postmaster.c:3357 #, c-format msgid "shutting down due to startup process failure" msgstr "сервер останавливается из-за ошибки в стартовом процессе" -#: postmaster/postmaster.c:3938 +#: postmaster/postmaster.c:3363 #, c-format -msgid "shutting down because restart_after_crash is off" -msgstr "сервер останавливается, так как параметр restart_after_crash равен off" +msgid "shutting down because \"restart_after_crash\" is off" +msgstr "сервер останавливается, так как \"restart_after_crash\" = \"off\"" -#: postmaster/postmaster.c:3950 +#: postmaster/postmaster.c:3375 #, c-format msgid "all server processes terminated; reinitializing" msgstr "все серверные процессы завершены... переинициализация" -#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 -#: postmaster/postmaster.c:5860 +#: postmaster/postmaster.c:3574 postmaster/postmaster.c:3985 +#: postmaster/postmaster.c:4374 #, c-format msgid "could not generate random cancel key" msgstr "не удалось сгенерировать случайный ключ отмены" -#: postmaster/postmaster.c:4206 +#: postmaster/postmaster.c:3607 #, c-format msgid "could not fork new process for connection: %m" msgstr "породить новый процесс для соединения не удалось: %m" -#: postmaster/postmaster.c:4248 +#: postmaster/postmaster.c:3649 msgid "could not fork new process for connection: " msgstr "породить новый процесс для соединения не удалось: " -#: postmaster/postmaster.c:4354 +#: postmaster/postmaster.c:3683 #, c-format -msgid "connection received: host=%s port=%s" -msgstr "принято подключение: узел=%s порт=%s" +msgid "postmaster became multithreaded" +msgstr "процесс postmaster стал многопоточным" -#: postmaster/postmaster.c:4359 -#, c-format -msgid "connection received: host=%s" -msgstr "принято подключение: узел=%s" - -#: postmaster/postmaster.c:4596 -#, c-format -msgid "could not execute server process \"%s\": %m" -msgstr "запустить серверный процесс \"%s\" не удалось: %m" - -#: postmaster/postmaster.c:4654 -#, c-format -msgid "could not create backend parameter file mapping: error code %lu" -msgstr "" -"создать отображение файла серверных параметров не удалось (код ошибки: %lu)" - -#: postmaster/postmaster.c:4663 -#, c-format -msgid "could not map backend parameter memory: error code %lu" -msgstr "" -"отобразить файл серверных параметров в память не удалось (код ошибки: %lu)" - -#: postmaster/postmaster.c:4690 -#, c-format -msgid "subprocess command line too long" -msgstr "слишком длинная командная строка подпроцесса" - -#: postmaster/postmaster.c:4708 -#, c-format -msgid "CreateProcess() call failed: %m (error code %lu)" -msgstr "ошибка в CreateProcess(): %m (код ошибки: %lu)" - -#: postmaster/postmaster.c:4735 -#, c-format -msgid "could not unmap view of backend parameter file: error code %lu" -msgstr "" -"отключить отображение файла серверных параметров не удалось (код ошибки: %lu)" - -#: postmaster/postmaster.c:4739 -#, c-format -msgid "could not close handle to backend parameter file: error code %lu" -msgstr "" -"закрыть указатель файла серверных параметров не удалось (код ошибки: %lu)" - -#: postmaster/postmaster.c:4761 -#, c-format -msgid "giving up after too many tries to reserve shared memory" -msgstr "" -"число повторных попыток резервирования разделяемой памяти достигло предела" - -#: postmaster/postmaster.c:4762 -#, c-format -msgid "This might be caused by ASLR or antivirus software." -msgstr "Это может быть вызвано антивирусным ПО или механизмом ASLR." - -#: postmaster/postmaster.c:4935 -#, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "не удалось загрузить конфигурацию SSL в дочерний процесс" - -#: postmaster/postmaster.c:5060 -#, c-format -msgid "Please report this to <%s>." -msgstr "Пожалуйста, напишите об этой ошибке по адресу <%s>." - -#: postmaster/postmaster.c:5128 +#: postmaster/postmaster.c:3752 #, c-format msgid "database system is ready to accept read-only connections" msgstr "система БД готова принимать подключения в режиме \"только чтение\"" -#: postmaster/postmaster.c:5386 -#, c-format -msgid "could not fork startup process: %m" -msgstr "породить стартовый процесс не удалось: %m" - -#: postmaster/postmaster.c:5390 +#: postmaster/postmaster.c:3935 #, c-format -msgid "could not fork archiver process: %m" -msgstr "породить процесс архиватора не удалось: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "породить процесс \"%s\" не удалось: %m" -#: postmaster/postmaster.c:5394 -#, c-format -msgid "could not fork background writer process: %m" -msgstr "породить процесс фоновой записи не удалось: %m" - -#: postmaster/postmaster.c:5398 -#, c-format -msgid "could not fork checkpointer process: %m" -msgstr "породить процесс контрольных точек не удалось: %m" - -#: postmaster/postmaster.c:5402 -#, c-format -msgid "could not fork WAL writer process: %m" -msgstr "породить процесс записи WAL не удалось: %m" - -#: postmaster/postmaster.c:5406 -#, c-format -msgid "could not fork WAL receiver process: %m" -msgstr "породить процесс считывания WAL не удалось: %m" - -#: postmaster/postmaster.c:5410 -#, c-format -msgid "could not fork process: %m" -msgstr "породить процесс не удалось: %m" - -#: postmaster/postmaster.c:5611 postmaster/postmaster.c:5638 +#: postmaster/postmaster.c:4173 postmaster/postmaster.c:4207 #, c-format msgid "database connection requirement not indicated during registration" msgstr "" "при регистрации фонового процесса не указывалось, что ему требуется " "подключение к БД" -#: postmaster/postmaster.c:5622 postmaster/postmaster.c:5649 +#: postmaster/postmaster.c:4183 postmaster/postmaster.c:4217 #, c-format msgid "invalid processing mode in background worker" msgstr "неправильный режим обработки в фоновом процессе" -#: postmaster/postmaster.c:5734 -#, c-format -msgid "could not fork worker process: %m" -msgstr "породить рабочий процесс не удалось: %m" - -#: postmaster/postmaster.c:5846 -#, c-format -msgid "no slot available for new worker process" -msgstr "для нового рабочего процесса не нашлось свободного слота" - -#: postmaster/postmaster.c:6177 -#, c-format -msgid "could not duplicate socket %d for use in backend: error code %d" -msgstr "" -"продублировать сокет %d для серверного процесса не удалось (код ошибки: %d)" - -#: postmaster/postmaster.c:6209 -#, c-format -msgid "could not create inherited socket: error code %d\n" -msgstr "создать наследуемый сокет не удалось (код ошибки: %d)\n" - -#: postmaster/postmaster.c:6238 -#, c-format -msgid "could not open backend variables file \"%s\": %s\n" -msgstr "открыть файл серверных переменных \"%s\" не удалось: %s\n" - -#: postmaster/postmaster.c:6245 -#, c-format -msgid "could not read from backend variables file \"%s\": %s\n" -msgstr "прочитать файл серверных переменных \"%s\" не удалось: %s\n" - -#: postmaster/postmaster.c:6254 -#, c-format -msgid "could not remove file \"%s\": %s\n" -msgstr "не удалось стереть файл \"%s\": %s\n" - -#: postmaster/postmaster.c:6271 -#, c-format -msgid "could not map view of backend variables: error code %lu\n" -msgstr "отобразить файл серверных переменных не удалось (код ошибки: %lu)\n" - -#: postmaster/postmaster.c:6280 +#: postmaster/postmaster.c:4277 #, c-format -msgid "could not unmap view of backend variables: error code %lu\n" -msgstr "" -"отключить отображение файла серверных переменных не удалось (код ошибки: " -"%lu)\n" +msgid "could not fork background worker process: %m" +msgstr "породить фоновый рабочий процесс не удалось: %m" -#: postmaster/postmaster.c:6287 +#: postmaster/postmaster.c:4360 #, c-format -msgid "could not close handle to backend parameter variables: error code %lu\n" -msgstr "" -"закрыть указатель файла серверных переменных не удалось (код ошибки: %lu)\n" +msgid "no slot available for new background worker process" +msgstr "для нового фонового рабочего процесса нет свободного слота" -#: postmaster/postmaster.c:6446 +#: postmaster/postmaster.c:4623 #, c-format msgid "could not read exit code for process\n" msgstr "прочитать код завершения процесса не удалось\n" -#: postmaster/postmaster.c:6488 +#: postmaster/postmaster.c:4665 #, c-format msgid "could not post child completion status\n" msgstr "отправить состояние завершения потомка не удалось\n" -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 +#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 #, c-format msgid "could not read from logger pipe: %m" msgstr "не удалось прочитать из канала протоколирования: %m" -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 +#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 #, c-format msgid "could not create pipe for syslog: %m" msgstr "не удалось создать канал для syslog: %m" -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:712 #, c-format msgid "could not fork system logger: %m" msgstr "не удалось породить процесс системного протоколирования: %m" -#: postmaster/syslogger.c:713 +#: postmaster/syslogger.c:731 #, c-format msgid "redirecting log output to logging collector process" msgstr "передача вывода в протокол процессу сбора протоколов" -#: postmaster/syslogger.c:714 +#: postmaster/syslogger.c:732 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "В дальнейшем протоколы будут выводиться в каталог \"%s\"." -#: postmaster/syslogger.c:722 +#: postmaster/syslogger.c:740 #, c-format msgid "could not redirect stdout: %m" msgstr "не удалось перенаправить stdout: %m" -#: postmaster/syslogger.c:727 postmaster/syslogger.c:744 +#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 #, c-format msgid "could not redirect stderr: %m" msgstr "не удалось перенаправить stderr: %m" -#: postmaster/syslogger.c:1177 +#: postmaster/syslogger.c:1128 #, c-format -msgid "could not write to log file: %s\n" -msgstr "не удалось записать в файл протокола: %s\n" +msgid "could not write to log file: %m\n" +msgstr "не удалось записать в файл протокола: %m\n" -#: postmaster/syslogger.c:1295 +#: postmaster/syslogger.c:1246 #, c-format msgid "could not open log file \"%s\": %m" msgstr "не удалось открыть файл протокола \"%s\": %m" -#: postmaster/syslogger.c:1385 +#: postmaster/syslogger.c:1336 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "отключение автопрокрутки (чтобы включить, передайте SIGHUP)" -#: regex/regc_pg_locale.c:242 +#: postmaster/walsummarizer.c:740 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "процесс обобщения WAL не продвигается" + +#: postmaster/walsummarizer.c:741 +#, c-format +msgid "" +"Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/" +"%X in memory." +msgstr "" +"Обобщение должно охватить %X/%X, но оно остановилось на позиции %X/%X на " +"диске и %X/%X в памяти." + +#: postmaster/walsummarizer.c:755 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "" +"still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "ожидание обобщения позиции %X/%X продолжается %ld сек." +msgstr[1] "ожидание обобщения позиции %X/%X продолжается %ld сек." +msgstr[2] "ожидание обобщения позиции %X/%X продолжается %ld сек." + +#: postmaster/walsummarizer.c:760 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "Процесс обобщения достиг позиции %X/%X на диске и %X/%X в памяти." + +#: postmaster/walsummarizer.c:1000 +#, c-format +msgid "could not find a valid record after %X/%X" +msgstr "не удалось найти корректную запись после %X/%X" + +#: postmaster/walsummarizer.c:1045 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X: %s" +msgstr "не удалось прочитать WAL с линии времени %u в позиции %X/%X: %s" + +#: postmaster/walsummarizer.c:1051 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X" +msgstr "не удалось прочитать WAL с линии времени %u в позиции %X/%X" + +#: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "" "не удалось определить, какое правило сортировки использовать для регулярного " "выражения" -#: regex/regc_pg_locale.c:265 +#: regex/regc_pg_locale.c:262 #, c-format msgid "nondeterministic collations are not supported for regular expressions" msgstr "" "недетерминированные правила сортировки не поддерживаются для регулярных " "выражений" -#: replication/libpqwalreceiver/libpqwalreceiver.c:245 -#: replication/libpqwalreceiver/libpqwalreceiver.c:332 +#: replication/libpqwalreceiver/libpqwalreceiver.c:267 +#: replication/libpqwalreceiver/libpqwalreceiver.c:358 #, c-format msgid "password is required" msgstr "требуется пароль" -#: replication/libpqwalreceiver/libpqwalreceiver.c:246 +#: replication/libpqwalreceiver/libpqwalreceiver.c:268 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "" "Только суперпользователи могут подключаться к серверу, не требующему пароль." -#: replication/libpqwalreceiver/libpqwalreceiver.c:247 +#: replication/libpqwalreceiver/libpqwalreceiver.c:269 #, c-format msgid "" "Target server's authentication method must be changed, or set " @@ -22018,29 +22567,30 @@ msgstr "" "Необходимо сменить метод аутентификации на целевом сервере или задать " "password_required=false в параметрах подписки." -#: replication/libpqwalreceiver/libpqwalreceiver.c:259 +#: replication/libpqwalreceiver/libpqwalreceiver.c:285 #, c-format msgid "could not clear search path: %s" msgstr "не удалось очистить путь поиска: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:305 +#: replication/libpqwalreceiver/libpqwalreceiver.c:331 +#: replication/libpqwalreceiver/libpqwalreceiver.c:517 #, c-format msgid "invalid connection string syntax: %s" msgstr "ошибочный синтаксис строки подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:333 +#: replication/libpqwalreceiver/libpqwalreceiver.c:359 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "" "Пользователи, не являющиеся суперпользователями, должны задавать пароль в " "строке соединения." -#: replication/libpqwalreceiver/libpqwalreceiver.c:360 +#: replication/libpqwalreceiver/libpqwalreceiver.c:386 #, c-format msgid "could not parse connection string: %s" msgstr "не удалось разобрать строку подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:433 +#: replication/libpqwalreceiver/libpqwalreceiver.c:459 #, c-format msgid "" "could not receive database system identifier and timeline ID from the " @@ -22049,13 +22599,13 @@ msgstr "" "не удалось получить идентификатор СУБД и код линии времени с главного " "сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:449 -#: replication/libpqwalreceiver/libpqwalreceiver.c:692 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:763 #, c-format msgid "invalid response from primary server" msgstr "неверный ответ главного сервера" -#: replication/libpqwalreceiver/libpqwalreceiver.c:450 +#: replication/libpqwalreceiver/libpqwalreceiver.c:477 #, c-format msgid "" "Could not identify system: got %d rows and %d fields, expected %d rows and " @@ -22064,86 +22614,91 @@ msgstr "" "Не удалось идентифицировать систему, получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))." -#: replication/libpqwalreceiver/libpqwalreceiver.c:535 -#: replication/libpqwalreceiver/libpqwalreceiver.c:542 -#: replication/libpqwalreceiver/libpqwalreceiver.c:572 +#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:613 +#: replication/libpqwalreceiver/libpqwalreceiver.c:643 #, c-format msgid "could not start WAL streaming: %s" msgstr "не удалось начать трансляцию WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 +#: replication/libpqwalreceiver/libpqwalreceiver.c:667 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не удалось отправить главному серверу сообщение о конце передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:619 +#: replication/libpqwalreceiver/libpqwalreceiver.c:690 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неожиданный набор данных после конца передачи" -#: replication/libpqwalreceiver/libpqwalreceiver.c:634 +#: replication/libpqwalreceiver/libpqwalreceiver.c:705 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ошибка при остановке потоковой операции COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:644 +#: replication/libpqwalreceiver/libpqwalreceiver.c:715 #, c-format msgid "error reading result of streaming command: %s" msgstr "ошибка при чтении результата команды передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:653 -#: replication/libpqwalreceiver/libpqwalreceiver.c:889 +#: replication/libpqwalreceiver/libpqwalreceiver.c:724 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неожиданный результат после CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:680 +#: replication/libpqwalreceiver/libpqwalreceiver.c:751 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не удалось получить файл истории линии времени с главного сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:693 +#: replication/libpqwalreceiver/libpqwalreceiver.c:764 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Ожидался 1 кортеж с 2 полями, однако получено кортежей: %d, полей: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:852 -#: replication/libpqwalreceiver/libpqwalreceiver.c:905 -#: replication/libpqwalreceiver/libpqwalreceiver.c:912 +#: replication/libpqwalreceiver/libpqwalreceiver.c:920 +#: replication/libpqwalreceiver/libpqwalreceiver.c:973 +#: replication/libpqwalreceiver/libpqwalreceiver.c:980 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не удалось получить данные из потока WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:932 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не удалось отправить данные в поток WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1024 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не удалось создать слот репликации \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1070 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#, c-format +msgid "could not alter replication slot \"%s\": %s" +msgstr "не удалось изменить свойства слота репликации \"%s\": %s" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 #, c-format msgid "invalid query response" msgstr "неверный ответ на запрос" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1071 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Ожидалось полей: %d, получено: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1141 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 #, c-format msgid "the query interface requires a database connection" msgstr "для интерфейса запросов требуется подключение к БД" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1172 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 msgid "empty query" msgstr "пустой запрос" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1178 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 msgid "unexpected pipeline mode" msgstr "неожиданный режим канала" @@ -22156,35 +22711,35 @@ msgstr "" "параллельный применяющий процесс логической репликации для подписки \"%s\" " "завершён" -#: replication/logical/applyparallelworker.c:825 +#: replication/logical/applyparallelworker.c:822 #, c-format msgid "lost connection to the logical replication apply worker" msgstr "потеряна связь с применяющим процессом логической репликации" -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 +#: replication/logical/applyparallelworker.c:1024 +#: replication/logical/applyparallelworker.c:1026 msgid "logical replication parallel apply worker" msgstr "параллельный применяющий процесс логической репликации" -#: replication/logical/applyparallelworker.c:1043 +#: replication/logical/applyparallelworker.c:1040 #, c-format msgid "logical replication parallel apply worker exited due to error" msgstr "" "параллельный применяющий процесс логической репликации завершён из-за ошибки" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 +#: replication/logical/applyparallelworker.c:1127 +#: replication/logical/applyparallelworker.c:1300 #, c-format msgid "lost connection to the logical replication parallel apply worker" msgstr "" "потеряна связь с параллельным применяющим процессом логическим репликации" -#: replication/logical/applyparallelworker.c:1183 +#: replication/logical/applyparallelworker.c:1180 #, c-format msgid "could not send data to shared-memory queue" msgstr "не удалось передать данные в очередь в разделяемой памяти" -#: replication/logical/applyparallelworker.c:1218 +#: replication/logical/applyparallelworker.c:1215 #, c-format msgid "" "logical replication apply worker will serialize the remaining changes of " @@ -22193,47 +22748,48 @@ msgstr "" "применяющий процесс логической репликации будет сериализовывать остальное " "содержимое удалённой транзакции %u в файл" -#: replication/logical/decode.c:180 replication/logical/logical.c:140 +#: replication/logical/decode.c:177 replication/logical/logical.c:141 #, c-format msgid "" -"logical decoding on standby requires wal_level >= logical on the primary" +"logical decoding on standby requires \"wal_level\" >= \"logical\" on the " +"primary" msgstr "" -"для логического декодирования на ведомом сервере требуется wal_level >= " -"logical на ведущем" +"для логического декодирования на ведомом сервере требуется \"wal_level\" >= " +"\"logical\" на ведущем" -#: replication/logical/launcher.c:331 +#: replication/logical/launcher.c:334 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" msgstr "" "нельзя запустить процессы-обработчики логической репликации при " "max_replication_slots = 0" -#: replication/logical/launcher.c:424 +#: replication/logical/launcher.c:427 #, c-format msgid "out of logical replication worker slots" msgstr "недостаточно слотов для процессов логической репликации" -#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 -#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 -#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 -#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 -#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 +#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 +#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023 +#: storage/lmgr/lock.c:2836 storage/lmgr/lock.c:4221 storage/lmgr/lock.c:4286 +#: storage/lmgr/lock.c:4636 storage/lmgr/predicate.c:2469 +#: storage/lmgr/predicate.c:2484 storage/lmgr/predicate.c:3881 #, c-format -msgid "You might need to increase %s." -msgstr "Возможно, следует увеличить параметр %s." +msgid "You might need to increase \"%s\"." +msgstr "Возможно, следует увеличить параметр \"%s\"." -#: replication/logical/launcher.c:498 +#: replication/logical/launcher.c:513 #, c-format msgid "out of background worker slots" msgstr "недостаточно слотов для фоновых рабочих процессов" -#: replication/logical/launcher.c:705 +#: replication/logical/launcher.c:720 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "" "слот обработчика логической репликации %d пуст, подключиться к нему нельзя" -#: replication/logical/launcher.c:714 +#: replication/logical/launcher.c:729 #, c-format msgid "" "logical replication worker slot %d is already used by another worker, cannot " @@ -22242,28 +22798,28 @@ msgstr "" "слот обработчика логической репликации %d уже занят другим процессом, " "подключиться к нему нельзя" -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:121 #, c-format -msgid "logical decoding requires wal_level >= logical" -msgstr "для логического декодирования требуется wal_level >= logical" +msgid "logical decoding requires \"wal_level\" >= \"logical\"" +msgstr "для логического декодирования требуется \"wal_level\" >= \"logical\"" -#: replication/logical/logical.c:125 +#: replication/logical/logical.c:126 #, c-format msgid "logical decoding requires a database connection" msgstr "для логического декодирования требуется подключение к БД" -#: replication/logical/logical.c:363 replication/logical/logical.c:517 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "" "физический слот репликации нельзя использовать для логического декодирования" -#: replication/logical/logical.c:368 replication/logical/logical.c:522 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "слот репликации \"%s\" создан не в этой базе данных" -#: replication/logical/logical.c:375 +#: replication/logical/logical.c:377 #, c-format msgid "" "cannot create logical replication slot in transaction that has performed " @@ -22271,12 +22827,29 @@ msgid "" msgstr "" "нельзя создать слот логической репликации в транзакции, осуществляющей запись" -#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#: replication/logical/logical.c:540 +#, c-format +msgid "cannot use replication slot \"%s\" for logical decoding" +msgstr "" +"слот репликации \"%s\" нельзя использовать для логического декодирования" + +#: replication/logical/logical.c:542 replication/slot.c:798 +#: replication/slot.c:829 +#, c-format +msgid "This replication slot is being synchronized from the primary server." +msgstr "Этот слот репликации синхронизируется с ведущего сервера." + +#: replication/logical/logical.c:543 +#, c-format +msgid "Specify another replication slot." +msgstr "Укажите другой слот репликации." + +#: replication/logical/logical.c:554 replication/logical/logical.c:561 #, c-format msgid "can no longer get changes from replication slot \"%s\"" msgstr "из слота репликации \"%s\" больше нельзя получать изменения" -#: replication/logical/logical.c:536 +#: replication/logical/logical.c:556 #, c-format msgid "" "This slot has been invalidated because it exceeded the maximum reserved size." @@ -22284,81 +22857,81 @@ msgstr "" "Этот слот был аннулирован из-за превышения максимального зарезервированного " "размера." -#: replication/logical/logical.c:543 +#: replication/logical/logical.c:563 #, c-format msgid "" "This slot has been invalidated because it was conflicting with recovery." msgstr "Этот слот был аннулирован из-за конфликта с восстановлением." -#: replication/logical/logical.c:608 +#: replication/logical/logical.c:628 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "начинается логическое декодирование для слота \"%s\"" -#: replication/logical/logical.c:610 +#: replication/logical/logical.c:630 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Передача транзакций, фиксируемых после %X/%X, чтение WAL с %X/%X." -#: replication/logical/logical.c:758 +#: replication/logical/logical.c:778 #, c-format msgid "" "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "" "слот \"%s\", модуль вывода \"%s\", в обработчике %s, связанный LSN: %X/%X" -#: replication/logical/logical.c:764 +#: replication/logical/logical.c:784 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "слот \"%s\", модуль вывода \"%s\", в обработчике %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:955 replication/logical/logical.c:1000 +#: replication/logical/logical.c:1045 replication/logical/logical.c:1091 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "для логической репликации во время подготовки требуется обработчик %s" -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1323 replication/logical/logical.c:1372 +#: replication/logical/logical.c:1413 replication/logical/logical.c:1499 +#: replication/logical/logical.c:1548 #, c-format msgid "logical streaming requires a %s callback" msgstr "для логической потоковой репликации требуется обработчик %s" -#: replication/logical/logical.c:1438 +#: replication/logical/logical.c:1458 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "" "для логической потоковой репликации во время подготовки требуется обработчик " "%s" -#: replication/logical/logicalfuncs.c:126 +#: replication/logical/logicalfuncs.c:123 #, c-format msgid "slot name must not be null" msgstr "имя слота не может быть NULL" -#: replication/logical/logicalfuncs.c:142 +#: replication/logical/logicalfuncs.c:139 #, c-format msgid "options array must not be null" msgstr "массив параметров не может быть NULL" -#: replication/logical/logicalfuncs.c:159 +#: replication/logical/logicalfuncs.c:156 #, c-format msgid "array must be one-dimensional" msgstr "массив должен быть одномерным" -#: replication/logical/logicalfuncs.c:165 +#: replication/logical/logicalfuncs.c:162 #, c-format msgid "array must not contain nulls" msgstr "массив не должен содержать элементы null" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420 +#: utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "в массиве должно быть чётное число элементов" -#: replication/logical/logicalfuncs.c:227 +#: replication/logical/logicalfuncs.c:224 #, c-format msgid "" "logical decoding output plugin \"%s\" produces binary output, but function " @@ -22370,10 +22943,11 @@ msgstr "" #: replication/logical/origin.c:190 #, c-format msgid "" -"cannot query or manipulate replication origin when max_replication_slots = 0" +"cannot query or manipulate replication origin when \"max_replication_slots\" " +"is 0" msgstr "" "запрашивать или модифицировать источники репликации при " -"max_replication_slots = 0 нельзя" +"\"max_replication_slots\" = 0 нельзя" #: replication/logical/origin.c:195 #, c-format @@ -22410,10 +22984,11 @@ msgstr "" #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase max_replication_slots" +msgid "" +"could not find free replication state, increase \"max_replication_slots\"" msgstr "" "не удалось найти свободную ячейку для состояния репликации, увеличьте " -"max_replication_slots" +"\"max_replication_slots\"" #: replication/logical/origin.c:806 #, c-format @@ -22427,12 +23002,12 @@ msgstr "" "неверная контрольная сумма файла контрольной точки для слота репликации (%u " "вместо %u)" -#: replication/logical/origin.c:944 replication/logical/origin.c:1141 +#: replication/logical/origin.c:944 replication/logical/origin.c:1143 #, c-format msgid "replication origin with ID %d is already active for PID %d" msgstr "источник репликации с ID %d уже занят процессом с PID %d" -#: replication/logical/origin.c:955 replication/logical/origin.c:1153 +#: replication/logical/origin.c:955 replication/logical/origin.c:1156 #, c-format msgid "" "could not find free replication state slot for replication origin with ID %d" @@ -22440,29 +23015,29 @@ msgstr "" "не удалось найти свободный слот состояния репликации для источника " "репликации с ID %d" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2120 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 +#: replication/slot.c:2384 #, c-format -msgid "Increase max_replication_slots and try again." -msgstr "Увеличьте параметр max_replication_slots и повторите попытку." +msgid "Increase \"max_replication_slots\" and try again." +msgstr "Увеличьте параметр \"max_replication_slots\" и повторите попытку." -#: replication/logical/origin.c:1112 +#: replication/logical/origin.c:1114 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "нельзя настроить источник репликации, когда он уже настроен" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1199 replication/logical/origin.c:1415 +#: replication/logical/origin.c:1435 #, c-format msgid "no replication origin is configured" msgstr "ни один источник репликации не настроен" -#: replication/logical/origin.c:1282 +#: replication/logical/origin.c:1285 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "имя источника репликации \"%s\" зарезервировано" -#: replication/logical/origin.c:1284 +#: replication/logical/origin.c:1287 #, c-format msgid "" "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." @@ -22470,17 +23045,17 @@ msgstr "" "Имена источников \"%s\", \"%s\", а также имена, начинающиеся с \"pg_\", " "зарезервированы." -#: replication/logical/relation.c:240 +#: replication/logical/relation.c:242 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:245 #, c-format msgid ", \"%s\"" msgstr ", \"%s\"" -#: replication/logical/relation.c:249 +#: replication/logical/relation.c:251 #, c-format msgid "" "logical replication target relation \"%s.%s\" is missing replicated column: " @@ -22498,7 +23073,7 @@ msgstr[2] "" "в целевом отношении логической репликации (\"%s.%s\") отсутствуют " "реплицируемые столбцы: %s" -#: replication/logical/relation.c:304 +#: replication/logical/relation.c:306 #, c-format msgid "" "logical replication target relation \"%s.%s\" uses system columns in REPLICA " @@ -22507,50 +23082,217 @@ msgstr "" "в целевом отношении логической репликации (\"%s.%s\") в индексе REPLICA " "IDENTITY используются системные столбцы" -#: replication/logical/relation.c:396 +#: replication/logical/relation.c:398 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "целевое отношение логической репликации \"%s.%s\" не существует" -#: replication/logical/reorderbuffer.c:3936 +#: replication/logical/reorderbuffer.c:3999 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "не удалось записать в файл данных для XID %u: %m" -#: replication/logical/reorderbuffer.c:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4370 #, c-format msgid "could not read from reorderbuffer spill file: %m" -msgstr "не удалось прочитать из файла подкачки буфера пересортировки: %m" +msgstr "не удалось прочитать файл подкачки буфера пересортировки: %m" -#: replication/logical/reorderbuffer.c:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4349 +#: replication/logical/reorderbuffer.c:4374 #, c-format msgid "" "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "" -"не удалось прочитать из файла подкачки буфера пересортировки (прочитано " -"байт: %d, требовалось: %u)" +"не удалось прочитать файл подкачки буфера пересортировки (прочитано байт: " +"%d, требовалось: %u)" -#: replication/logical/reorderbuffer.c:4561 +#: replication/logical/reorderbuffer.c:4624 #, 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:5057 +#: replication/logical/reorderbuffer.c:5120 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d, требовалось: %d)" + +#: replication/logical/slotsync.c:215 +#, c-format +msgid "" +"could not synchronize replication slot \"%s\" because remote slot precedes " +"local slot" +msgstr "" +"синхронизировать слот репликации \"%s\" не удалось, так как состояние " +"удалённого слота предшествует локальному" + +#: replication/logical/slotsync.c:217 +#, c-format +msgid "" +"The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has " +"LSN %X/%X and catalog xmin %u." +msgstr "" +"Для удалённого слота текущий LSN %X/%X и xmin каталога %u, тогда как для " +"локального — LSN %X/%X и xmin каталога %u." + +#: replication/logical/slotsync.c:459 +#, c-format +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "слот репликации \"%s\" базы данных с OID %u удалён" + +#: replication/logical/slotsync.c:579 +#, c-format +msgid "could not synchronize replication slot \"%s\"" +msgstr "не удалось синхронизировать слот репликации \"%s\"" + +#: replication/logical/slotsync.c:580 +#, c-format +msgid "" +"Logical decoding could not find consistent point from local slot's LSN %X/%X." msgstr "" -"не удалось прочитать из файла \"%s\" (прочитано байт: %d, требовалось: %d)" +"При логическом декодировании не удалось найти точку согласованности от LSN " +"локального слота %X/%X." -#: replication/logical/snapbuild.c:639 +#: replication/logical/slotsync.c:589 +#, c-format +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "созданный слот репликации \"%s\" сейчас готов к синхронизации" + +#: replication/logical/slotsync.c:628 +#, c-format +msgid "" +"skipping slot synchronization because the received slot sync LSN %X/%X for " +"slot \"%s\" is ahead of the standby position %X/%X" +msgstr "" +"синхронизация слота пропускается, потому что полученная позиция LSN %X/%X " +"для слота \"%s\" предшествует позиции %X/%X на резервном сервере" + +#: replication/logical/slotsync.c:650 +#, c-format +msgid "" +"exiting from slot synchronization because same name slot \"%s\" already " +"exists on the standby" +msgstr "" +"синхронизация слота отменяется, потому что слот с таким же именем \"%s\" уже " +"существует на резервном сервере" + +#: replication/logical/slotsync.c:819 +#, c-format +msgid "could not fetch failover logical slots info from the primary server: %s" +msgstr "" +"не удалось получить информацию о переносимых логических слотах с главного " +"сервера: %s" + +#: replication/logical/slotsync.c:965 +#, c-format +msgid "" +"could not fetch primary_slot_name \"%s\" info from the primary server: %s" +msgstr "не удалось получить информацию о слоте \"%s\" с главного сервера: %s" + +# skip-rule: nastroy1 +#: replication/logical/slotsync.c:967 +#, c-format +msgid "Check if primary_slot_name is configured correctly." +msgstr "Проверьте правильность настройки primary_slot_name." + +#: replication/logical/slotsync.c:987 +#, c-format +msgid "cannot synchronize replication slots from a standby server" +msgstr "синхронизировать слоты репликации с резервного сервера нельзя" + +#. translator: second %s is a GUC variable name +#: replication/logical/slotsync.c:996 +#, c-format +msgid "" +"replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "" +"слот репликации \"%s\", заданный в \"%s\", не существует на главном сервере" + +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1029 +#, c-format +msgid "" +"replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "для синхронизации слотов репликации требуется указание \"%s\" в \"%s\"" + +#: replication/logical/slotsync.c:1050 +#, c-format +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "" +"для синхронизации слотов репликации требуется \"wal_level\" >= \"logical\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "для синхронизации слотов репликации требуется установить \"%s\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1077 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "для синхронизации слотов репликации требуется включить \"%s\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1129 +#, c-format +msgid "" +"replication slot synchronization worker will shut down because \"%s\" is " +"disabled" +msgstr "" +"процесс синхронизации слотов репликации будет остановлен, так как \"%s\" " +"отключён" + +#: replication/logical/slotsync.c:1138 +#, c-format +msgid "" +"replication slot synchronization worker will restart because of a parameter " +"change" +msgstr "" +"процесс синхронизации слотов репликации будет перезапущен вследствие " +"изменения параметров" + +#: replication/logical/slotsync.c:1162 +#, c-format +msgid "" +"replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "" +"процесс синхронизации слотов репликации останавливается, получив сигнал " +"SIGINT" + +#: replication/logical/slotsync.c:1287 +#, c-format +msgid "cannot synchronize replication slots when standby promotion is ongoing" +msgstr "" +"синхронизировать слоты репликации, когда выполняется повышение резервного " +"сервера, нельзя" + +#: replication/logical/slotsync.c:1295 +#, c-format +msgid "cannot synchronize replication slots concurrently" +msgstr "многопоточная синхронизация слотов репликации не поддерживается" + +#: replication/logical/slotsync.c:1403 +#, c-format +msgid "slot sync worker started" +msgstr "рабочий процесс синхронизации слотов запущен" + +#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 +#: replication/walreceiver.c:307 +#, c-format +msgid "could not connect to the primary server: %s" +msgstr "не удалось подключиться к главному серверу: %s" + +#: replication/logical/snapbuild.c:653 #, c-format msgid "initial slot snapshot too large" msgstr "изначальный снимок слота слишком большой" # skip-rule: capital-letter-first -#: replication/logical/snapbuild.c:693 +#: replication/logical/snapbuild.c:707 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "" @@ -22562,68 +23304,68 @@ msgstr[1] "" msgstr[2] "" "экспортирован снимок логического декодирования: \"%s\" (ид. транзакций: %u)" -#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1996 +#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "процесс логического декодирования достиг точки согласованности в %X/%X" -#: replication/logical/snapbuild.c:1390 +#: replication/logical/snapbuild.c:1406 #, c-format msgid "There are no running transactions." msgstr "Больше активных транзакций нет." -#: replication/logical/snapbuild.c:1432 +#: replication/logical/snapbuild.c:1453 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "" "процесс логического декодирования нашёл начальную стартовую точку в %X/%X" -#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 +#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Ожидание транзакций (примерно %d), старее %u до конца." -#: replication/logical/snapbuild.c:1456 +#: replication/logical/snapbuild.c:1477 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "" "при логическом декодировании найдена начальная точка согласованности в %X/%X" -#: replication/logical/snapbuild.c:1482 +#: replication/logical/snapbuild.c:1503 #, c-format msgid "There are no old transactions anymore." msgstr "Больше старых транзакций нет." -#: replication/logical/snapbuild.c:1883 +#: replication/logical/snapbuild.c:1904 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл состояния snapbuild \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/logical/snapbuild.c:1889 +#: replication/logical/snapbuild.c:1910 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "" "файл состояния snapbuild \"%s\" имеет неправильную версию (%u вместо %u)" -#: replication/logical/snapbuild.c:1930 +#: replication/logical/snapbuild.c:1951 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "" "в файле состояния snapbuild \"%s\" неверная контрольная сумма (%u вместо %u)" -#: replication/logical/snapbuild.c:1998 +#: replication/logical/snapbuild.c:2019 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логическое декодирование начнётся с сохранённого снимка." -#: replication/logical/snapbuild.c:2105 +#: replication/logical/snapbuild.c:2126 #, c-format msgid "could not parse file name \"%s\"" msgstr "не удалось разобрать имя файла \"%s\"" -#: replication/logical/tablesync.c:160 +#: replication/logical/tablesync.c:161 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " @@ -22632,7 +23374,7 @@ msgstr "" "процесс синхронизации таблицы при логической репликации для подписки \"%s\", " "таблицы \"%s\" закончил обработку" -#: replication/logical/tablesync.c:639 +#: replication/logical/tablesync.c:641 #, c-format msgid "" "logical replication apply worker for subscription \"%s\" will restart so " @@ -22641,25 +23383,25 @@ msgstr "" "применяющий процесс логической репликации для подписки \"%s\" будет " "перезапущен, чтобы можно было включить режим two_phase" -#: replication/logical/tablesync.c:814 replication/logical/tablesync.c:956 +#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалось получить информацию о таблице \"%s.%s\" с сервера публикации: %s" -#: replication/logical/tablesync.c:821 +#: replication/logical/tablesync.c:834 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблица \"%s.%s\" не найдена на сервере публикации" -#: replication/logical/tablesync.c:879 +#: replication/logical/tablesync.c:892 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалось получить информацию о списке столбцов таблицы \"%s.%s\" с сервера " "публикации: %s" -#: replication/logical/tablesync.c:1058 +#: replication/logical/tablesync.c:1071 #, c-format msgid "" "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: " @@ -22668,25 +23410,25 @@ msgstr "" "не удалось получить информацию о предложении WHERE таблицы \"%s.%s\" с " "сервера публикации: %s" -#: replication/logical/tablesync.c:1217 +#: replication/logical/tablesync.c:1230 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" "не удалось начать копирование начального содержимого таблицы \"%s.%s\": %s" -#: replication/logical/tablesync.c:1418 +#: replication/logical/tablesync.c:1429 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "" "при копировании таблицы не удалось начать транзакцию на сервере публикации: " "%s" -#: replication/logical/tablesync.c:1460 +#: replication/logical/tablesync.c:1472 #, c-format msgid "replication origin \"%s\" already exists" msgstr "источник репликации \"%s\" уже существует" -#: replication/logical/tablesync.c:1493 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 #, c-format msgid "" "user \"%s\" cannot replicate into relation with row-level security enabled: " @@ -22695,14 +23437,14 @@ msgstr "" "пользователь \"%s\" не может реплицировать данные в отношение с включённой " "защитой на уровне строк: \"%s\"" -#: replication/logical/tablesync.c:1506 +#: replication/logical/tablesync.c:1518 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "" "при копировании таблицы не удалось завершить транзакцию на сервере " "публикации: %s" -#: replication/logical/worker.c:499 +#: replication/logical/worker.c:481 #, c-format msgid "" "logical replication parallel apply worker for subscription \"%s\" will stop" @@ -22710,7 +23452,7 @@ msgstr "" "параллельный применяющий процесс логической репликации для подписки \"%s\" " "будет остановлен" -#: replication/logical/worker.c:501 +#: replication/logical/worker.c:483 #, c-format msgid "" "Cannot handle streamed replication transactions using parallel apply workers " @@ -22720,13 +23462,13 @@ msgstr "" "транзакций репликации, передаваемых в потоке, пока все таблицы не " "синхронизированы." -#: replication/logical/worker.c:863 replication/logical/worker.c:978 +#: replication/logical/worker.c:852 replication/logical/worker.c:967 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "" "неправильный формат двоичных данных для столбца логической репликации %d" -#: replication/logical/worker.c:2513 +#: replication/logical/worker.c:2500 #, c-format msgid "" "publisher did not send replica identity column expected by the logical " @@ -22735,7 +23477,7 @@ msgstr "" "сервер публикации не передал столбец идентификации реплики, ожидаемый для " "целевого отношения логической репликации \"%s.%s\"" -#: replication/logical/worker.c:2520 +#: replication/logical/worker.c:2507 #, c-format msgid "" "logical replication target relation \"%s.%s\" has neither REPLICA IDENTITY " @@ -22746,22 +23488,22 @@ msgstr "" "IDENTITY, ни ключа PRIMARY KEY, и публикуемое отношение не имеет " "характеристики REPLICA IDENTITY FULL" -#: replication/logical/worker.c:3384 +#: replication/logical/worker.c:3371 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "неверный тип сообщения логической репликации \"??? (%d)\"" -#: replication/logical/worker.c:3556 +#: replication/logical/worker.c:3543 #, c-format msgid "data stream from publisher has ended" msgstr "поток данных с сервера публикации закончился" -#: replication/logical/worker.c:3713 +#: replication/logical/worker.c:3697 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "завершение обработчика логической репликации из-за тайм-аута" -#: replication/logical/worker.c:3907 +#: replication/logical/worker.c:3891 #, c-format msgid "" "logical replication worker for subscription \"%s\" will stop because the " @@ -22770,7 +23512,7 @@ msgstr "" "процесс логической репликации для подписки \"%s\" будет остановлен, так как " "подписка была удалена" -#: replication/logical/worker.c:3920 +#: replication/logical/worker.c:3905 #, c-format msgid "" "logical replication worker for subscription \"%s\" will stop because the " @@ -22779,7 +23521,7 @@ msgstr "" "процесс логической репликации для подписки \"%s\" будет остановлен, так как " "подписка была отключена" -#: replication/logical/worker.c:3951 +#: replication/logical/worker.c:3936 #, c-format msgid "" "logical replication parallel apply worker for subscription \"%s\" will stop " @@ -22788,7 +23530,7 @@ msgstr "" "параллельный применяющий процесс логической репликации для подписки \"%s\" " "будет остановлен вследствие изменения параметров" -#: replication/logical/worker.c:3955 +#: replication/logical/worker.c:3940 #, c-format msgid "" "logical replication worker for subscription \"%s\" will restart because of a " @@ -22797,8 +23539,32 @@ msgstr "" "процесс логической репликации для подписки \"%s\" будет перезапущен " "вследствие изменения параметров" +#: replication/logical/worker.c:3954 +#, c-format +msgid "" +"logical replication parallel apply worker for subscription \"%s\" will stop " +"because the subscription owner's superuser privileges have been revoked" +msgstr "" +"процесс параллельного применения изменений логической репликации для " +"подписки \"%s\" будет остановлен, потому что владелец подписки был лишён " +"прав суперпользователя" + +#: replication/logical/worker.c:3958 +#, c-format +msgid "" +"logical replication worker for subscription \"%s\" will restart because the " +"subscription owner's superuser privileges have been revoked" +msgstr "" +"процесс логической репликации для подписки \"%s\" будет перезапущен, потому " +"что владелец подписки был лишён прав суперпользователя" + #: replication/logical/worker.c:4478 #, c-format +msgid "subscription has no replication slot set" +msgstr "для подписки не задан слот репликации" + +#: replication/logical/worker.c:4591 +#, c-format msgid "" "logical replication worker for subscription %u will not start because the " "subscription was removed during startup" @@ -22806,7 +23572,7 @@ msgstr "" "процесс логической репликации для подписки %u не будет запущен, так как " "подписка была удалена при старте" -#: replication/logical/worker.c:4493 +#: replication/logical/worker.c:4607 #, c-format msgid "" "logical replication worker for subscription \"%s\" will not start because " @@ -22815,7 +23581,7 @@ msgstr "" "процесс логической репликации для подписки \"%s\" не будет запущен, так как " "подписка была отключена при старте" -#: replication/logical/worker.c:4510 +#: replication/logical/worker.c:4631 #, c-format msgid "" "logical replication table synchronization worker for subscription \"%s\", " @@ -22824,40 +23590,35 @@ msgstr "" "процесс синхронизации таблицы при логической репликации для подписки \"%s\", " "таблицы \"%s\" запущен" -#: replication/logical/worker.c:4515 +#: replication/logical/worker.c:4636 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "" "запускается применяющий процесс логической репликации для подписки \"%s\"" -#: replication/logical/worker.c:4590 -#, c-format -msgid "subscription has no replication slot set" -msgstr "для подписки не задан слот репликации" - -#: replication/logical/worker.c:4757 +#: replication/logical/worker.c:4758 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "подписка \"%s\" была отключена из-за ошибки" -#: replication/logical/worker.c:4805 +#: replication/logical/worker.c:4806 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "" "обработчик логической репликации начинает пропускать транзакцию с LSN %X/%X" -#: replication/logical/worker.c:4819 +#: replication/logical/worker.c:4820 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "" "обработчик логической репликации завершил пропуск транзакции с LSN %X/%X" -#: replication/logical/worker.c:4901 +#: replication/logical/worker.c:4902 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "значение skip-LSN для подписки \"%s\" очищено" -#: replication/logical/worker.c:4902 +#: replication/logical/worker.c:4903 #, c-format msgid "" "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN " @@ -22866,7 +23627,7 @@ msgstr "" "Позиция завершения удалённой транзакции в WAL (LSN) %X/%X не совпала со " "значением skip-LSN %X/%X." -#: replication/logical/worker.c:4928 +#: replication/logical/worker.c:4940 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22875,7 +23636,7 @@ msgstr "" "обработка внешних данных для источника репликации \"%s\" в контексте " "сообщения типа \"%s\"" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:4944 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22884,7 +23645,7 @@ msgstr "" "обработка внешних данных из источника репликации \"%s\" в контексте " "сообщения типа \"%s\" в транзакции %u" -#: replication/logical/worker.c:4937 +#: replication/logical/worker.c:4949 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22893,7 +23654,7 @@ msgstr "" "обработка внешних данных для источника репликации \"%s\" в контексте " "сообщения типа \"%s\" в транзакции %u, конечная позиция %X/%X" -#: replication/logical/worker.c:4948 +#: replication/logical/worker.c:4960 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22903,7 +23664,7 @@ msgstr "" "сообщения типа \"%s\" для целевого отношения репликации \"%s.%s\" в " "транзакции %u" -#: replication/logical/worker.c:4955 +#: replication/logical/worker.c:4967 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22914,7 +23675,7 @@ msgstr "" "сообщения типа \"%s\" для целевого отношения репликации \"%s.%s\" в " "транзакции %u, конечная позиция %X/%X" -#: replication/logical/worker.c:4966 +#: replication/logical/worker.c:4978 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22925,7 +23686,7 @@ msgstr "" "сообщения типа \"%s\" для целевого отношения репликации \"%s.%s\", столбца " "\"%s\", в транзакции %u" -#: replication/logical/worker.c:4974 +#: replication/logical/worker.c:4986 #, c-format msgid "" "processing remote data for replication origin \"%s\" during message type " @@ -22936,22 +23697,27 @@ msgstr "" "сообщения типа \"%s\" для целевого отношения репликации \"%s.%s\", столбца " "\"%s\", в транзакции %u, конечная позиция %X/%X" -#: replication/pgoutput/pgoutput.c:317 +#: replication/pgoutput/pgoutput.c:322 #, c-format msgid "invalid proto_version" msgstr "неверное значение proto_version" -#: replication/pgoutput/pgoutput.c:322 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "proto_version \"%s\" out of range" msgstr "значение proto_verson \"%s\" вне диапазона" -#: replication/pgoutput/pgoutput.c:339 +#: replication/pgoutput/pgoutput.c:344 #, c-format msgid "invalid publication_names syntax" msgstr "неверный синтаксис publication_names" -#: replication/pgoutput/pgoutput.c:440 +#: replication/pgoutput/pgoutput.c:414 replication/pgoutput/pgoutput.c:418 +#, c-format +msgid "option \"%s\" missing" +msgstr "параметр \"%s\" отсутствует" + +#: replication/pgoutput/pgoutput.c:478 #, c-format msgid "" "client sent proto_version=%d but server only supports protocol %d or lower" @@ -22959,7 +23725,7 @@ msgstr "" "клиент передал proto_version=%d, но сервер поддерживает только протокол %d и " "ниже" -#: replication/pgoutput/pgoutput.c:446 +#: replication/pgoutput/pgoutput.c:484 #, c-format msgid "" "client sent proto_version=%d but server only supports protocol %d or higher" @@ -22967,12 +23733,7 @@ msgstr "" "клиент передал proto_version=%d, но сервер поддерживает только протокол %d и " "выше" -#: replication/pgoutput/pgoutput.c:452 -#, c-format -msgid "publication_names parameter missing" -msgstr "отсутствует параметр publication_names" - -#: replication/pgoutput/pgoutput.c:466 +#: replication/pgoutput/pgoutput.c:499 #, c-format msgid "" "requested proto_version=%d does not support streaming, need %d or higher" @@ -22980,7 +23741,7 @@ msgstr "" "запрошенная версия proto_version=%d не поддерживает потоковую передачу, " "требуется версия %d или выше" -#: replication/pgoutput/pgoutput.c:472 +#: replication/pgoutput/pgoutput.c:505 #, c-format msgid "" "requested proto_version=%d does not support parallel streaming, need %d or " @@ -22989,12 +23750,12 @@ msgstr "" "запрошенная версия proto_version=%d не поддерживает параллельную потоковую " "передачу, требуется версия %d или выше" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:510 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "запрошена потоковая передача, но она не поддерживается модулем вывода" -#: replication/pgoutput/pgoutput.c:494 +#: replication/pgoutput/pgoutput.c:524 #, c-format msgid "" "requested proto_version=%d does not support two-phase commit, need %d or " @@ -23003,27 +23764,27 @@ msgstr "" "запрошенная версия proto_version=%d не поддерживает двухфазную фиксацию, " "требуется версия %d или выше" -#: replication/pgoutput/pgoutput.c:499 +#: replication/pgoutput/pgoutput.c:529 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "запрошена двухфазная фиксация, но она не поддерживается модулем вывода" -#: replication/slot.c:207 +#: replication/slot.c:260 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "имя слота репликации \"%s\" слишком короткое" -#: replication/slot.c:216 +#: replication/slot.c:269 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "имя слота репликации \"%s\" слишком длинное" -#: replication/slot.c:229 +#: replication/slot.c:282 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "имя слота репликации \"%s\" содержит недопустимый символ" -#: replication/slot.c:231 +#: replication/slot.c:284 #, c-format msgid "" "Replication slot names may only contain lower case letters, numbers, and the " @@ -23032,59 +23793,112 @@ msgstr "" "Имя слота репликации может содержать только буквы в нижнем регистре, цифры и " "знак подчёркивания." -#: replication/slot.c:285 +#: replication/slot.c:333 +#, c-format +msgid "cannot enable failover for a replication slot created on the standby" +msgstr "" +"слот репликации, созданный на ведомом сервере, не может быть переносимым" + +#: replication/slot.c:345 replication/slot.c:849 +#, c-format +msgid "cannot enable failover for a temporary replication slot" +msgstr "временный слот репликации не может быть переносимым" + +#: replication/slot.c:370 #, c-format msgid "replication slot \"%s\" already exists" msgstr "слот репликации \"%s\" уже существует" -#: replication/slot.c:295 +#: replication/slot.c:380 #, c-format msgid "all replication slots are in use" msgstr "используются все слоты репликации" -#: replication/slot.c:296 +#: replication/slot.c:381 #, c-format -msgid "Free one or increase max_replication_slots." -msgstr "Освободите ненужные или увеличьте параметр max_replication_slots." +msgid "Free one or increase \"max_replication_slots\"." +msgstr "Освободите ненужный или увеличьте параметр \"max_replication_slots\"." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:560 replication/slot.c:2450 replication/slotfuncs.c:661 +#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "слот репликации \"%s\" не существует" -#: replication/slot.c:520 replication/slot.c:1110 +#: replication/slot.c:606 replication/slot.c:1337 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "слот репликации \"%s\" занят процессом с PID %d" -#: replication/slot.c:756 replication/slot.c:1672 replication/slot.c:2055 +#: replication/slot.c:638 +#, c-format +msgid "acquired logical replication slot \"%s\"" +msgstr "получен слот логической репликации \"%s\"" + +#: replication/slot.c:640 +#, c-format +msgid "acquired physical replication slot \"%s\"" +msgstr "получен слот физической репликации \"%s\"" + +#: replication/slot.c:729 +#, c-format +msgid "released logical replication slot \"%s\"" +msgstr "освобождён слот логической репликации \"%s\"" + +#: replication/slot.c:731 +#, c-format +msgid "released physical replication slot \"%s\"" +msgstr "освобождён слот физической репликации \"%s\"" + +#: replication/slot.c:797 +#, c-format +msgid "cannot drop replication slot \"%s\"" +msgstr "удалить слот репликации \"%s\" нельзя" + +#: replication/slot.c:816 +#, c-format +msgid "cannot use %s with a physical replication slot" +msgstr "выполнить %s со слотом физической репликации нельзя" + +#: replication/slot.c:828 +#, c-format +msgid "cannot alter replication slot \"%s\"" +msgstr "изменить слот репликации \"%s\" нельзя" + +#: replication/slot.c:838 +#, c-format +msgid "cannot enable failover for a replication slot on the standby" +msgstr "сделать переносимым слот репликации на ведомом сервере нельзя" + +#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 #, c-format msgid "could not remove directory \"%s\"" msgstr "ошибка при удалении каталога \"%s\"" -#: replication/slot.c:1145 +#: replication/slot.c:1372 #, c-format -msgid "replication slots can only be used if max_replication_slots > 0" +msgid "replication slots can only be used if \"max_replication_slots\" > 0" msgstr "" -"слоты репликации можно использовать, только если max_replication_slots > 0" +"слоты репликации можно использовать, только если \"max_replication_slots\" > " +"0" -#: replication/slot.c:1150 +#: replication/slot.c:1377 #, c-format -msgid "replication slots can only be used if wal_level >= replica" -msgstr "слоты репликации можно использовать, только если wal_level >= replica" +msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" +msgstr "" +"слоты репликации можно использовать, только если \"wal_level\" >= \"replica\"" -#: replication/slot.c:1162 +#: replication/slot.c:1389 #, c-format msgid "permission denied to use replication slots" msgstr "нет прав для использования слотов репликации" -#: replication/slot.c:1163 +#: replication/slot.c:1390 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "Использовать слоты репликации могут только роли с атрибутом %s." -#: replication/slot.c:1271 +#: replication/slot.c:1498 #, c-format msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." @@ -23092,99 +23906,178 @@ msgstr[0] "Позиция restart_lsn %X/%X слота превысила пре msgstr[1] "Позиция restart_lsn %X/%X слота превысила предел на %llu Б." msgstr[2] "Позиция restart_lsn %X/%X слота превысила предел на %llu Б." -#: replication/slot.c:1279 +#: replication/slot.c:1506 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "Слот конфликтует с горизонтом xid %u." -#: replication/slot.c:1284 +#: replication/slot.c:1511 msgid "" -"Logical decoding on standby requires wal_level >= logical on the primary " -"server." +"Logical decoding on standby requires \"wal_level\" >= \"logical\" on the " +"primary server." msgstr "" -"Для логического декодирования на ведомом сервере требуется wal_level >= " -"logical на ведущем." +"Для логического декодирования на ведомом сервере требуется \"wal_level\" >= " +"\"logical\" на ведущем." -#: replication/slot.c:1292 +#: replication/slot.c:1519 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "завершение процесса %d для освобождения слота репликации \"%s\"" -#: replication/slot.c:1294 +#: replication/slot.c:1521 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "аннулирование устаревшего слота репликации \"%s\"" -#: replication/slot.c:1993 +#: replication/slot.c:2249 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл слота репликации \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/slot.c:2000 +#: replication/slot.c:2256 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл состояния snapbuild \"%s\" имеет неподдерживаемую версию %u" -#: replication/slot.c:2007 +#: replication/slot.c:2263 +#, c-format +msgid "replication slot file \"%s\" has corrupted length %u" +msgstr "у файла слота репликации \"%s\" неверная длина: %u" + +#: replication/slot.c:2299 +#, c-format +msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" +msgstr "" +"в файле слота репликации \"%s\" неверная контрольная сумма (%u вместо %u)" + +#: replication/slot.c:2333 +#, c-format +msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" +msgstr "" +"существует слот логической репликации \"%s\", но \"wal_level\" < \"logical\"" + +#: replication/slot.c:2335 +#, c-format +msgid "Change \"wal_level\" to be \"logical\" or higher." +msgstr "Смените \"wal_level\" на \"logical\" или более высокий уровень." + +#: replication/slot.c:2339 +#, c-format +msgid "" +"physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" +msgstr "" +"существует слот физической репликации \"%s\", но \"wal_level\" < \"replica\"" + +#: replication/slot.c:2341 +#, c-format +msgid "Change \"wal_level\" to be \"replica\" or higher." +msgstr "Смените \"wal_level\" на \"replica\" или более высокий уровень." + +#: replication/slot.c:2383 +#, c-format +msgid "too many replication slots active before shutdown" +msgstr "перед завершением активно слишком много слотов репликации" + +#: replication/slot.c:2458 +#, c-format +msgid "\"%s\" is not a physical replication slot" +msgstr "\"%s\" не является слотом физической репликации" + +#: replication/slot.c:2635 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "слот репликации \"%s\", указанный в параметре \"%s\", не существует" + +#: replication/slot.c:2637 replication/slot.c:2671 replication/slot.c:2686 +#, c-format +msgid "" +"Logical replication is waiting on the standby associated with replication " +"slot \"%s\"." +msgstr "" +"Логическая репликация ожидает резервного сервера, связанного со слотом " +"репликации \"%s\"." + +#: replication/slot.c:2639 #, c-format -msgid "replication slot file \"%s\" has corrupted length %u" -msgstr "у файла слота репликации \"%s\" неверная длина: %u" +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "Создайте слот репликации \"%s\" или опустите параметр \"%s\"." -#: replication/slot.c:2043 +#: replication/slot.c:2649 #, c-format -msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" msgstr "" -"в файле слота репликации \"%s\" неверная контрольная сумма (%u вместо %u)" +"слот логической репликации \"%s\" не может быть указан в параметре \"%s\"" -#: replication/slot.c:2077 +#: replication/slot.c:2651 #, c-format -msgid "logical replication slot \"%s\" exists, but wal_level < logical" -msgstr "существует слот логической репликации \"%s\", но wal_level < logical" +msgid "" +"Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "Логическая репликация ожидает исправления слота репликации \"%s\"." -#: replication/slot.c:2079 +#: replication/slot.c:2653 #, c-format -msgid "Change wal_level to be logical or higher." -msgstr "Смените wal_level на logical или более высокий уровень." +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "" +"Удалите указание слота логической репликации \"%s\" из параметра \"%s\"." -#: replication/slot.c:2083 +#: replication/slot.c:2669 #, c-format -msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "существует слот физической репликации \"%s\", но wal_level < replica" +msgid "" +"physical replication slot \"%s\" specified in parameter \"%s\" has been " +"invalidated" +msgstr "" +"слот физической репликации \"%s\", указанный в параметре \"%s\", был " +"аннулирован" -#: replication/slot.c:2085 +#: replication/slot.c:2673 #, c-format -msgid "Change wal_level to be replica or higher." -msgstr "Смените wal_level на replica или более высокий уровень." +msgid "" +"Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "" +"Удалите и пересоздайте слот репликации \"%s\" или опустите параметр \"%s\"." -#: replication/slot.c:2119 +#: replication/slot.c:2684 #, c-format -msgid "too many replication slots active before shutdown" -msgstr "перед завершением активно слишком много слотов репликации" +msgid "" +"replication slot \"%s\" specified in parameter \"%s\" does not have " +"active_pid" +msgstr "" +"у слота репликации \"%s\", указанного в параметре \"%s\", нулевое значение " +"active_pid" + +#: replication/slot.c:2688 +#, c-format +msgid "" +"Start the standby associated with the replication slot \"%s\", or amend " +"parameter \"%s\"." +msgstr "" +"Запустите резервный сервер, связанный со слотом репликации \"%s\", или " +"опустите параметр \"%s\"." -#: replication/slotfuncs.c:601 +#: replication/slotfuncs.c:526 #, c-format msgid "invalid target WAL LSN" msgstr "неверный целевой LSN" -#: replication/slotfuncs.c:623 +#: replication/slotfuncs.c:548 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "слот репликации \"%s\" нельзя продвинуть вперёд" -#: replication/slotfuncs.c:625 +#: replication/slotfuncs.c:550 #, c-format msgid "" "This slot has never previously reserved WAL, or it has been invalidated." msgstr "Для этого слота ранее не резервировался WAL либо слот был аннулирован." -#: replication/slotfuncs.c:641 +#: replication/slotfuncs.c:566 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "" "продвинуть слот репликации к позиции %X/%X нельзя, минимальная позиция: %X/%X" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:673 #, c-format msgid "" "cannot copy physical replication slot \"%s\" as a logical replication slot" @@ -23192,7 +24085,7 @@ msgstr "" "слот физической репликации \"%s\" нельзя скопировать как слот логической " "репликации" -#: replication/slotfuncs.c:750 +#: replication/slotfuncs.c:675 #, c-format msgid "" "cannot copy logical replication slot \"%s\" as a physical replication slot" @@ -23200,17 +24093,17 @@ msgstr "" "слот логической репликации \"%s\" нельзя скопировать как слот физической " "репликации" -#: replication/slotfuncs.c:757 +#: replication/slotfuncs.c:682 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "скопировать слот репликации, для которого не резервируется WAL, нельзя" -#: replication/slotfuncs.c:834 +#: replication/slotfuncs.c:768 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "не удалось скопировать слот репликации \"%s\"" -#: replication/slotfuncs.c:836 +#: replication/slotfuncs.c:770 #, c-format msgid "" "The source replication slot was modified incompatibly during the copy " @@ -23219,21 +24112,26 @@ msgstr "" "Исходный слот репликации был модифицирован несовместимым образом во время " "копирования." -#: replication/slotfuncs.c:842 +#: replication/slotfuncs.c:776 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "" "скопировать слот логической репликации \"%s\" в незавершённом состоянии " "нельзя" -#: replication/slotfuncs.c:844 +#: replication/slotfuncs.c:778 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "" "Повторите попытку, когда для исходного слота репликации будет определена " "позиция confirmed_flush_lsn." -#: replication/syncrep.c:262 +#: replication/slotfuncs.c:877 +#, c-format +msgid "replication slots can only be synchronized to a standby server" +msgstr "слоты репликации могут синхронизироваться только с резервным сервером" + +#: replication/syncrep.c:261 #, c-format msgid "" "canceling the wait for synchronous replication and terminating connection " @@ -23242,7 +24140,7 @@ msgstr "" "отмена ожидания синхронной репликации и закрытие соединения по команде " "администратора" -#: replication/syncrep.c:263 replication/syncrep.c:280 +#: replication/syncrep.c:262 replication/syncrep.c:279 #, c-format msgid "" "The transaction has already committed locally, but might not have been " @@ -23251,147 +24149,142 @@ msgstr "" "Транзакция уже была зафиксирована локально, но, возможно, не была " "реплицирована на резервный сервер." -#: replication/syncrep.c:279 +#: replication/syncrep.c:278 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "отмена ожидания синхронной репликации по запросу пользователя" -#: replication/syncrep.c:486 +#: replication/syncrep.c:485 #, c-format -msgid "standby \"%s\" is now a synchronous standby with priority %u" -msgstr "резервный сервер \"%s\" стал синхронным с приоритетом %u" +msgid "standby \"%s\" is now a synchronous standby with priority %d" +msgstr "резервный сервер \"%s\" стал синхронным с приоритетом %d" -#: replication/syncrep.c:490 +#: replication/syncrep.c:489 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "" "резервный сервер \"%s\" стал кандидатом для включения в кворум синхронных " "резервных" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1013 #, c-format -msgid "synchronous_standby_names parser failed" -msgstr "ошибка при разборе synchronous_standby_names" +msgid "\"synchronous_standby_names\" parser failed" +msgstr "ошибка при разборе \"synchronous_standby_names\"" -#: replication/syncrep.c:1025 +#: replication/syncrep.c:1019 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "число синхронных резервных серверов (%d) должно быть больше нуля" -#: replication/walreceiver.c:180 +#: replication/walreceiver.c:176 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "завершение процесса считывания журнала по команде администратора" -#: replication/walreceiver.c:305 -#, c-format -msgid "could not connect to the primary server: %s" -msgstr "не удалось подключиться к главному серверу: %s" - -#: replication/walreceiver.c:352 +#: replication/walreceiver.c:354 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "идентификаторы СУБД на главном и резервном серверах различаются" -#: replication/walreceiver.c:353 +#: replication/walreceiver.c:355 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Идентификатор на главном сервере: %s, на резервном: %s." -#: replication/walreceiver.c:364 +#: replication/walreceiver.c:366 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "" "последняя линия времени %u на главном сервере отстаёт от восстанавливаемой " "линии времени %u" -#: replication/walreceiver.c:417 +#: replication/walreceiver.c:419 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "" "начало передачи журнала с главного сервера, с позиции %X/%X на линии времени " "%u" -#: replication/walreceiver.c:421 +#: replication/walreceiver.c:423 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "перезапуск передачи журнала с позиции %X/%X на линии времени %u" -#: replication/walreceiver.c:457 +#: replication/walreceiver.c:458 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "продолжить передачу WAL нельзя, восстановление уже окончено" -#: replication/walreceiver.c:501 +#: replication/walreceiver.c:502 #, c-format msgid "replication terminated by primary server" msgstr "репликация прекращена главным сервером" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:503 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "На линии времени %u в %X/%X достигнут конец журнала." -#: replication/walreceiver.c:592 +#: replication/walreceiver.c:593 #, c-format msgid "terminating walreceiver due to timeout" msgstr "завершение приёма журнала из-за тайм-аута" -#: replication/walreceiver.c:624 +#: replication/walreceiver.c:625 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "" "на главном сервере больше нет журналов для запрошенной линии времени %u" -#: replication/walreceiver.c:640 replication/walreceiver.c:1066 +#: replication/walreceiver.c:641 replication/walreceiver.c:1071 #, c-format msgid "could not close WAL segment %s: %m" msgstr "не удалось закрыть сегмент WAL %s: %m" -#: replication/walreceiver.c:759 +#: replication/walreceiver.c:760 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "загрузка файла истории для линии времени %u с главного сервера" -#: replication/walreceiver.c:954 +#: replication/walreceiver.c:959 #, c-format -msgid "could not write to WAL segment %s at offset %u, length %lu: %m" -msgstr "не удалось записать в сегмент WAL %s (смещение %u, длина %lu): %m" +msgid "could not write to WAL segment %s at offset %d, length %lu: %m" +msgstr "не удалось записать в сегмент WAL %s (смещение %d, длина %lu): %m" -#: replication/walsender.c:519 +#: replication/walsender.c:531 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "использовать %s со слотом логической репликации нельзя" -#: replication/walsender.c:623 storage/smgr/md.c:1529 +#: replication/walsender.c:635 storage/smgr/md.c:1735 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не удалось перейти к концу файла \"%s\": %m" -#: replication/walsender.c:627 +#: replication/walsender.c:639 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "не удалось перейти к началу файла \"%s\": %m" -#: replication/walsender.c:704 +#: replication/walsender.c:853 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "" "слот логической репликации нельзя использовать для физической репликации" -#: replication/walsender.c:770 +#: replication/walsender.c:919 #, c-format msgid "" "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "" "в истории сервера нет запрошенной начальной точки %X/%X на линии времени %u" -#: replication/walsender.c:773 +#: replication/walsender.c:922 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "История этого сервера ответвилась от линии времени %u в %X/%X." -#: replication/walsender.c:817 +#: replication/walsender.c:966 #, c-format msgid "" "requested starting point %X/%X is ahead of the WAL flush position of this " @@ -23400,75 +24293,75 @@ msgstr "" "запрошенная начальная точка %X/%X впереди позиции сброшенных данных журнала " "на этом сервере (%X/%X)" -#: replication/walsender.c:1010 +#: replication/walsender.c:1160 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "" "нераспознанное значение для параметра CREATE_REPLICATION_SLOT \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1095 +#: replication/walsender.c:1266 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s требуется выполнять не в транзакции" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1105 +#: replication/walsender.c:1276 #, c-format msgid "%s must be called inside a transaction" msgstr "%s требуется выполнять внутри транзакции" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1111 +#: replication/walsender.c:1282 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s требуется выполнять в транзакции уровня изоляции REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1287 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%s требуется выполнять внутри транзакции только для чтения" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1293 #, c-format msgid "%s must be called before any query" msgstr "%s требуется выполнять до каких-либо запросов" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1299 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s требуется вызывать не в подтранзакции" -#: replication/walsender.c:1275 +#: replication/walsender.c:1472 #, c-format msgid "terminating walsender process after promotion" msgstr "завершение процесса передачи журнала после повышения" -#: replication/walsender.c:1696 +#: replication/walsender.c:2000 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "" "нельзя выполнять новые команды, пока процесс передачи WAL находится в режиме " "остановки" -#: replication/walsender.c:1731 +#: replication/walsender.c:2035 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "" "нельзя выполнять команды SQL в процессе, передающем WAL для физической " "репликации" -#: replication/walsender.c:1764 +#: replication/walsender.c:2068 #, c-format msgid "received replication command: %s" msgstr "получена команда репликации: %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142 +#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234 +#: tcop/postgres.c:2672 tcop/postgres.c:2749 #, c-format msgid "" "current transaction is aborted, commands ignored until end of transaction " @@ -23476,147 +24369,147 @@ msgid "" msgstr "" "текущая транзакция прервана, команды до конца блока транзакции игнорируются" -#: replication/walsender.c:1914 replication/walsender.c:1949 +#: replication/walsender.c:2233 replication/walsender.c:2268 #, c-format msgid "unexpected EOF on standby connection" msgstr "неожиданный обрыв соединения с резервным сервером" -#: replication/walsender.c:1937 +#: replication/walsender.c:2256 #, c-format msgid "invalid standby message type \"%c\"" msgstr "неверный тип сообщения резервного сервера: \"%c\"" -#: replication/walsender.c:2026 +#: replication/walsender.c:2345 #, c-format msgid "unexpected message type \"%c\"" msgstr "неожиданный тип сообщения \"%c\"" -#: replication/walsender.c:2439 +#: replication/walsender.c:2759 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "завершение процесса передачи журнала из-за тайм-аута репликации" -#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 +#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "правило \"%s\" для отношения \"%s\" уже существует" -#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 +#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773 #, c-format msgid "relation \"%s\" cannot have rules" msgstr "к отношению \"%s\" не могут применяться правила" -#: rewrite/rewriteDefine.c:299 +#: rewrite/rewriteDefine.c:292 #, c-format msgid "rule actions on OLD are not implemented" msgstr "действия правил для OLD не реализованы" -#: rewrite/rewriteDefine.c:300 +#: rewrite/rewriteDefine.c:293 #, c-format msgid "Use views or triggers instead." msgstr "Воспользуйтесь представлениями или триггерами." -#: rewrite/rewriteDefine.c:304 +#: rewrite/rewriteDefine.c:297 #, c-format msgid "rule actions on NEW are not implemented" msgstr "действия правил для NEW не реализованы" -#: rewrite/rewriteDefine.c:305 +#: rewrite/rewriteDefine.c:298 #, c-format msgid "Use triggers instead." msgstr "Воспользуйтесь триггерами." -#: rewrite/rewriteDefine.c:319 +#: rewrite/rewriteDefine.c:312 #, c-format msgid "relation \"%s\" cannot have ON SELECT rules" msgstr "к отношению \"%s\" не могут применяться правила ON SELECT" -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "правила INSTEAD NOTHING для SELECT не реализованы" -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:323 #, c-format msgid "Use views instead." msgstr "Воспользуйтесь представлениями." -#: rewrite/rewriteDefine.c:338 +#: rewrite/rewriteDefine.c:331 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "множественные действия в правилах для SELECT не поддерживаются" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:341 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "в правилах для SELECT должно быть действие INSTEAD SELECT" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:349 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "" "правила для SELECT не должны содержать операторы, изменяющие данные, в WITH" -#: rewrite/rewriteDefine.c:364 +#: rewrite/rewriteDefine.c:357 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "в правилах для SELECT не может быть условий" -#: rewrite/rewriteDefine.c:391 +#: rewrite/rewriteDefine.c:384 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" уже является представлением" -#: rewrite/rewriteDefine.c:415 +#: rewrite/rewriteDefine.c:408 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "правило представления для \"%s\" должно называться \"%s\"" -#: rewrite/rewriteDefine.c:442 +#: rewrite/rewriteDefine.c:435 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "в правиле нельзя указать несколько списков RETURNING" -#: rewrite/rewriteDefine.c:447 +#: rewrite/rewriteDefine.c:440 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "списки RETURNING в условных правилах не поддерживаются" -#: rewrite/rewriteDefine.c:451 +#: rewrite/rewriteDefine.c:444 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "списки RETURNING поддерживаются только в правилах INSTEAD" -#: rewrite/rewriteDefine.c:465 +#: rewrite/rewriteDefine.c:458 #, c-format msgid "non-view rule for \"%s\" must not be named \"%s\"" msgstr "" "не относящееся к представлению правило для \"%s\" не может называться \"%s\"" -#: rewrite/rewriteDefine.c:539 +#: rewrite/rewriteDefine.c:532 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "список результата правила для SELECT содержит слишком много столбцов" -#: rewrite/rewriteDefine.c:540 +#: rewrite/rewriteDefine.c:533 #, c-format msgid "RETURNING list has too many entries" msgstr "список RETURNING содержит слишком много столбцов" -#: rewrite/rewriteDefine.c:567 +#: rewrite/rewriteDefine.c:560 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "" "преобразовать отношение, содержащее удалённые столбцы, в представление нельзя" -#: rewrite/rewriteDefine.c:568 +#: rewrite/rewriteDefine.c:561 #, c-format msgid "" "cannot create a RETURNING list for a relation containing dropped columns" msgstr "" "создать список RETURNING для отношения, содержащего удалённые столбцы, нельзя" -#: rewrite/rewriteDefine.c:574 +#: rewrite/rewriteDefine.c:567 #, c-format msgid "" "SELECT rule's target entry %d has different column name from column \"%s\"" @@ -23624,67 +24517,67 @@ msgstr "" "элементу %d результата правила для SELECT присвоено имя, отличное от имени " "столбца \"%s\"" -#: rewrite/rewriteDefine.c:576 +#: rewrite/rewriteDefine.c:569 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "Имя элемента результата SELECT: \"%s\"." -#: rewrite/rewriteDefine.c:585 +#: rewrite/rewriteDefine.c:578 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "" "элемент %d результата правила для SELECT имеет тип, отличный от типа столбца " "\"%s\"" -#: rewrite/rewriteDefine.c:587 +#: rewrite/rewriteDefine.c:580 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "элемент %d списка RETURNING имеет тип, отличный от типа столбца \"%s\"" -#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614 +#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "Элемент результата SELECT имеет тип %s, тогда как тип столбца - %s." -#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618 +#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "Элемент списка RETURNING имеет тип %s, тогда как тип столбца - %s." -#: rewrite/rewriteDefine.c:609 +#: rewrite/rewriteDefine.c:602 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "" "элемент %d результата правила для SELECT имеет размер, отличный от столбца " "\"%s\"" -#: rewrite/rewriteDefine.c:611 +#: rewrite/rewriteDefine.c:604 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "элемент %d списка RETURNING имеет размер, отличный от столбца \"%s\"" -#: rewrite/rewriteDefine.c:628 +#: rewrite/rewriteDefine.c:621 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "список результата правила для SELECT содержит недостаточно элементов" -#: rewrite/rewriteDefine.c:629 +#: rewrite/rewriteDefine.c:622 #, c-format msgid "RETURNING list has too few entries" msgstr "список RETURNING содержит недостаточно элементов" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826 +#: rewrite/rewriteSupport.c:108 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "правило \"%s\" для отношения\"%s\" не существует" -#: rewrite/rewriteDefine.c:852 +#: rewrite/rewriteDefine.c:845 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "переименовывать правило ON SELECT нельзя" -#: rewrite/rewriteHandler.c:583 +#: rewrite/rewriteHandler.c:588 #, c-format msgid "" "WITH query name \"%s\" appears in both a rule action and the query being " @@ -23693,7 +24586,7 @@ msgstr "" "имя запроса WITH \"%s\" оказалось и в действии правила, и в переписываемом " "запросе" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:615 #, c-format msgid "" "INSERT ... SELECT rule actions are not supported for queries having data-" @@ -23702,113 +24595,123 @@ msgstr "" "правила INSERT ... SELECT не поддерживаются для запросов с операторами, " "изменяющими данные, в WITH" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:668 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "RETURNING можно определить только для одного правила" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:939 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "в столбец \"%s\" можно вставить только значение по умолчанию" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:902 rewrite/rewriteHandler.c:968 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "" "Столбец \"%s\" является столбцом идентификации со свойством GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:904 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для переопределения укажите OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:966 rewrite/rewriteHandler.c:974 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "столбцу \"%s\" можно присвоить только значение DEFAULT" -#: rewrite/rewriteHandler.c:1116 rewrite/rewriteHandler.c:1134 +#: rewrite/rewriteHandler.c:1109 rewrite/rewriteHandler.c:1127 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "многочисленные присвоения одному столбцу \"%s\"" -#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4040 +#: rewrite/rewriteHandler.c:1682 +#, c-format +msgid "MERGE is not supported for relations with rules." +msgstr "MERGE не поддерживается для отношений с правилами." + +#: rewrite/rewriteHandler.c:1722 rewrite/rewriteHandler.c:3262 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "доступ к несистемному представлению \"%s\" ограничен" + +#: rewrite/rewriteHandler.c:2122 rewrite/rewriteHandler.c:4254 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в правилах для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2204 +#: rewrite/rewriteHandler.c:2227 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в политике для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2524 +#: rewrite/rewriteHandler.c:2589 msgid "Junk view columns are not updatable." msgstr "Утилизируемые столбцы представлений не обновляются." -#: rewrite/rewriteHandler.c:2529 +#: rewrite/rewriteHandler.c:2594 msgid "" "View columns that are not columns of their base relation are not updatable." msgstr "" "Столбцы представлений, не являющиеся столбцами базовых отношений, не " "обновляются." -#: rewrite/rewriteHandler.c:2532 +#: rewrite/rewriteHandler.c:2597 msgid "View columns that refer to system columns are not updatable." msgstr "" "Столбцы представлений, ссылающиеся на системные столбцы, не обновляются." -#: rewrite/rewriteHandler.c:2535 +#: rewrite/rewriteHandler.c:2600 msgid "View columns that return whole-row references are not updatable." msgstr "" "Столбцы представлений, возвращающие ссылки на всю строку, не обновляются." -#: rewrite/rewriteHandler.c:2596 +#: rewrite/rewriteHandler.c:2661 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Представления с DISTINCT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2664 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Представления с GROUP BY не обновляются автоматически." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2667 msgid "Views containing HAVING are not automatically updatable." msgstr "Представления с HAVING не обновляются автоматически." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2670 msgid "" "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "" "Представления с UNION, INTERSECT или EXCEPT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2608 +#: rewrite/rewriteHandler.c:2673 msgid "Views containing WITH are not automatically updatable." msgstr "Представления с WITH не обновляются автоматически." -#: rewrite/rewriteHandler.c:2611 +#: rewrite/rewriteHandler.c:2676 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Представления с LIMIT или OFFSET не обновляются автоматически." -#: rewrite/rewriteHandler.c:2623 +#: rewrite/rewriteHandler.c:2688 msgid "Views that return aggregate functions are not automatically updatable." msgstr "" "Представления, возвращающие агрегатные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2626 +#: rewrite/rewriteHandler.c:2691 msgid "Views that return window functions are not automatically updatable." msgstr "" "Представления, возвращающие оконные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2629 +#: rewrite/rewriteHandler.c:2694 msgid "" "Views that return set-returning functions are not automatically updatable." msgstr "" "Представления, возвращающие функции с результатом-множеством, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 -#: rewrite/rewriteHandler.c:2648 +#: rewrite/rewriteHandler.c:2701 rewrite/rewriteHandler.c:2705 +#: rewrite/rewriteHandler.c:2713 msgid "" "Views that do not select from a single table or view are not automatically " "updatable." @@ -23816,27 +24719,124 @@ msgstr "" "Представления, выбирающие данные не из одной таблицы или представления, не " "обновляются автоматически." -#: rewrite/rewriteHandler.c:2651 +#: rewrite/rewriteHandler.c:2716 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Представления, содержащие TABLESAMPLE, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2740 msgid "Views that have no updatable columns are not automatically updatable." msgstr "" "Представления, не содержащие обновляемых столбцов, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:3121 rewrite/rewriteHandler.c:3156 +#, c-format +msgid "cannot insert into view \"%s\"" +msgstr "вставить данные в представление \"%s\" нельзя" + +#: rewrite/rewriteHandler.c:3124 +#, c-format +msgid "" +"To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " +"an unconditional ON INSERT DO INSTEAD rule." +msgstr "" +"Чтобы представление допускало добавление данных, установите триггер INSTEAD " +"OF INSERT или безусловное правило ON INSERT DO INSTEAD." + +#: rewrite/rewriteHandler.c:3129 rewrite/rewriteHandler.c:3165 +#, c-format +msgid "cannot update view \"%s\"" +msgstr "изменить данные в представлении \"%s\" нельзя" + +#: rewrite/rewriteHandler.c:3132 +#, c-format +msgid "" +"To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " +"unconditional ON UPDATE DO INSTEAD rule." +msgstr "" +"Чтобы представление допускало изменение данных, установите триггер INSTEAD " +"OF UPDATE или безусловное правило ON UPDATE DO INSTEAD." + +#: rewrite/rewriteHandler.c:3137 rewrite/rewriteHandler.c:3174 +#, c-format +msgid "cannot delete from view \"%s\"" +msgstr "удалить данные из представления \"%s\" нельзя" + +#: rewrite/rewriteHandler.c:3140 +#, c-format +msgid "" +"To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " +"unconditional ON DELETE DO INSTEAD rule." +msgstr "" +"Чтобы представление допускало удаление данных, установите триггер INSTEAD OF " +"DELETE или безусловное правило ON DELETE DO INSTEAD." + +#: rewrite/rewriteHandler.c:3159 +#, c-format +msgid "" +"To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT " +"trigger." +msgstr "" +"Чтобы представление допускало добавление данных посредством MERGE, создайте " +"триггер INSTEAD OF INSERT." + +#: rewrite/rewriteHandler.c:3168 +#, c-format +msgid "" +"To enable updating the view using MERGE, provide an INSTEAD OF UPDATE " +"trigger." +msgstr "" +"Чтобы представление допускало изменение данных посредством MERGE, создайте " +"триггер INSTEAD OF UPDATE." + +#: rewrite/rewriteHandler.c:3177 +#, c-format +msgid "" +"To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE " +"trigger." +msgstr "" +"Чтобы представление допускало удаление данных посредством MERGE, создайте " +"триггер INSTEAD OF DELETE." + +#: rewrite/rewriteHandler.c:3352 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставить данные в столбец \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:3360 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "изменить данные в столбце \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3667 +#: rewrite/rewriteHandler.c:3368 +#, c-format +msgid "cannot merge into column \"%s\" of view \"%s\"" +msgstr "столбец \"%s\" представления \"%s\" не допускает объединение данных" + +#: rewrite/rewriteHandler.c:3396 +#, c-format +msgid "cannot merge into view \"%s\"" +msgstr "представление \"%s\" не допускает объединение данных" + +#: rewrite/rewriteHandler.c:3398 +#, c-format +msgid "" +"MERGE is not supported for views with INSTEAD OF triggers for some actions " +"but not all." +msgstr "" +"MERGE не поддерживается для представлений, имеющих триггеры INSTEAD OF для " +"некоторых, но не всех действий." + +#: rewrite/rewriteHandler.c:3399 +#, c-format +msgid "" +"To enable merging into the view, either provide a full set of INSTEAD OF " +"triggers or drop the existing INSTEAD OF triggers." +msgstr "" +"Чтобы представление допускало объединение данных, или предоставьте полный " +"набор триггеров INSTEAD OF, или удалите существующие триггеры INSTEAD OF." + +#: rewrite/rewriteHandler.c:3912 #, c-format msgid "" "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in " @@ -23845,7 +24845,7 @@ msgstr "" "правила DO INSTEAD NOTIFY не поддерживаются в операторах, изменяющих данные, " "в WITH" -#: rewrite/rewriteHandler.c:3678 +#: rewrite/rewriteHandler.c:3923 #, c-format msgid "" "DO INSTEAD NOTHING rules are not supported for data-modifying statements in " @@ -23854,7 +24854,7 @@ msgstr "" "правила DO INSTEAD NOTHING не поддерживаются в операторах, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3692 +#: rewrite/rewriteHandler.c:3937 #, c-format msgid "" "conditional DO INSTEAD rules are not supported for data-modifying statements " @@ -23863,13 +24863,13 @@ msgstr "" "условные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3696 +#: rewrite/rewriteHandler.c:3941 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "" "правила DO ALSO не поддерживаются для операторов, изменяющих данные, в WITH" -#: rewrite/rewriteHandler.c:3701 +#: rewrite/rewriteHandler.c:3946 #, c-format msgid "" "multi-statement DO INSTEAD rules are not supported for data-modifying " @@ -23878,52 +24878,50 @@ msgstr "" "составные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 -#: rewrite/rewriteHandler.c:3984 -#, c-format +#: rewrite/rewriteHandler.c:4206 msgid "" "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "" "Представления в сочетании с правилами DO INSTEAD с условиями не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:4089 +#: rewrite/rewriteHandler.c:4303 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "выполнить INSERT RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4091 +#: rewrite/rewriteHandler.c:4305 #, 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:4096 +#: rewrite/rewriteHandler.c:4310 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "выполнить UPDATE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4098 +#: rewrite/rewriteHandler.c:4312 #, 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:4103 +#: rewrite/rewriteHandler.c:4317 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "выполнить DELETE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4105 +#: rewrite/rewriteHandler.c:4319 #, 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:4123 +#: rewrite/rewriteHandler.c:4337 #, c-format msgid "" "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or " @@ -23932,7 +24930,7 @@ msgstr "" "INSERT c предложением ON CONFLICT нельзя использовать с таблицей, для " "которой заданы правила INSERT или UPDATE" -#: rewrite/rewriteHandler.c:4180 +#: rewrite/rewriteHandler.c:4394 #, c-format msgid "" "WITH cannot be used in a query that is rewritten by rules into multiple " @@ -23941,17 +24939,17 @@ msgstr "" "WITH нельзя использовать в запросе, преобразованном правилами в несколько " "запросов" -#: rewrite/rewriteManip.c:1075 +#: rewrite/rewriteManip.c:1084 #, c-format msgid "conditional utility statements are not implemented" msgstr "условные служебные операторы не реализованы" -#: rewrite/rewriteManip.c:1419 +#: rewrite/rewriteManip.c:1431 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "условие WHERE CURRENT OF для представлений не реализовано" -#: rewrite/rewriteManip.c:1754 +#: rewrite/rewriteManip.c:1767 #, c-format msgid "" "NEW variables in ON UPDATE rules cannot reference columns that are part of a " @@ -23995,41 +24993,41 @@ msgstr "нераспознанный параметр Snowball: \"%s\"" msgid "missing Language parameter" msgstr "отсутствует параметр Language" -#: statistics/extended_stats.c:179 +#: statistics/extended_stats.c:176 #, c-format msgid "" "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "" "объект статистики \"%s.%s\" не может быть вычислен для отношения \"%s.%s\"" -#: statistics/mcv.c:1372 +#: statistics/mcv.c:1368 #, c-format msgid "" "function returning record called in context that cannot accept type record" msgstr "" "функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" -#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 +#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "обращаться к временным таблицам других сеансов нельзя" -#: storage/buffer/bufmgr.c:1137 +#: storage/buffer/bufmgr.c:1532 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "неверная страница в блоке %u отношения %s; страница обнуляется" -#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359 +#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "не удалось увеличить отношение \"%s\" до блока %u" -#: storage/buffer/bufmgr.c:1998 +#: storage/buffer/bufmgr.c:2348 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неожиданные данные после EOF в блоке %u отношения %s" -#: storage/buffer/bufmgr.c:2000 +#: storage/buffer/bufmgr.c:2350 #, c-format msgid "" "This has been seen to occur with buggy kernels; consider updating your " @@ -24038,37 +25036,32 @@ msgstr "" "Эта ситуация может возникать из-за ошибок в ядре; возможно, вам следует " "обновить ОС." -#: storage/buffer/bufmgr.c:5219 +#: storage/buffer/bufmgr.c:5653 #, c-format msgid "could not write block %u of %s" msgstr "не удалось запись блок %u файла %s" -#: storage/buffer/bufmgr.c:5221 +#: storage/buffer/bufmgr.c:5655 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Множественные сбои - возможно, постоянная ошибка записи." -#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 +#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 #, c-format msgid "writing block %u of relation %s" msgstr "запись блока %u отношения %s" -#: storage/buffer/bufmgr.c:5593 -#, c-format -msgid "snapshot too old" -msgstr "снимок слишком стар" - -#: storage/buffer/localbuf.c:219 +#: storage/buffer/localbuf.c:220 #, c-format msgid "no empty local buffer available" msgstr "нет пустого локального буфера" -#: storage/buffer/localbuf.c:592 +#: storage/buffer/localbuf.c:597 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "обращаться к временным таблицам во время параллельных операций нельзя" -#: storage/buffer/localbuf.c:699 +#: storage/buffer/localbuf.c:712 #, c-format msgid "" "\"temp_buffers\" cannot be changed after any temporary tables have been " @@ -24094,7 +25087,7 @@ msgstr "" msgid "could not read from temporary file: read only %zu of %zu bytes" msgstr "не удалось прочитать временный файл (прочитано байт: %zu из %zu)" -#: storage/file/buffile.c:774 storage/file/buffile.c:895 +#: storage/file/buffile.c:774 storage/file/buffile.c:877 #, c-format msgid "" "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" @@ -24102,115 +25095,115 @@ msgstr "" "не удалось определить размер временного файла \"%s\", входящего в BufFile " "\"%s\": %m" -#: storage/file/buffile.c:974 +#: storage/file/buffile.c:956 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "ошибка удаления набора файлов \"%s\": %m" -#: storage/file/buffile.c:992 storage/smgr/md.c:338 storage/smgr/md.c:1041 +#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1194 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "не удалось обрезать файл \"%s\": %m" -#: storage/file/fd.c:537 storage/file/fd.c:609 storage/file/fd.c:645 +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" msgstr "не удалось сбросить грязные данные: %m" -#: storage/file/fd.c:567 +#: storage/file/fd.c:613 #, c-format msgid "could not determine dirty data size: %m" msgstr "не удалось определить размер грязных данных: %m" -#: storage/file/fd.c:619 +#: storage/file/fd.c:665 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "ошибка в munmap() при сбросе данных на диск: %m" -#: storage/file/fd.c:937 +#: storage/file/fd.c:983 #, c-format msgid "getrlimit failed: %m" msgstr "ошибка в getrlimit(): %m" -#: storage/file/fd.c:1027 +#: storage/file/fd.c:1073 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "недостаточно дескрипторов файлов для запуска серверного процесса" -#: storage/file/fd.c:1028 +#: storage/file/fd.c:1074 #, c-format msgid "System allows %d, server needs at least %d." msgstr "Система может выделить: %d, серверу требуется минимум: %d." -#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 -#: storage/file/fd.c:2825 +#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 +#: storage/file/fd.c:2878 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "нехватка дескрипторов файлов: %m; освободите их и повторите попытку" -#: storage/file/fd.c:1490 +#: storage/file/fd.c:1536 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "временный файл: путь \"%s\", размер %lu" -#: storage/file/fd.c:1629 +#: storage/file/fd.c:1675 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "не удалось создать временный каталог \"%s\": %m" -#: storage/file/fd.c:1636 +#: storage/file/fd.c:1682 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "не удалось создать временный подкаталог \"%s\": %m" -#: storage/file/fd.c:1833 +#: storage/file/fd.c:1879 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "не удалось создать временный файл \"%s\": %m" -#: storage/file/fd.c:1869 +#: storage/file/fd.c:1915 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "не удалось открыть временный файл \"%s\": %m" -#: storage/file/fd.c:1910 +#: storage/file/fd.c:1956 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "ошибка удаления временного файла \"%s\": %m" -#: storage/file/fd.c:1998 +#: storage/file/fd.c:2044 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ошибка удаления файла \"%s\": %m" -#: storage/file/fd.c:2185 +#: storage/file/fd.c:2234 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "размер временного файла превышает предел temp_file_limit (%d КБ)" -#: storage/file/fd.c:2541 storage/file/fd.c:2600 +#: storage/file/fd.c:2594 storage/file/fd.c:2653 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "превышен предел maxAllocatedDescs (%d) при попытке открыть файл \"%s\"" -#: storage/file/fd.c:2645 +#: storage/file/fd.c:2698 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "" "превышен предел maxAllocatedDescs (%d) при попытке выполнить команду \"%s\"" -#: storage/file/fd.c:2801 +#: storage/file/fd.c:2854 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "" "превышен предел maxAllocatedDescs (%d) при попытке открыть каталог \"%s\"" -#: storage/file/fd.c:3331 +#: storage/file/fd.c:3384 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "в каталоге временных файлов обнаружен неуместный файл: \"%s\"" -#: storage/file/fd.c:3449 +#: storage/file/fd.c:3502 #, c-format msgid "" "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" @@ -24218,12 +25211,7 @@ msgstr "" "синхронизация каталога данных (syncfs), прошло времени: %ld.%02d с, текущий " "путь: %s" -#: storage/file/fd.c:3463 -#, c-format -msgid "could not synchronize file system for file \"%s\": %m" -msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" - -#: storage/file/fd.c:3676 +#: storage/file/fd.c:3729 #, c-format msgid "" "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: " @@ -24232,7 +25220,7 @@ msgstr "" "синхронизация каталога данных (подготовка к fsync), прошло времени: %ld.%02d " "с, текущий путь: %s" -#: storage/file/fd.c:3708 +#: storage/file/fd.c:3761 #, c-format msgid "" "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" @@ -24240,25 +25228,36 @@ msgstr "" "синхронизация каталога данных (fsync), прошло времени: %ld.%02d с, текущий " "путь: %s" -#: storage/file/fd.c:3897 +#: storage/file/fd.c:3950 #, c-format -msgid "debug_io_direct is not supported on this platform." -msgstr "Параметр debug_io_direct на этой платформе не поддерживается." +msgid "\"debug_io_direct\" is not supported on this platform." +msgstr "Параметр \"debug_io_direct\" не поддерживается в этой ОС." -#: storage/file/fd.c:3944 +#: storage/file/fd.c:3964 +#, c-format +msgid "Invalid list syntax in parameter \"%s\"" +msgstr "Неверный формат списка в параметре \"%s\"." + +#: storage/file/fd.c:3984 +#, c-format +msgid "Invalid option \"%s\"" +msgstr "Неверный параметр \"%s\"." + +#: storage/file/fd.c:3997 #, c-format msgid "" -"debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" +"\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" msgstr "" -"режим debug_io_direct не поддерживается для WAL из-за слишком маленького " +"режим \"debug_io_direct\" не поддерживается для WAL из-за слишком маленького " "размера XLOG_BLCKSZ" -#: storage/file/fd.c:3951 +#: storage/file/fd.c:4004 #, c-format -msgid "debug_io_direct is not supported for data because BLCKSZ is too small" +msgid "" +"\"debug_io_direct\" is not supported for data because BLCKSZ is too small" msgstr "" -"режим debug_io_direct не поддерживается для данных из-за слишком маленького " -"размера BLCKSZ" +"режим \"debug_io_direct\" не поддерживается для данных из-за слишком " +"маленького размера BLCKSZ" #: storage/file/reinit.c:145 #, c-format @@ -24278,22 +25277,22 @@ msgstr "" "сброс нежурналируемых отношений (очистка), прошло времени: %ld.%02d s, " "текущий путь: %s" -#: storage/file/sharedfileset.c:79 +#: storage/file/sharedfileset.c:73 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "не удалось подключиться к уже уничтоженному набору SharedFileSet" -#: storage/ipc/dsm.c:352 +#: storage/ipc/dsm.c:379 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "сегмент управления динамической разделяемой памятью испорчен" -#: storage/ipc/dsm.c:417 +#: storage/ipc/dsm.c:444 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "сегмент управления динамической разделяемой памятью не в порядке" -#: storage/ipc/dsm.c:599 +#: storage/ipc/dsm.c:626 #, c-format msgid "too many dynamic shared memory segments" msgstr "слишком много сегментов динамической разделяемой памяти" @@ -24354,18 +25353,46 @@ msgstr "не удалось закрыть сегмент разделяемой msgid "could not duplicate handle for \"%s\": %m" msgstr "не удалось продублировать указатель для \"%s\": %m" -#: storage/ipc/procarray.c:3795 +#: storage/ipc/dsm_registry.c:142 +#, c-format +msgid "DSM segment name cannot be empty" +msgstr "имя DSM-сегмента не может быть пустым" + +#: storage/ipc/dsm_registry.c:146 +#, c-format +msgid "DSM segment name too long" +msgstr "имя DSM-сегмента слишком длинное" + +#: storage/ipc/dsm_registry.c:150 +#, c-format +msgid "DSM segment size must be nonzero" +msgstr "размер DSM-сегмента должен быть ненулевым" + +#: storage/ipc/dsm_registry.c:176 +#, c-format +msgid "requested DSM segment size does not match size of existing segment" +msgstr "" +"запрошенный размер сегмента DSM не совпадает с размером существующего " +"сегмента" + +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:357 +#: tcop/backend_startup.c:304 +#, c-format +msgid "sorry, too many clients already" +msgstr "извините, уже слишком много клиентов" + +#: storage/ipc/procarray.c:3857 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база \"%s\" используется подготовленными транзакциями" -#: storage/ipc/procarray.c:3827 storage/ipc/procarray.c:3836 +#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901 #: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format msgid "permission denied to terminate process" msgstr "нет прав для завершения процесса" -#: storage/ipc/procarray.c:3828 storage/ipc/signalfuncs.c:236 +#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236 #, c-format msgid "" "Only roles with the %s attribute may terminate processes of roles with the " @@ -24374,7 +25401,7 @@ msgstr "" "Только роли с атрибутом %s могут завершать процессы, принадлежащие ролям с " "атрибутом %s." -#: storage/ipc/procarray.c:3837 storage/ipc/signalfuncs.c:243 +#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243 #, c-format msgid "" "Only roles with privileges of the role whose process is being terminated or " @@ -24383,45 +25410,45 @@ msgstr "" "Только роли с правами роли, которой принадлежит процесс, или с правами роли " "\"%s\" могут завершить этот процесс." -#: storage/ipc/procsignal.c:420 +#: storage/ipc/procsignal.c:416 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "" "продолжается ожидание получения сигнала ProcSignalBarrier обслуживающим " "процессом с PID %d" -#: storage/ipc/shm_mq.c:384 +#: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" msgstr "" "не удалось передать сообщение размером %zu через очередь в разделяемой памяти" -#: storage/ipc/shm_mq.c:719 +#: storage/ipc/shm_mq.c:718 #, c-format msgid "invalid message size %zu in shared memory queue" msgstr "неверный размер сообщения %zu в очереди в разделяемой памяти" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 -#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 -#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984 +#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2835 storage/lmgr/lock.c:4220 +#: storage/lmgr/lock.c:4285 storage/lmgr/lock.c:4635 +#: storage/lmgr/predicate.c:2468 storage/lmgr/predicate.c:2483 +#: storage/lmgr/predicate.c:3880 storage/lmgr/predicate.c:4927 +#: utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "нехватка разделяемой памяти" -#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266 +#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "нехватка разделяемой памяти (требовалось байт: %zu)" -#: storage/ipc/shmem.c:445 +#: storage/ipc/shmem.c:436 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "не удалось создать запись ShmemIndex для структуры данных \"%s\"" -#: storage/ipc/shmem.c:460 +#: storage/ipc/shmem.c:451 #, c-format msgid "" "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, " @@ -24430,7 +25457,7 @@ msgstr "" "размер записи ShmemIndex не соответствует структуре данных " "\"%s\" (ожидалось: %zu, фактически: %zu)" -#: storage/ipc/shmem.c:479 +#: storage/ipc/shmem.c:470 #, c-format msgid "" "not enough shared memory for data structure \"%s\" (%zu bytes requested)" @@ -24438,7 +25465,7 @@ msgstr "" "недостаточно разделяемой памяти для структуры данных \"%s\" (требовалось " "байт: %zu)" -#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530 +#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 #, c-format msgid "requested shared memory size overflows size_t" msgstr "запрошенный размер разделяемой памяти не умещается в size_t" @@ -24448,8 +25475,8 @@ msgstr "запрошенный размер разделяемой памяти msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d не относится к обслуживающему процессу PostgreSQL" -#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1387 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1453 +#: utils/adt/mcxtfuncs.c:182 #, c-format msgid "could not send signal to process %d: %m" msgstr "отправить сигнал процессу %d не удалось: %m" @@ -24495,96 +25522,90 @@ msgstr[2] "обслуживающий процесс с PID %d не заверш msgid "\"timeout\" must not be negative" msgstr "\"timeout\" не может быть отрицательным" -#: storage/ipc/signalfuncs.c:284 -#, c-format -msgid "must be superuser to rotate log files with adminpack 1.0" -msgstr "" -"прокручивать файлы протоколов, используя adminpack 1.0, может только " -"суперпользователь" - -#. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:286 utils/adt/genfile.c:250 -#, c-format -msgid "Consider using %s, which is part of core, instead." -msgstr "Рассмотрите возможность использования функции %s, включённой в ядро." - -#: storage/ipc/signalfuncs.c:292 storage/ipc/signalfuncs.c:312 +#: storage/ipc/signalfuncs.c:285 #, c-format msgid "rotation not possible because log collection not active" msgstr "прокрутка невозможна, так как протоколирование отключено" -#: storage/ipc/standby.c:330 +#: storage/ipc/standby.c:329 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "процесс восстановления продолжает ожидание после %ld.%03d мс: %s" -#: storage/ipc/standby.c:339 +#: storage/ipc/standby.c:338 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "процесс восстановления завершил ожидание после %ld.%03d мс: %s" -#: storage/ipc/standby.c:921 tcop/postgres.c:3384 +#: storage/ipc/standby.c:920 tcop/postgres.c:3196 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "" "выполнение оператора отменено из-за конфликта с процессом восстановления" -#: storage/ipc/standby.c:922 tcop/postgres.c:2533 +#: storage/ipc/standby.c:921 tcop/postgres.c:2557 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "" "Транзакция пользователя привела к взаимоблокировке с процессом " "восстановления." -#: storage/ipc/standby.c:1488 +#: storage/ipc/standby.c:1486 msgid "unknown reason" msgstr "причина неизвестна" -#: storage/ipc/standby.c:1493 +#: storage/ipc/standby.c:1491 msgid "recovery conflict on buffer pin" msgstr "конфликт восстановления при закреплении буфера" -#: storage/ipc/standby.c:1496 +#: storage/ipc/standby.c:1494 msgid "recovery conflict on lock" msgstr "конфликт восстановления при получении блокировки" -#: storage/ipc/standby.c:1499 +#: storage/ipc/standby.c:1497 msgid "recovery conflict on tablespace" msgstr "конфликт восстановления при обращении к табличному пространству" -#: storage/ipc/standby.c:1502 +#: storage/ipc/standby.c:1500 msgid "recovery conflict on snapshot" msgstr "конфликт восстановления при получении снимка" -#: storage/ipc/standby.c:1505 +#: storage/ipc/standby.c:1503 msgid "recovery conflict on replication slot" msgstr "конфликт восстановления со слотом репликации" -#: storage/ipc/standby.c:1508 +#: storage/ipc/standby.c:1506 msgid "recovery conflict on buffer deadlock" msgstr "конфликт восстановления из-за взаимной блокировки буфера" -#: storage/ipc/standby.c:1511 +#: storage/ipc/standby.c:1509 msgid "recovery conflict on database" msgstr "конфликт восстановления при обращении к базе данных" -#: storage/large_object/inv_api.c:191 +#: storage/large_object/inv_api.c:190 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "" "в записи pg_largeobject для OID %u, стр. %d неверный размер поля данных (%d)" -#: storage/large_object/inv_api.c:273 +#: storage/large_object/inv_api.c:272 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "неверные флаги для открытия большого объекта: %d" -#: storage/large_object/inv_api.c:456 +#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 +#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 +#: storage/large_object/inv_api.c:807 +#, c-format +msgid "permission denied for large object %u" +msgstr "нет доступа к большому объекту %u" + +#: storage/large_object/inv_api.c:455 #, c-format msgid "invalid whence setting: %d" msgstr "неверное значение ориентира: %d" -#: storage/large_object/inv_api.c:628 +#: storage/large_object/inv_api.c:627 #, c-format msgid "invalid large object write request size: %d" msgstr "неверный размер записи большого объекта: %d" @@ -24610,113 +25631,113 @@ msgstr "обнаружена взаимоблокировка" msgid "See server log for query details." msgstr "Подробности запроса смотрите в протоколе сервера." -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:848 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "при изменении кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:851 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "при удалении кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:854 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "при блокировке кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:857 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "при блокировке изменённой версии (%u,%u) кортежа в отношении \"%s\"" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:860 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "при добавлении кортежа индекса (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:863 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "при проверке уникальности кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:877 +#: storage/lmgr/lmgr.c:866 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "при перепроверке изменённого кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:880 +#: storage/lmgr/lmgr.c:869 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "" "при проверке ограничения-исключения для кортежа (%u,%u) в отношении \"%s\"" -#: storage/lmgr/lmgr.c:1212 +#: storage/lmgr/lmgr.c:1239 #, c-format msgid "relation %u of database %u" msgstr "отношение %u базы данных %u" -#: storage/lmgr/lmgr.c:1218 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "extension of relation %u of database %u" msgstr "расширение отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1224 +#: storage/lmgr/lmgr.c:1251 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid базы %u" -#: storage/lmgr/lmgr.c:1229 +#: storage/lmgr/lmgr.c:1256 #, c-format msgid "page %u of relation %u of database %u" msgstr "страница %u отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1236 +#: storage/lmgr/lmgr.c:1263 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) отношения %u базы данных %u" -#: storage/lmgr/lmgr.c:1244 +#: storage/lmgr/lmgr.c:1271 #, c-format msgid "transaction %u" msgstr "транзакция %u" -#: storage/lmgr/lmgr.c:1249 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "virtual transaction %d/%u" msgstr "виртуальная транзакция %d/%u" -#: storage/lmgr/lmgr.c:1255 +#: storage/lmgr/lmgr.c:1282 #, c-format msgid "speculative token %u of transaction %u" msgstr "спекулятивный маркер %u транзакции %u" -#: storage/lmgr/lmgr.c:1261 +#: storage/lmgr/lmgr.c:1288 #, c-format msgid "object %u of class %u of database %u" msgstr "объект %u класса %u базы данных %u" -#: storage/lmgr/lmgr.c:1269 +#: storage/lmgr/lmgr.c:1296 #, c-format msgid "user lock [%u,%u,%u]" msgstr "пользовательская блокировка [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1276 +#: storage/lmgr/lmgr.c:1303 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендательная блокировка [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1284 +#: storage/lmgr/lmgr.c:1311 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "удалённая транзакция %u подписки %u в базе данных %u" -#: storage/lmgr/lmgr.c:1291 +#: storage/lmgr/lmgr.c:1318 #, c-format msgid "unrecognized locktag type %d" msgstr "нераспознанный тип блокировки %d" -#: storage/lmgr/lock.c:791 +#: storage/lmgr/lock.c:812 #, c-format msgid "" "cannot acquire lock mode %s on database objects while recovery is in progress" @@ -24724,7 +25745,7 @@ msgstr "" "пока выполняется восстановление, нельзя получить блокировку объектов базы " "данных в режиме %s" -#: storage/lmgr/lock.c:793 +#: storage/lmgr/lock.c:814 #, c-format msgid "" "Only RowExclusiveLock or less can be acquired on database objects during " @@ -24733,7 +25754,7 @@ msgstr "" "В процессе восстановления для объектов базы данных может быть получена " "только блокировка RowExclusiveLock или менее сильная." -#: storage/lmgr/lock.c:3235 storage/lmgr/lock.c:3303 storage/lmgr/lock.c:3419 +#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3352 storage/lmgr/lock.c:3468 #, c-format msgid "" "cannot PREPARE while holding both session-level and transaction-level locks " @@ -24742,21 +25763,21 @@ msgstr "" "нельзя выполнить PREPARE, удерживая блокировки на уровне сеанса и на уровне " "транзакции для одного объекта" -#: storage/lmgr/predicate.c:649 +#: storage/lmgr/predicate.c:653 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "в пуле недостаточно элементов для записи о конфликте чтения/записи" -#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 +#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679 #, c-format msgid "" "You might need to run fewer transactions at a time or increase " -"max_connections." +"\"max_connections\"." msgstr "" -"Попробуйте уменьшить число транзакций в секунду или увеличить параметр " -"max_connections." +"Попробуйте уменьшить число одновременных транзакций или увеличить параметр " +"\"max_connections\"." -#: storage/lmgr/predicate.c:674 +#: storage/lmgr/predicate.c:678 #, c-format msgid "" "not enough elements in RWConflictPool to record a potential read/write " @@ -24765,13 +25786,13 @@ msgstr "" "в пуле недостаточно элементов для записи о потенциальном конфликте чтения/" "записи" -#: storage/lmgr/predicate.c:1630 +#: storage/lmgr/predicate.c:1686 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "" "Параметр \"default_transaction_isolation\" имеет значение \"serializable\"." -#: storage/lmgr/predicate.c:1631 +#: storage/lmgr/predicate.c:1687 #, c-format msgid "" "You can use \"SET default_transaction_isolation = 'repeatable read'\" to " @@ -24780,27 +25801,27 @@ msgstr "" "Чтобы изменить режим по умолчанию, выполните \"SET " "default_transaction_isolation = 'repeatable read'\"." -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1738 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "транзакция, импортирующая снимок, не должна быть READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1817 utils/time/snapmgr.c:535 +#: utils/time/snapmgr.c:541 #, c-format msgid "could not import the requested snapshot" msgstr "не удалось импортировать запрошенный снимок" -#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 +#: storage/lmgr/predicate.c:1818 utils/time/snapmgr.c:542 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Исходный процесс с PID %d уже не работает." -#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3991 storage/lmgr/predicate.c:4027 +#: storage/lmgr/predicate.c:4060 storage/lmgr/predicate.c:4068 +#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4337 +#: storage/lmgr/predicate.c:4656 storage/lmgr/predicate.c:4668 +#: storage/lmgr/predicate.c:4715 storage/lmgr/predicate.c:4751 #, c-format msgid "" "could not serialize access due to read/write dependencies among transactions" @@ -24808,25 +25829,25 @@ msgstr "" "не удалось сериализовать доступ из-за зависимостей чтения/записи между " "транзакциями" -#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3993 storage/lmgr/predicate.c:4029 +#: storage/lmgr/predicate.c:4062 storage/lmgr/predicate.c:4070 +#: storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4339 +#: storage/lmgr/predicate.c:4658 storage/lmgr/predicate.c:4670 +#: storage/lmgr/predicate.c:4717 storage/lmgr/predicate.c:4753 #, c-format msgid "The transaction might succeed if retried." msgstr "Транзакция может завершиться успешно при следующей попытке." -#: storage/lmgr/proc.c:349 +#: storage/lmgr/proc.c:353 #, c-format msgid "" -"number of requested standby connections exceeds max_wal_senders (currently " -"%d)" +"number of requested standby connections exceeds " +"\"max_wal_senders\" (currently %d)" msgstr "" -"число запрошенных подключений резервных серверов превосходит max_wal_senders " -"(сейчас: %d)" +"число запрошенных подключений резервных серверов превышает " +"\"max_wal_senders\" (сейчас: %d)" -#: storage/lmgr/proc.c:1480 +#: storage/lmgr/proc.c:1546 #, c-format msgid "" "process %d avoided deadlock for %s on %s by rearranging queue order after " @@ -24835,7 +25856,7 @@ msgstr "" "процесс %d избежал взаимоблокировки, ожидая в режиме %s блокировку \"%s\", " "изменив порядок очереди через %ld.%03d мс" -#: storage/lmgr/proc.c:1495 +#: storage/lmgr/proc.c:1561 #, c-format msgid "" "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" @@ -24843,121 +25864,266 @@ msgstr "" "процесс %d обнаружил взаимоблокировку, ожидая в режиме %s блокировку \"%s\" " "в течение %ld.%03d мс" -#: storage/lmgr/proc.c:1504 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "" "процесс %d продолжает ожидать в режиме %s блокировку \"%s\" в течение %ld." "%03d мс" -#: storage/lmgr/proc.c:1511 +#: storage/lmgr/proc.c:1577 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "процесс %d получил в режиме %s блокировку \"%s\" через %ld.%03d мс" -#: storage/lmgr/proc.c:1528 +#: storage/lmgr/proc.c:1594 +#, c-format +msgid "process %d failed to acquire %s on %s after %ld.%03d ms" +msgstr "" +"процесс %d не смог получить в режиме %s блокировку \"%s\" за %ld.%03d мс" + +#: storage/page/bufpage.c:152 +#, c-format +msgid "page verification failed, calculated checksum %u but expected %u" +msgstr "" +"ошибка проверки страницы: получена контрольная сумма %u, а ожидалась - %u" + +#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 +#: storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 +#: storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 +#, c-format +msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" +msgstr "" +"испорченные указатели страницы: нижний = %u, верхний = %u, спецобласть = %u" + +#: storage/page/bufpage.c:759 +#, c-format +msgid "corrupted line pointer: %u" +msgstr "испорченный линейный указатель: %u" + +#: storage/page/bufpage.c:789 storage/page/bufpage.c:1266 +#, c-format +msgid "corrupted item lengths: total %u, available space %u" +msgstr "испорченный размер элемента (общий размер: %u, доступно: %u)" + +#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 +#: storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 +#, c-format +msgid "corrupted line pointer: offset = %u, size = %u" +msgstr "испорченный линейный указатель: смещение = %u, размер = %u" + +#: storage/smgr/md.c:485 storage/smgr/md.c:547 +#, c-format +msgid "cannot extend file \"%s\" beyond %u blocks" +msgstr "не удалось увеличить файл \"%s\" до блока %u" + +#: storage/smgr/md.c:500 storage/smgr/md.c:611 +#, c-format +msgid "could not extend file \"%s\": %m" +msgstr "не удалось увеличить файл \"%s\": %m" + +#: storage/smgr/md.c:506 +#, 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:589 +#, c-format +msgid "could not extend file \"%s\" with FileFallocate(): %m" +msgstr "не удалось увеличить файл \"%s\" посредством FileFallocate(): %m" + +#: storage/smgr/md.c:869 +#, c-format +msgid "could not read blocks %u..%u in file \"%s\": %m" +msgstr "не удалось прочитать блоки %u..%u в файле \"%s\": %m" + +#: storage/smgr/md.c:895 +#, c-format +msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" +msgstr "" +"не удалось прочитать блоки %u..%u в файле \"%s\" (прочитано байт: %zu из %zu)" + +#: storage/smgr/md.c:995 +#, c-format +msgid "could not write blocks %u..%u in file \"%s\": %m" +msgstr "не удалось записать блоки %u..%u в файл \"%s\": %m" + +#: storage/smgr/md.c:1165 +#, 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:1220 +#, c-format +msgid "could not truncate file \"%s\" to %u blocks: %m" +msgstr "не удалось обрезать файл \"%s\" до нужного числа блоков (%u): %m" + +#: storage/smgr/md.c:1700 +#, c-format +msgid "" +"could not open file \"%s\" (target block %u): previous segment is only %u " +"blocks" +msgstr "" +"не удалось открыть файл file \"%s\" (целевой блок %u): недостаточно блоков в " +"предыдущем сегменте (всего %u)" + +#: storage/smgr/md.c:1714 +#, c-format +msgid "could not open file \"%s\" (target block %u): %m" +msgstr "не удалось открыть файл file \"%s\" (целевой блок %u): %m" + +#: tcop/backend_startup.c:85 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "не удалось загрузить конфигурацию SSL в дочерний процесс" + +#: tcop/backend_startup.c:208 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "принято подключение: узел=%s порт=%s" + +#: tcop/backend_startup.c:213 +#, c-format +msgid "connection received: host=%s" +msgstr "принято подключение: узел=%s" + +#: tcop/backend_startup.c:277 +#, c-format +msgid "the database system is starting up" +msgstr "система баз данных запускается" + +#: tcop/backend_startup.c:283 +#, c-format +msgid "the database system is not yet accepting connections" +msgstr "система БД ещё не принимает подключения" + +#: tcop/backend_startup.c:284 +#, c-format +msgid "Consistent recovery state has not been yet reached." +msgstr "Согласованное состояние восстановления ещё не достигнуто." + +#: tcop/backend_startup.c:288 +#, c-format +msgid "the database system is not accepting connections" +msgstr "система БД не принимает подключения" + +#: tcop/backend_startup.c:289 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "Режим горячего резерва отключён." + +#: tcop/backend_startup.c:294 +#, c-format +msgid "the database system is shutting down" +msgstr "система баз данных останавливается" + +#: tcop/backend_startup.c:299 +#, c-format +msgid "the database system is in recovery mode" +msgstr "система баз данных в режиме восстановления" + +#: tcop/backend_startup.c:414 #, c-format -msgid "process %d failed to acquire %s on %s after %ld.%03d ms" -msgstr "" -"процесс %d не смог получить в режиме %s блокировку \"%s\" за %ld.%03d мс" +msgid "" +"received direct SSL connection request without ALPN protocol negotiation " +"extension" +msgstr "получен запрос прямого SSL-соединения, но в нём нет расширения ALPN" -#: storage/page/bufpage.c:152 +#: tcop/backend_startup.c:420 #, c-format -msgid "page verification failed, calculated checksum %u but expected %u" -msgstr "" -"ошибка проверки страницы: получена контрольная сумма %u, а ожидалась - %u" +msgid "direct SSL connection accepted" +msgstr "запрос прямого SSL-соединения принят" -#: storage/page/bufpage.c:217 storage/page/bufpage.c:730 -#: storage/page/bufpage.c:1073 storage/page/bufpage.c:1208 -#: storage/page/bufpage.c:1314 storage/page/bufpage.c:1426 +#: tcop/backend_startup.c:430 #, c-format -msgid "corrupted page pointers: lower = %u, upper = %u, special = %u" -msgstr "" -"испорченные указатели страницы: нижний = %u, верхний = %u, спецобласть = %u" +msgid "direct SSL connection rejected" +msgstr "запрос прямого SSL-соединения отвергнут" -#: storage/page/bufpage.c:759 +#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 #, c-format -msgid "corrupted line pointer: %u" -msgstr "испорченный линейный указатель: %u" +msgid "incomplete startup packet" +msgstr "неполный стартовый пакет" -#: storage/page/bufpage.c:789 storage/page/bufpage.c:1266 +#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 #, c-format -msgid "corrupted item lengths: total %u, available space %u" -msgstr "испорченный размер элемента (общий размер: %u, доступно: %u)" +msgid "invalid length of startup packet" +msgstr "неверная длина стартового пакета" -#: storage/page/bufpage.c:1092 storage/page/bufpage.c:1233 -#: storage/page/bufpage.c:1330 storage/page/bufpage.c:1442 +#: tcop/backend_startup.c:573 #, c-format -msgid "corrupted line pointer: offset = %u, size = %u" -msgstr "испорченный линейный указатель: смещение = %u, размер = %u" +msgid "SSLRequest accepted" +msgstr "SSLRequest принят" -#: storage/smgr/md.c:487 storage/smgr/md.c:549 +#: tcop/backend_startup.c:576 #, c-format -msgid "cannot extend file \"%s\" beyond %u blocks" -msgstr "не удалось увеличить файл \"%s\" до блока %u" +msgid "SSLRequest rejected" +msgstr "SSLRequest отвергнут" -#: storage/smgr/md.c:502 storage/smgr/md.c:613 +#: tcop/backend_startup.c:585 #, c-format -msgid "could not extend file \"%s\": %m" -msgstr "не удалось увеличить файл \"%s\": %m" +msgid "failed to send SSL negotiation response: %m" +msgstr "не удалось отправить ответ в процессе SSL-согласования: %m" -#: storage/smgr/md.c:508 +#: tcop/backend_startup.c:603 #, c-format -msgid "could not extend file \"%s\": wrote only %d of %d bytes at block %u" -msgstr "не удалось увеличить файл \"%s\" (записано байт: %d из %d) в блоке %u" +msgid "received unencrypted data after SSL request" +msgstr "после запроса SSL получены незашифрованные данные" -#: storage/smgr/md.c:591 +#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 #, c-format -msgid "could not extend file \"%s\" with FileFallocate(): %m" -msgstr "не удалось увеличить файл \"%s\" посредством FileFallocate(): %m" +msgid "" +"This could be either a client-software bug or evidence of an attempted man-" +"in-the-middle attack." +msgstr "" +"Это может свидетельствовать об ошибке в клиентском ПО или о попытке атаки " +"MITM." -#: storage/smgr/md.c:782 +#: tcop/backend_startup.c:627 #, c-format -msgid "could not read block %u in file \"%s\": %m" -msgstr "не удалось прочитать блок %u в файле \"%s\": %m" +msgid "GSSENCRequest accepted" +msgstr "GSSENCRequest принят" -#: storage/smgr/md.c:798 +#: tcop/backend_startup.c:630 #, c-format -msgid "could not read block %u in file \"%s\": read only %d of %d bytes" -msgstr "не удалось прочитать блок %u в файле \"%s\" (прочитано байт: %d из %d)" +msgid "GSSENCRequest rejected" +msgstr "GSSENCRequest отвергнут" -#: storage/smgr/md.c:856 +#: tcop/backend_startup.c:639 #, c-format -msgid "could not write block %u in file \"%s\": %m" -msgstr "не удалось записать блок %u в файл \"%s\": %m" +msgid "failed to send GSSAPI negotiation response: %m" +msgstr "не удалось отправить ответ в процессе согласования GSSAPI: %m" -#: storage/smgr/md.c:861 +#: tcop/backend_startup.c:657 #, c-format -msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" -msgstr "не удалось записать блок %u в файл \"%s\" (записано байт: %d из %d)" +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "после запроса шифрования GSSAPI получены незашифрованные данные" -#: storage/smgr/md.c:1012 +#: tcop/backend_startup.c:681 #, c-format -msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" +msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "" -"не удалось обрезать файл \"%s\" (требуемая длина в блоках: %u, но сейчас он " -"содержит %u)" +"неподдерживаемый протокол клиентского приложения %u.%u; сервер поддерживает " +"%u.0 - %u.%u" -#: storage/smgr/md.c:1067 +#: tcop/backend_startup.c:744 #, c-format -msgid "could not truncate file \"%s\" to %u blocks: %m" -msgstr "не удалось обрезать файл \"%s\" до нужного числа блоков (%u): %m" +msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." +msgstr "Допустимые значения: \"false\", 0, \"true\", 1, \"database\"." -#: storage/smgr/md.c:1494 +#: tcop/backend_startup.c:785 #, c-format -msgid "" -"could not open file \"%s\" (target block %u): previous segment is only %u " -"blocks" +msgid "invalid startup packet layout: expected terminator as last byte" msgstr "" -"не удалось открыть файл file \"%s\" (целевой блок %u): недостаточно блоков в " -"предыдущем сегменте (всего %u)" +"неверная структура стартового пакета: последним байтом должен быть терминатор" -#: storage/smgr/md.c:1508 +#: tcop/backend_startup.c:802 #, c-format -msgid "could not open file \"%s\" (target block %u): %m" -msgstr "не удалось открыть файл file \"%s\" (целевой блок %u): %m" +msgid "no PostgreSQL user name specified in startup packet" +msgstr "в стартовом пакете не указано имя пользователя PostgreSQL" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "функция с OID %u не существует" @@ -24972,8 +26138,8 @@ msgstr "вызвать функцию \"%s\" через интерфейс fastp msgid "fastpath function call: \"%s\" (OID %u)" msgstr "вызов функции (через fastpath): \"%s\" (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605 +#: tcop/postgres.c:2071 tcop/postgres.c:2333 #, c-format msgid "duration: %s ms" msgstr "продолжительность: %s мс" @@ -25008,44 +26174,44 @@ msgstr "неверный размер аргумента (%d) в сообщен msgid "incorrect binary data format in function argument %d" msgstr "неправильный формат двоичных данных в аргументе функции %d" -#: tcop/postgres.c:463 tcop/postgres.c:4882 +#: tcop/postgres.c:467 tcop/postgres.c:5012 #, c-format msgid "invalid frontend message type %d" msgstr "неправильный тип клиентского сообщения %d" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1076 #, c-format msgid "statement: %s" msgstr "оператор: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1374 #, c-format msgid "duration: %s ms statement: %s" msgstr "продолжительность: %s мс, оператор: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1480 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "в подготовленный оператор нельзя вставить несколько команд" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1610 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "продолжительность: %s мс, разбор %s: %s" # [SM]: TO REVIEW -#: tcop/postgres.c:1672 tcop/postgres.c:2629 +#: tcop/postgres.c:1677 tcop/postgres.c:2653 #, c-format msgid "unnamed prepared statement does not exist" msgstr "безымянный подготовленный оператор не существует" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1729 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "" "неверное число форматов параметров в сообщении Bind (%d, а параметров %d)" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1735 #, c-format msgid "" "bind message supplies %d parameters, but prepared statement \"%s\" requires " @@ -25054,120 +26220,120 @@ msgstr "" "в сообщении Bind передано неверное число параметров (%d, а подготовленный " "оператор \"%s\" требует %d)" -#: tcop/postgres.c:1937 +#: tcop/postgres.c:1949 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "неверный формат двоичных данных в параметре Bind %d" -#: tcop/postgres.c:2064 +#: tcop/postgres.c:2076 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "продолжительность: %s мс, сообщение Bind %s%s%s: %s" -#: tcop/postgres.c:2118 tcop/postgres.c:2712 +#: tcop/postgres.c:2131 tcop/postgres.c:2735 #, c-format msgid "portal \"%s\" does not exist" msgstr "портал \"%s\" не существует" -#: tcop/postgres.c:2189 +#: tcop/postgres.c:2213 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2191 tcop/postgres.c:2317 +#: tcop/postgres.c:2215 tcop/postgres.c:2341 msgid "execute fetch from" msgstr "выборка из" -#: tcop/postgres.c:2192 tcop/postgres.c:2318 +#: tcop/postgres.c:2216 tcop/postgres.c:2342 msgid "execute" msgstr "выполнение" -#: tcop/postgres.c:2314 +#: tcop/postgres.c:2338 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "продолжительность: %s мс %s %s%s%s: %s" -#: tcop/postgres.c:2462 +#: tcop/postgres.c:2486 #, c-format msgid "prepare: %s" msgstr "подготовка: %s" -#: tcop/postgres.c:2487 +#: tcop/postgres.c:2511 #, c-format -msgid "parameters: %s" -msgstr "параметры: %s" +msgid "Parameters: %s" +msgstr "Параметры: %s" -#: tcop/postgres.c:2502 +#: tcop/postgres.c:2526 #, c-format -msgid "abort reason: recovery conflict" -msgstr "причина прерывания: конфликт при восстановлении" +msgid "Abort reason: recovery conflict" +msgstr "Причина прерывания: конфликт при восстановлении" -#: tcop/postgres.c:2518 +#: tcop/postgres.c:2542 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "Пользователь удерживал фиксатор разделяемого буфера слишком долго." -#: tcop/postgres.c:2521 +#: tcop/postgres.c:2545 #, c-format msgid "User was holding a relation lock for too long." msgstr "Пользователь удерживал блокировку таблицы слишком долго." -#: tcop/postgres.c:2524 +#: tcop/postgres.c:2548 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "" "Пользователь использовал табличное пространство, которое должно быть удалено." -#: tcop/postgres.c:2527 +#: tcop/postgres.c:2551 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "" "Запросу пользователя нужно было видеть версии строк, которые должны быть " "удалены." -#: tcop/postgres.c:2530 +#: tcop/postgres.c:2554 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "" "Пользователь использовал слот логической репликации, который должен быть " "аннулирован." -#: tcop/postgres.c:2536 +#: tcop/postgres.c:2560 #, c-format msgid "User was connected to a database that must be dropped." msgstr "Пользователь был подключён к базе данных, которая должна быть удалена." -#: tcop/postgres.c:2575 +#: tcop/postgres.c:2599 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "портал \"%s\", параметр $%d = %s" -#: tcop/postgres.c:2578 +#: tcop/postgres.c:2602 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "портал \"%s\", параметр $%d" -#: tcop/postgres.c:2584 +#: tcop/postgres.c:2608 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "неименованный портал, параметр $%d = %s" -#: tcop/postgres.c:2587 +#: tcop/postgres.c:2611 #, c-format msgid "unnamed portal parameter $%d" msgstr "неименованный портал, параметр $%d" -#: tcop/postgres.c:2932 +#: tcop/postgres.c:2955 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "закрытие подключения из-за неожиданного сигнала SIGQUIT" -#: tcop/postgres.c:2938 +#: tcop/postgres.c:2961 #, c-format msgid "terminating connection because of crash of another server process" msgstr "закрытие подключения из-за краха другого серверного процесса" -#: tcop/postgres.c:2939 +#: tcop/postgres.c:2962 #, c-format msgid "" "The postmaster has commanded this server process to roll back the current " @@ -25178,7 +26344,7 @@ msgstr "" "транзакцию и завершиться, так как другой серверный процесс завершился " "аварийно и, возможно, разрушил разделяемую память." -#: tcop/postgres.c:2943 tcop/postgres.c:3310 +#: tcop/postgres.c:2966 tcop/postgres.c:3219 #, c-format msgid "" "In a moment you should be able to reconnect to the database and repeat your " @@ -25187,18 +26353,18 @@ msgstr "" "Вы сможете переподключиться к базе данных и повторить вашу команду сию " "минуту." -#: tcop/postgres.c:2950 +#: tcop/postgres.c:2973 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "" "закрытие подключения вследствие получения команды для немедленного отключения" -#: tcop/postgres.c:3036 +#: tcop/postgres.c:3051 #, c-format msgid "floating-point exception" msgstr "исключение в операции с плавающей точкой" -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3052 #, c-format msgid "" "An invalid floating-point operation was signaled. This probably means an out-" @@ -25208,72 +26374,77 @@ msgstr "" "оказался вне допустимых рамок или произошла ошибка вычисления, например, " "деление на ноль." -#: tcop/postgres.c:3214 +#: tcop/postgres.c:3217 +#, c-format +msgid "terminating connection due to conflict with recovery" +msgstr "закрытие подключения из-за конфликта с процессом восстановления" + +#: tcop/postgres.c:3289 #, c-format msgid "canceling authentication due to timeout" msgstr "отмена проверки подлинности из-за тайм-аута" -#: tcop/postgres.c:3218 +#: tcop/postgres.c:3293 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "прекращение процесса автоочистки по команде администратора" -#: tcop/postgres.c:3222 +#: tcop/postgres.c:3297 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "завершение обработчика логической репликации по команде администратора" -#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 -#, c-format -msgid "terminating connection due to conflict with recovery" -msgstr "закрытие подключения из-за конфликта с процессом восстановления" - -#: tcop/postgres.c:3260 +#: tcop/postgres.c:3317 #, c-format msgid "terminating connection due to administrator command" msgstr "закрытие подключения по команде администратора" -#: tcop/postgres.c:3291 +#: tcop/postgres.c:3348 #, c-format msgid "connection to client lost" msgstr "подключение к клиенту потеряно" -#: tcop/postgres.c:3361 +#: tcop/postgres.c:3400 #, c-format msgid "canceling statement due to lock timeout" msgstr "выполнение оператора отменено из-за тайм-аута блокировки" -#: tcop/postgres.c:3368 +#: tcop/postgres.c:3407 #, c-format msgid "canceling statement due to statement timeout" msgstr "выполнение оператора отменено из-за тайм-аута" -#: tcop/postgres.c:3375 +#: tcop/postgres.c:3414 #, c-format msgid "canceling autovacuum task" msgstr "отмена задачи автоочистки" -#: tcop/postgres.c:3398 +#: tcop/postgres.c:3427 #, c-format msgid "canceling statement due to user request" msgstr "выполнение оператора отменено по запросу пользователя" -#: tcop/postgres.c:3412 +#: tcop/postgres.c:3448 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "закрытие подключения из-за тайм-аута простоя в транзакции" -#: tcop/postgres.c:3423 +#: tcop/postgres.c:3461 +#, c-format +msgid "terminating connection due to transaction timeout" +msgstr "закрытие подключения из-за тайм-аута транзакции" + +#: tcop/postgres.c:3474 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "закрытие подключения из-за тайм-аута простоя сеанса" -#: tcop/postgres.c:3514 +#: tcop/postgres.c:3564 #, c-format msgid "stack depth limit exceeded" msgstr "превышен предел глубины стека" -#: tcop/postgres.c:3515 +#: tcop/postgres.c:3565 #, c-format msgid "" "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), " @@ -25283,12 +26454,12 @@ msgstr "" "КБ), предварительно убедившись, что ОС предоставляет достаточный размер " "стека." -#: tcop/postgres.c:3562 +#: tcop/postgres.c:3612 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "Значение \"max_stack_depth\" не должно превышать %ld КБ." -#: tcop/postgres.c:3564 +#: tcop/postgres.c:3614 #, c-format msgid "" "Increase the platform's stack depth limit via \"ulimit -s\" or local " @@ -25297,20 +26468,20 @@ msgstr "" "Увеличьте предел глубины стека в системе с помощью команды \"ulimit -s\" или " "эквивалента в вашей ОС." -#: tcop/postgres.c:3587 +#: tcop/postgres.c:3637 #, c-format -msgid "client_connection_check_interval must be set to 0 on this platform." +msgid "\"client_connection_check_interval\" must be set to 0 on this platform." msgstr "" -"Значение client_connection_check_interval должно равняться 0 на этой " +"Значение \"client_connection_check_interval\" должно равняться 0 на этой " "платформе." -#: tcop/postgres.c:3608 +#: tcop/postgres.c:3658 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "" "Этот параметр нельзя включить, когда \"log_statement_stats\" равен true." -#: tcop/postgres.c:3623 +#: tcop/postgres.c:3673 #, c-format msgid "" "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", " @@ -25320,49 +26491,49 @@ msgstr "" "\"log_parser_stats\", \"log_planner_stats\" или \"log_executor_stats\" равны " "true." -#: tcop/postgres.c:3971 +#: tcop/postgres.c:4098 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "неверный аргумент командной строки для серверного процесса: %s" -#: tcop/postgres.c:3972 tcop/postgres.c:3978 +#: tcop/postgres.c:4099 tcop/postgres.c:4105 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: tcop/postgres.c:3976 +#: tcop/postgres.c:4103 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: неверный аргумент командной строки: %s" -#: tcop/postgres.c:4029 +#: tcop/postgres.c:4156 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: не указаны ни база данных, ни пользователь" -#: tcop/postgres.c:4779 +#: tcop/postgres.c:4909 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "неверный подтип сообщения CLOSE: %d" -#: tcop/postgres.c:4816 +#: tcop/postgres.c:4946 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "неверный подтип сообщения DESCRIBE: %d" -#: tcop/postgres.c:4903 +#: tcop/postgres.c:5033 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "" "вызовы функций через fastpath не поддерживаются для реплицирующих соединений" -#: tcop/postgres.c:4907 +#: tcop/postgres.c:5037 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "" "протокол расширенных запросов не поддерживается для реплицирующих соединений" -#: tcop/postgres.c:5087 +#: tcop/postgres.c:5217 #, c-format msgid "" "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s " @@ -25378,53 +26549,53 @@ msgstr "" "число форматов результатов в сообщении Bind (%d) не равно числу столбцов в " "запросе (%d)" -#: tcop/pquery.c:944 tcop/pquery.c:1701 +#: tcop/pquery.c:942 tcop/pquery.c:1696 #, c-format msgid "cursor can only scan forward" msgstr "курсор может сканировать только вперёд" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:943 tcop/pquery.c:1697 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Добавьте в его объявление SCROLL, чтобы он мог перемещаться назад." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:417 +#: tcop/utility.c:410 #, c-format msgid "cannot execute %s in a read-only transaction" msgstr "в транзакции в режиме \"только чтение\" нельзя выполнить %s" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:435 +#: tcop/utility.c:428 #, c-format msgid "cannot execute %s during a parallel operation" msgstr "выполнить %s во время параллельных операций нельзя" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:454 +#: tcop/utility.c:447 #, c-format msgid "cannot execute %s during recovery" msgstr "выполнить %s во время восстановления нельзя" #. translator: %s is name of a SQL command, eg PREPARE -#: tcop/utility.c:472 +#: tcop/utility.c:465 #, c-format msgid "cannot execute %s within security-restricted operation" msgstr "в рамках операции с ограничениями по безопасности нельзя выполнить %s" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:828 +#: tcop/utility.c:821 #, c-format msgid "cannot execute %s within a background process" msgstr "выполнять %s в фоновом процессе нельзя" #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:954 +#: tcop/utility.c:947 #, c-format msgid "permission denied to execute %s command" msgstr "нет прав для выполнения команды %s" -#: tcop/utility.c:956 +#: tcop/utility.c:949 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "Выполнять эту команду могут только роли с правами роли \"%s\"." @@ -25579,13 +26750,13 @@ msgstr "неверный флаг аффиксов \"%s\" со значение msgid "could not open dictionary file \"%s\": %m" msgstr "не удалось открыть файл словаря \"%s\": %m" -#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559 +#: tsearch/spell.c:749 utils/adt/regexp.c:223 jsonpath_gram.y:629 #, c-format msgid "invalid regular expression: %s" msgstr "неверное регулярное выражение: %s" #: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 -#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18123 gram.y:18140 +#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18735 gram.y:18752 #, c-format msgid "syntax error" msgstr "ошибка синтаксиса" @@ -25625,17 +26796,17 @@ msgstr "количество псевдонимов превышает зада msgid "affix file contains both old-style and new-style commands" msgstr "файл аффиксов содержит команды и в старом, и в новом стиле" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "строка слишком длинна для tsvector (%d Б, при максимуме %d)" -#: tsearch/ts_locale.c:238 +#: tsearch/ts_locale.c:236 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "строка %d файла конфигурации \"%s\": \"%s\"" -#: tsearch/ts_locale.c:317 +#: tsearch/ts_locale.c:315 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "преобразовать wchar_t в кодировку сервера не удалось: %m" @@ -25662,37 +26833,32 @@ msgstr "неверное имя файла конфигурации тексто msgid "could not open stop-word file \"%s\": %m" msgstr "не удалось открыть файл стоп-слов \"%s\": %m" -#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 +#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471 #, c-format msgid "text search parser does not support headline creation" msgstr "анализатор текстового поиска не поддерживает создание выдержек" -#: tsearch/wparser_def.c:2663 +#: tsearch/wparser_def.c:2664 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "нераспознанный параметр функции выдержки: \"%s\"" -#: tsearch/wparser_def.c:2673 +#: tsearch/wparser_def.c:2674 #, c-format -msgid "MinWords should be less than MaxWords" -msgstr "Значение MinWords должно быть меньше MaxWords" +msgid "%s must be less than %s" +msgstr "%s должно быть меньше %s" -#: tsearch/wparser_def.c:2677 +#: tsearch/wparser_def.c:2678 #, c-format -msgid "MinWords should be positive" -msgstr "Значение MinWords должно быть положительным" +msgid "%s must be positive" +msgstr "%s должно быть больше нуля" -#: tsearch/wparser_def.c:2681 +#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686 #, c-format -msgid "ShortWord should be >= 0" -msgstr "Значение ShortWord должно быть >= 0" +msgid "%s must be >= 0" +msgstr "%s должно быть >= 0" -#: tsearch/wparser_def.c:2685 -#, c-format -msgid "MaxFragments should be >= 0" -msgstr "Значение MaxFragments должно быть >= 0" - -#: utils/activity/pgstat.c:438 +#: utils/activity/pgstat.c:435 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "ошибка удаления постоянного файла статистики \"%s\": %m" @@ -25707,28 +26873,28 @@ msgstr "неверный вид статистики: \"%s\"" msgid "could not open temporary statistics file \"%s\": %m" msgstr "не удалось открыть временный файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1447 +#: utils/activity/pgstat.c:1455 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не удалось записать во временный файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1456 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не удалось закрыть временный файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1464 +#: utils/activity/pgstat.c:1472 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "" "не удалось переименовать временный файл статистики из \"%s\" в \"%s\": %m" -#: utils/activity/pgstat.c:1513 +#: utils/activity/pgstat.c:1521 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не удалось открыть файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1675 +#: utils/activity/pgstat.c:1683 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "файл статистики \"%s\" испорчен" @@ -25738,115 +26904,125 @@ msgstr "файл статистики \"%s\" испорчен" msgid "function call to dropped function" msgstr "вызвана функция, которая была удалена" -#: utils/activity/pgstat_xact.c:363 +#: utils/activity/pgstat_xact.c:362 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "сбрасывается существующая статистика вида %s, db=%u, oid=%u" -#: utils/adt/acl.c:177 utils/adt/name.c:93 +#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "событие ожидания \"%s\" в типе \"%s\" уже существует" + +#: utils/activity/wait_event.c:246 +#, c-format +msgid "too many custom wait events" +msgstr "слишком много пользовательских событий ожидания" + +#: utils/adt/acl.c:183 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "слишком длинный идентификатор" -#: utils/adt/acl.c:178 utils/adt/name.c:94 +#: utils/adt/acl.c:184 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "Идентификатор должен быть короче %d байт." -#: utils/adt/acl.c:266 +#: utils/adt/acl.c:272 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "нераспознанное ключевое слово: \"%s\"" -#: utils/adt/acl.c:267 +#: utils/adt/acl.c:273 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "Ключевым словом ACL должно быть \"group\" или \"user\"." -#: utils/adt/acl.c:275 +#: utils/adt/acl.c:281 #, c-format msgid "missing name" msgstr "отсутствует имя" -#: utils/adt/acl.c:276 +#: utils/adt/acl.c:282 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "За ключевыми словами \"group\" или \"user\" должно следовать имя." -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:288 #, c-format msgid "missing \"=\" sign" msgstr "отсутствует знак \"=\"" -#: utils/adt/acl.c:341 +#: utils/adt/acl.c:350 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "неверный символ режима: должен быть один из \"%s\"" -#: utils/adt/acl.c:371 +#: utils/adt/acl.c:380 #, c-format msgid "a name must follow the \"/\" sign" msgstr "за знаком \"/\" должно следовать имя" -#: utils/adt/acl.c:383 +#: utils/adt/acl.c:392 #, c-format msgid "defaulting grantor to user ID %u" msgstr "назначившим права считается пользователь с ID %u" -#: utils/adt/acl.c:569 +#: utils/adt/acl.c:578 #, c-format msgid "ACL array contains wrong data type" msgstr "Массив ACL содержит неверный тип данных" -#: utils/adt/acl.c:573 +#: utils/adt/acl.c:582 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "Массивы ACL должны быть одномерными" -#: utils/adt/acl.c:577 +#: utils/adt/acl.c:586 #, c-format msgid "ACL arrays must not contain null values" msgstr "Массивы ACL не должны содержать значения null" -#: utils/adt/acl.c:606 +#: utils/adt/acl.c:615 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "лишний мусор в конце спецификации ACL" -#: utils/adt/acl.c:1248 +#: utils/adt/acl.c:1263 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "привилегию назначения прав нельзя вернуть тому, кто назначил её вам" -#: utils/adt/acl.c:1564 +#: utils/adt/acl.c:1579 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert больше не поддерживается" -#: utils/adt/acl.c:1574 +#: utils/adt/acl.c:1589 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove больше не поддерживается" -#: utils/adt/acl.c:1693 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "нераспознанный тип прав: \"%s\"" -#: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "функция \"%s\" не существует" -#: utils/adt/acl.c:5023 +#: utils/adt/acl.c:5196 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "нужны права для выполнения SET ROLE \"%s\"" #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 +#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 +#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "не удалось определить тип входных данных" @@ -25857,17 +27033,17 @@ msgid "input data type is not an array" msgstr "тип входных данных не является массивом" #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 +#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1272 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454 +#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 +#: utils/adt/varlena.c:3137 #, c-format msgid "integer out of range" msgstr "целое вне диапазона" @@ -25907,188 +27083,199 @@ msgstr "Массивы с разными размерностями элемен msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Массивы с разными размерностями несовместимы для соединения." -#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5639 utils/adt/arrayfuncs.c:5645 +#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 +#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "аккумулировать массивы различной размерности нельзя" -#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 +#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "поиск элементов в многомерных массивах не поддерживается" -#: utils/adt/array_userfuncs.c:1315 +#: utils/adt/array_userfuncs.c:1301 #, c-format msgid "initial position must not be null" msgstr "начальная позиция не может быть NULL" -#: utils/adt/array_userfuncs.c:1688 +#: utils/adt/array_userfuncs.c:1674 #, c-format msgid "sample size must be between 0 and %d" msgstr "размер выборки должен задаваться числом от 0 до %d" -#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:288 -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:321 -#: utils/adt/arrayfuncs.c:338 utils/adt/arrayfuncs.c:352 -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:522 -#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:548 -#: utils/adt/arrayfuncs.c:569 utils/adt/arrayfuncs.c:599 -#: utils/adt/arrayfuncs.c:606 utils/adt/arrayfuncs.c:614 -#: utils/adt/arrayfuncs.c:648 utils/adt/arrayfuncs.c:671 -#: utils/adt/arrayfuncs.c:691 utils/adt/arrayfuncs.c:808 -#: utils/adt/arrayfuncs.c:817 utils/adt/arrayfuncs.c:847 -#: utils/adt/arrayfuncs.c:862 utils/adt/arrayfuncs.c:915 +#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273 +#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307 +#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454 +#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703 +#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777 +#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870 +#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904 +#: utils/adt/arrayfuncs.c:941 #, c-format msgid "malformed array literal: \"%s\"" msgstr "ошибочный литерал массива: \"%s\"" -#: utils/adt/arrayfuncs.c:275 -#, c-format -msgid "\"[\" must introduce explicitly-specified array dimensions." -msgstr "За \"[\" должны следовать явно задаваемые размерности массива." - -#: utils/adt/arrayfuncs.c:289 +#: utils/adt/arrayfuncs.c:265 #, c-format -msgid "Missing array dimension value." -msgstr "Отсутствует значение размерности массива." +msgid "Array value must start with \"{\" or dimension information." +msgstr "Значение массива должно начинаться с \"{\" или указания размерности." -#: utils/adt/arrayfuncs.c:300 utils/adt/arrayfuncs.c:339 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "После размерностей массива отсутствует \"%s\"." -#: utils/adt/arrayfuncs.c:309 utils/adt/arrayfuncs.c:2969 -#: utils/adt/arrayfuncs.c:3014 utils/adt/arrayfuncs.c:3029 +#: utils/adt/arrayfuncs.c:285 #, c-format -msgid "upper bound cannot be less than lower bound" -msgstr "верхняя граница не может быть меньше нижней" +msgid "Array contents must start with \"{\"." +msgstr "Содержимое массива должно начинаться с \"{\"." -#: utils/adt/arrayfuncs.c:322 +#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292 #, c-format -msgid "Array value must start with \"{\" or dimension information." -msgstr "Значение массива должно начинаться с \"{\" или указания размерности." +msgid "Junk after closing right brace." +msgstr "Мусор после закрывающей фигурной скобки." -#: utils/adt/arrayfuncs.c:353 +#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643 #, c-format -msgid "Array contents must start with \"{\"." -msgstr "Содержимое массива должно начинаться с \"{\"." +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "число размерностей массива превышает предел (%d)" -#: utils/adt/arrayfuncs.c:361 utils/adt/arrayfuncs.c:368 +#: utils/adt/arrayfuncs.c:441 #, c-format -msgid "Specified array dimensions do not match array contents." -msgstr "Указанные размерности массива не соответствуют его содержимому." +msgid "\"[\" must introduce explicitly-specified array dimensions." +msgstr "За \"[\" должны следовать явно задаваемые размерности массива." -#: utils/adt/arrayfuncs.c:508 utils/adt/arrayfuncs.c:534 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:455 #, c-format -msgid "Unexpected end of input." -msgstr "Неожиданный конец ввода." +msgid "Missing array dimension value." +msgstr "Отсутствует значение размерности массива." + +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 +#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 +#, c-format +msgid "upper bound cannot be less than lower bound" +msgstr "верхняя граница не может быть меньше нижней" + +#: utils/adt/arrayfuncs.c:487 +#, c-format +msgid "array upper bound is too large: %d" +msgstr "верхняя граница массива слишком велика: %d" + +#: utils/adt/arrayfuncs.c:538 +#, c-format +msgid "array bound is out of integer range" +msgstr "граница массива вне целочисленного диапазона" -#: utils/adt/arrayfuncs.c:523 utils/adt/arrayfuncs.c:570 -#: utils/adt/arrayfuncs.c:600 utils/adt/arrayfuncs.c:649 +#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669 +#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898 #, c-format msgid "Unexpected \"%c\" character." msgstr "Неожиданный знак \"%c\"." -#: utils/adt/arrayfuncs.c:549 utils/adt/arrayfuncs.c:672 +#: utils/adt/arrayfuncs.c:719 #, c-format msgid "Unexpected array element." msgstr "Неожиданный элемент массива." -#: utils/adt/arrayfuncs.c:607 +#: utils/adt/arrayfuncs.c:778 #, c-format -msgid "Unmatched \"%c\" character." -msgstr "Непарный знак \"%c\"." +msgid "Specified array dimensions do not match array contents." +msgstr "Указанные размерности массива не соответствуют его содержимому." -#: utils/adt/arrayfuncs.c:615 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2598 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "" "Для многомерных массивов должны задаваться вложенные массивы с " "соответствующими размерностями." -#: utils/adt/arrayfuncs.c:692 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:871 utils/adt/arrayfuncs.c:905 #, c-format -msgid "Junk after closing right brace." -msgstr "Мусор после закрывающей фигурной скобки." +msgid "Incorrectly quoted array element." +msgstr "Элемент массива заключён в кавычки некорректно." + +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 +#: utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 +#: utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#, c-format +msgid "Unexpected end of input." +msgstr "Неожиданный конец ввода." -#: utils/adt/arrayfuncs.c:1326 utils/adt/arrayfuncs.c:3528 -#: utils/adt/arrayfuncs.c:6129 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3499 +#: utils/adt/arrayfuncs.c:6106 #, c-format msgid "invalid number of dimensions: %d" msgstr "неверное число размерностей: %d" -#: utils/adt/arrayfuncs.c:1337 +#: utils/adt/arrayfuncs.c:1312 #, c-format msgid "invalid array flags" msgstr "неверные флаги массива" -#: utils/adt/arrayfuncs.c:1359 +#: utils/adt/arrayfuncs.c:1334 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "" "с бинарными данными связан тип элемента массива %u (%s) вместо ожидаемого %u " "(%s)" -#: utils/adt/arrayfuncs.c:1403 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 +#: utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 #, c-format msgid "no binary input function available for type %s" msgstr "для типа %s нет функции ввода двоичных данных" -#: utils/adt/arrayfuncs.c:1543 +#: utils/adt/arrayfuncs.c:1509 #, c-format msgid "improper binary format in array element %d" msgstr "неподходящий двоичный формат в элементе массива %d" -#: utils/adt/arrayfuncs.c:1624 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 +#: utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 #, c-format msgid "no binary output function available for type %s" msgstr "для типа %s нет функции вывода двоичных данных" -#: utils/adt/arrayfuncs.c:2103 +#: utils/adt/arrayfuncs.c:2067 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "разрезание массивов постоянной длины не поддерживается" -#: utils/adt/arrayfuncs.c:2281 utils/adt/arrayfuncs.c:2303 -#: utils/adt/arrayfuncs.c:2352 utils/adt/arrayfuncs.c:2606 -#: utils/adt/arrayfuncs.c:2944 utils/adt/arrayfuncs.c:6115 -#: utils/adt/arrayfuncs.c:6141 utils/adt/arrayfuncs.c:6152 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 +#: utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6092 +#: utils/adt/arrayfuncs.c:6118 utils/adt/arrayfuncs.c:6129 +#: utils/adt/json.c:1433 utils/adt/json.c:1505 utils/adt/jsonb.c:1317 +#: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4710 utils/adt/jsonfuncs.c:4863 +#: utils/adt/jsonfuncs.c:4974 utils/adt/jsonfuncs.c:5022 #, c-format msgid "wrong number of array subscripts" msgstr "неверное число индексов массива" -#: utils/adt/arrayfuncs.c:2286 utils/adt/arrayfuncs.c:2410 -#: utils/adt/arrayfuncs.c:2689 utils/adt/arrayfuncs.c:3019 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 +#: utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "индекс массива вне диапазона" -#: utils/adt/arrayfuncs.c:2291 +#: utils/adt/arrayfuncs.c:2255 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "нельзя присвоить значение null элементу массива фиксированной длины" -#: utils/adt/arrayfuncs.c:2891 +#: utils/adt/arrayfuncs.c:2855 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "изменения в срезах массивов фиксированной длины не поддерживаются" -#: utils/adt/arrayfuncs.c:2922 +#: utils/adt/arrayfuncs.c:2886 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "в указании среза массива должны быть заданы обе границы" -#: utils/adt/arrayfuncs.c:2923 +#: utils/adt/arrayfuncs.c:2887 #, c-format msgid "" "When assigning to a slice of an empty array value, slice boundaries must be " @@ -26097,85 +27284,85 @@ msgstr "" "При присвоении значений срезу в пустом массиве, должны полностью задаваться " "обе границы." -#: utils/adt/arrayfuncs.c:2934 utils/adt/arrayfuncs.c:3046 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "исходный массив слишком мал" -#: utils/adt/arrayfuncs.c:3686 +#: utils/adt/arrayfuncs.c:3657 #, c-format msgid "null array element not allowed in this context" msgstr "элемент массива null недопустим в данном контексте" -#: utils/adt/arrayfuncs.c:3857 utils/adt/arrayfuncs.c:4028 -#: utils/adt/arrayfuncs.c:4419 +#: utils/adt/arrayfuncs.c:3828 utils/adt/arrayfuncs.c:3999 +#: utils/adt/arrayfuncs.c:4390 #, c-format msgid "cannot compare arrays of different element types" msgstr "нельзя сравнивать массивы с элементами разных типов" -#: utils/adt/arrayfuncs.c:4206 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4177 utils/adt/multirangetypes.c:2805 +#: utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 +#: utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 #, c-format msgid "could not identify a hash function for type %s" msgstr "не удалось найти функцию хеширования для типа %s" -#: utils/adt/arrayfuncs.c:4334 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4305 utils/adt/rowtypes.c:1996 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не удалось найти функцию расширенного хеширования для типа %s" -#: utils/adt/arrayfuncs.c:5529 +#: utils/adt/arrayfuncs.c:5506 #, c-format msgid "data type %s is not an array type" msgstr "тип данных %s не является типом массива" -#: utils/adt/arrayfuncs.c:5584 +#: utils/adt/arrayfuncs.c:5561 #, c-format msgid "cannot accumulate null arrays" msgstr "аккумулировать NULL-массивы нельзя" -#: utils/adt/arrayfuncs.c:5612 +#: utils/adt/arrayfuncs.c:5589 #, c-format msgid "cannot accumulate empty arrays" msgstr "аккумулировать пустые массивы нельзя" -#: utils/adt/arrayfuncs.c:6013 utils/adt/arrayfuncs.c:6053 +#: utils/adt/arrayfuncs.c:5990 utils/adt/arrayfuncs.c:6030 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "массив размерностей или массив нижних границ не может быть null" -#: utils/adt/arrayfuncs.c:6116 utils/adt/arrayfuncs.c:6142 +#: utils/adt/arrayfuncs.c:6093 utils/adt/arrayfuncs.c:6119 #, c-format msgid "Dimension array must be one dimensional." msgstr "Массив размерностей должен быть одномерным." -#: utils/adt/arrayfuncs.c:6121 utils/adt/arrayfuncs.c:6147 +#: utils/adt/arrayfuncs.c:6098 utils/adt/arrayfuncs.c:6124 #, c-format msgid "dimension values cannot be null" msgstr "значения размерностей не могут быть null" -#: utils/adt/arrayfuncs.c:6153 +#: utils/adt/arrayfuncs.c:6130 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Массив нижних границ и массив размерностей имеют разные размеры." -#: utils/adt/arrayfuncs.c:6431 +#: utils/adt/arrayfuncs.c:6411 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "удаление элементов из многомерных массивов не поддерживается" -#: utils/adt/arrayfuncs.c:6708 +#: utils/adt/arrayfuncs.c:6688 #, c-format msgid "thresholds must be one-dimensional array" msgstr "границы должны задаваться одномерным массивом" -#: utils/adt/arrayfuncs.c:6713 +#: utils/adt/arrayfuncs.c:6693 #, c-format msgid "thresholds array must not contain NULLs" msgstr "массив границ не должен содержать NULL" -#: utils/adt/arrayfuncs.c:6946 +#: utils/adt/arrayfuncs.c:6926 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "число удаляемых элементов должно быть от 0 до %d" @@ -26190,22 +27377,22 @@ msgstr "индекс элемента массива должен быть це msgid "array subscript in assignment must not be null" msgstr "индекс элемента массива в присваивании не может быть NULL" -#: utils/adt/arrayutils.c:155 +#: utils/adt/arrayutils.c:140 #, c-format msgid "array lower bound is too large: %d" msgstr "нижняя граница массива слишком велика: %d" -#: utils/adt/arrayutils.c:257 +#: utils/adt/arrayutils.c:242 #, c-format msgid "typmod array must be type cstring[]" msgstr "массив typmod должен иметь тип cstring[]" -#: utils/adt/arrayutils.c:262 +#: utils/adt/arrayutils.c:247 #, c-format msgid "typmod array must be one-dimensional" msgstr "массив typmod должен быть одномерным" -#: utils/adt/arrayutils.c:267 +#: utils/adt/arrayutils.c:252 #, c-format msgid "typmod array must not contain nulls" msgstr "массив typmod не должен содержать элементы null" @@ -26216,48 +27403,52 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "преобразование кодировки из %s в ASCII не поддерживается" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/bool.c:149 utils/adt/cash.c:354 utils/adt/datetime.c:4142 +#: utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 +#: utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 #: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 #: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 #: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 #: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 -#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 -#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 +#: utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 +#: utils/adt/network.c:99 utils/adt/numeric.c:803 utils/adt/numeric.c:7221 +#: utils/adt/numeric.c:7424 utils/adt/numeric.c:8371 utils/adt/numutils.c:356 +#: utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 +#: utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 +#: utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:510 +#: utils/adt/uuid.c:140 utils/adt/xid8funcs.c:323 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "неверный синтаксис для типа %s: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 -#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 -#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 +#: utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "значение \"%s\" вне диапазона для типа %s" +msgid "money out of range" +msgstr "денежное значение вне диапазона" -#: 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:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:958 utils/adt/int8.c:1038 utils/adt/int8.c:1100 -#: utils/adt/int8.c:1180 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3442 +#: utils/adt/cash.c:161 utils/adt/cash.c:723 utils/adt/float.c:99 +#: utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 +#: utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 +#: utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 +#: utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 +#: utils/adt/numeric.c:3191 utils/adt/numeric.c:3214 utils/adt/numeric.c:3299 +#: utils/adt/numeric.c:3317 utils/adt/numeric.c:3413 utils/adt/numeric.c:8920 +#: utils/adt/numeric.c:9233 utils/adt/numeric.c:9581 utils/adt/numeric.c:9697 +#: utils/adt/numeric.c:11208 utils/adt/timestamp.c:3713 #, c-format msgid "division by zero" msgstr "деление на ноль" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 +#: utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 +#: utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 +#: utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "значение \"%s\" вне диапазона для типа %s" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -26268,164 +27459,187 @@ msgstr "значение \"char\" вне диапазона" msgid "could not compute %s hash: %s" msgstr "не удалось вычислить хеш %s: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "неверный модификатор типа" -#: utils/adt/date.c:75 +#: utils/adt/date.c:76 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "TIME(%d)%s: точность должна быть неотрицательной" -#: utils/adt/date.c:81 +#: utils/adt/date.c:82 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s: точность уменьшена до дозволенного максимума: %d" -#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 +#: utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 +#: utils/adt/formatting.c:4548 #, c-format msgid "date out of range: \"%s\"" msgstr "дата вне диапазона: \"%s\"" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2470 +#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 +#: utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "дата вне диапазона" -#: utils/adt/date.c:267 utils/adt/timestamp.c:582 +#: utils/adt/date.c:268 utils/adt/timestamp.c:598 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "значение поля типа date вне диапазона: %d-%02d-%02d" -#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 +#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "дата вне диапазона: %d-%02d-%02d" -#: utils/adt/date.c:494 +#: utils/adt/date.c:495 #, c-format msgid "cannot subtract infinite dates" msgstr "вычитать бесконечные даты нельзя" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 +#: utils/adt/date.c:2906 utils/adt/date.c:2916 #, c-format msgid "date out of range for timestamp" msgstr "дата вне диапазона для типа timestamp" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4172 -#: utils/adt/timestamp.c:4382 utils/adt/timestamp.c:4524 -#: utils/adt/timestamp.c:4777 utils/adt/timestamp.c:4978 -#: utils/adt/timestamp.c:5025 utils/adt/timestamp.c:5249 -#: utils/adt/timestamp.c:5296 utils/adt/timestamp.c:5426 +#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 +#: utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 +#: utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 +#: utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 +#: utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 +#: utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 +#: utils/adt/timestamp.c:6070 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "единица \"%s\" для типа %s не поддерживается" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4186 utils/adt/timestamp.c:4399 -#: utils/adt/timestamp.c:4538 utils/adt/timestamp.c:4737 -#: utils/adt/timestamp.c:5034 utils/adt/timestamp.c:5305 -#: utils/adt/timestamp.c:5487 +#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 +#: utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 +#: utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 +#: utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 +#: utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "единица \"%s\" для типа %s не распознана" -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2938 -#: utils/adt/timestamp.c:2957 utils/adt/timestamp.c:2970 -#: utils/adt/timestamp.c:2981 utils/adt/timestamp.c:2987 -#: utils/adt/timestamp.c:2993 utils/adt/timestamp.c:2998 -#: utils/adt/timestamp.c:3059 utils/adt/timestamp.c:3064 -#: utils/adt/timestamp.c:3085 utils/adt/timestamp.c:3098 -#: utils/adt/timestamp.c:3112 utils/adt/timestamp.c:3120 -#: utils/adt/timestamp.c:3126 utils/adt/timestamp.c:3131 -#: utils/adt/timestamp.c:3859 utils/adt/timestamp.c:3983 -#: utils/adt/timestamp.c:4054 utils/adt/timestamp.c:4090 -#: utils/adt/timestamp.c:4180 utils/adt/timestamp.c:4254 -#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4393 -#: utils/adt/timestamp.c:4842 utils/adt/timestamp.c:5116 -#: utils/adt/timestamp.c:5555 utils/adt/timestamp.c:5565 -#: utils/adt/timestamp.c:5570 utils/adt/timestamp.c:5576 -#: utils/adt/timestamp.c:5609 utils/adt/timestamp.c:5696 -#: utils/adt/timestamp.c:5737 utils/adt/timestamp.c:5741 -#: utils/adt/timestamp.c:5795 utils/adt/timestamp.c:5799 -#: utils/adt/timestamp.c:5805 utils/adt/timestamp.c:5839 utils/adt/xml.c:2492 -#: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 +#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 +#: utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 +#: utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 +#: utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 +#: utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 +#: utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 +#: utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 +#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 +#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 +#: utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 +#: utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 +#: utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 +#: utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 +#: utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 +#: utils/adt/timestamp.c:3266 utils/adt/timestamp.c:3279 +#: utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 +#: utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 +#: utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 +#: utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 +#: utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 +#: utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 +#: utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 +#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 +#: utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 +#: utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 +#: utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 +#: utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2574 +#: utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "timestamp вне диапазона" -#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 +#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 #, c-format msgid "time out of range" msgstr "время вне диапазона" -#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 +#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "значение поля типа time вне диапазона: %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3513 utils/adt/timestamp.c:3540 -#: utils/adt/timestamp.c:3571 +#: utils/adt/date.c:2020 +#, c-format +msgid "cannot convert infinite interval to time" +msgstr "бесконечный интервал нельзя привести к типу time" + +#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#, c-format +msgid "cannot add infinite interval to time" +msgstr "бесконечный интервал нельзя добавить к значению time" + +#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#, c-format +msgid "cannot subtract infinite interval from time" +msgstr "бесконечный интервал нельзя вычесть из значения time" + +#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 +#: utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2595 +#: utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 +#: utils/adt/timestamp.c:3888 #, c-format msgid "invalid preceding or following size in window function" msgstr "неверное смещение PRECEDING или FOLLOWING в оконной функции" -#: utils/adt/date.c:2351 +#: utils/adt/date.c:2360 #, c-format msgid "time zone displacement out of range" msgstr "смещение часового пояса вне диапазона" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5598 utils/adt/timestamp.c:5828 +#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#, c-format +msgid "interval time zone \"%s\" must be finite" +msgstr "задающий часовой пояс интервал \"%s\" должен быть конечным" + +#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "" "интервал \"%s\", задающий часовой пояс, не должен содержать дней или месяцев" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 +#: utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 #, c-format msgid "time zone \"%s\" not recognized" msgstr "часовой пояс \"%s\" не распознан" -#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 +#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "значение поля типа date/time вне диапазона: \"%s\"" -#: utils/adt/datetime.c:3985 +#: utils/adt/datetime.c:4110 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "Возможно, вам нужно изменить настройку \"datestyle\"." -#: utils/adt/datetime.c:3990 +#: utils/adt/datetime.c:4115 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "значение поля interval вне диапазона: \"%s\"" -#: utils/adt/datetime.c:3996 +#: utils/adt/datetime.c:4121 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "смещение часового пояса вне диапазона: \"%s\"" -#: utils/adt/datetime.c:4010 +#: utils/adt/datetime.c:4135 #, c-format msgid "" "This time zone name appears in the configuration file for time zone " @@ -26434,22 +27648,22 @@ msgstr "" "Это имя часового пояса фигурирует в файле конфигурации часового пояса с " "кодом \"%s\"." -#: utils/adt/datum.c:91 utils/adt/datum.c:103 +#: utils/adt/datum.c:90 utils/adt/datum.c:102 #, c-format msgid "invalid Datum pointer" msgstr "неверный указатель Datum" -#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:840 #, c-format msgid "invalid size: \"%s\"" msgstr "некорректная величина: \"%s\"" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:841 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Неверная единица измерения величины: \"%s\"." -#: utils/adt/dbsize.c:839 +#: utils/adt/dbsize.c:842 #, c-format msgid "" "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." @@ -26457,7 +27671,7 @@ msgstr "" "Допустимые единицы измерения: \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", " "\"TB\" и \"PB\"." -#: utils/adt/domains.c:92 +#: utils/adt/domains.c:95 #, c-format msgid "type %s is not a domain" msgstr "тип \"%s\" не является доменом" @@ -26508,10 +27722,10 @@ msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "" "Входные данные лишены выравнивания, обрезаны или повреждены иным образом." -#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 -#: utils/adt/varlena.c:331 utils/adt/varlena.c:372 jsonpath_gram.y:528 -#: jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 -#: jsonpath_scan.l:701 +#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:659 +#: utils/adt/varlena.c:333 utils/adt/varlena.c:374 jsonpath_gram.y:266 +#: jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 +#: jsonpath_scan.l:661 jsonpath_scan.l:712 #, c-format msgid "invalid input syntax for type %s" msgstr "неверный синтаксис для типа %s" @@ -26549,205 +27763,200 @@ msgstr "не удалось определить фактический тип msgid "enum %s contains no values" msgstr "перечисление %s не содержит значений" -#: utils/adt/float.c:89 +#: utils/adt/float.c:83 #, c-format msgid "value out of range: overflow" msgstr "значение вне диапазона: переполнение" -#: utils/adt/float.c:97 +#: utils/adt/float.c:91 #, c-format msgid "value out of range: underflow" msgstr "значение вне диапазона: антипереполнение" -#: utils/adt/float.c:286 +#: utils/adt/float.c:280 #, c-format msgid "\"%s\" is out of range for type real" msgstr "\"%s\" вне диапазона для типа real" -#: utils/adt/float.c:488 +#: utils/adt/float.c:482 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "\"%s\" вне диапазона для типа double precision" -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1293 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1277 utils/adt/numeric.c:4593 utils/adt/numeric.c:4598 #, c-format msgid "smallint out of range" msgstr "smallint вне диапазона" -#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 +#: utils/adt/float.c:1447 utils/adt/numeric.c:3709 utils/adt/numeric.c:10112 #, c-format msgid "cannot take square root of a negative number" msgstr "извлечь квадратный корень отрицательного числа нельзя" -#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 +#: utils/adt/float.c:1515 utils/adt/numeric.c:3997 utils/adt/numeric.c:4109 #, c-format msgid "zero raised to a negative power is undefined" msgstr "ноль в отрицательной степени даёт неопределённость" -#: utils/adt/float.c:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 +#: utils/adt/float.c:1519 utils/adt/numeric.c:4001 utils/adt/numeric.c:11003 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "отрицательное число в дробной степени даёт комплексный результат" -#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3909 +#: utils/adt/numeric.c:10783 #, c-format msgid "cannot take logarithm of zero" msgstr "вычислить логарифм нуля нельзя" -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3847 +#: utils/adt/numeric.c:3904 utils/adt/numeric.c:10787 #, c-format msgid "cannot take logarithm of a negative number" msgstr "вычислить логарифм отрицательного числа нельзя" -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 +#: utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 +#: utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 +#: utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 +#: utils/adt/float.c:2696 utils/adt/float.c:2720 #, c-format msgid "input is out of range" msgstr "введённое значение вне диапазона" -#: utils/adt/float.c:2867 -#, c-format -msgid "setseed parameter %g is out of allowed range [-1,1]" -msgstr "параметр setseed %g вне допустимого диапазона [-1,1]" - -#: utils/adt/float.c:4095 utils/adt/numeric.c:1841 +#: utils/adt/float.c:4000 utils/adt/numeric.c:1857 #, c-format msgid "count must be greater than zero" msgstr "счётчик должен быть больше нуля" -#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 +#: utils/adt/float.c:4005 utils/adt/numeric.c:1868 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "операнд, нижняя и верхняя границы не могут быть NaN" -#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 +#: utils/adt/float.c:4011 utils/adt/numeric.c:1873 #, c-format msgid "lower and upper bounds must be finite" msgstr "нижняя и верхняя границы должны быть конечными" -#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 +#: utils/adt/float.c:4077 utils/adt/numeric.c:1887 #, c-format msgid "lower bound cannot equal upper bound" msgstr "нижняя граница не может равняться верхней" -#: utils/adt/formatting.c:519 +#: utils/adt/formatting.c:530 #, c-format msgid "invalid format specification for an interval value" msgstr "неправильная спецификация формата для целого числа" -#: utils/adt/formatting.c:520 +#: utils/adt/formatting.c:531 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "Интервалы не привязываются к определённым календарным датам." -#: utils/adt/formatting.c:1150 +#: utils/adt/formatting.c:1161 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\" может быть только последним шаблоном" -#: utils/adt/formatting.c:1158 +#: utils/adt/formatting.c:1169 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\" должна стоять до \"PR\"" -#: utils/adt/formatting.c:1174 +#: utils/adt/formatting.c:1185 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\" должен стоять до \"PR\"" -#: utils/adt/formatting.c:1201 +#: utils/adt/formatting.c:1212 #, c-format msgid "multiple decimal points" msgstr "многочисленные десятичные точки" -#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "нельзя использовать \"V\" вместе с десятичной точкой" -#: utils/adt/formatting.c:1217 +#: utils/adt/formatting.c:1228 #, c-format msgid "cannot use \"S\" twice" msgstr "нельзя использовать \"S\" дважды" -#: utils/adt/formatting.c:1221 +#: utils/adt/formatting.c:1232 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "нельзя использовать \"S\" вместе с \"PL\"/\"MI\"/\"SG\"/\"PR\"" -#: utils/adt/formatting.c:1241 +#: utils/adt/formatting.c:1252 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "нельзя использовать \"S\" вместе с \"MI\"" -#: utils/adt/formatting.c:1251 +#: utils/adt/formatting.c:1262 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "нельзя использовать \"S\" вместе с \"PL\"" -#: utils/adt/formatting.c:1261 +#: utils/adt/formatting.c:1272 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "нельзя использовать \"S\" вместе с \"SG\"" -#: utils/adt/formatting.c:1270 +#: utils/adt/formatting.c:1281 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "нельзя использовать \"PR\" вместе с \"S\"/\"PL\"/\"MI\"/\"SG\"" -#: utils/adt/formatting.c:1296 +#: utils/adt/formatting.c:1307 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "нельзя использовать \"EEEE\" дважды" -#: utils/adt/formatting.c:1302 +#: utils/adt/formatting.c:1313 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\" несовместим с другими форматами" -#: utils/adt/formatting.c:1303 +#: utils/adt/formatting.c:1314 #, c-format msgid "" "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "" "\"EEEE\" может использоваться только с шаблонами цифр и десятичной точки." -#: utils/adt/formatting.c:1387 +#: utils/adt/formatting.c:1398 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "неверный разделитель в формате datetime: \"%s\"" -#: utils/adt/formatting.c:1514 +#: utils/adt/formatting.c:1525 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\" не является числом" -#: utils/adt/formatting.c:1592 +#: utils/adt/formatting.c:1603 #, c-format msgid "case conversion failed: %s" msgstr "преобразовать регистр не удалось: %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 +#: utils/adt/formatting.c:1989 #, c-format msgid "could not determine which collation to use for %s function" msgstr "" "не удалось определить, какое правило сортировки использовать для функции %s" -#: utils/adt/formatting.c:2274 +#: utils/adt/formatting.c:2410 #, c-format msgid "invalid combination of date conventions" msgstr "неверное сочетание стилей дат" -#: utils/adt/formatting.c:2275 +#: utils/adt/formatting.c:2411 #, c-format msgid "" "Do not mix Gregorian and ISO week date conventions in a formatting template." @@ -26755,27 +27964,27 @@ msgstr "" "Не смешивайте Григорианский стиль дат (недель) с ISO в одном шаблоне " "форматирования." -#: utils/adt/formatting.c:2297 +#: utils/adt/formatting.c:2433 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "конфликтующие значения поля \"%s\" в строке форматирования" -#: utils/adt/formatting.c:2299 +#: utils/adt/formatting.c:2435 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "Это значение противоречит предыдущему значению поля того же типа." -#: utils/adt/formatting.c:2366 +#: utils/adt/formatting.c:2502 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "входная строка короче, чем требует поле форматирования \"%s\"" -#: utils/adt/formatting.c:2368 +#: utils/adt/formatting.c:2504 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "Требуется символов: %d, а осталось только %d." -#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 +#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 #, c-format msgid "" "If your source string is not fixed-width, try using the \"FM\" modifier." @@ -26783,132 +27992,132 @@ msgstr "" "Если входная строка имеет переменную длину, попробуйте использовать " "модификатор \"FM\"." -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 +#: utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "неверное значение \"%s\" для \"%s\"" -#: utils/adt/formatting.c:2382 +#: utils/adt/formatting.c:2518 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "Поле должно поглотить символов: %d, но удалось разобрать только %d." -#: utils/adt/formatting.c:2395 +#: utils/adt/formatting.c:2531 #, c-format msgid "Value must be an integer." msgstr "Значение должно быть целым числом." -#: utils/adt/formatting.c:2400 +#: utils/adt/formatting.c:2536 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "значение \"%s\" во входной строке вне диапазона" -#: utils/adt/formatting.c:2402 +#: utils/adt/formatting.c:2538 #, c-format msgid "Value must be in the range %d to %d." msgstr "Значение должно быть в интервале %d..%d." -#: utils/adt/formatting.c:2616 +#: utils/adt/formatting.c:2752 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "" "Данное значение не соответствует ни одному из допустимых значений для этого " "поля." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 +#: utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 +#: utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 +#: utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 +#: utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 +#: utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 #, c-format msgid "localized string format value too long" msgstr "слишком длинное значение формата локализованной строки" -#: utils/adt/formatting.c:3322 +#: utils/adt/formatting.c:3458 #, c-format msgid "unmatched format separator \"%c\"" msgstr "нет соответствия для заданного в формате разделителя \"%c\"" -#: utils/adt/formatting.c:3383 +#: utils/adt/formatting.c:3519 #, c-format msgid "unmatched format character \"%s\"" msgstr "нет соответствия для заданного в формате символа \"%s\"" -#: utils/adt/formatting.c:3491 +#: utils/adt/formatting.c:3652 #, c-format -msgid "formatting field \"%s\" is only supported in to_char" -msgstr "поле форматирования \"%s\" поддерживается только в функции to_char" +msgid "Time zone abbreviation is not recognized." +msgstr "Сокращённое название часового пояса не распознано." -#: utils/adt/formatting.c:3665 +#: utils/adt/formatting.c:3853 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "ошибка синтаксиса в значении для шаблона \"Y,YYY\"" -#: utils/adt/formatting.c:3754 +#: utils/adt/formatting.c:3942 #, c-format msgid "input string is too short for datetime format" msgstr "входная строка короче, чем требует формат datetime" -#: utils/adt/formatting.c:3762 +#: utils/adt/formatting.c:3950 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "" "после разбора формата datetime во входной строке остались дополнительные " "символы" -#: utils/adt/formatting.c:4319 +#: utils/adt/formatting.c:4494 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "во входной строке для типа timestamptz нет указания часового пояса" -#: utils/adt/formatting.c:4325 +#: utils/adt/formatting.c:4500 #, c-format msgid "timestamptz out of range" msgstr "значение timestamptz вне диапазона" -#: utils/adt/formatting.c:4353 +#: utils/adt/formatting.c:4528 #, c-format msgid "datetime format is zoned but not timed" msgstr "в формате datetime указан часовой пояс, но отсутствует время" -#: utils/adt/formatting.c:4411 +#: utils/adt/formatting.c:4577 #, c-format msgid "missing time zone in input string for type timetz" msgstr "во входной строке для типа timetz нет указания часового пояса" -#: utils/adt/formatting.c:4417 +#: utils/adt/formatting.c:4583 #, c-format msgid "timetz out of range" msgstr "значение timetz вне диапазона" -#: utils/adt/formatting.c:4443 +#: utils/adt/formatting.c:4609 #, c-format msgid "datetime format is not dated and not timed" msgstr "в формате datetime нет ни даты, ни времени" -#: utils/adt/formatting.c:4575 +#: utils/adt/formatting.c:4786 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "час \"%d\" не соответствует 12-часовому формату времени" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4788 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Используйте 24-часовой формат или передавайте часы от 1 до 12." -#: utils/adt/formatting.c:4689 +#: utils/adt/formatting.c:4900 #, c-format msgid "cannot calculate day of year without year information" msgstr "нельзя рассчитать день года без информации о годе" -#: utils/adt/formatting.c:5621 +#: utils/adt/formatting.c:5852 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" не поддерживается при вводе" -#: utils/adt/formatting.c:5633 +#: utils/adt/formatting.c:5864 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" не поддерживается при вводе" @@ -26940,12 +28149,7 @@ msgstr "не удалось переместиться в файле \"%s\": %m" msgid "file length too large" msgstr "длина файла слишком велика" -#: utils/adt/genfile.c:248 -#, c-format -msgid "must be superuser to read files with adminpack 1.0" -msgstr "читать файлы, используя adminpack 1.0, может только суперпользователь" - -#: utils/adt/genfile.c:702 +#: utils/adt/genfile.c:656 #, c-format msgid "tablespace with OID %u does not exist" msgstr "табличное пространство с OID %u не существует" @@ -27001,298 +28205,298 @@ msgstr "точек должно быть минимум 2" msgid "invalid int2vector data" msgstr "неверные данные int2vector" -#: utils/adt/int.c:1529 utils/adt/int8.c:1419 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5889 utils/adt/timestamp.c:5971 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1765 +#: utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 #, c-format msgid "step size cannot equal zero" msgstr "размер шага не может быть нулевым" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:915 utils/adt/int8.c:929 -#: utils/adt/int8.c:943 utils/adt/int8.c:974 utils/adt/int8.c:996 -#: utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 -#: utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 -#: utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 -#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 +#: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 +#: utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 +#: utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 +#: utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 +#: utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 +#: utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 +#: utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 +#: utils/adt/int8.c:1055 utils/adt/int8.c:1069 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 +#: utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4542 +#: utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint вне диапазона" -#: utils/adt/int8.c:1376 +#: utils/adt/int8.c:1360 #, c-format msgid "OID out of range" msgstr "OID вне диапазона" -#: utils/adt/json.c:320 utils/adt/jsonb.c:781 +#: utils/adt/json.c:202 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "" "значением ключа должен быть скаляр (не массив, композитный тип или json)" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2090 +#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "не удалось определить тип данных аргумента %d" -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1067 utils/adt/json.c:1266 utils/adt/json.c:1449 +#: utils/adt/json.c:1527 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "значение null не может быть ключом объекта" -#: utils/adt/json.c:1189 utils/adt/json.c:1352 +#: utils/adt/json.c:1117 utils/adt/json.c:1288 #, c-format msgid "duplicate JSON object key value: %s" msgstr "повторяющийся ключ в объекте JSON: %s" -#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 +#: utils/adt/json.c:1226 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "в списке аргументов должно быть чётное число элементов" #. translator: %s is a SQL function name -#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 +#: utils/adt/json.c:1228 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "Аргументы %s должны состоять из пар ключ-значение." -#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 +#: utils/adt/json.c:1427 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "массив должен иметь два столбца" -#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 +#: utils/adt/json.c:1516 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "неподходящие размерности массива" -#: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 +#: utils/adt/json.c:1702 utils/adt/jsonb_util.c:1956 #, c-format msgid "duplicate JSON object key value" msgstr "повторяющиеся ключи в объекте JSON" -#: utils/adt/jsonb.c:294 +#: utils/adt/jsonb.c:282 #, c-format msgid "string too long to represent as jsonb string" msgstr "слишком длинная строка для представления в виде строки jsonb" -#: utils/adt/jsonb.c:295 +#: utils/adt/jsonb.c:283 #, c-format msgid "" "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "" "Из-за ограничений реализации строки jsonb не могут быть длиннее %d байт." -#: utils/adt/jsonb.c:1252 +#: utils/adt/jsonb.c:1153 #, c-format msgid "argument %d: key must not be null" msgstr "аргумент %d: ключ не может быть NULL" -#: utils/adt/jsonb.c:1843 +#: utils/adt/jsonb.c:1744 #, c-format msgid "field name must not be null" msgstr "имя поля не может быть NULL" -#: utils/adt/jsonb.c:1905 +#: utils/adt/jsonb.c:1806 #, c-format msgid "object keys must be strings" msgstr "ключи объектов должны быть строковыми" -#: utils/adt/jsonb.c:2116 +#: utils/adt/jsonb.c:2017 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "привести значение jsonb null к типу %s нельзя" -#: utils/adt/jsonb.c:2117 +#: utils/adt/jsonb.c:2018 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "привести строку jsonb к типу %s нельзя" -#: utils/adt/jsonb.c:2118 +#: utils/adt/jsonb.c:2019 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "привести числовое значение jsonb к типу %s нельзя" -#: utils/adt/jsonb.c:2119 +#: utils/adt/jsonb.c:2020 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "привести логическое значение jsonb к типу %s нельзя" -#: utils/adt/jsonb.c:2120 +#: utils/adt/jsonb.c:2021 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "привести массив jsonb к типу %s нельзя" -#: utils/adt/jsonb.c:2121 +#: utils/adt/jsonb.c:2022 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "привести объект jsonb к типу %s нельзя" -#: utils/adt/jsonb.c:2122 +#: utils/adt/jsonb.c:2023 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "привести массив или объект jsonb к типу %s нельзя" -#: utils/adt/jsonb_util.c:758 +#: utils/adt/jsonb_util.c:756 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "число пар объекта jsonb превышает предел (%zu)" -#: utils/adt/jsonb_util.c:799 +#: utils/adt/jsonb_util.c:797 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "число элементов массива jsonb превышает предел (%zu)" -#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 +#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "общий размер элементов массива jsonb превышает предел (%d байт)" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 +#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 +#: utils/adt/jsonb_util.c:1807 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "общий размер элементов объекта jsonb превышает предел (%d байт)" -#: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 +#: utils/adt/jsonbsubs.c:67 utils/adt/jsonbsubs.c:148 #, c-format msgid "jsonb subscript does not support slices" msgstr "jsonb не поддерживает обращение по индексу к срезам" -#: utils/adt/jsonbsubs.c:103 utils/adt/jsonbsubs.c:117 +#: utils/adt/jsonbsubs.c:100 utils/adt/jsonbsubs.c:114 #, c-format msgid "subscript type %s is not supported" msgstr "индекс элемента имеет неподдерживаемый тип %s" -#: utils/adt/jsonbsubs.c:104 +#: utils/adt/jsonbsubs.c:101 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." msgstr "" "Индекс элемента в jsonb должен приводиться только к одному типу, integer или " "text." -#: utils/adt/jsonbsubs.c:118 +#: utils/adt/jsonbsubs.c:115 #, c-format msgid "jsonb subscript must be coercible to either integer or text." msgstr "Индекс элемента в jsonb должен приводиться к типу integer или text." -#: utils/adt/jsonbsubs.c:139 +#: utils/adt/jsonbsubs.c:136 #, c-format msgid "jsonb subscript must have text type" msgstr "индекс элемента jsonb должен иметь текстовый тип" -#: utils/adt/jsonbsubs.c:207 +#: utils/adt/jsonbsubs.c:204 #, c-format msgid "jsonb subscript in assignment must not be null" msgstr "индекс элемента jsonb в присваивании не может быть NULL" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:583 utils/adt/jsonfuncs.c:830 +#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:3015 +#: utils/adt/jsonfuncs.c:3948 utils/adt/jsonfuncs.c:4295 #, c-format msgid "cannot call %s on a scalar" msgstr "вызывать %s со скаляром нельзя" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:588 utils/adt/jsonfuncs.c:815 +#: utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3935 #, c-format msgid "cannot call %s on an array" msgstr "вызывать %s с массивом нельзя" -#: utils/adt/jsonfuncs.c:636 jsonpath_scan.l:596 +#: utils/adt/jsonfuncs.c:647 jsonpath_scan.l:607 #, c-format msgid "unsupported Unicode escape sequence" msgstr "неподдерживаемая спецпоследовательность Unicode" -#: utils/adt/jsonfuncs.c:713 +#: utils/adt/jsonfuncs.c:724 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "данные JSON, строка %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 +#: utils/adt/jsonfuncs.c:1883 utils/adt/jsonfuncs.c:1920 #, c-format msgid "cannot get array length of a scalar" msgstr "получить длину скаляра нельзя" -#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 +#: utils/adt/jsonfuncs.c:1887 utils/adt/jsonfuncs.c:1906 #, c-format msgid "cannot get array length of a non-array" msgstr "получить длину массива для не массива нельзя" -#: utils/adt/jsonfuncs.c:1978 +#: utils/adt/jsonfuncs.c:1986 #, c-format msgid "cannot call %s on a non-object" msgstr "вызывать %s с не объектом нельзя" -#: utils/adt/jsonfuncs.c:2166 +#: utils/adt/jsonfuncs.c:2174 #, c-format msgid "cannot deconstruct an array as an object" msgstr "извлечь массив в виде объекта нельзя" -#: utils/adt/jsonfuncs.c:2180 +#: utils/adt/jsonfuncs.c:2188 #, c-format msgid "cannot deconstruct a scalar" msgstr "извлечь скаляр нельзя" -#: utils/adt/jsonfuncs.c:2225 +#: utils/adt/jsonfuncs.c:2233 #, c-format msgid "cannot extract elements from a scalar" msgstr "извлечь элементы из скаляра нельзя" -#: utils/adt/jsonfuncs.c:2229 +#: utils/adt/jsonfuncs.c:2237 #, c-format msgid "cannot extract elements from an object" msgstr "извлечь элементы из объекта нельзя" -#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 +#: utils/adt/jsonfuncs.c:2424 utils/adt/jsonfuncs.c:4173 #, c-format msgid "cannot call %s on a non-array" msgstr "вызывать %s с не массивом нельзя" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2515 utils/adt/jsonfuncs.c:2520 +#: utils/adt/jsonfuncs.c:2538 utils/adt/jsonfuncs.c:2544 #, c-format msgid "expected JSON array" msgstr "ожидался массив JSON" -#: utils/adt/jsonfuncs.c:2489 +#: utils/adt/jsonfuncs.c:2516 #, c-format msgid "See the value of key \"%s\"." msgstr "Проверьте значение ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2511 +#: utils/adt/jsonfuncs.c:2539 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "Проверьте элемент массива %s ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2517 +#: utils/adt/jsonfuncs.c:2545 #, c-format msgid "See the array element %s." msgstr "Проверьте элемент массива %s." -#: utils/adt/jsonfuncs.c:2552 +#: utils/adt/jsonfuncs.c:2597 #, c-format msgid "malformed JSON array" msgstr "неправильный массив JSON" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3389 +#: utils/adt/jsonfuncs.c:3647 #, c-format msgid "first argument of %s must be a row type" msgstr "первым аргументом %s должен быть кортеж" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3413 +#: utils/adt/jsonfuncs.c:3671 #, c-format msgid "could not determine row type for result of %s" msgstr "не удалось определить тип строки для результата %s" -#: utils/adt/jsonfuncs.c:3415 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "" "Provide a non-null record argument, or call the function in the FROM clause " @@ -27301,38 +28505,38 @@ msgstr "" "Передайте отличный от NULL аргумент-запись или вызовите эту функцию в " "предложении FROM, используя список определений столбцов." -#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4059 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "требуется режим материализации, но он недопустим в этом контексте" -#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 +#: utils/adt/jsonfuncs.c:4190 utils/adt/jsonfuncs.c:4274 #, c-format msgid "argument of %s must be an array of objects" msgstr "аргументом %s должен быть массив объектов" -#: utils/adt/jsonfuncs.c:3946 +#: utils/adt/jsonfuncs.c:4223 #, c-format msgid "cannot call %s on an object" msgstr "вызывать %s с объектом нельзя" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4656 utils/adt/jsonfuncs.c:4715 +#: utils/adt/jsonfuncs.c:4795 #, c-format msgid "cannot delete from scalar" msgstr "удаление из скаляра невозможно" -#: utils/adt/jsonfuncs.c:4524 +#: utils/adt/jsonfuncs.c:4800 #, c-format msgid "cannot delete from object using integer index" msgstr "удаление из объекта по числовому индексу невозможно" -#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 +#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:5027 #, c-format msgid "cannot set path in scalar" msgstr "задать путь в скаляре нельзя" -#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 +#: utils/adt/jsonfuncs.c:4909 utils/adt/jsonfuncs.c:4951 #, c-format msgid "" "null_value_treatment must be \"delete_key\", \"return_target\", " @@ -27341,12 +28545,12 @@ msgstr "" "значением null_value_treatment должно быть \"delete_key\", " "\"return_target\", \"use_json_null\" или \"raise_exception\"" -#: utils/adt/jsonfuncs.c:4646 +#: utils/adt/jsonfuncs.c:4922 #, c-format msgid "JSON value must not be null" msgstr "значение JSON не может быть NULL" -#: utils/adt/jsonfuncs.c:4647 +#: utils/adt/jsonfuncs.c:4923 #, c-format msgid "" "Exception was raised because null_value_treatment is \"raise_exception\"." @@ -27354,7 +28558,7 @@ msgstr "" "Выдано исключение, так как значением null_value_treatment является " "\"raise_exception\"." -#: utils/adt/jsonfuncs.c:4648 +#: utils/adt/jsonfuncs.c:4924 #, c-format msgid "" "To avoid, either change the null_value_treatment argument or ensure that an " @@ -27363,55 +28567,55 @@ msgstr "" "Чтобы исключения не было, либо измените аргумент null_value_treatment, либо " "не допускайте передачи SQL NULL." -#: utils/adt/jsonfuncs.c:4703 +#: utils/adt/jsonfuncs.c:4979 #, c-format msgid "cannot delete path in scalar" msgstr "удалить путь в скаляре нельзя" -#: utils/adt/jsonfuncs.c:4917 +#: utils/adt/jsonfuncs.c:5193 #, c-format msgid "path element at position %d is null" msgstr "элемент пути в позиции %d равен NULL" -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:5212 utils/adt/jsonfuncs.c:5243 +#: utils/adt/jsonfuncs.c:5316 #, c-format msgid "cannot replace existing key" msgstr "заменить существующий ключ нельзя" -#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 +#: utils/adt/jsonfuncs.c:5213 utils/adt/jsonfuncs.c:5244 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "" "Для заданного пути значение ключа должно быть составным объектом, но оно " "оказалось скаляром." -#: utils/adt/jsonfuncs.c:5041 +#: utils/adt/jsonfuncs.c:5317 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "Попробуйте применить функцию jsonb_set для замены значения ключа." -#: utils/adt/jsonfuncs.c:5145 +#: utils/adt/jsonfuncs.c:5421 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "элемент пути в позиции %d - не целочисленный: \"%s\"" -#: utils/adt/jsonfuncs.c:5162 +#: utils/adt/jsonfuncs.c:5438 #, c-format msgid "path element at position %d is out of range: %d" msgstr "элемент пути в позиции %d вне диапазона: %d" -#: utils/adt/jsonfuncs.c:5314 +#: utils/adt/jsonfuncs.c:5590 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "неверный тип флага, допускаются только массивы и скаляры" -#: utils/adt/jsonfuncs.c:5321 +#: utils/adt/jsonfuncs.c:5597 #, c-format msgid "flag array element is not a string" msgstr "элемент массива флагов не является строкой" -#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 +#: utils/adt/jsonfuncs.c:5598 utils/adt/jsonfuncs.c:5620 #, c-format msgid "" "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and " @@ -27419,197 +28623,313 @@ msgid "" msgstr "" "Допустимые значения: \"string\", \"numeric\", \"boolean\", \"key\" и \"all\"." -#: utils/adt/jsonfuncs.c:5342 +#: utils/adt/jsonfuncs.c:5618 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "неверный флаг в массиве флагов: \"%s\"" -#: utils/adt/jsonpath.c:382 +#: utils/adt/jsonpath.c:389 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ не допускается в корневых выражениях" -#: utils/adt/jsonpath.c:388 +#: utils/adt/jsonpath.c:395 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST принимается только в качестве индекса массива" -#: utils/adt/jsonpath_exec.c:361 +#: utils/adt/jsonpath_exec.c:491 #, c-format msgid "single boolean result is expected" msgstr "ожидался единственный булевский результат" -#: utils/adt/jsonpath_exec.c:557 +#: utils/adt/jsonpath_exec.c:851 #, c-format -msgid "\"vars\" argument is not an object" -msgstr "аргумент \"vars\" не является объектом" +msgid "jsonpath wildcard array accessor can only be applied to an array" +msgstr "" +"выражение обращения по звёздочке в jsonpath может применяться только к " +"массиву" -#: utils/adt/jsonpath_exec.c:558 +#: utils/adt/jsonpath_exec.c:874 #, c-format -msgid "" -"Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgid "jsonpath wildcard member accessor can only be applied to an object" msgstr "" -"Параметры jsonpath должны передаваться в виде пар ключ-значение в объекте " -"\"vars\"." +"выражение обращения по звёздочке в jsonpath может применяться только к " +"объекту" + +#: utils/adt/jsonpath_exec.c:923 +#, c-format +msgid "jsonpath array subscript is out of bounds" +msgstr "индекс массива в jsonpath вне диапазона" + +#: utils/adt/jsonpath_exec.c:980 +#, c-format +msgid "jsonpath array accessor can only be applied to an array" +msgstr "" +"выражение обращения к массиву в jsonpath может применяться только к массиву" -#: utils/adt/jsonpath_exec.c:675 +#: utils/adt/jsonpath_exec.c:1044 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "JSON-объект не содержит ключ \"%s\"" -#: utils/adt/jsonpath_exec.c:687 +#: utils/adt/jsonpath_exec.c:1056 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "" "выражение обращения к члену в jsonpath может применяться только к объекту" -#: utils/adt/jsonpath_exec.c:716 +# skip-rule: space-before-period +#: utils/adt/jsonpath_exec.c:1114 #, c-format -msgid "jsonpath wildcard array accessor can only be applied to an array" +msgid "jsonpath item method .%s() can only be applied to an array" +msgstr "метод .%s() в jsonpath может применяться только к массиву" + +#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 +#, c-format +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type double " +"precision" msgstr "" -"выражение обращения по звёздочке в jsonpath может применяться только к " -"массиву" +"аргумент \"%s\" метода элемента jsonpath .%s() некорректен для типа double " +"precision" -#: utils/adt/jsonpath_exec.c:764 +#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 +#: utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 #, c-format -msgid "jsonpath array subscript is out of bounds" -msgstr "индекс массива в jsonpath вне диапазона" +msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" +msgstr "метод элемента jsonpath .%s() не принимает значения NaN и Infinity" + +# skip-rule: space-before-period +#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 +#: utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 +#, c-format +msgid "" +"jsonpath item method .%s() can only be applied to a string or numeric value" +msgstr "" +"метод .%s() в jsonpath может применяться только к строковому или числовому " +"значению" -#: utils/adt/jsonpath_exec.c:821 +#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 #, c-format -msgid "jsonpath array accessor can only be applied to an array" +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" msgstr "" -"выражение обращения к массиву в jsonpath может применяться только к массиву" +"аргумент \"%s\" метода элемента jsonpath .%s() не подходит для типа bigint" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 #, c-format -msgid "jsonpath wildcard member accessor can only be applied to an object" +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" msgstr "" -"выражение обращения по звёздочке в jsonpath может применяться только к " -"объекту" +"аргумент \"%s\" метода элемента jsonpath .%s() не подходит для типа boolean" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1007 +#: utils/adt/jsonpath_exec.c:1386 #, c-format -msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "метод .%s() в jsonpath может применяться только к массиву" +msgid "" +"jsonpath item method .%s() can only be applied to a boolean, string, or " +"numeric value" +msgstr "" +"метод .%s() в jsonpath может применяться только к булевскому, строковому или " +"числовому значению" + +#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 +#, c-format +msgid "" +"argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" +msgstr "" +"аргумент \"%s\" метода элемента jsonpath .%s() не подходит для типа numeric" -#: utils/adt/jsonpath_exec.c:1060 +#: utils/adt/jsonpath_exec.c:1487 #, c-format msgid "" -"numeric argument of jsonpath item method .%s() is out of range for type " -"double precision" +"precision of jsonpath item method .%s() is out of range for type integer" +msgstr "точность в аргументе метода jsonpath .%s() вне диапазона типа integer" + +#: utils/adt/jsonpath_exec.c:1501 +#, c-format +msgid "scale of jsonpath item method .%s() is out of range for type integer" msgstr "" -"числовой аргумент метода элемента jsonpath .%s() вне диапазона для типа " -"double precision" +"масштаб в аргументе метода элемента jsonpath .%s() вне диапазона типа integer" -#: utils/adt/jsonpath_exec.c:1081 +#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 #, c-format msgid "" -"string argument of jsonpath item method .%s() is not a valid representation " -"of a double precision number" +"argument \"%s\" of jsonpath item method .%s() is invalid for type integer" msgstr "" -"строковый аргумент метода элемента jsonpath .%s() не является представлением " -"значения double precision" +"аргумент \"%s\" метода элемента jsonpath .%s() не подходит для типа integer" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1094 +#: utils/adt/jsonpath_exec.c:1648 #, c-format msgid "" -"jsonpath item method .%s() can only be applied to a string or numeric value" +"jsonpath item method .%s() can only be applied to a boolean, string, " +"numeric, or datetime value" msgstr "" -"метод .%s() в jsonpath может применяться только к строковому или числовому " -"значению" +"метод .%s() в jsonpath может применяться только к булевскому, строковому, " +"числовому значению или к дате/времени" -#: utils/adt/jsonpath_exec.c:1587 +#: utils/adt/jsonpath_exec.c:2137 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "" "левый операнд оператора %s в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:1594 +#: utils/adt/jsonpath_exec.c:2144 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "" "правый операнд оператора %s в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:1662 +#: utils/adt/jsonpath_exec.c:2212 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "" "операнд унарного оператора %s в jsonpath не является числовым значением" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1761 +#: utils/adt/jsonpath_exec.c:2311 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "метод .%s() в jsonpath может применяться только к числовому значению" # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1801 +#: utils/adt/jsonpath_exec.c:2357 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "метод .%s() в jsonpath может применяться только к строке" -#: utils/adt/jsonpath_exec.c:1904 +#: utils/adt/jsonpath_exec.c:2450 +#, c-format +msgid "" +"time precision of jsonpath item method .%s() is out of range for type integer" +msgstr "" +"точность времени в аргументе метода jsonpath .%s() вне диапазона типа integer" + +#: utils/adt/jsonpath_exec.c:2484 utils/adt/jsonpath_exec.c:2490 +#: utils/adt/jsonpath_exec.c:2517 utils/adt/jsonpath_exec.c:2545 +#: utils/adt/jsonpath_exec.c:2598 utils/adt/jsonpath_exec.c:2649 +#: utils/adt/jsonpath_exec.c:2720 #, c-format -msgid "datetime format is not recognized: \"%s\"" -msgstr "формат datetime не распознан: \"%s\"" +msgid "%s format is not recognized: \"%s\"" +msgstr "формат %s не распознан: \"%s\"" -#: utils/adt/jsonpath_exec.c:1906 +#: utils/adt/jsonpath_exec.c:2486 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "" "Воспользуйтесь аргументом datetime для указания формата входных данных." +#: utils/adt/jsonpath_exec.c:2679 utils/adt/jsonpath_exec.c:2760 +#, c-format +msgid "time precision of jsonpath item method .%s() is invalid" +msgstr "точность времени в аргументе метода jsonpath .%s() некорректная" + # skip-rule: space-before-period -#: utils/adt/jsonpath_exec.c:1974 +#: utils/adt/jsonpath_exec.c:2840 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "метод .%s() в jsonpath может применяться только к объекту" -#: utils/adt/jsonpath_exec.c:2156 +#: utils/adt/jsonpath_exec.c:3124 +#, c-format +msgid "could not convert value of type %s to jsonpath" +msgstr "преобразовать значение типа %s в jsonpath не удалось" + +#: utils/adt/jsonpath_exec.c:3158 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "не удалось найти в jsonpath переменную \"%s\"" -#: utils/adt/jsonpath_exec.c:2420 +#: utils/adt/jsonpath_exec.c:3211 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "аргумент \"vars\" не является объектом" + +#: utils/adt/jsonpath_exec.c:3212 +#, c-format +msgid "" +"Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "" +"Параметры jsonpath должны передаваться в виде пар ключ-значение в объекте " +"\"vars\"." + +#: utils/adt/jsonpath_exec.c:3475 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "индекс элемента в jsonpath не является одним числовым значением" -#: utils/adt/jsonpath_exec.c:2432 +#: utils/adt/jsonpath_exec.c:3487 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "индекс массива в jsonpath вне целочисленного диапазона" -#: utils/adt/jsonpath_exec.c:2609 +#: utils/adt/jsonpath_exec.c:3671 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "значение %s нельзя преобразовать в %s без сведений о часовом поясе" -#: utils/adt/jsonpath_exec.c:2611 +#: utils/adt/jsonpath_exec.c:3673 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Для передачи часового пояса используйте функцию *_tz()." +#: utils/adt/jsonpath_exec.c:3981 +#, c-format +msgid "" +"JSON path expression for column \"%s\" must return single item when no " +"wrapper is requested" +msgstr "" +"выражение пути JSON для столбца \"%s\" в отсутствие обёртки должно " +"возвращать одиночный элемент" + +#: utils/adt/jsonpath_exec.c:3983 utils/adt/jsonpath_exec.c:3988 +#, c-format +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." +msgstr "" +"Используйте предложение WITH WRAPPER, чтобы обернуть элементы SQL/JSON в " +"массив." + +#: utils/adt/jsonpath_exec.c:3987 +#, c-format +msgid "" +"JSON path expression in JSON_QUERY must return single item when no wrapper " +"is requested" +msgstr "" +"выражение пути JSON в JSON_QUERY в отсутствие обёртки должно возвращать " +"одиночный элемент" + +#: utils/adt/jsonpath_exec.c:4045 utils/adt/jsonpath_exec.c:4069 +#, c-format +msgid "JSON path expression for column \"%s\" must return single scalar item" +msgstr "" +"выражение пути JSON для столбца \"%s\" должно возвращать один скалярный " +"элемент" + +#: utils/adt/jsonpath_exec.c:4050 utils/adt/jsonpath_exec.c:4074 +#, c-format +msgid "JSON path expression in JSON_VALUE must return single scalar item" +msgstr "" +"выражение пути JSON в JSON_VALUE должно возвращать один скалярный элемент" + # well-spelled: симв #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "длина аргумента levenshtein() превышает максимум (%d симв.)" -#: utils/adt/like.c:161 +#: utils/adt/like.c:159 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "недетерминированные правила сортировки не поддерживаются для LIKE" -#: utils/adt/like.c:190 utils/adt/like_support.c:1024 +#: utils/adt/like.c:188 utils/adt/like_support.c:1023 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "не удалось определить, какой порядок сортировки использовать для ILIKE" -#: utils/adt/like.c:202 +#: utils/adt/like.c:200 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "недетерминированные правила сортировки не поддерживаются для ILIKE" @@ -27619,22 +28939,22 @@ msgstr "недетерминированные правила сортировк msgid "LIKE pattern must not end with escape character" msgstr "шаблон LIKE не должен заканчиваться защитным символом" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "неверный защитный символ" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "Защитный символ должен быть пустым или состоять из одного байта." -#: utils/adt/like_support.c:1014 +#: utils/adt/like_support.c:1013 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "регистронезависимое сравнение не поддерживается для типа bytea" -#: utils/adt/like_support.c:1115 +#: utils/adt/like_support.c:1114 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "сравнение с регулярными выражениями не поддерживается для типа bytea" @@ -27644,12 +28964,12 @@ msgstr "сравнение с регулярными выражениями не msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "неверный октет в значении типа macaddr: \"%s\"" -#: utils/adt/mac8.c:554 +#: utils/adt/mac8.c:555 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "значение в macaddr8 не допускает преобразование в macaddr" -#: utils/adt/mac8.c:555 +#: utils/adt/mac8.c:556 #, c-format msgid "" "Only addresses that have FF and FE as values in the 4th and 5th bytes from " @@ -27659,7 +28979,7 @@ msgstr "" "Преобразование из macaddr8 в macaddr возможно только для адресов, содержащих " "FF и FE в 4-ом и 5-ом байтах слева, например xx:xx:xx:ff:fe:xx:xx:xx." -#: utils/adt/mcxtfuncs.c:182 +#: utils/adt/mcxtfuncs.c:173 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d не относится к серверному процессу PostgreSQL" @@ -27698,70 +29018,70 @@ msgstr "может быть открытой меткой" msgid "requires AS" msgstr "требует AS" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:897 utils/adt/misc.c:911 utils/adt/misc.c:950 +#: utils/adt/misc.c:956 utils/adt/misc.c:962 utils/adt/misc.c:985 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "строка не является допустимым идентификатором: \"%s\"" -#: utils/adt/misc.c:855 +#: utils/adt/misc.c:899 #, c-format msgid "String has unclosed double quotes." msgstr "В строке не закрыты кавычки." -#: utils/adt/misc.c:869 +#: utils/adt/misc.c:913 #, c-format msgid "Quoted identifier must not be empty." msgstr "Идентификатор в кавычках не может быть пустым." -#: utils/adt/misc.c:908 +#: utils/adt/misc.c:952 #, c-format msgid "No valid identifier before \".\"." msgstr "Перед \".\" нет допустимого идентификатора." -#: utils/adt/misc.c:914 +#: utils/adt/misc.c:958 #, c-format msgid "No valid identifier after \".\"." msgstr "После \".\" нет допустимого идентификатора." -#: utils/adt/misc.c:974 +#: utils/adt/misc.c:1018 #, c-format msgid "log format \"%s\" is not supported" msgstr "формат журнала \"%s\" не поддерживается" -#: utils/adt/misc.c:975 +#: utils/adt/misc.c:1019 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "Поддерживаются форматы журналов \"stderr\", \"csvlog\" и \"jsonlog\"." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:150 utils/adt/multirangetypes.c:163 +#: utils/adt/multirangetypes.c:192 utils/adt/multirangetypes.c:266 +#: utils/adt/multirangetypes.c:290 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "ошибочный литерал мультидиапазона: \"%s\"" -#: utils/adt/multirangetypes.c:153 +#: utils/adt/multirangetypes.c:152 #, c-format msgid "Missing left brace." msgstr "Отсутствует левая фигурная скобка." -#: utils/adt/multirangetypes.c:195 +#: utils/adt/multirangetypes.c:194 #, c-format msgid "Expected range start." msgstr "Ожидалось начало диапазона." -#: utils/adt/multirangetypes.c:269 +#: utils/adt/multirangetypes.c:268 #, c-format msgid "Expected comma or end of multirange." msgstr "Ожидалась запятая или конец мультидиапазона." -#: utils/adt/multirangetypes.c:982 +#: utils/adt/multirangetypes.c:981 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "мультидиапазоны нельзя получить из массивов мультидиапазонов" -#: utils/adt/multirangetypes.c:1008 +#: utils/adt/multirangetypes.c:1007 #, c-format msgid "multirange values cannot contain null members" msgstr "мультидиапазоны не могут содержать элементы NULL" @@ -27840,102 +29160,122 @@ msgstr "результат вне диапазона" msgid "cannot subtract inet values of different sizes" msgstr "нельзя вычитать значения inet разного размера" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:793 utils/adt/numeric.c:3659 utils/adt/numeric.c:7216 +#: utils/adt/numeric.c:7419 utils/adt/numeric.c:7891 utils/adt/numeric.c:10586 +#: utils/adt/numeric.c:11061 utils/adt/numeric.c:11155 +#: utils/adt/numeric.c:11290 #, c-format msgid "value overflows numeric format" msgstr "значение переполняет формат numeric" -#: utils/adt/numeric.c:1098 +#: utils/adt/numeric.c:1106 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "неверный знак во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:1104 +#: utils/adt/numeric.c:1112 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "неверный порядок числа во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:1113 +#: utils/adt/numeric.c:1121 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "неверная цифра во внешнем значении \"numeric\"" -#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 +#: utils/adt/numeric.c:1336 utils/adt/numeric.c:1350 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "точность NUMERIC %d должна быть между 1 и %d" -#: utils/adt/numeric.c:1333 +#: utils/adt/numeric.c:1341 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "порядок NUMERIC %d должен быть между %d и %d" -#: utils/adt/numeric.c:1351 +#: utils/adt/numeric.c:1359 #, c-format msgid "invalid NUMERIC type modifier" msgstr "неверный модификатор типа NUMERIC" -#: utils/adt/numeric.c:1709 +#: utils/adt/numeric.c:1725 #, c-format msgid "start value cannot be NaN" msgstr "начальное значение не может быть NaN" -#: utils/adt/numeric.c:1713 +#: utils/adt/numeric.c:1729 #, c-format msgid "start value cannot be infinity" msgstr "начальное значение не может быть бесконечностью" -#: utils/adt/numeric.c:1720 +#: utils/adt/numeric.c:1736 #, c-format msgid "stop value cannot be NaN" msgstr "конечное значение не может быть NaN" -#: utils/adt/numeric.c:1724 +#: utils/adt/numeric.c:1740 #, c-format msgid "stop value cannot be infinity" msgstr "конечное значение не может быть бесконечностью" -#: utils/adt/numeric.c:1737 +#: utils/adt/numeric.c:1753 #, c-format msgid "step size cannot be NaN" msgstr "размер шага не может быть NaN" -#: utils/adt/numeric.c:1741 +#: utils/adt/numeric.c:1757 #, c-format msgid "step size cannot be infinity" msgstr "размер шага не может быть бесконечностью" -#: utils/adt/numeric.c:3633 +#: utils/adt/numeric.c:3649 #, c-format msgid "factorial of a negative number is undefined" msgstr "факториал отрицательного числа даёт неопределённость" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4256 +#, c-format +msgid "lower bound cannot be NaN" +msgstr "нижняя граница не может быть NaN" + +#: utils/adt/numeric.c:4260 +#, c-format +msgid "lower bound cannot be infinity" +msgstr "нижняя граница не может быть бесконечностью" + +#: utils/adt/numeric.c:4267 +#, c-format +msgid "upper bound cannot be NaN" +msgstr "верхняя граница не может быть NaN" + +#: utils/adt/numeric.c:4271 +#, c-format +msgid "upper bound cannot be infinity" +msgstr "верхняя граница не может быть бесконечностью" + +#: utils/adt/numeric.c:4432 utils/adt/numeric.c:4520 utils/adt/numeric.c:4580 +#: utils/adt/numeric.c:4776 #, c-format msgid "cannot convert NaN to %s" msgstr "нельзя преобразовать NaN в %s" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4436 utils/adt/numeric.c:4524 utils/adt/numeric.c:4584 +#: utils/adt/numeric.c:4780 #, c-format msgid "cannot convert infinity to %s" msgstr "нельзя представить бесконечность в %s" -#: utils/adt/numeric.c:4696 +#: utils/adt/numeric.c:4789 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn вне диапазона" -#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:7981 utils/adt/numeric.c:8032 #, c-format msgid "numeric field overflow" msgstr "переполнение поля numeric" -#: utils/adt/numeric.c:7897 +#: utils/adt/numeric.c:7982 #, c-format msgid "" "A field with precision %d, scale %d must round to an absolute value less " @@ -27944,13 +29284,19 @@ msgstr "" "Поле с точностью %d, порядком %d должно округляться до абсолютного значения " "меньше чем %s%d." -#: utils/adt/numeric.c:7948 +#: utils/adt/numeric.c:8033 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "" "Поле с точностью %d, порядком %d не может содержать значение бесконечности." -#: utils/adt/oid.c:216 +#: utils/adt/numeric.c:11359 utils/adt/pseudorandomfuncs.c:135 +#: utils/adt/pseudorandomfuncs.c:159 +#, c-format +msgid "lower bound must be less than or equal to upper bound" +msgstr "нижняя граница должна быть меньше или равна верхней" + +#: utils/adt/oid.c:217 #, c-format msgid "invalid oidvector data" msgstr "неверные данные oidvector" @@ -27980,37 +29326,42 @@ msgstr "код запрошенного символа слишком велик msgid "requested character not valid for encoding: %u" msgstr "запрошенный символ не подходит для кодировки: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:446 utils/adt/orderedsetaggs.c:551 +#: utils/adt/orderedsetaggs.c:691 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "значение перцентиля %g лежит не в диапазоне 0..1" -#: utils/adt/pg_locale.c:1410 +#: utils/adt/pg_locale.c:326 utils/adt/pg_locale.c:358 +#, c-format +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "имя локали \"%s\" содержит не-ASCII символы" + +#: utils/adt/pg_locale.c:1507 #, c-format msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" msgstr "" "не удалось открыть сортировщик для локали \"%s\" с правилами \"%s\": %s" -#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 -#: utils/adt/pg_locale.c:2904 +#: utils/adt/pg_locale.c:1518 utils/adt/pg_locale.c:2992 +#: utils/adt/pg_locale.c:3065 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не поддерживается в данной сборке" -#: utils/adt/pg_locale.c:1450 +#: utils/adt/pg_locale.c:1546 #, c-format msgid "could not create locale \"%s\": %m" msgstr "не удалось создать локаль \"%s\": %m" -#: utils/adt/pg_locale.c:1453 +#: utils/adt/pg_locale.c:1549 #, c-format msgid "" "The operating system could not find any locale data for the locale name " "\"%s\"." msgstr "Операционная система не может найти данные локали с именем \"%s\"." -#: utils/adt/pg_locale.c:1568 +#: utils/adt/pg_locale.c:1670 #, c-format msgid "" "collations with different collate and ctype values are not supported on this " @@ -28019,22 +29370,17 @@ msgstr "" "правила сортировки с разными значениями collate и ctype не поддерживаются на " "этой платформе" -#: utils/adt/pg_locale.c:1577 -#, c-format -msgid "collation provider LIBC is not supported on this platform" -msgstr "провайдер правил сортировки LIBC не поддерживается на этой платформе" - -#: utils/adt/pg_locale.c:1618 +#: utils/adt/pg_locale.c:1717 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "для правила сортировки \"%s\", лишённого версии, была записана версия" -#: utils/adt/pg_locale.c:1624 +#: utils/adt/pg_locale.c:1723 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "несовпадение версии для правила сортировки \"%s\"" -#: utils/adt/pg_locale.c:1626 +#: utils/adt/pg_locale.c:1725 #, c-format msgid "" "The collation in the database was created using version %s, but the " @@ -28043,7 +29389,7 @@ msgstr "" "Правило сортировки в базе данных было создано с версией %s, но операционная " "система предоставляет версию %s." -#: utils/adt/pg_locale.c:1629 +#: utils/adt/pg_locale.c:1728 #, c-format msgid "" "Rebuild all objects affected by this collation and run ALTER COLLATION %s " @@ -28053,92 +29399,98 @@ msgstr "" "ALTER COLLATION %s REFRESH VERSION либо соберите PostgreSQL с правильной " "версией библиотеки." -#: utils/adt/pg_locale.c:1695 +#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:2556 +#: utils/adt/pg_locale.c:2581 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "неверное имя локали \"%s\" для встроенного провайдера" + +#: utils/adt/pg_locale.c:1814 #, c-format msgid "could not load locale \"%s\"" msgstr "не удалось загрузить локаль \"%s\"" -#: utils/adt/pg_locale.c:1720 +#: utils/adt/pg_locale.c:1839 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "" "не удалось получить версию правила сортировки для локали \"%s\" (код ошибки: " "%lu)" -#: utils/adt/pg_locale.c:1776 utils/adt/pg_locale.c:1789 +#: utils/adt/pg_locale.c:1895 utils/adt/pg_locale.c:1908 #, c-format msgid "could not convert string to UTF-16: error code %lu" msgstr "не удалось преобразовать строку в UTF-16 (код ошибки: %lu)" -#: utils/adt/pg_locale.c:1803 +#: utils/adt/pg_locale.c:1920 #, c-format msgid "could not compare Unicode strings: %m" msgstr "не удалось сравнить строки в Unicode: %m" -#: utils/adt/pg_locale.c:1984 +#: utils/adt/pg_locale.c:2094 #, c-format msgid "collation failed: %s" msgstr "ошибка в библиотеке сортировки: %s" -#: utils/adt/pg_locale.c:2205 utils/adt/pg_locale.c:2237 +#: utils/adt/pg_locale.c:2313 utils/adt/pg_locale.c:2345 #, c-format msgid "sort key generation failed: %s" msgstr "не удалось сгенерировать ключ сортировки: %s" -#: utils/adt/pg_locale.c:2474 +#: utils/adt/pg_locale.c:2635 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "не удалось определить язык для локали \"%s\": %s" -#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#: utils/adt/pg_locale.c:2656 utils/adt/pg_locale.c:2672 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "не удалось открыть сортировщик для локали \"%s\": %s" -#: utils/adt/pg_locale.c:2536 +#: utils/adt/pg_locale.c:2697 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не поддерживает кодировку \"%s\"" -#: utils/adt/pg_locale.c:2543 +#: utils/adt/pg_locale.c:2704 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не удалось открыть преобразователь ICU для кодировки \"%s\": %s" -#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2722 utils/adt/pg_locale.c:2741 +#: utils/adt/pg_locale.c:2797 utils/adt/pg_locale.c:2808 #, c-format msgid "%s failed: %s" msgstr "ошибка %s: %s" -#: utils/adt/pg_locale.c:2822 +#: utils/adt/pg_locale.c:2983 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не удалось получить из названия локали \"%s\" метку языка: %s" -#: utils/adt/pg_locale.c:2863 +#: utils/adt/pg_locale.c:3024 #, c-format msgid "could not get language from ICU locale \"%s\": %s" msgstr "не удалось определить язык для локали ICU \"%s\": %s" -#: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 +#: utils/adt/pg_locale.c:3026 utils/adt/pg_locale.c:3055 #, c-format msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." msgstr "" "Чтобы отключить проверку локалей ICU, установите для параметра \"%s\" " "значение \"%s\"." -#: utils/adt/pg_locale.c:2892 +#: utils/adt/pg_locale.c:3053 #, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" msgstr "для локали ICU \"%s\" получен неизвестный язык \"%s\"" -#: utils/adt/pg_locale.c:3073 +#: utils/adt/pg_locale.c:3204 #, c-format msgid "invalid multibyte character for locale" msgstr "неверный многобайтный символ для локали" -#: utils/adt/pg_locale.c:3074 +#: utils/adt/pg_locale.c:3205 #, c-format msgid "" "The server's LC_CTYPE locale is probably incompatible with the database " @@ -28146,137 +29498,142 @@ msgid "" msgstr "" "Параметр локали сервера LC_CTYPE, возможно, несовместим с кодировкой БД." -#: utils/adt/pg_lsn.c:263 +#: utils/adt/pg_lsn.c:262 #, c-format msgid "cannot add NaN to pg_lsn" msgstr "нельзя добавить NaN к pg_lsn" -#: utils/adt/pg_lsn.c:297 +#: utils/adt/pg_lsn.c:296 #, c-format msgid "cannot subtract NaN from pg_lsn" msgstr "нельзя вычесть NaN из pg_lsn" -#: utils/adt/pg_upgrade_support.c:29 +#: utils/adt/pg_upgrade_support.c:39 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "" "функцию можно вызывать только когда сервер в режиме двоичного обновления" -#: utils/adt/pgstatfuncs.c:254 +#: utils/adt/pgstatfuncs.c:252 #, c-format msgid "invalid command name: \"%s\"" msgstr "неверное имя команды: \"%s\"" -#: utils/adt/pgstatfuncs.c:1774 +#: utils/adt/pgstatfuncs.c:1739 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "запрошен сброс неизвестного счётчика: \"%s\"" -#: utils/adt/pgstatfuncs.c:1775 +#: utils/adt/pgstatfuncs.c:1740 #, c-format msgid "" -"Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or " -"\"wal\"." +"Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", " +"\"recovery_prefetch\", \"slru\", or \"wal\"." msgstr "" "Допустимые счётчики: \"archiver\", \"bgwriter\", \"io\", " -"\"recovery_prefetch\" и \"wal\"." +"\"recovery_prefetch\", \"slru\" и \"wal\"." -#: utils/adt/pgstatfuncs.c:1857 +#: utils/adt/pgstatfuncs.c:1822 #, c-format msgid "invalid subscription OID %u" msgstr "неверный OID подписки %u" -#: utils/adt/pseudotypes.c:58 utils/adt/pseudotypes.c:92 +#: utils/adt/pseudorandomfuncs.c:69 +#, c-format +msgid "setseed parameter %g is out of allowed range [-1,1]" +msgstr "параметр setseed %g вне допустимого диапазона [-1,1]" + +#: utils/adt/pseudotypes.c:55 utils/adt/pseudotypes.c:89 #, c-format msgid "cannot display a value of type %s" msgstr "значение типа %s нельзя вывести" -#: utils/adt/pseudotypes.c:310 +#: utils/adt/pseudotypes.c:307 #, c-format msgid "cannot accept a value of a shell type" msgstr "значение типа shell нельзя ввести" -#: utils/adt/pseudotypes.c:320 +#: utils/adt/pseudotypes.c:317 #, c-format msgid "cannot display a value of a shell type" msgstr "значение типа shell нельзя вывести" -#: utils/adt/rangetypes.c:415 +#: utils/adt/rangetypes.c:422 #, c-format msgid "range constructor flags argument must not be null" msgstr "аргумент flags конструктора диапазона не может быть NULL" -#: utils/adt/rangetypes.c:1014 +#: utils/adt/rangetypes.c:1021 #, c-format msgid "result of range difference would not be contiguous" msgstr "результат вычитания диапазонов будет не непрерывным" -#: utils/adt/rangetypes.c:1075 +#: utils/adt/rangetypes.c:1082 #, c-format msgid "result of range union would not be contiguous" msgstr "результат объединения диапазонов будет не непрерывным" -#: utils/adt/rangetypes.c:1750 +#: utils/adt/rangetypes.c:1757 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "нижняя граница диапазона должна быть меньше или равна верхней" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 +#: utils/adt/rangetypes.c:2283 #, c-format msgid "invalid range bound flags" msgstr "неверные флаги границ диапазона" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 +#: utils/adt/rangetypes.c:2284 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Допустимые значения: \"[]\", \"[)\", \"(]\" и \"()\"." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 +#: utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 +#: utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "malformed range literal: \"%s\"" msgstr "ошибочный литерал диапазона: \"%s\"" -#: utils/adt/rangetypes.c:2295 +#: utils/adt/rangetypes.c:2354 #, c-format msgid "Junk after \"empty\" key word." msgstr "Мусор после ключевого слова \"empty\"." -#: utils/adt/rangetypes.c:2312 +#: utils/adt/rangetypes.c:2371 #, c-format msgid "Missing left parenthesis or bracket." msgstr "Отсутствует левая скобка (круглая или квадратная)." -#: utils/adt/rangetypes.c:2327 +#: utils/adt/rangetypes.c:2386 #, c-format msgid "Missing comma after lower bound." msgstr "Отсутствует запятая после нижней границы." -#: utils/adt/rangetypes.c:2347 +#: utils/adt/rangetypes.c:2406 #, c-format msgid "Too many commas." msgstr "Слишком много запятых." -#: utils/adt/rangetypes.c:2358 +#: utils/adt/rangetypes.c:2417 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "Мусор после правой скобки." -#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 #, c-format msgid "regular expression failed: %s" msgstr "ошибка в регулярном выражении: %s" -#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 +#: utils/adt/regexp.c:445 utils/adt/regexp.c:680 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "неверный параметр регулярного выражения: \"%.*s\"" -#: utils/adt/regexp.c:683 +#: utils/adt/regexp.c:682 #, c-format msgid "" "If you meant to use regexp_replace() with a start parameter, cast the fourth " @@ -28285,15 +29642,15 @@ msgstr "" "Если вы хотите вызвать regexp_replace() с параметром start, явно приведите " "четвёртый аргумент к целочисленному типу." -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6627 utils/misc/guc.c:6661 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 +#: utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 +#: utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 +#: utils/adt/regexp.c:1871 utils/misc/guc.c:6820 utils/misc/guc.c:6854 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неверное значение параметра \"%s\": %d" -#: utils/adt/regexp.c:937 +#: utils/adt/regexp.c:936 #, c-format msgid "" "SQL regular expression may not contain more than two escape-double-quote " @@ -28303,19 +29660,19 @@ msgstr "" "(экранированных кавычек)" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1093 utils/adt/regexp.c:1184 utils/adt/regexp.c:1271 +#: utils/adt/regexp.c:1310 utils/adt/regexp.c:1698 utils/adt/regexp.c:1753 +#: utils/adt/regexp.c:1882 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s не поддерживает режим \"global\"" -#: utils/adt/regexp.c:1313 +#: utils/adt/regexp.c:1312 #, c-format msgid "Use the regexp_matches function instead." msgstr "Вместо неё используйте функцию regexp_matches." -#: utils/adt/regexp.c:1501 +#: utils/adt/regexp.c:1500 #, c-format msgid "too many regular expression matches" msgstr "слишком много совпадений для регулярного выражения" @@ -28330,19 +29687,19 @@ msgstr "имя \"%s\" имеют несколько функций" msgid "more than one operator named %s" msgstr "имя %s имеют несколько операторов" -#: utils/adt/regproc.c:670 gram.y:8841 +#: utils/adt/regproc.c:670 gram.y:8992 #, c-format msgid "missing argument" msgstr "отсутствует аргумент" -#: utils/adt/regproc.c:671 gram.y:8842 +#: utils/adt/regproc.c:671 gram.y:8993 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "" "Чтобы обозначить отсутствующий аргумент унарного оператора, укажите NONE." -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10021 -#: utils/adt/ruleutils.c:10234 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10509 +#: utils/adt/ruleutils.c:10722 #, c-format msgid "too many arguments" msgstr "слишком много аргументов" @@ -28352,65 +29709,65 @@ msgstr "слишком много аргументов" msgid "Provide two argument types for operator." msgstr "Предоставьте для оператора два типа аргументов." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 +#: utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 #, c-format msgid "invalid name syntax" msgstr "ошибка синтаксиса в имени" -#: utils/adt/regproc.c:1904 +#: utils/adt/regproc.c:1924 #, c-format msgid "expected a left parenthesis" msgstr "ожидалась левая скобка" -#: utils/adt/regproc.c:1922 +#: utils/adt/regproc.c:1942 #, c-format msgid "expected a right parenthesis" msgstr "ожидалась правая скобка" -#: utils/adt/regproc.c:1941 +#: utils/adt/regproc.c:1961 #, c-format msgid "expected a type name" msgstr "ожидалось имя типа" -#: utils/adt/regproc.c:1973 +#: utils/adt/regproc.c:1993 #, c-format msgid "improper type name" msgstr "ошибочное имя типа" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 +#: utils/adt/ri_triggers.c:2601 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "" "INSERT или UPDATE в таблице \"%s\" нарушает ограничение внешнего ключа \"%s\"" -#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL не позволяет смешивать в значении ключа null и не null." -#: utils/adt/ri_triggers.c:2045 +#: utils/adt/ri_triggers.c:2036 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "функция \"%s\" должна запускаться для INSERT" -#: utils/adt/ri_triggers.c:2051 +#: utils/adt/ri_triggers.c:2042 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "функция \"%s\" должна запускаться для UPDATE" -#: utils/adt/ri_triggers.c:2057 +#: utils/adt/ri_triggers.c:2048 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "функция \"%s\" должна запускаться для DELETE" -#: utils/adt/ri_triggers.c:2080 +#: utils/adt/ri_triggers.c:2071 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "для триггера \"%s\" таблицы \"%s\" нет записи pg_constraint" -#: utils/adt/ri_triggers.c:2082 +#: utils/adt/ri_triggers.c:2073 #, c-format msgid "" "Remove this referential integrity trigger and its mates, then do ALTER TABLE " @@ -28419,12 +29776,12 @@ msgstr "" "Удалите этот триггер ссылочной целостности и связанные объекты, а затем " "выполните ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2112 gram.y:4223 +#: utils/adt/ri_triggers.c:2103 gram.y:4340 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "выражение MATCH PARTIAL ещё не реализовано" -#: utils/adt/ri_triggers.c:2435 +#: utils/adt/ri_triggers.c:2426 #, c-format msgid "" "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave " @@ -28433,33 +29790,33 @@ msgstr "" "неожиданный результат запроса ссылочной целостности к \"%s\" из ограничения " "\"%s\" таблицы \"%s\"" -#: utils/adt/ri_triggers.c:2439 +#: utils/adt/ri_triggers.c:2430 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "Скорее всего это вызвано правилом, переписавшим запрос." -#: utils/adt/ri_triggers.c:2600 +#: utils/adt/ri_triggers.c:2591 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "" "при удалении секции \"%s\" нарушается ограничение внешнего ключа \"%s\"" -#: utils/adt/ri_triggers.c:2603 utils/adt/ri_triggers.c:2628 +#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "На ключ (%s)=(%s) всё ещё есть ссылки в таблице \"%s\"." -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2605 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "Ключ (%s)=(%s) отсутствует в таблице \"%s\"." -#: utils/adt/ri_triggers.c:2617 +#: utils/adt/ri_triggers.c:2608 #, c-format msgid "Key is not present in table \"%s\"." msgstr "Ключ отсутствует в таблице \"%s\"." -#: utils/adt/ri_triggers.c:2623 +#: utils/adt/ri_triggers.c:2614 #, c-format msgid "" "update or delete on table \"%s\" violates foreign key constraint \"%s\" on " @@ -28468,48 +29825,48 @@ msgstr "" "UPDATE или DELETE в таблице \"%s\" нарушает ограничение внешнего ключа " "\"%s\" таблицы \"%s\"" -#: utils/adt/ri_triggers.c:2631 +#: utils/adt/ri_triggers.c:2622 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "На ключ всё ещё есть ссылки в таблице \"%s\"." -#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 +#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:509 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "ввод анонимных составных типов не реализован" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:158 utils/adt/rowtypes.c:190 utils/adt/rowtypes.c:216 +#: utils/adt/rowtypes.c:227 utils/adt/rowtypes.c:285 utils/adt/rowtypes.c:296 #, c-format msgid "malformed record literal: \"%s\"" msgstr "ошибка в литерале записи: \"%s\"" -#: utils/adt/rowtypes.c:160 +#: utils/adt/rowtypes.c:159 #, c-format msgid "Missing left parenthesis." msgstr "Отсутствует левая скобка." -#: utils/adt/rowtypes.c:192 +#: utils/adt/rowtypes.c:191 #, c-format msgid "Too few columns." msgstr "Слишком мало столбцов." -#: utils/adt/rowtypes.c:287 +#: utils/adt/rowtypes.c:286 #, c-format msgid "Too many columns." msgstr "Слишком много столбцов." -#: utils/adt/rowtypes.c:298 +#: utils/adt/rowtypes.c:297 #, c-format msgid "Junk after right parenthesis." msgstr "Мусор после правой скобки." -#: utils/adt/rowtypes.c:559 +#: utils/adt/rowtypes.c:558 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "неверное число столбцов: %d, ожидалось: %d" -#: utils/adt/rowtypes.c:601 +#: utils/adt/rowtypes.c:599 #, c-format msgid "" "binary data has type %u (%s) instead of expected %u (%s) in record column %d" @@ -28517,168 +29874,177 @@ msgstr "" "с бинарными данными связан тип %u (%s) вместо ожидаемого %u (%s) в столбце " "записи %d" -#: utils/adt/rowtypes.c:668 +#: utils/adt/rowtypes.c:660 #, c-format msgid "improper binary format in record column %d" msgstr "неподходящий двоичный формат в столбце записи %d" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 +#: utils/adt/rowtypes.c:1699 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "не удалось сравнить различные типы столбцов %s и %s, столбец записи %d" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 +#: utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "сравнивать типы записей с разным числом столбцов нельзя" -#: utils/adt/ruleutils.c:2679 +#: utils/adt/ruleutils.c:2694 #, c-format msgid "input is a query, not an expression" msgstr "на вход поступил запрос, а не выражение" -#: utils/adt/ruleutils.c:2691 +#: utils/adt/ruleutils.c:2706 #, c-format msgid "expression contains variables of more than one relation" msgstr "выражение содержит переменные из нескольких отношений" -#: utils/adt/ruleutils.c:2698 +#: utils/adt/ruleutils.c:2713 #, c-format msgid "expression contains variables" msgstr "выражение содержит переменные" -#: utils/adt/ruleutils.c:5228 +#: utils/adt/ruleutils.c:5246 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "правило \"%s\" имеет неподдерживаемый тип событий %d" -#: utils/adt/timestamp.c:112 +#: utils/adt/timestamp.c:128 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s: точность должна быть неотрицательна" -#: utils/adt/timestamp.c:118 +#: utils/adt/timestamp.c:134 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s: точность уменьшена до дозволенного максимума: %d" -#: utils/adt/timestamp.c:378 +#: utils/adt/timestamp.c:394 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "точность timestamp(%d) должна быть между %d и %d" -#: utils/adt/timestamp.c:496 +#: utils/adt/timestamp.c:512 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "" "Запись числового часового пояса должна начинаться с символа \"-\" или \"+\"." -#: utils/adt/timestamp.c:508 +#: utils/adt/timestamp.c:524 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "числовой часовой пояс \"%s\" вне диапазона" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 +#: utils/adt/timestamp.c:643 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "timestamp вне диапазона: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:728 +#: utils/adt/timestamp.c:744 #, c-format msgid "timestamp cannot be NaN" msgstr "timestamp не может быть NaN" -#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 +#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "timestamp вне диапазона: \"%g\"" -#: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 -#: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 -#: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3215 -#: utils/adt/timestamp.c:3220 utils/adt/timestamp.c:3225 -#: utils/adt/timestamp.c:3275 utils/adt/timestamp.c:3282 -#: utils/adt/timestamp.c:3289 utils/adt/timestamp.c:3309 -#: utils/adt/timestamp.c:3316 utils/adt/timestamp.c:3323 -#: utils/adt/timestamp.c:3410 utils/adt/timestamp.c:3485 -#: utils/adt/timestamp.c:3854 utils/adt/timestamp.c:3978 -#: utils/adt/timestamp.c:4026 utils/adt/timestamp.c:4036 -#: utils/adt/timestamp.c:4226 utils/adt/timestamp.c:4236 -#: utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 +#: utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 +#: utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 +#: utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 +#: utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 +#: utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 +#: utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 +#: utils/adt/timestamp.c:3537 utils/adt/timestamp.c:3546 +#: utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 +#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 +#: utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 +#: utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 +#: utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 +#: utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 +#: utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 +#: utils/adt/timestamp.c:5097 #, c-format msgid "interval out of range" msgstr "interval вне диапазона" -#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 +#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 #, c-format msgid "invalid INTERVAL type modifier" msgstr "неверный модификатор типа INTERVAL" -#: utils/adt/timestamp.c:1081 +#: utils/adt/timestamp.c:1110 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d): точность должна быть неотрицательна" -#: utils/adt/timestamp.c:1087 +#: utils/adt/timestamp.c:1116 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d): точность уменьшена до максимально возможной: %d" -#: utils/adt/timestamp.c:1473 +#: utils/adt/timestamp.c:1506 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "точность interval(%d) должна быть между %d и %d" -#: utils/adt/timestamp.c:2703 -#, c-format -msgid "cannot subtract infinite timestamps" -msgstr "вычитать бесконечные значения timestamp нельзя" - -#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4215 +#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 #, c-format msgid "origin out of range" msgstr "начало вне диапазона" -#: utils/adt/timestamp.c:4020 utils/adt/timestamp.c:4220 +#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#, c-format +msgid "timestamps cannot be binned into infinite intervals" +msgstr "значения timestamp нельзя подогнать под бесконечные интервалы" + +#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "" "значения timestamp нельзя подогнать под интервалы, содержащие месяцы или годы" -#: utils/adt/timestamp.c:4031 utils/adt/timestamp.c:4231 +#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 #, c-format msgid "stride must be greater than zero" msgstr "шаг должен быть больше нуля" -#: utils/adt/timestamp.c:4526 +#: utils/adt/timestamp.c:5091 #, c-format msgid "Months usually have fractional weeks." msgstr "В месяцах обычно дробное количество недель." -#: utils/adt/trigfuncs.c:42 +#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#, c-format +msgid "step size cannot be infinite" +msgstr "размер шага не может быть бесконечным" + +#: utils/adt/trigfuncs.c:41 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" msgstr "" "функция suppress_redundant_updates_trigger должна вызываться как триггер" -#: utils/adt/trigfuncs.c:48 +#: utils/adt/trigfuncs.c:47 #, c-format msgid "suppress_redundant_updates_trigger: must be called on update" msgstr "" "функция suppress_redundant_updates_trigger должна вызываться при обновлении" -#: utils/adt/trigfuncs.c:54 +#: utils/adt/trigfuncs.c:53 #, c-format msgid "suppress_redundant_updates_trigger: must be called before update" msgstr "" "функция suppress_redundant_updates_trigger должна вызываться перед " "обновлением" -#: utils/adt/trigfuncs.c:60 +#: utils/adt/trigfuncs.c:59 #, c-format msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "" @@ -28699,32 +30065,32 @@ msgstr "" msgid "no operand in tsquery: \"%s\"" msgstr "нет оператора в tsquery: \"%s\"" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "слишком большое значение в tsquery: \"%s\"" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "слишком длинный операнд в tsquery: \"%s\"" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "слишком длинное слово в tsquery: \"%s\"" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "ошибка синтаксиса в tsquery: \"%s\"" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "запрос поиска текста не содержит лексемы: \"%s\"" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsquery слишком большой" @@ -28763,72 +30129,72 @@ msgstr "массив весов не может содержать null" msgid "weight out of range" msgstr "вес вне диапазона" -#: utils/adt/tsvector.c:217 +#: utils/adt/tsvector.c:216 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "слово слишком длинное (%ld Б, при максимуме %ld)" -#: utils/adt/tsvector.c:224 +#: utils/adt/tsvector.c:223 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "строка слишком длинна для tsvector (%ld Б, при максимуме %ld)" -#: utils/adt/tsvector_op.c:773 +#: utils/adt/tsvector_op.c:771 #, c-format msgid "lexeme array may not contain nulls" msgstr "массив лексем не может содержать элементы null" -#: utils/adt/tsvector_op.c:778 +#: utils/adt/tsvector_op.c:776 #, c-format msgid "lexeme array may not contain empty strings" msgstr "массив лексем не должен содержать пустые строки" -#: utils/adt/tsvector_op.c:847 +#: utils/adt/tsvector_op.c:845 #, c-format msgid "weight array may not contain nulls" msgstr "массив весов не может содержать элементы null" -#: utils/adt/tsvector_op.c:871 +#: utils/adt/tsvector_op.c:869 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "нераспознанный вес: \"%c\"" -#: utils/adt/tsvector_op.c:2601 +#: utils/adt/tsvector_op.c:2599 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "запрос ts_stat должен вернуть один столбец tsvector" -#: utils/adt/tsvector_op.c:2790 +#: utils/adt/tsvector_op.c:2788 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "столбец \"%s\" типа tsvector не существует" -#: utils/adt/tsvector_op.c:2797 +#: utils/adt/tsvector_op.c:2795 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "столбец \"%s\" должен иметь тип tsvector" -#: utils/adt/tsvector_op.c:2809 +#: utils/adt/tsvector_op.c:2807 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "столбец конфигурации \"%s\" не существует" -#: utils/adt/tsvector_op.c:2815 +#: utils/adt/tsvector_op.c:2813 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "столбец \"%s\" должен иметь тип regconfig" -#: utils/adt/tsvector_op.c:2822 +#: utils/adt/tsvector_op.c:2820 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "значение столбца конфигурации \"%s\" не должно быть null" -#: utils/adt/tsvector_op.c:2835 +#: utils/adt/tsvector_op.c:2833 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "имя конфигурации текстового поиска \"%s\" должно указываться со схемой" -#: utils/adt/tsvector_op.c:2860 +#: utils/adt/tsvector_op.c:2858 #, c-format msgid "column \"%s\" is not of a character type" msgstr "столбец \"%s\" имеет не символьный тип" @@ -28849,17 +30215,17 @@ msgstr "нет спец. символа \"%s\"" msgid "wrong position info in tsvector: \"%s\"" msgstr "неверная информация о позиции в tsvector: \"%s\"" -#: utils/adt/uuid.c:413 +#: utils/adt/uuid.c:418 #, c-format msgid "could not generate random values" msgstr "не удалось сгенерировать случайные значения" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 #, c-format msgid "length for type %s must be at least 1" msgstr "длина значения типа %s должна быть как минимум 1" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 #, c-format msgid "length for type %s cannot exceed %d" msgstr "длина значения типа %s не может превышать %d" @@ -28894,9 +30260,9 @@ msgstr "неверная длина во внешней строке битов" msgid "bit string too long for type bit varying(%d)" msgstr "строка битов не умещается в тип bit varying(%d)" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 +#: utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 +#: utils/adt/varlena.c:3133 #, c-format msgid "negative substring length not allowed" msgstr "подстрока должна иметь неотрицательную длину" @@ -28922,106 +30288,113 @@ msgstr "" msgid "bit index %d out of valid range (0..%d)" msgstr "индекс бита %d вне диапазона 0..%d" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 #, c-format msgid "new bit must be 0 or 1" msgstr "значением бита должен быть 0 или 1" -#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 +#: utils/adt/varchar.c:161 utils/adt/varchar.c:312 #, c-format msgid "value too long for type character(%d)" msgstr "значение не умещается в тип character(%d)" -#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 +#: utils/adt/varchar.c:475 utils/adt/varchar.c:639 #, c-format msgid "value too long for type character varying(%d)" msgstr "значение не умещается в тип character varying(%d)" -#: utils/adt/varchar.c:738 utils/adt/varlena.c:1517 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "" "не удалось определить, какое правило сортировки использовать для сравнения " "строк" -#: utils/adt/varlena.c:1227 utils/adt/varlena.c:1806 +#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "" "недетерминированные правила сортировки не поддерживаются для поиска подстрок" -#: utils/adt/varlena.c:3218 utils/adt/varlena.c:3285 +#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "индекс %d вне диапазона 0..%d" -#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 +#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "индекс %lld вне диапазона 0..%lld" -#: utils/adt/varlena.c:4382 +#: utils/adt/varlena.c:4385 #, c-format msgid "field position must not be zero" msgstr "позиция поля должна быть отлична от 0" -#: utils/adt/varlena.c:5554 +#: utils/adt/varlena.c:5630 #, c-format msgid "unterminated format() type specifier" msgstr "незавершённый спецификатор типа format()" -#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 +#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "Для представления одного знака \"%%\" запишите \"%%%%\"." -#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 +#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "нераспознанный спецификатор типа format(): \"%.*s\"" -#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 +#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 #, c-format msgid "too few arguments for format()" msgstr "мало аргументов для format()" -#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 +#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 #, c-format msgid "number is out of range" msgstr "число вне диапазона" -#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 +#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "формат ссылается на аргумент 0, но аргументы нумеруются с 1" -#: utils/adt/varlena.c:5937 +#: utils/adt/varlena.c:6013 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "указание аргумента ширины должно оканчиваться \"$\"" -#: utils/adt/varlena.c:5982 +#: utils/adt/varlena.c:6058 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "значения null нельзя представить в виде SQL-идентификатора" -#: utils/adt/varlena.c:6190 +#: utils/adt/varlena.c:6266 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "" "нормализацию Unicode можно выполнять, только если кодировка сервера — UTF8" -#: utils/adt/varlena.c:6203 +#: utils/adt/varlena.c:6279 #, c-format msgid "invalid normalization form: %s" msgstr "неверная форма нормализации: %s" -#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 +# well-spelled: категоризацию +#: utils/adt/varlena.c:6324 +#, c-format +msgid "Unicode categorization can only be performed if server encoding is UTF8" +msgstr "" +"категоризацию Unicode можно выполнять, только если кодировка сервера — UTF8" + +#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 #, c-format msgid "invalid Unicode code point: %04X" msgstr "неверный код символа Unicode: %04X" -#: utils/adt/varlena.c:6506 +#: utils/adt/varlena.c:6641 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "" @@ -29032,17 +30405,17 @@ msgstr "" msgid "argument of ntile must be greater than zero" msgstr "аргумент ntile должен быть больше нуля" -#: utils/adt/windowfuncs.c:723 +#: utils/adt/windowfuncs.c:707 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "аргумент nth_value должен быть больше нуля" -#: utils/adt/xid8funcs.c:126 +#: utils/adt/xid8funcs.c:120 #, c-format msgid "transaction ID %llu is in the future" msgstr "ID транзакции %llu относится к будущему" -#: utils/adt/xid8funcs.c:555 +#: utils/adt/xid8funcs.c:522 #, c-format msgid "invalid external pg_snapshot data" msgstr "неверное внешнее представление pg_snapshot" @@ -29057,7 +30430,7 @@ msgstr "XML-функции не поддерживаются" msgid "This functionality requires the server to be built with libxml support." msgstr "Для этой функциональности в сервере не хватает поддержки libxml." -#: utils/adt/xml.c:258 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неверное имя кодировки: \"%s\"" @@ -29067,37 +30440,37 @@ msgstr "неверное имя кодировки: \"%s\"" msgid "invalid XML comment" msgstr "ошибка в XML-комментарии" -#: utils/adt/xml.c:670 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "не XML-документ" -#: utils/adt/xml.c:966 utils/adt/xml.c:989 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "неправильная XML-инструкция обработки (PI)" -#: utils/adt/xml.c:967 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "назначением XML-инструкции обработки (PI) не может быть \"%s\"." -#: utils/adt/xml.c:990 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-инструкция обработки (PI) не может содержать \"?>\"." -#: utils/adt/xml.c:1069 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "функция xmlvalidate не реализована" -#: utils/adt/xml.c:1125 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "не удалось инициализировать библиотеку XML" -#: utils/adt/xml.c:1126 +#: utils/adt/xml.c:1168 #, c-format msgid "" "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." @@ -29105,12 +30478,12 @@ msgstr "" "В libxml2 оказался несовместимый тип char: sizeof(char)=%zu, " "sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1212 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "не удалось установить обработчик XML-ошибок" -#: utils/adt/xml.c:1213 +#: utils/adt/xml.c:1255 #, c-format msgid "" "This probably indicates that the version of libxml2 being used is not " @@ -29119,125 +30492,125 @@ msgstr "" "Возможно, это означает, что используемая версия libxml2 несовместима с " "заголовочными файлами libxml2, с которыми был собран PostgreSQL." -#: utils/adt/xml.c:2199 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "Неверный символ." -#: utils/adt/xml.c:2202 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "Требуется пробел." -#: utils/adt/xml.c:2205 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "значениями атрибута standalone могут быть только 'yes' и 'no'." -#: utils/adt/xml.c:2208 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "Ошибочное объявление: не указана версия." -#: utils/adt/xml.c:2211 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "В объявлении не указана кодировка." -#: utils/adt/xml.c:2214 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "Ошибка при разборе XML-объявления: ожидается '?>'." -#: utils/adt/xml.c:2217 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Нераспознанный код ошибки libxml: %d." -#: utils/adt/xml.c:2471 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML не поддерживает бесконечность в датах." -#: utils/adt/xml.c:2493 utils/adt/xml.c:2520 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML не поддерживает бесконечность в timestamp." -#: utils/adt/xml.c:2936 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "неверный запрос" -#: utils/adt/xml.c:3028 +#: utils/adt/xml.c:3110 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "портал \"%s\" не возвращает кортежи" -#: utils/adt/xml.c:4280 +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неправильный массив с сопоставлениями пространств имён XML" -#: utils/adt/xml.c:4281 +#: utils/adt/xml.c:4363 #, c-format msgid "" "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Массив должен быть двухмерным и содержать 2 элемента по второй оси." -#: utils/adt/xml.c:4305 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "пустое выражение XPath" -#: utils/adt/xml.c:4357 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ни префикс, ни URI пространства имён не может быть null" -#: utils/adt/xml.c:4364 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "" "не удалось зарегистрировать пространство имён XML с префиксом \"%s\" и URI " "\"%s\"" -#: utils/adt/xml.c:4707 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "пространство имён DEFAULT не поддерживается" -#: utils/adt/xml.c:4736 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "путь отбираемых строк не должен быть пустым" -#: utils/adt/xml.c:4767 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "путь отбираемого столбца не должен быть пустым" -#: utils/adt/xml.c:4911 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "выражение XPath, отбирающее столбец, возвратило более одного значения" -#: utils/cache/lsyscache.c:1043 +#: utils/cache/lsyscache.c:1017 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "приведение типа %s к типу %s не существует" -#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 +#: utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 #, c-format msgid "type %s is only a shell" msgstr "тип %s является пустышкой" -#: utils/cache/lsyscache.c:2850 +#: utils/cache/lsyscache.c:2892 #, c-format msgid "no input function available for type %s" msgstr "для типа %s нет функции ввода" -#: utils/cache/lsyscache.c:2883 +#: utils/cache/lsyscache.c:2925 #, c-format msgid "no output function available for type %s" msgstr "для типа %s нет функции вывода" -#: utils/cache/partcache.c:219 +#: utils/cache/partcache.c:216 #, c-format msgid "" "operator class \"%s\" of access method %s is missing support function %d for " @@ -29246,56 +30619,56 @@ msgstr "" "в классе операторов \"%s\" метода доступа %s нет опорной функции %d для типа " "%s" -#: utils/cache/plancache.c:724 +#: utils/cache/plancache.c:747 #, c-format msgid "cached plan must not change result type" msgstr "в кешированном плане не должен изменяться тип результата" -#: utils/cache/relcache.c:3741 +#: utils/cache/relcache.c:3801 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "" "значение relfilenumber для кучи не задано в режиме двоичного обновления" -#: utils/cache/relcache.c:3749 +#: utils/cache/relcache.c:3809 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "" "неожиданный запрос нового значения relfilenumber в режиме двоичного " "обновления" -#: utils/cache/relcache.c:6495 +#: utils/cache/relcache.c:6539 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "создать файл инициализации для кеша отношений \"%s\" не удалось: %m" -#: utils/cache/relcache.c:6497 +#: utils/cache/relcache.c:6541 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продолжаем всё равно, хотя что-то не так." -#: utils/cache/relcache.c:6819 +#: utils/cache/relcache.c:6871 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не удалось стереть файл кеша \"%s\": %m" -#: utils/cache/relmapper.c:597 +#: utils/cache/relmapper.c:596 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "" "выполнить PREPARE для транзакции, изменившей сопоставление отношений, нельзя" -#: utils/cache/relmapper.c:853 +#: utils/cache/relmapper.c:852 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "файл сопоставления отношений \"%s\" содержит неверные данные" -#: utils/cache/relmapper.c:863 +#: utils/cache/relmapper.c:862 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "ошибка контрольной суммы в файле сопоставления отношений \"%s\"" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:574 +#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "тип записи не зарегистрирован" @@ -29310,102 +30683,102 @@ msgstr "ЛОВУШКА: Исключительное условие: невер msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "ЛОВУШКА: нарушение Assert(\"%s\"), файл: \"%s\", строка: %d, PID: %d\n" -#: utils/error/elog.c:416 +#: utils/error/elog.c:415 #, c-format msgid "error occurred before error message processing is available\n" msgstr "произошла ошибка до готовности подсистемы обработки сообщений\n" -#: utils/error/elog.c:2096 +#: utils/error/elog.c:2134 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "открыть файл \"%s\" как stderr не удалось: %m" -#: utils/error/elog.c:2109 +#: utils/error/elog.c:2147 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "открыть файл \"%s\" как stdout не удалось: %m" -#: utils/error/elog.c:2145 +#: utils/error/elog.c:2183 #, c-format -msgid "invalid character" -msgstr "неверный символ" +msgid "Invalid character" +msgstr "Недопустимый символ" -#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 +#: utils/error/elog.c:2889 utils/error/elog.c:2916 utils/error/elog.c:2932 msgid "[unknown]" msgstr "[н/д]" -#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 +#: utils/error/elog.c:3202 utils/error/elog.c:3526 utils/error/elog.c:3633 msgid "missing error text" msgstr "отсутствует текст ошибки" -#: utils/error/elog.c:3170 utils/error/elog.c:3173 +#: utils/error/elog.c:3205 utils/error/elog.c:3208 #, c-format msgid " at character %d" msgstr " (символ %d)" -#: utils/error/elog.c:3183 utils/error/elog.c:3190 +#: utils/error/elog.c:3218 utils/error/elog.c:3225 msgid "DETAIL: " msgstr "ПОДРОБНОСТИ: " -#: utils/error/elog.c:3197 +#: utils/error/elog.c:3232 msgid "HINT: " msgstr "ПОДСКАЗКА: " -#: utils/error/elog.c:3204 +#: utils/error/elog.c:3239 msgid "QUERY: " msgstr "ЗАПРОС: " -#: utils/error/elog.c:3211 +#: utils/error/elog.c:3246 msgid "CONTEXT: " msgstr "КОНТЕКСТ: " -#: utils/error/elog.c:3221 +#: utils/error/elog.c:3256 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "ПОЛОЖЕНИЕ: %s, %s:%d\n" -#: utils/error/elog.c:3228 +#: utils/error/elog.c:3263 #, c-format msgid "LOCATION: %s:%d\n" msgstr "ПОЛОЖЕНИЕ: %s:%d\n" -#: utils/error/elog.c:3235 +#: utils/error/elog.c:3270 msgid "BACKTRACE: " msgstr "СТЕК: " -#: utils/error/elog.c:3247 +#: utils/error/elog.c:3282 msgid "STATEMENT: " msgstr "ОПЕРАТОР: " -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3678 msgid "DEBUG" msgstr "ОТЛАДКА" -#: utils/error/elog.c:3644 +#: utils/error/elog.c:3682 msgid "LOG" msgstr "СООБЩЕНИЕ" -#: utils/error/elog.c:3647 +#: utils/error/elog.c:3685 msgid "INFO" msgstr "ИНФОРМАЦИЯ" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3688 msgid "NOTICE" msgstr "ЗАМЕЧАНИЕ" -#: utils/error/elog.c:3654 +#: utils/error/elog.c:3692 msgid "WARNING" msgstr "ПРЕДУПРЕЖДЕНИЕ" -#: utils/error/elog.c:3657 +#: utils/error/elog.c:3695 msgid "ERROR" msgstr "ОШИБКА" -#: utils/error/elog.c:3660 +#: utils/error/elog.c:3698 msgid "FATAL" msgstr "ВАЖНО" -#: utils/error/elog.c:3663 +#: utils/error/elog.c:3701 msgid "PANIC" msgstr "ПАНИКА" @@ -29478,22 +30851,22 @@ msgstr "Отличительный блок имеет неверную длин msgid "incompatible library \"%s\": magic block mismatch" msgstr "несовместимая библиотека \"%s\": несоответствие отличительного блока" -#: utils/fmgr/dfmgr.c:492 +#: utils/fmgr/dfmgr.c:475 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "доступ к библиотеке \"%s\" не разрешён" -#: utils/fmgr/dfmgr.c:518 +#: utils/fmgr/dfmgr.c:501 #, c-format msgid "invalid macro name in dynamic library path: %s" msgstr "неправильный макрос в пути динамической библиотеки: %s" -#: utils/fmgr/dfmgr.c:558 +#: utils/fmgr/dfmgr.c:541 #, c-format msgid "zero-length component in parameter \"dynamic_library_path\"" msgstr "параметр dynamic_library_path содержит компонент нулевой длины" -#: utils/fmgr/dfmgr.c:577 +#: utils/fmgr/dfmgr.c:560 #, c-format msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "" @@ -29524,14 +30897,14 @@ msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "" "версия API (%d), выданная информационной функцией \"%s\", не поддерживается" -#: utils/fmgr/fmgr.c:2080 +#: utils/fmgr/fmgr.c:2109 #, c-format msgid "operator class options info is absent in function call context" msgstr "" "информация о параметрах класса операторов отсутствует в контексте вызова " "функции" -#: utils/fmgr/fmgr.c:2147 +#: utils/fmgr/fmgr.c:2176 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "функция языковой проверки %u вызвана для языка %u (а не %u)" @@ -29551,11 +30924,6 @@ msgid "argument declared %s does not contain a range type but type %s" msgstr "" "аргумент, объявленный как \"%s\", содержит не диапазонный тип, а тип %s" -#: utils/fmgr/funcapi.c:725 -#, c-format -msgid "could not find multirange type for data type %s" -msgstr "тип мультидиапазона для типа данных %s не найден" - #: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" @@ -29571,105 +30939,100 @@ msgstr "псевдоним столбца не указан" msgid "could not determine row description for function returning record" msgstr "не удалось определить описание строки для функции, возвращающей запись" -#: utils/init/miscinit.c:346 +#: utils/init/miscinit.c:353 #, c-format msgid "data directory \"%s\" does not exist" msgstr "каталог данных \"%s\" не существует" -#: utils/init/miscinit.c:351 +#: utils/init/miscinit.c:358 #, c-format msgid "could not read permissions of directory \"%s\": %m" -msgstr "не удалось считать права на каталог \"%s\": %m" +msgstr "не удалось прочитать права на каталог \"%s\": %m" -#: utils/init/miscinit.c:359 +#: utils/init/miscinit.c:366 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "указанный каталог данных \"%s\" не существует" -#: utils/init/miscinit.c:375 +#: utils/init/miscinit.c:382 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "владелец каталога данных \"%s\" определён неверно" -#: utils/init/miscinit.c:377 +#: utils/init/miscinit.c:384 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "" "Сервер должен запускать пользователь, являющийся владельцем каталога данных." -#: utils/init/miscinit.c:395 +#: utils/init/miscinit.c:402 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "для каталога данных \"%s\" установлены неправильные права доступа" -#: utils/init/miscinit.c:397 +#: utils/init/miscinit.c:404 #, 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:455 +#: utils/init/miscinit.c:462 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: utils/init/miscinit.c:692 utils/misc/guc.c:3557 +#: utils/init/miscinit.c:720 utils/misc/guc.c:3650 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" "параметр \"%s\" нельзя задать в рамках операции с ограничениями по " "безопасности" -#: utils/init/miscinit.c:764 +#: utils/init/miscinit.c:807 #, c-format msgid "role with OID %u does not exist" msgstr "роль с OID %u не существует" -#: utils/init/miscinit.c:794 +#: utils/init/miscinit.c:853 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "для роли \"%s\" вход запрещён" -#: utils/init/miscinit.c:812 +#: utils/init/miscinit.c:874 #, c-format msgid "too many connections for role \"%s\"" msgstr "слишком много подключений для роли \"%s\"" -#: utils/init/miscinit.c:919 -#, c-format -msgid "permission denied to set session authorization" -msgstr "нет прав для смены объекта авторизации в сеансе" - -#: utils/init/miscinit.c:1002 +#: utils/init/miscinit.c:1045 #, c-format msgid "invalid role OID: %u" msgstr "неверный OID роли: %u" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1192 #, c-format msgid "database system is shut down" msgstr "система БД выключена" -#: utils/init/miscinit.c:1236 +#: utils/init/miscinit.c:1279 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не удалось создать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1293 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не удалось открыть файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1257 +#: utils/init/miscinit.c:1300 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не удалось прочитать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1309 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл блокировки \"%s\" пуст" -#: utils/init/miscinit.c:1267 +#: utils/init/miscinit.c:1310 #, c-format msgid "" "Either another server is starting, or the lock file is the remnant of a " @@ -29678,38 +31041,38 @@ msgstr "" "Либо сейчас запускается другой сервер, либо этот файл остался в результате " "сбоя при предыдущем запуске." -#: utils/init/miscinit.c:1311 +#: utils/init/miscinit.c:1354 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл блокировки \"%s\" уже существует" -#: utils/init/miscinit.c:1315 +#: utils/init/miscinit.c:1358 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Другой экземпляр postgres (PID %d) работает с каталогом данных \"%s\"?" -#: utils/init/miscinit.c:1317 +#: utils/init/miscinit.c:1360 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "Другой экземпляр postmaster (PID %d) работает с каталогом данных \"%s\"?" -#: utils/init/miscinit.c:1320 +#: utils/init/miscinit.c:1363 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Другой экземпляр postgres (PID %d) использует файл сокета \"%s\"?" -#: utils/init/miscinit.c:1322 +#: utils/init/miscinit.c:1365 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Другой экземпляр postmaster (PID %d) использует файл сокета \"%s\"?" -#: utils/init/miscinit.c:1373 +#: utils/init/miscinit.c:1416 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не удалось стереть старый файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1375 +#: utils/init/miscinit.c:1418 #, c-format msgid "" "The file seems accidentally left over, but it could not be removed. Please " @@ -29718,48 +31081,48 @@ msgstr "" "Кажется, файл сохранился по ошибке, но удалить его не получилось. " "Пожалуйста, удалите файл вручную и повторите попытку." -#: utils/init/miscinit.c:1412 utils/init/miscinit.c:1426 -#: utils/init/miscinit.c:1437 +#: utils/init/miscinit.c:1455 utils/init/miscinit.c:1469 +#: utils/init/miscinit.c:1480 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не удалось записать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1548 utils/init/miscinit.c:1690 utils/misc/guc.c:5597 +#: utils/init/miscinit.c:1591 utils/init/miscinit.c:1733 utils/misc/guc.c:5765 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: utils/init/miscinit.c:1678 +#: utils/init/miscinit.c:1721 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не удалось открыть файл \"%s\": %m; ошибка игнорируется" -#: utils/init/miscinit.c:1703 +#: utils/init/miscinit.c:1746 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл блокировки \"%s\" содержит неверный PID: %ld вместо %ld" -#: utils/init/miscinit.c:1742 utils/init/miscinit.c:1758 +#: utils/init/miscinit.c:1785 utils/init/miscinit.c:1801 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не является каталогом данных" -#: utils/init/miscinit.c:1744 +#: utils/init/miscinit.c:1787 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" отсутствует." -#: utils/init/miscinit.c:1760 +#: utils/init/miscinit.c:1803 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" содержит неприемлемые данные." -#: utils/init/miscinit.c:1762 +#: utils/init/miscinit.c:1805 #, c-format msgid "You might need to initdb." msgstr "Возможно, вам нужно выполнить initdb." -#: utils/init/miscinit.c:1770 +#: utils/init/miscinit.c:1813 #, c-format msgid "" "The data directory was initialized by PostgreSQL version %s, which is not " @@ -29844,17 +31207,17 @@ msgstr "доступ к базе \"%s\" запрещён" msgid "User does not have CONNECT privilege." msgstr "Пользователь не имеет привилегии CONNECT." -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:389 #, c-format msgid "too many connections for database \"%s\"" msgstr "слишком много подключений к БД \"%s\"" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:413 utils/init/postinit.c:420 #, c-format msgid "database locale is incompatible with operating system" msgstr "локаль БД несовместима с операционной системой" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:414 #, c-format msgid "" "The database was initialized with LC_COLLATE \"%s\", which is not " @@ -29863,7 +31226,7 @@ msgstr "" "База данных была инициализирована с параметром LC_COLLATE \"%s\", но сейчас " "setlocale() не воспринимает его." -#: utils/init/postinit.c:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:416 utils/init/postinit.c:423 #, c-format msgid "" "Recreate the database with another locale or install the missing locale." @@ -29871,7 +31234,7 @@ msgstr "" "Пересоздайте базу данных с другой локалью или установите поддержку нужной " "локали." -#: utils/init/postinit.c:418 +#: utils/init/postinit.c:421 #, c-format msgid "" "The database was initialized with LC_CTYPE \"%s\", which is not recognized " @@ -29880,12 +31243,12 @@ msgstr "" "База данных была инициализирована с параметром LC_CTYPE \"%s\", но сейчас " "setlocale() не воспринимает его." -#: utils/init/postinit.c:475 +#: utils/init/postinit.c:493 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "несовпадение версии для правила сортировки в базе данных \"%s\"" -#: utils/init/postinit.c:477 +#: utils/init/postinit.c:495 #, c-format msgid "" "The database was created using collation version %s, but the operating " @@ -29894,7 +31257,7 @@ msgstr "" "База данных была создана с версией правила сортировки %s, но операционная " "система предоставляет версию %s." -#: utils/init/postinit.c:480 +#: utils/init/postinit.c:498 #, c-format msgid "" "Rebuild all objects in this database that use the default collation and run " @@ -29905,31 +31268,31 @@ msgstr "" "сортировки, и выполните ALTER DATABASE %s REFRESH COLLATION VERSION, либо " "соберите PostgreSQL с правильной версией библиотеки." -#: utils/init/postinit.c:891 +#: utils/init/postinit.c:904 #, c-format msgid "no roles are defined in this database system" msgstr "в этой системе баз данных не создано ни одной роли" -#: utils/init/postinit.c:892 +#: utils/init/postinit.c:905 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "Вы должны немедленно выполнить CREATE USER \"%s\" CREATEUSER;." -#: utils/init/postinit.c:928 +#: utils/init/postinit.c:942 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "" "нужно быть суперпользователем, чтобы подключиться в режиме двоичного " "обновления" -#: utils/init/postinit.c:949 +#: utils/init/postinit.c:962 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "" "оставшиеся слоты подключений зарезервированы для подключений ролей с " "атрибутом %s" -#: utils/init/postinit.c:955 +#: utils/init/postinit.c:968 #, c-format msgid "" "remaining connection slots are reserved for roles with privileges of the " @@ -29938,32 +31301,32 @@ msgstr "" "оставшиеся слоты подключений зарезервированы для подключений ролей с правами " "роли \"%s\"" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:980 #, c-format msgid "permission denied to start WAL sender" msgstr "нет прав для запуска процесса, передающего WAL" -#: utils/init/postinit.c:968 +#: utils/init/postinit.c:981 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "Только роли с атрибутом %s могут запускать процессы, передающие WAL." -#: utils/init/postinit.c:1086 +#: utils/init/postinit.c:1099 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "Похоже, она только что была удалена или переименована." -#: utils/init/postinit.c:1090 +#: utils/init/postinit.c:1103 #, c-format msgid "database %u does not exist" msgstr "база данных %u не существует" -#: utils/init/postinit.c:1099 +#: utils/init/postinit.c:1112 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "подключиться к некорректной базе \"%s\" нельзя" -#: utils/init/postinit.c:1159 +#: utils/init/postinit.c:1173 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Подкаталог базы данных \"%s\" отсутствует." @@ -29990,48 +31353,48 @@ msgstr "неожиданный ID кодировки %d для наборов с msgid "unexpected encoding ID %d for WIN character sets" msgstr "неожиданный ID кодировки %d для наборов символов WIN" -#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 +#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 #, c-format msgid "conversion between %s and %s is not supported" msgstr "преобразование %s <-> %s не поддерживается" -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 +#: utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Строка из %d байт слишком длинна для преобразования кодировки." -#: utils/mb/mbutils.c:569 +#: utils/mb/mbutils.c:568 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "неверное имя исходной кодировки: \"%s\"" -#: utils/mb/mbutils.c:574 +#: utils/mb/mbutils.c:573 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "неверное имя кодировки результата: \"%s\"" -#: utils/mb/mbutils.c:714 +#: utils/mb/mbutils.c:713 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "недопустимое байтовое значение для кодировки \"%s\": 0x%02x" -#: utils/mb/mbutils.c:878 +#: utils/mb/mbutils.c:877 #, c-format msgid "invalid Unicode code point" msgstr "неверный код Unicode" -#: utils/mb/mbutils.c:1204 +#: utils/mb/mbutils.c:1201 #, c-format msgid "bind_textdomain_codeset failed" msgstr "ошибка в bind_textdomain_codeset" -#: utils/mb/mbutils.c:1725 +#: utils/mb/mbutils.c:1718 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "неверная последовательность байт для кодировки \"%s\": %s" -#: utils/mb/mbutils.c:1758 +#: utils/mb/mbutils.c:1751 #, c-format msgid "" "character with byte sequence %s in encoding \"%s\" has no equivalent in " @@ -30050,14 +31413,14 @@ msgstr "пустое имя каталога конфигурации: \"%s\"" msgid "could not open configuration directory \"%s\": %m" msgstr "открыть каталог конфигурации \"%s\" не удалось: %m" -#: utils/misc/guc.c:115 +#: utils/misc/guc.c:122 msgid "" "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "" "Допустимые единицы измерения для этого параметра: \"B\", \"kB\", \"MB\", " "\"GB\" и \"TB\"." -#: utils/misc/guc.c:152 +#: utils/misc/guc.c:159 msgid "" "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", " "and \"d\"." @@ -30065,36 +31428,36 @@ msgstr "" "Допустимые единицы измерения для этого параметра: \"us\", \"ms\", \"s\", " "\"min\", \"h\" и \"d\"." -#: utils/misc/guc.c:421 +#: utils/misc/guc.c:430 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "нераспознанный параметр конфигурации \"%s\" в файле \"%s\", строке %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3411 utils/misc/guc.c:3655 -#: utils/misc/guc.c:3753 utils/misc/guc.c:3851 utils/misc/guc.c:3975 -#: utils/misc/guc.c:4078 +#: utils/misc/guc.c:470 utils/misc/guc.c:3504 utils/misc/guc.c:3748 +#: utils/misc/guc.c:3846 utils/misc/guc.c:3944 utils/misc/guc.c:4071 +#: utils/misc/guc.c:4212 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "параметр \"%s\" изменяется только при перезапуске сервера" -#: utils/misc/guc.c:497 +#: utils/misc/guc.c:506 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "" "параметр \"%s\" удалён из файла конфигурации, он принимает значение по " "умолчанию" -#: utils/misc/guc.c:562 +#: utils/misc/guc.c:571 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "параметр \"%s\" принял значение \"%s\"" -#: utils/misc/guc.c:604 +#: utils/misc/guc.c:613 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "файл конфигурации \"%s\" содержит ошибки" -#: utils/misc/guc.c:609 +#: utils/misc/guc.c:618 #, c-format msgid "" "configuration file \"%s\" contains errors; unaffected changes were applied" @@ -30102,17 +31465,17 @@ msgstr "" "файл конфигурации \"%s\" содержит ошибки; были применены не зависимые " "изменения" -#: utils/misc/guc.c:614 +#: utils/misc/guc.c:623 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "файл конфигурации \"%s\" содержит ошибки; изменения не были применены" -#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "неверное имя параметра конфигурации: \"%s\"" -#: utils/misc/guc.c:1213 +#: utils/misc/guc.c:1141 #, c-format msgid "" "Custom parameter names must be two or more simple identifiers separated by " @@ -30121,22 +31484,22 @@ msgstr "" "Имена нестандартных параметров должны состоять из двух или более простых " "идентификаторов, разделённых точками." -#: utils/misc/guc.c:1229 +#: utils/misc/guc.c:1157 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\" — зарезервированный префикс." -#: utils/misc/guc.c:1243 +#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "нераспознанный параметр конфигурации: \"%s\"" -#: utils/misc/guc.c:1767 +#: utils/misc/guc.c:1802 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: ошибка доступа к каталогу \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: ошибка при обращении к каталогу \"%s\": %m\n" -#: utils/misc/guc.c:1772 +#: utils/misc/guc.c:1806 #, c-format msgid "" "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" @@ -30144,7 +31507,7 @@ msgstr "" "Запустите initdb или pg_basebackup для инициализации каталога данных " "PostgreSQL.\n" -#: utils/misc/guc.c:1796 +#: utils/misc/guc.c:1830 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -30155,12 +31518,12 @@ msgstr "" "Вы должны указать его расположение в параметре --config-file или -D, либо " "установить переменную окружения PGDATA.\n" -#: utils/misc/guc.c:1819 +#: utils/misc/guc.c:1853 #, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s не может открыть файл конфигурации сервера \"%s\": %s\n" +msgid "%s: could not access the server configuration file \"%s\": %m\n" +msgstr "%s не может открыть файл конфигурации сервера \"%s\": %m\n" -#: utils/misc/guc.c:1847 +#: utils/misc/guc.c:1881 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -30171,7 +31534,7 @@ msgstr "" "Их расположение можно задать как значение \"data_directory\" в файле \"%s\", " "либо передать в параметре -D, либо установить переменную окружения PGDATA.\n" -#: utils/misc/guc.c:1899 +#: utils/misc/guc.c:1933 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -30182,7 +31545,7 @@ msgstr "" "Его расположение можно задать как значение \"hba_file\" в файле \"%s\", либо " "передать в параметре -D, либо установить переменную окружения PGDATA.\n" -#: utils/misc/guc.c:1930 +#: utils/misc/guc.c:1964 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -30193,124 +31556,138 @@ msgstr "" "Его расположение можно задать как значение \"ident_file\" в файле \"%s\", " "либо передать в параметре -D, либо установить переменную окружения PGDATA.\n" -#: utils/misc/guc.c:2896 +#: utils/misc/guc.c:2943 msgid "Value exceeds integer range." msgstr "Значение выходит за рамки целых чисел." -#: utils/misc/guc.c:3132 +#: utils/misc/guc.c:3185 #, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s вне диапазона, допустимого для параметра \"%s\" (%d .. %d)" +msgid "" +"%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" +msgstr "" +"%d%s%s вне диапазона, допустимого для параметра \"%s\" (%d%s%s .. %d%s%s)" -#: utils/misc/guc.c:3168 +#: utils/misc/guc.c:3226 #, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s вне диапазона, допустимого для параметра \"%s\" (%g .. %g)" +msgid "" +"%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" +msgstr "" +"%g%s%s вне диапазона, допустимого для параметра \"%s\" (%g%s%s .. %g%s%s)" -#: utils/misc/guc.c:3369 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3465 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "устанавливать параметры во время параллельных операций нельзя" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "параметр \"%s\" нельзя установить во время параллельной операции" -#: utils/misc/guc.c:3388 utils/misc/guc.c:4539 +#: utils/misc/guc.c:3481 utils/misc/guc.c:4696 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "параметр \"%s\" нельзя изменить" -#: utils/misc/guc.c:3421 +#: utils/misc/guc.c:3514 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" нельзя изменить сейчас" -#: utils/misc/guc.c:3448 utils/misc/guc.c:3510 utils/misc/guc.c:4515 -#: utils/misc/guc.c:6563 +#: utils/misc/guc.c:3541 utils/misc/guc.c:3603 utils/misc/guc.c:4671 +#: utils/misc/guc.c:6756 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "нет прав для изменения параметра \"%s\"" -#: utils/misc/guc.c:3490 +#: utils/misc/guc.c:3583 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "параметр \"%s\" нельзя задать после установления соединения" -#: utils/misc/guc.c:3549 +#: utils/misc/guc.c:3642 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "" "параметр \"%s\" нельзя задать в функции с контекстом безопасности " "определившего" -#: utils/misc/guc.c:3570 +#: utils/misc/guc.c:3663 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "параметр \"%s\" нельзя сбросить" -#: utils/misc/guc.c:3577 +#: utils/misc/guc.c:3670 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "параметр \"%s\" нельзя задавать локально в функциях" -#: utils/misc/guc.c:4221 utils/misc/guc.c:4268 utils/misc/guc.c:5282 +#: utils/misc/guc.c:4370 utils/misc/guc.c:4418 utils/misc/guc.c:5450 #, c-format msgid "permission denied to examine \"%s\"" msgstr "нет прав для просмотра параметра \"%s\"" -#: utils/misc/guc.c:4222 utils/misc/guc.c:4269 utils/misc/guc.c:5283 +#: utils/misc/guc.c:4371 utils/misc/guc.c:4419 utils/misc/guc.c:5451 #, c-format msgid "" "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "Просматривать этот параметр могут только роли с правами роли \"%s\"." -#: utils/misc/guc.c:4505 +#: utils/misc/guc.c:4629 +#, c-format +msgid "ALTER SYSTEM is not allowed in this environment" +msgstr "команда ALTER SYSTEM запрещена в этом окружении" + +#: utils/misc/guc.c:4661 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "нет прав для выполнения ALTER SYSTEM RESET ALL" -#: utils/misc/guc.c:4571 +#: utils/misc/guc.c:4740 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "значение параметра для ALTER SYSTEM не должно быть многострочным" -#: utils/misc/guc.c:4617 +#: utils/misc/guc.c:4785 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "не удалось разобрать содержимое файла \"%s\"" -#: utils/misc/guc.c:4799 +#: utils/misc/guc.c:4967 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "попытка переопределить параметр \"%s\"" -#: utils/misc/guc.c:5138 +#: utils/misc/guc.c:5306 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "неверное имя параметра конфигурации: \"%s\", он удаляется" -#: utils/misc/guc.c:5140 +#: utils/misc/guc.c:5308 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "Теперь \"%s\" — зарезервированный префикс." -#: utils/misc/guc.c:6017 +#: utils/misc/guc.c:6179 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "при назначении параметру \"%s\" значения \"%s\"" -#: utils/misc/guc.c:6186 +#: utils/misc/guc.c:6348 #, c-format msgid "parameter \"%s\" could not be set" msgstr "параметр \"%s\" нельзя установить" -#: utils/misc/guc.c:6276 +#: utils/misc/guc.c:6438 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "не удалось разобрать значение параметра \"%s\"" -#: utils/misc/guc.c:6695 +#: utils/misc/guc.c:6888 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неверное значение параметра \"%s\": %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "устанавливать параметры во время параллельных операций нельзя" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -30326,59 +31703,59 @@ msgstr "SET %s принимает только один аргумент" msgid "SET requires parameter name" msgstr "SET требует имя параметра" -#: utils/misc/guc_tables.c:662 +#: utils/misc/guc_tables.c:676 msgid "Ungrouped" msgstr "Разное" -#: utils/misc/guc_tables.c:664 +#: utils/misc/guc_tables.c:677 msgid "File Locations" msgstr "Расположения файлов" -#: utils/misc/guc_tables.c:666 +#: utils/misc/guc_tables.c:678 msgid "Connections and Authentication / Connection Settings" msgstr "Подключения и аутентификация / Параметры подключений" -#: utils/misc/guc_tables.c:668 +#: utils/misc/guc_tables.c:679 msgid "Connections and Authentication / TCP Settings" msgstr "Подключения и аутентификация / Параметры TCP" -#: utils/misc/guc_tables.c:670 +#: utils/misc/guc_tables.c:680 msgid "Connections and Authentication / Authentication" msgstr "Подключения и аутентификация / Аутентификация" -#: utils/misc/guc_tables.c:672 +#: utils/misc/guc_tables.c:681 msgid "Connections and Authentication / SSL" msgstr "Подключения и аутентификация / SSL" -#: utils/misc/guc_tables.c:674 +#: utils/misc/guc_tables.c:682 msgid "Resource Usage / Memory" msgstr "Использование ресурсов / Память" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:683 msgid "Resource Usage / Disk" msgstr "Использование ресурсов / Диск" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:684 msgid "Resource Usage / Kernel Resources" msgstr "Использование ресурсов / Ресурсы ядра" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:685 msgid "Resource Usage / Cost-Based Vacuum Delay" msgstr "Использование ресурсов / Задержка очистки по стоимости" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:686 msgid "Resource Usage / Background Writer" msgstr "Использование ресурсов / Фоновая запись" -#: utils/misc/guc_tables.c:684 +#: utils/misc/guc_tables.c:687 msgid "Resource Usage / Asynchronous Behavior" msgstr "Использование ресурсов / Асинхронное поведение" -#: utils/misc/guc_tables.c:686 +#: utils/misc/guc_tables.c:688 msgid "Write-Ahead Log / Settings" msgstr "Журнал WAL / Параметры" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:689 msgid "Write-Ahead Log / Checkpoints" msgstr "Журнал WAL / Контрольные точки" @@ -30386,210 +31763,214 @@ msgstr "Журнал WAL / Контрольные точки" msgid "Write-Ahead Log / Archiving" msgstr "Журнал WAL / Архивация" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:691 msgid "Write-Ahead Log / Recovery" msgstr "Журнал WAL / Восстановление" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:692 msgid "Write-Ahead Log / Archive Recovery" msgstr "Журнал WAL / Восстановление из архива" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:693 msgid "Write-Ahead Log / Recovery Target" msgstr "Журнал WAL / Цель восстановления" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Summarization" +msgstr "Журнал WAL / Обобщение" + +#: utils/misc/guc_tables.c:695 msgid "Replication / Sending Servers" msgstr "Репликация / Передающие серверы" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:696 msgid "Replication / Primary Server" msgstr "Репликация / Ведущий сервер" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:697 msgid "Replication / Standby Servers" msgstr "Репликация / Резервные серверы" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:698 msgid "Replication / Subscribers" msgstr "Репликация / Подписчики" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:699 msgid "Query Tuning / Planner Method Configuration" msgstr "Настройка запросов / Конфигурация методов планировщика" -#: utils/misc/guc_tables.c:708 +#: utils/misc/guc_tables.c:700 msgid "Query Tuning / Planner Cost Constants" msgstr "Настройка запросов / Константы стоимости для планировщика" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:701 msgid "Query Tuning / Genetic Query Optimizer" msgstr "Настройка запросов / Генетический оптимизатор запросов" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:702 msgid "Query Tuning / Other Planner Options" msgstr "Настройка запросов / Другие параметры планировщика" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:703 msgid "Reporting and Logging / Where to Log" msgstr "Отчёты и протоколы / Куда записывать" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:704 msgid "Reporting and Logging / When to Log" msgstr "Отчёты и протоколы / Когда записывать" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:705 msgid "Reporting and Logging / What to Log" msgstr "Отчёты и протоколы / Что записывать" -#: utils/misc/guc_tables.c:720 +#: utils/misc/guc_tables.c:706 msgid "Reporting and Logging / Process Title" msgstr "Отчёты и протоколы / Заголовок процесса" -#: utils/misc/guc_tables.c:722 +#: utils/misc/guc_tables.c:707 msgid "Statistics / Monitoring" msgstr "Статистика / Мониторинг" -#: utils/misc/guc_tables.c:724 +#: utils/misc/guc_tables.c:708 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "Статистика / Накопительная статистика по запросам и индексам" -#: utils/misc/guc_tables.c:726 +#: utils/misc/guc_tables.c:709 msgid "Autovacuum" msgstr "Автоочистка" -#: utils/misc/guc_tables.c:728 +#: utils/misc/guc_tables.c:710 msgid "Client Connection Defaults / Statement Behavior" msgstr "Параметры клиентских подключений по умолчанию / Поведение команд" -#: utils/misc/guc_tables.c:730 +#: utils/misc/guc_tables.c:711 msgid "Client Connection Defaults / Locale and Formatting" msgstr "" "Параметры клиентских подключений по умолчанию / Языковая среда и форматы" -#: utils/misc/guc_tables.c:732 +#: utils/misc/guc_tables.c:712 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "" "Параметры клиентских подключений по умолчанию / Предзагрузка разделяемых " "библиотек" -#: utils/misc/guc_tables.c:734 +#: utils/misc/guc_tables.c:713 msgid "Client Connection Defaults / Other Defaults" msgstr "Параметры клиентских подключений по умолчанию / Другие параметры" -#: utils/misc/guc_tables.c:736 +#: utils/misc/guc_tables.c:714 msgid "Lock Management" msgstr "Управление блокировками" -#: utils/misc/guc_tables.c:738 +#: utils/misc/guc_tables.c:715 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "Версия и совместимость платформ / Предыдущие версии PostgreSQL" -#: utils/misc/guc_tables.c:740 +#: utils/misc/guc_tables.c:716 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "Версия и совместимость платформ / Другие платформы и клиенты" -#: utils/misc/guc_tables.c:742 +#: utils/misc/guc_tables.c:717 msgid "Error Handling" msgstr "Обработка ошибок" -#: utils/misc/guc_tables.c:744 +#: utils/misc/guc_tables.c:718 msgid "Preset Options" msgstr "Предопределённые параметры" -#: utils/misc/guc_tables.c:746 +#: utils/misc/guc_tables.c:719 msgid "Customized Options" msgstr "Внесистемные параметры" -#: utils/misc/guc_tables.c:748 +#: utils/misc/guc_tables.c:720 msgid "Developer Options" msgstr "Параметры для разработчиков" -#: utils/misc/guc_tables.c:805 +#: utils/misc/guc_tables.c:775 msgid "Enables the planner's use of sequential-scan plans." msgstr "" "Разрешает планировщику использовать планы последовательного сканирования." -#: utils/misc/guc_tables.c:815 +#: utils/misc/guc_tables.c:785 msgid "Enables the planner's use of index-scan plans." msgstr "Разрешает планировщику использовать планы сканирования по индексу." -#: utils/misc/guc_tables.c:825 +#: utils/misc/guc_tables.c:795 msgid "Enables the planner's use of index-only-scan plans." msgstr "Разрешает планировщику использовать планы сканирования только индекса." -#: utils/misc/guc_tables.c:835 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of bitmap-scan plans." msgstr "" "Разрешает планировщику использовать планы сканирования по битовой карте." -#: utils/misc/guc_tables.c:845 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of TID scan plans." msgstr "Разрешает планировщику использовать планы сканирования TID." -#: utils/misc/guc_tables.c:855 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of explicit sort steps." msgstr "Разрешает планировщику использовать шаги с явной сортировкой." -#: utils/misc/guc_tables.c:865 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of incremental sort steps." msgstr "" "Разрешает планировщику использовать шаги с инкрементальной сортировкой." -#: utils/misc/guc_tables.c:875 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of hashed aggregation plans." msgstr "Разрешает планировщику использовать планы агрегирования по хешу." -#: utils/misc/guc_tables.c:885 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of materialization." msgstr "Разрешает планировщику использовать материализацию." # well-spelled: мемоизацию -#: utils/misc/guc_tables.c:895 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of memoization." msgstr "Разрешает планировщику использовать мемоизацию." -#: utils/misc/guc_tables.c:905 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of nested-loop join plans." msgstr "" "Разрешает планировщику использовать планы соединения с вложенными циклами." -#: utils/misc/guc_tables.c:915 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of merge join plans." msgstr "Разрешает планировщику использовать планы соединения слиянием." -#: utils/misc/guc_tables.c:925 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of hash join plans." msgstr "Разрешает планировщику использовать планы соединения по хешу." -#: utils/misc/guc_tables.c:935 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of gather merge plans." msgstr "Разрешает планировщику использовать планы сбора слиянием." -#: utils/misc/guc_tables.c:945 +#: utils/misc/guc_tables.c:915 msgid "Enables partitionwise join." msgstr "Включает соединения с учётом секционирования." -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:925 msgid "Enables partitionwise aggregation and grouping." msgstr "Включает агрегирование и группировку с учётом секционирования." -#: utils/misc/guc_tables.c:965 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of parallel append plans." msgstr "Разрешает планировщику использовать планы параллельного добавления." -#: utils/misc/guc_tables.c:975 +#: utils/misc/guc_tables.c:945 msgid "Enables the planner's use of parallel hash plans." msgstr "" "Разрешает планировщику использовать планы параллельного соединения по хешу." -#: utils/misc/guc_tables.c:985 +#: utils/misc/guc_tables.c:955 msgid "Enables plan-time and execution-time partition pruning." msgstr "" "Включает устранение секций во время планирования и во время выполнения " "запросов." -#: utils/misc/guc_tables.c:986 +#: utils/misc/guc_tables.c:956 msgid "" "Allows the query planner and executor to compare partition bounds to " "conditions in the query to determine which partitions must be scanned." @@ -30597,7 +31978,7 @@ msgstr "" "Разрешает планировщику и исполнителю запросов сопоставлять границы секций с " "условиями в запросе и выделять отдельные секции для сканирования." -#: utils/misc/guc_tables.c:997 +#: utils/misc/guc_tables.c:967 msgid "" "Enables the planner's ability to produce plans that provide presorted input " "for ORDER BY / DISTINCT aggregate functions." @@ -30605,7 +31986,7 @@ msgstr "" "Включает в планировщике возможность формировать планы, подающие ранее " "сортированные данные на вход агрегирующим функциям с ORDER BY / DISTINCT." -#: utils/misc/guc_tables.c:1000 +#: utils/misc/guc_tables.c:970 msgid "" "Allows the query planner to build plans that provide presorted input for " "aggregate functions with an ORDER BY / DISTINCT clause. When disabled, " @@ -30616,49 +31997,66 @@ msgstr "" "данные. Когда этот параметр отключён, во время выполнения всегда неявно " "производится сортировка." -#: utils/misc/guc_tables.c:1012 +#: utils/misc/guc_tables.c:982 msgid "Enables the planner's use of async append plans." msgstr "Разрешает планировщику использовать планы асинхронного добавления." -#: utils/misc/guc_tables.c:1022 +#: utils/misc/guc_tables.c:992 +msgid "Enables reordering of GROUP BY keys." +msgstr "Включает переупорядочивание ключей GROUP BY." + +#: utils/misc/guc_tables.c:1002 msgid "Enables genetic query optimization." msgstr "Включает генетическую оптимизацию запросов." -#: utils/misc/guc_tables.c:1023 +#: utils/misc/guc_tables.c:1003 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "Этот алгоритм пытается построить план без полного перебора." -#: utils/misc/guc_tables.c:1034 +#: utils/misc/guc_tables.c:1017 msgid "Shows whether the current user is a superuser." msgstr "Показывает, является ли текущий пользователь суперпользователем." -#: utils/misc/guc_tables.c:1044 +#: utils/misc/guc_tables.c:1032 +msgid "Allows running the ALTER SYSTEM command." +msgstr "Разрешает выполнять команду ALTER SYSTEM." + +#: utils/misc/guc_tables.c:1033 +msgid "" +"Can be set to off for environments where global configuration changes should " +"be made using a different method." +msgstr "" +"Может быть выключен в окружениях, где изменения глобальной конфигурации " +"должны производиться другим методом." + +#: utils/misc/guc_tables.c:1043 msgid "Enables advertising the server via Bonjour." msgstr "Включает объявление сервера посредством Bonjour." -#: utils/misc/guc_tables.c:1053 +#: utils/misc/guc_tables.c:1052 msgid "Collects transaction commit time." msgstr "Записывает время фиксации транзакций." -#: utils/misc/guc_tables.c:1062 +#: utils/misc/guc_tables.c:1061 msgid "Enables SSL connections." msgstr "Разрешает SSL-подключения." -#: utils/misc/guc_tables.c:1071 -msgid "Controls whether ssl_passphrase_command is called during server reload." +#: utils/misc/guc_tables.c:1070 +msgid "" +"Controls whether \"ssl_passphrase_command\" is called during server reload." msgstr "" -"Определяет, будет ли вызываться ssl_passphrase_command при перезагрузке " +"Определяет, будет ли вызываться \"ssl_passphrase_command\" при перезагрузке " "сервера." -#: utils/misc/guc_tables.c:1080 +#: utils/misc/guc_tables.c:1079 msgid "Give priority to server ciphersuite order." msgstr "Назначает более приоритетным набор шифров сервера." -#: utils/misc/guc_tables.c:1089 +#: utils/misc/guc_tables.c:1088 msgid "Forces synchronization of updates to disk." msgstr "Принудительная запись изменений на диск." -#: utils/misc/guc_tables.c:1090 +#: utils/misc/guc_tables.c:1089 msgid "" "The server will use the fsync() system call in several places to make sure " "that updates are physically written to disk. This ensures that a database " @@ -30669,11 +32067,11 @@ msgstr "" "обеспечивающую физическую запись данных на диск. Тем самым гарантируется, " "что кластер БД придёт в целостное состояние после отказа ОС или оборудования." -#: utils/misc/guc_tables.c:1101 +#: utils/misc/guc_tables.c:1100 msgid "Continues processing after a checksum failure." msgstr "Продолжает обработку при ошибке контрольной суммы." -#: utils/misc/guc_tables.c:1102 +#: utils/misc/guc_tables.c:1101 msgid "" "Detection of a checksum failure normally causes PostgreSQL to report an " "error, aborting the current transaction. Setting ignore_checksum_failure to " @@ -30687,34 +32085,34 @@ msgstr "" "что может привести к сбоям или другим серьёзным проблемам. Это имеет место, " "только если включён контроль целостности страниц." -#: utils/misc/guc_tables.c:1116 +#: utils/misc/guc_tables.c:1115 msgid "Continues processing past damaged page headers." msgstr "Продолжает обработку при повреждении заголовков страниц." -#: utils/misc/guc_tables.c:1117 +#: utils/misc/guc_tables.c:1116 msgid "" "Detection of a damaged page header normally causes PostgreSQL to report an " -"error, aborting the current transaction. Setting zero_damaged_pages to true " -"causes the system to instead report a warning, zero out the damaged page, " -"and continue processing. This behavior will destroy data, namely all the " -"rows on the damaged page." +"error, aborting the current transaction. Setting \"zero_damaged_pages\" to " +"true causes the system to instead report a warning, zero out the damaged " +"page, and continue processing. This behavior will destroy data, namely all " +"the rows on the damaged page." msgstr "" "Обнаруживая повреждённый заголовок страницы, PostgreSQL обычно сообщает об " -"ошибке и прерывает текущую транзакцию. Но если zero_damaged_pages равен " +"ошибке и прерывает текущую транзакцию. Но если \"zero_damaged_pages\" равен " "true, система выдаст предупреждение, обнулит повреждённую страницу и " "продолжит работу. Это приведёт к потере данных, а именно строк в " "повреждённой странице." -#: utils/misc/guc_tables.c:1130 +#: utils/misc/guc_tables.c:1129 msgid "Continues recovery after an invalid pages failure." msgstr "" "Продолжает восстановление после ошибок, связанных с неправильными страницами." -#: utils/misc/guc_tables.c:1131 +#: utils/misc/guc_tables.c:1130 msgid "" "Detection of WAL records having references to invalid pages during recovery " "causes PostgreSQL to raise a PANIC-level error, aborting the recovery. " -"Setting ignore_invalid_pages to true causes the system to ignore invalid " +"Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid " "page references in WAL records (but still report a warning), and continue " "recovery. This behavior may cause crashes, data loss, propagate or hide " "corruption, or other serious problems. Only has an effect during recovery or " @@ -30722,19 +32120,19 @@ msgid "" msgstr "" "Обнаруживая в записях WAL ссылки на неправильные страницы во время " "восстановления, PostgreSQL выдаёт ошибку уровня ПАНИКА и прерывает " -"восстановление. Если ignore_invalid_pages равен true, система игнорирует " +"восстановление. Если \"ignore_invalid_pages\" равен true, система игнорирует " "такие некорректные ссылки (но всё же выдаёт предупреждение) и продолжает " "восстановление. Это может привести к краху сервера, потере данных, " "распространению или сокрытию повреждения данных и другим серьёзным " "проблемам. Данный параметр действует только при восстановлении или в режиме " "резервного сервера." -#: utils/misc/guc_tables.c:1149 +#: utils/misc/guc_tables.c:1148 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "" "Запись полных страниц в WAL при первом изменении после контрольной точки." -#: utils/misc/guc_tables.c:1150 +#: utils/misc/guc_tables.c:1149 msgid "" "A page write in process during an operating system crash might be only " "partially written to disk. During recovery, the row changes stored in WAL " @@ -30747,7 +32145,7 @@ msgstr "" "при первом изменении после контрольной точки, что позволяет полностью " "восстановить данные." -#: utils/misc/guc_tables.c:1163 +#: utils/misc/guc_tables.c:1162 msgid "" "Writes full pages to WAL when first modified after a checkpoint, even for a " "non-critical modification." @@ -30755,93 +32153,98 @@ msgstr "" "Запись полных страниц в WAL при первом изменении после контрольной точки, " "даже при некритическом изменении." -#: utils/misc/guc_tables.c:1173 +#: utils/misc/guc_tables.c:1172 msgid "Writes zeroes to new WAL files before first use." msgstr "Записывать нули в новые файлы WAL перед первым использованием." -#: utils/misc/guc_tables.c:1183 +#: utils/misc/guc_tables.c:1182 msgid "Recycles WAL files by renaming them." msgstr "Перерабатывать файлы WAL, производя переименование." -#: utils/misc/guc_tables.c:1193 +#: utils/misc/guc_tables.c:1192 msgid "Logs each checkpoint." msgstr "Протоколировать каждую контрольную точку." -#: utils/misc/guc_tables.c:1202 +#: utils/misc/guc_tables.c:1201 msgid "Logs each successful connection." msgstr "Протоколировать устанавливаемые соединения." -#: utils/misc/guc_tables.c:1211 +#: utils/misc/guc_tables.c:1210 +msgid "Logs details of pre-authentication connection handshake." +msgstr "" +"Протоколировать сообщения об установлении соединения до аутентификации." + +#: utils/misc/guc_tables.c:1220 msgid "Logs end of a session, including duration." msgstr "Протоколировать конец сеанса, отмечая длительность." -#: utils/misc/guc_tables.c:1220 +#: utils/misc/guc_tables.c:1229 msgid "Logs each replication command." msgstr "Протоколировать каждую команду репликации." -#: utils/misc/guc_tables.c:1229 +#: utils/misc/guc_tables.c:1238 msgid "Shows whether the running server has assertion checks enabled." msgstr "Показывает, включены ли проверки истинности на работающем сервере." -#: utils/misc/guc_tables.c:1240 +#: utils/misc/guc_tables.c:1249 msgid "Terminate session on any error." msgstr "Завершать сеансы при любой ошибке." -#: utils/misc/guc_tables.c:1249 +#: utils/misc/guc_tables.c:1258 msgid "Reinitialize server after backend crash." msgstr "Перезапускать систему БД при аварии серверного процесса." -#: utils/misc/guc_tables.c:1258 +#: utils/misc/guc_tables.c:1267 msgid "Remove temporary files after backend crash." msgstr "Удалять временные файлы после аварии обслуживающего процесса." -#: utils/misc/guc_tables.c:1268 +#: utils/misc/guc_tables.c:1277 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "" "Посылать дочерним процессам SIGABRT, а не SIGQUIT при сбое серверного " "процесса." -#: utils/misc/guc_tables.c:1278 +#: utils/misc/guc_tables.c:1287 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "Посылать SIGABRT, а не SIGKILL зависшим дочерним процессам." -#: utils/misc/guc_tables.c:1289 +#: utils/misc/guc_tables.c:1298 msgid "Logs the duration of each completed SQL statement." msgstr "Протоколировать длительность каждого выполненного SQL-оператора." -#: utils/misc/guc_tables.c:1298 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's parse tree." msgstr "Протоколировать дерево разбора для каждого запроса." -#: utils/misc/guc_tables.c:1307 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's rewritten parse tree." msgstr "Протоколировать перезаписанное дерево разбора для каждого запроса." -#: utils/misc/guc_tables.c:1316 +#: utils/misc/guc_tables.c:1325 msgid "Logs each query's execution plan." msgstr "Протоколировать план выполнения каждого запроса." -#: utils/misc/guc_tables.c:1325 +#: utils/misc/guc_tables.c:1334 msgid "Indents parse and plan tree displays." msgstr "Отступы при отображении деревьев разбора и плана запросов." -#: utils/misc/guc_tables.c:1334 +#: utils/misc/guc_tables.c:1343 msgid "Writes parser performance statistics to the server log." msgstr "Запись статистики разбора запросов в протокол сервера." -#: utils/misc/guc_tables.c:1343 +#: utils/misc/guc_tables.c:1352 msgid "Writes planner performance statistics to the server log." msgstr "Запись статистики планирования в протокол сервера." -#: utils/misc/guc_tables.c:1352 +#: utils/misc/guc_tables.c:1361 msgid "Writes executor performance statistics to the server log." msgstr "Запись статистики выполнения запросов в протокол сервера." -#: utils/misc/guc_tables.c:1361 +#: utils/misc/guc_tables.c:1370 msgid "Writes cumulative performance statistics to the server log." msgstr "Запись общей статистики производительности в протокол сервера." -#: utils/misc/guc_tables.c:1371 +#: utils/misc/guc_tables.c:1380 msgid "" "Logs system resource usage statistics (memory and CPU) on various B-tree " "operations." @@ -30849,11 +32252,11 @@ msgstr "" "Фиксировать статистику использования системных ресурсов (памяти и " "процессора) при различных операциях с b-деревом." -#: utils/misc/guc_tables.c:1383 +#: utils/misc/guc_tables.c:1392 msgid "Collects information about executing commands." msgstr "Собирает информацию о выполняющихся командах." -#: utils/misc/guc_tables.c:1384 +#: utils/misc/guc_tables.c:1393 msgid "" "Enables the collection of information on the currently executing command of " "each session, along with the time at which that command began execution." @@ -30861,70 +32264,70 @@ msgstr "" "Включает сбор информации о командах, выполняющихся во всех сеансах, а также " "время запуска команды." -#: utils/misc/guc_tables.c:1394 +#: utils/misc/guc_tables.c:1403 msgid "Collects statistics on database activity." msgstr "Собирает статистику активности в БД." -#: utils/misc/guc_tables.c:1403 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for database I/O activity." msgstr "Собирает статистику по времени активности ввода/вывода." -#: utils/misc/guc_tables.c:1412 +#: utils/misc/guc_tables.c:1421 msgid "Collects timing statistics for WAL I/O activity." msgstr "Собирает статистику по времени активности ввода/вывода WAL." -#: utils/misc/guc_tables.c:1422 +#: utils/misc/guc_tables.c:1431 msgid "Updates the process title to show the active SQL command." msgstr "Выводит в заголовок процесса активную SQL-команду." -#: utils/misc/guc_tables.c:1423 +#: utils/misc/guc_tables.c:1432 msgid "" "Enables updating of the process title every time a new SQL command is " "received by the server." msgstr "Отражает в заголовке процесса каждую SQL-команду, поступающую серверу." -#: utils/misc/guc_tables.c:1432 +#: utils/misc/guc_tables.c:1441 msgid "Starts the autovacuum subprocess." msgstr "Запускает подпроцесс автоочистки." -#: utils/misc/guc_tables.c:1442 +#: utils/misc/guc_tables.c:1451 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "Генерирует отладочные сообщения для LISTEN и NOTIFY." -#: utils/misc/guc_tables.c:1454 +#: utils/misc/guc_tables.c:1463 msgid "Emits information about lock usage." msgstr "Выдавать информацию о применяемых блокировках." -#: utils/misc/guc_tables.c:1464 +#: utils/misc/guc_tables.c:1473 msgid "Emits information about user lock usage." msgstr "Выдавать информацию о применяемых пользовательских блокировках." -#: utils/misc/guc_tables.c:1474 +#: utils/misc/guc_tables.c:1483 msgid "Emits information about lightweight lock usage." msgstr "Выдавать информацию о применяемых лёгких блокировках." -#: utils/misc/guc_tables.c:1484 +#: utils/misc/guc_tables.c:1493 msgid "" "Dumps information about all current locks when a deadlock timeout occurs." msgstr "" "Выводить информацию обо всех текущих блокировках в случае тайм-аута при " "взаимоблокировке." -#: utils/misc/guc_tables.c:1496 +#: utils/misc/guc_tables.c:1505 msgid "Logs long lock waits." msgstr "Протоколировать длительные ожидания в блокировках." -#: utils/misc/guc_tables.c:1505 +#: utils/misc/guc_tables.c:1514 msgid "Logs standby recovery conflict waits." msgstr "" "Протоколировать события ожидания разрешения конфликтов при восстановлении на " "ведомом." -#: utils/misc/guc_tables.c:1514 +#: utils/misc/guc_tables.c:1523 msgid "Logs the host name in the connection logs." msgstr "Записывать имя узла в протоколы подключений." -#: utils/misc/guc_tables.c:1515 +#: utils/misc/guc_tables.c:1524 msgid "" "By default, connection logs only show the IP address of the connecting host. " "If you want them to show the host name you can turn this on, but depending " @@ -30936,11 +32339,11 @@ msgstr "" "параметр, но учтите, что это может значительно повлиять на " "производительность." -#: utils/misc/guc_tables.c:1526 +#: utils/misc/guc_tables.c:1535 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "Обрабатывать \"expr=NULL\" как \"expr IS NULL\"." -#: utils/misc/guc_tables.c:1527 +#: utils/misc/guc_tables.c:1536 msgid "" "When turned on, expressions of the form expr = NULL (or NULL = expr) are " "treated as expr IS NULL, that is, they return true if expr evaluates to the " @@ -30952,10 +32355,6 @@ msgstr "" "совпадает с NULL, и false в противном случае. По правилам expr = NULL всегда " "должно возвращать null (неопределённость)." -#: utils/misc/guc_tables.c:1539 -msgid "Enables per-database user names." -msgstr "Включает связывание имён пользователей с базами данных." - #: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "" @@ -31012,10 +32411,10 @@ msgstr "" #: utils/misc/guc_tables.c:1632 msgid "" -"Start a subprocess to capture stderr output and/or csvlogs into log files." +"Start a subprocess to capture stderr, csvlog and/or jsonlog into log files." msgstr "" -"Запускает подпроцесс для чтения stderr и/или csv-файлов и записи в файлы " -"протоколов." +"Запускает подпроцесс для чтения stderr, csvlog и/или jsonlog и записи в " +"файлы протоколов." #: utils/misc/guc_tables.c:1641 msgid "Truncate existing log files of same name during log rotation." @@ -31071,11 +32470,17 @@ msgid "Sets whether to include or exclude transaction with recovery target." msgstr "Определяет, включать ли транзакцию в целевую точку восстановления." #: utils/misc/guc_tables.c:1778 +msgid "Starts the WAL summarizer process to enable incremental backup." +msgstr "" +"Запускает процесс обобщения WAL, необходимый для инкрементального " +"копирования." + +#: utils/misc/guc_tables.c:1788 msgid "Allows connections and queries during recovery." msgstr "" "Разрешает принимать новые подключения и запросы в процессе восстановления." -#: utils/misc/guc_tables.c:1788 +#: utils/misc/guc_tables.c:1798 msgid "" "Allows feedback from a hot standby to the primary that will avoid query " "conflicts." @@ -31083,19 +32488,19 @@ msgstr "" "Разрешает обратную связь сервера горячего резерва с основным для " "предотвращения конфликтов при длительных запросах." -#: utils/misc/guc_tables.c:1798 +#: utils/misc/guc_tables.c:1808 msgid "Shows whether hot standby is currently active." msgstr "Показывает, активен ли в настоящий момент режим горячего резерва." -#: utils/misc/guc_tables.c:1809 +#: utils/misc/guc_tables.c:1819 msgid "Allows modifications of the structure of system tables." msgstr "Разрешает модифицировать структуру системных таблиц." -#: utils/misc/guc_tables.c:1820 +#: utils/misc/guc_tables.c:1830 msgid "Disables reading from system indexes." msgstr "Запрещает использование системных индексов." -#: utils/misc/guc_tables.c:1821 +#: utils/misc/guc_tables.c:1831 msgid "" "It does not prevent updating the indexes, so it is safe to use. The worst " "consequence is slowness." @@ -31103,20 +32508,20 @@ msgstr "" "При этом индексы продолжают обновляться, так что данное поведение безопасно. " "Худшее следствие - замедление." -#: utils/misc/guc_tables.c:1832 +#: utils/misc/guc_tables.c:1842 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "" "Позволяет размещать табличные пространства внутри pg_tblspc; предназначается " "для тестирования." -#: utils/misc/guc_tables.c:1843 +#: utils/misc/guc_tables.c:1853 msgid "" "Enables backward compatibility mode for privilege checks on large objects." msgstr "" "Включает режим обратной совместимости при проверке привилегий для больших " "объектов." -#: utils/misc/guc_tables.c:1844 +#: utils/misc/guc_tables.c:1854 msgid "" "Skips privilege checks when reading or modifying large objects, for " "compatibility with PostgreSQL releases prior to 9.0." @@ -31124,66 +32529,66 @@ msgstr "" "Пропускает проверки привилегий при чтении или изменении больших объектов " "(для совместимости с версиями PostgreSQL до 9.0)." -#: utils/misc/guc_tables.c:1854 +#: utils/misc/guc_tables.c:1864 msgid "When generating SQL fragments, quote all identifiers." msgstr "" "Генерируя SQL-фрагменты, заключать все идентификаторы в двойные кавычки." -#: utils/misc/guc_tables.c:1864 +#: utils/misc/guc_tables.c:1874 msgid "Shows whether data checksums are turned on for this cluster." msgstr "Показывает, включён ли в этом кластере контроль целостности данных." -#: utils/misc/guc_tables.c:1875 +#: utils/misc/guc_tables.c:1885 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "" "Добавлять последовательный номер в сообщения syslog во избежание подавления " "повторов." -#: utils/misc/guc_tables.c:1885 +#: utils/misc/guc_tables.c:1895 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "" "Разбивать сообщения, передаваемые в syslog, по строкам размером не больше " "1024 байт." -#: utils/misc/guc_tables.c:1895 +#: utils/misc/guc_tables.c:1905 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "" "Определяет, будут ли узлы сбора и сбора слиянием также выполнять подпланы." -#: utils/misc/guc_tables.c:1896 +#: utils/misc/guc_tables.c:1906 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "" "Должны ли узлы сбора также выполнять подпланы или только собирать кортежи?" -#: utils/misc/guc_tables.c:1906 +#: utils/misc/guc_tables.c:1916 msgid "Allow JIT compilation." msgstr "Включить JIT-компиляцию." -#: utils/misc/guc_tables.c:1917 +#: utils/misc/guc_tables.c:1927 msgid "Register JIT-compiled functions with debugger." msgstr "Регистрировать JIT-скомпилированные функции в отладчике." -#: utils/misc/guc_tables.c:1934 +#: utils/misc/guc_tables.c:1944 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "Выводить битовый код LLVM для облегчения отладки JIT." -#: utils/misc/guc_tables.c:1945 +#: utils/misc/guc_tables.c:1955 msgid "Allow JIT compilation of expressions." msgstr "Включить JIT-компиляцию выражений." -#: utils/misc/guc_tables.c:1956 +#: utils/misc/guc_tables.c:1966 msgid "Register JIT-compiled functions with perf profiler." msgstr "Регистрировать JIT-компилируемые функции в профилировщике perf." -#: utils/misc/guc_tables.c:1973 +#: utils/misc/guc_tables.c:1983 msgid "Allow JIT compilation of tuple deforming." msgstr "Разрешить JIT-компиляцию кода преобразования кортежей." -#: utils/misc/guc_tables.c:1984 +#: utils/misc/guc_tables.c:1994 msgid "Whether to continue running after a failure to sync data files." msgstr "Продолжать работу после ошибки при сохранении файлов данных на диске." -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2003 msgid "" "Sets whether a WAL receiver should create a temporary replication slot if no " "permanent slot is configured." @@ -31191,28 +32596,46 @@ msgstr "" "Определяет, должен ли приёмник WAL создавать временный слот репликации, если " "не настроен постоянный слот." -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2012 +msgid "Enables event triggers." +msgstr "Включает событийные триггеры." + +#: utils/misc/guc_tables.c:2013 +msgid "When enabled, event triggers will fire for all applicable statements." +msgstr "" +"При включении событийные триггеры будут срабатывать для всех операторов, для " +"которых применимы." + +#: utils/misc/guc_tables.c:2022 +msgid "" +"Enables a physical standby to synchronize logical failover replication slots " +"from the primary server." +msgstr "" +"Позволяет физической реплике синхронизировать переносимые слоты логической " +"репликации с ведущего сервера." + +#: utils/misc/guc_tables.c:2040 msgid "" "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "" "Задаёт время задержки перед принудительным переключением на следующий файл " "WAL." -#: utils/misc/guc_tables.c:2022 +#: utils/misc/guc_tables.c:2051 msgid "" "Sets the amount of time to wait after authentication on connection startup." msgstr "" "Задаёт время ожидания после аутентификации при установлении соединения." -#: utils/misc/guc_tables.c:2024 utils/misc/guc_tables.c:2658 +#: utils/misc/guc_tables.c:2053 utils/misc/guc_tables.c:2780 msgid "This allows attaching a debugger to the process." msgstr "Это позволяет подключить к процессу отладчик." -#: utils/misc/guc_tables.c:2033 +#: utils/misc/guc_tables.c:2062 msgid "Sets the default statistics target." msgstr "Устанавливает ориентир статистики по умолчанию." -#: utils/misc/guc_tables.c:2034 +#: utils/misc/guc_tables.c:2063 msgid "" "This applies to table columns that have not had a column-specific target set " "via ALTER TABLE SET STATISTICS." @@ -31220,13 +32643,13 @@ msgstr "" "Это значение распространяется на столбцы таблицы, для которых ориентир " "статистики не задан явно через ALTER TABLE SET STATISTICS." -#: utils/misc/guc_tables.c:2043 +#: utils/misc/guc_tables.c:2072 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "" "Задаёт предел для списка FROM, при превышении которого подзапросы не " "сворачиваются." -#: utils/misc/guc_tables.c:2045 +#: utils/misc/guc_tables.c:2074 msgid "" "The planner will merge subqueries into upper queries if the resulting FROM " "list would have no more than this many items." @@ -31234,13 +32657,13 @@ msgstr "" "Планировщик объединит вложенные запросы с внешними, если в полученном списке " "FROM будет не больше заданного числа элементов." -#: utils/misc/guc_tables.c:2056 +#: utils/misc/guc_tables.c:2085 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "" "Задаёт предел для списка FROM, при превышении которого конструкции JOIN " "сохраняются." -#: utils/misc/guc_tables.c:2058 +#: utils/misc/guc_tables.c:2087 msgid "" "The planner will flatten explicit JOIN constructs into lists of FROM items " "whenever a list of no more than this many items would result." @@ -31248,34 +32671,34 @@ msgstr "" "Планировщик будет сносить явные конструкции JOIN в списки FROM, пока в " "результирующем списке не больше заданного числа элементов." -#: utils/misc/guc_tables.c:2069 +#: utils/misc/guc_tables.c:2098 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "" "Задаёт предел для списка FROM, при превышении которого применяется GEQO." -#: utils/misc/guc_tables.c:2079 +#: utils/misc/guc_tables.c:2108 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "" "GEQO: оценка усилий для планирования, задающая значения по умолчанию для " "других параметров GEQO." -#: utils/misc/guc_tables.c:2089 +#: utils/misc/guc_tables.c:2118 msgid "GEQO: number of individuals in the population." msgstr "GEQO: число особей в популяции." -#: utils/misc/guc_tables.c:2090 utils/misc/guc_tables.c:2100 +#: utils/misc/guc_tables.c:2119 utils/misc/guc_tables.c:2129 msgid "Zero selects a suitable default value." msgstr "При нуле выбирается подходящее значение по умолчанию." -#: utils/misc/guc_tables.c:2099 +#: utils/misc/guc_tables.c:2128 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: число итераций алгоритма." -#: utils/misc/guc_tables.c:2111 +#: utils/misc/guc_tables.c:2140 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "Задаёт интервал ожидания в блокировке до проверки на взаимоблокировку." -#: utils/misc/guc_tables.c:2122 +#: utils/misc/guc_tables.c:2151 msgid "" "Sets the maximum delay before canceling queries when a hot standby server is " "processing archived WAL data." @@ -31283,7 +32706,7 @@ msgstr "" "Задаёт максимальную задержку до отмены запроса, когда сервер горячего " "резерва обрабатывает данные WAL из архива." -#: utils/misc/guc_tables.c:2133 +#: utils/misc/guc_tables.c:2162 msgid "" "Sets the maximum delay before canceling queries when a hot standby server is " "processing streamed WAL data." @@ -31291,13 +32714,13 @@ msgstr "" "Задаёт максимальную задержку до отмены запроса, когда сервер горячего " "резерва обрабатывает данные WAL из потока." -#: utils/misc/guc_tables.c:2144 +#: utils/misc/guc_tables.c:2173 msgid "Sets the minimum delay for applying changes during recovery." msgstr "" "Задаёт минимальную задержку для применения изменений в процессе " "восстановления." -#: utils/misc/guc_tables.c:2155 +#: utils/misc/guc_tables.c:2184 msgid "" "Sets the maximum interval between WAL receiver status reports to the sending " "server." @@ -31305,21 +32728,21 @@ msgstr "" "Задаёт максимальный интервал между отчётами о состоянии приёмника WAL, " "отправляемыми передающему серверу." -#: utils/misc/guc_tables.c:2166 +#: utils/misc/guc_tables.c:2195 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "" "Задаёт предельное время ожидания для получения данных от передающего сервера." -#: utils/misc/guc_tables.c:2177 +#: utils/misc/guc_tables.c:2206 msgid "Sets the maximum number of concurrent connections." msgstr "Задаёт максимально возможное число подключений." -#: utils/misc/guc_tables.c:2188 +#: utils/misc/guc_tables.c:2217 msgid "Sets the number of connection slots reserved for superusers." msgstr "" "Определяет, сколько слотов подключений забронировано для суперпользователей." -#: utils/misc/guc_tables.c:2198 +#: utils/misc/guc_tables.c:2227 msgid "" "Sets the number of connection slots reserved for roles with privileges of " "pg_use_reserved_connections." @@ -31327,19 +32750,19 @@ msgstr "" "Определяет, сколько слотов подключений забронировано для ролей с правом " "pg_use_reserved_connections." -#: utils/misc/guc_tables.c:2209 +#: utils/misc/guc_tables.c:2238 msgid "Amount of dynamic shared memory reserved at startup." msgstr "Объём динамической разделяемой памяти, резервируемый при запуске." -#: utils/misc/guc_tables.c:2224 +#: utils/misc/guc_tables.c:2253 msgid "Sets the number of shared memory buffers used by the server." msgstr "Задаёт количество буферов в разделяемой памяти, используемых сервером." -#: utils/misc/guc_tables.c:2235 +#: utils/misc/guc_tables.c:2264 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "Задаёт размер пула буферов для операций VACUUM, ANALYZE и автоочистки." -#: utils/misc/guc_tables.c:2246 +#: utils/misc/guc_tables.c:2275 msgid "" "Shows the size of the server's main shared memory area (rounded up to the " "nearest MB)." @@ -31347,29 +32770,90 @@ msgstr "" "Показывает объём основной области общей памяти сервера (округляется до " "ближайшего значения в мегабайтах)." -#: utils/misc/guc_tables.c:2257 +#: utils/misc/guc_tables.c:2286 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "" "Показывает количество огромных страниц, необходимое для основной области " "общей памяти." -#: utils/misc/guc_tables.c:2258 +#: utils/misc/guc_tables.c:2287 msgid "-1 indicates that the value could not be determined." msgstr "Значение -1 показывает, что определить это количество не удалось." -#: utils/misc/guc_tables.c:2268 +#: utils/misc/guc_tables.c:2297 +msgid "" +"Sets the size of the dedicated buffer pool used for the commit timestamp " +"cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования времени " +"фиксации транзакций." + +#: utils/misc/guc_tables.c:2298 utils/misc/guc_tables.c:2353 +#: utils/misc/guc_tables.c:2364 +msgid "" +"Specify 0 to have this value determined as a fraction of shared_buffers." +msgstr "При значении 0 это число определяется как процент от shared_buffers." + +#: utils/misc/guc_tables.c:2308 +msgid "" +"Sets the size of the dedicated buffer pool used for the MultiXact member " +"cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования " +"членства в MultiXact." + +#: utils/misc/guc_tables.c:2319 +msgid "" +"Sets the size of the dedicated buffer pool used for the MultiXact offset " +"cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования " +"смещений MultiXact." + +#: utils/misc/guc_tables.c:2330 +msgid "" +"Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY " +"message cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования " +"сообщений LISTEN/NOTIFY." + +#: utils/misc/guc_tables.c:2341 +msgid "" +"Sets the size of the dedicated buffer pool used for the serializable " +"transaction cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования " +"сериализуемых транзакций." + +#: utils/misc/guc_tables.c:2352 +msgid "" +"Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования " +"подтранзакций." + +#: utils/misc/guc_tables.c:2363 +msgid "" +"Sets the size of the dedicated buffer pool used for the transaction status " +"cache." +msgstr "" +"Задаёт размер выделенного пула буферов, используемых для кеширования статуса " +"транзакций." + +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "Задаёт предельное число временных буферов на один сеанс." -#: utils/misc/guc_tables.c:2279 +#: utils/misc/guc_tables.c:2385 msgid "Sets the TCP port the server listens on." msgstr "Задаёт TCP-порт для работы сервера." -#: utils/misc/guc_tables.c:2289 +#: utils/misc/guc_tables.c:2395 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Задаёт права доступа для Unix-сокета." -#: utils/misc/guc_tables.c:2290 +#: utils/misc/guc_tables.c:2396 msgid "" "Unix-domain sockets use the usual Unix file system permission set. The " "parameter value is expected to be a numeric mode specification in the form " @@ -31381,11 +32865,11 @@ msgstr "" "воспринимаемом системными функциями chmod и umask. (Чтобы использовать " "привычный восьмеричный формат, добавьте в начало ноль (0).)" -#: utils/misc/guc_tables.c:2304 +#: utils/misc/guc_tables.c:2410 msgid "Sets the file permissions for log files." msgstr "Задаёт права доступа к файлам протоколов." -#: utils/misc/guc_tables.c:2305 +#: utils/misc/guc_tables.c:2411 msgid "" "The parameter value is expected to be a numeric mode specification in the " "form accepted by the chmod and umask system calls. (To use the customary " @@ -31395,11 +32879,11 @@ msgstr "" "функциями chmod и umask. (Чтобы использовать привычный восьмеричный формат, " "добавьте в начало ноль (0).)" -#: utils/misc/guc_tables.c:2319 +#: utils/misc/guc_tables.c:2425 msgid "Shows the mode of the data directory." msgstr "Показывает режим каталога данных." -#: utils/misc/guc_tables.c:2320 +#: utils/misc/guc_tables.c:2426 msgid "" "The parameter value is a numeric mode specification in the form accepted by " "the chmod and umask system calls. (To use the customary octal format the " @@ -31409,11 +32893,11 @@ msgstr "" "функциями chmod и umask. (Чтобы использовать привычный восьмеричный формат, " "добавьте в начало ноль (0).)" -#: utils/misc/guc_tables.c:2333 +#: utils/misc/guc_tables.c:2439 msgid "Sets the maximum memory to be used for query workspaces." msgstr "Задаёт предельный объём памяти для рабочих пространств запросов." -#: utils/misc/guc_tables.c:2334 +#: utils/misc/guc_tables.c:2440 msgid "" "This much memory can be used by each internal sort operation and hash table " "before switching to temporary disk files." @@ -31421,19 +32905,19 @@ msgstr "" "Такой объём памяти может использоваться каждой внутренней операцией " "сортировки и таблицей хешей до переключения на временные файлы на диске." -#: utils/misc/guc_tables.c:2346 +#: utils/misc/guc_tables.c:2457 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "Задаёт предельный объём памяти для операций по обслуживанию." -#: utils/misc/guc_tables.c:2347 +#: utils/misc/guc_tables.c:2458 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "Подразумеваются в частности операции VACUUM и CREATE INDEX." -#: utils/misc/guc_tables.c:2357 +#: utils/misc/guc_tables.c:2468 msgid "Sets the maximum memory to be used for logical decoding." msgstr "Задаёт предельный объём памяти для логического декодирования." -#: utils/misc/guc_tables.c:2358 +#: utils/misc/guc_tables.c:2469 msgid "" "This much memory can be used by each internal reorder buffer before spilling " "to disk." @@ -31441,85 +32925,94 @@ msgstr "" "Такой объём памяти может использоваться каждым внутренним буфером " "пересортировки до вымещения данных на диск." -#: utils/misc/guc_tables.c:2374 +#: utils/misc/guc_tables.c:2485 msgid "Sets the maximum stack depth, in kilobytes." msgstr "Задаёт максимальную глубину стека (в КБ)." -#: utils/misc/guc_tables.c:2385 +#: utils/misc/guc_tables.c:2496 msgid "Limits the total size of all temporary files used by each process." msgstr "" "Ограничивает общий размер всех временных файлов, доступный для каждого " "процесса." -#: utils/misc/guc_tables.c:2386 +#: utils/misc/guc_tables.c:2497 msgid "-1 means no limit." msgstr "-1 отключает ограничение." -#: utils/misc/guc_tables.c:2396 +#: utils/misc/guc_tables.c:2507 msgid "Vacuum cost for a page found in the buffer cache." msgstr "Стоимость очистки для страницы, найденной в кеше." -#: utils/misc/guc_tables.c:2406 +#: utils/misc/guc_tables.c:2517 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "Стоимость очистки для страницы, не найденной в кеше." -#: utils/misc/guc_tables.c:2416 +#: utils/misc/guc_tables.c:2527 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "Стоимость очистки для страницы, которая не была \"грязной\"." -#: utils/misc/guc_tables.c:2426 +#: utils/misc/guc_tables.c:2537 msgid "Vacuum cost amount available before napping." msgstr "Суммарная стоимость очистки, при которой нужна передышка." -#: utils/misc/guc_tables.c:2436 +#: utils/misc/guc_tables.c:2547 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "" "Суммарная стоимость очистки, при которой нужна передышка, для автоочистки." -#: utils/misc/guc_tables.c:2446 +#: utils/misc/guc_tables.c:2557 msgid "" "Sets the maximum number of simultaneously open files for each server process." msgstr "" "Задаёт предельное число одновременно открытых файлов для каждого серверного " "процесса." -#: utils/misc/guc_tables.c:2459 +#: utils/misc/guc_tables.c:2570 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "Задаёт предельное число одновременно подготовленных транзакций." -#: utils/misc/guc_tables.c:2470 +#: utils/misc/guc_tables.c:2581 msgid "Sets the minimum OID of tables for tracking locks." msgstr "Задаёт минимальный OID таблиц, для которых отслеживаются блокировки." -#: utils/misc/guc_tables.c:2471 +#: utils/misc/guc_tables.c:2582 msgid "Is used to avoid output on system tables." msgstr "Применяется для игнорирования системных таблиц." -#: utils/misc/guc_tables.c:2480 +#: utils/misc/guc_tables.c:2591 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "Задаёт OID таблицы для безусловного отслеживания блокировок." -#: utils/misc/guc_tables.c:2492 +#: utils/misc/guc_tables.c:2603 msgid "Sets the maximum allowed duration of any statement." msgstr "Задаёт предельную длительность для любого оператора." -#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 -#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 +#: utils/misc/guc_tables.c:2604 utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2626 utils/misc/guc_tables.c:2637 +#: utils/misc/guc_tables.c:2648 msgid "A value of 0 turns off the timeout." msgstr "Нулевое значение отключает тайм-аут." -#: utils/misc/guc_tables.c:2503 +#: utils/misc/guc_tables.c:2614 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "Задаёт максимальную продолжительность ожидания блокировок." -#: utils/misc/guc_tables.c:2514 +#: utils/misc/guc_tables.c:2625 msgid "" "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "" "Задаёт предельно допустимую длительность простоя между запросами в " "транзакции." -#: utils/misc/guc_tables.c:2525 +#: utils/misc/guc_tables.c:2636 +msgid "" +"Sets the maximum allowed duration of any transaction within a session (not a " +"prepared transaction)." +msgstr "" +"Задаёт предельно допустимую длительность для любых транзакций в сеансе " +"(кроме подготовленных)." + +#: utils/misc/guc_tables.c:2647 msgid "" "Sets the maximum allowed idle time between queries, when not in a " "transaction." @@ -31527,37 +33020,37 @@ msgstr "" "Задаёт предельно допустимую длительность простоя между запросами вне " "транзакций." -#: utils/misc/guc_tables.c:2536 +#: utils/misc/guc_tables.c:2658 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "" "Минимальный возраст строк таблицы, при котором VACUUM может их заморозить." -#: utils/misc/guc_tables.c:2546 +#: utils/misc/guc_tables.c:2668 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "" "Возраст, при котором VACUUM должен сканировать всю таблицу с целью " "заморозить кортежи." -#: utils/misc/guc_tables.c:2556 +#: utils/misc/guc_tables.c:2678 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "" "Минимальный возраст, при котором VACUUM будет замораживать MultiXactId в " "строке таблицы." -#: utils/misc/guc_tables.c:2566 +#: utils/misc/guc_tables.c:2688 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "" "Возраст multixact, при котором VACUUM должен сканировать всю таблицу с целью " "заморозить кортежи." -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2698 msgid "" "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "" "Возраст, при котором VACUUM должен включить защиту от зацикливания во " "избежание отказа." -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2707 msgid "" "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound " "outage." @@ -31565,44 +33058,44 @@ msgstr "" "Возраст мультитранзакций, при котором VACUUM должен включить защиту от " "зацикливания во избежание отказа." -#: utils/misc/guc_tables.c:2598 +#: utils/misc/guc_tables.c:2720 msgid "Sets the maximum number of locks per transaction." msgstr "Задаёт предельное число блокировок на транзакцию." -#: utils/misc/guc_tables.c:2599 +#: utils/misc/guc_tables.c:2721 msgid "" "The shared lock table is sized on the assumption that at most " -"max_locks_per_transaction objects per server process or prepared transaction " -"will need to be locked at any one time." +"\"max_locks_per_transaction\" objects per server process or prepared " +"transaction will need to be locked at any one time." msgstr "" "Размер разделяемой таблицы блокировок выбирается из предположения, что в " "один момент времени потребуется заблокировать не более " -"max_locks_per_transaction объектов для одного серверного процесса или " +"\"max_locks_per_transaction\" объектов для одного серверного процесса или " "подготовленной транзакции." -#: utils/misc/guc_tables.c:2610 +#: utils/misc/guc_tables.c:2732 msgid "Sets the maximum number of predicate locks per transaction." msgstr "Задаёт предельное число предикатных блокировок на транзакцию." -#: utils/misc/guc_tables.c:2611 +#: utils/misc/guc_tables.c:2733 msgid "" "The shared predicate lock table is sized on the assumption that at most " -"max_pred_locks_per_transaction objects per server process or prepared " +"\"max_pred_locks_per_transaction\" objects per server process or prepared " "transaction will need to be locked at any one time." msgstr "" "Размер разделяемой таблицы предикатных блокировок выбирается из " "предположения, что в один момент времени потребуется заблокировать не более " -"max_pred_locks_per_transaction объектов для одного серверного процесса или " -"подготовленной транзакции." +"\"max_pred_locks_per_transaction\" объектов для одного серверного процесса " +"или подготовленной транзакции." -#: utils/misc/guc_tables.c:2622 +#: utils/misc/guc_tables.c:2744 msgid "" "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "" "Задаёт максимальное число страниц и кортежей, блокируемых предикатными " "блокировками в одном отношении." -#: utils/misc/guc_tables.c:2623 +#: utils/misc/guc_tables.c:2745 msgid "" "If more than this total of pages and tuples in the same relation are locked " "by a connection, those locks are replaced by a relation-level lock." @@ -31610,13 +33103,13 @@ msgstr "" "Если одним соединением блокируется больше этого общего числа страниц и " "кортежей, эти блокировки заменяются блокировкой на уровне отношения." -#: utils/misc/guc_tables.c:2633 +#: utils/misc/guc_tables.c:2755 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "" "Задаёт максимальное число кортежей, блокируемых предикатными блокировками в " "одной странице." -#: utils/misc/guc_tables.c:2634 +#: utils/misc/guc_tables.c:2756 msgid "" "If more than this number of tuples on the same page are locked by a " "connection, those locks are replaced by a page-level lock." @@ -31624,45 +33117,50 @@ msgstr "" "Если одним соединением блокируется больше этого числа кортежей на одной " "странице, эти блокировки заменяются блокировкой на уровне страницы." -#: utils/misc/guc_tables.c:2644 +#: utils/misc/guc_tables.c:2766 msgid "Sets the maximum allowed time to complete client authentication." msgstr "Ограничивает время, за которое клиент должен пройти аутентификацию." -#: utils/misc/guc_tables.c:2656 +#: utils/misc/guc_tables.c:2778 msgid "" "Sets the amount of time to wait before authentication on connection startup." msgstr "Задаёт время ожидания до аутентификации при установлении соединения." -#: utils/misc/guc_tables.c:2668 +#: utils/misc/guc_tables.c:2790 +msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." +msgstr "" +"Задаёт максимальное число страниц, выделяемых для очереди NOTIFY / LISTEN." + +#: utils/misc/guc_tables.c:2800 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "Размер буфера для упреждающего чтения WAL во время восстановления." -#: utils/misc/guc_tables.c:2669 +#: utils/misc/guc_tables.c:2801 msgid "" "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "" "Максимальный объём WAL, прочитываемый наперёд для осуществления предвыборки " "изменяемых блоков данных." -#: utils/misc/guc_tables.c:2679 +#: utils/misc/guc_tables.c:2811 msgid "Sets the size of WAL files held for standby servers." msgstr "" "Определяет предельный объём файлов WAL, сохраняемых для резервных серверов." -#: utils/misc/guc_tables.c:2690 +#: utils/misc/guc_tables.c:2822 msgid "Sets the minimum size to shrink the WAL to." msgstr "Задаёт минимальный размер WAL при сжатии." -#: utils/misc/guc_tables.c:2702 +#: utils/misc/guc_tables.c:2834 msgid "Sets the WAL size that triggers a checkpoint." msgstr "Задаёт размер WAL, при котором инициируется контрольная точка." -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2846 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "" "Задаёт максимальное время между автоматическими контрольными точками WAL." -#: utils/misc/guc_tables.c:2725 +#: utils/misc/guc_tables.c:2857 msgid "" "Sets the maximum time before warning if checkpoints triggered by WAL volume " "happen too frequently." @@ -31670,7 +33168,7 @@ msgstr "" "Задаёт максимальный интервал, в котором выдаётся предупреждение о том, что " "контрольные точки, вызванные активностью WAL, происходят слишком часто." -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2859 msgid "" "Write a message to the server log if checkpoints caused by the filling of " "WAL segment files happen more frequently than this amount of time. Zero " @@ -31680,49 +33178,54 @@ msgstr "" "контрольными точками, вызванными заполнением файлов сегментов WAL, меньше " "заданного значения. Нулевое значение отключает эти предупреждения." -#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 -#: utils/misc/guc_tables.c:2998 +#: utils/misc/guc_tables.c:2872 utils/misc/guc_tables.c:3090 +#: utils/misc/guc_tables.c:3144 msgid "" "Number of pages after which previously performed writes are flushed to disk." msgstr "" "Число страниц, по достижении которого ранее выполненные операции записи " "сбрасываются на диск." -#: utils/misc/guc_tables.c:2751 +#: utils/misc/guc_tables.c:2883 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "Задаёт число буферов дисковых страниц в разделяемой памяти для WAL." -#: utils/misc/guc_tables.c:2762 +#: utils/misc/guc_tables.c:2884 +msgid "" +"Specify -1 to have this value determined as a fraction of shared_buffers." +msgstr "При значении -1 это число определяется как процент от shared_buffers." + +#: utils/misc/guc_tables.c:2894 msgid "Time between WAL flushes performed in the WAL writer." msgstr "Задержка между сбросом WAL в процессе, записывающем WAL." -#: utils/misc/guc_tables.c:2773 +#: utils/misc/guc_tables.c:2905 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "" "Объём WAL, обработанный пишущим WAL процессом, при котором инициируется " "сброс журнала на диск." -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2916 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "" "Размер нового файла, при достижении которого файл не пишется в WAL, а " "сбрасывается на диск." -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2927 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "" "Задаёт предельное число одновременно работающих процессов передачи WAL." -#: utils/misc/guc_tables.c:2806 +#: utils/misc/guc_tables.c:2938 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "Задаёт предельное число одновременно существующих слотов репликации." -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2948 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "" "Задаёт максимальный размер WAL, который могут резервировать слоты репликации." -#: utils/misc/guc_tables.c:2817 +#: utils/misc/guc_tables.c:2949 msgid "" "Replication slots will be marked as failed, and segments released for " "deletion or recycling, if this much space is occupied by WAL on disk." @@ -31731,11 +33234,11 @@ msgstr "" "помечены как нерабочие, а сегменты будут освобождены для удаления или " "переработки." -#: utils/misc/guc_tables.c:2829 +#: utils/misc/guc_tables.c:2961 msgid "Sets the maximum time to wait for WAL replication." msgstr "Задаёт предельное время ожидания репликации WAL." -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2972 msgid "" "Sets the delay in microseconds between transaction commit and flushing WAL " "to disk." @@ -31743,19 +33246,19 @@ msgstr "" "Задаёт задержку в микросекундах между фиксированием транзакций и сбросом WAL " "на диск." -#: utils/misc/guc_tables.c:2852 +#: utils/misc/guc_tables.c:2984 msgid "" "Sets the minimum number of concurrent open transactions required before " -"performing commit_delay." +"performing \"commit_delay\"." msgstr "" "Задаёт минимальное число одновременно открытых транзакций, которое требуется " -"для применения commit_delay." +"для применения \"commit_delay\"." -#: utils/misc/guc_tables.c:2863 +#: utils/misc/guc_tables.c:2995 msgid "Sets the number of digits displayed for floating-point values." msgstr "Задаёт число выводимых цифр для чисел с плавающей точкой." -#: utils/misc/guc_tables.c:2864 +#: utils/misc/guc_tables.c:2996 msgid "" "This affects real, double precision, and geometric data types. A zero or " "negative parameter value is added to the standard number of digits (FLT_DIG " @@ -31767,7 +33270,7 @@ msgstr "" "(FLT_DIG или DBL_DIG соответственно). Положительное значение включает режим " "точного вывода." -#: utils/misc/guc_tables.c:2876 +#: utils/misc/guc_tables.c:3008 msgid "" "Sets the minimum execution time above which a sample of statements will be " "logged. Sampling is determined by log_statement_sample_rate." @@ -31776,22 +33279,22 @@ msgstr "" "которого он выводится в журнал. Выборка определяется параметром " "log_statement_sample_rate." -#: utils/misc/guc_tables.c:2879 +#: utils/misc/guc_tables.c:3011 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "При 0 выводятся все запросы в выборке; -1 отключает эти сообщения." -#: utils/misc/guc_tables.c:2889 +#: utils/misc/guc_tables.c:3021 msgid "" "Sets the minimum execution time above which all statements will be logged." msgstr "" "Задаёт предельное время выполнения любого оператора, при превышении которого " "он выводится в журнал." -#: utils/misc/guc_tables.c:2891 +#: utils/misc/guc_tables.c:3023 msgid "Zero prints all queries. -1 turns this feature off." msgstr "При 0 выводятся все запросы; -1 отключает эти сообщения." -#: utils/misc/guc_tables.c:2901 +#: utils/misc/guc_tables.c:3033 msgid "" "Sets the minimum execution time above which autovacuum actions will be " "logged." @@ -31799,12 +33302,12 @@ msgstr "" "Задаёт предельное время выполнения автоочистки, при превышении которого эта " "операция протоколируется в журнале." -#: utils/misc/guc_tables.c:2903 +#: utils/misc/guc_tables.c:3035 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "" "При 0 протоколируются все операции автоочистки; -1 отключает эти сообщения." -#: utils/misc/guc_tables.c:2913 +#: utils/misc/guc_tables.c:3045 msgid "" "Sets the maximum length in bytes of data logged for bind parameter values " "when logging statements." @@ -31812,11 +33315,11 @@ msgstr "" "Задаёт максимальный размер данных (в байтах), выводимых в значениях " "привязанных параметров при протоколировании операторов." -#: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 +#: utils/misc/guc_tables.c:3047 utils/misc/guc_tables.c:3059 msgid "-1 to print values in full." msgstr "При -1 значения выводятся полностью." -#: utils/misc/guc_tables.c:2925 +#: utils/misc/guc_tables.c:3057 msgid "" "Sets the maximum length in bytes of data logged for bind parameter values " "when logging statements, on error." @@ -31824,17 +33327,17 @@ msgstr "" "Задаёт максимальный размер данных (в байтах), выводимых в значениях " "привязанных параметров при протоколировании операторов в случае ошибки." -#: utils/misc/guc_tables.c:2937 +#: utils/misc/guc_tables.c:3069 msgid "Background writer sleep time between rounds." msgstr "Время простоя в процессе фоновой записи между подходами." -#: utils/misc/guc_tables.c:2948 +#: utils/misc/guc_tables.c:3080 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "" "Максимальное число LRU-страниц, сбрасываемых за один подход, в процессе " "фоновой записи." -#: utils/misc/guc_tables.c:2971 +#: utils/misc/guc_tables.c:3103 msgid "" "Number of simultaneous requests that can be handled efficiently by the disk " "subsystem." @@ -31842,89 +33345,97 @@ msgstr "" "Число одновременных запросов, которые могут быть эффективно обработаны " "дисковой подсистемой." -#: utils/misc/guc_tables.c:2985 +#: utils/misc/guc_tables.c:3117 msgid "" -"A variant of effective_io_concurrency that is used for maintenance work." +"A variant of \"effective_io_concurrency\" that is used for maintenance work." msgstr "" -"Вариация параметра effective_io_concurrency, предназначенная для операций " -"обслуживания БД." +"Вариация параметра \"effective_io_concurrency\", предназначенная для " +"операций обслуживания БД." -#: utils/misc/guc_tables.c:3011 +#: utils/misc/guc_tables.c:3132 +msgid "Limit on the size of data reads and writes." +msgstr "Предельный размер для операций чтения и записи данных." + +#: utils/misc/guc_tables.c:3157 msgid "Maximum number of concurrent worker processes." msgstr "Задаёт максимально возможное число рабочих процессов." -#: utils/misc/guc_tables.c:3023 +#: utils/misc/guc_tables.c:3169 msgid "Maximum number of logical replication worker processes." msgstr "" "Задаёт максимально возможное число рабочих процессов логической репликации." -#: utils/misc/guc_tables.c:3035 +#: utils/misc/guc_tables.c:3181 msgid "Maximum number of table synchronization workers per subscription." msgstr "" "Задаёт максимально возможное число процессов синхронизации таблиц для одной " "подписки." -#: utils/misc/guc_tables.c:3047 +#: utils/misc/guc_tables.c:3193 msgid "Maximum number of parallel apply workers per subscription." msgstr "" "Задаёт максимально возможное число параллельных применяющих процессов для " "одной подписки." -#: utils/misc/guc_tables.c:3057 +#: utils/misc/guc_tables.c:3203 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "" "Задаёт время задержки перед принудительным переключением на следующий файл " "журнала." -#: utils/misc/guc_tables.c:3069 +#: utils/misc/guc_tables.c:3215 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "" "Задаёт максимальный размер, которого может достичь файл журнала до " "переключения на другой файл." -#: utils/misc/guc_tables.c:3081 +#: utils/misc/guc_tables.c:3227 msgid "Shows the maximum number of function arguments." msgstr "Показывает максимально возможное число аргументов функций." -#: utils/misc/guc_tables.c:3092 +#: utils/misc/guc_tables.c:3238 msgid "Shows the maximum number of index keys." msgstr "Показывает максимально возможное число ключей в индексе." -#: utils/misc/guc_tables.c:3103 +#: utils/misc/guc_tables.c:3249 msgid "Shows the maximum identifier length." msgstr "Показывает максимально возможную длину идентификатора." -#: utils/misc/guc_tables.c:3114 +#: utils/misc/guc_tables.c:3260 msgid "Shows the size of a disk block." msgstr "Показывает размер дискового блока." -#: utils/misc/guc_tables.c:3125 +#: utils/misc/guc_tables.c:3271 msgid "Shows the number of pages per disk file." msgstr "Показывает число страниц в одном файле." -#: utils/misc/guc_tables.c:3136 +#: utils/misc/guc_tables.c:3282 msgid "Shows the block size in the write ahead log." msgstr "Показывает размер блока в журнале WAL." -#: utils/misc/guc_tables.c:3147 +#: utils/misc/guc_tables.c:3293 msgid "" "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "" "Задаёт время задержки перед повторной попыткой обращения к WAL после неудачи." -#: utils/misc/guc_tables.c:3159 +#: utils/misc/guc_tables.c:3305 msgid "Shows the size of write ahead log segments." msgstr "Показывает размер сегментов журнала предзаписи." -#: utils/misc/guc_tables.c:3172 +#: utils/misc/guc_tables.c:3318 +msgid "Time for which WAL summary files should be kept." +msgstr "Время, в течение которого должны сохраняться файлы обобщения WAL." + +#: utils/misc/guc_tables.c:3331 msgid "Time to sleep between autovacuum runs." msgstr "Время простоя между запусками автоочистки." -#: utils/misc/guc_tables.c:3182 +#: utils/misc/guc_tables.c:3341 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "Минимальное число изменений или удалений кортежей, вызывающее очистку." -#: utils/misc/guc_tables.c:3191 +#: utils/misc/guc_tables.c:3350 msgid "" "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert " "vacuums." @@ -31932,27 +33443,27 @@ msgstr "" "Минимальное число добавлений кортежей, вызывающее очистку; при -1 такая " "очистка отключается." -#: utils/misc/guc_tables.c:3200 +#: utils/misc/guc_tables.c:3359 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "" "Минимальное число добавлений, изменений или удалений кортежей, вызывающее " "анализ." -#: utils/misc/guc_tables.c:3210 +#: utils/misc/guc_tables.c:3369 msgid "" "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "" "Возраст, при котором необходима автоочистка таблицы для предотвращения " "зацикливания ID транзакций." -#: utils/misc/guc_tables.c:3222 +#: utils/misc/guc_tables.c:3381 msgid "" "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "" "Возраст multixact, при котором необходима автоочистка таблицы для " "предотвращения зацикливания multixact." -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3391 msgid "" "Sets the maximum number of simultaneously running autovacuum worker " "processes." @@ -31960,65 +33471,53 @@ msgstr "" "Задаёт предельное число одновременно выполняющихся рабочих процессов " "автоочистки." -#: utils/misc/guc_tables.c:3242 +#: utils/misc/guc_tables.c:3401 msgid "" "Sets the maximum number of parallel processes per maintenance operation." msgstr "" "Задаёт максимальное число параллельных процессов на одну операцию " "обслуживания." -#: utils/misc/guc_tables.c:3252 +#: utils/misc/guc_tables.c:3411 msgid "Sets the maximum number of parallel processes per executor node." msgstr "Задаёт максимальное число параллельных процессов на узел исполнителя." -#: utils/misc/guc_tables.c:3263 +#: utils/misc/guc_tables.c:3422 msgid "" "Sets the maximum number of parallel workers that can be active at one time." msgstr "" -"Задаёт максимальное число параллельных процессов, которые могут быть активны " -"одновременно." +"Задаёт максимальное число параллельных исполнителей, которые могут быть " +"активны одновременно." -#: utils/misc/guc_tables.c:3274 +#: utils/misc/guc_tables.c:3433 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "" "Задаёт предельный объём памяти для каждого рабочего процесса автоочистки." -#: utils/misc/guc_tables.c:3285 -msgid "" -"Time before a snapshot is too old to read pages changed after the snapshot " -"was taken." -msgstr "" -"Срок, по истечении которого снимок считается слишком старым для получения " -"страниц, изменённых после создания снимка." - -#: utils/misc/guc_tables.c:3286 -msgid "A value of -1 disables this feature." -msgstr "Значение -1 отключает это поведение." - -#: utils/misc/guc_tables.c:3296 +#: utils/misc/guc_tables.c:3444 msgid "Time between issuing TCP keepalives." msgstr "Интервал между TCP-пакетами пульса (keep-alive)." -#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 -#: utils/misc/guc_tables.c:3432 +#: utils/misc/guc_tables.c:3445 utils/misc/guc_tables.c:3456 +#: utils/misc/guc_tables.c:3580 msgid "A value of 0 uses the system default." msgstr "При нулевом значении действует системный параметр." -#: utils/misc/guc_tables.c:3307 +#: utils/misc/guc_tables.c:3455 msgid "Time between TCP keepalive retransmits." msgstr "Интервал между повторениями TCP-пакетов пульса (keep-alive)." -#: utils/misc/guc_tables.c:3318 +#: utils/misc/guc_tables.c:3466 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "" "Повторное согласование SSL более не поддерживается; единственное допустимое " "значение - 0." -#: utils/misc/guc_tables.c:3329 +#: utils/misc/guc_tables.c:3477 msgid "Maximum number of TCP keepalive retransmits." msgstr "Максимальное число повторений TCP-пакетов пульса (keep-alive)." -#: utils/misc/guc_tables.c:3330 +#: utils/misc/guc_tables.c:3478 msgid "" "Number of consecutive keepalive retransmits that can be lost before a " "connection is considered dead. A value of 0 uses the system default." @@ -32027,15 +33526,15 @@ msgstr "" "чем соединение будет считаться пропавшим. При нулевом значении действует " "системный параметр." -#: utils/misc/guc_tables.c:3341 +#: utils/misc/guc_tables.c:3489 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "Ограничивает результат точного поиска с использованием GIN." -#: utils/misc/guc_tables.c:3352 +#: utils/misc/guc_tables.c:3500 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "Подсказывает планировщику примерный общий размер кешей данных." -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3501 msgid "" "That is, the total size of the caches (kernel cache and shared buffers) used " "for PostgreSQL data files. This is measured in disk pages, which are " @@ -32045,12 +33544,12 @@ msgstr "" "попадают файлы данных PostgreSQL. Размер задаётся в дисковых страницах " "(обычно это 8 КБ)." -#: utils/misc/guc_tables.c:3364 +#: utils/misc/guc_tables.c:3512 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "" "Задаёт минимальный объём данных в таблице для параллельного сканирования." -#: utils/misc/guc_tables.c:3365 +#: utils/misc/guc_tables.c:3513 msgid "" "If the planner estimates that it will read a number of table pages too small " "to reach this limit, a parallel scan will not be considered." @@ -32059,12 +33558,12 @@ msgstr "" "задано этим ограничением, он исключает параллельное сканирование из " "рассмотрения." -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3523 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "" "Задаёт минимальный объём данных в индексе для параллельного сканирования." -#: utils/misc/guc_tables.c:3376 +#: utils/misc/guc_tables.c:3524 msgid "" "If the planner estimates that it will read a number of index pages too small " "to reach this limit, a parallel scan will not be considered." @@ -32073,68 +33572,68 @@ msgstr "" "задано этим ограничением, он исключает параллельное сканирование из " "рассмотрения." -#: utils/misc/guc_tables.c:3387 +#: utils/misc/guc_tables.c:3535 msgid "Shows the server version as an integer." msgstr "Показывает версию сервера в виде целого числа." -#: utils/misc/guc_tables.c:3398 +#: utils/misc/guc_tables.c:3546 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "" "Фиксирует в протоколе превышение временными файлами заданного размера (в КБ)." -#: utils/misc/guc_tables.c:3399 +#: utils/misc/guc_tables.c:3547 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "" "При 0 отмечаются все файлы; при -1 эти сообщения отключаются (по умолчанию)." -#: utils/misc/guc_tables.c:3409 +#: utils/misc/guc_tables.c:3557 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "Задаёт размер, резервируемый для pg_stat_activity.query (в байтах)." -#: utils/misc/guc_tables.c:3420 +#: utils/misc/guc_tables.c:3568 msgid "Sets the maximum size of the pending list for GIN index." msgstr "Задаёт максимальный размер списка-очереди для GIN-индекса." -#: utils/misc/guc_tables.c:3431 +#: utils/misc/guc_tables.c:3579 msgid "TCP user timeout." msgstr "Пользовательский таймаут TCP." -#: utils/misc/guc_tables.c:3442 +#: utils/misc/guc_tables.c:3590 msgid "The size of huge page that should be requested." msgstr "Запрашиваемый размер огромных страниц." -#: utils/misc/guc_tables.c:3453 +#: utils/misc/guc_tables.c:3601 msgid "Aggressively flush system caches for debugging purposes." msgstr "Включает агрессивный сброс системных кешей для целей отладки." -#: utils/misc/guc_tables.c:3476 +#: utils/misc/guc_tables.c:3624 msgid "" "Sets the time interval between checks for disconnection while running " "queries." msgstr "" "Задаёт интервал между проверками подключения во время выполнения запросов." -#: utils/misc/guc_tables.c:3487 +#: utils/misc/guc_tables.c:3635 msgid "Time between progress updates for long-running startup operations." msgstr "" "Интервал между обновлениями состояния длительных операций, выполняемых при " "запуске." -#: utils/misc/guc_tables.c:3489 +#: utils/misc/guc_tables.c:3637 msgid "0 turns this feature off." msgstr "При 0 эта функциональность отключается." -#: utils/misc/guc_tables.c:3499 +#: utils/misc/guc_tables.c:3647 msgid "Sets the iteration count for SCRAM secret generation." msgstr "Задаёт количество итераций для формирования секрета SCRAM." -#: utils/misc/guc_tables.c:3519 +#: utils/misc/guc_tables.c:3667 msgid "" "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "" "Задаёт для планировщика ориентир стоимости последовательного чтения страницы." -#: utils/misc/guc_tables.c:3530 +#: utils/misc/guc_tables.c:3678 msgid "" "Sets the planner's estimate of the cost of a nonsequentially fetched disk " "page." @@ -32142,13 +33641,13 @@ msgstr "" "Задаёт для планировщика ориентир стоимости непоследовательного чтения " "страницы." -#: utils/misc/guc_tables.c:3541 +#: utils/misc/guc_tables.c:3689 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "" "Задаёт для планировщика ориентир стоимости обработки каждого кортежа " "(строки)." -#: utils/misc/guc_tables.c:3552 +#: utils/misc/guc_tables.c:3700 msgid "" "Sets the planner's estimate of the cost of processing each index entry " "during an index scan." @@ -32156,7 +33655,7 @@ msgstr "" "Задаёт для планировщика ориентир стоимости обработки каждого элемента " "индекса в процессе сканирования индекса." -#: utils/misc/guc_tables.c:3563 +#: utils/misc/guc_tables.c:3711 msgid "" "Sets the planner's estimate of the cost of processing each operator or " "function call." @@ -32164,7 +33663,7 @@ msgstr "" "Задаёт для планировщика ориентир стоимости обработки каждого оператора или " "вызова функции." -#: utils/misc/guc_tables.c:3574 +#: utils/misc/guc_tables.c:3722 msgid "" "Sets the planner's estimate of the cost of passing each tuple (row) from " "worker to leader backend." @@ -32172,7 +33671,7 @@ msgstr "" "Задаёт для планировщика ориентир стоимости передачи каждого кортежа (строки) " "ведущему процессу от рабочего." -#: utils/misc/guc_tables.c:3585 +#: utils/misc/guc_tables.c:3733 msgid "" "Sets the planner's estimate of the cost of starting up worker processes for " "parallel query." @@ -32180,40 +33679,40 @@ msgstr "" "Задаёт для планировщика ориентир стоимости запуска рабочих процессов для " "параллельного выполнения запроса." -#: utils/misc/guc_tables.c:3597 +#: utils/misc/guc_tables.c:3745 msgid "Perform JIT compilation if query is more expensive." msgstr "Стоимость запроса, при превышении которой производится JIT-компиляция." -#: utils/misc/guc_tables.c:3598 +#: utils/misc/guc_tables.c:3746 msgid "-1 disables JIT compilation." msgstr "-1 отключает JIT-компиляцию." -#: utils/misc/guc_tables.c:3608 +#: utils/misc/guc_tables.c:3756 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "" "Стоимость запроса, при превышении которой оптимизируются JIT-" "скомпилированные функции." -#: utils/misc/guc_tables.c:3609 +#: utils/misc/guc_tables.c:3757 msgid "-1 disables optimization." msgstr "-1 отключает оптимизацию." -#: utils/misc/guc_tables.c:3619 +#: utils/misc/guc_tables.c:3767 msgid "Perform JIT inlining if query is more expensive." msgstr "Стоимость запроса, при которой выполняется встраивание JIT." -#: utils/misc/guc_tables.c:3620 +#: utils/misc/guc_tables.c:3768 msgid "-1 disables inlining." msgstr "-1 отключает встраивание кода." -#: utils/misc/guc_tables.c:3630 +#: utils/misc/guc_tables.c:3778 msgid "" "Sets the planner's estimate of the fraction of a cursor's rows that will be " "retrieved." msgstr "" "Задаёт для планировщика ориентир доли требуемых строк курсора в общем числе." -#: utils/misc/guc_tables.c:3642 +#: utils/misc/guc_tables.c:3790 msgid "" "Sets the planner's estimate of the average size of a recursive query's " "working table." @@ -32221,37 +33720,37 @@ msgstr "" "Задаёт для планировщика ориентир среднего размера рабочей таблицы в " "рекурсивном запросе." -#: utils/misc/guc_tables.c:3654 +#: utils/misc/guc_tables.c:3802 msgid "GEQO: selective pressure within the population." msgstr "GEQO: селективное давление в популяции." -#: utils/misc/guc_tables.c:3665 +#: utils/misc/guc_tables.c:3813 msgid "GEQO: seed for random path selection." msgstr "GEQO: отправное значение для случайного выбора пути." -#: utils/misc/guc_tables.c:3676 -msgid "Multiple of work_mem to use for hash tables." -msgstr "Множитель work_mem, определяющий объём памяти для хеш-таблиц." +#: utils/misc/guc_tables.c:3824 +msgid "Multiple of \"work_mem\" to use for hash tables." +msgstr "Множитель \"work_mem\", определяющий объём памяти для хеш-таблиц." -#: utils/misc/guc_tables.c:3687 +#: utils/misc/guc_tables.c:3835 msgid "Multiple of the average buffer usage to free per round." msgstr "" "Множитель для среднего числа использованных буферов, определяющий число " "буферов, освобождаемых за один подход." -#: utils/misc/guc_tables.c:3697 +#: utils/misc/guc_tables.c:3845 msgid "Sets the seed for random-number generation." msgstr "Задаёт отправное значение для генератора случайных чисел." -#: utils/misc/guc_tables.c:3708 +#: utils/misc/guc_tables.c:3856 msgid "Vacuum cost delay in milliseconds." msgstr "Задержка очистки (в миллисекундах)." -#: utils/misc/guc_tables.c:3719 +#: utils/misc/guc_tables.c:3867 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "Задержка очистки для автоочистки (в миллисекундах)." -#: utils/misc/guc_tables.c:3730 +#: utils/misc/guc_tables.c:3878 msgid "" "Number of tuple updates or deletes prior to vacuum as a fraction of " "reltuples." @@ -32259,13 +33758,13 @@ msgstr "" "Отношение числа обновлений или удалений кортежей к reltuples, определяющее " "потребность в очистке." -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3888 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "" "Отношение числа добавлений кортежей к reltuples, определяющее потребность в " "очистке." -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3898 msgid "" "Number of tuple inserts, updates, or deletes prior to analyze as a fraction " "of reltuples." @@ -32273,7 +33772,7 @@ msgstr "" "Отношение числа добавлений, обновлений или удалений кортежей к reltuples, " "определяющее потребность в анализе." -#: utils/misc/guc_tables.c:3760 +#: utils/misc/guc_tables.c:3908 msgid "" "Time spent flushing dirty buffers during checkpoint, as fraction of " "checkpoint interval." @@ -32281,25 +33780,26 @@ msgstr "" "Отношение продолжительности сброса \"грязных\" буферов во время контрольной " "точки к интервалу контрольных точек." -#: utils/misc/guc_tables.c:3770 -msgid "Fraction of statements exceeding log_min_duration_sample to be logged." +#: utils/misc/guc_tables.c:3918 +msgid "" +"Fraction of statements exceeding \"log_min_duration_sample\" to be logged." msgstr "" "Доля записываемых в журнал операторов с длительностью, превышающей " -"log_min_duration_sample." +"\"log_min_duration_sample\"." -#: utils/misc/guc_tables.c:3771 +#: utils/misc/guc_tables.c:3919 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "" "Может задаваться значением от 0.0 (не записывать никакие операторы) и 1.0 " "(записывать все)." -#: utils/misc/guc_tables.c:3780 +#: utils/misc/guc_tables.c:3928 msgid "Sets the fraction of transactions from which to log all statements." msgstr "" "Задаёт долю транзакций, все операторы которых будут записываться в журнал " "сервера." -#: utils/misc/guc_tables.c:3781 +#: utils/misc/guc_tables.c:3929 msgid "" "Use a value between 0.0 (never log) and 1.0 (log all statements for all " "transactions)." @@ -32307,48 +33807,48 @@ msgstr "" "Значение 0.0 означает — не записывать никакие транзакции, а значение 1.0 — " "записывать все операторы всех транзакций." -#: utils/misc/guc_tables.c:3800 +#: utils/misc/guc_tables.c:3948 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "Задаёт команду оболочки, вызываемую для архивации файла WAL." -#: utils/misc/guc_tables.c:3801 +#: utils/misc/guc_tables.c:3949 msgid "This is used only if \"archive_library\" is not set." msgstr "Это параметр используется, только если не задан \"archive_library\"." -#: utils/misc/guc_tables.c:3810 +#: utils/misc/guc_tables.c:3958 msgid "Sets the library that will be called to archive a WAL file." msgstr "Задаёт библиотеку, вызываемую для архивации файла WAL." -#: utils/misc/guc_tables.c:3811 +#: utils/misc/guc_tables.c:3959 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "" "Пустая строка указывает, что должен использоваться параметр " "\"archive_command\"." -#: utils/misc/guc_tables.c:3820 +#: utils/misc/guc_tables.c:3968 msgid "" "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "" "Задаёт команду оболочки, которая будет вызываться для извлечения из архива " "файла WAL." -#: utils/misc/guc_tables.c:3830 +#: utils/misc/guc_tables.c:3978 msgid "Sets the shell command that will be executed at every restart point." msgstr "" "Задаёт команду оболочки, которая будет выполняться при каждой точке " "перезапуска." -#: utils/misc/guc_tables.c:3840 +#: utils/misc/guc_tables.c:3988 msgid "" "Sets the shell command that will be executed once at the end of recovery." msgstr "" "Задаёт команду оболочки, которая будет выполняться в конце восстановления." -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:3998 msgid "Specifies the timeline to recover into." msgstr "Указывает линию времени для выполнения восстановления." -#: utils/misc/guc_tables.c:3860 +#: utils/misc/guc_tables.c:4008 msgid "" "Set to \"immediate\" to end recovery as soon as a consistent state is " "reached." @@ -32356,24 +33856,24 @@ msgstr "" "Задайте значение \"immediate\", чтобы восстановление остановилось сразу " "после достижения согласованного состояния." -#: utils/misc/guc_tables.c:3869 +#: utils/misc/guc_tables.c:4017 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "" "Задаёт идентификатор транзакции, вплоть до которой будет производиться " "восстановление." -#: utils/misc/guc_tables.c:3878 +#: utils/misc/guc_tables.c:4026 msgid "Sets the time stamp up to which recovery will proceed." msgstr "" "Задаёт момент времени, вплоть до которого будет производиться восстановление." -#: utils/misc/guc_tables.c:3887 +#: utils/misc/guc_tables.c:4035 msgid "Sets the named restore point up to which recovery will proceed." msgstr "" "Задаёт именованную точку восстановления, до которой будет производиться " "восстановление." -#: utils/misc/guc_tables.c:3896 +#: utils/misc/guc_tables.c:4044 msgid "" "Sets the LSN of the write-ahead log location up to which recovery will " "proceed." @@ -32381,61 +33881,61 @@ msgstr "" "Задаёт в виде LSN позицию в журнале предзаписи, до которой будет " "производиться восстановление." -#: utils/misc/guc_tables.c:3906 +#: utils/misc/guc_tables.c:4054 msgid "Sets the connection string to be used to connect to the sending server." msgstr "" "Задаёт строку соединения, которая будет использоваться для подключения к " "передающему серверу." -#: utils/misc/guc_tables.c:3917 +#: utils/misc/guc_tables.c:4065 msgid "Sets the name of the replication slot to use on the sending server." msgstr "" "Задаёт имя слота репликации, который будет использоваться на передающем " "сервере." -#: utils/misc/guc_tables.c:3927 +#: utils/misc/guc_tables.c:4075 msgid "Sets the client's character set encoding." msgstr "Задаёт кодировку символов, используемую клиентом." -#: utils/misc/guc_tables.c:3938 +#: utils/misc/guc_tables.c:4086 msgid "Controls information prefixed to each log line." msgstr "Определяет содержимое префикса каждой строки протокола." -#: utils/misc/guc_tables.c:3939 +#: utils/misc/guc_tables.c:4087 msgid "If blank, no prefix is used." msgstr "При пустом значении префикс также отсутствует." -#: utils/misc/guc_tables.c:3948 +#: utils/misc/guc_tables.c:4096 msgid "Sets the time zone to use in log messages." msgstr "Задаёт часовой пояс для вывода времени в сообщениях протокола." -#: utils/misc/guc_tables.c:3958 +#: utils/misc/guc_tables.c:4106 msgid "Sets the display format for date and time values." msgstr "Устанавливает формат вывода дат и времени." -#: utils/misc/guc_tables.c:3959 +#: utils/misc/guc_tables.c:4107 msgid "Also controls interpretation of ambiguous date inputs." msgstr "Также помогает разбирать неоднозначно заданные вводимые даты." -#: utils/misc/guc_tables.c:3970 +#: utils/misc/guc_tables.c:4118 msgid "Sets the default table access method for new tables." msgstr "Задаёт табличный метод доступа по умолчанию для новых таблиц." -#: utils/misc/guc_tables.c:3981 +#: utils/misc/guc_tables.c:4129 msgid "Sets the default tablespace to create tables and indexes in." msgstr "" "Задаёт табличное пространство по умолчанию для новых таблиц и индексов." -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4130 msgid "An empty string selects the database's default tablespace." msgstr "При пустом значении используется табличное пространство базы данных." -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4140 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "" "Задаёт табличное пространство(а) для временных таблиц и файлов сортировки." -#: utils/misc/guc_tables.c:4003 +#: utils/misc/guc_tables.c:4151 msgid "" "Sets whether a CREATEROLE user automatically grants the role to themselves, " "and with which options." @@ -32443,11 +33943,11 @@ msgstr "" "Определяет, будет ли пользователь CREATEROLE автоматически включать себя в " "создаваемую роль и с какими параметрами." -#: utils/misc/guc_tables.c:4015 +#: utils/misc/guc_tables.c:4163 msgid "Sets the path for dynamically loadable modules." msgstr "Задаёт путь для динамически загружаемых модулей." -#: utils/misc/guc_tables.c:4016 +#: utils/misc/guc_tables.c:4164 msgid "" "If a dynamically loadable module needs to be opened and the specified name " "does not have a directory component (i.e., the name does not contain a " @@ -32457,71 +33957,71 @@ msgstr "" "указан путь (нет символа '/'), система будет искать этот файл в заданном " "пути." -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4177 msgid "Sets the location of the Kerberos server key file." msgstr "Задаёт размещение файла с ключом Kerberos для данного сервера." -#: utils/misc/guc_tables.c:4040 +#: utils/misc/guc_tables.c:4188 msgid "Sets the Bonjour service name." msgstr "Задаёт название службы Bonjour." -#: utils/misc/guc_tables.c:4050 +#: utils/misc/guc_tables.c:4198 msgid "Sets the language in which messages are displayed." msgstr "Задаёт язык выводимых сообщений." -#: utils/misc/guc_tables.c:4060 +#: utils/misc/guc_tables.c:4208 msgid "Sets the locale for formatting monetary amounts." msgstr "Задаёт локаль для форматирования денежных сумм." -#: utils/misc/guc_tables.c:4070 +#: utils/misc/guc_tables.c:4218 msgid "Sets the locale for formatting numbers." msgstr "Задаёт локаль для форматирования чисел." -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4228 msgid "Sets the locale for formatting date and time values." msgstr "Задаёт локаль для форматирования дат и времени." -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4238 msgid "Lists shared libraries to preload into each backend." msgstr "" "Список разделяемых библиотек, заранее загружаемых в каждый обслуживающий " "процесс." -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4249 msgid "Lists shared libraries to preload into server." msgstr "Список разделяемых библиотек, заранее загружаемых в память сервера." -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4260 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "" "Список непривилегированных разделяемых библиотек, заранее загружаемых в " "каждый обслуживающий процесс." -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4271 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "Задаёт порядок просмотра схемы при поиске неполных имён." -#: utils/misc/guc_tables.c:4135 +#: utils/misc/guc_tables.c:4283 msgid "Shows the server (database) character set encoding." msgstr "Показывает кодировку символов сервера (базы данных)." -#: utils/misc/guc_tables.c:4147 +#: utils/misc/guc_tables.c:4295 msgid "Shows the server version." msgstr "Показывает версию сервера." -#: utils/misc/guc_tables.c:4159 +#: utils/misc/guc_tables.c:4307 msgid "Sets the current role." msgstr "Задаёт текущую роль." -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4319 msgid "Sets the session user name." msgstr "Задаёт имя пользователя в сеансе." -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4330 msgid "Sets the destination for server log output." msgstr "Определяет, куда будет выводиться протокол сервера." -#: utils/misc/guc_tables.c:4183 +#: utils/misc/guc_tables.c:4331 msgid "" "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", " "\"jsonlog\", and \"eventlog\", depending on the platform." @@ -32529,24 +34029,24 @@ msgstr "" "Значение может включать сочетание слов \"stderr\", \"syslog\", \"csvlog\", " "\"jsonlog\" и \"eventlog\", в зависимости от платформы." -#: utils/misc/guc_tables.c:4194 +#: utils/misc/guc_tables.c:4342 msgid "Sets the destination directory for log files." msgstr "Задаёт целевой каталог для файлов протоколов." -#: utils/misc/guc_tables.c:4195 +#: utils/misc/guc_tables.c:4343 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "" "Путь может быть абсолютным или указываться относительно каталога данных." -#: utils/misc/guc_tables.c:4205 +#: utils/misc/guc_tables.c:4353 msgid "Sets the file name pattern for log files." msgstr "Задаёт шаблон имени для файлов протоколов." -#: utils/misc/guc_tables.c:4216 +#: utils/misc/guc_tables.c:4364 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Задаёт имя программы для идентификации сообщений PostgreSQL в syslog." -#: utils/misc/guc_tables.c:4227 +#: utils/misc/guc_tables.c:4375 msgid "" "Sets the application name used to identify PostgreSQL messages in the event " "log." @@ -32554,121 +34054,121 @@ msgstr "" "Задаёт имя приложения для идентификации сообщений PostgreSQL в журнале " "событий." -#: utils/misc/guc_tables.c:4238 +#: utils/misc/guc_tables.c:4386 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "" "Задаёт часовой пояс для вывода и разбора строкового представления времени." -#: utils/misc/guc_tables.c:4248 +#: utils/misc/guc_tables.c:4396 msgid "Selects a file of time zone abbreviations." msgstr "Выбирает файл с сокращёнными названиями часовых поясов." -#: utils/misc/guc_tables.c:4258 +#: utils/misc/guc_tables.c:4406 msgid "Sets the owning group of the Unix-domain socket." msgstr "Задаёт группу-владельца Unix-сокета." -#: utils/misc/guc_tables.c:4259 +#: utils/misc/guc_tables.c:4407 msgid "" "The owning user of the socket is always the user that starts the server." msgstr "" "Собственно владельцем сокета всегда будет пользователь, запускающий сервер." -#: utils/misc/guc_tables.c:4269 +#: utils/misc/guc_tables.c:4417 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Задаёт каталоги, где будут создаваться Unix-сокеты." -#: utils/misc/guc_tables.c:4280 +#: utils/misc/guc_tables.c:4428 msgid "Sets the host name or IP address(es) to listen to." msgstr "Задаёт имя узла или IP-адрес(а) для привязки." -#: utils/misc/guc_tables.c:4295 +#: utils/misc/guc_tables.c:4443 msgid "Sets the server's data directory." msgstr "Определяет каталог данных сервера." -#: utils/misc/guc_tables.c:4306 +#: utils/misc/guc_tables.c:4454 msgid "Sets the server's main configuration file." msgstr "Определяет основной файл конфигурации сервера." -#: utils/misc/guc_tables.c:4317 +#: utils/misc/guc_tables.c:4465 msgid "Sets the server's \"hba\" configuration file." msgstr "Задаёт путь к файлу конфигурации \"hba\"." -#: utils/misc/guc_tables.c:4328 +#: utils/misc/guc_tables.c:4476 msgid "Sets the server's \"ident\" configuration file." msgstr "Задаёт путь к файлу конфигурации \"ident\"." -#: utils/misc/guc_tables.c:4339 +#: utils/misc/guc_tables.c:4487 msgid "Writes the postmaster PID to the specified file." msgstr "Файл, в который будет записан код процесса postmaster." -#: utils/misc/guc_tables.c:4350 +#: utils/misc/guc_tables.c:4498 msgid "Shows the name of the SSL library." msgstr "Показывает имя библиотеки SSL." -#: utils/misc/guc_tables.c:4365 +#: utils/misc/guc_tables.c:4513 msgid "Location of the SSL server certificate file." msgstr "Размещение файла сертификата сервера для SSL." -#: utils/misc/guc_tables.c:4375 +#: utils/misc/guc_tables.c:4523 msgid "Location of the SSL server private key file." msgstr "Размещение файла с закрытым ключом сервера для SSL." -#: utils/misc/guc_tables.c:4385 +#: utils/misc/guc_tables.c:4533 msgid "Location of the SSL certificate authority file." msgstr "Размещение файла центра сертификации для SSL." -#: utils/misc/guc_tables.c:4395 +#: utils/misc/guc_tables.c:4543 msgid "Location of the SSL certificate revocation list file." msgstr "Размещение файла со списком отзыва сертификатов для SSL." -#: utils/misc/guc_tables.c:4405 +#: utils/misc/guc_tables.c:4553 msgid "Location of the SSL certificate revocation list directory." msgstr "Размещение каталога со списками отзыва сертификатов для SSL." -#: utils/misc/guc_tables.c:4415 +#: utils/misc/guc_tables.c:4563 msgid "" "Number of synchronous standbys and list of names of potential synchronous " "ones." msgstr "" "Количество потенциально синхронных резервных серверов и список их имён." -#: utils/misc/guc_tables.c:4426 +#: utils/misc/guc_tables.c:4574 msgid "Sets default text search configuration." msgstr "Задаёт конфигурацию текстового поиска по умолчанию." -#: utils/misc/guc_tables.c:4436 +#: utils/misc/guc_tables.c:4584 msgid "Sets the list of allowed SSL ciphers." msgstr "Задаёт список допустимых алгоритмов шифрования для SSL." -#: utils/misc/guc_tables.c:4451 +#: utils/misc/guc_tables.c:4599 msgid "Sets the curve to use for ECDH." msgstr "Задаёт кривую для ECDH." -#: utils/misc/guc_tables.c:4466 +#: utils/misc/guc_tables.c:4614 msgid "Location of the SSL DH parameters file." msgstr "Размещение файла с параметрами SSL DH." -#: utils/misc/guc_tables.c:4477 +#: utils/misc/guc_tables.c:4625 msgid "Command to obtain passphrases for SSL." msgstr "Команда, позволяющая получить пароль для SSL." -#: utils/misc/guc_tables.c:4488 +#: utils/misc/guc_tables.c:4636 msgid "Sets the application name to be reported in statistics and logs." msgstr "" "Задаёт имя приложения, которое будет выводиться в статистике и протоколах." -#: utils/misc/guc_tables.c:4499 +#: utils/misc/guc_tables.c:4647 msgid "Sets the name of the cluster, which is included in the process title." msgstr "Задаёт имя кластера, которое будет добавляться в название процесса." -#: utils/misc/guc_tables.c:4510 +#: utils/misc/guc_tables.c:4658 msgid "" "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "" "Задаёт перечень менеджеров ресурсов WAL, для которых выполняются проверки " "целостности WAL." -#: utils/misc/guc_tables.c:4511 +#: utils/misc/guc_tables.c:4659 msgid "" "Full-page images will be logged for all data blocks and cross-checked " "against the results of WAL replay." @@ -32676,32 +34176,53 @@ msgstr "" "При этом в журнал будут записываться образы полных страниц для всех блоков " "данных для сверки с результатами воспроизведения WAL." -#: utils/misc/guc_tables.c:4521 +#: utils/misc/guc_tables.c:4669 msgid "JIT provider to use." msgstr "Используемый провайдер JIT." -#: utils/misc/guc_tables.c:4532 +#: utils/misc/guc_tables.c:4680 msgid "Log backtrace for errors in these functions." msgstr "Записывать в журнал стек в случае ошибок в перечисленных функциях." -#: utils/misc/guc_tables.c:4543 +#: utils/misc/guc_tables.c:4691 msgid "Use direct I/O for file access." msgstr "Использовать прямой ввод/вывод для работы с файлами." -#: utils/misc/guc_tables.c:4563 +#: utils/misc/guc_tables.c:4702 +msgid "" +"Lists streaming replication standby server replication slot names that " +"logical WAL sender processes will wait for." +msgstr "" +"Определяет список имён слотов потовой репликации, готовности которых будут " +"ждать процессы передачи логических изменений." + +#: utils/misc/guc_tables.c:4704 +msgid "" +"Logical WAL sender processes will send decoded changes to output plugins " +"only after the specified replication slots have confirmed receiving WAL." +msgstr "" +"Процессы передачи логических изменений из WAL будут передавать " +"декодированные изменения модулям вывода только после того, как указанные " +"слоты репликации подтвердят получение WAL." + +#: utils/misc/guc_tables.c:4716 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "Запрещает доступ к несистемным отношениям указанных видов." + +#: utils/misc/guc_tables.c:4736 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "Определяет, можно ли использовать \"\\'\" в текстовых строках." -#: utils/misc/guc_tables.c:4573 +#: utils/misc/guc_tables.c:4746 msgid "Sets the output format for bytea." msgstr "Задаёт формат вывода данных типа bytea." -#: utils/misc/guc_tables.c:4583 +#: utils/misc/guc_tables.c:4756 msgid "Sets the message levels that are sent to the client." msgstr "Ограничивает уровень сообщений, передаваемых клиенту." -#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 -#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 +#: utils/misc/guc_tables.c:4757 utils/misc/guc_tables.c:4853 +#: utils/misc/guc_tables.c:4864 msgid "" "Each level includes all the levels that follow it. The later the level, the " "fewer messages are sent." @@ -32709,16 +34230,16 @@ msgstr "" "Каждый уровень включает все последующие. Чем выше уровень, тем меньше " "сообщений." -#: utils/misc/guc_tables.c:4594 +#: utils/misc/guc_tables.c:4767 msgid "Enables in-core computation of query identifiers." msgstr "Включает внутреннее вычисление идентификаторов запросов." -#: utils/misc/guc_tables.c:4604 +#: utils/misc/guc_tables.c:4777 msgid "Enables the planner to use constraints to optimize queries." msgstr "" "Разрешает планировщику оптимизировать запросы, полагаясь на ограничения." -#: utils/misc/guc_tables.c:4605 +#: utils/misc/guc_tables.c:4778 msgid "" "Table scans will be skipped if their constraints guarantee that no rows " "match the query." @@ -32726,93 +34247,88 @@ msgstr "" "Сканирование таблицы не будет выполняться, если её ограничения гарантируют, " "что запросу не удовлетворяют никакие строки." -#: utils/misc/guc_tables.c:4616 +#: utils/misc/guc_tables.c:4789 msgid "Sets the default compression method for compressible values." msgstr "Задаёт выбираемый по умолчанию метод сжатия для сжимаемых значений." -#: utils/misc/guc_tables.c:4627 +#: utils/misc/guc_tables.c:4800 msgid "Sets the transaction isolation level of each new transaction." msgstr "Задаёт уровень изоляции транзакций для новых транзакций." -#: utils/misc/guc_tables.c:4637 +#: utils/misc/guc_tables.c:4810 msgid "Sets the current transaction's isolation level." msgstr "Задаёт текущий уровень изоляции транзакций." -#: utils/misc/guc_tables.c:4648 +#: utils/misc/guc_tables.c:4821 msgid "Sets the display format for interval values." msgstr "Задаёт формат отображения для внутренних значений." -#: utils/misc/guc_tables.c:4659 +#: utils/misc/guc_tables.c:4832 msgid "Log level for reporting invalid ICU locale strings." msgstr "Уровень протоколирования сообщений о некорректных строках локалей ICU." -#: utils/misc/guc_tables.c:4669 +#: utils/misc/guc_tables.c:4842 msgid "Sets the verbosity of logged messages." msgstr "Задаёт детализацию протоколируемых сообщений." -#: utils/misc/guc_tables.c:4679 +#: utils/misc/guc_tables.c:4852 msgid "Sets the message levels that are logged." msgstr "Ограничивает уровни протоколируемых сообщений." -#: utils/misc/guc_tables.c:4690 +#: utils/misc/guc_tables.c:4863 msgid "" "Causes all statements generating error at or above this level to be logged." msgstr "" "Включает протоколирование для SQL-операторов, выполненных с ошибкой этого " "или большего уровня." -#: utils/misc/guc_tables.c:4701 +#: utils/misc/guc_tables.c:4874 msgid "Sets the type of statements logged." msgstr "Задаёт тип протоколируемых операторов." -#: utils/misc/guc_tables.c:4711 +#: utils/misc/guc_tables.c:4884 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "Задаёт получателя сообщений, отправляемых в syslog." -#: utils/misc/guc_tables.c:4722 +#: utils/misc/guc_tables.c:4895 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "" "Задаёт режим срабатывания триггеров и правил перезаписи для текущего сеанса." -#: utils/misc/guc_tables.c:4732 +#: utils/misc/guc_tables.c:4905 msgid "Sets the current transaction's synchronization level." msgstr "Задаёт уровень синхронизации текущей транзакции." -#: utils/misc/guc_tables.c:4742 -msgid "Allows archiving of WAL files using archive_command." -msgstr "Разрешает архивацию файлов WAL командой archive_command." +#: utils/misc/guc_tables.c:4915 +msgid "Allows archiving of WAL files using \"archive_command\"." +msgstr "Разрешает архивацию файлов WAL с использованием \"archive_command\"." -#: utils/misc/guc_tables.c:4752 +#: utils/misc/guc_tables.c:4925 msgid "Sets the action to perform upon reaching the recovery target." msgstr "" "Задаёт действие, которое будет выполняться по достижении цели восстановления." -#: utils/misc/guc_tables.c:4762 -msgid "Enables logging of recovery-related debugging information." -msgstr "" -"Включает протоколирование отладочной информации, связанной с репликацией." - -#: utils/misc/guc_tables.c:4779 +#: utils/misc/guc_tables.c:4935 msgid "Collects function-level statistics on database activity." msgstr "Включает сбор статистики активности в БД на уровне функций." -#: utils/misc/guc_tables.c:4790 +#: utils/misc/guc_tables.c:4946 msgid "Sets the consistency of accesses to statistics data." msgstr "Задаёт режим согласования доступа к данным статистики." -#: utils/misc/guc_tables.c:4800 +#: utils/misc/guc_tables.c:4956 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "Сжимать данные записываемых в WAL полных страниц заданным методом." -#: utils/misc/guc_tables.c:4810 +#: utils/misc/guc_tables.c:4966 msgid "Sets the level of information written to the WAL." msgstr "Задаёт уровень информации, записываемой в WAL." -#: utils/misc/guc_tables.c:4820 +#: utils/misc/guc_tables.c:4976 msgid "Selects the dynamic shared memory implementation used." msgstr "Выбирает используемую реализацию динамической разделяемой памяти." -#: utils/misc/guc_tables.c:4830 +#: utils/misc/guc_tables.c:4986 msgid "" "Selects the shared memory implementation used for the main shared memory " "region." @@ -32820,15 +34336,15 @@ msgstr "" "Выбирает реализацию разделяемой памяти для управления основным блоком " "разделяемой памяти." -#: utils/misc/guc_tables.c:4840 +#: utils/misc/guc_tables.c:4996 msgid "Selects the method used for forcing WAL updates to disk." msgstr "Выбирает метод принудительной записи изменений в WAL на диск." -#: utils/misc/guc_tables.c:4850 +#: utils/misc/guc_tables.c:5006 msgid "Sets how binary values are to be encoded in XML." msgstr "Определяет, как должны кодироваться двоичные значения в XML." -#: utils/misc/guc_tables.c:4860 +#: utils/misc/guc_tables.c:5016 msgid "" "Sets whether XML data in implicit parsing and serialization operations is to " "be considered as documents or content fragments." @@ -32836,23 +34352,27 @@ msgstr "" "Определяет, следует ли рассматривать XML-данные в неявных операциях разбора " "и сериализации как документы или как фрагменты содержания." -#: utils/misc/guc_tables.c:4871 +#: utils/misc/guc_tables.c:5027 msgid "Use of huge pages on Linux or Windows." msgstr "Включает использование огромных страниц в Linux и в Windows." -#: utils/misc/guc_tables.c:4881 +#: utils/misc/guc_tables.c:5037 +msgid "Indicates the status of huge pages." +msgstr "Показывает состояние использования огромных страниц." + +#: utils/misc/guc_tables.c:5048 msgid "Prefetch referenced blocks during recovery." msgstr "Осуществлять предвыборку изменяемых блоков в процессе восстановления." -#: utils/misc/guc_tables.c:4882 +#: utils/misc/guc_tables.c:5049 msgid "Look ahead in the WAL to find references to uncached data." msgstr "Прочитывать WAL наперёд для вычисления ещё не кешированных блоков." -#: utils/misc/guc_tables.c:4891 +#: utils/misc/guc_tables.c:5058 msgid "Forces the planner's use parallel query nodes." msgstr "Принудительно включает в планировщике узлы параллельного выполнения." -#: utils/misc/guc_tables.c:4892 +#: utils/misc/guc_tables.c:5059 msgid "" "This can be useful for testing the parallel query infrastructure by forcing " "the planner to generate plans that contain nodes that perform tuple " @@ -32862,15 +34382,15 @@ msgstr "" "выполнения, так как планировщик будет строить планы с передачей кортежей " "между параллельными исполнителями и основным процессом." -#: utils/misc/guc_tables.c:4904 +#: utils/misc/guc_tables.c:5071 msgid "Chooses the algorithm for encrypting passwords." msgstr "Выбирает алгоритм шифрования паролей." -#: utils/misc/guc_tables.c:4914 +#: utils/misc/guc_tables.c:5081 msgid "Controls the planner's selection of custom or generic plan." msgstr "Управляет выбором специализированных или общих планов планировщиком." -#: utils/misc/guc_tables.c:4915 +#: utils/misc/guc_tables.c:5082 msgid "" "Prepared statements can have custom and generic plans, and the planner will " "attempt to choose which is better. This can be set to override the default " @@ -32880,30 +34400,30 @@ msgstr "" "планы, и планировщик пытается выбрать лучший вариант. Этот параметр " "позволяет переопределить поведение по умолчанию." -#: utils/misc/guc_tables.c:4927 +#: utils/misc/guc_tables.c:5094 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "" "Задаёт минимальную версию протокола SSL/TLS, которая может использоваться." -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5106 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "" "Задаёт максимальную версию протокола SSL/TLS, которая может использоваться." -#: utils/misc/guc_tables.c:4951 +#: utils/misc/guc_tables.c:5118 msgid "" "Sets the method for synchronizing the data directory before crash recovery." msgstr "" "Задаёт метод синхронизации каталога данных перед восстановления после сбоя." -#: utils/misc/guc_tables.c:4960 +#: utils/misc/guc_tables.c:5127 msgid "" "Forces immediate streaming or serialization of changes in large transactions." msgstr "" "Включает непосредственную передачу или сериализацию изменений в больших " "транзакциях." -#: utils/misc/guc_tables.c:4961 +#: utils/misc/guc_tables.c:5128 msgid "" "On the publisher, it allows streaming or serializing each change in logical " "decoding. On the subscriber, it allows serialization of all changes to files " @@ -32921,8 +34441,8 @@ msgstr "" msgid "internal error: unrecognized run-time parameter type\n" msgstr "внутренняя ошибка: нераспознанный тип параметра времени выполнения\n" -#: utils/misc/pg_controldata.c:51 utils/misc/pg_controldata.c:91 -#: utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 +#: utils/misc/pg_controldata.c:50 utils/misc/pg_controldata.c:90 +#: utils/misc/pg_controldata.c:181 utils/misc/pg_controldata.c:222 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "" @@ -32951,12 +34471,12 @@ msgstr "" "Чтобы отключить политику для владельца таблицы, воспользуйтесь командой " "ALTER TABLE NO FORCE ROW LEVEL SECURITY." -#: utils/misc/timeout.c:524 +#: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" msgstr "добавить другие причины тайм-аута нельзя" -#: utils/misc/tzparser.c:60 +#: utils/misc/tzparser.c:61 #, c-format msgid "" "time zone abbreviation \"%s\" is too long (maximum %d characters) in time " @@ -32965,44 +34485,44 @@ msgstr "" "краткое обозначение часового пояса \"%s\" должно содержать меньше символов " "(максимум %d) (файл часовых поясов \"%s\", строка %d)" -#: utils/misc/tzparser.c:72 +#: utils/misc/tzparser.c:73 #, c-format msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "" "смещение часового пояса %d выходит за рамки (файл часовых поясов \"%s\", " "строка %d)" -#: utils/misc/tzparser.c:111 +#: utils/misc/tzparser.c:112 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "" "отсутствует краткое обозначение часового пояса (файл часовых поясов \"%s\", " "строка %d)" -#: utils/misc/tzparser.c:120 +#: utils/misc/tzparser.c:121 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "" "отсутствует смещение часового пояса (файл часовых поясов \"%s\", строка %d)" -#: utils/misc/tzparser.c:132 +#: utils/misc/tzparser.c:133 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "" "смещение часового пояса должно быть числом (файл часовых поясов \"%s\", " "строка %d)" -#: utils/misc/tzparser.c:168 +#: utils/misc/tzparser.c:169 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "ошибка синтаксиса в файле часовых поясов \"%s\", строке %d" -#: utils/misc/tzparser.c:236 +#: utils/misc/tzparser.c:237 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "краткое обозначение часового пояса \"%s\" определено неоднократно" -#: utils/misc/tzparser.c:238 +#: utils/misc/tzparser.c:239 #, c-format msgid "" "Entry in time zone file \"%s\", line %d, conflicts with entry in file " @@ -33011,86 +34531,84 @@ msgstr "" "Запись в файле часовых поясов \"%s\", строке %d, противоречит записи в файле " "\"%s\", строке %d." -#: utils/misc/tzparser.c:300 +#: utils/misc/tzparser.c:301 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "неправильное имя файла часовых поясов: \"%s\"" -#: utils/misc/tzparser.c:313 +#: utils/misc/tzparser.c:314 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "предел вложенности файлов часовых поясов превышен в файле \"%s\"" -#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365 +#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "прочитать файл часовых поясов \"%s\" не удалось: %m" -#: utils/misc/tzparser.c:376 +#: utils/misc/tzparser.c:377 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "слишком длинная строка в файле часовых поясов \"%s\" (строка %d)" -#: utils/misc/tzparser.c:400 +#: utils/misc/tzparser.c:401 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "" "в @INCLUDE не указано имя файла (файл часовых поясов \"%s\", строка %d)" -#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 +#: utils/mmgr/aset.c:452 utils/mmgr/bump.c:184 utils/mmgr/generation.c:216 +#: utils/mmgr/slab.c:371 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "Ошибка при создании контекста памяти \"%s\"." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1350 +#: utils/mmgr/dsa.c:523 utils/mmgr/dsa.c:1364 #, c-format msgid "could not attach to dynamic shared area" msgstr "не удалось подключиться к динамической разделяемой области" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1155 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Ошибка при запросе блока размером %zu в контексте памяти \"%s\"." -#: utils/mmgr/mcxt.c:1210 +#: utils/mmgr/mcxt.c:1299 #, c-format msgid "logging memory contexts of PID %d" msgstr "вывод информации о памяти процесса с PID %d" -#: utils/mmgr/portalmem.c:188 +#: utils/mmgr/portalmem.c:187 #, c-format msgid "cursor \"%s\" already exists" msgstr "курсор \"%s\" уже существует" -#: utils/mmgr/portalmem.c:192 +#: utils/mmgr/portalmem.c:191 #, c-format msgid "closing existing cursor \"%s\"" msgstr "существующий курсор (\"%s\") закрывается" -#: utils/mmgr/portalmem.c:402 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "портал \"%s\" не может быть запущен" -#: utils/mmgr/portalmem.c:480 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "удалить закреплённый портал \"%s\" нельзя" -#: utils/mmgr/portalmem.c:488 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "удалить активный портал \"%s\" нельзя" -#: utils/mmgr/portalmem.c:739 +#: 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:1230 +#: utils/mmgr/portalmem.c:1232 #, c-format msgid "" "cannot perform transaction commands inside a cursor loop that is not read-" @@ -33101,15 +34619,15 @@ msgstr "" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %ld of temporary file" -msgstr "не удалось переместиться к блоку %ld временного файла" +msgid "could not seek to block %lld of temporary file" +msgstr "не удалось переместиться к блоку %lld временного файла" -#: utils/sort/sharedtuplestore.c:467 +#: utils/sort/sharedtuplestore.c:466 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "неожиданный фрагмент в файле общего временного хранилища кортежей" -#: utils/sort/sharedtuplestore.c:549 +#: utils/sort/sharedtuplestore.c:548 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "" @@ -33121,17 +34639,17 @@ msgstr "" msgid "cannot have more than %d runs for an external sort" msgstr "число потоков данных для внешней сортировки не может превышать %d" -#: utils/sort/tuplesortvariants.c:1363 +#: utils/sort/tuplesortvariants.c:1552 #, c-format msgid "could not create unique index \"%s\"" msgstr "создать уникальный индекс \"%s\" не удалось" -#: utils/sort/tuplesortvariants.c:1365 +#: utils/sort/tuplesortvariants.c:1554 #, c-format msgid "Key %s is duplicated." msgstr "Ключ %s дублируется." -#: utils/sort/tuplesortvariants.c:1366 +#: utils/sort/tuplesortvariants.c:1555 #, c-format msgid "Duplicate keys exist." msgstr "Данные содержат дублирующиеся ключи." @@ -33145,32 +34663,32 @@ msgstr "Данные содержат дублирующиеся ключи." msgid "could not seek in tuplestore temporary file" msgstr "не удалось переместиться во временном файле хранилища кортежей" -#: utils/time/snapmgr.c:571 +#: utils/time/snapmgr.c:536 #, c-format msgid "The source transaction is not running anymore." msgstr "Исходная транзакция уже не выполняется." -#: utils/time/snapmgr.c:1166 +#: utils/time/snapmgr.c:1136 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "экспортировать снимок из вложенной транзакции нельзя" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 +#: utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 +#: utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 +#: utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 +#: utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "неверные данные снимка в файле \"%s\"" -#: utils/time/snapmgr.c:1422 +#: utils/time/snapmgr.c:1393 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "команда SET TRANSACTION SNAPSHOT должна выполняться до запросов" -#: utils/time/snapmgr.c:1431 +#: utils/time/snapmgr.c:1402 #, c-format msgid "" "a snapshot-importing transaction must have isolation level SERIALIZABLE or " @@ -33179,12 +34697,17 @@ msgstr "" "транзакция, импортирующая снимок, должна иметь уровень изоляции SERIALIZABLE " "или REPEATABLE READ" -#: utils/time/snapmgr.c:1440 utils/time/snapmgr.c:1449 +#: utils/time/snapmgr.c:1411 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "неверный идентификатор снимка: \"%s\"" -#: utils/time/snapmgr.c:1541 +#: utils/time/snapmgr.c:1426 +#, c-format +msgid "snapshot \"%s\" does not exist" +msgstr "снимок \"%s\" не существует" + +#: utils/time/snapmgr.c:1524 #, c-format msgid "" "a serializable transaction cannot import a snapshot from a non-serializable " @@ -33192,7 +34715,7 @@ msgid "" msgstr "" "сериализуемая транзакция не может импортировать снимок из не сериализуемой" -#: utils/time/snapmgr.c:1545 +#: utils/time/snapmgr.c:1528 #, c-format msgid "" "a non-read-only serializable transaction cannot import a snapshot from a " @@ -33201,279 +34724,294 @@ msgstr "" "сериализуемая транзакция в режиме \"чтение-запись\" не может импортировать " "снимок из транзакции в режиме \"только чтение\"" -#: utils/time/snapmgr.c:1560 +#: utils/time/snapmgr.c:1543 #, c-format msgid "cannot import a snapshot from a different database" msgstr "нельзя импортировать снимок из другой базы данных" -#: gram.y:1197 +#: gram.y:1231 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "вариант UNENCRYPTED PASSWORD более не поддерживается" -#: gram.y:1198 +#: gram.y:1232 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "" "Удалите слово UNENCRYPTED, чтобы сохранить пароль в зашифрованном виде." -#: gram.y:1525 gram.y:1541 +#: gram.y:1559 gram.y:1575 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTS не может включать элементы схемы" -#: gram.y:1693 +#: gram.y:1727 #, c-format msgid "current database cannot be changed" msgstr "сменить текущую базу данных нельзя" -#: gram.y:1826 +#: gram.y:1860 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "" "интервал, задающий часовой пояс, должен иметь точность HOUR или HOUR TO " "MINUTE" -#: gram.y:2443 +#: gram.y:2487 #, c-format msgid "column number must be in range from 1 to %d" msgstr "номер столбца должен быть в диапазоне от 1 до %d" -#: gram.y:3039 +#: gram.y:3083 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "параметр последовательности \"%s\" здесь не поддерживается" -#: gram.y:3068 +#: gram.y:3122 #, c-format msgid "modulus for hash partition provided more than once" msgstr "модуль для хеш-секции указан неоднократно" -#: gram.y:3077 +#: gram.y:3131 #, c-format msgid "remainder for hash partition provided more than once" msgstr "остаток для хеш-секции указан неоднократно" -#: gram.y:3084 +#: gram.y:3138 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "нераспознанное указание ограничения хеш-секции \"%s\"" -#: gram.y:3092 +#: gram.y:3146 #, c-format msgid "modulus for hash partition must be specified" msgstr "необходимо указать модуль для хеш-секции" -#: gram.y:3096 +#: gram.y:3150 #, c-format msgid "remainder for hash partition must be specified" msgstr "необходимо указать остаток для хеш-секции" -#: gram.y:3304 gram.y:3338 +#: gram.y:3358 gram.y:3392 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "указания STDIN/STDOUT несовместимы с PROGRAM" -#: gram.y:3310 +#: gram.y:3364 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "предложение WHERE не допускается с COPY TO" -#: gram.y:3649 gram.y:3656 gram.y:12821 gram.y:12829 +#: gram.y:3712 gram.y:3719 gram.y:13023 gram.y:13031 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "указание GLOBAL при создании временных таблиц устарело" -#: gram.y:3932 +#: gram.y:3995 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "для генерируемого столбца должно указываться GENERATED ALWAYS" -#: gram.y:4315 +#: gram.y:4432 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "список столбцов с %s поддерживается только для действий ON DELETE" -#: gram.y:5027 +#: gram.y:5151 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM более не поддерживается" -#: gram.y:5725 +#: gram.y:5849 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "нераспознанный вариант политики безопасности строк \"%s\"" -#: gram.y:5726 +#: gram.y:5850 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "" "В настоящее время поддерживаются только политики PERMISSIVE и RESTRICTIVE." -#: gram.y:5811 +#: gram.y:5935 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER не поддерживается" -#: gram.y:5848 +#: gram.y:5972 msgid "duplicate trigger events specified" msgstr "события триггера повторяются" -#: gram.y:5997 +#: gram.y:6121 #, c-format msgid "conflicting constraint properties" msgstr "противоречащие характеристики ограничения" -#: gram.y:6096 +#: gram.y:6220 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "оператор CREATE ASSERTION ещё не реализован" -#: gram.y:6504 +#: gram.y:6537 +#, c-format +msgid "dropping an enum value is not implemented" +msgstr "удаление значения из перечисления не поддерживается" + +#: gram.y:6655 #, c-format msgid "RECHECK is no longer required" msgstr "RECHECK более не требуется" -#: gram.y:6505 +#: gram.y:6656 #, c-format msgid "Update your data type." msgstr "Обновите тип данных." -#: gram.y:8378 +#: gram.y:8529 #, c-format msgid "aggregates cannot have output arguments" msgstr "у агрегатных функций не может быть выходных аргументов" -#: gram.y:11054 gram.y:11073 +#: gram.y:11221 gram.y:11240 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "" "предложение WITH CHECK OPTION не поддерживается для рекурсивных представлений" -#: gram.y:12960 +#: gram.y:13162 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "синтаксис LIMIT #,# не поддерживается" -#: gram.y:12961 +#: gram.y:13163 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "Используйте отдельные предложения LIMIT и OFFSET." -#: gram.y:13821 +#: gram.y:14038 #, c-format msgid "only one DEFAULT value is allowed" msgstr "допускается только одно значение DEFAULT" -#: gram.y:13830 +#: gram.y:14047 #, c-format msgid "only one PATH value per column is allowed" msgstr "для столбца допускается только одно значение PATH" -#: gram.y:13839 +#: gram.y:14056 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "" "конфликтующие или избыточные объявления NULL/NOT NULL для столбца \"%s\"" -#: gram.y:13848 +#: gram.y:14065 #, c-format msgid "unrecognized column option \"%s\"" msgstr "нераспознанный параметр столбца \"%s\"" -#: gram.y:14102 +#: gram.y:14147 +#, c-format +msgid "only string constants are supported in JSON_TABLE path specification" +msgstr "в указании пути JSON_TABLE поддерживаются только строковые константы" + +#: gram.y:14469 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "тип float должен иметь точность минимум 1 бит" -#: gram.y:14111 +#: gram.y:14478 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "тип float должен иметь точность меньше 54 бит" -#: gram.y:14614 +#: gram.y:14995 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "неверное число параметров в левой части выражения OVERLAPS" -#: gram.y:14619 +#: gram.y:15000 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "неверное число параметров в правой части выражения OVERLAPS" -#: gram.y:14796 +#: gram.y:15177 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "предикат UNIQUE ещё не реализован" -#: gram.y:15212 +#: gram.y:15591 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "ORDER BY с WITHIN GROUP можно указать только один раз" -#: gram.y:15217 +#: gram.y:15596 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "DISTINCT нельзя использовать с WITHIN GROUP" -#: gram.y:15222 +#: gram.y:15601 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "VARIADIC нельзя использовать с WITHIN GROUP" -#: gram.y:15856 gram.y:15880 +#: gram.y:16328 gram.y:16352 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "началом рамки не может быть UNBOUNDED FOLLOWING" -#: gram.y:15861 +#: gram.y:16333 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "" "рамка, начинающаяся со следующей строки, не может заканчиваться текущей" -#: gram.y:15885 +#: gram.y:16357 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "концом рамки не может быть UNBOUNDED PRECEDING" -#: gram.y:15891 +#: gram.y:16363 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "" "рамка, начинающаяся с текущей строки, не может иметь предшествующих строк" -#: gram.y:15898 +#: gram.y:16370 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "" "рамка, начинающаяся со следующей строки, не может иметь предшествующих строк" -#: gram.y:16659 +#: gram.y:16919 +#, c-format +msgid "unrecognized JSON encoding: %s" +msgstr "нераспознанная кодировка JSON: %s" + +#: gram.y:17243 #, c-format msgid "type modifier cannot have parameter name" msgstr "параметр функции-модификатора типа должен быть безымянным" -#: gram.y:16665 +#: gram.y:17249 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "модификатор типа не может включать ORDER BY" -#: gram.y:16733 gram.y:16740 gram.y:16747 +#: gram.y:17317 gram.y:17324 gram.y:17331 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s нельзя использовать здесь как имя роли" -#: gram.y:16837 gram.y:18294 +#: gram.y:17421 gram.y:18906 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES нельзя задать без предложения ORDER BY" -#: gram.y:17973 gram.y:18160 +#: gram.y:18597 gram.y:18772 msgid "improper use of \"*\"" msgstr "недопустимое использование \"*\"" -#: gram.y:18224 +#: gram.y:18836 #, c-format msgid "" "an ordered-set aggregate with a VARIADIC direct argument must have one " @@ -33482,70 +35020,70 @@ msgstr "" "сортирующая агрегатная функция с непосредственным аргументом VARIADIC должна " "иметь один агрегатный аргумент VARIADIC того же типа данных" -#: gram.y:18261 +#: gram.y:18873 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "ORDER BY можно указать только один раз" -#: gram.y:18272 +#: gram.y:18884 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "OFFSET можно указать только один раз" -#: gram.y:18281 +#: gram.y:18893 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "LIMIT можно указать только один раз" -#: gram.y:18290 +#: gram.y:18902 #, c-format msgid "multiple limit options not allowed" msgstr "параметры LIMIT можно указать только один раз" -#: gram.y:18317 +#: gram.y:18929 #, c-format msgid "multiple WITH clauses not allowed" msgstr "WITH можно указать только один раз" -#: gram.y:18510 +#: gram.y:19122 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "в табличных функциях не может быть аргументов OUT и INOUT" -#: gram.y:18643 +#: gram.y:19255 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "COLLATE можно указать только один раз" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18681 gram.y:18694 +#: gram.y:19293 gram.y:19306 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "ограничения %s не могут иметь характеристики DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18707 +#: gram.y:19319 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "ограничения %s не могут иметь характеристики NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18720 +#: gram.y:19332 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "ограничения %s не могут иметь характеристики NO INHERIT" -#: gram.y:18742 +#: gram.y:19354 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нераспознанная стратегия секционирования \"%s\"" -#: gram.y:18766 +#: gram.y:19378 #, c-format msgid "invalid publication object list" msgstr "неверный список объектов публикации" -#: gram.y:18767 +#: gram.y:19379 #, c-format msgid "" "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table " @@ -33554,22 +35092,22 @@ msgstr "" "Перед именем отдельной таблицы или схемы нужно указать TABLE либо TABLES IN " "SCHEMA." -#: gram.y:18783 +#: gram.y:19395 #, c-format msgid "invalid table name" msgstr "неверное имя таблицы" -#: gram.y:18804 +#: gram.y:19416 #, c-format msgid "WHERE clause not allowed for schema" msgstr "предложение WHERE не допускается для схемы" -#: gram.y:18811 +#: gram.y:19423 #, c-format msgid "column specification not allowed for schema" msgstr "указание столбца не допускается для схемы" -#: gram.y:18825 +#: gram.y:19437 #, c-format msgid "invalid schema name" msgstr "неверное имя схемы" @@ -33618,12 +35156,18 @@ msgstr "" "обнаружено слишком много синтаксических ошибок, обработка файла \"%s\" " "прекращается" -#: jsonpath_gram.y:529 +# skip-rule: space-after-comma, space-before-period +#: jsonpath_gram.y:267 +#, c-format +msgid ".decimal() can only have an optional precision[,scale]." +msgstr "Аргументами .decimal() могут быть только точность[,масштаб]." + +#: jsonpath_gram.y:599 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "Нераспознанный символ флага \"%.*s\" в предикате LIKE_REGEX." -#: jsonpath_gram.y:607 +#: jsonpath_gram.y:677 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "" @@ -33641,7 +35185,7 @@ msgstr "неверная последовательность шестнадца msgid "unexpected end after backslash" msgstr "неожиданный конец строки после обратной косой черты" -#: jsonpath_scan.l:201 repl_scanner.l:209 scan.l:741 +#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:756 msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" @@ -33653,8 +35197,8 @@ msgstr "неожиданный конец комментария" msgid "invalid numeric literal" msgstr "неверная числовая строка" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 -#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1064 +#: scan.l:1068 scan.l:1072 scan.l:1076 msgid "trailing junk after numeric literal" msgstr "мусорное содержимое после числовой константы" @@ -33670,70 +35214,70 @@ msgstr "%s в конце аргумента jsonpath" msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s в строке jsonpath (примерное положение: \"%s\")" -#: jsonpath_scan.l:557 +#: jsonpath_scan.l:568 msgid "invalid input" msgstr "некорректные входные данные" -#: jsonpath_scan.l:583 +#: jsonpath_scan.l:594 msgid "invalid hexadecimal digit" msgstr "неверная шестнадцатеричная цифра" -#: jsonpath_scan.l:614 +#: jsonpath_scan.l:625 #, c-format msgid "could not convert Unicode to server encoding" msgstr "не удалось преобразовать символ Unicode в серверную кодировку" -#: repl_gram.y:301 repl_gram.y:333 +#: repl_gram.y:318 repl_gram.y:359 #, c-format msgid "invalid timeline %u" msgstr "неверная линия времени %u" -#: repl_scanner.l:152 +#: repl_scanner.l:154 msgid "invalid streaming start location" msgstr "неверная позиция начала потока" -#: scan.l:482 +#: scan.l:497 msgid "unterminated /* comment" msgstr "незавершённый комментарий /*" -#: scan.l:502 +#: scan.l:517 msgid "unterminated bit string literal" msgstr "оборванная битовая строка" -#: scan.l:516 +#: scan.l:531 msgid "unterminated hexadecimal string literal" msgstr "оборванная шестнадцатеричная строка" -#: scan.l:566 +#: scan.l:581 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "небезопасное использование строковой константы со спецкодами Unicode" -#: scan.l:567 +#: scan.l:582 #, c-format msgid "" "String constants with Unicode escapes cannot be used when " -"standard_conforming_strings is off." +"\"standard_conforming_strings\" is off." msgstr "" "Строки со спецкодами Unicode нельзя использовать, когда параметр " -"standard_conforming_strings выключен." +"\"standard_conforming_strings\" выключен." -#: scan.l:628 +#: scan.l:643 msgid "unhandled previous state in xqs" msgstr "" "необрабатываемое предыдущее состояние при обнаружении закрывающего апострофа" -#: scan.l:702 +#: scan.l:717 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "Спецкоды Unicode должны иметь вид \\uXXXX или \\UXXXXXXXX." -#: scan.l:713 +#: scan.l:728 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "небезопасное использование символа \\' в строке" -#: scan.l:714 +#: scan.l:729 #, c-format msgid "" "Use '' to write quotes in strings. \\' is insecure in client-only encodings." @@ -33741,56 +35285,56 @@ msgstr "" "Записывайте апостроф в строке в виде ''. Запись \\' небезопасна для " "исключительно клиентских кодировок." -#: scan.l:786 +#: scan.l:801 msgid "unterminated dollar-quoted string" msgstr "незавершённая строка с $" -#: scan.l:803 scan.l:813 +#: scan.l:818 scan.l:828 msgid "zero-length delimited identifier" msgstr "пустой идентификатор в кавычках" -#: scan.l:824 syncrep_scanner.l:101 +#: scan.l:839 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "незавершённый идентификатор в кавычках" -#: scan.l:987 +#: scan.l:1002 msgid "operator too long" msgstr "слишком длинный оператор" -#: scan.l:1000 +#: scan.l:1015 msgid "trailing junk after parameter" msgstr "мусорное содержимое после параметра" -#: scan.l:1021 +#: scan.l:1036 msgid "invalid hexadecimal integer" msgstr "неверное шестнадцатеричное целое" -#: scan.l:1025 +#: scan.l:1040 msgid "invalid octal integer" msgstr "неверное восьмеричное целое" -#: scan.l:1029 +#: scan.l:1044 msgid "invalid binary integer" msgstr "неверное двоичное целое" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1236 +#: scan.l:1239 #, c-format msgid "%s at end of input" msgstr "%s в конце" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1244 +#: scan.l:1247 #, c-format msgid "%s at or near \"%s\"" msgstr "%s (примерное положение: \"%s\")" -#: scan.l:1434 +#: scan.l:1439 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "нестандартное применение \\' в строке" -#: scan.l:1435 +#: scan.l:1440 #, c-format msgid "" "Use '' to write quotes in strings, or use the escape string syntax (E'...')." @@ -33798,27 +35342,323 @@ msgstr "" "Записывайте апостроф в строках в виде '' или используйте синтаксис спецстрок " "(E'...')." -#: scan.l:1444 +#: scan.l:1449 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "нестандартное применение \\\\ в строке" -#: scan.l:1445 +#: scan.l:1450 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "" "Используйте для записи обратных слэшей синтаксис спецстрок, например E'\\\\'." -#: scan.l:1459 +#: scan.l:1464 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "нестандартное использование спецсимвола в строке" -#: scan.l:1460 +#: scan.l:1465 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Используйте для записи спецсимволов синтаксис спецстрок E'\\r\\n'." +#, c-format +#~ msgid "cannot use RETURNING type %s in %s" +#~ msgstr "использовать в RETURNING тип %s в %s нельзя" + +#, c-format +#~ msgid "Please report this to <%s>." +#~ msgstr "Пожалуйста, напишите об этой ошибке по адресу <%s>." + +#, c-format +#~ msgid "MinWords should be less than MaxWords" +#~ msgstr "Значение MinWords должно быть меньше MaxWords" + +#, c-format +#~ msgid "MinWords should be positive" +#~ msgstr "Значение MinWords должно быть положительным" + +#, c-format +#~ msgid "ShortWord should be >= 0" +#~ msgstr "Значение ShortWord должно быть >= 0" + +#, c-format +#~ msgid "MaxFragments should be >= 0" +#~ msgstr "Значение MaxFragments должно быть >= 0" + +#, c-format +#~ msgid "" +#~ "database is not accepting commands to avoid wraparound data loss in " +#~ "database \"%s\"" +#~ msgstr "" +#~ "база данных не принимает команды во избежание потери данных из-за " +#~ "зацикливания транзакций в базе данных \"%s\"" + +#, c-format +#~ msgid "" +#~ "Stop the postmaster and vacuum that database in single-user mode.\n" +#~ "You might also need to commit or roll back old prepared transactions, or " +#~ "drop stale replication slots." +#~ msgstr "" +#~ "Остановите управляющий процесс (postmaster) и выполните очистку (VACUUM) " +#~ "базы данных в монопольном режиме.\n" +#~ "Возможно, вам также придётся зафиксировать или откатить старые " +#~ "подготовленные транзакции и удалить неиспользуемые слоты репликации." + +#, c-format +#~ msgid "" +#~ "database is not accepting commands to avoid wraparound data loss in " +#~ "database with OID %u" +#~ msgstr "" +#~ "база данных не принимает команды во избежание потери данных из-за " +#~ "зацикливания транзакций в базе данных с OID %u" + +#, c-format +#~ msgid "cannot commit subtransactions during a parallel operation" +#~ msgstr "фиксировать подтранзакции во время параллельных операций нельзя" + +#, c-format +#~ msgid "invalid segment number %d in file \"%s\"" +#~ msgstr "неверный номер сегмента %d в файле \"%s\"" + +#, c-format +#~ msgid "-X requires a power of two value between 1 MB and 1 GB" +#~ msgstr "" +#~ "для -X требуется число, равное степени двух, в интервале от 1 МБ до 1 ГБ" + +#, c-format +#~ msgid "invalid parameter name \"%s\"" +#~ msgstr "неверное имя параметра \"%s\"" + +#, c-format +#~ msgid "MERGE not supported in COPY" +#~ msgstr "MERGE не поддерживается в COPY" + +#, c-format +#~ msgid "cannot specify DELIMITER in BINARY mode" +#~ msgstr "в режиме BINARY нельзя указывать DELIMITER" + +#, c-format +#~ msgid "cannot specify DEFAULT in BINARY mode" +#~ msgstr "в режиме BINARY нельзя указывать DEFAULT" + +#, c-format +#~ msgid "cannot specify HEADER in BINARY mode" +#~ msgstr "в режиме BINARY нельзя использовать HEADER" + +#, c-format +#~ msgid "COPY quote available only in CSV mode" +#~ msgstr "определить кавычки для COPY можно только в режиме CSV" + +#, c-format +#~ msgid "COPY escape available only in CSV mode" +#~ msgstr "определить спецсимвол для COPY можно только в режиме CSV" + +#, c-format +#~ msgid "COPY force quote available only in CSV mode" +#~ msgstr "" +#~ "параметр force quote для COPY можно использовать только в режиме CSV" + +#, c-format +#~ msgid "COPY force quote only available using COPY TO" +#~ msgstr "параметр force quote для COPY можно использовать только с COPY TO" + +#, c-format +#~ msgid "COPY force not null available only in CSV mode" +#~ msgstr "" +#~ "параметр force not null для COPY можно использовать только в режиме CSV" + +#, c-format +#~ msgid "COPY force not null only available using COPY FROM" +#~ msgstr "" +#~ "параметр force not null для COPY можно использовать только с COPY FROM" + +#, c-format +#~ msgid "COPY force null available only in CSV mode" +#~ msgstr "параметр force null для COPY можно использовать только в режиме CSV" + +#, c-format +#~ msgid "COPY force null only available using COPY FROM" +#~ msgstr "параметр force null для COPY можно использовать только с COPY FROM" + +#, c-format +#~ msgid "COPY DEFAULT only available using COPY FROM" +#~ msgstr "параметр DEFAULT для COPY можно использовать только с COPY FROM" + +#, c-format +#~ msgid "COPY delimiter must not appear in the DEFAULT specification" +#~ msgstr "" +#~ "разделитель для COPY не должен присутствовать в представлении DEFAULT" + +#, c-format +#~ msgid "CSV quote character must not appear in the DEFAULT specification" +#~ msgstr "" +#~ "символ кавычек в CSV не должен присутствовать в представлении DEFAULT" + +#, c-format +#~ msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" +#~ msgstr "столбец FORCE_NOT_NULL \"%s\" не фигурирует в COPY" + +#, c-format +#~ msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" +#~ msgstr "столбец FORCE_QUOTE \"%s\" не фигурирует в COPY" + +#, c-format +#~ msgid "cannot create exclusion constraints on partitioned table \"%s\"" +#~ msgstr "" +#~ "создать ограничение-исключение в секционированной таблице \"%s\" нельзя" + +#, c-format +#~ msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" +#~ msgstr "" +#~ "перестроить нерабочий индекс \"%s.%s\" неблокирующим способом нельзя, он " +#~ "пропускается" + +#, c-format +#~ msgid "" +#~ "specifying a table access method is not supported on a partitioned table" +#~ msgstr "" +#~ "указание табличного метода доступа для секционированных таблиц не " +#~ "поддерживаются" + +#, c-format +#~ msgid "cannot change access method of a partitioned table" +#~ msgstr "менять метод доступа для секционированной таблицы нельзя" + +#, c-format +#~ msgid "" +#~ "MD5 authentication is not supported when \"db_user_namespace\" is enabled" +#~ msgstr "" +#~ "проверка подлинности MD5 не поддерживается, когда включён режим " +#~ "\"db_user_namespace\"" + +#, c-format +#~ msgid "could not unbind after searching for user \"%s\" on server \"%s\"" +#~ msgstr "" +#~ "не удалось отвязаться после поиска пользователя \"%s\" на сервере \"%s\"" + +#, c-format +#~ msgid "MERGE not supported in WITH query" +#~ msgstr "MERGE не поддерживается в запросе WITH" + +#, c-format +#~ msgid "IS DISTINCT FROM requires = operator to yield boolean" +#~ msgstr "" +#~ "для IS DISTINCT FROM требуется, чтобы оператор = возвращал логическое " +#~ "значение" + +#, c-format +#~ msgid "could not fork autovacuum launcher process: %m" +#~ msgstr "породить процесс запуска автоочистки не удалось: %m" + +#, c-format +#~ msgid "could not fork autovacuum worker process: %m" +#~ msgstr "не удалось породить рабочий процесс автоочистки: %m" + +#, c-format +#~ msgid "" +#~ "Consider increasing the configuration parameter \"max_worker_processes\"." +#~ msgstr "Возможно, стоит увеличить параметр \"max_worker_processes\"." + +#, c-format +#~ msgid "could not fork startup process: %m" +#~ msgstr "породить стартовый процесс не удалось: %m" + +#, c-format +#~ msgid "could not fork archiver process: %m" +#~ msgstr "породить процесс архиватора не удалось: %m" + +#, c-format +#~ msgid "could not fork checkpointer process: %m" +#~ msgstr "породить процесс контрольных точек не удалось: %m" + +#, c-format +#~ msgid "could not fork WAL writer process: %m" +#~ msgstr "породить процесс записи WAL не удалось: %m" + +#, c-format +#~ msgid "could not fork WAL receiver process: %m" +#~ msgstr "породить процесс считывания WAL не удалось: %m" + +#, c-format +#~ msgid "could not fork worker process: %m" +#~ msgstr "породить рабочий процесс не удалось: %m" + +#, c-format +#~ msgid "could not remove file \"%s\": %s\n" +#~ msgstr "не удалось стереть файл \"%s\": %s\n" + +#, c-format +#~ msgid "publication_names parameter missing" +#~ msgstr "отсутствует параметр publication_names" + +#, c-format +#~ msgid "snapshot too old" +#~ msgstr "снимок слишком стар" + +#, c-format +#~ msgid "must be superuser to rotate log files with adminpack 1.0" +#~ msgstr "" +#~ "прокручивать файлы протоколов, используя adminpack 1.0, может только " +#~ "суперпользователь" + +#, c-format +#~ msgid "Consider using %s, which is part of core, instead." +#~ msgstr "" +#~ "Рассмотрите возможность использования функции %s, включённой в ядро." + +#, c-format +#~ msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" +#~ msgstr "не удалось записать блок %u в файл \"%s\" (записано байт: %d из %d)" + +#, c-format +#~ msgid "Unmatched \"%c\" character." +#~ msgstr "Непарный знак \"%c\"." + +#, c-format +#~ msgid "formatting field \"%s\" is only supported in to_char" +#~ msgstr "поле форматирования \"%s\" поддерживается только в функции to_char" + +#, c-format +#~ msgid "must be superuser to read files with adminpack 1.0" +#~ msgstr "" +#~ "читать файлы, используя adminpack 1.0, может только суперпользователь" + +#, c-format +#~ msgid "" +#~ "string argument of jsonpath item method .%s() is not a valid " +#~ "representation of a double precision number" +#~ msgstr "" +#~ "строковый аргумент метода элемента jsonpath .%s() не является " +#~ "представлением значения double precision" + +#, c-format +#~ msgid "collation provider LIBC is not supported on this platform" +#~ msgstr "" +#~ "провайдер правил сортировки LIBC не поддерживается на этой платформе" + +#, c-format +#~ msgid "cannot subtract infinite timestamps" +#~ msgstr "вычитать бесконечные значения timestamp нельзя" + +#~ msgid "Enables per-database user names." +#~ msgstr "Включает связывание имён пользователей с базами данных." + +#~ msgid "" +#~ "Time before a snapshot is too old to read pages changed after the " +#~ "snapshot was taken." +#~ msgstr "" +#~ "Срок, по истечении которого снимок считается слишком старым для получения " +#~ "страниц, изменённых после создания снимка." + +#~ msgid "A value of -1 disables this feature." +#~ msgstr "Значение -1 отключает это поведение." + +#~ msgid "Enables logging of recovery-related debugging information." +#~ msgstr "" +#~ "Включает протоколирование отладочной информации, связанной с репликацией." + #, c-format #~ msgid "out of memory while trying to decode a record of length %u" #~ msgstr "не удалось выделить память для декодирования записи длины %u" @@ -34216,10 +36056,6 @@ msgstr "Используйте для записи спецсимволов си #~ "слот \"%s\" аннулируется, так как его позиция restart_lsn %X/%X превышает " #~ "max_slot_wal_keep_size" -#, c-format -#~ msgid "cannot read from logical replication slot \"%s\"" -#~ msgstr "прочитать из слота логической репликации \"%s\" нельзя" - #, c-format #~ msgid "cannot convert partitioned table \"%s\" to a view" #~ msgstr "" @@ -34450,9 +36286,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "oidvector has too many elements" #~ msgstr "oidvector содержит слишком много элементов" -#~ msgid "Enables reordering of GROUP BY keys." -#~ msgstr "Включает переупорядочивание ключей GROUP BY." - #~ msgid "unknown compression option \"%s\"" #~ msgstr "неизвестный параметр сжатия \"%s\"" @@ -34522,14 +36355,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "JSON_TABLE path name is not allowed here" #~ msgstr "SELECT ... INTO здесь не допускается" -#, fuzzy -#~ msgid "JSON path expression must be type %s, not type %s" -#~ msgstr "аргумент конструкции %s должен иметь тип %s, а не %s" - -#, fuzzy -#~ msgid "cannot cast DEFAULT expression type %s to %s" -#~ msgstr "привести тип %s к %s нельзя" - #, fuzzy #~ msgid "JSON_TABLE() is not yet implemented for the json type" #~ msgstr "REINDEX для секционированных индексов ещё не реализован" @@ -34538,10 +36363,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "%s() is not yet implemented for the json type" #~ msgstr "политики для этой команды ещё не реализованы" -#, fuzzy -#~ msgid "cannot use RETURNING type %s in %s" -#~ msgstr "привести тип %s к %s нельзя" - #, fuzzy #~ msgid "invalid JSON_TABLE plan" #~ msgstr "неверное указание OWNED BY" @@ -34988,9 +36809,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "Writes temporary statistics files to the specified directory." #~ msgstr "Каталог, в который будут записываться временные файлы статистики." -#~ msgid "must be superuser to execute ALTER SYSTEM command" -#~ msgstr "выполнить команду ALTER SYSTEM может только суперпользователь" - #~ msgid "" #~ "query-specified return tuple and function return type are not compatible" #~ msgstr "" @@ -35767,9 +37585,6 @@ msgstr "Используйте для записи спецсимволов си #~ "Этот параметр определяет, нужно ли шифровать пароли, заданные в CREATE " #~ "USER или ALTER USER без указания ENCRYPTED или UNENCRYPTED." -#~ msgid "\"%s\" cannot be lower than \"%s\"." -#~ msgstr "Версия \"%s\" не может быть ниже \"%s\"." - #~ msgid "could not write to temporary file: %m" #~ msgstr "не удалось записать во временный файл: %m" @@ -36287,9 +38102,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "using previous checkpoint record at %X/%X" #~ msgstr "используется предыдущая запись контрольной точки по смещению %X/%X" -#~ msgid "invalid secondary checkpoint link in control file" -#~ msgstr "неверная ссылка на вторичную контрольную точку в файле pg_control" - #~ msgid "invalid secondary checkpoint record" #~ msgstr "неверная запись вторичной контрольной точки" @@ -36400,9 +38212,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "data directory \"%s\" has group or world access" #~ msgstr "к каталогу данных \"%s\" имеют доступ все или группа" -#~ msgid "worker process" -#~ msgstr "рабочий процесс" - #~ msgid "built-in type %u not found" #~ msgstr "встроенный тип %u не найден" @@ -36417,13 +38226,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgstr "" #~ "тип данных \"%s.%s\", требуемый для логической репликации, не существует" -#~ msgid "" -#~ "logical replication could not find row for delete in replication target " -#~ "relation \"%s\"" -#~ msgstr "" -#~ "при логической репликации не удалось найти строку для удаления в целевом " -#~ "отношении репликации \"%s\"" - #~ msgid "memory for serializable conflict tracking is nearly exhausted" #~ msgstr "" #~ "память для отслеживания конфликтов сериализации практически исчерпана" @@ -36848,9 +38650,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgid "Proceeding with relation creation anyway." #~ msgstr "Несмотря на это, создание отношения продолжается." -#~ msgid "default expression must not return a set" -#~ msgstr "выражение по умолчанию не может возвращать множество" - #~ msgid "access method name cannot be qualified" #~ msgstr "имя метода доступа не может быть составным" @@ -37503,21 +39302,12 @@ msgstr "Используйте для записи спецсимволов си #~ "Для архивации WAL (archive_mode=on) wal_level должен быть \"archive\", " #~ "\"hot_standby\" или \"logical\"" -#~ msgid "postmaster became multithreaded" -#~ msgstr "процесс postmaster стал многопоточным" - #~ msgid "could not determine input data types" #~ msgstr "не удалось определить типы входных данных" #~ msgid "neither input type is an array" #~ msgstr "входной тип так же не является массивом" -#~ msgid "unexpected \"=\"" -#~ msgstr "неожиданный знак \"=\"" - -#~ msgid "invalid symbol" -#~ msgstr "неверный символ" - #~ msgid "" #~ "must be superuser or have the same role to cancel queries running in " #~ "other server processes" @@ -37574,11 +39364,6 @@ msgstr "Используйте для записи спецсимволов си #~ msgstr "" #~ "распознать идентификатор локального пользователя (%ld) не удалось: %s" -#~ msgid "cannot use physical replication slot created for logical decoding" -#~ msgstr "" -#~ "для логического декодирования нельзя использовать созданный физический " -#~ "слот репликации" - #~ msgid "" #~ "incomplete read from reorderbuffer spill file: read %d instead of %u bytes" #~ msgstr "" @@ -38065,9 +39850,6 @@ msgstr "Используйте для записи спецсимволов си #~ "Недостаточно памяти для переназначения блокировок подготовленных " #~ "транзакций." -#~ msgid "\"interval\" time zone \"%s\" not valid" -#~ msgstr "\"интервал\" содержит неверный часовой пояс \"%s\"" - #~ msgid "inconsistent use of year %04d and \"BC\"" #~ msgstr "несогласованное использование в годе %04d и \"BC\"" diff --git a/src/backend/po/sv.po b/src/backend/po/sv.po index 2d2e2272672d8..db87d04a3c232 100644 --- a/src/backend/po/sv.po +++ b/src/backend/po/sv.po @@ -1,5 +1,5 @@ # Swedish message translation file for postgresql -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # # 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 @@ -21,10 +21,10 @@ # hänvisas till och inte någon annan städning. msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-23 02:45+0000\n" -"PO-Revision-Date: 2023-09-23 15:32+0200\n" +"POT-Creation-Date: 2025-02-12 13:46+0000\n" +"PO-Revision-Date: 2025-02-12 20:52+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -33,6 +33,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: ../common/binaryheap.c:121 ../common/binaryheap.c:159 +#, c-format +msgid "out of binary heap slots" +msgstr "slut på slottar i binär-heap" + #: ../common/compression.c:132 ../common/compression.c:141 #: ../common/compression.c:150 #, c-format @@ -90,64 +95,66 @@ msgstr "komprimeringsalgoritmen \"%s\" stöder inte långdistansläge" msgid "not recorded" msgstr "ej sparad" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 -#: commands/copyfrom.c:1670 commands/extension.c:3480 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 +#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123 +#: utils/time/snapmgr.c:1430 #, 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:84 ../common/controldata_utils.c:86 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1347 access/transam/xlog.c:3193 -#: access/transam/xlog.c:3996 access/transam/xlogrecovery.c:1199 -#: access/transam/xlogrecovery.c:1291 access/transam/xlogrecovery.c:1328 -#: access/transam/xlogrecovery.c:1388 backup/basebackup.c:1842 -#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: access/transam/twophase.c:1353 access/transam/xlog.c:3477 +#: access/transam/xlog.c:4341 access/transam/xlogrecovery.c:1238 +#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 +#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 +#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 +#: replication/logical/reorderbuffer.c:5113 +#: replication/logical/snapbuild.c:2052 replication/slot.c:2236 +#: replication/slot.c:2277 replication/walsender.c:655 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:827 +#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 -#: access/transam/xlog.c:3198 access/transam/xlog.c:4001 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 -#: utils/cache/relmapper.c:831 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 +#: access/transam/xlog.c:3482 access/transam/xlog.c:4346 +#: replication/logical/origin.c:750 replication/logical/origin.c:789 +#: replication/logical/snapbuild.c:2057 replication/slot.c:2240 +#: replication/slot.c:2281 replication/walsender.c:660 +#: utils/cache/relmapper.c:833 #, 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:104 ../common/controldata_utils.c:108 -#: ../common/controldata_utils.c:233 ../common/controldata_utils.c:236 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 +#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 +#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1359 -#: access/transam/twophase.c:1771 access/transam/xlog.c:3039 -#: access/transam/xlog.c:3233 access/transam/xlog.c:3238 -#: access/transam/xlog.c:3374 access/transam/xlog.c:3966 -#: access/transam/xlog.c:4885 commands/copyfrom.c:1730 commands/copyto.c:332 +#: access/transam/timeline.c:512 access/transam/twophase.c:1365 +#: access/transam/twophase.c:1784 access/transam/xlog.c:3323 +#: access/transam/xlog.c:3517 access/transam/xlog.c:3522 +#: access/transam/xlog.c:3658 access/transam/xlog.c:4311 +#: access/transam/xlog.c:5246 commands/copyfrom.c:1799 commands/copyto.c:325 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 #: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:839 -#: utils/cache/relmapper.c:945 +#: replication/logical/reorderbuffer.c:5165 +#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943 +#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828 +#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 +#: utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "byte-ordning stämmer inte" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -160,141 +167,157 @@ msgstr "" "inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" "och PostgreSQL-installationen vara inkompatibel med databaskatalogen." -#: ../common/controldata_utils.c:181 ../common/controldata_utils.c:186 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1303 -#: access/transam/xlog.c:2946 access/transam/xlog.c:3109 -#: access/transam/xlog.c:3148 access/transam/xlog.c:3341 -#: access/transam/xlog.c:3986 access/transam/xlogrecovery.c:4179 -#: access/transam/xlogrecovery.c:4282 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:816 -#: utils/cache/relmapper.c:924 utils/error/elog.c:2082 -#: utils/init/miscinit.c:1530 utils/init/miscinit.c:1664 -#: utils/init/miscinit.c:1741 utils/misc/guc.c:4600 utils/misc/guc.c:4650 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 +#: ../common/file_utils.c:70 ../common/file_utils.c:347 +#: ../common/file_utils.c:406 ../common/file_utils.c:480 +#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 +#: access/transam/timeline.c:251 access/transam/timeline.c:348 +#: access/transam/twophase.c:1309 access/transam/xlog.c:3230 +#: access/transam/xlog.c:3393 access/transam/xlog.c:3432 +#: access/transam/xlog.c:3625 access/transam/xlog.c:4331 +#: access/transam/xlogrecovery.c:4264 access/transam/xlogrecovery.c:4367 +#: access/transam/xlogutils.c:836 backup/basebackup.c:547 +#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 +#: postmaster/syslogger.c:1511 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3766 +#: replication/logical/reorderbuffer.c:4320 +#: replication/logical/reorderbuffer.c:5093 +#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884 +#: replication/slot.c:2208 replication/walsender.c:628 +#: replication/walsender.c:3051 storage/file/copydir.c:151 +#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 +#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 +#: utils/cache/relmapper.c:935 utils/error/elog.c:2124 +#: utils/init/miscinit.c:1580 utils/init/miscinit.c:1714 +#: utils/init/miscinit.c:1791 utils/misc/guc.c:4777 utils/misc/guc.c:4827 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: ../common/controldata_utils.c:202 ../common/controldata_utils.c:205 -#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 -#: access/transam/xlog.c:8755 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:936 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 +#: access/transam/twophase.c:1757 access/transam/twophase.c:1766 +#: access/transam/xlog.c:9280 access/transam/xlogfuncs.c:698 +#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 +#: backup/walsummary.c:304 postmaster/postmaster.c:4127 +#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 +#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1765 -#: access/transam/xlog.c:3032 access/transam/xlog.c:3227 -#: access/transam/xlog.c:3959 access/transam/xlog.c:8145 -#: access/transam/xlog.c:8190 backup/basebackup_server.c:209 -#: replication/logical/snapbuild.c:1791 replication/slot.c:1830 -#: replication/slot.c:1935 storage/file/fd.c:774 storage/file/fd.c:3798 -#: storage/smgr/md.c:1135 storage/smgr/md.c:1180 storage/sync/sync.c:451 -#: utils/misc/guc.c:4370 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 +#: ../common/file_utils.c:418 ../common/file_utils.c:488 +#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 +#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1778 +#: access/transam/xlog.c:3316 access/transam/xlog.c:3511 +#: access/transam/xlog.c:4304 access/transam/xlog.c:8655 +#: access/transam/xlog.c:8700 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812 +#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 +#: storage/file/fd.c:3851 storage/smgr/md.c:1331 storage/smgr/md.c:1376 +#: storage/sync/sync.c:446 utils/misc/guc.c:4530 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "kunde inte fsync:a fil \"%s\": %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:258 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1345 -#: libpq/auth.c:1389 libpq/auth.c:1946 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 -#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:308 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 -#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2232 storage/ipc/procarray.c:2239 -#: storage/ipc/procarray.c:2738 storage/ipc/procarray.c:3374 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 -#: utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4348 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 +#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 +#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 +#: ../common/md5_common.c:156 ../common/parse_manifest.c:157 +#: ../common/parse_manifest.c:852 ../common/psprintf.c:143 +#: ../common/scram-common.c:268 ../common/stringinfo.c:314 ../port/path.c:828 +#: ../port/path.c:865 ../port/path.c:882 access/transam/twophase.c:1418 +#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 +#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:355 postmaster/bgworker.c:945 +#: postmaster/postmaster.c:3560 postmaster/postmaster.c:4021 +#: postmaster/postmaster.c:4383 postmaster/walsummarizer.c:935 +#: replication/libpqwalreceiver/libpqwalreceiver.c:387 +#: replication/logical/logical.c:210 replication/walsender.c:835 +#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 +#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465 +#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226 +#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435 +#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 +#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:532 +#: utils/adt/pg_locale.c:696 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 +#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 +#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 +#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 +#: utils/misc/guc.c:4508 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 +#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 +#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 +#: utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "slut på minne" #: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 +#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 +#: ../common/hmac_openssl.c:377 msgid "success" msgstr "lyckades" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 +#: ../common/hmac_openssl.c:371 msgid "destination buffer too small" msgstr "destinationsbuffer för liten" -#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 msgid "OpenSSL failure" msgstr "OpenSSL-fel" -#: ../common/exec.c:172 +#: ../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../common/exec.c:215 +#: ../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../common/exec.c:223 +#: ../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../common/exec.c:250 +#: ../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723 +#: commands/copyto.c:654 libpq/be-secure-common.c:59 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 +#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1589 storage/ipc/latch.c:1751 +#: storage/ipc/latch.c:1877 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:867 +#: ../port/path.c:884 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 +#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 #, c-format msgid "out of memory\n" msgstr "slut på minne\n" @@ -304,39 +327,51 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1315 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:229 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1680 commands/copyto.c:702 commands/extension.c:3469 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 -#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../common/file_utils.c:120 ../common/file_utils.c:566 +#: ../common/file_utils.c:570 access/transam/twophase.c:1321 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 +#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 +#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749 +#: commands/copyto.c:700 commands/extension.c:3527 commands/tablespace.c:804 +#: commands/tablespace.c:893 postmaster/pgarch.c:680 +#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173 +#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 +#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 +#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../common/file_utils.c:151 ../common/file_utils.c:281 +#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 +#: commands/tablespace.c:738 postmaster/postmaster.c:1470 +#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 +#: utils/misc/tzparser.c:339 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2892 +#: ../common/file_utils.c:169 ../common/file_utils.c:315 +#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:383 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 +#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559 +#: replication/logical/snapbuild.c:1831 replication/slot.c:936 +#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 +#: utils/time/snapmgr.c:1255 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" @@ -345,90 +380,102 @@ msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" msgid "internal error" msgstr "internt fel" -#: ../common/jsonapi.c:1144 +#: ../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "Recursive-descent-parser kan inte använda inkrementell lexer." + +#: ../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "Inkrementell parser kräver en inkrementell lexer." + +#: ../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON nästlad för djupt, maximal tillåtet djup är 6400." + +#: ../common/jsonapi.c:2127 #, c-format -msgid "Escape sequence \"\\%s\" is invalid." -msgstr "Escape-sekvens \"\\%s\" är ogiltig." +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Escape-sekvens \"\\%.*s\" är ogiltig." -#: ../common/jsonapi.c:1147 +#: ../common/jsonapi.c:2131 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Tecken med värde 0x%02x måste escape:as." -#: ../common/jsonapi.c:1150 +#: ../common/jsonapi.c:2135 #, c-format -msgid "Expected end of input, but found \"%s\"." -msgstr "Förväntade slut på indata, men hittade \"%s\"." +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Förväntade slut på indata, men hittade \"%.*s\"." -#: ../common/jsonapi.c:1153 +#: ../common/jsonapi.c:2138 #, c-format -msgid "Expected array element or \"]\", but found \"%s\"." -msgstr "Färväntade array-element eller \"]\", men hittade \"%s\"." +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Färväntade array-element eller \"]\", men hittade \"%.*s\"." -#: ../common/jsonapi.c:1156 +#: ../common/jsonapi.c:2141 #, c-format -msgid "Expected \",\" or \"]\", but found \"%s\"." -msgstr "Förväntade \",\" eller \"]\", men hittade \"%s\"." +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Förväntade \",\" eller \"]\", men hittade \"%.*s\"." -#: ../common/jsonapi.c:1159 +#: ../common/jsonapi.c:2144 #, c-format -msgid "Expected \":\", but found \"%s\"." -msgstr "Förväntade sig \":\" men hittade \"%s\"." +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Förväntade sig \":\" men hittade \"%.*s\"." -#: ../common/jsonapi.c:1162 +#: ../common/jsonapi.c:2147 #, c-format -msgid "Expected JSON value, but found \"%s\"." -msgstr "Förväntade JSON-värde, men hittade \"%s\"." +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Förväntade JSON-värde, men hittade \"%.*s\"." -#: ../common/jsonapi.c:1165 +#: ../common/jsonapi.c:2150 msgid "The input string ended unexpectedly." msgstr "Indatasträngen avslutades oväntat." -#: ../common/jsonapi.c:1167 +#: ../common/jsonapi.c:2152 #, c-format -msgid "Expected string or \"}\", but found \"%s\"." -msgstr "Färväntade sträng eller \"}\", men hittade \"%s\"." +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Färväntade sträng eller \"}\", men hittade \"%.*s\"." -#: ../common/jsonapi.c:1170 +#: ../common/jsonapi.c:2155 #, c-format -msgid "Expected \",\" or \"}\", but found \"%s\"." -msgstr "Förväntade sig \",\" eller \"}\" men hittade \"%s\"." +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Förväntade sig \",\" eller \"}\" men hittade \"%.*s\"." -#: ../common/jsonapi.c:1173 +#: ../common/jsonapi.c:2158 #, c-format -msgid "Expected string, but found \"%s\"." -msgstr "Förväntade sträng, men hittade \"%s\"." +msgid "Expected string, but found \"%.*s\"." +msgstr "Förväntade sträng, men hittade \"%.*s\"." -#: ../common/jsonapi.c:1176 +#: ../common/jsonapi.c:2161 #, c-format -msgid "Token \"%s\" is invalid." -msgstr "Token \"%s\" är ogiltig." +msgid "Token \"%.*s\" is invalid." +msgstr "Token \"%.*s\" är ogiltig." -#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 +#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 kan inte konverteras till text." -#: ../common/jsonapi.c:1181 +#: ../common/jsonapi.c:2166 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\" måste följas av fyra hexdecimala siffror." -#: ../common/jsonapi.c:1184 +#: ../common/jsonapi.c:2169 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Escape-värden för unicode kan inte användas för kodpunkter med värde över 007F när kodningen inte är UTF8." -#: ../common/jsonapi.c:1187 +#: ../common/jsonapi.c:2178 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Escape-värde för unicode kan inte översättas till serverns kodning %s." -#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 +#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicodes övre surrogathalva får inte komma efter en övre surrogathalva." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 +#: jsonpath_scan.l:713 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicodes lägre surrogathalva måste följa en övre surrogathalva." @@ -453,11 +500,168 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "kunde inte initiera kontrollsumma för backup-manifest" + +#: ../common/parse_manifest.c:203 ../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "manifestet avslutades oväntat" + +#: ../common/parse_manifest.c:209 ../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "kunde inte uppdatera kontrollsumma för backup-manifest" + +#: ../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "oväntad objektstart" + +#: ../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "oväntat objektslut" + +#: ../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "oväntad array-start" + +#: ../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "oväntat array-slut" + +#: ../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "förväntade en versionsindikator" + +#: ../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "okänt toppnivåfält" + +#: ../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "oväntat filfält" + +#: ../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "oväntat WAL-intervall-fält" + +#: ../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "oväntat objektfält" + +#: ../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "oväntad skalar" + +#: ../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "manifestversion är inte ett heltal" + +#: ../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "oväntad manifestversion" + +#: ../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "manifestets systemidentifierare är inte ett heltal" + +#: ../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "saknas sökväg" + +#: ../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "både sökväg och kodad sökväg" + +#: ../common/parse_manifest.c:666 +msgid "missing size" +msgstr "saknar storlek" + +#: ../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "kontrollsumma utan algoritm" + +#: ../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "kunde inte avkoda filnamn" + +#: ../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "filstorlek är inte ett haltal" + +#: ../common/parse_manifest.c:699 backup/basebackup.c:870 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "okänd algoritm för kontrollsumma: \"%s\"" + +#: ../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "ogiltig kontrollsumma för fil \"%s\": \"%s\"" + +#: ../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "saknar tidslinje" + +#: ../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "saknar start-LSN" + +#: ../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "saknar slut-LSN" + +#: ../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "tidslinje är inte ett heltal" + +#: ../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "kunde inte parsa start-LSN" + +#: ../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "kunde inte parsa slut-LSN" + +#: ../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "förväntade minst två rader" + +#: ../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "sista raden är inte nyradsterminerad" + +#: ../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "kunde inte göra klart kontrollsumma för backup-manifest" + +#: ../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "manifestet har ingen kontrollsumma" + +#: ../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "ogiltig kontrollsumma för manifest: \"%s\"" + +#: ../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "kontrollsumma för manifest matchar inte" + +#: ../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "kunde inte parsa backup-manifest: %s" + #: ../common/percentrepl.c:79 ../common/percentrepl.c:85 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2211 utils/misc/guc.c:3118 utils/misc/guc.c:3154 -#: utils/misc/guc.c:3224 utils/misc/guc.c:4547 utils/misc/guc.c:6721 -#: utils/misc/guc.c:6762 +#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 +#: utils/misc/guc.c:3283 utils/misc/guc.c:4712 utils/misc/guc.c:6931 +#: utils/misc/guc.c:6972 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "ogiltigt värde för parameter \"%s\": \"%s\"" @@ -517,45 +721,45 @@ msgstr "kunde inte köra igen med token för begränsad åtkomst: felkod %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:393 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 -#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 +#: access/transam/twophase.c:1717 access/transam/xlogarchive.c:119 +#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 +#: postmaster/syslogger.c:1488 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4589 +#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146 +#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 +#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343 +#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 +#: utils/time/snapmgr.c:1591 #, c-format msgid "could not remove file \"%s\": %m" msgstr "kunde inte ta bort fil \"%s\": %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 -#: storage/file/fd.c:3726 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 +#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 +#: storage/file/fd.c:3779 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "kunde inte ta bort katalog \"%s\": %m" -#: ../common/scram-common.c:271 +#: ../common/scram-common.c:281 msgid "could not encode salt" msgstr "kunde inte koda saltet" -#: ../common/scram-common.c:287 +#: ../common/scram-common.c:297 msgid "could not encode stored key" msgstr "kunde inte koda den lagrade nyckeln" -#: ../common/scram-common.c:304 +#: ../common/scram-common.c:314 msgid "could not encode server key" msgstr "kunde inte koda servernyckeln" -#: ../common/stringinfo.c:306 +#: ../common/stringinfo.c:315 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "Kan inte utöka strängbuffer som innehåller %d byte med ytterligare %d bytes." -#: ../common/stringinfo.c:310 +#: ../common/stringinfo.c:319 #, c-format msgid "" "out of memory\n" @@ -571,7 +775,7 @@ msgstr "" 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:1881 +#: ../common/username.c:45 libpq/auth.c:1888 msgid "user does not exist" msgstr "användaren finns inte" @@ -663,22 +867,22 @@ msgstr "Fortsätter att försöka i 30 sekunder." msgid "You might have antivirus, backup, or similar software interfering with the database system." msgstr "Du kan ha antivirus, backup eller liknande mjukvara som stör databassystemet" -#: ../port/path.c:775 +#: ../port/path.c:852 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "kunde inte fastställa nuvarande arbetskatalog: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "kunde inte fastställa nuvarande arbetskatalog: %m\n" #: ../port/strerror.c:72 #, c-format msgid "operating system error %d" msgstr "operativsystemfel %d" -#: ../port/thread.c:50 ../port/thread.c:86 +#: ../port/user.c:43 ../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "kunde inte slå upp lokalt användar-id %d: %s" -#: ../port/thread.c:55 ../port/thread.c:91 +#: ../port/user.c:48 ../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "lokal användare med ID %d existerar inte" @@ -698,115 +902,104 @@ msgstr "kunde inte hämta SID för PowerUser-grupp: felkod %lu\n" msgid "could not check access token membership: error code %lu\n" msgstr "kunde inte kontrollera access-token-medlemskap: felkod %lu\n" -#: access/brin/brin.c:216 +#: access/brin/brin.c:405 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "förfrågan efter BRIN-intervallsummering för index \"%s\" sida %u har inte spelats in" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1040 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 +#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 +#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 +#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 +#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 #, c-format msgid "recovery is in progress" msgstr "återställning pågår" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1386 access/brin/brin.c:1494 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "BRIN-kontrollfunktioner kan inte köras under återställning." -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1391 access/brin/brin.c:1499 #, c-format msgid "block number out of range: %lld" msgstr "blocknummer är utanför giltigt intervall: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1436 access/brin/brin.c:1525 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" är inte ett BRIN-index" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1452 access/brin/brin.c:1541 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "kunde inte öppna föräldratabell för index \"%s\"" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:3011 access/brin/brin_minmax_multi.c:3148 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 +#: parser/parse_utilcmd.c:2277 #, c-format -msgid "cannot accept a value of type %s" -msgstr "kan inte acceptera ett värde av type %s" +msgid "index \"%s\" is not valid" +msgstr "index \"%s\" är inte giltigt" -#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178 -#: access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:941 -#: utils/adt/timestamp.c:1518 utils/adt/timestamp.c:2708 -#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2795 -#: utils/adt/timestamp.c:2848 utils/adt/timestamp.c:2887 -#: utils/adt/timestamp.c:3184 utils/adt/timestamp.c:3189 -#: utils/adt/timestamp.c:3194 utils/adt/timestamp.c:3244 -#: utils/adt/timestamp.c:3251 utils/adt/timestamp.c:3258 -#: utils/adt/timestamp.c:3278 utils/adt/timestamp.c:3285 -#: utils/adt/timestamp.c:3292 utils/adt/timestamp.c:3322 -#: utils/adt/timestamp.c:3330 utils/adt/timestamp.c:3374 -#: utils/adt/timestamp.c:3796 utils/adt/timestamp.c:3920 -#: utils/adt/timestamp.c:4440 +#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 +#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 +#: statistics/dependencies.c:661 statistics/dependencies.c:714 +#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 +#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 +#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format -msgid "interval out of range" -msgstr "interval utanför giltigt intervall" +msgid "cannot accept a value of type %s" +msgstr "kan inte acceptera ett värde av type %s" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1442 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 +#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 +#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 +#: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "indexradstorlek %zu överstiger maximum %zu för index \"%s\"" -#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399 +#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389 #, c-format msgid "corrupted BRIN index: inconsistent range map" msgstr "trasigt BRIN-index: inkonsistent intervall-map" -#: access/brin/brin_revmap.c:593 +#: access/brin/brin_revmap.c:583 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "oväntad sidtyp 0x%04X i BRIN-index \"%s\" block %u" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 +#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "operatorfamilj \"%s\" för accessmetod %s innehåller funktion %s med ogiltigt supportnummer %d" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 +#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "operatorfamilj \"%s\" för accessmetod %s innehåller funktion %s med felaktig signatur för supportnummer %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 +#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "operatorfamilj \"%s\" för accessmetod %s innehåller operator %s med ogiltigt strateginummer %d" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 #: access/spgist/spgvalidate.c:237 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "operatorfamilj \"%s\" för accessmetod %s innehåller ogiltig ORDER BY-specifikatioon för operator %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 +#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" @@ -829,38 +1022,38 @@ msgstr "operatorfamilj \"%s\" för accessmetod %s saknas supportfunktion(er) f msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "operatorklass \"%s\" för accessmetoden %s saknar operator(er)" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 +#: access/gist/gistvalidate.c:273 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "operatorklass \"%s\" för accessmetod %s saknar supportfunktion %d" -#: access/common/attmap.c:122 +#: access/common/attmap.c:121 #, c-format msgid "Returned type %s does not match expected type %s in column %d." msgstr "Returnerad typ %s matchar inte förväntad type %s i kolumn %d." -#: access/common/attmap.c:150 +#: access/common/attmap.c:149 #, c-format msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "Antalet returnerade kolumner (%d) matchar inte förväntat antal kolumner (%d)." -#: access/common/attmap.c:234 access/common/attmap.c:246 +#: access/common/attmap.c:233 access/common/attmap.c:245 #, c-format msgid "could not convert row type" msgstr "kunde inte konvertera radtypen" -#: access/common/attmap.c:235 +#: access/common/attmap.c:234 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "Attribut \"%s\" för typ %s matchar inte motsvarande attribut för typ %s." -#: access/common/attmap.c:247 +#: access/common/attmap.c:246 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "Attribut \"%s\" i typ %s finns inte i typ %s." -#: access/common/heaptuple.c:1124 access/common/heaptuple.c:1459 +#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "antalet kolumner (%d) överskrider gränsen (%d)" @@ -870,122 +1063,110 @@ msgstr "antalet kolumner (%d) överskrider gränsen (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "antalet indexerade kolumner (%d) överskrider gränsen (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:950 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:970 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "indexrad kräver %zu byte, maximal storlek är %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107 +#: tcop/fastpath.c:454 tcop/postgres.c:1956 #, c-format msgid "unsupported format code: %d" msgstr "ej stödd formatkod: %d" -#: access/common/reloptions.c:521 access/common/reloptions.c:532 +#: access/common/reloptions.c:519 access/common/reloptions.c:530 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "Giltiga värden är \"on\", \"off\" och \"auto\"." -#: access/common/reloptions.c:543 +#: access/common/reloptions.c:541 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "Giltiga värden är \"local\" och \"cascaded\"." -#: access/common/reloptions.c:691 +#: access/common/reloptions.c:689 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "överskriden gräns för användardefinierade relationsparametertyper" -#: access/common/reloptions.c:1233 +#: access/common/reloptions.c:1231 #, c-format msgid "RESET must not include values for parameters" msgstr "RESET får inte ha med värden på parametrar" -#: access/common/reloptions.c:1265 +#: access/common/reloptions.c:1263 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "okänd parameternamnrymd \"%s\"" -#: access/common/reloptions.c:1302 commands/variable.c:1167 +#: access/common/reloptions.c:1300 commands/variable.c:1214 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "tabeller deklarerade med WITH OIDS stöds inte" -#: access/common/reloptions.c:1470 +#: access/common/reloptions.c:1468 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "okänd parameter \"%s\"" -#: access/common/reloptions.c:1582 +#: access/common/reloptions.c:1580 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "parameter \"%s\" angiven mer än en gång" -#: access/common/reloptions.c:1598 +#: access/common/reloptions.c:1596 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "ogiltigt värde för booleansk flagga \"%s\": \"%s\"" -#: access/common/reloptions.c:1610 +#: access/common/reloptions.c:1608 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "ogiltigt värde för heltalsflagga \"%s\": \"%s\"" -#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 +#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "värdet %s är utanför sitt intervall för flaggan \"%s\"" -#: access/common/reloptions.c:1618 +#: access/common/reloptions.c:1616 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Giltiga värden är mellan \"%d\" och \"%d\"." -#: access/common/reloptions.c:1630 +#: access/common/reloptions.c:1628 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "ogiltigt värde för flyttalsflagga \"%s\": %s" -#: access/common/reloptions.c:1638 +#: access/common/reloptions.c:1636 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Giltiga värden är mellan \"%f\" och \"%f\"." -#: access/common/reloptions.c:1660 +#: access/common/reloptions.c:1658 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "ogiltigt värde för enum-flagga \"%s\": %s" -#: access/common/reloptions.c:1991 +#: access/common/reloptions.c:1989 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "kan inte ange lagringsparametrar för partitionerad tabell" -#: access/common/reloptions.c:1992 +#: access/common/reloptions.c:1990 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "Ange lagringsparametrar för dess löv-partition istället." -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:31 #, c-format msgid "compression method lz4 not supported" msgstr "komprimeringsmetod lz4 stöds ej" -#: access/common/toast_compression.c:34 +#: access/common/toast_compression.c:32 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "Denna funktionalitet kräver att servern byggts med lz4-stöd." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6953 -#: commands/tablecmds.c:12973 -#, c-format -msgid "too many array dimensions" -msgstr "för många array-dimensioner" - -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1913 -#, c-format -msgid "column \"%s\" cannot be declared SETOF" -msgstr "kolumn \"%s\" kan inte deklareras som SETOF" - #: access/gin/ginbulk.c:44 #, c-format msgid "posting list is too long" @@ -993,8 +1174,8 @@ msgstr "post-listan är för lång" #: access/gin/ginbulk.c:45 #, c-format -msgid "Reduce maintenance_work_mem." -msgstr "Minska maintenance_work_mem." +msgid "Reduce \"maintenance_work_mem\"." +msgstr "Minska \"maintenance_work_mem\"." #: access/gin/ginfast.c:1041 #, c-format @@ -1011,7 +1192,7 @@ msgstr "\"%s\" är inte ett GIN-index" msgid "cannot access temporary indexes of other sessions" msgstr "kan inte flytta temporära index tillhörande andra sessioner" -#: access/gin/ginget.c:273 access/nbtree/nbtinsert.c:762 +#: access/gin/ginget.c:271 access/nbtree/nbtinsert.c:762 #, c-format msgid "failed to re-find tuple within index \"%s\"" msgstr "misslyckades att återfinna tuple i index \"%s\"" @@ -1026,50 +1207,50 @@ msgstr "gamla GIN-index stöder inte hela-index-scan eller sökningar efter null msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "För att fixa detta, kör REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:3996 utils/adt/arrayfuncs.c:6683 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:147 executor/execExpr.c:2200 +#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712 +#: utils/adt/rowtypes.c:974 #, c-format msgid "could not identify a comparison function for type %s" msgstr "kunde inte hitta någon jämförelsefunktion för typen %s" -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 +#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "operatorfamilj \"%s\" för accessmetod %s innehåller supportfunktion %s med olika vänster- och höger-inputtyper" -#: access/gin/ginvalidate.c:260 +#: access/gin/ginvalidate.c:258 #, c-format 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/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 +#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 #: access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "supportfunktionsnummer %d är ogiltig för accessmetod %s" -#: access/gist/gist.c:759 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 #, 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:761 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 #, 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:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 +#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 +#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 +#: access/hash/hashutil.c:237 access/hash/hashutil.c:249 +#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 #: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Var vänlig och kör REINDEX på det." -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1196 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "lagar ofärdig split i index \"%s\", block %u" @@ -1084,52 +1265,52 @@ msgstr "picksplit-metod för kolumn %d i index \"%s\" misslyckades" msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command." 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:798 access/hash/hashutil.c:224 +#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 #: access/nbtree/nbtpage.c:810 #, 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:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 +#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "index \"%s\" har en trasig sida vid block %u" -#: access/gist/gistvalidate.c:203 +#: access/gist/gistvalidate.c:202 #, c-format msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s" msgstr "operatorfamiljen \"%s\" för accessmetod %s innehåller en ORDER BY som inte stöds för operator %s" -#: access/gist/gistvalidate.c:214 +#: access/gist/gistvalidate.c:213 #, c-format 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:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065 #, 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:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2039 commands/tablecmds.c:17462 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672 +#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508 +#: commands/indexcmds.c:2021 commands/tablecmds.c:18178 commands/view.c:81 +#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 +#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 +#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521 #, 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." -#: access/hash/hashinsert.c:86 +#: access/hash/hashinsert.c:84 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "indexradstorlek %zu överstiger hash-maximum %zu" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1011 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Värden större än en buffert-sida kan inte indexeras." @@ -1144,17 +1325,17 @@ msgstr "ogiltigt overflow-blocknummer %u" msgid "out of overflow pages in hash index \"%s\"" msgstr "slut på överspillsidor i hash-index \"%s\"" -#: access/hash/hashsearch.c:315 +#: access/hash/hashsearch.c:311 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "hash-index stöder inte hela-index-scans" -#: access/hash/hashutil.c:263 +#: access/hash/hashutil.c:262 #, c-format msgid "index \"%s\" is not a hash index" msgstr "index \"%s\" är inte ett hashträd" -#: access/hash/hashutil.c:269 +#: access/hash/hashutil.c:268 #, c-format msgid "index \"%s\" has wrong hash version" msgstr "index \"%s\" har fel hash-version" @@ -1169,228 +1350,235 @@ msgstr "operatorfamilj \"%s\" för accessmetod %s saknar supportfunktion för op 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:2027 +#: access/heap/heapam.c:2206 #, 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:2546 +#: access/heap/heapam.c:2725 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "kan inte radera tupler under en parallell operation" -#: access/heap/heapam.c:2593 +#: access/heap/heapam.c:2772 #, c-format msgid "attempted to delete invisible tuple" msgstr "försökte ta bort en osynlig tuple" -#: access/heap/heapam.c:3036 access/heap/heapam.c:5903 +#: access/heap/heapam.c:3220 access/heap/heapam.c:6501 access/index/genam.c:818 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "kan inte uppdatera tupler under en parallell operation" -#: access/heap/heapam.c:3164 +#: access/heap/heapam.c:3397 #, c-format msgid "attempted to update invisible tuple" msgstr "försökte uppdatera en osynlig tuple" -#: access/heap/heapam.c:4551 access/heap/heapam.c:4589 -#: access/heap/heapam.c:4854 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4908 access/heap/heapam.c:4946 +#: access/heap/heapam.c:5211 access/heap/heapam_handler.c:468 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "kunde inte låsa rad i relationen \"%s\"" -#: access/heap/heapam_handler.c:412 +#: access/heap/heapam.c:6314 commands/trigger.c:3340 +#: executor/nodeModifyTable.c:2376 executor/nodeModifyTable.c:2467 +#, c-format +msgid "tuple to be updated was already modified by an operation triggered by the current command" +msgstr "tupel som skall uppdateras hade redan ändrats av en operation som triggats av aktuellt kommando" + +#: access/heap/heapam_handler.c:413 #, c-format 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:536 access/heap/rewriteheap.c:659 +#: access/heap/hio.c:535 access/heap/rewriteheap.c:640 #, 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:919 +#: access/heap/rewriteheap.c:885 #, 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:1011 access/heap/rewriteheap.c:1128 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2971 access/transam/xlog.c:3162 -#: access/transam/xlog.c:3938 access/transam/xlog.c:8744 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:518 -#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/transam/xlog.c:3255 access/transam/xlog.c:3446 +#: access/transam/xlog.c:4283 access/transam/xlog.c:9269 +#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 +#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4114 +#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603 +#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 +#: utils/time/snapmgr.c:1234 #, c-format msgid "could not create file \"%s\": %m" msgstr "kunde inte skapa fil \"%s\": %m" -#: access/heap/rewriteheap.c:1138 +#: access/heap/rewriteheap.c:1104 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "kunde inte trunkera fil \"%s\" till %u: %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3021 access/transam/xlog.c:3218 -#: access/transam/xlog.c:3950 commands/dbcommands.c:530 -#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 +#: access/transam/xlog.c:3305 access/transam/xlog.c:3502 +#: access/transam/xlog.c:4295 commands/dbcommands.c:506 +#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363 #: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1605 -#: utils/init/miscinit.c:1616 utils/init/miscinit.c:1624 utils/misc/guc.c:4331 -#: utils/misc/guc.c:4362 utils/misc/guc.c:5490 utils/misc/guc.c:5508 -#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788 +#: replication/slot.c:2094 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1655 +#: utils/init/miscinit.c:1666 utils/init/miscinit.c:1674 utils/misc/guc.c:4491 +#: utils/misc/guc.c:4522 utils/misc/guc.c:5675 utils/misc/guc.c:5693 +#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 #, c-format msgid "could not write to file \"%s\": %m" msgstr "kunde inte skriva till fil \"%s\": %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:473 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "aggressiv vaccum av \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:478 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "kör vaccum på \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:626 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "avslutade vacuum av \"%s.%s.%s\": indexskanningar: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:637 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisk aggressiv vacuum för att förhindra \"wraparound\" av tabell \"%s.%s.%s\": indexskanningar: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:639 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisk vacuum för att förhindra \"wraparound\" av tabell \"%s.%s.%s\": indexskanningar: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisk vacuum av tabell \"%s.%s.%s\": indexskanningar: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "automatisk vacuum av tabell \"%s.%s.%s\": indexskanningar: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "sidor: %u borttagna, %u kvar, %u skannade (%-2f%% av totala antalet)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "tupler: %lld borttagna, %lld kvar, %lld är döda men ännu inte möjliga att ta bort\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:666 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "tupler missade: %lld döda från %u sidor som inte tagits bort på grund av låstvister vid städning\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:672 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "gräns för borttagning: %u, som var %d XID:er gammal när operationen avslutades\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "ny relfrozenxid: %u, som är %d XID:er före tidigare värde\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:687 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "ny relminmxid: %u, som är %d MXID:er för tidigare värde\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:690 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "frysta: %u sidor i tabellen (%.2f%% av totalt) hade %lld frysta tupler\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:698 msgid "index scan not needed: " msgstr "index-scan behövdes inte: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:700 msgid "index scan needed: " msgstr "index-scan behövdes: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:702 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "%u sidor i tabell (%.2f%% av totalt) hade %lld döda postidentifierare borttagna\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:707 msgid "index scan bypassed: " msgstr "index-scan överhoppad: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:709 msgid "index scan bypassed by failsafe: " msgstr "index-scan överhoppad av felsäkerhetsfunktion: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u sidor från tabell (%.2f%% totalt) har %lld döda postidentifierare\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:726 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "index \"%s\": sidor: %u totalt, %u tidigare borttagna, %u nuvarande borttagna, %u återanvändbara\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:738 commands/analyze.c:794 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "I/O-timing: läs: %.3f ms, skriv: %.3f ms\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:748 commands/analyze.c:797 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "snitt läshastighet: %.3f MB/s, snitt skrivhastighet: %.3f MB/s\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:751 commands/analyze.c:799 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "bufferanvändning: %lld träffar, %lld missar, %lld nersmutsade\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:756 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "WAL-användning: %lld poster, %lld hela sidor, %llu bytes\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:803 #, c-format msgid "system usage: %s" msgstr "systemanvändning: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2170 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "tabell \"%s\": tog bort %lld döda postidentifierare i %u sidor" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2324 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "hoppar över ej nödvändigt underhåll av tabell \"%s.%s.%s\" som skyddsåtgärd efter %d index-scan" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2327 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "Tabellens relfrozenxid eller relminmxid är för långt bak i tiden." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2328 #, c-format msgid "" "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" @@ -1399,67 +1587,67 @@ msgstr "" "Överväg att öka konfigurationsparametern \"maintenance_work_mem\" eller \"autovacuum_work_mem\".\n" "Du kan också överväga andra metoder för att VACUUM skall hinna med allokeringen av transactions-ID." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2590 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": stoppar trunkering pga konfliktande låskrav" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2660 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "tabell \"%s\": trunkerade %u till %u sidor" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:2722 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "tabell \"%s\": pausar trunkering pga konfliktande låskrav" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:2841 #, c-format 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:3399 +#: access/heap/vacuumlazy.c:3108 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "vid skanning av block %u offset %u i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3111 #, 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:3406 +#: access/heap/vacuumlazy.c:3115 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "vid skanning av relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3123 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "vid vacuum av block %u offset %u i relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3126 #, 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:3421 +#: access/heap/vacuumlazy.c:3130 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "vid vacuum av relation \"%s.%s\"" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3135 commands/vacuumparallel.c:1112 #, 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:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1118 #, 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:3437 +#: access/heap/vacuumlazy.c:3146 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "vid trunkering av relation \"%s.%s\" till %u block" @@ -1474,19 +1662,24 @@ msgstr "accessmetod \"%s\" har inte typ %s" msgid "index access method \"%s\" does not have a handler" msgstr "indexaccessmetod \"%s\" har ingen hanterare" -#: access/index/genam.c:490 +#: access/index/genam.c:489 #, c-format msgid "transaction aborted during system catalog scan" msgstr "transaktionen avbruten under scan av systemkatalog" -#: access/index/indexam.c:142 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2867 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17163 commands/tablecmds.c:18935 +#: access/index/genam.c:657 access/index/indexam.c:82 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "kan inte använda index \"%s\" som håller på att indexeras om" + +#: access/index/indexam.c:203 catalog/objectaddress.c:1356 +#: commands/indexcmds.c:2851 commands/tablecmds.c:281 commands/tablecmds.c:305 +#: commands/tablecmds.c:17873 commands/tablecmds.c:19762 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" är inte ett index" -#: access/index/indexam.c:979 +#: access/index/indexam.c:1028 #, c-format msgid "operator class %s has no options" msgstr "operatorklass %s har inga flaggor" @@ -1507,7 +1700,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Det kan bero på ett icke-immutable indexuttryck." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2317 +#: parser/parse_utilcmd.c:2323 #, c-format msgid "index \"%s\" is not a btree" msgstr "index \"%s\" är inte ett btree" @@ -1517,27 +1710,27 @@ msgstr "index \"%s\" är inte ett btree" 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:1866 +#: access/nbtree/nbtpage.c:1861 #, 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:1868 +#: access/nbtree/nbtpage.c:1863 #, 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." -#: access/nbtree/nbtutils.c:2662 +#: access/nbtree/nbtutils.c:5108 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "indexradstorlek %zu överstiger btree version %u maximum %zu för index \"%s\"" -#: access/nbtree/nbtutils.c:2668 +#: access/nbtree/nbtutils.c:5114 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Indexrad refererar tupel (%u,%u) i relation \"%s\"." -#: access/nbtree/nbtutils.c:2672 +#: access/nbtree/nbtutils.c:5118 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1552,12 +1745,18 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "operatorfamilj \"%s\" för accessmetod %s saknar supportfunktioner för typerna %s och %s" +#: access/sequence/sequence.c:75 access/table/table.c:145 +#: optimizer/util/plancat.c:144 +#, c-format +msgid "cannot open relation \"%s\"" +msgstr "kan inte öppna relationen \"%s\"" + #: access/spgist/spgutils.c:245 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "komprimeringsmetod måste definieras när lövtypen skiljer sig från indatatypen" -#: access/spgist/spgutils.c:1008 +#: access/spgist/spgutils.c:1028 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "SP-GiST inre tuplestorlek %zu överstiger maximala %zu" @@ -1572,314 +1771,313 @@ msgstr "SP-GiST lövdatatyp %s matchar deklarerad typ %s" msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "operatorfamilj \"%s\" för accessmetod %s saknar supportfunktion %d för typ %s" -#: access/table/table.c:145 optimizer/util/plancat.c:145 -#, c-format -msgid "cannot open relation \"%s\"" -msgstr "kan inte öppna relationen \"%s\"" - -#: access/table/tableam.c:265 +#: access/table/tableam.c:255 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "tid (%u, %u) är inte giltigt för relation \"%s\"" -#: access/table/tableamapi.c:116 +#: access/table/tableamapi.c:109 #, c-format -msgid "%s cannot be empty." -msgstr "%s får inte vara tom." +msgid "\"%s\" cannot be empty." +msgstr "\"%s\" får inte vara tom." -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4774 +#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4859 #, c-format -msgid "%s is too long (maximum %d characters)." -msgstr "%s är för lång (maximalt %d tecken)." +msgid "\"%s\" is too long (maximum %d characters)." +msgstr "\"%s\" är för lång (maximalt %d tecken)." -#: access/table/tableamapi.c:146 +#: access/table/tableamapi.c:139 #, c-format msgid "table access method \"%s\" does not exist" msgstr "tabellaccessmetod \"%s\" existerar inte" -#: access/table/tableamapi.c:151 +#: access/table/tableamapi.c:144 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "Tabellaccessmetod \"%s\" existerar inte." -#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152 +#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151 #, c-format msgid "sample percentage must be between 0 and 100" msgstr "urvalsprocent måste vara mellan 0 och 100" -#: access/transam/commit_ts.c:279 +#: access/transam/commit_ts.c:287 #, 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:377 +#: access/transam/commit_ts.c:385 #, c-format msgid "could not get commit timestamp data" msgstr "kunde inte hämta commit-tidsstämpeldata" -#: access/transam/commit_ts.c:379 +#: access/transam/commit_ts.c:387 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "Se till att konfigurationsparametern \"%s\" är satt på primär-servern." -#: access/transam/commit_ts.c:381 +#: access/transam/commit_ts.c:389 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Se till att konfigurationsparametern \"%s\" är satt." -#: access/transam/multixact.c:1023 +#: access/transam/multixact.c:1091 #, c-format -msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" -msgstr "databasen tar inte emot kommandon som genererar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen \"%s\"" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\"" +msgstr "databasen tar inte emot kommandon som tilldelar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen \"%s\"" -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1093 access/transam/multixact.c:1100 +#: access/transam/multixact.c:1124 access/transam/multixact.c:1133 +#: access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"Utför en hela databasen-VACUUM i den databasen.\n" +"Utför en databas-VACUUM i hela 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:1030 +#: access/transam/multixact.c:1098 #, c-format -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" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u" +msgstr "databasen tar inte emot kommandon som tilldelar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen med OID %u" -#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1119 access/transam/multixact.c:2474 #, 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:1060 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1128 access/transam/multixact.c:2483 #, 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" msgstr[0] "databas med OID %u måste städas (vacuum) innan %u till MultiXactId används" msgstr[1] "databas med OID %u måste städas (vacuum) innan %u till MultiXactId:er används" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1189 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "multixact \"members\"-gräns överskriden" -#: access/transam/multixact.c:1122 +#: access/transam/multixact.c:1190 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "Detta kommando skapar en multixact med %u medlemmar, men återstående utrymmer räcker bara till %u medlem." msgstr[1] "Detta kommando skapar en multixact med %u medlemmar, men återstående utrymmer räcker bara till %u medlemmar." -#: access/transam/multixact.c:1127 +#: access/transam/multixact.c:1195 #, c-format -msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Kör en hela-databas-VACUUM i databas med OID %u med reducerade iställningar vacuum_multixact_freeze_min_age och vacuum_multixact_freeze_table_age." +msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." +msgstr "Kör en databas-VACUUM i hela databasen med OID %u med reducerade inställningar för \"vacuum_multixact_freeze_min_age\" och \"vacuum_multixact_freeze_table_age\"." -#: access/transam/multixact.c:1158 +#: access/transam/multixact.c:1226 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "databas med OID %u måste städas innan %d mer multixact-medlem används" msgstr[1] "databas med OID %u måste städas innan %d fler multixact-medlemmar används" -#: access/transam/multixact.c:1163 +#: access/transam/multixact.c:1231 #, c-format -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." +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 databas-VACUUM i hela den databasen med reducerade inställningar för \"vacuum_multixact_freeze_min_age\" och \"vacuum_multixact_freeze_table_age\"." -#: access/transam/multixact.c:1302 +#: access/transam/multixact.c:1371 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u finns inte längre -- troligen en wraparound" -#: access/transam/multixact.c:1308 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u har inte skapats än -- troligen en wraparound" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2479 access/transam/multixact.c:2488 #, c-format msgid "" -"To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" +"To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"För att undvika att databasen stängs ner, utför en hela databas-VACCUM i den databasen.\n" +"För att undvika fel vid tilldelning av MultiXactId så utför en databas-VACCUM för hela 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:2622 +#: access/transam/multixact.c:2767 #, 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:2644 +#: access/transam/multixact.c:2789 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "MultiXact-medlems wraparound-skydd är nu påslagen" -#: access/transam/multixact.c:3027 +#: access/transam/multixact.c:3180 #, 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:3045 +#: access/transam/multixact.c:3198 #, 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:3359 +#: access/transam/multixact.c:3517 #, c-format msgid "invalid MultiXactId: %u" msgstr "ogiltig MultiXactId: %u" -#: access/transam/parallel.c:729 access/transam/parallel.c:848 +#: access/transam/parallel.c:748 access/transam/parallel.c:867 #, c-format msgid "parallel worker failed to initialize" msgstr "parallell arbetare misslyckades med initiering" -#: access/transam/parallel.c:730 access/transam/parallel.c:849 +#: access/transam/parallel.c:749 access/transam/parallel.c:868 #, c-format msgid "More details may be available in the server log." msgstr "Fler detaljer kan finnas i serverloggen." -#: access/transam/parallel.c:910 +#: access/transam/parallel.c:929 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster avslutade under en parallell transaktion" -#: access/transam/parallel.c:1097 +#: access/transam/parallel.c:1116 #, c-format msgid "lost connection to parallel worker" msgstr "tappad kopplingen till parallell arbetare" -#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 +#: access/transam/parallel.c:1172 access/transam/parallel.c:1174 msgid "parallel worker" msgstr "parallell arbetare" -#: access/transam/parallel.c:1319 replication/logical/applyparallelworker.c:893 +#: access/transam/parallel.c:1344 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "kunde inte skapa dynamiskt delat minnessegment: %m" -#: access/transam/parallel.c:1324 replication/logical/applyparallelworker.c:899 +#: access/transam/parallel.c:1349 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "ogiltigt magiskt nummer i dynamiskt delat minnessegment" -#: access/transam/rmgr.c:84 +#: access/transam/rmgr.c:93 #, c-format msgid "resource manager with ID %d not registered" msgstr "resurshanterare med ID %d är inte registrerad" -#: access/transam/rmgr.c:85 +#: access/transam/rmgr.c:94 #, c-format -msgid "Include the extension module that implements this resource manager in shared_preload_libraries." -msgstr "Inkludera utökningsmodulen som implementerar denna resurshanterar i shared_preload_libraries." +msgid "Include the extension module that implements this resource manager in \"shared_preload_libraries\"." +msgstr "Inkludera utökningsmodulen som implementerar denna resurshanterare i \"shared_preload_libraries\"." -#: access/transam/rmgr.c:101 +#: access/transam/rmgr.c:110 #, c-format msgid "custom resource manager name is invalid" msgstr "namn på egendefinierad resurshanterare är ogiltigt" -#: access/transam/rmgr.c:102 +#: access/transam/rmgr.c:111 #, c-format msgid "Provide a non-empty name for the custom resource manager." msgstr "Ange ett icke-tomt namn för den egendefinierade resurshanteraren." -#: access/transam/rmgr.c:105 +#: access/transam/rmgr.c:114 #, c-format msgid "custom resource manager ID %d is out of range" msgstr "egendefinierat resurshanterar-ID %d är utanför giltigt intervall" -#: access/transam/rmgr.c:106 +#: access/transam/rmgr.c:115 #, c-format msgid "Provide a custom resource manager ID between %d and %d." msgstr "Ange ett egendefinierat resurshanterar-ID mellan %d och %d." -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:120 access/transam/rmgr.c:125 +#: access/transam/rmgr.c:137 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" msgstr "misslyckades med att registera en egendefinierad resurshanterare \"%s\" med ID %d" -#: access/transam/rmgr.c:112 +#: access/transam/rmgr.c:121 #, c-format -msgid "Custom resource manager must be registered while initializing modules in shared_preload_libraries." -msgstr "Egendefinierad resurshanterare måste vara registerad när man initierar moduler i shared_preload_libraries." +msgid "Custom resource manager must be registered while initializing modules in \"shared_preload_libraries\"." +msgstr "Egendefinierad resurshanterare måste vara registerad när man initierar moduler i \"shared_preload_libraries\"." -#: access/transam/rmgr.c:117 +#: access/transam/rmgr.c:126 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." msgstr "Egendefinierad resurshanterare \"%s\" är redan registrerade med samma ID." -#: access/transam/rmgr.c:129 +#: access/transam/rmgr.c:138 #, c-format msgid "Existing resource manager with ID %d has the same name." msgstr "Det finns redan en resurshanterare med ID %d som har samma namn." -#: access/transam/rmgr.c:135 +#: access/transam/rmgr.c:144 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" msgstr "registrerade egendefinerad resurshanterare \"%s\" med ID %d" -#: access/transam/slru.c:714 +#: access/transam/slru.c:361 +#, c-format +msgid "\"%s\" must be a multiple of %d" +msgstr "\"%s\" måste vara en multiple av \"%d\"" + +#: access/transam/slru.c:830 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "filen \"%s\" existerar inte, läses som nollor" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:1059 access/transam/slru.c:1065 +#: access/transam/slru.c:1073 access/transam/slru.c:1078 +#: access/transam/slru.c:1085 access/transam/slru.c:1090 +#: access/transam/slru.c:1097 access/transam/slru.c:1104 #, c-format msgid "could not access status of transaction %u" msgstr "kunde inte läsa status på transaktion %u" -#: access/transam/slru.c:947 +#: access/transam/slru.c:1060 #, c-format msgid "Could not open file \"%s\": %m." msgstr "Kunde inte öppna fil \"%s\": %m." -#: access/transam/slru.c:953 +#: access/transam/slru.c:1066 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "Kunde inte söka i fil \"%s\" till offset %d: %m." -#: access/transam/slru.c:961 +#: access/transam/slru.c:1074 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "Kunde inte läsa från fil \"%s\" på offset %d: %m." -#: access/transam/slru.c:966 +#: access/transam/slru.c:1079 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "Kunde inte läsa från fil \"%s\" på offset %d: läste för få bytes." -#: access/transam/slru.c:973 +#: access/transam/slru.c:1086 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "Kunde inte skriva till fil \"%s\" på offset %d: %m." -#: access/transam/slru.c:978 +#: access/transam/slru.c:1091 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "Kunde inte skriva till fil \"%s\" på offset %d: skrev för få bytes." -#: access/transam/slru.c:985 +#: access/transam/slru.c:1098 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "Kunde inte fsync:a fil \"%s\": %m." -#: access/transam/slru.c:992 +#: access/transam/slru.c:1105 #, c-format msgid "Could not close file \"%s\": %m." msgstr "Kunde inte stänga fil \"%s\": %m." -#: access/transam/slru.c:1253 +#: access/transam/slru.c:1431 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "Kunde inte trunkera katalog \"%s\": trolig wraparound" @@ -1924,788 +2122,824 @@ msgstr "Tidslinje-ID:er måste vara mindre än barnens tidslinje-ID:er." msgid "requested timeline %u is not in this server's history" msgstr "efterfrågad tidslinje %u finns inte i denna servers historik" -#: access/transam/twophase.c:386 +#: access/transam/twophase.c:368 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "transaktionsidentifierare \"%s\" är för lång" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:375 #, c-format msgid "prepared transactions are disabled" msgstr "förberedda transaktioner är avslagna" -#: access/transam/twophase.c:394 +#: access/transam/twophase.c:376 #, c-format -msgid "Set max_prepared_transactions to a nonzero value." -msgstr "Sätt max_prepared_transactions till ett ickenollvärde." +msgid "Set \"max_prepared_transactions\" to a nonzero value." +msgstr "Sätt \"max_prepared_transactions\" till ett värde som inte är noll." -#: access/transam/twophase.c:413 +#: access/transam/twophase.c:395 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "transaktionsidentifierare \"%s\" används redan" -#: access/transam/twophase.c:422 access/transam/twophase.c:2517 +#: access/transam/twophase.c:404 access/transam/twophase.c:2531 #, c-format msgid "maximum number of prepared transactions reached" msgstr "maximalt antal förberedda transaktioner har uppnåtts" -#: access/transam/twophase.c:423 access/transam/twophase.c:2518 +#: access/transam/twophase.c:405 access/transam/twophase.c:2532 #, c-format -msgid "Increase max_prepared_transactions (currently %d)." -msgstr "Öka max_prepared_transactions (nu %d)." +msgid "Increase \"max_prepared_transactions\" (currently %d)." +msgstr "Öka \"max_prepared_transactions\" (nu %d)." -#: access/transam/twophase.c:599 +#: access/transam/twophase.c:580 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "förberedd transaktion med identifierare \"%s\" är upptagen" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:586 #, 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:606 +#: access/transam/twophase.c:587 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Måste vara superuser eller den användare som förberedde transaktionen" -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:598 #, c-format msgid "prepared transaction belongs to another database" msgstr "förberedda transaktionen tillhör en annan databas" -#: access/transam/twophase.c:618 +#: access/transam/twophase.c:599 #, 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:633 +#: access/transam/twophase.c:614 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "förberedd transaktion med identifierare \"%s\" finns inte" -#: access/transam/twophase.c:1168 +#: access/transam/twophase.c:1174 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "tvåfas-statusfilens maximala längd överskriden" -#: access/transam/twophase.c:1323 +#: access/transam/twophase.c:1329 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" msgstr[0] "felaktig storlek på fil \"%s\": %lld byte" msgstr[1] "felaktig storlek på fil \"%s\": %lld bytes" -#: access/transam/twophase.c:1332 +#: access/transam/twophase.c:1338 #, 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:1350 +#: access/transam/twophase.c:1356 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "kunde inte läsa fil \"%s\": läste %d av %lld" -#: access/transam/twophase.c:1365 +#: access/transam/twophase.c:1371 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "felaktigt magiskt nummer lagrat i fil \"%s\"" -#: access/transam/twophase.c:1371 +#: access/transam/twophase.c:1377 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "felaktig storlek lagrad i fil \"%s\"" -#: access/transam/twophase.c:1383 +#: access/transam/twophase.c:1389 #, 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:1413 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1419 access/transam/xlogrecovery.c:565 +#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211 +#: replication/walsender.c:836 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Misslyckades vid allokering av en WAL-läs-processor." -#: access/transam/twophase.c:1423 +#: access/transam/twophase.c:1429 #, 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:1428 +#: access/transam/twophase.c:1434 #, 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:1436 +#: access/transam/twophase.c:1442 #, 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:1732 +#: access/transam/twophase.c:1745 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "kan inte återskapa fil \"%s\": %m" -#: access/transam/twophase.c:1859 +#: access/transam/twophase.c:1872 #, 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:2093 +#: access/transam/twophase.c:2107 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "återskapar förberedd transaktion %u från delat minne" -#: access/transam/twophase.c:2186 +#: access/transam/twophase.c:2200 #, 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:2193 +#: access/transam/twophase.c:2207 #, 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:2206 +#: access/transam/twophase.c:2220 #, 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:2213 +#: access/transam/twophase.c:2227 #, 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:2238 +#: access/transam/twophase.c:2252 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "korrupt tvåfas-statusfil för transaktion %u" -#: access/transam/twophase.c:2243 +#: access/transam/twophase.c:2257 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "korrupt tvåfas-status i minnet för transaktion %u" -#: access/transam/twophase.c:2500 +#: access/transam/twophase.c:2514 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "kunde inte återställa tvåfas-statusfil för transaktion %u" -#: access/transam/twophase.c:2502 +#: access/transam/twophase.c:2516 #, c-format msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." msgstr "Statefil för tvåfas har hittats i WAL-post %X/%X men denna transaktion har redan återställts från disk." -#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 -#: utils/fmgr/dfmgr.c:415 +#: access/transam/twophase.c:2524 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 #, c-format msgid "could not access file \"%s\": %m" msgstr "kunde inte komma åt filen \"%s\": %m" -#: access/transam/varsup.c:129 +#: access/transam/varsup.c:156 +#, c-format +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"" +msgstr "databasen tar inte emot kommandon som tilldelar nya transaktions-ID för att förhinda dataförlust vid \"wraparound\" i databasen \"%s\"" + +#: access/transam/varsup.c:163 +#, c-format +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u" +msgstr "databasen tar inte emot kommandon som tilldelar nya transaktions-ID för att förhinda dataförlust vid \"wraparound\" i databasen med OID %u" + +#: access/transam/varsup.c:175 access/transam/varsup.c:490 #, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\"" -msgstr "databasen tar inte emot kommandon för att förhinda dataförlust vid \"wraparound\" i databasen \"%s\"" +msgid "database \"%s\" must be vacuumed within %u transactions" +msgstr "databas \"%s\" måste städas (vacuum) inom %u transaktioner" -#: access/transam/varsup.c:131 access/transam/varsup.c:138 +#: access/transam/varsup.c:178 #, c-format msgid "" -"Stop the postmaster and vacuum that database in single-user mode.\n" +"To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "" -"Stoppa postmaster och städa (vacuum) den databasen i enanvändarläge.\n" -"Du kan också behöva commit:a eller rulla tillbaka förberedda transaktioner eller slänga gamla replikeringsslottar." +"För att undvika fel vid tilldelning av transaktions-ID så utför en databas-VACCUM för hela den databasen.\n" +"Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktioner eller slänga gamla replikeringsslottar." -#: access/transam/varsup.c:136 +#: access/transam/varsup.c:182 access/transam/varsup.c:497 #, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database with OID %u" -msgstr "databasen tar inte emot kommandon för att förhinda dataförlust vid wraparound i databas med OID %u" +msgid "database with OID %u must be vacuumed within %u transactions" +msgstr "databas med OID %u måste städas (vacuum) inom %u transaktioner" -#: access/transam/varsup.c:148 access/transam/varsup.c:463 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 +#: access/transam/varsup.c:500 #, c-format -msgid "database \"%s\" must be vacuumed within %u transactions" -msgstr "databas \"%s\" måste städas (vacuum) inom %u transaktioner" +msgid "" +"To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "" +"För att undvika fel vid tilldelning av XID så utför en databas-VACCUM för hela den databasen.\n" +"Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktioner eller slänga gamla replikeringsslottar." -#: access/transam/varsup.c:155 access/transam/varsup.c:470 +#: access/transam/xact.c:649 #, c-format -msgid "database with OID %u must be vacuumed within %u transactions" -msgstr "databas med OID %u måste städas (vacuum) inom %u transaktioner" +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "can inte tilldela transaktions-ID under en parallell operation" + +#: access/transam/xact.c:840 +#, c-format +msgid "cannot modify data in a parallel worker" +msgstr "kan inte modifiera data i en parellell arbetare" + +#: access/transam/xact.c:1115 +#, c-format +msgid "cannot start commands during a parallel operation" +msgstr "kan inte starta kommandon under en parallell operation" -#: access/transam/xact.c:1102 +#: access/transam/xact.c:1123 #, 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:1643 +#: access/transam/xact.c:1664 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "maximalt antal commit:ade undertransaktioner (%d) överskridet" -#: access/transam/xact.c:2513 +#: access/transam/xact.c:2561 #, 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:2523 +#: access/transam/xact.c:2571 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "kan inte göra PREPARE på en transaktion som har exporterade snapshots" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3490 +#: access/transam/xact.c:3593 #, 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:3500 +#: access/transam/xact.c:3603 #, c-format msgid "%s cannot run inside a subtransaction" -msgstr "%s kan inte köras i ett undertransaktionsblock" +msgstr "%s kan inte köras i en undertransaktion" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3510 +#: access/transam/xact.c:3613 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s kan inte köras inuti en pipeline" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3520 +#: access/transam/xact.c:3623 #, 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:3591 access/transam/xact.c:3916 -#: access/transam/xact.c:3995 access/transam/xact.c:4118 -#: access/transam/xact.c:4269 access/transam/xact.c:4338 -#: access/transam/xact.c:4449 +#: access/transam/xact.c:3694 access/transam/xact.c:4019 +#: access/transam/xact.c:4098 access/transam/xact.c:4221 +#: access/transam/xact.c:4372 access/transam/xact.c:4441 +#: access/transam/xact.c:4552 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s kan bara användas i transaktionsblock" -#: access/transam/xact.c:3802 +#: access/transam/xact.c:3905 #, c-format msgid "there is already a transaction in progress" msgstr "det är redan en transaktion igång" -#: access/transam/xact.c:3921 access/transam/xact.c:4000 -#: access/transam/xact.c:4123 +#: access/transam/xact.c:4024 access/transam/xact.c:4103 +#: access/transam/xact.c:4226 #, c-format msgid "there is no transaction in progress" msgstr "ingen transaktion pågår" -#: access/transam/xact.c:4011 +#: access/transam/xact.c:4114 #, c-format msgid "cannot commit during a parallel operation" msgstr "kan inte commit:a under en parallell operation" -#: access/transam/xact.c:4134 +#: access/transam/xact.c:4237 #, c-format msgid "cannot abort during a parallel operation" msgstr "can inte avbryta under en parallell operation" -#: access/transam/xact.c:4233 +#: access/transam/xact.c:4336 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "kan inte definiera sparpunkter under en parallell operation" -#: access/transam/xact.c:4320 +#: access/transam/xact.c:4423 #, 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:4330 access/transam/xact.c:4381 -#: access/transam/xact.c:4441 access/transam/xact.c:4490 +#: access/transam/xact.c:4433 access/transam/xact.c:4484 +#: access/transam/xact.c:4544 access/transam/xact.c:4593 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "sparpunkt \"%s\" existerar inte" -#: access/transam/xact.c:4387 access/transam/xact.c:4496 +#: access/transam/xact.c:4490 access/transam/xact.c:4599 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "sparpunkt \"%s\" finns inte inom aktuell sparpunktsnivå" -#: access/transam/xact.c:4429 +#: access/transam/xact.c:4532 #, 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:4557 +#: access/transam/xact.c:5376 #, c-format -msgid "cannot start subtransactions during a parallel operation" -msgstr "kan inte starta subtransaktioner under en parallell operation" +msgid "cannot have more than 2^32-1 subtransactions in a transaction" +msgstr "kan inte ha mer än 2^32-1 undertransaktioner i en transaktion" -#: access/transam/xact.c:4625 +#: access/transam/xlog.c:1542 #, c-format -msgid "cannot commit subtransactions during a parallel operation" -msgstr "kan inte commit:a subtransaktioner undert en parallell operation" +msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" +msgstr "förfrågan att flush:a efter slutet av genererad WAL; efterfrågad %X/%X, aktuell position %X/%X" -#: access/transam/xact.c:5271 +#: access/transam/xlog.c:1769 #, 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" +msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X" +msgstr "kan inte läsa efter slutet av genererad WAL; efterfrågad %X/%X, aktuell position %X/%X" -#: access/transam/xlog.c:1466 +#: access/transam/xlog.c:2210 access/transam/xlog.c:4501 #, c-format -msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" -msgstr "förfrågan att flush:a efter slutet av genererad WAL; efterfrågad %X/%X, aktuell position %X/%X" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL-segmentstorleken måste vara en tvåpotens mellan 1 MB och 1 GB." #: access/transam/xlog.c:2228 #, 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" +msgid "\"%s\" must be set to -1 during binary upgrade mode." +msgstr "\"%s\" måsta vara satt till -1 i binärt uppgraderingsläge" + +#: access/transam/xlog.c:2477 +#, 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:3455 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:3739 access/transam/xlogutils.c:831 +#: replication/walsender.c:3045 #, 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:3739 +#: access/transam/xlog.c:4061 #, c-format msgid "could not rename file \"%s\": %m" msgstr "kunde inte byta namn på fil \"%s\": %m" -#: access/transam/xlog.c:3781 access/transam/xlog.c:3791 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4115 +#: access/transam/xlog.c:4136 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "krävd WAL-katalog \"%s\" finns inte" -#: access/transam/xlog.c:3797 +#: access/transam/xlog.c:4121 access/transam/xlog.c:4142 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "skapar saknad WAL-katalog \"%s\"" -#: access/transam/xlog.c:3800 commands/dbcommands.c:3172 +#: access/transam/xlog.c:4125 access/transam/xlog.c:4145 +#: commands/dbcommands.c:3262 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "kunde inte skapa saknad katalog \"%s\": %m" -#: access/transam/xlog.c:3867 +#: access/transam/xlog.c:4212 #, c-format msgid "could not generate secret authorization token" msgstr "kunde inte generera hemligt auktorisationstoken" -#: access/transam/xlog.c:4017 access/transam/xlog.c:4026 -#: access/transam/xlog.c:4050 access/transam/xlog.c:4057 -#: access/transam/xlog.c:4064 access/transam/xlog.c:4069 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4097 -#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 -#: access/transam/xlog.c:4120 access/transam/xlog.c:4127 -#: utils/init/miscinit.c:1762 +#: access/transam/xlog.c:4363 access/transam/xlog.c:4373 +#: access/transam/xlog.c:4399 access/transam/xlog.c:4407 +#: access/transam/xlog.c:4415 access/transam/xlog.c:4421 +#: access/transam/xlog.c:4429 access/transam/xlog.c:4437 +#: access/transam/xlog.c:4445 access/transam/xlog.c:4453 +#: access/transam/xlog.c:4461 access/transam/xlog.c:4469 +#: access/transam/xlog.c:4479 access/transam/xlog.c:4487 +#: utils/init/miscinit.c:1812 #, c-format msgid "database files are incompatible with server" msgstr "databasfilerna är inkompatibla med servern" -#: access/transam/xlog.c:4018 +#: access/transam/xlog.c:4364 #, 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:4022 +#: access/transam/xlog.c:4368 #, 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:4027 +#: access/transam/xlog.c:4374 #, 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:4030 access/transam/xlog.c:4054 -#: access/transam/xlog.c:4061 access/transam/xlog.c:4066 +#: access/transam/xlog.c:4377 access/transam/xlog.c:4403 +#: access/transam/xlog.c:4411 access/transam/xlog.c:4417 #, c-format msgid "It looks like you need to initdb." msgstr "Du behöver troligen köra initdb." -#: access/transam/xlog.c:4041 +#: access/transam/xlog.c:4389 #, c-format msgid "incorrect checksum in control file" msgstr "ogiltig kontrollsumma kontrollfil" -#: access/transam/xlog.c:4051 +#: access/transam/xlog.c:4400 #, 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:4058 +#: access/transam/xlog.c:4408 #, 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:4065 +#: access/transam/xlog.c:4416 #, 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:4070 +#: access/transam/xlog.c:4422 #, 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:4073 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4094 -#: access/transam/xlog.c:4101 access/transam/xlog.c:4108 -#: access/transam/xlog.c:4115 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4425 access/transam/xlog.c:4433 +#: access/transam/xlog.c:4441 access/transam/xlog.c:4449 +#: access/transam/xlog.c:4457 access/transam/xlog.c:4465 +#: access/transam/xlog.c:4473 access/transam/xlog.c:4482 +#: access/transam/xlog.c:4490 #, 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:4077 +#: access/transam/xlog.c:4430 #, 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:4084 +#: access/transam/xlog.c:4438 #, 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:4091 +#: access/transam/xlog.c:4446 #, 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:4098 +#: access/transam/xlog.c:4454 #, 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:4105 +#: access/transam/xlog.c:4462 #, 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:4112 +#: access/transam/xlog.c:4470 #, 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:4121 +#: access/transam/xlog.c:4480 #, 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:4128 +#: access/transam/xlog.c:4488 #, 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:4137 +#: access/transam/xlog.c:4497 #, 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" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" +msgstr[1] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" -#: access/transam/xlog.c:4149 +#: access/transam/xlog.c:4510 #, 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:4153 +#: access/transam/xlog.c:4514 #, 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:4308 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2536 commands/variable.c:72 -#: utils/error/elog.c:2205 +#: access/transam/xlog.c:4662 catalog/namespace.c:4696 +#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 +#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247 #, c-format msgid "List syntax is invalid." msgstr "List-syntaxen är ogiltig." -#: access/transam/xlog.c:4354 commands/user.c:2552 commands/variable.c:173 -#: utils/error/elog.c:2231 +#: access/transam/xlog.c:4708 commands/user.c:2545 commands/variable.c:173 +#: tcop/postgres.c:3731 utils/error/elog.c:2273 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Okänt nyckelord: \"%s\"" -#: access/transam/xlog.c:4768 +#: access/transam/xlog.c:5129 #, 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:4776 +#: access/transam/xlog.c:5137 #, 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:4782 +#: access/transam/xlog.c:5143 #, 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:4999 +#: access/transam/xlog.c:5368 #, c-format -msgid "WAL was generated with wal_level=minimal, cannot continue recovering" -msgstr "WAL genererades med wal_level=minimal, kan inte fortsätta återställande" +msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering" +msgstr "WAL genererades med \"wal_level=minimal\", kan inte fortsätta återställande" -#: access/transam/xlog.c:5000 +#: access/transam/xlog.c:5369 #, c-format -msgid "This happens if you temporarily set wal_level=minimal on the server." -msgstr "Detta händer om du temporärt sätter wal_level=minimal på servern." +msgid "This happens if you temporarily set \"wal_level=minimal\" on the server." +msgstr "Detta händer om du temporärt sätter \"wal_level=minimal\" på servern." -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5370 #, c-format -msgid "Use a backup taken after setting wal_level to higher than minimal." -msgstr "Använd en backup som är tagen efter att inställningen wal_level satts till ett högre värde än minimal." +msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." +msgstr "Använd en backup som är tagen efter att inställningen \"wal_level\" satts till ett högre värde än \"minimal\"." -#: access/transam/xlog.c:5065 +#: access/transam/xlog.c:5435 #, c-format msgid "control file contains invalid checkpoint location" msgstr "kontrollfil innehåller ogiltig checkpoint-position" -#: access/transam/xlog.c:5076 +#: access/transam/xlog.c:5446 #, c-format msgid "database system was shut down at %s" msgstr "databassystemet stängdes ner vid %s" -#: access/transam/xlog.c:5082 +#: access/transam/xlog.c:5452 #, 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:5088 +#: access/transam/xlog.c:5458 #, 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:5094 +#: access/transam/xlog.c:5464 #, 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:5096 +#: access/transam/xlog.c:5466 #, 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:5102 +#: access/transam/xlog.c:5472 #, 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:5104 +#: access/transam/xlog.c:5474 #, 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:5110 +#: access/transam/xlog.c:5480 #, 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:5116 +#: access/transam/xlog.c:5487 #, c-format msgid "control file contains invalid database cluster state" msgstr "kontrollfil innehåller ogiltigt databasklustertillstånd" -#: access/transam/xlog.c:5500 +#: access/transam/xlog.c:5875 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL slutar före sluttiden av online-backup:en" -#: access/transam/xlog.c:5501 +#: access/transam/xlog.c:5876 #, 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:5504 +#: access/transam/xlog.c:5880 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL avslutas innan konstistent återställningspunkt" -#: access/transam/xlog.c:5550 +#: access/transam/xlog.c:5926 #, c-format msgid "selected new timeline ID: %u" msgstr "valt nytt tidslinje-ID: %u" -#: access/transam/xlog.c:5583 +#: access/transam/xlog.c:5959 #, c-format msgid "archive recovery complete" msgstr "arkivåterställning klar" -#: access/transam/xlog.c:6189 +#: access/transam/xlog.c:6612 #, c-format msgid "shutting down" msgstr "stänger ner" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6228 +#: access/transam/xlog.c:6651 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "restartpoint startar:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6240 +#: access/transam/xlog.c:6663 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "checkpoint startar:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6305 +#: access/transam/xlog.c:6728 #, c-format msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "restartpoint klar: skrev %d buffers (%.1f%%); %d WAL-fil(er) tillagda, %d borttagna, %d recyclade; skriv=%ld.%03d s, synk=%ld.%03d s, totalt=%ld.%03d s; synk-filer=%d, längsta=%ld.%03d s, genomsnitt=%ld.%03d s; distans=%d kB, estimat=%d kB; lsn=%X/%X, redo-lsn=%X/%X" -#: access/transam/xlog.c:6328 +#: access/transam/xlog.c:6751 #, c-format msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "checkpoint klar: skrev %d buffers (%.1f%%); %d WAL-fil(er) tillagda, %d borttagna, %d recyclade; skriv=%ld.%03d s, synk=%ld.%03d s, totalt=%ld.%03d s; synk-filer=%d, längsta=%ld.%03d s, genomsnitt=%ld.%03d s; distans=%d kB, estimat=%d kB; lsn=%X/%X, redo-lsn=%X/%X" -#: access/transam/xlog.c:6766 +#: access/transam/xlog.c:7233 #, 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:7327 +#: access/transam/xlog.c:7818 #, c-format msgid "recovery restart point at %X/%X" msgstr "återställningens omstartspunkt vid %X/%X" -#: access/transam/xlog.c:7329 +#: access/transam/xlog.c:7820 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlog.c:7577 +#: access/transam/xlog.c:8082 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "återställningspunkt \"%s\" skapad vid %X/%X" -#: access/transam/xlog.c:7784 +#: access/transam/xlog.c:8289 #, 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:7841 +#: access/transam/xlog.c:8347 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i checkpoint-post för nedstängning" -#: access/transam/xlog.c:7899 +#: access/transam/xlog.c:8405 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i checkpoint-post för online" -#: access/transam/xlog.c:7928 +#: access/transam/xlog.c:8434 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i post för slutet av återställning" -#: access/transam/xlog.c:8195 +#: access/transam/xlog.c:8705 #, 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:8200 +#: access/transam/xlog.c:8710 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "kunde inte fdatasync:a fil \"%s\": %m" -#: access/transam/xlog.c:8285 access/transam/xlog.c:8608 +#: access/transam/xlog.c:8797 access/transam/xlog.c:9133 #, 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:8286 access/transam/xlog.c:8609 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8798 access/transam/xlogfuncs.c:248 #, 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." +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:8291 +#: access/transam/xlog.c:8803 #, c-format msgid "backup label too long (max %d bytes)" msgstr "backup-etikett för lång (max %d byte)" -#: access/transam/xlog.c:8412 +#: access/transam/xlog.c:8924 #, 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" +msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint" +msgstr "WAL skapad med \"full_page_writes=off\" har återspelats sedan senaste omstartpunkten" -#: access/transam/xlog.c:8414 access/transam/xlog.c:8697 +#: access/transam/xlog.c:8926 access/transam/xlog.c:9222 #, 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 primary, 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å primären och försök sedan ta en ny online-backup igen." +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 primary, 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å primären och försök sedan ta en ny online-backup igen." -#: access/transam/xlog.c:8481 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:9006 backup/basebackup.c:1417 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "kan inte läsa symbolisk länk \"%s\": %m" -#: access/transam/xlog.c:8488 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:9013 backup/basebackup.c:1422 utils/adt/misc.c:359 #, 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:8647 backup/basebackup.c:1217 +#: access/transam/xlog.c:9134 +#, 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:9172 backup/basebackup.c:1281 #, c-format msgid "the standby was promoted during online backup" msgstr "standby:en befordrades under online-backup" -#: access/transam/xlog.c:8648 backup/basebackup.c:1218 +#: access/transam/xlog.c:9173 backup/basebackup.c:1282 #, 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:8695 +#: access/transam/xlog.c:9220 #, 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" +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:8811 +#: access/transam/xlog.c:9336 #, 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:8825 +#: access/transam/xlog.c:9350 #, 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:8827 +#: access/transam/xlog.c:9352 #, 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." +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ändbar utan att alla WAL-segment finns." -#: access/transam/xlog.c:8834 +#: access/transam/xlog.c:9359 #, c-format msgid "all required WAL segments have been archived" msgstr "alla krävda WAL-segments har arkiverats" -#: access/transam/xlog.c:8838 +#: access/transam/xlog.c:9363 #, 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:8877 +#: access/transam/xlog.c:9402 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "avbryter backup på grund av att backend:en stoppades innan pg_backup_stop anropades" -#: access/transam/xlogarchive.c:207 +#: access/transam/xlogarchive.c:213 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "arkivfil \"%s\" har fel storlek: %lld istället för %lld" -#: access/transam/xlogarchive.c:216 +#: access/transam/xlogarchive.c:222 #, c-format msgid "restored log file \"%s\" from archive" msgstr "återställd logfil \"%s\" från arkiv" -#: access/transam/xlogarchive.c:230 +#: access/transam/xlogarchive.c:236 #, c-format -msgid "restore_command returned a zero exit status, but stat() failed." -msgstr "restore_command returnerade exit-kod noll men stat() misslyckades." +msgid "\"restore_command\" returned a zero exit status, but stat() failed." +msgstr "\"restore_command\" returnerade exit-kod noll men stat() misslyckades." -#: access/transam/xlogarchive.c:262 +#: access/transam/xlogarchive.c:268 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "kunde inte återställa fil \"%s\" från arkiv: %s" @@ -2713,926 +2947,961 @@ msgstr "kunde inte återställa fil \"%s\" från arkiv: %s" #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:340 +#: access/transam/xlogarchive.c:346 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:450 access/transam/xlogarchive.c:530 +#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "kunde inte skapa arkiveringsstatusfil \"%s\": %m" -#: access/transam/xlogarchive.c:458 access/transam/xlogarchive.c:538 +#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "kunde inte skriva arkiveringsstatusfil \"%s\": %m" -#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 +#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 #, c-format msgid "a backup is already in progress in this session" msgstr "en backup är redan på gång i denna session" -#: access/transam/xlogfuncs.c:146 +#: access/transam/xlogfuncs.c:140 #, c-format msgid "backup is not in progress" msgstr "ingen backup är på gång" -#: access/transam/xlogfuncs.c:147 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "Did you call pg_backup_start()?" msgstr "Anropade du pg_backup_start()?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 +#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 +#: access/transam/xlogfuncs.c:323 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "WAL-kontrollfunktioner kan inte köras under återställning." -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 +#: access/transam/xlogfuncs.c:447 #, c-format msgid "%s cannot be executed during recovery." msgstr "%s kan inte köras under återställning" -#: access/transam/xlogfuncs.c:221 +#: access/transam/xlogfuncs.c:215 #, c-format -msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" -msgstr "pg_log_standby_snapshot() kan bara användas om wal_level >= replica" +msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" +msgstr "pg_log_standby_snapshot() kan bara användas om \"wal_level\" >= \"replica\"" -#: access/transam/xlogfuncs.c:253 +#: access/transam/xlogfuncs.c:247 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "WAL-nivån är inte tillräcklig för att skapa en återställningspunkt" -#: access/transam/xlogfuncs.c:261 +#: access/transam/xlogfuncs.c:255 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "värdet för långt för en återställningspunkt (maximalt %d tecken)" -#: access/transam/xlogfuncs.c:496 +#: access/transam/xlogfuncs.c:486 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "ogiltigt WAL-filnamn \"%s\"" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 +#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 +#: access/transam/xlogfuncs.c:679 #, c-format msgid "recovery is not in progress" msgstr "återställning är inte i gång" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 +#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 +#: access/transam/xlogfuncs.c:680 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "Återställningskontrollfunktioner kan bara köras under återställning." -#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 +#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 #, c-format msgid "standby promotion is ongoing" -msgstr "standby-befordring pågår" +msgstr "standby-befordran pågår" -#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s kan inte köras efter att befordran startats." -#: access/transam/xlogfuncs.c:695 +#: access/transam/xlogfuncs.c:685 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" får inte vara negativ eller noll" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:260 +#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "misslyckades med att sända en signal till postmaster: %m" -#: access/transam/xlogfuncs.c:751 +#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#, c-format +msgid "terminating connection due to unexpected postmaster exit" +msgstr "avslutar anslutning på grund av att postmaster stängde oväntat ner" + +#: access/transam/xlogfuncs.c:740 +#, c-format +msgid "while waiting on promotion" +msgstr "vid väntan på befordran" + +#: access/transam/xlogfuncs.c:744 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" msgstr[0] "servern befordrades inte inom %d sekund" msgstr[1] "servern befordrades inte inom %d sekunder" -#: access/transam/xlogprefetcher.c:1092 +#: access/transam/xlogprefetcher.c:1088 #, c-format -msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." -msgstr "recovery_prefetch stöds inte på plattformar som saknar posix_fadvise()." +msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()." +msgstr "\"recovery_prefetch\" stöds inte på plattformar som saknar posix_fadvise()." -#: access/transam/xlogreader.c:610 +#: access/transam/xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" -#: access/transam/xlogreader.c:619 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: access/transam/xlogreader.c:740 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 +#, c-format +msgid "invalid record length at %X/%X: expected at least %u, got %u" +msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" + +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: access/transam/xlogreader.c:753 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ogiltig contrecord-längd %u (förväntade %lld) vid %X/%X" -#: access/transam/xlogreader.c:812 -#, 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:878 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "slut på minne vid avkodning av post med längden %u" - -#: access/transam/xlogreader.c:1130 -#, c-format -msgid "invalid record length at %X/%X: expected at least %u, got %u" -msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" - -#: access/transam/xlogreader.c:1138 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: access/transam/xlogreader.c:1151 access/transam/xlogreader.c:1167 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, 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:1203 +#: access/transam/xlogreader.c:1209 #, 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:1237 +#: access/transam/xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "felaktigt magiskt nummer %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1252 access/transam/xlogreader.c:1294 +#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ogiltiga infobitar %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1268 +#: access/transam/xlogreader.c:1274 #, 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:1276 +#: access/transam/xlogreader.c:1282 #, 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" -#: access/transam/xlogreader.c:1282 +#: access/transam/xlogreader.c:1288 #, 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" -#: access/transam/xlogreader.c:1314 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "oväntad sidadress %X/%X i WAL-segment %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1340 +#: access/transam/xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "ej-i-sekvens för tidslinje-ID %u (efter %u) i WAL-segment %s, LSN %X/%X, offset %u" -#: access/transam/xlogreader.c:1746 +#: access/transam/xlogreader.c:1749 #, 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:1770 +#: access/transam/xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA är satt men ingen data inkluderad vid %X/%X" -#: access/transam/xlogreader.c:1777 +#: access/transam/xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA är ej satt men datalängden är %u vid %X/%X" -#: access/transam/xlogreader.c:1813 +#: access/transam/xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är satt men håloffset %u längd %u blockavbildlängd %u vid %X/%X" -#: access/transam/xlogreader.c:1829 +#: access/transam/xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är inte satt men håloffset %u längd %u vid %X/%X" -#: access/transam/xlogreader.c:1843 +#: access/transam/xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED är satt men blockavbildlängd %u vid %X/%X" -#: access/transam/xlogreader.c:1858 +#: access/transam/xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_COMPRESSED är satt men blockavbildlängd är %u vid %X/%X" -#: access/transam/xlogreader.c:1874 +#: access/transam/xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL är satt men ingen tidigare rel vid %X/%X" -#: access/transam/xlogreader.c:1886 +#: access/transam/xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: access/transam/xlogreader.c:1953 +#: access/transam/xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: access/transam/xlogreader.c:1979 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "kunde inte hitta backup-block med ID %d i WAL-post" -#: access/transam/xlogreader.c:2063 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt block %d angivet" -#: access/transam/xlogreader.c:2070 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt state, block %d" -#: access/transam/xlogreader.c:2097 access/transam/xlogreader.c:2114 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med %s stöds inte av bygget, block %d" -#: access/transam/xlogreader.c:2123 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med okänd metod, block %d" -#: access/transam/xlogreader.c:2131 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "kunde inte packa upp avbild vid %X/%X, block %d" -#: access/transam/xlogrecovery.c:547 -#, c-format -msgid "entering standby mode" -msgstr "går in i standby-läge" - -#: access/transam/xlogrecovery.c:550 -#, c-format -msgid "starting point-in-time recovery to XID %u" -msgstr "startar point-in-time-återställning till XID %u" - -#: access/transam/xlogrecovery.c:554 -#, c-format -msgid "starting point-in-time recovery to %s" -msgstr "startar point-in-time-återställning till %s" - -#: access/transam/xlogrecovery.c:558 -#, c-format -msgid "starting point-in-time recovery to \"%s\"" -msgstr "startar point-in-time-återställning till \"%s\"" - -#: access/transam/xlogrecovery.c:562 -#, 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/xlogrecovery.c:566 -#, 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/xlogrecovery.c:569 +#: access/transam/xlogrecovery.c:617 #, c-format -msgid "starting archive recovery" -msgstr "Startar arkivåterställning" +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "startar backupåterställning med redo LSN %X/%X, checkpoint LSN %X/%X, på tidslinje ID %u" -#: access/transam/xlogrecovery.c:653 +#: access/transam/xlogrecovery.c:649 #, c-format -msgid "could not find redo location referenced by checkpoint record" -msgstr "kunde inte hitta redo-position refererad av checkpoint-post" +msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X" +msgstr "kunde inte hitta redo-position %X/%X refererad av checkpoint-post vid %X/%X" -#: access/transam/xlogrecovery.c:654 access/transam/xlogrecovery.c:664 +#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 #, c-format msgid "" -"If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" +"If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup." msgstr "" -"Om du återställer från en backup, gör touch på \"%s/recovery.signal\" och lägg till\n" +"Om du återställer från en backup, gör touch på \"%s/recovery.signal\" eller \"%s/standby.signal\" och lägg till\n" "önskade återställningsalternativ. Om du inte återställer från en backup, försök ta\n" "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/xlogrecovery.c:663 +#: access/transam/xlogrecovery.c:660 #, c-format -msgid "could not locate required checkpoint record" -msgstr "kunde inte hitta den checkpoint-post som krävs" +msgid "could not locate required checkpoint record at %X/%X" +msgstr "kunde inte hitta den checkpoint-post som krävs vid %X/%X" -#: access/transam/xlogrecovery.c:692 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "kan inte skapa symbolisk länk \"%s\": %m" -#: access/transam/xlogrecovery.c:724 access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "hoppar över fil \"%s\" då ingen fil \"%s\" finns" -#: access/transam/xlogrecovery.c:726 +#: access/transam/xlogrecovery.c:725 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Filen \"%s\" döptes om till \"%s\"." -#: access/transam/xlogrecovery.c:732 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Kunde inte döpa om fil \"%s\" till \"%s\": %m" -#: access/transam/xlogrecovery.c:786 +#: access/transam/xlogrecovery.c:770 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "startar om backupåterställning med redo LSN %X/%X" + +#: access/transam/xlogrecovery.c:795 +#, c-format +msgid "could not locate a valid checkpoint record at %X/%X" +msgstr "kunde inte hitta en giltig checkpoint-post vid %X/%X" + +#: access/transam/xlogrecovery.c:806 +#, c-format +msgid "entering standby mode" +msgstr "går in i standby-läge" + +#: access/transam/xlogrecovery.c:809 +#, c-format +msgid "starting point-in-time recovery to XID %u" +msgstr "startar point-in-time-återställning till XID %u" + +#: access/transam/xlogrecovery.c:813 +#, c-format +msgid "starting point-in-time recovery to %s" +msgstr "startar point-in-time-återställning till %s" + +#: access/transam/xlogrecovery.c:817 +#, c-format +msgid "starting point-in-time recovery to \"%s\"" +msgstr "startar point-in-time-återställning till \"%s\"" + +#: access/transam/xlogrecovery.c:821 +#, 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/xlogrecovery.c:825 +#, 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/xlogrecovery.c:828 #, c-format -msgid "could not locate a valid checkpoint record" -msgstr "kunde inte hitta en giltig checkpoint-post" +msgid "starting archive recovery" +msgstr "Startar arkivåterställning" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:849 #, 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/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:851 #, 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/xlogrecovery.c:826 +#: access/transam/xlogrecovery.c:865 #, 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/xlogrecovery.c:854 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid next transaction ID" msgstr "nästa transaktions-ID ogiltig" -#: access/transam/xlogrecovery.c:859 +#: access/transam/xlogrecovery.c:898 #, c-format msgid "invalid redo in checkpoint record" msgstr "ogiltig redo i checkpoint-post" -#: access/transam/xlogrecovery.c:870 +#: access/transam/xlogrecovery.c:909 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ogiltig redo-post i nedstängnings-checkpoint" -#: access/transam/xlogrecovery.c:899 +#: access/transam/xlogrecovery.c:938 #, 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/xlogrecovery.c:903 +#: access/transam/xlogrecovery.c:942 #, 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/xlogrecovery.c:946 +#: access/transam/xlogrecovery.c:985 #, 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/xlogrecovery.c:947 +#: access/transam/xlogrecovery.c:986 #, 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/xlogrecovery.c:1001 +#: access/transam/xlogrecovery.c:1040 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "använda återställningskommandofil \"%s\" stöds inte" -#: access/transam/xlogrecovery.c:1066 +#: access/transam/xlogrecovery.c:1105 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "standby-läge stöd inte av enanvändarservrar" -#: access/transam/xlogrecovery.c:1083 +#: access/transam/xlogrecovery.c:1122 #, c-format -msgid "specified neither primary_conninfo nor restore_command" -msgstr "angav varken primary_conninfo eller restore_command" +msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" +msgstr "angav varken \"primary_conninfo\" eller \"restore_command\"" -#: access/transam/xlogrecovery.c:1084 +#: access/transam/xlogrecovery.c:1123 #, 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/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1131 #, 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" +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/xlogrecovery.c:1130 +#: access/transam/xlogrecovery.c:1169 #, c-format msgid "recovery target timeline %u does not exist" msgstr "återställningsmåltidslinje %u finns inte" -#: access/transam/xlogrecovery.c:1213 access/transam/xlogrecovery.c:1220 -#: access/transam/xlogrecovery.c:1279 access/transam/xlogrecovery.c:1359 -#: access/transam/xlogrecovery.c:1383 +#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 +#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 #, c-format msgid "invalid data in file \"%s\"" msgstr "felaktig data i fil \"%s\"" -#: access/transam/xlogrecovery.c:1280 +#: access/transam/xlogrecovery.c:1319 #, 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/xlogrecovery.c:1662 +#: access/transam/xlogrecovery.c:1330 +#, c-format +msgid "this is an incremental backup, not a data directory" +msgstr "detta är en inkrementell backup, inte en datakatalog" + +#: access/transam/xlogrecovery.c:1331 +#, c-format +msgid "Use pg_combinebackup to reconstruct a valid data directory." +msgstr "Använd pg_combinebackup för att återskapa en giltig datakatalog." + +#: access/transam/xlogrecovery.c:1717 +#, c-format +msgid "unexpected record type found at redo point %X/%X" +msgstr "oväntad typ på post hittad vid redo-punkt %X/%X" + +#: access/transam/xlogrecovery.c:1740 #, c-format msgid "redo starts at %X/%X" msgstr "redo startar vid %X/%X" -#: access/transam/xlogrecovery.c:1675 +#: access/transam/xlogrecovery.c:1753 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "redo pågår, förbrukad tid: %ld.%02d s, nuvarande LSN: %X/%X" -#: access/transam/xlogrecovery.c:1767 +#: access/transam/xlogrecovery.c:1843 #, 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/xlogrecovery.c:1799 +#: access/transam/xlogrecovery.c:1875 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "redo gjord vid %X/%X systemanvändning: %s" -#: access/transam/xlogrecovery.c:1805 +#: access/transam/xlogrecovery.c:1881 #, c-format msgid "last completed transaction was at log time %s" msgstr "senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlogrecovery.c:1814 +#: access/transam/xlogrecovery.c:1890 #, c-format msgid "redo is not required" msgstr "redo behövs inte" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1901 #, 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/xlogrecovery.c:2019 +#: access/transam/xlogrecovery.c:2095 #, 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/xlogrecovery.c:2086 +#: access/transam/xlogrecovery.c:2162 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "Oväntat katalogpost \"%s\" hittades i %s" -#: access/transam/xlogrecovery.c:2088 +#: access/transam/xlogrecovery.c:2164 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Alla katalogposter i pg_tblspc/ skall vara symboliska länkar" -#: access/transam/xlogrecovery.c:2089 +#: access/transam/xlogrecovery.c:2165 +#, c-format +msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete." +msgstr "Ta bort dessa kataloger eller sätt \"allow_in_place_tablespaces\" temporärt till ON och låt återställningen gå klart." + +#: access/transam/xlogrecovery.c:2217 #, c-format -msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." -msgstr "Ta bort dessa kataloger eller sätt allow_in_place_tablespaces temporärt till ON och låt återställningen gå klart." +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "slutförde backupåterställning vid redo-LSN %X/%X och slut-LSN %X/%X" -#: access/transam/xlogrecovery.c:2163 +#: access/transam/xlogrecovery.c:2247 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "konsistent återställningstillstånd uppnått vid %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2201 +#: access/transam/xlogrecovery.c:2285 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-redo vid %X/%X för %s" -#: access/transam/xlogrecovery.c:2299 +#: access/transam/xlogrecovery.c:2383 #, 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/xlogrecovery.c:2308 +#: access/transam/xlogrecovery.c:2392 #, 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/xlogrecovery.c:2324 +#: access/transam/xlogrecovery.c:2408 #, 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/xlogrecovery.c:2508 access/transam/xlogrecovery.c:2784 +#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 #, c-format msgid "recovery stopping after reaching consistency" msgstr "återställning stoppad efter att ha uppnått konsistens" -#: access/transam/xlogrecovery.c:2529 +#: access/transam/xlogrecovery.c:2613 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad före WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2619 +#: access/transam/xlogrecovery.c:2703 #, 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/xlogrecovery.c:2626 +#: access/transam/xlogrecovery.c:2710 #, 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/xlogrecovery.c:2679 +#: access/transam/xlogrecovery.c:2763 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "återställning stoppad vid återställningspunkt \"%s\", tid %s" -#: access/transam/xlogrecovery.c:2697 +#: access/transam/xlogrecovery.c:2781 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad efter WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2764 +#: access/transam/xlogrecovery.c:2848 #, 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/xlogrecovery.c:2772 +#: access/transam/xlogrecovery.c:2856 #, 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/xlogrecovery.c:2853 +#: access/transam/xlogrecovery.c:2937 #, c-format msgid "pausing at the end of recovery" msgstr "pausar vid slutet av återställning" -#: access/transam/xlogrecovery.c:2854 +#: access/transam/xlogrecovery.c:2938 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Kör pg_wal_replay_resume() för att befordra." -#: access/transam/xlogrecovery.c:2857 access/transam/xlogrecovery.c:4594 +#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4679 #, c-format msgid "recovery has paused" msgstr "återställning har pausats" -#: access/transam/xlogrecovery.c:2858 +#: access/transam/xlogrecovery.c:2942 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Kör pg_wal_replay_resume() för att fortsätta." -#: access/transam/xlogrecovery.c:3121 +#: access/transam/xlogrecovery.c:3205 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "oväntad tidslinje-ID %u i WAL-segment %s, LSN %X/%X, offset %u" -#: access/transam/xlogrecovery.c:3329 +#: access/transam/xlogrecovery.c:3413 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "kunde inte läsa från WAL-segment %s, LSN %X/%X, offset %u: %m" -#: access/transam/xlogrecovery.c:3336 +#: access/transam/xlogrecovery.c:3420 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "kunde inte läsa från WAL-segment %s, LSN %X/%X, offset %u, läste %d av %zu" -#: access/transam/xlogrecovery.c:3976 +#: access/transam/xlogrecovery.c:4061 #, c-format msgid "invalid checkpoint location" msgstr "ogiltig checkpoint-position" -#: access/transam/xlogrecovery.c:3986 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid checkpoint record" msgstr "ogiltig checkpoint-post" -#: access/transam/xlogrecovery.c:3992 +#: access/transam/xlogrecovery.c:4077 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ogiltig resurshanterar-ID i checkpoint-post" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4085 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ogiltig xl_info i checkpoint-post" -#: access/transam/xlogrecovery.c:4006 +#: access/transam/xlogrecovery.c:4091 #, c-format msgid "invalid length of checkpoint record" msgstr "ogiltig längd på checkpoint-post" -#: access/transam/xlogrecovery.c:4060 +#: access/transam/xlogrecovery.c:4145 #, 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/xlogrecovery.c:4074 +#: access/transam/xlogrecovery.c:4159 #, 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/xlogrecovery.c:4093 +#: access/transam/xlogrecovery.c:4178 #, c-format msgid "new target timeline is %u" msgstr "ny måltidslinje är %u" -#: access/transam/xlogrecovery.c:4296 +#: access/transam/xlogrecovery.c:4381 #, c-format msgid "WAL receiver process shutdown requested" msgstr "nedstängning av WAL-mottagarprocess efterfrågad" -#: access/transam/xlogrecovery.c:4356 +#: access/transam/xlogrecovery.c:4441 #, c-format msgid "received promote request" -msgstr "tog emot förfrågan om befordring" +msgstr "tog emot förfrågan om befordran" -#: access/transam/xlogrecovery.c:4585 +#: access/transam/xlogrecovery.c:4670 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby är inte möjligt på grund av otillräckliga parameterinställningar" -#: access/transam/xlogrecovery.c:4586 access/transam/xlogrecovery.c:4613 -#: access/transam/xlogrecovery.c:4643 +#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 +#: access/transam/xlogrecovery.c:4728 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d har ett lägre värde än på primärservern där värdet var %d." -#: access/transam/xlogrecovery.c:4595 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Om återställning avpausas så kommer servern stänga ner." -#: access/transam/xlogrecovery.c:4596 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Du kan då återstarta servern efter att ha gjort de nödvändiga konfigurationsändringarna." -#: access/transam/xlogrecovery.c:4607 +#: access/transam/xlogrecovery.c:4692 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "befordran är inte möjligt på grund av otillräckliga parameterinställningar" -#: access/transam/xlogrecovery.c:4617 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Starta om servern efter att ha gjort de nödvändiga konfigurationsändringarna." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4726 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "återställning avbruten på grund av otillräckliga parametervärden" -#: access/transam/xlogrecovery.c:4647 +#: access/transam/xlogrecovery.c:4732 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Du kan starta om servern efter att du gjort de nödvändiga konfigurationsändringarna." -#: access/transam/xlogrecovery.c:4689 +#: access/transam/xlogrecovery.c:4774 #, c-format msgid "multiple recovery targets specified" msgstr "multipla återställningsmål angivna" -#: access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:4775 #, 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." +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." -#: access/transam/xlogrecovery.c:4701 +#: access/transam/xlogrecovery.c:4786 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Det enda tillåtna värdet är \"immediate\"." -#: access/transam/xlogrecovery.c:4853 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4938 utils/adt/timestamp.c:202 +#: utils/adt/timestamp.c:455 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp utanför giltigt intervall: \"%s\"" -#: access/transam/xlogrecovery.c:4898 +#: access/transam/xlogrecovery.c:4983 #, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline är inte ett giltigt nummer." +msgid "\"recovery_target_timeline\" is not a valid number." +msgstr "\"recovery_target_timeline\" är inte ett giltigt nummer." -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1032 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "kunde inte läsa från WAL-segment %s, offset %d: %m" -#: access/transam/xlogutils.c:1046 +#: access/transam/xlogutils.c:1039 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "kunde inte läsa från WAL-segment %s, offset %d, läste %d av %d" -#: archive/shell_archive.c:96 +#: archive/shell_archive.c:98 #, c-format msgid "archive command failed with exit code %d" msgstr "arkiveringskommando misslyckades med felkod %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:100 archive/shell_archive.c:110 +#: archive/shell_archive.c:116 archive/shell_archive.c:125 #, c-format msgid "The failed archive command was: %s" msgstr "Det misslyckade arkiveringskommandot var: %s" -#: archive/shell_archive.c:105 +#: archive/shell_archive.c:107 #, c-format msgid "archive command was terminated by exception 0x%X" msgstr "arkiveringskommandot terminerades med avbrott 0x%X" -#: archive/shell_archive.c:107 postmaster/postmaster.c:3678 +#: archive/shell_archive.c:109 postmaster/postmaster.c:3095 #, 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." -#: archive/shell_archive.c:112 +#: archive/shell_archive.c:114 #, c-format msgid "archive command was terminated by signal %d: %s" msgstr "arkiveringskommandot terminerades av signal %d: %s" -#: archive/shell_archive.c:121 +#: archive/shell_archive.c:123 #, c-format msgid "archive command exited with unrecognized status %d" msgstr "arkiveringskommandot avslutade med okänd statuskod %d" -#: backup/backup_manifest.c:253 +#: backup/backup_manifest.c:254 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "förväntade sluttidslinje %u men hittade tidslinje %u" -#: backup/backup_manifest.c:277 +#: backup/backup_manifest.c:278 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "förväntade starttidslinje %u men hittade tidslinje %u" -#: backup/backup_manifest.c:304 +#: backup/backup_manifest.c:305 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "starttidslinje %u hittades inte i historiken för tidslinje %u" -#: backup/backup_manifest.c:355 +#: backup/backup_manifest.c:356 #, c-format msgid "could not rewind temporary file" msgstr "kunde inte spola tillbaka temporär fil" -#: backup/basebackup.c:470 +#: backup/basebackup.c:479 #, c-format msgid "could not find any WAL files" msgstr "kunde inte hitta några WAL-filer" -#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 +#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 #, c-format msgid "could not find WAL file \"%s\"" msgstr "kunde inte hitta WAL-fil \"%s\"" -#: backup/basebackup.c:551 backup/basebackup.c:576 +#: backup/basebackup.c:560 backup/basebackup.c:585 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "oväntad WAL-filstorlek \"%s\"" -#: backup/basebackup.c:646 +#: backup/basebackup.c:656 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" msgstr[0] "totalt %lld verifieringsfel av checksumma" msgstr[1] "totalt %lld verifieringsfel av checksumma" -#: backup/basebackup.c:653 +#: backup/basebackup.c:663 #, c-format msgid "checksum verification failure during base backup" msgstr "misslyckad verifiering av checksumma under basbackup" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 +#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 +#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 +#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 +#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 #, c-format msgid "duplicate option \"%s\"" msgstr "duplicerad flagga \"%s\"" -#: backup/basebackup.c:750 +#: backup/basebackup.c:761 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "okänd checkpoint-typ: \"%s\"" -#: backup/basebackup.c:785 +#: backup/basebackup.c:793 +#, c-format +msgid "incremental backups cannot be taken unless WAL summarization is enabled" +msgstr "inkrementella backup:er kan inte tas om inte WAL-summering är påslagen" + +#: backup/basebackup.c:809 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d är utanför giltigt intervall för parameter \"%s\" (%d .. %d)" -#: backup/basebackup.c:830 +#: backup/basebackup.c:854 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "okänd manifestflagga: \"%s\"" -#: backup/basebackup.c:846 -#, c-format -msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "okänd algoritm för kontrollsumma: \"%s\"" - -#: backup/basebackup.c:881 +#: backup/basebackup.c:905 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "okänd komprimeringsalgoritm: \"%s\"" -#: backup/basebackup.c:897 +#: backup/basebackup.c:921 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "okänd basbackupflagga: \"%s\"" -#: backup/basebackup.c:908 +#: backup/basebackup.c:932 #, c-format msgid "manifest checksums require a backup manifest" msgstr "manifestchecksummor kräver ett backup-manifest" -#: backup/basebackup.c:917 +#: backup/basebackup.c:941 #, c-format msgid "target detail cannot be used without target" msgstr "målinställningar kan inte användas utan ett mål" -#: backup/basebackup.c:926 backup/basebackup_target.c:218 +#: backup/basebackup.c:950 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "målet \"%s\" stöder inte målinställningar" -#: backup/basebackup.c:937 +#: backup/basebackup.c:961 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "komprimeringsinställning kan inte anges om komprimering inte är påslagen" -#: backup/basebackup.c:950 +#: backup/basebackup.c:974 #, c-format msgid "invalid compression specification: %s" msgstr "ogiltig inställning för komprimering: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1024 +#, c-format +msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" +msgstr "måste UPLOAD_MANIFEST innan befordran av en inkrementell BASE_BACKUP" + +#: backup/basebackup.c:1157 backup/basebackup.c:1358 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "kunde inte ta status på fil eller katalog \"%s\": %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1544 #, c-format msgid "skipping special file \"%s\"" msgstr "hoppar över specialfil \"%s\"" -#: backup/basebackup.c:1542 -#, c-format -msgid "invalid segment number %d in file \"%s\"" -msgstr "ogiltigt segmentnummer %d i fil \"%s\"" - -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1751 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "kunde inte verifiera checksumma i fil \"%s\", block %u: läsbufferstorlek %d och sidstorlek %d skiljer sig åt" -#: backup/basebackup.c:1658 +#: backup/basebackup.c:1813 +#, c-format +msgid "file \"%s\" has a total of %d checksum verification failure" +msgid_plural "file \"%s\" has a total of %d checksum verification failures" +msgstr[0] "filen \"%s\" har totalt %d kontrollerad felaktiga checksumma" +msgstr[1] "filen \"%s\" har totalt %d kontrollerade felaktiga checksummor" + +#: backup/basebackup.c:1917 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" msgstr "checksumkontroll misslyckades i fil \"%s\", block %u: beräknade %X men förväntade %X" -#: backup/basebackup.c:1665 +#: backup/basebackup.c:1924 #, c-format msgid "further checksum verification failures in file \"%s\" will not be reported" msgstr "ytterligare kontroller av checksummor i fil \"%s\" kommer inte rapporteras" -#: backup/basebackup.c:1721 -#, c-format -msgid "file \"%s\" has a total of %d checksum verification failure" -msgid_plural "file \"%s\" has a total of %d checksum verification failures" -msgstr[0] "filen \"%s\" har totalt %d kontrollerad felaktiga checksumma" -msgstr[1] "filen \"%s\" har totalt %d kontrollerade felaktiga checksummor" - -#: backup/basebackup.c:1767 +#: backup/basebackup.c:2048 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "filnamnet är för långt för tar-format: \"%s\"" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:2053 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "mål för symbolisk länk är för långt för tar-format: filnamn \"%s\", mål \"%s\"" +#: backup/basebackup.c:2127 +#, c-format +msgid "could not read file \"%s\": read %zd of %zu" +msgstr "kunde inte läsa fil \"%s\": läste %zd av %zu" + #: backup/basebackup_gzip.c:67 #, c-format msgid "gzip compression is not supported by this build" @@ -3643,53 +3912,114 @@ msgstr "gzip-komprimering stöds inte av detta bygge" msgid "could not initialize compression library" msgstr "kunde inte initierar komprimeringsbibliotek" +#: backup/basebackup_incremental.c:294 +#, c-format +msgid "manifest contains no required WAL ranges" +msgstr "manifestet innehåller inga WAL-intervall som krävs" + +#: backup/basebackup_incremental.c:349 +#, c-format +msgid "timeline %u found in manifest, but not in this server's history" +msgstr "tidslinje %u hittades i manifest men inte i denna servers historik" + +#: backup/basebackup_incremental.c:414 +#, c-format +msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "manifestet kräver WAL från initiala tidslinjen %u vid start %X/%X men den tidslinjen börjar vid %X/%X" + +#: backup/basebackup_incremental.c:424 +#, c-format +msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "manifestet kräver WAL från tidslinje %u att fortsätta med som startar vid %X/%X men den tidslinjen börjar vid %X/%X" + +#: backup/basebackup_incremental.c:435 +#, c-format +msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X" +msgstr "manifestet kräver WAL från avslutande tidslinje %u som slutar vid %X/%X, men denna backup startar vid %X/%X" + +#: backup/basebackup_incremental.c:439 +#, c-format +msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup." +msgstr "Detta kan hända vid inkrementella backuper på en standby om det är lite aktivitet från föregående backup." + +#: backup/basebackup_incremental.c:446 +#, c-format +msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" +msgstr "manifestet kräver WAL från en icke avslutande tidslinje %u som slutar vid %X/%X men denns server bytte tidslinje vid %X/%X" + +#: backup/basebackup_incremental.c:527 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist" +msgstr "WAL-summering krävs för tidslinje %u från %X/%X till %X/%X men inga summeringar för den tidslinjen och det LSN-intervallet finns" + +#: backup/basebackup_incremental.c:534 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete" +msgstr "WAL-summering krävs för tidslinje %u från %X/%X till %X/%X men summeringar för den tidslinjen och det LSN-intervallet är inkompletta" + +#: backup/basebackup_incremental.c:538 +#, c-format +msgid "The first unsummarized LSN in this range is %X/%X." +msgstr "Den första icke summerade LSN i detta intervall är %X/%X." + +#: backup/basebackup_incremental.c:938 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "backupmanifest version 1 stöder inte inkrementell backup" + +#: backup/basebackup_incremental.c:956 +#, c-format +msgid "system identifier in backup manifest is %llu, but database system identifier is %llu" +msgstr "manifestets systemidentifierare är %llu men databasens systemidentifierare är %llu" + #: backup/basebackup_lz4.c:67 #, c-format msgid "lz4 compression is not supported by this build" msgstr "lz4-komprimering stöds inte av detta bygge" -#: backup/basebackup_server.c:75 +#: backup/basebackup_server.c:73 #, c-format msgid "permission denied to create backup stored on server" msgstr "rättighet saknas för att skapa backup som lagras på servern" -#: backup/basebackup_server.c:76 +#: backup/basebackup_server.c:74 #, c-format msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." msgstr "Bara roller med rättigheter från rollen \"%s\" får skapa backup som lagras på servern." -#: backup/basebackup_server.c:91 +#: backup/basebackup_server.c:89 #, c-format msgid "relative path not allowed for backup stored on server" msgstr "relativ sökväg tillåts inte för backup som sparas på servern" -#: backup/basebackup_server.c:104 commands/dbcommands.c:501 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 +#: commands/tablespace.c:157 commands/tablespace.c:173 +#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: backup/basebackup_server.c:117 +#: backup/basebackup_server.c:115 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "katalogen \"%s\" existerar men är inte tom" -#: backup/basebackup_server.c:125 utils/init/postinit.c:1164 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1178 #, c-format msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 -#: storage/smgr/md.c:615 storage/smgr/md.c:865 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 +#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 +#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 +#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 #, c-format msgid "Check free disk space." msgstr "Kontrollera ledigt diskutrymme." -#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 +#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/walsummary.c:309 #, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" msgstr "kunde inte skriva fil \"%s\": skrev bara %d av %d byte vid offset %u" @@ -3719,709 +4049,720 @@ msgstr "kunde inte sätta komprimeringens arbetarantal till %d: %s" msgid "could not enable long-distance mode: %s" msgstr "kunde inte aktivera långdistansläge: %s" -#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 +#: backup/walsummaryfuncs.c:95 +#, c-format +msgid "invalid timeline %lld" +msgstr "ogiltig tidslinje %lld" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946 #, c-format msgid "--%s requires a value" msgstr "--%s kräver ett värde" -#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 +#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951 #, c-format msgid "-c %s requires a value" msgstr "-c %s kräver ett värde" -#: bootstrap/bootstrap.c:289 -#, c-format -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:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 +#: postmaster/postmaster.c:759 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: bootstrap/bootstrap.c:304 +#: bootstrap/bootstrap.c:291 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: ogiltigt kommandoradsargument\n" -#: catalog/aclchk.c:201 +#: catalog/aclchk.c:211 #, c-format msgid "grant options can only be granted to roles" msgstr "\"grant option\" kan bara ges till roller" -#: catalog/aclchk.c:323 +#: catalog/aclchk.c:333 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "inga rättigheter givna för kolumn \"%s\" i relation \"%s\"" -#: catalog/aclchk.c:328 +#: catalog/aclchk.c:338 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "inga rättigheter gavs till \"%s\"" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:346 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "inte alla rättigheter givna för kolumn \"%s\" i relation \"%s\"" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:351 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "inte alla rättigheter givna för \"%s\"" -#: catalog/aclchk.c:352 +#: catalog/aclchk.c:362 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "inga rättigheter kunde tas tillbaka från kolumn \"%s\" i relation \"%s\"" -#: catalog/aclchk.c:357 +#: catalog/aclchk.c:367 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "inga rättigheter kunde tas tillbaka från \"%s\"" -#: catalog/aclchk.c:365 +#: catalog/aclchk.c:375 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "inte alla rättigheter kunde tas tillbaka från kolumn \"%s\" i relation \"%s\"" -#: catalog/aclchk.c:370 +#: catalog/aclchk.c:380 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "inte alla rättigheter kunde tas tillbaka från \"%s\"" -#: catalog/aclchk.c:402 +#: catalog/aclchk.c:412 #, c-format msgid "grantor must be current user" msgstr "utfärdare måste vara den aktiva användaren" -#: catalog/aclchk.c:470 catalog/aclchk.c:1045 +#: catalog/aclchk.c:480 catalog/aclchk.c:1055 #, c-format msgid "invalid privilege type %s for relation" msgstr "ogiltig privilegietyp %s för relation" -#: catalog/aclchk.c:474 catalog/aclchk.c:1049 +#: catalog/aclchk.c:484 catalog/aclchk.c:1059 #, c-format msgid "invalid privilege type %s for sequence" msgstr "ogiltig privilegietyp %s för sekvens" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:488 #, c-format msgid "invalid privilege type %s for database" msgstr "ogiltig privilegietyp %s för databas" -#: catalog/aclchk.c:482 +#: catalog/aclchk.c:492 #, c-format msgid "invalid privilege type %s for domain" msgstr "ogiltig privilegietyp %s för domän" -#: catalog/aclchk.c:486 catalog/aclchk.c:1053 +#: catalog/aclchk.c:496 catalog/aclchk.c:1063 #, c-format msgid "invalid privilege type %s for function" msgstr "ogiltig privilegietyp %s för funktion" -#: catalog/aclchk.c:490 +#: catalog/aclchk.c:500 #, c-format msgid "invalid privilege type %s for language" msgstr "ogiltig privilegietyp %s för språk" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:504 #, c-format msgid "invalid privilege type %s for large object" msgstr "ogiltig privilegietyp %s för stort objekt" -#: catalog/aclchk.c:498 catalog/aclchk.c:1069 +#: catalog/aclchk.c:508 catalog/aclchk.c:1079 #, c-format msgid "invalid privilege type %s for schema" msgstr "ogiltig privilegietyp %s för schema" -#: catalog/aclchk.c:502 catalog/aclchk.c:1057 +#: catalog/aclchk.c:512 catalog/aclchk.c:1067 #, c-format msgid "invalid privilege type %s for procedure" msgstr "ogiltig rättighetstyp %s för procedur" -#: catalog/aclchk.c:506 catalog/aclchk.c:1061 +#: catalog/aclchk.c:516 catalog/aclchk.c:1071 #, c-format msgid "invalid privilege type %s for routine" msgstr "ogiltig rättighetstyp %s för rutin" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:520 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "ogiltig privilegietyp %s för tabellutrymme" -#: catalog/aclchk.c:514 catalog/aclchk.c:1065 +#: catalog/aclchk.c:524 catalog/aclchk.c:1075 #, c-format msgid "invalid privilege type %s for type" msgstr "ogiltig privilegietyp %s för typ" -#: catalog/aclchk.c:518 +#: catalog/aclchk.c:528 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "ogiltig privilegietyp %s för främmande data-omvandlare" -#: catalog/aclchk.c:522 +#: catalog/aclchk.c:532 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "ogiltig privilegietyp %s för främmande server" -#: catalog/aclchk.c:526 +#: catalog/aclchk.c:536 #, c-format msgid "invalid privilege type %s for parameter" msgstr "ogiltig privilegietyp %s för parameter" -#: catalog/aclchk.c:565 +#: catalog/aclchk.c:575 #, c-format msgid "column privileges are only valid for relations" msgstr "kolumnprivilegier är bara giltiga för relationer" -#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:287 +#: catalog/aclchk.c:738 catalog/aclchk.c:3629 catalog/objectaddress.c:1054 +#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 #, c-format msgid "large object %u does not exist" msgstr "stort objekt %u existerar inte" -#: catalog/aclchk.c:1102 +#: catalog/aclchk.c:1112 #, c-format msgid "default privileges cannot be set for columns" msgstr "standardrättigheter kan inte sättas för kolumner" -#: catalog/aclchk.c:1138 +#: catalog/aclchk.c:1148 #, c-format msgid "permission denied to change default privileges" msgstr "rättighet saknas för att ändra standardrättigheter" -#: catalog/aclchk.c:1256 +#: catalog/aclchk.c:1266 #, c-format 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:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7339 commands/tablecmds.c:7495 -#: commands/tablecmds.c:7545 commands/tablecmds.c:7619 -#: commands/tablecmds.c:7689 commands/tablecmds.c:7801 -#: commands/tablecmds.c:7895 commands/tablecmds.c:7954 -#: commands/tablecmds.c:8043 commands/tablecmds.c:8073 -#: commands/tablecmds.c:8201 commands/tablecmds.c:8283 -#: commands/tablecmds.c:8417 commands/tablecmds.c:8525 -#: commands/tablecmds.c:12240 commands/tablecmds.c:12421 -#: commands/tablecmds.c:12582 commands/tablecmds.c:13744 -#: commands/tablecmds.c:16273 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3413 -#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2799 +#: catalog/aclchk.c:1617 catalog/catalog.c:659 catalog/objectaddress.c:1523 +#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:951 +#: commands/sequence.c:1655 commands/tablecmds.c:7541 commands/tablecmds.c:7695 +#: commands/tablecmds.c:7745 commands/tablecmds.c:7819 +#: commands/tablecmds.c:7889 commands/tablecmds.c:8019 +#: commands/tablecmds.c:8148 commands/tablecmds.c:8242 +#: commands/tablecmds.c:8343 commands/tablecmds.c:8470 +#: commands/tablecmds.c:8500 commands/tablecmds.c:8642 +#: commands/tablecmds.c:8735 commands/tablecmds.c:8869 +#: commands/tablecmds.c:8981 commands/tablecmds.c:12797 +#: commands/tablecmds.c:12989 commands/tablecmds.c:13150 +#: commands/tablecmds.c:14339 commands/tablecmds.c:16966 commands/trigger.c:942 +#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409 +#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923 +#: utils/adt/ruleutils.c:2812 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "kolumn \"%s\" i relation \"%s\" existerar inte" -#: catalog/aclchk.c:1840 +#: catalog/aclchk.c:1862 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" är ett index" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13901 commands/tablecmds.c:17172 +#: catalog/aclchk.c:1869 commands/tablecmds.c:14496 commands/tablecmds.c:17882 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" är en composite-typ" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17136 utils/adt/acl.c:2084 -#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 -#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 +#: catalog/aclchk.c:1877 catalog/objectaddress.c:1363 commands/tablecmds.c:263 +#: commands/tablecmds.c:17846 utils/adt/acl.c:2107 utils/adt/acl.c:2137 +#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237 +#: utils/adt/acl.c:2268 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" är inte en sekvens" -#: catalog/aclchk.c:1893 +#: catalog/aclchk.c:1915 #, 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:1910 +#: catalog/aclchk.c:1932 #, c-format msgid "invalid privilege type %s for table" msgstr "ogiltig rättighetstyp %s för tabell" -#: catalog/aclchk.c:2072 +#: catalog/aclchk.c:2097 #, c-format msgid "invalid privilege type %s for column" msgstr "ogitligt rättighetstyp %s för kolumn" -#: catalog/aclchk.c:2085 +#: catalog/aclchk.c:2110 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "sekvensen \"%s\" stöder bara kolumnrättigheten SELECT" -#: catalog/aclchk.c:2275 +#: catalog/aclchk.c:2301 #, c-format msgid "language \"%s\" is not trusted" msgstr "språket \"%s\" är inte betrott" -#: catalog/aclchk.c:2277 +#: catalog/aclchk.c:2303 #, 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 en superuser kan använda icke betrodda språk." -#: catalog/aclchk.c:2427 +#: catalog/aclchk.c:2454 #, c-format msgid "cannot set privileges of array types" msgstr "kan inte sätta privilegier för array-typer" -#: catalog/aclchk.c:2428 +#: catalog/aclchk.c:2455 #, c-format msgid "Set the privileges of the element type instead." msgstr "Sätt rättigheter för elementtypen istället." -#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 +#: catalog/aclchk.c:2459 +#, c-format +msgid "cannot set privileges of multirange types" +msgstr "kan inte sätta privilegier för multirange-typer" + +#: catalog/aclchk.c:2460 +#, c-format +msgid "Set the privileges of the range type instead." +msgstr "Sätt rättigheter för range-typen istället." + +#: catalog/aclchk.c:2467 catalog/objectaddress.c:1629 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" är inte en domän" -#: catalog/aclchk.c:2619 +#: catalog/aclchk.c:2653 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "okänd privilegietyp \"%s\"" -#: catalog/aclchk.c:2684 +#: catalog/aclchk.c:2720 #, c-format msgid "permission denied for aggregate %s" msgstr "rättighet saknas för aggregat %s" -#: catalog/aclchk.c:2687 +#: catalog/aclchk.c:2723 #, c-format msgid "permission denied for collation %s" msgstr "rättighet saknas för jämförelse %s" -#: catalog/aclchk.c:2690 +#: catalog/aclchk.c:2726 #, c-format msgid "permission denied for column %s" msgstr "rättighet saknas för kolumn %s" -#: catalog/aclchk.c:2693 +#: catalog/aclchk.c:2729 #, c-format msgid "permission denied for conversion %s" msgstr "rättighet saknas för konvertering %s" -#: catalog/aclchk.c:2696 +#: catalog/aclchk.c:2732 #, c-format msgid "permission denied for database %s" msgstr "rättighet saknas för databas %s" -#: catalog/aclchk.c:2699 +#: catalog/aclchk.c:2735 #, c-format msgid "permission denied for domain %s" msgstr "rättighet saknas för domän %s" -#: catalog/aclchk.c:2702 +#: catalog/aclchk.c:2738 #, c-format msgid "permission denied for event trigger %s" msgstr "rättighet saknas för händelsetrigger %s" -#: catalog/aclchk.c:2705 +#: catalog/aclchk.c:2741 #, c-format msgid "permission denied for extension %s" msgstr "rättighet saknas för utökning %s" -#: catalog/aclchk.c:2708 +#: catalog/aclchk.c:2744 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "rättighet saknas för främmande data-omvandlare %s" -#: catalog/aclchk.c:2711 +#: catalog/aclchk.c:2747 #, c-format msgid "permission denied for foreign server %s" msgstr "rättighet saknas för främmande server %s" -#: catalog/aclchk.c:2714 +#: catalog/aclchk.c:2750 #, c-format msgid "permission denied for foreign table %s" msgstr "rättighet saknas för främmande tabell %s" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2753 #, c-format msgid "permission denied for function %s" msgstr "rättighet saknas för funktion %s" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2756 #, c-format msgid "permission denied for index %s" msgstr "rättighet saknas för index %s" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2759 #, c-format msgid "permission denied for language %s" msgstr "rättighet saknas för språk %s" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2762 #, c-format msgid "permission denied for large object %s" msgstr "rättighet saknas för stort objekt %s" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2765 #, c-format msgid "permission denied for materialized view %s" msgstr "rättighet saknas för materialiserad vy %s" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2768 #, c-format msgid "permission denied for operator class %s" msgstr "rättighet saknas för operatorklasss %s" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2771 #, c-format msgid "permission denied for operator %s" msgstr "rättighet saknas för operator %s" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2774 #, c-format msgid "permission denied for operator family %s" msgstr "rättighet saknas för operatorfamilj %s" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2777 #, c-format msgid "permission denied for parameter %s" msgstr "rättighet saknas för parametern %s" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2780 #, c-format msgid "permission denied for policy %s" msgstr "rättighet saknas för policy %s" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2783 #, c-format msgid "permission denied for procedure %s" msgstr "rättighet saknas för procedur %s" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2786 #, c-format msgid "permission denied for publication %s" msgstr "rättighet saknas för publicering %s" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2789 #, c-format msgid "permission denied for routine %s" msgstr "rättighet saknas för rutin %s" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2792 #, c-format msgid "permission denied for schema %s" msgstr "rättighet saknas för schema %s" -#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2795 commands/sequence.c:654 commands/sequence.c:880 +#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 +#: commands/sequence.c:1799 #, c-format msgid "permission denied for sequence %s" msgstr "rättighet saknas för sekvens %s" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2798 #, c-format msgid "permission denied for statistics object %s" msgstr "rättighet saknas för statistikobjekt %s" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2801 #, c-format msgid "permission denied for subscription %s" msgstr "rättighet saknas för prenumeration %s" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2804 #, c-format msgid "permission denied for table %s" msgstr "rättighet saknas för tabell %s" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2807 #, c-format msgid "permission denied for tablespace %s" msgstr "rättighet saknas för tabellutrymme %s" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2810 #, c-format msgid "permission denied for text search configuration %s" msgstr "rättighet saknas för textsökkonfigurering %s" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2813 #, c-format msgid "permission denied for text search dictionary %s" msgstr "rättighet saknas för textsökordlista %s" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2816 #, c-format msgid "permission denied for type %s" msgstr "rättighet saknas för typ %s" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2819 #, c-format msgid "permission denied for view %s" msgstr "rättighet saknas för vy %s" -#: catalog/aclchk.c:2819 +#: catalog/aclchk.c:2855 #, c-format msgid "must be owner of aggregate %s" msgstr "måste vara ägaren till aggregatet %s" -#: catalog/aclchk.c:2822 +#: catalog/aclchk.c:2858 #, c-format msgid "must be owner of collation %s" msgstr "måste vara ägaren till jämförelsen %s" -#: catalog/aclchk.c:2825 +#: catalog/aclchk.c:2861 #, c-format msgid "must be owner of conversion %s" msgstr "måste vara ägaren till konverteringen %s" -#: catalog/aclchk.c:2828 +#: catalog/aclchk.c:2864 #, c-format msgid "must be owner of database %s" msgstr "måste vara ägaren till databasen %s" -#: catalog/aclchk.c:2831 +#: catalog/aclchk.c:2867 #, c-format msgid "must be owner of domain %s" msgstr "måste vara ägaren av domänen %s" -#: catalog/aclchk.c:2834 +#: catalog/aclchk.c:2870 #, c-format msgid "must be owner of event trigger %s" msgstr "måste vara ägaren till händelsetrigger %s" -#: catalog/aclchk.c:2837 +#: catalog/aclchk.c:2873 #, c-format msgid "must be owner of extension %s" msgstr "måste vara ägaren till utökningen %s" -#: catalog/aclchk.c:2840 +#: catalog/aclchk.c:2876 #, 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:2843 +#: catalog/aclchk.c:2879 #, c-format msgid "must be owner of foreign server %s" msgstr "måste vara ägaren till främmande servern %s" -#: catalog/aclchk.c:2846 +#: catalog/aclchk.c:2882 #, c-format msgid "must be owner of foreign table %s" msgstr "måste vara ägaren till främmande tabellen %s" -#: catalog/aclchk.c:2849 +#: catalog/aclchk.c:2885 #, c-format msgid "must be owner of function %s" msgstr "måste vara ägaren till funktionen %s" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2888 #, c-format msgid "must be owner of index %s" msgstr "måste vara ägaren till indexet %s" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2891 #, c-format msgid "must be owner of language %s" msgstr "måste vara ägaren till språket %s" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2894 #, c-format msgid "must be owner of large object %s" msgstr "måste vara ägaren till stora objektet %s" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2897 #, c-format msgid "must be owner of materialized view %s" msgstr "måste vara ägaren till den materialiserade vyn %s" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2900 #, c-format msgid "must be owner of operator class %s" msgstr "måste vara ägaren till operatorklassen %s" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2903 #, c-format msgid "must be owner of operator %s" msgstr "måste vara ägaren till operatorn %s" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2906 #, c-format msgid "must be owner of operator family %s" msgstr "måste vara ägaren till operatorfamiljen %s" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2909 #, c-format msgid "must be owner of procedure %s" msgstr "måste vara ägaren till proceduren %s" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2912 #, c-format msgid "must be owner of publication %s" msgstr "måste vara ägaren till publiceringen %s" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2915 #, c-format msgid "must be owner of routine %s" msgstr "måste vara ägaren till rutinen %s" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2918 #, c-format msgid "must be owner of sequence %s" msgstr "måste vara ägaren till sekvensen %s" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2921 #, c-format msgid "must be owner of subscription %s" msgstr "måste vara ägaren till prenumerationen %s" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2924 #, c-format msgid "must be owner of table %s" msgstr "måste vara ägaren till tabellen %s" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2927 #, c-format msgid "must be owner of type %s" msgstr "måste vara ägaren till typen %s" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2930 #, c-format msgid "must be owner of view %s" msgstr "måste vara ägaren till vyn %s" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2933 #, c-format msgid "must be owner of schema %s" msgstr "måste vara ägaren till schemat %s" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2936 #, c-format msgid "must be owner of statistics object %s" msgstr "måste vara ägaren till statistikobjektet %s" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2939 #, c-format msgid "must be owner of tablespace %s" msgstr "måste vara ägaren till tabellutrymmet %s" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2942 #, c-format msgid "must be owner of text search configuration %s" msgstr "måste vara ägaren till textsökkonfigurationen %s" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2945 #, c-format msgid "must be owner of text search dictionary %s" msgstr "måste vara ägaren till textsökordlistan %s" -#: catalog/aclchk.c:2923 +#: catalog/aclchk.c:2959 #, c-format msgid "must be owner of relation %s" msgstr "måste vara ägaren till relationen %s" -#: catalog/aclchk.c:2969 +#: catalog/aclchk.c:3005 #, 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:3104 catalog/aclchk.c:3979 catalog/aclchk.c:4011 +#: catalog/aclchk.c:3162 catalog/aclchk.c:4170 catalog/aclchk.c:4201 #, c-format msgid "%s with OID %u does not exist" msgstr "%s med OID %u existerar inte" -#: catalog/aclchk.c:3188 catalog/aclchk.c:3207 +#: catalog/aclchk.c:3245 catalog/aclchk.c:3264 #, 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:3302 +#: catalog/aclchk.c:3302 catalog/aclchk.c:3365 catalog/aclchk.c:4004 #, c-format msgid "relation with OID %u does not exist" msgstr "relation med OID %u existerar inte" -#: catalog/aclchk.c:3476 +#: catalog/aclchk.c:3550 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "parameter ACL med OID %u existerar inte" -#: catalog/aclchk.c:3640 commands/collationcmds.c:808 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3723 commands/collationcmds.c:853 +#: commands/publicationcmds.c:1739 #, c-format msgid "schema with OID %u does not exist" msgstr "schema med OID %u existerar inte" -#: catalog/aclchk.c:3705 utils/cache/typcache.c:390 utils/cache/typcache.c:445 +#: catalog/aclchk.c:3797 catalog/aclchk.c:3824 catalog/aclchk.c:3853 +#: utils/cache/typcache.c:392 utils/cache/typcache.c:447 #, c-format msgid "type with OID %u does not exist" msgstr "typ med OID %u existerar inte" -#: catalog/catalog.c:449 +#: catalog/catalog.c:477 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "letar fortfarande efter en oanvänd OID i relationen \"%s\"" -#: catalog/catalog.c:451 +#: catalog/catalog.c:479 #, c-format msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." msgstr[0] "OID-kandidater har kontrollerats %llu gång men inga oanvända OID:er har hittats än." msgstr[1] "OID-kandidater har kontrollerats %llu gånger men inga oanvända OID:er har hittats än." -#: catalog/catalog.c:476 +#: catalog/catalog.c:504 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" msgstr[0] "ny OID har tilldelats i relation \"%s\" after %llu försök" msgstr[1] "ny OID har tilldelats i relation \"%s\" after %llu försök" -#: catalog/catalog.c:609 catalog/catalog.c:676 +#: catalog/catalog.c:637 catalog/catalog.c:704 #, c-format msgid "must be superuser to call %s()" msgstr "måste vara en superuser för att anropa %s()" -#: catalog/catalog.c:618 +#: catalog/catalog.c:646 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() kan bara användas på systemkataloger" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2264 +#: catalog/catalog.c:651 parser/parse_utilcmd.c:2270 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "index \"%s\" tillhör inte tabell \"%s\"" -#: catalog/catalog.c:640 +#: catalog/catalog.c:668 #, c-format msgid "column \"%s\" is not of type oid" msgstr "kolumnen \"%s\" är inte av typen oid" -#: catalog/catalog.c:647 +#: catalog/catalog.c:675 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "index \"%s\" är inte indexet för kolumnen \"%s\"" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, 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:838 catalog/dependency.c:1065 +#: catalog/dependency.c:789 catalog/dependency.c:1016 #, c-format msgid "cannot drop %s because %s requires it" msgstr "kan inte ta bort %s eftersom %s behöver den" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:791 catalog/dependency.c:1018 #, c-format msgid "You can drop %s instead." msgstr "Du kan ta bort %s i stället." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1097 catalog/dependency.c:1106 #, c-format msgid "%s depends on %s" msgstr "%s beror på %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1121 catalog/dependency.c:1130 #, c-format msgid "drop cascades to %s" msgstr "drop svämmar över (cascades) till %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format msgid "" "\n" @@ -4436,714 +4777,715 @@ msgstr[1] "" "\n" "och %d andra objekt (se serverloggen för en lista)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1150 #, 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:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14386 commands/tablespace.c:466 commands/user.c:1309 -#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1358 utils/misc/guc.c:3120 -#: utils/misc/guc.c:3156 utils/misc/guc.c:3226 utils/misc/guc.c:6615 -#: utils/misc/guc.c:6649 utils/misc/guc.c:6683 utils/misc/guc.c:6726 -#: utils/misc/guc.c:6768 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 +#: catalog/dependency.c:1171 commands/tablecmds.c:1459 +#: commands/tablecmds.c:15088 commands/tablespace.c:460 commands/user.c:1302 +#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4655 +#: executor/execExprInterp.c:4663 libpq/auth.c:324 +#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1432 utils/misc/guc.c:3169 +#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6825 +#: utils/misc/guc.c:6859 utils/misc/guc.c:6893 utils/misc/guc.c:6936 +#: utils/misc/guc.c:6978 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1154 catalog/dependency.c:1161 #, 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:1207 +#: catalog/dependency.c:1158 #, 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" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1166 #, 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:1899 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "konstant av typen %s kan inte användas här" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2375 parser/parse_relation.c:3407 +#: parser/parse_relation.c:3417 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "kolumn %d i relation \"%s\" finns inte" -#: catalog/heap.c:324 +#: catalog/heap.c:325 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "rättighet saknas för att skapa \"%s.%s\"" -#: catalog/heap.c:326 +#: catalog/heap.c:327 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "Systemkatalogändringar är för tillfället inte tillåtna." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6922 +#: catalog/heap.c:467 commands/tablecmds.c:2495 commands/tablecmds.c:2917 +#: commands/tablecmds.c:7163 #, c-format msgid "tables can have at most %d columns" msgstr "tabeller kan ha som mest %d kolumner" -#: catalog/heap.c:484 commands/tablecmds.c:7229 +#: catalog/heap.c:485 commands/tablecmds.c:7432 #, 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:500 +#: catalog/heap.c:501 #, 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:575 +#: catalog/heap.c:579 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "partitionsnyckelkolumn \"%s\" har pseudo-typ %s" -#: catalog/heap.c:580 +#: catalog/heap.c:584 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "kolumn \"%s\" har pseudo-typ %s" -#: catalog/heap.c:611 +#: catalog/heap.c:615 #, 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:666 +#: catalog/heap.c:670 #, 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:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505 #, 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:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401 +#: commands/tablecmds.c:4171 #, c-format msgid "relation \"%s\" already exists" msgstr "relationen \"%s\" finns redan" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 +#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 +#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 +#: commands/typecmds.c:1585 commands/typecmds.c:2556 #, c-format msgid "type \"%s\" already exists" msgstr "typen \"%s\" existerar redan" -#: catalog/heap.c:1165 +#: catalog/heap.c:1178 #, 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:1205 +#: catalog/heap.c:1218 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "relfile-nummervärde för toast är inte satt i binärt uppgraderingsläge" -#: catalog/heap.c:1216 +#: catalog/heap.c:1229 #, 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:1226 +#: catalog/heap.c:1239 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "relfile-nummervärde är inte satt i binärt uppgraderingsläge" -#: catalog/heap.c:2119 +#: catalog/heap.c:2130 #, 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:2393 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "check-villkor \"%s\" finns redan" -#: catalog/heap.c:2563 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8900 +#: catalog/heap.c:2574 catalog/index.c:913 catalog/pg_constraint.c:724 +#: commands/tablecmds.c:9356 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "integritetsvillkor \"%s\" för relation \"%s\" finns redan" -#: catalog/heap.c:2570 +#: catalog/heap.c:2581 #, 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:2581 +#: catalog/heap.c:2592 #, 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:2591 +#: catalog/heap.c:2602 #, 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:2596 +#: catalog/heap.c:2607 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "slår samman villkor \"%s\" med ärvd definition" -#: catalog/heap.c:2622 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15208 commands/tablecmds.c:15349 +#: catalog/heap.c:2633 catalog/pg_constraint.c:853 commands/tablecmds.c:3074 +#: commands/tablecmds.c:3377 commands/tablecmds.c:7089 +#: commands/tablecmds.c:15907 commands/tablecmds.c:16038 #, c-format msgid "too many inheritance parents" msgstr "för många föräldrar i arv" -#: catalog/heap.c:2706 +#: catalog/heap.c:2717 #, 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:2708 +#: catalog/heap.c:2719 #, 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:2714 +#: catalog/heap.c:2725 #, 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:2715 +#: catalog/heap.c:2726 #, 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:2768 +#: catalog/heap.c:2781 #, c-format msgid "generation expression is not immutable" msgstr "genereringsuttryck är inte immutable" -#: catalog/heap.c:2796 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2809 rewrite/rewriteHandler.c:1276 #, 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:2801 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2814 commands/prepare.c:331 parser/analyze.c:2758 +#: parser/parse_target.c:592 parser/parse_target.c:882 +#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1281 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Du måste skriva om eller typomvandla uttrycket." -#: catalog/heap.c:2848 +#: catalog/heap.c:2861 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "bara tabell \"%s\" kan refereras i check-villkoret" -#: catalog/heap.c:3154 +#: catalog/heap.c:3167 #, 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:3155 +#: catalog/heap.c:3168 #, 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:3160 +#: catalog/heap.c:3173 #, 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:3161 +#: catalog/heap.c:3174 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Tabell \"%s\" refererar till \"%s\"." -#: catalog/heap.c:3163 +#: catalog/heap.c:3176 #, 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:225 parser/parse_utilcmd.c:2170 +#: catalog/index.c:219 parser/parse_utilcmd.c:2176 #, 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:239 +#: catalog/index.c:233 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "primärnycklar kan inte använda NULLS NOT DISTINCT-index" -#: catalog/index.c:256 +#: catalog/index.c:250 #, c-format msgid "primary keys cannot be expressions" msgstr "primärnycklar kan inte vara uttryck" -#: catalog/index.c:273 +#: catalog/index.c:267 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "primärnyckelkolumn \"%s\" är inte markerad NOT NULL" -#: catalog/index.c:786 catalog/index.c:1942 +#: catalog/index.c:798 catalog/index.c:1915 #, 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:826 +#: catalog/index.c:838 #, 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:841 +#: catalog/index.c:853 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "samtida indexskapande på systemkatalogtabeller stöds inte" -#: catalog/index.c:850 catalog/index.c:1318 +#: catalog/index.c:862 catalog/index.c:1331 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "samtida indexskapande för uteslutningsvillkor stöds inte" -#: catalog/index.c:859 +#: catalog/index.c:871 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "delade index kan inte skapas efter initdb" -#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 +#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159 #: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "relationen \"%s\" finns redan, hoppar över" -#: catalog/index.c:929 +#: catalog/index.c:941 #, 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:939 utils/cache/relcache.c:3731 +#: catalog/index.c:951 utils/cache/relcache.c:3791 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "relfile-nummervärde för index är inte satt i binärt uppgraderingsläge" -#: catalog/index.c:2241 +#: catalog/index.c:2214 #, 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:3649 +#: catalog/index.c:3668 #, 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:3660 commands/indexcmds.c:3631 +#: catalog/index.c:3679 commands/indexcmds.c:3626 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "kan inte omindexera angivet index i TOAST-tabell" -#: catalog/index.c:3676 commands/indexcmds.c:3511 commands/indexcmds.c:3655 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3695 commands/indexcmds.c:3504 commands/indexcmds.c:3650 +#: commands/tablecmds.c:3581 #, c-format msgid "cannot move system relation \"%s\"" msgstr "kan inte flytta systemrelation \"%s\"" -#: catalog/index.c:3820 +#: catalog/index.c:3832 #, c-format msgid "index \"%s\" was reindexed" msgstr "index \"%s\" omindexerades" -#: catalog/index.c:3957 +#: catalog/index.c:3998 #, 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:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5718 +#: catalog/namespace.c:462 catalog/namespace.c:666 catalog/namespace.c:758 +#: commands/trigger.c:5729 #, 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:317 +#: catalog/namespace.c:519 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "temporära tabeller kan inte anges med ett schemanamn" -#: catalog/namespace.c:398 +#: catalog/namespace.c:600 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "kunde inte ta lås på relationen \"%s.%s\"" -#: catalog/namespace.c:403 commands/lockcmds.c:144 commands/lockcmds.c:224 +#: catalog/namespace.c:605 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "kunde inte ta lås på relationen \"%s\"" -#: catalog/namespace.c:431 parser/parse_relation.c:1430 +#: catalog/namespace.c:633 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "relationen \"%s.%s\" existerar inte" -#: catalog/namespace.c:436 parser/parse_relation.c:1443 +#: catalog/namespace.c:638 parser/parse_relation.c:1443 #: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "relationen \"%s\" existerar inte" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 -#: commands/extension.c:1617 +#: catalog/namespace.c:704 catalog/namespace.c:3522 commands/extension.c:1607 +#: commands/extension.c:1613 #, c-format msgid "no schema has been selected to create in" msgstr "inget schema har valts för att skapa i" -#: catalog/namespace.c:654 catalog/namespace.c:667 +#: catalog/namespace.c:856 catalog/namespace.c:869 #, 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:658 +#: catalog/namespace.c:860 #, 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:673 +#: catalog/namespace.c:875 #, 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:2265 +#: catalog/namespace.c:2619 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "statistikobjektet \"%s\" existerar inte" -#: catalog/namespace.c:2388 +#: catalog/namespace.c:2761 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "textsökparser \"%s\" finns inte" -#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 +#: catalog/namespace.c:2906 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "textsökkatalog \"%s\" finns inte" -#: catalog/namespace.c:2641 +#: catalog/namespace.c:3052 #, c-format msgid "text search template \"%s\" does not exist" msgstr "textsökmall \"%s\" finns inte" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1162 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3197 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "textsökkonfiguration \"%s\" finns inte" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:3329 parser/parse_expr.c:868 parser/parse_target.c:1259 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referenser till andra databaser är inte implementerat: %s" -#: catalog/namespace.c:2886 gram.y:18569 gram.y:18609 parser/parse_expr.c:839 -#: parser/parse_target.c:1253 +#: catalog/namespace.c:3335 gram.y:19181 gram.y:19221 parser/parse_expr.c:875 +#: parser/parse_target.c:1266 #, 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:3016 +#: catalog/namespace.c:3465 #, 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:3022 +#: catalog/namespace.c:3471 #, 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:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3544 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1404 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "schema \"%s\" existerar inte" -#: catalog/namespace.c:3126 +#: catalog/namespace.c:3575 #, 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:3693 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4016 utils/adt/regproc.c:1056 #, 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:3748 +#: catalog/namespace.c:4071 #, c-format msgid "conversion \"%s\" does not exist" msgstr "konvertering \"%s\" finns inte" -#: catalog/namespace.c:4012 +#: catalog/namespace.c:4412 #, 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:4028 +#: catalog/namespace.c:4428 #, c-format msgid "cannot create temporary tables during recovery" msgstr "kan inte skapa temptabeller under återställning" -#: catalog/namespace.c:4034 +#: catalog/namespace.c:4434 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "kan inte skapa temporära tabeller under en parallell operation" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12357 +#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 +#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2327 +#: commands/tablecmds.c:12925 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" är inte en tabell" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17141 commands/view.c:119 +#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 +#: commands/tablecmds.c:17851 commands/view.c:114 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" är inte en vy" -#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17146 +#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275 +#: commands/tablecmds.c:17856 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" är inte en materialiserad vy" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17151 +#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 +#: commands/tablecmds.c:17861 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" är inte en främmande tabell" -#: catalog/objectaddress.c:1471 +#: catalog/objectaddress.c:1433 #, c-format msgid "must specify relation and object name" msgstr "måste ange relation och objektnamn" -#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 +#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 #, c-format msgid "column name must be qualified" msgstr "kolumnnamn måste vara kvalificerat" -#: catalog/objectaddress.c:1619 +#: catalog/objectaddress.c:1581 #, c-format 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:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3689 +#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 +#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4441 +#: utils/adt/acl.c:4560 #, c-format msgid "type \"%s\" does not exist" msgstr "typen \"%s\" existerar inte" -#: catalog/objectaddress.c:1775 +#: catalog/objectaddress.c:1737 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "operator %d (%s, %s) för %s finns inte" -#: catalog/objectaddress.c:1806 +#: catalog/objectaddress.c:1768 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "funktion %d (%s, %s) för %s finns inte" -#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 +#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "användarmappning för användare \"%s\" på server \"%s\" finns inte" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "server \"%s\" finns inte" -#: catalog/objectaddress.c:1939 +#: catalog/objectaddress.c:1901 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "publiceringsrelation \"%s\" i publicering \"%s\" finns inte" -#: catalog/objectaddress.c:1986 +#: catalog/objectaddress.c:1948 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "publiceringsschema \"%s\" i publicering \"%s\" finns inte" -#: catalog/objectaddress.c:2044 +#: catalog/objectaddress.c:2006 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "okänd standard-ACL-objekttyp \"%c\"" -#: catalog/objectaddress.c:2045 +#: catalog/objectaddress.c:2007 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "Giltiga objekttyper är \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2096 +#: catalog/objectaddress.c:2058 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "standard ACL för användare \"%s\" i schema \"%s\" på %s finns inte" -#: catalog/objectaddress.c:2101 +#: catalog/objectaddress.c:2063 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "standard ACL för användare \"%s\" på %s finns inte" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 +#: catalog/objectaddress.c:2201 #, c-format msgid "name or argument lists may not contain nulls" msgstr "namn eller argumentlistor får inte innehålla null" -#: catalog/objectaddress.c:2161 +#: catalog/objectaddress.c:2123 #, c-format msgid "unsupported object type \"%s\"" msgstr "ej stöd för objekttyp \"%s\"" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 +#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 #, c-format msgid "name list length must be exactly %d" msgstr "namnlistlängen måste vara exakt %d" -#: catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2163 #, c-format msgid "large object OID may not be null" msgstr "stort objekt-OID får inte vara null" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 +#: catalog/objectaddress.c:2249 #, c-format msgid "name list length must be at least %d" msgstr "namnlistlängden måste vara minst %d" -#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 +#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 #, c-format msgid "argument list length must be exactly %d" msgstr "argumentlistans längd måste vara exakt %d" -#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "måste vara ägaren till stort objekt %u" -#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 +#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 #, c-format msgid "must be owner of type %s or type %s" msgstr "måste vara ägaren till typ %s eller typ %s" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 +#: catalog/objectaddress.c:2527 #, c-format msgid "permission denied" msgstr "rättighet saknas" -#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 #, c-format msgid "The current user must have the %s attribute." msgstr "Aktuella användaren måste ha attributet %s." -#: catalog/objectaddress.c:2566 +#: catalog/objectaddress.c:2528 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "Aktuella användaren måste ha flaggan %s på rollen \"%s\"." -#: catalog/objectaddress.c:2580 +#: catalog/objectaddress.c:2542 #, c-format msgid "must be superuser" msgstr "måste vara en superuser" -#: catalog/objectaddress.c:2649 +#: catalog/objectaddress.c:2611 #, c-format msgid "unrecognized object type \"%s\"" msgstr "okänd objekttyp \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2941 +#: catalog/objectaddress.c:2928 #, c-format msgid "column %s of %s" msgstr "kolumn %s av %s" -#: catalog/objectaddress.c:2956 +#: catalog/objectaddress.c:2943 #, c-format msgid "function %s" msgstr "funktion %s" -#: catalog/objectaddress.c:2969 +#: catalog/objectaddress.c:2956 #, c-format msgid "type %s" msgstr "typ %s" -#: catalog/objectaddress.c:3006 +#: catalog/objectaddress.c:2993 #, c-format msgid "cast from %s to %s" msgstr "typomvandling från %s till %s" -#: catalog/objectaddress.c:3039 +#: catalog/objectaddress.c:3026 #, c-format msgid "collation %s" msgstr "jämförelse %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3057 #, c-format msgid "constraint %s on %s" msgstr "villkor %s på %s" -#: catalog/objectaddress.c:3076 +#: catalog/objectaddress.c:3063 #, c-format msgid "constraint %s" msgstr "villkor %s" -#: catalog/objectaddress.c:3108 +#: catalog/objectaddress.c:3095 #, c-format msgid "conversion %s" msgstr "konvertering %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3130 +#: catalog/objectaddress.c:3117 #, c-format msgid "default value for %s" msgstr "default-värde för %s" -#: catalog/objectaddress.c:3141 +#: catalog/objectaddress.c:3128 #, c-format msgid "language %s" msgstr "språk %s" -#: catalog/objectaddress.c:3149 +#: catalog/objectaddress.c:3136 #, c-format msgid "large object %u" msgstr "stort objekt %u" -#: catalog/objectaddress.c:3162 +#: catalog/objectaddress.c:3149 #, c-format msgid "operator %s" msgstr "operator %s" -#: catalog/objectaddress.c:3199 +#: catalog/objectaddress.c:3186 #, c-format msgid "operator class %s for access method %s" msgstr "operatorklass %s för accessmetod %s" -#: catalog/objectaddress.c:3227 +#: catalog/objectaddress.c:3214 #, c-format msgid "access method %s" msgstr "accessmetod %s" @@ -5152,7 +5494,7 @@ msgstr "accessmetod %s" #. 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:3276 +#: catalog/objectaddress.c:3269 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "operator %d (%s, %s) för %s: %s" @@ -5161,236 +5503,236 @@ msgstr "operator %d (%s, %s) för %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 #. function with arguments. -#: catalog/objectaddress.c:3333 +#: catalog/objectaddress.c:3334 #, 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:3385 +#: catalog/objectaddress.c:3388 #, c-format msgid "rule %s on %s" msgstr "regel %s på %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3431 +#: catalog/objectaddress.c:3434 #, c-format msgid "trigger %s on %s" msgstr "trigger %s på %s" -#: catalog/objectaddress.c:3451 +#: catalog/objectaddress.c:3454 #, c-format msgid "schema %s" msgstr "schema %s" -#: catalog/objectaddress.c:3479 +#: catalog/objectaddress.c:3482 #, c-format msgid "statistics object %s" msgstr "statistikobjekt %s" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3513 #, c-format msgid "text search parser %s" msgstr "textsökparser %s" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3544 #, c-format msgid "text search dictionary %s" msgstr "textsökordlista %s" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3575 #, c-format msgid "text search template %s" msgstr "textsökmall %s" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3606 #, c-format msgid "text search configuration %s" msgstr "textsökkonfiguration %s" -#: catalog/objectaddress.c:3616 +#: catalog/objectaddress.c:3619 #, c-format msgid "role %s" msgstr "roll %s" -#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 +#: catalog/objectaddress.c:3656 catalog/objectaddress.c:5505 #, c-format msgid "membership of role %s in role %s" msgstr "medlemskap av rollen %s i rollen %s" -#: catalog/objectaddress.c:3674 +#: catalog/objectaddress.c:3677 #, c-format msgid "database %s" msgstr "databas %s" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3693 #, c-format msgid "tablespace %s" msgstr "tabellutrymme %s" -#: catalog/objectaddress.c:3701 +#: catalog/objectaddress.c:3704 #, c-format msgid "foreign-data wrapper %s" msgstr "främmande data-omvandlare %s" -#: catalog/objectaddress.c:3711 +#: catalog/objectaddress.c:3714 #, c-format msgid "server %s" msgstr "server %s" -#: catalog/objectaddress.c:3744 +#: catalog/objectaddress.c:3747 #, c-format msgid "user mapping for %s on server %s" msgstr "användarmappning för %s på server %s" -#: catalog/objectaddress.c:3796 +#: catalog/objectaddress.c:3799 #, 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:3800 +#: catalog/objectaddress.c:3803 #, 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:3806 +#: catalog/objectaddress.c:3809 #, 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:3810 +#: catalog/objectaddress.c:3813 #, 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:3816 +#: catalog/objectaddress.c:3819 #, 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:3820 +#: catalog/objectaddress.c:3823 #, 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:3826 +#: catalog/objectaddress.c:3829 #, 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:3830 +#: catalog/objectaddress.c:3833 #, 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:3836 +#: catalog/objectaddress.c:3839 #, 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)" @@ -15235,810 +15692,810 @@ msgstr "kunde inte acceptera GSSSPI-säkerhetskontext" msgid "GSSAPI size check error" msgstr "GSSAPI-fel vid kontroll av storlek" -#: libpq/be-secure-openssl.c:125 +#: libpq/be-secure-openssl.c:131 #, c-format msgid "could not create SSL context: %s" msgstr "kunde inte skapa SSL-kontext: %s" -#: libpq/be-secure-openssl.c:151 +#: libpq/be-secure-openssl.c:157 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "kunde inte ladda serverns certifikatfil \"%s\": %s" -#: libpq/be-secure-openssl.c:171 +#: libpq/be-secure-openssl.c:177 #, 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:176 +#: libpq/be-secure-openssl.c:182 #, 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:185 +#: libpq/be-secure-openssl.c:191 #, c-format msgid "check of private key failed: %s" msgstr "kontroll av privat nyckel misslyckades: %s" #. translator: first %s is a GUC option name, second %s is its value -#: libpq/be-secure-openssl.c:198 libpq/be-secure-openssl.c:221 +#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227 #, 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:208 +#: libpq/be-secure-openssl.c:214 #, c-format msgid "could not set minimum SSL protocol version" msgstr "kunde inte sätta minimal SSL-protokollversion" -#: libpq/be-secure-openssl.c:231 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set maximum SSL protocol version" msgstr "kunde inte sätta maximal SSL-protokollversion" -#: libpq/be-secure-openssl.c:247 +#: libpq/be-secure-openssl.c:253 #, c-format msgid "could not set SSL protocol version range" msgstr "kunde inte sätta SSL-protokollversionsintervall" -#: libpq/be-secure-openssl.c:248 +#: libpq/be-secure-openssl.c:254 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\" får inte vara högre än \"%s\"" -#: libpq/be-secure-openssl.c:285 +#: libpq/be-secure-openssl.c:307 #, 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:305 +#: libpq/be-secure-openssl.c:327 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "kunde inte ladda root-certifikatfilen \"%s\": %s" -#: libpq/be-secure-openssl.c:354 +#: libpq/be-secure-openssl.c:376 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "kunde inte ladda fil \"%s\" med certifikatåterkallningslista för SSL: %s" -#: libpq/be-secure-openssl.c:362 +#: libpq/be-secure-openssl.c:384 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "kunde inte ladda katalog \"%s\" för certifikatåterkallning: %s" -#: libpq/be-secure-openssl.c:370 +#: libpq/be-secure-openssl.c:392 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "kunde inte ladda fil \"%s\" eller katalog \"%s\" med certifikatåterkallning för SSL: %s" -#: libpq/be-secure-openssl.c:428 +#: libpq/be-secure-openssl.c:450 #, 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:439 +#: libpq/be-secure-openssl.c:464 #, c-format msgid "could not initialize SSL connection: %s" msgstr "kunde inte initiera SSL-uppkoppling: %s" -#: libpq/be-secure-openssl.c:447 +#: libpq/be-secure-openssl.c:472 #, c-format msgid "could not set SSL socket: %s" msgstr "kunde inte sätta SSL-uttag (socket): %s" -#: libpq/be-secure-openssl.c:502 +#: libpq/be-secure-openssl.c:528 #, c-format msgid "could not accept SSL connection: %m" msgstr "kunde inte acceptera SSL-uppkoppling: %m" -#: libpq/be-secure-openssl.c:506 libpq/be-secure-openssl.c:561 +#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "kunde inte starta SSL-anslutning: hittade EOF" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:573 #, c-format msgid "could not accept SSL connection: %s" msgstr "kunde inte acceptera SSL-uppkoppling: %s" -#: libpq/be-secure-openssl.c:549 +#: libpq/be-secure-openssl.c:577 #, 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:566 libpq/be-secure-openssl.c:755 -#: libpq/be-secure-openssl.c:819 +#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809 +#: libpq/be-secure-openssl.c:879 #, c-format msgid "unrecognized SSL error code: %d" msgstr "okänd SSL-felkod: %d" -#: libpq/be-secure-openssl.c:612 +#: libpq/be-secure-openssl.c:622 +#, c-format +msgid "received SSL connection request with unexpected ALPN protocol" +msgstr "tog emot anslutningsförfrågan för SSL med oväntat ALPN-protokoll" + +#: libpq/be-secure-openssl.c:666 #, 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:658 +#: libpq/be-secure-openssl.c:712 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "SSL-certifikatets utskiljande namn innehåller null-värden" -#: libpq/be-secure-openssl.c:744 libpq/be-secure-openssl.c:803 +#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863 #, c-format msgid "SSL error: %s" msgstr "SSL-fel: %s" -#: libpq/be-secure-openssl.c:985 +#: libpq/be-secure-openssl.c:1038 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "kunde inte öppna DH-parameterfil \"%s\": %m" -#: libpq/be-secure-openssl.c:997 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not load DH parameters file: %s" msgstr "kunde inte ladda DH-parameterfil: %s" -#: libpq/be-secure-openssl.c:1007 +#: libpq/be-secure-openssl.c:1060 #, c-format msgid "invalid DH parameters: %s" msgstr "ogiltiga DH-parametrar: %s" -#: libpq/be-secure-openssl.c:1016 +#: libpq/be-secure-openssl.c:1069 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "ogiltiga DH-parametrar: p är inte ett primtal" -#: libpq/be-secure-openssl.c:1025 +#: libpq/be-secure-openssl.c:1078 #, 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:1161 +#: libpq/be-secure-openssl.c:1214 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "Klientcertifikat-autentisering misslyckades vid djupet %d: %s." -#: libpq/be-secure-openssl.c:1198 +#: libpq/be-secure-openssl.c:1251 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." msgstr "Felaktig certifikatdata (ej verifierad): ämne \"%s\", serienummer %s, utställare \"%s\"." -#: libpq/be-secure-openssl.c:1199 +#: libpq/be-secure-openssl.c:1252 msgid "unknown" msgstr "okänd" -#: libpq/be-secure-openssl.c:1290 +#: libpq/be-secure-openssl.c:1389 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: kunde inte ladda DH-parametrar" -#: libpq/be-secure-openssl.c:1298 +#: libpq/be-secure-openssl.c:1397 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: kunde inte sätta DH-parametrar: %s" -#: libpq/be-secure-openssl.c:1325 +#: libpq/be-secure-openssl.c:1424 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: okänt kurvnamn: %s" -#: libpq/be-secure-openssl.c:1334 +#: libpq/be-secure-openssl.c:1433 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: kunde inte skapa nyckel" -#: libpq/be-secure-openssl.c:1362 +#: libpq/be-secure-openssl.c:1461 msgid "no SSL error reported" msgstr "inget SSL-fel rapporterat" -#: libpq/be-secure-openssl.c:1366 +#: libpq/be-secure-openssl.c:1479 #, c-format msgid "SSL error code %lu" msgstr "SSL-felkod %lu" -#: libpq/be-secure-openssl.c:1525 +#: libpq/be-secure-openssl.c:1636 #, c-format msgid "could not create BIO" msgstr "kunde inte skapa BIO" -#: libpq/be-secure-openssl.c:1535 +#: libpq/be-secure-openssl.c:1646 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "kunde inte hämta NID för ASN1_OBJECT-objekt" -#: libpq/be-secure-openssl.c:1543 +#: libpq/be-secure-openssl.c:1654 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "kunde inte konvertera NID %d till en ASN1_OBJECT-struktur" -#: libpq/be-secure.c:207 libpq/be-secure.c:303 -#, c-format -msgid "terminating connection due to unexpected postmaster exit" -msgstr "avslutar anslutning på grund av att postmaster stängde oväntat ner" - -#: libpq/crypt.c:49 +#: libpq/crypt.c:48 #, c-format msgid "Role \"%s\" does not exist." msgstr "Rollen \"%s\" finns inte." -#: libpq/crypt.c:59 +#: libpq/crypt.c:58 #, c-format msgid "User \"%s\" has no password assigned." msgstr "Användaren \"%s\" har inget lösenord satt." -#: libpq/crypt.c:77 +#: libpq/crypt.c:76 #, c-format msgid "User \"%s\" has an expired password." msgstr "Användaren \"%s\" har ett utgånget lösenord." -#: libpq/crypt.c:183 +#: libpq/crypt.c:182 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "Användaren \"%s\" har ett lösenord som inte kan användas med MD5-autentisering." -#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 +#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 #, c-format msgid "Password does not match for user \"%s\"." msgstr "Lösenordet matchar inte för användare \"%s\"." -#: libpq/crypt.c:285 +#: libpq/crypt.c:284 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "Lösenordet för användare \"%s\" är på ett okänt format." -#: libpq/hba.c:332 +#: libpq/hba.c:327 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "ogiltigt reguljärt uttryck \"%s\": %s" -#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 -#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 -#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 -#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 -#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 -#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 -#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 -#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 -#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 -#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 -#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 -#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 -#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 -#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 +#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 +#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 +#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 +#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 +#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 +#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799 +#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 +#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 +#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 +#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 +#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 +#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 +#: tsearch/ts_locale.c:241 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "rad %d i konfigurationsfil \"%s\"" -#: libpq/hba.c:462 +#: libpq/hba.c:457 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "hoppar över saknad autentiseringsfil \"%s\"" -#: libpq/hba.c:614 +#: libpq/hba.c:609 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "kunde inte öppna filen \"%s\": maximalt nästlingsdjup överskridet" -#: libpq/hba.c:1221 +#: libpq/hba.c:1216 #, c-format msgid "error enumerating network interfaces: %m" msgstr "fel vid uppräkning av nätverksinterface: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1248 +#: libpq/hba.c:1243 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "autentiseringsflagga \"%s\" är bara giltig för autentiseringsmetoder %s" -#: libpq/hba.c:1268 +#: libpq/hba.c:1263 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "autentiseringsmetod \"%s\" kräver att argumentet \"%s\" är satt" -#: libpq/hba.c:1292 +#: libpq/hba.c:1287 #, c-format msgid "missing entry at end of line" msgstr "saknar post vid slutet av raden" -#: libpq/hba.c:1305 +#: libpq/hba.c:1300 #, c-format msgid "multiple values in ident field" msgstr "multipla värden i ident-fält" -#: libpq/hba.c:1357 +#: libpq/hba.c:1352 #, c-format msgid "multiple values specified for connection type" msgstr "multipla värden angivna för anslutningstyp" -#: libpq/hba.c:1358 +#: libpq/hba.c:1353 #, c-format msgid "Specify exactly one connection type per line." msgstr "Ange exakt en anslutningstyp per rad." -#: libpq/hba.c:1385 +#: libpq/hba.c:1380 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "hostssl-post kan inte matcha då SSL är avslaget" -#: libpq/hba.c:1386 +#: libpq/hba.c:1381 #, c-format -msgid "Set ssl = on in postgresql.conf." -msgstr "Sätt ssl = on i postgresql.conf." +msgid "Set \"ssl = on\" in postgresql.conf." +msgstr "Sätt \"ssl = on\" i postgresql.conf." -#: libpq/hba.c:1394 +#: libpq/hba.c:1389 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "hostssl-post kan inte matcha då SSL inte stöds i detta bygge" -#: libpq/hba.c:1406 +#: libpq/hba.c:1401 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "hostgssenc-post kan inte matcha då GSSAPI inte stöds i detta bygge" -#: libpq/hba.c:1426 +#: libpq/hba.c:1421 #, c-format msgid "invalid connection type \"%s\"" msgstr "ogiltig anslutningstyp \"%s\"" -#: libpq/hba.c:1440 +#: libpq/hba.c:1435 #, c-format msgid "end-of-line before database specification" msgstr "slut-på-rad innan databasspecifikation" -#: libpq/hba.c:1465 +#: libpq/hba.c:1460 #, c-format msgid "end-of-line before role specification" msgstr "slut-på-rad innan rollspecifikation" -#: libpq/hba.c:1492 +#: libpq/hba.c:1487 #, c-format msgid "end-of-line before IP address specification" msgstr "slut-på-rad före IP-adressangivelse" -#: libpq/hba.c:1503 +#: libpq/hba.c:1498 #, c-format msgid "multiple values specified for host address" msgstr "multipla värden angivna för värdnamn" -#: libpq/hba.c:1504 +#: libpq/hba.c:1499 #, c-format msgid "Specify one address range per line." msgstr "Ange ett adressintervall per rad." -#: libpq/hba.c:1562 +#: libpq/hba.c:1557 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "ogiltig IP-adress \"%s\": %s" -#: libpq/hba.c:1582 +#: libpq/hba.c:1577 #, 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:1596 +#: libpq/hba.c:1591 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "ogiltig CIDR-mask i adress \"%s\"" -#: libpq/hba.c:1616 +#: libpq/hba.c:1611 #, c-format msgid "end-of-line before netmask specification" msgstr "slut-på-fil innan nätmask-angivelse" -#: libpq/hba.c:1617 +#: libpq/hba.c:1612 #, 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:1628 +#: libpq/hba.c:1623 #, c-format msgid "multiple values specified for netmask" msgstr "multipla värden angivna för nätmask" -#: libpq/hba.c:1642 +#: libpq/hba.c:1637 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "ogiltig IP-mask \"%s\": %s" -#: libpq/hba.c:1662 +#: libpq/hba.c:1657 #, c-format msgid "IP address and mask do not match" msgstr "IP-adress och mask matchar inte varandra" -#: libpq/hba.c:1678 +#: libpq/hba.c:1673 #, c-format msgid "end-of-line before authentication method" msgstr "slut-på-rad innan autentiseringsmetod" -#: libpq/hba.c:1689 +#: libpq/hba.c:1684 #, c-format msgid "multiple values specified for authentication type" msgstr "multipla värden angivna för autentiseringstyp" -#: libpq/hba.c:1690 +#: libpq/hba.c:1685 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Ange exakt en autentiseringstyp per rad." -#: libpq/hba.c:1767 +#: libpq/hba.c:1750 #, c-format msgid "invalid authentication method \"%s\"" msgstr "ogiltig autentiseringsmetod \"%s\"" -#: libpq/hba.c:1780 +#: libpq/hba.c:1763 #, 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:1803 +#: libpq/hba.c:1786 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "gssapi-autentisering stöds ej på lokala uttag (socket)" -#: libpq/hba.c:1815 +#: libpq/hba.c:1798 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "peer-autentisering stöds bara på logala uttag (socket)" -#: libpq/hba.c:1833 +#: libpq/hba.c:1816 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "cert-autentisering stöds bara för hostssl-anslutningar" -#: libpq/hba.c:1883 +#: libpq/hba.c:1866 #, c-format msgid "authentication option not in name=value format: %s" msgstr "autentiseringsflagga et på formatet namn=värde: %s" -#: libpq/hba.c:1927 +#: libpq/hba.c:1910 #, 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:1938 +#: libpq/hba.c:1921 #, 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:1954 +#: libpq/hba.c:1937 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "kan inte använda ldapsearchattribute tillsammans med ldapsearchfilter" -#: libpq/hba.c:1971 +#: libpq/hba.c:1954 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "listan med RADIUS-servrar kan inte vara tom" -#: libpq/hba.c:1982 +#: libpq/hba.c:1965 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "listan med RADIUS-hemligheter kan inte vara tom" -#: libpq/hba.c:1999 +#: libpq/hba.c:1982 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "antalet RADIUS-hemligheter (%d) måste vara 1 eller samma som antalet RADIUS-servrar (%d)" -#: libpq/hba.c:2015 +#: libpq/hba.c:1998 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "antalet RADIUS-portar (%d) måste vara 1 eller samma som antalet RADIUS-servrar (%d)" -#: libpq/hba.c:2031 +#: libpq/hba.c:2014 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "antalet RADIUS-identifierare (%d) måste vara 1 eller samma som antalet RADIUS-servrar (%d)" -#: libpq/hba.c:2083 +#: libpq/hba.c:2066 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi och cert" -#: libpq/hba.c:2092 +#: libpq/hba.c:2075 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert kan bara konfigureras för \"hostssl\"-rader" -#: libpq/hba.c:2109 +#: libpq/hba.c:2092 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "clientcert tillåter bara \"verify-full\" när man använder \"cert\"-autentisering" -#: libpq/hba.c:2122 +#: libpq/hba.c:2105 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "ogiltigt värde för clientcert: \"%s\"" -#: libpq/hba.c:2134 +#: libpq/hba.c:2117 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname kan bara konfigureras för \"hostssl\"-rader" -#: libpq/hba.c:2153 +#: libpq/hba.c:2136 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "ogiltigt värde för clientname: \"%s\"" -#: libpq/hba.c:2186 +#: libpq/hba.c:2169 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "kunde inte parsa LDAP-URL \"%s\": %s" -#: libpq/hba.c:2197 +#: libpq/hba.c:2180 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "ej stöd för LDAP-URL-schema: %s" -#: libpq/hba.c:2221 +#: libpq/hba.c:2204 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "LDAP-URL:er stöds inte på denna platform" -#: libpq/hba.c:2239 +#: libpq/hba.c:2222 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "ogiltigt ldap-schema-värde: \"%s\"" -#: libpq/hba.c:2257 +#: libpq/hba.c:2240 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "ogiltigt LDAP-portnummer \"%s\"" -#: libpq/hba.c:2303 libpq/hba.c:2310 +#: libpq/hba.c:2286 libpq/hba.c:2293 msgid "gssapi and sspi" msgstr "gssapi och sspi" -#: libpq/hba.c:2319 libpq/hba.c:2328 +#: libpq/hba.c:2302 libpq/hba.c:2311 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2350 +#: libpq/hba.c:2333 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "kunde inte parsa RADIUS-serverlista \"%s\"" -#: libpq/hba.c:2398 +#: libpq/hba.c:2381 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "kunde inte parsa RADIUS-portlista \"%s\"" -#: libpq/hba.c:2412 +#: libpq/hba.c:2395 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "ogiltigt RADIUS-portnummer: \"%s\"" -#: libpq/hba.c:2434 +#: libpq/hba.c:2417 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "kunde inte parsa RADIUS-hemlighetlista: \"%s\"" -#: libpq/hba.c:2456 +#: libpq/hba.c:2439 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "kunde inte parsa RADIUS-identifierarlista: \"%s\"" -#: libpq/hba.c:2470 +#: libpq/hba.c:2453 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "okänd autentiseringsflaggnamn: \"%s\"" -#: libpq/hba.c:2662 +#: libpq/hba.c:2645 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "konfigurationsfil \"%s\" innehåller inga poster" -#: libpq/hba.c:2815 +#: libpq/hba.c:2798 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "matchning av reguljärt uttryck för \"%s\" misslyckades: %s" -#: libpq/hba.c:2839 +#: libpq/hba.c:2822 #, 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:2942 +#: libpq/hba.c:2925 #, 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:2962 +#: libpq/hba.c:2945 #, 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/pqcomm.c:200 +#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 +#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 +#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 +#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#, c-format +msgid "%s(%s) failed: %m" +msgstr "%s(%s) misslyckades: %m" + +#: libpq/pqcomm.c:296 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "kunde inte sätta uttag (socket) till ickeblockerande läge: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:456 #, 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:381 +#: libpq/pqcomm.c:476 #, 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:385 +#: libpq/pqcomm.c:480 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "kunde inte översätta service \"%s\" till adress: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:502 #, 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:421 +#: libpq/pqcomm.c:511 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:514 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:517 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:521 #, c-format msgid "unrecognized address family %d" msgstr "ej igenkänd adressfamilj %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:545 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "kunde inte skapa %s-uttag för adress \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) misslyckades för %s-adress \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:615 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "kunde inte binda %s-adress \"%s\": %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:619 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Kör en annan postmaster redan på port %d?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:621 #, 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:557 +#: libpq/pqcomm.c:650 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "kunde inte lyssna på %s-adress \"%s\": %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:658 #, 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:570 +#: libpq/pqcomm.c:663 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "lyssnar på %s-adress \"%s\", port %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:753 #, c-format msgid "group \"%s\" does not exist" msgstr "gruppen \"%s\" existerar inte" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:763 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "kunde inte sätta gruppen på filen \"%s\": %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:774 #, 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:708 +#: libpq/pqcomm.c:803 #, c-format msgid "could not accept new connection: %m" msgstr "kunde inte acceptera ny uppkoppling: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1624 libpq/pqcomm.c:1669 libpq/pqcomm.c:1709 -#: libpq/pqcomm.c:1753 libpq/pqcomm.c:1792 libpq/pqcomm.c:1831 -#: libpq/pqcomm.c:1867 libpq/pqcomm.c:1906 -#, c-format -msgid "%s(%s) failed: %m" -msgstr "%s(%s) misslyckades: %m" - -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:885 #, c-format msgid "there is no client connection" msgstr "det finns ingen klientanslutning" -#: libpq/pqcomm.c:954 libpq/pqcomm.c:1050 +#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 #, c-format msgid "could not receive data from client: %m" msgstr "kunde inte ta emot data från klient: %m" -#: libpq/pqcomm.c:1155 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1149 tcop/postgres.c:4533 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "stänger anslutning då protokollsynkroniseringen tappades" -#: libpq/pqcomm.c:1221 +#: libpq/pqcomm.c:1215 #, c-format msgid "unexpected EOF within message length word" msgstr "oväntat EOF inom meddelandelängdord" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1225 #, c-format msgid "invalid message length" msgstr "ogiltig meddelandelängd" -#: libpq/pqcomm.c:1253 libpq/pqcomm.c:1266 +#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 #, c-format msgid "incomplete message from client" msgstr "inkomplett meddelande från klient" -#: libpq/pqcomm.c:1377 +#: libpq/pqcomm.c:1401 #, c-format msgid "could not send data to client: %m" msgstr "kunde inte skicka data till klient: %m" -#: libpq/pqcomm.c:1592 +#: libpq/pqcomm.c:1616 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) misslyckades: felkod %d" -#: libpq/pqcomm.c:1681 +#: libpq/pqcomm.c:1705 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "sätta idle-tid på keepalive stöds inte" -#: libpq/pqcomm.c:1765 libpq/pqcomm.c:1840 libpq/pqcomm.c:1915 +#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) stöds inte" -#: libpq/pqformat.c:407 +#: libpq/pqformat.c:404 #, c-format msgid "no data left in message" msgstr "ingen data kvar i meddelandet" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1506 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 +#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 +#: utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "otillräckligt med data kvar i meddelande" -#: libpq/pqformat.c:598 libpq/pqformat.c:627 +#: libpq/pqformat.c:595 libpq/pqformat.c:624 #, c-format msgid "invalid string in message" msgstr "ogiltig sträng i meddelande" -#: libpq/pqformat.c:643 +#: libpq/pqformat.c:640 #, c-format msgid "invalid message format" msgstr "ogiltigt meddelandeformat" -#: main/main.c:235 +#: main/main.c:236 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: WSAStartup misslyckades: %d\n" -#: main/main.c:329 +#: main/main.c:324 #, c-format msgid "" "%s is the PostgreSQL server.\n" @@ -16047,7 +16504,7 @@ msgstr "" "%s är PostgreSQL-servern.\n" "\n" -#: main/main.c:330 +#: main/main.c:325 #, c-format msgid "" "Usage:\n" @@ -16058,107 +16515,107 @@ msgstr "" " %s [FLAGGA]...\n" "\n" -#: main/main.c:331 +#: main/main.c:326 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: main/main.c:332 +#: main/main.c:327 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS antalet delade buffertar\n" -#: main/main.c:333 +#: main/main.c:328 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c NAMN=VÄRDE sätt körparameter\n" -#: main/main.c:334 +#: main/main.c:329 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NAMN skriv ut värde av runtime-parameter, avsluta sen\n" -#: main/main.c:335 +#: main/main.c:330 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 debug-nivå\n" -#: main/main.c:336 +#: main/main.c:331 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR databaskatalog\n" -#: main/main.c:337 +#: main/main.c:332 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e använd europeiskt datumformat för indata (DMY)\n" -#: main/main.c:338 +#: main/main.c:333 #, c-format msgid " -F turn fsync off\n" msgstr " -F slå av fsync\n" -#: main/main.c:339 +#: main/main.c:334 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h VÄRDNAMN värdnamn eller IP-adress att lyssna på\n" -#: main/main.c:340 +#: main/main.c:335 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr " -i tillåt TCP/IP-uppkopplingar (obsolet)\n" -#: main/main.c:341 +#: main/main.c:336 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k KATALOG plats för unix-domän-uttag (socket)\n" -#: main/main.c:343 +#: main/main.c:338 #, c-format msgid " -l enable SSL connections\n" msgstr " -l tillåt SSL-anslutningar\n" -#: main/main.c:345 +#: main/main.c:340 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-ANSLUT maximalt antal tillåtna anslutningar\n" -#: main/main.c:346 +#: main/main.c:341 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PORT portnummer att lyssna på\n" -#: main/main.c:347 +#: main/main.c:342 #, c-format msgid " -s show statistics after each query\n" msgstr " -s visa statistik efter varje fråga\n" -#: main/main.c:348 +#: main/main.c:343 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM ställ in mängden minne för sorteringar (i kB)\n" -#: main/main.c:349 +#: main/main.c:344 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: main/main.c:350 +#: main/main.c:345 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NAMN=VÄRDE sätt parameter (som används under körning)\n" -#: main/main.c:351 +#: main/main.c:346 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config beskriv konfigurationsparametrar, avsluta sedan\n" -#: main/main.c:352 +#: main/main.c:347 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: main/main.c:354 +#: main/main.c:349 #, c-format msgid "" "\n" @@ -16167,37 +16624,37 @@ msgstr "" "\n" "Utvecklarflaggor:\n" -#: main/main.c:355 +#: main/main.c:350 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h förbjud användning av vissa plan-typer\n" -#: main/main.c:356 +#: main/main.c:351 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O tillåt strukturändring av systemtabeller\n" -#: main/main.c:357 +#: main/main.c:352 #, c-format msgid " -P disable system indexes\n" msgstr " -P stäng av systemindex\n" -#: main/main.c:358 +#: main/main.c:353 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex visa tidtagning efter varje fråga\n" -#: main/main.c:359 +#: main/main.c:354 #, c-format msgid " -T send SIGABRT to all backend processes if one dies\n" msgstr " -T skicka SIGABRT till alla serverprocesser om en dör\n" -#: main/main.c:360 +#: main/main.c:355 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W NUM vänta NUM sekunder för att tillåta att en debugger kopplas in\n" -#: main/main.c:362 +#: main/main.c:357 #, c-format msgid "" "\n" @@ -16206,37 +16663,37 @@ msgstr "" "\n" "Flaggor för enanvändarläge:\n" -#: main/main.c:363 +#: main/main.c:358 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr " --single väljer enanvändarläge (måste vara första argumentet)\n" -#: main/main.c:364 +#: main/main.c:359 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAMN databasnamn (standard är användarnamnet)\n" -#: main/main.c:365 +#: main/main.c:360 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 överskugga debug-nivå\n" -#: main/main.c:366 +#: main/main.c:361 #, c-format msgid " -E echo statement before execution\n" msgstr " -E skriv ut sats före körning\n" -#: main/main.c:367 +#: main/main.c:362 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j använd inte nyrad som en interaktiv frågeavskiljare\n" -#: main/main.c:368 main/main.c:374 +#: main/main.c:363 main/main.c:369 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r FILNAMN skicka stdout och stderr till angiven fil\n" -#: main/main.c:370 +#: main/main.c:365 #, c-format msgid "" "\n" @@ -16245,22 +16702,22 @@ msgstr "" "\n" "Flaggor för bootstrap-läge:\n" -#: main/main.c:371 +#: main/main.c:366 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot väljer bootstrap-läge (måste vara första argumentet)\n" -#: main/main.c:372 +#: main/main.c:367 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check väljer kontrolläge (måste vara första argumentet)\n" -#: main/main.c:373 +#: main/main.c:368 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAMN databasnamn (krävs i bootstrap-läge)\n" -#: main/main.c:376 +#: main/main.c:371 #, c-format msgid "" "\n" @@ -16276,12 +16733,12 @@ msgstr "" "\n" "Rapportera buggar till <%s>.\n" -#: main/main.c:380 +#: main/main.c:375 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: main/main.c:391 +#: main/main.c:386 #, c-format msgid "" "\"root\" execution of the PostgreSQL server is not permitted.\n" @@ -16294,12 +16751,12 @@ msgstr "" "ev. säkehetsproblem. Se dokumentationen för mer information om hur man\n" "startar servern på rätt sätt.\n" -#: main/main.c:408 +#: main/main.c:403 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: riktig och effektiv användar-ID måste matcha varandra\n" -#: main/main.c:415 +#: main/main.c:410 #, c-format msgid "" "Execution of PostgreSQL by a user with administrative permissions is not\n" @@ -16324,20 +16781,15 @@ msgstr "utökningsbar nodtyp \"%s\" finns redan" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "ExtensibleNodeMethods \"%s\" har inte registerats" -#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 +#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "relationen \"%s\" har ingen composite-typ" -#: nodes/makefuncs.c:879 -#, c-format -msgid "unrecognized JSON encoding: %s" -msgstr "okänd JSON-kodning: %s" - -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 -#: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2604 +#: parser/parse_coerce.c:2742 parser/parse_coerce.c:2789 +#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "kunde inte hitta array-typ för datatyp %s" @@ -16352,931 +16804,936 @@ msgstr "portal \"%s\" med parametrar: %s" msgid "unnamed portal with parameters: %s" msgstr "ej namngiven portal med parametrar: %s" -#: optimizer/path/joinrels.c:973 +#: optimizer/path/joinrels.c:972 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN stöds bara med villkor som är merge-joinbara eller hash-joinbara" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203 +#: rewrite/rewriteHandler.c:1680 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "kan inte utföra MERGE på relation \"%s\"" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1408 +#: optimizer/plan/initsplan.c:1407 #, 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:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1380 parser/analyze.c:1771 parser/analyze.c:2029 +#: parser/analyze.c:3247 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s tillåts inte med UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2082 optimizer/plan/planner.c:4040 +#: optimizer/plan/planner.c:2121 optimizer/plan/planner.c:4108 #, c-format msgid "could not implement GROUP BY" msgstr "kunde inte implementera GROUP BY" -#: optimizer/plan/planner.c:2083 optimizer/plan/planner.c:4041 -#: optimizer/plan/planner.c:4681 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2122 optimizer/plan/planner.c:4109 +#: optimizer/plan/planner.c:4790 optimizer/prep/prepunion.c:1320 #, 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:4680 +#: optimizer/plan/planner.c:4789 #, c-format msgid "could not implement DISTINCT" msgstr "kunde inte implementera DISTINCT" -#: optimizer/plan/planner.c:6019 +#: optimizer/plan/planner.c:6134 #, c-format msgid "could not implement window PARTITION BY" msgstr "kunde inte implementera fönster-PARTITION BY" -#: optimizer/plan/planner.c:6020 +#: optimizer/plan/planner.c:6135 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Fönsterpartitioneringskolumner måsta ha en sorterbar datatyp." -#: optimizer/plan/planner.c:6024 +#: optimizer/plan/planner.c:6139 #, c-format msgid "could not implement window ORDER BY" msgstr "kunde inte implementera fönster-ORDER BY" -#: optimizer/plan/planner.c:6025 +#: optimizer/plan/planner.c:6140 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Fönsterordningskolumner måste ha en sorterbar datatyp." -#: optimizer/prep/prepunion.c:516 +#: optimizer/prep/prepunion.c:467 #, c-format msgid "could not implement recursive UNION" msgstr "kunde inte implementera rekursiv UNION" -#: optimizer/prep/prepunion.c:517 +#: optimizer/prep/prepunion.c:468 #, c-format msgid "All column datatypes must be hashable." msgstr "Alla kolumndatatyper måsta vara hash-bara." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1052 +#: optimizer/prep/prepunion.c:1319 #, c-format msgid "could not implement %s" msgstr "kunde inte implementera %s" -#: optimizer/util/clauses.c:4856 +#: optimizer/util/clauses.c:4963 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL-funktion \"%s\" vid inline:ing" -#: optimizer/util/plancat.c:154 +#: optimizer/util/plancat.c:153 #, 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:726 +#: optimizer/util/plancat.c:768 #, 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:743 +#: optimizer/util/plancat.c:785 #, 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:793 +#: optimizer/util/plancat.c:835 #, 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:898 +#: optimizer/util/plancat.c:945 #, 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" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:824 parser/analyze.c:1550 #, c-format msgid "VALUES lists must all be the same length" msgstr "VÄRDE-listor måste alla ha samma längd" -#: parser/analyze.c:1028 +#: parser/analyze.c:1027 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT har fler uttryck än målkolumner" -#: parser/analyze.c:1046 +#: parser/analyze.c:1045 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT har fler målkolumner än uttryck" -#: parser/analyze.c:1050 +#: parser/analyze.c:1049 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "Imatningskällan är ett raduttryck som innehåller samma antal kolumner som INSERT:en förväntade sig. Glömde du använda extra parenteser?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1357 parser/analyze.c:1744 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO tillåts inte här" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1673 parser/analyze.c:3479 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s kan inte appliceras på VÄRDEN" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "ogiltig UNION/INTERSECT/EXCEPT ORDER BY-klausul" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Bara kolumnnamn i resultatet kan användas, inte uttryck eller funktioner." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Lägg till uttrycket/funktionen till varje SELECT eller flytta UNION:en in i en FROM-klausul." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO tillåts bara i den första SELECT i UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "UNION/INTERSECT/EXCEPT-medlemssats kan inte referera till andra relationer på samma frågenivå" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format 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:2573 +#: parser/analyze.c:2535 +#, c-format +msgid "SET target columns cannot be qualified with the relation name." +msgstr "målkolumner för SET kan inte kvalifiiceras med ett relationsnamn." + +#: parser/analyze.c:2589 #, c-format msgid "RETURNING must have at least one column" msgstr "RETURNING måste ha minst en kolumn" -#: parser/analyze.c:2676 +#: parser/analyze.c:2692 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" msgstr[0] "tilldelningskälla returnerade %d kolumn" msgstr[1] "tilldelningskälla returnerade %d kolumner" -#: parser/analyze.c:2737 +#: parser/analyze.c:2753 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "variabeln \"%s\" har typ %s men uttrycket har typ %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2878 parser/analyze.c:2886 #, c-format msgid "cannot specify both %s and %s" msgstr "kan inte ange både %s och %s" -#: parser/analyze.c:2890 +#: parser/analyze.c:2906 #, 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:2898 +#: parser/analyze.c:2914 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s stöds inte" -#: parser/analyze.c:2901 +#: parser/analyze.c:2917 #, 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:2909 +#: parser/analyze.c:2925 #, 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:2920 +#: parser/analyze.c:2936 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s är inte giltig" -#: parser/analyze.c:2923 +#: parser/analyze.c:2939 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Okänsliga markörer måste vara READ ONLY." -#: parser/analyze.c:3017 +#: parser/analyze.c:3033 #, 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:3027 +#: parser/analyze.c:3043 #, 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:3037 +#: parser/analyze.c:3053 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "materialiserade vyer kan inte defineras med bundna parametrar" -#: parser/analyze.c:3049 +#: parser/analyze.c:3065 #, 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:3238 +#: parser/analyze.c:3254 #, 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:3245 +#: parser/analyze.c:3261 #, 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:3252 +#: parser/analyze.c:3268 #, 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:3259 +#: parser/analyze.c:3275 #, 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:3266 +#: parser/analyze.c:3282 #, 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:3273 +#: parser/analyze.c:3289 #, 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:3372 +#: parser/analyze.c:3388 #, 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:3436 +#: parser/analyze.c:3452 #, 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:3445 +#: parser/analyze.c:3461 #, 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:3454 +#: parser/analyze.c:3470 #, 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:3472 +#: parser/analyze.c:3488 #, 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:3481 +#: parser/analyze.c:3497 #, 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:3501 +#: parser/analyze.c:3517 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relationen \"%s\" i %s-klausul hittades inte i FROM-klausul" -#: parser/parse_agg.c:221 parser/parse_oper.c:227 +#: parser/parse_agg.c:210 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "kunde inte identifiera en jämförelseoperator för typ %s" -#: parser/parse_agg.c:223 +#: parser/parse_agg.c:212 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Aggregat med DISTINCT måste kunna sortera sina indata." -#: parser/parse_agg.c:258 +#: parser/parse_agg.c:270 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING måste ha färre än 32 argument" -#: parser/parse_agg.c:361 +#: parser/parse_agg.c:373 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "aggregatfunktioner tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:363 +#: parser/parse_agg.c:375 msgid "grouping operations are not allowed in JOIN conditions" msgstr "gruppoperationer tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:375 +#: parser/parse_agg.c:385 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "aggregatfunktioner tillåts inte i FROM-klausul på sin egen frågenivå" -#: parser/parse_agg.c:377 +#: parser/parse_agg.c:387 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "gruppoperationer tillåts inte i FROM-klausul på sin egen frågenivå" -#: parser/parse_agg.c:382 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "aggregatfunktioner tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:384 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "gruppoperationer tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "aggregatfunktioner tillåts inte i policyuttryck" -#: parser/parse_agg.c:394 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "gruppoperationer tillåts inte i policyuttryck" -#: parser/parse_agg.c:411 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "aggregatfunktioner tillåts inte i fönster-RANGE" -#: parser/parse_agg.c:413 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "grupperingsoperationer tillåts inte i fönster-RANGE" -#: parser/parse_agg.c:418 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "aggregatfunktioner tillåts inte i fönster-RADER" -#: parser/parse_agg.c:420 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "grupperingsfunktioner tillåts inte i fönster-RADER" -#: parser/parse_agg.c:425 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "aggregatfunktioner tillåts inte i fönster-GROUPS" -#: parser/parse_agg.c:427 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "grupperingsfunktioner tillåts inte i fönster-GROUPS" -#: parser/parse_agg.c:440 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "aggregatfunktioner tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:442 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "gruppoperationer tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:468 +#: parser/parse_agg.c:479 msgid "aggregate functions are not allowed in check constraints" msgstr "aggregatfunktioner tillåts inte i check-villkor" -#: parser/parse_agg.c:470 +#: parser/parse_agg.c:481 msgid "grouping operations are not allowed in check constraints" msgstr "gruppoperationer tillåts inte i check-villkor" -#: parser/parse_agg.c:477 +#: parser/parse_agg.c:488 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "aggregatfunktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:479 +#: parser/parse_agg.c:490 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "grupperingsoperationer tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:484 +#: parser/parse_agg.c:495 msgid "aggregate functions are not allowed in index expressions" msgstr "aggregatfunktioner tillåts inte i indexuttryck" -#: parser/parse_agg.c:486 +#: parser/parse_agg.c:497 msgid "grouping operations are not allowed in index expressions" msgstr "gruppoperationer tillåts inte i indexuttryck" -#: parser/parse_agg.c:491 +#: parser/parse_agg.c:502 msgid "aggregate functions are not allowed in index predicates" msgstr "aggregatfunktionsanrop tillåts inte i indexpredikat" -#: parser/parse_agg.c:493 +#: parser/parse_agg.c:504 msgid "grouping operations are not allowed in index predicates" msgstr "gruppoperationer tillåts inte i indexpredikat" -#: parser/parse_agg.c:498 +#: parser/parse_agg.c:509 msgid "aggregate functions are not allowed in statistics expressions" msgstr "aggregatfunktioner tillåts inte i statistikuttryck" -#: parser/parse_agg.c:500 +#: parser/parse_agg.c:511 msgid "grouping operations are not allowed in statistics expressions" msgstr "gruppoperationer tillåts inte i statistikuttryck" -#: parser/parse_agg.c:505 +#: parser/parse_agg.c:516 msgid "aggregate functions are not allowed in transform expressions" msgstr "aggregatfunktioner tillåts inte i transform-uttryck" -#: parser/parse_agg.c:507 +#: parser/parse_agg.c:518 msgid "grouping operations are not allowed in transform expressions" msgstr "gruppoperationer tillåts inte i transforme-uttryck" -#: parser/parse_agg.c:512 +#: parser/parse_agg.c:523 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "aggregatfunktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:514 +#: parser/parse_agg.c:525 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "gruppoperationer tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:519 +#: parser/parse_agg.c:530 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "aggregatfunktioner tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:521 +#: parser/parse_agg.c:532 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "gruppoperationer tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:526 +#: parser/parse_agg.c:537 msgid "aggregate functions are not allowed in partition bound" msgstr "aggregatfunktioner tillåts inte i partitionsgräns" -#: parser/parse_agg.c:528 +#: parser/parse_agg.c:539 msgid "grouping operations are not allowed in partition bound" msgstr "gruppoperationer tillåts inte i partitionsgräns" -#: parser/parse_agg.c:533 +#: parser/parse_agg.c:544 msgid "aggregate functions are not allowed in partition key expressions" msgstr "aggregatfunktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:535 +#: parser/parse_agg.c:546 msgid "grouping operations are not allowed in partition key expressions" msgstr "gruppoperationer tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:552 msgid "aggregate functions are not allowed in column generation expressions" msgstr "aggregatfunktioner tillåts inte i kolumngenereringsuttryck" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:554 msgid "grouping operations are not allowed in column generation expressions" msgstr "gruppoperationer tillåts inte i kolumngenereringsuttryck" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:560 msgid "aggregate functions are not allowed in CALL arguments" msgstr "aggregatfunktioner tillåts inte i CALL-argument" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:562 msgid "grouping operations are not allowed in CALL arguments" msgstr "gruppoperationer tillåts inte i CALL-argument" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:568 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "aggregatfunktioner tillåts inte i COPY FROM WHERE-villkor" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:570 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "gruppoperationer tillåts inte i COPY FROM WHERE-villkor" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:586 parser/parse_clause.c:1956 +#: parser/parse_agg.c:597 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "aggregatfunktioner tillåts inte i %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:589 +#: parser/parse_agg.c:600 #, c-format msgid "grouping operations are not allowed in %s" msgstr "gruppoperationer tillåts inte i %s" -#: parser/parse_agg.c:690 +#: parser/parse_agg.c:701 #, 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:768 +#: parser/parse_agg.c:779 #, 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:769 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245 +#: parser/parse_func.c:885 #, 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:774 +#: parser/parse_agg.c:785 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "aggregatfunktionsanrop kan inte innehålla fönsterfunktionanrop" -#: parser/parse_agg.c:853 +#: parser/parse_agg.c:864 msgid "window functions are not allowed in JOIN conditions" msgstr "fönsterfunktioner tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:860 +#: parser/parse_agg.c:871 msgid "window functions are not allowed in functions in FROM" msgstr "fönsterfunktioner tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:866 +#: parser/parse_agg.c:877 msgid "window functions are not allowed in policy expressions" msgstr "fönsterfunktioner tillåts inte i policy-uttryck" -#: parser/parse_agg.c:879 +#: parser/parse_agg.c:890 msgid "window functions are not allowed in window definitions" msgstr "fönsterfunktioner tillåts inte i fönsterdefinitioner" -#: parser/parse_agg.c:890 +#: parser/parse_agg.c:901 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "fönsterfunktioner tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:914 +#: parser/parse_agg.c:926 msgid "window functions are not allowed in check constraints" msgstr "fönsterfunktioner tillåts inte i check-villkor" -#: parser/parse_agg.c:918 +#: parser/parse_agg.c:930 msgid "window functions are not allowed in DEFAULT expressions" msgstr "fönsterfunktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:921 +#: parser/parse_agg.c:933 msgid "window functions are not allowed in index expressions" msgstr "fönsterfunktioner tillåts inte i indexuttryck" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:936 msgid "window functions are not allowed in statistics expressions" msgstr "fönsterfunktioner tillåts inte i statistikuttryck" -#: parser/parse_agg.c:927 +#: parser/parse_agg.c:939 msgid "window functions are not allowed in index predicates" msgstr "fönsterfunktioner tillåts inte i indexpredikat" -#: parser/parse_agg.c:930 +#: parser/parse_agg.c:942 msgid "window functions are not allowed in transform expressions" msgstr "fönsterfunktioner tillåts inte i transform-uttrycket" -#: parser/parse_agg.c:933 +#: parser/parse_agg.c:945 msgid "window functions are not allowed in EXECUTE parameters" msgstr "fönsterfunktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:936 +#: parser/parse_agg.c:948 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "fönsterfunktioner tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:939 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in partition bound" msgstr "fönsterfunktioner tillåts inte i partitiongräns" -#: parser/parse_agg.c:942 +#: parser/parse_agg.c:954 msgid "window functions are not allowed in partition key expressions" msgstr "fönsterfunktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:945 +#: parser/parse_agg.c:957 msgid "window functions are not allowed in CALL arguments" msgstr "fönsterfunktioner tillåts inte i CALL-argument" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:960 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:951 +#: parser/parse_agg.c:963 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:974 parser/parse_clause.c:1965 +#: parser/parse_agg.c:986 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "fönsterfunktioner tillåts inte i %s" -#: parser/parse_agg.c:1008 parser/parse_clause.c:2798 +#: parser/parse_agg.c:1020 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "fönster \"%s\" finns inte" -#: parser/parse_agg.c:1096 +#: parser/parse_agg.c:1108 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "för många grupperingsmängder (maximalt 4096)" -#: parser/parse_agg.c:1236 +#: parser/parse_agg.c:1248 #, 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:1429 +#: parser/parse_agg.c:1441 #, 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:1432 +#: parser/parse_agg.c:1444 #, 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:1437 +#: parser/parse_agg.c:1449 #, 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:1601 +#: parser/parse_agg.c:1613 #, 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" -#: parser/parse_clause.c:195 +#: parser/parse_clause.c:193 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "relationen \"%s\" kan inte vara målet för en modifierande sats" -#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 +#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "mängdreturnerande funktioner måste vara på toppnivå i FROM" -#: parser/parse_clause.c:611 +#: parser/parse_clause.c:609 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "multipla kolumndefinitionslistor tillåts inte i samma funktion" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:642 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "ROWS FROM() med multipla funktioner kan inte ha en kolumndefinitionslista" -#: parser/parse_clause.c:645 +#: parser/parse_clause.c:643 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "Lägg till en separat kolumndefinitionslista för varje funktion inne i ROWS FROM()." -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:649 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "UNNEST() med multipla argument kan inte ha en kolumndefinitionslista" -#: parser/parse_clause.c:652 +#: parser/parse_clause.c:650 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "Använd separata UNNEST()-anrop inne i ROWS FROM() och koppla en kolumndefinitionslista till varje." -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:657 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY kan inte användas tillsammans med en kolumndefinitionslista" -#: parser/parse_clause.c:660 +#: parser/parse_clause.c:658 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "Placera kolumndefinitionslistan inne i ROWS FROM()." -#: parser/parse_clause.c:760 +#: parser/parse_clause.c:762 parser/parse_jsontable.c:295 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "bara en FOR ORDINALITY-kolumn tillåts" -#: parser/parse_clause.c:821 +#: parser/parse_clause.c:823 #, c-format msgid "column name \"%s\" is not unique" msgstr "kolumnnamn \"%s\" är inte unikt" -#: parser/parse_clause.c:863 +#: parser/parse_clause.c:865 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "namespace-namn \"%s\" är inte unikt" -#: parser/parse_clause.c:873 +#: parser/parse_clause.c:875 #, c-format msgid "only one default namespace is allowed" msgstr "bara ett standard-namespace tillåts" -#: parser/parse_clause.c:933 +#: parser/parse_clause.c:935 #, c-format msgid "tablesample method %s does not exist" msgstr "tabellsamplingsmetod \"%s\" existerar inte" -#: parser/parse_clause.c:955 +#: parser/parse_clause.c:957 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" msgstr[0] "tabellsamplingsmetod %s kräver %d argument, inte %d" msgstr[1] "tabellsamplingsmetod %s kräver %d argument, inte %d" -#: parser/parse_clause.c:989 +#: parser/parse_clause.c:991 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "tabellsamplingsmetod %s stöder inte REPEATABLE" -#: parser/parse_clause.c:1138 +#: parser/parse_clause.c:1144 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "TABLESAMPLE-klausul kan bara appliceras på tabeller och materialiserade vyer" -#: parser/parse_clause.c:1325 +#: parser/parse_clause.c:1331 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "kolumnnamn \"%s\" angivet mer än en gång i USING-klausul" -#: parser/parse_clause.c:1340 +#: parser/parse_clause.c:1346 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "gemensamt kolumnnamn \"%s\" finns mer än en gång i vänstra tabellen" -#: parser/parse_clause.c:1349 +#: parser/parse_clause.c:1355 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "kolumn \"%s\" angiven i USING-klausul finns inte i den vänstra tabellen" -#: parser/parse_clause.c:1364 +#: parser/parse_clause.c:1370 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "gemensamt kolumnnamn \"%s\" finns mer än en gång i högra tabellen" -#: parser/parse_clause.c:1373 +#: parser/parse_clause.c:1379 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "kolumn \"%s\" angiven i USING-klausul finns inte i den högra tabellen" -#: parser/parse_clause.c:1901 +#: parser/parse_clause.c:1907 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "radantal kan inte vara null i FETCH FIRST ... WITH TIES-klausul" #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1926 +#: parser/parse_clause.c:1932 #, c-format msgid "argument of %s must not contain variables" msgstr "argumentet till %s får inte innehålla variabler" #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2091 +#: parser/parse_clause.c:2097 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "%s \"%s\" är tvetydig" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2119 +#: parser/parse_clause.c:2125 #, c-format msgid "non-integer constant in %s" msgstr "ej heltalskonstant i %s" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2141 +#: parser/parse_clause.c:2147 #, c-format msgid "%s position %d is not in select list" msgstr "%s-position %d finns inte i select-listan" -#: parser/parse_clause.c:2580 +#: parser/parse_clause.c:2586 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE är begränsad till 12 element" -#: parser/parse_clause.c:2786 +#: parser/parse_clause.c:2792 #, c-format msgid "window \"%s\" is already defined" msgstr "fönster \"%s\" är redan definierad" -#: parser/parse_clause.c:2847 +#: parser/parse_clause.c:2853 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "kan inte övertrumfa PARTITION BY-klausul för fönster \"%s\"" -#: parser/parse_clause.c:2859 +#: parser/parse_clause.c:2865 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "kan inte övertrumfa ORDER BY-klausul för fönster \"%s\"" -#: parser/parse_clause.c:2889 parser/parse_clause.c:2895 +#: parser/parse_clause.c:2895 parser/parse_clause.c:2901 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "kan inte kopiera fönster \"%s\" då det har en fönsterramklausul" -#: parser/parse_clause.c:2897 +#: parser/parse_clause.c:2903 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "Ta bort parenteserna i denna OVER-klausul." -#: parser/parse_clause.c:2917 +#: parser/parse_clause.c:2923 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" msgstr "RANGE med offset PRECEDING/FOLLOWING kräver exakt en ORDER BY-kolumn" -#: parser/parse_clause.c:2940 +#: parser/parse_clause.c:2946 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "GROUPS-läge kräver en ORDER BY-klausul" -#: parser/parse_clause.c:3011 +#: parser/parse_clause.c:3016 #, c-format msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list" msgstr "i ett aggregat med DISTINCT så måste ORDER BY-uttryck finnas i argumentlistan" -#: parser/parse_clause.c:3012 +#: parser/parse_clause.c:3017 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "i SELECT DISTINCT så måste ORDER BY-uttryck finnas i select-listan" -#: parser/parse_clause.c:3044 +#: parser/parse_clause.c:3049 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "ett aggregat med DISTINCT måste ha minst ett argument" -#: parser/parse_clause.c:3045 +#: parser/parse_clause.c:3050 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "SELECT DISTINCT måste ha minst en kolumn" -#: parser/parse_clause.c:3111 parser/parse_clause.c:3143 +#: parser/parse_clause.c:3116 parser/parse_clause.c:3148 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "SELECT DISTINCT ON-uttrycken måste matcha de initiala ORDER BY-uttrycken" -#: parser/parse_clause.c:3221 +#: parser/parse_clause.c:3226 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC tillåts inte i ON CONFLICT-klausul" -#: parser/parse_clause.c:3227 +#: parser/parse_clause.c:3232 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST tillåts inte i ON CONFLICT-klausul" -#: parser/parse_clause.c:3306 +#: parser/parse_clause.c:3311 #, c-format msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "ON CONFLICT DO UPDATE kräver inferensangivelse eller villkorsnamn" -#: parser/parse_clause.c:3307 +#: parser/parse_clause.c:3312 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "Till exempel, ON CONFLICT (kolumnnamn)." -#: parser/parse_clause.c:3318 +#: parser/parse_clause.c:3323 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT stöds inte för systemkatalogtabeller" -#: parser/parse_clause.c:3326 +#: parser/parse_clause.c:3331 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "ON CONFLICT stöds inte på tabell \"%s\" som används som katalogtabell" -#: parser/parse_clause.c:3457 +#: parser/parse_clause.c:3462 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "operator %s är inte en giltig sorteringsoperator" -#: parser/parse_clause.c:3459 +#: parser/parse_clause.c:3464 #, c-format msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "Sorteringsoperationer måste vara \"<\"- eller \">\"-medlemmar i btree-operatorfamiljer." -#: parser/parse_clause.c:3770 +#: parser/parse_clause.c:3775 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "RANGE med offset PRECEDING/FOLLOWING stöds inte för kolumntyp %s" -#: parser/parse_clause.c:3776 +#: parser/parse_clause.c:3781 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "RANGE med offset PRECEDING/FOLLOWING stöd inte av kolumntyp %s och offset-typ %s" -#: parser/parse_clause.c:3779 +#: parser/parse_clause.c:3784 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "Typomvandla offset-värdet till lämplig typ." -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3789 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "RANGE med offset PRECEDING/FOLLOWING har multipla tolkingar för kolumntyp %s och offset-typ %s" -#: parser/parse_clause.c:3787 +#: parser/parse_clause.c:3792 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "Typomvandla offset-värdet till exakt den önskade typen." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405 +#: parser/parse_expr.c:3634 parser/parse_target.c:998 #, c-format msgid "cannot cast type %s to %s" msgstr "kan inte omvandla typ %s till %s" @@ -17311,121 +17768,121 @@ 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:1383 +#: parser/parse_coerce.c:1420 #, c-format msgid "%s types %s and %s cannot be matched" msgstr "%s typer %s och %s matchar inte" -#: parser/parse_coerce.c:1499 +#: parser/parse_coerce.c:1536 #, 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:1551 +#: parser/parse_coerce.c:1588 #, c-format msgid "%s could not convert type %s to %s" msgstr "%s kan inte konvertera typ %s till %s" -#: parser/parse_coerce.c:2154 parser/parse_coerce.c:2174 -#: parser/parse_coerce.c:2194 parser/parse_coerce.c:2215 -#: parser/parse_coerce.c:2270 parser/parse_coerce.c:2304 +#: parser/parse_coerce.c:2191 parser/parse_coerce.c:2211 +#: parser/parse_coerce.c:2231 parser/parse_coerce.c:2252 +#: parser/parse_coerce.c:2307 parser/parse_coerce.c:2341 #, c-format msgid "arguments declared \"%s\" are not all alike" msgstr "argument deklarerade \"%s\" är inte alla likadana" -#: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: parser/parse_coerce.c:2286 parser/parse_coerce.c:2399 +#: utils/fmgr/funcapi.c:600 #, 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:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: parser/parse_coerce.c:2319 parser/parse_coerce.c:2469 +#: utils/fmgr/funcapi.c:614 #, 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:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2353 parser/parse_coerce.c:2433 +#: parser/parse_coerce.c:2566 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "argumentet deklarerad %s är inte en multirange-typ utan typ %s" -#: parser/parse_coerce.c:2353 +#: parser/parse_coerce.c:2390 #, c-format msgid "cannot determine element type of \"anyarray\" argument" msgstr "kan inte bestämma elementtypen av \"anyarray\"-argument" -#: parser/parse_coerce.c:2379 parser/parse_coerce.c:2410 -#: parser/parse_coerce.c:2449 parser/parse_coerce.c:2515 +#: parser/parse_coerce.c:2416 parser/parse_coerce.c:2447 +#: parser/parse_coerce.c:2486 parser/parse_coerce.c:2552 #, 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:2474 +#: parser/parse_coerce.c:2511 #, 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:2488 +#: parser/parse_coerce.c:2525 #, 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:2498 +#: parser/parse_coerce.c:2535 #, 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:2559 +#: parser/parse_coerce.c:2596 #, 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:2577 parser/parse_coerce.c:2598 -#: parser/parse_coerce.c:2648 parser/parse_coerce.c:2653 -#: parser/parse_coerce.c:2717 parser/parse_coerce.c:2729 +#: parser/parse_coerce.c:2614 parser/parse_coerce.c:2635 +#: parser/parse_coerce.c:2685 parser/parse_coerce.c:2690 +#: parser/parse_coerce.c:2754 parser/parse_coerce.c:2766 #, 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:2587 +#: parser/parse_coerce.c:2624 #, 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:2608 +#: parser/parse_coerce.c:2645 #, c-format msgid "anycompatiblemultirange type %s does not match anycompatible type %s" msgstr "anycompatiblemultirange-typ %s matchar inte anycompatible-typ %s" -#: parser/parse_coerce.c:2622 +#: parser/parse_coerce.c:2659 #, 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:2857 +#: parser/parse_coerce.c:2894 #, c-format msgid "A result of type %s requires at least one input of type anyrange or anymultirange." msgstr "Ett resultat av typen %s kräver minst en indata med typen anyrange eller anymultirange." -#: parser/parse_coerce.c:2874 +#: parser/parse_coerce.c:2911 #, c-format msgid "A result of type %s requires at least one input of type anycompatiblerange or anycompatiblemultirange." msgstr "Ett resultat av typ %s kräver minst en indata av typen anycompatiblerange eller anycompatiblemultirange." -#: parser/parse_coerce.c:2886 +#: parser/parse_coerce.c:2923 #, c-format msgid "A result of type %s requires at least one input of type anyelement, anyarray, anynonarray, anyenum, anyrange, or anymultirange." msgstr "Ett resultat av typ %s kräver minst en indata av typen anyelement, anyarray, anynonarray, anyenum, anyrange eller anymultirange." -#: parser/parse_coerce.c:2898 +#: parser/parse_coerce.c:2935 #, c-format msgid "A result of type %s requires at least one input of type anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange, or anycompatiblemultirange." msgstr "Ett resultat av typ %s kräver minst en indata av typ anycompatible, anycompatiblearray, anycompatiblenonarray, anycompatiblerange eller anycompatiblemultirange." -#: parser/parse_coerce.c:2928 +#: parser/parse_coerce.c:2965 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." @@ -17471,471 +17928,586 @@ msgstr "rekursiv referens till fråga \"%s\" får inte finnas i en INTERSECT" msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "rekursiv referens till fråga \"%s\" får inte finnas i en EXCEPT" -#: parser/parse_cte.c:133 -#, c-format -msgid "MERGE not supported in WITH query" -msgstr "MERGE stöds inte i WITH-fråga" - -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:136 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "WITH-frågenamn \"%s\" angivet mer än en gång" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:308 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "kunde inte hitta en olikhetsoperator för typ %s" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:335 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "WITH-klausul som innehåller en datamodifierande sats måste vara på toppnivå" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:384 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "rekursiv fråga \"%s\" kolumn %d har typ %s i den ickerekursiva termen med typ %s totalt sett" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:390 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Typomvandla utdatan för den ickerekursiva termen till korrekt typ." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:395 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "rekursiv fråga \"%s\" kolumn %d har jämförelse (collation) \"%s\" i en icke-rekursiv term men jämförelse \"%s\" totalt sett" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:399 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "Använd en COLLATE-klausul för att sätta jämförelse för den icke-rekursiva termen." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:420 #, c-format msgid "WITH query is not recursive" msgstr "WITH-fråga är inte rekursiv" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:451 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "med en SEARCH- eller CYCLE-klausul så måste vänstersidan av en UNION vara en SELECT" -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:456 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "med en SEARCH- eller CYCLE-klausul så måste högersidan av en UNION vara en SELECT" -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:471 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "sökkolumn \"%s\" finns inte med i kolumnlistan för WITH-fråga" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" specified more than once" msgstr "sökkolumn \"%s\" angiven mer än en gång" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:487 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "namn på söksekvensenskolumn \"%s\" används redan i kolumnlistan till WITH-fråga" -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:504 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "cycle-kolumn \"%s\" finns inte i kolumnlistan i WITH-fråga" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "cycle-kolumn \"%s\" angiven mer än en gång" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:520 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "mark-kolumnnamn \"%s\" för cycle används redan i kolumnlistan i WITH-fråga" -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:527 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "path-kolumnnamn \"%s\" för cycle används redan i kolumnlistan i WITH-fråga" -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:535 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "mark-kolumnnamn och path-kolumnnamn i cycle är båda samma" -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:545 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "namn på söksekvenskolumn och namn på mark-kolumn i cycle är båda samma" -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "namn på söksekvenskolumn och namn på path-kolumn i cycle är båda samma" -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:636 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "WITH-fråga \"%s\" har %d kolumner tillgängliga men %d kolumner angivna" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:816 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "ömsesidig rekursion mellan WITH-poster är inte implementerat" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:868 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "rekursiv fråga \"%s\" får inte innehålla datamodifierande satser" -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:876 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "rekursiv fråga \"%s\" är inte på formen icke-rekursiv-term UNION [ALL] rekursiv-term" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:911 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY i en rekursiv fråga är inte implementerat" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:917 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET i en rekursiv fråga är inte implementerat" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:923 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT i en rekursiv fråga är inte implementerat" -#: parser/parse_cte.c:944 +#: parser/parse_cte.c:929 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE i en rekursiv fråga är inte implementerat" -#: parser/parse_cte.c:1001 +#: parser/parse_cte.c:1008 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "rekursiv referens till fråga \"%s\" får inte finnas med mer än en gång" -#: parser/parse_expr.c:294 +#: parser/parse_expr.c:313 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT tillåts inte i detta kontext" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:406 parser/parse_relation.c:3691 +#: parser/parse_relation.c:3701 parser/parse_relation.c:3719 +#: parser/parse_relation.c:3726 parser/parse_relation.c:3740 #, c-format msgid "column %s.%s does not exist" msgstr "kolumnen %s.%s finns inte" -#: parser/parse_expr.c:383 +#: parser/parse_expr.c:418 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "kolumn \"%s\" fanns inte i datatypen %s" -#: parser/parse_expr.c:389 +#: parser/parse_expr.c:424 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "kunde inte hitta kolumnen \"%s\" i record-datatyp" -#: parser/parse_expr.c:395 +#: parser/parse_expr.c:430 #, c-format 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:426 parser/parse_target.c:733 +#: parser/parse_expr.c:461 parser/parse_target.c:732 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "radexpansion via \"*\" stöds inte här" -#: parser/parse_expr.c:548 +#: parser/parse_expr.c:584 msgid "cannot use column reference in DEFAULT expression" msgstr "kan inte använda kolumnreferenser i DEFAULT-uttryck" -#: parser/parse_expr.c:551 +#: parser/parse_expr.c:587 msgid "cannot use column reference in partition bound expression" msgstr "kan inte använda kolumnreferenser i partitionsgränsuttryck" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_expr.c:846 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1238 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "kolumnreferens \"%s\" är tvetydig" -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 #: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "det finns ingen parameter $%d" -#: parser/parse_expr.c:1066 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1103 parser/parse_expr.c:3065 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "NULLIF kräver att =-operatorn returnerar boolean" +msgid "%s requires = operator to yield boolean" +msgstr "%s kräver att operatorn = returnerar boolean" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 +#: parser/parse_expr.c:1109 parser/parse_expr.c:3072 #, c-format msgid "%s must not return a set" msgstr "%s får inte returnera en mängd" -#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 +#: parser/parse_expr.c:1395 +#, c-format +msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" +msgstr "MERGE_ACTION() kan bara användas i RETURNING-listan för ett MERGE-kommando" + +#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 #, c-format msgid "number of columns does not match number of values" msgstr "antalet kolumner matchar inte antalet värden" -#: parser/parse_expr.c:1503 +#: parser/parse_expr.c:1565 #, 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:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 +#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "mängdreturnerande funktioner tillåts inte i %s" -#: parser/parse_expr.c:1761 +#: parser/parse_expr.c:1824 msgid "cannot use subquery in check constraint" msgstr "kan inte använda subfråga i check-villkor" -#: parser/parse_expr.c:1765 +#: parser/parse_expr.c:1828 msgid "cannot use subquery in DEFAULT expression" msgstr "kan inte använda underfråga i DEFAULT-uttryck" -#: parser/parse_expr.c:1768 +#: parser/parse_expr.c:1831 msgid "cannot use subquery in index expression" msgstr "kan inte använda subfråga i indexuttryck" -#: parser/parse_expr.c:1771 +#: parser/parse_expr.c:1834 msgid "cannot use subquery in index predicate" msgstr "kan inte använda subfråga i indexpredikat" -#: parser/parse_expr.c:1774 +#: parser/parse_expr.c:1837 msgid "cannot use subquery in statistics expression" msgstr "kan inte använda underfråga i statistikuttryck" -#: parser/parse_expr.c:1777 +#: parser/parse_expr.c:1840 msgid "cannot use subquery in transform expression" msgstr "kan inte använda underfråga i transformeringsuttrycket" -#: parser/parse_expr.c:1780 +#: parser/parse_expr.c:1843 msgid "cannot use subquery in EXECUTE parameter" msgstr "kan inte använda subfråga i EXECUTE-parameter" -#: parser/parse_expr.c:1783 +#: parser/parse_expr.c:1846 msgid "cannot use subquery in trigger WHEN condition" msgstr "kan inte använda subfråga i triggerns WHEN-villkor" -#: parser/parse_expr.c:1786 +#: parser/parse_expr.c:1849 msgid "cannot use subquery in partition bound" msgstr "kan inte använda underfråga i partitionsgräns" -#: parser/parse_expr.c:1789 +#: parser/parse_expr.c:1852 msgid "cannot use subquery in partition key expression" msgstr "kan inte använda underfråga i partitionsnyckeluttryck" -#: parser/parse_expr.c:1792 +#: parser/parse_expr.c:1855 msgid "cannot use subquery in CALL argument" msgstr "kan inte använda subfråga i CALL-argument" -#: parser/parse_expr.c:1795 +#: parser/parse_expr.c:1858 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:1798 +#: parser/parse_expr.c:1861 msgid "cannot use subquery in column generation expression" msgstr "kan inte använda subfråga i kolumngenereringsuttryck" -#: parser/parse_expr.c:1851 parser/parse_expr.c:3628 +#: parser/parse_expr.c:1914 parser/parse_expr.c:3764 #, c-format msgid "subquery must return only one column" msgstr "underfråga kan bara returnera en kolumn" -#: parser/parse_expr.c:1922 +#: parser/parse_expr.c:1985 #, c-format msgid "subquery has too many columns" msgstr "underfråga har för många kolumner" -#: parser/parse_expr.c:1927 +#: parser/parse_expr.c:1990 #, c-format msgid "subquery has too few columns" msgstr "underfråga har för få kolumner" -#: parser/parse_expr.c:2023 +#: parser/parse_expr.c:2086 #, c-format msgid "cannot determine type of empty array" msgstr "kan inte bestämma typen av en tom array" -#: parser/parse_expr.c:2024 +#: parser/parse_expr.c:2087 #, 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:2038 +#: parser/parse_expr.c:2101 #, 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:2121 +#: parser/parse_expr.c:2184 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW-uttryck kan ha som mest %d poster" -#: parser/parse_expr.c:2326 +#: parser/parse_expr.c:2389 #, 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:2327 +#: parser/parse_expr.c:2390 #, 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:2342 +#: parser/parse_expr.c:2405 #, 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:2450 +#: parser/parse_expr.c:2513 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "kan inte typomvandla XMLSERIALIZE-resultat till %s" -#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 +#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 #, c-format msgid "unequal number of entries in row expressions" msgstr "olika antal element i raduttryck" -#: parser/parse_expr.c:2774 +#: parser/parse_expr.c:2837 #, c-format msgid "cannot compare rows of zero length" msgstr "kan inte jämföra rader med längden noll" -#: parser/parse_expr.c:2799 +#: parser/parse_expr.c:2862 #, 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:2806 +#: parser/parse_expr.c:2869 #, 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:2865 parser/parse_expr.c:2906 +#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 #, 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:2867 +#: parser/parse_expr.c:2930 #, 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:2908 +#: parser/parse_expr.c:2971 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Det finns flera lika sannolika kandidater." -#: parser/parse_expr.c:3001 -#, 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:3239 +#: parser/parse_expr.c:3306 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "JSON ENCODING tillåts bara för input-typen bytea" -#: parser/parse_expr.c:3261 +#: parser/parse_expr.c:3370 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "kan inte använda icke-strängtyper med implicit FORMAT JSON-klausul" -#: parser/parse_expr.c:3262 +#: parser/parse_expr.c:3371 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "kan inte använda icke-strängtyper med explicit FORMAT JSON-klausul" -#: parser/parse_expr.c:3335 +#: parser/parse_expr.c:3460 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "kan inte använda JSON-formatet för utddata som inte är strängar" -#: parser/parse_expr.c:3348 +#: parser/parse_expr.c:3473 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "kan inte sätta JSON-kodning för utdata-typer som inte är bytea" -#: parser/parse_expr.c:3353 +#: parser/parse_expr.c:3478 #, c-format msgid "unsupported JSON encoding" msgstr "ej stödd JSON-kodning" -#: parser/parse_expr.c:3354 +#: parser/parse_expr.c:3479 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "Enbart JSON-kodningen UTF8 stöds." -#: parser/parse_expr.c:3391 +#: parser/parse_expr.c:3516 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "returtyp SETOF stöds inte för SQL/JSON-funktioner" -#: parser/parse_expr.c:3712 parser/parse_func.c:865 +#: parser/parse_expr.c:3521 +#, c-format +msgid "returning pseudo-types is not supported in SQL/JSON functions" +msgstr "pseudo-typer stöds inte som resultat för SQL/JSON-funktioner" + +#: parser/parse_expr.c:3849 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "aggregat-ORDER BY är inte implementerat för fönsterfunktioner" -#: parser/parse_expr.c:3934 +#: parser/parse_expr.c:4072 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "kan inte använda JSON FORMAT ENCODING för indatatyper som inte är bytea" -#: parser/parse_expr.c:3954 +#: parser/parse_expr.c:4092 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "kan inte använda typen %s i ett IS JSON-predikat" -#: parser/parse_func.c:194 +#: parser/parse_expr.c:4118 parser/parse_expr.c:4239 #, c-format -msgid "argument name \"%s\" used more than once" -msgstr "argumentnamn \"%s\" angivet mer än en gång" +msgid "cannot use type %s in RETURNING clause of %s" +msgstr "kan inte använda typen %s i RETURNING-klausul för %s" -#: parser/parse_func.c:205 +#: parser/parse_expr.c:4120 #, c-format -msgid "positional argument cannot follow named argument" -msgstr "positionella argument kan inte komma efter namngivna argument" +msgid "Try returning json or jsonb." +msgstr "Försök returnera json eller jsonb." -#: parser/parse_func.c:287 parser/parse_func.c:2367 +#: parser/parse_expr.c:4168 #, c-format -msgid "%s is not a procedure" -msgstr "%s är inte en procedur" +msgid "cannot use non-string types with WITH UNIQUE KEYS clause" +msgstr "kan inte använda icke-strängtyper med WITH UNIQUE KEYS-klausul" -#: parser/parse_func.c:291 +#: parser/parse_expr.c:4242 #, c-format -msgid "To call a function, use SELECT." -msgstr "För att anropa en funktion, använd SELECT." +msgid "Try returning a string type or bytea." +msgstr "Försök returnera en strängtyp eller bytea." -#: parser/parse_func.c:297 +#: parser/parse_expr.c:4307 #, c-format -msgid "%s is a procedure" -msgstr "\"%s\" är en procedur" +msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgstr "kan inte ange FORMAT JSON i RETURNING-klausul för %s()" -#: parser/parse_func.c:301 +#: parser/parse_expr.c:4320 #, c-format -msgid "To call a procedure, use CALL." -msgstr "För att anropa en procedur, använd CALL" +msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" +msgstr "SQL/JSON QUOTES får inte anges tillsammans med WITH WRAPPER" -#: parser/parse_func.c:315 +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4334 parser/parse_expr.c:4363 parser/parse_expr.c:4394 +#: parser/parse_expr.c:4420 parser/parse_expr.c:4446 +#: parser/parse_jsontable.c:94 #, c-format -msgid "%s(*) specified, but %s is not an aggregate function" -msgstr "%s(*) angivet, men %s är inte en aggregatfunktion" +msgid "invalid %s behavior" +msgstr "ogiltig %s-angivelse" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4337 parser/parse_expr.c:4366 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s." +msgstr "Bara uttrycken ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT eller DEFAULT tillåts i %s för %s." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4344 parser/parse_expr.c:4373 parser/parse_expr.c:4402 +#: parser/parse_expr.c:4430 parser/parse_expr.c:4456 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "ogiltig %s-angivelse för kolumn \"%s\"" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4347 parser/parse_expr.c:4376 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns." +msgstr "Bara uttrycken ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT eller DEFAULT tillåts i %s för formatterade kolumner." + +#: parser/parse_expr.c:4395 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "Bara ERROR, TRUE, FALSE eller UNKNOWN tillåts i %s för %s." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4405 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "Bara ERROR, TRUE, FALSE eller UNKNOWN tillåts i %s för EXISTS-kolumner." + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4423 parser/parse_expr.c:4449 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "Bara uttrycken ERROR, NULL eller DEFAULT tillåts i %s för %s." + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4433 parser/parse_expr.c:4459 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "Bara uttrycken ERROR, NULL eller DEFAULT tillåts i %s för skalära kolumner." + +#: parser/parse_expr.c:4489 +#, c-format +msgid "JSON path expression must be of type %s, not of type %s" +msgstr "Uttryck för JSON-sökväg måste vara av typ %s, inte av typ %s" + +#: parser/parse_expr.c:4707 +#, c-format +msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT" +msgstr "kan bara ange en konstant, en icke-aggregat-funktion eller ett operatoruttryck för DEFAULT" + +#: parser/parse_expr.c:4712 +#, c-format +msgid "DEFAULT expression must not contain column references" +msgstr "DEFAULT-uttryck får inte innehålla kolumnreferenser" + +#: parser/parse_expr.c:4717 +#, c-format +msgid "DEFAULT expression must not return a set" +msgstr "DEFAULT-uttryck får inte returnera en mängd" + +#: parser/parse_expr.c:4793 parser/parse_expr.c:4802 +#, c-format +msgid "cannot cast behavior expression of type %s to %s" +msgstr "kan inte omvandla uttryck av typ %s till %s" + +#: parser/parse_expr.c:4796 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "Du måste explicit omvandla uttrycket till typen %s." + +#: parser/parse_func.c:194 +#, c-format +msgid "argument name \"%s\" used more than once" +msgstr "argumentnamn \"%s\" angivet mer än en gång" + +#: parser/parse_func.c:205 +#, c-format +msgid "positional argument cannot follow named argument" +msgstr "positionella argument kan inte komma efter namngivna argument" + +#: parser/parse_func.c:287 parser/parse_func.c:2368 +#, c-format +msgid "%s is not a procedure" +msgstr "%s är inte en procedur" + +#: parser/parse_func.c:291 +#, c-format +msgid "To call a function, use SELECT." +msgstr "För att anropa en funktion, använd SELECT." + +#: parser/parse_func.c:297 +#, c-format +msgid "%s is a procedure" +msgstr "\"%s\" är en procedur" + +#: parser/parse_func.c:301 +#, c-format +msgid "To call a procedure, use CALL." +msgstr "För att anropa en procedur, använd CALL" + +#: parser/parse_func.c:315 +#, c-format +msgid "%s(*) specified, but %s is not an aggregate function" +msgstr "%s(*) angivet, men %s är inte en aggregatfunktion" #: parser/parse_func.c:322 #, c-format @@ -18031,7 +18603,7 @@ msgstr "Kunde inte välja en bästa kandidatfunktion: Du kan behöva lägga till msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate." msgstr "Ingen aggregatfunktion matchar det givna namnet och argumenttyperna. Kanske har du placerat ORDER BY på fel plats; ORDER BY måste komma efter alla vanliga argument till aggregatet." -#: parser/parse_func.c:622 parser/parse_func.c:2410 +#: parser/parse_func.c:622 parser/parse_func.c:2411 #, c-format msgid "procedure %s does not exist" msgstr "proceduren \"%s\" finns inte" @@ -18051,7 +18623,7 @@ msgstr "Ingen funktion matchar det angivna namnet och argumenttyperna. Du kan be msgid "VARIADIC argument must be an array" msgstr "VARIADIC-argument måste vara en array" -#: parser/parse_func.c:791 parser/parse_func.c:855 +#: parser/parse_func.c:791 parser/parse_func.c:856 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr "%s(*) måste användas för att anropa en parameterlös aggregatfunktion" @@ -18066,263 +18638,257 @@ msgstr "aggregat kan inte returnera mängder" msgid "aggregates cannot use named arguments" msgstr "aggregat kan inte använda namngivna argument" -#: parser/parse_func.c:845 +#: parser/parse_func.c:846 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "DISTINCT är inte implementerad för fönsterfunktioner" -#: parser/parse_func.c:874 +#: parser/parse_func.c:875 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "FILTER är inte implementerat för icke-aggregat-fönsterfunktioner" -#: parser/parse_func.c:883 +#: parser/parse_func.c:884 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "fönsterfunktioner kan inte innehålla funtionsanrop till funktioner som returnerar mängder" -#: parser/parse_func.c:891 +#: parser/parse_func.c:892 #, c-format msgid "window functions cannot return sets" msgstr "fönsterfunktioner kan inte returnera mängder" -#: parser/parse_func.c:2166 parser/parse_func.c:2439 +#: parser/parse_func.c:2167 parser/parse_func.c:2440 #, c-format msgid "could not find a function named \"%s\"" msgstr "kunde inte hitta funktion med namn \"%s\"" -#: parser/parse_func.c:2180 parser/parse_func.c:2457 +#: parser/parse_func.c:2181 parser/parse_func.c:2458 #, c-format msgid "function name \"%s\" is not unique" msgstr "funktionsnamn \"%s\" är inte unikt" -#: parser/parse_func.c:2182 parser/parse_func.c:2460 +#: parser/parse_func.c:2183 parser/parse_func.c:2461 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "Ange argumentlistan för att välja funktionen entydigt." -#: parser/parse_func.c:2226 +#: parser/parse_func.c:2227 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" msgstr[0] "procedurer kan inte ha mer än %d argument" msgstr[1] "procedurer kan inte ha mer än %d argument" -#: parser/parse_func.c:2357 +#: parser/parse_func.c:2358 #, c-format msgid "%s is not a function" msgstr "%s är inte en funktion" -#: parser/parse_func.c:2377 +#: parser/parse_func.c:2378 #, c-format msgid "function %s is not an aggregate" msgstr "funktionen %s är inte en aggregatfunktion" -#: parser/parse_func.c:2405 +#: parser/parse_func.c:2406 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "kunde inte hitta en procedur med namn \"%s\"" -#: parser/parse_func.c:2419 +#: parser/parse_func.c:2420 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "kunde inte hitta ett aggregat med namn \"%s\"" -#: parser/parse_func.c:2424 +#: parser/parse_func.c:2425 #, c-format msgid "aggregate %s(*) does not exist" msgstr "aggregatfunktion %s(*) existerar inte" -#: parser/parse_func.c:2429 +#: parser/parse_func.c:2430 #, c-format msgid "aggregate %s does not exist" msgstr "aggregatfunktion %s existerar inte" -#: parser/parse_func.c:2465 +#: parser/parse_func.c:2466 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "procedurnamn \"%s\" är inte unikt" -#: parser/parse_func.c:2468 +#: parser/parse_func.c:2469 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "Ange argumentlistan för att välja proceduren entydigt." -#: parser/parse_func.c:2473 +#: parser/parse_func.c:2474 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "aggregatnamn \"%s\" är inte unikt" -#: parser/parse_func.c:2476 +#: parser/parse_func.c:2477 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "Ange argumentlistan för att välja aggregatet entydigt." -#: parser/parse_func.c:2481 +#: parser/parse_func.c:2482 #, c-format msgid "routine name \"%s\" is not unique" msgstr "rutinnamn \"%s\" är inte unikt" -#: parser/parse_func.c:2484 +#: parser/parse_func.c:2485 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "Ange argumentlistan för att välja rutinen entydigt." -#: parser/parse_func.c:2539 +#: parser/parse_func.c:2540 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "mängdreturnerande funktioner tillåts inte i JOIN-villkor" -#: parser/parse_func.c:2560 +#: parser/parse_func.c:2561 msgid "set-returning functions are not allowed in policy expressions" msgstr "mängdreturnerande funktioner tillåts inte i policy-uttryck" -#: parser/parse_func.c:2576 +#: parser/parse_func.c:2577 msgid "set-returning functions are not allowed in window definitions" msgstr "mängdreturnerande funktioner tillåts inte i fönsterdefinitioner" -#: parser/parse_func.c:2613 +#: parser/parse_func.c:2615 msgid "set-returning functions are not allowed in MERGE WHEN conditions" msgstr "mängdreturnerande funktioner tillåts inte i MERGE WHEN-villkor" -#: parser/parse_func.c:2617 +#: parser/parse_func.c:2619 msgid "set-returning functions are not allowed in check constraints" msgstr "mängdreturnerande funktioner tillåts inte i check-villkor" -#: parser/parse_func.c:2621 +#: parser/parse_func.c:2623 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "mängdreturnerande funktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_func.c:2624 +#: parser/parse_func.c:2626 msgid "set-returning functions are not allowed in index expressions" msgstr "mängdreturnerande funktioner tillåts inte i indexuttryck" -#: parser/parse_func.c:2627 +#: parser/parse_func.c:2629 msgid "set-returning functions are not allowed in index predicates" msgstr "mängdreturnerande funktioner tillåts inte i indexpredukat" -#: parser/parse_func.c:2630 +#: parser/parse_func.c:2632 msgid "set-returning functions are not allowed in statistics expressions" msgstr "mängdreturnerande funktioner tillåts inte i statistikuttryck" -#: parser/parse_func.c:2633 +#: parser/parse_func.c:2635 msgid "set-returning functions are not allowed in transform expressions" msgstr "mängdreturnerande funktioner tillåts inte i transformuttryck" -#: parser/parse_func.c:2636 +#: parser/parse_func.c:2638 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "mängdreturnerande funktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_func.c:2639 +#: parser/parse_func.c:2641 msgid "set-returning functions are not allowed in trigger WHEN conditions" msgstr "mängdreturnerande funktioner tillåts inte i WHEN-villkor" -#: parser/parse_func.c:2642 +#: parser/parse_func.c:2644 msgid "set-returning functions are not allowed in partition bound" msgstr "mängdreturnerande funktioner tillåts inte i partitionsgräns" -#: parser/parse_func.c:2645 +#: parser/parse_func.c:2647 msgid "set-returning functions are not allowed in partition key expressions" msgstr "mängdreturnerande funktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_func.c:2648 +#: parser/parse_func.c:2650 msgid "set-returning functions are not allowed in CALL arguments" msgstr "mängdreturnerande funktioner tillåts inte i CALL-argument" -#: parser/parse_func.c:2651 +#: parser/parse_func.c:2653 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "mängdreturnerande funktioner tillåts inte i COPY FROM WHERE-villkor" -#: parser/parse_func.c:2654 +#: parser/parse_func.c:2656 msgid "set-returning functions are not allowed in column generation expressions" msgstr "mängdreturnerande funktioner tillåts inte i kolumngenereringsuttryck" -#: parser/parse_merge.c:119 +#: parser/parse_jsontable.c:95 +#, c-format +msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "Enbart EMPTY [ ARRAY ] eller ERROR tillåts på toppnivå i ON ERROR-klausul." + +#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#, c-format +msgid "duplicate JSON_TABLE column or path name: %s" +msgstr "duplicerad JSON_TABLE-kolumn eller sökvägsnamn: %s" + +#: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WHERE RECURSIVE stöds inte i MERGE-satser" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:176 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "onåbar WHEN-klausul har angivits efter en ej villkorlig WHEN-klausul" -#: parser/parse_merge.c:191 -#, c-format -msgid "MERGE is not supported for relations with rules." -msgstr "MERGE stöds inte för relationer med regler." - -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:222 #, c-format msgid "name \"%s\" specified more than once" msgstr "namnet \"%s\" angivet mer än en gång" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:224 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Namnet används både som MERGE-måltabell och som datakälla." -#: parser/parse_node.c:87 +#: parser/parse_node.c:82 #, c-format msgid "target lists can have at most %d entries" msgstr "mållista kan ha som mest %d poster" -#: parser/parse_oper.c:123 parser/parse_oper.c:690 +#: parser/parse_oper.c:114 parser/parse_oper.c:678 #, c-format msgid "postfix operators are not supported" msgstr "postfix-operatorer stöds inte" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 -#, c-format -msgid "operator does not exist: %s" -msgstr "operator existerar inte: %s" - -#: parser/parse_oper.c:229 +#: parser/parse_oper.c:217 #, c-format msgid "Use an explicit ordering operator or modify the query." msgstr "Använd en explicit ordningsoperator eller ändra frågan." -#: parser/parse_oper.c:485 +#: parser/parse_oper.c:473 #, c-format msgid "operator requires run-time type coercion: %s" msgstr "operator kräver run-time-typomvandling: %s" -#: parser/parse_oper.c:641 +#: parser/parse_oper.c:629 #, c-format msgid "operator is not unique: %s" msgstr "operatorn är inte unik: %s" -#: parser/parse_oper.c:643 +#: parser/parse_oper.c:631 #, c-format msgid "Could not choose a best candidate operator. You might need to add explicit type casts." msgstr "Kunde inte välja en bästa kandidatoperator. Du behöver troligen lägga till en explicit typomvandling." -#: parser/parse_oper.c:652 +#: parser/parse_oper.c:640 #, c-format msgid "No operator matches the given name and argument type. You might need to add an explicit type cast." msgstr "Ingen operator matchar det angivna namnet och argumenttyp. Du kan behöva lägga till explicita typomvandlingar." -#: parser/parse_oper.c:654 +#: parser/parse_oper.c:642 #, c-format msgid "No operator matches the given name and argument types. You might need to add explicit type casts." msgstr "Ingen operator matchar det angivna namnet och argumenttyperna. Du kan behöva lägga till explicita typomvandlingar." -#: parser/parse_oper.c:714 parser/parse_oper.c:828 -#, c-format -msgid "operator is only a shell: %s" -msgstr "operator är bara en shell-typ: %s" - -#: parser/parse_oper.c:816 +#: parser/parse_oper.c:803 #, c-format msgid "op ANY/ALL (array) requires array on right side" msgstr "op ANY/ALL (array) kräver en array på höger sida" -#: parser/parse_oper.c:858 +#: parser/parse_oper.c:844 #, c-format msgid "op ANY/ALL (array) requires operator to yield boolean" msgstr "op ANY/ALL (array) kräver att operatorn returnerar en boolean" -#: parser/parse_oper.c:863 +#: parser/parse_oper.c:849 #, c-format msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "op ANY/ALL (array) kräver att operatorn inte returnerar en mängd" @@ -18332,7 +18898,7 @@ msgstr "op ANY/ALL (array) kräver att operatorn inte returnerar en mängd" msgid "inconsistent types deduced for parameter $%d" msgstr "inkonsistenta typer härledda för parameter $%d" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:309 tcop/postgres.c:744 #, c-format msgid "could not determine data type of parameter $%d" msgstr "kunde inte lista ut datatypen för parameter $%d" @@ -18352,13 +18918,13 @@ msgstr "tabellreferens %u är tvetydig" msgid "table name \"%s\" specified more than once" msgstr "tabellnamn \"%s\" angivet mer än en gång" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3633 +#: parser/parse_relation.c:3642 #, 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:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3644 #, 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." @@ -18384,7 +18950,7 @@ msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "kan inte använda systemkolumn \"%s\" i MERGE WHEN-villkor" #: parser/parse_relation.c:1236 parser/parse_relation.c:1691 -#: parser/parse_relation.c:2388 +#: parser/parse_relation.c:2384 #, 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" @@ -18399,157 +18965,157 @@ msgstr "Det finns en WITH-post med namn \"%s\" men den kan inte refereras till f 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:1834 +#: parser/parse_relation.c:1833 #, c-format msgid "a column definition list is redundant for a function with OUT parameters" msgstr "en kolumndefinitionslista är redundant för en funktion med OUT-parametrar" -#: parser/parse_relation.c:1840 +#: parser/parse_relation.c:1839 #, c-format msgid "a column definition list is redundant for a function returning a named composite type" msgstr "en kolumndefinitionslista är redundant för en funktion som returnerar en namngiven composite-typ" -#: parser/parse_relation.c:1847 +#: parser/parse_relation.c:1846 #, 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:1858 +#: parser/parse_relation.c:1857 #, 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:1895 +#: parser/parse_relation.c:1894 #, c-format msgid "column definition lists can have at most %d entries" msgstr "kolumndefinitionslistor kan ha som mest %d poster" -#: parser/parse_relation.c:1955 +#: parser/parse_relation.c:1954 #, 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:1982 parser/parse_relation.c:2068 +#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "funktioner i FROM kan returnera som mest %d kolumner" -#: parser/parse_relation.c:2098 +#: parser/parse_relation.c:2096 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "funktionen %s har %d kolumner tillgängliga men %d kolumner angivna" -#: parser/parse_relation.c:2180 +#: parser/parse_relation.c:2177 #, 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:2246 +#: parser/parse_relation.c:2242 #, c-format msgid "joins can have at most %d columns" msgstr "joins kan ha som mest %d kolumner" -#: parser/parse_relation.c:2271 +#: parser/parse_relation.c:2267 #, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" msgstr "join-uttryck \"%s\" har %d kolumner tillgängliga men %d kolumner angivna" -#: parser/parse_relation.c:2361 +#: parser/parse_relation.c:2357 #, 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:3632 +#: parser/parse_relation.c:3635 #, 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:3644 +#: parser/parse_relation.c:3647 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "För att referera till den tabellen så måste denna subfråga markeras som LATERAL." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3653 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "saknar FROM-klausulpost för tabell \"%s\"" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3693 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "Det finns kolumner med namn \"%s\", men de är i tabeller som inte kan refereras till från denna del av frågan." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3695 #, c-format msgid "Try using a table-qualified name." msgstr "Försök med ett tabell-prefixat namn." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3703 #, 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:3703 +#: parser/parse_relation.c:3706 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "För att referera till den kolumnen så måste denna subfråga markeras som LATERAL." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3708 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "För att referera till den kolumnen så måste du använda ett tabell-prefixat namn." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3728 #, 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:3739 +#: parser/parse_relation.c:3742 #, 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:481 parser/parse_target.c:796 +#: parser/parse_target.c:480 parser/parse_target.c:795 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "kan inte skriva till systemkolumn \"%s\"" -#: parser/parse_target.c:509 +#: parser/parse_target.c:508 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "kan inte sätta ett array-element till DEFAULT" -#: parser/parse_target.c:514 +#: parser/parse_target.c:513 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "kan inte sätta ett underfält till DEFAULT" -#: parser/parse_target.c:588 +#: parser/parse_target.c:587 #, 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:780 +#: parser/parse_target.c:779 #, 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:789 +#: parser/parse_target.c:788 #, 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:869 +#: parser/parse_target.c:877 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "tilldelning med array-index till \"%s\" kräver typ %s men uttrycket har typ %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:887 #, 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:1314 +#: parser/parse_target.c:1327 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * utan tabeller angivna är inte giltigt" @@ -18569,8 +19135,8 @@ msgstr "dålig %%TYPE-referens (för många punktade namn): %s" msgid "type reference %s converted to %s" msgstr "typreferens %s konverterad till %s" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 -#: utils/cache/typcache.c:450 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 +#: utils/cache/typcache.c:452 #, c-format msgid "type \"%s\" is only a shell" msgstr "typ \"%s\" är bara ett skal" @@ -18590,330 +19156,325 @@ msgstr "typmodifierare måste vare enkla konstanter eller identifierare" msgid "invalid type name \"%s\"" msgstr "ogiltigt typnamn \"%s\"" -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:263 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "kan inte skapa partitionerad tabell som barnarv" -#: parser/parse_utilcmd.c:580 +#: parser/parse_utilcmd.c:475 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "kan inte sätta loggningsstatus för en temporär sekvens" + +#: parser/parse_utilcmd.c:611 #, c-format msgid "array of serial is not implemented" msgstr "array med serial är inte implementerat" -#: parser/parse_utilcmd.c:659 parser/parse_utilcmd.c:671 -#: parser/parse_utilcmd.c:730 +#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702 +#: parser/parse_utilcmd.c:761 #, 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:683 +#: parser/parse_utilcmd.c:714 #, 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:700 +#: parser/parse_utilcmd.c:731 #, c-format msgid "identity columns are not supported on typed tables" msgstr "identitetskolumner stöds inte på typade tabeller" -#: parser/parse_utilcmd.c:704 +#: parser/parse_utilcmd.c:735 #, c-format msgid "identity columns are not supported on partitions" msgstr "identitetskolumner stöds inte för partitioner" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:744 #, 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:743 +#: parser/parse_utilcmd.c:774 #, c-format msgid "generated columns are not supported on typed tables" msgstr "genererade kolumner stöds inte på typade tabeller" -#: parser/parse_utilcmd.c:747 +#: parser/parse_utilcmd.c:778 #, 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:765 parser/parse_utilcmd.c:880 +#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911 #, 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:774 parser/parse_utilcmd.c:890 +#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921 #, 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:819 +#: parser/parse_utilcmd.c:850 #, 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:827 +#: parser/parse_utilcmd.c:858 #, 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:835 +#: parser/parse_utilcmd.c:866 #, 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:900 +#: parser/parse_utilcmd.c:931 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "uteslutningsvillkor stöds inte på främmande tabeller" -#: parser/parse_utilcmd.c:906 -#, c-format -msgid "exclusion constraints are not supported on partitioned tables" -msgstr "uteslutningsvillkor stöds inte för partitionerade tabeller" - -#: parser/parse_utilcmd.c:971 +#: parser/parse_utilcmd.c:996 #, 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:984 +#: parser/parse_utilcmd.c:1009 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "relationen \"%s\" är ogiltig i LIKE-klausul" -#: parser/parse_utilcmd.c:1741 parser/parse_utilcmd.c:1849 +#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Index \"%s\" innehåller en hela-raden-referens." -#: parser/parse_utilcmd.c:2236 +#: parser/parse_utilcmd.c:2242 #, 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:2256 +#: parser/parse_utilcmd.c:2262 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "index \"%s\" är redan associerad med ett villkor" -#: parser/parse_utilcmd.c:2271 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "index \"%s\" är inte giltigt" - -#: parser/parse_utilcmd.c:2277 +#: parser/parse_utilcmd.c:2283 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" är inte ett unikt index" -#: parser/parse_utilcmd.c:2278 parser/parse_utilcmd.c:2285 -#: parser/parse_utilcmd.c:2292 parser/parse_utilcmd.c:2369 +#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375 #, 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:2284 +#: parser/parse_utilcmd.c:2290 #, c-format msgid "index \"%s\" contains expressions" msgstr "index \"%s\" innehåller uttryck" -#: parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2297 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" är ett partiellt index" -#: parser/parse_utilcmd.c:2303 +#: parser/parse_utilcmd.c:2309 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" är ett \"deferrable\" index" -#: parser/parse_utilcmd.c:2304 +#: parser/parse_utilcmd.c:2310 #, 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:2368 +#: parser/parse_utilcmd.c:2374 #, 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:2525 +#: parser/parse_utilcmd.c:2531 #, 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:2531 +#: parser/parse_utilcmd.c:2537 #, 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:2878 +#: parser/parse_utilcmd.c:2871 #, 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:2950 +#: parser/parse_utilcmd.c:2943 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "statistikuttryck kan bara referera till tabellen som är refererad" -#: parser/parse_utilcmd.c:2993 +#: parser/parse_utilcmd.c:2986 #, c-format msgid "rules on materialized views are not supported" msgstr "regler på materialiserade vyer stöds inte" -#: parser/parse_utilcmd.c:3053 +#: parser/parse_utilcmd.c:3046 #, 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:3125 +#: parser/parse_utilcmd.c:3118 #, 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:3143 parser/parse_utilcmd.c:3244 -#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 +#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237 +#: rewrite/rewriteHandler.c:544 rewrite/rewriteManip.c:1096 #, 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:3161 +#: parser/parse_utilcmd.c:3154 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "ON SELECT-regel kan inte använda OLD" -#: parser/parse_utilcmd.c:3165 +#: parser/parse_utilcmd.c:3158 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "ON SELECT-regel kan inte använda NEW" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3167 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "ON INSERT-regel kan inte använda OLD" -#: parser/parse_utilcmd.c:3180 +#: parser/parse_utilcmd.c:3173 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "ON DELETE-regel kan inte använda NEW" -#: parser/parse_utilcmd.c:3208 +#: parser/parse_utilcmd.c:3201 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "kan inte referera till OLD i WITH-fråga" -#: parser/parse_utilcmd.c:3215 +#: parser/parse_utilcmd.c:3208 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "kan inte referera till NEW i WITH-fråga" -#: parser/parse_utilcmd.c:3667 +#: parser/parse_utilcmd.c:3664 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "felplacerad DEFERRABLE-klausul" -#: parser/parse_utilcmd.c:3672 parser/parse_utilcmd.c:3687 +#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "multipla DEFERRABLE/NOT DEFERRABLE-klausuler tillåts inte" -#: parser/parse_utilcmd.c:3682 +#: parser/parse_utilcmd.c:3679 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "felplacerad NOT DEFERRABLE-klausul" -#: parser/parse_utilcmd.c:3703 +#: parser/parse_utilcmd.c:3700 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "felplacerad INITIALLY DEFERRED-klausul" -#: parser/parse_utilcmd.c:3708 parser/parse_utilcmd.c:3734 +#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "multipla INITIALLY IMMEDIATE/DEFERRED-klausuler tillåts inte" -#: parser/parse_utilcmd.c:3729 +#: parser/parse_utilcmd.c:3726 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "felplacerad klausul INITIALLY IMMEDIATE" -#: parser/parse_utilcmd.c:3922 +#: parser/parse_utilcmd.c:3919 #, 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:3957 +#: parser/parse_utilcmd.c:3954 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" är inte en partitionerad tabell" -#: parser/parse_utilcmd.c:3964 +#: parser/parse_utilcmd.c:3961 #, c-format msgid "table \"%s\" is not partitioned" msgstr "tabell \"%s\" är inte partitionerad" -#: parser/parse_utilcmd.c:3971 +#: parser/parse_utilcmd.c:3968 #, c-format msgid "index \"%s\" is not partitioned" msgstr "index \"%s\" är inte partitionerad" -#: parser/parse_utilcmd.c:4011 +#: parser/parse_utilcmd.c:4008 #, 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:4028 +#: parser/parse_utilcmd.c:4025 #, c-format msgid "invalid bound specification for a hash partition" msgstr "ogiltig gränsangivelse för hash-partition" -#: parser/parse_utilcmd.c:4034 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802 #, c-format 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:4041 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810 #, 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:4054 +#: parser/parse_utilcmd.c:4051 #, c-format msgid "invalid bound specification for a list partition" msgstr "ogiltig gränsangivelse för listpartition" -#: parser/parse_utilcmd.c:4107 +#: parser/parse_utilcmd.c:4104 #, c-format msgid "invalid bound specification for a range partition" msgstr "ogiltig gränsangivelse för range-partition" -#: parser/parse_utilcmd.c:4113 +#: parser/parse_utilcmd.c:4110 #, 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:4117 +#: parser/parse_utilcmd.c:4114 #, 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:4231 +#: parser/parse_utilcmd.c:4228 #, c-format msgid "cannot specify NULL in range bound" msgstr "kan inte ange NULL i range-gräns" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4277 #, 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:4287 +#: parser/parse_utilcmd.c:4284 #, 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:4330 +#: parser/parse_utilcmd.c:4327 #, 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\"" @@ -18926,12 +19487,12 @@ msgstr "UESCAPE måste följas av en enkel stränglitteral" msgid "invalid Unicode escape character" msgstr "ogiltigt Unicode-escapetecken" -#: parser/parser.c:347 scan.l:1390 +#: parser/parser.c:347 scan.l:1393 #, c-format msgid "invalid Unicode escape value" msgstr "ogiltigt Unicode-escapevärde" -#: parser/parser.c:494 scan.l:701 utils/adt/varlena.c:6505 +#: parser/parser.c:494 scan.l:716 utils/adt/varlena.c:6640 #, c-format msgid "invalid Unicode escape" msgstr "ogiltig Unicode-escapesekvens" @@ -18941,8 +19502,8 @@ msgstr "ogiltig Unicode-escapesekvens" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Unicode-escapesekvenser måste vara \\XXXX eller \\+XXXXXX." -#: parser/parser.c:523 scan.l:662 scan.l:678 scan.l:694 -#: utils/adt/varlena.c:6530 +#: parser/parser.c:523 scan.l:677 scan.l:693 scan.l:709 +#: utils/adt/varlena.c:6665 #, c-format msgid "invalid Unicode surrogate pair" msgstr "ogiltigt Unicode-surrogatpar" @@ -18952,89 +19513,89 @@ msgstr "ogiltigt Unicode-surrogatpar" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "identifierare \"%s\" kommer trunkeras till \"%.*s\"" -#: partitioning/partbounds.c:2921 +#: partitioning/partbounds.c:2920 #, 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:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991 +#: partitioning/partbounds.c:3013 #, 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:2974 partitioning/partbounds.c:3015 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014 #, c-format msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"." msgstr "Ny modulon %d är inte en faktor av %d som är modulo för den existerande partitionen \"%s\"." -#: partitioning/partbounds.c:2993 +#: partitioning/partbounds.c:2992 #, c-format msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "Ny modulon %d är inte delbar med %d som är modulo för den existerande paritionen \"%s\"." -#: partitioning/partbounds.c:3128 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "tom intervallsgräns angiven för partition \"%s\"" -#: partitioning/partbounds.c:3130 +#: partitioning/partbounds.c:3129 #, 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." +msgstr "Angiven undre gräns %s är större än eller lika med övre gräns %s." -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "partition \"%s\" skulle överlappa partition \"%s\"" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, 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:4807 +#: partitioning/partbounds.c:4806 #, c-format 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:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" är inte en hash-partitionerad tabell" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, 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:4864 +#: partitioning/partbounds.c:4863 #, 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" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, 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:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 +#: port/sysv_sema.c:329 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "kunde inte göra stat() på datakatalog \"%s\": %m" -#: port/pg_shmem.c:223 port/sysv_shmem.c:223 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "could not create shared memory segment: %m" msgstr "kunde inte skapa delat minnessegment: %m" -#: port/pg_shmem.c:224 port/sysv_shmem.c:224 +#: port/pg_shmem.c:225 port/sysv_shmem.c:225 #, 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:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:229 port/sysv_shmem.c:229 #, 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" @@ -19043,7 +19604,7 @@ msgstr "" "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:235 port/sysv_shmem.c:235 +#: port/pg_shmem.c:236 port/sysv_shmem.c:236 #, 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" @@ -19052,7 +19613,7 @@ msgstr "" "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:241 port/sysv_shmem.c:241 +#: port/pg_shmem.c:242 port/sysv_shmem.c:242 #, 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" @@ -19061,59 +19622,59 @@ msgstr "" "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:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646 #, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "huge_page_size måste vara 0 på denna plattform." +msgid "\"huge_page_size\" must be 0 on this platform." +msgstr "\"huge_page_size\" måste vara 0 på denna plattform." -#: port/pg_shmem.c:646 port/sysv_shmem.c:646 +#: port/pg_shmem.c:655 port/sysv_shmem.c:655 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "kunde inte mappa anonymt delat minne: %m" -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:657 port/sysv_shmem.c:657 #, 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." +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:716 port/sysv_shmem.c:716 +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 #, c-format msgid "huge pages not supported on this platform" msgstr "stora sidor stöds inte på denna plattform" -#: port/pg_shmem.c:723 port/sysv_shmem.c:723 +#: port/pg_shmem.c:732 port/sysv_shmem.c:732 #, 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" +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:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1351 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1401 #, 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:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1353 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1403 #, 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\"." -#: port/sysv_sema.c:120 +#: port/sysv_sema.c:126 #, c-format msgid "could not create semaphores: %m" msgstr "kan inte skapa semafor: %m" -#: port/sysv_sema.c:121 +#: port/sysv_sema.c:127 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "Misslyckade systemanropet var semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:131 #, c-format msgid "" -"This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n" +"This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL." -msgstr "Detta fel betyder *inte* att disken blivit full. Detta fel kommer när systemgränsen för maximalt antal semaforvektorer (SEMMNI) överskridits eller när systemets globala maximum för semaforer (SEMMNS) överskridits. Du behöver öka respektive kernel-parameter. Alternativt kan du minska PostgreSQL:s användning av semaforer genom att dra ner på parametern max_connections. PostgreSQL:s dokumentation innehåller mer information om hur du konfigurerar systemet för PostgreSQL." +msgstr "Detta fel betyder *inte* att disken blivit full. Detta fel kommer när systemgränsen för maximalt antal semaforvektorer (SEMMNI) överskridits eller när systemets globala maximum för semaforer (SEMMNS) överskridits. Du behöver öka respektive kernel-parameter. Alternativt kan du minska PostgreSQL:s användning av semaforer genom att dra ner på parametern \"max_connections\". PostgreSQL:s dokumentation innehåller mer information om hur du konfigurerar systemet för PostgreSQL." -#: port/sysv_sema.c:155 +#: port/sysv_sema.c:161 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "Du kan behöva öka kärnans SEMVMX-värde till minst %d. Se PostgreSQL:s dokumentation för mer information." @@ -19238,972 +19799,877 @@ msgstr "Misslyckat systemanrop var DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Misslyckat systemanrop var MapViewOfFileEx." -#: postmaster/autovacuum.c:417 -#, c-format -msgid "could not fork autovacuum launcher process: %m" -msgstr "kunde inte starta autovacuum-process: %m" - -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:686 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "autovacuum-arbetaren tog för lång tid på sig att starta; avbruten" -#: postmaster/autovacuum.c:1489 -#, c-format -msgid "could not fork autovacuum worker process: %m" -msgstr "kunde inte starta autovacuum-arbetsprocess: %m" - -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2203 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "autovacuum: slänger övergiven temptabell \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2439 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "automatisk vacuum av tabell \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2442 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "automatisk analys av tabell \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2636 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "processar arbetspost för relation \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3254 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "autovacuum har inte startats på grund av en felkonfigurering" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3255 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Slå på flaggan \"track_counts\"." -#: postmaster/bgworker.c:259 +#: postmaster/bgworker.c:260 #, c-format msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" msgstr "inkonsistent tillstånd i bakgrundsarbetare (max_worker_processes=%d, total_slots=%d)" -#: postmaster/bgworker.c:669 +#: postmaster/bgworker.c:651 #, c-format msgid "background worker \"%s\": background workers without shared memory access are not supported" msgstr "bakgrundsarbetare \"%s\": bakgrundsarbetare utan access till delat minne stöds inte" -#: postmaster/bgworker.c:680 +#: postmaster/bgworker.c:662 #, 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:694 +#: postmaster/bgworker.c:676 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "bakgrundsarbetare \"%s\": ogiltigt omstartsintervall" -#: postmaster/bgworker.c:709 +#: postmaster/bgworker.c:691 #, 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:733 tcop/postgres.c:3255 +#: postmaster/bgworker.c:715 tcop/postgres.c:3312 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "terminerar bakgrundsarbetare \"%s\" pga administratörskommando" -#: postmaster/bgworker.c:890 +#: postmaster/bgworker.c:888 #, c-format -msgid "background worker \"%s\": must be registered in shared_preload_libraries" -msgstr "bakgrundsarbetare \"%s\": måste vara registrerad i shared_preload_libraries" +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:902 +#: postmaster/bgworker.c:911 #, 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:917 +#: postmaster/bgworker.c:926 #, c-format msgid "too many background workers" msgstr "för många bakgrundsarbetare" -#: postmaster/bgworker.c:918 +#: postmaster/bgworker.c:927 #, 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:922 +#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445 #, c-format -msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "Överväg att öka konfigurationsparametern \"max_worker_processes\"." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "Överväg att öka konfigurationsparametern \"%s\"." -#: postmaster/checkpointer.c:431 +#: postmaster/checkpointer.c:441 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" msgstr[0] "checkpoint:s sker för ofta (%d sekund emellan)" msgstr[1] "checkpoint:s sker för ofta (%d sekunder emellan)" -#: postmaster/checkpointer.c:435 -#, c-format -msgid "Consider increasing the configuration parameter \"max_wal_size\"." -msgstr "Överväg att öka konfigurationsparametern \"max_wal_size\"." - -#: postmaster/checkpointer.c:1059 +#: postmaster/checkpointer.c:1067 #, c-format msgid "checkpoint request failed" msgstr "checkpoint-behgäran misslyckades" -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1068 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Se senaste meddelanden i serverloggen för mer information." -#: postmaster/pgarch.c:416 +#: postmaster/launch_backend.c:381 +#, c-format +msgid "could not execute server process \"%s\": %m" +msgstr "kunde inte köra serverprocess \"%s\": %m" + +#: postmaster/launch_backend.c:434 +#, c-format +msgid "could not create backend parameter file mapping: error code %lu" +msgstr "kunde inte skapa fil-mapping för backend-parametrar: felkod %lu" + +#: postmaster/launch_backend.c:442 +#, c-format +msgid "could not map backend parameter memory: error code %lu" +msgstr "kunde inte mappa minne för backend-parametrar: felkod %lu" + +#: postmaster/launch_backend.c:459 +#, c-format +msgid "subprocess command line too long" +msgstr "subprocessens kommando är för långt" + +#: postmaster/launch_backend.c:477 +#, c-format +msgid "CreateProcess() call failed: %m (error code %lu)" +msgstr "Anrop till CreateProcess() misslyckades: %m (felkod %lu)" + +#: postmaster/launch_backend.c:504 +#, c-format +msgid "could not unmap view of backend parameter file: error code %lu" +msgstr "kunde inte avmappa vy för backend:ens parameterfil: felkod %lu" + +#: postmaster/launch_backend.c:508 +#, c-format +msgid "could not close handle to backend parameter file: error code %lu" +msgstr "kunde inte stänga \"handle\" till backend:ens parameterfil: felkod %lu" + +#: postmaster/launch_backend.c:530 #, c-format -msgid "archive_mode enabled, yet archiving is not configured" -msgstr "archive_mode är påslagen, men ändå är arkivering inte konfigurerad" +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/launch_backend.c:531 +#, c-format +msgid "This might be caused by ASLR or antivirus software." +msgstr "Detta kan orsakas av ASLR eller antivirusprogram." + +#: postmaster/launch_backend.c:834 +#, 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/launch_backend.c:866 +#, c-format +msgid "could not create inherited socket: error code %d\n" +msgstr "kunde inte skapa ärvt uttag (socket): felkod %d\n" + +#: postmaster/launch_backend.c:895 +#, c-format +msgid "could not open backend variables file \"%s\": %m\n" +msgstr "kunde inte öppna bakändans variabelfil \"%s\": %m\n" + +#: postmaster/launch_backend.c:901 +#, c-format +msgid "could not read from backend variables file \"%s\": %m\n" +msgstr "kunde inte läsa från bakändans variabelfil \"%s\": %m\n" + +#: postmaster/launch_backend.c:912 +#, c-format +msgid "could not read startup data from backend variables file \"%s\": %m\n" +msgstr "kunde inte uppstartsdata från bakändans variabelfil \"%s\": %m\n" + +#: postmaster/launch_backend.c:924 +#, c-format +msgid "could not remove file \"%s\": %m\n" +msgstr "kunde inte ta bort fil \"%s\": %m\n" + +#: postmaster/launch_backend.c:940 +#, 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/launch_backend.c:959 +#, 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/launch_backend.c:966 +#, 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/pgarch.c:428 +#, c-format +msgid "\"archive_mode\" enabled, yet archiving is not configured" +msgstr "\"archive_mode\" är påslagen, men ändå är arkivering inte konfigurerad" -#: postmaster/pgarch.c:438 +#: postmaster/pgarch.c:452 #, c-format msgid "removed orphan archive status file \"%s\"" msgstr "tog bort övergiven arkivstatusfil \"%s\": %m" -#: postmaster/pgarch.c:448 +#: postmaster/pgarch.c:462 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" msgstr "borttagning av övergiven arkivstatusfil \"%s\" misslyckades för många gånger, kommer försöka igen senare" -#: postmaster/pgarch.c:484 +#: postmaster/pgarch.c:498 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "arkivering av write-ahead-logg-fil \"%s\" misslyckades för många gånger, kommer försöka igen senare" -#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 #, c-format -msgid "both archive_command and archive_library set" -msgstr "både archive_command och archive_library är satt" +msgid "both \"archive_command\" and \"archive_library\" set" +msgstr "både \"archive_command\" och \"archive_library\" är satt" -#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 #, c-format -msgid "Only one of archive_command, archive_library may be set." -msgstr "Bara en av archive_command och archive_library får sättas." +msgid "Only one of \"archive_command\", \"archive_library\" may be set." +msgstr "Bara en av \"archive_command\" och \"archive_library\" får sättas." -#: postmaster/pgarch.c:809 +#: postmaster/pgarch.c:897 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "startar om arkiveringsprocess då värdet på \"archive_library\" har ändrats" -#: postmaster/pgarch.c:846 +#: postmaster/pgarch.c:934 #, c-format msgid "archive modules have to define the symbol %s" msgstr "arkiveringsmoduler måste definiera symbolen %s" -#: postmaster/pgarch.c:852 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules must register an archive callback" msgstr "arkiveringsmoduler måste registrera en arkiverings-callback" -#: postmaster/postmaster.c:759 +#: postmaster/postmaster.c:661 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: ogiltigt argument till flagga -f: \"%s\"\n" -#: postmaster/postmaster.c:832 +#: postmaster/postmaster.c:734 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: ogiltigt argument till flagga -t: \"%s\"\n" -#: postmaster/postmaster.c:855 +#: postmaster/postmaster.c:757 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: ogiltigt argument: \"%s\"\n" -#: postmaster/postmaster.c:923 +#: postmaster/postmaster.c:825 +#, c-format +msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" +msgstr "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) måste vara mindre än \"max_connections\" (%d)\n" + +#: postmaster/postmaster.c:833 #, c-format -msgid "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must be less than max_connections (%d)\n" -msgstr "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) måste vara mindre än max_connections (%d)\n" +msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" +msgstr "WAL-arkivering kan inte slås på när \"wal_level\" är \"minimal\"" -#: postmaster/postmaster.c:931 +#: postmaster/postmaster.c:836 #, c-format -msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "WAL-arkivering kan inte slås på när wal_level är \"minimal\"" +msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\"" +msgstr "WAL-strömning (\"max_wal_senders\" > 0) kräver att \"wal_level\" är \"replica\" eller \"logical\"" -#: postmaster/postmaster.c:934 +#: postmaster/postmaster.c:839 #, c-format -msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\"" -msgstr "WAL-strömning (max_wal_senders > 0) kräver wal_level \"replica\" eller \"logical\"" +msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" +msgstr "WAL kan inte summeras när \"wal_level\" är \"minimal\"" -#: postmaster/postmaster.c:942 +#: postmaster/postmaster.c:847 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: ogiltiga datumtokentabeller, det behöver lagas\n" -#: postmaster/postmaster.c:1099 +#: postmaster/postmaster.c:1004 #, c-format msgid "could not create I/O completion port for child queue" msgstr "kunde inte skapa \"I/O completion port\" för barnkö" -#: postmaster/postmaster.c:1175 +#: postmaster/postmaster.c:1069 #, c-format msgid "ending log output to stderr" msgstr "avslutar loggutmatning till stderr" -#: postmaster/postmaster.c:1176 +#: postmaster/postmaster.c:1070 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "Framtida loggutmatning kommer gå till logg-destination \"%s\"." -#: postmaster/postmaster.c:1187 +#: postmaster/postmaster.c:1081 #, c-format msgid "starting %s" msgstr "startar %s" -#: postmaster/postmaster.c:1239 +#: postmaster/postmaster.c:1143 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "kunde inte skapa lyssnande uttag (socket) för \"%s\"" -#: postmaster/postmaster.c:1245 +#: postmaster/postmaster.c:1149 #, c-format msgid "could not create any TCP/IP sockets" msgstr "kunde inte skapa TCP/IP-uttag (socket)" -#: postmaster/postmaster.c:1277 +#: postmaster/postmaster.c:1181 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister() misslyckades: felkod %ld" -#: postmaster/postmaster.c:1328 +#: postmaster/postmaster.c:1234 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "kunde inte skapa unix-domän-uttag (socket) i katalog \"%s\"" -#: postmaster/postmaster.c:1334 +#: postmaster/postmaster.c:1240 #, c-format msgid "could not create any Unix-domain sockets" msgstr "kunde inte skapa något Unix-domän-uttag (socket)" -#: postmaster/postmaster.c:1345 +#: postmaster/postmaster.c:1251 #, c-format msgid "no socket created for listening" msgstr "inget uttag (socket) skapat för lyssnande" -#: postmaster/postmaster.c:1376 +#: postmaster/postmaster.c:1282 #, c-format -msgid "%s: could not change permissions of external PID file \"%s\": %s\n" -msgstr "%s: kunde inte ändra rättigheter på extern PID-fil \"%s\": %s\n" +msgid "%s: could not change permissions of external PID file \"%s\": %m\n" +msgstr "%s: kunde inte ändra rättigheter på extern PID-fil \"%s\": %m\n" -#: postmaster/postmaster.c:1380 +#: postmaster/postmaster.c:1286 #, c-format -msgid "%s: could not write external PID file \"%s\": %s\n" -msgstr "%s: kunde inte skriva extern PID-fil \"%s\": %s\n" +msgid "%s: could not write external PID file \"%s\": %m\n" +msgstr "%s: kunde inte skriva extern PID-fil \"%s\": %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1408 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 #, c-format msgid "could not load %s" msgstr "kunde inte ladda \"%s\"" -#: postmaster/postmaster.c:1434 +#: postmaster/postmaster.c:1342 #, c-format msgid "postmaster became multithreaded during startup" msgstr "postmaster blev flertrådad under uppstart" -#: postmaster/postmaster.c:1435 +#: postmaster/postmaster.c:1343 postmaster/postmaster.c:3684 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Sätt omgivningsvariabeln LC_ALL till en giltig lokal." -#: postmaster/postmaster.c:1536 +#: postmaster/postmaster.c:1442 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: kunde inte hitta min egna körbara fils sökväg" -#: postmaster/postmaster.c:1543 +#: postmaster/postmaster.c:1449 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: kunde inte hitta matchande postgres-binär" -#: postmaster/postmaster.c:1566 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1472 utils/misc/tzparser.c:341 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "Detta tyder på en inkomplett PostgreSQL-installation alternativt att filen \"%s\" har flyttats bort från sin korrekta plats." -#: postmaster/postmaster.c:1593 +#: postmaster/postmaster.c:1499 #, c-format msgid "" "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" -"but could not open file \"%s\": %s\n" +"but could not open file \"%s\": %m\n" msgstr "" "%s: kunde inte hitta databassystemet\n" "Förväntade mig att hitta det i katalogen \"%s\",\n" -"men kunde inte öppna filen \"%s\": %s\n" +"men kunde inte öppna filen \"%s\": %m\n" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1890 +#: postmaster/postmaster.c:1789 #, c-format msgid "issuing %s to recalcitrant children" msgstr "skickar %s till motsträviga barn" -#: postmaster/postmaster.c:1912 +#: postmaster/postmaster.c:1811 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "stänger ner omedelbart då datakatalogens låsfil är ogiltig" -#: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 -#, c-format -msgid "incomplete startup packet" -msgstr "ofullständigt startuppaket" - -#: postmaster/postmaster.c:1999 postmaster/postmaster.c:2032 -#, c-format -msgid "invalid length of startup packet" -msgstr "ogiltig längd på startuppaket" - -#: postmaster/postmaster.c:2061 -#, c-format -msgid "failed to send SSL negotiation response: %m" -msgstr "misslyckades att skicka SSL-förhandlingssvar: %m" - -#: postmaster/postmaster.c:2079 -#, c-format -msgid "received unencrypted data after SSL request" -msgstr "tog emot okrypterad data efter SSL-förfrågan" - -#: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 -#, 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:2105 -#, c-format -msgid "failed to send GSSAPI negotiation response: %m" -msgstr "misslyckades att skicka GSSAPI-förhandlingssvar: %m" - -#: postmaster/postmaster.c:2123 -#, c-format -msgid "received unencrypted data after GSSAPI encryption request" -msgstr "tog emot okrypterad data efter GSSAPI-krypteringsförfrågan" - -#: postmaster/postmaster.c:2147 -#, 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:2214 -#, c-format -msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." -msgstr "Giltiga värden är: \"false\", 0, \"true\", 1, \"database\"." - -#: postmaster/postmaster.c:2255 -#, 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:2272 -#, c-format -msgid "no PostgreSQL user name specified in startup packet" -msgstr "inget PostgreSQL-användarnamn angivet i startuppaketet" - -#: postmaster/postmaster.c:2336 -#, c-format -msgid "the database system is starting up" -msgstr "databassystemet startar upp" - -#: postmaster/postmaster.c:2342 -#, c-format -msgid "the database system is not yet accepting connections" -msgstr "databassystemet tar ännu inte emot anslutningar" - -#: postmaster/postmaster.c:2343 -#, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "Konsistent återställningstillstånd har ännu inte uppnåtts." - -#: postmaster/postmaster.c:2347 -#, c-format -msgid "the database system is not accepting connections" -msgstr "databassystemet tar inte emot anslutningar" - -#: postmaster/postmaster.c:2348 -#, c-format -msgid "Hot standby mode is disabled." -msgstr "Hot standby-läge är avstängt." - -#: postmaster/postmaster.c:2353 -#, c-format -msgid "the database system is shutting down" -msgstr "databassystemet stänger ner" - -#: postmaster/postmaster.c:2358 -#, c-format -msgid "the database system is in recovery mode" -msgstr "databassystemet är återställningsläge" - -#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 -#, c-format -msgid "sorry, too many clients already" -msgstr "ledsen, för många klienter" - -#: postmaster/postmaster.c:2450 +#: postmaster/postmaster.c:1874 #, c-format msgid "wrong key in cancel request for process %d" msgstr "fel nyckel i avbrytbegäran för process %d" -#: postmaster/postmaster.c:2462 +#: postmaster/postmaster.c:1886 #, 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:2729 +#: postmaster/postmaster.c:2106 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "mottog SIGHUP, läser om konfigurationsfiler" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2753 postmaster/postmaster.c:2757 +#: postmaster/postmaster.c:2134 postmaster/postmaster.c:2138 #, c-format msgid "%s was not reloaded" msgstr "%s laddades inte om" -#: postmaster/postmaster.c:2767 +#: postmaster/postmaster.c:2148 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL-konfiguration laddades inte om" -#: postmaster/postmaster.c:2857 +#: postmaster/postmaster.c:2234 #, c-format msgid "received smart shutdown request" msgstr "tog emot förfrågan om att stänga ner smart" -#: postmaster/postmaster.c:2898 +#: postmaster/postmaster.c:2275 #, c-format msgid "received fast shutdown request" msgstr "tog emot förfrågan om att stänga ner snabbt" -#: postmaster/postmaster.c:2916 +#: postmaster/postmaster.c:2293 #, c-format msgid "aborting any active transactions" msgstr "avbryter aktiva transaktioner" -#: postmaster/postmaster.c:2940 +#: postmaster/postmaster.c:2317 #, c-format msgid "received immediate shutdown request" msgstr "mottog begäran för omedelbar nedstängning" -#: postmaster/postmaster.c:3016 +#: postmaster/postmaster.c:2389 #, c-format msgid "shutdown at recovery target" msgstr "nedstängs vid återställningsmål" -#: postmaster/postmaster.c:3034 postmaster/postmaster.c:3070 +#: postmaster/postmaster.c:2407 postmaster/postmaster.c:2443 msgid "startup process" msgstr "uppstartprocess" -#: postmaster/postmaster.c:3037 +#: postmaster/postmaster.c:2410 #, c-format msgid "aborting startup due to startup process failure" msgstr "avbryter uppstart på grund av fel i startprocessen" -#: postmaster/postmaster.c:3110 +#: postmaster/postmaster.c:2485 #, c-format msgid "database system is ready to accept connections" msgstr "databassystemet är redo att ta emot anslutningar" -#: postmaster/postmaster.c:3131 +#: postmaster/postmaster.c:2506 msgid "background writer process" msgstr "bakgrundsskrivarprocess" -#: postmaster/postmaster.c:3178 +#: postmaster/postmaster.c:2553 msgid "checkpointer process" msgstr "checkpoint-process" -#: postmaster/postmaster.c:3194 +#: postmaster/postmaster.c:2569 msgid "WAL writer process" msgstr "WAL-skrivarprocess" -#: postmaster/postmaster.c:3209 +#: postmaster/postmaster.c:2584 msgid "WAL receiver process" msgstr "WAL-mottagarprocess" -#: postmaster/postmaster.c:3224 +#: postmaster/postmaster.c:2598 +msgid "WAL summarizer process" +msgstr "WAL-summeringsprocess" + +#: postmaster/postmaster.c:2613 msgid "autovacuum launcher process" msgstr "autovacuum-startprocess" -#: postmaster/postmaster.c:3242 +#: postmaster/postmaster.c:2631 msgid "archiver process" msgstr "arkiveringsprocess" -#: postmaster/postmaster.c:3255 +#: postmaster/postmaster.c:2644 msgid "system logger process" msgstr "system-logg-process" -#: postmaster/postmaster.c:3312 +#: postmaster/postmaster.c:2661 +msgid "slot sync worker process" +msgstr "arbetarprocess för slotsynkronisering" + +#: postmaster/postmaster.c:2717 #, c-format msgid "background worker \"%s\"" msgstr "bakgrundsarbetare \"%s\"" -#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 -#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 +#: postmaster/postmaster.c:2796 postmaster/postmaster.c:2816 +#: postmaster/postmaster.c:2823 postmaster/postmaster.c:2841 msgid "server process" msgstr "serverprocess" -#: postmaster/postmaster.c:3490 +#: postmaster/postmaster.c:2895 #, 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:3665 +#: postmaster/postmaster.c:3082 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) avslutade med felkod %d" -#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 -#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 +#: postmaster/postmaster.c:3084 postmaster/postmaster.c:3096 +#: postmaster/postmaster.c:3106 postmaster/postmaster.c:3117 #, 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:3676 +#: postmaster/postmaster.c:3093 #, 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:3686 +#: postmaster/postmaster.c:3103 #, 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:3698 +#: postmaster/postmaster.c:3115 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) avslutade med okänd status %d" -#: postmaster/postmaster.c:3906 +#: postmaster/postmaster.c:3331 #, c-format msgid "abnormal database system shutdown" msgstr "ej normal databasnedstängning" -#: postmaster/postmaster.c:3932 +#: postmaster/postmaster.c:3357 #, c-format msgid "shutting down due to startup process failure" msgstr "stänger ner på grund av fel i startprocessen" -#: postmaster/postmaster.c:3938 +#: postmaster/postmaster.c:3363 #, c-format -msgid "shutting down because restart_after_crash is off" -msgstr "stänger ner då restart_after_crash är av" +msgid "shutting down because \"restart_after_crash\" is off" +msgstr "stänger ner då \"restart_after_crash\" är av" -#: postmaster/postmaster.c:3950 +#: postmaster/postmaster.c:3375 #, c-format msgid "all server processes terminated; reinitializing" msgstr "alla serverprocesser är avslutade; initierar på nytt" -#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 -#: postmaster/postmaster.c:5860 +#: postmaster/postmaster.c:3574 postmaster/postmaster.c:3985 +#: postmaster/postmaster.c:4374 #, c-format msgid "could not generate random cancel key" msgstr "kunde inte skapa slumpad avbrytningsnyckel" -#: postmaster/postmaster.c:4206 +#: postmaster/postmaster.c:3607 #, c-format msgid "could not fork new process for connection: %m" msgstr "kunde inte fork():a ny process for uppkoppling: %m" -#: postmaster/postmaster.c:4248 +#: postmaster/postmaster.c:3649 msgid "could not fork new process for connection: " msgstr "kunde inte fork():a ny process for uppkoppling: " -#: postmaster/postmaster.c:4354 +#: postmaster/postmaster.c:3683 #, c-format -msgid "connection received: host=%s port=%s" -msgstr "ansluting mottagen: värd=%s port=%s" +msgid "postmaster became multithreaded" +msgstr "postmaster blev flertrådad" -#: postmaster/postmaster.c:4359 +#: postmaster/postmaster.c:3752 #, c-format -msgid "connection received: host=%s" -msgstr "ansluting mottagen: värd=%s" +msgid "database system is ready to accept read-only connections" +msgstr "databassystemet är redo att ta emot read-only-anslutningar" -#: postmaster/postmaster.c:4596 +#: postmaster/postmaster.c:3935 #, c-format -msgid "could not execute server process \"%s\": %m" -msgstr "kunde inte köra serverprocess \"%s\": %m" +msgid "could not fork \"%s\" process: %m" +msgstr "kunde inte fork:a \"%s\"-process: %m" -#: postmaster/postmaster.c:4654 -#, c-format -msgid "could not create backend parameter file mapping: error code %lu" -msgstr "kunde inte skapa fil-mapping för backend-parametrar: felkod %lu" - -#: postmaster/postmaster.c:4663 -#, c-format -msgid "could not map backend parameter memory: error code %lu" -msgstr "kunde inte mappa minne för backend-parametrar: felkod %lu" - -#: postmaster/postmaster.c:4690 -#, c-format -msgid "subprocess command line too long" -msgstr "subprocessens kommando är för långt" - -#: postmaster/postmaster.c:4708 -#, c-format -msgid "CreateProcess() call failed: %m (error code %lu)" -msgstr "Anrop till CreateProcess() misslyckades: %m (felkod %lu)" - -#: postmaster/postmaster.c:4735 -#, c-format -msgid "could not unmap view of backend parameter file: error code %lu" -msgstr "kunde inte avmappa vy för backend:ens parameterfil: felkod %lu" - -#: postmaster/postmaster.c:4739 -#, c-format -msgid "could not close handle to backend parameter file: error code %lu" -msgstr "kunde inte stänga \"handle\" till backend:ens parameterfil: felkod %lu" - -#: postmaster/postmaster.c:4761 -#, 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:4762 -#, c-format -msgid "This might be caused by ASLR or antivirus software." -msgstr "Detta kan orsakas av ASLR eller antivirusprogram." - -#: postmaster/postmaster.c:4935 -#, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "SSL-konfigurering kunde inte laddas i barnprocess" - -#: postmaster/postmaster.c:5060 -#, c-format -msgid "Please report this to <%s>." -msgstr "Rapportera gärna detta till <%s>." - -#: postmaster/postmaster.c:5128 -#, 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:5386 -#, c-format -msgid "could not fork startup process: %m" -msgstr "kunde inte starta startup-processen: %m" - -#: postmaster/postmaster.c:5390 -#, c-format -msgid "could not fork archiver process: %m" -msgstr "kunde inte fork:a arkivprocess: %m" - -#: postmaster/postmaster.c:5394 -#, c-format -msgid "could not fork background writer process: %m" -msgstr "kunde inte starta process för bakgrundsskrivare: %m" - -#: postmaster/postmaster.c:5398 -#, c-format -msgid "could not fork checkpointer process: %m" -msgstr "kunde inte fork:a bakgrundsprocess: %m" - -#: postmaster/postmaster.c:5402 -#, c-format -msgid "could not fork WAL writer process: %m" -msgstr "kunde inte fork:a WAL-skrivprocess: %m" - -#: postmaster/postmaster.c:5406 -#, c-format -msgid "could not fork WAL receiver process: %m" -msgstr "kunde inte fork:a WAL-mottagarprocess: %m" - -#: postmaster/postmaster.c:5410 -#, c-format -msgid "could not fork process: %m" -msgstr "kunde inte fork:a process: %m" - -#: postmaster/postmaster.c:5611 postmaster/postmaster.c:5638 +#: postmaster/postmaster.c:4173 postmaster/postmaster.c:4207 #, c-format msgid "database connection requirement not indicated during registration" msgstr "krav på databasanslutning fanns inte med vid registering" -#: postmaster/postmaster.c:5622 postmaster/postmaster.c:5649 +#: postmaster/postmaster.c:4183 postmaster/postmaster.c:4217 #, c-format msgid "invalid processing mode in background worker" msgstr "ogiltigt processläge i bakgrundsarbetare" -#: postmaster/postmaster.c:5734 -#, c-format -msgid "could not fork worker process: %m" -msgstr "kunde inte starta (fork) arbetarprocess: %m" - -#: postmaster/postmaster.c:5846 -#, c-format -msgid "no slot available for new worker process" -msgstr "ingen slot tillgänglig för ny arbetsprocess" - -#: postmaster/postmaster.c:6177 -#, 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:6209 -#, 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:6238 -#, 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:6245 -#, 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:6254 -#, c-format -msgid "could not remove file \"%s\": %s\n" -msgstr "kunde inte ta bort fil \"%s\": %s\n" - -#: postmaster/postmaster.c:6271 -#, 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:6280 +#: postmaster/postmaster.c:4277 #, 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" +msgid "could not fork background worker process: %m" +msgstr "kunde inte fork:a process för bakgrundsarbete: %m" -#: postmaster/postmaster.c:6287 +#: postmaster/postmaster.c:4360 #, 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" +msgid "no slot available for new background worker process" +msgstr "ingen slot tillgänglig till ny process för bakgrundsarbete" -#: postmaster/postmaster.c:6446 +#: postmaster/postmaster.c:4623 #, c-format msgid "could not read exit code for process\n" msgstr "kunde inte läsa avslutningskod för process\n" -#: postmaster/postmaster.c:6488 +#: postmaster/postmaster.c:4665 #, c-format msgid "could not post child completion status\n" msgstr "kunde inte skicka barnets avslutningsstatus\n" -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 +#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 #, c-format msgid "could not read from logger pipe: %m" msgstr "kunde inte läsa från loggrör (pipe): %m" -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 +#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 #, c-format msgid "could not create pipe for syslog: %m" msgstr "kunde inte skapa rör (pipe) för syslog: %m" -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:712 #, c-format msgid "could not fork system logger: %m" msgstr "kunde inte fork:a systemloggaren: %m" -#: postmaster/syslogger.c:713 +#: postmaster/syslogger.c:731 #, c-format msgid "redirecting log output to logging collector process" msgstr "omdirigerar loggutmatning till logginsamlingsprocess" -#: postmaster/syslogger.c:714 +#: postmaster/syslogger.c:732 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "Framtida loggutmatning kommer dyka upp i katalog \"%s\"." -#: postmaster/syslogger.c:722 +#: postmaster/syslogger.c:740 #, c-format msgid "could not redirect stdout: %m" msgstr "kunde inte omdirigera stdout: %m" -#: postmaster/syslogger.c:727 postmaster/syslogger.c:744 +#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 #, c-format msgid "could not redirect stderr: %m" msgstr "kunde inte omdirigera stderr: %m" -#: postmaster/syslogger.c:1177 +#: postmaster/syslogger.c:1128 #, c-format -msgid "could not write to log file: %s\n" -msgstr "kunde inte skriva till loggfil: %s\n" +msgid "could not write to log file: %m\n" +msgstr "kunde inte skriva till loggfil: %m\n" -#: postmaster/syslogger.c:1295 +#: postmaster/syslogger.c:1246 #, c-format msgid "could not open log file \"%s\": %m" msgstr "kunde inte öppna loggfil \"%s\": %m" -#: postmaster/syslogger.c:1385 +#: postmaster/syslogger.c:1336 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "stänger av automatisk rotation (använd SIGHUP för att slå på igen)" -#: regex/regc_pg_locale.c:242 +#: postmaster/walsummarizer.c:740 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "WAL-summering avancerar inte" + +#: postmaster/walsummarizer.c:741 +#, c-format +msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." +msgstr "Summering krävs till %X/%X men har fastnat vid %X/%X på disk och vid %X/%X i minnet." + +#: postmaster/walsummarizer.c:755 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "väntar fortfarande på WAL-summering till %X/%X efter %ld sekund" +msgstr[1] "väntar fortfarande på WAL-summering till %X/%X efter %ld sekunder" + +#: postmaster/walsummarizer.c:760 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "Summering har nått %X/%X på disk och %X/%X i minnet." + +#: postmaster/walsummarizer.c:1000 +#, c-format +msgid "could not find a valid record after %X/%X" +msgstr "kunde inte hitta en giltig post efter %X/%X" + +#: postmaster/walsummarizer.c:1045 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X: %s" +msgstr "kunde inte läsa WAL från tidslinje %u vid %X/%X: %s" + +#: postmaster/walsummarizer.c:1051 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X" +msgstr "kunde inte läsa WAL från tidslinje %u vid %X/%X" + +#: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "kunde inte bestämma vilken jämförelse (collation) som skall användas för reguljära uttryck" -#: regex/regc_pg_locale.c:265 +#: regex/regc_pg_locale.c:262 #, c-format 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:301 repl_gram.y:333 +#: repl_gram.y:318 repl_gram.y:359 #, c-format msgid "invalid timeline %u" msgstr "ogiltig tidslinje %u" -#: repl_scanner.l:152 +#: repl_scanner.l:154 msgid "invalid streaming start location" msgstr "ogiltig startposition för strömning" -#: replication/libpqwalreceiver/libpqwalreceiver.c:197 -#: replication/libpqwalreceiver/libpqwalreceiver.c:280 +#: replication/libpqwalreceiver/libpqwalreceiver.c:267 +#: replication/libpqwalreceiver/libpqwalreceiver.c:358 #, c-format msgid "password is required" msgstr "lösenord krävs" -#: replication/libpqwalreceiver/libpqwalreceiver.c:198 +#: replication/libpqwalreceiver/libpqwalreceiver.c:268 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "Icke superanvändare kan inte ansluta till servern om den inte kräver lösenord." -#: replication/libpqwalreceiver/libpqwalreceiver.c:199 +#: replication/libpqwalreceiver/libpqwalreceiver.c:269 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." msgstr "Målserverns autentiseringsmetod måste ändras eller så måste man sätta password_required=false i prenumerationens parametrar." -#: replication/libpqwalreceiver/libpqwalreceiver.c:211 +#: replication/libpqwalreceiver/libpqwalreceiver.c:285 #, c-format msgid "could not clear search path: %s" msgstr "kunde inte nollställa sökväg: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:257 +#: replication/libpqwalreceiver/libpqwalreceiver.c:331 +#: replication/libpqwalreceiver/libpqwalreceiver.c:517 #, c-format msgid "invalid connection string syntax: %s" msgstr "ogiltig anslutningssträngsyntax %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:281 +#: replication/libpqwalreceiver/libpqwalreceiver.c:359 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "Icke superanvändare måste ange ett lösenord i anslutningssträngen." -#: replication/libpqwalreceiver/libpqwalreceiver.c:307 +#: replication/libpqwalreceiver/libpqwalreceiver.c:386 #, c-format msgid "could not parse connection string: %s" msgstr "kunde inte parsa anslutningssträng: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:380 +#: replication/libpqwalreceiver/libpqwalreceiver.c:459 #, 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:392 -#: replication/libpqwalreceiver/libpqwalreceiver.c:635 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:763 #, c-format msgid "invalid response from primary server" msgstr "ogiltigt svar från primär server" -#: replication/libpqwalreceiver/libpqwalreceiver.c:393 +#: replication/libpqwalreceiver/libpqwalreceiver.c:477 #, 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:478 -#: replication/libpqwalreceiver/libpqwalreceiver.c:485 -#: replication/libpqwalreceiver/libpqwalreceiver.c:515 +#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:613 +#: replication/libpqwalreceiver/libpqwalreceiver.c:643 #, c-format msgid "could not start WAL streaming: %s" msgstr "kunde inte starta WAL-strömning: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:539 +#: replication/libpqwalreceiver/libpqwalreceiver.c:667 #, 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:562 +#: replication/libpqwalreceiver/libpqwalreceiver.c:690 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "oväntad resultatmängd efter end-of-streaming" -#: replication/libpqwalreceiver/libpqwalreceiver.c:577 +#: replication/libpqwalreceiver/libpqwalreceiver.c:705 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "fel vid nestängning av strömmande COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:715 #, c-format msgid "error reading result of streaming command: %s" msgstr "fel vid läsning av resultat från strömningskommando: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 -#: replication/libpqwalreceiver/libpqwalreceiver.c:832 +#: replication/libpqwalreceiver/libpqwalreceiver.c:724 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "oväntat resultat efter CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:751 #, 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:636 +#: replication/libpqwalreceiver/libpqwalreceiver.c:764 #, 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:795 -#: replication/libpqwalreceiver/libpqwalreceiver.c:848 -#: replication/libpqwalreceiver/libpqwalreceiver.c:855 +#: replication/libpqwalreceiver/libpqwalreceiver.c:920 +#: replication/libpqwalreceiver/libpqwalreceiver.c:973 +#: replication/libpqwalreceiver/libpqwalreceiver.c:980 #, 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:875 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 #, 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:967 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "kunde inte skapa replikeringsslot \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1013 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#, c-format +msgid "could not alter replication slot \"%s\": %s" +msgstr "kunde inte ändra replikeringsslot \"%s\": %s" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 #, c-format msgid "invalid query response" msgstr "ogiltigt frågerespons" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1014 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Förväntade %d fält, fick %d fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1084 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 #, c-format msgid "the query interface requires a database connection" msgstr "frågeinterface:et kräver en databasanslutning" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1115 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 msgid "empty query" msgstr "tom fråga" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1121 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 msgid "unexpected pipeline mode" msgstr "oväntat pipeline-läge" @@ -20212,189 +20678,205 @@ msgstr "oväntat pipeline-läge" msgid "logical replication parallel apply worker for subscription \"%s\" has finished" msgstr "logisk replikerings parallella ändringsapplicerare för prenumeration \"%s\" har avslutat" -#: replication/logical/applyparallelworker.c:825 +#: replication/logical/applyparallelworker.c:822 #, c-format msgid "lost connection to the logical replication apply worker" msgstr "tappade anslutning till den logiska replikeringens ändringsapplicerare" -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 +#: replication/logical/applyparallelworker.c:1024 +#: replication/logical/applyparallelworker.c:1026 msgid "logical replication parallel apply worker" msgstr "logisk replikerings ändringsapplicerare" -#: replication/logical/applyparallelworker.c:1043 +#: replication/logical/applyparallelworker.c:1040 #, c-format msgid "logical replication parallel apply worker exited due to error" msgstr "logiska replikeringens ändringsappliceraren avslutade på grund av ett fel" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 +#: replication/logical/applyparallelworker.c:1127 +#: replication/logical/applyparallelworker.c:1300 #, c-format msgid "lost connection to the logical replication parallel apply worker" msgstr "tappade anslutning till den logiska replikeringens parallella ändringsapplicerare" -#: replication/logical/applyparallelworker.c:1183 +#: replication/logical/applyparallelworker.c:1180 #, c-format msgid "could not send data to shared-memory queue" msgstr "kunde inte skicka data till kö i delat minne" -#: replication/logical/applyparallelworker.c:1218 +#: replication/logical/applyparallelworker.c:1215 #, c-format msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" msgstr "logiska replikeringens ändringsapplicerare kommer spara ner återstående ändringarna av fjärrtransaktion %u til en fil" -#: replication/logical/decode.c:180 replication/logical/logical.c:140 +#: replication/logical/decode.c:177 replication/logical/logical.c:141 #, c-format -msgid "logical decoding on standby requires wal_level >= logical on the primary" -msgstr "logisk avkodning på standby kräver wal_level >= logical på primären" +msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" +msgstr "logisk avkodning på standby kräver \"wal_level\" >= \"logical\" på primären" -#: replication/logical/launcher.c:331 +#: replication/logical/launcher.c:334 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" msgstr "kan inte starta logisk replikeringsarbetare när max_replication_slots = 0" -#: replication/logical/launcher.c:424 +#: replication/logical/launcher.c:427 #, c-format msgid "out of logical replication worker slots" msgstr "slut på logiska replikeringsarbetarslots" -#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 -#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 -#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 -#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 -#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 +#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 +#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023 +#: storage/lmgr/lock.c:2836 storage/lmgr/lock.c:4221 storage/lmgr/lock.c:4286 +#: storage/lmgr/lock.c:4636 storage/lmgr/predicate.c:2469 +#: storage/lmgr/predicate.c:2484 storage/lmgr/predicate.c:3881 #, c-format -msgid "You might need to increase %s." -msgstr "Du kan behöva öka %s." +msgid "You might need to increase \"%s\"." +msgstr "Du kan behöva öka \"%s\"." -#: replication/logical/launcher.c:498 +#: replication/logical/launcher.c:513 #, c-format msgid "out of background worker slots" msgstr "slut på bakgrundsarbetarslots" -#: replication/logical/launcher.c:705 +#: replication/logical/launcher.c:720 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "logisk replikeringsarbetarslot %d är tom, kan inte ansluta" -#: replication/logical/launcher.c:714 +#: replication/logical/launcher.c:729 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" msgstr "logiisk replikeringsarbetarslot %d används redan av en annan arbetare, kan inte ansluta" -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:121 #, c-format -msgid "logical decoding requires wal_level >= logical" -msgstr "logisk avkodning kräver wal_level >= logical" +msgid "logical decoding requires \"wal_level\" >= \"logical\"" +msgstr "logisk avkodning kräver \"wal_level\" >= \"logical\"" -#: replication/logical/logical.c:125 +#: replication/logical/logical.c:126 #, c-format msgid "logical decoding requires a database connection" msgstr "logisk avkodning kräver en databasanslutning" -#: replication/logical/logical.c:363 replication/logical/logical.c:517 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "kan inte använda fysisk replikeringsslot för logisk avkodning" -#: replication/logical/logical.c:368 replication/logical/logical.c:522 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "replikeringsslot \"%s\" har inte skapats i denna databasen" -#: replication/logical/logical.c:375 +#: replication/logical/logical.c:377 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "kan inte skapa logisk replikeringsslot i transaktion som redan har utfört skrivningar" -#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#: replication/logical/logical.c:540 +#, c-format +msgid "cannot use replication slot \"%s\" for logical decoding" +msgstr "kan inte använda replikeringsslot \"%s\" för logisk avkodning" + +#: replication/logical/logical.c:542 replication/slot.c:798 +#: replication/slot.c:829 +#, c-format +msgid "This replication slot is being synchronized from the primary server." +msgstr "Denna replikeringsslot synkroniseras från primära servern." + +#: replication/logical/logical.c:543 +#, c-format +msgid "Specify another replication slot." +msgstr "Ange en annan replikeringsslot." + +#: replication/logical/logical.c:554 replication/logical/logical.c:561 #, c-format msgid "can no longer get changes from replication slot \"%s\"" msgstr "kan inte längre få ändringar från replikeringsslot \"%s\"" -#: replication/logical/logical.c:536 +#: replication/logical/logical.c:556 #, 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/logical/logical.c:543 +#: replication/logical/logical.c:563 #, c-format msgid "This slot has been invalidated because it was conflicting with recovery." msgstr "Denna slot har invaliderats den var i konflikt med återställningen." -#: replication/logical/logical.c:608 +#: replication/logical/logical.c:628 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "startar logisk avkodning för slot \"%s\"" -#: replication/logical/logical.c:610 +#: replication/logical/logical.c:630 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Strömmar transaktioner commit:ade efter %X/%X, läser WAL från %X/%X" -#: replication/logical/logical.c:758 +#: replication/logical/logical.c:778 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "slot \"%s\", utdata-plugin \"%s\", i callback:en %s, associerad LSN %X/%X" -#: replication/logical/logical.c:764 +#: replication/logical/logical.c:784 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "slot \"%s\", utdata-plugin \"%s\", i callback:en %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:955 replication/logical/logical.c:1000 +#: replication/logical/logical.c:1045 replication/logical/logical.c:1091 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "logisk replikering vid prepare-tillfället kräver en %s-callback" -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1323 replication/logical/logical.c:1372 +#: replication/logical/logical.c:1413 replication/logical/logical.c:1499 +#: replication/logical/logical.c:1548 #, c-format msgid "logical streaming requires a %s callback" msgstr "logisk strömning kräven en %s-callback" -#: replication/logical/logical.c:1438 +#: replication/logical/logical.c:1458 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "logisk strömning vid prepare-tillfället kräver en %s-callback" -#: replication/logical/logicalfuncs.c:126 +#: replication/logical/logicalfuncs.c:123 #, c-format msgid "slot name must not be null" msgstr "slot-namn får inte vara null" -#: replication/logical/logicalfuncs.c:142 +#: replication/logical/logicalfuncs.c:139 #, c-format msgid "options array must not be null" msgstr "flagg-array får inte vara null" -#: replication/logical/logicalfuncs.c:159 +#: replication/logical/logicalfuncs.c:156 #, c-format msgid "array must be one-dimensional" msgstr "array:en måste vara endimensionell" -#: replication/logical/logicalfuncs.c:165 +#: replication/logical/logicalfuncs.c:162 #, c-format msgid "array must not contain nulls" msgstr "array:en får inte innehålla null" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420 +#: utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "array:en måste ha ett jämnt antal element" -#: replication/logical/logicalfuncs.c:227 +#: replication/logical/logicalfuncs.c:224 #, c-format msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "utdata-plugin \"%s\" för logisk avkodning producerar binär utdata men funktionen \"%s\" förväntar sig textdata" #: replication/logical/origin.c:190 #, c-format -msgid "cannot query or manipulate replication origin when max_replication_slots = 0" -msgstr "kan inte se eller ändra replikeringskällor när max_replication_slots = 0" +msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0" +msgstr "kan inte se eller ändra replikeringskällor när \"max_replication_slots\" är 0" #: replication/logical/origin.c:195 #, c-format @@ -20428,8 +20910,8 @@ msgstr "replikeringscheckpoint har fel magiskt tal %u istället för %u" #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase max_replication_slots" -msgstr "kunde inte hitta ledig replikeringsplats, öka max_replication_slots" +msgid "could not find free replication state, increase \"max_replication_slots\"" +msgstr "kunde inte hitta ledig replikeringsplats, öka \"max_replication_slots\"" #: replication/logical/origin.c:806 #, c-format @@ -20441,1233 +20923,1549 @@ msgstr "återställde replikeringstillstånd för nod %d till %X/%X" msgid "replication slot checkpoint has wrong checksum %u, expected %u" msgstr "replikeringsslot-checkpoint har felaktig kontrollsumma %u, förväntade %u" -#: replication/logical/origin.c:944 replication/logical/origin.c:1141 +#: replication/logical/origin.c:944 replication/logical/origin.c:1143 #, c-format msgid "replication origin with ID %d is already active for PID %d" msgstr "replikeringskälla med ID %d är redan aktiv för PID %d" -#: replication/logical/origin.c:955 replication/logical/origin.c:1153 +#: replication/logical/origin.c:955 replication/logical/origin.c:1156 #, c-format msgid "could not find free replication state slot for replication origin with ID %d" msgstr "kunde inte hitta ledig replikerings-state-slot för replikerings-origin med ID %d" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 +#: replication/slot.c:2384 #, c-format -msgid "Increase max_replication_slots and try again." -msgstr "Öka max_replication_slots och försök igen." +msgid "Increase \"max_replication_slots\" and try again." +msgstr "Öka \"max_replication_slots\" och försök igen." -#: replication/logical/origin.c:1112 +#: replication/logical/origin.c:1114 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "kan inte ställa in replikeringskälla när en redan är inställd" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1199 replication/logical/origin.c:1415 +#: replication/logical/origin.c:1435 #, c-format msgid "no replication origin is configured" msgstr "ingen replikeringskälla är konfigurerad" -#: replication/logical/origin.c:1282 +#: replication/logical/origin.c:1285 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "replikeringskällnamn \"%s\" är reserverat" -#: replication/logical/origin.c:1284 +#: replication/logical/origin.c:1287 #, c-format msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." msgstr "Källnamn \"%s\", \"%s\" och namn som startar med \"pg_\" är reserverade." -#: replication/logical/relation.c:240 +#: replication/logical/relation.c:242 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:245 #, c-format msgid ", \"%s\"" msgstr ", \"%s\"" -#: replication/logical/relation.c:249 +#: replication/logical/relation.c:251 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" msgstr[0] "destinationsrelation \"%s.%s\" för logisk replikering saknar en replikerad kolumn: %s" msgstr[1] "destinationsrelation \"%s.%s\" för logisk replikering saknar några replikerade kolumner: %s" -#: replication/logical/relation.c:304 +#: replication/logical/relation.c:306 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "destinationsrelation \"%s.%s\" för logisk replikering använder systemkolumner i REPLICA IDENTITY-index" -#: replication/logical/relation.c:396 +#: replication/logical/relation.c:398 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "destinationsrelation \"%s.%s\" för logisk replikering finns inte" -#: replication/logical/reorderbuffer.c:3936 +#: replication/logical/reorderbuffer.c:3999 #, 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:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4345 +#: replication/logical/reorderbuffer.c:4370 #, 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:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4349 +#: replication/logical/reorderbuffer.c:4374 #, 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:4561 +#: replication/logical/reorderbuffer.c:4624 #, 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:5057 +#: replication/logical/reorderbuffer.c:5120 #, 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" -#: replication/logical/snapbuild.c:639 +#: replication/logical/slotsync.c:215 +#, c-format +msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot" +msgstr "kunde inte synkronisera replikeringsslot \"%s\" då fjärrslotten ligger tidigare än den lokala slotten" + +#: replication/logical/slotsync.c:217 +#, c-format +msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u." +msgstr "Fjärrslotten har LSN %X/%X och katalog-xmin %u men lokala slotten har LSN %X/%X och katalog-xmin %u." + +#: replication/logical/slotsync.c:459 +#, c-format +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "slängde replikerings-slot \"%s\" för databas med OID %u" + +#: replication/logical/slotsync.c:579 +#, c-format +msgid "could not synchronize replication slot \"%s\"" +msgstr "kunde inte synkronisera replikeringsslot \"%s\"" + +#: replication/logical/slotsync.c:580 +#, c-format +msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X." +msgstr "Logisk avkodning kunde inte hitta en konsistent punkt från lokala slottens LSN %X/%X" + +#: replication/logical/slotsync.c:589 +#, c-format +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "nyskapad replikeringsslot \"%s\" är redo för synk nu" + +#: replication/logical/slotsync.c:628 +#, c-format +msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" +msgstr "hoppar över slotsynkronisering då den mottagna slottens synk-LSN %X/%X för slot \"%s\" är längre fram än standby-positionen %X/%X" + +#: replication/logical/slotsync.c:650 +#, c-format +msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby" +msgstr "avslutar slotsynkronisering då samma slotnamn \"%s\" redan finns på standby:en" + +#: replication/logical/slotsync.c:819 +#, c-format +msgid "could not fetch failover logical slots info from the primary server: %s" +msgstr "kan inte hämta logisk slot för failover från primära servern: %s" + +#: replication/logical/slotsync.c:965 +#, c-format +msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s" +msgstr "kan inte hämta info för primary_slot_name \"%s\" från primära servern: %s" + +#: replication/logical/slotsync.c:967 +#, c-format +msgid "Check if primary_slot_name is configured correctly." +msgstr "Kontrollera att primary_slot_name är korrekt konfigurerad." + +#: replication/logical/slotsync.c:987 +#, c-format +msgid "cannot synchronize replication slots from a standby server" +msgstr "kan inte synkronisera replikeringsslottar från en standby-server" + +#. translator: second %s is a GUC variable name +#: replication/logical/slotsync.c:996 +#, c-format +msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "replikeringsslot \"%s\" angiven av %s finns inte på den primära servern." + +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1029 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "synkronisering av replikeringsslot kräver att \"%s\" anges i %s" + +#: replication/logical/slotsync.c:1050 +#, c-format +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "synkronisering av replikeringsslot kräver at \"wal_level\" >= \"logical\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "synkronisering av replikeringsslot kräver att \"%s\" också anges" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1077 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "synkronisering av replikeringsslot kräver att \"%s\" också slås på" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1129 +#, c-format +msgid "replication slot synchronization worker will shut down because \"%s\" is disabled" +msgstr "arbetare för synkronisering av replikeringsslot kommer stängas ner då \"%s\" är avslagen" + +#: replication/logical/slotsync.c:1138 +#, c-format +msgid "replication slot synchronization worker will restart because of a parameter change" +msgstr "arbetare för synkronisering av replikeringsslot kommer startas om då parametrar ändrats" + +#: replication/logical/slotsync.c:1162 +#, c-format +msgid "replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "arbetare för synkronisering av replikeringsslot stänger ner efter mottagning av SIGINT" + +#: replication/logical/slotsync.c:1287 +#, c-format +msgid "cannot synchronize replication slots when standby promotion is ongoing" +msgstr "kan inte synkronisera replikeringsslot när befordran av standby pågår" + +#: replication/logical/slotsync.c:1295 +#, c-format +msgid "cannot synchronize replication slots concurrently" +msgstr "kan inte synkronisera replikeringsslottar parallellt" + +#: replication/logical/slotsync.c:1403 +#, c-format +msgid "slot sync worker started" +msgstr "arbetare för slot-synk startad" + +#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 +#: replication/walreceiver.c:307 +#, c-format +msgid "could not connect to the primary server: %s" +msgstr "kunde inte ansluta till primärserver: %s" + +#: replication/logical/snapbuild.c:653 #, c-format msgid "initial slot snapshot too large" msgstr "initialt slot-snapshot är för stort" -#: replication/logical/snapbuild.c:693 +#: replication/logical/snapbuild.c:707 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" 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:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1996 +#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "logisk avkodning hittade konsistent punkt vid %X/%X" -#: replication/logical/snapbuild.c:1390 +#: replication/logical/snapbuild.c:1406 #, c-format msgid "There are no running transactions." msgstr "Det finns inga körande transaktioner." -#: replication/logical/snapbuild.c:1432 +#: replication/logical/snapbuild.c:1453 #, 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:1434 replication/logical/snapbuild.c:1458 +#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479 #, 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:1456 +#: replication/logical/snapbuild.c:1477 #, 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:1482 +#: replication/logical/snapbuild.c:1503 #, c-format msgid "There are no old transactions anymore." msgstr "Det finns inte längre några gamla transaktioner." -#: replication/logical/snapbuild.c:1883 +#: replication/logical/snapbuild.c:1904 #, 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:1889 +#: replication/logical/snapbuild.c:1910 #, 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:1930 +#: replication/logical/snapbuild.c:1951 #, 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:1998 +#: replication/logical/snapbuild.c:2019 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Logisk avkodning kommer starta med sparat snapshot." -#: replication/logical/snapbuild.c:2105 +#: replication/logical/snapbuild.c:2126 #, c-format msgid "could not parse file name \"%s\"" msgstr "kunde inte parsa filnamn \"%s\"" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:161 #, c-format 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:622 +#: replication/logical/tablesync.c:641 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "arbetarprocess för uppspelning av logisk replikering av prenumeration \"%s\" kommer starta om så att two_phase kan slås på" -#: replication/logical/tablesync.c:797 replication/logical/tablesync.c:939 +#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 #, 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:804 +#: replication/logical/tablesync.c:834 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "tabell \"%s.%s\" hittades inte hos publicerare" -#: replication/logical/tablesync.c:862 +#: replication/logical/tablesync.c:892 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "kunde inte hämta kolumlista för tabell \"%s.%s\" från publicerare: %s" -#: replication/logical/tablesync.c:1041 +#: replication/logical/tablesync.c:1071 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "kunde inte hämta tabells WHERE-klausul för tabell \"%s.%s\" från publicerare: %s" -#: replication/logical/tablesync.c:1192 +#: replication/logical/tablesync.c:1230 #, 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:1393 +#: replication/logical/tablesync.c:1429 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "tabellkopiering kunde inte starta transaktion på publiceraren: %s" -#: replication/logical/tablesync.c:1435 +#: replication/logical/tablesync.c:1472 #, c-format msgid "replication origin \"%s\" already exists" msgstr "replikeringsurspring \"%s\" finns redan" -#: replication/logical/tablesync.c:1468 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "användaren \"%s\" kan inte replikera in i en relation med radsäkerhet påslagen: \"%s\"" -#: replication/logical/tablesync.c:1481 +#: replication/logical/tablesync.c:1518 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "tabellkopiering kunde inte slutföra transaktion på publiceraren: %s" -#: replication/logical/worker.c:499 +#: replication/logical/worker.c:481 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" msgstr "logiska replikeringens parallella ändringsapplicerare för prenumeration \"%s\" kommer stoppa" -#: replication/logical/worker.c:501 +#: replication/logical/worker.c:483 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." msgstr "Kan inte hantera strömmade replikerade transaktioner med parallell ändringsapplicerare innan alla tabeller har synkroniserats." -#: replication/logical/worker.c:863 replication/logical/worker.c:978 +#: replication/logical/worker.c:852 replication/logical/worker.c:967 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "inkorrekt binärt dataformat i logisk replikeringskolumn %d" -#: replication/logical/worker.c:2513 +#: replication/logical/worker.c:2500 #, 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:2520 +#: replication/logical/worker.c:2507 #, 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:3384 +#: replication/logical/worker.c:3371 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "ogiltig logisk replikeringsmeddelandetyp \"??? (%d)\"" -#: replication/logical/worker.c:3556 +#: replication/logical/worker.c:3543 #, c-format msgid "data stream from publisher has ended" msgstr "dataströmmen från publiceraren har avslutats" -#: replication/logical/worker.c:3713 +#: replication/logical/worker.c:3697 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "avslutar logisk replikeringsarbetare på grund av timeout" -#: replication/logical/worker.c:3907 +#: replication/logical/worker.c:3891 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" msgstr "logiska replikerings ändringsapplicerare för prenumeration \"%s\" kommer att stoppa då prenumerationen har tagits bort" -#: replication/logical/worker.c:3920 +#: replication/logical/worker.c:3905 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "logiska replikerings ändringsapplicerare för prenumeration \"%s\" kommer att stoppa då prenumerationen har stängts av" -#: replication/logical/worker.c:3951 +#: replication/logical/worker.c:3936 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" msgstr "logiska replikeringens ändringsapplicerare för prenumeration \"%s\" kommer att stoppa på grund av ändrade parametrar" -#: replication/logical/worker.c:3955 +#: replication/logical/worker.c:3940 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" msgstr "logiska replikeringens ändringsapplicerare för prenumeration \"%s\" kommer att startas om på grund av ändrade parametrar" +#: replication/logical/worker.c:3954 +#, c-format +msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked" +msgstr "logiska replikerings parallella ändringsapplicerare för prenumeration \"%s\" kommer att stoppa då prenumerationens ägare har blivit av med superuser-rättigheten" + +#: replication/logical/worker.c:3958 +#, c-format +msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked" +msgstr "logiska replikerings ändringsapplicerare för prenumeration \"%s\" kommer att startas om då prenumerationens ägare har blivit av med superuser-rättigheten" + #: replication/logical/worker.c:4478 #, c-format +msgid "subscription has no replication slot set" +msgstr "prenumeration har ingen replikeringsslot angiven" + +#: replication/logical/worker.c:4591 +#, c-format msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" msgstr "logiska replikeringens ändringsapplicerare för prenumeration %u kommer inte att startas då prenumerationen togs bort i uppstarten" -#: replication/logical/worker.c:4493 +#: replication/logical/worker.c:4607 #, c-format msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "logiska replikeringens ändringsapplicerare för prenumeration \"%s\" kommer inte att startas då prenumerationen stängdes av i uppstarten" -#: replication/logical/worker.c:4510 +#: replication/logical/worker.c:4631 #, 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:4515 +#: replication/logical/worker.c:4636 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "logiska replikeringens ändringsapplicerare för prenumeration \"%s\" har startat" -#: replication/logical/worker.c:4590 -#, c-format -msgid "subscription has no replication slot set" -msgstr "prenumeration har ingen replikeringsslot angiven" - -#: replication/logical/worker.c:4757 +#: replication/logical/worker.c:4758 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "prenumeration \"%s\" har avaktiverats på grund av ett fel" -#: replication/logical/worker.c:4805 +#: replication/logical/worker.c:4806 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "logisk replikering börjar hoppa över transaktion vid LSN %X/%X" -#: replication/logical/worker.c:4819 +#: replication/logical/worker.c:4820 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "logisk replikering har slutfört överhoppande av transaktionen vid LSN %X/%X" -#: replication/logical/worker.c:4901 +#: replication/logical/worker.c:4902 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "överhoppnings-LSN för logiska prenumerationen \"%s\" har nollställts" -#: replication/logical/worker.c:4902 +#: replication/logical/worker.c:4903 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." msgstr "Fjärrtransaktionens slut-WAL-position (LSN) %X/%X matchade inte överhoppnings-LSN %X/%X." -#: replication/logical/worker.c:4928 +#: replication/logical/worker.c:4940 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" msgstr "processar fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\"" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:4944 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" msgstr "processar fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" i transaktion %u" -#: replication/logical/worker.c:4937 +#: replication/logical/worker.c:4949 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" i transaktion %u blev klar vid %X/%X" -#: replication/logical/worker.c:4948 +#: replication/logical/worker.c:4960 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" för replikeringsmålrelation \"%s.%s\" i transaktion %u" -#: replication/logical/worker.c:4955 +#: replication/logical/worker.c:4967 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" för replikeringsmålrelation \"%s.%s\" i transaktion %u blev klart vid %X/%X" -#: replication/logical/worker.c:4966 +#: replication/logical/worker.c:4978 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" för replikeringsmålrelation \"%s.%s\" kolumn \"%s\" i transaktion %u" -#: replication/logical/worker.c:4974 +#: replication/logical/worker.c:4986 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" för replikeringsmålrelation \"%s.%s\" kolumn \"%s\" i transaktion %u blev klart vid %X/%X" -#: replication/pgoutput/pgoutput.c:318 +#: replication/pgoutput/pgoutput.c:322 #, c-format msgid "invalid proto_version" msgstr "ogiltig proto_version" -#: replication/pgoutput/pgoutput.c:323 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version \"%s\" är utanför giltigt intervall" -#: replication/pgoutput/pgoutput.c:340 +#: replication/pgoutput/pgoutput.c:344 #, c-format msgid "invalid publication_names syntax" msgstr "ogiltig publication_names-syntax" -#: replication/pgoutput/pgoutput.c:443 +#: replication/pgoutput/pgoutput.c:414 replication/pgoutput/pgoutput.c:418 +#, c-format +msgid "option \"%s\" missing" +msgstr "flaggan \"%s\" saknas." + +#: replication/pgoutput/pgoutput.c:478 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or lower" msgstr "klienten skickade proto_version=%d men servern stöder bara protokoll %d eller lägre" -#: replication/pgoutput/pgoutput.c:449 +#: replication/pgoutput/pgoutput.c:484 #, c-format msgid "client sent proto_version=%d but server only supports protocol %d or higher" msgstr "klienten skickade proto_version=%d men servern stöder bara protokoll %d eller högre" -#: replication/pgoutput/pgoutput.c:455 -#, c-format -msgid "publication_names parameter missing" -msgstr "saknar parameter publication_names" - -#: replication/pgoutput/pgoutput.c:469 +#: replication/pgoutput/pgoutput.c:499 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "efterfrågade proto_version=%d stöder inte strömning, kräver %d eller högre" -#: replication/pgoutput/pgoutput.c:475 +#: replication/pgoutput/pgoutput.c:505 #, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" msgstr "efterfrågade proto_version=%d stöder inte parallell strömning, kräver %d eller högre" -#: replication/pgoutput/pgoutput.c:480 +#: replication/pgoutput/pgoutput.c:510 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "ströming begärdes men det stöds inte av utdata-plugin:en" -#: replication/pgoutput/pgoutput.c:497 +#: replication/pgoutput/pgoutput.c:524 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "efterfrågade proto_version=%d stöder inte tvåfas-commit, kräver %d eller högre" -#: replication/pgoutput/pgoutput.c:502 +#: replication/pgoutput/pgoutput.c:529 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "tvåfas-commit begärdes men det stöds inte av utdata-plugin:en" -#: replication/slot.c:207 +#: replication/slot.c:260 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "replikeringsslotnamn \"%s\" är för kort" -#: replication/slot.c:216 +#: replication/slot.c:269 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "replikeringsslotnamn \"%s\" är för långt" -#: replication/slot.c:229 +#: replication/slot.c:282 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "replikeringsslotnamn \"%s\" innehåller ogiltiga tecken" -#: replication/slot.c:231 +#: replication/slot.c:284 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Replikeringsslotnamn får bara innehålla små bokstäver, nummer och understreck." -#: replication/slot.c:285 +#: replication/slot.c:333 +#, c-format +msgid "cannot enable failover for a replication slot created on the standby" +msgstr "kan inte aktivera failover för en replikeringsslot som skapats på standby:en" + +#: replication/slot.c:345 replication/slot.c:849 +#, c-format +msgid "cannot enable failover for a temporary replication slot" +msgstr "kan inte aktivera failover för en temporär repllikeringsslot" + +#: replication/slot.c:370 #, c-format msgid "replication slot \"%s\" already exists" msgstr "replikeringsslot \"%s\" finns redan" -#: replication/slot.c:295 +#: replication/slot.c:380 #, c-format msgid "all replication slots are in use" msgstr "alla replikeringsslots används" -#: replication/slot.c:296 +#: replication/slot.c:381 #, c-format -msgid "Free one or increase max_replication_slots." -msgstr "Frigör en eller öka max_replication_slots." +msgid "Free one or increase \"max_replication_slots\"." +msgstr "Frigör en eller öka \"max_replication_slots\"." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:560 replication/slot.c:2450 replication/slotfuncs.c:661 +#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "replikeringsslot \"%s\" existerar inte" -#: replication/slot.c:520 replication/slot.c:1110 +#: replication/slot.c:606 replication/slot.c:1337 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "replikeringsslot \"%s\" är aktiv för PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:638 +#, c-format +msgid "acquired logical replication slot \"%s\"" +msgstr "tog logisk replikeringsslot \"%s\"" + +#: replication/slot.c:640 +#, c-format +msgid "acquired physical replication slot \"%s\"" +msgstr "tog fysisk replikeringsslot \"%s\"" + +#: replication/slot.c:729 +#, c-format +msgid "released logical replication slot \"%s\"" +msgstr "släppte logisk replikeringsslot \"%s\"" + +#: replication/slot.c:731 +#, c-format +msgid "released physical replication slot \"%s\"" +msgstr "släppte fysisk replikeringsslot \"%s\"" + +#: replication/slot.c:797 +#, c-format +msgid "cannot drop replication slot \"%s\"" +msgstr "kan inte slänga replikeringsslot \"%s\"" + +#: replication/slot.c:816 +#, c-format +msgid "cannot use %s with a physical replication slot" +msgstr "kan inte använda %s med en fysisk replikeringsslot" + +#: replication/slot.c:828 +#, c-format +msgid "cannot alter replication slot \"%s\"" +msgstr "kan inte ändra replikeringsslot \"%s\"" + +#: replication/slot.c:838 +#, c-format +msgid "cannot enable failover for a replication slot on the standby" +msgstr "kan inte aktivera failover för en replikeringsslot på standby:en" + +#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 #, c-format msgid "could not remove directory \"%s\"" msgstr "kunde inte ta bort katalog \"%s\"" -#: replication/slot.c:1145 +#: replication/slot.c:1372 #, c-format -msgid "replication slots can only be used if max_replication_slots > 0" -msgstr "replikeringsslots kan bara användas om max_replication_slots > 0" +msgid "replication slots can only be used if \"max_replication_slots\" > 0" +msgstr "replikeringsslots kan bara användas om \"max_replication_slots\" > 0" -#: replication/slot.c:1150 +#: replication/slot.c:1377 #, c-format -msgid "replication slots can only be used if wal_level >= replica" -msgstr "replikeringsslots kan bara användas om wal_level >= replica" +msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" +msgstr "replikeringsslots kan bara användas om \"wal_level\" >= \"replica\"" -#: replication/slot.c:1162 +#: replication/slot.c:1389 #, c-format msgid "permission denied to use replication slots" msgstr "rättighet saknas för att använda replikeringsslottar" -#: replication/slot.c:1163 +#: replication/slot.c:1390 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "Bara roller med attributet %s får använda replikeringsslottar." -#: replication/slot.c:1271 +#: replication/slot.c:1498 #, c-format msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." msgstr[0] "Slottens restart_lsn %X/%X överskrider gränsen på %llu byte." msgstr[1] "Slottens restart_lsn %X/%X överskrider gränsen på %llu bytes." -#: replication/slot.c:1279 +#: replication/slot.c:1506 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "Slotten är i konflikt med xid-horisont %u." -#: replication/slot.c:1284 -msgid "Logical decoding on standby requires wal_level >= logical on the primary server." -msgstr "logisk avkodning på standby kräver wal_level >= logical på primären" +#: replication/slot.c:1511 +msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server." +msgstr "logisk avkodning på standby kräver \"wal_level\" >= \"logical\" på primären" -#: replication/slot.c:1292 +#: replication/slot.c:1519 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "avslutar process %d för att frigöra replikeringsslot \"%s\"" -#: replication/slot.c:1294 +#: replication/slot.c:1521 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "invaliderar obsolet replikeringssslot \"%s\"" -#: replication/slot.c:1966 +#: replication/slot.c:2249 #, 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:1973 +#: replication/slot.c:2256 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "replikeringsslotfil \"%s\" har en icke stödd version %u" -#: replication/slot.c:1980 +#: replication/slot.c:2263 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "replikeringsslotfil \"%s\" har felaktig längd %u" -#: replication/slot.c:2016 +#: replication/slot.c:2299 #, 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:2050 +#: replication/slot.c:2333 #, c-format -msgid "logical replication slot \"%s\" exists, but wal_level < logical" -msgstr "logisk replikeringsslot \"%s\" finns men wal_level < replica" +msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" +msgstr "logisk replikeringsslot \"%s\" finns men \"wal_level\" < \"replica\"" -#: replication/slot.c:2052 +#: replication/slot.c:2335 #, c-format -msgid "Change wal_level to be logical or higher." -msgstr "Ändra wal_level till logical eller högre." +msgid "Change \"wal_level\" to be \"logical\" or higher." +msgstr "Ändra \"wal_level\" till \"logical\" eller högre." -#: replication/slot.c:2056 +#: replication/slot.c:2339 #, c-format -msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "fysisk replikeringsslot \"%s\" finns men wal_level < replica" +msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" +msgstr "fysisk replikeringsslot \"%s\" finns men \"wal_level\" < \"replica\"" -#: replication/slot.c:2058 +#: replication/slot.c:2341 #, c-format -msgid "Change wal_level to be replica or higher." -msgstr "Ändra wal_level till replica eller högre." +msgid "Change \"wal_level\" to be \"replica\" or higher." +msgstr "Ändra \"wal_level\" till \"replica\" eller högre." -#: replication/slot.c:2092 +#: replication/slot.c:2383 #, c-format msgid "too many replication slots active before shutdown" msgstr "för många aktiva replikeringsslottar innan nerstängning" -#: replication/slotfuncs.c:601 +#: replication/slot.c:2458 +#, c-format +msgid "\"%s\" is not a physical replication slot" +msgstr "\"%s\" är inte en fysisk replikeringsslot" + +#: replication/slot.c:2635 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "replikeringsslot \"%s\" som angivits i parametern \"%s\" existerar inte" + +#: replication/slot.c:2637 replication/slot.c:2671 replication/slot.c:2686 +#, c-format +msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"." +msgstr "Logisk replikering väntar på standby associerad med replikeringsslot \"%s\"." + +#: replication/slot.c:2639 +#, c-format +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "Skapa replikeringsslotten \"%s\" eller ändra parametern \"%s\"" + +#: replication/slot.c:2649 +#, c-format +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "kan inte ange logisk replikeringsslot \"%s\" i parametern \"%s\"" + +#: replication/slot.c:2651 +#, c-format +msgid "Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "Logiska replikering väntar på rättning av replikeringsslot \"%s\"" + +#: replication/slot.c:2653 +#, c-format +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "Ta bort logisk replikeringsslot \"%s\" från parametern \"%s\"" + +#: replication/slot.c:2669 +#, c-format +msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated" +msgstr "fysisk replikeringsslot \"%s\" angiven i parametern \"%s\" har invaliderats" + +#: replication/slot.c:2673 +#, c-format +msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "Släng och återskapa replikeringsslotten \"%s\" eller ändra parametern %s." + +#: replication/slot.c:2684 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid" +msgstr "replikeringsslot \"%s\" angiven i parametern \"%s\" har inte active_pid" + +#: replication/slot.c:2688 +#, c-format +msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "Starta standby associerad med replikeringsslot \"%s\" eller ändra parametern \"%s\"." + +#: replication/slotfuncs.c:526 #, c-format msgid "invalid target WAL LSN" msgstr "ogiltig mål-LSN för WAL" -#: replication/slotfuncs.c:623 +#: replication/slotfuncs.c:548 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "replikeringsslot \"%s\" kan inte avanceras" -#: replication/slotfuncs.c:625 +#: replication/slotfuncs.c:550 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." msgstr "Denna slot har aldrig tidigare reserverat WAL eller så har den invaliderats." -#: replication/slotfuncs.c:641 +#: replication/slotfuncs.c:566 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "kan inte flytta fram replikeringsslot till %X/%X, minimum är %X/%X" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:673 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "kan inte kopiera fysisk replikeringsslot \"%s\" som en logisk replikeringsslot" -#: replication/slotfuncs.c:750 +#: replication/slotfuncs.c:675 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "kan inte kopiera logisk replikeringsslot \"%s\" som en fysisk replikeringsslot" -#: replication/slotfuncs.c:757 +#: replication/slotfuncs.c:682 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "kan inte kopiera en replikeringsslot som inte tidigare har reserverat WAL" -#: replication/slotfuncs.c:834 +#: replication/slotfuncs.c:768 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "kunde inte kopiera replikeringsslot \"%s\"" -#: replication/slotfuncs.c:836 +#: replication/slotfuncs.c:770 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "Källreplikeringsslotten ändrades på ett inkompatibelt sätt under copy-operationen." -#: replication/slotfuncs.c:842 +#: replication/slotfuncs.c:776 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "kan inte kopiera ej slutförd replikeringsslot \"%s\"" -#: replication/slotfuncs.c:844 +#: replication/slotfuncs.c:778 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "Försök igen när källreplikeringsslottens confirmed_flush_lsn är giltig." -#: replication/syncrep.c:262 +#: replication/slotfuncs.c:877 +#, c-format +msgid "replication slots can only be synchronized to a standby server" +msgstr "replikerings-slot kan bara synkroniseras till en standby-server" + +#: replication/syncrep.c:261 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "avbryter väntan på synkron replikering samt avslutar anslutning på grund av ett administratörskommando" -#: replication/syncrep.c:263 replication/syncrep.c:280 +#: replication/syncrep.c:262 replication/syncrep.c:279 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "Transaktionen har redan commit:ats lokalt men har kanske inte replikerats till standby:en." -#: replication/syncrep.c:279 +#: replication/syncrep.c:278 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "avbryter väntan på synkron replikering efter användarens önskemål" -#: replication/syncrep.c:486 +#: replication/syncrep.c:485 #, c-format -msgid "standby \"%s\" is now a synchronous standby with priority %u" -msgstr "standby \"%s\" är nu en synkron standby med prioritet %u" +msgid "standby \"%s\" is now a synchronous standby with priority %d" +msgstr "standby \"%s\" är nu en synkron standby med prioritet %d" -#: replication/syncrep.c:490 +#: replication/syncrep.c:489 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "standby \"%s\" är nu en kvorumkandidat för synkron standby" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1013 #, c-format -msgid "synchronous_standby_names parser failed" -msgstr "synchronous_standby_names-parser misslyckades" +msgid "\"synchronous_standby_names\" parser failed" +msgstr "\"synchronous_standby_names\"-parser misslyckades" -#: replication/syncrep.c:1025 +#: replication/syncrep.c:1019 #, c-format 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:180 +#: replication/walreceiver.c:176 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "avslutar wal-mottagarprocessen på grund av ett administratörskommando" -#: replication/walreceiver.c:305 -#, c-format -msgid "could not connect to the primary server: %s" -msgstr "kunde inte ansluta till primärserver: %s" - -#: replication/walreceiver.c:352 +#: replication/walreceiver.c:354 #, 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:353 +#: replication/walreceiver.c:355 #, 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:364 +#: replication/walreceiver.c:366 #, 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:417 +#: replication/walreceiver.c:419 #, 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:421 +#: replication/walreceiver.c:423 #, 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:457 +#: replication/walreceiver.c:458 #, 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:501 +#: replication/walreceiver.c:502 #, c-format msgid "replication terminated by primary server" msgstr "replikering avslutad av primär server" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:503 #, 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:592 +#: replication/walreceiver.c:593 #, c-format msgid "terminating walreceiver due to timeout" msgstr "avslutar wal-mottagare på grund av timeout" -#: replication/walreceiver.c:624 +#: replication/walreceiver.c:625 #, 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:640 replication/walreceiver.c:1066 +#: replication/walreceiver.c:641 replication/walreceiver.c:1071 #, c-format msgid "could not close WAL segment %s: %m" msgstr "kunde inte stänga WAL-segment %s: %m" -#: replication/walreceiver.c:759 +#: replication/walreceiver.c:760 #, 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:954 +#: replication/walreceiver.c:959 #, c-format -msgid "could not write to WAL segment %s at offset %u, length %lu: %m" -msgstr "kunde inte skriva till WAL-segment %s på offset %u, längd %lu: %m" +msgid "could not write to WAL segment %s at offset %d, length %lu: %m" +msgstr "kunde inte skriva till WAL-segment %s på offset %d, längd %lu: %m" -#: replication/walsender.c:519 +#: replication/walsender.c:531 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "kan inte använda %s med logisk replikeringsslot" -#: replication/walsender.c:623 storage/smgr/md.c:1529 +#: replication/walsender.c:635 storage/smgr/md.c:1735 #, 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:627 +#: replication/walsender.c:639 #, 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:704 +#: replication/walsender.c:853 #, 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:770 +#: replication/walsender.c:919 #, 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:773 +#: replication/walsender.c:922 #, 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:817 +#: replication/walsender.c:966 #, 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" -#: replication/walsender.c:1010 +#: replication/walsender.c:1160 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "okänt värde för CREATE_REPLICATION_SLOT-flagga \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1095 +#: replication/walsender.c:1266 #, 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:1105 +#: replication/walsender.c:1276 #, 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:1111 +#: replication/walsender.c:1282 #, 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:1116 +#: replication/walsender.c:1287 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%s måste anropas i en read-only-transaktion" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1293 #, 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:1128 +#: replication/walsender.c:1299 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s får inte anropas i en undertransaktion" -#: replication/walsender.c:1275 +#: replication/walsender.c:1472 #, c-format msgid "terminating walsender process after promotion" -msgstr "stänger ner walsender-process efter befordring" +msgstr "stänger ner walsender-process efter befordran" -#: replication/walsender.c:1696 +#: replication/walsender.c:2000 #, 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:1731 +#: replication/walsender.c:2035 #, 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:1764 +#: replication/walsender.c:2068 #, c-format msgid "received replication command: %s" msgstr "tog emot replikeringskommando: %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142 +#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234 +#: tcop/postgres.c:2672 tcop/postgres.c:2749 #, 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:1914 replication/walsender.c:1949 +#: replication/walsender.c:2233 replication/walsender.c:2268 #, c-format msgid "unexpected EOF on standby connection" msgstr "oväntat EOF från standby-anslutning" -#: replication/walsender.c:1937 +#: replication/walsender.c:2256 #, c-format msgid "invalid standby message type \"%c\"" msgstr "ogiltigt standby-meddelandetyp \"%c\"" -#: replication/walsender.c:2026 +#: replication/walsender.c:2345 #, c-format msgid "unexpected message type \"%c\"" msgstr "oväntad meddelandetyp \"%c\"" -#: replication/walsender.c:2439 +#: replication/walsender.c:2759 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "avslutar walsender-process på grund av replikerings-timeout" -#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 +#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "regel \"%s\" för relation \"%s\" existerar redan" -#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 +#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773 #, c-format msgid "relation \"%s\" cannot have rules" msgstr "relationen \"%s\" kan inte ha regler" -#: rewrite/rewriteDefine.c:299 +#: rewrite/rewriteDefine.c:292 #, c-format msgid "rule actions on OLD are not implemented" msgstr "regelhandlingar på OLD är inte implementerat" -#: rewrite/rewriteDefine.c:300 +#: rewrite/rewriteDefine.c:293 #, c-format msgid "Use views or triggers instead." msgstr "Använd vyer eller triggrar istället." -#: rewrite/rewriteDefine.c:304 +#: rewrite/rewriteDefine.c:297 #, c-format msgid "rule actions on NEW are not implemented" msgstr "regelhandlingar på NEW är inte implementerat" -#: rewrite/rewriteDefine.c:305 +#: rewrite/rewriteDefine.c:298 #, c-format msgid "Use triggers instead." msgstr "Använd triggrar istället." -#: rewrite/rewriteDefine.c:319 +#: rewrite/rewriteDefine.c:312 #, c-format msgid "relation \"%s\" cannot have ON SELECT rules" msgstr "relationen \"%s\" kan inte ha ON SELECT-regler" -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "INSTEAD NOTHING-regler på SELECT är inte implementerat ännu" -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:323 #, c-format msgid "Use views instead." msgstr "Använd vyer istället." -#: rewrite/rewriteDefine.c:338 +#: rewrite/rewriteDefine.c:331 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "flera regelhandlingar på SELECT är inte implementerat" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:341 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "regler på SELECT måste ha handlingen INSTEAD SELECT" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:349 #, 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:364 +#: rewrite/rewriteDefine.c:357 #, 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:391 +#: rewrite/rewriteDefine.c:384 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" är redan en vy" -#: rewrite/rewriteDefine.c:415 +#: rewrite/rewriteDefine.c:408 #, 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:442 +#: rewrite/rewriteDefine.c:435 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "kan inte ha flera RETURNING-listor i en regel" -#: rewrite/rewriteDefine.c:447 +#: rewrite/rewriteDefine.c:440 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "RETURNING-listor stöds inte i villkorade regler" -#: rewrite/rewriteDefine.c:451 +#: rewrite/rewriteDefine.c:444 #, 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:465 +#: rewrite/rewriteDefine.c:458 #, c-format msgid "non-view rule for \"%s\" must not be named \"%s\"" msgstr "regel (rule) för icke-vy \"%s\" får inte ha namnet \"%s\"" -#: rewrite/rewriteDefine.c:539 +#: rewrite/rewriteDefine.c:532 #, 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:540 +#: rewrite/rewriteDefine.c:533 #, c-format msgid "RETURNING list has too many entries" msgstr "RETURNING-lista har för många element" -#: rewrite/rewriteDefine.c:567 +#: rewrite/rewriteDefine.c:560 #, 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:568 +#: rewrite/rewriteDefine.c:561 #, 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:574 +#: rewrite/rewriteDefine.c:567 #, 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:576 +#: rewrite/rewriteDefine.c:569 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "SELECT-målpost har namn \"%s\"." -#: rewrite/rewriteDefine.c:585 +#: rewrite/rewriteDefine.c:578 #, 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:587 +#: rewrite/rewriteDefine.c:580 #, 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:590 rewrite/rewriteDefine.c:614 +#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607 #, 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:593 rewrite/rewriteDefine.c:618 +#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611 #, 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:609 +#: rewrite/rewriteDefine.c:602 #, 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:611 +#: rewrite/rewriteDefine.c:604 #, 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:628 +#: rewrite/rewriteDefine.c:621 #, 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:629 +#: rewrite/rewriteDefine.c:622 #, c-format msgid "RETURNING list has too few entries" msgstr "RETURNING-lista har för få element" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826 +#: rewrite/rewriteSupport.c:108 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "regel \"%s\" för relation \"%s\" existerar inte" -#: rewrite/rewriteDefine.c:852 +#: rewrite/rewriteDefine.c:845 #, 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:583 +#: rewrite/rewriteHandler.c:588 #, 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:610 +#: rewrite/rewriteHandler.c:615 #, 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:663 +#: rewrite/rewriteHandler.c:668 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "kan inte ha RETURNING-listor i multipla regler" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:939 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "kan inte sätta in ett icke-DEFAULT-värde i kolumn \"%s\"" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:902 rewrite/rewriteHandler.c:968 #, 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:899 +#: rewrite/rewriteHandler.c:904 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Använd OVERRIDING SYSTEM VALUE för att överskugga." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:966 rewrite/rewriteHandler.c:974 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "kolumn \"%s\" kan bara uppdateras till DEFAULT" -#: rewrite/rewriteHandler.c:1116 rewrite/rewriteHandler.c:1134 +#: rewrite/rewriteHandler.c:1109 rewrite/rewriteHandler.c:1127 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "flera tilldelningar till samma kolumn \"%s\"" -#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4040 +#: rewrite/rewriteHandler.c:1682 +#, c-format +msgid "MERGE is not supported for relations with rules." +msgstr "MERGE stöds inte för relationer med regler." + +#: rewrite/rewriteHandler.c:1722 rewrite/rewriteHandler.c:3262 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "access till icke-system vy \"%s\" är begränsad" + +#: rewrite/rewriteHandler.c:2122 rewrite/rewriteHandler.c:4254 #, 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:2204 +#: rewrite/rewriteHandler.c:2227 #, 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:2524 +#: rewrite/rewriteHandler.c:2589 msgid "Junk view columns are not updatable." msgstr "Skräpkolumner i vy är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2529 +#: rewrite/rewriteHandler.c:2594 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:2532 +#: rewrite/rewriteHandler.c:2597 msgid "View columns that refer to system columns are not updatable." msgstr "Vykolumner som refererar till systemkolumner är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2535 +#: rewrite/rewriteHandler.c:2600 msgid "View columns that return whole-row references are not updatable." msgstr "Vykolumner som returnerar hel-rad-referenser är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2596 +#: rewrite/rewriteHandler.c:2661 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Vyer som innehåller DISTINCT är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2664 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Vyer som innehåller GROUP BY är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2667 msgid "Views containing HAVING are not automatically updatable." msgstr "Vyer som innehåller HAVING är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2670 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:2608 +#: rewrite/rewriteHandler.c:2673 msgid "Views containing WITH are not automatically updatable." msgstr "Vyer som innehåller WITH är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2611 +#: rewrite/rewriteHandler.c:2676 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:2623 +#: rewrite/rewriteHandler.c:2688 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Vyer som returnerar aggregatfunktioner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2626 +#: rewrite/rewriteHandler.c:2691 msgid "Views that return window functions are not automatically updatable." msgstr "Vyer som returnerar fönsterfunktioner uppdateras inte automatiskt." -#: rewrite/rewriteHandler.c:2629 +#: rewrite/rewriteHandler.c:2694 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:2636 rewrite/rewriteHandler.c:2640 -#: rewrite/rewriteHandler.c:2648 +#: rewrite/rewriteHandler.c:2701 rewrite/rewriteHandler.c:2705 +#: rewrite/rewriteHandler.c:2713 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:2651 +#: rewrite/rewriteHandler.c:2716 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Vyer som innehåller TABLESAMPLE är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2740 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:3155 +#: rewrite/rewriteHandler.c:3121 rewrite/rewriteHandler.c:3156 #, c-format -msgid "cannot insert into column \"%s\" of view \"%s\"" -msgstr "kan inte insert:a i kolumn \"%s\" i vy \"%s\"" +msgid "cannot insert into view \"%s\"" +msgstr "kan inte sätta in i vy \"%s\"" -#: rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:3124 #, c-format -msgid "cannot update column \"%s\" of view \"%s\"" -msgstr "kan inte uppdatera kolumn \"%s\" i view \"%s\"" +msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." +msgstr "För att tillåta insättning i en vy så skapa en INSTEAD OF INSERT-trigger eller en villkorslös ON INSERT DO INSTEAD-regel." -#: rewrite/rewriteHandler.c:3667 +#: rewrite/rewriteHandler.c:3129 rewrite/rewriteHandler.c:3165 #, 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" +msgid "cannot update view \"%s\"" +msgstr "kan inte uppdatera vy \"%s\"" -#: rewrite/rewriteHandler.c:3678 +#: rewrite/rewriteHandler.c:3132 #, 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" +msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." +msgstr "För att tillåta uppdatering av en vy så skapa en INSTEAD OF UPDATE-trigger eller en villkorslös ON UPDATE DO INSTEAD-regel." -#: rewrite/rewriteHandler.c:3692 +#: rewrite/rewriteHandler.c:3137 rewrite/rewriteHandler.c:3174 #, 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" +msgid "cannot delete from view \"%s\"" +msgstr "kan inte radera från vy \"%s\"" -#: rewrite/rewriteHandler.c:3696 +#: rewrite/rewriteHandler.c:3140 #, 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" +msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." +msgstr "För att tillåta bortagning i en vy så skapa en INSTEAD OF DELETE-trigger eller en villkorslös ON DELETE DO INSTEAD-regel." -#: rewrite/rewriteHandler.c:3701 +#: rewrite/rewriteHandler.c:3159 +#, c-format +msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger." +msgstr "För att tillåta insert till en vy med MERGE så krävs en INSTEAD OF INSERT-trigger." + +#: rewrite/rewriteHandler.c:3168 +#, c-format +msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger." +msgstr "För att tillåta uppdatering av en vy så krävs en INSTEAD OF UPDATE-trigger." + +#: rewrite/rewriteHandler.c:3177 +#, c-format +msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger." +msgstr "För att tillåta borttagning från en vy så krävs en INSTEAD OF DELETE-trigger." + +#: rewrite/rewriteHandler.c:3352 +#, 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:3360 +#, c-format +msgid "cannot update column \"%s\" of view \"%s\"" +msgstr "kan inte uppdatera kolumn \"%s\" i view \"%s\"" + +#: rewrite/rewriteHandler.c:3368 +#, c-format +msgid "cannot merge into column \"%s\" of view \"%s\"" +msgstr "kan inte merge:a till kolumn \"%s\" i vy \"%s\"" + +#: rewrite/rewriteHandler.c:3396 +#, c-format +msgid "cannot merge into view \"%s\"" +msgstr "kan inte merge:a till vy \"%s\"" + +#: rewrite/rewriteHandler.c:3398 +#, c-format +msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all." +msgstr "MERGE stöds inte för vyer med INSTEAD OF-trigger för vissa actions men inte för andra." + +#: rewrite/rewriteHandler.c:3399 +#, c-format +msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers." +msgstr "För att tillåta merge till en vy så antingen skapa en full uppsättning INSTEAD OF-triggers eller släng de befintliga INSERT OF-triggers." + +#: rewrite/rewriteHandler.c:3912 +#, 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:3923 +#, 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:3937 +#, 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:3941 +#, 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:3946 #, 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:3968 rewrite/rewriteHandler.c:3976 -#: rewrite/rewriteHandler.c:3984 -#, c-format +#: rewrite/rewriteHandler.c:4206 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:4089 +#: rewrite/rewriteHandler.c:4303 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "kan inte utföra INSERT RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4091 +#: rewrite/rewriteHandler.c:4305 #, 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:4096 +#: rewrite/rewriteHandler.c:4310 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "kan inte utföra UPDATE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4098 +#: rewrite/rewriteHandler.c:4312 #, 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:4103 +#: rewrite/rewriteHandler.c:4317 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "kan inte utföra DELETE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4105 +#: rewrite/rewriteHandler.c:4319 #, 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:4123 +#: rewrite/rewriteHandler.c:4337 #, 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:4180 +#: rewrite/rewriteHandler.c:4394 #, 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" -#: rewrite/rewriteManip.c:1075 +#: rewrite/rewriteManip.c:1084 #, c-format msgid "conditional utility statements are not implemented" msgstr "villkorliga hjälpsatser är inte implementerat" -#: rewrite/rewriteManip.c:1419 +#: rewrite/rewriteManip.c:1431 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "WHERE CURRENT OF för en vy är inte implementerat" -#: rewrite/rewriteManip.c:1754 +#: rewrite/rewriteManip.c:1767 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "NEW-variabler i ON UPDATE-regler kan inte referera till kolumner som är del av en multiple uppdatering i subjektets UPDATE-kommando" @@ -21677,117 +22475,117 @@ msgstr "NEW-variabler i ON UPDATE-regler kan inte referera till kolumner som är msgid "with a SEARCH or CYCLE clause, the recursive reference to WITH query \"%s\" must be at the top level of its right-hand SELECT" msgstr "med en SEARCH- eller CYCLE-klausul så måste rekursiva referensen till WITH-fråga \"%s\" vara på toppnivå eller i dess högra SELECT" -#: scan.l:482 +#: scan.l:497 msgid "unterminated /* comment" msgstr "ej avslutad /*-kommentar" -#: scan.l:502 +#: scan.l:517 msgid "unterminated bit string literal" msgstr "ej avslutad bitsträngslitteral" -#: scan.l:516 +#: scan.l:531 msgid "unterminated hexadecimal string literal" msgstr "ej avslutad hexadecimal stränglitteral" -#: scan.l:566 +#: scan.l:581 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "osäker användning av strängkonstand med Unicode-escape:r" -#: scan.l:567 +#: scan.l:582 #, c-format -msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off." -msgstr "Strängkonstanter som innehåller Unicode-escapesekvenser kan inte användas när standard_conforming_strings är av." +msgid "String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off." +msgstr "Strängkonstanter som innehåller Unicode-escapesekvenser kan inte användas när \"standard_conforming_strings\" är av." -#: scan.l:628 +#: scan.l:643 msgid "unhandled previous state in xqs" msgstr "tidigare state i xqs som ej kan hanteras" -#: scan.l:702 +#: scan.l:717 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "Unicode-escapesekvenser måste vara \\uXXXX eller \\UXXXXXXXX." -#: scan.l:713 +#: scan.l:728 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "osäker användning av \\' i stränglitteral" -#: scan.l:714 +#: scan.l:729 #, c-format msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings." msgstr "Använd '' för att inkludera ett enkelcitattecken i en sträng. \\' är inte säkert i klient-teckenkodning." -#: scan.l:786 +#: scan.l:801 msgid "unterminated dollar-quoted string" msgstr "icke terminerad dollarciterad sträng" -#: scan.l:803 scan.l:813 +#: scan.l:818 scan.l:828 msgid "zero-length delimited identifier" msgstr "noll-längds avdelad identifierare" -#: scan.l:824 syncrep_scanner.l:101 +#: scan.l:839 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "icke terminerad citerad identifierare" -#: scan.l:987 +#: scan.l:1002 msgid "operator too long" msgstr "operatorn är för lång" -#: scan.l:1000 +#: scan.l:1015 msgid "trailing junk after parameter" msgstr "skräptecken kommer efter parameter" -#: scan.l:1021 +#: scan.l:1036 msgid "invalid hexadecimal integer" msgstr "ogiltigt hexdecimalt heltal" -#: scan.l:1025 +#: scan.l:1040 msgid "invalid octal integer" msgstr "ogiltigt oktalt heltal" -#: scan.l:1029 +#: scan.l:1044 msgid "invalid binary integer" msgstr "ogiltigt binärt heltal" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1236 +#: scan.l:1239 #, c-format msgid "%s at end of input" msgstr "%s vid slutet av indatan" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1244 +#: scan.l:1247 #, c-format msgid "%s at or near \"%s\"" msgstr "%s vid eller nära \"%s\"" -#: scan.l:1434 +#: scan.l:1439 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "ickestandard användning av \\' i stränglitteral" -#: scan.l:1435 +#: scan.l:1440 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "Använd '' för att skriva citattecken i strängar eller använd escape-strängsyntac (E'...')." -#: scan.l:1444 +#: scan.l:1449 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "ickestandard användning av \\\\ i strängslitteral" -#: scan.l:1445 +#: scan.l:1450 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "Använd escape-strängsyntax för bakstreck, dvs. E'\\\\'." -#: scan.l:1459 +#: scan.l:1464 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "ickestandard användning av escape i stränglitteral" -#: scan.l:1460 +#: scan.l:1465 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Använd escape-strängsyntax, dvs E'\\r\\n'." @@ -21818,72 +22616,67 @@ msgstr "okänd Snowball-parameter: \"%s\"" msgid "missing Language parameter" msgstr "saknar parameter \"Language\"" -#: statistics/extended_stats.c:179 +#: statistics/extended_stats.c:176 #, 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\"" -#: statistics/mcv.c:1372 +#: statistics/mcv.c:1368 #, 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." -#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 +#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 #, 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:1137 +#: storage/buffer/bufmgr.c:1532 #, 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:1931 storage/buffer/localbuf.c:359 +#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 #, 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:1998 +#: storage/buffer/bufmgr.c:2348 #, 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:2000 +#: storage/buffer/bufmgr.c:2350 #, 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:5219 +#: storage/buffer/bufmgr.c:5653 #, c-format msgid "could not write block %u of %s" msgstr "kunde inte skriva block %u av %s" -#: storage/buffer/bufmgr.c:5221 +#: storage/buffer/bufmgr.c:5655 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Multipla fel --- skrivfelet kan vara permanent." -#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 +#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 #, c-format msgid "writing block %u of relation %s" msgstr "skriver block %u i relation %s" -#: storage/buffer/bufmgr.c:5593 -#, c-format -msgid "snapshot too old" -msgstr "snapshot för gammal" - -#: storage/buffer/localbuf.c:219 +#: storage/buffer/localbuf.c:220 #, c-format msgid "no empty local buffer available" msgstr "ingen tom lokal buffer tillgänglig" -#: storage/buffer/localbuf.c:592 +#: storage/buffer/localbuf.c:597 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "kan inte komma åt temporära tabeller under en parallell operation" -#: storage/buffer/localbuf.c:699 +#: storage/buffer/localbuf.c:712 #, 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." @@ -21903,152 +22696,157 @@ msgstr "kunde inte läsa från filmängd \"%s\": läste bara %zu av %zu byte" msgid "could not read from temporary file: read only %zu of %zu bytes" msgstr "kunde inte läsa från temporärfil: läste bara %zu av %zu byte" -#: storage/file/buffile.c:774 storage/file/buffile.c:895 +#: storage/file/buffile.c:774 storage/file/buffile.c:877 #, c-format msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "kunde inte bestämma storlek på temporär fil \"%s\" från BufFile \"%s\": %m" -#: storage/file/buffile.c:974 +#: storage/file/buffile.c:956 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "kunde inte radera filmängd \"%s\": %m" -#: storage/file/buffile.c:992 storage/smgr/md.c:338 storage/smgr/md.c:1041 +#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1194 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "kunde inte trunkera fil \"%s\": %m" -#: storage/file/fd.c:537 storage/file/fd.c:609 storage/file/fd.c:645 +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" msgstr "kunde inte flush:a smutsig data: %m" -#: storage/file/fd.c:567 +#: storage/file/fd.c:613 #, c-format msgid "could not determine dirty data size: %m" msgstr "kunde inte lista ut storlek på smutsig data: %m" -#: storage/file/fd.c:619 +#: storage/file/fd.c:665 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "kunde inte göra munmap() vid flush:ning av data: %m" -#: storage/file/fd.c:937 +#: storage/file/fd.c:983 #, c-format msgid "getrlimit failed: %m" msgstr "getrlimit misslyckades: %m" -#: storage/file/fd.c:1027 +#: storage/file/fd.c:1073 #, 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:1028 +#: storage/file/fd.c:1074 #, c-format msgid "System allows %d, server needs at least %d." msgstr "Systemet tillåter %d, servern behöver minst %d." -#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 -#: storage/file/fd.c:2825 +#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 +#: storage/file/fd.c:2878 #, 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:1490 +#: storage/file/fd.c:1536 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "temporär fil: sökväg \"%s\", storlek %lu" -#: storage/file/fd.c:1629 +#: storage/file/fd.c:1675 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "kunde inte skapa temporär katalog \"%s\": %m" -#: storage/file/fd.c:1636 +#: storage/file/fd.c:1682 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "kunde inte skapa temporär underkatalog \"%s\": %m" -#: storage/file/fd.c:1833 +#: storage/file/fd.c:1879 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "kan inte skapa temporär fil \"%s\": %m" -#: storage/file/fd.c:1869 +#: storage/file/fd.c:1915 #, 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:1910 +#: storage/file/fd.c:1956 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "kunde inte unlink:a temporär fil \"%s\": %m" -#: storage/file/fd.c:1998 +#: storage/file/fd.c:2044 #, c-format msgid "could not delete file \"%s\": %m" msgstr "kunde inte radera fil \"%s\": %m" -#: storage/file/fd.c:2185 +#: storage/file/fd.c:2234 #, 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:2541 storage/file/fd.c:2600 +#: storage/file/fd.c:2594 storage/file/fd.c:2653 #, 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:2645 +#: storage/file/fd.c:2698 #, 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:2801 +#: storage/file/fd.c:2854 #, 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:3331 +#: storage/file/fd.c:3384 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "oväntad fil hittades i katalogen för temporära filer: \"%s\"" -#: storage/file/fd.c:3449 +#: storage/file/fd.c:3502 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "synkroniserar datakatalog (syncfs), förbrukad tid: %ld.%02d s, aktuell sökväg: %s" -#: storage/file/fd.c:3463 -#, c-format -msgid "could not synchronize file system for file \"%s\": %m" -msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" - -#: storage/file/fd.c:3676 +#: storage/file/fd.c:3729 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "synkroniserar datakatalog (pre-fsync), förbrukad tid: %ld.%02d s, aktuell sökväg: %s" -#: storage/file/fd.c:3708 +#: storage/file/fd.c:3761 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "synkroniserar datakatalog (fsync), förbrukad tid: %ld.%02d s, aktuell sökväg: %s" -#: storage/file/fd.c:3897 +#: storage/file/fd.c:3950 +#, c-format +msgid "\"debug_io_direct\" is not supported on this platform." +msgstr "\"debug_io_direct\" stöds inte på denna plattform." + +#: storage/file/fd.c:3964 +#, c-format +msgid "Invalid list syntax in parameter \"%s\"" +msgstr "Ogiltigt listsyntax för parameter \"%s\"" + +#: storage/file/fd.c:3984 #, c-format -msgid "debug_io_direct is not supported on this platform." -msgstr "debug_io_direct stöds inte på denna plattform." +msgid "Invalid option \"%s\"" +msgstr "Ogiltig flagga \"%s\"" -#: storage/file/fd.c:3944 +#: storage/file/fd.c:3997 #, c-format -msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "debug_io_direct stöds inte för WAL då XLOG_BLCKSZ är för liten" +msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" +msgstr "\"debug_io_direct\" stöds inte för WAL då XLOG_BLCKSZ är för liten" -#: storage/file/fd.c:3951 +#: storage/file/fd.c:4004 #, c-format -msgid "debug_io_direct is not supported for data because BLCKSZ is too small" -msgstr "debug_io_direct stöds inte för data då BLCKSZ är för liten" +msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" +msgstr "\"debug_io_direct\" stöds inte för data då BLCKSZ är för liten" #: storage/file/reinit.c:145 #, c-format @@ -22060,22 +22858,22 @@ msgstr "nollställer ologgade relationer (init), förbrukad tid %ld.%02d s, aktu msgid "resetting unlogged relations (cleanup), elapsed time: %ld.%02d s, current path: %s" msgstr "nollställer ologgade relationer (cleanup), förbrukad tid %ld.%02d s, aktuell sökväg: %s" -#: storage/file/sharedfileset.c:79 +#: storage/file/sharedfileset.c:73 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "kunde inte koppla till en SharedFileSet som redan tagits bort" -#: storage/ipc/dsm.c:352 +#: storage/ipc/dsm.c:379 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "dynamiskt delat minnes kontrollsegment är korrupt" -#: storage/ipc/dsm.c:417 +#: storage/ipc/dsm.c:444 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "dynamiskt delat minnes kontrollsegment är inte giltigt" -#: storage/ipc/dsm.c:599 +#: storage/ipc/dsm.c:626 #, c-format msgid "too many dynamic shared memory segments" msgstr "för många dynamiska delade minnessegment" @@ -22135,73 +22933,99 @@ msgstr "kunde inte stänga delat minnessegment \"%s\": %m" msgid "could not duplicate handle for \"%s\": %m" msgstr "kunde inte duplicera handle för \"%s\": %m" -#: storage/ipc/procarray.c:3796 +#: storage/ipc/dsm_registry.c:142 +#, c-format +msgid "DSM segment name cannot be empty" +msgstr "Namn på DSM-segment får inte vara tomt" + +#: storage/ipc/dsm_registry.c:146 +#, c-format +msgid "DSM segment name too long" +msgstr "Namn på DSM-segment är för långt" + +#: storage/ipc/dsm_registry.c:150 +#, c-format +msgid "DSM segment size must be nonzero" +msgstr "Storlek på DSM-segment får inte vara noll" + +#: storage/ipc/dsm_registry.c:176 +#, c-format +msgid "requested DSM segment size does not match size of existing segment" +msgstr "efterfrågad storlek på DSM-segment matchar inte storleken på nuvarande segment" + +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:357 +#: tcop/backend_startup.c:304 +#, c-format +msgid "sorry, too many clients already" +msgstr "ledsen, för många klienter" + +#: storage/ipc/procarray.c:3857 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "databasen \"%s\" används av förberedda transationer" -#: storage/ipc/procarray.c:3828 storage/ipc/procarray.c:3837 -#: storage/ipc/signalfuncs.c:230 storage/ipc/signalfuncs.c:237 +#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901 +#: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format msgid "permission denied to terminate process" msgstr "rättighet saknas för att avsluta process" -#: storage/ipc/procarray.c:3829 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." msgstr "Bara roller med attributet %s får terminera processer för roller som har attributet %s." -#: storage/ipc/procarray.c:3838 storage/ipc/signalfuncs.c:238 +#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." msgstr "Bara roller med rättigheter från rollen vars process kommer termineras eller med rättigheter från rollen \"%s\" får terminera denna process." -#: storage/ipc/procsignal.c:420 +#: storage/ipc/procsignal.c:416 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "väntare fortfarande på att backend:en med PID %d skall acceptera ProcSignalBarrier" -#: storage/ipc/shm_mq.c:384 +#: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" msgstr "kan inte skicka ett meddelande med storlek %zu via kö i delat minne" -#: storage/ipc/shm_mq.c:719 +#: storage/ipc/shm_mq.c:718 #, c-format msgid "invalid message size %zu in shared memory queue" 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:963 -#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 -#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984 +#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2835 storage/lmgr/lock.c:4220 +#: storage/lmgr/lock.c:4285 storage/lmgr/lock.c:4635 +#: storage/lmgr/predicate.c:2468 storage/lmgr/predicate.c:2483 +#: storage/lmgr/predicate.c:3880 storage/lmgr/predicate.c:4927 +#: utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "slut på delat minne" -#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266 +#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "slut på delat minne (%zu byte efterfrågat)" -#: storage/ipc/shmem.c:445 +#: storage/ipc/shmem.c:436 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "kunde inte skapa ShmemIndex-post för datastrukturen \"%s\"" -#: storage/ipc/shmem.c:460 +#: storage/ipc/shmem.c:451 #, c-format msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu" msgstr "ShmemIndex-poststorlek är fel för datastruktur \"%s\": förväntade %zu var %zu" -#: storage/ipc/shmem.c:479 +#: storage/ipc/shmem.c:470 #, c-format msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)" msgstr "otillräckligt delat minne för datastruktur \"%s\" (efterfrågade %zu byte)" -#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530 +#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 #, c-format msgid "requested shared memory size overflows size_t" msgstr "efterfrågad delat minnesstorlek överskrider size_t" @@ -22211,128 +23035,124 @@ msgstr "efterfrågad delat minnesstorlek överskrider size_t" msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d är inte en PostgreSQL backend-process" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1379 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1453 +#: utils/adt/mcxtfuncs.c:182 #, c-format msgid "could not send signal to process %d: %m" msgstr "kunde inte skicka signal till process %d: %m" -#: storage/ipc/signalfuncs.c:124 storage/ipc/signalfuncs.c:131 +#: storage/ipc/signalfuncs.c:129 storage/ipc/signalfuncs.c:136 #, c-format msgid "permission denied to cancel query" msgstr "rättighet saknas för att avbryta fråga" -#: storage/ipc/signalfuncs.c:125 +#: storage/ipc/signalfuncs.c:130 #, c-format msgid "Only roles with the %s attribute may cancel queries of roles with the %s attribute." msgstr "Bara roller med attributet %s får avbryta frågor åt roller med attributet %s." -#: storage/ipc/signalfuncs.c:132 +#: storage/ipc/signalfuncs.c:137 #, c-format msgid "Only roles with privileges of the role whose query is being canceled or with privileges of the \"%s\" role may cancel this query." msgstr "Bara roller med rättigheter från rollen vars fråga kommer avbrytas eller med rättigheter från rollen \"%s\" får avbryta denna fråga." -#: storage/ipc/signalfuncs.c:174 +#: storage/ipc/signalfuncs.c:179 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "kunde inte kontrollera existensen av en backend med PID %d: %m" -#: storage/ipc/signalfuncs.c:192 +#: storage/ipc/signalfuncs.c:197 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "backend med PID %d terminerade inte inom %lld millisekund" msgstr[1] "backend med PID %d terminerade inte inom %lld millisekunder" -#: storage/ipc/signalfuncs.c:223 +#: storage/ipc/signalfuncs.c:228 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" kan inte vara negativ" -#: storage/ipc/signalfuncs.c:279 -#, c-format -msgid "must be superuser to rotate log files with 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:281 utils/adt/genfile.c:250 -#, c-format -msgid "Consider using %s, which is part of core, instead." -msgstr "Du kanske kan använda %s istället som är en del av core." - -#: storage/ipc/signalfuncs.c:287 storage/ipc/signalfuncs.c:307 +#: storage/ipc/signalfuncs.c:285 #, c-format msgid "rotation not possible because log collection not active" msgstr "rotering är inte möjligt då logginsamling inte är aktiverad" -#: storage/ipc/standby.c:330 +#: storage/ipc/standby.c:329 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "återställning väntar fortfarande efter %ld.%03d ms: %s" -#: storage/ipc/standby.c:339 +#: storage/ipc/standby.c:338 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "återställning slutade vänta efter efter %ld.%03d ms: %s" -#: storage/ipc/standby.c:921 tcop/postgres.c:3384 +#: storage/ipc/standby.c:920 tcop/postgres.c:3196 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "avbryter sats på grund av konflikt med återställning" -#: storage/ipc/standby.c:922 tcop/postgres.c:2533 +#: storage/ipc/standby.c:921 tcop/postgres.c:2557 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "Användartransaktion orsakade deadlock för buffer vid återställning." -#: storage/ipc/standby.c:1488 +#: storage/ipc/standby.c:1486 msgid "unknown reason" msgstr "okänt skäl" -#: storage/ipc/standby.c:1493 +#: storage/ipc/standby.c:1491 msgid "recovery conflict on buffer pin" msgstr "återställningskonflikt vid bufferfastlåsning" -#: storage/ipc/standby.c:1496 +#: storage/ipc/standby.c:1494 msgid "recovery conflict on lock" msgstr "återställningskonflikt vid lås" -#: storage/ipc/standby.c:1499 +#: storage/ipc/standby.c:1497 msgid "recovery conflict on tablespace" msgstr "återställningskonflikt vid tabellutrymme" -#: storage/ipc/standby.c:1502 +#: storage/ipc/standby.c:1500 msgid "recovery conflict on snapshot" msgstr "återställningskonflikt vid snapshot" -#: storage/ipc/standby.c:1505 +#: storage/ipc/standby.c:1503 msgid "recovery conflict on replication slot" msgstr "återställningskonflikt vid replikeringsslot" -#: storage/ipc/standby.c:1508 +#: storage/ipc/standby.c:1506 msgid "recovery conflict on buffer deadlock" msgstr "återställningskonflikt vid bufferdeadlock" -#: storage/ipc/standby.c:1511 +#: storage/ipc/standby.c:1509 msgid "recovery conflict on database" msgstr "återställningskonflikt vid databas" -#: storage/large_object/inv_api.c:191 +#: storage/large_object/inv_api.c:190 #, c-format 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:274 +#: storage/large_object/inv_api.c:272 #, 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:457 +#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 +#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 +#: storage/large_object/inv_api.c:807 +#, c-format +msgid "permission denied for large object %u" +msgstr "rättighet saknas för stort objekt %u" + +#: storage/large_object/inv_api.c:455 #, c-format msgid "invalid whence setting: %d" msgstr "ogiltig whence-inställning: %d" -#: storage/large_object/inv_api.c:629 +#: storage/large_object/inv_api.c:627 #, c-format msgid "invalid large object write request size: %d" msgstr "ogiltig storlek för stort objects skrivningbegäran: %d" @@ -22357,211 +23177,211 @@ msgstr "deadlock upptäckt" msgid "See server log for query details." msgstr "Se server-logg för frågedetaljer." -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:848 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "vid uppdatering av tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:851 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "vid borttagning av tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:854 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "vid låsning av tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:857 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "vid låsning av uppdaterad version (%u,%u) av tupel i relation \"%s\"" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:860 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "vid insättning av indextupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:863 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "vid kontroll av unikhet av tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:877 +#: storage/lmgr/lmgr.c:866 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "vid återkontroll av uppdaterad tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:880 +#: storage/lmgr/lmgr.c:869 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "vid kontroll av uteslutningsvillkor av tupel (%u,%u) i relation \"%s\"" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1239 #, c-format msgid "relation %u of database %u" msgstr "relation %u i databasen %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "extension of relation %u of database %u" msgstr "utökning av relation %u i databas %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1251 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid för databas %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1256 #, c-format msgid "page %u of relation %u of database %u" msgstr "sida %u i relation %u i databas %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1263 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "tuple (%u,%u) i relation %u i databas %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1271 #, c-format msgid "transaction %u" msgstr "transaktion %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "virtual transaction %d/%u" msgstr "vituell transaktion %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1282 #, c-format msgid "speculative token %u of transaction %u" msgstr "spekulativ token %u för transaktion %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1288 #, c-format msgid "object %u of class %u of database %u" msgstr "objekt %u av klass %u i databas %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1296 #, c-format msgid "user lock [%u,%u,%u]" msgstr "användarlås [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1303 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "rådgivande lås [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1311 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "fjärrtransaktion %u för prenumeration %u i databas %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1318 #, c-format msgid "unrecognized locktag type %d" msgstr "okänd låsetikettyp %d" -#: storage/lmgr/lock.c:791 +#: storage/lmgr/lock.c:812 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "kan inte ta låsläge %s på databasobjekt när återställning pågår" -#: storage/lmgr/lock.c:793 +#: storage/lmgr/lock.c:814 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." msgstr "Bara RowExclusiveLock eller lägre kan tas på databasobjekt under återställning." -#: storage/lmgr/lock.c:3235 storage/lmgr/lock.c:3303 storage/lmgr/lock.c:3419 +#: storage/lmgr/lock.c:3284 storage/lmgr/lock.c:3352 storage/lmgr/lock.c:3468 #, 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" -#: storage/lmgr/predicate.c:649 +#: storage/lmgr/predicate.c:653 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "ej tillräckligt med element i RWConflictPool för att spara ner en läs/skriv-konflikt" -#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 +#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679 #, c-format -msgid "You might need to run fewer transactions at a time or increase max_connections." -msgstr "Du kan behöva köra färre samtidiga transaktioner eller öka max_connections." +msgid "You might need to run fewer transactions at a time or increase \"max_connections\"." +msgstr "Du kan behöva köra färre samtidiga transaktioner eller öka \"max_connections\"." -#: storage/lmgr/predicate.c:674 +#: storage/lmgr/predicate.c:678 #, c-format 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:1630 +#: storage/lmgr/predicate.c:1686 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "\"default_transaction_isolation\" är satt till \"serializable\"." -#: storage/lmgr/predicate.c:1631 +#: storage/lmgr/predicate.c:1687 #, 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:1682 +#: storage/lmgr/predicate.c:1738 #, 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:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1817 utils/time/snapmgr.c:535 +#: utils/time/snapmgr.c:541 #, c-format msgid "could not import the requested snapshot" msgstr "kunde inte importera efterfrågat snapshot" -#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 +#: storage/lmgr/predicate.c:1818 utils/time/snapmgr.c:542 #, 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:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3991 storage/lmgr/predicate.c:4027 +#: storage/lmgr/predicate.c:4060 storage/lmgr/predicate.c:4068 +#: storage/lmgr/predicate.c:4107 storage/lmgr/predicate.c:4337 +#: storage/lmgr/predicate.c:4656 storage/lmgr/predicate.c:4668 +#: storage/lmgr/predicate.c:4715 storage/lmgr/predicate.c:4751 #, 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:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3993 storage/lmgr/predicate.c:4029 +#: storage/lmgr/predicate.c:4062 storage/lmgr/predicate.c:4070 +#: storage/lmgr/predicate.c:4109 storage/lmgr/predicate.c:4339 +#: storage/lmgr/predicate.c:4658 storage/lmgr/predicate.c:4670 +#: storage/lmgr/predicate.c:4717 storage/lmgr/predicate.c:4753 #, c-format msgid "The transaction might succeed if retried." msgstr "Transaktionen kan lyckas om den körs igen." -#: storage/lmgr/proc.c:349 +#: storage/lmgr/proc.c:353 #, c-format -msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" -msgstr "antalet efterfrågade standby-anslutningar överskrider max_wal_senders (nu %d)" +msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)" +msgstr "antalet efterfrågade standby-anslutningar överskrider \"max_wal_senders\" (nu %d)" -#: storage/lmgr/proc.c:1472 +#: storage/lmgr/proc.c:1546 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "process %d undvek deadlock på %s för %s genom att kasta om köordningen efter %ld.%03d ms" -#: storage/lmgr/proc.c:1487 +#: storage/lmgr/proc.c:1561 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "process %d upptäckte deadlock medan den väntade på %s för %s efter %ld.%03d ms" -#: storage/lmgr/proc.c:1496 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "process %d väntar fortfarande på %s för %s efter %ld.%03d ms" -#: storage/lmgr/proc.c:1503 +#: storage/lmgr/proc.c:1577 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "process %d fick %s på %s efter %ld.%03d ms" -#: storage/lmgr/proc.c:1520 +#: storage/lmgr/proc.c:1594 #, c-format 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" @@ -22594,67 +23414,202 @@ msgstr "trasiga postlängder: totalt %u, tillgänglig plats %u" msgid "corrupted line pointer: offset = %u, size = %u" msgstr "korrupt radpekare: offset = %u, storlek = %u" -#: storage/smgr/md.c:487 storage/smgr/md.c:549 +#: storage/smgr/md.c:485 storage/smgr/md.c:547 #, 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:502 storage/smgr/md.c:613 +#: storage/smgr/md.c:500 storage/smgr/md.c:611 #, c-format msgid "could not extend file \"%s\": %m" msgstr "kunde inte utöka fil \"%s\": %m" -#: storage/smgr/md.c:508 +#: storage/smgr/md.c:506 #, 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:591 +#: storage/smgr/md.c:589 #, c-format msgid "could not extend file \"%s\" with FileFallocate(): %m" msgstr "kunde inte utöka fil \"%s\" med FileFallocate(): %m" -#: storage/smgr/md.c:782 -#, 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:798 +#: storage/smgr/md.c:869 #, 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" +msgid "could not read blocks %u..%u in file \"%s\": %m" +msgstr "kunde inte läsa block %u..%u i fil \"%s\": %m" -#: storage/smgr/md.c:856 +#: storage/smgr/md.c:895 #, c-format -msgid "could not write block %u in file \"%s\": %m" -msgstr "kunde inte skriva block %u i fil \"%s\": %m" +msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" +msgstr "kunde inte läsa block %u..%u i fil \"%s\": läste bara %zu av %zu byte" -#: storage/smgr/md.c:861 +#: storage/smgr/md.c:995 #, 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" +msgid "could not write blocks %u..%u in file \"%s\": %m" +msgstr "kunde inte skriva block %u..%u i fil \"%s\": %m" -#: storage/smgr/md.c:1012 +#: storage/smgr/md.c:1165 #, 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:1067 +#: storage/smgr/md.c:1220 #, 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:1494 +#: storage/smgr/md.c:1700 #, 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:1508 +#: storage/smgr/md.c:1714 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "kunde inte öppna fil \"%s\" (målblock %u): %m" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#: tcop/backend_startup.c:85 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "SSL-konfigurering kunde inte laddas i barnprocess" + +#: tcop/backend_startup.c:208 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "ansluting mottagen: värd=%s port=%s" + +#: tcop/backend_startup.c:213 +#, c-format +msgid "connection received: host=%s" +msgstr "ansluting mottagen: värd=%s" + +#: tcop/backend_startup.c:277 +#, c-format +msgid "the database system is starting up" +msgstr "databassystemet startar upp" + +#: tcop/backend_startup.c:283 +#, c-format +msgid "the database system is not yet accepting connections" +msgstr "databassystemet tar ännu inte emot anslutningar" + +#: tcop/backend_startup.c:284 +#, c-format +msgid "Consistent recovery state has not been yet reached." +msgstr "Konsistent återställningstillstånd har ännu inte uppnåtts." + +#: tcop/backend_startup.c:288 +#, c-format +msgid "the database system is not accepting connections" +msgstr "databassystemet tar inte emot anslutningar" + +#: tcop/backend_startup.c:289 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "Hot standby-läge är avstängt." + +#: tcop/backend_startup.c:294 +#, c-format +msgid "the database system is shutting down" +msgstr "databassystemet stänger ner" + +#: tcop/backend_startup.c:299 +#, c-format +msgid "the database system is in recovery mode" +msgstr "databassystemet är återställningsläge" + +#: tcop/backend_startup.c:414 +#, c-format +msgid "received direct SSL connection request without ALPN protocol negotiation extension" +msgstr "förfrågan för direkt SSL-anslutning har mottagits utan utökning för ALPN-protokollförhandling" + +#: tcop/backend_startup.c:420 +#, c-format +msgid "direct SSL connection accepted" +msgstr "direkt SSL-anslutning accepterad" + +#: tcop/backend_startup.c:430 +#, c-format +msgid "direct SSL connection rejected" +msgstr "direkt SSL-anslutning avvisad" + +#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#, c-format +msgid "incomplete startup packet" +msgstr "ofullständigt startuppaket" + +#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#, c-format +msgid "invalid length of startup packet" +msgstr "ogiltig längd på startuppaket" + +#: tcop/backend_startup.c:573 +#, c-format +msgid "SSLRequest accepted" +msgstr "SSLRequest accepterad" + +#: tcop/backend_startup.c:576 +#, c-format +msgid "SSLRequest rejected" +msgstr "SSLRequest nekad" + +#: tcop/backend_startup.c:585 +#, c-format +msgid "failed to send SSL negotiation response: %m" +msgstr "misslyckades att skicka SSL-förhandlingssvar: %m" + +#: tcop/backend_startup.c:603 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "tog emot okrypterad data efter SSL-förfrågan" + +#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#, 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." + +#: tcop/backend_startup.c:627 +#, c-format +msgid "GSSENCRequest accepted" +msgstr "GSSENCRequest accepterad" + +#: tcop/backend_startup.c:630 +#, c-format +msgid "GSSENCRequest rejected" +msgstr "GSSENCRequest nekad" + +#: tcop/backend_startup.c:639 +#, c-format +msgid "failed to send GSSAPI negotiation response: %m" +msgstr "misslyckades att skicka GSSAPI-förhandlingssvar: %m" + +#: tcop/backend_startup.c:657 +#, c-format +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "tog emot okrypterad data efter GSSAPI-krypteringsförfrågan" + +#: tcop/backend_startup.c:681 +#, 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" + +#: tcop/backend_startup.c:744 +#, c-format +msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." +msgstr "Giltiga värden är: \"false\", 0, \"true\", 1, \"database\"." + +#: tcop/backend_startup.c:785 +#, c-format +msgid "invalid startup packet layout: expected terminator as last byte" +msgstr "ogiltig startpaketlayout: förväntade en terminator som sista byte" + +#: tcop/backend_startup.c:802 +#, c-format +msgid "no PostgreSQL user name specified in startup packet" +msgstr "inget PostgreSQL-användarnamn angivet i startuppaketet" + +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "funktionen med OID %u existerar inte" @@ -22669,8 +23624,8 @@ msgstr "kan inte anropa funktionen \"%s\" via fastpath-interface" msgid "fastpath function call: \"%s\" (OID %u)" msgstr "fastpath funktionsanrop: \"%s\" (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605 +#: tcop/postgres.c:2071 tcop/postgres.c:2333 #, c-format msgid "duration: %s ms" msgstr "varaktighet %s ms" @@ -22700,315 +23655,320 @@ msgstr "ogiltig argumentstorlek %d i funktionsaropsmeddelande" msgid "incorrect binary data format in function argument %d" msgstr "inkorrekt binärt dataformat i funktionsargument %d" -#: tcop/postgres.c:463 tcop/postgres.c:4882 +#: tcop/postgres.c:467 tcop/postgres.c:5012 #, c-format msgid "invalid frontend message type %d" msgstr "ogiltig frontend-meddelandetyp %d" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1076 #, c-format msgid "statement: %s" msgstr "sats: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1374 #, c-format msgid "duration: %s ms statement: %s" msgstr "varaktighet: %s ms sats: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1480 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "kan inte stoppa in multipla kommandon i en förberedd sats" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1610 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "varaktighet: %s ms parse %s: %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2629 +#: tcop/postgres.c:1677 tcop/postgres.c:2653 #, c-format msgid "unnamed prepared statement does not exist" msgstr "förberedd sats utan namn existerar inte" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1729 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "bind-meddelande har %d parameterformat men %d parametrar" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1735 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "bind-meddelande ger %d parametrar men förberedd sats \"%s\" kräver %d" -#: tcop/postgres.c:1937 +#: tcop/postgres.c:1949 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "inkorrekt binärdataformat i bind-parameter %d" -#: tcop/postgres.c:2064 +#: tcop/postgres.c:2076 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "varaktighet: %s ms bind %s%s%s: %s" -#: tcop/postgres.c:2118 tcop/postgres.c:2712 +#: tcop/postgres.c:2131 tcop/postgres.c:2735 #, c-format msgid "portal \"%s\" does not exist" msgstr "portal \"%s\" existerar inte" -#: tcop/postgres.c:2189 +#: tcop/postgres.c:2213 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2191 tcop/postgres.c:2317 +#: tcop/postgres.c:2215 tcop/postgres.c:2341 msgid "execute fetch from" msgstr "kör hämtning från" -#: tcop/postgres.c:2192 tcop/postgres.c:2318 +#: tcop/postgres.c:2216 tcop/postgres.c:2342 msgid "execute" msgstr "kör" -#: tcop/postgres.c:2314 +#: tcop/postgres.c:2338 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "varaktighet: %s ms %s %s%s%s: %s" -#: tcop/postgres.c:2462 +#: tcop/postgres.c:2486 #, c-format msgid "prepare: %s" msgstr "prepare: %s" -#: tcop/postgres.c:2487 +#: tcop/postgres.c:2511 #, c-format -msgid "parameters: %s" -msgstr "parametrar: %s" +msgid "Parameters: %s" +msgstr "Parametrar: %s" -#: tcop/postgres.c:2502 +#: tcop/postgres.c:2526 #, c-format -msgid "abort reason: recovery conflict" -msgstr "abortskäl: återställningskonflikt" +msgid "Abort reason: recovery conflict" +msgstr "Abortskäl: återställningskonflikt" -#: tcop/postgres.c:2518 +#: tcop/postgres.c:2542 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "Användaren höll delad bufferfastlåsning för länge." -#: tcop/postgres.c:2521 +#: tcop/postgres.c:2545 #, c-format msgid "User was holding a relation lock for too long." msgstr "Användare höll ett relationslås för länge." -#: tcop/postgres.c:2524 +#: tcop/postgres.c:2548 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "Användaren använde eller har använt ett tablespace som tagits bort." -#: tcop/postgres.c:2527 +#: tcop/postgres.c:2551 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "Användarfrågan kan ha behövt se radversioner som har tagits bort." -#: tcop/postgres.c:2530 +#: tcop/postgres.c:2554 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "Användaren använde en logisk replikeringsslot som måste invalideras." -#: tcop/postgres.c:2536 +#: tcop/postgres.c:2560 #, c-format msgid "User was connected to a database that must be dropped." msgstr "Användare var ansluten till databas som måste slängas." -#: tcop/postgres.c:2575 +#: tcop/postgres.c:2599 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "portal \"%s\" parameter $%d = %s" -#: tcop/postgres.c:2578 +#: tcop/postgres.c:2602 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "portal \"%s\" parameter $%d" -#: tcop/postgres.c:2584 +#: tcop/postgres.c:2608 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "ej namngiven portalparameter $%d = %s" -#: tcop/postgres.c:2587 +#: tcop/postgres.c:2611 #, c-format msgid "unnamed portal parameter $%d" msgstr "ej namngiven portalparameter $%d" -#: tcop/postgres.c:2932 +#: tcop/postgres.c:2955 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "stänger anslutning på grund av oväntad SIGQUIT-signal" -#: tcop/postgres.c:2938 +#: tcop/postgres.c:2961 #, c-format msgid "terminating connection because of crash of another server process" msgstr "avbryter anslutning på grund av en krash i en annan serverprocess" -#: tcop/postgres.c:2939 +#: tcop/postgres.c:2962 #, c-format 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:2943 tcop/postgres.c:3310 +#: tcop/postgres.c:2966 tcop/postgres.c:3219 #, 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." -#: tcop/postgres.c:2950 +#: tcop/postgres.c:2973 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "stänger anslutning på grund av kommando för omedelbar nedstängning" -#: tcop/postgres.c:3036 +#: tcop/postgres.c:3051 #, c-format msgid "floating-point exception" msgstr "flyttalsavbrott" -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3052 #, c-format 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:3214 +#: tcop/postgres.c:3217 +#, c-format +msgid "terminating connection due to conflict with recovery" +msgstr "avslutar anslutning på grund av konflikt med återställning" + +#: tcop/postgres.c:3289 #, c-format msgid "canceling authentication due to timeout" msgstr "avbryter autentisering på grund av timeout" -#: tcop/postgres.c:3218 +#: tcop/postgres.c:3293 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "avslutar autovacuum-process på grund av ett administratörskommando" -#: tcop/postgres.c:3222 +#: tcop/postgres.c:3297 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "avslutar logisk replikeringsarbetare på grund av ett administratörskommando" -#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 -#, c-format -msgid "terminating connection due to conflict with recovery" -msgstr "avslutar anslutning på grund av konflikt med återställning" - -#: tcop/postgres.c:3260 +#: tcop/postgres.c:3317 #, c-format msgid "terminating connection due to administrator command" msgstr "avslutar anslutning på grund av ett administratörskommando" -#: tcop/postgres.c:3291 +#: tcop/postgres.c:3348 #, c-format msgid "connection to client lost" msgstr "anslutning till klient har brutits" -#: tcop/postgres.c:3361 +#: tcop/postgres.c:3400 #, c-format msgid "canceling statement due to lock timeout" msgstr "avbryter sats på grund av lås-timeout" -#: tcop/postgres.c:3368 +#: tcop/postgres.c:3407 #, c-format msgid "canceling statement due to statement timeout" msgstr "avbryter sats på grund av sats-timeout" -#: tcop/postgres.c:3375 +#: tcop/postgres.c:3414 #, c-format msgid "canceling autovacuum task" msgstr "avbryter autovacuum-uppgift" -#: tcop/postgres.c:3398 +#: tcop/postgres.c:3427 #, c-format msgid "canceling statement due to user request" msgstr "avbryter sats på användares begäran" -#: tcop/postgres.c:3412 +#: tcop/postgres.c:3448 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "terminerar anslutning på grund av idle-in-transaction-timeout" -#: tcop/postgres.c:3423 +#: tcop/postgres.c:3461 +#, c-format +msgid "terminating connection due to transaction timeout" +msgstr "terminerar anslutning på grund av transaktionstimeout" + +#: tcop/postgres.c:3474 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "stänger anslutning på grund av idle-session-timeout" -#: tcop/postgres.c:3514 +#: tcop/postgres.c:3564 #, c-format msgid "stack depth limit exceeded" msgstr "maximalt stackdjup överskridet" -#: tcop/postgres.c:3515 +#: tcop/postgres.c:3565 #, 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:3562 +#: tcop/postgres.c:3612 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "\"max_stack_depth\" får ej överskrida %ldkB." -#: tcop/postgres.c:3564 +#: tcop/postgres.c:3614 #, 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:3587 +#: tcop/postgres.c:3637 #, c-format -msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "client_connection_check_interval måste sättas till 0 på denna plattform." +msgid "\"client_connection_check_interval\" must be set to 0 on this platform." +msgstr "\"client_connection_check_interval\" måste sättas till 0 på denna plattform." -#: tcop/postgres.c:3608 +#: tcop/postgres.c:3658 #, 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." -#: tcop/postgres.c:3623 +#: tcop/postgres.c:3673 #, 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." -#: tcop/postgres.c:3971 +#: tcop/postgres.c:4098 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "ogiltigt kommandoradsargument för serverprocess: %s" -#: tcop/postgres.c:3972 tcop/postgres.c:3978 +#: tcop/postgres.c:4099 tcop/postgres.c:4105 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: tcop/postgres.c:3976 +#: tcop/postgres.c:4103 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: ogiltigt kommandoradsargument: %s" -#: tcop/postgres.c:4029 +#: tcop/postgres.c:4156 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: ingen databas eller användarnamn angivet" -#: tcop/postgres.c:4779 +#: tcop/postgres.c:4909 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "ogiltig subtyp %d för CLOSE-meddelande" -#: tcop/postgres.c:4816 +#: tcop/postgres.c:4946 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "ogiltig subtyp %d för DESCRIBE-meddelande" -#: tcop/postgres.c:4903 +#: tcop/postgres.c:5033 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "fastpath-funktionsanrop stöds inte i en replikeringsanslutning" -#: tcop/postgres.c:4907 +#: tcop/postgres.c:5037 #, 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:5087 +#: tcop/postgres.c:5217 #, 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" @@ -23018,53 +23978,53 @@ msgstr "nedkoppling: sessionstid: %d:%02d:%02d.%03d användare=%s databas=%s vä 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:944 tcop/pquery.c:1701 +#: tcop/pquery.c:942 tcop/pquery.c:1696 #, c-format msgid "cursor can only scan forward" msgstr "markör kan bara hoppa framåt" -#: tcop/pquery.c:945 tcop/pquery.c:1702 +#: tcop/pquery.c:943 tcop/pquery.c:1697 #, 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." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:417 +#: tcop/utility.c:410 #, c-format msgid "cannot execute %s in a read-only transaction" msgstr "kan inte köra %s i read-only-transaktion" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:435 +#: tcop/utility.c:428 #, c-format msgid "cannot execute %s during a parallel operation" msgstr "kan inte köra %s under parallell operation" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:454 +#: tcop/utility.c:447 #, c-format msgid "cannot execute %s during recovery" msgstr "kan inte köra %s under återställning" #. translator: %s is name of a SQL command, eg PREPARE -#: tcop/utility.c:472 +#: tcop/utility.c:465 #, c-format msgid "cannot execute %s within security-restricted operation" msgstr "kan inte köra %s inom säkerhetsbegränsad operation" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:828 +#: tcop/utility.c:821 #, c-format msgid "cannot execute %s within a background process" msgstr "kan inte köra %s i en bakgrundsprocess" #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:954 +#: tcop/utility.c:947 #, c-format msgid "permission denied to execute %s command" msgstr "rättighet saknas för köra kommandot %s" -#: tcop/utility.c:956 +#: tcop/utility.c:949 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "Bara roller med rättigheter från rollen \"%s\" får köra detta kommando." @@ -23127,7 +24087,7 @@ msgstr "kunde inte öppna synonymordboksfil \"%s\": %m" #: tsearch/dict_thesaurus.c:212 #, c-format msgid "unexpected delimiter" -msgstr "oväntad avdelare" +msgstr "oväntad separator" #: tsearch/dict_thesaurus.c:262 tsearch/dict_thesaurus.c:278 #, c-format @@ -23246,17 +24206,17 @@ msgstr "antalet alias överskriver angivet antal %d" msgid "affix file contains both old-style and new-style commands" msgstr "affix-fil innehåller kommandon på gammalt och nytt format" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "strängen är för lång för tsvector (%d byte, max %d byte)" -#: tsearch/ts_locale.c:238 +#: tsearch/ts_locale.c:236 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "rad %d i konfigureringsfil \"%s\": \"%s\"" -#: tsearch/ts_locale.c:317 +#: tsearch/ts_locale.c:315 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "konvertering från wchar_t till serverkodning misslyckades: %m" @@ -23283,72 +24243,67 @@ msgstr "ogiltigt filnamn \"%s\" till textsökkonfiguration" msgid "could not open stop-word file \"%s\": %m" msgstr "kunde inte öppna stoppordsfil \"%s\": %m" -#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 +#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471 #, c-format msgid "text search parser does not support headline creation" msgstr "textsökparsern stöder inte skapande av rubriker" -#: tsearch/wparser_def.c:2663 +#: tsearch/wparser_def.c:2664 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "okänd rubrikparameter: \"%s\"" -#: tsearch/wparser_def.c:2673 -#, c-format -msgid "MinWords should be less than MaxWords" -msgstr "MinWords skall vara mindre än MaxWords" - -#: tsearch/wparser_def.c:2677 +#: tsearch/wparser_def.c:2674 #, c-format -msgid "MinWords should be positive" -msgstr "MinWords skall vara positiv" +msgid "%s must be less than %s" +msgstr "%s måste vara mindre än %s" -#: tsearch/wparser_def.c:2681 +#: tsearch/wparser_def.c:2678 #, c-format -msgid "ShortWord should be >= 0" -msgstr "ShortWord skall vara >= 0" +msgid "%s must be positive" +msgstr "%s måste vara positiv" -#: tsearch/wparser_def.c:2685 +#: tsearch/wparser_def.c:2682 tsearch/wparser_def.c:2686 #, c-format -msgid "MaxFragments should be >= 0" -msgstr "MaxFragments skall vara >= 0" +msgid "%s must be >= 0" +msgstr "%s måste vara >= 0" -#: utils/activity/pgstat.c:438 +#: utils/activity/pgstat.c:435 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "kunde inte radera permanent statistikfil \"%s\": %m" -#: utils/activity/pgstat.c:1252 +#: utils/activity/pgstat.c:1255 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "ogiltig statistiktyp \"%s\"" -#: utils/activity/pgstat.c:1332 +#: utils/activity/pgstat.c:1335 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "kunde inte öppna temporär statistikfil \"%s\": %m" -#: utils/activity/pgstat.c:1444 +#: utils/activity/pgstat.c:1455 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "kunde inte skriva temporär statistikfil \"%s\": %m" -#: utils/activity/pgstat.c:1453 +#: utils/activity/pgstat.c:1464 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "kunde inte stänga temporär statistikfil \"%s\": %m" -#: utils/activity/pgstat.c:1461 +#: utils/activity/pgstat.c:1472 #, 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" -#: utils/activity/pgstat.c:1510 +#: utils/activity/pgstat.c:1521 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "kunde inte öppna statistikfil \"%s\": %m" -#: utils/activity/pgstat.c:1672 +#: utils/activity/pgstat.c:1683 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "korrupt statistikfil \"%s\"" @@ -23358,115 +24313,125 @@ msgstr "korrupt statistikfil \"%s\"" msgid "function call to dropped function" msgstr "funktionsanrop till borttagen funktion" -#: utils/activity/pgstat_xact.c:363 +#: utils/activity/pgstat_xact.c:362 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "återställer existerande statistik för typ %s, db=%u, oid=%u" -#: utils/adt/acl.c:177 utils/adt/name.c:93 +#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "wait event \"%s\" finns redan i type \"%s\"" + +#: utils/activity/wait_event.c:246 +#, c-format +msgid "too many custom wait events" +msgstr "för många egendefinierade wait event" + +#: utils/adt/acl.c:183 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "identifieraren för lång" -#: utils/adt/acl.c:178 utils/adt/name.c:94 +#: utils/adt/acl.c:184 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:266 +#: utils/adt/acl.c:272 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "okänt nyckelord: \"%s\"" -#: utils/adt/acl.c:267 +#: utils/adt/acl.c:273 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "ACL-nyckelord måste vara \"group\" eller \"user\"." -#: utils/adt/acl.c:275 +#: utils/adt/acl.c:281 #, c-format msgid "missing name" msgstr "namn saknas" -#: utils/adt/acl.c:276 +#: utils/adt/acl.c:282 #, 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:282 +#: utils/adt/acl.c:288 #, c-format msgid "missing \"=\" sign" msgstr "saknar \"=\"-tecken" -#: utils/adt/acl.c:341 +#: utils/adt/acl.c:350 #, 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:371 +#: utils/adt/acl.c:380 #, c-format msgid "a name must follow the \"/\" sign" msgstr "ett namn måste följa på tecknet \"/\"" -#: utils/adt/acl.c:383 +#: utils/adt/acl.c:392 #, c-format msgid "defaulting grantor to user ID %u" msgstr "sätter fullmaktsgivaranvändar-ID till standardvärdet %u" -#: utils/adt/acl.c:569 +#: utils/adt/acl.c:578 #, c-format msgid "ACL array contains wrong data type" msgstr "ACL-array innehåller fel datatyp" -#: utils/adt/acl.c:573 +#: utils/adt/acl.c:582 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "ACL-array:er måste vara endimensionella" -#: utils/adt/acl.c:577 +#: utils/adt/acl.c:586 #, 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:606 +#: utils/adt/acl.c:615 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "skräp vid slutet av ACL-angivelse" -#: utils/adt/acl.c:1248 +#: utils/adt/acl.c:1263 #, 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:1564 +#: utils/adt/acl.c:1579 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert stöds inte länge" -#: utils/adt/acl.c:1574 +#: utils/adt/acl.c:1589 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove stöds inte längre" -#: utils/adt/acl.c:1693 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "okänd privilegietyp: \"%s\"" -#: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "funktionen \"%s\" finns inte" -#: utils/adt/acl.c:5023 +#: utils/adt/acl.c:5196 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "måste kunna utföra SET ROLE \"%s\"" #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 +#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 +#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "kan inte bestämma indatatyp" @@ -23477,17 +24442,17 @@ msgid "input data type is not an array" msgstr "indatatyp är inte en array" #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 +#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454 +#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 +#: utils/adt/varlena.c:3137 #, c-format msgid "integer out of range" msgstr "heltal utanför giltigt intervall" @@ -23524,267 +24489,278 @@ msgstr "Array:er med olika elementdimensioner är inte kompatibla för sammaslag 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:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5590 utils/adt/arrayfuncs.c:5596 +#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 +#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "kan inte ackumulera arrayer med olika dimensioner" -#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 +#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 #, 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:1315 +#: utils/adt/array_userfuncs.c:1301 #, c-format msgid "initial position must not be null" msgstr "initiala positionen får ej vara null" -#: utils/adt/array_userfuncs.c:1688 +#: utils/adt/array_userfuncs.c:1674 #, c-format msgid "sample size must be between 0 and %d" msgstr "samplingsstorleken måste vara mellan 0 och %d" -#: utils/adt/arrayfuncs.c:273 utils/adt/arrayfuncs.c:287 -#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:320 -#: utils/adt/arrayfuncs.c:337 utils/adt/arrayfuncs.c:351 -#: utils/adt/arrayfuncs.c:359 utils/adt/arrayfuncs.c:366 -#: utils/adt/arrayfuncs.c:506 utils/adt/arrayfuncs.c:521 -#: utils/adt/arrayfuncs.c:532 utils/adt/arrayfuncs.c:547 -#: utils/adt/arrayfuncs.c:568 utils/adt/arrayfuncs.c:598 -#: utils/adt/arrayfuncs.c:605 utils/adt/arrayfuncs.c:613 -#: utils/adt/arrayfuncs.c:647 utils/adt/arrayfuncs.c:670 -#: utils/adt/arrayfuncs.c:690 utils/adt/arrayfuncs.c:807 -#: utils/adt/arrayfuncs.c:816 utils/adt/arrayfuncs.c:846 -#: utils/adt/arrayfuncs.c:861 utils/adt/arrayfuncs.c:914 +#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273 +#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307 +#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454 +#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703 +#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777 +#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870 +#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904 +#: utils/adt/arrayfuncs.c:941 #, c-format msgid "malformed array literal: \"%s\"" msgstr "felaktig array-literal: \"%s\"" -#: utils/adt/arrayfuncs.c:274 -#, c-format -msgid "\"[\" must introduce explicitly-specified array dimensions." -msgstr "\"[\" måste införa explicit angivna array-dimensioner." - -#: utils/adt/arrayfuncs.c:288 +#: utils/adt/arrayfuncs.c:265 #, c-format -msgid "Missing array dimension value." -msgstr "Saknar värde i array-dimension." +msgid "Array value must start with \"{\" or dimension information." +msgstr "Array-värde måste starta med \"{\" eller dimensionsinformation" -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:338 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "Saknar \"%s\" efter array-dimensioner." -#: utils/adt/arrayfuncs.c:308 utils/adt/arrayfuncs.c:2933 -#: utils/adt/arrayfuncs.c:2965 utils/adt/arrayfuncs.c:2980 +#: utils/adt/arrayfuncs.c:285 #, c-format -msgid "upper bound cannot be less than lower bound" -msgstr "övre gränsen kan inte vara lägre än undre gränsen" +msgid "Array contents must start with \"{\"." +msgstr "Array-innehåll måste starta med \"{\"." -#: utils/adt/arrayfuncs.c:321 +#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292 #, c-format -msgid "Array value must start with \"{\" or dimension information." -msgstr "Array-värde måste starta med \"{\" eller dimensionsinformation" +msgid "Junk after closing right brace." +msgstr "Skräp efter avslutande höger parentes." -#: utils/adt/arrayfuncs.c:352 +#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643 #, c-format -msgid "Array contents must start with \"{\"." -msgstr "Array-innehåll måste starta med \"{\"." +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "antal array-dimensioner överskriver maximalt tillåtna (%d)" -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 +#: utils/adt/arrayfuncs.c:441 #, c-format -msgid "Specified array dimensions do not match array contents." -msgstr "Angivna array-dimensioner matchar inte array-innehållet." +msgid "\"[\" must introduce explicitly-specified array dimensions." +msgstr "\"[\" måste införa explicit angivna array-dimensioner." -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:533 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:455 #, c-format -msgid "Unexpected end of input." -msgstr "oväntat slut på indata." +msgid "Missing array dimension value." +msgstr "Saknar värde i array-dimension." + +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 +#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 +#, c-format +msgid "upper bound cannot be less than lower bound" +msgstr "övre gränsen kan inte vara lägre än undre gränsen" + +#: utils/adt/arrayfuncs.c:487 +#, c-format +msgid "array upper bound is too large: %d" +msgstr "övre gräns för array är för stor: %d" + +#: utils/adt/arrayfuncs.c:538 +#, c-format +msgid "array bound is out of integer range" +msgstr "array-gräns är utanför giltigt interval för integer" -#: utils/adt/arrayfuncs.c:522 utils/adt/arrayfuncs.c:569 -#: utils/adt/arrayfuncs.c:599 utils/adt/arrayfuncs.c:648 +#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669 +#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898 #, c-format msgid "Unexpected \"%c\" character." msgstr "oväntat tecken \"%c\"." -#: utils/adt/arrayfuncs.c:548 utils/adt/arrayfuncs.c:671 +#: utils/adt/arrayfuncs.c:719 #, c-format msgid "Unexpected array element." msgstr "Oväntat array-element." -#: utils/adt/arrayfuncs.c:606 +#: utils/adt/arrayfuncs.c:778 #, c-format -msgid "Unmatched \"%c\" character." -msgstr "Icke matchat tecken \"%c\"." +msgid "Specified array dimensions do not match array contents." +msgstr "Angivna array-dimensioner matchar inte array-innehållet." -#: utils/adt/arrayfuncs.c:614 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2598 #, 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:691 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:871 utils/adt/arrayfuncs.c:905 #, c-format -msgid "Junk after closing right brace." -msgstr "Skräp efter avslutande höger parentes." +msgid "Incorrectly quoted array element." +msgstr "Felaktigt quote:at array-element." + +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 +#: utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 +#: utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#, c-format +msgid "Unexpected end of input." +msgstr "oväntat slut på indata." -#: utils/adt/arrayfuncs.c:1325 utils/adt/arrayfuncs.c:3479 -#: utils/adt/arrayfuncs.c:6080 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3499 +#: utils/adt/arrayfuncs.c:6106 #, c-format msgid "invalid number of dimensions: %d" msgstr "felaktigt antal dimensioner: %d" -#: utils/adt/arrayfuncs.c:1336 +#: utils/adt/arrayfuncs.c:1312 #, c-format msgid "invalid array flags" msgstr "ogiltiga array-flaggor" -#: utils/adt/arrayfuncs.c:1358 +#: utils/adt/arrayfuncs.c:1334 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "binär data har array-elementtyp typ %u (%s) istället för förväntade %u (%s)" -#: utils/adt/arrayfuncs.c:1402 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 +#: utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 #, 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:1542 +#: utils/adt/arrayfuncs.c:1509 #, c-format msgid "improper binary format in array element %d" msgstr "felaktigt binärt format i array-element %d" -#: utils/adt/arrayfuncs.c:1623 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 +#: utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 #, 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:2102 +#: utils/adt/arrayfuncs.c:2067 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "slice av fixlängd-array är inte implementerat" -#: utils/adt/arrayfuncs.c:2280 utils/adt/arrayfuncs.c:2302 -#: utils/adt/arrayfuncs.c:2351 utils/adt/arrayfuncs.c:2589 -#: utils/adt/arrayfuncs.c:2911 utils/adt/arrayfuncs.c:6066 -#: utils/adt/arrayfuncs.c:6092 utils/adt/arrayfuncs.c:6103 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 +#: utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6092 +#: utils/adt/arrayfuncs.c:6118 utils/adt/arrayfuncs.c:6129 +#: utils/adt/json.c:1433 utils/adt/json.c:1505 utils/adt/jsonb.c:1317 +#: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4710 utils/adt/jsonfuncs.c:4863 +#: utils/adt/jsonfuncs.c:4974 utils/adt/jsonfuncs.c:5022 #, c-format msgid "wrong number of array subscripts" msgstr "fel antal array-indexeringar" -#: utils/adt/arrayfuncs.c:2285 utils/adt/arrayfuncs.c:2393 -#: utils/adt/arrayfuncs.c:2656 utils/adt/arrayfuncs.c:2970 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 +#: utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "array-index utanför giltigt område" -#: utils/adt/arrayfuncs.c:2290 +#: utils/adt/arrayfuncs.c:2255 #, 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:2858 +#: utils/adt/arrayfuncs.c:2855 #, 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:2889 +#: utils/adt/arrayfuncs.c:2886 #, 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:2890 +#: utils/adt/arrayfuncs.c:2887 #, 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:2901 utils/adt/arrayfuncs.c:2997 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "käll-array för liten" -#: utils/adt/arrayfuncs.c:3637 +#: utils/adt/arrayfuncs.c:3657 #, 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:3808 utils/adt/arrayfuncs.c:3979 -#: utils/adt/arrayfuncs.c:4370 +#: utils/adt/arrayfuncs.c:3828 utils/adt/arrayfuncs.c:3999 +#: utils/adt/arrayfuncs.c:4390 #, c-format msgid "cannot compare arrays of different element types" msgstr "kan inte jämföra arrayer med olika elementtyper" -#: utils/adt/arrayfuncs.c:4157 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4177 utils/adt/multirangetypes.c:2805 +#: utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 +#: utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 #, 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:4285 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4305 utils/adt/rowtypes.c:1996 #, 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:5480 +#: utils/adt/arrayfuncs.c:5506 #, c-format msgid "data type %s is not an array type" msgstr "datatypen %s är inte en arraytyp" -#: utils/adt/arrayfuncs.c:5535 +#: utils/adt/arrayfuncs.c:5561 #, c-format msgid "cannot accumulate null arrays" msgstr "kan inte ackumulera null-array:er" -#: utils/adt/arrayfuncs.c:5563 +#: utils/adt/arrayfuncs.c:5589 #, c-format msgid "cannot accumulate empty arrays" msgstr "kan inte ackumulera tomma array:er" -#: utils/adt/arrayfuncs.c:5964 utils/adt/arrayfuncs.c:6004 +#: utils/adt/arrayfuncs.c:5990 utils/adt/arrayfuncs.c:6030 #, 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:6067 utils/adt/arrayfuncs.c:6093 +#: utils/adt/arrayfuncs.c:6093 utils/adt/arrayfuncs.c:6119 #, c-format msgid "Dimension array must be one dimensional." msgstr "Dimensionsarray måste vara endimensionell." -#: utils/adt/arrayfuncs.c:6072 utils/adt/arrayfuncs.c:6098 +#: utils/adt/arrayfuncs.c:6098 utils/adt/arrayfuncs.c:6124 #, c-format msgid "dimension values cannot be null" msgstr "dimensionsvärden kan inte vara null" -#: utils/adt/arrayfuncs.c:6104 +#: utils/adt/arrayfuncs.c:6130 #, 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:6382 +#: utils/adt/arrayfuncs.c:6411 #, 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:6659 +#: utils/adt/arrayfuncs.c:6688 #, c-format msgid "thresholds must be one-dimensional array" msgstr "gränsvärden måste vara en endimensionell array" -#: utils/adt/arrayfuncs.c:6664 +#: utils/adt/arrayfuncs.c:6693 #, c-format msgid "thresholds array must not contain NULLs" msgstr "gränsvärdesarray får inte innehålla NULLL-värden" -#: utils/adt/arrayfuncs.c:6897 +#: utils/adt/arrayfuncs.c:6926 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "antal element att trimma måste vara mellan 0 och %d" @@ -23799,22 +24775,22 @@ msgstr "array-index måste ha typen integer" msgid "array subscript in assignment must not be null" msgstr "array-index i tilldelning kan inte vara null" -#: utils/adt/arrayutils.c:161 +#: 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" +msgstr "undre gräns för array är för stor: %d" -#: utils/adt/arrayutils.c:263 +#: utils/adt/arrayutils.c:242 #, c-format msgid "typmod array must be type cstring[]" msgstr "typmod-array måste ha typ cstring[]" -#: utils/adt/arrayutils.c:268 +#: utils/adt/arrayutils.c:247 #, c-format msgid "typmod array must be one-dimensional" msgstr "typmod-array måste vara endimensionell" -#: utils/adt/arrayutils.c:273 +#: utils/adt/arrayutils.c:252 #, c-format msgid "typmod array must not contain nulls" msgstr "typmod-arrayen får inte innehålla null-värden" @@ -23825,48 +24801,52 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "kodningskonvertering från %s till ASCII stöds inte" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/bool.c:149 utils/adt/cash.c:354 utils/adt/datetime.c:4142 +#: utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 +#: utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 #: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 #: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 #: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 #: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 -#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 -#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:354 +#: utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 +#: utils/adt/network.c:99 utils/adt/numeric.c:803 utils/adt/numeric.c:7221 +#: utils/adt/numeric.c:7424 utils/adt/numeric.c:8371 utils/adt/numutils.c:356 +#: utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 +#: utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 +#: utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:510 +#: utils/adt/uuid.c:140 utils/adt/xid8funcs.c:323 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "ogiltig indatasyntax för type %s: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 -#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 -#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 +#: utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "värdet \"%s\" är utanför giltigt intervall för typen %s" +msgid "money out of range" +msgstr "money utanför giltigt intervall" -#: 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:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3406 +#: utils/adt/cash.c:161 utils/adt/cash.c:723 utils/adt/float.c:99 +#: utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 +#: utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 +#: utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 +#: utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 +#: utils/adt/numeric.c:3191 utils/adt/numeric.c:3214 utils/adt/numeric.c:3299 +#: utils/adt/numeric.c:3317 utils/adt/numeric.c:3413 utils/adt/numeric.c:8920 +#: utils/adt/numeric.c:9233 utils/adt/numeric.c:9581 utils/adt/numeric.c:9697 +#: utils/adt/numeric.c:11208 utils/adt/timestamp.c:3713 #, c-format msgid "division by zero" msgstr "division med noll" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 +#: utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 +#: utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 +#: utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "värdet \"%s\" är utanför giltigt intervall för typen %s" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -23877,159 +24857,186 @@ msgstr "\"char\" utanför sitt intervall" msgid "could not compute %s hash: %s" msgstr "kunde inte beräkna %s-hash: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "ogiltig typmodifierare" -#: utils/adt/date.c:75 +#: utils/adt/date.c:76 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "TIME(%d)%s-precisionen får inte vara negativ" -#: utils/adt/date.c:81 +#: utils/adt/date.c:82 #, c-format 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:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 +#: utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 +#: utils/adt/formatting.c:4548 #, c-format msgid "date out of range: \"%s\"" msgstr "datum utanför giltigt intervall \"%s\"" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2460 +#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 +#: utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "datum utanför giltigt intervall" -#: utils/adt/date.c:267 utils/adt/timestamp.c:582 +#: utils/adt/date.c:268 utils/adt/timestamp.c:598 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "datumfältvärde utanför giltigt område: %d-%02d-%02d" -#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 +#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "datum utanför giltigt område: %d-%02d-%02d" -#: utils/adt/date.c:494 +#: utils/adt/date.c:495 #, c-format msgid "cannot subtract infinite dates" msgstr "kan inte subtrahera oändliga datum" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 +#: utils/adt/date.c:2906 utils/adt/date.c:2916 #, c-format msgid "date out of range for timestamp" msgstr "datum utanför filtigt område för timestamp" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4097 -#: utils/adt/timestamp.c:4290 utils/adt/timestamp.c:4432 -#: utils/adt/timestamp.c:4685 utils/adt/timestamp.c:4886 -#: utils/adt/timestamp.c:4933 utils/adt/timestamp.c:5157 -#: utils/adt/timestamp.c:5204 utils/adt/timestamp.c:5334 +#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 +#: utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 +#: utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 +#: utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 +#: utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 +#: utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 +#: utils/adt/timestamp.c:6070 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "enheten \"%s\" stöds inte för typen %s" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4111 utils/adt/timestamp.c:4307 -#: utils/adt/timestamp.c:4446 utils/adt/timestamp.c:4645 -#: utils/adt/timestamp.c:4942 utils/adt/timestamp.c:5213 -#: utils/adt/timestamp.c:5395 +#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 +#: utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 +#: utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 +#: utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 +#: utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "enheten \"%s\" känns inte igen för typen %s" -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2976 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:3045 -#: utils/adt/timestamp.c:3068 utils/adt/timestamp.c:3081 -#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3100 -#: utils/adt/timestamp.c:3801 utils/adt/timestamp.c:3925 -#: utils/adt/timestamp.c:4015 utils/adt/timestamp.c:4105 -#: utils/adt/timestamp.c:4198 utils/adt/timestamp.c:4301 -#: utils/adt/timestamp.c:4750 utils/adt/timestamp.c:5024 -#: utils/adt/timestamp.c:5463 utils/adt/timestamp.c:5473 -#: utils/adt/timestamp.c:5478 utils/adt/timestamp.c:5484 -#: utils/adt/timestamp.c:5517 utils/adt/timestamp.c:5604 -#: utils/adt/timestamp.c:5645 utils/adt/timestamp.c:5649 -#: utils/adt/timestamp.c:5703 utils/adt/timestamp.c:5707 -#: utils/adt/timestamp.c:5713 utils/adt/timestamp.c:5747 utils/adt/xml.c:2482 -#: utils/adt/xml.c:2489 utils/adt/xml.c:2509 utils/adt/xml.c:2516 +#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 +#: utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 +#: utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 +#: utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 +#: utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 +#: utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 +#: utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 +#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 +#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 +#: utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 +#: utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 +#: utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 +#: utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 +#: utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 +#: utils/adt/timestamp.c:3266 utils/adt/timestamp.c:3279 +#: utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 +#: utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 +#: utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 +#: utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 +#: utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 +#: utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 +#: utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 +#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 +#: utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 +#: utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 +#: utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 +#: utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2574 +#: utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "timestamp utanför giltigt intervall" -#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 +#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 #, c-format msgid "time out of range" msgstr "time utanför giltigt intervall" -#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 +#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "time-värde utanför giltigt område: %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3455 utils/adt/timestamp.c:3482 -#: utils/adt/timestamp.c:3513 +#: utils/adt/date.c:2020 +#, c-format +msgid "cannot convert infinite interval to time" +msgstr "kan inte konvertera oändligt intervall till time" + +#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#, c-format +msgid "cannot add infinite interval to time" +msgstr "kan inte addera oändligt intervall till time" + +#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#, c-format +msgid "cannot subtract infinite interval from time" +msgstr "kan inte subtrahera oändligt intervall från time" + +#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 +#: utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2595 +#: utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 +#: utils/adt/timestamp.c:3888 #, c-format msgid "invalid preceding or following size in window function" msgstr "ogiltig föregående eller efterföljande storlek i fönsterfunktion" -#: utils/adt/date.c:2351 +#: utils/adt/date.c:2360 #, c-format msgid "time zone displacement out of range" msgstr "tidszonförskjutning utanför giltigt intervall" -#: utils/adt/date.c:3110 utils/adt/timestamp.c:5506 utils/adt/timestamp.c:5736 +#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#, c-format +msgid "interval time zone \"%s\" must be finite" +msgstr "intervalltidszonen \"%s\" måste vara ändlig" + +#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "intervalltidszonen \"%s\" kan inte inkludera månader eller år" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 +#: utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 #, c-format msgid "time zone \"%s\" not recognized" msgstr "tidszon \"%s\" känns inte igen" -#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 +#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "datum/tid-värde utanför giltigt område: \"%s\"" -#: utils/adt/datetime.c:3985 +#: utils/adt/datetime.c:4110 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "Du kanske behöver en annan inställning av variabeln \"datestyle\"." -#: utils/adt/datetime.c:3990 +#: utils/adt/datetime.c:4115 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "intervall-värde utanför giltigt område: \"%s\"" -#: utils/adt/datetime.c:3996 +#: utils/adt/datetime.c:4121 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "tidszonförskjutning itanför sitt intervall: \"%s\"" -#: utils/adt/datetime.c:4010 +#: utils/adt/datetime.c:4135 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "Detta tidszonsnamn finns i konfigurationsfilen för tidszonsförkortning \"%s\"." @@ -24039,22 +25046,22 @@ msgstr "Detta tidszonsnamn finns i konfigurationsfilen för tidszonsförkortning msgid "invalid Datum pointer" msgstr "ogiltigt Datum-pekare" -#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:840 #, c-format msgid "invalid size: \"%s\"" msgstr "ogiltig storlek: \"%s\"" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:841 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Ogiltig storleksenhet: \"%s\"." -#: utils/adt/dbsize.c:839 +#: utils/adt/dbsize.c:842 #, c-format msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." msgstr "Giltiga enheter är \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\" och \"PB\"." -#: utils/adt/domains.c:92 +#: utils/adt/domains.c:95 #, c-format msgid "type %s is not a domain" msgstr "typen %s är inte en domän" @@ -24136,353 +25143,348 @@ msgstr "kunde inte bestämma den verkliga enum-typen" msgid "enum %s contains no values" msgstr "enum %s innehåller inga värden" -#: utils/adt/float.c:89 +#: utils/adt/float.c:83 #, c-format msgid "value out of range: overflow" msgstr "värde utanför giltigt intervall: overflow" -#: utils/adt/float.c:97 +#: utils/adt/float.c:91 #, c-format msgid "value out of range: underflow" msgstr "värde utanför giltigt intervall: underflow" -#: utils/adt/float.c:286 +#: utils/adt/float.c:280 #, c-format msgid "\"%s\" is out of range for type real" msgstr "\"%s\" är utanför giltigt intervall för typen real" -#: utils/adt/float.c:488 +#: utils/adt/float.c:482 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "\"%s\" är utanför giltigt intervall för typen double precision" -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1277 utils/adt/numeric.c:4593 utils/adt/numeric.c:4598 #, c-format msgid "smallint out of range" msgstr "smallint utanför sitt intervall" -#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 +#: utils/adt/float.c:1447 utils/adt/numeric.c:3709 utils/adt/numeric.c:10112 #, c-format msgid "cannot take square root of a negative number" msgstr "kan inte ta kvadratroten av ett negativt tal" -#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 +#: utils/adt/float.c:1515 utils/adt/numeric.c:3997 utils/adt/numeric.c:4109 #, 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:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 +#: utils/adt/float.c:1519 utils/adt/numeric.c:4001 utils/adt/numeric.c:11003 #, 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:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3909 +#: utils/adt/numeric.c:10783 #, c-format msgid "cannot take logarithm of zero" msgstr "kan inte ta logartimen av noll" -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3847 +#: utils/adt/numeric.c:3904 utils/adt/numeric.c:10787 #, c-format msgid "cannot take logarithm of a negative number" msgstr "kan inte ta logaritmen av ett negativt tal" -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 +#: utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 +#: utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 +#: utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 +#: utils/adt/float.c:2696 utils/adt/float.c:2720 #, c-format msgid "input is out of range" msgstr "indata är utanför giltigt intervall" -#: utils/adt/float.c:2867 -#, c-format -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:4095 utils/adt/numeric.c:1841 +#: utils/adt/float.c:4000 utils/adt/numeric.c:1857 #, c-format msgid "count must be greater than zero" msgstr "antal måste vara större än noll" -#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 +#: utils/adt/float.c:4005 utils/adt/numeric.c:1868 #, 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" +msgstr "operand, undre gräns och övre gräns kan inte vara NaN" -#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 +#: utils/adt/float.c:4011 utils/adt/numeric.c:1873 #, c-format msgid "lower and upper bounds must be finite" -msgstr "lägre och övre gräns måste vara ändliga" +msgstr "undre och övre gräns måste vara ändliga" -#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 +#: utils/adt/float.c:4077 utils/adt/numeric.c:1887 #, c-format msgid "lower bound cannot equal upper bound" -msgstr "lägre gräns kan inte vara samma som övre gräns" +msgstr "undre gräns kan inte vara samma som övre gräns" -#: utils/adt/formatting.c:519 +#: utils/adt/formatting.c:530 #, c-format msgid "invalid format specification for an interval value" msgstr "ogiltig formatspecifikation för ett intervallvärdei" -#: utils/adt/formatting.c:520 +#: utils/adt/formatting.c:531 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "Intervaller är inte kopplade till specifika kalenderdatum." -#: utils/adt/formatting.c:1150 +#: utils/adt/formatting.c:1161 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\" måste vara det sista mönstret som används" -#: utils/adt/formatting.c:1158 +#: utils/adt/formatting.c:1169 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\" måste vara före \"PR\"" -#: utils/adt/formatting.c:1174 +#: utils/adt/formatting.c:1185 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\" måste vara före \"PR\"" -#: utils/adt/formatting.c:1201 +#: utils/adt/formatting.c:1212 #, c-format msgid "multiple decimal points" msgstr "multipla decimalpunkter" -#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "kan inte använda \"V\" ach decimalpunkt tillsammans" -#: utils/adt/formatting.c:1217 +#: utils/adt/formatting.c:1228 #, c-format msgid "cannot use \"S\" twice" msgstr "kan inte använda \"S\" två gånger" -#: utils/adt/formatting.c:1221 +#: utils/adt/formatting.c:1232 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "kan inte använda \"S\" och \"PL\"/\"MI\"/\"SG\"/\"PR\" tillsammans" -#: utils/adt/formatting.c:1241 +#: utils/adt/formatting.c:1252 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "kan inte använda \"S\" och \"MI\" tillsammans." -#: utils/adt/formatting.c:1251 +#: utils/adt/formatting.c:1262 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "kan inte använda \"S\" och \"PL\" tillsammans." -#: utils/adt/formatting.c:1261 +#: utils/adt/formatting.c:1272 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "kan inte använda \"S\" och \"SG\" tillsammans." -#: utils/adt/formatting.c:1270 +#: utils/adt/formatting.c:1281 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "kan inte använda \"PR\" och \"S\"/\"PL\"/\"MI\"/\"SG\" tillsammans." -#: utils/adt/formatting.c:1296 +#: utils/adt/formatting.c:1307 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "kan inte använda \"EEEE\" två gånger" -#: utils/adt/formatting.c:1302 +#: utils/adt/formatting.c:1313 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\" är inkompatibel med andra format" -#: utils/adt/formatting.c:1303 +#: utils/adt/formatting.c:1314 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "\"EEEE\" får bara användas tillsammans med siffror- och decimalpunkts-mönster." -#: utils/adt/formatting.c:1387 +#: utils/adt/formatting.c:1398 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "ogiltigt formatseparator för datetime: \"%s\"" -#: utils/adt/formatting.c:1514 +#: utils/adt/formatting.c:1525 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\" är inte ett nummer" -#: utils/adt/formatting.c:1592 +#: utils/adt/formatting.c:1603 #, c-format msgid "case conversion failed: %s" msgstr "case-konvertering misslyckades: %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 +#: utils/adt/formatting.c:1989 #, c-format msgid "could not determine which collation to use for %s function" msgstr "kunde inte bestämma jämförelse (collation) för funktionen %s" -#: utils/adt/formatting.c:2274 +#: utils/adt/formatting.c:2410 #, c-format msgid "invalid combination of date conventions" msgstr "ogiltig kombination av datumkonventioner" -#: utils/adt/formatting.c:2275 +#: utils/adt/formatting.c:2411 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "Blanda inte datumkonventionerna Gregoriansk och ISO-veckor i formatteringsmall." -#: utils/adt/formatting.c:2297 +#: utils/adt/formatting.c:2433 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "värden för \"%s\" i formatsträng står i konflikt med varandra" -#: utils/adt/formatting.c:2299 +#: utils/adt/formatting.c:2435 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "Detta värde motsäger en tidigare inställning för samma fälttyp." -#: utils/adt/formatting.c:2366 +#: utils/adt/formatting.c:2502 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "källsträngen är för kort för formatfält \"%s\"" -#: utils/adt/formatting.c:2368 +#: utils/adt/formatting.c:2504 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "Fältet kräver %d tecken men bara %d återstår." -#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 +#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "Om din källsträng inte är av fast längd så testa med modifieraren \"FM\"." -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 +#: utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "ogiltigt värde \"%s\" för \"%s\"" -#: utils/adt/formatting.c:2382 +#: utils/adt/formatting.c:2518 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "Fältet kräver %d tecken men bara %d kunde parsas." -#: utils/adt/formatting.c:2395 +#: utils/adt/formatting.c:2531 #, c-format msgid "Value must be an integer." msgstr "Värdet måste vara ett heltal." -#: utils/adt/formatting.c:2400 +#: utils/adt/formatting.c:2536 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "värdet för \"%s\" i källsträng är utanför giltigt intervall" -#: utils/adt/formatting.c:2402 +#: utils/adt/formatting.c:2538 #, c-format msgid "Value must be in the range %d to %d." msgstr "Värdet måste vara i intervallet %d till %d." -#: utils/adt/formatting.c:2616 +#: utils/adt/formatting.c:2752 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "Det givna värdet matchar inget av de tillåtna värdena för detta fält." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 +#: utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 +#: utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 +#: utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 +#: utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 +#: utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 #, c-format msgid "localized string format value too long" msgstr "lokaliserat strängformatvärde är för långt" -#: utils/adt/formatting.c:3322 +#: utils/adt/formatting.c:3458 #, c-format msgid "unmatched format separator \"%c\"" msgstr "ej matchande formatteringsseparator \"%c\"" -#: utils/adt/formatting.c:3383 +#: utils/adt/formatting.c:3519 #, c-format msgid "unmatched format character \"%s\"" msgstr "ej matchande formatteringstecken \"%s\"" -#: utils/adt/formatting.c:3491 +#: utils/adt/formatting.c:3652 #, c-format -msgid "formatting field \"%s\" is only supported in to_char" -msgstr "formateringsfält \"%s\" stöds bara i to_char" +msgid "Time zone abbreviation is not recognized." +msgstr "Känner inte igen förkortning för tidszon." -#: utils/adt/formatting.c:3665 +#: utils/adt/formatting.c:3853 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "ogiltig indatasträng för \"Y,YYY\"" -#: utils/adt/formatting.c:3754 +#: utils/adt/formatting.c:3942 #, 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:3762 +#: utils/adt/formatting.c:3950 #, 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:4319 +#: utils/adt/formatting.c:4494 #, 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:4325 +#: utils/adt/formatting.c:4500 #, c-format msgid "timestamptz out of range" msgstr "timestamptz utanför giltigt intervall" -#: utils/adt/formatting.c:4353 +#: utils/adt/formatting.c:4528 #, c-format msgid "datetime format is zoned but not timed" msgstr "datetime-format har zon men inte tid" -#: utils/adt/formatting.c:4411 +#: utils/adt/formatting.c:4577 #, 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:4417 +#: utils/adt/formatting.c:4583 #, c-format msgid "timetz out of range" msgstr "timetz utanför giltigt intervall" -#: utils/adt/formatting.c:4443 +#: utils/adt/formatting.c:4609 #, c-format msgid "datetime format is not dated and not timed" msgstr "datetime-format har inte datum och inte tid" -#: utils/adt/formatting.c:4575 +#: utils/adt/formatting.c:4786 #, 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:4577 +#: utils/adt/formatting.c:4788 #, 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:4689 +#: utils/adt/formatting.c:4900 #, 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:5621 +#: utils/adt/formatting.c:5852 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" stöds inte för indata" -#: utils/adt/formatting.c:5633 +#: utils/adt/formatting.c:5864 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" stöds inte för indata" @@ -24514,12 +25516,7 @@ msgstr "kunde inte söka (seek) i fil \"%s\": %m" msgid "file length too large" msgstr "fillängd är för stor" -#: utils/adt/genfile.c:248 -#, c-format -msgid "must be superuser to read files with adminpack 1.0" -msgstr "måste vara superuser för att läsa filer med adminpack 1.0" - -#: utils/adt/genfile.c:702 +#: utils/adt/genfile.c:656 #, c-format msgid "tablespace with OID %u does not exist" msgstr "tabellutrymme med OID %u finns inte" @@ -24575,555 +25572,640 @@ msgstr "måste efterfråga minst 2 punkter" msgid "invalid int2vector data" msgstr "ogiltig int2vector-data" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5797 utils/adt/timestamp.c:5879 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1765 +#: utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 #, c-format msgid "step size cannot equal zero" msgstr "stegstorleken kan inte vara noll" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 +#: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 +#: utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 +#: utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 +#: utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 +#: utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 +#: utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 +#: utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 +#: utils/adt/int8.c:1055 utils/adt/int8.c:1069 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 +#: utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4542 +#: utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint utanför sitt intervall" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1360 #, c-format msgid "OID out of range" msgstr "OID utanför sitt intervall" -#: utils/adt/json.c:320 utils/adt/jsonb.c:781 +#: utils/adt/json.c:202 utils/adt/jsonb.c:664 #, c-format 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:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "kunde inte lista ut datatypen för argument %d" -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1067 utils/adt/json.c:1266 utils/adt/json.c:1449 +#: utils/adt/json.c:1527 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "null-värde tillåts inte som objektnyckel" -#: utils/adt/json.c:1189 utils/adt/json.c:1352 +#: utils/adt/json.c:1117 utils/adt/json.c:1288 #, c-format msgid "duplicate JSON object key value: %s" msgstr "duplicerat nyckelvärde i JSON objekt: %s" -#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 +#: utils/adt/json.c:1226 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "argumentlistan måste ha ett jämt antal element" #. translator: %s is a SQL function name -#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 +#: utils/adt/json.c:1228 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "Argumenten till %s måste bestå av varannan nyckel och varannat värde." -#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 +#: utils/adt/json.c:1427 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "array:en måste ha två kolumner" -#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 +#: utils/adt/json.c:1516 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "array-dimensionerna stämmer inte" -#: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 +#: utils/adt/json.c:1702 utils/adt/jsonb_util.c:1956 #, c-format msgid "duplicate JSON object key value" msgstr "duplicerat nyckelvärde i JSON objekt" -#: utils/adt/jsonb.c:294 +#: utils/adt/jsonb.c:282 #, c-format msgid "string too long to represent as jsonb string" msgstr "strängen är för lång för att representeras som en jsonb-sträng" -#: utils/adt/jsonb.c:295 +#: utils/adt/jsonb.c:283 #, c-format msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "På grund av en implementationsbegränsning så kan jsonb-strängar inte överstiga %d byte." -#: utils/adt/jsonb.c:1252 +#: utils/adt/jsonb.c:1153 #, c-format msgid "argument %d: key must not be null" msgstr "argument %d: nyckeln får inte vara null" -#: utils/adt/jsonb.c:1843 +#: utils/adt/jsonb.c:1744 #, c-format msgid "field name must not be null" msgstr "fältnamnet får inte vara null" -#: utils/adt/jsonb.c:1905 +#: utils/adt/jsonb.c:1806 #, c-format msgid "object keys must be strings" msgstr "objektnycklar måste vara strängar" -#: utils/adt/jsonb.c:2116 +#: utils/adt/jsonb.c:2017 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "kan inte typomvandla jsonb-null till type %s" -#: utils/adt/jsonb.c:2117 +#: utils/adt/jsonb.c:2018 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "kan inte typomvandla jsonb-sträng till typ %s" -#: utils/adt/jsonb.c:2118 +#: utils/adt/jsonb.c:2019 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "kan inte typomvandla jsonb-numeric till typ %s" -#: utils/adt/jsonb.c:2119 +#: utils/adt/jsonb.c:2020 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "kan inte typomvandla jsonb-boolean till typ %s" -#: utils/adt/jsonb.c:2120 +#: utils/adt/jsonb.c:2021 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "kan inte typomvandla jsonb-array till typ %s" -#: utils/adt/jsonb.c:2121 +#: utils/adt/jsonb.c:2022 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "kan inte typomvandla jsonb-objekt till typ %s" -#: utils/adt/jsonb.c:2122 +#: utils/adt/jsonb.c:2023 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "kan inte typomvandla jsonb-array eller objekt till typ %s" -#: utils/adt/jsonb_util.c:758 +#: utils/adt/jsonb_util.c:756 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "antalet jsonb-objektpar överskrider det maximalt tillåtna (%zu)" -#: utils/adt/jsonb_util.c:799 +#: utils/adt/jsonb_util.c:797 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "antalet jsonb-array-element överskrider det maximalt tillåtna (%zu)" -#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 +#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "total storleken på element i jsonb-array överskrider maximala %d byte" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 +#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 +#: utils/adt/jsonb_util.c:1807 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "total storleken på element i jsonb-objekt överskrider maximala %d byte" -#: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 +#: utils/adt/jsonbsubs.c:67 utils/adt/jsonbsubs.c:148 #, c-format msgid "jsonb subscript does not support slices" msgstr "array-index-syntax för jsonb stöder inte slices" -#: utils/adt/jsonbsubs.c:103 utils/adt/jsonbsubs.c:117 +#: utils/adt/jsonbsubs.c:100 utils/adt/jsonbsubs.c:114 #, c-format msgid "subscript type %s is not supported" msgstr "array-index-typ %s stöds inte" -#: utils/adt/jsonbsubs.c:104 +#: utils/adt/jsonbsubs.c:101 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." msgstr "array-index för jsonb måste vara konverterbar till en av typerna integer eller text." -#: utils/adt/jsonbsubs.c:118 +#: utils/adt/jsonbsubs.c:115 #, c-format msgid "jsonb subscript must be coercible to either integer or text." msgstr "array-index för jsonb måste vara konverterbar till antingen integer eller text." -#: utils/adt/jsonbsubs.c:139 +#: utils/adt/jsonbsubs.c:136 #, c-format msgid "jsonb subscript must have text type" msgstr "array-index för jsonb måste ha typen text" -#: utils/adt/jsonbsubs.c:207 +#: utils/adt/jsonbsubs.c:204 #, c-format msgid "jsonb subscript in assignment must not be null" msgstr "array-index för jsonb i tilldelning kan inte vara null" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:583 utils/adt/jsonfuncs.c:830 +#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:3015 +#: utils/adt/jsonfuncs.c:3948 utils/adt/jsonfuncs.c:4295 #, c-format msgid "cannot call %s on a scalar" msgstr "kan inte anropa %s på en skalär" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:588 utils/adt/jsonfuncs.c:815 +#: utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3935 #, c-format msgid "cannot call %s on an array" msgstr "kan inte anropa %s på en array" -#: utils/adt/jsonfuncs.c:713 +#: utils/adt/jsonfuncs.c:724 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "JSON-data, rad %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 +#: utils/adt/jsonfuncs.c:1883 utils/adt/jsonfuncs.c:1920 #, c-format msgid "cannot get array length of a scalar" msgstr "kan inte hämta array-längd på skalär" -#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 +#: utils/adt/jsonfuncs.c:1887 utils/adt/jsonfuncs.c:1906 #, c-format msgid "cannot get array length of a non-array" msgstr "kan inte hämta array-längd på icke-array" -#: utils/adt/jsonfuncs.c:1978 +#: utils/adt/jsonfuncs.c:1986 #, c-format msgid "cannot call %s on a non-object" msgstr "kan inte anropa %s på ett icke-objekt" -#: utils/adt/jsonfuncs.c:2166 +#: utils/adt/jsonfuncs.c:2174 #, c-format msgid "cannot deconstruct an array as an object" msgstr "kan inte dekonstruera en array som ett objekt" -#: utils/adt/jsonfuncs.c:2180 +#: utils/adt/jsonfuncs.c:2188 #, c-format msgid "cannot deconstruct a scalar" msgstr "kan inte dekonstruera en skalär" -#: utils/adt/jsonfuncs.c:2225 +#: utils/adt/jsonfuncs.c:2233 #, c-format msgid "cannot extract elements from a scalar" msgstr "kan inte extrahera element från en skalär" -#: utils/adt/jsonfuncs.c:2229 +#: utils/adt/jsonfuncs.c:2237 #, c-format msgid "cannot extract elements from an object" msgstr "kan inte extrahera element från ett objekt" -#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 +#: utils/adt/jsonfuncs.c:2424 utils/adt/jsonfuncs.c:4173 #, c-format msgid "cannot call %s on a non-array" msgstr "kan inte anropa %s på icke-array" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2515 utils/adt/jsonfuncs.c:2520 +#: utils/adt/jsonfuncs.c:2538 utils/adt/jsonfuncs.c:2544 #, c-format msgid "expected JSON array" msgstr "förväntade JSON-array" -#: utils/adt/jsonfuncs.c:2489 +#: utils/adt/jsonfuncs.c:2516 #, c-format msgid "See the value of key \"%s\"." msgstr "Se värdetypen för nyckel \"%s\"" -#: utils/adt/jsonfuncs.c:2511 +#: utils/adt/jsonfuncs.c:2539 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "Se array-element %s för nyckel \"%s\"." -#: utils/adt/jsonfuncs.c:2517 +#: utils/adt/jsonfuncs.c:2545 #, c-format msgid "See the array element %s." msgstr "Se array-element %s." -#: utils/adt/jsonfuncs.c:2552 +#: utils/adt/jsonfuncs.c:2597 #, c-format msgid "malformed JSON array" msgstr "felaktig JSON-array" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3389 +#: utils/adt/jsonfuncs.c:3647 #, c-format msgid "first argument of %s must be a row type" msgstr "första argumentet till %s måste vara en radtyp" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3413 +#: utils/adt/jsonfuncs.c:3671 #, c-format msgid "could not determine row type for result of %s" msgstr "kunde inte lista ut radtyp för resultat av %s" -#: utils/adt/jsonfuncs.c:3415 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "Ange en icke-null record som argument eller anropa funktionen i FROM-klausulen med en kolumndefinitionslista." -#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4059 utils/fmgr/funcapi.c:94 #, 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" -#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 +#: utils/adt/jsonfuncs.c:4190 utils/adt/jsonfuncs.c:4274 #, c-format msgid "argument of %s must be an array of objects" msgstr "argumentet till %s måste vara en array med objekt" -#: utils/adt/jsonfuncs.c:3946 +#: utils/adt/jsonfuncs.c:4223 #, c-format msgid "cannot call %s on an object" msgstr "kan inte anropa %s på ett objekt" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4656 utils/adt/jsonfuncs.c:4715 +#: utils/adt/jsonfuncs.c:4795 #, c-format msgid "cannot delete from scalar" msgstr "kan inte radera från en skalär" -#: utils/adt/jsonfuncs.c:4524 +#: utils/adt/jsonfuncs.c:4800 #, c-format msgid "cannot delete from object using integer index" msgstr "kan inte radera från objekt genom att använda heltalsindex" -#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 +#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:5027 #, c-format msgid "cannot set path in scalar" msgstr "kan inte sätta sökväg i skalär" -#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 +#: utils/adt/jsonfuncs.c:4909 utils/adt/jsonfuncs.c:4951 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "null_value_treatment måste vara \"delete_key\", \"return_target\", \"use_json_null\" eller \"raise_exception\"" -#: utils/adt/jsonfuncs.c:4646 +#: utils/adt/jsonfuncs.c:4922 #, c-format msgid "JSON value must not be null" msgstr "JSON-värde får inte vara null" -#: utils/adt/jsonfuncs.c:4647 +#: utils/adt/jsonfuncs.c:4923 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "Avbrott utlöstes då null_value_treatment är \"raise_exception\"." -#: utils/adt/jsonfuncs.c:4648 +#: utils/adt/jsonfuncs.c:4924 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "För att undvika detta så ändra null_value_treatment-argumentet eller se till att ett SQL-NULL inte skickas." -#: utils/adt/jsonfuncs.c:4703 +#: utils/adt/jsonfuncs.c:4979 #, c-format msgid "cannot delete path in scalar" msgstr "kan inte radera sökväg i skalär" -#: utils/adt/jsonfuncs.c:4917 +#: utils/adt/jsonfuncs.c:5193 #, c-format msgid "path element at position %d is null" msgstr "sökvägselement vid position %d är null" -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:5212 utils/adt/jsonfuncs.c:5243 +#: utils/adt/jsonfuncs.c:5316 #, c-format msgid "cannot replace existing key" msgstr "kan inte ersätta befintlig nyckel" -#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 +#: utils/adt/jsonfuncs.c:5213 utils/adt/jsonfuncs.c:5244 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "Sökvägen förväntar sig att nyckeln är ett sammansatt objekt men det är ett skalärt värde." -#: utils/adt/jsonfuncs.c:5041 +#: utils/adt/jsonfuncs.c:5317 #, 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:5145 +#: utils/adt/jsonfuncs.c:5421 #, 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:5162 +#: utils/adt/jsonfuncs.c:5438 #, c-format msgid "path element at position %d is out of range: %d" msgstr "sökvägselement vid position %d är utanför giltigt intervall: %d\"" -#: utils/adt/jsonfuncs.c:5314 +#: utils/adt/jsonfuncs.c:5590 #, 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:5321 +#: utils/adt/jsonfuncs.c:5597 #, c-format msgid "flag array element is not a string" msgstr "flaggelement i arrayen är inte en sträng" -#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 +#: utils/adt/jsonfuncs.c:5598 utils/adt/jsonfuncs.c:5620 #, 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:5342 +#: utils/adt/jsonfuncs.c:5618 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "fel flagga i flagg-array: \"%s\"" -#: utils/adt/jsonpath.c:382 +#: utils/adt/jsonpath.c:389 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ är inte tillåten i rotuttryck" -#: utils/adt/jsonpath.c:388 +#: utils/adt/jsonpath.c:395 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST tillåts bara i array-indexeringar" -#: utils/adt/jsonpath_exec.c:361 +#: utils/adt/jsonpath_exec.c:491 #, c-format msgid "single boolean result is expected" msgstr "förväntade ett booleanskt resultat" -#: utils/adt/jsonpath_exec.c:557 +#: utils/adt/jsonpath_exec.c:851 #, c-format -msgid "\"vars\" argument is not an object" -msgstr "\"variabel\"-argumentet är inte ett objekt" +msgid "jsonpath wildcard array accessor can only be applied to an array" +msgstr "jsonpaths arrayväljare med wildcard kan bara applcieras på en array" -#: utils/adt/jsonpath_exec.c:558 +#: utils/adt/jsonpath_exec.c:874 #, c-format -msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "Jsonpath-parametrar skall kodas som nyckel-värde-par av \"variabel\"-objekt." +msgid "jsonpath wildcard member accessor can only be applied to an object" +msgstr "jsonpaths medlemsväljare med wildcard kan bara appliceras på ett objekt" + +#: utils/adt/jsonpath_exec.c:923 +#, c-format +msgid "jsonpath array subscript is out of bounds" +msgstr "array-index för jsonpath är utanför giltigt område" + +#: utils/adt/jsonpath_exec.c:980 +#, c-format +msgid "jsonpath array accessor can only be applied to an array" +msgstr "jsonpaths arrayväljare kan bara appliceras på en array" -#: utils/adt/jsonpath_exec.c:675 +#: utils/adt/jsonpath_exec.c:1044 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "JSON-objekt innehåller inte nyckeln \"%s\"" -#: utils/adt/jsonpath_exec.c:687 +#: utils/adt/jsonpath_exec.c:1056 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "jsonpaths medlemsväljare kan bara appliceras på ett objekt" -#: utils/adt/jsonpath_exec.c:716 +#: utils/adt/jsonpath_exec.c:1114 #, c-format -msgid "jsonpath wildcard array accessor can only be applied to an array" -msgstr "jsonpaths arrayväljare med wildcard kan bara applcieras på en array" +msgid "jsonpath item method .%s() can only be applied to an array" +msgstr "jsonpaths elementmetod .%s() kan bara applicerars på en array" -#: utils/adt/jsonpath_exec.c:764 +#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 #, c-format -msgid "jsonpath array subscript is out of bounds" -msgstr "array-index för jsonpath är utanför giltigt område" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type double precision" +msgstr "argumentet \"%s\" till jsonpaths elementmetod .%s() är ogiltig för typen double precision" -#: utils/adt/jsonpath_exec.c:821 +#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 +#: utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 #, c-format -msgid "jsonpath array accessor can only be applied to an array" -msgstr "jsonpaths arrayväljare kan bara appliceras på en array" +msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" +msgstr "NaN eller Infinity tillåts inte för jsonpaths elementmetod .%s()" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 +#: utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 #, c-format -msgid "jsonpath wildcard member accessor can only be applied to an object" -msgstr "jsonpaths medlemsväljare med wildcard kan bara appliceras på ett objekt" +msgid "jsonpath item method .%s() can only be applied to a string or numeric value" +msgstr "jsonpaths elementmetod .%s() kan bara applicerars på en sträng eller ett numeriskt värde" -#: utils/adt/jsonpath_exec.c:1007 +#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 #, c-format -msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "jsonpaths elementmetod .%s() lkan bara applicerar på en array" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" +msgstr "argumentet \"%s\" till jsonpaths elementmetod .%s() är ogiltig för typen bigint" -#: utils/adt/jsonpath_exec.c:1060 +#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 #, c-format -msgid "numeric argument of jsonpath item method .%s() is out of range for type double precision" -msgstr "numeriskt argument till jsonpaths elementmetod .%s() är utanför giltigt intervall för typen double precision" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" +msgstr "argumentet \"%s\" till jsonpaths elementmetod .%s() är ogiltig för typen boolean" -#: utils/adt/jsonpath_exec.c:1081 +#: utils/adt/jsonpath_exec.c:1386 #, c-format -msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number" -msgstr "strängargument till jsonpaths elementmetod .%s() är inte en giltig representation av ett double precision-nummer" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, or numeric value" +msgstr "jsonpaths elementmetod .%s() kan bara appliceras på en boolean, sträng eller ett numeriskt värde" -#: utils/adt/jsonpath_exec.c:1094 +#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 #, c-format -msgid "jsonpath item method .%s() can only be applied to a string or numeric value" -msgstr "jsonpaths elementmetod .%s() kan bara applicerar på en sträng eller ett numeriskt värde" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" +msgstr "argumentet \"%s\" till jsonpaths elementmetod .%s() är ogiltig för typen numeric" + +#: utils/adt/jsonpath_exec.c:1487 +#, c-format +msgid "precision of jsonpath item method .%s() is out of range for type integer" +msgstr "precisionen för jsonpaths elementmetod .%s() är utanför giltigt intervall för typen integer" + +#: utils/adt/jsonpath_exec.c:1501 +#, c-format +msgid "scale of jsonpath item method .%s() is out of range for type integer" +msgstr "skalan för jsonpaths elementmetod .%s() är utanför giltigt intervall för typen integer" + +#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 +#, c-format +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type integer" +msgstr "argumentet \"%s\" till jsonpaths elementmetod .%s() är ogiltig för typen integer" + +#: utils/adt/jsonpath_exec.c:1648 +#, c-format +msgid "jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value" +msgstr "jsonpaths elementmetod .%s() kan bara applicerars på en boolean, sträng eller ett datetime-värde" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:2137 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "vänster operand på jsonpath-operator %s är inte ett ensamt numeriskt värde" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:2144 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "höger operand på jsonpath-operator %s är inte ett ensamt numeriskt värde" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:2212 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "operand till unär jsonpath-operator %s är inte ett numeriskt värde" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:2311 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "jsonpaths elementmetod .%s() kan bara appliceras på ett numeriskt värde" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:2357 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" -msgstr "jsonpaths elementmetod .%s() lkan bara applicerar på en sträng" +msgstr "jsonpaths elementmetod .%s() kan bara appliceras på en sträng" + +#: utils/adt/jsonpath_exec.c:2450 +#, c-format +msgid "time precision of jsonpath item method .%s() is out of range for type integer" +msgstr "tidsprecisionen till jsonpaths elementmetod .%s() är utanför giltigt intervall för typen integer" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:2484 utils/adt/jsonpath_exec.c:2490 +#: utils/adt/jsonpath_exec.c:2517 utils/adt/jsonpath_exec.c:2545 +#: utils/adt/jsonpath_exec.c:2598 utils/adt/jsonpath_exec.c:2649 +#: utils/adt/jsonpath_exec.c:2720 #, c-format -msgid "datetime format is not recognized: \"%s\"" -msgstr "datetime-format känns inte igen: \"%s\"" +msgid "%s format is not recognized: \"%s\"" +msgstr "%s-format känns inte igen: \"%s\"" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:2486 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Använd ett datetime-mallargument för att ange indataformatet." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:2679 utils/adt/jsonpath_exec.c:2760 +#, c-format +msgid "time precision of jsonpath item method .%s() is invalid" +msgstr "tidsprecisionen till jsonpaths elementmetod .%s() är ogiltigt" + +#: utils/adt/jsonpath_exec.c:2840 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "elementmetod .%s() för jsonpath kan bara appliceras på ett objekt" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:3124 +#, c-format +msgid "could not convert value of type %s to jsonpath" +msgstr "kunde inte konvertera värde av typ %s till jsonpath" + +#: utils/adt/jsonpath_exec.c:3158 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "kunde inte hitta jsonpath-variabel \"%s\"" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:3211 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "\"variabel\"-argumentet är inte ett objekt" + +#: utils/adt/jsonpath_exec.c:3212 +#, c-format +msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "Jsonpath-parametrar skall kodas som nyckel-värde-par av \"variabel\"-objekt." + +#: utils/adt/jsonpath_exec.c:3475 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "array-index för jsonpath är inte ett ensamt numeriskt värde" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:3487 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "array-index för jsonpath är utanför giltigt interval för integer" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:3671 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "kan inte konvertera värde från %s till %s utan att använda tidszon" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:3673 #, c-format msgid "Use *_tz() function for time zone support." msgstr "ANvända *_tz()-funktioner som stöder tidszon." +#: utils/adt/jsonpath_exec.c:3981 +#, c-format +msgid "JSON path expression for column \"%s\" must return single item when no wrapper is requested" +msgstr "Uttryck för JSON-sökväg för kolumn \"%s\" skall returnera exakt ett värde när wrapper inte efterfrågas" + +#: utils/adt/jsonpath_exec.c:3983 utils/adt/jsonpath_exec.c:3988 +#, c-format +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." +msgstr "Använd klausulen WITH WRAPPER för att packa SQL/JSON-poster in i en array." + +#: utils/adt/jsonpath_exec.c:3987 +#, c-format +msgid "JSON path expression in JSON_QUERY must return single item when no wrapper is requested" +msgstr "Uttryck för JSON-sökväg i JSON_QUERY skall returnera exakt ett värde när wrapper inte efterfrågas" + +#: utils/adt/jsonpath_exec.c:4045 utils/adt/jsonpath_exec.c:4069 +#, c-format +msgid "JSON path expression for column \"%s\" must return single scalar item" +msgstr "Uttryck för JSON-sökväg för kolumn \"%s\" skall returnera exakt ett skalärt värde" + +#: utils/adt/jsonpath_exec.c:4050 utils/adt/jsonpath_exec.c:4074 +#, c-format +msgid "JSON path expression in JSON_VALUE must return single scalar item" +msgstr "Uttryck för JSON-sökväg i JSON_VALUE skall returnera exakt ett skalärt värde" + #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "levenshtein-argument överskrider maximala längden på %d tecken" -#: utils/adt/like.c:161 +#: utils/adt/like.c:159 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "ickedeterministiska jämförelser (collation) stöds inte för LIKE" -#: utils/adt/like.c:190 utils/adt/like_support.c:1024 +#: utils/adt/like.c:188 utils/adt/like_support.c:1023 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "kunde inte bestämma vilken jämförelse (collation) som skall användas för ILIKE" -#: utils/adt/like.c:202 +#: utils/adt/like.c:200 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "ickedeterministiska jämförelser (collation) stöds inte för ILIKE" @@ -25133,22 +26215,22 @@ msgstr "ickedeterministiska jämförelser (collation) stöds inte för ILIKE" msgid "LIKE pattern must not end with escape character" msgstr "LIKE-mönster för inte sluta med ett escape-tecken" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "ogiltig escape-sträng" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "Escape-sträng måste vara tom eller ett tecken." -#: utils/adt/like_support.c:1014 +#: utils/adt/like_support.c:1013 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "matchning utan skiftlägeskänslighet stöds inte för typen bytea" -#: utils/adt/like_support.c:1115 +#: utils/adt/like_support.c:1114 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "matching med reguljär-uttryck stöds inte för typen bytea" @@ -25158,17 +26240,17 @@ msgstr "matching med reguljär-uttryck stöds inte för typen bytea" msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "ogiltigt oktet-värde i \"macaddr\"-värde: \"%s\"" -#: utils/adt/mac8.c:554 +#: utils/adt/mac8.c:555 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "macaddr8-data utanför giltigt intervall för att konverteras till macaddr" -#: utils/adt/mac8.c:555 +#: utils/adt/mac8.c:556 #, c-format msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "Bara adresser som har FF och FE som värden i 4:e och 5:e byten från vänster, till exempel xx:xx:xx:ff:fe:xx:xx:xx, är möjliga att konvertera från macaddr8 till macaddr." -#: utils/adt/mcxtfuncs.c:182 +#: utils/adt/mcxtfuncs.c:173 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d är inte en PostgreSQL serverprocess" @@ -25207,70 +26289,70 @@ msgstr "kan vara en enkelt namn" msgid "requires AS" msgstr "kräver AS" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:897 utils/adt/misc.c:911 utils/adt/misc.c:950 +#: utils/adt/misc.c:956 utils/adt/misc.c:962 utils/adt/misc.c:985 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "sträng är inte en giltig identifierare: \"%s\"" -#: utils/adt/misc.c:855 +#: utils/adt/misc.c:899 #, c-format msgid "String has unclosed double quotes." msgstr "Sträng har ej avslutade dubbla citattecken." -#: utils/adt/misc.c:869 +#: utils/adt/misc.c:913 #, c-format msgid "Quoted identifier must not be empty." msgstr "Citerad identifierare får inte vara tom." -#: utils/adt/misc.c:908 +#: utils/adt/misc.c:952 #, c-format msgid "No valid identifier before \".\"." msgstr "Ingen giltig indentifierare innan \".\"." -#: utils/adt/misc.c:914 +#: utils/adt/misc.c:958 #, c-format msgid "No valid identifier after \".\"." msgstr "Ingen giltig identifierare efter \".\"." -#: utils/adt/misc.c:974 +#: utils/adt/misc.c:1018 #, c-format msgid "log format \"%s\" is not supported" msgstr "loggformat \"%s\" stöds inte" -#: utils/adt/misc.c:975 +#: utils/adt/misc.c:1019 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "Loggformat som stöds är \"stderr\", \"csvlog\" och \"jsonlog\"." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:150 utils/adt/multirangetypes.c:163 +#: utils/adt/multirangetypes.c:192 utils/adt/multirangetypes.c:266 +#: utils/adt/multirangetypes.c:290 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "trasig multirange-litteral: \"%s\"" -#: utils/adt/multirangetypes.c:153 +#: utils/adt/multirangetypes.c:152 #, c-format msgid "Missing left brace." msgstr "Saknar vänster krullparentes" -#: utils/adt/multirangetypes.c:195 +#: utils/adt/multirangetypes.c:194 #, c-format msgid "Expected range start." msgstr "Förväntade range-start" -#: utils/adt/multirangetypes.c:269 +#: utils/adt/multirangetypes.c:268 #, c-format msgid "Expected comma or end of multirange." msgstr "Oväntat komma eller slut på multirange." -#: utils/adt/multirangetypes.c:982 +#: utils/adt/multirangetypes.c:981 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "multiranges kan inte skapas från en multidimensionell array" -#: utils/adt/multirangetypes.c:1008 +#: utils/adt/multirangetypes.c:1007 #, c-format msgid "multirange values cannot contain null members" msgstr "multirange-värden kan inte innehålla null-medlemmar" @@ -25349,112 +26431,138 @@ msgstr "resultatet är utanför giltigt intervall" msgid "cannot subtract inet values of different sizes" msgstr "kan inte subtrahera inet-värden av olika storlek" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:793 utils/adt/numeric.c:3659 utils/adt/numeric.c:7216 +#: utils/adt/numeric.c:7419 utils/adt/numeric.c:7891 utils/adt/numeric.c:10586 +#: utils/adt/numeric.c:11061 utils/adt/numeric.c:11155 +#: utils/adt/numeric.c:11290 #, c-format msgid "value overflows numeric format" msgstr "overflow på värde i formatet numeric" -#: utils/adt/numeric.c:1098 +#: utils/adt/numeric.c:1106 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "ogiltigt tecken i externt \"numric\"-värde" -#: utils/adt/numeric.c:1104 +#: utils/adt/numeric.c:1112 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "ogiltig skala i externt \"numeric\"-värde" -#: utils/adt/numeric.c:1113 +#: utils/adt/numeric.c:1121 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "felaktig siffra i externt numeriskt (\"numeric\") värde " -#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 +#: utils/adt/numeric.c:1336 utils/adt/numeric.c:1350 #, 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:1333 +#: utils/adt/numeric.c:1341 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "Skalan %d för NUMERIC måste vara mellan %d och %d" -#: utils/adt/numeric.c:1351 +#: utils/adt/numeric.c:1359 #, c-format msgid "invalid NUMERIC type modifier" msgstr "ogiltig typmodifierare för NUMERIC" -#: utils/adt/numeric.c:1709 +#: utils/adt/numeric.c:1725 #, c-format msgid "start value cannot be NaN" msgstr "startvärde får inte vara NaN" -#: utils/adt/numeric.c:1713 +#: utils/adt/numeric.c:1729 #, c-format msgid "start value cannot be infinity" msgstr "startvärde får inte vara oändligt" -#: utils/adt/numeric.c:1720 +#: utils/adt/numeric.c:1736 #, c-format msgid "stop value cannot be NaN" msgstr "stoppvärde får inte vara NaN" -#: utils/adt/numeric.c:1724 +#: utils/adt/numeric.c:1740 #, c-format msgid "stop value cannot be infinity" msgstr "stoppvärde får inte vara oändligt" -#: utils/adt/numeric.c:1737 +#: utils/adt/numeric.c:1753 #, c-format msgid "step size cannot be NaN" msgstr "stegstorlek får inte vara NaN" -#: utils/adt/numeric.c:1741 +#: utils/adt/numeric.c:1757 #, c-format msgid "step size cannot be infinity" msgstr "stegstorlek får inte vara oändligt" -#: utils/adt/numeric.c:3633 +#: utils/adt/numeric.c:3649 #, c-format msgid "factorial of a negative number is undefined" msgstr "fakultet av ett negativt tal är odefinierat" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4256 +#, c-format +msgid "lower bound cannot be NaN" +msgstr "undre gräns kan inte vara NaN" + +#: utils/adt/numeric.c:4260 +#, c-format +msgid "lower bound cannot be infinity" +msgstr "undre gräns kan inte vara oändlig" + +#: utils/adt/numeric.c:4267 +#, c-format +msgid "upper bound cannot be NaN" +msgstr "övre gräns kan inte vara NaN" + +#: utils/adt/numeric.c:4271 +#, c-format +msgid "upper bound cannot be infinity" +msgstr "övre gräns kan inte vara oändlig" + +#: utils/adt/numeric.c:4432 utils/adt/numeric.c:4520 utils/adt/numeric.c:4580 +#: utils/adt/numeric.c:4776 #, c-format msgid "cannot convert NaN to %s" msgstr "kan inte konvertera NaN till %s" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4436 utils/adt/numeric.c:4524 utils/adt/numeric.c:4584 +#: utils/adt/numeric.c:4780 #, c-format msgid "cannot convert infinity to %s" msgstr "kan inte konvertera oändlighet till %s" -#: utils/adt/numeric.c:4696 +#: utils/adt/numeric.c:4789 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn är utanför giltigt intervall" -#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:7981 utils/adt/numeric.c:8032 #, c-format msgid "numeric field overflow" msgstr "overflow i numeric-fält" -#: utils/adt/numeric.c:7897 +#: utils/adt/numeric.c:7982 #, 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." -#: utils/adt/numeric.c:7948 +#: utils/adt/numeric.c:8033 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "Ett fält med precision %d, skala %d kan inte innehålla ett oändligt värde." -#: utils/adt/oid.c:216 +#: utils/adt/numeric.c:11359 utils/adt/pseudorandomfuncs.c:135 +#: utils/adt/pseudorandomfuncs.c:159 +#, c-format +msgid "lower bound must be less than or equal to upper bound" +msgstr "undre gräns måste vara mindre eller lika med övre gräns" + +#: utils/adt/oid.c:217 #, c-format msgid "invalid oidvector data" msgstr "ogiltig oidvector-data" @@ -25484,306 +26592,317 @@ msgstr "efterfrågat tecken är för stort för kodning: %u" msgid "requested character not valid for encoding: %u" msgstr "efterfrågat tecken är inte giltigt för kodning: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:446 utils/adt/orderedsetaggs.c:551 +#: utils/adt/orderedsetaggs.c:691 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "percentil-värde %g är inte mellan 0 och 1" -#: utils/adt/pg_locale.c:1410 +#: utils/adt/pg_locale.c:326 utils/adt/pg_locale.c:358 +#, c-format +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "lokalnamn \"%s\" innehåller tecken som ej är ASCII" + +#: utils/adt/pg_locale.c:1507 #, c-format msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" msgstr "kunde inte öppna jämförelse för lokal \"%s\" med regler \"%s\": %s" -#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 -#: utils/adt/pg_locale.c:2904 +#: utils/adt/pg_locale.c:1518 utils/adt/pg_locale.c:2992 +#: utils/adt/pg_locale.c:3065 #, c-format msgid "ICU is not supported in this build" msgstr "ICU stöds inte av detta bygge" -#: utils/adt/pg_locale.c:1450 +#: utils/adt/pg_locale.c:1546 #, c-format msgid "could not create locale \"%s\": %m" msgstr "kunde inte skapa locale \"%s\": %m" -#: utils/adt/pg_locale.c:1453 +#: utils/adt/pg_locale.c:1549 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Operativsystemet kunde inte hitta någon lokaldata för lokalnamnet \"%s\"." -#: utils/adt/pg_locale.c:1568 +#: utils/adt/pg_locale.c:1670 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "jämförelser (collations) med olika collate- och ctype-värden stöds inte på denna plattform" -#: utils/adt/pg_locale.c:1577 -#, c-format -msgid "collation provider LIBC is not supported on this platform" -msgstr "leverantören LIBC för jämförelse (collation) stöds inte på denna plattform" - -#: utils/adt/pg_locale.c:1618 +#: utils/adt/pg_locale.c:1717 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "jämförelse (collation) \"%s\" har ingen version men en version har lagrats" -#: utils/adt/pg_locale.c:1624 +#: utils/adt/pg_locale.c:1723 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "jämförelse (collation) \"%s\" har en version som inte matchar" -#: utils/adt/pg_locale.c:1626 +#: utils/adt/pg_locale.c:1725 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "Jämförelsen (collation) i databasen har skapats med version %s men operativsystemet har version %s." -#: utils/adt/pg_locale.c:1629 +#: utils/adt/pg_locale.c:1728 #, c-format 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:1695 +#: utils/adt/pg_locale.c:1772 utils/adt/pg_locale.c:2556 +#: utils/adt/pg_locale.c:2581 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "ogiltigt lokalnamn \"%s\" för inbyggd leverantör" + +#: utils/adt/pg_locale.c:1814 #, c-format msgid "could not load locale \"%s\"" msgstr "kunde inte skapa locale \"%s\"" -#: utils/adt/pg_locale.c:1720 +#: utils/adt/pg_locale.c:1839 #, 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:1776 utils/adt/pg_locale.c:1789 +#: utils/adt/pg_locale.c:1895 utils/adt/pg_locale.c:1908 #, 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/pg_locale.c:1803 +#: utils/adt/pg_locale.c:1920 #, c-format msgid "could not compare Unicode strings: %m" msgstr "kunde inte jämföra Unicode-strängar: %m" -#: utils/adt/pg_locale.c:1984 +#: utils/adt/pg_locale.c:2094 #, c-format msgid "collation failed: %s" msgstr "jämförelse misslyckades: %s" -#: utils/adt/pg_locale.c:2205 utils/adt/pg_locale.c:2237 +#: utils/adt/pg_locale.c:2313 utils/adt/pg_locale.c:2345 #, c-format msgid "sort key generation failed: %s" msgstr "generering av sorteringsnyckel misslyckades: %s" -#: utils/adt/pg_locale.c:2474 +#: utils/adt/pg_locale.c:2635 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "kunde inte härleda språk från lokalen \"%s\": %s" -#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#: utils/adt/pg_locale.c:2656 utils/adt/pg_locale.c:2672 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "kunde inte öppna jämförelse för lokal \"%s\": %s" -#: utils/adt/pg_locale.c:2536 +#: utils/adt/pg_locale.c:2697 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "kodning \"%s\" stöds inte av ICU" -#: utils/adt/pg_locale.c:2543 +#: utils/adt/pg_locale.c:2704 #, 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:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2722 utils/adt/pg_locale.c:2741 +#: utils/adt/pg_locale.c:2797 utils/adt/pg_locale.c:2808 #, c-format msgid "%s failed: %s" msgstr "%s misslyckades: %s" -#: utils/adt/pg_locale.c:2822 +#: utils/adt/pg_locale.c:2983 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "kunde inte konvertera lokalnamn \"%s\" till språktagg: %s" -#: utils/adt/pg_locale.c:2863 +#: utils/adt/pg_locale.c:3024 #, c-format msgid "could not get language from ICU locale \"%s\": %s" msgstr "kunde inte härleda språk från ICU-lokalen \"%s\": %s" -#: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 +#: utils/adt/pg_locale.c:3026 utils/adt/pg_locale.c:3055 #, c-format msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." msgstr "För att stänga av validering av ICU-lokal, sätt parameter \"%s\" till \"%s\"" -#: utils/adt/pg_locale.c:2892 +#: utils/adt/pg_locale.c:3053 #, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" msgstr "ICU-lokalen \"%s\" har ett okänt språk \"%s\"" -#: utils/adt/pg_locale.c:3073 +#: utils/adt/pg_locale.c:3204 #, c-format msgid "invalid multibyte character for locale" msgstr "ogiltigt multibyte-tecken för lokalen" -#: utils/adt/pg_locale.c:3074 +#: utils/adt/pg_locale.c:3205 #, 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." -#: utils/adt/pg_lsn.c:263 +#: utils/adt/pg_lsn.c:262 #, c-format msgid "cannot add NaN to pg_lsn" msgstr "kan inte addera NaN till pg_lsn" -#: utils/adt/pg_lsn.c:297 +#: utils/adt/pg_lsn.c:296 #, c-format msgid "cannot subtract NaN from pg_lsn" msgstr "kan inte subtrahera Nan från pg_lsn" -#: utils/adt/pg_upgrade_support.c:29 +#: utils/adt/pg_upgrade_support.c:39 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "funktionen kan bara anropas när servern är i binärt uppgraderingsläge" -#: utils/adt/pgstatfuncs.c:254 +#: utils/adt/pgstatfuncs.c:252 #, c-format msgid "invalid command name: \"%s\"" msgstr "ogiltigt kommandonamn: \"%s\"" -#: utils/adt/pgstatfuncs.c:1774 +#: utils/adt/pgstatfuncs.c:1739 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "okänt återställningsmål \"%s\"" -#: utils/adt/pgstatfuncs.c:1775 +#: utils/adt/pgstatfuncs.c:1740 #, c-format -msgid "Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or \"wal\"." -msgstr "Målet måste vara \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\" eller \"wal\"." +msgid "Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", or \"wal\"." +msgstr "Målet måste vara \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\" eller \"wal\"." -#: utils/adt/pgstatfuncs.c:1857 +#: utils/adt/pgstatfuncs.c:1822 #, c-format msgid "invalid subscription OID %u" msgstr "ogiltigt prenumerations-OID: %u" -#: utils/adt/pseudotypes.c:58 utils/adt/pseudotypes.c:92 +#: utils/adt/pseudorandomfuncs.c:69 +#, c-format +msgid "setseed parameter %g is out of allowed range [-1,1]" +msgstr "setseed-parameter %g är utanför giltigt intervall [-1,1]" + +#: utils/adt/pseudotypes.c:55 utils/adt/pseudotypes.c:89 #, c-format msgid "cannot display a value of type %s" msgstr "kan inte visa ett värde av typ %s" -#: utils/adt/pseudotypes.c:310 +#: utils/adt/pseudotypes.c:307 #, c-format msgid "cannot accept a value of a shell type" msgstr "kan inte acceptera ett värde av typen shell" -#: utils/adt/pseudotypes.c:320 +#: utils/adt/pseudotypes.c:317 #, c-format msgid "cannot display a value of a shell type" msgstr "kan inte visa ett värde av typen shell" -#: utils/adt/rangetypes.c:415 +#: utils/adt/rangetypes.c:422 #, c-format msgid "range constructor flags argument must not be null" msgstr "konstruktorflaggargument till range får inte vara null" -#: utils/adt/rangetypes.c:1014 +#: utils/adt/rangetypes.c:1021 #, c-format msgid "result of range difference would not be contiguous" msgstr "resultatet av range-skillnad skulle inte vara angränsande" -#: utils/adt/rangetypes.c:1075 +#: utils/adt/rangetypes.c:1082 #, c-format msgid "result of range union would not be contiguous" msgstr "resultatet av range-union skulle inte vara angränsande" -#: utils/adt/rangetypes.c:1750 +#: utils/adt/rangetypes.c:1757 #, c-format msgid "range lower bound must be less than or equal to range upper bound" -msgstr "lägre gräns för range måste vara lägre eller lika med övre gräns för range" +msgstr "undre gräns för range måste vara lägre eller lika med övre gräns för range" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 +#: utils/adt/rangetypes.c:2283 #, c-format msgid "invalid range bound flags" msgstr "ogiltig gränsflagga för range" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 +#: utils/adt/rangetypes.c:2284 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Giltiga värden är \"[]\", \"[)\", \"(]\" och \"()\"." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 +#: utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 +#: utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "malformed range literal: \"%s\"" msgstr "trasig range-litteral: \"%s\"" -#: utils/adt/rangetypes.c:2295 +#: utils/adt/rangetypes.c:2354 #, c-format msgid "Junk after \"empty\" key word." msgstr "Skräp efter nyckelordet \"empty\"." -#: utils/adt/rangetypes.c:2312 +#: utils/adt/rangetypes.c:2371 #, c-format msgid "Missing left parenthesis or bracket." msgstr "Saknar vänster parentes eller hakparentes." -#: utils/adt/rangetypes.c:2327 +#: utils/adt/rangetypes.c:2386 #, c-format msgid "Missing comma after lower bound." -msgstr "Saknar komma efter lägre gräns." +msgstr "Saknar komma efter undre gräns." -#: utils/adt/rangetypes.c:2347 +#: utils/adt/rangetypes.c:2406 #, c-format msgid "Too many commas." msgstr "För många komman." -#: utils/adt/rangetypes.c:2358 +#: utils/adt/rangetypes.c:2417 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "Skräp efter höger parentes eller hakparentes." -#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 #, c-format msgid "regular expression failed: %s" msgstr "reguljärt uttryck misslyckades: %s" -#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 +#: utils/adt/regexp.c:445 utils/adt/regexp.c:680 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "ogiltigt flagga till reguljärt uttryck: \"%.*s\"" -#: utils/adt/regexp.c:683 +#: utils/adt/regexp.c:682 #, c-format msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "Om du menade att använda regexp_replace() med en startstartparameter så cast:a fjärde argumentet uttryckligen till integer." -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6610 utils/misc/guc.c:6644 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 +#: utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 +#: utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 +#: utils/adt/regexp.c:1871 utils/misc/guc.c:6820 utils/misc/guc.c:6854 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "ogiltigt värde för parameter \"%s\": %d" -#: utils/adt/regexp.c:937 +#: utils/adt/regexp.c:936 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" msgstr "Regulart uttryck i SQL får inte innehålla mer än två dubbelcitat-escape-separatorer" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1093 utils/adt/regexp.c:1184 utils/adt/regexp.c:1271 +#: utils/adt/regexp.c:1310 utils/adt/regexp.c:1698 utils/adt/regexp.c:1753 +#: utils/adt/regexp.c:1882 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s stöder inte \"global\"-flaggan" -#: utils/adt/regexp.c:1313 +#: utils/adt/regexp.c:1312 #, c-format msgid "Use the regexp_matches function instead." msgstr "Använd regexp_matches-funktionen istället." -#: utils/adt/regexp.c:1501 +#: utils/adt/regexp.c:1500 #, c-format msgid "too many regular expression matches" msgstr "för många reguljära uttryck matchar" @@ -25798,8 +26917,8 @@ msgstr "mer än en funktion med namn %s" msgid "more than one operator named %s" msgstr "mer än en operator med namn %s" -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10020 -#: utils/adt/ruleutils.c:10233 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10509 +#: utils/adt/ruleutils.c:10722 #, c-format msgid "too many arguments" msgstr "för många argument" @@ -25809,162 +26928,162 @@ msgstr "för många argument" msgid "Provide two argument types for operator." msgstr "Ange två argumenttyper för operatorn." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 +#: utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 #, c-format msgid "invalid name syntax" msgstr "ogiltig namnsyntax" -#: utils/adt/regproc.c:1904 +#: utils/adt/regproc.c:1924 #, c-format msgid "expected a left parenthesis" msgstr "förväntade en vänsterparentes" -#: utils/adt/regproc.c:1922 +#: utils/adt/regproc.c:1942 #, c-format msgid "expected a right parenthesis" msgstr "förväntade en högreparentes" -#: utils/adt/regproc.c:1941 +#: utils/adt/regproc.c:1961 #, c-format msgid "expected a type name" msgstr "förväntade ett typnamn" -#: utils/adt/regproc.c:1973 +#: utils/adt/regproc.c:1993 #, c-format msgid "improper type name" msgstr "olämpligt typnamn" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 +#: utils/adt/ri_triggers.c:2601 #, 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\"" -#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL tillåter inte att man blandar null och icke-null-värden." -#: utils/adt/ri_triggers.c:2045 +#: utils/adt/ri_triggers.c:2036 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "funktionen \"%s\" måste köras för INSERT" -#: utils/adt/ri_triggers.c:2051 +#: utils/adt/ri_triggers.c:2042 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "funktionen \"%s\" måste köras för UPDATE" -#: utils/adt/ri_triggers.c:2057 +#: utils/adt/ri_triggers.c:2048 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "funktionen \"%s\" måste köras för DELETE" -#: utils/adt/ri_triggers.c:2080 +#: utils/adt/ri_triggers.c:2071 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "ingen pg_constraint-post för trigger \"%s\" på tabell \"%s\"" -#: utils/adt/ri_triggers.c:2082 +#: utils/adt/ri_triggers.c:2073 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "Ta bort denna trigger för referensiell integritet och dess kollegor, gör sen ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2435 +#: utils/adt/ri_triggers.c:2426 #, 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:2439 +#: utils/adt/ri_triggers.c:2430 #, 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:2600 +#: utils/adt/ri_triggers.c:2591 #, 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:2603 utils/adt/ri_triggers.c:2628 +#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 #, 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:2614 +#: utils/adt/ri_triggers.c:2605 #, 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:2617 +#: utils/adt/ri_triggers.c:2608 #, c-format msgid "Key is not present in table \"%s\"." msgstr "Nyckeln finns inte i tabellen \"%s\"." -#: utils/adt/ri_triggers.c:2623 +#: utils/adt/ri_triggers.c:2614 #, 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:2631 +#: utils/adt/ri_triggers.c:2622 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "Nyckel refereras fortfarande till från tabell \"%s\"." -#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 +#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:509 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "inläsning av annonym composite-typ är inte implementerat" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:158 utils/adt/rowtypes.c:190 utils/adt/rowtypes.c:216 +#: utils/adt/rowtypes.c:227 utils/adt/rowtypes.c:285 utils/adt/rowtypes.c:296 #, c-format msgid "malformed record literal: \"%s\"" msgstr "felaktig postliteral: \"%s\"" -#: utils/adt/rowtypes.c:160 +#: utils/adt/rowtypes.c:159 #, c-format msgid "Missing left parenthesis." msgstr "Saknar vänster parentes" -#: utils/adt/rowtypes.c:192 +#: utils/adt/rowtypes.c:191 #, c-format msgid "Too few columns." msgstr "För få kolumner." -#: utils/adt/rowtypes.c:287 +#: utils/adt/rowtypes.c:286 #, c-format msgid "Too many columns." msgstr "För många kolumner." -#: utils/adt/rowtypes.c:298 +#: utils/adt/rowtypes.c:297 #, c-format msgid "Junk after right parenthesis." msgstr "Skräp efter höger parentes" -#: utils/adt/rowtypes.c:559 +#: utils/adt/rowtypes.c:558 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "fel antal kolumner: %d, förväntade %d" -#: utils/adt/rowtypes.c:601 +#: utils/adt/rowtypes.c:599 #, c-format msgid "binary data has type %u (%s) instead of expected %u (%s) in record column %d" msgstr "binär data har typ %u (%s) istället för förväntad %u (%s) i postkolumn %d" -#: utils/adt/rowtypes.c:668 +#: utils/adt/rowtypes.c:660 #, c-format msgid "improper binary format in record column %d" msgstr "felaktigt binärt format i postkolumn %d" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 +#: utils/adt/rowtypes.c:1699 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "kan inte jämföra olika kolumntyper %s och %s vid postkolumn %d" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 +#: utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "kan inte jämföra record-typer med olika antal kolumner" @@ -25984,113 +27103,139 @@ msgstr "uttryck innehåller variabler till mer än en relation" msgid "expression contains variables" msgstr "uttryck innehåller variabler" -#: utils/adt/ruleutils.c:5227 +#: utils/adt/ruleutils.c:5246 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "regel \"%s\" har en icke stödd händelsetyp %d" -#: utils/adt/timestamp.c:112 +#: utils/adt/timestamp.c:128 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "prceision för TIMESTAMP(%d)%s kan inte vara negativ" -#: utils/adt/timestamp.c:118 +#: utils/adt/timestamp.c:134 #, c-format 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:378 +#: utils/adt/timestamp.c:394 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "timestamp(%d)-precision måste vara mellan %d och %d" -#: utils/adt/timestamp.c:496 +#: utils/adt/timestamp.c:512 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "Numeriska tidszoner måste ha \"-\" eller \"+\" som sitt första tecken." -#: utils/adt/timestamp.c:508 +#: utils/adt/timestamp.c:524 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "numerisk tidszon \"%s\" utanför giltigt intervall" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 +#: utils/adt/timestamp.c:643 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "timestamp utanför giltigt intervall: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:728 +#: utils/adt/timestamp.c:744 #, c-format msgid "timestamp cannot be NaN" msgstr "timestamp kan inte vara NaN" -#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 +#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "timestamp utanför giltigt intervall: \"%g\"" -#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 +#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 +#: utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 +#: utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 +#: utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 +#: utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 +#: utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 +#: utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 +#: utils/adt/timestamp.c:3537 utils/adt/timestamp.c:3546 +#: utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 +#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 +#: utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 +#: utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 +#: utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 +#: utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 +#: utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 +#: utils/adt/timestamp.c:5097 +#, c-format +msgid "interval out of range" +msgstr "interval utanför giltigt intervall" + +#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 #, c-format msgid "invalid INTERVAL type modifier" msgstr "ogitligt modifierare för typen INTERVAL" -#: utils/adt/timestamp.c:1081 +#: utils/adt/timestamp.c:1110 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d)-precision kan inte vara negativ" -#: utils/adt/timestamp.c:1087 +#: utils/adt/timestamp.c:1116 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d)-precision reducerad till maximalt tillåtna, %d" -#: utils/adt/timestamp.c:1473 +#: utils/adt/timestamp.c:1506 #, c-format 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:2703 -#, c-format -msgid "cannot subtract infinite timestamps" -msgstr "kan inte subtrahera oändliga tider (timestamp)" - -#: utils/adt/timestamp.c:3956 utils/adt/timestamp.c:4139 +#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 #, c-format msgid "origin out of range" msgstr "origin utanför giltigt intervall" -#: utils/adt/timestamp.c:3961 utils/adt/timestamp.c:4144 +#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#, c-format +msgid "timestamps cannot be binned into infinite intervals" +msgstr "timestamps kan inte injusteras in i oändliga intervall" + +#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "timestamps kan inte injusteras in i intervall som innehåller månader eller år" -#: utils/adt/timestamp.c:3968 utils/adt/timestamp.c:4151 +#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 #, c-format msgid "stride must be greater than zero" msgstr "\"stride\" måste vara större än noll" -#: utils/adt/timestamp.c:4434 +#: utils/adt/timestamp.c:5091 #, c-format msgid "Months usually have fractional weeks." msgstr "Månader har vanligtvis veckor som decimaltal." -#: utils/adt/trigfuncs.c:42 +#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#, c-format +msgid "step size cannot be infinite" +msgstr "stegstorlek får inte vara oändlig" + +#: utils/adt/trigfuncs.c:41 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" msgstr "suppress_redundant_updates_trigger: måste anropas som trigger" -#: utils/adt/trigfuncs.c:48 +#: utils/adt/trigfuncs.c:47 #, c-format msgid "suppress_redundant_updates_trigger: must be called on update" msgstr "suppress_redundant_updates_trigger: måste anropas vid update" -#: utils/adt/trigfuncs.c:54 +#: utils/adt/trigfuncs.c:53 #, c-format msgid "suppress_redundant_updates_trigger: must be called before update" msgstr "suppress_redundant_updates_trigger: måste anropas innan update" -#: utils/adt/trigfuncs.c:60 +#: utils/adt/trigfuncs.c:59 #, c-format msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "suppress_redundant_updates_trigger: måste anropas för varje rad" @@ -26105,32 +27250,32 @@ msgstr "distans i frasoperator måste vara ett heltalsvärde mellan noll och %d, msgid "no operand in tsquery: \"%s\"" msgstr "ingen operand i tsquery: \"%s\"" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "värdet är för stort i tsquery: \"%s\"" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "operanden är för lång i tsquery: \"%s\"" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "ord för långt i tsquery: \"%s\"" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "syntaxfel i tsquery: \"%s\"" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "textsökfråga innehåller inte lexem: \"%s\"" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsquery är för stor" @@ -26165,72 +27310,72 @@ msgstr "array med vikter får inte innehålla null-värden" msgid "weight out of range" msgstr "vikten är utanför giltigt intervall" -#: utils/adt/tsvector.c:217 +#: utils/adt/tsvector.c:216 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "ordet är för långt (%ld byte, max %ld byte)" -#: utils/adt/tsvector.c:224 +#: utils/adt/tsvector.c:223 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "strängen är för lång för tsvector (%ld byte, max %ld byte)" -#: utils/adt/tsvector_op.c:773 +#: utils/adt/tsvector_op.c:771 #, c-format msgid "lexeme array may not contain nulls" msgstr "lexem-array:en får inte innehålla null-värden" -#: utils/adt/tsvector_op.c:778 +#: utils/adt/tsvector_op.c:776 #, c-format msgid "lexeme array may not contain empty strings" msgstr "lexem-array:en får inte innehålla tomma strängar" -#: utils/adt/tsvector_op.c:847 +#: utils/adt/tsvector_op.c:845 #, c-format msgid "weight array may not contain nulls" msgstr "vikt-array:en får inte innehålla null-värden" -#: utils/adt/tsvector_op.c:871 +#: utils/adt/tsvector_op.c:869 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "okänd vikt: \"%c\"" -#: utils/adt/tsvector_op.c:2601 +#: utils/adt/tsvector_op.c:2599 #, 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:2790 +#: utils/adt/tsvector_op.c:2788 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "tsvector-kolumnen \"%s\" existerar inte" -#: utils/adt/tsvector_op.c:2797 +#: utils/adt/tsvector_op.c:2795 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "kolumnen \"%s\" är inte av typen tsvector" -#: utils/adt/tsvector_op.c:2809 +#: utils/adt/tsvector_op.c:2807 #, c-format msgid "configuration column \"%s\" does not exist" -msgstr "konfigurationskolumnen \"%s\" existerar inte" +msgstr "kolumnen \"%s\" för konfiguration existerar inte" -#: utils/adt/tsvector_op.c:2815 +#: utils/adt/tsvector_op.c:2813 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "kolumn \"%s\" har inte regconfig-typ" -#: utils/adt/tsvector_op.c:2822 +#: utils/adt/tsvector_op.c:2820 #, c-format msgid "configuration column \"%s\" must not be null" -msgstr "konfigurationskolumn \"%s\" får inte vara null" +msgstr "kolumn \"%s\" för konfiguration får inte vara null" -#: utils/adt/tsvector_op.c:2835 +#: utils/adt/tsvector_op.c:2833 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" -msgstr "Textsökkonfigurationsnamn \"%s\" måste vara angivet med schema" +msgstr "Konfigurationsnamn \"%s\" för textsök måste vara angivet med schema" -#: utils/adt/tsvector_op.c:2860 +#: utils/adt/tsvector_op.c:2858 #, c-format msgid "column \"%s\" is not of a character type" msgstr "kolumnen \"%s\" är inte av typen character" @@ -26250,17 +27395,17 @@ msgstr "det finns inget escape-tecken: \"%s\"" msgid "wrong position info in tsvector: \"%s\"" msgstr "fel positionsinfo i tsvector: \"%s\"" -#: utils/adt/uuid.c:413 +#: utils/adt/uuid.c:418 #, c-format msgid "could not generate random values" msgstr "kunde inte generera slumpmässiga värden" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 #, c-format msgid "length for type %s must be at least 1" msgstr "längden för typ %s måste vara minst 1" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 #, c-format msgid "length for type %s cannot exceed %d" msgstr "längden för typ %s kan inte överstiga %d" @@ -26295,9 +27440,9 @@ msgstr "ogiltig längd på extern bitsträng" 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:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 +#: utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 +#: utils/adt/varlena.c:3133 #, c-format msgid "negative substring length not allowed" msgstr "negativ substräng-läng tillåts inte" @@ -26322,337 +27467,342 @@ msgstr "kan inte XOR:a bitsträngar av olika storlek" msgid "bit index %d out of valid range (0..%d)" msgstr "bitindex %d utanför giltigt intervall (0..%d)" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 #, c-format msgid "new bit must be 0 or 1" msgstr "nya biten måste vara 0 eller 1" -#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 +#: utils/adt/varchar.c:161 utils/adt/varchar.c:312 #, c-format msgid "value too long for type character(%d)" msgstr "värdet för långt för typen character (%d)" -#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 +#: utils/adt/varchar.c:475 utils/adt/varchar.c:639 #, c-format 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:738 utils/adt/varlena.c:1517 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 #, 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:1227 utils/adt/varlena.c:1806 +#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 #, 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:3218 utils/adt/varlena.c:3285 +#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "index %d utanför giltigt intervall, 0..%d" -#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 +#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "index %lld utanför giltigt intervall, 0..%lld" -#: utils/adt/varlena.c:4382 +#: utils/adt/varlena.c:4385 #, c-format msgid "field position must not be zero" msgstr "fältpositionen får inte vara noll" -#: utils/adt/varlena.c:5554 +#: utils/adt/varlena.c:5630 #, c-format msgid "unterminated format() type specifier" msgstr "icketerminerad typangivelse för format()" -#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 +#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "För ett ensamt \"%%\" använd \"%%%%\"." -#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 +#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "okänd typspecifierare \"%.*s\" för format()" -#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 +#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 #, c-format msgid "too few arguments for format()" msgstr "för få argument till format()" -#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 +#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 #, c-format msgid "number is out of range" msgstr "numret är utanför giltigt intervall" -#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 +#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 #, 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:5937 +#: utils/adt/varlena.c:6013 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "argumentposition för bredd måste avslutas med \"$\"" -#: utils/adt/varlena.c:5982 +#: utils/adt/varlena.c:6058 #, 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:6190 +#: utils/adt/varlena.c:6266 #, 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:6203 +#: utils/adt/varlena.c:6279 #, c-format msgid "invalid normalization form: %s" msgstr "ogiltigt normaliseringsform: %s" -#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 +#: utils/adt/varlena.c:6324 +#, c-format +msgid "Unicode categorization can only be performed if server encoding is UTF8" +msgstr "Unicode-kategorisering kan bara utföras om server-kodningen är UTF8" + +#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 #, c-format msgid "invalid Unicode code point: %04X" msgstr "ogiltig Unicode-kodpunkt: %04X" -#: utils/adt/varlena.c:6506 +#: utils/adt/varlena.c:6641 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Unicode-escapesekvenser måste vara \\XXXX, \\+XXXXXX, \\UXXXX eller \\UXXXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "argumentet till ntile måste vara större än noll" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:707 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "argumentet till nth_value måste vara större än noll" -#: utils/adt/xid8funcs.c:125 +#: utils/adt/xid8funcs.c:120 #, c-format msgid "transaction ID %llu is in the future" msgstr "transaktions-ID %llu är från framtiden" -#: utils/adt/xid8funcs.c:547 +#: utils/adt/xid8funcs.c:522 #, c-format msgid "invalid external pg_snapshot data" msgstr "ogiltig extern pg_snapshot-data" -#: utils/adt/xml.c:228 +#: utils/adt/xml.c:238 #, c-format msgid "unsupported XML feature" msgstr "ej stödd XML-finess" -#: utils/adt/xml.c:229 +#: utils/adt/xml.c:239 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "Denna funktionalitet kräver att servern byggts med libxml-support." -#: utils/adt/xml.c:248 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "ogiltigt kodningsnamn \"%s\"" -#: utils/adt/xml.c:496 utils/adt/xml.c:501 +#: utils/adt/xml.c:506 utils/adt/xml.c:511 #, c-format msgid "invalid XML comment" msgstr "ogiltigt XML-kommentar" -#: utils/adt/xml.c:660 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "inget XML-dokument" -#: utils/adt/xml.c:956 utils/adt/xml.c:979 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "ogiltig XML-processinstruktion" -#: utils/adt/xml.c:957 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "XML-processinstruktions målnamn kan inte vara \"%s\"." -#: utils/adt/xml.c:980 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-processinstruktion kan inte innehålla \"?>\"." -#: utils/adt/xml.c:1059 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate är inte implementerat" -#: utils/adt/xml.c:1115 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "kunde inte initiera XML-bibliotek" -#: utils/adt/xml.c:1116 +#: utils/adt/xml.c:1168 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 har inkompatibel char-typ: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1202 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "kunde inte ställa in XML-felhanterare" -#: utils/adt/xml.c:1203 +#: utils/adt/xml.c:1255 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "Detta tyder på att libxml2-versionen som används inte är kompatibel med libxml2-header-filerna som PostgreSQL byggts med." -#: utils/adt/xml.c:2189 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "Ogiltigt teckenvärde." -#: utils/adt/xml.c:2192 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "Mellanslag krävs." -#: utils/adt/xml.c:2195 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone tillåter bara 'yes' eller 'no'." -#: utils/adt/xml.c:2198 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "Felaktig deklaration: saknar version." -#: utils/adt/xml.c:2201 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "Saknar kodning i textdeklaration." -#: utils/adt/xml.c:2204 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "Parsar XML-deklaration: förväntade sig '?>'" -#: utils/adt/xml.c:2207 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Okänd libxml-felkod: %d." -#: utils/adt/xml.c:2461 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML stöder inte oändliga datumvärden." -#: utils/adt/xml.c:2483 utils/adt/xml.c:2510 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML stöder inte oändliga timestamp-värden." -#: utils/adt/xml.c:2926 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "ogiltig fråga" -#: utils/adt/xml.c:3018 +#: utils/adt/xml.c:3110 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "portalen \"%s\" returnerar inga tupler" -#: utils/adt/xml.c:4270 +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "ogiltig array till XML-namnrymdmappning" -#: utils/adt/xml.c:4271 +#: utils/adt/xml.c:4363 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Arrayen måste vara tvådimensionell där längden på andra axeln är 2." -#: utils/adt/xml.c:4295 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "tomt XPath-uttryck" -#: utils/adt/xml.c:4347 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "varken namnrymdnamn eller URI får vara null" -#: utils/adt/xml.c:4354 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "kunde inte registrera XML-namnrymd med namn \"%s\" och URL \"%s\"" -#: utils/adt/xml.c:4697 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "namnrymden DEFAULT stöds inte" -#: utils/adt/xml.c:4726 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "sökvägsfilter för rad får inte vara tomma strängen" -#: utils/adt/xml.c:4757 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "sokvägsfilter för kolumn får inte vara tomma strängen" -#: utils/adt/xml.c:4901 +#: utils/adt/xml.c:5005 #, c-format 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:1043 +#: utils/cache/lsyscache.c:1017 #, 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:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 +#: utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 #, c-format msgid "type %s is only a shell" msgstr "typ %s är bara en shell-typ" -#: utils/cache/lsyscache.c:2850 +#: utils/cache/lsyscache.c:2892 #, c-format msgid "no input function available for type %s" msgstr "ingen inläsningsfunktion finns för typ %s" -#: utils/cache/lsyscache.c:2883 +#: utils/cache/lsyscache.c:2925 #, c-format msgid "no output function available for type %s" msgstr "ingen utmatningsfunktion finns för typ %s" -#: utils/cache/partcache.c:219 +#: utils/cache/partcache.c:216 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "operatorklass \"%s\" för accessmetod %s saknar supportfunktion %d för typ %s" -#: utils/cache/plancache.c:724 +#: utils/cache/plancache.c:747 #, c-format msgid "cached plan must not change result type" msgstr "cache:ad plan får inte ändra resultattyp" -#: utils/cache/relcache.c:3741 +#: utils/cache/relcache.c:3801 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "relfile-nummer för heap är inte satt i binärt uppgraderingsläge" -#: utils/cache/relcache.c:3749 +#: utils/cache/relcache.c:3809 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "oväntad begäran av nytt relfile-nummer i binärt uppgraderingsläge" -#: utils/cache/relcache.c:6495 +#: utils/cache/relcache.c:6539 #, 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:6497 +#: utils/cache/relcache.c:6541 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Fortsätter ändå, trots att något är fel." -#: utils/cache/relcache.c:6819 +#: utils/cache/relcache.c:6871 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "kunde inte ta bort cache-fil \"%s\": %m" @@ -26662,17 +27812,17 @@ msgstr "kunde inte ta bort cache-fil \"%s\": %m" 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:850 +#: utils/cache/relmapper.c:852 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "relationsmappningsfilen \"%s\" innehåller ogiltig data" -#: utils/cache/relmapper.c:860 +#: utils/cache/relmapper.c:862 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "relationsmappningsfilen \"%s\" innehåller en felaktig checksumma" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "posttypen har inte registrerats" @@ -26687,102 +27837,102 @@ msgstr "TRAP: ExceptionalCondition: fel argument i PID %d\n" msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "TRAP: misslyckad Assert(\"%s\"), Fil: \"%s\", Rad: %d, PID: %d)\n" -#: utils/error/elog.c:416 +#: utils/error/elog.c:415 #, c-format msgid "error occurred before error message processing is available\n" msgstr "fel uppstod innan processning av felmeddelande är tillgängligt\n" -#: utils/error/elog.c:2092 +#: utils/error/elog.c:2134 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "kunde inte återöppna filen \"%s\" som stderr: %m" -#: utils/error/elog.c:2105 +#: utils/error/elog.c:2147 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "kunde inte återöppna filen \"%s\" som stdout: %m" -#: utils/error/elog.c:2141 +#: utils/error/elog.c:2183 #, c-format -msgid "invalid character" -msgstr "ogiltigt tecken" +msgid "Invalid character" +msgstr "Ogiltigt tecken" -#: utils/error/elog.c:2847 utils/error/elog.c:2874 utils/error/elog.c:2890 +#: utils/error/elog.c:2889 utils/error/elog.c:2916 utils/error/elog.c:2932 msgid "[unknown]" msgstr "[okänd]" -#: utils/error/elog.c:3163 utils/error/elog.c:3484 utils/error/elog.c:3591 +#: utils/error/elog.c:3202 utils/error/elog.c:3526 utils/error/elog.c:3633 msgid "missing error text" msgstr "saknar feltext" -#: utils/error/elog.c:3166 utils/error/elog.c:3169 +#: utils/error/elog.c:3205 utils/error/elog.c:3208 #, c-format msgid " at character %d" msgstr " vid tecken %d" -#: utils/error/elog.c:3179 utils/error/elog.c:3186 +#: utils/error/elog.c:3218 utils/error/elog.c:3225 msgid "DETAIL: " msgstr "DETALJ: " -#: utils/error/elog.c:3193 +#: utils/error/elog.c:3232 msgid "HINT: " msgstr "TIPS: " -#: utils/error/elog.c:3200 +#: utils/error/elog.c:3239 msgid "QUERY: " msgstr "FRÅGA: " -#: utils/error/elog.c:3207 +#: utils/error/elog.c:3246 msgid "CONTEXT: " msgstr "KONTEXT: " -#: utils/error/elog.c:3217 +#: utils/error/elog.c:3256 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "PLATS: %s, %s:%d\n" -#: utils/error/elog.c:3224 +#: utils/error/elog.c:3263 #, c-format msgid "LOCATION: %s:%d\n" msgstr "PLATS: %s:%d\n" -#: utils/error/elog.c:3231 +#: utils/error/elog.c:3270 msgid "BACKTRACE: " msgstr "BACKTRACE: " -#: utils/error/elog.c:3243 +#: utils/error/elog.c:3282 msgid "STATEMENT: " msgstr "SATS: " -#: utils/error/elog.c:3636 +#: utils/error/elog.c:3678 msgid "DEBUG" msgstr "DEBUG" -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3682 msgid "LOG" msgstr "LOGG" -#: utils/error/elog.c:3643 +#: utils/error/elog.c:3685 msgid "INFO" msgstr "INFO" -#: utils/error/elog.c:3646 +#: utils/error/elog.c:3688 msgid "NOTICE" msgstr "NOTIS" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3692 msgid "WARNING" msgstr "VARNING" -#: utils/error/elog.c:3653 +#: utils/error/elog.c:3695 msgid "ERROR" msgstr "FEL" -#: utils/error/elog.c:3656 +#: utils/error/elog.c:3698 msgid "FATAL" msgstr "FATALT" -#: utils/error/elog.c:3659 +#: utils/error/elog.c:3701 msgid "PANIC" msgstr "PANIK" @@ -26855,22 +28005,22 @@ msgstr "Magiskt block har oväntad längd eller annan paddning." msgid "incompatible library \"%s\": magic block mismatch" msgstr "inkompatibelt bibliotek \"%s\": magiskt block matchar inte" -#: utils/fmgr/dfmgr.c:492 +#: utils/fmgr/dfmgr.c:475 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "åtkomst till biblioteket \"%s\" tillåts inte" -#: utils/fmgr/dfmgr.c:518 +#: utils/fmgr/dfmgr.c:501 #, c-format msgid "invalid macro name in dynamic library path: %s" msgstr "ogiltigt macro-namn i dynamisk biblioteksökväg: %s" -#: utils/fmgr/dfmgr.c:558 +#: utils/fmgr/dfmgr.c:541 #, c-format msgid "zero-length component in parameter \"dynamic_library_path\"" msgstr "komponent med längden noll i parameter \"dynamic_library_path\"" -#: utils/fmgr/dfmgr.c:577 +#: utils/fmgr/dfmgr.c:560 #, c-format msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "komponent som inte är en absolut sökväg i parameter \"dynamic_library_path\"" @@ -26895,223 +28045,213 @@ msgstr "SQL-anropbara funktioner kräver en medföljande PG_FUNCTION_INFO_V1(fun msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "okänd API-version %d rapporterad av infofunktion \"%s\"" -#: utils/fmgr/fmgr.c:2080 +#: utils/fmgr/fmgr.c:2109 #, c-format msgid "operator class options info is absent in function call context" msgstr "info om operatorklassflaggor saknas i funktionens anropskontext" -#: utils/fmgr/fmgr.c:2147 +#: utils/fmgr/fmgr.c:2176 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "språkvalideringsfunktion %u anropad för språk %u istället för %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format 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:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "argumentet deklarerad %s innehåller inte en range-typ utan typ %s" -#: utils/fmgr/funcapi.c:717 -#, c-format -msgid "could not find multirange type for data type %s" -msgstr "kunde inte hitta multirange-typ för datatyp %s" - -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "antalet alias matchar inte antalet kolumner" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "inget kolumnalias angivet" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, 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:347 +#: utils/init/miscinit.c:353 #, c-format msgid "data directory \"%s\" does not exist" msgstr "databaskatalogen \"%s\" existerar inte" -#: utils/init/miscinit.c:352 +#: utils/init/miscinit.c:358 #, 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:360 +#: utils/init/miscinit.c:366 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "angiven datakatalog \"%s\" är inte en katalog" -#: utils/init/miscinit.c:376 +#: utils/init/miscinit.c:382 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "datakatalogen \"%s\" har fel ägare" -#: utils/init/miscinit.c:378 +#: utils/init/miscinit.c:384 #, 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:396 +#: utils/init/miscinit.c:402 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "datakatalogen \"%s\" har felaktiga rättigheter" -#: utils/init/miscinit.c:398 +#: utils/init/miscinit.c:404 #, 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:456 +#: utils/init/miscinit.c:462 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: utils/init/miscinit.c:693 utils/misc/guc.c:3548 +#: utils/init/miscinit.c:720 utils/misc/guc.c:3650 #, 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:765 +#: utils/init/miscinit.c:807 #, c-format msgid "role with OID %u does not exist" msgstr "roll med OID %u existerar inte" -#: utils/init/miscinit.c:795 +#: utils/init/miscinit.c:853 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "roll \"%s\" tillåts inte logga in" -#: utils/init/miscinit.c:813 +#: utils/init/miscinit.c:874 #, c-format msgid "too many connections for role \"%s\"" msgstr "för många uppkopplingar för roll \"%s\"" -#: utils/init/miscinit.c:912 -#, c-format -msgid "permission denied to set session authorization" -msgstr "rättighet saknas för att sätta sessionsauktorisation" - -#: utils/init/miscinit.c:995 +#: utils/init/miscinit.c:1045 #, c-format msgid "invalid role OID: %u" msgstr "ogiltigt roll-OID: %u" -#: utils/init/miscinit.c:1142 +#: utils/init/miscinit.c:1192 #, c-format msgid "database system is shut down" msgstr "databassystemet är nedstängt" -#: utils/init/miscinit.c:1229 +#: utils/init/miscinit.c:1279 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "kan inte skapa låsfil \"%s\": %m" -#: utils/init/miscinit.c:1243 +#: utils/init/miscinit.c:1293 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "kunde inte öppna låsfil \"%s\": %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1300 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "kunde inte läsa låsfil \"%s\": %m" -#: utils/init/miscinit.c:1259 +#: utils/init/miscinit.c:1309 #, c-format msgid "lock file \"%s\" is empty" msgstr "låsfilen \"%s\" är tom" -#: utils/init/miscinit.c:1260 +#: utils/init/miscinit.c:1310 #, 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:1304 +#: utils/init/miscinit.c:1354 #, c-format msgid "lock file \"%s\" already exists" msgstr "låsfil med namn \"%s\" finns redan" -#: utils/init/miscinit.c:1308 +#: utils/init/miscinit.c:1358 #, 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:1310 +#: utils/init/miscinit.c:1360 #, 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:1313 +#: utils/init/miscinit.c:1363 #, 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:1315 +#: utils/init/miscinit.c:1365 #, 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:1366 +#: utils/init/miscinit.c:1416 #, 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:1368 +#: utils/init/miscinit.c:1418 #, 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:1405 utils/init/miscinit.c:1419 -#: utils/init/miscinit.c:1430 +#: utils/init/miscinit.c:1455 utils/init/miscinit.c:1469 +#: utils/init/miscinit.c:1480 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "kunde inte skriva låsfil \"%s\": %m" -#: utils/init/miscinit.c:1541 utils/init/miscinit.c:1683 utils/misc/guc.c:5580 +#: utils/init/miscinit.c:1591 utils/init/miscinit.c:1733 utils/misc/guc.c:5765 #, c-format msgid "could not read from file \"%s\": %m" msgstr "kunde inte läsa från fil \"%s\": %m" -#: utils/init/miscinit.c:1671 +#: utils/init/miscinit.c:1721 #, 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:1696 +#: utils/init/miscinit.c:1746 #, 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:1735 utils/init/miscinit.c:1751 +#: utils/init/miscinit.c:1785 utils/init/miscinit.c:1801 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" är inte en giltigt datakatalog" -#: utils/init/miscinit.c:1737 +#: utils/init/miscinit.c:1787 #, c-format msgid "File \"%s\" is missing." msgstr "Filen \"%s\" saknas." -#: utils/init/miscinit.c:1753 +#: utils/init/miscinit.c:1803 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Filen \"%s\" innehåller inte giltig data." -#: utils/init/miscinit.c:1755 +#: utils/init/miscinit.c:1805 #, c-format msgid "You might need to initdb." msgstr "Du kan behöva köra initdb." -#: utils/init/miscinit.c:1763 +#: utils/init/miscinit.c:1813 #, 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." @@ -27188,97 +28328,97 @@ msgstr "rättighet saknas för databas \"%s\"" msgid "User does not have CONNECT privilege." msgstr "Användaren har inte rättigheten CONNECT." -#: utils/init/postinit.c:386 +#: utils/init/postinit.c:389 #, c-format msgid "too many connections for database \"%s\"" msgstr "för många uppkopplingar till databasen \"%s\"" -#: utils/init/postinit.c:410 utils/init/postinit.c:417 +#: utils/init/postinit.c:413 utils/init/postinit.c:420 #, c-format msgid "database locale is incompatible with operating system" msgstr "databaslokalen är inkompatibel med operativsystemet" -#: utils/init/postinit.c:411 +#: utils/init/postinit.c:414 #, 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:413 utils/init/postinit.c:420 +#: utils/init/postinit.c:416 utils/init/postinit.c:423 #, 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:418 +#: utils/init/postinit.c:421 #, 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:475 +#: utils/init/postinit.c:493 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "databasen \"%s\" har en jämförelse (collation) vars version som inte matchar" -#: utils/init/postinit.c:477 +#: utils/init/postinit.c:495 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." msgstr "Databasen skapades med jämförelseversion %s men operativsystemet tillhandahåller version %s." -#: utils/init/postinit.c:480 +#: utils/init/postinit.c:498 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "Bygg om alla objekt i denna databas som använder standardjämförelse (collation) och kör ALTER DATABASE %s REFRESH COLLATION VERSION eller bygg PostgreSQL med rätt bibliotekversion." -#: utils/init/postinit.c:891 +#: utils/init/postinit.c:904 #, c-format msgid "no roles are defined in this database system" msgstr "inga roller är definierade i detta databassystem" -#: utils/init/postinit.c:892 +#: utils/init/postinit.c:905 #, 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:928 +#: utils/init/postinit.c:942 #, c-format msgid "must be superuser to connect in binary upgrade mode" -msgstr "måste vara superuser för att ansluta i binärt uppgraderingsläger" +msgstr "måste vara superuser för att ansluta i binärt uppgraderingsläge" -#: utils/init/postinit.c:949 +#: utils/init/postinit.c:962 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "resterande anslutningsslottar är reserverade för roller med attributet %s" -#: utils/init/postinit.c:955 +#: utils/init/postinit.c:968 #, c-format msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" msgstr "resterande anslutningsslottar är reserverade för roller med rättigheter från rollen \"%s\"" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:980 #, c-format msgid "permission denied to start WAL sender" msgstr "rättighet saknas för att starta WAL-skickare" -#: utils/init/postinit.c:968 +#: utils/init/postinit.c:981 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "Bara roller med attributet %s får starta en process för WAL-skickande." -#: utils/init/postinit.c:1086 +#: utils/init/postinit.c:1099 #, 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:1090 +#: utils/init/postinit.c:1103 #, c-format msgid "database %u does not exist" msgstr "databasen %u existerar inte" -#: utils/init/postinit.c:1099 +#: utils/init/postinit.c:1112 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "kan inte ansluta till ogiltig databas \"%s\"" -#: utils/init/postinit.c:1159 +#: utils/init/postinit.c:1173 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Databasens underbibliotek \"%s\" saknas." @@ -27305,53 +28445,48 @@ msgstr "oväntat kodnings-ID %d för ISO 8859-teckenuppsättningarna" msgid "unexpected encoding ID %d for WIN character sets" msgstr "oväntat kodnings-ID %d för WIN-teckenuppsättningarna" -#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 +#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 #, c-format msgid "conversion between %s and %s is not supported" msgstr "konvertering mellan %s och %s stöds inte" -#: utils/mb/mbutils.c:386 -#, c-format -msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "standardkonverteringsfunktion för kodning \"%s\" till \"%s\" finns inte" - -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 +#: utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Sträng på %d byte är för lång för kodningskonvertering." -#: utils/mb/mbutils.c:569 +#: utils/mb/mbutils.c:568 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "ogiltigt källkodningsnamn \"%s\"" -#: utils/mb/mbutils.c:574 +#: utils/mb/mbutils.c:573 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "ogiltigt målkodningsnamn \"%s\"" -#: utils/mb/mbutils.c:714 +#: utils/mb/mbutils.c:713 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "ogiltigt byte-sekvens för kodning \"%s\": 0x%02x\"" -#: utils/mb/mbutils.c:878 +#: utils/mb/mbutils.c:877 #, c-format msgid "invalid Unicode code point" msgstr "ogiltig Unicode-kodpunkt" -#: utils/mb/mbutils.c:1204 +#: utils/mb/mbutils.c:1201 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset misslyckades" -#: utils/mb/mbutils.c:1725 +#: utils/mb/mbutils.c:1718 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "ogiltigt byte-sekvens för kodning \"%s\": %s" -#: utils/mb/mbutils.c:1758 +#: utils/mb/mbutils.c:1751 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "tecken med byte-sekvens %s i kodning \"%s\" har inget motsvarande i kodning \"%s\"" @@ -27366,82 +28501,82 @@ msgstr "konfigurationskatalogens namn är tomt: \"%s\"" msgid "could not open configuration directory \"%s\": %m" msgstr "kunde inte öppna konfigureringskatalog \"%s\": %m" -#: utils/misc/guc.c:115 +#: utils/misc/guc.c:122 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "Giltiga enheter för denna parameter är \"B\", \"kB\", \"MB\", \"GB\" och \"TB\"." -#: utils/misc/guc.c:152 +#: utils/misc/guc.c:159 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." msgstr "Giltiga enheter för denna parameter är \"us\", \"ms\", \"s\", \"min\", \"h\" och \"d\"." -#: utils/misc/guc.c:421 +#: utils/misc/guc.c:430 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "okänd konfigurationsparameter \"%s\" i fil \"%s\" rad %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3406 utils/misc/guc.c:3646 -#: utils/misc/guc.c:3744 utils/misc/guc.c:3842 utils/misc/guc.c:3966 -#: utils/misc/guc.c:4069 +#: utils/misc/guc.c:470 utils/misc/guc.c:3504 utils/misc/guc.c:3748 +#: utils/misc/guc.c:3846 utils/misc/guc.c:3944 utils/misc/guc.c:4071 +#: utils/misc/guc.c:4212 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "parameter \"%s\" kan inte ändras utan att starta om servern" -#: utils/misc/guc.c:497 +#: utils/misc/guc.c:506 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "parameter \"%s\" borttagen från konfigurationsfil, återställs till standard" -#: utils/misc/guc.c:562 +#: utils/misc/guc.c:571 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "parameter \"%s\" ändrad till \"%s\"" -#: utils/misc/guc.c:604 +#: utils/misc/guc.c:613 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "konfigurationsfil \"%s\" innehåller fel" -#: utils/misc/guc.c:609 +#: utils/misc/guc.c:618 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "konfigurationsfil \"%s\" innehåller fel; opåverkade ändringar har utförts" -#: utils/misc/guc.c:614 +#: utils/misc/guc.c:623 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "konfigurationsfil \"%s\" innehåller fel; inga ändringar har utförts" -#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "ogiltig konfigurationsparameter \"%s\"" -#: utils/misc/guc.c:1213 +#: utils/misc/guc.c:1141 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." msgstr "Egenskapade parameternamn måste vara två eller fler enkla identifierare separerade med punkter." -#: utils/misc/guc.c:1229 +#: utils/misc/guc.c:1157 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\" är ett reserverat prefix." -#: utils/misc/guc.c:1243 +#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "okänd konfigurationsparameter \"%s\"" -#: utils/misc/guc.c:1765 +#: utils/misc/guc.c:1802 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: kunde inte komma åt katalogen \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: kunde inte komma åt katalogen \"%s\": %m\n" -#: utils/misc/guc.c:1770 +#: utils/misc/guc.c:1806 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "Kör initdb eller pg_basebackup för att initiera en PostgreSQL-datakatalog.\n" -#: utils/misc/guc.c:1794 +#: utils/misc/guc.c:1830 #, c-format msgid "" "%s does not know where to find the server configuration file.\n" @@ -27450,12 +28585,12 @@ msgstr "" "%s vet inte var servens konfigurationsfil är.\n" "Du måste ange flaggan --config-file eller -D alternativt sätta omgivningsvariabeln PGDATA.\n" -#: utils/misc/guc.c:1817 +#: utils/misc/guc.c:1853 #, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s: har inte åtkomst till serverns konfigureringsfil \"%s\": %s\n" +msgid "%s: could not access the server configuration file \"%s\": %m\n" +msgstr "%s: ingen åtkomst till serverns konfigureringsfil \"%s\": %m\n" -#: utils/misc/guc.c:1845 +#: utils/misc/guc.c:1881 #, c-format msgid "" "%s does not know where to find the database system data.\n" @@ -27464,7 +28599,7 @@ msgstr "" "%s vet inte var databasens systemdata är.\n" "Det kan anges med \"data_directory\" i \"%s\" eller med flaggan -D alternativt genom att sätta omgivningsvariabeln PGDATA.\n" -#: utils/misc/guc.c:1897 +#: utils/misc/guc.c:1933 #, c-format msgid "" "%s does not know where to find the \"hba\" configuration file.\n" @@ -27473,7 +28608,7 @@ msgstr "" "%s vet inte var \"hba\"-konfigurationsfilen är.\n" "Detta kan anges som \"hba_file\" i \"%s\" eller med flaggan -D alternativt genom att sätta omgivningsvariabeln PGDATA.\n" -#: utils/misc/guc.c:1928 +#: utils/misc/guc.c:1964 #, c-format msgid "" "%s does not know where to find the \"ident\" configuration file.\n" @@ -27482,121 +28617,131 @@ msgstr "" "%s vet inte var \"ident\"-konfigurationsfilen är.\n" "Detta kan anges som \"ident_file\" i \"%s\" eller med flaggan -D alternativt genom att sätta omgivningsvariabeln PGDATA.\n" -#: utils/misc/guc.c:2894 +#: utils/misc/guc.c:2943 msgid "Value exceeds integer range." msgstr "Värde överskriver heltalsintervall." -#: utils/misc/guc.c:3130 +#: utils/misc/guc.c:3185 #, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s är utanför giltigt intervall för parameter \"%s\" (%d .. %d)" +msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" +msgstr "%d%s%s är utanför giltigt intervall för parameter \"%s\" (%d%s%s .. %d%s%s)" -#: utils/misc/guc.c:3166 +#: utils/misc/guc.c:3226 #, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s är utanför giltigt intervall för parameter \"%s\" (%g .. %g)" +msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" +msgstr "%g%s%s är utanför giltigt intervall för parameter \"%s\" (%g%s%s .. %g%s%s)" -#: utils/misc/guc.c:3366 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3465 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "kan inte sätta parametrar under en parallell operation" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "parameter \"%s\" can inte sättas under en parallell operation" -#: utils/misc/guc.c:3383 utils/misc/guc.c:4530 +#: utils/misc/guc.c:3481 utils/misc/guc.c:4696 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "parameter \"%s\" kan inte ändras" -#: utils/misc/guc.c:3416 +#: utils/misc/guc.c:3514 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "parameter \"%s\" kan inte ändras nu" -#: utils/misc/guc.c:3443 utils/misc/guc.c:3501 utils/misc/guc.c:4506 -#: utils/misc/guc.c:6546 +#: utils/misc/guc.c:3541 utils/misc/guc.c:3603 utils/misc/guc.c:4671 +#: utils/misc/guc.c:6756 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "rättighet saknas för att sätta parameter \"%s\"" -#: utils/misc/guc.c:3481 +#: utils/misc/guc.c:3583 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "parameter \"%s\" kan inte ändras efter uppkopplingen startats" -#: utils/misc/guc.c:3540 +#: utils/misc/guc.c:3642 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "kan inte sätta parameter \"%s\" inom en security-definer-funktion" -#: utils/misc/guc.c:3561 +#: utils/misc/guc.c:3663 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "parametern \"%s\" kunde inte återställas" -#: utils/misc/guc.c:3568 +#: utils/misc/guc.c:3670 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "parametern \"%s\" kan inte ändras lokalt i funktioner" -#: utils/misc/guc.c:4212 utils/misc/guc.c:4259 utils/misc/guc.c:5266 +#: utils/misc/guc.c:4370 utils/misc/guc.c:4418 utils/misc/guc.c:5450 #, c-format msgid "permission denied to examine \"%s\"" msgstr "rättighet saknas för att se \"%s\"" -#: utils/misc/guc.c:4213 utils/misc/guc.c:4260 utils/misc/guc.c:5267 +#: utils/misc/guc.c:4371 utils/misc/guc.c:4419 utils/misc/guc.c:5451 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "Bara roller med rättigheter från rollen \"%s\" får se denna parameter." -#: utils/misc/guc.c:4496 +#: utils/misc/guc.c:4629 +#, c-format +msgid "ALTER SYSTEM is not allowed in this environment" +msgstr "ALTER SYSTEM tillåts inte i denna miljö" + +#: utils/misc/guc.c:4661 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "rättighet saknas för att utföra ALTER SYSTEM RESET ALL" -#: utils/misc/guc.c:4562 +#: utils/misc/guc.c:4740 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "parametervärde till ALTER SYSTEM kan inte innehålla nyradstecken" -#: utils/misc/guc.c:4608 +#: utils/misc/guc.c:4785 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "kunde inte parsa innehållet i fil \"%s\"" -#: utils/misc/guc.c:4790 +#: utils/misc/guc.c:4967 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "försök att omdefiniera parameter \"%s\"" -#: utils/misc/guc.c:5129 +#: utils/misc/guc.c:5306 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "ogiltigt konfigurationsparameternamn \"%s\", tas bort" -#: utils/misc/guc.c:5131 +#: utils/misc/guc.c:5308 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" är nu ett reserverat prefix." -#: utils/misc/guc.c:6000 +#: utils/misc/guc.c:6179 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "vid sättande av parameter \"%s\" till \"%s\"" -#: utils/misc/guc.c:6169 +#: utils/misc/guc.c:6348 #, c-format msgid "parameter \"%s\" could not be set" msgstr "parameter \"%s\" kunde inte sättas" -#: utils/misc/guc.c:6259 +#: utils/misc/guc.c:6438 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "kunde inte tolka inställningen för parameter \"%s\"" -#: utils/misc/guc.c:6678 +#: utils/misc/guc.c:6888 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "ogiltigt värde för parameter \"%s\": %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "kan inte sätta parametrar under en parallell operation" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -27612,59 +28757,59 @@ msgstr "SET %s tar bara ett argument" msgid "SET requires parameter name" msgstr "SET kräver ett parameternamn" -#: utils/misc/guc_tables.c:662 +#: utils/misc/guc_tables.c:676 msgid "Ungrouped" msgstr "Ej grupperad" -#: utils/misc/guc_tables.c:664 +#: utils/misc/guc_tables.c:677 msgid "File Locations" msgstr "Filplatser" -#: utils/misc/guc_tables.c:666 +#: utils/misc/guc_tables.c:678 msgid "Connections and Authentication / Connection Settings" msgstr "Uppkopplingar och Autentisering / Uppkopplingsinställningar" -#: utils/misc/guc_tables.c:668 +#: utils/misc/guc_tables.c:679 msgid "Connections and Authentication / TCP Settings" msgstr "Uppkopplingar och Autentisering / TCP-inställningar" -#: utils/misc/guc_tables.c:670 +#: utils/misc/guc_tables.c:680 msgid "Connections and Authentication / Authentication" msgstr "Uppkopplingar och Autentisering / Autentisering" -#: utils/misc/guc_tables.c:672 +#: utils/misc/guc_tables.c:681 msgid "Connections and Authentication / SSL" msgstr "Uppkopplingar och Autentisering / SSL" -#: utils/misc/guc_tables.c:674 +#: utils/misc/guc_tables.c:682 msgid "Resource Usage / Memory" msgstr "Resursanvändning / Minne" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:683 msgid "Resource Usage / Disk" msgstr "Resursanvändning / Disk" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:684 msgid "Resource Usage / Kernel Resources" msgstr "Resursanvändning / Kärnresurser" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:685 msgid "Resource Usage / Cost-Based Vacuum Delay" msgstr "Resursanvändning / Kostnadsbaserad Vacuum-fördröjning" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:686 msgid "Resource Usage / Background Writer" msgstr "Resursanvändning / Bakgrundskrivare" -#: utils/misc/guc_tables.c:684 +#: utils/misc/guc_tables.c:687 msgid "Resource Usage / Asynchronous Behavior" msgstr "Resursanvändning / Asynkront beteende" -#: utils/misc/guc_tables.c:686 +#: utils/misc/guc_tables.c:688 msgid "Write-Ahead Log / Settings" msgstr "Write-Ahead Log / Inställningar" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:689 msgid "Write-Ahead Log / Checkpoints" msgstr "Write-Ahead Log / Checkpoint:er" @@ -27672,458 +28817,474 @@ msgstr "Write-Ahead Log / Checkpoint:er" msgid "Write-Ahead Log / Archiving" msgstr "Write-Ahead Log / Arkivering" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:691 msgid "Write-Ahead Log / Recovery" msgstr "Write-Ahead Log / Återställning" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:692 msgid "Write-Ahead Log / Archive Recovery" msgstr "Write-Ahead Log / Återställning från arkiv" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:693 msgid "Write-Ahead Log / Recovery Target" msgstr "Write-Ahead Log / Återställningsmål" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Summarization" +msgstr "Write-Ahead Log / Summering" + +#: utils/misc/guc_tables.c:695 msgid "Replication / Sending Servers" msgstr "Replilering / Skickande servrar" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:696 msgid "Replication / Primary Server" msgstr "Replikering / Primärserver" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:697 msgid "Replication / Standby Servers" msgstr "Replikering / Standby-servrar" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:698 msgid "Replication / Subscribers" msgstr "Replikering / Prenumeranter" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:699 msgid "Query Tuning / Planner Method Configuration" msgstr "Frågeoptimering / Planeringsmetodinställningar" -#: utils/misc/guc_tables.c:708 +#: utils/misc/guc_tables.c:700 msgid "Query Tuning / Planner Cost Constants" msgstr "Frågeoptimering / Plannerarens kostnadskonstanter" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:701 msgid "Query Tuning / Genetic Query Optimizer" msgstr "Frågeoptimering / Genetisk frågeoptimerare" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:702 msgid "Query Tuning / Other Planner Options" msgstr "Frågeoptimering / Andra planeringsinställningar" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:703 msgid "Reporting and Logging / Where to Log" msgstr "Rapportering och loggning / Logga var?" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:704 msgid "Reporting and Logging / When to Log" msgstr "Rapportering och loggning / Logga när?" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:705 msgid "Reporting and Logging / What to Log" msgstr "Rapportering och loggning / Logga vad?" -#: utils/misc/guc_tables.c:720 +#: utils/misc/guc_tables.c:706 msgid "Reporting and Logging / Process Title" msgstr "Rapportering och loggning / Processtitel" -#: utils/misc/guc_tables.c:722 +#: utils/misc/guc_tables.c:707 msgid "Statistics / Monitoring" msgstr "Statistik / Övervakning" -#: utils/misc/guc_tables.c:724 +#: utils/misc/guc_tables.c:708 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "Statistik / Ihopsamlad fråge- och index-statistik" -#: utils/misc/guc_tables.c:726 +#: utils/misc/guc_tables.c:709 msgid "Autovacuum" msgstr "Autovacuum" -#: utils/misc/guc_tables.c:728 +#: utils/misc/guc_tables.c:710 msgid "Client Connection Defaults / Statement Behavior" msgstr "Standard för klientanslutning / Satsbeteende" -#: utils/misc/guc_tables.c:730 +#: utils/misc/guc_tables.c:711 msgid "Client Connection Defaults / Locale and Formatting" msgstr "Standard för klientanslutning / Lokal och formattering" -#: utils/misc/guc_tables.c:732 +#: utils/misc/guc_tables.c:712 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "Standard för klientanslutning / Förladdning av delat bibliotek" -#: utils/misc/guc_tables.c:734 +#: utils/misc/guc_tables.c:713 msgid "Client Connection Defaults / Other Defaults" msgstr "Standard för klientanslutning / Övriga standardvärden" -#: utils/misc/guc_tables.c:736 +#: utils/misc/guc_tables.c:714 msgid "Lock Management" msgstr "Låshantering" -#: utils/misc/guc_tables.c:738 +#: utils/misc/guc_tables.c:715 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "Version och plattformskompabilitet / Tidigare PostrgreSQL-versioner" -#: utils/misc/guc_tables.c:740 +#: utils/misc/guc_tables.c:716 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "Version och plattformskompabilitet / Andra plattformar och klienter" -#: utils/misc/guc_tables.c:742 +#: utils/misc/guc_tables.c:717 msgid "Error Handling" msgstr "Felhantering" -#: utils/misc/guc_tables.c:744 +#: utils/misc/guc_tables.c:718 msgid "Preset Options" msgstr "Förinställningsflaggor" -#: utils/misc/guc_tables.c:746 +#: utils/misc/guc_tables.c:719 msgid "Customized Options" msgstr "Ändrade flaggor" -#: utils/misc/guc_tables.c:748 +#: utils/misc/guc_tables.c:720 msgid "Developer Options" msgstr "Utvecklarflaggor" -#: utils/misc/guc_tables.c:805 +#: utils/misc/guc_tables.c:775 msgid "Enables the planner's use of sequential-scan plans." msgstr "Aktiverar planerarens användning av planer med sekvensiell skanning." -#: utils/misc/guc_tables.c:815 +#: utils/misc/guc_tables.c:785 msgid "Enables the planner's use of index-scan plans." msgstr "Aktiverar planerarens användning av planer med indexskanning." -#: utils/misc/guc_tables.c:825 +#: utils/misc/guc_tables.c:795 msgid "Enables the planner's use of index-only-scan plans." msgstr "Aktiverar planerarens användning av planer med skanning av enbart index." -#: utils/misc/guc_tables.c:835 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of bitmap-scan plans." msgstr "Aktiverar planerarens användning av planer med bitmapskanning." -#: utils/misc/guc_tables.c:845 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of TID scan plans." msgstr "Aktiverar planerarens användning av planer med TID-skanning." -#: utils/misc/guc_tables.c:855 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of explicit sort steps." msgstr "Slår på planerarens användning av explicita sorteringssteg." -#: utils/misc/guc_tables.c:865 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of incremental sort steps." msgstr "Aktiverar planerarens användning av inkrementella sorteringssteg." -#: utils/misc/guc_tables.c:875 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of hashed aggregation plans." msgstr "Aktiverar planerarens användning av planer med hash-aggregering" -#: utils/misc/guc_tables.c:885 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of materialization." msgstr "Aktiverar planerarens användning av materialisering." -#: utils/misc/guc_tables.c:895 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of memoization." msgstr "Aktiverar planerarens användning av memoization." -#: utils/misc/guc_tables.c:905 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of nested-loop join plans." msgstr "Aktiverar planerarens användning av planer med nästlad loop-join," -#: utils/misc/guc_tables.c:915 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of merge join plans." msgstr "Aktiverar planerarens användning av merge-join-planer." -#: utils/misc/guc_tables.c:925 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of hash join plans." msgstr "Aktiverar planerarens användning av hash-join-planer." -#: utils/misc/guc_tables.c:935 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of gather merge plans." msgstr "Aktiverar planerarens användning av planer med gather-merge." -#: utils/misc/guc_tables.c:945 +#: utils/misc/guc_tables.c:915 msgid "Enables partitionwise join." msgstr "Aktiverar join per partition." -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:925 msgid "Enables partitionwise aggregation and grouping." msgstr "Aktiverar aggregering och gruppering per partition." -#: utils/misc/guc_tables.c:965 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of parallel append plans." msgstr "Aktiverar planerarens användning av planer med parallell append." -#: utils/misc/guc_tables.c:975 +#: utils/misc/guc_tables.c:945 msgid "Enables the planner's use of parallel hash plans." msgstr "Aktiverar planerarens användning av planer med parallell hash." -#: utils/misc/guc_tables.c:985 +#: utils/misc/guc_tables.c:955 msgid "Enables plan-time and execution-time partition pruning." msgstr "Aktiverar rensning av partitioner vid planering och vid körning." -#: utils/misc/guc_tables.c:986 +#: utils/misc/guc_tables.c:956 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "Tillåter att frågeplaneraren och exekveraren jämför partitionsgränser med villkor i frågan för att bestämma vilka partitioner som skall skannas." -#: utils/misc/guc_tables.c:997 +#: utils/misc/guc_tables.c:967 msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." msgstr "Slår på planerarens möjlighet att skapa planer som tillhandahåller försorterad indata till aggregatfunktioner med ORDER BY / DISTINCT." -#: utils/misc/guc_tables.c:1000 +#: utils/misc/guc_tables.c:970 msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." msgstr "Tillåter att planeraren kan skapa planer som tillhandahåller försorterad indata till aggregatfunktioner med en ORDER BY / DISTINCT-klausul. Om avstängd så kommer implicita sorteringar alltid utföras vid exekvering." -#: utils/misc/guc_tables.c:1012 +#: utils/misc/guc_tables.c:982 msgid "Enables the planner's use of async append plans." msgstr "Aktiverar planerarens användning av planer med async append." -#: utils/misc/guc_tables.c:1022 +#: utils/misc/guc_tables.c:992 +msgid "Enables reordering of GROUP BY keys." +msgstr "Aktiverar omkastning av nycklar i GROUP BY." + +#: utils/misc/guc_tables.c:1002 msgid "Enables genetic query optimization." msgstr "Aktiverar genetisk frågeoptimering." -#: utils/misc/guc_tables.c:1023 +#: utils/misc/guc_tables.c:1003 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "Denna algoritm försöker utföra planering utan fullständig sökning." -#: utils/misc/guc_tables.c:1034 +#: utils/misc/guc_tables.c:1017 msgid "Shows whether the current user is a superuser." msgstr "Visar om den aktuella användaren är en superuser." -#: utils/misc/guc_tables.c:1044 +#: utils/misc/guc_tables.c:1032 +msgid "Allows running the ALTER SYSTEM command." +msgstr "Tillåter att kommandot ALTER SYSTEM körs." + +#: utils/misc/guc_tables.c:1033 +msgid "Can be set to off for environments where global configuration changes should be made using a different method." +msgstr "Kan sättas till av för miljöer där global konfiguration skall hanteras på annat sätt." + +#: utils/misc/guc_tables.c:1043 msgid "Enables advertising the server via Bonjour." msgstr "Aktiverar annonsering av servern via Bonjour." -#: utils/misc/guc_tables.c:1053 +#: utils/misc/guc_tables.c:1052 msgid "Collects transaction commit time." msgstr "Samlar in tid för transaktions-commit." -#: utils/misc/guc_tables.c:1062 +#: utils/misc/guc_tables.c:1061 msgid "Enables SSL connections." msgstr "Tillåter SSL-anslutningar." -#: utils/misc/guc_tables.c:1071 -msgid "Controls whether ssl_passphrase_command is called during server reload." -msgstr "Styr hurvida ssl_passphrase_command anropas vid omladdning av server." +#: utils/misc/guc_tables.c:1070 +msgid "Controls whether \"ssl_passphrase_command\" is called during server reload." +msgstr "Styr hurvida \"ssl_passphrase_command\" anropas vid omladdning av server." -#: utils/misc/guc_tables.c:1080 +#: utils/misc/guc_tables.c:1079 msgid "Give priority to server ciphersuite order." msgstr "Ge prioritet till serverns ordning av kryptometoder." -#: utils/misc/guc_tables.c:1089 +#: utils/misc/guc_tables.c:1088 msgid "Forces synchronization of updates to disk." msgstr "Tvingar synkronisering av uppdateringar till disk." -#: utils/misc/guc_tables.c:1090 +#: utils/misc/guc_tables.c:1089 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "Servern kommer använda systemanropet fsync() på ett antal platser för att se till att uppdateringar fysiskt skrivs till disk. Detta för att säkerställa att databasklustret kan starta i ett konsistent tillstånd efter en operativsystemkrash eller hårdvarukrash." -#: utils/misc/guc_tables.c:1101 +#: utils/misc/guc_tables.c:1100 msgid "Continues processing after a checksum failure." msgstr "Fortsätter processande efter checksummefel." -#: utils/misc/guc_tables.c:1102 +#: utils/misc/guc_tables.c:1101 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "Normalt vid detektion av checksummefel så rapporterar PostgreSQL felet och avbryter den aktuella transaktionen. Sätts ignore_checksum_failure till true så kommer systemet hoppa över felet (men fortfarande rapportera en varning). Detta beteende kan orsaka krasher eller andra allvarliga problem. Detta påverkas bara om checksummor är påslaget." -#: utils/misc/guc_tables.c:1116 +#: utils/misc/guc_tables.c:1115 msgid "Continues processing past damaged page headers." msgstr "Fortsätter processande efter trasiga sidhuvuden." -#: utils/misc/guc_tables.c:1117 -msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." -msgstr "Normalt vid detektion av trasiga sidhuvuden så rapporterar PostgreSQL felet och avbryter den aktuella transaktionen. Sätts zero_damaged_pages till true så kommer systemet istället rapportera en varning, nollställa den trasiga sidan samt fortsätta processa. Detta kommer förstöra data (alla rader i den trasiga sidan)." +#: utils/misc/guc_tables.c:1116 +msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting \"zero_damaged_pages\" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." +msgstr "Normalt vid detektion av trasiga sidhuvuden så rapporterar PostgreSQL felet och avbryter den aktuella transaktionen. Sätts \"zero_damaged_pages\" till true så kommer systemet istället rapportera en varning, nollställa den trasiga sidan samt fortsätta processa. Detta kommer förstöra data (alla rader i den trasiga sidan)." -#: utils/misc/guc_tables.c:1130 +#: utils/misc/guc_tables.c:1129 msgid "Continues recovery after an invalid pages failure." msgstr "Fortsätter återställande efter fel på grund av ogiltiga sidor." -#: utils/misc/guc_tables.c:1131 -msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." -msgstr "Normalt vid detektion av WAL-poster som refererar till ogiltiga sidor under återställning så kommer PostgreSQL att signalera ett fel på PANIC-nivå och avbryta återställningen. Sätts ignore_invalid_pages till true så kommer systemet hoppa över ogiltiga sidreferenser i WAL-poster (men fortfarande rapportera en varning) och fortsätta återställningen. Detta beteende kan orsaka krasher, dataförluster, sprida eller dölja korruption eller ge andra allvarliga problem. Detta påverkar bara under återställning eller i standby-läge." +#: utils/misc/guc_tables.c:1130 +msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." +msgstr "Normalt vid detektion av WAL-poster som refererar till ogiltiga sidor under återställning så kommer PostgreSQL att signalera ett fel på PANIC-nivå och avbryta återställningen. Sätts \"ignore_invalid_pages\" till true så kommer systemet hoppa över ogiltiga sidreferenser i WAL-poster (men fortfarande rapportera en varning) och fortsätta återställningen. Detta beteende kan orsaka krasher, dataförluster, sprida eller dölja korruption eller ge andra allvarliga problem. Detta påverkar bara under återställning eller i standby-läge." -#: utils/misc/guc_tables.c:1149 +#: utils/misc/guc_tables.c:1148 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "Skriver fulla sidor till WAL första gången de ändras efter en checkpoint." -#: utils/misc/guc_tables.c:1150 +#: utils/misc/guc_tables.c:1149 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." 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_tables.c:1163 +#: utils/misc/guc_tables.c:1162 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_tables.c:1173 +#: utils/misc/guc_tables.c:1172 msgid "Writes zeroes to new WAL files before first use." msgstr "Skriv nollor till nya WAL-filer innan första användning." -#: utils/misc/guc_tables.c:1183 +#: utils/misc/guc_tables.c:1182 msgid "Recycles WAL files by renaming them." msgstr "Återanvänder WAL-filer genom att byta namn på dem." -#: utils/misc/guc_tables.c:1193 +#: utils/misc/guc_tables.c:1192 msgid "Logs each checkpoint." msgstr "Logga varje checkpoint." -#: utils/misc/guc_tables.c:1202 +#: utils/misc/guc_tables.c:1201 msgid "Logs each successful connection." msgstr "Logga varje lyckad anslutning." -#: utils/misc/guc_tables.c:1211 +#: utils/misc/guc_tables.c:1210 +msgid "Logs details of pre-authentication connection handshake." +msgstr "Logga detaljer om anslutningshandskakning före autentisering." + +#: utils/misc/guc_tables.c:1220 msgid "Logs end of a session, including duration." msgstr "Loggar slut på session, inklusive längden." -#: utils/misc/guc_tables.c:1220 +#: utils/misc/guc_tables.c:1229 msgid "Logs each replication command." msgstr "Loggar alla replikeringskommanon." -#: utils/misc/guc_tables.c:1229 +#: utils/misc/guc_tables.c:1238 msgid "Shows whether the running server has assertion checks enabled." msgstr "Visar om den körande servern har assert-kontroller påslagna." -#: utils/misc/guc_tables.c:1240 +#: utils/misc/guc_tables.c:1249 msgid "Terminate session on any error." msgstr "Avbryt sessionen vid fel." -#: utils/misc/guc_tables.c:1249 +#: utils/misc/guc_tables.c:1258 msgid "Reinitialize server after backend crash." msgstr "Återinitiera servern efter en backend-krash." -#: utils/misc/guc_tables.c:1258 +#: utils/misc/guc_tables.c:1267 msgid "Remove temporary files after backend crash." msgstr "Ta bort temporära filer efter en backend-krash." -#: utils/misc/guc_tables.c:1268 +#: utils/misc/guc_tables.c:1277 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "Skicka SIGABRT och inte SIGQUIT till barnprocesser efter att backend:en krashat." -#: utils/misc/guc_tables.c:1278 +#: utils/misc/guc_tables.c:1287 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "Skicka SIGABRT och inte SIGKILL till barnprocesser som fastnat." -#: utils/misc/guc_tables.c:1289 +#: utils/misc/guc_tables.c:1298 msgid "Logs the duration of each completed SQL statement." msgstr "Loggar tiden för varje avslutad SQL-sats." -#: utils/misc/guc_tables.c:1298 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's parse tree." msgstr "Loggar alla frågors parse-träd." -#: utils/misc/guc_tables.c:1307 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's rewritten parse tree." msgstr "Logga alla frågors omskrivet parse-träd." -#: utils/misc/guc_tables.c:1316 +#: utils/misc/guc_tables.c:1325 msgid "Logs each query's execution plan." msgstr "Logga alla frågors körningsplan." -#: utils/misc/guc_tables.c:1325 +#: utils/misc/guc_tables.c:1334 msgid "Indents parse and plan tree displays." msgstr "Indentera parse och planeringsträdutskrifter" -#: utils/misc/guc_tables.c:1334 +#: utils/misc/guc_tables.c:1343 msgid "Writes parser performance statistics to the server log." msgstr "Skriver parserns prestandastatistik till serverloggen." -#: utils/misc/guc_tables.c:1343 +#: utils/misc/guc_tables.c:1352 msgid "Writes planner performance statistics to the server log." msgstr "Skriver planerarens prestandastatistik till serverloggen." -#: utils/misc/guc_tables.c:1352 +#: utils/misc/guc_tables.c:1361 msgid "Writes executor performance statistics to the server log." msgstr "Skrivere exekverarens prestandastatistik till serverloggen." -#: utils/misc/guc_tables.c:1361 +#: utils/misc/guc_tables.c:1370 msgid "Writes cumulative performance statistics to the server log." msgstr "Skriver ackumulerad prestandastatistik till serverloggen." -#: utils/misc/guc_tables.c:1371 +#: utils/misc/guc_tables.c:1380 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "Loggar statisik för användning av systemresurser (minne och CPU) för olika B-tree-operationer." -#: utils/misc/guc_tables.c:1383 +#: utils/misc/guc_tables.c:1392 msgid "Collects information about executing commands." msgstr "Samla information om körda kommanon." -#: utils/misc/guc_tables.c:1384 +#: utils/misc/guc_tables.c:1393 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "Slår på insamling av information om det nu körande kommandot för varje session, tillsammans med klockslaget när det kommandot började köra." -#: utils/misc/guc_tables.c:1394 +#: utils/misc/guc_tables.c:1403 msgid "Collects statistics on database activity." msgstr "Samla in statistik om databasaktivitet." -#: utils/misc/guc_tables.c:1403 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for database I/O activity." msgstr "Samla in timingstatistik om databasens I/O-aktivitet." -#: utils/misc/guc_tables.c:1412 +#: utils/misc/guc_tables.c:1421 msgid "Collects timing statistics for WAL I/O activity." msgstr "Samla in timingstatistik om I/O-aktivitet för WAL." -#: utils/misc/guc_tables.c:1422 +#: utils/misc/guc_tables.c:1431 msgid "Updates the process title to show the active SQL command." msgstr "Uppdaterar processtitel till att visa aktivt SQL-kommando." -#: utils/misc/guc_tables.c:1423 +#: utils/misc/guc_tables.c:1432 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "Slår på uppdatering av processtiteln varje gång ett nytt SQL-kommando tas emot av servern." -#: utils/misc/guc_tables.c:1432 +#: utils/misc/guc_tables.c:1441 msgid "Starts the autovacuum subprocess." msgstr "Starta autovacuum-barnprocess." -#: utils/misc/guc_tables.c:1442 +#: utils/misc/guc_tables.c:1451 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "Skapar debug-output för LISTEN och NOTIFY." -#: utils/misc/guc_tables.c:1454 +#: utils/misc/guc_tables.c:1463 msgid "Emits information about lock usage." msgstr "Visar information om låsanvändning." -#: utils/misc/guc_tables.c:1464 +#: utils/misc/guc_tables.c:1473 msgid "Emits information about user lock usage." msgstr "Visar information om användares låsanvändning." -#: utils/misc/guc_tables.c:1474 +#: utils/misc/guc_tables.c:1483 msgid "Emits information about lightweight lock usage." msgstr "Visar information om lättviktig låsanvändning." -#: utils/misc/guc_tables.c:1484 +#: utils/misc/guc_tables.c:1493 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "Dumpar information om alla aktuella lås när en deadlock-timeout sker." -#: utils/misc/guc_tables.c:1496 +#: utils/misc/guc_tables.c:1505 msgid "Logs long lock waits." msgstr "Loggar långa väntetider på lås." -#: utils/misc/guc_tables.c:1505 +#: utils/misc/guc_tables.c:1514 msgid "Logs standby recovery conflict waits." msgstr "Loggar väntande på återställningskonflikter i standby" -#: utils/misc/guc_tables.c:1514 +#: utils/misc/guc_tables.c:1523 msgid "Logs the host name in the connection logs." msgstr "Loggar hostnamnet i anslutningsloggen." -#: utils/misc/guc_tables.c:1515 +#: utils/misc/guc_tables.c:1524 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "Som standard visar anslutningsloggen bara IP-adressen för den anslutande värden. Om du vill att värdnamnet skall visas så kan du slå på detta men beroende på hur uppsättningen av namnuppslag är gjored så kan detta ha en markant prestandapåverkan." -#: utils/misc/guc_tables.c:1526 +#: utils/misc/guc_tables.c:1535 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "Tolkar \"uttryck=NULL\" som \"uttryck IS NULL\"." -#: utils/misc/guc_tables.c:1527 +#: utils/misc/guc_tables.c:1536 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "Om påslagen så kommer uttryck på formen uttryck = NULL (eller NULL = uttryck) att behandlas som uttryck IS NULL, det vill säga returnera true om uttryck evalueras till värdet null eller evalueras till false annars. Det korrekta beteendet för uttryck = NULL är att alltid returnera null (okänt)." -#: utils/misc/guc_tables.c:1539 -msgid "Enables per-database user names." -msgstr "Aktiverar användarnamn per databas." - #: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "Ställer in standard read-only-status för nya transaktioner." @@ -28165,8 +29326,8 @@ msgid "WITH OIDS is no longer supported; this can only be false." msgstr "WITH OIDS stöds inte längre; denna kan bara vara false." #: utils/misc/guc_tables.c:1632 -msgid "Start a subprocess to capture stderr output and/or csvlogs into log files." -msgstr "Starta en subprocess för att fånga output från stderr och/eller csv-loggar till loggfiler." +msgid "Start a subprocess to capture stderr, csvlog and/or jsonlog into log files." +msgstr "Starta en subprocess för att fånga stderr, csvlog och/eller jsonlog till loggfiler." #: utils/misc/guc_tables.c:1641 msgid "Truncate existing log files of same name during log rotation." @@ -28217,1366 +29378,1440 @@ msgid "Sets whether to include or exclude transaction with recovery target." msgstr "Anger hurvida man skall inkludera eller exkludera transaktion för återställningmål." #: utils/misc/guc_tables.c:1778 +msgid "Starts the WAL summarizer process to enable incremental backup." +msgstr "Startar process för WAL-summering för att tillåta inkrementella backuper." + +#: utils/misc/guc_tables.c:1788 msgid "Allows connections and queries during recovery." msgstr "Tillåt anslutningar och frågor under återställning." -#: utils/misc/guc_tables.c:1788 +#: utils/misc/guc_tables.c:1798 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "Tillåter feedback från en hot standby till primären för att undvika frågekonflikter." -#: utils/misc/guc_tables.c:1798 +#: utils/misc/guc_tables.c:1808 msgid "Shows whether hot standby is currently active." msgstr "Visar hurvida hot standby är aktiv för närvarande." -#: utils/misc/guc_tables.c:1809 +#: utils/misc/guc_tables.c:1819 msgid "Allows modifications of the structure of system tables." msgstr "Tillåter strukturförändringar av systemtabeller." -#: utils/misc/guc_tables.c:1820 +#: utils/misc/guc_tables.c:1830 msgid "Disables reading from system indexes." msgstr "Stänger av läsning från systemindex." -#: utils/misc/guc_tables.c:1821 +#: utils/misc/guc_tables.c:1831 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "Det förhindrar inte uppdatering av index så det är helt säkert att använda. Det värsta som kan hända är att det är långsamt." -#: utils/misc/guc_tables.c:1832 +#: utils/misc/guc_tables.c:1842 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "Tillåter tabellutrymmen direkt inuti pg_tblspc, för testning" -#: utils/misc/guc_tables.c:1843 +#: utils/misc/guc_tables.c:1853 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "Slår på bakåtkompabilitetsläge för rättighetskontroller på stora objekt." -#: utils/misc/guc_tables.c:1844 +#: utils/misc/guc_tables.c:1854 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "Hoppar över rättighetskontroller vid läsning eller modifiering av stora objekt, för kompabilitet med PostgreSQL-releaser innan 9.0." -#: utils/misc/guc_tables.c:1854 +#: utils/misc/guc_tables.c:1864 msgid "When generating SQL fragments, quote all identifiers." msgstr "När SQL-fragment genereras så citera alla identifierare." -#: utils/misc/guc_tables.c:1864 +#: utils/misc/guc_tables.c:1874 msgid "Shows whether data checksums are turned on for this cluster." msgstr "Visar om datachecksummor är påslagna för detta kluster." -#: utils/misc/guc_tables.c:1875 +#: utils/misc/guc_tables.c:1885 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "Lägg till sekvensnummer till syslog-meddelanden för att undvika att duplikat tas bort." -#: utils/misc/guc_tables.c:1885 +#: utils/misc/guc_tables.c:1895 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "Dela meddelanden som skickas till syslog till egna rader och begränsa till 1024 byte." -#: utils/misc/guc_tables.c:1895 +#: utils/misc/guc_tables.c:1905 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Bestämmer om \"Gather\" och \"Gather Merge\" också exekverar subplaner." -#: utils/misc/guc_tables.c:1896 +#: utils/misc/guc_tables.c:1906 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "Skall gather-noder också exekvera subplaner eller bara samla in tupler?" -#: utils/misc/guc_tables.c:1906 +#: utils/misc/guc_tables.c:1916 msgid "Allow JIT compilation." msgstr "Tillåt JIT-kompilering." -#: utils/misc/guc_tables.c:1917 +#: utils/misc/guc_tables.c:1927 msgid "Register JIT-compiled functions with debugger." msgstr "Registrera JIT-kompilerade funktioner hos debuggern." -#: utils/misc/guc_tables.c:1934 +#: utils/misc/guc_tables.c:1944 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "Skriv ut LLVM-bitkod för att möjliggöra JIT-debuggning." -#: utils/misc/guc_tables.c:1945 +#: utils/misc/guc_tables.c:1955 msgid "Allow JIT compilation of expressions." msgstr "Tillåt JIT-kompilering av uttryck." -#: utils/misc/guc_tables.c:1956 +#: utils/misc/guc_tables.c:1966 msgid "Register JIT-compiled functions with perf profiler." msgstr "Registrera JIT-kompilerade funktioner med perf-profilerare." -#: utils/misc/guc_tables.c:1973 +#: utils/misc/guc_tables.c:1983 msgid "Allow JIT compilation of tuple deforming." msgstr "Tillåt JIT-kompilering av tupeluppdelning." -#: utils/misc/guc_tables.c:1984 +#: utils/misc/guc_tables.c:1994 msgid "Whether to continue running after a failure to sync data files." msgstr "Hurvida vi skall fortsätta efter ett fel att synka datafiler." -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2003 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "Anger hurvida en WAL-mottagare skall skapa en temporär replikeringsslot om ingen permanent slot är konfigurerad." -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2012 +msgid "Enables event triggers." +msgstr "Aktiverar händelsetriggrar." + +#: utils/misc/guc_tables.c:2013 +msgid "When enabled, event triggers will fire for all applicable statements." +msgstr "Om aktiverad så kommer händelsetriggrar anropas för alla satser där det går." + +#: utils/misc/guc_tables.c:2022 +msgid "Enables a physical standby to synchronize logical failover replication slots from the primary server." +msgstr "Tillåter att en fysisk standby synkroniserar logiska replikeringsslottar för failover från primära servern." + +#: utils/misc/guc_tables.c:2040 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "Sätter tiden vi väntar innan vi tvingar ett byte till nästa WAL-fil." -#: utils/misc/guc_tables.c:2022 +#: utils/misc/guc_tables.c:2051 msgid "Sets the amount of time to wait after authentication on connection startup." msgstr "Sätter tiden att vänta efter authentiserng vid uppstart av anslutningen." -#: utils/misc/guc_tables.c:2024 utils/misc/guc_tables.c:2658 +#: utils/misc/guc_tables.c:2053 utils/misc/guc_tables.c:2780 msgid "This allows attaching a debugger to the process." msgstr "Detta tillåter att man ansluter en debugger till processen." -#: utils/misc/guc_tables.c:2033 +#: utils/misc/guc_tables.c:2062 msgid "Sets the default statistics target." msgstr "Sätter standardstatistikmålet." -#: utils/misc/guc_tables.c:2034 +#: utils/misc/guc_tables.c:2063 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "Detta gäller tabellkolumner som inte har ett kolumnspecifikt mål satt med ALTER TABLE SET STATISTICS." -#: utils/misc/guc_tables.c:2043 +#: utils/misc/guc_tables.c:2072 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "Sätter en övre gräns på FROM-listans storlek där subfrågor slås isär." -#: utils/misc/guc_tables.c:2045 +#: utils/misc/guc_tables.c:2074 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "Planeraren kommer slå samman subfrågor med yttre frågor om den resulterande FROM-listan inte har fler än så här många poster." -#: utils/misc/guc_tables.c:2056 +#: utils/misc/guc_tables.c:2085 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "Sätter en övre gräns på FROM-listans storlek där JOIN-konstruktioner plattas till." -#: utils/misc/guc_tables.c:2058 +#: utils/misc/guc_tables.c:2087 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "Planeraren kommer platta till explicita JOIN-konstruktioner till listor av FROM-poster när resultatet blir en lista med max så här många poster." -#: utils/misc/guc_tables.c:2069 +#: utils/misc/guc_tables.c:2098 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "Sätter en undre gräns på antal FROM-poster när GEQO används." -#: utils/misc/guc_tables.c:2079 +#: utils/misc/guc_tables.c:2108 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: effort används som standard för andra GEQO-parametrar." -#: utils/misc/guc_tables.c:2089 +#: utils/misc/guc_tables.c:2118 msgid "GEQO: number of individuals in the population." msgstr "GEQO: antal individer i populationen." -#: utils/misc/guc_tables.c:2090 utils/misc/guc_tables.c:2100 +#: utils/misc/guc_tables.c:2119 utils/misc/guc_tables.c:2129 msgid "Zero selects a suitable default value." msgstr "Noll väljer ett lämpligt standardvärde." -#: utils/misc/guc_tables.c:2099 +#: utils/misc/guc_tables.c:2128 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: antal iterationer för algoritmen." -#: utils/misc/guc_tables.c:2111 +#: utils/misc/guc_tables.c:2140 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "Sätter tiden som väntas på ett lås innan kontroll av deadlock sker." -#: utils/misc/guc_tables.c:2122 +#: utils/misc/guc_tables.c:2151 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "Sätter maximal fördröjning innan frågor avbryts när en \"hot standby\"-server processar arkiverad WAL-data." -#: utils/misc/guc_tables.c:2133 +#: utils/misc/guc_tables.c:2162 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "Sätter maximal fördröjning innan frågor avbryts när en \"hot stanby\"-server processar strömmad WAL-data." -#: utils/misc/guc_tables.c:2144 +#: utils/misc/guc_tables.c:2173 msgid "Sets the minimum delay for applying changes during recovery." msgstr "Ställer in minsta fördröjning för att applicera ändringar under återställning." -#: utils/misc/guc_tables.c:2155 +#: utils/misc/guc_tables.c:2184 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "Sätter maximalt intervall mellan statusrapporter till skickande server från WAL-mottagaren." -#: utils/misc/guc_tables.c:2166 +#: utils/misc/guc_tables.c:2195 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "Sätter maximal väntetid för att ta emot data från skickande server." -#: utils/misc/guc_tables.c:2177 +#: utils/misc/guc_tables.c:2206 msgid "Sets the maximum number of concurrent connections." msgstr "Sätter maximalt antal samtidiga anslutningar." -#: utils/misc/guc_tables.c:2188 +#: utils/misc/guc_tables.c:2217 msgid "Sets the number of connection slots reserved for superusers." msgstr "Sätter antalet anslutningsslottar som reserverats för superusers." -#: utils/misc/guc_tables.c:2198 +#: utils/misc/guc_tables.c:2227 msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." msgstr "Sätter antalet anslutningsslottar som reserverats för roller med rättigheter från pg_use_reserved_connections." -#: utils/misc/guc_tables.c:2209 +#: utils/misc/guc_tables.c:2238 msgid "Amount of dynamic shared memory reserved at startup." msgstr "Mängd dynamiskt delat minne som reserveras vid uppstart" -#: utils/misc/guc_tables.c:2224 +#: utils/misc/guc_tables.c:2253 msgid "Sets the number of shared memory buffers used by the server." msgstr "Sätter antalet delade minnesbuffrar som används av servern." -#: utils/misc/guc_tables.c:2235 +#: utils/misc/guc_tables.c:2264 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "Sätter buffer-poolens storlek för VACUUM, ANALYZE och autovacuum." -#: utils/misc/guc_tables.c:2246 +#: utils/misc/guc_tables.c:2275 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "Visa storlek på serverns huvudsakliga delade minnesarea (avrundat upp till närmaste MB)." -#: utils/misc/guc_tables.c:2257 +#: utils/misc/guc_tables.c:2286 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "Visa antal stora sidor som krävs för den huvudsakliga delade minnesarean." -#: utils/misc/guc_tables.c:2258 +#: utils/misc/guc_tables.c:2287 msgid "-1 indicates that the value could not be determined." msgstr "-1 betyder att värdet inte kunde bestämmas." -#: utils/misc/guc_tables.c:2268 +#: utils/misc/guc_tables.c:2297 +msgid "Sets the size of the dedicated buffer pool used for the commit timestamp cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av commit-tidsstämplar." + +#: utils/misc/guc_tables.c:2298 utils/misc/guc_tables.c:2353 +#: utils/misc/guc_tables.c:2364 +msgid "Specify 0 to have this value determined as a fraction of shared_buffers." +msgstr "Ange 0 för att sätta detta värde till en bråkdel av shared_buffers." + +#: utils/misc/guc_tables.c:2308 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact member cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av MultiXact-medlemmar." + +#: utils/misc/guc_tables.c:2319 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact offset cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av MultiXact-offset." + +#: utils/misc/guc_tables.c:2330 +msgid "Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av LISTEN/NOTIFY-meddelande." + +#: utils/misc/guc_tables.c:2341 +msgid "Sets the size of the dedicated buffer pool used for the serializable transaction cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av serialiserbara transaktioner." + +#: utils/misc/guc_tables.c:2352 +msgid "Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används som cache för undertransaktioner." + +#: utils/misc/guc_tables.c:2363 +msgid "Sets the size of the dedicated buffer pool used for the transaction status cache." +msgstr "Sätter storlek på den dedikerade bufferpoolen som används till cache av transaktionsstatus." + +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "Sätter maximalt antal temporära buffertar som används per session." -#: utils/misc/guc_tables.c:2279 +#: utils/misc/guc_tables.c:2385 msgid "Sets the TCP port the server listens on." msgstr "Sätter TCP-porten som servern lyssnar på." -#: utils/misc/guc_tables.c:2289 +#: utils/misc/guc_tables.c:2395 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Sätter accessrättigheter för Unix-domainuttag (socket)." -#: utils/misc/guc_tables.c:2290 +#: utils/misc/guc_tables.c:2396 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Unixdomänuttag (socket) använder unix vanliga filsystemsrättigheter. Parametervärdet förväntas vara en numerisk rättighetsangivelse så som accepteras av systemanropen chmod och umask. (För att använda det vanliga oktala formatet så måste numret börja med 0 (noll).)" -#: utils/misc/guc_tables.c:2304 +#: utils/misc/guc_tables.c:2410 msgid "Sets the file permissions for log files." msgstr "Sätter filrättigheter för loggfiler." -#: utils/misc/guc_tables.c:2305 +#: utils/misc/guc_tables.c:2411 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Parametervärdet förväntas vara en numerisk rättighetsangivelse så som accepteras av systemanropen chmod och umask. (För att använda det vanliga oktala formatet så måste numret börja med 0 (noll).)" -#: utils/misc/guc_tables.c:2319 +#: utils/misc/guc_tables.c:2425 msgid "Shows the mode of the data directory." msgstr "Visar rättigheter för datakatalog" -#: utils/misc/guc_tables.c:2320 +#: utils/misc/guc_tables.c:2426 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Parametervärdet är en numerisk rättighetsangivelse så som accepteras av systemanropen chmod och umask. (För att använda det vanliga oktala formatet så måste numret börja med 0 (noll).)" -#: utils/misc/guc_tables.c:2333 +#: utils/misc/guc_tables.c:2439 msgid "Sets the maximum memory to be used for query workspaces." msgstr "Sätter maximalt minne som används för frågors arbetsyta." -#: utils/misc/guc_tables.c:2334 +#: utils/misc/guc_tables.c:2440 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "Så här mycket minne kan användas av varje intern sorteringsoperation resp. hash-tabell innan temporära filer på disk börjar användas." -#: utils/misc/guc_tables.c:2346 +#: utils/misc/guc_tables.c:2457 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "Sätter det maximala minnet som får användas för underhållsoperationer." -#: utils/misc/guc_tables.c:2347 +#: utils/misc/guc_tables.c:2458 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "Detta inkluderar operationer som VACUUM och CREATE INDEX." -#: utils/misc/guc_tables.c:2357 +#: utils/misc/guc_tables.c:2468 msgid "Sets the maximum memory to be used for logical decoding." msgstr "Sätter det maximala minnet som får användas för logisk avkodning." -#: utils/misc/guc_tables.c:2358 +#: utils/misc/guc_tables.c:2469 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "Så här mycket minne kan användas av varje intern omsorteringsbuffer innan data spills till disk." -#: utils/misc/guc_tables.c:2374 +#: utils/misc/guc_tables.c:2485 msgid "Sets the maximum stack depth, in kilobytes." msgstr "Sätter det maximala stackdjupet, i kilobyte." -#: utils/misc/guc_tables.c:2385 +#: utils/misc/guc_tables.c:2496 msgid "Limits the total size of all temporary files used by each process." msgstr "Begränsar den totala storleken för alla temporära filer som används i en process." -#: utils/misc/guc_tables.c:2386 +#: utils/misc/guc_tables.c:2497 msgid "-1 means no limit." msgstr "-1 betyder ingen gräns." -#: utils/misc/guc_tables.c:2396 +#: utils/misc/guc_tables.c:2507 msgid "Vacuum cost for a page found in the buffer cache." msgstr "Vacuum-kostnad för en sida som hittas i buffer-cache:n." -#: utils/misc/guc_tables.c:2406 +#: utils/misc/guc_tables.c:2517 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "Vacuum-kostnad för en sida som inte hittas i buffer-cache:n." -#: utils/misc/guc_tables.c:2416 +#: utils/misc/guc_tables.c:2527 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "Vacuum-kostnad för sidor som smutsats ner vid vacuum." -#: utils/misc/guc_tables.c:2426 +#: utils/misc/guc_tables.c:2537 msgid "Vacuum cost amount available before napping." msgstr "Vacuum-kostnad kvar innan pausande." -#: utils/misc/guc_tables.c:2436 +#: utils/misc/guc_tables.c:2547 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "Vacuum-kostnad kvar innan pausande, för autovacuum." -#: utils/misc/guc_tables.c:2446 +#: utils/misc/guc_tables.c:2557 msgid "Sets the maximum number of simultaneously open files for each server process." msgstr "Sätter det maximala antalet filer som en serverprocess kan ha öppna på en gång." -#: utils/misc/guc_tables.c:2459 +#: utils/misc/guc_tables.c:2570 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "Sätter det maximala antalet förberedda transaktioner man får ha på en gång." -#: utils/misc/guc_tables.c:2470 +#: utils/misc/guc_tables.c:2581 msgid "Sets the minimum OID of tables for tracking locks." msgstr "Sätter minsta tabell-OID för spårning av lås." -#: utils/misc/guc_tables.c:2471 +#: utils/misc/guc_tables.c:2582 msgid "Is used to avoid output on system tables." msgstr "Används för att undvika utdata för systemtabeller." -#: utils/misc/guc_tables.c:2480 +#: utils/misc/guc_tables.c:2591 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "Sätter OID för tabellen med ovillkorlig låsspårning." -#: utils/misc/guc_tables.c:2492 +#: utils/misc/guc_tables.c:2603 msgid "Sets the maximum allowed duration of any statement." msgstr "Sätter den maximala tiden som en sats får köra." -#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 -#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 +#: utils/misc/guc_tables.c:2604 utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2626 utils/misc/guc_tables.c:2637 +#: utils/misc/guc_tables.c:2648 msgid "A value of 0 turns off the timeout." msgstr "Värdet 0 stänger av timeout:en." -#: utils/misc/guc_tables.c:2503 +#: utils/misc/guc_tables.c:2614 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "Sätter den maximala tiden som man får vänta på ett lås." -#: utils/misc/guc_tables.c:2514 +#: utils/misc/guc_tables.c:2625 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "Sätter den maximalt tillåtna inaktiva tiden mellan frågor i en transaktion." -#: utils/misc/guc_tables.c:2525 +#: utils/misc/guc_tables.c:2636 +msgid "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)." +msgstr "Sätter den maximala tillåtana tiden för en transaktion i en session (ej en preparerad transaktion)." + +#: utils/misc/guc_tables.c:2647 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "Sätter den maximalt tillåtna inaktiva tiden mellan frågor utanför en transaktion." -#: utils/misc/guc_tables.c:2536 +#: utils/misc/guc_tables.c:2658 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "Minimal ålder där VACUUM skall frysa en tabellrad." -#: utils/misc/guc_tables.c:2546 +#: utils/misc/guc_tables.c:2668 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "Ålder där VACUUM skall skanna hela tabellen för att frysa tupler." -#: utils/misc/guc_tables.c:2556 +#: utils/misc/guc_tables.c:2678 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "Minsta ålder där VACUUM skall frysa en MultiXactId i en tabellrad." -#: utils/misc/guc_tables.c:2566 +#: utils/misc/guc_tables.c:2688 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "Multixact-ålder där VACUUM skall skanna hela tabellen för att frysa tupler." -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2698 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Ålder där VACUUM skall startas som skyddsåtgärd för att undvika wraparound-stopp." -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2707 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Multixact-ålder där VACUUM skall startas som skyddsåtgärd för att undvika wraparound-stopp." -#: utils/misc/guc_tables.c:2598 +#: utils/misc/guc_tables.c:2720 msgid "Sets the maximum number of locks per transaction." msgstr "Sätter det maximala antalet lås per transaktion." -#: utils/misc/guc_tables.c:2599 -msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "Den delade låstabellen har storlek efter antagandet att maximalt max_locks_per_transaction objekt per serverprocess eller per förberedd transaktion kommer behöva låsas vid varje enskild tidpunkt." +#: utils/misc/guc_tables.c:2721 +msgid "The shared lock table is sized on the assumption that at most \"max_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "Den delade låstabellen har storlek efter antagandet att maximalt \"max_locks_per_transaction\" objekt per serverprocess eller per förberedd transaktion kommer behöva låsas vid varje enskild tidpunkt." -#: utils/misc/guc_tables.c:2610 +#: utils/misc/guc_tables.c:2732 msgid "Sets the maximum number of predicate locks per transaction." msgstr "Sätter det maximala antalet predikatlås per transaktion." -#: utils/misc/guc_tables.c:2611 -msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "Den delade predikatlåstabellen har storlek efter antagandet att maximalt max_pred_locks_per_transaction objekt per serverprocess eller per förberedd transaktion kommer behöva låsas vid varje enskild tidpunkt." +#: utils/misc/guc_tables.c:2733 +msgid "The shared predicate lock table is sized on the assumption that at most \"max_pred_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "Den delade predikatlåstabellen har storlek efter antagandet att maximalt \"max_pred_locks_per_transaction\" objekt per serverprocess eller per förberedd transaktion kommer behöva låsas vid varje enskild tidpunkt." -#: utils/misc/guc_tables.c:2622 +#: utils/misc/guc_tables.c:2744 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "Sätter det maximala antalet predikatlåsta sidor och tupler per relation." -#: utils/misc/guc_tables.c:2623 +#: utils/misc/guc_tables.c:2745 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "Om fler än detta totala antal sidor och tupler för samma relation är låsta av en anslutning så ersätts dessa lås med ett lås på relationen." -#: utils/misc/guc_tables.c:2633 +#: utils/misc/guc_tables.c:2755 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "Sätter det maximala antalet predikatlåsta tupler per sida." -#: utils/misc/guc_tables.c:2634 +#: utils/misc/guc_tables.c:2756 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "Om fler än detta antal tupler på samma sida är låsta av en anslutning så ersätts dessa lås med ett lås på sidan." -#: utils/misc/guc_tables.c:2644 +#: utils/misc/guc_tables.c:2766 msgid "Sets the maximum allowed time to complete client authentication." msgstr "Sätter maximalt tillåten tid att slutföra klientautentisering." -#: utils/misc/guc_tables.c:2656 +#: utils/misc/guc_tables.c:2778 msgid "Sets the amount of time to wait before authentication on connection startup." msgstr "Sätter tiden att vänta före authentiserng vid uppstart av anslutningen.." -#: utils/misc/guc_tables.c:2668 +#: utils/misc/guc_tables.c:2790 +msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." +msgstr "Sätter det maximala antalet allokerade sidor till kö för NOTIFY / LISTEN." + +#: utils/misc/guc_tables.c:2800 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "Bufferstorlek för read-ahead av WAL vid återställning." -#: utils/misc/guc_tables.c:2669 +#: utils/misc/guc_tables.c:2801 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "Maximal längd att läsa i förväg av WAL för att prefetch:a refererade datablock." -#: utils/misc/guc_tables.c:2679 +#: utils/misc/guc_tables.c:2811 msgid "Sets the size of WAL files held for standby servers." msgstr "Sätter storlek på WAL-filer som sparas för standby-servrar." -#: utils/misc/guc_tables.c:2690 +#: utils/misc/guc_tables.c:2822 msgid "Sets the minimum size to shrink the WAL to." msgstr "Sätter maximal storlek som WAL kan krympas till." -#: utils/misc/guc_tables.c:2702 +#: utils/misc/guc_tables.c:2834 msgid "Sets the WAL size that triggers a checkpoint." msgstr "Sätter WAL-storlek som triggar en checkpoint." -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2846 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "Sätter maximal tid mellan två automatiska WAL-checkpoint:er." -#: utils/misc/guc_tables.c:2725 +#: utils/misc/guc_tables.c:2857 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "Sätter maximal tid innan en varning ges för att stor WAL-volymn gör att checkpoint triggas för ofta." -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2859 msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." msgstr "Skriv ett meddelande i serverloggen om checkpoint:er som orsakas av fulla WAL-segmentfiler händer oftare än denna tid. Noll stänger av varningen." -#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 -#: utils/misc/guc_tables.c:2998 +#: utils/misc/guc_tables.c:2872 utils/misc/guc_tables.c:3090 +#: utils/misc/guc_tables.c:3144 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "Antal sidor varefter tidigare skrivningar flush:as till disk." -#: utils/misc/guc_tables.c:2751 +#: utils/misc/guc_tables.c:2883 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "Sätter antal buffrar för disksidor i delat minne för WAL." -#: utils/misc/guc_tables.c:2762 +#: utils/misc/guc_tables.c:2884 +msgid "Specify -1 to have this value determined as a fraction of shared_buffers." +msgstr "Ange -1 för att sätta detta värde till en bråkdel av shared_buffers." + +#: utils/misc/guc_tables.c:2894 msgid "Time between WAL flushes performed in the WAL writer." msgstr "Tid mellan WAL-flush:ar utförda i WAL-skrivaren." -#: utils/misc/guc_tables.c:2773 +#: utils/misc/guc_tables.c:2905 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "Mängden WAL utskrivna av WAL-skrivaren som triggar en flush." -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2916 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "Minimal storlek på ny fil som skall fsync:as istället för att skriva till WAL." -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2927 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "Sätter maximalt antal samtidigt körande WAL-sändarprocesser." -#: utils/misc/guc_tables.c:2806 +#: utils/misc/guc_tables.c:2938 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "Sätter maximalt antal samtidigt definierade replikeringsslottar." -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2948 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "Sätter maximalt WAL-storlek som kan reserveras av replikeringsslottar." -#: utils/misc/guc_tables.c:2817 +#: utils/misc/guc_tables.c:2949 msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." msgstr "Replikeringsslottar kommer markeras som misslyckade och segment kommer släppas till borttagning eller återanvändning när så här mycket plats används av WAL på disk." -#: utils/misc/guc_tables.c:2829 +#: utils/misc/guc_tables.c:2961 msgid "Sets the maximum time to wait for WAL replication." msgstr "Sätter maximal tid att vänta på WAL-replikering." -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2972 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "Sätter fördröjning i mikrosekunder mellan transaktions-commit ochj flush:ning av WAL till disk." -#: utils/misc/guc_tables.c:2852 -msgid "Sets the minimum number of concurrent open transactions required before performing commit_delay." -msgstr "Sätter minsta antal samtida öppna transaktioner som krävs innan vi utför en commit_delay." +#: utils/misc/guc_tables.c:2984 +msgid "Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"." +msgstr "Sätter minsta antal samtida öppna transaktioner som krävs innan vi utför en \"commit_delay\"." -#: utils/misc/guc_tables.c:2863 +#: utils/misc/guc_tables.c:2995 msgid "Sets the number of digits displayed for floating-point values." msgstr "Sätter antal siffror som visas för flyttalsvärden." -#: utils/misc/guc_tables.c:2864 +#: utils/misc/guc_tables.c:2996 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "Detta påverkar real, double precision och geometriska datatyper. Noll eller negativt parametervärde läggs till standard antal siffror (FLT_DIG eller DBL_DIG respektive). Ett värde större än noll väljer ett exakt utmatningsläge." -#: utils/misc/guc_tables.c:2876 +#: utils/misc/guc_tables.c:3008 msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." msgstr "Sätter minimal körtid där ett urval av långsammare satser kommer loggas. Urvalet bestämms av log_statement_sample_rate." -#: utils/misc/guc_tables.c:2879 +#: utils/misc/guc_tables.c:3011 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "Noll loggar ett urval som inkluderar alla frågor. -1 stänger av denna funktion." -#: utils/misc/guc_tables.c:2889 +#: utils/misc/guc_tables.c:3021 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "Sätter minimal körtid där alla långsammare satser kommer loggas." -#: utils/misc/guc_tables.c:2891 +#: utils/misc/guc_tables.c:3023 msgid "Zero prints all queries. -1 turns this feature off." msgstr "Noll skriver ut alla frågor. -1 stänger av denna finess." -#: utils/misc/guc_tables.c:2901 +#: utils/misc/guc_tables.c:3033 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "Sätter minimal körtid där långsammare autovacuum-operationer kommer loggas." -#: utils/misc/guc_tables.c:2903 +#: utils/misc/guc_tables.c:3035 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "Noll skriver ut alla operationer. -1 stänger av autovacuum." -#: utils/misc/guc_tables.c:2913 +#: utils/misc/guc_tables.c:3045 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "Sätter maximal längd i byte på data som loggas för bind-parametrar vid loggning av satser." -#: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 +#: utils/misc/guc_tables.c:3047 utils/misc/guc_tables.c:3059 msgid "-1 to print values in full." msgstr "-1 för att skriva ut hela värden." -#: utils/misc/guc_tables.c:2925 +#: utils/misc/guc_tables.c:3057 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "Sätter maximal längs i byte på data som loggas för bind-parametrar vid loggning av satser i samband med fel." -#: utils/misc/guc_tables.c:2937 +#: utils/misc/guc_tables.c:3069 msgid "Background writer sleep time between rounds." msgstr "Bakgrundsskrivarens sleep-tid mellan körningar." -#: utils/misc/guc_tables.c:2948 +#: utils/misc/guc_tables.c:3080 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "Bakgrundsskrivarens maximala antal LRU-sidor som flush:as per omgång." -#: utils/misc/guc_tables.c:2971 +#: utils/misc/guc_tables.c:3103 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_tables.c:2985 -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." +#: utils/misc/guc_tables.c:3117 +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." -#: utils/misc/guc_tables.c:3011 +#: utils/misc/guc_tables.c:3132 +msgid "Limit on the size of data reads and writes." +msgstr "Begränsa storlek på data för läsning och skrivning." + +#: utils/misc/guc_tables.c:3157 msgid "Maximum number of concurrent worker processes." msgstr "Maximalt antal samtidiga arbetsprocesser." -#: utils/misc/guc_tables.c:3023 +#: utils/misc/guc_tables.c:3169 msgid "Maximum number of logical replication worker processes." msgstr "Maximalt antal arbetsprocesser för logisk replikering." -#: utils/misc/guc_tables.c:3035 +#: utils/misc/guc_tables.c:3181 msgid "Maximum number of table synchronization workers per subscription." msgstr "Maximalt antal arbetare som synkroniserar tabeller per prenumeration." -#: utils/misc/guc_tables.c:3047 +#: utils/misc/guc_tables.c:3193 msgid "Maximum number of parallel apply workers per subscription." msgstr "Maximalt antal parallella arbetare som applicerar ändring per prenumeration." -#: utils/misc/guc_tables.c:3057 +#: utils/misc/guc_tables.c:3203 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "Sätter tiden vi väntar innan vi tvingar rotering av loggfil." -#: utils/misc/guc_tables.c:3069 +#: utils/misc/guc_tables.c:3215 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "Sätter maximalt storlek en loggfil kan bli innan vi tvingar rotering." -#: utils/misc/guc_tables.c:3081 +#: utils/misc/guc_tables.c:3227 msgid "Shows the maximum number of function arguments." msgstr "Visar maximalt antal funktionsargument." -#: utils/misc/guc_tables.c:3092 +#: utils/misc/guc_tables.c:3238 msgid "Shows the maximum number of index keys." msgstr "Visar maximalt antal indexnycklar." -#: utils/misc/guc_tables.c:3103 +#: utils/misc/guc_tables.c:3249 msgid "Shows the maximum identifier length." msgstr "Visar den maximala identifierarlängden." -#: utils/misc/guc_tables.c:3114 +#: utils/misc/guc_tables.c:3260 msgid "Shows the size of a disk block." msgstr "Visar storleken på ett diskblock." -#: utils/misc/guc_tables.c:3125 +#: utils/misc/guc_tables.c:3271 msgid "Shows the number of pages per disk file." msgstr "Visar antal sidor per diskfil." -#: utils/misc/guc_tables.c:3136 +#: utils/misc/guc_tables.c:3282 msgid "Shows the block size in the write ahead log." msgstr "Visar blockstorleken i the write-ahead-loggen." -#: utils/misc/guc_tables.c:3147 +#: utils/misc/guc_tables.c:3293 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "Sätter väntetiden innan databasen försöker ta emot WAL efter ett misslyckat försök." -#: utils/misc/guc_tables.c:3159 +#: utils/misc/guc_tables.c:3305 msgid "Shows the size of write ahead log segments." msgstr "Visar storleken på write-ahead-log-segment." -#: utils/misc/guc_tables.c:3172 +#: utils/misc/guc_tables.c:3318 +msgid "Time for which WAL summary files should be kept." +msgstr "Tid som filer för WAL-summering skall behållas." + +#: utils/misc/guc_tables.c:3331 msgid "Time to sleep between autovacuum runs." msgstr "Tid att sova mellan körningar av autovacuum." -#: utils/misc/guc_tables.c:3182 +#: utils/misc/guc_tables.c:3341 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "Minst antal tupel-uppdateringar eller raderingar innan vacuum." -#: utils/misc/guc_tables.c:3191 +#: utils/misc/guc_tables.c:3350 msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." msgstr "Minsta antal tupel-insert innnan vacuum eller -1 för att stänga av insert-vacuum." -#: utils/misc/guc_tables.c:3200 +#: utils/misc/guc_tables.c:3359 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "Minsta antal tupel-insert, -update eller -delete innan analyze." -#: utils/misc/guc_tables.c:3210 +#: utils/misc/guc_tables.c:3369 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "Ålder då autovacuum körs på en tabell för att förhindra wrapaound på transaktions-ID." -#: utils/misc/guc_tables.c:3222 +#: utils/misc/guc_tables.c:3381 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "Ålder på multixact då autovacuum körs på en tabell för att förhindra wrapaound på multixact." -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3391 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "Sätter maximalt antal samtidigt körande arbetsprocesser för autovacuum." -#: utils/misc/guc_tables.c:3242 +#: utils/misc/guc_tables.c:3401 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "Sätter maximalt antal parallella processer per underhållsoperation." -#: utils/misc/guc_tables.c:3252 +#: utils/misc/guc_tables.c:3411 msgid "Sets the maximum number of parallel processes per executor node." msgstr "Sätter maximalt antal parallella processer per exekveringsnod." -#: utils/misc/guc_tables.c:3263 +#: utils/misc/guc_tables.c:3422 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "Sätter maximalt antal parallella arbetare som kan vara aktiva på en gång." -#: utils/misc/guc_tables.c:3274 +#: utils/misc/guc_tables.c:3433 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "Sätter maximalt minne som kan användas av varje arbetsprocess för autovacuum." -#: utils/misc/guc_tables.c:3285 -msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken." -msgstr "Tid innan ett snapshot är för gammalt för att läsa sidor som ändrats efter snapshot:en tagits." - -#: utils/misc/guc_tables.c:3286 -msgid "A value of -1 disables this feature." -msgstr "Värdet -1 stänger av denna funktion." - -#: utils/misc/guc_tables.c:3296 +#: utils/misc/guc_tables.c:3444 msgid "Time between issuing TCP keepalives." msgstr "Tid mellan skickande av TCP-keepalive." -#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 -#: utils/misc/guc_tables.c:3432 +#: utils/misc/guc_tables.c:3445 utils/misc/guc_tables.c:3456 +#: utils/misc/guc_tables.c:3580 msgid "A value of 0 uses the system default." msgstr "Värdet 0 anger systemets standardvärde." -#: utils/misc/guc_tables.c:3307 +#: utils/misc/guc_tables.c:3455 msgid "Time between TCP keepalive retransmits." msgstr "Tid mellan omsändning av TCP-keepalive." -#: utils/misc/guc_tables.c:3318 +#: utils/misc/guc_tables.c:3466 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "SSL-förhandling stöds inte längre; denna kan bara vara 0." -#: utils/misc/guc_tables.c:3329 +#: utils/misc/guc_tables.c:3477 msgid "Maximum number of TCP keepalive retransmits." msgstr "Maximalt antal omsändningar av TCP-keepalive." -#: utils/misc/guc_tables.c:3330 +#: utils/misc/guc_tables.c:3478 msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." msgstr "Atalet keepalive-omsändingar i rad som kan försvinna innan en anslutning anses vara död. Värdet 0 betyder systemstandardvärdet." -#: utils/misc/guc_tables.c:3341 +#: utils/misc/guc_tables.c:3489 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "Sätter maximalt tillåtna resultat för exakt sökning med GIN." -#: utils/misc/guc_tables.c:3352 +#: utils/misc/guc_tables.c:3500 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "Sätter planerarens antagande om totala storleken på datacachen." -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3501 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "Det är totala storleken på cachen (kernelcache och delade buffertar) som användas för PostgreSQLs datafiler. Det mäts i disksidor som normalt är 8 kb styck." -#: utils/misc/guc_tables.c:3364 +#: utils/misc/guc_tables.c:3512 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "Sätter minsta mängd tabelldata för en parallell skanning." -#: utils/misc/guc_tables.c:3365 +#: utils/misc/guc_tables.c:3513 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "Om planeraren beräknar att den kommer läsa för få tabellsidor för att nå denna gräns så kommer den inte försöka med en parallell skanning." -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3523 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "Anger minimala mängden indexdata för en parallell scan." -#: utils/misc/guc_tables.c:3376 +#: utils/misc/guc_tables.c:3524 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "Om planeraren beräknar att den kommer läsa för få indexsidor för att nå denna gräns så kommer den inte försöka med en parallell skanning." -#: utils/misc/guc_tables.c:3387 +#: utils/misc/guc_tables.c:3535 msgid "Shows the server version as an integer." msgstr "Visar serverns version som ett heltal." -#: utils/misc/guc_tables.c:3398 +#: utils/misc/guc_tables.c:3546 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "Logga användning av temporära filer som är större än detta antal kilobyte." -#: utils/misc/guc_tables.c:3399 +#: utils/misc/guc_tables.c:3547 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "Noll loggar alla filer. Standard är -1 (stänger av denna finess)." -#: utils/misc/guc_tables.c:3409 +#: utils/misc/guc_tables.c:3557 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "Ställer in storleken reserverad för pg_stat_activity.query, i byte." -#: utils/misc/guc_tables.c:3420 +#: utils/misc/guc_tables.c:3568 msgid "Sets the maximum size of the pending list for GIN index." msgstr "Sätter maximal storlek på väntelistan för GIN-index." -#: utils/misc/guc_tables.c:3431 +#: utils/misc/guc_tables.c:3579 msgid "TCP user timeout." msgstr "Användartimeout för TCP." -#: utils/misc/guc_tables.c:3442 +#: utils/misc/guc_tables.c:3590 msgid "The size of huge page that should be requested." msgstr "Storleken på stora sidor skall hämtas." -#: utils/misc/guc_tables.c:3453 +#: utils/misc/guc_tables.c:3601 msgid "Aggressively flush system caches for debugging purposes." msgstr "Flush:a systemcache aggressivt för att förenkla debugging." -#: utils/misc/guc_tables.c:3476 +#: utils/misc/guc_tables.c:3624 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "Sätter tidsintervall mellan test för nedkoppling när frågor körs." -#: utils/misc/guc_tables.c:3487 +#: utils/misc/guc_tables.c:3635 msgid "Time between progress updates for long-running startup operations." msgstr "Tid mellan uppdatering av progress för startupoperationer som kör länge." -#: utils/misc/guc_tables.c:3489 +#: utils/misc/guc_tables.c:3637 msgid "0 turns this feature off." msgstr "0 stänger av denna finess." -#: utils/misc/guc_tables.c:3499 +#: utils/misc/guc_tables.c:3647 msgid "Sets the iteration count for SCRAM secret generation." msgstr "Sätter iterationsräknare för generering av SCRAM-hemlighet." -#: utils/misc/guc_tables.c:3519 +#: utils/misc/guc_tables.c:3667 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "Ställer in planerarens estimat av kostnaden för att hämta en disksida sekvensiellt." -#: utils/misc/guc_tables.c:3530 +#: utils/misc/guc_tables.c:3678 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "Ställer in planerarens estimat av kostnaden för att hämta en disksida icke-sekvensiellt." -#: utils/misc/guc_tables.c:3541 +#: utils/misc/guc_tables.c:3689 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "Ställer in planerarens estimat av kostnaden för att processa varje tupel (rad)." -#: utils/misc/guc_tables.c:3552 +#: utils/misc/guc_tables.c:3700 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "Sätter planerarens kostnadsuppskattning för att processa varje indexpost under en indexskanning." -#: utils/misc/guc_tables.c:3563 +#: utils/misc/guc_tables.c:3711 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "Sätter planerarens kostnadsuppskattning för att processa varje operator- eller funktions-anrop." -#: utils/misc/guc_tables.c:3574 +#: utils/misc/guc_tables.c:3722 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "Sätter planerarens kostnadsuppskattning för att skicka varje tupel (rad) från en arbetare till ledar-backend:en. " -#: utils/misc/guc_tables.c:3585 +#: utils/misc/guc_tables.c:3733 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "Sätter planerarens kostnadsuppskattning för att starta upp en arbetsprocess för en parallell fråga." -#: utils/misc/guc_tables.c:3597 +#: utils/misc/guc_tables.c:3745 msgid "Perform JIT compilation if query is more expensive." msgstr "Utför JIT-kompilering om frågan är dyrare." -#: utils/misc/guc_tables.c:3598 +#: utils/misc/guc_tables.c:3746 msgid "-1 disables JIT compilation." msgstr "-1 stänger av JIT-kompilering." -#: utils/misc/guc_tables.c:3608 +#: utils/misc/guc_tables.c:3756 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "Optimera JIT-kompilerade funktioner om frågan är dyrare." -#: utils/misc/guc_tables.c:3609 +#: utils/misc/guc_tables.c:3757 msgid "-1 disables optimization." msgstr "-1 stänger av optimering." -#: utils/misc/guc_tables.c:3619 +#: utils/misc/guc_tables.c:3767 msgid "Perform JIT inlining if query is more expensive." msgstr "Utför JIT-\"inlining\" om frågan är dyrare." -#: utils/misc/guc_tables.c:3620 +#: utils/misc/guc_tables.c:3768 msgid "-1 disables inlining." msgstr "-1 stänger av \"inlining\"" -#: utils/misc/guc_tables.c:3630 +#: utils/misc/guc_tables.c:3778 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "Sätter planerarens uppskattning av hur stor del av markörens rader som kommer hämtas. " -#: utils/misc/guc_tables.c:3642 +#: utils/misc/guc_tables.c:3790 msgid "Sets the planner's estimate of the average size of a recursive query's working table." msgstr "Sätter planerarens uppskattning av genomsnittliga storleken på en rekursiv frågas arbetstabell." -#: utils/misc/guc_tables.c:3654 +#: utils/misc/guc_tables.c:3802 msgid "GEQO: selective pressure within the population." msgstr "GEQO: selektionstryck inom populationen." -#: utils/misc/guc_tables.c:3665 +#: utils/misc/guc_tables.c:3813 msgid "GEQO: seed for random path selection." msgstr "GEQO: slumptalsfrö för val av slumpad sökväg." -#: utils/misc/guc_tables.c:3676 -msgid "Multiple of work_mem to use for hash tables." -msgstr "Multipel av work_mem för att använda till hash-tabeller." +#: utils/misc/guc_tables.c:3824 +msgid "Multiple of \"work_mem\" to use for hash tables." +msgstr "Multipel av \"work_mem\" för att använda till hash-tabeller." -#: utils/misc/guc_tables.c:3687 +#: utils/misc/guc_tables.c:3835 msgid "Multiple of the average buffer usage to free per round." msgstr "Multipel av genomsnittlig bufferanvändning som frias per runda." -#: utils/misc/guc_tables.c:3697 +#: utils/misc/guc_tables.c:3845 msgid "Sets the seed for random-number generation." msgstr "Sätter fröet för slumptalsgeneratorn." -#: utils/misc/guc_tables.c:3708 +#: utils/misc/guc_tables.c:3856 msgid "Vacuum cost delay in milliseconds." msgstr "Städkostfördröjning i millisekunder." -#: utils/misc/guc_tables.c:3719 +#: utils/misc/guc_tables.c:3867 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "Städkostfördröjning i millisekunder, för autovacuum." -#: utils/misc/guc_tables.c:3730 +#: utils/misc/guc_tables.c:3878 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "Antalet tupeluppdateringar eller borttagningar innan vacuum relativt reltuples." -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3888 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "Antal tupelinsättningar innan vacuum relativt reltuples." -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3898 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "Antalet tupelinsättningar, uppdateringar eller borttagningar innan analyze relativt reltuples." -#: utils/misc/guc_tables.c:3760 +#: utils/misc/guc_tables.c:3908 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." msgstr "Tid lagd på att flusha nedsmutsade buffrar vid checkpoint relativt checkpoint-intervallet." -#: utils/misc/guc_tables.c:3770 -msgid "Fraction of statements exceeding log_min_duration_sample to be logged." -msgstr "Bråkdel av satser som överskrider log_min_duration_sample som skall loggas." +#: utils/misc/guc_tables.c:3918 +msgid "Fraction of statements exceeding \"log_min_duration_sample\" to be logged." +msgstr "Bråkdel av satser som överskrider \"log_min_duration_sample\" som skall loggas." -#: utils/misc/guc_tables.c:3771 +#: utils/misc/guc_tables.c:3919 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "Använd ett värde mellan 0.0 (logga aldrig) och 1.0 (logga alltid)." -#: utils/misc/guc_tables.c:3780 +#: utils/misc/guc_tables.c:3928 msgid "Sets the fraction of transactions from which to log all statements." msgstr "Ställer in bråkdel av transaktionerna från vilka alla satser skall loggas." -#: utils/misc/guc_tables.c:3781 +#: utils/misc/guc_tables.c:3929 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "Använd ett värde mellan 0.0 (logga aldrig) till 1.0 (logga all satser i alla transaktioner)." -#: utils/misc/guc_tables.c:3800 +#: utils/misc/guc_tables.c:3948 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "Sätter shell-kommandot som kommer anropas för att arkivera en WAL-fil." -#: utils/misc/guc_tables.c:3801 +#: utils/misc/guc_tables.c:3949 msgid "This is used only if \"archive_library\" is not set." msgstr "Detta används enbart om \"archive_library\" inte är satt." -#: utils/misc/guc_tables.c:3810 +#: utils/misc/guc_tables.c:3958 msgid "Sets the library that will be called to archive a WAL file." msgstr "Sätter biblioteket som kommer anropas för att arkivera en WAL-fil." -#: utils/misc/guc_tables.c:3811 +#: utils/misc/guc_tables.c:3959 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "En tom sträng betyder att \"archive_command\" skall användas." -#: utils/misc/guc_tables.c:3820 +#: utils/misc/guc_tables.c:3968 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "Sätter shell-kommandot som kommer anropas för att få en arkiverad WAL-fil." -#: utils/misc/guc_tables.c:3830 +#: utils/misc/guc_tables.c:3978 msgid "Sets the shell command that will be executed at every restart point." msgstr "Sätter shell-kommandot som kommer anropas vid varje omstartspunkt." -#: utils/misc/guc_tables.c:3840 +#: utils/misc/guc_tables.c:3988 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "Sätter shell-kommandot som kommer anropas en gång i slutet av en återställning." -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:3998 msgid "Specifies the timeline to recover into." msgstr "Anger tidslinjen att återställa till." -#: utils/misc/guc_tables.c:3860 +#: utils/misc/guc_tables.c:4008 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "Sätt till \"immediate\" för att avsluta återställning så snart ett konsistent tillstånd uppnås." -#: utils/misc/guc_tables.c:3869 +#: utils/misc/guc_tables.c:4017 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "Sätter transaktions-ID som återställning kommer gå till." -#: utils/misc/guc_tables.c:3878 +#: utils/misc/guc_tables.c:4026 msgid "Sets the time stamp up to which recovery will proceed." msgstr "Sätter tidsstämpel som återställning kommer gå till." -#: utils/misc/guc_tables.c:3887 +#: utils/misc/guc_tables.c:4035 msgid "Sets the named restore point up to which recovery will proceed." msgstr "Sätter namngiven återställningspunkt som återställning kommer gå till." -#: utils/misc/guc_tables.c:3896 +#: utils/misc/guc_tables.c:4044 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "Sätter LSN för write-ahead-logg-position som återställning kommer få till." -#: utils/misc/guc_tables.c:3906 +#: utils/misc/guc_tables.c:4054 msgid "Sets the connection string to be used to connect to the sending server." msgstr "Sätter anslutningssträng som anvönds för att ansluta till skickande server." -#: utils/misc/guc_tables.c:3917 +#: utils/misc/guc_tables.c:4065 msgid "Sets the name of the replication slot to use on the sending server." msgstr "Sätter namnet på replikeringsslotten som skall användas av den skickande servern." -#: utils/misc/guc_tables.c:3927 +#: utils/misc/guc_tables.c:4075 msgid "Sets the client's character set encoding." msgstr "Ställer in klientens teckenkodning." -#: utils/misc/guc_tables.c:3938 +#: utils/misc/guc_tables.c:4086 msgid "Controls information prefixed to each log line." msgstr "Styr information prefixat till varje loggrad." -#: utils/misc/guc_tables.c:3939 +#: utils/misc/guc_tables.c:4087 msgid "If blank, no prefix is used." msgstr "Om tom så används inget prefix." -#: utils/misc/guc_tables.c:3948 +#: utils/misc/guc_tables.c:4096 msgid "Sets the time zone to use in log messages." msgstr "Sätter tidszonen som används i loggmeddelanden." -#: utils/misc/guc_tables.c:3958 +#: utils/misc/guc_tables.c:4106 msgid "Sets the display format for date and time values." msgstr "Sätter displayformat för datum och tidvärden." -#: utils/misc/guc_tables.c:3959 +#: utils/misc/guc_tables.c:4107 msgid "Also controls interpretation of ambiguous date inputs." msgstr "Styr också tolkning av tvetydig datumindata." -#: utils/misc/guc_tables.c:3970 +#: utils/misc/guc_tables.c:4118 msgid "Sets the default table access method for new tables." msgstr "Ställer in standard tabellaccessmetod för nya tabeller." -#: utils/misc/guc_tables.c:3981 +#: utils/misc/guc_tables.c:4129 msgid "Sets the default tablespace to create tables and indexes in." msgstr "Ställer in standard tabellutrymme där tabeller och index skapas." -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4130 msgid "An empty string selects the database's default tablespace." msgstr "En tom sträng väljer databasens standardtabellutrymme." -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4140 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "Ställer in tablespace för temporära tabeller och sorteringsfiler." -#: utils/misc/guc_tables.c:4003 +#: utils/misc/guc_tables.c:4151 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." msgstr "Sätter hurvida en CREATEROLE-användare automatiskt får rollen själva, och med vilka flaggor." -#: utils/misc/guc_tables.c:4015 +#: utils/misc/guc_tables.c:4163 msgid "Sets the path for dynamically loadable modules." msgstr "Sätter sökvägen till dynamiskt laddade moduler." -#: utils/misc/guc_tables.c:4016 +#: utils/misc/guc_tables.c:4164 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "Om en dynamiskt laddad modul behöver öppnas och det angivna namnet inte har en katalogkomponent (dvs, namnet inte innehåller snedstreck) så kommer systemet använda denna sökväg för filen." -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4177 msgid "Sets the location of the Kerberos server key file." msgstr "Ställer in platsen för Kerberos servernyckelfil." -#: utils/misc/guc_tables.c:4040 +#: utils/misc/guc_tables.c:4188 msgid "Sets the Bonjour service name." msgstr "Sätter Bonjour-tjänstens namn." -#: utils/misc/guc_tables.c:4050 +#: utils/misc/guc_tables.c:4198 msgid "Sets the language in which messages are displayed." msgstr "Sätter språket som meddelanden visas i." -#: utils/misc/guc_tables.c:4060 +#: utils/misc/guc_tables.c:4208 msgid "Sets the locale for formatting monetary amounts." msgstr "Sätter lokalen för att formattera monetära belopp." -#: utils/misc/guc_tables.c:4070 +#: utils/misc/guc_tables.c:4218 msgid "Sets the locale for formatting numbers." msgstr "Ställer in lokalen för att formattera nummer." -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4228 msgid "Sets the locale for formatting date and time values." msgstr "Sätter lokalen för att formattera datum och tider." -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4238 msgid "Lists shared libraries to preload into each backend." msgstr "Listar delade bibliotek som skall förladdas i varje backend." -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4249 msgid "Lists shared libraries to preload into server." msgstr "Listar delade bibliotek som skall förladdas i servern." -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4260 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "Listar ej priviligerade delade bibliotek som förladdas in i varje backend." -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4271 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "Sätter schemats sökordning för namn som inte är schema-prefixade." -#: utils/misc/guc_tables.c:4135 +#: utils/misc/guc_tables.c:4283 msgid "Shows the server (database) character set encoding." msgstr "Visar serverns (databasens) teckenkodning." -#: utils/misc/guc_tables.c:4147 +#: utils/misc/guc_tables.c:4295 msgid "Shows the server version." msgstr "Visar serverversionen" -#: utils/misc/guc_tables.c:4159 +#: utils/misc/guc_tables.c:4307 msgid "Sets the current role." msgstr "Ställer in den aktiva rollen." -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4319 msgid "Sets the session user name." msgstr "Sätter sessionens användarnamn." -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4330 msgid "Sets the destination for server log output." msgstr "Sätter serverloggens destination." -#: utils/misc/guc_tables.c:4183 +#: utils/misc/guc_tables.c:4331 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." msgstr "Giltiga värden är kombinationer av \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\" och \"eventlog\", beroende på plattform." -#: utils/misc/guc_tables.c:4194 +#: utils/misc/guc_tables.c:4342 msgid "Sets the destination directory for log files." msgstr "Sätter destinationskatalogen för loggfiler." -#: utils/misc/guc_tables.c:4195 +#: utils/misc/guc_tables.c:4343 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "Kan anges relativt datakatalogen eller som en absolut sökväg." -#: utils/misc/guc_tables.c:4205 +#: utils/misc/guc_tables.c:4353 msgid "Sets the file name pattern for log files." msgstr "Sätter filnamnsmallen för loggfiler." -#: utils/misc/guc_tables.c:4216 +#: utils/misc/guc_tables.c:4364 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Sätter programnamnet som används för att identifiera PostgreSQLs meddelanden i syslog." -#: utils/misc/guc_tables.c:4227 +#: utils/misc/guc_tables.c:4375 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "Sätter applikationsnamnet som används för att identifiera PostgreSQLs meddelanden i händelseloggen." -#: utils/misc/guc_tables.c:4238 +#: utils/misc/guc_tables.c:4386 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "Ställer in tidszon för visande och tolkande av tidsstämplar." -#: utils/misc/guc_tables.c:4248 +#: utils/misc/guc_tables.c:4396 msgid "Selects a file of time zone abbreviations." msgstr "Väljer en fil för tidszonsförkortningar." -#: utils/misc/guc_tables.c:4258 +#: utils/misc/guc_tables.c:4406 msgid "Sets the owning group of the Unix-domain socket." msgstr "Sätter ägande grupp för Unix-domainuttaget (socket)." -#: utils/misc/guc_tables.c:4259 +#: utils/misc/guc_tables.c:4407 msgid "The owning user of the socket is always the user that starts the server." msgstr "Ägaren av uttaget (socker) är alltid användaren som startar servern." -#: utils/misc/guc_tables.c:4269 +#: utils/misc/guc_tables.c:4417 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Ställer in kataloger där Unix-domän-uttag (socket) kommer skapas." -#: utils/misc/guc_tables.c:4280 +#: utils/misc/guc_tables.c:4428 msgid "Sets the host name or IP address(es) to listen to." msgstr "Sätter värdnamn eller IP-adress(er) att lyssna på." -#: utils/misc/guc_tables.c:4295 +#: utils/misc/guc_tables.c:4443 msgid "Sets the server's data directory." msgstr "Ställer in serverns datakatalog." -#: utils/misc/guc_tables.c:4306 +#: utils/misc/guc_tables.c:4454 msgid "Sets the server's main configuration file." msgstr "Sätter serverns huvudkonfigurationsfil." -#: utils/misc/guc_tables.c:4317 +#: utils/misc/guc_tables.c:4465 msgid "Sets the server's \"hba\" configuration file." msgstr "Sätter serverns \"hba\"-konfigurationsfil." -#: utils/misc/guc_tables.c:4328 +#: utils/misc/guc_tables.c:4476 msgid "Sets the server's \"ident\" configuration file." msgstr "Sätter serverns \"ident\"-konfigurationsfil." -#: utils/misc/guc_tables.c:4339 +#: utils/misc/guc_tables.c:4487 msgid "Writes the postmaster PID to the specified file." msgstr "Skriver postmaster-PID till angiven fil." -#: utils/misc/guc_tables.c:4350 +#: utils/misc/guc_tables.c:4498 msgid "Shows the name of the SSL library." msgstr "Visar namnet på SSL-biblioteket." -#: utils/misc/guc_tables.c:4365 +#: utils/misc/guc_tables.c:4513 msgid "Location of the SSL server certificate file." msgstr "Plats för serverns SSL-certifikatfil." -#: utils/misc/guc_tables.c:4375 +#: utils/misc/guc_tables.c:4523 msgid "Location of the SSL server private key file." msgstr "Plats för serverns privata SSL-nyckelfil." -#: utils/misc/guc_tables.c:4385 +#: utils/misc/guc_tables.c:4533 msgid "Location of the SSL certificate authority file." msgstr "Plats för SSL-certifikats auktoritetsfil." -#: utils/misc/guc_tables.c:4395 +#: utils/misc/guc_tables.c:4543 msgid "Location of the SSL certificate revocation list file." msgstr "Plats för SSL-certifikats återkallningsfil." -#: utils/misc/guc_tables.c:4405 +#: utils/misc/guc_tables.c:4553 msgid "Location of the SSL certificate revocation list directory." msgstr "Plats av katalog för SSL-certifikats återkallningslistor." -#: utils/misc/guc_tables.c:4415 +#: utils/misc/guc_tables.c:4563 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "Antalet synkrona standby och en lista med namn på potentiellt synkrona sådana." -#: utils/misc/guc_tables.c:4426 +#: utils/misc/guc_tables.c:4574 msgid "Sets default text search configuration." msgstr "Ställer in standard textsökkonfiguration." -#: utils/misc/guc_tables.c:4436 +#: utils/misc/guc_tables.c:4584 msgid "Sets the list of allowed SSL ciphers." msgstr "Ställer in listan med tillåtna SSL-krypton." -#: utils/misc/guc_tables.c:4451 +#: utils/misc/guc_tables.c:4599 msgid "Sets the curve to use for ECDH." msgstr "Ställer in kurvan att använda för ECDH." -#: utils/misc/guc_tables.c:4466 +#: utils/misc/guc_tables.c:4614 msgid "Location of the SSL DH parameters file." msgstr "Plats för SSL DH-parameterfil." -#: utils/misc/guc_tables.c:4477 +#: utils/misc/guc_tables.c:4625 msgid "Command to obtain passphrases for SSL." msgstr "Kommando för att hämta lösenfraser för SSL." -#: utils/misc/guc_tables.c:4488 +#: utils/misc/guc_tables.c:4636 msgid "Sets the application name to be reported in statistics and logs." msgstr "Sätter applikationsnamn som rapporteras i statistik och loggar." -#: utils/misc/guc_tables.c:4499 +#: utils/misc/guc_tables.c:4647 msgid "Sets the name of the cluster, which is included in the process title." msgstr "Sätter namnet på klustret som inkluderas i processtiteln." -#: utils/misc/guc_tables.c:4510 +#: utils/misc/guc_tables.c:4658 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "Sätter WAL-resurshanterare som WAL-konsistenskontoller görs med." -#: utils/misc/guc_tables.c:4511 +#: utils/misc/guc_tables.c:4659 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "Hela sidkopior kommer loggas för alla datablock och kontrolleras mot resultatet av en WAL-uppspelning." -#: utils/misc/guc_tables.c:4521 +#: utils/misc/guc_tables.c:4669 msgid "JIT provider to use." msgstr "JIT-leverantör som används." -#: utils/misc/guc_tables.c:4532 +#: utils/misc/guc_tables.c:4680 msgid "Log backtrace for errors in these functions." msgstr "Loggar backtrace vid fel i dessa funktioner." -#: utils/misc/guc_tables.c:4543 +#: utils/misc/guc_tables.c:4691 msgid "Use direct I/O for file access." msgstr "Använd direct-I/O för filaccess." -#: utils/misc/guc_tables.c:4563 +#: utils/misc/guc_tables.c:4702 +msgid "Lists streaming replication standby server replication slot names that logical WAL sender processes will wait for." +msgstr "Listar replikeringsslotnamn på server för replikering-standby som processen för skickande av logisk WAL väntar på." + +#: utils/misc/guc_tables.c:4704 +msgid "Logical WAL sender processes will send decoded changes to output plugins only after the specified replication slots have confirmed receiving WAL." +msgstr "Processen för skickande av logisk WAL skickar avkodade ändringar till utdata-plugin:er enbart efter att de angivna replikeringsslottarna bekräftat att de tagit emot WAL." + +#: utils/misc/guc_tables.c:4716 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "Förhindrar access till icke-system-relationer av angivna sorter." + +#: utils/misc/guc_tables.c:4736 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "Anger hurvida \"\\'\" tillåts i sträng-literaler." -#: utils/misc/guc_tables.c:4573 +#: utils/misc/guc_tables.c:4746 msgid "Sets the output format for bytea." msgstr "Ställer in output-format för bytea." -#: utils/misc/guc_tables.c:4583 +#: utils/misc/guc_tables.c:4756 msgid "Sets the message levels that are sent to the client." msgstr "Ställer in meddelandenivåer som skickas till klienten." -#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 -#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 +#: utils/misc/guc_tables.c:4757 utils/misc/guc_tables.c:4853 +#: utils/misc/guc_tables.c:4864 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "Varje nivå inkluderar de efterföljande nivåerna. Ju senare nivå destå färre meddlanden skickas." -#: utils/misc/guc_tables.c:4594 +#: utils/misc/guc_tables.c:4767 msgid "Enables in-core computation of query identifiers." msgstr "Slår på intern uträkning av identifierare för frågor." -#: utils/misc/guc_tables.c:4604 +#: utils/misc/guc_tables.c:4777 msgid "Enables the planner to use constraints to optimize queries." msgstr "Slår på planerarens användning av integritetsvillkor för att optimera frågor." -#: utils/misc/guc_tables.c:4605 +#: utils/misc/guc_tables.c:4778 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "Tabellskanningar kommer hoppas över om dess integritetsvillkor garanterar att inga rader komma matchas av frågan." -#: utils/misc/guc_tables.c:4616 +#: utils/misc/guc_tables.c:4789 msgid "Sets the default compression method for compressible values." msgstr "Ställer in standard komprimeringsmetod för komprimeringsbara värden." -#: utils/misc/guc_tables.c:4627 +#: utils/misc/guc_tables.c:4800 msgid "Sets the transaction isolation level of each new transaction." msgstr "Ställer in isolationsnivån för nya transaktioner." -#: utils/misc/guc_tables.c:4637 +#: utils/misc/guc_tables.c:4810 msgid "Sets the current transaction's isolation level." msgstr "Sätter den aktuella transaktionsisolationsnivån." -#: utils/misc/guc_tables.c:4648 +#: utils/misc/guc_tables.c:4821 msgid "Sets the display format for interval values." msgstr "Ställer in visningsformat för intervallvärden." -#: utils/misc/guc_tables.c:4659 +#: utils/misc/guc_tables.c:4832 msgid "Log level for reporting invalid ICU locale strings." msgstr "Loggnivå för rapportering av ogiltiga ICU-lokalsträngar." -#: utils/misc/guc_tables.c:4669 +#: utils/misc/guc_tables.c:4842 msgid "Sets the verbosity of logged messages." msgstr "Ställer in pratighet för loggade meddelanden." -#: utils/misc/guc_tables.c:4679 +#: utils/misc/guc_tables.c:4852 msgid "Sets the message levels that are logged." msgstr "Ställer in meddelandenivåer som loggas." -#: utils/misc/guc_tables.c:4690 +#: utils/misc/guc_tables.c:4863 msgid "Causes all statements generating error at or above this level to be logged." msgstr "Gör att alla satser som genererar fel vid eller över denna nivå kommer loggas." -#: utils/misc/guc_tables.c:4701 +#: utils/misc/guc_tables.c:4874 msgid "Sets the type of statements logged." msgstr "Ställer in vilken sorts satser som loggas." -#: utils/misc/guc_tables.c:4711 +#: utils/misc/guc_tables.c:4884 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "Ställer in syslog-\"facility\" som används när syslog är påslagen." -#: utils/misc/guc_tables.c:4722 +#: utils/misc/guc_tables.c:4895 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "Sätter sessionens beteende för triggrar och omskrivningsregler." -#: utils/misc/guc_tables.c:4732 +#: utils/misc/guc_tables.c:4905 msgid "Sets the current transaction's synchronization level." msgstr "Ställer in den nuvarande transaktionens synkroniseringsnivå." -#: utils/misc/guc_tables.c:4742 -msgid "Allows archiving of WAL files using archive_command." -msgstr "Tillåter arkivering av WAL-filer med hjälp av archive_command." +#: utils/misc/guc_tables.c:4915 +msgid "Allows archiving of WAL files using \"archive_command\"." +msgstr "Tillåter arkivering av WAL-filer med hjälp av \"archive_command\"." -#: utils/misc/guc_tables.c:4752 +#: utils/misc/guc_tables.c:4925 msgid "Sets the action to perform upon reaching the recovery target." msgstr "Sätter handling som skall utföras när återställningsmål nås." -#: utils/misc/guc_tables.c:4762 -msgid "Enables logging of recovery-related debugging information." -msgstr "Slår på loggning av återställningsrelaterad debug-information." - -#: utils/misc/guc_tables.c:4779 +#: utils/misc/guc_tables.c:4935 msgid "Collects function-level statistics on database activity." msgstr "Samlar in statistik på funktionsnivå över databasaktivitet." -#: utils/misc/guc_tables.c:4790 +#: utils/misc/guc_tables.c:4946 msgid "Sets the consistency of accesses to statistics data." msgstr "Sätter konsistensinställning för accesser av statistikdata." -#: utils/misc/guc_tables.c:4800 +#: utils/misc/guc_tables.c:4956 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "Komprimerar skrivning av hela sidor i WAL-filen med angiven metod." -#: utils/misc/guc_tables.c:4810 +#: utils/misc/guc_tables.c:4966 msgid "Sets the level of information written to the WAL." msgstr "Ställer in mängden information som skrivs till WAL." -#: utils/misc/guc_tables.c:4820 +#: utils/misc/guc_tables.c:4976 msgid "Selects the dynamic shared memory implementation used." msgstr "Väljer implementation som används för dynamiskt delat minne." -#: utils/misc/guc_tables.c:4830 +#: utils/misc/guc_tables.c:4986 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "Väljer implementation för delat minne som används för det delade minnets huvudregionen." -#: utils/misc/guc_tables.c:4840 +#: utils/misc/guc_tables.c:4996 msgid "Selects the method used for forcing WAL updates to disk." msgstr "Väljer metod för att tvinga WAL-uppdateringar till disk." -#: utils/misc/guc_tables.c:4850 +#: utils/misc/guc_tables.c:5006 msgid "Sets how binary values are to be encoded in XML." msgstr "Ställer in hur binära värden kodas i XML." -#: utils/misc/guc_tables.c:4860 +#: utils/misc/guc_tables.c:5016 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "Anger hurvida XML-data vid implicit parsning och serialiseringsoperationer ses som dokument eller innehållsfragment." -#: utils/misc/guc_tables.c:4871 +#: utils/misc/guc_tables.c:5027 msgid "Use of huge pages on Linux or Windows." msgstr "Använd stora sidor på Linux resp. Windows." -#: utils/misc/guc_tables.c:4881 +#: utils/misc/guc_tables.c:5037 +msgid "Indicates the status of huge pages." +msgstr "Visas status för stora sidor." + +#: utils/misc/guc_tables.c:5048 msgid "Prefetch referenced blocks during recovery." msgstr "Prefetch:a refererade block vid återställning." -#: utils/misc/guc_tables.c:4882 +#: utils/misc/guc_tables.c:5049 msgid "Look ahead in the WAL to find references to uncached data." msgstr "Sök framåt i WAL för att hitta referenser till icke cache:ad data." -#: utils/misc/guc_tables.c:4891 +#: utils/misc/guc_tables.c:5058 msgid "Forces the planner's use parallel query nodes." msgstr "Tvingar planeraren att använda parallella frågenoder." -#: utils/misc/guc_tables.c:4892 +#: utils/misc/guc_tables.c:5059 msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." msgstr "Detta är användbart för att testa infrastrukturen för parallella frågor genom att tvinga planeraren att generera planer som innehåller noder som skickar tupler mellan arbetare och huvudprocessen." -#: utils/misc/guc_tables.c:4904 +#: utils/misc/guc_tables.c:5071 msgid "Chooses the algorithm for encrypting passwords." msgstr "Väljer algoritm för att kryptera lösenord." -#: utils/misc/guc_tables.c:4914 +#: utils/misc/guc_tables.c:5081 msgid "Controls the planner's selection of custom or generic plan." msgstr "Styr planerarens användning av egendefinierad eller generell plan." -#: utils/misc/guc_tables.c:4915 +#: utils/misc/guc_tables.c:5082 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "Preparerade satser kan ha egendefinierade och generella planer och planeraren kommer försöka välja den som är bäst. Detta kan anges att övertrumfa standardbeteendet." -#: utils/misc/guc_tables.c:4927 +#: utils/misc/guc_tables.c:5094 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "Sätter minsta SSL/TLS-protokollversion som skall användas." -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5106 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "Sätter högsta SSL/TLS-protokollversion som skall användas." -#: utils/misc/guc_tables.c:4951 +#: utils/misc/guc_tables.c:5118 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "Ställer in metoden för att synkronisera datakatalogen innan kraschåterställning." -#: utils/misc/guc_tables.c:4960 +#: utils/misc/guc_tables.c:5127 msgid "Forces immediate streaming or serialization of changes in large transactions." msgstr "Tvingar omedelbar strömning eller serialisering av ändringar i stora transaktioner." -#: utils/misc/guc_tables.c:4961 +#: utils/misc/guc_tables.c:5128 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." msgstr "På publiceringssidan så tillåter detta strömning eller serialisering av varje ändring i den logiska kodningen. På prenumerationsstidan så tillåter det serialisering av alla ändringar till filer samt notifiering till den parallella appliceraren att läsa in och applicera dem i slutet av transaktionen." @@ -29585,8 +30820,8 @@ msgstr "På publiceringssidan så tillåter detta strömning eller serialisering msgid "internal error: unrecognized run-time parameter type\n" msgstr "internt fel: okänd parametertyp\n" -#: utils/misc/pg_controldata.c:48 utils/misc/pg_controldata.c:86 -#: utils/misc/pg_controldata.c:175 utils/misc/pg_controldata.c:214 +#: utils/misc/pg_controldata.c:50 utils/misc/pg_controldata.c:90 +#: utils/misc/pg_controldata.c:181 utils/misc/pg_controldata.c:222 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "uträknad CRC-checksumma matchar inte värdet som är lagrat i fil" @@ -29606,145 +30841,143 @@ msgstr "frågan påverkas av radsäkerhetspolicyn för tabell \"%s\"" msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." msgstr "För att slå av policyn för tabellens ägare, använd ALTER TABLE NO FORCE ROW LEVEL SECURITY." -#: utils/misc/timeout.c:524 +#: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" msgstr "kan inte lägga till fler timeoutskäl" -#: utils/misc/tzparser.c:60 +#: utils/misc/tzparser.c:61 #, c-format msgid "time zone abbreviation \"%s\" is too long (maximum %d characters) in time zone file \"%s\", line %d" msgstr "tidszonförkortningen \"%s\" är för lång (max %d tecken) i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:72 +#: utils/misc/tzparser.c:73 #, c-format msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "tidszonoffset %d är otanför giltigt intervall i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:111 +#: utils/misc/tzparser.c:112 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "tidszonförkortning saknas i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:120 +#: utils/misc/tzparser.c:121 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "tidszonoffset saknas i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:132 +#: utils/misc/tzparser.c:133 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "felaktigt nummer för tidszonsoffset i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:168 +#: utils/misc/tzparser.c:169 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "felaktig syntax i tidszonfilen \"%s\", rad %d" -#: utils/misc/tzparser.c:236 +#: utils/misc/tzparser.c:237 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "tidszonförkortningen \"%s\" är definierad flera gånger" -#: utils/misc/tzparser.c:238 +#: utils/misc/tzparser.c:239 #, c-format msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d." msgstr "Post i tidszonfilen \"%s\", rad %d, står i konflikt med post i filen \"%s\", rad %d." -#: utils/misc/tzparser.c:300 +#: utils/misc/tzparser.c:301 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "ogiltigt tidszonfilnamn: \"%s\"" -#: utils/misc/tzparser.c:313 +#: utils/misc/tzparser.c:314 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "tidszonfilens rekursiva maxtak överskridet i filen \"%s\"" -#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365 +#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "kunde inte läsa tidszonfil \"%s\": %m" -#: utils/misc/tzparser.c:376 +#: utils/misc/tzparser.c:377 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "raden är för lång i tidszonfil \"%s\", rad %d" -#: utils/misc/tzparser.c:400 +#: utils/misc/tzparser.c:401 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "@INCLUDE utan filnamn i tidszonfil \"%s\", rad %d" -#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 +#: utils/mmgr/aset.c:452 utils/mmgr/bump.c:184 utils/mmgr/generation.c:216 +#: utils/mmgr/slab.c:371 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "Misslyckades vid skapande av minneskontext \"%s\"." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:523 utils/mmgr/dsa.c:1364 #, c-format msgid "could not attach to dynamic shared area" msgstr "kunde inte ansluta till dynamisk delad area" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1155 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Misslyckades med förfrågan av storlek %zu i minneskontext \"%s\"." -#: utils/mmgr/mcxt.c:1210 +#: utils/mmgr/mcxt.c:1299 #, c-format msgid "logging memory contexts of PID %d" msgstr "loggar minneskontext för PID %d" -#: utils/mmgr/portalmem.c:188 +#: utils/mmgr/portalmem.c:187 #, c-format msgid "cursor \"%s\" already exists" msgstr "markör \"%s\" finns redan" -#: utils/mmgr/portalmem.c:192 +#: utils/mmgr/portalmem.c:191 #, c-format msgid "closing existing cursor \"%s\"" msgstr "stänger existerande markör \"%s\"" -#: utils/mmgr/portalmem.c:402 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "portal \"%s\" kan inte köras" -#: utils/mmgr/portalmem.c:480 +#: 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:488 +#: 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:739 +#: 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:1230 +#: utils/mmgr/portalmem.c:1232 #, 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" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %ld of temporary file" -msgstr "kunde inte söka (seek) till block %ld i temporärfil" +msgid "could not seek to block %lld of temporary file" +msgstr "kunde inte söka (seek) till block %lld i temporärfil" -#: utils/sort/sharedtuplestore.c:467 +#: utils/sort/sharedtuplestore.c:466 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "oväntad chunk i delad temporär lagringsfil för tupler" -#: utils/sort/sharedtuplestore.c:549 +#: utils/sort/sharedtuplestore.c:548 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "kunde inte söka (seek) till block %u i delad temporär lagringsfil för tupler" @@ -29754,17 +30987,17 @@ msgstr "kunde inte söka (seek) till block %u i delad temporär lagringsfil för 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/tuplesortvariants.c:1363 +#: utils/sort/tuplesortvariants.c:1552 #, c-format msgid "could not create unique index \"%s\"" msgstr "kunde inte skapa unikt index \"%s\"" -#: utils/sort/tuplesortvariants.c:1365 +#: utils/sort/tuplesortvariants.c:1554 #, c-format msgid "Key %s is duplicated." msgstr "Nyckeln %s är duplicerad." -#: utils/sort/tuplesortvariants.c:1366 +#: utils/sort/tuplesortvariants.c:1555 #, c-format msgid "Duplicate keys exist." msgstr "Duplicerade nycklar existerar." @@ -29778,540 +31011,57 @@ msgstr "Duplicerade nycklar existerar." msgid "could not seek in tuplestore temporary file" msgstr "kunde inte söka i temporär lagringsfil för tupler" -#: utils/time/snapmgr.c:571 +#: utils/time/snapmgr.c:536 #, c-format msgid "The source transaction is not running anymore." msgstr "Källtransaktionen kör inte längre." -#: utils/time/snapmgr.c:1166 +#: utils/time/snapmgr.c:1136 #, c-format msgid "cannot export a snapshot from a subtransaction" -msgstr "kan inte exportera ett snapshot från en subtransaktion" +msgstr "kan inte exportera ett snapshot från en undertransaktion" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 +#: utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 +#: utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 +#: utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 +#: utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "ogiltig snapshot-data i fil \"%s\"" -#: utils/time/snapmgr.c:1422 +#: utils/time/snapmgr.c:1393 #, 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:1431 +#: utils/time/snapmgr.c:1402 #, 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:1440 utils/time/snapmgr.c:1449 +#: utils/time/snapmgr.c:1411 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "ogiltig snapshot-identifierare: \"%s\"" -#: utils/time/snapmgr.c:1541 +#: utils/time/snapmgr.c:1426 +#, c-format +msgid "snapshot \"%s\" does not exist" +msgstr "snapshot \"%s\" existerar inte" + +#: utils/time/snapmgr.c:1524 #, 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:1545 +#: utils/time/snapmgr.c:1528 #, 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:1560 +#: utils/time/snapmgr.c:1543 #, c-format msgid "cannot import a snapshot from a different database" msgstr "kan inte importera en snapshot från en annan databas" - -#, c-format -#~ msgid " -n do not reinitialize shared memory after abnormal exit\n" -#~ msgstr " -n initiera inte delat minne på nytt efter onormal avstängning\n" - -#, c-format -#~ msgid " GSS (authenticated=%s, encrypted=%s)" -#~ msgstr "GSS (autentiserad=%s, krypterad=%s)" - -#, c-format -#~ msgid "Apply system library package updates." -#~ msgstr "Applicera paketuppdateringar för systembibliotek." - -#, c-format -#~ msgid "Close open transactions with multixacts soon to avoid wraparound problems." -#~ msgstr "Stäng öppna transaktioner med multixacts snart för att undvika \"wraparound\"." - -#~ msgid "Controls when to replicate or apply each change." -#~ msgstr "Styr när man skall replikera eller applicera en ändring." - -#, c-format -#~ msgid "FORMAT JSON has no effect for json and jsonb types" -#~ msgstr "FORMAT JSON har ingen effekt på typerna json och jsonb" - -#, c-format -#~ msgid "For example, FROM (SELECT ...) [AS] foo." -#~ msgstr "Till exempel, FROM (SELECT ...) [AS] foo" - -#, c-format -#~ msgid "For example, FROM (VALUES ...) [AS] foo." -#~ msgstr "Till exempel, FROM (VALUES ...) [AS] foo" - -#~ msgid "Forces use of parallel query facilities." -#~ msgstr "Tvingar användning av parallella frågefinesser." - -#, c-format -#~ msgid "Foreign tables cannot have TRUNCATE triggers." -#~ msgstr "Främmande tabeller kan inte ha TRUNCATE-triggrar." - -#~ msgid "If possible, run query using a parallel worker and with parallel restrictions." -#~ msgstr "Om det är möjligt så kör fråga med en parallell arbetare och med parallella begränsningar." - -#, 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." - -#, c-format -#~ msgid "LDAP over SSL is not supported on this platform." -#~ msgstr "LDAP över SSL stöds inte på denna plattform" - -#~ msgid "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any." -#~ msgstr "Antalet transaktioner som VACUUM och HOT-städning skall fördröjas (om någon)." - -#, c-format -#~ msgid "Object keys should be text." -#~ msgstr "Objektnycklar skall vara text." - -#, 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 "Utelämna genereringsuttrycket i definitionen av barntabellkolumnen för att ärva genereringsuttrycket från föräldratabellen." - -#~ msgid "Shows the character classification and case conversion locale." -#~ msgstr "Visar lokal för teckenklassificering samt skiftlägeskonvertering." - -#~ msgid "Shows the collation order locale." -#~ msgstr "Visar lokal för jämförelseordning." - -#~ msgid "Specifies a file name whose presence ends recovery in the standby." -#~ msgstr "Anger ett filnamn vars närvaro gör att återställning avslutas i en standby." - -#, c-format -#~ msgid "Subscribed publication %s is subscribing to other publications." -#~ msgid_plural "Subscribed publications %s are subscribing to other publications." -#~ msgstr[0] "Prenumererad publicering %s prenumererar på andra publiceringar." -#~ msgstr[1] "Prenumererade publiceringar %s prenumererar på andra publiceringar." - -#, c-format -#~ msgid "The owner of a subscription must be a superuser." -#~ msgstr "Ägaren av en prenumeration måste vara en superuser." - -#, c-format -#~ msgid "VALUES in FROM must have an alias" -#~ msgstr "VALUES i FROM måste ha ett alias" - -#, c-format -#~ msgid "Valid options in this context are: %s" -#~ msgstr "Giltiga flaggor i detta kontext är: %s" - -#, c-format -#~ msgid "You might need to increase max_locks_per_transaction." -#~ msgstr "Du kan behöva öka parametern max_locks_per_transaction." - -#, c-format -#~ msgid "You might need to increase max_logical_replication_workers." -#~ msgstr "Du kan behöva öka max_logical_replication_workers." - -#, 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." - -#, c-format -#~ msgid "You might need to increase max_worker_processes." -#~ msgstr "Du kan behöva öka max_worker_processes." - -#, c-format -#~ msgid "argument %d cannot be null" -#~ msgstr "argument %d kan inte vara null" - -#, c-format -#~ msgid "authentication file token too long, skipping: \"%s\"" -#~ msgstr "autentiseringsfil-token för lång, hoppar över: \"%s\"" - -#, c-format -#~ msgid "cannot convert partition \"%s\" to a view" -#~ msgstr "kan inte konvertera partition \"%s\" till en vy" - -#, c-format -#~ msgid "cannot convert partitioned table \"%s\" to a view" -#~ msgstr "kan inte konvertera partitionerad tabell \"%s\" till en vy" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "kan inte skapa token för begränsad åtkomst på denna plattorm: felkod %lu" - -#, c-format -#~ msgid "cannot read from logical replication slot \"%s\"" -#~ msgstr "kan inte läsa från logisk replikeringsslot \"%s\"" - -#, c-format -#~ msgid "column \"%s\" in child table has a conflicting generation expression" -#~ msgstr "kolumn \"%s\" i barntabell har ett motstridigt genereringsuttryck" - -#, c-format -#~ msgid "conversion with OID %u does not exist" -#~ msgstr "konvertering med OID %u existerar inte" - -#, 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" - -#, 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" - -#, 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" - -#, 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" - -#, 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" - -#, 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 triggrar" - -#, 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" - -#, c-format -#~ msgid "could not form array type name for type \"%s\"" -#~ msgstr "kunde inte skapa array-typnamn för typ \"%s\"" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not link file \"%s\" to \"%s\": %m" -#~ msgstr "kunde inte länka fil \"%s\" till \"%s\": %m" - -#, c-format -#~ msgid "could not load function _ldap_start_tls_sA in wldap32.dll" -#~ msgstr "kunde inte ladda funktionen _ldap_start_tls_sA i wldap32.dll" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "kunde inte ladda länkbibliotek \"%s\": felkod %lu" - -#, c-format -#~ msgid "could not load pg_hba.conf" -#~ msgstr "kunde inte ladda pg_hba.conf" - -#, c-format -#~ msgid "could not open secondary authentication file \"@%s\" as \"%s\": %m" -#~ msgstr "kunde inte öppna sekundär autentiseringsfil \"@%s\" som \"%s\": %m" - -#, c-format -#~ msgid "could not open usermap file \"%s\": %m" -#~ msgstr "kunde inte öppna användarmappningsfil \"%s\": %m" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "kunde inte läsa binär \"%s\"" - -#, c-format -#~ msgid "could not read block %ld of temporary file: read only %zu of %zu bytes" -#~ msgstr "kunde inte läsa block %ld i temporärfil: läste bara %zu av %zu byte" - -#, c-format -#~ msgid "could not read from hash-join temporary file: read only %zu of %zu bytes" -#~ msgstr "kunde inte läsa från hash-join-temporärfil: läste bara %zu av %zu byte" - -#, c-format -#~ msgid "could not read from shared tuplestore temporary file" -#~ msgstr "kunde inte läsa från delad temporär lagringsfil för tupler" - -#, c-format -#~ 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" - -#, c-format -#~ msgid "could not read from streaming transaction's changes file \"%s\": read only %zu of %zu bytes" -#~ msgstr "kunde inte läsa från strömmande transaktionens ändringsfil \"%s\": läste bara %zu av %zu byte" - -#, c-format -#~ msgid "could not read from streaming transaction's subxact file \"%s\": read only %zu of %zu bytes" -#~ msgstr "kunde inte läsa från strömmande transaktions subxact-fil \"%s\": läste bara %zu av %zu byte" - -#, c-format -#~ 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" - -#, c-format -#~ msgid "could not remove file or directory \"%s\": %m" -#~ msgstr "kunde inte ta bort fil eller katalog \"%s\": %m" - -#, c-format -#~ msgid "could not stat promote trigger file \"%s\": %m" -#~ msgstr "kunde inte göra stat() på triggerfil för befordring \"%s\": %m" - -#, c-format -#~ msgid "duplicate JSON key %s" -#~ msgstr "Duplicerad JSON-nyckel %s" - -#, c-format -#~ msgid "duplicate JSON object key" -#~ msgstr "duplicerad nyckel i JSON-objekt" - -#, c-format -#~ msgid "extension with OID %u does not exist" -#~ msgstr "utökning med OID %u existerar inte" - -#, c-format -#~ msgid "generated columns are not supported on partitions" -#~ msgstr "genererade kolumner stöds inte för partitioner" - -#, c-format -#~ msgid "gtsvector_in not implemented" -#~ msgstr "gtsvector_in är inte implementerad" - -#, c-format -#~ msgid "invalid checkpoint link in backup_label file" -#~ msgstr "ogiltig checkpoint-länk i \"backup_label\"-fil" - -#, c-format -#~ msgid "invalid info bits %04X in log segment %s, offset %u" -#~ msgstr "ogiltiga infobitar %04X i loggsegment %s, offset %u" - -#, c-format -#~ msgid "invalid length of primary checkpoint record" -#~ msgstr "ogiltig längd i primär checkpoint-post" - -#, c-format -#~ msgid "invalid magic number %04X in log segment %s, offset %u" -#~ msgstr "felaktigt magiskt nummer %04X i loggsegment %s, offset %u" - -#, c-format -#~ msgid "invalid primary checkpoint link in control file" -#~ msgstr "ogiltig primär checkpoint-länk i kontrollfil" - -#, c-format -#~ msgid "invalid primary checkpoint record" -#~ msgstr "ogiltig primär checkpoint-post" - -#, 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" - -#, c-format -#~ msgid "invalid record offset at %X/%X" -#~ msgstr "ogiltig postoffset vid %X/%X" - -#, c-format -#~ msgid "invalid resource manager ID in primary checkpoint record" -#~ msgstr "ogiltig resurshanterar-ID i primär checkpoint-post" - -#, c-format -#~ msgid "invalid xl_info in primary checkpoint record" -#~ msgstr "ogiltig xl_info i primär checkpoint-post" - -#, 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" - -#, c-format -#~ msgid "language with OID %u does not exist" -#~ msgstr "språk med OID %u existerar inte" - -#, c-format -#~ msgid "local connections are not supported by this build" -#~ msgstr "lokala anslutningar stöds inte av detta bygge" - -#, c-format -#~ msgid "logical decoding cannot be used while in recovery" -#~ msgstr "logisk avkodning kan inte användas under återställning" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "det saknas en contrecord vid %X/%X" - -#, 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" - -#, c-format -#~ msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend" -#~ msgstr "måste vara medlem i den roll vars fråga håller på att avbrytas eller medlem i pg_signal_backend" - -#, c-format -#~ msgid "must be a superuser to cancel superuser query" -#~ msgstr "måste vara superuser för att avbryta en superusers fråga" - -#, c-format -#~ msgid "must be a superuser to terminate superuser process" -#~ msgstr "måste vara superuser för stoppa en superusers process" - -#, c-format -#~ msgid "must be superuser or have privileges of pg_checkpoint to do CHECKPOINT" -#~ msgstr "måste vara superuser eller ha rättigheter från pg_checkpoint att göra CHECKPOINT" - -#, c-format -#~ msgid "must be superuser or have privileges of pg_read_all_settings to examine \"%s\"" -#~ msgstr "måste vara superuser eller ha rättigheter från pg_read_all_settings för att undersöka \"%s\"" - -#, c-format -#~ msgid "must be superuser or replication role to start walsender" -#~ msgstr "måste vara superuser eller replikeringsroll för att starta \"walsender\"" - -#, c-format -#~ msgid "must be superuser or replication role to use replication slots" -#~ msgstr "måste vara superuser eller replikeringsroll för att använda replikeringsslottar" - -#, c-format -#~ msgid "must be superuser to alter replication roles or change replication attribute" -#~ msgstr "måste vara en superuser eller replikeringsroll för att använda replikeringsslottar" - -#, c-format -#~ msgid "must be superuser to alter superuser roles or change superuser attribute" -#~ msgstr "måste vara superuser för ändra superuser-roller eller ändra superuser-attribut" - -#, c-format -#~ msgid "must be superuser to alter superusers" -#~ msgstr "måste vara en superuser för att ändra en superuser" - -#, c-format -#~ msgid "must be superuser to change bypassrls attribute" -#~ msgstr "måste vara en superuser för ändra bypassrls-attribut" - -#, c-format -#~ msgid "must be superuser to create bypassrls users" -#~ msgstr "måste vara en superuser för att skapa bypassrls-användare" - -#, c-format -#~ msgid "must be superuser to create replication users" -#~ msgstr "måste vara en superuser för att skapa replikeringsanvändare" - -#, c-format -#~ msgid "must be superuser to create subscriptions" -#~ msgstr "måste vara en superuser för att skapa prenumerationer" - -#, c-format -#~ msgid "must be superuser to create superusers" -#~ msgstr "måste vara en superuser för att skapa nya superuser" - -#, c-format -#~ msgid "must be superuser to drop superusers" -#~ msgstr "måste vara en superuser för att ta bort en superuser" - -#, c-format -#~ msgid "must be superuser to rename superusers" -#~ msgstr "måste vara en superuser för att döpa om en superúser" - -#, c-format -#~ msgid "must be superuser to set grantor" -#~ msgstr "måste vara en superuser för att sätta fullmaktsgivare" - -#, c-format -#~ msgid "must be superuser to skip transaction" -#~ msgstr "måste vara en superuser för att hoppa över transaktioner" - -#, c-format -#~ msgid "must have CREATEROLE privilege" -#~ msgstr "måste ha rättigheten CREATEROLE" - -#, c-format -#~ msgid "oldest xmin is far in the past" -#~ msgstr "äldsta xmin är från lång tid tillbaka" - -#, c-format -#~ msgid "operator class with OID %u does not exist" -#~ msgstr "operatorklass med OID %u existerar inte" - -#, c-format -#~ msgid "operator family with OID %u does not exist" -#~ msgstr "operatorfamilj med OID %u existerar inte" - -#, c-format -#~ msgid "operator with OID %u does not exist" -#~ msgstr "operator med OID %u existerar inte" - -# FIXME -#, 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" - -#, c-format -#~ msgid "permission denied to change owner of subscription \"%s\"" -#~ msgstr "rättighet saknas för att byta ägare på prenumeration \"%s\"" - -#, c-format -#~ msgid "promote trigger file found: %s" -#~ msgstr "triggerfil för befordring hittad: %s" - -#, c-format -#~ msgid "select() failed in postmaster: %m" -#~ msgstr "select() misslyckades i postmaster: %m" - -#, c-format -#~ msgid "skipping \"%s\" --- only superuser can analyze it" -#~ msgstr "hoppar över \"%s\" --- bara superuser kan analysera den" - -#, c-format -#~ msgid "skipping \"%s\" --- only superuser can vacuum it" -#~ msgstr "hoppar över \"%s\" --- bara en superuser kan städa den" - -#, c-format -#~ msgid "skipping \"%s\" --- only superuser or database owner can analyze it" -#~ msgstr "hoppar över \"%s\" --- bara superuser eller databasägaren kan analysera den" - -#, c-format -#~ msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" -#~ msgstr "hoppar över \"%s\" --- bara en superuser eller databasägaren kan städa den" - -#, c-format -#~ msgid "skipping \"%s\" --- only table or database owner can analyze it" -#~ msgstr "hoppar över \"%s\" --- bara tabell eller databasägaren kan analysera den" - -#, c-format -#~ msgid "skipping \"%s\" --- only table or database owner can vacuum it" -#~ msgstr "hoppar över \"%s\" --- bara tabell eller databasägaren kan köra vacuum på den" - -#, c-format -#~ msgid "statistics object with OID %u does not exist" -#~ msgstr "statistikobjekt med OID %u finns inte" - -#, c-format -#~ msgid "subquery in FROM must have an alias" -#~ msgstr "subfråga i FROM måste ha ett alias" - -#, c-format -#~ msgid "tables were not subscribed, you will have to run %s to subscribe the tables" -#~ msgstr "tabellerna prenumererades inte på, du behöver köra %s för att prenumerera på dessa tabeller" - -#, c-format -#~ msgid "tablespaces are not supported on this platform" -#~ msgstr "tabellutrymmen stöds inte på denna plattform" - -#, c-format -#~ msgid "text search configuration with OID %u does not exist" -#~ msgstr "textsökkonfiguration med OID %u existerar inte" - -#, c-format -#~ msgid "text search dictionary with OID %u does not exist" -#~ msgstr "textsökordlista med OID %u existerar inte" - -#, c-format -#~ msgid "unexpected EOF for tape %p: requested %zu bytes, read %zu bytes" -#~ msgstr "oväntat EOF för band %p: efterfrågade %zu byte, läste %zu byte" - -#, c-format -#~ msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" -#~ msgstr "oväntad sidadress %X/%X i loggsegment %s, offset %u" diff --git a/src/backend/po/uk.po b/src/backend/po/uk.po index 1e9c7943db916..6c4c0add9ee56 100644 --- a/src/backend/po/uk.po +++ b/src/backend/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-09 18:10+0000\n" -"PO-Revision-Date: 2024-02-11 17:37+0100\n" +"POT-Creation-Date: 2024-09-23 10:41+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,9 +14,13 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/postgres.pot\n" -"X-Crowdin-File-ID: 951\n" -"X-Generator: Poedit 3.4.2\n" +"X-Crowdin-File: /REL_17_STABLE/postgres.pot\n" +"X-Crowdin-File-ID: 988\n" + +#: ../common/binaryheap.c:121 ../common/binaryheap.c:159 +#, c-format +msgid "out of binary heap slots" +msgstr "недостатньо слотів двійкової купи" #: ../common/compression.c:132 ../common/compression.c:141 #: ../common/compression.c:150 @@ -75,209 +79,225 @@ msgstr "алгоритм стиснення \"%s\" не підтримує ре msgid "not recorded" msgstr "не записано" -#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 -#: commands/copyfrom.c:1687 commands/extension.c:3480 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:93 ../common/controldata_utils.c:97 +#: commands/copyfrom.c:1739 commands/extension.c:3538 utils/adt/genfile.c:123 +#: utils/time/snapmgr.c:1430 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 +#: ../common/controldata_utils.c:108 ../common/controldata_utils.c:110 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1347 access/transam/xlog.c:3195 -#: access/transam/xlog.c:3998 access/transam/xlogrecovery.c:1225 -#: access/transam/xlogrecovery.c:1317 access/transam/xlogrecovery.c:1354 -#: access/transam/xlogrecovery.c:1414 backup/basebackup.c:1842 -#: commands/extension.c:3490 libpq/hba.c:769 replication/logical/origin.c:745 -#: replication/logical/origin.c:781 replication/logical/reorderbuffer.c:5050 -#: replication/logical/snapbuild.c:2031 replication/slot.c:1953 -#: replication/slot.c:1994 replication/walsender.c:643 +#: access/transam/twophase.c:1369 access/transam/xlog.c:3476 +#: access/transam/xlog.c:4340 access/transam/xlogrecovery.c:1238 +#: access/transam/xlogrecovery.c:1336 access/transam/xlogrecovery.c:1373 +#: access/transam/xlogrecovery.c:1440 backup/basebackup.c:2123 +#: backup/walsummary.c:283 commands/extension.c:3548 libpq/hba.c:764 +#: replication/logical/origin.c:745 replication/logical/origin.c:781 +#: replication/logical/reorderbuffer.c:5108 +#: replication/logical/snapbuild.c:2052 replication/slot.c:2236 +#: replication/slot.c:2277 replication/walsender.c:655 #: storage/file/buffile.c:470 storage/file/copydir.c:185 -#: utils/adt/genfile.c:197 utils/adt/misc.c:984 utils/cache/relmapper.c:830 +#: utils/adt/genfile.c:197 utils/adt/misc.c:1028 utils/cache/relmapper.c:829 #, c-format msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" -#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 -#: access/transam/xlog.c:3200 access/transam/xlog.c:4003 -#: backup/basebackup.c:1846 replication/logical/origin.c:750 -#: replication/logical/origin.c:789 replication/logical/snapbuild.c:2036 -#: replication/slot.c:1957 replication/slot.c:1998 replication/walsender.c:648 -#: utils/cache/relmapper.c:834 +#: ../common/controldata_utils.c:116 ../common/controldata_utils.c:119 +#: access/transam/xlog.c:3481 access/transam/xlog.c:4345 +#: replication/logical/origin.c:750 replication/logical/origin.c:789 +#: replication/logical/snapbuild.c:2057 replication/slot.c:2240 +#: replication/slot.c:2281 replication/walsender.c:660 +#: utils/cache/relmapper.c:833 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" -#: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 -#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:266 -#: access/heap/rewriteheap.c:1175 access/heap/rewriteheap.c:1280 +#: ../common/controldata_utils.c:128 ../common/controldata_utils.c:132 +#: ../common/controldata_utils.c:277 ../common/controldata_utils.c:280 +#: access/heap/rewriteheap.c:1141 access/heap/rewriteheap.c:1246 #: access/transam/timeline.c:392 access/transam/timeline.c:438 -#: access/transam/timeline.c:512 access/transam/twophase.c:1359 -#: access/transam/twophase.c:1771 access/transam/xlog.c:3041 -#: access/transam/xlog.c:3235 access/transam/xlog.c:3240 -#: access/transam/xlog.c:3376 access/transam/xlog.c:3968 -#: access/transam/xlog.c:4887 commands/copyfrom.c:1747 commands/copyto.c:332 +#: access/transam/timeline.c:512 access/transam/twophase.c:1381 +#: access/transam/twophase.c:1793 access/transam/xlog.c:3322 +#: access/transam/xlog.c:3516 access/transam/xlog.c:3521 +#: access/transam/xlog.c:3657 access/transam/xlog.c:4310 +#: access/transam/xlog.c:5245 commands/copyfrom.c:1799 commands/copyto.c:325 #: libpq/be-fsstubs.c:470 libpq/be-fsstubs.c:540 #: replication/logical/origin.c:683 replication/logical/origin.c:822 -#: replication/logical/reorderbuffer.c:5102 -#: replication/logical/snapbuild.c:1798 replication/logical/snapbuild.c:1922 -#: replication/slot.c:1844 replication/slot.c:2005 replication/walsender.c:658 -#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:782 -#: storage/file/fd.c:3700 storage/file/fd.c:3806 utils/cache/relmapper.c:842 -#: utils/cache/relmapper.c:957 +#: replication/logical/reorderbuffer.c:5160 +#: replication/logical/snapbuild.c:1819 replication/logical/snapbuild.c:1943 +#: replication/slot.c:2126 replication/slot.c:2288 replication/walsender.c:670 +#: storage/file/copydir.c:208 storage/file/copydir.c:213 storage/file/fd.c:828 +#: storage/file/fd.c:3753 storage/file/fd.c:3859 utils/cache/relmapper.c:841 +#: utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: ../common/controldata_utils.c:154 +#: ../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "неправильний порядок байтів" -#: ../common/controldata_utils.c:156 +#: ../common/controldata_utils.c:170 #, c-format -msgid "" -"possible byte ordering mismatch\n" +msgid "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." -msgstr "" -"можлива помилка у послідовності байтів.\n" +msgstr "можлива помилка у послідовності байтів.\n" "Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." -#: ../common/controldata_utils.c:211 ../common/controldata_utils.c:216 -#: ../common/file_utils.c:228 ../common/file_utils.c:287 -#: ../common/file_utils.c:361 access/heap/rewriteheap.c:1263 -#: access/transam/timeline.c:111 access/transam/timeline.c:251 -#: access/transam/timeline.c:348 access/transam/twophase.c:1303 -#: access/transam/xlog.c:2948 access/transam/xlog.c:3111 -#: access/transam/xlog.c:3150 access/transam/xlog.c:3343 -#: access/transam/xlog.c:3988 access/transam/xlogrecovery.c:4213 -#: access/transam/xlogrecovery.c:4316 access/transam/xlogutils.c:838 -#: backup/basebackup.c:538 backup/basebackup.c:1512 libpq/hba.c:629 -#: postmaster/syslogger.c:1560 replication/logical/origin.c:735 -#: replication/logical/reorderbuffer.c:3706 -#: replication/logical/reorderbuffer.c:4257 -#: replication/logical/reorderbuffer.c:5030 -#: replication/logical/snapbuild.c:1753 replication/logical/snapbuild.c:1863 -#: replication/slot.c:1925 replication/walsender.c:616 -#: replication/walsender.c:2731 storage/file/copydir.c:151 -#: storage/file/fd.c:757 storage/file/fd.c:3457 storage/file/fd.c:3687 -#: storage/file/fd.c:3777 storage/smgr/md.c:663 utils/cache/relmapper.c:819 -#: utils/cache/relmapper.c:936 utils/error/elog.c:2086 -#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1671 -#: utils/init/miscinit.c:1748 utils/misc/guc.c:4609 utils/misc/guc.c:4659 +#: ../common/controldata_utils.c:225 ../common/controldata_utils.c:230 +#: ../common/file_utils.c:70 ../common/file_utils.c:347 +#: ../common/file_utils.c:406 ../common/file_utils.c:480 +#: access/heap/rewriteheap.c:1229 access/transam/timeline.c:111 +#: access/transam/timeline.c:251 access/transam/timeline.c:348 +#: access/transam/twophase.c:1325 access/transam/xlog.c:3229 +#: access/transam/xlog.c:3392 access/transam/xlog.c:3431 +#: access/transam/xlog.c:3624 access/transam/xlog.c:4330 +#: access/transam/xlogrecovery.c:4263 access/transam/xlogrecovery.c:4366 +#: access/transam/xlogutils.c:836 backup/basebackup.c:547 +#: backup/basebackup.c:1598 backup/walsummary.c:220 libpq/hba.c:624 +#: postmaster/syslogger.c:1511 replication/logical/origin.c:735 +#: replication/logical/reorderbuffer.c:3761 +#: replication/logical/reorderbuffer.c:4315 +#: replication/logical/reorderbuffer.c:5088 +#: replication/logical/snapbuild.c:1774 replication/logical/snapbuild.c:1884 +#: replication/slot.c:2208 replication/walsender.c:628 +#: replication/walsender.c:3051 storage/file/copydir.c:151 +#: storage/file/fd.c:803 storage/file/fd.c:3510 storage/file/fd.c:3740 +#: storage/file/fd.c:3830 storage/smgr/md.c:661 utils/cache/relmapper.c:818 +#: utils/cache/relmapper.c:935 utils/error/elog.c:2124 +#: utils/init/miscinit.c:1526 utils/init/miscinit.c:1660 +#: utils/init/miscinit.c:1737 utils/misc/guc.c:4736 utils/misc/guc.c:4786 #, c-format msgid "could not open file \"%s\": %m" msgstr "не можливо відкрити файл \"%s\": %m" -#: ../common/controldata_utils.c:232 ../common/controldata_utils.c:235 -#: access/transam/twophase.c:1744 access/transam/twophase.c:1753 -#: access/transam/xlog.c:8757 access/transam/xlogfuncs.c:708 -#: backup/basebackup_server.c:175 backup/basebackup_server.c:268 -#: postmaster/postmaster.c:5573 postmaster/syslogger.c:1571 -#: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:948 +#: ../common/controldata_utils.c:246 ../common/controldata_utils.c:249 +#: access/transam/twophase.c:1766 access/transam/twophase.c:1775 +#: access/transam/xlog.c:9255 access/transam/xlogfuncs.c:698 +#: backup/basebackup_server.c:173 backup/basebackup_server.c:266 +#: backup/walsummary.c:304 postmaster/postmaster.c:4125 +#: postmaster/syslogger.c:1522 postmaster/syslogger.c:1535 +#: postmaster/syslogger.c:1548 utils/cache/relmapper.c:947 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: ../common/controldata_utils.c:249 ../common/controldata_utils.c:254 -#: ../common/file_utils.c:299 ../common/file_utils.c:369 -#: access/heap/rewriteheap.c:959 access/heap/rewriteheap.c:1169 -#: access/heap/rewriteheap.c:1274 access/transam/timeline.c:432 -#: access/transam/timeline.c:506 access/transam/twophase.c:1765 -#: access/transam/xlog.c:3034 access/transam/xlog.c:3229 -#: access/transam/xlog.c:3961 access/transam/xlog.c:8147 -#: access/transam/xlog.c:8192 backup/basebackup_server.c:209 -#: commands/dbcommands.c:515 replication/logical/snapbuild.c:1791 -#: replication/slot.c:1830 replication/slot.c:1935 storage/file/fd.c:774 -#: storage/file/fd.c:3798 storage/smgr/md.c:1135 storage/smgr/md.c:1180 -#: storage/sync/sync.c:451 utils/misc/guc.c:4379 +#: ../common/controldata_utils.c:263 ../common/controldata_utils.c:268 +#: ../common/file_utils.c:418 ../common/file_utils.c:488 +#: access/heap/rewriteheap.c:925 access/heap/rewriteheap.c:1135 +#: access/heap/rewriteheap.c:1240 access/transam/timeline.c:432 +#: access/transam/timeline.c:506 access/transam/twophase.c:1787 +#: access/transam/xlog.c:3315 access/transam/xlog.c:3510 +#: access/transam/xlog.c:4303 access/transam/xlog.c:8630 +#: access/transam/xlog.c:8675 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1812 +#: replication/slot.c:2112 replication/slot.c:2218 storage/file/fd.c:820 +#: storage/file/fd.c:3851 storage/smgr/md.c:1329 storage/smgr/md.c:1374 +#: storage/sync/sync.c:446 utils/misc/guc.c:4489 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не вдалося fsync файл \"%s\": %m" -#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:133 -#: ../common/cryptohash_openssl.c:332 ../common/exec.c:550 ../common/exec.c:595 -#: ../common/exec.c:687 ../common/hmac.c:309 ../common/hmac.c:325 -#: ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 -#: ../common/md5_common.c:155 ../common/psprintf.c:143 -#: ../common/scram-common.c:269 ../common/stringinfo.c:305 ../port/path.c:751 -#: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1412 -#: access/transam/xlogrecovery.c:589 lib/dshash.c:253 libpq/auth.c:1343 -#: libpq/auth.c:1387 libpq/auth.c:1944 libpq/be-secure-gssapi.c:524 -#: postmaster/bgworker.c:352 postmaster/bgworker.c:934 -#: postmaster/postmaster.c:2537 postmaster/postmaster.c:4130 -#: postmaster/postmaster.c:5498 postmaster/postmaster.c:5869 -#: replication/libpqwalreceiver/libpqwalreceiver.c:361 -#: replication/logical/logical.c:208 replication/walsender.c:686 -#: storage/buffer/localbuf.c:601 storage/file/fd.c:866 storage/file/fd.c:1397 -#: storage/file/fd.c:1558 storage/file/fd.c:2478 storage/ipc/procarray.c:1449 -#: storage/ipc/procarray.c:2231 storage/ipc/procarray.c:2238 -#: storage/ipc/procarray.c:2737 storage/ipc/procarray.c:3373 -#: utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 -#: utils/adt/formatting.c:1935 utils/adt/pg_locale.c:473 -#: utils/adt/pg_locale.c:637 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:514 -#: utils/hash/dynahash.c:614 utils/hash/dynahash.c:1111 utils/mb/mbutils.c:402 -#: utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 -#: utils/misc/guc.c:640 utils/misc/guc.c:665 utils/misc/guc.c:1053 -#: utils/misc/guc.c:4357 utils/misc/tzparser.c:476 utils/mmgr/aset.c:445 -#: utils/mmgr/dsa.c:714 utils/mmgr/dsa.c:736 utils/mmgr/dsa.c:817 -#: utils/mmgr/generation.c:205 utils/mmgr/mcxt.c:1046 utils/mmgr/mcxt.c:1082 -#: utils/mmgr/mcxt.c:1120 utils/mmgr/mcxt.c:1158 utils/mmgr/mcxt.c:1246 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/mcxt.c:1313 utils/mmgr/mcxt.c:1502 -#: utils/mmgr/mcxt.c:1547 utils/mmgr/mcxt.c:1604 utils/mmgr/slab.c:366 +#: ../common/cryptohash.c:261 ../common/cryptohash_openssl.c:158 +#: ../common/cryptohash_openssl.c:356 ../common/exec.c:562 ../common/exec.c:607 +#: ../common/exec.c:699 ../common/hmac.c:309 ../common/hmac.c:325 +#: ../common/hmac_openssl.c:160 ../common/hmac_openssl.c:357 +#: ../common/md5_common.c:156 ../common/parse_manifest.c:157 +#: ../common/parse_manifest.c:853 ../common/psprintf.c:143 +#: ../common/scram-common.c:269 ../common/stringinfo.c:314 ../port/path.c:751 +#: ../port/path.c:788 ../port/path.c:805 access/transam/twophase.c:1434 +#: access/transam/xlogrecovery.c:564 lib/dshash.c:253 libpq/auth.c:1352 +#: libpq/auth.c:1396 libpq/auth.c:1953 libpq/be-secure-gssapi.c:524 +#: postmaster/bgworker.c:355 postmaster/bgworker.c:945 +#: postmaster/postmaster.c:3559 postmaster/postmaster.c:4019 +#: postmaster/postmaster.c:4381 postmaster/walsummarizer.c:935 +#: replication/libpqwalreceiver/libpqwalreceiver.c:387 +#: replication/logical/logical.c:210 replication/walsender.c:835 +#: storage/buffer/localbuf.c:606 storage/file/fd.c:912 storage/file/fd.c:1443 +#: storage/file/fd.c:1604 storage/file/fd.c:2531 storage/ipc/procarray.c:1465 +#: storage/ipc/procarray.c:2219 storage/ipc/procarray.c:2226 +#: storage/ipc/procarray.c:2731 storage/ipc/procarray.c:3435 +#: utils/adt/formatting.c:1725 utils/adt/formatting.c:1873 +#: utils/adt/formatting.c:2075 utils/adt/pg_locale.c:509 +#: utils/adt/pg_locale.c:673 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:516 +#: utils/hash/dynahash.c:616 utils/hash/dynahash.c:1099 utils/mb/mbutils.c:401 +#: utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 +#: utils/misc/guc.c:649 utils/misc/guc.c:674 utils/misc/guc.c:1062 +#: utils/misc/guc.c:4467 utils/misc/tzparser.c:477 utils/mmgr/aset.c:451 +#: utils/mmgr/bump.c:183 utils/mmgr/dsa.c:707 utils/mmgr/dsa.c:729 +#: utils/mmgr/dsa.c:810 utils/mmgr/generation.c:215 utils/mmgr/mcxt.c:1154 +#: utils/mmgr/slab.c:370 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" #: ../common/cryptohash.c:266 ../common/cryptohash.c:272 -#: ../common/cryptohash_openssl.c:344 ../common/cryptohash_openssl.c:352 -#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:339 -#: ../common/hmac_openssl.c:347 +#: ../common/cryptohash_openssl.c:368 ../common/cryptohash_openssl.c:376 +#: ../common/hmac.c:321 ../common/hmac.c:329 ../common/hmac_openssl.c:369 +#: ../common/hmac_openssl.c:377 msgid "success" msgstr "успіх" -#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:346 -#: ../common/hmac_openssl.c:341 +#: ../common/cryptohash.c:268 ../common/cryptohash_openssl.c:370 +#: ../common/hmac_openssl.c:371 msgid "destination buffer too small" msgstr "буфер призначення занадто малий" -#: ../common/cryptohash_openssl.c:348 ../common/hmac_openssl.c:343 +#: ../common/cryptohash_openssl.c:372 ../common/hmac_openssl.c:373 msgid "OpenSSL failure" msgstr "Помилка OpenSSL" -#: ../common/exec.c:172 +#: ../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../common/exec.c:215 +#: ../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../common/exec.c:223 +#: ../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../common/exec.c:250 +#: ../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../common/exec.c:412 libpq/pqcomm.c:728 storage/ipc/latch.c:1128 -#: storage/ipc/latch.c:1308 storage/ipc/latch.c:1541 storage/ipc/latch.c:1703 -#: storage/ipc/latch.c:1829 +#: ../common/exec.c:382 commands/collationcmds.c:876 commands/copyfrom.c:1723 +#: commands/copyto.c:650 libpq/be-secure-common.c:59 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../common/exec.c:394 libpq/be-secure-common.c:71 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../common/exec.c:424 libpq/pqcomm.c:192 storage/ipc/latch.c:1169 +#: storage/ipc/latch.c:1349 storage/ipc/latch.c:1582 storage/ipc/latch.c:1744 +#: storage/ipc/latch.c:1870 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:161 -#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:791 -#: ../port/path.c:808 utils/misc/ps_status.c:168 utils/misc/ps_status.c:176 -#: utils/misc/ps_status.c:203 utils/misc/ps_status.c:211 +#: ../common/psprintf.c:145 ../port/path.c:753 ../port/path.c:790 +#: ../port/path.c:807 utils/misc/ps_status.c:193 utils/misc/ps_status.c:201 +#: utils/misc/ps_status.c:228 utils/misc/ps_status.c:236 #, c-format msgid "out of memory\n" msgstr "недостатньо пам'яті\n" @@ -287,39 +307,51 @@ msgstr "недостатньо пам'яті\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:447 -#: ../common/file_utils.c:451 access/transam/twophase.c:1315 -#: access/transam/xlogarchive.c:112 access/transam/xlogarchive.c:236 -#: backup/basebackup.c:346 backup/basebackup.c:544 backup/basebackup.c:615 -#: commands/copyfrom.c:1697 commands/copyto.c:702 commands/extension.c:3469 -#: commands/tablespace.c:810 commands/tablespace.c:899 postmaster/pgarch.c:590 -#: replication/logical/snapbuild.c:1649 storage/file/fd.c:1922 -#: storage/file/fd.c:2008 storage/file/fd.c:3511 utils/adt/dbsize.c:106 -#: utils/adt/dbsize.c:258 utils/adt/dbsize.c:338 utils/adt/genfile.c:483 -#: utils/adt/genfile.c:658 utils/adt/misc.c:340 +#: ../common/file_utils.c:76 storage/file/fd.c:3516 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../common/file_utils.c:120 ../common/file_utils.c:566 +#: ../common/file_utils.c:570 access/transam/twophase.c:1337 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:235 +#: backup/basebackup.c:355 backup/basebackup.c:553 backup/basebackup.c:624 +#: backup/walsummary.c:247 backup/walsummary.c:254 commands/copyfrom.c:1749 +#: commands/copyto.c:696 commands/extension.c:3527 commands/tablespace.c:804 +#: commands/tablespace.c:893 postmaster/pgarch.c:680 +#: replication/logical/snapbuild.c:1670 replication/logical/snapbuild.c:2173 +#: storage/file/fd.c:1968 storage/file/fd.c:2054 storage/file/fd.c:3564 +#: utils/adt/dbsize.c:105 utils/adt/dbsize.c:257 utils/adt/dbsize.c:337 +#: utils/adt/genfile.c:437 utils/adt/genfile.c:612 utils/adt/misc.c:340 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" -#: ../common/file_utils.c:162 ../common/pgfnames.c:48 ../common/rmtree.c:63 -#: commands/tablespace.c:734 commands/tablespace.c:744 -#: postmaster/postmaster.c:1564 storage/file/fd.c:2880 -#: storage/file/reinit.c:126 utils/adt/misc.c:256 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:130 ../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../common/file_utils.c:151 ../common/file_utils.c:281 +#: ../common/pgfnames.c:48 ../common/rmtree.c:63 commands/tablespace.c:728 +#: commands/tablespace.c:738 postmaster/postmaster.c:1468 +#: storage/file/fd.c:2933 storage/file/reinit.c:126 utils/adt/misc.c:256 +#: utils/misc/tzparser.c:339 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: ../common/file_utils.c:196 ../common/pgfnames.c:69 ../common/rmtree.c:104 -#: storage/file/fd.c:2892 +#: ../common/file_utils.c:169 ../common/file_utils.c:315 +#: ../common/pgfnames.c:69 ../common/rmtree.c:106 storage/file/fd.c:2945 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" -#: ../common/file_utils.c:379 access/transam/xlogarchive.c:390 -#: postmaster/pgarch.c:746 postmaster/syslogger.c:1608 -#: replication/logical/snapbuild.c:1810 replication/slot.c:723 -#: replication/slot.c:1716 replication/slot.c:1858 storage/file/fd.c:792 -#: utils/time/snapmgr.c:1284 +#: ../common/file_utils.c:498 access/transam/xlogarchive.c:389 +#: postmaster/pgarch.c:834 postmaster/syslogger.c:1559 +#: replication/logical/snapbuild.c:1831 replication/slot.c:936 +#: replication/slot.c:1998 replication/slot.c:2140 storage/file/fd.c:838 +#: utils/time/snapmgr.c:1255 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" @@ -328,90 +360,102 @@ msgstr "не вдалося перейменувати файл \"%s\" на \"%s msgid "internal error" msgstr "внутрішня помилка" -#: ../common/jsonapi.c:1144 +#: ../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "Рекурсивний спуск не може використовувати інкрементний лексичний аналізатор." + +#: ../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "Інкрементний аналізатор потребує Інкрементний лексичний аналізатор." + +#: ../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON вкладений занадто глибокий, максимально дозволена глибина - 6400." + +#: ../common/jsonapi.c:2127 #, c-format -msgid "Escape sequence \"\\%s\" is invalid." -msgstr "Неприпустима спеціальна послідовність \"\\%s\"." +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Неприпустима спеціальна послідовність \"\\%.*s\"." -#: ../common/jsonapi.c:1147 +#: ../common/jsonapi.c:2131 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Символ зі значенням 0x%02x повинен бути пропущений." -#: ../common/jsonapi.c:1150 +#: ../common/jsonapi.c:2135 #, c-format -msgid "Expected end of input, but found \"%s\"." -msgstr "Очікувався кінець введення, але знайдено \"%s\"." +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Очікувався кінець введення, але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1153 +#: ../common/jsonapi.c:2138 #, c-format -msgid "Expected array element or \"]\", but found \"%s\"." -msgstr "Очікувався елемент масиву або \"]\", але знайдено \"%s\"." +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Очікувався елемент масиву або \"]\", але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1156 +#: ../common/jsonapi.c:2141 #, c-format -msgid "Expected \",\" or \"]\", but found \"%s\"." -msgstr "Очікувалось \",\" або \"]\", але знайдено \"%s\"." +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Очікувалось \",\" або \"]\", але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1159 +#: ../common/jsonapi.c:2144 #, c-format -msgid "Expected \":\", but found \"%s\"." -msgstr "Очікувалось \":\", але знайдено \"%s\"." +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Очікувалось \":\", але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1162 +#: ../common/jsonapi.c:2147 #, c-format -msgid "Expected JSON value, but found \"%s\"." -msgstr "Очікувалось значення JSON, але знайдено \"%s\"." +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Очікувалось значення JSON, але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1165 +#: ../common/jsonapi.c:2150 msgid "The input string ended unexpectedly." msgstr "Несподіваний кінець вхідного рядка." -#: ../common/jsonapi.c:1167 +#: ../common/jsonapi.c:2152 #, c-format -msgid "Expected string or \"}\", but found \"%s\"." -msgstr "Очікувався рядок або \"}\", але знайдено \"%s\"." +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Очікувався рядок або \"}\", але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1170 +#: ../common/jsonapi.c:2155 #, c-format -msgid "Expected \",\" or \"}\", but found \"%s\"." -msgstr "Очікувалось \",\" або \"}\", але знайдено \"%s\"." +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Очікувалось \",\" або \"}\", але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1173 +#: ../common/jsonapi.c:2158 #, c-format -msgid "Expected string, but found \"%s\"." -msgstr "Очікувався рядок, але знайдено \"%s\"." +msgid "Expected string, but found \"%.*s\"." +msgstr "Очікувався рядок, але знайдено \"%.*s\"." -#: ../common/jsonapi.c:1176 +#: ../common/jsonapi.c:2161 #, c-format -msgid "Token \"%s\" is invalid." -msgstr "Неприпустимий маркер \"%s\"." +msgid "Token \"%.*s\" is invalid." +msgstr "Неприпустимий маркер \"%.*s\"." -#: ../common/jsonapi.c:1179 jsonpath_scan.l:597 +#: ../common/jsonapi.c:2164 jsonpath_scan.l:608 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 не можна перетворити в текст." -#: ../common/jsonapi.c:1181 +#: ../common/jsonapi.c:2166 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "За \"\\u\" повинні прямувати чотири шістнадцяткових числа." -#: ../common/jsonapi.c:1184 +#: ../common/jsonapi.c:2169 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Значення виходу Unicode не можна використовувати для значень кодових точок більше 007F, якщо кодування не UTF8." -#: ../common/jsonapi.c:1187 +#: ../common/jsonapi.c:2178 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Значення символу Unicode не вдалося перекласти в кодування сервера %s." -#: ../common/jsonapi.c:1190 jsonpath_scan.l:630 +#: ../common/jsonapi.c:2185 jsonpath_scan.l:641 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Старший сурогат Unicode не повинен прямувати за іншим старшим сурогатом." -#: ../common/jsonapi.c:1192 jsonpath_scan.l:641 jsonpath_scan.l:651 -#: jsonpath_scan.l:702 +#: ../common/jsonapi.c:2187 jsonpath_scan.l:652 jsonpath_scan.l:662 +#: jsonpath_scan.l:713 #, c-format msgid "Unicode low surrogate must follow a high surrogate." msgstr "Молодший сурогат Unicode не повинен прямувати за іншим молодшим сурогатом." @@ -436,11 +480,168 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../common/parse_manifest.c:159 ../common/parse_manifest.c:855 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "не вдалося ініціалізувати контрольну суму маніфесту" + +#: ../common/parse_manifest.c:204 ../common/parse_manifest.c:261 +msgid "manifest ended unexpectedly" +msgstr "маніфест закінчився несподівано" + +#: ../common/parse_manifest.c:210 ../common/parse_manifest.c:862 +#, c-format +msgid "could not update checksum of manifest" +msgstr "не вдалося оновити контрольну суму маніфесту" + +#: ../common/parse_manifest.c:302 +msgid "unexpected object start" +msgstr "неочікуваний початок об'єкта" + +#: ../common/parse_manifest.c:337 +msgid "unexpected object end" +msgstr "неочікуваний кінець об'єкта" + +#: ../common/parse_manifest.c:366 +msgid "unexpected array start" +msgstr "неочікуваний початок масиву" + +#: ../common/parse_manifest.c:391 +msgid "unexpected array end" +msgstr "неочікуваний кінець масиву" + +#: ../common/parse_manifest.c:418 +msgid "expected version indicator" +msgstr "індикатор очікуваної версії" + +#: ../common/parse_manifest.c:454 +msgid "unrecognized top-level field" +msgstr "нерозпізнане поле верхнього рівня" + +#: ../common/parse_manifest.c:473 +msgid "unexpected file field" +msgstr "неочікуване поле файлу" + +#: ../common/parse_manifest.c:487 +msgid "unexpected WAL range field" +msgstr "неочікуване поле діапазону WAL" + +#: ../common/parse_manifest.c:493 +msgid "unexpected object field" +msgstr "неочікуване поле об'єкта" + +#: ../common/parse_manifest.c:583 +msgid "unexpected scalar" +msgstr "неочікуваний скаляр" + +#: ../common/parse_manifest.c:609 +msgid "manifest version not an integer" +msgstr "версія маніфесту не ціле число" + +#: ../common/parse_manifest.c:613 +msgid "unexpected manifest version" +msgstr "неочікувана версія маніфесту" + +#: ../common/parse_manifest.c:637 +msgid "system identifier in manifest not an integer" +msgstr "системний ідентифікатор в маніфесті не ціле число" + +#: ../common/parse_manifest.c:662 +msgid "missing path name" +msgstr "пропущено шлях" + +#: ../common/parse_manifest.c:665 +msgid "both path name and encoded path name" +msgstr "і ім'я шляху, і закодований шлях" + +#: ../common/parse_manifest.c:667 +msgid "missing size" +msgstr "відсутній розмір" + +#: ../common/parse_manifest.c:670 +msgid "checksum without algorithm" +msgstr "контрольна сума без алгоритму" + +#: ../common/parse_manifest.c:684 +msgid "could not decode file name" +msgstr "не вдалося декодувати ім'я файлу" + +#: ../common/parse_manifest.c:694 +msgid "file size is not an integer" +msgstr "розмір файлу не є цілим числом" + +#: ../common/parse_manifest.c:700 backup/basebackup.c:870 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "нерозпізнаний алгоритм контрольної суми: \"%s\"" + +#: ../common/parse_manifest.c:719 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "неприпустима контрольна сума для файлу \"%s\": \"%s\"" + +#: ../common/parse_manifest.c:762 +msgid "missing timeline" +msgstr "відсутня часова шкала" + +#: ../common/parse_manifest.c:764 +msgid "missing start LSN" +msgstr "відсутній LSN початку" + +#: ../common/parse_manifest.c:766 +msgid "missing end LSN" +msgstr "відсутній LSN кінця" + +#: ../common/parse_manifest.c:772 +msgid "timeline is not an integer" +msgstr "часова лінія не є цілим числом" + +#: ../common/parse_manifest.c:775 +msgid "could not parse start LSN" +msgstr "не вдалося проаналізувати початковий LSN" + +#: ../common/parse_manifest.c:778 +msgid "could not parse end LSN" +msgstr "не вдалося проаналізувати кінцевий LSN" + +#: ../common/parse_manifest.c:843 +msgid "expected at least 2 lines" +msgstr "очікувалося принаймні 2 рядки" + +#: ../common/parse_manifest.c:846 +msgid "last line not newline-terminated" +msgstr "останній рядок не завершений новим рядком" + +#: ../common/parse_manifest.c:865 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "не вдалося остаточно завершити контрольну суму маніфесту" + +#: ../common/parse_manifest.c:869 +#, c-format +msgid "manifest has no checksum" +msgstr "у маніфесті немає контрольної суми" + +#: ../common/parse_manifest.c:873 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "неприпустима контрольна сума маніфесту: \"%s\"" + +#: ../common/parse_manifest.c:877 +#, c-format +msgid "manifest checksum mismatch" +msgstr "невідповідність контрольної суми маніфесту" + +#: ../common/parse_manifest.c:892 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "не вдалося проаналізувати маніфест резервної копії: %s" + #: ../common/percentrepl.c:79 ../common/percentrepl.c:85 #: ../common/percentrepl.c:118 ../common/percentrepl.c:124 -#: postmaster/postmaster.c:2211 utils/misc/guc.c:3120 utils/misc/guc.c:3156 -#: utils/misc/guc.c:3226 utils/misc/guc.c:4556 utils/misc/guc.c:6738 -#: utils/misc/guc.c:6779 +#: tcop/backend_startup.c:741 utils/misc/guc.c:3167 utils/misc/guc.c:3208 +#: utils/misc/guc.c:3283 utils/misc/guc.c:4671 utils/misc/guc.c:6896 +#: utils/misc/guc.c:6937 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неприпустиме значення параметру \"%s\": \"%s\"" @@ -500,23 +701,23 @@ msgstr "не вдалося перезапустити з обмеженим т msgid "could not get exit code from subprocess: error code %lu" msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" -#: ../common/rmtree.c:95 access/heap/rewriteheap.c:1248 -#: access/transam/twophase.c:1704 access/transam/xlogarchive.c:120 -#: access/transam/xlogarchive.c:400 postmaster/postmaster.c:1143 -#: postmaster/syslogger.c:1537 replication/logical/origin.c:591 -#: replication/logical/reorderbuffer.c:4526 -#: replication/logical/snapbuild.c:1691 replication/logical/snapbuild.c:2125 -#: replication/slot.c:1909 storage/file/fd.c:832 storage/file/fd.c:3325 -#: storage/file/fd.c:3387 storage/file/reinit.c:262 storage/ipc/dsm.c:316 -#: storage/smgr/md.c:383 storage/smgr/md.c:442 storage/sync/sync.c:248 -#: utils/time/snapmgr.c:1608 +#: ../common/rmtree.c:97 access/heap/rewriteheap.c:1214 +#: access/transam/twophase.c:1726 access/transam/xlogarchive.c:119 +#: access/transam/xlogarchive.c:399 postmaster/postmaster.c:1048 +#: postmaster/syslogger.c:1488 replication/logical/origin.c:591 +#: replication/logical/reorderbuffer.c:4584 +#: replication/logical/snapbuild.c:1712 replication/logical/snapbuild.c:2146 +#: replication/slot.c:2192 storage/file/fd.c:878 storage/file/fd.c:3378 +#: storage/file/fd.c:3440 storage/file/reinit.c:261 storage/ipc/dsm.c:343 +#: storage/smgr/md.c:381 storage/smgr/md.c:440 storage/sync/sync.c:243 +#: utils/time/snapmgr.c:1591 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не можливо видалити файл \"%s\": %m" -#: ../common/rmtree.c:122 commands/tablespace.c:773 commands/tablespace.c:786 -#: commands/tablespace.c:821 commands/tablespace.c:911 storage/file/fd.c:3317 -#: storage/file/fd.c:3726 +#: ../common/rmtree.c:124 commands/tablespace.c:767 commands/tablespace.c:780 +#: commands/tablespace.c:815 commands/tablespace.c:905 storage/file/fd.c:3370 +#: storage/file/fd.c:3779 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "не вдалося видалити каталог \"%s\": %m" @@ -533,20 +734,16 @@ msgstr "на вдалося закодувати збережений ключ" msgid "could not encode server key" msgstr "не вдалося закодувати серверний ключ" -#: ../common/stringinfo.c:306 +#: ../common/stringinfo.c:315 #, c-format msgid "Cannot enlarge string buffer containing %d bytes by %d more bytes." msgstr "Не вдалося збільшити рядковий буфер (містить: %d байтів, потребувалось: %d байтів)." -#: ../common/stringinfo.c:310 +#: ../common/stringinfo.c:319 #, c-format -msgid "" -"out of memory\n" -"\n" +msgid "out of memory\n\n" "Cannot enlarge string buffer containing %d bytes by %d more bytes.\n" -msgstr "" -"недостатньо пам'яті\n" -"\n" +msgstr "недостатньо пам'яті\n\n" "Неможливо збільшити рядковий буфер (містить: %d байт, потребувалось: %d байт).\n" #: ../common/username.c:43 @@ -554,7 +751,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "не можу знайти користувача з ефективним ID %ld: %s" -#: ../common/username.c:45 libpq/auth.c:1879 +#: ../common/username.c:45 libpq/auth.c:1888 msgid "user does not exist" msgstr "користувача не існує" @@ -648,20 +845,20 @@ msgstr "Ви можливо маєте антивірус, резервне ко #: ../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "не вдалося отримати поточний робочий каталог: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "не вдалося отримати поточний робочий каталог: %m\n" #: ../port/strerror.c:72 #, c-format msgid "operating system error %d" msgstr "помилка операційної системи %d" -#: ../port/thread.c:50 ../port/thread.c:86 +#: ../port/user.c:43 ../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "не вдалося знайти локального користувача з ідентифікатором %d: %s" -#: ../port/thread.c:55 ../port/thread.c:91 +#: ../port/user.c:48 ../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "локального користувача з ідентифікатором %d не існує" @@ -681,104 +878,104 @@ msgstr "не вдалося отримати SID для групи PowerUsers: msgid "could not check access token membership: error code %lu\n" msgstr "не вдається перевірити членство токену доступу: код помилки %lu\n" -#: access/brin/brin.c:216 +#: access/brin/brin.c:405 #, c-format msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "запит на підсумок діапазону BRIN для індексу «%s» сторінки %u не вдалося записати" -#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1039 -#: access/transam/xlogfuncs.c:189 access/transam/xlogfuncs.c:214 -#: access/transam/xlogfuncs.c:247 access/transam/xlogfuncs.c:286 -#: access/transam/xlogfuncs.c:307 access/transam/xlogfuncs.c:328 -#: access/transam/xlogfuncs.c:398 access/transam/xlogfuncs.c:456 +#: access/brin/brin.c:1385 access/brin/brin.c:1493 access/gin/ginfast.c:1040 +#: access/transam/xlogfuncs.c:183 access/transam/xlogfuncs.c:208 +#: access/transam/xlogfuncs.c:241 access/transam/xlogfuncs.c:280 +#: access/transam/xlogfuncs.c:301 access/transam/xlogfuncs.c:322 +#: access/transam/xlogfuncs.c:388 access/transam/xlogfuncs.c:446 #, c-format msgid "recovery is in progress" msgstr "відновлення у процесі" -#: access/brin/brin.c:1037 access/brin/brin.c:1144 +#: access/brin/brin.c:1386 access/brin/brin.c:1494 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Контрольна функція BRIN не може бути виконана під час відновлення." -#: access/brin/brin.c:1042 access/brin/brin.c:1149 +#: access/brin/brin.c:1391 access/brin/brin.c:1499 #, c-format msgid "block number out of range: %lld" msgstr "номер блоку поза діапазоном: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1175 +#: access/brin/brin.c:1436 access/brin/brin.c:1525 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" не є індексом BRIN" -#: access/brin/brin.c:1102 access/brin/brin.c:1191 +#: access/brin/brin.c:1452 access/brin/brin.c:1541 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "не вдалося відкрити батьківську таблицю індексу \"%s\"" -#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1084 -#: parser/parse_utilcmd.c:2280 +#: access/brin/brin.c:1461 access/brin/brin.c:1557 access/gin/ginfast.c:1085 +#: parser/parse_utilcmd.c:2277 #, c-format msgid "index \"%s\" is not valid" msgstr "індекс \"%s\" не є припустимим" -#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 -#: access/brin/brin_minmax_multi.c:2985 access/brin/brin_minmax_multi.c:3122 -#: statistics/dependencies.c:663 statistics/dependencies.c:716 -#: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 -#: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 -#: utils/adt/pseudotypes.c:77 utils/adt/tsgistidx.c:93 +#: access/brin/brin_bloom.c:783 access/brin/brin_bloom.c:825 +#: access/brin/brin_minmax_multi.c:2993 access/brin/brin_minmax_multi.c:3130 +#: statistics/dependencies.c:661 statistics/dependencies.c:714 +#: statistics/mcv.c:1480 statistics/mcv.c:1511 statistics/mvdistinct.c:343 +#: statistics/mvdistinct.c:396 utils/adt/pseudotypes.c:40 +#: utils/adt/pseudotypes.c:74 utils/adt/tsgistidx.c:94 #, c-format msgid "cannot accept a value of type %s" msgstr "не можна прийняти значення типу %s" -#: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 -#: access/brin/brin_pageops.c:852 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2002 -#: access/spgist/spgdoinsert.c:2279 +#: access/brin/brin_pageops.c:75 access/brin/brin_pageops.c:361 +#: access/brin/brin_pageops.c:851 access/gin/ginentrypage.c:109 +#: access/gist/gist.c:1463 access/spgist/spgdoinsert.c:2001 +#: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "розмір рядка індексу %zu перевищує максимальний %zu для індексу \"%s\"" -#: access/brin/brin_revmap.c:393 access/brin/brin_revmap.c:399 +#: access/brin/brin_revmap.c:383 access/brin/brin_revmap.c:389 #, c-format msgid "corrupted BRIN index: inconsistent range map" msgstr "пошкоджений BRIN індекс: несумісна карта діапазонів" -#: access/brin/brin_revmap.c:593 +#: access/brin/brin_revmap.c:583 #, c-format msgid "unexpected page type 0x%04X in BRIN index \"%s\" block %u" msgstr "неочікуваний тип сторінки 0x%04X в BRIN індексі \"%s\" блокує %u" -#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:151 -#: access/gist/gistvalidate.c:153 access/hash/hashvalidate.c:139 +#: access/brin/brin_validate.c:118 access/gin/ginvalidate.c:149 +#: access/gist/gistvalidate.c:152 access/hash/hashvalidate.c:139 #: access/nbtree/nbtvalidate.c:120 access/spgist/spgvalidate.c:189 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with invalid support number %d" msgstr "сімейство операторів \"%s\" методу доступу %s містить функцію %s з недопустимим номером підтримки %d" -#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:163 -#: access/gist/gistvalidate.c:165 access/hash/hashvalidate.c:118 +#: access/brin/brin_validate.c:134 access/gin/ginvalidate.c:161 +#: access/gist/gistvalidate.c:164 access/hash/hashvalidate.c:118 #: access/nbtree/nbtvalidate.c:132 access/spgist/spgvalidate.c:201 #, c-format msgid "operator family \"%s\" of access method %s contains function %s with wrong signature for support number %d" msgstr "сімейство операторів \"%s\" з доступом %s містить функцію %s з неправильним підписом для номеру підтримки %d" -#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:182 -#: access/gist/gistvalidate.c:185 access/hash/hashvalidate.c:160 +#: access/brin/brin_validate.c:156 access/gin/ginvalidate.c:180 +#: access/gist/gistvalidate.c:184 access/hash/hashvalidate.c:160 #: access/nbtree/nbtvalidate.c:152 access/spgist/spgvalidate.c:221 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with invalid strategy number %d" msgstr "сімейство операторів \"%s\" з доступом %s містить оператор %s з недопустимим стратегічним номером %d" -#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:195 +#: access/brin/brin_validate.c:185 access/gin/ginvalidate.c:193 #: access/hash/hashvalidate.c:173 access/nbtree/nbtvalidate.c:165 #: access/spgist/spgvalidate.c:237 #, c-format msgid "operator family \"%s\" of access method %s contains invalid ORDER BY specification for operator %s" msgstr "сімейство операторів \"%s\" з доступом %s містить некоректну специфікацію ORDER BY для оператора %s" -#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:208 -#: access/gist/gistvalidate.c:233 access/hash/hashvalidate.c:186 +#: access/brin/brin_validate.c:198 access/gin/ginvalidate.c:206 +#: access/gist/gistvalidate.c:232 access/hash/hashvalidate.c:186 #: access/nbtree/nbtvalidate.c:178 access/spgist/spgvalidate.c:253 #, c-format msgid "operator family \"%s\" of access method %s contains operator %s with wrong signature" @@ -801,38 +998,38 @@ msgstr "сімейство операторів \"%s\" з методом дос msgid "operator class \"%s\" of access method %s is missing operator(s)" msgstr "клас операторів \"%s\" з методом доступа %s не має операторів" -#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:250 -#: access/gist/gistvalidate.c:274 +#: access/brin/brin_validate.c:270 access/gin/ginvalidate.c:248 +#: access/gist/gistvalidate.c:273 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d" msgstr "клас операторів \"%s\" з доступом %s немає функції підтримки %d" -#: access/common/attmap.c:122 +#: access/common/attmap.c:121 #, c-format msgid "Returned type %s does not match expected type %s in column %d." msgstr "Повернений тип %s не відповідає очікуваному типу %s в стовпці %d." -#: access/common/attmap.c:150 +#: access/common/attmap.c:149 #, c-format msgid "Number of returned columns (%d) does not match expected column count (%d)." msgstr "Кількість повернених стовпців (%d) не відповідає очікуваній кількості стовпців (%d)." -#: access/common/attmap.c:234 access/common/attmap.c:246 +#: access/common/attmap.c:233 access/common/attmap.c:245 #, c-format msgid "could not convert row type" msgstr "неможливо конвертувати тип рядка" -#: access/common/attmap.c:235 +#: access/common/attmap.c:234 #, c-format msgid "Attribute \"%s\" of type %s does not match corresponding attribute of type %s." msgstr "Атрибут \"%s\" типу %s не збігається з відповідним атрибутом типу %s." -#: access/common/attmap.c:247 +#: access/common/attmap.c:246 #, c-format msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "Атрибут \"%s\" типу %s не існує в типі %s." -#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 +#: access/common/heaptuple.c:1132 access/common/heaptuple.c:1467 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "кількість стовпців (%d) перевищує обмеження (%d)" @@ -842,122 +1039,110 @@ msgstr "кількість стовпців (%d) перевищує обмеже msgid "number of index columns (%d) exceeds limit (%d)" msgstr "кількість індексних стовпців (%d) перевищує обмеження (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:957 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:970 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "індексний рядок вимагає %zu байтів, максимальний розмір %zu" -#: access/common/printtup.c:292 tcop/fastpath.c:107 tcop/fastpath.c:454 -#: tcop/postgres.c:1944 +#: access/common/printtup.c:292 commands/explain.c:5376 tcop/fastpath.c:107 +#: tcop/fastpath.c:454 tcop/postgres.c:1956 #, c-format msgid "unsupported format code: %d" msgstr "цей формат коду не підтримується:%d" -#: access/common/reloptions.c:521 access/common/reloptions.c:532 +#: access/common/reloptions.c:519 access/common/reloptions.c:530 msgid "Valid values are \"on\", \"off\", and \"auto\"." msgstr "Дійсні значення \"увімкнено\", \"вимкнено\" та \"автоматично\"." -#: access/common/reloptions.c:543 +#: access/common/reloptions.c:541 msgid "Valid values are \"local\" and \"cascaded\"." msgstr "Припустимі значення лише \"local\" і \"cascaded\"." -#: access/common/reloptions.c:691 +#: access/common/reloptions.c:689 #, c-format msgid "user-defined relation parameter types limit exceeded" msgstr "перевищено встановлене користувачем обмеження типу параметрів відношення" -#: access/common/reloptions.c:1233 +#: access/common/reloptions.c:1231 #, c-format msgid "RESET must not include values for parameters" msgstr "RESET не має містити значення для параметрів" -#: access/common/reloptions.c:1265 +#: access/common/reloptions.c:1263 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "нерозпізнаний параметр простору імен \"%s\"" -#: access/common/reloptions.c:1302 commands/variable.c:1167 +#: access/common/reloptions.c:1300 commands/variable.c:1191 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблиці, позначені WITH OIDS, не підтримуються" -#: access/common/reloptions.c:1470 +#: access/common/reloptions.c:1468 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "нерозпізнаний параметр \"%s\"" -#: access/common/reloptions.c:1582 +#: access/common/reloptions.c:1580 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "параметр «%s» вказано кілька разів" -#: access/common/reloptions.c:1598 +#: access/common/reloptions.c:1596 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "неприпустиме значення для булевого параметра \"%s\": %s" -#: access/common/reloptions.c:1610 +#: access/common/reloptions.c:1608 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "неприпустиме значення для цілого параметра \"%s\": %s" -#: access/common/reloptions.c:1616 access/common/reloptions.c:1636 +#: access/common/reloptions.c:1614 access/common/reloptions.c:1634 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "значення %s поза допустимими межами для параметра \"%s\"" -#: access/common/reloptions.c:1618 +#: access/common/reloptions.c:1616 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Припустимі значення знаходяться між \"%d\" і \"%d\"." -#: access/common/reloptions.c:1630 +#: access/common/reloptions.c:1628 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "неприпустиме значення для числа з плавучою точкою параметра \"%s\": %s" -#: access/common/reloptions.c:1638 +#: access/common/reloptions.c:1636 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Припустимі значення знаходяться між \"%f\" і \"%f\"." -#: access/common/reloptions.c:1660 +#: access/common/reloptions.c:1658 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "недійсне значення для параметра перерахування \"%s\": %s" -#: access/common/reloptions.c:1991 +#: access/common/reloptions.c:1989 #, c-format msgid "cannot specify storage parameters for a partitioned table" msgstr "неможливо вказати параметри сховища для секціонованої таблиці" -#: access/common/reloptions.c:1992 +#: access/common/reloptions.c:1990 #, c-format msgid "Specify storage parameters for its leaf partitions instead." msgstr "Вкажіть параметри сховища для табличних розділів." -#: access/common/toast_compression.c:33 +#: access/common/toast_compression.c:31 #, c-format msgid "compression method lz4 not supported" msgstr "метод стискання lz4 не підтримується" -#: access/common/toast_compression.c:34 +#: access/common/toast_compression.c:32 #, c-format msgid "This functionality requires the server to be built with lz4 support." msgstr "Ця функціональність потребує, щоб сервер був побудований з підтримкою lz4." -#: access/common/tupdesc.c:837 commands/tablecmds.c:6957 -#: commands/tablecmds.c:12985 -#, c-format -msgid "too many array dimensions" -msgstr "занадто багато вимірів масиву" - -#: access/common/tupdesc.c:842 parser/parse_clause.c:772 -#: parser/parse_relation.c:1913 -#, c-format -msgid "column \"%s\" cannot be declared SETOF" -msgstr "стовпець\"%s\" не може бути оголошений SETOF" - #: access/gin/ginbulk.c:44 #, c-format msgid "posting list is too long" @@ -965,25 +1150,25 @@ msgstr "список вказівників задовгий" #: access/gin/ginbulk.c:45 #, c-format -msgid "Reduce maintenance_work_mem." -msgstr "Зменшіть maintenance_work_mem." +msgid "Reduce \"maintenance_work_mem\"." +msgstr "Зменшіть \"maintenance_work_mem\"." -#: access/gin/ginfast.c:1040 +#: access/gin/ginfast.c:1041 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "Черга записів GIN не може бути очищена під час відновлення." -#: access/gin/ginfast.c:1047 +#: access/gin/ginfast.c:1048 #, c-format msgid "\"%s\" is not a GIN index" msgstr "\"%s\" не є індексом GIN" -#: access/gin/ginfast.c:1058 +#: access/gin/ginfast.c:1059 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "доступ до тимчасових індексів з інших сесій заблокований" -#: access/gin/ginget.c:273 access/nbtree/nbtinsert.c:762 +#: access/gin/ginget.c:271 access/nbtree/nbtinsert.c:762 #, c-format msgid "failed to re-find tuple within index \"%s\"" msgstr "не вдалося повторно знайти кортеж в межах індексу \"%s\"" @@ -998,50 +1183,50 @@ msgstr "старі індекси GIN не підтримують сканува msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Щоб виправити це, зробіть REINDEX INDEX \"%s\"." -#: access/gin/ginutil.c:146 executor/execExpr.c:2169 -#: utils/adt/arrayfuncs.c:4045 utils/adt/arrayfuncs.c:6732 -#: utils/adt/rowtypes.c:984 +#: access/gin/ginutil.c:147 executor/execExpr.c:2192 +#: utils/adt/arrayfuncs.c:4016 utils/adt/arrayfuncs.c:6712 +#: utils/adt/rowtypes.c:974 #, c-format msgid "could not identify a comparison function for type %s" msgstr "не вдалося визначити порівняльну функцію для типу %s" -#: access/gin/ginvalidate.c:92 access/gist/gistvalidate.c:93 +#: access/gin/ginvalidate.c:90 access/gist/gistvalidate.c:92 #: access/hash/hashvalidate.c:102 access/spgist/spgvalidate.c:102 #, c-format msgid "operator family \"%s\" of access method %s contains support function %s with different left and right input types" msgstr "сімейство операторів \"%s\" з методом доступу %s містить функцію підтримки %s з різними типами вводу зліва і справа" -#: access/gin/ginvalidate.c:260 +#: access/gin/ginvalidate.c:258 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d or %d" msgstr "клас операторів \"%s\" з методом доступу %s не має функції підтримки %d або %d" -#: access/gin/ginvalidate.c:333 access/gist/gistvalidate.c:350 +#: access/gin/ginvalidate.c:331 access/gist/gistvalidate.c:349 #: access/spgist/spgvalidate.c:387 #, c-format msgid "support function number %d is invalid for access method %s" msgstr "номер функції підтримки %d неприпустимий для методу доступу %s" -#: access/gist/gist.c:759 access/gist/gistvacuum.c:426 +#: access/gist/gist.c:760 access/gist/gistvacuum.c:426 #, c-format msgid "index \"%s\" contains an inner tuple marked as invalid" msgstr "індекс \"%s\" містить внутрішній кортеж, позначений як неправильний" -#: access/gist/gist.c:761 access/gist/gistvacuum.c:428 +#: access/gist/gist.c:762 access/gist/gistvacuum.c:428 #, c-format msgid "This is caused by an incomplete page split at crash recovery before upgrading to PostgreSQL 9.1." msgstr "Це викликано неповним поділом сторінки під час відновлення перед покращенням до версії PostgreSQL 9.1." -#: access/gist/gist.c:762 access/gist/gistutil.c:801 access/gist/gistutil.c:812 -#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:227 -#: access/hash/hashutil.c:238 access/hash/hashutil.c:250 -#: access/hash/hashutil.c:271 access/nbtree/nbtpage.c:813 +#: access/gist/gist.c:763 access/gist/gistutil.c:800 access/gist/gistutil.c:811 +#: access/gist/gistvacuum.c:429 access/hash/hashutil.c:226 +#: access/hash/hashutil.c:237 access/hash/hashutil.c:249 +#: access/hash/hashutil.c:270 access/nbtree/nbtpage.c:813 #: access/nbtree/nbtpage.c:824 #, c-format msgid "Please REINDEX it." msgstr "Будь ласка, виконайте REINDEX." -#: access/gist/gist.c:1195 +#: access/gist/gist.c:1196 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "виправлення неповного розділу в індексі \"%s\", блок %u" @@ -1056,52 +1241,52 @@ msgstr "помилка методу picksplit для стовпця %d інде msgid "The index is not optimal. To optimize it, contact a developer, or try to use the column as the second one in the CREATE INDEX command." msgstr "Індекс не є оптимальним. Щоб оптимізувати його, зв'яжіться з розробником або спробуйте використати стовпець як другий індекс у команді CREATE INDEX." -#: access/gist/gistutil.c:798 access/hash/hashutil.c:224 +#: access/gist/gistutil.c:797 access/hash/hashutil.c:223 #: access/nbtree/nbtpage.c:810 #, c-format msgid "index \"%s\" contains unexpected zero page at block %u" msgstr "індекс \"%s\" містить неочікувану нульову сторінку в блоці %u" -#: access/gist/gistutil.c:809 access/hash/hashutil.c:235 -#: access/hash/hashutil.c:247 access/nbtree/nbtpage.c:821 +#: access/gist/gistutil.c:808 access/hash/hashutil.c:234 +#: access/hash/hashutil.c:246 access/nbtree/nbtpage.c:821 #, c-format msgid "index \"%s\" contains corrupted page at block %u" msgstr "індекс \"%s\" містить пошкоджену сторінку в блоці %u" -#: access/gist/gistvalidate.c:203 +#: access/gist/gistvalidate.c:202 #, c-format msgid "operator family \"%s\" of access method %s contains unsupported ORDER BY specification for operator %s" msgstr "сімейство операторів \"%s\" з методом доступу %s містить непідтримувану для оператора специфікацію ORDER BY %s" -#: access/gist/gistvalidate.c:214 +#: access/gist/gistvalidate.c:213 #, c-format msgid "operator family \"%s\" of access method %s contains incorrect ORDER BY opfamily specification for operator %s" msgstr "сімейство операторів \"%s\" з методом доступу %s містить некоректну для оператора специфікацію ORDER BY opfamily %s" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:333 -#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1064 +#: access/hash/hashfunc.c:277 access/hash/hashfunc.c:333 +#: utils/adt/varchar.c:1008 utils/adt/varchar.c:1065 #, c-format msgid "could not determine which collation to use for string hashing" msgstr "не вдалося визначити, який параметр сортування використати для обчислення хешу рядків" -#: access/hash/hashfunc.c:280 access/hash/hashfunc.c:334 catalog/heap.c:668 -#: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:2015 commands/tablecmds.c:17490 commands/view.c:86 -#: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1648 -#: utils/adt/formatting.c:1770 utils/adt/formatting.c:1893 utils/adt/like.c:191 -#: utils/adt/like_support.c:1025 utils/adt/varchar.c:739 -#: utils/adt/varchar.c:1010 utils/adt/varchar.c:1065 utils/adt/varlena.c:1518 +#: access/hash/hashfunc.c:278 access/hash/hashfunc.c:334 catalog/heap.c:672 +#: catalog/heap.c:678 commands/createas.c:201 commands/createas.c:508 +#: commands/indexcmds.c:2048 commands/tablecmds.c:18068 commands/view.c:81 +#: regex/regc_pg_locale.c:245 utils/adt/formatting.c:1653 +#: utils/adt/formatting.c:1801 utils/adt/formatting.c:1991 utils/adt/like.c:189 +#: utils/adt/like_support.c:1024 utils/adt/varchar.c:738 +#: utils/adt/varchar.c:1009 utils/adt/varchar.c:1066 utils/adt/varlena.c:1521 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." msgstr "Використайте опцію COLLATE для задання параметрів сортування." -#: access/hash/hashinsert.c:86 +#: access/hash/hashinsert.c:84 #, c-format msgid "index row size %zu exceeds hash maximum %zu" msgstr "індексний рядок розміру %zu перевищує максимальний хеш %zu" -#: access/hash/hashinsert.c:88 access/spgist/spgdoinsert.c:2006 -#: access/spgist/spgdoinsert.c:2283 access/spgist/spgutils.c:1018 +#: access/hash/hashinsert.c:86 access/spgist/spgdoinsert.c:2005 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1031 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Значення, що перевищують буфер сторінки, не можна індексувати." @@ -1116,17 +1301,17 @@ msgstr "недійсний номер блока переповнення %u" msgid "out of overflow pages in hash index \"%s\"" msgstr "закінчились переповнені сторінки в хеш-індексі \"%s\"" -#: access/hash/hashsearch.c:315 +#: access/hash/hashsearch.c:311 #, c-format msgid "hash indexes do not support whole-index scans" msgstr "хеш-індекси не підтримують сканування цілого індексу" -#: access/hash/hashutil.c:263 +#: access/hash/hashutil.c:262 #, c-format msgid "index \"%s\" is not a hash index" msgstr "індекс \"%s\" не є хеш-індексом" -#: access/hash/hashutil.c:269 +#: access/hash/hashutil.c:268 #, c-format msgid "index \"%s\" has wrong hash version" msgstr "індекс \"%s\" має неправильну версію хешу" @@ -1141,297 +1326,296 @@ msgstr "сімейство операторів \"%s\" з методом дос msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "сімейство операторів \"%s\" з методом доступу %s не містить міжтипового оператора (ів)" -#: access/heap/heapam.c:2038 +#: access/heap/heapam.c:2195 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "не вдалося вставити кортежі в паралельного працівника" -#: access/heap/heapam.c:2557 +#: access/heap/heapam.c:2714 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "не вдалося видалити кортежі під час паралельної операції" -#: access/heap/heapam.c:2604 +#: access/heap/heapam.c:2761 #, c-format msgid "attempted to delete invisible tuple" msgstr "спроба видалити невидимий кортеж" -#: access/heap/heapam.c:3052 access/heap/heapam.c:5921 +#: access/heap/heapam.c:3209 access/heap/heapam.c:6082 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "неможливо оновити кортежі під час паралельної операції" -#: access/heap/heapam.c:3180 +#: access/heap/heapam.c:3337 #, c-format msgid "attempted to update invisible tuple" msgstr "спроба оновити невидимий кортеж" -#: access/heap/heapam.c:4569 access/heap/heapam.c:4607 -#: access/heap/heapam.c:4872 access/heap/heapam_handler.c:467 +#: access/heap/heapam.c:4726 access/heap/heapam.c:4764 +#: access/heap/heapam.c:5029 access/heap/heapam_handler.c:468 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не вдалося отримати блокування у рядку стосовно \"%s\"" -#: access/heap/heapam_handler.c:412 +#: access/heap/heapam_handler.c:413 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update" msgstr "кортеж, який підлягає блокуванню, вже був переміщений до іншої секції в результаті паралельного оновлення" -#: access/heap/hio.c:536 access/heap/rewriteheap.c:659 +#: access/heap/hio.c:535 access/heap/rewriteheap.c:640 #, c-format msgid "row is too big: size %zu, maximum size %zu" msgstr "рядок завеликий: розмір %zu, максимальний розмір %zu" -#: access/heap/rewriteheap.c:919 +#: access/heap/rewriteheap.c:885 #, c-format msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "не вдалося записати до файлу \"%s\", записано %d з %d: %m" -#: access/heap/rewriteheap.c:1011 access/heap/rewriteheap.c:1128 +#: access/heap/rewriteheap.c:977 access/heap/rewriteheap.c:1094 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2973 access/transam/xlog.c:3164 -#: access/transam/xlog.c:3940 access/transam/xlog.c:8746 -#: access/transam/xlogfuncs.c:702 backup/basebackup_server.c:151 -#: backup/basebackup_server.c:244 commands/dbcommands.c:495 -#: postmaster/postmaster.c:4557 postmaster/postmaster.c:5560 -#: replication/logical/origin.c:603 replication/slot.c:1777 -#: storage/file/copydir.c:157 storage/smgr/md.c:232 utils/time/snapmgr.c:1263 +#: access/transam/xlog.c:3254 access/transam/xlog.c:3445 +#: access/transam/xlog.c:4282 access/transam/xlog.c:9244 +#: access/transam/xlogfuncs.c:692 backup/basebackup_server.c:149 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 +#: postmaster/launch_backend.c:340 postmaster/postmaster.c:4112 +#: postmaster/walsummarizer.c:1212 replication/logical/origin.c:603 +#: replication/slot.c:2059 storage/file/copydir.c:157 storage/smgr/md.c:230 +#: utils/time/snapmgr.c:1234 #, c-format msgid "could not create file \"%s\": %m" msgstr "неможливо створити файл \"%s\": %m" -#: access/heap/rewriteheap.c:1138 +#: access/heap/rewriteheap.c:1104 #, c-format msgid "could not truncate file \"%s\" to %u: %m" msgstr "не вдалося скоротити файл \"%s\" до потрібного розміру %u: %m" -#: access/heap/rewriteheap.c:1156 access/transam/timeline.c:384 +#: access/heap/rewriteheap.c:1122 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3023 access/transam/xlog.c:3220 -#: access/transam/xlog.c:3952 commands/dbcommands.c:507 -#: postmaster/postmaster.c:4567 postmaster/postmaster.c:4577 +#: access/transam/xlog.c:3304 access/transam/xlog.c:3501 +#: access/transam/xlog.c:4294 commands/dbcommands.c:506 +#: postmaster/launch_backend.c:351 postmaster/launch_backend.c:363 #: replication/logical/origin.c:615 replication/logical/origin.c:657 -#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1767 -#: replication/slot.c:1812 storage/file/buffile.c:545 -#: storage/file/copydir.c:197 utils/init/miscinit.c:1612 -#: utils/init/miscinit.c:1623 utils/init/miscinit.c:1631 utils/misc/guc.c:4340 -#: utils/misc/guc.c:4371 utils/misc/guc.c:5507 utils/misc/guc.c:5525 -#: utils/time/snapmgr.c:1268 utils/time/snapmgr.c:1275 +#: replication/logical/origin.c:676 replication/logical/snapbuild.c:1788 +#: replication/slot.c:2094 storage/file/buffile.c:545 +#: storage/file/copydir.c:197 utils/init/miscinit.c:1601 +#: utils/init/miscinit.c:1612 utils/init/miscinit.c:1620 utils/misc/guc.c:4450 +#: utils/misc/guc.c:4481 utils/misc/guc.c:5634 utils/misc/guc.c:5652 +#: utils/time/snapmgr.c:1239 utils/time/snapmgr.c:1246 #, c-format msgid "could not write to file \"%s\": %m" msgstr "неможливо записати до файлу \"%s\": %m" -#: access/heap/vacuumlazy.c:482 +#: access/heap/vacuumlazy.c:473 #, c-format msgid "aggressively vacuuming \"%s.%s.%s\"" msgstr "агресивне очищення \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:487 +#: access/heap/vacuumlazy.c:478 #, c-format msgid "vacuuming \"%s.%s.%s\"" msgstr "очищення \"%s.%s.%s\"" -#: access/heap/vacuumlazy.c:635 +#: access/heap/vacuumlazy.c:626 #, c-format msgid "finished vacuuming \"%s.%s.%s\": index scans: %d\n" msgstr "очищення закінчено \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:646 +#: access/heap/vacuumlazy.c:637 #, c-format msgid "automatic aggressive vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичний агресивний вакуум для запобігання зацикленню таблиці \"%s.%s.%s\": сканування індексу: %d\n" -#: access/heap/vacuumlazy.c:648 +#: access/heap/vacuumlazy.c:639 #, c-format msgid "automatic vacuum to prevent wraparound of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичне очищення для запобігання зацикленню таблиці \"%s.%s.%s\": сканування індексу: %d\n" -#: access/heap/vacuumlazy.c:653 +#: access/heap/vacuumlazy.c:644 #, c-format msgid "automatic aggressive vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматична агресивне очищення таблиці \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:655 +#: access/heap/vacuumlazy.c:646 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\": index scans: %d\n" msgstr "автоматичне очищення таблиці \"%s.%s.%s\": сканувань індексу: %d\n" -#: access/heap/vacuumlazy.c:662 +#: access/heap/vacuumlazy.c:653 #, c-format msgid "pages: %u removed, %u remain, %u scanned (%.2f%% of total)\n" msgstr "сторінок: %u видалено, %u залишилось, %u відскановано (%.2f%% від загальної кількості)\n" -#: access/heap/vacuumlazy.c:669 +#: access/heap/vacuumlazy.c:660 #, c-format msgid "tuples: %lld removed, %lld remain, %lld are dead but not yet removable\n" msgstr "кортежів: %lld видалено, %lld залишилось, %lld мертвих, але все ще не можуть бути видаленні\n" -#: access/heap/vacuumlazy.c:675 +#: access/heap/vacuumlazy.c:666 #, c-format msgid "tuples missed: %lld dead from %u pages not removed due to cleanup lock contention\n" msgstr "пропущено кортежів: %lld померлих з %u сторінок не видалено через очищення блокування\n" -#: access/heap/vacuumlazy.c:681 +#: access/heap/vacuumlazy.c:672 #, c-format msgid "removable cutoff: %u, which was %d XIDs old when operation ended\n" msgstr "Видалення вирізу: %u, це було %d XIDs старий при завершенні операції\n" -#: access/heap/vacuumlazy.c:688 +#: access/heap/vacuumlazy.c:679 #, c-format msgid "new relfrozenxid: %u, which is %d XIDs ahead of previous value\n" msgstr "новий relfrozenxid: %u, що є %d XIDs попереду попереднього значення\n" -#: access/heap/vacuumlazy.c:696 +#: access/heap/vacuumlazy.c:687 #, c-format msgid "new relminmxid: %u, which is %d MXIDs ahead of previous value\n" msgstr "новий relminmxid: %u, що становить %d MXIDs попереду попереднього значення\n" -#: access/heap/vacuumlazy.c:699 +#: access/heap/vacuumlazy.c:690 #, c-format msgid "frozen: %u pages from table (%.2f%% of total) had %lld tuples frozen\n" msgstr "заморожено: %u сторінок з таблиці (%.2f%% з усього) має %lld заморожені рядків\n" -#: access/heap/vacuumlazy.c:707 +#: access/heap/vacuumlazy.c:698 msgid "index scan not needed: " msgstr "сканування індексу не потрібне: " -#: access/heap/vacuumlazy.c:709 +#: access/heap/vacuumlazy.c:700 msgid "index scan needed: " msgstr "сканування індексу потрібне: " -#: access/heap/vacuumlazy.c:711 +#: access/heap/vacuumlazy.c:702 #, c-format msgid "%u pages from table (%.2f%% of total) had %lld dead item identifiers removed\n" msgstr "у %u сторінок з таблиці (%.2f%% від загальної кількості) було видалено %lld мертвих ідентифікаторів елементів\n" -#: access/heap/vacuumlazy.c:716 +#: access/heap/vacuumlazy.c:707 msgid "index scan bypassed: " msgstr "сканування індексу пропущено: " -#: access/heap/vacuumlazy.c:718 +#: access/heap/vacuumlazy.c:709 msgid "index scan bypassed by failsafe: " msgstr "сканування індексу безпечно пропущено: " -#: access/heap/vacuumlazy.c:720 +#: access/heap/vacuumlazy.c:711 #, c-format msgid "%u pages from table (%.2f%% of total) have %lld dead item identifiers\n" msgstr "%u сторінок з таблиці (%.2f%% від загальної кількості) мають %lld мертвих ідентифікаторів елементів\n" -#: access/heap/vacuumlazy.c:735 +#: access/heap/vacuumlazy.c:726 #, c-format msgid "index \"%s\": pages: %u in total, %u newly deleted, %u currently deleted, %u reusable\n" msgstr "індекс \"%s\": сторінок: %u загалом, %u нещодавно видалено, %u наразі видалено, %u для повторного використання\n" -#: access/heap/vacuumlazy.c:747 commands/analyze.c:796 +#: access/heap/vacuumlazy.c:738 commands/analyze.c:794 #, c-format msgid "I/O timings: read: %.3f ms, write: %.3f ms\n" msgstr "час вводу-виведення: читання %.3f мс, запис: %.3f мс\n" -#: access/heap/vacuumlazy.c:757 commands/analyze.c:799 +#: access/heap/vacuumlazy.c:748 commands/analyze.c:797 #, c-format msgid "avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n" msgstr "середня швидкість читання: %.3f МБ/с, середня швидкість запису: %.3f МБ/с\n" -#: access/heap/vacuumlazy.c:760 commands/analyze.c:801 +#: access/heap/vacuumlazy.c:751 commands/analyze.c:799 #, c-format msgid "buffer usage: %lld hits, %lld misses, %lld dirtied\n" msgstr "використання буфера: %lld звернень, %lld промахів, %lld, брудних записів\n" -#: access/heap/vacuumlazy.c:765 +#: access/heap/vacuumlazy.c:756 #, c-format msgid "WAL usage: %lld records, %lld full page images, %llu bytes\n" msgstr "Використання WAL: %lld записів, %lld зображень на повну сторінку, %llu байтів\n" -#: access/heap/vacuumlazy.c:769 commands/analyze.c:805 +#: access/heap/vacuumlazy.c:760 commands/analyze.c:803 #, c-format msgid "system usage: %s" msgstr "використання системи: %s" -#: access/heap/vacuumlazy.c:2482 +#: access/heap/vacuumlazy.c:2172 #, c-format msgid "table \"%s\": removed %lld dead item identifiers in %u pages" msgstr "таблиця \"%s\": видалено %lld мертвих ідентифікаторів елементів в %u сторінках" -#: access/heap/vacuumlazy.c:2642 +#: access/heap/vacuumlazy.c:2326 #, c-format msgid "bypassing nonessential maintenance of table \"%s.%s.%s\" as a failsafe after %d index scans" msgstr "безпечне пропущення неістотного обслуговування таблиці \"%s.%s.%s\" після %d сканів індексу" -#: access/heap/vacuumlazy.c:2645 +#: access/heap/vacuumlazy.c:2329 #, c-format msgid "The table's relfrozenxid or relminmxid is too far in the past." msgstr "relfrozenxid або relminmxid таблиці занадто далеко в минулому." -#: access/heap/vacuumlazy.c:2646 +#: access/heap/vacuumlazy.c:2330 #, c-format -msgid "" -"Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" +msgid "Consider increasing configuration parameter \"maintenance_work_mem\" or \"autovacuum_work_mem\".\n" "You might also need to consider other ways for VACUUM to keep up with the allocation of transaction IDs." -msgstr "" -"Можливо, слід збільшити параметр конфігурації \"maintenance_work_mem\" або \"autovacuum_work_mem\".\n" +msgstr "Можливо, слід збільшити параметр конфігурації \"maintenance_work_mem\" або \"autovacuum_work_mem\".\n" "Можливо, вам також доведеться розглянути інші способи, щоб VACUUM не відставав від розподілу ідентифікаторів транзакцій." -#: access/heap/vacuumlazy.c:2891 +#: access/heap/vacuumlazy.c:2592 #, c-format msgid "\"%s\": stopping truncate due to conflicting lock request" msgstr "\"%s\": зупинка скорочення через конфліктний запит блокування" -#: access/heap/vacuumlazy.c:2961 +#: access/heap/vacuumlazy.c:2662 #, c-format msgid "table \"%s\": truncated %u to %u pages" msgstr "таблиця \"%s: скорочена від %u до %u сторінок" -#: access/heap/vacuumlazy.c:3023 +#: access/heap/vacuumlazy.c:2724 #, c-format msgid "table \"%s\": suspending truncate due to conflicting lock request" msgstr "таблиця \"%s: припинення скорочення через конфліктуючий запит блокування" -#: access/heap/vacuumlazy.c:3183 +#: access/heap/vacuumlazy.c:2843 #, c-format msgid "disabling parallel option of vacuum on \"%s\" --- cannot vacuum temporary tables in parallel" msgstr "вимкнення паралельної опції очищення на \"%s\" --- неможливо паралельно очистити тимчасові таблиці" -#: access/heap/vacuumlazy.c:3399 +#: access/heap/vacuumlazy.c:3113 #, c-format msgid "while scanning block %u offset %u of relation \"%s.%s\"" msgstr "під час сканування блоку %u зсувом %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3402 +#: access/heap/vacuumlazy.c:3116 #, c-format msgid "while scanning block %u of relation \"%s.%s\"" msgstr "у процесі сканування блоку %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3406 +#: access/heap/vacuumlazy.c:3120 #, c-format msgid "while scanning relation \"%s.%s\"" msgstr "у процесі сканування відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3414 +#: access/heap/vacuumlazy.c:3128 #, c-format msgid "while vacuuming block %u offset %u of relation \"%s.%s\"" msgstr "під час очищення блоку %u зсувом %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3417 +#: access/heap/vacuumlazy.c:3131 #, c-format msgid "while vacuuming block %u of relation \"%s.%s\"" msgstr "у процесі очищення блоку %u відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3421 +#: access/heap/vacuumlazy.c:3135 #, c-format msgid "while vacuuming relation \"%s.%s\"" msgstr "у процесі очищення відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3426 commands/vacuumparallel.c:1074 +#: access/heap/vacuumlazy.c:3140 commands/vacuumparallel.c:1113 #, c-format msgid "while vacuuming index \"%s\" of relation \"%s.%s\"" msgstr "у процесі очищення індексу \"%s\" відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3431 commands/vacuumparallel.c:1080 +#: access/heap/vacuumlazy.c:3145 commands/vacuumparallel.c:1119 #, c-format msgid "while cleaning up index \"%s\" of relation \"%s.%s\"" msgstr "у процесі очищення індексу \"%s\" відношення \"%s.%s\"" -#: access/heap/vacuumlazy.c:3437 +#: access/heap/vacuumlazy.c:3151 #, c-format msgid "while truncating relation \"%s.%s\" to %u blocks" msgstr "у процесі скорочення відношення \"%s.%s\" до %u блоків" @@ -1446,19 +1630,24 @@ msgstr "метод доступу \"%s\" не є типу %s" msgid "index access method \"%s\" does not have a handler" msgstr "для методу доступу індекса \"%s\" не заданий обробник" -#: access/index/genam.c:490 +#: access/index/genam.c:487 #, c-format msgid "transaction aborted during system catalog scan" msgstr "транзакцію перервано під час сканування системного каталогу" -#: access/index/indexam.c:203 catalog/objectaddress.c:1394 -#: commands/indexcmds.c:2843 commands/tablecmds.c:272 commands/tablecmds.c:296 -#: commands/tablecmds.c:17185 commands/tablecmds.c:18963 +#: access/index/genam.c:655 access/index/indexam.c:82 +#, c-format +msgid "cannot access index \"%s\" while it is being reindexed" +msgstr "неможливо отримати доступ до індекса \"%s\" в процесі реіндексації" + +#: access/index/indexam.c:203 catalog/objectaddress.c:1356 +#: commands/indexcmds.c:2878 commands/tablecmds.c:281 commands/tablecmds.c:305 +#: commands/tablecmds.c:17763 commands/tablecmds.c:19574 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" не є індексом" -#: access/index/indexam.c:1016 +#: access/index/indexam.c:1028 #, c-format msgid "operator class %s has no options" msgstr "клас операторів %s без параметрів" @@ -1479,7 +1668,7 @@ msgid "This may be because of a non-immutable index expression." msgstr "Можливо, це викликано змінною природою індексного вираження." #: access/nbtree/nbtpage.c:157 access/nbtree/nbtpage.c:611 -#: parser/parse_utilcmd.c:2326 +#: parser/parse_utilcmd.c:2323 #, c-format msgid "index \"%s\" is not a btree" msgstr "індекс \"%s\" не є b-деревом" @@ -1489,33 +1678,31 @@ msgstr "індекс \"%s\" не є b-деревом" msgid "version mismatch in index \"%s\": file version %d, current version %d, minimal supported version %d" msgstr "невідповідність версії в індексі \"%s\": версія файла %d, поточна версія %d, мінімальна підтримувана версія %d" -#: access/nbtree/nbtpage.c:1866 +#: access/nbtree/nbtpage.c:1861 #, c-format msgid "index \"%s\" contains a half-dead internal page" msgstr "індекс \"%s\" містить наполовину мертву внутрішню сторінку" -#: access/nbtree/nbtpage.c:1868 +#: access/nbtree/nbtpage.c:1863 #, c-format msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Це могло статися через переривання VACUUM у версії 9.3 або старше перед оновленням. Будь ласка, виконайте REINDEX." -#: access/nbtree/nbtutils.c:2677 +#: access/nbtree/nbtutils.c:5102 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "розмір рядка індексу %zu перевищує максимальний розмір для версії %u btree %zu для індексу \"%s\"" -#: access/nbtree/nbtutils.c:2683 +#: access/nbtree/nbtutils.c:5108 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Рядок індексу посилається на кортеж (%u,,%u) у відношенні \"%s\"." -#: access/nbtree/nbtutils.c:2687 +#: access/nbtree/nbtutils.c:5112 #, c-format -msgid "" -"Values larger than 1/3 of a buffer page cannot be indexed.\n" +msgid "Values larger than 1/3 of a buffer page cannot be indexed.\n" "Consider a function index of an MD5 hash of the value, or use full text indexing." -msgstr "" -"Значення, що займають більше, ніж 1/3 сторінки буферу, не можуть бути індексовані.\n" +msgstr "Значення, що займають більше, ніж 1/3 сторінки буферу, не можуть бути індексовані.\n" "Радимо застосувати індекс MD5-хеш значення або використати повнотекстове індексування." #: access/nbtree/nbtvalidate.c:246 @@ -1523,12 +1710,18 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "сімейство операторів \"%s\" методу доступу %s не має опорної функції для типів %s та %s" -#: access/spgist/spgutils.c:243 +#: access/sequence/sequence.c:75 access/table/table.c:145 +#: optimizer/util/plancat.c:144 +#, c-format +msgid "cannot open relation \"%s\"" +msgstr "неможливо відкрити відношення \"%s\"" + +#: access/spgist/spgutils.c:245 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "метод стиснення повинен бути визначений, коли тип листів відрізняється від вхідного типу" -#: access/spgist/spgutils.c:1015 +#: access/spgist/spgutils.c:1028 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "Внутрішній розмір кортежу SP-GiST %zu перевищує максимальний %zu" @@ -1543,82 +1736,76 @@ msgstr "тип даних кінцевого вузла SP-GiST %s не відп msgid "operator family \"%s\" of access method %s is missing support function %d for type %s" msgstr "сімейство операторів \"%s\" методу доступу %s не має опорної функції для типів %d для типу %s" -#: access/table/table.c:145 optimizer/util/plancat.c:145 -#, c-format -msgid "cannot open relation \"%s\"" -msgstr "неможливо відкрити відношення \"%s\"" - -#: access/table/tableam.c:265 +#: access/table/tableam.c:255 #, c-format msgid "tid (%u, %u) is not valid for relation \"%s\"" msgstr "невірний tid (%u, %u) для відношення \"%s\"" -#: access/table/tableamapi.c:116 +#: access/table/tableamapi.c:109 #, c-format -msgid "%s cannot be empty." -msgstr "%s не може бути пустим." +msgid "\"%s\" cannot be empty." +msgstr "\"%s\" не може бути пустим." -#: access/table/tableamapi.c:123 access/transam/xlogrecovery.c:4808 +#: access/table/tableamapi.c:116 access/transam/xlogrecovery.c:4858 #, c-format -msgid "%s is too long (maximum %d characters)." -msgstr "%s занадто довгий (максимум %d символів)." +msgid "\"%s\" is too long (maximum %d characters)." +msgstr "\"%s\" занадто довгий (максимум %d символів)." -#: access/table/tableamapi.c:146 +#: access/table/tableamapi.c:139 #, c-format msgid "table access method \"%s\" does not exist" msgstr "табличного методу доступу \"%s\" не існує" -#: access/table/tableamapi.c:151 +#: access/table/tableamapi.c:144 #, c-format msgid "Table access method \"%s\" does not exist." msgstr "Табличного методу доступу \"%s\" не існує." -#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:152 +#: access/tablesample/bernoulli.c:148 access/tablesample/system.c:151 #, c-format msgid "sample percentage must be between 0 and 100" msgstr "відсоток вибірки повинен задаватися числом від 0 до 100" -#: access/transam/commit_ts.c:279 +#: access/transam/commit_ts.c:287 #, c-format msgid "cannot retrieve commit timestamp for transaction %u" msgstr "не вдалося отримати мітку позначки часу транзакції %u" -#: access/transam/commit_ts.c:377 +#: access/transam/commit_ts.c:385 #, c-format msgid "could not get commit timestamp data" msgstr "не вдалося отримати позначку часу фіксації" -#: access/transam/commit_ts.c:379 +#: access/transam/commit_ts.c:387 #, c-format msgid "Make sure the configuration parameter \"%s\" is set on the primary server." msgstr "Переконайтесь, що в конфігурації основного серверу встановлений параметр \"%s\"." -#: access/transam/commit_ts.c:381 +#: access/transam/commit_ts.c:389 #, c-format msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Переконайтесь, що в конфігурації встановлений параметр \"%s\"." -#: access/transam/multixact.c:1023 +#: access/transam/multixact.c:1091 #, c-format -msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" -msgstr "щоб уникнути втрат даних у базі даних \"%s\", база даних не приймає команди, що створюють нові MultiXactIds" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database \"%s\"" +msgstr "база даних не приймає команди, які призначають нові MultiXactId, щоб уникнути втрати даних через зациклення у базі даних \"%s\"" -#: access/transam/multixact.c:1025 access/transam/multixact.c:1032 -#: access/transam/multixact.c:1056 access/transam/multixact.c:1065 +#: access/transam/multixact.c:1093 access/transam/multixact.c:1100 +#: access/transam/multixact.c:1124 access/transam/multixact.c:1133 +#: access/transam/varsup.c:158 access/transam/varsup.c:165 #, c-format -msgid "" -"Execute a database-wide VACUUM in that database.\n" +msgid "Execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." -msgstr "" -"Виконати очистку (VACUUM) по всій базі даних.\n" +msgstr "Виконати очистку (VACUUM) по всій базі даних.\n" "Можливо, вам доведеться зафіксувати, відкотити назад старі підготовані транзакції або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:1030 +#: access/transam/multixact.c:1098 #, c-format -msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" -msgstr "щоб уникнути втрат даних в базі даних з OID %u, база даних не приймає команди, що створюють нові MultiXactIds" +msgid "database is not accepting commands that assign new MultiXactIds to avoid wraparound data loss in database with OID %u" +msgstr "база даних не приймає команди, які призначають нові MultiXactId, щоб уникнути втрати даних через зациклення у базі даних з OID %u" -#: access/transam/multixact.c:1051 access/transam/multixact.c:2333 +#: access/transam/multixact.c:1119 access/transam/multixact.c:2474 #, 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" @@ -1627,7 +1814,7 @@ msgstr[1] "бази даних \"%s\" повинні бути очищені (va msgstr[2] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1060 access/transam/multixact.c:2342 +#: access/transam/multixact.c:1128 access/transam/multixact.c:2483 #, 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" @@ -1636,12 +1823,12 @@ msgstr[1] "бази даних з OID %u повинні бути очищені msgstr[2] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1189 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "перевищено ліміт членів мультитранзакції" -#: access/transam/multixact.c:1122 +#: access/transam/multixact.c:1190 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." @@ -1650,12 +1837,12 @@ msgstr[1] "Мультитранзакція створена цією коман msgstr[2] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." msgstr[3] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." -#: access/transam/multixact.c:1127 +#: access/transam/multixact.c:1195 #, c-format -msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Виконати очистку (VACUUM) по всій базі даних з OID %u зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." +msgid "Execute a database-wide VACUUM in database with OID %u with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." +msgstr "Виконати очистку (VACUUM) по всій базі даних з OID %u зі зменшенням значення \"vacuum_multixact_freeze_min_age\" та \"vacuum_multixact_freeze_table_age settings\"." -#: access/transam/multixact.c:1158 +#: access/transam/multixact.c:1226 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" @@ -1664,201 +1851,202 @@ msgstr[1] "база даних з OID %u повинна бути очищена msgstr[2] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" msgstr[3] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" -#: access/transam/multixact.c:1163 +#: access/transam/multixact.c:1231 #, c-format -msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." -msgstr "Виконати очищення (VACUUM) по всій цій базі даних зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." +msgid "Execute a database-wide VACUUM in that database with reduced \"vacuum_multixact_freeze_min_age\" and \"vacuum_multixact_freeze_table_age\" settings." +msgstr "Виконати очищення (VACUUM) по всій цій базі даних зі зменшенням значення \"vacuum_multixact_freeze_min_age\" та \"vacuum_multixact_freeze_table_age\" settings." -#: access/transam/multixact.c:1302 +#: access/transam/multixact.c:1371 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u припинив існування -- очевидно відбулося зациклення" -#: access/transam/multixact.c:1308 +#: access/transam/multixact.c:1377 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ще не був створений -- очевидно відбулося зациклення" -#: access/transam/multixact.c:2338 access/transam/multixact.c:2347 -#: access/transam/varsup.c:151 access/transam/varsup.c:158 -#: access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:2479 access/transam/multixact.c:2488 #, c-format -msgid "" -"To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" +msgid "To avoid MultiXactId assignment failures, execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." -msgstr "" -"Щоб уникнути вимкнення бази даних, виконайте VACUUM для всієї бази даних.\n" -"Можливо, вам доведеться зафіксувати або відкотити назад старі підготовленні транзакції або видалити застарілі слоти реплікації." +msgstr "Щоб уникнути збоїв у призначенні MultiXactId, виконайте VACUUM для всієї бази даних у цій базі даних.\n" +"Вам також може знадобитися зафіксувати або відкотити старі підготовлені транзакції, або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2767 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "Захист від зациклення члену MultiXact вимкнена, оскільки найстаріша контрольна точка MultiXact %u не існує на диску" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2789 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Захист від зациклення члену MultiXact наразі ввімкнена" -#: access/transam/multixact.c:3027 +#: access/transam/multixact.c:3180 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "найстарішу MultiXact %u не знайдено, найновіша MultiXact %u, скорочення пропускається" -#: access/transam/multixact.c:3045 +#: access/transam/multixact.c:3198 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "неможливо виконати скорочення до MultiXact %u, оскільки її не існує на диску, скорочення пропускається" -#: access/transam/multixact.c:3359 +#: access/transam/multixact.c:3517 #, c-format msgid "invalid MultiXactId: %u" msgstr "неприпустимий MultiXactId: %u" -#: access/transam/parallel.c:729 access/transam/parallel.c:848 +#: access/transam/parallel.c:731 access/transam/parallel.c:850 #, c-format msgid "parallel worker failed to initialize" msgstr "не вдалося виконати ініціалізацію паралельного виконавця" -#: access/transam/parallel.c:730 access/transam/parallel.c:849 +#: access/transam/parallel.c:732 access/transam/parallel.c:851 #, c-format msgid "More details may be available in the server log." msgstr "Більше деталей можуть бути доступні в журналі серверу." -#: access/transam/parallel.c:910 +#: access/transam/parallel.c:912 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершився під час паралельної транзакції" -#: access/transam/parallel.c:1097 +#: access/transam/parallel.c:1099 #, c-format msgid "lost connection to parallel worker" msgstr "втрачено зв'язок з паралельним виконавцем" -#: access/transam/parallel.c:1163 access/transam/parallel.c:1165 +#: access/transam/parallel.c:1155 access/transam/parallel.c:1157 msgid "parallel worker" msgstr "паралельний виконавець" -#: access/transam/parallel.c:1319 replication/logical/applyparallelworker.c:893 +#: access/transam/parallel.c:1327 replication/logical/applyparallelworker.c:890 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не вдалося відобразити динамічний сегмент спільної пам'яті" -#: access/transam/parallel.c:1324 replication/logical/applyparallelworker.c:899 +#: access/transam/parallel.c:1332 replication/logical/applyparallelworker.c:896 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неприпустиме магічне число в динамічному сегменті спільної пам'яті" -#: access/transam/rmgr.c:84 +#: access/transam/rmgr.c:93 #, c-format msgid "resource manager with ID %d not registered" msgstr "менеджер ресурсів з ID %d не зареєстрований" -#: access/transam/rmgr.c:85 +#: access/transam/rmgr.c:94 #, c-format -msgid "Include the extension module that implements this resource manager in shared_preload_libraries." -msgstr "Включає модуль розширення, який впроваджує цей менеджер ресурсів у shared_preload_libraries." +msgid "Include the extension module that implements this resource manager in \"shared_preload_libraries\"." +msgstr "Включає модуль розширення, який впроваджує цей менеджер ресурсів у \"shared_preload_libraries\"." -#: access/transam/rmgr.c:101 +#: access/transam/rmgr.c:110 #, c-format msgid "custom resource manager name is invalid" msgstr "назва користувацького менеджера ресурсів неприпустима" -#: access/transam/rmgr.c:102 +#: access/transam/rmgr.c:111 #, c-format msgid "Provide a non-empty name for the custom resource manager." msgstr "Вкажіть непорожню назву для користувацького менеджера ресурсів." -#: access/transam/rmgr.c:105 +#: access/transam/rmgr.c:114 #, c-format msgid "custom resource manager ID %d is out of range" msgstr "ID %d користувацького менеджера ресурсів поза діапазоном" -#: access/transam/rmgr.c:106 +#: access/transam/rmgr.c:115 #, c-format msgid "Provide a custom resource manager ID between %d and %d." msgstr "Вкажіть ID користувацького менеджера ресурсів між %d і %d." -#: access/transam/rmgr.c:111 access/transam/rmgr.c:116 -#: access/transam/rmgr.c:128 +#: access/transam/rmgr.c:120 access/transam/rmgr.c:125 +#: access/transam/rmgr.c:137 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" msgstr "не вдалося зареєструвати користувацький менеджер ресурсів \"%s\" з ID %d" -#: access/transam/rmgr.c:112 +#: access/transam/rmgr.c:121 #, c-format -msgid "Custom resource manager must be registered while initializing modules in shared_preload_libraries." -msgstr "Користувацький менеджер ресурсів повинен бути зареєстрований під час ініціалізації модулів у shared_preload_libraries." +msgid "Custom resource manager must be registered while initializing modules in \"shared_preload_libraries\"." +msgstr "Користувацький менеджер ресурсів повинен бути зареєстрований під час ініціалізації модулів у \"shared_preload_libraries\"." -#: access/transam/rmgr.c:117 +#: access/transam/rmgr.c:126 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." msgstr "Користувацький менеджер ресурсів \"%s\" вже зареєстрований з таким самим ID." -#: access/transam/rmgr.c:129 +#: access/transam/rmgr.c:138 #, c-format msgid "Existing resource manager with ID %d has the same name." msgstr "Існуючий менеджер ресурсів з ID %d має таку саму назву." -#: access/transam/rmgr.c:135 +#: access/transam/rmgr.c:144 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" msgstr "зареєстрований користувацький менеджер ресурсів \"%s\" з ID %d" -#: access/transam/slru.c:714 +#: access/transam/slru.c:361 +#, c-format +msgid "\"%s\" must be a multiple of %d" +msgstr "\"%s\" має бути кратним %d" + +#: access/transam/slru.c:830 #, c-format msgid "file \"%s\" doesn't exist, reading as zeroes" msgstr "файл \"%s\" не існує, вважається нульовим" -#: access/transam/slru.c:946 access/transam/slru.c:952 -#: access/transam/slru.c:960 access/transam/slru.c:965 -#: access/transam/slru.c:972 access/transam/slru.c:977 -#: access/transam/slru.c:984 access/transam/slru.c:991 +#: access/transam/slru.c:1059 access/transam/slru.c:1065 +#: access/transam/slru.c:1073 access/transam/slru.c:1078 +#: access/transam/slru.c:1085 access/transam/slru.c:1090 +#: access/transam/slru.c:1097 access/transam/slru.c:1104 #, c-format msgid "could not access status of transaction %u" msgstr "не можливо отримати статус транзакції %u" -#: access/transam/slru.c:947 +#: access/transam/slru.c:1060 #, c-format msgid "Could not open file \"%s\": %m." msgstr "Не можливо відкрити файл \"%s\": %m." -#: access/transam/slru.c:953 +#: access/transam/slru.c:1066 #, c-format msgid "Could not seek in file \"%s\" to offset %d: %m." msgstr "Не вдалося знайти у файлі \"%s\" до зсуву %d: %m." -#: access/transam/slru.c:961 +#: access/transam/slru.c:1074 #, c-format msgid "Could not read from file \"%s\" at offset %d: %m." msgstr "Не вдалося прочитати з файлу \"%s\" по зсуву %d: %m." -#: access/transam/slru.c:966 +#: access/transam/slru.c:1079 #, c-format msgid "Could not read from file \"%s\" at offset %d: read too few bytes." msgstr "Не вдалося прочитати з файлу \"%s\" по зсуву %d: прочитано занадто мало байтів." -#: access/transam/slru.c:973 +#: access/transam/slru.c:1086 #, c-format msgid "Could not write to file \"%s\" at offset %d: %m." msgstr "Не вдалося записати до файлу \"%s\" зсув %d: %m." -#: access/transam/slru.c:978 +#: access/transam/slru.c:1091 #, c-format msgid "Could not write to file \"%s\" at offset %d: wrote too few bytes." msgstr "Не вдалося записати до файлу \"%s\" зсув %d: записано занадто мало байтів." -#: access/transam/slru.c:985 +#: access/transam/slru.c:1098 #, c-format msgid "Could not fsync file \"%s\": %m." msgstr "Не вдалося синхронізувати файл \"%s\": %m." -#: access/transam/slru.c:992 +#: access/transam/slru.c:1105 #, c-format msgid "Could not close file \"%s\": %m." msgstr "Не можливо закрити файл \"%s\": %m." -#: access/transam/slru.c:1253 +#: access/transam/slru.c:1431 #, c-format msgid "could not truncate directory \"%s\": apparent wraparound" msgstr "не вдалося спустошити каталог \"%s\": очевидно сталося зациклення" @@ -1903,72 +2091,72 @@ msgstr "Ідентифікатори ліній часу повинні бути msgid "requested timeline %u is not in this server's history" msgstr "в історії даного серверу немає запитаної лінії часу %u" -#: access/transam/twophase.c:386 +#: access/transam/twophase.c:368 #, c-format msgid "transaction identifier \"%s\" is too long" msgstr "ідентифікатор транзакції \"%s\" задовгий" -#: access/transam/twophase.c:393 +#: access/transam/twophase.c:375 #, c-format msgid "prepared transactions are disabled" msgstr "підготовлені транзакції вимкнено" -#: access/transam/twophase.c:394 +#: access/transam/twophase.c:376 #, c-format -msgid "Set max_prepared_transactions to a nonzero value." -msgstr "Встановіть ненульове значення параметра max_prepared_transactions." +msgid "Set \"max_prepared_transactions\" to a nonzero value." +msgstr "Встановіть ненульове значення параметра \"max_prepared_transactions\"." -#: access/transam/twophase.c:413 +#: access/transam/twophase.c:395 #, c-format msgid "transaction identifier \"%s\" is already in use" msgstr "ідентифікатор транзакції \"%s\" вже використовується" -#: access/transam/twophase.c:422 access/transam/twophase.c:2517 +#: access/transam/twophase.c:404 access/transam/twophase.c:2540 #, c-format msgid "maximum number of prepared transactions reached" msgstr "досягнуто максимального числа підготованих транзакцій" -#: access/transam/twophase.c:423 access/transam/twophase.c:2518 +#: access/transam/twophase.c:405 access/transam/twophase.c:2541 #, c-format -msgid "Increase max_prepared_transactions (currently %d)." -msgstr "Збільшіть max_prepared_transactions (наразі %d)." +msgid "Increase \"max_prepared_transactions\" (currently %d)." +msgstr "Збільшіть \"max_prepared_transactions\" (наразі %d)." -#: access/transam/twophase.c:599 +#: access/transam/twophase.c:580 #, c-format msgid "prepared transaction with identifier \"%s\" is busy" msgstr "підготовлена транзакція з ідентифікатором \"%s\" зайнята" -#: access/transam/twophase.c:605 +#: access/transam/twophase.c:586 #, c-format msgid "permission denied to finish prepared transaction" msgstr "немає дозволу для завершення підготовлених транзакцій" -#: access/transam/twophase.c:606 +#: access/transam/twophase.c:587 #, c-format msgid "Must be superuser or the user that prepared the transaction." msgstr "Треба пути суперкористувачем або користувачем, який підготував транзакцію." -#: access/transam/twophase.c:617 +#: access/transam/twophase.c:598 #, c-format msgid "prepared transaction belongs to another database" msgstr "підготовлена транзакція належить до іншої бази даних" -#: access/transam/twophase.c:618 +#: access/transam/twophase.c:599 #, c-format msgid "Connect to the database where the transaction was prepared to finish it." msgstr "З'єднайтесь з базою даних, де була підготовлена транзакція, щоб завершити її." -#: access/transam/twophase.c:633 +#: access/transam/twophase.c:614 #, c-format msgid "prepared transaction with identifier \"%s\" does not exist" msgstr "підготовленої транзакції з ідентифікатором \"%s\" не існує" -#: access/transam/twophase.c:1168 +#: access/transam/twophase.c:1190 #, c-format msgid "two-phase state file maximum length exceeded" msgstr "перевищено граничний розмір файла у 2-фазовому стані" -#: access/transam/twophase.c:1323 +#: access/transam/twophase.c:1345 #, c-format msgid "incorrect size of file \"%s\": %lld byte" msgid_plural "incorrect size of file \"%s\": %lld bytes" @@ -1977,58 +2165,59 @@ msgstr[1] "неправильний розмір файлу \"%s\": %lld бай msgstr[2] "неправильний розмір файлу \"%s\": %lld байтів" msgstr[3] "неправильний розмір файлу \"%s\": %lld байтів" -#: access/transam/twophase.c:1332 +#: access/transam/twophase.c:1354 #, c-format msgid "incorrect alignment of CRC offset for file \"%s\"" msgstr "неправильне вирівнювання зсуву CRC для файлу \"%s\"" -#: access/transam/twophase.c:1350 +#: access/transam/twophase.c:1372 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %lld" -#: access/transam/twophase.c:1365 +#: access/transam/twophase.c:1387 #, c-format msgid "invalid magic number stored in file \"%s\"" msgstr "неприпустиме магічне число, збережене у файлі\"%s\"" -#: access/transam/twophase.c:1371 +#: access/transam/twophase.c:1393 #, c-format msgid "invalid size stored in file \"%s\"" msgstr "неприпустимий розмір, збережений у файлі \"%s\"" -#: access/transam/twophase.c:1383 +#: access/transam/twophase.c:1405 #, c-format msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "обчислена контрольна сума CRC не відповідає значенню, збереженому у файлі \"%s\"" -#: access/transam/twophase.c:1413 access/transam/xlogrecovery.c:590 -#: replication/logical/logical.c:209 replication/walsender.c:687 +#: access/transam/twophase.c:1435 access/transam/xlogrecovery.c:565 +#: postmaster/walsummarizer.c:936 replication/logical/logical.c:211 +#: replication/walsender.c:836 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Не вдалося розмістити обробник журналу транзакцій." -#: access/transam/twophase.c:1423 +#: access/transam/twophase.c:1445 #, c-format msgid "could not read two-phase state from WAL at %X/%X: %s" msgstr "не вдалося прочитати 2-фазовий стан з WAL при %X/%X: %s" -#: access/transam/twophase.c:1428 +#: access/transam/twophase.c:1450 #, c-format msgid "could not read two-phase state from WAL at %X/%X" msgstr "не вдалося прочитати 2-фазовий стан з WAL при %X/%X" -#: access/transam/twophase.c:1436 +#: access/transam/twophase.c:1458 #, c-format msgid "expected two-phase state data is not present in WAL at %X/%X" msgstr "очікувані дані 2-фазного стану відсутні в WAL при %X/%X" -#: access/transam/twophase.c:1732 +#: access/transam/twophase.c:1754 #, c-format msgid "could not recreate file \"%s\": %m" msgstr "не вдалося відтворити файл \"%s\": %m" -#: access/transam/twophase.c:1859 +#: access/transam/twophase.c:1881 #, 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" @@ -2037,660 +2226,691 @@ msgstr[1] "%u 2-фазовий стан файлів був записаний msgstr[2] "%u 2-фазовий стан файлів був записаний завдяки довготривалим підготовленим транзакціям" msgstr[3] "%u 2-фазовий стан файлів був записаний завдяки довготривалим підготовленим транзакціям" -#: access/transam/twophase.c:2093 +#: access/transam/twophase.c:2116 #, c-format msgid "recovering prepared transaction %u from shared memory" msgstr "відновлення підготовленої транзакції %u із спільної пам'яті" -#: access/transam/twophase.c:2186 +#: access/transam/twophase.c:2209 #, c-format msgid "removing stale two-phase state file for transaction %u" msgstr "видалення застарілого файла 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2193 +#: access/transam/twophase.c:2216 #, c-format msgid "removing stale two-phase state from memory for transaction %u" msgstr "видалення з пам'яті застарілого 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2206 +#: access/transam/twophase.c:2229 #, c-format msgid "removing future two-phase state file for transaction %u" msgstr "видалення файлу майбутнього 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2213 +#: access/transam/twophase.c:2236 #, c-format msgid "removing future two-phase state from memory for transaction %u" msgstr "видалення з пам'яті майбутнього 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2238 +#: access/transam/twophase.c:2261 #, c-format msgid "corrupted two-phase state file for transaction %u" msgstr "пошкоджений файл двофазного стану для транзакції %u" -#: access/transam/twophase.c:2243 +#: access/transam/twophase.c:2266 #, c-format msgid "corrupted two-phase state in memory for transaction %u" msgstr "пошкоджена пам'ять двофазного стану для транзакції %u" -#: access/transam/twophase.c:2500 +#: access/transam/twophase.c:2523 #, c-format msgid "could not recover two-phase state file for transaction %u" msgstr "не вдалося відновити файл 2-фазового стану для транзакції %u" -#: access/transam/twophase.c:2502 +#: access/transam/twophase.c:2525 #, c-format msgid "Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk." msgstr "Файл 2-фазового стану був знайдений в запису WAL %X/%X, але ця транзакція вже відновлена з диску." -#: access/transam/twophase.c:2510 jit/jit.c:205 utils/fmgr/dfmgr.c:209 -#: utils/fmgr/dfmgr.c:415 +#: access/transam/twophase.c:2533 storage/file/fd.c:514 utils/fmgr/dfmgr.c:209 #, c-format msgid "could not access file \"%s\": %m" msgstr "немає доступу до файлу \"%s\": %m" -#: access/transam/varsup.c:129 -#, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database \"%s\"" -msgstr "база даних не приймає команди, щоб уникнути втрати даних через зациклення транзакцій в БД \"%s\"" - -#: access/transam/varsup.c:131 access/transam/varsup.c:138 +#: access/transam/varsup.c:156 #, c-format -msgid "" -"Stop the postmaster and vacuum that database in single-user mode.\n" -"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." -msgstr "" -"Зупиніть postmaster і виконайте очищення (vacuum) бази даних в однокористувацькому режимі.\n" -"Можливо, також доведеться зафіксувати або відкотити назад старі підготовлені транзакції, або розірвати застарілі реплікаційні слоти." +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database \"%s\"" +msgstr "база даних не приймає команди, які призначають нові ідентифікатори транзакцій, щоб уникнути обхідної втрати даних у базі даних \"%s\"" -#: access/transam/varsup.c:136 +#: access/transam/varsup.c:163 #, c-format -msgid "database is not accepting commands to avoid wraparound data loss in database with OID %u" -msgstr "база даних не приймає команди задля уникнення втрати даних через зациклення транзакцій в базі даних з OID %u" +msgid "database is not accepting commands that assign new transaction IDs to avoid wraparound data loss in database with OID %u" +msgstr "база даних не приймає команди, які призначають нові ідентифікатори транзакцій, щоб уникнути обхідної втрати даних у базі даних з OID %u" -#: access/transam/varsup.c:148 access/transam/varsup.c:463 +#: access/transam/varsup.c:175 access/transam/varsup.c:490 #, c-format msgid "database \"%s\" must be vacuumed within %u transactions" msgstr "база даних \"%s\" повинна бути очищена (граничне число транзакцій: %u)" -#: access/transam/varsup.c:155 access/transam/varsup.c:470 +#: access/transam/varsup.c:178 +#, c-format +msgid "To avoid transaction ID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "Щоб уникнути збоїв у призначенні ID транзакцій, виконайте VACUUM для всієї бази даних у цій базі даних.\n" +"Вам також може знадобитися зафіксувати або відкотити старі підготовлені транзакції, або видалити застарілі слоти реплікації." + +#: access/transam/varsup.c:182 access/transam/varsup.c:497 #, c-format msgid "database with OID %u must be vacuumed within %u transactions" msgstr "база даних з OID %u повинна бути очищена (граничне число транзакцій: %u)" -#: access/transam/xact.c:1102 +#: access/transam/varsup.c:185 access/transam/varsup.c:493 +#: access/transam/varsup.c:500 +#, c-format +msgid "To avoid XID assignment failures, execute a database-wide VACUUM in that database.\n" +"You might also need to commit or roll back old prepared transactions, or drop stale replication slots." +msgstr "Щоб уникнути збоїв у призначенні XID, виконайте VACUUM для всієї бази даних у цій базі даних.\n" +"Вам також може знадобитися зафіксувати або відкотити старі підготовлені транзакції, або видалити застарілі слоти реплікації." + +#: access/transam/xact.c:649 +#, c-format +msgid "cannot assign transaction IDs during a parallel operation" +msgstr "не можна призначити ідентифікатори транзакцій під час паралельних операцій" + +#: access/transam/xact.c:840 +#, c-format +msgid "cannot modify data in a parallel worker" +msgstr "неможливо змінити дані паралельного виконавця" + +#: access/transam/xact.c:1115 +#, c-format +msgid "cannot start commands during a parallel operation" +msgstr "неможливо запустити команди під час паралельних операцій" + +#: access/transam/xact.c:1123 #, c-format msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одній транзакції не може бути більше 2^32-2 команд" -#: access/transam/xact.c:1643 +#: access/transam/xact.c:1664 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "перевищено межу числа зафіксованих підтранзакцій (%d)" -#: access/transam/xact.c:2513 +#: access/transam/xact.c:2561 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "неможливо виконати PREPARE для транзакції, що здійснювалася на тимчасових об'єктах" -#: access/transam/xact.c:2523 +#: access/transam/xact.c:2571 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "не можна виконати PREPARE для транзакції, яка має експортовані знімки" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3490 +#: access/transam/xact.c:3593 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s неможливо запустити всередині блоку транзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3500 +#: access/transam/xact.c:3603 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s неможливо запустити всередині підтранзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3510 +#: access/transam/xact.c:3613 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s не можна використовувати в межах конвеєра" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3520 +#: access/transam/xact.c:3623 #, c-format msgid "%s cannot be executed from a function" msgstr "%s неможливо виконати з функції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3591 access/transam/xact.c:3916 -#: access/transam/xact.c:3995 access/transam/xact.c:4118 -#: access/transam/xact.c:4269 access/transam/xact.c:4338 -#: access/transam/xact.c:4449 +#: access/transam/xact.c:3694 access/transam/xact.c:4019 +#: access/transam/xact.c:4098 access/transam/xact.c:4221 +#: access/transam/xact.c:4372 access/transam/xact.c:4441 +#: access/transam/xact.c:4552 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s може використовуватися тільки в блоках транзакції" -#: access/transam/xact.c:3802 +#: access/transam/xact.c:3905 #, c-format msgid "there is already a transaction in progress" msgstr "транзакція вже виконується" -#: access/transam/xact.c:3921 access/transam/xact.c:4000 -#: access/transam/xact.c:4123 +#: access/transam/xact.c:4024 access/transam/xact.c:4103 +#: access/transam/xact.c:4226 #, c-format msgid "there is no transaction in progress" msgstr "немає незавершеної транзакції" -#: access/transam/xact.c:4011 +#: access/transam/xact.c:4114 #, c-format msgid "cannot commit during a parallel operation" msgstr "не можна фіксувати транзакції під час паралельних операцій" -#: access/transam/xact.c:4134 +#: access/transam/xact.c:4237 #, c-format msgid "cannot abort during a parallel operation" msgstr "не можна перервати під час паралельних операцій" -#: access/transam/xact.c:4233 +#: access/transam/xact.c:4336 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "не можна визначати точки збереження під час паралельних операцій" -#: access/transam/xact.c:4320 +#: access/transam/xact.c:4423 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "не можна вивільняти точки збереження під час паралельних транзакцій" -#: access/transam/xact.c:4330 access/transam/xact.c:4381 -#: access/transam/xact.c:4441 access/transam/xact.c:4490 +#: access/transam/xact.c:4433 access/transam/xact.c:4484 +#: access/transam/xact.c:4544 access/transam/xact.c:4593 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка збереження \"%s\" не існує" -#: access/transam/xact.c:4387 access/transam/xact.c:4496 +#: access/transam/xact.c:4490 access/transam/xact.c:4599 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "точка збереження \"%s\" не існує на поточному рівні збереження точок" -#: access/transam/xact.c:4429 +#: access/transam/xact.c:4532 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "не можна відкотити назад до точки збереження під час паралельних операцій" -#: access/transam/xact.c:4557 -#, c-format -msgid "cannot start subtransactions during a parallel operation" -msgstr "не можна запустити підтранзакцію під час паралельних операцій" - -#: access/transam/xact.c:4625 -#, c-format -msgid "cannot commit subtransactions during a parallel operation" -msgstr "не можна визначити підтранзакцію під час паралельних операцій" - -#: access/transam/xact.c:5271 +#: access/transam/xact.c:5376 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одній транзакції не може бути більше 2^32-1 підтранзакцій" -#: access/transam/xlog.c:1468 +#: access/transam/xlog.c:1541 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "запит на очищення минулого кінця згенерованого WAL; запит %X/%X, поточна позиція %X/%X" -#: access/transam/xlog.c:2230 +#: access/transam/xlog.c:1768 +#, c-format +msgid "cannot read past end of generated WAL: requested %X/%X, current position %X/%X" +msgstr "не вдалося прочитати останній кінець згенерованого WAL: запит %X/%X, поточна позиція %X/%X" + +#: access/transam/xlog.c:2209 access/transam/xlog.c:4500 #, c-format -msgid "could not write to log file %s at offset %u, length %zu: %m" -msgstr "не вдалося записати у файл журналу %s (зсув: %u, довжина: %zu): %m" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Розмір сегмента WAL повинен бути степенем двійки від 1 МБ до 1 ГБ." -#: access/transam/xlog.c:3457 access/transam/xlogutils.c:833 -#: replication/walsender.c:2725 +#: access/transam/xlog.c:2227 +#, c-format +msgid "\"%s\" must be set to -1 during binary upgrade mode." +msgstr "\"%s\" має бути встановлено на -1 під час двійкового режиму оновлення." + +#: access/transam/xlog.c:2476 +#, 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:3738 access/transam/xlogutils.c:831 +#: replication/walsender.c:3045 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запитуваний сегмент WAL %s вже видалений" -#: access/transam/xlog.c:3741 +#: access/transam/xlog.c:4060 #, c-format msgid "could not rename file \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\": %m" -#: access/transam/xlog.c:3783 access/transam/xlog.c:3793 +#: access/transam/xlog.c:4103 access/transam/xlog.c:4114 +#: access/transam/xlog.c:4135 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "необхідний каталог WAL \"%s\" не існує" -#: access/transam/xlog.c:3799 +#: access/transam/xlog.c:4120 access/transam/xlog.c:4141 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "створюється відсутній каталог WAL \"%s\"" -#: access/transam/xlog.c:3802 commands/dbcommands.c:3172 +#: access/transam/xlog.c:4124 access/transam/xlog.c:4144 +#: commands/dbcommands.c:3259 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не вдалося створити відстуній каталог \"%s\": %m" -#: access/transam/xlog.c:3869 +#: access/transam/xlog.c:4211 #, c-format msgid "could not generate secret authorization token" msgstr "не вдалося згенерувати секретний токен для авторизації" -#: access/transam/xlog.c:4019 access/transam/xlog.c:4028 -#: access/transam/xlog.c:4052 access/transam/xlog.c:4059 -#: access/transam/xlog.c:4066 access/transam/xlog.c:4071 -#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 -#: access/transam/xlog.c:4092 access/transam/xlog.c:4099 -#: access/transam/xlog.c:4106 access/transam/xlog.c:4113 -#: access/transam/xlog.c:4122 access/transam/xlog.c:4129 -#: utils/init/miscinit.c:1769 +#: access/transam/xlog.c:4362 access/transam/xlog.c:4372 +#: access/transam/xlog.c:4398 access/transam/xlog.c:4406 +#: access/transam/xlog.c:4414 access/transam/xlog.c:4420 +#: access/transam/xlog.c:4428 access/transam/xlog.c:4436 +#: access/transam/xlog.c:4444 access/transam/xlog.c:4452 +#: access/transam/xlog.c:4460 access/transam/xlog.c:4468 +#: access/transam/xlog.c:4478 access/transam/xlog.c:4486 +#: utils/init/miscinit.c:1758 #, c-format msgid "database files are incompatible with server" msgstr "файли бази даних є несумісними з даним сервером" -#: access/transam/xlog.c:4020 +#: access/transam/xlog.c:4363 #, 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 "Кластер бази даних було ініціалізовано з PG_CONTROL_VERSION %d (0x%08x), але сервер було скомпільовано з PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4024 +#: access/transam/xlog.c:4367 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Можливо, проблема викликана різним порядком байту. Здається, вам потрібно виконати команду \"initdb\"." -#: access/transam/xlog.c:4029 +#: access/transam/xlog.c:4373 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Кластер баз даних був ініціалізований з PG_CONTROL_VERSION %d, але сервер скомпільований з PG_CONTROL_VERSION %d." -#: access/transam/xlog.c:4032 access/transam/xlog.c:4056 -#: access/transam/xlog.c:4063 access/transam/xlog.c:4068 +#: access/transam/xlog.c:4376 access/transam/xlog.c:4402 +#: access/transam/xlog.c:4410 access/transam/xlog.c:4416 #, c-format msgid "It looks like you need to initdb." msgstr "Здається, Вам треба виконати initdb." -#: access/transam/xlog.c:4043 +#: access/transam/xlog.c:4388 #, c-format msgid "incorrect checksum in control file" msgstr "помилка контрольної суми у файлі pg_control" -#: access/transam/xlog.c:4053 +#: access/transam/xlog.c:4399 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Кластер бази даних було ініціалізовано з CATALOG_VERSION_NO %d, але сервер було скомпільовано з CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4060 +#: access/transam/xlog.c:4407 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Кластер бази даних було ініціалізовано з MAXALIGN %d, але сервер було скомпільовано з MAXALIGN %d." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4415 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Здається, в кластері баз даних і в програмі сервера використовуються різні формати чисел з плаваючою точкою." -#: access/transam/xlog.c:4072 +#: access/transam/xlog.c:4421 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Кластер бази даних було ініціалізовано з BLCKSZ %d, але сервер було скомпільовано з BLCKSZ %d." -#: access/transam/xlog.c:4075 access/transam/xlog.c:4082 -#: access/transam/xlog.c:4089 access/transam/xlog.c:4096 -#: access/transam/xlog.c:4103 access/transam/xlog.c:4110 -#: access/transam/xlog.c:4117 access/transam/xlog.c:4125 -#: access/transam/xlog.c:4132 +#: access/transam/xlog.c:4424 access/transam/xlog.c:4432 +#: access/transam/xlog.c:4440 access/transam/xlog.c:4448 +#: access/transam/xlog.c:4456 access/transam/xlog.c:4464 +#: access/transam/xlog.c:4472 access/transam/xlog.c:4481 +#: access/transam/xlog.c:4489 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Здається, вам потрібно перекомпілювати сервер або виконати initdb." -#: access/transam/xlog.c:4079 +#: access/transam/xlog.c:4429 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Кластер бази даних було ініціалізовано з ELSEG_SIZE %d, але сервер було скомпільовано з ELSEG_SIZE %d." -#: access/transam/xlog.c:4086 +#: access/transam/xlog.c:4437 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Кластер бази даних було ініціалізовано з XLOG_BLCKSZ %d, але сервер було скомпільовано з XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4093 +#: access/transam/xlog.c:4445 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Кластер бази даних було ініціалізовано з NAMEDATALEN %d, але сервер було скомпільовано з NAMEDATALEN %d." -#: access/transam/xlog.c:4100 +#: access/transam/xlog.c:4453 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Кластер бази даних було ініціалізовано з INDEX_MAX_KEYS %d, але сервер було скомпільовано з INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4107 +#: access/transam/xlog.c:4461 #, 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 "Кластер бази даних було ініціалізовано з TOAST_MAX_CHUNK_SIZE %d, але сервер було скомпільовано з TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4114 +#: access/transam/xlog.c:4469 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Кластер бази даних було ініціалізовано з LOBLKSIZE %d, але сервер було скомпільовано з LOBLKSIZE %d." -#: access/transam/xlog.c:4123 +#: access/transam/xlog.c:4479 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Кластер бази даних було ініціалізовано без USE_FLOAT8_BYVAL, але сервер було скомпільовано з USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4130 +#: access/transam/xlog.c:4487 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Кластер бази даних було ініціалізовано з USE_FLOAT8_BYVAL, але сервер було скомпільовано без USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4139 +#: access/transam/xlog.c:4496 #, 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 повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[1] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[2] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[3] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "невірний розмір сегменту WAL у файлі керування (%d байт)" +msgstr[1] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[2] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[3] "невірний розмір сегмента WAL у файлі керування (%d байтів)" -#: access/transam/xlog.c:4151 +#: access/transam/xlog.c:4509 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4155 +#: access/transam/xlog.c:4513 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4310 catalog/namespace.c:4335 -#: commands/tablespace.c:1216 commands/user.c:2530 commands/variable.c:72 -#: utils/error/elog.c:2209 +#: access/transam/xlog.c:4661 catalog/namespace.c:4681 +#: commands/tablespace.c:1210 commands/user.c:2529 commands/variable.c:72 +#: replication/slot.c:2429 tcop/postgres.c:3715 utils/error/elog.c:2247 #, c-format msgid "List syntax is invalid." msgstr "Помилка синтаксису у списку." -#: access/transam/xlog.c:4356 commands/user.c:2546 commands/variable.c:173 -#: utils/error/elog.c:2235 +#: access/transam/xlog.c:4707 commands/user.c:2545 commands/variable.c:173 +#: tcop/postgres.c:3731 utils/error/elog.c:2273 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Нерозпізнане ключове слово: \"%s\"." -#: access/transam/xlog.c:4770 +#: access/transam/xlog.c:5128 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не вдалося записати початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4778 +#: access/transam/xlog.c:5136 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не вдалося скинути на диск початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4784 +#: access/transam/xlog.c:5142 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не вдалося закрити початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:5001 +#: access/transam/xlog.c:5367 #, c-format -msgid "WAL was generated with wal_level=minimal, cannot continue recovering" -msgstr "WAL був створений з параметром wal_level=minimal, неможливо продовжити відновлення" +msgid "WAL was generated with \"wal_level=minimal\", cannot continue recovering" +msgstr "WAL був створений з \"wal_level=minimal\", неможливо продовжити відновлення" -#: access/transam/xlog.c:5002 +#: access/transam/xlog.c:5368 #, c-format -msgid "This happens if you temporarily set wal_level=minimal on the server." -msgstr "Це трапляється, якщо ви тимчасово встановили параметр wal_level=minimal на сервері." +msgid "This happens if you temporarily set \"wal_level=minimal\" on the server." +msgstr "Це трапляється, якщо ви тимчасово встановили \"wal_level=minimal\" на сервері." -#: access/transam/xlog.c:5003 +#: access/transam/xlog.c:5369 #, c-format -msgid "Use a backup taken after setting wal_level to higher than minimal." -msgstr "Використовуйте резервну копію, зроблену після встановлення значення wal_level, що перевищує максимальне." +msgid "Use a backup taken after setting \"wal_level\" to higher than \"minimal\"." +msgstr "Використовуйте резервну копію, зроблену після встановлення значення wal_level, що перевищує мінимальний рівень." -#: access/transam/xlog.c:5067 +#: access/transam/xlog.c:5434 #, c-format msgid "control file contains invalid checkpoint location" msgstr "контрольний файл містить недійсне розташування контрольної точки" -#: access/transam/xlog.c:5078 +#: access/transam/xlog.c:5445 #, c-format msgid "database system was shut down at %s" msgstr "система бази даних була вимкнена %s" -#: access/transam/xlog.c:5084 +#: access/transam/xlog.c:5451 #, c-format msgid "database system was shut down in recovery at %s" msgstr "система бази даних завершила роботу у процесі відновлення %s" -#: access/transam/xlog.c:5090 +#: access/transam/xlog.c:5457 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "завершення роботи бази даних було перервано; останній момент роботи %s" -#: access/transam/xlog.c:5096 +#: access/transam/xlog.c:5463 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "система бази даних була перервана в процесі відновлення %s" -#: access/transam/xlog.c:5098 +#: access/transam/xlog.c:5465 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Це, ймовірно, означає, що деякі дані були пошкоджені, і вам доведеться відновити базу даних з останнього збереження." -#: access/transam/xlog.c:5104 +#: access/transam/xlog.c:5471 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "робота системи бази даних була перервана в процесі відновлення, час в журналі %s" -#: access/transam/xlog.c:5106 +#: access/transam/xlog.c:5473 #, 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 "Якщо це відбувається більше, ніж один раз, можливо, якісь дані були зіпсовані, і для відновлення треба вибрати більш ранню точку." -#: access/transam/xlog.c:5112 +#: access/transam/xlog.c:5479 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "робота системи бази даних була перервана; останній момент роботи %s" -#: access/transam/xlog.c:5118 +#: access/transam/xlog.c:5486 #, c-format msgid "control file contains invalid database cluster state" msgstr "контрольний файл містить недійсний стан кластеру бази даних" -#: access/transam/xlog.c:5502 +#: access/transam/xlog.c:5874 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL завершився до завершення онлайн резервного копіювання" -#: access/transam/xlog.c:5503 +#: access/transam/xlog.c:5875 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Всі журнали WAL, створені під час резервного копіювання \"на ходу\", повинні бути в наявності для відновлення." -#: access/transam/xlog.c:5506 +#: access/transam/xlog.c:5879 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL завершився до узгодженої точки відновлення" -#: access/transam/xlog.c:5552 +#: access/transam/xlog.c:5925 #, c-format msgid "selected new timeline ID: %u" msgstr "вибрано новий ID часової лінії: %u" -#: access/transam/xlog.c:5585 +#: access/transam/xlog.c:5958 #, c-format msgid "archive recovery complete" msgstr "відновлення архіву завершено" -#: access/transam/xlog.c:6191 +#: access/transam/xlog.c:6587 #, c-format msgid "shutting down" msgstr "завершення роботи" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6230 +#: access/transam/xlog.c:6626 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок точки перезапуску: %s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6242 +#: access/transam/xlog.c:6638 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок контрольної точки: %s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6307 +#: access/transam/xlog.c:6703 #, c-format msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "точка перезапуску завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб; lsn=%X/%X, lsn повтору=%X/%X" -#: access/transam/xlog.c:6330 +#: access/transam/xlog.c:6726 #, c-format msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X" msgstr "контрольна точка завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб; lsn=%X/%X, lsn повтору=%X/%X" -#: access/transam/xlog.c:6768 +#: access/transam/xlog.c:7208 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "під час того вимкнення БД помічено конкурентну активність у випереджувальному журналюванні" -#: access/transam/xlog.c:7329 +#: access/transam/xlog.c:7793 #, c-format msgid "recovery restart point at %X/%X" msgstr "відновлення збереженої точки %X/%X" -#: access/transam/xlog.c:7331 +#: access/transam/xlog.c:7795 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Остання завершена транзакція була в %s." -#: access/transam/xlog.c:7579 +#: access/transam/xlog.c:8057 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка відновлення \"%s\" створена в %X/%X" -#: access/transam/xlog.c:7786 +#: access/transam/xlog.c:8264 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "онлайн резервне копіювання скасовано, неможливо продовжити відновлення" -#: access/transam/xlog.c:7843 +#: access/transam/xlog.c:8322 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки вимкнення" -#: access/transam/xlog.c:7901 +#: access/transam/xlog.c:8380 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки онлайн" -#: access/transam/xlog.c:7930 +#: access/transam/xlog.c:8409 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі кінця відновлення" -#: access/transam/xlog.c:8197 +#: access/transam/xlog.c:8680 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не вдалосьясинхронізувати файл наскрізного запису %s: %m" -#: access/transam/xlog.c:8202 +#: access/transam/xlog.c:8685 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не вдалося fdatasync файл \"%s\": %m" -#: access/transam/xlog.c:8287 access/transam/xlog.c:8610 +#: access/transam/xlog.c:8772 access/transam/xlog.c:9108 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Обраний рівень WAL недостатній для резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8288 access/transam/xlog.c:8611 -#: access/transam/xlogfuncs.c:254 +#: access/transam/xlog.c:8773 access/transam/xlogfuncs.c:248 #, c-format -msgid "wal_level must be set to \"replica\" or \"logical\" at server start." -msgstr "встановіть wal_level \"replica\" або \"logical\" при запуску серверу." +msgid "\"wal_level\" must be set to \"replica\" or \"logical\" at server start." +msgstr "\"wal_level\" потрібно задати \"replica\" або \"logical\" при запуску сервера." -#: access/transam/xlog.c:8293 +#: access/transam/xlog.c:8778 #, c-format msgid "backup label too long (max %d bytes)" msgstr "мітка резервного копіювання задовга (максимум %d байт)" -#: access/transam/xlog.c:8414 +#: access/transam/xlog.c:8899 #, c-format -msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" -msgstr "Після останньої точки відновлення був відтворений WAL, створений в режимі full_page_writes=off" +msgid "WAL generated with \"full_page_writes=off\" was replayed since last restartpoint" +msgstr "Після останньої точки відновлення був відтворений WAL, створений в режимі \"full_page_writes=off\"" -#: access/transam/xlog.c:8416 access/transam/xlog.c:8699 +#: access/transam/xlog.c:8901 access/transam/xlog.c:9197 #, 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 primary, and then try an online backup again." -msgstr "Це означає, що резервна копія, зроблена на резервному сервері пошкоджена і не повинна використовуватись. Активуйте full_page_writes і запустіть CHECKPOINT на основному сервері, а потім спробуйте ще раз створити резервну копію в Інтернеті." +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 primary, and then try an online backup again." +msgstr "Це означає, що резервна копія, зроблена на резервному сервері пошкоджена і не повинна використовуватись. Активуйте \"full_page_writes\" і запустіть CHECKPOINT на основному сервері, а потім спробуйте ще раз створити резервну копію." -#: access/transam/xlog.c:8483 backup/basebackup.c:1351 utils/adt/misc.c:354 +#: access/transam/xlog.c:8981 backup/basebackup.c:1417 utils/adt/misc.c:354 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "не можливо прочитати символічне послання \"%s\": %m" -#: access/transam/xlog.c:8490 backup/basebackup.c:1356 utils/adt/misc.c:359 +#: access/transam/xlog.c:8988 backup/basebackup.c:1422 utils/adt/misc.c:359 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "таргет символічного посилання \"%s\" задовгий" -#: access/transam/xlog.c:8649 backup/basebackup.c:1217 +#: access/transam/xlog.c:9109 +#, c-format +msgid "wal_level must be set to \"replica\" or \"logical\" at server start." +msgstr "встановіть wal_level \"replica\" або \"logical\" при запуску серверу." + +#: access/transam/xlog.c:9147 backup/basebackup.c:1281 #, c-format msgid "the standby was promoted during online backup" msgstr "режим очікування було підвищено у процесі резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8650 backup/basebackup.c:1218 +#: access/transam/xlog.c:9148 backup/basebackup.c:1282 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Це означає, що вибрана резервна копія є пошкодженою і її не слід використовувати. Спробуйте використати іншу онлайн резервну копію." -#: access/transam/xlog.c:8697 +#: access/transam/xlog.c:9195 #, c-format -msgid "WAL generated with full_page_writes=off was replayed during online backup" -msgstr "У процесі резервного копіювання \"на ходу\" був відтворений WAL, створений в режимі full_page_writes=off" +msgid "WAL generated with \"full_page_writes=off\" was replayed during online backup" +msgstr "WAL створений з \"full_page_writes=off\" було відтворено під час резервного копіювання" -#: access/transam/xlog.c:8813 +#: access/transam/xlog.c:9311 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "резервне копіювання виконане, очікуються необхідні сегменти WAL для архівації" -#: access/transam/xlog.c:8827 +#: access/transam/xlog.c:9325 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "все ще чекає на необхідні сегменти WAL для архівації (%d секунд пройшло)" -#: access/transam/xlog.c:8829 +#: access/transam/xlog.c:9327 #, 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 "Перевірте, чи правильно виконується команда archive_command. Ви можете безпечно скасувати це резервне копіювання, але резервна копія БД буде непридатна без усіх сегментів WAL." +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 "Перевірте, що ваша \"archive_command\" виконується належним чином. Ви можете безпечно скасувати резервну копію, але резервне копіювання бази даних буде непридатним без всіх сегментів WAL." -#: access/transam/xlog.c:8836 +#: access/transam/xlog.c:9334 #, c-format msgid "all required WAL segments have been archived" msgstr "усі необхідні сегменти WAL архівовані" -#: access/transam/xlog.c:8840 +#: access/transam/xlog.c:9338 #, 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 не налаштована; ви повинні забезпечити копіювання всіх необхідних сегментів WAL іншими засобами для отримання резервної копії" -#: access/transam/xlog.c:8879 +#: access/transam/xlog.c:9377 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "припинення резервного копіювання через завершення обслуговуючого процесу до виклику pg_backup_stop" -#: access/transam/xlogarchive.c:214 +#: access/transam/xlogarchive.c:213 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "файл архіву \"%s\" має неправильний розмір: %lld замість %lld" -#: access/transam/xlogarchive.c:223 +#: access/transam/xlogarchive.c:222 #, c-format msgid "restored log file \"%s\" from archive" msgstr "відновлений файл журналу \"%s\" з архіву" -#: access/transam/xlogarchive.c:237 +#: access/transam/xlogarchive.c:236 #, c-format -msgid "restore_command returned a zero exit status, but stat() failed." -msgstr "restore_command повернула нульовий статус виходу, але stat() не вдався." +msgid "\"restore_command\" returned a zero exit status, but stat() failed." +msgstr "\"restore_command\" повернула нульовий статус виходу, але виклик stat() не вдався." -#: access/transam/xlogarchive.c:269 +#: access/transam/xlogarchive.c:268 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "неможливо відновити файл \"%s\" з архіву: %s" @@ -2698,104 +2918,114 @@ msgstr "неможливо відновити файл \"%s\" з архіву: % #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:347 +#: access/transam/xlogarchive.c:346 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:457 access/transam/xlogarchive.c:537 +#: access/transam/xlogarchive.c:456 access/transam/xlogarchive.c:536 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "неможливо створити файл статусу архіву \"%s\": %m" -#: access/transam/xlogarchive.c:465 access/transam/xlogarchive.c:545 +#: access/transam/xlogarchive.c:464 access/transam/xlogarchive.c:544 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "неможливо записати файл архівного статусу \"%s\": %m" -#: access/transam/xlogfuncs.c:75 backup/basebackup.c:973 +#: access/transam/xlogfuncs.c:69 backup/basebackup.c:997 #, c-format msgid "a backup is already in progress in this session" msgstr "резервне копіювання наразі триває в цьому сеансі" -#: access/transam/xlogfuncs.c:146 +#: access/transam/xlogfuncs.c:140 #, c-format msgid "backup is not in progress" msgstr "резервне копіювання не виконується" -#: access/transam/xlogfuncs.c:147 +#: access/transam/xlogfuncs.c:141 #, c-format msgid "Did you call pg_backup_start()?" msgstr "Ви викликали pg_backup_start()?" -#: access/transam/xlogfuncs.c:190 access/transam/xlogfuncs.c:248 -#: access/transam/xlogfuncs.c:287 access/transam/xlogfuncs.c:308 -#: access/transam/xlogfuncs.c:329 +#: access/transam/xlogfuncs.c:184 access/transam/xlogfuncs.c:242 +#: access/transam/xlogfuncs.c:281 access/transam/xlogfuncs.c:302 +#: access/transam/xlogfuncs.c:323 #, c-format msgid "WAL control functions cannot be executed during recovery." msgstr "Функції управління WAL не можна використовувати під час відновлення." -#: access/transam/xlogfuncs.c:215 access/transam/xlogfuncs.c:399 -#: access/transam/xlogfuncs.c:457 +#: access/transam/xlogfuncs.c:209 access/transam/xlogfuncs.c:389 +#: access/transam/xlogfuncs.c:447 #, c-format msgid "%s cannot be executed during recovery." msgstr "%s не можна використовувати під час відновлення." -#: access/transam/xlogfuncs.c:221 +#: access/transam/xlogfuncs.c:215 #, c-format -msgid "pg_log_standby_snapshot() can only be used if wal_level >= replica" -msgstr "pg_log_standby_snapshot() можна використовувати лише якщо wal_level >= replica" +msgid "pg_log_standby_snapshot() can only be used if \"wal_level\" >= \"replica\"" +msgstr "pg_log_standby_snapshot() можна використовувати лише якщо \"wal_level\" >= \"replica\"" -#: access/transam/xlogfuncs.c:253 +#: access/transam/xlogfuncs.c:247 #, c-format msgid "WAL level not sufficient for creating a restore point" msgstr "Обраний рівень WAL не достатній для створення точки відновлення" -#: access/transam/xlogfuncs.c:261 +#: access/transam/xlogfuncs.c:255 #, c-format msgid "value too long for restore point (maximum %d characters)" msgstr "значення для точки відновлення перевищує межу (%d симв.)" -#: access/transam/xlogfuncs.c:496 +#: access/transam/xlogfuncs.c:486 #, c-format msgid "invalid WAL file name \"%s\"" msgstr "неприпустиме ім'я файлу WAL \"%s\"" -#: access/transam/xlogfuncs.c:532 access/transam/xlogfuncs.c:562 -#: access/transam/xlogfuncs.c:586 access/transam/xlogfuncs.c:609 -#: access/transam/xlogfuncs.c:689 +#: access/transam/xlogfuncs.c:522 access/transam/xlogfuncs.c:552 +#: access/transam/xlogfuncs.c:576 access/transam/xlogfuncs.c:599 +#: access/transam/xlogfuncs.c:679 #, c-format msgid "recovery is not in progress" msgstr "відновлення не виконується" -#: access/transam/xlogfuncs.c:533 access/transam/xlogfuncs.c:563 -#: access/transam/xlogfuncs.c:587 access/transam/xlogfuncs.c:610 -#: access/transam/xlogfuncs.c:690 +#: access/transam/xlogfuncs.c:523 access/transam/xlogfuncs.c:553 +#: access/transam/xlogfuncs.c:577 access/transam/xlogfuncs.c:600 +#: access/transam/xlogfuncs.c:680 #, c-format msgid "Recovery control functions can only be executed during recovery." msgstr "Функції управління відновленням можна використовувати тільки під час відновлення." -#: access/transam/xlogfuncs.c:538 access/transam/xlogfuncs.c:568 +#: access/transam/xlogfuncs.c:528 access/transam/xlogfuncs.c:558 #, c-format msgid "standby promotion is ongoing" msgstr "просування в режимі очікування триває" -#: access/transam/xlogfuncs.c:539 access/transam/xlogfuncs.c:569 +#: access/transam/xlogfuncs.c:529 access/transam/xlogfuncs.c:559 #, c-format msgid "%s cannot be executed after promotion is triggered." msgstr "%s не може бути виконаний після того як підвищення запущено." -#: access/transam/xlogfuncs.c:695 +#: access/transam/xlogfuncs.c:685 #, c-format msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" не має бути від'ємним чи нулем" -#: access/transam/xlogfuncs.c:715 storage/ipc/signalfuncs.c:265 +#: access/transam/xlogfuncs.c:707 storage/ipc/signalfuncs.c:265 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "надіслати сигнал процесу postmaster не вдалося: %m" -#: access/transam/xlogfuncs.c:751 +#: access/transam/xlogfuncs.c:739 libpq/be-secure.c:237 libpq/be-secure.c:346 +#, c-format +msgid "terminating connection due to unexpected postmaster exit" +msgstr "завершення підключення через неочікуване закриття головного процесу" + +#: access/transam/xlogfuncs.c:740 +#, c-format +msgid "while waiting on promotion" +msgstr "в очікуванні на підвищення" + +#: access/transam/xlogfuncs.c:744 #, c-format msgid "server did not promote within %d second" msgid_plural "server did not promote within %d seconds" @@ -2804,704 +3034,717 @@ msgstr[1] "сервер не підвищувався протягом %d сек msgstr[2] "сервер не підвищувався протягом %d секунд" msgstr[3] "сервер не підвищувався протягом %d секунд" -#: access/transam/xlogprefetcher.c:1092 +#: access/transam/xlogprefetcher.c:1088 #, c-format -msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." -msgstr "recovery_prefetch не підтримується на платформах, у яких відсутня posix_fadvise()." +msgid "\"recovery_prefetch\" is not supported on platforms that lack posix_fadvise()." +msgstr "\"recovery_prefetch\" не підтримується на платформах, у яких відсутня posix_fadvise()." -#: access/transam/xlogreader.c:621 +#: access/transam/xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "неприпустиме зміщення запису в %X/%X: очікувалось хоча б %u, отримано %u" -#: access/transam/xlogreader.c:630 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по зсуву %X/%X запитано продовження запису" -#: access/transam/xlogreader.c:671 access/transam/xlogreader.c:1136 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "неприпустима довжина запису %X/%X: очікувалась мінімум %u, отримано %u" -#: access/transam/xlogreader.c:760 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає прапорця contrecord в позиції %X/%X" -#: access/transam/xlogreader.c:773 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпустима довжина contrecord %u (очікувалось %lld) на %X/%X" -#: access/transam/xlogreader.c:1144 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера ресурсів %u в %X/%X" -#: access/transam/xlogreader.c:1157 access/transam/xlogreader.c:1173 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запис з неправильним попереднім посиланням %X/%X на %X/%X" -#: access/transam/xlogreader.c:1211 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна сума даних менеджера ресурсів у запису по зсуву %X/%X" -#: access/transam/xlogreader.c:1245 +#: access/transam/xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірне магічне число %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1302 +#: access/transam/xlogreader.c:1258 access/transam/xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірні інформаційні біти %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1276 +#: access/transam/xlogreader.c:1274 #, 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 файл належить іншій системі баз даних: ідентифікатор системи баз даних де міститься WAL файл - %llu, а ідентифікатор системи баз даних pg_control - %llu" -#: access/transam/xlogreader.c:1284 +#: access/transam/xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний розмір сегменту в заголовку сторінки" -#: access/transam/xlogreader.c:1290 +#: access/transam/xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний XLOG_BLCKSZ в заголовку сторінки" -#: access/transam/xlogreader.c:1322 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неочікуваний pageaddr %X/%X у сегменті WAL %s, LSN %X/%X, зміщення %u" -#: access/transam/xlogreader.c:1348 +#: access/transam/xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "порушення послідовності ID лінії часу %u (після %u) у сегменті WAL %s, LSN %X/%X, зсув %u" -#: access/transam/xlogreader.c:1754 +#: access/transam/xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: access/transam/xlogreader.c:1778 +#: access/transam/xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але немає даних в позиції %X/%X" -#: access/transam/xlogreader.c:1785 +#: access/transam/xlogreader.c:1780 #, 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:1821 +#: access/transam/xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE встановлений, але для пропуску задані: зсув %u, довжина %u, при довжині образу блока %u в позиції %X/%X" -#: access/transam/xlogreader.c:1837 +#: access/transam/xlogreader.c:1832 #, 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:1851 +#: access/transam/xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED встановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1866 +#: access/transam/xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ні BKPIMAGE_HAS_HOLE, ні BKPIMAGE_COMPRESSED не встановлені, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1882 +#: access/transam/xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL встановлений, але попереднє значення не задано в позиції %X/%X" -#: access/transam/xlogreader.c:1894 +#: access/transam/xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: access/transam/xlogreader.c:1961 +#: access/transam/xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запис з невірною довжиною на %X/%X" -#: access/transam/xlogreader.c:1987 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не вдалося знайти блок резервної копії з ID %d у записі WAL" -#: access/transam/xlogreader.c:2071 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "не вдалося відновити зображення %X/%X з недійсним вказаним блоком %d" -#: access/transam/xlogreader.c:2078 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "не вдалося відновити зображення %X/%X з недійсним станом, блок %d" -#: access/transam/xlogreader.c:2105 access/transam/xlogreader.c:2122 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "не вдалося відновити зображення в %X/%X, стиснуте %s, не підтримується збіркою, блок %d" -#: access/transam/xlogreader.c:2131 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "не вдалося відновити зображення %X/%X стиснуте з невідомим методом, блок %d" -#: access/transam/xlogreader.c:2139 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не вдалося розпакувати зображення на %X/%X, блок %d" -#: access/transam/xlogrecovery.c:547 -#, c-format -msgid "entering standby mode" -msgstr "перехід у режим очікування" - -#: access/transam/xlogrecovery.c:550 -#, c-format -msgid "starting point-in-time recovery to XID %u" -msgstr "починається відновлення точки в часі до XID %u" - -#: access/transam/xlogrecovery.c:554 -#, c-format -msgid "starting point-in-time recovery to %s" -msgstr "починається відновлення точки в часі до %s" - -#: access/transam/xlogrecovery.c:558 -#, c-format -msgid "starting point-in-time recovery to \"%s\"" -msgstr "починається відновлення точки в часі до \"%s\"" - -#: access/transam/xlogrecovery.c:562 -#, c-format -msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" -msgstr "починається відновлення точки в часі до локації WAL (LSN) \"%X/%X\"" - -#: access/transam/xlogrecovery.c:566 -#, c-format -msgid "starting point-in-time recovery to earliest consistent point" -msgstr "починається відновлення даних до першої точки домовленості" - -#: access/transam/xlogrecovery.c:569 -#, c-format -msgid "starting archive recovery" -msgstr "початок відновлення архіву" - -#: access/transam/xlogrecovery.c:637 +#: access/transam/xlogrecovery.c:617 #, c-format msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" msgstr "стартуємо відновлення резервної копії з LSN повторення %X/%X, LSN контрольної точки %X/%X, на часовій шкалі з ID %u" -#: access/transam/xlogrecovery.c:669 +#: access/transam/xlogrecovery.c:649 #, c-format -msgid "could not find redo location referenced by checkpoint record" -msgstr "не вдалося знайти положення REDO, вказане записом контрольної точки" +msgid "could not find redo location %X/%X referenced by checkpoint record at %X/%X" +msgstr "не вдалося знайти положення REDO %X/%X, вказане записом контрольної точки в %X/%X" -#: access/transam/xlogrecovery.c:670 access/transam/xlogrecovery.c:680 +#: access/transam/xlogrecovery.c:651 access/transam/xlogrecovery.c:662 #, c-format -msgid "" -"If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" +msgid "If you are restoring from a backup, touch \"%s/recovery.signal\" or \"%s/standby.signal\" and add required recovery options.\n" "If you are not restoring from a backup, try removing the file \"%s/backup_label\".\n" "Be careful: removing \"%s/backup_label\" will result in a corrupt cluster if restoring from a backup." -msgstr "" -"Якщо ви відновлюєте з резервної копії, оновіть файл \"%s/recovery.signal\" та додайте необхідні параметри відновлення.\n" -"Якщо ви не відновлюєте з резервної копії, спробуйте видалити файл \"%s/backup_label\".\n" -"Будьте обережні: видалення \"%s/backup_label\" призведе до пошкодження кластеру при відновленні з резервної копії." +msgstr "Якщо ви відновлюєтеся з резервної копії, оновіть \"%s/recovery.signal\" або \"%s/standby.signal\" і додайте необхідні параметри відновлення.\n" +"Якщо ви відновлюєте не з резервної копії, спробуйте видалити файл \"%s/backup_label\".\n" +"Будьте обережні: видалення \"%s/backup_label\" призведе до пошкодження кластера при відновленні з резервної копії." -#: access/transam/xlogrecovery.c:679 +#: access/transam/xlogrecovery.c:660 #, c-format -msgid "could not locate required checkpoint record" -msgstr "не вдалося знайти запис потрібної контрольної точки" +msgid "could not locate required checkpoint record at %X/%X" +msgstr "не вдалося знайти запис необхідної контрольної точки в %X/%X" -#: access/transam/xlogrecovery.c:708 commands/tablespace.c:670 +#: access/transam/xlogrecovery.c:690 commands/tablespace.c:664 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не вдалося створити символічне послання \"%s\": %m" -#: access/transam/xlogrecovery.c:740 access/transam/xlogrecovery.c:746 +#: access/transam/xlogrecovery.c:723 access/transam/xlogrecovery.c:729 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "файл \"%s\" ігнорується, тому що файлу \"%s\" не існує" -#: access/transam/xlogrecovery.c:742 +#: access/transam/xlogrecovery.c:725 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Файл \"%s\" був перейменований на \"%s\"." -#: access/transam/xlogrecovery.c:748 +#: access/transam/xlogrecovery.c:731 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Неможливо перейменувати файл \"%s\" на \"%s\": %m." -#: access/transam/xlogrecovery.c:787 +#: access/transam/xlogrecovery.c:770 #, c-format msgid "restarting backup recovery with redo LSN %X/%X" msgstr "перезапуск відновлення резервної копії на LSN %X/%X" -#: access/transam/xlogrecovery.c:812 +#: access/transam/xlogrecovery.c:795 +#, c-format +msgid "could not locate a valid checkpoint record at %X/%X" +msgstr "не вдалося знайти запис допустимої контрольної точки в %X/%X" + +#: access/transam/xlogrecovery.c:806 +#, c-format +msgid "entering standby mode" +msgstr "перехід у режим очікування" + +#: access/transam/xlogrecovery.c:809 +#, c-format +msgid "starting point-in-time recovery to XID %u" +msgstr "починається відновлення точки в часі до XID %u" + +#: access/transam/xlogrecovery.c:813 +#, c-format +msgid "starting point-in-time recovery to %s" +msgstr "починається відновлення точки в часі до %s" + +#: access/transam/xlogrecovery.c:817 +#, c-format +msgid "starting point-in-time recovery to \"%s\"" +msgstr "починається відновлення точки в часі до \"%s\"" + +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "starting point-in-time recovery to WAL location (LSN) \"%X/%X\"" +msgstr "починається відновлення точки в часі до локації WAL (LSN) \"%X/%X\"" + +#: access/transam/xlogrecovery.c:825 +#, c-format +msgid "starting point-in-time recovery to earliest consistent point" +msgstr "починається відновлення даних до першої точки домовленості" + +#: access/transam/xlogrecovery.c:828 #, c-format -msgid "could not locate a valid checkpoint record" -msgstr "не вдалося знайти запис допустимої контрольної точки" +msgid "starting archive recovery" +msgstr "початок відновлення архіву" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:849 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "запитувана лінія часу %u не є відгалуженням історії цього серверу" -#: access/transam/xlogrecovery.c:838 +#: access/transam/xlogrecovery.c:851 #, 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 "Остання контрольна точка %X/%X на лінії часу %u, але в історії запитуваної лінії часу сервер відгалузився з цієї лінії в %X/%X." -#: access/transam/xlogrecovery.c:852 +#: access/transam/xlogrecovery.c:865 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "запитувана лінія часу %u не містить мінімальну точку відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:880 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid next transaction ID" msgstr "невірний ID наступної транзакції" -#: access/transam/xlogrecovery.c:885 +#: access/transam/xlogrecovery.c:898 #, c-format msgid "invalid redo in checkpoint record" msgstr "невірний запис REDO в контрольній точці" -#: access/transam/xlogrecovery.c:896 +#: access/transam/xlogrecovery.c:909 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "невірний запис REDO в контрольній точці вимкнення" -#: access/transam/xlogrecovery.c:925 +#: access/transam/xlogrecovery.c:938 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "робота системи бази даних не була завершена належним чином; відбувається автоматичне відновлення" -#: access/transam/xlogrecovery.c:929 +#: access/transam/xlogrecovery.c:942 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "відновлення після збою починається на лінії часу %u і має цільову лінію часу: %u" -#: access/transam/xlogrecovery.c:972 +#: access/transam/xlogrecovery.c:985 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label містить дані, які не узгоджені з файлом pg_control" -#: access/transam/xlogrecovery.c:973 +#: access/transam/xlogrecovery.c:986 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Це означає, що резервна копія була пошкоджена і вам доведеться використати іншу резервну копію для відновлення." -#: access/transam/xlogrecovery.c:1027 +#: access/transam/xlogrecovery.c:1040 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "використання файлу команд відновлення \"%s\" не підтримується" -#: access/transam/xlogrecovery.c:1092 +#: access/transam/xlogrecovery.c:1105 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "режим очікування не підтримується однокористувацьким сервером" -#: access/transam/xlogrecovery.c:1109 +#: access/transam/xlogrecovery.c:1122 #, c-format -msgid "specified neither primary_conninfo nor restore_command" -msgstr "не заззначено ані параметр primary_conninfo, ані параметр restore_command" +msgid "specified neither \"primary_conninfo\" nor \"restore_command\"" +msgstr "не вказано ні \"primary_conninfo\", ані \"restore_command\"" -#: access/transam/xlogrecovery.c:1110 +#: access/transam/xlogrecovery.c:1123 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Сервер бази даних буде регулярно опитувати підкатолог pg_wal і перевіряти файли, що містяться у ньому." -#: access/transam/xlogrecovery.c:1118 +#: access/transam/xlogrecovery.c:1131 #, c-format -msgid "must specify restore_command when standby mode is not enabled" -msgstr "необхідно вказати restore_command, якщо не ввімкнено режиму очікування" +msgid "must specify \"restore_command\" when standby mode is not enabled" +msgstr "необхідно вказати \"restore_command\", якщо не ввімкнено режиму очікування" -#: access/transam/xlogrecovery.c:1156 +#: access/transam/xlogrecovery.c:1169 #, c-format msgid "recovery target timeline %u does not exist" msgstr "цільова лінія часу відновлення %u не існує" -#: access/transam/xlogrecovery.c:1239 access/transam/xlogrecovery.c:1246 -#: access/transam/xlogrecovery.c:1305 access/transam/xlogrecovery.c:1385 -#: access/transam/xlogrecovery.c:1409 +#: access/transam/xlogrecovery.c:1252 access/transam/xlogrecovery.c:1259 +#: access/transam/xlogrecovery.c:1318 access/transam/xlogrecovery.c:1406 +#: access/transam/xlogrecovery.c:1415 access/transam/xlogrecovery.c:1435 #, c-format msgid "invalid data in file \"%s\"" msgstr "невірні дані у файлі \"%s\"" -#: access/transam/xlogrecovery.c:1306 +#: access/transam/xlogrecovery.c:1319 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Проаналізовано ID часової лінії %u, очіувалося %u." -#: access/transam/xlogrecovery.c:1688 +#: access/transam/xlogrecovery.c:1330 +#, c-format +msgid "this is an incremental backup, not a data directory" +msgstr "це інкрементна резервна копія, а не каталог даних" + +#: access/transam/xlogrecovery.c:1331 +#, c-format +msgid "Use pg_combinebackup to reconstruct a valid data directory." +msgstr "Використовуйте pg_combinebackup для відновлення правильного каталогу даних." + +#: access/transam/xlogrecovery.c:1717 +#, c-format +msgid "unexpected record type found at redo point %X/%X" +msgstr "знайдено неочікуваний тип запису в точці повторення %X/%X" + +#: access/transam/xlogrecovery.c:1740 #, c-format msgid "redo starts at %X/%X" msgstr "запис REDO починається з %X/%X" -#: access/transam/xlogrecovery.c:1701 +#: access/transam/xlogrecovery.c:1753 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "запис REDO триває, минуло часу: %ld.%02d s, поточний LSN: %X/%X" -#: access/transam/xlogrecovery.c:1793 +#: access/transam/xlogrecovery.c:1843 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "запитувана точка відновлення передує узгодженій точці відновлення" -#: access/transam/xlogrecovery.c:1825 +#: access/transam/xlogrecovery.c:1875 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "повторно виконано через %X/%X системне використання: %s" -#: access/transam/xlogrecovery.c:1831 +#: access/transam/xlogrecovery.c:1881 #, c-format msgid "last completed transaction was at log time %s" msgstr "остання завершена транзакція була в %s" -#: access/transam/xlogrecovery.c:1840 +#: access/transam/xlogrecovery.c:1890 #, c-format msgid "redo is not required" msgstr "дані REDO не потрібні" -#: access/transam/xlogrecovery.c:1851 +#: access/transam/xlogrecovery.c:1901 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "відновлення завершилось до досягення налаштованої цілі відновлення" -#: access/transam/xlogrecovery.c:2045 +#: access/transam/xlogrecovery.c:2095 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "успішно пропущений відсутній contrecord при %X/%X, перезаписано на %s" -#: access/transam/xlogrecovery.c:2112 +#: access/transam/xlogrecovery.c:2162 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "знайдено неочікуваний запис каталогу \"%s\" в %s" -#: access/transam/xlogrecovery.c:2114 +#: access/transam/xlogrecovery.c:2164 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Всі записи каталогу в pg_tblspc/ повинні бути символічними посиланнями." -#: access/transam/xlogrecovery.c:2115 +#: access/transam/xlogrecovery.c:2165 #, c-format -msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." -msgstr "Видаліть ті каталоги, або тимчасово встановіть для параметра allow_in_place_tablespaces значення ON, щоб завершити відновлення." +msgid "Remove those directories, or set \"allow_in_place_tablespaces\" to ON transiently to let recovery complete." +msgstr "Видаліть ті каталоги, або тимчасово встановіть для параметра \"allow_in_place_tablespaces\" значення ON, щоб завершити відновлення." -#: access/transam/xlogrecovery.c:2167 +#: access/transam/xlogrecovery.c:2217 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "завершено відновлення резервної копії з LSN повторення %X/%X і LSN закінчення %X/%X" -#: access/transam/xlogrecovery.c:2197 +#: access/transam/xlogrecovery.c:2247 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "узгоджений стан відновлення досягнутий %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2235 +#: access/transam/xlogrecovery.c:2285 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запис REDO в WAL в позиції %X/%X для %s" -#: access/transam/xlogrecovery.c:2333 +#: access/transam/xlogrecovery.c:2383 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "несподіваний ID попередньої лінії часу %u (ID теперішньої лінії часу %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2342 +#: access/transam/xlogrecovery.c:2392 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неочікуваний ID лінії часу %u (після %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2358 +#: access/transam/xlogrecovery.c:2408 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "неочікуваний ID лінії часу %u в записі контрольної точки, до досягнення мінімальної точки відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:2542 access/transam/xlogrecovery.c:2818 +#: access/transam/xlogrecovery.c:2592 access/transam/xlogrecovery.c:2868 #, c-format msgid "recovery stopping after reaching consistency" msgstr "відновлення зупиняється після досягнення узгодженості" -#: access/transam/xlogrecovery.c:2563 +#: access/transam/xlogrecovery.c:2613 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "відновлення зупиняється перед позицією WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2653 +#: access/transam/xlogrecovery.c:2703 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "відновлення припиняється до підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2660 +#: access/transam/xlogrecovery.c:2710 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "відновлення припиняється до скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2713 +#: access/transam/xlogrecovery.c:2763 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "відновлення припиняється в точці відновлення\"%s\", час %s" -#: access/transam/xlogrecovery.c:2731 +#: access/transam/xlogrecovery.c:2781 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "відновлення припиняється пісня локації WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2798 +#: access/transam/xlogrecovery.c:2848 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "відновлення припиняється після підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2806 +#: access/transam/xlogrecovery.c:2856 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "відновлення припиняється після скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2887 +#: access/transam/xlogrecovery.c:2937 #, c-format msgid "pausing at the end of recovery" msgstr "пауза в кінці відновлення" -#: access/transam/xlogrecovery.c:2888 +#: access/transam/xlogrecovery.c:2938 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Виконайте pg_wal_replay_resume() для підвищення рівня." -#: access/transam/xlogrecovery.c:2891 access/transam/xlogrecovery.c:4628 +#: access/transam/xlogrecovery.c:2941 access/transam/xlogrecovery.c:4678 #, c-format msgid "recovery has paused" msgstr "відновлення зупинено" -#: access/transam/xlogrecovery.c:2892 +#: access/transam/xlogrecovery.c:2942 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Виконайте pg_wal_replay_resume(), щоб продовжити." -#: access/transam/xlogrecovery.c:3155 +#: access/transam/xlogrecovery.c:3205 #, c-format msgid "unexpected timeline ID %u in WAL segment %s, LSN %X/%X, offset %u" msgstr "неочікуваний ID лінії часу %u в сегменті WAL %s, LSN %X/%X, offset %u" -#: access/transam/xlogrecovery.c:3363 +#: access/transam/xlogrecovery.c:3413 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: %m" msgstr "не вдалося прочитати сегмент журналу %s, LSN %X/%X, зсув %u: %m" -#: access/transam/xlogrecovery.c:3370 +#: access/transam/xlogrecovery.c:3420 #, c-format msgid "could not read from WAL segment %s, LSN %X/%X, offset %u: read %d of %zu" msgstr "не вдалося прочитати сегмент WAL %s, LSN %X/%X, зсув %u: прочитано %d з %zu" -#: access/transam/xlogrecovery.c:4010 +#: access/transam/xlogrecovery.c:4060 #, c-format msgid "invalid checkpoint location" msgstr "невірне розташування контрольної точки" -#: access/transam/xlogrecovery.c:4020 +#: access/transam/xlogrecovery.c:4070 #, c-format msgid "invalid checkpoint record" msgstr "невірний запис контрольної точки" -#: access/transam/xlogrecovery.c:4026 +#: access/transam/xlogrecovery.c:4076 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "невірний ID менеджера ресурсів в записі контрольної точки" -#: access/transam/xlogrecovery.c:4034 +#: access/transam/xlogrecovery.c:4084 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "невірний xl_info у записі контрольної точки" -#: access/transam/xlogrecovery.c:4040 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "невірна довжина запису контрольної точки" -#: access/transam/xlogrecovery.c:4094 +#: access/transam/xlogrecovery.c:4144 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "нова лінія часу %u не є дочірньою для лінії часу системи бази даних %u" -#: access/transam/xlogrecovery.c:4108 +#: access/transam/xlogrecovery.c:4158 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "нова лінія часу %u відгалузилась від поточної лінії часу бази даних %u до поточної точки відновлення %X/%X" -#: access/transam/xlogrecovery.c:4127 +#: access/transam/xlogrecovery.c:4177 #, c-format msgid "new target timeline is %u" msgstr "нова цільова лінія часу %u" -#: access/transam/xlogrecovery.c:4330 +#: access/transam/xlogrecovery.c:4380 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Запит на вимкнення процесу приймача WAL" -#: access/transam/xlogrecovery.c:4390 +#: access/transam/xlogrecovery.c:4440 #, c-format msgid "received promote request" msgstr "отримано запит підвищення статусу" -#: access/transam/xlogrecovery.c:4619 +#: access/transam/xlogrecovery.c:4669 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby неможливий через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4620 access/transam/xlogrecovery.c:4647 -#: access/transam/xlogrecovery.c:4677 +#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4727 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d є нижчим параметром, ніж на основному сервері, де його значення було %d." -#: access/transam/xlogrecovery.c:4629 +#: access/transam/xlogrecovery.c:4679 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Якщо відновлення не буде зупинено, сервер завершить роботу." -#: access/transam/xlogrecovery.c:4630 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Після здійснення необхідних змін у конфігурації, ви можете перезапустити сервер." -#: access/transam/xlogrecovery.c:4641 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "підвищення неможливе через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4651 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Перезапустити сервер після здійснення необхідних змін у конфігурації." -#: access/transam/xlogrecovery.c:4675 +#: access/transam/xlogrecovery.c:4725 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "відновлення перервано через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4731 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Ви можете перезапустити сервер, після здійснення необхідних змін у конфігурації." -#: access/transam/xlogrecovery.c:4723 +#: access/transam/xlogrecovery.c:4773 #, c-format msgid "multiple recovery targets specified" msgstr "вказано декілька цілей відновлення" -#: access/transam/xlogrecovery.c:4724 +#: access/transam/xlogrecovery.c:4774 #, 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 "Максимум один із recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid може бути встановлений." +msgid "At most one of \"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" may be set." +msgstr "Максимум один із \"recovery_target\", \"recovery_target_lsn\", \"recovery_target_name\", \"recovery_target_time\", \"recovery_target_xid\" може бути встановлений." -#: access/transam/xlogrecovery.c:4735 +#: access/transam/xlogrecovery.c:4785 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Єдиним дозволеним значенням є \"immediate\"." -#: access/transam/xlogrecovery.c:4887 utils/adt/timestamp.c:186 -#: utils/adt/timestamp.c:439 +#: access/transam/xlogrecovery.c:4937 utils/adt/timestamp.c:202 +#: utils/adt/timestamp.c:455 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "позначка часу поза діапазоном: \"%s\"" -#: access/transam/xlogrecovery.c:4932 +#: access/transam/xlogrecovery.c:4982 #, c-format -msgid "recovery_target_timeline is not a valid number." -msgstr "recovery_target_timeline не є допустимим числом." +msgid "\"recovery_target_timeline\" is not a valid number." +msgstr "\"recovery_target_timeline\" не є допустимим числом." -#: access/transam/xlogutils.c:1039 +#: access/transam/xlogutils.c:1032 #, c-format msgid "could not read from WAL segment %s, offset %d: %m" msgstr "не вдалося прочитати сегмент WAL %s, зсув %d: %m" -#: access/transam/xlogutils.c:1046 +#: access/transam/xlogutils.c:1039 #, c-format msgid "could not read from WAL segment %s, offset %d: read %d of %d" msgstr "не вдалося прочитати сегмент WAL %s, зсув %d: прочитано %d з %d" -#: archive/shell_archive.c:96 +#: archive/shell_archive.c:98 #, c-format msgid "archive command failed with exit code %d" msgstr "команда архівації завершилась помилкой з кодом %d" -#: archive/shell_archive.c:98 archive/shell_archive.c:108 -#: archive/shell_archive.c:114 archive/shell_archive.c:123 +#: archive/shell_archive.c:100 archive/shell_archive.c:110 +#: archive/shell_archive.c:116 archive/shell_archive.c:125 #, c-format msgid "The failed archive command was: %s" msgstr "Команда архівації з помилкою: %s" -#: archive/shell_archive.c:105 +#: archive/shell_archive.c:107 #, c-format msgid "archive command was terminated by exception 0x%X" msgstr "команда архівації була перервана винятком 0x%X" -#: archive/shell_archive.c:107 postmaster/postmaster.c:3678 +#: archive/shell_archive.c:109 postmaster/postmaster.c:3094 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Опис цього Шістнадцяткового значення дивіться у включаємому C-файлі \"ntstatus.h\"." -#: archive/shell_archive.c:112 +#: archive/shell_archive.c:114 #, c-format msgid "archive command was terminated by signal %d: %s" msgstr "команда архівації була перервана сигналом %d: %s" -#: archive/shell_archive.c:121 +#: archive/shell_archive.c:123 #, c-format msgid "archive command exited with unrecognized status %d" msgstr "команда архівації завершена з нерозпізнаним статусом %d" -#: backup/backup_manifest.c:253 +#: backup/backup_manifest.c:254 #, c-format msgid "expected end timeline %u but found timeline %u" msgstr "очікувався кінець часової шкали %u але знайдено часову шкалу %u" -#: backup/backup_manifest.c:277 +#: backup/backup_manifest.c:278 #, c-format msgid "expected start timeline %u but found timeline %u" msgstr "очікувався початок часової шкали %u але знайдено часову шкалу %u" -#: backup/backup_manifest.c:304 +#: backup/backup_manifest.c:305 #, c-format msgid "start timeline %u not found in history of timeline %u" msgstr "початок часової шкали %u не знайдено в історії часової шкали %u" -#: backup/backup_manifest.c:355 +#: backup/backup_manifest.c:356 #, c-format msgid "could not rewind temporary file" msgstr "не вдалося перемотати назад тимчасовий файл" -#: backup/basebackup.c:470 +#: backup/basebackup.c:479 #, c-format msgid "could not find any WAL files" msgstr "не вдалося знайти ні одного файла WAL" -#: backup/basebackup.c:485 backup/basebackup.c:500 backup/basebackup.c:509 +#: backup/basebackup.c:494 backup/basebackup.c:509 backup/basebackup.c:518 #, c-format msgid "could not find WAL file \"%s\"" msgstr "не вдалося знайти файл WAL \"%s\"" -#: backup/basebackup.c:551 backup/basebackup.c:576 +#: backup/basebackup.c:560 backup/basebackup.c:585 #, c-format msgid "unexpected WAL file size \"%s\"" msgstr "неочікуаний розмір файлу WAL \"%s\"" -#: backup/basebackup.c:646 +#: backup/basebackup.c:656 #, c-format msgid "%lld total checksum verification failure" msgid_plural "%lld total checksum verification failures" @@ -3510,106 +3753,96 @@ msgstr[1] "всього помилок перевірки контрольних msgstr[2] "всього помилок перевірки контрольних сум: %lld" msgstr[3] "всього помилок перевірки контрольних сум: %lld" -#: backup/basebackup.c:653 +#: backup/basebackup.c:663 #, c-format msgid "checksum verification failure during base backup" msgstr "під час базового резервного копіювання виявлено неполадки контрольних сум" -#: backup/basebackup.c:722 backup/basebackup.c:731 backup/basebackup.c:742 -#: backup/basebackup.c:759 backup/basebackup.c:768 backup/basebackup.c:779 -#: backup/basebackup.c:796 backup/basebackup.c:805 backup/basebackup.c:817 -#: backup/basebackup.c:841 backup/basebackup.c:855 backup/basebackup.c:866 -#: backup/basebackup.c:877 backup/basebackup.c:890 +#: backup/basebackup.c:733 backup/basebackup.c:742 backup/basebackup.c:753 +#: backup/basebackup.c:770 backup/basebackup.c:779 backup/basebackup.c:788 +#: backup/basebackup.c:803 backup/basebackup.c:820 backup/basebackup.c:829 +#: backup/basebackup.c:841 backup/basebackup.c:865 backup/basebackup.c:879 +#: backup/basebackup.c:890 backup/basebackup.c:901 backup/basebackup.c:914 #, c-format msgid "duplicate option \"%s\"" msgstr "повторюваний параметр \"%s\"" -#: backup/basebackup.c:750 +#: backup/basebackup.c:761 #, c-format msgid "unrecognized checkpoint type: \"%s\"" msgstr "нерозпізнаний тип контрольної точки: \"%s\"" -#: backup/basebackup.c:785 +#: backup/basebackup.c:793 +#, c-format +msgid "incremental backups cannot be taken unless WAL summarization is enabled" +msgstr "інкрементні резервні копії не можна створювати, якщо не ввімкнено підсумовування WAL" + +#: backup/basebackup.c:809 #, c-format msgid "%d is outside the valid range for parameter \"%s\" (%d .. %d)" msgstr "%d за припустимим діапазномо для параметру \"%s\" (%d .. %d)" -#: backup/basebackup.c:830 +#: backup/basebackup.c:854 #, c-format msgid "unrecognized manifest option: \"%s\"" msgstr "нерозпізнаний параметр маніфесту: \"%s\"" -#: backup/basebackup.c:846 -#, c-format -msgid "unrecognized checksum algorithm: \"%s\"" -msgstr "нерозпізнаний алгоритм контрольної суми: \"%s\"" - -#: backup/basebackup.c:881 +#: backup/basebackup.c:905 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: backup/basebackup.c:897 +#: backup/basebackup.c:921 #, c-format msgid "unrecognized base backup option: \"%s\"" msgstr "нерозпізнаний параметр базової резервної копії: \"%s\"" -#: backup/basebackup.c:908 +#: backup/basebackup.c:932 #, c-format msgid "manifest checksums require a backup manifest" msgstr "контрольні суми маніфесту потребують резервного копіювання маніфесту" -#: backup/basebackup.c:917 +#: backup/basebackup.c:941 #, c-format msgid "target detail cannot be used without target" msgstr "елемент цілі не можна використовувати без цілі" -#: backup/basebackup.c:926 backup/basebackup_target.c:218 +#: backup/basebackup.c:950 backup/basebackup_target.c:218 #, c-format msgid "target \"%s\" does not accept a target detail" msgstr "ціль \"%s\" не приймає елемент цілі" -#: backup/basebackup.c:937 +#: backup/basebackup.c:961 #, c-format msgid "compression detail cannot be specified unless compression is enabled" msgstr "деталі стиснення не можуть бути вказані, якщо не увімкнено стиснення" -#: backup/basebackup.c:950 +#: backup/basebackup.c:974 #, c-format msgid "invalid compression specification: %s" msgstr "неприпустима специфікація стискання: %s" -#: backup/basebackup.c:1116 backup/basebackup.c:1294 +#: backup/basebackup.c:1024 +#, c-format +msgid "must UPLOAD_MANIFEST before performing an incremental BASE_BACKUP" +msgstr "повинен UPLOAD_MANIFEST перед виконанням інкрементного BASE_BACKUP" + +#: backup/basebackup.c:1157 backup/basebackup.c:1358 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "не вдалося отримати інформацію про файл або каталог \"%s\": %m" -#: backup/basebackup.c:1430 +#: backup/basebackup.c:1544 #, c-format msgid "skipping special file \"%s\"" msgstr "спеціальний файл \"%s\" пропускається" -#: backup/basebackup.c:1542 -#, c-format -msgid "invalid segment number %d in file \"%s\"" -msgstr "неприпустимий номер сегменту %d в файлі \"%s\"" - -#: backup/basebackup.c:1574 +#: backup/basebackup.c:1751 #, c-format msgid "could not verify checksum in file \"%s\", block %u: read buffer size %d and page size %d differ" msgstr "не вдалося перевірити контрольну суму у файлі \"%s\", блок %u: розмір прочитаного буфера %d і розмір прочитаної сторінки %d відрізняються" -#: backup/basebackup.c:1658 -#, c-format -msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" -msgstr "помилка перевірки контрольної суми у файлі \"%s\", блок %u: обчислено %X, але очікувалось %X" - -#: backup/basebackup.c:1665 -#, c-format -msgid "further checksum verification failures in file \"%s\" will not be reported" -msgstr "про подальші помилки під час перевірки контрольної суми в файлі \"%s\" повідомлятись не буде" - -#: backup/basebackup.c:1721 +#: backup/basebackup.c:1813 #, c-format msgid "file \"%s\" has a total of %d checksum verification failure" msgid_plural "file \"%s\" has a total of %d checksum verification failures" @@ -3618,16 +3851,31 @@ msgstr[1] "файл \"%s\" має загальну кількість помил msgstr[2] "файл \"%s\" має загальну кількість помилок перевірки контрольної суми: %d" msgstr[3] "файл \"%s\" має загальну кількість помилок перевірки контрольної суми: %d" -#: backup/basebackup.c:1767 +#: backup/basebackup.c:1917 +#, c-format +msgid "checksum verification failed in file \"%s\", block %u: calculated %X but expected %X" +msgstr "помилка перевірки контрольної суми у файлі \"%s\", блок %u: обчислено %X, але очікувалось %X" + +#: backup/basebackup.c:1924 +#, c-format +msgid "further checksum verification failures in file \"%s\" will not be reported" +msgstr "про подальші помилки під час перевірки контрольної суми в файлі \"%s\" повідомлятись не буде" + +#: backup/basebackup.c:2048 #, c-format msgid "file name too long for tar format: \"%s\"" msgstr "ім'я файлу занадто довге для tar формату: \"%s\"" -#: backup/basebackup.c:1772 +#: backup/basebackup.c:2053 #, c-format msgid "symbolic link target too long for tar format: file name \"%s\", target \"%s\"" msgstr "мета символьного посилання занадто довга для формату tar: ім'я файлу \"%s\", мета \"%s\"" +#: backup/basebackup.c:2127 +#, c-format +msgid "could not read file \"%s\": read %zd of %zu" +msgstr "не вдалося прочитати файл \"%s\": читання %zd з %zu" + #: backup/basebackup_gzip.c:67 #, c-format msgid "gzip compression is not supported by this build" @@ -3638,53 +3886,114 @@ msgstr "стискання gzip не підтримується цією збі msgid "could not initialize compression library" msgstr "не вдалося ініціалізувати бібліотеку стискання" -#: backup/basebackup_lz4.c:67 +#: backup/basebackup_incremental.c:294 #, c-format -msgid "lz4 compression is not supported by this build" -msgstr "стискання lz4 не підтримується цією збіркою" +msgid "manifest contains no required WAL ranges" +msgstr "маніфест не містить необхідних діапазонів WAL" -#: backup/basebackup_server.c:75 +#: backup/basebackup_incremental.c:349 #, c-format -msgid "permission denied to create backup stored on server" -msgstr "немає прав на створення резервної копії, збереженої на сервері" +msgid "timeline %u found in manifest, but not in this server's history" +msgstr "часову шкалу %u знайдено в маніфесті, але не в історії цього сервера" -#: backup/basebackup_server.c:76 +#: backup/basebackup_incremental.c:414 #, c-format -msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." -msgstr "Тільки ролі з привілеями ролі \"%s\" можуть створювати резервні копії, що зберігаються на сервері." +msgid "manifest requires WAL from initial timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "маніфест вимагає WAL з початкової шкали %u, починаючи з %X/%X, але ця шкала починається з %X/%X" -#: backup/basebackup_server.c:91 +#: backup/basebackup_incremental.c:424 #, c-format -msgid "relative path not allowed for backup stored on server" +msgid "manifest requires WAL from continuation timeline %u starting at %X/%X, but that timeline begins at %X/%X" +msgstr "маніфест вимагає WAL зі шкали продовження %u, починаючи з %X/%X, але ця шкала починається з %X/%X" + +#: backup/basebackup_incremental.c:435 +#, c-format +msgid "manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X" +msgstr "маніфест вимагає WAL з кінцевої шкали часу %u, що закінчується на %X/%X, але ця резервна копія починається з %X/%X" + +#: backup/basebackup_incremental.c:439 +#, c-format +msgid "This can happen for incremental backups on a standby if there was little activity since the previous backup." +msgstr "Це може статися з інкрементними резервними копіями на резервному сервері, якщо було замало активності з минулої резервної копії." + +#: backup/basebackup_incremental.c:446 +#, c-format +msgid "manifest requires WAL from non-final timeline %u ending at %X/%X, but this server switched timelines at %X/%X" +msgstr "маніфест вимагає WAL з не фінальної лінійки %u, що закінчується на %X/%X, але цей сервер перемкнув лінійки на %X/%X" + +#: backup/basebackup_incremental.c:527 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but no summaries for that timeline and LSN range exist" +msgstr "Зведення WAL потрібні на часовій шкалі %u від %X/%X до %X/%X, але зведень для цієї шкали та діапазону LSN не існує" + +#: backup/basebackup_incremental.c:534 +#, c-format +msgid "WAL summaries are required on timeline %u from %X/%X to %X/%X, but the summaries for that timeline and LSN range are incomplete" +msgstr "Зведення WAL потрібні на часовій шкалі %u від %X/%X до %X/%X, але зведення для цієї часової шкали та діапазону LSN є неповними" + +#: backup/basebackup_incremental.c:538 +#, c-format +msgid "The first unsummarized LSN in this range is %X/%X." +msgstr "Перший не підсумований LSN у цьому діапазоні - %X/%X." + +#: backup/basebackup_incremental.c:938 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "маніфест резервного копіювання версії 1 не підтримує інкреметного резервного копіювання" + +#: backup/basebackup_incremental.c:956 +#, c-format +msgid "system identifier in backup manifest is %llu, but database system identifier is %llu" +msgstr "системний ідентифікатор в маніфесті резервного копіювання %llu, але ідентифікатор системи бази даних є %llu" + +#: backup/basebackup_lz4.c:67 +#, c-format +msgid "lz4 compression is not supported by this build" +msgstr "стискання lz4 не підтримується цією збіркою" + +#: backup/basebackup_server.c:73 +#, c-format +msgid "permission denied to create backup stored on server" +msgstr "немає прав на створення резервної копії, збереженої на сервері" + +#: backup/basebackup_server.c:74 +#, c-format +msgid "Only roles with privileges of the \"%s\" role may create a backup stored on the server." +msgstr "Тільки ролі з привілеями ролі \"%s\" можуть створювати резервні копії, що зберігаються на сервері." + +#: backup/basebackup_server.c:89 +#, c-format +msgid "relative path not allowed for backup stored on server" msgstr "відносний шлях не дозволений для резервного копіювання збереженого на сервері" -#: backup/basebackup_server.c:104 commands/dbcommands.c:478 -#: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:599 commands/tablespace.c:644 replication/slot.c:1704 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 +#: commands/tablespace.c:157 commands/tablespace.c:173 +#: commands/tablespace.c:593 commands/tablespace.c:638 replication/slot.c:1986 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не вдалося створити каталог \"%s\": %m" -#: backup/basebackup_server.c:117 +#: backup/basebackup_server.c:115 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" існує, але він не порожній" -#: backup/basebackup_server.c:125 utils/init/postinit.c:1164 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1177 #, c-format msgid "could not access directory \"%s\": %m" msgstr "немає доступу до каталогу \"%s\": %m" -#: backup/basebackup_server.c:177 backup/basebackup_server.c:184 -#: backup/basebackup_server.c:270 backup/basebackup_server.c:277 -#: storage/smgr/md.c:504 storage/smgr/md.c:511 storage/smgr/md.c:593 -#: storage/smgr/md.c:615 storage/smgr/md.c:865 +#: backup/basebackup_server.c:175 backup/basebackup_server.c:182 +#: backup/basebackup_server.c:268 backup/basebackup_server.c:275 +#: backup/walsummary.c:312 storage/smgr/md.c:502 storage/smgr/md.c:509 +#: storage/smgr/md.c:591 storage/smgr/md.c:613 storage/smgr/md.c:999 #, c-format msgid "Check free disk space." msgstr "Перевірьте вільний дисковий простір." -#: backup/basebackup_server.c:181 backup/basebackup_server.c:274 +#: backup/basebackup_server.c:179 backup/basebackup_server.c:272 +#: backup/walsummary.c:309 #, c-format msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" msgstr "не вдалося записати файл \"%s\": записано лише %d з %d байтів зі зсувом %u" @@ -3714,645 +4023,656 @@ msgstr "не вдалося встановити кількість процес msgid "could not enable long-distance mode: %s" msgstr "не вдалося включити режим довгої відстані: %s" -#: bootstrap/bootstrap.c:243 postmaster/postmaster.c:721 tcop/postgres.c:3819 +#: backup/walsummaryfuncs.c:95 +#, c-format +msgid "invalid timeline %lld" +msgstr "неприпустима часова шкала %lld" + +#: bootstrap/bootstrap.c:239 postmaster/postmaster.c:623 tcop/postgres.c:3946 #, c-format msgid "--%s requires a value" msgstr "--%s необхідне значення" -#: bootstrap/bootstrap.c:248 postmaster/postmaster.c:726 tcop/postgres.c:3824 +#: bootstrap/bootstrap.c:244 postmaster/postmaster.c:628 tcop/postgres.c:3951 #, c-format msgid "-c %s requires a value" msgstr "-c %s необхідне значення" -#: bootstrap/bootstrap.c:289 -#, c-format -msgid "-X requires a power of two value between 1 MB and 1 GB" -msgstr "для -X необхідне число, яке дорівнює ступеню 2 в інтервалі від 1 МБ до 1 ГБ" - -#: bootstrap/bootstrap.c:295 postmaster/postmaster.c:844 -#: postmaster/postmaster.c:857 +#: bootstrap/bootstrap.c:282 postmaster/postmaster.c:746 +#: postmaster/postmaster.c:759 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n" -#: bootstrap/bootstrap.c:304 +#: bootstrap/bootstrap.c:291 #, c-format msgid "%s: invalid command-line arguments\n" msgstr "%s: невірні аргументи командного рядка\n" -#: catalog/aclchk.c:201 +#: catalog/aclchk.c:210 #, c-format msgid "grant options can only be granted to roles" msgstr "право надання прав можна надавати тільки ролям" -#: catalog/aclchk.c:323 +#: catalog/aclchk.c:332 #, c-format msgid "no privileges were granted for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" не призначено ніяких прав" -#: catalog/aclchk.c:328 +#: catalog/aclchk.c:337 #, c-format msgid "no privileges were granted for \"%s\"" msgstr "для \"%s\" не призначено ніяких прав" -#: catalog/aclchk.c:336 +#: catalog/aclchk.c:345 #, c-format msgid "not all privileges were granted for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" призначено не всі права" -#: catalog/aclchk.c:341 +#: catalog/aclchk.c:350 #, c-format msgid "not all privileges were granted for \"%s\"" msgstr "для \"%s\" призначено не всі права" -#: catalog/aclchk.c:352 +#: catalog/aclchk.c:361 #, c-format msgid "no privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" жодні права не можуть бути відкликані" -#: catalog/aclchk.c:357 +#: catalog/aclchk.c:366 #, c-format msgid "no privileges could be revoked for \"%s\"" msgstr "для \"%s\" жодні права не можуть бути відкликані" -#: catalog/aclchk.c:365 +#: catalog/aclchk.c:374 #, c-format msgid "not all privileges could be revoked for column \"%s\" of relation \"%s\"" msgstr "для стовпця \"%s\" відношення \"%s\" не всі права можуть бути відкликані" -#: catalog/aclchk.c:370 +#: catalog/aclchk.c:379 #, c-format msgid "not all privileges could be revoked for \"%s\"" msgstr "для \"%s\" не всі права можуть бути відкликані" -#: catalog/aclchk.c:402 +#: catalog/aclchk.c:411 #, c-format msgid "grantor must be current user" msgstr "грантодавець повинен бути поточним користувачем" -#: catalog/aclchk.c:470 catalog/aclchk.c:1045 +#: catalog/aclchk.c:479 catalog/aclchk.c:1054 #, c-format msgid "invalid privilege type %s for relation" msgstr "недійсний тип права %s для відношення" -#: catalog/aclchk.c:474 catalog/aclchk.c:1049 +#: catalog/aclchk.c:483 catalog/aclchk.c:1058 #, c-format msgid "invalid privilege type %s for sequence" msgstr "невірний тип права %s для послідовності" -#: catalog/aclchk.c:478 +#: catalog/aclchk.c:487 #, c-format msgid "invalid privilege type %s for database" msgstr "недійсний тип права %s для бази даних" -#: catalog/aclchk.c:482 +#: catalog/aclchk.c:491 #, c-format msgid "invalid privilege type %s for domain" msgstr "недійсний тип права %s для домену" -#: catalog/aclchk.c:486 catalog/aclchk.c:1053 +#: catalog/aclchk.c:495 catalog/aclchk.c:1062 #, c-format msgid "invalid privilege type %s for function" msgstr "недійсний тип права %s для функції" -#: catalog/aclchk.c:490 +#: catalog/aclchk.c:499 #, c-format msgid "invalid privilege type %s for language" msgstr "недійсний тип права %s для мови" -#: catalog/aclchk.c:494 +#: catalog/aclchk.c:503 #, c-format msgid "invalid privilege type %s for large object" msgstr "недійсний тип права %s для великого об'єкту" -#: catalog/aclchk.c:498 catalog/aclchk.c:1069 +#: catalog/aclchk.c:507 catalog/aclchk.c:1078 #, c-format msgid "invalid privilege type %s for schema" msgstr "недійсний тип привілеїв %s для схеми" -#: catalog/aclchk.c:502 catalog/aclchk.c:1057 +#: catalog/aclchk.c:511 catalog/aclchk.c:1066 #, c-format msgid "invalid privilege type %s for procedure" msgstr "недійсний тип привілеїв %s для процедури" -#: catalog/aclchk.c:506 catalog/aclchk.c:1061 +#: catalog/aclchk.c:515 catalog/aclchk.c:1070 #, c-format msgid "invalid privilege type %s for routine" msgstr "недійсний тип привілею %s для підпрограми" -#: catalog/aclchk.c:510 +#: catalog/aclchk.c:519 #, c-format msgid "invalid privilege type %s for tablespace" msgstr "недійсний тип привілеїв %s для табличного простору" -#: catalog/aclchk.c:514 catalog/aclchk.c:1065 +#: catalog/aclchk.c:523 catalog/aclchk.c:1074 #, c-format msgid "invalid privilege type %s for type" msgstr "недійсний тип привілею %s для типу" -#: catalog/aclchk.c:518 +#: catalog/aclchk.c:527 #, c-format msgid "invalid privilege type %s for foreign-data wrapper" msgstr "недійсний тип привілею %s для джерела сторонніх даних" -#: catalog/aclchk.c:522 +#: catalog/aclchk.c:531 #, c-format msgid "invalid privilege type %s for foreign server" msgstr "недійсний тип привілею %s для стороннього серверу" -#: catalog/aclchk.c:526 +#: catalog/aclchk.c:535 #, c-format msgid "invalid privilege type %s for parameter" msgstr "неприпустимий тип привілею %s для параметру" -#: catalog/aclchk.c:565 +#: catalog/aclchk.c:574 #, c-format msgid "column privileges are only valid for relations" msgstr "привілеї стовпця дійсні лише для зв'язків" -#: catalog/aclchk.c:728 catalog/aclchk.c:3555 catalog/objectaddress.c:1092 -#: catalog/pg_largeobject.c:116 storage/large_object/inv_api.c:286 +#: catalog/aclchk.c:737 catalog/aclchk.c:3624 catalog/objectaddress.c:1054 +#: catalog/pg_largeobject.c:113 storage/large_object/inv_api.c:285 #, c-format msgid "large object %u does not exist" msgstr "великого об'єкту %u не існує" -#: catalog/aclchk.c:1102 +#: catalog/aclchk.c:1111 #, c-format msgid "default privileges cannot be set for columns" msgstr "права за замовчуванням не можна встановити для стовпців" -#: catalog/aclchk.c:1138 +#: catalog/aclchk.c:1147 #, c-format msgid "permission denied to change default privileges" msgstr "немає дозволу для зміни прав за замовчуванням" -#: catalog/aclchk.c:1256 +#: catalog/aclchk.c:1265 #, c-format msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "речення IN SCHEMA не можна використати в GRANT/REVOKE ON SCHEMAS" -#: catalog/aclchk.c:1595 catalog/catalog.c:631 catalog/objectaddress.c:1561 -#: catalog/pg_publication.c:533 commands/analyze.c:390 commands/copy.c:837 -#: commands/sequence.c:1663 commands/tablecmds.c:7343 commands/tablecmds.c:7499 -#: commands/tablecmds.c:7549 commands/tablecmds.c:7623 -#: commands/tablecmds.c:7693 commands/tablecmds.c:7809 -#: commands/tablecmds.c:7903 commands/tablecmds.c:7962 -#: commands/tablecmds.c:8051 commands/tablecmds.c:8081 -#: commands/tablecmds.c:8209 commands/tablecmds.c:8291 -#: commands/tablecmds.c:8425 commands/tablecmds.c:8533 -#: commands/tablecmds.c:12252 commands/tablecmds.c:12433 -#: commands/tablecmds.c:12594 commands/tablecmds.c:13756 -#: commands/tablecmds.c:16287 commands/trigger.c:949 parser/analyze.c:2518 -#: parser/parse_relation.c:737 parser/parse_target.c:1054 -#: parser/parse_type.c:144 parser/parse_utilcmd.c:3422 -#: parser/parse_utilcmd.c:3458 parser/parse_utilcmd.c:3500 utils/adt/acl.c:2876 -#: utils/adt/ruleutils.c:2797 +#: catalog/aclchk.c:1616 catalog/catalog.c:650 catalog/objectaddress.c:1523 +#: catalog/pg_publication.c:528 commands/analyze.c:380 commands/copy.c:947 +#: commands/sequence.c:1655 commands/tablecmds.c:7518 commands/tablecmds.c:7672 +#: commands/tablecmds.c:7722 commands/tablecmds.c:7796 +#: commands/tablecmds.c:7866 commands/tablecmds.c:7996 +#: commands/tablecmds.c:8125 commands/tablecmds.c:8219 +#: commands/tablecmds.c:8320 commands/tablecmds.c:8447 +#: commands/tablecmds.c:8477 commands/tablecmds.c:8619 +#: commands/tablecmds.c:8712 commands/tablecmds.c:8846 +#: commands/tablecmds.c:8958 commands/tablecmds.c:12695 +#: commands/tablecmds.c:12887 commands/tablecmds.c:13048 +#: commands/tablecmds.c:14237 commands/tablecmds.c:16863 commands/trigger.c:942 +#: parser/analyze.c:2530 parser/parse_relation.c:737 parser/parse_target.c:1067 +#: parser/parse_type.c:144 parser/parse_utilcmd.c:3409 +#: parser/parse_utilcmd.c:3449 parser/parse_utilcmd.c:3491 utils/adt/acl.c:2923 +#: utils/adt/ruleutils.c:2807 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "стовпець \"%s\" зв'язку \"%s\" не існує" -#: catalog/aclchk.c:1840 +#: catalog/aclchk.c:1861 #, c-format msgid "\"%s\" is an index" msgstr "\"%s\" є індексом" -#: catalog/aclchk.c:1847 commands/tablecmds.c:13913 commands/tablecmds.c:17194 +#: catalog/aclchk.c:1868 commands/tablecmds.c:14394 commands/tablecmds.c:17772 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" це складений тип" -#: catalog/aclchk.c:1855 catalog/objectaddress.c:1401 commands/sequence.c:1171 -#: commands/tablecmds.c:254 commands/tablecmds.c:17158 utils/adt/acl.c:2084 -#: utils/adt/acl.c:2114 utils/adt/acl.c:2146 utils/adt/acl.c:2178 -#: utils/adt/acl.c:2206 utils/adt/acl.c:2236 +#: catalog/aclchk.c:1876 catalog/objectaddress.c:1363 commands/tablecmds.c:263 +#: commands/tablecmds.c:17736 utils/adt/acl.c:2107 utils/adt/acl.c:2137 +#: utils/adt/acl.c:2170 utils/adt/acl.c:2206 utils/adt/acl.c:2237 +#: utils/adt/acl.c:2268 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" не є послідовністю" -#: catalog/aclchk.c:1893 +#: catalog/aclchk.c:1914 #, c-format msgid "sequence \"%s\" only supports USAGE, SELECT, and UPDATE privileges" msgstr "послідовність \"%s\" підтримує лише привілеї USAGE, SELECT та UPDATE" -#: catalog/aclchk.c:1910 +#: catalog/aclchk.c:1931 #, c-format msgid "invalid privilege type %s for table" msgstr "недійсний тип привілею %s для таблиці" -#: catalog/aclchk.c:2072 +#: catalog/aclchk.c:2093 #, c-format msgid "invalid privilege type %s for column" msgstr "недійсний тип привілею %s для стовпця" -#: catalog/aclchk.c:2085 +#: catalog/aclchk.c:2106 #, c-format msgid "sequence \"%s\" only supports SELECT column privileges" msgstr "послідовність \"%s\" підтримує тільки привілей стовпця SELECT" -#: catalog/aclchk.c:2275 +#: catalog/aclchk.c:2296 #, c-format msgid "language \"%s\" is not trusted" msgstr "мова \"%s\" не є довіреною" -#: catalog/aclchk.c:2277 +#: catalog/aclchk.c:2298 #, c-format msgid "GRANT and REVOKE are not allowed on untrusted languages, because only superusers can use untrusted languages." msgstr "GRANT і REVOKE не є допустимими для недовірених мов, тому що тільки суперкористувачі можуть використовувати недовірені мови." -#: catalog/aclchk.c:2427 +#: catalog/aclchk.c:2449 #, c-format msgid "cannot set privileges of array types" msgstr "не можна встановити права для типів масивів" -#: catalog/aclchk.c:2428 +#: catalog/aclchk.c:2450 #, c-format msgid "Set the privileges of the element type instead." msgstr "Замість цього встановіть права для типу елементу." -#: catalog/aclchk.c:2435 catalog/objectaddress.c:1667 +#: catalog/aclchk.c:2454 +#, c-format +msgid "cannot set privileges of multirange types" +msgstr "не можна встановити права для типів множинного діапазону" + +#: catalog/aclchk.c:2455 +#, c-format +msgid "Set the privileges of the range type instead." +msgstr "Замість цього встановіть права типу діапазону." + +#: catalog/aclchk.c:2462 catalog/objectaddress.c:1629 #, c-format msgid "\"%s\" is not a domain" msgstr "\"%s\" не є доменом" -#: catalog/aclchk.c:2619 +#: catalog/aclchk.c:2648 #, c-format msgid "unrecognized privilege type \"%s\"" msgstr "нерозпізнаний привілей \"%s\"" -#: catalog/aclchk.c:2684 +#: catalog/aclchk.c:2715 #, c-format msgid "permission denied for aggregate %s" msgstr "немає дозволу для агрегату %s" -#: catalog/aclchk.c:2687 +#: catalog/aclchk.c:2718 #, c-format msgid "permission denied for collation %s" msgstr "немає дозволу для сортування %s" -#: catalog/aclchk.c:2690 +#: catalog/aclchk.c:2721 #, c-format msgid "permission denied for column %s" msgstr "немає дозволу для стовпця %s" -#: catalog/aclchk.c:2693 +#: catalog/aclchk.c:2724 #, c-format msgid "permission denied for conversion %s" msgstr "немає дозволу для перетворення %s" -#: catalog/aclchk.c:2696 +#: catalog/aclchk.c:2727 #, c-format msgid "permission denied for database %s" msgstr "немає доступу для бази даних %s" -#: catalog/aclchk.c:2699 +#: catalog/aclchk.c:2730 #, c-format msgid "permission denied for domain %s" msgstr "немає дозволу для домену %s" -#: catalog/aclchk.c:2702 +#: catalog/aclchk.c:2733 #, c-format msgid "permission denied for event trigger %s" msgstr "немає дозволу для тригера подій %s" -#: catalog/aclchk.c:2705 +#: catalog/aclchk.c:2736 #, c-format msgid "permission denied for extension %s" msgstr "немає дозволу для розширення %s" -#: catalog/aclchk.c:2708 +#: catalog/aclchk.c:2739 #, c-format msgid "permission denied for foreign-data wrapper %s" msgstr "немає дозволу для джерела сторонніх даних %s" -#: catalog/aclchk.c:2711 +#: catalog/aclchk.c:2742 #, c-format msgid "permission denied for foreign server %s" msgstr "немає дозволу для стороннього серверу %s" -#: catalog/aclchk.c:2714 +#: catalog/aclchk.c:2745 #, c-format msgid "permission denied for foreign table %s" msgstr "немає дозволу для сторонньої таблиці %s" -#: catalog/aclchk.c:2717 +#: catalog/aclchk.c:2748 #, c-format msgid "permission denied for function %s" msgstr "немає дозволу для функції %s" -#: catalog/aclchk.c:2720 +#: catalog/aclchk.c:2751 #, c-format msgid "permission denied for index %s" msgstr "немає дозволу для індексу %s" -#: catalog/aclchk.c:2723 +#: catalog/aclchk.c:2754 #, c-format msgid "permission denied for language %s" msgstr "немає дозволу для мови %s" -#: catalog/aclchk.c:2726 +#: catalog/aclchk.c:2757 #, c-format msgid "permission denied for large object %s" msgstr "немає дозволу для великого об'єкту %s" -#: catalog/aclchk.c:2729 +#: catalog/aclchk.c:2760 #, c-format msgid "permission denied for materialized view %s" msgstr "немає дозволу для матеріалізованого подання %s" -#: catalog/aclchk.c:2732 +#: catalog/aclchk.c:2763 #, c-format msgid "permission denied for operator class %s" msgstr "немає дозволу для класу операторів %s" -#: catalog/aclchk.c:2735 +#: catalog/aclchk.c:2766 #, c-format msgid "permission denied for operator %s" msgstr "немає дозволу для оператора %s" -#: catalog/aclchk.c:2738 +#: catalog/aclchk.c:2769 #, c-format msgid "permission denied for operator family %s" msgstr "немає дозволу для сімейства операторів %s" -#: catalog/aclchk.c:2741 +#: catalog/aclchk.c:2772 #, c-format msgid "permission denied for parameter %s" msgstr "дозвіл відхилено для параметру %s" -#: catalog/aclchk.c:2744 +#: catalog/aclchk.c:2775 #, c-format msgid "permission denied for policy %s" msgstr "немає дозволу для політики %s" -#: catalog/aclchk.c:2747 +#: catalog/aclchk.c:2778 #, c-format msgid "permission denied for procedure %s" msgstr "немає дозволу для процедури %s" -#: catalog/aclchk.c:2750 +#: catalog/aclchk.c:2781 #, c-format msgid "permission denied for publication %s" msgstr "немає дозволу для публікації %s" -#: catalog/aclchk.c:2753 +#: catalog/aclchk.c:2784 #, c-format msgid "permission denied for routine %s" msgstr "немає дозволу для підпрограми %s" -#: catalog/aclchk.c:2756 +#: catalog/aclchk.c:2787 #, c-format msgid "permission denied for schema %s" msgstr "немає дозволу для схеми %s" -#: catalog/aclchk.c:2759 commands/sequence.c:659 commands/sequence.c:885 -#: commands/sequence.c:927 commands/sequence.c:968 commands/sequence.c:1761 -#: commands/sequence.c:1810 +#: catalog/aclchk.c:2790 commands/sequence.c:654 commands/sequence.c:880 +#: commands/sequence.c:922 commands/sequence.c:963 commands/sequence.c:1753 +#: commands/sequence.c:1799 #, c-format msgid "permission denied for sequence %s" msgstr "немає дозволу для послідовності %s" -#: catalog/aclchk.c:2762 +#: catalog/aclchk.c:2793 #, c-format msgid "permission denied for statistics object %s" msgstr "немає дозволу для об'єкту статистики %s" -#: catalog/aclchk.c:2765 +#: catalog/aclchk.c:2796 #, c-format msgid "permission denied for subscription %s" msgstr "немає дозволу для підписки %s" -#: catalog/aclchk.c:2768 +#: catalog/aclchk.c:2799 #, c-format msgid "permission denied for table %s" msgstr "немає дозволу для таблиці %s" -#: catalog/aclchk.c:2771 +#: catalog/aclchk.c:2802 #, c-format msgid "permission denied for tablespace %s" msgstr "немає дозволу для табличного простору %s" -#: catalog/aclchk.c:2774 +#: catalog/aclchk.c:2805 #, c-format msgid "permission denied for text search configuration %s" msgstr "немає дозволу для конфігурації текстового пошуку %s" -#: catalog/aclchk.c:2777 +#: catalog/aclchk.c:2808 #, c-format msgid "permission denied for text search dictionary %s" msgstr "немає дозволу для словника текстового пошуку %s" -#: catalog/aclchk.c:2780 +#: catalog/aclchk.c:2811 #, c-format msgid "permission denied for type %s" msgstr "немає дозволу для типу %s" -#: catalog/aclchk.c:2783 +#: catalog/aclchk.c:2814 #, c-format msgid "permission denied for view %s" msgstr "немає дозволу для подання %s" -#: catalog/aclchk.c:2819 +#: catalog/aclchk.c:2850 #, c-format msgid "must be owner of aggregate %s" msgstr "треба бути власником агрегату %s" -#: catalog/aclchk.c:2822 +#: catalog/aclchk.c:2853 #, c-format msgid "must be owner of collation %s" msgstr "треба бути власником правил сортування %s" -#: catalog/aclchk.c:2825 +#: catalog/aclchk.c:2856 #, c-format msgid "must be owner of conversion %s" msgstr "треба бути власником перетворення %s" -#: catalog/aclchk.c:2828 +#: catalog/aclchk.c:2859 #, c-format msgid "must be owner of database %s" msgstr "треба бути власником бази даних %s" -#: catalog/aclchk.c:2831 +#: catalog/aclchk.c:2862 #, c-format msgid "must be owner of domain %s" msgstr "треба бути власником домену %s" -#: catalog/aclchk.c:2834 +#: catalog/aclchk.c:2865 #, c-format msgid "must be owner of event trigger %s" msgstr "треба бути власником тригеру подій %s" -#: catalog/aclchk.c:2837 +#: catalog/aclchk.c:2868 #, c-format msgid "must be owner of extension %s" msgstr "треба бути власником розширення %s" -#: catalog/aclchk.c:2840 +#: catalog/aclchk.c:2871 #, c-format msgid "must be owner of foreign-data wrapper %s" msgstr "треба бути власником джерела сторонніх даних %s" -#: catalog/aclchk.c:2843 +#: catalog/aclchk.c:2874 #, c-format msgid "must be owner of foreign server %s" msgstr "треба бути власником стороннього серверу %s" -#: catalog/aclchk.c:2846 +#: catalog/aclchk.c:2877 #, c-format msgid "must be owner of foreign table %s" msgstr "треба бути власником сторонньої таблиці %s" -#: catalog/aclchk.c:2849 +#: catalog/aclchk.c:2880 #, c-format msgid "must be owner of function %s" msgstr "треба бути власником функції %s" -#: catalog/aclchk.c:2852 +#: catalog/aclchk.c:2883 #, c-format msgid "must be owner of index %s" msgstr "треба бути власником індексу %s" -#: catalog/aclchk.c:2855 +#: catalog/aclchk.c:2886 #, c-format msgid "must be owner of language %s" msgstr "треба бути власником мови %s" -#: catalog/aclchk.c:2858 +#: catalog/aclchk.c:2889 #, c-format msgid "must be owner of large object %s" msgstr "треба бути власником великого об'єкту %s" -#: catalog/aclchk.c:2861 +#: catalog/aclchk.c:2892 #, c-format msgid "must be owner of materialized view %s" msgstr "треба бути власником матеріалізованого подання %s" -#: catalog/aclchk.c:2864 +#: catalog/aclchk.c:2895 #, c-format msgid "must be owner of operator class %s" msgstr "треба бути власником класу операторів %s" -#: catalog/aclchk.c:2867 +#: catalog/aclchk.c:2898 #, c-format msgid "must be owner of operator %s" msgstr "треба бути власником оператора %s" -#: catalog/aclchk.c:2870 +#: catalog/aclchk.c:2901 #, c-format msgid "must be owner of operator family %s" msgstr "треба бути власником сімейства операторів %s" -#: catalog/aclchk.c:2873 +#: catalog/aclchk.c:2904 #, c-format msgid "must be owner of procedure %s" msgstr "треба бути власником процедури %s" -#: catalog/aclchk.c:2876 +#: catalog/aclchk.c:2907 #, c-format msgid "must be owner of publication %s" msgstr "треба бути власником публікації %s" -#: catalog/aclchk.c:2879 +#: catalog/aclchk.c:2910 #, c-format msgid "must be owner of routine %s" msgstr "треба бути власником підпрограми %s" -#: catalog/aclchk.c:2882 +#: catalog/aclchk.c:2913 #, c-format msgid "must be owner of sequence %s" msgstr "треба бути власником послідовності %s" -#: catalog/aclchk.c:2885 +#: catalog/aclchk.c:2916 #, c-format msgid "must be owner of subscription %s" msgstr "треба бути власником підписки %s" -#: catalog/aclchk.c:2888 +#: catalog/aclchk.c:2919 #, c-format msgid "must be owner of table %s" msgstr "треба бути власником таблиці %s" -#: catalog/aclchk.c:2891 +#: catalog/aclchk.c:2922 #, c-format msgid "must be owner of type %s" msgstr "треба бути власником типу %s" -#: catalog/aclchk.c:2894 +#: catalog/aclchk.c:2925 #, c-format msgid "must be owner of view %s" msgstr "треба бути власником подання %s" -#: catalog/aclchk.c:2897 +#: catalog/aclchk.c:2928 #, c-format msgid "must be owner of schema %s" msgstr "треба бути власником схеми %s" -#: catalog/aclchk.c:2900 +#: catalog/aclchk.c:2931 #, c-format msgid "must be owner of statistics object %s" msgstr "треба бути власником об'єкту статистики %s" -#: catalog/aclchk.c:2903 +#: catalog/aclchk.c:2934 #, c-format msgid "must be owner of tablespace %s" msgstr "треба бути власником табличного простору %s" -#: catalog/aclchk.c:2906 +#: catalog/aclchk.c:2937 #, c-format msgid "must be owner of text search configuration %s" msgstr "треба бути власником конфігурації текстового пошуку %s" -#: catalog/aclchk.c:2909 +#: catalog/aclchk.c:2940 #, c-format msgid "must be owner of text search dictionary %s" msgstr "треба бути власником словника текстового пошуку %s" -#: catalog/aclchk.c:2923 +#: catalog/aclchk.c:2954 #, c-format msgid "must be owner of relation %s" msgstr "треба бути власником відношення %s" -#: catalog/aclchk.c:2969 +#: catalog/aclchk.c:3000 #, c-format msgid "permission denied for column \"%s\" of relation \"%s\"" msgstr "немає дозволу для стовпця \"%s\" відношення \"%s\"" -#: catalog/aclchk.c:3104 catalog/aclchk.c:3984 catalog/aclchk.c:4015 +#: catalog/aclchk.c:3157 catalog/aclchk.c:4165 catalog/aclchk.c:4196 #, c-format msgid "%s with OID %u does not exist" msgstr "%s з OID %u не існує" -#: catalog/aclchk.c:3188 catalog/aclchk.c:3207 +#: catalog/aclchk.c:3240 catalog/aclchk.c:3259 #, c-format msgid "attribute %d of relation with OID %u does not exist" msgstr "атрибут %d відношення з OID %u не існує" -#: catalog/aclchk.c:3302 +#: catalog/aclchk.c:3297 catalog/aclchk.c:3360 catalog/aclchk.c:3999 #, c-format msgid "relation with OID %u does not exist" msgstr "відношення з OID %u не існує" -#: catalog/aclchk.c:3476 +#: catalog/aclchk.c:3545 #, c-format msgid "parameter ACL with OID %u does not exist" msgstr "параметр ACL з OID %u не існує" -#: catalog/aclchk.c:3640 commands/collationcmds.c:813 -#: commands/publicationcmds.c:1746 +#: catalog/aclchk.c:3718 commands/collationcmds.c:853 +#: commands/publicationcmds.c:1739 #, c-format msgid "schema with OID %u does not exist" msgstr "схема з OID %u не існує" -#: catalog/aclchk.c:3705 utils/cache/typcache.c:390 utils/cache/typcache.c:445 +#: catalog/aclchk.c:3792 catalog/aclchk.c:3819 catalog/aclchk.c:3848 +#: utils/cache/typcache.c:392 utils/cache/typcache.c:447 #, c-format msgid "type with OID %u does not exist" msgstr "тип з OID %u не існує" -#: catalog/catalog.c:449 +#: catalog/catalog.c:468 #, c-format msgid "still searching for an unused OID in relation \"%s\"" msgstr "все ще шукаю невикористаний OID у відношенні \"%s\"" -#: catalog/catalog.c:451 +#: catalog/catalog.c:470 #, c-format msgid "OID candidates have been checked %llu time, but no unused OID has been found yet." msgid_plural "OID candidates have been checked %llu times, but no unused OID has been found yet." @@ -4361,7 +4681,7 @@ msgstr[1] "OID кандидати буле перевірені %llu рази, msgstr[2] "OID кандидати буле перевірені %llu разів, але невикористаного OID все ще не знайдено." msgstr[3] "OID кандидати буле перевірені %llu разів, але невикористаного OID все ще не знайдено." -#: catalog/catalog.c:476 +#: catalog/catalog.c:495 #, c-format msgid "new OID has been assigned in relation \"%s\" after %llu retry" msgid_plural "new OID has been assigned in relation \"%s\" after %llu retries" @@ -4370,106 +4690,101 @@ msgstr[1] "новий OID було призначено у відношенні msgstr[2] "новий OID було призначено у відношенні \"%s\" після %llu повторних спроб" msgstr[3] "новий OID було призначено у відношенні \"%s\" після %llu повторних спроб" -#: catalog/catalog.c:609 catalog/catalog.c:676 +#: catalog/catalog.c:628 catalog/catalog.c:695 #, c-format msgid "must be superuser to call %s()" msgstr "для виклику %s() потрібно бути суперкористувачем" -#: catalog/catalog.c:618 +#: catalog/catalog.c:637 #, c-format msgid "pg_nextoid() can only be used on system catalogs" msgstr "pg_nextoid() можна використовувати лише для системних каталогів" -#: catalog/catalog.c:623 parser/parse_utilcmd.c:2273 +#: catalog/catalog.c:642 parser/parse_utilcmd.c:2270 #, c-format msgid "index \"%s\" does not belong to table \"%s\"" msgstr "індекс \"%s\" не належить таблиці \"%s\"" -#: catalog/catalog.c:640 +#: catalog/catalog.c:659 #, c-format msgid "column \"%s\" is not of type oid" msgstr "стовпець \"%s\" повинен мати тип oid" -#: catalog/catalog.c:647 +#: catalog/catalog.c:666 #, c-format msgid "index \"%s\" is not the index for column \"%s\"" msgstr "індекс \"%s\" не є індексом для стовпця \"%s\"" -#: catalog/dependency.c:546 catalog/pg_shdepend.c:658 +#: catalog/dependency.c:497 catalog/pg_shdepend.c:703 #, c-format msgid "cannot drop %s because it is required by the database system" msgstr "не вдалося видалити %s, оскільки він потрібний системі бази даних" -#: catalog/dependency.c:838 catalog/dependency.c:1065 +#: catalog/dependency.c:789 catalog/dependency.c:1016 #, c-format msgid "cannot drop %s because %s requires it" msgstr "не вдалося видалити %s, оскільки %s потребує його" -#: catalog/dependency.c:840 catalog/dependency.c:1067 +#: catalog/dependency.c:791 catalog/dependency.c:1018 #, c-format msgid "You can drop %s instead." msgstr "Ви можете видалити %s замість цього." -#: catalog/dependency.c:1146 catalog/dependency.c:1155 +#: catalog/dependency.c:1097 catalog/dependency.c:1106 #, c-format msgid "%s depends on %s" msgstr "%s залежить від %s" -#: catalog/dependency.c:1170 catalog/dependency.c:1179 +#: catalog/dependency.c:1121 catalog/dependency.c:1130 #, c-format msgid "drop cascades to %s" msgstr "видалення поширюється (cascades) на об'єкт %s" -#: catalog/dependency.c:1187 catalog/pg_shdepend.c:823 +#: catalog/dependency.c:1138 catalog/pg_shdepend.c:868 #, c-format -msgid "" -"\n" +msgid "\n" "and %d other object (see server log for list)" -msgid_plural "" -"\n" +msgid_plural "\n" "and %d other objects (see server log for list)" -msgstr[0] "" -"\n" +msgstr[0] "\n" "і ще %d інших об'єктів (див. список у протоколі серверу)" -msgstr[1] "" -"\n" +msgstr[1] "\n" "і ще %d інші об'єкти (див. список у протоколі серверу)" -msgstr[2] "" -"\n" +msgstr[2] "\n" "і ще %d інших об'єктів (див. список у протоколі серверу)" -msgstr[3] "" -"\n" +msgstr[3] "\n" "і ще %d інших об'єктів (див. список у протоколі серверу)" -#: catalog/dependency.c:1199 +#: catalog/dependency.c:1150 #, c-format msgid "cannot drop %s because other objects depend on it" msgstr "неможливо видалити %s, тому що від нього залежать інші об'єкти" -#: catalog/dependency.c:1202 catalog/dependency.c:1209 -#: catalog/dependency.c:1220 commands/tablecmds.c:1335 -#: commands/tablecmds.c:14400 commands/tablespace.c:466 commands/user.c:1303 -#: commands/vacuum.c:211 commands/view.c:446 libpq/auth.c:326 -#: replication/logical/applyparallelworker.c:1044 replication/syncrep.c:1017 -#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1366 utils/misc/guc.c:3122 -#: utils/misc/guc.c:3158 utils/misc/guc.c:3228 utils/misc/guc.c:6632 -#: utils/misc/guc.c:6666 utils/misc/guc.c:6700 utils/misc/guc.c:6743 -#: utils/misc/guc.c:6785 +#: catalog/dependency.c:1153 catalog/dependency.c:1160 +#: catalog/dependency.c:1171 commands/tablecmds.c:1442 +#: commands/tablecmds.c:14986 commands/tablespace.c:460 commands/user.c:1302 +#: commands/vacuum.c:211 commands/view.c:441 executor/execExprInterp.c:4643 +#: executor/execExprInterp.c:4651 libpq/auth.c:324 +#: replication/logical/applyparallelworker.c:1041 replication/syncrep.c:1011 +#: storage/lmgr/deadlock.c:1134 storage/lmgr/proc.c:1427 utils/misc/guc.c:3169 +#: utils/misc/guc.c:3210 utils/misc/guc.c:3285 utils/misc/guc.c:6790 +#: utils/misc/guc.c:6824 utils/misc/guc.c:6858 utils/misc/guc.c:6901 +#: utils/misc/guc.c:6943 #, c-format msgid "%s" msgstr "%s" -#: catalog/dependency.c:1203 catalog/dependency.c:1210 +#: catalog/dependency.c:1154 catalog/dependency.c:1161 #, c-format msgid "Use DROP ... CASCADE to drop the dependent objects too." msgstr "Використайте DROP ... CASCADE для видалення залежних об'єктів також." -#: catalog/dependency.c:1207 +#: catalog/dependency.c:1158 #, c-format msgid "cannot drop desired object(s) because other objects depend on them" msgstr "не можна видалити бажаний(-і) об'єкт(-и) тому, що інші об'єкти залежні від нього(них)" -#: catalog/dependency.c:1215 +#: catalog/dependency.c:1166 #, c-format msgid "drop cascades to %d other object" msgid_plural "drop cascades to %d other objects" @@ -4478,679 +4793,679 @@ msgstr[1] "видалення поширюється (cascades) на ще %d і msgstr[2] "видалення поширюється (cascades) на ще %d інших об'єктів" msgstr[3] "видалення поширюється (cascades) на ще %d інших об'єктів" -#: catalog/dependency.c:1899 +#: catalog/dependency.c:1850 #, c-format msgid "constant of the type %s cannot be used here" msgstr "константа типу %s не може бути використана тут" -#: catalog/dependency.c:2420 parser/parse_relation.c:3404 -#: parser/parse_relation.c:3414 +#: catalog/dependency.c:2375 parser/parse_relation.c:3407 +#: parser/parse_relation.c:3417 #, c-format msgid "column %d of relation \"%s\" does not exist" msgstr "стовпець %d відношення \"%s\" не існує" -#: catalog/heap.c:324 +#: catalog/heap.c:325 #, c-format msgid "permission denied to create \"%s.%s\"" msgstr "немає дозволу для створення \"%s.%s\"" -#: catalog/heap.c:326 +#: catalog/heap.c:327 #, c-format msgid "System catalog modifications are currently disallowed." msgstr "Змінення системного каталогу наразі заборонено." -#: catalog/heap.c:466 commands/tablecmds.c:2374 commands/tablecmds.c:3047 -#: commands/tablecmds.c:6926 +#: catalog/heap.c:467 commands/tablecmds.c:2478 commands/tablecmds.c:2900 +#: commands/tablecmds.c:7140 #, c-format msgid "tables can have at most %d columns" msgstr "таблиці можуть містити максимум %d стовпців" -#: catalog/heap.c:484 commands/tablecmds.c:7233 +#: catalog/heap.c:485 commands/tablecmds.c:7409 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "ім'я стовпця \"%s\" конфліктує з системним іменем стовпця" -#: catalog/heap.c:500 +#: catalog/heap.c:501 #, c-format msgid "column name \"%s\" specified more than once" msgstr "ім'я стовпця \"%s\" вказано кілька разів" #. translator: first %s is an integer not a name -#: catalog/heap.c:575 +#: catalog/heap.c:579 #, c-format msgid "partition key column %s has pseudo-type %s" msgstr "стовпець ключа секціонування %s має псевдотип %s" -#: catalog/heap.c:580 +#: catalog/heap.c:584 #, c-format msgid "column \"%s\" has pseudo-type %s" msgstr "стовпець \"%s\" має псевдо-тип %s" -#: catalog/heap.c:611 +#: catalog/heap.c:615 #, c-format msgid "composite type %s cannot be made a member of itself" msgstr "складений тип %s не може містити сам себе" #. translator: first %s is an integer not a name -#: catalog/heap.c:666 +#: catalog/heap.c:670 #, c-format msgid "no collation was derived for partition key column %s with collatable type %s" msgstr "для стовпця ключа секціонування \"%s\" з сортируючим типом %s не вдалося отримати параметри сортування" -#: catalog/heap.c:672 commands/createas.c:203 commands/createas.c:512 +#: catalog/heap.c:676 commands/createas.c:198 commands/createas.c:505 #, c-format msgid "no collation was derived for column \"%s\" with collatable type %s" msgstr "для стовпця \"%s\" із сортувальним типом %s не вдалося отримати параметри сортування" -#: catalog/heap.c:1148 catalog/index.c:887 commands/createas.c:408 -#: commands/tablecmds.c:3987 +#: catalog/heap.c:1161 catalog/index.c:899 commands/createas.c:401 +#: commands/tablecmds.c:4149 #, c-format msgid "relation \"%s\" already exists" msgstr "відношення \"%s\" вже існує" -#: catalog/heap.c:1164 catalog/pg_type.c:434 catalog/pg_type.c:782 -#: catalog/pg_type.c:954 commands/typecmds.c:249 commands/typecmds.c:261 -#: commands/typecmds.c:754 commands/typecmds.c:1169 commands/typecmds.c:1395 -#: commands/typecmds.c:1575 commands/typecmds.c:2546 +#: catalog/heap.c:1177 catalog/pg_type.c:434 catalog/pg_type.c:805 +#: catalog/pg_type.c:977 commands/typecmds.c:253 commands/typecmds.c:265 +#: commands/typecmds.c:758 commands/typecmds.c:1179 commands/typecmds.c:1405 +#: commands/typecmds.c:1585 commands/typecmds.c:2556 #, c-format msgid "type \"%s\" already exists" msgstr "тип \"%s\" вже існує" -#: catalog/heap.c:1165 +#: catalog/heap.c:1178 #, 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 "З відношенням вже пов'язаний тип з таким самим іменем, тому виберіть ім'я, яке не буде конфліктувати з типами, що існують." -#: catalog/heap.c:1205 +#: catalog/heap.c:1218 #, c-format msgid "toast relfilenumber value not set when in binary upgrade mode" msgstr "значення toast relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/heap.c:1216 +#: catalog/heap.c:1229 #, c-format msgid "pg_class heap OID value not set when in binary upgrade mode" msgstr "значення OID в pg_class не задано в режимі двійкового оновлення" -#: catalog/heap.c:1226 +#: catalog/heap.c:1239 #, c-format msgid "relfilenumber value not set when in binary upgrade mode" msgstr "значення relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/heap.c:2119 +#: catalog/heap.c:2128 #, c-format msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "не можна додати обмеження NO INHERIT до секціонованої таблиці \"%s\"" -#: catalog/heap.c:2394 +#: catalog/heap.c:2400 #, c-format msgid "check constraint \"%s\" already exists" msgstr "обмеження перевірки \"%s\" вже інсує" -#: catalog/heap.c:2564 catalog/index.c:901 catalog/pg_constraint.c:682 -#: commands/tablecmds.c:8908 +#: catalog/heap.c:2572 catalog/index.c:913 catalog/pg_constraint.c:724 +#: commands/tablecmds.c:9333 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "обмеження \"%s\" відношення \"%s\" вже існує" -#: catalog/heap.c:2571 +#: catalog/heap.c:2579 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з неуспадкованим обмеженням відношення \"%s\"" -#: catalog/heap.c:2582 +#: catalog/heap.c:2590 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з успадкованим обмеженням відношення \"%s\"" -#: catalog/heap.c:2592 +#: catalog/heap.c:2600 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "обмеження \"%s\" конфліктує з обмеженням NOT VALID в відношенні \"%s\"" -#: catalog/heap.c:2597 +#: catalog/heap.c:2605 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "злиття обмеження \"%s\" з успадкованим визначенням" -#: catalog/heap.c:2623 catalog/pg_constraint.c:811 commands/tablecmds.c:2672 -#: commands/tablecmds.c:3199 commands/tablecmds.c:6858 -#: commands/tablecmds.c:15222 commands/tablecmds.c:15363 +#: catalog/heap.c:2631 catalog/pg_constraint.c:853 commands/tablecmds.c:3057 +#: commands/tablecmds.c:3360 commands/tablecmds.c:7066 +#: commands/tablecmds.c:15804 commands/tablecmds.c:15935 #, c-format msgid "too many inheritance parents" msgstr "занадто багато батьків наслідування" -#: catalog/heap.c:2707 +#: catalog/heap.c:2715 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "в виразі створення стовпця не можна використовувати згенерований стовпець \"%s\"" -#: catalog/heap.c:2709 +#: catalog/heap.c:2717 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Згенерований стовпець не може посилатися на інший згенерований стовпець." -#: catalog/heap.c:2715 +#: catalog/heap.c:2723 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "у виразі створення стовпців не можна використовувати змінну усього рядка" -#: catalog/heap.c:2716 +#: catalog/heap.c:2724 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Це призведе до того, що згенерований стовпець буде залежати від власного значення." -#: catalog/heap.c:2771 +#: catalog/heap.c:2779 #, c-format msgid "generation expression is not immutable" msgstr "вираз генерації не є незмінним" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1297 +#: catalog/heap.c:2807 rewrite/rewriteHandler.c:1282 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "стовпець \"%s\" має тип %s, але тип виразу за замовчуванням %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2742 -#: parser/parse_target.c:593 parser/parse_target.c:874 -#: parser/parse_target.c:884 rewrite/rewriteHandler.c:1302 +#: catalog/heap.c:2812 commands/prepare.c:331 parser/analyze.c:2758 +#: parser/parse_target.c:592 parser/parse_target.c:882 +#: parser/parse_target.c:892 rewrite/rewriteHandler.c:1287 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Потрібно буде переписати або привести вираз." -#: catalog/heap.c:2851 +#: catalog/heap.c:2859 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в обмеженні-перевірці можна посилатися лише на таблицю \"%s\"" -#: catalog/heap.c:3157 +#: catalog/heap.c:3165 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "непідтримуване поєднання зовнішнього ключа з ON COMMIT" -#: catalog/heap.c:3158 +#: catalog/heap.c:3166 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Таблиця \"%s\" посилається на \"%s\", але вони не мають той же параметр ON COMMIT." -#: catalog/heap.c:3163 +#: catalog/heap.c:3171 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "скоротити таблицю, на яку посилається зовнішній ключ, не можливо" -#: catalog/heap.c:3164 +#: catalog/heap.c:3172 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблиця \"%s\" посилається на \"%s\"." -#: catalog/heap.c:3166 +#: catalog/heap.c:3174 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Скоротіть таблицю \"%s\" паралельно або використайте TRUNCATE ... CASCADE." -#: catalog/index.c:225 parser/parse_utilcmd.c:2179 +#: catalog/index.c:219 parser/parse_utilcmd.c:2176 #, c-format msgid "multiple primary keys for table \"%s\" are not allowed" msgstr "таблиця \"%s\" не може містити кілька первинних ключів" -#: catalog/index.c:239 +#: catalog/index.c:233 #, c-format msgid "primary keys cannot use NULLS NOT DISTINCT indexes" msgstr "первинні ключі не можуть використовувати NULLS NOT DISTINCT індекси" -#: catalog/index.c:256 +#: catalog/index.c:250 #, c-format msgid "primary keys cannot be expressions" msgstr "первинні ключі не можуть бути виразами" -#: catalog/index.c:273 +#: catalog/index.c:267 #, c-format msgid "primary key column \"%s\" is not marked NOT NULL" msgstr "стовпець первинного ключа \"%s\" не позначений як NOT NULL" -#: catalog/index.c:786 catalog/index.c:1942 +#: catalog/index.c:798 catalog/index.c:1915 #, c-format msgid "user-defined indexes on system catalog tables are not supported" msgstr "користувацькі індекси в таблицях системного каталогу не підтримуються" -#: catalog/index.c:826 +#: catalog/index.c:838 #, c-format msgid "nondeterministic collations are not supported for operator class \"%s\"" msgstr "недетерміновані правила сортування не підтримуються для класу операторів \"%s\"" -#: catalog/index.c:841 +#: catalog/index.c:853 #, c-format msgid "concurrent index creation on system catalog tables is not supported" msgstr "паралельне створення індексу в таблицях системного каталогу не підтримується" -#: catalog/index.c:850 catalog/index.c:1318 +#: catalog/index.c:862 catalog/index.c:1331 #, c-format msgid "concurrent index creation for exclusion constraints is not supported" msgstr "парарельне створення індексу для обмежень-виключень не підтримується" -#: catalog/index.c:859 +#: catalog/index.c:871 #, c-format msgid "shared indexes cannot be created after initdb" msgstr "не можливо створити спільні індекси після initdb" -#: catalog/index.c:879 commands/createas.c:423 commands/sequence.c:158 +#: catalog/index.c:891 commands/createas.c:416 commands/sequence.c:159 #: parser/parse_utilcmd.c:209 #, c-format msgid "relation \"%s\" already exists, skipping" msgstr "ввідношення \"%s\" вже існує, пропускаємо" -#: catalog/index.c:929 +#: catalog/index.c:941 #, c-format msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "значення OID індекса в pg_class не встановлено в режимі двійкового оновлення" -#: catalog/index.c:939 utils/cache/relcache.c:3731 +#: catalog/index.c:951 utils/cache/relcache.c:3790 #, c-format msgid "index relfilenumber value not set when in binary upgrade mode" msgstr "значення індексу relfilenumber не встановлено в режимі двійкового оновлення" -#: catalog/index.c:2241 +#: catalog/index.c:2214 #, c-format msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY повинен бути першою дією в транзакції" -#: catalog/index.c:3675 +#: catalog/index.c:3670 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "повторно індексувати тимчасові таблиці інших сеансів не можна" -#: catalog/index.c:3686 commands/indexcmds.c:3607 +#: catalog/index.c:3681 commands/indexcmds.c:3653 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "переіндексувати неприпустимий індекс в таблиці TOAST не можна" -#: catalog/index.c:3702 commands/indexcmds.c:3487 commands/indexcmds.c:3631 -#: commands/tablecmds.c:3402 +#: catalog/index.c:3697 commands/indexcmds.c:3531 commands/indexcmds.c:3677 +#: commands/tablecmds.c:3564 #, c-format msgid "cannot move system relation \"%s\"" msgstr "перемістити системне відношення \"%s\" не можна" -#: catalog/index.c:3846 +#: catalog/index.c:3834 #, c-format msgid "index \"%s\" was reindexed" msgstr "індекс \"%s\" був перебудований" -#: catalog/index.c:3983 +#: catalog/index.c:4000 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "переіндексувати неприпустимий індекс \"%s.%s\" в таблиці TOAST не можна, пропускається" -#: catalog/namespace.c:260 catalog/namespace.c:464 catalog/namespace.c:556 -#: commands/trigger.c:5736 +#: catalog/namespace.c:447 catalog/namespace.c:651 catalog/namespace.c:743 +#: commands/trigger.c:5731 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "cross-database посилання не реалізовані: \"%s.%s.%s\"" -#: catalog/namespace.c:317 +#: catalog/namespace.c:504 #, c-format msgid "temporary tables cannot specify a schema name" msgstr "для тимчасових таблиць ім'я схеми не вказується" -#: catalog/namespace.c:398 +#: catalog/namespace.c:585 #, c-format msgid "could not obtain lock on relation \"%s.%s\"" msgstr "не вдалося отримати блокування зв'язку \"%s.%s\"" -#: catalog/namespace.c:403 commands/lockcmds.c:144 commands/lockcmds.c:224 +#: catalog/namespace.c:590 commands/lockcmds.c:143 commands/lockcmds.c:223 #, c-format msgid "could not obtain lock on relation \"%s\"" msgstr "не вдалося отримати блокування зв'язку \"%s\"" -#: catalog/namespace.c:431 parser/parse_relation.c:1430 +#: catalog/namespace.c:618 parser/parse_relation.c:1430 #, c-format msgid "relation \"%s.%s\" does not exist" msgstr "відношення \"%s.%s\" не існує" -#: catalog/namespace.c:436 parser/parse_relation.c:1443 +#: catalog/namespace.c:623 parser/parse_relation.c:1443 #: parser/parse_relation.c:1451 utils/adt/regproc.c:913 #, c-format msgid "relation \"%s\" does not exist" msgstr "відношення \"%s\" не існує" -#: catalog/namespace.c:502 catalog/namespace.c:3073 commands/extension.c:1611 -#: commands/extension.c:1617 +#: catalog/namespace.c:689 catalog/namespace.c:3507 commands/extension.c:1607 +#: commands/extension.c:1613 #, c-format msgid "no schema has been selected to create in" msgstr "не вибрано схему для створення об'єктів" -#: catalog/namespace.c:654 catalog/namespace.c:667 +#: catalog/namespace.c:841 catalog/namespace.c:854 #, c-format msgid "cannot create relations in temporary schemas of other sessions" msgstr "неможливо створити відношення в тимчасових схемах з інших сеансів" -#: catalog/namespace.c:658 +#: catalog/namespace.c:845 #, c-format msgid "cannot create temporary relation in non-temporary schema" msgstr "неможливо створити тимчасове відношення в не тимчасовій схемі" -#: catalog/namespace.c:673 +#: catalog/namespace.c:860 #, c-format msgid "only temporary relations may be created in temporary schemas" msgstr "в тимчасових схемах можуть бути створені тільки тимчасові відношення" -#: catalog/namespace.c:2265 +#: catalog/namespace.c:2604 #, c-format msgid "statistics object \"%s\" does not exist" msgstr "об'єкт статистики \"%s\" не існує" -#: catalog/namespace.c:2388 +#: catalog/namespace.c:2746 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "парсер текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2514 utils/adt/regproc.c:1439 +#: catalog/namespace.c:2891 utils/adt/regproc.c:1459 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "словник текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2641 +#: catalog/namespace.c:3037 #, c-format msgid "text search template \"%s\" does not exist" msgstr "шаблон текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2767 commands/tsearchcmds.c:1168 -#: utils/adt/regproc.c:1329 utils/cache/ts_cache.c:635 +#: catalog/namespace.c:3182 commands/tsearchcmds.c:1168 +#: utils/adt/regproc.c:1349 utils/cache/ts_cache.c:635 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "конфігурація текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2880 parser/parse_expr.c:832 parser/parse_target.c:1246 +#: catalog/namespace.c:3314 parser/parse_expr.c:868 parser/parse_target.c:1259 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: catalog/namespace.c:2886 parser/parse_expr.c:839 parser/parse_target.c:1253 -#: gram.y:18569 gram.y:18609 +#: catalog/namespace.c:3320 parser/parse_expr.c:875 parser/parse_target.c:1266 +#: gram.y:19181 gram.y:19221 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: catalog/namespace.c:3016 +#: catalog/namespace.c:3450 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "не можна переміщати об'єкти в або з тимчасових схем" -#: catalog/namespace.c:3022 +#: catalog/namespace.c:3456 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "не можна переміщати об'єкти в або з схем TOAST" -#: catalog/namespace.c:3095 commands/schemacmds.c:264 commands/schemacmds.c:344 -#: commands/tablecmds.c:1280 utils/adt/regproc.c:1668 +#: catalog/namespace.c:3529 commands/schemacmds.c:264 commands/schemacmds.c:344 +#: commands/tablecmds.c:1387 utils/adt/regproc.c:1688 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не існує" -#: catalog/namespace.c:3126 +#: catalog/namespace.c:3560 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: catalog/namespace.c:3693 utils/adt/regproc.c:1056 +#: catalog/namespace.c:4001 utils/adt/regproc.c:1056 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "правило сортування \"%s\" для кодування \"%s\" не існує" -#: catalog/namespace.c:3748 +#: catalog/namespace.c:4056 #, c-format msgid "conversion \"%s\" does not exist" msgstr "перетворення\"%s\" не існує" -#: catalog/namespace.c:4012 +#: catalog/namespace.c:4397 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "немає дозволу для створення тимчасових таблиць в базі даних \"%s\"" -#: catalog/namespace.c:4028 +#: catalog/namespace.c:4413 #, c-format msgid "cannot create temporary tables during recovery" msgstr "не можна створити тимчасові таблиці під час відновлення" -#: catalog/namespace.c:4034 +#: catalog/namespace.c:4419 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "не можна створити тимчасові таблиці під час паралельної операції" -#: catalog/objectaddress.c:1409 commands/policy.c:96 commands/policy.c:376 -#: commands/tablecmds.c:248 commands/tablecmds.c:290 commands/tablecmds.c:2206 -#: commands/tablecmds.c:12369 +#: catalog/objectaddress.c:1371 commands/policy.c:93 commands/policy.c:373 +#: commands/tablecmds.c:257 commands/tablecmds.c:299 commands/tablecmds.c:2310 +#: commands/tablecmds.c:12823 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" не є таблицею" -#: catalog/objectaddress.c:1416 commands/tablecmds.c:260 -#: commands/tablecmds.c:17163 commands/view.c:119 +#: catalog/objectaddress.c:1378 commands/tablecmds.c:269 +#: commands/tablecmds.c:17741 commands/view.c:114 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" не є поданням" -#: catalog/objectaddress.c:1423 commands/matview.c:186 commands/tablecmds.c:266 -#: commands/tablecmds.c:17168 +#: catalog/objectaddress.c:1385 commands/matview.c:199 commands/tablecmds.c:275 +#: commands/tablecmds.c:17746 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" не є матеріалізованим поданням" -#: catalog/objectaddress.c:1430 commands/tablecmds.c:284 -#: commands/tablecmds.c:17173 +#: catalog/objectaddress.c:1392 commands/tablecmds.c:293 +#: commands/tablecmds.c:17751 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" не є сторонньою таблицею" -#: catalog/objectaddress.c:1471 +#: catalog/objectaddress.c:1433 #, c-format msgid "must specify relation and object name" msgstr "треба вказати відношення й ім'я об'єкта" -#: catalog/objectaddress.c:1547 catalog/objectaddress.c:1600 +#: catalog/objectaddress.c:1509 catalog/objectaddress.c:1562 #, c-format msgid "column name must be qualified" msgstr "слід вказати ім'я стовпця" -#: catalog/objectaddress.c:1619 +#: catalog/objectaddress.c:1581 #, c-format msgid "default value for column \"%s\" of relation \"%s\" does not exist" msgstr "значення за замовчуванням для стовпця \"%s\" відношення \"%s\" не існує" -#: catalog/objectaddress.c:1656 commands/functioncmds.c:137 -#: commands/tablecmds.c:276 commands/typecmds.c:274 commands/typecmds.c:3691 +#: catalog/objectaddress.c:1618 commands/functioncmds.c:132 +#: commands/tablecmds.c:285 commands/typecmds.c:278 commands/typecmds.c:3843 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:801 -#: utils/adt/acl.c:4441 +#: utils/adt/acl.c:4560 #, c-format msgid "type \"%s\" does not exist" msgstr "тип \"%s\" не існує" -#: catalog/objectaddress.c:1775 +#: catalog/objectaddress.c:1737 #, c-format msgid "operator %d (%s, %s) of %s does not exist" msgstr "оператор %d (%s, %s) з %s не існує" -#: catalog/objectaddress.c:1806 +#: catalog/objectaddress.c:1768 #, c-format msgid "function %d (%s, %s) of %s does not exist" msgstr "функція %d (%s, %s) з %s не існує" -#: catalog/objectaddress.c:1857 catalog/objectaddress.c:1883 +#: catalog/objectaddress.c:1819 catalog/objectaddress.c:1845 #, c-format msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "відображення користувача для користувача \"%s\" на сервері \"%s\"не існує" -#: catalog/objectaddress.c:1872 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:700 +#: catalog/objectaddress.c:1834 commands/foreigncmds.c:430 +#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:713 #, c-format msgid "server \"%s\" does not exist" msgstr "сервер \"%s\" не існує" -#: catalog/objectaddress.c:1939 +#: catalog/objectaddress.c:1901 #, c-format msgid "publication relation \"%s\" in publication \"%s\" does not exist" msgstr "відношення публікації \"%s\" в публікації \"%s\" не існує" -#: catalog/objectaddress.c:1986 +#: catalog/objectaddress.c:1948 #, c-format msgid "publication schema \"%s\" in publication \"%s\" does not exist" msgstr "схема публікації \"%s\" в публікації \"%s\" не існує" -#: catalog/objectaddress.c:2044 +#: catalog/objectaddress.c:2006 #, c-format msgid "unrecognized default ACL object type \"%c\"" msgstr "нерозпізнаний тип об'єкта ACL за замовчуванням \"%c\"" -#: catalog/objectaddress.c:2045 +#: catalog/objectaddress.c:2007 #, c-format msgid "Valid object types are \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." msgstr "Припустимі типи об'єктів: \"%c\", \"%c\", \"%c\", \"%c\", \"%c\"." -#: catalog/objectaddress.c:2096 +#: catalog/objectaddress.c:2058 #, c-format msgid "default ACL for user \"%s\" in schema \"%s\" on %s does not exist" msgstr "ACL за замовчуванням для користувача \"%s\" в схемі \"%s\" для об'єкту %s не існує" -#: catalog/objectaddress.c:2101 +#: catalog/objectaddress.c:2063 #, c-format msgid "default ACL for user \"%s\" on %s does not exist" msgstr "ACL за замовчуванням для користувача \"%s\" і для об'єкту %s не існує" -#: catalog/objectaddress.c:2127 catalog/objectaddress.c:2184 -#: catalog/objectaddress.c:2239 +#: catalog/objectaddress.c:2089 catalog/objectaddress.c:2146 +#: catalog/objectaddress.c:2201 #, c-format msgid "name or argument lists may not contain nulls" msgstr "списки імен та аргументів не повинні містити Null" -#: catalog/objectaddress.c:2161 +#: catalog/objectaddress.c:2123 #, c-format msgid "unsupported object type \"%s\"" msgstr "непідтримуваний тип об'єкта \"%s\"" -#: catalog/objectaddress.c:2180 catalog/objectaddress.c:2197 -#: catalog/objectaddress.c:2262 catalog/objectaddress.c:2346 +#: catalog/objectaddress.c:2142 catalog/objectaddress.c:2159 +#: catalog/objectaddress.c:2224 catalog/objectaddress.c:2308 #, c-format msgid "name list length must be exactly %d" msgstr "довжина списку імен повинна бути точно %d" -#: catalog/objectaddress.c:2201 +#: catalog/objectaddress.c:2163 #, c-format msgid "large object OID may not be null" msgstr "OID великого об'єкта не повинно бути нулем" -#: catalog/objectaddress.c:2210 catalog/objectaddress.c:2280 -#: catalog/objectaddress.c:2287 +#: catalog/objectaddress.c:2172 catalog/objectaddress.c:2242 +#: catalog/objectaddress.c:2249 #, c-format msgid "name list length must be at least %d" msgstr "довжина списку імен повинна бути щонайменше %d" -#: catalog/objectaddress.c:2273 catalog/objectaddress.c:2294 +#: catalog/objectaddress.c:2235 catalog/objectaddress.c:2256 #, c-format msgid "argument list length must be exactly %d" msgstr "довжина списку аргументів повинна бути точно %d" -#: catalog/objectaddress.c:2508 libpq/be-fsstubs.c:329 +#: catalog/objectaddress.c:2470 libpq/be-fsstubs.c:329 #, c-format msgid "must be owner of large object %u" msgstr "треба бути власником великого об'єкта %u" -#: catalog/objectaddress.c:2523 commands/functioncmds.c:1561 +#: catalog/objectaddress.c:2485 commands/functioncmds.c:1560 #, c-format msgid "must be owner of type %s or type %s" msgstr "треба бути власником типу %s або типу %s" -#: catalog/objectaddress.c:2550 catalog/objectaddress.c:2559 -#: catalog/objectaddress.c:2565 +#: catalog/objectaddress.c:2512 catalog/objectaddress.c:2521 +#: catalog/objectaddress.c:2527 #, c-format msgid "permission denied" msgstr "немає доступу" -#: catalog/objectaddress.c:2551 catalog/objectaddress.c:2560 +#: catalog/objectaddress.c:2513 catalog/objectaddress.c:2522 #, c-format msgid "The current user must have the %s attribute." msgstr "Поточний користувач повинен мати атрибут %s." -#: catalog/objectaddress.c:2566 +#: catalog/objectaddress.c:2528 #, c-format msgid "The current user must have the %s option on role \"%s\"." msgstr "Поточний користувач повинен мати параметр %s для ролі \"%s\"." -#: catalog/objectaddress.c:2580 +#: catalog/objectaddress.c:2542 #, c-format msgid "must be superuser" msgstr "треба бути суперкористувачем" -#: catalog/objectaddress.c:2649 +#: catalog/objectaddress.c:2611 #, c-format msgid "unrecognized object type \"%s\"" msgstr "нерозпізнаний тип об'єкту \"%s\"" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:2941 +#: catalog/objectaddress.c:2903 #, c-format msgid "column %s of %s" msgstr "стовпець %s з %s" -#: catalog/objectaddress.c:2956 +#: catalog/objectaddress.c:2918 #, c-format msgid "function %s" msgstr "функція %s" -#: catalog/objectaddress.c:2969 +#: catalog/objectaddress.c:2931 #, c-format msgid "type %s" msgstr "тип %s" -#: catalog/objectaddress.c:3006 +#: catalog/objectaddress.c:2968 #, c-format msgid "cast from %s to %s" msgstr "приведення від %s до %s" -#: catalog/objectaddress.c:3039 +#: catalog/objectaddress.c:3001 #, c-format msgid "collation %s" msgstr "сортування %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3070 +#: catalog/objectaddress.c:3032 #, c-format msgid "constraint %s on %s" msgstr "обмеження %s на %s" -#: catalog/objectaddress.c:3076 +#: catalog/objectaddress.c:3038 #, c-format msgid "constraint %s" msgstr "обмеження %s" -#: catalog/objectaddress.c:3108 +#: catalog/objectaddress.c:3070 #, c-format msgid "conversion %s" msgstr "перетворення %s" #. translator: %s is typically "column %s of table %s" -#: catalog/objectaddress.c:3130 +#: catalog/objectaddress.c:3092 #, c-format msgid "default value for %s" msgstr "значення за замовчуванням для %s" -#: catalog/objectaddress.c:3141 +#: catalog/objectaddress.c:3103 #, c-format msgid "language %s" msgstr "мова %s" -#: catalog/objectaddress.c:3149 +#: catalog/objectaddress.c:3111 #, c-format msgid "large object %u" msgstr "великий об'єкт %u" -#: catalog/objectaddress.c:3162 +#: catalog/objectaddress.c:3124 #, c-format msgid "operator %s" msgstr "оператор %s" -#: catalog/objectaddress.c:3199 +#: catalog/objectaddress.c:3161 #, c-format msgid "operator class %s for access method %s" msgstr "клас операторів %s для методу доступу %s" -#: catalog/objectaddress.c:3227 +#: catalog/objectaddress.c:3189 #, c-format msgid "access method %s" msgstr "метод доступу %s" @@ -5159,7 +5474,7 @@ msgstr "метод доступу %s" #. 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:3276 +#: catalog/objectaddress.c:3238 #, c-format msgid "operator %d (%s, %s) of %s: %s" msgstr "оператор %d (%s, %s) з %s: %s" @@ -5168,236 +5483,236 @@ msgstr "оператор %d (%s, %s) з %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 #. function with arguments. -#: catalog/objectaddress.c:3333 +#: catalog/objectaddress.c:3295 #, 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:3385 +#: catalog/objectaddress.c:3347 #, c-format msgid "rule %s on %s" msgstr "правило %s на %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3431 +#: catalog/objectaddress.c:3393 #, c-format msgid "trigger %s on %s" msgstr "тригер %s на %s" -#: catalog/objectaddress.c:3451 +#: catalog/objectaddress.c:3413 #, c-format msgid "schema %s" msgstr "схема %s" -#: catalog/objectaddress.c:3479 +#: catalog/objectaddress.c:3441 #, c-format msgid "statistics object %s" msgstr "об'єкт статистики %s" -#: catalog/objectaddress.c:3510 +#: catalog/objectaddress.c:3472 #, c-format msgid "text search parser %s" msgstr "парсер текстового пошуку %s" -#: catalog/objectaddress.c:3541 +#: catalog/objectaddress.c:3503 #, c-format msgid "text search dictionary %s" msgstr "словник текстового пошуку %s" -#: catalog/objectaddress.c:3572 +#: catalog/objectaddress.c:3534 #, c-format msgid "text search template %s" msgstr "шаблон текстового пошуку %s" -#: catalog/objectaddress.c:3603 +#: catalog/objectaddress.c:3565 #, c-format msgid "text search configuration %s" msgstr "конфігурація текстового пошуку %s" -#: catalog/objectaddress.c:3616 +#: catalog/objectaddress.c:3578 #, c-format msgid "role %s" msgstr "роль %s" -#: catalog/objectaddress.c:3653 catalog/objectaddress.c:5505 +#: catalog/objectaddress.c:3615 catalog/objectaddress.c:5464 #, c-format msgid "membership of role %s in role %s" msgstr "членство ролі %s в ролі %s" -#: catalog/objectaddress.c:3674 +#: catalog/objectaddress.c:3636 #, c-format msgid "database %s" msgstr "база даних %s" -#: catalog/objectaddress.c:3690 +#: catalog/objectaddress.c:3652 #, c-format msgid "tablespace %s" msgstr "табличний простір %s" -#: catalog/objectaddress.c:3701 +#: catalog/objectaddress.c:3663 #, c-format msgid "foreign-data wrapper %s" msgstr "джерело сторонніх даних %s" -#: catalog/objectaddress.c:3711 +#: catalog/objectaddress.c:3673 #, c-format msgid "server %s" msgstr "сервер %s" -#: catalog/objectaddress.c:3744 +#: catalog/objectaddress.c:3706 #, c-format msgid "user mapping for %s on server %s" msgstr "зіставлення користувача для %s на сервері %s" -#: catalog/objectaddress.c:3796 +#: catalog/objectaddress.c:3758 #, c-format msgid "default privileges on new relations belonging to role %s in schema %s" msgstr "права за замовчуванням для нових відношень, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3800 +#: catalog/objectaddress.c:3762 #, c-format msgid "default privileges on new relations belonging to role %s" msgstr "права за замовчуванням для нових відношень, що належать ролі %s" -#: catalog/objectaddress.c:3806 +#: catalog/objectaddress.c:3768 #, c-format msgid "default privileges on new sequences belonging to role %s in schema %s" msgstr "права за замовчуванням для нових послідовностей, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3810 +#: catalog/objectaddress.c:3772 #, c-format msgid "default privileges on new sequences belonging to role %s" msgstr "права за замовчуванням для нових послідовностей, що належать ролі %s" -#: catalog/objectaddress.c:3816 +#: catalog/objectaddress.c:3778 #, c-format msgid "default privileges on new functions belonging to role %s in schema %s" msgstr "права за замовчуванням для нових функцій, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3820 +#: catalog/objectaddress.c:3782 #, c-format msgid "default privileges on new functions belonging to role %s" msgstr "права за замовчуванням для нових функцій, що належать ролі %s" -#: catalog/objectaddress.c:3826 +#: catalog/objectaddress.c:3788 #, c-format msgid "default privileges on new types belonging to role %s in schema %s" msgstr "права за замовчуванням для нових типів, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3830 +#: catalog/objectaddress.c:3792 #, c-format msgid "default privileges on new types belonging to role %s" msgstr "права за замовчуванням для нових типів, що належать ролі %s" -#: catalog/objectaddress.c:3836 +#: catalog/objectaddress.c:3798 #, c-format msgid "default privileges on new schemas belonging to role %s" msgstr "права за замовчуванням для нових схем, що належать ролі %s" -#: catalog/objectaddress.c:3843 +#: catalog/objectaddress.c:3805 #, c-format msgid "default privileges belonging to role %s in schema %s" msgstr "права за замовчуванням, що належать ролі %s в схемі %s" -#: catalog/objectaddress.c:3847 +#: catalog/objectaddress.c:3809 #, c-format msgid "default privileges belonging to role %s" msgstr "права за замовчуванням належать ролі %s" -#: catalog/objectaddress.c:3869 +#: catalog/objectaddress.c:3831 #, c-format msgid "extension %s" msgstr "розширення %s" -#: catalog/objectaddress.c:3886 +#: catalog/objectaddress.c:3848 #, c-format msgid "event trigger %s" msgstr "тригер подій %s" -#: catalog/objectaddress.c:3910 +#: catalog/objectaddress.c:3872 #, c-format msgid "parameter %s" msgstr "параметр %s" #. translator: second %s is, e.g., "table %s" -#: catalog/objectaddress.c:3953 +#: catalog/objectaddress.c:3915 #, c-format msgid "policy %s on %s" msgstr "політика %s на %s" -#: catalog/objectaddress.c:3967 +#: catalog/objectaddress.c:3929 #, c-format msgid "publication %s" msgstr "публікація %s" -#: catalog/objectaddress.c:3980 +#: catalog/objectaddress.c:3942 #, c-format msgid "publication of schema %s in publication %s" msgstr "публікація схеми %s в публікації %s" #. translator: first %s is, e.g., "table %s" -#: catalog/objectaddress.c:4011 +#: catalog/objectaddress.c:3973 #, c-format msgid "publication of %s in publication %s" msgstr "відношення публікації %s в публікації %s" -#: catalog/objectaddress.c:4024 +#: catalog/objectaddress.c:3986 #, c-format msgid "subscription %s" msgstr "підписка %s" -#: catalog/objectaddress.c:4045 +#: catalog/objectaddress.c:4007 #, c-format msgid "transform for %s language %s" msgstr "трансформація для %s мови %s" -#: catalog/objectaddress.c:4116 +#: catalog/objectaddress.c:4076 #, c-format msgid "table %s" msgstr "таблиця %s" -#: catalog/objectaddress.c:4121 +#: catalog/objectaddress.c:4081 #, c-format msgid "index %s" msgstr "індекс %s" -#: catalog/objectaddress.c:4125 +#: catalog/objectaddress.c:4085 #, c-format msgid "sequence %s" msgstr "послідовність %s" -#: catalog/objectaddress.c:4129 +#: catalog/objectaddress.c:4089 #, c-format msgid "toast table %s" msgstr "таблиця toast %s" -#: catalog/objectaddress.c:4133 +#: catalog/objectaddress.c:4093 #, c-format msgid "view %s" msgstr "подання %s" -#: catalog/objectaddress.c:4137 +#: catalog/objectaddress.c:4097 #, c-format msgid "materialized view %s" msgstr "матеріалізоване подання %s" -#: catalog/objectaddress.c:4141 +#: catalog/objectaddress.c:4101 #, c-format msgid "composite type %s" msgstr "складений тип %s" -#: catalog/objectaddress.c:4145 +#: catalog/objectaddress.c:4105 #, c-format msgid "foreign table %s" msgstr "зовнішня таблиця %s" -#: catalog/objectaddress.c:4150 +#: catalog/objectaddress.c:4110 #, c-format msgid "relation %s" msgstr "відношення %s" -#: catalog/objectaddress.c:4191 +#: catalog/objectaddress.c:4151 #, c-format msgid "operator family %s for access method %s" msgstr "сімейство операторів %s для методу доступу %s" @@ -5441,7 +5756,7 @@ msgstr "не можна пропустити початкове значення msgid "return type of inverse transition function %s is not %s" msgstr "інвертована функція переходу %s повинна повертати тип %s" -#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:3009 +#: catalog/pg_aggregate.c:352 executor/nodeWindowAgg.c:2992 #, c-format msgid "strictness of aggregate's forward and inverse transition functions must match" msgstr "пряма й інвертована функції переходу агрегату повинні мати однакову суворість" @@ -5456,7 +5771,7 @@ msgstr "фінальна функція з додатковими аргумен msgid "return type of combine function %s is not %s" msgstr "комбінуюча функція %s повинна повертати тип %s" -#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3903 +#: catalog/pg_aggregate.c:439 executor/nodeAgg.c:3902 #, c-format msgid "combine function with transition type %s must not be declared STRICT" msgstr "комбінуюча функція з перехідним типом %s не повинна оголошуватись як сувора (STRICT)" @@ -5471,12 +5786,12 @@ msgstr "функція серіалізації %s повинна поверта msgid "return type of deserialization function %s is not %s" msgstr "функція десеріалізації %s повинна повертати тип %s" -#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:191 catalog/pg_proc.c:225 +#: catalog/pg_aggregate.c:498 catalog/pg_proc.c:189 catalog/pg_proc.c:223 #, c-format msgid "cannot determine result data type" msgstr "не вдалося визначити тип результату" -#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:204 catalog/pg_proc.c:233 +#: catalog/pg_aggregate.c:513 catalog/pg_proc.c:202 catalog/pg_proc.c:231 #, c-format msgid "unsafe use of pseudo-type \"internal\"" msgstr "небезпечне використання псевдотипу (pseudo-type) \"internal\"" @@ -5491,7 +5806,7 @@ msgstr "реалізація рухомого агрегату повертає msgid "sort operator can only be specified for single-argument aggregates" msgstr "оператора сортування можна вказати лише для агрегатних функцій з одним аргументом" -#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:386 +#: catalog/pg_aggregate.c:706 catalog/pg_proc.c:384 #, c-format msgid "cannot change routine kind" msgstr "неможливо змінити тип підпрограми" @@ -5516,13 +5831,13 @@ msgstr "\"%s\" є агрегатом для гіпотетичних набор msgid "cannot change number of direct arguments of an aggregate function" msgstr "змінити кількість прямих аргументів агрегатної функції не можна" -#: catalog/pg_aggregate.c:858 commands/functioncmds.c:691 -#: commands/typecmds.c:1975 commands/typecmds.c:2021 commands/typecmds.c:2073 -#: commands/typecmds.c:2110 commands/typecmds.c:2144 commands/typecmds.c:2178 -#: commands/typecmds.c:2212 commands/typecmds.c:2241 commands/typecmds.c:2328 -#: commands/typecmds.c:2370 parser/parse_func.c:417 parser/parse_func.c:448 +#: catalog/pg_aggregate.c:858 commands/functioncmds.c:686 +#: commands/typecmds.c:1985 commands/typecmds.c:2031 commands/typecmds.c:2083 +#: commands/typecmds.c:2120 commands/typecmds.c:2154 commands/typecmds.c:2188 +#: commands/typecmds.c:2222 commands/typecmds.c:2251 commands/typecmds.c:2338 +#: commands/typecmds.c:2380 parser/parse_func.c:417 parser/parse_func.c:448 #: parser/parse_func.c:475 parser/parse_func.c:489 parser/parse_func.c:611 -#: parser/parse_func.c:631 parser/parse_func.c:2171 parser/parse_func.c:2444 +#: parser/parse_func.c:631 parser/parse_func.c:2172 parser/parse_func.c:2445 #, c-format msgid "function %s does not exist" msgstr "функції %s не існує" @@ -5597,133 +5912,133 @@ msgstr "Ця операція не підтримується для секці msgid "This operation is not supported for partitioned indexes." msgstr "Ця операція не підтримується для секціонованих індексів." -#: catalog/pg_collation.c:102 catalog/pg_collation.c:160 +#: catalog/pg_collation.c:101 catalog/pg_collation.c:159 #, c-format msgid "collation \"%s\" already exists, skipping" msgstr "сортування \"%s\" вже існує, пропускаємо" -#: catalog/pg_collation.c:104 +#: catalog/pg_collation.c:103 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists, skipping" msgstr "правило сортування \"%s \" для кодування \"%s\" вже існує, пропускаємо" -#: catalog/pg_collation.c:112 catalog/pg_collation.c:167 +#: catalog/pg_collation.c:111 catalog/pg_collation.c:166 #, c-format msgid "collation \"%s\" already exists" msgstr "правило сортування \"%s\" вже існує" -#: catalog/pg_collation.c:114 +#: catalog/pg_collation.c:113 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "правило сортування \"%s \" для кодування \"%s\" вже існує" -#: catalog/pg_constraint.c:690 +#: catalog/pg_constraint.c:732 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "обмеження \"%s\" для домену %s вже існує" -#: catalog/pg_constraint.c:890 catalog/pg_constraint.c:983 +#: catalog/pg_constraint.c:932 catalog/pg_constraint.c:1025 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "індексу \"%s\" для таблиці \"%s\" не існує" -#: catalog/pg_constraint.c:1083 +#: catalog/pg_constraint.c:1125 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "обмеження \"%s\" для домену \"%s\" не існує" -#: catalog/pg_conversion.c:67 +#: catalog/pg_conversion.c:64 #, c-format msgid "conversion \"%s\" already exists" msgstr "перетворення \"%s\" вже існує" -#: catalog/pg_conversion.c:80 +#: catalog/pg_conversion.c:77 #, c-format msgid "default conversion for %s to %s already exists" msgstr "перетворення за замовчуванням від %s до %s вже існує" -#: catalog/pg_depend.c:222 commands/extension.c:3368 +#: catalog/pg_depend.c:224 commands/extension.c:3397 #, c-format msgid "%s is already a member of extension \"%s\"" msgstr "%s вже є членом розширення \"%s\"" -#: catalog/pg_depend.c:229 catalog/pg_depend.c:280 commands/extension.c:3408 +#: catalog/pg_depend.c:231 catalog/pg_depend.c:282 commands/extension.c:3437 #, c-format msgid "%s is not a member of extension \"%s\"" msgstr "%s не є членом розширення \"%s\"" -#: catalog/pg_depend.c:232 +#: catalog/pg_depend.c:234 #, c-format msgid "An extension is not allowed to replace an object that it does not own." msgstr "Розширенню не дозволяється замінювати об'єкт, який йому не належить." -#: catalog/pg_depend.c:283 +#: catalog/pg_depend.c:285 #, c-format msgid "An extension may only use CREATE ... IF NOT EXISTS to skip object creation if the conflicting object is one that it already owns." msgstr "Розширення може використовувати лише CREATE ... IF NOT EXISTS, щоб пропустити створення об'єкту, якщо конфліктуючий об'єкт уже належить йому." -#: catalog/pg_depend.c:646 +#: catalog/pg_depend.c:648 #, c-format msgid "cannot remove dependency on %s because it is a system object" msgstr "неможливо видалити залежність від об'єкта %s, тому що це системний об'єкт" -#: catalog/pg_enum.c:137 catalog/pg_enum.c:259 catalog/pg_enum.c:554 +#: catalog/pg_enum.c:175 catalog/pg_enum.c:314 catalog/pg_enum.c:624 #, c-format msgid "invalid enum label \"%s\"" msgstr "неприпустима мітка перераховування \"%s\"" -#: catalog/pg_enum.c:138 catalog/pg_enum.c:260 catalog/pg_enum.c:555 +#: catalog/pg_enum.c:176 catalog/pg_enum.c:315 catalog/pg_enum.c:625 #, c-format msgid "Labels must be %d bytes or less." msgstr "Мітки повинні бути %d байт або менше." -#: catalog/pg_enum.c:288 +#: catalog/pg_enum.c:343 #, c-format msgid "enum label \"%s\" already exists, skipping" msgstr "мітка перераховування \"%s\" вже існує, пропускаємо" -#: catalog/pg_enum.c:295 catalog/pg_enum.c:598 +#: catalog/pg_enum.c:350 catalog/pg_enum.c:668 #, c-format msgid "enum label \"%s\" already exists" msgstr "мітка перераховування \"%s\" вже існує" -#: catalog/pg_enum.c:350 catalog/pg_enum.c:593 +#: catalog/pg_enum.c:405 catalog/pg_enum.c:663 #, c-format msgid "\"%s\" is not an existing enum label" msgstr "\"%s\" не є існуючою міткою перераховування" -#: catalog/pg_enum.c:408 +#: catalog/pg_enum.c:463 #, c-format msgid "pg_enum OID value not set when in binary upgrade mode" msgstr "значення OID в pg_enum не встановлено в режимі двійкового оновлення" -#: catalog/pg_enum.c:418 +#: catalog/pg_enum.c:473 #, c-format msgid "ALTER TYPE ADD BEFORE/AFTER is incompatible with binary upgrade" msgstr "Конструкція ALTER TYPE ADD BEFORE/AFTER несумісна з двійковим оновленням даних" -#: catalog/pg_inherits.c:593 +#: catalog/pg_inherits.c:592 #, c-format msgid "cannot detach partition \"%s\"" msgstr "не можна відключити розділ \"%s\"" -#: catalog/pg_inherits.c:595 +#: catalog/pg_inherits.c:594 #, c-format msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "Розділ відключається одночасно або має незакінчене відключення." -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4583 -#: commands/tablecmds.c:15478 +#: catalog/pg_inherits.c:595 commands/tablecmds.c:4777 +#: commands/tablecmds.c:16050 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Використайте ALTER TABLE ... DETACH PARTITION ... FINALIZE щоб завершити очікувану операцію відключення." -#: catalog/pg_inherits.c:600 +#: catalog/pg_inherits.c:599 #, c-format msgid "cannot complete detaching partition \"%s\"" msgstr "не можна завершити відключення розділу \"%s\"" -#: catalog/pg_inherits.c:602 +#: catalog/pg_inherits.c:601 #, c-format msgid "There's no pending concurrent detach." msgstr "Немає жодного очікуючого паралельного відключення." @@ -5733,77 +6048,92 @@ msgstr "Немає жодного очікуючого паралельного msgid "schema \"%s\" already exists" msgstr "схема \"%s\" вже існує" -#: catalog/pg_operator.c:219 catalog/pg_operator.c:361 +#: catalog/pg_operator.c:213 catalog/pg_operator.c:355 #, c-format msgid "\"%s\" is not a valid operator name" msgstr "\"%s\" не є коректним оператором" -#: catalog/pg_operator.c:370 +#: catalog/pg_operator.c:379 +#, c-format +msgid "operator %s already exists" +msgstr "оператор %s вже існує" + +#: catalog/pg_operator.c:445 commands/operatorcmds.c:600 +#, c-format +msgid "operator cannot be its own negator" +msgstr "оператор не може бути власним запереченням" + +#: catalog/pg_operator.c:572 #, c-format msgid "only binary operators can have commutators" msgstr "(commutators) можна визначити лише для бінарних операторів" -#: catalog/pg_operator.c:374 commands/operatorcmds.c:509 +#: catalog/pg_operator.c:576 #, c-format msgid "only binary operators can have join selectivity" msgstr "функцію оцінки з'єднання можливо визначити лише для бінарних операторів" -#: catalog/pg_operator.c:378 +#: catalog/pg_operator.c:580 #, c-format msgid "only binary operators can merge join" msgstr "підтримку з'єднання злиттям можливо позначити лише для бінарних операторів" -#: catalog/pg_operator.c:382 +#: catalog/pg_operator.c:584 #, c-format msgid "only binary operators can hash" msgstr "підтримка хешу можливо позначити лише для бінарних операторів" -#: catalog/pg_operator.c:393 +#: catalog/pg_operator.c:593 #, c-format msgid "only boolean operators can have negators" msgstr "зворотню операцію можливо визначити лише для логічних операторів" -#: catalog/pg_operator.c:397 commands/operatorcmds.c:517 +#: catalog/pg_operator.c:597 #, c-format msgid "only boolean operators can have restriction selectivity" msgstr "функцію оцінки обмеження можливо визначити лише для логічних операторів" -#: catalog/pg_operator.c:401 commands/operatorcmds.c:521 +#: catalog/pg_operator.c:601 #, c-format msgid "only boolean operators can have join selectivity" msgstr "функцію оцінки з'єднання можливо визначити лише для логічних операторів" -#: catalog/pg_operator.c:405 +#: catalog/pg_operator.c:605 #, c-format msgid "only boolean operators can merge join" msgstr "підтримку з'єднання злиттям можливо позначити лише для логічних операторів" -#: catalog/pg_operator.c:409 +#: catalog/pg_operator.c:609 #, c-format msgid "only boolean operators can hash" msgstr "підтримку хешу можливо позначити лише для логічних операторів" -#: catalog/pg_operator.c:421 +#: catalog/pg_operator.c:739 #, c-format -msgid "operator %s already exists" -msgstr "оператор %s вже існує" +msgid "commutator operator %s is already the commutator of operator %s" +msgstr "оператор комутатора %s вже є комутатором оператора %s" -#: catalog/pg_operator.c:621 +#: catalog/pg_operator.c:744 #, c-format -msgid "operator cannot be its own negator or sort operator" -msgstr "оператор не може бути зворотнім до себе або власним оператором сортування" +msgid "commutator operator %s is already the commutator of operator %u" +msgstr "оператор комутатора %s вже є комутатором оператора %u" -#: catalog/pg_parameter_acl.c:53 +#: catalog/pg_operator.c:807 #, c-format -msgid "parameter ACL \"%s\" does not exist" -msgstr "параметр ACL \"%s\" не існує" +msgid "negator operator %s is already the negator of operator %s" +msgstr "оператор заперечення %s вже є запереченням оператора %s" -#: catalog/pg_parameter_acl.c:88 +#: catalog/pg_operator.c:812 #, c-format -msgid "invalid parameter name \"%s\"" -msgstr "неприпустима назва параметру \"%s\"" +msgid "negator operator %s is already the negator of operator %u" +msgstr "заперечний оператор %s вже є запереченням оператора %u" + +#: catalog/pg_parameter_acl.c:50 +#, c-format +msgid "parameter ACL \"%s\" does not exist" +msgstr "параметр ACL \"%s\" не існує" -#: catalog/pg_proc.c:132 parser/parse_func.c:2233 +#: catalog/pg_proc.c:130 parser/parse_func.c:2234 #, c-format msgid "functions cannot have more than %d argument" msgid_plural "functions cannot have more than %d arguments" @@ -5812,37 +6142,37 @@ msgstr[1] "функції не можуть мати більше %d аргум msgstr[2] "функції не можуть мати більше %d аргументів" msgstr[3] "функції не можуть мати більше %d аргументів" -#: catalog/pg_proc.c:376 +#: catalog/pg_proc.c:374 #, c-format msgid "function \"%s\" already exists with same argument types" msgstr "функція \"%s\" з аргументами таких типів вже існує" -#: catalog/pg_proc.c:388 +#: catalog/pg_proc.c:386 #, c-format msgid "\"%s\" is an aggregate function." msgstr "\"%s\" є функцією агрегату." -#: catalog/pg_proc.c:390 +#: catalog/pg_proc.c:388 #, c-format msgid "\"%s\" is a function." msgstr "\"%s\" є функцією." -#: catalog/pg_proc.c:392 +#: catalog/pg_proc.c:390 #, c-format msgid "\"%s\" is a procedure." msgstr "\"%s\" є процедурою." -#: catalog/pg_proc.c:394 +#: catalog/pg_proc.c:392 #, c-format msgid "\"%s\" is a window function." msgstr "\"%s\" є функцією вікна." -#: catalog/pg_proc.c:414 +#: catalog/pg_proc.c:412 #, c-format msgid "cannot change whether a procedure has output parameters" msgstr "неможливо визначити вихідні параметри для процедури" -#: catalog/pg_proc.c:415 catalog/pg_proc.c:445 +#: catalog/pg_proc.c:413 catalog/pg_proc.c:443 #, c-format msgid "cannot change return type of existing function" msgstr "неможливо змінити тип повернення існуючої функції" @@ -5851,171 +6181,170 @@ msgstr "неможливо змінити тип повернення існую #. AGGREGATE #. #. translator: first %s is DROP FUNCTION or DROP PROCEDURE -#: catalog/pg_proc.c:421 catalog/pg_proc.c:448 catalog/pg_proc.c:493 -#: catalog/pg_proc.c:519 catalog/pg_proc.c:543 +#: catalog/pg_proc.c:419 catalog/pg_proc.c:446 catalog/pg_proc.c:491 +#: catalog/pg_proc.c:517 catalog/pg_proc.c:541 #, c-format msgid "Use %s %s first." msgstr "Використайте %s %s спочатку." -#: catalog/pg_proc.c:446 +#: catalog/pg_proc.c:444 #, c-format msgid "Row type defined by OUT parameters is different." msgstr "Параметри OUT визначають другий тип рядку." -#: catalog/pg_proc.c:490 +#: catalog/pg_proc.c:488 #, c-format msgid "cannot change name of input parameter \"%s\"" msgstr "неможливо змінити ім'я вхідного параметру \"%s\"" -#: catalog/pg_proc.c:517 +#: catalog/pg_proc.c:515 #, c-format msgid "cannot remove parameter defaults from existing function" msgstr "неможливо прибрати параметр за замовчуванням з існуючої функції" -#: catalog/pg_proc.c:541 +#: catalog/pg_proc.c:539 #, c-format msgid "cannot change data type of existing parameter default value" msgstr "неможливо змінити тип даних для існуючого значення параметру за замовчуванням" -#: catalog/pg_proc.c:752 +#: catalog/pg_proc.c:750 #, c-format msgid "there is no built-in function named \"%s\"" msgstr "немає вбудованої функції \"%s\"" -#: catalog/pg_proc.c:845 +#: catalog/pg_proc.c:843 #, c-format msgid "SQL functions cannot return type %s" msgstr "Функції SQL не можуть повернути тип %s" -#: catalog/pg_proc.c:860 +#: catalog/pg_proc.c:858 #, c-format msgid "SQL functions cannot have arguments of type %s" msgstr "функції SQL не можуть мати аргументи типу %s" -#: catalog/pg_proc.c:987 executor/functions.c:1466 +#: catalog/pg_proc.c:986 executor/functions.c:1468 #, c-format msgid "SQL function \"%s\"" msgstr "Функція SQL \"%s\"" -#: catalog/pg_publication.c:71 catalog/pg_publication.c:79 -#: catalog/pg_publication.c:87 catalog/pg_publication.c:93 +#: catalog/pg_publication.c:66 catalog/pg_publication.c:74 +#: catalog/pg_publication.c:82 catalog/pg_publication.c:88 #, c-format msgid "cannot add relation \"%s\" to publication" msgstr "не можна додати відношення \"%s\" до публікації" -#: catalog/pg_publication.c:81 +#: catalog/pg_publication.c:76 #, c-format msgid "This operation is not supported for system tables." msgstr "Ця операція не підтримується для системних таблиць." -#: catalog/pg_publication.c:89 +#: catalog/pg_publication.c:84 #, c-format msgid "This operation is not supported for temporary tables." msgstr "Ця операція не підтримується для тимчасових таблиць." -#: catalog/pg_publication.c:95 +#: catalog/pg_publication.c:90 #, c-format msgid "This operation is not supported for unlogged tables." msgstr "Ця операція не підтримується для таблиць без журналювання." -#: catalog/pg_publication.c:109 catalog/pg_publication.c:117 +#: catalog/pg_publication.c:104 catalog/pg_publication.c:112 #, c-format msgid "cannot add schema \"%s\" to publication" msgstr "не можна додати схему \"%s\" до публікації" -#: catalog/pg_publication.c:111 +#: catalog/pg_publication.c:106 #, c-format msgid "This operation is not supported for system schemas." msgstr "Ця операція не підтримується для системних схем." -#: catalog/pg_publication.c:119 +#: catalog/pg_publication.c:114 #, c-format msgid "Temporary schemas cannot be replicated." msgstr "Тимчасові схеми не можуть бути репліковані." -#: catalog/pg_publication.c:397 +#: catalog/pg_publication.c:392 #, c-format msgid "relation \"%s\" is already member of publication \"%s\"" msgstr "відношення \"%s\" вже є членом публікації \"%s\"" -#: catalog/pg_publication.c:539 +#: catalog/pg_publication.c:534 #, c-format msgid "cannot use system column \"%s\" in publication column list" msgstr "не можна використати системний стовпець \"%s\" у списку стовпців публікації" -#: catalog/pg_publication.c:545 +#: catalog/pg_publication.c:540 #, c-format msgid "cannot use generated column \"%s\" in publication column list" msgstr "не можна використати згенерований стовпець \"%s\" у списку стовпців публікації" -#: catalog/pg_publication.c:551 +#: catalog/pg_publication.c:546 #, c-format msgid "duplicate column \"%s\" in publication column list" msgstr "дуплікат стовпця \"%s\" в списку стовпців публікації" -#: catalog/pg_publication.c:641 +#: catalog/pg_publication.c:636 #, c-format msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "схема \"%s\" вже є членом публікації \"%s\"" -#: catalog/pg_shdepend.c:830 +#: catalog/pg_shdepend.c:875 #, c-format -msgid "" -"\n" +msgid "\n" "and objects in %d other database (see server log for list)" -msgid_plural "" -"\n" +msgid_plural "\n" "and objects in %d other databases (see server log for list)" -msgstr[0] "" -"\n" +msgstr[0] "\n" "і об'єкти в %d іншій базі даних (див. список в протоколі сервера)" -msgstr[1] "" -"\n" +msgstr[1] "\n" "і об'єкти в %d інших базах даних (див. список в протоколі сервера)" -msgstr[2] "" -"\n" +msgstr[2] "\n" "і об'єкти в %d інших базах даних (див. список в протоколі сервера)" -msgstr[3] "" -"\n" +msgstr[3] "\n" "і об'єкти в %d інших базах даних (див. список в протоколі сервера)" -#: catalog/pg_shdepend.c:1177 +#: catalog/pg_shdepend.c:1222 #, c-format msgid "role %u was concurrently dropped" msgstr "роль %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1189 +#: catalog/pg_shdepend.c:1234 #, c-format msgid "tablespace %u was concurrently dropped" msgstr "табличний простір %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1203 +#: catalog/pg_shdepend.c:1248 #, c-format msgid "database %u was concurrently dropped" msgstr "базу даних %u було видалено паралельним способом" -#: catalog/pg_shdepend.c:1254 +#: catalog/pg_shdepend.c:1299 #, c-format msgid "owner of %s" msgstr "власник об'єкту %s" -#: catalog/pg_shdepend.c:1256 +#: catalog/pg_shdepend.c:1301 #, c-format msgid "privileges for %s" msgstr "права для %s" -#: catalog/pg_shdepend.c:1258 +#: catalog/pg_shdepend.c:1303 +#, c-format +msgid "initial privileges for %s" +msgstr "початкові права для %s" + +#: catalog/pg_shdepend.c:1305 #, c-format msgid "target of %s" msgstr "ціль %s" -#: catalog/pg_shdepend.c:1260 +#: catalog/pg_shdepend.c:1307 #, c-format msgid "tablespace for %s" msgstr "табличний простір для %s" #. translator: %s will always be "database %s" -#: catalog/pg_shdepend.c:1268 +#: catalog/pg_shdepend.c:1315 #, c-format msgid "%d object in %s" msgid_plural "%d objects in %s" @@ -6024,22 +6353,22 @@ msgstr[1] "%d об'єкти в %s" msgstr[2] "%d об'єктів у %s" msgstr[3] "%d об'єктів у %s" -#: catalog/pg_shdepend.c:1332 +#: catalog/pg_shdepend.c:1379 #, c-format msgid "cannot drop objects owned by %s because they are required by the database system" msgstr "не вдалося видалити об'єкти, що належать %s, оскільки вони потрібні системі бази даних" -#: catalog/pg_shdepend.c:1498 +#: catalog/pg_shdepend.c:1560 #, c-format msgid "cannot reassign ownership of objects owned by %s because they are required by the database system" msgstr "не вдалося змінити власника об'єктів, що належать ролі %s, тому що вони необхідні системі баз даних" -#: catalog/pg_subscription.c:424 +#: catalog/pg_subscription.c:438 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "не вдалося видалити зіставлення відношень для підписки \"%s\"" -#: catalog/pg_subscription.c:426 +#: catalog/pg_subscription.c:440 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "Синхронізація таблиць для відношення \"%s\" у процесі та знаходиться у стані \"%c\"." @@ -6047,227 +6376,227 @@ msgstr "Синхронізація таблиць для відношення \" #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:433 +#: catalog/pg_subscription.c:447 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "Використайте %s, щоб активувати підписку, якщо вона ще не активована, або використайте %s, щоб видалити підписку." -#: catalog/pg_type.c:134 catalog/pg_type.c:474 +#: catalog/pg_type.c:133 catalog/pg_type.c:474 #, c-format msgid "pg_type OID value not set when in binary upgrade mode" msgstr "значення OID в pg_type не задано в режимі двійкового оновлення" -#: catalog/pg_type.c:254 +#: catalog/pg_type.c:253 #, c-format msgid "invalid type internal size %d" msgstr "неприпустимий внутрішній розмір типу %d" -#: catalog/pg_type.c:270 catalog/pg_type.c:278 catalog/pg_type.c:286 -#: catalog/pg_type.c:295 +#: catalog/pg_type.c:269 catalog/pg_type.c:277 catalog/pg_type.c:285 +#: catalog/pg_type.c:294 #, c-format msgid "alignment \"%c\" is invalid for passed-by-value type of size %d" msgstr "вирівнювання \"%c\" недійсне для типу переданого за значенням розміром: %d" -#: catalog/pg_type.c:302 +#: catalog/pg_type.c:301 #, c-format msgid "internal size %d is invalid for passed-by-value type" msgstr "внутрішній розмір %d недійсний для типу, переданого за значенням" -#: catalog/pg_type.c:312 catalog/pg_type.c:318 +#: catalog/pg_type.c:311 catalog/pg_type.c:317 #, c-format msgid "alignment \"%c\" is invalid for variable-length type" msgstr "вирівнювання \"%c\" недійсне для типу змінної довжини" -#: catalog/pg_type.c:326 commands/typecmds.c:4146 +#: catalog/pg_type.c:325 commands/typecmds.c:4363 #, c-format msgid "fixed-size types must have storage PLAIN" msgstr "для типів фіксованого розміру застосовується лише режим зберігання PLAIN" -#: catalog/pg_type.c:955 +#: catalog/pg_type.c:978 #, c-format msgid "Failed while creating a multirange type for type \"%s\"." msgstr "Помилка під час створення багатодіапазонного типу для типу \"%s\"." -#: catalog/pg_type.c:956 +#: catalog/pg_type.c:979 #, c-format msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Ви можете вручну вказати назву багатодіапазонного типу за допомогою атрибуту \"multirange_type_name\"." -#: catalog/storage.c:505 storage/buffer/bufmgr.c:1145 +#: catalog/storage.c:508 storage/buffer/bufmgr.c:1540 #, c-format msgid "invalid page in block %u of relation %s" msgstr "неприпустима сторінка в блоці %u відношення %s" -#: commands/aggregatecmds.c:171 +#: commands/aggregatecmds.c:167 #, c-format msgid "only ordered-set aggregates can be hypothetical" msgstr "гіпотетичними можуть бути тільки впорядковані агрегати" -#: commands/aggregatecmds.c:196 +#: commands/aggregatecmds.c:192 #, c-format msgid "aggregate attribute \"%s\" not recognized" msgstr "атрибут агрегату \"%s\" не розпізнано" -#: commands/aggregatecmds.c:206 +#: commands/aggregatecmds.c:202 #, c-format msgid "aggregate stype must be specified" msgstr "у визначенні агрегату необхідно вказати stype" -#: commands/aggregatecmds.c:210 +#: commands/aggregatecmds.c:206 #, c-format msgid "aggregate sfunc must be specified" msgstr "в визначенні агрегату потребується sfunc" -#: commands/aggregatecmds.c:222 +#: commands/aggregatecmds.c:218 #, c-format msgid "aggregate msfunc must be specified when mstype is specified" msgstr "в визначенні агрегату потребується msfunc, коли mstype визначений" -#: commands/aggregatecmds.c:226 +#: commands/aggregatecmds.c:222 #, c-format msgid "aggregate minvfunc must be specified when mstype is specified" msgstr "в визначенні агрегату потребується minvfunc, коли mstype визначений" -#: commands/aggregatecmds.c:233 +#: commands/aggregatecmds.c:229 #, c-format msgid "aggregate msfunc must not be specified without mstype" msgstr "msfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:237 +#: commands/aggregatecmds.c:233 #, c-format msgid "aggregate minvfunc must not be specified without mstype" msgstr "minvfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:241 +#: commands/aggregatecmds.c:237 #, c-format msgid "aggregate mfinalfunc must not be specified without mstype" msgstr "mfinalfunc для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:245 +#: commands/aggregatecmds.c:241 #, c-format msgid "aggregate msspace must not be specified without mstype" msgstr "msspace для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:249 +#: commands/aggregatecmds.c:245 #, c-format msgid "aggregate minitcond must not be specified without mstype" msgstr "minitcond для агрегату не повинна визначатись без mstype" -#: commands/aggregatecmds.c:278 +#: commands/aggregatecmds.c:274 #, c-format msgid "aggregate input type must be specified" msgstr "слід указати тип агрегату вводу" -#: commands/aggregatecmds.c:308 +#: commands/aggregatecmds.c:304 #, c-format msgid "basetype is redundant with aggregate input type specification" msgstr "в визначенні агрегату з зазначенням вхідного типу не потрібен базовий тип" -#: commands/aggregatecmds.c:351 commands/aggregatecmds.c:392 +#: commands/aggregatecmds.c:347 commands/aggregatecmds.c:388 #, c-format msgid "aggregate transition data type cannot be %s" msgstr "тип даних агрегату транзакції не може бути %s" -#: commands/aggregatecmds.c:363 +#: commands/aggregatecmds.c:359 #, c-format msgid "serialization functions may be specified only when the aggregate transition data type is %s" msgstr "функції серіалізації можуть визначатись, лише коли перехідний тип даних агрегату %s" -#: commands/aggregatecmds.c:373 +#: commands/aggregatecmds.c:369 #, c-format msgid "must specify both or neither of serialization and deserialization functions" msgstr "повинні визначатись обидві або жодна з серіалізуючих та десеріалізуючих функцій" -#: commands/aggregatecmds.c:438 commands/functioncmds.c:639 +#: commands/aggregatecmds.c:434 commands/functioncmds.c:634 #, c-format msgid "parameter \"parallel\" must be SAFE, RESTRICTED, or UNSAFE" msgstr "параметр \"parallel\" має мати значення SAFE, RESTRICTED, або UNSAFE" -#: commands/aggregatecmds.c:494 +#: commands/aggregatecmds.c:490 #, c-format msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "параметр \"%s\" має мати значення READ_ONLY, SHAREABLE, або READ_WRITE" -#: commands/alter.c:86 commands/event_trigger.c:174 +#: commands/alter.c:82 commands/event_trigger.c:191 #, c-format msgid "event trigger \"%s\" already exists" msgstr "тригер подій \"%s\" вже існує" -#: commands/alter.c:89 commands/foreigncmds.c:593 +#: commands/alter.c:85 commands/foreigncmds.c:593 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "джерело сторонніх даних \"%s\" вже існує" -#: commands/alter.c:92 commands/foreigncmds.c:884 +#: commands/alter.c:88 commands/foreigncmds.c:884 #, c-format msgid "server \"%s\" already exists" msgstr "сервер \"%s\" вже існує" -#: commands/alter.c:95 commands/proclang.c:133 +#: commands/alter.c:91 commands/proclang.c:131 #, c-format msgid "language \"%s\" already exists" msgstr "мова \"%s\" вже існує" -#: commands/alter.c:98 commands/publicationcmds.c:771 +#: commands/alter.c:94 commands/publicationcmds.c:764 #, c-format msgid "publication \"%s\" already exists" msgstr "публікація \"%s\" вже існує" -#: commands/alter.c:101 commands/subscriptioncmds.c:657 +#: commands/alter.c:97 commands/subscriptioncmds.c:669 #, c-format msgid "subscription \"%s\" already exists" msgstr "підписка \"%s\" вже існує" -#: commands/alter.c:124 +#: commands/alter.c:120 #, c-format msgid "conversion \"%s\" already exists in schema \"%s\"" msgstr "перетворення \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:128 +#: commands/alter.c:124 #, c-format msgid "statistics object \"%s\" already exists in schema \"%s\"" msgstr "об'єкт статистики \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:132 +#: commands/alter.c:128 #, c-format msgid "text search parser \"%s\" already exists in schema \"%s\"" msgstr "парсер текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:136 +#: commands/alter.c:132 #, c-format msgid "text search dictionary \"%s\" already exists in schema \"%s\"" msgstr "словник текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:140 +#: commands/alter.c:136 #, c-format msgid "text search template \"%s\" already exists in schema \"%s\"" msgstr "шаблон текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:144 +#: commands/alter.c:140 #, c-format msgid "text search configuration \"%s\" already exists in schema \"%s\"" msgstr "конфігурація текстового пошуку \"%s\" вже існує в схемі \"%s\"" -#: commands/alter.c:217 +#: commands/alter.c:213 #, c-format msgid "must be superuser to rename %s" msgstr "перейменувати %s може тільки суперкористувач" -#: commands/alter.c:259 commands/subscriptioncmds.c:636 -#: commands/subscriptioncmds.c:1116 commands/subscriptioncmds.c:1198 -#: commands/subscriptioncmds.c:1837 +#: commands/alter.c:255 commands/subscriptioncmds.c:648 +#: commands/subscriptioncmds.c:1129 commands/subscriptioncmds.c:1212 +#: commands/subscriptioncmds.c:1918 #, c-format msgid "password_required=false is superuser-only" msgstr "password_required=false тільки для суперкористувачів" -#: commands/alter.c:260 commands/subscriptioncmds.c:637 -#: commands/subscriptioncmds.c:1117 commands/subscriptioncmds.c:1199 -#: commands/subscriptioncmds.c:1838 +#: commands/alter.c:256 commands/subscriptioncmds.c:649 +#: commands/subscriptioncmds.c:1130 commands/subscriptioncmds.c:1213 +#: commands/subscriptioncmds.c:1919 #, c-format msgid "Subscriptions with the password_required option set to false may only be created or modified by the superuser." msgstr "Підписки з налаштуванням password_required=false можуть бути створені або змінені тільки суперкористувачем." -#: commands/alter.c:775 +#: commands/alter.c:734 #, c-format msgid "must be superuser to set schema of %s" msgstr "встановити схему об'єкту %s може тільки суперкористувач" @@ -6287,8 +6616,8 @@ msgstr "Тільки суперкористувач може створити м msgid "access method \"%s\" already exists" msgstr "метод доступу \"%s\" вже існує" -#: commands/amcmds.c:154 commands/indexcmds.c:216 commands/indexcmds.c:839 -#: commands/opclasscmds.c:375 commands/opclasscmds.c:833 +#: commands/amcmds.c:154 commands/indexcmds.c:222 commands/indexcmds.c:842 +#: commands/opclasscmds.c:374 commands/opclasscmds.c:832 #, c-format msgid "access method \"%s\" does not exist" msgstr "методу доступу \"%s\" не існує" @@ -6298,114 +6627,114 @@ msgstr "методу доступу \"%s\" не існує" msgid "handler function is not specified" msgstr "функція-обробник не вказана" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:709 -#: parser/parse_clause.c:941 +#: commands/amcmds.c:264 commands/event_trigger.c:200 +#: commands/foreigncmds.c:489 commands/proclang.c:78 commands/trigger.c:702 +#: parser/parse_clause.c:943 #, c-format msgid "function %s must return type %s" msgstr "функція %s повинна повертати тип %s" -#: commands/analyze.c:228 +#: commands/analyze.c:217 #, c-format msgid "skipping \"%s\" --- cannot analyze this foreign table" msgstr "пропуск об'єкту \"%s\" --- неможливо аналізувати цю сторонню таблицю" -#: commands/analyze.c:245 +#: commands/analyze.c:234 #, c-format msgid "skipping \"%s\" --- cannot analyze non-tables or special system tables" msgstr "пропуск об'єкту \"%s\" --- неможливо аналізувати не-таблиці або спеціальні системні таблиці" -#: commands/analyze.c:325 +#: commands/analyze.c:314 #, c-format msgid "analyzing \"%s.%s\" inheritance tree" msgstr "аналізується дерево наслідування \"%s.%s\"" -#: commands/analyze.c:330 +#: commands/analyze.c:319 #, c-format msgid "analyzing \"%s.%s\"" msgstr "аналіз \"%s.%s\"" -#: commands/analyze.c:395 +#: commands/analyze.c:385 #, c-format msgid "column \"%s\" of relation \"%s\" appears more than once" msgstr "стовпець \"%s\" відносно \"%s\" з'являється більше одного разу" -#: commands/analyze.c:787 +#: commands/analyze.c:785 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"\n" msgstr "автоматичний аналіз таблиці \"%s.%s.%s\"\n" -#: commands/analyze.c:1334 +#: commands/analyze.c:1300 #, 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 з %u сторінок, вони містять %.0f живих рядків і %.0f мертвих рядків; %d рядків вибрані; %.0f приблизне загальне число рядків" -#: commands/analyze.c:1418 +#: commands/analyze.c:1384 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no child tables" msgstr "пропускається аналіз дерева наслідування \"%s.%s\" --- це дерево наслідування не містить дочірніх таблиць" -#: commands/analyze.c:1516 +#: commands/analyze.c:1482 #, c-format msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "пропускається аналіз дерева наслідування \"%s.%s\" --- це дерево наслідування не містить аналізуючих дочірніх таблиць" -#: commands/async.c:646 +#: commands/async.c:612 #, c-format msgid "channel name cannot be empty" msgstr "ім'я каналу не може бути пустим" -#: commands/async.c:652 +#: commands/async.c:618 #, c-format msgid "channel name too long" msgstr "ім'я каналу задовге" -#: commands/async.c:657 +#: commands/async.c:623 #, c-format msgid "payload string too long" msgstr "рядок навантаження задовгий" -#: commands/async.c:876 +#: commands/async.c:842 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "виконати PREPARE для транзакції, яка виконала LISTEN, UNLISTEN або NOTIFY неможливо" -#: commands/async.c:980 +#: commands/async.c:946 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "занадто багато сповіщень у черзі NOTIFY" -#: commands/async.c:1602 +#: commands/async.c:1553 #, c-format msgid "NOTIFY queue is %.0f%% full" msgstr "Черга NOTIFY заповнена на %.0f%%" -#: commands/async.c:1604 +#: commands/async.c:1555 #, c-format msgid "The server process with PID %d is among those with the oldest transactions." msgstr "Серверний процес з PID %d серед процесів з найдавнішими транзакціями." -#: commands/async.c:1607 +#: commands/async.c:1558 #, c-format msgid "The NOTIFY queue cannot be emptied until that process ends its current transaction." msgstr "Черга NOTIFY не може бути спорожненою, поки цей процес не завершить поточну транзакцію." -#: commands/cluster.c:130 +#: commands/cluster.c:128 #, c-format msgid "unrecognized CLUSTER option \"%s\"" msgstr "нерозпізнаний параметр CLUSTER \"%s\"" -#: commands/cluster.c:160 commands/cluster.c:433 +#: commands/cluster.c:159 commands/cluster.c:433 #, c-format msgid "cannot cluster temporary tables of other sessions" msgstr "не можна кластеризувати тимчасові таблиці з інших сеансів" -#: commands/cluster.c:178 +#: commands/cluster.c:177 #, c-format msgid "there is no previously clustered index for table \"%s\"" msgstr "немає попереднього кластеризованого індексу для таблиці \"%s\"" -#: commands/cluster.c:192 commands/tablecmds.c:14214 commands/tablecmds.c:16057 +#: commands/cluster.c:191 commands/tablecmds.c:14695 commands/tablecmds.c:16626 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "індекс \"%s\" для таблці \"%s\" не існує" @@ -6420,7 +6749,7 @@ msgstr "не можна кластеризувати спільний катал msgid "cannot vacuum temporary tables of other sessions" msgstr "не можна очищати тимчасові таблиці з інших сеансів" -#: commands/cluster.c:513 commands/tablecmds.c:16067 +#: commands/cluster.c:513 commands/tablecmds.c:16636 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не є індексом для таблиці \"%s\"" @@ -6445,62 +6774,66 @@ msgstr "неможливо кластеризувати за невірним і msgid "cannot mark index clustered in partitioned table" msgstr "неможливо помітити індекс кластеризованим в секційній таблиці" -#: commands/cluster.c:950 +#: commands/cluster.c:956 #, c-format msgid "clustering \"%s.%s\" using index scan on \"%s\"" msgstr "кластеризація \"%s.%s\" з використанням сканування індексу \"%s\"" -#: commands/cluster.c:956 +#: commands/cluster.c:962 #, c-format msgid "clustering \"%s.%s\" using sequential scan and sort" msgstr "кластеризація \"%s.%s\"з використанням послідовного сканування та сортування" -#: commands/cluster.c:961 +#: commands/cluster.c:967 #, c-format msgid "vacuuming \"%s.%s\"" msgstr "очищення \"%s.%s\"" -#: commands/cluster.c:988 +#: commands/cluster.c:994 #, c-format msgid "\"%s.%s\": found %.0f removable, %.0f nonremovable row versions in %u pages" msgstr "\"%s.%s\": знайдено версій рядків, що можуть бути видалені %.0f, що не можуть бути видалені %.0f, переглянуто сторінок %u" -#: commands/cluster.c:993 +#: commands/cluster.c:999 #, c-format -msgid "" -"%.0f dead row versions cannot be removed yet.\n" +msgid "%.0f dead row versions cannot be removed yet.\n" "%s." -msgstr "" -"%.0f \"мертві\" версії рядків досі не можуть бути видалені.\n" +msgstr "%.0f \"мертві\" версії рядків досі не можуть бути видалені.\n" "%s." -#: commands/collationcmds.c:112 +#: commands/cluster.c:1744 +#, c-format +msgid "permission denied to cluster \"%s\", skipping it" +msgstr "відмовлено в дозволі кластеру \"%s\", пропуск" + +#: commands/collationcmds.c:110 #, c-format msgid "collation attribute \"%s\" not recognized" msgstr "атрибут collation \"%s\" не розпізнаний" -#: commands/collationcmds.c:125 commands/collationcmds.c:131 -#: commands/define.c:389 commands/tablecmds.c:7884 -#: replication/pgoutput/pgoutput.c:309 replication/pgoutput/pgoutput.c:332 -#: replication/pgoutput/pgoutput.c:346 replication/pgoutput/pgoutput.c:356 -#: replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 -#: replication/pgoutput/pgoutput.c:386 replication/walsender.c:996 -#: replication/walsender.c:1018 replication/walsender.c:1028 +#: commands/collationcmds.c:123 commands/collationcmds.c:129 +#: commands/define.c:388 commands/tablecmds.c:8106 +#: replication/pgoutput/pgoutput.c:307 replication/pgoutput/pgoutput.c:330 +#: replication/pgoutput/pgoutput.c:344 replication/pgoutput/pgoutput.c:354 +#: replication/pgoutput/pgoutput.c:364 replication/pgoutput/pgoutput.c:374 +#: replication/pgoutput/pgoutput.c:386 replication/walsender.c:1146 +#: replication/walsender.c:1168 replication/walsender.c:1178 +#: replication/walsender.c:1187 replication/walsender.c:1426 #, c-format msgid "conflicting or redundant options" msgstr "конфліктуючі або надлишкові параметри" -#: commands/collationcmds.c:126 +#: commands/collationcmds.c:124 #, c-format msgid "LOCALE cannot be specified together with LC_COLLATE or LC_CTYPE." msgstr "LOCALE не може вказуватись разом з LC_COLLATE або LC_CTYPE." -#: commands/collationcmds.c:132 +#: commands/collationcmds.c:130 #, c-format msgid "FROM cannot be specified together with any other options." msgstr "FROM не можна вказувати разом з будь-якими іншими параметрами." -#: commands/collationcmds.c:191 +#: commands/collationcmds.c:189 #, c-format msgid "collation \"default\" cannot be copied" msgstr "сортування \"за замовчуванням\" не може бути скопійовано" @@ -6510,100 +6843,94 @@ msgstr "сортування \"за замовчуванням\" не може msgid "unrecognized collation provider: %s" msgstr "нерозпізнаний постачальник правил сортування: %s" -#: commands/collationcmds.c:253 commands/collationcmds.c:259 -#: commands/collationcmds.c:267 +#: commands/collationcmds.c:253 commands/collationcmds.c:264 +#: commands/collationcmds.c:270 commands/collationcmds.c:278 #, c-format msgid "parameter \"%s\" must be specified" msgstr "необхідно вказати параметр \"%s\"" -#: commands/collationcmds.c:282 commands/dbcommands.c:1091 +#: commands/collationcmds.c:293 commands/dbcommands.c:1134 #, c-format msgid "using standard form \"%s\" for ICU locale \"%s\"" msgstr "використання стандартної форми \"%s\" для мови ICU \"%s\"" -#: commands/collationcmds.c:301 +#: commands/collationcmds.c:312 #, c-format msgid "nondeterministic collations not supported with this provider" msgstr "недетерміновані правила сортування не підтримуються цим провайдером" -#: commands/collationcmds.c:306 commands/dbcommands.c:1110 +#: commands/collationcmds.c:317 commands/dbcommands.c:1087 #, c-format msgid "ICU rules cannot be specified unless locale provider is ICU" msgstr "Правила ICU не можна вказати, якщо постачальник локалі не ICU" -#: commands/collationcmds.c:325 +#: commands/collationcmds.c:340 #, c-format msgid "current database's encoding is not supported with this provider" msgstr "кодування поточної бази даних не підтримується цим провайдером" -#: commands/collationcmds.c:385 +#: commands/collationcmds.c:409 #, c-format msgid "collation \"%s\" for encoding \"%s\" already exists in schema \"%s\"" msgstr "правило сортування \"%s\" для кодування \"%s\" вже існує в схемі \"%s\"" -#: commands/collationcmds.c:396 +#: commands/collationcmds.c:420 #, c-format msgid "collation \"%s\" already exists in schema \"%s\"" msgstr "правило сортування \"%s\" вже існує в схемі \"%s\"" -#: commands/collationcmds.c:421 +#: commands/collationcmds.c:445 #, c-format msgid "cannot refresh version of default collation" msgstr "оновити версію правила сортування за замовчуванням не можна" #. translator: %s is an SQL command #. translator: %s is an SQL ALTER command -#: commands/collationcmds.c:423 commands/subscriptioncmds.c:1331 -#: commands/tablecmds.c:7709 commands/tablecmds.c:7719 -#: commands/tablecmds.c:13916 commands/tablecmds.c:17196 -#: commands/tablecmds.c:17217 commands/typecmds.c:3637 commands/typecmds.c:3720 -#: commands/typecmds.c:4013 +#: commands/collationcmds.c:447 commands/subscriptioncmds.c:1376 +#: commands/tablecmds.c:7882 commands/tablecmds.c:7892 +#: commands/tablecmds.c:7894 commands/tablecmds.c:14397 +#: commands/tablecmds.c:17774 commands/tablecmds.c:17795 +#: commands/typecmds.c:3787 commands/typecmds.c:3872 commands/typecmds.c:4226 #, c-format msgid "Use %s instead." msgstr "Використайте %s замість цього." -#: commands/collationcmds.c:451 commands/dbcommands.c:2488 +#: commands/collationcmds.c:480 commands/dbcommands.c:2567 #, c-format msgid "changing version from %s to %s" msgstr "зміна версії з %s на %s" -#: commands/collationcmds.c:466 commands/dbcommands.c:2501 +#: commands/collationcmds.c:495 commands/dbcommands.c:2580 #, c-format msgid "version has not changed" msgstr "версію не змінено" -#: commands/collationcmds.c:499 commands/dbcommands.c:2667 +#: commands/collationcmds.c:528 commands/dbcommands.c:2746 #, c-format msgid "database with OID %u does not exist" msgstr "база даних з OID %u не існує" -#: commands/collationcmds.c:520 +#: commands/collationcmds.c:554 #, c-format msgid "collation with OID %u does not exist" msgstr "порядку сортування %u з OID не існує" -#: commands/collationcmds.c:808 +#: commands/collationcmds.c:848 #, c-format msgid "must be superuser to import system collations" msgstr "імпортувати систмені правила сортування може тільки суперкористувач" -#: commands/collationcmds.c:836 commands/copyfrom.c:1671 commands/copyto.c:656 -#: libpq/be-secure-common.c:59 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не вдалося виконати команду \"%s\": %m" - -#: commands/collationcmds.c:928 commands/collationcmds.c:1013 +#: commands/collationcmds.c:968 commands/collationcmds.c:1053 #, c-format msgid "no usable system locales were found" msgstr "придатні системні локалі не знайдені" -#: commands/comment.c:61 commands/dbcommands.c:1612 commands/dbcommands.c:1824 -#: commands/dbcommands.c:1934 commands/dbcommands.c:2132 -#: commands/dbcommands.c:2370 commands/dbcommands.c:2461 -#: commands/dbcommands.c:2571 commands/dbcommands.c:3071 -#: utils/init/postinit.c:1021 utils/init/postinit.c:1085 -#: utils/init/postinit.c:1157 +#: commands/comment.c:61 commands/dbcommands.c:1665 commands/dbcommands.c:1892 +#: commands/dbcommands.c:2002 commands/dbcommands.c:2200 +#: commands/dbcommands.c:2438 commands/dbcommands.c:2529 +#: commands/dbcommands.c:2650 commands/dbcommands.c:3158 +#: utils/init/postinit.c:1033 utils/init/postinit.c:1097 +#: utils/init/postinit.c:1170 #, c-format msgid "database \"%s\" does not exist" msgstr "бази даних \"%s\" не існує" @@ -6613,309 +6940,264 @@ msgstr "бази даних \"%s\" не існує" msgid "cannot set comment on relation \"%s\"" msgstr "встановити коментар для відношення \"%s\" не можна" -#: commands/constraint.c:63 utils/adt/ri_triggers.c:2028 +#: commands/constraint.c:61 utils/adt/ri_triggers.c:2019 #, c-format msgid "function \"%s\" was not called by trigger manager" msgstr "функція \"%s\" не була викликана менеджером тригерів" -#: commands/constraint.c:70 utils/adt/ri_triggers.c:2037 +#: commands/constraint.c:68 utils/adt/ri_triggers.c:2028 #, c-format msgid "function \"%s\" must be fired AFTER ROW" msgstr "функція \"%s\" повинна запускатися в AFTER ROW" -#: commands/constraint.c:84 +#: commands/constraint.c:82 #, c-format msgid "function \"%s\" must be fired for INSERT or UPDATE" msgstr "функція \"%s\" повинна запускатися для INSERT або UPDATE" -#: commands/conversioncmds.c:69 +#: commands/conversioncmds.c:62 #, c-format msgid "source encoding \"%s\" does not exist" msgstr "вихідного кодування \"%s\" не існує" -#: commands/conversioncmds.c:76 +#: commands/conversioncmds.c:69 #, c-format msgid "destination encoding \"%s\" does not exist" msgstr "цільового кодування \"%s\" не існує" -#: commands/conversioncmds.c:89 +#: commands/conversioncmds.c:82 #, c-format msgid "encoding conversion to or from \"SQL_ASCII\" is not supported" msgstr "перетворення кодування в або з \"SQL_ASCII\" не підтримується" -#: commands/conversioncmds.c:102 +#: commands/conversioncmds.c:95 #, c-format msgid "encoding conversion function %s must return type %s" msgstr "функція перетворення кодування %s повинна повертати тип %s" -#: commands/conversioncmds.c:132 +#: commands/conversioncmds.c:125 #, c-format msgid "encoding conversion function %s returned incorrect result for empty input" msgstr "функція перетворення кодування %s повернула неправильний результат для порожнього вводу" -#: commands/copy.c:86 +#: commands/copy.c:84 #, c-format msgid "permission denied to COPY to or from an external program" msgstr "немає дозволу для COPY в або з зовнішньої програми" -#: commands/copy.c:87 +#: commands/copy.c:85 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to or from an external program." msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY з зовнішньою програмою." -#: commands/copy.c:89 commands/copy.c:100 commands/copy.c:109 +#: commands/copy.c:87 commands/copy.c:98 commands/copy.c:107 #, c-format msgid "Anyone can COPY to stdout or from stdin. psql's \\copy command also works for anyone." msgstr "Будь-хто може використати COPY to stdout або from stdin, а також команду psql \\copy." -#: commands/copy.c:97 +#: commands/copy.c:95 #, c-format msgid "permission denied to COPY from a file" msgstr "немає дозволу для COPY з файлу" -#: commands/copy.c:98 +#: commands/copy.c:96 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY from a file." msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY з файлу." -#: commands/copy.c:106 +#: commands/copy.c:104 #, c-format msgid "permission denied to COPY to a file" msgstr "немає дозволу для COPY в файл" -#: commands/copy.c:107 +#: commands/copy.c:105 #, c-format msgid "Only roles with privileges of the \"%s\" role may COPY to a file." msgstr "Тільки ролі з правами \"%s\" можуть виконувати COPY в файл." -#: commands/copy.c:195 +#: commands/copy.c:193 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM не підтримується із захистом на рівні рядків" -#: commands/copy.c:196 +#: commands/copy.c:194 #, c-format msgid "Use INSERT statements instead." msgstr "Використайте оператори INSERT замість цього." -#: commands/copy.c:290 -#, c-format -msgid "MERGE not supported in COPY" -msgstr "COPY не підтримує MERGE" - -#: commands/copy.c:383 +#: commands/copy.c:375 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "використовувати \"%s\" з HEADER в COPY TO не можна" -#: commands/copy.c:392 +#: commands/copy.c:384 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s потребує Boolean або \"відповідність\"" -#: commands/copy.c:451 +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR, +#. second %s is a COPY with direction, e.g. COPY TO +#: commands/copy.c:402 commands/copy.c:782 commands/copy.c:796 +#: commands/copy.c:811 commands/copy.c:837 commands/copy.c:847 +#, c-format +msgid "COPY %s cannot be used with %s" +msgstr "COPY %s не можна використовувати з %s" + +#. translator: first %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:416 commands/copy.c:441 +#, c-format +msgid "COPY %s \"%s\" not recognized" +msgstr "COPY %s \"%s\" не розпізнано" + +#: commands/copy.c:502 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "Формат \"%s\" для COPY не розпізнано" -#: commands/copy.c:509 commands/copy.c:522 commands/copy.c:535 -#: commands/copy.c:554 +#: commands/copy.c:560 commands/copy.c:575 commands/copy.c:590 +#: commands/copy.c:609 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "аргументом функції \"%s\" повинен бути список імен стовпців" -#: commands/copy.c:566 +#: commands/copy.c:621 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "аргументом функції \"%s\" повинне бути припустиме ім'я коду" -#: commands/copy.c:573 commands/dbcommands.c:859 commands/dbcommands.c:2318 +#: commands/copy.c:642 commands/dbcommands.c:866 commands/dbcommands.c:2386 #, c-format msgid "option \"%s\" not recognized" msgstr "параметр \"%s\" не розпізнано" -#: commands/copy.c:585 -#, c-format -msgid "cannot specify DELIMITER in BINARY mode" -msgstr "неможливо визначити DELIMITER в режимі BINARY" - -#: commands/copy.c:590 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:655 commands/copy.c:660 commands/copy.c:665 +#: commands/copy.c:740 #, c-format -msgid "cannot specify NULL in BINARY mode" -msgstr "неможливо визначити NULL в режимі BINARY" +msgid "cannot specify %s in BINARY mode" +msgstr "не можна вказати %s в режимі BINARY" -#: commands/copy.c:595 +#: commands/copy.c:670 #, c-format -msgid "cannot specify DEFAULT in BINARY mode" -msgstr "в режимі BINARY не можна визначити DEFAULT" +msgid "only ON_ERROR STOP is allowed in BINARY mode" +msgstr "в режимі BINARY допускається лише ON_ERROR STOP" -#: commands/copy.c:617 +#: commands/copy.c:692 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "роздільник для COPY повинен бути однобайтовим символом" -#: commands/copy.c:624 +#: commands/copy.c:699 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "Роздільник для COPY не може бути символом нового рядка або повернення каретки" -#: commands/copy.c:630 +#: commands/copy.c:705 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "Подання NULL для COPY не може включати символ нового рядка або повернення каретки" -#: commands/copy.c:640 +#: commands/copy.c:715 #, c-format msgid "COPY default representation cannot use newline or carriage return" msgstr "Подання для COPY за замовчуванням не може включати символ нового рядка або повернення каретки" -#: commands/copy.c:658 +#: commands/copy.c:733 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "роздільник COPY не може бути \"%s\"" -#: commands/copy.c:664 +#. translator: %s is the name of a COPY option, e.g. ON_ERROR +#: commands/copy.c:747 commands/copy.c:764 commands/copy.c:776 +#: commands/copy.c:790 commands/copy.c:804 #, c-format -msgid "cannot specify HEADER in BINARY mode" -msgstr "не можна вказати HEADER у режимі BINARY" +msgid "COPY %s requires CSV mode" +msgstr "Для COPY %s потрібен режим CSV" -#: commands/copy.c:670 -#, c-format -msgid "COPY quote available only in CSV mode" -msgstr "лапки для COPY доустпні тільки в режимі CSV" - -#: commands/copy.c:675 +#: commands/copy.c:752 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "лапки для COPY повинні бути однобайтовим символом" -#: commands/copy.c:680 +#: commands/copy.c:757 #, c-format msgid "COPY delimiter and quote must be different" msgstr "роздільник і лапки для COPY повинні бути різними" -#: commands/copy.c:686 -#, c-format -msgid "COPY escape available only in CSV mode" -msgstr "вихід для COPY доступний тільки в режимі CSV" - -#: commands/copy.c:691 +#: commands/copy.c:769 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "вихід для COPY повинен бути однобайтовим символом" -#: commands/copy.c:697 -#, c-format -msgid "COPY force quote available only in CSV mode" -msgstr "Параметр force quote для COPY можна використати тільки в режимі CSV" - -#: commands/copy.c:701 -#, c-format -msgid "COPY force quote only available using COPY TO" -msgstr "Параметр force quote для COPY можна використати тільки з COPY TO" - -#: commands/copy.c:707 -#, c-format -msgid "COPY force not null available only in CSV mode" -msgstr "Параметр force not null для COPY можна використати тільки в режимі CSV" - -#: commands/copy.c:711 -#, c-format -msgid "COPY force not null only available using COPY FROM" -msgstr "Параметр force not null для COPY можна використати тільки з COPY FROM" - -#: commands/copy.c:717 -#, c-format -msgid "COPY force null available only in CSV mode" -msgstr "Параметр force null для COPY можна використати тільки в режимі CSV" - -#: commands/copy.c:722 -#, c-format -msgid "COPY force null only available using COPY FROM" -msgstr "Параметр force null only для COPY можна використати тільки з COPY FROM" - -#: commands/copy.c:728 -#, c-format -msgid "COPY delimiter must not appear in the NULL specification" -msgstr "роздільник COPY не повинен з'являтися у специфікації NULL" - -#: commands/copy.c:735 -#, c-format -msgid "CSV quote character must not appear in the NULL specification" -msgstr "лапки CSV не повинні з'являтися у специфікації NULL" - -#: commands/copy.c:742 -#, c-format -msgid "COPY DEFAULT only available using COPY FROM" -msgstr "COPY DEFAULT тільки для COPY FROM" - -#: commands/copy.c:748 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:819 commands/copy.c:855 #, c-format -msgid "COPY delimiter must not appear in the DEFAULT specification" -msgstr "роздільник COPY не повинен з'являтися у специфікації DEFAULT" +msgid "COPY delimiter character must not appear in the %s specification" +msgstr "символ розділювача для COPY не повинен з'являтися в специфікації %s" -#: commands/copy.c:755 +#. translator: %s is the name of a COPY option, e.g. NULL +#: commands/copy.c:828 commands/copy.c:864 #, c-format -msgid "CSV quote character must not appear in the DEFAULT specification" -msgstr "лапки CSV не повинні з'являтися у специфікації DEFAULT" +msgid "CSV quote character must not appear in the %s specification" +msgstr "лапки CSV не повинні з'являтися у специфікації %s" -#: commands/copy.c:763 +#: commands/copy.c:873 #, c-format msgid "NULL specification and DEFAULT specification cannot be the same" msgstr "Специфікація NULL і специфікація DEFAULT не може співпадати" -#: commands/copy.c:825 +#: commands/copy.c:935 #, c-format msgid "column \"%s\" is a generated column" msgstr "стовпець \"%s\" є згенерованим стовпцем" -#: commands/copy.c:827 +#: commands/copy.c:937 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Згенеровані стовпці не можна використовувати в COPY." -#: commands/copy.c:842 commands/indexcmds.c:1886 commands/statscmds.c:242 -#: commands/tablecmds.c:2405 commands/tablecmds.c:3127 -#: commands/tablecmds.c:3626 parser/parse_relation.c:3689 -#: parser/parse_relation.c:3699 parser/parse_relation.c:3717 -#: parser/parse_relation.c:3724 parser/parse_relation.c:3738 -#: utils/adt/tsvector_op.c:2855 +#: commands/copy.c:952 commands/indexcmds.c:1917 commands/statscmds.c:239 +#: commands/tablecmds.c:2509 commands/tablecmds.c:2980 +#: commands/tablecmds.c:3788 parser/parse_relation.c:3692 +#: parser/parse_relation.c:3702 parser/parse_relation.c:3720 +#: parser/parse_relation.c:3727 parser/parse_relation.c:3741 +#: utils/adt/tsvector_op.c:2853 #, c-format msgid "column \"%s\" does not exist" msgstr "стовпця \"%s\" не існує" -#: commands/copy.c:849 commands/tablecmds.c:2431 commands/trigger.c:958 -#: parser/parse_target.c:1070 parser/parse_target.c:1081 +#: commands/copy.c:959 commands/tablecmds.c:2535 commands/trigger.c:951 +#: parser/parse_target.c:1083 parser/parse_target.c:1094 #, c-format msgid "column \"%s\" specified more than once" msgstr "стовпець \"%s\" вказано більше чим один раз" -#: commands/copyfrom.c:122 +#: commands/copyfrom.c:118 #, c-format msgid "COPY %s" msgstr "COPY %s" -#: commands/copyfrom.c:130 +#: commands/copyfrom.c:126 #, c-format msgid "COPY %s, line %llu, column %s" msgstr "COPY %s, рядок %llu, стовпець %s" -#: commands/copyfrom.c:135 commands/copyfrom.c:181 +#: commands/copyfrom.c:131 commands/copyfrom.c:177 #, c-format msgid "COPY %s, line %llu" msgstr "COPY %s, рядок %llu" -#: commands/copyfrom.c:147 +#: commands/copyfrom.c:143 #, c-format msgid "COPY %s, line %llu, column %s: \"%s\"" msgstr "COPY %s, рядок %llu, стовпець %s: \"%s\"" -#: commands/copyfrom.c:157 +#: commands/copyfrom.c:153 #, c-format msgid "COPY %s, line %llu, column %s: null input" msgstr "COPY %s, рядок %llu, стовпець %s: null введення" -#: commands/copyfrom.c:174 +#: commands/copyfrom.c:170 #, c-format msgid "COPY %s, line %llu: \"%s\"" msgstr "COPY %s, рядок %llu: \"%s\"" @@ -6960,37 +7242,43 @@ msgstr "виконати COPY FREEZE через попередню активн msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "не можна виконати COPY FREEZE, тому, що таблиця не була створена або скорочена в поточній підтранзакції" -#: commands/copyfrom.c:1414 +#: commands/copyfrom.c:1313 #, c-format -msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" -msgstr "Стовпець FORCE_NOT_NULL \"%s\" не фігурує в COPY" +msgid "%llu row was skipped due to data type incompatibility" +msgid_plural "%llu rows were skipped due to data type incompatibility" +msgstr[0] "Рядок %llu пропущено через несумісність типів даних" +msgstr[1] "Рядки %llu пропущено через несумісність типів даних" +msgstr[2] "Рядки %llu пропущено через несумісність типів даних" +msgstr[3] "Рядки %llu пропущено через несумісність типів даних" -#: commands/copyfrom.c:1437 +#. translator: first %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#. translator: %s is the name of a COPY option, e.g. FORCE_NOT_NULL +#: commands/copyfrom.c:1448 commands/copyfrom.c:1491 commands/copyto.c:597 #, c-format -msgid "FORCE_NULL column \"%s\" not referenced by COPY" -msgstr "Стовпець FORCE_NULL \"%s\" не фігурує в COPY" +msgid "%s column \"%s\" not referenced by COPY" +msgstr "%s стовпець \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1490 utils/mb/mbutils.c:386 +#: commands/copyfrom.c:1544 utils/mb/mbutils.c:385 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "функції за замовчуванням перетворення з кодування \"%s\" в \"%s\" не існує" -#: commands/copyfrom.c:1690 +#: commands/copyfrom.c:1742 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROM наказує серверному процесу PostgreSQL прочитати дані з файлу. Можливо, вам потрібна клієнтська команда, наприклад \\copy в psql." -#: commands/copyfrom.c:1703 commands/copyto.c:708 +#: commands/copyfrom.c:1755 commands/copyto.c:702 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - каталог" -#: commands/copyfrom.c:1771 commands/copyto.c:306 libpq/be-secure-common.c:83 +#: commands/copyfrom.c:1823 commands/copyto.c:299 libpq/be-secure-common.c:83 #, c-format msgid "could not close pipe to external command: %m" msgstr "не вдалося закрити канал за допомогою зовнішньої команди: %m" -#: commands/copyfrom.c:1786 commands/copyto.c:311 +#: commands/copyfrom.c:1838 commands/copyto.c:304 #, c-format msgid "program \"%s\" failed" msgstr "збій програми \"%s\"" @@ -7031,17 +7319,17 @@ msgid "could not read from COPY file: %m" msgstr "не вдалося прочитати файл COPY: %m" #: commands/copyfromparse.c:278 commands/copyfromparse.c:303 -#: tcop/postgres.c:377 +#: replication/walsender.c:756 replication/walsender.c:782 tcop/postgres.c:381 #, c-format msgid "unexpected EOF on client connection with an open transaction" msgstr "неочікуваний обрив з'єднання з клієнтом при відкритій транзакції" -#: commands/copyfromparse.c:294 +#: commands/copyfromparse.c:294 replication/walsender.c:772 #, c-format msgid "unexpected message type 0x%02X during COPY from stdin" msgstr "неочікуваний тип повідомлення 0x%02X під час COPY з stdin" -#: commands/copyfromparse.c:317 +#: commands/copyfromparse.c:317 replication/walsender.c:803 #, c-format msgid "COPY from stdin failed: %s" msgstr "помилка при stdin COPY: %s" @@ -7061,8 +7349,8 @@ msgstr "невідповідність назви стовпця в полі з msgid "column name mismatch in header line field %d: got \"%s\", expected \"%s\"" msgstr "невідповідність назви стовпця в полі заголовку %d: отримано \"%s\", очікувалось \"%s\"" -#: commands/copyfromparse.c:892 commands/copyfromparse.c:1512 -#: commands/copyfromparse.c:1768 +#: commands/copyfromparse.c:892 commands/copyfromparse.c:1554 +#: commands/copyfromparse.c:1810 #, c-format msgid "extra data after last expected column" msgstr "зайві дані після вмісту останнього стовпця" @@ -7072,465 +7360,481 @@ msgstr "зайві дані після вмісту останнього сто msgid "missing data for column \"%s\"" msgstr "відсутні дані для стовпця \"%s\"" -#: commands/copyfromparse.c:999 +#: commands/copyfromparse.c:990 +#, c-format +msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": \"%s\"" +msgstr "пропуск рядка через несумісність типів даних в рядку %llu для стовпця \"%s\": \"%s\"" + +#: commands/copyfromparse.c:998 +#, c-format +msgid "skipping row due to data type incompatibility at line %llu for column \"%s\": null input" +msgstr "пропуск рядка через несумісність типів даних в рядку %llu для стовпця \"%s\": значення null" + +#: commands/copyfromparse.c:1044 #, c-format msgid "received copy data after EOF marker" msgstr "після маркера кінця файлу продовжуються дані COPY" -#: commands/copyfromparse.c:1006 +#: commands/copyfromparse.c:1051 #, c-format msgid "row field count is %d, expected %d" msgstr "кількість полів у рядку: %d, очікувалось: %d" -#: commands/copyfromparse.c:1294 commands/copyfromparse.c:1311 +#: commands/copyfromparse.c:1336 commands/copyfromparse.c:1353 #, c-format msgid "literal carriage return found in data" msgstr "в даних виявлено явне повернення каретки" -#: commands/copyfromparse.c:1295 commands/copyfromparse.c:1312 +#: commands/copyfromparse.c:1337 commands/copyfromparse.c:1354 #, c-format msgid "unquoted carriage return found in data" msgstr "в даних виявлено повернення каретки без лапок" -#: commands/copyfromparse.c:1297 commands/copyfromparse.c:1314 +#: commands/copyfromparse.c:1339 commands/copyfromparse.c:1356 #, c-format msgid "Use \"\\r\" to represent carriage return." msgstr "Використайте \"\\r\", щоб позначити повернення каретки." -#: commands/copyfromparse.c:1298 commands/copyfromparse.c:1315 +#: commands/copyfromparse.c:1340 commands/copyfromparse.c:1357 #, c-format msgid "Use quoted CSV field to represent carriage return." msgstr "Використайте CSV в лапках, щоб позначити повернення каретки." -#: commands/copyfromparse.c:1327 +#: commands/copyfromparse.c:1369 #, c-format msgid "literal newline found in data" msgstr "в даних знайдено явний новий рядок" -#: commands/copyfromparse.c:1328 +#: commands/copyfromparse.c:1370 #, c-format msgid "unquoted newline found in data" msgstr "в даних знайдено новий рядок без лапок" -#: commands/copyfromparse.c:1330 +#: commands/copyfromparse.c:1372 #, c-format msgid "Use \"\\n\" to represent newline." msgstr "Використайте \"\\n\", щоб представити новий рядок." -#: commands/copyfromparse.c:1331 +#: commands/copyfromparse.c:1373 #, c-format msgid "Use quoted CSV field to represent newline." msgstr "Використайте CSV в лапках, щоб позначити новий рядок." -#: commands/copyfromparse.c:1377 commands/copyfromparse.c:1413 +#: commands/copyfromparse.c:1419 commands/copyfromparse.c:1455 #, c-format msgid "end-of-copy marker does not match previous newline style" msgstr "маркер \"кінець копії\" не відповідає попередньому стилю нового рядка" -#: commands/copyfromparse.c:1386 commands/copyfromparse.c:1402 +#: commands/copyfromparse.c:1428 commands/copyfromparse.c:1444 #, c-format msgid "end-of-copy marker corrupt" msgstr "маркер \"кінець копії\" зіпсований" -#: commands/copyfromparse.c:1704 commands/copyfromparse.c:1919 +#: commands/copyfromparse.c:1746 commands/copyfromparse.c:1961 #, c-format msgid "unexpected default marker in COPY data" msgstr "неочікуваний маркер за замовчуванням в даних COPY" -#: commands/copyfromparse.c:1705 commands/copyfromparse.c:1920 +#: commands/copyfromparse.c:1747 commands/copyfromparse.c:1962 #, c-format msgid "Column \"%s\" has no default value." msgstr "Колонка \"%s\" не має значення за замовчуванням." -#: commands/copyfromparse.c:1852 +#: commands/copyfromparse.c:1894 #, c-format msgid "unterminated CSV quoted field" msgstr "незакінчене поле в лапках CSV" -#: commands/copyfromparse.c:1954 commands/copyfromparse.c:1973 +#: commands/copyfromparse.c:1996 commands/copyfromparse.c:2015 #, c-format msgid "unexpected EOF in COPY data" msgstr "неочікуваний кінец файлу в даних COPY" -#: commands/copyfromparse.c:1963 +#: commands/copyfromparse.c:2005 #, c-format msgid "invalid field size" msgstr "невірний розмір поля" -#: commands/copyfromparse.c:1986 +#: commands/copyfromparse.c:2028 #, c-format msgid "incorrect binary data format" msgstr "невірний двійковий формат даних" -#: commands/copyto.c:236 +#: commands/copyto.c:229 #, c-format msgid "could not write to COPY program: %m" msgstr "не вдалося записати в канал програми COPY: %m" -#: commands/copyto.c:241 +#: commands/copyto.c:234 #, c-format msgid "could not write to COPY file: %m" msgstr "не можливо записати в файл COPY: %m" -#: commands/copyto.c:386 +#: commands/copyto.c:379 #, c-format msgid "cannot copy from view \"%s\"" msgstr "неможливо скопіювати з подання \"%s\"" -#: commands/copyto.c:388 commands/copyto.c:394 commands/copyto.c:400 -#: commands/copyto.c:411 +#: commands/copyto.c:381 commands/copyto.c:387 commands/copyto.c:393 +#: commands/copyto.c:404 #, c-format msgid "Try the COPY (SELECT ...) TO variant." msgstr "Спробуйте варіацію COPY (SELECT ...) TO." -#: commands/copyto.c:392 +#: commands/copyto.c:385 #, c-format msgid "cannot copy from materialized view \"%s\"" msgstr "неможливо скопіювати з матеріалізованого подання \"%s\"" -#: commands/copyto.c:398 +#: commands/copyto.c:391 #, c-format msgid "cannot copy from foreign table \"%s\"" msgstr "неможливо скопіювати зі сторонньої таблиці \"%s\"" -#: commands/copyto.c:404 +#: commands/copyto.c:397 #, c-format msgid "cannot copy from sequence \"%s\"" msgstr "не вдалося скопіювати з послідовності \"%s\"" -#: commands/copyto.c:409 +#: commands/copyto.c:402 #, c-format msgid "cannot copy from partitioned table \"%s\"" msgstr "неможливо скопіювати з секційної таблиці \"%s\"" -#: commands/copyto.c:415 +#: commands/copyto.c:408 #, c-format msgid "cannot copy from non-table relation \"%s\"" msgstr "не можна копіювати з відношення \"%s\", котре не є таблицею" -#: commands/copyto.c:467 +#: commands/copyto.c:460 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for COPY" msgstr "правила DO INSTEAD NOTHING не підтримуються для COPY" -#: commands/copyto.c:481 +#: commands/copyto.c:474 #, c-format msgid "conditional DO INSTEAD rules are not supported for COPY" msgstr "умовні правила DO INSTEAD не підтримуються для COPY" -#: commands/copyto.c:485 +#: commands/copyto.c:478 #, c-format msgid "DO ALSO rules are not supported for the COPY" msgstr "правила DO ALSO не підтримуються для COPY" -#: commands/copyto.c:490 +#: commands/copyto.c:483 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for COPY" msgstr "складові правила DO INSTEAD не підтримуються з COPY" -#: commands/copyto.c:500 +#: commands/copyto.c:493 #, c-format msgid "COPY (SELECT INTO) is not supported" msgstr "COPY (SELECT INTO) не підтримується" -#: commands/copyto.c:517 +#: commands/copyto.c:511 #, c-format msgid "COPY query must have a RETURNING clause" msgstr "В запиті COPY повинно бути речення RETURNING" -#: commands/copyto.c:546 +#: commands/copyto.c:540 #, c-format msgid "relation referenced by COPY statement has changed" msgstr "відношення, згадане в операторі COPY, змінилось" -#: commands/copyto.c:605 -#, c-format -msgid "FORCE_QUOTE column \"%s\" not referenced by COPY" -msgstr "Стовпець FORCE_QUOTE \"%s\" не фігурує в COPY" - -#: commands/copyto.c:673 +#: commands/copyto.c:667 #, c-format msgid "relative path not allowed for COPY to file" msgstr "при виконанні COPY в файл не можна вказувати відносний шлях" -#: commands/copyto.c:692 +#: commands/copyto.c:686 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не вдалося відкрити файл \"%s\" для запису: %m" -#: commands/copyto.c:695 +#: commands/copyto.c:689 #, c-format msgid "COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY TO наказує серверному процесу PostgreSQL записати дані до файлу. Можливо, вам потрібна клієнтська команда, наприклад \\copy в psql." -#: commands/createas.c:215 commands/createas.c:523 +#: commands/createas.c:210 commands/createas.c:516 #, c-format msgid "too many column names were specified" msgstr "вказано забагато імен стовпців" -#: commands/createas.c:546 +#: commands/createas.c:539 #, c-format msgid "policies not yet implemented for this command" msgstr "політики для цієї команди все ще не реалізовані" -#: commands/dbcommands.c:822 +#: commands/dbcommands.c:829 #, c-format msgid "LOCATION is not supported anymore" msgstr "LOCATION більше не підтримується" -#: commands/dbcommands.c:823 +#: commands/dbcommands.c:830 #, c-format msgid "Consider using tablespaces instead." msgstr "Розгляньте можливість використання табличних просторів." -#: commands/dbcommands.c:848 +#: commands/dbcommands.c:855 #, c-format msgid "OIDs less than %u are reserved for system objects" msgstr "OID котрі менше ніж %u, зарезервовані для системних об'єктів" -#: commands/dbcommands.c:879 utils/adt/ascii.c:146 +#: commands/dbcommands.c:886 utils/adt/ascii.c:146 #, c-format msgid "%d is not a valid encoding code" msgstr "%d не є вірним кодом кодування" -#: commands/dbcommands.c:890 utils/adt/ascii.c:128 +#: commands/dbcommands.c:897 utils/adt/ascii.c:128 #, c-format msgid "%s is not a valid encoding name" msgstr "%s не є вірним ім'ям кодування" -#: commands/dbcommands.c:919 +#: commands/dbcommands.c:931 #, c-format msgid "unrecognized locale provider: %s" msgstr "нерозпізнаний постачальник локалів: %s" -#: commands/dbcommands.c:932 commands/dbcommands.c:2351 commands/user.c:300 -#: commands/user.c:740 +#: commands/dbcommands.c:944 commands/dbcommands.c:2419 commands/user.c:299 +#: commands/user.c:739 #, c-format msgid "invalid connection limit: %d" msgstr "недійсний ліміт з'єднання: %d" -#: commands/dbcommands.c:953 +#: commands/dbcommands.c:965 #, c-format msgid "permission denied to create database" msgstr "немає дозволу для створення бази даних" -#: commands/dbcommands.c:977 +#: commands/dbcommands.c:989 #, c-format msgid "template database \"%s\" does not exist" msgstr "шаблону бази даних \"%s\" не існує" -#: commands/dbcommands.c:987 +#: commands/dbcommands.c:999 #, c-format msgid "cannot use invalid database \"%s\" as template" msgstr "не можна використовувати невірну базу даних \"%s\" в якості шаблону" -#: commands/dbcommands.c:988 commands/dbcommands.c:2380 -#: utils/init/postinit.c:1100 +#: commands/dbcommands.c:1000 commands/dbcommands.c:2448 +#: utils/init/postinit.c:1112 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "Використайте DROP DATABASE для видалення невірних баз даних." -#: commands/dbcommands.c:999 +#: commands/dbcommands.c:1011 #, c-format msgid "permission denied to copy database \"%s\"" msgstr "немає дозволу для копіювання бази даних \"%s\"" -#: commands/dbcommands.c:1016 +#: commands/dbcommands.c:1028 #, c-format msgid "invalid create database strategy \"%s\"" msgstr "неприпустима стратегія створення бази даних \"%s\"" -#: commands/dbcommands.c:1017 +#: commands/dbcommands.c:1029 #, c-format -msgid "Valid strategies are \"wal_log\", and \"file_copy\"." -msgstr "Припустимі стратегії: \"wal_log\" і \"file_copy\"." +msgid "Valid strategies are \"wal_log\" and \"file_copy\"." +msgstr "Припустимі стратегії - це \"wal_log\" і \"file_copy\"." -#: commands/dbcommands.c:1043 +#: commands/dbcommands.c:1050 #, c-format msgid "invalid server encoding %d" msgstr "недійсний сервер кодування %d" -#: commands/dbcommands.c:1049 +#: commands/dbcommands.c:1056 #, c-format msgid "invalid LC_COLLATE locale name: \"%s\"" msgstr "неприпустиме ім'я локалі LC_COLLATE: \"%s\"" -#: commands/dbcommands.c:1050 commands/dbcommands.c:1056 +#: commands/dbcommands.c:1057 commands/dbcommands.c:1063 #, c-format msgid "If the locale name is specific to ICU, use ICU_LOCALE." msgstr "Якщо ім'я локалі характерне для ICU, використовуйте ICU_LOCALE." -#: commands/dbcommands.c:1055 +#: commands/dbcommands.c:1062 #, c-format msgid "invalid LC_CTYPE locale name: \"%s\"" msgstr "неприпустиме ім'я локалі LC_CTYPE: \"%s\"" -#: commands/dbcommands.c:1066 +#: commands/dbcommands.c:1074 +#, c-format +msgid "BUILTIN_LOCALE cannot be specified unless locale provider is builtin" +msgstr "BUILTIN_LOCALE не може бути вказано, якщо постачальник локалі не вбудований" + +#: commands/dbcommands.c:1082 +#, c-format +msgid "ICU locale cannot be specified unless locale provider is ICU" +msgstr "ICU локаль не може бути визначена, якщо постачальник локалі не ICU" + +#: commands/dbcommands.c:1100 +#, c-format +msgid "LOCALE or BUILTIN_LOCALE must be specified" +msgstr "Необхідно вказати LOCALE або BUILTIN_LOCALE" + +#: commands/dbcommands.c:1109 #, c-format msgid "encoding \"%s\" is not supported with ICU provider" msgstr "кодування \"%s\" не підтримується провайдером ICU" -#: commands/dbcommands.c:1076 +#: commands/dbcommands.c:1119 #, c-format msgid "LOCALE or ICU_LOCALE must be specified" msgstr "Необхідно вказати LOCALE або ICU_LOCALE" -#: commands/dbcommands.c:1105 -#, c-format -msgid "ICU locale cannot be specified unless locale provider is ICU" -msgstr "ICU локаль не може бути визначена, якщо постачальник локалі не ICU" - -#: commands/dbcommands.c:1128 +#: commands/dbcommands.c:1163 #, c-format msgid "new encoding (%s) is incompatible with the encoding of the template database (%s)" msgstr "нове кодування (%s) несумісне з кодуванням шаблона бази даних (%s)" -#: commands/dbcommands.c:1131 +#: commands/dbcommands.c:1166 #, c-format msgid "Use the same encoding as in the template database, or use template0 as template." msgstr "Використайте кодування шаблона бази даних або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1136 +#: commands/dbcommands.c:1171 #, c-format msgid "new collation (%s) is incompatible with the collation of the template database (%s)" msgstr "нове правило сортування (%s) несумісне з правилом в шаблоні бази даних (%s)" -#: commands/dbcommands.c:1138 +#: commands/dbcommands.c:1173 #, c-format msgid "Use the same collation as in the template database, or use template0 as template." msgstr "Використайте те ж саме правило сортування, що і в шаблоні бази даних, або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1143 +#: commands/dbcommands.c:1178 #, c-format msgid "new LC_CTYPE (%s) is incompatible with the LC_CTYPE of the template database (%s)" msgstr "новий параметр LC_CTYPE (%s) несумісний з LC_CTYPE в шаблоні бази даних (%s)" -#: commands/dbcommands.c:1145 +#: commands/dbcommands.c:1180 #, c-format msgid "Use the same LC_CTYPE as in the template database, or use template0 as template." msgstr "Використайте той самий LC_CTYPE, що і в шаблоні бази даних, або виберіть template0 в якості шаблона." -#: commands/dbcommands.c:1150 +#: commands/dbcommands.c:1185 #, c-format msgid "new locale provider (%s) does not match locale provider of the template database (%s)" msgstr "новий постачальник локалі (%s) не відповідає постачальнику локалі шаблону бази даних (%s)" -#: commands/dbcommands.c:1152 +#: commands/dbcommands.c:1187 #, c-format msgid "Use the same locale provider as in the template database, or use template0 as template." msgstr "Використайте такого ж постачальника локалі, що й у шаблоні бази даних, або використайте template0 в якості шаблону." -#: commands/dbcommands.c:1164 +#: commands/dbcommands.c:1199 #, c-format msgid "new ICU locale (%s) is incompatible with the ICU locale of the template database (%s)" msgstr "нова ICU локаль (%s) несумісна з ICU локалью шаблону бази даних (%s)" -#: commands/dbcommands.c:1166 +#: commands/dbcommands.c:1201 #, c-format msgid "Use the same ICU locale as in the template database, or use template0 as template." msgstr "Використайте таку ж ICU локаль, що й у шаблоні бази даних, або використайте template0 в якості шаблону." -#: commands/dbcommands.c:1177 +#: commands/dbcommands.c:1212 #, c-format msgid "new ICU collation rules (%s) are incompatible with the ICU collation rules of the template database (%s)" msgstr "нові правила сортування ICU (%s) несумісні з правилами сортування ICU шаблону бази даних (%s)" -#: commands/dbcommands.c:1179 +#: commands/dbcommands.c:1214 #, c-format msgid "Use the same ICU collation rules as in the template database, or use template0 as template." msgstr "Використайте ті ж правила сортування ICU, що й в шаблоні бази даних, або виберіть template0 в якості шаблону." -#: commands/dbcommands.c:1202 +#: commands/dbcommands.c:1243 #, c-format msgid "template database \"%s\" has a collation version, but no actual collation version could be determined" msgstr "шаблон бази даних \"%s\" має версію правил сортування, але фактичну версію визначити не вдалося" -#: commands/dbcommands.c:1207 +#: commands/dbcommands.c:1248 #, c-format msgid "template database \"%s\" has a collation version mismatch" msgstr "шаблон бази даних \"%s\" має невідповідність версії параметрів сортування" -#: commands/dbcommands.c:1209 +#: commands/dbcommands.c:1250 #, c-format msgid "The template database was created using collation version %s, but the operating system provides version %s." msgstr "Шаблон бази даних було створено за допомогою параметрів сортування версії %s, але операційна система надає версію %s." -#: commands/dbcommands.c:1212 +#: commands/dbcommands.c:1253 #, c-format msgid "Rebuild all objects in the template database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти шаблону бази даних, які використовують стандартний параметр сортування або виконайте ALTER DATABASE %s REFRESH COLLATION VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: commands/dbcommands.c:1248 commands/dbcommands.c:1980 +#: commands/dbcommands.c:1298 commands/dbcommands.c:2048 #, c-format msgid "pg_global cannot be used as default tablespace" msgstr "pg_global не можна використати в якості табличного простору за замовчуванням" -#: commands/dbcommands.c:1274 +#: commands/dbcommands.c:1324 #, c-format msgid "cannot assign new default tablespace \"%s\"" msgstr "не вдалося призначити новий табличний простір за замовчуванням \"%s\"" -#: commands/dbcommands.c:1276 +#: commands/dbcommands.c:1326 #, c-format msgid "There is a conflict because database \"%s\" already has some tables in this tablespace." msgstr "БД \"%s\" вже містить таблиці, що знаходяться в цьому табличному просторі." -#: commands/dbcommands.c:1306 commands/dbcommands.c:1853 +#: commands/dbcommands.c:1356 commands/dbcommands.c:1921 #, c-format msgid "database \"%s\" already exists" msgstr "база даних \"%s\" вже існує" -#: commands/dbcommands.c:1320 +#: commands/dbcommands.c:1370 #, c-format msgid "source database \"%s\" is being accessed by other users" msgstr "вихідна база даних \"%s\" зайнята іншими користувачами" -#: commands/dbcommands.c:1342 +#: commands/dbcommands.c:1392 #, c-format msgid "database OID %u is already in use by database \"%s\"" msgstr "OID %u вже використовується базою даних \"%s\" вже використовує" -#: commands/dbcommands.c:1348 +#: commands/dbcommands.c:1398 #, c-format msgid "data directory with the specified OID %u already exists" msgstr "каталог даних з вказаним OID %u вже існує" -#: commands/dbcommands.c:1520 commands/dbcommands.c:1535 +#: commands/dbcommands.c:1571 commands/dbcommands.c:1586 +#: utils/adt/pg_locale.c:2565 #, c-format msgid "encoding \"%s\" does not match locale \"%s\"" msgstr "кодування \"%s\" не відповідає локалі \"%s\"" -#: commands/dbcommands.c:1523 +#: commands/dbcommands.c:1574 #, c-format msgid "The chosen LC_CTYPE setting requires encoding \"%s\"." msgstr "Обраний параметр LC_CTYPE потребує кодування \"%s\"." -#: commands/dbcommands.c:1538 +#: commands/dbcommands.c:1589 #, c-format msgid "The chosen LC_COLLATE setting requires encoding \"%s\"." msgstr "Обраний параметр LC_COLLATE потребує кодування \"%s\"." -#: commands/dbcommands.c:1619 +#: commands/dbcommands.c:1672 #, c-format msgid "database \"%s\" does not exist, skipping" msgstr "бази даних \"%s\" не існує, пропускаємо" -#: commands/dbcommands.c:1643 +#: commands/dbcommands.c:1696 #, c-format msgid "cannot drop a template database" msgstr "неможливо видалити шаблон бази даних" -#: commands/dbcommands.c:1649 +#: commands/dbcommands.c:1702 #, c-format msgid "cannot drop the currently open database" msgstr "неможливо видалити наразі відкриту базу даних" -#: commands/dbcommands.c:1662 +#: commands/dbcommands.c:1715 #, c-format msgid "database \"%s\" is used by an active logical replication slot" msgstr "база даних \"%s\" використовується активним слотом логічної реплікації" -#: commands/dbcommands.c:1664 +#: commands/dbcommands.c:1717 #, c-format msgid "There is %d active slot." msgid_plural "There are %d active slots." @@ -7539,12 +7843,12 @@ msgstr[1] "Активні слоти %d." msgstr[2] "Активних слотів %d." msgstr[3] "Активних слотів %d." -#: commands/dbcommands.c:1678 +#: commands/dbcommands.c:1731 #, c-format msgid "database \"%s\" is being used by logical replication subscription" msgstr "база даних \"%s\" використовується в підписці логічної реплікації" -#: commands/dbcommands.c:1680 +#: commands/dbcommands.c:1733 #, c-format msgid "There is %d subscription." msgid_plural "There are %d subscriptions." @@ -7553,74 +7857,74 @@ msgstr[1] "Знайдено підписки %d." msgstr[2] "Знайдено підписок %d." msgstr[3] "Знайдено підписок %d." -#: commands/dbcommands.c:1701 commands/dbcommands.c:1875 -#: commands/dbcommands.c:2002 +#: commands/dbcommands.c:1754 commands/dbcommands.c:1943 +#: commands/dbcommands.c:2070 #, c-format msgid "database \"%s\" is being accessed by other users" msgstr "база даних \"%s\" зайнята іншими користувачами" -#: commands/dbcommands.c:1835 +#: commands/dbcommands.c:1903 #, c-format msgid "permission denied to rename database" msgstr "немає дозволу для перейменування бази даних" -#: commands/dbcommands.c:1864 +#: commands/dbcommands.c:1932 #, c-format msgid "current database cannot be renamed" msgstr "поточна база даних не може бути перейменована" -#: commands/dbcommands.c:1958 +#: commands/dbcommands.c:2026 #, c-format msgid "cannot change the tablespace of the currently open database" msgstr "неможливо змінити табличний простір наразі відкритої бази даних" -#: commands/dbcommands.c:2064 +#: commands/dbcommands.c:2132 #, c-format msgid "some relations of database \"%s\" are already in tablespace \"%s\"" msgstr "деякі відношення бази даних \"%s\" вже є в табличному просторі \"%s\"" -#: commands/dbcommands.c:2066 +#: commands/dbcommands.c:2134 #, c-format msgid "You must move them back to the database's default tablespace before using this command." msgstr "Перед тим, як виконувати цю команду, вам треба повернути їх в табличний простір за замовчуванням для цієї бази даних." -#: commands/dbcommands.c:2193 commands/dbcommands.c:2909 -#: commands/dbcommands.c:3209 commands/dbcommands.c:3322 +#: commands/dbcommands.c:2261 commands/dbcommands.c:2996 +#: commands/dbcommands.c:3296 commands/dbcommands.c:3409 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "у старому каталозі бази даних \"%s\" могли залишитися непотрібні файли" -#: commands/dbcommands.c:2254 +#: commands/dbcommands.c:2322 #, c-format msgid "unrecognized DROP DATABASE option \"%s\"" msgstr "нерозпізнаний параметр DROP DATABASE \"%s\"" -#: commands/dbcommands.c:2332 +#: commands/dbcommands.c:2400 #, c-format msgid "option \"%s\" cannot be specified with other options" msgstr "параметр \"%s\" не може бути вказаним з іншими параметрами" -#: commands/dbcommands.c:2379 +#: commands/dbcommands.c:2447 #, c-format msgid "cannot alter invalid database \"%s\"" msgstr "неможливо змінити невірну базу даних \"%s\"" -#: commands/dbcommands.c:2396 +#: commands/dbcommands.c:2464 #, c-format msgid "cannot disallow connections for current database" msgstr "не можна заборонити з'єднання для поточної бази даних" -#: commands/dbcommands.c:2611 +#: commands/dbcommands.c:2690 #, c-format msgid "permission denied to change owner of database" msgstr "немає дозволу для зміни власника бази даних" -#: commands/dbcommands.c:3015 +#: commands/dbcommands.c:3102 #, c-format msgid "There are %d other session(s) and %d prepared transaction(s) using the database." msgstr "Знайдено %d інших сеансів і %d підготованих транзакцій з використанням цієї бази даних." -#: commands/dbcommands.c:3018 +#: commands/dbcommands.c:3105 #, c-format msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." @@ -7629,7 +7933,7 @@ msgstr[1] "Є %d інші сеанси з використанням цієї б msgstr[2] "Є %d інших сеансів з використанням цієї бази даних." msgstr[3] "Є %d інших сеансів з використанням цієї бази даних." -#: commands/dbcommands.c:3023 storage/ipc/procarray.c:3797 +#: commands/dbcommands.c:3110 storage/ipc/procarray.c:3859 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7638,583 +7942,598 @@ msgstr[1] "З цією базою даних пов'язані %d підгото msgstr[2] "З цією базою даних пов'язані %d підготовлених транзакцій." msgstr[3] "З цією базою даних пов'язані %d підготовлених транзакцій." -#: commands/dbcommands.c:3165 +#: commands/dbcommands.c:3252 #, c-format msgid "missing directory \"%s\"" msgstr "відсутній каталог \"%s\"" -#: commands/dbcommands.c:3223 commands/tablespace.c:190 -#: commands/tablespace.c:639 +#: commands/dbcommands.c:3310 commands/tablespace.c:184 +#: commands/tablespace.c:633 #, c-format msgid "could not stat directory \"%s\": %m" msgstr "не вдалося отримати інформацію про каталог \"%s\": %m" -#: commands/define.c:54 commands/define.c:258 commands/define.c:290 -#: commands/define.c:318 commands/define.c:364 +#: commands/define.c:53 commands/define.c:257 commands/define.c:289 +#: commands/define.c:317 commands/define.c:363 #, c-format msgid "%s requires a parameter" msgstr "%s потребує параметру" -#: commands/define.c:87 commands/define.c:98 commands/define.c:192 -#: commands/define.c:210 commands/define.c:225 commands/define.c:243 +#: commands/define.c:86 commands/define.c:97 commands/define.c:191 +#: commands/define.c:209 commands/define.c:224 commands/define.c:242 #, c-format msgid "%s requires a numeric value" msgstr "%s потребує числового значення" -#: commands/define.c:154 +#: commands/define.c:153 #, c-format msgid "%s requires a Boolean value" msgstr "%s потребує логічного значення" -#: commands/define.c:168 commands/define.c:177 commands/define.c:327 +#: commands/define.c:167 commands/define.c:176 commands/define.c:326 #, c-format msgid "%s requires an integer value" msgstr "%s потребує ціле значення" -#: commands/define.c:272 +#: commands/define.c:271 #, c-format msgid "argument of %s must be a name" msgstr "аргументом %s повинно бути ім'я" -#: commands/define.c:302 +#: commands/define.c:301 #, c-format msgid "argument of %s must be a type name" msgstr "аргументом %s повинно бути ім'я типу" -#: commands/define.c:348 +#: commands/define.c:347 #, c-format msgid "invalid argument for %s: \"%s\"" msgstr "невірний аргумент для %s: \"%s\"" -#: commands/dropcmds.c:101 commands/functioncmds.c:1387 -#: utils/adt/ruleutils.c:2895 +#: commands/dropcmds.c:96 commands/functioncmds.c:1382 +#: utils/adt/ruleutils.c:2905 #, c-format msgid "\"%s\" is an aggregate function" msgstr "\"%s\" є функцією агрегату" -#: commands/dropcmds.c:103 +#: commands/dropcmds.c:98 #, c-format msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "Використайте DROP AGGREGATE, щоб видалити агрегатні функції." -#: commands/dropcmds.c:158 commands/sequence.c:474 commands/tablecmds.c:3710 -#: commands/tablecmds.c:3868 commands/tablecmds.c:3920 -#: commands/tablecmds.c:16482 tcop/utility.c:1336 +#: commands/dropcmds.c:153 commands/sequence.c:462 commands/tablecmds.c:3872 +#: commands/tablecmds.c:4030 commands/tablecmds.c:4082 +#: commands/tablecmds.c:17058 tcop/utility.c:1325 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "відношення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:188 commands/dropcmds.c:287 commands/tablecmds.c:1285 +#: commands/dropcmds.c:183 commands/dropcmds.c:282 commands/tablecmds.c:1392 #, c-format msgid "schema \"%s\" does not exist, skipping" msgstr "схеми \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:228 commands/dropcmds.c:267 commands/tablecmds.c:277 +#: commands/dropcmds.c:223 commands/dropcmds.c:262 commands/tablecmds.c:286 #, c-format msgid "type \"%s\" does not exist, skipping" msgstr "типу \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:257 +#: commands/dropcmds.c:252 #, c-format msgid "access method \"%s\" does not exist, skipping" msgstr "методу доступу \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:275 +#: commands/dropcmds.c:270 #, c-format msgid "collation \"%s\" does not exist, skipping" msgstr "правила сортування \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:282 +#: commands/dropcmds.c:277 #, c-format msgid "conversion \"%s\" does not exist, skipping" msgstr "перетворення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:293 commands/statscmds.c:654 +#: commands/dropcmds.c:288 commands/statscmds.c:664 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "об'єкту статистики \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:300 +#: commands/dropcmds.c:295 #, c-format msgid "text search parser \"%s\" does not exist, skipping" msgstr "парсеру текстового пошуку \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:307 +#: commands/dropcmds.c:302 #, c-format msgid "text search dictionary \"%s\" does not exist, skipping" msgstr "словника текстового пошуку \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:314 +#: commands/dropcmds.c:309 #, c-format msgid "text search template \"%s\" does not exist, skipping" msgstr "шаблону текстового пошуку \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:321 +#: commands/dropcmds.c:316 #, c-format msgid "text search configuration \"%s\" does not exist, skipping" msgstr "конфігурації текстового пошуку \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:326 +#: commands/dropcmds.c:321 #, c-format msgid "extension \"%s\" does not exist, skipping" msgstr "розширення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:336 +#: commands/dropcmds.c:331 #, c-format msgid "function %s(%s) does not exist, skipping" msgstr "функції %s(%s) не існує, пропускаємо" -#: commands/dropcmds.c:349 +#: commands/dropcmds.c:344 #, c-format msgid "procedure %s(%s) does not exist, skipping" msgstr "процедури %s(%s) не існує, пропускаємо" -#: commands/dropcmds.c:362 +#: commands/dropcmds.c:357 #, c-format msgid "routine %s(%s) does not exist, skipping" msgstr "підпрограми %s(%s) не існує, пропускаємо" -#: commands/dropcmds.c:375 +#: commands/dropcmds.c:370 #, c-format msgid "aggregate %s(%s) does not exist, skipping" msgstr "агрегату %s(%s) не існує, пропускаємо" -#: commands/dropcmds.c:388 +#: commands/dropcmds.c:383 #, c-format msgid "operator %s does not exist, skipping" msgstr "оператора \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:394 +#: commands/dropcmds.c:389 #, c-format msgid "language \"%s\" does not exist, skipping" msgstr "мови \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:403 +#: commands/dropcmds.c:398 #, c-format msgid "cast from type %s to type %s does not exist, skipping" msgstr "приведення від типу %s до типу %s не існує, пропускаємо" -#: commands/dropcmds.c:412 +#: commands/dropcmds.c:407 #, c-format msgid "transform for type %s language \"%s\" does not exist, skipping" msgstr "трансформації для типу %s мови \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:420 +#: commands/dropcmds.c:415 #, c-format msgid "trigger \"%s\" for relation \"%s\" does not exist, skipping" msgstr "тригеру \"%s\" для відношення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:429 +#: commands/dropcmds.c:424 #, c-format msgid "policy \"%s\" for relation \"%s\" does not exist, skipping" msgstr "політики \"%s\" для відношення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:436 +#: commands/dropcmds.c:431 #, c-format msgid "event trigger \"%s\" does not exist, skipping" msgstr "тригеру подій \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:442 +#: commands/dropcmds.c:437 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist, skipping" msgstr "правила \"%s\" для відношення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:449 +#: commands/dropcmds.c:444 #, c-format msgid "foreign-data wrapper \"%s\" does not exist, skipping" msgstr "джерела сторонніх даних \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:453 commands/foreigncmds.c:1360 +#: commands/dropcmds.c:448 commands/foreigncmds.c:1360 #, c-format msgid "server \"%s\" does not exist, skipping" msgstr "серверу \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:462 +#: commands/dropcmds.c:457 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\", skipping" msgstr "класу операторів \"%s\" не існує для методу доступу \"%s\", пропускаємо" -#: commands/dropcmds.c:474 +#: commands/dropcmds.c:469 #, c-format msgid "operator family \"%s\" does not exist for access method \"%s\", skipping" msgstr "сімейства операторів \"%s\" не існує для методу доступу \"%s\", пропускаємо" -#: commands/dropcmds.c:481 +#: commands/dropcmds.c:476 #, c-format msgid "publication \"%s\" does not exist, skipping" msgstr "публікації \"%s\" не існує, пропускаємо" -#: commands/event_trigger.c:125 +#: commands/event_trigger.c:137 #, c-format msgid "permission denied to create event trigger \"%s\"" msgstr "немає дозволу для створення тригера подій %s\"" -#: commands/event_trigger.c:127 +#: commands/event_trigger.c:139 #, c-format msgid "Must be superuser to create an event trigger." msgstr "Тільки суперкористувач може створити тригер подій." -#: commands/event_trigger.c:136 +#: commands/event_trigger.c:149 #, c-format msgid "unrecognized event name \"%s\"" msgstr "нерозпізнане ім'я подій \"%s\"" -#: commands/event_trigger.c:153 +#: commands/event_trigger.c:166 #, c-format msgid "unrecognized filter variable \"%s\"" msgstr "нерозпізнана змінна фільтру \"%s\"" -#: commands/event_trigger.c:207 +#: commands/event_trigger.c:181 +#, c-format +msgid "tag filtering is not supported for login event triggers" +msgstr "фільтрація тегів не підтримується для тригерів події входу" + +#: commands/event_trigger.c:224 #, c-format msgid "filter value \"%s\" not recognized for filter variable \"%s\"" msgstr "значення фільтру \"%s\" не розпізнано для змінної фільтру \"%s\"" #. translator: %s represents an SQL statement name -#: commands/event_trigger.c:213 commands/event_trigger.c:235 +#: commands/event_trigger.c:230 commands/event_trigger.c:252 #, c-format msgid "event triggers are not supported for %s" msgstr "для %s тригери подій не підтримуються" -#: commands/event_trigger.c:248 +#: commands/event_trigger.c:265 #, c-format msgid "filter variable \"%s\" specified more than once" msgstr "змінну фільтра \"%s\" вказано кілька разів" -#: commands/event_trigger.c:376 commands/event_trigger.c:420 -#: commands/event_trigger.c:514 +#: commands/event_trigger.c:435 commands/event_trigger.c:487 +#: commands/event_trigger.c:581 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "тригеру подій \"%s\" не існує" -#: commands/event_trigger.c:452 +#: commands/event_trigger.c:519 #, c-format msgid "event trigger with OID %u does not exist" msgstr "тригер подій %u з OID не існує" -#: commands/event_trigger.c:482 +#: commands/event_trigger.c:549 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "немає дозволу для зміни власника тригера подій \"%s\"" -#: commands/event_trigger.c:484 +#: commands/event_trigger.c:551 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "Власником тригеру подій може бути тільки суперкористувач." -#: commands/event_trigger.c:1304 +#: commands/event_trigger.c:1411 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції sql_drop" -#: commands/event_trigger.c:1397 commands/event_trigger.c:1418 +#: commands/event_trigger.c:1504 commands/event_trigger.c:1525 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції table_rewrite" -#: commands/event_trigger.c:1831 +#: commands/event_trigger.c:1938 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s можливо викликати тільки в подієвій тригерній функції" -#: commands/explain.c:220 +#: commands/explain.c:241 commands/explain.c:266 #, c-format msgid "unrecognized value for EXPLAIN option \"%s\": \"%s\"" msgstr "нерозпізнане значення параметру EXPLAIN \"%s\": \"%s\"" -#: commands/explain.c:227 +#: commands/explain.c:273 #, c-format msgid "unrecognized EXPLAIN option \"%s\"" msgstr "нерозпізнаний параметр EXPLAIN \"%s\"" -#: commands/explain.c:236 +#: commands/explain.c:282 #, c-format msgid "EXPLAIN option WAL requires ANALYZE" msgstr "Параметр WAL оператора EXPLAIN потребує вказівки ANALYZE" -#: commands/explain.c:245 +#: commands/explain.c:291 #, c-format msgid "EXPLAIN option TIMING requires ANALYZE" msgstr "Параметр TIMING оператора EXPLAIN потребує вказівки ANALYZE" -#: commands/explain.c:251 +#: commands/explain.c:297 +#, c-format +msgid "EXPLAIN option SERIALIZE requires ANALYZE" +msgstr "Параметр SERIALIZE оператора EXPLAIN потребує вказівки ANALYZE" + +#: commands/explain.c:303 #, c-format msgid "EXPLAIN options ANALYZE and GENERIC_PLAN cannot be used together" msgstr "Параметри ANALYZE і GENERIC_PLAN не можуть використовуватись разом" -#: commands/extension.c:177 commands/extension.c:3033 +#: commands/extension.c:178 commands/extension.c:3031 #, c-format msgid "extension \"%s\" does not exist" msgstr "розширення \"%s\" не існує" -#: commands/extension.c:276 commands/extension.c:285 commands/extension.c:297 -#: commands/extension.c:307 +#: commands/extension.c:277 commands/extension.c:286 commands/extension.c:298 +#: commands/extension.c:308 #, c-format msgid "invalid extension name: \"%s\"" msgstr "невірне ім'я розширення: \"%s\"" -#: commands/extension.c:277 +#: commands/extension.c:278 #, c-format msgid "Extension names must not be empty." msgstr "Імена розширення не повинні бути пустими." -#: commands/extension.c:286 +#: commands/extension.c:287 #, c-format msgid "Extension names must not contain \"--\"." msgstr "Імена розширення не повинні містити \"--\"." -#: commands/extension.c:298 +#: commands/extension.c:299 #, c-format msgid "Extension names must not begin or end with \"-\"." msgstr "Імена розширення не повинні починатися або закінчуватися символом \"-\"." -#: commands/extension.c:308 +#: commands/extension.c:309 #, c-format msgid "Extension names must not contain directory separator characters." msgstr "Імена розширення не повинні містити роздільники шляху." -#: commands/extension.c:323 commands/extension.c:332 commands/extension.c:341 -#: commands/extension.c:351 +#: commands/extension.c:324 commands/extension.c:333 commands/extension.c:342 +#: commands/extension.c:352 #, c-format msgid "invalid extension version name: \"%s\"" msgstr "невірне ім'я версії розширення: \"%s\"" -#: commands/extension.c:324 +#: commands/extension.c:325 #, c-format msgid "Version names must not be empty." msgstr "Імена версії не повинні бути пустими." -#: commands/extension.c:333 +#: commands/extension.c:334 #, c-format msgid "Version names must not contain \"--\"." msgstr "Імена версії не повинні містити \"--\"." -#: commands/extension.c:342 +#: commands/extension.c:343 #, c-format msgid "Version names must not begin or end with \"-\"." msgstr "Імена версії не повинні починатись або закінчуватись символом \"-\"." -#: commands/extension.c:352 +#: commands/extension.c:353 #, c-format msgid "Version names must not contain directory separator characters." msgstr "Імена версії не повинні містити роздільники шляху." -#: commands/extension.c:506 +#: commands/extension.c:507 #, c-format msgid "extension \"%s\" is not available" msgstr "розширення \"%s\" недоступне" -#: commands/extension.c:507 +#: commands/extension.c:508 #, c-format msgid "Could not open extension control file \"%s\": %m." msgstr "Не вдалося відкрити контрольний файл розширення \"%s\": %m." -#: commands/extension.c:509 +#: commands/extension.c:510 #, c-format msgid "The extension must first be installed on the system where PostgreSQL is running." msgstr "Розширення спочатку має бути встановлене в системі, де запущено PostgreSQL." -#: commands/extension.c:513 +#: commands/extension.c:514 #, c-format msgid "could not open extension control file \"%s\": %m" msgstr "не вдалося відкрити керуючий файл розширення \"%s\": %m" -#: commands/extension.c:536 commands/extension.c:546 +#: commands/extension.c:537 commands/extension.c:547 #, c-format msgid "parameter \"%s\" cannot be set in a secondary extension control file" msgstr "параметр \"%s\" не можна задавати в додатковому керуючому файлі розширення" -#: commands/extension.c:568 commands/extension.c:576 commands/extension.c:584 -#: utils/misc/guc.c:3100 +#: commands/extension.c:569 commands/extension.c:577 commands/extension.c:585 +#: utils/misc/guc.c:3147 #, c-format msgid "parameter \"%s\" requires a Boolean value" msgstr "параметр \"%s\" потребує логічного значення" -#: commands/extension.c:593 +#: commands/extension.c:594 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не є невірним ім'ям кодування" -#: commands/extension.c:607 commands/extension.c:622 +#: commands/extension.c:608 commands/extension.c:623 #, c-format msgid "parameter \"%s\" must be a list of extension names" msgstr "параметр \"%s\" повинен містити список імен розширень" -#: commands/extension.c:629 +#: commands/extension.c:630 #, c-format msgid "unrecognized parameter \"%s\" in file \"%s\"" msgstr "нерозпізнаний параметр \"%s\" в файлі \"%s\"" -#: commands/extension.c:638 +#: commands/extension.c:639 #, c-format msgid "parameter \"schema\" cannot be specified when \"relocatable\" is true" msgstr "параметр \"schema\" не може бути вказаним, коли \"relocatable\" є дійсним" -#: commands/extension.c:816 +#: commands/extension.c:817 #, c-format msgid "transaction control statements are not allowed within an extension script" msgstr "в скрипті розширення не повинно бути операторів управління транзакціями" -#: commands/extension.c:896 +#: commands/extension.c:897 #, c-format msgid "permission denied to create extension \"%s\"" msgstr "немає дозволу для створення розширення %s\"" -#: commands/extension.c:899 +#: commands/extension.c:900 #, c-format msgid "Must have CREATE privilege on current database to create this extension." msgstr "Необхідно мати право CREATE для поточної бази даних щоб створити це розширення." -#: commands/extension.c:900 +#: commands/extension.c:901 #, c-format msgid "Must be superuser to create this extension." msgstr "Тільки суперкористувач може створити це розширення." -#: commands/extension.c:904 +#: commands/extension.c:905 #, c-format msgid "permission denied to update extension \"%s\"" msgstr "немає дозволу для оновлення розширення %s\"" -#: commands/extension.c:907 +#: commands/extension.c:908 #, c-format msgid "Must have CREATE privilege on current database to update this extension." msgstr "Необхідно мати право CREATE для поточної бази даних щоб оновити це розширення." -#: commands/extension.c:908 +#: commands/extension.c:909 #, c-format msgid "Must be superuser to update this extension." msgstr "Тільки суперкористувач може оновити це розширення." -#: commands/extension.c:1046 +#: commands/extension.c:1042 #, c-format msgid "invalid character in extension owner: must not contain any of \"%s\"" msgstr "неприпустимий символ у власника розширення: не може містити жодного з \"%s\"" -#: commands/extension.c:1070 commands/extension.c:1097 +#: commands/extension.c:1066 commands/extension.c:1093 #, c-format msgid "invalid character in extension \"%s\" schema: must not contain any of \"%s\"" msgstr "неприпустимий символ у розширенні \"%s\" схеми: не повинно містити жодної з \"%s\"" -#: commands/extension.c:1292 +#: commands/extension.c:1288 #, c-format msgid "extension \"%s\" has no update path from version \"%s\" to version \"%s\"" msgstr "розширення \"%s\" не має жодного шляху оновлення від версії \"%s\" до версії \"%s\"" -#: commands/extension.c:1500 commands/extension.c:3091 +#: commands/extension.c:1496 commands/extension.c:3089 #, c-format msgid "version to install must be specified" msgstr "для інсталяції слід указати версію" -#: commands/extension.c:1537 +#: commands/extension.c:1533 #, c-format msgid "extension \"%s\" has no installation script nor update path for version \"%s\"" msgstr "розширення \"%s\" не має ні скрипту для встановлення, ні шляху оновлення для версії \"%s\"" -#: commands/extension.c:1571 +#: commands/extension.c:1567 #, c-format msgid "extension \"%s\" must be installed in schema \"%s\"" msgstr "розширення \"%s\" треба встановлювати в схемі \"%s\"" -#: commands/extension.c:1731 +#: commands/extension.c:1727 #, c-format msgid "cyclic dependency detected between extensions \"%s\" and \"%s\"" msgstr "виявлено циклічну залежність між розширеннями \"%s\" і \"%s\"" -#: commands/extension.c:1736 +#: commands/extension.c:1732 #, c-format msgid "installing required extension \"%s\"" msgstr "встановлення необхідних розширень \"%s\"" -#: commands/extension.c:1759 +#: commands/extension.c:1755 #, c-format msgid "required extension \"%s\" is not installed" msgstr "необхідні розширення \"%s\" не встановлено" -#: commands/extension.c:1762 +#: commands/extension.c:1758 #, c-format msgid "Use CREATE EXTENSION ... CASCADE to install required extensions too." msgstr "Використайте CREATE EXTENSION ... CASCADE також для встановлення необхідних розширень." -#: commands/extension.c:1797 +#: commands/extension.c:1793 #, c-format msgid "extension \"%s\" already exists, skipping" msgstr "розширення \"%s\" вже існує, пропускаємо" -#: commands/extension.c:1804 +#: commands/extension.c:1800 #, c-format msgid "extension \"%s\" already exists" msgstr "розширення \"%s\" вже існує" -#: commands/extension.c:1815 +#: commands/extension.c:1811 #, c-format msgid "nested CREATE EXTENSION is not supported" msgstr "вкладенні оператори CREATE EXTENSION не підтримуються" -#: commands/extension.c:1979 +#: commands/extension.c:1975 #, c-format msgid "cannot drop extension \"%s\" because it is being modified" msgstr "неможливо видалити розширення \"%s\", оскільки воно змінюється" -#: commands/extension.c:2454 +#: commands/extension.c:2450 #, c-format msgid "%s can only be called from an SQL script executed by CREATE EXTENSION" msgstr "%s можна викликати лише з SQL-скрипта, виконаного CREATE EXTENSION" -#: commands/extension.c:2466 +#: commands/extension.c:2462 #, c-format msgid "OID %u does not refer to a table" msgstr "OID %u не посилається на таблицю" -#: commands/extension.c:2471 +#: commands/extension.c:2467 #, c-format msgid "table \"%s\" is not a member of the extension being created" msgstr "таблиця \"%s\" не є членом створеного розширення" -#: commands/extension.c:2817 +#: commands/extension.c:2813 #, c-format msgid "cannot move extension \"%s\" into schema \"%s\" because the extension contains the schema" msgstr "неможливо перемістити розширення \"%s\" в схему \"%s\", оскільки розширення містить схему" -#: commands/extension.c:2858 commands/extension.c:2952 +#: commands/extension.c:2854 commands/extension.c:2948 #, c-format msgid "extension \"%s\" does not support SET SCHEMA" msgstr "розширення \"%s\" не підтримує SET SCHEMA" -#: commands/extension.c:2915 +#: commands/extension.c:2911 #, c-format msgid "cannot SET SCHEMA of extension \"%s\" because other extensions prevent it" msgstr "неможливо виконати SET SCHEMA для розширення \"%s\", оскільки інші розширення заважають цьому" -#: commands/extension.c:2917 +#: commands/extension.c:2913 #, c-format msgid "Extension \"%s\" requests no relocation of extension \"%s\"." msgstr "Розширення \"%s\" запитує не переносити розширення \"%s\"." -#: commands/extension.c:2954 +#: commands/extension.c:2950 #, c-format msgid "%s is not in the extension's schema \"%s\"" msgstr "%s не є схемою розширення \"%s\"" -#: commands/extension.c:3013 +#: commands/extension.c:3011 #, c-format msgid "nested ALTER EXTENSION is not supported" msgstr "вкладенні оператори ALTER EXTENSION не підтримуються" -#: commands/extension.c:3102 +#: commands/extension.c:3100 #, c-format msgid "version \"%s\" of extension \"%s\" is already installed" msgstr "версія \"%s\" розширення \"%s\" вже встановлена" -#: commands/extension.c:3314 +#: commands/extension.c:3311 #, c-format msgid "cannot add an object of this type to an extension" msgstr "додати об'єкт цього типу до розширення не можна" -#: commands/extension.c:3380 +#: commands/extension.c:3409 #, c-format msgid "cannot add schema \"%s\" to extension \"%s\" because the schema contains the extension" msgstr "неможливо додати схему \"%s\" до розширення \"%s\", оскільки схема містить розширення" -#: commands/extension.c:3474 +#: commands/extension.c:3491 commands/typecmds.c:4042 utils/fmgr/funcapi.c:725 +#, c-format +msgid "could not find multirange type for data type %s" +msgstr "не вдалося знайти багатодіапазонний тип для типу даних %s" + +#: commands/extension.c:3532 #, c-format msgid "file \"%s\" is too large" msgstr "файл \"%s\" занадто великий" @@ -8244,7 +8563,7 @@ msgstr "Треба бути суперкористувачем, щоб змін msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "Власником джерела сторонніх даних може бути тільки суперкористувач." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:678 +#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:691 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "джерела сторонніх даних \"%s\" не існує" @@ -8314,7 +8633,7 @@ msgstr "зіставлення користувача \"%s\" не існує д msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "зіставлення користувача \"%s\" не існує для сервера \"%s\", пропускаємо" -#: commands/foreigncmds.c:1507 foreign/foreign.c:391 +#: commands/foreigncmds.c:1507 foreign/foreign.c:404 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "джерело сторонніх даних \"%s\" не має обробника" @@ -8329,363 +8648,368 @@ msgstr "джерело сторонніх даних \"%s\" не підтрим msgid "importing foreign table \"%s\"" msgstr "імпорт сторонньої таблиці \"%s\"" -#: commands/functioncmds.c:109 +#: commands/functioncmds.c:104 #, c-format msgid "SQL function cannot return shell type %s" msgstr "SQL-функція не може повертати тип оболонки %s" -#: commands/functioncmds.c:114 +#: commands/functioncmds.c:109 #, c-format msgid "return type %s is only a shell" msgstr "тип, що повертається, %s - лише оболонка" -#: commands/functioncmds.c:143 parser/parse_type.c:354 +#: commands/functioncmds.c:138 parser/parse_type.c:354 #, c-format msgid "type modifier cannot be specified for shell type \"%s\"" msgstr "для типу оболонки \"%s\" неможливо вказати модифікатор типу" -#: commands/functioncmds.c:149 +#: commands/functioncmds.c:144 #, c-format msgid "type \"%s\" is not yet defined" msgstr "тип \"%s\" все ще не визначений" -#: commands/functioncmds.c:150 +#: commands/functioncmds.c:145 #, c-format msgid "Creating a shell type definition." msgstr "Створення визначення типу оболонки." -#: commands/functioncmds.c:249 +#: commands/functioncmds.c:244 #, c-format msgid "SQL function cannot accept shell type %s" msgstr "SQL-функція не може приймати значення типу оболонки %s" -#: commands/functioncmds.c:255 +#: commands/functioncmds.c:250 #, c-format msgid "aggregate cannot accept shell type %s" msgstr "агрегатна функція не може приймати значення типу оболонки %s" -#: commands/functioncmds.c:260 +#: commands/functioncmds.c:255 #, c-format msgid "argument type %s is only a shell" msgstr "тип аргументу %s - лише оболонка" -#: commands/functioncmds.c:270 +#: commands/functioncmds.c:265 #, c-format msgid "type %s does not exist" msgstr "тип \"%s\" не існує" -#: commands/functioncmds.c:284 +#: commands/functioncmds.c:279 #, c-format msgid "aggregates cannot accept set arguments" msgstr "агрегатні функції не приймають в аргументах набору" -#: commands/functioncmds.c:288 +#: commands/functioncmds.c:283 #, c-format msgid "procedures cannot accept set arguments" msgstr "процедури не приймають в аргументах набору" -#: commands/functioncmds.c:292 +#: commands/functioncmds.c:287 #, c-format msgid "functions cannot accept set arguments" msgstr "функції не приймають в аргументах набору" -#: commands/functioncmds.c:302 +#: commands/functioncmds.c:297 #, c-format msgid "VARIADIC parameter must be the last input parameter" msgstr "Параметр VARIADIC повинен бути останнім в списку вхідних параметрів" -#: commands/functioncmds.c:322 +#: commands/functioncmds.c:317 #, c-format msgid "VARIADIC parameter must be the last parameter" msgstr "Параметр VARIADIC повинен бути останнім параметром" -#: commands/functioncmds.c:347 +#: commands/functioncmds.c:342 #, c-format msgid "VARIADIC parameter must be an array" msgstr "Параметр VARIADIC повинен бути масивом" -#: commands/functioncmds.c:392 +#: commands/functioncmds.c:387 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "ім'я параметру «%s» використано декілька разів" -#: commands/functioncmds.c:410 +#: commands/functioncmds.c:405 #, c-format msgid "only input parameters can have default values" msgstr "тільки ввідні параметри можуть мати значення за замовчуванням" -#: commands/functioncmds.c:425 +#: commands/functioncmds.c:420 #, c-format msgid "cannot use table references in parameter default value" msgstr "у значенні параметру за замовчуванням не можна посилатись на таблиці" -#: commands/functioncmds.c:449 +#: commands/functioncmds.c:444 #, c-format msgid "input parameters after one with a default value must also have defaults" msgstr "вхідні параметри, наступні за параметром зі значенням \"за замовчуванням\", також повинні мати значення \"за замовчуванням\"" -#: commands/functioncmds.c:459 +#: commands/functioncmds.c:454 #, c-format msgid "procedure OUT parameters cannot appear after one with a default value" msgstr "параметри процедури OUT не можуть з'являтись після параметра зі значенням за замовчуванням" -#: commands/functioncmds.c:601 commands/functioncmds.c:780 +#: commands/functioncmds.c:596 commands/functioncmds.c:775 #, c-format msgid "invalid attribute in procedure definition" msgstr "некоректний атрибут у визначенні процедури" -#: commands/functioncmds.c:697 +#: commands/functioncmds.c:692 #, c-format msgid "support function %s must return type %s" msgstr "функція підтримки %s повинна повертати тип %s" -#: commands/functioncmds.c:708 +#: commands/functioncmds.c:703 #, c-format msgid "must be superuser to specify a support function" msgstr "для уточнення функції підтримки потрібно бути суперкористувачем" -#: commands/functioncmds.c:829 commands/functioncmds.c:1432 +#: commands/functioncmds.c:824 commands/functioncmds.c:1427 #, c-format msgid "COST must be positive" msgstr "COST має бути додатнім" -#: commands/functioncmds.c:837 commands/functioncmds.c:1440 +#: commands/functioncmds.c:832 commands/functioncmds.c:1435 #, c-format msgid "ROWS must be positive" msgstr "Значення ROWS повинно бути позитивним" -#: commands/functioncmds.c:866 +#: commands/functioncmds.c:861 #, c-format msgid "no function body specified" msgstr "не вказано тіло функції" -#: commands/functioncmds.c:871 +#: commands/functioncmds.c:866 #, c-format msgid "duplicate function body specified" msgstr "вказано тіло дубліката функції" -#: commands/functioncmds.c:876 +#: commands/functioncmds.c:871 #, c-format msgid "inline SQL function body only valid for language SQL" msgstr "вбудоване тіло функції SQL допустиме лише для мови SQL" -#: commands/functioncmds.c:918 +#: commands/functioncmds.c:913 #, c-format msgid "SQL function with unquoted function body cannot have polymorphic arguments" msgstr "SQL функція з тілом без лапок не може мати поліморфні аргументи" -#: commands/functioncmds.c:944 commands/functioncmds.c:963 +#: commands/functioncmds.c:939 commands/functioncmds.c:958 #, c-format msgid "%s is not yet supported in unquoted SQL function body" msgstr "%s ще не підтримується у тілі SQL функції без лапок" -#: commands/functioncmds.c:991 +#: commands/functioncmds.c:986 #, c-format msgid "only one AS item needed for language \"%s\"" msgstr "для мови \"%s\" потрібен лише один вираз AS" -#: commands/functioncmds.c:1096 +#: commands/functioncmds.c:1091 #, c-format msgid "no language specified" msgstr "не вказано жодної мови" -#: commands/functioncmds.c:1104 commands/functioncmds.c:2105 -#: commands/proclang.c:237 +#: commands/functioncmds.c:1099 commands/functioncmds.c:2117 +#: commands/proclang.c:235 #, c-format msgid "language \"%s\" does not exist" msgstr "мови \"%s\" не існує" -#: commands/functioncmds.c:1106 commands/functioncmds.c:2107 +#: commands/functioncmds.c:1101 commands/functioncmds.c:2119 #, c-format msgid "Use CREATE EXTENSION to load the language into the database." msgstr "Використайте CREATE EXTENSION, щоб завантажити мову в базу даних." -#: commands/functioncmds.c:1139 commands/functioncmds.c:1424 +#: commands/functioncmds.c:1134 commands/functioncmds.c:1419 #, c-format msgid "only superuser can define a leakproof function" msgstr "лише суперкористувачі можуть визначити функцію з атрибутом leakproof" -#: commands/functioncmds.c:1190 +#: commands/functioncmds.c:1185 #, c-format msgid "function result type must be %s because of OUT parameters" msgstr "результат функції повинен мати тип %s відповідно з параметрами OUT" -#: commands/functioncmds.c:1203 +#: commands/functioncmds.c:1198 #, c-format msgid "function result type must be specified" msgstr "необхідно вказати тип результату функції" -#: commands/functioncmds.c:1256 commands/functioncmds.c:1444 +#: commands/functioncmds.c:1251 commands/functioncmds.c:1439 #, c-format msgid "ROWS is not applicable when function does not return a set" msgstr "ROWS не застосовується, коли функція не повертає набір" -#: commands/functioncmds.c:1547 +#: commands/functioncmds.c:1546 #, c-format msgid "source data type %s is a pseudo-type" msgstr "вихідний тип даних %s є псевдотипом" -#: commands/functioncmds.c:1553 +#: commands/functioncmds.c:1552 #, c-format msgid "target data type %s is a pseudo-type" msgstr "цільовий тип даних %s є псевдотипом" -#: commands/functioncmds.c:1577 +#: commands/functioncmds.c:1576 #, c-format msgid "cast will be ignored because the source data type is a domain" msgstr "приведення буде ігноруватися, оскільки вихідні дані мають тип домену" -#: commands/functioncmds.c:1582 +#: commands/functioncmds.c:1581 #, c-format msgid "cast will be ignored because the target data type is a domain" msgstr "приведення буде ігноруватися, оскільки цільові дані мають тип домену" -#: commands/functioncmds.c:1607 +#: commands/functioncmds.c:1606 #, c-format msgid "cast function must take one to three arguments" msgstr "функція приведення повинна приймати від одного до трьох аргументів" -#: commands/functioncmds.c:1613 +#: commands/functioncmds.c:1612 #, c-format msgid "argument of cast function must match or be binary-coercible from source data type" msgstr "аргумент функції приведення повинен співпадати або бути двійково-сумісним з вихідним типом даних" -#: commands/functioncmds.c:1617 +#: commands/functioncmds.c:1616 #, c-format msgid "second argument of cast function must be type %s" msgstr "другий аргумент функції приведення повинен мати тип %s" -#: commands/functioncmds.c:1622 +#: commands/functioncmds.c:1621 #, c-format msgid "third argument of cast function must be type %s" msgstr "третій аргумент функції приведення повинен мати тип %s" -#: commands/functioncmds.c:1629 +#: commands/functioncmds.c:1628 #, c-format msgid "return data type of cast function must match or be binary-coercible to target data type" msgstr "тип вертаючих даних функції приведення повинен співпадати або бути двійково-сумісним з цільовим типом даних" -#: commands/functioncmds.c:1640 +#: commands/functioncmds.c:1639 #, c-format msgid "cast function must not be volatile" msgstr "функція приведення не може бути змінною (volatile)" -#: commands/functioncmds.c:1645 +#: commands/functioncmds.c:1644 #, c-format msgid "cast function must be a normal function" msgstr "функція приведення повинна бути звичайною функцією" -#: commands/functioncmds.c:1649 +#: commands/functioncmds.c:1648 #, c-format msgid "cast function must not return a set" msgstr "функція приведення не може вертати набір" -#: commands/functioncmds.c:1675 +#: commands/functioncmds.c:1674 #, c-format msgid "must be superuser to create a cast WITHOUT FUNCTION" msgstr "тільки суперкористувач може створити приведення WITHOUT FUNCTION" -#: commands/functioncmds.c:1690 +#: commands/functioncmds.c:1689 #, c-format msgid "source and target data types are not physically compatible" msgstr "вихідний та цільовий типи даних не сумісні фізично" -#: commands/functioncmds.c:1705 +#: commands/functioncmds.c:1709 #, c-format msgid "composite data types are not binary-compatible" msgstr "складені типи даних не сумісні на двійковому рівні" -#: commands/functioncmds.c:1711 -#, c-format -msgid "enum data types are not binary-compatible" -msgstr "типи переліку не сумісні на двійковому рівні" - -#: commands/functioncmds.c:1717 +#: commands/functioncmds.c:1715 #, c-format msgid "array data types are not binary-compatible" msgstr "типи масивів не сумісні на двійковому рівні" -#: commands/functioncmds.c:1734 +#: commands/functioncmds.c:1723 +#, c-format +msgid "range data types are not binary-compatible" +msgstr "типи-діапазону не сумісні на двійковому рівні" + +#: commands/functioncmds.c:1729 +#, c-format +msgid "enum data types are not binary-compatible" +msgstr "типи переліку не сумісні на двійковому рівні" + +#: commands/functioncmds.c:1746 #, c-format msgid "domain data types must not be marked binary-compatible" msgstr "типи доменів не можуть вважатись сумісними на двійковому рівні" -#: commands/functioncmds.c:1744 +#: commands/functioncmds.c:1756 #, c-format msgid "source data type and target data type are the same" msgstr "вихідний тип даних співпадає з цільовим типом" -#: commands/functioncmds.c:1777 +#: commands/functioncmds.c:1789 #, c-format msgid "transform function must not be volatile" msgstr "функція перетворення не може бути мінливою" -#: commands/functioncmds.c:1781 +#: commands/functioncmds.c:1793 #, c-format msgid "transform function must be a normal function" msgstr "функція перетворення повинна бути нормальною функцією" -#: commands/functioncmds.c:1785 +#: commands/functioncmds.c:1797 #, c-format msgid "transform function must not return a set" msgstr "функція перетворення не повинна повертати набір" -#: commands/functioncmds.c:1789 +#: commands/functioncmds.c:1801 #, c-format msgid "transform function must take one argument" msgstr "функція перетворення повинна приймати один аргумент" -#: commands/functioncmds.c:1793 +#: commands/functioncmds.c:1805 #, c-format msgid "first argument of transform function must be type %s" msgstr "перший аргумент функції перетворення повинен бути типу %s" -#: commands/functioncmds.c:1832 +#: commands/functioncmds.c:1844 #, c-format msgid "data type %s is a pseudo-type" msgstr "тип даних %s є псевдотипом" -#: commands/functioncmds.c:1838 +#: commands/functioncmds.c:1850 #, c-format msgid "data type %s is a domain" msgstr "тип даних %s є доменом" -#: commands/functioncmds.c:1878 +#: commands/functioncmds.c:1890 #, c-format msgid "return data type of FROM SQL function must be %s" msgstr "результат функції FROM SQL має бути типу %s" -#: commands/functioncmds.c:1904 +#: commands/functioncmds.c:1916 #, c-format msgid "return data type of TO SQL function must be the transform data type" msgstr "результат функції TO SQL повинен мати тип даних перетворення" -#: commands/functioncmds.c:1931 +#: commands/functioncmds.c:1943 #, c-format msgid "transform for type %s language \"%s\" already exists" msgstr "перетворення для типу %s мови \"%s\" вже існує" -#: commands/functioncmds.c:2017 +#: commands/functioncmds.c:2029 #, c-format msgid "transform for type %s language \"%s\" does not exist" msgstr "перетворення для типу %s мови \"%s\" не існує" -#: commands/functioncmds.c:2041 +#: commands/functioncmds.c:2053 #, c-format msgid "function %s already exists in schema \"%s\"" msgstr "функція %s вже існує в схемі \"%s\"" -#: commands/functioncmds.c:2092 +#: commands/functioncmds.c:2104 #, c-format msgid "no inline code specified" msgstr "не вказано жодного впровадженого коду" -#: commands/functioncmds.c:2138 +#: commands/functioncmds.c:2150 #, c-format msgid "language \"%s\" does not support inline code execution" msgstr "мова \"%s\" не підтримує виконання впровадженого коду" -#: commands/functioncmds.c:2233 +#: commands/functioncmds.c:2245 #, c-format msgid "cannot pass more than %d argument to a procedure" msgid_plural "cannot pass more than %d arguments to a procedure" @@ -8694,555 +9018,560 @@ msgstr[1] "процедурі неможливо передати більше % msgstr[2] "процедурі неможливо передати більше %d аргументів" msgstr[3] "процедурі неможливо передати більше %d аргументів" -#: commands/indexcmds.c:640 +#: commands/indexcmds.c:648 #, c-format msgid "must specify at least one column" msgstr "треба вказати хоча б один стовпець" -#: commands/indexcmds.c:644 +#: commands/indexcmds.c:652 #, c-format msgid "cannot use more than %d columns in an index" msgstr "не можна використовувати більше ніж %d стовпців в індексі" -#: commands/indexcmds.c:687 +#: commands/indexcmds.c:695 #, c-format msgid "cannot create index on relation \"%s\"" msgstr "створити індекс для відношення \"%s\" не можна" -#: commands/indexcmds.c:713 +#: commands/indexcmds.c:721 #, c-format msgid "cannot create index on partitioned table \"%s\" concurrently" msgstr "неможливо створити індекс в секційній таблиці \"%s\" паралельним способом" -#: commands/indexcmds.c:718 -#, c-format -msgid "cannot create exclusion constraints on partitioned table \"%s\"" -msgstr "створити обмеження-виняток в секціонованій таблиці \"%s\" не можна" - -#: commands/indexcmds.c:728 +#: commands/indexcmds.c:731 #, c-format msgid "cannot create indexes on temporary tables of other sessions" msgstr "неможливо створити індекси в тимчасових таблицях в інших сеансах" -#: commands/indexcmds.c:766 commands/tablecmds.c:784 commands/tablespace.c:1184 +#: commands/indexcmds.c:769 commands/tablecmds.c:801 commands/tablespace.c:1178 #, c-format msgid "cannot specify default tablespace for partitioned relations" msgstr "для секціонованих відношень не можна вказати табличний простір за замовчуванням" -#: commands/indexcmds.c:798 commands/tablecmds.c:819 commands/tablecmds.c:3409 +#: commands/indexcmds.c:801 commands/tablecmds.c:832 commands/tablecmds.c:3571 #, c-format msgid "only shared relations can be placed in pg_global tablespace" msgstr "тільки спільні відношення можуть бути поміщені в табличний pg_global" -#: commands/indexcmds.c:831 +#: commands/indexcmds.c:834 #, c-format msgid "substituting access method \"gist\" for obsolete method \"rtree\"" msgstr "застарілий метод доступу \"rtree\" підміняється методом \"gist\"" -#: commands/indexcmds.c:852 +#: commands/indexcmds.c:855 #, c-format msgid "access method \"%s\" does not support unique indexes" msgstr "методу доступу \"%s\" не підтримує унікальні індекси" -#: commands/indexcmds.c:857 +#: commands/indexcmds.c:860 #, c-format msgid "access method \"%s\" does not support included columns" msgstr "методу доступу \"%s\" не підтримує включені стовпці" -#: commands/indexcmds.c:862 +#: commands/indexcmds.c:865 #, c-format msgid "access method \"%s\" does not support multicolumn indexes" msgstr "метод доступу \"%s\" не підтримує багатостовпцеві індекси" -#: commands/indexcmds.c:867 +#: commands/indexcmds.c:870 #, c-format msgid "access method \"%s\" does not support exclusion constraints" msgstr "метод доступу \"%s\" не підтримує обмеження-винятки" -#: commands/indexcmds.c:994 +#: commands/indexcmds.c:999 #, c-format msgid "cannot match partition key to an index using access method \"%s\"" msgstr "не можна зіставити ключ розділу з індексом використовуючи метод доступу \"%s\"" -#: commands/indexcmds.c:1004 +#: commands/indexcmds.c:1009 #, c-format msgid "unsupported %s constraint with partition key definition" msgstr "непідтримуване обмеження \"%s\" з визначенням ключа секціонування" -#: commands/indexcmds.c:1006 +#: commands/indexcmds.c:1011 #, c-format msgid "%s constraints cannot be used when partition keys include expressions." msgstr "обмеження %s не можуть використовуватись, якщо ключі секціонування включають вирази." -#: commands/indexcmds.c:1048 +#: commands/indexcmds.c:1061 +#, c-format +msgid "cannot match partition key to index on column \"%s\" using non-equal operator \"%s\"" +msgstr "не вдається зіставити ключ розділу з індексом у стовпці \"%s\" за допомогою оператора нерівності \"%s\"" + +#: commands/indexcmds.c:1077 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "обмеження унікальності в секціонованій таблиці повинно включати всі стовпці секціонування" -#: commands/indexcmds.c:1049 +#: commands/indexcmds.c:1078 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "в обмеженні %s таблиці\"%s\" не вистачає стовпця \"%s\", що є частиною ключа секціонування." -#: commands/indexcmds.c:1068 commands/indexcmds.c:1087 +#: commands/indexcmds.c:1097 commands/indexcmds.c:1116 #, c-format msgid "index creation on system columns is not supported" msgstr "створення індексу для системних стовпців не підтримується" -#: commands/indexcmds.c:1316 tcop/utility.c:1526 +#: commands/indexcmds.c:1346 tcop/utility.c:1515 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "не можна створити унікальний індекс в секціонованій таблиці \"%s\"" -#: commands/indexcmds.c:1318 tcop/utility.c:1528 +#: commands/indexcmds.c:1348 tcop/utility.c:1517 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Таблиця \"%s\" містить секції, які є зовнішніми таблицями." -#: commands/indexcmds.c:1803 +#: commands/indexcmds.c:1833 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функції в предикаті індексу повинні бути позначені як IMMUTABLE" -#: commands/indexcmds.c:1881 parser/parse_utilcmd.c:2522 -#: parser/parse_utilcmd.c:2657 +#: commands/indexcmds.c:1912 parser/parse_utilcmd.c:2519 +#: parser/parse_utilcmd.c:2654 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "вказаний у ключі стовпець \"%s\" не існує" -#: commands/indexcmds.c:1905 parser/parse_utilcmd.c:1821 +#: commands/indexcmds.c:1936 parser/parse_utilcmd.c:1807 #, c-format msgid "expressions are not supported in included columns" msgstr "вирази не підтримуються у включених стовпцях " -#: commands/indexcmds.c:1946 +#: commands/indexcmds.c:1977 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "функції в індексному виразі повинні бути позначені як IMMUTABLE" -#: commands/indexcmds.c:1961 +#: commands/indexcmds.c:1992 #, c-format msgid "including column does not support a collation" msgstr "включені стовпці не підтримують правила сортування" -#: commands/indexcmds.c:1965 +#: commands/indexcmds.c:1996 #, c-format msgid "including column does not support an operator class" msgstr "включені стовпці не підтримують класи операторів" -#: commands/indexcmds.c:1969 +#: commands/indexcmds.c:2000 #, c-format msgid "including column does not support ASC/DESC options" msgstr "включені стовпці не підтримують параметри ASC/DESC" -#: commands/indexcmds.c:1973 +#: commands/indexcmds.c:2004 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "включені стовпці не підтримують параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:2014 +#: commands/indexcmds.c:2047 #, c-format msgid "could not determine which collation to use for index expression" msgstr "не вдалося визначити, яке правило сортування використати для індексного виразу" -#: commands/indexcmds.c:2022 commands/tablecmds.c:17497 commands/typecmds.c:807 -#: parser/parse_expr.c:2722 parser/parse_type.c:568 parser/parse_utilcmd.c:3783 -#: utils/adt/misc.c:586 +#: commands/indexcmds.c:2055 commands/tablecmds.c:18075 commands/typecmds.c:811 +#: parser/parse_expr.c:2785 parser/parse_type.c:568 parser/parse_utilcmd.c:3771 +#: utils/adt/misc.c:630 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не підтримує правила сортування" -#: commands/indexcmds.c:2087 +#: commands/indexcmds.c:2122 #, c-format msgid "operator %s is not commutative" msgstr "оператор %s не комутативний" -#: commands/indexcmds.c:2089 +#: commands/indexcmds.c:2124 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "В обмеженнях-виключеннях можуть використовуватись лише комутативні оператори." -#: commands/indexcmds.c:2115 +#: commands/indexcmds.c:2150 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "оператор %s не є членом сімейства операторів \"%s\"" -#: commands/indexcmds.c:2118 +#: commands/indexcmds.c:2153 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "Оператор винятку для обмеження повинен відноситись до класу операторів індексу." -#: commands/indexcmds.c:2153 +#: commands/indexcmds.c:2188 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "метод доступу \"%s\" не підтримує параметри ASC/DESC" -#: commands/indexcmds.c:2158 +#: commands/indexcmds.c:2193 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступу \"%s\" не підтримує параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:2204 commands/tablecmds.c:17522 -#: commands/tablecmds.c:17528 commands/typecmds.c:2301 +#: commands/indexcmds.c:2237 commands/tablecmds.c:18100 +#: commands/tablecmds.c:18106 commands/typecmds.c:2311 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "тип даних %s не має класу операторів за замовчуванням для методу доступу \"%s\"" -#: commands/indexcmds.c:2206 +#: commands/indexcmds.c:2239 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "Ви повинні вказати клас операторів для індексу або визначити клас операторів за замовчуванням для цього типу даних." -#: commands/indexcmds.c:2235 commands/indexcmds.c:2243 -#: commands/opclasscmds.c:205 +#: commands/indexcmds.c:2268 commands/indexcmds.c:2276 +#: commands/opclasscmds.c:204 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "клас операторів \"%s\" не існує для методу доступу \"%s\"" -#: commands/indexcmds.c:2257 commands/typecmds.c:2289 +#: commands/indexcmds.c:2290 commands/typecmds.c:2299 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "клас операторів \"%s\" не приймає тип даних %s" -#: commands/indexcmds.c:2347 +#: commands/indexcmds.c:2380 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "для типу даних %s є кілька класів операторів за замовчуванням" -#: commands/indexcmds.c:2675 +#: commands/indexcmds.c:2708 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нерозпізнаний параметр REINDEX \"%s\"" -#: commands/indexcmds.c:2899 +#: commands/indexcmds.c:2940 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "таблиця \"%s\" не має індексів, які можна переіндексувати паралельно" -#: commands/indexcmds.c:2913 +#: commands/indexcmds.c:2954 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "таблиця \"%s\" не має індексів для переіндексування" -#: commands/indexcmds.c:2958 commands/indexcmds.c:3468 -#: commands/indexcmds.c:3596 +#: commands/indexcmds.c:3001 commands/indexcmds.c:3512 +#: commands/indexcmds.c:3642 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "не можна конкурентно переіндексувати системні каталоги" -#: commands/indexcmds.c:2981 +#: commands/indexcmds.c:3025 #, c-format msgid "can only reindex the currently open database" msgstr "переіндексувати можна тільки наразі відкриту базу даних" -#: commands/indexcmds.c:3075 +#: commands/indexcmds.c:3117 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "не можна конкурентно переіндексувати системні каталоги, пропускаємо" -#: commands/indexcmds.c:3108 +#: commands/indexcmds.c:3150 #, c-format msgid "cannot move system relations, skipping all" msgstr "не можна перемістити системні відношення, пропускаються усі" -#: commands/indexcmds.c:3154 +#: commands/indexcmds.c:3196 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "під час переіндексування секціонованої таблиці \"%s.%s\"" -#: commands/indexcmds.c:3157 +#: commands/indexcmds.c:3199 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "під час переіндексування секціонованого індексу \"%s.%s\"" -#: commands/indexcmds.c:3348 commands/indexcmds.c:4204 +#: commands/indexcmds.c:3392 commands/indexcmds.c:4268 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "таблиця \"%s.%s\" була переіндексована" -#: commands/indexcmds.c:3500 commands/indexcmds.c:3552 +#: commands/indexcmds.c:3544 commands/indexcmds.c:3597 +#, c-format +msgid "skipping reindex of invalid index \"%s.%s\"" +msgstr "пропуск пере індексації недійсного індексу \"%s.%s\"" + +#: commands/indexcmds.c:3547 commands/indexcmds.c:3600 #, c-format -msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" -msgstr "неможливо переіндексувати пошкоджений індекс \"%s.%s\" паралельно, пропускається" +msgid "Use DROP INDEX or REINDEX INDEX." +msgstr "Використовуйте DROP INDEX або REINDEX INDEX." -#: commands/indexcmds.c:3506 +#: commands/indexcmds.c:3551 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндексувати індекс обмеження-виключення \"%s.%s\" паралельно, пропускається" -#: commands/indexcmds.c:3661 +#: commands/indexcmds.c:3707 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "неможливо переіндексувати цей тип відношень паралельон" -#: commands/indexcmds.c:3682 +#: commands/indexcmds.c:3725 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "не можна перемістити не спільне відношення до табличного простору \"%s\"" -#: commands/indexcmds.c:4185 commands/indexcmds.c:4197 +#: commands/indexcmds.c:4249 commands/indexcmds.c:4261 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "індекс \"%s.%s\" був перебудований" -#: commands/indexcmds.c:4187 commands/indexcmds.c:4206 +#: commands/indexcmds.c:4251 commands/indexcmds.c:4270 #, c-format msgid "%s." msgstr "%s." -#: commands/lockcmds.c:92 +#: commands/lockcmds.c:91 #, c-format msgid "cannot lock relation \"%s\"" msgstr "блокувати відношення \"%s\" не можна" -#: commands/matview.c:193 +#: commands/matview.c:206 #, c-format msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY не може використовуватись, коли матеріалізоване подання не наповнено" -#: commands/matview.c:199 gram.y:18306 +#: commands/matview.c:212 gram.y:18918 #, c-format msgid "%s and %s options cannot be used together" msgstr "параметри %s та %s не можуть бути використані разом" -#: commands/matview.c:256 +#: commands/matview.c:269 #, c-format msgid "cannot refresh materialized view \"%s\" concurrently" msgstr "оновити матеріалізоване подання \"%s\" паралельно не можна" -#: commands/matview.c:259 +#: commands/matview.c:272 #, c-format msgid "Create a unique index with no WHERE clause on one or more columns of the materialized view." msgstr "Створіть унікальний індекс без речення WHERE для одного або більше стовпців матеріалізованого подання." -#: commands/matview.c:653 +#: commands/matview.c:666 #, c-format msgid "new data for materialized view \"%s\" contains duplicate rows without any null columns" msgstr "нові дані для матеріалізованого подання \"%s\" містять рядки, які дублюються (без урахування стовпців з null)" -#: commands/matview.c:655 +#: commands/matview.c:668 #, c-format msgid "Row: %s" msgstr "Рядок: %s" -#: commands/opclasscmds.c:124 +#: commands/opclasscmds.c:123 #, c-format msgid "operator family \"%s\" does not exist for access method \"%s\"" msgstr "сімейство операторів \"%s\" не існує для методу доступу \"%s\"" -#: commands/opclasscmds.c:267 +#: commands/opclasscmds.c:266 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists" msgstr "сімейство операторів \"%s\" для методу доступу \"%s\" вже існує" -#: commands/opclasscmds.c:416 +#: commands/opclasscmds.c:415 #, c-format msgid "must be superuser to create an operator class" msgstr "тільки суперкористувач може створити клас операторів" -#: commands/opclasscmds.c:493 commands/opclasscmds.c:910 -#: commands/opclasscmds.c:1056 +#: commands/opclasscmds.c:492 commands/opclasscmds.c:909 +#: commands/opclasscmds.c:1055 #, c-format msgid "invalid operator number %d, must be between 1 and %d" msgstr "неприпустимий номер оператора %d, число має бути між 1 і %d" -#: commands/opclasscmds.c:538 commands/opclasscmds.c:960 -#: commands/opclasscmds.c:1072 +#: commands/opclasscmds.c:537 commands/opclasscmds.c:959 +#: commands/opclasscmds.c:1071 #, c-format msgid "invalid function number %d, must be between 1 and %d" msgstr "неприпустимий номер функції %d, число має бути між 1 і %d" -#: commands/opclasscmds.c:567 +#: commands/opclasscmds.c:566 #, c-format msgid "storage type specified more than once" msgstr "тип сховища вказано більше одного разу" -#: commands/opclasscmds.c:594 +#: commands/opclasscmds.c:593 #, c-format msgid "storage type cannot be different from data type for access method \"%s\"" msgstr "тип сховища не може відрізнятися від типу даних для методу доступу \"%s\"" -#: commands/opclasscmds.c:610 +#: commands/opclasscmds.c:609 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists" msgstr "клас операторів \"%s\" для методу доступу \"%s\" вже існує" -#: commands/opclasscmds.c:638 +#: commands/opclasscmds.c:637 #, c-format msgid "could not make operator class \"%s\" be default for type %s" msgstr "клас операторів \"%s\" не вдалося зробити класом за замовчуванням для типу %s" -#: commands/opclasscmds.c:641 +#: commands/opclasscmds.c:640 #, c-format msgid "Operator class \"%s\" already is the default." msgstr "Клас операторів \"%s\" вже є класом за замовчуванням." -#: commands/opclasscmds.c:801 +#: commands/opclasscmds.c:800 #, c-format msgid "must be superuser to create an operator family" msgstr "тільки суперкористувач може створити сімейство операторів" -#: commands/opclasscmds.c:861 +#: commands/opclasscmds.c:860 #, c-format msgid "must be superuser to alter an operator family" msgstr "тільки суперкористувач може змінити сімейство операторів" -#: commands/opclasscmds.c:919 +#: commands/opclasscmds.c:918 #, c-format msgid "operator argument types must be specified in ALTER OPERATOR FAMILY" msgstr "типи аргументу оператора повинні бути вказані в ALTER OPERATOR FAMILY" -#: commands/opclasscmds.c:994 +#: commands/opclasscmds.c:993 #, c-format msgid "STORAGE cannot be specified in ALTER OPERATOR FAMILY" msgstr "STORAGE не може бути вказано в ALTER OPERATOR FAMILY" -#: commands/opclasscmds.c:1128 +#: commands/opclasscmds.c:1127 #, c-format msgid "one or two argument types must be specified" msgstr "треба вказати один або два типи аргументу" -#: commands/opclasscmds.c:1154 +#: commands/opclasscmds.c:1153 #, c-format msgid "index operators must be binary" msgstr "індексні оператори повинні бути бінарними" -#: commands/opclasscmds.c:1173 +#: commands/opclasscmds.c:1172 #, c-format msgid "access method \"%s\" does not support ordering operators" msgstr "метод доступу \"%s\" не підтримує сортувальних операторів" -#: commands/opclasscmds.c:1184 +#: commands/opclasscmds.c:1183 #, c-format msgid "index search operators must return boolean" msgstr "оператори пошуку по індексу повинні повертати логічне значення" -#: commands/opclasscmds.c:1224 +#: commands/opclasscmds.c:1223 #, c-format msgid "associated data types for operator class options parsing functions must match opclass input type" msgstr "пов'язані типи даних для функцій обробки параметрів класів операторів повинні відповідати типу вхідних даних opclass" -#: commands/opclasscmds.c:1231 +#: commands/opclasscmds.c:1230 #, c-format msgid "left and right associated data types for operator class options parsing functions must match" msgstr "ліві та праві пов'язані типи даних для функцій розбору параметрів класів операторів повинні збігатись" -#: commands/opclasscmds.c:1239 +#: commands/opclasscmds.c:1238 #, c-format msgid "invalid operator class options parsing function" msgstr "неприпустима функція розбору параметрів класів операторів" -#: commands/opclasscmds.c:1240 +#: commands/opclasscmds.c:1239 #, c-format msgid "Valid signature of operator class options parsing function is %s." msgstr "Допустимий підпис для функції розбору параметрів класів операторів: %s." -#: commands/opclasscmds.c:1259 +#: commands/opclasscmds.c:1258 #, c-format msgid "btree comparison functions must have two arguments" msgstr "функції порівняння btree повинні мати два аргумента" -#: commands/opclasscmds.c:1263 +#: commands/opclasscmds.c:1262 #, c-format msgid "btree comparison functions must return integer" msgstr "функції порівняння btree повинні повертати ціле число" -#: commands/opclasscmds.c:1280 +#: commands/opclasscmds.c:1279 #, c-format msgid "btree sort support functions must accept type \"internal\"" msgstr "опорні функції сортування btree повинні приймати тип \"internal\"" -#: commands/opclasscmds.c:1284 +#: commands/opclasscmds.c:1283 #, c-format msgid "btree sort support functions must return void" msgstr "опорні функції сортування btree повинні повертати недійсне (void)" -#: commands/opclasscmds.c:1295 +#: commands/opclasscmds.c:1294 #, c-format msgid "btree in_range functions must have five arguments" msgstr "функції in_range для btree повинні приймати п'ять аргументів" -#: commands/opclasscmds.c:1299 +#: commands/opclasscmds.c:1298 #, c-format msgid "btree in_range functions must return boolean" msgstr "функції in_range для btree повинні повертати логічне значення" -#: commands/opclasscmds.c:1315 +#: commands/opclasscmds.c:1314 #, c-format msgid "btree equal image functions must have one argument" msgstr "функції equal image для btree повинні приймати один аргумент" -#: commands/opclasscmds.c:1319 +#: commands/opclasscmds.c:1318 #, c-format msgid "btree equal image functions must return boolean" msgstr "функції equal image для btree повинні повертати логічне значення" -#: commands/opclasscmds.c:1332 +#: commands/opclasscmds.c:1331 #, c-format msgid "btree equal image functions must not be cross-type" msgstr "функції equal image для btree не можуть бути хрестоподібного типу" -#: commands/opclasscmds.c:1342 +#: commands/opclasscmds.c:1341 #, c-format msgid "hash function 1 must have one argument" msgstr "геш-функція 1 повинна приймати один аргумент" -#: commands/opclasscmds.c:1346 +#: commands/opclasscmds.c:1345 #, c-format msgid "hash function 1 must return integer" msgstr "геш-функція 1 повинна повертати ціле число" -#: commands/opclasscmds.c:1353 +#: commands/opclasscmds.c:1352 #, c-format msgid "hash function 2 must have two arguments" msgstr "геш-функція 2 повинна приймати два аргументи" -#: commands/opclasscmds.c:1357 +#: commands/opclasscmds.c:1356 #, c-format msgid "hash function 2 must return bigint" msgstr "геш-функція 2 повинна повертати велике ціле (bigint)" -#: commands/opclasscmds.c:1382 +#: commands/opclasscmds.c:1381 #, c-format msgid "associated data types must be specified for index support function" msgstr "для опорної функції індексів повинні бути вказані пов'язані типи даних" -#: commands/opclasscmds.c:1407 +#: commands/opclasscmds.c:1406 #, c-format msgid "function number %d for (%s,%s) appears more than once" msgstr "номер функції %d для (%s,%s) з'являється більш ніж один раз" -#: commands/opclasscmds.c:1414 +#: commands/opclasscmds.c:1413 #, c-format msgid "operator number %d for (%s,%s) appears more than once" msgstr "номер оператора %d для (%s,%s) з'являється більш ніж один раз" -#: commands/opclasscmds.c:1460 +#: commands/opclasscmds.c:1459 #, c-format msgid "operator %d(%s,%s) already exists in operator family \"%s\"" msgstr "оператор %d(%s,%s) вже існує в сімействі операторів \"%s\"" -#: commands/opclasscmds.c:1566 +#: commands/opclasscmds.c:1565 #, c-format msgid "function %d(%s,%s) already exists in operator family \"%s\"" msgstr "функція %d(%s,%s) вже існує в сімействі операторів \"%s\"" -#: commands/opclasscmds.c:1647 +#: commands/opclasscmds.c:1646 #, c-format msgid "operator %d(%s,%s) does not exist in operator family \"%s\"" msgstr "оператора %d(%s,%s) не існує в сімействі операторів \"%s\"" -#: commands/opclasscmds.c:1687 +#: commands/opclasscmds.c:1686 #, c-format msgid "function %d(%s,%s) does not exist in operator family \"%s\"" msgstr "функції %d(%s,%s) не існує в сімействі операторів \"%s\"" -#: commands/opclasscmds.c:1718 +#: commands/opclasscmds.c:1717 #, c-format msgid "operator class \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "клас операторів \"%s\" для методу доступу \"%s\" вже існує в схемі \"%s\"" -#: commands/opclasscmds.c:1741 +#: commands/opclasscmds.c:1740 #, c-format msgid "operator family \"%s\" for access method \"%s\" already exists in schema \"%s\"" msgstr "сімейство операторів \"%s\" для методу доступу \"%s\" вже існує в схемі \"%s\"" @@ -9252,7 +9581,7 @@ msgstr "сімейство операторів \"%s\" для методу до msgid "SETOF type not allowed for operator argument" msgstr "Аргументом оператора не може бути тип SETOF" -#: commands/operatorcmds.c:154 commands/operatorcmds.c:481 +#: commands/operatorcmds.c:154 commands/operatorcmds.c:554 #, c-format msgid "operator attribute \"%s\" not recognized" msgstr "атрибут оператора \"%s\" не розпізнаний" @@ -9292,53 +9621,70 @@ msgstr "функція оцінювання з'єднання %s має декі msgid "join estimator function %s must return type %s" msgstr "функція оцінювання з'єднання %s повинна повертати тип %s" -#: commands/operatorcmds.c:475 +#: commands/operatorcmds.c:388 parser/parse_oper.c:119 parser/parse_oper.c:637 +#: utils/adt/regproc.c:509 utils/adt/regproc.c:683 +#, c-format +msgid "operator does not exist: %s" +msgstr "оператор не існує: %s" + +#: commands/operatorcmds.c:396 parser/parse_oper.c:702 parser/parse_oper.c:815 +#, c-format +msgid "operator is only a shell: %s" +msgstr "оператор є лише оболонкою: %s" + +#: commands/operatorcmds.c:548 #, c-format msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" неможливо змінити" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 -#: commands/tablecmds.c:1616 commands/tablecmds.c:2219 -#: commands/tablecmds.c:3520 commands/tablecmds.c:6369 -#: commands/tablecmds.c:9189 commands/tablecmds.c:17084 -#: commands/tablecmds.c:17119 commands/trigger.c:323 commands/trigger.c:1339 -#: commands/trigger.c:1449 rewrite/rewriteDefine.c:275 -#: rewrite/rewriteDefine.c:786 rewrite/rewriteRemove.c:80 +#: commands/operatorcmds.c:615 commands/operatorcmds.c:622 +#: commands/operatorcmds.c:628 commands/operatorcmds.c:634 +#, c-format +msgid "operator attribute \"%s\" cannot be changed if it has already been set" +msgstr "атрибут оператора \"%s\" не може бути змінений, якщо він вже встановлений" + +#: commands/policy.c:86 commands/policy.c:379 commands/statscmds.c:146 +#: commands/tablecmds.c:1723 commands/tablecmds.c:2323 +#: commands/tablecmds.c:3682 commands/tablecmds.c:6582 +#: commands/tablecmds.c:9614 commands/tablecmds.c:17662 +#: commands/tablecmds.c:17697 commands/trigger.c:316 commands/trigger.c:1332 +#: commands/trigger.c:1442 rewrite/rewriteDefine.c:268 +#: rewrite/rewriteDefine.c:779 rewrite/rewriteRemove.c:74 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "доступ заборонений: \"%s\" - системний каталог" -#: commands/policy.c:172 +#: commands/policy.c:169 #, c-format msgid "ignoring specified roles other than PUBLIC" msgstr "всі вказані ролі, крім PUBLIC, ігноруються" -#: commands/policy.c:173 +#: commands/policy.c:170 #, c-format msgid "All roles are members of the PUBLIC role." msgstr "Роль PUBLIC включає в себе всі інші ролі." -#: commands/policy.c:606 +#: commands/policy.c:603 #, c-format msgid "WITH CHECK cannot be applied to SELECT or DELETE" msgstr "WITH CHECK не можна застосувати до SELECT або DELETE" -#: commands/policy.c:615 commands/policy.c:918 +#: commands/policy.c:612 commands/policy.c:915 #, c-format msgid "only WITH CHECK expression allowed for INSERT" msgstr "для INSERT допускається лише вираз WITH CHECK" -#: commands/policy.c:689 commands/policy.c:1141 +#: commands/policy.c:686 commands/policy.c:1138 #, c-format msgid "policy \"%s\" for table \"%s\" already exists" msgstr "політика \"%s\" для таблиці \"%s\" вже існує" -#: commands/policy.c:890 commands/policy.c:1169 commands/policy.c:1240 +#: commands/policy.c:887 commands/policy.c:1166 commands/policy.c:1237 #, c-format msgid "policy \"%s\" for table \"%s\" does not exist" msgstr "політика \"%s\" для таблиці \"%s\" не існує" -#: commands/policy.c:908 +#: commands/policy.c:905 #, c-format msgid "only USING expression allowed for SELECT, DELETE" msgstr "для SELECT, DELETE допускається лише вираз USING" @@ -9354,245 +9700,244 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "не можна створити курсос WITH HOLD в межах операції з обмеженням по безпеці" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2854 utils/adt/xml.c:3024 +#: executor/execCurrent.c:70 utils/adt/xml.c:2936 utils/adt/xml.c:3106 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не існує" -#: commands/prepare.c:75 +#: commands/prepare.c:72 #, c-format msgid "invalid statement name: must not be empty" msgstr "неприпустиме ім'я оператора: не повинне бути пустим" -#: commands/prepare.c:230 commands/prepare.c:235 +#: commands/prepare.c:227 commands/prepare.c:232 #, c-format msgid "prepared statement is not a SELECT" msgstr "підготовлений оператор не SELECT" -#: commands/prepare.c:295 +#: commands/prepare.c:292 #, c-format msgid "wrong number of parameters for prepared statement \"%s\"" msgstr "невірне число параметрів для підготовленого оператора \"%s\"" -#: commands/prepare.c:297 +#: commands/prepare.c:294 #, c-format msgid "Expected %d parameters but got %d." msgstr "Очікувалось %d параметрів, але отримано %d." -#: commands/prepare.c:330 +#: commands/prepare.c:327 #, c-format msgid "parameter $%d of type %s cannot be coerced to the expected type %s" msgstr "параметр $%d типу %s не можна привести до очікуваного типу %s" -#: commands/prepare.c:414 +#: commands/prepare.c:411 #, c-format msgid "prepared statement \"%s\" already exists" msgstr "підготовлений оператор \"%s\" вже існує" -#: commands/prepare.c:453 +#: commands/prepare.c:450 #, c-format msgid "prepared statement \"%s\" does not exist" msgstr "підготовлений оператор \"%s\" не існує" -#: commands/proclang.c:68 +#: commands/proclang.c:66 #, c-format msgid "must be superuser to create custom procedural language" msgstr "для створення користувацької мови потрібно бути суперкористувачем" -#: commands/publicationcmds.c:131 postmaster/postmaster.c:1208 -#: postmaster/postmaster.c:1306 storage/file/fd.c:3911 -#: utils/init/miscinit.c:1822 +#: commands/publicationcmds.c:124 postmaster/postmaster.c:1108 +#: postmaster/postmaster.c:1210 utils/init/miscinit.c:1811 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неприпустимий синтаксис списку в параметрі \"%s\"" -#: commands/publicationcmds.c:150 +#: commands/publicationcmds.c:143 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "нерозпізнане значення параметра публікації \"%s\": \"%s\"" -#: commands/publicationcmds.c:164 +#: commands/publicationcmds.c:157 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "нерозпізнаний параметр публікації: \"%s\"" -#: commands/publicationcmds.c:205 +#: commands/publicationcmds.c:198 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "жодної схеми не вибрано для CURRENT_SCHEMA" -#: commands/publicationcmds.c:502 +#: commands/publicationcmds.c:495 msgid "System columns are not allowed." msgstr "Системні стовпці не допускаються." -#: commands/publicationcmds.c:509 commands/publicationcmds.c:514 -#: commands/publicationcmds.c:531 +#: commands/publicationcmds.c:502 commands/publicationcmds.c:507 +#: commands/publicationcmds.c:524 msgid "User-defined operators are not allowed." msgstr "Користувацькі оператори не допускаються." -#: commands/publicationcmds.c:555 +#: commands/publicationcmds.c:548 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "Дозволяються тільки стовпці, константи, вбудовані оператори, вбудовані типи даних, вбудовані параметри сортування та незмінні вбудовані функції." -#: commands/publicationcmds.c:567 +#: commands/publicationcmds.c:560 msgid "User-defined types are not allowed." msgstr "Користувацькі типи не допускаються." -#: commands/publicationcmds.c:570 +#: commands/publicationcmds.c:563 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Користувацькі або вбудовані змінні функції не допускаються." -#: commands/publicationcmds.c:573 +#: commands/publicationcmds.c:566 msgid "User-defined collations are not allowed." msgstr "Користувацькі параметри сортування не допускаються." -#: commands/publicationcmds.c:583 +#: commands/publicationcmds.c:576 #, c-format msgid "invalid publication WHERE expression" msgstr "неприпустимий вираз публікації WHERE" -#: commands/publicationcmds.c:636 +#: commands/publicationcmds.c:629 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "використовувати вираз публікації WHERE для відношення \"%s\" не можна" -#: commands/publicationcmds.c:638 +#: commands/publicationcmds.c:631 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "вираз WHERE для секціонованих таблиць не можна використовувати, коли %s є false." -#: commands/publicationcmds.c:709 commands/publicationcmds.c:723 +#: commands/publicationcmds.c:702 commands/publicationcmds.c:716 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "не можна використовувати список стовпців для відношення \"%s.%s\" в публікації \"%s\"" -#: commands/publicationcmds.c:712 +#: commands/publicationcmds.c:705 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "Списки стовпців не можна вказувати в публікаціях, що містять елементи FOR TABLES IN SCHEMA." -#: commands/publicationcmds.c:726 +#: commands/publicationcmds.c:719 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "Списки стовпців для секціонованих таблиць не можна використовувати, коли %s є false." -#: commands/publicationcmds.c:761 +#: commands/publicationcmds.c:754 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "для створення публікації УСІХ ТАБЛИЦЬ потрібно бути суперкористувачем" -#: commands/publicationcmds.c:832 +#: commands/publicationcmds.c:825 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "щоб створити публікацію FOR TABLES IN SCHEMA потрібно бути суперкористувачем" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:861 #, c-format -msgid "wal_level is insufficient to publish logical changes" -msgstr "недостатній wal_level для публікації логічних змін" +msgid "\"wal_level\" is insufficient to publish logical changes" +msgstr "недостатній \"wal_level\" для публікації логічних змін" -#: commands/publicationcmds.c:869 +#: commands/publicationcmds.c:862 #, c-format -msgid "Set wal_level to \"logical\" before creating subscriptions." -msgstr "Встановіть wal_level на \"logical\" перед створенням підписок." +msgid "Set \"wal_level\" to \"logical\" before creating subscriptions." +msgstr "Встановіть \"wal_level\" на \"logical\" перед створенням підписок." -#: commands/publicationcmds.c:965 commands/publicationcmds.c:973 +#: commands/publicationcmds.c:958 commands/publicationcmds.c:966 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "встановити параметр \"%s\" на false для публікації \"%s\" не можна" -#: commands/publicationcmds.c:968 +#: commands/publicationcmds.c:961 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Публікація містить вираз WHERE для секціонованої таблиці \"%s\", який не допускається коли \"%s\" є false." -#: commands/publicationcmds.c:976 +#: commands/publicationcmds.c:969 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Публікація містить список стовпців для секціонованої таблиці \"%s\", який не допускається коли \"%s\" є false." -#: commands/publicationcmds.c:1299 +#: commands/publicationcmds.c:1292 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "не можна додати схему до публікації \"%s\"" -#: commands/publicationcmds.c:1301 +#: commands/publicationcmds.c:1294 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "Схеми не можна додавати, якщо будь-яка таблиця, що вказуює на список стовпців, вже є частиною публікації." -#: commands/publicationcmds.c:1349 +#: commands/publicationcmds.c:1342 #, c-format msgid "must be superuser to add or set schemas" msgstr "для додавання або встановлення схем потрібно бути суперкористувачем" -#: commands/publicationcmds.c:1358 commands/publicationcmds.c:1366 +#: commands/publicationcmds.c:1351 commands/publicationcmds.c:1359 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "публікація \"%s\" визначена ДЛЯ ВСІХ ТАБЛИЦЬ" -#: commands/publicationcmds.c:1360 +#: commands/publicationcmds.c:1353 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "До публікації FOR ALL TABLES не можна додати або видалити схеми." -#: commands/publicationcmds.c:1368 +#: commands/publicationcmds.c:1361 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "У публікації ВСІХ ТАБЛИЦЬ не можна додати або видалити таблиці." -#: commands/publicationcmds.c:1392 commands/publicationcmds.c:1431 -#: commands/publicationcmds.c:1968 utils/cache/lsyscache.c:3592 +#: commands/publicationcmds.c:1385 commands/publicationcmds.c:1424 +#: commands/publicationcmds.c:1961 utils/cache/lsyscache.c:3634 #, c-format msgid "publication \"%s\" does not exist" msgstr "публікація \"%s\" вже існує" -#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1657 +#: commands/publicationcmds.c:1587 commands/publicationcmds.c:1650 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "конфліктуючі або надлишкові вирази WHERE для таблиці \"%s\"" -#: commands/publicationcmds.c:1601 commands/publicationcmds.c:1669 +#: commands/publicationcmds.c:1594 commands/publicationcmds.c:1662 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "конфліктуючі або надлишкові списки стовпців для таблиці \"%s\"" -#: commands/publicationcmds.c:1803 +#: commands/publicationcmds.c:1796 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "список стовпців не можна вказувати в ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1815 +#: commands/publicationcmds.c:1808 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "відносини \"%s\" не є частиною публікації" -#: commands/publicationcmds.c:1822 +#: commands/publicationcmds.c:1815 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "під час видалення таблиці з публікації використовувати вираз WHERE не можна" -#: commands/publicationcmds.c:1882 +#: commands/publicationcmds.c:1875 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "таблиці зі схеми \"%s\" не є частиною публікації" -#: commands/publicationcmds.c:1925 commands/publicationcmds.c:1932 +#: commands/publicationcmds.c:1918 commands/publicationcmds.c:1925 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "немає прав на зміну власника публікації \"%s\"" -#: commands/publicationcmds.c:1927 +#: commands/publicationcmds.c:1920 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Власником публікації УСІХ ТАБЛИЦЬ повинен бути суперкористувач." -#: commands/publicationcmds.c:1934 +#: commands/publicationcmds.c:1927 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "Власник публікації публікації FOR TABLES IN SCHEMA повинен бути суперкористувачем." -#: commands/publicationcmds.c:2000 +#: commands/publicationcmds.c:1993 #, c-format msgid "publication with OID %u does not exist" msgstr "публікації %u з OID не існує" @@ -9637,242 +9982,242 @@ msgstr "мітки безпеки не підтримуються для цьо msgid "cannot set security label on relation \"%s\"" msgstr "не можна встановити мітку безпеки для відношення \"%s\"" -#: commands/sequence.c:754 +#: commands/sequence.c:748 #, c-format msgid "nextval: reached maximum value of sequence \"%s\" (%lld)" msgstr "nextval: досягнено максимального значення послідовності \"%s\" (%lld)" -#: commands/sequence.c:773 +#: commands/sequence.c:767 #, c-format msgid "nextval: reached minimum value of sequence \"%s\" (%lld)" msgstr "nextval: досягнено мінімального значення послідовності \"%s\" (%lld)" -#: commands/sequence.c:891 +#: commands/sequence.c:886 #, c-format msgid "currval of sequence \"%s\" is not yet defined in this session" msgstr "поточне значення (currval) для послідовності \"%s\" ще не визначено у цьому сеансі" -#: commands/sequence.c:910 commands/sequence.c:916 +#: commands/sequence.c:905 commands/sequence.c:911 #, c-format msgid "lastval is not yet defined in this session" msgstr "останнє значення ще не визначено в цьому сеансі" -#: commands/sequence.c:996 +#: commands/sequence.c:991 #, c-format msgid "setval: value %lld is out of bounds for sequence \"%s\" (%lld..%lld)" msgstr "setval: значення %lld поза межами послідовності \"%s\" (%lld..%lld)" -#: commands/sequence.c:1365 +#: commands/sequence.c:1357 #, c-format msgid "invalid sequence option SEQUENCE NAME" msgstr "неприпустимий параметр послідовності SEQUENCE NAME" -#: commands/sequence.c:1391 +#: commands/sequence.c:1383 #, c-format msgid "identity column type must be smallint, integer, or bigint" msgstr "типом стовпця ідентифікації може бути тільки smallint, integer або bigint" -#: commands/sequence.c:1392 +#: commands/sequence.c:1384 #, c-format msgid "sequence type must be smallint, integer, or bigint" msgstr "типом послідовності може бути тільки smallint, integer або bigint" -#: commands/sequence.c:1426 +#: commands/sequence.c:1418 #, c-format msgid "INCREMENT must not be zero" msgstr "INCREMENT не повинен бути нулем" -#: commands/sequence.c:1474 +#: commands/sequence.c:1466 #, c-format msgid "MAXVALUE (%lld) is out of range for sequence data type %s" msgstr "MAXVALUE (%lld) виходить за межі діапазону типу даних послідовності %s" -#: commands/sequence.c:1506 +#: commands/sequence.c:1498 #, c-format msgid "MINVALUE (%lld) is out of range for sequence data type %s" msgstr "MINVALUE (%lld) виходить за межі діапазону для типу даних послідовності %s" -#: commands/sequence.c:1514 +#: commands/sequence.c:1506 #, c-format msgid "MINVALUE (%lld) must be less than MAXVALUE (%lld)" msgstr "MINVALUE (%lld) повинно бути меншим за MAXVALUE (%lld)" -#: commands/sequence.c:1535 +#: commands/sequence.c:1527 #, c-format msgid "START value (%lld) cannot be less than MINVALUE (%lld)" msgstr "Значення START (%lld) не може бути меншим за MINVALUE (%lld)" -#: commands/sequence.c:1541 +#: commands/sequence.c:1533 #, c-format msgid "START value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "Значення START (%lld) не може бути більшим за MAXVALUE (%lld)" -#: commands/sequence.c:1565 +#: commands/sequence.c:1557 #, c-format msgid "RESTART value (%lld) cannot be less than MINVALUE (%lld)" msgstr "Значення RESTART (%lld) не може бути меншим за MINVALUE (%lld)" -#: commands/sequence.c:1571 +#: commands/sequence.c:1563 #, c-format msgid "RESTART value (%lld) cannot be greater than MAXVALUE (%lld)" msgstr "Значення RESTART (%lld) не може бути більшим за MAXVALUE (%lld)" -#: commands/sequence.c:1582 +#: commands/sequence.c:1574 #, c-format msgid "CACHE (%lld) must be greater than zero" msgstr "CACHE (%lld) повинно бути більше нуля" -#: commands/sequence.c:1618 +#: commands/sequence.c:1610 #, c-format msgid "invalid OWNED BY option" msgstr "неприпустимий параметр OWNED BY" -#: commands/sequence.c:1619 +#: commands/sequence.c:1611 #, c-format msgid "Specify OWNED BY table.column or OWNED BY NONE." msgstr "Вкажіть OWNED BY таблиця.стовпець або OWNED BY NONE." -#: commands/sequence.c:1644 +#: commands/sequence.c:1636 #, c-format msgid "sequence cannot be owned by relation \"%s\"" msgstr "послідовність не може належати відношенню \"%s\"" -#: commands/sequence.c:1652 +#: commands/sequence.c:1644 #, c-format msgid "sequence must have same owner as table it is linked to" msgstr "послідовність повинна мати того ж власника, що і таблиця, з якою вона зв'язана" -#: commands/sequence.c:1656 +#: commands/sequence.c:1648 #, c-format msgid "sequence must be in same schema as table it is linked to" msgstr "послідовність повинна бути в тій самій схемі, що і таблиця, з якою вона зв'язана" -#: commands/sequence.c:1678 +#: commands/sequence.c:1670 #, c-format msgid "cannot change ownership of identity sequence" msgstr "змінити власника послідовності ідентифікації не можна" -#: commands/sequence.c:1679 commands/tablecmds.c:13903 -#: commands/tablecmds.c:16502 +#: commands/sequence.c:1671 commands/tablecmds.c:14384 +#: commands/tablecmds.c:17078 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Послідовність \"%s\" зв'язана з таблицею \"%s\"." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1887 +#: commands/statscmds.c:106 commands/statscmds.c:115 tcop/utility.c:1883 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "в CREATE STATISTICS можна вказати лише одне відношення" -#: commands/statscmds.c:136 +#: commands/statscmds.c:133 #, c-format msgid "cannot define statistics for relation \"%s\"" msgstr "визначити статистику відношення \"%s\" не можна" -#: commands/statscmds.c:190 +#: commands/statscmds.c:187 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "об'єкт статистики \"%s\" вже існує, пропускається" -#: commands/statscmds.c:198 +#: commands/statscmds.c:195 #, c-format msgid "statistics object \"%s\" already exists" msgstr "об'єкт статистики \"%s\" вже існує" -#: commands/statscmds.c:209 +#: commands/statscmds.c:206 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "в статистиці не може бути більше ніж %d стовпців" -#: commands/statscmds.c:250 commands/statscmds.c:273 commands/statscmds.c:307 +#: commands/statscmds.c:247 commands/statscmds.c:270 commands/statscmds.c:304 #, c-format msgid "statistics creation on system columns is not supported" msgstr "створення статистики для системних стовпців не підтримується" -#: commands/statscmds.c:257 commands/statscmds.c:280 +#: commands/statscmds.c:254 commands/statscmds.c:277 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "стовпець \"%s\" не можна використати в статистиці, тому що для його типу %s не визначений клас оператора (btree) за замовчуванням" -#: commands/statscmds.c:324 +#: commands/statscmds.c:321 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "вираз не може використовуватись у багатоваріативній статистиці, тому що його тип %s немає визначеного класу оператора btree за замовчуванням" -#: commands/statscmds.c:345 +#: commands/statscmds.c:342 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "при побудові статистики для одного виразу види статистики можуть не вказуватись" -#: commands/statscmds.c:374 +#: commands/statscmds.c:371 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "нерозпізнаний вид статистики \"%s\"" -#: commands/statscmds.c:403 +#: commands/statscmds.c:400 #, c-format msgid "extended statistics require at least 2 columns" msgstr "для розширеної статистики потрібно мінімум 2 стовпці" -#: commands/statscmds.c:421 +#: commands/statscmds.c:418 #, c-format msgid "duplicate column name in statistics definition" msgstr "дублювання імені стовпця у визначенні статистики" -#: commands/statscmds.c:456 +#: commands/statscmds.c:453 #, c-format msgid "duplicate expression in statistics definition" msgstr "дублікат виразу у визначенні статистики" -#: commands/statscmds.c:619 commands/tablecmds.c:8188 +#: commands/statscmds.c:628 commands/tablecmds.c:8597 #, c-format msgid "statistics target %d is too low" msgstr "мета статистики занадто мала %d" -#: commands/statscmds.c:627 commands/tablecmds.c:8196 +#: commands/statscmds.c:636 commands/tablecmds.c:8605 #, c-format msgid "lowering statistics target to %d" msgstr "мета статистики знижується до %d" -#: commands/statscmds.c:650 +#: commands/statscmds.c:660 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "об'єкт статистики \"%s.%s\" не існує, пропускається" -#: commands/subscriptioncmds.c:271 commands/subscriptioncmds.c:359 +#: commands/subscriptioncmds.c:275 commands/subscriptioncmds.c:372 #, c-format msgid "unrecognized subscription parameter: \"%s\"" msgstr "нерозпізнаний параметр підписки: \"%s\"" -#: commands/subscriptioncmds.c:327 replication/pgoutput/pgoutput.c:395 +#: commands/subscriptioncmds.c:340 replication/pgoutput/pgoutput.c:397 #, c-format msgid "unrecognized origin value: \"%s\"" msgstr "нерозпізнане значення походження: \"%s\"" -#: commands/subscriptioncmds.c:350 +#: commands/subscriptioncmds.c:363 #, c-format msgid "invalid WAL location (LSN): %s" msgstr "неприпустиме розташування WAL (LSN): %s" #. translator: both %s are strings of the form "option = value" -#: commands/subscriptioncmds.c:374 commands/subscriptioncmds.c:381 -#: commands/subscriptioncmds.c:388 commands/subscriptioncmds.c:410 -#: commands/subscriptioncmds.c:426 +#: commands/subscriptioncmds.c:387 commands/subscriptioncmds.c:394 +#: commands/subscriptioncmds.c:401 commands/subscriptioncmds.c:423 +#: commands/subscriptioncmds.c:439 #, 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:416 commands/subscriptioncmds.c:432 +#: commands/subscriptioncmds.c:429 commands/subscriptioncmds.c:445 #, c-format msgid "subscription with %s must also set %s" msgstr "підписка з %s повинна також встановити %s" -#: commands/subscriptioncmds.c:494 +#: commands/subscriptioncmds.c:506 #, c-format msgid "could not receive list of publications from the publisher: %s" msgstr "не вдалося отримати список публікацій з сервера публікації: %s" -#: commands/subscriptioncmds.c:526 +#: commands/subscriptioncmds.c:538 #, c-format msgid "publication %s does not exist on the publisher" msgid_plural "publications %s do not exist on the publisher" @@ -9881,130 +10226,136 @@ msgstr[1] "публікацій %s не існує на сервері публ msgstr[2] "публікацій %s не існує на сервері публікації" msgstr[3] "публікацій %s не існує на сервері публікації" -#: commands/subscriptioncmds.c:614 +#: commands/subscriptioncmds.c:626 #, c-format msgid "permission denied to create subscription" msgstr "немає дозволу для створення підписки" -#: commands/subscriptioncmds.c:615 +#: commands/subscriptioncmds.c:627 #, c-format msgid "Only roles with privileges of the \"%s\" role may create subscriptions." msgstr "Тільки ролі з правами \"%s\" можуть створювати підписки." -#: commands/subscriptioncmds.c:745 commands/subscriptioncmds.c:878 -#: replication/logical/tablesync.c:1327 replication/logical/worker.c:4616 +#: commands/subscriptioncmds.c:758 commands/subscriptioncmds.c:891 +#: commands/subscriptioncmds.c:1524 replication/logical/tablesync.c:1345 +#: replication/logical/worker.c:4503 #, c-format msgid "could not connect to the publisher: %s" msgstr "не вдалося підключитись до сервера публікації: %s" -#: commands/subscriptioncmds.c:816 +#: commands/subscriptioncmds.c:829 #, c-format msgid "created replication slot \"%s\" on publisher" msgstr "на сервері публікації створений слот реплікації \"%s\"" -#: commands/subscriptioncmds.c:828 +#: commands/subscriptioncmds.c:841 #, c-format msgid "subscription was created, but is not connected" msgstr "підписка була створена, але не підключена" -#: commands/subscriptioncmds.c:829 +#: commands/subscriptioncmds.c:842 #, c-format msgid "To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription." msgstr "Щоб ініціювати реплікацію, необхідно вручну створити слот реплікації, підключити підписку і оновити підписку." -#: commands/subscriptioncmds.c:1096 commands/subscriptioncmds.c:1509 -#: commands/subscriptioncmds.c:1892 utils/cache/lsyscache.c:3642 +#: commands/subscriptioncmds.c:1109 commands/subscriptioncmds.c:1590 +#: commands/subscriptioncmds.c:1973 utils/cache/lsyscache.c:3684 #, c-format msgid "subscription \"%s\" does not exist" msgstr "підписка \"%s\" не існує" -#: commands/subscriptioncmds.c:1152 +#: commands/subscriptioncmds.c:1166 commands/subscriptioncmds.c:1245 #, c-format msgid "cannot set %s for enabled subscription" msgstr "неможливо встановити %s для увімкненої підписки" -#: commands/subscriptioncmds.c:1234 +#: commands/subscriptioncmds.c:1233 +#, c-format +msgid "cannot set option \"%s\" for a subscription that does not have a slot name" +msgstr "не може задати параметр \"%s\" для підписки, яка не має назви слоту" + +#: commands/subscriptioncmds.c:1279 #, c-format msgid "cannot enable subscription that does not have a slot name" msgstr "увімкнути підписку, для якої не задано ім'я слота, не можна" -#: commands/subscriptioncmds.c:1278 commands/subscriptioncmds.c:1329 +#: commands/subscriptioncmds.c:1323 commands/subscriptioncmds.c:1374 #, c-format msgid "ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION з оновленням для відключених підписок не допускається" -#: commands/subscriptioncmds.c:1279 +#: commands/subscriptioncmds.c:1324 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." msgstr "Використайте ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." -#: commands/subscriptioncmds.c:1288 commands/subscriptioncmds.c:1343 +#: commands/subscriptioncmds.c:1333 commands/subscriptioncmds.c:1388 #, c-format msgid "ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" msgstr "ALTER SUBSCRIPTION з параметрами refresh і copy_data не допускається, коли two_phase ввімкнено" -#: commands/subscriptioncmds.c:1289 +#: commands/subscriptioncmds.c:1334 #, c-format msgid "Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "Використайте ALTER SUBSCRIPTION ... SET PUBLICATION з параметрами refresh або copy_data, які дорівнюють false, або використайте DROP/CREATE SUBSCRIPTION." #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1345 +#: commands/subscriptioncmds.c:1390 #, c-format msgid "Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "Використовуйте %s з refresh = false, або з copy_data = false, або використовуйте DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1367 +#: commands/subscriptioncmds.c:1412 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH is not allowed for disabled subscriptions" msgstr "ALTER SUBSCRIPTION ... REFRESH для відключених підписок не допускається" -#: commands/subscriptioncmds.c:1392 +#: commands/subscriptioncmds.c:1437 #, c-format msgid "ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" msgstr "ALTER SUBSCRIPTION ... REFRESH з параметром copy_data не допускається, коли two_phase ввімкнено" -#: commands/subscriptioncmds.c:1393 +#: commands/subscriptioncmds.c:1438 #, c-format msgid "Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." msgstr "Використайте ALTER SUBSCRIPTION ... REFRESH з параметром copy_data, який дорівнює false, або використайте DROP/CREATE SUBSCRIPTION." -#: commands/subscriptioncmds.c:1428 +#: commands/subscriptioncmds.c:1473 #, c-format msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "пропустити розташування WAL (LSN %X/%X) повинно бути більше, ніж origin LSN %X/%X" -#: commands/subscriptioncmds.c:1513 +#: commands/subscriptioncmds.c:1594 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "підписка \"%s\" не існує, пропускається" -#: commands/subscriptioncmds.c:1782 +#: commands/subscriptioncmds.c:1863 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "видалено слот реплікації \"%s\" на сервері публікації" -#: commands/subscriptioncmds.c:1791 commands/subscriptioncmds.c:1799 +#: commands/subscriptioncmds.c:1872 commands/subscriptioncmds.c:1880 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "не вдалося видалити слот реплікації \"%s\" на сервері публікації: %s" -#: commands/subscriptioncmds.c:1924 +#: commands/subscriptioncmds.c:2005 #, c-format msgid "subscription with OID %u does not exist" msgstr "підписки %u з OID не існує" -#: commands/subscriptioncmds.c:1995 commands/subscriptioncmds.c:2120 +#: commands/subscriptioncmds.c:2076 commands/subscriptioncmds.c:2201 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "не вдалося отримати список реплікованих таблиць із сервера публікації: %s" -#: commands/subscriptioncmds.c:2031 +#: commands/subscriptioncmds.c:2112 #, c-format msgid "subscription \"%s\" requested copy_data with origin = NONE but might copy data that had a different origin" msgstr "підписка \"%s\" запросив copy_data зі походженням = NONE, але може скопіювати дані, що мають інше походження" -#: commands/subscriptioncmds.c:2033 +#: commands/subscriptioncmds.c:2114 #, c-format msgid "The subscription being created subscribes to a publication (%s) that contains tables that are written to by other subscriptions." msgid_plural "The subscription being created subscribes to publications (%s) that contain tables that are written to by other subscriptions." @@ -10013,1885 +10364,1961 @@ msgstr[1] "Створювана підписка підписується на msgstr[2] "Створювана підписка підписується на публікації (%s), яка містить таблиці, до яких записуються інші підписки." msgstr[3] "Створювана підписка підписується на публікації (%s), яка містить таблиці, до яких записуються інші підписки." -#: commands/subscriptioncmds.c:2036 +#: commands/subscriptioncmds.c:2117 #, c-format msgid "Verify that initial data copied from the publisher tables did not come from other origins." msgstr "Переконайтеся, що вихідні дані, скопійовані з таблиць публікатора, не були отримані з інших джерел." -#: commands/subscriptioncmds.c:2142 replication/logical/tablesync.c:886 -#: replication/pgoutput/pgoutput.c:1112 +#: commands/subscriptioncmds.c:2223 replication/logical/tablesync.c:906 +#: replication/pgoutput/pgoutput.c:1117 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "використовувати різні списки стовпців для таблиці \"%s.%s\" в різних публікаціях не можна" -#: commands/subscriptioncmds.c:2192 +#: commands/subscriptioncmds.c:2273 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" msgstr "не вдалося з'єднатись з сервером публікації під час спроби видалити слот реплікації \"%s\": %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:2195 +#: commands/subscriptioncmds.c:2276 #, c-format msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." msgstr "Використовуйте %s, щоб вимкнути підписку, а потім використайте %s, щоб від'єднати її від слоту." -#: commands/subscriptioncmds.c:2226 +#: commands/subscriptioncmds.c:2307 #, c-format msgid "publication name \"%s\" used more than once" msgstr "ім'я публікації \"%s\" використовується більше ніж один раз" -#: commands/subscriptioncmds.c:2270 +#: commands/subscriptioncmds.c:2351 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "публікація \"%s\" вже в підписці \"%s\"" -#: commands/subscriptioncmds.c:2284 +#: commands/subscriptioncmds.c:2365 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "публікація \"%s\" не знаходиться в підписці \"%s\"" -#: commands/subscriptioncmds.c:2295 +#: commands/subscriptioncmds.c:2376 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "не можна видалити всі публікації з підписки" -#: commands/subscriptioncmds.c:2352 +#: commands/subscriptioncmds.c:2433 #, c-format msgid "%s requires a Boolean value or \"parallel\"" msgstr "%s потребує логічне значення або \"parallel\"" -#: commands/tablecmds.c:246 commands/tablecmds.c:288 +#: commands/tablecmds.c:255 commands/tablecmds.c:297 #, c-format msgid "table \"%s\" does not exist" msgstr "таблиця \"%s\" не існує" -#: commands/tablecmds.c:247 commands/tablecmds.c:289 +#: commands/tablecmds.c:256 commands/tablecmds.c:298 #, c-format msgid "table \"%s\" does not exist, skipping" msgstr "таблиця \"%s\" не існує, пропускається" -#: commands/tablecmds.c:249 commands/tablecmds.c:291 +#: commands/tablecmds.c:258 commands/tablecmds.c:300 msgid "Use DROP TABLE to remove a table." msgstr "Використайте DROP TABLE для видалення таблиці." -#: commands/tablecmds.c:252 +#: commands/tablecmds.c:261 #, c-format msgid "sequence \"%s\" does not exist" msgstr "послідовність \"%s\" не існує" -#: commands/tablecmds.c:253 +#: commands/tablecmds.c:262 #, c-format msgid "sequence \"%s\" does not exist, skipping" msgstr "послідовність \"%s\" не існує, пропускається" -#: commands/tablecmds.c:255 +#: commands/tablecmds.c:264 msgid "Use DROP SEQUENCE to remove a sequence." msgstr "Використайте DROP SEQUENCE, щоб видалити послідовність." -#: commands/tablecmds.c:258 +#: commands/tablecmds.c:267 #, c-format msgid "view \"%s\" does not exist" msgstr "подання \"%s\" не існує" -#: commands/tablecmds.c:259 +#: commands/tablecmds.c:268 #, c-format msgid "view \"%s\" does not exist, skipping" msgstr "подання \"%s\" не існує, пропускається" -#: commands/tablecmds.c:261 +#: commands/tablecmds.c:270 msgid "Use DROP VIEW to remove a view." msgstr "Використайте DROP VIEW для видалення подання." -#: commands/tablecmds.c:264 +#: commands/tablecmds.c:273 #, c-format msgid "materialized view \"%s\" does not exist" msgstr "матеріалізоване подання \"%s\" не існує" -#: commands/tablecmds.c:265 +#: commands/tablecmds.c:274 #, c-format msgid "materialized view \"%s\" does not exist, skipping" msgstr "матеріалізоване подання \"%s\" не існує, пропускається" -#: commands/tablecmds.c:267 +#: commands/tablecmds.c:276 msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Використайте DROP MATERIALIZED VIEW, щоб видалити матеріалізоване подання." -#: commands/tablecmds.c:270 commands/tablecmds.c:294 commands/tablecmds.c:19006 -#: parser/parse_utilcmd.c:2254 +#: commands/tablecmds.c:279 commands/tablecmds.c:303 commands/tablecmds.c:19617 +#: parser/parse_utilcmd.c:2251 #, c-format msgid "index \"%s\" does not exist" msgstr "індекс \"%s\" не існує" -#: commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:280 commands/tablecmds.c:304 #, c-format msgid "index \"%s\" does not exist, skipping" msgstr "індекс \"%s\" не існує, пропускається" -#: commands/tablecmds.c:273 commands/tablecmds.c:297 +#: commands/tablecmds.c:282 commands/tablecmds.c:306 msgid "Use DROP INDEX to remove an index." msgstr "Використайте DROP INDEX, щоб видалити індекс." -#: commands/tablecmds.c:278 +#: commands/tablecmds.c:287 #, c-format msgid "\"%s\" is not a type" msgstr "\"%s\" не є типом" -#: commands/tablecmds.c:279 +#: commands/tablecmds.c:288 msgid "Use DROP TYPE to remove a type." msgstr "Використайте DROP TYPE, щоб видалити тип." -#: commands/tablecmds.c:282 commands/tablecmds.c:13742 -#: commands/tablecmds.c:16207 +#: commands/tablecmds.c:291 commands/tablecmds.c:14223 +#: commands/tablecmds.c:16783 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "зовнішня таблиця \"%s\" не існує" -#: commands/tablecmds.c:283 +#: commands/tablecmds.c:292 #, c-format msgid "foreign table \"%s\" does not exist, skipping" msgstr "зовнішня таблиця \"%s\" не існує, пропускається" -#: commands/tablecmds.c:285 +#: commands/tablecmds.c:294 msgid "Use DROP FOREIGN TABLE to remove a foreign table." msgstr "Використайте DROP FOREIGN TABLE щоб видалити сторонню таблицю." -#: commands/tablecmds.c:700 +#: commands/tablecmds.c:717 #, c-format msgid "ON COMMIT can only be used on temporary tables" msgstr "ON COMMIT можна використовувати лише для тимчасових таблиць" -#: commands/tablecmds.c:731 +#: commands/tablecmds.c:748 #, c-format msgid "cannot create temporary table within security-restricted operation" msgstr "неможливо створити тимчасову таблицю в межах операції з обмеженням безпеки" -#: commands/tablecmds.c:767 commands/tablecmds.c:15052 +#: commands/tablecmds.c:784 commands/tablecmds.c:15642 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "відношення \"%s\" буде успадковуватись більш ніж один раз" -#: commands/tablecmds.c:955 -#, c-format -msgid "specifying a table access method is not supported on a partitioned table" -msgstr "вказання методу доступу до таблиці не підтримується з секційною таблицею" - -#: commands/tablecmds.c:1048 +#: commands/tablecmds.c:1050 #, c-format msgid "\"%s\" is not partitioned" msgstr "\"%s\" не секціоновано" -#: commands/tablecmds.c:1142 +#: commands/tablecmds.c:1144 #, c-format msgid "cannot partition using more than %d columns" msgstr "число стовпців в ключі секціонування не може перевищувати %d" -#: commands/tablecmds.c:1198 +#: commands/tablecmds.c:1200 #, c-format msgid "cannot create foreign partition of partitioned table \"%s\"" msgstr "не можна створити зовнішню секцію в секціонованій таблиці \"%s\"" -#: commands/tablecmds.c:1200 +#: commands/tablecmds.c:1202 #, c-format msgid "Table \"%s\" contains indexes that are unique." msgstr "Таблиця \"%s\" містить індекси, які унікальні." -#: commands/tablecmds.c:1365 +#: commands/tablecmds.c:1321 commands/tablecmds.c:13239 #, c-format -msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" -msgstr "DROP INDEX CONCURRENTLY не підтримує видалення кількох об'єктів" +msgid "too many array dimensions" +msgstr "занадто багато вимірів масиву" -#: commands/tablecmds.c:1369 +#: commands/tablecmds.c:1326 parser/parse_clause.c:774 +#: parser/parse_relation.c:1912 #, c-format -msgid "DROP INDEX CONCURRENTLY does not support CASCADE" +msgid "column \"%s\" cannot be declared SETOF" +msgstr "стовпець\"%s\" не може бути оголошений SETOF" + +#: commands/tablecmds.c:1472 +#, c-format +msgid "DROP INDEX CONCURRENTLY does not support dropping multiple objects" +msgstr "DROP INDEX CONCURRENTLY не підтримує видалення кількох об'єктів" + +#: commands/tablecmds.c:1476 +#, c-format +msgid "DROP INDEX CONCURRENTLY does not support CASCADE" msgstr "DROP INDEX CONCURRENTLY не підтримує режим CASCADE" -#: commands/tablecmds.c:1473 +#: commands/tablecmds.c:1580 #, c-format msgid "cannot drop partitioned index \"%s\" concurrently" msgstr "неможливо видалити секціонований індекс \"%s\" паралельно" -#: commands/tablecmds.c:1761 +#: commands/tablecmds.c:1868 #, c-format msgid "cannot truncate only a partitioned table" msgstr "скоротити тільки секціоновану таблицю не можна" -#: commands/tablecmds.c:1762 +#: commands/tablecmds.c:1869 #, c-format msgid "Do not specify the ONLY keyword, or use TRUNCATE ONLY on the partitions directly." msgstr "Не вказуйте ключове слово ONLY або використайте TRUNCATE ONLY безпосередньо для секцій." -#: commands/tablecmds.c:1835 +#: commands/tablecmds.c:1942 #, c-format msgid "truncate cascades to table \"%s\"" msgstr "скорочення поширюється на таблицю \"%s\"" -#: commands/tablecmds.c:2199 +#: commands/tablecmds.c:2303 #, c-format msgid "cannot truncate foreign table \"%s\"" msgstr "скоротити зовнішню таблицю \"%s\" не можна" -#: commands/tablecmds.c:2256 +#: commands/tablecmds.c:2360 #, c-format msgid "cannot truncate temporary tables of other sessions" msgstr "тимчасові таблиці інших сеансів не можна скоротити" -#: commands/tablecmds.c:2488 commands/tablecmds.c:14949 +#: commands/tablecmds.c:2589 commands/tablecmds.c:15539 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "успадкування від секціонованої таблиці \"%s\" не допускається" -#: commands/tablecmds.c:2493 +#: commands/tablecmds.c:2594 #, c-format msgid "cannot inherit from partition \"%s\"" msgstr "успадкування від розділу \"%s\" не допускається" -#: commands/tablecmds.c:2501 parser/parse_utilcmd.c:2484 -#: parser/parse_utilcmd.c:2626 +#: commands/tablecmds.c:2602 parser/parse_utilcmd.c:2481 +#: parser/parse_utilcmd.c:2623 #, c-format msgid "inherited relation \"%s\" is not a table or foreign table" msgstr "успадковане відношення \"%s\" не є таблицею або сторонньою таблицею" -#: commands/tablecmds.c:2513 +#: commands/tablecmds.c:2614 #, c-format msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "створити тимчасове відношення як секцію постійного відношення\"%s\" не можна" -#: commands/tablecmds.c:2522 commands/tablecmds.c:14928 +#: commands/tablecmds.c:2623 commands/tablecmds.c:15518 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "тимчасове відношення \"%s\" не може успадковуватись" -#: commands/tablecmds.c:2532 commands/tablecmds.c:14936 +#: commands/tablecmds.c:2633 commands/tablecmds.c:15526 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "успадкування від тимчасового відношення іншого сеансу неможливе" -#: commands/tablecmds.c:2585 +#: commands/tablecmds.c:2774 commands/tablecmds.c:2828 +#: commands/tablecmds.c:12922 parser/parse_utilcmd.c:1265 +#: parser/parse_utilcmd.c:1308 parser/parse_utilcmd.c:1735 +#: parser/parse_utilcmd.c:1843 #, c-format -msgid "merging multiple inherited definitions of column \"%s\"" -msgstr "злиття декількох успадкованих визначень стовпця \"%s\"" +msgid "cannot convert whole-row table reference" +msgstr "перетворити посилання на тип усього рядка таблиці не можна" -#: commands/tablecmds.c:2597 +#: commands/tablecmds.c:2775 parser/parse_utilcmd.c:1266 #, c-format -msgid "inherited column \"%s\" has a type conflict" -msgstr "конфлікт типів в успадкованому стовпці \"%s\"" +msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." +msgstr "Вираз генерації для стовпця \"%s\" містить посилання на весь рядок на таблицю \"%s\"." -#: commands/tablecmds.c:2599 commands/tablecmds.c:2628 -#: commands/tablecmds.c:2647 commands/tablecmds.c:2919 -#: commands/tablecmds.c:2955 commands/tablecmds.c:2971 -#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 -#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 -#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 -#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 -#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 -#: parser/parse_param.c:223 +#: commands/tablecmds.c:2829 parser/parse_utilcmd.c:1309 #, c-format -msgid "%s versus %s" -msgstr "%s проти %s" +msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." +msgstr "Обмеження \"%s\" посилається на тип усього рядка в таблиці \"%s\"." -#: commands/tablecmds.c:2612 +#: commands/tablecmds.c:2939 commands/tablecmds.c:3210 #, c-format -msgid "inherited column \"%s\" has a collation conflict" -msgstr "конфлікт правил сортування в успадкованому стовпці \"%s\"" +msgid "column \"%s\" inherits from generated column but specifies default" +msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує за замовчуванням" -#: commands/tablecmds.c:2614 commands/tablecmds.c:2935 -#: commands/tablecmds.c:6849 +#: commands/tablecmds.c:2944 commands/tablecmds.c:3215 #, c-format -msgid "\"%s\" versus \"%s\"" -msgstr "\"%s\" проти \"%s\"" +msgid "column \"%s\" inherits from generated column but specifies identity" +msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує ідентичність" -#: commands/tablecmds.c:2626 +#: commands/tablecmds.c:2952 commands/tablecmds.c:3223 #, c-format -msgid "inherited column \"%s\" has a storage parameter conflict" -msgstr "конфлікт параметрів зберігання в успадкованому стовпці \"%s\"" +msgid "child column \"%s\" specifies generation expression" +msgstr "дочірній стовпець \"%s\" визначає вираз генерації" -#: commands/tablecmds.c:2645 commands/tablecmds.c:2969 +#: commands/tablecmds.c:2954 commands/tablecmds.c:3225 #, c-format -msgid "column \"%s\" has a compression method conflict" -msgstr "конфлікт методів стиснення в стовпці \"%s\"" +msgid "A child table column cannot be generated unless its parent column is." +msgstr "Стовпець дочірньої таблиці не може бути створений, якщо не створено стовпець батьківської таблиці." -#: commands/tablecmds.c:2661 +#: commands/tablecmds.c:3000 #, c-format -msgid "inherited column \"%s\" has a generation conflict" -msgstr "конфлікт генерування в успадкованому стовпці \"%s\"" +msgid "column \"%s\" inherits conflicting generation expressions" +msgstr "стовпець \"%s\" успадковує конфліктуючи вирази генерації" -#: commands/tablecmds.c:2767 commands/tablecmds.c:2822 -#: commands/tablecmds.c:12468 parser/parse_utilcmd.c:1307 -#: parser/parse_utilcmd.c:1350 parser/parse_utilcmd.c:1749 -#: parser/parse_utilcmd.c:1857 +#: commands/tablecmds.c:3002 #, c-format -msgid "cannot convert whole-row table reference" -msgstr "перетворити посилання на тип усього рядка таблиці не можна" +msgid "To resolve the conflict, specify a generation expression explicitly." +msgstr "Щоб вирішити цей конфлікт, явно вкажіть вираз генерації." -#: commands/tablecmds.c:2768 parser/parse_utilcmd.c:1308 +#: commands/tablecmds.c:3006 #, c-format -msgid "Generation expression for column \"%s\" contains a whole-row reference to table \"%s\"." -msgstr "Вираз генерації для стовпця \"%s\" містить посилання на весь рядок на таблицю \"%s\"." +msgid "column \"%s\" inherits conflicting default values" +msgstr "стовпець \"%s\" успадковує конфліктні значення за замовчуванням" -#: commands/tablecmds.c:2823 parser/parse_utilcmd.c:1351 +#: commands/tablecmds.c:3008 #, c-format -msgid "Constraint \"%s\" contains a whole-row reference to table \"%s\"." -msgstr "Обмеження \"%s\" посилається на тип усього рядка в таблиці \"%s\"." +msgid "To resolve the conflict, specify a default explicitly." +msgstr "Для усунення конфлікту вкажіть бажане значення за замовчуванням." + +#: commands/tablecmds.c:3063 +#, c-format +msgid "check constraint name \"%s\" appears multiple times but with different expressions" +msgstr "ім'я перевірочного обмеження \"%s\" з'являється декілька разів, але з різними виразами" -#: commands/tablecmds.c:2901 +#: commands/tablecmds.c:3114 #, c-format msgid "merging column \"%s\" with inherited definition" msgstr "злиття стовпця \"%s\" з успадкованим визначенням" -#: commands/tablecmds.c:2905 +#: commands/tablecmds.c:3118 #, c-format msgid "moving and merging column \"%s\" with inherited definition" msgstr "переміщення і злиття стовпця \"%s\" з успадкованим визначенням" -#: commands/tablecmds.c:2906 +#: commands/tablecmds.c:3119 #, c-format msgid "User-specified column moved to the position of the inherited column." msgstr "Визначений користувачем стовпець переміщений в позицію успадкованого стовпця." -#: commands/tablecmds.c:2917 +#: commands/tablecmds.c:3131 #, c-format msgid "column \"%s\" has a type conflict" msgstr "конфлікт типів в стовпці \"%s\"" -#: commands/tablecmds.c:2933 -#, c-format -msgid "column \"%s\" has a collation conflict" -msgstr "конфлікт правил сортування в стовпці \"%s\"" - -#: commands/tablecmds.c:2953 +#: commands/tablecmds.c:3133 commands/tablecmds.c:3167 +#: commands/tablecmds.c:3183 commands/tablecmds.c:3290 +#: commands/tablecmds.c:3323 commands/tablecmds.c:3339 +#: parser/parse_coerce.c:2155 parser/parse_coerce.c:2175 +#: parser/parse_coerce.c:2195 parser/parse_coerce.c:2216 +#: parser/parse_coerce.c:2271 parser/parse_coerce.c:2305 +#: parser/parse_coerce.c:2381 parser/parse_coerce.c:2412 +#: parser/parse_coerce.c:2451 parser/parse_coerce.c:2518 +#: parser/parse_param.c:223 #, c-format -msgid "column \"%s\" has a storage parameter conflict" -msgstr "конфлікт параметрів зберігання в стовпці \"%s\"" +msgid "%s versus %s" +msgstr "%s проти %s" -#: commands/tablecmds.c:2999 commands/tablecmds.c:3086 +#: commands/tablecmds.c:3145 #, c-format -msgid "column \"%s\" inherits from generated column but specifies default" -msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує за замовчуванням" +msgid "column \"%s\" has a collation conflict" +msgstr "конфлікт правил сортування в стовпці \"%s\"" -#: commands/tablecmds.c:3004 commands/tablecmds.c:3091 +#: commands/tablecmds.c:3147 commands/tablecmds.c:3309 +#: commands/tablecmds.c:7057 #, c-format -msgid "column \"%s\" inherits from generated column but specifies identity" -msgstr "стовпець \"%s\" успадковується із згенерованого стовпця, але вказує ідентичність" +msgid "\"%s\" versus \"%s\"" +msgstr "\"%s\" проти \"%s\"" -#: commands/tablecmds.c:3012 commands/tablecmds.c:3099 +#: commands/tablecmds.c:3165 #, c-format -msgid "child column \"%s\" specifies generation expression" -msgstr "дочірній стовпець \"%s\" визначає вираз генерації" +msgid "column \"%s\" has a storage parameter conflict" +msgstr "конфлікт параметрів зберігання в стовпці \"%s\"" -#: commands/tablecmds.c:3014 commands/tablecmds.c:3101 +#: commands/tablecmds.c:3181 commands/tablecmds.c:3337 #, c-format -msgid "A child table column cannot be generated unless its parent column is." -msgstr "Стовпець дочірньої таблиці не може бути створений, якщо не створено стовпець батьківської таблиці." +msgid "column \"%s\" has a compression method conflict" +msgstr "конфлікт методів стиснення в стовпці \"%s\"" -#: commands/tablecmds.c:3147 +#: commands/tablecmds.c:3276 #, c-format -msgid "column \"%s\" inherits conflicting generation expressions" -msgstr "стовпець \"%s\" успадковує конфліктуючи вирази генерації" +msgid "merging multiple inherited definitions of column \"%s\"" +msgstr "злиття декількох успадкованих визначень стовпця \"%s\"" -#: commands/tablecmds.c:3149 +#: commands/tablecmds.c:3288 #, c-format -msgid "To resolve the conflict, specify a generation expression explicitly." -msgstr "Щоб вирішити цей конфлікт, явно вкажіть вираз генерації." +msgid "inherited column \"%s\" has a type conflict" +msgstr "конфлікт типів в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:3153 +#: commands/tablecmds.c:3307 #, c-format -msgid "column \"%s\" inherits conflicting default values" -msgstr "стовпець \"%s\" успадковує конфліктні значення за замовчуванням" +msgid "inherited column \"%s\" has a collation conflict" +msgstr "конфлікт правил сортування в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:3155 +#: commands/tablecmds.c:3321 #, c-format -msgid "To resolve the conflict, specify a default explicitly." -msgstr "Для усунення конфлікту вкажіть бажане значення за замовчуванням." +msgid "inherited column \"%s\" has a storage parameter conflict" +msgstr "конфлікт параметрів зберігання в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:3205 +#: commands/tablecmds.c:3349 #, c-format -msgid "check constraint name \"%s\" appears multiple times but with different expressions" -msgstr "ім'я перевірочного обмеження \"%s\" з'являється декілька разів, але з різними виразами" +msgid "inherited column \"%s\" has a generation conflict" +msgstr "конфлікт генерування в успадкованому стовпці \"%s\"" -#: commands/tablecmds.c:3418 +#: commands/tablecmds.c:3580 #, c-format msgid "cannot move temporary tables of other sessions" msgstr "переміщувати тимчасові таблиці інших сеансів не можна" -#: commands/tablecmds.c:3488 +#: commands/tablecmds.c:3650 #, c-format msgid "cannot rename column of typed table" msgstr "перейменувати стовпець типізованої таблиці не можна" -#: commands/tablecmds.c:3507 +#: commands/tablecmds.c:3669 #, c-format msgid "cannot rename columns of relation \"%s\"" msgstr "перейменувати стовпці відношення %s не можна" -#: commands/tablecmds.c:3602 +#: commands/tablecmds.c:3764 #, c-format msgid "inherited column \"%s\" must be renamed in child tables too" msgstr "успадкований стовпець \"%s\" повинен бути перейменований в дочірніх таблицях також" -#: commands/tablecmds.c:3634 +#: commands/tablecmds.c:3796 #, c-format msgid "cannot rename system column \"%s\"" msgstr "не можна перейменувати системний стовпець \"%s\"" -#: commands/tablecmds.c:3649 +#: commands/tablecmds.c:3811 #, c-format msgid "cannot rename inherited column \"%s\"" msgstr "не можна перейменувати успадкований стовпець \"%s\"" -#: commands/tablecmds.c:3801 +#: commands/tablecmds.c:3963 #, c-format msgid "inherited constraint \"%s\" must be renamed in child tables too" msgstr "успадковане обмеження \"%s\" повинно бути перейменовано в дочірніх таблицях також" -#: commands/tablecmds.c:3808 +#: commands/tablecmds.c:3970 #, c-format msgid "cannot rename inherited constraint \"%s\"" msgstr "не можна перейменувати успадковане обмеження \"%s\"" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4105 +#: commands/tablecmds.c:4267 #, c-format msgid "cannot %s \"%s\" because it is being used by active queries in this session" msgstr "не можна виконати %s \"%s\", тому що цей об'єкт використовується активними запитами в цьому сеансі" #. translator: first %s is a SQL command, eg ALTER TABLE -#: commands/tablecmds.c:4114 +#: commands/tablecmds.c:4276 #, c-format msgid "cannot %s \"%s\" because it has pending trigger events" msgstr "не можна виконати %s \"%s\", тому що з цим об'єктом зв'язані очікуванні події тригерів" -#: commands/tablecmds.c:4581 +#: commands/tablecmds.c:4302 +#, c-format +msgid "cannot alter temporary tables of other sessions" +msgstr "не можна змінювати тимчасові таблиці з інших сеансів" + +#: commands/tablecmds.c:4775 #, c-format msgid "cannot alter partition \"%s\" with an incomplete detach" msgstr "не можна змінити розділ \"%s\" з неповним відключенням" -#: commands/tablecmds.c:4774 commands/tablecmds.c:4789 +#: commands/tablecmds.c:4979 commands/tablecmds.c:4994 #, c-format msgid "cannot change persistence setting twice" msgstr "неможливо двічі змінити параметр стійкості" -#: commands/tablecmds.c:4810 -#, c-format -msgid "cannot change access method of a partitioned table" -msgstr "неможливо змінити метод доступу секціонованої таблиці" - -#: commands/tablecmds.c:4816 +#: commands/tablecmds.c:5015 #, c-format msgid "cannot have multiple SET ACCESS METHOD subcommands" msgstr "неможливо мати декілька підкоманд SET ACCESS METHOD" -#: commands/tablecmds.c:5537 +#: commands/tablecmds.c:5745 #, c-format msgid "cannot rewrite system relation \"%s\"" msgstr "перезаписати системне відношення \"%s\" не можна" -#: commands/tablecmds.c:5543 +#: commands/tablecmds.c:5751 #, c-format msgid "cannot rewrite table \"%s\" used as a catalog table" msgstr "перезаписати таблицю \"%s\", що використовується як таблиця каталогу, не можна" -#: commands/tablecmds.c:5553 +#: commands/tablecmds.c:5763 #, c-format msgid "cannot rewrite temporary tables of other sessions" msgstr "неможливо перезаписати тимчасові таблиці інших сеансів" -#: commands/tablecmds.c:6048 +#: commands/tablecmds.c:6258 #, c-format msgid "column \"%s\" of relation \"%s\" contains null values" msgstr "стовпець \"%s\" відношення \"%s\" містить null значення" -#: commands/tablecmds.c:6065 +#: commands/tablecmds.c:6275 #, c-format msgid "check constraint \"%s\" of relation \"%s\" is violated by some row" msgstr "перевірка обмеження \"%s\" відношення \"%s\" порушується деяким рядком" -#: commands/tablecmds.c:6084 partitioning/partbounds.c:3388 +#: commands/tablecmds.c:6294 partitioning/partbounds.c:3387 #, c-format msgid "updated partition constraint for default partition \"%s\" would be violated by some row" msgstr "оновлене обмеження секції для секції за замовчуванням \"%s\" буде порушено деякими рядками" -#: commands/tablecmds.c:6090 +#: commands/tablecmds.c:6300 #, c-format msgid "partition constraint of relation \"%s\" is violated by some row" msgstr "обмеження секції відношення \"%s\" порушується деяким рядком" #. translator: %s is a group of some SQL keywords -#: commands/tablecmds.c:6352 +#: commands/tablecmds.c:6565 #, c-format msgid "ALTER action %s cannot be performed on relation \"%s\"" msgstr "Дію ALTER %s не можна виконати на відношенні \"%s\"" -#: commands/tablecmds.c:6607 commands/tablecmds.c:6614 +#: commands/tablecmds.c:6820 commands/tablecmds.c:6827 #, c-format msgid "cannot alter type \"%s\" because column \"%s.%s\" uses it" msgstr "неможливо змінити тип \"%s\", тому що стовпець \"%s.%s\" використовує його" -#: commands/tablecmds.c:6621 +#: commands/tablecmds.c:6834 #, c-format msgid "cannot alter foreign table \"%s\" because column \"%s.%s\" uses its row type" msgstr "неможливо змінити сторонню таблицю \"%s\", тому що стовпець \"%s.%s\" використовує тип її рядка" -#: commands/tablecmds.c:6628 +#: commands/tablecmds.c:6841 #, c-format msgid "cannot alter table \"%s\" because column \"%s.%s\" uses its row type" msgstr "неможливо змінити таблицю \"%s\", тому що стовпець \"%s.%s\" використовує тип її рядка" -#: commands/tablecmds.c:6684 +#: commands/tablecmds.c:6897 #, c-format msgid "cannot alter type \"%s\" because it is the type of a typed table" msgstr "неможливо змінити тип \"%s\", тому що це тип типізованої таблиці" -#: commands/tablecmds.c:6686 +#: commands/tablecmds.c:6899 #, c-format msgid "Use ALTER ... CASCADE to alter the typed tables too." msgstr "Щоб змінити типізовані таблиці, використайте також ALTER ... CASCADE." -#: commands/tablecmds.c:6732 +#: commands/tablecmds.c:6945 #, c-format msgid "type %s is not a composite type" msgstr "тип %s не є складеним" -#: commands/tablecmds.c:6759 +#: commands/tablecmds.c:6972 #, c-format msgid "cannot add column to typed table" msgstr "неможливо додати стовпець до типізованої таблиці" -#: commands/tablecmds.c:6812 +#: commands/tablecmds.c:7020 #, c-format msgid "cannot add column to a partition" msgstr "неможливо додати стовпець до розділу" -#: commands/tablecmds.c:6841 commands/tablecmds.c:15179 +#: commands/tablecmds.c:7049 commands/tablecmds.c:15757 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інший тип для стовпця \"%s\"" -#: commands/tablecmds.c:6847 commands/tablecmds.c:15186 +#: commands/tablecmds.c:7055 commands/tablecmds.c:15763 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інше правило сортування для стовпця \"%s\"" -#: commands/tablecmds.c:6865 +#: commands/tablecmds.c:7073 #, c-format msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "об'єднання визначення стовпця \"%s\" для нащадка \"%s\"" -#: commands/tablecmds.c:6912 +#: commands/tablecmds.c:7126 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "неможливо додати стовпець ідентифікації в таблицю, яка має дочірні таблиці" -#: commands/tablecmds.c:7163 +#: commands/tablecmds.c:7339 #, c-format msgid "column must be added to child tables too" msgstr "стовпець також повинен бути доданий до дочірніх таблиць" -#: commands/tablecmds.c:7241 +#: commands/tablecmds.c:7417 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "стовпець \"%s\" відношення \"%s\" вже існує, пропускається" -#: commands/tablecmds.c:7248 +#: commands/tablecmds.c:7424 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "стовпець \"%s\" відношення \"%s\" вже існує" -#: commands/tablecmds.c:7314 commands/tablecmds.c:12106 +#: commands/tablecmds.c:7490 commands/tablecmds.c:12550 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "неможливо видалити обмеження тільки з секціонованої таблиці, коли існують секції" -#: commands/tablecmds.c:7315 commands/tablecmds.c:7632 -#: commands/tablecmds.c:8601 commands/tablecmds.c:12107 +#: commands/tablecmds.c:7491 commands/tablecmds.c:7805 +#: commands/tablecmds.c:7983 commands/tablecmds.c:8090 +#: commands/tablecmds.c:8207 commands/tablecmds.c:9026 +#: commands/tablecmds.c:12551 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не вказуйте ключове слово ONLY." -#: commands/tablecmds.c:7352 commands/tablecmds.c:7558 -#: commands/tablecmds.c:7700 commands/tablecmds.c:7818 -#: commands/tablecmds.c:7912 commands/tablecmds.c:7971 -#: commands/tablecmds.c:8090 commands/tablecmds.c:8229 -#: commands/tablecmds.c:8299 commands/tablecmds.c:8433 -#: commands/tablecmds.c:12261 commands/tablecmds.c:13765 -#: commands/tablecmds.c:16296 +#: commands/tablecmds.c:7527 commands/tablecmds.c:7731 +#: commands/tablecmds.c:7873 commands/tablecmds.c:8005 +#: commands/tablecmds.c:8134 commands/tablecmds.c:8228 +#: commands/tablecmds.c:8329 commands/tablecmds.c:8486 +#: commands/tablecmds.c:8639 commands/tablecmds.c:8720 +#: commands/tablecmds.c:8854 commands/tablecmds.c:12704 +#: commands/tablecmds.c:14246 commands/tablecmds.c:16872 #, c-format msgid "cannot alter system column \"%s\"" msgstr "не можна змінити системний стовпець \"%s\"" -#: commands/tablecmds.c:7358 commands/tablecmds.c:7706 +#: commands/tablecmds.c:7533 commands/tablecmds.c:7879 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "стовпець \"%s\" відношення \"%s\" є стовпцем ідентифікації" -#: commands/tablecmds.c:7401 +#: commands/tablecmds.c:7574 #, c-format msgid "column \"%s\" is in a primary key" msgstr "стовпець \"%s\" входить до первинного ключа" -#: commands/tablecmds.c:7406 +#: commands/tablecmds.c:7579 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "стовпець \"%s\" в індексі, що використовується як ідентифікація репліки" -#: commands/tablecmds.c:7429 +#: commands/tablecmds.c:7602 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "стовпець \"%s\" в батьківській таблиці позначений як NOT NULL" -#: commands/tablecmds.c:7629 commands/tablecmds.c:9085 +#: commands/tablecmds.c:7802 commands/tablecmds.c:9510 #, c-format msgid "constraint must be added to child tables too" msgstr "обмеження повинно бути додано у дочірні таблиці також" -#: commands/tablecmds.c:7630 +#: commands/tablecmds.c:7803 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Стовпець \"%s\" відношення \"%s\" вже не NOT NULL." -#: commands/tablecmds.c:7715 +#: commands/tablecmds.c:7888 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "стовпець \"%s\" відношення \"%s\" є згенерованим стовпцем" -#: commands/tablecmds.c:7829 +#: commands/tablecmds.c:7982 +#, c-format +msgid "cannot add identity to a column of only the partitioned table" +msgstr "не може додати ідентифікатор до стовпця лише розділеної таблиці" + +#: commands/tablecmds.c:7988 +#, c-format +msgid "cannot add identity to a column of a partition" +msgstr "не може додати ідентифікатор до стовпця розділу" + +#: commands/tablecmds.c:8016 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "стовпець \"%s\" відношення \"%s\" повинен бути оголошений як NOT NULL, щоб додати ідентифікацію" -#: commands/tablecmds.c:7835 +#: commands/tablecmds.c:8022 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "стовпець \"%s\" відношення \"%s\" вже є стовпцем ідентифікації" -#: commands/tablecmds.c:7841 +#: commands/tablecmds.c:8028 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "стовпець \"%s\" відношення \"%s\" вже має значення за замовчуванням" -#: commands/tablecmds.c:7918 commands/tablecmds.c:7979 +#: commands/tablecmds.c:8089 +#, c-format +msgid "cannot change identity column of only the partitioned table" +msgstr "не можна змінювати стовпець ідентичності лише в розбитій на розділи таблиці" + +#: commands/tablecmds.c:8095 +#, c-format +msgid "cannot change identity column of a partition" +msgstr "не можна змінити стовпець ідентичності розділу" + +#: commands/tablecmds.c:8140 commands/tablecmds.c:8236 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації" -#: commands/tablecmds.c:7984 +#: commands/tablecmds.c:8206 +#, c-format +msgid "cannot drop identity from a column of only the partitioned table" +msgstr "не можна вилучити ідентифікатор зі стовпця лише розбитої на розділи таблиці" + +#: commands/tablecmds.c:8212 +#, c-format +msgid "cannot drop identity from a column of a partition" +msgstr "не можна вилучити ідентифікатор зі стовпця розділу" + +#: commands/tablecmds.c:8241 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації, пропускається" -#: commands/tablecmds.c:8037 +#: commands/tablecmds.c:8335 +#, c-format +msgid "column \"%s\" of relation \"%s\" is not a generated column" +msgstr "стовпець \"%s\" відношення \"%s\" не є згенерованим стовпцем" + +#: commands/tablecmds.c:8433 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION повинен бути застосований і до дочірніх таблиць" -#: commands/tablecmds.c:8059 +#: commands/tablecmds.c:8455 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "не можна видалити вираз генерації з успадкованого стовпця" -#: commands/tablecmds.c:8098 +#: commands/tablecmds.c:8494 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем" -#: commands/tablecmds.c:8103 +#: commands/tablecmds.c:8499 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем, пропускається" -#: commands/tablecmds.c:8176 +#: commands/tablecmds.c:8577 #, c-format msgid "cannot refer to non-index column by number" msgstr "не можна посилатись на неіндексований стовпець за номером" -#: commands/tablecmds.c:8219 +#: commands/tablecmds.c:8629 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "стовпець з номером %d відношення %s не існує" -#: commands/tablecmds.c:8238 +#: commands/tablecmds.c:8648 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "змінити статистику включеного стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8243 +#: commands/tablecmds.c:8653 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "змінити статистику невираженого стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8245 +#: commands/tablecmds.c:8655 #, c-format msgid "Alter statistics on table column instead." msgstr "Замість цього змініть статистику стовпця в таблиці." -#: commands/tablecmds.c:8480 +#: commands/tablecmds.c:8901 #, c-format msgid "cannot drop column from typed table" msgstr "не можна видалити стовпець з типізованої таблиці" -#: commands/tablecmds.c:8539 +#: commands/tablecmds.c:8964 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:8552 +#: commands/tablecmds.c:8977 #, c-format msgid "cannot drop system column \"%s\"" msgstr "не можна видалити системний стовпець \"%s\"" -#: commands/tablecmds.c:8562 +#: commands/tablecmds.c:8987 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "не можна видалити успадкований стовпець \"%s\"" -#: commands/tablecmds.c:8575 +#: commands/tablecmds.c:9000 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна видалити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:8600 +#: commands/tablecmds.c:9025 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "видалити стовпець тільки з секціонованої таблиці, коли існують секції, не можна" -#: commands/tablecmds.c:8805 +#: commands/tablecmds.c:9230 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX не підтримується із секціонованими таблицями" -#: commands/tablecmds.c:8830 +#: commands/tablecmds.c:9255 #, 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:9167 +#: commands/tablecmds.c:9592 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна використати ONLY для стороннього ключа в секціонованій таблиці \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9173 +#: commands/tablecmds.c:9598 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна додати сторонній ключ з характеристикою NOT VALID в секціоновану таблицю \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9176 +#: commands/tablecmds.c:9601 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Ця функція ще не підтримується з секціонованими таблицями." -#: commands/tablecmds.c:9183 commands/tablecmds.c:9639 +#: commands/tablecmds.c:9608 commands/tablecmds.c:10064 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "вказане відношення \"%s\" не є таблицею" -#: commands/tablecmds.c:9206 +#: commands/tablecmds.c:9631 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "обмеження в постійних таблицях можуть посилатись лише на постійні таблиці" -#: commands/tablecmds.c:9213 +#: commands/tablecmds.c:9638 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "обмеження в нежурнальованих таблицях можуть посилатись тільки на постійні або нежурналюємі таблиці" -#: commands/tablecmds.c:9219 +#: commands/tablecmds.c:9644 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "обмеження в тимчасових таблицях можуть посилатись лише на тимчасові таблиці" -#: commands/tablecmds.c:9223 +#: commands/tablecmds.c:9648 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "обмеження в тимчасових таблицях повинні посилатись лише на тичасові таблиці поточного сеансу" -#: commands/tablecmds.c:9287 commands/tablecmds.c:9293 +#: commands/tablecmds.c:9712 commands/tablecmds.c:9718 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "неприпустима дія %s для обмеження зовнішнього ключа, який містить згеренований стовпець" -#: commands/tablecmds.c:9309 +#: commands/tablecmds.c:9734 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число стовпців в джерелі і призначенні зовнішнього ключа не збігається" -#: commands/tablecmds.c:9416 +#: commands/tablecmds.c:9841 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "обмеження зовнішнього ключа \"%s\" не можна реалізувати" -#: commands/tablecmds.c:9418 +#: commands/tablecmds.c:9843 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Стовпці ключа \"%s\" і \"%s\" містять несумісні типи: %s і %s." -#: commands/tablecmds.c:9575 +#: commands/tablecmds.c:10000 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "стовпець \"%s\" вказаний у дії ON DELETE SET повинен бути частиною зовнішнього ключа" -#: commands/tablecmds.c:9849 commands/tablecmds.c:10319 -#: parser/parse_utilcmd.c:800 parser/parse_utilcmd.c:929 +#: commands/tablecmds.c:10274 commands/tablecmds.c:10761 +#: parser/parse_utilcmd.c:822 parser/parse_utilcmd.c:945 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "обмеження зовнішнього ключа для сторонніх таблиць не підтримуються" -#: commands/tablecmds.c:10872 commands/tablecmds.c:11150 -#: commands/tablecmds.c:12063 commands/tablecmds.c:12138 +#: commands/tablecmds.c:10744 +#, c-format +msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"" +msgstr "не можна підключити таблицю \"%s\" в якості секції, тому що на неї посилається сторонній ключ \"%s\"" + +#: commands/tablecmds.c:11314 commands/tablecmds.c:11595 +#: commands/tablecmds.c:12507 commands/tablecmds.c:12581 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "обмеження \"%s\" відношення \"%s\" не існує" -#: commands/tablecmds.c:10879 +#: commands/tablecmds.c:11321 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є обмеженням зовнішнього ключа" -#: commands/tablecmds.c:10917 +#: commands/tablecmds.c:11359 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "не можна змінити обмеження \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:10920 +#: commands/tablecmds.c:11362 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Обмеження \"%s\" походить з обмеження \"%s\" відношення \"%s\"." -#: commands/tablecmds.c:10922 +#: commands/tablecmds.c:11364 #, c-format msgid "You may alter the constraint it derives from instead." msgstr "Натомість ви можете змінити початкове обмеження." -#: commands/tablecmds.c:11158 +#: commands/tablecmds.c:11603 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є зовнішнім ключем або перевіркою обмеженням " -#: commands/tablecmds.c:11235 +#: commands/tablecmds.c:11680 #, c-format msgid "constraint must be validated on child tables too" msgstr "обмеження повинно дотримуватися в дочірніх таблицях також" -#: commands/tablecmds.c:11322 +#: commands/tablecmds.c:11767 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "стовпець \"%s\", вказаний в обмеженні зовнішнього ключа, не існує" -#: commands/tablecmds.c:11328 +#: commands/tablecmds.c:11773 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "в зовнішніх ключах не можна використовувати системні стовпці" -#: commands/tablecmds.c:11332 +#: commands/tablecmds.c:11777 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "у зовнішньому ключі не може бути більш ніж %d ключів" -#: commands/tablecmds.c:11397 +#: commands/tablecmds.c:11842 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "використовувати затримуваний первинний ключ в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11414 +#: commands/tablecmds.c:11859 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає первинного ключа" -#: commands/tablecmds.c:11482 +#: commands/tablecmds.c:11927 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "у списку стовпців зовнішнього ключа не повинно бути повторень" -#: commands/tablecmds.c:11574 +#: commands/tablecmds.c:12019 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "використовувати затримане обмеження унікальності в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11579 +#: commands/tablecmds.c:12024 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає обмеження унікальності, відповідного даним ключам" -#: commands/tablecmds.c:12019 +#: commands/tablecmds.c:12463 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "видалити успадковане обмеження \"%s\" відношення \"%s\" не можна" -#: commands/tablecmds.c:12069 +#: commands/tablecmds.c:12513 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "обмеження \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:12245 +#: commands/tablecmds.c:12688 #, c-format msgid "cannot alter column type of typed table" msgstr "змінити тип стовпця в типізованій таблиці не можна" -#: commands/tablecmds.c:12272 +#: commands/tablecmds.c:12714 +#, c-format +msgid "cannot specify USING when altering type of generated column" +msgstr "не можна вказати USING під час зміни типу згенерованого стовпця" + +#: commands/tablecmds.c:12715 commands/tablecmds.c:17918 +#: commands/tablecmds.c:18008 commands/trigger.c:656 +#: rewrite/rewriteHandler.c:935 rewrite/rewriteHandler.c:970 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "Стовпець \"%s\" є згенерованим стовпцем." + +#: commands/tablecmds.c:12725 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "змінити успадкований стовпець \"%s\" не можна" -#: commands/tablecmds.c:12281 +#: commands/tablecmds.c:12734 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна змінити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:12331 +#: commands/tablecmds.c:12784 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "результати речення USING для стовпця \"%s\" не можна автоматично наведено для типу %s" -#: commands/tablecmds.c:12334 +#: commands/tablecmds.c:12787 #, c-format msgid "You might need to add an explicit cast." msgstr "Можливо, необхідно додати явне приведення типу." -#: commands/tablecmds.c:12338 +#: commands/tablecmds.c:12791 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "стовпець \"%s\" не можна автоматично привести до типу %s" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12341 +#: commands/tablecmds.c:12795 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Можливо, необхідно вказати \"USING %s::%s\"." -#: commands/tablecmds.c:12440 +#: commands/tablecmds.c:12894 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "не можна змінити успадкований стовпець \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:12469 +#: commands/tablecmds.c:12923 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Вираз USING містить посилання на тип усього рядка таблиці." -#: commands/tablecmds.c:12480 +#: commands/tablecmds.c:12934 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "тип успадкованого стовпця \"%s\" повинен бути змінений і в дочірніх таблицях" -#: commands/tablecmds.c:12605 +#: commands/tablecmds.c:13059 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "не можна змінити тип стовпця \"%s\" двічі" -#: commands/tablecmds.c:12643 +#: commands/tablecmds.c:13097 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "вираз генерації для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12648 +#: commands/tablecmds.c:13102 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "значення за замовчуванням для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12729 +#: commands/tablecmds.c:13406 #, c-format -msgid "cannot alter type of a column used by a view or rule" -msgstr "змінити тип стовпця, залученого в поданні або правилі, не можна" +msgid "cannot alter type of a column used by a function or procedure" +msgstr "неможливо змінити тип стовпця, який використовується функцією або процедурою" -#: commands/tablecmds.c:12730 commands/tablecmds.c:12749 -#: commands/tablecmds.c:12767 +#: commands/tablecmds.c:13407 commands/tablecmds.c:13422 +#: commands/tablecmds.c:13442 commands/tablecmds.c:13461 +#: commands/tablecmds.c:13520 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s залежить від стовпця \"%s\"" -#: commands/tablecmds.c:12748 +#: commands/tablecmds.c:13421 +#, c-format +msgid "cannot alter type of a column used by a view or rule" +msgstr "змінити тип стовпця, залученого в поданні або правилі, не можна" + +#: commands/tablecmds.c:13441 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні тригеру" -#: commands/tablecmds.c:12766 +#: commands/tablecmds.c:13460 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні політики" -#: commands/tablecmds.c:12797 +#: commands/tablecmds.c:13491 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "змінити тип стовпця, який використовується згенерованим стовпцем, не можна" -#: commands/tablecmds.c:12798 +#: commands/tablecmds.c:13492 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Стовпець \"%s\" використовується згенерованим стовпцем \"%s\"." -#: commands/tablecmds.c:13873 commands/tablecmds.c:13885 +#: commands/tablecmds.c:13519 +#, c-format +msgid "cannot alter type of a column used by a publication WHERE clause" +msgstr "неможливо змінити тип стовпця, який використовується публікацією в реченні WHERE" + +#: commands/tablecmds.c:14354 commands/tablecmds.c:14366 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "неможливо змінити власника індексу \"%s\"" -#: commands/tablecmds.c:13875 commands/tablecmds.c:13887 +#: commands/tablecmds.c:14356 commands/tablecmds.c:14368 #, c-format msgid "Change the ownership of the index's table instead." msgstr "Замість цього змініть власника таблиці, що містить цей індекс." -#: commands/tablecmds.c:13901 +#: commands/tablecmds.c:14382 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "неможливо змінити власника послідовності \"%s\"" -#: commands/tablecmds.c:13926 +#: commands/tablecmds.c:14407 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "неможливо змінити власника відношення \"%s\"" -#: commands/tablecmds.c:14288 +#: commands/tablecmds.c:14874 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одній інструкції не може бути декілька підкоманд SET TABLESPACE" -#: commands/tablecmds.c:14365 +#: commands/tablecmds.c:14951 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "неможливо встановити параметри відношення \"%s\"" -#: commands/tablecmds.c:14399 commands/view.c:445 +#: commands/tablecmds.c:14985 commands/view.c:440 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION підтримується лише з автооновлюваними поданнями" -#: commands/tablecmds.c:14649 +#: commands/tablecmds.c:15235 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "у табличних просторах існують лише таблиці, індекси та матеріалізовані подання" -#: commands/tablecmds.c:14661 +#: commands/tablecmds.c:15247 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "переміщувати відношення у або з табличного простору pg_global не можна" -#: commands/tablecmds.c:14753 +#: commands/tablecmds.c:15339 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "переривання через блокування відношення \"%s.%s\" неможливе" -#: commands/tablecmds.c:14769 +#: commands/tablecmds.c:15355 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr " табличному просторі \"%s\" не знайдені відповідні відносини" -#: commands/tablecmds.c:14887 +#: commands/tablecmds.c:15477 #, c-format msgid "cannot change inheritance of typed table" msgstr "змінити успадкування типізованої таблиці не можна" -#: commands/tablecmds.c:14892 commands/tablecmds.c:15410 +#: commands/tablecmds.c:15482 commands/tablecmds.c:15982 #, c-format msgid "cannot change inheritance of a partition" msgstr "змінити успадкування секції не можна" -#: commands/tablecmds.c:14897 +#: commands/tablecmds.c:15487 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "змінити успадкування секціонованої таблиці не можна" -#: commands/tablecmds.c:14943 +#: commands/tablecmds.c:15533 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "успадкування для тимчасового відношення іншого сеансу не можливе" -#: commands/tablecmds.c:14956 +#: commands/tablecmds.c:15546 #, c-format msgid "cannot inherit from a partition" msgstr "успадкування від секції неможливе" -#: commands/tablecmds.c:14978 commands/tablecmds.c:17841 +#: commands/tablecmds.c:15568 commands/tablecmds.c:18419 #, c-format msgid "circular inheritance not allowed" msgstr "циклічне успадкування неприпустиме" -#: commands/tablecmds.c:14979 commands/tablecmds.c:17842 +#: commands/tablecmds.c:15569 commands/tablecmds.c:18420 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" вже є нащадком \"%s\"." -#: commands/tablecmds.c:14992 +#: commands/tablecmds.c:15582 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "тригер \"%s\" не дозволяє таблиці \"%s\" стати нащадком успадкування" -#: commands/tablecmds.c:14994 +#: commands/tablecmds.c:15584 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "Тригери ROW з перехідними таблицями не підтримуються в ієрархіях успадкування." -#: commands/tablecmds.c:15197 +#: commands/tablecmds.c:15773 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "стовпець \"%s\" в дочірній таблиці має бути позначений як NOT NULL" -#: commands/tablecmds.c:15206 +#: commands/tablecmds.c:15782 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "стовпець \"%s\" у дочірній таблиці повинен бути згенерованим стовпцем" -#: commands/tablecmds.c:15211 +#: commands/tablecmds.c:15786 #, c-format msgid "column \"%s\" in child table must not be a generated column" msgstr "стовпець \"%s\" у дочірній таблиці повинен бути не генерованим стовпцем" -#: commands/tablecmds.c:15242 +#: commands/tablecmds.c:15824 #, c-format msgid "child table is missing column \"%s\"" msgstr "у дочірній таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:15330 +#: commands/tablecmds.c:15905 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "дочірня таблиця \"%s\" має інше визначення перевірочного обмеження \"%s\"" -#: commands/tablecmds.c:15338 +#: commands/tablecmds.c:15912 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з неуспадкованим обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15349 +#: commands/tablecmds.c:15922 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з NOT VALID обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15388 +#: commands/tablecmds.c:15960 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "у дочірній таблиці не вистачає обмеження \"%s\"" -#: commands/tablecmds.c:15474 +#: commands/tablecmds.c:16046 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "розділ \"%s\" вже очікує відключення в секціонованій таблиці \"%s.%s\"" -#: commands/tablecmds.c:15503 commands/tablecmds.c:15551 +#: commands/tablecmds.c:16075 commands/tablecmds.c:16121 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "відношення \"%s\" не є секцією відношення \"%s\"" -#: commands/tablecmds.c:15557 +#: commands/tablecmds.c:16127 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "відношення \"%s\" не є предком відношення \"%s\"" -#: commands/tablecmds.c:15785 +#: commands/tablecmds.c:16354 #, c-format msgid "typed tables cannot inherit" msgstr "типізовані таблиці не можуть успадковуватись" -#: commands/tablecmds.c:15815 +#: commands/tablecmds.c:16384 #, c-format msgid "table is missing column \"%s\"" msgstr "у таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:15826 +#: commands/tablecmds.c:16395 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблиця містить стовпець \"%s\", а тип потребує \"%s\"" -#: commands/tablecmds.c:15835 +#: commands/tablecmds.c:16404 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\" іншого типу" -#: commands/tablecmds.c:15849 +#: commands/tablecmds.c:16418 #, c-format msgid "table has extra column \"%s\"" msgstr "таблиця містить зайвий стовпець \"%s\"" -#: commands/tablecmds.c:15901 +#: commands/tablecmds.c:16470 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - не типізована таблиця" -#: commands/tablecmds.c:16075 +#: commands/tablecmds.c:16644 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати неунікальний індекс \"%s\"" -#: commands/tablecmds.c:16081 +#: commands/tablecmds.c:16650 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати небезпосередній індекс \"%s\"" -#: commands/tablecmds.c:16087 +#: commands/tablecmds.c:16656 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати індекс з виразом \"%s\"" -#: commands/tablecmds.c:16093 +#: commands/tablecmds.c:16662 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати частковий індекс \"%s\"" -#: commands/tablecmds.c:16110 +#: commands/tablecmds.c:16679 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець %d - системний стовпець" -#: commands/tablecmds.c:16117 +#: commands/tablecmds.c:16686 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець \"%s\" допускає Null" -#: commands/tablecmds.c:16362 +#: commands/tablecmds.c:16938 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "змінити стан журналювання таблиці \"%s\" не можна, тому що вона тимчасова" -#: commands/tablecmds.c:16386 +#: commands/tablecmds.c:16962 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "таблицю \"%s\" не можна змінити на нежурнальовану, тому що вона є частиною публікації" -#: commands/tablecmds.c:16388 +#: commands/tablecmds.c:16964 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурнальовані відношення не підтримують реплікацію." -#: commands/tablecmds.c:16433 +#: commands/tablecmds.c:17009 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на журнальовану, тому що вона посилається на нежурнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16443 +#: commands/tablecmds.c:17019 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на нежурнальовану, тому що вона посилається на журнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16501 +#: commands/tablecmds.c:17077 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "перемістити послідовність з власником в іншу схему не можна" -#: commands/tablecmds.c:16608 +#: commands/tablecmds.c:17182 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "відношення \"%s\" вже існує в схемі \"%s\"" -#: commands/tablecmds.c:17028 +#: commands/tablecmds.c:17603 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" не є таблицею або матеріалізованим поданням" -#: commands/tablecmds.c:17178 +#: commands/tablecmds.c:17756 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - не складений тип" -#: commands/tablecmds.c:17208 +#: commands/tablecmds.c:17786 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "змінити схему індексу \"%s\" не можна" -#: commands/tablecmds.c:17210 commands/tablecmds.c:17224 +#: commands/tablecmds.c:17788 commands/tablecmds.c:17802 #, c-format msgid "Change the schema of the table instead." msgstr "Замість цього змініть схему таблиці." -#: commands/tablecmds.c:17214 +#: commands/tablecmds.c:17792 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "змінити схему складеного типу \"%s\" не можна" -#: commands/tablecmds.c:17222 +#: commands/tablecmds.c:17800 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "змінити схему таблиці TOAST \"%s\" не можна" -#: commands/tablecmds.c:17254 +#: commands/tablecmds.c:17832 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегія секціонування \"по списку\" не може використовувати декілька стовпців" -#: commands/tablecmds.c:17320 +#: commands/tablecmds.c:17898 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "стовпець \"%s\", згаданий в ключі секціонування, не існує" -#: commands/tablecmds.c:17328 +#: commands/tablecmds.c:17906 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системний стовпець \"%s\" не можна використати в ключі секціонування" -#: commands/tablecmds.c:17339 commands/tablecmds.c:17429 +#: commands/tablecmds.c:17917 commands/tablecmds.c:18007 #, c-format msgid "cannot use generated column in partition key" msgstr "використати згенерований стовпець в ключі секції, не можна" -#: commands/tablecmds.c:17340 commands/tablecmds.c:17430 commands/trigger.c:663 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "Стовпець \"%s\" є згенерованим стовпцем." - -#: commands/tablecmds.c:17412 +#: commands/tablecmds.c:17990 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "вирази ключа секціонування не можуть містити посилання на системний стовпець" -#: commands/tablecmds.c:17459 +#: commands/tablecmds.c:18037 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "функції у виразі ключа секціонування повинні бути позначені як IMMUTABLE" -#: commands/tablecmds.c:17468 +#: commands/tablecmds.c:18046 #, c-format msgid "cannot use constant expression as partition key" msgstr "не можна використати константий вираз як ключ секціонування" -#: commands/tablecmds.c:17489 +#: commands/tablecmds.c:18067 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не вдалося визначити, яке правило сортування використати для виразу секціонування" -#: commands/tablecmds.c:17524 +#: commands/tablecmds.c:18102 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Ви повинні вказати клас операторів гешування або визначити клас операторів гешування за замовчуванням для цього типу даних." -#: commands/tablecmds.c:17530 +#: commands/tablecmds.c:18108 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Ви повинні вказати клас операторів (btree) або визначити клас операторів (btree) за замовчуванням для цього типу даних." -#: commands/tablecmds.c:17781 +#: commands/tablecmds.c:18359 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" вже є секцією" -#: commands/tablecmds.c:17787 +#: commands/tablecmds.c:18365 #, c-format msgid "cannot attach a typed table as partition" msgstr "неможливо підключити типізовану таблицю в якості секції" -#: commands/tablecmds.c:17803 +#: commands/tablecmds.c:18381 #, c-format msgid "cannot attach inheritance child as partition" msgstr "неможливо підключити нащадка успадкування в якості секції" -#: commands/tablecmds.c:17817 +#: commands/tablecmds.c:18395 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "неможливо підключити предка успадкування в якості секції" -#: commands/tablecmds.c:17851 +#: commands/tablecmds.c:18429 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "неможливо підкючити тимчасове відношення в якості секції постійного відношення \"%s\"" -#: commands/tablecmds.c:17859 +#: commands/tablecmds.c:18437 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "неможливо підключити постійне відношення в якості секції тимчасового відношення \"%s\"" -#: commands/tablecmds.c:17867 +#: commands/tablecmds.c:18445 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "неможливо підключити секцію до тимчасового відношення в іншому сеансі" -#: commands/tablecmds.c:17874 +#: commands/tablecmds.c:18452 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "неможливо підключити тимчасове відношення з іншого сеансу в якості секції" -#: commands/tablecmds.c:17894 +#: commands/tablecmds.c:18472 +#, c-format +msgid "table \"%s\" being attached contains an identity column \"%s\"" +msgstr "таблиця \"%s\", що додається, містить стовпець ідентичності \"%s\"" + +#: commands/tablecmds.c:18474 +#, c-format +msgid "The new partition may not contain an identity column." +msgstr "Новий розділ може не містити стовпця ідентичності." + +#: commands/tablecmds.c:18482 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\", відсутній в батьківській \"%s\"" -#: commands/tablecmds.c:17897 +#: commands/tablecmds.c:18485 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Нова секція може містити лише стовпці, що є у батьківській таблиці." -#: commands/tablecmds.c:17909 +#: commands/tablecmds.c:18497 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "тригер \"%s\" не дозволяє зробити таблицю \"%s\" секцією" -#: commands/tablecmds.c:17911 +#: commands/tablecmds.c:18499 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Тригери ROW з перехідними таблицями не підтримуються для секцій." -#: commands/tablecmds.c:18090 +#: commands/tablecmds.c:18675 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "не можна підключити зовнішню таблицю \"%s\" в якості секції секціонованої таблиці \"%s\"" -#: commands/tablecmds.c:18093 +#: commands/tablecmds.c:18678 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секціонована таблиця \"%s\" містить унікальні індекси." -#: commands/tablecmds.c:18410 +#: commands/tablecmds.c:19000 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "не можна одночасно відключити розділи, коли існує розділ за замовчуванням" -#: commands/tablecmds.c:18519 +#: commands/tablecmds.c:19109 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "секціоновану таблицю \"%s\" було видалено одночасно" -#: commands/tablecmds.c:18525 +#: commands/tablecmds.c:19115 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "розділ \"%s\" було видалено паралельно" -#: commands/tablecmds.c:19040 commands/tablecmds.c:19060 -#: commands/tablecmds.c:19081 commands/tablecmds.c:19100 -#: commands/tablecmds.c:19142 +#: commands/tablecmds.c:19651 commands/tablecmds.c:19671 +#: commands/tablecmds.c:19692 commands/tablecmds.c:19711 +#: commands/tablecmds.c:19753 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "неможливо підключити індекс \"%s\" в якості секції індексу \"%s\"" -#: commands/tablecmds.c:19043 +#: commands/tablecmds.c:19654 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Індекс \"%s\" вже підключений до іншого індексу." -#: commands/tablecmds.c:19063 +#: commands/tablecmds.c:19674 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Індекс \"%s\" не є індексом жодної секції таблиці \"%s\"." -#: commands/tablecmds.c:19084 +#: commands/tablecmds.c:19695 #, c-format msgid "The index definitions do not match." msgstr "Визначення індексів не співпадають." -#: commands/tablecmds.c:19103 +#: commands/tablecmds.c:19714 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Індекс \"%s\" належить обмеженню в таблиці \"%s\", але обмеження для індексу \"%s\" не існує." -#: commands/tablecmds.c:19145 +#: commands/tablecmds.c:19756 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "До секції \"%s\" вже підключений інший індекс." -#: commands/tablecmds.c:19381 +#: commands/tablecmds.c:19992 #, c-format msgid "column data type %s does not support compression" msgstr "тип даних стовпця %s не підтримує стискання" -#: commands/tablecmds.c:19388 +#: commands/tablecmds.c:19999 #, c-format msgid "invalid compression method \"%s\"" msgstr "неприпустимий метод стискання \"%s\"" -#: commands/tablecmds.c:19414 +#: commands/tablecmds.c:20025 #, c-format msgid "invalid storage type \"%s\"" msgstr "неприпустимий тип сховища \"%s\"" -#: commands/tablecmds.c:19424 +#: commands/tablecmds.c:20035 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип даних стовпця %s може мати тільки сховище PLAIN" -#: commands/tablespace.c:199 commands/tablespace.c:650 +#: commands/tablespace.c:193 commands/tablespace.c:644 #, c-format msgid "\"%s\" exists but is not a directory" msgstr "\"%s\" існує, але це не каталог" -#: commands/tablespace.c:230 +#: commands/tablespace.c:224 #, c-format msgid "permission denied to create tablespace \"%s\"" msgstr "немає прав на створення табличного простору \"%s\"" -#: commands/tablespace.c:232 +#: commands/tablespace.c:226 #, c-format msgid "Must be superuser to create a tablespace." msgstr "Щоб створити табличний простір, потрібно бути суперкористувачем." -#: commands/tablespace.c:248 +#: commands/tablespace.c:242 #, c-format msgid "tablespace location cannot contain single quotes" msgstr "у шляху до розташування табличного простіру не повинно бути одинарних лапок" -#: commands/tablespace.c:261 +#: commands/tablespace.c:255 #, c-format msgid "tablespace location must be an absolute path" msgstr "шлях до розташування табличного простору повинен бути абсолютним" -#: commands/tablespace.c:273 +#: commands/tablespace.c:267 #, c-format msgid "tablespace location \"%s\" is too long" msgstr "шлях до розташування табличного простору \"%s\" занадто довгий" -#: commands/tablespace.c:280 +#: commands/tablespace.c:274 #, c-format msgid "tablespace location should not be inside the data directory" msgstr "табличний простір не повинен розташовуватись всередині каталогу даних" -#: commands/tablespace.c:289 commands/tablespace.c:976 +#: commands/tablespace.c:283 commands/tablespace.c:970 #, c-format msgid "unacceptable tablespace name \"%s\"" msgstr "неприпустиме ім'я табличного простору \"%s\"" -#: commands/tablespace.c:291 commands/tablespace.c:977 +#: commands/tablespace.c:285 commands/tablespace.c:971 #, c-format msgid "The prefix \"pg_\" is reserved for system tablespaces." msgstr "Префікс \"\"pg_\" зарезервований для системних табличних просторів." -#: commands/tablespace.c:310 commands/tablespace.c:998 +#: commands/tablespace.c:304 commands/tablespace.c:992 #, c-format msgid "tablespace \"%s\" already exists" msgstr "табличний простір \"%s\" вже існує" -#: commands/tablespace.c:326 +#: commands/tablespace.c:320 #, c-format msgid "pg_tablespace OID value not set when in binary upgrade mode" msgstr "значення OID pg_tablespace не встановлено в режимі двійкового оновлення" -#: commands/tablespace.c:431 commands/tablespace.c:959 -#: commands/tablespace.c:1048 commands/tablespace.c:1117 -#: commands/tablespace.c:1263 commands/tablespace.c:1466 +#: commands/tablespace.c:425 commands/tablespace.c:953 +#: commands/tablespace.c:1042 commands/tablespace.c:1111 +#: commands/tablespace.c:1257 commands/tablespace.c:1460 #, c-format msgid "tablespace \"%s\" does not exist" msgstr "табличний простір \"%s\" не існує" -#: commands/tablespace.c:437 +#: commands/tablespace.c:431 #, c-format msgid "tablespace \"%s\" does not exist, skipping" msgstr "табличний простір \"%s\" вже існує, пропускається" -#: commands/tablespace.c:463 +#: commands/tablespace.c:457 #, c-format msgid "tablespace \"%s\" cannot be dropped because some objects depend on it" msgstr "табличний простір \"%s\" не можна видалити, тому що деякі об'єкти залежать від нього" -#: commands/tablespace.c:530 +#: commands/tablespace.c:524 #, c-format msgid "tablespace \"%s\" is not empty" msgstr "табличний простір \"%s\" не пустий" -#: commands/tablespace.c:617 +#: commands/tablespace.c:611 #, c-format msgid "directory \"%s\" does not exist" msgstr "каталог \"%s\" не існує" -#: commands/tablespace.c:618 +#: commands/tablespace.c:612 #, c-format msgid "Create this directory for the tablespace before restarting the server." msgstr "Створіть цей каталог для табличного простору до перезапуску сервера." -#: commands/tablespace.c:623 +#: commands/tablespace.c:617 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не вдалося встановити права для каталогу \"%s\": %m" -#: commands/tablespace.c:655 +#: commands/tablespace.c:649 #, c-format msgid "directory \"%s\" already in use as a tablespace" msgstr "каталог \"%s\" вже використовується в якості табличного простору" -#: commands/tablespace.c:833 commands/tablespace.c:919 +#: commands/tablespace.c:827 commands/tablespace.c:913 #, c-format msgid "could not remove symbolic link \"%s\": %m" msgstr "не вдалося видалити символьне посилання \"%s\": %m" -#: commands/tablespace.c:842 commands/tablespace.c:927 +#: commands/tablespace.c:836 commands/tablespace.c:921 #, c-format msgid "\"%s\" is not a directory or symbolic link" msgstr "\"%s\" - не каталог або символьне посилання" -#: commands/tablespace.c:1122 +#: commands/tablespace.c:1116 #, c-format msgid "Tablespace \"%s\" does not exist." msgstr "Табличний простір \"%s\" не існує." -#: commands/tablespace.c:1568 +#: commands/tablespace.c:1562 #, c-format msgid "directories for tablespace %u could not be removed" msgstr "не вдалося видалити каталоги табличного простору %u" -#: commands/tablespace.c:1570 +#: commands/tablespace.c:1564 #, c-format msgid "You can remove the directories manually if necessary." msgstr "За потреби ви можете видалити каталоги вручну." -#: commands/trigger.c:232 commands/trigger.c:243 +#: commands/trigger.c:225 commands/trigger.c:236 #, c-format msgid "\"%s\" is a table" msgstr "\"%s\" - таблиця" -#: commands/trigger.c:234 commands/trigger.c:245 +#: commands/trigger.c:227 commands/trigger.c:238 #, c-format msgid "Tables cannot have INSTEAD OF triggers." msgstr "Таблиці не можуть мати тригери INSTEAD OF." -#: commands/trigger.c:266 +#: commands/trigger.c:259 #, c-format msgid "\"%s\" is a partitioned table" msgstr "\"%s\" є секційною таблицею" -#: commands/trigger.c:268 +#: commands/trigger.c:261 #, c-format msgid "ROW triggers with transition tables are not supported on partitioned tables." msgstr "Тригери ROW з перехідними таблицями не підтримуються для секційованих таблиць." -#: commands/trigger.c:280 commands/trigger.c:287 commands/trigger.c:451 +#: commands/trigger.c:273 commands/trigger.c:280 commands/trigger.c:444 #, c-format msgid "\"%s\" is a view" msgstr "\"%s\" - подання" -#: commands/trigger.c:282 +#: commands/trigger.c:275 #, c-format msgid "Views cannot have row-level BEFORE or AFTER triggers." msgstr "Подання не можуть мати рядкові тригери BEFORE або AFTER." -#: commands/trigger.c:289 +#: commands/trigger.c:282 #, c-format msgid "Views cannot have TRUNCATE triggers." msgstr "Подання не можуть мати тригери TRUNCATE." -#: commands/trigger.c:297 commands/trigger.c:309 commands/trigger.c:444 +#: commands/trigger.c:290 commands/trigger.c:302 commands/trigger.c:437 #, c-format msgid "\"%s\" is a foreign table" msgstr "\"%s\" - зовнішня таблиця" -#: commands/trigger.c:299 +#: commands/trigger.c:292 #, c-format msgid "Foreign tables cannot have INSTEAD OF triggers." msgstr "Зовнішні таблиці не можуть мати тригери INSTEAD OF." -#: commands/trigger.c:311 +#: commands/trigger.c:304 #, c-format msgid "Foreign tables cannot have constraint triggers." msgstr "Зовнішні таблиці не можуть мати обмежувальні тригери." -#: commands/trigger.c:316 commands/trigger.c:1332 commands/trigger.c:1439 +#: commands/trigger.c:309 commands/trigger.c:1325 commands/trigger.c:1432 #, c-format msgid "relation \"%s\" cannot have triggers" msgstr "відношення \"%s\" не може мати тригери" -#: commands/trigger.c:387 +#: commands/trigger.c:380 #, c-format msgid "TRUNCATE FOR EACH ROW triggers are not supported" msgstr "Тригери TRUNCATE FOR EACH ROW не підтримуються" -#: commands/trigger.c:395 +#: commands/trigger.c:388 #, c-format msgid "INSTEAD OF triggers must be FOR EACH ROW" msgstr "Тригери INSTEAD OF повинні мати тип FOR EACH ROW" -#: commands/trigger.c:399 +#: commands/trigger.c:392 #, c-format msgid "INSTEAD OF triggers cannot have WHEN conditions" msgstr "Тригери INSTEAD OF не можуть мати умови WHEN" -#: commands/trigger.c:403 +#: commands/trigger.c:396 #, c-format msgid "INSTEAD OF triggers cannot have column lists" msgstr "Тригери INSTEAD OF не можуть мати список стовпців" -#: commands/trigger.c:432 +#: commands/trigger.c:425 #, c-format msgid "ROW variable naming in the REFERENCING clause is not supported" msgstr "Змінна іменування ROW в реченні REFERENCING не підтримується" -#: commands/trigger.c:433 +#: commands/trigger.c:426 #, c-format msgid "Use OLD TABLE or NEW TABLE for naming transition tables." msgstr "Використайте OLD TABLE або NEW TABLE для іменування перехідних таблиць." -#: commands/trigger.c:446 +#: commands/trigger.c:439 #, c-format msgid "Triggers on foreign tables cannot have transition tables." msgstr "Тригери зовнішніх таблиць не можуть використовувати перехідні таблиці." -#: commands/trigger.c:453 +#: commands/trigger.c:446 #, c-format msgid "Triggers on views cannot have transition tables." msgstr "Тригери подань не можуть використовувати перехідні таблиці." -#: commands/trigger.c:469 +#: commands/trigger.c:462 #, c-format msgid "ROW triggers with transition tables are not supported on partitions" msgstr "Тригери ROW з перехідними таблицями для секцій не підтримуються" -#: commands/trigger.c:473 +#: commands/trigger.c:466 #, c-format msgid "ROW triggers with transition tables are not supported on inheritance children" msgstr "Тригери ROW з перехідними таблицями для нащадків успадкування не підтримуються" -#: commands/trigger.c:479 +#: commands/trigger.c:472 #, c-format msgid "transition table name can only be specified for an AFTER trigger" msgstr "ім'я перехідної таблиці можна задати лише для тригеру AFTER" -#: commands/trigger.c:484 +#: commands/trigger.c:477 #, c-format msgid "TRUNCATE triggers with transition tables are not supported" msgstr "Тригери TRUNCATE з перехідними таблицями не підтримуються" -#: commands/trigger.c:501 +#: commands/trigger.c:494 #, c-format msgid "transition tables cannot be specified for triggers with more than one event" msgstr "перехідні таблиці не можна задати для тригерів, призначених для кількох подій" -#: commands/trigger.c:512 +#: commands/trigger.c:505 #, c-format msgid "transition tables cannot be specified for triggers with column lists" msgstr "перехідні таблиці не можна задати для тригерів зі списками стовпців" -#: commands/trigger.c:529 +#: commands/trigger.c:522 #, c-format msgid "NEW TABLE can only be specified for an INSERT or UPDATE trigger" msgstr "NEW TABLE можна задати лише для тригерів INSERT або UPDATE" -#: commands/trigger.c:534 +#: commands/trigger.c:527 #, c-format msgid "NEW TABLE cannot be specified multiple times" msgstr "NEW TABLE не можна задавати декілька разів" -#: commands/trigger.c:544 +#: commands/trigger.c:537 #, c-format msgid "OLD TABLE can only be specified for a DELETE or UPDATE trigger" msgstr "OLD TABLE можна задати лише для тригерів DELETE або UPDATE" -#: commands/trigger.c:549 +#: commands/trigger.c:542 #, c-format msgid "OLD TABLE cannot be specified multiple times" msgstr "OLD TABLE не можна задавати декілька разів" -#: commands/trigger.c:559 +#: commands/trigger.c:552 #, c-format msgid "OLD TABLE name and NEW TABLE name cannot be the same" msgstr "Ім'я OLD TABLE та ім'я NEW TABLE не можуть бути однаковими" -#: commands/trigger.c:623 commands/trigger.c:636 +#: commands/trigger.c:616 commands/trigger.c:629 #, c-format msgid "statement trigger's WHEN condition cannot reference column values" msgstr "в умові WHEN операторного тригера не можна посилатись на значення стовпця" -#: commands/trigger.c:628 +#: commands/trigger.c:621 #, c-format msgid "INSERT trigger's WHEN condition cannot reference OLD values" msgstr "В умові WHEN тригеру INSERT не можна посилатись на значення OLD" -#: commands/trigger.c:641 +#: commands/trigger.c:634 #, c-format msgid "DELETE trigger's WHEN condition cannot reference NEW values" msgstr "В умові WHEN тригера DELETE не можна посилатись на значення NEW" -#: commands/trigger.c:646 +#: commands/trigger.c:639 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW system columns" msgstr "В умові WHEN тригера BEFORE не можна посилатись на системні стовпці NEW" -#: commands/trigger.c:654 commands/trigger.c:662 +#: commands/trigger.c:647 commands/trigger.c:655 #, c-format msgid "BEFORE trigger's WHEN condition cannot reference NEW generated columns" msgstr "В умові WHEN тригера BEFORE не можна посилатись на згенеровані стовпці NEW" -#: commands/trigger.c:655 +#: commands/trigger.c:648 #, c-format msgid "A whole-row reference is used and the table contains generated columns." msgstr "Використовується посилання на весь рядок і таблиця містить згенеровані стовпці." -#: commands/trigger.c:770 commands/trigger.c:1614 +#: commands/trigger.c:763 commands/trigger.c:1607 #, c-format msgid "trigger \"%s\" for relation \"%s\" already exists" msgstr "тригер \"%s\" для відношення \"%s\" вже існує" -#: commands/trigger.c:783 +#: commands/trigger.c:776 #, c-format msgid "trigger \"%s\" for relation \"%s\" is an internal or a child trigger" msgstr "тригер \"%s\" для відношення \"%s\" є зовнішнім або дочірнім тригером" -#: commands/trigger.c:802 +#: commands/trigger.c:795 #, c-format msgid "trigger \"%s\" for relation \"%s\" is a constraint trigger" msgstr "тригер \"%s\" для відношення \"%s\" є зовнішнім тригером" -#: commands/trigger.c:1404 commands/trigger.c:1557 commands/trigger.c:1838 +#: commands/trigger.c:1397 commands/trigger.c:1550 commands/trigger.c:1831 #, c-format msgid "trigger \"%s\" for table \"%s\" does not exist" msgstr "тригер \"%s\" для таблиці \"%s\" не існує" -#: commands/trigger.c:1529 +#: commands/trigger.c:1522 #, c-format msgid "cannot rename trigger \"%s\" on table \"%s\"" msgstr "перейменувати тригер \"%s\" для таблиці \"%s\" не можна" -#: commands/trigger.c:1531 +#: commands/trigger.c:1524 #, c-format msgid "Rename the trigger on the partitioned table \"%s\" instead." msgstr "Замість цього перейменуйте тригер для секціонованої таблиці \"%s\"." -#: commands/trigger.c:1631 +#: commands/trigger.c:1624 #, c-format msgid "renamed trigger \"%s\" on relation \"%s\"" msgstr "перейменовано тригер \"%s\" для відношення \"%s\"" -#: commands/trigger.c:1777 +#: commands/trigger.c:1770 #, c-format msgid "permission denied: \"%s\" is a system trigger" msgstr "немає доступу: \"%s\" - системний тригер" -#: commands/trigger.c:2386 +#: commands/trigger.c:2379 #, c-format msgid "trigger function %u returned null value" msgstr "тригерна функція %u повернула значення null" -#: commands/trigger.c:2446 commands/trigger.c:2664 commands/trigger.c:2917 -#: commands/trigger.c:3270 +#: commands/trigger.c:2439 commands/trigger.c:2657 commands/trigger.c:2910 +#: commands/trigger.c:3263 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "Тригер BEFORE STATEMENT не може повертати значення" -#: commands/trigger.c:2522 +#: commands/trigger.c:2515 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "переміщення рядка до іншої секції під час тригеру BEFORE FOR EACH ROW не підтримується" -#: commands/trigger.c:2523 +#: commands/trigger.c:2516 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Перед виконанням тригера \"%s\", рядок повинен був бути в секції \"%s.%s\"." -#: commands/trigger.c:3347 executor/nodeModifyTable.c:2369 -#: executor/nodeModifyTable.c:2452 +#: commands/trigger.c:3340 executor/nodeModifyTable.c:2373 +#: executor/nodeModifyTable.c:2456 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "кортеж, який повинен бути оновленим, вже змінений в операції, яка викликана поточною командою" -#: commands/trigger.c:3348 executor/nodeModifyTable.c:1535 -#: executor/nodeModifyTable.c:1609 executor/nodeModifyTable.c:2370 -#: executor/nodeModifyTable.c:2453 executor/nodeModifyTable.c:3098 +#: commands/trigger.c:3341 executor/nodeModifyTable.c:1541 +#: executor/nodeModifyTable.c:1615 executor/nodeModifyTable.c:2374 +#: executor/nodeModifyTable.c:2457 executor/nodeModifyTable.c:3093 +#: executor/nodeModifyTable.c:3254 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Можливо, для поширення змін в інші рядки слід використати тригер AFTER замість тригера BEFORE." -#: commands/trigger.c:3389 executor/nodeLockRows.c:228 -#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1551 executor/nodeModifyTable.c:2387 -#: executor/nodeModifyTable.c:2595 +#: commands/trigger.c:3382 executor/nodeLockRows.c:228 +#: executor/nodeLockRows.c:237 executor/nodeModifyTable.c:314 +#: executor/nodeModifyTable.c:1557 executor/nodeModifyTable.c:2391 +#: executor/nodeModifyTable.c:2599 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не вдалося серіалізувати доступ через паралельне оновлення" -#: commands/trigger.c:3397 executor/nodeModifyTable.c:1641 -#: executor/nodeModifyTable.c:2470 executor/nodeModifyTable.c:2619 -#: executor/nodeModifyTable.c:2986 +#: commands/trigger.c:3390 executor/nodeModifyTable.c:1647 +#: executor/nodeModifyTable.c:2474 executor/nodeModifyTable.c:2623 +#: executor/nodeModifyTable.c:3111 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не вдалося серіалізувати доступ через паралельне видалення" -#: commands/trigger.c:4604 +#: commands/trigger.c:4601 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "не можна виконати відкладений тригер в межах операції з обмеженням по безпеці" -#: commands/trigger.c:5787 +#: commands/trigger.c:5782 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "обмеження \"%s\" не є відкладеним" -#: commands/trigger.c:5810 +#: commands/trigger.c:5805 #, c-format msgid "constraint \"%s\" does not exist" msgstr "обмеження \"%s\" не існує" @@ -11991,663 +12418,673 @@ msgstr "зіставлення для типу маркера \"%s\" не існ msgid "invalid parameter list format: \"%s\"" msgstr "неприпустимий формат списку параметрів: \"%s\"" -#: commands/typecmds.c:217 +#: commands/typecmds.c:221 #, c-format msgid "must be superuser to create a base type" msgstr "для створення базового типу потрібно бути суперкористувачем" -#: commands/typecmds.c:275 +#: commands/typecmds.c:279 #, c-format msgid "Create the type as a shell type, then create its I/O functions, then do a full CREATE TYPE." msgstr "Створіть тип в якості оболонки, потім створіть його функції вводу-виводу, а потім виконайте повну CREATE TYPE." -#: commands/typecmds.c:327 commands/typecmds.c:1450 commands/typecmds.c:4263 +#: commands/typecmds.c:331 commands/typecmds.c:1460 commands/typecmds.c:4480 #, c-format msgid "type attribute \"%s\" not recognized" msgstr "атрибут типу \"%s\" не розпізнаний" -#: commands/typecmds.c:382 +#: commands/typecmds.c:386 #, c-format msgid "invalid type category \"%s\": must be simple ASCII" msgstr "неприпустима категорія типу \"%s\": повинен бути простий ASCII" -#: commands/typecmds.c:401 +#: commands/typecmds.c:405 #, c-format msgid "array element type cannot be %s" msgstr "типом елементу масиву не може бути %s" -#: commands/typecmds.c:433 +#: commands/typecmds.c:437 #, c-format msgid "alignment \"%s\" not recognized" msgstr "тип вирівнювання \"%s\" не розпізнаний" -#: commands/typecmds.c:450 commands/typecmds.c:4137 +#: commands/typecmds.c:454 commands/typecmds.c:4354 #, c-format msgid "storage \"%s\" not recognized" msgstr "сховище \"%s\" не розпізнане" -#: commands/typecmds.c:461 +#: commands/typecmds.c:465 #, c-format msgid "type input function must be specified" msgstr "необхідно вказати функцію вводу типу" -#: commands/typecmds.c:465 +#: commands/typecmds.c:469 #, c-format msgid "type output function must be specified" msgstr "необхідно вказати функцію виводу типу" -#: commands/typecmds.c:470 +#: commands/typecmds.c:474 #, c-format msgid "type modifier output function is useless without a type modifier input function" msgstr "функція виводу модифікатора типу недоцільна без функції вводу модифікатора типу" -#: commands/typecmds.c:512 +#: commands/typecmds.c:516 #, c-format msgid "element type cannot be specified without a subscripting function" msgstr "тип елементу не можна вказати без припустимої функції підписки" -#: commands/typecmds.c:781 +#: commands/typecmds.c:785 #, c-format msgid "\"%s\" is not a valid base type for a domain" msgstr "\"%s\" - невідповідний базовий тип для домену" -#: commands/typecmds.c:879 +#: commands/typecmds.c:883 #, c-format msgid "multiple default expressions" msgstr "неодноразове визначення значення типу за замовчуванням" -#: commands/typecmds.c:942 commands/typecmds.c:951 +#: commands/typecmds.c:946 commands/typecmds.c:955 #, c-format msgid "conflicting NULL/NOT NULL constraints" msgstr "конфліктуючі обмеження NULL/NOT NULL" -#: commands/typecmds.c:967 +#: commands/typecmds.c:971 #, c-format msgid "check constraints for domains cannot be marked NO INHERIT" msgstr "перевірки обмеження для доменів не можуть позначатись як NO INHERIT" -#: commands/typecmds.c:976 commands/typecmds.c:2956 +#: commands/typecmds.c:980 commands/typecmds.c:2940 #, c-format msgid "unique constraints not possible for domains" msgstr "обмеження унікальності неможливе для доменів" -#: commands/typecmds.c:982 commands/typecmds.c:2962 +#: commands/typecmds.c:986 commands/typecmds.c:2946 #, c-format msgid "primary key constraints not possible for domains" msgstr "обмеження первинного ключа неможливі для доменів" -#: commands/typecmds.c:988 commands/typecmds.c:2968 +#: commands/typecmds.c:992 commands/typecmds.c:2952 #, c-format msgid "exclusion constraints not possible for domains" msgstr "обмеження винятків неможливі для доменів" -#: commands/typecmds.c:994 commands/typecmds.c:2974 +#: commands/typecmds.c:998 commands/typecmds.c:2958 #, c-format msgid "foreign key constraints not possible for domains" msgstr "обмеження зовнішніх ключів неможливі для доменів" -#: commands/typecmds.c:1003 commands/typecmds.c:2983 +#: commands/typecmds.c:1007 commands/typecmds.c:2967 #, c-format msgid "specifying constraint deferrability not supported for domains" msgstr "зазначення відкладення обмежень для доменів не підтримується" -#: commands/typecmds.c:1317 utils/cache/typcache.c:2567 +#: commands/typecmds.c:1327 utils/cache/typcache.c:2570 #, c-format msgid "%s is not an enum" msgstr "%s не є переліком" -#: commands/typecmds.c:1458 +#: commands/typecmds.c:1468 #, c-format msgid "type attribute \"subtype\" is required" msgstr "вимагається атрибут типу \"subtype\"" -#: commands/typecmds.c:1463 +#: commands/typecmds.c:1473 #, c-format msgid "range subtype cannot be %s" msgstr "%s не може бути підтипом діапазону" -#: commands/typecmds.c:1482 +#: commands/typecmds.c:1492 #, c-format msgid "range collation specified but subtype does not support collation" msgstr "вказано правило сортування для діапазону, але підтип не підтримує сортування" -#: commands/typecmds.c:1492 +#: commands/typecmds.c:1502 #, c-format msgid "cannot specify a canonical function without a pre-created shell type" msgstr "неможливо вказати канонічну функцію без попередньо створеного типу оболонки" -#: commands/typecmds.c:1493 +#: commands/typecmds.c:1503 #, c-format msgid "Create the type as a shell type, then create its canonicalization function, then do a full CREATE TYPE." msgstr "Створіть тип в якості оболонки, потім створіть його функцію канонізації, а потім виконайте повну CREATE TYPE." -#: commands/typecmds.c:1965 +#: commands/typecmds.c:1975 #, c-format msgid "type input function %s has multiple matches" msgstr "функція введення типу %s має декілька збігів" -#: commands/typecmds.c:1983 +#: commands/typecmds.c:1993 #, c-format msgid "type input function %s must return type %s" msgstr "функція вводу типу %s повинна повертати тип %s" -#: commands/typecmds.c:1999 +#: commands/typecmds.c:2009 #, c-format msgid "type input function %s should not be volatile" msgstr "функція введення типу %s не повинна бути змінною" -#: commands/typecmds.c:2027 +#: commands/typecmds.c:2037 #, c-format msgid "type output function %s must return type %s" msgstr "функція виводу типу %s повинна повертати тип %s" -#: commands/typecmds.c:2034 +#: commands/typecmds.c:2044 #, c-format msgid "type output function %s should not be volatile" msgstr "функція виводу типу %s не повинна бути змінною" -#: commands/typecmds.c:2063 +#: commands/typecmds.c:2073 #, c-format msgid "type receive function %s has multiple matches" msgstr "функція отримання типу %s має декілька збігів" -#: commands/typecmds.c:2081 +#: commands/typecmds.c:2091 #, c-format msgid "type receive function %s must return type %s" msgstr "функція отримання типу %s повинна повертати тип %s" -#: commands/typecmds.c:2088 +#: commands/typecmds.c:2098 #, c-format msgid "type receive function %s should not be volatile" msgstr "функція отримання типу %s не повинна бути змінною" -#: commands/typecmds.c:2116 +#: commands/typecmds.c:2126 #, c-format msgid "type send function %s must return type %s" msgstr "функція відправлення типу %s повинна повертати тип %s" -#: commands/typecmds.c:2123 +#: commands/typecmds.c:2133 #, c-format msgid "type send function %s should not be volatile" msgstr "функція відправлення типу %s не повинна бути змінною" -#: commands/typecmds.c:2150 +#: commands/typecmds.c:2160 #, c-format msgid "typmod_in function %s must return type %s" msgstr "функція typmod_in %s повинна повертати тип %s" -#: commands/typecmds.c:2157 +#: commands/typecmds.c:2167 #, c-format msgid "type modifier input function %s should not be volatile" msgstr "функція вводу модифікатора типу %s не повинна бути змінною" -#: commands/typecmds.c:2184 +#: commands/typecmds.c:2194 #, c-format msgid "typmod_out function %s must return type %s" msgstr "функція typmod_out %s повинна повертати тип %s" -#: commands/typecmds.c:2191 +#: commands/typecmds.c:2201 #, c-format msgid "type modifier output function %s should not be volatile" msgstr "функція виводу модифікатора типу %s не повинна бути змінною" -#: commands/typecmds.c:2218 +#: commands/typecmds.c:2228 #, c-format msgid "type analyze function %s must return type %s" msgstr "функція аналізу типу %s повинна повертати тип %s" -#: commands/typecmds.c:2247 +#: commands/typecmds.c:2257 #, c-format msgid "type subscripting function %s must return type %s" msgstr "функція підписки типу %s повинна повертати тип %s" -#: commands/typecmds.c:2257 +#: commands/typecmds.c:2267 #, c-format msgid "user-defined types cannot use subscripting function %s" msgstr "типи визначені користувачем не можуть використовувати функцію підписки %s" -#: commands/typecmds.c:2303 +#: commands/typecmds.c:2313 #, c-format msgid "You must specify an operator class for the range type or define a default operator class for the subtype." msgstr "Ви повинні вказати клас операторів для типу діапазону або визначити клас операторів за замовчуванням для цього підтипу." -#: commands/typecmds.c:2334 +#: commands/typecmds.c:2344 #, c-format msgid "range canonical function %s must return range type" msgstr "функція канонічного діапазону %s повинна вертати тип діапазону" -#: commands/typecmds.c:2340 +#: commands/typecmds.c:2350 #, c-format msgid "range canonical function %s must be immutable" msgstr "функція канонічного діапазону %s повинна бути незмінною" -#: commands/typecmds.c:2376 +#: commands/typecmds.c:2386 #, c-format msgid "range subtype diff function %s must return type %s" msgstr "функція розбіжностей для підтипу діапазону %s повинна повертати тип %s" -#: commands/typecmds.c:2383 +#: commands/typecmds.c:2393 #, c-format msgid "range subtype diff function %s must be immutable" msgstr "функція розбіжностей для підтипу діапазону %s повинна бути незмінною" -#: commands/typecmds.c:2410 +#: commands/typecmds.c:2420 #, c-format msgid "pg_type array OID value not set when in binary upgrade mode" msgstr "значення OID масиву pg_type не встановлено в режимі двійкового оновлення" -#: commands/typecmds.c:2443 +#: commands/typecmds.c:2453 #, c-format msgid "pg_type multirange OID value not set when in binary upgrade mode" msgstr "значення OID в pg_type не задано під час режиму двійкового оновлення" -#: commands/typecmds.c:2476 +#: commands/typecmds.c:2486 #, c-format msgid "pg_type multirange array OID value not set when in binary upgrade mode" msgstr "значення OID масиву в pg_type не задано під час режиму двійкового оновлення" -#: commands/typecmds.c:2772 -#, c-format -msgid "column \"%s\" of table \"%s\" contains null values" -msgstr "стовпець \"%s\" таблиці \"%s\" містить значення NULL" - -#: commands/typecmds.c:2885 commands/typecmds.c:3086 +#: commands/typecmds.c:2868 commands/typecmds.c:3093 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist" msgstr "обмеження \"%s\" для домену \"%s\" не існує" -#: commands/typecmds.c:2889 +#: commands/typecmds.c:2872 #, c-format msgid "constraint \"%s\" of domain \"%s\" does not exist, skipping" msgstr "обмеження \"%s\" для домену \"%s\" не існує, пропускається" -#: commands/typecmds.c:3093 +#: commands/typecmds.c:3100 #, c-format msgid "constraint \"%s\" of domain \"%s\" is not a check constraint" msgstr "обмеження \"%s\" для домену \"%s\" не є перевірочним обмеженням" -#: commands/typecmds.c:3194 +#: commands/typecmds.c:3180 +#, c-format +msgid "column \"%s\" of table \"%s\" contains null values" +msgstr "стовпець \"%s\" таблиці \"%s\" містить значення NULL" + +#: commands/typecmds.c:3269 #, c-format msgid "column \"%s\" of table \"%s\" contains values that violate the new constraint" msgstr "стовпець \"%s\" таблиці \"%s\" містить значення, які порушують нове обмеження" -#: commands/typecmds.c:3423 commands/typecmds.c:3622 commands/typecmds.c:3705 -#: commands/typecmds.c:3893 +#: commands/typecmds.c:3498 commands/typecmds.c:3772 commands/typecmds.c:3857 +#: commands/typecmds.c:4073 #, c-format msgid "%s is not a domain" msgstr "%s - не домен" -#: commands/typecmds.c:3455 +#: commands/typecmds.c:3532 commands/typecmds.c:3686 #, c-format msgid "constraint \"%s\" for domain \"%s\" already exists" msgstr "обмеження \"%s\" для домену \"%s\" вже існує" -#: commands/typecmds.c:3506 +#: commands/typecmds.c:3583 #, c-format msgid "cannot use table references in domain check constraint" msgstr "у перевірочному обмеженні для домену не можна посилатись на таблиці" -#: commands/typecmds.c:3634 commands/typecmds.c:3717 commands/typecmds.c:4010 +#: commands/typecmds.c:3784 commands/typecmds.c:3869 commands/typecmds.c:4223 #, c-format msgid "%s is a table's row type" msgstr "%s - тип рядків таблиці" -#: commands/typecmds.c:3644 commands/typecmds.c:3727 commands/typecmds.c:3925 +#: commands/typecmds.c:3794 commands/typecmds.c:3879 commands/typecmds.c:4121 #, c-format msgid "cannot alter array type %s" msgstr "змінити тип масиву \"%s\" не можна" -#: commands/typecmds.c:3646 commands/typecmds.c:3729 commands/typecmds.c:3927 +#: commands/typecmds.c:3796 commands/typecmds.c:3881 commands/typecmds.c:4123 #, c-format msgid "You can alter type %s, which will alter the array type as well." msgstr "Ви можете змінити тип %s, який спричинить зміну типу масиву." -#: commands/typecmds.c:3995 +#: commands/typecmds.c:3892 +#, c-format +msgid "cannot alter multirange type %s" +msgstr "не можна змінювати багатодіапазонний тип %s" + +#: commands/typecmds.c:3895 +#, c-format +msgid "You can alter type %s, which will alter the multirange type as well." +msgstr "Ви можете змінити тип %s, що також змінить тип мультидіапазону." + +#: commands/typecmds.c:4202 #, c-format msgid "type \"%s\" already exists in schema \"%s\"" msgstr "тип \"%s\" вже існує в схемі \"%s\"" -#: commands/typecmds.c:4165 +#: commands/typecmds.c:4382 #, c-format msgid "cannot change type's storage to PLAIN" msgstr "неможливо змінити сховище типу на PLAIN" -#: commands/typecmds.c:4258 +#: commands/typecmds.c:4475 #, c-format msgid "type attribute \"%s\" cannot be changed" msgstr "атрибут типу \"%s\" неможливо змінити" -#: commands/typecmds.c:4276 +#: commands/typecmds.c:4493 #, c-format msgid "must be superuser to alter a type" msgstr "для зміни типу потрібно бути суперкористувачем" -#: commands/typecmds.c:4297 commands/typecmds.c:4306 +#: commands/typecmds.c:4514 commands/typecmds.c:4523 #, c-format msgid "%s is not a base type" msgstr "%s - не є базовим типом" -#: commands/user.c:201 +#: commands/user.c:200 #, c-format msgid "SYSID can no longer be specified" msgstr "SYSID вже не потрібно вказувати" -#: commands/user.c:319 commands/user.c:325 commands/user.c:331 -#: commands/user.c:337 commands/user.c:343 +#: commands/user.c:318 commands/user.c:324 commands/user.c:330 +#: commands/user.c:336 commands/user.c:342 #, c-format msgid "permission denied to create role" msgstr "немає прав для створення ролі" -#: commands/user.c:320 +#: commands/user.c:319 #, c-format msgid "Only roles with the %s attribute may create roles." msgstr "Створювати ролі можуть лише ролі з атрибутом %s." -#: commands/user.c:326 commands/user.c:332 commands/user.c:338 -#: commands/user.c:344 +#: commands/user.c:325 commands/user.c:331 commands/user.c:337 +#: commands/user.c:343 #, c-format msgid "Only roles with the %s attribute may create roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть створювати ролі з атрибутом %s." -#: commands/user.c:355 commands/user.c:1387 commands/user.c:1394 -#: utils/adt/acl.c:5401 utils/adt/acl.c:5407 gram.y:16726 gram.y:16772 +#: commands/user.c:354 commands/user.c:1386 commands/user.c:1393 +#: utils/adt/acl.c:5574 utils/adt/acl.c:5580 gram.y:17310 gram.y:17356 #, c-format msgid "role name \"%s\" is reserved" msgstr "ім'я ролі \"%s\" зарезервовано" -#: commands/user.c:357 commands/user.c:1389 commands/user.c:1396 +#: commands/user.c:356 commands/user.c:1388 commands/user.c:1395 #, c-format msgid "Role names starting with \"pg_\" are reserved." msgstr "Імена ролей, які починаються на \"pg_\", зарезервовані." -#: commands/user.c:378 commands/user.c:1411 +#: commands/user.c:377 commands/user.c:1410 #, c-format msgid "role \"%s\" already exists" msgstr "роль \"%s\" вже існує" -#: commands/user.c:440 commands/user.c:925 +#: commands/user.c:439 commands/user.c:924 #, c-format msgid "empty string is not a valid password, clearing password" msgstr "пустий рядок є неприпустимим паролем, пароль скидається" -#: commands/user.c:469 +#: commands/user.c:468 #, c-format msgid "pg_authid OID value not set when in binary upgrade mode" msgstr "значення OID в pg_authid не встановлено в режимі двійкового оновлення" -#: commands/user.c:653 commands/user.c:1011 +#: commands/user.c:652 commands/user.c:1010 msgid "Cannot alter reserved roles." msgstr "Не можна змінити зарезервовані ролі." -#: commands/user.c:760 commands/user.c:766 commands/user.c:782 -#: commands/user.c:790 commands/user.c:804 commands/user.c:810 -#: commands/user.c:816 commands/user.c:825 commands/user.c:870 -#: commands/user.c:1033 commands/user.c:1044 +#: commands/user.c:759 commands/user.c:765 commands/user.c:781 +#: commands/user.c:789 commands/user.c:803 commands/user.c:809 +#: commands/user.c:815 commands/user.c:824 commands/user.c:869 +#: commands/user.c:1032 commands/user.c:1043 #, c-format msgid "permission denied to alter role" msgstr "немає прав на зміну ролі" -#: commands/user.c:761 commands/user.c:1034 +#: commands/user.c:760 commands/user.c:1033 #, c-format msgid "Only roles with the %s attribute may alter roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть змінювати ролі з атрибутом %s." -#: commands/user.c:767 commands/user.c:805 commands/user.c:811 -#: commands/user.c:817 +#: commands/user.c:766 commands/user.c:804 commands/user.c:810 +#: commands/user.c:816 #, c-format msgid "Only roles with the %s attribute may change the %s attribute." msgstr "Змінити атрибут %s може тільки роль з атрибутом %s." -#: commands/user.c:783 commands/user.c:1045 +#: commands/user.c:782 commands/user.c:1044 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may alter this role." msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть змінити цю роль." -#: commands/user.c:791 +#: commands/user.c:790 #, c-format msgid "To change another role's password, the current user must have the %s attribute and the %s option on the role." msgstr "Щоб змінити пароль іншої ролі, поточний користувач повинен мати атрибут %s та параметр %s в ролі." -#: commands/user.c:826 +#: commands/user.c:825 #, c-format msgid "Only roles with the %s option on role \"%s\" may add members." msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть додавати учасників." -#: commands/user.c:871 +#: commands/user.c:870 #, c-format -msgid "The bootstrap user must have the %s attribute." -msgstr "Початковий користувач повинен мати атрибут %s." +msgid "The bootstrap superuser must have the %s attribute." +msgstr "Суперкористувач завантажувача повинен мати атрибут %s." -#: commands/user.c:1076 +#: commands/user.c:1075 #, c-format msgid "permission denied to alter setting" msgstr "немає прав на зміну налаштувань" -#: commands/user.c:1077 +#: commands/user.c:1076 #, c-format msgid "Only roles with the %s attribute may alter settings globally." msgstr "Тільки ролі з атрибутом %s можуть змінювати налаштування глобально." -#: commands/user.c:1101 commands/user.c:1172 commands/user.c:1178 +#: commands/user.c:1100 commands/user.c:1171 commands/user.c:1177 #, c-format msgid "permission denied to drop role" msgstr "немає прав для видалення ролі" -#: commands/user.c:1102 +#: commands/user.c:1101 #, c-format msgid "Only roles with the %s attribute and the %s option on the target roles may drop roles." msgstr "Тільки ролі з атрибутом %s та опцією %s на цільових ролях можуть видаляти ролі." -#: commands/user.c:1126 +#: commands/user.c:1125 #, c-format msgid "cannot use special role specifier in DROP ROLE" msgstr "використати спеціальну роль у DROP ROLE не можна" -#: commands/user.c:1136 commands/user.c:1358 commands/variable.c:836 -#: commands/variable.c:839 commands/variable.c:923 commands/variable.c:926 -#: utils/adt/acl.c:356 utils/adt/acl.c:376 utils/adt/acl.c:5256 -#: utils/adt/acl.c:5304 utils/adt/acl.c:5332 utils/adt/acl.c:5351 -#: utils/adt/regproc.c:1551 utils/init/miscinit.c:756 +#: commands/user.c:1135 commands/user.c:1357 commands/variable.c:838 +#: commands/variable.c:841 commands/variable.c:947 commands/variable.c:950 +#: utils/adt/acl.c:365 utils/adt/acl.c:385 utils/adt/acl.c:5429 +#: utils/adt/acl.c:5477 utils/adt/acl.c:5505 utils/adt/acl.c:5524 +#: utils/adt/regproc.c:1571 utils/init/miscinit.c:762 #, c-format msgid "role \"%s\" does not exist" msgstr "роль \"%s\" не існує" -#: commands/user.c:1141 +#: commands/user.c:1140 #, c-format msgid "role \"%s\" does not exist, skipping" msgstr "роль \"%s\" не існує, пропускається" -#: commands/user.c:1154 commands/user.c:1158 +#: commands/user.c:1153 commands/user.c:1157 #, c-format msgid "current user cannot be dropped" msgstr "користувач не можна видалити сам себе" -#: commands/user.c:1162 +#: commands/user.c:1161 #, c-format msgid "session user cannot be dropped" msgstr "користувача поточного сеансу не можна видалити" -#: commands/user.c:1173 +#: commands/user.c:1172 #, c-format msgid "Only roles with the %s attribute may drop roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть видаляти ролі з атрибутом %s." -#: commands/user.c:1179 +#: commands/user.c:1178 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may drop this role." msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть видалити цю роль." -#: commands/user.c:1300 +#: commands/user.c:1299 #, c-format msgid "role \"%s\" cannot be dropped because some objects depend on it" msgstr "роль \"%s\" не можна видалити, тому що деякі об'єкти залежать від неї" -#: commands/user.c:1374 +#: commands/user.c:1373 #, c-format msgid "session user cannot be renamed" msgstr "користувача поточного сеансу не можна перейменувати" -#: commands/user.c:1378 +#: commands/user.c:1377 #, c-format msgid "current user cannot be renamed" msgstr "користувач не може перейменувати сам себе" -#: commands/user.c:1422 commands/user.c:1432 +#: commands/user.c:1421 commands/user.c:1431 #, c-format msgid "permission denied to rename role" msgstr "немає прав на перейменування ролі" -#: commands/user.c:1423 +#: commands/user.c:1422 #, c-format msgid "Only roles with the %s attribute may rename roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть перейменовувати ролі з атрибутом %s." -#: commands/user.c:1433 +#: commands/user.c:1432 #, c-format msgid "Only roles with the %s attribute and the %s option on role \"%s\" may rename this role." msgstr "Тільки ролі з атрибутом %s та опцією %s на роль \"%s\" можуть перейменувати цю роль." -#: commands/user.c:1455 +#: commands/user.c:1454 #, c-format msgid "MD5 password cleared because of role rename" msgstr "У результаті перейменування ролі сума MD5 паролю очищена" -#: commands/user.c:1519 gram.y:1260 +#: commands/user.c:1518 gram.y:1294 #, c-format msgid "unrecognized role option \"%s\"" msgstr "нерозпізнаний параметр ролі \"%s\"" -#: commands/user.c:1524 +#: commands/user.c:1523 #, c-format msgid "unrecognized value for role option \"%s\": \"%s\"" msgstr "нерозпізнане значення параметру ролі \"%s\": \"%s\"" -#: commands/user.c:1557 +#: commands/user.c:1556 #, c-format msgid "column names cannot be included in GRANT/REVOKE ROLE" msgstr "в GRANT/REVOKE ROLE не можна включати назви стовпців" -#: commands/user.c:1597 +#: commands/user.c:1596 #, c-format msgid "permission denied to drop objects" msgstr "немає прав на видалення об'єктів" -#: commands/user.c:1598 +#: commands/user.c:1597 #, c-format msgid "Only roles with privileges of role \"%s\" may drop objects owned by it." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть видаляти об'єкти, що належать йому." -#: commands/user.c:1626 commands/user.c:1637 +#: commands/user.c:1625 commands/user.c:1636 #, c-format msgid "permission denied to reassign objects" msgstr "немає прав на повторне призначення об'єктів" -#: commands/user.c:1627 +#: commands/user.c:1626 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects owned by it." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть переназначати об'єкти, що належать йому." -#: commands/user.c:1638 +#: commands/user.c:1637 #, c-format msgid "Only roles with privileges of role \"%s\" may reassign objects to it." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть перепризначати об'єкти." -#: commands/user.c:1734 +#: commands/user.c:1733 #, c-format msgid "role \"%s\" cannot be a member of any role" msgstr "роль \"%s\" не може бути членом якої-небудь ролі" -#: commands/user.c:1747 +#: commands/user.c:1746 #, c-format msgid "role \"%s\" is a member of role \"%s\"" msgstr "роль \"%s\" - учасник ролі \"%s\"" -#: commands/user.c:1787 commands/user.c:1813 +#: commands/user.c:1786 commands/user.c:1812 #, c-format msgid "%s option cannot be granted back to your own grantor" msgstr "параметр %s не можна призначити тому, хто призначив їх вам" -#: commands/user.c:1890 +#: commands/user.c:1889 #, c-format msgid "role \"%s\" has already been granted membership in role \"%s\" by role \"%s\"" msgstr "роль \"%s\" вже отримала членство в ролі \"%s\" від ролі \"%s\"" -#: commands/user.c:2025 +#: commands/user.c:2024 #, c-format msgid "role \"%s\" has not been granted membership in role \"%s\" by role \"%s\"" msgstr "роль \"%s\" не отримала членство в ролі \"%s\" від ролі \"%s\"" -#: commands/user.c:2125 +#: commands/user.c:2124 #, c-format msgid "role \"%s\" cannot have explicit members" msgstr "роль \"%s\" не може мати явних членів" -#: commands/user.c:2136 commands/user.c:2159 +#: commands/user.c:2135 commands/user.c:2158 #, c-format msgid "permission denied to grant role \"%s\"" msgstr "немає дозволу для надання ролі \"%s\"" -#: commands/user.c:2138 +#: commands/user.c:2137 #, c-format msgid "Only roles with the %s attribute may grant roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть надавати членство ролі з атрибутом %s." -#: commands/user.c:2143 commands/user.c:2166 +#: commands/user.c:2142 commands/user.c:2165 #, c-format msgid "permission denied to revoke role \"%s\"" msgstr "немає дозволу для відкликання ролі \"%s\"" -#: commands/user.c:2145 +#: commands/user.c:2144 #, c-format msgid "Only roles with the %s attribute may revoke roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть відкликати членство ролі з атрибутом %s." -#: commands/user.c:2161 +#: commands/user.c:2160 #, c-format msgid "Only roles with the %s option on role \"%s\" may grant this role." msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть надавати членство до цієї ролі." -#: commands/user.c:2168 +#: commands/user.c:2167 #, c-format msgid "Only roles with the %s option on role \"%s\" may revoke this role." msgstr "Тільки ролі з опцією %s на роль \"%s\" можуть відкликати членство в цій ролі." -#: commands/user.c:2248 commands/user.c:2257 +#: commands/user.c:2247 commands/user.c:2256 #, c-format msgid "permission denied to grant privileges as role \"%s\"" msgstr "немає дозволу для надання привілеїв ролі \"%s\"" -#: commands/user.c:2250 +#: commands/user.c:2249 #, c-format msgid "Only roles with privileges of role \"%s\" may grant privileges as this role." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть надавати привілеї цієї ролі." -#: commands/user.c:2259 +#: commands/user.c:2258 #, c-format msgid "The grantor must have the %s option on role \"%s\"." msgstr "Власник прав повинен мати опцію %s для ролі \"%s\"." -#: commands/user.c:2267 +#: commands/user.c:2266 #, c-format msgid "permission denied to revoke privileges granted by role \"%s\"" msgstr "відмовлено у дозволі на відкликання привілеїв, наданих роллю \"%s\"" -#: commands/user.c:2269 +#: commands/user.c:2268 #, c-format msgid "Only roles with privileges of role \"%s\" may revoke privileges granted by this role." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть відкликати привілеї, надані цією роллю." -#: commands/user.c:2492 utils/adt/acl.c:1309 +#: commands/user.c:2491 utils/adt/acl.c:1324 #, c-format msgid "dependent privileges exist" msgstr "залежні права існують" -#: commands/user.c:2493 utils/adt/acl.c:1310 +#: commands/user.c:2492 utils/adt/acl.c:1325 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Використайте CASCADE, щоб відкликати їх." -#: commands/vacuum.c:137 +#: commands/vacuum.c:134 #, c-format msgid "\"vacuum_buffer_usage_limit\" must be 0 or between %d kB and %d kB" msgstr "\"vacuum_buffer_usage_limit\" має бути 0 або між %d та %d kB" @@ -12717,92 +13154,88 @@ msgstr "ONLY_DATABASE_STATS не можна вказувати з іншими msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s не можна виконати під час VACUUM або ANALYZE" -#: commands/vacuum.c:733 +#: commands/vacuum.c:730 #, c-format msgid "permission denied to vacuum \"%s\", skipping it" msgstr "немає дозволу для очистки\"%s\", пропускаємо його" -#: commands/vacuum.c:746 +#: commands/vacuum.c:743 #, c-format msgid "permission denied to analyze \"%s\", skipping it" msgstr "відмовлено в дозволі на аналіз \"%s\", пропуск" -#: commands/vacuum.c:824 commands/vacuum.c:921 +#: commands/vacuum.c:821 commands/vacuum.c:918 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "очистка \"%s\" пропускається --- блокування недоступне" -#: commands/vacuum.c:829 +#: commands/vacuum.c:826 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "очистка \"%s\" пропускається --- це відношення більше не існує" -#: commands/vacuum.c:845 commands/vacuum.c:926 +#: commands/vacuum.c:842 commands/vacuum.c:923 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "пропуск аналізу об'єкта \"%s\" --- блокування недоступне" -#: commands/vacuum.c:850 +#: commands/vacuum.c:847 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "пропуск аналізу об'єкта\"%s\" --- відношення більше не існує" -#: commands/vacuum.c:1161 +#: commands/vacuum.c:1139 #, c-format msgid "cutoff for removing and freezing tuples is far in the past" msgstr "відсікання для видалення та заморожування кортежів залишилося далеко в минулому" -#: commands/vacuum.c:1162 commands/vacuum.c:1167 +#: commands/vacuum.c:1140 commands/vacuum.c:1145 #, c-format -msgid "" -"Close open transactions soon to avoid wraparound problems.\n" +msgid "Close open transactions soon to avoid wraparound problems.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." -msgstr "" -"Завершіть відкриті транзакції якнайшвидше, щоб уникнути проблеми зациклення.\n" +msgstr "Завершіть відкриті транзакції якнайшвидше, щоб уникнути проблеми зациклення.\n" "Можливо, вам також доведеться затвердити або відкотити старі підготовленні транзакції, або видалити застарілі слоти реплікації." -#: commands/vacuum.c:1166 +#: commands/vacuum.c:1144 #, c-format msgid "cutoff for freezing multixacts is far in the past" msgstr "відсікання для заморожування мультитранзакцій залишилося далеко в минулому" -#: commands/vacuum.c:1908 +#: commands/vacuum.c:1890 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "деякі бази даних не очищалися протягом більш ніж 2 мільярдів транзакцій" -#: commands/vacuum.c:1909 +#: commands/vacuum.c:1891 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Можливо, ви вже втратили дані в результаті зациклення транзакцій." -#: commands/vacuum.c:2078 +#: commands/vacuum.c:2070 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "пропускається \"%s\" --- очищати не таблиці або спеціальні системні таблиці не можна" -#: commands/vacuum.c:2503 +#: commands/vacuum.c:2502 #, c-format -msgid "scanned index \"%s\" to remove %d row versions" -msgstr "просканований індекс \"%s\", видалено версій рядків %d" +msgid "scanned index \"%s\" to remove %lld row versions" +msgstr "" -#: commands/vacuum.c:2522 +#: commands/vacuum.c:2521 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "індекс \"%s\" наразі містить %.0f версій рядків у %u сторінках" -#: commands/vacuum.c:2526 +#: commands/vacuum.c:2525 #, c-format -msgid "" -"%.0f index row versions were removed.\n" +msgid "%.0f index row versions were removed.\n" "%u index pages were newly deleted.\n" "%u index pages are currently deleted, of which %u are currently reusable." -msgstr "" -"%.0f версій індексних рядків було видалено.\n" +msgstr "%.0f версій індексних рядків було видалено.\n" "%u індексних сторінок щойно видалено.\n" "%u індексних сторінок наразі видалено, з яких %u наразі можна використовувати повторно." -#: commands/vacuumparallel.c:677 +#: commands/vacuumparallel.c:708 #, 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)" @@ -12811,7 +13244,7 @@ msgstr[1] "запущено %d паралельних виконавців оч msgstr[2] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" msgstr[3] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" -#: commands/vacuumparallel.c:683 +#: commands/vacuumparallel.c:714 #, 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)" @@ -12875,7 +13308,7 @@ msgstr "Команда SET TRANSACTION ISOLATION LEVEL повинна викли msgid "SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction" msgstr "Команда SET TRANSACTION ISOLATION LEVEL не повинна викликатияь в підтранзакції" -#: commands/variable.c:606 storage/lmgr/predicate.c:1629 +#: commands/variable.c:606 storage/lmgr/predicate.c:1680 #, c-format msgid "cannot use serializable mode in a hot standby" msgstr "використовувати серіалізований режим в hot standby не можна" @@ -12907,90 +13340,100 @@ msgstr "Змінити клієнтське кодування зараз нем #: commands/variable.c:781 #, c-format -msgid "cannot change client_encoding during a parallel operation" -msgstr "змінити клієнтське кодування під час паралельної операції неможливо" +msgid "cannot change \"client_encoding\" during a parallel operation" +msgstr "" + +#: commands/variable.c:863 +#, c-format +msgid "permission will be denied to set session authorization \"%s\"" +msgstr "буде відмовлено у встановленні авторизації сеансу \"%s\"" + +#: commands/variable.c:868 +#, c-format +msgid "permission denied to set session authorization \"%s\"" +msgstr "відмовлено у встановленні авторизації сеансу \"%s\"" -#: commands/variable.c:948 +#: commands/variable.c:972 #, c-format msgid "permission will be denied to set role \"%s\"" msgstr "немає прав для встановлення ролі \"%s\"" -#: commands/variable.c:953 +#: commands/variable.c:977 #, c-format msgid "permission denied to set role \"%s\"" msgstr "немає прав для встановлення ролі \"%s\"" -#: commands/variable.c:1153 +#: commands/variable.c:1177 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не підтримується даною збіркою" -#: commands/variable.c:1181 +#: commands/variable.c:1205 #, c-format -msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "значення effective_io_concurrency повинне дорівнювати 0 (нулю) на платформах, де відсутній posix_fadvise()." +msgid "\"effective_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." +msgstr "" -#: commands/variable.c:1194 +#: commands/variable.c:1218 #, c-format -msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." -msgstr "maintenance_io_concurrency повинне бути встановлене на 0, на платформах які не мають posix_fadvise()." +msgid "\"maintenance_io_concurrency\" must be set to 0 on platforms that lack posix_fadvise()." +msgstr "" -#: commands/variable.c:1207 +#: commands/variable.c:1231 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не підтримується даною збіркою" -#: commands/view.c:84 +#: commands/view.c:79 #, c-format msgid "could not determine which collation to use for view column \"%s\"" msgstr "не вдалося визначити, яке правило сортування використати для стовпця подання \"%s\"" -#: commands/view.c:279 commands/view.c:290 +#: commands/view.c:274 commands/view.c:285 #, c-format msgid "cannot drop columns from view" msgstr "видалити стовпці з подання неможливо" -#: commands/view.c:295 +#: commands/view.c:290 #, c-format msgid "cannot change name of view column \"%s\" to \"%s\"" msgstr "змінити ім'я стовпця \"%s\" на \"%s\" в поданні неможливо" -#: commands/view.c:298 +#: commands/view.c:293 #, c-format msgid "Use ALTER VIEW ... RENAME COLUMN ... to change name of view column instead." msgstr "Щоб змінити назву стовпця подання, замість цього використайте ALTER VIEW ... RENAME COLUMN." -#: commands/view.c:309 +#: commands/view.c:304 #, c-format msgid "cannot change data type of view column \"%s\" from %s to %s" msgstr "змінити тип стовпця подання \"%s\" з %s на %s неможливо" -#: commands/view.c:323 +#: commands/view.c:318 #, c-format msgid "cannot change collation of view column \"%s\" from \"%s\" to \"%s\"" msgstr "змінити параметри сортування стовпця подання \"%s\" з \"%s\" на \"%s\" не можна" -#: commands/view.c:392 +#: commands/view.c:387 #, c-format msgid "views must not contain SELECT INTO" msgstr "подання не повинні містити SELECT INTO" -#: commands/view.c:404 +#: commands/view.c:399 #, c-format msgid "views must not contain data-modifying statements in WITH" msgstr "подання не повинні містити інструкції, які змінюють дані в WITH" -#: commands/view.c:474 +#: commands/view.c:469 #, c-format msgid "CREATE VIEW specifies more column names than columns" msgstr "У CREATE VIEW вказано більше імен стовпців, ніж самих стовпців" -#: commands/view.c:482 +#: commands/view.c:477 #, c-format msgid "views cannot be unlogged because they do not have storage" msgstr "подання не можуть бути нежурнальованими, так як вони не мають сховища" -#: commands/view.c:496 +#: commands/view.c:491 #, c-format msgid "view \"%s\" will be a temporary view" msgstr "подання \"%s\" буде тичасовим поданням" @@ -13026,58 +13469,58 @@ msgstr "курсор \"%s\" не розташовується у рядку" msgid "cursor \"%s\" is not a simply updatable scan of table \"%s\"" msgstr "курсор \"%s\" - не просте оновлюване сканування таблиці \"%s\"" -#: executor/execCurrent.c:280 executor/execExprInterp.c:2498 +#: executor/execCurrent.c:280 executor/execExprInterp.c:2543 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "тип параметру %d (%s) не відповідає тому, з котрим тривала підготовка плану (%s)" -#: executor/execCurrent.c:292 executor/execExprInterp.c:2510 +#: executor/execCurrent.c:292 executor/execExprInterp.c:2555 #, c-format msgid "no value found for parameter %d" msgstr "не знайдено значення для параметру %d" -#: executor/execExpr.c:637 executor/execExpr.c:644 executor/execExpr.c:650 -#: executor/execExprInterp.c:4234 executor/execExprInterp.c:4251 -#: executor/execExprInterp.c:4350 executor/nodeModifyTable.c:197 -#: executor/nodeModifyTable.c:208 executor/nodeModifyTable.c:225 -#: executor/nodeModifyTable.c:233 +#: executor/execExpr.c:642 executor/execExpr.c:649 executor/execExpr.c:655 +#: executor/execExprInterp.c:4840 executor/execExprInterp.c:4857 +#: executor/execExprInterp.c:4956 executor/nodeModifyTable.c:203 +#: executor/nodeModifyTable.c:214 executor/nodeModifyTable.c:231 +#: executor/nodeModifyTable.c:239 #, c-format msgid "table row type and query-specified row type do not match" msgstr "тип рядка таблиці відрізняється від типу рядка-результату запиту" -#: executor/execExpr.c:638 executor/nodeModifyTable.c:198 +#: executor/execExpr.c:643 executor/nodeModifyTable.c:204 #, c-format msgid "Query has too many columns." msgstr "Запит повертає дуже багато стовпців." -#: executor/execExpr.c:645 executor/nodeModifyTable.c:226 +#: executor/execExpr.c:650 executor/nodeModifyTable.c:232 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "Запит надає значення для видаленого стовпця з порядковим номером %d." -#: executor/execExpr.c:651 executor/execExprInterp.c:4252 -#: executor/nodeModifyTable.c:209 +#: executor/execExpr.c:656 executor/execExprInterp.c:4858 +#: executor/nodeModifyTable.c:215 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Таблиця має тип %s у порядковому розташуванні %d, але запит очікує %s." -#: executor/execExpr.c:1099 parser/parse_agg.c:838 +#: executor/execExpr.c:1104 parser/parse_agg.c:838 #, c-format msgid "window function calls cannot be nested" msgstr "виклики віконних функцій не можуть бути вкладеними" -#: executor/execExpr.c:1618 +#: executor/execExpr.c:1641 #, c-format msgid "target type is not an array" msgstr "цільовий тип не є масивом" -#: executor/execExpr.c:1958 +#: executor/execExpr.c:1981 #, c-format msgid "ROW() column has type %s instead of type %s" msgstr "Стовпець ROW() має тип %s замість %s" -#: executor/execExpr.c:2574 executor/execSRF.c:719 parser/parse_func.c:138 -#: parser/parse_func.c:655 parser/parse_func.c:1032 +#: executor/execExpr.c:2643 executor/execSRF.c:718 parser/parse_func.c:138 +#: parser/parse_func.c:655 parser/parse_func.c:1033 #, c-format msgid "cannot pass more than %d argument to a function" msgid_plural "cannot pass more than %d arguments to a function" @@ -13086,104 +13529,121 @@ msgstr[1] "функції не можна передати більше ніж % msgstr[2] "функції не можна передати більше ніж %d аргументів" msgstr[3] "функції не можна передати більше ніж %d аргументів" -#: executor/execExpr.c:2601 executor/execSRF.c:739 executor/functions.c:1066 -#: utils/adt/jsonfuncs.c:3780 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 +#: executor/execExpr.c:2670 executor/execSRF.c:738 executor/functions.c:1068 +#: utils/adt/jsonfuncs.c:4054 utils/fmgr/funcapi.c:89 utils/fmgr/funcapi.c:143 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "функція \"set-valued\" викликана в контексті, де йому немає місця" -#: executor/execExpr.c:3007 parser/parse_node.c:277 parser/parse_node.c:327 +#: executor/execExpr.c:3076 parser/parse_node.c:272 parser/parse_node.c:322 #, c-format msgid "cannot subscript type %s because it does not support subscripting" msgstr "не можна підписати вказати тип %s, тому що він не підтримує підписку" -#: executor/execExpr.c:3135 executor/execExpr.c:3157 +#: executor/execExpr.c:3204 executor/execExpr.c:3226 #, c-format msgid "type %s does not support subscripted assignment" msgstr "тип %s не підтримує вказані присвоєння за підпискою" -#: executor/execExprInterp.c:1962 +#: executor/execExprInterp.c:2007 #, c-format msgid "attribute %d of type %s has been dropped" msgstr "атрибут %d типу %s був видалений" -#: executor/execExprInterp.c:1968 +#: executor/execExprInterp.c:2013 #, c-format msgid "attribute %d of type %s has wrong type" msgstr "атрибут %d типу %s має неправильний тип" -#: executor/execExprInterp.c:1970 executor/execExprInterp.c:3104 -#: executor/execExprInterp.c:3150 +#: executor/execExprInterp.c:2015 executor/execExprInterp.c:3214 +#: executor/execExprInterp.c:3260 #, c-format msgid "Table has type %s, but query expects %s." msgstr "Таблиця має тип %s, але запит очікував %s." -#: executor/execExprInterp.c:2050 utils/adt/expandedrecord.c:99 -#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1749 -#: utils/cache/typcache.c:1908 utils/cache/typcache.c:2055 -#: utils/fmgr/funcapi.c:561 +#: executor/execExprInterp.c:2095 utils/adt/expandedrecord.c:99 +#: utils/adt/expandedrecord.c:231 utils/cache/typcache.c:1752 +#: utils/cache/typcache.c:1911 utils/cache/typcache.c:2058 +#: utils/fmgr/funcapi.c:569 #, c-format msgid "type %s is not composite" msgstr "тип %s не є складеним" -#: executor/execExprInterp.c:2588 +#: executor/execExprInterp.c:2698 #, c-format msgid "WHERE CURRENT OF is not supported for this table type" msgstr "WHERE CURRENT OF для таблиць такого типу не підтримується" -#: executor/execExprInterp.c:2801 +#: executor/execExprInterp.c:2911 #, c-format msgid "cannot merge incompatible arrays" msgstr "не можна об'єднати несумісні масиви" -#: executor/execExprInterp.c:2802 +#: executor/execExprInterp.c:2912 #, c-format msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "Масив з типом елементів %s не може бути включений в конструкцію ARRAY з типом елементів %s." -#: executor/execExprInterp.c:2823 utils/adt/arrayfuncs.c:266 -#: utils/adt/arrayfuncs.c:576 utils/adt/arrayfuncs.c:1330 -#: utils/adt/arrayfuncs.c:3532 utils/adt/arrayfuncs.c:5616 -#: utils/adt/arrayfuncs.c:6133 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2933 utils/adt/arrayfuncs.c:1305 +#: utils/adt/arrayfuncs.c:3503 utils/adt/arrayfuncs.c:5593 +#: utils/adt/arrayfuncs.c:6110 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "число вимірів масива (%d) перевищує ліміт (%d)" -#: executor/execExprInterp.c:2843 executor/execExprInterp.c:2878 +#: executor/execExprInterp.c:2953 executor/execExprInterp.c:2988 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "для багатовимірних масивів повинні задаватись вирази з відповідними вимірами" -#: executor/execExprInterp.c:2855 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:960 utils/adt/arrayfuncs.c:1569 -#: utils/adt/arrayfuncs.c:2377 utils/adt/arrayfuncs.c:2392 -#: utils/adt/arrayfuncs.c:2654 utils/adt/arrayfuncs.c:2670 -#: utils/adt/arrayfuncs.c:2978 utils/adt/arrayfuncs.c:2993 -#: utils/adt/arrayfuncs.c:3334 utils/adt/arrayfuncs.c:3562 -#: utils/adt/arrayfuncs.c:6225 utils/adt/arrayfuncs.c:6566 -#: utils/adt/arrayutils.c:98 utils/adt/arrayutils.c:107 -#: utils/adt/arrayutils.c:114 +#: executor/execExprInterp.c:2965 utils/adt/array_expanded.c:274 +#: utils/adt/arrayfuncs.c:335 utils/adt/arrayfuncs.c:494 +#: utils/adt/arrayfuncs.c:727 utils/adt/arrayfuncs.c:1533 +#: utils/adt/arrayfuncs.c:2341 utils/adt/arrayfuncs.c:2356 +#: utils/adt/arrayfuncs.c:2618 utils/adt/arrayfuncs.c:2634 +#: utils/adt/arrayfuncs.c:2895 utils/adt/arrayfuncs.c:2949 +#: utils/adt/arrayfuncs.c:2964 utils/adt/arrayfuncs.c:3305 +#: utils/adt/arrayfuncs.c:3533 utils/adt/arrayfuncs.c:5365 +#: utils/adt/arrayfuncs.c:6202 utils/adt/arrayfuncs.c:6546 +#: utils/adt/arrayutils.c:83 utils/adt/arrayutils.c:92 +#: utils/adt/arrayutils.c:99 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "розмір масиву перевищує максимальний допустимий розмір (%d)" -#: executor/execExprInterp.c:3103 executor/execExprInterp.c:3149 +#: executor/execExprInterp.c:3213 executor/execExprInterp.c:3259 #, c-format msgid "attribute %d has wrong type" msgstr "атрибут %d має неправильний тип" -#: executor/execExprInterp.c:3735 utils/adt/domains.c:155 +#: executor/execExprInterp.c:3845 utils/adt/domains.c:158 #, c-format msgid "domain %s does not allow null values" msgstr "домен %s не допускає значення null" -#: executor/execExprInterp.c:3750 utils/adt/domains.c:193 +#: executor/execExprInterp.c:3860 utils/adt/domains.c:196 #, c-format msgid "value for domain %s violates check constraint \"%s\"" msgstr "значення домену %s порушує перевірочнео бмеження \"%s\"" -#: executor/execExprInterp.c:4235 +#: executor/execExprInterp.c:4435 +#, c-format +msgid "no SQL/JSON item found for specified path of column \"%s\"" +msgstr "" + +#: executor/execExprInterp.c:4440 +#, c-format +msgid "no SQL/JSON item found for specified path" +msgstr "" + +#. translator: first %s is a SQL/JSON clause (e.g. ON ERROR) +#: executor/execExprInterp.c:4640 executor/execExprInterp.c:4648 +#, c-format +msgid "could not coerce %s expression (%s) to the RETURNING type" +msgstr "" + +#: executor/execExprInterp.c:4841 #, c-format msgid "Table row contains %d attribute, but query expects %d." msgid_plural "Table row contains %d attributes, but query expects %d." @@ -13192,329 +13652,293 @@ msgstr[1] "Рядок таблиці містить %d атрибути, але msgstr[2] "Рядок таблиці містить %d атрибутів, але запит очікував %d." msgstr[3] "Рядок таблиці містить %d атрибутів, але запит очікував %d." -#: executor/execExprInterp.c:4351 executor/execSRF.c:978 +#: executor/execExprInterp.c:4957 executor/execSRF.c:977 #, c-format msgid "Physical storage mismatch on dropped attribute at ordinal position %d." msgstr "Невідповідність параметрів фізичного зберігання видаленого атрибуту %d." -#: executor/execIndexing.c:588 +#: executor/execIndexing.c:593 #, c-format msgid "ON CONFLICT does not support deferrable unique constraints/exclusion constraints as arbiters" msgstr "ON CONFLICT не підтримує відкладені обмеження унікальності/обмеження-виключення в якості визначального індексу" -#: executor/execIndexing.c:865 +#: executor/execIndexing.c:870 #, c-format msgid "could not create exclusion constraint \"%s\"" msgstr "не вдалося створити обмеження-виключення \"%s\"" -#: executor/execIndexing.c:868 +#: executor/execIndexing.c:873 #, c-format msgid "Key %s conflicts with key %s." msgstr "Ключ %s конфліктує з ключем %s." -#: executor/execIndexing.c:870 +#: executor/execIndexing.c:875 #, c-format msgid "Key conflicts exist." msgstr "Існують конфлікти ключей." -#: executor/execIndexing.c:876 +#: executor/execIndexing.c:881 #, c-format msgid "conflicting key value violates exclusion constraint \"%s\"" msgstr "конфліктуюче значення ключа порушує обмеження-виключення \"%s\"" -#: executor/execIndexing.c:879 +#: executor/execIndexing.c:884 #, c-format msgid "Key %s conflicts with existing key %s." msgstr "Ключ %s конфліктує з існуючим ключем %s." -#: executor/execIndexing.c:881 +#: executor/execIndexing.c:886 #, c-format msgid "Key conflicts with existing key." msgstr "Ключ конфліктує з існуючим ключем." -#: executor/execMain.c:1039 +#: executor/execMain.c:1043 #, c-format msgid "cannot change sequence \"%s\"" msgstr "послідовність \"%s\" не можна змінити" -#: executor/execMain.c:1045 +#: executor/execMain.c:1049 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-відношення \"%s\" не можна змінити" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3079 -#: rewrite/rewriteHandler.c:3966 -#, c-format -msgid "cannot insert into view \"%s\"" -msgstr "вставити дані в подання \"%s\" не можна" - -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3082 -#: rewrite/rewriteHandler.c:3969 -#, c-format -msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." -msgstr "Щоб подання допускало додавання даних, встановіть тригер INSTEAD OF INSERT або безумовне правило ON INSERT DO INSTEAD." - -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3087 -#: rewrite/rewriteHandler.c:3974 -#, c-format -msgid "cannot update view \"%s\"" -msgstr "оновити подання \"%s\" не можна" - -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3090 -#: rewrite/rewriteHandler.c:3977 -#, c-format -msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." -msgstr "Щоб подання допускало оновлення, встановіть тригер INSTEAD OF UPDATE або безумовне правило ON UPDATE DO INSTEAD." - -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3095 -#: rewrite/rewriteHandler.c:3982 -#, c-format -msgid "cannot delete from view \"%s\"" -msgstr "видалити дані з подання \"%s\" не можна" - -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3098 -#: rewrite/rewriteHandler.c:3985 -#, c-format -msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." -msgstr "Щоб подання допускало видалення даних, встановіть тригер INSTEAD OF DELETE або безумновне правило ON DELETE DO INSTEAD." - -#: executor/execMain.c:1092 +#: executor/execMain.c:1068 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "змінити матеріалізоване подання \"%s\" не можна" -#: executor/execMain.c:1104 +#: executor/execMain.c:1080 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "вставляти дані в зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1110 +#: executor/execMain.c:1086 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "зовнішня таблиця \"%s\" не допускає додавання даних" -#: executor/execMain.c:1117 +#: executor/execMain.c:1093 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "оновити зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1123 +#: executor/execMain.c:1099 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "зовнішня таблиця \"%s\" не дозволяє оновлення" -#: executor/execMain.c:1130 +#: executor/execMain.c:1106 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "видаляти дані з зовнішньої таблиці \"%s\" не можна" -#: executor/execMain.c:1136 +#: executor/execMain.c:1112 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "зовнішня таблиця \"%s\" не дозволяє видалення даних" -#: executor/execMain.c:1147 +#: executor/execMain.c:1123 #, c-format msgid "cannot change relation \"%s\"" msgstr "відношення \"%s\" не можна змінити" -#: executor/execMain.c:1174 +#: executor/execMain.c:1150 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "блокувати рядки в послідовності \"%s\" не можна" -#: executor/execMain.c:1181 +#: executor/execMain.c:1157 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "блокувати рядки в TOAST-відношенні \"%s\" не можна" -#: executor/execMain.c:1188 +#: executor/execMain.c:1164 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "блокувати рядки в поданні \"%s\" не можна" -#: executor/execMain.c:1196 +#: executor/execMain.c:1172 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "блокувати рядки в матеріалізованому поданні \"%s\" не можна" -#: executor/execMain.c:1205 executor/execMain.c:2708 +#: executor/execMain.c:1181 executor/execMain.c:2686 #: executor/nodeLockRows.c:135 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "блокувати рядки в зовнішній таблиці \"%s\" не можна" -#: executor/execMain.c:1211 +#: executor/execMain.c:1187 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "блокувати рядки у відношенні \"%s\" не можна" -#: executor/execMain.c:1922 +#: executor/execMain.c:1900 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "новий рядок для відношення \"%s\" порушує обмеження секції" -#: executor/execMain.c:1924 executor/execMain.c:2008 executor/execMain.c:2059 -#: executor/execMain.c:2169 +#: executor/execMain.c:1902 executor/execMain.c:1986 executor/execMain.c:2037 +#: executor/execMain.c:2147 #, c-format msgid "Failing row contains %s." msgstr "Помилковий рядок містить %s." -#: executor/execMain.c:2005 +#: executor/execMain.c:1983 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "null значення в стовпці \"%s\" відношення \"%s\" порушує not-null обмеження" -#: executor/execMain.c:2057 +#: executor/execMain.c:2035 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "новий рядок для відношення \"%s\" порушує перевірне обмеження перевірку \"%s\"" -#: executor/execMain.c:2167 +#: executor/execMain.c:2145 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "новий рядок порушує параметр перевірки для подання \"%s\"" -#: executor/execMain.c:2177 +#: executor/execMain.c:2155 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" для таблиці \"%s\"" -#: executor/execMain.c:2182 +#: executor/execMain.c:2160 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків для таблиці \"%s\"" -#: executor/execMain.c:2190 +#: executor/execMain.c:2168 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2195 +#: executor/execMain.c:2173 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2202 +#: executor/execMain.c:2180 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2207 +#: executor/execMain.c:2185 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" -#: executor/execPartition.c:330 +#: executor/execPartition.c:327 #, c-format msgid "no partition of relation \"%s\" found for row" msgstr "для рядка не знайдено секції у відношенні \"%s\"" -#: executor/execPartition.c:333 +#: executor/execPartition.c:330 #, c-format msgid "Partition key of the failing row contains %s." msgstr "Ключ секціонування для невідповідного рядка містить %s." -#: executor/execReplication.c:231 executor/execReplication.c:415 +#: executor/execReplication.c:272 executor/execReplication.c:456 #, c-format msgid "tuple to be locked was already moved to another partition due to concurrent update, retrying" msgstr "кортеж, що підлягає блокуванню, вже переміщено в іншу секцію в результаті паралельного оновлення, триває повторна спроба" -#: executor/execReplication.c:235 executor/execReplication.c:419 +#: executor/execReplication.c:276 executor/execReplication.c:460 #, c-format msgid "concurrent update, retrying" msgstr "паралельне оновлення, триває повторна спроба" -#: executor/execReplication.c:241 executor/execReplication.c:425 +#: executor/execReplication.c:282 executor/execReplication.c:466 #, c-format msgid "concurrent delete, retrying" msgstr "паралельне видалення, триває повторна спроба" -#: executor/execReplication.c:311 parser/parse_cte.c:308 -#: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:1348 -#: utils/adt/array_userfuncs.c:1491 utils/adt/arrayfuncs.c:3881 -#: utils/adt/arrayfuncs.c:4436 utils/adt/arrayfuncs.c:6446 -#: utils/adt/rowtypes.c:1230 +#: executor/execReplication.c:352 parser/parse_cte.c:302 +#: parser/parse_oper.c:221 utils/adt/array_userfuncs.c:1334 +#: utils/adt/array_userfuncs.c:1477 utils/adt/arrayfuncs.c:3852 +#: utils/adt/arrayfuncs.c:4407 utils/adt/arrayfuncs.c:6426 +#: utils/adt/rowtypes.c:1220 #, c-format msgid "could not identify an equality operator for type %s" msgstr "не вдалося визначити оператора рівності для типу %s" -#: executor/execReplication.c:642 executor/execReplication.c:648 +#: executor/execReplication.c:683 executor/execReplication.c:689 #, c-format msgid "cannot update table \"%s\"" msgstr "оновити таблицю \"%s\" не можна" -#: executor/execReplication.c:644 executor/execReplication.c:656 +#: executor/execReplication.c:685 executor/execReplication.c:697 #, c-format msgid "Column used in the publication WHERE expression is not part of the replica identity." msgstr "Стовпець, що використовується в виразі WHERE публікації не є частиною ідентифікації репліки." -#: executor/execReplication.c:650 executor/execReplication.c:662 +#: executor/execReplication.c:691 executor/execReplication.c:703 #, c-format msgid "Column list used by the publication does not cover the replica identity." msgstr "Список стовпців, який використовується публікацією, не охоплює ідентифікацію репліки." -#: executor/execReplication.c:654 executor/execReplication.c:660 +#: executor/execReplication.c:695 executor/execReplication.c:701 #, c-format msgid "cannot delete from table \"%s\"" msgstr "видалити дані з таблиці \"%s\" не можна" -#: executor/execReplication.c:680 +#: executor/execReplication.c:721 #, c-format msgid "cannot update table \"%s\" because it does not have a replica identity and publishes updates" msgstr "оновлення в таблиці \"%s\" неможливе, тому що в ній відсутній ідентифікатор репліки, і вона публікує оновлення" -#: executor/execReplication.c:682 +#: executor/execReplication.c:723 #, c-format msgid "To enable updating the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "Щоб ця таблиця підтримувала оновлення, встановіть REPLICA IDENTITY, використавши ALTER TABLE." -#: executor/execReplication.c:686 +#: executor/execReplication.c:727 #, c-format msgid "cannot delete from table \"%s\" because it does not have a replica identity and publishes deletes" msgstr "видалення з таблиці \"%s\" неможливе, тому що в ній відсутній ідентифікатор репліки, і вона публікує видалення" -#: executor/execReplication.c:688 +#: executor/execReplication.c:729 #, c-format msgid "To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE." msgstr "Щоб ця таблиця підтримувала видалення, встановіть REPLICA IDENTITY, використавши ALTER TABLE." -#: executor/execReplication.c:704 +#: executor/execReplication.c:745 #, c-format msgid "cannot use relation \"%s.%s\" as logical replication target" msgstr "використовувати відношення \"%s.%s\" як ціль логічної реплікації, не можна" -#: executor/execSRF.c:316 +#: executor/execSRF.c:315 #, c-format msgid "rows returned by function are not all of the same row type" msgstr "рядки, які повернула функція, не мають однаковий тип рядка" -#: executor/execSRF.c:366 +#: executor/execSRF.c:365 #, c-format msgid "table-function protocol for value-per-call mode was not followed" msgstr "протокол функції-таблиці для режиму значення-на-виклик не дотримувався" -#: executor/execSRF.c:374 executor/execSRF.c:668 +#: executor/execSRF.c:373 executor/execSRF.c:667 #, c-format msgid "table-function protocol for materialize mode was not followed" msgstr "порушення протоколу табличної функції в режимі матеріалізації" -#: executor/execSRF.c:381 executor/execSRF.c:686 +#: executor/execSRF.c:380 executor/execSRF.c:685 #, c-format msgid "unrecognized table-function returnMode: %d" msgstr "нерозпізнаний режим повернення табличної функції: %d" -#: executor/execSRF.c:895 +#: executor/execSRF.c:894 #, c-format msgid "function returning setof record called in context that cannot accept type record" msgstr "функція, що повертає набір записів, викликана в контексті, що не може прийняти тип запису" -#: executor/execSRF.c:951 executor/execSRF.c:967 executor/execSRF.c:977 +#: executor/execSRF.c:950 executor/execSRF.c:966 executor/execSRF.c:976 #, c-format msgid "function return row and query-specified return row do not match" msgstr "тип результату функції відрізняється від типу рядка-результату запиту" -#: executor/execSRF.c:952 +#: executor/execSRF.c:951 #, c-format msgid "Returned row contains %d attribute, but query expects %d." msgid_plural "Returned row contains %d attributes, but query expects %d." @@ -13523,23 +13947,33 @@ msgstr[1] "Повернений рядок містить %d атрибути, msgstr[2] "Повернений рядок містить %d атрибутів, але запит очікував %d." msgstr[3] "Повернений рядок містить %d атрибутів, але запит очікував %d." -#: executor/execSRF.c:968 +#: executor/execSRF.c:967 #, c-format msgid "Returned type %s at ordinal position %d, but query expects %s." msgstr "Повернений тип %s у порядковій позиції %d, але запит очікував %s." -#: executor/execTuples.c:146 executor/execTuples.c:353 -#: executor/execTuples.c:521 executor/execTuples.c:713 +#: executor/execTuples.c:147 executor/execTuples.c:368 +#: executor/execTuples.c:563 executor/execTuples.c:772 #, c-format msgid "cannot retrieve a system column in this context" msgstr "не можна отримати системний стовпець в цьому контексті" -#: executor/execUtils.c:744 +#: executor/execTuples.c:163 executor/execTuples.c:580 +#, c-format +msgid "don't have transaction information for this type of tuple" +msgstr "" + +#: executor/execTuples.c:390 executor/execTuples.c:794 +#, c-format +msgid "don't have a storage tuple in this context" +msgstr "" + +#: executor/execUtils.c:713 #, c-format msgid "materialized view \"%s\" has not been populated" msgstr "матеріалізоване подання \"%s\" не було наповнене" -#: executor/execUtils.c:746 +#: executor/execUtils.c:715 #, c-format msgid "Use the REFRESH MATERIALIZED VIEW command." msgstr "Використайте команду REFRESH MATERIALIZED VIEW." @@ -13549,111 +13983,111 @@ msgstr "Використайте команду REFRESH MATERIALIZED VIEW." msgid "could not determine actual type of argument declared %s" msgstr "не вдалося визначити фактичний тип аргументу, оголошеного як %s" -#: executor/functions.c:512 +#: executor/functions.c:513 #, c-format msgid "cannot COPY to/from client in an SQL function" msgstr "у функції SQL не можна виконати COPY до/з клієнта" #. translator: %s is a SQL statement name -#: executor/functions.c:518 +#: executor/functions.c:519 #, c-format msgid "%s is not allowed in an SQL function" msgstr "функція SQL не дозволяє використання %s" #. translator: %s is a SQL statement name -#: executor/functions.c:526 executor/spi.c:1742 executor/spi.c:2635 +#: executor/functions.c:527 executor/spi.c:1741 executor/spi.c:2651 #, c-format msgid "%s is not allowed in a non-volatile function" msgstr "незмінна функція не дозволяє використання %s" -#: executor/functions.c:1450 +#: executor/functions.c:1452 #, c-format msgid "SQL function \"%s\" statement %d" msgstr "SQL функція \"%s\" оператор %d" -#: executor/functions.c:1476 +#: executor/functions.c:1478 #, c-format msgid "SQL function \"%s\" during startup" msgstr "SQL функція \"%s\" під час запуску" -#: executor/functions.c:1561 +#: executor/functions.c:1563 #, c-format msgid "calling procedures with output arguments is not supported in SQL functions" msgstr "виклик процедур з вихідними аргументами в функціях SQL не підтримується" -#: executor/functions.c:1694 executor/functions.c:1732 -#: executor/functions.c:1746 executor/functions.c:1836 -#: executor/functions.c:1869 executor/functions.c:1883 +#: executor/functions.c:1698 executor/functions.c:1736 +#: executor/functions.c:1750 executor/functions.c:1845 +#: executor/functions.c:1878 executor/functions.c:1892 #, c-format msgid "return type mismatch in function declared to return %s" msgstr "невідповідність типу повернення в функції, оголошеній як %s" -#: executor/functions.c:1696 +#: executor/functions.c:1700 #, c-format -msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE RETURNING." -msgstr "Останнім оператором у функції повинен бути SELECT або INSERT/UPDATE/DELETE RETURNING." +msgid "Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING." +msgstr "" -#: executor/functions.c:1734 +#: executor/functions.c:1738 #, c-format msgid "Final statement must return exactly one column." msgstr "Останній оператор повинен вертати один стовпець." -#: executor/functions.c:1748 +#: executor/functions.c:1752 #, c-format msgid "Actual return type is %s." msgstr "Фактичний тип повернення: %s." -#: executor/functions.c:1838 +#: executor/functions.c:1847 #, c-format msgid "Final statement returns too many columns." msgstr "Останній оператор вертає дуже багато стовпців." -#: executor/functions.c:1871 +#: executor/functions.c:1880 #, c-format msgid "Final statement returns %s instead of %s at column %d." msgstr "Останній оператор поветрає %s замість %s для стовпця %d." -#: executor/functions.c:1885 +#: executor/functions.c:1894 #, c-format msgid "Final statement returns too few columns." msgstr "Останній оператор вертає дуже мало стовпців." -#: executor/functions.c:1913 +#: executor/functions.c:1922 #, c-format msgid "return type %s is not supported for SQL functions" msgstr "для SQL функцій тип повернення %s не підтримується" -#: executor/nodeAgg.c:3937 executor/nodeWindowAgg.c:2993 +#: executor/nodeAgg.c:3936 executor/nodeWindowAgg.c:2976 #, c-format msgid "aggregate %u needs to have compatible input type and transition type" msgstr "агрегатна функція %u повинна мати сумісні тип введення і тип переходу" -#: executor/nodeAgg.c:3967 parser/parse_agg.c:680 parser/parse_agg.c:708 +#: executor/nodeAgg.c:3966 parser/parse_agg.c:680 parser/parse_agg.c:708 #, c-format msgid "aggregate function calls cannot be nested" msgstr "виклики агрегатних функцій не можуть бути вкладеними" -#: executor/nodeCustom.c:154 executor/nodeCustom.c:165 +#: executor/nodeCustom.c:144 executor/nodeCustom.c:155 #, c-format msgid "custom scan \"%s\" does not support MarkPos" msgstr "налаштовуване сканування \"%s\" не підтримує MarkPos" -#: executor/nodeHashjoin.c:1143 executor/nodeHashjoin.c:1173 +#: executor/nodeHashjoin.c:1131 executor/nodeHashjoin.c:1161 #, c-format msgid "could not rewind hash-join temporary file" msgstr "не вдалося перемотати назад тимчасовий файл хеш-з'єднання" -#: executor/nodeIndexonlyscan.c:238 +#: executor/nodeIndexonlyscan.c:239 #, c-format msgid "lossy distance functions are not supported in index-only scans" msgstr "функції неточної (lossy) дистанції не підтримуються в скануваннях лише по індексу" -#: executor/nodeLimit.c:374 +#: executor/nodeLimit.c:373 #, c-format msgid "OFFSET must not be negative" msgstr "OFFSET повинен бути не негативним" -#: executor/nodeLimit.c:400 +#: executor/nodeLimit.c:399 #, c-format msgid "LIMIT must not be negative" msgstr "LIMIT повинен бути не негативним" @@ -13668,73 +14102,74 @@ msgstr "RIGHT JOIN підтримується лише з умовами, які msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям" -#: executor/nodeModifyTable.c:234 +#: executor/nodeModifyTable.c:240 #, c-format msgid "Query has too few columns." msgstr "Запит повертає дуже мало стовпців." -#: executor/nodeModifyTable.c:1534 executor/nodeModifyTable.c:1608 +#: executor/nodeModifyTable.c:1540 executor/nodeModifyTable.c:1614 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "кортеж, який підлягає видаленню, вже змінений в операції, яка викликана поточною командою" -#: executor/nodeModifyTable.c:1763 +#: executor/nodeModifyTable.c:1769 #, c-format msgid "invalid ON UPDATE specification" msgstr "неприпустима специфікація ON UPDATE" -#: executor/nodeModifyTable.c:1764 +#: executor/nodeModifyTable.c:1770 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "Результуючий кортеж з'явиться в іншій секції в порівнянні з оригінальним кортежем." -#: executor/nodeModifyTable.c:2223 +#: executor/nodeModifyTable.c:2226 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "не можна пересувати кортеж між різними партиціями, коли не кореневий предок секції джерела безпосередньо посилається на зовнішній ключ" -#: executor/nodeModifyTable.c:2224 +#: executor/nodeModifyTable.c:2227 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "Зовнішній ключ вказує на предка \"%s\", але не на кореневого предка \"%s\"." -#: executor/nodeModifyTable.c:2227 +#: executor/nodeModifyTable.c:2230 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "Розгляньте визначення зовнішнього ключа для таблиці \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2573 executor/nodeModifyTable.c:2975 +#: executor/nodeModifyTable.c:2577 executor/nodeModifyTable.c:3099 +#: executor/nodeModifyTable.c:3260 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не може вплинути на рядок вдруге" -#: executor/nodeModifyTable.c:2575 +#: executor/nodeModifyTable.c:2579 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Переконайтеся, що немає рядків для вставки з тією ж командою з дуплікованими обмежувальними значеннями." -#: executor/nodeModifyTable.c:2977 +#: executor/nodeModifyTable.c:3092 executor/nodeModifyTable.c:3253 #, c-format -msgid "Ensure that not more than one source row matches any one target row." -msgstr "Переконайтесь, що не більше ніж один вихідний рядок відповідає будь-якому одному цільовому рядку." +msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" +msgstr "кортеж, який підлягає оновленню або видаленню, вже змінено операцією, викликаною поточною командою" -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3101 executor/nodeModifyTable.c:3262 #, c-format -msgid "tuple to be deleted was already moved to another partition due to concurrent update" -msgstr "кортеж, який підлягає видаленню, вже переміщено в іншу секцію в результаті паралельного оновлення" +msgid "Ensure that not more than one source row matches any one target row." +msgstr "Переконайтесь, що не більше ніж один вихідний рядок відповідає будь-якому одному цільовому рядку." -#: executor/nodeModifyTable.c:3097 +#: executor/nodeModifyTable.c:3170 #, c-format -msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" -msgstr "кортеж, який підлягає оновленню або видаленню, вже змінено операцією, викликаною поточною командою" +msgid "tuple to be merged was already moved to another partition due to concurrent update" +msgstr "" -#: executor/nodeSamplescan.c:260 +#: executor/nodeSamplescan.c:244 #, c-format msgid "TABLESAMPLE parameter cannot be null" msgstr "Параметр TABLESAMPLE не може бути null" -#: executor/nodeSamplescan.c:272 +#: executor/nodeSamplescan.c:256 #, c-format msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "Параметр TABLESAMPLE REPEATABLE не може бути null" @@ -13745,7 +14180,7 @@ msgstr "Параметр TABLESAMPLE REPEATABLE не може бути null" msgid "more than one row returned by a subquery used as an expression" msgstr "підзапит, використаний в якості вираження, повернув більше ніж один рядок" -#: executor/nodeTableFuncscan.c:375 +#: executor/nodeTableFuncscan.c:370 #, c-format msgid "namespace URI must not be null" msgstr "простір імен URI не повинен бути null" @@ -13755,17 +14190,17 @@ msgstr "простір імен URI не повинен бути null" msgid "row filter expression must not be null" msgstr "вираз фільтру рядків не повинен бути null" -#: executor/nodeTableFuncscan.c:415 +#: executor/nodeTableFuncscan.c:416 #, c-format msgid "column filter expression must not be null" msgstr "вираз фільтру стовпців не повинен бути null" -#: executor/nodeTableFuncscan.c:416 +#: executor/nodeTableFuncscan.c:417 #, c-format msgid "Filter for column \"%s\" is null." msgstr "Фільтр для стовпця \"%s\" є null." -#: executor/nodeTableFuncscan.c:506 +#: executor/nodeTableFuncscan.c:507 #, c-format msgid "null is not allowed in column \"%s\"" msgstr "у стовпці \"%s\" не допускається null" @@ -13795,84 +14230,84 @@ msgstr "зсув кінця рамки не повинен бути null" msgid "frame ending offset must not be negative" msgstr "зсув кінця рамки не повинен бути негативним" -#: executor/nodeWindowAgg.c:2909 +#: executor/nodeWindowAgg.c:2892 #, c-format msgid "aggregate function %s does not support use as a window function" msgstr "агрегатна функція %s не підтримує використання в якості віконної функції" -#: executor/spi.c:242 executor/spi.c:342 +#: executor/spi.c:241 executor/spi.c:341 #, c-format msgid "invalid transaction termination" msgstr "неприпустиме завершення транзакції" -#: executor/spi.c:257 +#: executor/spi.c:256 #, c-format msgid "cannot commit while a subtransaction is active" msgstr "неможливо затвердити, коли підтранзакції активні" -#: executor/spi.c:348 +#: executor/spi.c:347 #, c-format msgid "cannot roll back while a subtransaction is active" msgstr "неможливо відкотити, коли підтранзакції активні" -#: executor/spi.c:472 +#: executor/spi.c:471 #, c-format msgid "transaction left non-empty SPI stack" msgstr "транзакція залишила непорожню групу SPI" -#: executor/spi.c:473 executor/spi.c:533 +#: executor/spi.c:472 executor/spi.c:532 #, c-format msgid "Check for missing \"SPI_finish\" calls." msgstr "Перевірте наявність виклику \"SPI_finish\"." -#: executor/spi.c:532 +#: executor/spi.c:531 #, c-format msgid "subtransaction left non-empty SPI stack" msgstr "підтранзакція залишила непорожню групу SPI" -#: executor/spi.c:1600 +#: executor/spi.c:1599 #, c-format msgid "cannot open multi-query plan as cursor" msgstr "неможливо відкрити план декількох запитів як курсор" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:1610 +#: executor/spi.c:1609 #, c-format msgid "cannot open %s query as cursor" msgstr "неможливо відкрити запит %s як курсор" -#: executor/spi.c:1716 +#: executor/spi.c:1715 #, c-format msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не підтримується" -#: executor/spi.c:1717 parser/analyze.c:2912 +#: executor/spi.c:1716 parser/analyze.c:2928 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Курсори з прокручуванням повинні бути READ ONLY." -#: executor/spi.c:2474 +#: executor/spi.c:2490 #, c-format msgid "empty query does not return tuples" msgstr "пустий запит не повертає кортежі" #. translator: %s is name of a SQL command, eg INSERT -#: executor/spi.c:2548 +#: executor/spi.c:2564 #, c-format msgid "%s query does not return tuples" msgstr "%s запит не повертає кортежі" -#: executor/spi.c:2963 +#: executor/spi.c:2981 #, c-format msgid "SQL expression \"%s\"" msgstr "SQL вираз \"%s\"" -#: executor/spi.c:2968 +#: executor/spi.c:2986 #, c-format msgid "PL/pgSQL assignment \"%s\"" msgstr "PL/pgSQL присвоєння \"%s\"" -#: executor/spi.c:2971 +#: executor/spi.c:2989 #, c-format msgid "SQL statement \"%s\"" msgstr "SQL-оператор \"%s\"" @@ -13882,28 +14317,34 @@ msgstr "SQL-оператор \"%s\"" msgid "could not send tuple to shared-memory queue" msgstr "не вдалося передати кортеж у чергу в спільну пам'ять" -#: foreign/foreign.c:222 +#: foreign/foreign.c:225 +#, c-format +msgid "user mapping not found for user \"%s\", server \"%s\"" +msgstr "зіставлення користувача не знайдено для користувача \"%s\", сервер \"%s\"" + +#: foreign/foreign.c:336 optimizer/plan/createplan.c:7153 +#: optimizer/util/plancat.c:540 #, c-format -msgid "user mapping not found for \"%s\"" -msgstr "зіставлення користувача \"%s\" не знайдено" +msgid "access to non-system foreign table is restricted" +msgstr "" -#: foreign/foreign.c:647 storage/file/fd.c:3931 +#: foreign/foreign.c:660 #, c-format msgid "invalid option \"%s\"" msgstr "недійсний параметр \"%s\"" -#: foreign/foreign.c:649 +#: foreign/foreign.c:662 #, c-format msgid "Perhaps you meant the option \"%s\"." msgstr "Можливо, ви мали на увазі параметр \"%s\"." -#: foreign/foreign.c:651 +#: foreign/foreign.c:664 #, c-format msgid "There are no valid options in this context." msgstr "У цьому контексті немає припустимих варіантів." -#: lib/dshash.c:254 utils/mmgr/dsa.c:715 utils/mmgr/dsa.c:737 -#: utils/mmgr/dsa.c:818 +#: lib/dshash.c:254 utils/mmgr/dsa.c:708 utils/mmgr/dsa.c:730 +#: utils/mmgr/dsa.c:811 #, c-format msgid "Failed on DSA request of size %zu." msgstr "Не вдалося виконати запит DSA розміру %zu." @@ -13913,568 +14354,568 @@ msgstr "Не вдалося виконати запит DSA розміру %zu." msgid "expected SASL response, got message type %d" msgstr "очікувалася відповідь SASL, але отримано тип повідомлення %d" -#: libpq/auth-scram.c:270 +#: libpq/auth-scram.c:263 #, c-format msgid "client selected an invalid SASL authentication mechanism" msgstr "клієнт обрав неприпустимий механізм автентифікації SASL" -#: libpq/auth-scram.c:294 libpq/auth-scram.c:543 libpq/auth-scram.c:554 +#: libpq/auth-scram.c:287 libpq/auth-scram.c:536 libpq/auth-scram.c:547 #, c-format msgid "invalid SCRAM secret for user \"%s\"" msgstr "неприпустимий секрет SCRAM для користувача \"%s\"" -#: libpq/auth-scram.c:305 +#: libpq/auth-scram.c:298 #, c-format msgid "User \"%s\" does not have a valid SCRAM secret." msgstr "Користувач \"%s\" не має припустимого секрету SCRAM." -#: libpq/auth-scram.c:385 libpq/auth-scram.c:390 libpq/auth-scram.c:744 -#: libpq/auth-scram.c:752 libpq/auth-scram.c:857 libpq/auth-scram.c:870 -#: libpq/auth-scram.c:880 libpq/auth-scram.c:988 libpq/auth-scram.c:995 -#: libpq/auth-scram.c:1010 libpq/auth-scram.c:1025 libpq/auth-scram.c:1039 -#: libpq/auth-scram.c:1057 libpq/auth-scram.c:1072 libpq/auth-scram.c:1386 -#: libpq/auth-scram.c:1394 +#: libpq/auth-scram.c:378 libpq/auth-scram.c:383 libpq/auth-scram.c:737 +#: libpq/auth-scram.c:745 libpq/auth-scram.c:850 libpq/auth-scram.c:863 +#: libpq/auth-scram.c:873 libpq/auth-scram.c:981 libpq/auth-scram.c:988 +#: libpq/auth-scram.c:1003 libpq/auth-scram.c:1018 libpq/auth-scram.c:1032 +#: libpq/auth-scram.c:1050 libpq/auth-scram.c:1065 libpq/auth-scram.c:1379 +#: libpq/auth-scram.c:1387 #, c-format msgid "malformed SCRAM message" msgstr "неправильне повідомлення SCRAM" -#: libpq/auth-scram.c:386 +#: libpq/auth-scram.c:379 #, c-format msgid "The message is empty." msgstr "Повідомлення порожнє." -#: libpq/auth-scram.c:391 +#: libpq/auth-scram.c:384 #, c-format msgid "Message length does not match input length." msgstr "Довжина повідомлення не відповідає довжині вводу." -#: libpq/auth-scram.c:423 +#: libpq/auth-scram.c:416 #, c-format msgid "invalid SCRAM response" msgstr "неприпустима відповідь SCRAM" -#: libpq/auth-scram.c:424 +#: libpq/auth-scram.c:417 #, c-format msgid "Nonce does not match." msgstr "Одноразовий ідентифікатор не збігається." -#: libpq/auth-scram.c:500 +#: libpq/auth-scram.c:493 #, c-format msgid "could not generate random salt" msgstr "не вдалося згенерувати випадкову сіль" -#: libpq/auth-scram.c:745 +#: libpq/auth-scram.c:738 #, c-format msgid "Expected attribute \"%c\" but found \"%s\"." msgstr "Очікувався атрибут \"%c\", але знайдено \"%s\"." -#: libpq/auth-scram.c:753 libpq/auth-scram.c:881 +#: libpq/auth-scram.c:746 libpq/auth-scram.c:874 #, c-format msgid "Expected character \"=\" for attribute \"%c\"." msgstr "Очікувався символ \"=\" для атрибуту \"%c\"." -#: libpq/auth-scram.c:858 +#: libpq/auth-scram.c:851 #, c-format msgid "Attribute expected, but found end of string." msgstr "Очікувався атрибут, але знайдено кінець рядка." -#: libpq/auth-scram.c:871 +#: libpq/auth-scram.c:864 #, c-format msgid "Attribute expected, but found invalid character \"%s\"." msgstr "Очікувався атрибут, але знайдено неприпустимий символ \"%s\"." -#: libpq/auth-scram.c:989 libpq/auth-scram.c:1011 +#: libpq/auth-scram.c:982 libpq/auth-scram.c:1004 #, c-format msgid "The client selected SCRAM-SHA-256-PLUS, but the SCRAM message does not include channel binding data." msgstr "Клієнт обрав алгоритм SCRAM-SHA-256-PLUS, але повідомлення SCRAM не містить даних зв’язування каналів." -#: libpq/auth-scram.c:996 libpq/auth-scram.c:1026 +#: libpq/auth-scram.c:989 libpq/auth-scram.c:1019 #, c-format msgid "Comma expected, but found character \"%s\"." msgstr "Очікувалась кома, але знайдено символ \"%s\"." -#: libpq/auth-scram.c:1017 +#: libpq/auth-scram.c:1010 #, c-format msgid "SCRAM channel binding negotiation error" msgstr "Помилка узгодження зв’язування каналів SCRAM" -#: libpq/auth-scram.c:1018 +#: libpq/auth-scram.c:1011 #, c-format msgid "The client supports SCRAM channel binding but thinks the server does not. However, this server does support channel binding." msgstr "Клієнт підтримує зв’язування каналів SCRAM, але думає, що сервер не підтримує. Однак, сервер теж підтримує зв’язування каналів." -#: libpq/auth-scram.c:1040 +#: libpq/auth-scram.c:1033 #, c-format msgid "The client selected SCRAM-SHA-256 without channel binding, but the SCRAM message includes channel binding data." msgstr "Клієнт обрав алгоритм SCRAM-SHA-256 без зв’язування каналів, але повідомлення SCRAM містить дані зв’язування каналів." -#: libpq/auth-scram.c:1051 +#: libpq/auth-scram.c:1044 #, c-format msgid "unsupported SCRAM channel-binding type \"%s\"" msgstr "непідтримуваний тип зв'язування каналів SCRAM \"%s\"" -#: libpq/auth-scram.c:1058 +#: libpq/auth-scram.c:1051 #, c-format msgid "Unexpected channel-binding flag \"%s\"." msgstr "Неочікувана позначка зв'язування каналів \"%s\"." -#: libpq/auth-scram.c:1068 +#: libpq/auth-scram.c:1061 #, c-format msgid "client uses authorization identity, but it is not supported" msgstr "клієнт використовує ідентифікатор для авторизації, але це не підтримується" -#: libpq/auth-scram.c:1073 +#: libpq/auth-scram.c:1066 #, c-format msgid "Unexpected attribute \"%s\" in client-first-message." msgstr "Неочікуваний атрибут \"%s\" у першому повідомленні клієнта." -#: libpq/auth-scram.c:1089 +#: libpq/auth-scram.c:1082 #, c-format msgid "client requires an unsupported SCRAM extension" msgstr "клієнт потребує непідтримуване розширення SCRAM" -#: libpq/auth-scram.c:1103 +#: libpq/auth-scram.c:1096 #, c-format msgid "non-printable characters in SCRAM nonce" msgstr "недруковані символи в одноразовому ідентифікаторі SCRAM" -#: libpq/auth-scram.c:1234 +#: libpq/auth-scram.c:1227 #, c-format msgid "could not generate random nonce" msgstr "не вдалося згенерувати випадковий одноразовий ідентифікатор" -#: libpq/auth-scram.c:1244 +#: libpq/auth-scram.c:1237 #, c-format msgid "could not encode random nonce" msgstr "не вдалося кодувати випадковий одноразовий ідентифікатор" -#: libpq/auth-scram.c:1350 +#: libpq/auth-scram.c:1343 #, c-format msgid "SCRAM channel binding check failed" msgstr "Помилка перевірки зв'язування каналів SCRAM" -#: libpq/auth-scram.c:1368 +#: libpq/auth-scram.c:1361 #, c-format msgid "unexpected SCRAM channel-binding attribute in client-final-message" msgstr "неочікуваний атрибут зв'язування каналів SCRAM в останньому повідомленні клієнта" -#: libpq/auth-scram.c:1387 +#: libpq/auth-scram.c:1380 #, c-format msgid "Malformed proof in client-final-message." msgstr "Неправильне підтвердження в останньому повідомленні клієнта." -#: libpq/auth-scram.c:1395 +#: libpq/auth-scram.c:1388 #, c-format msgid "Garbage found at the end of client-final-message." msgstr "Сміття знайдено в кінці останнього повідомлення клієнта." -#: libpq/auth.c:271 +#: libpq/auth.c:269 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "користувач \"%s\" не пройшов автентифікацію: відхилений хост" -#: libpq/auth.c:274 +#: libpq/auth.c:272 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію \"trust\"" -#: libpq/auth.c:277 +#: libpq/auth.c:275 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Ident" -#: libpq/auth.c:280 +#: libpq/auth.c:278 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Peer" -#: libpq/auth.c:285 +#: libpq/auth.c:283 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за допомогою пароля" -#: libpq/auth.c:290 +#: libpq/auth.c:288 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію GSSAPI" -#: libpq/auth.c:293 +#: libpq/auth.c:291 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію SSPI" -#: libpq/auth.c:296 +#: libpq/auth.c:294 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію PAM" -#: libpq/auth.c:299 +#: libpq/auth.c:297 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію BSD" -#: libpq/auth.c:302 +#: libpq/auth.c:300 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію LDAP" -#: libpq/auth.c:305 +#: libpq/auth.c:303 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за сертифікатом" -#: libpq/auth.c:308 +#: libpq/auth.c:306 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію RADIUS" -#: libpq/auth.c:311 +#: libpq/auth.c:309 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "користувач \"%s\" не пройшов автентифікацію: неприпустимий метод автентифікації" -#: libpq/auth.c:315 +#: libpq/auth.c:313 #, c-format msgid "Connection matched file \"%s\" line %d: \"%s\"" -msgstr "З'єднання відповідає файлу \"%s\" рядку %d: \"%s\"" +msgstr "З'єднання відповідає файлу \"%s\" рядок %d: \"%s\"" -#: libpq/auth.c:359 +#: libpq/auth.c:357 #, c-format msgid "authentication identifier set more than once" msgstr "ідентифікатор автентифікації встановлено більш ніж один раз" -#: libpq/auth.c:360 +#: libpq/auth.c:358 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "попередній ідентифікатор: \"%s\"; новий ідентифікатор: \"%s\"" -#: libpq/auth.c:370 +#: libpq/auth.c:368 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "підключення автентифіковано: ідентифікатор=\"%s\" метод=%s (%s:%d)" -#: libpq/auth.c:410 +#: libpq/auth.c:408 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "сертифікати клієнтів можуть перевірятися, лише якщо доступне сховище кореневих сертифікатів" -#: libpq/auth.c:421 +#: libpq/auth.c:419 #, c-format msgid "connection requires a valid client certificate" msgstr "підключення потребує припустимий сертифікат клієнта" -#: libpq/auth.c:452 libpq/auth.c:498 +#: libpq/auth.c:450 libpq/auth.c:496 msgid "GSS encryption" msgstr "Шифрування GSS" -#: libpq/auth.c:455 libpq/auth.c:501 +#: libpq/auth.c:453 libpq/auth.c:499 msgid "SSL encryption" msgstr "Шифрування SSL" -#: libpq/auth.c:457 libpq/auth.c:503 +#: libpq/auth.c:455 libpq/auth.c:501 msgid "no encryption" msgstr "без шифрування" #. translator: last %s describes encryption state -#: libpq/auth.c:463 +#: libpq/auth.c:461 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення реплікації для хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:470 +#: libpq/auth.c:468 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:508 +#: libpq/auth.c:506 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "IP-адреса клієнта дозволяється в \"%s\", відповідає прямому перетворенню." -#: libpq/auth.c:511 +#: libpq/auth.c:509 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "IP-адреса клієнта дозволяється в \"%s\", пряме перетворення не перевірялося." -#: libpq/auth.c:514 +#: libpq/auth.c:512 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "IP-адреса клієнта дозволяється в \"%s\", не відповідає прямому перетворенню." -#: libpq/auth.c:517 +#: libpq/auth.c:515 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "Перекласти ім'я клієнтського хосту \"%s\" в IP-адресу: %s, не вдалося." -#: libpq/auth.c:522 +#: libpq/auth.c:520 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "Отримати ім'я хосту з IP-адреси клієнта: %s, не вдалося." #. translator: last %s describes encryption state -#: libpq/auth.c:530 +#: libpq/auth.c:528 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "в pg_hba.conf немає запису, що дозволяє підключення для реплікації з хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:538 +#: libpq/auth.c:536 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "в pg_hba.conf немає запису для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:711 +#: libpq/auth.c:656 +#, c-format +msgid "connection authenticated: user=\"%s\" method=%s (%s:%d)" +msgstr "підключення автентифіковано: user=\"%s\" method=%s (%s:%d)" + +#: libpq/auth.c:725 #, c-format msgid "expected password response, got message type %d" msgstr "очікувалася відповід з паролем, але отримано тип повідомлення %d" -#: libpq/auth.c:732 +#: libpq/auth.c:746 #, c-format msgid "invalid password packet size" msgstr "неприпустимий розмір пакету з паролем" -#: libpq/auth.c:750 +#: libpq/auth.c:764 #, c-format msgid "empty password returned by client" msgstr "клієнт повернув пустий пароль" -#: libpq/auth.c:877 libpq/hba.c:1727 -#, c-format -msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" -msgstr "Автентифікація MD5 не підтримується, коли увімкнуто режим \"db_user_namespace\"" - -#: libpq/auth.c:883 +#: libpq/auth.c:892 #, c-format msgid "could not generate random MD5 salt" msgstr "не вдалося створити випадкову сіль для MD5" -#: libpq/auth.c:934 libpq/be-secure-gssapi.c:540 +#: libpq/auth.c:943 libpq/be-secure-gssapi.c:540 #, c-format msgid "could not set environment: %m" msgstr "не вдалося встановити середовище: %m" -#: libpq/auth.c:973 +#: libpq/auth.c:982 #, c-format msgid "expected GSS response, got message type %d" msgstr "очікувалася відповідь GSS, але отримано тип повідомлення %d" -#: libpq/auth.c:1039 +#: libpq/auth.c:1048 msgid "accepting GSS security context failed" msgstr "прийняти контекст безпеки GSS не вдалось" -#: libpq/auth.c:1080 +#: libpq/auth.c:1089 msgid "retrieving GSS user name failed" msgstr "отримання ім'я користувача GSS не виконано" -#: libpq/auth.c:1226 +#: libpq/auth.c:1235 msgid "could not acquire SSPI credentials" msgstr "не вдалось отримати облікові дані SSPI" -#: libpq/auth.c:1251 +#: libpq/auth.c:1260 #, c-format msgid "expected SSPI response, got message type %d" msgstr "очікувалась відповідь SSPI, але отримано тип повідомлення %d" -#: libpq/auth.c:1329 +#: libpq/auth.c:1338 msgid "could not accept SSPI security context" msgstr "прийняти контекст безпеки SSPI не вдалося" -#: libpq/auth.c:1370 +#: libpq/auth.c:1379 msgid "could not get token from SSPI security context" msgstr "не вдалося отримати маркер з контексту безпеки SSPI" -#: libpq/auth.c:1506 libpq/auth.c:1525 +#: libpq/auth.c:1515 libpq/auth.c:1534 #, c-format msgid "could not translate name" msgstr "не вдалося перекласти ім'я" -#: libpq/auth.c:1538 +#: libpq/auth.c:1547 #, c-format msgid "realm name too long" msgstr "ім'я області дуже довге" -#: libpq/auth.c:1553 +#: libpq/auth.c:1562 #, c-format msgid "translated account name too long" msgstr "ім'я перекладеного облікового запису дуже довге" -#: libpq/auth.c:1732 +#: libpq/auth.c:1741 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не вдалося створити сокет для підключення до серверу Ident: %m" -#: libpq/auth.c:1747 +#: libpq/auth.c:1756 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не вдалося прив'язатися до локальної адреси \"%s\": %m" -#: libpq/auth.c:1759 +#: libpq/auth.c:1768 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося підключитися до Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1781 +#: libpq/auth.c:1790 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося надіслати запит до Ident -серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1798 +#: libpq/auth.c:1807 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "не вдалося отримати відповідь від Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1808 +#: libpq/auth.c:1817 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неприпустимо форматована відповідь від Ident-серверу: \"%s\"" -#: libpq/auth.c:1861 +#: libpq/auth.c:1870 #, c-format msgid "peer authentication is not supported on this platform" msgstr "автентифікація peer не підтримується на цій платформі" -#: libpq/auth.c:1865 +#: libpq/auth.c:1874 #, c-format msgid "could not get peer credentials: %m" msgstr "не вдалося отримати облікові дані користувача через peer: %m" -#: libpq/auth.c:1877 +#: libpq/auth.c:1886 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "не вдалося знайти локального користувача за ідентифікатором (%ld): %s" -#: libpq/auth.c:1979 +#: libpq/auth.c:1988 #, c-format msgid "error from underlying PAM layer: %s" msgstr "помилка у нижчому шарі PAM: %s" -#: libpq/auth.c:1990 +#: libpq/auth.c:1999 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "непідтримувана розмова PAM %d/\"%s\"" -#: libpq/auth.c:2047 +#: libpq/auth.c:2056 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не вдалося створити автентифікатор PAM: %s" -#: libpq/auth.c:2058 +#: libpq/auth.c:2067 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "помилка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2090 +#: libpq/auth.c:2099 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "помилка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2102 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "помилка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2115 +#: libpq/auth.c:2124 #, c-format msgid "pam_authenticate failed: %s" msgstr "помилка в pam_authenticate: %sв" -#: libpq/auth.c:2128 +#: libpq/auth.c:2137 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "помилка в pam_acct_mgmt: %s" -#: libpq/auth.c:2139 +#: libpq/auth.c:2148 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не вдалося вивільнити автентифікатор PAM: %s" -#: libpq/auth.c:2219 +#: libpq/auth.c:2228 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не вдалося ініціалізувати протокол LDAP: код помилки %d" -#: libpq/auth.c:2256 +#: libpq/auth.c:2265 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не вдалося отримати назву домена з ldapbasedn" -#: libpq/auth.c:2264 +#: libpq/auth.c:2273 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "Автентифікація LDAP не змогла знайти записи DNS SRV для \"%s\"" -#: libpq/auth.c:2266 +#: libpq/auth.c:2275 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Встановіть назву сервера LDAP, явно." -#: libpq/auth.c:2318 +#: libpq/auth.c:2327 #, c-format msgid "could not initialize LDAP: %s" msgstr "не вдалося ініціалізувати протокол LDAP: %s" -#: libpq/auth.c:2328 +#: libpq/auth.c:2337 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps з поточною бібліотекою LDAP не підтримується" -#: libpq/auth.c:2336 +#: libpq/auth.c:2345 #, c-format msgid "could not initialize LDAP: %m" msgstr "не вдалося ініціалізувати протокол LDAP: %m" -#: libpq/auth.c:2346 +#: libpq/auth.c:2355 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не вдалося встановити версію протоколу LDAP: %s" -#: libpq/auth.c:2362 +#: libpq/auth.c:2371 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не вдалося почати сеанс протоколу LDAP TLS: %s" -#: libpq/auth.c:2439 +#: libpq/auth.c:2448 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "Сервер LDAP не вказаний, і не ldapbasedn" -#: libpq/auth.c:2446 +#: libpq/auth.c:2455 #, c-format msgid "LDAP server not specified" msgstr "LDAP-сервер не вказаний" -#: libpq/auth.c:2508 +#: libpq/auth.c:2517 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "неприпустимий символ в імені користувача для автентифікації LDAP" -#: libpq/auth.c:2525 +#: libpq/auth.c:2534 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати початкову прив'язку LDAP для ldapbinddn \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2555 +#: libpq/auth.c:2564 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати LDAP-пошук за фільтром \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2571 +#: libpq/auth.c:2580 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAP-користувач \"%s\" не існує" -#: libpq/auth.c:2572 +#: libpq/auth.c:2581 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" не повернув записів." -#: libpq/auth.c:2576 +#: libpq/auth.c:2585 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAP-користувач \"%s\" не унікальний" -#: libpq/auth.c:2577 +#: libpq/auth.c:2586 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." @@ -14483,137 +14924,132 @@ msgstr[1] "LDAP-пошук за фільтром \"%s\" на сервері \"%s msgstr[2] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." msgstr[3] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." -#: libpq/auth.c:2597 +#: libpq/auth.c:2606 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "не вдалося отримати dn для першого результату, що відповідає \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2618 -#, c-format -msgid "could not unbind after searching for user \"%s\" on server \"%s\"" -msgstr "не вдалося відв'язатись після пошуку користувача \"%s\" на сервері \"%s\"" - -#: libpq/auth.c:2649 +#: libpq/auth.c:2633 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "Помилка під час реєстрації в протоколі LDAP користувача \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2681 +#: libpq/auth.c:2665 #, c-format msgid "LDAP diagnostics: %s" msgstr "Діагностика LDAP: %s" -#: libpq/auth.c:2719 +#: libpq/auth.c:2703 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "помилка автентифікації сертифіката для користувача \"%s\": сертифікат клієнта не містить імені користувача" -#: libpq/auth.c:2740 +#: libpq/auth.c:2724 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "помилка автентифікації сертифікату для користувача \"%s\": не вдалося отримати DN суб'єкта" -#: libpq/auth.c:2763 +#: libpq/auth.c:2747 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": DN невідповідність" -#: libpq/auth.c:2768 +#: libpq/auth.c:2752 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": CN невідповідність" -#: libpq/auth.c:2870 +#: libpq/auth.c:2854 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-сервер не вказаний" -#: libpq/auth.c:2877 +#: libpq/auth.c:2861 #, c-format msgid "RADIUS secret not specified" msgstr "Секрет RADIUS не вказаний" -#: libpq/auth.c:2891 +#: libpq/auth.c:2875 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "Автентифікація RADIUS не підтримує паролі довші ніж %d символів" -#: libpq/auth.c:2993 libpq/hba.c:2369 +#: libpq/auth.c:2977 libpq/hba.c:2352 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не вдалося перетворити ім'я серверу RADIUS \"%s\" в адресу: %s" -#: libpq/auth.c:3007 +#: libpq/auth.c:2991 #, c-format msgid "could not generate random encryption vector" msgstr "не вдалося створити випадковий вектор шифрування" -#: libpq/auth.c:3044 +#: libpq/auth.c:3028 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "не вдалося виконати MD5 шифрування паролю: %s" -#: libpq/auth.c:3071 +#: libpq/auth.c:3055 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не вдалося створити сокет RADIUS: %m" -#: libpq/auth.c:3087 +#: libpq/auth.c:3071 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не вдалося прив'язатися до локального сокету RADIUS: %m" -#: libpq/auth.c:3097 +#: libpq/auth.c:3081 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не вдалося відправити пакет RADIUS: %m" -#: libpq/auth.c:3131 libpq/auth.c:3157 +#: libpq/auth.c:3115 libpq/auth.c:3141 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "перевищено час очікування відповіді RADIUS від %s" -#: libpq/auth.c:3150 +#: libpq/auth.c:3134 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не вдалося перевірити статус сокету RADIUS: %m" -#: libpq/auth.c:3180 +#: libpq/auth.c:3164 #, c-format msgid "could not read RADIUS response: %m" msgstr "не вдалося прочитати відповідь RADIUS: %m" -#: libpq/auth.c:3188 +#: libpq/auth.c:3172 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "Відповідь RADIUS від %s була відправлена з неправильного порту: %d" -#: libpq/auth.c:3196 +#: libpq/auth.c:3180 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "Занадто коротка відповідь RADIUS від %s: %d" -#: libpq/auth.c:3203 +#: libpq/auth.c:3187 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "У відповіді RADIUS від %s покшоджена довжина: %d (фактична довжина %d)" -#: libpq/auth.c:3211 +#: libpq/auth.c:3195 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "Прийшла відповідь RADIUS від %s на інший запит: %d (очікувалася %d)" -#: libpq/auth.c:3236 +#: libpq/auth.c:3220 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "не вдалося виконати MD5 шифрування отриманого пакету: %s" -#: libpq/auth.c:3246 +#: libpq/auth.c:3230 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "Відповідь RADIUS від %s має неправильний підпис MD5" -#: libpq/auth.c:3264 +#: libpq/auth.c:3248 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "Відповідь RADIUS від %s має неприпустимий код (%d) для користувача \"%s\"" @@ -14670,50 +15106,37 @@ msgstr "не вдалося написати файл сервера \"%s\": %m" msgid "large object read request is too large" msgstr "запит на читання великого об'єкту має завеликий розмір" -#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:262 utils/adt/genfile.c:294 -#: utils/adt/genfile.c:315 +#: libpq/be-fsstubs.c:816 utils/adt/genfile.c:248 utils/adt/genfile.c:269 #, c-format msgid "requested length cannot be negative" msgstr "запитувана довжина не може бути негативною" -#: libpq/be-fsstubs.c:871 storage/large_object/inv_api.c:298 -#: storage/large_object/inv_api.c:310 storage/large_object/inv_api.c:507 -#: storage/large_object/inv_api.c:618 storage/large_object/inv_api.c:808 -#, c-format -msgid "permission denied for large object %u" -msgstr "немає дозволу для великого об'єкта %u" - -#: libpq/be-secure-common.c:71 -#, c-format -msgid "could not read from command \"%s\": %m" -msgstr "не вдалося прочитати висновок команди \"%s\": %m" - -#: libpq/be-secure-common.c:91 +#: libpq/be-secure-common.c:94 #, c-format msgid "command \"%s\" failed" msgstr "помилка команди \"%s\"" -#: libpq/be-secure-common.c:119 +#: libpq/be-secure-common.c:123 #, c-format msgid "could not access private key file \"%s\": %m" msgstr "не вдалось отримати доступ до файла закритиго ключа \"%s\": %m" -#: libpq/be-secure-common.c:129 +#: libpq/be-secure-common.c:133 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "файл закритого ключа \"%s\" не є звичайним" -#: libpq/be-secure-common.c:155 +#: libpq/be-secure-common.c:159 #, c-format msgid "private key file \"%s\" must be owned by the database user or root" msgstr "файл закритого ключа \"%s\" повинен належати користувачу бази даних або коріня" -#: libpq/be-secure-common.c:165 +#: libpq/be-secure-common.c:169 #, c-format msgid "private key file \"%s\" has group or world access" msgstr "до файлу закритого ключа \"%s\" мають доступ група або всі" -#: libpq/be-secure-common.c:167 +#: libpq/be-secure-common.c:171 #, 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 "Файл повинен мати дозволи u=rw (0600) або менше, якщо він належить користувачу бази даних, або u=rw,g=r (0640) або менше, якщо він належить кореню." @@ -14759,1077 +15182,1055 @@ msgstr "не вдалося прийняти контекст безпеки GSS msgid "GSSAPI size check error" msgstr "помилка перевірки розміру GSSAPI" -#: libpq/be-secure-openssl.c:125 +#: libpq/be-secure-openssl.c:131 #, c-format msgid "could not create SSL context: %s" msgstr "не вдалося створити контекст SSL: %s" -#: libpq/be-secure-openssl.c:151 +#: libpq/be-secure-openssl.c:157 #, c-format msgid "could not load server certificate file \"%s\": %s" msgstr "не вдалося завантажити сертифікат серверу \"%s\": %s" -#: libpq/be-secure-openssl.c:171 +#: libpq/be-secure-openssl.c:177 #, c-format msgid "private key file \"%s\" cannot be reloaded because it requires a passphrase" msgstr "файл закритого ключа \"%s\" не можна перезавантажити, тому що це потребує парольну фразу" -#: libpq/be-secure-openssl.c:176 +#: libpq/be-secure-openssl.c:182 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "не вдалось завантажити файл закритого ключа \"%s\": %s" -#: libpq/be-secure-openssl.c:185 +#: libpq/be-secure-openssl.c:191 #, 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:198 libpq/be-secure-openssl.c:221 +#: libpq/be-secure-openssl.c:204 libpq/be-secure-openssl.c:227 #, c-format msgid "\"%s\" setting \"%s\" not supported by this build" msgstr "\"%s\" налаштування \"%s\" не підтримується цією збіркою" -#: libpq/be-secure-openssl.c:208 +#: libpq/be-secure-openssl.c:214 #, c-format msgid "could not set minimum SSL protocol version" msgstr "не вдалося встановити мінімальну версію протоколу SSL" -#: libpq/be-secure-openssl.c:231 +#: libpq/be-secure-openssl.c:237 #, c-format msgid "could not set maximum SSL protocol version" msgstr "не вдалося встановити максимальну версію протоколу SSL" -#: libpq/be-secure-openssl.c:247 +#: libpq/be-secure-openssl.c:253 #, c-format msgid "could not set SSL protocol version range" msgstr "не вдалося встановити діапазон версій протоколу SSL" -#: libpq/be-secure-openssl.c:248 +#: libpq/be-secure-openssl.c:254 #, c-format msgid "\"%s\" cannot be higher than \"%s\"" msgstr "\"%s\" не може бути більше, ніж \"%s\"" -#: libpq/be-secure-openssl.c:285 +#: libpq/be-secure-openssl.c:307 #, c-format msgid "could not set the cipher list (no valid ciphers available)" msgstr "не вдалося встановити список шифрів (немає дійсних шифрів)" -#: libpq/be-secure-openssl.c:305 +#: libpq/be-secure-openssl.c:327 #, c-format msgid "could not load root certificate file \"%s\": %s" msgstr "не вдалося завантажити файл кореневого сертифікату \"%s\": %s" -#: libpq/be-secure-openssl.c:354 +#: libpq/be-secure-openssl.c:376 #, c-format msgid "could not load SSL certificate revocation list file \"%s\": %s" msgstr "не вдалося завантажити файл зі списком відкликаних сертифікатів SSL \"%s\": %s" -#: libpq/be-secure-openssl.c:362 +#: libpq/be-secure-openssl.c:384 #, c-format msgid "could not load SSL certificate revocation list directory \"%s\": %s" msgstr "не вдалося завантажити каталог списку відкликаних сертифікатів SSL \"%s\": %s" -#: libpq/be-secure-openssl.c:370 +#: libpq/be-secure-openssl.c:392 #, c-format msgid "could not load SSL certificate revocation list file \"%s\" or directory \"%s\": %s" msgstr "не вдалося завантажити файл \"%s\" або каталог \"%s\" списку відкликаних сертифікатів SSL: %s" -#: libpq/be-secure-openssl.c:428 +#: libpq/be-secure-openssl.c:450 #, c-format msgid "could not initialize SSL connection: SSL context not set up" msgstr "не вдалося ініціалізувати SSL-підключення: контекст SSL не встановлений" -#: libpq/be-secure-openssl.c:439 +#: libpq/be-secure-openssl.c:464 #, c-format msgid "could not initialize SSL connection: %s" msgstr "не вдалося ініціалізувати SSL-підключення: %s" -#: libpq/be-secure-openssl.c:447 +#: libpq/be-secure-openssl.c:472 #, c-format msgid "could not set SSL socket: %s" msgstr "не вдалося встановити SSL-сокет: %s" -#: libpq/be-secure-openssl.c:503 +#: libpq/be-secure-openssl.c:528 #, c-format msgid "could not accept SSL connection: %m" msgstr "не вдалося прийняти SSL-підключення: %m" -#: libpq/be-secure-openssl.c:507 libpq/be-secure-openssl.c:562 +#: libpq/be-secure-openssl.c:532 libpq/be-secure-openssl.c:589 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не вдалося прийняти SSL-підключення: виявлений EOF" -#: libpq/be-secure-openssl.c:546 +#: libpq/be-secure-openssl.c:573 #, c-format msgid "could not accept SSL connection: %s" msgstr "не вдалося отримати підключення SSL: %s" -#: libpq/be-secure-openssl.c:550 +#: libpq/be-secure-openssl.c:577 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Це може вказувати, що клієнт не підтримує жодної версії протоколу SSL між %s і %s." -#: libpq/be-secure-openssl.c:567 libpq/be-secure-openssl.c:756 -#: libpq/be-secure-openssl.c:826 +#: libpq/be-secure-openssl.c:594 libpq/be-secure-openssl.c:809 +#: libpq/be-secure-openssl.c:879 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нерозпізнаний код помилки SSL: %d" -#: libpq/be-secure-openssl.c:613 +#: libpq/be-secure-openssl.c:622 +#, c-format +msgid "received SSL connection request with unexpected ALPN protocol" +msgstr "" + +#: libpq/be-secure-openssl.c:666 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Спільне ім'я SSL-сертифікату містить нульовий байт" -#: libpq/be-secure-openssl.c:659 +#: libpq/be-secure-openssl.c:712 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "Унікальна назва сертифікату SSL містить вбудоване null-значення" -#: libpq/be-secure-openssl.c:745 libpq/be-secure-openssl.c:810 +#: libpq/be-secure-openssl.c:798 libpq/be-secure-openssl.c:863 #, c-format msgid "SSL error: %s" msgstr "Помилка SSL: %s" -#: libpq/be-secure-openssl.c:987 +#: libpq/be-secure-openssl.c:1038 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не вдалося відкрити файл параметрів DH \"%s\": %m" -#: libpq/be-secure-openssl.c:999 +#: libpq/be-secure-openssl.c:1050 #, c-format msgid "could not load DH parameters file: %s" msgstr "не вдалося завантажити файл параметрів DH: %s" -#: libpq/be-secure-openssl.c:1009 +#: libpq/be-secure-openssl.c:1060 #, c-format msgid "invalid DH parameters: %s" msgstr "неприпустимі параметри DH: %s" -#: libpq/be-secure-openssl.c:1018 +#: libpq/be-secure-openssl.c:1069 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неприпустимі параметри DH: р - не штрих" -#: libpq/be-secure-openssl.c:1027 +#: libpq/be-secure-openssl.c:1078 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "неприпустимі параметри DH: немає придатного генератора або безпечного штриха" -#: libpq/be-secure-openssl.c:1163 +#: libpq/be-secure-openssl.c:1214 #, c-format msgid "Client certificate verification failed at depth %d: %s." msgstr "Не вдалося перевірити сертифікат клієнта на глибині %d: %s." -#: libpq/be-secure-openssl.c:1200 +#: libpq/be-secure-openssl.c:1251 #, c-format msgid "Failed certificate data (unverified): subject \"%s\", serial number %s, issuer \"%s\"." msgstr "Помилкові дані сертифіката (неперевірені): тема \"%s\", серійний номер %s, емітент \"%s\"." -#: libpq/be-secure-openssl.c:1201 +#: libpq/be-secure-openssl.c:1252 msgid "unknown" msgstr "невідомо" -#: libpq/be-secure-openssl.c:1292 +#: libpq/be-secure-openssl.c:1389 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не вдалося завантажити параметри DH" -#: libpq/be-secure-openssl.c:1300 +#: libpq/be-secure-openssl.c:1397 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не вдалося встановити параметри DH: %s" -#: libpq/be-secure-openssl.c:1327 +#: libpq/be-secure-openssl.c:1424 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нерозпізнане ім'я кривої: %s" -#: libpq/be-secure-openssl.c:1336 +#: libpq/be-secure-openssl.c:1433 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не вдалося створити ключ" -#: libpq/be-secure-openssl.c:1364 +#: libpq/be-secure-openssl.c:1461 msgid "no SSL error reported" msgstr "немає повідомлення про помилку SSL" -#: libpq/be-secure-openssl.c:1368 +#: libpq/be-secure-openssl.c:1479 #, c-format msgid "SSL error code %lu" msgstr "Код помилки SSL %lu" -#: libpq/be-secure-openssl.c:1527 +#: libpq/be-secure-openssl.c:1636 #, c-format msgid "could not create BIO" msgstr "неможливо створити BIO" -#: libpq/be-secure-openssl.c:1537 +#: libpq/be-secure-openssl.c:1646 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не вдалося отримати NID для об'єкту ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1545 +#: libpq/be-secure-openssl.c:1654 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не вдалося перетворити NID %d в структуру ASN1_OBJECT" -#: libpq/be-secure.c:207 libpq/be-secure.c:303 -#, c-format -msgid "terminating connection due to unexpected postmaster exit" -msgstr "завершення підключення через неочікуване закриття головного процесу" - -#: libpq/crypt.c:49 +#: libpq/crypt.c:48 #, c-format msgid "Role \"%s\" does not exist." msgstr "Роль \"%s\" не існує." -#: libpq/crypt.c:59 +#: libpq/crypt.c:58 #, c-format msgid "User \"%s\" has no password assigned." msgstr "Користувач \"%s\" не має пароля." -#: libpq/crypt.c:77 +#: libpq/crypt.c:76 #, c-format msgid "User \"%s\" has an expired password." msgstr "Користувач \"%s\" має прострочений пароль." -#: libpq/crypt.c:183 +#: libpq/crypt.c:182 #, c-format msgid "User \"%s\" has a password that cannot be used with MD5 authentication." msgstr "Користувач \"%s\" має пароль, який не можна використовувати з автентифікацією MD5." -#: libpq/crypt.c:204 libpq/crypt.c:246 libpq/crypt.c:266 +#: libpq/crypt.c:203 libpq/crypt.c:245 libpq/crypt.c:265 #, c-format msgid "Password does not match for user \"%s\"." msgstr "Пароль не підходить для користувача \"%s\"." -#: libpq/crypt.c:285 +#: libpq/crypt.c:284 #, c-format msgid "Password of user \"%s\" is in unrecognized format." msgstr "Пароль користувача \"%s\" представлений в нерозпізнаному форматі." -#: libpq/hba.c:332 +#: libpq/hba.c:327 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "недійсний регулярний вираз \"%s\": %s" -#: libpq/hba.c:334 libpq/hba.c:666 libpq/hba.c:1250 libpq/hba.c:1270 -#: libpq/hba.c:1293 libpq/hba.c:1306 libpq/hba.c:1359 libpq/hba.c:1387 -#: libpq/hba.c:1395 libpq/hba.c:1407 libpq/hba.c:1428 libpq/hba.c:1441 -#: libpq/hba.c:1466 libpq/hba.c:1493 libpq/hba.c:1505 libpq/hba.c:1564 -#: libpq/hba.c:1584 libpq/hba.c:1598 libpq/hba.c:1618 libpq/hba.c:1629 -#: libpq/hba.c:1644 libpq/hba.c:1663 libpq/hba.c:1679 libpq/hba.c:1691 -#: libpq/hba.c:1728 libpq/hba.c:1769 libpq/hba.c:1782 libpq/hba.c:1804 -#: libpq/hba.c:1816 libpq/hba.c:1834 libpq/hba.c:1884 libpq/hba.c:1928 -#: libpq/hba.c:1939 libpq/hba.c:1955 libpq/hba.c:1972 libpq/hba.c:1983 -#: libpq/hba.c:2002 libpq/hba.c:2018 libpq/hba.c:2034 libpq/hba.c:2093 -#: libpq/hba.c:2110 libpq/hba.c:2123 libpq/hba.c:2135 libpq/hba.c:2154 -#: libpq/hba.c:2240 libpq/hba.c:2258 libpq/hba.c:2352 libpq/hba.c:2371 -#: libpq/hba.c:2400 libpq/hba.c:2413 libpq/hba.c:2436 libpq/hba.c:2458 -#: libpq/hba.c:2472 tsearch/ts_locale.c:243 +#: libpq/hba.c:329 libpq/hba.c:661 libpq/hba.c:1245 libpq/hba.c:1265 +#: libpq/hba.c:1288 libpq/hba.c:1301 libpq/hba.c:1354 libpq/hba.c:1382 +#: libpq/hba.c:1390 libpq/hba.c:1402 libpq/hba.c:1423 libpq/hba.c:1436 +#: libpq/hba.c:1461 libpq/hba.c:1488 libpq/hba.c:1500 libpq/hba.c:1559 +#: libpq/hba.c:1579 libpq/hba.c:1593 libpq/hba.c:1613 libpq/hba.c:1624 +#: libpq/hba.c:1639 libpq/hba.c:1658 libpq/hba.c:1674 libpq/hba.c:1686 +#: libpq/hba.c:1752 libpq/hba.c:1765 libpq/hba.c:1787 libpq/hba.c:1799 +#: libpq/hba.c:1817 libpq/hba.c:1867 libpq/hba.c:1911 libpq/hba.c:1922 +#: libpq/hba.c:1938 libpq/hba.c:1955 libpq/hba.c:1966 libpq/hba.c:1985 +#: libpq/hba.c:2001 libpq/hba.c:2017 libpq/hba.c:2076 libpq/hba.c:2093 +#: libpq/hba.c:2106 libpq/hba.c:2118 libpq/hba.c:2137 libpq/hba.c:2223 +#: libpq/hba.c:2241 libpq/hba.c:2335 libpq/hba.c:2354 libpq/hba.c:2383 +#: libpq/hba.c:2396 libpq/hba.c:2419 libpq/hba.c:2441 libpq/hba.c:2455 +#: tsearch/ts_locale.c:241 #, c-format msgid "line %d of configuration file \"%s\"" msgstr "рядок %d файла конфігурації \"%s\"" -#: libpq/hba.c:462 +#: libpq/hba.c:457 #, c-format msgid "skipping missing authentication file \"%s\"" msgstr "пропускається відсутній файл автентифікації \"%s\"" -#: libpq/hba.c:614 +#: libpq/hba.c:609 #, c-format msgid "could not open file \"%s\": maximum nesting depth exceeded" msgstr "не вдалося відкрити файл \"%s\": максимальну глибину вкладення перевищено" -#: libpq/hba.c:1221 +#: libpq/hba.c:1216 #, c-format msgid "error enumerating network interfaces: %m" msgstr "помилка перерахування мережевих інтерфейсів: %m" #. translator: the second %s is a list of auth methods -#: libpq/hba.c:1248 +#: libpq/hba.c:1243 #, c-format msgid "authentication option \"%s\" is only valid for authentication methods %s" msgstr "параметр автентифікації \"%s\" припустимий лише для способів автентифікації %s" -#: libpq/hba.c:1268 +#: libpq/hba.c:1263 #, c-format msgid "authentication method \"%s\" requires argument \"%s\" to be set" msgstr "спосіб автентифікації \"%s\" потребує аргумент \"%s\" для встановлення" -#: libpq/hba.c:1292 +#: libpq/hba.c:1287 #, c-format msgid "missing entry at end of line" msgstr "відсутній запис в кінці рядка" -#: libpq/hba.c:1305 +#: libpq/hba.c:1300 #, c-format msgid "multiple values in ident field" msgstr "кілька значень в полі ident" -#: libpq/hba.c:1357 +#: libpq/hba.c:1352 #, c-format msgid "multiple values specified for connection type" msgstr "кілька значень вказано для типу підключення" -#: libpq/hba.c:1358 +#: libpq/hba.c:1353 #, c-format msgid "Specify exactly one connection type per line." msgstr "Вкажіть в рядку єдиний тип підключення." -#: libpq/hba.c:1385 +#: libpq/hba.c:1380 #, c-format msgid "hostssl record cannot match because SSL is disabled" msgstr "запис hostssl не збігається, тому що протокол SSL вимкнутий" -#: libpq/hba.c:1386 +#: libpq/hba.c:1381 #, c-format -msgid "Set ssl = on in postgresql.conf." -msgstr "Встановіть ssl = on в postgresql.conf." +msgid "Set \"ssl = on\" in postgresql.conf." +msgstr "" -#: libpq/hba.c:1394 +#: libpq/hba.c:1389 #, c-format msgid "hostssl record cannot match because SSL is not supported by this build" msgstr "запис hostssl не збігається, тому що SSL не підтримується цією збіркою" -#: libpq/hba.c:1406 +#: libpq/hba.c:1401 #, c-format msgid "hostgssenc record cannot match because GSSAPI is not supported by this build" msgstr "запис hostgssenc не може збігатись, оскільки GSSAPI не підтримується цією збіркою" -#: libpq/hba.c:1426 +#: libpq/hba.c:1421 #, c-format msgid "invalid connection type \"%s\"" msgstr "неприпустимий тип підключення \"%s\"" -#: libpq/hba.c:1440 +#: libpq/hba.c:1435 #, c-format msgid "end-of-line before database specification" msgstr "кінець рядка перед визначенням бази даних" -#: libpq/hba.c:1465 +#: libpq/hba.c:1460 #, c-format msgid "end-of-line before role specification" msgstr "кінець рядка перед визначенням ролі" -#: libpq/hba.c:1492 +#: libpq/hba.c:1487 #, c-format msgid "end-of-line before IP address specification" msgstr "кінець рядка перед визначенням IP-адрес" -#: libpq/hba.c:1503 +#: libpq/hba.c:1498 #, c-format msgid "multiple values specified for host address" msgstr "для адреси хоста вказано кілька значень" -#: libpq/hba.c:1504 +#: libpq/hba.c:1499 #, c-format msgid "Specify one address range per line." msgstr "Вкажіть один діапазон адреси в рядку." -#: libpq/hba.c:1562 +#: libpq/hba.c:1557 #, c-format msgid "invalid IP address \"%s\": %s" msgstr "неприпустима IP адреса \"%s\": %s" -#: libpq/hba.c:1582 +#: libpq/hba.c:1577 #, c-format msgid "specifying both host name and CIDR mask is invalid: \"%s\"" msgstr "визначити одночасно ім’я хоста і маску CIDR не можна: \"%s\"" -#: libpq/hba.c:1596 +#: libpq/hba.c:1591 #, c-format msgid "invalid CIDR mask in address \"%s\"" msgstr "неприпустима маска CIDR в адресі \"%s\"" -#: libpq/hba.c:1616 +#: libpq/hba.c:1611 #, c-format msgid "end-of-line before netmask specification" msgstr "кінець рядка перед визначенням маски мережі" -#: libpq/hba.c:1617 +#: libpq/hba.c:1612 #, c-format msgid "Specify an address range in CIDR notation, or provide a separate netmask." msgstr "Вкажіть діапазон адрес в нотації CIDR або надайте окрему маску мережі." -#: libpq/hba.c:1628 +#: libpq/hba.c:1623 #, c-format msgid "multiple values specified for netmask" msgstr "для маски мережі вказано декілька значень" -#: libpq/hba.c:1642 +#: libpq/hba.c:1637 #, c-format msgid "invalid IP mask \"%s\": %s" msgstr "неприпустима маска IP \"%s\": %s" -#: libpq/hba.c:1662 +#: libpq/hba.c:1657 #, c-format msgid "IP address and mask do not match" msgstr "IP-адреса і маска не збігаються" -#: libpq/hba.c:1678 +#: libpq/hba.c:1673 #, c-format msgid "end-of-line before authentication method" msgstr "кінець рядка перед способом автентифікації" -#: libpq/hba.c:1689 +#: libpq/hba.c:1684 #, c-format msgid "multiple values specified for authentication type" msgstr "для типу автентифікації вказано декілька значень" -#: libpq/hba.c:1690 +#: libpq/hba.c:1685 #, c-format msgid "Specify exactly one authentication type per line." msgstr "Вкажіть у рядку єдиний тип автентифікації." -#: libpq/hba.c:1767 +#: libpq/hba.c:1750 #, c-format msgid "invalid authentication method \"%s\"" msgstr "неприпустимий спосіб автентифікації \"%s\"" -#: libpq/hba.c:1780 +#: libpq/hba.c:1763 #, c-format msgid "invalid authentication method \"%s\": not supported by this build" msgstr "неприпустимий спосіб автентифікації \"%s\": не підтримується цією збіркою" -#: libpq/hba.c:1803 +#: libpq/hba.c:1786 #, c-format msgid "gssapi authentication is not supported on local sockets" msgstr "автентифікація gssapi для локальних сокетів не підтримується" -#: libpq/hba.c:1815 +#: libpq/hba.c:1798 #, c-format msgid "peer authentication is only supported on local sockets" msgstr "автентифікація peer підтримується лише для локальних сокетів" -#: libpq/hba.c:1833 +#: libpq/hba.c:1816 #, c-format msgid "cert authentication is only supported on hostssl connections" msgstr "автентифікація cert підтримується лише для підключень hostssl" -#: libpq/hba.c:1883 +#: libpq/hba.c:1866 #, c-format msgid "authentication option not in name=value format: %s" msgstr "параметр автентифікації вказаний не в форматі ім’я=значення: %s" -#: libpq/hba.c:1927 +#: libpq/hba.c:1910 #, c-format msgid "cannot use ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter, or ldapurl together with ldapprefix" msgstr "не можна використовувати ldapbasedn, ldapbinddn, ldapbindpasswd, ldapsearchattribute, ldapsearchfilter або ldapurl разом з ldapprefix" -#: libpq/hba.c:1938 +#: libpq/hba.c:1921 #, c-format msgid "authentication method \"ldap\" requires argument \"ldapbasedn\", \"ldapprefix\", or \"ldapsuffix\" to be set" msgstr "спосіб автентифікації \"ldap\" потребує встановити аргумент \"ldapbasedn\", \"ldapprefix\" або \"ldapsuffix\"" -#: libpq/hba.c:1954 +#: libpq/hba.c:1937 #, c-format msgid "cannot use ldapsearchattribute together with ldapsearchfilter" msgstr "не можна використовувати ldapsearchattribute разом з ldapsearchfilter" -#: libpq/hba.c:1971 +#: libpq/hba.c:1954 #, c-format msgid "list of RADIUS servers cannot be empty" msgstr "список серверів RADIUS не може бути порожнім" -#: libpq/hba.c:1982 +#: libpq/hba.c:1965 #, c-format msgid "list of RADIUS secrets cannot be empty" msgstr "список секретів RADIUS не може бути порожнім" -#: libpq/hba.c:1999 +#: libpq/hba.c:1982 #, c-format msgid "the number of RADIUS secrets (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість секретів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:2015 +#: libpq/hba.c:1998 #, c-format msgid "the number of RADIUS ports (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість портів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:2031 +#: libpq/hba.c:2014 #, c-format msgid "the number of RADIUS identifiers (%d) must be 1 or the same as the number of RADIUS servers (%d)" msgstr "кількість ідентифікаторів RADIUS (%d) повинна бути 1 або дорівнювати кількості серверів RADIUS (%d)" -#: libpq/hba.c:2083 +#: libpq/hba.c:2066 msgid "ident, peer, gssapi, sspi, and cert" msgstr "ident, peer, gssapi, sspi і cert" -#: libpq/hba.c:2092 +#: libpq/hba.c:2075 #, c-format msgid "clientcert can only be configured for \"hostssl\" rows" msgstr "clientcert може бути налаштовано лише для рядків \"hostssl\"" -#: libpq/hba.c:2109 +#: libpq/hba.c:2092 #, c-format msgid "clientcert only accepts \"verify-full\" when using \"cert\" authentication" msgstr "clientcert приймає лише \"verify-full\" під час використання автентифікації \"cert\"" -#: libpq/hba.c:2122 +#: libpq/hba.c:2105 #, c-format msgid "invalid value for clientcert: \"%s\"" msgstr "неприпустиме значення для clientcert: \"%s\"" -#: libpq/hba.c:2134 +#: libpq/hba.c:2117 #, c-format msgid "clientname can only be configured for \"hostssl\" rows" msgstr "clientname можна налаштувати лише для рядків \"hostssl\"" -#: libpq/hba.c:2153 +#: libpq/hba.c:2136 #, c-format msgid "invalid value for clientname: \"%s\"" msgstr "неприпустиме значення для clientname: \"%s\"" -#: libpq/hba.c:2186 +#: libpq/hba.c:2169 #, c-format msgid "could not parse LDAP URL \"%s\": %s" msgstr "не вдалося аналізувати URL-адресу LDAP \"%s\": %s" -#: libpq/hba.c:2197 +#: libpq/hba.c:2180 #, c-format msgid "unsupported LDAP URL scheme: %s" msgstr "непідтримувана схема в URL-адресі LDAP: %s" -#: libpq/hba.c:2221 +#: libpq/hba.c:2204 #, c-format msgid "LDAP URLs not supported on this platform" msgstr "URL-адреса LDAP не підтримується на цій платформі" -#: libpq/hba.c:2239 +#: libpq/hba.c:2222 #, c-format msgid "invalid ldapscheme value: \"%s\"" msgstr "недійсне значення ldapscheme: \"%s\"" -#: libpq/hba.c:2257 +#: libpq/hba.c:2240 #, c-format msgid "invalid LDAP port number: \"%s\"" msgstr "недійсний номер порту LDAP: \"%s\"" -#: libpq/hba.c:2303 libpq/hba.c:2310 +#: libpq/hba.c:2286 libpq/hba.c:2293 msgid "gssapi and sspi" msgstr "gssapi і sspi" -#: libpq/hba.c:2319 libpq/hba.c:2328 +#: libpq/hba.c:2302 libpq/hba.c:2311 msgid "sspi" msgstr "sspi" -#: libpq/hba.c:2350 +#: libpq/hba.c:2333 #, c-format msgid "could not parse RADIUS server list \"%s\"" msgstr "не вдалося проаналізувати список серверів RADIUS \"%s\"" -#: libpq/hba.c:2398 +#: libpq/hba.c:2381 #, c-format msgid "could not parse RADIUS port list \"%s\"" msgstr "не вдалося проаналізувати список портів RADIUS \"%s\"" -#: libpq/hba.c:2412 +#: libpq/hba.c:2395 #, c-format msgid "invalid RADIUS port number: \"%s\"" msgstr "недійсний номер порту RADIUS: \"%s\"" -#: libpq/hba.c:2434 +#: libpq/hba.c:2417 #, c-format msgid "could not parse RADIUS secret list \"%s\"" msgstr "не вдалося проаналізувати список секретів RADIUS \"%s\"" -#: libpq/hba.c:2456 +#: libpq/hba.c:2439 #, c-format msgid "could not parse RADIUS identifiers list \"%s\"" msgstr "не вдалося проаналізувати список ідентифікаторів RADIUS \"%s\"" -#: libpq/hba.c:2470 +#: libpq/hba.c:2453 #, c-format msgid "unrecognized authentication option name: \"%s\"" msgstr "нерозпізнане ім’я параметра автентифікації: \"%s\"" -#: libpq/hba.c:2662 +#: libpq/hba.c:2645 #, c-format msgid "configuration file \"%s\" contains no entries" msgstr "файл конфігурації \"%s\" не містить елементів" -#: libpq/hba.c:2815 +#: libpq/hba.c:2798 #, c-format msgid "regular expression match for \"%s\" failed: %s" msgstr "помилка при пошуку за регулярним виразом для \"%s\": %s" -#: libpq/hba.c:2839 +#: libpq/hba.c:2822 #, c-format msgid "regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"" msgstr "регулярний вираз \"%s не містить підвиразів, необхідних для зворотного посилання в \"%s\"" -#: libpq/hba.c:2942 +#: libpq/hba.c:2925 #, c-format msgid "provided user name (%s) and authenticated user name (%s) do not match" msgstr "вказане ім'я користувача (%s) і автентифіковане ім'я користувача (%s) не збігаються" -#: libpq/hba.c:2962 +#: libpq/hba.c:2945 #, c-format msgid "no match in usermap \"%s\" for user \"%s\" authenticated as \"%s\"" msgstr "немає відповідності у файлі зіставлень \"%s\" для користувача \"%s\" автентифікованого як \"%s\"" -#: libpq/pqcomm.c:200 +#: libpq/pqcomm.c:211 libpq/pqcomm.c:219 libpq/pqcomm.c:250 libpq/pqcomm.c:259 +#: libpq/pqcomm.c:1648 libpq/pqcomm.c:1693 libpq/pqcomm.c:1733 +#: libpq/pqcomm.c:1777 libpq/pqcomm.c:1816 libpq/pqcomm.c:1855 +#: libpq/pqcomm.c:1891 libpq/pqcomm.c:1930 +#, c-format +msgid "%s(%s) failed: %m" +msgstr "%s(%s) помилка: %m" + +#: libpq/pqcomm.c:296 #, c-format msgid "could not set socket to nonblocking mode: %m" msgstr "не вдалося перевести сокет у неблокуючий режим: %m" -#: libpq/pqcomm.c:361 +#: libpq/pqcomm.c:456 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Шлях Unix-сокету \"%s\" занадто довгий (максимум %d байтів)" -#: libpq/pqcomm.c:381 +#: libpq/pqcomm.c:476 #, c-format msgid "could not translate host name \"%s\", service \"%s\" to address: %s" msgstr "не вдалось перекласти ім'я хоста \"%s\", служби \"%s\" в адресу: %s" -#: libpq/pqcomm.c:385 +#: libpq/pqcomm.c:480 #, c-format msgid "could not translate service \"%s\" to address: %s" msgstr "не вдалось перекласти службу \"%s\" в адресу: %s" -#: libpq/pqcomm.c:412 +#: libpq/pqcomm.c:502 #, c-format msgid "could not bind to all requested addresses: MAXLISTEN (%d) exceeded" msgstr "не вдалось прив'язатись до всіх запитаних адрес: MAXLISTEN (%d) перевищено" -#: libpq/pqcomm.c:421 +#: libpq/pqcomm.c:511 msgid "IPv4" msgstr "IPv4" -#: libpq/pqcomm.c:424 +#: libpq/pqcomm.c:514 msgid "IPv6" msgstr "IPv6" -#: libpq/pqcomm.c:427 +#: libpq/pqcomm.c:517 msgid "Unix" msgstr "Unix" -#: libpq/pqcomm.c:431 +#: libpq/pqcomm.c:521 #, c-format msgid "unrecognized address family %d" msgstr "нерозпізнане сімейство адресів %d" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:455 +#: libpq/pqcomm.c:545 #, c-format msgid "could not create %s socket for address \"%s\": %m" msgstr "не вдалось створити сокет %s для адреси \"%s\": %m" #. translator: third %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:481 libpq/pqcomm.c:499 +#: libpq/pqcomm.c:574 libpq/pqcomm.c:592 #, c-format msgid "%s(%s) failed for %s address \"%s\": %m" msgstr "%s(%s) помилка %s для адреси \"%s\": %m" #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:522 +#: libpq/pqcomm.c:615 #, c-format msgid "could not bind %s address \"%s\": %m" msgstr "не вдалось прив'язатись до адреси %s \"%s\": %m" -#: libpq/pqcomm.c:526 +#: libpq/pqcomm.c:619 #, c-format msgid "Is another postmaster already running on port %d?" msgstr "Можливо інший процес postmaster вже виконується на порті %d?" -#: libpq/pqcomm.c:528 +#: libpq/pqcomm.c:621 #, c-format msgid "Is another postmaster already running on port %d? If not, wait a few seconds and retry." msgstr "Можливо порт %d вже зайнятий іншим процесом postmaster? Якщо ні, почекайте пару секунд і спробуйте знову." #. translator: first %s is IPv4, IPv6, or Unix -#: libpq/pqcomm.c:557 +#: libpq/pqcomm.c:650 #, c-format msgid "could not listen on %s address \"%s\": %m" msgstr "не вдалось прослухати на адресі %s \"%s\": %m" -#: libpq/pqcomm.c:565 +#: libpq/pqcomm.c:658 #, c-format msgid "listening on Unix socket \"%s\"" msgstr "прослуховувати UNIX сокет \"%s\"" #. translator: first %s is IPv4 or IPv6 -#: libpq/pqcomm.c:570 +#: libpq/pqcomm.c:663 #, c-format msgid "listening on %s address \"%s\", port %d" msgstr "прослуховувати %s адресу \"%s\", порт %d" -#: libpq/pqcomm.c:659 +#: libpq/pqcomm.c:753 #, c-format msgid "group \"%s\" does not exist" msgstr "група \"%s\" не існує" -#: libpq/pqcomm.c:669 +#: libpq/pqcomm.c:763 #, c-format msgid "could not set group of file \"%s\": %m" msgstr "не вдалось встановити групу для файла \"%s\": %m" -#: libpq/pqcomm.c:680 +#: libpq/pqcomm.c:774 #, c-format msgid "could not set permissions of file \"%s\": %m" msgstr "не вдалось встановити дозволи для файла \"%s\": %m" -#: libpq/pqcomm.c:708 +#: libpq/pqcomm.c:803 #, c-format msgid "could not accept new connection: %m" msgstr "не вдалось прийняти нове підключення: %m" -#: libpq/pqcomm.c:748 libpq/pqcomm.c:757 libpq/pqcomm.c:789 libpq/pqcomm.c:799 -#: libpq/pqcomm.c:1634 libpq/pqcomm.c:1679 libpq/pqcomm.c:1719 -#: libpq/pqcomm.c:1763 libpq/pqcomm.c:1802 libpq/pqcomm.c:1841 -#: libpq/pqcomm.c:1877 libpq/pqcomm.c:1916 -#, c-format -msgid "%s(%s) failed: %m" -msgstr "%s(%s) помилка: %m" - -#: libpq/pqcomm.c:903 +#: libpq/pqcomm.c:885 #, c-format msgid "there is no client connection" msgstr "немає клієнтського підключення" -#: libpq/pqcomm.c:959 libpq/pqcomm.c:1060 +#: libpq/pqcomm.c:941 libpq/pqcomm.c:1042 #, c-format msgid "could not receive data from client: %m" msgstr "не вдалось отримати дані від клієнта: %m" -#: libpq/pqcomm.c:1165 tcop/postgres.c:4405 +#: libpq/pqcomm.c:1149 tcop/postgres.c:4533 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "завершення підключення через втрату синхронізації протоколу" -#: libpq/pqcomm.c:1231 +#: libpq/pqcomm.c:1215 #, c-format msgid "unexpected EOF within message length word" msgstr "неочікуваний EOF в слові довжини повідомлення" -#: libpq/pqcomm.c:1241 +#: libpq/pqcomm.c:1225 #, c-format msgid "invalid message length" msgstr "неприпустима довжина повідомлення" -#: libpq/pqcomm.c:1263 libpq/pqcomm.c:1276 +#: libpq/pqcomm.c:1247 libpq/pqcomm.c:1260 #, c-format msgid "incomplete message from client" msgstr "неповне повідомлення від клієнта" -#: libpq/pqcomm.c:1387 +#: libpq/pqcomm.c:1401 #, c-format msgid "could not send data to client: %m" msgstr "не вдалось надіслати дані клієнту: %m" -#: libpq/pqcomm.c:1602 +#: libpq/pqcomm.c:1616 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) помилка: код помилки %d" -#: libpq/pqcomm.c:1691 +#: libpq/pqcomm.c:1705 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "встановлення часу простою keepalive не підтримується" -#: libpq/pqcomm.c:1775 libpq/pqcomm.c:1850 libpq/pqcomm.c:1925 +#: libpq/pqcomm.c:1789 libpq/pqcomm.c:1864 libpq/pqcomm.c:1939 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не підтримується" -#: libpq/pqformat.c:407 +#: libpq/pqformat.c:404 #, c-format msgid "no data left in message" msgstr "у повідомлення не залишилось даних" -#: libpq/pqformat.c:518 libpq/pqformat.c:536 libpq/pqformat.c:557 -#: utils/adt/array_userfuncs.c:799 utils/adt/arrayfuncs.c:1507 -#: utils/adt/rowtypes.c:615 +#: libpq/pqformat.c:515 libpq/pqformat.c:533 libpq/pqformat.c:554 +#: utils/adt/array_userfuncs.c:797 utils/adt/arrayfuncs.c:1481 +#: utils/adt/rowtypes.c:613 #, c-format msgid "insufficient data left in message" msgstr "недостатьно даних залишилось в повідомленні" -#: libpq/pqformat.c:598 libpq/pqformat.c:627 +#: libpq/pqformat.c:595 libpq/pqformat.c:624 #, c-format msgid "invalid string in message" msgstr "неприпустимий рядок в повідомленні" -#: libpq/pqformat.c:643 +#: libpq/pqformat.c:640 #, c-format msgid "invalid message format" msgstr "неприпустимий формат повідомлення" -#: main/main.c:235 +#: main/main.c:234 #, c-format msgid "%s: WSAStartup failed: %d\n" msgstr "%s: помилка WSAStartup: %d\n" -#: main/main.c:329 +#: main/main.c:322 #, c-format -msgid "" -"%s is the PostgreSQL server.\n" -"\n" -msgstr "" -"%s - сервер PostgreSQL.\n" -"\n" +msgid "%s is the PostgreSQL server.\n\n" +msgstr "%s - сервер PostgreSQL.\n\n" -#: main/main.c:330 +#: main/main.c:323 #, c-format -msgid "" -"Usage:\n" -" %s [OPTION]...\n" -"\n" -msgstr "" -"Використання:\n" -" %s [OPTION]...\n" -"\n" +msgid "Usage:\n" +" %s [OPTION]...\n\n" +msgstr "Використання:\n" +" %s [OPTION]...\n\n" -#: main/main.c:331 +#: main/main.c:324 #, c-format msgid "Options:\n" msgstr "Параметри:\n" -#: main/main.c:332 +#: main/main.c:325 #, c-format msgid " -B NBUFFERS number of shared buffers\n" msgstr " -B NBUFFERS число спільних буферів\n" -#: main/main.c:333 +#: main/main.c:326 #, c-format msgid " -c NAME=VALUE set run-time parameter\n" msgstr " -c NAME=VALUE встановити параметр під час виконання\n" -#: main/main.c:334 +#: main/main.c:327 #, c-format msgid " -C NAME print value of run-time parameter, then exit\n" msgstr " -C NAME вивести значення параметру під час виконання і вийти\n" -#: main/main.c:335 +#: main/main.c:328 #, c-format msgid " -d 1-5 debugging level\n" msgstr " -d 1-5 рівень налагодження\n" -#: main/main.c:336 +#: main/main.c:329 #, c-format msgid " -D DATADIR database directory\n" msgstr " -D DATADIR каталог бази даних\n" -#: main/main.c:337 +#: main/main.c:330 #, c-format msgid " -e use European date input format (DMY)\n" msgstr " -e використати європейський формат дат (DMY)\n" -#: main/main.c:338 +#: main/main.c:331 #, c-format msgid " -F turn fsync off\n" msgstr " -F вимкнути fsync\n" -#: main/main.c:339 +#: main/main.c:332 #, c-format msgid " -h HOSTNAME host name or IP address to listen on\n" msgstr " -h HOSTNAME ім’я хоста або IP-адреса для прослуховування\n" -#: main/main.c:340 +#: main/main.c:333 #, c-format msgid " -i enable TCP/IP connections (deprecated)\n" msgstr " -i активувати підключення TCP/IP (застаріле)\n" -#: main/main.c:341 +#: main/main.c:334 #, c-format msgid " -k DIRECTORY Unix-domain socket location\n" msgstr " -k DIRECTORY розташування Unix-сокетів\n" -#: main/main.c:343 +#: main/main.c:336 #, c-format msgid " -l enable SSL connections\n" msgstr " -l активувати SSL-підключення\n" -#: main/main.c:345 +#: main/main.c:338 #, c-format msgid " -N MAX-CONNECT maximum number of allowed connections\n" msgstr " -N MAX-CONNECT максимальне число дозволених підключень\n" -#: main/main.c:346 +#: main/main.c:339 #, c-format msgid " -p PORT port number to listen on\n" msgstr " -p PORT номер порту для прослуховування\n" -#: main/main.c:347 +#: main/main.c:340 #, c-format msgid " -s show statistics after each query\n" msgstr " -s відображувати статистику після кожного запиту\n" -#: main/main.c:348 +#: main/main.c:341 #, c-format msgid " -S WORK-MEM set amount of memory for sorts (in kB)\n" msgstr " -S WORK-MEM вказати обсяг пам'яті для сортування (в КБ)\n" -#: main/main.c:349 +#: main/main.c:342 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: main/main.c:350 +#: main/main.c:343 #, c-format msgid " --NAME=VALUE set run-time parameter\n" msgstr " --NAME=VALUE встановити параметр під час виконання\n" -#: main/main.c:351 +#: main/main.c:344 #, c-format msgid " --describe-config describe configuration parameters, then exit\n" msgstr " --describe-config описати параметри конфігурації і вийти\n" -#: main/main.c:352 +#: main/main.c:345 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати довідку і вийти\n" -#: main/main.c:354 +#: main/main.c:347 #, c-format -msgid "" -"\n" +msgid "\n" "Developer options:\n" -msgstr "" -"\n" +msgstr "\n" "Параметри для розробників:\n" -#: main/main.c:355 +#: main/main.c:348 #, c-format msgid " -f s|i|o|b|t|n|m|h forbid use of some plan types\n" msgstr " -f s|i|o|b|t|n|m|h заборонити використовувати деякі типи плану\n" -#: main/main.c:356 +#: main/main.c:349 #, c-format msgid " -O allow system table structure changes\n" msgstr " -O дозволити змінювати структуру системних таблиць\n" -#: main/main.c:357 +#: main/main.c:350 #, c-format msgid " -P disable system indexes\n" msgstr " -P вимкнути системні індекси\n" -#: main/main.c:358 +#: main/main.c:351 #, c-format msgid " -t pa|pl|ex show timings after each query\n" msgstr " -t pa|pl|ex показувати час після кожного запиту\n" -#: main/main.c:359 +#: main/main.c:352 #, c-format msgid " -T send SIGABRT to all backend processes if one dies\n" msgstr " -T надіслати SIGABRT усім внутрішнім процесам, якщо один вимкнеться\n" -#: main/main.c:360 +#: main/main.c:353 #, c-format msgid " -W NUM wait NUM seconds to allow attach from a debugger\n" msgstr " -W NUM очікувати NUM секунд, щоб дозволити підключення від налагоджувача\n" -#: main/main.c:362 +#: main/main.c:355 #, c-format -msgid "" -"\n" +msgid "\n" "Options for single-user mode:\n" -msgstr "" -"\n" +msgstr "\n" "Параметри для однокористувацького режиму:\n" -#: main/main.c:363 +#: main/main.c:356 #, c-format msgid " --single selects single-user mode (must be first argument)\n" msgstr " --single установка однокористувацького режиму (цей аргумент повинен бути першим)\n" -#: main/main.c:364 +#: main/main.c:357 #, c-format msgid " DBNAME database name (defaults to user name)\n" msgstr " DBNAME ім’я бази даних (за замовчуванням - ім'я користувача)\n" -#: main/main.c:365 +#: main/main.c:358 #, c-format msgid " -d 0-5 override debugging level\n" msgstr " -d 0-5 змінити рівень налагодження\n" -#: main/main.c:366 +#: main/main.c:359 #, c-format msgid " -E echo statement before execution\n" msgstr " -E інструкція відлуння перед виконанням\n" -#: main/main.c:367 +#: main/main.c:360 #, c-format msgid " -j do not use newline as interactive query delimiter\n" msgstr " -j не використовувати новий рядок як роздільник інтерактивних запитів\n" -#: main/main.c:368 main/main.c:374 +#: main/main.c:361 main/main.c:367 #, c-format msgid " -r FILENAME send stdout and stderr to given file\n" msgstr " -r FILENAME надіслати stdout і stderr до вказаного файлу\n" -#: main/main.c:370 +#: main/main.c:363 #, c-format -msgid "" -"\n" +msgid "\n" "Options for bootstrapping mode:\n" -msgstr "" -"\n" +msgstr "\n" "Параметри для режиму початкового завантаження:\n" -#: main/main.c:371 +#: main/main.c:364 #, c-format msgid " --boot selects bootstrapping mode (must be first argument)\n" msgstr " --boot установка режиму початкового завантаження (цей аргумент повинен бути першим)\n" -#: main/main.c:372 +#: main/main.c:365 #, c-format msgid " --check selects check mode (must be first argument)\n" msgstr " --check обирає режим перевірки (має бути першим аргументом)\n" -#: main/main.c:373 +#: main/main.c:366 #, c-format msgid " DBNAME database name (mandatory argument in bootstrapping mode)\n" msgstr " DBNAME ім'я бази даних (обов'язковий аргумент у режимі початкового завантаження)\n" -#: main/main.c:376 +#: main/main.c:369 #, c-format -msgid "" -"\n" +msgid "\n" "Please read the documentation for the complete list of run-time\n" "configuration settings and how to set them on the command line or in\n" -"the configuration file.\n" -"\n" +"the configuration file.\n\n" "Report bugs to <%s>.\n" -msgstr "" -"\n" -"Будь-ласка прочитайте інструкцію для повного списку параметрів конфігурації виконання і їх встановлення у командний рядок або в файл конфігурації.\n" -"\n" +msgstr "\n" +"Будь-ласка прочитайте інструкцію для повного списку параметрів конфігурації виконання і їх встановлення у командний рядок або в файл конфігурації.\n\n" "Про помилки повідомляйте <%s>.\n" -#: main/main.c:380 +#: main/main.c:373 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: main/main.c:391 +#: main/main.c:384 #, c-format -msgid "" -"\"root\" execution of the PostgreSQL server is not permitted.\n" +msgid "\"root\" execution of the PostgreSQL server is not permitted.\n" "The server must be started under an unprivileged user ID to prevent\n" "possible system security compromise. See the documentation for\n" "more information on how to properly start the server.\n" -msgstr "" -"Запускати сервер PostgreSQL під іменем \"root\" не дозволено.\n" +msgstr "Запускати сервер PostgreSQL під іменем \"root\" не дозволено.\n" "Для запобігання компрометації системи безпеки сервер повинен запускати непривілейований користувач. Дивіться документацію, щоб дізнатися більше про те, як правильно запустити сервер.\n" -#: main/main.c:408 +#: main/main.c:401 #, c-format msgid "%s: real and effective user IDs must match\n" msgstr "%s: дійсний і ефективний ID користувача повинні збігатися\n" -#: main/main.c:415 +#: main/main.c:408 #, c-format -msgid "" -"Execution of PostgreSQL by a user with administrative permissions is not\n" +msgid "Execution of PostgreSQL by a user with administrative permissions is not\n" "permitted.\n" "The server must be started under an unprivileged user ID to prevent\n" "possible system security compromises. See the documentation for\n" "more information on how to properly start the server.\n" -msgstr "" -"Запускати PostgreSQL під іменем користувача з правами адміністратора не дозволено.\n" +msgstr "Запускати PostgreSQL під іменем користувача з правами адміністратора не дозволено.\n" "Для запобігання можливої компрометації системи безпеки сервер повинен запускати непривілейований користувач. Дивіться документацію, щоб дізнатися більше про те, як правильно запустити сервер.\n" #: nodes/extensible.c:66 @@ -15842,20 +16243,15 @@ msgstr "розширений тип вузла \"%s\" вже існує" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "Методи розширеного вузла \"%s\" не зареєстровані" -#: nodes/makefuncs.c:153 statistics/extended_stats.c:2335 +#: nodes/makefuncs.c:152 statistics/extended_stats.c:2310 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "відношення \"%s\" не має складеного типу" -#: nodes/makefuncs.c:879 -#, c-format -msgid "unrecognized JSON encoding: %s" -msgstr "нерозпізнане кодування JSON: %s" - -#: nodes/nodeFuncs.c:116 nodes/nodeFuncs.c:147 parser/parse_coerce.c:2567 +#: nodes/nodeFuncs.c:118 nodes/nodeFuncs.c:149 parser/parse_coerce.c:2567 #: parser/parse_coerce.c:2705 parser/parse_coerce.c:2752 -#: parser/parse_expr.c:2049 parser/parse_func.c:710 parser/parse_oper.c:883 -#: utils/fmgr/funcapi.c:661 +#: parser/parse_expr.c:2112 parser/parse_func.c:710 parser/parse_oper.c:869 +#: utils/fmgr/funcapi.c:669 #, c-format msgid "could not find array type for data type %s" msgstr "не вдалося знайти тип масиву для типу даних %s" @@ -15870,179 +16266,184 @@ msgstr "портал \"%s\" з параметрами: %s" msgid "unnamed portal with parameters: %s" msgstr "портал без імені з параметрами: %s" -#: optimizer/path/joinrels.c:973 +#: optimizer/path/joinrels.c:972 #, c-format msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям або хеш-з'єднанням" -#: optimizer/plan/createplan.c:7111 parser/parse_merge.c:182 -#: parser/parse_merge.c:189 +#: optimizer/plan/createplan.c:7175 parser/parse_merge.c:203 +#: rewrite/rewriteHandler.c:1696 #, c-format msgid "cannot execute MERGE on relation \"%s\"" msgstr "не можна виконати MERGE для відношення \"%s\"" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/initsplan.c:1408 +#: optimizer/plan/initsplan.c:1407 #, c-format msgid "%s cannot be applied to the nullable side of an outer join" msgstr "%s не можна застосовувати до нульової сторони зовнішнього з’єднання" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1361 parser/analyze.c:1761 parser/analyze.c:2018 -#: parser/analyze.c:3231 +#: optimizer/plan/planner.c:1386 parser/analyze.c:1771 parser/analyze.c:2029 +#: parser/analyze.c:3247 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несумісно з UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2076 optimizer/plan/planner.c:4035 +#: optimizer/plan/planner.c:2127 optimizer/plan/planner.c:4113 #, c-format msgid "could not implement GROUP BY" msgstr "не вдалося реалізувати GROUP BY" -#: optimizer/plan/planner.c:2077 optimizer/plan/planner.c:4036 -#: optimizer/plan/planner.c:4676 optimizer/prep/prepunion.c:1053 +#: optimizer/plan/planner.c:2128 optimizer/plan/planner.c:4114 +#: optimizer/plan/planner.c:4795 optimizer/prep/prepunion.c:1320 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Деякі типи даних підтримують лише хешування, в той час як інші підтримують тільки сортування." -#: optimizer/plan/planner.c:4675 +#: optimizer/plan/planner.c:4794 #, c-format msgid "could not implement DISTINCT" msgstr "не вдалося реалізувати DISTINCT" -#: optimizer/plan/planner.c:6014 +#: optimizer/plan/planner.c:6139 #, c-format msgid "could not implement window PARTITION BY" msgstr "не вдалося реалізувати PARTITION BY для вікна" -#: optimizer/plan/planner.c:6015 +#: optimizer/plan/planner.c:6140 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Стовпці, що розділяють вікна, повинні мати типи даних з можливістю сортування." -#: optimizer/plan/planner.c:6019 +#: optimizer/plan/planner.c:6144 #, c-format msgid "could not implement window ORDER BY" msgstr "не вдалося реалізувати ORDER BY для вікна" -#: optimizer/plan/planner.c:6020 +#: optimizer/plan/planner.c:6145 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Стовпці, що впорядковують вікна, повинні мати типи даних з можливістю сортування." -#: optimizer/prep/prepunion.c:516 +#: optimizer/prep/prepunion.c:467 #, c-format msgid "could not implement recursive UNION" msgstr "не вдалося реалізувати рекурсивний UNION" -#: optimizer/prep/prepunion.c:517 +#: optimizer/prep/prepunion.c:468 #, c-format msgid "All column datatypes must be hashable." msgstr "Усі стовпці повинні мати типи даних з можливістю хешування." #. translator: %s is UNION, INTERSECT, or EXCEPT -#: optimizer/prep/prepunion.c:1052 +#: optimizer/prep/prepunion.c:1319 #, c-format msgid "could not implement %s" msgstr "не вдалося реалізувати %s" -#: optimizer/util/clauses.c:4929 +#: optimizer/util/clauses.c:4951 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "Впроваджена в код SQL-функція \"%s\"" -#: optimizer/util/plancat.c:154 +#: optimizer/util/plancat.c:153 #, c-format msgid "cannot access temporary or unlogged relations during recovery" msgstr "отримати доступ до тимчасових або нежурнальованих відношень під час відновлення не можна" -#: optimizer/util/plancat.c:726 +#: optimizer/util/plancat.c:768 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "вказівки з посиланням на весь рядок для вибору унікального індексу не підтримуються" -#: optimizer/util/plancat.c:743 +#: optimizer/util/plancat.c:785 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "з обмеженням в реченні ON CONFLICT не пов'язаний індекс" -#: optimizer/util/plancat.c:793 +#: optimizer/util/plancat.c:835 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE не підтримується з обмеженнями-винятками" -#: optimizer/util/plancat.c:898 +#: optimizer/util/plancat.c:945 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "немає унікального обмеження або обмеження-виключення відповідного специфікації ON CONFLICT" -#: parser/analyze.c:826 parser/analyze.c:1540 +#: parser/analyze.c:824 parser/analyze.c:1550 #, c-format msgid "VALUES lists must all be the same length" msgstr "Списки VALUES повинні мати однакову довжину" -#: parser/analyze.c:1028 +#: parser/analyze.c:1027 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT містить більше виразів, ніж цільових стовпців" -#: parser/analyze.c:1046 +#: parser/analyze.c:1045 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT містить більше цільових стовпців, ніж виразів" -#: parser/analyze.c:1050 +#: parser/analyze.c:1049 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "Джерелом даних є вираз рядка, який містить стільки ж стовпців, скільки потребується для INSERT. Ви випадково використовували додаткові дужки?" -#: parser/analyze.c:1347 parser/analyze.c:1734 +#: parser/analyze.c:1357 parser/analyze.c:1744 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO не дозволяється тут" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1663 parser/analyze.c:3463 +#: parser/analyze.c:1673 parser/analyze.c:3479 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s не можна застосовувати до VALUES" -#: parser/analyze.c:1900 +#: parser/analyze.c:1911 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "неприпустиме речення UNION/INTERSECT/EXCEPT ORDER BY" -#: parser/analyze.c:1901 +#: parser/analyze.c:1912 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Дозволено використання тільки імен стовпців, але не виразів або функцій." -#: parser/analyze.c:1902 +#: parser/analyze.c:1913 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Додайте вираз/функція до кожного SELECT, або перемістіть UNION у речення FROM." -#: parser/analyze.c:2008 +#: parser/analyze.c:2019 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO дозволяється додати лише до першого SELECT в UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2080 +#: parser/analyze.c:2091 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "Учасник інструкції UNION/INTERSECT/EXCEPT не може посилатись на інші відносини на тому ж рівні" -#: parser/analyze.c:2167 +#: parser/analyze.c:2178 #, c-format msgid "each %s query must have the same number of columns" msgstr "кожен %s запит повинен мати однакову кількість стовпців" -#: parser/analyze.c:2573 +#: parser/analyze.c:2535 +#, c-format +msgid "SET target columns cannot be qualified with the relation name." +msgstr "Цільові стовпці SET не можуть бути кваліфіковані за допомогою імені відношення." + +#: parser/analyze.c:2589 #, c-format msgid "RETURNING must have at least one column" msgstr "В RETURNING повинен бути мінімум один стовпець" -#: parser/analyze.c:2676 +#: parser/analyze.c:2692 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" @@ -16051,224 +16452,224 @@ msgstr[1] "джерело призначення повернуло %d стов msgstr[2] "джерело призначення повернуло %d стовпців" msgstr[3] "джерело призначення повернуло %d стовпців" -#: parser/analyze.c:2737 +#: parser/analyze.c:2753 #, c-format msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "змінна \"%s\" має тип %s, але вираз має тип %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2862 parser/analyze.c:2870 +#: parser/analyze.c:2878 parser/analyze.c:2886 #, c-format msgid "cannot specify both %s and %s" msgstr "не можна вказати як %s, так і %s" -#: parser/analyze.c:2890 +#: parser/analyze.c:2906 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR не повинен містити операторів, які змінюють дані в WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2898 +#: parser/analyze.c:2914 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не підтримується" -#: parser/analyze.c:2901 +#: parser/analyze.c:2917 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Курсори, що зберігаються повинні бути READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2909 +#: parser/analyze.c:2925 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s не підтримується" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2920 +#: parser/analyze.c:2936 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не є припустимим" -#: parser/analyze.c:2923 +#: parser/analyze.c:2939 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Нечутливі курсори повинні бути READ ONLY." -#: parser/analyze.c:3017 +#: parser/analyze.c:3033 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "в матеріалізованих поданнях не повинні використовуватись оператори, які змінюють дані в WITH" -#: parser/analyze.c:3027 +#: parser/analyze.c:3043 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "в матеріалізованих поданнях не повинні використовуватись тимчасові таблиці або подання" -#: parser/analyze.c:3037 +#: parser/analyze.c:3053 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "визначати матеріалізовані подання з зв'язаними параметрами не можна" -#: parser/analyze.c:3049 +#: parser/analyze.c:3065 #, c-format msgid "materialized views cannot be unlogged" msgstr "матеріалізовані подання не можуть бути нежурнальованими" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3238 +#: parser/analyze.c:3254 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s не дозволяється з реченням DISTINCT" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3245 +#: parser/analyze.c:3261 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s не дозволяється з реченням GROUP BY" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3252 +#: parser/analyze.c:3268 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s не дозволяється з реченням HAVING" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3259 +#: parser/analyze.c:3275 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s не дозволяється з агрегатними функціями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3266 +#: parser/analyze.c:3282 #, c-format msgid "%s is not allowed with window functions" msgstr "%s не дозволяється з віконними функціями" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3273 +#: parser/analyze.c:3289 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s не дозволяється з функціями, які повертають безлічі, в цільовому списку" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3372 +#: parser/analyze.c:3388 #, 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:3436 +#: parser/analyze.c:3452 #, 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:3445 +#: parser/analyze.c:3461 #, 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:3454 +#: parser/analyze.c:3470 #, 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:3472 +#: parser/analyze.c:3488 #, 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:3481 +#: parser/analyze.c:3497 #, 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:3501 +#: parser/analyze.c:3517 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "відношення \"%s\" в реченні %s не знайдено в реченні FROM" -#: parser/parse_agg.c:209 parser/parse_oper.c:227 +#: parser/parse_agg.c:210 parser/parse_oper.c:215 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "для типу %s не вдалося визначити оператора сортування" -#: parser/parse_agg.c:211 +#: parser/parse_agg.c:212 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Агрегатним функціям з DISTINCT необхідно сортувати їх вхідні дані." -#: parser/parse_agg.c:269 +#: parser/parse_agg.c:270 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING повинно містити меньше, ніж 32 аргумента" -#: parser/parse_agg.c:372 +#: parser/parse_agg.c:373 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатні функції не дозволяються в умовах JOIN" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:375 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операції групування не дозволяються в умовах JOIN" -#: parser/parse_agg.c:386 +#: parser/parse_agg.c:385 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "агрегатні функції не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:388 +#: parser/parse_agg.c:387 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "операції групування не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатні функції не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:395 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "операції групування не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:403 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатні функції не можна застосовувати у виразах політики" -#: parser/parse_agg.c:405 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "операції групування не можна застосовувати у виразах політики" -#: parser/parse_agg.c:422 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатні функції не можна застосовувати у вікні RANGE " -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "операції групування не можна застосовувати у вікні RANGE" -#: parser/parse_agg.c:429 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатні функції не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:431 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "операції групування не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:436 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатні функції не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:438 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "операції групування не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:451 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:453 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операції групування не можна застосовувати в умовах MERGE WHEN" @@ -16377,7 +16778,7 @@ msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "операції групування не можна застосовувати в умовах COPY FROM WHERE" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:597 parser/parse_clause.c:1956 +#: parser/parse_agg.c:597 parser/parse_clause.c:1962 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "агрегатні функції не можна застосовувати в %s" @@ -16398,8 +16799,8 @@ msgstr "агрегат зовнішнього рівня не може міст msgid "aggregate function calls cannot contain set-returning function calls" msgstr "виклики агрегатної функції не можуть містити викликів функції, що повертають множину" -#: parser/parse_agg.c:780 parser/parse_expr.c:1700 parser/parse_expr.c:2182 -#: parser/parse_func.c:884 +#: parser/parse_agg.c:780 parser/parse_expr.c:1762 parser/parse_expr.c:2245 +#: parser/parse_func.c:885 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Можливо перемістити функцію, що повертає множину, в елемент LATERAL FROM." @@ -16429,170 +16830,170 @@ msgstr "віконні функції не можна застосовувати msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:925 +#: parser/parse_agg.c:926 msgid "window functions are not allowed in check constraints" msgstr "віконні функції не можна застосовувати в перевірках обмежень" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:930 msgid "window functions are not allowed in DEFAULT expressions" msgstr "віконні функції не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:933 msgid "window functions are not allowed in index expressions" msgstr "віконні функції не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:936 msgid "window functions are not allowed in statistics expressions" msgstr "віконні функції не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:939 msgid "window functions are not allowed in index predicates" msgstr "віконні функції не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:942 msgid "window functions are not allowed in transform expressions" msgstr "віконні функції не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:945 msgid "window functions are not allowed in EXECUTE parameters" msgstr "віконні функції не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:948 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах WHEN для тригерів" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in partition bound" msgstr "віконні функції не можна застосовувати в границі секції" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:954 msgid "window functions are not allowed in partition key expressions" msgstr "віконні функції не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:957 msgid "window functions are not allowed in CALL arguments" msgstr "віконні функції не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:960 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "віконні функції не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:962 +#: parser/parse_agg.c:963 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:985 parser/parse_clause.c:1965 +#: parser/parse_agg.c:986 parser/parse_clause.c:1971 #, c-format msgid "window functions are not allowed in %s" msgstr "віконні функції не можна застосовувати в %s" -#: parser/parse_agg.c:1019 parser/parse_clause.c:2798 +#: parser/parse_agg.c:1020 parser/parse_clause.c:2804 #, c-format msgid "window \"%s\" does not exist" msgstr "вікно \"%s\" не існує" -#: parser/parse_agg.c:1107 +#: parser/parse_agg.c:1108 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "забагато наборів групування (максимум 4096)" -#: parser/parse_agg.c:1247 +#: parser/parse_agg.c:1248 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "агрегатні функції не дозволені у рекурсивному терміні рекурсивного запиту" -#: parser/parse_agg.c:1440 +#: parser/parse_agg.c:1441 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "стовпець \"%s.%s\" повинен з'являтися у реченні Група BY або використовуватися в агрегатній функції" -#: parser/parse_agg.c:1443 +#: parser/parse_agg.c:1444 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Прямі аргументи сортувального агрегату можуть використовувати лише згруповані стовпці." -#: parser/parse_agg.c:1448 +#: parser/parse_agg.c:1449 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "вкладений запит використовує не згруповані стовпці \"%s.%s\" з зовнішнього запиту" -#: parser/parse_agg.c:1612 +#: parser/parse_agg.c:1613 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "аргументами групування мають бути вирази групування пов'язаного рівня запиту" -#: parser/parse_clause.c:195 +#: parser/parse_clause.c:193 #, c-format msgid "relation \"%s\" cannot be the target of a modifying statement" msgstr "відношення \"%s\" не може бути метою модифікованої інструкції" -#: parser/parse_clause.c:571 parser/parse_clause.c:599 parser/parse_func.c:2552 +#: parser/parse_clause.c:569 parser/parse_clause.c:597 parser/parse_func.c:2553 #, c-format msgid "set-returning functions must appear at top level of FROM" msgstr "функції, що повертають множину, мають з'являтися на вищому рівні FROM" -#: parser/parse_clause.c:611 +#: parser/parse_clause.c:609 #, c-format msgid "multiple column definition lists are not allowed for the same function" msgstr "кілька списків з визначенням стовпців не дозволені для тої самої функції" -#: parser/parse_clause.c:644 +#: parser/parse_clause.c:642 #, c-format msgid "ROWS FROM() with multiple functions cannot have a column definition list" msgstr "ROWS FROM() з декількома функціями не можуть мати список з визначенням стовпців" -#: parser/parse_clause.c:645 +#: parser/parse_clause.c:643 #, c-format msgid "Put a separate column definition list for each function inside ROWS FROM()." msgstr "Укладіть окремі списки з визначенням стовпців для кожної з функцій всередині ROWS FROM()." -#: parser/parse_clause.c:651 +#: parser/parse_clause.c:649 #, c-format msgid "UNNEST() with multiple arguments cannot have a column definition list" msgstr "UNNEST() з кількома аргументами не можуть мати список з визначенням стовпців" -#: parser/parse_clause.c:652 +#: parser/parse_clause.c:650 #, c-format msgid "Use separate UNNEST() calls inside ROWS FROM(), and attach a column definition list to each one." msgstr "Використайте окремі виклики UNNEST() всередині ROWS FROM() і підключіть список з визначенням стовпців до кожного." -#: parser/parse_clause.c:659 +#: parser/parse_clause.c:657 #, c-format msgid "WITH ORDINALITY cannot be used with a column definition list" msgstr "WITH ORDINALITY не можна використовувати з списком з визначенням стовпців" -#: parser/parse_clause.c:660 +#: parser/parse_clause.c:658 #, c-format msgid "Put the column definition list inside ROWS FROM()." msgstr "Помістіть список з визначенням стовпців всередину ROWS FROM()." -#: parser/parse_clause.c:760 +#: parser/parse_clause.c:762 parser/parse_jsontable.c:295 #, c-format msgid "only one FOR ORDINALITY column is allowed" msgstr "FOR ORDINALITY дозволяється лише для одного стовпця" -#: parser/parse_clause.c:821 +#: parser/parse_clause.c:823 #, c-format msgid "column name \"%s\" is not unique" msgstr "ім'я стовпця \"%s\" не є унікальним" -#: parser/parse_clause.c:863 +#: parser/parse_clause.c:865 #, c-format msgid "namespace name \"%s\" is not unique" msgstr "ім'я простору імен \"%s\" не є унікальним" -#: parser/parse_clause.c:873 +#: parser/parse_clause.c:875 #, c-format msgid "only one default namespace is allowed" msgstr "дозволено тільки один простір імен за замовчуванням" -#: parser/parse_clause.c:933 +#: parser/parse_clause.c:935 #, c-format msgid "tablesample method %s does not exist" msgstr "метод %s для отримання вибірки не існує" -#: parser/parse_clause.c:955 +#: parser/parse_clause.c:957 #, c-format msgid "tablesample method %s requires %d argument, not %d" msgid_plural "tablesample method %s requires %d arguments, not %d" @@ -16601,204 +17002,204 @@ msgstr[1] "метод %s для отримання вибірки потребу msgstr[2] "метод %s для отримання вибірки потребує аргументів: %d, отримано: %d" msgstr[3] "метод %s для отримання вибірки потребує аргументів: %d, отримано: %d" -#: parser/parse_clause.c:989 +#: parser/parse_clause.c:991 #, c-format msgid "tablesample method %s does not support REPEATABLE" msgstr "метод %s для отримання вибірки не підтримує REPEATABLE" -#: parser/parse_clause.c:1138 +#: parser/parse_clause.c:1144 #, c-format msgid "TABLESAMPLE clause can only be applied to tables and materialized views" msgstr "Речення TABLESAMPLE можна застосовувати лише до таблиць або матеріалізованих подань" -#: parser/parse_clause.c:1325 +#: parser/parse_clause.c:1331 #, c-format msgid "column name \"%s\" appears more than once in USING clause" msgstr "ім’я стовпця \"%s\" з'являється у реченні USING неодноразово" -#: parser/parse_clause.c:1340 +#: parser/parse_clause.c:1346 #, c-format msgid "common column name \"%s\" appears more than once in left table" msgstr "ім’я спільного стовпця \"%s\" з'являється у таблиці зліва неодноразово" -#: parser/parse_clause.c:1349 +#: parser/parse_clause.c:1355 #, c-format msgid "column \"%s\" specified in USING clause does not exist in left table" msgstr "в таблиці зліва не існує стовпець \"%s\", вказаний в реченні USING" -#: parser/parse_clause.c:1364 +#: parser/parse_clause.c:1370 #, c-format msgid "common column name \"%s\" appears more than once in right table" msgstr "ім’я спільного стовпця \"%s\" з'являється в таблиці справа неодноразово" -#: parser/parse_clause.c:1373 +#: parser/parse_clause.c:1379 #, c-format msgid "column \"%s\" specified in USING clause does not exist in right table" msgstr "в таблиці справа не існує стовпець \"%s\", вказаний в реченні USING" -#: parser/parse_clause.c:1901 +#: parser/parse_clause.c:1907 #, c-format msgid "row count cannot be null in FETCH FIRST ... WITH TIES clause" msgstr "кількість рядків не може бути NULL в операторі FETCH FIRST ... WITH TIES" #. translator: %s is name of a SQL construct, eg LIMIT -#: parser/parse_clause.c:1926 +#: parser/parse_clause.c:1932 #, c-format msgid "argument of %s must not contain variables" msgstr "аргумент %s не може містити змінні" #. translator: first %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2091 +#: parser/parse_clause.c:2097 #, c-format msgid "%s \"%s\" is ambiguous" msgstr "вираз %s \"%s\" неоднозначний" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2119 +#: parser/parse_clause.c:2125 #, c-format msgid "non-integer constant in %s" msgstr "нецілочисельна константа в %s" #. translator: %s is name of a SQL construct, eg ORDER BY -#: parser/parse_clause.c:2141 +#: parser/parse_clause.c:2147 #, c-format msgid "%s position %d is not in select list" msgstr "в списку вибірки %s немає позиції %d" -#: parser/parse_clause.c:2580 +#: parser/parse_clause.c:2586 #, c-format msgid "CUBE is limited to 12 elements" msgstr "CUBE має обмеження в 12 елементів" -#: parser/parse_clause.c:2786 +#: parser/parse_clause.c:2792 #, c-format msgid "window \"%s\" is already defined" msgstr "вікно \"%s\" вже визначено" -#: parser/parse_clause.c:2847 +#: parser/parse_clause.c:2853 #, c-format msgid "cannot override PARTITION BY clause of window \"%s\"" msgstr "змінити речення PARTITION BY для вікна \"%s\" не можна" -#: parser/parse_clause.c:2859 +#: parser/parse_clause.c:2865 #, c-format msgid "cannot override ORDER BY clause of window \"%s\"" msgstr "змінити речення ORDER BY для вікна \"%s\" не можна" -#: parser/parse_clause.c:2889 parser/parse_clause.c:2895 +#: parser/parse_clause.c:2895 parser/parse_clause.c:2901 #, c-format msgid "cannot copy window \"%s\" because it has a frame clause" msgstr "скопіювати вікно \"%s\", яке має речення рамки, не можна" -#: parser/parse_clause.c:2897 +#: parser/parse_clause.c:2903 #, c-format msgid "Omit the parentheses in this OVER clause." msgstr "Пропустіть дужки в реченні OVER." -#: parser/parse_clause.c:2917 +#: parser/parse_clause.c:2923 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column" msgstr "Для RANGE з зсувом PRECEDING/FOLLOWING потребується лише один стовпець в ORDER BY" -#: parser/parse_clause.c:2940 +#: parser/parse_clause.c:2946 #, c-format msgid "GROUPS mode requires an ORDER BY clause" msgstr "Для режиму GROUPS потребується речення ORDER BY" -#: parser/parse_clause.c:3011 +#: parser/parse_clause.c:3016 #, c-format msgid "in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list" msgstr "для агрегатної функції з DISTINCT, вирази ORDER BY повинні з'являтись у списку аргументів" -#: parser/parse_clause.c:3012 +#: parser/parse_clause.c:3017 #, c-format msgid "for SELECT DISTINCT, ORDER BY expressions must appear in select list" msgstr "для SELECT DISTINCT вирази ORDER BY повинні бути в списку вибірки" -#: parser/parse_clause.c:3044 +#: parser/parse_clause.c:3049 #, c-format msgid "an aggregate with DISTINCT must have at least one argument" msgstr "агрегатна функція з DISTINCT повинна мати мінімум один аргумент" -#: parser/parse_clause.c:3045 +#: parser/parse_clause.c:3050 #, c-format msgid "SELECT DISTINCT must have at least one column" msgstr "SELECT DISTINCT повинен мати мінімум один стовпець" -#: parser/parse_clause.c:3111 parser/parse_clause.c:3143 +#: parser/parse_clause.c:3116 parser/parse_clause.c:3148 #, c-format msgid "SELECT DISTINCT ON expressions must match initial ORDER BY expressions" msgstr "Вирази SELECT DISTINCT ON повинні відповідати початковим виразам ORDER BY" -#: parser/parse_clause.c:3221 +#: parser/parse_clause.c:3226 #, c-format msgid "ASC/DESC is not allowed in ON CONFLICT clause" msgstr "ASC/DESC не дозволяється в реченні ON CONFLICT" -#: parser/parse_clause.c:3227 +#: parser/parse_clause.c:3232 #, c-format msgid "NULLS FIRST/LAST is not allowed in ON CONFLICT clause" msgstr "NULLS FIRST/LAST не довзоляється в реченні ON CONFLICT" -#: parser/parse_clause.c:3306 +#: parser/parse_clause.c:3311 #, c-format msgid "ON CONFLICT DO UPDATE requires inference specification or constraint name" msgstr "ON CONFLICT DO UPDATE вимагає специфікації висновку або імені обмеження" -#: parser/parse_clause.c:3307 +#: parser/parse_clause.c:3312 #, c-format msgid "For example, ON CONFLICT (column_name)." msgstr "Наприклад, ON CONFLICT (ім'я_стовпця)." -#: parser/parse_clause.c:3318 +#: parser/parse_clause.c:3323 #, c-format msgid "ON CONFLICT is not supported with system catalog tables" msgstr "ON CONFLICT не підтримується таблицями системного каталогу" -#: parser/parse_clause.c:3326 +#: parser/parse_clause.c:3331 #, c-format msgid "ON CONFLICT is not supported on table \"%s\" used as a catalog table" msgstr "ON CONFLICT не підтримується в таблиці \"%s\", що використовується як таблиця каталогу" -#: parser/parse_clause.c:3457 +#: parser/parse_clause.c:3462 #, c-format msgid "operator %s is not a valid ordering operator" msgstr "оператор %s не є дійсним оператором сортування" -#: parser/parse_clause.c:3459 +#: parser/parse_clause.c:3464 #, c-format msgid "Ordering operators must be \"<\" or \">\" members of btree operator families." msgstr "Оператори сортування повинні бути учасниками \"<\" або \">\" сімейств операторів btree." -#: parser/parse_clause.c:3770 +#: parser/parse_clause.c:3775 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING не підтримується для типу стовпця %s" -#: parser/parse_clause.c:3776 +#: parser/parse_clause.c:3781 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING is not supported for column type %s and offset type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING не підтримується для типу стовпця %s і типу зсуву %s" -#: parser/parse_clause.c:3779 +#: parser/parse_clause.c:3784 #, c-format msgid "Cast the offset value to an appropriate type." msgstr "Приведіть значення зсуву до потрібного типу." -#: parser/parse_clause.c:3784 +#: parser/parse_clause.c:3789 #, c-format msgid "RANGE with offset PRECEDING/FOLLOWING has multiple interpretations for column type %s and offset type %s" msgstr "RANGE зі зсувом PRECEDING/FOLLOWING має декілька інтерпретацій для типу стовпця %s і типу зсуву %s" -#: parser/parse_clause.c:3787 +#: parser/parse_clause.c:3792 #, c-format msgid "Cast the offset value to the exact intended type." msgstr "Приведіть значення зсуву в точності до призначеного типу." #: parser/parse_coerce.c:1050 parser/parse_coerce.c:1088 #: parser/parse_coerce.c:1106 parser/parse_coerce.c:1121 -#: parser/parse_expr.c:2083 parser/parse_expr.c:2691 parser/parse_expr.c:3497 -#: parser/parse_target.c:985 +#: parser/parse_expr.c:2146 parser/parse_expr.c:2754 parser/parse_expr.c:3405 +#: parser/parse_expr.c:3634 parser/parse_target.c:998 #, c-format msgid "cannot cast type %s to %s" msgstr "неможливо транслювати тип %s в %s" @@ -16857,19 +17258,19 @@ msgid "arguments declared \"%s\" are not all alike" msgstr "оголошенні аргументи \"%s\", повинні бути схожими" #: parser/parse_coerce.c:2249 parser/parse_coerce.c:2362 -#: utils/fmgr/funcapi.c:592 +#: utils/fmgr/funcapi.c:600 #, c-format msgid "argument declared %s is not an array but type %s" msgstr "аргумент, оголошений як %s , є не масивом, а типом %s" #: parser/parse_coerce.c:2282 parser/parse_coerce.c:2432 -#: utils/fmgr/funcapi.c:606 +#: utils/fmgr/funcapi.c:614 #, c-format msgid "argument declared %s is not a range type but type %s" msgstr "аргумент, оголошений як %s, є не діапазонним типом, а типом %s" #: parser/parse_coerce.c:2316 parser/parse_coerce.c:2396 -#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:624 utils/fmgr/funcapi.c:689 +#: parser/parse_coerce.c:2529 utils/fmgr/funcapi.c:632 utils/fmgr/funcapi.c:697 #, c-format msgid "argument declared %s is not a multirange type but type %s" msgstr "оголошений аргумент %s не є багатодіапазонним типом, а типом %s" @@ -16993,437 +17394,547 @@ msgstr "рекурсивне посилання на запит \"%s\" не по msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "рекурсивне посилання на запит \"%s\" не повинне з'являтись в EXCEPT" -#: parser/parse_cte.c:133 -#, c-format -msgid "MERGE not supported in WITH query" -msgstr "MERGE не підтримується в запиті WITH" - -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:136 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "Ім’я запиту WITH \"%s\" вказано неодноразово" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:308 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "не вдалося визначити оператора нерівності для типу %s" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:335 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "Речення WITH, яке містить оператор, що змінює дані, повинне бути на верхньому рівні" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:384 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має тип %s у нерекурсивній частині, але загалом тип %s" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:390 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Приведіть результат нерекурсивної частини до правильного типу." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:395 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має параметри сортування \"%s\" у нерекурсивній частині, але загалом параметри сортування \"%s\"" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:399 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "Використайте речення COLLATE, щоб встановити параметри сортування в нерекурсивній частині." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:420 #, c-format msgid "WITH query is not recursive" msgstr "Запит WITH не є рекурсивним" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:451 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, ліва сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:456 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, права сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:471 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "пошуковий стовпець \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" specified more than once" msgstr "пошуковий стовпець \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:487 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "назва послідовності пошуку \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:504 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "стовпець циклу \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "стовпець циклу \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:520 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "назва стовпця позначки циклу \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:527 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "назва стовпця циклу шляху \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:535 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "назва стовпця позначки циклу і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:545 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця позначки циклу однакові" -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:636 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "Запит WITH \"%s\" має %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:816 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "взаємна рекурсія між елементами WITH не реалізована" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:868 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "рекурсивний запит \"%s\" не повинен містити оператори, які змінюють дані" -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:876 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "рекурсивний запит \"%s\" не має форми (нерекурсивна частина) UNION [ALL] (рекурсивна частина)" -#: parser/parse_cte.c:926 +#: parser/parse_cte.c:911 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:932 +#: parser/parse_cte.c:917 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:938 +#: parser/parse_cte.c:923 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:944 +#: parser/parse_cte.c:929 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:1001 +#: parser/parse_cte.c:1008 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "рекурсивне посилання на запит \"%s\" не повинне з'являтись неодноразово" -#: parser/parse_expr.c:294 +#: parser/parse_expr.c:313 #, c-format msgid "DEFAULT is not allowed in this context" msgstr "DEFAULT не допускається в цьому контексті" -#: parser/parse_expr.c:371 parser/parse_relation.c:3688 -#: parser/parse_relation.c:3698 parser/parse_relation.c:3716 -#: parser/parse_relation.c:3723 parser/parse_relation.c:3737 +#: parser/parse_expr.c:406 parser/parse_relation.c:3691 +#: parser/parse_relation.c:3701 parser/parse_relation.c:3719 +#: parser/parse_relation.c:3726 parser/parse_relation.c:3740 #, c-format msgid "column %s.%s does not exist" msgstr "стовпець %s.%s не існує" -#: parser/parse_expr.c:383 +#: parser/parse_expr.c:418 #, c-format msgid "column \"%s\" not found in data type %s" msgstr "стовпець \"%s\" не знайдено в типі даних %s" -#: parser/parse_expr.c:389 +#: parser/parse_expr.c:424 #, c-format msgid "could not identify column \"%s\" in record data type" msgstr "не вдалося ідентифікувати стовпець \"%s\" в типі запису" -#: parser/parse_expr.c:395 +#: parser/parse_expr.c:430 #, c-format msgid "column notation .%s applied to type %s, which is not a composite type" msgstr "запис імені стовпця .%s застосований до типу %s, котрий не є складеним типом" -#: parser/parse_expr.c:426 parser/parse_target.c:733 +#: parser/parse_expr.c:461 parser/parse_target.c:732 #, c-format msgid "row expansion via \"*\" is not supported here" msgstr "розширення рядка через \"*\" тут не підтримується" -#: parser/parse_expr.c:548 +#: parser/parse_expr.c:584 msgid "cannot use column reference in DEFAULT expression" msgstr "у виразі DEFAULT не можна використовувати посилання на стовпець" -#: parser/parse_expr.c:551 +#: parser/parse_expr.c:587 msgid "cannot use column reference in partition bound expression" msgstr "у виразі границі секції не можна використовувати посилання на стовпці" -#: parser/parse_expr.c:810 parser/parse_relation.c:833 -#: parser/parse_relation.c:915 parser/parse_target.c:1225 +#: parser/parse_expr.c:846 parser/parse_relation.c:833 +#: parser/parse_relation.c:915 parser/parse_target.c:1238 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "посилання на стовпець \"%s\" є неоднозначним" -#: parser/parse_expr.c:866 parser/parse_param.c:110 parser/parse_param.c:142 +#: parser/parse_expr.c:902 parser/parse_param.c:110 parser/parse_param.c:142 #: parser/parse_param.c:204 parser/parse_param.c:303 #, c-format msgid "there is no parameter $%d" msgstr "параметр $%d не існує" -#: parser/parse_expr.c:1066 +#. translator: %s is name of a SQL construct, eg NULLIF +#: parser/parse_expr.c:1103 parser/parse_expr.c:3065 #, c-format -msgid "NULLIF requires = operator to yield boolean" -msgstr "NULLIF потребує = щоб оператор повертав логічне значення" +msgid "%s requires = operator to yield boolean" +msgstr "" #. translator: %s is name of a SQL construct, eg NULLIF -#: parser/parse_expr.c:1072 parser/parse_expr.c:3007 +#: parser/parse_expr.c:1109 parser/parse_expr.c:3072 #, c-format msgid "%s must not return a set" msgstr "%s не повинна повертати набір" -#: parser/parse_expr.c:1457 parser/parse_expr.c:1489 +#: parser/parse_expr.c:1395 +#, c-format +msgid "MERGE_ACTION() can only be used in the RETURNING list of a MERGE command" +msgstr "" + +#: parser/parse_expr.c:1519 parser/parse_expr.c:1551 #, c-format msgid "number of columns does not match number of values" msgstr "кількість стовпців не відповідає кількості значень" -#: parser/parse_expr.c:1503 +#: parser/parse_expr.c:1565 #, c-format msgid "source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression" msgstr "джерелом для елементу UPDATE з декількома стовпцями повинен бути вкладений SELECT або вираз ROW()" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_expr.c:1698 parser/parse_expr.c:2180 parser/parse_func.c:2677 +#: parser/parse_expr.c:1760 parser/parse_expr.c:2243 parser/parse_func.c:2679 #, c-format msgid "set-returning functions are not allowed in %s" msgstr "функції, повертаючі набори, не дозволяються в %s" -#: parser/parse_expr.c:1761 +#: parser/parse_expr.c:1824 msgid "cannot use subquery in check constraint" msgstr "в обмеженні-перевірці не можна використовувати підзапити" -#: parser/parse_expr.c:1765 +#: parser/parse_expr.c:1828 msgid "cannot use subquery in DEFAULT expression" msgstr "у виразі DEFAULT не можна використовувати підзапити" -#: parser/parse_expr.c:1768 +#: parser/parse_expr.c:1831 msgid "cannot use subquery in index expression" msgstr "в індексному виразі не можна використовувати підзапити" -#: parser/parse_expr.c:1771 +#: parser/parse_expr.c:1834 msgid "cannot use subquery in index predicate" msgstr "в предикаті індексу не можна використовувати підзапити" -#: parser/parse_expr.c:1774 +#: parser/parse_expr.c:1837 msgid "cannot use subquery in statistics expression" msgstr "у виразі статистики не можна використовувати підзапит" -#: parser/parse_expr.c:1777 +#: parser/parse_expr.c:1840 msgid "cannot use subquery in transform expression" msgstr "у виразі перетворення не можна використовувати підзапити" -#: parser/parse_expr.c:1780 +#: parser/parse_expr.c:1843 msgid "cannot use subquery in EXECUTE parameter" msgstr "в параметрі EXECUTE не можна використовувати підзапити" -#: parser/parse_expr.c:1783 +#: parser/parse_expr.c:1846 msgid "cannot use subquery in trigger WHEN condition" msgstr "в умові WHEN для тригеру не можна використовувати підзапити" -#: parser/parse_expr.c:1786 +#: parser/parse_expr.c:1849 msgid "cannot use subquery in partition bound" msgstr "в границі секції не можна використовувати підзапити" -#: parser/parse_expr.c:1789 +#: parser/parse_expr.c:1852 msgid "cannot use subquery in partition key expression" msgstr "у виразі ключа секціонування не можна використовувати підзапити" -#: parser/parse_expr.c:1792 +#: parser/parse_expr.c:1855 msgid "cannot use subquery in CALL argument" msgstr "в аргументі CALL не можна використовувати підзапити" -#: parser/parse_expr.c:1795 +#: parser/parse_expr.c:1858 msgid "cannot use subquery in COPY FROM WHERE condition" msgstr "не можна використовувати підзапити в умові COPY FROM WHERE" -#: parser/parse_expr.c:1798 +#: parser/parse_expr.c:1861 msgid "cannot use subquery in column generation expression" msgstr "у виразі генерації стовпців не можна використовувати підзапити" -#: parser/parse_expr.c:1851 parser/parse_expr.c:3628 +#: parser/parse_expr.c:1914 parser/parse_expr.c:3764 #, c-format msgid "subquery must return only one column" msgstr "підзапит повинен повертати лише один стовпець" -#: parser/parse_expr.c:1922 +#: parser/parse_expr.c:1985 #, c-format msgid "subquery has too many columns" msgstr "підзапит має занадто багато стовпців" -#: parser/parse_expr.c:1927 +#: parser/parse_expr.c:1990 #, c-format msgid "subquery has too few columns" msgstr "підзапит має занадто мало стовпців" -#: parser/parse_expr.c:2023 +#: parser/parse_expr.c:2086 #, c-format msgid "cannot determine type of empty array" msgstr "тип пустого масиву визначити не можна" -#: parser/parse_expr.c:2024 +#: parser/parse_expr.c:2087 #, c-format msgid "Explicitly cast to the desired type, for example ARRAY[]::integer[]." msgstr "Приведіть його до бажаного типу явним чином, наприклад ARRAY[]::integer[]." -#: parser/parse_expr.c:2038 +#: parser/parse_expr.c:2101 #, c-format msgid "could not find element type for data type %s" msgstr "не вдалося знайти тип елементу для типу даних %s" -#: parser/parse_expr.c:2121 +#: parser/parse_expr.c:2184 #, c-format msgid "ROW expressions can have at most %d entries" msgstr "ROW вирази можуть мати максимум %d елементів" -#: parser/parse_expr.c:2326 +#: parser/parse_expr.c:2389 #, c-format msgid "unnamed XML attribute value must be a column reference" msgstr "замість значення XML-атрибуту без імені повинен вказуватись стовпець" -#: parser/parse_expr.c:2327 +#: parser/parse_expr.c:2390 #, c-format msgid "unnamed XML element value must be a column reference" msgstr "замість значення XML-елементу без імені повинен вказуватись стовпець" -#: parser/parse_expr.c:2342 +#: parser/parse_expr.c:2405 #, c-format msgid "XML attribute name \"%s\" appears more than once" msgstr "Ім'я XML-атрибуту \"%s\" з'являється неодноразово" -#: parser/parse_expr.c:2450 +#: parser/parse_expr.c:2513 #, c-format msgid "cannot cast XMLSERIALIZE result to %s" msgstr "привести результат XMLSERIALIZE до %s не можна" -#: parser/parse_expr.c:2764 parser/parse_expr.c:2960 +#: parser/parse_expr.c:2827 parser/parse_expr.c:3023 #, c-format msgid "unequal number of entries in row expressions" msgstr "неоднакова кількість елементів у виразах рядка" -#: parser/parse_expr.c:2774 +#: parser/parse_expr.c:2837 #, c-format msgid "cannot compare rows of zero length" msgstr "рядки нульової довжини порівнювати не можна" -#: parser/parse_expr.c:2799 +#: parser/parse_expr.c:2862 #, c-format msgid "row comparison operator must yield type boolean, not type %s" msgstr "оператор порівняння рядків повинен видавати логічний тип, а не %s" -#: parser/parse_expr.c:2806 +#: parser/parse_expr.c:2869 #, c-format msgid "row comparison operator must not return a set" msgstr "оператор порівняння рядків повинен вертати набір" -#: parser/parse_expr.c:2865 parser/parse_expr.c:2906 +#: parser/parse_expr.c:2928 parser/parse_expr.c:2969 #, c-format msgid "could not determine interpretation of row comparison operator %s" msgstr "не вдалося визначити інтерпретацію оператора порівняння рядків %s" -#: parser/parse_expr.c:2867 +#: parser/parse_expr.c:2930 #, c-format msgid "Row comparison operators must be associated with btree operator families." msgstr "Оператори порівняння рядків повинні бути пов'язанні з сімейством операторів btree." -#: parser/parse_expr.c:2908 +#: parser/parse_expr.c:2971 #, c-format msgid "There are multiple equally-plausible candidates." msgstr "Існує декілька рівноцінних кандидатів." -#: parser/parse_expr.c:3001 -#, c-format -msgid "IS DISTINCT FROM requires = operator to yield boolean" -msgstr "IS DISTINCT FROM, потребує = щоб оператор повертав логічне значення" - -#: parser/parse_expr.c:3239 +#: parser/parse_expr.c:3306 #, c-format msgid "JSON ENCODING clause is only allowed for bytea input type" msgstr "Вираз JSON ENCODING дозволено лише для типу введення bytea" -#: parser/parse_expr.c:3261 +#: parser/parse_expr.c:3370 #, c-format msgid "cannot use non-string types with implicit FORMAT JSON clause" msgstr "використовувати типи, які не є string з неявним виразом FORMAT JSON не можна" -#: parser/parse_expr.c:3262 +#: parser/parse_expr.c:3371 #, c-format msgid "cannot use non-string types with explicit FORMAT JSON clause" msgstr "використовувати типи, які не є string з явним виразом FORMAT JSON не можна" -#: parser/parse_expr.c:3335 +#: parser/parse_expr.c:3460 #, c-format msgid "cannot use JSON format with non-string output types" msgstr "використовувати формат JSON з типами виводу, які не є string не можна" -#: parser/parse_expr.c:3348 +#: parser/parse_expr.c:3473 #, c-format msgid "cannot set JSON encoding for non-bytea output types" msgstr "встановити кодування JSON для типів виводу, які не є bytea не можна" -#: parser/parse_expr.c:3353 +#: parser/parse_expr.c:3478 #, c-format msgid "unsupported JSON encoding" msgstr "непідтримуване JSON кодування" -#: parser/parse_expr.c:3354 +#: parser/parse_expr.c:3479 #, c-format msgid "Only UTF8 JSON encoding is supported." msgstr "Підтримується лише кодування UTF8 формату JSON." -#: parser/parse_expr.c:3391 +#: parser/parse_expr.c:3516 #, c-format msgid "returning SETOF types is not supported in SQL/JSON functions" msgstr "повернення типів SETOF не підтримується у функціях SQL/JSON" -#: parser/parse_expr.c:3712 parser/parse_func.c:865 +#: parser/parse_expr.c:3521 +#, c-format +msgid "returning pseudo-types is not supported in SQL/JSON functions" +msgstr "" + +#: parser/parse_expr.c:3849 parser/parse_func.c:866 #, c-format msgid "aggregate ORDER BY is not implemented for window functions" msgstr "агрегатне речення ORDER BY для віконних функцій не реалізовано" -#: parser/parse_expr.c:3934 +#: parser/parse_expr.c:4072 #, c-format msgid "cannot use JSON FORMAT ENCODING clause for non-bytea input types" msgstr "використовувати вираз JSON FORMAT ENCODING для типів введення, які не є bytea не можна" -#: parser/parse_expr.c:3954 +#: parser/parse_expr.c:4092 #, c-format msgid "cannot use type %s in IS JSON predicate" msgstr "використовувати тип %s в предикаті IS JSON не можна" +#: parser/parse_expr.c:4118 parser/parse_expr.c:4238 +#, c-format +msgid "cannot use RETURNING type %s in %s" +msgstr "не можна використовувати тип RETURNING %s в %s" + +#: parser/parse_expr.c:4167 +#, c-format +msgid "cannot use non-string types with WITH UNIQUE KEYS clause" +msgstr "не можна використовувати не строкові типи з пунктом WITH UNIQUE KEYS" + +#: parser/parse_expr.c:4241 +#, c-format +msgid "Try returning a string type or bytea." +msgstr "Спробуйте повернути тип string або bytea." + +#: parser/parse_expr.c:4306 +#, c-format +msgid "cannot specify FORMAT JSON in RETURNING clause of %s()" +msgstr "" + +#: parser/parse_expr.c:4319 +#, c-format +msgid "SQL/JSON QUOTES behavior must not be specified when WITH WRAPPER is used" +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4333 parser/parse_expr.c:4362 parser/parse_expr.c:4393 +#: parser/parse_expr.c:4419 parser/parse_expr.c:4445 +#: parser/parse_jsontable.c:94 +#, c-format +msgid "invalid %s behavior" +msgstr "" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4336 parser/parse_expr.c:4365 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for %s." +msgstr "" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name a SQL/JSON clause (eg. ON EMPTY) +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4343 parser/parse_expr.c:4372 parser/parse_expr.c:4401 +#: parser/parse_expr.c:4429 parser/parse_expr.c:4455 +#, c-format +msgid "invalid %s behavior for column \"%s\"" +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4346 parser/parse_expr.c:4375 +#, c-format +msgid "Only ERROR, NULL, EMPTY ARRAY, EMPTY OBJECT, or DEFAULT expression is allowed in %s for formatted columns." +msgstr "" + +#: parser/parse_expr.c:4394 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for %s." +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4404 +#, c-format +msgid "Only ERROR, TRUE, FALSE, or UNKNOWN is allowed in %s for EXISTS columns." +msgstr "" + +#. translator: first %s is name of a SQL/JSON clause (eg. ON EMPTY), +#. second %s is a SQL/JSON function name (e.g. JSON_QUERY) +#: parser/parse_expr.c:4422 parser/parse_expr.c:4448 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for %s." +msgstr "" + +#. translator: %s is name of a SQL/JSON clause (eg. ON EMPTY) +#: parser/parse_expr.c:4432 parser/parse_expr.c:4458 +#, c-format +msgid "Only ERROR, NULL, or DEFAULT expression is allowed in %s for scalar columns." +msgstr "" + +#: parser/parse_expr.c:4488 +#, c-format +msgid "JSON path expression must be of type %s, not of type %s" +msgstr "" + +#: parser/parse_expr.c:4706 +#, c-format +msgid "can only specify a constant, non-aggregate function, or operator expression for DEFAULT" +msgstr "" + +#: parser/parse_expr.c:4711 +#, c-format +msgid "DEFAULT expression must not contain column references" +msgstr "" + +#: parser/parse_expr.c:4716 +#, c-format +msgid "DEFAULT expression must not return a set" +msgstr "" + +#: parser/parse_expr.c:4792 parser/parse_expr.c:4801 +#, c-format +msgid "cannot cast behavior expression of type %s to %s" +msgstr "" + +#: parser/parse_expr.c:4795 +#, c-format +msgid "You will need to explicitly cast the expression to type %s." +msgstr "" + #: parser/parse_func.c:194 #, c-format msgid "argument name \"%s\" used more than once" @@ -17434,7 +17945,7 @@ msgstr "ім’я аргументу \"%s\" використовується н msgid "positional argument cannot follow named argument" msgstr "позиційний аргумент не може стежити за іменованим аргументомв" -#: parser/parse_func.c:287 parser/parse_func.c:2367 +#: parser/parse_func.c:287 parser/parse_func.c:2368 #, c-format msgid "%s is not a procedure" msgstr "%s не є процедурою" @@ -17557,7 +18068,7 @@ msgstr "Не вдалося обрати найкращу кандидатуру msgid "No aggregate function matches the given name and argument types. Perhaps you misplaced ORDER BY; ORDER BY must appear after all regular arguments of the aggregate." msgstr "Агрегатну функцію з цим ім'ям і типами аргументів не знайдено. Можливо, ви невірно розмістили речення ORDER BY; речення ORDER BY повинно з'являтись після всіх звичайних аргументів агрегату." -#: parser/parse_func.c:622 parser/parse_func.c:2410 +#: parser/parse_func.c:622 parser/parse_func.c:2411 #, c-format msgid "procedure %s does not exist" msgstr "процедура %s не існує" @@ -17577,7 +18088,7 @@ msgstr "Функцію з цим ім'ям і типами аргументів msgid "VARIADIC argument must be an array" msgstr "Аргумент VARIADIC повинен бути масивом" -#: parser/parse_func.c:791 parser/parse_func.c:855 +#: parser/parse_func.c:791 parser/parse_func.c:856 #, c-format msgid "%s(*) must be used to call a parameterless aggregate function" msgstr " %s(*) треба використовувати для виклику агрегатної функції без параметрів" @@ -17592,42 +18103,42 @@ msgstr "агрегатні функції не можуть повертати msgid "aggregates cannot use named arguments" msgstr "агрегатні функції не можуть використовувати іменовані аргументи" -#: parser/parse_func.c:845 +#: parser/parse_func.c:846 #, c-format msgid "DISTINCT is not implemented for window functions" msgstr "DISTINCT для віконних функції не реалізовано" -#: parser/parse_func.c:874 +#: parser/parse_func.c:875 #, c-format msgid "FILTER is not implemented for non-aggregate window functions" msgstr "FILTER для неагрегатних віконних функцій не реалізовано" -#: parser/parse_func.c:883 +#: parser/parse_func.c:884 #, c-format msgid "window function calls cannot contain set-returning function calls" msgstr "виклики віконних функцій не можуть містити виклики функцій, які повертають набори" -#: parser/parse_func.c:891 +#: parser/parse_func.c:892 #, c-format msgid "window functions cannot return sets" msgstr "віконні функції не можуть повертати набори" -#: parser/parse_func.c:2166 parser/parse_func.c:2439 +#: parser/parse_func.c:2167 parser/parse_func.c:2440 #, c-format msgid "could not find a function named \"%s\"" msgstr "не вдалося знайти функцію з іменем \"%s\"" -#: parser/parse_func.c:2180 parser/parse_func.c:2457 +#: parser/parse_func.c:2181 parser/parse_func.c:2458 #, c-format msgid "function name \"%s\" is not unique" msgstr "ім’я функції \"%s\" не є унікальним" -#: parser/parse_func.c:2182 parser/parse_func.c:2460 +#: parser/parse_func.c:2183 parser/parse_func.c:2461 #, c-format msgid "Specify the argument list to select the function unambiguously." msgstr "Укажіть список аргументів для однозначного вибору функції." -#: parser/parse_func.c:2226 +#: parser/parse_func.c:2227 #, c-format msgid "procedures cannot have more than %d argument" msgid_plural "procedures cannot have more than %d arguments" @@ -17636,221 +18147,215 @@ msgstr[1] "процедури не можуть мати більш ніж %d а msgstr[2] "процедури не можуть мати більш ніж %d аргументів" msgstr[3] "процедури не можуть мати більш ніж %d аргументів" -#: parser/parse_func.c:2357 +#: parser/parse_func.c:2358 #, c-format msgid "%s is not a function" msgstr "%s не є функцією" -#: parser/parse_func.c:2377 +#: parser/parse_func.c:2378 #, c-format msgid "function %s is not an aggregate" msgstr "функція %s не є агрегатною" -#: parser/parse_func.c:2405 +#: parser/parse_func.c:2406 #, c-format msgid "could not find a procedure named \"%s\"" msgstr "не вдалося знайти процедуру з іменем \"%s\"" -#: parser/parse_func.c:2419 +#: parser/parse_func.c:2420 #, c-format msgid "could not find an aggregate named \"%s\"" msgstr "не вдалося знайти агрегат з ім'ям \"%s\"" -#: parser/parse_func.c:2424 +#: parser/parse_func.c:2425 #, c-format msgid "aggregate %s(*) does not exist" msgstr "агрегат %s (*) не існує" -#: parser/parse_func.c:2429 +#: parser/parse_func.c:2430 #, c-format msgid "aggregate %s does not exist" msgstr "агрегат %s не існує" -#: parser/parse_func.c:2465 +#: parser/parse_func.c:2466 #, c-format msgid "procedure name \"%s\" is not unique" msgstr "назва процедури \"%s\" не є унікальною" -#: parser/parse_func.c:2468 +#: parser/parse_func.c:2469 #, c-format msgid "Specify the argument list to select the procedure unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору процедури." -#: parser/parse_func.c:2473 +#: parser/parse_func.c:2474 #, c-format msgid "aggregate name \"%s\" is not unique" msgstr "назва агрегатної функції \"%s\" не є унікальною" -#: parser/parse_func.c:2476 +#: parser/parse_func.c:2477 #, c-format msgid "Specify the argument list to select the aggregate unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору агрегатної функції." -#: parser/parse_func.c:2481 +#: parser/parse_func.c:2482 #, c-format msgid "routine name \"%s\" is not unique" msgstr "назва підпрограми \"%s\" не є унікальною" -#: parser/parse_func.c:2484 +#: parser/parse_func.c:2485 #, c-format msgid "Specify the argument list to select the routine unambiguously." msgstr "Вкажіть список аргументів для однозначного вибору підпрограми." -#: parser/parse_func.c:2539 +#: parser/parse_func.c:2540 msgid "set-returning functions are not allowed in JOIN conditions" msgstr "функції, що повертають множину, не можна застосовувати в умовах групування" -#: parser/parse_func.c:2560 +#: parser/parse_func.c:2561 msgid "set-returning functions are not allowed in policy expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах політики" -#: parser/parse_func.c:2576 +#: parser/parse_func.c:2577 msgid "set-returning functions are not allowed in window definitions" msgstr "функції, що повертають множину, не можна застосовувати у віконних визначеннях" -#: parser/parse_func.c:2613 +#: parser/parse_func.c:2615 msgid "set-returning functions are not allowed in MERGE WHEN conditions" msgstr "функції, які повертають набір, не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_func.c:2617 +#: parser/parse_func.c:2619 msgid "set-returning functions are not allowed in check constraints" msgstr "функції, що повертають множину, не можна застосовувати в обмеженнях Check" -#: parser/parse_func.c:2621 +#: parser/parse_func.c:2623 msgid "set-returning functions are not allowed in DEFAULT expressions" msgstr "функції, що повертають множину, не можна застосовувати у стандартних виразах" -#: parser/parse_func.c:2624 +#: parser/parse_func.c:2626 msgid "set-returning functions are not allowed in index expressions" msgstr "функції, що повертають множину, не можна застосовувати в індексних виразах" -#: parser/parse_func.c:2627 +#: parser/parse_func.c:2629 msgid "set-returning functions are not allowed in index predicates" msgstr "функції, що повертають множину, не можна застосовувати в індексних предикатах" -#: parser/parse_func.c:2630 +#: parser/parse_func.c:2632 msgid "set-returning functions are not allowed in statistics expressions" msgstr "функції, що повертають набори, не можна застосовувати у виразах статистики" -#: parser/parse_func.c:2633 +#: parser/parse_func.c:2635 msgid "set-returning functions are not allowed in transform expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах перетворення" -#: parser/parse_func.c:2636 +#: parser/parse_func.c:2638 msgid "set-returning functions are not allowed in EXECUTE parameters" msgstr "функції, що повертають множину, не можна застосовуватив параметрах виконання" -#: parser/parse_func.c:2639 +#: parser/parse_func.c:2641 msgid "set-returning functions are not allowed in trigger WHEN conditions" msgstr "функції, що повертають множину, не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_func.c:2642 +#: parser/parse_func.c:2644 msgid "set-returning functions are not allowed in partition bound" msgstr "функції, що повертають множину не можна застосовувати в границі секції" -#: parser/parse_func.c:2645 +#: parser/parse_func.c:2647 msgid "set-returning functions are not allowed in partition key expressions" msgstr "функції, що повертають множину, не можна застосовувати у виразах ключа розділення" -#: parser/parse_func.c:2648 +#: parser/parse_func.c:2650 msgid "set-returning functions are not allowed in CALL arguments" msgstr "функції, що повертають множину, не можна застосовувати в аргументах Відеовикликів" -#: parser/parse_func.c:2651 +#: parser/parse_func.c:2653 msgid "set-returning functions are not allowed in COPY FROM WHERE conditions" msgstr "функції, що повертають множину не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_func.c:2654 +#: parser/parse_func.c:2656 msgid "set-returning functions are not allowed in column generation expressions" msgstr "функції, що повертають множину не можна застосовувати у виразах генерації стовпців" -#: parser/parse_merge.c:119 +#: parser/parse_jsontable.c:95 +#, c-format +msgid "Only EMPTY [ ARRAY ] or ERROR is allowed in the top-level ON ERROR clause." +msgstr "" + +#: parser/parse_jsontable.c:189 parser/parse_jsontable.c:203 +#, c-format +msgid "duplicate JSON_TABLE column or path name: %s" +msgstr "" + +#: parser/parse_merge.c:129 #, c-format msgid "WITH RECURSIVE is not supported for MERGE statement" msgstr "WITH RECURSIVE не підтримується для інструкції MERGE" -#: parser/parse_merge.c:161 +#: parser/parse_merge.c:176 #, c-format msgid "unreachable WHEN clause specified after unconditional WHEN clause" msgstr "недосяжна речення WHEN зазначено після безумовного речення WHEN" -#: parser/parse_merge.c:191 -#, c-format -msgid "MERGE is not supported for relations with rules." -msgstr "MERGE не підтримує відношення з правилами." - -#: parser/parse_merge.c:208 +#: parser/parse_merge.c:222 #, c-format msgid "name \"%s\" specified more than once" msgstr "ім'я \"%s\" вказано кілька разів" -#: parser/parse_merge.c:210 +#: parser/parse_merge.c:224 #, c-format msgid "The name is used both as MERGE target table and data source." msgstr "Ім'я вказано одночасно як цільова таблиця та джерело MERGE." -#: parser/parse_node.c:87 +#: parser/parse_node.c:82 #, c-format msgid "target lists can have at most %d entries" msgstr "цільові списки можуть мати максимум %d елементів" -#: parser/parse_oper.c:123 parser/parse_oper.c:690 +#: parser/parse_oper.c:114 parser/parse_oper.c:678 #, c-format msgid "postfix operators are not supported" msgstr "постфіксні оператори не підтримуються" -#: parser/parse_oper.c:130 parser/parse_oper.c:649 utils/adt/regproc.c:509 -#: utils/adt/regproc.c:683 -#, c-format -msgid "operator does not exist: %s" -msgstr "оператор не існує: %s" - -#: parser/parse_oper.c:229 +#: parser/parse_oper.c:217 #, c-format msgid "Use an explicit ordering operator or modify the query." msgstr "Використати явний оператор сортування або змінити запит." -#: parser/parse_oper.c:485 +#: parser/parse_oper.c:473 #, c-format msgid "operator requires run-time type coercion: %s" msgstr "оператор вимагає приведення типів під час виконання: %s" -#: parser/parse_oper.c:641 +#: parser/parse_oper.c:629 #, c-format msgid "operator is not unique: %s" msgstr "оператор не є унікальним: %s" -#: parser/parse_oper.c:643 +#: parser/parse_oper.c:631 #, c-format msgid "Could not choose a best candidate operator. You might need to add explicit type casts." msgstr "Не вдалося вибрати найкращу кандидатуру оператора. Вам, можливо треба додати явні приведення типів." -#: parser/parse_oper.c:652 +#: parser/parse_oper.c:640 #, c-format msgid "No operator matches the given name and argument type. You might need to add an explicit type cast." msgstr "Жодний оператор не відповідає даному імені та типу аргументу. Вам, можливо, треба додати явне приведення типу." -#: parser/parse_oper.c:654 +#: parser/parse_oper.c:642 #, c-format msgid "No operator matches the given name and argument types. You might need to add explicit type casts." msgstr "Жодний оператор не відповідає даному імені та типу аргументу. Вам, можливо, треба додати явні приведення типів." -#: parser/parse_oper.c:714 parser/parse_oper.c:828 -#, c-format -msgid "operator is only a shell: %s" -msgstr "оператор є лише оболонкою: %s" - -#: parser/parse_oper.c:816 +#: parser/parse_oper.c:803 #, c-format msgid "op ANY/ALL (array) requires array on right side" msgstr "op ANY/ALL (масив) вимагає масив справа" -#: parser/parse_oper.c:858 +#: parser/parse_oper.c:844 #, c-format msgid "op ANY/ALL (array) requires operator to yield boolean" msgstr "op ANY/ALL (масив) вимагає оператора для видання логічного типу" -#: parser/parse_oper.c:863 +#: parser/parse_oper.c:849 #, c-format msgid "op ANY/ALL (array) requires operator not to return a set" msgstr "op ANY/ALL (масив) вимагає оператора не для повернення множини" @@ -17860,7 +18365,7 @@ msgstr "op ANY/ALL (масив) вимагає оператора не для п msgid "inconsistent types deduced for parameter $%d" msgstr "для параметру $%d виведені неузгоджені типи" -#: parser/parse_param.c:309 tcop/postgres.c:740 +#: parser/parse_param.c:309 tcop/postgres.c:744 #, c-format msgid "could not determine data type of parameter $%d" msgstr "не вдалося визначити тип даних параметра $%d" @@ -17880,13 +18385,13 @@ msgstr "посилання на таблицю %u неоднозначне" msgid "table name \"%s\" specified more than once" msgstr "ім'я таблиці \"%s\" вказано більше одного разу" -#: parser/parse_relation.c:494 parser/parse_relation.c:3630 -#: parser/parse_relation.c:3639 +#: parser/parse_relation.c:494 parser/parse_relation.c:3633 +#: parser/parse_relation.c:3642 #, c-format msgid "invalid reference to FROM-clause entry for table \"%s\"" msgstr "в елементі речення FROM неприпустиме посилання на таблицю \"%s\"" -#: parser/parse_relation.c:498 parser/parse_relation.c:3641 +#: parser/parse_relation.c:498 parser/parse_relation.c:3644 #, c-format msgid "There is an entry for table \"%s\", but it cannot be referenced from this part of the query." msgstr "Таблиця \"%s\" присутня в запиті, але посилатися на неї з цієї частини запиту не можна." @@ -17912,7 +18417,7 @@ msgid "cannot use system column \"%s\" in MERGE WHEN condition" msgstr "неможливо використати симтемний стовпець \"%s\" в умові MERGE WHEN" #: parser/parse_relation.c:1236 parser/parse_relation.c:1691 -#: parser/parse_relation.c:2388 +#: parser/parse_relation.c:2384 #, c-format msgid "table \"%s\" has %d columns available but %d columns specified" msgstr "таблиця \"%s\" має %d доступних стовпців, але вказано %d стовпців" @@ -17927,157 +18432,157 @@ msgstr "Існує WITH елемент \"%s\" але на нього не мож msgid "Use WITH RECURSIVE, or re-order the WITH items to remove forward references." msgstr "Використовувати WITH RECURSIVE, або перевпорядкувати елементи WITH, щоб видалити попередні посилання." -#: parser/parse_relation.c:1834 +#: parser/parse_relation.c:1833 #, c-format msgid "a column definition list is redundant for a function with OUT parameters" msgstr "список з визначенням стовпців не потрібен для функції з параметрами OUT" -#: parser/parse_relation.c:1840 +#: parser/parse_relation.c:1839 #, c-format msgid "a column definition list is redundant for a function returning a named composite type" msgstr "список з визначенням стовпців не потрібен для функції, яка повертає іменований складений тип" -#: parser/parse_relation.c:1847 +#: parser/parse_relation.c:1846 #, c-format msgid "a column definition list is only allowed for functions returning \"record\"" msgstr "список з визначенням стовпців дозволений лише для функцій, що повертають \"запис\"" -#: parser/parse_relation.c:1858 +#: parser/parse_relation.c:1857 #, c-format msgid "a column definition list is required for functions returning \"record\"" msgstr "список з визначенням стовпців вимагається для функцій, що повертають \"запис\"" -#: parser/parse_relation.c:1895 +#: parser/parse_relation.c:1894 #, c-format msgid "column definition lists can have at most %d entries" msgstr "списки визначень стовпців можуть мати максимум %d елементів" -#: parser/parse_relation.c:1955 +#: parser/parse_relation.c:1954 #, c-format msgid "function \"%s\" in FROM has unsupported return type %s" msgstr "функція \"%s\" у FROM повертає тип, що не підтримується %s" -#: parser/parse_relation.c:1982 parser/parse_relation.c:2068 +#: parser/parse_relation.c:1981 parser/parse_relation.c:2066 #, c-format msgid "functions in FROM can return at most %d columns" msgstr "функції з FROM можуть повертати не більше %d стовпців" -#: parser/parse_relation.c:2098 +#: parser/parse_relation.c:2096 #, c-format msgid "%s function has %d columns available but %d columns specified" msgstr "функція \"%s\" має %d доступних стовпців, але вказано %d стовпців" -#: parser/parse_relation.c:2180 +#: parser/parse_relation.c:2177 #, c-format msgid "VALUES lists \"%s\" have %d columns available but %d columns specified" msgstr "VALUES списки \"%s\" мають %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_relation.c:2246 +#: parser/parse_relation.c:2242 #, c-format msgid "joins can have at most %d columns" msgstr "з'єднання можуть мати максимум %d стовпців" -#: parser/parse_relation.c:2271 +#: parser/parse_relation.c:2267 #, c-format msgid "join expression \"%s\" has %d columns available but %d columns specified" msgstr "вираз з'єднання \"%s\" має %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_relation.c:2361 +#: parser/parse_relation.c:2357 #, c-format msgid "WITH query \"%s\" does not have a RETURNING clause" msgstr "WITH запит \"%s\" не має речення RETURNING" -#: parser/parse_relation.c:3632 +#: parser/parse_relation.c:3635 #, c-format msgid "Perhaps you meant to reference the table alias \"%s\"." msgstr "Можливо, малося на увазі посилання на псевдонім таблиці \"%s\"." -#: parser/parse_relation.c:3644 +#: parser/parse_relation.c:3647 #, c-format msgid "To reference that table, you must mark this subquery with LATERAL." msgstr "Щоб використати цю таблицю, вам потрібно позначити цей підзапит як LATERAL." -#: parser/parse_relation.c:3650 +#: parser/parse_relation.c:3653 #, c-format msgid "missing FROM-clause entry for table \"%s\"" msgstr "таблиця \"%s\" відсутня в реченні FROM" -#: parser/parse_relation.c:3690 +#: parser/parse_relation.c:3693 #, c-format msgid "There are columns named \"%s\", but they are in tables that cannot be referenced from this part of the query." msgstr "Є стовпці з назвою \"%s\", але вони знаходяться в таблицях, на які не можна посилатися з цієї частини запиту." -#: parser/parse_relation.c:3692 +#: parser/parse_relation.c:3695 #, c-format msgid "Try using a table-qualified name." msgstr "Спробуй використати повне ім'я включно з таблицею." -#: parser/parse_relation.c:3700 +#: parser/parse_relation.c:3703 #, c-format msgid "There is a column named \"%s\" in table \"%s\", but it cannot be referenced from this part of the query." msgstr "Є стовпець з іменем \"%s\" в таблиці \"%s\", але на нього не можна посилатись з цієї частини запиту." -#: parser/parse_relation.c:3703 +#: parser/parse_relation.c:3706 #, c-format msgid "To reference that column, you must mark this subquery with LATERAL." msgstr "Щоб використати цей стовпець, вам потрібно позначити цей підзапит як LATERAL." -#: parser/parse_relation.c:3705 +#: parser/parse_relation.c:3708 #, c-format msgid "To reference that column, you must use a table-qualified name." msgstr "Щоб посилатися на цей стовпець, ви повинні використовувати повне ім'я включно з таблицею." -#: parser/parse_relation.c:3725 +#: parser/parse_relation.c:3728 #, c-format msgid "Perhaps you meant to reference the column \"%s.%s\"." msgstr "Можливо, передбачалось посилання на стовпець \"%s.%s\"." -#: parser/parse_relation.c:3739 +#: parser/parse_relation.c:3742 #, 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:481 parser/parse_target.c:796 +#: parser/parse_target.c:480 parser/parse_target.c:795 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "призначити значення системному стовпцю \"%s\" не можна" -#: parser/parse_target.c:509 +#: parser/parse_target.c:508 #, c-format msgid "cannot set an array element to DEFAULT" msgstr "елементу масива не можна встановити значення DEFAULT" -#: parser/parse_target.c:514 +#: parser/parse_target.c:513 #, c-format msgid "cannot set a subfield to DEFAULT" msgstr "підполю не можна встановити значення DEFAULT" -#: parser/parse_target.c:588 +#: parser/parse_target.c:587 #, c-format msgid "column \"%s\" is of type %s but expression is of type %s" msgstr "стовпець \"%s\" має тип %s, а вираз %s" -#: parser/parse_target.c:780 +#: parser/parse_target.c:779 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because its type %s is not a composite type" msgstr "призначити значення полю \"%s\" стовпця \"%s\" не можна, тому, що тип %s не є складеним типом" -#: parser/parse_target.c:789 +#: parser/parse_target.c:788 #, c-format msgid "cannot assign to field \"%s\" of column \"%s\" because there is no such column in data type %s" msgstr "призначити значення полю \"%s\" стовпця \"%s\" не можна, тому, що в типі даних %s немає такого стовпця" -#: parser/parse_target.c:869 +#: parser/parse_target.c:877 #, c-format msgid "subscripted assignment to \"%s\" requires type %s but expression is of type %s" msgstr "індексоване присвоєння \"%s\" вимагає тип %s, але вираз має тип %s" -#: parser/parse_target.c:879 +#: parser/parse_target.c:887 #, c-format msgid "subfield \"%s\" is of type %s but expression is of type %s" msgstr "підполе \"%s\" має тип %s, але вираз має тип %s" -#: parser/parse_target.c:1314 +#: parser/parse_target.c:1327 #, c-format msgid "SELECT * with no tables specified is not valid" msgstr "SELECT * повинен посилатись на таблиці" @@ -18097,8 +18602,8 @@ msgstr "неправильне посилання %%TYPE (занадто баг msgid "type reference %s converted to %s" msgstr "посилання на тип %s перетворене на тип %s" -#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:395 -#: utils/cache/typcache.c:450 +#: parser/parse_type.c:278 parser/parse_type.c:813 utils/cache/typcache.c:397 +#: utils/cache/typcache.c:452 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" є лише оболонкою" @@ -18118,330 +18623,330 @@ msgstr "модифікатором типу повинна бути звичай msgid "invalid type name \"%s\"" msgstr "невірне ім'я типу \"%s\"" -#: parser/parse_utilcmd.c:264 +#: parser/parse_utilcmd.c:263 #, c-format msgid "cannot create partitioned table as inheritance child" msgstr "створити секціоновану таблицю в якості нащадка не можна" -#: parser/parse_utilcmd.c:589 +#: parser/parse_utilcmd.c:475 +#, c-format +msgid "cannot set logged status of a temporary sequence" +msgstr "" + +#: parser/parse_utilcmd.c:611 #, c-format msgid "array of serial is not implemented" msgstr "масиви послідовності не реалізовані" -#: parser/parse_utilcmd.c:668 parser/parse_utilcmd.c:680 -#: parser/parse_utilcmd.c:739 +#: parser/parse_utilcmd.c:690 parser/parse_utilcmd.c:702 +#: parser/parse_utilcmd.c:761 #, c-format msgid "conflicting NULL/NOT NULL declarations for column \"%s\" of table \"%s\"" msgstr "несумісні оголошення NULL/NOT NULL для стовпця \"%s\" таблиці \"%s\"" -#: parser/parse_utilcmd.c:692 +#: parser/parse_utilcmd.c:714 #, c-format msgid "multiple default values specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано декілька значень за замовчуванням" -#: parser/parse_utilcmd.c:709 +#: parser/parse_utilcmd.c:731 #, c-format msgid "identity columns are not supported on typed tables" msgstr "ідентифікаційні стовпці не підтримуються в типізованих таблицях" -#: parser/parse_utilcmd.c:713 +#: parser/parse_utilcmd.c:735 #, c-format msgid "identity columns are not supported on partitions" msgstr "ідентифікаційні стовпці не підтримуються з секціями" -#: parser/parse_utilcmd.c:722 +#: parser/parse_utilcmd.c:744 #, c-format msgid "multiple identity specifications for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" властивість identity вказана неодноразово" -#: parser/parse_utilcmd.c:752 +#: parser/parse_utilcmd.c:774 #, c-format msgid "generated columns are not supported on typed tables" msgstr "згенеровані стовпці не підтримуються в типізованих таблицях" -#: parser/parse_utilcmd.c:756 +#: parser/parse_utilcmd.c:778 #, c-format msgid "multiple generation clauses specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано декілька речень генерації" -#: parser/parse_utilcmd.c:774 parser/parse_utilcmd.c:889 +#: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:911 #, c-format msgid "primary key constraints are not supported on foreign tables" msgstr "обмеження первинного ключа для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:783 parser/parse_utilcmd.c:899 +#: parser/parse_utilcmd.c:805 parser/parse_utilcmd.c:921 #, c-format msgid "unique constraints are not supported on foreign tables" msgstr "обмеження унікальності для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:828 +#: parser/parse_utilcmd.c:850 #, c-format msgid "both default and identity specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано значення за замовчуванням і властивість identity" -#: parser/parse_utilcmd.c:836 +#: parser/parse_utilcmd.c:858 #, c-format msgid "both default and generation expression specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано вираз за замовчуванням і вираз генерації" -#: parser/parse_utilcmd.c:844 +#: parser/parse_utilcmd.c:866 #, c-format msgid "both identity and generation expression specified for column \"%s\" of table \"%s\"" msgstr "для стовпця \"%s\" таблиці \"%s\" вказано вираз ідентичності і вираз генерації" -#: parser/parse_utilcmd.c:909 +#: parser/parse_utilcmd.c:931 #, c-format msgid "exclusion constraints are not supported on foreign tables" msgstr "обмеження-виключення для сторонніх таблиць не підтримуються" -#: parser/parse_utilcmd.c:915 -#, c-format -msgid "exclusion constraints are not supported on partitioned tables" -msgstr "обмеження-виключення для секціонованих таблиць не підтримуються" - -#: parser/parse_utilcmd.c:980 +#: parser/parse_utilcmd.c:996 #, c-format msgid "LIKE is not supported for creating foreign tables" msgstr "LIKE не підтримується при створенні сторонніх таблиць" -#: parser/parse_utilcmd.c:993 +#: parser/parse_utilcmd.c:1009 #, c-format msgid "relation \"%s\" is invalid in LIKE clause" msgstr "невірше відношення \"%s\" в реченні LIKE" -#: parser/parse_utilcmd.c:1750 parser/parse_utilcmd.c:1858 +#: parser/parse_utilcmd.c:1736 parser/parse_utilcmd.c:1844 #, c-format msgid "Index \"%s\" contains a whole-row table reference." msgstr "Індекс \"%s\" містить посилання на таблицю на весь рядок." -#: parser/parse_utilcmd.c:2245 +#: parser/parse_utilcmd.c:2242 #, c-format msgid "cannot use an existing index in CREATE TABLE" msgstr "у CREATE TABLE не можна використовувати існуючий індекс" -#: parser/parse_utilcmd.c:2265 +#: parser/parse_utilcmd.c:2262 #, c-format msgid "index \"%s\" is already associated with a constraint" msgstr "індекс \"%s\" вже пов'язаний з обмеженням" -#: parser/parse_utilcmd.c:2286 +#: parser/parse_utilcmd.c:2283 #, c-format msgid "\"%s\" is not a unique index" msgstr "\"%s\" не є унікальним індексом" -#: parser/parse_utilcmd.c:2287 parser/parse_utilcmd.c:2294 -#: parser/parse_utilcmd.c:2301 parser/parse_utilcmd.c:2378 +#: parser/parse_utilcmd.c:2284 parser/parse_utilcmd.c:2291 +#: parser/parse_utilcmd.c:2298 parser/parse_utilcmd.c:2375 #, c-format msgid "Cannot create a primary key or unique constraint using such an index." msgstr "Створити первинний ключ або обмеження унікальності, використовуючи такий індекс, не можна." -#: parser/parse_utilcmd.c:2293 +#: parser/parse_utilcmd.c:2290 #, c-format msgid "index \"%s\" contains expressions" msgstr "індекс \"%s\" містить вирази" -#: parser/parse_utilcmd.c:2300 +#: parser/parse_utilcmd.c:2297 #, c-format msgid "\"%s\" is a partial index" msgstr "\"%s\" є частковим індексом" -#: parser/parse_utilcmd.c:2312 +#: parser/parse_utilcmd.c:2309 #, c-format msgid "\"%s\" is a deferrable index" msgstr "\"%s\" є індексом, що відкладається" -#: parser/parse_utilcmd.c:2313 +#: parser/parse_utilcmd.c:2310 #, c-format msgid "Cannot create a non-deferrable constraint using a deferrable index." msgstr "Створити обмеження, що не відкладається, використовуючи індекс, що відкладається, не можна." -#: parser/parse_utilcmd.c:2377 +#: parser/parse_utilcmd.c:2374 #, c-format msgid "index \"%s\" column number %d does not have default sorting behavior" msgstr "індекс \"%s\" номер стовпця %d не має поведінки сортування за замовчуванням" -#: parser/parse_utilcmd.c:2534 +#: parser/parse_utilcmd.c:2531 #, c-format msgid "column \"%s\" appears twice in primary key constraint" msgstr "стовпець \"%s\" з'являється двічі в обмеженні первинного ключа" -#: parser/parse_utilcmd.c:2540 +#: parser/parse_utilcmd.c:2537 #, c-format msgid "column \"%s\" appears twice in unique constraint" msgstr "стовпець \"%s\" з'являється двічі в обмеженні унікальності" -#: parser/parse_utilcmd.c:2887 +#: parser/parse_utilcmd.c:2871 #, c-format msgid "index expressions and predicates can refer only to the table being indexed" msgstr "індекс-вирази й предикати можуть посилатись лише на індексовану таблицю" -#: parser/parse_utilcmd.c:2959 +#: parser/parse_utilcmd.c:2943 #, c-format msgid "statistics expressions can refer only to the table being referenced" msgstr "вирази статистики можуть посилатися лише на таблицю, для якої збирається статистика" -#: parser/parse_utilcmd.c:3002 +#: parser/parse_utilcmd.c:2986 #, c-format msgid "rules on materialized views are not supported" msgstr "правила для матеріалізованих подань не підтримуються" -#: parser/parse_utilcmd.c:3062 +#: parser/parse_utilcmd.c:3046 #, c-format msgid "rule WHERE condition cannot contain references to other relations" msgstr "в умовах WHERE правила не можуть містити посилання на інші зв'язки" -#: parser/parse_utilcmd.c:3134 +#: parser/parse_utilcmd.c:3118 #, c-format msgid "rules with WHERE conditions can only have SELECT, INSERT, UPDATE, or DELETE actions" msgstr "правила з умовами WHERE можуть мати лише дії SELECT, INSERT, UPDATE або DELETE" -#: parser/parse_utilcmd.c:3152 parser/parse_utilcmd.c:3253 -#: rewrite/rewriteHandler.c:539 rewrite/rewriteManip.c:1087 +#: parser/parse_utilcmd.c:3136 parser/parse_utilcmd.c:3237 +#: rewrite/rewriteHandler.c:538 rewrite/rewriteManip.c:1095 #, c-format msgid "conditional UNION/INTERSECT/EXCEPT statements are not implemented" msgstr "умовні оператори UNION/INTERSECT/EXCEPT не реалізовані" -#: parser/parse_utilcmd.c:3170 +#: parser/parse_utilcmd.c:3154 #, c-format msgid "ON SELECT rule cannot use OLD" msgstr "у правилі ON SELECT не можна використовувати OLD" -#: parser/parse_utilcmd.c:3174 +#: parser/parse_utilcmd.c:3158 #, c-format msgid "ON SELECT rule cannot use NEW" msgstr "у правилі ON SELECT не можна використовувати NEW" -#: parser/parse_utilcmd.c:3183 +#: parser/parse_utilcmd.c:3167 #, c-format msgid "ON INSERT rule cannot use OLD" msgstr "у правилі ON INSERT не можна використовувати OLD" -#: parser/parse_utilcmd.c:3189 +#: parser/parse_utilcmd.c:3173 #, c-format msgid "ON DELETE rule cannot use NEW" msgstr "у правилі ON DELETE не можна використовувати NEW" -#: parser/parse_utilcmd.c:3217 +#: parser/parse_utilcmd.c:3201 #, c-format msgid "cannot refer to OLD within WITH query" msgstr "у запиті WITH не можна посилатися на OLD" -#: parser/parse_utilcmd.c:3224 +#: parser/parse_utilcmd.c:3208 #, c-format msgid "cannot refer to NEW within WITH query" msgstr "у запиті WITH не можна посилатися на NEW" -#: parser/parse_utilcmd.c:3676 +#: parser/parse_utilcmd.c:3664 #, c-format msgid "misplaced DEFERRABLE clause" msgstr "речення DEFERRABLE розташовано неправильно" -#: parser/parse_utilcmd.c:3681 parser/parse_utilcmd.c:3696 +#: parser/parse_utilcmd.c:3669 parser/parse_utilcmd.c:3684 #, c-format msgid "multiple DEFERRABLE/NOT DEFERRABLE clauses not allowed" msgstr "декілька речень DEFERRABLE/NOT DEFERRABLE не допускаються" -#: parser/parse_utilcmd.c:3691 +#: parser/parse_utilcmd.c:3679 #, c-format msgid "misplaced NOT DEFERRABLE clause" msgstr "речення NOT DEFERRABLE розташовано неправильно" -#: parser/parse_utilcmd.c:3704 parser/parse_utilcmd.c:3730 gram.y:5990 +#: parser/parse_utilcmd.c:3692 parser/parse_utilcmd.c:3718 gram.y:6114 #, c-format msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" msgstr "обмеження, оголошене як INITIALLY DEFERRED, повинно бути оголошене як DEFERRABLE" -#: parser/parse_utilcmd.c:3712 +#: parser/parse_utilcmd.c:3700 #, c-format msgid "misplaced INITIALLY DEFERRED clause" msgstr "речення INITIALLY DEFERRED розташовано неправильно" -#: parser/parse_utilcmd.c:3717 parser/parse_utilcmd.c:3743 +#: parser/parse_utilcmd.c:3705 parser/parse_utilcmd.c:3731 #, c-format msgid "multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed" msgstr "декілька речень INITIALLY IMMEDIATE/DEFERRED не допускаються" -#: parser/parse_utilcmd.c:3738 +#: parser/parse_utilcmd.c:3726 #, c-format msgid "misplaced INITIALLY IMMEDIATE clause" msgstr "речення INITIALLY IMMEDIATE розташовано неправильно" -#: parser/parse_utilcmd.c:3931 +#: parser/parse_utilcmd.c:3919 #, c-format msgid "CREATE specifies a schema (%s) different from the one being created (%s)" msgstr "В CREATE вказана схема (%s), яка відрізняється від створюваної (%s)" -#: parser/parse_utilcmd.c:3966 +#: parser/parse_utilcmd.c:3954 #, c-format msgid "\"%s\" is not a partitioned table" msgstr "\"%s\" не є секціонованою таблицею" -#: parser/parse_utilcmd.c:3973 +#: parser/parse_utilcmd.c:3961 #, c-format msgid "table \"%s\" is not partitioned" msgstr "таблиця \"%s\" не є секційною" -#: parser/parse_utilcmd.c:3980 +#: parser/parse_utilcmd.c:3968 #, c-format msgid "index \"%s\" is not partitioned" msgstr "індекс \"%s\" не є секціонованим" -#: parser/parse_utilcmd.c:4020 +#: parser/parse_utilcmd.c:4008 #, c-format msgid "a hash-partitioned table may not have a default partition" msgstr "у геш-секціонованій таблиці не може бути розділу за замовчуванням" -#: parser/parse_utilcmd.c:4037 +#: parser/parse_utilcmd.c:4025 #, c-format msgid "invalid bound specification for a hash partition" msgstr "неприпустима вказівка границі для геш-секції" -#: parser/parse_utilcmd.c:4043 partitioning/partbounds.c:4803 +#: parser/parse_utilcmd.c:4031 partitioning/partbounds.c:4802 #, c-format msgid "modulus for hash partition must be an integer value greater than zero" msgstr "модуль для хеш-секції повинен бути цілим числом більшим за нуль" -#: parser/parse_utilcmd.c:4050 partitioning/partbounds.c:4811 +#: parser/parse_utilcmd.c:4038 partitioning/partbounds.c:4810 #, c-format msgid "remainder for hash partition must be less than modulus" msgstr "залишок для геш-секції повинен бути меньшим, ніж модуль" -#: parser/parse_utilcmd.c:4063 +#: parser/parse_utilcmd.c:4051 #, c-format msgid "invalid bound specification for a list partition" msgstr "нерипустима вказівка границі для секції по списку" -#: parser/parse_utilcmd.c:4116 +#: parser/parse_utilcmd.c:4104 #, c-format msgid "invalid bound specification for a range partition" msgstr "неприпустима вказівка границі для секції діапазону" -#: parser/parse_utilcmd.c:4122 +#: parser/parse_utilcmd.c:4110 #, c-format msgid "FROM must specify exactly one value per partitioning column" msgstr "В FROM повинно вказуватися лише одне значення для стовпця секціонування" -#: parser/parse_utilcmd.c:4126 +#: parser/parse_utilcmd.c:4114 #, c-format msgid "TO must specify exactly one value per partitioning column" msgstr "В TO повинно вказуватися лише одне значення для стовпця секціонування" -#: parser/parse_utilcmd.c:4240 +#: parser/parse_utilcmd.c:4228 #, c-format msgid "cannot specify NULL in range bound" msgstr "вказати NULL в діапазоні границі не можна" -#: parser/parse_utilcmd.c:4289 +#: parser/parse_utilcmd.c:4277 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за кожною границею MAXVALUE повинні бути лише границі MAXVALUE" -#: parser/parse_utilcmd.c:4296 +#: parser/parse_utilcmd.c:4284 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за кожною границею MINVALUE повинні бути лише границі MINVALUE" -#: parser/parse_utilcmd.c:4339 +#: parser/parse_utilcmd.c:4327 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "вказане значення не можна привести до типу %s для стовпця \"%s\"" @@ -18454,12 +18959,12 @@ msgstr "UESCAPE повинен відстежуватись простим лі msgid "invalid Unicode escape character" msgstr "неприпустимий символ спеціального коду Unicode" -#: parser/parser.c:347 scan.l:1390 +#: parser/parser.c:347 scan.l:1393 #, c-format msgid "invalid Unicode escape value" msgstr "неприпустиме значення спеціального коду Unicode" -#: parser/parser.c:494 utils/adt/varlena.c:6505 scan.l:701 +#: parser/parser.c:494 utils/adt/varlena.c:6640 scan.l:716 #, c-format msgid "invalid Unicode escape" msgstr "неприпустимий спеціальний код Unicode" @@ -18469,8 +18974,8 @@ msgstr "неприпустимий спеціальний код Unicode" msgid "Unicode escapes must be \\XXXX or \\+XXXXXX." msgstr "Спеціальні символи Unicode повинні бути \\XXXX або \\+XXXXXX." -#: parser/parser.c:523 utils/adt/varlena.c:6530 scan.l:662 scan.l:678 -#: scan.l:694 +#: parser/parser.c:523 utils/adt/varlena.c:6665 scan.l:677 scan.l:693 +#: scan.l:709 #, c-format msgid "invalid Unicode surrogate pair" msgstr "неприпустима сурогатна пара Unicode" @@ -18480,146 +18985,140 @@ msgstr "неприпустима сурогатна пара Unicode" msgid "identifier \"%s\" will be truncated to \"%.*s\"" msgstr "ідентифікатор \"%s\" буде скорочено до \"%.*s\"" -#: partitioning/partbounds.c:2921 +#: partitioning/partbounds.c:2920 #, c-format msgid "partition \"%s\" conflicts with existing default partition \"%s\"" msgstr "існують конфлікти між розділом \"%s\" та існуючим розділом за замовчуванням \"%s\"" -#: partitioning/partbounds.c:2973 partitioning/partbounds.c:2992 -#: partitioning/partbounds.c:3014 +#: partitioning/partbounds.c:2972 partitioning/partbounds.c:2991 +#: partitioning/partbounds.c:3013 #, c-format msgid "every hash partition modulus must be a factor of the next larger modulus" msgstr "модуль кожної геш-секції повинен бути дільником наступних більших модулів" -#: partitioning/partbounds.c:2974 partitioning/partbounds.c:3015 +#: partitioning/partbounds.c:2973 partitioning/partbounds.c:3014 #, c-format msgid "The new modulus %d is not a factor of %d, the modulus of existing partition \"%s\"." msgstr "Новий модуль %d не є дільником %d, поточний модуль розділу \"%s\"." -#: partitioning/partbounds.c:2993 +#: partitioning/partbounds.c:2992 #, c-format msgid "The new modulus %d is not divisible by %d, the modulus of existing partition \"%s\"." msgstr "Новий модуль %d не ділиться на %d, поточний модуль розділу \"%s\"." -#: partitioning/partbounds.c:3128 +#: partitioning/partbounds.c:3127 #, c-format msgid "empty range bound specified for partition \"%s\"" msgstr "для секції \"%s\" вказані границі, які утворюють пустий діапазон" -#: partitioning/partbounds.c:3130 +#: partitioning/partbounds.c:3129 #, c-format msgid "Specified lower bound %s is greater than or equal to upper bound %s." msgstr "Вказана нижня границя %s більша або дорівнює верхній границі %s." -#: partitioning/partbounds.c:3238 +#: partitioning/partbounds.c:3237 #, c-format msgid "partition \"%s\" would overlap partition \"%s\"" msgstr "секція \"%s\" буде перекривати секцію \"%s\"" -#: partitioning/partbounds.c:3355 +#: partitioning/partbounds.c:3354 #, c-format msgid "skipped scanning foreign table \"%s\" which is a partition of default partition \"%s\"" msgstr "пропущено сканування зовнішньої таблиці \"%s\" яка є секцією секції за замовчуванням \"%s\"" -#: partitioning/partbounds.c:4807 +#: partitioning/partbounds.c:4806 #, c-format msgid "remainder for hash partition must be an integer value greater than or equal to zero" msgstr "залишок для хеш-секції повинен бути цілим числом більшим або рівним нулю" -#: partitioning/partbounds.c:4831 +#: partitioning/partbounds.c:4830 #, c-format msgid "\"%s\" is not a hash partitioned table" msgstr "\"%s\" не є геш-секціонованою таблицею" -#: partitioning/partbounds.c:4842 partitioning/partbounds.c:4959 +#: partitioning/partbounds.c:4841 partitioning/partbounds.c:4958 #, c-format msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" msgstr "кількість секціонованих стовпців (%d) не дорівнює кількості наданих ключів секціонування (%d)" -#: partitioning/partbounds.c:4864 +#: partitioning/partbounds.c:4863 #, c-format msgid "column %d of the partition key has type %s, but supplied value is of type %s" msgstr "стовпець %d ключа секціонування має тип %s, але для нього вказане значення типу %s" -#: partitioning/partbounds.c:4896 +#: partitioning/partbounds.c:4895 #, c-format msgid "column %d of the partition key has type \"%s\", but supplied value is of type \"%s\"" msgstr "стовпець %d ключа секціонування має тип \"%s\", але для нього вказано значення типу \"%s\"" -#: port/pg_sema.c:209 port/pg_shmem.c:708 port/posix_sema.c:209 -#: port/sysv_sema.c:323 port/sysv_shmem.c:708 +#: port/pg_sema.c:209 port/pg_shmem.c:717 port/posix_sema.c:209 +#: port/sysv_sema.c:323 port/sysv_shmem.c:717 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "не вдалося встановити дані каталогу \"%s\": %m" -#: port/pg_shmem.c:223 port/sysv_shmem.c:223 +#: port/pg_shmem.c:224 port/sysv_shmem.c:224 #, c-format msgid "could not create shared memory segment: %m" msgstr "не вдалося створити сегмент спільної пам'яті: %m" -#: port/pg_shmem.c:224 port/sysv_shmem.c:224 +#: port/pg_shmem.c:225 port/sysv_shmem.c:225 #, c-format msgid "Failed system call was shmget(key=%lu, size=%zu, 0%o)." msgstr "Помилка в системному виклику shmget (ключ=%lu, розмір=%zu, 0%o)." -#: port/pg_shmem.c:228 port/sysv_shmem.c:228 +#: port/pg_shmem.c:229 port/sysv_shmem.c:229 #, 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" +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" "The PostgreSQL documentation contains more information about shared memory configuration." -msgstr "" -"Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMMAX вашого ядра, або можливо що він менший за параметр SHMMIN вашого ядра.\n" +msgstr "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMMAX вашого ядра, або можливо що він менший за параметр SHMMIN вашого ядра.\n" "Більше інформації про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:235 port/sysv_shmem.c:235 +#: port/pg_shmem.c:236 port/sysv_shmem.c:236 #, 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" +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" "The PostgreSQL documentation contains more information about shared memory configuration." -msgstr "" -"Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMALL вашого ядра. Можливо, вам слід переналаштувати ваше ядро, збільшивши параметр SHMALL.\n" +msgstr "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує параметр SHMALL вашого ядра. Можливо, вам слід переналаштувати ваше ядро, збільшивши параметр SHMALL.\n" "Більше інформації про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:241 port/sysv_shmem.c:241 +#: port/pg_shmem.c:242 port/sysv_shmem.c:242 #, 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" +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" "The PostgreSQL documentation contains more information about shared memory configuration." -msgstr "" -"Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все, були зайняті всі доступні ID спільної пам'яті, в такому випадку вам потрібно підвищити параметр SHMMNI у вашому ядрі, або перевищено граничний розмір спільної пам'яті.\n" +msgstr "Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все, були зайняті всі доступні ID спільної пам'яті, в такому випадку вам потрібно підвищити параметр SHMMNI у вашому ядрі, або перевищено граничний розмір спільної пам'яті.\n" "Детальна інформація про налаштування спільної пам'яті міститься в інструкції PostgreSQL." -#: port/pg_shmem.c:583 port/sysv_shmem.c:583 port/win32_shmem.c:641 +#: port/pg_shmem.c:584 port/sysv_shmem.c:584 port/win32_shmem.c:646 #, c-format -msgid "huge_page_size must be 0 on this platform." -msgstr "huge_page_size повинен бути 0 на цій платформі." +msgid "\"huge_page_size\" must be 0 on this platform." +msgstr "" -#: port/pg_shmem.c:646 port/sysv_shmem.c:646 +#: port/pg_shmem.c:655 port/sysv_shmem.c:655 #, c-format msgid "could not map anonymous shared memory: %m" msgstr "не вдалося показати анонімну спільну пам'ять: %m" -#: port/pg_shmem.c:648 port/sysv_shmem.c:648 +#: port/pg_shmem.c:657 port/sysv_shmem.c:657 #, 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 "Ця помилка зазвичай означає, що запит PostgreSQL для сегменту спільної пам'яті перевищує об'єм доступної фізичної або віртуальної пам'яті або гігантских сторінок. Щоб зменшити розмір запиту (поточний: %zu байтів), зменшіть використання спільної пам'яті PostgreSQL, можливо зменшив shared_buffers або max_connections." +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 "" -#: port/pg_shmem.c:716 port/sysv_shmem.c:716 +#: port/pg_shmem.c:725 port/sysv_shmem.c:725 #, c-format msgid "huge pages not supported on this platform" msgstr "величезні сторінки на цій плтаформі не підтримуються" -#: port/pg_shmem.c:723 port/sysv_shmem.c:723 +#: port/pg_shmem.c:732 port/sysv_shmem.c:732 #, c-format -msgid "huge pages not supported with the current shared_memory_type setting" -msgstr "величезні сторінки не підтримуються з поточним параметром shared_memory_type" +msgid "huge pages not supported with the current \"shared_memory_type\" setting" +msgstr "" -#: port/pg_shmem.c:783 port/sysv_shmem.c:783 utils/init/miscinit.c:1358 +#: port/pg_shmem.c:798 port/sysv_shmem.c:798 utils/init/miscinit.c:1347 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "раніше виділений блок спільної пам'яті (ключ %lu, ідентифікатор %lu) все ще використовується" -#: port/pg_shmem.c:786 port/sysv_shmem.c:786 utils/init/miscinit.c:1360 +#: port/pg_shmem.c:801 port/sysv_shmem.c:801 utils/init/miscinit.c:1349 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Припинити будь-які старі серверні процеси, пов'язані з каталогом даних \"%s\"." @@ -18636,12 +19135,9 @@ msgstr "Помилка системного виклику semget(%lu, %d, 0%o). #: port/sysv_sema.c:125 #, c-format -msgid "" -"This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n" +msgid "This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its \"max_connections\" parameter.\n" "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL." msgstr "" -"Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все перевищено ліміт числа встановлених семафорів (SEMMNI), або загального числа семафорів (SEMMNS) в системі. Вам потрібно збільшити відповідний параметр ядра. Інший спосіб - зменшити споживання PostgreSQL в семафорах, зменшивши параметр max_connections.\n" -"Більше інформації про налаштування вашої системи для PostgreSQL міститься в інструкції PostgreSQL." #: port/sysv_sema.c:155 #, c-format @@ -18768,97 +19264,87 @@ msgstr "Помилка в системному виклику DuplicateHandle." msgid "Failed system call was MapViewOfFileEx." msgstr "Помилка в системному виклику MapViewOfFileEx." -#: postmaster/autovacuum.c:417 -#, c-format -msgid "could not fork autovacuum launcher process: %m" -msgstr "не вдалося породити процес запуску автоочистки: %m" - -#: postmaster/autovacuum.c:764 +#: postmaster/autovacuum.c:686 #, c-format msgid "autovacuum worker took too long to start; canceled" msgstr "старт процеса автовакуума зайняв забагато часу; скасовано" -#: postmaster/autovacuum.c:1489 -#, c-format -msgid "could not fork autovacuum worker process: %m" -msgstr "не вдалося породити робочий процес автоочитски: %m" - -#: postmaster/autovacuum.c:2334 +#: postmaster/autovacuum.c:2199 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "автоочистка: видалення застарілої тимчасової таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2570 +#: postmaster/autovacuum.c:2435 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "автоматична очистка таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2573 +#: postmaster/autovacuum.c:2438 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "автоматичний аналіз таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2767 +#: postmaster/autovacuum.c:2632 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "обробка робочого введення для відношення \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3381 +#: postmaster/autovacuum.c:3250 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "автоочистку не запущено через неправильну конфігурацію" -#: postmaster/autovacuum.c:3382 +#: postmaster/autovacuum.c:3251 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Активувати параметр \"track_counts\"." -#: postmaster/bgworker.c:259 +#: postmaster/bgworker.c:260 #, c-format msgid "inconsistent background worker state (max_worker_processes=%d, total_slots=%d)" msgstr "несумісний стан фонового процесу (max_worker_processes=%d, total_slots=%d)" -#: postmaster/bgworker.c:669 +#: postmaster/bgworker.c:651 #, c-format msgid "background worker \"%s\": background workers without shared memory access are not supported" msgstr "фоновий виконавець \"%s\": фонові виконавці без доступу до спільної пам'яті не підтримуються" -#: postmaster/bgworker.c:680 +#: postmaster/bgworker.c:662 #, c-format msgid "background worker \"%s\": cannot request database access if starting at postmaster start" msgstr "фоновий виконавець \"%s\": не може запитувати доступ до бази даних, якщо його запущено при старті адміністратора поштового сервісу" -#: postmaster/bgworker.c:694 +#: postmaster/bgworker.c:676 #, c-format msgid "background worker \"%s\": invalid restart interval" msgstr "фоновий виконавець \"%s\": неприпустимий інтервал перезавантаження" -#: postmaster/bgworker.c:709 +#: postmaster/bgworker.c:691 #, c-format msgid "background worker \"%s\": parallel workers may not be configured for restart" msgstr "фоновий виконавець\"%s\": паралельні виконавці не можуть бути налаштовані для перезавантаження" -#: postmaster/bgworker.c:733 tcop/postgres.c:3255 +#: postmaster/bgworker.c:715 tcop/postgres.c:3312 #, c-format msgid "terminating background worker \"%s\" due to administrator command" msgstr "завершення фонового процесу \"%s\" по команді адміністратора" -#: postmaster/bgworker.c:890 +#: postmaster/bgworker.c:888 #, c-format -msgid "background worker \"%s\": must be registered in shared_preload_libraries" -msgstr "фоновий процес \"%s\": повинен бути зареєстрований в shared_preload_libraries" +msgid "background worker \"%s\": must be registered in \"shared_preload_libraries\"" +msgstr "" -#: postmaster/bgworker.c:902 +#: postmaster/bgworker.c:911 #, c-format msgid "background worker \"%s\": only dynamic background workers can request notification" msgstr "фоновий процес \"%s\": лише динамічні фонові процеси можуть запитувати сповіщення" -#: postmaster/bgworker.c:917 +#: postmaster/bgworker.c:926 #, c-format msgid "too many background workers" msgstr "занадто багато фонових процесів" -#: postmaster/bgworker.c:918 +#: postmaster/bgworker.c:927 #, 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." @@ -18867,12 +19353,12 @@ msgstr[1] "Максимальне можливе число фонових пр msgstr[2] "Максимальне можливе число фонових процесів при поточних параметрах: %d." msgstr[3] "Максимальне можливе число фонових процесів при поточних параметрах: %d." -#: postmaster/bgworker.c:922 +#: postmaster/bgworker.c:931 postmaster/checkpointer.c:445 #, c-format -msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgstr "Можливо, слід збільшити параметр конфігурації \"max_worker_processes\"." +msgid "Consider increasing the configuration parameter \"%s\"." +msgstr "" -#: postmaster/checkpointer.c:431 +#: postmaster/checkpointer.c:441 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" @@ -18881,854 +19367,769 @@ msgstr[1] "контрольні точки відбуваються занадт msgstr[2] "контрольні точки відбуваються занадто часто (через %d сек.)" msgstr[3] "контрольні точки відбуваються занадто часто (через %d сек.)" -#: postmaster/checkpointer.c:435 -#, c-format -msgid "Consider increasing the configuration parameter \"max_wal_size\"." -msgstr "Можливо, слід збільшити параметр конфігурації \"max_wal_size\"." - -#: postmaster/checkpointer.c:1059 +#: postmaster/checkpointer.c:1067 #, c-format msgid "checkpoint request failed" msgstr "збій при запиті контрольної точки" -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1068 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Для деталей, зверніться до останніх повідомлень в протоколі серверу." -#: postmaster/pgarch.c:416 +#: postmaster/launch_backend.c:381 #, c-format -msgid "archive_mode enabled, yet archiving is not configured" -msgstr "archive_mode активовано, але архівування не налаштовано" +msgid "could not execute server process \"%s\": %m" +msgstr "не вдалося виконати серверні процеси \"%s\":%m" -#: postmaster/pgarch.c:438 +#: postmaster/launch_backend.c:434 #, c-format -msgid "removed orphan archive status file \"%s\"" -msgstr "видалено залишковий файл статусу архіву \"%s\"" +msgid "could not create backend parameter file mapping: error code %lu" +msgstr "не вдалося створити відображення файлу параметру внутрішнього сервера: код помилки %lu" + +#: postmaster/launch_backend.c:442 +#, c-format +msgid "could not map backend parameter memory: error code %lu" +msgstr "не вдалося відобразити пам'ять параметру внутрішнього сервера: код помилки %lu" + +#: postmaster/launch_backend.c:459 +#, c-format +msgid "subprocess command line too long" +msgstr "командний рядок підпроцесу занадто довгий" + +#: postmaster/launch_backend.c:477 +#, c-format +msgid "CreateProcess() call failed: %m (error code %lu)" +msgstr "помилка виклику CreateProcess(): %m (код помилки %lu)" + +#: postmaster/launch_backend.c:504 +#, c-format +msgid "could not unmap view of backend parameter file: error code %lu" +msgstr "не вдалося вимкнути відображення файлу параметру внутрішнього сервера: код помилки %lu" + +#: postmaster/launch_backend.c:508 +#, c-format +msgid "could not close handle to backend parameter file: error code %lu" +msgstr "не вдалося закрити покажчик файлу параметру внутрішнього сервера: код помилки %lu" + +#: postmaster/launch_backend.c:530 +#, c-format +msgid "giving up after too many tries to reserve shared memory" +msgstr "кількість повторних спроб резервування спільної пам'яті досягло межі" + +#: postmaster/launch_backend.c:531 +#, c-format +msgid "This might be caused by ASLR or antivirus software." +msgstr "Це може бути викликано антивірусним програмним забезпеченням або ASLR." + +#: postmaster/launch_backend.c:834 +#, c-format +msgid "could not duplicate socket %d for use in backend: error code %d" +msgstr "не вдалося продублювати сокет %d для використання: код помилки %d" + +#: postmaster/launch_backend.c:866 +#, c-format +msgid "could not create inherited socket: error code %d\n" +msgstr "не вдалося створити успадкований сокет: код помилки %d\n" + +#: postmaster/launch_backend.c:895 +#, c-format +msgid "could not open backend variables file \"%s\": %m\n" +msgstr "" + +#: postmaster/launch_backend.c:901 +#, c-format +msgid "could not read from backend variables file \"%s\": %m\n" +msgstr "" -#: postmaster/pgarch.c:448 +#: postmaster/launch_backend.c:912 +#, c-format +msgid "could not read startup data from backend variables file \"%s\": %m\n" +msgstr "" + +#: postmaster/launch_backend.c:924 +#, c-format +msgid "could not remove file \"%s\": %m\n" +msgstr "" + +#: postmaster/launch_backend.c:940 +#, c-format +msgid "could not map view of backend variables: error code %lu\n" +msgstr "не вдалося відобразити файл серверних змінних: код помилки %lu\n" + +#: postmaster/launch_backend.c:959 +#, c-format +msgid "could not unmap view of backend variables: error code %lu\n" +msgstr "не вдалося вимкнути відображення файлу серверних змінних: код помилки %lu\n" + +#: postmaster/launch_backend.c:966 +#, c-format +msgid "could not close handle to backend parameter variables: error code %lu\n" +msgstr "не вдалося закрити покажчик файлу серверних змінних: код помилки %lu\n" + +#: postmaster/pgarch.c:428 +#, c-format +msgid "\"archive_mode\" enabled, yet archiving is not configured" +msgstr "" + +#: postmaster/pgarch.c:452 +#, c-format +msgid "removed orphan archive status file \"%s\"" +msgstr "видалено залишковий файл статусу архіву \"%s\"" + +#: postmaster/pgarch.c:462 #, c-format msgid "removal of orphan archive status file \"%s\" failed too many times, will try again later" msgstr "видалення залишкового файлу статусу архіву \"%s\" не вдалося занадто багато разів, пізніже спробуємо знову" -#: postmaster/pgarch.c:484 +#: postmaster/pgarch.c:498 #, c-format msgid "archiving write-ahead log file \"%s\" failed too many times, will try again later" msgstr "архівація файлу випереджувальног журналювання \"%s\" не виконана багато разів, наступна спроба буде пізніже" -#: postmaster/pgarch.c:791 postmaster/pgarch.c:830 +#: postmaster/pgarch.c:879 postmaster/pgarch.c:918 #, c-format -msgid "both archive_command and archive_library set" -msgstr "встановлено команду archive_command і archive_library" +msgid "both \"archive_command\" and \"archive_library\" set" +msgstr "" -#: postmaster/pgarch.c:792 postmaster/pgarch.c:831 +#: postmaster/pgarch.c:880 postmaster/pgarch.c:919 #, c-format -msgid "Only one of archive_command, archive_library may be set." -msgstr "Можливо встановити лише одну з archive_command, archive_library." +msgid "Only one of \"archive_command\", \"archive_library\" may be set." +msgstr "" -#: postmaster/pgarch.c:809 +#: postmaster/pgarch.c:897 #, c-format msgid "restarting archiver process because value of \"archive_library\" was changed" msgstr "перезапуск процесу архіватора, оскільки значення \"archive_library\" було змінено" -#: postmaster/pgarch.c:846 +#: postmaster/pgarch.c:934 #, c-format msgid "archive modules have to define the symbol %s" msgstr "архівні модулі повинні визначити символ %s" -#: postmaster/pgarch.c:852 +#: postmaster/pgarch.c:940 #, c-format msgid "archive modules must register an archive callback" msgstr "модулі архіву повинні реєструвати зворотний виклик архіву" -#: postmaster/postmaster.c:759 +#: postmaster/postmaster.c:661 #, c-format msgid "%s: invalid argument for option -f: \"%s\"\n" msgstr "%s: неприпустимий аргумент для параметру -f: \"%s\"\n" -#: postmaster/postmaster.c:832 +#: postmaster/postmaster.c:734 #, c-format msgid "%s: invalid argument for option -t: \"%s\"\n" msgstr "%s: неприпустимий аргумент для параметру -t: \"%s\"\n" -#: postmaster/postmaster.c:855 +#: postmaster/postmaster.c:757 #, c-format msgid "%s: invalid argument: \"%s\"\n" msgstr "%s: неприпустимий аргумент: \"%s\"\n" -#: postmaster/postmaster.c:923 +#: postmaster/postmaster.c:825 #, c-format -msgid "%s: superuser_reserved_connections (%d) plus reserved_connections (%d) must be less than max_connections (%d)\n" -msgstr "%s: superuser_reserved_connections (%d) плюс reserved_connections (%d) має бути меншим за max_connections (%d)\n" +msgid "%s: \"superuser_reserved_connections\" (%d) plus \"reserved_connections\" (%d) must be less than \"max_connections\" (%d)\n" +msgstr "" -#: postmaster/postmaster.c:931 +#: postmaster/postmaster.c:833 #, c-format -msgid "WAL archival cannot be enabled when wal_level is \"minimal\"" -msgstr "WAL архіватор не може бути активованим, коли wal_level \"мінімальний\"" +msgid "WAL archival cannot be enabled when \"wal_level\" is \"minimal\"" +msgstr "" -#: postmaster/postmaster.c:934 +#: postmaster/postmaster.c:836 #, c-format -msgid "WAL streaming (max_wal_senders > 0) requires wal_level \"replica\" or \"logical\"" -msgstr "Потокове передавання WAL (max_wal_senders > 0) вимагає wal_level \"replica\" або \"logical\"" +msgid "WAL streaming (\"max_wal_senders\" > 0) requires \"wal_level\" to be \"replica\" or \"logical\"" +msgstr "Потокове передавання WAL (\"max_wal_senders\" > 0) вимагає \"wal_level\" \"replica\" або \"logical\"" -#: postmaster/postmaster.c:942 +#: postmaster/postmaster.c:839 +#, c-format +msgid "WAL cannot be summarized when \"wal_level\" is \"minimal\"" +msgstr "неможливо підсумувати WAL, якщо \"wal_level\" дорівнє \"minimal\"" + +#: postmaster/postmaster.c:847 #, c-format msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: неприпустимі таблиці маркерів часу, будь-ласка виправіть\n" -#: postmaster/postmaster.c:1099 +#: postmaster/postmaster.c:1004 #, c-format msgid "could not create I/O completion port for child queue" msgstr "не вдалося створити завершений порт вводу-виводу для черги дітей" -#: postmaster/postmaster.c:1175 +#: postmaster/postmaster.c:1069 #, c-format msgid "ending log output to stderr" msgstr "завершення запису виводу Stderr" -#: postmaster/postmaster.c:1176 +#: postmaster/postmaster.c:1070 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "В майбутньому запис виведення буде записуватися в призначення \"%s\"." -#: postmaster/postmaster.c:1187 +#: postmaster/postmaster.c:1081 #, c-format msgid "starting %s" msgstr "початок %s" -#: postmaster/postmaster.c:1239 +#: postmaster/postmaster.c:1143 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "не вдалося створити сокет прослуховування для \"%s\"" -#: postmaster/postmaster.c:1245 +#: postmaster/postmaster.c:1149 #, c-format msgid "could not create any TCP/IP sockets" msgstr "не вдалося створити TCP/IP сокети" -#: postmaster/postmaster.c:1277 +#: postmaster/postmaster.c:1181 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "Помилка DNSServiceRegister(): код помилки %ld" -#: postmaster/postmaster.c:1328 +#: postmaster/postmaster.c:1234 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "не вдалося створити Unix-domain сокет в каталозі \"%s\"" -#: postmaster/postmaster.c:1334 +#: postmaster/postmaster.c:1240 #, c-format msgid "could not create any Unix-domain sockets" msgstr "не вдалося створити Unix-domain сокети" -#: postmaster/postmaster.c:1345 +#: postmaster/postmaster.c:1251 #, c-format msgid "no socket created for listening" msgstr "не створено жодного сокету для прослуховування" -#: postmaster/postmaster.c:1376 +#: postmaster/postmaster.c:1282 #, c-format -msgid "%s: could not change permissions of external PID file \"%s\": %s\n" -msgstr "%s: не вдалося змінити дозволи зовнішнього PID файлу \"%s\": %s\n" +msgid "%s: could not change permissions of external PID file \"%s\": %m\n" +msgstr "%s: не вдалося змінити дозволи зовнішнього PID файлу \"%s\": %m\n" -#: postmaster/postmaster.c:1380 +#: postmaster/postmaster.c:1286 #, c-format -msgid "%s: could not write external PID file \"%s\": %s\n" -msgstr "%s: не вдалося записати зовнішній PID файл \"%s\": %s\n" +msgid "%s: could not write external PID file \"%s\": %m\n" +msgstr "%s: не вдалося записати зовнішній PID файл \"%s\": %m\n" #. translator: %s is a configuration file -#: postmaster/postmaster.c:1408 utils/init/postinit.c:221 +#: postmaster/postmaster.c:1314 utils/init/postinit.c:221 #, c-format msgid "could not load %s" msgstr "не вдалося завантажити %s" -#: postmaster/postmaster.c:1434 +#: postmaster/postmaster.c:1340 #, c-format msgid "postmaster became multithreaded during startup" msgstr "адміністратор поштового сервера став багатопотоковим під час запуску" -#: postmaster/postmaster.c:1435 +#: postmaster/postmaster.c:1341 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Встановити в змінній середовища LC_ALL дійісну локаль." -#: postmaster/postmaster.c:1536 +#: postmaster/postmaster.c:1440 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: не вдалося знайти свій власний шлях для виконання" -#: postmaster/postmaster.c:1543 +#: postmaster/postmaster.c:1447 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: не вдалося знайти відповідний postgres файл, що виконується" -#: postmaster/postmaster.c:1566 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1470 utils/misc/tzparser.c:341 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "Це може означати неповне встановлення PostgreSQL, або те, що файл \"%s\" було переміщено з його правильного розташування." -#: postmaster/postmaster.c:1593 +#: postmaster/postmaster.c:1497 #, c-format -msgid "" -"%s: could not find the database system\n" +msgid "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" -"but could not open file \"%s\": %s\n" -msgstr "" -"%s: не вдалося знайти систему бази даних\n" +"but could not open file \"%s\": %m\n" +msgstr "%s: не вдалося знайти систему бази даних\n" "Очікувалося знайти її у каталозі \"%s\",\n" -"але не вдалося відкрити файл \"%s\": %s\n" +"але не вдалося відкрити файл \"%s\": %m\n" #. translator: %s is SIGKILL or SIGABRT -#: postmaster/postmaster.c:1890 +#: postmaster/postmaster.c:1787 #, c-format msgid "issuing %s to recalcitrant children" msgstr "надсилання %s непокірливим дітям" -#: postmaster/postmaster.c:1912 +#: postmaster/postmaster.c:1809 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "виконується негайне припинення роботи через неприпустимий файл блокування каталогу даних" -#: postmaster/postmaster.c:1987 postmaster/postmaster.c:2015 -#, c-format -msgid "incomplete startup packet" -msgstr "неповний стартовий пакет" - -#: postmaster/postmaster.c:1999 postmaster/postmaster.c:2032 -#, c-format -msgid "invalid length of startup packet" -msgstr "неприпустима довжина стартового пакету" - -#: postmaster/postmaster.c:2061 -#, c-format -msgid "failed to send SSL negotiation response: %m" -msgstr "помилка надсилання протоколу SSL в процесі відповіді зв'язування: %m" - -#: postmaster/postmaster.c:2079 -#, c-format -msgid "received unencrypted data after SSL request" -msgstr "отримані незашифровані дані після запиту SSL" - -#: postmaster/postmaster.c:2080 postmaster/postmaster.c:2124 -#, c-format -msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." -msgstr "Це може бути або помилкою клієнтського програмного забезпечення, або доказом спроби техносферної атаки." - -#: postmaster/postmaster.c:2105 -#, c-format -msgid "failed to send GSSAPI negotiation response: %m" -msgstr "помилка надсилання GSSAPI в процесі відповіді зв'язування: %m" - -#: postmaster/postmaster.c:2123 -#, c-format -msgid "received unencrypted data after GSSAPI encryption request" -msgstr "отримані незашифровані дані після запиту шифрування GSSAPI" - -#: postmaster/postmaster.c:2147 -#, 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:2214 -#, c-format -msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." -msgstr "Дійсні значення: \"false\", 0, \"true\", 1, \"database\"." - -#: postmaster/postmaster.c:2255 -#, c-format -msgid "invalid startup packet layout: expected terminator as last byte" -msgstr "неприпустима структура стартового пакету: останнім байтом очікувався термінатор" - -#: postmaster/postmaster.c:2272 -#, c-format -msgid "no PostgreSQL user name specified in startup packet" -msgstr "не вказано жодного ім'я користувача PostgreSQL у стартовому пакеті" - -#: postmaster/postmaster.c:2336 -#, c-format -msgid "the database system is starting up" -msgstr "система бази даних запускається" - -#: postmaster/postmaster.c:2342 -#, c-format -msgid "the database system is not yet accepting connections" -msgstr "система бази даних ще не приймає підключення" - -#: postmaster/postmaster.c:2343 -#, c-format -msgid "Consistent recovery state has not been yet reached." -msgstr "Узгодженого стану відновлення ще не досягнуто." - -#: postmaster/postmaster.c:2347 -#, c-format -msgid "the database system is not accepting connections" -msgstr "система бази даних не приймає підключення" - -#: postmaster/postmaster.c:2348 -#, c-format -msgid "Hot standby mode is disabled." -msgstr "Режим Hot standby вимкнений." - -#: postmaster/postmaster.c:2353 -#, c-format -msgid "the database system is shutting down" -msgstr "система бази даних завершує роботу" - -#: postmaster/postmaster.c:2358 -#, c-format -msgid "the database system is in recovery mode" -msgstr "система бази даних у режимі відновлення" - -#: postmaster/postmaster.c:2363 storage/ipc/procarray.c:491 -#: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:353 -#, c-format -msgid "sorry, too many clients already" -msgstr "вибачте, вже забагато клієнтів" - -#: postmaster/postmaster.c:2450 +#: postmaster/postmaster.c:1872 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильний ключ в запиті скасування процесу %d" -#: postmaster/postmaster.c:2462 +#: postmaster/postmaster.c:1884 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d в запиті на скасування не відповідає жодному процесу" -#: postmaster/postmaster.c:2729 +#: postmaster/postmaster.c:2105 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "отримано SIGHUP, поновлення файлів конфігурацій" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2753 postmaster/postmaster.c:2757 +#: postmaster/postmaster.c:2133 postmaster/postmaster.c:2137 #, c-format msgid "%s was not reloaded" msgstr "%s не було перезавантажено" -#: postmaster/postmaster.c:2767 +#: postmaster/postmaster.c:2147 #, c-format msgid "SSL configuration was not reloaded" msgstr "Конфігурація протоколу SSL не була перезавантажена" -#: postmaster/postmaster.c:2857 +#: postmaster/postmaster.c:2233 #, c-format msgid "received smart shutdown request" msgstr "отримано smart запит на завершення роботи" -#: postmaster/postmaster.c:2898 +#: postmaster/postmaster.c:2274 #, c-format msgid "received fast shutdown request" msgstr "отримано швидкий запит на завершення роботи" -#: postmaster/postmaster.c:2916 +#: postmaster/postmaster.c:2292 #, c-format msgid "aborting any active transactions" msgstr "переривання будь-яких активних транзакцій" -#: postmaster/postmaster.c:2940 +#: postmaster/postmaster.c:2316 #, c-format msgid "received immediate shutdown request" msgstr "отримано запит на негайне завершення роботи" -#: postmaster/postmaster.c:3016 +#: postmaster/postmaster.c:2388 #, c-format msgid "shutdown at recovery target" msgstr "завершення роботи при відновленні мети" -#: postmaster/postmaster.c:3034 postmaster/postmaster.c:3070 +#: postmaster/postmaster.c:2406 postmaster/postmaster.c:2442 msgid "startup process" msgstr "стартовий процес" -#: postmaster/postmaster.c:3037 +#: postmaster/postmaster.c:2409 #, c-format msgid "aborting startup due to startup process failure" msgstr "переривання запуску через помилку в стартовому процесі" -#: postmaster/postmaster.c:3110 +#: postmaster/postmaster.c:2484 #, c-format msgid "database system is ready to accept connections" msgstr "система бази даних готова до отримання підключення" -#: postmaster/postmaster.c:3131 +#: postmaster/postmaster.c:2505 msgid "background writer process" msgstr "процес фонового запису" -#: postmaster/postmaster.c:3178 +#: postmaster/postmaster.c:2552 msgid "checkpointer process" msgstr "процес контрольних точок" -#: postmaster/postmaster.c:3194 +#: postmaster/postmaster.c:2568 msgid "WAL writer process" msgstr "Процес запису WAL" -#: postmaster/postmaster.c:3209 +#: postmaster/postmaster.c:2583 msgid "WAL receiver process" msgstr "Процес отримання WAL" -#: postmaster/postmaster.c:3224 +#: postmaster/postmaster.c:2597 +msgid "WAL summarizer process" +msgstr "Процес підсумовування WAL" + +#: postmaster/postmaster.c:2612 msgid "autovacuum launcher process" msgstr "процес запуску автоочистки" -#: postmaster/postmaster.c:3242 +#: postmaster/postmaster.c:2630 msgid "archiver process" msgstr "процес архівації" -#: postmaster/postmaster.c:3255 +#: postmaster/postmaster.c:2643 msgid "system logger process" msgstr "процес системного журналювання" -#: postmaster/postmaster.c:3312 +#: postmaster/postmaster.c:2660 +msgid "slot sync worker process" +msgstr "робочий процес синхронізації слоту" + +#: postmaster/postmaster.c:2716 #, c-format msgid "background worker \"%s\"" msgstr "фоновий виконавець \"%s\"" -#: postmaster/postmaster.c:3391 postmaster/postmaster.c:3411 -#: postmaster/postmaster.c:3418 postmaster/postmaster.c:3436 +#: postmaster/postmaster.c:2795 postmaster/postmaster.c:2815 +#: postmaster/postmaster.c:2822 postmaster/postmaster.c:2840 msgid "server process" msgstr "процес сервера" -#: postmaster/postmaster.c:3490 +#: postmaster/postmaster.c:2894 #, 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:3665 +#: postmaster/postmaster.c:3081 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершився з кодом виходу %d" -#: postmaster/postmaster.c:3667 postmaster/postmaster.c:3679 -#: postmaster/postmaster.c:3689 postmaster/postmaster.c:3700 +#: postmaster/postmaster.c:3083 postmaster/postmaster.c:3095 +#: postmaster/postmaster.c:3105 postmaster/postmaster.c:3116 #, 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:3676 +#: postmaster/postmaster.c:3092 #, 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:3686 +#: postmaster/postmaster.c:3102 #, 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:3698 +#: postmaster/postmaster.c:3114 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) завершився з нерозпізнаним статусом %d" -#: postmaster/postmaster.c:3906 +#: postmaster/postmaster.c:3330 #, c-format msgid "abnormal database system shutdown" msgstr "ненормальне завершення роботи системи бази даних" -#: postmaster/postmaster.c:3932 +#: postmaster/postmaster.c:3356 #, c-format msgid "shutting down due to startup process failure" msgstr "завершення роботи через помилку в стартовому процесі" -#: postmaster/postmaster.c:3938 +#: postmaster/postmaster.c:3362 #, c-format -msgid "shutting down because restart_after_crash is off" -msgstr "завершення роботи, тому що restart_after_crash вимкнено" +msgid "shutting down because \"restart_after_crash\" is off" +msgstr "завершення роботи, тому що \"restart_after_crash\" вимкнено" -#: postmaster/postmaster.c:3950 +#: postmaster/postmaster.c:3374 #, c-format msgid "all server processes terminated; reinitializing" msgstr "усі серверні процеси перервано; повторна ініціалізація" -#: postmaster/postmaster.c:4144 postmaster/postmaster.c:5462 -#: postmaster/postmaster.c:5860 +#: postmaster/postmaster.c:3573 postmaster/postmaster.c:3983 +#: postmaster/postmaster.c:4372 #, c-format msgid "could not generate random cancel key" msgstr "не вдалося згенерувати випадковий ключ скасування" -#: postmaster/postmaster.c:4206 +#: postmaster/postmaster.c:3606 #, c-format msgid "could not fork new process for connection: %m" msgstr "не вдалося породити нові процеси для з'єднання: %m" -#: postmaster/postmaster.c:4248 +#: postmaster/postmaster.c:3648 msgid "could not fork new process for connection: " msgstr "не вдалося породити нові процеси для з'єднання: " -#: postmaster/postmaster.c:4354 -#, c-format -msgid "connection received: host=%s port=%s" -msgstr "з'єднання отримано: хост=%s порт=%s" - -#: postmaster/postmaster.c:4359 -#, c-format -msgid "connection received: host=%s" -msgstr "з'єднання отримано: хост=%s" - -#: postmaster/postmaster.c:4596 -#, c-format -msgid "could not execute server process \"%s\": %m" -msgstr "не вдалося виконати серверні процеси \"%s\":%m" - -#: postmaster/postmaster.c:4654 -#, c-format -msgid "could not create backend parameter file mapping: error code %lu" -msgstr "не вдалося створити відображення файлу параметру внутрішнього сервера: код помилки %lu" - -#: postmaster/postmaster.c:4663 -#, c-format -msgid "could not map backend parameter memory: error code %lu" -msgstr "не вдалося відобразити пам'ять параметру внутрішнього сервера: код помилки %lu" - -#: postmaster/postmaster.c:4690 -#, c-format -msgid "subprocess command line too long" -msgstr "командний рядок підпроцесу занадто довгий" - -#: postmaster/postmaster.c:4708 -#, c-format -msgid "CreateProcess() call failed: %m (error code %lu)" -msgstr "помилка виклику CreateProcess(): %m (код помилки %lu)" - -#: postmaster/postmaster.c:4735 -#, c-format -msgid "could not unmap view of backend parameter file: error code %lu" -msgstr "не вдалося вимкнути відображення файлу параметру внутрішнього сервера: код помилки %lu" - -#: postmaster/postmaster.c:4739 -#, c-format -msgid "could not close handle to backend parameter file: error code %lu" -msgstr "не вдалося закрити покажчик файлу параметру внутрішнього сервера: код помилки %lu" - -#: postmaster/postmaster.c:4761 -#, c-format -msgid "giving up after too many tries to reserve shared memory" -msgstr "кількість повторних спроб резервування спільної пам'яті досягло межі" - -#: postmaster/postmaster.c:4762 -#, c-format -msgid "This might be caused by ASLR or antivirus software." -msgstr "Це може бути викликано антивірусним програмним забезпеченням або ASLR." - -#: postmaster/postmaster.c:4935 -#, c-format -msgid "SSL configuration could not be loaded in child process" -msgstr "Не вдалося завантажити конфігурацію SSL в дочірній процес" - -#: postmaster/postmaster.c:5060 +#: postmaster/postmaster.c:3682 #, c-format msgid "Please report this to <%s>." msgstr "Будь-ласка повідомте про це <%s>." -#: postmaster/postmaster.c:5128 +#: postmaster/postmaster.c:3750 #, c-format msgid "database system is ready to accept read-only connections" msgstr "система бази даних готова до отримання підключення лише для читання" -#: postmaster/postmaster.c:5386 -#, c-format -msgid "could not fork startup process: %m" -msgstr "не вдалося породити стартовий процес: %m" - -#: postmaster/postmaster.c:5390 -#, c-format -msgid "could not fork archiver process: %m" -msgstr "не вдалося породити процес архіватора: %m" - -#: postmaster/postmaster.c:5394 -#, c-format -msgid "could not fork background writer process: %m" -msgstr "не вдалося породити фоновий процес запису: %m" - -#: postmaster/postmaster.c:5398 -#, c-format -msgid "could not fork checkpointer process: %m" -msgstr "не вдалося породити процес контрольних точок: %m" - -#: postmaster/postmaster.c:5402 -#, c-format -msgid "could not fork WAL writer process: %m" -msgstr "не вдалося породити процес запису WAL: %m" - -#: postmaster/postmaster.c:5406 +#: postmaster/postmaster.c:3933 #, c-format -msgid "could not fork WAL receiver process: %m" -msgstr "не вдалося породити процес отримання WAL: %m" +msgid "could not fork \"%s\" process: %m" +msgstr "не вдалося породити процес \"%s\": %m" -#: postmaster/postmaster.c:5410 -#, c-format -msgid "could not fork process: %m" -msgstr "не вдалося породити процес: %m" - -#: postmaster/postmaster.c:5611 postmaster/postmaster.c:5638 +#: postmaster/postmaster.c:4171 postmaster/postmaster.c:4205 #, c-format msgid "database connection requirement not indicated during registration" msgstr "під час реєстрації не вказувалося, що вимагається підключення до бази даних" -#: postmaster/postmaster.c:5622 postmaster/postmaster.c:5649 +#: postmaster/postmaster.c:4181 postmaster/postmaster.c:4215 #, c-format msgid "invalid processing mode in background worker" msgstr "неприпустимий режим обробки у фоновому записі" -#: postmaster/postmaster.c:5734 -#, c-format -msgid "could not fork worker process: %m" -msgstr "не вдалося породити процес запису: %m" - -#: postmaster/postmaster.c:5846 -#, c-format -msgid "no slot available for new worker process" -msgstr "немає доступного слоту для нового робочого процесу" - -#: postmaster/postmaster.c:6177 -#, c-format -msgid "could not duplicate socket %d for use in backend: error code %d" -msgstr "не вдалося продублювати сокет %d для використання: код помилки %d" - -#: postmaster/postmaster.c:6209 -#, c-format -msgid "could not create inherited socket: error code %d\n" -msgstr "не вдалося створити успадкований сокет: код помилки %d\n" - -#: postmaster/postmaster.c:6238 +#: postmaster/postmaster.c:4275 #, c-format -msgid "could not open backend variables file \"%s\": %s\n" -msgstr "не вдалося відкрити внутрішні змінні файли \"%s\": %s\n" +msgid "could not fork background worker process: %m" +msgstr "не вдалося породити фоновий процес: %m" -#: postmaster/postmaster.c:6245 +#: postmaster/postmaster.c:4358 #, c-format -msgid "could not read from backend variables file \"%s\": %s\n" -msgstr "не вдалося прочитати внутрішні змінні файли \"%s\": %s\n" +msgid "no slot available for new background worker process" +msgstr "немає доступного слоту для нового фонового робочого процесу" -#: postmaster/postmaster.c:6254 -#, c-format -msgid "could not remove file \"%s\": %s\n" -msgstr "не вдалося видалити файл \"%s\": %s\n" - -#: postmaster/postmaster.c:6271 -#, c-format -msgid "could not map view of backend variables: error code %lu\n" -msgstr "не вдалося відобразити файл серверних змінних: код помилки %lu\n" - -#: postmaster/postmaster.c:6280 -#, c-format -msgid "could not unmap view of backend variables: error code %lu\n" -msgstr "не вдалося вимкнути відображення файлу серверних змінних: код помилки %lu\n" - -#: postmaster/postmaster.c:6287 -#, c-format -msgid "could not close handle to backend parameter variables: error code %lu\n" -msgstr "не вдалося закрити покажчик файлу серверних змінних: код помилки %lu\n" - -#: postmaster/postmaster.c:6446 +#: postmaster/postmaster.c:4621 #, c-format msgid "could not read exit code for process\n" msgstr "не вдалося прочитати код завершення процесу\n" -#: postmaster/postmaster.c:6488 +#: postmaster/postmaster.c:4663 #, c-format msgid "could not post child completion status\n" msgstr "не вдалося надіслати статус завершення нащадка\n" -#: postmaster/syslogger.c:501 postmaster/syslogger.c:1222 +#: postmaster/syslogger.c:529 postmaster/syslogger.c:1173 #, c-format msgid "could not read from logger pipe: %m" msgstr "не вдалося прочитати з каналу журналювання: %m" -#: postmaster/syslogger.c:598 postmaster/syslogger.c:612 +#: postmaster/syslogger.c:629 postmaster/syslogger.c:643 #, c-format msgid "could not create pipe for syslog: %m" msgstr "не вдалося створити канал для syslog: %m" -#: postmaster/syslogger.c:677 +#: postmaster/syslogger.c:712 #, c-format msgid "could not fork system logger: %m" msgstr "не вдалося породити процес системного журналювання: %m" -#: postmaster/syslogger.c:713 +#: postmaster/syslogger.c:731 #, c-format msgid "redirecting log output to logging collector process" msgstr "переспрямовування виводу в протокол прочесу збирача протоколів" -#: postmaster/syslogger.c:714 +#: postmaster/syslogger.c:732 #, c-format msgid "Future log output will appear in directory \"%s\"." msgstr "Наступні протоколи будуть виводитись в каталог \"%s\"." -#: postmaster/syslogger.c:722 +#: postmaster/syslogger.c:740 #, c-format msgid "could not redirect stdout: %m" msgstr "не вдалося переспрямувати stdout: %m" -#: postmaster/syslogger.c:727 postmaster/syslogger.c:744 +#: postmaster/syslogger.c:745 postmaster/syslogger.c:762 #, c-format msgid "could not redirect stderr: %m" msgstr "не вдалося переспрямувати stderr: %m" -#: postmaster/syslogger.c:1177 +#: postmaster/syslogger.c:1128 #, c-format -msgid "could not write to log file: %s\n" -msgstr "не вдалося записати до файлу протокола: %s\n" +msgid "could not write to log file: %m\n" +msgstr "не вдалося записати до файлу протокола: %m\n" -#: postmaster/syslogger.c:1295 +#: postmaster/syslogger.c:1246 #, c-format msgid "could not open log file \"%s\": %m" msgstr "не вдалося відкрити файл журналу \"%s\": %m" -#: postmaster/syslogger.c:1385 +#: postmaster/syslogger.c:1336 #, c-format msgid "disabling automatic rotation (use SIGHUP to re-enable)" msgstr "вимкнення автоматичного обертання (щоб повторно ввімкнути, використайте SIGHUP)" -#: regex/regc_pg_locale.c:242 +#: postmaster/walsummarizer.c:740 +#, c-format +msgid "WAL summarization is not progressing" +msgstr "Підбиття підсумків WAL не просувається" + +#: postmaster/walsummarizer.c:741 +#, c-format +msgid "Summarization is needed through %X/%X, but is stuck at %X/%X on disk and %X/%X in memory." +msgstr "Підсумовування потрібне через %X/%X, але воно застрягло на %X/%X на диску та %X/%X у пам'яті." + +#: postmaster/walsummarizer.c:755 +#, c-format +msgid "still waiting for WAL summarization through %X/%X after %ld second" +msgid_plural "still waiting for WAL summarization through %X/%X after %ld seconds" +msgstr[0] "все ще чекає на підбиття підсумків WAL через %X/%X через %ld секунду" +msgstr[1] "все ще чекає на підбиття підсумків WAL через %X/%X через %ld секунди" +msgstr[2] "все ще чекає на підбиття підсумків WAL через %X/%X через %ld секунд" +msgstr[3] "все ще чекає на підбиття підсумків WAL через %X/%X через %ld секунд" + +#: postmaster/walsummarizer.c:760 +#, c-format +msgid "Summarization has reached %X/%X on disk and %X/%X in memory." +msgstr "Підсумок досягнув %X/%X на диску та %X/%X у пам'яті." + +#: postmaster/walsummarizer.c:1000 +#, c-format +msgid "could not find a valid record after %X/%X" +msgstr "не вдалося знайти припустимий запис після %X/%X" + +#: postmaster/walsummarizer.c:1045 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X: %s" +msgstr "не вдалося прочитати WAL з часової шкали %u за адресою %X/%X: %s" + +#: postmaster/walsummarizer.c:1051 +#, c-format +msgid "could not read WAL from timeline %u at %X/%X" +msgstr "не вдалося прочитати WAL з часової шкали %u на %X/%X" + +#: regex/regc_pg_locale.c:244 #, c-format msgid "could not determine which collation to use for regular expression" msgstr "не вдалося визначити які параметри сортування використати для регулярного виразу" -#: regex/regc_pg_locale.c:265 +#: regex/regc_pg_locale.c:262 #, c-format msgid "nondeterministic collations are not supported for regular expressions" msgstr "недетерміновані правила сортування не підтримуються для регулярних виразів" -#: replication/libpqwalreceiver/libpqwalreceiver.c:245 -#: replication/libpqwalreceiver/libpqwalreceiver.c:332 +#: replication/libpqwalreceiver/libpqwalreceiver.c:267 +#: replication/libpqwalreceiver/libpqwalreceiver.c:358 #, c-format msgid "password is required" msgstr "пароль обов'язковий" -#: replication/libpqwalreceiver/libpqwalreceiver.c:246 +#: replication/libpqwalreceiver/libpqwalreceiver.c:268 #, c-format msgid "Non-superuser cannot connect if the server does not request a password." msgstr "Несуперкористувач не може підключитися, якщо сервер не запитує пароль." -#: replication/libpqwalreceiver/libpqwalreceiver.c:247 +#: replication/libpqwalreceiver/libpqwalreceiver.c:269 #, c-format msgid "Target server's authentication method must be changed, or set password_required=false in the subscription parameters." msgstr "Необхідно змінити метод автентифікації цільового сервера або встановити password_required=false у параметрах підписки." -#: replication/libpqwalreceiver/libpqwalreceiver.c:259 +#: replication/libpqwalreceiver/libpqwalreceiver.c:285 #, c-format msgid "could not clear search path: %s" msgstr "не вдалося очистити шлях пошуку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:305 +#: replication/libpqwalreceiver/libpqwalreceiver.c:331 +#: replication/libpqwalreceiver/libpqwalreceiver.c:517 #, c-format msgid "invalid connection string syntax: %s" msgstr "неприпустимий синтаксис рядка підключення: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:333 +#: replication/libpqwalreceiver/libpqwalreceiver.c:359 #, c-format msgid "Non-superusers must provide a password in the connection string." msgstr "Несуперкористувачі повинні вказати пароль для рядка підключення." -#: replication/libpqwalreceiver/libpqwalreceiver.c:360 +#: replication/libpqwalreceiver/libpqwalreceiver.c:386 #, c-format msgid "could not parse connection string: %s" msgstr "не вдалося аналізувати рядок підключення: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:433 +#: replication/libpqwalreceiver/libpqwalreceiver.c:459 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "не вдалося отримати ідентифікатор системи бази даних та ідентифікатор часової шкали з основного серверу: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:449 -#: replication/libpqwalreceiver/libpqwalreceiver.c:692 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:763 #, c-format msgid "invalid response from primary server" msgstr "неприпустима відповідь з основного серверу" -#: replication/libpqwalreceiver/libpqwalreceiver.c:450 +#: replication/libpqwalreceiver/libpqwalreceiver.c:477 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Не вдалося ідентифікувати систему: отримано %d рядків і %d полів, очікувалось %d рядків і %d або більше полів." -#: replication/libpqwalreceiver/libpqwalreceiver.c:535 -#: replication/libpqwalreceiver/libpqwalreceiver.c:542 -#: replication/libpqwalreceiver/libpqwalreceiver.c:572 +#: replication/libpqwalreceiver/libpqwalreceiver.c:606 +#: replication/libpqwalreceiver/libpqwalreceiver.c:613 +#: replication/libpqwalreceiver/libpqwalreceiver.c:643 #, c-format msgid "could not start WAL streaming: %s" msgstr "не вдалося почати потокове передавання WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:596 +#: replication/libpqwalreceiver/libpqwalreceiver.c:667 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не вдалося передати основному серверу повідомлення про кінець передвання: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:619 +#: replication/libpqwalreceiver/libpqwalreceiver.c:690 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неочікуваний набір результатів після кінця передачі" -#: replication/libpqwalreceiver/libpqwalreceiver.c:634 +#: replication/libpqwalreceiver/libpqwalreceiver.c:705 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "помилка при завершенні потокового передавання \"копіювати\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:644 +#: replication/libpqwalreceiver/libpqwalreceiver.c:715 #, c-format msgid "error reading result of streaming command: %s" msgstr "помилка при читанні результату команди потокового передавання: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:653 -#: replication/libpqwalreceiver/libpqwalreceiver.c:889 +#: replication/libpqwalreceiver/libpqwalreceiver.c:724 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неочікуваний результат CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:680 +#: replication/libpqwalreceiver/libpqwalreceiver.c:751 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не вдалося отримати файл історії часової шкали з основного сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:693 +#: replication/libpqwalreceiver/libpqwalreceiver.c:764 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Очікувалося 1 кортеж з 2 поле, отримано %d кортежів з %d полями." -#: replication/libpqwalreceiver/libpqwalreceiver.c:852 -#: replication/libpqwalreceiver/libpqwalreceiver.c:905 -#: replication/libpqwalreceiver/libpqwalreceiver.c:912 +#: replication/libpqwalreceiver/libpqwalreceiver.c:920 +#: replication/libpqwalreceiver/libpqwalreceiver.c:973 +#: replication/libpqwalreceiver/libpqwalreceiver.c:980 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не вдалося отримати дані з WAL потоку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:932 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1000 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не вдалося передати дані потоку WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1024 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1101 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не вдалося створити слот реплікації \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1070 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1140 +#, c-format +msgid "could not alter replication slot \"%s\": %s" +msgstr "не може змінити слот реплікації \"%s\": %s" + +#: replication/libpqwalreceiver/libpqwalreceiver.c:1174 #, c-format msgid "invalid query response" msgstr "неприпустима відповідь на запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1071 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1175 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Очікувалося %d полів, отримано %d полі." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1141 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1245 #, c-format msgid "the query interface requires a database connection" msgstr "інтерфейс запитів вимагає підключення до бази даних" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1172 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1277 msgid "empty query" msgstr "пустий запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1178 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1283 msgid "unexpected pipeline mode" msgstr "неочікуваний режим конвеєра" @@ -19737,189 +20138,205 @@ msgstr "неочікуваний режим конвеєра" msgid "logical replication parallel apply worker for subscription \"%s\" has finished" msgstr "завершено логічну реплікацію паралельного аплікатора для підписки \"%s\"" -#: replication/logical/applyparallelworker.c:825 +#: replication/logical/applyparallelworker.c:822 #, c-format msgid "lost connection to the logical replication apply worker" msgstr "втрачено зв'язок з робочим застосунком логічної реплікації" -#: replication/logical/applyparallelworker.c:1027 -#: replication/logical/applyparallelworker.c:1029 +#: replication/logical/applyparallelworker.c:1024 +#: replication/logical/applyparallelworker.c:1026 msgid "logical replication parallel apply worker" msgstr "застосовуючій робочий процес паралельної реплікації" -#: replication/logical/applyparallelworker.c:1043 +#: replication/logical/applyparallelworker.c:1040 #, c-format msgid "logical replication parallel apply worker exited due to error" msgstr "паралельний робочий додаток логічнаої реплікації завершив роботу через помилку" -#: replication/logical/applyparallelworker.c:1130 -#: replication/logical/applyparallelworker.c:1303 +#: replication/logical/applyparallelworker.c:1127 +#: replication/logical/applyparallelworker.c:1300 #, c-format msgid "lost connection to the logical replication parallel apply worker" msgstr "втрачено зв'язок з паралельним робочим застосунком логічної реплікації" -#: replication/logical/applyparallelworker.c:1183 +#: replication/logical/applyparallelworker.c:1180 #, c-format msgid "could not send data to shared-memory queue" msgstr "не вдалося передати дані в чергу в спільну пам'ять" -#: replication/logical/applyparallelworker.c:1218 +#: replication/logical/applyparallelworker.c:1215 #, c-format msgid "logical replication apply worker will serialize the remaining changes of remote transaction %u to a file" msgstr "застосовуючий процес логічної реплікації буде серіалізувати зміни, що залишилися віддаленою транзакцією %u до файлу" -#: replication/logical/decode.c:180 replication/logical/logical.c:140 +#: replication/logical/decode.c:177 replication/logical/logical.c:141 #, c-format -msgid "logical decoding on standby requires wal_level >= logical on the primary" -msgstr "логічне декодування на standby вимагає wal_level >= logical в основному" +msgid "logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary" +msgstr "логічне декодування на standby вимагає \"wal_level\" >= \"logical\" на основному сервері" -#: replication/logical/launcher.c:331 +#: replication/logical/launcher.c:334 #, c-format msgid "cannot start logical replication workers when max_replication_slots = 0" msgstr "неможливо почати логічні записи реплікацій, коли max_replication_slots = 0" -#: replication/logical/launcher.c:424 +#: replication/logical/launcher.c:427 #, c-format msgid "out of logical replication worker slots" msgstr "недостатньо слотів для процесів логічної реплікації" -#: replication/logical/launcher.c:425 replication/logical/launcher.c:499 -#: replication/slot.c:1297 storage/lmgr/lock.c:964 storage/lmgr/lock.c:1002 -#: storage/lmgr/lock.c:2787 storage/lmgr/lock.c:4172 storage/lmgr/lock.c:4237 -#: storage/lmgr/lock.c:4587 storage/lmgr/predicate.c:2413 -#: storage/lmgr/predicate.c:2428 storage/lmgr/predicate.c:3825 +#: replication/logical/launcher.c:428 replication/logical/launcher.c:514 +#: replication/slot.c:1524 storage/lmgr/lock.c:985 storage/lmgr/lock.c:1023 +#: storage/lmgr/lock.c:2826 storage/lmgr/lock.c:4211 storage/lmgr/lock.c:4276 +#: storage/lmgr/lock.c:4626 storage/lmgr/predicate.c:2464 +#: storage/lmgr/predicate.c:2479 storage/lmgr/predicate.c:3876 #, c-format -msgid "You might need to increase %s." -msgstr "Можливо, вам слід збільшити %s." +msgid "You might need to increase \"%s\"." +msgstr "Можливо, вам слід збільшити \"%s\"." -#: replication/logical/launcher.c:498 +#: replication/logical/launcher.c:513 #, c-format msgid "out of background worker slots" msgstr "недостатньо слотів для фонових робочих процесів" -#: replication/logical/launcher.c:705 +#: replication/logical/launcher.c:720 #, c-format msgid "logical replication worker slot %d is empty, cannot attach" msgstr "слот запису логічної реплікації %d пустий, неможливо підключитися" -#: replication/logical/launcher.c:714 +#: replication/logical/launcher.c:729 #, c-format msgid "logical replication worker slot %d is already used by another worker, cannot attach" msgstr "слот запису логічної реплікації %d вже використовується іншим виконавцем, неможливо підключитися" -#: replication/logical/logical.c:120 +#: replication/logical/logical.c:121 #, c-format -msgid "logical decoding requires wal_level >= logical" -msgstr "логічне декодування вимагає wal_level >= logical" +msgid "logical decoding requires \"wal_level\" >= \"logical\"" +msgstr "логічне декодування вимагає \"wal_level\" >= logical\"" -#: replication/logical/logical.c:125 +#: replication/logical/logical.c:126 #, c-format msgid "logical decoding requires a database connection" msgstr "логічне декодування вимагає підключення до бази даних" -#: replication/logical/logical.c:363 replication/logical/logical.c:517 +#: replication/logical/logical.c:365 replication/logical/logical.c:519 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "неможливо використовувати слот невідповідної реплікації для логічного кодування" -#: replication/logical/logical.c:368 replication/logical/logical.c:522 +#: replication/logical/logical.c:370 replication/logical/logical.c:529 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "слот реплікації \"%s\" був створений не в цій базі даних" -#: replication/logical/logical.c:375 +#: replication/logical/logical.c:377 #, c-format msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "неможливо створити слот логічної реплікації у транзакції, що виконує записування" -#: replication/logical/logical.c:534 replication/logical/logical.c:541 +#: replication/logical/logical.c:540 +#, c-format +msgid "cannot use replication slot \"%s\" for logical decoding" +msgstr "не може використовувати слот реплікації \"%s\" для логічного декодування" + +#: replication/logical/logical.c:542 replication/slot.c:798 +#: replication/slot.c:829 +#, c-format +msgid "This replication slot is being synchronized from the primary server." +msgstr "Цей слот реплікації синхронізується з основного сервера." + +#: replication/logical/logical.c:543 +#, c-format +msgid "Specify another replication slot." +msgstr "Вкажіть інший слот реплікації." + +#: replication/logical/logical.c:554 replication/logical/logical.c:561 #, c-format msgid "can no longer get changes from replication slot \"%s\"" msgstr "більше не можна отримувати зміни з слоту реплікації \"%s\"" -#: replication/logical/logical.c:536 +#: replication/logical/logical.c:556 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "Цей слот визнано недійсним, тому що він перевищив максимально зарезервований розмір." -#: replication/logical/logical.c:543 +#: replication/logical/logical.c:563 #, c-format msgid "This slot has been invalidated because it was conflicting with recovery." msgstr "Цей слот було скасовано, оскільки він суперечив відновленню." -#: replication/logical/logical.c:608 +#: replication/logical/logical.c:628 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "початок логічного декодування для слоту \"%s\"" -#: replication/logical/logical.c:610 +#: replication/logical/logical.c:630 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Потокове передавання транзакцій, що затверджені, після %X/%X, читання WAL з %X/%X." -#: replication/logical/logical.c:758 +#: replication/logical/logical.c:778 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "слот \"%s\", плагін виходу \"%s\", у зворотньому виклику %s, пов'язаний номер LSN %X/%X" -#: replication/logical/logical.c:764 +#: replication/logical/logical.c:784 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "слот \"%s\", плагін виходу \"%s\", у зворотньому виклику %s" -#: replication/logical/logical.c:935 replication/logical/logical.c:980 -#: replication/logical/logical.c:1025 replication/logical/logical.c:1071 +#: replication/logical/logical.c:955 replication/logical/logical.c:1000 +#: replication/logical/logical.c:1045 replication/logical/logical.c:1091 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "логічна реплікація під час підготовки потребує %s зворотнього виклику" -#: replication/logical/logical.c:1303 replication/logical/logical.c:1352 -#: replication/logical/logical.c:1393 replication/logical/logical.c:1479 -#: replication/logical/logical.c:1528 +#: replication/logical/logical.c:1323 replication/logical/logical.c:1372 +#: replication/logical/logical.c:1413 replication/logical/logical.c:1499 +#: replication/logical/logical.c:1548 #, c-format msgid "logical streaming requires a %s callback" msgstr "логічне потокове передавання потребує %s зворотнього виклику" -#: replication/logical/logical.c:1438 +#: replication/logical/logical.c:1458 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "логічне потокове передавання під час підготовки потребує %s зворотнього виклику" -#: replication/logical/logicalfuncs.c:126 +#: replication/logical/logicalfuncs.c:123 #, c-format msgid "slot name must not be null" msgstr "ім'я слоту має бути не Null-значення" -#: replication/logical/logicalfuncs.c:142 +#: replication/logical/logicalfuncs.c:139 #, c-format msgid "options array must not be null" msgstr "масив параметрів має бути не Null-значення" -#: replication/logical/logicalfuncs.c:159 +#: replication/logical/logicalfuncs.c:156 #, c-format msgid "array must be one-dimensional" msgstr "масив має бути одновимірним" -#: replication/logical/logicalfuncs.c:165 +#: replication/logical/logicalfuncs.c:162 #, c-format msgid "array must not contain nulls" msgstr "масив не має включати nulls" -#: replication/logical/logicalfuncs.c:180 utils/adt/json.c:1484 -#: utils/adt/jsonb.c:1403 +#: replication/logical/logicalfuncs.c:177 utils/adt/json.c:1420 +#: utils/adt/jsonb.c:1304 #, c-format msgid "array must have even number of elements" msgstr "масив повинен мати парну кількість елементів" -#: replication/logical/logicalfuncs.c:227 +#: replication/logical/logicalfuncs.c:224 #, c-format msgid "logical decoding output plugin \"%s\" produces binary output, but function \"%s\" expects textual data" msgstr "плагін виходу логічного декодування \"%s\" виробляє бінарний вихід, але функція \"%s\" очікує текстові дані" #: replication/logical/origin.c:190 #, c-format -msgid "cannot query or manipulate replication origin when max_replication_slots = 0" -msgstr "неможливо вимагати або маніпулювати джерелами реплікації, коли max_replication_slots = 0" +msgid "cannot query or manipulate replication origin when \"max_replication_slots\" is 0" +msgstr "неможливо надіслати запит або маніпулювати джерелами реплікації, коли \"max_replication_slots\" = 0" #: replication/logical/origin.c:195 #, c-format @@ -19953,8 +20370,8 @@ msgstr "контрольна точка реплікації має неправ #: replication/logical/origin.c:798 #, c-format -msgid "could not find free replication state, increase max_replication_slots" -msgstr "не вдалося знайти вільний слот для стану реплікації, збільшіть max_replication_slots" +msgid "could not find free replication state, increase \"max_replication_slots\"" +msgstr "не вдалося знайти вільний слот для стану реплікації, збільшіть \"max_replication_slots\"" #: replication/logical/origin.c:806 #, c-format @@ -19966,54 +20383,54 @@ msgstr "відновлений стан реплікації вузла %d в %X msgid "replication slot checkpoint has wrong checksum %u, expected %u" msgstr "неправильна контрольна сума файлу контрольної точки для слота реплікації %u, очікувалось %u" -#: replication/logical/origin.c:944 replication/logical/origin.c:1141 +#: replication/logical/origin.c:944 replication/logical/origin.c:1143 #, c-format msgid "replication origin with ID %d is already active for PID %d" msgstr "джерело реплікації з ID %d вже активний для PID %d" -#: replication/logical/origin.c:955 replication/logical/origin.c:1153 +#: replication/logical/origin.c:955 replication/logical/origin.c:1156 #, c-format msgid "could not find free replication state slot for replication origin with ID %d" msgstr "не вдалося знайти вільний слот стану реплікації для джерела реплікації з ID %d" -#: replication/logical/origin.c:957 replication/logical/origin.c:1155 -#: replication/slot.c:2093 +#: replication/logical/origin.c:957 replication/logical/origin.c:1158 +#: replication/slot.c:2384 #, c-format -msgid "Increase max_replication_slots and try again." -msgstr "Збільшіть max_replication_slots і спробуйте знову." +msgid "Increase \"max_replication_slots\" and try again." +msgstr "Збільшіть \"max_replication_slots\" і спробуйте знову." -#: replication/logical/origin.c:1112 +#: replication/logical/origin.c:1114 #, c-format msgid "cannot setup replication origin when one is already setup" msgstr "не можна налаштувати джерело реплікації, коли один вже налаштований" -#: replication/logical/origin.c:1196 replication/logical/origin.c:1412 -#: replication/logical/origin.c:1432 +#: replication/logical/origin.c:1199 replication/logical/origin.c:1415 +#: replication/logical/origin.c:1435 #, c-format msgid "no replication origin is configured" msgstr "жодне джерело реплікації не налаштоване" -#: replication/logical/origin.c:1282 +#: replication/logical/origin.c:1285 #, c-format msgid "replication origin name \"%s\" is reserved" msgstr "назва джерела реплікації \"%s\" зарезервована" -#: replication/logical/origin.c:1284 +#: replication/logical/origin.c:1287 #, c-format msgid "Origin names \"%s\", \"%s\", and names starting with \"pg_\" are reserved." msgstr "Імена походженням \"%s\", \"%s\" та імена, що починаються з \"pg_\", є зарезервованими." -#: replication/logical/relation.c:240 +#: replication/logical/relation.c:242 #, c-format msgid "\"%s\"" msgstr "\"%s\"" -#: replication/logical/relation.c:243 +#: replication/logical/relation.c:245 #, c-format msgid ", \"%s\"" msgstr ", \"%s\"" -#: replication/logical/relation.c:249 +#: replication/logical/relation.c:251 #, c-format msgid "logical replication target relation \"%s.%s\" is missing replicated column: %s" msgid_plural "logical replication target relation \"%s.%s\" is missing replicated columns: %s" @@ -20022,49 +20439,177 @@ msgstr[1] "в цільовому відношенні логічної репл msgstr[2] "в цільовому відношенні логічної реплікації \"%s.%s\" пропущено репліковані стовпці: %s" msgstr[3] "в цільовому відношенні логічної реплікації \"%s.%s\" пропущено репліковані стовпці: %s" -#: replication/logical/relation.c:304 +#: replication/logical/relation.c:306 #, c-format msgid "logical replication target relation \"%s.%s\" uses system columns in REPLICA IDENTITY index" msgstr "в цільовому відношенні логічної реплікації \"%s.%s\" в індексі REPLICA IDENTITY використовуються системні стовпці" -#: replication/logical/relation.c:396 +#: replication/logical/relation.c:398 #, c-format msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "цільове відношення логічної реплікації \"%s.%s\" не існує" -#: replication/logical/reorderbuffer.c:3936 +#: replication/logical/reorderbuffer.c:3994 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "не вдалося записати у файл даних для XID %u: %m" -#: replication/logical/reorderbuffer.c:4282 -#: replication/logical/reorderbuffer.c:4307 +#: replication/logical/reorderbuffer.c:4340 +#: replication/logical/reorderbuffer.c:4365 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: %m" -#: replication/logical/reorderbuffer.c:4286 -#: replication/logical/reorderbuffer.c:4311 +#: replication/logical/reorderbuffer.c:4344 +#: replication/logical/reorderbuffer.c:4369 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: прочитано %d замість %u байт" -#: replication/logical/reorderbuffer.c:4561 +#: replication/logical/reorderbuffer.c:4619 #, 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:5057 +#: replication/logical/reorderbuffer.c:5115 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "не вдалося прочитати з файлу \"%s\": прочитано %d замість %d байт" -#: replication/logical/snapbuild.c:639 +#: replication/logical/slotsync.c:215 +#, c-format +msgid "could not synchronize replication slot \"%s\" because remote slot precedes local slot" +msgstr "не вдалося синхронізувати слот реплікації \"%s\", оскільки віддалений слот передує локальному" + +#: replication/logical/slotsync.c:217 +#, c-format +msgid "The remote slot has LSN %X/%X and catalog xmin %u, but the local slot has LSN %X/%X and catalog xmin %u." +msgstr "Віддалений слот має LSN %X/%X і каталог xmin %u, а локальний слот має LSN %X/%X і каталог xmin %u." + +#: replication/logical/slotsync.c:459 +#, c-format +msgid "dropped replication slot \"%s\" of database with OID %u" +msgstr "видалено слот реплікації \"%s\" бази даних з OID %u" + +#: replication/logical/slotsync.c:579 +#, c-format +msgid "could not synchronize replication slot \"%s\"" +msgstr "не вдалося синхронізувати слот реплікації \"%s\"" + +#: replication/logical/slotsync.c:580 +#, c-format +msgid "Logical decoding could not find consistent point from local slot's LSN %X/%X." +msgstr "Логічне декодування не може знайти стійку точку з локальних LSN %X/%X." + +#: replication/logical/slotsync.c:589 +#, c-format +msgid "newly created replication slot \"%s\" is sync-ready now" +msgstr "новостворений слот реплікації \"%s\" готовий до синхронізації" + +#: replication/logical/slotsync.c:628 +#, c-format +msgid "skipping slot synchronization because the received slot sync LSN %X/%X for slot \"%s\" is ahead of the standby position %X/%X" +msgstr "пропуск синхронізації слотів, оскільки отримана синхронізація слотів LSN %X/%X для слота \"%s\" випереджає позицію очікування %X/%X" + +#: replication/logical/slotsync.c:650 +#, c-format +msgid "exiting from slot synchronization because same name slot \"%s\" already exists on the standby" +msgstr "вихід із синхронізації слотів, оскільки однойменний слот \"%s\" вже існує у режимі очікування" + +#: replication/logical/slotsync.c:819 +#, c-format +msgid "could not fetch failover logical slots info from the primary server: %s" +msgstr "не вдалося отримати інформацію про логічні слоти обходу відмови з основного сервера: %s" + +#: replication/logical/slotsync.c:965 +#, c-format +msgid "could not fetch primary_slot_name \"%s\" info from the primary server: %s" +msgstr "не вдалося отримати інформацію primary_slot_name \"%s\" з первинного сервера: %s" + +#: replication/logical/slotsync.c:967 +#, c-format +msgid "Check if primary_slot_name is configured correctly." +msgstr "Перевірте, чи правильно налаштовано primary_slot_name." + +#: replication/logical/slotsync.c:987 +#, c-format +msgid "cannot synchronize replication slots from a standby server" +msgstr "не вдається синхронізувати слоти реплікації з резервного сервера" + +#. translator: second %s is a GUC variable name +#: replication/logical/slotsync.c:996 +#, c-format +msgid "replication slot \"%s\" specified by \"%s\" does not exist on primary server" +msgstr "слот реплікації \"%s\", на який вказує \"%s\", не існує на основному сервері" + +#. translator: first %s is a connection option; second %s is a GUC +#. variable name +#. +#: replication/logical/slotsync.c:1029 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be specified in \"%s\"" +msgstr "для синхронізації слотів реплікації потрібно, щоб \"%s\" було вказано у \"%s\"" + +#: replication/logical/slotsync.c:1050 +#, c-format +msgid "replication slot synchronization requires \"wal_level\" >= \"logical\"" +msgstr "синхронізація слотів вимагає \"wal_level\" >= \"logical\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1063 replication/logical/slotsync.c:1091 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be set" +msgstr "для синхронізації слотів реплікації потрібно, щоб було вказано \"%s\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1077 +#, c-format +msgid "replication slot synchronization requires \"%s\" to be enabled" +msgstr "синхронізація слотів реплікації потребує ввімкнення \"%s\"" + +#. translator: %s is a GUC variable name +#: replication/logical/slotsync.c:1129 +#, c-format +msgid "replication slot synchronization worker will shut down because \"%s\" is disabled" +msgstr "процес синхронизації слотів реплікації буде вимкнутий, тому що \"%s\" відключено" + +#: replication/logical/slotsync.c:1138 +#, c-format +msgid "replication slot synchronization worker will restart because of a parameter change" +msgstr "процес синхронізації слотів реплікації буде перезавантажений через зміну параметра" + +#: replication/logical/slotsync.c:1162 +#, c-format +msgid "replication slot synchronization worker is shutting down on receiving SIGINT" +msgstr "процес синхронізації слотів реплікації буде вимкнуто через отримання повідомлення SIGINT" + +#: replication/logical/slotsync.c:1287 +#, c-format +msgid "cannot synchronize replication slots when standby promotion is ongoing" +msgstr "неможливо синхронізувати слоти реплікації під час підвищення резервного сервера" + +#: replication/logical/slotsync.c:1295 +#, c-format +msgid "cannot synchronize replication slots concurrently" +msgstr "не може синхронізувати слоти реплікації одночасно" + +#: replication/logical/slotsync.c:1403 +#, c-format +msgid "slot sync worker started" +msgstr "запущено працівника синхронізації слотів" + +#: replication/logical/slotsync.c:1466 replication/slotfuncs.c:900 +#: replication/walreceiver.c:307 +#, c-format +msgid "could not connect to the primary server: %s" +msgstr "не вдалося підключитися до основного серверу: %s" + +#: replication/logical/snapbuild.c:653 #, c-format msgid "initial slot snapshot too large" msgstr "початковий знімок слота занадто великий" -#: replication/logical/snapbuild.c:693 +#: replication/logical/snapbuild.c:707 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" @@ -20073,389 +20618,449 @@ msgstr[1] "експортовано знімок логічного декоду msgstr[2] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" msgstr[3] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" -#: replication/logical/snapbuild.c:1388 replication/logical/snapbuild.c:1480 -#: replication/logical/snapbuild.c:1996 +#: replication/logical/snapbuild.c:1404 replication/logical/snapbuild.c:1501 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "узгодження процесу логічного кодування знайдено в точці %X/%X" -#: replication/logical/snapbuild.c:1390 +#: replication/logical/snapbuild.c:1406 #, c-format msgid "There are no running transactions." msgstr "Більше активних транзакцій немає." -#: replication/logical/snapbuild.c:1432 +#: replication/logical/snapbuild.c:1453 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "початкова стартова точка процесу логічного декодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1434 replication/logical/snapbuild.c:1458 +#: replication/logical/snapbuild.c:1455 replication/logical/snapbuild.c:1479 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Очікування транзакцій (приблизно %d) старіше, ніж %u до кінця." -#: replication/logical/snapbuild.c:1456 +#: replication/logical/snapbuild.c:1477 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "початкова точка узгодження процесу логічного кодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1482 +#: replication/logical/snapbuild.c:1503 #, c-format msgid "There are no old transactions anymore." msgstr "Більше старих транзакцій немає." -#: replication/logical/snapbuild.c:1883 +#: replication/logical/snapbuild.c:1904 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має неправильне магічне число: %u замість %u" -#: replication/logical/snapbuild.c:1889 +#: replication/logical/snapbuild.c:1910 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має непідтримуючу версію: %u замість %u" -#: replication/logical/snapbuild.c:1930 +#: replication/logical/snapbuild.c:1951 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "у файлі стану snapbuild \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/logical/snapbuild.c:1998 +#: replication/logical/snapbuild.c:2019 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логічне декодування почнеться зі збереженого знімку." -#: replication/logical/snapbuild.c:2105 +#: replication/logical/snapbuild.c:2126 #, c-format msgid "could not parse file name \"%s\"" msgstr "не вдалося аналізувати ім'я файлу \"%s\"" -#: replication/logical/tablesync.c:153 +#: replication/logical/tablesync.c:161 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "процес синхронізації таблиці при логічній реплікації для підписки \"%s\", таблиці \"%s\" закінчив обробку" -#: replication/logical/tablesync.c:632 +#: replication/logical/tablesync.c:641 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде перезавантажено, щоб можна було активувати two_phase" -#: replication/logical/tablesync.c:807 replication/logical/tablesync.c:949 +#: replication/logical/tablesync.c:827 replication/logical/tablesync.c:969 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про таблицю \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:814 +#: replication/logical/tablesync.c:834 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблиця \"%s.%s\" не знайдена на сервері публікації" -#: replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:892 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про список стовпців для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:1051 +#: replication/logical/tablesync.c:1071 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про вираз WHERE для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:1210 +#: replication/logical/tablesync.c:1230 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "не вдалося почати копіювання початкового змісту таблиці \"%s.%s\": %s" -#: replication/logical/tablesync.c:1411 +#: replication/logical/tablesync.c:1429 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "копії таблиці не вдалося запустити транзакцію на сервері публікації: %s" -#: replication/logical/tablesync.c:1453 +#: replication/logical/tablesync.c:1472 #, c-format msgid "replication origin \"%s\" already exists" msgstr "джерело реплікації \"%s\" вже існує" -#: replication/logical/tablesync.c:1486 replication/logical/worker.c:2374 +#: replication/logical/tablesync.c:1505 replication/logical/worker.c:2361 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "користувач \"%s\" не може реплікувати у відношення з увімкненим захистом на рівні рядків: \"%s\"" -#: replication/logical/tablesync.c:1499 +#: replication/logical/tablesync.c:1518 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "копії таблиці не вдалося завершити транзакцію на сервері публікації: %s" -#: replication/logical/worker.c:499 +#: replication/logical/worker.c:481 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде зупинено" -#: replication/logical/worker.c:501 +#: replication/logical/worker.c:483 #, c-format msgid "Cannot handle streamed replication transactions using parallel apply workers until all tables have been synchronized." msgstr "Неможливо обробляти транзакції потокової реплікації з використанням паралельних застосовуючих працівників, доки не буде синхронізовано всі таблиці." -#: replication/logical/worker.c:863 replication/logical/worker.c:978 +#: replication/logical/worker.c:852 replication/logical/worker.c:967 #, c-format msgid "incorrect binary data format in logical replication column %d" msgstr "невірний формат двійкових даних в стовпці логічної реплікації %d" -#: replication/logical/worker.c:2513 +#: replication/logical/worker.c:2500 #, c-format msgid "publisher did not send replica identity column expected by the logical replication target relation \"%s.%s\"" msgstr "сервер публікації не передав стовпець ідентифікації репліки очікуваний для цільового зв'язку логічної реплікації \"%s.%s\"" -#: replication/logical/worker.c:2520 +#: replication/logical/worker.c:2507 #, 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 "в цільовому зв'язку логічної реплікації \"%s.%s\" немає ні індексу REPLICA IDENTITY, ні ключа PRIMARY KEY і публіковаий зв'язок не має REPLICA IDENTITY FULL" -#: replication/logical/worker.c:3384 +#: replication/logical/worker.c:3371 #, c-format msgid "invalid logical replication message type \"??? (%d)\"" msgstr "неприпустимий тип повідомлення логічної реплікації \"??? (%d)\"" -#: replication/logical/worker.c:3556 +#: replication/logical/worker.c:3543 #, c-format msgid "data stream from publisher has ended" msgstr "потік даних з серверу публікації завершився" -#: replication/logical/worker.c:3713 +#: replication/logical/worker.c:3697 #, c-format msgid "terminating logical replication worker due to timeout" msgstr "завершення процесу логічної реплікації через тайм-аут" -#: replication/logical/worker.c:3907 +#: replication/logical/worker.c:3891 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was removed" msgstr "процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була видалена" -#: replication/logical/worker.c:3920 +#: replication/logical/worker.c:3905 #, c-format msgid "logical replication worker for subscription \"%s\" will stop because the subscription was disabled" msgstr "процес логічної реплікації для підписки \"%s\" буде зупинено, тому, що підписка була вимкнута" -#: replication/logical/worker.c:3951 +#: replication/logical/worker.c:3936 #, c-format msgid "logical replication parallel apply worker for subscription \"%s\" will stop because of a parameter change" msgstr "процес, що застосовує паралельну логічну реплікацію для підписки \"%s\", буде зупинено через зміну параметру" -#: replication/logical/worker.c:3955 +#: replication/logical/worker.c:3940 #, c-format msgid "logical replication worker for subscription \"%s\" will restart because of a parameter change" msgstr "процес логічної реплікації для підписки \"%s\", буде перезавантажено через зміну параметру" +#: replication/logical/worker.c:3954 +#, c-format +msgid "logical replication parallel apply worker for subscription \"%s\" will stop because the subscription owner's superuser privileges have been revoked" +msgstr "логічна реплікація паралельного аплікатора для підписки \"%s\" буде зупинена, оскільки права суперкористувача власника підписки було відкликано" + +#: replication/logical/worker.c:3958 +#, c-format +msgid "logical replication worker for subscription \"%s\" will restart because the subscription owner's superuser privileges have been revoked" +msgstr "працівник логічної реплікації для підписки \"%s\" буде перезапущено, оскільки права суперкористувача власника підписки було відкликано" + #: replication/logical/worker.c:4478 #, c-format +msgid "subscription has no replication slot set" +msgstr "для підписки не встановлений слот реплікації" + +#: replication/logical/worker.c:4591 +#, c-format msgid "logical replication worker for subscription %u will not start because the subscription was removed during startup" msgstr "процес логічної реплікації для підписки %u не буде почато, тому, що підписка була видалена під час запуску" -#: replication/logical/worker.c:4493 +#: replication/logical/worker.c:4607 #, c-format msgid "logical replication worker for subscription \"%s\" will not start because the subscription was disabled during startup" msgstr "процес логічної реплікації для підписки \"%s\" не буде почато, тому, що підписка була вимкнута під час запуску" -#: replication/logical/worker.c:4510 +#: replication/logical/worker.c:4631 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "просец синхронізації таблиці під час логічної реплікації для підписки \"%s\", таблиці \"%s\" запущений" -#: replication/logical/worker.c:4515 +#: replication/logical/worker.c:4636 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" запущений" -#: replication/logical/worker.c:4590 -#, c-format -msgid "subscription has no replication slot set" -msgstr "для підписки не встановлений слот реплікації" - -#: replication/logical/worker.c:4757 +#: replication/logical/worker.c:4758 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "підписка \"%s\" була відключена через помилку" -#: replication/logical/worker.c:4805 +#: replication/logical/worker.c:4806 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "логічна реплікація починає пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:4819 +#: replication/logical/worker.c:4820 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "логічна реплікація завершила пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:4901 +#: replication/logical/worker.c:4902 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "очищено LSN пропуску підписки \"%s\"" -#: replication/logical/worker.c:4902 +#: replication/logical/worker.c:4903 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." msgstr "Кінцеве розташування WAL віддаленої транзакції (LSN) %X/%X не відповідає skip-LSN %X/%X." -#: replication/logical/worker.c:4928 +#: replication/logical/worker.c:4940 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\"" -#: replication/logical/worker.c:4932 +#: replication/logical/worker.c:4944 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u" -#: replication/logical/worker.c:4937 +#: replication/logical/worker.c:4949 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4948 +#: replication/logical/worker.c:4960 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u" -#: replication/logical/worker.c:4955 +#: replication/logical/worker.c:4967 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4966 +#: replication/logical/worker.c:4978 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u" -#: replication/logical/worker.c:4974 +#: replication/logical/worker.c:4986 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u завершено о %X/%X" -#: replication/pgoutput/pgoutput.c:317 +#: replication/pgoutput/pgoutput.c:315 #, c-format msgid "invalid proto_version" msgstr "неприпустиме значення proto_version" -#: replication/pgoutput/pgoutput.c:322 +#: replication/pgoutput/pgoutput.c:320 #, c-format msgid "proto_version \"%s\" out of range" msgstr "значення proto_version \"%s\" за межами діапазону" -#: replication/pgoutput/pgoutput.c:339 +#: replication/pgoutput/pgoutput.c:337 #, c-format msgid "invalid publication_names syntax" msgstr "неприпустимий синтаксис publication_names" -#: replication/pgoutput/pgoutput.c:440 +#: replication/pgoutput/pgoutput.c:407 replication/pgoutput/pgoutput.c:411 #, c-format -msgid "client sent proto_version=%d but server only supports protocol %d or lower" -msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або нижче" +msgid "option \"%s\" missing" +msgstr "параметр \"%s\" відсутній" -#: replication/pgoutput/pgoutput.c:446 +#: replication/pgoutput/pgoutput.c:452 #, c-format -msgid "client sent proto_version=%d but server only supports protocol %d or higher" -msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або вище" +msgid "client sent proto_version=%d but server only supports protocol %d or lower" +msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або нижче" -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:458 #, c-format -msgid "publication_names parameter missing" -msgstr "пропущено параметр publication_names" +msgid "client sent proto_version=%d but server only supports protocol %d or higher" +msgstr "клієнт передав proto_version=%d, але сервер підтримує лише протокол %d або вище" -#: replication/pgoutput/pgoutput.c:466 +#: replication/pgoutput/pgoutput.c:473 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "запитувана proto_version=%d не підтримує потокову передачу, потребується %d або вища" -#: replication/pgoutput/pgoutput.c:472 +#: replication/pgoutput/pgoutput.c:479 #, c-format msgid "requested proto_version=%d does not support parallel streaming, need %d or higher" msgstr "запитувана proto_version=%d не підтримує паралельний потік, потрібно %d або вище" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:484 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "запитане потокова передавача, але не підтримується плагіном виводу" -#: replication/pgoutput/pgoutput.c:494 +#: replication/pgoutput/pgoutput.c:498 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "запитувана proto_version=%d не підтримує двоетапне затвердження, потрібна %d або вища" -#: replication/pgoutput/pgoutput.c:499 +#: replication/pgoutput/pgoutput.c:503 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "запитано двоетапне затвердження, але не підтримується плагіном виводу" -#: replication/slot.c:207 +#: replication/slot.c:260 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "ім'я слоту реплікації \"%s\" занадто коротке" -#: replication/slot.c:216 +#: replication/slot.c:269 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "ім'я слоту реплікації \"%s\" занадто довге" -#: replication/slot.c:229 +#: replication/slot.c:282 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "ім'я слоту реплікації \"%s\" містить неприпустимий символ" -#: replication/slot.c:231 +#: replication/slot.c:284 #, c-format msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Імена слота реплікації можуть містити лише букви в нижньому кейсі, числа, і символ підкреслення." -#: replication/slot.c:285 +#: replication/slot.c:333 +#, c-format +msgid "cannot enable failover for a replication slot created on the standby" +msgstr "не вдається увімкнути відмовостійкість для слота реплікації, створеного в режимі очікування" + +#: replication/slot.c:345 replication/slot.c:849 +#, c-format +msgid "cannot enable failover for a temporary replication slot" +msgstr "не вдається увімкнути відмовостійкість для тимчасового слота реплікації" + +#: replication/slot.c:370 #, c-format msgid "replication slot \"%s\" already exists" msgstr "слот реплікації \"%s\" вже існує" -#: replication/slot.c:295 +#: replication/slot.c:380 #, c-format msgid "all replication slots are in use" msgstr "використовуються всі слоти реплікації" -#: replication/slot.c:296 +#: replication/slot.c:381 #, c-format -msgid "Free one or increase max_replication_slots." -msgstr "Звільніть непотрібні або збільшіть max_replication_slots." +msgid "Free one or increase \"max_replication_slots\"." +msgstr "Звільніть непотрібні або збільшіть \"max_replication_slots\"." -#: replication/slot.c:474 replication/slotfuncs.c:736 -#: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:774 +#: replication/slot.c:560 replication/slot.c:2453 replication/slotfuncs.c:661 +#: utils/activity/pgstat_replslot.c:56 utils/adt/genfile.c:728 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "слот реплікації \"%s\" не існує" -#: replication/slot.c:520 replication/slot.c:1110 +#: replication/slot.c:606 replication/slot.c:1337 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "слот реплікації \"%s\" активний для PID %d" -#: replication/slot.c:756 replication/slot.c:1645 replication/slot.c:2028 +#: replication/slot.c:638 +#, c-format +msgid "acquired logical replication slot \"%s\"" +msgstr "придбано слот логічної реплікації \"%s\"" + +#: replication/slot.c:640 +#, c-format +msgid "acquired physical replication slot \"%s\"" +msgstr "придбано фізичний слот реплікації \"%s\"" + +#: replication/slot.c:729 +#, c-format +msgid "released logical replication slot \"%s\"" +msgstr "звільнено слот логічної реплікації \"%s\"" + +#: replication/slot.c:731 +#, c-format +msgid "released physical replication slot \"%s\"" +msgstr "звільнено фізичний слот реплікації \"%s\"" + +#: replication/slot.c:797 +#, c-format +msgid "cannot drop replication slot \"%s\"" +msgstr "не може скинути слот реплікації \"%s\"" + +#: replication/slot.c:816 +#, c-format +msgid "cannot use %s with a physical replication slot" +msgstr "не може використовувати %s з фізичним слотом реплікації" + +#: replication/slot.c:828 +#, c-format +msgid "cannot alter replication slot \"%s\"" +msgstr "не може змінювати слот реплікації \"%s\"" + +#: replication/slot.c:838 +#, c-format +msgid "cannot enable failover for a replication slot on the standby" +msgstr "не вдається увімкнути обхід відмови для слота реплікації в режимі очікування" + +#: replication/slot.c:969 replication/slot.c:1927 replication/slot.c:2311 #, c-format msgid "could not remove directory \"%s\"" msgstr "не вдалося видалити каталог \"%s\"" -#: replication/slot.c:1145 +#: replication/slot.c:1372 #, c-format -msgid "replication slots can only be used if max_replication_slots > 0" -msgstr "слоти реплікації можна використовувати лише якщо max_replication_slots > 0" +msgid "replication slots can only be used if \"max_replication_slots\" > 0" +msgstr "слоти реплікації можна використовувати лише якщо \"max_replication_slots\" > 0" -#: replication/slot.c:1150 +#: replication/slot.c:1377 #, c-format -msgid "replication slots can only be used if wal_level >= replica" -msgstr "слоти реплікації можна використовувати лише якщо wal_level >= replica" +msgid "replication slots can only be used if \"wal_level\" >= \"replica\"" +msgstr "слоти реплікації можна використовувати лише якщо \"wal_level\" >= \"replica\"" -#: replication/slot.c:1162 +#: replication/slot.c:1389 #, c-format msgid "permission denied to use replication slots" msgstr "немає дозволу для використання слотів реплікації" -#: replication/slot.c:1163 +#: replication/slot.c:1390 #, c-format msgid "Only roles with the %s attribute may use replication slots." msgstr "Тільки ролі з атрибутом %s можуть використовувати слоти реплікації." -#: replication/slot.c:1271 +#: replication/slot.c:1498 #, c-format msgid "The slot's restart_lsn %X/%X exceeds the limit by %llu byte." msgid_plural "The slot's restart_lsn %X/%X exceeds the limit by %llu bytes." @@ -20464,575 +21069,640 @@ msgstr[1] "Значення restart_lsn слота %X/%X перевищує лі msgstr[2] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байтів." msgstr[3] "Значення restart_lsn слота %X/%X перевищує ліміт на %llu байтів." -#: replication/slot.c:1279 +#: replication/slot.c:1506 #, c-format msgid "The slot conflicted with xid horizon %u." msgstr "Слот конфліктував з горизонтом xid %u." -#: replication/slot.c:1284 -msgid "Logical decoding on standby requires wal_level >= logical on the primary server." -msgstr "Логічне декодування на standby вимагає wal_level >= logical на основному сервері." +#: replication/slot.c:1511 +msgid "Logical decoding on standby requires \"wal_level\" >= \"logical\" on the primary server." +msgstr "Логічне декодування на резервному сервері вимагає \"wal_level\" >= \"logical\" на основному сервері." -#: replication/slot.c:1292 +#: replication/slot.c:1519 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "завершення процесу %d для звільнення слоту реплікації \"%s\"" -#: replication/slot.c:1294 +#: replication/slot.c:1521 #, c-format msgid "invalidating obsolete replication slot \"%s\"" msgstr "анулювання застарілого слоту реплікації \"%s\"" -#: replication/slot.c:1966 +#: replication/slot.c:2249 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл слоту реплікації \"%s\" має неправильне магічне число: %u замість %u" -#: replication/slot.c:1973 +#: replication/slot.c:2256 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл слоту реплікації \"%s\" має непідтримуючу версію %u" -#: replication/slot.c:1980 +#: replication/slot.c:2263 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "файл слоту реплікації \"%s\" має пошкоджену довжину %u" -#: replication/slot.c:2016 +#: replication/slot.c:2299 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "у файлі слоту реплікації \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/slot.c:2050 +#: replication/slot.c:2333 #, c-format -msgid "logical replication slot \"%s\" exists, but wal_level < logical" -msgstr "слот логічної реплікації \"%s\" існує, але wal_level < logical" +msgid "logical replication slot \"%s\" exists, but \"wal_level\" < \"logical\"" +msgstr "слот логічної реплікації \"%s\" існує, але \"wal_level\" < \"logical\"" -#: replication/slot.c:2052 +#: replication/slot.c:2335 #, c-format -msgid "Change wal_level to be logical or higher." -msgstr "Змініть wal_level на logical або вище." +msgid "Change \"wal_level\" to be \"logical\" or higher." +msgstr "Змініть \"wal_level\" на \"logical\" або вище." -#: replication/slot.c:2056 +#: replication/slot.c:2339 #, c-format -msgid "physical replication slot \"%s\" exists, but wal_level < replica" -msgstr "слот фізичної реплікації \"%s\" існує, але wal_level < replica" +msgid "physical replication slot \"%s\" exists, but \"wal_level\" < \"replica\"" +msgstr "слот фізичної реплікації \"%s\" існує, але \"wal_level\" < \"replica\"" -#: replication/slot.c:2058 +#: replication/slot.c:2341 #, c-format -msgid "Change wal_level to be replica or higher." -msgstr "Змініть wal_level на replica або вище." +msgid "Change \"wal_level\" to be \"replica\" or higher." +msgstr "Змініть \"wal_level\" на \"replica\" або вище." -#: replication/slot.c:2092 +#: replication/slot.c:2383 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершенням роботи активно занадто багато слотів реплікації" -#: replication/slotfuncs.c:601 +#: replication/slot.c:2461 +#, c-format +msgid "\"%s\" is not a physical replication slot" +msgstr "\"%s\" не є фізичним слотом реплікації" + +#: replication/slot.c:2638 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not exist" +msgstr "слот реплікації \"%s\", вказаний в параметрі \"%s\", не існує" + +#: replication/slot.c:2640 replication/slot.c:2681 replication/slot.c:2696 +#, c-format +msgid "Logical replication is waiting on the standby associated with replication slot \"%s\"." +msgstr "Логічна реплікація чекає на слоті реплікації, що пов'язана з слотом реплікації \"%s\"." + +#: replication/slot.c:2642 +#, c-format +msgid "Create the replication slot \"%s\" or amend parameter \"%s\"." +msgstr "Створіть слот реплікації \"%s\" або змініть параметр \"%s\"." + +#: replication/slot.c:2659 +#, c-format +msgid "cannot specify logical replication slot \"%s\" in parameter \"%s\"" +msgstr "неможливо вказати слот логічної реплікації \"%s\" в параметрі \"%s\"" + +#: replication/slot.c:2661 +#, c-format +msgid "Logical replication is waiting for correction on replication slot \"%s\"." +msgstr "Логічна реплікація очікує на корекцію на слоті реплікації \"%s\"." + +#: replication/slot.c:2663 +#, c-format +msgid "Remove the logical replication slot \"%s\" from parameter \"%s\"." +msgstr "Приберіть слот логічної реплікації \"%s\" з параметру \"%s\"." + +#: replication/slot.c:2679 +#, c-format +msgid "physical replication slot \"%s\" specified in parameter \"%s\" has been invalidated" +msgstr "" + +#: replication/slot.c:2683 +#, c-format +msgid "Drop and recreate the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "" + +#: replication/slot.c:2694 +#, c-format +msgid "replication slot \"%s\" specified in parameter \"%s\" does not have active_pid" +msgstr "" + +#: replication/slot.c:2698 +#, c-format +msgid "Start the standby associated with the replication slot \"%s\", or amend parameter \"%s\"." +msgstr "" + +#: replication/slotfuncs.c:526 #, c-format msgid "invalid target WAL LSN" msgstr "неприпустима ціль WAL LSN" -#: replication/slotfuncs.c:623 +#: replication/slotfuncs.c:548 #, c-format msgid "replication slot \"%s\" cannot be advanced" msgstr "слот реплікації \"%s\" не може бути розширеним" -#: replication/slotfuncs.c:625 +#: replication/slotfuncs.c:550 #, c-format msgid "This slot has never previously reserved WAL, or it has been invalidated." msgstr "Цей слот ніколи раніше не резервував WAL, або він був недійсним." -#: replication/slotfuncs.c:641 +#: replication/slotfuncs.c:566 #, c-format msgid "cannot advance replication slot to %X/%X, minimum is %X/%X" msgstr "просунути слот реплікації до позиції %X/%X не можна, мінімальна позиція %X/%X" -#: replication/slotfuncs.c:748 +#: replication/slotfuncs.c:673 #, c-format msgid "cannot copy physical replication slot \"%s\" as a logical replication slot" msgstr "не можна скопіювати слот фізичної реплікації \"%s\" як слот логічної реплікації" -#: replication/slotfuncs.c:750 +#: replication/slotfuncs.c:675 #, c-format msgid "cannot copy logical replication slot \"%s\" as a physical replication slot" msgstr "не можна скопіювати слот логічної реплікації \"%s\" як слот фізичної реплікації" -#: replication/slotfuncs.c:757 +#: replication/slotfuncs.c:682 #, c-format msgid "cannot copy a replication slot that doesn't reserve WAL" msgstr "не можна скопіювати слот реплікації, який не резервує WAL" -#: replication/slotfuncs.c:834 +#: replication/slotfuncs.c:768 #, c-format msgid "could not copy replication slot \"%s\"" msgstr "не вдалося скопіювати слот реплікації \"%s\"" -#: replication/slotfuncs.c:836 +#: replication/slotfuncs.c:770 #, c-format msgid "The source replication slot was modified incompatibly during the copy operation." msgstr "Слот реплікації джерела був змінений несумісно під час операції копіювання." -#: replication/slotfuncs.c:842 +#: replication/slotfuncs.c:776 #, c-format msgid "cannot copy unfinished logical replication slot \"%s\"" msgstr "не можна скопіювати незавершений слот логічної реплікації \"%s\"" -#: replication/slotfuncs.c:844 +#: replication/slotfuncs.c:778 #, c-format msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "Повторіть, коли confirmed_flush_lsn слоту джерела реплікації є дійсним." -#: replication/syncrep.c:262 +#: replication/slotfuncs.c:877 +#, c-format +msgid "replication slots can only be synchronized to a standby server" +msgstr "слоти реплікації можна синхронізувати лише з резервним сервером" + +#: replication/syncrep.c:261 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "скасування очікування синхронної реплікації і завершення з'єднання по команді адміністратора" -#: replication/syncrep.c:263 replication/syncrep.c:280 +#: replication/syncrep.c:262 replication/syncrep.c:279 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "Транзакція вже була затверджена локально, але можливо не була реплікована до режиму очікування." -#: replication/syncrep.c:279 +#: replication/syncrep.c:278 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "скасування очікування синхронної реплікації по запиту користувача" -#: replication/syncrep.c:486 +#: replication/syncrep.c:485 #, c-format -msgid "standby \"%s\" is now a synchronous standby with priority %u" -msgstr "режим очікування \"%s\" зараз є синхронним з пріоритетом %u" +msgid "standby \"%s\" is now a synchronous standby with priority %d" +msgstr "очікування \"%s\" тепер є синхронним очікуванням з пріоритетом %d" -#: replication/syncrep.c:490 +#: replication/syncrep.c:489 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "режим очікування \"%s\" зараз є кандидатом для включення в кворум синхронних" -#: replication/syncrep.c:1019 +#: replication/syncrep.c:1013 #, c-format -msgid "synchronous_standby_names parser failed" -msgstr "помилка при аналізуванні synchronous_standby_names" +msgid "\"synchronous_standby_names\" parser failed" +msgstr "" -#: replication/syncrep.c:1025 +#: replication/syncrep.c:1019 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "кількість синхронних режимів очікування (%d) повинно бути більше нуля" -#: replication/walreceiver.c:180 +#: replication/walreceiver.c:176 #, c-format msgid "terminating walreceiver process due to administrator command" msgstr "завершення процесу walreceiver по команді адміністратора" -#: replication/walreceiver.c:305 -#, c-format -msgid "could not connect to the primary server: %s" -msgstr "не вдалося підключитися до основного серверу: %s" - -#: replication/walreceiver.c:352 +#: replication/walreceiver.c:354 #, c-format msgid "database system identifier differs between the primary and standby" msgstr "ідентифікатор системи бази даних на основному і резервному серверах відрізняються" -#: replication/walreceiver.c:353 +#: replication/walreceiver.c:355 #, c-format msgid "The primary's identifier is %s, the standby's identifier is %s." msgstr "Ідентифікатор на основному сервері %s, на резервному %s." -#: replication/walreceiver.c:364 +#: replication/walreceiver.c:366 #, c-format msgid "highest timeline %u of the primary is behind recovery timeline %u" msgstr "остання часова шкала %u на основному сервері відстає від відновлюючої часової шкали %u" -#: replication/walreceiver.c:417 +#: replication/walreceiver.c:419 #, c-format msgid "started streaming WAL from primary at %X/%X on timeline %u" msgstr "запущено потокове передавання WAL з основного серверу з позиції %X/%X на часовій шкалі %u" -#: replication/walreceiver.c:421 +#: replication/walreceiver.c:423 #, c-format msgid "restarted WAL streaming at %X/%X on timeline %u" msgstr "перезапуска потокового передавання WAL з позиції %X/%X на часовій шкалі %u" -#: replication/walreceiver.c:457 +#: replication/walreceiver.c:458 #, c-format msgid "cannot continue WAL streaming, recovery has already ended" msgstr "продовжити потокове передавання WAL не можна, відновлення вже завершено" -#: replication/walreceiver.c:501 +#: replication/walreceiver.c:502 #, c-format msgid "replication terminated by primary server" msgstr "реплікація завершена основним сервером" -#: replication/walreceiver.c:502 +#: replication/walreceiver.c:503 #, c-format msgid "End of WAL reached on timeline %u at %X/%X." msgstr "На часовій шкалі %u в позиції %X/%X WAL досяг кінця." -#: replication/walreceiver.c:592 +#: replication/walreceiver.c:593 #, c-format msgid "terminating walreceiver due to timeout" msgstr "завершення процесу walreceiver через тайм-аут" -#: replication/walreceiver.c:624 +#: replication/walreceiver.c:625 #, c-format msgid "primary server contains no more WAL on requested timeline %u" msgstr "основний сервер більше не містить WAL для запитаної часової шкали %u" -#: replication/walreceiver.c:640 replication/walreceiver.c:1066 +#: replication/walreceiver.c:641 replication/walreceiver.c:1071 #, c-format msgid "could not close WAL segment %s: %m" msgstr "не вдалося закрити сегмент WAL %s: %m" -#: replication/walreceiver.c:759 +#: replication/walreceiver.c:760 #, c-format msgid "fetching timeline history file for timeline %u from primary server" msgstr "отримання файлу історії часової шкали для часової шкали %u з основного серверу" -#: replication/walreceiver.c:954 +#: replication/walreceiver.c:959 #, c-format -msgid "could not write to WAL segment %s at offset %u, length %lu: %m" -msgstr "не вдалося записати в сегмент WAL %s зсув %u, довжина %lu: %m" +msgid "could not write to WAL segment %s at offset %d, length %lu: %m" +msgstr "не вдалося записати у сегмент WAL %s зі зміщенням %d, довжиною %lu: %m" -#: replication/walsender.c:519 +#: replication/walsender.c:531 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "використовувати %s зі слотом логічної реплікації не можна" -#: replication/walsender.c:623 storage/smgr/md.c:1529 +#: replication/walsender.c:635 storage/smgr/md.c:1723 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не вдалося досягти кінця файлу \"%s\": %m" -#: replication/walsender.c:627 +#: replication/walsender.c:639 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "не вдалося знайти початок файлу \"%s\": %m" -#: replication/walsender.c:704 +#: replication/walsender.c:853 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "використовувати логічний слот реплікації для фізичної реплікації, не можна" -#: replication/walsender.c:770 +#: replication/walsender.c:919 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "в історії серверу немає запитаної початкової точки %X/%X на часовій шкалі %u" -#: replication/walsender.c:773 +#: replication/walsender.c:922 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "Історія цього серверу відгалузилась від часової шкали %u в позиції %X/%X." -#: replication/walsender.c:817 +#: replication/walsender.c:966 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "запитана початкова точка %X/%X попереду позиція очищених даних WAL на цьому сервері %X/%X" -#: replication/walsender.c:1010 +#: replication/walsender.c:1160 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "нерозпізнане значення для параметру CREATE_REPLICATION_SLOT \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1095 +#: replication/walsender.c:1266 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s не має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1105 +#: replication/walsender.c:1276 #, c-format msgid "%s must be called inside a transaction" msgstr "%s має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1111 +#: replication/walsender.c:1282 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s повинен бути викликаний в режимі ізоляції REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1287 #, c-format msgid "%s must be called in a read-only transaction" msgstr "%s має викликатися в транзакції \"лише для читання\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1293 #, c-format msgid "%s must be called before any query" msgstr "%s має викликатися до будь-якого запиту" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1299 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s не має викликатися всередині підтранзакції" -#: replication/walsender.c:1275 +#: replication/walsender.c:1472 #, c-format msgid "terminating walsender process after promotion" msgstr "завершення процесу walsender після підвищення" -#: replication/walsender.c:1696 +#: replication/walsender.c:2000 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "не можна виконувати нові команди, поки процес відправки WAL знаходиться в режимі зупинки" -#: replication/walsender.c:1731 +#: replication/walsender.c:2035 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "не можна виконувати команди SQL в процесі відправки WAL для фізичної реплікації" -#: replication/walsender.c:1764 +#: replication/walsender.c:2068 #, c-format msgid "received replication command: %s" msgstr "отримано команду реплікації: %s" -#: replication/walsender.c:1772 tcop/fastpath.c:209 tcop/postgres.c:1138 -#: tcop/postgres.c:1496 tcop/postgres.c:1736 tcop/postgres.c:2210 -#: tcop/postgres.c:2648 tcop/postgres.c:2726 +#: replication/walsender.c:2076 tcop/fastpath.c:209 tcop/postgres.c:1142 +#: tcop/postgres.c:1500 tcop/postgres.c:1752 tcop/postgres.c:2234 +#: tcop/postgres.c:2672 tcop/postgres.c:2749 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "поточна транзакція перервана, команди до кінця блока транзакції пропускаються" -#: replication/walsender.c:1914 replication/walsender.c:1949 +#: replication/walsender.c:2233 replication/walsender.c:2268 #, c-format msgid "unexpected EOF on standby connection" msgstr "неочікуваний обрив з'єднання з резервним сервером" -#: replication/walsender.c:1937 +#: replication/walsender.c:2256 #, c-format msgid "invalid standby message type \"%c\"" msgstr "неприпустимий тип повідомлення резервного серверу \"%c\"" -#: replication/walsender.c:2026 +#: replication/walsender.c:2345 #, c-format msgid "unexpected message type \"%c\"" msgstr "неочікуваний тип повідомлення \"%c\"" -#: replication/walsender.c:2439 +#: replication/walsender.c:2759 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "завершення процесу walsender через тайм-аут реплікації" -#: rewrite/rewriteDefine.c:111 rewrite/rewriteDefine.c:842 +#: rewrite/rewriteDefine.c:104 rewrite/rewriteDefine.c:835 #, c-format msgid "rule \"%s\" for relation \"%s\" already exists" msgstr "правило \"%s\" для зв'язка \"%s\" вже існує" -#: rewrite/rewriteDefine.c:268 rewrite/rewriteDefine.c:780 +#: rewrite/rewriteDefine.c:261 rewrite/rewriteDefine.c:773 #, c-format msgid "relation \"%s\" cannot have rules" msgstr "відношення \"%s\" не може мати правил" -#: rewrite/rewriteDefine.c:299 +#: rewrite/rewriteDefine.c:292 #, c-format msgid "rule actions on OLD are not implemented" msgstr "дії правил для OLD не реалізовані" -#: rewrite/rewriteDefine.c:300 +#: rewrite/rewriteDefine.c:293 #, c-format msgid "Use views or triggers instead." msgstr "Використайте подання або тригери замість." -#: rewrite/rewriteDefine.c:304 +#: rewrite/rewriteDefine.c:297 #, c-format msgid "rule actions on NEW are not implemented" msgstr "дії правил для NEW не реалізовані" -#: rewrite/rewriteDefine.c:305 +#: rewrite/rewriteDefine.c:298 #, c-format msgid "Use triggers instead." msgstr "Використайте тригери замість." -#: rewrite/rewriteDefine.c:319 +#: rewrite/rewriteDefine.c:312 #, c-format msgid "relation \"%s\" cannot have ON SELECT rules" msgstr "відношення \"%s\" не може мати правил ON SELECT" -#: rewrite/rewriteDefine.c:329 +#: rewrite/rewriteDefine.c:322 #, c-format msgid "INSTEAD NOTHING rules on SELECT are not implemented" msgstr "Правила INSTEAD NOTHING для SELECT не реалізовані" -#: rewrite/rewriteDefine.c:330 +#: rewrite/rewriteDefine.c:323 #, c-format msgid "Use views instead." msgstr "Використайте подання замість." -#: rewrite/rewriteDefine.c:338 +#: rewrite/rewriteDefine.c:331 #, c-format msgid "multiple actions for rules on SELECT are not implemented" msgstr "декілька дій в правилах для SELECT не реалізовані" -#: rewrite/rewriteDefine.c:348 +#: rewrite/rewriteDefine.c:341 #, c-format msgid "rules on SELECT must have action INSTEAD SELECT" msgstr "правила для SELECT повинні мати дію INSTEAD SELECT" -#: rewrite/rewriteDefine.c:356 +#: rewrite/rewriteDefine.c:349 #, c-format msgid "rules on SELECT must not contain data-modifying statements in WITH" msgstr "правила для SELECT не повинні містити операторів, які змінюють дані в WITH" -#: rewrite/rewriteDefine.c:364 +#: rewrite/rewriteDefine.c:357 #, c-format msgid "event qualifications are not implemented for rules on SELECT" msgstr "в правилах для SELECT не може бути умов" -#: rewrite/rewriteDefine.c:391 +#: rewrite/rewriteDefine.c:384 #, c-format msgid "\"%s\" is already a view" msgstr "\"%s\" вже є поданням" -#: rewrite/rewriteDefine.c:415 +#: rewrite/rewriteDefine.c:408 #, c-format msgid "view rule for \"%s\" must be named \"%s\"" msgstr "правило подання для \"%s\" повинно називатися \"%s\"" -#: rewrite/rewriteDefine.c:442 +#: rewrite/rewriteDefine.c:435 #, c-format msgid "cannot have multiple RETURNING lists in a rule" msgstr "правило не може мати декілька списків RETURNING" -#: rewrite/rewriteDefine.c:447 +#: rewrite/rewriteDefine.c:440 #, c-format msgid "RETURNING lists are not supported in conditional rules" msgstr "Умовні правила не підтримують списки RETURNING" -#: rewrite/rewriteDefine.c:451 +#: rewrite/rewriteDefine.c:444 #, c-format msgid "RETURNING lists are not supported in non-INSTEAD rules" msgstr "Правила non-INSTEAD не підтримують списки RETURNING" -#: rewrite/rewriteDefine.c:465 +#: rewrite/rewriteDefine.c:458 #, c-format msgid "non-view rule for \"%s\" must not be named \"%s\"" msgstr "правило не-подання для \"%s\" не повинно мати назву \"%s\"" -#: rewrite/rewriteDefine.c:539 +#: rewrite/rewriteDefine.c:532 #, c-format msgid "SELECT rule's target list has too many entries" msgstr "Список цілей правила для SELECT має занадто багато елементів" -#: rewrite/rewriteDefine.c:540 +#: rewrite/rewriteDefine.c:533 #, c-format msgid "RETURNING list has too many entries" msgstr "Список RETURNING має занадто багато елементів" -#: rewrite/rewriteDefine.c:567 +#: rewrite/rewriteDefine.c:560 #, c-format msgid "cannot convert relation containing dropped columns to view" msgstr "перетворити зв'язок, який містить видаленні стовпці, на подання не можна" -#: rewrite/rewriteDefine.c:568 +#: rewrite/rewriteDefine.c:561 #, c-format msgid "cannot create a RETURNING list for a relation containing dropped columns" msgstr "створити список RETURNING для зв'язка, який містить видаленні стовпці, не можна" -#: rewrite/rewriteDefine.c:574 +#: rewrite/rewriteDefine.c:567 #, c-format msgid "SELECT rule's target entry %d has different column name from column \"%s\"" msgstr "Елемент результата правила для SELECT %d відрізняється іменем стовпця від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:576 +#: rewrite/rewriteDefine.c:569 #, c-format msgid "SELECT target entry is named \"%s\"." msgstr "Ім'я елемента результату SELECT \"%s\"." -#: rewrite/rewriteDefine.c:585 +#: rewrite/rewriteDefine.c:578 #, c-format msgid "SELECT rule's target entry %d has different type from column \"%s\"" msgstr "Елемент результата правила для SELECT %d відрізняється типом від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:587 +#: rewrite/rewriteDefine.c:580 #, c-format msgid "RETURNING list's entry %d has different type from column \"%s\"" msgstr "Елемент списку RETURNING %d відрізняється типом від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:590 rewrite/rewriteDefine.c:614 +#: rewrite/rewriteDefine.c:583 rewrite/rewriteDefine.c:607 #, c-format msgid "SELECT target entry has type %s, but column has type %s." msgstr "Елемент результату SELECT має тип %s, але стовпець має тип %s." -#: rewrite/rewriteDefine.c:593 rewrite/rewriteDefine.c:618 +#: rewrite/rewriteDefine.c:586 rewrite/rewriteDefine.c:611 #, c-format msgid "RETURNING list entry has type %s, but column has type %s." msgstr "Елемент списку RETURNING має тип %s, але стовпець має тип %s." -#: rewrite/rewriteDefine.c:609 +#: rewrite/rewriteDefine.c:602 #, c-format msgid "SELECT rule's target entry %d has different size from column \"%s\"" msgstr "Елемент результата правил для SELECT %d відрізняється розміром від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:611 +#: rewrite/rewriteDefine.c:604 #, c-format msgid "RETURNING list's entry %d has different size from column \"%s\"" msgstr "Елемент списку RETURNING %d відрізняється розміром від стовпця \"%s\"" -#: rewrite/rewriteDefine.c:628 +#: rewrite/rewriteDefine.c:621 #, c-format msgid "SELECT rule's target list has too few entries" msgstr "Список результату правила для SELECT має занадто мало елементів" -#: rewrite/rewriteDefine.c:629 +#: rewrite/rewriteDefine.c:622 #, c-format msgid "RETURNING list has too few entries" msgstr "Список RETURNING має занадто мало елементів" -#: rewrite/rewriteDefine.c:718 rewrite/rewriteDefine.c:833 -#: rewrite/rewriteSupport.c:109 +#: rewrite/rewriteDefine.c:711 rewrite/rewriteDefine.c:826 +#: rewrite/rewriteSupport.c:108 #, c-format msgid "rule \"%s\" for relation \"%s\" does not exist" msgstr "правило \"%s\" для відношення \"%s\" не існує" -#: rewrite/rewriteDefine.c:852 +#: rewrite/rewriteDefine.c:845 #, c-format msgid "renaming an ON SELECT rule is not allowed" msgstr "не допускається перейменування правила ON SELECT" -#: rewrite/rewriteHandler.c:583 +#: rewrite/rewriteHandler.c:582 #, c-format msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "Ім'я запиту WITH \"%s\" з'являється і в дії правила, і в переписаному запиті" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:609 #, 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:663 +#: rewrite/rewriteHandler.c:662 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "списки RETURNING може мати лише одне правило" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:894 rewrite/rewriteHandler.c:933 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "вставити значення non-DEFAULT до стовпця \"%s\" не можна" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:896 rewrite/rewriteHandler.c:962 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Стовпець \"%s\" є ідентифікаційним стовпцем визначеним як GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:898 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для зміни використайте OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:960 rewrite/rewriteHandler.c:968 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "стовпець \"%s\" може бути оновлено тільки до DEFAULT" -#: rewrite/rewriteHandler.c:1116 rewrite/rewriteHandler.c:1134 +#: rewrite/rewriteHandler.c:1115 rewrite/rewriteHandler.c:1133 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "кілька завдань для одного стовпця \"%s\"" -#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4040 +#: rewrite/rewriteHandler.c:1698 +#, c-format +msgid "MERGE is not supported for relations with rules." +msgstr "MERGE не підтримує відношення з правилами." + +#: rewrite/rewriteHandler.c:1738 rewrite/rewriteHandler.c:3229 +#, c-format +msgid "access to non-system view \"%s\" is restricted" +msgstr "" + +#: rewrite/rewriteHandler.c:2119 rewrite/rewriteHandler.c:4221 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "виявлена безкінечна рекурсія у правилах для відносин \"%s\"" @@ -21042,163 +21712,226 @@ msgstr "виявлена безкінечна рекурсія у правила msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "виявлена безкінечна рекурсія в політиці для зв'язка \"%s\"" -#: rewrite/rewriteHandler.c:2524 +#: rewrite/rewriteHandler.c:2556 msgid "Junk view columns are not updatable." msgstr "Утилізовані стовпці подань не оновлюються." -#: rewrite/rewriteHandler.c:2529 +#: rewrite/rewriteHandler.c:2561 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Стовпці подання, які не є стовпцями базового зв'язку, не оновлюються." -#: rewrite/rewriteHandler.c:2532 +#: rewrite/rewriteHandler.c:2564 msgid "View columns that refer to system columns are not updatable." msgstr "Стовпці подання, які посилаються на системні стовпці, не оновлюються." -#: rewrite/rewriteHandler.c:2535 +#: rewrite/rewriteHandler.c:2567 msgid "View columns that return whole-row references are not updatable." msgstr "Стовпці подання, що повертають посилання на весь рядок, не оновлюються." -#: rewrite/rewriteHandler.c:2596 +#: rewrite/rewriteHandler.c:2628 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Подання які містять DISTINCT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2631 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Подання які містять GROUP BY не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2634 msgid "Views containing HAVING are not automatically updatable." msgstr "Подання які містять HAVING не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2637 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Подання які містять UNION, INTERSECT, або EXCEPT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2608 +#: rewrite/rewriteHandler.c:2640 msgid "Views containing WITH are not automatically updatable." msgstr "Подання які містять WITH не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2611 +#: rewrite/rewriteHandler.c:2643 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Подання які містять LIMIT або OFFSET не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2623 +#: rewrite/rewriteHandler.c:2655 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Подання які повертають агрегатні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2626 +#: rewrite/rewriteHandler.c:2658 msgid "Views that return window functions are not automatically updatable." msgstr "Подання які повертають віконні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2629 +#: rewrite/rewriteHandler.c:2661 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Подання які повертають set-returning функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2636 rewrite/rewriteHandler.c:2640 -#: rewrite/rewriteHandler.c:2648 +#: rewrite/rewriteHandler.c:2668 rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2680 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Подання які обирають дані не з одної таблиці або подання не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2651 +#: rewrite/rewriteHandler.c:2683 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Подання які містять TABLESAMPLE не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2707 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Подання які не мають оновлюваних стовпців не оновлюються автоматично." -#: rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:3088 rewrite/rewriteHandler.c:3123 +#, c-format +msgid "cannot insert into view \"%s\"" +msgstr "вставити дані в подання \"%s\" не можна" + +#: rewrite/rewriteHandler.c:3091 +#, c-format +msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." +msgstr "Щоб подання допускало додавання даних, встановіть тригер INSTEAD OF INSERT або безумовне правило ON INSERT DO INSTEAD." + +#: rewrite/rewriteHandler.c:3096 rewrite/rewriteHandler.c:3132 +#, c-format +msgid "cannot update view \"%s\"" +msgstr "оновити подання \"%s\" не можна" + +#: rewrite/rewriteHandler.c:3099 +#, c-format +msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." +msgstr "Щоб подання допускало оновлення, встановіть тригер INSTEAD OF UPDATE або безумовне правило ON UPDATE DO INSTEAD." + +#: rewrite/rewriteHandler.c:3104 rewrite/rewriteHandler.c:3141 +#, c-format +msgid "cannot delete from view \"%s\"" +msgstr "видалити дані з подання \"%s\" не можна" + +#: rewrite/rewriteHandler.c:3107 +#, c-format +msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." +msgstr "Щоб подання допускало видалення даних, встановіть тригер INSTEAD OF DELETE або безумновне правило ON DELETE DO INSTEAD." + +#: rewrite/rewriteHandler.c:3126 +#, c-format +msgid "To enable inserting into the view using MERGE, provide an INSTEAD OF INSERT trigger." +msgstr "" + +#: rewrite/rewriteHandler.c:3135 +#, c-format +msgid "To enable updating the view using MERGE, provide an INSTEAD OF UPDATE trigger." +msgstr "" + +#: rewrite/rewriteHandler.c:3144 +#, c-format +msgid "To enable deleting from the view using MERGE, provide an INSTEAD OF DELETE trigger." +msgstr "" + +#: rewrite/rewriteHandler.c:3319 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставити дані в стовпець \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:3327 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "оновити дані в стовпці \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3667 +#: rewrite/rewriteHandler.c:3335 +#, c-format +msgid "cannot merge into column \"%s\" of view \"%s\"" +msgstr "" + +#: rewrite/rewriteHandler.c:3363 +#, c-format +msgid "cannot merge into view \"%s\"" +msgstr "" + +#: rewrite/rewriteHandler.c:3365 +#, c-format +msgid "MERGE is not supported for views with INSTEAD OF triggers for some actions but not all." +msgstr "" + +#: rewrite/rewriteHandler.c:3366 +#, c-format +msgid "To enable merging into the view, either provide a full set of INSTEAD OF triggers or drop the existing INSTEAD OF triggers." +msgstr "" + +#: rewrite/rewriteHandler.c:3879 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTIFY не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3678 +#: rewrite/rewriteHandler.c:3890 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTHING не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3692 +#: rewrite/rewriteHandler.c:3904 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "умовні правила DO INSTEAD не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3696 +#: rewrite/rewriteHandler.c:3908 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "Правила DO ALSO не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3701 +#: rewrite/rewriteHandler.c:3913 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "складові правила DO INSTEAD не підтримуються операторами, які змінюють дані у WITH" -#: rewrite/rewriteHandler.c:3968 rewrite/rewriteHandler.c:3976 -#: rewrite/rewriteHandler.c:3984 -#, c-format +#: rewrite/rewriteHandler.c:4173 msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Подання з умовними правилами DO INSTEAD не оновлюються автоматично." -#: rewrite/rewriteHandler.c:4089 +#: rewrite/rewriteHandler.c:4270 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "виконати INSERT RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4091 +#: rewrite/rewriteHandler.c:4272 #, 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:4096 +#: rewrite/rewriteHandler.c:4277 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "виконати UPDATE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4098 +#: rewrite/rewriteHandler.c:4279 #, 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:4103 +#: rewrite/rewriteHandler.c:4284 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "виконати DELETE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4105 +#: rewrite/rewriteHandler.c:4286 #, 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:4123 +#: rewrite/rewriteHandler.c:4304 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT з реченням ON CONFLICT не можна використовувати з таблицею, яка має правила INSERT або UPDATE" -#: rewrite/rewriteHandler.c:4180 +#: rewrite/rewriteHandler.c:4361 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH не можна використовувати в запиті, який переписаний правилами в декілька запитів" -#: rewrite/rewriteManip.c:1075 +#: rewrite/rewriteManip.c:1083 #, c-format msgid "conditional utility statements are not implemented" msgstr "умовні службові оператори не реалізовані" -#: rewrite/rewriteManip.c:1419 +#: rewrite/rewriteManip.c:1430 #, c-format msgid "WHERE CURRENT OF on a view is not implemented" msgstr "Умова WHERE CURRENT OF для подання не реалізована" -#: rewrite/rewriteManip.c:1754 +#: rewrite/rewriteManip.c:1765 #, c-format msgid "NEW variables in ON UPDATE rules cannot reference columns that are part of a multiple assignment in the subject UPDATE command" msgstr "Змінні NEW в правилах ON UPDATE не можуть посилатись на стовпці, які є частиною декілької призначень в команді UPDATE" @@ -21234,72 +21967,67 @@ msgstr "нерозпізнаний параметр Snowball: \"%s\"" msgid "missing Language parameter" msgstr "пропущений параметр Language" -#: statistics/extended_stats.c:179 +#: statistics/extended_stats.c:176 #, c-format msgid "statistics object \"%s.%s\" could not be computed for relation \"%s.%s\"" msgstr "об'єкт статистики \"%s.%s\" не вдалося обчислити для відношення \"%s.%s\"" -#: statistics/mcv.c:1372 +#: statistics/mcv.c:1368 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" -#: storage/buffer/bufmgr.c:612 storage/buffer/bufmgr.c:769 +#: storage/buffer/bufmgr.c:649 storage/buffer/bufmgr.c:805 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "доступ до тимчасових таблиць з інших сесій заблоковано" -#: storage/buffer/bufmgr.c:1137 +#: storage/buffer/bufmgr.c:1532 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "неприпустима сторінка в блоці %u відношення %s; сторінка обнуляється" -#: storage/buffer/bufmgr.c:1931 storage/buffer/localbuf.c:359 +#: storage/buffer/bufmgr.c:2277 storage/buffer/localbuf.c:361 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "не можна розширити відношення %s понад %u блоків" -#: storage/buffer/bufmgr.c:1998 +#: storage/buffer/bufmgr.c:2348 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неочікуванні дані після EOF в блоці %u відношення %s" -#: storage/buffer/bufmgr.c:2000 +#: storage/buffer/bufmgr.c:2350 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Ця ситуація може виникати через помилки в ядрі; можливо, вам слід оновити вашу систему." -#: storage/buffer/bufmgr.c:5219 +#: storage/buffer/bufmgr.c:5653 #, c-format msgid "could not write block %u of %s" msgstr "неможливо записати блок %u файлу %s" -#: storage/buffer/bufmgr.c:5221 +#: storage/buffer/bufmgr.c:5655 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Кілька неполадок --- можливо, постійна помилка запису." -#: storage/buffer/bufmgr.c:5243 storage/buffer/bufmgr.c:5263 +#: storage/buffer/bufmgr.c:5677 storage/buffer/bufmgr.c:5697 #, c-format msgid "writing block %u of relation %s" msgstr "записування блоку %u зв'язку %s" -#: storage/buffer/bufmgr.c:5593 -#, c-format -msgid "snapshot too old" -msgstr "знімок є застарим" - -#: storage/buffer/localbuf.c:219 +#: storage/buffer/localbuf.c:220 #, c-format msgid "no empty local buffer available" msgstr "немає жодного пустого локального буферу" -#: storage/buffer/localbuf.c:592 +#: storage/buffer/localbuf.c:597 #, c-format msgid "cannot access temporary tables during a parallel operation" msgstr "немає доступу до тимчасових таблиць під час паралельної операції" -#: storage/buffer/localbuf.c:699 +#: storage/buffer/localbuf.c:712 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "параметр \"temp_buffers\" не можна змінити після того, як тимчасові таблиці отримали доступ в сеансі." @@ -21319,151 +22047,156 @@ msgstr "не вдалося прочитати файл \"%s\": прочитан msgid "could not read from temporary file: read only %zu of %zu bytes" msgstr "не вдалося прочитати тимчасовий файл: прочитано лише %zu з %zu байт" -#: storage/file/buffile.c:774 storage/file/buffile.c:895 +#: storage/file/buffile.c:774 storage/file/buffile.c:877 #, c-format msgid "could not determine size of temporary file \"%s\" from BufFile \"%s\": %m" msgstr "не вдалося визначити розмір тимчасового файлу \"%s\" з BufFile \"%s\": %m" -#: storage/file/buffile.c:974 +#: storage/file/buffile.c:956 #, c-format msgid "could not delete fileset \"%s\": %m" msgstr "не вдалося видалити набір файлів \"%s\": %m" -#: storage/file/buffile.c:992 storage/smgr/md.c:338 storage/smgr/md.c:1041 +#: storage/file/buffile.c:974 storage/smgr/md.c:336 storage/smgr/md.c:1192 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "не вдалося скоротити файл \"%s\": %m" -#: storage/file/fd.c:537 storage/file/fd.c:609 storage/file/fd.c:645 +#: storage/file/fd.c:583 storage/file/fd.c:655 storage/file/fd.c:691 #, c-format msgid "could not flush dirty data: %m" msgstr "не вдалося очистити \"брудні\" дані: %m" -#: storage/file/fd.c:567 +#: storage/file/fd.c:613 #, c-format msgid "could not determine dirty data size: %m" msgstr "не вдалося визначити розмір \"брудних\" даних: %m" -#: storage/file/fd.c:619 +#: storage/file/fd.c:665 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "не вдалося munmap() під час очищення даних: %m" -#: storage/file/fd.c:937 +#: storage/file/fd.c:983 #, c-format msgid "getrlimit failed: %m" msgstr "помилка getrlimit: %m" -#: storage/file/fd.c:1027 +#: storage/file/fd.c:1073 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "недостатньо доступних дескрипторів файлу для запуску серверного процесу" -#: storage/file/fd.c:1028 +#: storage/file/fd.c:1074 #, c-format msgid "System allows %d, server needs at least %d." msgstr "Система дозволяє %d, сервер потребує щонайменше %d." -#: storage/file/fd.c:1116 storage/file/fd.c:2565 storage/file/fd.c:2674 -#: storage/file/fd.c:2825 +#: storage/file/fd.c:1162 storage/file/fd.c:2618 storage/file/fd.c:2727 +#: storage/file/fd.c:2878 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "нестача дескрипторів файлу: %m; вивільніть і спробуйте знову" -#: storage/file/fd.c:1490 +#: storage/file/fd.c:1536 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "тимчасовий файл: шлях \"%s\", розмір %lu" -#: storage/file/fd.c:1629 +#: storage/file/fd.c:1675 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "неможливо створити тимчасовий каталог \"%s\": %m" -#: storage/file/fd.c:1636 +#: storage/file/fd.c:1682 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "неможливо створити тимчасовий підкаталог \"%s\": %m" -#: storage/file/fd.c:1833 +#: storage/file/fd.c:1879 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "неможливо створити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1869 +#: storage/file/fd.c:1915 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "неможливо відкрити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1910 +#: storage/file/fd.c:1956 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "помилка видалення тимчасового файлу \"%s\": %m" -#: storage/file/fd.c:1998 +#: storage/file/fd.c:2044 #, c-format msgid "could not delete file \"%s\": %m" msgstr "не вдалося видалити файл \"%s\": %m" -#: storage/file/fd.c:2185 +#: storage/file/fd.c:2234 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "розмір тимчасового файлу перевищує temp_file_limit (%d Кб)" -#: storage/file/fd.c:2541 storage/file/fd.c:2600 +#: storage/file/fd.c:2594 storage/file/fd.c:2653 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити файл \"%s\"" -#: storage/file/fd.c:2645 +#: storage/file/fd.c:2698 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі виконати команду \"%s\"" -#: storage/file/fd.c:2801 +#: storage/file/fd.c:2854 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити каталог \"%s\"" -#: storage/file/fd.c:3331 +#: storage/file/fd.c:3384 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "знайдено неочікуваний файл в каталозі тимчасових файлів: \"%s\"" -#: storage/file/fd.c:3449 +#: storage/file/fd.c:3502 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (syncfs), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3463 -#, c-format -msgid "could not synchronize file system for file \"%s\": %m" -msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" - -#: storage/file/fd.c:3676 +#: storage/file/fd.c:3729 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "Синхронізація каталогу даних (pre-fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3708 +#: storage/file/fd.c:3761 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3897 +#: storage/file/fd.c:3950 #, c-format -msgid "debug_io_direct is not supported on this platform." -msgstr "debug_io_direct не підтримується на цій платформі." +msgid "\"debug_io_direct\" is not supported on this platform." +msgstr "" + +#: storage/file/fd.c:3964 +#, c-format +msgid "Invalid list syntax in parameter \"%s\"" +msgstr "" -#: storage/file/fd.c:3944 +#: storage/file/fd.c:3984 #, c-format -msgid "debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small" -msgstr "debug_io_direct не підтримується для WAL, оскільки XLOG_BLCKSZ занадто малий" +msgid "Invalid option \"%s\"" +msgstr "Недійсний параметр \"%s\"" -#: storage/file/fd.c:3951 +#: storage/file/fd.c:3997 #, c-format -msgid "debug_io_direct is not supported for data because BLCKSZ is too small" -msgstr "debug_io_direct не підтримується для даних, тому що BLCKSZ занадто малий" +msgid "\"debug_io_direct\" is not supported for WAL because XLOG_BLCKSZ is too small" +msgstr "" + +#: storage/file/fd.c:4004 +#, c-format +msgid "\"debug_io_direct\" is not supported for data because BLCKSZ is too small" +msgstr "" #: storage/file/reinit.c:145 #, c-format @@ -21475,22 +22208,22 @@ msgstr "скидання нежурнальованих відношень (init msgid "resetting unlogged relations (cleanup), elapsed time: %ld.%02d s, current path: %s" msgstr "скидання нежурнальованих відношень (очищення), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/sharedfileset.c:79 +#: storage/file/sharedfileset.c:73 #, c-format msgid "could not attach to a SharedFileSet that is already destroyed" msgstr "не вдалося підключитися до вже знищеному набору SharedFileSet" -#: storage/ipc/dsm.c:352 +#: storage/ipc/dsm.c:379 #, c-format msgid "dynamic shared memory control segment is corrupt" msgstr "сегмент керування динамічної спільної пам'яті пошкоджений" -#: storage/ipc/dsm.c:417 +#: storage/ipc/dsm.c:444 #, c-format msgid "dynamic shared memory control segment is not valid" msgstr "сегмент керування динамічної спільної пам'яті недійсний" -#: storage/ipc/dsm.c:599 +#: storage/ipc/dsm.c:626 #, c-format msgid "too many dynamic shared memory segments" msgstr "занадто багато сегментів динамічної спільної пам'яті" @@ -21550,73 +22283,99 @@ msgstr "не вдалося закрити сегмент спільної па msgid "could not duplicate handle for \"%s\": %m" msgstr "не вдалося продублювати маркер для \"%s\": %m" -#: storage/ipc/procarray.c:3795 +#: storage/ipc/dsm_registry.c:142 +#, c-format +msgid "DSM segment name cannot be empty" +msgstr "Ім'я сегмента DSM не може бути порожнім" + +#: storage/ipc/dsm_registry.c:146 +#, c-format +msgid "DSM segment name too long" +msgstr "Занадто довге ім'я сегменту DSM" + +#: storage/ipc/dsm_registry.c:150 +#, c-format +msgid "DSM segment size must be nonzero" +msgstr "Розмір сегменту DSM повинен бути ненульовим" + +#: storage/ipc/dsm_registry.c:176 +#, c-format +msgid "requested DSM segment size does not match size of existing segment" +msgstr "розмір запитуваного сегмента DSM не збігається з розміром наявного сегмента" + +#: storage/ipc/procarray.c:488 storage/lmgr/proc.c:352 +#: tcop/backend_startup.c:304 +#, c-format +msgid "sorry, too many clients already" +msgstr "вибачте, вже забагато клієнтів" + +#: storage/ipc/procarray.c:3857 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база даних \"%s\" використовується підготовленими транзакціями" -#: storage/ipc/procarray.c:3827 storage/ipc/procarray.c:3836 +#: storage/ipc/procarray.c:3893 storage/ipc/procarray.c:3901 #: storage/ipc/signalfuncs.c:235 storage/ipc/signalfuncs.c:242 #, c-format msgid "permission denied to terminate process" msgstr "немає дозволу для припинення процесу" -#: storage/ipc/procarray.c:3828 storage/ipc/signalfuncs.c:236 +#: storage/ipc/procarray.c:3894 storage/ipc/signalfuncs.c:236 #, c-format msgid "Only roles with the %s attribute may terminate processes of roles with the %s attribute." msgstr "Тільки ролі з атрибутом %s можуть припинити процеси ролей з атрибутом %s." -#: storage/ipc/procarray.c:3837 storage/ipc/signalfuncs.c:243 +#: storage/ipc/procarray.c:3902 storage/ipc/signalfuncs.c:243 #, c-format msgid "Only roles with privileges of the role whose process is being terminated or with privileges of the \"%s\" role may terminate this process." msgstr "Лише ролі з привілеями ролі, процес якої завершується, або з привілеями ролі \"%s\" можуть завершити цей процес." -#: storage/ipc/procsignal.c:420 +#: storage/ipc/procsignal.c:416 #, c-format msgid "still waiting for backend with PID %d to accept ProcSignalBarrier" msgstr "все ще чекаємо на прийняття ProcSignalBarrier від бекенд з PID %d" -#: storage/ipc/shm_mq.c:384 +#: storage/ipc/shm_mq.c:383 #, c-format msgid "cannot send a message of size %zu via shared memory queue" msgstr "не можна надсилати повідомлення розміру %zu через чергу спільної пам'яті" -#: storage/ipc/shm_mq.c:719 +#: storage/ipc/shm_mq.c:718 #, c-format msgid "invalid message size %zu in shared memory queue" msgstr "неприпустимий розмір повідомлення %zu в черзі спільної пам'яті" -#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:963 -#: storage/lmgr/lock.c:1001 storage/lmgr/lock.c:2786 storage/lmgr/lock.c:4171 -#: storage/lmgr/lock.c:4236 storage/lmgr/lock.c:4586 -#: storage/lmgr/predicate.c:2412 storage/lmgr/predicate.c:2427 -#: storage/lmgr/predicate.c:3824 storage/lmgr/predicate.c:4871 -#: utils/hash/dynahash.c:1107 +#: storage/ipc/shm_toc.c:118 storage/ipc/shm_toc.c:200 storage/lmgr/lock.c:984 +#: storage/lmgr/lock.c:1022 storage/lmgr/lock.c:2825 storage/lmgr/lock.c:4210 +#: storage/lmgr/lock.c:4275 storage/lmgr/lock.c:4625 +#: storage/lmgr/predicate.c:2463 storage/lmgr/predicate.c:2478 +#: storage/lmgr/predicate.c:3875 storage/lmgr/predicate.c:4922 +#: utils/hash/dynahash.c:1095 #, c-format msgid "out of shared memory" msgstr "нестача спільної пам'яті" -#: storage/ipc/shmem.c:170 storage/ipc/shmem.c:266 +#: storage/ipc/shmem.c:161 storage/ipc/shmem.c:257 #, c-format msgid "out of shared memory (%zu bytes requested)" msgstr "нестача спільної пам'яті (потребується %zu байт)" -#: storage/ipc/shmem.c:445 +#: storage/ipc/shmem.c:436 #, c-format msgid "could not create ShmemIndex entry for data structure \"%s\"" msgstr "не вдалося створити введення ShmemIndex для структури даних \"%s\"" -#: storage/ipc/shmem.c:460 +#: storage/ipc/shmem.c:451 #, c-format msgid "ShmemIndex entry size is wrong for data structure \"%s\": expected %zu, actual %zu" msgstr "розмір введення ShmemIndex є неправильним для структури даних \"%s\": очікувано %zu, фактично %zu" -#: storage/ipc/shmem.c:479 +#: storage/ipc/shmem.c:470 #, c-format msgid "not enough shared memory for data structure \"%s\" (%zu bytes requested)" msgstr "недостатньо спільної пам'яті для структури даних \"%s\" (потрібно було %zu байтів)" -#: storage/ipc/shmem.c:511 storage/ipc/shmem.c:530 +#: storage/ipc/shmem.c:502 storage/ipc/shmem.c:521 #, c-format msgid "requested shared memory size overflows size_t" msgstr "запитаний сегмент спільної пам'яті не вміщається в size_t" @@ -21626,8 +22385,8 @@ msgstr "запитаний сегмент спільної пам'яті не в msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d не є внутрішнім процесом PostgreSQL" -#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1387 -#: utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1448 +#: utils/adt/mcxtfuncs.c:182 #, c-format msgid "could not send signal to process %d: %m" msgstr "не вдалося надіслати сигнал процесу %d: %m" @@ -21666,90 +22425,86 @@ msgstr[3] "процес з PID %d не завершився протягом %ll msgid "\"timeout\" must not be negative" msgstr "\"timeout\" повинен не може бути негативним" -#: storage/ipc/signalfuncs.c:284 -#, c-format -msgid "must be superuser to rotate log files with adminpack 1.0" -msgstr "прокручувати файли протоколів використовуючи adminpack 1.0, може лише суперкористувач" - -#. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:286 utils/adt/genfile.c:250 -#, c-format -msgid "Consider using %s, which is part of core, instead." -msgstr "Розгляньте використання %s, що є частиною ядра." - -#: storage/ipc/signalfuncs.c:292 storage/ipc/signalfuncs.c:312 +#: storage/ipc/signalfuncs.c:285 #, c-format msgid "rotation not possible because log collection not active" msgstr "обертання неможливе тому, що записування колекції не активоване" -#: storage/ipc/standby.c:330 +#: storage/ipc/standby.c:329 #, c-format msgid "recovery still waiting after %ld.%03d ms: %s" msgstr "відновлення все ще чекає, після %ld.%03d мс: %s" -#: storage/ipc/standby.c:339 +#: storage/ipc/standby.c:338 #, c-format msgid "recovery finished waiting after %ld.%03d ms: %s" msgstr "відновлення закінчило очікування після %ld.%03d мс: %s" -#: storage/ipc/standby.c:921 tcop/postgres.c:3384 +#: storage/ipc/standby.c:920 tcop/postgres.c:3196 #, c-format msgid "canceling statement due to conflict with recovery" msgstr "виконання оператора скасовано через конфлікт з процесом відновлення" -#: storage/ipc/standby.c:922 tcop/postgres.c:2533 +#: storage/ipc/standby.c:921 tcop/postgres.c:2557 #, c-format msgid "User transaction caused buffer deadlock with recovery." msgstr "Транзакція користувача призвела до взаємного блокування з процесом відновлення." -#: storage/ipc/standby.c:1488 +#: storage/ipc/standby.c:1486 msgid "unknown reason" msgstr "невідома причина" -#: storage/ipc/standby.c:1493 +#: storage/ipc/standby.c:1491 msgid "recovery conflict on buffer pin" msgstr "конфлікт відновлення, закріпленого в буфері" -#: storage/ipc/standby.c:1496 +#: storage/ipc/standby.c:1494 msgid "recovery conflict on lock" msgstr "конфлікт відновлення при блокуванні" -#: storage/ipc/standby.c:1499 +#: storage/ipc/standby.c:1497 msgid "recovery conflict on tablespace" msgstr "конфлікт відновлення у табличному просторі" -#: storage/ipc/standby.c:1502 +#: storage/ipc/standby.c:1500 msgid "recovery conflict on snapshot" msgstr "конфлікт відновлення під час знімку" -#: storage/ipc/standby.c:1505 +#: storage/ipc/standby.c:1503 msgid "recovery conflict on replication slot" msgstr "конфлікт відновлення у слоті реплікації" -#: storage/ipc/standby.c:1508 +#: storage/ipc/standby.c:1506 msgid "recovery conflict on buffer deadlock" msgstr "конфлікт відновлення при взаємному блокуванні буфера" -#: storage/ipc/standby.c:1511 +#: storage/ipc/standby.c:1509 msgid "recovery conflict on database" msgstr "конфлікт відновлення у базі даних" -#: storage/large_object/inv_api.c:191 +#: storage/large_object/inv_api.c:190 #, c-format msgid "pg_largeobject entry for OID %u, page %d has invalid data field size %d" msgstr "у введенні pg_largeobject для OID %u, сторінка %d має неприпустимий розмір поля даних %d" -#: storage/large_object/inv_api.c:273 +#: storage/large_object/inv_api.c:272 #, c-format msgid "invalid flags for opening a large object: %d" msgstr "неприпустимі позначки для відкриття великого об'єкту: %d" -#: storage/large_object/inv_api.c:456 +#: storage/large_object/inv_api.c:297 storage/large_object/inv_api.c:309 +#: storage/large_object/inv_api.c:506 storage/large_object/inv_api.c:617 +#: storage/large_object/inv_api.c:807 +#, c-format +msgid "permission denied for large object %u" +msgstr "немає дозволу для великого об'єкта %u" + +#: storage/large_object/inv_api.c:455 #, c-format msgid "invalid whence setting: %d" msgstr "неприпустиме значення орієнтиру: %d" -#: storage/large_object/inv_api.c:628 +#: storage/large_object/inv_api.c:627 #, c-format msgid "invalid large object write request size: %d" msgstr "неприпустимий розмір запису великого об'єкту: %d" @@ -21774,211 +22529,211 @@ msgstr "виявлено взаємне блокування" msgid "See server log for query details." msgstr "Подробиці запиту перегляньте в записі серверу." -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:848 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "при оновленні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:851 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "при видаленні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:854 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "при блокуванні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:857 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "при блокуванні оновленої версії (%u,%u) кортежу в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:860 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "при вставці кортежу індексу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:863 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "під час перевірки унікальності кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:877 +#: storage/lmgr/lmgr.c:866 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "під час повторної перевірки оновленого кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:880 +#: storage/lmgr/lmgr.c:869 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "під час перевірки обмеження-виключення для кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:1174 +#: storage/lmgr/lmgr.c:1239 #, c-format msgid "relation %u of database %u" msgstr "відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1180 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "extension of relation %u of database %u" msgstr "розширення відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1186 +#: storage/lmgr/lmgr.c:1251 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid бази даних %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1256 #, c-format msgid "page %u of relation %u of database %u" msgstr "сторінка %u відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1198 +#: storage/lmgr/lmgr.c:1263 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1206 +#: storage/lmgr/lmgr.c:1271 #, c-format msgid "transaction %u" msgstr "транзакція %u" -#: storage/lmgr/lmgr.c:1211 +#: storage/lmgr/lmgr.c:1276 #, c-format msgid "virtual transaction %d/%u" msgstr "віртуальна транзакція %d/%u" -#: storage/lmgr/lmgr.c:1217 +#: storage/lmgr/lmgr.c:1282 #, c-format msgid "speculative token %u of transaction %u" msgstr "орієнтовний маркер %u транзакції %u" -#: storage/lmgr/lmgr.c:1223 +#: storage/lmgr/lmgr.c:1288 #, c-format msgid "object %u of class %u of database %u" msgstr "об’єкт %u класу %u бази даних %u" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1296 #, c-format msgid "user lock [%u,%u,%u]" msgstr "користувацьке блокування [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1238 +#: storage/lmgr/lmgr.c:1303 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендаційне блокування [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1246 +#: storage/lmgr/lmgr.c:1311 #, c-format msgid "remote transaction %u of subscription %u of database %u" msgstr "віддалена транзакція %u з підписки %u з бази даних %u" -#: storage/lmgr/lmgr.c:1253 +#: storage/lmgr/lmgr.c:1318 #, c-format msgid "unrecognized locktag type %d" msgstr "нерозпізнаний тип блокування %d" -#: storage/lmgr/lock.c:791 +#: storage/lmgr/lock.c:812 #, c-format msgid "cannot acquire lock mode %s on database objects while recovery is in progress" msgstr "поки виконується відновлення, не можна отримати блокування об'єктів бази даних в режимі %s" -#: storage/lmgr/lock.c:793 +#: storage/lmgr/lock.c:814 #, c-format msgid "Only RowExclusiveLock or less can be acquired on database objects during recovery." msgstr "Під час процесу відновлення для об'єктів бази даних може бути отримане лише блокування RowExclusiveLock або менш сильна." -#: storage/lmgr/lock.c:3235 storage/lmgr/lock.c:3303 storage/lmgr/lock.c:3419 +#: storage/lmgr/lock.c:3274 storage/lmgr/lock.c:3342 storage/lmgr/lock.c:3458 #, c-format msgid "cannot PREPARE while holding both session-level and transaction-level locks on the same object" msgstr "не можна виконати PREPARE, під час утримання блокування на рівні сеансу і на рівні транзакції для одного об'єкта" -#: storage/lmgr/predicate.c:649 +#: storage/lmgr/predicate.c:653 #, c-format msgid "not enough elements in RWConflictPool to record a read/write conflict" msgstr "в RWConflictPool недостатньо елементів для запису про конфлікт читання/запису" -#: storage/lmgr/predicate.c:650 storage/lmgr/predicate.c:675 +#: storage/lmgr/predicate.c:654 storage/lmgr/predicate.c:679 #, c-format -msgid "You might need to run fewer transactions at a time or increase max_connections." -msgstr "Можливо, вам слід виконувати менше транзакцій в секунду або збільшити параметр max_connections." +msgid "You might need to run fewer transactions at a time or increase \"max_connections\"." +msgstr "" -#: storage/lmgr/predicate.c:674 +#: storage/lmgr/predicate.c:678 #, c-format msgid "not enough elements in RWConflictPool to record a potential read/write conflict" msgstr "в RWConflictPool недостатньо елементів для запису про потенціальний конфлікт читання/запису" -#: storage/lmgr/predicate.c:1630 +#: storage/lmgr/predicate.c:1681 #, c-format msgid "\"default_transaction_isolation\" is set to \"serializable\"." msgstr "параметр \"default_transaction_isolation\" має значення \"serializable\"." -#: storage/lmgr/predicate.c:1631 +#: storage/lmgr/predicate.c:1682 #, c-format msgid "You can use \"SET default_transaction_isolation = 'repeatable read'\" to change the default." msgstr "Ви можете використати \"SET default_transaction_isolation = 'repeatable read'\" щоб змінити режим за замовчуванням." -#: storage/lmgr/predicate.c:1682 +#: storage/lmgr/predicate.c:1733 #, c-format msgid "a snapshot-importing transaction must not be READ ONLY DEFERRABLE" msgstr "транзакція, яка імпортує знімок не повинна бутив READ ONLY DEFERRABLE" -#: storage/lmgr/predicate.c:1761 utils/time/snapmgr.c:570 -#: utils/time/snapmgr.c:576 +#: storage/lmgr/predicate.c:1812 utils/time/snapmgr.c:535 +#: utils/time/snapmgr.c:541 #, c-format msgid "could not import the requested snapshot" msgstr "не вдалося імпортувати запитаний знімок" -#: storage/lmgr/predicate.c:1762 utils/time/snapmgr.c:577 +#: storage/lmgr/predicate.c:1813 utils/time/snapmgr.c:542 #, c-format msgid "The source process with PID %d is not running anymore." msgstr "Вихідний процес з PID %d вже не виконується." -#: storage/lmgr/predicate.c:3935 storage/lmgr/predicate.c:3971 -#: storage/lmgr/predicate.c:4004 storage/lmgr/predicate.c:4012 -#: storage/lmgr/predicate.c:4051 storage/lmgr/predicate.c:4281 -#: storage/lmgr/predicate.c:4600 storage/lmgr/predicate.c:4612 -#: storage/lmgr/predicate.c:4659 storage/lmgr/predicate.c:4695 +#: storage/lmgr/predicate.c:3986 storage/lmgr/predicate.c:4022 +#: storage/lmgr/predicate.c:4055 storage/lmgr/predicate.c:4063 +#: storage/lmgr/predicate.c:4102 storage/lmgr/predicate.c:4332 +#: storage/lmgr/predicate.c:4651 storage/lmgr/predicate.c:4663 +#: storage/lmgr/predicate.c:4710 storage/lmgr/predicate.c:4746 #, c-format msgid "could not serialize access due to read/write dependencies among transactions" msgstr "не вдалося серіалізувати доступ через залежність читання/запису серед транзакцій" -#: storage/lmgr/predicate.c:3937 storage/lmgr/predicate.c:3973 -#: storage/lmgr/predicate.c:4006 storage/lmgr/predicate.c:4014 -#: storage/lmgr/predicate.c:4053 storage/lmgr/predicate.c:4283 -#: storage/lmgr/predicate.c:4602 storage/lmgr/predicate.c:4614 -#: storage/lmgr/predicate.c:4661 storage/lmgr/predicate.c:4697 +#: storage/lmgr/predicate.c:3988 storage/lmgr/predicate.c:4024 +#: storage/lmgr/predicate.c:4057 storage/lmgr/predicate.c:4065 +#: storage/lmgr/predicate.c:4104 storage/lmgr/predicate.c:4334 +#: storage/lmgr/predicate.c:4653 storage/lmgr/predicate.c:4665 +#: storage/lmgr/predicate.c:4712 storage/lmgr/predicate.c:4748 #, c-format msgid "The transaction might succeed if retried." msgstr "Транзакція може завершитися успішно, якщо повторити спробу." -#: storage/lmgr/proc.c:349 +#: storage/lmgr/proc.c:348 #, c-format -msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" -msgstr "кількість запитаних підключень резервного серверу перевищує max_wal_senders (поточна %d)" +msgid "number of requested standby connections exceeds \"max_wal_senders\" (currently %d)" +msgstr "" -#: storage/lmgr/proc.c:1480 +#: storage/lmgr/proc.c:1541 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "процес %d уникнув взаємного блокування, чекаючи в режимі %s блокування %s змінивши порядок черги після %ld.%03d мс" -#: storage/lmgr/proc.c:1495 +#: storage/lmgr/proc.c:1556 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "процес %d виявив взаємне блокування, чекаючи в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1504 +#: storage/lmgr/proc.c:1565 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "процес %d все ще чекає в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1511 +#: storage/lmgr/proc.c:1572 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "процес %d отримав в режимі %s блокування %s після %ld.%03d мс" -#: storage/lmgr/proc.c:1528 +#: storage/lmgr/proc.c:1589 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "процес %d не зміг отримати в режимі %s блокування %s після %ld.%03d мс" @@ -22011,67 +22766,202 @@ msgstr "пошкоджена довжина елементу: загальний msgid "corrupted line pointer: offset = %u, size = %u" msgstr "пошкоджений вказівник рядка: зсув = %u, розмір = %u" -#: storage/smgr/md.c:487 storage/smgr/md.c:549 +#: storage/smgr/md.c:485 storage/smgr/md.c:547 #, c-format msgid "cannot extend file \"%s\" beyond %u blocks" msgstr "не можна розширити файл \"%s\" до блоку %u" -#: storage/smgr/md.c:502 storage/smgr/md.c:613 +#: storage/smgr/md.c:500 storage/smgr/md.c:611 #, c-format msgid "could not extend file \"%s\": %m" msgstr "не вдалося розширити файл \"%s\": %m" -#: storage/smgr/md.c:508 +#: storage/smgr/md.c:506 #, 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:591 +#: storage/smgr/md.c:589 #, c-format msgid "could not extend file \"%s\" with FileFallocate(): %m" msgstr "не вдалося розширити файл \"%s\" за допомогою FileFallocate(): %m" -#: storage/smgr/md.c:782 +#: storage/smgr/md.c:869 +#, c-format +msgid "could not read blocks %u..%u in file \"%s\": %m" +msgstr "не вдалося прочитати блоки %u..%u у файлі \"%s\": %m" + +#: storage/smgr/md.c:895 +#, c-format +msgid "could not read blocks %u..%u in file \"%s\": read only %zu of %zu bytes" +msgstr "не вдалося прочитати блоки %u..%u у файлі \"%s\": прочитано лише %zu з %zu байтів" + +#: storage/smgr/md.c:995 +#, c-format +msgid "could not write blocks %u..%u in file \"%s\": %m" +msgstr "не вдалося записати блоки %u..%u у файл \"%s\": %m" + +#: storage/smgr/md.c:1163 +#, 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:1218 +#, c-format +msgid "could not truncate file \"%s\" to %u blocks: %m" +msgstr "не вдалося скоротити файл \"%s\" до %u блоків: %m" + +#: storage/smgr/md.c:1688 +#, c-format +msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" +msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): попередній сегмент має лише %u блоків" + +#: storage/smgr/md.c:1702 +#, c-format +msgid "could not open file \"%s\" (target block %u): %m" +msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): %m" + +#: tcop/backend_startup.c:85 +#, c-format +msgid "SSL configuration could not be loaded in child process" +msgstr "Не вдалося завантажити конфігурацію SSL в дочірній процес" + +#: tcop/backend_startup.c:208 +#, c-format +msgid "connection received: host=%s port=%s" +msgstr "з'єднання отримано: хост=%s порт=%s" + +#: tcop/backend_startup.c:213 +#, c-format +msgid "connection received: host=%s" +msgstr "з'єднання отримано: хост=%s" + +#: tcop/backend_startup.c:277 +#, c-format +msgid "the database system is starting up" +msgstr "система бази даних запускається" + +#: tcop/backend_startup.c:283 #, c-format -msgid "could not read block %u in file \"%s\": %m" -msgstr "не вдалося прочитати блок %u в файлі \"%s\": %m" +msgid "the database system is not yet accepting connections" +msgstr "система бази даних ще не приймає підключення" + +#: tcop/backend_startup.c:284 +#, c-format +msgid "Consistent recovery state has not been yet reached." +msgstr "Узгодженого стану відновлення ще не досягнуто." + +#: tcop/backend_startup.c:288 +#, c-format +msgid "the database system is not accepting connections" +msgstr "система бази даних не приймає підключення" + +#: tcop/backend_startup.c:289 +#, c-format +msgid "Hot standby mode is disabled." +msgstr "Режим Hot standby вимкнений." + +#: tcop/backend_startup.c:294 +#, c-format +msgid "the database system is shutting down" +msgstr "система бази даних завершує роботу" + +#: tcop/backend_startup.c:299 +#, c-format +msgid "the database system is in recovery mode" +msgstr "система бази даних у режимі відновлення" + +#: tcop/backend_startup.c:414 +#, c-format +msgid "received direct SSL connection request without ALPN protocol negotiation extension" +msgstr "" + +#: tcop/backend_startup.c:420 +#, c-format +msgid "direct SSL connection accepted" +msgstr "" + +#: tcop/backend_startup.c:430 +#, c-format +msgid "direct SSL connection rejected" +msgstr "" + +#: tcop/backend_startup.c:489 tcop/backend_startup.c:517 +#, c-format +msgid "incomplete startup packet" +msgstr "неповний стартовий пакет" + +#: tcop/backend_startup.c:501 tcop/backend_startup.c:538 +#, c-format +msgid "invalid length of startup packet" +msgstr "неприпустима довжина стартового пакету" + +#: tcop/backend_startup.c:573 +#, c-format +msgid "SSLRequest accepted" +msgstr "" + +#: tcop/backend_startup.c:576 +#, c-format +msgid "SSLRequest rejected" +msgstr "" + +#: tcop/backend_startup.c:585 +#, c-format +msgid "failed to send SSL negotiation response: %m" +msgstr "помилка надсилання протоколу SSL в процесі відповіді зв'язування: %m" + +#: tcop/backend_startup.c:603 +#, c-format +msgid "received unencrypted data after SSL request" +msgstr "отримані незашифровані дані після запиту SSL" + +#: tcop/backend_startup.c:604 tcop/backend_startup.c:658 +#, c-format +msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." +msgstr "Це може бути або помилкою клієнтського програмного забезпечення, або доказом спроби техносферної атаки." + +#: tcop/backend_startup.c:627 +#, c-format +msgid "GSSENCRequest accepted" +msgstr "" -#: storage/smgr/md.c:798 +#: tcop/backend_startup.c:630 #, c-format -msgid "could not read block %u in file \"%s\": read only %d of %d bytes" -msgstr "не вдалося прочитати блок %u в файлі \"%s\": прочитано лише %d з %d байт" +msgid "GSSENCRequest rejected" +msgstr "" -#: storage/smgr/md.c:856 +#: tcop/backend_startup.c:639 #, c-format -msgid "could not write block %u in file \"%s\": %m" -msgstr "не вдалося записати блок %u у файл \"%s\": %m" +msgid "failed to send GSSAPI negotiation response: %m" +msgstr "помилка надсилання GSSAPI в процесі відповіді зв'язування: %m" -#: storage/smgr/md.c:861 +#: tcop/backend_startup.c:657 #, c-format -msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" -msgstr "не вдалося записати блок %u в файл \"%s\": записано лише %d з %d байт" +msgid "received unencrypted data after GSSAPI encryption request" +msgstr "отримані незашифровані дані після запиту шифрування GSSAPI" -#: storage/smgr/md.c:1012 +#: tcop/backend_startup.c:681 #, c-format -msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" -msgstr "не вдалося скоротити файл \"%s\" до %u блоків: лише %u блоків зараз" +msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" +msgstr "протокол інтерфейсу, що не підтримується, %u.%u: сервер підтримує %u.0 до %u.%u" -#: storage/smgr/md.c:1067 +#: tcop/backend_startup.c:744 #, c-format -msgid "could not truncate file \"%s\" to %u blocks: %m" -msgstr "не вдалося скоротити файл \"%s\" до %u блоків: %m" +msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." +msgstr "Дійсні значення: \"false\", 0, \"true\", 1, \"database\"." -#: storage/smgr/md.c:1494 +#: tcop/backend_startup.c:785 #, c-format -msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" -msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): попередній сегмент має лише %u блоків" +msgid "invalid startup packet layout: expected terminator as last byte" +msgstr "неприпустима структура стартового пакету: останнім байтом очікувався термінатор" -#: storage/smgr/md.c:1508 +#: tcop/backend_startup.c:802 #, c-format -msgid "could not open file \"%s\" (target block %u): %m" -msgstr "не вдалося відкрити файл \"%s\" (цільовий блок %u): %m" +msgid "no PostgreSQL user name specified in startup packet" +msgstr "не вказано жодного ім'я користувача PostgreSQL у стартовому пакеті" -#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2132 +#: tcop/fastpath.c:142 utils/fmgr/fmgr.c:2161 #, c-format msgid "function with OID %u does not exist" msgstr "функція з OID %u не існує" @@ -22086,8 +22976,8 @@ msgstr "неможливо викликати функцію \"%s\" через msgid "fastpath function call: \"%s\" (OID %u)" msgstr "виклик функції fastpath: \"%s\" (OID %u)" -#: tcop/fastpath.c:313 tcop/postgres.c:1365 tcop/postgres.c:1601 -#: tcop/postgres.c:2059 tcop/postgres.c:2309 +#: tcop/fastpath.c:313 tcop/postgres.c:1369 tcop/postgres.c:1605 +#: tcop/postgres.c:2071 tcop/postgres.c:2333 #, c-format msgid "duration: %s ms" msgstr "тривалість: %s мс" @@ -22117,315 +23007,320 @@ msgstr "неприпустимий розмір аргументу %d в пов msgid "incorrect binary data format in function argument %d" msgstr "неправильний формат двійкових даних в аргументі функції %d" -#: tcop/postgres.c:463 tcop/postgres.c:4882 +#: tcop/postgres.c:467 tcop/postgres.c:5012 #, c-format msgid "invalid frontend message type %d" msgstr "неприпустимий тип клієнтського повідомлення %d" -#: tcop/postgres.c:1072 +#: tcop/postgres.c:1076 #, c-format msgid "statement: %s" msgstr "оператор: %s" -#: tcop/postgres.c:1370 +#: tcop/postgres.c:1374 #, c-format msgid "duration: %s ms statement: %s" msgstr "тривалість: %s мс, оператор: %s" -#: tcop/postgres.c:1476 +#: tcop/postgres.c:1480 #, c-format msgid "cannot insert multiple commands into a prepared statement" msgstr "до підтготовленого оператору не можна вставити декілька команд" -#: tcop/postgres.c:1606 +#: tcop/postgres.c:1610 #, c-format msgid "duration: %s ms parse %s: %s" msgstr "тривалість: %s мс, аналізування %s: %s" -#: tcop/postgres.c:1672 tcop/postgres.c:2629 +#: tcop/postgres.c:1677 tcop/postgres.c:2653 #, c-format msgid "unnamed prepared statement does not exist" msgstr "підготовлений оператор без імені не існує" -#: tcop/postgres.c:1713 +#: tcop/postgres.c:1729 #, c-format msgid "bind message has %d parameter formats but %d parameters" msgstr "повідомлення bind має %d форматів, але %d параметрів" -#: tcop/postgres.c:1719 +#: tcop/postgres.c:1735 #, c-format msgid "bind message supplies %d parameters, but prepared statement \"%s\" requires %d" msgstr "в повідомленні bind передано %d параметрів, але підготовлений оператор \"%s\" потребує %d" -#: tcop/postgres.c:1937 +#: tcop/postgres.c:1949 #, c-format msgid "incorrect binary data format in bind parameter %d" msgstr "невірний формат двійкових даних в параметрі bind %d" -#: tcop/postgres.c:2064 +#: tcop/postgres.c:2076 #, c-format msgid "duration: %s ms bind %s%s%s: %s" msgstr "тривалість: %s мс, повідомлення bind %s%s%s: %s" -#: tcop/postgres.c:2118 tcop/postgres.c:2712 +#: tcop/postgres.c:2131 tcop/postgres.c:2735 #, c-format msgid "portal \"%s\" does not exist" msgstr "портал \"%s\" не існує" -#: tcop/postgres.c:2189 +#: tcop/postgres.c:2213 #, c-format msgid "%s %s%s%s: %s" msgstr "%s %s%s%s: %s" -#: tcop/postgres.c:2191 tcop/postgres.c:2317 +#: tcop/postgres.c:2215 tcop/postgres.c:2341 msgid "execute fetch from" msgstr "виконати витягнення з" -#: tcop/postgres.c:2192 tcop/postgres.c:2318 +#: tcop/postgres.c:2216 tcop/postgres.c:2342 msgid "execute" msgstr "виконувати" -#: tcop/postgres.c:2314 +#: tcop/postgres.c:2338 #, c-format msgid "duration: %s ms %s %s%s%s: %s" msgstr "тривалість: %s мс %s %s%s%s: %s" -#: tcop/postgres.c:2462 +#: tcop/postgres.c:2486 #, c-format msgid "prepare: %s" msgstr "підготовка: %s" -#: tcop/postgres.c:2487 +#: tcop/postgres.c:2511 #, c-format -msgid "parameters: %s" -msgstr "параметри: %s" +msgid "Parameters: %s" +msgstr "Параметри: %s" -#: tcop/postgres.c:2502 +#: tcop/postgres.c:2526 #, c-format -msgid "abort reason: recovery conflict" -msgstr "причина переривання: конфлікт під час відновлення" +msgid "Abort reason: recovery conflict" +msgstr "Причина переривання: конфлікт відновлення" -#: tcop/postgres.c:2518 +#: tcop/postgres.c:2542 #, c-format msgid "User was holding shared buffer pin for too long." msgstr "Користувач утримував позначку спільного буферу занадто довго." -#: tcop/postgres.c:2521 +#: tcop/postgres.c:2545 #, c-format msgid "User was holding a relation lock for too long." msgstr "Користувач утримував блокування відношення занадто довго." -#: tcop/postgres.c:2524 +#: tcop/postgres.c:2548 #, c-format msgid "User was or might have been using tablespace that must be dropped." msgstr "Користувач використовував табличний простір який повинен бути видаленим." -#: tcop/postgres.c:2527 +#: tcop/postgres.c:2551 #, c-format msgid "User query might have needed to see row versions that must be removed." msgstr "Запиту користувача потрібно було бачити версії рядків, які повинні бути видалені." -#: tcop/postgres.c:2530 +#: tcop/postgres.c:2554 #, c-format msgid "User was using a logical replication slot that must be invalidated." msgstr "Користувач використовував логічний слот реплікації, який повинен бути анульований." -#: tcop/postgres.c:2536 +#: tcop/postgres.c:2560 #, c-format msgid "User was connected to a database that must be dropped." msgstr "Користувач був підключен до бази даних, яка повинна бути видалена." -#: tcop/postgres.c:2575 +#: tcop/postgres.c:2599 #, c-format msgid "portal \"%s\" parameter $%d = %s" msgstr "параметр порталу \"%s\": $%d = %s" -#: tcop/postgres.c:2578 +#: tcop/postgres.c:2602 #, c-format msgid "portal \"%s\" parameter $%d" msgstr "параметр порталу \"%s\": $%d" -#: tcop/postgres.c:2584 +#: tcop/postgres.c:2608 #, c-format msgid "unnamed portal parameter $%d = %s" msgstr "параметр порталу без назви $%d = %s" -#: tcop/postgres.c:2587 +#: tcop/postgres.c:2611 #, c-format msgid "unnamed portal parameter $%d" msgstr "параметр порталу без назви $%d" -#: tcop/postgres.c:2932 +#: tcop/postgres.c:2955 #, c-format msgid "terminating connection because of unexpected SIGQUIT signal" msgstr "завершення підключення через неочікуваний сигнал SIGQUIT" -#: tcop/postgres.c:2938 +#: tcop/postgres.c:2961 #, c-format msgid "terminating connection because of crash of another server process" msgstr "завершення підключення через аварійне завершення роботи іншого серверного процесу" -#: tcop/postgres.c:2939 +#: tcop/postgres.c:2962 #, c-format 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 "Керуючий процес віддав команду цьому серверному процесу відкотити поточну транзакцію і завершитися, тому, що інший серверний процес завершився неправильно і можливо пошкодив спільну пам'ять." -#: tcop/postgres.c:2943 tcop/postgres.c:3310 +#: tcop/postgres.c:2966 tcop/postgres.c:3219 #, c-format msgid "In a moment you should be able to reconnect to the database and repeat your command." msgstr "В цей момент ви можете повторно підключитися до бази даних і повторити вашу команду." -#: tcop/postgres.c:2950 +#: tcop/postgres.c:2973 #, c-format msgid "terminating connection due to immediate shutdown command" msgstr "завершення підключення через команду негайного завершення роботи" -#: tcop/postgres.c:3036 +#: tcop/postgres.c:3051 #, c-format msgid "floating-point exception" msgstr "виняток в операції з рухомою комою" -#: tcop/postgres.c:3037 +#: tcop/postgres.c:3052 #, c-format 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 "Надійшло повідомлення про неприпустиму операцію з рухомою комою. Можливо, це значить, що результат виявився за діапазоном або виникла неприпустима операція, така як ділення на нуль." -#: tcop/postgres.c:3214 +#: tcop/postgres.c:3217 +#, c-format +msgid "terminating connection due to conflict with recovery" +msgstr "завершення підключення через конфлікт з процесом відновлення" + +#: tcop/postgres.c:3289 #, c-format msgid "canceling authentication due to timeout" msgstr "скасування автентифікації через тайм-аут" -#: tcop/postgres.c:3218 +#: tcop/postgres.c:3293 #, c-format msgid "terminating autovacuum process due to administrator command" msgstr "завершення процесу автоочистки по команді адміністратора" -#: tcop/postgres.c:3222 +#: tcop/postgres.c:3297 #, c-format msgid "terminating logical replication worker due to administrator command" msgstr "завершення обробника логічної реплікації по команді адміністратора" -#: tcop/postgres.c:3239 tcop/postgres.c:3249 tcop/postgres.c:3308 -#, c-format -msgid "terminating connection due to conflict with recovery" -msgstr "завершення підключення через конфлікт з процесом відновлення" - -#: tcop/postgres.c:3260 +#: tcop/postgres.c:3317 #, c-format msgid "terminating connection due to administrator command" msgstr "завершення підключення по команді адміністратора" -#: tcop/postgres.c:3291 +#: tcop/postgres.c:3348 #, c-format msgid "connection to client lost" msgstr "підключення до клієнта втрачено" -#: tcop/postgres.c:3361 +#: tcop/postgres.c:3400 #, c-format msgid "canceling statement due to lock timeout" msgstr "виконання оператора скасовано через тайм-аут блокування" -#: tcop/postgres.c:3368 +#: tcop/postgres.c:3407 #, c-format msgid "canceling statement due to statement timeout" msgstr "виконання оператора скасовано через тайм-аут" -#: tcop/postgres.c:3375 +#: tcop/postgres.c:3414 #, c-format msgid "canceling autovacuum task" msgstr "скасування завдання автоочистки" -#: tcop/postgres.c:3398 +#: tcop/postgres.c:3427 #, c-format msgid "canceling statement due to user request" msgstr "виконання оператора скасовано по запиту користувача" -#: tcop/postgres.c:3412 +#: tcop/postgres.c:3448 #, c-format msgid "terminating connection due to idle-in-transaction timeout" msgstr "завершення підключення через тайм-аут бездіяльності в транзакції" -#: tcop/postgres.c:3423 +#: tcop/postgres.c:3461 +#, c-format +msgid "terminating connection due to transaction timeout" +msgstr "переривання з'єднання через тайм-аут транзакції" + +#: tcop/postgres.c:3474 #, c-format msgid "terminating connection due to idle-session timeout" msgstr "завершення підключення через тайм-аут неактивного сеансу" -#: tcop/postgres.c:3514 +#: tcop/postgres.c:3564 #, c-format msgid "stack depth limit exceeded" msgstr "перевищено ліміт глибини стека" -#: tcop/postgres.c:3515 +#: tcop/postgres.c:3565 #, c-format msgid "Increase the configuration parameter \"max_stack_depth\" (currently %dkB), after ensuring the platform's stack depth limit is adequate." msgstr "Збільште параметр конфігурації \"max_stack_depth\" (поточне значення %d КБ), попередньо переконавшись, що ОС надає достатній розмір стеку." -#: tcop/postgres.c:3562 +#: tcop/postgres.c:3612 #, c-format msgid "\"max_stack_depth\" must not exceed %ldkB." msgstr "Значення \"max_stack_depth\" не повинно перевищувати %ld КБ." -#: tcop/postgres.c:3564 +#: tcop/postgres.c:3614 #, c-format msgid "Increase the platform's stack depth limit via \"ulimit -s\" or local equivalent." msgstr "Збільшіть ліміт глибини стека в системі через команду \"ulimit -s\" або через локальний еквівалент." -#: tcop/postgres.c:3587 +#: tcop/postgres.c:3637 #, c-format -msgid "client_connection_check_interval must be set to 0 on this platform." -msgstr "client_connection_check_interval має бути встановлений в 0 на цій платформі." +msgid "\"client_connection_check_interval\" must be set to 0 on this platform." +msgstr "" -#: tcop/postgres.c:3608 +#: tcop/postgres.c:3658 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "Не можна ввімкнути параметр, коли \"log_statement_stats\" дорівнює true." -#: tcop/postgres.c:3623 +#: tcop/postgres.c:3673 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "Не можна ввімкнути \"log_statement_stats\", коли \"log_parser_stats\", \"log_planner_stats\", або \"log_executor_stats\" дорівнюють true." -#: tcop/postgres.c:3971 +#: tcop/postgres.c:4098 #, c-format msgid "invalid command-line argument for server process: %s" msgstr "неприпустимий аргумент командного рядка для серверного процесу: %s" -#: tcop/postgres.c:3972 tcop/postgres.c:3978 +#: tcop/postgres.c:4099 tcop/postgres.c:4105 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: tcop/postgres.c:3976 +#: tcop/postgres.c:4103 #, c-format msgid "%s: invalid command-line argument: %s" msgstr "%s: неприпустимий аргумент командного рядка: %s" -#: tcop/postgres.c:4029 +#: tcop/postgres.c:4156 #, c-format msgid "%s: no database nor user name specified" msgstr "%s: ні база даних, ні ім'я користувача не вказані" -#: tcop/postgres.c:4779 +#: tcop/postgres.c:4909 #, c-format msgid "invalid CLOSE message subtype %d" msgstr "неприпустимий підтип повідомлення CLOSE %d" -#: tcop/postgres.c:4816 +#: tcop/postgres.c:4946 #, c-format msgid "invalid DESCRIBE message subtype %d" msgstr "неприпустимий підтип повідомлення DESCRIBE %d" -#: tcop/postgres.c:4903 +#: tcop/postgres.c:5033 #, c-format msgid "fastpath function calls not supported in a replication connection" msgstr "виклики функції fastpath не підтримуються в підключенні реплікації" -#: tcop/postgres.c:4907 +#: tcop/postgres.c:5037 #, c-format msgid "extended query protocol not supported in a replication connection" msgstr "протокол розширених запитів не підтримується в підключенні реплікації" -#: tcop/postgres.c:5087 +#: tcop/postgres.c:5217 #, c-format msgid "disconnection: session time: %d:%02d:%02d.%03d user=%s database=%s host=%s%s%s" msgstr "відключення: час сеансу: %d:%02d:%02d.%03d користувач = %s база даних = %s хост = %s%s%s" @@ -22446,42 +23341,42 @@ msgid "Declare it with SCROLL option to enable backward scan." msgstr "Оголосити з параметром SCROLL, щоб активувати зворотню розгортку." #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:417 +#: tcop/utility.c:410 #, c-format msgid "cannot execute %s in a read-only transaction" msgstr "не можна виконати %s в транзакції \"лише для читання\"" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:435 +#: tcop/utility.c:428 #, c-format msgid "cannot execute %s during a parallel operation" msgstr "не можна виконати %s під час паралельних операцій" #. translator: %s is name of a SQL command, eg CREATE -#: tcop/utility.c:454 +#: tcop/utility.c:447 #, c-format msgid "cannot execute %s during recovery" msgstr "не можна виконати %s під час відновлення" #. translator: %s is name of a SQL command, eg PREPARE -#: tcop/utility.c:472 +#: tcop/utility.c:465 #, c-format msgid "cannot execute %s within security-restricted operation" msgstr "не можна виконати %s в межах операції з обмеженнями безпеки" #. translator: %s is name of a SQL command, eg LISTEN -#: tcop/utility.c:828 +#: tcop/utility.c:821 #, c-format msgid "cannot execute %s within a background process" msgstr "не можна виконати %s у фоновому процесі" #. translator: %s is name of a SQL command, eg CHECKPOINT -#: tcop/utility.c:954 +#: tcop/utility.c:947 #, c-format msgid "permission denied to execute %s command" msgstr "немає дозволу для виконання команди %s" -#: tcop/utility.c:956 +#: tcop/utility.c:949 #, c-format msgid "Only roles with privileges of the \"%s\" role may execute this command." msgstr "Цю команду можуть виконувати лише ролі з привілеями ролі \"%s\"." @@ -22632,13 +23527,13 @@ msgstr "неприпустима позначка affix \"%s\" зі значен msgid "could not open dictionary file \"%s\": %m" msgstr "не вдалося відкрити файл словника \"%s\": %m" -#: tsearch/spell.c:749 utils/adt/regexp.c:224 jsonpath_gram.y:559 +#: tsearch/spell.c:749 utils/adt/regexp.c:223 jsonpath_gram.y:629 #, c-format msgid "invalid regular expression: %s" msgstr "неприпустимий регулярний вираз: %s" #: tsearch/spell.c:963 tsearch/spell.c:980 tsearch/spell.c:997 -#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18123 gram.y:18140 +#: tsearch/spell.c:1014 tsearch/spell.c:1079 gram.y:18735 gram.y:18752 #, c-format msgid "syntax error" msgstr "синтаксична помилка" @@ -22674,17 +23569,17 @@ msgstr "кількість псевдонімів перевищує вказа msgid "affix file contains both old-style and new-style commands" msgstr "файл affix містить команди і в старому, і в новому стилі" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:278 utils/adt/tsvector_op.c:1128 +#: tsearch/to_tsany.c:194 utils/adt/tsvector.c:277 utils/adt/tsvector_op.c:1126 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "рядок занадто довгий для tsvector (%d байт, максимум %d байт)" -#: tsearch/ts_locale.c:238 +#: tsearch/ts_locale.c:236 #, c-format msgid "line %d of configuration file \"%s\": \"%s\"" msgstr "рядок %d файлу конфігурації \"%s\": \"%s\"" -#: tsearch/ts_locale.c:317 +#: tsearch/ts_locale.c:315 #, c-format msgid "conversion from wchar_t to server encoding failed: %m" msgstr "перетворити wchar_t в кодування серверу не вдалося: %mв" @@ -22711,72 +23606,72 @@ msgstr "неприпустиме ім'я файлу конфігурації т msgid "could not open stop-word file \"%s\": %m" msgstr "не вдалося відкрити файл стоп-слова \"%s\": %m" -#: tsearch/wparser.c:308 tsearch/wparser.c:396 tsearch/wparser.c:473 +#: tsearch/wparser.c:306 tsearch/wparser.c:394 tsearch/wparser.c:471 #, c-format msgid "text search parser does not support headline creation" msgstr "аналізатор текстового пошуку не підтримує створення заголовку" -#: tsearch/wparser_def.c:2663 +#: tsearch/wparser_def.c:2664 #, c-format msgid "unrecognized headline parameter: \"%s\"" msgstr "нерозпізнаний параметр заголовку: \"%s\"" -#: tsearch/wparser_def.c:2673 +#: tsearch/wparser_def.c:2674 #, c-format msgid "MinWords should be less than MaxWords" msgstr "Значення MinWords повинно бути меньшим за MaxWords" -#: tsearch/wparser_def.c:2677 +#: tsearch/wparser_def.c:2678 #, c-format msgid "MinWords should be positive" msgstr "Значення MinWords повинно бути позитивним" -#: tsearch/wparser_def.c:2681 +#: tsearch/wparser_def.c:2682 #, c-format msgid "ShortWord should be >= 0" msgstr "Значення ShortWord повинно бути >= 0" -#: tsearch/wparser_def.c:2685 +#: tsearch/wparser_def.c:2686 #, c-format msgid "MaxFragments should be >= 0" msgstr "Значення MaxFragments повинно бути >= 0" -#: utils/activity/pgstat.c:438 +#: utils/activity/pgstat.c:435 #, c-format msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "не вдалося від'єднати файл постійної статистики \"%s\": %m" -#: utils/activity/pgstat.c:1255 +#: utils/activity/pgstat.c:1252 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "неприпустимий тип статистики: \"%s\"" -#: utils/activity/pgstat.c:1335 +#: utils/activity/pgstat.c:1332 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "не вдалося відкрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1447 +#: utils/activity/pgstat.c:1444 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не вдалося записати в тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1456 +#: utils/activity/pgstat.c:1453 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не вдалося закрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1464 +#: utils/activity/pgstat.c:1461 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати тимчасовий файл статистики з \"%s\" в \"%s\": %m" -#: utils/activity/pgstat.c:1513 +#: utils/activity/pgstat.c:1510 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не вдалося відкрити файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1675 +#: utils/activity/pgstat.c:1672 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "пошкоджений файл статистики \"%s\"" @@ -22786,115 +23681,125 @@ msgstr "пошкоджений файл статистики \"%s\"" msgid "function call to dropped function" msgstr "виклик видаленої функції" -#: utils/activity/pgstat_xact.c:363 +#: utils/activity/pgstat_xact.c:362 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "скидання існуючої статистики для типу %s, db=%u, oid=%u" -#: utils/adt/acl.c:177 utils/adt/name.c:93 +#: utils/activity/wait_event.c:207 utils/activity/wait_event.c:232 +#, c-format +msgid "wait event \"%s\" already exists in type \"%s\"" +msgstr "" + +#: utils/activity/wait_event.c:246 +#, c-format +msgid "too many custom wait events" +msgstr "" + +#: utils/adt/acl.c:183 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "занадто довгий ідентифікатор" -#: utils/adt/acl.c:178 utils/adt/name.c:94 +#: utils/adt/acl.c:184 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "Ідентифікатор повинен бути короче ніж %d символів." -#: utils/adt/acl.c:266 +#: utils/adt/acl.c:272 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "нерозпізнане ключове слово: \"%s\"" -#: utils/adt/acl.c:267 +#: utils/adt/acl.c:273 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "Ключовим словом ACL повинно бути \"group\" або \"user\"." -#: utils/adt/acl.c:275 +#: utils/adt/acl.c:281 #, c-format msgid "missing name" msgstr "пропущено ім'я" -#: utils/adt/acl.c:276 +#: utils/adt/acl.c:282 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "За ключовими словами \"group\" або \"user\" повинно йти ім'я." -#: utils/adt/acl.c:282 +#: utils/adt/acl.c:288 #, c-format msgid "missing \"=\" sign" msgstr "пропущено знак \"=\"" -#: utils/adt/acl.c:341 +#: utils/adt/acl.c:350 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "неприпустимий символ режиму: повинен бути один з \"%s\"" -#: utils/adt/acl.c:371 +#: utils/adt/acl.c:380 #, c-format msgid "a name must follow the \"/\" sign" msgstr "за знаком \"/\" повинно прямувати ім'я" -#: utils/adt/acl.c:383 +#: utils/adt/acl.c:392 #, c-format msgid "defaulting grantor to user ID %u" msgstr "призначив права користувач з ідентифікатором %u" -#: utils/adt/acl.c:569 +#: utils/adt/acl.c:578 #, c-format msgid "ACL array contains wrong data type" msgstr "Масив ACL містить неправильний тип даних" -#: utils/adt/acl.c:573 +#: utils/adt/acl.c:582 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "Масиви ACL повинні бути одновимірними" -#: utils/adt/acl.c:577 +#: utils/adt/acl.c:586 #, c-format msgid "ACL arrays must not contain null values" msgstr "Масиви ACL не повинні містити значення null" -#: utils/adt/acl.c:606 +#: utils/adt/acl.c:615 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "зайве сміття в кінці специфікації ACL" -#: utils/adt/acl.c:1248 +#: utils/adt/acl.c:1263 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "параметри призначення прав не можна повернути тому, хто призначив їх вам" -#: utils/adt/acl.c:1564 +#: utils/adt/acl.c:1579 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert більше не підтримується" -#: utils/adt/acl.c:1574 +#: utils/adt/acl.c:1589 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove більше не підтримується" -#: utils/adt/acl.c:1693 +#: utils/adt/acl.c:1709 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "нерозпізнаний тип прав: \"%s\"" -#: utils/adt/acl.c:3476 utils/adt/regproc.c:100 utils/adt/regproc.c:265 +#: utils/adt/acl.c:3550 utils/adt/regproc.c:100 utils/adt/regproc.c:265 #, c-format msgid "function \"%s\" does not exist" msgstr "функція \"%s\" не існує" -#: utils/adt/acl.c:5023 +#: utils/adt/acl.c:5196 #, c-format msgid "must be able to SET ROLE \"%s\"" msgstr "потрібно мати можливість SET ROLE \"%s\"" #: utils/adt/array_userfuncs.c:102 utils/adt/array_userfuncs.c:489 -#: utils/adt/array_userfuncs.c:878 utils/adt/json.c:694 utils/adt/json.c:831 -#: utils/adt/json.c:869 utils/adt/jsonb.c:1139 utils/adt/jsonb.c:1211 -#: utils/adt/jsonb.c:1629 utils/adt/jsonb.c:1817 utils/adt/jsonb.c:1827 +#: utils/adt/array_userfuncs.c:866 utils/adt/json.c:602 utils/adt/json.c:740 +#: utils/adt/json.c:790 utils/adt/jsonb.c:1025 utils/adt/jsonb.c:1098 +#: utils/adt/jsonb.c:1530 utils/adt/jsonb.c:1718 utils/adt/jsonb.c:1728 #, c-format msgid "could not determine input data type" msgstr "не вдалося визначити тип вхідних даних" @@ -22905,17 +23810,17 @@ msgid "input data type is not an array" msgstr "тип вхідних даних не є масивом" #: utils/adt/array_userfuncs.c:151 utils/adt/array_userfuncs.c:203 -#: utils/adt/float.c:1228 utils/adt/float.c:1302 utils/adt/float.c:4117 -#: utils/adt/float.c:4155 utils/adt/int.c:778 utils/adt/int.c:800 +#: utils/adt/float.c:1222 utils/adt/float.c:1296 utils/adt/float.c:4022 +#: utils/adt/float.c:4060 utils/adt/int.c:778 utils/adt/int.c:800 #: utils/adt/int.c:814 utils/adt/int.c:828 utils/adt/int.c:859 #: utils/adt/int.c:880 utils/adt/int.c:997 utils/adt/int.c:1011 #: utils/adt/int.c:1025 utils/adt/int.c:1058 utils/adt/int.c:1072 #: utils/adt/int.c:1086 utils/adt/int.c:1117 utils/adt/int.c:1199 #: utils/adt/int.c:1263 utils/adt/int.c:1331 utils/adt/int.c:1337 -#: utils/adt/int8.c:1257 utils/adt/numeric.c:1901 utils/adt/numeric.c:4388 -#: utils/adt/rangetypes.c:1481 utils/adt/rangetypes.c:1494 -#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1132 -#: utils/adt/varlena.c:3134 +#: utils/adt/int8.c:1256 utils/adt/numeric.c:1917 utils/adt/numeric.c:4454 +#: utils/adt/rangetypes.c:1488 utils/adt/rangetypes.c:1501 +#: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1135 +#: utils/adt/varlena.c:3137 #, c-format msgid "integer out of range" msgstr "ціле число поза діапазоном" @@ -22952,267 +23857,278 @@ msgstr "Масиви з різними вимірами елементів не msgid "Arrays with differing dimensions are not compatible for concatenation." msgstr "Масиви з різними вимірами не є сумісними для об'єднання." -#: utils/adt/array_userfuncs.c:987 utils/adt/array_userfuncs.c:995 -#: utils/adt/arrayfuncs.c:5639 utils/adt/arrayfuncs.c:5645 +#: utils/adt/array_userfuncs.c:975 utils/adt/array_userfuncs.c:983 +#: utils/adt/arrayfuncs.c:5616 utils/adt/arrayfuncs.c:5622 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "накопичувати масиви різної розмірності не можна" -#: utils/adt/array_userfuncs.c:1286 utils/adt/array_userfuncs.c:1440 +#: utils/adt/array_userfuncs.c:1272 utils/adt/array_userfuncs.c:1426 #, c-format msgid "searching for elements in multidimensional arrays is not supported" msgstr "пошук елементів у багатовимірних масивах не підтримується" -#: utils/adt/array_userfuncs.c:1315 +#: utils/adt/array_userfuncs.c:1301 #, c-format msgid "initial position must not be null" msgstr "початкова позиція не повинна бути null" -#: utils/adt/array_userfuncs.c:1688 +#: utils/adt/array_userfuncs.c:1674 #, c-format msgid "sample size must be between 0 and %d" msgstr "розмір вибірки повинен бути між 0 і %d" -#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:288 -#: utils/adt/arrayfuncs.c:299 utils/adt/arrayfuncs.c:321 -#: utils/adt/arrayfuncs.c:338 utils/adt/arrayfuncs.c:352 -#: utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:367 -#: utils/adt/arrayfuncs.c:507 utils/adt/arrayfuncs.c:522 -#: utils/adt/arrayfuncs.c:533 utils/adt/arrayfuncs.c:548 -#: utils/adt/arrayfuncs.c:569 utils/adt/arrayfuncs.c:599 -#: utils/adt/arrayfuncs.c:606 utils/adt/arrayfuncs.c:614 -#: utils/adt/arrayfuncs.c:648 utils/adt/arrayfuncs.c:671 -#: utils/adt/arrayfuncs.c:691 utils/adt/arrayfuncs.c:808 -#: utils/adt/arrayfuncs.c:817 utils/adt/arrayfuncs.c:847 -#: utils/adt/arrayfuncs.c:862 utils/adt/arrayfuncs.c:915 +#: utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:273 +#: utils/adt/arrayfuncs.c:284 utils/adt/arrayfuncs.c:307 +#: utils/adt/arrayfuncs.c:440 utils/adt/arrayfuncs.c:454 +#: utils/adt/arrayfuncs.c:466 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:668 utils/adt/arrayfuncs.c:703 +#: utils/adt/arrayfuncs.c:718 utils/adt/arrayfuncs.c:777 +#: utils/adt/arrayfuncs.c:782 utils/adt/arrayfuncs.c:870 +#: utils/adt/arrayfuncs.c:897 utils/adt/arrayfuncs.c:904 +#: utils/adt/arrayfuncs.c:941 #, c-format msgid "malformed array literal: \"%s\"" msgstr "неправильний літерал масиву: \"%s\"" -#: utils/adt/arrayfuncs.c:275 -#, c-format -msgid "\"[\" must introduce explicitly-specified array dimensions." -msgstr "\"[\" повинно представляти явно вказані виміри масиву." - -#: utils/adt/arrayfuncs.c:289 +#: utils/adt/arrayfuncs.c:265 #, c-format -msgid "Missing array dimension value." -msgstr "Пропущено значення виміру масиву." +msgid "Array value must start with \"{\" or dimension information." +msgstr "Значення масиву повинно починатись з \"{\" або з інформації про вимір." -#: utils/adt/arrayfuncs.c:300 utils/adt/arrayfuncs.c:339 +#: utils/adt/arrayfuncs.c:274 utils/adt/arrayfuncs.c:467 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "Пропущено \"%s\" після вимірів масиву." -#: utils/adt/arrayfuncs.c:309 utils/adt/arrayfuncs.c:2969 -#: utils/adt/arrayfuncs.c:3014 utils/adt/arrayfuncs.c:3029 +#: utils/adt/arrayfuncs.c:285 #, c-format -msgid "upper bound cannot be less than lower bound" -msgstr "верхня границя не може бути меньше нижньої границі" +msgid "Array contents must start with \"{\"." +msgstr "Вміст масиву повинен починатись з \"{\"." -#: utils/adt/arrayfuncs.c:322 +#: utils/adt/arrayfuncs.c:308 utils/adt/multirangetypes.c:292 #, c-format -msgid "Array value must start with \"{\" or dimension information." -msgstr "Значення масиву повинно починатись з \"{\" або з інформації про вимір." +msgid "Junk after closing right brace." +msgstr "Сміття після закриття правої дужки." -#: utils/adt/arrayfuncs.c:353 +#: utils/adt/arrayfuncs.c:431 utils/adt/arrayfuncs.c:643 #, c-format -msgid "Array contents must start with \"{\"." -msgstr "Вміст масиву повинен починатись з \"{\"." +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "кількість вимірів масиву перевищує максимально дозволену (%d)" -#: utils/adt/arrayfuncs.c:361 utils/adt/arrayfuncs.c:368 +#: utils/adt/arrayfuncs.c:441 #, c-format -msgid "Specified array dimensions do not match array contents." -msgstr "Вказані виміри масиву не відповідають його вмісту." +msgid "\"[\" must introduce explicitly-specified array dimensions." +msgstr "\"[\" повинно представляти явно вказані виміри масиву." -#: utils/adt/arrayfuncs.c:508 utils/adt/arrayfuncs.c:534 -#: utils/adt/multirangetypes.c:166 utils/adt/rangetypes.c:2405 -#: utils/adt/rangetypes.c:2413 utils/adt/rowtypes.c:219 -#: utils/adt/rowtypes.c:230 +#: utils/adt/arrayfuncs.c:455 #, c-format -msgid "Unexpected end of input." -msgstr "Неочікуваний кінец введення." +msgid "Missing array dimension value." +msgstr "Пропущено значення виміру масиву." -#: utils/adt/arrayfuncs.c:523 utils/adt/arrayfuncs.c:570 -#: utils/adt/arrayfuncs.c:600 utils/adt/arrayfuncs.c:649 +#: utils/adt/arrayfuncs.c:481 utils/adt/arrayfuncs.c:2940 +#: utils/adt/arrayfuncs.c:2985 utils/adt/arrayfuncs.c:3000 +#, c-format +msgid "upper bound cannot be less than lower bound" +msgstr "верхня границя не може бути меньше нижньої границі" + +#: utils/adt/arrayfuncs.c:487 +#, c-format +msgid "array upper bound is too large: %d" +msgstr "верхня межа масиву занадто велика: %d" + +#: utils/adt/arrayfuncs.c:538 +#, c-format +msgid "array bound is out of integer range" +msgstr "межа масиву знаходиться за межами цілочисельного діапазону" + +#: utils/adt/arrayfuncs.c:637 utils/adt/arrayfuncs.c:669 +#: utils/adt/arrayfuncs.c:704 utils/adt/arrayfuncs.c:898 #, c-format msgid "Unexpected \"%c\" character." msgstr "Неочікуваний символ \"%c\"." -#: utils/adt/arrayfuncs.c:549 utils/adt/arrayfuncs.c:672 +#: utils/adt/arrayfuncs.c:719 #, c-format msgid "Unexpected array element." msgstr "Неочікуваний елемент масиву." -#: utils/adt/arrayfuncs.c:607 +#: utils/adt/arrayfuncs.c:778 #, c-format -msgid "Unmatched \"%c\" character." -msgstr "Невідповідний символ \"%c\"." +msgid "Specified array dimensions do not match array contents." +msgstr "Вказані виміри масиву не відповідають його вмісту." -#: utils/adt/arrayfuncs.c:615 utils/adt/jsonfuncs.c:2553 +#: utils/adt/arrayfuncs.c:783 utils/adt/jsonfuncs.c:2598 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Багатовимірні масиви повинні мати вкладені масиви з відповідними вимірами." -#: utils/adt/arrayfuncs.c:692 utils/adt/multirangetypes.c:293 +#: utils/adt/arrayfuncs.c:871 utils/adt/arrayfuncs.c:905 #, c-format -msgid "Junk after closing right brace." -msgstr "Сміття після закриття правої дужки." +msgid "Incorrectly quoted array element." +msgstr "Неправильно процитовано елемент масиву." + +#: utils/adt/arrayfuncs.c:942 utils/adt/multirangetypes.c:165 +#: utils/adt/rangetypes.c:2464 utils/adt/rangetypes.c:2472 +#: utils/adt/rowtypes.c:218 utils/adt/rowtypes.c:229 +#, c-format +msgid "Unexpected end of input." +msgstr "Неочікуваний кінец введення." -#: utils/adt/arrayfuncs.c:1326 utils/adt/arrayfuncs.c:3528 -#: utils/adt/arrayfuncs.c:6129 +#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3499 +#: utils/adt/arrayfuncs.c:6106 #, c-format msgid "invalid number of dimensions: %d" msgstr "неприпустима кількість вимірів: %d" -#: utils/adt/arrayfuncs.c:1337 +#: utils/adt/arrayfuncs.c:1312 #, c-format msgid "invalid array flags" msgstr "неприпустимі позначки масиву" -#: utils/adt/arrayfuncs.c:1359 +#: utils/adt/arrayfuncs.c:1334 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "двійкові дані мають тип елементу масиву %u (%s) замість очікуваного %u (%s)" -#: utils/adt/arrayfuncs.c:1403 utils/adt/multirangetypes.c:451 -#: utils/adt/rangetypes.c:344 utils/cache/lsyscache.c:2916 +#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:450 +#: utils/adt/rangetypes.c:351 utils/cache/lsyscache.c:2958 #, c-format msgid "no binary input function available for type %s" msgstr "для типу %s немає функції введення двійкових даних" -#: utils/adt/arrayfuncs.c:1543 +#: utils/adt/arrayfuncs.c:1509 #, c-format msgid "improper binary format in array element %d" msgstr "неправильний двійковий формат в елементі масиву %d" -#: utils/adt/arrayfuncs.c:1624 utils/adt/multirangetypes.c:456 -#: utils/adt/rangetypes.c:349 utils/cache/lsyscache.c:2949 +#: utils/adt/arrayfuncs.c:1588 utils/adt/multirangetypes.c:455 +#: utils/adt/rangetypes.c:356 utils/cache/lsyscache.c:2991 #, c-format msgid "no binary output function available for type %s" msgstr "для типу %s немає функції виводу двійкових даних" -#: utils/adt/arrayfuncs.c:2103 +#: utils/adt/arrayfuncs.c:2067 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "розрізання масивів постійної довжини не реалізовано" -#: utils/adt/arrayfuncs.c:2281 utils/adt/arrayfuncs.c:2303 -#: utils/adt/arrayfuncs.c:2352 utils/adt/arrayfuncs.c:2606 -#: utils/adt/arrayfuncs.c:2944 utils/adt/arrayfuncs.c:6115 -#: utils/adt/arrayfuncs.c:6141 utils/adt/arrayfuncs.c:6152 -#: utils/adt/json.c:1497 utils/adt/json.c:1569 utils/adt/jsonb.c:1416 -#: utils/adt/jsonb.c:1500 utils/adt/jsonfuncs.c:4434 utils/adt/jsonfuncs.c:4587 -#: utils/adt/jsonfuncs.c:4698 utils/adt/jsonfuncs.c:4746 +#: utils/adt/arrayfuncs.c:2245 utils/adt/arrayfuncs.c:2267 +#: utils/adt/arrayfuncs.c:2316 utils/adt/arrayfuncs.c:2570 +#: utils/adt/arrayfuncs.c:2915 utils/adt/arrayfuncs.c:6092 +#: utils/adt/arrayfuncs.c:6118 utils/adt/arrayfuncs.c:6129 +#: utils/adt/json.c:1433 utils/adt/json.c:1505 utils/adt/jsonb.c:1317 +#: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4710 utils/adt/jsonfuncs.c:4863 +#: utils/adt/jsonfuncs.c:4974 utils/adt/jsonfuncs.c:5022 #, c-format msgid "wrong number of array subscripts" msgstr "невірне число верхніх індексів масива" -#: utils/adt/arrayfuncs.c:2286 utils/adt/arrayfuncs.c:2410 -#: utils/adt/arrayfuncs.c:2689 utils/adt/arrayfuncs.c:3019 +#: utils/adt/arrayfuncs.c:2250 utils/adt/arrayfuncs.c:2374 +#: utils/adt/arrayfuncs.c:2653 utils/adt/arrayfuncs.c:2990 #, c-format msgid "array subscript out of range" msgstr "верхній індекс масиву поза діапазоном" -#: utils/adt/arrayfuncs.c:2291 +#: utils/adt/arrayfuncs.c:2255 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "не можна призначати значення null значення елементу масива постійної довжини" -#: utils/adt/arrayfuncs.c:2891 +#: utils/adt/arrayfuncs.c:2855 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "оновлення в зрізах масивів постійної довжини не реалізовані" -#: utils/adt/arrayfuncs.c:2922 +#: utils/adt/arrayfuncs.c:2886 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "у вказівці зрізу масива повинні бути задані обидві межі" -#: utils/adt/arrayfuncs.c:2923 +#: utils/adt/arrayfuncs.c:2887 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Під час присвоєння значень зрізу в пустому масиві, межі зрізу повинні вказуватися повністю." -#: utils/adt/arrayfuncs.c:2934 utils/adt/arrayfuncs.c:3046 +#: utils/adt/arrayfuncs.c:2905 utils/adt/arrayfuncs.c:3017 #, c-format msgid "source array too small" msgstr "вихідний масив занадто малий" -#: utils/adt/arrayfuncs.c:3686 +#: utils/adt/arrayfuncs.c:3657 #, c-format msgid "null array element not allowed in this context" msgstr "елемент масиву null не дозволений в цьому контексті" -#: utils/adt/arrayfuncs.c:3857 utils/adt/arrayfuncs.c:4028 -#: utils/adt/arrayfuncs.c:4419 +#: utils/adt/arrayfuncs.c:3828 utils/adt/arrayfuncs.c:3999 +#: utils/adt/arrayfuncs.c:4390 #, c-format msgid "cannot compare arrays of different element types" msgstr "не можна порівнювати масиви з елементами різних типів" -#: utils/adt/arrayfuncs.c:4206 utils/adt/multirangetypes.c:2806 -#: utils/adt/multirangetypes.c:2878 utils/adt/rangetypes.c:1354 -#: utils/adt/rangetypes.c:1418 utils/adt/rowtypes.c:1885 +#: utils/adt/arrayfuncs.c:4177 utils/adt/multirangetypes.c:2805 +#: utils/adt/multirangetypes.c:2877 utils/adt/rangetypes.c:1361 +#: utils/adt/rangetypes.c:1425 utils/adt/rowtypes.c:1875 #, c-format msgid "could not identify a hash function for type %s" msgstr "не вдалося визначити геш-функцію для типу %s" -#: utils/adt/arrayfuncs.c:4334 utils/adt/rowtypes.c:2006 +#: utils/adt/arrayfuncs.c:4305 utils/adt/rowtypes.c:1996 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не вдалося визначити розширену геш-функцію для типу %s" -#: utils/adt/arrayfuncs.c:5529 +#: utils/adt/arrayfuncs.c:5506 #, c-format msgid "data type %s is not an array type" msgstr "тип даних %s не є типом масиву" -#: utils/adt/arrayfuncs.c:5584 +#: utils/adt/arrayfuncs.c:5561 #, c-format msgid "cannot accumulate null arrays" msgstr "накопичувати null-масиви не можна" -#: utils/adt/arrayfuncs.c:5612 +#: utils/adt/arrayfuncs.c:5589 #, c-format msgid "cannot accumulate empty arrays" msgstr "накопичувати пусті масиви не можна" -#: utils/adt/arrayfuncs.c:6013 utils/adt/arrayfuncs.c:6053 +#: utils/adt/arrayfuncs.c:5990 utils/adt/arrayfuncs.c:6030 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "масив розмірності або масив нижніх границь не може бути null" -#: utils/adt/arrayfuncs.c:6116 utils/adt/arrayfuncs.c:6142 +#: utils/adt/arrayfuncs.c:6093 utils/adt/arrayfuncs.c:6119 #, c-format msgid "Dimension array must be one dimensional." msgstr "Масив розмірності повинен бути одновимірним." -#: utils/adt/arrayfuncs.c:6121 utils/adt/arrayfuncs.c:6147 +#: utils/adt/arrayfuncs.c:6098 utils/adt/arrayfuncs.c:6124 #, c-format msgid "dimension values cannot be null" msgstr "значення розмірностей не можуть бути null" -#: utils/adt/arrayfuncs.c:6153 +#: utils/adt/arrayfuncs.c:6130 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Масив нижніх границь відрізняється за розміром від масиву розмірностей." -#: utils/adt/arrayfuncs.c:6431 +#: utils/adt/arrayfuncs.c:6411 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "видалення елементів з багатовимірних масивів не підтримується" -#: utils/adt/arrayfuncs.c:6708 +#: utils/adt/arrayfuncs.c:6688 #, c-format msgid "thresholds must be one-dimensional array" msgstr "граничне значення повинно вказуватись одновимірним масивом" -#: utils/adt/arrayfuncs.c:6713 +#: utils/adt/arrayfuncs.c:6693 #, c-format msgid "thresholds array must not contain NULLs" msgstr "масив границь не повинен містити NULL" -#: utils/adt/arrayfuncs.c:6946 +#: utils/adt/arrayfuncs.c:6926 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "кількість елементів для обрізки має бути між 0 і %d" @@ -23227,22 +24143,22 @@ msgstr "індекс елементу масиву має бути цілим ч msgid "array subscript in assignment must not be null" msgstr "підрядковий символ масиву у призначенні не може бути NULL" -#: utils/adt/arrayutils.c:155 +#: utils/adt/arrayutils.c:140 #, c-format msgid "array lower bound is too large: %d" msgstr "нижня границя масиву занадто велика: %d" -#: utils/adt/arrayutils.c:257 +#: utils/adt/arrayutils.c:242 #, c-format msgid "typmod array must be type cstring[]" msgstr "масив typmod повинен мати тип cstring[]" -#: utils/adt/arrayutils.c:262 +#: utils/adt/arrayutils.c:247 #, c-format msgid "typmod array must be one-dimensional" msgstr "масив typmod повинен бути одновимірним" -#: utils/adt/arrayutils.c:267 +#: utils/adt/arrayutils.c:252 #, c-format msgid "typmod array must not contain nulls" msgstr "масив typmod не повинен містити елементи nulls" @@ -23253,48 +24169,52 @@ msgid "encoding conversion from %s to ASCII not supported" msgstr "перетворення кодування з %s в ASCII не підтримується" #. translator: first %s is inet or cidr -#: utils/adt/bool.c:153 utils/adt/cash.c:277 utils/adt/datetime.c:4017 -#: utils/adt/float.c:206 utils/adt/float.c:293 utils/adt/float.c:307 -#: utils/adt/float.c:412 utils/adt/float.c:495 utils/adt/float.c:509 +#: utils/adt/bool.c:149 utils/adt/cash.c:354 utils/adt/datetime.c:4142 +#: utils/adt/float.c:200 utils/adt/float.c:287 utils/adt/float.c:301 +#: utils/adt/float.c:406 utils/adt/float.c:489 utils/adt/float.c:503 #: utils/adt/geo_ops.c:250 utils/adt/geo_ops.c:335 utils/adt/geo_ops.c:974 #: utils/adt/geo_ops.c:1417 utils/adt/geo_ops.c:1454 utils/adt/geo_ops.c:1462 #: utils/adt/geo_ops.c:3428 utils/adt/geo_ops.c:4650 utils/adt/geo_ops.c:4665 #: utils/adt/geo_ops.c:4672 utils/adt/int.c:174 utils/adt/int.c:186 -#: utils/adt/jsonpath.c:183 utils/adt/mac.c:94 utils/adt/mac8.c:225 -#: utils/adt/network.c:99 utils/adt/numeric.c:795 utils/adt/numeric.c:7136 -#: utils/adt/numeric.c:7339 utils/adt/numeric.c:8286 utils/adt/numutils.c:357 -#: utils/adt/numutils.c:619 utils/adt/numutils.c:881 utils/adt/numutils.c:920 -#: utils/adt/numutils.c:942 utils/adt/numutils.c:1006 utils/adt/numutils.c:1028 -#: utils/adt/pg_lsn.c:74 utils/adt/tid.c:72 utils/adt/tid.c:80 -#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:494 -#: utils/adt/uuid.c:135 utils/adt/xid8funcs.c:362 +#: utils/adt/jsonpath.c:185 utils/adt/mac.c:94 utils/adt/mac8.c:226 +#: utils/adt/network.c:99 utils/adt/numeric.c:803 utils/adt/numeric.c:7221 +#: utils/adt/numeric.c:7424 utils/adt/numeric.c:8371 utils/adt/numutils.c:356 +#: utils/adt/numutils.c:618 utils/adt/numutils.c:880 utils/adt/numutils.c:919 +#: utils/adt/numutils.c:941 utils/adt/numutils.c:1005 utils/adt/numutils.c:1027 +#: utils/adt/pg_lsn.c:73 utils/adt/tid.c:72 utils/adt/tid.c:80 +#: utils/adt/tid.c:94 utils/adt/tid.c:103 utils/adt/timestamp.c:510 +#: utils/adt/uuid.c:140 utils/adt/xid8funcs.c:360 #, c-format msgid "invalid input syntax for type %s: \"%s\"" msgstr "неприпустимий синтаксис для типу %s: \"%s\"" -#: utils/adt/cash.c:215 utils/adt/cash.c:240 utils/adt/cash.c:250 -#: utils/adt/cash.c:290 utils/adt/int.c:180 utils/adt/numutils.c:351 -#: utils/adt/numutils.c:613 utils/adt/numutils.c:875 utils/adt/numutils.c:926 -#: utils/adt/numutils.c:965 utils/adt/numutils.c:1012 +#: utils/adt/cash.c:98 utils/adt/cash.c:111 utils/adt/cash.c:124 +#: utils/adt/cash.c:137 utils/adt/cash.c:150 #, c-format -msgid "value \"%s\" is out of range for type %s" -msgstr "значення \"%s\" поза діапазоном для типу %s" +msgid "money out of range" +msgstr "" -#: 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:105 utils/adt/int.c:843 utils/adt/int.c:959 -#: utils/adt/int.c:1039 utils/adt/int.c:1101 utils/adt/int.c:1139 -#: utils/adt/int.c:1167 utils/adt/int8.c:515 utils/adt/int8.c:573 -#: utils/adt/int8.c:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 -#: utils/adt/int8.c:1165 utils/adt/numeric.c:3175 utils/adt/numeric.c:3198 -#: utils/adt/numeric.c:3283 utils/adt/numeric.c:3301 utils/adt/numeric.c:3397 -#: utils/adt/numeric.c:8835 utils/adt/numeric.c:9148 utils/adt/numeric.c:9496 -#: utils/adt/numeric.c:9612 utils/adt/numeric.c:11122 -#: utils/adt/timestamp.c:3430 +#: utils/adt/cash.c:161 utils/adt/cash.c:723 utils/adt/float.c:99 +#: utils/adt/int.c:843 utils/adt/int.c:959 utils/adt/int.c:1039 +#: utils/adt/int.c:1101 utils/adt/int.c:1139 utils/adt/int.c:1167 +#: utils/adt/int8.c:514 utils/adt/int8.c:572 utils/adt/int8.c:942 +#: utils/adt/int8.c:1022 utils/adt/int8.c:1084 utils/adt/int8.c:1164 +#: utils/adt/numeric.c:3191 utils/adt/numeric.c:3214 utils/adt/numeric.c:3299 +#: utils/adt/numeric.c:3317 utils/adt/numeric.c:3413 utils/adt/numeric.c:8920 +#: utils/adt/numeric.c:9233 utils/adt/numeric.c:9581 utils/adt/numeric.c:9697 +#: utils/adt/numeric.c:11208 utils/adt/timestamp.c:3713 #, c-format msgid "division by zero" msgstr "ділення на нуль" +#: utils/adt/cash.c:292 utils/adt/cash.c:317 utils/adt/cash.c:327 +#: utils/adt/cash.c:367 utils/adt/int.c:180 utils/adt/numutils.c:350 +#: utils/adt/numutils.c:612 utils/adt/numutils.c:874 utils/adt/numutils.c:925 +#: utils/adt/numutils.c:964 utils/adt/numutils.c:1011 +#, c-format +msgid "value \"%s\" is out of range for type %s" +msgstr "значення \"%s\" поза діапазоном для типу %s" + #: utils/adt/char.c:197 #, c-format msgid "\"char\" out of range" @@ -23305,185 +24225,211 @@ msgstr "значення \"char\" поза діапазоном" msgid "could not compute %s hash: %s" msgstr "не вдалося обчислити %s хеш: %s" -#: utils/adt/date.c:63 utils/adt/timestamp.c:100 utils/adt/varbit.c:105 -#: utils/adt/varchar.c:49 +#: utils/adt/date.c:64 utils/adt/timestamp.c:116 utils/adt/varbit.c:105 +#: utils/adt/varchar.c:48 #, c-format msgid "invalid type modifier" msgstr "неприпустимий тип модифікатора" -#: utils/adt/date.c:75 +#: utils/adt/date.c:76 #, c-format msgid "TIME(%d)%s precision must not be negative" msgstr "TIME(%d)%s точність не повинна бути від'ємною" -#: utils/adt/date.c:81 +#: utils/adt/date.c:82 #, c-format msgid "TIME(%d)%s precision reduced to maximum allowed, %d" msgstr "TIME(%d)%s точність зменшена до дозволеного максимуму, %d" -#: utils/adt/date.c:166 utils/adt/date.c:174 utils/adt/formatting.c:4241 -#: utils/adt/formatting.c:4250 utils/adt/formatting.c:4363 -#: utils/adt/formatting.c:4373 +#: utils/adt/date.c:167 utils/adt/date.c:175 utils/adt/formatting.c:4424 +#: utils/adt/formatting.c:4433 utils/adt/formatting.c:4538 +#: utils/adt/formatting.c:4548 #, c-format msgid "date out of range: \"%s\"" msgstr "дата поза діапазоном: \"%s\"" -#: utils/adt/date.c:221 utils/adt/date.c:519 utils/adt/date.c:543 -#: utils/adt/rangetypes.c:1577 utils/adt/rangetypes.c:1592 utils/adt/xml.c:2470 +#: utils/adt/date.c:222 utils/adt/date.c:520 utils/adt/date.c:544 +#: utils/adt/rangetypes.c:1584 utils/adt/rangetypes.c:1599 utils/adt/xml.c:2552 #, c-format msgid "date out of range" msgstr "дата поза діапазоном" -#: utils/adt/date.c:267 utils/adt/timestamp.c:582 +#: utils/adt/date.c:268 utils/adt/timestamp.c:598 #, c-format msgid "date field value out of range: %d-%02d-%02d" msgstr "значення поля типу date поза діапазоном: %d-%02d-%02d" -#: utils/adt/date.c:274 utils/adt/date.c:283 utils/adt/timestamp.c:588 +#: utils/adt/date.c:275 utils/adt/date.c:284 utils/adt/timestamp.c:604 #, c-format msgid "date out of range: %d-%02d-%02d" msgstr "дата поза діапазоном: %d-%02d-%02d" -#: utils/adt/date.c:494 +#: utils/adt/date.c:495 #, c-format msgid "cannot subtract infinite dates" msgstr "віднімати безкінечні дати не можна" -#: utils/adt/date.c:592 utils/adt/date.c:655 utils/adt/date.c:691 -#: utils/adt/date.c:2885 utils/adt/date.c:2895 +#: utils/adt/date.c:593 utils/adt/date.c:656 utils/adt/date.c:692 +#: utils/adt/date.c:2906 utils/adt/date.c:2916 #, c-format msgid "date out of range for timestamp" msgstr "для позначки часу дата поза діапазоном" -#: utils/adt/date.c:1121 utils/adt/date.c:1204 utils/adt/date.c:1220 -#: utils/adt/date.c:2206 utils/adt/date.c:2990 utils/adt/timestamp.c:4143 -#: utils/adt/timestamp.c:4336 utils/adt/timestamp.c:4478 -#: utils/adt/timestamp.c:4731 utils/adt/timestamp.c:4932 -#: utils/adt/timestamp.c:4979 utils/adt/timestamp.c:5203 -#: utils/adt/timestamp.c:5250 utils/adt/timestamp.c:5380 +#: utils/adt/date.c:1122 utils/adt/date.c:1205 utils/adt/date.c:1221 +#: utils/adt/date.c:2215 utils/adt/date.c:3011 utils/adt/timestamp.c:4726 +#: utils/adt/timestamp.c:4941 utils/adt/timestamp.c:5089 +#: utils/adt/timestamp.c:5342 utils/adt/timestamp.c:5543 +#: utils/adt/timestamp.c:5590 utils/adt/timestamp.c:5814 +#: utils/adt/timestamp.c:5861 utils/adt/timestamp.c:5941 +#: utils/adt/timestamp.c:6070 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "одиниця \"%s\" не підтримується для типу %s" -#: utils/adt/date.c:1229 utils/adt/date.c:2222 utils/adt/date.c:3010 -#: utils/adt/timestamp.c:4157 utils/adt/timestamp.c:4353 -#: utils/adt/timestamp.c:4492 utils/adt/timestamp.c:4691 -#: utils/adt/timestamp.c:4988 utils/adt/timestamp.c:5259 -#: utils/adt/timestamp.c:5441 +#: utils/adt/date.c:1230 utils/adt/date.c:2231 utils/adt/date.c:3031 +#: utils/adt/timestamp.c:4740 utils/adt/timestamp.c:4958 +#: utils/adt/timestamp.c:5103 utils/adt/timestamp.c:5302 +#: utils/adt/timestamp.c:5599 utils/adt/timestamp.c:5870 +#: utils/adt/timestamp.c:5911 utils/adt/timestamp.c:6131 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "нерозпізнана одиниця \"%s\" для типу %s" -#: utils/adt/date.c:1313 utils/adt/date.c:1359 utils/adt/date.c:1918 -#: utils/adt/date.c:1949 utils/adt/date.c:1978 utils/adt/date.c:2848 -#: utils/adt/date.c:3080 utils/adt/datetime.c:424 utils/adt/datetime.c:1809 -#: utils/adt/formatting.c:4081 utils/adt/formatting.c:4117 -#: utils/adt/formatting.c:4210 utils/adt/formatting.c:4339 utils/adt/json.c:467 -#: utils/adt/json.c:506 utils/adt/timestamp.c:232 utils/adt/timestamp.c:264 -#: utils/adt/timestamp.c:700 utils/adt/timestamp.c:709 -#: utils/adt/timestamp.c:787 utils/adt/timestamp.c:820 -#: utils/adt/timestamp.c:2933 utils/adt/timestamp.c:2954 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2978 -#: utils/adt/timestamp.c:2984 utils/adt/timestamp.c:2992 -#: utils/adt/timestamp.c:3053 utils/adt/timestamp.c:3076 -#: utils/adt/timestamp.c:3089 utils/adt/timestamp.c:3103 -#: utils/adt/timestamp.c:3111 utils/adt/timestamp.c:3119 -#: utils/adt/timestamp.c:3847 utils/adt/timestamp.c:3971 -#: utils/adt/timestamp.c:4061 utils/adt/timestamp.c:4151 -#: utils/adt/timestamp.c:4244 utils/adt/timestamp.c:4347 -#: utils/adt/timestamp.c:4796 utils/adt/timestamp.c:5070 -#: utils/adt/timestamp.c:5509 utils/adt/timestamp.c:5519 -#: utils/adt/timestamp.c:5524 utils/adt/timestamp.c:5530 -#: utils/adt/timestamp.c:5563 utils/adt/timestamp.c:5650 -#: utils/adt/timestamp.c:5691 utils/adt/timestamp.c:5695 -#: utils/adt/timestamp.c:5749 utils/adt/timestamp.c:5753 -#: utils/adt/timestamp.c:5759 utils/adt/timestamp.c:5793 utils/adt/xml.c:2492 -#: utils/adt/xml.c:2499 utils/adt/xml.c:2519 utils/adt/xml.c:2526 +#: utils/adt/date.c:1314 utils/adt/date.c:1360 utils/adt/date.c:1919 +#: utils/adt/date.c:1950 utils/adt/date.c:1979 utils/adt/date.c:2869 +#: utils/adt/date.c:3101 utils/adt/datetime.c:422 utils/adt/datetime.c:1807 +#: utils/adt/formatting.c:4269 utils/adt/formatting.c:4305 +#: utils/adt/formatting.c:4392 utils/adt/formatting.c:4514 utils/adt/json.c:366 +#: utils/adt/json.c:405 utils/adt/timestamp.c:248 utils/adt/timestamp.c:280 +#: utils/adt/timestamp.c:716 utils/adt/timestamp.c:725 +#: utils/adt/timestamp.c:803 utils/adt/timestamp.c:836 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3075 +#: utils/adt/timestamp.c:3092 utils/adt/timestamp.c:3097 +#: utils/adt/timestamp.c:3116 utils/adt/timestamp.c:3129 +#: utils/adt/timestamp.c:3140 utils/adt/timestamp.c:3146 +#: utils/adt/timestamp.c:3152 utils/adt/timestamp.c:3157 +#: utils/adt/timestamp.c:3210 utils/adt/timestamp.c:3219 +#: utils/adt/timestamp.c:3240 utils/adt/timestamp.c:3245 +#: utils/adt/timestamp.c:3266 utils/adt/timestamp.c:3279 +#: utils/adt/timestamp.c:3293 utils/adt/timestamp.c:3301 +#: utils/adt/timestamp.c:3307 utils/adt/timestamp.c:3312 +#: utils/adt/timestamp.c:4380 utils/adt/timestamp.c:4532 +#: utils/adt/timestamp.c:4608 utils/adt/timestamp.c:4644 +#: utils/adt/timestamp.c:4734 utils/adt/timestamp.c:4813 +#: utils/adt/timestamp.c:4849 utils/adt/timestamp.c:4952 +#: utils/adt/timestamp.c:5407 utils/adt/timestamp.c:5681 +#: utils/adt/timestamp.c:6199 utils/adt/timestamp.c:6209 +#: utils/adt/timestamp.c:6214 utils/adt/timestamp.c:6220 +#: utils/adt/timestamp.c:6260 utils/adt/timestamp.c:6347 +#: utils/adt/timestamp.c:6388 utils/adt/timestamp.c:6392 +#: utils/adt/timestamp.c:6446 utils/adt/timestamp.c:6450 +#: utils/adt/timestamp.c:6456 utils/adt/timestamp.c:6497 utils/adt/xml.c:2574 +#: utils/adt/xml.c:2581 utils/adt/xml.c:2601 utils/adt/xml.c:2608 #, c-format msgid "timestamp out of range" msgstr "позначка часу поза діапазоном" -#: utils/adt/date.c:1535 utils/adt/date.c:2343 utils/adt/formatting.c:4431 +#: utils/adt/date.c:1536 utils/adt/date.c:2352 utils/adt/formatting.c:4597 #, c-format msgid "time out of range" msgstr "час поза діапазоном" -#: utils/adt/date.c:1587 utils/adt/timestamp.c:597 +#: utils/adt/date.c:1588 utils/adt/timestamp.c:613 #, c-format msgid "time field value out of range: %d:%02d:%02g" msgstr "значення поля типу time поза діапазоном: %d:%02d:%02g" -#: utils/adt/date.c:2107 utils/adt/date.c:2647 utils/adt/float.c:1042 -#: utils/adt/float.c:1118 utils/adt/int.c:635 utils/adt/int.c:682 -#: utils/adt/int.c:717 utils/adt/int8.c:414 utils/adt/numeric.c:2579 -#: utils/adt/timestamp.c:3501 utils/adt/timestamp.c:3528 -#: utils/adt/timestamp.c:3559 +#: utils/adt/date.c:2020 +#, c-format +msgid "cannot convert infinite interval to time" +msgstr "не можна перетворити нескінченний інтервал у час" + +#: utils/adt/date.c:2061 utils/adt/date.c:2605 +#, c-format +msgid "cannot add infinite interval to time" +msgstr "не можна додати нескінченний інтервал до часу" + +#: utils/adt/date.c:2084 utils/adt/date.c:2632 +#, c-format +msgid "cannot subtract infinite interval from time" +msgstr "не можна відняти від часу нескінченний інтервал" + +#: utils/adt/date.c:2115 utils/adt/date.c:2667 utils/adt/float.c:1036 +#: utils/adt/float.c:1112 utils/adt/int.c:635 utils/adt/int.c:682 +#: utils/adt/int.c:717 utils/adt/int8.c:413 utils/adt/numeric.c:2595 +#: utils/adt/timestamp.c:3810 utils/adt/timestamp.c:3847 +#: utils/adt/timestamp.c:3888 #, c-format msgid "invalid preceding or following size in window function" msgstr "неприпустимий розмір preceding або following у віконній функції" -#: utils/adt/date.c:2351 +#: utils/adt/date.c:2360 #, c-format msgid "time zone displacement out of range" msgstr "зсув часового поясу поза діапазоном" -#: utils/adt/date.c:3111 utils/adt/timestamp.c:5552 utils/adt/timestamp.c:5782 +#: utils/adt/date.c:3132 utils/adt/timestamp.c:6242 utils/adt/timestamp.c:6479 +#, c-format +msgid "interval time zone \"%s\" must be finite" +msgstr "часовий пояс інтервалу \"%s\" має бути скінченним" + +#: utils/adt/date.c:3139 utils/adt/timestamp.c:6249 utils/adt/timestamp.c:6486 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "інтервал \"%s\", який задає часовий пояс, не повинен включати місяці або дні" -#: utils/adt/datetime.c:3223 utils/adt/datetime.c:4002 -#: utils/adt/datetime.c:4008 utils/adt/timestamp.c:512 +#: utils/adt/datetime.c:3232 utils/adt/datetime.c:4127 +#: utils/adt/datetime.c:4133 utils/adt/timestamp.c:528 #, c-format msgid "time zone \"%s\" not recognized" msgstr "часовий пояс \"%s\" не розпізнаний" -#: utils/adt/datetime.c:3976 utils/adt/datetime.c:3983 +#: utils/adt/datetime.c:4101 utils/adt/datetime.c:4108 #, c-format msgid "date/time field value out of range: \"%s\"" msgstr "значення поля типу дата/час поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:3985 +#: utils/adt/datetime.c:4110 #, c-format msgid "Perhaps you need a different \"datestyle\" setting." msgstr "Можливо, вам потрібні інші налаштування \"datestyle\"." -#: utils/adt/datetime.c:3990 +#: utils/adt/datetime.c:4115 #, c-format msgid "interval field value out of range: \"%s\"" msgstr "значення поля типу інтервал, поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:3996 +#: utils/adt/datetime.c:4121 #, c-format msgid "time zone displacement out of range: \"%s\"" msgstr "зміщення часового поясу, поза діапазоном: \"%s\"" -#: utils/adt/datetime.c:4010 +#: utils/adt/datetime.c:4135 #, c-format msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "Це ім'я часового поясу з'являється у файлі конфігурації часового поясу з кодом \"%s\"." -#: utils/adt/datum.c:91 utils/adt/datum.c:103 +#: utils/adt/datum.c:90 utils/adt/datum.c:102 #, c-format msgid "invalid Datum pointer" msgstr "неприпустимий вказівник Datum" -#: utils/adt/dbsize.c:761 utils/adt/dbsize.c:837 +#: utils/adt/dbsize.c:764 utils/adt/dbsize.c:840 #, c-format msgid "invalid size: \"%s\"" msgstr "неприпустимий розмір: \"%s\"" -#: utils/adt/dbsize.c:838 +#: utils/adt/dbsize.c:841 #, c-format msgid "Invalid size unit: \"%s\"." msgstr "Неприпустима одиниця вимірювання розміру: \"%s\"." -#: utils/adt/dbsize.c:839 +#: utils/adt/dbsize.c:842 #, c-format msgid "Valid units are \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", and \"PB\"." msgstr "Припустимі одиниці вимірювання: \"bytes\", \"B\", \"kB\", \"MB\", \"GB\", \"TB\", і \"PB\"." -#: utils/adt/domains.c:92 +#: utils/adt/domains.c:95 #, c-format msgid "type %s is not a domain" msgstr "тип %s не є доменом" @@ -23533,10 +24479,10 @@ msgstr "неприпустима скінченна послідовність b msgid "Input data is missing padding, is truncated, or is otherwise corrupted." msgstr "Вхідні дані позбавлені можливості заповнення, скорочені, або пошкоджені іншим чином." -#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:648 -#: utils/adt/varlena.c:331 utils/adt/varlena.c:372 jsonpath_gram.y:528 -#: jsonpath_scan.l:629 jsonpath_scan.l:640 jsonpath_scan.l:650 -#: jsonpath_scan.l:701 +#: utils/adt/encode.c:492 utils/adt/encode.c:557 utils/adt/jsonfuncs.c:659 +#: utils/adt/varlena.c:333 utils/adt/varlena.c:374 jsonpath_gram.y:266 +#: jsonpath_gram.y:598 jsonpath_scan.l:640 jsonpath_scan.l:651 +#: jsonpath_scan.l:661 jsonpath_scan.l:712 #, c-format msgid "invalid input syntax for type %s" msgstr "неприпустимий вхідний синтаксис для типу %s" @@ -23573,353 +24519,348 @@ msgstr "не вдалося визначити фактичний тип пер msgid "enum %s contains no values" msgstr "перелік %s не містить значень" -#: utils/adt/float.c:89 +#: utils/adt/float.c:83 #, c-format msgid "value out of range: overflow" msgstr "значення поза діапазоном: надлишок" -#: utils/adt/float.c:97 +#: utils/adt/float.c:91 #, c-format msgid "value out of range: underflow" msgstr "значення поза діапазоном: недостача" -#: utils/adt/float.c:286 +#: utils/adt/float.c:280 #, c-format msgid "\"%s\" is out of range for type real" msgstr "\"%s\" поза діапазоном для дійсного типу" -#: utils/adt/float.c:488 +#: utils/adt/float.c:482 #, c-format msgid "\"%s\" is out of range for type double precision" msgstr "\"%s\" поза діапазоном для типу double precision" -#: utils/adt/float.c:1253 utils/adt/float.c:1327 utils/adt/int.c:355 +#: utils/adt/float.c:1247 utils/adt/float.c:1321 utils/adt/int.c:355 #: utils/adt/int.c:893 utils/adt/int.c:915 utils/adt/int.c:929 #: utils/adt/int.c:943 utils/adt/int.c:975 utils/adt/int.c:1213 -#: utils/adt/int8.c:1278 utils/adt/numeric.c:4500 utils/adt/numeric.c:4505 +#: utils/adt/int8.c:1277 utils/adt/numeric.c:4593 utils/adt/numeric.c:4598 #, c-format msgid "smallint out of range" msgstr "двобайтове ціле поза діапазоном" -#: utils/adt/float.c:1453 utils/adt/numeric.c:3693 utils/adt/numeric.c:10027 +#: utils/adt/float.c:1447 utils/adt/numeric.c:3709 utils/adt/numeric.c:10112 #, c-format msgid "cannot take square root of a negative number" msgstr "вилучити квадратний корінь від'ємного числа не можна" -#: utils/adt/float.c:1521 utils/adt/numeric.c:3981 utils/adt/numeric.c:4093 +#: utils/adt/float.c:1515 utils/adt/numeric.c:3997 utils/adt/numeric.c:4109 #, c-format msgid "zero raised to a negative power is undefined" msgstr "нуль у від'ємному ступені дає невизначеність" -#: utils/adt/float.c:1525 utils/adt/numeric.c:3985 utils/adt/numeric.c:10918 +#: utils/adt/float.c:1519 utils/adt/numeric.c:4001 utils/adt/numeric.c:11003 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "від'ємне число у не цілому ступені дає комплексний результат" -#: utils/adt/float.c:1701 utils/adt/float.c:1734 utils/adt/numeric.c:3893 -#: utils/adt/numeric.c:10698 +#: utils/adt/float.c:1695 utils/adt/float.c:1728 utils/adt/numeric.c:3909 +#: utils/adt/numeric.c:10783 #, c-format msgid "cannot take logarithm of zero" msgstr "обчислити логарифм нуля не можна" -#: utils/adt/float.c:1705 utils/adt/float.c:1738 utils/adt/numeric.c:3831 -#: utils/adt/numeric.c:3888 utils/adt/numeric.c:10702 +#: utils/adt/float.c:1699 utils/adt/float.c:1732 utils/adt/numeric.c:3847 +#: utils/adt/numeric.c:3904 utils/adt/numeric.c:10787 #, c-format msgid "cannot take logarithm of a negative number" msgstr "обчислити логарифм від'ємного числа не можна" -#: utils/adt/float.c:1771 utils/adt/float.c:1802 utils/adt/float.c:1897 -#: utils/adt/float.c:1924 utils/adt/float.c:1952 utils/adt/float.c:1979 -#: utils/adt/float.c:2126 utils/adt/float.c:2163 utils/adt/float.c:2333 -#: utils/adt/float.c:2389 utils/adt/float.c:2454 utils/adt/float.c:2511 -#: utils/adt/float.c:2702 utils/adt/float.c:2726 +#: utils/adt/float.c:1765 utils/adt/float.c:1796 utils/adt/float.c:1891 +#: utils/adt/float.c:1918 utils/adt/float.c:1946 utils/adt/float.c:1973 +#: utils/adt/float.c:2120 utils/adt/float.c:2157 utils/adt/float.c:2327 +#: utils/adt/float.c:2383 utils/adt/float.c:2448 utils/adt/float.c:2505 +#: utils/adt/float.c:2696 utils/adt/float.c:2720 #, c-format msgid "input is out of range" msgstr "введене значення поза діапазоном" -#: utils/adt/float.c:2867 -#, c-format -msgid "setseed parameter %g is out of allowed range [-1,1]" -msgstr "параметр setseed %g поза допустимим діапазоном [-1,1]" - -#: utils/adt/float.c:4095 utils/adt/numeric.c:1841 +#: utils/adt/float.c:4000 utils/adt/numeric.c:1857 #, c-format msgid "count must be greater than zero" msgstr "лічильник повинен бути більше нуля" -#: utils/adt/float.c:4100 utils/adt/numeric.c:1852 +#: utils/adt/float.c:4005 utils/adt/numeric.c:1868 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "операнд, нижня границя і верхня границя не можуть бути NaN" -#: utils/adt/float.c:4106 utils/adt/numeric.c:1857 +#: utils/adt/float.c:4011 utils/adt/numeric.c:1873 #, c-format msgid "lower and upper bounds must be finite" msgstr "нижня і верхня границі повинні бути скінченними" -#: utils/adt/float.c:4172 utils/adt/numeric.c:1871 +#: utils/adt/float.c:4077 utils/adt/numeric.c:1887 #, c-format msgid "lower bound cannot equal upper bound" msgstr "нижня границя не може дорівнювати верхній границі" -#: utils/adt/formatting.c:519 +#: utils/adt/formatting.c:530 #, c-format msgid "invalid format specification for an interval value" msgstr "неприпустима специфікація формату для цілого значення" -#: utils/adt/formatting.c:520 +#: utils/adt/formatting.c:531 #, c-format msgid "Intervals are not tied to specific calendar dates." msgstr "Інтервали не зв'язуються з певними календарними датами." -#: utils/adt/formatting.c:1150 +#: utils/adt/formatting.c:1161 #, c-format msgid "\"EEEE\" must be the last pattern used" msgstr "\"EEEE\" повинно бути останнім використаним шаблоном" -#: utils/adt/formatting.c:1158 +#: utils/adt/formatting.c:1169 #, c-format msgid "\"9\" must be ahead of \"PR\"" msgstr "\"9\" повинна бути до \"PR\"" -#: utils/adt/formatting.c:1174 +#: utils/adt/formatting.c:1185 #, c-format msgid "\"0\" must be ahead of \"PR\"" msgstr "\"0\" повинен бути до \"PR\"" -#: utils/adt/formatting.c:1201 +#: utils/adt/formatting.c:1212 #, c-format msgid "multiple decimal points" msgstr "численні десяткові точки" -#: utils/adt/formatting.c:1205 utils/adt/formatting.c:1288 +#: utils/adt/formatting.c:1216 utils/adt/formatting.c:1299 #, c-format msgid "cannot use \"V\" and decimal point together" msgstr "використовувати \"V\" і десяткову точку разом, не можна" -#: utils/adt/formatting.c:1217 +#: utils/adt/formatting.c:1228 #, c-format msgid "cannot use \"S\" twice" msgstr "використовувати \"S\" двічі, не можна" -#: utils/adt/formatting.c:1221 +#: utils/adt/formatting.c:1232 #, c-format msgid "cannot use \"S\" and \"PL\"/\"MI\"/\"SG\"/\"PR\" together" msgstr "використовувати \"S\" і \"PL\"/\"MI\"/\"SG\"/\"PR\" разом, не можна" -#: utils/adt/formatting.c:1241 +#: utils/adt/formatting.c:1252 #, c-format msgid "cannot use \"S\" and \"MI\" together" msgstr "використовувати \"S\" і \"MI\" разом, не можна" -#: utils/adt/formatting.c:1251 +#: utils/adt/formatting.c:1262 #, c-format msgid "cannot use \"S\" and \"PL\" together" msgstr "не можна використовувати \"S\" і \"PL\" разом" -#: utils/adt/formatting.c:1261 +#: utils/adt/formatting.c:1272 #, c-format msgid "cannot use \"S\" and \"SG\" together" msgstr "не можна використовувати \"S\" і \"SG\" разом" -#: utils/adt/formatting.c:1270 +#: utils/adt/formatting.c:1281 #, c-format msgid "cannot use \"PR\" and \"S\"/\"PL\"/\"MI\"/\"SG\" together" msgstr "не можна використовувати \"PR\" і \"S\"/\"PL\"/\"MI\"/\"SG\" разом" -#: utils/adt/formatting.c:1296 +#: utils/adt/formatting.c:1307 #, c-format msgid "cannot use \"EEEE\" twice" msgstr "не можна використовувати \"EEEE\" двічі" -#: utils/adt/formatting.c:1302 +#: utils/adt/formatting.c:1313 #, c-format msgid "\"EEEE\" is incompatible with other formats" msgstr "\"EEEE\" є несумісним з іншими форматами" -#: utils/adt/formatting.c:1303 +#: utils/adt/formatting.c:1314 #, c-format msgid "\"EEEE\" may only be used together with digit and decimal point patterns." msgstr "\"EEEE\" може використовуватись лише разом з шаблонами цифр і десяткової точки." -#: utils/adt/formatting.c:1387 +#: utils/adt/formatting.c:1398 #, c-format msgid "invalid datetime format separator: \"%s\"" msgstr "неприпустимий роздільник формату дати й часу: \"%s\"" -#: utils/adt/formatting.c:1514 +#: utils/adt/formatting.c:1525 #, c-format msgid "\"%s\" is not a number" msgstr "\"%s\" не є числом" -#: utils/adt/formatting.c:1592 +#: utils/adt/formatting.c:1603 #, c-format msgid "case conversion failed: %s" msgstr "помилка при перетворенні регістру: %s" -#: utils/adt/formatting.c:1646 utils/adt/formatting.c:1768 -#: utils/adt/formatting.c:1891 +#: utils/adt/formatting.c:1651 utils/adt/formatting.c:1799 +#: utils/adt/formatting.c:1989 #, c-format msgid "could not determine which collation to use for %s function" msgstr "не вдалося визначити який параметр сортування використати для функції %s" -#: utils/adt/formatting.c:2274 +#: utils/adt/formatting.c:2410 #, c-format msgid "invalid combination of date conventions" msgstr "неприпустиме поєднання стилів дат" -#: utils/adt/formatting.c:2275 +#: utils/adt/formatting.c:2411 #, c-format msgid "Do not mix Gregorian and ISO week date conventions in a formatting template." msgstr "Не змішуйте Gregorian і ISO стилі дат (тижнів) в одному шаблоні форматування." -#: utils/adt/formatting.c:2297 +#: utils/adt/formatting.c:2433 #, c-format msgid "conflicting values for \"%s\" field in formatting string" msgstr "конфліктуючі значення для \"%s\" поля в рядку форматування" -#: utils/adt/formatting.c:2299 +#: utils/adt/formatting.c:2435 #, c-format msgid "This value contradicts a previous setting for the same field type." msgstr "Це значення суперечить попередньому параметри для поля того ж типу." -#: utils/adt/formatting.c:2366 +#: utils/adt/formatting.c:2502 #, c-format msgid "source string too short for \"%s\" formatting field" msgstr "вихідний рядок занадто короткий для \"%s\" поля форматування" -#: utils/adt/formatting.c:2368 +#: utils/adt/formatting.c:2504 #, c-format msgid "Field requires %d characters, but only %d remain." msgstr "Поле потребує %d символів, але залишилось лише %d." -#: utils/adt/formatting.c:2370 utils/adt/formatting.c:2384 +#: utils/adt/formatting.c:2506 utils/adt/formatting.c:2520 #, c-format msgid "If your source string is not fixed-width, try using the \"FM\" modifier." msgstr "Якщо ваш вихідний рядок не має постійної ширини, спробуйте використати \"FM\" модифікатор." -#: utils/adt/formatting.c:2380 utils/adt/formatting.c:2393 -#: utils/adt/formatting.c:2614 +#: utils/adt/formatting.c:2516 utils/adt/formatting.c:2529 +#: utils/adt/formatting.c:2750 utils/adt/formatting.c:3650 #, c-format msgid "invalid value \"%s\" for \"%s\"" msgstr "неприпустиме значення \"%s\" для \"%s\"" -#: utils/adt/formatting.c:2382 +#: utils/adt/formatting.c:2518 #, c-format msgid "Field requires %d characters, but only %d could be parsed." msgstr "Поле потребує %d символів, але вдалося аналізувати лише %d." -#: utils/adt/formatting.c:2395 +#: utils/adt/formatting.c:2531 #, c-format msgid "Value must be an integer." msgstr "Значення повинне бути цілим числом." -#: utils/adt/formatting.c:2400 +#: utils/adt/formatting.c:2536 #, c-format msgid "value for \"%s\" in source string is out of range" msgstr "значення для \"%s\" у вихідному рядку поза діапазоном" -#: utils/adt/formatting.c:2402 +#: utils/adt/formatting.c:2538 #, c-format msgid "Value must be in the range %d to %d." msgstr "Значення повинне бути в діапазоні %d до %d." -#: utils/adt/formatting.c:2616 +#: utils/adt/formatting.c:2752 #, c-format msgid "The given value did not match any of the allowed values for this field." msgstr "Дане значення не відповідає жодному з доступних значень для цього поля." -#: utils/adt/formatting.c:2832 utils/adt/formatting.c:2852 -#: utils/adt/formatting.c:2872 utils/adt/formatting.c:2892 -#: utils/adt/formatting.c:2911 utils/adt/formatting.c:2930 -#: utils/adt/formatting.c:2954 utils/adt/formatting.c:2972 -#: utils/adt/formatting.c:2990 utils/adt/formatting.c:3008 -#: utils/adt/formatting.c:3025 utils/adt/formatting.c:3042 +#: utils/adt/formatting.c:2968 utils/adt/formatting.c:2988 +#: utils/adt/formatting.c:3008 utils/adt/formatting.c:3028 +#: utils/adt/formatting.c:3047 utils/adt/formatting.c:3066 +#: utils/adt/formatting.c:3090 utils/adt/formatting.c:3108 +#: utils/adt/formatting.c:3126 utils/adt/formatting.c:3144 +#: utils/adt/formatting.c:3161 utils/adt/formatting.c:3178 #, c-format msgid "localized string format value too long" msgstr "занадто довге значення формату локалізованого рядка" -#: utils/adt/formatting.c:3322 +#: utils/adt/formatting.c:3458 #, c-format msgid "unmatched format separator \"%c\"" msgstr "невідповідний роздільник формату \"%c\"" -#: utils/adt/formatting.c:3383 +#: utils/adt/formatting.c:3519 #, c-format msgid "unmatched format character \"%s\"" msgstr "невідповідний формат символу \"%s\"" -#: utils/adt/formatting.c:3491 +#: utils/adt/formatting.c:3652 #, c-format -msgid "formatting field \"%s\" is only supported in to_char" -msgstr "поле форматування \"%s\" підтримується лише в функції to_char" +msgid "Time zone abbreviation is not recognized." +msgstr "Абревіатуру часової зони не розпізнано." -#: utils/adt/formatting.c:3665 +#: utils/adt/formatting.c:3853 #, c-format msgid "invalid input string for \"Y,YYY\"" msgstr "неприпустимий вхідний рядок для \"Y,YYY\"" -#: utils/adt/formatting.c:3754 +#: utils/adt/formatting.c:3942 #, c-format msgid "input string is too short for datetime format" msgstr "вхідний рядок занадто короткий для формату дати й часу" -#: utils/adt/formatting.c:3762 +#: utils/adt/formatting.c:3950 #, c-format msgid "trailing characters remain in input string after datetime format" msgstr "символи наприкінці залишаються у вхідному рядку після формату дати й часу" -#: utils/adt/formatting.c:4319 +#: utils/adt/formatting.c:4494 #, c-format msgid "missing time zone in input string for type timestamptz" msgstr "пропущено часовий пояс у вхідному рядку для типу timestamptz" -#: utils/adt/formatting.c:4325 +#: utils/adt/formatting.c:4500 #, c-format msgid "timestamptz out of range" msgstr "timestamptz поза діапазоном" -#: utils/adt/formatting.c:4353 +#: utils/adt/formatting.c:4528 #, c-format msgid "datetime format is zoned but not timed" msgstr "формат дати й часу зоновано, але не приурочено" -#: utils/adt/formatting.c:4411 +#: utils/adt/formatting.c:4577 #, c-format msgid "missing time zone in input string for type timetz" msgstr "пропущено часовий пояс у вхідному рядку для типу timetz" -#: utils/adt/formatting.c:4417 +#: utils/adt/formatting.c:4583 #, c-format msgid "timetz out of range" msgstr "timetz поза діапазоном" -#: utils/adt/formatting.c:4443 +#: utils/adt/formatting.c:4609 #, c-format msgid "datetime format is not dated and not timed" msgstr "формат дати й часу не датований і не приурочений" -#: utils/adt/formatting.c:4575 +#: utils/adt/formatting.c:4786 #, c-format msgid "hour \"%d\" is invalid for the 12-hour clock" msgstr "година \"%d\" неприпустима для 12-часового годинника" -#: utils/adt/formatting.c:4577 +#: utils/adt/formatting.c:4788 #, c-format msgid "Use the 24-hour clock, or give an hour between 1 and 12." msgstr "Використайте 24-часовий годинник, або передавайте години від 1 до 12." -#: utils/adt/formatting.c:4689 +#: utils/adt/formatting.c:4900 #, c-format msgid "cannot calculate day of year without year information" msgstr "не можна обчислити день року без інформації про рік" -#: utils/adt/formatting.c:5621 +#: utils/adt/formatting.c:5852 #, c-format msgid "\"EEEE\" not supported for input" msgstr "\"EEEE\" не підтримується при введенні" -#: utils/adt/formatting.c:5633 +#: utils/adt/formatting.c:5864 #, c-format msgid "\"RN\" not supported for input" msgstr "\"RN\" не підтримується при введенні" @@ -23951,12 +24892,7 @@ msgstr "не вдалося знайти в файлі \"%s\": %m" msgid "file length too large" msgstr "довжина файлу завелика" -#: utils/adt/genfile.c:248 -#, c-format -msgid "must be superuser to read files with adminpack 1.0" -msgstr "щоб читати файли, використовуючи adminpack 1.0 потрібно бути суперкористувачем" - -#: utils/adt/genfile.c:702 +#: utils/adt/genfile.c:656 #, c-format msgid "tablespace with OID %u does not exist" msgstr "табличний простір з OID %u не існує" @@ -24012,560 +24948,645 @@ msgstr "повинно бути запитано мінімум 2 точки" msgid "invalid int2vector data" msgstr "неприпустимі дані int2vector" -#: utils/adt/int.c:1529 utils/adt/int8.c:1404 utils/adt/numeric.c:1749 -#: utils/adt/timestamp.c:5843 utils/adt/timestamp.c:5925 +#: utils/adt/int.c:1529 utils/adt/int8.c:1403 utils/adt/numeric.c:1765 +#: utils/adt/timestamp.c:6546 utils/adt/timestamp.c:6632 #, c-format msgid "step size cannot equal zero" msgstr "розмір кроку не може дорівнювати нулю" -#: utils/adt/int8.c:449 utils/adt/int8.c:472 utils/adt/int8.c:486 -#: utils/adt/int8.c:500 utils/adt/int8.c:531 utils/adt/int8.c:555 -#: utils/adt/int8.c:637 utils/adt/int8.c:705 utils/adt/int8.c:711 -#: utils/adt/int8.c:737 utils/adt/int8.c:751 utils/adt/int8.c:775 -#: utils/adt/int8.c:788 utils/adt/int8.c:900 utils/adt/int8.c:914 -#: utils/adt/int8.c:928 utils/adt/int8.c:959 utils/adt/int8.c:981 -#: utils/adt/int8.c:995 utils/adt/int8.c:1009 utils/adt/int8.c:1042 -#: utils/adt/int8.c:1056 utils/adt/int8.c:1070 utils/adt/int8.c:1101 -#: utils/adt/int8.c:1123 utils/adt/int8.c:1137 utils/adt/int8.c:1151 -#: utils/adt/int8.c:1313 utils/adt/int8.c:1348 utils/adt/numeric.c:4459 -#: utils/adt/rangetypes.c:1528 utils/adt/rangetypes.c:1541 +#: utils/adt/int8.c:448 utils/adt/int8.c:471 utils/adt/int8.c:485 +#: utils/adt/int8.c:499 utils/adt/int8.c:530 utils/adt/int8.c:554 +#: utils/adt/int8.c:636 utils/adt/int8.c:704 utils/adt/int8.c:710 +#: utils/adt/int8.c:736 utils/adt/int8.c:750 utils/adt/int8.c:774 +#: utils/adt/int8.c:787 utils/adt/int8.c:899 utils/adt/int8.c:913 +#: utils/adt/int8.c:927 utils/adt/int8.c:958 utils/adt/int8.c:980 +#: utils/adt/int8.c:994 utils/adt/int8.c:1008 utils/adt/int8.c:1041 +#: utils/adt/int8.c:1055 utils/adt/int8.c:1069 utils/adt/int8.c:1100 +#: utils/adt/int8.c:1122 utils/adt/int8.c:1136 utils/adt/int8.c:1150 +#: utils/adt/int8.c:1312 utils/adt/int8.c:1347 utils/adt/numeric.c:4542 +#: utils/adt/rangetypes.c:1535 utils/adt/rangetypes.c:1548 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" msgstr "bigint поза діапазоном" -#: utils/adt/int8.c:1361 +#: utils/adt/int8.c:1360 #, c-format msgid "OID out of range" msgstr "OID поза діапазоном" -#: utils/adt/json.c:320 utils/adt/jsonb.c:781 +#: utils/adt/json.c:202 utils/adt/jsonb.c:664 #, c-format msgid "key value must be scalar, not array, composite, or json" msgstr "значенням ключа повинен бути скаляр, не масив, композитний тип, або json" -#: utils/adt/json.c:1113 utils/adt/json.c:1123 utils/fmgr/funcapi.c:2082 +#: utils/adt/json.c:1034 utils/adt/json.c:1044 utils/fmgr/funcapi.c:2090 #, c-format msgid "could not determine data type for argument %d" msgstr "не вдалося визначити тип даних для аргументу %d" -#: utils/adt/json.c:1146 utils/adt/json.c:1337 utils/adt/json.c:1513 -#: utils/adt/json.c:1591 utils/adt/jsonb.c:1432 utils/adt/jsonb.c:1522 +#: utils/adt/json.c:1067 utils/adt/json.c:1266 utils/adt/json.c:1449 +#: utils/adt/json.c:1527 utils/adt/jsonb.c:1333 utils/adt/jsonb.c:1423 #, c-format msgid "null value not allowed for object key" msgstr "значення null не дозволене для ключа об'єкту" -#: utils/adt/json.c:1189 utils/adt/json.c:1352 +#: utils/adt/json.c:1117 utils/adt/json.c:1288 #, c-format msgid "duplicate JSON object key value: %s" msgstr "дублікат ключа об'єкта JSON: %s" -#: utils/adt/json.c:1297 utils/adt/jsonb.c:1233 +#: utils/adt/json.c:1226 utils/adt/jsonb.c:1134 #, c-format msgid "argument list must have even number of elements" msgstr "список аргументів повинен мати парну кількість елементів" #. translator: %s is a SQL function name -#: utils/adt/json.c:1299 utils/adt/jsonb.c:1235 +#: utils/adt/json.c:1228 utils/adt/jsonb.c:1136 #, c-format msgid "The arguments of %s must consist of alternating keys and values." msgstr "Аргументи %s повинні складатись з альтернативних ключей і значень." -#: utils/adt/json.c:1491 utils/adt/jsonb.c:1410 +#: utils/adt/json.c:1427 utils/adt/jsonb.c:1311 #, c-format msgid "array must have two columns" msgstr "масив повинен мати два стовпця" -#: utils/adt/json.c:1580 utils/adt/jsonb.c:1511 +#: utils/adt/json.c:1516 utils/adt/jsonb.c:1412 #, c-format msgid "mismatched array dimensions" msgstr "невідповідні виміри масиву" -#: utils/adt/json.c:1764 utils/adt/jsonb_util.c:1958 +#: utils/adt/json.c:1702 utils/adt/jsonb_util.c:1956 #, c-format msgid "duplicate JSON object key value" msgstr "дублікат значення ключа об'єкту JSON" -#: utils/adt/jsonb.c:294 +#: utils/adt/jsonb.c:282 #, c-format msgid "string too long to represent as jsonb string" msgstr "рядок занадто довгий для представлення в якості рядка jsonb" -#: utils/adt/jsonb.c:295 +#: utils/adt/jsonb.c:283 #, c-format msgid "Due to an implementation restriction, jsonb strings cannot exceed %d bytes." msgstr "Через обмеження упровадження, рядки jsonb не можуть перевищувати %d байт." -#: utils/adt/jsonb.c:1252 +#: utils/adt/jsonb.c:1153 #, c-format msgid "argument %d: key must not be null" msgstr "аргумент %d: ключ не повинен бути null" -#: utils/adt/jsonb.c:1843 +#: utils/adt/jsonb.c:1744 #, c-format msgid "field name must not be null" msgstr "ім'я поля не повинно бути null" -#: utils/adt/jsonb.c:1905 +#: utils/adt/jsonb.c:1806 #, c-format msgid "object keys must be strings" msgstr "ключі об'єктів повинні бути рядками" -#: utils/adt/jsonb.c:2116 +#: utils/adt/jsonb.c:2017 #, c-format msgid "cannot cast jsonb null to type %s" msgstr "привести значення jsonb null до типу %s не можна" -#: utils/adt/jsonb.c:2117 +#: utils/adt/jsonb.c:2018 #, c-format msgid "cannot cast jsonb string to type %s" msgstr "привести рядок jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2118 +#: utils/adt/jsonb.c:2019 #, c-format msgid "cannot cast jsonb numeric to type %s" msgstr "привести число jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2119 +#: utils/adt/jsonb.c:2020 #, c-format msgid "cannot cast jsonb boolean to type %s" msgstr "привести логічне значення jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2120 +#: utils/adt/jsonb.c:2021 #, c-format msgid "cannot cast jsonb array to type %s" msgstr "привести масив jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2121 +#: utils/adt/jsonb.c:2022 #, c-format msgid "cannot cast jsonb object to type %s" msgstr "привести об'єкт jsonb до типу %s не можна" -#: utils/adt/jsonb.c:2122 +#: utils/adt/jsonb.c:2023 #, c-format msgid "cannot cast jsonb array or object to type %s" msgstr "привести масив або об'єкт jsonb до типу %s не можна" -#: utils/adt/jsonb_util.c:758 +#: utils/adt/jsonb_util.c:756 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "кількість пар об'єкта jsonb перевищує максимально дозволену (%zu)" -#: utils/adt/jsonb_util.c:799 +#: utils/adt/jsonb_util.c:797 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "кількість елементів масиву jsonb перевищує максимально дозволену(%zu)" -#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 +#: utils/adt/jsonb_util.c:1671 utils/adt/jsonb_util.c:1691 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %d bytes" msgstr "загальний розмір елементів масиву jsonb перевищує максимум %d байт" -#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 -#: utils/adt/jsonb_util.c:1809 +#: utils/adt/jsonb_util.c:1752 utils/adt/jsonb_util.c:1787 +#: utils/adt/jsonb_util.c:1807 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %d bytes" msgstr "загальний розмір елементів об'єкту jsonb перевищує максимум %d байт" -#: utils/adt/jsonbsubs.c:70 utils/adt/jsonbsubs.c:151 +#: utils/adt/jsonbsubs.c:67 utils/adt/jsonbsubs.c:148 #, c-format msgid "jsonb subscript does not support slices" msgstr "підрядковий символ jsonb не підтримує сектори" -#: utils/adt/jsonbsubs.c:103 utils/adt/jsonbsubs.c:117 +#: utils/adt/jsonbsubs.c:100 utils/adt/jsonbsubs.c:114 #, c-format msgid "subscript type %s is not supported" msgstr "тип підписки %s не підтримується" -#: utils/adt/jsonbsubs.c:104 +#: utils/adt/jsonbsubs.c:101 #, c-format msgid "jsonb subscript must be coercible to only one type, integer or text." msgstr "підрядковий символ jsonb повинен бути приведений лише до одного типу, integer або text." -#: utils/adt/jsonbsubs.c:118 +#: utils/adt/jsonbsubs.c:115 #, c-format msgid "jsonb subscript must be coercible to either integer or text." msgstr "підрядковий символ jsonb повинен бути приведений або до integer, або до text." -#: utils/adt/jsonbsubs.c:139 +#: utils/adt/jsonbsubs.c:136 #, c-format msgid "jsonb subscript must have text type" msgstr "підрядковий символ jsonb повинен мати тип text" -#: utils/adt/jsonbsubs.c:207 +#: utils/adt/jsonbsubs.c:204 #, c-format msgid "jsonb subscript in assignment must not be null" msgstr "підрядковий символ jsonb у присвоєнні не повинен бути null" -#: utils/adt/jsonfuncs.c:572 utils/adt/jsonfuncs.c:821 -#: utils/adt/jsonfuncs.c:2429 utils/adt/jsonfuncs.c:2881 -#: utils/adt/jsonfuncs.c:3676 utils/adt/jsonfuncs.c:4018 +#: utils/adt/jsonfuncs.c:583 utils/adt/jsonfuncs.c:830 +#: utils/adt/jsonfuncs.c:2439 utils/adt/jsonfuncs.c:3015 +#: utils/adt/jsonfuncs.c:3948 utils/adt/jsonfuncs.c:4295 #, c-format msgid "cannot call %s on a scalar" msgstr "викликати %s зі скаляром, не можна" -#: utils/adt/jsonfuncs.c:577 utils/adt/jsonfuncs.c:806 -#: utils/adt/jsonfuncs.c:2883 utils/adt/jsonfuncs.c:3663 +#: utils/adt/jsonfuncs.c:588 utils/adt/jsonfuncs.c:815 +#: utils/adt/jsonfuncs.c:3017 utils/adt/jsonfuncs.c:3935 #, c-format msgid "cannot call %s on an array" msgstr "викликати %s з масивом, не можна" -#: utils/adt/jsonfuncs.c:636 jsonpath_scan.l:596 +#: utils/adt/jsonfuncs.c:647 jsonpath_scan.l:607 #, c-format msgid "unsupported Unicode escape sequence" msgstr "непідтримувана спеціальна послідовність Unicode" -#: utils/adt/jsonfuncs.c:713 +#: utils/adt/jsonfuncs.c:724 #, c-format msgid "JSON data, line %d: %s%s%s" msgstr "Дані JSON, рядок %d: %s%s%s" -#: utils/adt/jsonfuncs.c:1875 utils/adt/jsonfuncs.c:1912 +#: utils/adt/jsonfuncs.c:1883 utils/adt/jsonfuncs.c:1920 #, c-format msgid "cannot get array length of a scalar" msgstr "отримати довжину скаляра масиву не можна" -#: utils/adt/jsonfuncs.c:1879 utils/adt/jsonfuncs.c:1898 +#: utils/adt/jsonfuncs.c:1887 utils/adt/jsonfuncs.c:1906 #, c-format msgid "cannot get array length of a non-array" msgstr "отримати довжину масива для не масиву не можна" -#: utils/adt/jsonfuncs.c:1978 +#: utils/adt/jsonfuncs.c:1986 #, c-format msgid "cannot call %s on a non-object" msgstr "викликати %s з не об'єктом, не можна" -#: utils/adt/jsonfuncs.c:2166 +#: utils/adt/jsonfuncs.c:2174 #, c-format msgid "cannot deconstruct an array as an object" msgstr "вилучити масив у вигляді об'єкту не можна" -#: utils/adt/jsonfuncs.c:2180 +#: utils/adt/jsonfuncs.c:2188 #, c-format msgid "cannot deconstruct a scalar" msgstr "вилучити скаляр не можна" -#: utils/adt/jsonfuncs.c:2225 +#: utils/adt/jsonfuncs.c:2233 #, c-format msgid "cannot extract elements from a scalar" msgstr "вилучити елементи зі скаляру не можна" -#: utils/adt/jsonfuncs.c:2229 +#: utils/adt/jsonfuncs.c:2237 #, c-format msgid "cannot extract elements from an object" msgstr "вилучити елементи з об'єкту не можна" -#: utils/adt/jsonfuncs.c:2414 utils/adt/jsonfuncs.c:3896 +#: utils/adt/jsonfuncs.c:2424 utils/adt/jsonfuncs.c:4173 #, c-format msgid "cannot call %s on a non-array" msgstr "викликати %s з не масивом не можна" -#: utils/adt/jsonfuncs.c:2488 utils/adt/jsonfuncs.c:2493 -#: utils/adt/jsonfuncs.c:2510 utils/adt/jsonfuncs.c:2516 +#: utils/adt/jsonfuncs.c:2515 utils/adt/jsonfuncs.c:2520 +#: utils/adt/jsonfuncs.c:2538 utils/adt/jsonfuncs.c:2544 #, c-format msgid "expected JSON array" msgstr "очікувався масив JSON" -#: utils/adt/jsonfuncs.c:2489 +#: utils/adt/jsonfuncs.c:2516 #, c-format msgid "See the value of key \"%s\"." msgstr "Перевірте значення ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2511 +#: utils/adt/jsonfuncs.c:2539 #, c-format msgid "See the array element %s of key \"%s\"." msgstr "Перевірте елемент масиву %s ключа \"%s\"." -#: utils/adt/jsonfuncs.c:2517 +#: utils/adt/jsonfuncs.c:2545 #, c-format msgid "See the array element %s." msgstr "Перевірте елемент масиву %s." -#: utils/adt/jsonfuncs.c:2552 +#: utils/adt/jsonfuncs.c:2597 #, c-format msgid "malformed JSON array" msgstr "неправильний масив JSON" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3389 +#: utils/adt/jsonfuncs.c:3647 #, c-format msgid "first argument of %s must be a row type" msgstr "першим аргументом %s повинен бути тип рядка" #. translator: %s is a function name, eg json_to_record -#: utils/adt/jsonfuncs.c:3413 +#: utils/adt/jsonfuncs.c:3671 #, c-format msgid "could not determine row type for result of %s" msgstr "не вдалося визначити тип рядка для результату %s" -#: utils/adt/jsonfuncs.c:3415 +#: utils/adt/jsonfuncs.c:3673 #, c-format msgid "Provide a non-null record argument, or call the function in the FROM clause using a column definition list." msgstr "Надайте аргумент ненульового запису, або викличте функцію в реченні FROM, використовуючи список визначення стовпців." -#: utils/adt/jsonfuncs.c:3785 utils/fmgr/funcapi.c:94 +#: utils/adt/jsonfuncs.c:4059 utils/fmgr/funcapi.c:94 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "необхідний режим матеріалізації (materialize mode), але він неприпустимий у цьому контексті" -#: utils/adt/jsonfuncs.c:3913 utils/adt/jsonfuncs.c:3997 +#: utils/adt/jsonfuncs.c:4190 utils/adt/jsonfuncs.c:4274 #, c-format msgid "argument of %s must be an array of objects" msgstr "аргументом %s повинен бути масив об'єктів" -#: utils/adt/jsonfuncs.c:3946 +#: utils/adt/jsonfuncs.c:4223 #, c-format msgid "cannot call %s on an object" msgstr "викликати %s з об'єктом не можна" -#: utils/adt/jsonfuncs.c:4380 utils/adt/jsonfuncs.c:4439 -#: utils/adt/jsonfuncs.c:4519 +#: utils/adt/jsonfuncs.c:4656 utils/adt/jsonfuncs.c:4715 +#: utils/adt/jsonfuncs.c:4795 #, c-format msgid "cannot delete from scalar" msgstr "видалити зі скаляру не можна" -#: utils/adt/jsonfuncs.c:4524 +#: utils/adt/jsonfuncs.c:4800 #, c-format msgid "cannot delete from object using integer index" msgstr "видалити з об'єкту по числовому індексу не можна" -#: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4751 +#: utils/adt/jsonfuncs.c:4868 utils/adt/jsonfuncs.c:5027 #, c-format msgid "cannot set path in scalar" msgstr "встановити шлях в скалярі не можна" -#: utils/adt/jsonfuncs.c:4633 utils/adt/jsonfuncs.c:4675 +#: utils/adt/jsonfuncs.c:4909 utils/adt/jsonfuncs.c:4951 #, c-format msgid "null_value_treatment must be \"delete_key\", \"return_target\", \"use_json_null\", or \"raise_exception\"" msgstr "null_value_treatment має бути \"delete_key\", \"return_target\", \"use_json_null\", або \"raise_exception\"" -#: utils/adt/jsonfuncs.c:4646 +#: utils/adt/jsonfuncs.c:4922 #, c-format msgid "JSON value must not be null" msgstr "Значення JSON не повинне бути null" -#: utils/adt/jsonfuncs.c:4647 +#: utils/adt/jsonfuncs.c:4923 #, c-format msgid "Exception was raised because null_value_treatment is \"raise_exception\"." msgstr "Виняток було запущено через те, що null_value_treatment дорівнює \"raise_exception\"." -#: utils/adt/jsonfuncs.c:4648 +#: utils/adt/jsonfuncs.c:4924 #, c-format msgid "To avoid, either change the null_value_treatment argument or ensure that an SQL NULL is not passed." msgstr "Щоб уникнути, або змініть аргумент null_value_treatment або переконайтесь що SQL NULL не передано." -#: utils/adt/jsonfuncs.c:4703 +#: utils/adt/jsonfuncs.c:4979 #, c-format msgid "cannot delete path in scalar" msgstr "видалити шлях в скалярі не можна" -#: utils/adt/jsonfuncs.c:4917 +#: utils/adt/jsonfuncs.c:5193 #, c-format msgid "path element at position %d is null" msgstr "елемент шляху в позиції %d є null" -#: utils/adt/jsonfuncs.c:4936 utils/adt/jsonfuncs.c:4967 -#: utils/adt/jsonfuncs.c:5040 +#: utils/adt/jsonfuncs.c:5212 utils/adt/jsonfuncs.c:5243 +#: utils/adt/jsonfuncs.c:5316 #, c-format msgid "cannot replace existing key" msgstr "замініти існуючий ключ не можна" -#: utils/adt/jsonfuncs.c:4937 utils/adt/jsonfuncs.c:4968 +#: utils/adt/jsonfuncs.c:5213 utils/adt/jsonfuncs.c:5244 #, c-format msgid "The path assumes key is a composite object, but it is a scalar value." msgstr "Шлях припускає, що ключ є складеним об'єктом, але це скалярне значення." -#: utils/adt/jsonfuncs.c:5041 +#: utils/adt/jsonfuncs.c:5317 #, c-format msgid "Try using the function jsonb_set to replace key value." msgstr "Спробуйте, використати функцію jsonb_set, щоб замінити значення ключа." -#: utils/adt/jsonfuncs.c:5145 +#: utils/adt/jsonfuncs.c:5421 #, c-format msgid "path element at position %d is not an integer: \"%s\"" msgstr "елмент шляху в позиції %d не є цілим числом: \"%s\"" -#: utils/adt/jsonfuncs.c:5162 +#: utils/adt/jsonfuncs.c:5438 #, c-format msgid "path element at position %d is out of range: %d" msgstr "елемент шляху в позиції %d поза діапазоном: %d" -#: utils/adt/jsonfuncs.c:5314 +#: utils/adt/jsonfuncs.c:5590 #, c-format msgid "wrong flag type, only arrays and scalars are allowed" msgstr "неправильний тип позначки, дозволені лише масиви і скаляри" -#: utils/adt/jsonfuncs.c:5321 +#: utils/adt/jsonfuncs.c:5597 #, c-format msgid "flag array element is not a string" msgstr "елемент масиву позначок не є рядком" -#: utils/adt/jsonfuncs.c:5322 utils/adt/jsonfuncs.c:5344 +#: utils/adt/jsonfuncs.c:5598 utils/adt/jsonfuncs.c:5620 #, c-format msgid "Possible values are: \"string\", \"numeric\", \"boolean\", \"key\", and \"all\"." msgstr "Можливі значення: \"string\", \"numeric\", \"boolean\", \"key\", і \"all\"." -#: utils/adt/jsonfuncs.c:5342 +#: utils/adt/jsonfuncs.c:5618 #, c-format msgid "wrong flag in flag array: \"%s\"" msgstr "неправильна позначка в масиві позначок: \"%s\"" -#: utils/adt/jsonpath.c:382 +#: utils/adt/jsonpath.c:389 #, c-format msgid "@ is not allowed in root expressions" msgstr "@ не дозволяється в кореневих виразах" -#: utils/adt/jsonpath.c:388 +#: utils/adt/jsonpath.c:395 #, c-format msgid "LAST is allowed only in array subscripts" msgstr "LAST дозволяється лише в підрядкових символах масиву" -#: utils/adt/jsonpath_exec.c:361 +#: utils/adt/jsonpath_exec.c:491 #, c-format msgid "single boolean result is expected" msgstr "очікується один логічний результат" -#: utils/adt/jsonpath_exec.c:557 +#: utils/adt/jsonpath_exec.c:851 #, c-format -msgid "\"vars\" argument is not an object" -msgstr "аргумент \"vars\" не є об'єктом" +msgid "jsonpath wildcard array accessor can only be applied to an array" +msgstr "доступ до підстановочного масиву jsonpath може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:558 +#: utils/adt/jsonpath_exec.c:874 #, c-format -msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." -msgstr "Параметри Jsonpath повинні бути закодовані в якості пар \"ключ-значення\" об'єкту \"vars\"." +msgid "jsonpath wildcard member accessor can only be applied to an object" +msgstr "доступ до підстановочного елемента jsonpath може бути застосований лише до об'єкта" + +#: utils/adt/jsonpath_exec.c:923 +#, c-format +msgid "jsonpath array subscript is out of bounds" +msgstr "підрядковий символ масиву jsonpath поза межами" + +#: utils/adt/jsonpath_exec.c:980 +#, c-format +msgid "jsonpath array accessor can only be applied to an array" +msgstr "доступ до масиву jsonpath може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:675 +#: utils/adt/jsonpath_exec.c:1044 #, c-format msgid "JSON object does not contain key \"%s\"" msgstr "Об'єкт JSON не містить ключа \"%s\"" -#: utils/adt/jsonpath_exec.c:687 +#: utils/adt/jsonpath_exec.c:1056 #, c-format msgid "jsonpath member accessor can only be applied to an object" msgstr "доступ для елемента jsonpath може бути застосований лише до об'єкта" -#: utils/adt/jsonpath_exec.c:716 +#: utils/adt/jsonpath_exec.c:1114 #, c-format -msgid "jsonpath wildcard array accessor can only be applied to an array" -msgstr "доступ до підстановочного масиву jsonpath може бути застосований лише до масиву" +msgid "jsonpath item method .%s() can only be applied to an array" +msgstr "метод елемента jsonpath .%s() може бути застосований лише до масиву" -#: utils/adt/jsonpath_exec.c:764 +#: utils/adt/jsonpath_exec.c:1167 utils/adt/jsonpath_exec.c:1193 #, c-format -msgid "jsonpath array subscript is out of bounds" -msgstr "підрядковий символ масиву jsonpath поза межами" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type double precision" +msgstr "" -#: utils/adt/jsonpath_exec.c:821 +#: utils/adt/jsonpath_exec.c:1172 utils/adt/jsonpath_exec.c:1198 +#: utils/adt/jsonpath_exec.c:1414 utils/adt/jsonpath_exec.c:1446 #, c-format -msgid "jsonpath array accessor can only be applied to an array" -msgstr "доступ до масиву jsonpath може бути застосований лише до масиву" +msgid "NaN or Infinity is not allowed for jsonpath item method .%s()" +msgstr "" -#: utils/adt/jsonpath_exec.c:873 +#: utils/adt/jsonpath_exec.c:1211 utils/adt/jsonpath_exec.c:1313 +#: utils/adt/jsonpath_exec.c:1455 utils/adt/jsonpath_exec.c:1593 #, c-format -msgid "jsonpath wildcard member accessor can only be applied to an object" -msgstr "доступ до підстановочного елемента jsonpath може бути застосований лише до об'єкта" +msgid "jsonpath item method .%s() can only be applied to a string or numeric value" +msgstr "метод елемента jsonpath .%s() може бути застосований лише до рядка або числового значення" -#: utils/adt/jsonpath_exec.c:1007 +#: utils/adt/jsonpath_exec.c:1281 utils/adt/jsonpath_exec.c:1305 #, c-format -msgid "jsonpath item method .%s() can only be applied to an array" -msgstr "метод елемента jsonpath .%s() може бути застосований лише до масиву" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type bigint" +msgstr "" -#: utils/adt/jsonpath_exec.c:1060 +#: utils/adt/jsonpath_exec.c:1357 utils/adt/jsonpath_exec.c:1377 #, c-format -msgid "numeric argument of jsonpath item method .%s() is out of range for type double precision" -msgstr "числовий аргумент методу елемента jsonpath .%s() поза діапазоном для типу double precision" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type boolean" +msgstr "" -#: utils/adt/jsonpath_exec.c:1081 +#: utils/adt/jsonpath_exec.c:1386 #, c-format -msgid "string argument of jsonpath item method .%s() is not a valid representation of a double precision number" -msgstr "строковий аргумент методу елемента jsonpath .%s() не є представленням числа double precision" +msgid "jsonpath item method .%s() can only be applied to a boolean, string, or numeric value" +msgstr "" -#: utils/adt/jsonpath_exec.c:1094 +#: utils/adt/jsonpath_exec.c:1439 utils/adt/jsonpath_exec.c:1528 #, c-format -msgid "jsonpath item method .%s() can only be applied to a string or numeric value" -msgstr "метод елемента jsonpath .%s() може бути застосований лише до рядка або числового значення" +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type numeric" +msgstr "" + +#: utils/adt/jsonpath_exec.c:1487 +#, c-format +msgid "precision of jsonpath item method .%s() is out of range for type integer" +msgstr "точність методу елементу jsonpath .%s() знаходиться за межами діапазону для типу integer" + +#: utils/adt/jsonpath_exec.c:1501 +#, c-format +msgid "scale of jsonpath item method .%s() is out of range for type integer" +msgstr "масштаб методу jsonpath елементу .%s() знаходиться за межами діапазону для типу integer" + +#: utils/adt/jsonpath_exec.c:1561 utils/adt/jsonpath_exec.c:1585 +#, c-format +msgid "argument \"%s\" of jsonpath item method .%s() is invalid for type integer" +msgstr "" -#: utils/adt/jsonpath_exec.c:1584 +#: utils/adt/jsonpath_exec.c:1648 +#, c-format +msgid "jsonpath item method .%s() can only be applied to a boolean, string, numeric, or datetime value" +msgstr "" + +#: utils/adt/jsonpath_exec.c:2137 #, c-format msgid "left operand of jsonpath operator %s is not a single numeric value" msgstr "лівий операнд оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1591 +#: utils/adt/jsonpath_exec.c:2144 #, c-format msgid "right operand of jsonpath operator %s is not a single numeric value" msgstr "правий операнд оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1659 +#: utils/adt/jsonpath_exec.c:2212 #, c-format msgid "operand of unary jsonpath operator %s is not a numeric value" msgstr "операнд унарного оператора jsonpath %s не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:1758 +#: utils/adt/jsonpath_exec.c:2311 #, c-format msgid "jsonpath item method .%s() can only be applied to a numeric value" msgstr "метод елемента jsonpath .%s() може бути застосований лише до числового значення" -#: utils/adt/jsonpath_exec.c:1798 +#: utils/adt/jsonpath_exec.c:2357 #, c-format msgid "jsonpath item method .%s() can only be applied to a string" msgstr "метод елемента jsonpath .%s() може бути застосований лише до рядку" -#: utils/adt/jsonpath_exec.c:1901 +#: utils/adt/jsonpath_exec.c:2450 +#, c-format +msgid "time precision of jsonpath item method .%s() is out of range for type integer" +msgstr "точність часу методу елементу jsonpath .%s() знаходиться за межами діапазону для типу integer" + +#: utils/adt/jsonpath_exec.c:2484 utils/adt/jsonpath_exec.c:2490 +#: utils/adt/jsonpath_exec.c:2517 utils/adt/jsonpath_exec.c:2545 +#: utils/adt/jsonpath_exec.c:2598 utils/adt/jsonpath_exec.c:2649 +#: utils/adt/jsonpath_exec.c:2720 #, c-format -msgid "datetime format is not recognized: \"%s\"" -msgstr "формат дати й часу не розпізнано: \"%s\"" +msgid "%s format is not recognized: \"%s\"" +msgstr "Формат %s не розпізнано: \"%s\"" -#: utils/adt/jsonpath_exec.c:1903 +#: utils/adt/jsonpath_exec.c:2486 #, c-format msgid "Use a datetime template argument to specify the input data format." msgstr "Використайте аргумент шаблону дати й часу щоб вказати формат вхідних даних." -#: utils/adt/jsonpath_exec.c:1971 +#: utils/adt/jsonpath_exec.c:2679 utils/adt/jsonpath_exec.c:2760 +#, c-format +msgid "time precision of jsonpath item method .%s() is invalid" +msgstr "" + +#: utils/adt/jsonpath_exec.c:2840 #, c-format msgid "jsonpath item method .%s() can only be applied to an object" msgstr "метод елемента jsonpath .%s() може бути застосований лише до об'єкта" -#: utils/adt/jsonpath_exec.c:2153 +#: utils/adt/jsonpath_exec.c:3124 +#, c-format +msgid "could not convert value of type %s to jsonpath" +msgstr "" + +#: utils/adt/jsonpath_exec.c:3158 #, c-format msgid "could not find jsonpath variable \"%s\"" msgstr "не вдалося знайти змінну jsonpath \"%s\"" -#: utils/adt/jsonpath_exec.c:2417 +#: utils/adt/jsonpath_exec.c:3211 +#, c-format +msgid "\"vars\" argument is not an object" +msgstr "аргумент \"vars\" не є об'єктом" + +#: utils/adt/jsonpath_exec.c:3212 +#, c-format +msgid "Jsonpath parameters should be encoded as key-value pairs of \"vars\" object." +msgstr "Параметри Jsonpath повинні бути закодовані в якості пар \"ключ-значення\" об'єкту \"vars\"." + +#: utils/adt/jsonpath_exec.c:3475 #, c-format msgid "jsonpath array subscript is not a single numeric value" msgstr "підрядковий символ масиву jsonpath не є єдиним числовим значенням" -#: utils/adt/jsonpath_exec.c:2429 +#: utils/adt/jsonpath_exec.c:3487 #, c-format msgid "jsonpath array subscript is out of integer range" msgstr "підрядковий символ масиву jsonpath поза цілим діапазоном" -#: utils/adt/jsonpath_exec.c:2606 +#: utils/adt/jsonpath_exec.c:3671 #, c-format msgid "cannot convert value from %s to %s without time zone usage" msgstr "не можна перетворити значення з %s в %s без використання часового поясу" -#: utils/adt/jsonpath_exec.c:2608 +#: utils/adt/jsonpath_exec.c:3673 #, c-format msgid "Use *_tz() function for time zone support." msgstr "Використовуйте функцію *_tz() для підтримки часового поясу." +#: utils/adt/jsonpath_exec.c:3981 +#, c-format +msgid "JSON path expression for column \"%s\" should return single item without wrapper" +msgstr "" + +#: utils/adt/jsonpath_exec.c:3983 utils/adt/jsonpath_exec.c:3988 +#, c-format +msgid "Use the WITH WRAPPER clause to wrap SQL/JSON items into an array." +msgstr "" + +#: utils/adt/jsonpath_exec.c:3987 +#, c-format +msgid "JSON path expression in JSON_QUERY should return single item without wrapper" +msgstr "" + +#: utils/adt/jsonpath_exec.c:4045 utils/adt/jsonpath_exec.c:4069 +#, c-format +msgid "JSON path expression for column \"%s\" should return single scalar item" +msgstr "" + +#: utils/adt/jsonpath_exec.c:4050 utils/adt/jsonpath_exec.c:4074 +#, c-format +msgid "JSON path expression in JSON_VALUE should return single scalar item" +msgstr "" + #: utils/adt/levenshtein.c:132 #, c-format msgid "levenshtein argument exceeds maximum length of %d characters" msgstr "довжина аргументу levenshtein перевищує максимальну довжину, %d символів" -#: utils/adt/like.c:161 +#: utils/adt/like.c:159 #, c-format msgid "nondeterministic collations are not supported for LIKE" msgstr "недетерміновані параметри сортування не підтримуються для LIKE" -#: utils/adt/like.c:190 utils/adt/like_support.c:1024 +#: utils/adt/like.c:188 utils/adt/like_support.c:1023 #, c-format msgid "could not determine which collation to use for ILIKE" msgstr "не вдалося визначити який параметр сортування використати для ILIKE" -#: utils/adt/like.c:202 +#: utils/adt/like.c:200 #, c-format msgid "nondeterministic collations are not supported for ILIKE" msgstr "недетерміновані параметри сортування не підтримуються для ILIKE" @@ -24575,22 +25596,22 @@ msgstr "недетерміновані параметри сортування msgid "LIKE pattern must not end with escape character" msgstr "Шаблон LIKE не повинен закінчуватись символом виходу" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:801 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:800 #, c-format msgid "invalid escape string" msgstr "неприпустимий рядок виходу" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:802 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:801 #, c-format msgid "Escape string must be empty or one character." msgstr "Рядок виходу повинен бути пустим або складатися з одного символу." -#: utils/adt/like_support.c:1014 +#: utils/adt/like_support.c:1013 #, c-format msgid "case insensitive matching not supported on type bytea" msgstr "порівняння без урахування регістру не підтримується для типу bytea" -#: utils/adt/like_support.c:1115 +#: utils/adt/like_support.c:1114 #, c-format msgid "regular-expression matching not supported on type bytea" msgstr "порівняння з регулярними виразами не підтримується для типу bytea" @@ -24600,17 +25621,17 @@ msgstr "порівняння з регулярними виразами не п msgid "invalid octet value in \"macaddr\" value: \"%s\"" msgstr "неприпустиме значення октету в значенні типу \"macaddr\": \"%s\"" -#: utils/adt/mac8.c:554 +#: utils/adt/mac8.c:555 #, c-format msgid "macaddr8 data out of range to convert to macaddr" msgstr "дані macaddr8 поза діапазоном, для перетворення в macaddr" -#: utils/adt/mac8.c:555 +#: utils/adt/mac8.c:556 #, c-format msgid "Only addresses that have FF and FE as values in the 4th and 5th bytes from the left, for example xx:xx:xx:ff:fe:xx:xx:xx, are eligible to be converted from macaddr8 to macaddr." msgstr "Лише адреси, які мають FF і FE в якості значень в четвертому і п'ятому байті зліва, наприклад xx:xx:xx:ff:fe:xx:xx:xx можуть бути перетворені з macaddr8 в macaddr." -#: utils/adt/mcxtfuncs.c:182 +#: utils/adt/mcxtfuncs.c:173 #, c-format msgid "PID %d is not a PostgreSQL server process" msgstr "PID %d не є серверним процесом PostgreSQL" @@ -24649,70 +25670,70 @@ msgstr "може бути пустою міткою" msgid "requires AS" msgstr "потребує AS" -#: utils/adt/misc.c:853 utils/adt/misc.c:867 utils/adt/misc.c:906 -#: utils/adt/misc.c:912 utils/adt/misc.c:918 utils/adt/misc.c:941 +#: utils/adt/misc.c:897 utils/adt/misc.c:911 utils/adt/misc.c:950 +#: utils/adt/misc.c:956 utils/adt/misc.c:962 utils/adt/misc.c:985 #, c-format msgid "string is not a valid identifier: \"%s\"" msgstr "рядок не є припустимим ідентифікатором: \"%s\"" -#: utils/adt/misc.c:855 +#: utils/adt/misc.c:899 #, c-format msgid "String has unclosed double quotes." msgstr "Рядок має не закриті лапки." -#: utils/adt/misc.c:869 +#: utils/adt/misc.c:913 #, c-format msgid "Quoted identifier must not be empty." msgstr "Ідентифікатор в лапках не повинен бути пустим." -#: utils/adt/misc.c:908 +#: utils/adt/misc.c:952 #, c-format msgid "No valid identifier before \".\"." msgstr "Перед \".\" немає припустимого ідентифікатору." -#: utils/adt/misc.c:914 +#: utils/adt/misc.c:958 #, c-format msgid "No valid identifier after \".\"." msgstr "Після \".\" немає припустимого ідентифікатора." -#: utils/adt/misc.c:974 +#: utils/adt/misc.c:1018 #, c-format msgid "log format \"%s\" is not supported" msgstr "формат журналу \"%s\" не підтримується" -#: utils/adt/misc.c:975 +#: utils/adt/misc.c:1019 #, c-format msgid "The supported log formats are \"stderr\", \"csvlog\", and \"jsonlog\"." msgstr "Підтримуванні формати журналів: \"stderr\", \"csvlog\", і \"jsonlog\"." -#: utils/adt/multirangetypes.c:151 utils/adt/multirangetypes.c:164 -#: utils/adt/multirangetypes.c:193 utils/adt/multirangetypes.c:267 -#: utils/adt/multirangetypes.c:291 +#: utils/adt/multirangetypes.c:150 utils/adt/multirangetypes.c:163 +#: utils/adt/multirangetypes.c:192 utils/adt/multirangetypes.c:266 +#: utils/adt/multirangetypes.c:290 #, c-format msgid "malformed multirange literal: \"%s\"" msgstr "неправильний багатодіапазонний літерал: \"%s\"" -#: utils/adt/multirangetypes.c:153 +#: utils/adt/multirangetypes.c:152 #, c-format msgid "Missing left brace." msgstr "Пропущено ліву дужку." -#: utils/adt/multirangetypes.c:195 +#: utils/adt/multirangetypes.c:194 #, c-format msgid "Expected range start." msgstr "Очікуваний початок діапазону." -#: utils/adt/multirangetypes.c:269 +#: utils/adt/multirangetypes.c:268 #, c-format msgid "Expected comma or end of multirange." msgstr "Очікувалась кома або закінчення мультидіапазону." -#: utils/adt/multirangetypes.c:982 +#: utils/adt/multirangetypes.c:981 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "мультидіапазони не можуть бути побудовані з багатовимірних масивів" -#: utils/adt/multirangetypes.c:1008 +#: utils/adt/multirangetypes.c:1007 #, c-format msgid "multirange values cannot contain null members" msgstr "мультидіапазонні значення не можуть містити членів null" @@ -24791,112 +25812,138 @@ msgstr "результат поза діапазоном" msgid "cannot subtract inet values of different sizes" msgstr "не можна віднімати значення inet різного розміру" -#: utils/adt/numeric.c:785 utils/adt/numeric.c:3643 utils/adt/numeric.c:7131 -#: utils/adt/numeric.c:7334 utils/adt/numeric.c:7806 utils/adt/numeric.c:10501 -#: utils/adt/numeric.c:10975 utils/adt/numeric.c:11069 -#: utils/adt/numeric.c:11203 +#: utils/adt/numeric.c:793 utils/adt/numeric.c:3659 utils/adt/numeric.c:7216 +#: utils/adt/numeric.c:7419 utils/adt/numeric.c:7891 utils/adt/numeric.c:10586 +#: utils/adt/numeric.c:11061 utils/adt/numeric.c:11155 +#: utils/adt/numeric.c:11290 #, c-format msgid "value overflows numeric format" msgstr "значення переповнюють формат numeric" -#: utils/adt/numeric.c:1098 +#: utils/adt/numeric.c:1106 #, c-format msgid "invalid sign in external \"numeric\" value" msgstr "неприпустимий знак у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1104 +#: utils/adt/numeric.c:1112 #, c-format msgid "invalid scale in external \"numeric\" value" msgstr "неприпустимий масштаб у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1113 +#: utils/adt/numeric.c:1121 #, c-format msgid "invalid digit in external \"numeric\" value" msgstr "неприпустиме число у зовнішньому значенні \"numeric\"" -#: utils/adt/numeric.c:1328 utils/adt/numeric.c:1342 +#: utils/adt/numeric.c:1336 utils/adt/numeric.c:1350 #, c-format msgid "NUMERIC precision %d must be between 1 and %d" msgstr "Точність NUMERIC %d повинна бути між 1 і %d" -#: utils/adt/numeric.c:1333 +#: utils/adt/numeric.c:1341 #, c-format msgid "NUMERIC scale %d must be between %d and %d" msgstr "Масштаб NUMERIC %d повинен бути між %d і %d" -#: utils/adt/numeric.c:1351 +#: utils/adt/numeric.c:1359 #, c-format msgid "invalid NUMERIC type modifier" msgstr "неприпустимий модифікатор типу NUMERIC" -#: utils/adt/numeric.c:1709 +#: utils/adt/numeric.c:1725 #, c-format msgid "start value cannot be NaN" msgstr "початкове значення не може бути NaN" -#: utils/adt/numeric.c:1713 +#: utils/adt/numeric.c:1729 #, c-format msgid "start value cannot be infinity" msgstr "початкове значення не може бути нескінченністю" -#: utils/adt/numeric.c:1720 +#: utils/adt/numeric.c:1736 #, c-format msgid "stop value cannot be NaN" msgstr "кінцеве значення не може бути NaN" -#: utils/adt/numeric.c:1724 +#: utils/adt/numeric.c:1740 #, c-format msgid "stop value cannot be infinity" msgstr "кінцеве значення не може бути нескінченністю" -#: utils/adt/numeric.c:1737 +#: utils/adt/numeric.c:1753 #, c-format msgid "step size cannot be NaN" msgstr "розмір кроку не може бути NaN" -#: utils/adt/numeric.c:1741 +#: utils/adt/numeric.c:1757 #, c-format msgid "step size cannot be infinity" msgstr "розмір кроку не може бути нескінченністю" -#: utils/adt/numeric.c:3633 +#: utils/adt/numeric.c:3649 #, c-format msgid "factorial of a negative number is undefined" msgstr "факторіал від'ємного числа не визначено" -#: utils/adt/numeric.c:4366 utils/adt/numeric.c:4446 utils/adt/numeric.c:4487 -#: utils/adt/numeric.c:4683 +#: utils/adt/numeric.c:4256 +#, c-format +msgid "lower bound cannot be NaN" +msgstr "" + +#: utils/adt/numeric.c:4260 +#, c-format +msgid "lower bound cannot be infinity" +msgstr "" + +#: utils/adt/numeric.c:4267 +#, c-format +msgid "upper bound cannot be NaN" +msgstr "" + +#: utils/adt/numeric.c:4271 +#, c-format +msgid "upper bound cannot be infinity" +msgstr "" + +#: utils/adt/numeric.c:4432 utils/adt/numeric.c:4520 utils/adt/numeric.c:4580 +#: utils/adt/numeric.c:4776 #, c-format msgid "cannot convert NaN to %s" msgstr "неможливо перетворити NaN на %s" -#: utils/adt/numeric.c:4370 utils/adt/numeric.c:4450 utils/adt/numeric.c:4491 -#: utils/adt/numeric.c:4687 +#: utils/adt/numeric.c:4436 utils/adt/numeric.c:4524 utils/adt/numeric.c:4584 +#: utils/adt/numeric.c:4780 #, c-format msgid "cannot convert infinity to %s" msgstr "неможливо перетворити нескінченність на %s" -#: utils/adt/numeric.c:4696 +#: utils/adt/numeric.c:4789 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn поза діапазоном" -#: utils/adt/numeric.c:7896 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:7981 utils/adt/numeric.c:8032 #, c-format msgid "numeric field overflow" msgstr "надлишок поля numeric" -#: utils/adt/numeric.c:7897 +#: utils/adt/numeric.c:7982 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Поле з точністю %d, масштабом %d повинне округлятись до абсолютного значення меньше, ніж %s%d." -#: utils/adt/numeric.c:7948 +#: utils/adt/numeric.c:8033 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "Поле з точністю %d, масштабом %d не може містити нескінченне значення." -#: utils/adt/oid.c:216 +#: utils/adt/numeric.c:11359 utils/adt/pseudorandomfuncs.c:135 +#: utils/adt/pseudorandomfuncs.c:159 +#, c-format +msgid "lower bound must be less than or equal to upper bound" +msgstr "" + +#: utils/adt/oid.c:217 #, c-format msgid "invalid oidvector data" msgstr "неприпустимі дані oidvector" @@ -24926,306 +25973,312 @@ msgstr "запитаний символ занадто великий для к msgid "requested character not valid for encoding: %u" msgstr "запитаний символ не припустимий для кодування: %u" -#: utils/adt/orderedsetaggs.c:448 utils/adt/orderedsetaggs.c:553 -#: utils/adt/orderedsetaggs.c:693 +#: utils/adt/orderedsetaggs.c:446 utils/adt/orderedsetaggs.c:551 +#: utils/adt/orderedsetaggs.c:691 #, c-format msgid "percentile value %g is not between 0 and 1" msgstr "значення процентиля %g не є між 0 і 1" -#: utils/adt/pg_locale.c:1410 +#: utils/adt/pg_locale.c:1484 #, c-format msgid "could not open collator for locale \"%s\" with rules \"%s\": %s" msgstr "не вдалося відкрити сортувальник для локалізації\"%s\" з правилами \"%s\": %s" -#: utils/adt/pg_locale.c:1421 utils/adt/pg_locale.c:2831 -#: utils/adt/pg_locale.c:2904 +#: utils/adt/pg_locale.c:1495 utils/adt/pg_locale.c:2969 +#: utils/adt/pg_locale.c:3042 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не підтримується в цій збірці" -#: utils/adt/pg_locale.c:1450 +#: utils/adt/pg_locale.c:1523 #, c-format msgid "could not create locale \"%s\": %m" msgstr "не вдалося створити локалізацію \"%s\": %m" -#: utils/adt/pg_locale.c:1453 +#: utils/adt/pg_locale.c:1526 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Операційній системі не вдалося знайти дані локалізації з іменем \"%s\"." -#: utils/adt/pg_locale.c:1568 +#: utils/adt/pg_locale.c:1647 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "параметри сортування з різними значеннями collate і ctype не підтримуються на цій платформі" -#: utils/adt/pg_locale.c:1577 -#, c-format -msgid "collation provider LIBC is not supported on this platform" -msgstr "провайдер параметрів сортування LIBC не підтримується на цій платформі" - -#: utils/adt/pg_locale.c:1618 +#: utils/adt/pg_locale.c:1694 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "для параметру сортування \"%s\" який не має фактичної версії, була вказана версія" -#: utils/adt/pg_locale.c:1624 +#: utils/adt/pg_locale.c:1700 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "невідповідність версій для параметру сортування \"%s\"" -#: utils/adt/pg_locale.c:1626 +#: utils/adt/pg_locale.c:1702 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "Параметр сортування в базі даних був створений з версією %s, але операційна система надає версію %s." -#: utils/adt/pg_locale.c:1629 +#: utils/adt/pg_locale.c:1705 #, c-format msgid "Rebuild all objects affected by this collation and run ALTER COLLATION %s REFRESH VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти, які стосуються цього параметру сортування і виконайте ALTER COLLATION %s REFRESH VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: utils/adt/pg_locale.c:1695 +#: utils/adt/pg_locale.c:1749 utils/adt/pg_locale.c:2533 +#: utils/adt/pg_locale.c:2558 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "неприпустиме ім'я локалі \"%s\" для вбудованого провайдера" + +#: utils/adt/pg_locale.c:1791 #, c-format msgid "could not load locale \"%s\"" msgstr "не вдалося завантажити локаль \"%s\"" -#: utils/adt/pg_locale.c:1720 +#: utils/adt/pg_locale.c:1816 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "не вдалося отримати версію параметрів сортування для локалізації \"%s\": код помилки %lu" -#: utils/adt/pg_locale.c:1776 utils/adt/pg_locale.c:1789 +#: utils/adt/pg_locale.c:1872 utils/adt/pg_locale.c:1885 #, c-format msgid "could not convert string to UTF-16: error code %lu" msgstr "не вдалося перетворити рядок в UTF-16: код помилки %lu" -#: utils/adt/pg_locale.c:1803 +#: utils/adt/pg_locale.c:1897 #, c-format msgid "could not compare Unicode strings: %m" msgstr "не вдалося порівняти рядки в Unicode: %m" -#: utils/adt/pg_locale.c:1984 +#: utils/adt/pg_locale.c:2071 #, c-format msgid "collation failed: %s" msgstr "помилка в бібліотеці сортування: %s" -#: utils/adt/pg_locale.c:2205 utils/adt/pg_locale.c:2237 +#: utils/adt/pg_locale.c:2290 utils/adt/pg_locale.c:2322 #, c-format msgid "sort key generation failed: %s" msgstr "не вдалося згенерувати ключ сортування: %s" -#: utils/adt/pg_locale.c:2474 +#: utils/adt/pg_locale.c:2612 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "не вдалося отримати мову з локалі \"%s\": %s" -#: utils/adt/pg_locale.c:2495 utils/adt/pg_locale.c:2511 +#: utils/adt/pg_locale.c:2633 utils/adt/pg_locale.c:2649 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "не вдалося відкрити сортувальник для локалізації \"%s\": %s" -#: utils/adt/pg_locale.c:2536 +#: utils/adt/pg_locale.c:2674 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не підтримує кодування \"%s\"" -#: utils/adt/pg_locale.c:2543 +#: utils/adt/pg_locale.c:2681 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не вдалося відкрити перетворювач ICU для кодування \"%s\": %s" -#: utils/adt/pg_locale.c:2561 utils/adt/pg_locale.c:2580 -#: utils/adt/pg_locale.c:2636 utils/adt/pg_locale.c:2647 +#: utils/adt/pg_locale.c:2699 utils/adt/pg_locale.c:2718 +#: utils/adt/pg_locale.c:2774 utils/adt/pg_locale.c:2785 #, c-format msgid "%s failed: %s" msgstr "%s помилка: %s" -#: utils/adt/pg_locale.c:2822 +#: utils/adt/pg_locale.c:2960 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не вдалося перетворити локальну назву \"%s\" на мітку мови: %s" -#: utils/adt/pg_locale.c:2863 +#: utils/adt/pg_locale.c:3001 #, c-format msgid "could not get language from ICU locale \"%s\": %s" msgstr "не вдалося отримати мову з локалі ICU \"%s\": %s" -#: utils/adt/pg_locale.c:2865 utils/adt/pg_locale.c:2894 +#: utils/adt/pg_locale.c:3003 utils/adt/pg_locale.c:3032 #, c-format msgid "To disable ICU locale validation, set the parameter \"%s\" to \"%s\"." msgstr "Щоб вимкнути перевірку мови ICU, встановіть параметр \"%s\" на \"%s\"." -#: utils/adt/pg_locale.c:2892 +#: utils/adt/pg_locale.c:3030 #, c-format msgid "ICU locale \"%s\" has unknown language \"%s\"" msgstr "locale ICU \"%s\" має невідому мову \"%s\"" -#: utils/adt/pg_locale.c:3073 +#: utils/adt/pg_locale.c:3181 #, c-format msgid "invalid multibyte character for locale" msgstr "неприпустимий мультибайтний символ для локалізації" -#: utils/adt/pg_locale.c:3074 +#: utils/adt/pg_locale.c:3182 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Параметр локалізації серверу LC_CTYPE, можливо, несумісний з кодуванням бази даних." -#: utils/adt/pg_lsn.c:263 +#: utils/adt/pg_lsn.c:262 #, c-format msgid "cannot add NaN to pg_lsn" msgstr "не можна додати NaN в pg_lsn" -#: utils/adt/pg_lsn.c:297 +#: utils/adt/pg_lsn.c:296 #, c-format msgid "cannot subtract NaN from pg_lsn" msgstr "віднімати NaN з pg_lsn не можна" -#: utils/adt/pg_upgrade_support.c:29 +#: utils/adt/pg_upgrade_support.c:39 #, c-format msgid "function can only be called when server is in binary upgrade mode" msgstr "функцію можна викликати тільки коли сервер знаходиться в режимі двійкового оновлення" -#: utils/adt/pgstatfuncs.c:254 +#: utils/adt/pgstatfuncs.c:252 #, c-format msgid "invalid command name: \"%s\"" msgstr "неприпустиме ім’я команди: \"%s\"" -#: utils/adt/pgstatfuncs.c:1774 +#: utils/adt/pgstatfuncs.c:1739 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "нерозпізнане відновлення мети: \"%s\"" -#: utils/adt/pgstatfuncs.c:1775 +#: utils/adt/pgstatfuncs.c:1740 #, c-format -msgid "Target must be \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", or \"wal\"." -msgstr "Ціль має бути \"archiver\", \"bgwriter\", \"io\", \"recovery_prefetch\", або \"wal\"." +msgid "Target must be \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\", or \"wal\"." +msgstr "Ціллю має бути \"archiver\", \"bgwriter\", \"checkpointer\", \"io\", \"recovery_prefetch\", \"slru\" або \"wal\"." -#: utils/adt/pgstatfuncs.c:1857 +#: utils/adt/pgstatfuncs.c:1822 #, c-format msgid "invalid subscription OID %u" msgstr "некоректний OID підписки %u" -#: utils/adt/pseudotypes.c:58 utils/adt/pseudotypes.c:92 +#: utils/adt/pseudorandomfuncs.c:69 +#, c-format +msgid "setseed parameter %g is out of allowed range [-1,1]" +msgstr "параметр setseed %g поза допустимим діапазоном [-1,1]" + +#: utils/adt/pseudotypes.c:55 utils/adt/pseudotypes.c:89 #, c-format msgid "cannot display a value of type %s" msgstr "значення типу %s не можна відобразити" -#: utils/adt/pseudotypes.c:310 +#: utils/adt/pseudotypes.c:307 #, c-format msgid "cannot accept a value of a shell type" msgstr "не можна прийняти значення типу shell" -#: utils/adt/pseudotypes.c:320 +#: utils/adt/pseudotypes.c:317 #, c-format msgid "cannot display a value of a shell type" msgstr "не можна відобразити значення типу shell" -#: utils/adt/rangetypes.c:415 +#: utils/adt/rangetypes.c:422 #, c-format msgid "range constructor flags argument must not be null" msgstr "аргумент позначок конструктору діапазону не може бути null" -#: utils/adt/rangetypes.c:1014 +#: utils/adt/rangetypes.c:1021 #, c-format msgid "result of range difference would not be contiguous" msgstr "результат різниці діапазонів не буде безперервним" -#: utils/adt/rangetypes.c:1075 +#: utils/adt/rangetypes.c:1082 #, c-format msgid "result of range union would not be contiguous" msgstr "результат об'єднання діапазонів не буде безперервним" -#: utils/adt/rangetypes.c:1750 +#: utils/adt/rangetypes.c:1757 #, c-format msgid "range lower bound must be less than or equal to range upper bound" msgstr "нижня границя діапазону повинна бути менше або дорівнювати верхній границі діапазону" -#: utils/adt/rangetypes.c:2197 utils/adt/rangetypes.c:2210 -#: utils/adt/rangetypes.c:2224 +#: utils/adt/rangetypes.c:2256 utils/adt/rangetypes.c:2269 +#: utils/adt/rangetypes.c:2283 #, c-format msgid "invalid range bound flags" msgstr "неприпустимі позначки границь діапазону" -#: utils/adt/rangetypes.c:2198 utils/adt/rangetypes.c:2211 -#: utils/adt/rangetypes.c:2225 +#: utils/adt/rangetypes.c:2257 utils/adt/rangetypes.c:2270 +#: utils/adt/rangetypes.c:2284 #, c-format msgid "Valid values are \"[]\", \"[)\", \"(]\", and \"()\"." msgstr "Припустимі значення \"[]\", \"[)\", \"(]\", і \"()\"." -#: utils/adt/rangetypes.c:2293 utils/adt/rangetypes.c:2310 -#: utils/adt/rangetypes.c:2325 utils/adt/rangetypes.c:2345 -#: utils/adt/rangetypes.c:2356 utils/adt/rangetypes.c:2403 -#: utils/adt/rangetypes.c:2411 +#: utils/adt/rangetypes.c:2352 utils/adt/rangetypes.c:2369 +#: utils/adt/rangetypes.c:2384 utils/adt/rangetypes.c:2404 +#: utils/adt/rangetypes.c:2415 utils/adt/rangetypes.c:2462 +#: utils/adt/rangetypes.c:2470 #, c-format msgid "malformed range literal: \"%s\"" msgstr "неправильний літерал діапазону: \"%s\"" -#: utils/adt/rangetypes.c:2295 +#: utils/adt/rangetypes.c:2354 #, c-format msgid "Junk after \"empty\" key word." msgstr "Сміття після ключового слова \"empty\"." -#: utils/adt/rangetypes.c:2312 +#: utils/adt/rangetypes.c:2371 #, c-format msgid "Missing left parenthesis or bracket." msgstr "Пропущено ліву дужку (круглу або квадратну)." -#: utils/adt/rangetypes.c:2327 +#: utils/adt/rangetypes.c:2386 #, c-format msgid "Missing comma after lower bound." msgstr "Пропущено кому після нижньої границі." -#: utils/adt/rangetypes.c:2347 +#: utils/adt/rangetypes.c:2406 #, c-format msgid "Too many commas." msgstr "Занадто багато ком." -#: utils/adt/rangetypes.c:2358 +#: utils/adt/rangetypes.c:2417 #, c-format msgid "Junk after right parenthesis or bracket." msgstr "Сміття після правої дужки." -#: utils/adt/regexp.c:305 utils/adt/regexp.c:1997 utils/adt/varlena.c:4270 +#: utils/adt/regexp.c:304 utils/adt/regexp.c:1996 utils/adt/varlena.c:4273 #, c-format msgid "regular expression failed: %s" msgstr "помилка в регулярному виразі: %s" -#: utils/adt/regexp.c:446 utils/adt/regexp.c:681 +#: utils/adt/regexp.c:445 utils/adt/regexp.c:680 #, c-format msgid "invalid regular expression option: \"%.*s\"" msgstr "неприпустимий параметр регулярного виразу: \"%.*s\"" -#: utils/adt/regexp.c:683 +#: utils/adt/regexp.c:682 #, c-format msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "Якщо ви хочете використовувати regexp_replace() з початковим параметром, приведіть тип четвертого аргумента до цілого числа." -#: utils/adt/regexp.c:717 utils/adt/regexp.c:726 utils/adt/regexp.c:1083 -#: utils/adt/regexp.c:1147 utils/adt/regexp.c:1156 utils/adt/regexp.c:1165 -#: utils/adt/regexp.c:1174 utils/adt/regexp.c:1854 utils/adt/regexp.c:1863 -#: utils/adt/regexp.c:1872 utils/misc/guc.c:6627 utils/misc/guc.c:6661 +#: utils/adt/regexp.c:716 utils/adt/regexp.c:725 utils/adt/regexp.c:1082 +#: utils/adt/regexp.c:1146 utils/adt/regexp.c:1155 utils/adt/regexp.c:1164 +#: utils/adt/regexp.c:1173 utils/adt/regexp.c:1853 utils/adt/regexp.c:1862 +#: utils/adt/regexp.c:1871 utils/misc/guc.c:6785 utils/misc/guc.c:6819 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неприпустиме значення для параметра \"%s\": %d" -#: utils/adt/regexp.c:937 +#: utils/adt/regexp.c:936 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" msgstr "Регулярний вираз SQL не може містити більше двох роздільників escape-double-quote" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1094 utils/adt/regexp.c:1185 utils/adt/regexp.c:1272 -#: utils/adt/regexp.c:1311 utils/adt/regexp.c:1699 utils/adt/regexp.c:1754 -#: utils/adt/regexp.c:1883 +#: utils/adt/regexp.c:1093 utils/adt/regexp.c:1184 utils/adt/regexp.c:1271 +#: utils/adt/regexp.c:1310 utils/adt/regexp.c:1698 utils/adt/regexp.c:1753 +#: utils/adt/regexp.c:1882 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s не підтримує параметр \"global\"" -#: utils/adt/regexp.c:1313 +#: utils/adt/regexp.c:1312 #, c-format msgid "Use the regexp_matches function instead." msgstr "Використайте функцію regexp_matches замість." -#: utils/adt/regexp.c:1501 +#: utils/adt/regexp.c:1500 #, c-format msgid "too many regular expression matches" msgstr "занадто багато відповідностей для регулярного виразу" @@ -25240,18 +26293,18 @@ msgstr "ім'я \"%s\" мають декілька функцій" msgid "more than one operator named %s" msgstr "ім'я %s мають декілька операторів" -#: utils/adt/regproc.c:670 gram.y:8841 +#: utils/adt/regproc.c:670 gram.y:8992 #, c-format msgid "missing argument" msgstr "пропущено аргумент" -#: utils/adt/regproc.c:671 gram.y:8842 +#: utils/adt/regproc.c:671 gram.y:8993 #, c-format msgid "Use NONE to denote the missing argument of a unary operator." msgstr "Щоб позначити пропущений аргумент унарного оператору, використайте NONE." -#: utils/adt/regproc.c:675 utils/adt/regproc.c:2009 utils/adt/ruleutils.c:10018 -#: utils/adt/ruleutils.c:10231 +#: utils/adt/regproc.c:675 utils/adt/regproc.c:2029 utils/adt/ruleutils.c:10498 +#: utils/adt/ruleutils.c:10711 #, c-format msgid "too many arguments" msgstr "занадто багато аргументів" @@ -25261,308 +26314,319 @@ msgstr "занадто багато аргументів" msgid "Provide two argument types for operator." msgstr "Надайте для оператора два типи аргументів." -#: utils/adt/regproc.c:1544 utils/adt/regproc.c:1661 utils/adt/regproc.c:1790 -#: utils/adt/regproc.c:1795 utils/adt/varlena.c:3410 utils/adt/varlena.c:3415 +#: utils/adt/regproc.c:1564 utils/adt/regproc.c:1681 utils/adt/regproc.c:1810 +#: utils/adt/regproc.c:1815 utils/adt/varlena.c:3413 utils/adt/varlena.c:3418 #, c-format msgid "invalid name syntax" msgstr "неприпустимий синтаксис в імені" -#: utils/adt/regproc.c:1904 +#: utils/adt/regproc.c:1924 #, c-format msgid "expected a left parenthesis" msgstr "очікувалась ліва дужка" -#: utils/adt/regproc.c:1922 +#: utils/adt/regproc.c:1942 #, c-format msgid "expected a right parenthesis" msgstr "очікувалась права дужка" -#: utils/adt/regproc.c:1941 +#: utils/adt/regproc.c:1961 #, c-format msgid "expected a type name" msgstr "очікувалось ім'я типу" -#: utils/adt/regproc.c:1973 +#: utils/adt/regproc.c:1993 #, c-format msgid "improper type name" msgstr "неправильне ім'я типу" -#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1625 -#: utils/adt/ri_triggers.c:2610 +#: utils/adt/ri_triggers.c:303 utils/adt/ri_triggers.c:1616 +#: utils/adt/ri_triggers.c:2601 #, c-format msgid "insert or update on table \"%s\" violates foreign key constraint \"%s\"" msgstr "insert або update в таблиці \"%s\" порушує обмеження зовнішнього ключа \"%s\"" -#: utils/adt/ri_triggers.c:309 utils/adt/ri_triggers.c:1628 +#: utils/adt/ri_triggers.c:306 utils/adt/ri_triggers.c:1619 #, c-format msgid "MATCH FULL does not allow mixing of null and nonnull key values." msgstr "MATCH FULL не дозволяє змішувати в значенні ключа null і nonnull." -#: utils/adt/ri_triggers.c:2045 +#: utils/adt/ri_triggers.c:2036 #, c-format msgid "function \"%s\" must be fired for INSERT" msgstr "функція \"%s\" повинна запускатись для INSERT" -#: utils/adt/ri_triggers.c:2051 +#: utils/adt/ri_triggers.c:2042 #, c-format msgid "function \"%s\" must be fired for UPDATE" msgstr "функція \"%s\" повинна запускатись для UPDATE" -#: utils/adt/ri_triggers.c:2057 +#: utils/adt/ri_triggers.c:2048 #, c-format msgid "function \"%s\" must be fired for DELETE" msgstr "функція \"%s\" повинна запускатись для DELETE" -#: utils/adt/ri_triggers.c:2080 +#: utils/adt/ri_triggers.c:2071 #, c-format msgid "no pg_constraint entry for trigger \"%s\" on table \"%s\"" msgstr "для тригеру \"%s\" таблиці \"%s\" немає введення pg_constraint" -#: utils/adt/ri_triggers.c:2082 +#: utils/adt/ri_triggers.c:2073 #, c-format msgid "Remove this referential integrity trigger and its mates, then do ALTER TABLE ADD CONSTRAINT." msgstr "Видаліть цей тригер цілісності зв’язків і пов'язані об'єкти, а потім виконайте ALTER TABLE ADD CONSTRAINT." -#: utils/adt/ri_triggers.c:2112 gram.y:4223 +#: utils/adt/ri_triggers.c:2103 gram.y:4340 #, c-format msgid "MATCH PARTIAL not yet implemented" msgstr "Вираз MATCH PARTIAL все ще не реалізований" -#: utils/adt/ri_triggers.c:2435 +#: utils/adt/ri_triggers.c:2426 #, c-format msgid "referential integrity query on \"%s\" from constraint \"%s\" on \"%s\" gave unexpected result" msgstr "неочікуваний результат запиту цілісності зв’язків до \"%s\" з обмеження \"%s\" таблиці \"%s\"" -#: utils/adt/ri_triggers.c:2439 +#: utils/adt/ri_triggers.c:2430 #, c-format msgid "This is most likely due to a rule having rewritten the query." msgstr "Скоріше за все, це викликано правилом, яке переписало запит." -#: utils/adt/ri_triggers.c:2600 +#: utils/adt/ri_triggers.c:2591 #, c-format msgid "removing partition \"%s\" violates foreign key constraint \"%s\"" msgstr "видалення секції \"%s\" порушує обмеження зовнішнього ключа \"%s" -#: utils/adt/ri_triggers.c:2603 utils/adt/ri_triggers.c:2628 +#: utils/adt/ri_triggers.c:2594 utils/adt/ri_triggers.c:2619 #, c-format msgid "Key (%s)=(%s) is still referenced from table \"%s\"." msgstr "На ключ (%s)=(%s) все ще є посилання в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2614 +#: utils/adt/ri_triggers.c:2605 #, c-format msgid "Key (%s)=(%s) is not present in table \"%s\"." msgstr "Ключ (%s)=(%s) не присутній в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2617 +#: utils/adt/ri_triggers.c:2608 #, c-format msgid "Key is not present in table \"%s\"." msgstr "Ключ не присутній в таблиці \"%s\"." -#: utils/adt/ri_triggers.c:2623 +#: utils/adt/ri_triggers.c:2614 #, c-format msgid "update or delete on table \"%s\" violates foreign key constraint \"%s\" on table \"%s\"" msgstr "update або delete в таблиці \"%s\" порушує обмеження зовнішнього ключа \"%s\" таблиці \"%s\"" -#: utils/adt/ri_triggers.c:2631 +#: utils/adt/ri_triggers.c:2622 #, c-format msgid "Key is still referenced from table \"%s\"." msgstr "На ключ все ще є посилання в таблиці \"%s\"." -#: utils/adt/rowtypes.c:106 utils/adt/rowtypes.c:510 +#: utils/adt/rowtypes.c:105 utils/adt/rowtypes.c:509 #, c-format msgid "input of anonymous composite types is not implemented" msgstr "введення анонімних складених типів не реалізовано" -#: utils/adt/rowtypes.c:159 utils/adt/rowtypes.c:191 utils/adt/rowtypes.c:217 -#: utils/adt/rowtypes.c:228 utils/adt/rowtypes.c:286 utils/adt/rowtypes.c:297 +#: utils/adt/rowtypes.c:158 utils/adt/rowtypes.c:190 utils/adt/rowtypes.c:216 +#: utils/adt/rowtypes.c:227 utils/adt/rowtypes.c:285 utils/adt/rowtypes.c:296 #, c-format msgid "malformed record literal: \"%s\"" msgstr "невірно сформований літерал запису: \"%s\"" -#: utils/adt/rowtypes.c:160 +#: utils/adt/rowtypes.c:159 #, c-format msgid "Missing left parenthesis." msgstr "Відсутня ліва дужка." -#: utils/adt/rowtypes.c:192 +#: utils/adt/rowtypes.c:191 #, c-format msgid "Too few columns." msgstr "Занадто мало стовпців." -#: utils/adt/rowtypes.c:287 +#: utils/adt/rowtypes.c:286 #, c-format msgid "Too many columns." msgstr "Занадто багато стовпців." -#: utils/adt/rowtypes.c:298 +#: utils/adt/rowtypes.c:297 #, c-format msgid "Junk after right parenthesis." msgstr "Сміття післа правої дужки." -#: utils/adt/rowtypes.c:559 +#: utils/adt/rowtypes.c:558 #, c-format msgid "wrong number of columns: %d, expected %d" msgstr "неправильна кількість стовпців: %d, очікувалось %d" -#: utils/adt/rowtypes.c:601 +#: utils/adt/rowtypes.c:599 #, c-format msgid "binary data has type %u (%s) instead of expected %u (%s) in record column %d" msgstr "двійкові дані мають тип %u (%s) замість очікуваного %u (%s) в стовпці запису %d" -#: utils/adt/rowtypes.c:668 +#: utils/adt/rowtypes.c:660 #, c-format msgid "improper binary format in record column %d" msgstr "неправильний двійковий формат у стовпці запису %d" -#: utils/adt/rowtypes.c:959 utils/adt/rowtypes.c:1205 utils/adt/rowtypes.c:1463 -#: utils/adt/rowtypes.c:1709 +#: utils/adt/rowtypes.c:949 utils/adt/rowtypes.c:1195 utils/adt/rowtypes.c:1453 +#: utils/adt/rowtypes.c:1699 #, c-format msgid "cannot compare dissimilar column types %s and %s at record column %d" msgstr "не можна порівнювати неподібні типи стовпців %s і %s, стовпець запису %d" -#: utils/adt/rowtypes.c:1050 utils/adt/rowtypes.c:1275 -#: utils/adt/rowtypes.c:1560 utils/adt/rowtypes.c:1745 +#: utils/adt/rowtypes.c:1040 utils/adt/rowtypes.c:1265 +#: utils/adt/rowtypes.c:1550 utils/adt/rowtypes.c:1735 #, c-format msgid "cannot compare record types with different numbers of columns" msgstr "не можна порівнювати типи записів з різної кількістю стовпців" -#: utils/adt/ruleutils.c:2679 +#: utils/adt/ruleutils.c:2689 #, c-format msgid "input is a query, not an expression" msgstr "вхідне значення є запитом, а не виразом" -#: utils/adt/ruleutils.c:2691 +#: utils/adt/ruleutils.c:2701 #, c-format msgid "expression contains variables of more than one relation" msgstr "вираз містить змінні більше одного відношення" -#: utils/adt/ruleutils.c:2698 +#: utils/adt/ruleutils.c:2708 #, c-format msgid "expression contains variables" msgstr "вираз містить змінні" -#: utils/adt/ruleutils.c:5225 +#: utils/adt/ruleutils.c:5241 #, c-format msgid "rule \"%s\" has unsupported event type %d" msgstr "правило \"%s\" має непідтримуваний тип подій %d" -#: utils/adt/timestamp.c:112 +#: utils/adt/timestamp.c:128 #, c-format msgid "TIMESTAMP(%d)%s precision must not be negative" msgstr "TIMESTAMP(%d)%s точність не повинна бути від'ємною" -#: utils/adt/timestamp.c:118 +#: utils/adt/timestamp.c:134 #, c-format msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s точність зменшена до дозволеного максимуму, %d" -#: utils/adt/timestamp.c:378 +#: utils/adt/timestamp.c:394 #, c-format msgid "timestamp(%d) precision must be between %d and %d" msgstr "точність позначки часу (%d) повинна бути між %d і %d" -#: utils/adt/timestamp.c:496 +#: utils/adt/timestamp.c:512 #, c-format msgid "Numeric time zones must have \"-\" or \"+\" as first character." msgstr "Числові часові пояси повинні мати \"-\" або \"+\" в якості першого символу." -#: utils/adt/timestamp.c:508 +#: utils/adt/timestamp.c:524 #, c-format msgid "numeric time zone \"%s\" out of range" msgstr "числовий часовий пояс \"%s\" поза діапазоном" -#: utils/adt/timestamp.c:609 utils/adt/timestamp.c:619 -#: utils/adt/timestamp.c:627 +#: utils/adt/timestamp.c:625 utils/adt/timestamp.c:635 +#: utils/adt/timestamp.c:643 #, c-format msgid "timestamp out of range: %d-%02d-%02d %d:%02d:%02g" msgstr "позначка часу поза діапазоном: %d-%02d-%02d %d:%02d:%02g" -#: utils/adt/timestamp.c:728 +#: utils/adt/timestamp.c:744 #, c-format msgid "timestamp cannot be NaN" msgstr "позначка часу не може бути NaN" -#: utils/adt/timestamp.c:746 utils/adt/timestamp.c:758 +#: utils/adt/timestamp.c:762 utils/adt/timestamp.c:774 #, c-format msgid "timestamp out of range: \"%g\"" msgstr "позначка часу поза діапазоном: \"%g\"" -#: utils/adt/timestamp.c:941 utils/adt/timestamp.c:1518 -#: utils/adt/timestamp.c:2708 utils/adt/timestamp.c:2778 -#: utils/adt/timestamp.c:2795 utils/adt/timestamp.c:2848 -#: utils/adt/timestamp.c:2887 utils/adt/timestamp.c:3203 -#: utils/adt/timestamp.c:3208 utils/adt/timestamp.c:3213 -#: utils/adt/timestamp.c:3263 utils/adt/timestamp.c:3270 -#: utils/adt/timestamp.c:3277 utils/adt/timestamp.c:3297 -#: utils/adt/timestamp.c:3304 utils/adt/timestamp.c:3311 -#: utils/adt/timestamp.c:3398 utils/adt/timestamp.c:3473 -#: utils/adt/timestamp.c:3842 utils/adt/timestamp.c:3966 -#: utils/adt/timestamp.c:4486 +#: utils/adt/timestamp.c:957 utils/adt/timestamp.c:1516 +#: utils/adt/timestamp.c:1526 utils/adt/timestamp.c:1587 +#: utils/adt/timestamp.c:2807 utils/adt/timestamp.c:2816 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2905 +#: utils/adt/timestamp.c:2922 utils/adt/timestamp.c:2979 +#: utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3400 +#: utils/adt/timestamp.c:3458 utils/adt/timestamp.c:3481 +#: utils/adt/timestamp.c:3490 utils/adt/timestamp.c:3514 +#: utils/adt/timestamp.c:3537 utils/adt/timestamp.c:3546 +#: utils/adt/timestamp.c:3681 utils/adt/timestamp.c:3782 +#: utils/adt/timestamp.c:4189 utils/adt/timestamp.c:4226 +#: utils/adt/timestamp.c:4274 utils/adt/timestamp.c:4283 +#: utils/adt/timestamp.c:4375 utils/adt/timestamp.c:4422 +#: utils/adt/timestamp.c:4431 utils/adt/timestamp.c:4527 +#: utils/adt/timestamp.c:4580 utils/adt/timestamp.c:4590 +#: utils/adt/timestamp.c:4785 utils/adt/timestamp.c:4795 +#: utils/adt/timestamp.c:5097 #, c-format msgid "interval out of range" msgstr "інтервал поза діапазоном" -#: utils/adt/timestamp.c:1065 utils/adt/timestamp.c:1098 +#: utils/adt/timestamp.c:1094 utils/adt/timestamp.c:1127 #, c-format msgid "invalid INTERVAL type modifier" msgstr "неприпустимий модифікатор типу INTERVAL" -#: utils/adt/timestamp.c:1081 +#: utils/adt/timestamp.c:1110 #, c-format msgid "INTERVAL(%d) precision must not be negative" msgstr "INTERVAL(%d) точність не повинна бути від'ємною" -#: utils/adt/timestamp.c:1087 +#: utils/adt/timestamp.c:1116 #, c-format msgid "INTERVAL(%d) precision reduced to maximum allowed, %d" msgstr "INTERVAL(%d) точність зменшена до максимально можливої, %d" -#: utils/adt/timestamp.c:1473 +#: utils/adt/timestamp.c:1506 #, c-format msgid "interval(%d) precision must be between %d and %d" msgstr "interval(%d) точність повинна бути між %d і %d" -#: utils/adt/timestamp.c:2703 -#, c-format -msgid "cannot subtract infinite timestamps" -msgstr "віднімати безкінечні позначки часу не можна" - -#: utils/adt/timestamp.c:4002 utils/adt/timestamp.c:4185 +#: utils/adt/timestamp.c:4564 utils/adt/timestamp.c:4769 #, c-format msgid "origin out of range" msgstr "джерело поза діапазоном" -#: utils/adt/timestamp.c:4007 utils/adt/timestamp.c:4190 +#: utils/adt/timestamp.c:4569 utils/adt/timestamp.c:4774 +#, c-format +msgid "timestamps cannot be binned into infinite intervals" +msgstr "мітки часу не можуть бути розбиті на нескінченні інтервали" + +#: utils/adt/timestamp.c:4574 utils/adt/timestamp.c:4779 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "позначки часу не можна розділяти на інтервали, що містять місяці або роки" -#: utils/adt/timestamp.c:4014 utils/adt/timestamp.c:4197 +#: utils/adt/timestamp.c:4585 utils/adt/timestamp.c:4790 #, c-format msgid "stride must be greater than zero" msgstr "крок повинен бути більше нуля" -#: utils/adt/timestamp.c:4480 +#: utils/adt/timestamp.c:5091 #, c-format msgid "Months usually have fractional weeks." msgstr "У місяців зазвичай є дробові тижні." -#: utils/adt/trigfuncs.c:42 +#: utils/adt/timestamp.c:6551 utils/adt/timestamp.c:6637 +#, c-format +msgid "step size cannot be infinite" +msgstr "розмір кроку не може бути нескінченним" + +#: utils/adt/trigfuncs.c:41 #, c-format msgid "suppress_redundant_updates_trigger: must be called as trigger" msgstr "suppress_redundant_updates_trigger: повинна викликатись як тригер" -#: utils/adt/trigfuncs.c:48 +#: utils/adt/trigfuncs.c:47 #, c-format msgid "suppress_redundant_updates_trigger: must be called on update" msgstr "suppress_redundant_updates_trigger: повинна викликатись при оновленні" -#: utils/adt/trigfuncs.c:54 +#: utils/adt/trigfuncs.c:53 #, c-format msgid "suppress_redundant_updates_trigger: must be called before update" msgstr "suppress_redundant_updates_trigger: повинна викликатись перед оновленням" -#: utils/adt/trigfuncs.c:60 +#: utils/adt/trigfuncs.c:59 #, c-format msgid "suppress_redundant_updates_trigger: must be called for each row" msgstr "suppress_redundant_updates_trigger: повинна викликатис перед кожним рядком" @@ -25577,32 +26641,32 @@ msgstr "відстань у фразовому операторі повинна msgid "no operand in tsquery: \"%s\"" msgstr "немає оператора в tsquery: \"%s\"" -#: utils/adt/tsquery.c:558 +#: utils/adt/tsquery.c:554 #, c-format msgid "value is too big in tsquery: \"%s\"" msgstr "занадто велике значення в tsquery: \"%s\"" -#: utils/adt/tsquery.c:563 +#: utils/adt/tsquery.c:559 #, c-format msgid "operand is too long in tsquery: \"%s\"" msgstr "занадто довгий операнд в tsquery: \"%s\"" -#: utils/adt/tsquery.c:591 +#: utils/adt/tsquery.c:587 #, c-format msgid "word is too long in tsquery: \"%s\"" msgstr "занадто довге слово в tsquery: \"%s\"" -#: utils/adt/tsquery.c:717 utils/adt/tsvector_parser.c:147 +#: utils/adt/tsquery.c:713 utils/adt/tsvector_parser.c:147 #, c-format msgid "syntax error in tsquery: \"%s\"" msgstr "синтаксична помилка в tsquery: \"%s\"" -#: utils/adt/tsquery.c:883 +#: utils/adt/tsquery.c:879 #, c-format msgid "text-search query doesn't contain lexemes: \"%s\"" msgstr "запит пошуку тексту не містить лексем: \"%s\"" -#: utils/adt/tsquery.c:894 utils/adt/tsquery_util.c:376 +#: utils/adt/tsquery.c:890 utils/adt/tsquery_util.c:376 #, c-format msgid "tsquery is too large" msgstr "tsquery занадто великий" @@ -25637,72 +26701,72 @@ msgstr "масив значимості не повинен містити null" msgid "weight out of range" msgstr "значимість поза діапазоном" -#: utils/adt/tsvector.c:217 +#: utils/adt/tsvector.c:216 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "слово занадто довге (%ld байт, при максимумі %ld)" -#: utils/adt/tsvector.c:224 +#: utils/adt/tsvector.c:223 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "рядок занадто довгий для tsvector (%ld байт, при максимумі %ld)" -#: utils/adt/tsvector_op.c:773 +#: utils/adt/tsvector_op.c:771 #, c-format msgid "lexeme array may not contain nulls" msgstr "масив лексем не може містити null" -#: utils/adt/tsvector_op.c:778 +#: utils/adt/tsvector_op.c:776 #, c-format msgid "lexeme array may not contain empty strings" msgstr "масив лексем не може містити порожніх рядків" -#: utils/adt/tsvector_op.c:847 +#: utils/adt/tsvector_op.c:845 #, c-format msgid "weight array may not contain nulls" msgstr "масив значимості не може містити null" -#: utils/adt/tsvector_op.c:871 +#: utils/adt/tsvector_op.c:869 #, c-format msgid "unrecognized weight: \"%c\"" msgstr "нерозпізнана значимість: \"%c\"" -#: utils/adt/tsvector_op.c:2601 +#: utils/adt/tsvector_op.c:2599 #, c-format msgid "ts_stat query must return one tsvector column" msgstr "запит ts_stat повинен повернути один стовпець tsvector" -#: utils/adt/tsvector_op.c:2790 +#: utils/adt/tsvector_op.c:2788 #, c-format msgid "tsvector column \"%s\" does not exist" msgstr "стовпець типу tsvector \"%s\" не існує" -#: utils/adt/tsvector_op.c:2797 +#: utils/adt/tsvector_op.c:2795 #, c-format msgid "column \"%s\" is not of tsvector type" msgstr "стовпець \"%s\" повинен мати тип tsvector" -#: utils/adt/tsvector_op.c:2809 +#: utils/adt/tsvector_op.c:2807 #, c-format msgid "configuration column \"%s\" does not exist" msgstr "стовпець конфігурації \"%s\" не існує" -#: utils/adt/tsvector_op.c:2815 +#: utils/adt/tsvector_op.c:2813 #, c-format msgid "column \"%s\" is not of regconfig type" msgstr "стовпець \"%s\" повинен мати тип regconfig" -#: utils/adt/tsvector_op.c:2822 +#: utils/adt/tsvector_op.c:2820 #, c-format msgid "configuration column \"%s\" must not be null" msgstr "значення стовпця конфігурації \"%s\" не повинне бути null" -#: utils/adt/tsvector_op.c:2835 +#: utils/adt/tsvector_op.c:2833 #, c-format msgid "text search configuration name \"%s\" must be schema-qualified" msgstr "ім'я конфігурації текстового пошуку \"%s\" повинно вказуватися зі схемою" -#: utils/adt/tsvector_op.c:2860 +#: utils/adt/tsvector_op.c:2858 #, c-format msgid "column \"%s\" is not of a character type" msgstr "стовпець \"%s\" має не символьний тип" @@ -25722,17 +26786,17 @@ msgstr "немає пропущеного символу: \"%s\"" msgid "wrong position info in tsvector: \"%s\"" msgstr "неправильна інформація про позицію в tsvector: \"%s\"" -#: utils/adt/uuid.c:413 +#: utils/adt/uuid.c:418 #, c-format msgid "could not generate random values" msgstr "не вдалося згенерувати випадкові значення" -#: utils/adt/varbit.c:110 utils/adt/varchar.c:54 +#: utils/adt/varbit.c:110 utils/adt/varchar.c:53 #, c-format msgid "length for type %s must be at least 1" msgstr "довжина для типу %s повинна бути мінімум 1" -#: utils/adt/varbit.c:115 utils/adt/varchar.c:58 +#: utils/adt/varbit.c:115 utils/adt/varchar.c:57 #, c-format msgid "length for type %s cannot exceed %d" msgstr "довжина для типу %s не може перевищувати %d" @@ -25767,9 +26831,9 @@ msgstr "неприпустима довжина у зовнішньому ряд msgid "bit string too long for type bit varying(%d)" msgstr "рядок бітів занадто довгий для типу bit varying(%d)" -#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:908 -#: utils/adt/varlena.c:971 utils/adt/varlena.c:1128 utils/adt/varlena.c:3052 -#: utils/adt/varlena.c:3130 +#: utils/adt/varbit.c:1081 utils/adt/varbit.c:1191 utils/adt/varlena.c:911 +#: utils/adt/varlena.c:974 utils/adt/varlena.c:1131 utils/adt/varlena.c:3055 +#: utils/adt/varlena.c:3133 #, c-format msgid "negative substring length not allowed" msgstr "від'ємна довжина підрядка не дозволена" @@ -25794,122 +26858,127 @@ msgstr "не можна використовувати (XOR) для бітови msgid "bit index %d out of valid range (0..%d)" msgstr "індекс біту %d поза припустимим діапазоном (0..%d)" -#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3334 +#: utils/adt/varbit.c:1833 utils/adt/varlena.c:3337 #, c-format msgid "new bit must be 0 or 1" msgstr "новий біт повинен бути 0 або 1" -#: utils/adt/varchar.c:162 utils/adt/varchar.c:313 +#: utils/adt/varchar.c:161 utils/adt/varchar.c:312 #, c-format msgid "value too long for type character(%d)" msgstr "значення занадто довге для типу character(%d)" -#: utils/adt/varchar.c:476 utils/adt/varchar.c:640 +#: utils/adt/varchar.c:475 utils/adt/varchar.c:639 #, c-format msgid "value too long for type character varying(%d)" msgstr "значення занадто довге для типу character varying(%d)" -#: utils/adt/varchar.c:738 utils/adt/varlena.c:1517 +#: utils/adt/varchar.c:737 utils/adt/varlena.c:1520 #, c-format msgid "could not determine which collation to use for string comparison" msgstr "не вдалося визначити, який параметр сортування використати для порівняння рядків" -#: utils/adt/varlena.c:1227 utils/adt/varlena.c:1806 +#: utils/adt/varlena.c:1230 utils/adt/varlena.c:1809 #, c-format msgid "nondeterministic collations are not supported for substring searches" msgstr "недетерміновані параметри сортування не підтримуються для пошуку підрядків" -#: utils/adt/varlena.c:3218 utils/adt/varlena.c:3285 +#: utils/adt/varlena.c:3221 utils/adt/varlena.c:3288 #, c-format msgid "index %d out of valid range, 0..%d" msgstr "індекс %d поза припустимим діапазоном, 0..%d" -#: utils/adt/varlena.c:3249 utils/adt/varlena.c:3321 +#: utils/adt/varlena.c:3252 utils/adt/varlena.c:3324 #, c-format msgid "index %lld out of valid range, 0..%lld" msgstr "індекс %lld поза допустимим діапазоном, 0..%lld" -#: utils/adt/varlena.c:4382 +#: utils/adt/varlena.c:4385 #, c-format msgid "field position must not be zero" msgstr "позиція поля не повинна бути нульовою" -#: utils/adt/varlena.c:5554 +#: utils/adt/varlena.c:5630 #, c-format msgid "unterminated format() type specifier" msgstr "незавершений специфікатор типу format()" -#: utils/adt/varlena.c:5555 utils/adt/varlena.c:5689 utils/adt/varlena.c:5810 +#: utils/adt/varlena.c:5631 utils/adt/varlena.c:5765 utils/adt/varlena.c:5886 #, c-format msgid "For a single \"%%\" use \"%%%%\"." msgstr "Для представлення одного знаку \"%%\", використайте \"%%%%\"." -#: utils/adt/varlena.c:5687 utils/adt/varlena.c:5808 +#: utils/adt/varlena.c:5763 utils/adt/varlena.c:5884 #, c-format msgid "unrecognized format() type specifier \"%.*s\"" msgstr "нерозпізнаний специфікатор типу format() \"%.*s\"" -#: utils/adt/varlena.c:5700 utils/adt/varlena.c:5757 +#: utils/adt/varlena.c:5776 utils/adt/varlena.c:5833 #, c-format msgid "too few arguments for format()" msgstr "занадто мало аргументів для format()" -#: utils/adt/varlena.c:5853 utils/adt/varlena.c:6035 +#: utils/adt/varlena.c:5929 utils/adt/varlena.c:6111 #, c-format msgid "number is out of range" msgstr "число поза діапазоном" -#: utils/adt/varlena.c:5916 utils/adt/varlena.c:5944 +#: utils/adt/varlena.c:5992 utils/adt/varlena.c:6020 #, c-format msgid "format specifies argument 0, but arguments are numbered from 1" msgstr "формат посилається на аргумент 0, але аргументи нумеруются з 1" -#: utils/adt/varlena.c:5937 +#: utils/adt/varlena.c:6013 #, c-format msgid "width argument position must be ended by \"$\"" msgstr "вказівка аргументу ширини повинно закінчуватися \"$\"" -#: utils/adt/varlena.c:5982 +#: utils/adt/varlena.c:6058 #, c-format msgid "null values cannot be formatted as an SQL identifier" msgstr "значення null не можна форматувати у вигляді SQL-ідентифікатору" -#: utils/adt/varlena.c:6190 +#: utils/adt/varlena.c:6266 #, c-format msgid "Unicode normalization can only be performed if server encoding is UTF8" msgstr "Нормалізація Unicode може виконуватись лише тоді, коли кодування серверу - UTF8" -#: utils/adt/varlena.c:6203 +#: utils/adt/varlena.c:6279 #, c-format msgid "invalid normalization form: %s" msgstr "неприпустима форма нормалізації: %s" -#: utils/adt/varlena.c:6406 utils/adt/varlena.c:6441 utils/adt/varlena.c:6476 +#: utils/adt/varlena.c:6324 +#, c-format +msgid "Unicode categorization can only be performed if server encoding is UTF8" +msgstr "Категоризація в юні коді може бути виконана, тільки якщо кодування сервера - UTF8" + +#: utils/adt/varlena.c:6541 utils/adt/varlena.c:6576 utils/adt/varlena.c:6611 #, c-format msgid "invalid Unicode code point: %04X" msgstr "неприпустима точка коду Unicode: %04X" -#: utils/adt/varlena.c:6506 +#: utils/adt/varlena.c:6641 #, c-format msgid "Unicode escapes must be \\XXXX, \\+XXXXXX, \\uXXXX, or \\UXXXXXXXX." msgstr "Спеціальні коди Unicode повинні бути \\XXXX, \\+XXXXXX, \\uXXXXXX, або \\UXXXXXX." -#: utils/adt/windowfuncs.c:442 +#: utils/adt/windowfuncs.c:443 #, c-format msgid "argument of ntile must be greater than zero" msgstr "аргумент ntile повинен бути більше нуля" -#: utils/adt/windowfuncs.c:706 +#: utils/adt/windowfuncs.c:707 #, c-format msgid "argument of nth_value must be greater than zero" msgstr "аргумент nth_value повинен бути більше нуля" -#: utils/adt/xid8funcs.c:126 +#: utils/adt/xid8funcs.c:124 #, c-format msgid "transaction ID %llu is in the future" msgstr "ідентифікатор транзакції %llu знаходиться в майбутньому" -#: utils/adt/xid8funcs.c:555 +#: utils/adt/xid8funcs.c:553 #, c-format msgid "invalid external pg_snapshot data" msgstr "неприпустимі зовнішні дані pg_snapshot" @@ -25924,7 +26993,7 @@ msgstr "XML-функції не підтримуються" msgid "This functionality requires the server to be built with libxml support." msgstr "Ця функціональність потребує, щоб сервер був побудований з підтримкою libxml." -#: utils/adt/xml.c:258 utils/mb/mbutils.c:628 +#: utils/adt/xml.c:258 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неприпустиме ім’я кодування \"%s\"" @@ -25934,217 +27003,217 @@ msgstr "неприпустиме ім’я кодування \"%s\"" msgid "invalid XML comment" msgstr "неприпустимий XML-коментар" -#: utils/adt/xml.c:670 +#: utils/adt/xml.c:697 #, c-format msgid "not an XML document" msgstr "не XML-документ" -#: utils/adt/xml.c:966 utils/adt/xml.c:989 +#: utils/adt/xml.c:1008 utils/adt/xml.c:1031 #, c-format msgid "invalid XML processing instruction" msgstr "неприпустима XML-команда обробки" -#: utils/adt/xml.c:967 +#: utils/adt/xml.c:1009 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "Метою XML-команди обробки не може бути \"%s\"." -#: utils/adt/xml.c:990 +#: utils/adt/xml.c:1032 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-команда обробки не може містити \"?>\"." -#: utils/adt/xml.c:1069 +#: utils/adt/xml.c:1111 #, c-format msgid "xmlvalidate is not implemented" msgstr "функція xmlvalidate не реалізована" -#: utils/adt/xml.c:1125 +#: utils/adt/xml.c:1167 #, c-format msgid "could not initialize XML library" msgstr "не вдалося ініціалізувати бібліотеку XML" -#: utils/adt/xml.c:1126 +#: utils/adt/xml.c:1168 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 має несумісний тип char: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1212 +#: utils/adt/xml.c:1254 #, c-format msgid "could not set up XML error handler" msgstr "не вдалося встановити обробник XML-помилок" -#: utils/adt/xml.c:1213 +#: utils/adt/xml.c:1255 #, c-format msgid "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, з котрими був зібраний PostgreSQL." -#: utils/adt/xml.c:2199 +#: utils/adt/xml.c:2281 msgid "Invalid character value." msgstr "Неприпустиме значення символу." -#: utils/adt/xml.c:2202 +#: utils/adt/xml.c:2284 msgid "Space required." msgstr "Потребується пробіл." -#: utils/adt/xml.c:2205 +#: utils/adt/xml.c:2287 msgid "standalone accepts only 'yes' or 'no'." msgstr "значеннями атрибуту standalone можуть бути лише 'yes' або 'no'." -#: utils/adt/xml.c:2208 +#: utils/adt/xml.c:2290 msgid "Malformed declaration: missing version." msgstr "Неправильне оголошення: пропущена версія." -#: utils/adt/xml.c:2211 +#: utils/adt/xml.c:2293 msgid "Missing encoding in text declaration." msgstr "В оголошенні пропущене кодування." -#: utils/adt/xml.c:2214 +#: utils/adt/xml.c:2296 msgid "Parsing XML declaration: '?>' expected." msgstr "Аналіз XML-оголошення: '?>' очікується." -#: utils/adt/xml.c:2217 +#: utils/adt/xml.c:2299 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Нерозпізнаний код помилки libxml: %d." -#: utils/adt/xml.c:2471 +#: utils/adt/xml.c:2553 #, c-format msgid "XML does not support infinite date values." msgstr "XML не підтримує безкінечні значення в датах." -#: utils/adt/xml.c:2493 utils/adt/xml.c:2520 +#: utils/adt/xml.c:2575 utils/adt/xml.c:2602 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML не підтримує безкінченні значення в позначках часу." -#: utils/adt/xml.c:2936 +#: utils/adt/xml.c:3018 #, c-format msgid "invalid query" msgstr "неприпустимий запит" -#: utils/adt/xml.c:3028 +#: utils/adt/xml.c:3110 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "portal \"%s\" не повертає кортежі" -#: utils/adt/xml.c:4280 +#: utils/adt/xml.c:4362 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неприпустимий масив з зіставленням простіру імен XML" -#: utils/adt/xml.c:4281 +#: utils/adt/xml.c:4363 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Масив повинен бути двовимірним і містити 2 елемента по другій вісі." -#: utils/adt/xml.c:4305 +#: utils/adt/xml.c:4387 #, c-format msgid "empty XPath expression" msgstr "пустий вираз XPath" -#: utils/adt/xml.c:4357 +#: utils/adt/xml.c:4439 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ні ім'я простіру імен ні URI не можуть бути null" -#: utils/adt/xml.c:4364 +#: utils/adt/xml.c:4446 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "не вдалося зареєструвати простір імен XML з ім'ям \"%s\" і URI \"%s\"" -#: utils/adt/xml.c:4707 +#: utils/adt/xml.c:4795 #, c-format msgid "DEFAULT namespace is not supported" msgstr "Простір імен DEFAULT не підтримується" -#: utils/adt/xml.c:4736 +#: utils/adt/xml.c:4824 #, c-format msgid "row path filter must not be empty string" msgstr "шлях фільтруючих рядків не повинен бути пустим" -#: utils/adt/xml.c:4767 +#: utils/adt/xml.c:4858 #, c-format msgid "column path filter must not be empty string" msgstr "шлях фільтруючого стовпця не повинен бути пустим" -#: utils/adt/xml.c:4911 +#: utils/adt/xml.c:5005 #, c-format msgid "more than one value returned by column XPath expression" msgstr "вираз XPath, який відбирає стовпець, повернув більше одного значення" -#: utils/cache/lsyscache.c:1043 +#: utils/cache/lsyscache.c:1017 #, c-format msgid "cast from type %s to type %s does not exist" msgstr "приведення від типу %s до типу %s не існує" -#: utils/cache/lsyscache.c:2845 utils/cache/lsyscache.c:2878 -#: utils/cache/lsyscache.c:2911 utils/cache/lsyscache.c:2944 +#: utils/cache/lsyscache.c:2887 utils/cache/lsyscache.c:2920 +#: utils/cache/lsyscache.c:2953 utils/cache/lsyscache.c:2986 #, c-format msgid "type %s is only a shell" msgstr "тип %s лише оболонка" -#: utils/cache/lsyscache.c:2850 +#: utils/cache/lsyscache.c:2892 #, c-format msgid "no input function available for type %s" msgstr "для типу %s немає доступної функції введення" -#: utils/cache/lsyscache.c:2883 +#: utils/cache/lsyscache.c:2925 #, c-format msgid "no output function available for type %s" msgstr "для типу %s немає доступної функції виводу" -#: utils/cache/partcache.c:219 +#: utils/cache/partcache.c:216 #, c-format msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "в класі операторів \"%s\" методу доступу %s пропущено опорну функцію %d для типу %s" -#: utils/cache/plancache.c:724 +#: utils/cache/plancache.c:747 #, c-format msgid "cached plan must not change result type" msgstr "в кешованому плані не повинен змінюватись тип результату" -#: utils/cache/relcache.c:3741 +#: utils/cache/relcache.c:3800 #, c-format msgid "heap relfilenumber value not set when in binary upgrade mode" msgstr "значення relfilenumber не встановлене у режимі двійкового оновлення" -#: utils/cache/relcache.c:3749 +#: utils/cache/relcache.c:3808 #, c-format msgid "unexpected request for new relfilenumber in binary upgrade mode" msgstr "неочікуваний запит на новий relfilenumber в режимі двійкового оновлення" -#: utils/cache/relcache.c:6495 +#: utils/cache/relcache.c:6536 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "не вдалося створити файл ініціалізації для кешу відношень \"%s\": %m" -#: utils/cache/relcache.c:6497 +#: utils/cache/relcache.c:6538 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продовжуємо усе одно, але щось не так." -#: utils/cache/relcache.c:6819 +#: utils/cache/relcache.c:6868 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не вдалося видалити файл кешу \"%s\": %m" -#: utils/cache/relmapper.c:597 +#: utils/cache/relmapper.c:596 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "виконати PREPARE для транзакції, яка змінила зіставлення відношень, не можна" -#: utils/cache/relmapper.c:853 +#: utils/cache/relmapper.c:852 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "файл зіставлень відношень \"%s\" містить неприпустимі дані" -#: utils/cache/relmapper.c:863 +#: utils/cache/relmapper.c:862 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "файл зіставлень відношень \"%s\" містить неправильну контрольну суму" -#: utils/cache/typcache.c:1809 utils/fmgr/funcapi.c:566 +#: utils/cache/typcache.c:1812 utils/fmgr/funcapi.c:574 #, c-format msgid "record type has not been registered" msgstr "тип запису не зареєстрований" @@ -26159,102 +27228,102 @@ msgstr "TRAP: ExceptionalCondition: невірні аргументи в PID %d\ msgid "TRAP: failed Assert(\"%s\"), File: \"%s\", Line: %d, PID: %d\n" msgstr "TRAP: помилка Assert(\"%s\"), файл: \"%s\", рядок: %d, PID: %d\n" -#: utils/error/elog.c:416 +#: utils/error/elog.c:415 #, c-format msgid "error occurred before error message processing is available\n" msgstr "сталася помилка перед тим, як обробка повідомлення про помилку була доступна\n" -#: utils/error/elog.c:2096 +#: utils/error/elog.c:2134 #, c-format msgid "could not reopen file \"%s\" as stderr: %m" msgstr "не вдалося повторно відкрити файл \"%s\" як stderr: %m" -#: utils/error/elog.c:2109 +#: utils/error/elog.c:2147 #, c-format msgid "could not reopen file \"%s\" as stdout: %m" msgstr "не вдалося повторно відкрити файл \"%s\" як stdout: %m" -#: utils/error/elog.c:2145 +#: utils/error/elog.c:2183 #, c-format -msgid "invalid character" -msgstr "неприпустимий символ" +msgid "Invalid character" +msgstr "Неприпустимий символ" -#: utils/error/elog.c:2851 utils/error/elog.c:2878 utils/error/elog.c:2894 +#: utils/error/elog.c:2889 utils/error/elog.c:2916 utils/error/elog.c:2932 msgid "[unknown]" msgstr "[unknown]" -#: utils/error/elog.c:3167 utils/error/elog.c:3488 utils/error/elog.c:3595 +#: utils/error/elog.c:3202 utils/error/elog.c:3526 utils/error/elog.c:3633 msgid "missing error text" msgstr "пропущено текст помилки" -#: utils/error/elog.c:3170 utils/error/elog.c:3173 +#: utils/error/elog.c:3205 utils/error/elog.c:3208 #, c-format msgid " at character %d" msgstr " символ %d" -#: utils/error/elog.c:3183 utils/error/elog.c:3190 +#: utils/error/elog.c:3218 utils/error/elog.c:3225 msgid "DETAIL: " msgstr "ВІДОМОСТІ: " -#: utils/error/elog.c:3197 +#: utils/error/elog.c:3232 msgid "HINT: " msgstr "УКАЗІВКА: " -#: utils/error/elog.c:3204 +#: utils/error/elog.c:3239 msgid "QUERY: " msgstr "ЗАПИТ: " -#: utils/error/elog.c:3211 +#: utils/error/elog.c:3246 msgid "CONTEXT: " msgstr "КОНТЕКСТ: " -#: utils/error/elog.c:3221 +#: utils/error/elog.c:3256 #, c-format msgid "LOCATION: %s, %s:%d\n" msgstr "РОЗТАШУВАННЯ: %s, %s:%d\n" -#: utils/error/elog.c:3228 +#: utils/error/elog.c:3263 #, c-format msgid "LOCATION: %s:%d\n" msgstr "РОЗТАШУВАННЯ: %s:%d\n" -#: utils/error/elog.c:3235 +#: utils/error/elog.c:3270 msgid "BACKTRACE: " msgstr "ВІДСТЕЖУВАТИ: " -#: utils/error/elog.c:3247 +#: utils/error/elog.c:3282 msgid "STATEMENT: " msgstr "ІНСТРУКЦІЯ: " -#: utils/error/elog.c:3640 +#: utils/error/elog.c:3678 msgid "DEBUG" msgstr "НАЛАГОДЖЕННЯ" -#: utils/error/elog.c:3644 +#: utils/error/elog.c:3682 msgid "LOG" msgstr "ЗАПИСУВАННЯ" -#: utils/error/elog.c:3647 +#: utils/error/elog.c:3685 msgid "INFO" msgstr "ІНФОРМАЦІЯ" -#: utils/error/elog.c:3650 +#: utils/error/elog.c:3688 msgid "NOTICE" msgstr "ПОВІДОМЛЕННЯ" -#: utils/error/elog.c:3654 +#: utils/error/elog.c:3692 msgid "WARNING" msgstr "ПОПЕРЕДЖЕННЯ" -#: utils/error/elog.c:3657 +#: utils/error/elog.c:3695 msgid "ERROR" msgstr "ПОМИЛКА" -#: utils/error/elog.c:3660 +#: utils/error/elog.c:3698 msgid "FATAL" msgstr "ФАТАЛЬНО" -#: utils/error/elog.c:3663 +#: utils/error/elog.c:3701 msgid "PANIC" msgstr "ПАНІКА" @@ -26327,22 +27396,22 @@ msgstr "Магічний блок має неочікувану довжину msgid "incompatible library \"%s\": magic block mismatch" msgstr "несумісна бібліотка \"%s\": невідповідність магічного блоку" -#: utils/fmgr/dfmgr.c:492 +#: utils/fmgr/dfmgr.c:475 #, c-format msgid "access to library \"%s\" is not allowed" msgstr "доступ до бібліотеки \"%s\" не дозволений" -#: utils/fmgr/dfmgr.c:518 +#: utils/fmgr/dfmgr.c:501 #, c-format msgid "invalid macro name in dynamic library path: %s" msgstr "неприпустиме ім'я макросу в шляху динамічної бібліотеки: %s" -#: utils/fmgr/dfmgr.c:558 +#: utils/fmgr/dfmgr.c:541 #, c-format msgid "zero-length component in parameter \"dynamic_library_path\"" msgstr "параметр \"dynamic_library_path\" містить компонент нульової довжини" -#: utils/fmgr/dfmgr.c:577 +#: utils/fmgr/dfmgr.c:560 #, c-format msgid "component in parameter \"dynamic_library_path\" is not an absolute path" msgstr "параметр \"dynamic_library_path\" містить компонент, який не є абсолютним шляхом" @@ -26367,223 +27436,213 @@ msgstr "Функції, які викликаються з SQL, потребую msgid "unrecognized API version %d reported by info function \"%s\"" msgstr "нерозпізнана версія API %d, повідомлена інформаційною функцією \"%s\"" -#: utils/fmgr/fmgr.c:2080 +#: utils/fmgr/fmgr.c:2109 #, c-format msgid "operator class options info is absent in function call context" msgstr "в контексті виклику функції відсутня інформація стосовно параметрів класів операторів" -#: utils/fmgr/fmgr.c:2147 +#: utils/fmgr/fmgr.c:2176 #, c-format msgid "language validation function %u called for language %u instead of %u" msgstr "функція мовної перевірки %u викликана для мови %u замість %u" -#: utils/fmgr/funcapi.c:489 +#: utils/fmgr/funcapi.c:496 #, c-format msgid "could not determine actual result type for function \"%s\" declared to return type %s" msgstr "не вдалося визначити фактичний тип результату для функції \"%s\" оголошеної як, та, котра повертає тип %s" -#: utils/fmgr/funcapi.c:634 +#: utils/fmgr/funcapi.c:642 #, c-format msgid "argument declared %s does not contain a range type but type %s" msgstr "оголошений аргумент %s не містить тип діапазону, а тип %s" -#: utils/fmgr/funcapi.c:717 -#, c-format -msgid "could not find multirange type for data type %s" -msgstr "не вдалося знайти багатодіапазонний тип для типу даних %s" - -#: utils/fmgr/funcapi.c:1921 utils/fmgr/funcapi.c:1953 +#: utils/fmgr/funcapi.c:1929 utils/fmgr/funcapi.c:1961 #, c-format msgid "number of aliases does not match number of columns" msgstr "кількість псевдонімів не відповідає кількості стовпців" -#: utils/fmgr/funcapi.c:1947 +#: utils/fmgr/funcapi.c:1955 #, c-format msgid "no column alias was provided" msgstr "жодного псевдоніму для стовпця не було надано" -#: utils/fmgr/funcapi.c:1971 +#: utils/fmgr/funcapi.c:1979 #, c-format msgid "could not determine row description for function returning record" msgstr "не вдалося визначити опис рядка для функції, що повертає запис" -#: utils/init/miscinit.c:346 +#: utils/init/miscinit.c:352 #, c-format msgid "data directory \"%s\" does not exist" msgstr "каталог даних \"%s\" не існує" -#: utils/init/miscinit.c:351 +#: utils/init/miscinit.c:357 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: utils/init/miscinit.c:359 +#: utils/init/miscinit.c:365 #, c-format msgid "specified data directory \"%s\" is not a directory" msgstr "вказаний каталог даних \"%s\" не є каталогом" -#: utils/init/miscinit.c:375 +#: utils/init/miscinit.c:381 #, c-format msgid "data directory \"%s\" has wrong ownership" msgstr "власник каталогу даних \"%s\" визначений неправильно" -#: utils/init/miscinit.c:377 +#: utils/init/miscinit.c:383 #, c-format msgid "The server must be started by the user that owns the data directory." msgstr "Сервер повинен запускати користувач, який володіє каталогом даних." -#: utils/init/miscinit.c:395 +#: utils/init/miscinit.c:401 #, c-format msgid "data directory \"%s\" has invalid permissions" msgstr "каталог даних \"%s\" має неприпустимі дозволи" -#: utils/init/miscinit.c:397 +#: utils/init/miscinit.c:403 #, 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:455 +#: utils/init/miscinit.c:461 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не вдалося змінити каталог на \"%s\": %m" -#: utils/init/miscinit.c:692 utils/misc/guc.c:3557 +#: utils/init/miscinit.c:697 utils/misc/guc.c:3650 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "встановити параметр \"%s\" в межах операції з обмеженнями по безпеці, не можна" -#: utils/init/miscinit.c:764 +#: utils/init/miscinit.c:770 #, c-format msgid "role with OID %u does not exist" msgstr "роль з OID %u не існує" -#: utils/init/miscinit.c:794 +#: utils/init/miscinit.c:800 #, c-format msgid "role \"%s\" is not permitted to log in" msgstr "для ролі \"%s\" вхід не дозволений" -#: utils/init/miscinit.c:812 +#: utils/init/miscinit.c:818 #, c-format msgid "too many connections for role \"%s\"" msgstr "занадто багато підключень для ролі \"%s\"" -#: utils/init/miscinit.c:919 -#, c-format -msgid "permission denied to set session authorization" -msgstr "немає прав для встановлення авторизації в сеансі" - -#: utils/init/miscinit.c:1002 +#: utils/init/miscinit.c:991 #, c-format msgid "invalid role OID: %u" msgstr "неприпустимий OID ролі: %u" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1138 #, c-format msgid "database system is shut down" msgstr "система бази даних вимкнена" -#: utils/init/miscinit.c:1236 +#: utils/init/miscinit.c:1225 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не вдалося створити файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1250 +#: utils/init/miscinit.c:1239 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не вдалося відкрити файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1257 +#: utils/init/miscinit.c:1246 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не вдалося прочитати файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1255 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл блокування \"%s\" пустий" -#: utils/init/miscinit.c:1267 +#: utils/init/miscinit.c:1256 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Або зараз запускається інший сервер, або цей файл блокування залишився в результаті збою під час попереднього запуску." -#: utils/init/miscinit.c:1311 +#: utils/init/miscinit.c:1300 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл блокування \"%s\" вже існує" -#: utils/init/miscinit.c:1315 +#: utils/init/miscinit.c:1304 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Інший postgres (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1317 +#: utils/init/miscinit.c:1306 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Інший postmaster (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1320 +#: utils/init/miscinit.c:1309 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Інший postgres (PID %d) використовує файл сокету \"%s\"?" -#: utils/init/miscinit.c:1322 +#: utils/init/miscinit.c:1311 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Інший postmaster (PID %d) використовує файл сокету \"%s\"?" -#: utils/init/miscinit.c:1373 +#: utils/init/miscinit.c:1362 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не вдалося видалити старий файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1375 +#: utils/init/miscinit.c:1364 #, 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 "Здається, файл залишився випадково, але видалити його не вийшло. Будь-ласка, видаліть файл вручну або спробуйте знову." -#: utils/init/miscinit.c:1412 utils/init/miscinit.c:1426 -#: utils/init/miscinit.c:1437 +#: utils/init/miscinit.c:1401 utils/init/miscinit.c:1415 +#: utils/init/miscinit.c:1426 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не вдалося записати файл блокування \"%s\": %m" -#: utils/init/miscinit.c:1548 utils/init/miscinit.c:1690 utils/misc/guc.c:5597 +#: utils/init/miscinit.c:1537 utils/init/miscinit.c:1679 utils/misc/guc.c:5724 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не вдалося прочитати з файлу \"%s\": %m" -#: utils/init/miscinit.c:1678 +#: utils/init/miscinit.c:1667 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не вдалося відкрити файл \"%s\": %m; все одно продовжується" -#: utils/init/miscinit.c:1703 +#: utils/init/miscinit.c:1692 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл блокування \"%s\" містить неправильний PID: %ld замість %ld" -#: utils/init/miscinit.c:1742 utils/init/miscinit.c:1758 +#: utils/init/miscinit.c:1731 utils/init/miscinit.c:1747 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не є припустимим каталогом даних" -#: utils/init/miscinit.c:1744 +#: utils/init/miscinit.c:1733 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" пропущено." -#: utils/init/miscinit.c:1760 +#: utils/init/miscinit.c:1749 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" не містить припустимих даних." -#: utils/init/miscinit.c:1762 +#: utils/init/miscinit.c:1751 #, c-format msgid "You might need to initdb." msgstr "Можливо, вам слід виконати initdb." -#: utils/init/miscinit.c:1770 +#: utils/init/miscinit.c:1759 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Каталог даних ініціалізований сервером PostgreSQL версії %s, не сумісною з цією версією %s." @@ -26685,72 +27744,72 @@ msgstr "Повторно створіть базу даних з іншою ло msgid "The database was initialized with LC_CTYPE \"%s\", which is not recognized by setlocale()." msgstr "База даних була ініціалізована з параметром LC_CTYPE \"%s\", але зараз setlocale() не розпізнає його." -#: utils/init/postinit.c:475 +#: utils/init/postinit.c:491 #, c-format msgid "database \"%s\" has a collation version mismatch" msgstr "база даних \"%s\" має невідповідність версії параметрів сортування" -#: utils/init/postinit.c:477 +#: utils/init/postinit.c:493 #, c-format msgid "The database was created using collation version %s, but the operating system provides version %s." msgstr "Базу даних було створено за допомогою параметрів сортування версії %s, але операційна система надає версію %s." -#: utils/init/postinit.c:480 +#: utils/init/postinit.c:496 #, c-format msgid "Rebuild all objects in this database that use the default collation and run ALTER DATABASE %s REFRESH COLLATION VERSION, or build PostgreSQL with the right library version." msgstr "Перебудуйте всі об'єкти бази даних, які використовують стандартний параметр сортування або виконайте ALTER DATABASE %s REFRESH COLLATION VERSION, або побудуйте PostgreSQL з правильною версією бібліотеки." -#: utils/init/postinit.c:891 +#: utils/init/postinit.c:902 #, c-format msgid "no roles are defined in this database system" msgstr "в цій системі баз даних не визначено жодної ролі" -#: utils/init/postinit.c:892 +#: utils/init/postinit.c:903 #, c-format msgid "You should immediately run CREATE USER \"%s\" SUPERUSER;." msgstr "Ви повинні негайно виконати CREATE USER \"%s\" SUPERUSER;." -#: utils/init/postinit.c:928 +#: utils/init/postinit.c:940 #, c-format msgid "must be superuser to connect in binary upgrade mode" msgstr "потрібно бути суперкористувачем, щоб підключитись в режимі двійкового оновлення" -#: utils/init/postinit.c:949 +#: utils/init/postinit.c:961 #, c-format msgid "remaining connection slots are reserved for roles with the %s attribute" msgstr "слоти підключення, що залишилися, зарезервовані для ролей з атрибутом %s" -#: utils/init/postinit.c:955 +#: utils/init/postinit.c:967 #, c-format msgid "remaining connection slots are reserved for roles with privileges of the \"%s\" role" msgstr "слоти підключення, що залишилися, зарезервовані для ролей з привілеями ролі \"%s\"" -#: utils/init/postinit.c:967 +#: utils/init/postinit.c:979 #, c-format msgid "permission denied to start WAL sender" msgstr "немає дозволу для запуску відправника WAL" -#: utils/init/postinit.c:968 +#: utils/init/postinit.c:980 #, c-format msgid "Only roles with the %s attribute may start a WAL sender process." msgstr "Тільки ролі з атрибутом %s можуть почати процес відправки WAL." -#: utils/init/postinit.c:1086 +#: utils/init/postinit.c:1098 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "Схоже, вона щойно була видалена або перейменована." -#: utils/init/postinit.c:1090 +#: utils/init/postinit.c:1102 #, c-format msgid "database %u does not exist" msgstr "база даних %u не існує" -#: utils/init/postinit.c:1099 +#: utils/init/postinit.c:1111 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "неможливо під'єднатися до невірної бази даних \"%s\"" -#: utils/init/postinit.c:1159 +#: utils/init/postinit.c:1172 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Підкаталог бази даних \"%s\" пропущений." @@ -26777,48 +27836,48 @@ msgstr "неочікуваний ідентифікатор кодування % msgid "unexpected encoding ID %d for WIN character sets" msgstr "неочікуваний ідентифікатор кодування %d для наборів символів WIN" -#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 +#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 #, c-format msgid "conversion between %s and %s is not supported" msgstr "перетворення між %s і %s не підтримується" -#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 -#: utils/mb/mbutils.c:843 +#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 +#: utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Рядок з %d байт занадто довгий для перетворення кодування." -#: utils/mb/mbutils.c:569 +#: utils/mb/mbutils.c:568 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "неприпустиме ім’я вихідного кодування \"%s\"" -#: utils/mb/mbutils.c:574 +#: utils/mb/mbutils.c:573 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "неприпустиме ім’я кодування результату \"%s\"" -#: utils/mb/mbutils.c:714 +#: utils/mb/mbutils.c:713 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "неприпустиме значення байту для кодування \"%s\": 0x%02x" -#: utils/mb/mbutils.c:878 +#: utils/mb/mbutils.c:877 #, c-format msgid "invalid Unicode code point" msgstr "неприпустима кодова точка Unicode" -#: utils/mb/mbutils.c:1204 +#: utils/mb/mbutils.c:1201 #, c-format msgid "bind_textdomain_codeset failed" msgstr "помилка в bind_textdomain_codeset" -#: utils/mb/mbutils.c:1725 +#: utils/mb/mbutils.c:1718 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "неприпустима послідовність байтів для кодування \"%s\": %s" -#: utils/mb/mbutils.c:1758 +#: utils/mb/mbutils.c:1751 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "символ з послідовністю байтів %s в кодуванні \"%s\" не має еквіваленту в кодуванні \"%s\"" @@ -26833,237 +27892,239 @@ msgstr "пуста назва каталогу конфігурації: \"%s\"" msgid "could not open configuration directory \"%s\": %m" msgstr "не вдалося відкрити каталог конфігурації \"%s\": %m" -#: utils/misc/guc.c:115 +#: utils/misc/guc.c:122 msgid "Valid units for this parameter are \"B\", \"kB\", \"MB\", \"GB\", and \"TB\"." msgstr "Припустимі одиниці для цього параметру: \"B\", \"kB\", \"MB\", \"GB\", і \"TB\"." -#: utils/misc/guc.c:152 +#: utils/misc/guc.c:159 msgid "Valid units for this parameter are \"us\", \"ms\", \"s\", \"min\", \"h\", and \"d\"." msgstr "Припустимі одиниці для цього параметру: \"us\", \"ms\", \"s\", \"min\", \"h\", і \"d\"." -#: utils/misc/guc.c:421 +#: utils/misc/guc.c:430 #, c-format msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "нерозпізнаний параметр конфігурації \"%s\" у файлі \"%s\" рядок %d" -#: utils/misc/guc.c:461 utils/misc/guc.c:3411 utils/misc/guc.c:3655 -#: utils/misc/guc.c:3753 utils/misc/guc.c:3851 utils/misc/guc.c:3975 -#: utils/misc/guc.c:4078 +#: utils/misc/guc.c:470 utils/misc/guc.c:3504 utils/misc/guc.c:3748 +#: utils/misc/guc.c:3846 utils/misc/guc.c:3944 utils/misc/guc.c:4068 +#: utils/misc/guc.c:4171 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "параметр \"%s\" не може бути змінений, без перезавантаження сервера" -#: utils/misc/guc.c:497 +#: utils/misc/guc.c:506 #, c-format msgid "parameter \"%s\" removed from configuration file, reset to default" msgstr "параметр \"%s\" видалений з файла конфігурації, значення скинуто до \"за замовчуванням\"" -#: utils/misc/guc.c:562 +#: utils/misc/guc.c:571 #, c-format msgid "parameter \"%s\" changed to \"%s\"" msgstr "параметр \"%s\" змінено на \"%s\"" -#: utils/misc/guc.c:604 +#: utils/misc/guc.c:613 #, c-format msgid "configuration file \"%s\" contains errors" msgstr "файл конфігурації \"%s\" містить помилки" -#: utils/misc/guc.c:609 +#: utils/misc/guc.c:618 #, c-format msgid "configuration file \"%s\" contains errors; unaffected changes were applied" msgstr "файл конфігурації \"%s\" містить помилки; були застосовані не залежні зміни" -#: utils/misc/guc.c:614 +#: utils/misc/guc.c:623 #, c-format msgid "configuration file \"%s\" contains errors; no changes were applied" msgstr "файл конфігурації \"%s\" містить помилки; зміни не були застосовані" -#: utils/misc/guc.c:1211 utils/misc/guc.c:1227 +#: utils/misc/guc.c:1139 utils/misc/guc.c:1155 #, c-format msgid "invalid configuration parameter name \"%s\"" msgstr "неприпустима назва параметра конфігурації \"%s\"" -#: utils/misc/guc.c:1213 +#: utils/misc/guc.c:1141 #, c-format msgid "Custom parameter names must be two or more simple identifiers separated by dots." msgstr "Власні назви параметрів повинні містити два або більше простих ідентифікаторів, розділених крапками." -#: utils/misc/guc.c:1229 +#: utils/misc/guc.c:1157 #, c-format msgid "\"%s\" is a reserved prefix." msgstr "\"%s\" є зарезервованим префіксом." -#: utils/misc/guc.c:1243 +#: utils/misc/guc.c:1170 utils/misc/guc.c:1280 #, c-format msgid "unrecognized configuration parameter \"%s\"" msgstr "нерозпізнаний параметр конфігурації \"%s\"" -#: utils/misc/guc.c:1767 +#: utils/misc/guc.c:1802 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: немає доступу до каталогу \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: не вдалося отримати доступ до каталогу \"%s\": %m\n" -#: utils/misc/guc.c:1772 +#: utils/misc/guc.c:1806 #, c-format msgid "Run initdb or pg_basebackup to initialize a PostgreSQL data directory.\n" msgstr "Запустіть initdb або pg_basebackup для ініціалізації каталогу даних PostgreSQL.\n" -#: utils/misc/guc.c:1796 +#: utils/misc/guc.c:1830 #, c-format -msgid "" -"%s does not know where to find the server configuration file.\n" +msgid "%s does not know where to find the server configuration file.\n" "You must specify the --config-file or -D invocation option or set the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації сервера.\n" +msgstr "%s не знає де знайти файл конфігурації сервера.\n" "Ви повинні вказати його розташування в параметрі --config-file або -D, або встановити змінну середовища PGDATA.\n" -#: utils/misc/guc.c:1819 +#: utils/misc/guc.c:1853 #, c-format -msgid "%s: could not access the server configuration file \"%s\": %s\n" -msgstr "%s: не вдалося отримати доступ до файлу конфігурації сервера \"%s\": %s\n" +msgid "%s: could not access the server configuration file \"%s\": %m\n" +msgstr "%s: не вдалося отримати доступ до файлу конфігурації сервера \"%s\": %m\n" -#: utils/misc/guc.c:1847 +#: utils/misc/guc.c:1881 #, c-format -msgid "" -"%s does not know where to find the database system data.\n" +msgid "%s does not know where to find the database system data.\n" "This can be specified as \"data_directory\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти дані системи бази даних.\n" +msgstr "%s не знає де знайти дані системи бази даних.\n" "Їх розташування може бути вказано як \"data_directory\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" -#: utils/misc/guc.c:1899 +#: utils/misc/guc.c:1933 #, c-format -msgid "" -"%s does not know where to find the \"hba\" configuration file.\n" +msgid "%s does not know where to find the \"hba\" configuration file.\n" "This can be specified as \"hba_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації \"hba\".\n" +msgstr "%s не знає де знайти файл конфігурації \"hba\".\n" "Його розташування може бути вказано як \"hba_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" -#: utils/misc/guc.c:1930 +#: utils/misc/guc.c:1964 #, c-format -msgid "" -"%s does not know where to find the \"ident\" configuration file.\n" +msgid "%s does not know where to find the \"ident\" configuration file.\n" "This can be specified as \"ident_file\" in \"%s\", or by the -D invocation option, or by the PGDATA environment variable.\n" -msgstr "" -"%s не знає де знайти файл конфігурації \"ident\".\n" +msgstr "%s не знає де знайти файл конфігурації \"ident\".\n" "Його розташування може бути вказано як \"ident_file\" в \"%s\", або передано в параметрі -D, або встановлено змінну середовища PGDATA.\n" -#: utils/misc/guc.c:2896 +#: utils/misc/guc.c:2943 msgid "Value exceeds integer range." msgstr "Значення перевищує діапазон цілих чисел." -#: utils/misc/guc.c:3132 +#: utils/misc/guc.c:3185 #, c-format -msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d .. %d)" -msgstr "%d%s%s поза припустимим діапазоном для параметру \"%s\" (%d .. %d)" +msgid "%d%s%s is outside the valid range for parameter \"%s\" (%d%s%s .. %d%s%s)" +msgstr "%d%s%s поза припустимим діапазоном для параметру \"%s\" (%d%s%s .. %d%s%s)" -#: utils/misc/guc.c:3168 +#: utils/misc/guc.c:3226 #, c-format -msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" -msgstr "%g%s%s поза припустимим діапазоном для параметру \"%s\" (%g .. %g)" +msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g%s%s .. %g%s%s)" +msgstr "%g%s%s поза припустимим діапазоном для параметру \"%s\" (%g%s%s .. %g%s%s)" -#: utils/misc/guc.c:3369 utils/misc/guc_funcs.c:54 +#: utils/misc/guc.c:3465 #, c-format -msgid "cannot set parameters during a parallel operation" -msgstr "встановити параметри під час паралельної операції не можна" +msgid "parameter \"%s\" cannot be set during a parallel operation" +msgstr "параметр \"%s\" не можна встановити під час паралельних операцій" -#: utils/misc/guc.c:3388 utils/misc/guc.c:4539 +#: utils/misc/guc.c:3481 utils/misc/guc.c:4655 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "параметр \"%s\" не може бути змінений" -#: utils/misc/guc.c:3421 +#: utils/misc/guc.c:3514 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" не може бути змінений зараз" -#: utils/misc/guc.c:3448 utils/misc/guc.c:3510 utils/misc/guc.c:4515 -#: utils/misc/guc.c:6563 +#: utils/misc/guc.c:3541 utils/misc/guc.c:3603 utils/misc/guc.c:4630 +#: utils/misc/guc.c:6721 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "немає прав для встановлення параметру \"%s\"" -#: utils/misc/guc.c:3490 +#: utils/misc/guc.c:3583 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "параметр \"%s\" не можна встановити після встановлення підключення" -#: utils/misc/guc.c:3549 +#: utils/misc/guc.c:3642 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "параметр \"%s\" не можна встановити в межах функції безпеки" -#: utils/misc/guc.c:3570 +#: utils/misc/guc.c:3663 #, c-format msgid "parameter \"%s\" cannot be reset" msgstr "параметр \"%s\" не можна скинути" -#: utils/misc/guc.c:3577 +#: utils/misc/guc.c:3670 #, c-format msgid "parameter \"%s\" cannot be set locally in functions" msgstr "параметр \"%s\" не може бути встановлений локально в функціях" -#: utils/misc/guc.c:4221 utils/misc/guc.c:4268 utils/misc/guc.c:5282 +#: utils/misc/guc.c:4329 utils/misc/guc.c:4377 utils/misc/guc.c:5409 #, c-format msgid "permission denied to examine \"%s\"" msgstr "немає дозволу для вивчення \"%s\"" -#: utils/misc/guc.c:4222 utils/misc/guc.c:4269 utils/misc/guc.c:5283 +#: utils/misc/guc.c:4330 utils/misc/guc.c:4378 utils/misc/guc.c:5410 #, c-format msgid "Only roles with privileges of the \"%s\" role may examine this parameter." msgstr "Тільки ролі з привілеями ролі \"%s\" можуть перевіряти цей параметр." -#: utils/misc/guc.c:4505 +#: utils/misc/guc.c:4588 +#, c-format +msgid "ALTER SYSTEM is not allowed in this environment" +msgstr "ALTER SYSTEM не допускається в цьому середовищі" + +#: utils/misc/guc.c:4620 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "немає дозволу для виконання ALTER SYSTEM RESET ALL" -#: utils/misc/guc.c:4571 +#: utils/misc/guc.c:4699 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "значення параметру для ALTER SYSTEM не повинне містити нового рядка" -#: utils/misc/guc.c:4617 +#: utils/misc/guc.c:4744 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "не вдалося аналізувати зміст файла \"%s\"" -#: utils/misc/guc.c:4799 +#: utils/misc/guc.c:4926 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "спроба перевизначити параметр \"%s\"" -#: utils/misc/guc.c:5138 +#: utils/misc/guc.c:5265 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "неприпустима назва параметра конфігурації \"%s\", видаляємо" -#: utils/misc/guc.c:5140 +#: utils/misc/guc.c:5267 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" тепер є зарезервованим префіксом." -#: utils/misc/guc.c:6017 +#: utils/misc/guc.c:6144 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "під час налаштування параметру \"%s\" на \"%s\"" -#: utils/misc/guc.c:6186 +#: utils/misc/guc.c:6313 #, c-format msgid "parameter \"%s\" could not be set" msgstr "параметр \"%s\" не вдалося встановити" -#: utils/misc/guc.c:6276 +#: utils/misc/guc.c:6403 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "не вдалося аналізувати налаштування параметру \"%s\"" -#: utils/misc/guc.c:6695 +#: utils/misc/guc.c:6853 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неприпустиме значення для параметра \"%s\": %g" +#: utils/misc/guc_funcs.c:54 +#, c-format +msgid "cannot set parameters during a parallel operation" +msgstr "встановити параметри під час паралельної операції не можна" + #: utils/misc/guc_funcs.c:130 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" @@ -27079,59 +28140,59 @@ msgstr "SET %s приймає лише один аргумент" msgid "SET requires parameter name" msgstr "SET потребує ім'я параметра" -#: utils/misc/guc_tables.c:662 +#: utils/misc/guc_tables.c:676 msgid "Ungrouped" msgstr "Розгруповано" -#: utils/misc/guc_tables.c:664 +#: utils/misc/guc_tables.c:677 msgid "File Locations" msgstr "Розташування файлів" -#: utils/misc/guc_tables.c:666 +#: utils/misc/guc_tables.c:678 msgid "Connections and Authentication / Connection Settings" msgstr "Підключення і автентифікація / Параметри підключень" -#: utils/misc/guc_tables.c:668 +#: utils/misc/guc_tables.c:679 msgid "Connections and Authentication / TCP Settings" msgstr "Підключення і автентифікація / Налаштування TCP" -#: utils/misc/guc_tables.c:670 +#: utils/misc/guc_tables.c:680 msgid "Connections and Authentication / Authentication" msgstr "Підключення і автентифікація / Автентифікація" -#: utils/misc/guc_tables.c:672 +#: utils/misc/guc_tables.c:681 msgid "Connections and Authentication / SSL" msgstr "Підключення і автентифікація / SSL" -#: utils/misc/guc_tables.c:674 +#: utils/misc/guc_tables.c:682 msgid "Resource Usage / Memory" msgstr "Використання ресурсу / Пам'ять" -#: utils/misc/guc_tables.c:676 +#: utils/misc/guc_tables.c:683 msgid "Resource Usage / Disk" msgstr "Використання ресурсу / Диск" -#: utils/misc/guc_tables.c:678 +#: utils/misc/guc_tables.c:684 msgid "Resource Usage / Kernel Resources" msgstr "Використання ресурсу / Ресурси ядра" -#: utils/misc/guc_tables.c:680 +#: utils/misc/guc_tables.c:685 msgid "Resource Usage / Cost-Based Vacuum Delay" msgstr "Використання ресурсу / Затримка очистки по вартості" -#: utils/misc/guc_tables.c:682 +#: utils/misc/guc_tables.c:686 msgid "Resource Usage / Background Writer" msgstr "Використання ресурсу / Фоновий запис" -#: utils/misc/guc_tables.c:684 +#: utils/misc/guc_tables.c:687 msgid "Resource Usage / Asynchronous Behavior" msgstr "Використання ресурсу / Асинхронна поведінка" -#: utils/misc/guc_tables.c:686 +#: utils/misc/guc_tables.c:688 msgid "Write-Ahead Log / Settings" msgstr "Журнал WAL / Параметри" -#: utils/misc/guc_tables.c:688 +#: utils/misc/guc_tables.c:689 msgid "Write-Ahead Log / Checkpoints" msgstr "Журнал WAL / Контрольні точки" @@ -27139,458 +28200,474 @@ msgstr "Журнал WAL / Контрольні точки" msgid "Write-Ahead Log / Archiving" msgstr "Журнал WAL / Архівація" -#: utils/misc/guc_tables.c:692 +#: utils/misc/guc_tables.c:691 msgid "Write-Ahead Log / Recovery" msgstr "Журнал WAL / Відновлення" -#: utils/misc/guc_tables.c:694 +#: utils/misc/guc_tables.c:692 msgid "Write-Ahead Log / Archive Recovery" msgstr "Журнал WAL / Відновлення архіву" -#: utils/misc/guc_tables.c:696 +#: utils/misc/guc_tables.c:693 msgid "Write-Ahead Log / Recovery Target" msgstr "Журнал WAL / Мета відновлення" -#: utils/misc/guc_tables.c:698 +#: utils/misc/guc_tables.c:694 +msgid "Write-Ahead Log / Summarization" +msgstr "Журнал попереднього запису / Підсумки" + +#: utils/misc/guc_tables.c:695 msgid "Replication / Sending Servers" msgstr "Реплікація / Надсилання серверів" -#: utils/misc/guc_tables.c:700 +#: utils/misc/guc_tables.c:696 msgid "Replication / Primary Server" msgstr "Реплікація / Основний сервер" -#: utils/misc/guc_tables.c:702 +#: utils/misc/guc_tables.c:697 msgid "Replication / Standby Servers" msgstr "Реплікація / Резервні сервера" -#: utils/misc/guc_tables.c:704 +#: utils/misc/guc_tables.c:698 msgid "Replication / Subscribers" msgstr "Реплікація / Підписники" -#: utils/misc/guc_tables.c:706 +#: utils/misc/guc_tables.c:699 msgid "Query Tuning / Planner Method Configuration" msgstr "Налаштування запитів / Конфігурація методів планувальника" -#: utils/misc/guc_tables.c:708 +#: utils/misc/guc_tables.c:700 msgid "Query Tuning / Planner Cost Constants" msgstr "Налаштування запитів / Константи вартості для планувальника" -#: utils/misc/guc_tables.c:710 +#: utils/misc/guc_tables.c:701 msgid "Query Tuning / Genetic Query Optimizer" msgstr "Налаштування запитів / Генетичний оптимізатор запитів" -#: utils/misc/guc_tables.c:712 +#: utils/misc/guc_tables.c:702 msgid "Query Tuning / Other Planner Options" msgstr "Налаштування запитів / Інші параметри планувальника" -#: utils/misc/guc_tables.c:714 +#: utils/misc/guc_tables.c:703 msgid "Reporting and Logging / Where to Log" msgstr "Звіти і журналювання / Куди записувати" -#: utils/misc/guc_tables.c:716 +#: utils/misc/guc_tables.c:704 msgid "Reporting and Logging / When to Log" msgstr "Звіти і журналювання / Коли записувати" -#: utils/misc/guc_tables.c:718 +#: utils/misc/guc_tables.c:705 msgid "Reporting and Logging / What to Log" msgstr "Звіти і журналювання / Що записувати" -#: utils/misc/guc_tables.c:720 +#: utils/misc/guc_tables.c:706 msgid "Reporting and Logging / Process Title" msgstr "Звітування і журналювання / Назва процесу" -#: utils/misc/guc_tables.c:722 +#: utils/misc/guc_tables.c:707 msgid "Statistics / Monitoring" msgstr "Статистика / Моніторинг" -#: utils/misc/guc_tables.c:724 +#: utils/misc/guc_tables.c:708 msgid "Statistics / Cumulative Query and Index Statistics" msgstr "Статистика / Кумулятивна статистика запитів та індексів" -#: utils/misc/guc_tables.c:726 +#: utils/misc/guc_tables.c:709 msgid "Autovacuum" msgstr "Автоочистка" -#: utils/misc/guc_tables.c:728 +#: utils/misc/guc_tables.c:710 msgid "Client Connection Defaults / Statement Behavior" msgstr "Параметри клієнтських сеансів за замовчуванням / Поведінка декларацій" -#: utils/misc/guc_tables.c:730 +#: utils/misc/guc_tables.c:711 msgid "Client Connection Defaults / Locale and Formatting" msgstr "Параметри клієнтських сеансів за замовчуванням / Локалізація і форматування" -#: utils/misc/guc_tables.c:732 +#: utils/misc/guc_tables.c:712 msgid "Client Connection Defaults / Shared Library Preloading" msgstr "Параметри клієнтських сеансів за замовчуванням / Попереднє завантаження спільних бібліотек" -#: utils/misc/guc_tables.c:734 +#: utils/misc/guc_tables.c:713 msgid "Client Connection Defaults / Other Defaults" msgstr "Параметри клієнтських сеансів за замовчуванням / Інші параметри за замовчуванням" -#: utils/misc/guc_tables.c:736 +#: utils/misc/guc_tables.c:714 msgid "Lock Management" msgstr "Керування блокуванням" -#: utils/misc/guc_tables.c:738 +#: utils/misc/guc_tables.c:715 msgid "Version and Platform Compatibility / Previous PostgreSQL Versions" msgstr "Сумісність версій і платформ / Попередні версії PostgreSQL" -#: utils/misc/guc_tables.c:740 +#: utils/misc/guc_tables.c:716 msgid "Version and Platform Compatibility / Other Platforms and Clients" msgstr "Сумісність версій і платформ / Інші платформи і клієнти" -#: utils/misc/guc_tables.c:742 +#: utils/misc/guc_tables.c:717 msgid "Error Handling" msgstr "Обробка помилок" -#: utils/misc/guc_tables.c:744 +#: utils/misc/guc_tables.c:718 msgid "Preset Options" msgstr "Визначені параметри" -#: utils/misc/guc_tables.c:746 +#: utils/misc/guc_tables.c:719 msgid "Customized Options" msgstr "Настроєні параметри" -#: utils/misc/guc_tables.c:748 +#: utils/misc/guc_tables.c:720 msgid "Developer Options" msgstr "Параметри для розробників" -#: utils/misc/guc_tables.c:805 +#: utils/misc/guc_tables.c:775 msgid "Enables the planner's use of sequential-scan plans." msgstr "Дає змогу планувальнику використати плани послідовного сканування." -#: utils/misc/guc_tables.c:815 +#: utils/misc/guc_tables.c:785 msgid "Enables the planner's use of index-scan plans." msgstr "Дає змогу планувальнику використати плани сканування по індексу." -#: utils/misc/guc_tables.c:825 +#: utils/misc/guc_tables.c:795 msgid "Enables the planner's use of index-only-scan plans." msgstr "Дає змогу планувальнику використати плани сканування лише індекса." -#: utils/misc/guc_tables.c:835 +#: utils/misc/guc_tables.c:805 msgid "Enables the planner's use of bitmap-scan plans." msgstr "Дає змогу планувальнику використати плани сканування по точковому рисунку." -#: utils/misc/guc_tables.c:845 +#: utils/misc/guc_tables.c:815 msgid "Enables the planner's use of TID scan plans." msgstr "Дає змогу планувальнику використати плани сканування TID." -#: utils/misc/guc_tables.c:855 +#: utils/misc/guc_tables.c:825 msgid "Enables the planner's use of explicit sort steps." msgstr "Дає змогу планувальнику використати кроки з явним сортуванням." -#: utils/misc/guc_tables.c:865 +#: utils/misc/guc_tables.c:835 msgid "Enables the planner's use of incremental sort steps." msgstr "Дає змогу планувальнику використати кроки інкрементного сортування." -#: utils/misc/guc_tables.c:875 +#: utils/misc/guc_tables.c:845 msgid "Enables the planner's use of hashed aggregation plans." msgstr "Дає змогу планувальнику використовувати плани агрегації по гешу." -#: utils/misc/guc_tables.c:885 +#: utils/misc/guc_tables.c:855 msgid "Enables the planner's use of materialization." msgstr "Дає змогу планувальнику використовувати матеріалізацію." -#: utils/misc/guc_tables.c:895 +#: utils/misc/guc_tables.c:865 msgid "Enables the planner's use of memoization." msgstr "Дає змогу планувальнику використовувати мемоїзацію." -#: utils/misc/guc_tables.c:905 +#: utils/misc/guc_tables.c:875 msgid "Enables the planner's use of nested-loop join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання з вкладеними циклами." -#: utils/misc/guc_tables.c:915 +#: utils/misc/guc_tables.c:885 msgid "Enables the planner's use of merge join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання об'єднанням." -#: utils/misc/guc_tables.c:925 +#: utils/misc/guc_tables.c:895 msgid "Enables the planner's use of hash join plans." msgstr "Дає змогу планувальнику використовувати плани з'єднання по гешу." -#: utils/misc/guc_tables.c:935 +#: utils/misc/guc_tables.c:905 msgid "Enables the planner's use of gather merge plans." msgstr "Дає змогу планувальнику використовувати плани збору об'єднанням." -#: utils/misc/guc_tables.c:945 +#: utils/misc/guc_tables.c:915 msgid "Enables partitionwise join." msgstr "Вмикає з'єднання з урахуванням секціонування." -#: utils/misc/guc_tables.c:955 +#: utils/misc/guc_tables.c:925 msgid "Enables partitionwise aggregation and grouping." msgstr "Вмикає агрегацію і групування з урахуванням секціонування." -#: utils/misc/guc_tables.c:965 +#: utils/misc/guc_tables.c:935 msgid "Enables the planner's use of parallel append plans." msgstr "Дає змогу планувальнику використовувати плани паралельного додавання." -#: utils/misc/guc_tables.c:975 +#: utils/misc/guc_tables.c:945 msgid "Enables the planner's use of parallel hash plans." msgstr "Дає змогу планувальнику використовувати плани паралельного з'єднання по гешу." -#: utils/misc/guc_tables.c:985 +#: utils/misc/guc_tables.c:955 msgid "Enables plan-time and execution-time partition pruning." msgstr "Активує видалення розділу під час планування і виконання." -#: utils/misc/guc_tables.c:986 +#: utils/misc/guc_tables.c:956 msgid "Allows the query planner and executor to compare partition bounds to conditions in the query to determine which partitions must be scanned." msgstr "Дозволяє планувальнику і виконавцю запитів порівнювати границі секцій з умовами в запиті і визначати які секції повинні бути відскановані." -#: utils/misc/guc_tables.c:997 +#: utils/misc/guc_tables.c:967 msgid "Enables the planner's ability to produce plans that provide presorted input for ORDER BY / DISTINCT aggregate functions." msgstr "Дозволяє планувальнику створювати плани з попередньо відсортованими даними для агрегованих функцій ORDER BY / DISTINCT." -#: utils/misc/guc_tables.c:1000 +#: utils/misc/guc_tables.c:970 msgid "Allows the query planner to build plans that provide presorted input for aggregate functions with an ORDER BY / DISTINCT clause. When disabled, implicit sorts are always performed during execution." msgstr "Дозволяє планувальнику запитів створювати плани, які надають попередньо відсортовані дані для агрегованих функцій з реченням ORDER BY / DISTINCT. Якщо цей параметр вимкнено, під час виконання запиту завжди виконується неявне сортування." -#: utils/misc/guc_tables.c:1012 +#: utils/misc/guc_tables.c:982 msgid "Enables the planner's use of async append plans." msgstr "Дає змогу планувальнику використовувати асинхронні плани додавання." -#: utils/misc/guc_tables.c:1022 +#: utils/misc/guc_tables.c:992 +msgid "Enables reordering of GROUP BY keys." +msgstr "Дозволяє перевпорядкувати ключі GROUP BY." + +#: utils/misc/guc_tables.c:1002 msgid "Enables genetic query optimization." msgstr "Вмикає генетичну оптимізацію запитів." -#: utils/misc/guc_tables.c:1023 +#: utils/misc/guc_tables.c:1003 msgid "This algorithm attempts to do planning without exhaustive searching." msgstr "Цей алгоритм намагається побудувати план без повного перебору." -#: utils/misc/guc_tables.c:1034 +#: utils/misc/guc_tables.c:1017 msgid "Shows whether the current user is a superuser." msgstr "Показує, чи є поточний користувач суперкористувачем." -#: utils/misc/guc_tables.c:1044 +#: utils/misc/guc_tables.c:1032 +msgid "Allows running the ALTER SYSTEM command." +msgstr "Дозволяє запускати команду ALTER SYSTEM." + +#: utils/misc/guc_tables.c:1033 +msgid "Can be set to off for environments where global configuration changes should be made using a different method." +msgstr "" + +#: utils/misc/guc_tables.c:1043 msgid "Enables advertising the server via Bonjour." msgstr "Вмикає оголошення серверу через Bonjour." -#: utils/misc/guc_tables.c:1053 +#: utils/misc/guc_tables.c:1052 msgid "Collects transaction commit time." msgstr "Збирає час затвердження транзакцій." -#: utils/misc/guc_tables.c:1062 +#: utils/misc/guc_tables.c:1061 msgid "Enables SSL connections." msgstr "Вмикає SSL-підключення." -#: utils/misc/guc_tables.c:1071 -msgid "Controls whether ssl_passphrase_command is called during server reload." -msgstr "Визначає, чи викликається ssl_passphrase_command під час перезавантаження сервера." +#: utils/misc/guc_tables.c:1070 +msgid "Controls whether \"ssl_passphrase_command\" is called during server reload." +msgstr "" -#: utils/misc/guc_tables.c:1080 +#: utils/misc/guc_tables.c:1079 msgid "Give priority to server ciphersuite order." msgstr "Віддавати перевагу замовленню набору шрифтів сервера." -#: utils/misc/guc_tables.c:1089 +#: utils/misc/guc_tables.c:1088 msgid "Forces synchronization of updates to disk." msgstr "Примусова синхронізація оновлень на диск." -#: utils/misc/guc_tables.c:1090 +#: utils/misc/guc_tables.c:1089 msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "Сервер буде використовувати системний виклик fsync() в декількох місцях, щоб переконатися, що оновлення фізично записані на диск. Це гарантує, що кластер баз даних відновиться до узгодженого стану після аварійного завершення роботи операційної системи чи апаратного збою." -#: utils/misc/guc_tables.c:1101 +#: utils/misc/guc_tables.c:1100 msgid "Continues processing after a checksum failure." msgstr "Продовжує обробку після помилки контрольної суми." -#: utils/misc/guc_tables.c:1102 +#: utils/misc/guc_tables.c:1101 msgid "Detection of a checksum failure normally causes PostgreSQL to report an error, aborting the current transaction. Setting ignore_checksum_failure to true causes the system to ignore the failure (but still report a warning), and continue processing. This behavior could cause crashes or other serious problems. Only has an effect if checksums are enabled." msgstr "Виявляючи помилку контрольної суми, PostgreSQL звичайно повідомляє про помилку і перериває поточну транзакцію. Але якщо ignore_checksum_failure дорівнює true, система пропустить помилку (але видасть попередження) і продовжить обробку. Ця поведінка може бути причиною аварійних завершень роботи або інших серйозних проблем. Це має місце, лише якщо ввімкнен контроль цілосності сторінок." -#: utils/misc/guc_tables.c:1116 +#: utils/misc/guc_tables.c:1115 msgid "Continues processing past damaged page headers." msgstr "Продовжує обробку при пошкоджені заголовків сторінок." -#: utils/misc/guc_tables.c:1117 -msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." -msgstr "Виявляючи пошкоджений заголовок сторінки, PostgreSQL звичайно повідомляє про помилку, перериваючи поточну транзакцію. Але якщо zero_damaged_pages дорівнює true система видасть попередження, обнулить пошкоджену сторінку, і продовжить обробку. Ця поведінка знищить дані, а саме рядків в пошкодженій сторінці." +#: utils/misc/guc_tables.c:1116 +msgid "Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting \"zero_damaged_pages\" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page." +msgstr "" -#: utils/misc/guc_tables.c:1130 +#: utils/misc/guc_tables.c:1129 msgid "Continues recovery after an invalid pages failure." msgstr "Продовжує відновлення після помилки неприпустимих сторінок." -#: utils/misc/guc_tables.c:1131 -msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." -msgstr "Виявлення WAL записів, які мають посилання на неприпустимі сторінки під час відновлення, змушує PostgreSQL підняти помилку на рівень PANIC, перериваючи відновлення. Встановлення параметру ignore_invalid_pages на true змусить систему ігнорувати неприпустимі посилання на сторінки в WAL записах (але все ще буде повідомляти про попередження), і продовжити відновлення. Ця поведінка може викликати збої, втрату даних, розповсюдження або приховання пошкоджень, або інші серйозні проблеми. Діє лише під час відновлення або в режимі очікування." +#: utils/misc/guc_tables.c:1130 +msgid "Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode." +msgstr "" -#: utils/misc/guc_tables.c:1149 +#: utils/misc/guc_tables.c:1148 msgid "Writes full pages to WAL when first modified after a checkpoint." msgstr "Запис повних сторінок до WAL при першій зміні після контрольної точки." -#: utils/misc/guc_tables.c:1150 +#: utils/misc/guc_tables.c:1149 msgid "A page write in process during an operating system crash might be only partially written to disk. During recovery, the row changes stored in WAL are not enough to recover. This option writes pages when first modified after a checkpoint to WAL so full recovery is possible." msgstr "Сторінка, записувана під час аварійного завершення роботи операційної системи може бути записаною на диск частково. Під час відновлення, журналу змін рядків в WAL буде недостатньо для відновлення. Цей параметр записує повні сторінки після першої зміни після контрольної точки, тож відновлення можливе." -#: utils/misc/guc_tables.c:1163 +#: utils/misc/guc_tables.c:1162 msgid "Writes full pages to WAL when first modified after a checkpoint, even for a non-critical modification." msgstr "Записує повні сторінки до WAL при першій зміні після контрольної точки, навіть при некритичних змінах." -#: utils/misc/guc_tables.c:1173 +#: utils/misc/guc_tables.c:1172 msgid "Writes zeroes to new WAL files before first use." msgstr "Перед першим використанням записує нулі до нових файлів WAL." -#: utils/misc/guc_tables.c:1183 +#: utils/misc/guc_tables.c:1182 msgid "Recycles WAL files by renaming them." msgstr "Перезаписує файли WAL, перейменувавши їх." -#: utils/misc/guc_tables.c:1193 +#: utils/misc/guc_tables.c:1192 msgid "Logs each checkpoint." msgstr "Журналювати кожну контрольну точку." -#: utils/misc/guc_tables.c:1202 +#: utils/misc/guc_tables.c:1201 msgid "Logs each successful connection." msgstr "Журналювати кожне успішне підключення." -#: utils/misc/guc_tables.c:1211 +#: utils/misc/guc_tables.c:1210 +msgid "Logs details of pre-authentication connection handshake." +msgstr "" + +#: utils/misc/guc_tables.c:1220 msgid "Logs end of a session, including duration." msgstr "Журналювати кінець сеансу, зокрема тривалість." -#: utils/misc/guc_tables.c:1220 +#: utils/misc/guc_tables.c:1229 msgid "Logs each replication command." msgstr "Журналювати кожну команду реплікації." -#: utils/misc/guc_tables.c:1229 +#: utils/misc/guc_tables.c:1238 msgid "Shows whether the running server has assertion checks enabled." msgstr "Показує, чи активовані перевірки твердження на працюючому сервері." -#: utils/misc/guc_tables.c:1240 +#: utils/misc/guc_tables.c:1249 msgid "Terminate session on any error." msgstr "Припиняти сеанси при будь-якій помилці." -#: utils/misc/guc_tables.c:1249 +#: utils/misc/guc_tables.c:1258 msgid "Reinitialize server after backend crash." msgstr "Повторити ініціалізацію сервера, після внутрішнього аварійного завершення роботи." -#: utils/misc/guc_tables.c:1258 +#: utils/misc/guc_tables.c:1267 msgid "Remove temporary files after backend crash." msgstr "Видалити тимчасові файли після аварійного завершення роботи внутрішнього сервера." -#: utils/misc/guc_tables.c:1268 +#: utils/misc/guc_tables.c:1277 msgid "Send SIGABRT not SIGQUIT to child processes after backend crash." msgstr "Надсилати SIGABRT, а не SIGQUIT дочірнім процесам після аварійного завершення роботи бекенда." -#: utils/misc/guc_tables.c:1278 +#: utils/misc/guc_tables.c:1287 msgid "Send SIGABRT not SIGKILL to stuck child processes." msgstr "Надсилати SIGABRT, а не SIGKILL до дочірніх процесів, що застрягли." -#: utils/misc/guc_tables.c:1289 +#: utils/misc/guc_tables.c:1298 msgid "Logs the duration of each completed SQL statement." msgstr "Журналювати тривалість кожного виконаного SQL-оператора." -#: utils/misc/guc_tables.c:1298 +#: utils/misc/guc_tables.c:1307 msgid "Logs each query's parse tree." msgstr "Журналювати дерево аналізу для кожного запиту." -#: utils/misc/guc_tables.c:1307 +#: utils/misc/guc_tables.c:1316 msgid "Logs each query's rewritten parse tree." msgstr "Журналювати переписане дерево аналізу для кожного запиту." -#: utils/misc/guc_tables.c:1316 +#: utils/misc/guc_tables.c:1325 msgid "Logs each query's execution plan." msgstr "Журналювати план виконання кожного запиту." -#: utils/misc/guc_tables.c:1325 +#: utils/misc/guc_tables.c:1334 msgid "Indents parse and plan tree displays." msgstr "Відступи при відображенні дерев аналізу і плану запитів." -#: utils/misc/guc_tables.c:1334 +#: utils/misc/guc_tables.c:1343 msgid "Writes parser performance statistics to the server log." msgstr "Запис статистики продуктивності аналізу до запису сервера." -#: utils/misc/guc_tables.c:1343 +#: utils/misc/guc_tables.c:1352 msgid "Writes planner performance statistics to the server log." msgstr "Запис статистики продуктивності планувальника до запису сервера." -#: utils/misc/guc_tables.c:1352 +#: utils/misc/guc_tables.c:1361 msgid "Writes executor performance statistics to the server log." msgstr "Запис статистики продуктивності виконувача до запису сервера." -#: utils/misc/guc_tables.c:1361 +#: utils/misc/guc_tables.c:1370 msgid "Writes cumulative performance statistics to the server log." msgstr "Запис сукупної статистики продуктивності до запису сервера." -#: utils/misc/guc_tables.c:1371 +#: utils/misc/guc_tables.c:1380 msgid "Logs system resource usage statistics (memory and CPU) on various B-tree operations." msgstr "Журналювати статистику використання системних ресурсів (пам'яті і ЦП) при різноманітних операціях з B-tree." -#: utils/misc/guc_tables.c:1383 +#: utils/misc/guc_tables.c:1392 msgid "Collects information about executing commands." msgstr "Збирати інформацію про команди які виконуються." -#: utils/misc/guc_tables.c:1384 +#: utils/misc/guc_tables.c:1393 msgid "Enables the collection of information on the currently executing command of each session, along with the time at which that command began execution." msgstr "Активує збір інформації про поточні команди, які виконуються в кожному сеансі, разом з часом запуску команди." -#: utils/misc/guc_tables.c:1394 +#: utils/misc/guc_tables.c:1403 msgid "Collects statistics on database activity." msgstr "Збирати статистику про активність бази даних." -#: utils/misc/guc_tables.c:1403 +#: utils/misc/guc_tables.c:1412 msgid "Collects timing statistics for database I/O activity." msgstr "Збирати статистику за часом активності введення/виведення для бази даних." -#: utils/misc/guc_tables.c:1412 +#: utils/misc/guc_tables.c:1421 msgid "Collects timing statistics for WAL I/O activity." msgstr "Збирає статистику часу для активності вводу/виводу WAL." -#: utils/misc/guc_tables.c:1422 +#: utils/misc/guc_tables.c:1431 msgid "Updates the process title to show the active SQL command." msgstr "Оновлення виводить в заголовок процесу активну SQL-команду." -#: utils/misc/guc_tables.c:1423 +#: utils/misc/guc_tables.c:1432 msgid "Enables updating of the process title every time a new SQL command is received by the server." msgstr "Відображає в заголовку процеса кожну SQL-команду, отриману сервером." -#: utils/misc/guc_tables.c:1432 +#: utils/misc/guc_tables.c:1441 msgid "Starts the autovacuum subprocess." msgstr "Запускає підпроцес автоочистки." -#: utils/misc/guc_tables.c:1442 +#: utils/misc/guc_tables.c:1451 msgid "Generates debugging output for LISTEN and NOTIFY." msgstr "Генерує налагодженні повідомлення для LISTEN і NOTIFY." -#: utils/misc/guc_tables.c:1454 +#: utils/misc/guc_tables.c:1463 msgid "Emits information about lock usage." msgstr "Видає інформацію про блокування, які використовуються." -#: utils/misc/guc_tables.c:1464 +#: utils/misc/guc_tables.c:1473 msgid "Emits information about user lock usage." msgstr "Видає інформацію про користувацькі блокування, які використовуються." -#: utils/misc/guc_tables.c:1474 +#: utils/misc/guc_tables.c:1483 msgid "Emits information about lightweight lock usage." msgstr "Видає інформацію про спрощені блокування, які використовуються." -#: utils/misc/guc_tables.c:1484 +#: utils/misc/guc_tables.c:1493 msgid "Dumps information about all current locks when a deadlock timeout occurs." msgstr "Виводить інформацію про всі поточні блокування, при тайм-ауті взаємного блокування." -#: utils/misc/guc_tables.c:1496 +#: utils/misc/guc_tables.c:1505 msgid "Logs long lock waits." msgstr "Журналювати тривалі очікування в блокуваннях." -#: utils/misc/guc_tables.c:1505 +#: utils/misc/guc_tables.c:1514 msgid "Logs standby recovery conflict waits." msgstr "Журналює очікування конфлікту відновлення." -#: utils/misc/guc_tables.c:1514 +#: utils/misc/guc_tables.c:1523 msgid "Logs the host name in the connection logs." msgstr "Журналювати ім’я хоста до записів підключення." -#: utils/misc/guc_tables.c:1515 +#: utils/misc/guc_tables.c:1524 msgid "By default, connection logs only show the IP address of the connecting host. If you want them to show the host name you can turn this on, but depending on your host name resolution setup it might impose a non-negligible performance penalty." msgstr "За замовчуванням, записи підключень показують лише IP-адреси хостів, які підключилися. Якщо ви хочете бачити імена хостів ви можете ввімкнути цей параметр, але врахуйте, що це може значно вплинути на продуктивність." -#: utils/misc/guc_tables.c:1526 +#: utils/misc/guc_tables.c:1535 msgid "Treats \"expr=NULL\" as \"expr IS NULL\"." msgstr "Вважати \"expr=NULL\" як \"expr IS NULL\"." -#: utils/misc/guc_tables.c:1527 +#: utils/misc/guc_tables.c:1536 msgid "When turned on, expressions of the form expr = NULL (or NULL = expr) are treated as expr IS NULL, that is, they return true if expr evaluates to the null value, and false otherwise. The correct behavior of expr = NULL is to always return null (unknown)." msgstr "Коли цей параметр ввімкнений, вирази форми expr = NULL (або NULL = expr) вважаються як expr IS NULL, тобто, повертають true, якщо expr співпадає зі значенням null, і false в іншому разі. Правильна поведінка expr = NULL - завжди повертати null (невідомо)." -#: utils/misc/guc_tables.c:1539 -msgid "Enables per-database user names." -msgstr "Вмикає зв'язування імен користувачів з базами даних." - #: utils/misc/guc_tables.c:1548 msgid "Sets the default read-only status of new transactions." msgstr "Встановлює статус \"лише читання\" за замовчуванням для нових транзакцій." @@ -27684,1366 +28761,1440 @@ msgid "Sets whether to include or exclude transaction with recovery target." msgstr "Встановлює, включати чи виключати транзакції з метою відновлення." #: utils/misc/guc_tables.c:1778 +msgid "Starts the WAL summarizer process to enable incremental backup." +msgstr "Запускає процес підсумовування WAL, щоб увімкнути інкрементне резервне копіювання." + +#: utils/misc/guc_tables.c:1788 msgid "Allows connections and queries during recovery." msgstr "Дозволяє підключення і запити під час відновлення." -#: utils/misc/guc_tables.c:1788 +#: utils/misc/guc_tables.c:1798 msgid "Allows feedback from a hot standby to the primary that will avoid query conflicts." msgstr "Дозволяє зворотній зв'язок серверу hot standby з основним для уникнення конфліктів запитів." -#: utils/misc/guc_tables.c:1798 +#: utils/misc/guc_tables.c:1808 msgid "Shows whether hot standby is currently active." msgstr "Показує, чи hot standby наразі активний." -#: utils/misc/guc_tables.c:1809 +#: utils/misc/guc_tables.c:1819 msgid "Allows modifications of the structure of system tables." msgstr "Дозволяє модифікації структури системних таблиць." -#: utils/misc/guc_tables.c:1820 +#: utils/misc/guc_tables.c:1830 msgid "Disables reading from system indexes." msgstr "Вимикає читання з системних індексів." -#: utils/misc/guc_tables.c:1821 +#: utils/misc/guc_tables.c:1831 msgid "It does not prevent updating the indexes, so it is safe to use. The worst consequence is slowness." msgstr "Це не забороняє оновлення індексів, тож дана поведінка безпечна. Найгірший наслідок це сповільнення." -#: utils/misc/guc_tables.c:1832 +#: utils/misc/guc_tables.c:1842 msgid "Allows tablespaces directly inside pg_tblspc, for testing." msgstr "Дозволяє табличні простори безпосередньо всередині pg_tblspc, для тестування." -#: utils/misc/guc_tables.c:1843 +#: utils/misc/guc_tables.c:1853 msgid "Enables backward compatibility mode for privilege checks on large objects." msgstr "Вмикає режим зворотньої сумісності при перевірці прав для великих об'єктів." -#: utils/misc/guc_tables.c:1844 +#: utils/misc/guc_tables.c:1854 msgid "Skips privilege checks when reading or modifying large objects, for compatibility with PostgreSQL releases prior to 9.0." msgstr "Пропускає перевірки прав при читанні або зміненні великих об'єктів, для сумісності з версіями PostgreSQL до 9.0." -#: utils/misc/guc_tables.c:1854 +#: utils/misc/guc_tables.c:1864 msgid "When generating SQL fragments, quote all identifiers." msgstr "Генеруючи SQL-фрагменти, включати всі ідентифікатори в лапки." -#: utils/misc/guc_tables.c:1864 +#: utils/misc/guc_tables.c:1874 msgid "Shows whether data checksums are turned on for this cluster." msgstr "Показує, чи ввімкнена контрольна сума даних для цього кластеру." -#: utils/misc/guc_tables.c:1875 +#: utils/misc/guc_tables.c:1885 msgid "Add sequence number to syslog messages to avoid duplicate suppression." msgstr "Додає послідовне число до повідомлень syslog, щоб уникнути ігнорування дублікатів." -#: utils/misc/guc_tables.c:1885 +#: utils/misc/guc_tables.c:1895 msgid "Split messages sent to syslog by lines and to fit into 1024 bytes." msgstr "Розділяє повідомлення, які передаються в syslog, рядками розміром не більше 1024 байт." -#: utils/misc/guc_tables.c:1895 +#: utils/misc/guc_tables.c:1905 msgid "Controls whether Gather and Gather Merge also run subplans." msgstr "Визначає, чи вузли зібрання і зібрання об'єднанням також виконають підплани." -#: utils/misc/guc_tables.c:1896 +#: utils/misc/guc_tables.c:1906 msgid "Should gather nodes also run subplans or just gather tuples?" msgstr "Чи повинні вузли збірки також виконувати підплани або тільки збирати кортежі?" -#: utils/misc/guc_tables.c:1906 +#: utils/misc/guc_tables.c:1916 msgid "Allow JIT compilation." msgstr "Дозволити JIT-компіляцію." -#: utils/misc/guc_tables.c:1917 +#: utils/misc/guc_tables.c:1927 msgid "Register JIT-compiled functions with debugger." msgstr "Зареєструйте функції JIT-compiled за допомогою налагоджувача." -#: utils/misc/guc_tables.c:1934 +#: utils/misc/guc_tables.c:1944 msgid "Write out LLVM bitcode to facilitate JIT debugging." msgstr "Виводити бітовий код LLVM для полегшення налагодження JIT." -#: utils/misc/guc_tables.c:1945 +#: utils/misc/guc_tables.c:1955 msgid "Allow JIT compilation of expressions." msgstr "Дозволити JIT-компіляцію виразів." -#: utils/misc/guc_tables.c:1956 +#: utils/misc/guc_tables.c:1966 msgid "Register JIT-compiled functions with perf profiler." msgstr "Зареєструйте функції JIT-compiled за допомогою профілювальника perf." -#: utils/misc/guc_tables.c:1973 +#: utils/misc/guc_tables.c:1983 msgid "Allow JIT compilation of tuple deforming." msgstr "Дозволити JIT-компіляцію перетворення кортежів." -#: utils/misc/guc_tables.c:1984 +#: utils/misc/guc_tables.c:1994 msgid "Whether to continue running after a failure to sync data files." msgstr "Чи продовжувати виконання після помилки синхронізації файлів даних на диску." -#: utils/misc/guc_tables.c:1993 +#: utils/misc/guc_tables.c:2003 msgid "Sets whether a WAL receiver should create a temporary replication slot if no permanent slot is configured." msgstr "Встановлює чи повинен одержувач WAL створити тимчасовий слот реплікації, якщо постійний слот не налаштований." -#: utils/misc/guc_tables.c:2011 +#: utils/misc/guc_tables.c:2012 +msgid "Enables event triggers." +msgstr "Вмикає тригери подій." + +#: utils/misc/guc_tables.c:2013 +msgid "When enabled, event triggers will fire for all applicable statements." +msgstr "Якщо увімкнено, тригери подій спрацьовуватимуть для всіх застосовних операторів." + +#: utils/misc/guc_tables.c:2022 +msgid "Enables a physical standby to synchronize logical failover replication slots from the primary server." +msgstr "" + +#: utils/misc/guc_tables.c:2040 msgid "Sets the amount of time to wait before forcing a switch to the next WAL file." msgstr "Встановлює кількість часу очікування перед примусовим переходом на наступний файл WAL." -#: utils/misc/guc_tables.c:2022 +#: utils/misc/guc_tables.c:2051 msgid "Sets the amount of time to wait after authentication on connection startup." msgstr "Встановлює кількість часу для очікування після автенифікації під час запуску з'єднання." -#: utils/misc/guc_tables.c:2024 utils/misc/guc_tables.c:2658 +#: utils/misc/guc_tables.c:2053 utils/misc/guc_tables.c:2780 msgid "This allows attaching a debugger to the process." msgstr "Це дозволяє підключити налагоджувач до процесу." -#: utils/misc/guc_tables.c:2033 +#: utils/misc/guc_tables.c:2062 msgid "Sets the default statistics target." msgstr "Встановлює мету статистики за замовчуванням." -#: utils/misc/guc_tables.c:2034 +#: utils/misc/guc_tables.c:2063 msgid "This applies to table columns that have not had a column-specific target set via ALTER TABLE SET STATISTICS." msgstr "Це застосовується до стовпців таблиці, для котрих мета статистики не встановлена явно через ALTER TABLE SET STATISTICS." -#: utils/misc/guc_tables.c:2043 +#: utils/misc/guc_tables.c:2072 msgid "Sets the FROM-list size beyond which subqueries are not collapsed." msgstr "Встановлює розмір для списку FROM, при перевищені котрого вкладені запити не згортаються." -#: utils/misc/guc_tables.c:2045 +#: utils/misc/guc_tables.c:2074 msgid "The planner will merge subqueries into upper queries if the resulting FROM list would have no more than this many items." msgstr "Планувальник об'єднає вкладені запити з зовнішніми, якщо в отриманому списку FROM буде не більше заданої кількості елементів." -#: utils/misc/guc_tables.c:2056 +#: utils/misc/guc_tables.c:2085 msgid "Sets the FROM-list size beyond which JOIN constructs are not flattened." msgstr "Встановлює розмір для списку FROM, при перевищенні котрого конструкції JOIN не подаються у вигляді рядка." -#: utils/misc/guc_tables.c:2058 +#: utils/misc/guc_tables.c:2087 msgid "The planner will flatten explicit JOIN constructs into lists of FROM items whenever a list of no more than this many items would result." msgstr "Планувальник буде подавати у вигляді рядка явні конструкції JOIN в списки FROM, допоки в отриманому списку не більше заданої кількості елементів." -#: utils/misc/guc_tables.c:2069 +#: utils/misc/guc_tables.c:2098 msgid "Sets the threshold of FROM items beyond which GEQO is used." msgstr "Встановлює граничне значення для елементів FROM, при перевищенні котрого використовується GEQO." -#: utils/misc/guc_tables.c:2079 +#: utils/misc/guc_tables.c:2108 msgid "GEQO: effort is used to set the default for other GEQO parameters." msgstr "GEQO: зусилля використовувались щоб встановити значення за замовчуванням для інших параметрів GEQO." -#: utils/misc/guc_tables.c:2089 +#: utils/misc/guc_tables.c:2118 msgid "GEQO: number of individuals in the population." msgstr "GEQO: кількість користувачів у популяції." -#: utils/misc/guc_tables.c:2090 utils/misc/guc_tables.c:2100 +#: utils/misc/guc_tables.c:2119 utils/misc/guc_tables.c:2129 msgid "Zero selects a suitable default value." msgstr "Нуль вибирає придатне значення за замовчуванням." -#: utils/misc/guc_tables.c:2099 +#: utils/misc/guc_tables.c:2128 msgid "GEQO: number of iterations of the algorithm." msgstr "GEQO: кількість ітерацій в алгоритмі." -#: utils/misc/guc_tables.c:2111 +#: utils/misc/guc_tables.c:2140 msgid "Sets the time to wait on a lock before checking for deadlock." msgstr "Встановлює час очікування в блокуванні до перевірки на взаємне блокування." -#: utils/misc/guc_tables.c:2122 +#: utils/misc/guc_tables.c:2151 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing archived WAL data." msgstr "Встановлює максимальну затримку до скасування запитів, коли hot standby сервер обробляє архівні дані WAL." -#: utils/misc/guc_tables.c:2133 +#: utils/misc/guc_tables.c:2162 msgid "Sets the maximum delay before canceling queries when a hot standby server is processing streamed WAL data." msgstr "Встановлює максимальну затримку до скасування запитів, коли hot standby сервер обробляє дані WAL з потоку." -#: utils/misc/guc_tables.c:2144 +#: utils/misc/guc_tables.c:2173 msgid "Sets the minimum delay for applying changes during recovery." msgstr "Встановлює мінімальну затримку для застосування змін під час відновлення." -#: utils/misc/guc_tables.c:2155 +#: utils/misc/guc_tables.c:2184 msgid "Sets the maximum interval between WAL receiver status reports to the sending server." msgstr "Встановлює максимальний інтервал між звітами про стан одержувачів WAL для серверу надсилання." -#: utils/misc/guc_tables.c:2166 +#: utils/misc/guc_tables.c:2195 msgid "Sets the maximum wait time to receive data from the sending server." msgstr "Встановлює максимальний час очікування для отримання даних з серверу надсилання." -#: utils/misc/guc_tables.c:2177 +#: utils/misc/guc_tables.c:2206 msgid "Sets the maximum number of concurrent connections." msgstr "Встановлює максимальну кілкість паралельних підключень." -#: utils/misc/guc_tables.c:2188 +#: utils/misc/guc_tables.c:2217 msgid "Sets the number of connection slots reserved for superusers." msgstr "Встановлює кількість зарезервованих слотів підключень для суперкористувачів." -#: utils/misc/guc_tables.c:2198 +#: utils/misc/guc_tables.c:2227 msgid "Sets the number of connection slots reserved for roles with privileges of pg_use_reserved_connections." msgstr "Встановлює кількість слотів підключення, зарезервованих для ролей з правами pg_use_reserved_connections." -#: utils/misc/guc_tables.c:2209 +#: utils/misc/guc_tables.c:2238 msgid "Amount of dynamic shared memory reserved at startup." msgstr "Кількість динамічної спільної пам'яті, зарезервованої під час запуску." -#: utils/misc/guc_tables.c:2224 +#: utils/misc/guc_tables.c:2253 msgid "Sets the number of shared memory buffers used by the server." msgstr "Встановлює кількість буферів спільної пам'яті, використовуваних сервером." -#: utils/misc/guc_tables.c:2235 +#: utils/misc/guc_tables.c:2264 msgid "Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum." msgstr "Встановлює розмір буферного пулу для VACUUM, ANALYZE та автоочистки." -#: utils/misc/guc_tables.c:2246 +#: utils/misc/guc_tables.c:2275 msgid "Shows the size of the server's main shared memory area (rounded up to the nearest MB)." msgstr "Показує розмір основної спільної пам'яті сервера (округлення до найближчого МБ)." -#: utils/misc/guc_tables.c:2257 +#: utils/misc/guc_tables.c:2286 msgid "Shows the number of huge pages needed for the main shared memory area." msgstr "Показує кількість величезних сторінок, потрібних для основної області спільної пам'яті." -#: utils/misc/guc_tables.c:2258 +#: utils/misc/guc_tables.c:2287 msgid "-1 indicates that the value could not be determined." msgstr "-1 вказує на те, що значення не може бути визначене." -#: utils/misc/guc_tables.c:2268 +#: utils/misc/guc_tables.c:2297 +msgid "Sets the size of the dedicated buffer pool used for the commit timestamp cache." +msgstr "" + +#: utils/misc/guc_tables.c:2298 utils/misc/guc_tables.c:2353 +#: utils/misc/guc_tables.c:2364 +msgid "Specify 0 to have this value determined as a fraction of shared_buffers." +msgstr "" + +#: utils/misc/guc_tables.c:2308 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact member cache." +msgstr "" + +#: utils/misc/guc_tables.c:2319 +msgid "Sets the size of the dedicated buffer pool used for the MultiXact offset cache." +msgstr "" + +#: utils/misc/guc_tables.c:2330 +msgid "Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache." +msgstr "" + +#: utils/misc/guc_tables.c:2341 +msgid "Sets the size of the dedicated buffer pool used for the serializable transaction cache." +msgstr "" + +#: utils/misc/guc_tables.c:2352 +msgid "Sets the size of the dedicated buffer pool used for the subtransaction cache." +msgstr "" + +#: utils/misc/guc_tables.c:2363 +msgid "Sets the size of the dedicated buffer pool used for the transaction status cache." +msgstr "" + +#: utils/misc/guc_tables.c:2374 msgid "Sets the maximum number of temporary buffers used by each session." msgstr "Встановлює максимальну кількість використовуваних тимчасових буферів, для кожного сеансу." -#: utils/misc/guc_tables.c:2279 +#: utils/misc/guc_tables.c:2385 msgid "Sets the TCP port the server listens on." msgstr "Встановлює TCP-порт для роботи серверу." -#: utils/misc/guc_tables.c:2289 +#: utils/misc/guc_tables.c:2395 msgid "Sets the access permissions of the Unix-domain socket." msgstr "Встановлює дозволи на доступ для Unix-сокету." -#: utils/misc/guc_tables.c:2290 +#: utils/misc/guc_tables.c:2396 msgid "Unix-domain sockets use the usual Unix file system permission set. The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Для Unix-сокетів використовується звичний набір дозволів, як у файлових системах Unix. Очікується, що значення параметра вказується у формі, яка прийнята для системних викликів chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc_tables.c:2304 +#: utils/misc/guc_tables.c:2410 msgid "Sets the file permissions for log files." msgstr "Встановлює права дозволу для файлів журналу." -#: utils/misc/guc_tables.c:2305 +#: utils/misc/guc_tables.c:2411 msgid "The parameter value is expected to be a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Очікується, що значення параметру буде вказано в числовому форматі, який сприймається системними викликами chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc_tables.c:2319 +#: utils/misc/guc_tables.c:2425 msgid "Shows the mode of the data directory." msgstr "Показує режим каталогу даних." -#: utils/misc/guc_tables.c:2320 +#: utils/misc/guc_tables.c:2426 msgid "The parameter value is a numeric mode specification in the form accepted by the chmod and umask system calls. (To use the customary octal format the number must start with a 0 (zero).)" msgstr "Значення параметру вказується в числовому форматі, який сприймається системними викликами chmod і umask. (Щоб використати звичний вісімковий формат, додайте в початок 0 (нуль).)" -#: utils/misc/guc_tables.c:2333 +#: utils/misc/guc_tables.c:2439 msgid "Sets the maximum memory to be used for query workspaces." msgstr "Встановлює максимальний об'єм пам'яті для робочих просторів запитів." -#: utils/misc/guc_tables.c:2334 +#: utils/misc/guc_tables.c:2440 msgid "This much memory can be used by each internal sort operation and hash table before switching to temporary disk files." msgstr "Такий об'єм пам'яті може використовуватись кожною внутрішньою операцією сортування і таблицею гешування до переключення на тимчасові файли на диску." -#: utils/misc/guc_tables.c:2346 +#: utils/misc/guc_tables.c:2457 msgid "Sets the maximum memory to be used for maintenance operations." msgstr "Встановлює максимальний об'єм пам'яті для операцій по обслуговуванню." -#: utils/misc/guc_tables.c:2347 +#: utils/misc/guc_tables.c:2458 msgid "This includes operations such as VACUUM and CREATE INDEX." msgstr "Це включає такі операції як VACUUM і CREATE INDEX." -#: utils/misc/guc_tables.c:2357 +#: utils/misc/guc_tables.c:2468 msgid "Sets the maximum memory to be used for logical decoding." msgstr "Встановлює максимальний об'єм пам'яті для логічного декодування." -#: utils/misc/guc_tables.c:2358 +#: utils/misc/guc_tables.c:2469 msgid "This much memory can be used by each internal reorder buffer before spilling to disk." msgstr "Ця велика кількість пам'яті може бути використана кожним внутрішнім перевпорядковуючим буфером перед записом на диск." -#: utils/misc/guc_tables.c:2374 +#: utils/misc/guc_tables.c:2485 msgid "Sets the maximum stack depth, in kilobytes." msgstr "Встановлює максимальну глибину стека, в КБ." -#: utils/misc/guc_tables.c:2385 +#: utils/misc/guc_tables.c:2496 msgid "Limits the total size of all temporary files used by each process." msgstr "Обмежує загальний розмір всіх тимчасових файлів, які використовуються кожним процесом." -#: utils/misc/guc_tables.c:2386 +#: utils/misc/guc_tables.c:2497 msgid "-1 means no limit." msgstr "-1 вимикає обмеження." -#: utils/misc/guc_tables.c:2396 +#: utils/misc/guc_tables.c:2507 msgid "Vacuum cost for a page found in the buffer cache." msgstr "Вартість очистки для сторінки, яка була знайдена в буферному кеші." -#: utils/misc/guc_tables.c:2406 +#: utils/misc/guc_tables.c:2517 msgid "Vacuum cost for a page not found in the buffer cache." msgstr "Вартість очистки для сторінки, яка не була знайдена в буферному кеші." -#: utils/misc/guc_tables.c:2416 +#: utils/misc/guc_tables.c:2527 msgid "Vacuum cost for a page dirtied by vacuum." msgstr "Вартість очистки для сторінки, яка не була \"брудною\"." -#: utils/misc/guc_tables.c:2426 +#: utils/misc/guc_tables.c:2537 msgid "Vacuum cost amount available before napping." msgstr "Кількість доступних витрат вакууму перед від'єднанням." -#: utils/misc/guc_tables.c:2436 +#: utils/misc/guc_tables.c:2547 msgid "Vacuum cost amount available before napping, for autovacuum." msgstr "Кількість доступних витрат вакууму перед від'єднанням, для автовакууму." -#: utils/misc/guc_tables.c:2446 +#: utils/misc/guc_tables.c:2557 msgid "Sets the maximum number of simultaneously open files for each server process." msgstr "Встановлює максимальну кількість одночасно відкритих файлів для кожного процесу." -#: utils/misc/guc_tables.c:2459 +#: utils/misc/guc_tables.c:2570 msgid "Sets the maximum number of simultaneously prepared transactions." msgstr "Встановлює максимальну кількість одночасно підготовлених транзакцій." -#: utils/misc/guc_tables.c:2470 +#: utils/misc/guc_tables.c:2581 msgid "Sets the minimum OID of tables for tracking locks." msgstr "Встановлює мінімальний OID таблиць, для яких відстежуються блокування." -#: utils/misc/guc_tables.c:2471 +#: utils/misc/guc_tables.c:2582 msgid "Is used to avoid output on system tables." msgstr "Використовується для уникнення системних таблиць." -#: utils/misc/guc_tables.c:2480 +#: utils/misc/guc_tables.c:2591 msgid "Sets the OID of the table with unconditionally lock tracing." msgstr "Встановлює OID таблиці для безумовного трасування блокувань." -#: utils/misc/guc_tables.c:2492 +#: utils/misc/guc_tables.c:2603 msgid "Sets the maximum allowed duration of any statement." msgstr "Встановлює максимальну тривалість для будь-якого оператору." -#: utils/misc/guc_tables.c:2493 utils/misc/guc_tables.c:2504 -#: utils/misc/guc_tables.c:2515 utils/misc/guc_tables.c:2526 +#: utils/misc/guc_tables.c:2604 utils/misc/guc_tables.c:2615 +#: utils/misc/guc_tables.c:2626 utils/misc/guc_tables.c:2637 +#: utils/misc/guc_tables.c:2648 msgid "A value of 0 turns off the timeout." msgstr "Значення 0 (нуль) вимикає тайм-аут." -#: utils/misc/guc_tables.c:2503 +#: utils/misc/guc_tables.c:2614 msgid "Sets the maximum allowed duration of any wait for a lock." msgstr "Встановлює максимально дозволену тривалість очікування блокувань." -#: utils/misc/guc_tables.c:2514 +#: utils/misc/guc_tables.c:2625 msgid "Sets the maximum allowed idle time between queries, when in a transaction." msgstr "Встановлює максимально дозволений час очікування між запитами під час транзакції." -#: utils/misc/guc_tables.c:2525 +#: utils/misc/guc_tables.c:2636 +msgid "Sets the maximum allowed duration of any transaction within a session (not a prepared transaction)." +msgstr "" + +#: utils/misc/guc_tables.c:2647 msgid "Sets the maximum allowed idle time between queries, when not in a transaction." msgstr "Встановлює максимально дозволений час очікування між запитами поза транзакцією." -#: utils/misc/guc_tables.c:2536 +#: utils/misc/guc_tables.c:2658 msgid "Minimum age at which VACUUM should freeze a table row." msgstr "Мінімальний вік рядків таблиці, при котрому VACUUM зможе їх закріпити." -#: utils/misc/guc_tables.c:2546 +#: utils/misc/guc_tables.c:2668 msgid "Age at which VACUUM should scan whole table to freeze tuples." msgstr "Вік, при котрому VACUUM повинен сканувати всю таблицю, щоб закріпити кортежі." -#: utils/misc/guc_tables.c:2556 +#: utils/misc/guc_tables.c:2678 msgid "Minimum age at which VACUUM should freeze a MultiXactId in a table row." msgstr "Мінімальний вік, при котрому VACUUM повинен закріпити MultiXactId в рядку таблиці." -#: utils/misc/guc_tables.c:2566 +#: utils/misc/guc_tables.c:2688 msgid "Multixact age at which VACUUM should scan whole table to freeze tuples." msgstr "Вік Multixact, при котрому VACUUM повинен сканувати всю таблицю, щоб закріпити кортежі." -#: utils/misc/guc_tables.c:2576 +#: utils/misc/guc_tables.c:2698 msgid "Age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Вік, у якому VACUUM повинен спрацювати безпечно, щоб уникнути зациклення." -#: utils/misc/guc_tables.c:2585 +#: utils/misc/guc_tables.c:2707 msgid "Multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage." msgstr "Вік Multixact, у якому VACUUM повинен спрацювати безпечно, щоб уникнути зациклення." -#: utils/misc/guc_tables.c:2598 +#: utils/misc/guc_tables.c:2720 msgid "Sets the maximum number of locks per transaction." msgstr "Встановлює максимальну кілкість блокувань на транзакцію." -#: utils/misc/guc_tables.c:2599 -msgid "The shared lock table is sized on the assumption that at most max_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "Розмір спільної таблиці блокування визначається з припущення, що в будь-який момент часу потрібно заблокувати не більше max_locks_per_transaction об'єктів на один серверний процес або підготовлену транзакцію." +#: utils/misc/guc_tables.c:2721 +msgid "The shared lock table is sized on the assumption that at most \"max_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "" -#: utils/misc/guc_tables.c:2610 +#: utils/misc/guc_tables.c:2732 msgid "Sets the maximum number of predicate locks per transaction." msgstr "Встановлює максимальну кількість предикатних блокувань на транзакцію." -#: utils/misc/guc_tables.c:2611 -msgid "The shared predicate lock table is sized on the assumption that at most max_pred_locks_per_transaction objects per server process or prepared transaction will need to be locked at any one time." -msgstr "Розмір спільної таблиці блокування предикатів визначається з припущення, що за один раз потрібно заблокувати не більше max_pred_locks_per_transaction об'єктів на один серверний процес або підготовлену транзакцію." +#: utils/misc/guc_tables.c:2733 +msgid "The shared predicate lock table is sized on the assumption that at most \"max_pred_locks_per_transaction\" objects per server process or prepared transaction will need to be locked at any one time." +msgstr "" -#: utils/misc/guc_tables.c:2622 +#: utils/misc/guc_tables.c:2744 msgid "Sets the maximum number of predicate-locked pages and tuples per relation." msgstr "Встановлює максимальну кількість сторінок і кортежів, блокованих предикатними блокуваннями в одному відношенні." -#: utils/misc/guc_tables.c:2623 +#: utils/misc/guc_tables.c:2745 msgid "If more than this total of pages and tuples in the same relation are locked by a connection, those locks are replaced by a relation-level lock." msgstr "Якщо одним підключенням блокується більше цієї загальної кількості сторінок і кортежів, ці блокування замінюються блокуванням на рівні відношення." -#: utils/misc/guc_tables.c:2633 +#: utils/misc/guc_tables.c:2755 msgid "Sets the maximum number of predicate-locked tuples per page." msgstr "Встановлює максимальну кількість кортежів, блокованих предикатними блокуваннями в одній сторінці." -#: utils/misc/guc_tables.c:2634 +#: utils/misc/guc_tables.c:2756 msgid "If more than this number of tuples on the same page are locked by a connection, those locks are replaced by a page-level lock." msgstr "Якщо одним підключенням блокується більше цієї кількості кортежів на одній і тій же сторінці, ці блокування замінюються блокуванням на рівні сторінки." -#: utils/misc/guc_tables.c:2644 +#: utils/misc/guc_tables.c:2766 msgid "Sets the maximum allowed time to complete client authentication." msgstr "Встановлює максимально допустимий час, за котрий клієнт повинен завершити автентифікацію." -#: utils/misc/guc_tables.c:2656 +#: utils/misc/guc_tables.c:2778 msgid "Sets the amount of time to wait before authentication on connection startup." msgstr "Встановлює кількість часу для очікування перед автенифікацією під час запуску з'єднання." -#: utils/misc/guc_tables.c:2668 +#: utils/misc/guc_tables.c:2790 +msgid "Sets the maximum number of allocated pages for NOTIFY / LISTEN queue." +msgstr "Встановлює максимальну кількість виділених сторінок для черги NOTIFY / LISTEN." + +#: utils/misc/guc_tables.c:2800 msgid "Buffer size for reading ahead in the WAL during recovery." msgstr "Розмір буфера для читання в WAL під час відновлення." -#: utils/misc/guc_tables.c:2669 +#: utils/misc/guc_tables.c:2801 msgid "Maximum distance to read ahead in the WAL to prefetch referenced data blocks." msgstr "Максимальна відстань до читання WAL, для попереднього отримання блоків, на які посилаються." -#: utils/misc/guc_tables.c:2679 +#: utils/misc/guc_tables.c:2811 msgid "Sets the size of WAL files held for standby servers." msgstr "Встановлює розмір WAL файлів, які потрібно зберігати для резервних серверів." -#: utils/misc/guc_tables.c:2690 +#: utils/misc/guc_tables.c:2822 msgid "Sets the minimum size to shrink the WAL to." msgstr "Встановлює мінімальний розмір WAL при стисканні." -#: utils/misc/guc_tables.c:2702 +#: utils/misc/guc_tables.c:2834 msgid "Sets the WAL size that triggers a checkpoint." msgstr "Встановлює розмір WAL, при котрому ініціюється контрольна точка." -#: utils/misc/guc_tables.c:2714 +#: utils/misc/guc_tables.c:2846 msgid "Sets the maximum time between automatic WAL checkpoints." msgstr "Встановлює максимальний час між автоматичними контрольними точками WAL." -#: utils/misc/guc_tables.c:2725 +#: utils/misc/guc_tables.c:2857 msgid "Sets the maximum time before warning if checkpoints triggered by WAL volume happen too frequently." msgstr "Встановлює максимальний час перед попередженням, якщо контрольні точки WAL відбуваються занадто часто." -#: utils/misc/guc_tables.c:2727 +#: utils/misc/guc_tables.c:2859 msgid "Write a message to the server log if checkpoints caused by the filling of WAL segment files happen more frequently than this amount of time. Zero turns off the warning." msgstr "Записує в журнал серверу повідомлення, якщо контрольні точки, викликані переповненням файлів сегментів контрольних точок, з'являються частіше ніж цей проміжок часу. Нуль вимикає попередження." -#: utils/misc/guc_tables.c:2740 utils/misc/guc_tables.c:2958 -#: utils/misc/guc_tables.c:2998 +#: utils/misc/guc_tables.c:2872 utils/misc/guc_tables.c:3090 +#: utils/misc/guc_tables.c:3144 msgid "Number of pages after which previously performed writes are flushed to disk." msgstr "Число сторінок, після досягнення якого раніше виконані операції запису скидаються на диск." -#: utils/misc/guc_tables.c:2751 +#: utils/misc/guc_tables.c:2883 msgid "Sets the number of disk-page buffers in shared memory for WAL." msgstr "Встановлює кількість буферів дискових сторінок в спільній пам'яті для WAL." -#: utils/misc/guc_tables.c:2762 +#: utils/misc/guc_tables.c:2884 +msgid "Specify -1 to have this value determined as a fraction of shared_buffers." +msgstr "" + +#: utils/misc/guc_tables.c:2894 msgid "Time between WAL flushes performed in the WAL writer." msgstr "Час між скиданням WAL в процесі, записуючого WAL." -#: utils/misc/guc_tables.c:2773 +#: utils/misc/guc_tables.c:2905 msgid "Amount of WAL written out by WAL writer that triggers a flush." msgstr "Обсяг WAL, оброблений пишучим WAL процесом, при котрому ініціюється скидання журналу на диск." -#: utils/misc/guc_tables.c:2784 +#: utils/misc/guc_tables.c:2916 msgid "Minimum size of new file to fsync instead of writing WAL." msgstr "Мінімальний розмір нового файлу для fsync замість записування WAL." -#: utils/misc/guc_tables.c:2795 +#: utils/misc/guc_tables.c:2927 msgid "Sets the maximum number of simultaneously running WAL sender processes." msgstr "Встановлює максимальну кількість одночасно працюючих процесів передачі WAL." -#: utils/misc/guc_tables.c:2806 +#: utils/misc/guc_tables.c:2938 msgid "Sets the maximum number of simultaneously defined replication slots." msgstr "Встановлює максимальну кількість одночасно визначених слотів реплікації." -#: utils/misc/guc_tables.c:2816 +#: utils/misc/guc_tables.c:2948 msgid "Sets the maximum WAL size that can be reserved by replication slots." msgstr "Встановлює максимальний розмір WAL, який може бути зарезервований слотами реплікації." -#: utils/misc/guc_tables.c:2817 +#: utils/misc/guc_tables.c:2949 msgid "Replication slots will be marked as failed, and segments released for deletion or recycling, if this much space is occupied by WAL on disk." msgstr "Слоти реплікації будуть позначені як невдалі, і розблоковані сегменти для видалення або переробки, якщо цю кількість місця на диску займає WAL." -#: utils/misc/guc_tables.c:2829 +#: utils/misc/guc_tables.c:2961 msgid "Sets the maximum time to wait for WAL replication." msgstr "Встановлює максимальний час очікування реплікації WAL." -#: utils/misc/guc_tables.c:2840 +#: utils/misc/guc_tables.c:2972 msgid "Sets the delay in microseconds between transaction commit and flushing WAL to disk." msgstr "Встановлює затримку в мілісекундах між затвердженням транзакцій і скиданням WAL на диск." -#: utils/misc/guc_tables.c:2852 -msgid "Sets the minimum number of concurrent open transactions required before performing commit_delay." -msgstr "Встановлює мінімальну кількість одночасно відкритих транзакцій, необхідних до виконання commit_delay." +#: utils/misc/guc_tables.c:2984 +msgid "Sets the minimum number of concurrent open transactions required before performing \"commit_delay\"." +msgstr "" -#: utils/misc/guc_tables.c:2863 +#: utils/misc/guc_tables.c:2995 msgid "Sets the number of digits displayed for floating-point values." msgstr "Встановлює кількість виведених чисел для значень з плаваючою точкою." -#: utils/misc/guc_tables.c:2864 +#: utils/misc/guc_tables.c:2996 msgid "This affects real, double precision, and geometric data types. A zero or negative parameter value is added to the standard number of digits (FLT_DIG or DBL_DIG as appropriate). Any value greater than zero selects precise output mode." msgstr "Це впливає на типи реальних, подвійної точності та геометричних даних. Нульове або від'ємне значення параметру додається до стандартної кількості цифр (FLT_DIG або DBL_DIG у відповідних випадках). Будь-яке значення більше нуля, обирає точний режим виводу." -#: utils/misc/guc_tables.c:2876 +#: utils/misc/guc_tables.c:3008 msgid "Sets the minimum execution time above which a sample of statements will be logged. Sampling is determined by log_statement_sample_rate." msgstr "Встановлює мінімальний час виконання, понад якого вибірка тверджень буде записуватись. Вибірка визначається log_statement_sample_rate." -#: utils/misc/guc_tables.c:2879 +#: utils/misc/guc_tables.c:3011 msgid "Zero logs a sample of all queries. -1 turns this feature off." msgstr "При 0 (нуль) фіксує зразок всіх запитів. -1 вимикає цю функцію." -#: utils/misc/guc_tables.c:2889 +#: utils/misc/guc_tables.c:3021 msgid "Sets the minimum execution time above which all statements will be logged." msgstr "Встановлює мінімальний час виконання, понад якого всі твердження будуть записуватись." -#: utils/misc/guc_tables.c:2891 +#: utils/misc/guc_tables.c:3023 msgid "Zero prints all queries. -1 turns this feature off." msgstr "При 0 (нуль) протоколюються всі запити. -1 вимикає цю функцію." -#: utils/misc/guc_tables.c:2901 +#: utils/misc/guc_tables.c:3033 msgid "Sets the minimum execution time above which autovacuum actions will be logged." msgstr "Встановлює мінімальний час виконання автоочистки, при перевищенні котрого ця дія фіксується в протоколі." -#: utils/misc/guc_tables.c:2903 +#: utils/misc/guc_tables.c:3035 msgid "Zero prints all actions. -1 turns autovacuum logging off." msgstr "При 0 (нуль) протоколюються всі дії автоочистки. -1 вимикає журналювання автоочистки." -#: utils/misc/guc_tables.c:2913 +#: utils/misc/guc_tables.c:3045 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements." msgstr "Встановлює максимальну довжину в байтах даних, що реєструються для значень параметрів під час журналювання операторів." -#: utils/misc/guc_tables.c:2915 utils/misc/guc_tables.c:2927 +#: utils/misc/guc_tables.c:3047 utils/misc/guc_tables.c:3059 msgid "-1 to print values in full." msgstr "-1 для друку значень в повному вигляді." -#: utils/misc/guc_tables.c:2925 +#: utils/misc/guc_tables.c:3057 msgid "Sets the maximum length in bytes of data logged for bind parameter values when logging statements, on error." msgstr "Встановлює максимальну довжину в байтах, даних, що реєструються для значень параметрів під час журналювання операторів, у разі помилки." -#: utils/misc/guc_tables.c:2937 +#: utils/misc/guc_tables.c:3069 msgid "Background writer sleep time between rounds." msgstr "Час призупинення в процесі фонового запису між підходами." -#: utils/misc/guc_tables.c:2948 +#: utils/misc/guc_tables.c:3080 msgid "Background writer maximum number of LRU pages to flush per round." msgstr "Максимальна кількість LRU-сторінок, які скидаються за один підхід, в процесі фонового запису." -#: utils/misc/guc_tables.c:2971 +#: utils/misc/guc_tables.c:3103 msgid "Number of simultaneous requests that can be handled efficiently by the disk subsystem." msgstr "Кількість одночасних запитів, які можуть бути ефективно оброблені дисковою підсистемою." -#: utils/misc/guc_tables.c:2985 -msgid "A variant of effective_io_concurrency that is used for maintenance work." -msgstr "Варіант effective_io_concurrency, що використовується для роботи з обслуговування." +#: utils/misc/guc_tables.c:3117 +msgid "A variant of \"effective_io_concurrency\" that is used for maintenance work." +msgstr "" -#: utils/misc/guc_tables.c:3011 +#: utils/misc/guc_tables.c:3132 +msgid "Limit on the size of data reads and writes." +msgstr "" + +#: utils/misc/guc_tables.c:3157 msgid "Maximum number of concurrent worker processes." msgstr "Максимальна кількість одночасно працюючих процесів." -#: utils/misc/guc_tables.c:3023 +#: utils/misc/guc_tables.c:3169 msgid "Maximum number of logical replication worker processes." msgstr "Максимальна кількість працюючих процесів логічної реплікації." -#: utils/misc/guc_tables.c:3035 +#: utils/misc/guc_tables.c:3181 msgid "Maximum number of table synchronization workers per subscription." msgstr "Максимальна кількість процесів синхронізації таблиць для однієї підписки." -#: utils/misc/guc_tables.c:3047 +#: utils/misc/guc_tables.c:3193 msgid "Maximum number of parallel apply workers per subscription." msgstr "Максимальна кількість паралельних процесів при підписці на одну підписку." -#: utils/misc/guc_tables.c:3057 +#: utils/misc/guc_tables.c:3203 msgid "Sets the amount of time to wait before forcing log file rotation." msgstr "Встановлює кількість часу для оновлення файлу журналу." -#: utils/misc/guc_tables.c:3069 +#: utils/misc/guc_tables.c:3215 msgid "Sets the maximum size a log file can reach before being rotated." msgstr "Встановлює максимальний розмір файлу журналу, якого він може досягнути, до ротації." -#: utils/misc/guc_tables.c:3081 +#: utils/misc/guc_tables.c:3227 msgid "Shows the maximum number of function arguments." msgstr "Показує максимальну кількість аргументів функції." -#: utils/misc/guc_tables.c:3092 +#: utils/misc/guc_tables.c:3238 msgid "Shows the maximum number of index keys." msgstr "Показує максимальну кількість ключів в індексі." -#: utils/misc/guc_tables.c:3103 +#: utils/misc/guc_tables.c:3249 msgid "Shows the maximum identifier length." msgstr "Показує максимальну довжину ідентифікатора." -#: utils/misc/guc_tables.c:3114 +#: utils/misc/guc_tables.c:3260 msgid "Shows the size of a disk block." msgstr "Показує розмір дискового блоку." -#: utils/misc/guc_tables.c:3125 +#: utils/misc/guc_tables.c:3271 msgid "Shows the number of pages per disk file." msgstr "Показує кількість сторінок в одному дисковому файлі." -#: utils/misc/guc_tables.c:3136 +#: utils/misc/guc_tables.c:3282 msgid "Shows the block size in the write ahead log." msgstr "Показує розмір блоку в журналі WAL." -#: utils/misc/guc_tables.c:3147 +#: utils/misc/guc_tables.c:3293 msgid "Sets the time to wait before retrying to retrieve WAL after a failed attempt." msgstr "Встановлює час очікування перед повторною спробою звертання до WAL після невдачі." -#: utils/misc/guc_tables.c:3159 +#: utils/misc/guc_tables.c:3305 msgid "Shows the size of write ahead log segments." msgstr "Показує розмір сегментів WAL." -#: utils/misc/guc_tables.c:3172 +#: utils/misc/guc_tables.c:3318 +msgid "Time for which WAL summary files should be kept." +msgstr "Час, протягом якого слід зберігати зведені файли WAL." + +#: utils/misc/guc_tables.c:3331 msgid "Time to sleep between autovacuum runs." msgstr "Час призупинення між запусками автоочистки." -#: utils/misc/guc_tables.c:3182 +#: utils/misc/guc_tables.c:3341 msgid "Minimum number of tuple updates or deletes prior to vacuum." msgstr "Мінімальна кількість оновлень або видалень кортежів перед очисткою." -#: utils/misc/guc_tables.c:3191 +#: utils/misc/guc_tables.c:3350 msgid "Minimum number of tuple inserts prior to vacuum, or -1 to disable insert vacuums." msgstr "Мінімальна кількість вставлених кортежів перед очищенням, або -1 щоб вимкнути очищення після вставки." -#: utils/misc/guc_tables.c:3200 +#: utils/misc/guc_tables.c:3359 msgid "Minimum number of tuple inserts, updates, or deletes prior to analyze." msgstr "Мінімальна кількість вставлень, оновлень або видалень кортежів перед аналізом." -#: utils/misc/guc_tables.c:3210 +#: utils/misc/guc_tables.c:3369 msgid "Age at which to autovacuum a table to prevent transaction ID wraparound." msgstr "Вік, при котрому необхідна автоочистка таблиці для запобігання зациклення ID транзакцій." -#: utils/misc/guc_tables.c:3222 +#: utils/misc/guc_tables.c:3381 msgid "Multixact age at which to autovacuum a table to prevent multixact wraparound." msgstr "Вік Multixact, при котрому необхідна автоочистка таблиці для запобігання зациклення multixact." -#: utils/misc/guc_tables.c:3232 +#: utils/misc/guc_tables.c:3391 msgid "Sets the maximum number of simultaneously running autovacuum worker processes." msgstr "Встановлює максимальну кількість одночасно працюючих робочих процесів автоочистки." -#: utils/misc/guc_tables.c:3242 +#: utils/misc/guc_tables.c:3401 msgid "Sets the maximum number of parallel processes per maintenance operation." msgstr "Встановлює максимальну кількість паралельних процесів на одну операцію обслуговування." -#: utils/misc/guc_tables.c:3252 +#: utils/misc/guc_tables.c:3411 msgid "Sets the maximum number of parallel processes per executor node." msgstr "Встановлює максимальну кількість паралельних процесів на вузол виконавця." -#: utils/misc/guc_tables.c:3263 +#: utils/misc/guc_tables.c:3422 msgid "Sets the maximum number of parallel workers that can be active at one time." msgstr "Встановлює максимальну кількість паралельних процесів, які можуть бути активні в один момент." -#: utils/misc/guc_tables.c:3274 +#: utils/misc/guc_tables.c:3433 msgid "Sets the maximum memory to be used by each autovacuum worker process." msgstr "Встановлює максимальний об'єм пам'яті для кожного робочого процесу автоочистки." -#: utils/misc/guc_tables.c:3285 -msgid "Time before a snapshot is too old to read pages changed after the snapshot was taken." -msgstr "Термін, після закінчення котрого знімок вважається занадто старим для отримання сторінок, змінених після створення знімку." - -#: utils/misc/guc_tables.c:3286 -msgid "A value of -1 disables this feature." -msgstr "Значення -1 вимикає цю функцію." - -#: utils/misc/guc_tables.c:3296 +#: utils/misc/guc_tables.c:3444 msgid "Time between issuing TCP keepalives." msgstr "Час між видачею TCP keepalives." -#: utils/misc/guc_tables.c:3297 utils/misc/guc_tables.c:3308 -#: utils/misc/guc_tables.c:3432 +#: utils/misc/guc_tables.c:3445 utils/misc/guc_tables.c:3456 +#: utils/misc/guc_tables.c:3580 msgid "A value of 0 uses the system default." msgstr "Значення 0 (нуль) використовує систему за замовчуванням." -#: utils/misc/guc_tables.c:3307 +#: utils/misc/guc_tables.c:3455 msgid "Time between TCP keepalive retransmits." msgstr "Час між повтореннями TCP keepalive." -#: utils/misc/guc_tables.c:3318 +#: utils/misc/guc_tables.c:3466 msgid "SSL renegotiation is no longer supported; this can only be 0." msgstr "Повторне узгодження SSL більше не підтримується; єдине допустиме значення - 0 (нуль)." -#: utils/misc/guc_tables.c:3329 +#: utils/misc/guc_tables.c:3477 msgid "Maximum number of TCP keepalive retransmits." msgstr "Максимальна кількість повторень TCP keepalive." -#: utils/misc/guc_tables.c:3330 +#: utils/misc/guc_tables.c:3478 msgid "Number of consecutive keepalive retransmits that can be lost before a connection is considered dead. A value of 0 uses the system default." msgstr "Кількість послідовних повторень keepalive може бути втрачена, перед тим як підключення буде вважатись \"мертвим\". Значення 0 (нуль) використовує систему за замовчуванням." -#: utils/misc/guc_tables.c:3341 +#: utils/misc/guc_tables.c:3489 msgid "Sets the maximum allowed result for exact search by GIN." msgstr "Встановлює максимально допустимий результат для точного пошуку з використанням GIN." -#: utils/misc/guc_tables.c:3352 +#: utils/misc/guc_tables.c:3500 msgid "Sets the planner's assumption about the total size of the data caches." msgstr "Встановлює планувальнику припустимий загальний розмір кешей даних." -#: utils/misc/guc_tables.c:3353 +#: utils/misc/guc_tables.c:3501 msgid "That is, the total size of the caches (kernel cache and shared buffers) used for PostgreSQL data files. This is measured in disk pages, which are normally 8 kB each." msgstr "Мається на увазі загальний розмір кешей (кеша ядра і спільних буферів), які використовуються для файлів даних PostgreSQL. Розмір задається в дискових сторінках, звичайно це 8 КБ." -#: utils/misc/guc_tables.c:3364 +#: utils/misc/guc_tables.c:3512 msgid "Sets the minimum amount of table data for a parallel scan." msgstr "Встановлює мінімальний обсяг даних в таблиці для паралельного сканування." -#: utils/misc/guc_tables.c:3365 +#: utils/misc/guc_tables.c:3513 msgid "If the planner estimates that it will read a number of table pages too small to reach this limit, a parallel scan will not be considered." msgstr "Якщо планувальник вважає, що він прочитає меньше сторінок таблиці, ніж задано цим обмеженням, паралельне сканування не буде розглядатись." -#: utils/misc/guc_tables.c:3375 +#: utils/misc/guc_tables.c:3523 msgid "Sets the minimum amount of index data for a parallel scan." msgstr "Встановлює мінімальний обсяг даних в індексі для паралельного сканування." -#: utils/misc/guc_tables.c:3376 +#: utils/misc/guc_tables.c:3524 msgid "If the planner estimates that it will read a number of index pages too small to reach this limit, a parallel scan will not be considered." msgstr "Якщо планувальник вважає, що він прочитає меньше сторінок індексу, ніж задано цим обмеженням, паралельне сканування не буде розглядатись." -#: utils/misc/guc_tables.c:3387 +#: utils/misc/guc_tables.c:3535 msgid "Shows the server version as an integer." msgstr "Показує версію сервера у вигляді цілого числа." -#: utils/misc/guc_tables.c:3398 +#: utils/misc/guc_tables.c:3546 msgid "Log the use of temporary files larger than this number of kilobytes." msgstr "Записує до журналу перевищення тимчасовими файлами заданого розміру в КБ." -#: utils/misc/guc_tables.c:3399 +#: utils/misc/guc_tables.c:3547 msgid "Zero logs all files. The default is -1 (turning this feature off)." msgstr "0 (нуль) фіксує всі файли. -1 вимикає цю функцію (за замовчуванням)." -#: utils/misc/guc_tables.c:3409 +#: utils/misc/guc_tables.c:3557 msgid "Sets the size reserved for pg_stat_activity.query, in bytes." msgstr "Встановлює розмір, зарезервований для pg_stat_activity.query, в байтах." -#: utils/misc/guc_tables.c:3420 +#: utils/misc/guc_tables.c:3568 msgid "Sets the maximum size of the pending list for GIN index." msgstr "Встановлює максимальний розмір списку-очікування для GIN-індексу." -#: utils/misc/guc_tables.c:3431 +#: utils/misc/guc_tables.c:3579 msgid "TCP user timeout." msgstr "Таймаут користувача TCP." -#: utils/misc/guc_tables.c:3442 +#: utils/misc/guc_tables.c:3590 msgid "The size of huge page that should be requested." msgstr "Розмір величезної сторінки, яку необхідно затребувати." -#: utils/misc/guc_tables.c:3453 +#: utils/misc/guc_tables.c:3601 msgid "Aggressively flush system caches for debugging purposes." msgstr "Агресивно скидати системні кеші для цілей налагодження." -#: utils/misc/guc_tables.c:3476 +#: utils/misc/guc_tables.c:3624 msgid "Sets the time interval between checks for disconnection while running queries." msgstr "Встановлює інтервал часу між перевірками відключення під час виконання запитів." -#: utils/misc/guc_tables.c:3487 +#: utils/misc/guc_tables.c:3635 msgid "Time between progress updates for long-running startup operations." msgstr "Час між оновленнями прогресу для довготриваючих операцій запуску." -#: utils/misc/guc_tables.c:3489 +#: utils/misc/guc_tables.c:3637 msgid "0 turns this feature off." msgstr "0 вимикає цю функцію." -#: utils/misc/guc_tables.c:3499 +#: utils/misc/guc_tables.c:3647 msgid "Sets the iteration count for SCRAM secret generation." msgstr "Встановлює кількість ітерацій для секретного генерування SCRAM." -#: utils/misc/guc_tables.c:3519 +#: utils/misc/guc_tables.c:3667 msgid "Sets the planner's estimate of the cost of a sequentially fetched disk page." msgstr "Встановлює для планувальника орієнтир вартості послідовного читання дискових сторінок." -#: utils/misc/guc_tables.c:3530 +#: utils/misc/guc_tables.c:3678 msgid "Sets the planner's estimate of the cost of a nonsequentially fetched disk page." msgstr "Встановлює для планувальника орієнтир вартості непослідовного читання дискових сторінок." -#: utils/misc/guc_tables.c:3541 +#: utils/misc/guc_tables.c:3689 msgid "Sets the planner's estimate of the cost of processing each tuple (row)." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного кортежу (рядка)." -#: utils/misc/guc_tables.c:3552 +#: utils/misc/guc_tables.c:3700 msgid "Sets the planner's estimate of the cost of processing each index entry during an index scan." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного елементу індекса під час сканування індексу." -#: utils/misc/guc_tables.c:3563 +#: utils/misc/guc_tables.c:3711 msgid "Sets the planner's estimate of the cost of processing each operator or function call." msgstr "Встановлює для планувальника орієнтир вартості обробки кожного оператора або виклику функції." -#: utils/misc/guc_tables.c:3574 +#: utils/misc/guc_tables.c:3722 msgid "Sets the planner's estimate of the cost of passing each tuple (row) from worker to leader backend." msgstr "Встановлює для планувальника приблизну вартість передавання кожного кортежу (рядка) від робочого процесу вихідному процесу." -#: utils/misc/guc_tables.c:3585 +#: utils/misc/guc_tables.c:3733 msgid "Sets the planner's estimate of the cost of starting up worker processes for parallel query." msgstr "Встановлює для планувальника орієнтир вартості запуску робочих процесів для паралельного запиту." -#: utils/misc/guc_tables.c:3597 +#: utils/misc/guc_tables.c:3745 msgid "Perform JIT compilation if query is more expensive." msgstr "Якщо запит дорожчий, виконується JIT-компіляція." -#: utils/misc/guc_tables.c:3598 +#: utils/misc/guc_tables.c:3746 msgid "-1 disables JIT compilation." msgstr "-1 вимикає JIT-компіляцію." -#: utils/misc/guc_tables.c:3608 +#: utils/misc/guc_tables.c:3756 msgid "Optimize JIT-compiled functions if query is more expensive." msgstr "Оптимізувати функції JIT-compiled, якщо запит дорожчий." -#: utils/misc/guc_tables.c:3609 +#: utils/misc/guc_tables.c:3757 msgid "-1 disables optimization." msgstr "-1 вимикає оптимізацію." -#: utils/misc/guc_tables.c:3619 +#: utils/misc/guc_tables.c:3767 msgid "Perform JIT inlining if query is more expensive." msgstr "Якщо запит дорожчий, виконується вбудовування JIT." -#: utils/misc/guc_tables.c:3620 +#: utils/misc/guc_tables.c:3768 msgid "-1 disables inlining." msgstr "-1 вимикає вбудовування." -#: utils/misc/guc_tables.c:3630 +#: utils/misc/guc_tables.c:3778 msgid "Sets the planner's estimate of the fraction of a cursor's rows that will be retrieved." msgstr "Встановлює для планувальника орієнтир частки необхідних рядків курсора в загальній кількості." -#: utils/misc/guc_tables.c:3642 +#: utils/misc/guc_tables.c:3790 msgid "Sets the planner's estimate of the average size of a recursive query's working table." msgstr "Встановлює для планувальника орієнтир середнього розміру робочої таблиці рекурсивного запиту." -#: utils/misc/guc_tables.c:3654 +#: utils/misc/guc_tables.c:3802 msgid "GEQO: selective pressure within the population." msgstr "GEQO: вибірковий тиск в популяції." -#: utils/misc/guc_tables.c:3665 +#: utils/misc/guc_tables.c:3813 msgid "GEQO: seed for random path selection." msgstr "GEQO: відправна значення для випадкового вибору шляху." -#: utils/misc/guc_tables.c:3676 -msgid "Multiple of work_mem to use for hash tables." -msgstr "Декілька work_mem для використання геш-таблиць." +#: utils/misc/guc_tables.c:3824 +msgid "Multiple of \"work_mem\" to use for hash tables." +msgstr "" -#: utils/misc/guc_tables.c:3687 +#: utils/misc/guc_tables.c:3835 msgid "Multiple of the average buffer usage to free per round." msgstr "Множник для середньої кількості використаних буферів, який визначає кількість буферів, які звільняються за один підхід." -#: utils/misc/guc_tables.c:3697 +#: utils/misc/guc_tables.c:3845 msgid "Sets the seed for random-number generation." msgstr "Встановлює відправне значення для генератора випадкових чисел." -#: utils/misc/guc_tables.c:3708 +#: utils/misc/guc_tables.c:3856 msgid "Vacuum cost delay in milliseconds." msgstr "Затримка вартості очистки в мілісекундах." -#: utils/misc/guc_tables.c:3719 +#: utils/misc/guc_tables.c:3867 msgid "Vacuum cost delay in milliseconds, for autovacuum." msgstr "Затримка вартості очистки в мілісекундах, для автоочистки." -#: utils/misc/guc_tables.c:3730 +#: utils/misc/guc_tables.c:3878 msgid "Number of tuple updates or deletes prior to vacuum as a fraction of reltuples." msgstr "Кількість оновлень або видалень кортежів до reltuples, яка визначає потребу в очистці." -#: utils/misc/guc_tables.c:3740 +#: utils/misc/guc_tables.c:3888 msgid "Number of tuple inserts prior to vacuum as a fraction of reltuples." msgstr "Кількість вставлень кортежів до reltuples, яка визначає потребу в очистці." -#: utils/misc/guc_tables.c:3750 +#: utils/misc/guc_tables.c:3898 msgid "Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples." msgstr "Кількість вставлень, оновлень або видалень кортежів до reltuples, яка визначає потребу в аналізі." -#: utils/misc/guc_tables.c:3760 +#: utils/misc/guc_tables.c:3908 msgid "Time spent flushing dirty buffers during checkpoint, as fraction of checkpoint interval." msgstr "Час тривалості очищення \"брудних\" буферів під час контрольної точки до інтервалу контрольних точок." -#: utils/misc/guc_tables.c:3770 -msgid "Fraction of statements exceeding log_min_duration_sample to be logged." -msgstr "Частка тверджень, перевищує log_min_duration_sample, що підлягає запису." +#: utils/misc/guc_tables.c:3918 +msgid "Fraction of statements exceeding \"log_min_duration_sample\" to be logged." +msgstr "" -#: utils/misc/guc_tables.c:3771 +#: utils/misc/guc_tables.c:3919 msgid "Use a value between 0.0 (never log) and 1.0 (always log)." msgstr "Використайте значення між 0.0 (ніколи не записувати) і 1.0 (завжди записувати)." -#: utils/misc/guc_tables.c:3780 +#: utils/misc/guc_tables.c:3928 msgid "Sets the fraction of transactions from which to log all statements." msgstr "Встановлює частину транзакцій, від яких необхідно журналювати всі команди." -#: utils/misc/guc_tables.c:3781 +#: utils/misc/guc_tables.c:3929 msgid "Use a value between 0.0 (never log) and 1.0 (log all statements for all transactions)." msgstr "Використайте значення між 0.0 (ніколи не записувати) і 1.0 (записувати всі команди для всіх транзакцій)." -#: utils/misc/guc_tables.c:3800 +#: utils/misc/guc_tables.c:3948 msgid "Sets the shell command that will be called to archive a WAL file." msgstr "Встановлює команду оболонки, яка буде викликатись для архівації файлу WAL." -#: utils/misc/guc_tables.c:3801 +#: utils/misc/guc_tables.c:3949 msgid "This is used only if \"archive_library\" is not set." msgstr "Це використовується лише, якщо \"archive_library\" не встановлено." -#: utils/misc/guc_tables.c:3810 +#: utils/misc/guc_tables.c:3958 msgid "Sets the library that will be called to archive a WAL file." msgstr "Встановлює бібліотеку, яка буде викликана для архівування файлу WAL." -#: utils/misc/guc_tables.c:3811 +#: utils/misc/guc_tables.c:3959 msgid "An empty string indicates that \"archive_command\" should be used." msgstr "Порожній рядок вказує на те, що слід використовувати \"archive_command\"." -#: utils/misc/guc_tables.c:3820 +#: utils/misc/guc_tables.c:3968 msgid "Sets the shell command that will be called to retrieve an archived WAL file." msgstr "Встановлює команду оболонки, яка буде викликана для отримання архівованого файлу WAL." -#: utils/misc/guc_tables.c:3830 +#: utils/misc/guc_tables.c:3978 msgid "Sets the shell command that will be executed at every restart point." msgstr "Встановлює команду оболонки, яка буде виконуватися в кожній точці перезапуску." -#: utils/misc/guc_tables.c:3840 +#: utils/misc/guc_tables.c:3988 msgid "Sets the shell command that will be executed once at the end of recovery." msgstr "Встановлює команду оболонки, яка буде виконуватися один раз в кінці відновлення." -#: utils/misc/guc_tables.c:3850 +#: utils/misc/guc_tables.c:3998 msgid "Specifies the timeline to recover into." msgstr "Вказує лінію часу для відновлення." -#: utils/misc/guc_tables.c:3860 +#: utils/misc/guc_tables.c:4008 msgid "Set to \"immediate\" to end recovery as soon as a consistent state is reached." msgstr "Встановіть на \"негайно\" щоб закінчити відновлення як тільки буде досягнуто узгодженого стану." -#: utils/misc/guc_tables.c:3869 +#: utils/misc/guc_tables.c:4017 msgid "Sets the transaction ID up to which recovery will proceed." msgstr "Встановлює ідентифікатор транзакції, до якої буде продовжуватися відновлення." -#: utils/misc/guc_tables.c:3878 +#: utils/misc/guc_tables.c:4026 msgid "Sets the time stamp up to which recovery will proceed." msgstr "Встановлює позначку часу, до якої буде продовжуватися відновлення." -#: utils/misc/guc_tables.c:3887 +#: utils/misc/guc_tables.c:4035 msgid "Sets the named restore point up to which recovery will proceed." msgstr "Встановлює назву точки відновлення, до якої буде продовжуватися відновлення." -#: utils/misc/guc_tables.c:3896 +#: utils/misc/guc_tables.c:4044 msgid "Sets the LSN of the write-ahead log location up to which recovery will proceed." msgstr "Встановлює номер LSN розташування випереджувального журналювання, до якого буде продовжуватися відновлення." -#: utils/misc/guc_tables.c:3906 +#: utils/misc/guc_tables.c:4054 msgid "Sets the connection string to be used to connect to the sending server." msgstr "Встановлює рядок підключення який буде використовуватися для підключення до серверу надсилання." -#: utils/misc/guc_tables.c:3917 +#: utils/misc/guc_tables.c:4065 msgid "Sets the name of the replication slot to use on the sending server." msgstr "Встановлює назву слота реплікації, для використання на сервері надсилання." -#: utils/misc/guc_tables.c:3927 +#: utils/misc/guc_tables.c:4075 msgid "Sets the client's character set encoding." msgstr "Встановлює кодування символів, використовуване клієнтом." -#: utils/misc/guc_tables.c:3938 +#: utils/misc/guc_tables.c:4086 msgid "Controls information prefixed to each log line." msgstr "Визначає інформацію префікса кожного рядка протокола." -#: utils/misc/guc_tables.c:3939 +#: utils/misc/guc_tables.c:4087 msgid "If blank, no prefix is used." msgstr "При пустому значенні, префікс також відсутній." -#: utils/misc/guc_tables.c:3948 +#: utils/misc/guc_tables.c:4096 msgid "Sets the time zone to use in log messages." msgstr "Встановлює часовий пояс для виведення часу в повідомленях протокола." -#: utils/misc/guc_tables.c:3958 +#: utils/misc/guc_tables.c:4106 msgid "Sets the display format for date and time values." msgstr "Встановлює формат виведення значень часу і дат." -#: utils/misc/guc_tables.c:3959 +#: utils/misc/guc_tables.c:4107 msgid "Also controls interpretation of ambiguous date inputs." msgstr "Також визначає багатозначні задані дати, які вводяться." -#: utils/misc/guc_tables.c:3970 +#: utils/misc/guc_tables.c:4118 msgid "Sets the default table access method for new tables." msgstr "Встановлює метод доступу до таблиці за замовчуванням для нових таблиць." -#: utils/misc/guc_tables.c:3981 +#: utils/misc/guc_tables.c:4129 msgid "Sets the default tablespace to create tables and indexes in." msgstr "Встановлює табличний простір за замовчуванням, для створення таблиць і індексів." -#: utils/misc/guc_tables.c:3982 +#: utils/misc/guc_tables.c:4130 msgid "An empty string selects the database's default tablespace." msgstr "Пустий рядок вибирає табличний простір за замовчуванням бази даних." -#: utils/misc/guc_tables.c:3992 +#: utils/misc/guc_tables.c:4140 msgid "Sets the tablespace(s) to use for temporary tables and sort files." msgstr "Встановлює табличний простір(простори) для використання в тимчасових таблицях і файлах сортування." -#: utils/misc/guc_tables.c:4003 +#: utils/misc/guc_tables.c:4151 msgid "Sets whether a CREATEROLE user automatically grants the role to themselves, and with which options." msgstr "Задає, чи буде користувач CREATEROLE автоматично призначати собі цю роль і з якими параметрами." -#: utils/misc/guc_tables.c:4015 +#: utils/misc/guc_tables.c:4163 msgid "Sets the path for dynamically loadable modules." msgstr "Встановлює шлях для динамічно завантажуваних модулів." -#: utils/misc/guc_tables.c:4016 +#: utils/misc/guc_tables.c:4164 msgid "If a dynamically loadable module needs to be opened and the specified name does not have a directory component (i.e., the name does not contain a slash), the system will search this path for the specified file." msgstr "Якщо динамічно завантажений модуль потрібно відкрити і у вказаному імені немає компонента каталогу (наприклад, ім'я не містить символ \"/\"), система буде шукати цей шлях у вказаному файлі." -#: utils/misc/guc_tables.c:4029 +#: utils/misc/guc_tables.c:4177 msgid "Sets the location of the Kerberos server key file." msgstr "Встановлює розташування файлу з ключем Kerberos для даного сервера." -#: utils/misc/guc_tables.c:4040 +#: utils/misc/guc_tables.c:4188 msgid "Sets the Bonjour service name." msgstr "Встановлює ім'я служби Bonjour." -#: utils/misc/guc_tables.c:4050 +#: utils/misc/guc_tables.c:4198 msgid "Sets the language in which messages are displayed." msgstr "Встановлює мову виведених повідомлень." -#: utils/misc/guc_tables.c:4060 +#: utils/misc/guc_tables.c:4208 msgid "Sets the locale for formatting monetary amounts." msgstr "Встановлює локалізацію для форматування грошових сум." -#: utils/misc/guc_tables.c:4070 +#: utils/misc/guc_tables.c:4218 msgid "Sets the locale for formatting numbers." msgstr "Встановлює локалізацію для форматування чисел." -#: utils/misc/guc_tables.c:4080 +#: utils/misc/guc_tables.c:4228 msgid "Sets the locale for formatting date and time values." msgstr "Встановлює локалізацію для форматування значень дати і часу." -#: utils/misc/guc_tables.c:4090 +#: utils/misc/guc_tables.c:4238 msgid "Lists shared libraries to preload into each backend." msgstr "Список спільних бібліотек, попередньо завантажених до кожного внутрішнього серверу." -#: utils/misc/guc_tables.c:4101 +#: utils/misc/guc_tables.c:4249 msgid "Lists shared libraries to preload into server." msgstr "Список спільних бібліотек, попередньо завантажених до серверу." -#: utils/misc/guc_tables.c:4112 +#: utils/misc/guc_tables.c:4260 msgid "Lists unprivileged shared libraries to preload into each backend." msgstr "Список непривілейованих спільних бібліотек, попередньо завантажених до кожного внутрішнього серверу." -#: utils/misc/guc_tables.c:4123 +#: utils/misc/guc_tables.c:4271 msgid "Sets the schema search order for names that are not schema-qualified." msgstr "Встановлює порядок пошуку схеми для імен, які не є схемо-кваліфікованими." -#: utils/misc/guc_tables.c:4135 +#: utils/misc/guc_tables.c:4283 msgid "Shows the server (database) character set encoding." msgstr "Показує набір символів кодування сервера (бази даних)." -#: utils/misc/guc_tables.c:4147 +#: utils/misc/guc_tables.c:4295 msgid "Shows the server version." msgstr "Показує версію сервера." -#: utils/misc/guc_tables.c:4159 +#: utils/misc/guc_tables.c:4307 msgid "Sets the current role." msgstr "Встановлює чинну роль." -#: utils/misc/guc_tables.c:4171 +#: utils/misc/guc_tables.c:4319 msgid "Sets the session user name." msgstr "Встановлює ім'я користувача в сеансі." -#: utils/misc/guc_tables.c:4182 +#: utils/misc/guc_tables.c:4330 msgid "Sets the destination for server log output." msgstr "Встановлює, куди буде виводитися протокол серверу." -#: utils/misc/guc_tables.c:4183 +#: utils/misc/guc_tables.c:4331 msgid "Valid values are combinations of \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", and \"eventlog\", depending on the platform." msgstr "Дійсні значення - це комбінації \"stderr\", \"syslog\", \"csvlog\", \"jsonlog\", і \"eventlog\", в залежності від платформи." -#: utils/misc/guc_tables.c:4194 +#: utils/misc/guc_tables.c:4342 msgid "Sets the destination directory for log files." msgstr "Встановлює каталог призначення для файлів журналу." -#: utils/misc/guc_tables.c:4195 +#: utils/misc/guc_tables.c:4343 msgid "Can be specified as relative to the data directory or as absolute path." msgstr "Шлях може бути абсолютним або вказуватися відносно каталогу даних." -#: utils/misc/guc_tables.c:4205 +#: utils/misc/guc_tables.c:4353 msgid "Sets the file name pattern for log files." msgstr "Встановлює шаблон імені для файлів журналу." -#: utils/misc/guc_tables.c:4216 +#: utils/misc/guc_tables.c:4364 msgid "Sets the program name used to identify PostgreSQL messages in syslog." msgstr "Встановлює ім'я програми для ідентифікації повідомлень PostgreSQL в syslog." -#: utils/misc/guc_tables.c:4227 +#: utils/misc/guc_tables.c:4375 msgid "Sets the application name used to identify PostgreSQL messages in the event log." msgstr "Встановлює ім'я програми для ідентифікації повідомлень PostgreSQL в журналі подій." -#: utils/misc/guc_tables.c:4238 +#: utils/misc/guc_tables.c:4386 msgid "Sets the time zone for displaying and interpreting time stamps." msgstr "Встановлює часовий пояс для відображення та інтерпретації позначок часу." -#: utils/misc/guc_tables.c:4248 +#: utils/misc/guc_tables.c:4396 msgid "Selects a file of time zone abbreviations." msgstr "Вибирає файл з скороченими іменами часових поясів." -#: utils/misc/guc_tables.c:4258 +#: utils/misc/guc_tables.c:4406 msgid "Sets the owning group of the Unix-domain socket." msgstr "Встановлює відповідальну групу Unix-сокету." -#: utils/misc/guc_tables.c:4259 +#: utils/misc/guc_tables.c:4407 msgid "The owning user of the socket is always the user that starts the server." msgstr "Відповідальний користувач сокету це завжди той користувач який запустив сервер." -#: utils/misc/guc_tables.c:4269 +#: utils/misc/guc_tables.c:4417 msgid "Sets the directories where Unix-domain sockets will be created." msgstr "Встановлює каталоги, де будуть створюватись Unix-сокети." -#: utils/misc/guc_tables.c:4280 +#: utils/misc/guc_tables.c:4428 msgid "Sets the host name or IP address(es) to listen to." msgstr "Встановлює ім'я хосту або IP-адресу для прив'язки." -#: utils/misc/guc_tables.c:4295 +#: utils/misc/guc_tables.c:4443 msgid "Sets the server's data directory." msgstr "Встановлює каталог даних серверу." -#: utils/misc/guc_tables.c:4306 +#: utils/misc/guc_tables.c:4454 msgid "Sets the server's main configuration file." msgstr "Встановлює основний файл конфігурації серверу." -#: utils/misc/guc_tables.c:4317 +#: utils/misc/guc_tables.c:4465 msgid "Sets the server's \"hba\" configuration file." msgstr "Встановлює \"hba\" файл конфігурації серверу." -#: utils/misc/guc_tables.c:4328 +#: utils/misc/guc_tables.c:4476 msgid "Sets the server's \"ident\" configuration file." msgstr "Встановлює \"ident\" файл конфігурації серверу." -#: utils/misc/guc_tables.c:4339 +#: utils/misc/guc_tables.c:4487 msgid "Writes the postmaster PID to the specified file." msgstr "Записує ідентифікатор процесу (PID) postmaster у вказаний файл." -#: utils/misc/guc_tables.c:4350 +#: utils/misc/guc_tables.c:4498 msgid "Shows the name of the SSL library." msgstr "Показує назву бібліотеки SSL." -#: utils/misc/guc_tables.c:4365 +#: utils/misc/guc_tables.c:4513 msgid "Location of the SSL server certificate file." msgstr "Розташування файла сертифікату сервера для SSL." -#: utils/misc/guc_tables.c:4375 +#: utils/misc/guc_tables.c:4523 msgid "Location of the SSL server private key file." msgstr "Розташування файла з закритим ключем сервера для SSL." -#: utils/misc/guc_tables.c:4385 +#: utils/misc/guc_tables.c:4533 msgid "Location of the SSL certificate authority file." msgstr "Розташування файла центру сертифікації для SSL." -#: utils/misc/guc_tables.c:4395 +#: utils/misc/guc_tables.c:4543 msgid "Location of the SSL certificate revocation list file." msgstr "Розташування файла зі списком відкликаних сертфікатів для SSL." -#: utils/misc/guc_tables.c:4405 +#: utils/misc/guc_tables.c:4553 msgid "Location of the SSL certificate revocation list directory." msgstr "Розташування каталогу списку відкликаних сертифікатів SSL." -#: utils/misc/guc_tables.c:4415 +#: utils/misc/guc_tables.c:4563 msgid "Number of synchronous standbys and list of names of potential synchronous ones." msgstr "Кількість потенційно синхронних режимів очікування і список їх імен." -#: utils/misc/guc_tables.c:4426 +#: utils/misc/guc_tables.c:4574 msgid "Sets default text search configuration." msgstr "Встановлює конфігурацію текстового пошуку за замовчуванням." -#: utils/misc/guc_tables.c:4436 +#: utils/misc/guc_tables.c:4584 msgid "Sets the list of allowed SSL ciphers." msgstr "Встановлює список дозволених шифрів для SSL." -#: utils/misc/guc_tables.c:4451 +#: utils/misc/guc_tables.c:4599 msgid "Sets the curve to use for ECDH." msgstr "Встановлює криву для ECDH." -#: utils/misc/guc_tables.c:4466 +#: utils/misc/guc_tables.c:4614 msgid "Location of the SSL DH parameters file." msgstr "Розташування файла з параметрами SSL DH." -#: utils/misc/guc_tables.c:4477 +#: utils/misc/guc_tables.c:4625 msgid "Command to obtain passphrases for SSL." msgstr "Команда, що дозволяє отримати парольну фразу для SSL." -#: utils/misc/guc_tables.c:4488 +#: utils/misc/guc_tables.c:4636 msgid "Sets the application name to be reported in statistics and logs." msgstr "Встановлює ім'я програми, яке буде повідомлятись у статистиці і протоколах." -#: utils/misc/guc_tables.c:4499 +#: utils/misc/guc_tables.c:4647 msgid "Sets the name of the cluster, which is included in the process title." msgstr "Встановлює ім'я кластеру, яке буде включене до заголовка процесу." -#: utils/misc/guc_tables.c:4510 +#: utils/misc/guc_tables.c:4658 msgid "Sets the WAL resource managers for which WAL consistency checks are done." msgstr "Встановлює менеджерів ресурсу WAL, для яких виконано перевірки узгодженості WAL." -#: utils/misc/guc_tables.c:4511 +#: utils/misc/guc_tables.c:4659 msgid "Full-page images will be logged for all data blocks and cross-checked against the results of WAL replay." msgstr "При цьому до журналу будуть записуватись зображення повнихс сторінок для всіх блоків даних для перевірки з результатами відтворення WAL." -#: utils/misc/guc_tables.c:4521 +#: utils/misc/guc_tables.c:4669 msgid "JIT provider to use." msgstr "Використовувати провайдер JIT." -#: utils/misc/guc_tables.c:4532 +#: utils/misc/guc_tables.c:4680 msgid "Log backtrace for errors in these functions." msgstr "Відстежувати записи помилок у ціх функціях." -#: utils/misc/guc_tables.c:4543 +#: utils/misc/guc_tables.c:4691 msgid "Use direct I/O for file access." msgstr "Використовувати прямий ввід для доступу до файлу." -#: utils/misc/guc_tables.c:4563 +#: utils/misc/guc_tables.c:4702 +msgid "Lists streaming replication standby server replication slot names that logical WAL sender processes will wait for." +msgstr "" + +#: utils/misc/guc_tables.c:4704 +msgid "Logical WAL sender processes will send decoded changes to output plugins only after the specified replication slots have confirmed receiving WAL." +msgstr "" + +#: utils/misc/guc_tables.c:4716 +msgid "Prohibits access to non-system relations of specified kinds." +msgstr "" + +#: utils/misc/guc_tables.c:4736 msgid "Sets whether \"\\'\" is allowed in string literals." msgstr "Встановлює, чи дозволене використання \"\\\" в текстових рядках." -#: utils/misc/guc_tables.c:4573 +#: utils/misc/guc_tables.c:4746 msgid "Sets the output format for bytea." msgstr "Встановлює формат виводу для типу bytea." -#: utils/misc/guc_tables.c:4583 +#: utils/misc/guc_tables.c:4756 msgid "Sets the message levels that are sent to the client." msgstr "Встановлює рівень повідомлень, переданих клієнту." -#: utils/misc/guc_tables.c:4584 utils/misc/guc_tables.c:4680 -#: utils/misc/guc_tables.c:4691 utils/misc/guc_tables.c:4763 +#: utils/misc/guc_tables.c:4757 utils/misc/guc_tables.c:4853 +#: utils/misc/guc_tables.c:4864 msgid "Each level includes all the levels that follow it. The later the level, the fewer messages are sent." msgstr "Кожен рівень включає всі наступні рівні. Чим вище рівень, тим менше повідомлень надіслано." -#: utils/misc/guc_tables.c:4594 +#: utils/misc/guc_tables.c:4767 msgid "Enables in-core computation of query identifiers." msgstr "Вмикає внутрішнє обчислення ідентифікаторів запиту." -#: utils/misc/guc_tables.c:4604 +#: utils/misc/guc_tables.c:4777 msgid "Enables the planner to use constraints to optimize queries." msgstr "Дає змогу планувальнику оптимізувати запити, використовуючи обмеження." -#: utils/misc/guc_tables.c:4605 +#: utils/misc/guc_tables.c:4778 msgid "Table scans will be skipped if their constraints guarantee that no rows match the query." msgstr "Сканування таблиці буде пропущено, якщо її обмеження гарантують, що запиту не відповідають ніякі рядки." -#: utils/misc/guc_tables.c:4616 +#: utils/misc/guc_tables.c:4789 msgid "Sets the default compression method for compressible values." msgstr "Встановлює метод стискання за замовчуванням для стисливих значень." -#: utils/misc/guc_tables.c:4627 +#: utils/misc/guc_tables.c:4800 msgid "Sets the transaction isolation level of each new transaction." msgstr "Встановлює рівень ізоляції транзакції для кожної нової транзакції." -#: utils/misc/guc_tables.c:4637 +#: utils/misc/guc_tables.c:4810 msgid "Sets the current transaction's isolation level." msgstr "Встановлює чинний рівень ізоляції транзакцій." -#: utils/misc/guc_tables.c:4648 +#: utils/misc/guc_tables.c:4821 msgid "Sets the display format for interval values." msgstr "Встановлює формат відображення внутрішніх значень." -#: utils/misc/guc_tables.c:4659 +#: utils/misc/guc_tables.c:4832 msgid "Log level for reporting invalid ICU locale strings." msgstr "Рівень протоколу для повідомлення про невірні рядки локалі ICU." -#: utils/misc/guc_tables.c:4669 +#: utils/misc/guc_tables.c:4842 msgid "Sets the verbosity of logged messages." msgstr "Встановлює детальність повідомлень, які протоколюються." -#: utils/misc/guc_tables.c:4679 +#: utils/misc/guc_tables.c:4852 msgid "Sets the message levels that are logged." msgstr "Встанолвює рівні повідомлень, які протоколюються." -#: utils/misc/guc_tables.c:4690 +#: utils/misc/guc_tables.c:4863 msgid "Causes all statements generating error at or above this level to be logged." msgstr "Вмикає протоколювання для всіх операторів, виконаних з помилкою цього або вище рівня." -#: utils/misc/guc_tables.c:4701 +#: utils/misc/guc_tables.c:4874 msgid "Sets the type of statements logged." msgstr "Встановлює тип операторів, які протоколюються." -#: utils/misc/guc_tables.c:4711 +#: utils/misc/guc_tables.c:4884 msgid "Sets the syslog \"facility\" to be used when syslog enabled." msgstr "Встановлює отримувача повідомлень, які відправляються до syslog." -#: utils/misc/guc_tables.c:4722 +#: utils/misc/guc_tables.c:4895 msgid "Sets the session's behavior for triggers and rewrite rules." msgstr "Встановлює поведінку для тригерів і правил перезапису для сеансу." -#: utils/misc/guc_tables.c:4732 +#: utils/misc/guc_tables.c:4905 msgid "Sets the current transaction's synchronization level." msgstr "Встановлює рівень синхронізації поточної транзакції." -#: utils/misc/guc_tables.c:4742 -msgid "Allows archiving of WAL files using archive_command." -msgstr "Дозволяє архівацію файлів WAL, використовуючи archive_command." +#: utils/misc/guc_tables.c:4915 +msgid "Allows archiving of WAL files using \"archive_command\"." +msgstr "" -#: utils/misc/guc_tables.c:4752 +#: utils/misc/guc_tables.c:4925 msgid "Sets the action to perform upon reaching the recovery target." msgstr "Встновлює дію яку потрібно виконати в разі досягнення мети відновлення." -#: utils/misc/guc_tables.c:4762 -msgid "Enables logging of recovery-related debugging information." -msgstr "Вмикає протоколювання налагодженної інформації, пов'язаної з відновленням." - -#: utils/misc/guc_tables.c:4779 +#: utils/misc/guc_tables.c:4935 msgid "Collects function-level statistics on database activity." msgstr "Збирає статистику активності в базі даних на рівні функцій." -#: utils/misc/guc_tables.c:4790 +#: utils/misc/guc_tables.c:4946 msgid "Sets the consistency of accesses to statistics data." msgstr "Встановлює послідовність доступу до даних статистики." -#: utils/misc/guc_tables.c:4800 +#: utils/misc/guc_tables.c:4956 msgid "Compresses full-page writes written in WAL file with specified method." msgstr "Стискає повносторінкові записи, записані у файлі WAL за допомогою вказаного методу." -#: utils/misc/guc_tables.c:4810 +#: utils/misc/guc_tables.c:4966 msgid "Sets the level of information written to the WAL." msgstr "Встановлює рівень інформації, яка записується до WAL." -#: utils/misc/guc_tables.c:4820 +#: utils/misc/guc_tables.c:4976 msgid "Selects the dynamic shared memory implementation used." msgstr "Вибирає використовуване впровадження динамічної спільної пам'яті." -#: utils/misc/guc_tables.c:4830 +#: utils/misc/guc_tables.c:4986 msgid "Selects the shared memory implementation used for the main shared memory region." msgstr "Вибирає впровадження спільної пам'яті, що використовується для основної області спільної пам'яті." -#: utils/misc/guc_tables.c:4840 +#: utils/misc/guc_tables.c:4996 msgid "Selects the method used for forcing WAL updates to disk." msgstr "Вибирає метод примусового запису оновлень в WAL на диск." -#: utils/misc/guc_tables.c:4850 +#: utils/misc/guc_tables.c:5006 msgid "Sets how binary values are to be encoded in XML." msgstr "Встановлює, як повинні кодуватись двійкові значення в XML." -#: utils/misc/guc_tables.c:4860 +#: utils/misc/guc_tables.c:5016 msgid "Sets whether XML data in implicit parsing and serialization operations is to be considered as documents or content fragments." msgstr "Встановлює, чи слід розглядати XML-дані в неявних операціях аналізу і серіалізації як документи або як фрагменти змісту." -#: utils/misc/guc_tables.c:4871 +#: utils/misc/guc_tables.c:5027 msgid "Use of huge pages on Linux or Windows." msgstr "Використовувати величезні сторінки в Linux або Windows." -#: utils/misc/guc_tables.c:4881 +#: utils/misc/guc_tables.c:5037 +msgid "Indicates the status of huge pages." +msgstr "Показує статус великих сторінок." + +#: utils/misc/guc_tables.c:5048 msgid "Prefetch referenced blocks during recovery." msgstr "Попередньо вибирати пов'язані блоки під час відновлення." -#: utils/misc/guc_tables.c:4882 +#: utils/misc/guc_tables.c:5049 msgid "Look ahead in the WAL to find references to uncached data." msgstr "Шукати в WAL посилання на незакешовані дані." -#: utils/misc/guc_tables.c:4891 +#: utils/misc/guc_tables.c:5058 msgid "Forces the planner's use parallel query nodes." msgstr "Змушує планувальник використовувати паралельні вузли запитів." -#: utils/misc/guc_tables.c:4892 +#: utils/misc/guc_tables.c:5059 msgid "This can be useful for testing the parallel query infrastructure by forcing the planner to generate plans that contain nodes that perform tuple communication between workers and the main process." msgstr "Це може бути корисно для тестування інфраструктури паралельних запитів, змушуючи планувальник генерувати плани, які містять вузли, що виконують зв'язок кортежів між робітниками та основним процесом." -#: utils/misc/guc_tables.c:4904 +#: utils/misc/guc_tables.c:5071 msgid "Chooses the algorithm for encrypting passwords." msgstr "Виберіть алгоритм для шифрування паролів." -#: utils/misc/guc_tables.c:4914 +#: utils/misc/guc_tables.c:5081 msgid "Controls the planner's selection of custom or generic plan." msgstr "Контролює вибір планувальником спеціального або загального плану." -#: utils/misc/guc_tables.c:4915 +#: utils/misc/guc_tables.c:5082 msgid "Prepared statements can have custom and generic plans, and the planner will attempt to choose which is better. This can be set to override the default behavior." msgstr "Підготовлені оператори можуть мати спеціальні або загальні плани, і планувальник спробує вибрати, який краще. Це може бути встановлено для зміни поведінки за замовчуванням." -#: utils/misc/guc_tables.c:4927 +#: utils/misc/guc_tables.c:5094 msgid "Sets the minimum SSL/TLS protocol version to use." msgstr "Встановлює мінімальну версію протоколу SSL/TLS для використання." -#: utils/misc/guc_tables.c:4939 +#: utils/misc/guc_tables.c:5106 msgid "Sets the maximum SSL/TLS protocol version to use." msgstr "Встановлює максимальну версію протоколу SSL/TLS для використання." -#: utils/misc/guc_tables.c:4951 +#: utils/misc/guc_tables.c:5118 msgid "Sets the method for synchronizing the data directory before crash recovery." msgstr "Встановлює метод для синхронізації каталогу даних перед аварійним відновленням." -#: utils/misc/guc_tables.c:4960 +#: utils/misc/guc_tables.c:5127 msgid "Forces immediate streaming or serialization of changes in large transactions." msgstr "Забезпечує негайну потокову передачу або серіалізацію змін у великих транзакціях." -#: utils/misc/guc_tables.c:4961 +#: utils/misc/guc_tables.c:5128 msgid "On the publisher, it allows streaming or serializing each change in logical decoding. On the subscriber, it allows serialization of all changes to files and notifies the parallel apply workers to read and apply them at the end of the transaction." msgstr "На стороні видавця це дозволяє передавати в потоковому режимі або серіалізувати кожну зміну в логічному декодуванні. На стороні абонента це дозволяє серіалізувати всі зміни у файлах і сповіщає працівників паралельних робочих процесів про необхідність прочитати і застосувати їх в кінці транзакції." @@ -29052,8 +30203,8 @@ msgstr "На стороні видавця це дозволяє передав msgid "internal error: unrecognized run-time parameter type\n" msgstr "внутрішня помилка: нерозпізнаний тип параметра часу виконання\n" -#: utils/misc/pg_controldata.c:51 utils/misc/pg_controldata.c:91 -#: utils/misc/pg_controldata.c:182 utils/misc/pg_controldata.c:223 +#: utils/misc/pg_controldata.c:50 utils/misc/pg_controldata.c:90 +#: utils/misc/pg_controldata.c:181 utils/misc/pg_controldata.c:222 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "обчислена контрольна сума CRC не відповідає значенню, збереженому у файлі" @@ -29073,145 +30224,143 @@ msgstr "запит буде обмежений політикою безпеки msgid "To disable the policy for the table's owner, use ALTER TABLE NO FORCE ROW LEVEL SECURITY." msgstr "Щоб вимкнути політику для власника таблиці, використайте ALTER TABLE NO FORCE ROW LEVEL SECURITY." -#: utils/misc/timeout.c:524 +#: utils/misc/timeout.c:520 #, c-format msgid "cannot add more timeout reasons" msgstr "додати більше причин тайм-ауту не можна" -#: utils/misc/tzparser.c:60 +#: utils/misc/tzparser.c:61 #, c-format msgid "time zone abbreviation \"%s\" is too long (maximum %d characters) in time zone file \"%s\", line %d" msgstr "скорочення часового поясу \"%s\" занадто довге (максимум %d символів) у файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:72 +#: utils/misc/tzparser.c:73 #, c-format msgid "time zone offset %d is out of range in time zone file \"%s\", line %d" msgstr "зсув часового поясу %d поза діапазоном у файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:111 +#: utils/misc/tzparser.c:112 #, c-format msgid "missing time zone abbreviation in time zone file \"%s\", line %d" msgstr "пропущено скорочення часового поясу в файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:120 +#: utils/misc/tzparser.c:121 #, c-format msgid "missing time zone offset in time zone file \"%s\", line %d" msgstr "пропущено зсув часового поясу в файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:132 +#: utils/misc/tzparser.c:133 #, c-format msgid "invalid number for time zone offset in time zone file \"%s\", line %d" msgstr "неприпустиме число зсуву часового поясу в файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:168 +#: utils/misc/tzparser.c:169 #, c-format msgid "invalid syntax in time zone file \"%s\", line %d" msgstr "неприпустимий синтаксис у файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:236 +#: utils/misc/tzparser.c:237 #, c-format msgid "time zone abbreviation \"%s\" is multiply defined" msgstr "скорочення часового поясу \"%s\" визначено неодноразово" -#: utils/misc/tzparser.c:238 +#: utils/misc/tzparser.c:239 #, c-format msgid "Entry in time zone file \"%s\", line %d, conflicts with entry in file \"%s\", line %d." msgstr "Запис у файлі часового поясу \"%s\", рядок %d, конфліктує з записом у файлі \"%s\", рядок %d." -#: utils/misc/tzparser.c:300 +#: utils/misc/tzparser.c:301 #, c-format msgid "invalid time zone file name \"%s\"" msgstr "неприпустиме ім'я файла часового поясу \"%s\"" -#: utils/misc/tzparser.c:313 +#: utils/misc/tzparser.c:314 #, c-format msgid "time zone file recursion limit exceeded in file \"%s\"" msgstr "ліміт рекурсії файла часового поясу перевищено у файлі \"%s\"" -#: utils/misc/tzparser.c:352 utils/misc/tzparser.c:365 +#: utils/misc/tzparser.c:353 utils/misc/tzparser.c:366 #, c-format msgid "could not read time zone file \"%s\": %m" msgstr "не вдалося прочитати файл часового поясу \"%s\": %m" -#: utils/misc/tzparser.c:376 +#: utils/misc/tzparser.c:377 #, c-format msgid "line is too long in time zone file \"%s\", line %d" msgstr "занадто довгий рядок у файлі часового поясу \"%s\", рядок %d" -#: utils/misc/tzparser.c:400 +#: utils/misc/tzparser.c:401 #, c-format msgid "@INCLUDE without file name in time zone file \"%s\", line %d" msgstr "в @INCLUDE не вказано ім'я файла у файлі часового поясу \"%s\", рядок %d" -#: utils/mmgr/aset.c:446 utils/mmgr/generation.c:206 utils/mmgr/slab.c:367 +#: utils/mmgr/aset.c:452 utils/mmgr/bump.c:184 utils/mmgr/generation.c:216 +#: utils/mmgr/slab.c:371 #, c-format msgid "Failed while creating memory context \"%s\"." msgstr "Помилка під час створення контексту пам'яті \"%s\"." -#: utils/mmgr/dsa.c:532 utils/mmgr/dsa.c:1346 +#: utils/mmgr/dsa.c:523 utils/mmgr/dsa.c:1364 #, c-format msgid "could not attach to dynamic shared area" msgstr "не вдалося підключитись до динамічно-спільної області" -#: utils/mmgr/mcxt.c:1047 utils/mmgr/mcxt.c:1083 utils/mmgr/mcxt.c:1121 -#: utils/mmgr/mcxt.c:1159 utils/mmgr/mcxt.c:1247 utils/mmgr/mcxt.c:1278 -#: utils/mmgr/mcxt.c:1314 utils/mmgr/mcxt.c:1503 utils/mmgr/mcxt.c:1548 -#: utils/mmgr/mcxt.c:1605 +#: utils/mmgr/mcxt.c:1155 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Помилка в запиті розміру %zu в контексті пам'яті \"%s\"." -#: utils/mmgr/mcxt.c:1210 +#: utils/mmgr/mcxt.c:1299 #, c-format msgid "logging memory contexts of PID %d" msgstr "журналювання контекстів пам'яті PID %d" -#: utils/mmgr/portalmem.c:188 +#: utils/mmgr/portalmem.c:187 #, c-format msgid "cursor \"%s\" already exists" msgstr "курсор \"%s\" вже існує" -#: utils/mmgr/portalmem.c:192 +#: utils/mmgr/portalmem.c:191 #, c-format msgid "closing existing cursor \"%s\"" msgstr "існуючий курсор \"%s\" закривається" -#: utils/mmgr/portalmem.c:402 +#: utils/mmgr/portalmem.c:401 #, c-format msgid "portal \"%s\" cannot be run" msgstr "портал \"%s\" не можна запустити" -#: utils/mmgr/portalmem.c:480 +#: utils/mmgr/portalmem.c:479 #, c-format msgid "cannot drop pinned portal \"%s\"" msgstr "видалити закріплений портал \"%s\" не можна" -#: utils/mmgr/portalmem.c:488 +#: utils/mmgr/portalmem.c:487 #, c-format msgid "cannot drop active portal \"%s\"" msgstr "видалити активний портал \"%s\" не можна" -#: utils/mmgr/portalmem.c:739 +#: 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:1230 +#: utils/mmgr/portalmem.c:1229 #, c-format msgid "cannot perform transaction commands inside a cursor loop that is not read-only" msgstr "виконати команди транзакції всередині циклу з курсором, який не є \"лише для читання\", не можна" #: utils/sort/logtape.c:266 utils/sort/logtape.c:287 #, c-format -msgid "could not seek to block %ld of temporary file" -msgstr "не вдалося знайти шлях до блокування %ld тимчасового файлу" +msgid "could not seek to block %lld of temporary file" +msgstr "не може намагатися заблокувати %lld тимчасового файлу" -#: utils/sort/sharedtuplestore.c:467 +#: utils/sort/sharedtuplestore.c:466 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "неочікуваний блок у тимчасовому файлі спільного сховища кортежів" -#: utils/sort/sharedtuplestore.c:549 +#: utils/sort/sharedtuplestore.c:548 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "не вдалося знайти для блокування %u у тимчасовому файлі зі спільного сховища кортежів" @@ -29221,17 +30370,17 @@ msgstr "не вдалося знайти для блокування %u у ти msgid "cannot have more than %d runs for an external sort" msgstr "кількість виконуючих процесів для зовнішнього сортування не може перевищувати %d" -#: utils/sort/tuplesortvariants.c:1363 +#: utils/sort/tuplesortvariants.c:1552 #, c-format msgid "could not create unique index \"%s\"" msgstr "не вдалося створити унікальний індекс \"%s\"" -#: utils/sort/tuplesortvariants.c:1365 +#: utils/sort/tuplesortvariants.c:1554 #, c-format msgid "Key %s is duplicated." msgstr "Ключ %s дублюється." -#: utils/sort/tuplesortvariants.c:1366 +#: utils/sort/tuplesortvariants.c:1555 #, c-format msgid "Duplicate keys exist." msgstr "Дублікати ключів існують." @@ -29245,403 +30394,423 @@ msgstr "Дублікати ключів існують." msgid "could not seek in tuplestore temporary file" msgstr "не вдалося знайти у тимчасовому файлі зі сховища кортежів" -#: utils/time/snapmgr.c:571 +#: utils/time/snapmgr.c:536 #, c-format msgid "The source transaction is not running anymore." msgstr "Вихідна транзакція вже не виконується." -#: utils/time/snapmgr.c:1166 +#: utils/time/snapmgr.c:1136 #, c-format msgid "cannot export a snapshot from a subtransaction" msgstr "експортувати знімок з підтранзакції не можна" -#: utils/time/snapmgr.c:1325 utils/time/snapmgr.c:1330 -#: utils/time/snapmgr.c:1335 utils/time/snapmgr.c:1350 -#: utils/time/snapmgr.c:1355 utils/time/snapmgr.c:1360 -#: utils/time/snapmgr.c:1375 utils/time/snapmgr.c:1380 -#: utils/time/snapmgr.c:1385 utils/time/snapmgr.c:1487 -#: utils/time/snapmgr.c:1503 utils/time/snapmgr.c:1528 +#: utils/time/snapmgr.c:1296 utils/time/snapmgr.c:1301 +#: utils/time/snapmgr.c:1306 utils/time/snapmgr.c:1321 +#: utils/time/snapmgr.c:1326 utils/time/snapmgr.c:1331 +#: utils/time/snapmgr.c:1346 utils/time/snapmgr.c:1351 +#: utils/time/snapmgr.c:1356 utils/time/snapmgr.c:1470 +#: utils/time/snapmgr.c:1486 utils/time/snapmgr.c:1511 #, c-format msgid "invalid snapshot data in file \"%s\"" msgstr "неприпустимі дані знімку в файлі \"%s\"" -#: utils/time/snapmgr.c:1422 +#: utils/time/snapmgr.c:1393 #, c-format msgid "SET TRANSACTION SNAPSHOT must be called before any query" msgstr "SET TRANSACTION SNAPSHOT повинна викликатись перед будь-яким запитом" -#: utils/time/snapmgr.c:1431 +#: utils/time/snapmgr.c:1402 #, c-format msgid "a snapshot-importing transaction must have isolation level SERIALIZABLE or REPEATABLE READ" msgstr "транзакція, яка імпортує знімок, повинна мати рівень ізоляції SERIALIZABLE або REPEATABLE READ" -#: utils/time/snapmgr.c:1440 utils/time/snapmgr.c:1449 +#: utils/time/snapmgr.c:1411 #, c-format msgid "invalid snapshot identifier: \"%s\"" msgstr "неприпустимий ідентифікатор знімка: \"%s\"" -#: utils/time/snapmgr.c:1541 +#: utils/time/snapmgr.c:1426 +#, c-format +msgid "snapshot \"%s\" does not exist" +msgstr "знімок \"%s\" не існує" + +#: utils/time/snapmgr.c:1524 #, c-format msgid "a serializable transaction cannot import a snapshot from a non-serializable transaction" msgstr "серіалізована транзакція не може імпортувати знімок з не серіалізованої транзакції" -#: utils/time/snapmgr.c:1545 +#: utils/time/snapmgr.c:1528 #, c-format msgid "a non-read-only serializable transaction cannot import a snapshot from a read-only transaction" msgstr "серіалізована транзакція в режимі \"читання-запис\" не може імпортувати знімок з транзакції в режимі \"тільки читання\"" -#: utils/time/snapmgr.c:1560 +#: utils/time/snapmgr.c:1543 #, c-format msgid "cannot import a snapshot from a different database" msgstr "імпортувати знімок з іншої бази даних не можна" -#: gram.y:1197 +#: gram.y:1231 #, c-format msgid "UNENCRYPTED PASSWORD is no longer supported" msgstr "UNENCRYPTED PASSWORD більше не підтримується" -#: gram.y:1198 +#: gram.y:1232 #, c-format msgid "Remove UNENCRYPTED to store the password in encrypted form instead." msgstr "Видаліть UNENCRYPTED, щоб зберегти пароль у зашифрованій формі." -#: gram.y:1525 gram.y:1541 +#: gram.y:1559 gram.y:1575 #, c-format msgid "CREATE SCHEMA IF NOT EXISTS cannot include schema elements" msgstr "CREATE SCHEMA IF NOT EXISTS не може включати елементи схеми" -#: gram.y:1693 +#: gram.y:1727 #, c-format msgid "current database cannot be changed" msgstr "поточна база даних не може бути змінена" -#: gram.y:1826 +#: gram.y:1860 #, c-format msgid "time zone interval must be HOUR or HOUR TO MINUTE" msgstr "інтервал, який задає часовий пояс, повинен бути HOUR або HOUR TO MINUTE" -#: gram.y:2443 +#: gram.y:2487 #, c-format msgid "column number must be in range from 1 to %d" msgstr "номер стовпця повинен бути в діапазоні від 1 до %d" -#: gram.y:3039 +#: gram.y:3083 #, c-format msgid "sequence option \"%s\" not supported here" msgstr "параметр послідовності \"%s\" тут не підтримується" -#: gram.y:3068 +#: gram.y:3122 #, c-format msgid "modulus for hash partition provided more than once" msgstr "модуль для геш-секції вказано неодноразово" -#: gram.y:3077 +#: gram.y:3131 #, c-format msgid "remainder for hash partition provided more than once" msgstr "решта для геш-секції вказана неодноразово" -#: gram.y:3084 +#: gram.y:3138 #, c-format msgid "unrecognized hash partition bound specification \"%s\"" msgstr "нерозпізнана специфікація границі геш-секції \"%s\"" -#: gram.y:3092 +#: gram.y:3146 #, c-format msgid "modulus for hash partition must be specified" msgstr "потрібно вказати модуль для геш-секції" -#: gram.y:3096 +#: gram.y:3150 #, c-format msgid "remainder for hash partition must be specified" msgstr "потрібно вказати решту для геш-секції" -#: gram.y:3304 gram.y:3338 +#: gram.y:3358 gram.y:3392 #, c-format msgid "STDIN/STDOUT not allowed with PROGRAM" msgstr "STDIN/STDOUT не допускається з PROGRAM" -#: gram.y:3310 +#: gram.y:3364 #, c-format msgid "WHERE clause not allowed with COPY TO" msgstr "Речення WHERE не дозволяється використовувати з COPY TO" -#: gram.y:3649 gram.y:3656 gram.y:12821 gram.y:12829 +#: gram.y:3712 gram.y:3719 gram.y:13023 gram.y:13031 #, c-format msgid "GLOBAL is deprecated in temporary table creation" msgstr "GLOBAL при створенні тимчасових таблиць застаріло" -#: gram.y:3932 +#: gram.y:3995 #, c-format msgid "for a generated column, GENERATED ALWAYS must be specified" msgstr "для згенерованого стовпця, потрібно вказати GENERATED ALWAYS" -#: gram.y:4315 +#: gram.y:4432 #, c-format msgid "a column list with %s is only supported for ON DELETE actions" msgstr "список стовпців з %s підтримується лише для дій ON DELETE" -#: gram.y:5027 +#: gram.y:5151 #, c-format msgid "CREATE EXTENSION ... FROM is no longer supported" msgstr "CREATE EXTENSION ... FROM більше не підтримується" -#: gram.y:5725 +#: gram.y:5849 #, c-format msgid "unrecognized row security option \"%s\"" msgstr "нерозпізнаний параметр безпеки рядка \"%s\"" -#: gram.y:5726 +#: gram.y:5850 #, c-format msgid "Only PERMISSIVE or RESTRICTIVE policies are supported currently." msgstr "Наразі підтримуються лише політики PERMISSIVE або RESTRICTIVE." -#: gram.y:5811 +#: gram.y:5935 #, c-format msgid "CREATE OR REPLACE CONSTRAINT TRIGGER is not supported" msgstr "CREATE OR REPLACE CONSTRAINT TRIGGER не підтримується" -#: gram.y:5848 +#: gram.y:5972 msgid "duplicate trigger events specified" msgstr "вказані події тригера повторюються" -#: gram.y:5997 +#: gram.y:6121 #, c-format msgid "conflicting constraint properties" msgstr "конфліктуючі властивості обмеження" -#: gram.y:6096 +#: gram.y:6220 #, c-format msgid "CREATE ASSERTION is not yet implemented" msgstr "CREATE ASSERTION ще не реалізований" -#: gram.y:6504 +#: gram.y:6537 +#, c-format +msgid "dropping an enum value is not implemented" +msgstr "відкидання значення переліку не реалізовано" + +#: gram.y:6655 #, c-format msgid "RECHECK is no longer required" msgstr "RECHECK більше не потребується" -#: gram.y:6505 +#: gram.y:6656 #, c-format msgid "Update your data type." msgstr "Поновіть ваш тип даних." -#: gram.y:8378 +#: gram.y:8529 #, c-format msgid "aggregates cannot have output arguments" msgstr "агрегатні функції не можуть мати вихідних аргументів" -#: gram.y:11054 gram.y:11073 +#: gram.y:11221 gram.y:11240 #, c-format msgid "WITH CHECK OPTION not supported on recursive views" msgstr "WITH CHECK OPTION не підтримується для рекурсивних подань" -#: gram.y:12960 +#: gram.y:13162 #, c-format msgid "LIMIT #,# syntax is not supported" msgstr "Синтаксис LIMIT #,# не підтримується" -#: gram.y:12961 +#: gram.y:13163 #, c-format msgid "Use separate LIMIT and OFFSET clauses." msgstr "Використайте окремі речення LIMIT і OFFSET." -#: gram.y:13821 +#: gram.y:14038 #, c-format msgid "only one DEFAULT value is allowed" msgstr "допускається лише одне значення DEFAULT" -#: gram.y:13830 +#: gram.y:14047 #, c-format msgid "only one PATH value per column is allowed" msgstr "для стовпця допускається лише одне значення PATH" -#: gram.y:13839 +#: gram.y:14056 #, c-format msgid "conflicting or redundant NULL / NOT NULL declarations for column \"%s\"" msgstr "конфліктуючі або надлишкові оголошення NULL / NOT NULL для стовпця \"%s\"" -#: gram.y:13848 +#: gram.y:14065 #, c-format msgid "unrecognized column option \"%s\"" msgstr "нерозпізнаний параметр стовпця \"%s\"" -#: gram.y:14102 +#: gram.y:14147 +#, c-format +msgid "only string constants are supported in JSON_TABLE path specification" +msgstr "" + +#: gram.y:14469 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "точність для типу float повинна бути мінімум 1 біт" -#: gram.y:14111 +#: gram.y:14478 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "точність для типу float повинна бути меньше 54 біт" -#: gram.y:14614 +#: gram.y:14995 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "неправильна кількість параметрів у лівій частині виразу OVERLAPS" -#: gram.y:14619 +#: gram.y:15000 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "неправильна кількість параметрів у правій частині виразу OVERLAPS" -#: gram.y:14796 +#: gram.y:15177 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "Предикат UNIQUE ще не реалізований" -#: gram.y:15212 +#: gram.y:15591 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "використовувати речення ORDER BY з WITHIN GROUP неодноразово, не можна" -#: gram.y:15217 +#: gram.y:15596 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "використовувати DISTINCT з WITHIN GROUP не можна" -#: gram.y:15222 +#: gram.y:15601 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "використовувати VARIADIC з WITHIN GROUP не можна" -#: gram.y:15856 gram.y:15880 +#: gram.y:16328 gram.y:16352 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "початком рамки не може бути UNBOUNDED FOLLOWING" -#: gram.y:15861 +#: gram.y:16333 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "рамка, яка починається з наступного рядка не можна закінчуватись поточним рядком" -#: gram.y:15885 +#: gram.y:16357 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "кінцем рамки не може бути UNBOUNDED PRECEDING" -#: gram.y:15891 +#: gram.y:16363 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "рамка, яка починається з поточного рядка не може мати попередніх рядків" -#: gram.y:15898 +#: gram.y:16370 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "рамка, яка починається з наступного рядка не може мати попередніх рядків" -#: gram.y:16659 +#: gram.y:16919 +#, c-format +msgid "unrecognized JSON encoding: %s" +msgstr "нерозпізнане кодування JSON: %s" + +#: gram.y:17243 #, c-format msgid "type modifier cannot have parameter name" msgstr "тип modifier не може мати ім'я параметра" -#: gram.y:16665 +#: gram.y:17249 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "тип modifier не може мати ORDER BY" -#: gram.y:16733 gram.y:16740 gram.y:16747 +#: gram.y:17317 gram.y:17324 gram.y:17331 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s не можна використовувати тут як ім'я ролі" -#: gram.y:16837 gram.y:18294 +#: gram.y:17421 gram.y:18906 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES не можна задати без оператора ORDER BY" -#: gram.y:17973 gram.y:18160 +#: gram.y:18597 gram.y:18772 msgid "improper use of \"*\"" msgstr "неправильне використання \"*\"" -#: gram.y:18224 +#: gram.y:18836 #, c-format msgid "an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type" msgstr "сортувальна агрегатна функція з прямим аргументом VARIADIC повинна мати один агрегатний аргумент VARIADIC того ж типу даних" -#: gram.y:18261 +#: gram.y:18873 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "кілька речень ORDER BY не допускається" -#: gram.y:18272 +#: gram.y:18884 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "кілька речень OFFSET не допускається" -#: gram.y:18281 +#: gram.y:18893 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "кілька речень LIMIT не допускається" -#: gram.y:18290 +#: gram.y:18902 #, c-format msgid "multiple limit options not allowed" msgstr "використання декількох параметрів обмеження не дозволяється" -#: gram.y:18317 +#: gram.y:18929 #, c-format msgid "multiple WITH clauses not allowed" msgstr "кілька речень WITH не допускається" -#: gram.y:18510 +#: gram.y:19122 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "В табличних функціях аргументи OUT і INOUT не дозволяються" -#: gram.y:18643 +#: gram.y:19255 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "кілька речень COLLATE не допускається" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18681 gram.y:18694 +#: gram.y:19293 gram.y:19306 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "обмеження %s не можуть бути позначені DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18707 +#: gram.y:19319 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "обмеження %s не можуть бути позначені NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18720 +#: gram.y:19332 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "обмеження %s не можуть бути позначені NO INHERIT" -#: gram.y:18742 +#: gram.y:19354 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нерозпізнана стратегія секціонування \"%s\"" -#: gram.y:18766 +#: gram.y:19378 #, c-format msgid "invalid publication object list" msgstr "неприпустимий список об'єктів публікації" -#: gram.y:18767 +#: gram.y:19379 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." msgstr "Одну з TABLE або TABLES IN SCHEMA необхідно вказати перед назвою автономної таблиці або схеми." -#: gram.y:18783 +#: gram.y:19395 #, c-format msgid "invalid table name" msgstr "неприпустиме ім'я таблиці" -#: gram.y:18804 +#: gram.y:19416 #, c-format msgid "WHERE clause not allowed for schema" msgstr "Речення WHERE не допускається для схеми" -#: gram.y:18811 +#: gram.y:19423 #, c-format msgid "column specification not allowed for schema" msgstr "специфікація стовпця не дозволена для схеми" -#: gram.y:18825 +#: gram.y:19437 #, c-format msgid "invalid schema name" msgstr "неприпустиме ім'я схеми" @@ -29686,12 +30855,17 @@ msgstr "синтаксична помилка у файлі \"%s\" рядок %u msgid "too many syntax errors found, abandoning file \"%s\"" msgstr "знайдено занадто багато синтаксичних помилок, переривання файла \"%s\"" -#: jsonpath_gram.y:529 +#: jsonpath_gram.y:267 +#, c-format +msgid ".decimal() can only have an optional precision[,scale]." +msgstr ".decimal() може мати лише необов'язковий параметр precision[,scale]." + +#: jsonpath_gram.y:599 #, c-format msgid "Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate." msgstr "Нерозпізнаний символ позначки \"%.*s\" в предикаті LIKE_REGEX." -#: jsonpath_gram.y:607 +#: jsonpath_gram.y:677 #, c-format msgid "XQuery \"x\" flag (expanded regular expressions) is not implemented" msgstr "XQuery \"x\" позначка (розширені регулярні вирази) не реалізовано" @@ -29708,7 +30882,7 @@ msgstr "неприпустима шістнадцяткова послідовн msgid "unexpected end after backslash" msgstr "неочікуваний кінець після зворотного слеша" -#: jsonpath_scan.l:201 repl_scanner.l:209 scan.l:741 +#: jsonpath_scan.l:201 repl_scanner.l:211 scan.l:756 msgid "unterminated quoted string" msgstr "незавершений рядок в лапках" @@ -29720,8 +30894,8 @@ msgstr "неочікуваний кінець коментаря" msgid "invalid numeric literal" msgstr "невірна числова константа" -#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1049 -#: scan.l:1053 scan.l:1057 scan.l:1061 scan.l:1065 scan.l:1069 scan.l:1073 +#: jsonpath_scan.l:325 jsonpath_scan.l:331 jsonpath_scan.l:337 scan.l:1064 +#: scan.l:1068 scan.l:1072 scan.l:1076 msgid "trailing junk after numeric literal" msgstr "сміття після числового літерала" @@ -29737,139 +30911,140 @@ msgstr "%s в кінці введення jsonpath" msgid "%s at or near \"%s\" of jsonpath input" msgstr "%s в або біля \"%s\" введення jsonpath" -#: jsonpath_scan.l:557 +#: jsonpath_scan.l:568 msgid "invalid input" msgstr "неправильні вхідні дані" -#: jsonpath_scan.l:583 +#: jsonpath_scan.l:594 msgid "invalid hexadecimal digit" msgstr "неприпустима шістнадцяткова цифра" -#: jsonpath_scan.l:614 +#: jsonpath_scan.l:625 #, c-format msgid "could not convert Unicode to server encoding" msgstr "не вдалося перетворити Юнікод в серверне кодування" -#: repl_gram.y:301 repl_gram.y:333 +#: repl_gram.y:318 repl_gram.y:359 #, c-format msgid "invalid timeline %u" msgstr "неприпустима часова шкала %u" -#: repl_scanner.l:152 +#: repl_scanner.l:154 msgid "invalid streaming start location" msgstr "неприпустиме розташування початку потокового передавання" -#: scan.l:482 +#: scan.l:497 msgid "unterminated /* comment" msgstr "незавершений коментар /*" -#: scan.l:502 +#: scan.l:517 msgid "unterminated bit string literal" msgstr "незавершений бітовий рядок" -#: scan.l:516 +#: scan.l:531 msgid "unterminated hexadecimal string literal" msgstr "незавершений шістнадцятковий рядок" -#: scan.l:566 +#: scan.l:581 #, c-format msgid "unsafe use of string constant with Unicode escapes" msgstr "небезпечне використання рядкової констани зі спеціальними кодами Unicode" -#: scan.l:567 +#: scan.l:582 #, c-format -msgid "String constants with Unicode escapes cannot be used when standard_conforming_strings is off." -msgstr "Константи рядка зі спеціальними кодами Unicode не можна використовувати, коли параметр standard_conforming_strings вимкнений." +msgid "String constants with Unicode escapes cannot be used when \"standard_conforming_strings\" is off." +msgstr "" -#: scan.l:628 +#: scan.l:643 msgid "unhandled previous state in xqs" msgstr "необроблений попередній стан у xqs" -#: scan.l:702 +#: scan.l:717 #, c-format msgid "Unicode escapes must be \\uXXXX or \\UXXXXXXXX." msgstr "Спеціальні коди Unicode повинні бути \\uXXXX або \\UXXXXXXXX." -#: scan.l:713 +#: scan.l:728 #, c-format msgid "unsafe use of \\' in a string literal" msgstr "небезпечне використання символу \\' в рядку" -#: scan.l:714 +#: scan.l:729 #, c-format msgid "Use '' to write quotes in strings. \\' is insecure in client-only encodings." msgstr "Використайте \" щоб записати лапки в рядку. Запис \\' небезпечний лише для клієнтських кодувань." -#: scan.l:786 +#: scan.l:801 msgid "unterminated dollar-quoted string" msgstr "незавершений рядок з $" -#: scan.l:803 scan.l:813 +#: scan.l:818 scan.l:828 msgid "zero-length delimited identifier" msgstr "пустий ідентифікатор із роздільниками" -#: scan.l:824 syncrep_scanner.l:101 +#: scan.l:839 syncrep_scanner.l:101 msgid "unterminated quoted identifier" msgstr "незавершений ідентифікатор в лапках" -#: scan.l:987 +#: scan.l:1002 msgid "operator too long" msgstr "занадто довгий оператор" -#: scan.l:1000 +#: scan.l:1015 msgid "trailing junk after parameter" msgstr "сміття після параметру" -#: scan.l:1021 +#: scan.l:1036 msgid "invalid hexadecimal integer" msgstr "неприпустиме шістнадцяткове число" -#: scan.l:1025 +#: scan.l:1040 msgid "invalid octal integer" msgstr "помилкове вісімкове число" -#: scan.l:1029 +#: scan.l:1044 msgid "invalid binary integer" msgstr "неприпустиме двійкове ціле число" #. translator: %s is typically the translation of "syntax error" -#: scan.l:1236 +#: scan.l:1239 #, c-format msgid "%s at end of input" msgstr "%s в кінці введення" #. translator: first %s is typically the translation of "syntax error" -#: scan.l:1244 +#: scan.l:1247 #, c-format msgid "%s at or near \"%s\"" msgstr "%s в або поблизу \"%s\"" -#: scan.l:1434 +#: scan.l:1439 #, c-format msgid "nonstandard use of \\' in a string literal" msgstr "нестандартне використання \\' в рядку" -#: scan.l:1435 +#: scan.l:1440 #, c-format msgid "Use '' to write quotes in strings, or use the escape string syntax (E'...')." msgstr "Щоб записати лапки у рядку використовуйте \" або синтаксис спеціальних рядків (E'...')." -#: scan.l:1444 +#: scan.l:1449 #, c-format msgid "nonstandard use of \\\\ in a string literal" msgstr "нестандартне використання \\\\ в рядку" -#: scan.l:1445 +#: scan.l:1450 #, c-format msgid "Use the escape string syntax for backslashes, e.g., E'\\\\'." msgstr "Для запису зворотніх скісних рисок \"\\\" використовуйте синтаксис спеціальних рядків, наприклад E'\\\\'." -#: scan.l:1459 +#: scan.l:1464 #, c-format msgid "nonstandard use of escape in a string literal" msgstr "нестандартне використання спеціального символу в рядку" -#: scan.l:1460 +#: scan.l:1465 #, c-format msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Для запису спеціальних символів використовуйте синтаксис спеціальних рядків E'\\r\\n'." + diff --git a/src/backend/port/sysv_sema.c b/src/backend/port/sysv_sema.c index f7c8638aec5b8..423b2b4f9d6d1 100644 --- a/src/backend/port/sysv_sema.c +++ b/src/backend/port/sysv_sema.c @@ -50,14 +50,8 @@ typedef int IpcSemaphoreId; /* semaphore ID returned by semget(2) */ * we allocate. It must be *less than* your kernel's SEMMSL (max semaphores * per set) parameter, which is often around 25. (Less than, because we * allocate one extra sema in each set for identification purposes.) - * - * The present value of 19 is chosen with one eye on NetBSD/OpenBSD's default - * SEMMNS setting of 60. Remembering the extra sema per set, this lets us - * allocate three sets with 57 useful semaphores before exceeding that, which - * is enough to run our core regression tests. Users of those systems will - * still want to raise SEMMNS for any sort of production work, though. */ -#define SEMAS_PER_SET 19 +#define SEMAS_PER_SET 16 #define IPCProtection (0600) /* access/modify by user only */ diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 2513a8ef8a665..981be42e3afc8 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -1918,7 +1918,7 @@ do_autovacuum(void) * This injection point is put in a transaction block to work with a wait * that uses a condition variable. */ - INJECTION_POINT("autovacuum-worker-start"); + INJECTION_POINT("autovacuum-worker-start", NULL); /* * Compute the multixact age for which freezing is urgent. This is @@ -2073,6 +2073,12 @@ do_autovacuum(void) } } } + + /* Release stuff to avoid per-relation leakage */ + if (relopts) + pfree(relopts); + if (tabentry) + pfree(tabentry); } table_endscan(relScan); @@ -2089,7 +2095,8 @@ do_autovacuum(void) Form_pg_class classForm = (Form_pg_class) GETSTRUCT(tuple); PgStat_StatTabEntry *tabentry; Oid relid; - AutoVacOpts *relopts = NULL; + AutoVacOpts *relopts; + bool free_relopts = false; bool dovacuum; bool doanalyze; bool wraparound; @@ -2107,7 +2114,9 @@ do_autovacuum(void) * main rel */ relopts = extract_autovac_opts(tuple, pg_class_desc); - if (relopts == NULL) + if (relopts) + free_relopts = true; + else { av_relation *hentry; bool found; @@ -2128,6 +2137,12 @@ do_autovacuum(void) /* ignore analyze for toast tables */ if (dovacuum) table_oids = lappend_oid(table_oids, relid); + + /* Release stuff to avoid leakage */ + if (free_relopts) + pfree(relopts); + if (tabentry) + pfree(tabentry); } table_endscan(relScan); @@ -2499,6 +2514,8 @@ do_autovacuum(void) pg_atomic_test_set_flag(&MyWorkerInfo->wi_dobalance); } + list_free(table_oids); + /* * Perform additional work items, as requested by backends. */ @@ -2680,8 +2697,8 @@ perform_work_item(AutoVacuumWorkItem *workitem) /* * extract_autovac_opts * - * Given a relation's pg_class tuple, return the AutoVacOpts portion of - * reloptions, if set; otherwise, return NULL. + * Given a relation's pg_class tuple, return a palloc'd copy of the + * AutoVacOpts portion of reloptions, if set; otherwise, return NULL. * * Note: callers do not have a relation lock on the table at this point, * so the table could have been dropped, and its catalog rows gone, after @@ -2730,6 +2747,7 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map, autovac_table *tab = NULL; bool wraparound; AutoVacOpts *avopts; + bool free_avopts = false; /* fetch the relation's relcache entry */ classTup = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relid)); @@ -2742,8 +2760,10 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map, * main table reloptions if the toast table itself doesn't have. */ avopts = extract_autovac_opts(classTup, pg_class_desc); - if (classForm->relkind == RELKIND_TOASTVALUE && - avopts == NULL && table_toast_map != NULL) + if (avopts) + free_avopts = true; + else if (classForm->relkind == RELKIND_TOASTVALUE && + table_toast_map != NULL) { av_relation *hentry; bool found; @@ -2852,6 +2872,8 @@ table_recheck_autovac(Oid relid, HTAB *table_toast_map, avopts->vacuum_cost_delay >= 0)); } + if (free_avopts) + pfree(avopts); heap_freetuple(classTup); return tab; } @@ -2883,6 +2905,10 @@ recheck_relation_needs_vacanalyze(Oid relid, effective_multixact_freeze_max_age, dovacuum, doanalyze, wraparound); + /* Release tabentry to avoid leakage */ + if (tabentry) + pfree(tabentry); + /* ignore ANALYZE for toast tables */ if (classForm->relkind == RELKIND_TOASTVALUE) *doanalyze = false; @@ -3140,18 +3166,22 @@ autovacuum_do_vac_analyze(autovac_table *tab, BufferAccessStrategy bstrategy) VacuumRelation *rel; List *rel_list; MemoryContext vac_context; + MemoryContext old_context; /* Let pgstat know what we're doing */ autovac_report_activity(tab); + /* Create a context that vacuum() can use as cross-transaction storage */ + vac_context = AllocSetContextCreate(CurrentMemoryContext, + "Vacuum", + ALLOCSET_DEFAULT_SIZES); + /* Set up one VacuumRelation target, identified by OID, for vacuum() */ + old_context = MemoryContextSwitchTo(vac_context); rangevar = makeRangeVar(tab->at_nspname, tab->at_relname, -1); rel = makeVacuumRelation(rangevar, tab->at_relid, NIL); rel_list = list_make1(rel); - - vac_context = AllocSetContextCreate(CurrentMemoryContext, - "Vacuum", - ALLOCSET_DEFAULT_SIZES); + MemoryContextSwitchTo(old_context); vacuum(rel_list, &tab->at_params, bstrategy, vac_context, true); diff --git a/src/backend/postmaster/auxprocess.c b/src/backend/postmaster/auxprocess.c index 4f6795f72650f..a6d3630398f4d 100644 --- a/src/backend/postmaster/auxprocess.c +++ b/src/backend/postmaster/auxprocess.c @@ -66,7 +66,7 @@ AuxiliaryProcessMainCommon(void) BaseInit(); - ProcSignalInit(false, 0); + ProcSignalInit(NULL, 0); /* * Auxiliary processes don't run transactions, but they may need a diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index c966c2e83afac..490f7ce36645b 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -90,6 +90,7 @@ #endif #include "access/xlog.h" +#include "access/xlog_internal.h" #include "access/xlogrecovery.h" #include "common/file_perm.h" #include "common/pg_prng.h" @@ -1516,7 +1517,7 @@ checkControlFile(void) char path[MAXPGPATH]; FILE *fp; - snprintf(path, sizeof(path), "%s/global/pg_control", DataDir); + snprintf(path, sizeof(path), "%s/%s", DataDir, XLOG_CONTROL_FILE); fp = AllocateFile(path, PG_BINARY_R); if (fp == NULL) @@ -1825,8 +1826,7 @@ canAcceptConnections(BackendType backend_type) else if (!FatalError && pmState == PM_STARTUP) return CAC_STARTUP; /* normal startup */ else if (!FatalError && pmState == PM_RECOVERY) - return CAC_NOTCONSISTENT; /* not yet at consistent recovery - * state */ + return CAC_NOTHOTSTANDBY; /* not yet ready for hot standby */ else return CAC_RECOVERY; /* else must be crash recovery */ } @@ -2718,7 +2718,7 @@ HandleFatalError(QuitSignalReason reason, bool consider_sigabrt) /* * Choose the appropriate new state to react to the fatal error. Unless we * were already in the process of shutting down, we go through - * PM_WAIT_BACKEND. For errors during the shutdown sequence, we directly + * PM_WAIT_BACKENDS. For errors during the shutdown sequence, we directly * switch to PM_WAIT_DEAD_END. */ switch (pmState) @@ -3001,7 +3001,7 @@ PostmasterStateMachine(void) /* * Stop any dead-end children and stop creating new ones. * - * NB: Similar code exists in HandleFatalErrors(), when the + * NB: Similar code exists in HandleFatalError(), when the * error happens in pmState > PM_WAIT_BACKENDS. */ UpdatePMState(PM_WAIT_DEAD_END); @@ -3082,7 +3082,7 @@ PostmasterStateMachine(void) { /* * PM_WAIT_IO_WORKERS state ends when there's only checkpointer and - * dead_end children left. + * dead-end children left. */ if (io_worker_count == 0) { @@ -3699,6 +3699,7 @@ process_pm_pmsignal(void) /* WAL redo has started. We're out of reinitialization. */ FatalError = false; AbortStartTime = 0; + reachedConsistency = false; /* * Start the archiver if we're responsible for (re-)archiving received @@ -3724,8 +3725,14 @@ process_pm_pmsignal(void) UpdatePMState(PM_RECOVERY); } - if (CheckPostmasterSignal(PMSIGNAL_BEGIN_HOT_STANDBY) && + if (CheckPostmasterSignal(PMSIGNAL_RECOVERY_CONSISTENT) && pmState == PM_RECOVERY && Shutdown == NoShutdown) + { + reachedConsistency = true; + } + + if (CheckPostmasterSignal(PMSIGNAL_BEGIN_HOT_STANDBY) && + (pmState == PM_RECOVERY && Shutdown == NoShutdown)) { ereport(LOG, (errmsg("database system is ready to accept read-only connections"))); diff --git a/src/backend/regex/regc_pg_locale.c b/src/backend/regex/regc_pg_locale.c index ed7411df83d20..78193cfb964e5 100644 --- a/src/backend/regex/regc_pg_locale.c +++ b/src/backend/regex/regc_pg_locale.c @@ -21,22 +21,22 @@ #include "utils/pg_locale.h" /* - * To provide as much functionality as possible on a variety of platforms, - * without going so far as to implement everything from scratch, we use - * several implementation strategies depending on the situation: + * For the libc provider, to provide as much functionality as possible on a + * variety of platforms without going so far as to implement everything from + * scratch, we use several implementation strategies depending on the + * situation: * * 1. In C/POSIX collations, we use hard-wired code. We can't depend on * the functions since those will obey LC_CTYPE. Note that these * collations don't give a fig about multibyte characters. * - * 2. In the "default" collation (which is supposed to obey LC_CTYPE): - * - * 2a. When working in UTF8 encoding, we use the functions. + * 2. When working in UTF8 encoding, we use the functions. * This assumes that every platform uses Unicode codepoints directly - * as the wchar_t representation of Unicode. On some platforms + * as the wchar_t representation of Unicode. (XXX: ICU makes this assumption + * even for non-UTF8 encodings, which may be a problem.) On some platforms * wchar_t is only 16 bits wide, so we have to punt for codepoints > 0xFFFF. * - * 2b. In all other encodings, we use the functions for pg_wchar + * 3. In all other encodings, we use the functions for pg_wchar * values up to 255, and punt for values above that. This is 100% correct * only in single-byte encodings such as LATINn. However, non-Unicode * multibyte encodings are mostly Far Eastern character sets for which the @@ -46,14 +46,11 @@ * the platform's wchar_t representation matches what we do in pg_wchar * conversions. * - * 3. Here, we use the locale_t-extended forms of the and - * functions, under exactly the same cases as #2. - * - * There is one notable difference between cases 2 and 3: in the "default" - * collation we force ASCII letters to follow ASCII upcase/downcase rules, - * while in a non-default collation we just let the library functions do what - * they will. The case where this matters is treatment of I/i in Turkish, - * and the behavior is meant to match the upper()/lower() SQL functions. + * As a special case, in the "default" collation, (2) and (3) force ASCII + * letters to follow ASCII upcase/downcase rules, while in a non-default + * collation we just let the library functions do what they will. The case + * where this matters is treatment of I/i in Turkish, and the behavior is + * meant to match the upper()/lower() SQL functions. * * We store the active collation setting in static variables. In principle * it could be passed down to here via the regex library's "struct vars" data @@ -562,10 +559,16 @@ pg_wc_toupper(pg_wchar c) case PG_REGEX_STRATEGY_BUILTIN: return unicode_uppercase_simple(c); case PG_REGEX_STRATEGY_LIBC_WIDE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towupper_l((wint_t) c, pg_regex_locale->info.lt); /* FALL THRU */ case PG_REGEX_STRATEGY_LIBC_1BYTE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_toupper((unsigned char) c); if (c <= (pg_wchar) UCHAR_MAX) return toupper_l((unsigned char) c, pg_regex_locale->info.lt); return c; @@ -590,10 +593,16 @@ pg_wc_tolower(pg_wchar c) case PG_REGEX_STRATEGY_BUILTIN: return unicode_lowercase_simple(c); case PG_REGEX_STRATEGY_LIBC_WIDE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); if (sizeof(wchar_t) >= 4 || c <= (pg_wchar) 0xFFFF) return towlower_l((wint_t) c, pg_regex_locale->info.lt); /* FALL THRU */ case PG_REGEX_STRATEGY_LIBC_1BYTE: + /* force C behavior for ASCII characters, per comments above */ + if (pg_regex_locale->is_default && c <= (pg_wchar) 127) + return pg_ascii_tolower((unsigned char) c); if (c <= (pg_wchar) UCHAR_MAX) return tolower_l((unsigned char) c, pg_regex_locale->info.lt); return c; diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c index ee3101c093ec1..7b4ddf7a8f52f 100644 --- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c +++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c @@ -25,6 +25,7 @@ #include "common/connect.h" #include "funcapi.h" #include "libpq-fe.h" +#include "libpq/libpq-be-fe-helpers.h" #include "mb/pg_wchar.h" #include "miscadmin.h" #include "pgstat.h" @@ -113,8 +114,6 @@ static WalReceiverFunctionsType PQWalReceiverFunctions = { }; /* Prototypes for private functions */ -static PGresult *libpqrcv_PQexec(PGconn *streamConn, const char *query); -static PGresult *libpqrcv_PQgetResult(PGconn *streamConn); static char *stringlist_to_identifierstr(PGconn *conn, List *strings); /* @@ -148,7 +147,6 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical, bool must_use_password, const char *appname, char **err) { WalReceiverConn *conn; - PostgresPollingStatusType status; const char *keys[6]; const char *vals[6]; int i = 0; @@ -214,56 +212,17 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical, Assert(i < lengthof(keys)); conn = palloc0(sizeof(WalReceiverConn)); - conn->streamConn = PQconnectStartParams(keys, vals, - /* expand_dbname = */ true); - if (PQstatus(conn->streamConn) == CONNECTION_BAD) - goto bad_connection_errmsg; - - /* - * Poll connection until we have OK or FAILED status. - * - * Per spec for PQconnectPoll, first wait till socket is write-ready. - */ - status = PGRES_POLLING_WRITING; - do - { - int io_flag; - int rc; - - if (status == PGRES_POLLING_READING) - io_flag = WL_SOCKET_READABLE; -#ifdef WIN32 - /* Windows needs a different test while waiting for connection-made */ - else if (PQstatus(conn->streamConn) == CONNECTION_STARTED) - io_flag = WL_SOCKET_CONNECTED; -#endif - else - io_flag = WL_SOCKET_WRITEABLE; - - rc = WaitLatchOrSocket(MyLatch, - WL_EXIT_ON_PM_DEATH | WL_LATCH_SET | io_flag, - PQsocket(conn->streamConn), - 0, - WAIT_EVENT_LIBPQWALRECEIVER_CONNECT); - - /* Interrupted? */ - if (rc & WL_LATCH_SET) - { - ResetLatch(MyLatch); - ProcessWalRcvInterrupts(); - } - - /* If socket is ready, advance the libpq state machine */ - if (rc & io_flag) - status = PQconnectPoll(conn->streamConn); - } while (status != PGRES_POLLING_OK && status != PGRES_POLLING_FAILED); + conn->streamConn = + libpqsrv_connect_params(keys, vals, + /* expand_dbname = */ true, + WAIT_EVENT_LIBPQWALRECEIVER_CONNECT); if (PQstatus(conn->streamConn) != CONNECTION_OK) goto bad_connection_errmsg; if (must_use_password && !PQconnectionUsedPassword(conn->streamConn)) { - PQfinish(conn->streamConn); + libpqsrv_disconnect(conn->streamConn); pfree(conn); ereport(ERROR, @@ -281,8 +240,9 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical, { PGresult *res; - res = libpqrcv_PQexec(conn->streamConn, - ALWAYS_SECURE_SEARCH_PATH_SQL); + res = libpqsrv_exec(conn->streamConn, + ALWAYS_SECURE_SEARCH_PATH_SQL, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (PQresultStatus(res) != PGRES_TUPLES_OK) { PQclear(res); @@ -303,7 +263,7 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical, /* error path, error already set */ bad_connection: - PQfinish(conn->streamConn); + libpqsrv_disconnect(conn->streamConn); pfree(conn); return NULL; } @@ -454,7 +414,9 @@ libpqrcv_identify_system(WalReceiverConn *conn, TimeLineID *primary_tli) * Get the system identifier and timeline ID as a DataRow message from the * primary server. */ - res = libpqrcv_PQexec(conn->streamConn, "IDENTIFY_SYSTEM"); + res = libpqsrv_exec(conn->streamConn, + "IDENTIFY_SYSTEM", + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (PQresultStatus(res) != PGRES_TUPLES_OK) { PQclear(res); @@ -631,7 +593,9 @@ libpqrcv_startstreaming(WalReceiverConn *conn, options->proto.physical.startpointTLI); /* Start streaming. */ - res = libpqrcv_PQexec(conn->streamConn, cmd.data); + res = libpqsrv_exec(conn->streamConn, + cmd.data, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); pfree(cmd.data); if (PQresultStatus(res) == PGRES_COMMAND_OK) @@ -661,7 +625,7 @@ libpqrcv_endstreaming(WalReceiverConn *conn, TimeLineID *next_tli) PGresult *res; /* - * Send copy-end message. As in libpqrcv_PQexec, this could theoretically + * Send copy-end message. As in libpqsrv_exec, this could theoretically * block, but the risk seems small. */ if (PQputCopyEnd(conn->streamConn, NULL) <= 0 || @@ -681,7 +645,8 @@ libpqrcv_endstreaming(WalReceiverConn *conn, TimeLineID *next_tli) * If we had not yet received CopyDone from the backend, PGRES_COPY_OUT is * also possible in case we aborted the copy in mid-stream. */ - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (PQresultStatus(res) == PGRES_TUPLES_OK) { /* @@ -696,7 +661,8 @@ libpqrcv_endstreaming(WalReceiverConn *conn, TimeLineID *next_tli) PQclear(res); /* the result set should be followed by CommandComplete */ - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); } else if (PQresultStatus(res) == PGRES_COPY_OUT) { @@ -710,7 +676,8 @@ libpqrcv_endstreaming(WalReceiverConn *conn, TimeLineID *next_tli) pchomp(PQerrorMessage(conn->streamConn))))); /* CommandComplete should follow */ - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); } if (PQresultStatus(res) != PGRES_COMMAND_OK) @@ -721,7 +688,8 @@ libpqrcv_endstreaming(WalReceiverConn *conn, TimeLineID *next_tli) PQclear(res); /* Verify that there are no more results */ - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (res != NULL) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), @@ -746,7 +714,9 @@ libpqrcv_readtimelinehistoryfile(WalReceiverConn *conn, * Request the primary to send over the history file for given timeline. */ snprintf(cmd, sizeof(cmd), "TIMELINE_HISTORY %u", tli); - res = libpqrcv_PQexec(conn->streamConn, cmd); + res = libpqsrv_exec(conn->streamConn, + cmd, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (PQresultStatus(res) != PGRES_TUPLES_OK) { PQclear(res); @@ -776,114 +746,13 @@ libpqrcv_readtimelinehistoryfile(WalReceiverConn *conn, PQclear(res); } -/* - * Send a query and wait for the results by using the asynchronous libpq - * functions and socket readiness events. - * - * The function is modeled on libpqsrv_exec(), with the behavior difference - * being that it calls ProcessWalRcvInterrupts(). As an optimization, it - * skips try/catch, since all errors terminate the process. - * - * May return NULL, rather than an error result, on failure. - */ -static PGresult * -libpqrcv_PQexec(PGconn *streamConn, const char *query) -{ - PGresult *lastResult = NULL; - - /* - * PQexec() silently discards any prior query results on the connection. - * This is not required for this function as it's expected that the caller - * (which is this library in all cases) will behave correctly and we don't - * have to be backwards compatible with old libpq. - */ - - /* - * Submit the query. Since we don't use non-blocking mode, this could - * theoretically block. In practice, since we don't send very long query - * strings, the risk seems negligible. - */ - if (!PQsendQuery(streamConn, query)) - return NULL; - - for (;;) - { - /* Wait for, and collect, the next PGresult. */ - PGresult *result; - - result = libpqrcv_PQgetResult(streamConn); - if (result == NULL) - break; /* query is complete, or failure */ - - /* - * Emulate PQexec()'s behavior of returning the last result when there - * are many. We are fine with returning just last error message. - */ - PQclear(lastResult); - lastResult = result; - - if (PQresultStatus(lastResult) == PGRES_COPY_IN || - PQresultStatus(lastResult) == PGRES_COPY_OUT || - PQresultStatus(lastResult) == PGRES_COPY_BOTH || - PQstatus(streamConn) == CONNECTION_BAD) - break; - } - - return lastResult; -} - -/* - * Perform the equivalent of PQgetResult(), but watch for interrupts. - */ -static PGresult * -libpqrcv_PQgetResult(PGconn *streamConn) -{ - /* - * Collect data until PQgetResult is ready to get the result without - * blocking. - */ - while (PQisBusy(streamConn)) - { - int rc; - - /* - * We don't need to break down the sleep into smaller increments, - * since we'll get interrupted by signals and can handle any - * interrupts here. - */ - rc = WaitLatchOrSocket(MyLatch, - WL_EXIT_ON_PM_DEATH | WL_SOCKET_READABLE | - WL_LATCH_SET, - PQsocket(streamConn), - 0, - WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); - - /* Interrupted? */ - if (rc & WL_LATCH_SET) - { - ResetLatch(MyLatch); - ProcessWalRcvInterrupts(); - } - - /* Consume whatever data is available from the socket */ - if (PQconsumeInput(streamConn) == 0) - { - /* trouble; return NULL */ - return NULL; - } - } - - /* Now we can collect and return the next PGresult */ - return PQgetResult(streamConn); -} - /* * Disconnect connection to primary, if any. */ static void libpqrcv_disconnect(WalReceiverConn *conn) { - PQfinish(conn->streamConn); + libpqsrv_disconnect(conn->streamConn); PQfreemem(conn->recvBuf); pfree(conn); } @@ -937,13 +806,15 @@ libpqrcv_receive(WalReceiverConn *conn, char **buffer, { PGresult *res; - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (PQresultStatus(res) == PGRES_COMMAND_OK) { PQclear(res); /* Verify that there are no more results. */ - res = libpqrcv_PQgetResult(conn->streamConn); + res = libpqsrv_get_result(conn->streamConn, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); if (res != NULL) { PQclear(res); @@ -1094,7 +965,9 @@ libpqrcv_create_slot(WalReceiverConn *conn, const char *slotname, appendStringInfoString(&cmd, " PHYSICAL RESERVE_WAL"); } - res = libpqrcv_PQexec(conn->streamConn, cmd.data); + res = libpqsrv_exec(conn->streamConn, + cmd.data, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); pfree(cmd.data); if (PQresultStatus(res) != PGRES_TUPLES_OK) @@ -1139,7 +1012,7 @@ libpqrcv_alter_slot(WalReceiverConn *conn, const char *slotname, *failover ? "true" : "false"); if (failover && two_phase) - appendStringInfo(&cmd, ", "); + appendStringInfoString(&cmd, ", "); if (two_phase) appendStringInfo(&cmd, "TWO_PHASE %s", @@ -1147,7 +1020,8 @@ libpqrcv_alter_slot(WalReceiverConn *conn, const char *slotname, appendStringInfoString(&cmd, " );"); - res = libpqrcv_PQexec(conn->streamConn, cmd.data); + res = libpqsrv_exec(conn->streamConn, cmd.data, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); pfree(cmd.data); if (PQresultStatus(res) != PGRES_COMMAND_OK) @@ -1214,7 +1088,7 @@ libpqrcv_processTuples(PGresult *pgres, WalRcvExecResult *walres, { char *cstrs[MaxTupleAttributeNumber]; - ProcessWalRcvInterrupts(); + CHECK_FOR_INTERRUPTS(); /* Do the allocations in temporary context. */ oldcontext = MemoryContextSwitchTo(rowcontext); @@ -1260,7 +1134,9 @@ libpqrcv_exec(WalReceiverConn *conn, const char *query, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("the query interface requires a database connection"))); - pgres = libpqrcv_PQexec(conn->streamConn, query); + pgres = libpqsrv_exec(conn->streamConn, + query, + WAIT_EVENT_LIBPQWALRECEIVER_RECEIVE); switch (PQresultStatus(pgres)) { diff --git a/src/backend/replication/logical/conflict.c b/src/backend/replication/logical/conflict.c index f1e92f2fc1a35..97c4e26b58654 100644 --- a/src/backend/replication/logical/conflict.c +++ b/src/backend/replication/logical/conflict.c @@ -262,7 +262,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo, break; case CT_UPDATE_MISSING: - appendStringInfo(&err_detail, _("Could not find the row to be updated.")); + appendStringInfoString(&err_detail, _("Could not find the row to be updated.")); break; case CT_DELETE_ORIGIN_DIFFERS: @@ -281,7 +281,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo, break; case CT_DELETE_MISSING: - appendStringInfo(&err_detail, _("Could not find the row to be deleted.")); + appendStringInfoString(&err_detail, _("Could not find the row to be deleted.")); break; } @@ -304,7 +304,7 @@ errdetail_apply_conflict(EState *estate, ResultRelInfo *relinfo, if (err_msg->len > 0) appendStringInfoChar(err_msg, '\n'); - appendStringInfo(err_msg, "%s", err_detail.data); + appendStringInfoString(err_msg, err_detail.data); } /* diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index 78f9a0a11c4bb..cc03f0706e9c8 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -412,19 +412,24 @@ heap2_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) /* * If we don't have snapshot or we are just fast-forwarding, there is no - * point in decoding changes. + * point in decoding data changes. However, it's crucial to build the base + * snapshot during fast-forward mode (as is done in + * SnapBuildProcessChange()) because we require the snapshot's xmin when + * determining the candidate catalog_xmin for the replication slot. See + * SnapBuildProcessRunningXacts(). */ - if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT || - ctx->fast_forward) + if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT) return; switch (info) { case XLOG_HEAP2_MULTI_INSERT: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeMultiInsert(ctx, buf); break; case XLOG_HEAP2_NEW_CID: + if (!ctx->fast_forward) { xl_heap_new_cid *xlrec; @@ -471,16 +476,20 @@ heap_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) /* * If we don't have snapshot or we are just fast-forwarding, there is no - * point in decoding data changes. + * point in decoding data changes. However, it's crucial to build the base + * snapshot during fast-forward mode (as is done in + * SnapBuildProcessChange()) because we require the snapshot's xmin when + * determining the candidate catalog_xmin for the replication slot. See + * SnapBuildProcessRunningXacts(). */ - if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT || - ctx->fast_forward) + if (SnapBuildCurrentState(builder) < SNAPBUILD_FULL_SNAPSHOT) return; switch (info) { case XLOG_HEAP_INSERT: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeInsert(ctx, buf); break; @@ -491,17 +500,20 @@ heap_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) */ case XLOG_HEAP_HOT_UPDATE: case XLOG_HEAP_UPDATE: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeUpdate(ctx, buf); break; case XLOG_HEAP_DELETE: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeDelete(ctx, buf); break; case XLOG_HEAP_TRUNCATE: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeTruncate(ctx, buf); break; @@ -525,7 +537,8 @@ heap_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) break; case XLOG_HEAP_CONFIRM: - if (SnapBuildProcessChange(builder, xid, buf->origptr)) + if (SnapBuildProcessChange(builder, xid, buf->origptr) && + !ctx->fast_forward) DecodeSpecConfirm(ctx, buf); break; diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c index a8d2e024d3444..1d56d0c4ef314 100644 --- a/src/backend/replication/logical/logical.c +++ b/src/backend/replication/logical/logical.c @@ -1828,7 +1828,19 @@ LogicalConfirmReceivedLocation(XLogRecPtr lsn) SpinLockAcquire(&MyReplicationSlot->mutex); - MyReplicationSlot->data.confirmed_flush = lsn; + /* + * Prevent moving the confirmed_flush backwards, as this could lead to + * data duplication issues caused by replicating already replicated + * changes. + * + * This can happen when a client acknowledges an LSN it doesn't have + * to do anything for, and thus didn't store persistently. After a + * restart, the client can send the prior LSN that it stored + * persistently as an acknowledgement, but we need to ignore such an + * LSN. See similar case handling in CreateDecodingContext. + */ + if (lsn > MyReplicationSlot->data.confirmed_flush) + MyReplicationSlot->data.confirmed_flush = lsn; /* if we're past the location required for bumping xmin, do so */ if (MyReplicationSlot->candidate_xmin_lsn != InvalidXLogRecPtr && @@ -1893,7 +1905,14 @@ LogicalConfirmReceivedLocation(XLogRecPtr lsn) else { SpinLockAcquire(&MyReplicationSlot->mutex); - MyReplicationSlot->data.confirmed_flush = lsn; + + /* + * Prevent moving the confirmed_flush backwards. See comments above + * for the details. + */ + if (lsn > MyReplicationSlot->data.confirmed_flush) + MyReplicationSlot->data.confirmed_flush = lsn; + SpinLockRelease(&MyReplicationSlot->mutex); } } diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c index 6583dd497da21..a17bacf88e7f3 100644 --- a/src/backend/replication/logical/origin.c +++ b/src/backend/replication/logical/origin.c @@ -264,6 +264,18 @@ replorigin_create(const char *roname) SysScanDesc scan; ScanKeyData key; + /* + * To avoid needing a TOAST table for pg_replication_origin, we limit + * replication origin names to 512 bytes. This should be more than enough + * for all practical use. + */ + if (strlen(roname) > MAX_RONAME_LEN) + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmsg("replication origin name is too long"), + errdetail("Replication origin names must be no longer than %d bytes.", + MAX_RONAME_LEN))); + roname_d = CStringGetTextDatum(roname); Assert(IsTransactionState()); @@ -287,6 +299,17 @@ replorigin_create(const char *roname) rel = table_open(ReplicationOriginRelationId, ExclusiveLock); + /* + * We want to be able to access pg_replication_origin without setting up a + * snapshot. To make that safe, it needs to not have a TOAST table, since + * TOASTed data cannot be fetched without a snapshot. As of this writing, + * its only varlena column is roname, which we limit to 512 bytes to avoid + * needing out-of-line storage. If you add a TOAST table to this catalog, + * be sure to set up a snapshot everywhere it might be needed. For more + * information, see https://postgr.es/m/ZvMSUPOqUU-VNADN%40nathan. + */ + Assert(!OidIsValid(rel->rd_rel->reltoastrelid)); + for (roident = InvalidOid + 1; roident < PG_UINT16_MAX; roident++) { bool nulls[Natts_pg_replication_origin]; diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c index 46d15b824e380..f59046ad620da 100644 --- a/src/backend/replication/logical/relation.c +++ b/src/backend/replication/logical/relation.c @@ -238,7 +238,7 @@ logicalrep_get_attrs_str(LogicalRepRelation *remoterel, Bitmapset *atts) { attcnt++; if (attcnt > 1) - appendStringInfo(&attsbuf, _(", ")); + appendStringInfoString(&attsbuf, _(", ")); appendStringInfo(&attsbuf, _("\"%s\""), remoterel->attnames[i]); } diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 977fbcd247417..676551118753d 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -5460,3 +5460,26 @@ ResolveCminCmaxDuringDecoding(HTAB *tuplecid_data, *cmax = ent->cmax; return true; } + +/* + * Count invalidation messages of specified transaction. + * + * Returns number of messages, and msgs is set to the pointer of the linked + * list for the messages. + */ +uint32 +ReorderBufferGetInvalidations(ReorderBuffer *rb, TransactionId xid, + SharedInvalidationMessage **msgs) +{ + ReorderBufferTXN *txn; + + txn = ReorderBufferTXNByXid(rb, xid, false, NULL, InvalidXLogRecPtr, + false); + + if (txn == NULL) + return 0; + + *msgs = txn->invalidations; + + return txn->ninvalidations; +} diff --git a/src/backend/replication/logical/slotsync.c b/src/backend/replication/logical/slotsync.c index 2c0a7439be41d..656e66e0ae0a1 100644 --- a/src/backend/replication/logical/slotsync.c +++ b/src/backend/replication/logical/slotsync.c @@ -139,6 +139,7 @@ typedef struct RemoteSlot bool failover; XLogRecPtr restart_lsn; XLogRecPtr confirmed_lsn; + XLogRecPtr two_phase_at; TransactionId catalog_xmin; /* RS_INVAL_NONE if valid, or the reason of invalidation */ @@ -195,14 +196,14 @@ update_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid, * restart_lsn or the initial xmin_horizon computed for the local slot * is ahead of the remote slot. * - * If the slot is persistent, restart_lsn of the synced slot could - * still be ahead of the remote slot. Since we use slot advance - * functionality to keep snapbuild/slot updated, it is possible that - * the restart_lsn is advanced to a later position than it has on the - * primary. This can happen when slot advancing machinery finds - * running xacts record after reaching the consistent state at a later - * point than the primary where it serializes the snapshot and updates - * the restart_lsn. + * If the slot is persistent, both restart_lsn and catalog_xmin of the + * synced slot could still be ahead of the remote slot. Since we use + * slot advance functionality to keep snapbuild/slot updated, it is + * possible that the restart_lsn and catalog_xmin are advanced to a + * later position than it has on the primary. This can happen when + * slot advancing machinery finds running xacts record after reaching + * the consistent state at a later point than the primary where it + * serializes the snapshot and updates the restart_lsn. * * We LOG the message if the slot is temporary as it can help the user * to understand why the slot is not sync-ready. In the case of a @@ -220,16 +221,25 @@ update_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid, if (remote_slot_precedes) *remote_slot_precedes = true; + + /* + * Skip updating the configuration. This is required to avoid syncing + * two_phase_at without syncing confirmed_lsn. Otherwise, the prepared + * transaction between old confirmed_lsn and two_phase_at will + * unexpectedly get decoded and sent to the downstream after + * promotion. See comments in ReorderBufferFinishPrepared. + */ + return false; } /* * Attempt to sync LSNs and xmins only if remote slot is ahead of local * slot. */ - else if (remote_slot->confirmed_lsn > slot->data.confirmed_flush || - remote_slot->restart_lsn > slot->data.restart_lsn || - TransactionIdFollows(remote_slot->catalog_xmin, - slot->data.catalog_xmin)) + if (remote_slot->confirmed_lsn > slot->data.confirmed_flush || + remote_slot->restart_lsn > slot->data.restart_lsn || + TransactionIdFollows(remote_slot->catalog_xmin, + slot->data.catalog_xmin)) { /* * We can't directly copy the remote slot's LSN or xmin unless there @@ -276,7 +286,8 @@ update_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid, if (remote_dbid != slot->data.database || remote_slot->two_phase != slot->data.two_phase || remote_slot->failover != slot->data.failover || - strcmp(remote_slot->plugin, NameStr(slot->data.plugin)) != 0) + strcmp(remote_slot->plugin, NameStr(slot->data.plugin)) != 0 || + remote_slot->two_phase_at != slot->data.two_phase_at) { NameData plugin_name; @@ -287,10 +298,17 @@ update_local_synced_slot(RemoteSlot *remote_slot, Oid remote_dbid, slot->data.plugin = plugin_name; slot->data.database = remote_dbid; slot->data.two_phase = remote_slot->two_phase; + slot->data.two_phase_at = remote_slot->two_phase_at; slot->data.failover = remote_slot->failover; SpinLockRelease(&slot->mutex); updated_config = true; + + /* + * Ensure that there is no risk of sending prepared transactions + * unexpectedly after the promotion. + */ + Assert(slot->data.two_phase_at <= slot->data.confirmed_flush); } /* @@ -788,9 +806,9 @@ synchronize_one_slot(RemoteSlot *remote_slot, Oid remote_dbid) static bool synchronize_slots(WalReceiverConn *wrconn) { -#define SLOTSYNC_COLUMN_COUNT 9 +#define SLOTSYNC_COLUMN_COUNT 10 Oid slotRow[SLOTSYNC_COLUMN_COUNT] = {TEXTOID, TEXTOID, LSNOID, - LSNOID, XIDOID, BOOLOID, BOOLOID, TEXTOID, TEXTOID}; + LSNOID, XIDOID, BOOLOID, LSNOID, BOOLOID, TEXTOID, TEXTOID}; WalRcvExecResult *res; TupleTableSlot *tupslot; @@ -798,7 +816,7 @@ synchronize_slots(WalReceiverConn *wrconn) bool some_slot_updated = false; bool started_tx = false; const char *query = "SELECT slot_name, plugin, confirmed_flush_lsn," - " restart_lsn, catalog_xmin, two_phase, failover," + " restart_lsn, catalog_xmin, two_phase, two_phase_at, failover," " database, invalidation_reason" " FROM pg_catalog.pg_replication_slots" " WHERE failover and NOT temporary"; @@ -853,6 +871,9 @@ synchronize_slots(WalReceiverConn *wrconn) &isnull)); Assert(!isnull); + d = slot_getattr(tupslot, ++col, &isnull); + remote_slot->two_phase_at = isnull ? InvalidXLogRecPtr : DatumGetLSN(d); + remote_slot->failover = DatumGetBool(slot_getattr(tupslot, ++col, &isnull)); Assert(!isnull); diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index b64e53de017b9..0d7bddbe4ed4e 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -161,7 +161,7 @@ static void SnapBuildFreeSnapshot(Snapshot snap); static void SnapBuildSnapIncRefcount(Snapshot snap); -static void SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn); +static void SnapBuildDistributeSnapshotAndInval(SnapBuild *builder, XLogRecPtr lsn, TransactionId xid); static inline bool SnapBuildXidHasCatalogChanges(SnapBuild *builder, TransactionId xid, uint32 xinfo); @@ -720,15 +720,15 @@ SnapBuildProcessNewCid(SnapBuild *builder, TransactionId xid, } /* - * Add a new Snapshot to all transactions we're decoding that currently are - * in-progress so they can see new catalog contents made by the transaction - * that just committed. This is necessary because those in-progress - * transactions will use the new catalog's contents from here on (at the very - * least everything they do needs to be compatible with newer catalog - * contents). + * Add a new Snapshot and invalidation messages to all transactions we're + * decoding that currently are in-progress so they can see new catalog contents + * made by the transaction that just committed. This is necessary because those + * in-progress transactions will use the new catalog's contents from here on + * (at the very least everything they do needs to be compatible with newer + * catalog contents). */ static void -SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn) +SnapBuildDistributeSnapshotAndInval(SnapBuild *builder, XLogRecPtr lsn, TransactionId xid) { dlist_iter txn_i; ReorderBufferTXN *txn; @@ -736,7 +736,8 @@ SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn) /* * Iterate through all toplevel transactions. This can include * subtransactions which we just don't yet know to be that, but that's - * fine, they will just get an unnecessary snapshot queued. + * fine, they will just get an unnecessary snapshot and invalidations + * queued. */ dlist_foreach(txn_i, &builder->reorder->toplevel_by_lsn) { @@ -749,6 +750,15 @@ SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn) * transaction which in turn implies we don't yet need a snapshot at * all. We'll add a snapshot when the first change gets queued. * + * Similarly, we don't need to add invalidations to a transaction + * whose base snapshot is not yet set. Once a base snapshot is built, + * it will include the xids of committed transactions that have + * modified the catalog, thus reflecting the new catalog contents. The + * existing catalog cache will have already been invalidated after + * processing the invalidations in the transaction that modified + * catalogs, ensuring that a fresh cache is constructed during + * decoding. + * * NB: This works correctly even for subtransactions because * ReorderBufferAssignChild() takes care to transfer the base snapshot * to the top-level transaction, and while iterating the changequeue @@ -758,13 +768,13 @@ SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn) continue; /* - * We don't need to add snapshot to prepared transactions as they - * should not see the new catalog contents. + * We don't need to add snapshot or invalidations to prepared + * transactions as they should not see the new catalog contents. */ if (rbtxn_is_prepared(txn)) continue; - elog(DEBUG2, "adding a new snapshot to %u at %X/%X", + elog(DEBUG2, "adding a new snapshot and invalidations to %u at %X/%X", txn->xid, LSN_FORMAT_ARGS(lsn)); /* @@ -774,6 +784,33 @@ SnapBuildDistributeNewCatalogSnapshot(SnapBuild *builder, XLogRecPtr lsn) SnapBuildSnapIncRefcount(builder->snapshot); ReorderBufferAddSnapshot(builder->reorder, txn->xid, lsn, builder->snapshot); + + /* + * Add invalidation messages to the reorder buffer of in-progress + * transactions except the current committed transaction, for which we + * will execute invalidations at the end. + * + * It is required, otherwise, we will end up using the stale catcache + * contents built by the current transaction even after its decoding, + * which should have been invalidated due to concurrent catalog + * changing transaction. + */ + if (txn->xid != xid) + { + uint32 ninvalidations; + SharedInvalidationMessage *msgs = NULL; + + ninvalidations = ReorderBufferGetInvalidations(builder->reorder, + xid, &msgs); + + if (ninvalidations > 0) + { + Assert(msgs != NULL); + + ReorderBufferAddInvalidations(builder->reorder, txn->xid, lsn, + ninvalidations, msgs); + } + } } } @@ -1045,8 +1082,11 @@ SnapBuildCommitTxn(SnapBuild *builder, XLogRecPtr lsn, TransactionId xid, /* refcount of the snapshot builder for the new snapshot */ SnapBuildSnapIncRefcount(builder->snapshot); - /* add a new catalog snapshot to all currently running transactions */ - SnapBuildDistributeNewCatalogSnapshot(builder, lsn); + /* + * Add a new catalog snapshot and invalidations messages to all + * currently running transactions. + */ + SnapBuildDistributeSnapshotAndInval(builder, lsn, xid); } } diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index 65b98aa905fe7..8e1e8762f6258 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -940,15 +940,15 @@ fetch_remote_table_info(char *nspname, char *relname, LogicalRepRelation *lrel, * Now fetch column names and types. */ resetStringInfo(&cmd); - appendStringInfo(&cmd, - "SELECT a.attnum," - " a.attname," - " a.atttypid," - " a.attnum = ANY(i.indkey)"); + appendStringInfoString(&cmd, + "SELECT a.attnum," + " a.attname," + " a.atttypid," + " a.attnum = ANY(i.indkey)"); /* Generated columns can be replicated since version 18. */ if (server_version >= 180000) - appendStringInfo(&cmd, ", a.attgenerated != ''"); + appendStringInfoString(&cmd, ", a.attgenerated != ''"); appendStringInfo(&cmd, " FROM pg_catalog.pg_attribute a" diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index e3b2b14494208..4151a4b2a96ba 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -414,6 +414,8 @@ static inline void reset_apply_error_context_info(void); static TransApplyAction get_transaction_apply_action(TransactionId xid, ParallelApplyWorkerInfo **winfo); +static void replorigin_reset(int code, Datum arg); + /* * Form the origin name for the subscription. * @@ -2457,7 +2459,7 @@ apply_handle_insert(StringInfo s) { ResultRelInfo *relinfo = edata->targetRelInfo; - ExecOpenIndices(relinfo, true); + ExecOpenIndices(relinfo, false); apply_handle_insert_internal(edata, relinfo, remoteslot); ExecCloseIndices(relinfo); } @@ -2680,7 +2682,7 @@ apply_handle_update_internal(ApplyExecutionData *edata, MemoryContext oldctx; EvalPlanQualInit(&epqstate, estate, NULL, NIL, -1, NIL); - ExecOpenIndices(relinfo, true); + ExecOpenIndices(relinfo, false); found = FindReplTupleInLocalRel(edata, localrel, &relmapentry->remoterel, @@ -4516,6 +4518,14 @@ start_apply(XLogRecPtr origin_startpos) } PG_CATCH(); { + /* + * Reset the origin state to prevent the advancement of origin + * progress if we fail to apply. Otherwise, this will result in + * transaction loss as that transaction won't be sent again by the + * server. + */ + replorigin_reset(0, (Datum) 0); + if (MySubscription->disableonerr) DisableSubscriptionAndExit(); else @@ -5004,23 +5014,12 @@ void apply_error_callback(void *arg) { ApplyErrorCallbackArg *errarg = &apply_error_callback_arg; - int elevel; if (apply_error_callback_arg.command == 0) return; Assert(errarg->origin_name); - elevel = geterrlevel(); - - /* - * Reset the origin state to prevent the advancement of origin progress if - * we fail to apply. Otherwise, this will result in transaction loss as - * that transaction won't be sent again by the server. - */ - if (elevel >= ERROR) - replorigin_reset(0, (Datum) 0); - if (errarg->rel == NULL) { if (!TransactionIdIsValid(errarg->remote_xid)) diff --git a/src/backend/replication/slotfuncs.c b/src/backend/replication/slotfuncs.c index 146eef5871e28..36cc2ed4e440f 100644 --- a/src/backend/replication/slotfuncs.c +++ b/src/backend/replication/slotfuncs.c @@ -235,7 +235,7 @@ pg_drop_replication_slot(PG_FUNCTION_ARGS) Datum pg_get_replication_slots(PG_FUNCTION_ARGS) { -#define PG_GET_REPLICATION_SLOTS_COLS 19 +#define PG_GET_REPLICATION_SLOTS_COLS 20 ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo; XLogRecPtr currlsn; int slotno; @@ -406,6 +406,12 @@ pg_get_replication_slots(PG_FUNCTION_ARGS) values[i++] = BoolGetDatum(slot_contents.data.two_phase); + if (slot_contents.data.two_phase && + !XLogRecPtrIsInvalid(slot_contents.data.two_phase_at)) + values[i++] = LSNGetDatum(slot_contents.data.two_phase_at); + else + nulls[i++] = true; + if (slot_contents.inactive_since > 0) values[i++] = TimestampTzGetDatum(slot_contents.inactive_since); else @@ -678,6 +684,13 @@ copy_replication_slot(FunctionCallInfo fcinfo, bool logical_slot) (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("cannot copy a replication slot that doesn't reserve WAL"))); + /* Cannot copy an invalidated replication slot */ + if (first_slot_contents.data.invalidated != RS_INVAL_NONE) + ereport(ERROR, + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("cannot copy invalidated replication slot \"%s\"", + NameStr(*src_name))); + /* Overwrite params from optional arguments */ if (PG_NARGS() >= 3) temporary = PG_GETARG_BOOL(2); @@ -779,6 +792,20 @@ copy_replication_slot(FunctionCallInfo fcinfo, bool logical_slot) NameStr(*src_name)), errhint("Retry when the source replication slot's confirmed_flush_lsn is valid."))); + /* + * Copying an invalid slot doesn't make sense. Note that the source + * slot can become invalid after we create the new slot and copy the + * data of source slot. This is possible because the operations in + * InvalidateObsoleteReplicationSlots() are not serialized with this + * function. Even though we can't detect such a case here, the copied + * slot will become invalid in the next checkpoint cycle. + */ + if (second_slot_contents.data.invalidated != RS_INVAL_NONE) + ereport(ERROR, + errmsg("cannot copy replication slot \"%s\"", + NameStr(*src_name)), + errdetail("The source replication slot was invalidated during the copy operation.")); + /* Install copied values again */ SpinLockAcquire(&MyReplicationSlot->mutex); MyReplicationSlot->effective_xmin = copy_effective_xmin; diff --git a/src/backend/replication/syncrep.c b/src/backend/replication/syncrep.c index d75e396803551..cc35984ad0085 100644 --- a/src/backend/replication/syncrep.c +++ b/src/backend/replication/syncrep.c @@ -161,16 +161,23 @@ SyncRepWaitForLSN(XLogRecPtr lsn, bool commit) * sync replication standby names defined. * * Since this routine gets called every commit time, it's important to - * exit quickly if sync replication is not requested. So we check - * WalSndCtl->sync_standbys_defined flag without the lock and exit - * immediately if it's false. If it's true, we need to check it again - * later while holding the lock, to check the flag and operate the sync - * rep queue atomically. This is necessary to avoid the race condition - * described in SyncRepUpdateSyncStandbysDefined(). On the other hand, if - * it's false, the lock is not necessary because we don't touch the queue. + * exit quickly if sync replication is not requested. + * + * We check WalSndCtl->sync_standbys_status flag without the lock and exit + * immediately if SYNC_STANDBY_INIT is set (the checkpointer has + * initialized this data) but SYNC_STANDBY_DEFINED is missing (no sync + * replication requested). + * + * If SYNC_STANDBY_DEFINED is set, we need to check the status again later + * while holding the lock, to check the flag and operate the sync rep + * queue atomically. This is necessary to avoid the race condition + * described in SyncRepUpdateSyncStandbysDefined(). On the other hand, if + * SYNC_STANDBY_DEFINED is not set, the lock is not necessary because we + * don't touch the queue. */ if (!SyncRepRequested() || - !((volatile WalSndCtlData *) WalSndCtl)->sync_standbys_defined) + ((((volatile WalSndCtlData *) WalSndCtl)->sync_standbys_status) & + (SYNC_STANDBY_INIT | SYNC_STANDBY_DEFINED)) == SYNC_STANDBY_INIT) return; /* Cap the level for anything other than commit to remote flush only. */ @@ -186,16 +193,52 @@ SyncRepWaitForLSN(XLogRecPtr lsn, bool commit) Assert(MyProc->syncRepState == SYNC_REP_NOT_WAITING); /* - * We don't wait for sync rep if WalSndCtl->sync_standbys_defined is not - * set. See SyncRepUpdateSyncStandbysDefined. + * We don't wait for sync rep if SYNC_STANDBY_DEFINED is not set. See + * SyncRepUpdateSyncStandbysDefined(). * * Also check that the standby hasn't already replied. Unlikely race * condition but we'll be fetching that cache line anyway so it's likely * to be a low cost check. + * + * If the sync standby data has not been initialized yet + * (SYNC_STANDBY_INIT is not set), fall back to a check based on the LSN, + * then do a direct GUC check. */ - if (!WalSndCtl->sync_standbys_defined || - lsn <= WalSndCtl->lsn[mode]) + if (WalSndCtl->sync_standbys_status & SYNC_STANDBY_INIT) + { + if ((WalSndCtl->sync_standbys_status & SYNC_STANDBY_DEFINED) == 0 || + lsn <= WalSndCtl->lsn[mode]) + { + LWLockRelease(SyncRepLock); + return; + } + } + else if (lsn <= WalSndCtl->lsn[mode]) { + /* + * The LSN is older than what we need to wait for. The sync standby + * data has not been initialized yet, but we are OK to not wait + * because we know that there is no point in doing so based on the + * LSN. + */ + LWLockRelease(SyncRepLock); + return; + } + else if (!SyncStandbysDefined()) + { + /* + * If we are here, the sync standby data has not been initialized yet, + * and the LSN is newer than what need to wait for, so we have fallen + * back to the best thing we could do in this case: a check on + * SyncStandbysDefined() to see if the GUC is set or not. + * + * When the GUC has a value, we wait until the checkpointer updates + * the status data because we cannot be sure yet if we should wait or + * not. Here, the GUC has *no* value, we are sure that there is no + * point to wait; this matters for example when initializing a + * cluster, where we should never wait, and no sync standbys is the + * default behavior. + */ LWLockRelease(SyncRepLock); return; } @@ -912,7 +955,7 @@ SyncRepWakeQueue(bool all, int mode) /* * The checkpointer calls this as needed to update the shared - * sync_standbys_defined flag, so that backends don't remain permanently wedged + * sync_standbys_status flag, so that backends don't remain permanently wedged * if synchronous_standby_names is unset. It's safe to check the current value * without the lock, because it's only ever updated by one process. But we * must take the lock to change it. @@ -922,7 +965,8 @@ SyncRepUpdateSyncStandbysDefined(void) { bool sync_standbys_defined = SyncStandbysDefined(); - if (sync_standbys_defined != WalSndCtl->sync_standbys_defined) + if (sync_standbys_defined != + ((WalSndCtl->sync_standbys_status & SYNC_STANDBY_DEFINED) != 0)) { LWLockAcquire(SyncRepLock, LW_EXCLUSIVE); @@ -946,7 +990,30 @@ SyncRepUpdateSyncStandbysDefined(void) * backend that hasn't yet reloaded its config might go to sleep on * the queue (and never wake up). This prevents that. */ - WalSndCtl->sync_standbys_defined = sync_standbys_defined; + WalSndCtl->sync_standbys_status = SYNC_STANDBY_INIT | + (sync_standbys_defined ? SYNC_STANDBY_DEFINED : 0); + + LWLockRelease(SyncRepLock); + } + else if ((WalSndCtl->sync_standbys_status & SYNC_STANDBY_INIT) == 0) + { + LWLockAcquire(SyncRepLock, LW_EXCLUSIVE); + + /* + * Note that there is no need to wake up the queues here. We would + * reach this path only if SyncStandbysDefined() returns false, or it + * would mean that some backends are waiting with the GUC set. See + * SyncRepWaitForLSN(). + */ + Assert(!SyncStandbysDefined()); + + /* + * Even if there is no sync standby defined, let the readers of this + * information know that the sync standby data has been initialized. + * This can just be done once, hence the previous check on + * SYNC_STANDBY_INIT to avoid useless work. + */ + WalSndCtl->sync_standbys_status |= SYNC_STANDBY_INIT; LWLockRelease(SyncRepLock); } diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 2e5dd6deb2c2e..8c4d0fd9aed2b 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -71,6 +71,7 @@ #include "storage/proc.h" #include "storage/procarray.h" #include "storage/procsignal.h" +#include "tcop/tcopprot.h" #include "utils/acl.h" #include "utils/builtins.h" #include "utils/guc.h" @@ -145,38 +146,6 @@ static void XLogWalRcvSendHSFeedback(bool immed); static void ProcessWalSndrMessage(XLogRecPtr walEnd, TimestampTz sendTime); static void WalRcvComputeNextWakeup(WalRcvWakeupReason reason, TimestampTz now); -/* - * Process any interrupts the walreceiver process may have received. - * This should be called any time the process's latch has become set. - * - * Currently, only SIGTERM is of interest. We can't just exit(1) within the - * SIGTERM signal handler, because the signal might arrive in the middle of - * some critical operation, like while we're holding a spinlock. Instead, the - * signal handler sets a flag variable as well as setting the process's latch. - * We must check the flag (by calling ProcessWalRcvInterrupts) anytime the - * latch has become set. Operations that could block for a long time, such as - * reading from a remote server, must pay attention to the latch too; see - * libpqrcv_PQgetResult for example. - */ -void -ProcessWalRcvInterrupts(void) -{ - /* - * Although walreceiver interrupt handling doesn't use the same scheme as - * regular backends, call CHECK_FOR_INTERRUPTS() to make sure we receive - * any incoming signals on Win32, and also to make sure we process any - * barrier events. - */ - CHECK_FOR_INTERRUPTS(); - - if (ShutdownRequestPending) - { - ereport(FATAL, - (errcode(ERRCODE_ADMIN_SHUTDOWN), - errmsg("terminating walreceiver process due to administrator command"))); - } -} - /* Main entry point for walreceiver process */ void @@ -280,7 +249,7 @@ WalReceiverMain(const void *startup_data, size_t startup_data_len) pqsignal(SIGHUP, SignalHandlerForConfigReload); /* set flag to read config * file */ pqsignal(SIGINT, SIG_IGN); - pqsignal(SIGTERM, SignalHandlerForShutdownRequest); /* request shutdown */ + pqsignal(SIGTERM, die); /* request shutdown */ /* SIGQUIT handler was already set up by InitPostmasterChild */ pqsignal(SIGALRM, SIG_IGN); pqsignal(SIGPIPE, SIG_IGN); @@ -459,7 +428,7 @@ WalReceiverMain(const void *startup_data, size_t startup_data_len) errmsg("cannot continue WAL streaming, recovery has already ended"))); /* Process any requests or signals received recently */ - ProcessWalRcvInterrupts(); + CHECK_FOR_INTERRUPTS(); if (ConfigReloadPending) { @@ -555,7 +524,7 @@ WalReceiverMain(const void *startup_data, size_t startup_data_len) if (rc & WL_LATCH_SET) { ResetLatch(MyLatch); - ProcessWalRcvInterrupts(); + CHECK_FOR_INTERRUPTS(); if (walrcv->force_reply) { @@ -704,7 +673,7 @@ WalRcvWaitForStartPosition(XLogRecPtr *startpoint, TimeLineID *startpointTLI) { ResetLatch(MyLatch); - ProcessWalRcvInterrupts(); + CHECK_FOR_INTERRUPTS(); SpinLockAcquire(&walrcv->mutex); Assert(walrcv->walRcvState == WALRCV_RESTARTING || diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 1028919aecb14..9fa8beb6103d3 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -91,10 +91,14 @@ #include "utils/guc.h" #include "utils/memutils.h" #include "utils/pg_lsn.h" +#include "utils/pgstat_internal.h" #include "utils/ps_status.h" #include "utils/timeout.h" #include "utils/timestamp.h" +/* Minimum interval used by walsender for stats flushes, in ms */ +#define WALSENDER_STATS_FLUSH_INTERVAL 1000 + /* * Maximum data payload in a WAL data message. Must be >= XLOG_BLCKSZ. * @@ -1670,13 +1674,13 @@ WalSndUpdateProgress(LogicalDecodingContext *ctx, XLogRecPtr lsn, TransactionId * When skipping empty transactions in synchronous replication, we send a * keepalive message to avoid delaying such transactions. * - * It is okay to check sync_standbys_defined flag without lock here as in - * the worst case we will just send an extra keepalive message when it is + * It is okay to check sync_standbys_status without lock here as in the + * worst case we will just send an extra keepalive message when it is * really not required. */ if (skipped_xact && SyncRepRequested() && - ((volatile WalSndCtlData *) WalSndCtl)->sync_standbys_defined) + (((volatile WalSndCtlData *) WalSndCtl)->sync_standbys_status & SYNC_STANDBY_DEFINED)) { WalSndKeepalive(false, lsn); @@ -1797,6 +1801,7 @@ WalSndWaitForWal(XLogRecPtr loc) int wakeEvents; uint32 wait_event = 0; static XLogRecPtr RecentFlushPtr = InvalidXLogRecPtr; + TimestampTz last_flush = 0; /* * Fast path to avoid acquiring the spinlock in case we already know we @@ -1817,6 +1822,7 @@ WalSndWaitForWal(XLogRecPtr loc) { bool wait_for_standby_at_stop = false; long sleeptime; + TimestampTz now; /* Clear any already-pending wakeups */ ResetLatch(MyLatch); @@ -1927,7 +1933,8 @@ WalSndWaitForWal(XLogRecPtr loc) * new WAL to be generated. (But if we have nothing to send, we don't * want to wake on socket-writable.) */ - sleeptime = WalSndComputeSleeptime(GetCurrentTimestamp()); + now = GetCurrentTimestamp(); + sleeptime = WalSndComputeSleeptime(now); wakeEvents = WL_SOCKET_READABLE; @@ -1936,6 +1943,15 @@ WalSndWaitForWal(XLogRecPtr loc) Assert(wait_event != 0); + /* Report IO statistics, if needed */ + if (TimestampDifferenceExceeds(last_flush, now, + WALSENDER_STATS_FLUSH_INTERVAL)) + { + pgstat_flush_io(false); + (void) pgstat_flush_backend(false, PGSTAT_BACKEND_FLUSH_IO); + last_flush = now; + } + WalSndWait(wakeEvents, sleeptime, wait_event); } @@ -1957,8 +1973,10 @@ exec_replication_command(const char *cmd_string) int parse_rc; Node *cmd_node; const char *cmdtag; - MemoryContext cmd_context; - MemoryContext old_context; + MemoryContext old_context = CurrentMemoryContext; + + /* We save and re-use the cmd_context across calls */ + static MemoryContext cmd_context = NULL; /* * If WAL sender has been told that shutdown is getting close, switch its @@ -1987,11 +2005,30 @@ exec_replication_command(const char *cmd_string) /* * Prepare to parse and execute the command. + * + * Because replication command execution can involve beginning or ending + * transactions, we need a working context that will survive that, so we + * make it a child of TopMemoryContext. That in turn creates a hazard of + * long-lived memory leaks if we lose track of the working context. We + * deal with that by creating it only once per walsender, and resetting it + * for each new command. (Normally this reset is a no-op, but if the + * prior exec_replication_command call failed with an error, it won't be.) + * + * This is subtler than it looks. The transactions we manage can extend + * across replication commands, indeed SnapBuildClearExportedSnapshot + * might have just ended one. Because transaction exit will revert to the + * memory context that was current at transaction start, we need to be + * sure that that context is still valid. That motivates re-using the + * same cmd_context rather than making a new one each time. */ - cmd_context = AllocSetContextCreate(CurrentMemoryContext, - "Replication command context", - ALLOCSET_DEFAULT_SIZES); - old_context = MemoryContextSwitchTo(cmd_context); + if (cmd_context == NULL) + cmd_context = AllocSetContextCreate(TopMemoryContext, + "Replication command context", + ALLOCSET_DEFAULT_SIZES); + else + MemoryContextReset(cmd_context); + + MemoryContextSwitchTo(cmd_context); replication_scanner_init(cmd_string, &scanner); @@ -2004,7 +2041,7 @@ exec_replication_command(const char *cmd_string) replication_scanner_finish(scanner); MemoryContextSwitchTo(old_context); - MemoryContextDelete(cmd_context); + MemoryContextReset(cmd_context); /* XXX this is a pretty random place to make this check */ if (MyDatabaseId == InvalidOid) @@ -2164,9 +2201,12 @@ exec_replication_command(const char *cmd_string) cmd_node->type); } - /* done */ + /* + * Done. Revert to caller's memory context, and clean out the cmd_context + * to recover memory right away. + */ MemoryContextSwitchTo(old_context); - MemoryContextDelete(cmd_context); + MemoryContextReset(cmd_context); /* * We need not update ps display or pg_stat_activity, because PostgresMain @@ -2742,6 +2782,8 @@ WalSndCheckTimeOut(void) static void WalSndLoop(WalSndSendDataCallback send_data) { + TimestampTz last_flush = 0; + /* * Initialize the last reply timestamp. That enables timeout processing * from hereon. @@ -2836,6 +2878,9 @@ WalSndLoop(WalSndSendDataCallback send_data) * WalSndWaitForWal() handle any other blocking; idle receivers need * its additional actions. For physical replication, also block if * caught up; its send_data does not block. + * + * The IO statistics are reported in WalSndWaitForWal() for the + * logical WAL senders. */ if ((WalSndCaughtUp && send_data != XLogSendLogical && !streamingDoneSending) || @@ -2843,6 +2888,7 @@ WalSndLoop(WalSndSendDataCallback send_data) { long sleeptime; int wakeEvents; + TimestampTz now; if (!streamingDoneReceiving) wakeEvents = WL_SOCKET_READABLE; @@ -2853,11 +2899,21 @@ WalSndLoop(WalSndSendDataCallback send_data) * Use fresh timestamp, not last_processing, to reduce the chance * of reaching wal_sender_timeout before sending a keepalive. */ - sleeptime = WalSndComputeSleeptime(GetCurrentTimestamp()); + now = GetCurrentTimestamp(); + sleeptime = WalSndComputeSleeptime(now); if (pq_is_send_pending()) wakeEvents |= WL_SOCKET_WRITEABLE; + /* Report IO statistics, if needed */ + if (TimestampDifferenceExceeds(last_flush, now, + WALSENDER_STATS_FLUSH_INTERVAL)) + { + pgstat_flush_io(false); + (void) pgstat_flush_backend(false, PGSTAT_BACKEND_FLUSH_IO); + last_flush = now; + } + /* Sleep until something happens or we time out */ WalSndWait(wakeEvents, sleeptime, WAIT_EVENT_WAL_SENDER_MAIN); } diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 1c61085a0a764..cd786aa4112b5 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -550,19 +550,15 @@ offset_relid_set(Relids relids, int offset) * earlier to ensure that no unwanted side-effects occur! */ -typedef struct -{ - int rt_index; - int new_index; - int sublevels_up; - bool change_RangeTblRef; -} ChangeVarNodes_context; - static bool ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) { if (node == NULL) return false; + + if (context->callback && context->callback(node, context)) + return false; + if (IsA(node, Var)) { Var *var = (Var *) node; @@ -588,7 +584,7 @@ ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) cexpr->cvarno = context->new_index; return false; } - if (IsA(node, RangeTblRef) && context->change_RangeTblRef) + if (IsA(node, RangeTblRef)) { RangeTblRef *rtr = (RangeTblRef *) node; @@ -635,75 +631,6 @@ ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) } return false; } - if (IsA(node, RestrictInfo)) - { - RestrictInfo *rinfo = (RestrictInfo *) node; - int relid = -1; - bool is_req_equal = - (rinfo->required_relids == rinfo->clause_relids); - bool clause_relids_is_multiple = - (bms_membership(rinfo->clause_relids) == BMS_MULTIPLE); - - if (bms_is_member(context->rt_index, rinfo->clause_relids)) - { - expression_tree_walker((Node *) rinfo->clause, ChangeVarNodes_walker, (void *) context); - expression_tree_walker((Node *) rinfo->orclause, ChangeVarNodes_walker, (void *) context); - - rinfo->clause_relids = - adjust_relid_set(rinfo->clause_relids, context->rt_index, context->new_index); - rinfo->num_base_rels = bms_num_members(rinfo->clause_relids); - rinfo->left_relids = - adjust_relid_set(rinfo->left_relids, context->rt_index, context->new_index); - rinfo->right_relids = - adjust_relid_set(rinfo->right_relids, context->rt_index, context->new_index); - } - - if (is_req_equal) - rinfo->required_relids = rinfo->clause_relids; - else - rinfo->required_relids = - adjust_relid_set(rinfo->required_relids, context->rt_index, context->new_index); - - rinfo->outer_relids = - adjust_relid_set(rinfo->outer_relids, context->rt_index, context->new_index); - rinfo->incompatible_relids = - adjust_relid_set(rinfo->incompatible_relids, context->rt_index, context->new_index); - - if (rinfo->mergeopfamilies && - bms_get_singleton_member(rinfo->clause_relids, &relid) && - clause_relids_is_multiple && - relid == context->new_index && IsA(rinfo->clause, OpExpr)) - { - Expr *leftOp; - Expr *rightOp; - - leftOp = (Expr *) get_leftop(rinfo->clause); - rightOp = (Expr *) get_rightop(rinfo->clause); - - /* - * For self-join elimination, changing varnos could transform - * "t1.a = t2.a" into "t1.a = t1.a". That is always true as long - * as "t1.a" is not null. We use qual() to check for such a case, - * and then we replace the qual for a check for not null - * (NullTest). - */ - if (leftOp != NULL && equal(leftOp, rightOp)) - { - NullTest *ntest = makeNode(NullTest); - - ntest->arg = leftOp; - ntest->nulltesttype = IS_NOT_NULL; - ntest->argisrow = false; - ntest->location = -1; - rinfo->clause = (Expr *) ntest; - rinfo->mergeopfamilies = NIL; - rinfo->left_em = NULL; - rinfo->right_em = NULL; - } - Assert(rinfo->orclause == NULL); - } - return false; - } if (IsA(node, AppendRelInfo)) { AppendRelInfo *appinfo = (AppendRelInfo *) node; @@ -737,31 +664,46 @@ ChangeVarNodes_walker(Node *node, ChangeVarNodes_context *context) } /* - * ChangeVarNodesExtended - similar to ChangeVarNodes, but has additional - * 'change_RangeTblRef' param + * ChangeVarNodesExtended - similar to ChangeVarNodes, but with an additional + * 'callback' param * * ChangeVarNodes changes a given node and all of its underlying nodes. - * However, self-join elimination (SJE) needs to skip the RangeTblRef node - * type. During SJE's last step, remove_rel_from_joinlist() removes - * remaining RangeTblRefs with target relid. If ChangeVarNodes() replaces - * the target relid before, remove_rel_from_joinlist() fails to identify - * the nodes to delete. + * This version of function additionally takes a callback, which has a + * chance to process a node before ChangeVarNodes_walker. A callback + * returns a boolean value indicating if given node should be skipped from + * further processing by ChangeVarNodes_walker. The callback is called + * only for expressions and other children nodes of a Query processed by + * a walker. Initial processing of the root Query doesn't involve the + * callback. */ void ChangeVarNodesExtended(Node *node, int rt_index, int new_index, - int sublevels_up, bool change_RangeTblRef) + int sublevels_up, ChangeVarNodes_callback callback) { ChangeVarNodes_context context; context.rt_index = rt_index; context.new_index = new_index; context.sublevels_up = sublevels_up; - context.change_RangeTblRef = change_RangeTblRef; + context.callback = callback; + /* + * Must be prepared to start with a Query or a bare expression tree; if + * it's a Query, go straight to query_tree_walker to make sure that + * sublevels_up doesn't get incremented prematurely. + */ if (node && IsA(node, Query)) { Query *qry = (Query *) node; + /* + * If we are starting at a Query, and sublevels_up is zero, then we + * must also fix rangetable indexes in the Query itself --- namely + * resultRelation, mergeTargetRelation, exclRelIndex and rowMarks + * entries. sublevels_up cannot be zero when recursing into a + * subquery, so there's no need to have the same logic inside + * ChangeVarNodes_walker. + */ if (sublevels_up == 0) { ListCell *l; @@ -772,6 +714,7 @@ ChangeVarNodesExtended(Node *node, int rt_index, int new_index, if (qry->mergeTargetRelation == rt_index) qry->mergeTargetRelation = new_index; + /* this is unlikely to ever be used, but ... */ if (qry->onConflict && qry->onConflict->exclRelIndex == rt_index) qry->onConflict->exclRelIndex = new_index; @@ -792,7 +735,20 @@ ChangeVarNodesExtended(Node *node, int rt_index, int new_index, void ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up) { - ChangeVarNodesExtended(node, rt_index, new_index, sublevels_up, true); + ChangeVarNodesExtended(node, rt_index, new_index, sublevels_up, NULL); +} + +/* + * ChangeVarNodesWalkExpression - process expression within the custom + * callback provided to the + * ChangeVarNodesExtended. + */ +bool +ChangeVarNodesWalkExpression(Node *node, ChangeVarNodes_context *context) +{ + return expression_tree_walker(node, + ChangeVarNodes_walker, + (void *) context); } /* diff --git a/src/backend/statistics/attribute_stats.c b/src/backend/statistics/attribute_stats.c index f5eb17ba42d5f..ab198076401b0 100644 --- a/src/backend/statistics/attribute_stats.c +++ b/src/backend/statistics/attribute_stats.c @@ -547,7 +547,7 @@ get_attr_expr(Relation rel, int attnum) return NULL; /* - * The index attnum points directly to a relation attnum, then it's no an + * The index attnum points directly to a relation attnum, then it's not an * expression attribute. */ if (rel->rd_index->indkey.values[attnum - 1] != 0) diff --git a/src/backend/storage/aio/README.md b/src/backend/storage/aio/README.md index b00de269ad926..f10b5c7e31ec7 100644 --- a/src/backend/storage/aio/README.md +++ b/src/backend/storage/aio/README.md @@ -103,7 +103,7 @@ pgaio_io_set_handle_data_32(ioh, (uint32 *) buffer, 1); * * E.g. md.c needs to translate block numbers into offsets in segments. * - * Once the IO handle has been handed off to smgstartreadv(), it may not + * Once the IO handle has been handed off to smgrstartreadv(), it may not * further be used, as the IO may immediately get executed below * smgrstartreadv() and the handle reused for another IO. * diff --git a/src/backend/storage/aio/aio.c b/src/backend/storage/aio/aio.c index 86f7250b7a5f2..c64d815ebd12a 100644 --- a/src/backend/storage/aio/aio.c +++ b/src/backend/storage/aio/aio.c @@ -46,13 +46,10 @@ #include "storage/aio_subsys.h" #include "utils/guc.h" #include "utils/guc_hooks.h" +#include "utils/injection_point.h" #include "utils/resowner.h" #include "utils/wait_event_types.h" -#ifdef USE_INJECTION_POINTS -#include "utils/injection_point.h" -#endif - static inline void pgaio_io_update_state(PgAioHandle *ioh, PgAioHandleState new_state); static void pgaio_io_reclaim(PgAioHandle *ioh); @@ -96,17 +93,6 @@ static const IoMethodOps *const pgaio_method_ops_table[] = { const IoMethodOps *pgaio_method_ops; -/* - * Currently there's no infrastructure to pass arguments to injection points, - * so we instead set this up for the duration of the injection point - * invocation. See pgaio_io_call_inj(). - */ -#ifdef USE_INJECTION_POINTS -static PgAioHandle *pgaio_inj_cur_handle; -#endif - - - /* -------------------------------------------------------------------------------- * Public Functions related to PgAioHandle * -------------------------------------------------------------------------------- @@ -198,6 +184,8 @@ pgaio_io_acquire(struct ResourceOwnerData *resowner, PgAioReturn *ret) PgAioHandle * pgaio_io_acquire_nb(struct ResourceOwnerData *resowner, PgAioReturn *ret) { + PgAioHandle *ioh = NULL; + if (pgaio_my_backend->num_staged_ios >= PGAIO_SUBMIT_BATCH_SIZE) { Assert(pgaio_my_backend->num_staged_ios == PGAIO_SUBMIT_BATCH_SIZE); @@ -207,10 +195,17 @@ pgaio_io_acquire_nb(struct ResourceOwnerData *resowner, PgAioReturn *ret) if (pgaio_my_backend->handed_out_io) elog(ERROR, "API violation: Only one IO can be handed out"); + /* + * Probably not needed today, as interrupts should not process this IO, + * but... + */ + HOLD_INTERRUPTS(); + if (!dclist_is_empty(&pgaio_my_backend->idle_ios)) { dlist_node *ion = dclist_pop_head_node(&pgaio_my_backend->idle_ios); - PgAioHandle *ioh = dclist_container(PgAioHandle, node, ion); + + ioh = dclist_container(PgAioHandle, node, ion); Assert(ioh->state == PGAIO_HS_IDLE); Assert(ioh->owner_procno == MyProcNumber); @@ -226,11 +221,11 @@ pgaio_io_acquire_nb(struct ResourceOwnerData *resowner, PgAioReturn *ret) ioh->report_return = ret; ret->result.status = PGAIO_RS_UNKNOWN; } - - return ioh; } - return NULL; + RESUME_INTERRUPTS(); + + return ioh; } /* @@ -247,6 +242,12 @@ pgaio_io_release(PgAioHandle *ioh) Assert(ioh->resowner); pgaio_my_backend->handed_out_io = NULL; + + /* + * Note that no interrupts are processed between the handed_out_io + * check and the call to reclaim - that's important as otherwise an + * interrupt could have already reclaimed the handle. + */ pgaio_io_reclaim(ioh); } else @@ -265,6 +266,12 @@ pgaio_io_release_resowner(dlist_node *ioh_node, bool on_error) Assert(ioh->resowner); + /* + * Otherwise an interrupt, in the middle of releasing the IO, could end up + * trying to wait for the IO, leading to state confusion. + */ + HOLD_INTERRUPTS(); + ResourceOwnerForgetAioHandle(ioh->resowner, &ioh->resowner_node); ioh->resowner = NULL; @@ -305,6 +312,8 @@ pgaio_io_release_resowner(dlist_node *ioh_node, bool on_error) */ if (ioh->report_return) ioh->report_return = NULL; + + RESUME_INTERRUPTS(); } /* @@ -373,6 +382,13 @@ pgaio_io_get_wref(PgAioHandle *ioh, PgAioWaitRef *iow) static inline void pgaio_io_update_state(PgAioHandle *ioh, PgAioHandleState new_state) { + /* + * All callers need to have held interrupts in some form, otherwise + * interrupt processing could wait for the IO to complete, while in an + * intermediary state. + */ + Assert(!INTERRUPTS_CAN_BE_PROCESSED()); + pgaio_debug_io(DEBUG5, ioh, "updating state to %s", pgaio_io_state_get_name(new_state)); @@ -410,6 +426,13 @@ pgaio_io_stage(PgAioHandle *ioh, PgAioOp op) Assert(pgaio_my_backend->handed_out_io == ioh); Assert(pgaio_io_has_target(ioh)); + /* + * Otherwise an interrupt, in the middle of staging and possibly executing + * the IO, could end up trying to wait for the IO, leading to state + * confusion. + */ + HOLD_INTERRUPTS(); + ioh->op = op; ioh->result = 0; @@ -449,6 +472,8 @@ pgaio_io_stage(PgAioHandle *ioh, PgAioOp op) pgaio_io_prepare_submit(ioh); pgaio_io_perform_synchronously(ioh); } + + RESUME_INTERRUPTS(); } bool @@ -507,7 +532,7 @@ pgaio_io_process_completion(PgAioHandle *ioh, int result) pgaio_io_update_state(ioh, PGAIO_HS_COMPLETED_IO); - pgaio_io_call_inj(ioh, "AIO_PROCESS_COMPLETION_BEFORE_SHARED"); + INJECTION_POINT("aio-process-completion-before-shared", ioh); pgaio_io_call_complete_shared(ioh); @@ -558,8 +583,8 @@ pgaio_io_wait(PgAioHandle *ioh, uint64 ref_generation) && state != PGAIO_HS_COMPLETED_SHARED && state != PGAIO_HS_COMPLETED_LOCAL) { - elog(PANIC, "waiting for own IO in wrong state: %d", - state); + elog(PANIC, "waiting for own IO %d in wrong state: %s", + pgaio_io_get_id(ioh), pgaio_io_get_state_name(ioh)); } } @@ -613,7 +638,13 @@ pgaio_io_wait(PgAioHandle *ioh, uint64 ref_generation) case PGAIO_HS_COMPLETED_SHARED: case PGAIO_HS_COMPLETED_LOCAL: - /* see above */ + + /* + * Note that no interrupts are processed between + * pgaio_io_was_recycled() and this check - that's important + * as otherwise an interrupt could have already reclaimed the + * handle. + */ if (am_owner) pgaio_io_reclaim(ioh); return; @@ -624,6 +655,11 @@ pgaio_io_wait(PgAioHandle *ioh, uint64 ref_generation) /* * Make IO handle ready to be reused after IO has completed or after the * handle has been released without being used. + * + * Note that callers need to be careful about only calling this in the right + * state and that no interrupts can be processed between the state check and + * the call to pgaio_io_reclaim(). Otherwise interrupt processing could + * already have reclaimed the handle. */ static void pgaio_io_reclaim(PgAioHandle *ioh) @@ -632,6 +668,9 @@ pgaio_io_reclaim(PgAioHandle *ioh) Assert(ioh->owner_procno == MyProcNumber); Assert(ioh->state != PGAIO_HS_IDLE); + /* see comment in function header */ + HOLD_INTERRUPTS(); + /* * It's a bit ugly, but right now the easiest place to put the execution * of local completion callbacks is this function, as we need to execute @@ -670,6 +709,21 @@ pgaio_io_reclaim(PgAioHandle *ioh) Assert(!ioh->resowner); + /* + * Update generation & state first, before resetting the IO's fields, + * otherwise a concurrent "viewer" could think the fields are valid, even + * though they are being reset. Increment the generation first, so that + * we can assert elsewhere that we never wait for an IDLE IO. While it's + * a bit weird for the state to go backwards for a generation, it's OK + * here, as there cannot be references to the "reborn" IO yet. Can't + * update both at once, so something has to give. + */ + ioh->generation++; + pgaio_io_update_state(ioh, PGAIO_HS_IDLE); + + /* ensure the state update is visible before we reset fields */ + pg_write_barrier(); + ioh->op = PGAIO_OP_INVALID; ioh->target = PGAIO_TID_INVALID; ioh->flags = 0; @@ -679,17 +733,13 @@ pgaio_io_reclaim(PgAioHandle *ioh) ioh->result = 0; ioh->distilled_result.status = PGAIO_RS_UNKNOWN; - /* XXX: the barrier is probably superfluous */ - pg_write_barrier(); - ioh->generation++; - - pgaio_io_update_state(ioh, PGAIO_HS_IDLE); - /* * We push the IO to the head of the idle IO list, that seems more cache * efficient in cases where only a few IOs are used. */ dclist_push_head(&pgaio_my_backend->idle_ios, &ioh->node); + + RESUME_INTERRUPTS(); } /* @@ -702,8 +752,10 @@ pgaio_io_wait_for_free(void) { int reclaimed = 0; - pgaio_debug(DEBUG2, "waiting for self with %d pending", - pgaio_my_backend->num_staged_ios); + pgaio_debug(DEBUG2, "waiting for free IO with %d pending, %d in-flight, %d idle IOs", + pgaio_my_backend->num_staged_ios, + dclist_count(&pgaio_my_backend->in_flight_ios), + dclist_count(&pgaio_my_backend->idle_ios)); /* * First check if any of our IOs actually have completed - when using @@ -717,6 +769,11 @@ pgaio_io_wait_for_free(void) if (ioh->state == PGAIO_HS_COMPLETED_SHARED) { + /* + * Note that no interrupts are processed between the state check + * and the call to reclaim - that's important as otherwise an + * interrupt could have already reclaimed the handle. + */ pgaio_io_reclaim(ioh); reclaimed++; } @@ -733,8 +790,17 @@ pgaio_io_wait_for_free(void) if (pgaio_my_backend->num_staged_ios > 0) pgaio_submit_staged(); + /* possibly some IOs finished during submission */ + if (!dclist_is_empty(&pgaio_my_backend->idle_ios)) + return; + if (dclist_count(&pgaio_my_backend->in_flight_ios) == 0) - elog(ERROR, "no free IOs despite no in-flight IOs"); + ereport(ERROR, + errmsg_internal("no free IOs despite no in-flight IOs"), + errdetail_internal("%d pending, %d in-flight, %d idle IOs", + pgaio_my_backend->num_staged_ios, + dclist_count(&pgaio_my_backend->in_flight_ios), + dclist_count(&pgaio_my_backend->idle_ios))); /* * Wait for the oldest in-flight IO to complete. @@ -745,6 +811,7 @@ pgaio_io_wait_for_free(void) { PgAioHandle *ioh = dclist_head_element(PgAioHandle, node, &pgaio_my_backend->in_flight_ios); + uint64 generation = ioh->generation; switch (ioh->state) { @@ -768,13 +835,24 @@ pgaio_io_wait_for_free(void) * In a more general case this would be racy, because the * generation could increase after we read ioh->state above. * But we are only looking at IOs by the current backend and - * the IO can only be recycled by this backend. + * the IO can only be recycled by this backend. Even this is + * only OK because we get the handle's generation before + * potentially processing interrupts, e.g. as part of + * pgaio_debug_io(). */ - pgaio_io_wait(ioh, ioh->generation); + pgaio_io_wait(ioh, generation); break; case PGAIO_HS_COMPLETED_SHARED: - /* it's possible that another backend just finished this IO */ + + /* + * It's possible that another backend just finished this IO. + * + * Note that no interrupts are processed between the state + * check and the call to reclaim - that's important as + * otherwise an interrupt could have already reclaimed the + * handle. + */ pgaio_io_reclaim(ioh); break; } @@ -924,6 +1002,11 @@ pgaio_wref_check_done(PgAioWaitRef *iow) if (state == PGAIO_HS_COMPLETED_SHARED || state == PGAIO_HS_COMPLETED_LOCAL) { + /* + * Note that no interrupts are processed between + * pgaio_io_was_recycled() and this check - that's important as + * otherwise an interrupt could have already reclaimed the handle. + */ if (am_owner) pgaio_io_reclaim(ioh); return true; @@ -1127,7 +1210,13 @@ pgaio_closing_fd(int fd) * For now just submit all staged IOs - we could be more selective, but * it's probably not worth it. */ - pgaio_submit_staged(); + if (pgaio_my_backend->num_staged_ios > 0) + { + pgaio_debug(DEBUG2, + "submitting %d IOs before FD %d gets closed", + pgaio_my_backend->num_staged_ios, fd); + pgaio_submit_staged(); + } /* * If requested by the IO method, wait for all IOs that use the @@ -1145,11 +1234,14 @@ pgaio_closing_fd(int fd) { dlist_iter iter; PgAioHandle *ioh = NULL; + uint64 generation; dclist_foreach(iter, &pgaio_my_backend->in_flight_ios) { ioh = dclist_container(PgAioHandle, node, iter.cur); + generation = ioh->generation; + if (pgaio_io_uses_fd(ioh, fd)) break; else @@ -1159,8 +1251,12 @@ pgaio_closing_fd(int fd) if (!ioh) break; + pgaio_debug_io(DEBUG2, ioh, + "waiting for IO before FD %d gets closed, %d in-flight IOs", + fd, dclist_count(&pgaio_my_backend->in_flight_ios)); + /* see comment in pgaio_io_wait_for_free() about raciness */ - pgaio_io_wait(ioh, ioh->generation); + pgaio_io_wait(ioh, generation); } } } @@ -1189,9 +1285,14 @@ pgaio_shutdown(int code, Datum arg) while (!dclist_is_empty(&pgaio_my_backend->in_flight_ios)) { PgAioHandle *ioh = dclist_head_element(PgAioHandle, node, &pgaio_my_backend->in_flight_ios); + uint64 generation = ioh->generation; + + pgaio_debug_io(DEBUG2, ioh, + "waiting for IO to complete during shutdown, %d in-flight IOs", + dclist_count(&pgaio_my_backend->in_flight_ios)); /* see comment in pgaio_io_wait_for_free() about raciness */ - pgaio_io_wait(ioh, ioh->generation); + pgaio_io_wait(ioh, generation); } pgaio_my_backend = NULL; @@ -1225,43 +1326,3 @@ check_io_max_concurrency(int *newval, void **extra, GucSource source) return true; } - - - -/* -------------------------------------------------------------------------------- - * Injection point support - * -------------------------------------------------------------------------------- - */ - -#ifdef USE_INJECTION_POINTS - -/* - * Call injection point with support for pgaio_inj_io_get(). - */ -void -pgaio_io_call_inj(PgAioHandle *ioh, const char *injection_point) -{ - pgaio_inj_cur_handle = ioh; - - PG_TRY(); - { - InjectionPointCached(injection_point); - } - PG_FINALLY(); - { - pgaio_inj_cur_handle = NULL; - } - PG_END_TRY(); -} - -/* - * Return IO associated with injection point invocation. This is only needed - * as injection points currently don't support arguments. - */ -PgAioHandle * -pgaio_inj_io_get(void) -{ - return pgaio_inj_cur_handle; -} - -#endif diff --git a/src/backend/storage/aio/aio_callback.c b/src/backend/storage/aio/aio_callback.c index bf42778a48c70..0ad9795bb7e0c 100644 --- a/src/backend/storage/aio/aio_callback.c +++ b/src/backend/storage/aio/aio_callback.c @@ -124,6 +124,7 @@ pgaio_io_set_handle_data_64(PgAioHandle *ioh, uint64 *data, uint8 len) Assert(ioh->state == PGAIO_HS_HANDED_OUT); Assert(ioh->handle_data_len == 0); Assert(len <= PG_IOV_MAX); + Assert(len <= io_max_combine_limit); for (int i = 0; i < len; i++) pgaio_ctl->handle_data[ioh->iovec_off + i] = data[i]; @@ -141,6 +142,7 @@ pgaio_io_set_handle_data_32(PgAioHandle *ioh, uint32 *data, uint8 len) Assert(ioh->state == PGAIO_HS_HANDED_OUT); Assert(ioh->handle_data_len == 0); Assert(len <= PG_IOV_MAX); + Assert(len <= io_max_combine_limit); for (int i = 0; i < len; i++) pgaio_ctl->handle_data[ioh->iovec_off + i] = data[i]; diff --git a/src/backend/storage/aio/aio_io.c b/src/backend/storage/aio/aio_io.c index 4d31392ddc704..520b5077df25a 100644 --- a/src/backend/storage/aio/aio_io.c +++ b/src/backend/storage/aio/aio_io.c @@ -181,9 +181,9 @@ pgaio_io_get_op_name(PgAioHandle *ioh) case PGAIO_OP_INVALID: return "invalid"; case PGAIO_OP_READV: - return "read"; + return "readv"; case PGAIO_OP_WRITEV: - return "write"; + return "writev"; } return NULL; /* silence compiler */ @@ -210,3 +210,26 @@ pgaio_io_uses_fd(PgAioHandle *ioh, int fd) return false; /* silence compiler */ } + +/* + * Return the iovec and its length. Currently only expected to be used by + * debugging infrastructure + */ +int +pgaio_io_get_iovec_length(PgAioHandle *ioh, struct iovec **iov) +{ + Assert(ioh->state >= PGAIO_HS_DEFINED); + + *iov = &pgaio_ctl->iovecs[ioh->iovec_off]; + + switch (ioh->op) + { + case PGAIO_OP_READV: + return ioh->op_data.read.iov_length; + case PGAIO_OP_WRITEV: + return ioh->op_data.write.iov_length; + default: + pg_unreachable(); + return 0; + } +} diff --git a/src/backend/storage/aio/aio_target.c b/src/backend/storage/aio/aio_target.c index ac6c74f4ff264..161f0f1edf68c 100644 --- a/src/backend/storage/aio/aio_target.c +++ b/src/backend/storage/aio/aio_target.c @@ -49,7 +49,8 @@ pgaio_io_has_target(PgAioHandle *ioh) const char * pgaio_io_get_target_name(PgAioHandle *ioh) { - Assert(ioh->target >= 0 && ioh->target < PGAIO_TID_COUNT); + /* explicitly allow INVALID here, function used by debug messages */ + Assert(ioh->target >= PGAIO_TID_INVALID && ioh->target < PGAIO_TID_COUNT); return pgaio_target_info[ioh->target]->name; } @@ -82,6 +83,9 @@ pgaio_io_get_target_data(PgAioHandle *ioh) char * pgaio_io_get_target_description(PgAioHandle *ioh) { + /* disallow INVALID, there wouldn't be a description */ + Assert(ioh->target > PGAIO_TID_INVALID && ioh->target < PGAIO_TID_COUNT); + return pgaio_target_info[ioh->target]->describe_identity(&ioh->target_data); } @@ -98,6 +102,8 @@ pgaio_io_get_target_description(PgAioHandle *ioh) bool pgaio_io_can_reopen(PgAioHandle *ioh) { + Assert(ioh->target > PGAIO_TID_INVALID && ioh->target < PGAIO_TID_COUNT); + return pgaio_target_info[ioh->target]->reopen != NULL; } @@ -109,8 +115,8 @@ pgaio_io_can_reopen(PgAioHandle *ioh) void pgaio_io_reopen(PgAioHandle *ioh) { - Assert(ioh->target >= 0 && ioh->target < PGAIO_TID_COUNT); - Assert(ioh->op >= 0 && ioh->op < PGAIO_OP_COUNT); + Assert(ioh->target > PGAIO_TID_INVALID && ioh->target < PGAIO_TID_COUNT); + Assert(ioh->op > PGAIO_OP_INVALID && ioh->op < PGAIO_OP_COUNT); pgaio_target_info[ioh->target]->reopen(ioh); } diff --git a/src/backend/storage/aio/method_io_uring.c b/src/backend/storage/aio/method_io_uring.c index 0bcdab14ae7e3..c719ba2727a81 100644 --- a/src/backend/storage/aio/method_io_uring.c +++ b/src/backend/storage/aio/method_io_uring.c @@ -302,14 +302,41 @@ pgaio_uring_submit(uint16 num_staged_ios, PgAioHandle **staged_ios) return num_staged_ios; } +static void +pgaio_uring_completion_error_callback(void *arg) +{ + ProcNumber owner; + PGPROC *owner_proc; + int32 owner_pid; + PgAioHandle *ioh = arg; + + if (!ioh) + return; + + /* No need for context if a backend is completing the IO for itself */ + if (ioh->owner_procno == MyProcNumber) + return; + + owner = ioh->owner_procno; + owner_proc = GetPGProcByNumber(owner); + owner_pid = owner_proc->pid; + + errcontext("completing I/O on behalf of process %d", owner_pid); +} + static void pgaio_uring_drain_locked(PgAioUringContext *context) { int ready; int orig_ready; + ErrorContextCallback errcallback = {0}; Assert(LWLockHeldByMeInMode(&context->completion_lock, LW_EXCLUSIVE)); + errcallback.callback = pgaio_uring_completion_error_callback; + errcallback.previous = error_context_stack; + error_context_stack = &errcallback; + /* * Don't drain more events than available right now. Otherwise it's * plausible that one backend could get stuck, for a while, receiving CQEs @@ -337,9 +364,11 @@ pgaio_uring_drain_locked(PgAioUringContext *context) PgAioHandle *ioh; ioh = io_uring_cqe_get_data(cqe); + errcallback.arg = ioh; io_uring_cqe_seen(&context->io_uring_ring, cqe); pgaio_io_process_completion(ioh, cqe->res); + errcallback.arg = NULL; } END_CRIT_SECTION(); @@ -348,6 +377,8 @@ pgaio_uring_drain_locked(PgAioUringContext *context) "drained %d/%d, now expecting %d", ncqes, orig_ready, io_uring_cq_ready(&context->io_uring_ring)); } + + error_context_stack = errcallback.previous; } static void diff --git a/src/backend/storage/aio/method_worker.c b/src/backend/storage/aio/method_worker.c index 4a7853d13fac9..743cccc2acd18 100644 --- a/src/backend/storage/aio/method_worker.c +++ b/src/backend/storage/aio/method_worker.c @@ -42,6 +42,8 @@ #include "storage/latch.h" #include "storage/proc.h" #include "tcop/tcopprot.h" +#include "utils/injection_point.h" +#include "utils/memdebug.h" #include "utils/ps_status.h" #include "utils/wait_event.h" @@ -320,7 +322,7 @@ pgaio_worker_die(int code, Datum arg) } /* - * Register the worker in shared memory, assign MyWorkerId and register a + * Register the worker in shared memory, assign MyIoWorkerId and register a * shutdown callback to release registration. */ static void @@ -357,11 +359,33 @@ pgaio_worker_register(void) on_shmem_exit(pgaio_worker_die, 0); } +static void +pgaio_worker_error_callback(void *arg) +{ + ProcNumber owner; + PGPROC *owner_proc; + int32 owner_pid; + PgAioHandle *ioh = arg; + + if (!ioh) + return; + + Assert(ioh->owner_procno != MyProcNumber); + Assert(MyBackendType == B_IO_WORKER); + + owner = ioh->owner_procno; + owner_proc = GetPGProcByNumber(owner); + owner_pid = owner_proc->pid; + + errcontext("I/O worker executing I/O on behalf of process %d", owner_pid); +} + void IoWorkerMain(const void *startup_data, size_t startup_data_len) { sigjmp_buf local_sigjmp_buf; PgAioHandle *volatile error_ioh = NULL; + ErrorContextCallback errcallback = {0}; volatile int error_errno = 0; char cmd[128]; @@ -388,6 +412,10 @@ IoWorkerMain(const void *startup_data, size_t startup_data_len) sprintf(cmd, "%d", MyIoWorkerId); set_ps_display(cmd); + errcallback.callback = pgaio_worker_error_callback; + errcallback.previous = error_context_stack; + error_context_stack = &errcallback; + /* see PostgresMain() */ if (sigsetjmp(local_sigjmp_buf, 1) != 0) { @@ -471,6 +499,7 @@ IoWorkerMain(const void *startup_data, size_t startup_data_len) ioh = &pgaio_ctl->io_handles[io_index]; error_ioh = ioh; + errcallback.arg = ioh; pgaio_debug_io(DEBUG4, ioh, "worker %d processing IO", @@ -497,11 +526,29 @@ IoWorkerMain(const void *startup_data, size_t startup_data_len) * To be able to exercise the reopen-fails path, allow injection * points to trigger a failure at this point. */ - pgaio_io_call_inj(ioh, "AIO_WORKER_AFTER_REOPEN"); + INJECTION_POINT("aio-worker-after-reopen", ioh); error_errno = 0; error_ioh = NULL; + /* + * As part of IO completion the buffer will be marked as NOACCESS, + * until the buffer is pinned again - which never happens in io + * workers. Therefore the next time there is IO for the same + * buffer, the memory will be considered inaccessible. To avoid + * that, explicitly allow access to the memory before reading data + * into it. + */ +#ifdef USE_VALGRIND + { + struct iovec *iov; + uint16 iov_length = pgaio_io_get_iovec_length(ioh, &iov); + + for (int i = 0; i < iov_length; i++) + VALGRIND_MAKE_MEM_UNDEFINED(iov[i].iov_base, iov[i].iov_len); + } +#endif + /* * We don't expect this to ever fail with ERROR or FATAL, no need * to keep error_ioh set to the IO. @@ -511,6 +558,7 @@ IoWorkerMain(const void *startup_data, size_t startup_data_len) pgaio_io_perform_synchronously(ioh); RESUME_INTERRUPTS(); + errcallback.arg = NULL; } else { @@ -522,6 +570,7 @@ IoWorkerMain(const void *startup_data, size_t startup_data_len) CHECK_FOR_INTERRUPTS(); } + error_context_stack = errcallback.previous; proc_exit(0); } diff --git a/src/backend/storage/aio/read_stream.c b/src/backend/storage/aio/read_stream.c index 36c54fb695b05..0e7f5557f5cb9 100644 --- a/src/backend/storage/aio/read_stream.c +++ b/src/backend/storage/aio/read_stream.c @@ -237,7 +237,7 @@ read_stream_start_pending_read(ReadStream *stream) int16 io_index; int16 overflow; int16 buffer_index; - int16 buffer_limit; + int buffer_limit; /* This should only be called with a pending read. */ Assert(stream->pending_read_nblocks > 0); @@ -294,7 +294,10 @@ read_stream_start_pending_read(ReadStream *stream) else buffer_limit = Min(GetAdditionalPinLimit(), PG_INT16_MAX); Assert(stream->forwarded_buffers <= stream->pending_read_nblocks); + buffer_limit += stream->forwarded_buffers; + buffer_limit = Min(buffer_limit, PG_INT16_MAX); + if (buffer_limit == 0 && stream->pinned_buffers == 0) buffer_limit = 1; /* guarantee progress */ diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 1c37d7dfe2f92..f93131a645ea8 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -40,6 +40,9 @@ #include "access/tableam.h" #include "access/xloginsert.h" #include "access/xlogutils.h" +#ifdef USE_ASSERT_CHECKING +#include "catalog/pg_tablespace_d.h" +#endif #include "catalog/storage.h" #include "catalog/storage_xlog.h" #include "executor/instrument.h" @@ -527,7 +530,7 @@ static inline BufferDesc *BufferAlloc(SMgrRelation smgr, BlockNumber blockNum, BufferAccessStrategy strategy, bool *foundPtr, IOContext io_context); -static bool AsyncReadBuffers(ReadBuffersOperation *operation, int *nblocks); +static bool AsyncReadBuffers(ReadBuffersOperation *operation, int *nblocks_progress); static void CheckReadBuffersOperation(ReadBuffersOperation *operation, bool is_complete); static Buffer GetVictimBuffer(BufferAccessStrategy strategy, IOContext io_context); static void FlushBuffer(BufferDesc *buf, SMgrRelation reln, @@ -541,6 +544,10 @@ static void RelationCopyStorageUsingBuffer(RelFileLocator srclocator, ForkNumber forkNum, bool permanent); static void AtProcExit_Buffers(int code, Datum arg); static void CheckForBufferLeaks(void); +#ifdef USE_ASSERT_CHECKING +static void AssertNotCatalogBufferLock(LWLock *lock, LWLockMode mode, + void *unused_context); +#endif static int rlocator_comparator(const void *p1, const void *p2); static inline int buffertag_comparator(const BufferTag *ba, const BufferTag *bb); static inline int ckpt_buforder_comparator(const CkptSortItem *a, const CkptSortItem *b); @@ -3326,7 +3333,7 @@ UnpinBufferNoOwner(BufferDesc *buf) #define ST_COMPARE(a, b) ckpt_buforder_comparator(a, b) #define ST_SCOPE static #define ST_DEFINE -#include +#include "lib/sort_template.h" /* * BufferSync -- Write out all dirty buffers in the pool. @@ -4097,6 +4104,67 @@ CheckForBufferLeaks(void) #endif } +#ifdef USE_ASSERT_CHECKING +/* + * Check for exclusive-locked catalog buffers. This is the core of + * AssertCouldGetRelation(). + * + * A backend would self-deadlock on LWLocks if the catalog scan read the + * exclusive-locked buffer. The main threat is exclusive-locked buffers of + * catalogs used in relcache, because a catcache search on any catalog may + * build that catalog's relcache entry. We don't have an inventory of + * catalogs relcache uses, so just check buffers of most catalogs. + * + * It's better to minimize waits while holding an exclusive buffer lock, so it + * would be nice to broaden this check not to be catalog-specific. However, + * bttextcmp() accesses pg_collation, and non-core opclasses might similarly + * read tables. That is deadlock-free as long as there's no loop in the + * dependency graph: modifying table A may cause an opclass to read table B, + * but it must not cause a read of table A. + */ +void +AssertBufferLocksPermitCatalogRead(void) +{ + ForEachLWLockHeldByMe(AssertNotCatalogBufferLock, NULL); +} + +static void +AssertNotCatalogBufferLock(LWLock *lock, LWLockMode mode, + void *unused_context) +{ + BufferDesc *bufHdr; + BufferTag tag; + Oid relid; + + if (mode != LW_EXCLUSIVE) + return; + + if (!((BufferDescPadded *) lock > BufferDescriptors && + (BufferDescPadded *) lock < BufferDescriptors + NBuffers)) + return; /* not a buffer lock */ + + bufHdr = (BufferDesc *) + ((char *) lock - offsetof(BufferDesc, content_lock)); + tag = bufHdr->tag; + + /* + * This relNumber==relid assumption holds until a catalog experiences + * VACUUM FULL or similar. After a command like that, relNumber will be + * in the normal (non-catalog) range, and we lose the ability to detect + * hazardous access to that catalog. Calling RelidByRelfilenumber() would + * close that gap, but RelidByRelfilenumber() might then deadlock with a + * held lock. + */ + relid = tag.relNumber; + + if (IsCatalogTextUniqueIndexOid(relid)) /* see comments at the callee */ + return; + + Assert(!IsCatalogRelationOid(relid)); +} +#endif + + /* * Helper routine to issue warnings when a buffer is unexpectedly pinned */ @@ -4895,8 +4963,21 @@ FlushRelationBuffers(Relation rel) errcallback.previous = error_context_stack; error_context_stack = &errcallback; + /* Make sure we can handle the pin */ + ReservePrivateRefCountEntry(); + ResourceOwnerEnlarge(CurrentResourceOwner); + + /* + * Pin/unpin mostly to make valgrind work, but it also seems + * like the right thing to do. + */ + PinLocalBuffer(bufHdr, false); + + FlushLocalBuffer(bufHdr, srel); + UnpinLocalBuffer(BufferDescriptorGetBuffer(bufHdr)); + /* Pop the error context stack */ error_context_stack = errcallback.previous; } @@ -6367,7 +6448,7 @@ ScheduleBufferTagForWriteback(WritebackContext *wb_context, IOContext io_context #define ST_COMPARE(a, b) buffertag_comparator(&a->tag, &b->tag) #define ST_SCOPE static #define ST_DEFINE -#include +#include "lib/sort_template.h" /* * Issue all pending writeback requests, previously scheduled with @@ -6497,37 +6578,20 @@ ResOwnerPrintBufferPin(Datum res) } /* - * Try to evict the current block in a shared buffer. - * - * This function is intended for testing/development use only! - * - * To succeed, the buffer must not be pinned on entry, so if the caller had a - * particular block in mind, it might already have been replaced by some other - * block by the time this function runs. It's also unpinned on return, so the - * buffer might be occupied again by the time control is returned, potentially - * even by the same block. This inherent raciness without other interlocking - * makes the function unsuitable for non-testing usage. - * - * Returns true if the buffer was valid and it has now been made invalid. - * Returns false if it wasn't valid, if it couldn't be evicted due to a pin, - * or if the buffer becomes dirty again while we're trying to write it out. + * Helper function to evict unpinned buffer whose buffer header lock is + * already acquired. */ -bool -EvictUnpinnedBuffer(Buffer buf) +static bool +EvictUnpinnedBufferInternal(BufferDesc *desc, bool *buffer_flushed) { - BufferDesc *desc; uint32 buf_state; bool result; - /* Make sure we can pin the buffer. */ - ResourceOwnerEnlarge(CurrentResourceOwner); - ReservePrivateRefCountEntry(); + *buffer_flushed = false; - Assert(!BufferIsLocal(buf)); - desc = GetBufferDescriptor(buf - 1); + buf_state = pg_atomic_read_u32(&(desc->state)); + Assert(buf_state & BM_LOCKED); - /* Lock the header and check if it's valid. */ - buf_state = LockBufHdr(desc); if ((buf_state & BM_VALID) == 0) { UnlockBufHdr(desc, buf_state); @@ -6548,6 +6612,7 @@ EvictUnpinnedBuffer(Buffer buf) { LWLockAcquire(BufferDescriptorGetContentLock(desc), LW_SHARED); FlushBuffer(desc, NULL, IOOBJECT_RELATION, IOCONTEXT_NORMAL); + *buffer_flushed = true; LWLockRelease(BufferDescriptorGetContentLock(desc)); } @@ -6559,6 +6624,149 @@ EvictUnpinnedBuffer(Buffer buf) return result; } +/* + * Try to evict the current block in a shared buffer. + * + * This function is intended for testing/development use only! + * + * To succeed, the buffer must not be pinned on entry, so if the caller had a + * particular block in mind, it might already have been replaced by some other + * block by the time this function runs. It's also unpinned on return, so the + * buffer might be occupied again by the time control is returned, potentially + * even by the same block. This inherent raciness without other interlocking + * makes the function unsuitable for non-testing usage. + * + * *buffer_flushed is set to true if the buffer was dirty and has been + * flushed, false otherwise. However, *buffer_flushed=true does not + * necessarily mean that we flushed the buffer, it could have been flushed by + * someone else. + * + * Returns true if the buffer was valid and it has now been made invalid. + * Returns false if it wasn't valid, if it couldn't be evicted due to a pin, + * or if the buffer becomes dirty again while we're trying to write it out. + */ +bool +EvictUnpinnedBuffer(Buffer buf, bool *buffer_flushed) +{ + BufferDesc *desc; + + Assert(BufferIsValid(buf) && !BufferIsLocal(buf)); + + /* Make sure we can pin the buffer. */ + ResourceOwnerEnlarge(CurrentResourceOwner); + ReservePrivateRefCountEntry(); + + desc = GetBufferDescriptor(buf - 1); + LockBufHdr(desc); + + return EvictUnpinnedBufferInternal(desc, buffer_flushed); +} + +/* + * Try to evict all the shared buffers. + * + * This function is intended for testing/development use only! See + * EvictUnpinnedBuffer(). + * + * The buffers_* parameters are mandatory and indicate the total count of + * buffers that: + * - buffers_evicted - were evicted + * - buffers_flushed - were flushed + * - buffers_skipped - could not be evicted + */ +void +EvictAllUnpinnedBuffers(int32 *buffers_evicted, int32 *buffers_flushed, + int32 *buffers_skipped) +{ + *buffers_evicted = 0; + *buffers_skipped = 0; + *buffers_flushed = 0; + + for (int buf = 1; buf <= NBuffers; buf++) + { + BufferDesc *desc = GetBufferDescriptor(buf - 1); + uint32 buf_state; + bool buffer_flushed; + + buf_state = pg_atomic_read_u32(&desc->state); + if (!(buf_state & BM_VALID)) + continue; + + ResourceOwnerEnlarge(CurrentResourceOwner); + ReservePrivateRefCountEntry(); + + LockBufHdr(desc); + + if (EvictUnpinnedBufferInternal(desc, &buffer_flushed)) + (*buffers_evicted)++; + else + (*buffers_skipped)++; + + if (buffer_flushed) + (*buffers_flushed)++; + } +} + +/* + * Try to evict all the shared buffers containing provided relation's pages. + * + * This function is intended for testing/development use only! See + * EvictUnpinnedBuffer(). + * + * The caller must hold at least AccessShareLock on the relation to prevent + * the relation from being dropped. + * + * The buffers_* parameters are mandatory and indicate the total count of + * buffers that: + * - buffers_evicted - were evicted + * - buffers_flushed - were flushed + * - buffers_skipped - could not be evicted + */ +void +EvictRelUnpinnedBuffers(Relation rel, int32 *buffers_evicted, + int32 *buffers_flushed, int32 *buffers_skipped) +{ + Assert(!RelationUsesLocalBuffers(rel)); + + *buffers_skipped = 0; + *buffers_evicted = 0; + *buffers_flushed = 0; + + for (int buf = 1; buf <= NBuffers; buf++) + { + BufferDesc *desc = GetBufferDescriptor(buf - 1); + uint32 buf_state = pg_atomic_read_u32(&(desc->state)); + bool buffer_flushed; + + /* An unlocked precheck should be safe and saves some cycles. */ + if ((buf_state & BM_VALID) == 0 || + !BufTagMatchesRelFileLocator(&desc->tag, &rel->rd_locator)) + continue; + + /* Make sure we can pin the buffer. */ + ResourceOwnerEnlarge(CurrentResourceOwner); + ReservePrivateRefCountEntry(); + + buf_state = LockBufHdr(desc); + + /* recheck, could have changed without the lock */ + if ((buf_state & BM_VALID) == 0 || + !BufTagMatchesRelFileLocator(&desc->tag, &rel->rd_locator)) + { + UnlockBufHdr(desc, buf_state); + continue; + } + + if (EvictUnpinnedBufferInternal(desc, &buffer_flushed)) + (*buffers_evicted)++; + else + (*buffers_skipped)++; + + if (buffer_flushed) + (*buffers_flushed)++; + } +} + /* * Generic implementation of the AIO handle staging callback for readv/writev * on local/shared buffers. @@ -6868,7 +7076,18 @@ buffer_readv_complete_one(PgAioTargetData *td, uint8 buf_off, Buffer buffer, /* Check for garbage data. */ if (!failed) { - PgAioResult result_one; + /* + * If the buffer is not currently pinned by this backend, e.g. because + * we're completing this IO after an error, the buffer data will have + * been marked as inaccessible when the buffer was unpinned. The AIO + * subsystem holds a pin, but that doesn't prevent the buffer from + * having been marked as inaccessible. The completion might also be + * executed in a different process. + */ +#ifdef USE_VALGRIND + if (!BufferIsPinned(buffer)) + VALGRIND_MAKE_MEM_DEFINED(bufdata, BLCKSZ); +#endif if (!PageIsVerified((Page) bufdata, tag.blockNum, piv_flags, failed_checksum)) @@ -6888,6 +7107,12 @@ buffer_readv_complete_one(PgAioTargetData *td, uint8 buf_off, Buffer buffer, else if (*failed_checksum) *ignored_checksum = true; + /* undo what we did above */ +#ifdef USE_VALGRIND + if (!BufferIsPinned(buffer)) + VALGRIND_MAKE_MEM_NOACCESS(bufdata, BLCKSZ); +#endif + /* * Immediately log a message about the invalid page, but only to the * server log. The reason to do so immediately is that this may be @@ -6904,6 +7129,8 @@ buffer_readv_complete_one(PgAioTargetData *td, uint8 buf_off, Buffer buffer, */ if (*buffer_invalid || *failed_checksum || *zeroed_buffer) { + PgAioResult result_one = {0}; + buffer_readv_encode_error(&result_one, is_temp, *zeroed_buffer, *ignored_checksum, diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c index 336715b6c6342..01909be027258 100644 --- a/src/backend/storage/buffer/freelist.c +++ b/src/backend/storage/buffer/freelist.c @@ -555,8 +555,50 @@ GetAccessStrategy(BufferAccessStrategyType btype) return NULL; case BAS_BULKREAD: - ring_size_kb = 256; - break; + { + int ring_max_kb; + + /* + * The ring always needs to be large enough to allow some + * separation in time between providing a buffer to the user + * of the strategy and that buffer being reused. Otherwise the + * user's pin will prevent reuse of the buffer, even without + * concurrent activity. + * + * We also need to ensure the ring always is large enough for + * SYNC_SCAN_REPORT_INTERVAL, as noted above. + * + * Thus we start out a minimal size and increase the size + * further if appropriate. + */ + ring_size_kb = 256; + + /* + * There's no point in a larger ring if we won't be allowed to + * pin sufficiently many buffers. But we never limit to less + * than the minimal size above. + */ + ring_max_kb = GetPinLimit() * (BLCKSZ / 1024); + ring_max_kb = Max(ring_size_kb, ring_max_kb); + + /* + * We would like the ring to additionally have space for the + * configured degree of IO concurrency. While being read in, + * buffers can obviously not yet be reused. + * + * Each IO can be up to io_combine_limit blocks large, and we + * want to start up to effective_io_concurrency IOs. + * + * Note that effective_io_concurrency may be 0, which disables + * AIO. + */ + ring_size_kb += (BLCKSZ / 1024) * + io_combine_limit * effective_io_concurrency; + + if (ring_size_kb > ring_max_kb) + ring_size_kb = ring_max_kb; + break; + } case BAS_BULKWRITE: ring_size_kb = 16 * 1024; break; diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c index ed56202af14f6..63101d56a074b 100644 --- a/src/backend/storage/buffer/localbuf.c +++ b/src/backend/storage/buffer/localbuf.c @@ -23,6 +23,7 @@ #include "storage/bufmgr.h" #include "storage/fd.h" #include "utils/guc_hooks.h" +#include "utils/memdebug.h" #include "utils/memutils.h" #include "utils/resowner.h" @@ -183,6 +184,8 @@ FlushLocalBuffer(BufferDesc *bufHdr, SMgrRelation reln) instr_time io_start; Page localpage = (char *) LocalBufHdrGetBlock(bufHdr); + Assert(LocalRefCount[-BufferDescriptorGetBuffer(bufHdr) - 1] > 0); + /* * Try to start an I/O operation. There currently are no reasons for * StartLocalBufferIO to return false, so we raise an error in that case. @@ -808,6 +811,15 @@ PinLocalBuffer(BufferDesc *buf_hdr, bool adjust_usagecount) buf_state += BUF_USAGECOUNT_ONE; } pg_atomic_unlocked_write_u32(&buf_hdr->state, buf_state); + + /* + * See comment in PinBuffer(). + * + * If the buffer isn't allocated yet, it'll be marked as defined in + * GetLocalBufferStorage(). + */ + if (LocalBufHdrGetBlock(buf_hdr) != NULL) + VALGRIND_MAKE_MEM_DEFINED(LocalBufHdrGetBlock(buf_hdr), BLCKSZ); } LocalRefCount[bufid]++; ResourceOwnerRememberBuffer(CurrentResourceOwner, @@ -843,6 +855,9 @@ UnpinLocalBufferNoOwner(Buffer buffer) Assert(BUF_STATE_GET_REFCOUNT(buf_state) > 0); buf_state -= BUF_REFCOUNT_ONE; pg_atomic_unlocked_write_u32(&buf_hdr->state, buf_state); + + /* see comment in UnpinBufferNoOwner */ + VALGRIND_MAKE_MEM_NOACCESS(LocalBufHdrGetBlock(buf_hdr), BLCKSZ); } } @@ -923,6 +938,16 @@ GetLocalBufferStorage(void) next_buf_in_block++; total_bufs_allocated++; + /* + * Caller's PinLocalBuffer() was too early for Valgrind updates, so do it + * here. The block is actually undefined, but we want consistency with + * the regular case of not needing to allocate memory. This is + * specifically needed when method_io_uring.c fills the block, because + * Valgrind doesn't recognize io_uring reads causing undefined memory to + * become defined. + */ + VALGRIND_MAKE_MEM_DEFINED(this_buf, BLCKSZ); + return (Block) this_buf; } diff --git a/src/backend/storage/file/copydir.c b/src/backend/storage/file/copydir.c index c335b60a36790..aa8c64a2c9eb5 100644 --- a/src/backend/storage/file/copydir.c +++ b/src/backend/storage/file/copydir.c @@ -18,6 +18,9 @@ #include "postgres.h" +#ifdef HAVE_COPYFILE_H +#include +#endif #include #include @@ -27,11 +30,19 @@ #include "storage/copydir.h" #include "storage/fd.h" +/* GUCs */ +int file_copy_method = FILE_COPY_METHOD_COPY; + +static void clone_file(const char *fromfile, const char *tofile); + /* * copydir: copy a directory * * If recurse is false, subdirectories are ignored. Anything that's not * a directory or a regular file is ignored. + * + * This function uses the file_copy_method GUC. New uses of this function must + * be documented in doc/src/sgml/config.sgml. */ void copydir(const char *fromdir, const char *todir, bool recurse) @@ -71,7 +82,12 @@ copydir(const char *fromdir, const char *todir, bool recurse) copydir(fromfile, tofile, true); } else if (xlde_type == PGFILETYPE_REG) - copy_file(fromfile, tofile); + { + if (file_copy_method == FILE_COPY_METHOD_CLONE) + clone_file(fromfile, tofile); + else + copy_file(fromfile, tofile); + } } FreeDir(xldir); @@ -214,3 +230,65 @@ copy_file(const char *fromfile, const char *tofile) pfree(buffer); } + +/* + * clone one file + */ +static void +clone_file(const char *fromfile, const char *tofile) +{ +#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE) + if (copyfile(fromfile, tofile, NULL, COPYFILE_CLONE_FORCE) < 0) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not clone file \"%s\" to \"%s\": %m", + fromfile, tofile))); +#elif defined(HAVE_COPY_FILE_RANGE) + int srcfd; + int dstfd; + ssize_t nbytes; + + srcfd = OpenTransientFile(fromfile, O_RDONLY | PG_BINARY); + if (srcfd < 0) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not open file \"%s\": %m", fromfile))); + + dstfd = OpenTransientFile(tofile, O_WRONLY | O_CREAT | O_EXCL | PG_BINARY); + if (dstfd < 0) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not create file \"%s\": %m", tofile))); + + do + { + /* + * Don't copy too much at once, so we can check for interrupts from + * time to time if it falls back to a slow copy. + */ + CHECK_FOR_INTERRUPTS(); + pgstat_report_wait_start(WAIT_EVENT_COPY_FILE_COPY); + nbytes = copy_file_range(srcfd, NULL, dstfd, NULL, 1024 * 1024, 0); + if (nbytes < 0 && errno != EINTR) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not clone file \"%s\" to \"%s\": %m", + fromfile, tofile))); + pgstat_report_wait_end(); + } + while (nbytes != 0); + + if (CloseTransientFile(dstfd) != 0) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not close file \"%s\": %m", tofile))); + + if (CloseTransientFile(srcfd) != 0) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not close file \"%s\": %m", fromfile))); +#else + /* If there is no CLONE support this function should not be called. */ + pg_unreachable(); +#endif +} diff --git a/src/backend/storage/ipc/procsignal.c b/src/backend/storage/ipc/procsignal.c index 7d201965503cb..a9bb540b55ac2 100644 --- a/src/backend/storage/ipc/procsignal.c +++ b/src/backend/storage/ipc/procsignal.c @@ -63,8 +63,8 @@ typedef struct { pg_atomic_uint32 pss_pid; - bool pss_cancel_key_valid; - int32 pss_cancel_key; + int pss_cancel_key_len; /* 0 means no cancellation is possible */ + uint8 pss_cancel_key[MAX_CANCEL_KEY_LENGTH]; volatile sig_atomic_t pss_signalFlags[NUM_PROCSIGNALS]; slock_t pss_mutex; /* protects the above fields */ @@ -89,7 +89,8 @@ struct ProcSignalHeader /* * We reserve a slot for each possible ProcNumber, plus one for each * possible auxiliary process type. (This scheme assumes there is not - * more than one of any auxiliary process type at a time.) + * more than one of any auxiliary process type at a time, except for + * IO workers.) */ #define NumProcSignalSlots (MaxBackends + NUM_AUXILIARY_PROCS) @@ -148,8 +149,7 @@ ProcSignalShmemInit(void) SpinLockInit(&slot->pss_mutex); pg_atomic_init_u32(&slot->pss_pid, 0); - slot->pss_cancel_key_valid = false; - slot->pss_cancel_key = 0; + slot->pss_cancel_key_len = 0; MemSet(slot->pss_signalFlags, 0, sizeof(slot->pss_signalFlags)); pg_atomic_init_u64(&slot->pss_barrierGeneration, PG_UINT64_MAX); pg_atomic_init_u32(&slot->pss_barrierCheckMask, 0); @@ -163,12 +163,13 @@ ProcSignalShmemInit(void) * Register the current process in the ProcSignal array */ void -ProcSignalInit(bool cancel_key_valid, int32 cancel_key) +ProcSignalInit(const uint8 *cancel_key, int cancel_key_len) { ProcSignalSlot *slot; uint64 barrier_generation; uint32 old_pss_pid; + Assert(cancel_key_len >= 0 && cancel_key_len <= MAX_CANCEL_KEY_LENGTH); if (MyProcNumber < 0) elog(ERROR, "MyProcNumber not set"); if (MyProcNumber >= NumProcSignalSlots) @@ -199,8 +200,9 @@ ProcSignalInit(bool cancel_key_valid, int32 cancel_key) pg_atomic_read_u64(&ProcSignal->psh_barrierGeneration); pg_atomic_write_u64(&slot->pss_barrierGeneration, barrier_generation); - slot->pss_cancel_key_valid = cancel_key_valid; - slot->pss_cancel_key = cancel_key; + if (cancel_key_len > 0) + memcpy(slot->pss_cancel_key, cancel_key, cancel_key_len); + slot->pss_cancel_key_len = cancel_key_len; pg_atomic_write_u32(&slot->pss_pid, MyProcPid); SpinLockRelease(&slot->pss_mutex); @@ -254,8 +256,7 @@ CleanupProcSignalState(int status, Datum arg) /* Mark the slot as unused */ pg_atomic_write_u32(&slot->pss_pid, 0); - slot->pss_cancel_key_valid = false; - slot->pss_cancel_key = 0; + slot->pss_cancel_key_len = 0; /* * Make this slot look like it's absorbed all possible barriers, so that @@ -725,7 +726,7 @@ procsignal_sigusr1_handler(SIGNAL_ARGS) * fields in the ProcSignal slots. */ void -SendCancelRequest(int backendPID, int32 cancelAuthCode) +SendCancelRequest(int backendPID, const uint8 *cancel_key, int cancel_key_len) { Assert(backendPID != 0); @@ -754,7 +755,8 @@ SendCancelRequest(int backendPID, int32 cancelAuthCode) } else { - match = slot->pss_cancel_key_valid && slot->pss_cancel_key == cancelAuthCode; + match = slot->pss_cancel_key_len == cancel_key_len && + timingsafe_bcmp(slot->pss_cancel_key, cancel_key, cancel_key_len) == 0; SpinLockRelease(&slot->pss_mutex); diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index 895a43fb39e54..c9ae3b45b76b1 100644 --- a/src/backend/storage/ipc/shmem.c +++ b/src/backend/storage/ipc/shmem.c @@ -68,6 +68,7 @@ #include "fmgr.h" #include "funcapi.h" #include "miscadmin.h" +#include "port/pg_numa.h" #include "storage/lwlock.h" #include "storage/pg_shmem.h" #include "storage/shmem.h" @@ -89,6 +90,10 @@ slock_t *ShmemLock; /* spinlock for shared memory and LWLock static HTAB *ShmemIndex = NULL; /* primary index hashtable for shmem */ +/* To get reliable results for NUMA inquiry we need to "touch pages" once */ +static bool firstNumaTouch = true; + +Datum pg_numa_available(PG_FUNCTION_ARGS); /* * InitShmemAccess() --- set up basic pointers to shared memory. @@ -568,3 +573,195 @@ pg_get_shmem_allocations(PG_FUNCTION_ARGS) return (Datum) 0; } + +/* + * SQL SRF showing NUMA memory nodes for allocated shared memory + * + * Compared to pg_get_shmem_allocations(), this function does not return + * information about shared anonymous allocations and unused shared memory. + */ +Datum +pg_get_shmem_allocations_numa(PG_FUNCTION_ARGS) +{ +#define PG_GET_SHMEM_NUMA_SIZES_COLS 3 + ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo; + HASH_SEQ_STATUS hstat; + ShmemIndexEnt *ent; + Datum values[PG_GET_SHMEM_NUMA_SIZES_COLS]; + bool nulls[PG_GET_SHMEM_NUMA_SIZES_COLS]; + Size os_page_size; + void **page_ptrs; + int *pages_status; + uint64 shm_total_page_count, + shm_ent_page_count, + max_nodes; + Size *nodes; + + if (pg_numa_init() == -1) + elog(ERROR, "libnuma initialization failed or NUMA is not supported on this platform"); + + InitMaterializedSRF(fcinfo, 0); + + max_nodes = pg_numa_get_max_node(); + nodes = palloc(sizeof(Size) * (max_nodes + 1)); + + /* + * Different database block sizes (4kB, 8kB, ..., 32kB) can be used, while + * the OS may have different memory page sizes. + * + * To correctly map between them, we need to: 1. Determine the OS memory + * page size 2. Calculate how many OS pages are used by all buffer blocks + * 3. Calculate how many OS pages are contained within each database + * block. + * + * This information is needed before calling move_pages() for NUMA memory + * node inquiry. + */ + os_page_size = pg_get_shmem_pagesize(); + + /* + * Allocate memory for page pointers and status based on total shared + * memory size. This simplified approach allocates enough space for all + * pages in shared memory rather than calculating the exact requirements + * for each segment. + * + * Add 1, because we don't know how exactly the segments align to OS + * pages, so the allocation might use one more memory page. In practice + * this is not very likely, and moreover we have more entries, each of + * them using only fraction of the total pages. + */ + shm_total_page_count = (ShmemSegHdr->totalsize / os_page_size) + 1; + page_ptrs = palloc0(sizeof(void *) * shm_total_page_count); + pages_status = palloc(sizeof(int) * shm_total_page_count); + + if (firstNumaTouch) + elog(DEBUG1, "NUMA: page-faulting shared memory segments for proper NUMA readouts"); + + LWLockAcquire(ShmemIndexLock, LW_SHARED); + + hash_seq_init(&hstat, ShmemIndex); + + /* output all allocated entries */ + memset(nulls, 0, sizeof(nulls)); + while ((ent = (ShmemIndexEnt *) hash_seq_search(&hstat)) != NULL) + { + int i; + char *startptr, + *endptr; + Size total_len; + + /* + * Calculate the range of OS pages used by this segment. The segment + * may start / end half-way through a page, we want to count these + * pages too. So we align the start/end pointers down/up, and then + * calculate the number of pages from that. + */ + startptr = (char *) TYPEALIGN_DOWN(os_page_size, ent->location); + endptr = (char *) TYPEALIGN(os_page_size, + (char *) ent->location + ent->allocated_size); + total_len = (endptr - startptr); + + shm_ent_page_count = total_len / os_page_size; + + /* + * If we ever get 0xff (-1) back from kernel inquiry, then we probably + * have a bug in mapping buffers to OS pages. + */ + memset(pages_status, 0xff, sizeof(int) * shm_ent_page_count); + + /* + * Setup page_ptrs[] with pointers to all OS pages for this segment, + * and get the NUMA status using pg_numa_query_pages. + * + * In order to get reliable results we also need to touch memory + * pages, so that inquiry about NUMA memory node doesn't return -2 + * (ENOENT, which indicates unmapped/unallocated pages). + */ + for (i = 0; i < shm_ent_page_count; i++) + { + volatile uint64 touch pg_attribute_unused(); + + page_ptrs[i] = startptr + (i * os_page_size); + + if (firstNumaTouch) + pg_numa_touch_mem_if_required(touch, page_ptrs[i]); + + CHECK_FOR_INTERRUPTS(); + } + + if (pg_numa_query_pages(0, shm_ent_page_count, page_ptrs, pages_status) == -1) + elog(ERROR, "failed NUMA pages inquiry status: %m"); + + /* Count number of NUMA nodes used for this shared memory entry */ + memset(nodes, 0, sizeof(Size) * (max_nodes + 1)); + + for (i = 0; i < shm_ent_page_count; i++) + { + int s = pages_status[i]; + + /* Ensure we are adding only valid index to the array */ + if (s < 0 || s > max_nodes) + { + elog(ERROR, "invalid NUMA node id outside of allowed range " + "[0, " UINT64_FORMAT "]: %d", max_nodes, s); + } + + nodes[s]++; + } + + /* + * Add one entry for each NUMA node, including those without allocated + * memory for this segment. + */ + for (i = 0; i <= max_nodes; i++) + { + values[0] = CStringGetTextDatum(ent->key); + values[1] = i; + values[2] = Int64GetDatum(nodes[i] * os_page_size); + + tuplestore_putvalues(rsinfo->setResult, rsinfo->setDesc, + values, nulls); + } + } + + LWLockRelease(ShmemIndexLock); + firstNumaTouch = false; + + return (Datum) 0; +} + +/* + * Determine the memory page size used for the shared memory segment. + * + * If the shared segment was allocated using huge pages, returns the size of + * a huge page. Otherwise returns the size of regular memory page. + * + * This should be used only after the server is started. + */ +Size +pg_get_shmem_pagesize(void) +{ + Size os_page_size; +#ifdef WIN32 + SYSTEM_INFO sysinfo; + + GetSystemInfo(&sysinfo); + os_page_size = sysinfo.dwPageSize; +#else + os_page_size = sysconf(_SC_PAGESIZE); +#endif + + Assert(IsUnderPostmaster); + Assert(huge_pages_status != HUGE_PAGES_UNKNOWN); + + if (huge_pages_status == HUGE_PAGES_ON) + GetHugePageSize(&os_page_size, NULL); + + return os_page_size; +} + +Datum +pg_numa_available(PG_FUNCTION_ARGS) +{ + PG_RETURN_BOOL(pg_numa_init() != -1); +} diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c index 2da91738c3271..c5748b690f408 100644 --- a/src/backend/storage/ipc/sinvaladt.c +++ b/src/backend/storage/ipc/sinvaladt.c @@ -198,7 +198,8 @@ typedef struct SISeg /* * We reserve a slot for each possible ProcNumber, plus one for each * possible auxiliary process type. (This scheme assumes there is not - * more than one of any auxiliary process type at a time.) + * more than one of any auxiliary process type at a time, except for + * IO workers.) */ #define NumProcStateSlots (MaxBackends + NUM_AUXILIARY_PROCS) diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 5acb4508f850f..7fa8d9247e097 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -31,6 +31,7 @@ #include "storage/sinvaladt.h" #include "storage/standby.h" #include "utils/hsearch.h" +#include "utils/injection_point.h" #include "utils/ps_status.h" #include "utils/timeout.h" #include "utils/timestamp.h" @@ -1287,6 +1288,17 @@ LogStandbySnapshot(void) Assert(XLogStandbyInfoActive()); +#ifdef USE_INJECTION_POINTS + if (IS_INJECTION_POINT_ATTACHED("skip-log-running-xacts")) + { + /* + * This record could move slot's xmin forward during decoding, leading + * to unpredictable results, so skip it when requested by the test. + */ + return GetInsertRecPtr(); + } +#endif + /* * Get details of any AccessExclusiveLocks being held at the moment. */ diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 002303664aa5c..86b06b9223f0b 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -210,9 +210,12 @@ int FastPathLockGroupsPerBackend = 0; * * The selected constant (49157) is a prime not too close to 2^k, and it's * small enough to not cause overflows (in 64-bit). + * + * We can assume that FastPathLockGroupsPerBackend is a power-of-two per + * InitializeFastPathLocks(). */ #define FAST_PATH_REL_GROUP(rel) \ - (((uint64) (rel) * 49157) % FastPathLockGroupsPerBackend) + (((uint64) (rel) * 49157) & (FastPathLockGroupsPerBackend - 1)) /* * Given the group/slot indexes, calculate the slot index in the whole array diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 3df29658f1811..46f44bc45113f 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1830,7 +1830,7 @@ LWLockDisownInternal(LWLock *lock) /* * Helper function to release lock, shared between LWLockRelease() and - * LWLockeleaseDisowned(). + * LWLockReleaseDisowned(). */ static void LWLockReleaseInternal(LWLock *lock, LWLockMode mode) @@ -1959,6 +1959,21 @@ LWLockReleaseAll(void) } +/* + * ForEachLWLockHeldByMe - run a callback for each held lock + * + * This is meant as debug support only. + */ +void +ForEachLWLockHeldByMe(void (*callback) (LWLock *, LWLockMode, void *), + void *context) +{ + int i; + + for (i = 0; i < num_held_lwlocks; i++) + callback(held_lwlocks[i].lock, held_lwlocks[i].mode, context); +} + /* * LWLockHeldByMe - test whether my process holds a lock in any mode * diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index 5b21a05398114..d82114ffca165 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -1226,14 +1226,21 @@ PredicateLockShmemInit(void) */ max_table_size *= 10; + requestSize = add_size(PredXactListDataSize, + (mul_size((Size) max_table_size, + sizeof(SERIALIZABLEXACT)))); + PredXact = ShmemInitStruct("PredXactList", - PredXactListDataSize, + requestSize, &found); Assert(found == IsUnderPostmaster); if (!found) { int i; + /* clean everything, both the header and the element */ + memset(PredXact, 0, requestSize); + dlist_init(&PredXact->availableList); dlist_init(&PredXact->activeList); PredXact->SxactGlobalXmin = InvalidTransactionId; @@ -1242,11 +1249,9 @@ PredicateLockShmemInit(void) PredXact->LastSxactCommitSeqNo = FirstNormalSerCommitSeqNo - 1; PredXact->CanPartialClearThrough = 0; PredXact->HavePartialClearedThrough = 0; - requestSize = mul_size((Size) max_table_size, - sizeof(SERIALIZABLEXACT)); - PredXact->element = ShmemAlloc(requestSize); + PredXact->element + = (SERIALIZABLEXACT *) ((char *) PredXact + PredXactListDataSize); /* Add all elements to available list, clean. */ - memset(PredXact->element, 0, requestSize); for (i = 0; i < max_table_size; i++) { LWLockInitialize(&PredXact->element[i].perXactPredicateListLock, @@ -1300,20 +1305,25 @@ PredicateLockShmemInit(void) */ max_table_size *= 5; + requestSize = RWConflictPoolHeaderDataSize + + mul_size((Size) max_table_size, + RWConflictDataSize); + RWConflictPool = ShmemInitStruct("RWConflictPool", - RWConflictPoolHeaderDataSize, + requestSize, &found); Assert(found == IsUnderPostmaster); if (!found) { int i; + /* clean everything, including the elements */ + memset(RWConflictPool, 0, requestSize); + dlist_init(&RWConflictPool->availableList); - requestSize = mul_size((Size) max_table_size, - RWConflictDataSize); - RWConflictPool->element = ShmemAlloc(requestSize); + RWConflictPool->element = (RWConflict) ((char *) RWConflictPool + + RWConflictPoolHeaderDataSize); /* Add all elements to available list, clean. */ - memset(RWConflictPool->element, 0, requestSize); for (i = 0; i < max_table_size; i++) { dlist_push_tail(&RWConflictPool->availableList, diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 066319afe2b08..e9ef0fbfe32cb 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -91,26 +91,35 @@ static void CheckDeadLock(void); /* - * Report shared-memory space needed by InitProcGlobal. + * Report shared-memory space needed by PGPROC. */ -Size -ProcGlobalShmemSize(void) +static Size +PGProcShmemSize(void) { Size size = 0; Size TotalProcs = add_size(MaxBackends, add_size(NUM_AUXILIARY_PROCS, max_prepared_xacts)); - Size fpLockBitsSize, - fpRelIdSize; - /* ProcGlobal */ - size = add_size(size, sizeof(PROC_HDR)); size = add_size(size, mul_size(TotalProcs, sizeof(PGPROC))); - size = add_size(size, sizeof(slock_t)); - size = add_size(size, mul_size(TotalProcs, sizeof(*ProcGlobal->xids))); size = add_size(size, mul_size(TotalProcs, sizeof(*ProcGlobal->subxidStates))); size = add_size(size, mul_size(TotalProcs, sizeof(*ProcGlobal->statusFlags))); + return size; +} + +/* + * Report shared-memory space needed by Fast-Path locks. + */ +static Size +FastPathLockShmemSize(void) +{ + Size size = 0; + Size TotalProcs = + add_size(MaxBackends, add_size(NUM_AUXILIARY_PROCS, max_prepared_xacts)); + Size fpLockBitsSize, + fpRelIdSize; + /* * Memory needed for PGPROC fast-path lock arrays. Make sure the sizes are * nicely aligned in each backend. @@ -123,6 +132,24 @@ ProcGlobalShmemSize(void) return size; } +/* + * Report shared-memory space needed by InitProcGlobal. + */ +Size +ProcGlobalShmemSize(void) +{ + Size size = 0; + + /* ProcGlobal */ + size = add_size(size, sizeof(PROC_HDR)); + size = add_size(size, sizeof(slock_t)); + + size = add_size(size, PGProcShmemSize()); + size = add_size(size, FastPathLockShmemSize()); + + return size; +} + /* * Report number of semaphores needed by InitProcGlobal. */ @@ -175,6 +202,8 @@ InitProcGlobal(void) *fpEndPtr PG_USED_FOR_ASSERTS_ONLY; Size fpLockBitsSize, fpRelIdSize; + Size requestSize; + char *ptr; /* Create the ProcGlobal shared structure */ ProcGlobal = (PROC_HDR *) @@ -204,8 +233,17 @@ InitProcGlobal(void) * with a single freelist.) Each PGPROC structure is dedicated to exactly * one of these purposes, and they do not move between groups. */ - procs = (PGPROC *) ShmemAlloc(TotalProcs * sizeof(PGPROC)); - MemSet(procs, 0, TotalProcs * sizeof(PGPROC)); + requestSize = PGProcShmemSize(); + + ptr = ShmemInitStruct("PGPROC structures", + requestSize, + &found); + + MemSet(ptr, 0, requestSize); + + procs = (PGPROC *) ptr; + ptr = (char *) ptr + TotalProcs * sizeof(PGPROC); + ProcGlobal->allProcs = procs; /* XXX allProcCount isn't really all of them; it excludes prepared xacts */ ProcGlobal->allProcCount = MaxBackends + NUM_AUXILIARY_PROCS; @@ -217,13 +255,17 @@ InitProcGlobal(void) * XXX: It might make sense to increase padding for these arrays, given * how hotly they are accessed. */ - ProcGlobal->xids = - (TransactionId *) ShmemAlloc(TotalProcs * sizeof(*ProcGlobal->xids)); - MemSet(ProcGlobal->xids, 0, TotalProcs * sizeof(*ProcGlobal->xids)); - ProcGlobal->subxidStates = (XidCacheStatus *) ShmemAlloc(TotalProcs * sizeof(*ProcGlobal->subxidStates)); - MemSet(ProcGlobal->subxidStates, 0, TotalProcs * sizeof(*ProcGlobal->subxidStates)); - ProcGlobal->statusFlags = (uint8 *) ShmemAlloc(TotalProcs * sizeof(*ProcGlobal->statusFlags)); - MemSet(ProcGlobal->statusFlags, 0, TotalProcs * sizeof(*ProcGlobal->statusFlags)); + ProcGlobal->xids = (TransactionId *) ptr; + ptr = (char *) ptr + (TotalProcs * sizeof(*ProcGlobal->xids)); + + ProcGlobal->subxidStates = (XidCacheStatus *) ptr; + ptr = (char *) ptr + (TotalProcs * sizeof(*ProcGlobal->subxidStates)); + + ProcGlobal->statusFlags = (uint8 *) ptr; + ptr = (char *) ptr + (TotalProcs * sizeof(*ProcGlobal->statusFlags)); + + /* make sure wer didn't overflow */ + Assert((ptr > (char *) procs) && (ptr <= (char *) procs + requestSize)); /* * Allocate arrays for fast-path locks. Those are variable-length, so @@ -233,11 +275,16 @@ InitProcGlobal(void) fpLockBitsSize = MAXALIGN(FastPathLockGroupsPerBackend * sizeof(uint64)); fpRelIdSize = MAXALIGN(FastPathLockSlotsPerBackend() * sizeof(Oid)); - fpPtr = ShmemAlloc(TotalProcs * (fpLockBitsSize + fpRelIdSize)); - MemSet(fpPtr, 0, TotalProcs * (fpLockBitsSize + fpRelIdSize)); + requestSize = FastPathLockShmemSize(); + + fpPtr = ShmemInitStruct("Fast-Path Lock Array", + requestSize, + &found); + + MemSet(fpPtr, 0, requestSize); /* For asserts checking we did not overflow. */ - fpEndPtr = fpPtr + (TotalProcs * (fpLockBitsSize + fpRelIdSize)); + fpEndPtr = fpPtr + requestSize; for (i = 0; i < TotalProcs; i++) { @@ -330,7 +377,9 @@ InitProcGlobal(void) PreparedXactProcs = &procs[MaxBackends + NUM_AUXILIARY_PROCS]; /* Create ProcStructLock spinlock, too */ - ProcStructLock = (slock_t *) ShmemAlloc(sizeof(slock_t)); + ProcStructLock = (slock_t *) ShmemInitStruct("ProcStructLock spinlock", + sizeof(slock_t), + &found); SpinLockInit(ProcStructLock); } diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c index 82457bacc62fa..dbb49ed9197d7 100644 --- a/src/backend/storage/page/bufpage.c +++ b/src/backend/storage/page/bufpage.c @@ -88,7 +88,7 @@ PageInit(Page page, Size pageSize, Size specialSize) * To allow the caller to report statistics about checksum failures, * *checksum_failure_p can be passed in. Note that there may be checksum * failures even if this function returns true, due to - * IGNORE_CHECKSUM_FAILURE. + * PIV_IGNORE_CHECKSUM_FAILURE. */ bool PageIsVerified(PageData *page, BlockNumber blkno, int flags, bool *checksum_failure_p) diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index f99c9d9001342..2ccb0faceb5b6 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -154,7 +154,7 @@ static BlockNumber _mdnblocks(SMgrRelation reln, ForkNumber forknum, MdfdVec *seg); static PgAioResult md_readv_complete(PgAioHandle *ioh, PgAioResult prior_result, uint8 cb_data); -static void md_readv_report(PgAioResult result, const PgAioTargetData *target_data, int elevel); +static void md_readv_report(PgAioResult result, const PgAioTargetData *td, int elevel); const PgAioHandleCallbacks aio_md_readv_cb = { .complete_shared = md_readv_complete, diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 4540284f5817c..bce37a36d51ba 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -746,6 +746,8 @@ smgrreadv(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, * responsible for pgaio_result_report() to mirror that news to the user (if * the IO results in PGAIO_RS_WARNING) or abort the (sub)transaction (if * PGAIO_RS_ERROR). + * - Under Valgrind, the "buffers" memory may or may not change status to + * DEFINED, depending on io_method and concurrent activity. */ void smgrstartreadv(PgAioHandle *ioh, diff --git a/src/backend/tcop/backend_startup.c b/src/backend/tcop/backend_startup.c index a07c59ece013e..a7d1fec981f88 100644 --- a/src/backend/tcop/backend_startup.c +++ b/src/backend/tcop/backend_startup.c @@ -18,6 +18,7 @@ #include #include "access/xlog.h" +#include "access/xlogrecovery.h" #include "common/ip.h" #include "common/string.h" #include "libpq/libpq.h" @@ -59,6 +60,7 @@ ConnectionTiming conn_timing = {.ready_for_use = TIMESTAMP_MINUS_INFINITY}; static void BackendInitialize(ClientSocket *client_sock, CAC_state cac); static int ProcessSSLStartup(Port *port); static int ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done); +static void ProcessCancelRequestPacket(Port *port, void *pkt, int pktlen); static void SendNegotiateProtocolVersion(List *unrecognized_protocol_options); static void process_startup_packet_die(SIGNAL_ARGS); static void StartupPacketTimeoutHandler(void); @@ -232,7 +234,7 @@ BackendInitialize(ClientSocket *client_sock, CAC_state cac) /* For testing client error handling */ #ifdef USE_INJECTION_POINTS - INJECTION_POINT("backend-initialize"); + INJECTION_POINT("backend-initialize", NULL); if (IS_INJECTION_POINT_ATTACHED("backend-initialize-v2-error")) { /* @@ -306,17 +308,24 @@ BackendInitialize(ClientSocket *client_sock, CAC_state cac) (errcode(ERRCODE_CANNOT_CONNECT_NOW), errmsg("the database system is starting up"))); break; - case CAC_NOTCONSISTENT: - if (EnableHotStandby) + case CAC_NOTHOTSTANDBY: + if (!EnableHotStandby) + ereport(FATAL, + (errcode(ERRCODE_CANNOT_CONNECT_NOW), + errmsg("the database system is not accepting connections"), + errdetail("Hot standby mode is disabled."))); + else if (reachedConsistency) ereport(FATAL, (errcode(ERRCODE_CANNOT_CONNECT_NOW), errmsg("the database system is not yet accepting connections"), - errdetail("Consistent recovery state has not been yet reached."))); + errdetail("Recovery snapshot is not yet ready for hot standby."), + errhint("To enable hot standby, close write transactions with more than %d subtransactions on the primary server.", + PGPROC_MAX_CACHED_SUBXIDS))); else ereport(FATAL, (errcode(ERRCODE_CANNOT_CONNECT_NOW), - errmsg("the database system is not accepting connections"), - errdetail("Hot standby mode is disabled."))); + errmsg("the database system is not yet accepting connections"), + errdetail("Consistent recovery state has not been yet reached."))); break; case CAC_SHUTDOWN: ereport(FATAL, @@ -557,28 +566,7 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done) if (proto == CANCEL_REQUEST_CODE) { - /* - * The client has sent a cancel request packet, not a normal - * start-a-new-connection packet. Perform the necessary processing. - * Nothing is sent back to the client. - */ - CancelRequestPacket *canc; - int backendPID; - int32 cancelAuthCode; - - if (len != sizeof(CancelRequestPacket)) - { - ereport(COMMERROR, - (errcode(ERRCODE_PROTOCOL_VIOLATION), - errmsg("invalid length of startup packet"))); - return STATUS_ERROR; - } - canc = (CancelRequestPacket *) buf; - backendPID = (int) pg_ntoh32(canc->backendPID); - cancelAuthCode = (int32) pg_ntoh32(canc->cancelAuthCode); - - if (backendPID != 0) - SendCancelRequest(backendPID, cancelAuthCode); + ProcessCancelRequestPacket(port, buf, len); /* Not really an error, but we don't want to proceed further */ return STATUS_ERROR; } @@ -878,6 +866,37 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done) return STATUS_OK; } +/* + * The client has sent a cancel request packet, not a normal + * start-a-new-connection packet. Perform the necessary processing. Nothing + * is sent back to the client. + */ +static void +ProcessCancelRequestPacket(Port *port, void *pkt, int pktlen) +{ + CancelRequestPacket *canc; + int len; + + if (pktlen < offsetof(CancelRequestPacket, cancelAuthCode)) + { + ereport(COMMERROR, + (errcode(ERRCODE_PROTOCOL_VIOLATION), + errmsg("invalid length of query cancel packet"))); + return; + } + len = pktlen - offsetof(CancelRequestPacket, cancelAuthCode); + if (len == 0 || len > 256) + { + ereport(COMMERROR, + (errcode(ERRCODE_PROTOCOL_VIOLATION), + errmsg("invalid length of query cancel key"))); + return; + } + + canc = (CancelRequestPacket *) pkt; + SendCancelRequest(pg_ntoh32(canc->backendPID), canc->cancelAuthCode, len); +} + /* * Send a NegotiateProtocolVersion to the client. This lets the client know * that they have either requested a newer minor protocol version than we are diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index aec65007bb6a3..c242c8170b562 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -1226,7 +1226,6 @@ exec_simple_query(const char *query_string) query_string, commandTag, plantree_list, - NULL, NULL); /* @@ -2028,8 +2027,7 @@ exec_bind_message(StringInfo input_message) query_string, psrc->commandTag, cplan->stmt_list, - cplan, - psrc); + cplan); /* Portal is defined, set the plan ID based on its contents. */ foreach(lc, portal->stmts) @@ -3335,6 +3333,10 @@ ProcessInterrupts(void) */ proc_exit(1); } + else if (AmWalReceiverProcess()) + ereport(FATAL, + (errcode(ERRCODE_ADMIN_SHUTDOWN), + errmsg("terminating walreceiver process due to administrator command"))); else if (AmBackgroundWorkerProcess()) ereport(FATAL, (errcode(ERRCODE_ADMIN_SHUTDOWN), @@ -3478,7 +3480,7 @@ ProcessInterrupts(void) IdleInTransactionSessionTimeoutPending = false; if (IdleInTransactionSessionTimeout > 0) { - INJECTION_POINT("idle-in-transaction-session-timeout"); + INJECTION_POINT("idle-in-transaction-session-timeout", NULL); ereport(FATAL, (errcode(ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT), errmsg("terminating connection due to idle-in-transaction timeout"))); @@ -3491,7 +3493,7 @@ ProcessInterrupts(void) TransactionTimeoutPending = false; if (TransactionTimeout > 0) { - INJECTION_POINT("transaction-timeout"); + INJECTION_POINT("transaction-timeout", NULL); ereport(FATAL, (errcode(ERRCODE_TRANSACTION_TIMEOUT), errmsg("terminating connection due to transaction timeout"))); @@ -3504,7 +3506,7 @@ ProcessInterrupts(void) IdleSessionTimeoutPending = false; if (IdleSessionTimeout > 0) { - INJECTION_POINT("idle-session-timeout"); + INJECTION_POINT("idle-session-timeout", NULL); ereport(FATAL, (errcode(ERRCODE_IDLE_SESSION_TIMEOUT), errmsg("terminating connection due to idle-session timeout"))); @@ -3688,7 +3690,7 @@ set_debug_options(int debug_flag, GucContext context, GucSource source) if (debug_flag >= 1 && context == PGC_POSTMASTER) { - SetConfigOption("log_connections", "true", context, source); + SetConfigOption("log_connections", "all", context, source); SetConfigOption("log_disconnections", "true", context, source); } if (debug_flag >= 2) @@ -4259,16 +4261,20 @@ PostgresMain(const char *dbname, const char *username) * Generate a random cancel key, if this is a backend serving a * connection. InitPostgres() will advertise it in shared memory. */ - Assert(!MyCancelKeyValid); + Assert(MyCancelKeyLength == 0); if (whereToSendOutput == DestRemote) { - if (!pg_strong_random(&MyCancelKey, sizeof(int32))) + int len; + + len = (MyProcPort == NULL || MyProcPort->proto >= PG_PROTOCOL(3, 2)) + ? MAX_CANCEL_KEY_LENGTH : 4; + if (!pg_strong_random(&MyCancelKey, len)) { ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("could not generate random cancel key"))); } - MyCancelKeyValid = true; + MyCancelKeyLength = len; } /* @@ -4323,10 +4329,11 @@ PostgresMain(const char *dbname, const char *username) { StringInfoData buf; - Assert(MyCancelKeyValid); + Assert(MyCancelKeyLength > 0); pq_beginmessage(&buf, PqMsg_BackendKeyData); pq_sendint32(&buf, (int32) MyProcPid); - pq_sendint32(&buf, (int32) MyCancelKey); + + pq_sendbytes(&buf, MyCancelKey, MyCancelKeyLength); pq_endmessage(&buf); /* Need not flush since ReadyForQuery will do it. */ } diff --git a/src/backend/tcop/pquery.c b/src/backend/tcop/pquery.c index 8164d0fbb4f69..d1593f38b35fd 100644 --- a/src/backend/tcop/pquery.c +++ b/src/backend/tcop/pquery.c @@ -19,7 +19,6 @@ #include "access/xact.h" #include "commands/prepare.h" -#include "executor/execdesc.h" #include "executor/executor.h" #include "executor/tstoreReceiver.h" #include "miscadmin.h" @@ -38,9 +37,6 @@ Portal ActivePortal = NULL; static void ProcessQuery(PlannedStmt *plan, - CachedPlan *cplan, - CachedPlanSource *plansource, - int query_index, const char *sourceText, ParamListInfo params, QueryEnvironment *queryEnv, @@ -70,7 +66,6 @@ static void DoPortalRewind(Portal portal); */ QueryDesc * CreateQueryDesc(PlannedStmt *plannedstmt, - CachedPlan *cplan, const char *sourceText, Snapshot snapshot, Snapshot crosscheck_snapshot, @@ -83,7 +78,6 @@ CreateQueryDesc(PlannedStmt *plannedstmt, qd->operation = plannedstmt->commandType; /* operation */ qd->plannedstmt = plannedstmt; /* plan */ - qd->cplan = cplan; /* CachedPlan supplying the plannedstmt */ qd->sourceText = sourceText; /* query text */ qd->snapshot = RegisterSnapshot(snapshot); /* snapshot */ /* RI check snapshot */ @@ -129,9 +123,6 @@ FreeQueryDesc(QueryDesc *qdesc) * PORTAL_ONE_RETURNING, or PORTAL_ONE_MOD_WITH portal * * plan: the plan tree for the query - * cplan: CachedPlan supplying the plan - * plansource: CachedPlanSource supplying the cplan - * query_index: index of the query in plansource->query_list * sourceText: the source text of the query * params: any parameters needed * dest: where to send results @@ -144,9 +135,6 @@ FreeQueryDesc(QueryDesc *qdesc) */ static void ProcessQuery(PlannedStmt *plan, - CachedPlan *cplan, - CachedPlanSource *plansource, - int query_index, const char *sourceText, ParamListInfo params, QueryEnvironment *queryEnv, @@ -158,23 +146,14 @@ ProcessQuery(PlannedStmt *plan, /* * Create the QueryDesc object */ - queryDesc = CreateQueryDesc(plan, cplan, sourceText, + queryDesc = CreateQueryDesc(plan, sourceText, GetActiveSnapshot(), InvalidSnapshot, dest, params, queryEnv, 0); /* - * Prepare the plan for execution + * Call ExecutorStart to prepare the plan for execution */ - if (queryDesc->cplan) - { - ExecutorStartCachedPlan(queryDesc, 0, plansource, query_index); - Assert(queryDesc->planstate); - } - else - { - if (!ExecutorStart(queryDesc, 0)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); - } + ExecutorStart(queryDesc, 0); /* * Run the plan to completion. @@ -515,7 +494,6 @@ PortalStart(Portal portal, ParamListInfo params, * the destination to DestNone. */ queryDesc = CreateQueryDesc(linitial_node(PlannedStmt, portal->stmts), - portal->cplan, portal->sourceText, GetActiveSnapshot(), InvalidSnapshot, @@ -535,19 +513,9 @@ PortalStart(Portal portal, ParamListInfo params, myeflags = eflags; /* - * Prepare the plan for execution. + * Call ExecutorStart to prepare the plan for execution */ - if (portal->cplan) - { - ExecutorStartCachedPlan(queryDesc, myeflags, - portal->plansource, 0); - Assert(queryDesc->planstate); - } - else - { - if (!ExecutorStart(queryDesc, myeflags)) - elog(ERROR, "ExecutorStart() failed unexpectedly"); - } + ExecutorStart(queryDesc, myeflags); /* * This tells PortalCleanup to shut down the executor @@ -1221,7 +1189,6 @@ PortalRunMulti(Portal portal, { bool active_snapshot_set = false; ListCell *stmtlist_item; - int query_index = 0; /* * If the destination is DestRemoteExecute, change to DestNone. The @@ -1303,9 +1270,6 @@ PortalRunMulti(Portal portal, { /* statement can set tag string */ ProcessQuery(pstmt, - portal->cplan, - portal->plansource, - query_index, portal->sourceText, portal->portalParams, portal->queryEnv, @@ -1315,9 +1279,6 @@ PortalRunMulti(Portal portal, { /* stmt added by rewrite cannot set tag */ ProcessQuery(pstmt, - portal->cplan, - portal->plansource, - query_index, portal->sourceText, portal->portalParams, portal->queryEnv, @@ -1382,8 +1343,6 @@ PortalRunMulti(Portal portal, */ if (lnext(portal->stmts, stmtlist_item) != NULL) CommandCounterIncrement(); - - query_index++; } /* Pop the snapshot if we pushed one. */ diff --git a/src/backend/utils/activity/generate-wait_event_types.pl b/src/backend/utils/activity/generate-wait_event_types.pl index 171bf2ae632c8..424ad9f115d34 100644 --- a/src/backend/utils/activity/generate-wait_event_types.pl +++ b/src/backend/utils/activity/generate-wait_event_types.pl @@ -168,7 +168,7 @@ printf $h $header_comment, 'wait_event_types.h'; printf $h "#ifndef WAIT_EVENT_TYPES_H\n"; printf $h "#define WAIT_EVENT_TYPES_H\n\n"; - printf $h "#include \"utils/wait_event.h\"\n\n"; + printf $h "#include \"utils/wait_classes.h\"\n\n"; printf $c $header_comment, 'pgstat_wait_event.c'; diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index 0005021f644b2..8b57845e8709f 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -730,10 +730,7 @@ pgstat_report_stat(bool force) } if (!do_flush) - { - Assert(pending_since == 0); return 0; - } } /* @@ -1019,7 +1016,7 @@ pgstat_fetch_entry(PgStat_Kind kind, Oid dboid, uint64 objid) stats_data = MemoryContextAlloc(pgStatLocal.snapshot.context, kind_info->shared_data_len); - pgstat_lock_entry_shared(entry_ref, false); + (void) pgstat_lock_entry_shared(entry_ref, false); memcpy(stats_data, pgstat_get_entry_data(kind, entry_ref->shared_stats), kind_info->shared_data_len); @@ -1190,7 +1187,7 @@ pgstat_build_snapshot(void) Assert(!found); entry->data = MemoryContextAlloc(pgStatLocal.snapshot.context, - kind_info->shared_size); + pgstat_get_entry_len(kind)); /* * Acquire the LWLock directly instead of using @@ -1199,7 +1196,7 @@ pgstat_build_snapshot(void) LWLockAcquire(&stats_data->lock, LW_SHARED); memcpy(entry->data, pgstat_get_entry_data(kind, stats_data), - kind_info->shared_size); + pgstat_get_entry_len(kind)); LWLockRelease(&stats_data->lock); } dshash_seq_term(&hstat); @@ -1908,6 +1905,14 @@ pgstat_read_statsfile(void) key.objid, t); goto error; } + + if (!pgstat_get_kind_info(key.kind)) + { + elog(WARNING, "could not find information of kind for entry %u/%u/%" PRIu64 " of type %c", + key.kind, key.dboid, + key.objid, t); + goto error; + } } else { diff --git a/src/backend/utils/activity/pgstat_backend.c b/src/backend/utils/activity/pgstat_backend.c index 187c5c76e1eda..51256277e8d37 100644 --- a/src/backend/utils/activity/pgstat_backend.c +++ b/src/backend/utils/activity/pgstat_backend.c @@ -100,7 +100,7 @@ pgstat_fetch_stat_backend(ProcNumber procNumber) /* * Returns statistics of a backend by pid. * - * This routine includes sanity checks to ensire that the backend exists and + * This routine includes sanity checks to ensure that the backend exists and * is running. "bktype" can be optionally defined to return the BackendType * of the backend whose statistics are returned. */ @@ -133,10 +133,6 @@ pgstat_fetch_stat_backend_by_pid(int pid, BackendType *bktype) if (!pgstat_tracks_backend_bktype(beentry->st_backendType)) return NULL; - backend_stats = pgstat_fetch_stat_backend(procNumber); - if (!backend_stats) - return NULL; - /* if PID does not match, leave */ if (beentry->st_procpid != pid) return NULL; @@ -144,6 +140,18 @@ pgstat_fetch_stat_backend_by_pid(int pid, BackendType *bktype) if (bktype) *bktype = beentry->st_backendType; + /* + * Retrieve the entry. Note that "beentry" may be freed depending on the + * value of stats_fetch_consistency, so do not access it from this point. + */ + backend_stats = pgstat_fetch_stat_backend(procNumber); + if (!backend_stats) + { + if (bktype) + *bktype = B_INVALID; + return NULL; + } + return backend_stats; } diff --git a/src/backend/utils/activity/pgstat_database.c b/src/backend/utils/activity/pgstat_database.c index fbaf83641170d..b31f20d41bcc5 100644 --- a/src/backend/utils/activity/pgstat_database.c +++ b/src/backend/utils/activity/pgstat_database.c @@ -195,7 +195,7 @@ pgstat_report_checksum_failures_in_db(Oid dboid, int failurecount) return; } - pgstat_lock_entry(entry_ref, false); + (void) pgstat_lock_entry(entry_ref, false); sharedent = (PgStatShared_Database *) entry_ref->shared_stats; sharedent->stats.checksum_failures += failurecount; @@ -421,8 +421,8 @@ pgstat_reset_database_timestamp(Oid dboid, TimestampTz ts) /* * Flush out pending stats for the entry * - * If nowait is true, this function returns false if lock could not - * immediately acquired, otherwise true is returned. + * If nowait is true and the lock could not be immediately acquired, returns + * false without flushing the entry. Otherwise returns true. */ bool pgstat_database_flush_cb(PgStat_EntryRef *entry_ref, bool nowait) diff --git a/src/backend/utils/activity/pgstat_function.c b/src/backend/utils/activity/pgstat_function.c index bc4e254d02d3b..6214f93d36e0c 100644 --- a/src/backend/utils/activity/pgstat_function.c +++ b/src/backend/utils/activity/pgstat_function.c @@ -186,8 +186,8 @@ pgstat_end_function_usage(PgStat_FunctionCallUsage *fcu, bool finalize) /* * Flush out pending stats for the entry * - * If nowait is true, this function returns false if lock could not - * immediately acquired, otherwise true is returned. + * If nowait is true and the lock could not be immediately acquired, returns + * false without flushing the entry. Otherwise returns true. */ bool pgstat_function_flush_cb(PgStat_EntryRef *entry_ref, bool nowait) diff --git a/src/backend/utils/activity/pgstat_relation.c b/src/backend/utils/activity/pgstat_relation.c index d64595a165cc2..28587e2916b1d 100644 --- a/src/backend/utils/activity/pgstat_relation.c +++ b/src/backend/utils/activity/pgstat_relation.c @@ -806,8 +806,8 @@ pgstat_twophase_postabort(TransactionId xid, uint16 info, /* * Flush out pending stats for the entry * - * If nowait is true, this function returns false if lock could not - * immediately acquired, otherwise true is returned. + * If nowait is true and the lock could not be immediately acquired, returns + * false without flushing the entry. Otherwise returns true. * * Some of the stats are copied to the corresponding pending database stats * entry when successfully flushing. @@ -868,7 +868,16 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool nowait) tabentry->live_tuples += lstats->counts.delta_live_tuples; tabentry->dead_tuples += lstats->counts.delta_dead_tuples; tabentry->mod_since_analyze += lstats->counts.changed_tuples; + + /* + * Using tuples_inserted to update ins_since_vacuum does mean that we'll + * track aborted inserts too. This isn't ideal, but otherwise probably + * not worth adding an extra field for. It may just amount to autovacuums + * triggering for inserts more often than they maybe should, which is + * probably not going to be common enough to be too concerned about here. + */ tabentry->ins_since_vacuum += lstats->counts.tuples_inserted; + tabentry->blocks_fetched += lstats->counts.blocks_fetched; tabentry->blocks_hit += lstats->counts.blocks_hit; diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 5cd243037551c..2e33293b00097 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -643,6 +643,13 @@ pgstat_release_entry_ref(PgStat_HashKey key, PgStat_EntryRef *entry_ref, pfree(entry_ref); } +/* + * Acquire exclusive lock on the entry. + * + * If nowait is true, it's just a conditional acquire, and the result + * *must* be checked to verify success. + * If nowait is false, waits as necessary, always returning true. + */ bool pgstat_lock_entry(PgStat_EntryRef *entry_ref, bool nowait) { @@ -656,8 +663,10 @@ pgstat_lock_entry(PgStat_EntryRef *entry_ref, bool nowait) } /* + * Acquire shared lock on the entry. + * * Separate from pgstat_lock_entry() as most callers will need to lock - * exclusively. + * exclusively. The wait semantics are identical. */ bool pgstat_lock_entry_shared(PgStat_EntryRef *entry_ref, bool nowait) diff --git a/src/backend/utils/activity/pgstat_subscription.c b/src/backend/utils/activity/pgstat_subscription.c index 830d408c61a38..f9a1c831a07e6 100644 --- a/src/backend/utils/activity/pgstat_subscription.c +++ b/src/backend/utils/activity/pgstat_subscription.c @@ -96,8 +96,8 @@ pgstat_fetch_stat_subscription(Oid subid) /* * Flush out pending stats for the entry * - * If nowait is true, this function returns false if lock could not - * immediately acquired, otherwise true is returned. + * If nowait is true and the lock could not be immediately acquired, returns + * false without flushing the entry. Otherwise returns true. */ bool pgstat_subscription_flush_cb(PgStat_EntryRef *entry_ref, bool nowait) diff --git a/src/backend/utils/activity/wait_event_names.txt b/src/backend/utils/activity/wait_event_names.txt index 4f44648aca817..5d9e04d682377 100644 --- a/src/backend/utils/activity/wait_event_names.txt +++ b/src/backend/utils/activity/wait_event_names.txt @@ -156,6 +156,7 @@ REPLICATION_SLOT_DROP "Waiting for a replication slot to become inactive so it c RESTORE_COMMAND "Waiting for to complete." SAFE_SNAPSHOT "Waiting to obtain a valid snapshot for a READ ONLY DEFERRABLE transaction." SYNC_REP "Waiting for confirmation from a remote server during synchronous replication." +WAL_BUFFER_INIT "Waiting on WAL buffer to be initialized." WAL_RECEIVER_EXIT "Waiting for the WAL receiver to exit." WAL_RECEIVER_WAIT_START "Waiting for startup process to send initial data for streaming replication." WAL_SUMMARY_READY "Waiting for a new WAL summary to be generated." @@ -206,6 +207,7 @@ CONTROL_FILE_SYNC "Waiting for the pg_control file to reach CONTROL_FILE_SYNC_UPDATE "Waiting for an update to the pg_control file to reach durable storage." CONTROL_FILE_WRITE "Waiting for a write to the pg_control file." CONTROL_FILE_WRITE_UPDATE "Waiting for a write to update the pg_control file." +COPY_FILE_COPY "Waiting for a file copy operation." COPY_FILE_READ "Waiting for a read during a file copy operation." COPY_FILE_WRITE "Waiting for a write during a file copy operation." DATA_FILE_EXTEND "Waiting for a relation data file to be extended." @@ -314,7 +316,6 @@ XidGen "Waiting to allocate a new transaction ID." ProcArray "Waiting to access the shared per-process data structures (typically, to get a snapshot or report a session's transaction ID)." SInvalRead "Waiting to retrieve messages from the shared catalog invalidation queue." SInvalWrite "Waiting to add a message to the shared catalog invalidation queue." -WALBufMapping "Waiting to replace a page in WAL buffers." WALWrite "Waiting for WAL buffers to be written to disk." ControlFile "Waiting to read or update the pg_control file or create a new WAL file." MultiXactGen "Waiting to read or update shared multixact state." diff --git a/src/backend/utils/adt/Makefile b/src/backend/utils/adt/Makefile index 35e8c01aab94f..4a233b63c3280 100644 --- a/src/backend/utils/adt/Makefile +++ b/src/backend/utils/adt/Makefile @@ -99,6 +99,7 @@ OBJS = \ rowtypes.o \ ruleutils.o \ selfuncs.o \ + skipsupport.o \ tid.o \ timestamp.o \ trigfuncs.o \ diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index ba14713fef22f..ca3c5ee3df3ae 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -127,7 +127,7 @@ static AclMode convert_tablespace_priv_string(text *priv_type_text); static Oid convert_type_name(text *typename); static AclMode convert_type_priv_string(text *priv_type_text); static AclMode convert_parameter_priv_string(text *priv_text); -static AclMode convert_largeobject_priv_string(text *priv_text); +static AclMode convert_largeobject_priv_string(text *priv_type_text); static AclMode convert_role_priv_string(text *priv_type_text); static AclResult pg_role_aclcheck(Oid role_oid, Oid roleid, AclMode mode); diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c index f279853deb807..4227ab1a72bfb 100644 --- a/src/backend/utils/adt/date.c +++ b/src/backend/utils/adt/date.c @@ -34,6 +34,7 @@ #include "utils/date.h" #include "utils/datetime.h" #include "utils/numeric.h" +#include "utils/skipsupport.h" #include "utils/sortsupport.h" /* @@ -462,6 +463,51 @@ date_sortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +static Datum +date_decrement(Relation rel, Datum existing, bool *underflow) +{ + DateADT dexisting = DatumGetDateADT(existing); + + if (dexisting == DATEVAL_NOBEGIN) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return DateADTGetDatum(dexisting - 1); +} + +static Datum +date_increment(Relation rel, Datum existing, bool *overflow) +{ + DateADT dexisting = DatumGetDateADT(existing); + + if (dexisting == DATEVAL_NOEND) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return DateADTGetDatum(dexisting + 1); +} + +Datum +date_skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = date_decrement; + sksup->increment = date_increment; + sksup->low_elem = DateADTGetDatum(DATEVAL_NOBEGIN); + sksup->high_elem = DateADTGetDatum(DATEVAL_NOEND); + + PG_RETURN_VOID(); +} + Datum hashdate(PG_FUNCTION_ARGS) { diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c index 9f43b58dba5f5..bcb1720b6cde2 100644 --- a/src/backend/utils/adt/jsonfuncs.c +++ b/src/backend/utils/adt/jsonfuncs.c @@ -1723,9 +1723,9 @@ push_path(JsonbParseState **st, int level, Datum *path_elems, { /* * tpath contains expected type of an empty jsonb created at each level - * higher or equal than the current one, either jbvObject or jbvArray. - * Since it contains only information about path slice from level to the - * end, the access index must be normalized by level. + * higher or equal to the current one, either jbvObject or jbvArray. Since + * it contains only information about path slice from level to the end, + * the access index must be normalized by level. */ enum jbvType *tpath = palloc0((path_len - level) * sizeof(enum jbvType)); JsonbValue newkey; diff --git a/src/backend/utils/adt/meson.build b/src/backend/utils/adt/meson.build index f23cfad7182ab..244f48f4fd711 100644 --- a/src/backend/utils/adt/meson.build +++ b/src/backend/utils/adt/meson.build @@ -86,6 +86,7 @@ backend_sources += files( 'rowtypes.c', 'ruleutils.c', 'selfuncs.c', + 'skipsupport.c', 'tid.c', 'timestamp.c', 'trigfuncs.c', diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c index 227980c14d3ce..f03fcc1147bb0 100644 --- a/src/backend/utils/adt/network.c +++ b/src/backend/utils/adt/network.c @@ -279,8 +279,6 @@ network_send(inet *addr, bool is_cidr) pq_sendbyte(&buf, ip_bits(addr)); pq_sendbyte(&buf, is_cidr); nb = ip_addrsize(addr); - if (nb < 0) - nb = 0; pq_sendbyte(&buf, nb); addrptr = (char *) ip_addr(addr); for (i = 0; i < nb; i++) diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 6e43b708c0f7a..f5e31c433a0de 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -19,7 +19,7 @@ * immediately. * * The other categories, LC_MONETARY, LC_NUMERIC, and LC_TIME are - * permanentaly set to "C", and then we use temporary locale_t + * permanently set to "C", and then we use temporary locale_t * objects when we need to look up locale data based on the GUCs * of the same name. Information is cached when the GUCs change. * The cached information is only used by the formatting functions @@ -46,6 +46,7 @@ #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/pg_locale.h" +#include "utils/relcache.h" #include "utils/syscache.h" #ifdef WIN32 @@ -551,7 +552,7 @@ PGLC_localeconv(void) "could not get lconv for LC_MONETARY = \"%s\", LC_NUMERIC = \"%s\": %m", locale_monetary, locale_numeric); - /* Must copy data now now so we can re-encode it. */ + /* Must copy data now so we can re-encode it. */ extlconv = &tmp; worklconv.decimal_point = strdup(extlconv->decimal_point); worklconv.thousands_sep = strdup(extlconv->thousands_sep); @@ -1196,6 +1197,8 @@ pg_newlocale_from_collation(Oid collid) if (!OidIsValid(collid)) elog(ERROR, "cache lookup failed for collation %u", collid); + AssertCouldGetRelation(); + if (last_collation_cache_oid == collid) return last_collation_cache_locale; diff --git a/src/backend/utils/adt/pg_locale_builtin.c b/src/backend/utils/adt/pg_locale_builtin.c index 33ad20bbf07c9..f51768830cd7b 100644 --- a/src/backend/utils/adt/pg_locale_builtin.c +++ b/src/backend/utils/adt/pg_locale_builtin.c @@ -25,13 +25,13 @@ extern pg_locale_t create_pg_locale_builtin(Oid collid, MemoryContext context); extern char *get_collation_actual_version_builtin(const char *collcollate); -extern size_t strlower_builtin(char *dst, size_t dstsize, const char *src, +extern size_t strlower_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strtitle_builtin(char *dst, size_t dstsize, const char *src, +extern size_t strtitle_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strupper_builtin(char *dst, size_t dstsize, const char *src, +extern size_t strupper_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strfold_builtin(char *dst, size_t dstsize, const char *src, +extern size_t strfold_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); @@ -40,6 +40,7 @@ struct WordBoundaryState const char *str; size_t len; size_t offset; + bool posix; bool init; bool prev_alnum; }; @@ -58,7 +59,7 @@ initcap_wbnext(void *state) { pg_wchar u = utf8_to_unicode((unsigned char *) wbstate->str + wbstate->offset); - bool curr_alnum = pg_u_isalnum(u, true); + bool curr_alnum = pg_u_isalnum(u, wbstate->posix); if (!wbstate->init || curr_alnum != wbstate->prev_alnum) { @@ -92,6 +93,7 @@ strtitle_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, .str = src, .len = srclen, .offset = 0, + .posix = !locale->info.builtin.casemap_full, .init = false, .prev_alnum = false, }; diff --git a/src/backend/utils/adt/pg_locale_icu.c b/src/backend/utils/adt/pg_locale_icu.c index b0c73f2e43d01..a32c32a0744bd 100644 --- a/src/backend/utils/adt/pg_locale_icu.c +++ b/src/backend/utils/adt/pg_locale_icu.c @@ -48,28 +48,22 @@ #define TEXTBUFLEN 1024 extern pg_locale_t create_pg_locale_icu(Oid collid, MemoryContext context); -extern size_t strlower_icu(char *dst, size_t dstsize, const char *src, +extern size_t strlower_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strtitle_icu(char *dst, size_t dstsize, const char *src, +extern size_t strtitle_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strupper_icu(char *dst, size_t dstsize, const char *src, +extern size_t strupper_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t strfold_icu(char *dst, size_t dstsize, const char *src, +extern size_t strfold_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); #ifdef USE_ICU extern UCollator *pg_ucol_open(const char *loc_str); -static int strncoll_icu(const char *arg1, ssize_t len1, - const char *arg2, ssize_t len2, - pg_locale_t locale); static size_t strnxfrm_icu(char *dest, size_t destsize, const char *src, ssize_t srclen, pg_locale_t locale); -static size_t strnxfrm_prefix_icu(char *dest, size_t destsize, - const char *src, ssize_t srclen, - pg_locale_t locale); extern char *get_collation_actual_version_icu(const char *collcollate); typedef int32_t (*ICU_Convert_Func) (UChar *dest, int32_t destCapacity, diff --git a/src/backend/utils/adt/quote.c b/src/backend/utils/adt/quote.c index 677efb93e8d07..551de59a07f35 100644 --- a/src/backend/utils/adt/quote.c +++ b/src/backend/utils/adt/quote.c @@ -108,7 +108,12 @@ quote_literal_cstr(const char *rawstr) len = strlen(rawstr); /* We make a worst-case result area; wasting a little space is OK */ - result = palloc(len * 2 + 3 + 1); + result = palloc( + (len * 2) /* doubling for every character if each one is + * a quote */ + + 3 /* two outer quotes + possibly 'E' if needed */ + + 1 /* null terminator */ + ); newlen = quote_literal_internal(result, rawstr, len); result[newlen] = '\0'; diff --git a/src/backend/utils/adt/rangetypes.c b/src/backend/utils/adt/rangetypes.c index 5f9fb23871aac..66cc0acf4a712 100644 --- a/src/backend/utils/adt/rangetypes.c +++ b/src/backend/utils/adt/rangetypes.c @@ -43,6 +43,7 @@ #include "utils/date.h" #include "utils/lsyscache.h" #include "utils/rangetypes.h" +#include "utils/sortsupport.h" #include "utils/timestamp.h" @@ -57,6 +58,7 @@ typedef struct RangeIOData static RangeIOData *get_range_io_data(FunctionCallInfo fcinfo, Oid rngtypid, IOFuncSelector func); +static int range_fast_cmp(Datum a, Datum b, SortSupport ssup); static char range_parse_flags(const char *flags_str); static bool range_parse(const char *string, char *flags, char **lbound_str, char **ubound_str, Node *escontext); @@ -1290,6 +1292,68 @@ range_cmp(PG_FUNCTION_ARGS) PG_RETURN_INT32(cmp); } +/* Sort support strategy routine */ +Datum +range_sortsupport(PG_FUNCTION_ARGS) +{ + SortSupport ssup = (SortSupport) PG_GETARG_POINTER(0); + + ssup->comparator = range_fast_cmp; + ssup->ssup_extra = NULL; + + PG_RETURN_VOID(); +} + +/* like range_cmp, but uses the new sortsupport interface */ +static int +range_fast_cmp(Datum a, Datum b, SortSupport ssup) +{ + RangeType *range_a = DatumGetRangeTypeP(a); + RangeType *range_b = DatumGetRangeTypeP(b); + TypeCacheEntry *typcache; + RangeBound lower1, + lower2; + RangeBound upper1, + upper2; + bool empty1, + empty2; + int cmp; + + /* cache the range info between calls */ + if (ssup->ssup_extra == NULL) + { + Assert(RangeTypeGetOid(range_a) == RangeTypeGetOid(range_b)); + ssup->ssup_extra = + lookup_type_cache(RangeTypeGetOid(range_a), TYPECACHE_RANGE_INFO); + } + typcache = ssup->ssup_extra; + + range_deserialize(typcache, range_a, &lower1, &upper1, &empty1); + range_deserialize(typcache, range_b, &lower2, &upper2, &empty2); + + /* For b-tree use, empty ranges sort before all else */ + if (empty1 && empty2) + cmp = 0; + else if (empty1) + cmp = -1; + else if (empty2) + cmp = 1; + else + { + cmp = range_cmp_bounds(typcache, &lower1, &lower2); + if (cmp == 0) + cmp = range_cmp_bounds(typcache, &upper1, &upper2); + } + + if ((Datum) range_a != a) + pfree(range_a); + if ((Datum) range_b != b) + pfree(range_b); + + return cmp; +} + + /* inequality operators using the range_cmp function */ Datum range_lt(PG_FUNCTION_ARGS) diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index c4ff18ce65ebe..6239900fa2892 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -428,13 +428,13 @@ RI_FKey_check(TriggerData *trigdata) { Oid fk_type = RIAttType(fk_rel, riinfo->fk_attnums[riinfo->nkeys - 1]); - appendStringInfo(&querybuf, ") x1 HAVING "); + appendStringInfoString(&querybuf, ") x1 HAVING "); sprintf(paramname, "$%d", riinfo->nkeys); ri_GenerateQual(&querybuf, "", paramname, fk_type, riinfo->agged_period_contained_by_oper, "pg_catalog.range_agg", ANYMULTIRANGEOID); - appendStringInfo(&querybuf, "(x1.r)"); + appendStringInfoString(&querybuf, "(x1.r)"); } /* Prepare and save the plan */ @@ -597,13 +597,13 @@ ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, { Oid fk_type = RIAttType(fk_rel, riinfo->fk_attnums[riinfo->nkeys - 1]); - appendStringInfo(&querybuf, ") x1 HAVING "); + appendStringInfoString(&querybuf, ") x1 HAVING "); sprintf(paramname, "$%d", riinfo->nkeys); ri_GenerateQual(&querybuf, "", paramname, fk_type, riinfo->agged_period_contained_by_oper, "pg_catalog.range_agg", ANYMULTIRANGEOID); - appendStringInfo(&querybuf, "(x1.r)"); + appendStringInfoString(&querybuf, "(x1.r)"); } /* Prepare and save the plan */ @@ -838,12 +838,12 @@ ri_restrict(TriggerData *trigdata, bool is_no_action) /* Intersect the fk with the old pk range */ initStringInfo(&intersectbuf); - appendStringInfoString(&intersectbuf, "("); + appendStringInfoChar(&intersectbuf, '('); ri_GenerateQual(&intersectbuf, "", attname, fk_period_type, riinfo->period_intersect_oper, paramname, pk_period_type); - appendStringInfoString(&intersectbuf, ")"); + appendStringInfoChar(&intersectbuf, ')'); /* Find the remaining history */ initStringInfo(&replacementsbuf); diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 9e90acedb9197..3d6e6bdbfd21b 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -5956,9 +5956,19 @@ get_select_query_def(Query *query, deparse_context *context) { if (query->limitOption == LIMIT_OPTION_WITH_TIES) { + /* + * The limitCount arg is a c_expr, so it needs parens. Simple + * literals and function expressions would not need parens, but + * unfortunately it's hard to tell if the expression will be + * printed as a simple literal like 123 or as a typecast + * expression, like '-123'::int4. The grammar accepts the former + * without quoting, but not the latter. + */ appendContextKeyword(context, " FETCH FIRST ", -PRETTYINDENT_STD, PRETTYINDENT_STD, 0); + appendStringInfoChar(buf, '('); get_rule_expr(query->limitCount, context, false); + appendStringInfoChar(buf, ')'); appendStringInfoString(buf, " ROWS WITH TIES"); } else @@ -12122,7 +12132,7 @@ get_json_table_columns(TableFunc *tf, JsonTablePathScan *scan, /* * Set default_behavior to guide get_json_expr_options() on whether to - * to emit the ON ERROR / EMPTY clauses. + * emit the ON ERROR / EMPTY clauses. */ if (colexpr->op == JSON_EXISTS_OP) { diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index 5b35debc8ffdb..a96b1b9c0bc69 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -193,6 +193,8 @@ static double convert_timevalue_to_scalar(Datum value, Oid typid, bool *failure); static void examine_simple_variable(PlannerInfo *root, Var *var, VariableStatData *vardata); +static void examine_indexcol_variable(PlannerInfo *root, IndexOptInfo *index, + int indexcol, VariableStatData *vardata); static bool get_variable_range(PlannerInfo *root, VariableStatData *vardata, Oid sortop, Oid collation, Datum *min, Datum *max); @@ -214,6 +216,8 @@ static bool get_actual_variable_endpoint(Relation heapRel, MemoryContext outercontext, Datum *endpointDatum); static RelOptInfo *find_join_input_rel(PlannerInfo *root, Relids relids); +static double btcost_correlation(IndexOptInfo *index, + VariableStatData *vardata); /* @@ -2943,7 +2947,7 @@ scalargejoinsel(PG_FUNCTION_ARGS) * first join pair is found, which will affect the join's startup time. * * clause should be a clause already known to be mergejoinable. opfamily, - * strategy, and nulls_first specify the sort ordering being used. + * cmptype, and nulls_first specify the sort ordering being used. * * The outputs are: * *leftstart is set to the fraction of the left-hand variable expected @@ -2954,7 +2958,7 @@ scalargejoinsel(PG_FUNCTION_ARGS) */ void mergejoinscansel(PlannerInfo *root, Node *clause, - Oid opfamily, int strategy, bool nulls_first, + Oid opfamily, CompareType cmptype, bool nulls_first, Selectivity *leftstart, Selectivity *leftend, Selectivity *rightstart, Selectivity *rightend) { @@ -2962,6 +2966,7 @@ mergejoinscansel(PlannerInfo *root, Node *clause, *right; VariableStatData leftvar, rightvar; + Oid opmethod; int op_strategy; Oid op_lefttype; Oid op_righttype; @@ -2975,6 +2980,10 @@ mergejoinscansel(PlannerInfo *root, Node *clause, leop, revltop, revleop; + StrategyNumber ltstrat, + lestrat, + gtstrat, + gestrat; bool isgt; Datum leftmin, leftmax, @@ -3001,12 +3010,14 @@ mergejoinscansel(PlannerInfo *root, Node *clause, examine_variable(root, left, 0, &leftvar); examine_variable(root, right, 0, &rightvar); + opmethod = get_opfamily_method(opfamily); + /* Extract the operator's declared left/right datatypes */ get_op_opfamily_properties(opno, opfamily, false, &op_strategy, &op_lefttype, &op_righttype); - Assert(op_strategy == BTEqualStrategyNumber); + Assert(IndexAmTranslateStrategy(op_strategy, opmethod, opfamily, true) == COMPARE_EQ); /* * Look up the various operators we need. If we don't find them all, it @@ -3015,19 +3026,21 @@ mergejoinscansel(PlannerInfo *root, Node *clause, * Note: we expect that pg_statistic histograms will be sorted by the '<' * operator, regardless of which sort direction we are considering. */ - switch (strategy) + switch (cmptype) { - case BTLessStrategyNumber: + case COMPARE_LT: isgt = false; + ltstrat = IndexAmTranslateCompareType(COMPARE_LT, opmethod, opfamily, true); + lestrat = IndexAmTranslateCompareType(COMPARE_LE, opmethod, opfamily, true); if (op_lefttype == op_righttype) { /* easy case */ ltop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTLessStrategyNumber); + ltstrat); leop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTLessEqualStrategyNumber); + lestrat); lsortop = ltop; rsortop = ltop; lstatop = lsortop; @@ -3039,43 +3052,46 @@ mergejoinscansel(PlannerInfo *root, Node *clause, { ltop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTLessStrategyNumber); + ltstrat); leop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTLessEqualStrategyNumber); + lestrat); lsortop = get_opfamily_member(opfamily, op_lefttype, op_lefttype, - BTLessStrategyNumber); + ltstrat); rsortop = get_opfamily_member(opfamily, op_righttype, op_righttype, - BTLessStrategyNumber); + ltstrat); lstatop = lsortop; rstatop = rsortop; revltop = get_opfamily_member(opfamily, op_righttype, op_lefttype, - BTLessStrategyNumber); + ltstrat); revleop = get_opfamily_member(opfamily, op_righttype, op_lefttype, - BTLessEqualStrategyNumber); + lestrat); } break; - case BTGreaterStrategyNumber: + case COMPARE_GT: /* descending-order case */ isgt = true; + ltstrat = IndexAmTranslateCompareType(COMPARE_LT, opmethod, opfamily, true); + gtstrat = IndexAmTranslateCompareType(COMPARE_GT, opmethod, opfamily, true); + gestrat = IndexAmTranslateCompareType(COMPARE_GE, opmethod, opfamily, true); if (op_lefttype == op_righttype) { /* easy case */ ltop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTGreaterStrategyNumber); + gtstrat); leop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTGreaterEqualStrategyNumber); + gestrat); lsortop = ltop; rsortop = ltop; lstatop = get_opfamily_member(opfamily, op_lefttype, op_lefttype, - BTLessStrategyNumber); + ltstrat); rstatop = lstatop; revltop = ltop; revleop = leop; @@ -3084,28 +3100,28 @@ mergejoinscansel(PlannerInfo *root, Node *clause, { ltop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTGreaterStrategyNumber); + gtstrat); leop = get_opfamily_member(opfamily, op_lefttype, op_righttype, - BTGreaterEqualStrategyNumber); + gestrat); lsortop = get_opfamily_member(opfamily, op_lefttype, op_lefttype, - BTGreaterStrategyNumber); + gtstrat); rsortop = get_opfamily_member(opfamily, op_righttype, op_righttype, - BTGreaterStrategyNumber); + gtstrat); lstatop = get_opfamily_member(opfamily, op_lefttype, op_lefttype, - BTLessStrategyNumber); + ltstrat); rstatop = get_opfamily_member(opfamily, op_righttype, op_righttype, - BTLessStrategyNumber); + ltstrat); revltop = get_opfamily_member(opfamily, op_righttype, op_lefttype, - BTGreaterStrategyNumber); + gtstrat); revleop = get_opfamily_member(opfamily, op_righttype, op_lefttype, - BTGreaterEqualStrategyNumber); + gestrat); } break; default: @@ -3834,6 +3850,8 @@ estimate_multivariate_bucketsize(PlannerInfo *root, RelOptInfo *inner, if (bms_get_singleton_member(relids, &relid) && root->simple_rel_array[relid]->statlist != NIL) { + bool is_duplicate = false; + /* * This inner-side expression references only one relation. * Extended statistics on this clause can exist. @@ -3864,11 +3882,61 @@ estimate_multivariate_bucketsize(PlannerInfo *root, RelOptInfo *inner, */ continue; - varinfo = (GroupVarInfo *) palloc(sizeof(GroupVarInfo)); + /* + * We're going to add the new clause to the varinfos list. We + * might re-use add_unique_group_var(), but we don't do so for + * two reasons. + * + * 1) We must keep the origin_rinfos list ordered exactly the + * same way as varinfos. + * + * 2) add_unique_group_var() is designed for + * estimate_num_groups(), where a larger number of groups is + * worse. While estimating the number of hash buckets, we + * have the opposite: a lesser number of groups is worse. + * Therefore, we don't have to remove "known equal" vars: the + * removed var may valuably contribute to the multivariate + * statistics to grow the number of groups. + */ + + /* + * Clear nullingrels to correctly match hash keys. See + * add_unique_group_var()'s comment for details. + */ + expr = remove_nulling_relids(expr, root->outer_join_rels, NULL); + + /* + * Detect and exclude exact duplicates from the list of hash + * keys (like add_unique_group_var does). + */ + foreach(lc1, varinfos) + { + varinfo = (GroupVarInfo *) lfirst(lc1); + + if (!equal(expr, varinfo->var)) + continue; + + is_duplicate = true; + break; + } + + if (is_duplicate) + { + /* + * Skip exact duplicates. Adding them to the otherclauses + * list also doesn't make sense. + */ + continue; + } + + /* + * Initialize GroupVarInfo. We only use it to call + * estimate_multivariate_ndistinct(), which doesn't care about + * ndistinct and isdefault fields. Thus, skip these fields. + */ + varinfo = (GroupVarInfo *) palloc0(sizeof(GroupVarInfo)); varinfo->var = expr; varinfo->rel = root->simple_rel_array[relid]; - varinfo->ndistinct = 0.0; - varinfo->isdefault = false; varinfos = lappend(varinfos, varinfo); /* @@ -3878,8 +3946,10 @@ estimate_multivariate_bucketsize(PlannerInfo *root, RelOptInfo *inner, origin_rinfos = lappend(origin_rinfos, rinfo); } else + { /* This clause can't be estimated with extended statistics */ otherclauses = lappend(otherclauses, rinfo); + } clauses = foreach_delete_current(clauses, lc); } @@ -4130,14 +4200,18 @@ estimate_hashagg_tablesize(PlannerInfo *root, Path *path, */ /* - * Find applicable ndistinct statistics for the given list of VarInfos (which - * must all belong to the given rel), and update *ndistinct to the estimate of - * the MVNDistinctItem that best matches. If a match it found, *varinfos is - * updated to remove the list of matched varinfos. + * Find the best matching ndistinct extended statistics for the given list of + * GroupVarInfos. * - * Varinfos that aren't for simple Vars are ignored. + * Callers must ensure that the given GroupVarInfos all belong to 'rel' and + * the GroupVarInfos list does not contain any duplicate Vars or expressions. * - * Return true if we're able to find a match, false otherwise. + * When statistics are found that match > 1 of the given GroupVarInfo, the + * *ndistinct parameter is set according to the ndistinct estimate and a new + * list is built with the matching GroupVarInfos removed, which is output via + * the *varinfos parameter before returning true. When no matching stats are + * found, false is returned and the *varinfos and *ndistinct parameters are + * left untouched. */ static bool estimate_multivariate_ndistinct(PlannerInfo *root, RelOptInfo *rel, @@ -4218,15 +4292,22 @@ estimate_multivariate_ndistinct(PlannerInfo *root, RelOptInfo *rel, } } + /* + * The ndistinct extended statistics contain estimates for a minimum + * of pairs of columns which the statistics are defined on and + * certainly not single columns. Here we skip unless we managed to + * match to at least two columns. + */ if (nshared_vars + nshared_exprs < 2) continue; /* - * Does this statistics object match more columns than the currently - * best object? If so, use this one instead. + * Check if these statistics are a better match than the previous best + * match and if so, take note of the StatisticExtInfo. * - * XXX This should break ties using name of the object, or something - * like that, to make the outcome stable. + * The statslist is sorted by statOid, so the StatisticExtInfo we + * select as the best match is deterministic even when multiple sets + * of statistics match equally as well. */ if ((nshared_exprs > nmatches_exprs) || (((nshared_exprs == nmatches_exprs)) && (nshared_vars > nmatches_vars))) @@ -5943,6 +6024,92 @@ examine_simple_variable(PlannerInfo *root, Var *var, } } +/* + * examine_indexcol_variable + * Try to look up statistical data about an index column/expression. + * Fill in a VariableStatData struct to describe the column. + * + * Inputs: + * root: the planner info + * index: the index whose column we're interested in + * indexcol: 0-based index column number (subscripts index->indexkeys[]) + * + * Outputs: *vardata is filled as follows: + * var: the input expression (with any binary relabeling stripped, if + * it is or contains a variable; but otherwise the type is preserved) + * rel: RelOptInfo for table relation containing variable. + * statsTuple: the pg_statistic entry for the variable, if one exists; + * otherwise NULL. + * freefunc: pointer to a function to release statsTuple with. + * + * Caller is responsible for doing ReleaseVariableStats() before exiting. + */ +static void +examine_indexcol_variable(PlannerInfo *root, IndexOptInfo *index, + int indexcol, VariableStatData *vardata) +{ + AttrNumber colnum; + Oid relid; + + if (index->indexkeys[indexcol] != 0) + { + /* Simple variable --- look to stats for the underlying table */ + RangeTblEntry *rte = planner_rt_fetch(index->rel->relid, root); + + Assert(rte->rtekind == RTE_RELATION); + relid = rte->relid; + Assert(relid != InvalidOid); + colnum = index->indexkeys[indexcol]; + vardata->rel = index->rel; + + if (get_relation_stats_hook && + (*get_relation_stats_hook) (root, rte, colnum, vardata)) + { + /* + * The hook took control of acquiring a stats tuple. If it did + * supply a tuple, it'd better have supplied a freefunc. + */ + if (HeapTupleIsValid(vardata->statsTuple) && + !vardata->freefunc) + elog(ERROR, "no function provided to release variable stats with"); + } + else + { + vardata->statsTuple = SearchSysCache3(STATRELATTINH, + ObjectIdGetDatum(relid), + Int16GetDatum(colnum), + BoolGetDatum(rte->inh)); + vardata->freefunc = ReleaseSysCache; + } + } + else + { + /* Expression --- maybe there are stats for the index itself */ + relid = index->indexoid; + colnum = indexcol + 1; + + if (get_index_stats_hook && + (*get_index_stats_hook) (root, relid, colnum, vardata)) + { + /* + * The hook took control of acquiring a stats tuple. If it did + * supply a tuple, it'd better have supplied a freefunc. + */ + if (HeapTupleIsValid(vardata->statsTuple) && + !vardata->freefunc) + elog(ERROR, "no function provided to release variable stats with"); + } + else + { + vardata->statsTuple = SearchSysCache3(STATRELATTINH, + ObjectIdGetDatum(relid), + Int16GetDatum(colnum), + BoolGetDatum(false)); + vardata->freefunc = ReleaseSysCache; + } + } +} + /* * Check whether it is permitted to call func_oid passing some of the * pg_statistic data in vardata. We allow this either if the user has SELECT @@ -6327,9 +6494,10 @@ get_actual_variable_range(PlannerInfo *root, VariableStatData *vardata, { IndexOptInfo *index = (IndexOptInfo *) lfirst(lc); ScanDirection indexscandir; + StrategyNumber strategy; - /* Ignore non-btree indexes */ - if (index->relam != BTREE_AM_OID) + /* Ignore non-ordering indexes */ + if (index->sortopfamily == NULL) continue; /* @@ -6354,15 +6522,16 @@ get_actual_variable_range(PlannerInfo *root, VariableStatData *vardata, continue; /* test first 'cause it's cheapest */ if (!match_index_to_operand(vardata->var, 0, index)) continue; - switch (get_op_opfamily_strategy(sortop, index->sortopfamily[0])) + strategy = get_op_opfamily_strategy(sortop, index->sortopfamily[0]); + switch (IndexAmTranslateStrategy(strategy, index->relam, index->sortopfamily[0], true)) { - case BTLessStrategyNumber: + case COMPARE_LT: if (index->reverse_sort[0]) indexscandir = BackwardScanDirection; else indexscandir = ForwardScanDirection; break; - case BTGreaterStrategyNumber: + case COMPARE_GT: if (index->reverse_sort[0]) indexscandir = ForwardScanDirection; else @@ -6602,13 +6771,17 @@ get_actual_variable_endpoint(Relation heapRel, } /* - * We expect that btree will return data in IndexTuple not HeapTuple - * format. It's not lossy either. + * We expect that the index will return data in IndexTuple not + * HeapTuple format. */ if (!index_scan->xs_itup) elog(ERROR, "no data returned for index-only scan"); + + /* + * We do not yet support recheck here. + */ if (index_scan->xs_recheck) - elog(ERROR, "unexpected recheck indication from btree"); + break; /* OK to deconstruct the index tuple */ index_deform_tuple(index_scan->xs_itup, @@ -7001,6 +7174,53 @@ add_predicate_to_index_quals(IndexOptInfo *index, List *indexQuals) return list_concat(predExtraQuals, indexQuals); } +/* + * Estimate correlation of btree index's first column. + * + * If we can get an estimate of the first column's ordering correlation C + * from pg_statistic, estimate the index correlation as C for a single-column + * index, or C * 0.75 for multiple columns. The idea here is that multiple + * columns dilute the importance of the first column's ordering, but don't + * negate it entirely. + * + * We already filled in the stats tuple for *vardata when called. + */ +static double +btcost_correlation(IndexOptInfo *index, VariableStatData *vardata) +{ + Oid sortop; + AttStatsSlot sslot; + double indexCorrelation = 0; + + Assert(HeapTupleIsValid(vardata->statsTuple)); + + sortop = get_opfamily_member(index->opfamily[0], + index->opcintype[0], + index->opcintype[0], + BTLessStrategyNumber); + if (OidIsValid(sortop) && + get_attstatsslot(&sslot, vardata->statsTuple, + STATISTIC_KIND_CORRELATION, sortop, + ATTSTATSSLOT_NUMBERS)) + { + double varCorrelation; + + Assert(sslot.nnumbers == 1); + varCorrelation = sslot.numbers[0]; + + if (index->reverse_sort[0]) + varCorrelation = -varCorrelation; + + if (index->nkeycolumns > 1) + indexCorrelation = varCorrelation * 0.75; + else + indexCorrelation = varCorrelation; + + free_attstatsslot(&sslot); + } + + return indexCorrelation; +} void btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, @@ -7010,17 +7230,19 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, { IndexOptInfo *index = path->indexinfo; GenericCosts costs = {0}; - Oid relid; - AttrNumber colnum; VariableStatData vardata = {0}; double numIndexTuples; Cost descentCost; List *indexBoundQuals; + List *indexSkipQuals; int indexcol; bool eqQualHere; - bool found_saop; + bool found_row_compare; + bool found_array; bool found_is_null_op; + bool have_correlation = false; double num_sa_scans; + double correlation = 0.0; ListCell *lc; /* @@ -7031,19 +7253,24 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, * it's OK to count them in indexSelectivity, but they should not count * for estimating numIndexTuples. So we must examine the given indexquals * to find out which ones count as boundary quals. We rely on the - * knowledge that they are given in index column order. + * knowledge that they are given in index column order. Note that nbtree + * preprocessing can add skip arrays that act as leading '=' quals in the + * absence of ordinary input '=' quals, so in practice _most_ input quals + * are able to act as index bound quals (which we take into account here). * * For a RowCompareExpr, we consider only the first column, just as * rowcomparesel() does. * - * If there's a ScalarArrayOpExpr in the quals, we'll actually perform up - * to N index descents (not just one), but the ScalarArrayOpExpr's + * If there's a SAOP or skip array in the quals, we'll actually perform up + * to N index descents (not just one), but the underlying array key's * operator can be considered to act the same as it normally does. */ indexBoundQuals = NIL; + indexSkipQuals = NIL; indexcol = 0; eqQualHere = false; - found_saop = false; + found_row_compare = false; + found_array = false; found_is_null_op = false; num_sa_scans = 1; foreach(lc, path->indexclauses) @@ -7051,17 +7278,203 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, IndexClause *iclause = lfirst_node(IndexClause, lc); ListCell *lc2; - if (indexcol != iclause->indexcol) + if (indexcol < iclause->indexcol) { - /* Beginning of a new column's quals */ - if (!eqQualHere) - break; /* done if no '=' qual for indexcol */ + double num_sa_scans_prev_cols = num_sa_scans; + + /* + * Beginning of a new column's quals. + * + * Skip scans use skip arrays, which are ScalarArrayOp style + * arrays that generate their elements procedurally and on demand. + * Given a multi-column index on "(a, b)", and an SQL WHERE clause + * "WHERE b = 42", a skip scan will effectively use an indexqual + * "WHERE a = ANY('{every col a value}') AND b = 42". (Obviously, + * the array on "a" must also return "IS NULL" matches, since our + * WHERE clause used no strict operator on "a"). + * + * Here we consider how nbtree will backfill skip arrays for any + * index columns that lacked an '=' qual. This maintains our + * num_sa_scans estimate, and determines if this new column (the + * "iclause->indexcol" column, not the prior "indexcol" column) + * can have its RestrictInfos/quals added to indexBoundQuals. + * + * We'll need to handle columns that have inequality quals, where + * the skip array generates values from a range constrained by the + * quals (not every possible value). We've been maintaining + * indexSkipQuals to help with this; it will now contain all of + * the prior column's quals (that is, indexcol's quals) when they + * might be used for this. + */ + if (found_row_compare) + { + /* + * Skip arrays can't be added after a RowCompare input qual + * due to limitations in nbtree + */ + break; + } + if (eqQualHere) + { + /* + * Don't need to add a skip array for an indexcol that already + * has an '=' qual/equality constraint + */ + indexcol++; + indexSkipQuals = NIL; + } eqQualHere = false; - indexcol++; + + while (indexcol < iclause->indexcol) + { + double ndistinct; + bool isdefault = true; + + found_array = true; + + /* + * A skipped attribute's ndistinct forms the basis of our + * estimate of the total number of "array elements" used by + * its skip array at runtime. Look that up first. + */ + examine_indexcol_variable(root, index, indexcol, &vardata); + ndistinct = get_variable_numdistinct(&vardata, &isdefault); + + if (indexcol == 0) + { + /* + * Get an estimate of the leading column's correlation in + * passing (avoids rereading variable stats below) + */ + if (HeapTupleIsValid(vardata.statsTuple)) + correlation = btcost_correlation(index, &vardata); + have_correlation = true; + } + + ReleaseVariableStats(vardata); + + /* + * If ndistinct is a default estimate, conservatively assume + * that no skipping will happen at runtime + */ + if (isdefault) + { + num_sa_scans = num_sa_scans_prev_cols; + break; /* done building indexBoundQuals */ + } + + /* + * Apply indexcol's indexSkipQuals selectivity to ndistinct + */ + if (indexSkipQuals != NIL) + { + List *partialSkipQuals; + Selectivity ndistinctfrac; + + /* + * If the index is partial, AND the index predicate with + * the index-bound quals to produce a more accurate idea + * of the number of distinct values for prior indexcol + */ + partialSkipQuals = add_predicate_to_index_quals(index, + indexSkipQuals); + + ndistinctfrac = clauselist_selectivity(root, partialSkipQuals, + index->rel->relid, + JOIN_INNER, + NULL); + + /* + * If ndistinctfrac is selective (on its own), the scan is + * unlikely to benefit from repositioning itself using + * later quals. Do not allow iclause->indexcol's quals to + * be added to indexBoundQuals (it would increase descent + * costs, without lowering numIndexTuples costs by much). + */ + if (ndistinctfrac < DEFAULT_RANGE_INEQ_SEL) + { + num_sa_scans = num_sa_scans_prev_cols; + break; /* done building indexBoundQuals */ + } + + /* Adjust ndistinct downward */ + ndistinct = rint(ndistinct * ndistinctfrac); + ndistinct = Max(ndistinct, 1); + } + + /* + * When there's no inequality quals, account for the need to + * find an initial value by counting -inf/+inf as a value. + * + * We don't charge anything extra for possible next/prior key + * index probes, which are sometimes used to find the next + * valid skip array element (ahead of using the located + * element value to relocate the scan to the next position + * that might contain matching tuples). It seems hard to do + * better here. Use of the skip support infrastructure often + * avoids most next/prior key probes. But even when it can't, + * there's a decent chance that most individual next/prior key + * probes will locate a leaf page whose key space overlaps all + * of the scan's keys (even the lower-order keys) -- which + * also avoids the need for a separate, extra index descent. + * Note also that these probes are much cheaper than non-probe + * primitive index scans: they're reliably very selective. + */ + if (indexSkipQuals == NIL) + ndistinct += 1; + + /* + * Update num_sa_scans estimate by multiplying by ndistinct. + * + * We make the pessimistic assumption that there is no + * naturally occurring cross-column correlation. This is + * often wrong, but it seems best to err on the side of not + * expecting skipping to be helpful... + */ + num_sa_scans *= ndistinct; + + /* + * ...but back out of adding this latest group of 1 or more + * skip arrays when num_sa_scans exceeds the total number of + * index pages (revert to num_sa_scans from before indexcol). + * This causes a sharp discontinuity in cost (as a function of + * the indexcol's ndistinct), but that is representative of + * actual runtime costs. + * + * Note that skipping is helpful when each primitive index + * scan only manages to skip over 1 or 2 irrelevant leaf pages + * on average. Skip arrays bring savings in CPU costs due to + * the scan not needing to evaluate indexquals against every + * tuple, which can greatly exceed any savings in I/O costs. + * This test is a test of whether num_sa_scans implies that + * we're past the point where the ability to skip ceases to + * lower the scan's costs (even qual evaluation CPU costs). + */ + if (index->pages < num_sa_scans) + { + num_sa_scans = num_sa_scans_prev_cols; + break; /* done building indexBoundQuals */ + } + + indexcol++; + indexSkipQuals = NIL; + } + + /* + * Finished considering the need to add skip arrays to bridge an + * initial eqQualHere gap between the old and new index columns + * (or there was no initial eqQualHere gap in the first place). + * + * If an initial gap could not be bridged, then new column's quals + * (i.e. iclause->indexcol's quals) won't go into indexBoundQuals, + * and so won't affect our final numIndexTuples estimate. + */ if (indexcol != iclause->indexcol) - break; /* no quals at all for indexcol */ + break; /* done building indexBoundQuals */ } + Assert(indexcol == iclause->indexcol); + /* Examine each indexqual associated with this index clause */ foreach(lc2, iclause->indexquals) { @@ -7081,6 +7494,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, RowCompareExpr *rc = (RowCompareExpr *) clause; clause_op = linitial_oid(rc->opnos); + found_row_compare = true; } else if (IsA(clause, ScalarArrayOpExpr)) { @@ -7089,7 +7503,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, double alength = estimate_array_length(root, other_operand); clause_op = saop->opno; - found_saop = true; + found_array = true; /* estimate SA descents by indexBoundQuals only */ if (alength > 1) num_sa_scans *= alength; @@ -7101,7 +7515,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, if (nt->nulltesttype == IS_NULL) { found_is_null_op = true; - /* IS NULL is like = for selectivity purposes */ + /* IS NULL is like = for selectivity/skip scan purposes */ eqQualHere = true; } } @@ -7120,19 +7534,28 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, } indexBoundQuals = lappend(indexBoundQuals, rinfo); + + /* + * We apply inequality selectivities to estimate index descent + * costs with scans that use skip arrays. Save this indexcol's + * RestrictInfos if it looks like they'll be needed for that. + */ + if (!eqQualHere && !found_row_compare && + indexcol < index->nkeycolumns - 1) + indexSkipQuals = lappend(indexSkipQuals, rinfo); } } /* * If index is unique and we found an '=' clause for each column, we can * just assume numIndexTuples = 1 and skip the expensive - * clauselist_selectivity calculations. However, a ScalarArrayOp or - * NullTest invalidates that theory, even though it sets eqQualHere. + * clauselist_selectivity calculations. However, an array or NullTest + * always invalidates that theory (even when eqQualHere has been set). */ if (index->unique && indexcol == index->nkeycolumns - 1 && eqQualHere && - !found_saop && + !found_array && !found_is_null_op) numIndexTuples = 1.0; else @@ -7154,7 +7577,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, numIndexTuples = btreeSelectivity * index->rel->tuples; /* - * btree automatically combines individual ScalarArrayOpExpr primitive + * btree automatically combines individual array element primitive * index scans whenever the tuples covered by the next set of array * keys are close to tuples covered by the current set. That puts a * natural ceiling on the worst case number of descents -- there @@ -7172,16 +7595,18 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, * of leaf pages (we make it 1/3 the total number of pages instead) to * give the btree code credit for its ability to continue on the leaf * level with low selectivity scans. + * + * Note: num_sa_scans includes both ScalarArrayOp array elements and + * skip array elements whose qual affects our numIndexTuples estimate. */ num_sa_scans = Min(num_sa_scans, ceil(index->pages * 0.3333333)); num_sa_scans = Max(num_sa_scans, 1); /* - * As in genericcostestimate(), we have to adjust for any - * ScalarArrayOpExpr quals included in indexBoundQuals, and then round - * to integer. + * As in genericcostestimate(), we have to adjust for any array quals + * included in indexBoundQuals, and then round to integer. * - * It is tempting to make genericcostestimate behave as if SAOP + * It is tempting to make genericcostestimate behave as if array * clauses work in almost the same way as scalar operators during * btree scans, making the top-level scan look like a continuous scan * (as opposed to num_sa_scans-many primitive index scans). After @@ -7214,7 +7639,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, * comparisons to descend a btree of N leaf tuples. We charge one * cpu_operator_cost per comparison. * - * If there are ScalarArrayOpExprs, charge this once per estimated SA + * If there are SAOP or skip array keys, charge this once per estimated * index descent. The ones after the first one are not startup cost so * far as the overall plan goes, so just add them to "total" cost. */ @@ -7234,110 +7659,25 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, * cost is somewhat arbitrarily set at 50x cpu_operator_cost per page * touched. The number of such pages is btree tree height plus one (ie, * we charge for the leaf page too). As above, charge once per estimated - * SA index descent. + * SAOP/skip array descent. */ descentCost = (index->tree_height + 1) * DEFAULT_PAGE_CPU_MULTIPLIER * cpu_operator_cost; costs.indexStartupCost += descentCost; costs.indexTotalCost += costs.num_sa_scans * descentCost; - /* - * If we can get an estimate of the first column's ordering correlation C - * from pg_statistic, estimate the index correlation as C for a - * single-column index, or C * 0.75 for multiple columns. (The idea here - * is that multiple columns dilute the importance of the first column's - * ordering, but don't negate it entirely. Before 8.0 we divided the - * correlation by the number of columns, but that seems too strong.) - */ - if (index->indexkeys[0] != 0) + if (!have_correlation) { - /* Simple variable --- look to stats for the underlying table */ - RangeTblEntry *rte = planner_rt_fetch(index->rel->relid, root); - - Assert(rte->rtekind == RTE_RELATION); - relid = rte->relid; - Assert(relid != InvalidOid); - colnum = index->indexkeys[0]; - - if (get_relation_stats_hook && - (*get_relation_stats_hook) (root, rte, colnum, &vardata)) - { - /* - * The hook took control of acquiring a stats tuple. If it did - * supply a tuple, it'd better have supplied a freefunc. - */ - if (HeapTupleIsValid(vardata.statsTuple) && - !vardata.freefunc) - elog(ERROR, "no function provided to release variable stats with"); - } - else - { - vardata.statsTuple = SearchSysCache3(STATRELATTINH, - ObjectIdGetDatum(relid), - Int16GetDatum(colnum), - BoolGetDatum(rte->inh)); - vardata.freefunc = ReleaseSysCache; - } + examine_indexcol_variable(root, index, 0, &vardata); + if (HeapTupleIsValid(vardata.statsTuple)) + costs.indexCorrelation = btcost_correlation(index, &vardata); + ReleaseVariableStats(vardata); } else { - /* Expression --- maybe there are stats for the index itself */ - relid = index->indexoid; - colnum = 1; - - if (get_index_stats_hook && - (*get_index_stats_hook) (root, relid, colnum, &vardata)) - { - /* - * The hook took control of acquiring a stats tuple. If it did - * supply a tuple, it'd better have supplied a freefunc. - */ - if (HeapTupleIsValid(vardata.statsTuple) && - !vardata.freefunc) - elog(ERROR, "no function provided to release variable stats with"); - } - else - { - vardata.statsTuple = SearchSysCache3(STATRELATTINH, - ObjectIdGetDatum(relid), - Int16GetDatum(colnum), - BoolGetDatum(false)); - vardata.freefunc = ReleaseSysCache; - } - } - - if (HeapTupleIsValid(vardata.statsTuple)) - { - Oid sortop; - AttStatsSlot sslot; - - sortop = get_opfamily_member(index->opfamily[0], - index->opcintype[0], - index->opcintype[0], - BTLessStrategyNumber); - if (OidIsValid(sortop) && - get_attstatsslot(&sslot, vardata.statsTuple, - STATISTIC_KIND_CORRELATION, sortop, - ATTSTATSSLOT_NUMBERS)) - { - double varCorrelation; - - Assert(sslot.nnumbers == 1); - varCorrelation = sslot.numbers[0]; - - if (index->reverse_sort[0]) - varCorrelation = -varCorrelation; - - if (index->nkeycolumns > 1) - costs.indexCorrelation = varCorrelation * 0.75; - else - costs.indexCorrelation = varCorrelation; - - free_attstatsslot(&sslot); - } + /* btcost_correlation already called earlier on */ + costs.indexCorrelation = correlation; } - ReleaseVariableStats(vardata); - *indexStartupCost = costs.indexStartupCost; *indexTotalCost = costs.indexTotalCost; *indexSelectivity = costs.indexSelectivity; diff --git a/src/backend/utils/adt/skipsupport.c b/src/backend/utils/adt/skipsupport.c new file mode 100644 index 0000000000000..2bd35d2d27221 --- /dev/null +++ b/src/backend/utils/adt/skipsupport.c @@ -0,0 +1,61 @@ +/*------------------------------------------------------------------------- + * + * skipsupport.c + * Support routines for B-Tree skip scan. + * + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/backend/utils/adt/skipsupport.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres.h" + +#include "access/nbtree.h" +#include "utils/lsyscache.h" +#include "utils/skipsupport.h" + +/* + * Fill in SkipSupport given an operator class (opfamily + opcintype). + * + * On success, returns skip support struct, allocating in caller's memory + * context. Otherwise returns NULL, indicating that operator class has no + * skip support function. + */ +SkipSupport +PrepareSkipSupportFromOpclass(Oid opfamily, Oid opcintype, bool reverse) +{ + Oid skipSupportFunction; + SkipSupport sksup; + + /* Look for a skip support function */ + skipSupportFunction = get_opfamily_proc(opfamily, opcintype, opcintype, + BTSKIPSUPPORT_PROC); + if (!OidIsValid(skipSupportFunction)) + return NULL; + + sksup = palloc(sizeof(SkipSupportData)); + OidFunctionCall1(skipSupportFunction, PointerGetDatum(sksup)); + + if (reverse) + { + /* + * DESC/reverse case: swap low_elem with high_elem, and swap decrement + * with increment + */ + Datum low_elem = sksup->low_elem; + SkipSupportIncDec decrement = sksup->decrement; + + sksup->low_elem = sksup->high_elem; + sksup->decrement = sksup->increment; + + sksup->high_elem = low_elem; + sksup->increment = decrement; + } + + return sksup; +} diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 9682f9dbdca13..347089b762646 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -37,6 +37,7 @@ #include "utils/datetime.h" #include "utils/float.h" #include "utils/numeric.h" +#include "utils/skipsupport.h" #include "utils/sortsupport.h" /* @@ -2304,6 +2305,53 @@ timestamp_sortsupport(PG_FUNCTION_ARGS) PG_RETURN_VOID(); } +/* note: this is used for timestamptz also */ +static Datum +timestamp_decrement(Relation rel, Datum existing, bool *underflow) +{ + Timestamp texisting = DatumGetTimestamp(existing); + + if (texisting == PG_INT64_MIN) + { + /* return value is undefined */ + *underflow = true; + return (Datum) 0; + } + + *underflow = false; + return TimestampGetDatum(texisting - 1); +} + +/* note: this is used for timestamptz also */ +static Datum +timestamp_increment(Relation rel, Datum existing, bool *overflow) +{ + Timestamp texisting = DatumGetTimestamp(existing); + + if (texisting == PG_INT64_MAX) + { + /* return value is undefined */ + *overflow = true; + return (Datum) 0; + } + + *overflow = false; + return TimestampGetDatum(texisting + 1); +} + +Datum +timestamp_skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + + sksup->decrement = timestamp_decrement; + sksup->increment = timestamp_increment; + sksup->low_elem = TimestampGetDatum(PG_INT64_MIN); + sksup->high_elem = TimestampGetDatum(PG_INT64_MAX); + + PG_RETURN_VOID(); +} + Datum timestamp_hash(PG_FUNCTION_ARGS) { diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c index b1bad7bd60cf5..717de8073d58d 100644 --- a/src/backend/utils/adt/tsquery.c +++ b/src/backend/utils/adt/tsquery.c @@ -1176,10 +1176,11 @@ tsqueryout(PG_FUNCTION_ARGS) * * uint8 type, QI_VAL * uint8 weight - * operand text in client encoding, null-terminated * uint8 prefix + * operand text in client encoding, null-terminated * * For each operator: + * * uint8 type, QI_OPR * uint8 operator, one of OP_AND, OP_PHRASE OP_OR, OP_NOT. * uint16 distance (only for OP_PHRASE) diff --git a/src/backend/utils/adt/tsvector.c b/src/backend/utils/adt/tsvector.c index 650be842f28fe..1fa2e3729bfab 100644 --- a/src/backend/utils/adt/tsvector.c +++ b/src/backend/utils/adt/tsvector.c @@ -25,7 +25,7 @@ typedef struct { - WordEntry entry; /* must be first! */ + WordEntry entry; /* must be first, see compareentry */ WordEntryPos *pos; int poslen; /* number of elements in pos */ } WordEntryIN; @@ -79,16 +79,19 @@ uniquePos(WordEntryPos *a, int l) return res + 1 - a; } -/* Compare two WordEntryIN values for qsort */ +/* + * Compare two WordEntry structs for qsort_arg. This can also be used on + * WordEntryIN structs, since those have WordEntry as their first field. + */ static int compareentry(const void *va, const void *vb, void *arg) { - const WordEntryIN *a = (const WordEntryIN *) va; - const WordEntryIN *b = (const WordEntryIN *) vb; + const WordEntry *a = (const WordEntry *) va; + const WordEntry *b = (const WordEntry *) vb; char *BufferStr = (char *) arg; - return tsCompareString(&BufferStr[a->entry.pos], a->entry.len, - &BufferStr[b->entry.pos], b->entry.len, + return tsCompareString(&BufferStr[a->pos], a->len, + &BufferStr[b->pos], b->len, false); } @@ -167,12 +170,6 @@ uniqueentry(WordEntryIN *a, int l, char *buf, int *outbuflen) return res + 1 - a; } -static int -WordEntryCMP(WordEntry *a, WordEntry *b, char *buf) -{ - return compareentry(a, b, buf); -} - Datum tsvectorin(PG_FUNCTION_ARGS) @@ -511,7 +508,7 @@ tsvectorrecv(PG_FUNCTION_ARGS) datalen += lex_len; - if (i > 0 && WordEntryCMP(&vec->entries[i], + if (i > 0 && compareentry(&vec->entries[i], &vec->entries[i - 1], STRPTR(vec)) <= 0) needSort = true; diff --git a/src/backend/utils/adt/uuid.c b/src/backend/utils/adt/uuid.c index be0f0f9f1ce49..bce7309c1833a 100644 --- a/src/backend/utils/adt/uuid.c +++ b/src/backend/utils/adt/uuid.c @@ -13,6 +13,7 @@ #include "postgres.h" +#include #include /* for clock_gettime() */ #include "common/hashfn.h" @@ -21,6 +22,7 @@ #include "port/pg_bswap.h" #include "utils/fmgrprotos.h" #include "utils/guc.h" +#include "utils/skipsupport.h" #include "utils/sortsupport.h" #include "utils/timestamp.h" #include "utils/uuid.h" @@ -418,6 +420,74 @@ uuid_abbrev_convert(Datum original, SortSupport ssup) return res; } +static Datum +uuid_decrement(Relation rel, Datum existing, bool *underflow) +{ + pg_uuid_t *uuid; + + uuid = (pg_uuid_t *) palloc(UUID_LEN); + memcpy(uuid, DatumGetUUIDP(existing), UUID_LEN); + for (int i = UUID_LEN - 1; i >= 0; i--) + { + if (uuid->data[i] > 0) + { + uuid->data[i]--; + *underflow = false; + return UUIDPGetDatum(uuid); + } + uuid->data[i] = UCHAR_MAX; + } + + pfree(uuid); /* cannot leak memory */ + + /* return value is undefined */ + *underflow = true; + return (Datum) 0; +} + +static Datum +uuid_increment(Relation rel, Datum existing, bool *overflow) +{ + pg_uuid_t *uuid; + + uuid = (pg_uuid_t *) palloc(UUID_LEN); + memcpy(uuid, DatumGetUUIDP(existing), UUID_LEN); + for (int i = UUID_LEN - 1; i >= 0; i--) + { + if (uuid->data[i] < UCHAR_MAX) + { + uuid->data[i]++; + *overflow = false; + return UUIDPGetDatum(uuid); + } + uuid->data[i] = 0; + } + + pfree(uuid); /* cannot leak memory */ + + /* return value is undefined */ + *overflow = true; + return (Datum) 0; +} + +Datum +uuid_skipsupport(PG_FUNCTION_ARGS) +{ + SkipSupport sksup = (SkipSupport) PG_GETARG_POINTER(0); + pg_uuid_t *uuid_min = palloc(UUID_LEN); + pg_uuid_t *uuid_max = palloc(UUID_LEN); + + memset(uuid_min->data, 0x00, UUID_LEN); + memset(uuid_max->data, 0xFF, UUID_LEN); + + sksup->decrement = uuid_decrement; + sksup->increment = uuid_increment; + sksup->low_elem = UUIDPGetDatum(uuid_min); + sksup->high_elem = UUIDPGetDatum(uuid_max); + + PG_RETURN_VOID(); +} + /* hash index support */ Datum uuid_hash(PG_FUNCTION_ARGS) diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index db8d0d6a7e872..a4150bff2eaea 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -754,6 +754,7 @@ xmltotext_with_options(xmltype *data, XmlOptionType xmloption_arg, bool indent) * content nodes, and then iterate over the nodes. */ xmlNodePtr root; + xmlNodePtr oldroot; xmlNodePtr newline; root = xmlNewNode(NULL, (const xmlChar *) "content-root"); @@ -761,8 +762,14 @@ xmltotext_with_options(xmltype *data, XmlOptionType xmloption_arg, bool indent) xml_ereport(xmlerrcxt, ERROR, ERRCODE_OUT_OF_MEMORY, "could not allocate xml node"); - /* This attaches root to doc, so we need not free it separately. */ - xmlDocSetRootElement(doc, root); + /* + * This attaches root to doc, so we need not free it separately... + * but instead, we have to free the old root if there was one. + */ + oldroot = xmlDocSetRootElement(doc, root); + if (oldroot != NULL) + xmlFreeNode(oldroot); + xmlAddChildList(root, content_nodes); /* @@ -1850,6 +1857,7 @@ xml_parse(text *data, XmlOptionType xmloption_arg, else { xmlNodePtr root; + xmlNodePtr oldroot PG_USED_FOR_ASSERTS_ONLY; /* set up document with empty root node to be the context node */ doc = xmlNewDoc(version); @@ -1868,8 +1876,13 @@ xml_parse(text *data, XmlOptionType xmloption_arg, if (root == NULL || xmlerrcxt->err_occurred) xml_ereport(xmlerrcxt, ERROR, ERRCODE_OUT_OF_MEMORY, "could not allocate xml node"); - /* This attaches root to doc, so we need not free it separately. */ - xmlDocSetRootElement(doc, root); + + /* + * This attaches root to doc, so we need not free it separately; + * and there can't yet be any old root to free. + */ + oldroot = xmlDocSetRootElement(doc, root); + Assert(oldroot == NULL); /* allow empty content */ if (*(utf8string + count)) diff --git a/src/backend/utils/cache/Makefile b/src/backend/utils/cache/Makefile index 5105018cb79c8..77b3e1a037b9b 100644 --- a/src/backend/utils/cache/Makefile +++ b/src/backend/utils/cache/Makefile @@ -16,6 +16,7 @@ OBJS = \ attoptcache.o \ catcache.o \ evtcache.o \ + funccache.o \ inval.o \ lsyscache.o \ partcache.o \ diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 9ad7681f15552..657648996c235 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -1054,12 +1054,41 @@ RehashCatCacheLists(CatCache *cp) cp->cc_lbucket = newbucket; } +/* + * ConditionalCatalogCacheInitializeCache + * + * Call CatalogCacheInitializeCache() if not yet done. + */ +pg_attribute_always_inline +static void +ConditionalCatalogCacheInitializeCache(CatCache *cache) +{ +#ifdef USE_ASSERT_CHECKING + /* + * TypeCacheRelCallback() runs outside transactions and relies on TYPEOID + * for hashing. This isn't ideal. Since lookup_type_cache() both + * registers the callback and searches TYPEOID, reaching trouble likely + * requires OOM at an unlucky moment. + * + * InvalidateAttoptCacheCallback() runs outside transactions and likewise + * relies on ATTNUM. InitPostgres() initializes ATTNUM, so it's reliable. + */ + if (!(cache->id == TYPEOID || cache->id == ATTNUM) || + IsTransactionState()) + AssertCouldGetRelation(); + else + Assert(cache->cc_tupdesc != NULL); +#endif + + if (unlikely(cache->cc_tupdesc == NULL)) + CatalogCacheInitializeCache(cache); +} + /* * CatalogCacheInitializeCache * * This function does final initialization of a catcache: obtain the tuple - * descriptor and set up the hash and equality function links. We assume - * that the relcache entry can be opened at this point! + * descriptor and set up the hash and equality function links. */ #ifdef CACHEDEBUG #define CatalogCacheInitializeCache_DEBUG1 \ @@ -1194,8 +1223,7 @@ CatalogCacheInitializeCache(CatCache *cache) void InitCatCachePhase2(CatCache *cache, bool touch_index) { - if (cache->cc_tupdesc == NULL) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); if (touch_index && cache->id != AMOID && @@ -1374,16 +1402,12 @@ SearchCatCacheInternal(CatCache *cache, dlist_head *bucket; CatCTup *ct; - /* Make sure we're in an xact, even if this ends up being a cache hit */ - Assert(IsTransactionState()); - Assert(cache->cc_nkeys == nkeys); /* * one-time startup overhead for each cache */ - if (unlikely(cache->cc_tupdesc == NULL)) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); #ifdef CATCACHE_STATS cache->cc_searches++; @@ -1668,8 +1692,7 @@ GetCatCacheHashValue(CatCache *cache, /* * one-time startup overhead for each cache */ - if (cache->cc_tupdesc == NULL) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); /* * calculate the hash value @@ -1720,8 +1743,7 @@ SearchCatCacheList(CatCache *cache, /* * one-time startup overhead for each cache */ - if (unlikely(cache->cc_tupdesc == NULL)) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); Assert(nkeys > 0 && nkeys < cache->cc_nkeys); @@ -1904,7 +1926,7 @@ SearchCatCacheList(CatCache *cache, /* Injection point to help testing the recursive invalidation case */ if (first_iter) { - INJECTION_POINT("catcache-list-miss-systable-scan-started"); + INJECTION_POINT("catcache-list-miss-systable-scan-started", NULL); first_iter = false; } @@ -2390,8 +2412,7 @@ PrepareToInvalidateCacheTuple(Relation relation, continue; /* Just in case cache hasn't finished initialization yet... */ - if (ccp->cc_tupdesc == NULL) - CatalogCacheInitializeCache(ccp); + ConditionalCatalogCacheInitializeCache(ccp); hashvalue = CatalogCacheComputeTupleHashValue(ccp, ccp->cc_nkeys, tuple); dbid = ccp->cc_relisshared ? (Oid) 0 : MyDatabaseId; diff --git a/src/backend/utils/cache/funccache.c b/src/backend/utils/cache/funccache.c new file mode 100644 index 0000000000000..150c502a6121b --- /dev/null +++ b/src/backend/utils/cache/funccache.c @@ -0,0 +1,612 @@ +/*------------------------------------------------------------------------- + * + * funccache.c + * Function cache management. + * + * funccache.c manages a cache of function execution data. The cache + * is used by SQL-language and PL/pgSQL functions, and could be used by + * other function languages. Each cache entry is specific to the execution + * of a particular function (identified by OID) with specific input data + * types; so a polymorphic function could have many associated cache entries. + * Trigger functions similarly have a cache entry per trigger. These rules + * allow the cached data to be specific to the particular data types the + * function call will be dealing with. + * + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/backend/utils/cache/funccache.c + * + *------------------------------------------------------------------------- + */ +#include "postgres.h" + +#include "catalog/pg_proc.h" +#include "commands/event_trigger.h" +#include "commands/trigger.h" +#include "common/hashfn.h" +#include "funcapi.h" +#include "utils/funccache.h" +#include "utils/hsearch.h" +#include "utils/syscache.h" + + +/* + * Hash table for cached functions + */ +static HTAB *cfunc_hashtable = NULL; + +typedef struct CachedFunctionHashEntry +{ + CachedFunctionHashKey key; /* hash key, must be first */ + CachedFunction *function; /* points to data of language-specific size */ +} CachedFunctionHashEntry; + +#define FUNCS_PER_USER 128 /* initial table size */ + +static uint32 cfunc_hash(const void *key, Size keysize); +static int cfunc_match(const void *key1, const void *key2, Size keysize); + + +/* + * Initialize the hash table on first use. + * + * The hash table will be in TopMemoryContext regardless of caller's context. + */ +static void +cfunc_hashtable_init(void) +{ + HASHCTL ctl; + + /* don't allow double-initialization */ + Assert(cfunc_hashtable == NULL); + + ctl.keysize = sizeof(CachedFunctionHashKey); + ctl.entrysize = sizeof(CachedFunctionHashEntry); + ctl.hash = cfunc_hash; + ctl.match = cfunc_match; + cfunc_hashtable = hash_create("Cached function hash", + FUNCS_PER_USER, + &ctl, + HASH_ELEM | HASH_FUNCTION | HASH_COMPARE); +} + +/* + * cfunc_hash: hash function for cfunc hash table + * + * We need special hash and match functions to deal with the optional + * presence of a TupleDesc in the hash keys. As long as we have to do + * that, we might as well also be smart about not comparing unused + * elements of the argtypes arrays. + */ +static uint32 +cfunc_hash(const void *key, Size keysize) +{ + const CachedFunctionHashKey *k = (const CachedFunctionHashKey *) key; + uint32 h; + + Assert(keysize == sizeof(CachedFunctionHashKey)); + /* Hash all the fixed fields except callResultType */ + h = DatumGetUInt32(hash_any((const unsigned char *) k, + offsetof(CachedFunctionHashKey, callResultType))); + /* Incorporate input argument types */ + if (k->nargs > 0) + h = hash_combine(h, + DatumGetUInt32(hash_any((const unsigned char *) k->argtypes, + k->nargs * sizeof(Oid)))); + /* Incorporate callResultType if present */ + if (k->callResultType) + h = hash_combine(h, hashRowType(k->callResultType)); + return h; +} + +/* + * cfunc_match: match function to use with cfunc_hash + */ +static int +cfunc_match(const void *key1, const void *key2, Size keysize) +{ + const CachedFunctionHashKey *k1 = (const CachedFunctionHashKey *) key1; + const CachedFunctionHashKey *k2 = (const CachedFunctionHashKey *) key2; + + Assert(keysize == sizeof(CachedFunctionHashKey)); + /* Compare all the fixed fields except callResultType */ + if (memcmp(k1, k2, offsetof(CachedFunctionHashKey, callResultType)) != 0) + return 1; /* not equal */ + /* Compare input argument types (we just verified that nargs matches) */ + if (k1->nargs > 0 && + memcmp(k1->argtypes, k2->argtypes, k1->nargs * sizeof(Oid)) != 0) + return 1; /* not equal */ + /* Compare callResultType */ + if (k1->callResultType) + { + if (k2->callResultType) + { + if (!equalRowTypes(k1->callResultType, k2->callResultType)) + return 1; /* not equal */ + } + else + return 1; /* not equal */ + } + else + { + if (k2->callResultType) + return 1; /* not equal */ + } + return 0; /* equal */ +} + +/* + * Look up the CachedFunction for the given hash key. + * Returns NULL if not present. + */ +static CachedFunction * +cfunc_hashtable_lookup(CachedFunctionHashKey *func_key) +{ + CachedFunctionHashEntry *hentry; + + if (cfunc_hashtable == NULL) + return NULL; + + hentry = (CachedFunctionHashEntry *) hash_search(cfunc_hashtable, + func_key, + HASH_FIND, + NULL); + if (hentry) + return hentry->function; + else + return NULL; +} + +/* + * Insert a hash table entry. + */ +static void +cfunc_hashtable_insert(CachedFunction *function, + CachedFunctionHashKey *func_key) +{ + CachedFunctionHashEntry *hentry; + bool found; + + if (cfunc_hashtable == NULL) + cfunc_hashtable_init(); + + hentry = (CachedFunctionHashEntry *) hash_search(cfunc_hashtable, + func_key, + HASH_ENTER, + &found); + if (found) + elog(WARNING, "trying to insert a function that already exists"); + + /* + * If there's a callResultType, copy it into TopMemoryContext. If we're + * unlucky enough for that to fail, leave the entry with null + * callResultType, which will probably never match anything. + */ + if (func_key->callResultType) + { + MemoryContext oldcontext = MemoryContextSwitchTo(TopMemoryContext); + + hentry->key.callResultType = NULL; + hentry->key.callResultType = CreateTupleDescCopy(func_key->callResultType); + MemoryContextSwitchTo(oldcontext); + } + + hentry->function = function; + + /* Set back-link from function to hashtable key */ + function->fn_hashkey = &hentry->key; +} + +/* + * Delete a hash table entry. + */ +static void +cfunc_hashtable_delete(CachedFunction *function) +{ + CachedFunctionHashEntry *hentry; + TupleDesc tupdesc; + + /* do nothing if not in table */ + if (function->fn_hashkey == NULL) + return; + + /* + * We need to free the callResultType if present, which is slightly tricky + * because it has to be valid during the hashtable search. Fortunately, + * because we have the hashkey back-link, we can grab that pointer before + * deleting the hashtable entry. + */ + tupdesc = function->fn_hashkey->callResultType; + + hentry = (CachedFunctionHashEntry *) hash_search(cfunc_hashtable, + function->fn_hashkey, + HASH_REMOVE, + NULL); + if (hentry == NULL) + elog(WARNING, "trying to delete function that does not exist"); + + /* Remove back link, which no longer points to allocated storage */ + function->fn_hashkey = NULL; + + /* Release the callResultType if present */ + if (tupdesc) + FreeTupleDesc(tupdesc); +} + +/* + * Compute the hashkey for a given function invocation + * + * The hashkey is returned into the caller-provided storage at *hashkey. + * Note however that if a callResultType is incorporated, we've not done + * anything about copying that. + */ +static void +compute_function_hashkey(FunctionCallInfo fcinfo, + Form_pg_proc procStruct, + CachedFunctionHashKey *hashkey, + Size cacheEntrySize, + bool includeResultType, + bool forValidator) +{ + /* Make sure pad bytes within fixed part of the struct are zero */ + memset(hashkey, 0, offsetof(CachedFunctionHashKey, argtypes)); + + /* get function OID */ + hashkey->funcOid = fcinfo->flinfo->fn_oid; + + /* get call context */ + hashkey->isTrigger = CALLED_AS_TRIGGER(fcinfo); + hashkey->isEventTrigger = CALLED_AS_EVENT_TRIGGER(fcinfo); + + /* record cacheEntrySize so multiple languages can share hash table */ + hashkey->cacheEntrySize = cacheEntrySize; + + /* + * If DML trigger, include trigger's OID in the hash, so that each trigger + * usage gets a different hash entry, allowing for e.g. different relation + * rowtypes or transition table names. In validation mode we do not know + * what relation or transition table names are intended to be used, so we + * leave trigOid zero; the hash entry built in this case will never be + * used for any actual calls. + * + * We don't currently need to distinguish different event trigger usages + * in the same way, since the special parameter variables don't vary in + * type in that case. + */ + if (hashkey->isTrigger && !forValidator) + { + TriggerData *trigdata = (TriggerData *) fcinfo->context; + + hashkey->trigOid = trigdata->tg_trigger->tgoid; + } + + /* get input collation, if known */ + hashkey->inputCollation = fcinfo->fncollation; + + /* + * We include only input arguments in the hash key, since output argument + * types can be deduced from those, and it would require extra cycles to + * include the output arguments. But we have to resolve any polymorphic + * argument types to the real types for the call. + */ + if (procStruct->pronargs > 0) + { + hashkey->nargs = procStruct->pronargs; + memcpy(hashkey->argtypes, procStruct->proargtypes.values, + procStruct->pronargs * sizeof(Oid)); + cfunc_resolve_polymorphic_argtypes(procStruct->pronargs, + hashkey->argtypes, + NULL, /* all args are inputs */ + fcinfo->flinfo->fn_expr, + forValidator, + NameStr(procStruct->proname)); + } + + /* + * While regular OUT arguments are sufficiently represented by the + * resolved input arguments, a function returning composite has additional + * variability: ALTER TABLE/ALTER TYPE could affect what it returns. Also, + * a function returning RECORD may depend on a column definition list to + * determine its output rowtype. If the caller needs the exact result + * type to be part of the hash lookup key, we must run + * get_call_result_type() to find that out. + */ + if (includeResultType) + { + Oid resultTypeId; + TupleDesc tupdesc; + + switch (get_call_result_type(fcinfo, &resultTypeId, &tupdesc)) + { + case TYPEFUNC_COMPOSITE: + case TYPEFUNC_COMPOSITE_DOMAIN: + hashkey->callResultType = tupdesc; + break; + default: + /* scalar result, or indeterminate rowtype */ + break; + } + } +} + +/* + * This is the same as the standard resolve_polymorphic_argtypes() function, + * except that: + * 1. We go ahead and report the error if we can't resolve the types. + * 2. We treat RECORD-type input arguments (not output arguments) as if + * they were polymorphic, replacing their types with the actual input + * types if we can determine those. This allows us to create a separate + * function cache entry for each named composite type passed to such an + * argument. + * 3. In validation mode, we have no inputs to look at, so assume that + * polymorphic arguments are integer, integer-array or integer-range. + */ +void +cfunc_resolve_polymorphic_argtypes(int numargs, + Oid *argtypes, char *argmodes, + Node *call_expr, bool forValidator, + const char *proname) +{ + int i; + + if (!forValidator) + { + int inargno; + + /* normal case, pass to standard routine */ + if (!resolve_polymorphic_argtypes(numargs, argtypes, argmodes, + call_expr)) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("could not determine actual argument " + "type for polymorphic function \"%s\"", + proname))); + /* also, treat RECORD inputs (but not outputs) as polymorphic */ + inargno = 0; + for (i = 0; i < numargs; i++) + { + char argmode = argmodes ? argmodes[i] : PROARGMODE_IN; + + if (argmode == PROARGMODE_OUT || argmode == PROARGMODE_TABLE) + continue; + if (argtypes[i] == RECORDOID || argtypes[i] == RECORDARRAYOID) + { + Oid resolvedtype = get_call_expr_argtype(call_expr, + inargno); + + if (OidIsValid(resolvedtype)) + argtypes[i] = resolvedtype; + } + inargno++; + } + } + else + { + /* special validation case (no need to do anything for RECORD) */ + for (i = 0; i < numargs; i++) + { + switch (argtypes[i]) + { + case ANYELEMENTOID: + case ANYNONARRAYOID: + case ANYENUMOID: /* XXX dubious */ + case ANYCOMPATIBLEOID: + case ANYCOMPATIBLENONARRAYOID: + argtypes[i] = INT4OID; + break; + case ANYARRAYOID: + case ANYCOMPATIBLEARRAYOID: + argtypes[i] = INT4ARRAYOID; + break; + case ANYRANGEOID: + case ANYCOMPATIBLERANGEOID: + argtypes[i] = INT4RANGEOID; + break; + case ANYMULTIRANGEOID: + argtypes[i] = INT4MULTIRANGEOID; + break; + default: + break; + } + } + } +} + +/* + * delete_function - clean up as much as possible of a stale function cache + * + * We can't release the CachedFunction struct itself, because of the + * possibility that there are fn_extra pointers to it. We can release + * the subsidiary storage, but only if there are no active evaluations + * in progress. Otherwise we'll just leak that storage. Since the + * case would only occur if a pg_proc update is detected during a nested + * recursive call on the function, a leak seems acceptable. + * + * Note that this can be called more than once if there are multiple fn_extra + * pointers to the same function cache. Hence be careful not to do things + * twice. + */ +static void +delete_function(CachedFunction *func) +{ + /* remove function from hash table (might be done already) */ + cfunc_hashtable_delete(func); + + /* release the function's storage if safe and not done already */ + if (func->use_count == 0 && + func->dcallback != NULL) + { + func->dcallback(func); + func->dcallback = NULL; + } +} + +/* + * Compile a cached function, if no existing cache entry is suitable. + * + * fcinfo is the current call information. + * + * function should be NULL or the result of a previous call of + * cached_function_compile() for the same fcinfo. The caller will + * typically save the result in fcinfo->flinfo->fn_extra, or in a + * field of a struct pointed to by fn_extra, to re-use in later + * calls within the same query. + * + * ccallback and dcallback are function-language-specific callbacks to + * compile and delete a cached function entry. dcallback can be NULL + * if there's nothing for it to do. + * + * cacheEntrySize is the function-language-specific size of the cache entry + * (which embeds a CachedFunction struct and typically has many more fields + * after that). + * + * If includeResultType is true and the function returns composite, + * include the actual result descriptor in the cache lookup key. + * + * If forValidator is true, we're only compiling for validation purposes, + * and so some checks are skipped. + * + * Note: it's important for this to fall through quickly if the function + * has already been compiled. + * + * Note: this function leaves the "use_count" field as zero. The caller + * is expected to increment the use_count and decrement it when done with + * the cache entry. + */ +CachedFunction * +cached_function_compile(FunctionCallInfo fcinfo, + CachedFunction *function, + CachedFunctionCompileCallback ccallback, + CachedFunctionDeleteCallback dcallback, + Size cacheEntrySize, + bool includeResultType, + bool forValidator) +{ + Oid funcOid = fcinfo->flinfo->fn_oid; + HeapTuple procTup; + Form_pg_proc procStruct; + CachedFunctionHashKey hashkey; + bool function_valid = false; + bool hashkey_valid = false; + + /* + * Lookup the pg_proc tuple by Oid; we'll need it in any case + */ + procTup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcOid)); + if (!HeapTupleIsValid(procTup)) + elog(ERROR, "cache lookup failed for function %u", funcOid); + procStruct = (Form_pg_proc) GETSTRUCT(procTup); + + /* + * Do we already have a cache entry for the current FmgrInfo? If not, try + * to find one in the hash table. + */ +recheck: + if (!function) + { + /* Compute hashkey using function signature and actual arg types */ + compute_function_hashkey(fcinfo, procStruct, &hashkey, + cacheEntrySize, includeResultType, + forValidator); + hashkey_valid = true; + + /* And do the lookup */ + function = cfunc_hashtable_lookup(&hashkey); + } + + if (function) + { + /* We have a compiled function, but is it still valid? */ + if (function->fn_xmin == HeapTupleHeaderGetRawXmin(procTup->t_data) && + ItemPointerEquals(&function->fn_tid, &procTup->t_self)) + function_valid = true; + else + { + /* + * Nope, so remove it from hashtable and try to drop associated + * storage (if not done already). + */ + delete_function(function); + + /* + * If the function isn't in active use then we can overwrite the + * func struct with new data, allowing any other existing fn_extra + * pointers to make use of the new definition on their next use. + * If it is in use then just leave it alone and make a new one. + * (The active invocations will run to completion using the + * previous definition, and then the cache entry will just be + * leaked; doesn't seem worth adding code to clean it up, given + * what a corner case this is.) + * + * If we found the function struct via fn_extra then it's possible + * a replacement has already been made, so go back and recheck the + * hashtable. + */ + if (function->use_count != 0) + { + function = NULL; + if (!hashkey_valid) + goto recheck; + } + } + } + + /* + * If the function wasn't found or was out-of-date, we have to compile it. + */ + if (!function_valid) + { + /* + * Calculate hashkey if we didn't already; we'll need it to store the + * completed function. + */ + if (!hashkey_valid) + compute_function_hashkey(fcinfo, procStruct, &hashkey, + cacheEntrySize, includeResultType, + forValidator); + + /* + * Create the new function struct, if not done already. The function + * structs are never thrown away, so keep them in TopMemoryContext. + */ + Assert(cacheEntrySize >= sizeof(CachedFunction)); + if (function == NULL) + { + function = (CachedFunction *) + MemoryContextAllocZero(TopMemoryContext, cacheEntrySize); + } + else + { + /* re-using a previously existing struct, so clear it out */ + memset(function, 0, cacheEntrySize); + } + + /* + * Fill in the CachedFunction part. fn_hashkey and use_count remain + * zeroes for now. + */ + function->fn_xmin = HeapTupleHeaderGetRawXmin(procTup->t_data); + function->fn_tid = procTup->t_self; + function->dcallback = dcallback; + + /* + * Do the hard, language-specific part. + */ + ccallback(fcinfo, procTup, &hashkey, function, forValidator); + + /* + * Add the completed struct to the hash table. + */ + cfunc_hashtable_insert(function, &hashkey); + } + + ReleaseSysCache(procTup); + + /* + * Finally return the compiled function + */ + return function; +} diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c index 4eb67720737e8..02505c88b8e4c 100644 --- a/src/backend/utils/cache/inval.c +++ b/src/backend/utils/cache/inval.c @@ -683,7 +683,8 @@ PrepareInvalidationState(void) { TransInvalidationInfo *myInfo; - Assert(IsTransactionState()); + /* PrepareToInvalidateCacheTuple() needs relcache */ + AssertCouldGetRelation(); /* Can't queue transactional message while collecting inplace messages. */ Assert(inplaceInvalInfo == NULL); @@ -752,7 +753,7 @@ PrepareInplaceInvalidationState(void) { InvalidationInfo *myInfo; - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* limit of one inplace update under assembly */ Assert(inplaceInvalInfo == NULL); @@ -928,6 +929,12 @@ InvalidateSystemCaches(void) void AcceptInvalidationMessages(void) { +#ifdef USE_ASSERT_CHECKING + /* message handlers shall access catalogs only during transactions */ + if (IsTransactionState()) + AssertCouldGetRelation(); +#endif + ReceiveSharedInvalidMessages(LocalExecuteInvalidationMessage, InvalidateSystemCaches); @@ -1200,7 +1207,7 @@ AtEOXact_Inval(bool isCommit) /* Must be at top of stack */ Assert(transInvalInfo->my_level == 1 && transInvalInfo->parent == NULL); - INJECTION_POINT("AtEOXact_Inval-with-transInvalInfo"); + INJECTION_POINT("transaction-end-process-inval", NULL); if (isCommit) { @@ -1436,6 +1443,9 @@ CacheInvalidateHeapTupleCommon(Relation relation, Oid databaseId; Oid relationId; + /* PrepareToInvalidateCacheTuple() needs relcache */ + AssertCouldGetRelation(); + /* Do nothing during bootstrap */ if (IsBootstrapProcessingMode()) return; @@ -1744,7 +1754,7 @@ CacheInvalidateSmgr(RelFileLocatorBackend rlocator) /* verify optimization stated above stays valid */ StaticAssertStmt(MAX_BACKENDS_BITS <= 23, - "MAX_BACKEND_BITS is too big for inval.c"); + "MAX_BACKENDS_BITS is too big for inval.c"); msg.sm.id = SHAREDINVALSMGR_ID; msg.sm.backend_hi = rlocator.backend >> 16; diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c index 82031c1e8e5e7..c460a72b75d90 100644 --- a/src/backend/utils/cache/lsyscache.c +++ b/src/backend/utils/cache/lsyscache.c @@ -206,11 +206,46 @@ get_opfamily_member_for_cmptype(Oid opfamily, Oid lefttype, Oid righttype, return get_opfamily_member(opfamily, lefttype, righttype, strategy); } +/* + * get_opmethod_canorder + * Return amcanorder field for given index AM. + * + * To speed things up in the common cases, we're hardcoding the results from + * the built-in index types. Note that we also need to hardcode the negative + * results from the built-in non-btree index types, since you'll usually get a + * few hits for those as well. It would be nice to organize and cache this a + * bit differently to avoid the hardcoding. + */ +static bool +get_opmethod_canorder(Oid amoid) +{ + switch (amoid) + { + case BTREE_AM_OID: + return true; + case HASH_AM_OID: + case GIST_AM_OID: + case GIN_AM_OID: + case SPGIST_AM_OID: + case BRIN_AM_OID: + return false; + default: + { + bool result; + IndexAmRoutine *amroutine = GetIndexAmRoutineByAmId(amoid, false); + + result = amroutine->amcanorder; + pfree(amroutine); + return result; + } + } +} + /* * get_ordering_op_properties - * Given the OID of an ordering operator (a btree "<" or ">" operator), + * Given the OID of an ordering operator (a "<" or ">" operator), * determine its opfamily, its declared input datatype, and its - * strategy number (BTLessStrategyNumber or BTGreaterStrategyNumber). + * comparison type. * * Returns true if successful, false if no matching pg_amop entry exists. * (This indicates that the operator is not a valid ordering operator.) @@ -228,7 +263,7 @@ get_opfamily_member_for_cmptype(Oid opfamily, Oid lefttype, Oid righttype, */ bool get_ordering_op_properties(Oid opno, - Oid *opfamily, Oid *opcintype, int16 *strategy) + Oid *opfamily, Oid *opcintype, CompareType *cmptype) { bool result = false; CatCList *catlist; @@ -237,7 +272,7 @@ get_ordering_op_properties(Oid opno, /* ensure outputs are initialized on failure */ *opfamily = InvalidOid; *opcintype = InvalidOid; - *strategy = 0; + *cmptype = COMPARE_INVALID; /* * Search pg_amop to see if the target operator is registered as the "<" @@ -249,13 +284,18 @@ get_ordering_op_properties(Oid opno, { HeapTuple tuple = &catlist->members[i]->tuple; Form_pg_amop aform = (Form_pg_amop) GETSTRUCT(tuple); + CompareType am_cmptype; - /* must be btree */ - if (aform->amopmethod != BTREE_AM_OID) + /* must be ordering index */ + if (!get_opmethod_canorder(aform->amopmethod)) continue; - if (aform->amopstrategy == BTLessStrategyNumber || - aform->amopstrategy == BTGreaterStrategyNumber) + am_cmptype = IndexAmTranslateStrategy(aform->amopstrategy, + aform->amopmethod, + aform->amopfamily, + true); + + if (am_cmptype == COMPARE_LT || am_cmptype == COMPARE_GT) { /* Found it ... should have consistent input types */ if (aform->amoplefttype == aform->amoprighttype) @@ -263,7 +303,7 @@ get_ordering_op_properties(Oid opno, /* Found a suitable opfamily, return info */ *opfamily = aform->amopfamily; *opcintype = aform->amoplefttype; - *strategy = aform->amopstrategy; + *cmptype = am_cmptype; result = true; break; } @@ -277,7 +317,7 @@ get_ordering_op_properties(Oid opno, /* * get_equality_op_for_ordering_op - * Get the OID of the datatype-specific btree equality operator + * Get the OID of the datatype-specific equality operator * associated with an ordering operator (a "<" or ">" operator). * * If "reverse" isn't NULL, also set *reverse to false if the operator is "<", @@ -292,19 +332,19 @@ get_equality_op_for_ordering_op(Oid opno, bool *reverse) Oid result = InvalidOid; Oid opfamily; Oid opcintype; - int16 strategy; + CompareType cmptype; /* Find the operator in pg_amop */ if (get_ordering_op_properties(opno, - &opfamily, &opcintype, &strategy)) + &opfamily, &opcintype, &cmptype)) { /* Found a suitable opfamily, get matching equality operator */ - result = get_opfamily_member(opfamily, - opcintype, - opcintype, - BTEqualStrategyNumber); + result = get_opfamily_member_for_cmptype(opfamily, + opcintype, + opcintype, + COMPARE_EQ); if (reverse) - *reverse = (strategy == BTGreaterStrategyNumber); + *reverse = (cmptype == COMPARE_GT); } return result; @@ -312,7 +352,7 @@ get_equality_op_for_ordering_op(Oid opno, bool *reverse) /* * get_ordering_op_for_equality_op - * Get the OID of a datatype-specific btree "less than" ordering operator + * Get the OID of a datatype-specific "less than" ordering operator * associated with an equality operator. (If there are multiple * possibilities, assume any one will do.) * @@ -341,20 +381,25 @@ get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type) { HeapTuple tuple = &catlist->members[i]->tuple; Form_pg_amop aform = (Form_pg_amop) GETSTRUCT(tuple); + CompareType cmptype; - /* must be btree */ - if (aform->amopmethod != BTREE_AM_OID) + /* must be ordering index */ + if (!get_opmethod_canorder(aform->amopmethod)) continue; - if (aform->amopstrategy == BTEqualStrategyNumber) + cmptype = IndexAmTranslateStrategy(aform->amopstrategy, + aform->amopmethod, + aform->amopfamily, + true); + if (cmptype == COMPARE_EQ) { /* Found a suitable opfamily, get matching ordering operator */ Oid typid; typid = use_lhs_type ? aform->amoplefttype : aform->amoprighttype; - result = get_opfamily_member(aform->amopfamily, - typid, typid, - BTLessStrategyNumber); + result = get_opfamily_member_for_cmptype(aform->amopfamily, + typid, typid, + COMPARE_LT); if (OidIsValid(result)) break; /* failure probably shouldn't happen, but keep looking if so */ @@ -369,7 +414,7 @@ get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type) /* * get_mergejoin_opfamilies * Given a putatively mergejoinable operator, return a list of the OIDs - * of the btree opfamilies in which it represents equality. + * of the amcanorder opfamilies in which it represents equality. * * It is possible (though at present unusual) for an operator to be equality * in more than one opfamily, hence the result is a list. This also lets us @@ -394,7 +439,7 @@ get_mergejoin_opfamilies(Oid opno) /* * Search pg_amop to see if the target operator is registered as the "=" - * operator of any btree opfamily. + * operator of any opfamily of an ordering index type. */ catlist = SearchSysCacheList1(AMOPOPID, ObjectIdGetDatum(opno)); @@ -403,9 +448,12 @@ get_mergejoin_opfamilies(Oid opno) HeapTuple tuple = &catlist->members[i]->tuple; Form_pg_amop aform = (Form_pg_amop) GETSTRUCT(tuple); - /* must be btree equality */ - if (aform->amopmethod == BTREE_AM_OID && - aform->amopstrategy == BTEqualStrategyNumber) + /* must be ordering index equality */ + if (get_opmethod_canorder(aform->amopmethod) && + IndexAmTranslateStrategy(aform->amopstrategy, + aform->amopmethod, + aform->amopfamily, + true) == COMPARE_EQ) result = lappend_oid(result, aform->amopfamily); } @@ -611,20 +659,20 @@ get_op_hash_functions(Oid opno, } /* - * get_op_btree_interpretation - * Given an operator's OID, find out which btree opfamilies it belongs to, + * get_op_index_interpretation + * Given an operator's OID, find out which amcanorder opfamilies it belongs to, * and what properties it has within each one. The results are returned - * as a palloc'd list of OpBtreeInterpretation structs. + * as a palloc'd list of OpIndexInterpretation structs. * * In addition to the normal btree operators, we consider a <> operator to be * a "member" of an opfamily if its negator is an equality operator of the * opfamily. COMPARE_NE is returned as the strategy number for this case. */ List * -get_op_btree_interpretation(Oid opno) +get_op_index_interpretation(Oid opno) { List *result = NIL; - OpBtreeInterpretation *thisresult; + OpIndexInterpretation *thisresult; CatCList *catlist; int i; @@ -637,20 +685,26 @@ get_op_btree_interpretation(Oid opno) { HeapTuple op_tuple = &catlist->members[i]->tuple; Form_pg_amop op_form = (Form_pg_amop) GETSTRUCT(op_tuple); - StrategyNumber op_strategy; + CompareType cmptype; - /* must be btree */ - if (op_form->amopmethod != BTREE_AM_OID) + /* must be ordering index */ + if (!get_opmethod_canorder(op_form->amopmethod)) continue; - /* Get the operator's btree strategy number */ - op_strategy = (StrategyNumber) op_form->amopstrategy; - Assert(op_strategy >= 1 && op_strategy <= 5); + /* Get the operator's comparision type */ + cmptype = IndexAmTranslateStrategy(op_form->amopstrategy, + op_form->amopmethod, + op_form->amopfamily, + true); + + /* should not happen */ + if (cmptype == COMPARE_INVALID) + continue; - thisresult = (OpBtreeInterpretation *) - palloc(sizeof(OpBtreeInterpretation)); + thisresult = (OpIndexInterpretation *) + palloc(sizeof(OpIndexInterpretation)); thisresult->opfamily_id = op_form->amopfamily; - thisresult->strategy = op_strategy; + thisresult->cmptype = cmptype; thisresult->oplefttype = op_form->amoplefttype; thisresult->oprighttype = op_form->amoprighttype; result = lappend(result, thisresult); @@ -675,25 +729,28 @@ get_op_btree_interpretation(Oid opno) { HeapTuple op_tuple = &catlist->members[i]->tuple; Form_pg_amop op_form = (Form_pg_amop) GETSTRUCT(op_tuple); - StrategyNumber op_strategy; + IndexAmRoutine *amroutine = GetIndexAmRoutineByAmId(op_form->amopmethod, false); + CompareType cmptype; - /* must be btree */ - if (op_form->amopmethod != BTREE_AM_OID) + /* must be ordering index */ + if (!amroutine->amcanorder) continue; - /* Get the operator's btree strategy number */ - op_strategy = (StrategyNumber) op_form->amopstrategy; - Assert(op_strategy >= 1 && op_strategy <= 5); + /* Get the operator's comparision type */ + cmptype = IndexAmTranslateStrategy(op_form->amopstrategy, + op_form->amopmethod, + op_form->amopfamily, + true); /* Only consider negators that are = */ - if (op_strategy != BTEqualStrategyNumber) + if (cmptype != COMPARE_EQ) continue; - /* OK, report it with "strategy" COMPARE_NE */ - thisresult = (OpBtreeInterpretation *) - palloc(sizeof(OpBtreeInterpretation)); + /* OK, report it as COMPARE_NE */ + thisresult = (OpIndexInterpretation *) + palloc(sizeof(OpIndexInterpretation)); thisresult->opfamily_id = op_form->amopfamily; - thisresult->strategy = COMPARE_NE; + thisresult->cmptype = COMPARE_NE; thisresult->oplefttype = op_form->amoplefttype; thisresult->oprighttype = op_form->amoprighttype; result = lappend(result, thisresult); diff --git a/src/backend/utils/cache/meson.build b/src/backend/utils/cache/meson.build index 104b28737d7c9..a1784dce5855b 100644 --- a/src/backend/utils/cache/meson.build +++ b/src/backend/utils/cache/meson.build @@ -4,6 +4,7 @@ backend_sources += files( 'attoptcache.c', 'catcache.c', 'evtcache.c', + 'funccache.c', 'inval.c', 'lsyscache.c', 'partcache.c', diff --git a/src/backend/utils/cache/plancache.c b/src/backend/utils/cache/plancache.c index 6c2979d5c826c..89a1c79e984d1 100644 --- a/src/backend/utils/cache/plancache.c +++ b/src/backend/utils/cache/plancache.c @@ -14,7 +14,7 @@ * Cache invalidation is driven off sinval events. Any CachedPlanSource * that matches the event is marked invalid, as is its generic CachedPlan * if it has one. When (and if) the next demand for a cached plan occurs, - * parse analysis and rewrite is repeated to build a new valid query tree, + * parse analysis and/or rewrite is repeated to build a new valid query tree, * and then planning is performed as normal. We also force re-analysis and * re-planning if the active search_path is different from the previous time * or, if RLS is involved, if the user changes or the RLS environment changes. @@ -63,6 +63,7 @@ #include "nodes/nodeFuncs.h" #include "optimizer/optimizer.h" #include "parser/analyze.h" +#include "rewrite/rewriteHandler.h" #include "storage/lmgr.h" #include "tcop/pquery.h" #include "tcop/utility.h" @@ -74,18 +75,6 @@ #include "utils/syscache.h" -/* - * We must skip "overhead" operations that involve database access when the - * cached plan's subject statement is a transaction control command or one - * that requires a snapshot not to be set yet (such as SET or LOCK). More - * generally, statements that do not require parse analysis/rewrite/plan - * activity never need to be revalidated, so we can treat them all like that. - * For the convenience of postgres.c, treat empty statements that way too. - */ -#define StmtPlanRequiresRevalidation(plansource) \ - ((plansource)->raw_parse_tree != NULL && \ - stmt_requires_parse_analysis((plansource)->raw_parse_tree)) - /* * This is the head of the backend's list of "saved" CachedPlanSources (i.e., * those that are in long-lived storage and are examined for sinval events). @@ -100,9 +89,10 @@ static dlist_head saved_plan_list = DLIST_STATIC_INIT(saved_plan_list); static dlist_head cached_expression_list = DLIST_STATIC_INIT(cached_expression_list); static void ReleaseGenericPlan(CachedPlanSource *plansource); +static bool StmtPlanRequiresRevalidation(CachedPlanSource *plansource); +static bool BuildingPlanRequiresSnapshot(CachedPlanSource *plansource); static List *RevalidateCachedQuery(CachedPlanSource *plansource, - QueryEnvironment *queryEnv, - bool release_generic); + QueryEnvironment *queryEnv); static bool CheckCachedPlan(CachedPlanSource *plansource); static CachedPlan *BuildCachedPlan(CachedPlanSource *plansource, List *qlist, ParamListInfo boundParams, QueryEnvironment *queryEnv); @@ -166,7 +156,7 @@ InitPlanCache(void) } /* - * CreateCachedPlan: initially create a plan cache entry. + * CreateCachedPlan: initially create a plan cache entry for a raw parse tree. * * Creation of a cached plan is divided into two steps, CreateCachedPlan and * CompleteCachedPlan. CreateCachedPlan should be called after running the @@ -220,6 +210,7 @@ CreateCachedPlan(RawStmt *raw_parse_tree, plansource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource)); plansource->magic = CACHEDPLANSOURCE_MAGIC; plansource->raw_parse_tree = copyObject(raw_parse_tree); + plansource->analyzed_parse_tree = NULL; plansource->query_string = pstrdup(query_string); MemoryContextSetIdentifier(source_context, plansource->query_string); plansource->commandTag = commandTag; @@ -227,6 +218,8 @@ CreateCachedPlan(RawStmt *raw_parse_tree, plansource->num_params = 0; plansource->parserSetup = NULL; plansource->parserSetupArg = NULL; + plansource->postRewrite = NULL; + plansource->postRewriteArg = NULL; plansource->cursor_options = 0; plansource->fixed_result = false; plansource->resultDesc = NULL; @@ -255,6 +248,34 @@ CreateCachedPlan(RawStmt *raw_parse_tree, return plansource; } +/* + * CreateCachedPlanForQuery: initially create a plan cache entry for a Query. + * + * This is used in the same way as CreateCachedPlan, except that the source + * query has already been through parse analysis, and the plancache will never + * try to re-do that step. + * + * Currently this is used only for new-style SQL functions, where we have a + * Query from the function's prosqlbody, but no source text. The query_string + * is typically empty, but is required anyway. + */ +CachedPlanSource * +CreateCachedPlanForQuery(Query *analyzed_parse_tree, + const char *query_string, + CommandTag commandTag) +{ + CachedPlanSource *plansource; + MemoryContext oldcxt; + + /* Rather than duplicating CreateCachedPlan, just do this: */ + plansource = CreateCachedPlan(NULL, query_string, commandTag); + oldcxt = MemoryContextSwitchTo(plansource->context); + plansource->analyzed_parse_tree = copyObject(analyzed_parse_tree); + MemoryContextSwitchTo(oldcxt); + + return plansource; +} + /* * CreateOneShotCachedPlan: initially create a one-shot plan cache entry. * @@ -289,12 +310,15 @@ CreateOneShotCachedPlan(RawStmt *raw_parse_tree, plansource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource)); plansource->magic = CACHEDPLANSOURCE_MAGIC; plansource->raw_parse_tree = raw_parse_tree; + plansource->analyzed_parse_tree = NULL; plansource->query_string = query_string; plansource->commandTag = commandTag; plansource->param_types = NULL; plansource->num_params = 0; plansource->parserSetup = NULL; plansource->parserSetupArg = NULL; + plansource->postRewrite = NULL; + plansource->postRewriteArg = NULL; plansource->cursor_options = 0; plansource->fixed_result = false; plansource->resultDesc = NULL; @@ -464,6 +488,29 @@ CompleteCachedPlan(CachedPlanSource *plansource, plansource->is_valid = true; } +/* + * SetPostRewriteHook: set a hook to modify post-rewrite query trees + * + * Some callers have a need to modify the query trees between rewriting and + * planning. In the initial call to CompleteCachedPlan, it's assumed such + * work was already done on the querytree_list. However, if we're forced + * to replan, it will need to be done over. The caller can set this hook + * to provide code to make that happen. + * + * postRewriteArg is just passed verbatim to the hook. As with parserSetupArg, + * it is caller's responsibility that the referenced data remains + * valid for as long as the CachedPlanSource exists. + */ +void +SetPostRewriteHook(CachedPlanSource *plansource, + PostRewriteHook postRewrite, + void *postRewriteArg) +{ + Assert(plansource->magic == CACHEDPLANSOURCE_MAGIC); + plansource->postRewrite = postRewrite; + plansource->postRewriteArg = postRewriteArg; +} + /* * SaveCachedPlan: save a cached plan permanently * @@ -566,6 +613,42 @@ ReleaseGenericPlan(CachedPlanSource *plansource) } } +/* + * We must skip "overhead" operations that involve database access when the + * cached plan's subject statement is a transaction control command or one + * that requires a snapshot not to be set yet (such as SET or LOCK). More + * generally, statements that do not require parse analysis/rewrite/plan + * activity never need to be revalidated, so we can treat them all like that. + * For the convenience of postgres.c, treat empty statements that way too. + */ +static bool +StmtPlanRequiresRevalidation(CachedPlanSource *plansource) +{ + if (plansource->raw_parse_tree != NULL) + return stmt_requires_parse_analysis(plansource->raw_parse_tree); + else if (plansource->analyzed_parse_tree != NULL) + return query_requires_rewrite_plan(plansource->analyzed_parse_tree); + /* empty query never needs revalidation */ + return false; +} + +/* + * Determine if creating a plan for this CachedPlanSource requires a snapshot. + * In fact this function matches StmtPlanRequiresRevalidation(), but we want + * to preserve the distinction between stmt_requires_parse_analysis() and + * analyze_requires_snapshot(). + */ +static bool +BuildingPlanRequiresSnapshot(CachedPlanSource *plansource) +{ + if (plansource->raw_parse_tree != NULL) + return analyze_requires_snapshot(plansource->raw_parse_tree); + else if (plansource->analyzed_parse_tree != NULL) + return query_requires_rewrite_plan(plansource->analyzed_parse_tree); + /* empty query never needs a snapshot */ + return false; +} + /* * RevalidateCachedQuery: ensure validity of analyzed-and-rewritten query tree. * @@ -579,20 +662,12 @@ ReleaseGenericPlan(CachedPlanSource *plansource) * The result value is the transient analyzed-and-rewritten query tree if we * had to do re-analysis, and NIL otherwise. (This is returned just to save * a tree copying step in a subsequent BuildCachedPlan call.) - * - * This also releases and drops the generic plan (plansource->gplan), if any, - * as most callers will typically build a new CachedPlan for the plansource - * right after this. However, when called from UpdateCachedPlan(), the - * function does not release the generic plan, as UpdateCachedPlan() updates - * an existing CachedPlan in place. */ static List * RevalidateCachedQuery(CachedPlanSource *plansource, - QueryEnvironment *queryEnv, - bool release_generic) + QueryEnvironment *queryEnv) { bool snapshot_set; - RawStmt *rawtree; List *tlist; /* transient query-tree list */ List *qlist; /* permanent query-tree list */ TupleDesc resultDesc; @@ -615,7 +690,10 @@ RevalidateCachedQuery(CachedPlanSource *plansource, /* * If the query is currently valid, we should have a saved search_path --- * check to see if that matches the current environment. If not, we want - * to force replan. + * to force replan. (We could almost ignore this consideration when + * working from an analyzed parse tree; but there are scenarios where + * planning can have search_path-dependent results, for example if it + * inlines an old-style SQL function.) */ if (plansource->is_valid) { @@ -662,9 +740,9 @@ RevalidateCachedQuery(CachedPlanSource *plansource, } /* - * Discard the no-longer-useful query tree. (Note: we don't want to do - * this any earlier, else we'd not have been able to release locks - * correctly in the race condition case.) + * Discard the no-longer-useful rewritten query tree. (Note: we don't + * want to do this any earlier, else we'd not have been able to release + * locks correctly in the race condition case.) */ plansource->is_valid = false; plansource->query_list = NIL; @@ -686,9 +764,8 @@ RevalidateCachedQuery(CachedPlanSource *plansource, MemoryContextDelete(qcxt); } - /* Drop the generic plan reference, if any, and if requested */ - if (release_generic) - ReleaseGenericPlan(plansource); + /* Drop the generic plan reference if any */ + ReleaseGenericPlan(plansource); /* * Now re-do parse analysis and rewrite. This not incidentally acquires @@ -711,25 +788,52 @@ RevalidateCachedQuery(CachedPlanSource *plansource, } /* - * Run parse analysis and rule rewriting. The parser tends to scribble on - * its input, so we must copy the raw parse tree to prevent corruption of - * the cache. + * Run parse analysis (if needed) and rule rewriting. */ - rawtree = copyObject(plansource->raw_parse_tree); - if (rawtree == NULL) - tlist = NIL; - else if (plansource->parserSetup != NULL) - tlist = pg_analyze_and_rewrite_withcb(rawtree, - plansource->query_string, - plansource->parserSetup, - plansource->parserSetupArg, - queryEnv); + if (plansource->raw_parse_tree != NULL) + { + /* Source is raw parse tree */ + RawStmt *rawtree; + + /* + * The parser tends to scribble on its input, so we must copy the raw + * parse tree to prevent corruption of the cache. + */ + rawtree = copyObject(plansource->raw_parse_tree); + if (plansource->parserSetup != NULL) + tlist = pg_analyze_and_rewrite_withcb(rawtree, + plansource->query_string, + plansource->parserSetup, + plansource->parserSetupArg, + queryEnv); + else + tlist = pg_analyze_and_rewrite_fixedparams(rawtree, + plansource->query_string, + plansource->param_types, + plansource->num_params, + queryEnv); + } + else if (plansource->analyzed_parse_tree != NULL) + { + /* Source is pre-analyzed query, so we only need to rewrite */ + Query *analyzed_tree; + + /* The rewriter scribbles on its input, too, so copy */ + analyzed_tree = copyObject(plansource->analyzed_parse_tree); + /* Acquire locks needed before rewriting ... */ + AcquireRewriteLocks(analyzed_tree, true, false); + /* ... and do it */ + tlist = pg_rewrite_query(analyzed_tree); + } else - tlist = pg_analyze_and_rewrite_fixedparams(rawtree, - plansource->query_string, - plansource->param_types, - plansource->num_params, - queryEnv); + { + /* Empty query, nothing to do */ + tlist = NIL; + } + + /* Apply post-rewrite callback if there is one */ + if (plansource->postRewrite != NULL) + plansource->postRewrite(tlist, plansource->postRewriteArg); /* Release snapshot if we got one */ if (snapshot_set) @@ -824,10 +928,8 @@ RevalidateCachedQuery(CachedPlanSource *plansource, * Caller must have already called RevalidateCachedQuery to verify that the * querytree is up to date. * - * On a "true" return, we have acquired locks on the "unprunableRelids" set - * for all plans in plansource->stmt_list. However, the plans are not fully - * race-condition-free until the executor acquires locks on the prunable - * relations that survive initial runtime pruning during InitPlan(). + * On a "true" return, we have acquired the locks needed to run the plan. + * (We must do this for the "true" result to be race-condition-free.) */ static bool CheckCachedPlan(CachedPlanSource *plansource) @@ -912,8 +1014,6 @@ CheckCachedPlan(CachedPlanSource *plansource) * Planning work is done in the caller's memory context. The finished plan * is in a child memory context, which typically should get reparented * (unless this is a one-shot plan, in which case we don't copy the plan). - * - * Note: When changing this, you should also look at UpdateCachedPlan(). */ static CachedPlan * BuildCachedPlan(CachedPlanSource *plansource, List *qlist, @@ -924,7 +1024,6 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, bool snapshot_set; bool is_transient; MemoryContext plan_context; - MemoryContext stmt_context = NULL; MemoryContext oldcxt = CurrentMemoryContext; ListCell *lc; @@ -942,7 +1041,7 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, * let's treat it as real and redo the RevalidateCachedQuery call. */ if (!plansource->is_valid) - qlist = RevalidateCachedQuery(plansource, queryEnv, true); + qlist = RevalidateCachedQuery(plansource, queryEnv); /* * If we don't already have a copy of the querytree list that can be @@ -963,8 +1062,7 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, */ snapshot_set = false; if (!ActiveSnapshotSet() && - plansource->raw_parse_tree && - analyze_requires_snapshot(plansource->raw_parse_tree)) + BuildingPlanRequiresSnapshot(plansource)) { PushActiveSnapshot(GetTransactionSnapshot()); snapshot_set = true; @@ -981,19 +1079,10 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, PopActiveSnapshot(); /* - * Normally, we create a dedicated memory context for the CachedPlan and - * its subsidiary data. Although it's usually not very large, the context - * is designed to allow growth if necessary. - * - * The PlannedStmts are stored in a separate child context (stmt_context) - * of the CachedPlan's memory context. This separation allows - * UpdateCachedPlan() to free and replace the PlannedStmts without - * affecting the CachedPlan structure or its stmt_list List. - * - * For one-shot plans, we instead use the caller's memory context, as the - * CachedPlan will not persist. stmt_context will be set to NULL in this - * case, because UpdateCachedPlan() should never get called on a one-shot - * plan. + * Normally we make a dedicated memory context for the CachedPlan and its + * subsidiary data. (It's probably not going to be large, but just in + * case, allow it to grow large. It's transient for the moment.) But for + * a one-shot plan, we just leave it in the caller's memory context. */ if (!plansource->is_oneshot) { @@ -1002,17 +1091,12 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, ALLOCSET_START_SMALL_SIZES); MemoryContextCopyAndSetIdentifier(plan_context, plansource->query_string); - stmt_context = AllocSetContextCreate(CurrentMemoryContext, - "CachedPlan PlannedStmts", - ALLOCSET_START_SMALL_SIZES); - MemoryContextCopyAndSetIdentifier(stmt_context, plansource->query_string); - MemoryContextSetParent(stmt_context, plan_context); + /* + * Copy plan into the new context. + */ + MemoryContextSwitchTo(plan_context); - MemoryContextSwitchTo(stmt_context); plist = copyObject(plist); - - MemoryContextSwitchTo(plan_context); - plist = list_copy(plist); } else plan_context = CurrentMemoryContext; @@ -1053,10 +1137,8 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, plan->saved_xmin = InvalidTransactionId; plan->refcount = 0; plan->context = plan_context; - plan->stmt_context = stmt_context; plan->is_oneshot = plansource->is_oneshot; plan->is_saved = false; - plan->is_reused = false; plan->is_valid = true; /* assign generation number to new plan */ @@ -1067,113 +1149,6 @@ BuildCachedPlan(CachedPlanSource *plansource, List *qlist, return plan; } -/* - * UpdateCachedPlan - * Create fresh plans for all queries in the CachedPlanSource, replacing - * those in the generic plan's stmt_list, and return the plan for the - * query_index'th query. - * - * This function is primarily used by ExecutorStartCachedPlan() to handle - * cases where the original generic CachedPlan becomes invalid. Such - * invalidation may occur when prunable relations in the old plan for the - * query_index'th query are locked in preparation for execution. - * - * Note that invalidations received during the execution of the query_index'th - * query can affect both the queries that have already finished execution - * (e.g., due to concurrent modifications on prunable relations that were not - * locked during their execution) and also the queries that have not yet been - * executed. As a result, this function updates all plans to ensure - * CachedPlan.is_valid is safely set to true. - * - * The old PlannedStmts in plansource->gplan->stmt_list are freed here, so - * the caller and any of its callers must not rely on them remaining accessible - * after this function is called. - */ -PlannedStmt * -UpdateCachedPlan(CachedPlanSource *plansource, int query_index, - QueryEnvironment *queryEnv) -{ - List *query_list = plansource->query_list, - *plan_list; - ListCell *l1, - *l2; - CachedPlan *plan = plansource->gplan; - MemoryContext oldcxt; - - Assert(ActiveSnapshotSet()); - - /* Sanity checks (XXX can be Asserts?) */ - if (plan == NULL) - elog(ERROR, "UpdateCachedPlan() called in the wrong context: plansource->gplan is NULL"); - else if (plan->is_valid) - elog(ERROR, "UpdateCachedPlan() called in the wrong context: plansource->gplan->is_valid is true"); - else if (plan->is_oneshot) - elog(ERROR, "UpdateCachedPlan() called in the wrong context: plansource->gplan->is_oneshot is true"); - - /* - * The plansource might have become invalid since GetCachedPlan() returned - * the CachedPlan. See the comment in BuildCachedPlan() for details on why - * this might happen. Although invalidation is likely a false positive as - * stated there, we make the plan valid to ensure the query list used for - * planning is up to date. - * - * The risk of catching an invalidation is higher here than when - * BuildCachedPlan() is called from GetCachedPlan(), because this function - * is normally called long after GetCachedPlan() returns the CachedPlan, - * so much more processing could have occurred including things that mark - * the CachedPlanSource invalid. - * - * Note: Do not release plansource->gplan, because the upstream callers - * (such as the callers of ExecutorStartCachedPlan()) would still be - * referencing it. - */ - if (!plansource->is_valid) - query_list = RevalidateCachedQuery(plansource, queryEnv, false); - Assert(query_list != NIL); - - /* - * Build a new generic plan for all the queries after making a copy to be - * scribbled on by the planner. - */ - query_list = copyObject(query_list); - - /* - * Planning work is done in the caller's memory context. The resulting - * PlannedStmt is then copied into plan->stmt_context after throwing away - * the old ones. - */ - plan_list = pg_plan_queries(query_list, plansource->query_string, - plansource->cursor_options, NULL); - Assert(list_length(plan_list) == list_length(plan->stmt_list)); - - MemoryContextReset(plan->stmt_context); - oldcxt = MemoryContextSwitchTo(plan->stmt_context); - forboth(l1, plan_list, l2, plan->stmt_list) - { - PlannedStmt *plannedstmt = lfirst(l1); - - lfirst(l2) = copyObject(plannedstmt); - } - MemoryContextSwitchTo(oldcxt); - - /* - * XXX Should this also (re)set the properties of the CachedPlan that are - * set in BuildCachedPlan() after creating the fresh plans such as - * planRoleId, dependsOnRole, and save_xmin? - */ - - /* - * We've updated all the plans that might have been invalidated, so mark - * the CachedPlan as valid. - */ - plan->is_valid = true; - - /* Also update generic_cost because we just created a new generic plan. */ - plansource->generic_cost = cached_plan_cost(plan, false); - - return list_nth_node(PlannedStmt, plan->stmt_list, query_index); -} - /* * choose_custom_plan: choose whether to use custom or generic plan * @@ -1290,13 +1265,8 @@ cached_plan_cost(CachedPlan *plan, bool include_planner) * plan or a custom plan for the given parameters: the caller does not know * which it will get. * - * On return, the plan is valid, but if it is a reused generic plan, not all - * locks are acquired. In such cases, CheckCachedPlan() does not take locks - * on relations subject to initial runtime pruning; instead, these locks are - * deferred until execution startup, when ExecDoInitialPruning() performs - * initial pruning. The plan's "is_reused" flag is set to indicate that - * CachedPlanRequiresLocking() should return true when called by - * ExecDoInitialPruning(). + * On return, the plan is valid and we have sufficient locks to begin + * execution. * * On return, the refcount of the plan has been incremented; a later * ReleaseCachedPlan() call is expected. If "owner" is not NULL then @@ -1322,7 +1292,7 @@ GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams, elog(ERROR, "cannot apply ResourceOwner to non-saved cached plan"); /* Make sure the querytree list is valid and we have parse-time locks */ - qlist = RevalidateCachedQuery(plansource, queryEnv, true); + qlist = RevalidateCachedQuery(plansource, queryEnv); /* Decide whether to use a custom plan */ customplan = choose_custom_plan(plansource, boundParams); @@ -1334,8 +1304,6 @@ GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams, /* We want a generic plan, and we already have a valid one */ plan = plansource->gplan; Assert(plan->magic == CACHEDPLAN_MAGIC); - /* Reusing the existing plan, so not all locks may be acquired. */ - plan->is_reused = true; } else { @@ -1703,6 +1671,7 @@ CopyCachedPlan(CachedPlanSource *plansource) newsource = (CachedPlanSource *) palloc0(sizeof(CachedPlanSource)); newsource->magic = CACHEDPLANSOURCE_MAGIC; newsource->raw_parse_tree = copyObject(plansource->raw_parse_tree); + newsource->analyzed_parse_tree = copyObject(plansource->analyzed_parse_tree); newsource->query_string = pstrdup(plansource->query_string); MemoryContextSetIdentifier(source_context, newsource->query_string); newsource->commandTag = plansource->commandTag; @@ -1718,6 +1687,8 @@ CopyCachedPlan(CachedPlanSource *plansource) newsource->num_params = plansource->num_params; newsource->parserSetup = plansource->parserSetup; newsource->parserSetupArg = plansource->parserSetupArg; + newsource->postRewrite = plansource->postRewrite; + newsource->postRewriteArg = plansource->postRewriteArg; newsource->cursor_options = plansource->cursor_options; newsource->fixed_result = plansource->fixed_result; if (plansource->resultDesc) @@ -1798,7 +1769,7 @@ CachedPlanGetTargetList(CachedPlanSource *plansource, return NIL; /* Make sure the querytree list is valid and we have parse-time locks */ - RevalidateCachedQuery(plansource, queryEnv, true); + RevalidateCachedQuery(plansource, queryEnv); /* Get the primary statement and find out what it returns */ pstmt = QueryListGetPrimaryStmt(plansource->query_list); @@ -1920,7 +1891,7 @@ AcquireExecutorLocks(List *stmt_list, bool acquire) foreach(lc1, stmt_list) { PlannedStmt *plannedstmt = lfirst_node(PlannedStmt, lc1); - int rtindex; + ListCell *lc2; if (plannedstmt->commandType == CMD_UTILITY) { @@ -1938,16 +1909,13 @@ AcquireExecutorLocks(List *stmt_list, bool acquire) continue; } - rtindex = -1; - while ((rtindex = bms_next_member(plannedstmt->unprunableRelids, - rtindex)) >= 0) + foreach(lc2, plannedstmt->rtable) { - RangeTblEntry *rte = list_nth_node(RangeTblEntry, - plannedstmt->rtable, - rtindex - 1); + RangeTblEntry *rte = (RangeTblEntry *) lfirst(lc2); - Assert(rte->rtekind == RTE_RELATION || - (rte->rtekind == RTE_SUBQUERY && OidIsValid(rte->relid))); + if (!(rte->rtekind == RTE_RELATION || + (rte->rtekind == RTE_SUBQUERY && OidIsValid(rte->relid)))) + continue; /* * Acquire the appropriate type of lock on each relation OID. Note diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 9f54a9e72b730..559ba9cdb2cde 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -307,7 +307,7 @@ static TupleDesc GetPgClassDescriptor(void); static TupleDesc GetPgIndexDescriptor(void); static void AttrDefaultFetch(Relation relation, int ndef); static int AttrDefaultCmp(const void *a, const void *b); -static void CheckConstraintFetch(Relation relation); +static void CheckNNConstraintFetch(Relation relation); static int CheckConstraintCmp(const void *a, const void *b); static void InitIndexAmRoutine(Relation relation); static void IndexSupportInitialize(oidvector *indclass, @@ -684,6 +684,8 @@ RelationBuildTupleDesc(Relation relation) attrmiss || relation->rd_rel->relchecks > 0) { + bool is_catalog = IsCatalogRelation(relation); + relation->rd_att->constr = constr; if (ndef > 0) /* DEFAULTs */ @@ -693,9 +695,33 @@ RelationBuildTupleDesc(Relation relation) constr->missing = attrmiss; - if (relation->rd_rel->relchecks > 0) /* CHECKs */ - CheckConstraintFetch(relation); - else + /* CHECK and NOT NULLs */ + if (relation->rd_rel->relchecks > 0 || + (!is_catalog && constr->has_not_null)) + CheckNNConstraintFetch(relation); + + /* + * Any not-null constraint that wasn't marked invalid by + * CheckNNConstraintFetch must necessarily be valid; make it so in the + * CompactAttribute array. + */ + if (!is_catalog) + { + for (int i = 0; i < relation->rd_rel->relnatts; i++) + { + CompactAttribute *attr; + + attr = TupleDescCompactAttr(relation->rd_att, i); + + if (attr->attnullability == ATTNULLABLE_UNKNOWN) + attr->attnullability = ATTNULLABLE_VALID; + else + Assert(attr->attnullability == ATTNULLABLE_INVALID || + attr->attnullability == ATTNULLABLE_UNRESTRICTED); + } + } + + if (relation->rd_rel->relchecks == 0) constr->num_check = 0; } else @@ -2030,6 +2056,23 @@ formrdesc(const char *relationName, Oid relationReltype, relation->rd_isvalid = true; } +#ifdef USE_ASSERT_CHECKING +/* + * AssertCouldGetRelation + * + * Check safety of calling RelationIdGetRelation(). + * + * In code that reads catalogs in the event of a cache miss, call this + * before checking the cache. + */ +void +AssertCouldGetRelation(void) +{ + Assert(IsTransactionState()); + AssertBufferLocksPermitCatalogRead(); +} +#endif + /* ---------------------------------------------------------------- * Relation Descriptor Lookup Interface @@ -2057,8 +2100,7 @@ RelationIdGetRelation(Oid relationId) { Relation rd; - /* Make sure we're in an xact, even if this ends up being a cache hit */ - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* * first try to find reldesc in the cache @@ -2347,8 +2389,7 @@ RelationReloadNailed(Relation relation) Assert(relation->rd_isnailed); /* nailed indexes are handled by RelationReloadIndexInfo() */ Assert(relation->rd_rel->relkind == RELKIND_RELATION); - /* can only reread catalog contents in a transaction */ - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* * Redo RelationInitPhysicalAddr in case it is a mapped relation whose @@ -2544,8 +2585,7 @@ static void RelationRebuildRelation(Relation relation) { Assert(!RelationHasReferenceCountZero(relation)); - /* rebuilding requires access to the catalogs */ - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* there is no reason to ever rebuild a dropped relation */ Assert(relation->rd_droppedSubid == InvalidSubTransactionId); @@ -3575,6 +3615,14 @@ RelationBuildLocalRelation(const char *relname, datt->attnotnull = satt->attnotnull; has_not_null |= satt->attnotnull; populate_compact_attribute(rel->rd_att, i); + + if (satt->attnotnull) + { + CompactAttribute *scatt = TupleDescCompactAttr(tupDesc, i); + CompactAttribute *dcatt = TupleDescCompactAttr(rel->rd_att, i); + + dcatt->attnullability = scatt->attnullability; + } } if (has_not_null) @@ -4533,13 +4581,14 @@ AttrDefaultCmp(const void *a, const void *b) } /* - * Load any check constraints for the relation. + * Load any check constraints for the relation, and update not-null validity + * of invalid constraints. * * As with defaults, if we don't find the expected number of them, just warn * here. The executor should throw an error if an INSERT/UPDATE is attempted. */ static void -CheckConstraintFetch(Relation relation) +CheckNNConstraintFetch(Relation relation) { ConstrCheck *check; int ncheck = relation->rd_rel->relchecks; @@ -4549,10 +4598,13 @@ CheckConstraintFetch(Relation relation) HeapTuple htup; int found = 0; - /* Allocate array with room for as many entries as expected */ - check = (ConstrCheck *) - MemoryContextAllocZero(CacheMemoryContext, - ncheck * sizeof(ConstrCheck)); + /* Allocate array with room for as many entries as expected, if needed */ + if (ncheck > 0) + check = (ConstrCheck *) + MemoryContextAllocZero(CacheMemoryContext, + ncheck * sizeof(ConstrCheck)); + else + check = NULL; /* Search pg_constraint for relevant entries */ ScanKeyInit(&skey[0], @@ -4570,7 +4622,31 @@ CheckConstraintFetch(Relation relation) Datum val; bool isnull; - /* We want check constraints only */ + /* + * If this is a not-null constraint, then only look at it if it's + * invalid, and if so, mark the TupleDesc entry as known invalid. + * Otherwise move on. We'll mark any remaining columns that are still + * in UNKNOWN state as known valid later. This allows us not to have + * to extract the attnum from this constraint tuple in the vast + * majority of cases. + */ + if (conform->contype == CONSTRAINT_NOTNULL) + { + if (!conform->convalidated) + { + AttrNumber attnum; + + attnum = extractNotNullColumn(htup); + Assert(relation->rd_att->compact_attrs[attnum - 1].attnullability == + ATTNULLABLE_UNKNOWN); + relation->rd_att->compact_attrs[attnum - 1].attnullability = + ATTNULLABLE_INVALID; + } + + continue; + } + + /* For what follows, consider check constraints only */ if (conform->contype != CONSTRAINT_CHECK) continue; @@ -4666,11 +4742,6 @@ RelationGetFKeyList(Relation relation) if (relation->rd_fkeyvalid) return relation->rd_fkeylist; - /* Fast path: non-partitioned tables without triggers can't have FKs */ - if (!relation->rd_rel->relhastriggers && - relation->rd_rel->relkind != RELKIND_PARTITIONED_TABLE) - return NIL; - /* * We build the list we intend to return (in the caller's context) while * doing the scan. After successfully completing the scan, we copy that @@ -4702,6 +4773,7 @@ RelationGetFKeyList(Relation relation) info->conoid = constraint->oid; info->conrelid = constraint->conrelid; info->confrelid = constraint->confrelid; + info->conenforced = constraint->conenforced; DeconstructFkConstraintRow(htup, &info->nkeys, info->conkey, diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 95a1d0a274901..f944453a1d884 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -396,7 +396,7 @@ SearchSysCacheCopy(int cacheId, /* * SearchSysCacheLockedCopy1 * - * Meld SearchSysCacheLockedCopy1 with SearchSysCacheCopy(). After the + * Meld SearchSysCacheLocked1 with SearchSysCacheCopy(). After the * caller's heap_update(), it should UnlockTuple(InplaceUpdateTupleLock) and * heap_freetuple(). */ diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c index ae65a1cce06c5..f9aec38a11fb3 100644 --- a/src/backend/utils/cache/typcache.c +++ b/src/backend/utils/cache/typcache.c @@ -952,7 +952,7 @@ lookup_type_cache(Oid type_id, int flags) load_domaintype_info(typentry); } - INJECTION_POINT("typecache-before-rel-type-cache-insert"); + INJECTION_POINT("typecache-before-rel-type-cache-insert", NULL); Assert(in_progress_offset + 1 == in_progress_list_len); in_progress_list_len--; @@ -2395,7 +2395,10 @@ InvalidateCompositeTypeCacheEntry(TypeCacheEntry *typentry) /* Reset equality/comparison/hashing validity information */ typentry->flags &= ~TCFLAGS_OPERATOR_FLAGS; - /* Call delete_rel_type_cache() if we actually cleared something */ + /* + * Call delete_rel_type_cache_if_needed() if we actually cleared + * something. + */ if (hadTupDescOrOpclass) delete_rel_type_cache_if_needed(typentry); } @@ -2542,7 +2545,7 @@ TypeCacheTypCallback(Datum arg, int cacheid, uint32 hashvalue) TCFLAGS_CHECKED_DOMAIN_CONSTRAINTS); /* - * Call delete_rel_type_cache() if we cleaned + * Call delete_rel_type_cache_if_needed() if we cleaned * TCFLAGS_HAVE_PG_TYPE_DATA flag previously. */ if (hadPgTypeData) @@ -2576,8 +2579,17 @@ TypeCacheOpcCallback(Datum arg, int cacheid, uint32 hashvalue) hash_seq_init(&status, TypeCacheHash); while ((typentry = (TypeCacheEntry *) hash_seq_search(&status)) != NULL) { + bool hadOpclass = (typentry->flags & TCFLAGS_OPERATOR_FLAGS); + /* Reset equality/comparison/hashing validity information */ typentry->flags &= ~TCFLAGS_OPERATOR_FLAGS; + + /* + * Call delete_rel_type_cache_if_needed() if we actually cleared some + * of TCFLAGS_OPERATOR_FLAGS. + */ + if (hadOpclass) + delete_rel_type_cache_if_needed(typentry); } } diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 8a6b6905079d4..47af743990fe9 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -67,6 +67,7 @@ #endif #include "access/xact.h" +#include "common/ip.h" #include "libpq/libpq.h" #include "libpq/pqformat.h" #include "mb/pg_wchar.h" @@ -1589,23 +1590,6 @@ geterrcode(void) return edata->sqlerrcode; } -/* - * geterrlevel --- return the currently set error level - * - * This is only intended for use in error callback subroutines, since there - * is no other place outside elog.c where the concept is meaningful. - */ -int -geterrlevel(void) -{ - ErrorData *edata = &errordata[errordata_stack_depth]; - - /* we don't bother incrementing recursion_depth */ - CHECK_STACK_DEPTH(); - - return edata->elevel; -} - /* * geterrposition --- return the currently set error position (0 if none) * @@ -3084,6 +3068,38 @@ log_status_format(StringInfo buf, const char *format, ErrorData *edata) appendStringInfoSpaces(buf, padding > 0 ? padding : -padding); break; + case 'L': + { + const char *local_host; + + if (MyProcPort) + { + if (MyProcPort->local_host[0] == '\0') + { + /* + * First time through: cache the lookup, since it + * might not have trivial cost. + */ + (void) pg_getnameinfo_all(&MyProcPort->laddr.addr, + MyProcPort->laddr.salen, + MyProcPort->local_host, + sizeof(MyProcPort->local_host), + NULL, 0, + NI_NUMERICHOST | NI_NUMERICSERV); + } + local_host = MyProcPort->local_host; + } + else + { + /* Background process, or connection not yet made */ + local_host = "[none]"; + } + if (padding != 0) + appendStringInfo(buf, "%*s", padding, local_host); + else + appendStringInfoString(buf, local_host); + } + break; case 'r': if (MyProcPort && MyProcPort->remote_host) { diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c index 3f25929f2d811..1ad155d446e51 100644 --- a/src/backend/utils/hash/dynahash.c +++ b/src/backend/utils/hash/dynahash.c @@ -390,7 +390,8 @@ hash_create(const char *tabname, long nelem, const HASHCTL *info, int flags) } /* Initialize the hash header, plus a copy of the table name */ - hashp = (HTAB *) DynaHashAlloc(sizeof(HTAB) + strlen(tabname) + 1); + hashp = (HTAB *) MemoryContextAlloc(CurrentDynaHashCxt, + sizeof(HTAB) + strlen(tabname) + 1); MemSet(hashp, 0, sizeof(HTAB)); hashp->tabname = (char *) (hashp + 1); diff --git a/src/backend/utils/init/globals.c b/src/backend/utils/init/globals.c index b844f9fdaef54..d31cb45a0588a 100644 --- a/src/backend/utils/init/globals.c +++ b/src/backend/utils/init/globals.c @@ -24,6 +24,7 @@ #include "miscadmin.h" #include "postmaster/postmaster.h" #include "storage/procnumber.h" +#include "storage/procsignal.h" ProtocolVersion FrontendProtocol; @@ -48,8 +49,8 @@ pg_time_t MyStartTime; TimestampTz MyStartTimestamp; struct ClientSocket *MyClientSocket; struct Port *MyProcPort; -bool MyCancelKeyValid = false; -int32 MyCancelKey = 0; +uint8 MyCancelKey[MAX_CANCEL_KEY_LENGTH]; +int MyCancelKeyLength = 0; int MyPMChildSlot; /* diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 7958ea11b7354..c86ceefda940b 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -575,13 +575,6 @@ InitializeMaxBackends(void) * * This must be called after modules have had the chance to alter GUCs in * shared_preload_libraries and before shared memory size is determined. - * - * The default max_locks_per_xact=64 means 4 groups by default. - * - * We allow anything between 1 and 1024 groups, with the usual power-of-2 - * logic. The 1 is the "old" size with only 16 slots, 1024 is an arbitrary - * limit (matching max_locks_per_xact = 16k). Values over 1024 are unlikely - * to be beneficial - there are bottlenecks we'll hit way before that. */ void InitializeFastPathLocks(void) @@ -589,19 +582,22 @@ InitializeFastPathLocks(void) /* Should be initialized only once. */ Assert(FastPathLockGroupsPerBackend == 0); - /* we need at least one group */ - FastPathLockGroupsPerBackend = 1; - - while (FastPathLockGroupsPerBackend < FP_LOCK_GROUPS_PER_BACKEND_MAX) - { - /* stop once we exceed max_locks_per_xact */ - if (FastPathLockSlotsPerBackend() >= max_locks_per_xact) - break; - - FastPathLockGroupsPerBackend *= 2; - } + /* + * Based on the max_locks_per_transaction GUC, as that's a good indicator + * of the expected number of locks, figure out the value for + * FastPathLockGroupsPerBackend. This must be a power-of-two. We cap the + * value at FP_LOCK_GROUPS_PER_BACKEND_MAX and insist the value is at + * least 1. + * + * The default max_locks_per_transaction = 64 means 4 groups by default. + */ + FastPathLockGroupsPerBackend = + Max(Min(pg_nextpower2_32(max_locks_per_xact) / FP_LOCK_SLOTS_PER_GROUP, + FP_LOCK_GROUPS_PER_BACKEND_MAX), 1); - Assert(FastPathLockGroupsPerBackend <= FP_LOCK_GROUPS_PER_BACKEND_MAX); + /* Validate we did get a power-of-two */ + Assert(FastPathLockGroupsPerBackend == + pg_nextpower2_32(FastPathLockGroupsPerBackend)); } /* @@ -744,7 +740,7 @@ InitPostgres(const char *in_dbname, Oid dboid, if (!bootstrap) { pgstat_bestart_initial(); - INJECTION_POINT("init-pre-auth"); + INJECTION_POINT("init-pre-auth", NULL); } /* @@ -753,7 +749,7 @@ InitPostgres(const char *in_dbname, Oid dboid, */ SharedInvalBackendInit(false); - ProcSignalInit(MyCancelKeyValid, MyCancelKey); + ProcSignalInit(MyCancelKey, MyCancelKeyLength); /* * Also set up timeout handlers needed for backend operation. We need diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 885dc11d51d46..886ecbad87183 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -39,6 +39,7 @@ #include "mb/pg_wchar.h" #include "utils/fmgrprotos.h" #include "utils/memutils.h" +#include "utils/relcache.h" #include "varatt.h" /* @@ -310,7 +311,7 @@ InitializeClientEncoding(void) { Oid utf8_to_server_proc; - Assert(IsTransactionState()); + AssertCouldGetRelation(); utf8_to_server_proc = FindDefaultConversionProc(PG_UTF8, current_server_encoding); @@ -1087,7 +1088,7 @@ pg_mbcliplen(const char *mbstr, int len, int limit) } /* - * pg_mbcliplen with specified encoding + * pg_mbcliplen with specified encoding; string must be valid in encoding */ int pg_encoding_mbcliplen(int encoding, const char *mbstr, @@ -1692,12 +1693,12 @@ check_encoding_conversion_args(int src_encoding, * report_invalid_encoding: complain about invalid multibyte character * * note: len is remaining length of string, not length of character; - * len must be greater than zero, as we always examine the first byte. + * len must be greater than zero (or we'd neglect initializing "buf"). */ void report_invalid_encoding(int encoding, const char *mbstr, int len) { - int l = pg_encoding_mblen(encoding, mbstr); + int l = pg_encoding_mblen_or_incomplete(encoding, mbstr, len); char buf[8 * 5 + 1]; char *p = buf; int j, @@ -1724,18 +1725,26 @@ report_invalid_encoding(int encoding, const char *mbstr, int len) * report_untranslatable_char: complain about untranslatable character * * note: len is remaining length of string, not length of character; - * len must be greater than zero, as we always examine the first byte. + * len must be greater than zero (or we'd neglect initializing "buf"). */ void report_untranslatable_char(int src_encoding, int dest_encoding, const char *mbstr, int len) { - int l = pg_encoding_mblen(src_encoding, mbstr); + int l; char buf[8 * 5 + 1]; char *p = buf; int j, jlimit; + /* + * We probably could use plain pg_encoding_mblen(), because + * gb18030_to_utf8() verifies before it converts. All conversions should. + * For src_encoding!=GB18030, len>0 meets pg_encoding_mblen() needs. Even + * so, be defensive, since a buggy conversion might pass invalid data. + * This is not a performance-critical path. + */ + l = pg_encoding_mblen_or_incomplete(src_encoding, mbstr, len); jlimit = Min(l, len); jlimit = Min(jlimit, 8); /* prevent buffer overrun */ diff --git a/src/backend/utils/misc/guc_tables.c b/src/backend/utils/misc/guc_tables.c index 4eaeca89f2c7a..2f8cbd8675998 100644 --- a/src/backend/utils/misc/guc_tables.c +++ b/src/backend/utils/misc/guc_tables.c @@ -20,6 +20,9 @@ */ #include "postgres.h" +#ifdef HAVE_COPYFILE_H +#include +#endif #include #include #ifdef HAVE_SYSLOG @@ -76,6 +79,7 @@ #include "storage/aio.h" #include "storage/bufmgr.h" #include "storage/bufpage.h" +#include "storage/copydir.h" #include "storage/io_worker.h" #include "storage/large_object.h" #include "storage/pg_shmem.h" @@ -479,6 +483,14 @@ static const struct config_enum_entry wal_compression_options[] = { {NULL, 0, false} }; +static const struct config_enum_entry file_copy_method_options[] = { + {"copy", FILE_COPY_METHOD_COPY, false}, +#if defined(HAVE_COPYFILE) && defined(COPYFILE_CLONE_FORCE) || defined(HAVE_COPY_FILE_RANGE) + {"clone", FILE_COPY_METHOD_CLONE, false}, +#endif + {NULL, 0, false} +}; + /* * Options for enum values stored in other modules */ @@ -566,7 +578,7 @@ static int ssl_renegotiation_limit; */ int huge_pages = HUGE_PAGES_TRY; int huge_page_size; -static int huge_pages_status = HUGE_PAGES_UNKNOWN; +int huge_pages_status = HUGE_PAGES_UNKNOWN; /* * These variables are all dummies that don't do anything, except in some @@ -998,7 +1010,7 @@ struct config_bool ConfigureNamesBool[] = {"enable_self_join_elimination", PGC_USERSET, QUERY_TUNING_METHOD, gettext_noop("Enables removal of unique self-joins."), NULL, - GUC_EXPLAIN | GUC_NOT_IN_SAMPLE + GUC_EXPLAIN }, &enable_self_join_elimination, true, @@ -3275,7 +3287,7 @@ struct config_int ConfigureNamesInt[] = NULL, GUC_UNIT_BLOCKS }, - &io_combine_limit, + &io_combine_limit_guc, DEFAULT_IO_COMBINE_LIMIT, 1, MAX_IO_COMBINE_LIMIT, NULL, assign_io_combine_limit, NULL @@ -5242,6 +5254,16 @@ struct config_enum ConfigureNamesEnum[] = NULL, NULL, NULL }, + { + {"file_copy_method", PGC_USERSET, RESOURCES_DISK, + gettext_noop("Selects the file copy method."), + NULL + }, + &file_copy_method, + FILE_COPY_METHOD_COPY, file_copy_method_options, + NULL, NULL, NULL + }, + { {"wal_sync_method", PGC_SIGHUP, WAL_SETTINGS, gettext_noop("Selects the method used for forcing WAL updates to disk."), diff --git a/src/backend/utils/misc/injection_point.c b/src/backend/utils/misc/injection_point.c index 97ab851f0a632..f58ebc8ee522d 100644 --- a/src/backend/utils/misc/injection_point.c +++ b/src/backend/utils/misc/injection_point.c @@ -541,14 +541,14 @@ InjectionPointLoad(const char *name) * Execute an injection point, if defined. */ void -InjectionPointRun(const char *name) +InjectionPointRun(const char *name, void *arg) { #ifdef USE_INJECTION_POINTS InjectionPointCacheEntry *cache_entry; cache_entry = InjectionPointCacheRefresh(name); if (cache_entry) - cache_entry->callback(name, cache_entry->private_data); + cache_entry->callback(name, cache_entry->private_data, arg); #else elog(ERROR, "Injection points are not supported by this build"); #endif @@ -558,14 +558,14 @@ InjectionPointRun(const char *name) * Execute an injection point directly from the cache, if defined. */ void -InjectionPointCached(const char *name) +InjectionPointCached(const char *name, void *arg) { #ifdef USE_INJECTION_POINTS InjectionPointCacheEntry *cache_entry; cache_entry = injection_point_cache_get(name); if (cache_entry) - cache_entry->callback(name, cache_entry->private_data); + cache_entry->callback(name, cache_entry->private_data, arg); #else elog(ERROR, "Injection points are not supported by this build"); #endif diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index ff56a1f0732c5..63f991c4f9305 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -97,6 +97,7 @@ #password_encryption = scram-sha-256 # scram-sha-256 or md5 #scram_iterations = 4096 #md5_password_warnings = on +#oauth_validator_libraries = '' # comma-separated list of trusted validator modules # GSSAPI using Kerberos #krb_server_keyfile = 'FILE:${sysconfdir}/krb5.keytab' @@ -121,9 +122,6 @@ #ssl_passphrase_command = '' #ssl_passphrase_command_supports_reload = off -# OAuth -#oauth_validator_libraries = '' # comma-separated list of trusted validator modules - #------------------------------------------------------------------------------ # RESOURCE USAGE (except WAL) @@ -183,6 +181,10 @@ #max_notify_queue_pages = 1048576 # limits the number of SLRU pages allocated # for NOTIFY / LISTEN queue +#file_copy_method = copy # the default is the first option + # copy + # clone (if system support is available) + # - Kernel Resources - #max_files_per_process = 1000 # min 64 @@ -427,6 +429,7 @@ #enable_tidscan = on #enable_group_by_reordering = on #enable_distinct_reordering = on +#enable_self_join_elimination = on # - Planner Cost Constants - @@ -603,6 +606,7 @@ # %d = database name # %r = remote host and port # %h = remote host + # %L = local address # %b = backend type # %p = process ID # %P = process ID of parallel group leader diff --git a/src/backend/utils/mmgr/alignedalloc.c b/src/backend/utils/mmgr/alignedalloc.c index 85aee389d6b4c..7eea695de62c5 100644 --- a/src/backend/utils/mmgr/alignedalloc.c +++ b/src/backend/utils/mmgr/alignedalloc.c @@ -45,6 +45,7 @@ AlignedAllocFree(void *pointer) GetMemoryChunkContext(unaligned)->name, chunk); #endif + /* Recursively pfree the unaligned chunk */ pfree(unaligned); } @@ -96,18 +97,32 @@ AlignedAllocRealloc(void *pointer, Size size, int flags) Assert(old_size >= redirchunk->requested_size); #endif + /* + * To keep things simple, we always allocate a new aligned chunk and copy + * data into it. Because of the above inaccuracy, this may end in copying + * more data than was in the original allocation request size, but that + * should be OK. + */ ctx = GetMemoryChunkContext(unaligned); newptr = MemoryContextAllocAligned(ctx, size, alignto, flags); - /* - * We may memcpy beyond the end of the original allocation request size, - * so we must mark the entire allocation as defined. - */ - if (likely(newptr != NULL)) + /* Cope cleanly with OOM */ + if (unlikely(newptr == NULL)) { - VALGRIND_MAKE_MEM_DEFINED(pointer, old_size); - memcpy(newptr, pointer, Min(size, old_size)); + VALGRIND_MAKE_MEM_NOACCESS(redirchunk, sizeof(MemoryChunk)); + return MemoryContextAllocationFailure(ctx, size, flags); } + + /* + * We may memcpy more than the original allocation request size, which + * would result in trying to copy trailing bytes that the original + * MemoryContextAllocAligned call marked NOACCESS. So we must mark the + * entire old_size as defined. That's slightly annoying, but probably not + * worth improving. + */ + VALGRIND_MAKE_MEM_DEFINED(pointer, old_size); + memcpy(newptr, pointer, Min(size, old_size)); + pfree(unaligned); return newptr; diff --git a/src/backend/utils/mmgr/bump.c b/src/backend/utils/mmgr/bump.c index 434230fd95b92..f7a37d1b3e86c 100644 --- a/src/backend/utils/mmgr/bump.c +++ b/src/backend/utils/mmgr/bump.c @@ -316,7 +316,7 @@ BumpAllocLarge(MemoryContext context, Size size, int flags) block = (BumpBlock *) malloc(blksize); if (block == NULL) - return NULL; + return MemoryContextAllocationFailure(context, size, flags); context->mem_allocated += blksize; diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c index d98ae9db6bece..15fa4d0a55eeb 100644 --- a/src/backend/utils/mmgr/mcxt.c +++ b/src/backend/utils/mmgr/mcxt.c @@ -834,7 +834,7 @@ MemoryContextStatsDetail(MemoryContext context, memset(&grand_totals, 0, sizeof(grand_totals)); - MemoryContextStatsInternal(context, 0, max_level, max_children, + MemoryContextStatsInternal(context, 1, max_level, max_children, &grand_totals, print_to_stderr); if (print_to_stderr) @@ -899,7 +899,7 @@ MemoryContextStatsInternal(MemoryContext context, int level, */ child = context->firstchild; ichild = 0; - if (level < max_level && !stack_is_too_deep()) + if (level <= max_level && !stack_is_too_deep()) { for (; child != NULL && ichild < max_children; child = child->nextchild, ichild++) @@ -928,7 +928,7 @@ MemoryContextStatsInternal(MemoryContext context, int level, if (print_to_stderr) { - for (int i = 0; i <= level; i++) + for (int i = 0; i < level; i++) fprintf(stderr, " "); fprintf(stderr, "%d more child contexts containing %zu total in %zu blocks; %zu free (%zu chunks); %zu used\n", @@ -1029,7 +1029,7 @@ MemoryContextStatsPrint(MemoryContext context, void *passthru, if (print_to_stderr) { - for (i = 0; i < level; i++) + for (i = 1; i < level; i++) fprintf(stderr, " "); fprintf(stderr, "%s: %s%s\n", name, stats_string, truncated_ident); } @@ -1106,6 +1106,10 @@ MemoryContextCreate(MemoryContext node, /* Creating new memory contexts is not allowed in a critical section */ Assert(CritSectionCount == 0); + /* Validate parent, to help prevent crazy context linkages */ + Assert(parent == NULL || MemoryContextIsValid(parent)); + Assert(node != parent); + /* Initialize all standard fields of memory context header */ node->type = tag; node->isReset = true; diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c index e3526e780649f..0be1c2b0fff85 100644 --- a/src/backend/utils/mmgr/portalmem.c +++ b/src/backend/utils/mmgr/portalmem.c @@ -284,8 +284,7 @@ PortalDefineQuery(Portal portal, const char *sourceText, CommandTag commandTag, List *stmts, - CachedPlan *cplan, - CachedPlanSource *plansource) + CachedPlan *cplan) { Assert(PortalIsValid(portal)); Assert(portal->status == PORTAL_NEW); @@ -300,7 +299,6 @@ PortalDefineQuery(Portal portal, portal->commandTag = commandTag; portal->stmts = stmts; portal->cplan = cplan; - portal->plansource = plansource; portal->status = PORTAL_DEFINED; } diff --git a/src/backend/utils/sort/sortsupport.c b/src/backend/utils/sort/sortsupport.c index 0b4f08ed2ec50..e0f500b9aa29c 100644 --- a/src/backend/utils/sort/sortsupport.c +++ b/src/backend/utils/sort/sortsupport.c @@ -135,16 +135,16 @@ PrepareSortSupportFromOrderingOp(Oid orderingOp, SortSupport ssup) { Oid opfamily; Oid opcintype; - int16 strategy; + CompareType cmptype; Assert(ssup->comparator == NULL); /* Find the operator in pg_amop */ if (!get_ordering_op_properties(orderingOp, &opfamily, &opcintype, - &strategy)) + &cmptype)) elog(ERROR, "operator %u is not a valid ordering operator", orderingOp); - ssup->ssup_reverse = (strategy == BTGreaterStrategyNumber); + ssup->ssup_reverse = (cmptype == COMPARE_GT); FinishSortSupportFunction(opfamily, opcintype, ssup); } diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index c17fda2bc81d0..62bbd08d9f658 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -61,7 +61,7 @@ #include #ifdef HAVE_SHM_OPEN -#include "sys/mman.h" +#include #endif #include "access/xlog_internal.h" @@ -1128,15 +1128,14 @@ test_config_settings(void) * for a given max_connections value. Note that it has been carefully * crafted to provide specific values for the associated values in * trial_conns. We want it to return autovacuum_worker_slots's initial - * default value (16) for the maximum value in trial_conns (100), and we - * want it to return close to the minimum value we'd consider (3, which is - * the default of autovacuum_max_workers) for the minimum value in - * trial_conns (25). + * default value (16) for the maximum value in trial_conns[] (100), while + * it mustn't return less than the default value of autovacuum_max_workers + * (3) for the minimum value in trial_conns[]. */ #define AV_SLOTS_FOR_CONNS(nconns) ((nconns) / 6) static const int trial_conns[] = { - 100, 50, 40, 30, 25 + 100, 50, 40, 30, 20 }; static const int trial_bufs[] = { 16384, 8192, 4096, 3584, 3072, 2560, 2048, 1536, @@ -1186,13 +1185,6 @@ test_config_settings(void) printf("%d\n", n_connections); - /* - * We chose the default for autovacuum_worker_slots during the - * max_connections tests above, but we print a progress message anyway. - */ - printf(_("selecting default \"autovacuum_worker_slots\" ... %d\n"), - n_av_slots); - printf(_("selecting default \"shared_buffers\" ... ")); fflush(stdout); @@ -1620,9 +1612,9 @@ bootstrap_template1(void) printfPQExpBuffer(&cmd, "\"%s\" --boot %s %s", backend_exec, boot_options, extra_options); appendPQExpBuffer(&cmd, " -X %d", wal_segment_size_mb * (1024 * 1024)); if (data_checksums) - appendPQExpBuffer(&cmd, " -k"); + appendPQExpBufferStr(&cmd, " -k"); if (debug) - appendPQExpBuffer(&cmd, " -d 5"); + appendPQExpBufferStr(&cmd, " -d 5"); PG_CMD_OPEN(cmd.data); diff --git a/src/bin/initdb/po/de.po b/src/bin/initdb/po/de.po index 5d59324b55797..43ea62f18273a 100644 --- a/src/bin/initdb/po/de.po +++ b/src/bin/initdb/po/de.po @@ -1,14 +1,14 @@ # German message translation file for initdb. -# Peter Eisentraut , 2003 - 2024. +# Peter Eisentraut , 2003 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-19 21:51+0000\n" -"PO-Revision-Date: 2024-06-20 10:36+0200\n" +"POT-Creation-Date: 2025-04-03 12:22+0000\n" +"PO-Revision-Date: 2025-04-03 16:13+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,22 +16,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -56,28 +56,28 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "konnte Pfad »%s« nicht in absolute Form auflösen: %m" -#: ../../common/exec.c:382 initdb.c:695 +#: ../../common/exec.c:363 initdb.c:753 #, c-format msgid "could not execute command \"%s\": %m" msgstr "konnte Befehl »%s« nicht ausführen: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "konnte nicht von Befehl »%s« lesen: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "Befehl »%s« gab keine Daten zurück" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 -#: initdb.c:353 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 +#: initdb.c:375 initdb.c:411 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -93,46 +93,46 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -241,12 +241,12 @@ msgstr "%s muss im Bereich %d..%d sein" msgid "unrecognized sync method: %s" msgstr "unbekannte Sync-Methode: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" @@ -261,274 +261,294 @@ msgstr "konnte Junction für »%s« nicht erzeugen: %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "konnte Junction für »%s« nicht ermitteln: %s\n" -#: initdb.c:627 initdb.c:1619 +#: initdb.c:372 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale() fehlgeschlagen" + +#: initdb.c:379 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale() fehlgeschlagen" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale" +msgstr "konnte alte Locale nicht wiederherstellen" + +#: initdb.c:396 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "konnte alte Locale »%s« nicht wiederherstellen" + +#: initdb.c:685 initdb.c:1700 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: initdb.c:671 initdb.c:975 initdb.c:995 +#: initdb.c:729 initdb.c:1035 initdb.c:1055 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "konnte Datei »%s« nicht zum Schreiben öffnen: %m" -#: initdb.c:675 initdb.c:978 initdb.c:997 +#: initdb.c:733 initdb.c:1038 initdb.c:1057 #, c-format msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: initdb.c:679 +#: initdb.c:737 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" -#: initdb.c:713 +#: initdb.c:771 #, c-format msgid "removing data directory \"%s\"" msgstr "entferne Datenverzeichnis »%s«" -#: initdb.c:715 +#: initdb.c:773 #, c-format msgid "failed to remove data directory" msgstr "konnte Datenverzeichnis nicht entfernen" -#: initdb.c:719 +#: initdb.c:777 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "entferne Inhalt des Datenverzeichnisses »%s«" -#: initdb.c:722 +#: initdb.c:780 #, c-format msgid "failed to remove contents of data directory" msgstr "konnte Inhalt des Datenverzeichnisses nicht entfernen" -#: initdb.c:727 +#: initdb.c:785 #, c-format msgid "removing WAL directory \"%s\"" msgstr "entferne WAL-Verzeichnis »%s«" -#: initdb.c:729 +#: initdb.c:787 #, c-format msgid "failed to remove WAL directory" msgstr "konnte WAL-Verzeichnis nicht entfernen" -#: initdb.c:733 +#: initdb.c:791 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "entferne Inhalt des WAL-Verzeichnisses »%s«" -#: initdb.c:735 +#: initdb.c:793 #, c-format msgid "failed to remove contents of WAL directory" msgstr "konnte Inhalt des WAL-Verzeichnisses nicht entfernen" -#: initdb.c:742 +#: initdb.c:800 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "Datenverzeichnis »%s« wurde auf Anwenderwunsch nicht entfernt" -#: initdb.c:746 +#: initdb.c:804 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "WAL-Verzeichnis »%s« wurde auf Anwenderwunsch nicht entfernt" -#: initdb.c:764 +#: initdb.c:822 #, c-format msgid "cannot be run as root" msgstr "kann nicht als root ausgeführt werden" -#: initdb.c:765 +#: initdb.c:823 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "Bitte loggen Sie sich (z.B. mit »su«) als der (unprivilegierte) Benutzer ein, der Eigentümer des Serverprozesses sein soll." -#: initdb.c:797 +#: initdb.c:855 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "»%s« ist keine gültige Serverkodierung" -#: initdb.c:941 +#: initdb.c:1001 #, c-format msgid "file \"%s\" does not exist" msgstr "Datei »%s« existiert nicht" -#: initdb.c:942 initdb.c:947 initdb.c:954 +#: initdb.c:1002 initdb.c:1007 initdb.c:1014 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "Das könnte bedeuten, dass Ihre Installation fehlerhaft ist oder dass Sie das falsche Verzeichnis mit der Kommandozeilenoption -L angegeben haben." -#: initdb.c:946 +#: initdb.c:1006 #, c-format msgid "could not access file \"%s\": %m" msgstr "konnte nicht auf Datei »%s« zugreifen: %m" -#: initdb.c:953 +#: initdb.c:1013 #, c-format msgid "file \"%s\" is not a regular file" msgstr "Datei »%s« ist keine normale Datei" -#: initdb.c:1086 +#: initdb.c:1158 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "wähle Implementierung von dynamischem Shared Memory ... " -#: initdb.c:1095 +#: initdb.c:1168 #, c-format msgid "selecting default \"max_connections\" ... " msgstr "wähle Vorgabewert für »max_connections« ... " -#: initdb.c:1115 +#: initdb.c:1193 +#, c-format +msgid "selecting default \"autovacuum_worker_slots\" ... %d\n" +msgstr "wähle Vorgabewert für »autovacuum_worker_slots« ... %d\n" + +#: initdb.c:1196 #, c-format msgid "selecting default \"shared_buffers\" ... " msgstr "wähle Vorgabewert für »shared_buffers« ... " -#: initdb.c:1138 +#: initdb.c:1219 #, c-format msgid "selecting default time zone ... " msgstr "wähle Vorgabewert für Zeitzone ... " -#: initdb.c:1217 +#: initdb.c:1299 msgid "creating configuration files ... " msgstr "erzeuge Konfigurationsdateien ... " -#: initdb.c:1370 initdb.c:1384 initdb.c:1451 initdb.c:1462 +#: initdb.c:1451 initdb.c:1465 initdb.c:1532 initdb.c:1543 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "konnte Zugriffsrechte von »%s« nicht ändern: %m" -#: initdb.c:1481 +#: initdb.c:1562 #, c-format msgid "running bootstrap script ... " msgstr "führe Bootstrap-Skript aus ... " -#: initdb.c:1493 +#: initdb.c:1574 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "Eingabedatei »%s« gehört nicht zu PostgreSQL %s" -#: initdb.c:1495 +#: initdb.c:1576 #, c-format msgid "Specify the correct path using the option -L." msgstr "Geben Sie den korrekten Pfad mit der Option -L an." -#: initdb.c:1597 +#: initdb.c:1678 msgid "Enter new superuser password: " msgstr "Geben Sie das neue Superuser-Passwort ein: " -#: initdb.c:1598 +#: initdb.c:1679 msgid "Enter it again: " msgstr "Geben Sie es noch einmal ein: " -#: initdb.c:1601 +#: initdb.c:1682 #, c-format msgid "Passwords didn't match.\n" msgstr "Passwörter stimmten nicht überein.\n" -#: initdb.c:1625 +#: initdb.c:1706 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "konnte Passwort nicht aus Datei »%s« lesen: %m" -#: initdb.c:1628 +#: initdb.c:1709 #, c-format msgid "password file \"%s\" is empty" msgstr "Passwortdatei »%s« ist leer" -#: initdb.c:2040 +#: initdb.c:2121 #, c-format msgid "caught signal\n" msgstr "Signal abgefangen\n" -#: initdb.c:2046 +#: initdb.c:2127 #, c-format msgid "could not write to child process: %s\n" msgstr "konnte nicht an Kindprozess schreiben: %s\n" -#: initdb.c:2054 +#: initdb.c:2135 #, c-format msgid "ok\n" msgstr "ok\n" -#: initdb.c:2143 -#, c-format -msgid "setlocale() failed" -msgstr "setlocale() fehlgeschlagen" - -#: initdb.c:2161 +#: initdb.c:2217 initdb.c:2263 #, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "konnte alte Locale »%s« nicht wiederherstellen" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "Locale-Name »%s« enthält Nicht-ASCII-Zeichen" -#: initdb.c:2169 +#: initdb.c:2243 #, c-format msgid "invalid locale name \"%s\"" msgstr "ungültiger Locale-Name: »%s«" -#: initdb.c:2170 +#: initdb.c:2244 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Wenn der Locale-Name nur für ICU gültig ist, verwenden Sie --icu-locale." -#: initdb.c:2183 +#: initdb.c:2257 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "ungültige Locale-Einstellungen; prüfen Sie die Umgebungsvariablen LANG und LC_*" -#: initdb.c:2209 initdb.c:2233 +#: initdb.c:2288 initdb.c:2312 #, c-format msgid "encoding mismatch" msgstr "unpassende Kodierungen" -#: initdb.c:2210 +#: initdb.c:2289 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "Die von Ihnen gewählte Kodierung (%s) und die von der gewählten Locale verwendete Kodierung (%s) passen nicht zu einander. Das würde in verschiedenen Zeichenkettenfunktionen zu Fehlverhalten führen." -#: initdb.c:2215 initdb.c:2236 +#: initdb.c:2294 initdb.c:2315 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "Starten Sie %s erneut und geben Sie entweder keine Kodierung explizit an oder wählen Sie eine passende Kombination." -#: initdb.c:2234 +#: initdb.c:2313 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "Die von Ihnen gewählte Kodierung (%s) wird vom ICU-Provider nicht unterstützt." -#: initdb.c:2285 +#: initdb.c:2364 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "konnte Locale-Namen »%s« nicht in Sprach-Tag umwandeln: %s" -#: initdb.c:2291 initdb.c:2343 initdb.c:2435 +#: initdb.c:2370 initdb.c:2422 initdb.c:2516 #, c-format msgid "ICU is not supported in this build" msgstr "ICU wird in dieser Installation nicht unterstützt" -#: initdb.c:2314 +#: initdb.c:2393 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "konnte Sprache nicht aus Locale »%s« ermitteln: %s" -#: initdb.c:2340 +#: initdb.c:2419 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "Locale »%s« hat unbekannte Sprache »%s«" -#: initdb.c:2401 +#: initdb.c:2480 #, c-format msgid "locale must be specified if provider is %s" msgstr "Locale muss angegeben werden, wenn der Provider %s ist" -#: initdb.c:2412 +#: initdb.c:2493 #, c-format msgid "invalid locale name \"%s\" for builtin provider" msgstr "ungültiger Locale-Name »%s« für Provider »builtin«" -#: initdb.c:2423 +#: initdb.c:2504 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Verwende Sprach-Tag »%s« für ICU-Locale »%s«.\n" -#: initdb.c:2446 +#: initdb.c:2527 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -537,17 +557,17 @@ msgstr "" "%s initialisiert einen PostgreSQL-Datenbankcluster.\n" "\n" -#: initdb.c:2447 +#: initdb.c:2528 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: initdb.c:2448 +#: initdb.c:2529 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATENVERZEICHNIS]\n" -#: initdb.c:2449 +#: initdb.c:2530 #, c-format msgid "" "\n" @@ -556,65 +576,65 @@ msgstr "" "\n" "Optionen:\n" -#: initdb.c:2450 +#: initdb.c:2531 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, --auth=METHODE vorgegebene Authentifizierungsmethode für lokale Verbindungen\n" -#: initdb.c:2451 +#: initdb.c:2532 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr "" " --auth-host=METHODE vorgegebene Authentifizierungsmethode für lokale\n" " TCP/IP-Verbindungen\n" -#: initdb.c:2452 +#: initdb.c:2533 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr "" " --auth-local=METHODE vorgegebene Authentifizierungsmethode für Verbindungen\n" " auf lokalen Sockets\n" -#: initdb.c:2453 +#: initdb.c:2534 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATENVERZ Datenverzeichnis für diesen Datenbankcluster\n" -#: initdb.c:2454 +#: initdb.c:2535 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=KODIERUNG setze Standardkodierung für neue Datenbanken\n" -#: initdb.c:2455 +#: initdb.c:2536 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr "" " -g, --allow-group-access Lese- und Ausführungsrechte am Datenverzeichnis\n" " für Gruppe setzen\n" -#: initdb.c:2456 +#: initdb.c:2537 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOCALE setze ICU-Locale-ID für neue Datenbanken\n" -#: initdb.c:2457 +#: initdb.c:2538 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" msgstr "" " --icu-rules=REGELN setze zusätzliche ICU-Sortierfolgenregeln für neue\n" " Datenbanken\n" -#: initdb.c:2458 +#: initdb.c:2539 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums Datenseitenprüfsummen verwenden\n" -#: initdb.c:2459 +#: initdb.c:2540 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=LOCALE setze Standardlocale für neue Datenbanken\n" -#: initdb.c:2460 +#: initdb.c:2541 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -628,12 +648,12 @@ msgstr "" " für neue Datenbanken (Voreinstellung aus der\n" " Umgebung entnommen)\n" -#: initdb.c:2464 +#: initdb.c:2545 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale entspricht --locale=C\n" -#: initdb.c:2465 +#: initdb.c:2546 #, c-format msgid "" " --builtin-locale=LOCALE\n" @@ -642,7 +662,7 @@ msgstr "" " --builtin-locale=LOCALE\n" " setze Locale für Provider »builtin« für neue Datenbanken\n" -#: initdb.c:2467 +#: initdb.c:2548 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -651,12 +671,17 @@ msgstr "" " --locale-provider={builtin|libc|icu}\n" " setze Standard-Locale-Provider für neue Datenbanken\n" -#: initdb.c:2469 +#: initdb.c:2550 +#, c-format +msgid " --no-data-checksums do not use data page checksums\n" +msgstr " --no-data-checksums Datenseitenprüfsummen nicht verwenden\n" + +#: initdb.c:2551 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=DATEI lese Passwort des neuen Superusers aus Datei\n" -#: initdb.c:2470 +#: initdb.c:2552 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -665,27 +690,27 @@ msgstr "" " -T, --text-search-config=KFG\n" " Standardtextsuchekonfiguration\n" -#: initdb.c:2472 +#: initdb.c:2554 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=NAME Datenbank-Superusername\n" -#: initdb.c:2473 +#: initdb.c:2555 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt frage nach Passwort für neuen Superuser\n" -#: initdb.c:2474 +#: initdb.c:2556 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALVERZ Verzeichnis für das Write-Ahead-Log\n" -#: initdb.c:2475 +#: initdb.c:2557 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=ZAHL Größe eines WAL-Segments, in Megabyte\n" -#: initdb.c:2476 +#: initdb.c:2558 #, c-format msgid "" "\n" @@ -694,63 +719,68 @@ msgstr "" "\n" "Weniger häufig verwendete Optionen:\n" -#: initdb.c:2477 +#: initdb.c:2559 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAME=WERT Voreinstellung für Serverparameter setzen\n" -#: initdb.c:2478 +#: initdb.c:2560 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug erzeuge eine Menge Debug-Ausgaben\n" -#: initdb.c:2479 +#: initdb.c:2561 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches debug_discard_caches=1 setzen\n" -#: initdb.c:2480 +#: initdb.c:2562 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L VERZEICHNIS wo sind die Eingabedateien zu finden\n" -#: initdb.c:2481 +#: initdb.c:2563 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean nach Fehlern nicht aufräumen\n" -#: initdb.c:2482 +#: initdb.c:2564 #, 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" -#: initdb.c:2483 +#: initdb.c:2565 +#, c-format +msgid " --no-sync-data-files do not sync files within database directories\n" +msgstr " --no-sync-data-files Dateien in Datenbankverzeichnissen nicht synchronisieren\n" + +#: initdb.c:2566 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions Anleitung für nächste Schritte nicht ausgeben\n" -#: initdb.c:2484 +#: initdb.c:2567 #, c-format msgid " -s, --show show internal settings, then exit\n" msgstr " -s, --show interne Einstellungen zeigen, dann beenden\n" -#: initdb.c:2485 +#: initdb.c:2568 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHODE Methode zum Synchronisieren vond Dateien auf\n" " Festplatte setzen\n" -#: initdb.c:2486 +#: initdb.c:2569 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr "" " -S, --sync-only nur Datenbankdateien auf Festplatte synchronisieren,\n" " dann beenden\n" -#: initdb.c:2487 +#: initdb.c:2570 #, c-format msgid "" "\n" @@ -759,17 +789,17 @@ msgstr "" "\n" "Weitere Optionen:\n" -#: initdb.c:2488 +#: initdb.c:2571 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: initdb.c:2489 +#: initdb.c:2572 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: initdb.c:2490 +#: initdb.c:2573 #, c-format msgid "" "\n" @@ -780,7 +810,7 @@ msgstr "" "Wenn kein Datenverzeichnis angegeben ist, dann wird die Umgebungsvariable\n" "PGDATA verwendet.\n" -#: initdb.c:2492 +#: initdb.c:2575 #, c-format msgid "" "\n" @@ -789,72 +819,72 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: initdb.c:2493 +#: initdb.c:2576 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: initdb.c:2517 +#: initdb.c:2600 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "ungültige Authentifizierungsmethode »%s« für »%s«-Verbindungen" -#: initdb.c:2531 +#: initdb.c:2614 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "Superuser-Passwort muss angegeben werden um Passwortauthentifizierung einzuschalten" -#: initdb.c:2550 +#: initdb.c:2633 #, c-format msgid "no data directory specified" msgstr "kein Datenverzeichnis angegeben" -#: initdb.c:2551 +#: initdb.c:2634 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "Sie müssen das Verzeichnis angeben, wo dieses Datenbanksystem abgelegt werden soll. Machen Sie dies entweder mit der Kommandozeilenoption -D oder mit der Umgebungsvariable PGDATA." -#: initdb.c:2568 +#: initdb.c:2651 #, c-format msgid "could not set environment" msgstr "konnte Umgebung nicht setzen" -#: initdb.c:2586 +#: initdb.c:2669 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden" -#: initdb.c:2589 +#: initdb.c:2672 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s" -#: initdb.c:2604 +#: initdb.c:2687 #, c-format msgid "input file location must be an absolute path" msgstr "Eingabedatei muss absoluten Pfad haben" -#: initdb.c:2621 +#: initdb.c:2704 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "Der Datenbankcluster wird mit der Locale »%s« initialisiert werden.\n" -#: initdb.c:2624 +#: initdb.c:2707 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "Der Datenbankcluster wird mit dieser Locale-Konfiguration initialisiert werden:\n" -#: initdb.c:2625 +#: initdb.c:2708 #, c-format msgid " locale provider: %s\n" msgstr " Locale-Provider: %s\n" -#: initdb.c:2627 +#: initdb.c:2710 #, c-format msgid " default collation: %s\n" msgstr " Standardsortierfolge: %s\n" -#: initdb.c:2628 +#: initdb.c:2711 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -871,22 +901,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2658 +#: initdb.c:2741 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "konnte keine passende Kodierung für Locale »%s« finden" -#: initdb.c:2660 +#: initdb.c:2743 #, c-format msgid "Rerun %s with the -E option." msgstr "Führen Sie %s erneut mit der Option -E aus." -#: initdb.c:2661 initdb.c:3204 initdb.c:3324 initdb.c:3344 +#: initdb.c:2744 initdb.c:3282 initdb.c:3408 initdb.c:3428 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: initdb.c:2673 +#: initdb.c:2756 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -895,112 +925,112 @@ msgstr "" "Die von der Locale gesetzte Kodierung »%s« ist nicht als serverseitige Kodierung erlaubt.\n" "Die Standarddatenbankkodierung wird stattdessen auf »%s« gesetzt.\n" -#: initdb.c:2678 +#: initdb.c:2761 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "Locale »%s« benötigt nicht unterstützte Kodierung »%s«" -#: initdb.c:2680 +#: initdb.c:2763 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "Kodierung »%s« ist nicht als serverseitige Kodierung erlaubt." -#: initdb.c:2682 +#: initdb.c:2765 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Starten Sie %s erneut mit einer anderen Locale-Wahl." -#: initdb.c:2690 +#: initdb.c:2773 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "Die Standarddatenbankkodierung wurde entsprechend auf »%s« gesetzt.\n" -#: initdb.c:2704 +#: initdb.c:2789 #, c-format msgid "builtin provider locale \"%s\" requires encoding \"%s\"" msgstr "Locale »%s« vom Provider »builtin« benötigt Kodierung »%s«" -#: initdb.c:2766 +#: initdb.c:2851 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "konnte keine passende Textsuchekonfiguration für Locale »%s« finden" -#: initdb.c:2777 +#: initdb.c:2862 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "passende Textsuchekonfiguration für Locale »%s« ist unbekannt" -#: initdb.c:2782 +#: initdb.c:2867 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "angegebene Textsuchekonfiguration »%s« passt möglicherweise nicht zur Locale »%s«" -#: initdb.c:2787 +#: initdb.c:2872 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "Die Standardtextsuchekonfiguration wird auf »%s« gesetzt.\n" -#: initdb.c:2830 initdb.c:2901 +#: initdb.c:2906 initdb.c:2977 #, c-format msgid "creating directory %s ... " msgstr "erzeuge Verzeichnis %s ... " -#: initdb.c:2835 initdb.c:2906 initdb.c:2954 initdb.c:3011 +#: initdb.c:2911 initdb.c:2982 initdb.c:3030 initdb.c:3087 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: initdb.c:2844 initdb.c:2916 +#: initdb.c:2920 initdb.c:2992 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "berichtige Zugriffsrechte des bestehenden Verzeichnisses %s ... " -#: initdb.c:2849 initdb.c:2921 +#: initdb.c:2925 initdb.c:2997 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "konnte Rechte des Verzeichnisses »%s« nicht ändern: %m" -#: initdb.c:2861 initdb.c:2933 +#: initdb.c:2937 initdb.c:3009 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "Verzeichnis »%s« existiert aber ist nicht leer" -#: initdb.c:2865 +#: initdb.c:2941 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "Wenn Sie ein neues Datenbanksystem erzeugen wollen, entfernen oder leeren Sie das Verzeichnis »%s« or führen Sie %s mit einem anderen Argument als »%s« aus." -#: initdb.c:2873 initdb.c:2943 initdb.c:3369 +#: initdb.c:2949 initdb.c:3019 initdb.c:3453 #, c-format msgid "could not access directory \"%s\": %m" msgstr "konnte nicht auf Verzeichnis »%s« zugreifen: %m" -#: initdb.c:2894 +#: initdb.c:2970 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL-Verzeichnis muss absoluten Pfad haben" -#: initdb.c:2937 +#: initdb.c:3013 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "Wenn Sie dort den WAL ablegen wollen, entfernen oder leeren Sie das Verzeichnis »%s«." -#: initdb.c:2947 +#: initdb.c:3023 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht erstellen: %m" -#: initdb.c:2966 +#: initdb.c:3042 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "Es enthält eine unsichtbare Datei (beginnt mit Punkt), vielleicht weil es ein Einhängepunkt ist." -#: initdb.c:2968 +#: initdb.c:3044 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Es enthält ein Verzeichnis »lost+found«, vielleicht weil es ein Einhängepunkt ist." -#: initdb.c:2970 +#: initdb.c:3046 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -1009,65 +1039,65 @@ msgstr "" "Einen Einhängepunkt direkt als Datenverzeichnis zu verwenden wird nicht empfohlen.\n" "Erzeugen Sie ein Unterverzeichnis unter dem Einhängepunkt." -#: initdb.c:2997 +#: initdb.c:3073 #, c-format msgid "creating subdirectories ... " msgstr "erzeuge Unterverzeichnisse ... " -#: initdb.c:3040 +#: initdb.c:3116 msgid "performing post-bootstrap initialization ... " msgstr "führe Post-Bootstrap-Initialisierung durch ... " -#: initdb.c:3203 +#: initdb.c:3281 #, c-format msgid "-c %s requires a value" msgstr "-c %s benötigt einen Wert" -#: initdb.c:3228 +#: initdb.c:3306 #, c-format msgid "Running in debug mode.\n" msgstr "Debug-Modus ist an.\n" -#: initdb.c:3232 +#: initdb.c:3310 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "No-Clean-Modus ist an. Bei Fehlern wird nicht aufgeräumt.\n" -#: initdb.c:3305 +#: initdb.c:3383 #, c-format msgid "unrecognized locale provider: %s" msgstr "unbekannter Locale-Provider: %s" -#: initdb.c:3342 +#: initdb.c:3426 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: initdb.c:3349 initdb.c:3353 initdb.c:3357 +#: initdb.c:3433 initdb.c:3437 initdb.c:3441 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s kann nur angegeben werden, wenn Locale-Provider »%s« gewählt ist" -#: initdb.c:3371 initdb.c:3434 +#: initdb.c:3455 initdb.c:3518 msgid "syncing data to disk ... " msgstr "synchronisiere Daten auf Festplatte ... " -#: initdb.c:3379 +#: initdb.c:3463 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "Passwortprompt und Passwortdatei können nicht zusammen angegeben werden" -#: initdb.c:3390 +#: initdb.c:3474 #, c-format msgid "argument of %s must be a power of two between 1 and 1024" msgstr "Argument von %s muss eine Zweierpotenz zwischen 1 und 1024 sein" -#: initdb.c:3403 +#: initdb.c:3487 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "Superuser-Name »%s« nicht erlaubt; Rollennamen können nicht mit »pg_« anfangen" -#: initdb.c:3405 +#: initdb.c:3489 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1078,17 +1108,17 @@ msgstr "" "»%s« gehören. Diesem Benutzer muss auch der Serverprozess gehören.\n" "\n" -#: initdb.c:3421 +#: initdb.c:3505 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Datenseitenprüfsummen sind eingeschaltet.\n" -#: initdb.c:3423 +#: initdb.c:3507 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Datenseitenprüfsummen sind ausgeschaltet.\n" -#: initdb.c:3440 +#: initdb.c:3524 #, c-format msgid "" "\n" @@ -1099,22 +1129,22 @@ msgstr "" "Synchronisation auf Festplatte übersprungen.\n" "Das Datenverzeichnis könnte verfälscht werden, falls das Betriebssystem abstürzt.\n" -#: initdb.c:3445 +#: initdb.c:3529 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "Authentifizierung für lokale Verbindungen auf »trust« gesetzt" -#: initdb.c:3446 +#: initdb.c:3530 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "Sie können dies ändern, indem Sie pg_hba.conf bearbeiten oder beim nächsten Aufruf von initdb die Option -A, oder --auth-local und --auth-host, verwenden." #. translator: This is a placeholder in a shell command. -#: initdb.c:3476 +#: initdb.c:3560 msgid "logfile" msgstr "logdatei" -#: initdb.c:3478 +#: initdb.c:3562 #, c-format msgid "" "\n" diff --git a/src/bin/initdb/po/es.po b/src/bin/initdb/po/es.po index 449d2020a6ecd..1c12d9c641771 100644 --- a/src/bin/initdb/po/es.po +++ b/src/bin/initdb/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: initdb (PostgreSQL) 16\n" +"Project-Id-Version: initdb (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-03 07:20+0000\n" -"PO-Revision-Date: 2023-10-04 11:47+0200\n" +"POT-Creation-Date: 2025-02-16 19:50+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -40,33 +40,48 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:750 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:372 initdb.c:408 #, c-format msgid "out of memory" msgstr "memoria agotada" @@ -82,35 +97,46 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "no se pudo hacer stat al archivo «%s»: %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "no se pudo leer el directorio «%s»: %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" @@ -150,12 +176,12 @@ msgstr "no se pudo re-ejecutar con el token restringido: código de error %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "no se pudo obtener el código de salida del subproceso: código de error %lu" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "no se pudo eliminar el archivo «%s»: %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "no se pudo eliminar el directorio «%s»: %m" @@ -204,6 +230,31 @@ msgstr "el proceso hijo fue terminado por una señal %d: %s" msgid "child process exited with unrecognized status %d" msgstr "el proceso hijo terminó con código no reconocido %d" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "el valor «%s» no es válido para la opción %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s debe estar en el rango %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + #: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" @@ -214,276 +265,291 @@ msgstr "no se pudo definir un junction para «%s»: %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "no se pudo obtener junction para «%s»: %s\n" -#: initdb.c:618 initdb.c:1613 +#: initdb.c:369 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale() falló" + +#: initdb.c:376 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale() falló" + +#: initdb.c:390 +#, c-format +msgid "failed to restore old locale" +msgstr "no se pudo restaurar la configuración regional anterior" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "no se pudo restaurar la configuración regional anterior «%s»" + +#: initdb.c:682 initdb.c:1674 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "no se pudo abrir archivo «%s» para lectura: %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:726 initdb.c:1030 initdb.c:1050 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "no se pudo abrir el archivo «%s» para escritura: %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:730 initdb.c:1033 initdb.c:1052 #, c-format msgid "could not write file \"%s\": %m" msgstr "no se pudo escribir el archivo «%s»: %m" -#: initdb.c:670 +#: initdb.c:734 #, c-format msgid "could not close file \"%s\": %m" msgstr "no se pudo cerrar el archivo «%s»: %m" -#: initdb.c:686 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "no se pudo ejecutar la orden «%s»: %m" - -#: initdb.c:704 +#: initdb.c:768 #, c-format msgid "removing data directory \"%s\"" msgstr "eliminando el directorio de datos «%s»" -#: initdb.c:706 +#: initdb.c:770 #, c-format msgid "failed to remove data directory" msgstr "no se pudo eliminar el directorio de datos" -#: initdb.c:710 +#: initdb.c:774 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "eliminando el contenido del directorio «%s»" -#: initdb.c:713 +#: initdb.c:777 #, c-format msgid "failed to remove contents of data directory" msgstr "no se pudo eliminar el contenido del directorio de datos" -#: initdb.c:718 +#: initdb.c:782 #, c-format msgid "removing WAL directory \"%s\"" msgstr "eliminando el directorio de WAL «%s»" -#: initdb.c:720 +#: initdb.c:784 #, c-format msgid "failed to remove WAL directory" msgstr "no se pudo eliminar el directorio de WAL" -#: initdb.c:724 +#: initdb.c:788 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "eliminando el contenido del directorio de WAL «%s»" -#: initdb.c:726 +#: initdb.c:790 #, c-format msgid "failed to remove contents of WAL directory" msgstr "no se pudo eliminar el contenido del directorio de WAL" -#: initdb.c:733 +#: initdb.c:797 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "directorio de datos «%s» no eliminado a petición del usuario" -#: initdb.c:737 +#: initdb.c:801 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "directorio de WAL «%s» no eliminado a petición del usuario" -#: initdb.c:755 +#: initdb.c:819 #, c-format msgid "cannot be run as root" msgstr "no se puede ejecutar como «root»" -#: initdb.c:756 +#: initdb.c:820 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "Por favor conéctese (usando, por ejemplo, «su») con un usuario no privilegiado, quien ejecutará el proceso servidor." -#: initdb.c:788 +#: initdb.c:852 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "«%s» no es un nombre válido de codificación" -#: initdb.c:932 +#: initdb.c:996 #, c-format msgid "file \"%s\" does not exist" msgstr "el archivo «%s» no existe" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:997 initdb.c:1002 initdb.c:1009 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "Esto puede significar que tiene una instalación corrupta o ha identificado el directorio equivocado con la opción -L." -#: initdb.c:937 +#: initdb.c:1001 #, c-format msgid "could not access file \"%s\": %m" msgstr "no se pudo acceder al archivo «%s»: %m" -#: initdb.c:944 +#: initdb.c:1008 #, c-format msgid "file \"%s\" is not a regular file" msgstr "el archivo «%s» no es un archivo regular" -#: initdb.c:1077 +#: initdb.c:1141 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "seleccionando implementación de memoria compartida dinámica ... " -#: initdb.c:1086 +#: initdb.c:1150 #, c-format -msgid "selecting default max_connections ... " -msgstr "seleccionando el valor para max_connections ... " +msgid "selecting default \"max_connections\" ... " +msgstr "seleccionando el valor para «max_connections» ... " -#: initdb.c:1106 +#: initdb.c:1170 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "seleccionando el valor para shared_buffers ... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "seleccionando el valor para «shared_buffers» ... " -#: initdb.c:1129 +#: initdb.c:1193 #, c-format msgid "selecting default time zone ... " msgstr "seleccionando el huso horario por omisión ... " -#: initdb.c:1206 +#: initdb.c:1272 msgid "creating configuration files ... " msgstr "creando archivos de configuración ... " -#: initdb.c:1367 initdb.c:1381 initdb.c:1448 initdb.c:1459 +#: initdb.c:1425 initdb.c:1439 initdb.c:1506 initdb.c:1517 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "no se pudo cambiar los permisos de «%s»: %m" -#: initdb.c:1477 +#: initdb.c:1536 #, c-format msgid "running bootstrap script ... " msgstr "ejecutando script de inicio (bootstrap) ... " -#: initdb.c:1489 +#: initdb.c:1548 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "el archivo de entrada «%s» no pertenece a PostgreSQL %s" -#: initdb.c:1491 +#: initdb.c:1550 #, c-format msgid "Specify the correct path using the option -L." msgstr "Especifique la ruta correcta usando la opción -L." -#: initdb.c:1591 +#: initdb.c:1652 msgid "Enter new superuser password: " msgstr "Ingrese la nueva contraseña del superusuario: " -#: initdb.c:1592 +#: initdb.c:1653 msgid "Enter it again: " msgstr "Ingrésela nuevamente: " -#: initdb.c:1595 +#: initdb.c:1656 #, c-format msgid "Passwords didn't match.\n" msgstr "Las contraseñas no coinciden.\n" -#: initdb.c:1619 +#: initdb.c:1680 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "no se pudo leer la contraseña desde el archivo «%s»: %m" -#: initdb.c:1622 +#: initdb.c:1683 #, c-format msgid "password file \"%s\" is empty" msgstr "el archivo de contraseña «%s» está vacío" -#: initdb.c:2034 +#: initdb.c:2095 #, c-format msgid "caught signal\n" msgstr "se ha capturado una señal\n" -#: initdb.c:2040 +#: initdb.c:2101 #, c-format msgid "could not write to child process: %s\n" msgstr "no se pudo escribir al proceso hijo: %s\n" -#: initdb.c:2048 +#: initdb.c:2109 #, c-format msgid "ok\n" msgstr "hecho\n" -#: initdb.c:2137 +#: initdb.c:2191 initdb.c:2237 #, c-format -msgid "setlocale() failed" -msgstr "setlocale() falló" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "el nombre de configuración regional «%s» contiene caracteres no ASCII" -#: initdb.c:2155 -#, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "no se pudo restaurar la configuración regional anterior «%s»" - -#: initdb.c:2163 +#: initdb.c:2217 #, c-format msgid "invalid locale name \"%s\"" msgstr "nombre de configuración regional «%s» no es válido" -#: initdb.c:2164 +#: initdb.c:2218 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." -msgstr "Si el nombre de configuración regional es específico de ICU, use --icu-locale." +msgstr "Si el nombre de configuración regional es específico a ICU, utilice --icu-locale." -#: initdb.c:2177 +#: initdb.c:2231 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "configuración regional inválida; revise las variables de entorno LANG y LC_*" -#: initdb.c:2203 initdb.c:2227 +#: initdb.c:2262 initdb.c:2286 #, c-format msgid "encoding mismatch" msgstr "codificaciones no coinciden" -#: initdb.c:2204 +#: initdb.c:2263 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "La codificación que seleccionó (%s) y la codificación de la configuración regional elegida (%s) no coinciden. Esto llevaría a comportamientos erráticos en ciertas funciones de procesamiento de cadenas de caracteres." -#: initdb.c:2209 initdb.c:2230 +#: initdb.c:2268 initdb.c:2289 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "" "Vuelva a ejecutar %s sin escoger explícitamente una codificación, o bien\n" "escoja una combinación coincidente." -#: initdb.c:2228 +#: initdb.c:2287 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "La codificación que seleccionó (%s) no está soportada con el proveedor ICU." -#: initdb.c:2279 +#: initdb.c:2338 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "no se pudo convertir el nombre de configuración regional «%s» a etiqueta de lenguaje: %s" -#: initdb.c:2285 initdb.c:2337 initdb.c:2416 +#: initdb.c:2344 initdb.c:2396 initdb.c:2488 #, c-format msgid "ICU is not supported in this build" msgstr "ICU no está soportado en este servidor" -#: initdb.c:2308 +#: initdb.c:2367 #, c-format msgid "could not get language from locale \"%s\": %s" -msgstr "no se pudo obtener el lenguaje de la configuración regional «%s»: %s" +msgstr "no se pudo el lenguaje de la configuración regional «%s»: %s" -#: initdb.c:2334 +#: initdb.c:2393 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" -msgstr "la configuración regional «%s» tiene lenguaje «%s» desconocido" +msgstr "la configuración regional «%s» no idioma desconocido «%s»" + +#: initdb.c:2454 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "la configuración regional debe especificarse si el proveedor es %s" -#: initdb.c:2400 +#: initdb.c:2465 #, c-format -msgid "ICU locale must be specified" -msgstr "el locale ICU debe ser especificado" +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "nombre de configuración regional «%s» no válido para el proveedor builtin" -#: initdb.c:2404 +#: initdb.c:2476 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" -msgstr "Usando la marca de lenguaje «%s» para la configuración regional ICU «%s».\n" +msgstr "Usando la etiqueta de idioma «%s» para la configuración regional ICU «%s».\n" -#: initdb.c:2427 +#: initdb.c:2499 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -492,17 +558,17 @@ msgstr "" "%s inicializa un cluster de base de datos PostgreSQL.\n" "\n" -#: initdb.c:2428 +#: initdb.c:2500 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: initdb.c:2429 +#: initdb.c:2501 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPCIÓN]... [DATADIR]\n" -#: initdb.c:2430 +#: initdb.c:2502 #, c-format msgid "" "\n" @@ -511,69 +577,69 @@ msgstr "" "\n" "Opciones:\n" -#: initdb.c:2431 +#: initdb.c:2503 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr "" " -A, --auth=MÉTODO método de autentificación por omisión para\n" " conexiones locales\n" -#: initdb.c:2432 +#: initdb.c:2504 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr "" " --auth-host=MÉTODO método de autentificación por omisión para\n" " conexiones locales TCP/IP\n" -#: initdb.c:2433 +#: initdb.c:2505 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr "" " --auth-local=MÉTODO método de autentificación por omisión para\n" " conexiones de socket local\n" -#: initdb.c:2434 +#: initdb.c:2506 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATADIR ubicación para este cluster de bases de datos\n" -#: initdb.c:2435 +#: initdb.c:2507 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=CODIF codificación por omisión para nuevas bases de datos\n" -#: initdb.c:2436 +#: initdb.c:2508 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr "" " -g, --allow-group-access dar al grupo permisos de lectura/ejecución sobre\n" " el directorio de datos\n" -#: initdb.c:2437 +#: initdb.c:2509 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr "" " --icu-locale=LOCALE definir el ID de configuración regional ICU para\n" " nuevas bases de datos\n" -#: initdb.c:2438 +#: initdb.c:2510 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" -msgstr " --icu-rules=REGLAS reglas adicionales ICU en nuevas bases de datos\n" +msgstr " --icu-rules=REGLAS reglas de ordenamiento ICU adicionales para nuevas bases de datos\n" -#: initdb.c:2439 +#: initdb.c:2511 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums activar sumas de verificación en páginas de datos\n" -#: initdb.c:2440 +#: initdb.c:2512 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr "" " --locale=LOCALE configuración regional por omisión para \n" " nuevas bases de datos\n" -#: initdb.c:2441 +#: initdb.c:2513 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -587,27 +653,37 @@ msgstr "" " en la categoría respectiva (el valor por omisión\n" " es tomado de variables de ambiente)\n" -#: initdb.c:2445 +#: initdb.c:2517 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale equivalente a --locale=C\n" -#: initdb.c:2446 +#: initdb.c:2518 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" --builtin-locale=LOCALE\n" +" define el nombre de configuración regional builtin\n" +" para nuevas bases de datos\n" + +#: initdb.c:2520 +#, c-format +msgid "" +" --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " define el proveedor de configuración regional\n" " para nuevas bases de datos\n" -#: initdb.c:2448 +#: initdb.c:2522 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=ARCHIVO leer contraseña del nuevo superusuario del archivo\n" -#: initdb.c:2449 +#: initdb.c:2523 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -616,27 +692,27 @@ msgstr "" " -T, --text-search-config=CONF\n" " configuración de búsqueda en texto por omisión\n" -#: initdb.c:2451 +#: initdb.c:2525 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=USUARIO nombre del superusuario del cluster\n" -#: initdb.c:2452 +#: initdb.c:2526 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt pedir una contraseña para el nuevo superusuario\n" -#: initdb.c:2453 +#: initdb.c:2527 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR ubicación del directorio WAL\n" -#: initdb.c:2454 +#: initdb.c:2528 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=TAMAÑO tamaño de los segmentos de WAL, en megabytes\n" -#: initdb.c:2455 +#: initdb.c:2529 #, c-format msgid "" "\n" @@ -645,52 +721,57 @@ msgstr "" "\n" "Opciones menos usadas:\n" -#: initdb.c:2456 +#: initdb.c:2530 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" -msgstr " -c, --set NOMBRE=VALOR sobreescribe valor por omisión de parámetro de servidor\n" +msgstr " -c, --set VAR=VALOR sobreescribir el valor por omisión del parámetro\n" -#: initdb.c:2457 +#: initdb.c:2531 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug genera mucha salida de depuración\n" -#: initdb.c:2458 +#: initdb.c:2532 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches establece debug_discard_caches=1\n" -#: initdb.c:2459 +#: initdb.c:2533 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L DIRECTORIO donde encontrar los archivos de entrada\n" -#: initdb.c:2460 +#: initdb.c:2534 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean no limpiar después de errores\n" -#: initdb.c:2461 +#: initdb.c:2535 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" -#: initdb.c:2462 +#: initdb.c:2536 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions no mostrar instrucciones para los siguientes pasos\n" -#: initdb.c:2463 +#: initdb.c:2537 +#, c-format +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show muestra variables internas y salir\n" + +#: initdb.c:2538 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show muestra variables internas\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método para sincronizar archivos a disco\n" -#: initdb.c:2464 +#: initdb.c:2539 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only sólo sincronizar el directorio de datos y salir\n" -#: initdb.c:2465 +#: initdb.c:2540 #, c-format msgid "" "\n" @@ -699,17 +780,17 @@ msgstr "" "\n" "Otras opciones:\n" -#: initdb.c:2466 +#: initdb.c:2541 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de version y salir\n" -#: initdb.c:2467 +#: initdb.c:2542 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: initdb.c:2468 +#: initdb.c:2543 #, c-format msgid "" "\n" @@ -720,7 +801,7 @@ msgstr "" "Si el directorio de datos no es especificado, se usa la variable de\n" "ambiente PGDATA.\n" -#: initdb.c:2470 +#: initdb.c:2545 #, c-format msgid "" "\n" @@ -729,72 +810,72 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: initdb.c:2471 +#: initdb.c:2546 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: initdb.c:2499 +#: initdb.c:2570 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "método de autentificación «%s» no válido para conexiones «%s»" -#: initdb.c:2513 +#: initdb.c:2584 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "debe especificar una contraseña al superusuario para activar autentificación mediante contraseña" -#: initdb.c:2532 +#: initdb.c:2603 #, c-format msgid "no data directory specified" msgstr "no se especificó un directorio de datos" -#: initdb.c:2533 +#: initdb.c:2604 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "Debe especificar el directorio donde residirán los datos para este clúster. Hágalo usando la opción -D o la variable de ambiente PGDATA." -#: initdb.c:2550 +#: initdb.c:2621 #, c-format msgid "could not set environment" msgstr "no se pudo establecer el ambiente" -#: initdb.c:2568 +#: initdb.c:2639 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "el programa «%s» es requerido por %s pero se encontró en el mismo directorio que «%s»" -#: initdb.c:2571 +#: initdb.c:2642 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "El programa «%s» fue encontrado por «%s», pero no es de la misma versión que %s" -#: initdb.c:2586 +#: initdb.c:2657 #, c-format msgid "input file location must be an absolute path" msgstr "la ubicación de archivos de entrada debe ser una ruta absoluta" -#: initdb.c:2603 +#: initdb.c:2674 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "El cluster será inicializado con configuración regional «%s».\n" -#: initdb.c:2606 +#: initdb.c:2677 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "El cluster será inicializado con esta configuración regional:\n" -#: initdb.c:2607 +#: initdb.c:2678 #, c-format -msgid " provider: %s\n" -msgstr " proveedor: %s\n" +msgid " locale provider: %s\n" +msgstr " proveedor de configuración regional: %s\n" -#: initdb.c:2609 +#: initdb.c:2680 #, c-format -msgid " ICU locale: %s\n" -msgstr " Locale ICU: %s\n" +msgid " default collation: %s\n" +msgstr " ordenamiento por omisión: %s\n" -#: initdb.c:2610 +#: initdb.c:2681 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -811,22 +892,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2640 +#: initdb.c:2711 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "no se pudo encontrar una codificación apropiada para la configuración regional «%s»" -#: initdb.c:2642 +#: initdb.c:2713 #, c-format msgid "Rerun %s with the -E option." msgstr "Ejecute %s nuevamente con la opción -E." -#: initdb.c:2643 initdb.c:3176 initdb.c:3284 initdb.c:3304 +#: initdb.c:2714 initdb.c:3257 initdb.c:3377 initdb.c:3397 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: initdb.c:2655 +#: initdb.c:2726 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -836,109 +917,114 @@ msgstr "" "no puede ser usada como codificación del lado del servidor.\n" "La codificación por omisión será «%s».\n" -#: initdb.c:2660 +#: initdb.c:2731 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "la configuración regional «%s» requiere la codificación no soportada «%s»" -#: initdb.c:2662 +#: initdb.c:2733 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "La codificación «%s» no puede ser usada como codificación del lado del servidor." -#: initdb.c:2664 +#: initdb.c:2735 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Ejecute %s nuevamente con opciones de configuración regional diferente." -#: initdb.c:2672 +#: initdb.c:2743 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "La codificación por omisión ha sido por lo tanto definida a «%s».\n" -#: initdb.c:2741 +#: initdb.c:2757 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "la configuración regional «%s» del proveedor builtin requiere la codificación «%s»" + +#: initdb.c:2819 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "" "no se pudo encontrar una configuración para búsqueda en texto apropiada\n" "para la configuración regional «%s»" -#: initdb.c:2752 +#: initdb.c:2830 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "la configuración de búsqueda en texto apropiada para la configuración regional «%s» es desconocida" -#: initdb.c:2757 +#: initdb.c:2835 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "la configuración de búsqueda en texto «%s» especificada podría no coincidir con la configuración regional «%s»" -#: initdb.c:2762 +#: initdb.c:2840 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "La configuración de búsqueda en texto ha sido definida a «%s».\n" -#: initdb.c:2805 initdb.c:2876 +#: initdb.c:2883 initdb.c:2954 #, c-format msgid "creating directory %s ... " msgstr "creando el directorio %s ... " -#: initdb.c:2810 initdb.c:2881 initdb.c:2929 initdb.c:2985 +#: initdb.c:2888 initdb.c:2959 initdb.c:3007 initdb.c:3064 #, c-format msgid "could not create directory \"%s\": %m" msgstr "no se pudo crear el directorio «%s»: %m" -#: initdb.c:2819 initdb.c:2891 +#: initdb.c:2897 initdb.c:2969 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "corrigiendo permisos en el directorio existente %s ... " -#: initdb.c:2824 initdb.c:2896 +#: initdb.c:2902 initdb.c:2974 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "no se pudo cambiar los permisos del directorio «%s»: %m" -#: initdb.c:2836 initdb.c:2908 +#: initdb.c:2914 initdb.c:2986 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "el directorio «%s» existe pero no está vacío" -#: initdb.c:2840 +#: initdb.c:2918 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "Si quiere crear un nuevo cluster de bases de datos, elimine o vacíe el directorio «%s», o ejecute %s con un argumento distinto de «%s»." -#: initdb.c:2848 initdb.c:2918 initdb.c:3325 +#: initdb.c:2926 initdb.c:2996 initdb.c:3422 #, c-format msgid "could not access directory \"%s\": %m" msgstr "no se pudo acceder al directorio «%s»: %m" -#: initdb.c:2869 +#: initdb.c:2947 #, c-format msgid "WAL directory location must be an absolute path" msgstr "la ubicación del directorio de WAL debe ser una ruta absoluta" -#: initdb.c:2912 +#: initdb.c:2990 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "Si quiere almacenar el WAL ahí, elimine o vacíe el directorio «%s»." -#: initdb.c:2922 +#: initdb.c:3000 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "no se pudo crear el enlace simbólico «%s»: %m" -#: initdb.c:2941 +#: initdb.c:3019 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "Contiene un archivo invisible o que empieza con un punto (.), quizás por ser un punto de montaje." -#: initdb.c:2943 +#: initdb.c:3021 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Contiene un directorio lost+found, quizás por ser un punto de montaje." -#: initdb.c:2945 +#: initdb.c:3023 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -947,72 +1033,67 @@ msgstr "" "Usar un punto de montaje directamente como directorio de datos no es recomendado.\n" "Cree un subdirectorio bajo el punto de montaje." -#: initdb.c:2971 +#: initdb.c:3050 #, c-format msgid "creating subdirectories ... " msgstr "creando subdirectorios ... " -#: initdb.c:3014 +#: initdb.c:3093 msgid "performing post-bootstrap initialization ... " msgstr "realizando inicialización post-bootstrap ... " -#: initdb.c:3175 +#: initdb.c:3256 #, c-format msgid "-c %s requires a value" msgstr "-c %s requiere un valor" -#: initdb.c:3200 +#: initdb.c:3281 #, c-format msgid "Running in debug mode.\n" msgstr "Ejecutando en modo de depuración.\n" -#: initdb.c:3204 +#: initdb.c:3285 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "Ejecutando en modo no-clean. Los errores no serán limpiados.\n" -#: initdb.c:3274 +#: initdb.c:3358 #, c-format msgid "unrecognized locale provider: %s" msgstr "proveedor de ordenamiento no reconocido: %s" -#: initdb.c:3302 +#: initdb.c:3395 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: initdb.c:3309 initdb.c:3313 +#: initdb.c:3402 initdb.c:3406 initdb.c:3410 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s no puede especificarse a menos que el proveedor de locale «%s» sea escogido" -#: initdb.c:3327 initdb.c:3404 +#: initdb.c:3424 initdb.c:3487 msgid "syncing data to disk ... " msgstr "sincronizando los datos a disco ... " -#: initdb.c:3335 +#: initdb.c:3432 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "" "la petición de contraseña y el archivo de contraseña no pueden\n" "ser especificados simultáneamente" -#: initdb.c:3357 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "el argumento de --wal-segsize debe ser un número" - -#: initdb.c:3359 +#: initdb.c:3443 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "el argumento de --wal-segsize debe ser una potencia de dos entre 1 y 1024" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "el argumento de %s debe ser una potencia de dos entre 1 y 1024" -#: initdb.c:3373 +#: initdb.c:3456 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "nombre de superusuario «%s» no permitido; los nombres de rol no pueden comenzar con «pg_»" -#: initdb.c:3375 +#: initdb.c:3458 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1023,17 +1104,17 @@ msgstr "" "Este usuario también debe ser quien ejecute el proceso servidor.\n" "\n" -#: initdb.c:3391 +#: initdb.c:3474 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Las sumas de verificación en páginas de datos han sido activadas.\n" -#: initdb.c:3393 +#: initdb.c:3476 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Las sumas de verificación en páginas de datos han sido desactivadas.\n" -#: initdb.c:3410 +#: initdb.c:3493 #, c-format msgid "" "\n" @@ -1045,22 +1126,22 @@ msgstr "" "El directorio de datos podría corromperse si el sistema operativo sufre\n" "una caída.\n" -#: initdb.c:3415 +#: initdb.c:3498 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "activando el método de autentificación «trust» para conexiones locales" -#: initdb.c:3416 +#: initdb.c:3499 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "Puede cambiar esto editando pg_hba.conf o usando el parámetro -A, o --auth-local y --auth-host la próxima vez que ejecute initdb." #. translator: This is a placeholder in a shell command. -#: initdb.c:3446 +#: initdb.c:3529 msgid "logfile" msgstr "archivo_de_registro" -#: initdb.c:3448 +#: initdb.c:3531 #, c-format msgid "" "\n" diff --git a/src/bin/initdb/po/fr.po b/src/bin/initdb/po/fr.po index a175e105d711c..c8a155a62bbeb 100644 --- a/src/bin/initdb/po/fr.po +++ b/src/bin/initdb/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-05 17:20+0000\n" -"PO-Revision-Date: 2023-09-05 22:01+0200\n" +"POT-Creation-Date: 2024-10-29 18:21+0000\n" +"PO-Revision-Date: 2024-10-30 07:41+0100\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -43,33 +43,48 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binaire « %s » invalide : %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "n'a pas pu lire le binaire « %s » : %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:750 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "n'a pas pu exécuter la commande « %s » : %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "n'a pas pu lire à partir de la commande « %s » : %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "aucune donnée n'a été renvoyée par la commande « %s »" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:372 initdb.c:408 #, c-format msgid "out of memory" msgstr "mémoire épuisée" @@ -85,35 +100,46 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "n'a pas pu tester le fichier « %s » : %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "n'a pas pu lire le répertoire « %s » : %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" @@ -153,12 +179,12 @@ msgstr "n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "n'a pas pu supprimer le répertoire « %s » : %m" @@ -207,6 +233,31 @@ msgstr "le processus fils a été terminé par le signal %d : %s" msgid "child process exited with unrecognized status %d" msgstr "le processus fils a quitté avec un statut %d non reconnu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "valeur « %s » invalide pour l'option %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s doit être compris entre %d et %d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + #: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" @@ -217,274 +268,289 @@ msgstr "n'a pas pu configurer la jonction pour « %s » : %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "n'a pas pu obtenir la jonction pour « %s » : %s\n" -#: initdb.c:618 initdb.c:1613 +#: initdb.c:369 +#, c-format +msgid "_wsetlocale() failed" +msgstr "échec de _wsetlocale()" + +#: initdb.c:376 +#, c-format +msgid "setlocale() failed" +msgstr "échec de setlocale()" + +#: initdb.c:390 +#, c-format +msgid "failed to restore old locale" +msgstr "a échoué pour restaurer l'ancienne locale" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "a échoué pour restaurer l'ancienne locale « %s »" + +#: initdb.c:682 initdb.c:1674 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:726 initdb.c:1030 initdb.c:1050 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "n'a pas pu ouvrir le fichier « %s » en écriture : %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:730 initdb.c:1033 initdb.c:1052 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: initdb.c:670 +#: initdb.c:734 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" -#: initdb.c:686 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "n'a pas pu exécuter la commande « %s » : %m" - -#: initdb.c:704 +#: initdb.c:768 #, c-format msgid "removing data directory \"%s\"" msgstr "suppression du répertoire des données « %s »" -#: initdb.c:706 +#: initdb.c:770 #, c-format msgid "failed to remove data directory" msgstr "échec de la suppression du répertoire des données" -#: initdb.c:710 +#: initdb.c:774 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "suppression du contenu du répertoire des données « %s »" -#: initdb.c:713 +#: initdb.c:777 #, c-format msgid "failed to remove contents of data directory" msgstr "échec de la suppression du contenu du répertoire des données" -#: initdb.c:718 +#: initdb.c:782 #, c-format msgid "removing WAL directory \"%s\"" msgstr "suppression du répertoire des journaux de transactions « %s »" -#: initdb.c:720 +#: initdb.c:784 #, c-format msgid "failed to remove WAL directory" msgstr "échec de la suppression du répertoire des journaux de transactions" -#: initdb.c:724 +#: initdb.c:788 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "suppression du contenu du répertoire des journaux de transactions « %s »" -#: initdb.c:726 +#: initdb.c:790 #, c-format msgid "failed to remove contents of WAL directory" msgstr "échec de la suppression du contenu du répertoire des journaux de transactions" -#: initdb.c:733 +#: initdb.c:797 #, 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" -#: initdb.c:737 +#: initdb.c:801 #, 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" -#: initdb.c:755 +#: initdb.c:819 #, c-format msgid "cannot be run as root" msgstr "ne peut pas être exécuté en tant que root" -#: initdb.c:756 +#: initdb.c:820 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "Connectez-vous (par exemple en utilisant « su ») sous l'utilisateur (non privilégié) qui sera propriétaire du processus serveur." -#: initdb.c:788 +#: initdb.c:852 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "« %s » n'est pas un nom d'encodage serveur valide" -#: initdb.c:932 +#: initdb.c:996 #, c-format msgid "file \"%s\" does not exist" msgstr "le rôle « %s » n'existe pas" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:997 initdb.c:1002 initdb.c:1009 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "Cela peut signifier que votre installation est corrompue ou que vous avez identifié le mauvais répertoire avec l'option -L." -#: initdb.c:937 +#: initdb.c:1001 #, c-format msgid "could not access file \"%s\": %m" msgstr "n'a pas pu accéder au fichier « %s » : %m" -#: initdb.c:944 +#: initdb.c:1008 #, c-format msgid "file \"%s\" is not a regular file" msgstr "le fichier « %s » n'est pas un fichier standard" -#: initdb.c:1077 +#: initdb.c:1141 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "sélection de l'implémentation de la mémoire partagée dynamique..." -#: initdb.c:1086 +#: initdb.c:1150 #, c-format -msgid "selecting default max_connections ... " -msgstr "sélection de la valeur par défaut pour max_connections... " +msgid "selecting default \"max_connections\" ... " +msgstr "sélection de la valeur par défaut pour « max_connections »... " -#: initdb.c:1106 +#: initdb.c:1170 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "sélection de la valeur par défaut pour shared_buffers... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "sélection de la valeur par défaut pour « shared_buffers »... " -#: initdb.c:1129 +#: initdb.c:1193 #, c-format msgid "selecting default time zone ... " msgstr "sélection du fuseau horaire par défaut... " -#: initdb.c:1206 +#: initdb.c:1272 msgid "creating configuration files ... " msgstr "création des fichiers de configuration... " -#: initdb.c:1367 initdb.c:1381 initdb.c:1448 initdb.c:1459 +#: initdb.c:1425 initdb.c:1439 initdb.c:1506 initdb.c:1517 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "n'a pas pu modifier les droits de « %s » : %m" -#: initdb.c:1477 +#: initdb.c:1536 #, c-format msgid "running bootstrap script ... " msgstr "lancement du script bootstrap..." -#: initdb.c:1489 +#: initdb.c:1548 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "le fichier en entrée « %s » n'appartient pas à PostgreSQL %s" -#: initdb.c:1491 +#: initdb.c:1550 #, c-format msgid "Specify the correct path using the option -L." msgstr "Indiquez le bon chemin avec l'option -L." -#: initdb.c:1591 +#: initdb.c:1652 msgid "Enter new superuser password: " msgstr "Saisir le nouveau mot de passe du super-utilisateur : " -#: initdb.c:1592 +#: initdb.c:1653 msgid "Enter it again: " msgstr "Saisir le mot de passe à nouveau : " -#: initdb.c:1595 +#: initdb.c:1656 #, c-format msgid "Passwords didn't match.\n" msgstr "Les mots de passe ne sont pas identiques.\n" -#: initdb.c:1619 +#: initdb.c:1680 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "n'a pas pu lire le mot de passe à partir du fichier « %s » : %m" -#: initdb.c:1622 +#: initdb.c:1683 #, c-format msgid "password file \"%s\" is empty" msgstr "le fichier de mots de passe « %s » est vide" -#: initdb.c:2034 +#: initdb.c:2095 #, c-format msgid "caught signal\n" msgstr "signal reçu\n" -#: initdb.c:2040 +#: initdb.c:2101 #, c-format msgid "could not write to child process: %s\n" msgstr "n'a pas pu écrire au processus fils : %s\n" -#: initdb.c:2048 +#: initdb.c:2109 #, c-format msgid "ok\n" msgstr "ok\n" -#: initdb.c:2137 +#: initdb.c:2191 initdb.c:2237 #, c-format -msgid "setlocale() failed" -msgstr "échec de setlocale()" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "le nom de la locale « %s » contient des caractères non ASCII" -#: initdb.c:2155 -#, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "a échoué pour restaurer l'ancienne locale « %s »" - -#: initdb.c:2163 +#: initdb.c:2217 #, c-format msgid "invalid locale name \"%s\"" msgstr "nom de locale « %s » invalide" -#: initdb.c:2164 +#: initdb.c:2218 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Si le nom de la locale est spécifique à ICU, utilisez --icu-locale." -#: initdb.c:2177 +#: initdb.c:2231 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "configuration invalide de la locale ; vérifiez les variables d'environnement LANG et LC_*" -#: initdb.c:2203 initdb.c:2227 +#: initdb.c:2262 initdb.c:2286 #, c-format msgid "encoding mismatch" msgstr "différence d'encodage" -#: initdb.c:2204 +#: initdb.c:2263 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "L'encodage que vous avez sélectionné (%s) et celui que la locale sélectionnée utilise (%s) ne sont pas compatibles. Cela peut conduire à des erreurs dans les fonctions de manipulation de chaînes de caractères." -#: initdb.c:2209 initdb.c:2230 +#: initdb.c:2268 initdb.c:2289 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "Relancez %s et soit vous ne spécifiez pas explicitement d'encodage, soit vous choisissez une combinaison compatible." -#: initdb.c:2228 +#: initdb.c:2287 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "L'encodage que vous avez sélectionné (%s) n'est pas supporté avec le fournisseur ICU." -#: initdb.c:2279 +#: initdb.c:2338 #, 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" -#: initdb.c:2285 initdb.c:2337 initdb.c:2416 +#: initdb.c:2344 initdb.c:2396 initdb.c:2488 #, c-format msgid "ICU is not supported in this build" msgstr "ICU n'est pas supporté dans cette installation" -#: initdb.c:2308 +#: initdb.c:2367 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "n'a pas pu obtenir la langue à partir de la locale « %s » : %s" -#: initdb.c:2334 +#: initdb.c:2393 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "la locale « %s » a le langage inconnu « %s »" -#: initdb.c:2400 +#: initdb.c:2454 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "la locale doit être spécifiée si le fournisseur est %s" + +#: initdb.c:2465 #, c-format -msgid "ICU locale must be specified" -msgstr "la locale ICU doit être précisée" +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "nom de locale « %s » invalide pour le fournisseur natif" -#: initdb.c:2404 +#: initdb.c:2476 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Utilisation de la balise de langage « %s » pour la locale ICU « %s ».\n" -#: initdb.c:2427 +#: initdb.c:2499 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -493,17 +559,17 @@ msgstr "" "%s initialise une instance PostgreSQL.\n" "\n" -#: initdb.c:2428 +#: initdb.c:2500 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: initdb.c:2429 +#: initdb.c:2501 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [RÉP_DONNÉES]\n" -#: initdb.c:2430 +#: initdb.c:2502 #, c-format msgid "" "\n" @@ -512,71 +578,71 @@ msgstr "" "\n" "Options :\n" -#: initdb.c:2431 +#: initdb.c:2503 #, 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" -#: initdb.c:2432 +#: initdb.c:2504 #, 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" -#: initdb.c:2433 +#: initdb.c:2505 #, 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" -#: initdb.c:2434 +#: initdb.c:2506 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]RÉP_DONNÉES emplacement du répertoire principal des données\n" -#: initdb.c:2435 +#: initdb.c:2507 #, 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" -#: initdb.c:2436 +#: initdb.c:2508 #, 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" -#: initdb.c:2437 +#: initdb.c:2509 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOCALE initialise l'identifiant de locale ICU pour les nouvelles bases de données\n" -#: initdb.c:2438 +#: initdb.c:2510 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" -msgstr " --icu-rules=REGLES initialise les règles supplémentaires de la locale ICU pour les nouvelles bases de données\n" +msgstr " --icu-rules=REGLES initialise les règles supplémentaires de la locale ICU pour les nouvelles bases de données\n" -#: initdb.c:2439 +#: initdb.c:2511 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr "" " -k, --data-checksums active les sommes de contrôle pour les blocs des\n" " fichiers de données\n" -#: initdb.c:2440 +#: initdb.c:2512 #, 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" -#: initdb.c:2441 +#: initdb.c:2513 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -591,29 +657,39 @@ msgstr "" " (les valeurs par défaut sont prises dans\n" " l'environnement)\n" -#: initdb.c:2445 +#: initdb.c:2517 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale équivalent à --locale=C\n" -#: initdb.c:2446 +#: initdb.c:2518 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" --builtin-provider=LOCALE\n" +" initialise le fournisseur de locale natif pour\n" +" les nouvelles bases de données\n" + +#: initdb.c:2520 +#, c-format +msgid "" +" --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " initialise le fournisseur de locale par défaut pour\n" " les nouvelles bases de données\n" -#: initdb.c:2448 +#: initdb.c:2522 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr "" " --pwfile=FICHIER lit le mot de passe du nouveau super-utilisateur\n" " à partir de ce fichier\n" -#: initdb.c:2449 +#: initdb.c:2523 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -622,31 +698,31 @@ msgstr "" " -T, --text-search-config=CFG configuration par défaut de la recherche plein\n" " texte\n" -#: initdb.c:2451 +#: initdb.c:2525 #, 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" -#: initdb.c:2452 +#: initdb.c:2526 #, 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" -#: initdb.c:2453 +#: initdb.c:2527 #, 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" -#: initdb.c:2454 +#: initdb.c:2528 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=TAILLE configure la taille des segments WAL, en Mo\n" -#: initdb.c:2455 +#: initdb.c:2529 #, c-format msgid "" "\n" @@ -655,58 +731,63 @@ msgstr "" "\n" "Options moins utilisées :\n" -#: initdb.c:2456 +#: initdb.c:2530 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" -msgstr " -c NOM=VALEUR surcharge la configuration par défaut d'un paramètre serveur\n" +msgstr " -c NOM=VALEUR surcharge la configuration par défaut d'un paramètre serveur\n" -#: initdb.c:2457 +#: initdb.c:2531 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug engendre un grand nombre de traces de débogage\n" -#: initdb.c:2458 +#: initdb.c:2532 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches initialise debug_discard_caches à 1\n" -#: initdb.c:2459 +#: initdb.c:2533 #, 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 de l'instance\n" -#: initdb.c:2460 +#: initdb.c:2534 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --noclean ne nettoie pas après des erreurs\n" -#: initdb.c:2461 +#: initdb.c:2535 #, 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\n" " proprement écrites sur disque\n" -#: initdb.c:2462 +#: initdb.c:2536 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr "" " --no-instructions n'affiche pas les instructions des prochaines\n" " étapes\n" -#: initdb.c:2463 +#: initdb.c:2537 +#, c-format +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show affiche la configuration interne, puis quitte\n" + +#: initdb.c:2538 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show affiche la configuration interne\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" -#: initdb.c:2464 +#: initdb.c:2539 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only synchronise uniquement le répertoire des données, puis quitte\n" -#: initdb.c:2465 +#: initdb.c:2540 #, c-format msgid "" "\n" @@ -715,17 +796,17 @@ msgstr "" "\n" "Autres options :\n" -#: initdb.c:2466 +#: initdb.c:2541 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: initdb.c:2467 +#: initdb.c:2542 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: initdb.c:2468 +#: initdb.c:2543 #, c-format msgid "" "\n" @@ -736,7 +817,7 @@ msgstr "" "Si le répertoire des données n'est pas indiqué, la variable d'environnement\n" "PGDATA est utilisée.\n" -#: initdb.c:2470 +#: initdb.c:2545 #, c-format msgid "" "\n" @@ -745,72 +826,72 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: initdb.c:2471 +#: initdb.c:2546 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: initdb.c:2499 +#: initdb.c:2570 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "méthode d'authentification « %s » invalide pour « %s » connexions" -#: initdb.c:2513 +#: initdb.c:2584 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "doit indiquer un mot de passe pour le super-utilisateur afin d'activer l'authentification par mot de passe" -#: initdb.c:2532 +#: initdb.c:2603 #, c-format msgid "no data directory specified" msgstr "aucun répertoire de données indiqué" -#: initdb.c:2533 +#: initdb.c:2604 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "Vous devez identifier le répertoire où résideront les données pour ce système de bases de données. Faites-le soit avec l'option -D soit avec la variable d'environnement PGDATA." -#: initdb.c:2550 +#: initdb.c:2621 #, c-format msgid "could not set environment" msgstr "n'a pas pu configurer l'environnement" -#: initdb.c:2568 +#: initdb.c:2639 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé dans le même répertoire que « %s »" -#: initdb.c:2571 +#: initdb.c:2642 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "le programme « %s » a été trouvé par « %s » mais n'est pas de la même version que %s" -#: initdb.c:2586 +#: initdb.c:2657 #, c-format msgid "input file location must be an absolute path" msgstr "l'emplacement du fichier d'entrée doit être indiqué avec un chemin absolu" -#: initdb.c:2603 +#: initdb.c:2674 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "L'instance sera initialisée avec la locale « %s ».\n" -#: initdb.c:2606 +#: initdb.c:2677 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "L'instance sera initialisée avec cette configuration de locale :\n" -#: initdb.c:2607 +#: initdb.c:2678 #, c-format -msgid " provider: %s\n" -msgstr " fournisseur: %s\n" +msgid " locale provider: %s\n" +msgstr " fournisseur de locale : %s\n" -#: initdb.c:2609 +#: initdb.c:2680 #, c-format -msgid " ICU locale: %s\n" -msgstr " locale ICU : %s\n" +msgid " default collation: %s\n" +msgstr "collation par défaut : %s\n" -#: initdb.c:2610 +#: initdb.c:2681 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -827,22 +908,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2640 +#: initdb.c:2711 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "n'a pas pu trouver un encodage adéquat pour la locale « %s »" -#: initdb.c:2642 +#: initdb.c:2713 #, c-format msgid "Rerun %s with the -E option." msgstr "Relancez %s avec l'option -E." -#: initdb.c:2643 initdb.c:3176 initdb.c:3284 initdb.c:3304 +#: initdb.c:2714 initdb.c:3257 initdb.c:3377 initdb.c:3397 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: initdb.c:2655 +#: initdb.c:2726 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -851,109 +932,114 @@ msgstr "" "L'encodage « %s » a été déduit de la locale mais n'est pas autorisé en tant qu'encodage serveur.\n" "L'encodage par défaut des bases de données sera configuré à « %s ».\n" -#: initdb.c:2660 +#: initdb.c:2731 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "la locale « %s » nécessite l'encodage « %s » non supporté" -#: initdb.c:2662 +#: initdb.c:2733 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "L'encodage « %s » n'est pas autorisé en tant qu'encodage serveur." -#: initdb.c:2664 +#: initdb.c:2735 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Relancez %s avec une locale différente." -#: initdb.c:2672 +#: initdb.c:2743 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "" "L'encodage par défaut des bases de données a été configuré en conséquence\n" "avec « %s ».\n" -#: initdb.c:2741 +#: initdb.c:2757 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "la locale du fournisseur natif « %s » nécessite l'encodage « %s »" + +#: initdb.c:2819 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "n'a pas pu trouver la configuration de la recherche plein texte en adéquation avec la locale « %s »" -#: initdb.c:2752 +#: initdb.c:2830 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "la configuration de la recherche plein texte convenable pour la locale « %s » est inconnue" -#: initdb.c:2757 +#: initdb.c:2835 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "la configuration indiquée pour la recherche plein texte, « %s », pourrait ne pas correspondre à la locale « %s »" -#: initdb.c:2762 +#: initdb.c:2840 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "La configuration de la recherche plein texte a été initialisée à « %s ».\n" -#: initdb.c:2805 initdb.c:2876 +#: initdb.c:2883 initdb.c:2954 #, c-format msgid "creating directory %s ... " msgstr "création du répertoire %s... " -#: initdb.c:2810 initdb.c:2881 initdb.c:2929 initdb.c:2985 +#: initdb.c:2888 initdb.c:2959 initdb.c:3007 initdb.c:3064 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: initdb.c:2819 initdb.c:2891 +#: initdb.c:2897 initdb.c:2969 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "correction des droits sur le répertoire existant %s... " -#: initdb.c:2824 initdb.c:2896 +#: initdb.c:2902 initdb.c:2974 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "n'a pas pu modifier les droits du répertoire « %s » : %m" -#: initdb.c:2836 initdb.c:2908 +#: initdb.c:2914 initdb.c:2986 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "le répertoire « %s » existe mais n'est pas vide" -#: initdb.c:2840 +#: initdb.c:2918 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "Si vous voulez créer un nouveau système de bases de données, supprimez ou videz le répertoire « %s ». Vous pouvez aussi exécuter %s avec un argument autre que « %s »." -#: initdb.c:2848 initdb.c:2918 initdb.c:3325 +#: initdb.c:2926 initdb.c:2996 initdb.c:3422 #, c-format msgid "could not access directory \"%s\": %m" msgstr "n'a pas pu accéder au répertoire « %s » : %m" -#: initdb.c:2869 +#: initdb.c:2947 #, 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" -#: initdb.c:2912 +#: initdb.c:2990 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "Si vous voulez enregistrer ici les WAL, supprimez ou videz le répertoire « %s »." -#: initdb.c:2922 +#: initdb.c:3000 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique « %s » : %m" -#: initdb.c:2941 +#: initdb.c:3019 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "Il contient un fichier invisible, peut-être parce qu'il s'agit d'un point de montage." -#: initdb.c:2943 +#: initdb.c:3021 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Il contient un répertoire lost+found, peut-être parce qu'il s'agit d'un point de montage.\\" -#: initdb.c:2945 +#: initdb.c:3023 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -962,72 +1048,67 @@ msgstr "" "Utiliser un point de montage comme répertoire des données n'est pas recommandé.\n" "Créez un sous-répertoire sous le point de montage." -#: initdb.c:2971 +#: initdb.c:3050 #, c-format msgid "creating subdirectories ... " msgstr "création des sous-répertoires... " -#: initdb.c:3014 +#: initdb.c:3093 msgid "performing post-bootstrap initialization ... " msgstr "exécution de l'initialisation après bootstrap... " -#: initdb.c:3175 +#: initdb.c:3256 #, c-format msgid "-c %s requires a value" msgstr "-c %s requiert une valeur" -#: initdb.c:3200 +#: initdb.c:3281 #, c-format msgid "Running in debug mode.\n" msgstr "Lancé en mode débogage.\n" -#: initdb.c:3204 +#: initdb.c:3285 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "Lancé en mode « sans nettoyage ». Les erreurs ne seront pas nettoyées.\n" -#: initdb.c:3274 +#: initdb.c:3358 #, c-format msgid "unrecognized locale provider: %s" msgstr "fournisseur de locale non reconnu : %s" -#: initdb.c:3302 +#: initdb.c:3395 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: initdb.c:3309 initdb.c:3313 +#: initdb.c:3402 initdb.c:3406 initdb.c:3410 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s ne peut pas être spécifié sauf si le fournisseur de locale « %s » est choisi" -#: initdb.c:3327 initdb.c:3404 +#: initdb.c:3424 initdb.c:3487 msgid "syncing data to disk ... " msgstr "synchronisation des données sur disque... " -#: initdb.c:3335 +#: initdb.c:3432 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "" "les options d'invite du mot de passe et de fichier de mots de passe ne\n" "peuvent pas être indiquées simultanément" -#: initdb.c:3357 +#: initdb.c:3443 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "l'argument de --wal-segsize doit être un nombre" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "l'argument de %s doit être une puissance de 2 comprise entre 1 et 1024" -#: initdb.c:3359 -#, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "l'argument de --wal-segsize doit être une puissance de 2 comprise entre 1 et 1024" - -#: initdb.c:3373 +#: initdb.c:3456 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "le nom de superutilisateur « %s » n'est pas autorisé ; les noms de rôle ne peuvent pas commencer par « pg_ »" -#: initdb.c:3375 +#: initdb.c:3458 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1038,17 +1119,17 @@ msgstr "" "Le processus serveur doit également lui appartenir.\n" "\n" -#: initdb.c:3391 +#: initdb.c:3474 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Les sommes de contrôle des pages de données sont activées.\n" -#: initdb.c:3393 +#: initdb.c:3476 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Les sommes de contrôle des pages de données sont désactivées.\n" -#: initdb.c:3410 +#: initdb.c:3493 #, c-format msgid "" "\n" @@ -1059,22 +1140,22 @@ msgstr "" "Synchronisation sur disque ignorée.\n" "Le répertoire des données pourrait être corrompu si le système d'exploitation s'arrêtait brutalement.\n" -#: initdb.c:3415 +#: initdb.c:3498 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "activation de l'authentification « trust » pour les connexions locales" -#: initdb.c:3416 +#: initdb.c:3499 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "Vous pouvez changer cette configuration en éditant le fichier pg_hba.conf ou en utilisant l'option -A, ou --auth-local et --auth-host, à la prochaine exécution d'initdb." #. translator: This is a placeholder in a shell command. -#: initdb.c:3446 +#: initdb.c:3529 msgid "logfile" msgstr "fichier_de_trace" -#: initdb.c:3448 +#: initdb.c:3531 #, c-format msgid "" "\n" @@ -1088,265 +1169,3 @@ msgstr "" "\n" " %s\n" "\n" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid "%s: The password file was not generated. Please report this problem.\n" -#~ msgstr "" -#~ "%s : le fichier de mots de passe n'a pas été créé.\n" -#~ "Merci de rapporter ce problème.\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 access file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu accéder au 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 create directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le répertoire « %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 determine valid short version string\n" -#~ msgstr "%s : n'a pas pu déterminer une chaîne de version courte valide\n" - -#~ msgid "%s: could not execute command \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu exécuter la commande « %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 get current user name: %s\n" -#~ msgstr "%s : n'a pas pu obtenir le nom de l'utilisateur courant : %s\n" - -#~ msgid "%s: could not obtain information about current user: %s\n" -#~ msgstr "%s : n'a pas pu obtenir d'informations sur l'utilisateur courant : %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 "%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: could not open file \"%s\" for writing: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en écriture : %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 read directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %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: 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 to allocate SIDs: error code %lu\n" -#~ msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" - -#~ msgid "%s: could not write file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu écrire le fichier « %s » : %s\n" - -#~ msgid "%s: failed to remove contents of transaction log directory\n" -#~ msgstr "%s : échec de la suppression du contenu du répertoire des journaux de transaction\n" - -#~ msgid "%s: failed to remove transaction log directory\n" -#~ msgstr "%s : échec de la suppression du répertoire des journaux de transaction\n" - -#~ msgid "%s: failed to restore old locale \"%s\"\n" -#~ msgstr "%s : n'a pas pu restaurer l'ancienne locale « %s »\n" - -#~ msgid "%s: file \"%s\" does not exist\n" -#~ msgstr "%s : le fichier « %s » n'existe pas\n" - -#~ msgid "%s: invalid locale name \"%s\"\n" -#~ msgstr "%s : nom de locale invalide (« %s »)\n" - -#~ msgid "%s: locale name has non-ASCII characters, skipped: \"%s\"\n" -#~ msgstr "%s : le nom de la locale contient des caractères non ASCII, ignoré : « %s »\n" - -#~ msgid "%s: locale name too long, skipped: \"%s\"\n" -#~ msgstr "%s : nom de locale trop long, ignoré : « %s »\n" - -#~ msgid "%s: out of memory\n" -#~ msgstr "%s : mémoire épuisée\n" - -#~ msgid "%s: removing contents of transaction log directory \"%s\"\n" -#~ msgstr "%s : suppression du contenu du répertoire des journaux de transaction « %s »\n" - -#~ msgid "%s: removing transaction log directory \"%s\"\n" -#~ msgstr "%s : suppression du répertoire des journaux de transaction « %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: transaction log directory \"%s\" not removed at user's request\n" -#~ msgstr "" -#~ "%s : répertoire des journaux de transaction « %s » non supprimé à la demande\n" -#~ "de l'utilisateur\n" - -#~ msgid "%s: unrecognized authentication method \"%s\"\n" -#~ msgstr "%s : méthode d'authentification « %s » inconnue.\n" - -#~ msgid "No usable system locales were found.\n" -#~ msgstr "Aucune locale système utilisable n'a été trouvée.\n" - -#, c-format -#~ msgid "The default database encoding has been set to \"%s\".\n" -#~ msgstr "L'encodage par défaut des bases de données a été configuré à « %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 "" -#~ "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." - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\n" - -#~ msgid "Use the option \"--debug\" to see details.\n" -#~ msgstr "Utilisez l'option « --debug » pour voir le détail.\n" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme : code d'erreur %lu" - -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" - -#~ msgid "copying template1 to postgres ... " -#~ msgstr "copie de template1 vers postgres... " - -#~ msgid "copying template1 to template0 ... " -#~ msgstr "copie de template1 vers template0... " - -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %m" - -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %s" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "n'a pas pu identifier le répertoire courant : %m" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "n'a pas pu charger la bibliothèque « %s » : code d'erreur %lu" - -#~ msgid "could not open directory \"%s\": %s\n" -#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s\n" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "n'a pas pu lire le binaire « %s »" - -#~ msgid "could not read directory \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" - -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" - -#, c-format -#~ msgid "could not remove file or directory \"%s\": %m" -#~ msgstr "n'a pas pu supprimer le fichier ou répertoire « %s » : %m" - -#, c-format -#~ msgid "could not stat file or directory \"%s\": %m" -#~ msgstr "" -#~ "n'a pas pu récupérer les informations sur le fichier ou répertoire\n" -#~ "« %s » : %m" - -#~ 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 "creating collations ... " -#~ msgstr "création des collationnements... " - -#~ msgid "creating conversions ... " -#~ msgstr "création des conversions... " - -#~ msgid "creating dictionaries ... " -#~ msgstr "création des dictionnaires... " - -#~ msgid "creating information schema ... " -#~ msgstr "création du schéma d'informations... " - -#~ msgid "creating system views ... " -#~ msgstr "création des vues système... " - -#~ msgid "creating template1 database in %s/base/1 ... " -#~ msgstr "création de la base de données template1 dans %s/base/1... " - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ msgid "initializing dependencies ... " -#~ msgstr "initialisation des dépendances... " - -#~ msgid "initializing pg_authid ... " -#~ msgstr "initialisation de pg_authid... " - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "binaire « %s » invalide" - -#~ msgid "loading PL/pgSQL server-side language ... " -#~ msgstr "chargement du langage PL/pgSQL... " - -#~ msgid "loading system objects' descriptions ... " -#~ msgstr "chargement de la description des objets système... " - -#~ msgid "not supported on this platform\n" -#~ msgstr "non supporté sur cette plateforme\n" - -#~ msgid "pclose failed: %m" -#~ msgstr "échec de pclose : %m" - -#~ msgid "setting password ... " -#~ msgstr "initialisation du mot de passe... " - -#~ msgid "setting privileges on built-in objects ... " -#~ msgstr "initialisation des droits sur les objets internes... " - -#, c-format -#~ msgid "symlinks are not supported on this platform" -#~ msgstr "les liens symboliques ne sont pas supportés sur cette plateforme" - -#~ msgid "vacuuming database template1 ... " -#~ msgstr "lancement du vacuum sur la base de données template1... " diff --git a/src/bin/initdb/po/ja.po b/src/bin/initdb/po/ja.po index 404f2f6125b83..62098fe2bbab3 100644 --- a/src/bin/initdb/po/ja.po +++ b/src/bin/initdb/po/ja.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: initdb (PostgreSQL 17)\n" +"Project-Id-Version: initdb (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:23+0900\n" -"PO-Revision-Date: 2024-06-14 11:27+0900\n" +"POT-Creation-Date: 2025-03-26 11:21+0900\n" +"PO-Revision-Date: 2025-03-31 16:23+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -17,22 +17,22 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " @@ -57,28 +57,28 @@ msgstr "実行する\"%s\"がありませんでした" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "パス\"%s\"を絶対パス形式に変換できませんでした: %m" -#: ../../common/exec.c:382 initdb.c:695 +#: ../../common/exec.c:363 initdb.c:753 #, c-format msgid "could not execute command \"%s\": %m" msgstr "コマンド\"%s\"を実行できませんでした: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "コマンド\"%s\"から読み取れませんでした: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "コマンド\"%s\"がデータを返却しませんでした" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 -#: initdb.c:353 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 +#: initdb.c:375 initdb.c:411 #, c-format msgid "out of memory" msgstr "メモリ不足です" @@ -94,46 +94,46 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null ポインタを複製できません(内部エラー)。\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -242,12 +242,12 @@ msgstr "%sは%d..%dの範囲になければなりません" msgid "unrecognized sync method: %s" msgstr "認識できない同期方式: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" @@ -262,291 +262,311 @@ msgstr "\"%s\"のjunctionを設定できませんでした: %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "\"%s\"のjunctionを入手できませんでした: %s\n" -#: initdb.c:627 initdb.c:1619 +#: initdb.c:372 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale()が失敗しました" + +#: initdb.c:379 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale()が失敗しました" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale" +msgstr "古いロケールの復元に失敗しました" + +#: initdb.c:396 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "古いロケール\"%s\"を復元できませんでした" + +#: initdb.c:685 initdb.c:1705 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" -#: initdb.c:671 initdb.c:975 initdb.c:995 +#: initdb.c:729 initdb.c:1035 initdb.c:1055 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "ファイル\"%s\"を書き込み用にオープンできませんでした: %m" -#: initdb.c:675 initdb.c:978 initdb.c:997 +#: initdb.c:733 initdb.c:1038 initdb.c:1057 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: initdb.c:679 +#: initdb.c:737 #, c-format msgid "could not close file \"%s\": %m" msgstr "ファイル\"%s\"をクローズできませんでした: %m" -#: initdb.c:713 +#: initdb.c:771 #, c-format msgid "removing data directory \"%s\"" msgstr "データディレクトリ\"%s\"を削除しています" -#: initdb.c:715 +#: initdb.c:773 #, c-format msgid "failed to remove data directory" msgstr "データディレクトリの削除に失敗しました" -#: initdb.c:719 +#: initdb.c:777 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "データディレクトリ\"%s\"の内容を削除しています" -#: initdb.c:722 +#: initdb.c:780 #, c-format msgid "failed to remove contents of data directory" msgstr "データディレクトリの内容の削除に失敗しました" -#: initdb.c:727 +#: initdb.c:785 #, c-format msgid "removing WAL directory \"%s\"" msgstr "WAL ディレクトリ\"%s\"を削除しています" -#: initdb.c:729 +#: initdb.c:787 #, c-format msgid "failed to remove WAL directory" msgstr "WAL ディレクトリの削除に失敗しました" -#: initdb.c:733 +#: initdb.c:791 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "WAL ディレクトリ\"%s\"の中身を削除しています" -#: initdb.c:735 +#: initdb.c:793 #, c-format msgid "failed to remove contents of WAL directory" msgstr "WAL ディレクトリの中身の削除に失敗しました" -#: initdb.c:742 +#: initdb.c:800 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "ユーザーの要求によりデータディレクトリ\"%s\"を削除しませんでした" -#: initdb.c:746 +#: initdb.c:804 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "ユーザーの要求により WAL ディレクトリ\"%s\"を削除しませんでした" -#: initdb.c:764 +#: initdb.c:822 #, c-format msgid "cannot be run as root" msgstr "root では実行できません" -#: initdb.c:765 +#: initdb.c:823 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "サーバープロセスの所有者となる(非特権)ユーザーとして(例えば\"su\"を使用して)ログインしてください。" -#: initdb.c:797 +#: initdb.c:855 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\"は有効なサーバー符号化方式名ではありません" -#: initdb.c:941 +#: initdb.c:1001 #, c-format msgid "file \"%s\" does not exist" msgstr "ファイル\"%s\"は存在しません" -#: initdb.c:942 initdb.c:947 initdb.c:954 +#: initdb.c:1002 initdb.c:1007 initdb.c:1014 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "インストール先が破損しているか実行時オプション-Lで間違ったディレクトリを指定した可能性があります。" -#: initdb.c:946 +#: initdb.c:1006 #, c-format msgid "could not access file \"%s\": %m" msgstr "ファイル\"%s\"にアクセスできませんでした: %m" -#: initdb.c:953 +#: initdb.c:1013 #, c-format msgid "file \"%s\" is not a regular file" msgstr "ファイル\"%s\"は通常のファイルではありません" -#: initdb.c:1086 +#: initdb.c:1158 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "動的共有メモリの実装を選択しています ... " -#: initdb.c:1095 +#: initdb.c:1168 #, c-format msgid "selecting default \"max_connections\" ... " msgstr "デフォルトの\"max_connections\"を選択しています ... " -#: initdb.c:1115 +#: initdb.c:1193 +#, c-format +msgid "selecting default \"autovacuum_worker_slots\" ... %d\n" +msgstr "デフォルトの\"autovacuum_worker_slots\"を選択しています ... %d\n" + +#: initdb.c:1196 #, c-format msgid "selecting default \"shared_buffers\" ... " msgstr "デフォルトの\"shared_buffers\"を選択しています ... " -#: initdb.c:1138 +#: initdb.c:1219 #, c-format msgid "selecting default time zone ... " msgstr "デフォルトの時間帯を選択しています ... " -#: initdb.c:1217 +#: initdb.c:1299 msgid "creating configuration files ... " msgstr "設定ファイルを作成しています ... " -#: initdb.c:1370 initdb.c:1384 initdb.c:1451 initdb.c:1462 +#: initdb.c:1456 initdb.c:1470 initdb.c:1537 initdb.c:1548 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "\"%s\"の権限を変更できませんでした: %m" -#: initdb.c:1481 +#: initdb.c:1567 #, c-format msgid "running bootstrap script ... " msgstr "ブートストラップスクリプトを実行しています ... " -#: initdb.c:1493 +#: initdb.c:1579 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "入力ファイル\"%s\"は PostgreSQL %s のものではありません" -#: initdb.c:1495 +#: initdb.c:1581 #, c-format msgid "Specify the correct path using the option -L." msgstr "-Lオプションを使用して正しいパスを指定してください。" -#: initdb.c:1597 +#: initdb.c:1683 msgid "Enter new superuser password: " msgstr "新しいスーパーユーザーのパスワードを入力してください:" -#: initdb.c:1598 +#: initdb.c:1684 msgid "Enter it again: " msgstr "再入力してください:" -#: initdb.c:1601 +#: initdb.c:1687 #, c-format msgid "Passwords didn't match.\n" msgstr "パスワードが一致しません。\n" -#: initdb.c:1625 +#: initdb.c:1711 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "ファイル\"%s\"からパスワードを読み取ることができませんでした: %m" -#: initdb.c:1628 +#: initdb.c:1714 #, c-format msgid "password file \"%s\" is empty" msgstr "パスワードファイル\"%s\"が空です" -#: initdb.c:2040 +#: initdb.c:2126 #, c-format msgid "caught signal\n" msgstr "シグナルが発生しました\n" -#: initdb.c:2046 +#: initdb.c:2132 #, c-format msgid "could not write to child process: %s\n" msgstr "子プロセスへの書き込みができませんでした: %s\n" -#: initdb.c:2054 +#: initdb.c:2140 #, c-format msgid "ok\n" msgstr "ok\n" -#: initdb.c:2143 -#, c-format -msgid "setlocale() failed" -msgstr "setlocale()が失敗しました" - -#: initdb.c:2161 +#: initdb.c:2222 initdb.c:2268 #, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "古いロケール\"%s\"を復元できませんでした" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "ロケール名\"%s\"は不正な非ASCII文字を含んでいます" -#: initdb.c:2169 +#: initdb.c:2248 #, c-format msgid "invalid locale name \"%s\"" msgstr "ロケール名\"%s\"は不正です" -#: initdb.c:2170 +#: initdb.c:2249 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "ロケール名がICU特有のものである場合は、--icu-localeを使用してください。" -#: initdb.c:2183 +#: initdb.c:2262 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "不正なロケール設定; 環境変数LANGおよびLC_* を確認してください" -#: initdb.c:2209 initdb.c:2233 +#: initdb.c:2293 initdb.c:2317 #, c-format msgid "encoding mismatch" msgstr "符号化方式が合いません" -#: initdb.c:2210 +#: initdb.c:2294 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "選択した符号化方式(%s)と選択したロケールが使用する符号化方式(%s)が合っていません。これにより各種の文字列処理関数が間違った動作をすることになります。" -#: initdb.c:2215 initdb.c:2236 +#: initdb.c:2299 initdb.c:2320 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "%sを再度実行してください、その際にはエンコーディングを明示的に指定しないか、適合する組み合わせを選択してください。" -#: initdb.c:2234 +#: initdb.c:2318 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "指定された符号化方式(%s)はICUプロバイダではサポートされません。" -#: initdb.c:2285 +#: initdb.c:2369 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "ロケール名\"%s\"を、言語タグに変換できませんでした: %s" -#: initdb.c:2291 initdb.c:2343 initdb.c:2435 +#: initdb.c:2375 initdb.c:2427 initdb.c:2521 #, c-format msgid "ICU is not supported in this build" msgstr "このビルドではICUはサポートされていません" -#: initdb.c:2314 +#: initdb.c:2398 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "ロケール\"%s\"から言語を取得できませんでした: %s" -#: initdb.c:2340 +#: initdb.c:2424 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "ロケール\"%s\"は未知の言語\"%s\"を含んでいます" -#: initdb.c:2401 +#: initdb.c:2485 #, c-format msgid "locale must be specified if provider is %s" msgstr "ロケールプロバイダが%sの場合はロケールの指定が必須です" -#: initdb.c:2412 +#: initdb.c:2498 #, c-format msgid "invalid locale name \"%s\" for builtin provider" msgstr "ロケール名\"%s\"は組み込みプロバイダでは不正です" -#: initdb.c:2423 +#: initdb.c:2509 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "ICUロケール\"%s\"に対して言語タグ\"%s\"を使用します。\n" -#: initdb.c:2446 +#: initdb.c:2532 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" "\n" msgstr "%sはPostgreSQLデータベースクラスタを初期化します。\n" -#: initdb.c:2447 +#: initdb.c:2533 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: initdb.c:2448 +#: initdb.c:2534 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATADIR]\n" -#: initdb.c:2449 +#: initdb.c:2535 #, c-format msgid "" "\n" @@ -555,57 +575,57 @@ msgstr "" "\n" "オプション:\n" -#: initdb.c:2450 +#: initdb.c:2536 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, --auth=METHOD ローカル接続のデフォルト認証方式\n" -#: initdb.c:2451 +#: initdb.c:2537 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr " --auth-host=METHOD ローカルTCP/IP接続のデフォルト認証方式\n" -#: initdb.c:2452 +#: initdb.c:2538 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr " --auth-local=METHOD ローカルソケット接続のデフォルト認証方式\n" -#: initdb.c:2453 +#: initdb.c:2539 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATADIR データベースクラスタの場所\n" -#: initdb.c:2454 +#: initdb.c:2540 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=ENCODING 新規データベースのデフォルト符号化方式\n" -#: initdb.c:2455 +#: initdb.c:2541 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr " -g, --allow-group-access データディレクトリのグループ読み取り/実行を許可\n" -#: initdb.c:2456 +#: initdb.c:2542 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOCALE 新しいデータベースのICUロケールIDを設定\n" -#: initdb.c:2457 +#: initdb.c:2543 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" msgstr " --icu-rules=RULES 新しいデータベースに追加するICU照合順序ルール(群)\n" -#: initdb.c:2458 +#: initdb.c:2544 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums データページのチェックサムを使用\n" -#: initdb.c:2459 +#: initdb.c:2545 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=LOCALE 新しいデータベースのデフォルトロケールをセット\n" -#: initdb.c:2460 +#: initdb.c:2546 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -619,12 +639,12 @@ msgstr "" " デフォルトロケールを設定(デフォルト値は環境変数から\n" " 取得)\n" -#: initdb.c:2464 +#: initdb.c:2550 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale --locale=C と同じ\n" -#: initdb.c:2465 +#: initdb.c:2551 #, c-format msgid "" " --builtin-locale=LOCALE\n" @@ -633,7 +653,7 @@ msgstr "" " --builtin-locale=LOCALE\n" " 新しいデータベースの組み込みロケールを指定\n" -#: initdb.c:2467 +#: initdb.c:2553 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -643,14 +663,19 @@ msgstr "" " 新しいデータベースにおけるデフォルトのロケール\n" " プロバイダを設定\n" -#: initdb.c:2469 +#: initdb.c:2555 +#, c-format +msgid " --no-data-checksums do not use data page checksums\n" +msgstr " --no-data-checksums データページのチェックサムを使用しない\n" + +#: initdb.c:2556 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr "" " --pwfile=ファイル名 新しいスーパーユーザーのパスワードをファイルから\n" " 読み込む\n" -#: initdb.c:2470 +#: initdb.c:2557 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -659,27 +684,27 @@ msgstr "" " -T, --text-search-config=CFG\\\n" " デフォルトのテキスト検索設定\n" -#: initdb.c:2472 +#: initdb.c:2559 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=NAME データベースのスーパーユーザーの名前\n" -#: initdb.c:2473 +#: initdb.c:2560 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt 新規スーパーユーザーに対してパスワード入力を促す\n" -#: initdb.c:2474 +#: initdb.c:2561 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR 先行書き込みログ用ディレクトリの位置\n" -#: initdb.c:2475 +#: initdb.c:2562 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE WALセグメントのサイズ、メガバイト単位\n" -#: initdb.c:2476 +#: initdb.c:2563 #, c-format msgid "" "\n" @@ -688,57 +713,62 @@ msgstr "" "\n" "使用頻度の低いオプション:\n" -#: initdb.c:2477 +#: initdb.c:2564 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAME=VALUE サーバーパラメータのデフォルト値を上書き設定\n" -#: initdb.c:2478 +#: initdb.c:2565 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug 多くのデバッグ用の出力を生成\n" -#: initdb.c:2479 +#: initdb.c:2566 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches debug_discard_cachesを1に設定する\n" -#: initdb.c:2480 +#: initdb.c:2567 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L DIRECTORY 入力ファイルの場所を指定\n" -#: initdb.c:2481 +#: initdb.c:2568 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean エラー発生後のクリーンアップを行わない\n" -#: initdb.c:2482 +#: initdb.c:2569 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync 変更の安全なディスクへの書き出しを待機しない\n" -#: initdb.c:2483 +#: initdb.c:2570 +#, c-format +msgid " --no-sync-data-files do not sync files within database directories\n" +msgstr " --no-sync-data-files データベースディレクトリ内のファイルを同期しない\n" + +#: initdb.c:2571 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions 次の手順の指示を表示しない\n" -#: initdb.c:2484 +#: initdb.c:2572 #, c-format msgid " -s, --show show internal settings, then exit\n" msgstr " -s, --show 内部設定を表示して終了\n" -#: initdb.c:2485 +#: initdb.c:2573 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=METHOD ファイルをディスクに同期させる方法を指定\n" -#: initdb.c:2486 +#: initdb.c:2574 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only データベースファイルのsyncのみを実行して終了\n" -#: initdb.c:2487 +#: initdb.c:2575 #, c-format msgid "" "\n" @@ -747,17 +777,17 @@ msgstr "" "\n" "その他のオプション:\n" -#: initdb.c:2488 +#: initdb.c:2576 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: initdb.c:2489 +#: initdb.c:2577 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: initdb.c:2490 +#: initdb.c:2578 #, c-format msgid "" "\n" @@ -767,7 +797,7 @@ msgstr "" "\n" "データディレクトリが指定されない場合、PGDATA環境変数が使用されます。\n" -#: initdb.c:2492 +#: initdb.c:2580 #, c-format msgid "" "\n" @@ -776,72 +806,72 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: initdb.c:2493 +#: initdb.c:2581 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: initdb.c:2517 +#: initdb.c:2605 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "\"%2$s\"接続では認証方式\"%1$s\"は無効です" -#: initdb.c:2531 +#: initdb.c:2619 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "パスワード認証を有効にするにはスーパーユーザーのパスワードを指定する必要があります" -#: initdb.c:2550 +#: initdb.c:2638 #, c-format msgid "no data directory specified" msgstr "データディレクトリが指定されていません" -#: initdb.c:2551 +#: initdb.c:2639 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "データベースシステムのデータを格納するディレクトリを指定する必要があります。実行時オプション -D、もしくは、PGDATA環境変数で指定してください。" -#: initdb.c:2568 +#: initdb.c:2656 #, c-format msgid "could not set environment" msgstr "環境を設定できません" -#: initdb.c:2586 +#: initdb.c:2674 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "%2$sにはプログラム\"%1$s\"が必要ですが、\"%3$s\"と同じディレクトリにはありませんでした。" -#: initdb.c:2589 +#: initdb.c:2677 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした。" -#: initdb.c:2604 +#: initdb.c:2692 #, c-format msgid "input file location must be an absolute path" msgstr "入力ファイルの場所は絶対パスでなければなりません" -#: initdb.c:2621 +#: initdb.c:2709 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "データベースクラスタはロケール\"%s\"で初期化されます。\n" -#: initdb.c:2624 +#: initdb.c:2712 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "データベースクラスタは以下のロケール構成で初期化されます。\n" -#: initdb.c:2625 +#: initdb.c:2713 #, c-format msgid " locale provider: %s\n" msgstr " ロケールプロバイダ:%s\n" -#: initdb.c:2627 +#: initdb.c:2715 #, c-format msgid " default collation: %s\n" msgstr " デフォルト照合順序:%s\n" -#: initdb.c:2628 +#: initdb.c:2716 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -858,22 +888,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2658 +#: initdb.c:2746 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "ロケール\"%s\"に対して適切な符号化方式がありませんでした" -#: initdb.c:2660 +#: initdb.c:2748 #, c-format msgid "Rerun %s with the -E option." msgstr "-Eオプションを付けて%sを再実行してください。" -#: initdb.c:2661 initdb.c:3204 initdb.c:3324 initdb.c:3344 +#: initdb.c:2749 initdb.c:3287 initdb.c:3413 initdb.c:3433 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: initdb.c:2673 +#: initdb.c:2761 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -883,112 +913,112 @@ msgstr "" "符号化方式として使用できません。\n" "デフォルトのデータベース符号化方式は代わりに\"%s\"に設定されます。\n" -#: initdb.c:2678 +#: initdb.c:2766 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "ロケール\"%s\"は非サポートの符号化方式\"%s\"を必要とします" -#: initdb.c:2680 +#: initdb.c:2768 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "符号化方式\"%s\"はサーバー側の符号化方式として使用できません。" -#: initdb.c:2682 +#: initdb.c:2770 #, c-format msgid "Rerun %s with a different locale selection." msgstr "別のローケルを選択して%sを再実行してください。" -#: initdb.c:2690 +#: initdb.c:2778 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "デフォルトのデータベース符号化方式はそれに対応して%sに設定されました。\n" -#: initdb.c:2704 +#: initdb.c:2794 #, c-format msgid "builtin provider locale \"%s\" requires encoding \"%s\"" msgstr "組み込みプロバイダロケール\"%s\"は符号化方式\"%s\"を必要とします" -#: initdb.c:2766 +#: initdb.c:2856 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "ロケール\"%s\"用の適切なテキスト検索設定が見つかりませんでした" -#: initdb.c:2777 +#: initdb.c:2867 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "ロケール\"%s\"に適したテキスト検索設定が不明です" -#: initdb.c:2782 +#: initdb.c:2872 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "指定したテキスト検索設定\"%s\"がロケール\"%s\"に合わない可能性があります" -#: initdb.c:2787 +#: initdb.c:2877 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "デフォルトのテキスト検索構成は %s に設定されます。\n" -#: initdb.c:2830 initdb.c:2901 +#: initdb.c:2911 initdb.c:2982 #, c-format msgid "creating directory %s ... " msgstr "ディレクトリ%sを作成しています ... " -#: initdb.c:2835 initdb.c:2906 initdb.c:2954 initdb.c:3011 +#: initdb.c:2916 initdb.c:2987 initdb.c:3035 initdb.c:3092 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" -#: initdb.c:2844 initdb.c:2916 +#: initdb.c:2925 initdb.c:2997 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "ディレクトリ%sの権限を設定しています ... " -#: initdb.c:2849 initdb.c:2921 +#: initdb.c:2930 initdb.c:3002 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を変更できませんでした: %m" -#: initdb.c:2861 initdb.c:2933 +#: initdb.c:2942 initdb.c:3014 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "ディレクトリ\"%s\"は存在しますが、空ではありません" -#: initdb.c:2865 +#: initdb.c:2946 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "新規にデータベースシステムを作成したいのであれば、ディレクトリ\"%s\"を削除あるいは空にする、または%sを\"%s\"以外の引数で実行してください。" -#: initdb.c:2873 initdb.c:2943 initdb.c:3369 +#: initdb.c:2954 initdb.c:3024 initdb.c:3458 #, c-format msgid "could not access directory \"%s\": %m" msgstr "ディレクトリ\"%s\"にアクセスできませんでした: %m" -#: initdb.c:2894 +#: initdb.c:2975 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL ディレクトリの位置は、絶対パスでなければなりません" -#: initdb.c:2937 +#: initdb.c:3018 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "そこにWALを格納したい場合は、ディレクトリ\"%s\"を削除するか空にしてください。" -#: initdb.c:2947 +#: initdb.c:3028 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を作成できませんでした: %m" -#: initdb.c:2966 +#: initdb.c:3047 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "おそらくマウントポイントであることに起因した先頭がドットであるファイル、または不可視なファイルが含まれています。" -#: initdb.c:2968 +#: initdb.c:3049 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "おそらくマウントポイントであることに起因したlost+foundディレクトリが含まれています。" -#: initdb.c:2970 +#: initdb.c:3051 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -997,65 +1027,65 @@ msgstr "" "マウントポイントであるディレクトリをデータディレクトリとして使用することはお勧めしません。\n" "この下にサブディレクトリを作成してください。" -#: initdb.c:2997 +#: initdb.c:3078 #, c-format msgid "creating subdirectories ... " msgstr "サブディレクトリを作成しています ... " -#: initdb.c:3040 +#: initdb.c:3121 msgid "performing post-bootstrap initialization ... " msgstr "ブートストラップ後の初期化を実行しています ... " -#: initdb.c:3203 +#: initdb.c:3286 #, c-format msgid "-c %s requires a value" msgstr "-c %sは値が必要です" -#: initdb.c:3228 +#: initdb.c:3311 #, c-format msgid "Running in debug mode.\n" msgstr "デバッグモードで実行しています。\n" -#: initdb.c:3232 +#: initdb.c:3315 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "no-clean モードで実行しています。失敗した状況は削除されません。\n" -#: initdb.c:3305 +#: initdb.c:3388 #, c-format msgid "unrecognized locale provider: %s" msgstr "認識できない照合順序プロバイダ: %s" -#: initdb.c:3342 +#: initdb.c:3431 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: initdb.c:3349 initdb.c:3353 initdb.c:3357 +#: initdb.c:3438 initdb.c:3442 initdb.c:3446 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "ロケールプロバイダ\"%2$s\"が選択されていなければ%1$sは指定できません" -#: initdb.c:3371 initdb.c:3434 +#: initdb.c:3460 initdb.c:3523 msgid "syncing data to disk ... " msgstr "データをディスクに同期しています ... " -#: initdb.c:3379 +#: initdb.c:3468 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "パスワードプロンプトとパスワードファイルは同時に指定できません" -#: initdb.c:3390 +#: initdb.c:3479 #, c-format msgid "argument of %s must be a power of two between 1 and 1024" msgstr "%sの引数は1から1024までの間の2の累乗でなければなりません" -#: initdb.c:3403 +#: initdb.c:3492 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "スーパーユーザー名\"%s\"は許可されません; ロール名は\"pg_\"で始めることはできません" -#: initdb.c:3405 +#: initdb.c:3494 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1066,17 +1096,17 @@ msgstr "" "このユーザーをサーバープロセスの所有者とする必要があります。\n" "\n" -#: initdb.c:3421 +#: initdb.c:3510 #, c-format msgid "Data page checksums are enabled.\n" msgstr "データページのチェックサムは有効です。\n" -#: initdb.c:3423 +#: initdb.c:3512 #, c-format msgid "Data page checksums are disabled.\n" msgstr "データベージのチェックサムは無効です。\n" -#: initdb.c:3440 +#: initdb.c:3529 #, c-format msgid "" "\n" @@ -1087,22 +1117,22 @@ msgstr "" "ディスクへの同期がスキップされました。\n" "オペレーティングシステムがクラッシュした場合データディレクトリは破損されるかもしれません。\n" -#: initdb.c:3445 +#: initdb.c:3534 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "ローカル接続に対して\"trust\"認証を有効にします " -#: initdb.c:3446 +#: initdb.c:3535 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "pg_hba.confを編集する、もしくは、次回initdbを実行する時に -A オプション、あるいは --auth-local および --auth-host オプションを使用することで変更できます。" #. translator: This is a placeholder in a shell command. -#: initdb.c:3476 +#: initdb.c:3565 msgid "logfile" msgstr "ログファイル" -#: initdb.c:3478 +#: initdb.c:3567 #, c-format msgid "" "\n" diff --git a/src/bin/initdb/po/ka.po b/src/bin/initdb/po/ka.po index 898a421cb4c2a..fe27c8f866e00 100644 --- a/src/bin/initdb/po/ka.po +++ b/src/bin/initdb/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: initdb (PostgreSQL) 17\n" +"Project-Id-Version: initdb (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:21+0000\n" -"PO-Revision-Date: 2024-06-14 06:11+0200\n" +"POT-Creation-Date: 2025-03-27 22:52+0000\n" +"PO-Revision-Date: 2025-03-28 03:57+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,24 +16,24 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " @@ -58,28 +58,28 @@ msgstr "გასაშვებად ფაილის \"%s\" პოვნა msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "ბილიკის (\"%s\") აბსოლუტურ ფორმაში ამოხსნის შეცდომა: %m" -#: ../../common/exec.c:382 initdb.c:695 +#: ../../common/exec.c:363 initdb.c:753 #, c-format msgid "could not execute command \"%s\": %m" msgstr "ბრძანების (\"%s\") შესრულების შეცდომა: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "ბრძანებიდან \"%s\" წაკითხვის შეცდომა: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "ბრძანებამ \"%s\" მონაცემები არ დააბრუნა" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s()-ის შეცდომა: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 -#: initdb.c:353 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 +#: initdb.c:375 initdb.c:411 #, c-format msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" @@ -95,46 +95,46 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -243,12 +243,12 @@ msgstr "%s არაა საზღვრებში %d-დან %d-მდე msgid "unrecognized sync method: %s" msgstr "უცნობი სინქრონიზაციის მეთოდი: \"%s\"" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" @@ -263,274 +263,294 @@ msgstr "\"%s\"-ისთვის შეერთების დაყენე msgid "could not get junction for \"%s\": %s\n" msgstr "\"%s\"-ისთვის შეერთების მიღება ვერ მოხერხდა: %s\n" -#: initdb.c:627 initdb.c:1619 +#: initdb.c:372 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale() ჩავარდა" + +#: initdb.c:379 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale() ჩავარდა" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale" +msgstr "ძველი ლოკალის აღდგენა ჩავარდა" + +#: initdb.c:396 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "ძველი ენის (\"%s\") აღდგენის შეცდომა" + +#: initdb.c:685 initdb.c:1705 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: initdb.c:671 initdb.c:975 initdb.c:995 +#: initdb.c:729 initdb.c:1035 initdb.c:1055 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "ფაილის (\"%s\") ჩასაწერად გახსნა შეუძლებელია: %m" -#: initdb.c:675 initdb.c:978 initdb.c:997 +#: initdb.c:733 initdb.c:1038 initdb.c:1057 #, c-format msgid "could not write file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: initdb.c:679 +#: initdb.c:737 #, c-format msgid "could not close file \"%s\": %m" msgstr "ფაილის (%s) დახურვის შეცდომა: %m" -#: initdb.c:713 +#: initdb.c:771 #, c-format msgid "removing data directory \"%s\"" msgstr "მონაცემების საქაღალდის წაშლა \"%s\"" -#: initdb.c:715 +#: initdb.c:773 #, c-format msgid "failed to remove data directory" msgstr "მონაცემების საქაღალდის წაშლის შეცდომა" -#: initdb.c:719 +#: initdb.c:777 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "მონაცემების საქაღალდის შემცველობის წაშლა \"%s\"" -#: initdb.c:722 +#: initdb.c:780 #, c-format msgid "failed to remove contents of data directory" msgstr "მონაცემების საქაღალდის შემცველობის წაშლის შეცდომა" -#: initdb.c:727 +#: initdb.c:785 #, c-format msgid "removing WAL directory \"%s\"" msgstr "მიმდინარეობს WAL საქაღალდის წაშლა \"%s\"" -#: initdb.c:729 +#: initdb.c:787 #, c-format msgid "failed to remove WAL directory" msgstr "შეცდომა WAL საქაღალდის წაშლისას" -#: initdb.c:733 +#: initdb.c:791 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "მიმდინარეობს WAL საქაღალდის (\"%s\") შემცველობის წაშლა" -#: initdb.c:735 +#: initdb.c:793 #, c-format msgid "failed to remove contents of WAL directory" msgstr "შეცდომა WAL საქაღალდის შემცველობის წაშლისას" -#: initdb.c:742 +#: initdb.c:800 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "მონაცემების საქაღალდე \"%s\" მომხმარებლის მოთხოვნისას არ წაიშლება" -#: initdb.c:746 +#: initdb.c:804 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "WAL საქაღალდე \"%s\" მომხმარებლის მოთხოვნისას არ წაიშლება" -#: initdb.c:764 +#: initdb.c:822 #, c-format msgid "cannot be run as root" msgstr "root-ით ვერ გაეშვება" -#: initdb.c:765 +#: initdb.c:823 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "შედით (ან გამოიყენეთ \"su\") არაპრივილეგირებული მომხმარებლით, რომელიც სერვერს პროცესის მფლობელი იქნება." -#: initdb.c:797 +#: initdb.c:855 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" კოდირების სწორ სახელს არ წარმოადგენს" -#: initdb.c:941 +#: initdb.c:1001 #, c-format msgid "file \"%s\" does not exist" msgstr "ფაილი %s არ არსებობს" -#: initdb.c:942 initdb.c:947 initdb.c:954 +#: initdb.c:1002 initdb.c:1007 initdb.c:1014 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "შეიძლება ნიშნავდეს, რომ თქვენი დაყენებული ვერსია გაფუჭებულია ან -L -ს არასწორი საქაღალდე მიუთითეთ." -#: initdb.c:946 +#: initdb.c:1006 #, c-format msgid "could not access file \"%s\": %m" msgstr "ფაილის (%s) წვდომის შეცდომა: %m" -#: initdb.c:953 +#: initdb.c:1013 #, c-format msgid "file \"%s\" is not a regular file" msgstr "ფაილ \"%s\" ჩვეულებრივი ფაილი არაა" -#: initdb.c:1086 +#: initdb.c:1158 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "დინამიკური გაზიარებული მეხსიერების იმპლემენტაციის არჩევა ... " -#: initdb.c:1095 +#: initdb.c:1168 #, c-format msgid "selecting default \"max_connections\" ... " msgstr "ნაგულისხმევი \"max_connections\"-ის არჩევა … " -#: initdb.c:1115 +#: initdb.c:1193 +#, c-format +msgid "selecting default \"autovacuum_worker_slots\" ... %d\n" +msgstr "მიმდინარეობს ნაგულისხმევი \"autovacuum_worker_slots\"-ის არჩევა ... %d\n" + +#: initdb.c:1196 #, c-format msgid "selecting default \"shared_buffers\" ... " msgstr "ნაგულისხმევი \"shared_buffers\"-ის არჩევა … " -#: initdb.c:1138 +#: initdb.c:1219 #, c-format msgid "selecting default time zone ... " msgstr "დროის ნაგულისხმევი სარტყლის არჩევა … " -#: initdb.c:1217 +#: initdb.c:1299 msgid "creating configuration files ... " msgstr "კონფიგურაციის ფაილების შექმნა … " -#: initdb.c:1370 initdb.c:1384 initdb.c:1451 initdb.c:1462 +#: initdb.c:1456 initdb.c:1470 initdb.c:1537 initdb.c:1548 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "\"%s\"-ის წვდომების შეცვლის შეცდომა: %m" -#: initdb.c:1481 +#: initdb.c:1567 #, c-format msgid "running bootstrap script ... " msgstr "მოსამზადებელი სკრიპტის გაშვება ... " -#: initdb.c:1493 +#: initdb.c:1579 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "შეყვანილი ფაილი \"%s\" PostgreSQL %s -ს არ ეკუთვნის" -#: initdb.c:1495 +#: initdb.c:1581 #, c-format msgid "Specify the correct path using the option -L." msgstr "მიუთითეთ სწორი ბილიკი -L პარამეტრით." -#: initdb.c:1597 +#: initdb.c:1683 msgid "Enter new superuser password: " msgstr "შეიყვანეთ ზემომხმარებლის ახალი პაროლი: " -#: initdb.c:1598 +#: initdb.c:1684 msgid "Enter it again: " msgstr "შეიყვანეთ კდევ ერთხელ: " -#: initdb.c:1601 +#: initdb.c:1687 #, c-format msgid "Passwords didn't match.\n" msgstr "პაროლები არ ემთხვევა.\n" -#: initdb.c:1625 +#: initdb.c:1711 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "პაროლის ფაილიდან (\"%s\") წაკითხვის შეცდომა: %m" -#: initdb.c:1628 +#: initdb.c:1714 #, c-format msgid "password file \"%s\" is empty" msgstr "პაროლის ფაილი (\"%s\") ცარიელია" -#: initdb.c:2040 +#: initdb.c:2126 #, c-format msgid "caught signal\n" msgstr "მიღებულია სიგნალი\n" -#: initdb.c:2046 +#: initdb.c:2132 #, c-format msgid "could not write to child process: %s\n" msgstr "შვილობილი პროცესისთვის ჩაწერის შეცდომა: %s\n" -#: initdb.c:2054 +#: initdb.c:2140 #, c-format msgid "ok\n" msgstr "დიახ\n" -#: initdb.c:2143 -#, c-format -msgid "setlocale() failed" -msgstr "setlocale()-ის შეცდომა" - -#: initdb.c:2161 +#: initdb.c:2222 initdb.c:2268 #, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "ძველი ენის (\"%s\") აღდგენის შეცდომა" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "ლოკალის სახელი \"%s\" არა-ASCII სიმბოლოებს შეიცავს" -#: initdb.c:2169 +#: initdb.c:2248 #, c-format msgid "invalid locale name \"%s\"" msgstr "ენის არასწორი სახელი: \"%s\"" -#: initdb.c:2170 +#: initdb.c:2249 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "თუ ლოკალის სახელი მხოლოდ მითითებული ICU-სთვისა ხელმისაწვდომი, გამოიყენეთ --icu-locale." -#: initdb.c:2183 +#: initdb.c:2262 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "ენის არასწორი პარამეტრები; გადაამოწმეთ გარემოს ცვლადები: LANG და LC_*" -#: initdb.c:2209 initdb.c:2233 +#: initdb.c:2293 initdb.c:2317 #, c-format msgid "encoding mismatch" msgstr "კოდირება არ ემთხვევა" -#: initdb.c:2210 +#: initdb.c:2294 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "თქვენ მიერ არჩეული კოდირება (%s) და კოდირება, რომელსაც არჩეული ენა იყენებს (%s) არ ემთხვევა. ეს სიმბოლოების სტრიქონების დამუშავების სხვადასხვა ფუნქციების არასწორ ქცევას გამოიწვევს." -#: initdb.c:2215 initdb.c:2236 +#: initdb.c:2299 initdb.c:2320 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "თავიდან გაუშვით %s და კოდირება ან არ მიუთითოთ, ან სწორად მიუთითეთ." -#: initdb.c:2234 +#: initdb.c:2318 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "თქვენს მიერ შერჩეული კოდირება (%s) ICU -ის მომწოდებელთან ერთად მხარდაუჭერელია." -#: initdb.c:2285 +#: initdb.c:2369 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "მდებარეობის კოდის \"%s\" ენის ჭდეში (%s) გადაყვანის შეცდომა" -#: initdb.c:2291 initdb.c:2343 initdb.c:2435 +#: initdb.c:2375 initdb.c:2427 initdb.c:2521 #, c-format msgid "ICU is not supported in this build" msgstr "ამ აგებაში ICU-ის მხარდაჭერა არ არსებბს" -#: initdb.c:2314 +#: initdb.c:2398 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "ლოკალიდან \"%s\" ენის მიღების შეცდომა: %s" -#: initdb.c:2340 +#: initdb.c:2424 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "ლოკალის \"%s\" ენა \"%s\" უცნობია" -#: initdb.c:2401 +#: initdb.c:2485 #, c-format msgid "locale must be specified if provider is %s" msgstr "ლოკალის მითითება აუცილებელია, თუ მომწოდებელია %s" -#: initdb.c:2412 +#: initdb.c:2498 #, c-format msgid "invalid locale name \"%s\" for builtin provider" msgstr "არასწორი ლოკალის სახელი \"%s\" ჩაშენებული მომწოდებლისთვის" -#: initdb.c:2423 +#: initdb.c:2509 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "ვიყენებ ენის ჭდეს \"%s\" ICU ლოკალისთვის \"%s\".\n" -#: initdb.c:2446 +#: initdb.c:2532 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -539,17 +559,17 @@ msgstr "" "%s PostgreSQL ბაზის კლასერის ინიციალიზაციას ახდენს.\n" "\n" -#: initdb.c:2447 +#: initdb.c:2533 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: initdb.c:2448 +#: initdb.c:2534 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [პარამეტრი]... [მონაცემებისსაქაღალდე]\n" -#: initdb.c:2449 +#: initdb.c:2535 #, c-format msgid "" "\n" @@ -558,57 +578,57 @@ msgstr "" "\n" "პარამეტრები:\n" -#: initdb.c:2450 +#: initdb.c:2536 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, --auth=მეთოდი ავთენტიკაციის ნაგულისხმევი მეთოდი ლოკალური შეერთებებისთვის\n" -#: initdb.c:2451 +#: initdb.c:2537 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr " --auth-host=მეთოდი ლოკალური TCP/IP შეერთების ავთენტიკაციის ნაგულისხმევი მეთოდი\n" -#: initdb.c:2452 +#: initdb.c:2538 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr " --auth-local=მეთოდი ლოკალური სოკეტის შეერთების ავთენტიკაციის ნაგულისხმევი მეთოდი\n" -#: initdb.c:2453 +#: initdb.c:2539 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATADIR ბაზის კლასტერის მდებარეობა\n" -#: initdb.c:2454 +#: initdb.c:2540 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=კოდირება ახალი ბაზების ნაგულისხმევი კოდირება\n" -#: initdb.c:2455 +#: initdb.c:2541 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr " -g, --allow-group-access მონაცემების საქაღალდეზე ჯგუფის კითხვა/გაშვების წვდომის დაყენება\n" -#: initdb.c:2456 +#: initdb.c:2542 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=კოდირება ICU ენის ID ახალი ბაზებისთვის\n" -#: initdb.c:2457 +#: initdb.c:2543 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" msgstr " --icu-rules=წესები ახალი ბაზებისთვის დამატებითი ICUკოლაციის წესების დაყენება\n" -#: initdb.c:2458 +#: initdb.c:2544 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums მონაცემების გვერდის საკონტროლო ჯამების გამოყენება\n" -#: initdb.c:2459 +#: initdb.c:2545 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=ენა ახალი ბაზების ნაგულისხმევი ენის დაყენება\n" -#: initdb.c:2460 +#: initdb.c:2546 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -621,12 +641,12 @@ msgstr "" " დააყენეთ ნაგულისხმევი ენა შესაბამის კატეგორიაში\n" " ახალი ბაზებისთვის (ნაგულისხმევი აღებულია გარემოდან)\n" -#: initdb.c:2464 +#: initdb.c:2550 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale იგივე, რაც --locale=C\n" -#: initdb.c:2465 +#: initdb.c:2551 #, c-format msgid "" " --builtin-locale=LOCALE\n" @@ -635,7 +655,7 @@ msgstr "" " --builtin-locale=ლოკალი\n" " ჩაშენებული ლოკალის სახელის დაყენება ახალი ბაზებისთვის\n" -#: initdb.c:2467 +#: initdb.c:2553 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -644,12 +664,17 @@ msgstr "" " --locale-provider={builtin|libc|icu}\n" " ახალი ბაზებისთვის ლოკალის ნაგულისხმევი მიმწოდებლის დაყენება\n" -#: initdb.c:2469 +#: initdb.c:2555 +#, c-format +msgid " --no-data-checksums do not use data page checksums\n" +msgstr " --no-data-checksums მონაცემების გვერდის საკონტროლო ჯამები გამოყენებული არ იქნება\n" + +#: initdb.c:2556 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=FILE ახალი ზემომხმარებლის პაროლის ფაილიდან წაკითხვა\n" -#: initdb.c:2470 +#: initdb.c:2557 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -658,27 +683,27 @@ msgstr "" " -T, --text-search-config=CFG\n" " ტექსტის ძებნის ნაგულისხმევი კონფიგურაცია\n" -#: initdb.c:2472 +#: initdb.c:2559 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=სახელი ბაზის ზემომხმარებლის სახელი\n" -#: initdb.c:2473 +#: initdb.c:2560 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt ზემომხმარებლის პაროლის კითხვა\n" -#: initdb.c:2474 +#: initdb.c:2561 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR წინასწარ ჩაწერადი ჟურნალის (WAL) საქაღალდის მდებარეობა\n" -#: initdb.c:2475 +#: initdb.c:2562 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=ზომა WAL სეგმენტების ზომა, მეგაბაიტებში\n" -#: initdb.c:2476 +#: initdb.c:2563 #, c-format msgid "" "\n" @@ -687,57 +712,63 @@ msgstr "" "\n" "იშვიათად გამოყენებული პარამეტრები:\n" -#: initdb.c:2477 +#: initdb.c:2564 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAME=VALUE სერვერის ნაგულისხმევი პარამეტრის გადაფარვა\n" -#: initdb.c:2478 +#: initdb.c:2565 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug გასამართი ინფორმაციის გენერაცია\n" -#: initdb.c:2479 +#: initdb.c:2566 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches debug_discard_caches=1 დაყენება\n" -#: initdb.c:2480 +#: initdb.c:2567 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L საქაღალდე შეყვანის ფაილების შემცველი საქაღალდე\n" -#: initdb.c:2481 +#: initdb.c:2568 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean შეცდომის შემთხვევაში არ გაასუფთავო\n" -#: initdb.c:2482 +#: initdb.c:2569 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: initdb.c:2483 +#: initdb.c:2570 +#, c-format +#| msgid " --no-data-checksums do not use data page checksums\n" +msgid " --no-sync-data-files do not sync files within database directories\n" +msgstr " --no-sync-data-files მონაცემთა საქაღალდეებს შორის ფაილების სინქრონიზაცია არ მოხდება\n" + +#: initdb.c:2571 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions შემდეგი ნაბიჯის ინსტრუქციები ნაჩვენები არ იქნება\n" -#: initdb.c:2484 +#: initdb.c:2572 #, c-format msgid " -s, --show show internal settings, then exit\n" msgstr " -s, --show შიდა პარამეტრების ჩვენება და გასვლა\n" -#: initdb.c:2485 +#: initdb.c:2573 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=მეთოდი ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: initdb.c:2486 +#: initdb.c:2574 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only ბაზის ფაილების დისკზე სინქრონიზაცია და გასვლა\n" -#: initdb.c:2487 +#: initdb.c:2575 #, c-format msgid "" "\n" @@ -746,17 +777,17 @@ msgstr "" "\n" "სხვა პარამეტრები:\n" -#: initdb.c:2488 +#: initdb.c:2576 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: initdb.c:2489 +#: initdb.c:2577 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: initdb.c:2490 +#: initdb.c:2578 #, c-format msgid "" "\n" @@ -767,7 +798,7 @@ msgstr "" "თუ მონაცემების საქაღალდე მითითებული არაა, გამოყენებული იქნება \n" "გარემოს ცვლადი PGDATA.\n" -#: initdb.c:2492 +#: initdb.c:2580 #, c-format msgid "" "\n" @@ -776,72 +807,72 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: initdb.c:2493 +#: initdb.c:2581 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: initdb.c:2517 +#: initdb.c:2605 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "ავთენტიკაციის მეთოდი (\"%s\") არასწორია \"%s\" შეერთებებისთვის" -#: initdb.c:2531 +#: initdb.c:2619 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "პაროლით ავთენტიკაციის ჩასართავად საჭიროა ზემომხმარებლის პაროლის მითითება" -#: initdb.c:2550 +#: initdb.c:2638 #, c-format msgid "no data directory specified" msgstr "მონაცემების საქაღალდე მითითებული არაა" -#: initdb.c:2551 +#: initdb.c:2639 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "უნდა დაადგინოთ საქაღლდე, სადაც ბაზის ამ სისტემის მონაცემები იქნება განთავსებული . გააკეთეთ ეს ან გამოძახების პარამეტრით -D ან გარემოს ცვლადით PGDATA." -#: initdb.c:2568 +#: initdb.c:2656 #, c-format msgid "could not set environment" msgstr "გარემოს დაყენების შეცდომა" -#: initdb.c:2586 +#: initdb.c:2674 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა" -#: initdb.c:2589 +#: initdb.c:2677 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s" -#: initdb.c:2604 +#: initdb.c:2692 #, c-format msgid "input file location must be an absolute path" msgstr "შეყვანის ფაილის მდებარეობა აბსტოლუტური ბილიკი უნდა იყოს" -#: initdb.c:2621 +#: initdb.c:2709 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "ბაზის კლასტერის ინიციალიზაცია ენით \"%s\".\n" -#: initdb.c:2624 +#: initdb.c:2712 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "ბაზის კლასტერის ინიციალიზაცია ენის ამ კონფიგურაციით მოხდება:\n" -#: initdb.c:2625 +#: initdb.c:2713 #, c-format msgid " locale provider: %s\n" msgstr " ლოკალის მომწოდებელი: %s\n" -#: initdb.c:2627 +#: initdb.c:2715 #, c-format msgid " default collation: %s\n" msgstr " ნაგულიხმევი კოლაცია: %s\n" -#: initdb.c:2628 +#: initdb.c:2716 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -858,22 +889,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2658 +#: initdb.c:2746 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "ენისთვის (\"%s\") შესაბამისი კოდირება ვერ ვიპოვე" -#: initdb.c:2660 +#: initdb.c:2748 #, c-format msgid "Rerun %s with the -E option." msgstr "გაუშვით %s თავიდან -E პარამეტრით." -#: initdb.c:2661 initdb.c:3204 initdb.c:3324 initdb.c:3344 +#: initdb.c:2749 initdb.c:3287 initdb.c:3413 initdb.c:3433 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: initdb.c:2673 +#: initdb.c:2761 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -882,112 +913,112 @@ msgstr "" "ენის ნაგულისხმევი „%s“ კოდირების დაყენება, სერვერის დასაშიფრად შეუძლებელია.\n" "სანაცვლოდ, ბაზის ნაგულისხმევი კოდირება დაყენდება „%s“.\n" -#: initdb.c:2678 +#: initdb.c:2766 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "ენას (\"%s\") მხარდაუჭერელი კოდირება (\"%s\") სჭირდება" -#: initdb.c:2680 +#: initdb.c:2768 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "%s სერვერის მხარეს კოდირება ვერ იქნება." -#: initdb.c:2682 +#: initdb.c:2770 #, c-format msgid "Rerun %s with a different locale selection." msgstr "%s-ის თავიდან გაშვება ენის სხვა არჩევანით." -#: initdb.c:2690 +#: initdb.c:2778 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "ბაზის ნაგულისხმევი კოდირება შესაბამისად დაყენებულია „%s“-ზე.\n" -#: initdb.c:2704 +#: initdb.c:2794 #, c-format msgid "builtin provider locale \"%s\" requires encoding \"%s\"" msgstr "ჩაშენებულ მომწოდებელს ლოკალისთვის \"%s\" ესაჭიროება კოდირება \"%s\"" -#: initdb.c:2766 +#: initdb.c:2856 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "ტექსტის ძებნის ენისთვის შესაფერისი კონფიგურაციის მოძებნა შეუძლებელია: \"%s\"" -#: initdb.c:2777 +#: initdb.c:2867 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "ტექსტის ძებნის ენისთვის შესაფერისი კონფიგურაცია არ არსებობს: \"%s\"" -#: initdb.c:2782 +#: initdb.c:2872 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "ტექსტის ძებნის მითითებული კონფიგურაცია \"%s\" ენას (\"%s\") არ ემთხვევა" -#: initdb.c:2787 +#: initdb.c:2877 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "ტექსტის ძებნის ნაგულისხმევი კონფიგურაცია \"%s\" იქნება.\n" -#: initdb.c:2830 initdb.c:2901 +#: initdb.c:2911 initdb.c:2982 #, c-format msgid "creating directory %s ... " msgstr "საქაღალდის (\"%s\") შექმნა .... " -#: initdb.c:2835 initdb.c:2906 initdb.c:2954 initdb.c:3011 +#: initdb.c:2916 initdb.c:2987 initdb.c:3035 initdb.c:3092 #, c-format msgid "could not create directory \"%s\": %m" msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" -#: initdb.c:2844 initdb.c:2916 +#: initdb.c:2925 initdb.c:2997 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "არსებულ საქაღალდეზე (\"%s\") წვდომების ჩასწორება ... " -#: initdb.c:2849 initdb.c:2921 +#: initdb.c:2930 initdb.c:3002 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "საქაღალდის წვდომების შეცვლა შეუძლებელია \"%s\": %m" -#: initdb.c:2861 initdb.c:2933 +#: initdb.c:2942 initdb.c:3014 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "საქაღალდე \"%s\" არსებობს, მაგრამ ცარიელი არაა" -#: initdb.c:2865 +#: initdb.c:2946 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "თუ გსურთ ბაზის ახალი სისტემის შექმნა, წაშალეთ ან დააცარიელეთ საქაღალდე, %s ან %s „%s“-ის გარდა არგუმენტით გაუშვით." -#: initdb.c:2873 initdb.c:2943 initdb.c:3369 +#: initdb.c:2954 initdb.c:3024 initdb.c:3458 #, c-format msgid "could not access directory \"%s\": %m" msgstr "საქაღალდის (%s) წვდომის შეცდომა: %m" -#: initdb.c:2894 +#: initdb.c:2975 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL საქაღალდის მდებარეობა აბსოლუტური ბილიკი უნდა იყოს" -#: initdb.c:2937 +#: initdb.c:3018 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "თუ გსურთ WAL-ის იქ შენახვა, წაშალეთ ან დააცარიელეთ საქაღალდე „%s“." -#: initdb.c:2947 +#: initdb.c:3028 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "სიმბმულის შექმნის შეცდომა %s: %m" -#: initdb.c:2966 +#: initdb.c:3047 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "ის შეიცავს წერტილით დაწყებულ/უხილავ ფაილს, შესაძლოა იმის გამო, რომ ის მიმაგრების წერტილია." -#: initdb.c:2968 +#: initdb.c:3049 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "ის შეიცავს lost+found საქაღალდეს. ალბათ იმის გამო, რომ ის მიმაგრების წერტილია." -#: initdb.c:2970 +#: initdb.c:3051 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -996,65 +1027,65 @@ msgstr "" "მიმაგრების წერტილის პირდაპირ მონაცემთა საქაღალდედ გამოყენება რეკომენდებული არაა.\n" "შექმენით ქვესაქაღალდე მიმაგრების წერტილის ქვეშ." -#: initdb.c:2997 +#: initdb.c:3078 #, c-format msgid "creating subdirectories ... " msgstr "ქვესაქაღალდეების შექმნა ... " -#: initdb.c:3040 +#: initdb.c:3121 msgid "performing post-bootstrap initialization ... " msgstr "პირველადი მომზადების შემდგომი ინიციალიზაციის შესრულება ... " -#: initdb.c:3203 +#: initdb.c:3286 #, c-format msgid "-c %s requires a value" msgstr "-c %s მნიშვნელობა სჭირდება" -#: initdb.c:3228 +#: initdb.c:3311 #, c-format msgid "Running in debug mode.\n" msgstr "გაშვებულია გამართვის რეჟიმში.\n" -#: initdb.c:3232 +#: initdb.c:3315 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "გაშვებულია მოუწმენდავ რეჟიმში. შეცდომები არ გაიწმინდება.\n" -#: initdb.c:3305 +#: initdb.c:3388 #, c-format msgid "unrecognized locale provider: %s" msgstr "ენის უცნობი მომწოდებელი: %s" -#: initdb.c:3342 +#: initdb.c:3431 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: initdb.c:3349 initdb.c:3353 initdb.c:3357 +#: initdb.c:3438 initdb.c:3442 initdb.c:3446 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s ვერ იქნება მითითებული, თუ ენის მომწოდებლად „%s“ არ არის არჩეული" -#: initdb.c:3371 initdb.c:3434 +#: initdb.c:3460 initdb.c:3523 msgid "syncing data to disk ... " msgstr "მონაცემების სინქრონიზაცია დისკზე ... " -#: initdb.c:3379 +#: initdb.c:3468 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "პაროლის მოთხოვნისა და პაროლის ფაილის ერთდროულად მითითება შეუძებელია" -#: initdb.c:3390 +#: initdb.c:3479 #, c-format msgid "argument of %s must be a power of two between 1 and 1024" msgstr "%s-ის არგუმენტი 2-ის ხარისხი უნდა იყოს 1-1024 შუალედიდან" -#: initdb.c:3403 +#: initdb.c:3492 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "ზემომხმარებლის სახელი \"%s\" უარყოფილია. როლის სახელებია \"pg_\"-ით ვერ დაიწყება" -#: initdb.c:3405 +#: initdb.c:3494 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1065,17 +1096,17 @@ msgstr "" "ეს მომხმარებელი სერვერის პროცესსაც უნდა ფლობდეს.\n" "\n" -#: initdb.c:3421 +#: initdb.c:3510 #, c-format msgid "Data page checksums are enabled.\n" msgstr "მონაცემების გვერდის საკონტროლო ჯამები ჩართულია.\n" -#: initdb.c:3423 +#: initdb.c:3512 #, c-format msgid "Data page checksums are disabled.\n" msgstr "მონაცემების გვერდის საკონტროლო ჯამები გამორთულია.\n" -#: initdb.c:3440 +#: initdb.c:3529 #, c-format msgid "" "\n" @@ -1086,22 +1117,22 @@ msgstr "" "დისკთან სინქრონიზაცია გამოტოვებულია.\n" "ოპერაციული სისტემის სიკვდილის შემთხვევაში მონაცემების საქაღალდე შეიძლება დაზიანდეს.\n" -#: initdb.c:3445 +#: initdb.c:3534 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "ლოკალური შეერთებებისთვის \"trust\" ავთენტიკაციის ჩართვა" -#: initdb.c:3446 +#: initdb.c:3535 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "შეცვლა შეგიძლიათ pg_hba.conf-ის რედაქტირებით ან როცა შემდეგ ჯერზე გაუშვებთ initdb-ს, -A, ან --auth-local და --auth-host-ის გამოყენებით." #. translator: This is a placeholder in a shell command. -#: initdb.c:3476 +#: initdb.c:3565 msgid "logfile" msgstr "ჟურნალის ფაილი" -#: initdb.c:3478 +#: initdb.c:3567 #, c-format msgid "" "\n" diff --git a/src/bin/initdb/po/ko.po b/src/bin/initdb/po/ko.po index 871c7ca7e6d9f..cc204fa046df1 100644 --- a/src/bin/initdb/po/ko.po +++ b/src/bin/initdb/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: initdb (PostgreSQL) 16\n" +"Project-Id-Version: initdb (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:50+0000\n" -"PO-Revision-Date: 2023-09-08 16:09+0900\n" +"POT-Creation-Date: 2025-01-17 04:51+0000\n" +"PO-Revision-Date: 2025-01-16 11:33+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -35,33 +35,48 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일임: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "\"%s\" 실행 파일을 찾을 수 없음" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 경로를 절대 경로로 바꿀 수 없음: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:750 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령에서 읽을 수 없음: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령이 아무 데이터도 반환하지 않음" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:372 initdb.c:408 #, c-format msgid "out of memory" msgstr "메모리 부족" @@ -77,35 +92,46 @@ msgstr "메모리 부족\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 중복할 수 없음 (내부 오류)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일 fsync 실패: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "\"%s\" 디렉터리 열 수 없음: %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "\"%s\" 파일 fsync 실패: %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" @@ -145,12 +171,12 @@ msgstr "제한된 토큰으로 재실행할 수 없음: 오류 코드 %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "하위 프로세스의 종료 코드를 구할 수 없음: 오류 코드 %lu" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "\"%s\" 파일을 지울 수 없음: %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 지울 수 없음: %m" @@ -199,6 +225,31 @@ msgstr "하위 프로세스가 종료되었음, 시그널 %d: %s" msgid "child process exited with unrecognized status %d" msgstr "하위 프로세스가 종료되었음, 알수 없는 상태 %d" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값은 %s 옵션 값으로 쓸 수 없음" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 값은 %d..%d 범위여야 함" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령의 인자에 줄바꿈 문자가 포함되어 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + #: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" @@ -209,87 +260,106 @@ msgstr "\"%s\" 파일의 연결을 설정할 수 없음: %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "\"%s\" 파일의 정션을 구할 수 없음: %s\n" -#: initdb.c:618 initdb.c:1613 +# # search5 끝 +# # advance 부분 +#: initdb.c:369 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale() 실패" + +# # search5 끝 +# # advance 부분 +#: initdb.c:376 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale() 실패" + +#: initdb.c:390 +#, c-format +msgid "failed to restore old locale" +msgstr "옛 로케일을 복원할 수 없음" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "\"%s\" 옛 로케일을 복원할 수 없음" + +#: initdb.c:682 initdb.c:1674 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:726 initdb.c:1030 initdb.c:1050 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "\"%s\" 파일 열기 실패: %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:730 initdb.c:1033 initdb.c:1052 #, c-format msgid "could not write file \"%s\": %m" msgstr "\"%s\" 파일 쓰기 실패: %m" -#: initdb.c:670 +#: initdb.c:734 #, c-format msgid "could not close file \"%s\": %m" msgstr "\"%s\" 파일을 닫을 수 없음: %m" -#: initdb.c:686 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "\"%s\" 명령을 실행할 수 없음: %m" - -#: initdb.c:704 +#: initdb.c:768 #, c-format msgid "removing data directory \"%s\"" msgstr "\"%s\" 데이터 디렉터리를 지우는 중" -#: initdb.c:706 +#: initdb.c:770 #, c-format msgid "failed to remove data directory" msgstr "데이터 디렉터리를 지우는데 실패" -#: initdb.c:710 +#: initdb.c:774 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "\"%s\" 데이터 디렉터리 안의 내용을 지우는 중" -#: initdb.c:713 +#: initdb.c:777 #, c-format msgid "failed to remove contents of data directory" msgstr "데이터 디렉터리 내용을 지우는데 실패" -#: initdb.c:718 +#: initdb.c:782 #, c-format msgid "removing WAL directory \"%s\"" msgstr "\"%s\" WAL 디렉터리를 지우는 중" -#: initdb.c:720 +#: initdb.c:784 #, c-format msgid "failed to remove WAL directory" msgstr "WAL 디렉터리를 지우는데 실패" -#: initdb.c:724 +#: initdb.c:788 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "\"%s\" WAL 디렉터리 안의 내용을 지우는 중" -#: initdb.c:726 +#: initdb.c:790 #, c-format msgid "failed to remove contents of WAL directory" msgstr "WAL 디렉터리 내용을 지우는데 실패" -#: initdb.c:733 +#: initdb.c:797 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "\"%s\" 데이터 디렉터리가 사용자의 요청으로 삭제되지 않았음" -#: initdb.c:737 +#: initdb.c:801 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "\"%s\" WAL 디렉터리가 사용자의 요청으로 삭제되지 않았음" -#: initdb.c:755 +#: initdb.c:819 #, c-format msgid "cannot be run as root" msgstr "root 권한으로 실행할 수 없음" -#: initdb.c:756 +#: initdb.c:820 #, c-format msgid "" "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own " @@ -298,17 +368,17 @@ msgstr "" "시스템관리자 권한이 없는, 서버프로세스의 소유주가 될 일반 사용자로 로그인 해" "서(\"su\" 같은 명령 이용) 실행하십시오." -#: initdb.c:788 +#: initdb.c:852 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" 인코딩은 서버 인코딩 이름을 사용할 수 없음" -#: initdb.c:932 +#: initdb.c:996 #, c-format msgid "file \"%s\" does not exist" msgstr "\"%s\" 파일 없음" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:997 initdb.c:1002 initdb.c:1009 #, c-format msgid "" "This might mean you have a corrupted installation or identified the wrong " @@ -317,131 +387,124 @@ msgstr "" "설치가 잘못되었거나 -L 호출 옵션으로 지정한 디렉터리가 잘못되었을 수 있습니" "다." -#: initdb.c:937 +#: initdb.c:1001 #, c-format msgid "could not access file \"%s\": %m" msgstr "\"%s\" 파일에 액세스할 수 없음: %m" -#: initdb.c:944 +#: initdb.c:1008 #, c-format msgid "file \"%s\" is not a regular file" msgstr "\"%s\" 파일은 일반 파일이 아님" -#: initdb.c:1077 +#: initdb.c:1141 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "사용할 동적 공유 메모리 관리방식을 선택하는 중 ... " -#: initdb.c:1086 +#: initdb.c:1150 #, c-format -msgid "selecting default max_connections ... " -msgstr "max_connections 초기값을 선택하는 중 ..." +msgid "selecting default \"max_connections\" ... " +msgstr "\"max_connections\" 초기값을 선택 중 ..." -#: initdb.c:1106 +#: initdb.c:1170 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "기본 shared_buffers를 선택하는 중... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "\"shared_buffers\" 초기값을 선택 중... " -#: initdb.c:1129 +#: initdb.c:1193 #, c-format msgid "selecting default time zone ... " msgstr "기본 지역 시간대를 선택 중 ... " -#: initdb.c:1206 +#: initdb.c:1272 msgid "creating configuration files ... " msgstr "환경설정 파일을 만드는 중 ..." -#: initdb.c:1367 initdb.c:1381 initdb.c:1448 initdb.c:1459 +#: initdb.c:1425 initdb.c:1439 initdb.c:1506 initdb.c:1517 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "\"%s\" 접근 권한을 바꿀 수 없음: %m" -#: initdb.c:1477 +#: initdb.c:1536 #, c-format msgid "running bootstrap script ... " msgstr "부트스트랩 스크립트 실행 중 ... " -#: initdb.c:1489 +#: initdb.c:1548 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "\"%s\" 입력 파일이 PostgreSQL %s 용이 아님" -#: initdb.c:1491 +#: initdb.c:1550 #, c-format msgid "Specify the correct path using the option -L." msgstr "-L 옵션으로 바른 경로를 지정하십시오." -#: initdb.c:1591 +#: initdb.c:1652 msgid "Enter new superuser password: " msgstr "새 superuser 암호를 입력하십시오:" -#: initdb.c:1592 +#: initdb.c:1653 msgid "Enter it again: " msgstr "암호 확인:" -#: initdb.c:1595 +#: initdb.c:1656 #, c-format msgid "Passwords didn't match.\n" msgstr "암호가 서로 틀립니다.\n" -#: initdb.c:1619 +#: initdb.c:1680 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "\"%s\" 파일에서 암호를 읽을 수 없음: %m" -#: initdb.c:1622 +#: initdb.c:1683 #, c-format msgid "password file \"%s\" is empty" msgstr "\"%s\" 패스워드 파일이 비어있음" -#: initdb.c:2034 +#: initdb.c:2095 #, c-format msgid "caught signal\n" msgstr "시스템의 간섭 신호(signal) 받았음\n" -#: initdb.c:2040 +#: initdb.c:2101 #, c-format msgid "could not write to child process: %s\n" msgstr "하위 프로세스에 쓸 수 없음: %s\n" -#: initdb.c:2048 +#: initdb.c:2109 #, c-format msgid "ok\n" msgstr "완료\n" -# # search5 끝 -# # advance 부분 -#: initdb.c:2137 +#: initdb.c:2191 initdb.c:2237 #, c-format -msgid "setlocale() failed" -msgstr "setlocale() 실패" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "\"%s\" 로케일 이름에 ASCII 문자가 아닌 것이 있음" -#: initdb.c:2155 -#, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "\"%s\" 옛 로케일을 복원할 수 없음" - -#: initdb.c:2163 +#: initdb.c:2217 #, c-format msgid "invalid locale name \"%s\"" msgstr "\"%s\" 로케일 이름이 잘못됨" -#: initdb.c:2164 +#: initdb.c:2218 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "ICU 로케일 이름을 사용하려면, --icu-locale 옵션을 사용하세요." -#: initdb.c:2177 +#: initdb.c:2231 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "잘못된 로케일 설정; LANG 또는 LC_* OS 환경 변수를 확인하세요" -#: initdb.c:2203 initdb.c:2227 +#: initdb.c:2262 initdb.c:2286 #, c-format msgid "encoding mismatch" msgstr "인코딩 불일치" -#: initdb.c:2204 +#: initdb.c:2263 #, c-format msgid "" "The encoding you selected (%s) and the encoding that the selected locale " @@ -451,7 +514,7 @@ msgstr "" "선택한 인코딩(%s)과 선택한 로케일에서 사용하는 인코딩(%s)이 일치하지 않습니" "다. 이로 인해 여러 문자열 처리 함수에 오작동이 발생할 수 있습니다." -#: initdb.c:2209 initdb.c:2230 +#: initdb.c:2268 initdb.c:2289 #, c-format msgid "" "Rerun %s and either do not specify an encoding explicitly, or choose a " @@ -460,42 +523,47 @@ msgstr "" "암묵적으로 지정된 인코딩이 마음에 들지 않으면 지정할 수 있는 인코딩을 지정해" "서 %s 작업을 다시 하세요." -#: initdb.c:2228 +#: initdb.c:2287 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "지정한 %s 인코딩을 ICU 제공자가 지원하지 않습니다." -#: initdb.c:2279 +#: initdb.c:2338 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "\"%s\" 로케일 이름을 로케일 태그로 바꿀 수 없음: %s" -#: initdb.c:2285 initdb.c:2337 initdb.c:2416 +#: initdb.c:2344 initdb.c:2396 initdb.c:2488 #, c-format msgid "ICU is not supported in this build" msgstr "ICU 지원 기능을 뺀 채로 서버가 만들어졌습니다." -#: initdb.c:2308 +#: initdb.c:2367 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "\"%s\" 로케일에서 언어를 찾을 수 없음: %s" -#: initdb.c:2334 +#: initdb.c:2393 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "\"%s\" 로케일은 \"%s\" 라는 알 수 없는 언어를 사용함" -#: initdb.c:2400 +#: initdb.c:2454 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "제공자가 %s 인경우 로케일을 지정해야 함" + +#: initdb.c:2465 #, c-format -msgid "ICU locale must be specified" -msgstr "ICU 로케일을 지정해야합니다." +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "내장 제공자용 \"%s\" 로케일 이름이 잘못됨" -#: initdb.c:2404 +#: initdb.c:2476 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "\"%s\" 로케일 태그를 사용함, 해당 ICU 로케일: \"%s\"\n" -#: initdb.c:2427 +#: initdb.c:2499 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -504,17 +572,17 @@ msgstr "" "%s PostgreSQL 데이터베이스 클러스터를 초기화 하는 프로그램.\n" "\n" -#: initdb.c:2428 +#: initdb.c:2500 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: initdb.c:2429 +#: initdb.c:2501 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [옵션]... [DATADIR]\n" -#: initdb.c:2430 +#: initdb.c:2502 #, c-format msgid "" "\n" @@ -523,50 +591,50 @@ msgstr "" "\n" "옵션들:\n" -#: initdb.c:2431 +#: initdb.c:2503 #, c-format msgid "" " -A, --auth=METHOD default authentication method for local " "connections\n" msgstr " -A, --auth=METHOD 로컬 연결의 기본 인증 방법\n" -#: initdb.c:2432 +#: initdb.c:2504 #, c-format msgid "" " --auth-host=METHOD default authentication method for local TCP/IP " "connections\n" msgstr " --auth-host=METHOD local TCP/IP 연결에 대한 기본 인증 방법\n" -#: initdb.c:2433 +#: initdb.c:2505 #, c-format msgid "" " --auth-local=METHOD default authentication method for local-socket " "connections\n" msgstr " --auth-local=METHOD local-socket 연결에 대한 기본 인증 방법\n" -#: initdb.c:2434 +#: initdb.c:2506 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATADIR 새 데이터베이스 클러스터를 만들 디렉터리\n" -#: initdb.c:2435 +#: initdb.c:2507 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=ENCODING 새 데이터베이스의 기본 인코딩\n" -#: initdb.c:2436 +#: initdb.c:2508 #, c-format msgid "" " -g, --allow-group-access allow group read/execute on data directory\n" msgstr "" " -g, --allow-group-access 데이터 디렉터리를 그룹이 읽고 접근할 있게 함\n" -#: initdb.c:2437 +#: initdb.c:2509 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOCALE 새 데이터베이스의 ICU 로케일 ID 지정\n" -#: initdb.c:2438 +#: initdb.c:2510 #, c-format msgid "" " --icu-rules=RULES set additional ICU collation rules for new " @@ -575,17 +643,17 @@ msgstr "" " --icu-rules=RULES 새 데이터베이스의 추가 ICU 문자열 정렬 규칙을 지" "정\n" -#: initdb.c:2439 +#: initdb.c:2511 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums 자료 페이지 체크섬 사용\n" -#: initdb.c:2440 +#: initdb.c:2512 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=LOCALE 새 데이터베이스의 기본 로케일 설정\n" -#: initdb.c:2441 +#: initdb.c:2513 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -599,27 +667,36 @@ msgstr "" " 새 데이터베이스의 각 범주에 기본 로케일 설정\n" " (환경에서 가져온 기본 값)\n" -#: initdb.c:2445 +#: initdb.c:2517 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale -locale=C와 같음\n" -#: initdb.c:2446 +#: initdb.c:2518 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" --builtin-locale=LOCALE\n" +" 새 데이터베이스용 내장 로케일 이름 지정\n" + +#: initdb.c:2520 +#, c-format +msgid "" +" --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " 새 데이터베이스의 로케일 제공자 지정\n" -#: initdb.c:2448 +#: initdb.c:2522 #, c-format msgid "" " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=FILE 파일에서 새 superuser의 암호 읽기\n" -#: initdb.c:2449 +#: initdb.c:2523 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -628,29 +705,29 @@ msgstr "" " -T, --text-search-config=CFG\n" " 기본 텍스트 검색 구성\n" -#: initdb.c:2451 +#: initdb.c:2525 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=NAME 데이터베이스 superuser 이름\n" -#: initdb.c:2452 +#: initdb.c:2526 #, c-format msgid "" " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt 새 superuser 암호를 입력 받음\n" -#: initdb.c:2453 +#: initdb.c:2527 #, c-format msgid "" " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR 트랜잭션 로그 디렉터리 위치\n" -#: initdb.c:2454 +#: initdb.c:2528 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE WAL 조각 파일 크기, MB단위\n" -#: initdb.c:2455 +#: initdb.c:2529 #, c-format msgid "" "\n" @@ -659,33 +736,33 @@ msgstr "" "\n" "덜 일반적으로 사용되는 옵션들:\n" -#: initdb.c:2456 +#: initdb.c:2530 #, c-format msgid "" " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAME=VALUE 서버 매개 변수 기본 설정을 바꿈\n" -#: initdb.c:2457 +#: initdb.c:2531 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug 디버깅에 필요한 정보들도 함께 출력함\n" -#: initdb.c:2458 +#: initdb.c:2532 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches debug_discard_caches=1 지정\n" -#: initdb.c:2459 +#: initdb.c:2533 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L DIRECTORY 입력파일들이 있는 디렉터리\n" -#: initdb.c:2460 +#: initdb.c:2534 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean 오류가 발생되었을 경우 그대로 둠\n" -#: initdb.c:2461 +#: initdb.c:2535 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -693,23 +770,28 @@ msgid "" msgstr "" " -N, --no-sync 작업 완료 뒤 디스크 동기화 작업을 하지 않음\n" -#: initdb.c:2462 +#: initdb.c:2536 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions 다음 작업을 위해 구성 정보를 출력 안함\n" -#: initdb.c:2463 +#: initdb.c:2537 +#, c-format +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show 내부 설정값들을 보여주고 마침\n" + +#: initdb.c:2538 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show 내부 설정값들을 보여줌\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD 파일을 디스크에 동기화 하는 방법 지정\n" -#: initdb.c:2464 +#: initdb.c:2539 #, c-format msgid "" " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only 데이터 디렉터리만 동기화하고 마침\n" -#: initdb.c:2465 +#: initdb.c:2540 #, c-format msgid "" "\n" @@ -718,17 +800,17 @@ msgstr "" "\n" "기타 옵션:\n" -#: initdb.c:2466 +#: initdb.c:2541 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: initdb.c:2467 +#: initdb.c:2542 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: initdb.c:2468 +#: initdb.c:2543 #, c-format msgid "" "\n" @@ -738,7 +820,7 @@ msgstr "" "\n" "데이터 디렉터리를 지정하지 않으면, PGDATA 환경 변수값을 사용합니다.\n" -#: initdb.c:2470 +#: initdb.c:2545 #, c-format msgid "" "\n" @@ -747,28 +829,28 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: initdb.c:2471 +#: initdb.c:2546 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: initdb.c:2499 +#: initdb.c:2570 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "\"%s\" 인증 방법은 \"%s\" 연결에서는 사용할 수 없음" -#: initdb.c:2513 +#: initdb.c:2584 #, c-format msgid "" "must specify a password for the superuser to enable password authentication" msgstr "비밀번호 인증방식을 사용하려면, 반드시 superuser의 암호를 지정해야함" -#: initdb.c:2532 +#: initdb.c:2603 #, c-format msgid "no data directory specified" msgstr "데이터 디렉터리를 지정하지 않았음" -#: initdb.c:2533 +#: initdb.c:2604 #, c-format msgid "" "You must identify the directory where the data for this database system will " @@ -778,12 +860,12 @@ msgstr "" "이 작업을 진행하려면, 반드시 이 데이터 디렉터리를 지정해 주어야합니다. 지정하" "는 방법은 -D 옵션의 값이나, PGDATA 환경 변수값으로 지정해 주면 됩니 다." -#: initdb.c:2550 +#: initdb.c:2621 #, c-format msgid "could not set environment" msgstr "환경 변수를 지정할 수 없음" -#: initdb.c:2568 +#: initdb.c:2639 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " @@ -792,40 +874,40 @@ msgstr "" "\"%s\" 프로그램이 %s 작업에서 필요합니다. 그런데, 이 파일이 \"%s\" 파일이 있" "는 디렉터리안에 없습니다." -#: initdb.c:2571 +#: initdb.c:2642 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "\"%s\" 프로그램을 \"%s\" 작업 때문에 찾았지만 이 파일은 %s 프로그램의 버전과 " "다릅니다." -#: initdb.c:2586 +#: initdb.c:2657 #, c-format msgid "input file location must be an absolute path" msgstr "입력 파일 위치는 반드시 절대경로여야함" -#: initdb.c:2603 +#: initdb.c:2674 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "데이터베이스 클러스터는 \"%s\" 로케일으로 초기화될 것입니다.\n" -#: initdb.c:2606 +#: initdb.c:2677 #, c-format msgid "" "The database cluster will be initialized with this locale configuration:\n" msgstr "데이터베이스 클러스터는 아래 로케일 환경으로 초기화될 것입니다:\n" -#: initdb.c:2607 +#: initdb.c:2678 #, c-format -msgid " provider: %s\n" -msgstr " 제공자: %s\n" +msgid " locale provider: %s\n" +msgstr " 로케일 제공자: %s\n" -#: initdb.c:2609 +#: initdb.c:2680 #, c-format -msgid " ICU locale: %s\n" -msgstr " ICU 로케일: %s\n" +msgid " default collation: %s\n" +msgstr " 기본 문자정렬: %s\n" -#: initdb.c:2610 +#: initdb.c:2681 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -842,22 +924,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2640 +#: initdb.c:2711 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "\"%s\" 로케일에 알맞은 인코딩을 찾을 수 없음" -#: initdb.c:2642 +#: initdb.c:2713 #, c-format msgid "Rerun %s with the -E option." msgstr "-E 옵션 지정해서 %s 작업을 다시 하세요." -#: initdb.c:2643 initdb.c:3176 initdb.c:3284 initdb.c:3304 +#: initdb.c:2714 initdb.c:3257 initdb.c:3377 initdb.c:3397 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: initdb.c:2655 +#: initdb.c:2726 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -866,73 +948,78 @@ msgstr "" "\"%s\" 인코딩을 서버측 인코딩으로 사용할 수 없습니다.\n" "기본 데이터베이스는 \"%s\" 인코딩으로 지정됩니다.\n" -#: initdb.c:2660 +#: initdb.c:2731 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "\"%s\" 로케일은 지원하지 않는 \"%s\" 인코딩을 필요로 함" -#: initdb.c:2662 +#: initdb.c:2733 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "\"%s\" 인코딩을 서버측 인코딩으로 사용할 수 없습니다." -#: initdb.c:2664 +#: initdb.c:2735 #, c-format msgid "Rerun %s with a different locale selection." msgstr "다른 로케일을 지정해서 %s 작업을 다시 하세요." -#: initdb.c:2672 +#: initdb.c:2743 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "기본 데이터베이스 인코딩은 \"%s\" 인코딩으로 설정되었습니다.\n" -#: initdb.c:2741 +#: initdb.c:2757 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "\"%s\" 내장 제공자 로케일은 \"%s\" 인코딩을 필요로 함" + +#: initdb.c:2819 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "\"%s\" 로케일에 알맞은 전문검색 설정을 찾을 수 없음" -#: initdb.c:2752 +#: initdb.c:2830 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "\"%s\" 로케일에 알맞은 전문검색 설정을 알 수 없음" -#: initdb.c:2757 +#: initdb.c:2835 #, c-format msgid "" "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "지정한 \"%s\" 전문검색 설정은 \"%s\" 로케일과 일치하지 않음" -#: initdb.c:2762 +#: initdb.c:2840 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "기본 텍스트 검색 구성이 \"%s\"(으)로 설정됩니다.\n" -#: initdb.c:2805 initdb.c:2876 +#: initdb.c:2883 initdb.c:2954 #, c-format msgid "creating directory %s ... " msgstr "%s 디렉터리 만드는 중 ..." -#: initdb.c:2810 initdb.c:2881 initdb.c:2929 initdb.c:2985 +#: initdb.c:2888 initdb.c:2959 initdb.c:3007 initdb.c:3064 #, c-format msgid "could not create directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" -#: initdb.c:2819 initdb.c:2891 +#: initdb.c:2897 initdb.c:2969 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "이미 있는 %s 디렉터리의 액세스 권한을 고치는 중 ..." -#: initdb.c:2824 initdb.c:2896 +#: initdb.c:2902 initdb.c:2974 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "\"%s\" 디렉터리의 액세스 권한을 바꿀 수 없습니다: %m" -#: initdb.c:2836 initdb.c:2908 +#: initdb.c:2914 initdb.c:2986 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "\"%s\" 디렉터리가 있지만 비어 있지 않음" -#: initdb.c:2840 +#: initdb.c:2918 #, c-format msgid "" "If you want to create a new database system, either remove or empty the " @@ -941,31 +1028,31 @@ msgstr "" "새로운 데이터베이스 시스템을 만들려면 \"%s\" 디렉터리를 제거하거나 비우십시" "오. 또는 %s 작업을 \"%s\" 디렉터리가 아닌 것으로 지정해서 하세요." -#: initdb.c:2848 initdb.c:2918 initdb.c:3325 +#: initdb.c:2926 initdb.c:2996 initdb.c:3422 #, c-format msgid "could not access directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" -#: initdb.c:2869 +#: initdb.c:2947 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL 디렉터리 위치는 절대 경로여야 함" -#: initdb.c:2912 +#: initdb.c:2990 #, c-format msgid "" -"If you want to store the WAL there, either remove or empty the directory \"%s" -"\"." +"If you want to store the WAL there, either remove or empty the directory " +"\"%s\"." msgstr "" "트랜잭션 로그를 해당 위치에 저장하려면 \"%s\" 디렉터리를 제거하거나 비우십시" "오." -#: initdb.c:2922 +#: initdb.c:3000 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "\"%s\" 심벌릭 링크를 만들 수 없음: %m" -#: initdb.c:2941 +#: initdb.c:3019 #, c-format msgid "" "It contains a dot-prefixed/invisible file, perhaps due to it being a mount " @@ -974,13 +1061,13 @@ msgstr "" "점(.)으로 시작하는 숨은 파일이 포함되어 있습니다. 마운트 최상위 디렉터리 같습" "니다." -#: initdb.c:2943 +#: initdb.c:3021 #, c-format msgid "" "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "lost-found 디렉터리가 있습니다. 마운트 최상위 디렉터리 같습니다." -#: initdb.c:2945 +#: initdb.c:3023 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -989,66 +1076,61 @@ msgstr "" "마운트 최상위 디렉터리를 데이터 디렉터리로 사용하는 것은 권장하지 않습니다.\n" "하위 디렉터리를 만들어서 그것을 데이터 디렉터리로 사용하세요." -#: initdb.c:2971 +#: initdb.c:3050 #, c-format msgid "creating subdirectories ... " msgstr "하위 디렉터리 만드는 중 ..." -#: initdb.c:3014 +#: initdb.c:3093 msgid "performing post-bootstrap initialization ... " msgstr "부트스트랩 다음 초기화 작업 중 ... " -#: initdb.c:3175 +#: initdb.c:3256 #, c-format msgid "-c %s requires a value" msgstr "-c %s 설정은 값을 필요로 합니다." -#: initdb.c:3200 +#: initdb.c:3281 #, c-format msgid "Running in debug mode.\n" msgstr "디버그 모드로 실행 중.\n" -#: initdb.c:3204 +#: initdb.c:3285 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "지저분 모드로 실행 중. 오류가 발생되어도 뒷정리를 안합니다.\n" -#: initdb.c:3274 +#: initdb.c:3358 #, c-format msgid "unrecognized locale provider: %s" msgstr "알 수 없는 로케일 제공자 이름: %s" -#: initdb.c:3302 +#: initdb.c:3395 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인자를 지정했습니다. (처음 \"%s\")" -#: initdb.c:3309 initdb.c:3313 +#: initdb.c:3402 initdb.c:3406 initdb.c:3410 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s 옵션은 \"%s\" 로케일 제공자를 사용할 때만 사용할 수 있습니다." -#: initdb.c:3327 initdb.c:3404 +#: initdb.c:3424 initdb.c:3487 msgid "syncing data to disk ... " msgstr "자료를 디스크에 동기화 하는 중 ... " -#: initdb.c:3335 +#: initdb.c:3432 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "" "암호를 입력받는 옵션과 암호를 파일에서 가져오는 옵션은 동시에 사용될 수 없음" -#: initdb.c:3357 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "--wal-segsize 옵션 값은 숫자여야 함" - -#: initdb.c:3359 +#: initdb.c:3443 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "--wal-segsize 옵션값은 1에서 1024사이 2^n 값이여야 함" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "%s 옵션값은 1에서 1024사이 2^n 값이여야 함" -#: initdb.c:3373 +#: initdb.c:3456 #, c-format msgid "" "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" @@ -1056,7 +1138,7 @@ msgstr "" "\"%s\" 사용자는 슈퍼유저 이름으로 쓸 수 없습니다. \"pg_\"로 시작하는롤 이름" "은 허용하지 않음" -#: initdb.c:3375 +#: initdb.c:3458 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1067,17 +1149,17 @@ msgstr "" "지정될 것입니다. 또한 이 사용자는 서버 프로세스의 소유주가 됩니다.\n" "\n" -#: initdb.c:3391 +#: initdb.c:3474 #, c-format msgid "Data page checksums are enabled.\n" msgstr "자료 페이지 체크섬 기능 사용함.\n" -#: initdb.c:3393 +#: initdb.c:3476 #, c-format msgid "Data page checksums are disabled.\n" msgstr "자료 페이지 체크섬 기능 사용 하지 않음\n" -#: initdb.c:3410 +#: initdb.c:3493 #, c-format msgid "" "\n" @@ -1089,12 +1171,12 @@ msgstr "" "이 상태에서 OS가 갑자기 중지 되면 데이터 디렉토리 안에 있는 자료가 깨질 수 있" "습니다.\n" -#: initdb.c:3415 +#: initdb.c:3498 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "로컬 접속용 \"trust\" 인증을 설정 함" -#: initdb.c:3416 +#: initdb.c:3499 #, c-format msgid "" "You can change this by editing pg_hba.conf or using the option -A, or --auth-" @@ -1105,11 +1187,11 @@ msgstr "" "요." #. translator: This is a placeholder in a shell command. -#: initdb.c:3446 +#: initdb.c:3529 msgid "logfile" msgstr "로그파일" -#: initdb.c:3448 +#: initdb.c:3531 #, c-format msgid "" "\n" @@ -1125,13 +1207,21 @@ msgstr "" "\n" #, c-format -#~ msgid "Using default ICU locale \"%s\".\n" -#~ msgstr "기본 ICU 로케일로 \"%s\" 사용함.\n" +#~ msgid " ICU locale: %s\n" +#~ msgstr " ICU 로케일: %s\n" #, c-format -#~ msgid "could not open collator for default locale: %s" -#~ msgstr "기본 로케일용 문자열 정렬 규칙을 열 수 없음: %s" +#~ msgid "argument of --wal-segsize must be a number" +#~ msgstr "--wal-segsize 옵션 값은 숫자여야 함" + +#, c-format +#~ msgid "Using default ICU locale \"%s\".\n" +#~ msgstr "기본 ICU 로케일로 \"%s\" 사용함.\n" #, c-format #~ msgid "could not determine default ICU locale" #~ msgstr "기본 ICU 로케일을 결정할 수 없음" + +#, c-format +#~ msgid "could not open collator for default locale: %s" +#~ msgstr "기본 로케일용 문자열 정렬 규칙을 열 수 없음: %s" diff --git a/src/bin/initdb/po/pt_BR.po b/src/bin/initdb/po/pt_BR.po index fd7d406b73e30..8911b29572209 100644 --- a/src/bin/initdb/po/pt_BR.po +++ b/src/bin/initdb/po/pt_BR.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 16\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2024-01-02 12:54-0300\n" -"PO-Revision-Date: 2010-09-25 00:45-0300\n" +"PO-Revision-Date: 2024-07-02 00:07+0200\n" "Last-Translator: Euler Taveira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -535,17 +535,17 @@ msgstr " -E, --encoding=CODIFICAÇÃO ajusta a codificação padrão para nov #: initdb.c:2436 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" -msgstr " -g, --allow-group-access permite leitura/execução do grupo no diretório de dados\n" +msgstr " -g, --allow-group-access permite leitura/execução do grupo no diretório de dados\n" #: initdb.c:2437 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" -msgstr " --icu-locale=LOCALE ajusta ID de configuração regional ICU para novos bancos de dados\n" +msgstr " --icu-locale=LOCALE ajusta ID de configuração regional ICU para novos bancos de dados\n" #: initdb.c:2438 #, fuzzy, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" -msgstr " --icu-rules=REGRAS ajusta regras adicionais de agregação ICU para novos bancos de dados\n" +msgstr " --icu-rules=REGRAS ajusta regras adicionais de agregação ICU para novos bancos de dados\n" #: initdb.c:2439 #, c-format @@ -582,7 +582,7 @@ msgid "" " set default locale provider for new databases\n" msgstr "" " --locale-provider={libc|icu}\n" -" ajusta provedor de configuração regional padrão para novos bancos de dados\n" +" ajusta provedor de configuração regional padrão para novos bancos de dados\n" #: initdb.c:2448 #, c-format @@ -611,12 +611,12 @@ msgstr " -W, --pwprompt pergunta senha do novo super-usuário\n" #: initdb.c:2453 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" -msgstr " -X, --waldir=DIRWAL local do diretório do log de transação\n" +msgstr " -X, --waldir=DIRWAL local do diretório do log de transação\n" #: initdb.c:2454 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=TAMANHO tamanho dos segmentos do WAL, em megabytes\n" +msgstr " --wal-segsize=TAMANHO tamanho dos segmentos do WAL, em megabytes\n" #: initdb.c:2455 #, c-format @@ -630,7 +630,7 @@ msgstr "" #: initdb.c:2456 #, fuzzy, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" -msgstr " -c, --set NOME=VALOR sobrescreve o valor padrão para parâmetro do servidor\n" +msgstr " -c, --set NOME=VALOR sobrescreve o valor padrão para parâmetro do servidor\n" #: initdb.c:2457 #, c-format @@ -660,7 +660,7 @@ msgstr " -N, --no-sync não espera mudanças serem escritas com #: initdb.c:2462 #, c-format msgid " --no-instructions do not print instructions for next steps\n" -msgstr " --no-instructions não mostra instruções para próximos passos\n" +msgstr " --no-instructions não mostra instruções para próximos passos\n" #: initdb.c:2463 #, c-format diff --git a/src/bin/initdb/po/ru.po b/src/bin/initdb/po/ru.po index f601e6220f033..c1fab13b8c488 100644 --- a/src/bin/initdb/po/ru.po +++ b/src/bin/initdb/po/ru.po @@ -6,13 +6,13 @@ # Sergey Burladyan , 2009. # Andrey Sudnik , 2010. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: initdb (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2023-09-11 16:13+0300\n" +"POT-Creation-Date: 2024-11-02 08:21+0300\n" +"PO-Revision-Date: 2024-11-02 08:27+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -42,33 +42,48 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:750 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:372 initdb.c:408 #, c-format msgid "out of memory" msgstr "нехватка памяти" @@ -84,35 +99,46 @@ msgstr "нехватка памяти\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" @@ -152,12 +178,12 @@ msgstr "не удалось перезапуститься с ограничен msgid "could not get exit code from subprocess: error code %lu" msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не удалось стереть файл \"%s\": %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "ошибка при удалении каталога \"%s\": %m" @@ -204,7 +230,35 @@ msgstr "дочерний процесс завершён по сигналу %d: #: ../../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "дочерний процесс завершился с нераспознанным состоянием %d" +msgstr "дочерний процесс завершился с нераспознанным кодом состояния %d" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неверное значение \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "значение %s должно быть в диапазоне %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" #: ../../port/dirmod.c:287 #, c-format @@ -216,87 +270,102 @@ msgstr "не удалось создать связь для каталога \" msgid "could not get junction for \"%s\": %s\n" msgstr "не удалось получить связь для каталога \"%s\": %s\n" -#: initdb.c:623 initdb.c:1610 +#: initdb.c:369 +#, c-format +msgid "_wsetlocale() failed" +msgstr "ошибка в _wsetlocale()" + +#: initdb.c:376 +#, c-format +msgid "setlocale() failed" +msgstr "ошибка в setlocale()" + +#: initdb.c:390 +#, c-format +msgid "failed to restore old locale" +msgstr "не удалось восстановить старую локаль" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "не удалось восстановить старую локаль \"%s\"" + +#: initdb.c:682 initdb.c:1674 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: initdb.c:667 initdb.c:971 initdb.c:991 +#: initdb.c:726 initdb.c:1030 initdb.c:1050 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не удалось открыть файл \"%s\" для записи: %m" -#: initdb.c:671 initdb.c:974 initdb.c:993 +#: initdb.c:730 initdb.c:1033 initdb.c:1052 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: initdb.c:675 +#: initdb.c:734 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: initdb.c:691 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не удалось выполнить команду \"%s\": %m" - -#: initdb.c:709 +#: initdb.c:768 #, c-format msgid "removing data directory \"%s\"" msgstr "удаление каталога данных \"%s\"" -#: initdb.c:711 +#: initdb.c:770 #, c-format msgid "failed to remove data directory" msgstr "ошибка при удалении каталога данных" -#: initdb.c:715 +#: initdb.c:774 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "удаление содержимого каталога данных \"%s\"" -#: initdb.c:718 +#: initdb.c:777 #, c-format msgid "failed to remove contents of data directory" msgstr "ошибка при удалении содержимого каталога данных" -#: initdb.c:723 +#: initdb.c:782 #, c-format msgid "removing WAL directory \"%s\"" msgstr "удаление каталога WAL \"%s\"" -#: initdb.c:725 +#: initdb.c:784 #, c-format msgid "failed to remove WAL directory" msgstr "ошибка при удалении каталога WAL" -#: initdb.c:729 +#: initdb.c:788 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "удаление содержимого каталога WAL \"%s\"" -#: initdb.c:731 +#: initdb.c:790 #, c-format msgid "failed to remove contents of WAL directory" msgstr "ошибка при удалении содержимого каталога WAL" -#: initdb.c:738 +#: initdb.c:797 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "каталог данных \"%s\" не был удалён по запросу пользователя" -#: initdb.c:742 +#: initdb.c:801 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "каталог WAL \"%s\" не был удалён по запросу пользователя" -#: initdb.c:760 +#: initdb.c:819 #, c-format msgid "cannot be run as root" msgstr "программу не должен запускать root" -#: initdb.c:761 +#: initdb.c:820 #, c-format msgid "" "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own " @@ -305,17 +374,17 @@ msgstr "" "Пожалуйста, переключитесь на обычного пользователя (например, используя " "\"su\"), которому будет принадлежать серверный процесс." -#: initdb.c:793 +#: initdb.c:852 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" — некорректное имя серверной кодировки" -#: initdb.c:937 +#: initdb.c:996 #, c-format msgid "file \"%s\" does not exist" msgstr "файл \"%s\" не существует" -#: initdb.c:938 initdb.c:943 initdb.c:950 +#: initdb.c:997 initdb.c:1002 initdb.c:1009 #, c-format msgid "" "This might mean you have a corrupted installation or identified the wrong " @@ -324,129 +393,124 @@ msgstr "" "Это означает, что ваша установка PostgreSQL испорчена или в параметре -L " "задан неправильный каталог." -#: initdb.c:942 +#: initdb.c:1001 #, c-format msgid "could not access file \"%s\": %m" -msgstr "нет доступа к файлу \"%s\": %m" +msgstr "ошибка при обращении к файлу \"%s\": %m" -#: initdb.c:949 +#: initdb.c:1008 #, c-format msgid "file \"%s\" is not a regular file" msgstr "\"%s\" — не обычный файл" -#: initdb.c:1082 +#: initdb.c:1141 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "выбирается реализация динамической разделяемой памяти... " -#: initdb.c:1091 +#: initdb.c:1150 #, c-format -msgid "selecting default max_connections ... " -msgstr "выбирается значение max_connections по умолчанию... " +msgid "selecting default \"max_connections\" ... " +msgstr "выбирается значение \"max_connections\" по умолчанию... " -#: initdb.c:1111 +#: initdb.c:1170 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "выбирается значение shared_buffers по умолчанию... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "выбирается значение \"shared_buffers\" по умолчанию... " -#: initdb.c:1134 +#: initdb.c:1193 #, c-format msgid "selecting default time zone ... " msgstr "выбирается часовой пояс по умолчанию... " -#: initdb.c:1211 +#: initdb.c:1272 msgid "creating configuration files ... " msgstr "создание конфигурационных файлов... " -#: initdb.c:1364 initdb.c:1378 initdb.c:1445 initdb.c:1456 +#: initdb.c:1425 initdb.c:1439 initdb.c:1506 initdb.c:1517 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "не удалось поменять права для \"%s\": %m" -#: initdb.c:1474 +#: initdb.c:1536 #, c-format msgid "running bootstrap script ... " msgstr "выполняется подготовительный скрипт... " -#: initdb.c:1486 +#: initdb.c:1548 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "входной файл \"%s\" не принадлежит PostgreSQL %s" -#: initdb.c:1488 +#: initdb.c:1550 #, c-format msgid "Specify the correct path using the option -L." msgstr "Укажите корректный путь в параметре -L." -#: initdb.c:1588 +#: initdb.c:1652 msgid "Enter new superuser password: " msgstr "Введите новый пароль суперпользователя: " -#: initdb.c:1589 +#: initdb.c:1653 msgid "Enter it again: " msgstr "Повторите его: " -#: initdb.c:1592 +#: initdb.c:1656 #, c-format msgid "Passwords didn't match.\n" msgstr "Пароли не совпадают.\n" -#: initdb.c:1616 +#: initdb.c:1680 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "не удалось прочитать пароль из файла \"%s\": %m" -#: initdb.c:1619 +#: initdb.c:1683 #, c-format msgid "password file \"%s\" is empty" msgstr "файл пароля \"%s\" пуст" -#: initdb.c:2031 +#: initdb.c:2095 #, c-format msgid "caught signal\n" msgstr "получен сигнал\n" -#: initdb.c:2037 +#: initdb.c:2101 #, c-format msgid "could not write to child process: %s\n" msgstr "не удалось записать в поток дочернего процесса: %s\n" -#: initdb.c:2045 +#: initdb.c:2109 #, c-format msgid "ok\n" msgstr "ок\n" -#: initdb.c:2134 -#, c-format -msgid "setlocale() failed" -msgstr "ошибка в setlocale()" - -#: initdb.c:2152 +#: initdb.c:2191 initdb.c:2237 #, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "не удалось восстановить старую локаль \"%s\"" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "имя локали \"%s\" содержит не-ASCII символы" -#: initdb.c:2160 +#: initdb.c:2217 #, c-format msgid "invalid locale name \"%s\"" msgstr "ошибочное имя локали \"%s\"" -#: initdb.c:2161 +#: initdb.c:2218 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Если эта локаль свойственна ICU, укажите --icu-locale." -#: initdb.c:2174 +#: initdb.c:2231 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "неверные установки локали; проверьте переменные окружения LANG и LC_*" -#: initdb.c:2200 initdb.c:2224 +#: initdb.c:2262 initdb.c:2286 #, c-format msgid "encoding mismatch" msgstr "несоответствие кодировки" -#: initdb.c:2201 +#: initdb.c:2263 #, c-format msgid "" "The encoding you selected (%s) and the encoding that the selected locale " @@ -457,7 +521,7 @@ msgstr "" "может привести к неправильной работе различных функций обработки текстовых " "строк." -#: initdb.c:2206 initdb.c:2227 +#: initdb.c:2268 initdb.c:2289 #, c-format msgid "" "Rerun %s and either do not specify an encoding explicitly, or choose a " @@ -466,42 +530,47 @@ msgstr "" "Для исправления перезапустите %s, не указывая кодировку явно, либо выберите " "подходящее сочетание параметров локализации." -#: initdb.c:2225 +#: initdb.c:2287 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "Выбранная вами кодировка (%s) не поддерживается провайдером ICU." -#: initdb.c:2276 +#: initdb.c:2338 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не удалось получить из названия локали \"%s\" метку языка: %s" -#: initdb.c:2282 initdb.c:2334 initdb.c:2413 +#: initdb.c:2344 initdb.c:2396 initdb.c:2488 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не поддерживается в данной сборке" -#: initdb.c:2305 +#: initdb.c:2367 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "не удалось определить язык для локали \"%s\": %s" -#: initdb.c:2331 +#: initdb.c:2393 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "для локали \"%s\" получен неизвестный язык \"%s\"" -#: initdb.c:2397 +#: initdb.c:2454 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "если выбран провайдер %s, необходимо задать локаль" + +#: initdb.c:2465 #, c-format -msgid "ICU locale must be specified" -msgstr "необходимо задать локаль ICU" +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "неверное имя локали \"%s\" для встроенного провайдера" -#: initdb.c:2401 +#: initdb.c:2476 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Для локали ICU \"%s\" используется метка языка \"%s\".\n" -#: initdb.c:2424 +#: initdb.c:2499 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -510,17 +579,17 @@ msgstr "" "%s инициализирует кластер PostgreSQL.\n" "\n" -#: initdb.c:2425 +#: initdb.c:2500 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: initdb.c:2426 +#: initdb.c:2501 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [ПАРАМЕТР]... [КАТАЛОГ]\n" -#: initdb.c:2427 +#: initdb.c:2502 #, c-format msgid "" "\n" @@ -529,7 +598,7 @@ msgstr "" "\n" "Параметры:\n" -#: initdb.c:2428 +#: initdb.c:2503 #, c-format msgid "" " -A, --auth=METHOD default authentication method for local " @@ -538,7 +607,7 @@ msgstr "" " -A, --auth=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных подключений\n" -#: initdb.c:2429 +#: initdb.c:2504 #, c-format msgid "" " --auth-host=METHOD default authentication method for local TCP/IP " @@ -547,7 +616,7 @@ msgstr "" " --auth-host=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных TCP/IP-подключений\n" -#: initdb.c:2430 +#: initdb.c:2505 #, c-format msgid "" " --auth-local=METHOD default authentication method for local-socket " @@ -556,17 +625,17 @@ msgstr "" " --auth-local=МЕТОД метод проверки подлинности по умолчанию\n" " для локальных подключений через сокет\n" -#: initdb.c:2431 +#: initdb.c:2506 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]КАТАЛОГ расположение данных этого кластера БД\n" -#: initdb.c:2432 +#: initdb.c:2507 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=КОДИРОВКА кодировка по умолчанию для новых баз\n" -#: initdb.c:2433 +#: initdb.c:2508 #, c-format msgid "" " -g, --allow-group-access allow group read/execute on data directory\n" @@ -575,12 +644,12 @@ msgstr "" "для\n" " группы\n" -#: initdb.c:2434 +#: initdb.c:2509 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=ЛОКАЛЬ идентификатор локали ICU для новых баз\n" -#: initdb.c:2435 +#: initdb.c:2510 #, c-format msgid "" " --icu-rules=RULES set additional ICU collation rules for new " @@ -589,17 +658,17 @@ msgstr "" " --icu-rules=ПРАВИЛА дополнительные правила сортировки ICU для новых " "баз\n" -#: initdb.c:2436 +#: initdb.c:2511 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums включить контроль целостности страниц\n" -#: initdb.c:2437 +#: initdb.c:2512 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=ЛОКАЛЬ локаль по умолчанию для новых баз\n" -#: initdb.c:2438 +#: initdb.c:2513 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -613,28 +682,37 @@ msgstr "" " установить соответствующий параметр локали\n" " для новых баз (вместо значения из окружения)\n" -#: initdb.c:2442 +#: initdb.c:2517 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale эквивалентно --locale=C\n" -#: initdb.c:2443 +#: initdb.c:2518 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" --builtin-locale=ЛОКАЛЬ\n" +" имя встроенной локали для новых баз\n" + +#: initdb.c:2520 +#, c-format +msgid "" +" --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " провайдер основной локали для новых баз\n" -#: initdb.c:2445 +#: initdb.c:2522 #, c-format msgid "" " --pwfile=FILE read password for the new superuser from file\n" msgstr "" " --pwfile=ФАЙЛ прочитать пароль суперпользователя из файла\n" -#: initdb.c:2446 +#: initdb.c:2523 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -643,29 +721,29 @@ msgstr "" " -T, --text-search-config=КОНФИГУРАЦИЯ\n" " конфигурация текстового поиска по умолчанию\n" -#: initdb.c:2448 +#: initdb.c:2525 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=ИМЯ имя суперпользователя БД\n" -#: initdb.c:2449 +#: initdb.c:2526 #, c-format msgid "" " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt запросить пароль суперпользователя\n" -#: initdb.c:2450 +#: initdb.c:2527 #, c-format msgid "" " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=КАТАЛОГ расположение журнала предзаписи\n" -#: initdb.c:2451 +#: initdb.c:2528 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" -#: initdb.c:2452 +#: initdb.c:2529 #, c-format msgid "" "\n" @@ -674,7 +752,7 @@ msgstr "" "\n" "Редко используемые параметры:\n" -#: initdb.c:2453 +#: initdb.c:2530 #, c-format msgid "" " -c, --set NAME=VALUE override default setting for server parameter\n" @@ -682,27 +760,27 @@ msgstr "" " -c, --set ИМЯ=ЗНАЧЕНИЕ переопределить значение серверного параметра по\n" " умолчанию\n" -#: initdb.c:2454 +#: initdb.c:2531 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug выдавать много отладочных сообщений\n" -#: initdb.c:2455 +#: initdb.c:2532 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches установить debug_discard_caches=1\n" -#: initdb.c:2456 +#: initdb.c:2533 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L КАТАЛОГ расположение входных файлов\n" -#: initdb.c:2457 +#: initdb.c:2534 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean не очищать после ошибок\n" -#: initdb.c:2458 +#: initdb.c:2535 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -710,18 +788,23 @@ msgid "" msgstr "" " -N, --no-sync не ждать завершения сохранения данных на диске\n" -#: initdb.c:2459 +#: initdb.c:2536 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr "" " --no-instructions не выводить инструкции для дальнейших действий\n" -#: initdb.c:2460 +#: initdb.c:2537 +#, c-format +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show показать внутренние установки и выйти\n" + +#: initdb.c:2538 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show показать внутренние установки\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" -#: initdb.c:2461 +#: initdb.c:2539 #, c-format msgid "" " -S, --sync-only only sync database files to disk, then exit\n" @@ -729,7 +812,7 @@ msgstr "" " -S, --sync-only только синхронизировать с ФС файлы базы и " "завершиться\n" -#: initdb.c:2462 +#: initdb.c:2540 #, c-format msgid "" "\n" @@ -738,17 +821,17 @@ msgstr "" "\n" "Другие параметры:\n" -#: initdb.c:2463 +#: initdb.c:2541 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: initdb.c:2464 +#: initdb.c:2542 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: initdb.c:2465 +#: initdb.c:2543 #, c-format msgid "" "\n" @@ -758,7 +841,7 @@ msgstr "" "\n" "Если каталог данных не указан, используется переменная окружения PGDATA.\n" -#: initdb.c:2467 +#: initdb.c:2545 #, c-format msgid "" "\n" @@ -767,18 +850,18 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: initdb.c:2468 +#: initdb.c:2546 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: initdb.c:2496 +#: initdb.c:2570 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "" "нераспознанный метод проверки подлинности \"%s\" для подключений \"%s\"" -#: initdb.c:2510 +#: initdb.c:2584 #, c-format msgid "" "must specify a password for the superuser to enable password authentication" @@ -786,12 +869,12 @@ msgstr "" "для включения аутентификации по паролю необходимо указать пароль " "суперпользователя" -#: initdb.c:2529 +#: initdb.c:2603 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: initdb.c:2530 +#: initdb.c:2604 #, c-format msgid "" "You must identify the directory where the data for this database system will " @@ -801,53 +884,55 @@ msgstr "" "Вы должны указать каталог, в котором будут располагаться данные этой СУБД. " "Это можно сделать, добавив ключ -D или установив переменную окружения PGDATA." -#: initdb.c:2547 +#: initdb.c:2621 #, c-format msgid "could not set environment" msgstr "не удалось задать переменную окружения" -#: initdb.c:2565 +#: initdb.c:2639 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " "\"%s\"" msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"" -#: initdb.c:2568 +#: initdb.c:2642 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "программа \"%s\" найдена программой \"%s\", но её версия отличается от " "версии %s" -#: initdb.c:2583 +#: initdb.c:2657 #, c-format msgid "input file location must be an absolute path" msgstr "расположение входных файлов должно задаваться абсолютным путём" -#: initdb.c:2600 +#: initdb.c:2674 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "Кластер баз данных будет инициализирован с локалью \"%s\".\n" -#: initdb.c:2603 +#: initdb.c:2677 #, c-format msgid "" "The database cluster will be initialized with this locale configuration:\n" msgstr "" "Кластер баз данных будет инициализирован со следующими параметрами локали:\n" -#: initdb.c:2604 +#: initdb.c:2678 #, c-format -msgid " provider: %s\n" -msgstr " провайдер: %s\n" +msgid " locale provider: %s\n" +msgstr " провайдер локалей: %s\n" -#: initdb.c:2606 +#: initdb.c:2680 #, c-format -msgid " ICU locale: %s\n" -msgstr " локаль ICU: %s\n" +msgid " default collation: %s\n" +msgstr "" +" правило сортировки\n" +" по умолчанию: %s\n" -#: initdb.c:2607 +#: initdb.c:2681 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -864,22 +949,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2637 +#: initdb.c:2711 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "не удалось найти подходящую кодировку для локали \"%s\"" -#: initdb.c:2639 +#: initdb.c:2713 #, c-format msgid "Rerun %s with the -E option." msgstr "Перезапустите %s с параметром -E." -#: initdb.c:2640 initdb.c:3173 initdb.c:3281 initdb.c:3301 +#: initdb.c:2714 initdb.c:3257 initdb.c:3377 initdb.c:3397 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: initdb.c:2652 +#: initdb.c:2726 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -888,40 +973,45 @@ msgstr "" "Кодировка \"%s\", подразумеваемая локалью, не годится для сервера.\n" "Вместо неё в качестве кодировки БД по умолчанию будет выбрана \"%s\".\n" -#: initdb.c:2657 +#: initdb.c:2731 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "для локали \"%s\" требуется неподдерживаемая кодировка \"%s\"" -#: initdb.c:2659 +#: initdb.c:2733 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "Кодировка \"%s\" недопустима в качестве серверной кодировки." -#: initdb.c:2661 +#: initdb.c:2735 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Перезапустите %s, выбрав другую локаль." -#: initdb.c:2669 +#: initdb.c:2743 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "" "Кодировка БД по умолчанию, выбранная в соответствии с настройками: \"%s\".\n" -#: initdb.c:2738 +#: initdb.c:2757 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "для локали \"%s\" встроенного провайдера требуется кодировка \"%s\"" + +#: initdb.c:2819 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "" "не удалось найти подходящую конфигурацию текстового поиска для локали \"%s\"" -#: initdb.c:2749 +#: initdb.c:2830 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "" "внимание: для локали \"%s\" нет известной конфигурации текстового поиска" -#: initdb.c:2754 +#: initdb.c:2835 #, c-format msgid "" "specified text search configuration \"%s\" might not match locale \"%s\"" @@ -929,37 +1019,37 @@ msgstr "" "указанная конфигурация текстового поиска \"%s\" может не соответствовать " "локали \"%s\"" -#: initdb.c:2759 +#: initdb.c:2840 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "Выбрана конфигурация текстового поиска по умолчанию \"%s\".\n" -#: initdb.c:2802 initdb.c:2873 +#: initdb.c:2883 initdb.c:2954 #, c-format msgid "creating directory %s ... " msgstr "создание каталога %s... " -#: initdb.c:2807 initdb.c:2878 initdb.c:2926 initdb.c:2982 +#: initdb.c:2888 initdb.c:2959 initdb.c:3007 initdb.c:3064 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: initdb.c:2816 initdb.c:2888 +#: initdb.c:2897 initdb.c:2969 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "исправление прав для существующего каталога %s... " -#: initdb.c:2821 initdb.c:2893 +#: initdb.c:2902 initdb.c:2974 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "не удалось поменять права для каталога \"%s\": %m" -#: initdb.c:2833 initdb.c:2905 +#: initdb.c:2914 initdb.c:2986 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" существует, но он не пуст" -#: initdb.c:2837 +#: initdb.c:2918 #, c-format msgid "" "If you want to create a new database system, either remove or empty the " @@ -968,29 +1058,29 @@ msgstr "" "Если вы хотите создать новую систему баз данных, удалите или очистите " "каталог \"%s\", либо при запуске %s в качестве пути укажите не \"%s\"." -#: initdb.c:2845 initdb.c:2915 initdb.c:3322 +#: initdb.c:2926 initdb.c:2996 initdb.c:3422 #, c-format msgid "could not access directory \"%s\": %m" -msgstr "ошибка доступа к каталогу \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" -#: initdb.c:2866 +#: initdb.c:2947 #, c-format msgid "WAL directory location must be an absolute path" msgstr "расположение каталога WAL должно определяться абсолютным путём" -#: initdb.c:2909 +#: initdb.c:2990 #, c-format msgid "" "If you want to store the WAL there, either remove or empty the directory " "\"%s\"." msgstr "Если вы хотите хранить WAL здесь, удалите или очистите каталог \"%s\"." -#: initdb.c:2919 +#: initdb.c:3000 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: initdb.c:2938 +#: initdb.c:3019 #, c-format msgid "" "It contains a dot-prefixed/invisible file, perhaps due to it being a mount " @@ -998,13 +1088,13 @@ msgid "" msgstr "" "Он содержит файл с точкой (невидимый), возможно, это точка монтирования." -#: initdb.c:2940 +#: initdb.c:3021 #, c-format msgid "" "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Он содержит подкаталог lost+found, возможно, это точка монтирования." -#: initdb.c:2942 +#: initdb.c:3023 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -1014,67 +1104,62 @@ msgstr "" "рекомендуется.\n" "Создайте в монтируемом ресурсе подкаталог и используйте его." -#: initdb.c:2968 +#: initdb.c:3050 #, c-format msgid "creating subdirectories ... " msgstr "создание подкаталогов... " -#: initdb.c:3011 +#: initdb.c:3093 msgid "performing post-bootstrap initialization ... " msgstr "выполняется заключительная инициализация... " -#: initdb.c:3172 +#: initdb.c:3256 #, c-format msgid "-c %s requires a value" msgstr "для -c %s требуется значение" -#: initdb.c:3197 +#: initdb.c:3281 #, c-format msgid "Running in debug mode.\n" msgstr "Программа запущена в режиме отладки.\n" -#: initdb.c:3201 +#: initdb.c:3285 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "" "Программа запущена в режиме 'no-clean' - очистки и исправления ошибок не " "будет.\n" -#: initdb.c:3271 +#: initdb.c:3358 #, c-format msgid "unrecognized locale provider: %s" msgstr "нераспознанный провайдер локали: %s" -#: initdb.c:3299 +#: initdb.c:3395 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: initdb.c:3306 initdb.c:3310 +#: initdb.c:3402 initdb.c:3406 initdb.c:3410 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s можно указать, только если выбран провайдер локали \"%s\"" -#: initdb.c:3324 initdb.c:3401 +#: initdb.c:3424 initdb.c:3487 msgid "syncing data to disk ... " msgstr "сохранение данных на диске... " -#: initdb.c:3332 +#: initdb.c:3432 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "нельзя одновременно запросить пароль и прочитать пароль из файла" -#: initdb.c:3354 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "аргументом --wal-segsize должно быть число" - -#: initdb.c:3356 +#: initdb.c:3443 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "аргументом --wal-segsize должна быть степень двух от 1 до 1024" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "аргументом %s должна быть степень двух от 1 до 1024" -#: initdb.c:3370 +#: initdb.c:3456 #, c-format msgid "" "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" @@ -1082,7 +1167,7 @@ msgstr "" "имя \"%s\" для суперпользователя не допускается; имена ролей не могут " "начинаться с \"pg_\"" -#: initdb.c:3372 +#: initdb.c:3458 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1093,17 +1178,17 @@ msgstr "" "От его имени также будет запускаться процесс сервера.\n" "\n" -#: initdb.c:3388 +#: initdb.c:3474 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Контроль целостности страниц данных включён.\n" -#: initdb.c:3390 +#: initdb.c:3476 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Контроль целостности страниц данных отключён.\n" -#: initdb.c:3407 +#: initdb.c:3493 #, c-format msgid "" "\n" @@ -1114,12 +1199,12 @@ msgstr "" "Сохранение данных на диск пропускается.\n" "Каталог данных может повредиться при сбое операционной системы.\n" -#: initdb.c:3412 +#: initdb.c:3498 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "включение метода аутентификации \"trust\" для локальных подключений" -#: initdb.c:3413 +#: initdb.c:3499 #, c-format msgid "" "You can change this by editing pg_hba.conf or using the option -A, or --auth-" @@ -1129,11 +1214,11 @@ msgstr "" "initdb с ключом -A, --auth-local или --auth-host." #. translator: This is a placeholder in a shell command. -#: initdb.c:3443 +#: initdb.c:3529 msgid "logfile" msgstr "файл_журнала" -#: initdb.c:3445 +#: initdb.c:3531 #, c-format msgid "" "\n" @@ -1148,6 +1233,14 @@ msgstr "" " %s\n" "\n" +#, c-format +#~ msgid " ICU locale: %s\n" +#~ msgstr " локаль ICU: %s\n" + +#, c-format +#~ msgid "argument of --wal-segsize must be a number" +#~ msgstr "аргументом --wal-segsize должно быть число" + #, c-format #~ msgid "could not identify current directory: %m" #~ msgstr "не удалось определить текущий каталог: %m" @@ -1172,10 +1265,6 @@ msgstr "" #~ msgid "could not stat file or directory \"%s\": %m" #~ msgstr "не удалось получить информацию о файле или каталоге \"%s\": %m" -#, c-format -#~ msgid "could not remove file or directory \"%s\": %m" -#~ msgstr "ошибка при удалении файла или каталога \"%s\": %m" - #, c-format #~ msgid "The default database encoding has been set to \"%s\".\n" #~ msgstr "В качестве кодировки БД по умолчанию установлена \"%s\".\n" @@ -1226,9 +1315,6 @@ msgstr "" #~ msgid "%s: locale name too long, skipped: \"%s\"\n" #~ msgstr "%s: слишком длинное имя локали, пропущено: \"%s\"\n" -#~ msgid "%s: locale name has non-ASCII characters, skipped: \"%s\"\n" -#~ msgstr "%s: имя локали содержит не ASCII-символы, пропущено: \"%s\"\n" - #~ msgid "No usable system locales were found.\n" #~ msgstr "Пригодные локали в системе не найдены.\n" diff --git a/src/bin/initdb/po/sv.po b/src/bin/initdb/po/sv.po index dc5e8fd525168..58183c91295e7 100644 --- a/src/bin/initdb/po/sv.po +++ b/src/bin/initdb/po/sv.po @@ -1,5 +1,5 @@ # Swedish message translation file for initdb -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Magnus Hagander , 2007. # Peter Eisentraut , 2009. # Mats Erik Andersson , 2014. @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-31 19:50+0000\n" -"PO-Revision-Date: 2023-08-31 21:59+0200\n" +"POT-Creation-Date: 2025-02-12 13:51+0000\n" +"PO-Revision-Date: 2025-02-12 20:46+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -40,33 +40,48 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:750 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:372 initdb.c:408 #, c-format msgid "out of memory" msgstr "slut på minne" @@ -82,35 +97,46 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "kunde inte fsync:a fil \"%s\": %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" @@ -150,12 +176,12 @@ msgstr "kunde inte köra igen med token för begränsad åtkomst: felkod %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "kunde inte ta bort fil \"%s\": %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "kunde inte ta bort katalog \"%s\": %m" @@ -204,6 +230,31 @@ msgstr "barnprocess terminerades av signal %d: %s" msgid "child process exited with unrecognized status %d" msgstr "barnprocess avslutade med okänd statuskod %d" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s måste vara i intervallet %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: ../../fe_utils/string_utils.c:608 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:781 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + #: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" @@ -214,151 +265,166 @@ msgstr "kunde inte sätta en knutpunkt (junction) för \"%s\": %s\n" msgid "could not get junction for \"%s\": %s\n" msgstr "kunde inte få en knutpunkt (junction) för \"%s\": %s\n" -#: initdb.c:618 initdb.c:1613 +#: initdb.c:369 +#, c-format +msgid "_wsetlocale() failed" +msgstr "_wsetlocale() misslyckades" + +#: initdb.c:376 +#, c-format +msgid "setlocale() failed" +msgstr "setlocale() misslyckades" + +#: initdb.c:390 +#, c-format +msgid "failed to restore old locale" +msgstr "misslyckades med att återställa gamla lokalen" + +#: initdb.c:393 +#, c-format +msgid "failed to restore old locale \"%s\"" +msgstr "misslyckades med att återställa gamla lokalen \"%s\"" + +#: initdb.c:682 initdb.c:1674 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:726 initdb.c:1030 initdb.c:1050 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "kunde inte öppna fil \"%s\" för skrivning: %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:730 initdb.c:1033 initdb.c:1052 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: initdb.c:670 +#: initdb.c:734 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: initdb.c:686 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "kunde inte köra kommandot \"%s\": %m" - -#: initdb.c:704 +#: initdb.c:768 #, c-format msgid "removing data directory \"%s\"" msgstr "tar bort datakatalog \"%s\"" -#: initdb.c:706 +#: initdb.c:770 #, c-format msgid "failed to remove data directory" msgstr "misslyckades med att ta bort datakatalog" -#: initdb.c:710 +#: initdb.c:774 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "tar bort innehållet i datakatalog \"%s\"" -#: initdb.c:713 +#: initdb.c:777 #, c-format msgid "failed to remove contents of data directory" msgstr "misslyckades med att ta bort innehållet i datakatalogen" -#: initdb.c:718 +#: initdb.c:782 #, c-format msgid "removing WAL directory \"%s\"" msgstr "tar bort WAL-katalog \"%s\"" -#: initdb.c:720 +#: initdb.c:784 #, c-format msgid "failed to remove WAL directory" msgstr "misslyckades med att ta bort WAL-katalog" -#: initdb.c:724 +#: initdb.c:788 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "tar bort innehållet i WAL-katalog \"%s\"" -#: initdb.c:726 +#: initdb.c:790 #, c-format msgid "failed to remove contents of WAL directory" msgstr "misslyckades med att ta bort innehållet i WAL-katalogen" -#: initdb.c:733 +#: initdb.c:797 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "datakatalog \"%s\" är ej borttagen på användares begäran" -#: initdb.c:737 +#: initdb.c:801 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "WAL-katalog \"%s\" är ej borttagen på användares begäran" -#: initdb.c:755 +#: initdb.c:819 #, c-format msgid "cannot be run as root" msgstr "kan inte köras som root" -#: initdb.c:756 +#: initdb.c:820 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "Logga in (t.ex. med \"su\") som den (opriviligerade) användare som skall äga serverprocessen." -#: initdb.c:788 +#: initdb.c:852 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" är inte en giltig teckenkodning för servern" -#: initdb.c:932 +#: initdb.c:996 #, c-format msgid "file \"%s\" does not exist" msgstr "filen \"%s\" finns inte" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:997 initdb.c:1002 initdb.c:1009 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "Detta kan betyda att du har en korrupt installation eller att du har angivit felaktig katalog till flaggan -L." -#: initdb.c:937 +#: initdb.c:1001 #, c-format msgid "could not access file \"%s\": %m" msgstr "kunde inte komma åt filen \"%s\": %m" -#: initdb.c:944 +#: initdb.c:1008 #, c-format msgid "file \"%s\" is not a regular file" msgstr "filen \"%s\" är inte en normal fil" -#: initdb.c:1077 +#: initdb.c:1141 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "väljer mekanism för dynamiskt, delat minne ... " -#: initdb.c:1086 +#: initdb.c:1150 #, c-format -msgid "selecting default max_connections ... " -msgstr "sätter förvalt värde för max_connections ... " +msgid "selecting default \"max_connections\" ... " +msgstr "sätter förvalt värde för \"max_connections\" ... " -#: initdb.c:1106 +#: initdb.c:1170 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "sätter förvalt värde för shared_buffers ... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "sätter förvalt värde för \"shared_buffers\" ... " -#: initdb.c:1129 +#: initdb.c:1193 #, c-format msgid "selecting default time zone ... " msgstr "sätter förvalt värde för tidszon ... " -#: initdb.c:1206 +#: initdb.c:1272 msgid "creating configuration files ... " msgstr "skapar konfigurationsfiler ... " -#: initdb.c:1367 initdb.c:1381 initdb.c:1448 initdb.c:1459 +#: initdb.c:1425 initdb.c:1439 initdb.c:1506 initdb.c:1517 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "kunde inte ändra rättigheter på \"%s\": %m" -#: initdb.c:1477 +#: initdb.c:1536 #, c-format msgid "running bootstrap script ... " msgstr "kör uppsättningsskript..." -#: initdb.c:1489 +#: initdb.c:1548 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "indatafil \"%s\" tillhör inte PostgreSQL %s" @@ -367,125 +433,125 @@ msgstr "indatafil \"%s\" tillhör inte PostgreSQL %s" # with a standard directory "/usr/local/pgsql", is such that # the translated message string produces a reasonable output. # -#: initdb.c:1491 +#: initdb.c:1550 #, c-format msgid "Specify the correct path using the option -L." msgstr "Ange korrekt sökväg med flaggan -L." -#: initdb.c:1591 +#: initdb.c:1652 msgid "Enter new superuser password: " msgstr "Mata in ett nytt lösenord för superuser: " -#: initdb.c:1592 +#: initdb.c:1653 msgid "Enter it again: " msgstr "Mata in det igen: " -#: initdb.c:1595 +#: initdb.c:1656 #, c-format msgid "Passwords didn't match.\n" msgstr "Lösenorden stämde inte överens.\n" -#: initdb.c:1619 +#: initdb.c:1680 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "kunde inte läsa lösenord i filen \"%s\": %m" -#: initdb.c:1622 +#: initdb.c:1683 #, c-format msgid "password file \"%s\" is empty" msgstr "lösenordsfilen \"%s\" är tom" -#: initdb.c:2034 +#: initdb.c:2095 #, c-format msgid "caught signal\n" msgstr "mottog signal\n" -#: initdb.c:2040 +#: initdb.c:2101 #, c-format msgid "could not write to child process: %s\n" msgstr "kunde inte skriva till barnprocess: %s\n" -#: initdb.c:2048 +#: initdb.c:2109 #, c-format msgid "ok\n" msgstr "ok\n" -#: initdb.c:2137 -#, c-format -msgid "setlocale() failed" -msgstr "setlocale() misslyckades" - -#: initdb.c:2155 +#: initdb.c:2191 initdb.c:2237 #, c-format -msgid "failed to restore old locale \"%s\"" -msgstr "misslyckades med att återställa gamla lokalen \"%s\"" +msgid "locale name \"%s\" contains non-ASCII characters" +msgstr "lokalnamn \"%s\" innehåller tecken som ej är ASCII" -#: initdb.c:2163 +#: initdb.c:2217 #, c-format msgid "invalid locale name \"%s\"" msgstr "ogiltigt lokalnamn \"%s\"" -#: initdb.c:2164 +#: initdb.c:2218 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Om lokalnamnet är specifikt för ICU, använd --icu-locale." -#: initdb.c:2177 +#: initdb.c:2231 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "ogiltig lokalinställning. Kontrollera miljövariablerna LANG och LC_*" -#: initdb.c:2203 initdb.c:2227 +#: initdb.c:2262 initdb.c:2286 #, c-format msgid "encoding mismatch" msgstr "teckenkodning matchar inte" -#: initdb.c:2204 +#: initdb.c:2263 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "Teckenkodningen du har valt (%s) och teckenkodningen som valda lokalen använder (%s) passar inte ihop. Detta kommer leda till problem för funktioner som arbetar med strängar." -#: initdb.c:2209 initdb.c:2230 +#: initdb.c:2268 initdb.c:2289 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "Kör %s igen och ange antingen ingen explicit kodning eller välj en matchande kombination." -#: initdb.c:2228 +#: initdb.c:2287 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "Den valda teckenkodningen (%s) stöds inte av ICU." -#: initdb.c:2279 +#: initdb.c:2338 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "kunde inte konvertera lokalnamn \"%s\" till språktagg: %s" -#: initdb.c:2285 initdb.c:2337 initdb.c:2416 +#: initdb.c:2344 initdb.c:2396 initdb.c:2488 #, c-format msgid "ICU is not supported in this build" msgstr "ICU stöds inte av detta bygge" -#: initdb.c:2308 +#: initdb.c:2367 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "kunde inte härleda språk från lokalen \"%s\": %s" -#: initdb.c:2334 +#: initdb.c:2393 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "lokalen \"%s\" har ett okänt språk \"%s\"" -#: initdb.c:2400 +#: initdb.c:2454 #, c-format -msgid "ICU locale must be specified" -msgstr "ICU-lokal måste anges" +msgid "locale must be specified if provider is %s" +msgstr "lokal måste anges när leverantören är %s" -#: initdb.c:2404 +#: initdb.c:2465 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "ogiltigt lokalnamn \"%s\" för inbyggd leverantör" + +#: initdb.c:2476 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Använder språktagg \"%s\" för ICU-lokal \"%s\".\n" -#: initdb.c:2427 +#: initdb.c:2499 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" @@ -494,17 +560,17 @@ msgstr "" "%s initierar ett databaskluster för PostgreSQL.\n" "\n" -#: initdb.c:2428 +#: initdb.c:2500 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: initdb.c:2429 +#: initdb.c:2501 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [FLAGGA]... [DATAKATALOG]\n" -#: initdb.c:2430 +#: initdb.c:2502 #, c-format msgid "" "\n" @@ -513,57 +579,57 @@ msgstr "" "\n" "Flaggor:\n" -#: initdb.c:2431 +#: initdb.c:2503 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, --auth=METOD förvald autentiseringsmetod för alla anslutningar\n" -#: initdb.c:2432 +#: initdb.c:2504 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr " --auth-host=METOD autentiseringsmetod för TCP/IP-anslutningar\n" -#: initdb.c:2433 +#: initdb.c:2505 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr " --auth-local=METOD autentiseringsmetod för anslutningar via unix-uttag\n" -#: initdb.c:2434 +#: initdb.c:2506 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D, --pgdata=]DATAKATALOG läge för detta databaskluster\n" -#: initdb.c:2435 +#: initdb.c:2507 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=KODNING sätter teckenkodning för nya databaser\n" -#: initdb.c:2436 +#: initdb.c:2508 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr " -g, --allow-group-access tillåt läs/kör för grupp på datakatalogen\n" -#: initdb.c:2437 +#: initdb.c:2509 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOKAL sätt ID för ICU-lokal för nya databaser\n" -#: initdb.c:2438 +#: initdb.c:2510 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" msgstr " --icu-rules=REGLER sätt ytterligare ICU-jämförelseregler för nya databaser\n" -#: initdb.c:2439 +#: initdb.c:2511 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums använd checksummor på datablock\n" -#: initdb.c:2440 +#: initdb.c:2512 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=LOKAL sätt standardlokal för nya databaser\n" -#: initdb.c:2441 +#: initdb.c:2513 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -576,26 +642,35 @@ msgstr "" " sätter standardlokal i utvald kategori för\n" " nya databaser (förval hämtas ur omgivningen)\n" -#: initdb.c:2445 +#: initdb.c:2517 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale samma som --locale=C\n" -#: initdb.c:2446 +#: initdb.c:2518 +#, c-format +msgid "" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" --builtin-locale=LOKAL\n" +" sätt standard lokalnamn för nya databaser\n" + +#: initdb.c:2520 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " sätt standard lokalleverantör för nya databaser\n" -#: initdb.c:2448 +#: initdb.c:2522 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=FIL läser lösenord för superuser från fil\n" -#: initdb.c:2449 +#: initdb.c:2523 #, c-format msgid "" " -T, --text-search-config=CFG\n" @@ -604,27 +679,27 @@ msgstr "" " -T, --text-search-config=CFG\n" " standardkonfiguration för textsökning\n" -#: initdb.c:2451 +#: initdb.c:2525 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=NAMN namn på databasens superuser\n" -#: initdb.c:2452 +#: initdb.c:2526 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt efterfråga lösenord för superuser\n" -#: initdb.c:2453 +#: initdb.c:2527 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR katalog för write-ahead-log (WAL)\n" -#: initdb.c:2454 +#: initdb.c:2528 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=STORLEK storlek på WAL-segment i megabyte\n" -#: initdb.c:2455 +#: initdb.c:2529 #, c-format msgid "" "\n" @@ -633,52 +708,57 @@ msgstr "" "\n" "Mindre vanliga flaggor:\n" -#: initdb.c:2456 +#: initdb.c:2530 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAMN=VÄRDE ersätt standardinställning för serverparameter\n" -#: initdb.c:2457 +#: initdb.c:2531 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug generera massor med debug-utskrifter\n" -#: initdb.c:2458 +#: initdb.c:2532 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches sätt debug_discard_caches=1\n" -#: initdb.c:2459 +#: initdb.c:2533 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L KATALOG katalog där indatafiler skall sökas\n" -#: initdb.c:2460 +#: initdb.c:2534 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean städa inte upp efter fel\n" -#: initdb.c:2461 +#: initdb.c:2535 #, 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 ändingar säkert skrivits till disk\n" -#: initdb.c:2462 +#: initdb.c:2536 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions skriv inte instruktioner för nästa steg\n" -#: initdb.c:2463 +#: initdb.c:2537 +#, c-format +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show visa interna inställningar, avsluta sedan\n" + +#: initdb.c:2538 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show visa interna inställningar\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" -#: initdb.c:2464 +#: initdb.c:2539 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only synka bara databasfiler till disk, avsluta seden\n" -#: initdb.c:2465 +#: initdb.c:2540 #, c-format msgid "" "\n" @@ -687,17 +767,17 @@ msgstr "" "\n" "Andra flaggor:\n" -#: initdb.c:2466 +#: initdb.c:2541 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: initdb.c:2467 +#: initdb.c:2542 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: initdb.c:2468 +#: initdb.c:2543 #, c-format msgid "" "\n" @@ -707,7 +787,7 @@ msgstr "" "\n" "Om datakatalogen inte anges så tas den från omgivningsvariabeln PGDATA.\n" -#: initdb.c:2470 +#: initdb.c:2545 #, c-format msgid "" "\n" @@ -716,72 +796,72 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: initdb.c:2471 +#: initdb.c:2546 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: initdb.c:2499 +#: initdb.c:2570 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "ogiltig autentiseringsmetod \"%s\" för anslutning av typen \"%s\"" -#: initdb.c:2513 +#: initdb.c:2584 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "du måste ange ett lösenord för superuser för att kunna slå på lösenordsautentisering" -#: initdb.c:2532 +#: initdb.c:2603 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: initdb.c:2533 +#: initdb.c:2604 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "Du måste uppge den katalog där data för detta databassystem skall lagras. Gör det antingen med flaggan -D eller genom att sätta omgivningsvariabeln PGDATA." -#: initdb.c:2550 +#: initdb.c:2621 #, c-format msgid "could not set environment" msgstr "kunde inte sätta omgivningen" -#: initdb.c:2568 +#: initdb.c:2639 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"" -#: initdb.c:2571 +#: initdb.c:2642 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s" -#: initdb.c:2586 +#: initdb.c:2657 #, c-format msgid "input file location must be an absolute path" msgstr "plats för indatafiler måste vara en absolut sökväg" -#: initdb.c:2603 +#: initdb.c:2674 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "Databasklustret kommer att skapas med lokalnamn \"%s\".\n" -#: initdb.c:2606 +#: initdb.c:2677 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "Databasklustret kommer att initieras med denna lokalkonfiguration:\n" -#: initdb.c:2607 +#: initdb.c:2678 #, c-format -msgid " provider: %s\n" -msgstr " leverantör: %s\n" +msgid " locale provider: %s\n" +msgstr " lokalleverantör: %s\n" -#: initdb.c:2609 +#: initdb.c:2680 #, c-format -msgid " ICU locale: %s\n" -msgstr " ICU-lokal: %s\n" +msgid " default collation: %s\n" +msgstr " standardjämförelse: %s\n" -#: initdb.c:2610 +#: initdb.c:2681 #, c-format msgid "" " LC_COLLATE: %s\n" @@ -798,22 +878,22 @@ msgstr "" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2640 +#: initdb.c:2711 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "kunde inte välja en lämplig kodning för lokal \"%s\"" -#: initdb.c:2642 +#: initdb.c:2713 #, c-format msgid "Rerun %s with the -E option." msgstr "Kör %s igen men med flaggan -E." -#: initdb.c:2643 initdb.c:3176 initdb.c:3284 initdb.c:3304 +#: initdb.c:2714 initdb.c:3257 initdb.c:3377 initdb.c:3397 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: initdb.c:2655 +#: initdb.c:2726 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -822,107 +902,112 @@ msgstr "" "Teckenkodning \"%s\", tagen ur lokalnamnet, är inte godtagbar för servern.\n" "I dess ställe sättes databasens förvalda teckenkodning till \"%s\".\n" -#: initdb.c:2660 +#: initdb.c:2731 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "lokalen \"%s\" kräver ej supportad teckenkodning \"%s\"" -#: initdb.c:2662 +#: initdb.c:2733 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "Teckenkodning \"%s\" tillåts inte som serverteckenkodning." -#: initdb.c:2664 +#: initdb.c:2735 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Kör %s igen men välj en annan lokal." -#: initdb.c:2672 +#: initdb.c:2743 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "Förvald teckenkodning för databaser är satt till \"%s\".\n" -#: initdb.c:2741 +#: initdb.c:2757 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "lokal \"%s\" för inbyggd leverantör kräver teckenkodning \"%s\"" + +#: initdb.c:2819 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "kunde inte hitta en lämplig textsökningskonfiguration för lokalnamn \"%s\"" -#: initdb.c:2752 +#: initdb.c:2830 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "ingen lämplig textsökningskonfiguration för lokalnamn \"%s\"" -#: initdb.c:2757 +#: initdb.c:2835 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "uppgiven textsökningskonfiguration \"%s\" passar kanske inte till lokalnamn \"%s\"" -#: initdb.c:2762 +#: initdb.c:2840 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "Förvald textsökningskonfiguration för databaser är satt till \"%s\".\n" -#: initdb.c:2805 initdb.c:2876 +#: initdb.c:2883 initdb.c:2954 #, c-format msgid "creating directory %s ... " msgstr "skapar katalog %s ... " -#: initdb.c:2810 initdb.c:2881 initdb.c:2929 initdb.c:2985 +#: initdb.c:2888 initdb.c:2959 initdb.c:3007 initdb.c:3064 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: initdb.c:2819 initdb.c:2891 +#: initdb.c:2897 initdb.c:2969 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "sätter rättigheter på existerande katalog %s ... " -#: initdb.c:2824 initdb.c:2896 +#: initdb.c:2902 initdb.c:2974 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "kunde inte ändra rättigheter på katalogen \"%s\": %m" -#: initdb.c:2836 initdb.c:2908 +#: initdb.c:2914 initdb.c:2986 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "katalogen \"%s\" existerar men är inte tom" -#: initdb.c:2840 +#: initdb.c:2918 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "Om du vill skapa ett nytt databassystem, tag då antingen bort eller töm katalogen \"%s\" eller kör %s med annat argument än \"%s\"." -#: initdb.c:2848 initdb.c:2918 initdb.c:3325 +#: initdb.c:2926 initdb.c:2996 initdb.c:3422 #, c-format msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" -#: initdb.c:2869 +#: initdb.c:2947 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL-katalogen måste vara en absolut sökväg" -#: initdb.c:2912 +#: initdb.c:2990 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "Om du vill spara WAL där, antingen radera eller töm katalogen \"%s\"." -#: initdb.c:2922 +#: initdb.c:3000 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "kan inte skapa symbolisk länk \"%s\": %m" -#: initdb.c:2941 +#: initdb.c:3019 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "Den innehåller en gömd fil, med inledande punkt i namnet; kanske är detta en monteringspunkt." -#: initdb.c:2943 +#: initdb.c:3021 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Den innehåller \"lost+found\"; kanske är detta en monteringspunkt." -#: initdb.c:2945 +#: initdb.c:3023 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" @@ -931,70 +1016,65 @@ msgstr "" "Att använda en monteringspunkt som datakatalog rekommenderas inte.\n" "Skapa först en underkatalog under monteringspunkten." -#: initdb.c:2971 +#: initdb.c:3050 #, c-format msgid "creating subdirectories ... " msgstr "Skapar underkataloger ... " -#: initdb.c:3014 +#: initdb.c:3093 msgid "performing post-bootstrap initialization ... " msgstr "utför initiering efter uppstättning..." -#: initdb.c:3175 +#: initdb.c:3256 #, c-format msgid "-c %s requires a value" msgstr "-c %s kräver ett värde" -#: initdb.c:3200 +#: initdb.c:3281 #, c-format msgid "Running in debug mode.\n" msgstr "Kör i debug-läge.\n" -#: initdb.c:3204 +#: initdb.c:3285 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "Kör i no-clean-läge. Misstag kommer inte städas bort.\n" -#: initdb.c:3274 +#: initdb.c:3358 #, c-format msgid "unrecognized locale provider: %s" msgstr "okänd lokalleverantör: %s" -#: initdb.c:3302 +#: initdb.c:3395 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: initdb.c:3309 initdb.c:3313 +#: initdb.c:3402 initdb.c:3406 initdb.c:3410 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s kan inte anges om inte lokalleverantör \"%s\" valts" -#: initdb.c:3327 initdb.c:3404 +#: initdb.c:3424 initdb.c:3487 msgid "syncing data to disk ... " msgstr "synkar data till disk ... " -#: initdb.c:3335 +#: initdb.c:3432 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "lösenordsfråga och lösenordsfil kan inte anges samtidigt" -#: initdb.c:3357 +#: initdb.c:3443 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "argumentet till --wal-segsize måste vara ett tal" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "argumentet till %s måste vara en tvåpotens mellan 1 och 1024" -#: initdb.c:3359 -#, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "argumentet till --wal-segsize måste vara en tvåpotens mellan 1 och 1024" - -#: initdb.c:3373 +#: initdb.c:3456 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "superuser-namn \"%s\" tillåts inte; rollnamn får inte börja på \"pg_\"" -#: initdb.c:3375 +#: initdb.c:3458 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -1005,17 +1085,17 @@ msgstr "" "Denna användare måste också vara ägare av server-processen.\n" "\n" -#: initdb.c:3391 +#: initdb.c:3474 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Checksummor för datablock är aktiva.\n" -#: initdb.c:3393 +#: initdb.c:3476 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Checksummor för datablock är avstängda.\n" -#: initdb.c:3410 +#: initdb.c:3493 #, c-format msgid "" "\n" @@ -1026,22 +1106,22 @@ msgstr "" "Avstod från synkning mot lagringsmedium.\n" "Datakatalogen kan komma att fördärvas om operativsystemet störtar.\n" -#: initdb.c:3415 +#: initdb.c:3498 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "slår på autentiseringsmetod \"trust\" för lokala anslutningar" -#: initdb.c:3416 +#: initdb.c:3499 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "Du kan ändra detta genom att redigera pg_hba.conf eller genom att sätta flaggor -A eller --auth-local och --auth-host nästa gång du kör initdb." #. translator: This is a placeholder in a shell command. -#: initdb.c:3446 +#: initdb.c:3529 msgid "logfile" msgstr "loggfil" -#: initdb.c:3448 +#: initdb.c:3531 #, c-format msgid "" "\n" @@ -1055,39 +1135,3 @@ msgstr "" "\n" " %s\n" "\n" - -#, c-format -#~ msgid "The default database encoding has been set to \"%s\".\n" -#~ msgstr "Förvald teckenkodning för databaser är satt till \"%s\".\n" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "kan inte skapa token för begränsad åtkomst på denna plattorm: felkod %lu" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "kunde inte byta katalog till \"%s\": %m" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "kunde inte ladda länkbibliotek \"%s\": felkod %lu" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "kan inte läsa symbolisk länk \"%s\": %m" - -#, c-format -#~ msgid "could not remove file or directory \"%s\": %m" -#~ msgstr "kunde inte ta bort fil eller katalog \"%s\": %m" - -#, c-format -#~ msgid "could not stat file or directory \"%s\": %m" -#~ msgstr "kunde inte ta status på fil eller katalog \"%s\": %m" - -#, c-format -#~ msgid "symlinks are not supported on this platform" -#~ msgstr "symboliska länkar stöds inte på denna plattform" diff --git a/src/bin/initdb/po/uk.po b/src/bin/initdb/po/uk.po index bcda4ce03cfcd..699f6e9680374 100644 --- a/src/bin/initdb/po/uk.po +++ b/src/bin/initdb/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:19+0000\n" -"PO-Revision-Date: 2023-12-19 16:43+0100\n" +"POT-Creation-Date: 2024-08-31 06:21+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,9 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/initdb.pot\n" -"X-Crowdin-File-ID: 943\n" -"X-Generator: Poedit 3.4.1\n" +"X-Crowdin-File: /REL_17_STABLE/initdb.pot\n" +"X-Crowdin-File-ID: 1034\n" #: ../../../src/common/logging.c:276 #, c-format @@ -38,33 +37,48 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 initdb.c:695 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: initdb.c:349 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:353 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" @@ -80,35 +94,46 @@ msgstr "недостатньо пам'яті\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" -#: ../../common/file_utils.c:162 ../../common/pgfnames.c:48 -#: ../../common/rmtree.c:63 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: ../../common/file_utils.c:196 ../../common/pgfnames.c:69 -#: ../../common/rmtree.c:104 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" - -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не вдалося fsync файл \"%s\": %m" -#: ../../common/file_utils.c:379 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" @@ -148,12 +173,12 @@ msgstr "не вдалося перезапустити з обмеженим т msgid "could not get exit code from subprocess: error code %lu" msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" -#: ../../common/rmtree.c:95 +#: ../../common/rmtree.c:97 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не можливо видалити файл \"%s\": %m" -#: ../../common/rmtree.c:122 +#: ../../common/rmtree.c:124 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "не вдалося видалити каталог \"%s\": %m" @@ -202,6 +227,31 @@ msgstr "дочірній процес перервано через сигнал msgid "child process exited with unrecognized status %d" msgstr "дочірній процес завершився з невизнаним статусом %d" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неприпустиме значення \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s має бути в діапазоні %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + #: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" @@ -212,842 +262,816 @@ msgstr "не вдалося встановити сполучення для \"% msgid "could not get junction for \"%s\": %s\n" msgstr "не вдалося встановити сполучення для \"%s\": %s\n" -#: initdb.c:618 initdb.c:1613 +#: initdb.c:627 initdb.c:1619 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: initdb.c:662 initdb.c:966 initdb.c:986 +#: initdb.c:671 initdb.c:975 initdb.c:995 #, c-format msgid "could not open file \"%s\" for writing: %m" msgstr "не вдалося відкрити файл \"%s\" для запису: %m" -#: initdb.c:666 initdb.c:969 initdb.c:988 +#: initdb.c:675 initdb.c:978 initdb.c:997 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: initdb.c:670 +#: initdb.c:679 #, c-format msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: initdb.c:686 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не вдалося виконати команду \"%s\": %m" - -#: initdb.c:704 +#: initdb.c:713 #, c-format msgid "removing data directory \"%s\"" msgstr "видалення даних з директорії \"%s\"" -#: initdb.c:706 +#: initdb.c:715 #, c-format msgid "failed to remove data directory" msgstr "не вдалося видалити дані директорії" -#: initdb.c:710 +#: initdb.c:719 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "видалення даних з директорії \"%s\"" -#: initdb.c:713 +#: initdb.c:722 #, c-format msgid "failed to remove contents of data directory" msgstr "не вдалося видалити дані директорії" -#: initdb.c:718 +#: initdb.c:727 #, c-format msgid "removing WAL directory \"%s\"" msgstr "видалення WAL директорії \"%s\"" -#: initdb.c:720 +#: initdb.c:729 #, c-format msgid "failed to remove WAL directory" msgstr "не вдалося видалити директорію WAL" -#: initdb.c:724 +#: initdb.c:733 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "видалення даних з директорії WAL \"%s\"" -#: initdb.c:726 +#: initdb.c:735 #, c-format msgid "failed to remove contents of WAL directory" msgstr "не вдалося видалити дані директорії WAL" -#: initdb.c:733 +#: initdb.c:742 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "директорія даних \"%s\" не видалена за запитом користувача" -#: initdb.c:737 +#: initdb.c:746 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "директорія WAL \"%s\" не видалена за запитом користувача" -#: initdb.c:755 +#: initdb.c:764 #, c-format msgid "cannot be run as root" msgstr "не може виконуватись як root" -#: initdb.c:756 +#: initdb.c:765 #, c-format msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." msgstr "Будь ласка, увійдіть (за допомогою, наприклад, \"su\") як (непривілейований) користувач, від імені якого буде запущено серверний процес." -#: initdb.c:788 +#: initdb.c:797 #, c-format msgid "\"%s\" is not a valid server encoding name" msgstr "\"%s\" невірне ім'я серверного кодування" -#: initdb.c:932 +#: initdb.c:941 #, c-format msgid "file \"%s\" does not exist" msgstr "файл \"%s\" не існує" -#: initdb.c:933 initdb.c:938 initdb.c:945 +#: initdb.c:942 initdb.c:947 initdb.c:954 #, c-format msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." msgstr "Це означає, що ваша інсталяція пошкоджена або в параметрі -L задана неправильна директорія." -#: initdb.c:937 +#: initdb.c:946 #, c-format msgid "could not access file \"%s\": %m" msgstr "немає доступу до файлу \"%s\": %m" -#: initdb.c:944 +#: initdb.c:953 #, c-format msgid "file \"%s\" is not a regular file" msgstr "файл \"%s\" не є звичайним файлом" -#: initdb.c:1077 +#: initdb.c:1086 #, c-format msgid "selecting dynamic shared memory implementation ... " msgstr "обирається реалізація динамічної спільної пам'яті ... " -#: initdb.c:1086 +#: initdb.c:1095 #, c-format -msgid "selecting default max_connections ... " -msgstr "" -"обирається значення max_connections ... \n" +msgid "selecting default \"max_connections\" ... " +msgstr "обирається значення \"max_connections\" за замовчуванням... \n" " " -#: initdb.c:1106 +#: initdb.c:1115 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "обирається значення shared_buffers... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "обирається значення \"shared_buffers\" за замовчуванням... " -#: initdb.c:1129 +#: initdb.c:1138 #, c-format msgid "selecting default time zone ... " msgstr "обирається часовий пояс за замовчуванням ... " -#: initdb.c:1206 +#: initdb.c:1217 msgid "creating configuration files ... " msgstr "створення конфігураційних файлів... " -#: initdb.c:1367 initdb.c:1381 initdb.c:1448 initdb.c:1459 +#: initdb.c:1370 initdb.c:1384 initdb.c:1451 initdb.c:1462 #, c-format msgid "could not change permissions of \"%s\": %m" msgstr "неможливо змінити дозволи \"%s\": %m" -#: initdb.c:1477 +#: initdb.c:1481 #, c-format msgid "running bootstrap script ... " msgstr "виконуємо сценарій ініціалізації ... " -#: initdb.c:1489 +#: initdb.c:1493 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" msgstr "вхідний файл \"%s\" не належить PostgreSQL %s" -#: initdb.c:1491 +#: initdb.c:1495 #, c-format msgid "Specify the correct path using the option -L." msgstr "Вкажіть правильний шлях за допомогою параметру -L." -#: initdb.c:1591 +#: initdb.c:1597 msgid "Enter new superuser password: " msgstr "Введіть новий пароль для superuser: " -#: initdb.c:1592 +#: initdb.c:1598 msgid "Enter it again: " msgstr "Введіть знову: " -#: initdb.c:1595 +#: initdb.c:1601 #, c-format msgid "Passwords didn't match.\n" msgstr "Паролі не співпадають.\n" -#: initdb.c:1619 +#: initdb.c:1625 #, c-format msgid "could not read password from file \"%s\": %m" msgstr "не вдалося прочитати пароль з файлу \"%s\": %m" -#: initdb.c:1622 +#: initdb.c:1628 #, c-format msgid "password file \"%s\" is empty" msgstr "файл з паролями \"%s\" є порожнім" -#: initdb.c:2034 +#: initdb.c:2040 #, c-format msgid "caught signal\n" msgstr "отримано сигнал\n" -#: initdb.c:2040 +#: initdb.c:2046 #, c-format msgid "could not write to child process: %s\n" msgstr "не вдалося написати у дочірній процес: %s\n" -#: initdb.c:2048 +#: initdb.c:2054 #, c-format msgid "ok\n" msgstr "ok\n" -#: initdb.c:2137 +#: initdb.c:2143 #, c-format msgid "setlocale() failed" msgstr "setlocale() завершився невдало" -#: initdb.c:2155 +#: initdb.c:2161 #, c-format msgid "failed to restore old locale \"%s\"" msgstr "не вдалося відновити стару локаль \"%s\"" -#: initdb.c:2163 +#: initdb.c:2169 #, c-format msgid "invalid locale name \"%s\"" msgstr "не допустиме ім'я локалі \"%s\"" -#: initdb.c:2164 +#: initdb.c:2170 #, c-format msgid "If the locale name is specific to ICU, use --icu-locale." msgstr "Якщо ім'я локалі характерне для ICU, використовуйте --icu-locale." -#: initdb.c:2177 +#: initdb.c:2183 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" msgstr "неприпустимі параметри локалі; перевірте LANG та LC_* змінні середовища" -#: initdb.c:2203 initdb.c:2227 +#: initdb.c:2209 initdb.c:2233 #, c-format msgid "encoding mismatch" msgstr "невідповідність кодування" -#: initdb.c:2204 +#: initdb.c:2210 #, c-format msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." msgstr "Вибране вами кодування (%s) і кодування, яке використовує обрана локаль (%s) не збігаються. Це призведе до неправильної поведінки у різних функціях обробки символьних рядків." -#: initdb.c:2209 initdb.c:2230 +#: initdb.c:2215 initdb.c:2236 #, c-format msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." msgstr "Перезапустіть %s і або не вказуйте кодування прямо або виберіть відповідну комбінацію." -#: initdb.c:2228 +#: initdb.c:2234 #, c-format msgid "The encoding you selected (%s) is not supported with the ICU provider." msgstr "Обране вами кодування (%s) не підтримується провайдером ICU." -#: initdb.c:2279 +#: initdb.c:2285 #, c-format msgid "could not convert locale name \"%s\" to language tag: %s" msgstr "не вдалося перетворити локальну назву \"%s\" на мітку мови: %s" -#: initdb.c:2285 initdb.c:2337 initdb.c:2416 +#: initdb.c:2291 initdb.c:2343 initdb.c:2435 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не підтримується в цій збірці" -#: initdb.c:2308 +#: initdb.c:2314 #, c-format msgid "could not get language from locale \"%s\": %s" msgstr "не вдалося отримати мову з локалі \"%s\": %s" -#: initdb.c:2334 +#: initdb.c:2340 #, c-format msgid "locale \"%s\" has unknown language \"%s\"" msgstr "locale \"%s\" має невідому мову \"%s\"" -#: initdb.c:2400 +#: initdb.c:2401 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "потрібно вказати локаль для провайдера %s" + +#: initdb.c:2412 #, c-format -msgid "ICU locale must be specified" -msgstr "Необхідно вказати локаль ICU" +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "неприпустиме ім'я локалі \"%s\" для вбудованого провайдера" -#: initdb.c:2404 +#: initdb.c:2423 #, c-format msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" msgstr "Використання мітки мови \"%s\" для локалі ICU \"%s\".\n" -#: initdb.c:2427 +#: initdb.c:2446 #, c-format -msgid "" -"%s initializes a PostgreSQL database cluster.\n" -"\n" -msgstr "" -"%s ініціалізує кластер баз даних PostgreSQL.\n" -"\n" +msgid "%s initializes a PostgreSQL database cluster.\n\n" +msgstr "%s ініціалізує кластер баз даних PostgreSQL.\n\n" -#: initdb.c:2428 +#: initdb.c:2447 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: initdb.c:2429 +#: initdb.c:2448 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATADIR]\n" -#: initdb.c:2430 +#: initdb.c:2449 #, c-format -msgid "" -"\n" +msgid "\n" "Options:\n" -msgstr "" -"\n" +msgstr "\n" "Параметри:\n" -#: initdb.c:2431 +#: initdb.c:2450 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, -- auth=METHOD метод аутентифікації за замовчуванням для локальних підключень\n" -#: initdb.c:2432 +#: initdb.c:2451 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" msgstr " --auth-host=METHOD метод аутентифікації за замовчуванням для локального TCP/IP підключення\n" -#: initdb.c:2433 +#: initdb.c:2452 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" msgstr " --auth-local=METHOD метод аутентифікації за замовчуванням для локального під'єднання через сокет\n" -#: initdb.c:2434 +#: initdb.c:2453 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" msgstr " [-D - pgdata =] DATADIR розташування кластеру цієї бази даних\n" -#: initdb.c:2435 +#: initdb.c:2454 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=ENCODING встановлення кодування за замовчуванням для нової бази даних\n" -#: initdb.c:2436 +#: initdb.c:2455 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr " -g, --allow-group-access дозволити читати/виконувати у каталозі даних для групи\n" -#: initdb.c:2437 +#: initdb.c:2456 #, c-format msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" msgstr " --icu-locale=LOCALE встановлює ідентифікатор мови ICU для нових баз даних\n" -#: initdb.c:2438 +#: initdb.c:2457 #, c-format msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" msgstr " --icu-rules=RULES встановити додаткові правила сортування в ICU для нових баз даних\n" -#: initdb.c:2439 +#: initdb.c:2458 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums використовувати контрольні суми сторінок\n" -#: initdb.c:2440 +#: initdb.c:2459 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" msgstr " --locale=LOCALE встановлює локаль за замовчуванням для нових баз даних\n" -#: initdb.c:2441 +#: initdb.c:2460 #, c-format -msgid "" -" --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" +msgid " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" " --lc-monetary=, --lc-numeric=, --lc-time=LOCALE\n" " set default locale in the respective category for\n" " new databases (default taken from environment)\n" -msgstr "" -" --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" +msgstr " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" " --lc-monetary=, --lc-numeric=, --lc-time=LOCALE\n" " встановлення локалі за замовчуванням для відповідної категорії в\n" " нових базах даних (замість значення з середовища)\n" -#: initdb.c:2445 +#: initdb.c:2464 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale еквівалентно --locale=C\n" -#: initdb.c:2446 +#: initdb.c:2465 #, c-format -msgid "" -" --locale-provider={libc|icu}\n" +msgid " --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr " --builtin-locale=LOCALE\n" +" встановити ім'я вбудованої локалі для нових баз даних\n" + +#: initdb.c:2467 +#, c-format +msgid " --locale-provider={builtin|libc|icu}\n" " set default locale provider for new databases\n" -msgstr "" -" --locale-provider={libc|icu}\n" +msgstr " --locale-provider={builtin|libc|icu}\n" " встановлює провайдер локалі за замовченням для нових баз даних\n" -#: initdb.c:2448 +#: initdb.c:2469 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" msgstr " --pwfile=FILE прочитати пароль для нового суперкористувача з файлу\n" -#: initdb.c:2449 +#: initdb.c:2470 #, c-format -msgid "" -" -T, --text-search-config=CFG\n" +msgid " -T, --text-search-config=CFG\n" " default text search configuration\n" msgstr " -T, --text-search-config=CFG конфігурація текстового пошуку за замовчуванням\n" -#: initdb.c:2451 +#: initdb.c:2472 #, c-format msgid " -U, --username=NAME database superuser name\n" msgstr " -U, --username=NAME ім'я суперкористувача бази даних\n" -#: initdb.c:2452 +#: initdb.c:2473 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" msgstr " -W, --pwprompt запитувати пароль нового суперкористувача\n" -#: initdb.c:2453 +#: initdb.c:2474 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR розташування журналу попереднього запису\n" -#: initdb.c:2454 +#: initdb.c:2475 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE розмір сегментів WAL у мегабайтах\n" -#: initdb.c:2455 +#: initdb.c:2476 #, c-format -msgid "" -"\n" +msgid "\n" "Less commonly used options:\n" -msgstr "" -"\n" +msgstr "\n" "Рідковживані параметри:\n" -#: initdb.c:2456 +#: initdb.c:2477 #, c-format msgid " -c, --set NAME=VALUE override default setting for server parameter\n" msgstr " -c, --set NAME=VALUE перевизначити параметр за замовчуванням для параметра сервера\n" -#: initdb.c:2457 +#: initdb.c:2478 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug генерувати багато налагоджувальних повідомлень\n" -#: initdb.c:2458 +#: initdb.c:2479 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" msgstr " --discard-caches встановити debug_discard_caches=1\n" -#: initdb.c:2459 +#: initdb.c:2480 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L DIRECTORY розташування вхідних файлів\n" -#: initdb.c:2460 +#: initdb.c:2481 #, c-format msgid " -n, --no-clean do not clean up after errors\n" -msgstr "" -" -n, --no-clean не очищувати після помилок\n" +msgstr " -n, --no-clean не очищувати після помилок\n" " \n" -#: initdb.c:2461 +#: initdb.c:2482 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync не чекати на безпечний запис змін на диск\n" -#: initdb.c:2462 +#: initdb.c:2483 #, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions не друкувати інструкції для наступних кроків\n" -#: initdb.c:2463 +#: initdb.c:2484 #, c-format -msgid " -s, --show show internal settings\n" -msgstr " -s, --show показати внутрішні налаштування\n" +msgid " -s, --show show internal settings, then exit\n" +msgstr " -s, --show показати внутрішні налаштування і вийти\n" -#: initdb.c:2464 +#: initdb.c:2485 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод синхронізації файлів на диск\n" + +#: initdb.c:2486 #, c-format msgid " -S, --sync-only only sync database files to disk, then exit\n" msgstr " -S, --sync-only лише синхронізувати файли бази даних на диск, потім вийти\n" -#: initdb.c:2465 +#: initdb.c:2487 #, c-format -msgid "" -"\n" +msgid "\n" "Other options:\n" -msgstr "" -"\n" +msgstr "\n" "Інші параметри:\n" -#: initdb.c:2466 +#: initdb.c:2488 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: initdb.c:2467 +#: initdb.c:2489 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: initdb.c:2468 +#: initdb.c:2490 #, c-format -msgid "" -"\n" +msgid "\n" "If the data directory is not specified, the environment variable PGDATA\n" "is used.\n" -msgstr "" -"\n" +msgstr "\n" "Якщо каталог даних не вказано, використовується змінна середовища PGDATA.\n" -#: initdb.c:2470 +#: initdb.c:2492 #, c-format -msgid "" -"\n" +msgid "\n" "Report bugs to <%s>.\n" -msgstr "" -"\n" +msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: initdb.c:2471 +#: initdb.c:2493 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: initdb.c:2499 +#: initdb.c:2517 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" msgstr "неприпустимий спосіб автентифікації \"%s\" для \"%s\" підключення" -#: initdb.c:2513 +#: initdb.c:2531 #, c-format msgid "must specify a password for the superuser to enable password authentication" msgstr "необхідно вказати пароль суперкористувача для активації автентифікації за допомогою пароля" -#: initdb.c:2532 +#: initdb.c:2550 #, c-format msgid "no data directory specified" msgstr "каталог даних не вказано" -#: initdb.c:2533 +#: initdb.c:2551 #, c-format msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." msgstr "Ви повинні зазначити каталог, де будуть зберігатися дані цієї системи баз даних. Зробіть це або параметром -D, або змінною середовища PGDATA." -#: initdb.c:2550 +#: initdb.c:2568 #, c-format msgid "could not set environment" msgstr "не вдалося встановити середовище" -#: initdb.c:2568 +#: initdb.c:2586 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"" -#: initdb.c:2571 +#: initdb.c:2589 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s" -#: initdb.c:2586 +#: initdb.c:2604 #, c-format msgid "input file location must be an absolute path" msgstr "розташування вхідного файлу має бути абсолютним шляхом" -#: initdb.c:2603 +#: initdb.c:2621 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" msgstr "Кластер бази даних буде ініціалізовано з локалізацією \"%s\".\n" -#: initdb.c:2606 +#: initdb.c:2624 #, c-format msgid "The database cluster will be initialized with this locale configuration:\n" msgstr "Кластер бази даних буде ініціалізовано з локалізацією:\n" -#: initdb.c:2607 +#: initdb.c:2625 #, c-format -msgid " provider: %s\n" -msgstr " постачальник: %s\n" +msgid " locale provider: %s\n" +msgstr " провайдер локалі: %s\n" -#: initdb.c:2609 +#: initdb.c:2627 #, c-format -msgid " ICU locale: %s\n" -msgstr " Локаль ICU: %s\n" +msgid " default collation: %s\n" +msgstr " стандартне сортування: %s\n" -#: initdb.c:2610 +#: initdb.c:2628 #, c-format -msgid "" -" LC_COLLATE: %s\n" +msgid " LC_COLLATE: %s\n" " LC_CTYPE: %s\n" " LC_MESSAGES: %s\n" " LC_MONETARY: %s\n" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -msgstr "" -" LC_COLLATE: %s\n" +msgstr " LC_COLLATE: %s\n" " LC_CTYPE: %s\n" " LC_MESSAGES: %s\n" " LC_MONETARY: %s\n" " LC_NUMERIC: %s\n" " LC_TIME: %s\n" -#: initdb.c:2640 +#: initdb.c:2658 #, c-format msgid "could not find suitable encoding for locale \"%s\"" msgstr "не вдалося знайти відповідне кодування для локалі \"%s\"" -#: initdb.c:2642 +#: initdb.c:2660 #, c-format msgid "Rerun %s with the -E option." msgstr "Перезапустіть %s з параметром -E." -#: initdb.c:2643 initdb.c:3176 initdb.c:3284 initdb.c:3304 +#: initdb.c:2661 initdb.c:3204 initdb.c:3324 initdb.c:3344 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: initdb.c:2655 +#: initdb.c:2673 #, c-format -msgid "" -"Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" +msgid "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" "The default database encoding will be set to \"%s\" instead.\n" -msgstr "" -"Кодування \"%s\", що очікується локалізацією, не дозволено у якості кодування сервера.\n" +msgstr "Кодування \"%s\", що очікується локалізацією, не дозволено у якості кодування сервера.\n" "Замість нього буде встановлене кодування \"%s\" за замовчуванням.\n" -#: initdb.c:2660 +#: initdb.c:2678 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" msgstr "локалізація \"%s\" потребує кодування \"%s\", що не підтримується" -#: initdb.c:2662 +#: initdb.c:2680 #, c-format msgid "Encoding \"%s\" is not allowed as a server-side encoding." msgstr "Кодування \"%s\" не допускається як кодування сервера." -#: initdb.c:2664 +#: initdb.c:2682 #, c-format msgid "Rerun %s with a different locale selection." msgstr "Перезапустіть %s з іншим вибором локалі." -#: initdb.c:2672 +#: initdb.c:2690 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "Кодування бази даних за замовчуванням встановлено: \"%s\".\n" -#: initdb.c:2741 +#: initdb.c:2704 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "локаль вбудованого провайдера \"%s\" вимагає кодування \"%s\"" + +#: initdb.c:2766 #, c-format msgid "could not find suitable text search configuration for locale \"%s\"" msgstr "не вдалося знайти відповідну конфігурацію текстового пошуку для локалі\"%s\"" -#: initdb.c:2752 +#: initdb.c:2777 #, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" msgstr "відповідна конфігурація текстового пошуку для локалі \"%s\" невідома" -#: initdb.c:2757 +#: initdb.c:2782 #, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" msgstr "вказана конфігурація текстового пошуку \"%s\" може не підходити локалі \"%s\"" -#: initdb.c:2762 +#: initdb.c:2787 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" msgstr "Конфігурація текстового пошуку за замовчуванням буде встановлена в \"%s\".\n" -#: initdb.c:2805 initdb.c:2876 +#: initdb.c:2830 initdb.c:2901 #, c-format msgid "creating directory %s ... " msgstr "створення каталогу %s... " -#: initdb.c:2810 initdb.c:2881 initdb.c:2929 initdb.c:2985 +#: initdb.c:2835 initdb.c:2906 initdb.c:2954 initdb.c:3011 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не вдалося створити каталог \"%s\": %m" -#: initdb.c:2819 initdb.c:2891 +#: initdb.c:2844 initdb.c:2916 #, c-format msgid "fixing permissions on existing directory %s ... " msgstr "виправляю дозволи для створеного каталогу %s... " -#: initdb.c:2824 initdb.c:2896 +#: initdb.c:2849 initdb.c:2921 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "не вдалося змінити дозволи каталогу \"%s\": %m" -#: initdb.c:2836 initdb.c:2908 +#: initdb.c:2861 initdb.c:2933 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" існує, але він не порожній" -#: initdb.c:2840 +#: initdb.c:2865 #, c-format msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." msgstr "Якщо ви хочете створити нову систему бази даних, видаліть або очистіть каталог \"%s\", або запустіть %s з аргументом, відмінним від \"%s\"." -#: initdb.c:2848 initdb.c:2918 initdb.c:3325 +#: initdb.c:2873 initdb.c:2943 initdb.c:3369 #, c-format msgid "could not access directory \"%s\": %m" msgstr "немає доступу до каталогу \"%s\": %m" -#: initdb.c:2869 +#: initdb.c:2894 #, c-format msgid "WAL directory location must be an absolute path" msgstr "розташування WAL каталогу має бути абсолютним шляхом" -#: initdb.c:2912 +#: initdb.c:2937 #, c-format msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." msgstr "Якщо ви хочете зберігати дані з WAL там, потрібно видалити або очистити директорію \"%s\"." -#: initdb.c:2922 +#: initdb.c:2947 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не вдалося створити символічне послання \"%s\": %m" -#: initdb.c:2941 +#: initdb.c:2966 #, c-format msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." msgstr "Він містить файл з крапкою або невидимий файл, можливо це точка під'єднання." -#: initdb.c:2943 +#: initdb.c:2968 #, c-format msgid "It contains a lost+found directory, perhaps due to it being a mount point." msgstr "Він містить каталог lost+found, можливо це точка під'єднання." -#: initdb.c:2945 +#: initdb.c:2970 #, c-format -msgid "" -"Using a mount point directly as the data directory is not recommended.\n" +msgid "Using a mount point directly as the data directory is not recommended.\n" "Create a subdirectory under the mount point." -msgstr "" -"Не рекомендується використовувати точку під'єднання у якості каталогу даних.\n" +msgstr "Не рекомендується використовувати точку під'єднання у якості каталогу даних.\n" "Створіть підкаталог і використайте його." -#: initdb.c:2971 +#: initdb.c:2997 #, c-format msgid "creating subdirectories ... " msgstr "створення підкаталогів... " -#: initdb.c:3014 +#: initdb.c:3040 msgid "performing post-bootstrap initialization ... " msgstr "виконується кінцева фаза ініціалізації ... " -#: initdb.c:3175 +#: initdb.c:3203 #, c-format msgid "-c %s requires a value" msgstr "-c %s необхідне значення" -#: initdb.c:3200 +#: initdb.c:3228 #, c-format msgid "Running in debug mode.\n" msgstr "Виконується у режимі налагодження.\n" -#: initdb.c:3204 +#: initdb.c:3232 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" msgstr "Виконується у режимі 'no-clean'. Помилки не будуть виправлені.\n" -#: initdb.c:3274 +#: initdb.c:3305 #, c-format msgid "unrecognized locale provider: %s" msgstr "нерозпізнаний постачальник локалів: %s" -#: initdb.c:3302 +#: initdb.c:3342 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: initdb.c:3309 initdb.c:3313 +#: initdb.c:3349 initdb.c:3353 initdb.c:3357 #, c-format msgid "%s cannot be specified unless locale provider \"%s\" is chosen" msgstr "%s не може бути вказано, поки не буде обрано постачальник локалі \"%s\"" -#: initdb.c:3327 initdb.c:3404 +#: initdb.c:3371 initdb.c:3434 msgid "syncing data to disk ... " msgstr "синхронізація даних з диском ... " -#: initdb.c:3335 +#: initdb.c:3379 #, c-format msgid "password prompt and password file cannot be specified together" msgstr "неможливо вказати одночасно пароль і файл паролю" -#: initdb.c:3357 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "аргумент --wal-segsize повинен бути числом" - -#: initdb.c:3359 +#: initdb.c:3390 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "аргумент --wal-segsize повинен бути ступенем 2 між 1 і 1024" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "аргумент %s має бути ступенем двійки в діапазоні від 1 до 1024" -#: initdb.c:3373 +#: initdb.c:3403 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" msgstr "неприпустиме ім'я суперкористувача \"%s\"; імена ролей не можуть починатися на \"pg_\"" -#: initdb.c:3375 +#: initdb.c:3405 #, c-format -msgid "" -"The files belonging to this database system will be owned by user \"%s\".\n" -"This user must also own the server process.\n" -"\n" -msgstr "" -"Файли цієї бази даних будуть належати користувачеві \"%s\".\n" -"Від імені цього користувача повинен запускатися процес сервера.\n" -"\n" +msgid "The files belonging to this database system will be owned by user \"%s\".\n" +"This user must also own the server process.\n\n" +msgstr "Файли цієї бази даних будуть належати користувачеві \"%s\".\n" +"Від імені цього користувача повинен запускатися процес сервера.\n\n" -#: initdb.c:3391 +#: initdb.c:3421 #, c-format msgid "Data page checksums are enabled.\n" msgstr "Контроль цілісності сторінок даних увімкнено.\n" -#: initdb.c:3393 +#: initdb.c:3423 #, c-format msgid "Data page checksums are disabled.\n" msgstr "Контроль цілісності сторінок даних вимкнено.\n" -#: initdb.c:3410 +#: initdb.c:3440 #, c-format -msgid "" -"\n" +msgid "\n" "Sync to disk skipped.\n" "The data directory might become corrupt if the operating system crashes.\n" -msgstr "" -"\n" +msgstr "\n" "Синхронізація з диском пропущена.\n" "Каталог з даними може бути пошкоджено під час аварійного завершення роботи операційної системи.\n" -#: initdb.c:3415 +#: initdb.c:3445 #, c-format msgid "enabling \"trust\" authentication for local connections" msgstr "увімкнення автентифікації \"довіри\" для локальних підключень" -#: initdb.c:3416 +#: initdb.c:3446 #, c-format msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." msgstr "Ви можете змінити це, змінивши pg_hba.conf або скориставшись опцією -A, або --auth-local і --auth-host, наступного разу, коли ви запускаєте initdb." #. translator: This is a placeholder in a shell command. -#: initdb.c:3446 +#: initdb.c:3476 msgid "logfile" msgstr "logfile" -#: initdb.c:3448 +#: initdb.c:3478 #, c-format -msgid "" -"\n" -"Success. You can now start the database server using:\n" -"\n" -" %s\n" -"\n" -msgstr "" -"\n" -"Готово. Тепер ви можете запустити сервер бази даних командою:\n" -"\n" -" %s\n" -"\n" +msgid "\n" +"Success. You can now start the database server using:\n\n" +" %s\n\n" +msgstr "\n" +"Готово. Тепер ви можете запустити сервер бази даних командою:\n\n" +" %s\n\n" + diff --git a/src/bin/initdb/po/zh_CN.po b/src/bin/initdb/po/zh_CN.po index 9876679154c3c..5ffb5e045fe4c 100644 --- a/src/bin/initdb/po/zh_CN.po +++ b/src/bin/initdb/po/zh_CN.po @@ -4,111 +4,135 @@ # msgid "" msgstr "" -"Project-Id-Version: initdb (PostgreSQL) 14\n" +"Project-Id-Version: initdb (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 05:47+0000\n" -"PO-Revision-Date: 2021-08-15 18:00+0800\n" -"Last-Translator: Jie Zhang \n" +"POT-Creation-Date: 2024-05-24 03:30+0000\n" +"PO-Revision-Date: 2024-05-25 16:46+0800\n" +"Last-Translator: Dianjin Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.7\n" +"X-Generator: Poedit 3.4.4\n" -#: ../../../src/common/logging.c:259 -#, c-format -msgid "fatal: " -msgstr "致命的: " - -#: ../../../src/common/logging.c:266 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "错误: " -#: ../../../src/common/logging.c:273 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "警告: " -#: ../../common/exec.c:136 ../../common/exec.c:253 ../../common/exec.c:299 +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "详细信息: " + +#: ../../../src/common/logging.c:301 #, c-format -msgid "could not identify current directory: %m" -msgstr "无法确认当前目录: %m" +msgid "hint: " +msgstr "提示: " -#: ../../common/exec.c:155 +#: ../../common/exec.c:174 #, c-format -msgid "invalid binary \"%s\"" -msgstr "无效的二进制码 \"%s\"" +msgid "invalid binary \"%s\": %m" +msgstr "无效的二进制码 \"%s\": %m" -#: ../../common/exec.c:205 +#: ../../common/exec.c:217 #, c-format -msgid "could not read binary \"%s\"" -msgstr "无法读取二进制码 \"%s\"" +msgid "could not read binary \"%s\": %m" +msgstr "无法读取二进制码 \"%s\": %m" -#: ../../common/exec.c:213 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "未能找到一个 \"%s\" 来执行" -#: ../../common/exec.c:269 ../../common/exec.c:308 +#: ../../common/exec.c:252 #, c-format -msgid "could not change directory to \"%s\": %m" -msgstr "无法跳转到目录 \"%s\" 中: %m" +msgid "could not resolve path \"%s\" to absolute form: %m" +msgstr "无法将路径 \"%s\" 解析为绝对路径格式: %m" -#: ../../common/exec.c:286 +#: ../../common/exec.c:382 initdb.c:695 #, c-format -msgid "could not read symbolic link \"%s\": %m" -msgstr "无法读取符号链接 \"%s\": %m" +msgid "could not execute command \"%s\": %m" +msgstr "无法执行命令 \"%s\": %m" -#: ../../common/exec.c:409 +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "无法读取命令 \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "命令 \"%s\" 未返回数据" + +#: ../../common/exec.c:424 +#, c-format msgid "%s() failed: %m" -msgstr "%s()失败: %m" +msgstr "%s() 失败: %m" -#: ../../common/exec.c:522 ../../common/exec.c:567 ../../common/exec.c:659 -#: initdb.c:331 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: initdb.c:353 #, c-format msgid "out of memory" msgstr "内存不足" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 -#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:162 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format msgid "out of memory\n" msgstr "内存不足\n" -#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:154 +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 #, c-format msgid "cannot duplicate null pointer (internal error)\n" msgstr "无法复制空指针 (内部错误)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:451 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "无法打开文件 \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "无法为文件 \"%s\" 同步文件系统: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 #, c-format msgid "could not stat file \"%s\": %m" -msgstr "无法取文件 \"%s\" 的状态: %m" +msgstr "无法获取文件 \"%s\" 的状态: %m" -#: ../../common/file_utils.c:166 ../../common/pgfnames.c:48 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "该版本不支持同步方法 \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/pgfnames.c:48 ../../common/rmtree.c:63 #, c-format msgid "could not open directory \"%s\": %m" msgstr "无法打开目录 \"%s\": %m" -#: ../../common/file_utils.c:200 ../../common/pgfnames.c:69 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/pgfnames.c:69 ../../common/rmtree.c:106 #, c-format msgid "could not read directory \"%s\": %m" msgstr "无法读取目录 \"%s\": %m" -#: ../../common/file_utils.c:232 ../../common/file_utils.c:291 -#: ../../common/file_utils.c:365 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "无法打开文件 \"%s\": %m" - -#: ../../common/file_utils.c:303 ../../common/file_utils.c:373 +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "无法 fsync 文件 \"%s\": %m" -#: ../../common/file_utils.c:383 +#: ../../common/file_utils.c:498 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m" @@ -118,60 +142,50 @@ msgstr "无法把文件 \"%s\" 重命名为 \"%s\": %m" msgid "could not close directory \"%s\": %m" msgstr "无法关闭目录 \"%s\": %m" -#: ../../common/restricted_token.c:64 -#, c-format -msgid "could not load library \"%s\": error code %lu" -msgstr "无法加载库 \"%s\": 错误码 %lu" - -#: ../../common/restricted_token.c:73 -#, c-format -msgid "cannot create restricted tokens on this platform: error code %lu" -msgstr "无法为该平台创建受限制的令牌:错误码 %lu" - -#: ../../common/restricted_token.c:82 +#: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" -msgstr "无法打开进程令牌 (token): 错误码 %lu" +msgstr "无法打开进程令牌: 错误码 %lu" -#: ../../common/restricted_token.c:97 +#: ../../common/restricted_token.c:74 #, c-format msgid "could not allocate SIDs: error code %lu" -msgstr "无法分配SID: 错误码 %lu" +msgstr "无法分配 SID: 错误码 %lu" -#: ../../common/restricted_token.c:119 +#: ../../common/restricted_token.c:94 #, c-format msgid "could not create restricted token: error code %lu" -msgstr "无法创建受限令牌: 错误码为 %lu" +msgstr "无法创建受限令牌: 错误码 %lu" -#: ../../common/restricted_token.c:140 +#: ../../common/restricted_token.c:115 #, c-format msgid "could not start process for command \"%s\": error code %lu" -msgstr "无法为命令 \"%s\"创建进程: 错误码 %lu" +msgstr "无法为命令 \"%s\" 创建进程: 错误码 %lu" -#: ../../common/restricted_token.c:178 +#: ../../common/restricted_token.c:153 #, c-format msgid "could not re-execute with restricted token: error code %lu" msgstr "无法使用受限令牌再次执行: 错误码 %lu" -#: ../../common/restricted_token.c:194 +#: ../../common/restricted_token.c:168 #, c-format msgid "could not get exit code from subprocess: error code %lu" -msgstr "无法从子进程得到退出码: 错误码 %lu" +msgstr "无法从子进程获取退出码: 错误码 %lu" -#: ../../common/rmtree.c:79 +#: ../../common/rmtree.c:97 #, c-format -msgid "could not stat file or directory \"%s\": %m" -msgstr "无法统计文件或目录\"%s\": %m" +msgid "could not remove file \"%s\": %m" +msgstr "无法删除文件 \"%s\": %m" -#: ../../common/rmtree.c:101 ../../common/rmtree.c:113 +#: ../../common/rmtree.c:124 #, c-format -msgid "could not remove file or directory \"%s\": %m" -msgstr "无法删除文件或目录 \"%s\": %m" +msgid "could not remove directory \"%s\": %m" +msgstr "无法删除目录 \"%s\": %m" #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" -msgstr "无法找到有效的用户ID %ld: %s" +msgstr "无法找到有效的用户 ID %ld: %s" #: ../../common/username.c:45 msgid "user does not exist" @@ -180,302 +194,350 @@ msgstr "用户不存在" #: ../../common/username.c:60 #, c-format msgid "user name lookup failure: error code %lu" -msgstr "用户名查找失败:错误代码%lu" +msgstr "用户名查找失败: 错误码 %lu" -#: ../../common/wait_error.c:45 +#: ../../common/wait_error.c:55 #, c-format msgid "command not executable" -msgstr "无法执行命令" +msgstr "命令无法执行" -#: ../../common/wait_error.c:49 +#: ../../common/wait_error.c:59 #, c-format msgid "command not found" msgstr "命令没有找到" -#: ../../common/wait_error.c:54 +#: ../../common/wait_error.c:64 #, c-format msgid "child process exited with exit code %d" msgstr "子进程已退出, 退出码为 %d" -#: ../../common/wait_error.c:62 +#: ../../common/wait_error.c:72 #, c-format msgid "child process was terminated by exception 0x%X" -msgstr "子进程被例外(exception) 0x%X 终止" +msgstr "子进程被异常 0x%X 终止" -#: ../../common/wait_error.c:66 +#: ../../common/wait_error.c:76 #, c-format msgid "child process was terminated by signal %d: %s" msgstr "子进程被信号 %d 终止: %s" -#: ../../common/wait_error.c:72 +#: ../../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" msgstr "子进程已退出, 未知状态 %d" -#: ../../port/dirmod.c:221 +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 是选项 %s 的无效值" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 必须位于 %d..%d 的范围内" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "无法识别同步方法: %s" + +#: ../../port/dirmod.c:287 #, c-format msgid "could not set junction for \"%s\": %s\n" -msgstr "无法为 \"%s\"设置连接: %s\n" +msgstr "无法为 \"%s\" 设置连接: %s\n" -#: ../../port/dirmod.c:298 +#: ../../port/dirmod.c:367 #, c-format msgid "could not get junction for \"%s\": %s\n" -msgstr "无法为\"%s\"得到连接: %s\n" +msgstr "无法为 \"%s\" 获取连接: %s\n" -#: initdb.c:464 initdb.c:1496 +#: initdb.c:627 initdb.c:1619 #, c-format msgid "could not open file \"%s\" for reading: %m" -msgstr "为了读取, 无法打开文件 \"%s\": %m" +msgstr "无法打开文件 \"%s\" 进行读取: %m" -#: initdb.c:508 initdb.c:830 initdb.c:856 +#: initdb.c:671 initdb.c:975 initdb.c:995 #, c-format msgid "could not open file \"%s\" for writing: %m" -msgstr "为了写入, 无法打开文件 \"%s\": %m" +msgstr "无法打开文件 \"%s\" 进行写入: %m" -#: initdb.c:515 initdb.c:522 initdb.c:836 initdb.c:861 +#: initdb.c:675 initdb.c:978 initdb.c:997 #, c-format msgid "could not write file \"%s\": %m" msgstr "无法写入文件 \"%s\": %m" -#: initdb.c:540 +#: initdb.c:679 #, c-format -msgid "could not execute command \"%s\": %m" -msgstr "无法执行命令 \"%s\": %m" +msgid "could not close file \"%s\": %m" +msgstr "无法关闭文件 \"%s\": %m" -#: initdb.c:558 +#: initdb.c:713 #, c-format msgid "removing data directory \"%s\"" -msgstr "删除数据目录 \"%s\"" +msgstr "正在删除数据目录 \"%s\"" -#: initdb.c:560 +#: initdb.c:715 #, c-format msgid "failed to remove data directory" msgstr "删除数据目录失败" -#: initdb.c:564 +#: initdb.c:719 #, c-format msgid "removing contents of data directory \"%s\"" -msgstr "删除数据目录 \"%s\" 的内容" +msgstr "正在删除数据目录 \"%s\" 的内容" -#: initdb.c:567 +#: initdb.c:722 #, c-format msgid "failed to remove contents of data directory" msgstr "删除数据目录内容失败" -#: initdb.c:572 +#: initdb.c:727 #, c-format msgid "removing WAL directory \"%s\"" -msgstr "正在删除WAL目录\"%s\"" +msgstr "正在删除 WAL 目录 \"%s\"" -#: initdb.c:574 +#: initdb.c:729 #, c-format msgid "failed to remove WAL directory" -msgstr "删除WAL目录失败" +msgstr "删除 WAL 目录失败" -#: initdb.c:578 +#: initdb.c:733 #, c-format msgid "removing contents of WAL directory \"%s\"" -msgstr "正在删除WAL目录 \"%s\" 的内容" +msgstr "正在删除 WAL 目录 \"%s\" 的内容" -#: initdb.c:580 +#: initdb.c:735 #, c-format msgid "failed to remove contents of WAL directory" -msgstr "删除WAL目录内容失败" +msgstr "删除 WAL 目录内容失败" -#: initdb.c:587 +#: initdb.c:742 #, c-format msgid "data directory \"%s\" not removed at user's request" -msgstr "在用户的要求下数据库目录 \"%s\" 不被删除" +msgstr "依照用户要求数据库目录 \"%s\" 不被删除" -#: initdb.c:591 +#: initdb.c:746 #, c-format msgid "WAL directory \"%s\" not removed at user's request" -msgstr "在用户的要求下WAL目录 \"%s\" 不被删除" +msgstr "依照用户要求 WAL 目录 \"%s\" 不被删除" -#: initdb.c:609 +#: initdb.c:764 #, c-format msgid "cannot be run as root" -msgstr "不能使用root用户运行" +msgstr "无法以 root 身份运行" -#: initdb.c:611 +#: initdb.c:765 #, c-format -msgid "" -"Please log in (using, e.g., \"su\") as the (unprivileged) user that will\n" -"own the server process.\n" -msgstr "" -"请以服务器进程所有者的用户 (无特权) 身份\n" -"登陆 (使用, e.g., \"su\").\n" +msgid "Please log in (using, e.g., \"su\") as the (unprivileged) user that will own the server process." +msgstr "请以拥有服务器进程的 (无特权) 用户身份登录 (例如使用 \"su\")." -#: initdb.c:644 +#: initdb.c:797 #, c-format msgid "\"%s\" is not a valid server encoding name" -msgstr "\"%s\" 不是一个有效的服务器编码名字" +msgstr "\"%s\" 不是一个有效的服务器编码名称" -#: initdb.c:789 +#: initdb.c:941 #, c-format msgid "file \"%s\" does not exist" msgstr "文件 \"%s\" 不存在" -#: initdb.c:791 initdb.c:798 initdb.c:807 +#: initdb.c:942 initdb.c:947 initdb.c:954 #, c-format -msgid "" -"This might mean you have a corrupted installation or identified\n" -"the wrong directory with the invocation option -L.\n" -msgstr "" -"这意味着您的安装发生了错误或\n" -"使用 -L 选项指定了错误的路径.\n" +msgid "This might mean you have a corrupted installation or identified the wrong directory with the invocation option -L." +msgstr "这意味着你的安装发生了错误或使用 -L 选项指定了错误的目录." -#: initdb.c:796 +#: initdb.c:946 #, c-format msgid "could not access file \"%s\": %m" msgstr "无法访问文件 \"%s\": %m" -#: initdb.c:805 +#: initdb.c:953 #, c-format msgid "file \"%s\" is not a regular file" msgstr "文件 \"%s\" 不是常规文件" -#: initdb.c:950 +#: initdb.c:1086 #, c-format msgid "selecting dynamic shared memory implementation ... " -msgstr "选择动态共享内存实现 ......" +msgstr "正在选择动态共享内存实现 ... " -#: initdb.c:959 +#: initdb.c:1095 #, c-format -msgid "selecting default max_connections ... " -msgstr "选择默认最大联接数 (max_connections) ... " +msgid "selecting default \"max_connections\" ... " +msgstr "正在选择默认最大连接数 (max_connections) ... " -#: initdb.c:990 +#: initdb.c:1115 #, c-format -msgid "selecting default shared_buffers ... " -msgstr "选择默认共享缓冲区大小 (shared_buffers) ... " +msgid "selecting default \"shared_buffers\" ... " +msgstr "正在选择默认共享缓冲区 (shared_buffers) ... " -#: initdb.c:1024 +#: initdb.c:1138 +#, c-format msgid "selecting default time zone ... " -msgstr "选择默认时区 ... " +msgstr "正在选择默认时区 ... " -#: initdb.c:1058 +#: initdb.c:1217 msgid "creating configuration files ... " -msgstr "创建配置文件 ... " +msgstr "正在创建配置文件 ... " -#: initdb.c:1217 initdb.c:1236 initdb.c:1322 initdb.c:1337 +#: initdb.c:1370 initdb.c:1384 initdb.c:1451 initdb.c:1462 #, c-format msgid "could not change permissions of \"%s\": %m" -msgstr "无法改变\"%s\"的权限: %m" +msgstr "无法改变 \"%s\" 的权限: %m" -#: initdb.c:1359 +#: initdb.c:1481 #, c-format msgid "running bootstrap script ... " -msgstr "正在运行自举脚本 ..." +msgstr "正在运行启动脚本 ... " -#: initdb.c:1371 +#: initdb.c:1493 #, c-format msgid "input file \"%s\" does not belong to PostgreSQL %s" -msgstr "输入文件 \"%s\" 不属于PostgreSQL %s" +msgstr "输入文件 \"%s\" 不属于 PostgreSQL %s" -#: initdb.c:1374 +#: initdb.c:1495 #, c-format -msgid "Check your installation or specify the correct path using the option -L.\n" -msgstr "检查你的安装或使用 -L 选项指定正确的路径.\n" +msgid "Specify the correct path using the option -L." +msgstr "使用 -L 选项指定正确的路径." -#: initdb.c:1473 +#: initdb.c:1597 msgid "Enter new superuser password: " -msgstr "输入新的超级用户口令: " +msgstr "输入新的超级用户密码: " -#: initdb.c:1474 +#: initdb.c:1598 msgid "Enter it again: " msgstr "再输入一遍: " -#: initdb.c:1477 +#: initdb.c:1601 #, c-format msgid "Passwords didn't match.\n" -msgstr "口令不匹配.\n" +msgstr "密码不匹配.\n" -#: initdb.c:1504 +#: initdb.c:1625 #, c-format msgid "could not read password from file \"%s\": %m" -msgstr "无法从文件 \"%s\" 读取口令: %m" +msgstr "无法从文件 \"%s\" 读取密码: %m" -#: initdb.c:1507 +#: initdb.c:1628 #, c-format msgid "password file \"%s\" is empty" -msgstr "口令文件\"%s\"为空" +msgstr "密码文件 \"%s\" 为空" -#: initdb.c:1998 +#: initdb.c:2040 #, c-format msgid "caught signal\n" msgstr "捕获信号\n" -#: initdb.c:2004 +#: initdb.c:2046 #, c-format msgid "could not write to child process: %s\n" -msgstr "无法写到子进程: %s\n" +msgstr "无法写入子进程: %s\n" -#: initdb.c:2012 +#: initdb.c:2054 #, c-format msgid "ok\n" msgstr "成功\n" -#: initdb.c:2102 +#: initdb.c:2143 #, c-format msgid "setlocale() failed" -msgstr "setlocale()调用失败" +msgstr "setlocale() 调用失败" -#: initdb.c:2123 +#: initdb.c:2161 #, c-format msgid "failed to restore old locale \"%s\"" -msgstr "还原旧区域\"%s\"失败" +msgstr "恢复旧区域设置 \"%s\" 失败" -#: initdb.c:2132 +#: initdb.c:2169 #, c-format msgid "invalid locale name \"%s\"" -msgstr "无效的语言环境名称 \"%s\"" +msgstr "无效的区域设置名称 \"%s\"" -#: initdb.c:2143 +#: initdb.c:2170 +#, c-format +msgid "If the locale name is specific to ICU, use --icu-locale." +msgstr "如果将区域设置名称指定为 ICU, 请使用 --icu-locale." + +#: initdb.c:2183 #, c-format msgid "invalid locale settings; check LANG and LC_* environment variables" -msgstr "无效的本地化设置; 请检查环境变量LANG和LC_*的值" +msgstr "无效的区域设置; 请检查环境变量 LANG 和 LC_* 的值" -#: initdb.c:2170 +#: initdb.c:2209 initdb.c:2233 #, c-format msgid "encoding mismatch" msgstr "编码不匹配" -#: initdb.c:2172 +#: initdb.c:2210 #, c-format -msgid "" -"The encoding you selected (%s) and the encoding that the\n" -"selected locale uses (%s) do not match. This would lead to\n" -"misbehavior in various character string processing functions.\n" -"Rerun %s and either do not specify an encoding explicitly,\n" -"or choose a matching combination.\n" -msgstr "" -"您选择的编码 (%s) 和所选择的语言环境使用的编码 (%s) 不匹配的.\n" -"这样将导致处理不同字符串的函数时产生错误.\n" -"要修复此问题, 重新运行 %s 并且不要明确指定编码, 或者先选择一个匹配\n" -"组合类型.\n" -"\n" +msgid "The encoding you selected (%s) and the encoding that the selected locale uses (%s) do not match. This would lead to misbehavior in various character string processing functions." +msgstr "你选择的编码 (%s) 和所选择的区域设置使用的编码 (%s) 不匹配. 这将导致不同字符串处理函数时产生错误." + +#: initdb.c:2215 initdb.c:2236 +#, c-format +msgid "Rerun %s and either do not specify an encoding explicitly, or choose a matching combination." +msgstr "请重新运行 %s, 且不要显示指定编码, 或选择一个匹配的组合." + +#: initdb.c:2234 +#, c-format +msgid "The encoding you selected (%s) is not supported with the ICU provider." +msgstr "你所选择的编码 (%s) 不受 ICU 支持程序支持." + +#: initdb.c:2285 +#, c-format +msgid "could not convert locale name \"%s\" to language tag: %s" +msgstr "无法将区域设置名称 \"%s\" 转换为语言标签: %s" + +#: initdb.c:2291 initdb.c:2343 initdb.c:2435 +#, c-format +msgid "ICU is not supported in this build" +msgstr "该版本不支持 ICU" + +#: initdb.c:2314 +#, c-format +msgid "could not get language from locale \"%s\": %s" +msgstr "无法从区域设置 \"%s\" 获取语言: %s" + +#: initdb.c:2340 +#, c-format +msgid "locale \"%s\" has unknown language \"%s\"" +msgstr "区域设置 \"%s\" 拥有未知的语言 \"%s\"" + +#: initdb.c:2401 +#, c-format +msgid "locale must be specified if provider is %s" +msgstr "如果支持程序为 %s 必须指定区域设置" + +#: initdb.c:2412 +#, c-format +msgid "invalid locale name \"%s\" for builtin provider" +msgstr "\"%s\" 是内置支持程序的无效区域设置名称" + +#: initdb.c:2423 +#, c-format +msgid "Using language tag \"%s\" for ICU locale \"%s\".\n" +msgstr "使用语言标签 \"%s\" 用于 ICU 区域设置 \"%s\".\n" -#: initdb.c:2244 +#: initdb.c:2446 #, c-format msgid "" "%s initializes a PostgreSQL database cluster.\n" "\n" msgstr "" -"%s 初始化一个 PostgreSQL 数据库簇.\n" +"%s 初始化一个 PostgreSQL 数据库集簇.\n" "\n" -#: initdb.c:2245 +#: initdb.c:2447 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: initdb.c:2246 +#: initdb.c:2448 #, c-format msgid " %s [OPTION]... [DATADIR]\n" -msgstr " %s [选项]... [DATADIR]\n" +msgstr " %s [选项]... [数据目录]\n" -#: initdb.c:2247 +#: initdb.c:2449 #, c-format msgid "" "\n" @@ -484,47 +546,57 @@ msgstr "" "\n" "选项:\n" -#: initdb.c:2248 +#: initdb.c:2450 #, c-format msgid " -A, --auth=METHOD default authentication method for local connections\n" msgstr " -A, --auth=METHOD 本地连接的默认认证方法\n" -#: initdb.c:2249 +#: initdb.c:2451 #, c-format msgid " --auth-host=METHOD default authentication method for local TCP/IP connections\n" -msgstr " --auth-host=METHOD 本地的TCP/IP连接的默认认证方法\n" +msgstr " --auth-host=METHOD 本地的 TCP/IP 连接的默认认证方法\n" -#: initdb.c:2250 +#: initdb.c:2452 #, c-format msgid " --auth-local=METHOD default authentication method for local-socket connections\n" -msgstr " --auth-local=METHOD 本地socket连接的默认认证方法\n" +msgstr " --auth-local=METHOD 本地 socket 连接的默认认证方法\n" -#: initdb.c:2251 +#: initdb.c:2453 #, c-format msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" -msgstr " -D, --pgdata=DATADIR 当前数据库簇的位置\n" +msgstr " [-D, --pgdata=]DATADIR 当前数据库集簇的位置\n" -#: initdb.c:2252 +#: initdb.c:2454 #, c-format msgid " -E, --encoding=ENCODING set default encoding for new databases\n" msgstr " -E, --encoding=ENCODING 为新数据库设置默认编码\n" -#: initdb.c:2253 +#: initdb.c:2455 #, c-format msgid " -g, --allow-group-access allow group read/execute on data directory\n" msgstr " -g, --allow-group-access 允许组对数据目录进行读/执行\n" -#: initdb.c:2254 +#: initdb.c:2456 +#, c-format +msgid " --icu-locale=LOCALE set ICU locale ID for new databases\n" +msgstr " --icu-locale=LOCALE 为新数据库设置 ICU 区域环境 ID\n" + +#: initdb.c:2457 +#, c-format +msgid " --icu-rules=RULES set additional ICU collation rules for new databases\n" +msgstr " --icu-rules=RULES 为新数据库设置额外的 ICU 排序规则\n" + +#: initdb.c:2458 #, c-format msgid " -k, --data-checksums use data page checksums\n" msgstr " -k, --data-checksums 使用数据页产生效验和\n" -#: initdb.c:2255 +#: initdb.c:2459 #, c-format msgid " --locale=LOCALE set default locale for new databases\n" -msgstr " --locale=LOCALE 为新数据库设置默认语言环境\n" +msgstr " --locale=LOCALE 为新数据库设置默认区域环境\n" -#: initdb.c:2256 +#: initdb.c:2460 #, c-format msgid "" " --lc-collate=, --lc-ctype=, --lc-messages=LOCALE\n" @@ -534,97 +606,126 @@ msgid "" msgstr "" " --lc-collate, --lc-ctype, --lc-messages=LOCALE\n" " --lc-monetary, --lc-numeric, --lc-time=LOCALE\n" -" 为新的数据库簇在各自的目录中分别\n" -" 设定缺省语言环境(默认使用环境变量)\n" +" 为新的数据库集簇在各自的目录中分别\n" +" 设置默认区域环境(默认使用环境变量)\n" -#: initdb.c:2260 +#: initdb.c:2464 #, c-format msgid " --no-locale equivalent to --locale=C\n" msgstr " --no-locale 等同于 --locale=C\n" -#: initdb.c:2261 +#: initdb.c:2465 +#, c-format +msgid "" +" --builtin-locale=LOCALE\n" +" set builtin locale name for new databases\n" +msgstr "" +" —builtin-locale=LOCALE\n" +" 为新数据库设置内置区域环境名称\n" + +#: initdb.c:2467 +#, c-format +msgid "" +" --locale-provider={builtin|libc|icu}\n" +" set default locale provider for new databases\n" +msgstr "" +" —locale-provider={builtin|libc|icu}\n" +" 为新数据库设置默认的区域环境支持程序\n" + +#: initdb.c:2469 #, c-format msgid " --pwfile=FILE read password for the new superuser from file\n" -msgstr " --pwfile=FILE 对于新的超级用户从文件读取口令\n" +msgstr " --pwfile=FILE 为新的超级用户从文件读取密码\n" -#: initdb.c:2262 +#: initdb.c:2470 #, c-format msgid "" " -T, --text-search-config=CFG\n" " default text search configuration\n" msgstr "" " -T, --text-search-config=CFG\n" -" 缺省的文本搜索配置\n" +" 默认的文本搜索配置\n" -#: initdb.c:2264 +#: initdb.c:2472 #, c-format msgid " -U, --username=NAME database superuser name\n" -msgstr " -U, --username=NAME 数据库超级用户名\n" +msgstr " -U, --username=NAME 数据库超级用户名称\n" -#: initdb.c:2265 +#: initdb.c:2473 #, c-format msgid " -W, --pwprompt prompt for a password for the new superuser\n" -msgstr " -W, --pwprompt 对于新的超级用户提示输入口令\n" +msgstr " -W, --pwprompt 对于新的超级用户提示输入密码\n" -#: initdb.c:2266 +#: initdb.c:2474 #, c-format msgid " -X, --waldir=WALDIR location for the write-ahead log directory\n" msgstr " -X, --waldir=WALDIR 预写日志目录的位置\n" -#: initdb.c:2267 +#: initdb.c:2475 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=SIZE WAL段的大小(兆字节)\n" +msgstr " --wal-segsize=SIZE WAL 段的大小(兆字节)\n" -#: initdb.c:2268 +#: initdb.c:2476 #, c-format msgid "" "\n" "Less commonly used options:\n" msgstr "" "\n" -"非普通使用选项:\n" +"不常用选项:\n" -#: initdb.c:2269 +#: initdb.c:2477 +#, c-format +msgid " -c, --set NAME=VALUE override default setting for server parameter\n" +msgstr " -c, --set NAME=VALUE 覆盖默认的服务器参数设置\n" + +#: initdb.c:2478 #, c-format msgid " -d, --debug generate lots of debugging output\n" -msgstr " -d, --debug 产生大量的除错信息\n" +msgstr " -d, --debug 产生大量的调试信息\n" -#: initdb.c:2270 +#: initdb.c:2479 #, c-format msgid " --discard-caches set debug_discard_caches=1\n" -msgstr " --discard-caches 设置debug_discard_caches=1\n" +msgstr " --discard-caches 设置 debug_discard_caches=1\n" -#: initdb.c:2271 +#: initdb.c:2480 #, c-format msgid " -L DIRECTORY where to find the input files\n" msgstr " -L DIRECTORY 输入文件的位置\n" -#: initdb.c:2272 +#: initdb.c:2481 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean 出错后不清理\n" -#: initdb.c:2273 +#: initdb.c:2482 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" -msgstr " -N, --no-sync 不用等待变化安全写入磁盘\n" +msgstr " -N, --no-sync 不用等待变更安全写入磁盘\n" -#: initdb.c:2274 +#: initdb.c:2483 +#, c-format msgid " --no-instructions do not print instructions for next steps\n" msgstr " --no-instructions 不要打印后续步骤的说明\n" -#: initdb.c:2275 +#: initdb.c:2484 #, c-format msgid " -s, --show show internal settings\n" msgstr " -s, --show 显示内部设置\n" -#: initdb.c:2276 +#: initdb.c:2485 #, c-format -msgid " -S, --sync-only only sync data directory\n" -msgstr " -S, --sync-only 只同步数据目录\n" +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD 设置同步文件到磁盘的方法\n" -#: initdb.c:2277 +#: initdb.c:2486 +#, c-format +msgid " -S, --sync-only only sync database files to disk, then exit\n" +msgstr " -S, --sync-only 只同步数据库文件到磁盘, 然后退出\n" + +#: initdb.c:2487 #, c-format msgid "" "\n" @@ -633,17 +734,17 @@ msgstr "" "\n" "其它选项:\n" -#: initdb.c:2278 +#: initdb.c:2488 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 输出版本信息, 然后退出\n" -#: initdb.c:2279 +#: initdb.c:2489 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 显示此帮助, 然后退出\n" -#: initdb.c:2280 +#: initdb.c:2490 #, c-format msgid "" "\n" @@ -652,117 +753,115 @@ msgid "" msgstr "" "\n" "如果没有指定数据目录, 将使用环境变量 PGDATA\n" +"\n" -#: initdb.c:2282 +#: initdb.c:2492 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" -"臭虫报告至<%s>.\n" +"报告缺陷: <%s>.\n" -#: initdb.c:2283 +#: initdb.c:2493 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 主页: <%s>\n" -#: initdb.c:2311 +#: initdb.c:2517 #, c-format msgid "invalid authentication method \"%s\" for \"%s\" connections" -msgstr "无效认证方法 \"%s\" 用于 \"%s\" 连接" +msgstr "\"%s\" 是用于 \"%s\" 连接的无效认证方法" -#: initdb.c:2327 +#: initdb.c:2531 +#, c-format msgid "must specify a password for the superuser to enable password authentication" -msgstr "为了启动密码认证, 你需要为超级用户指定一个口令" +msgstr "为了启用密码认证, 必须为超级用户指定一个密码" -#: initdb.c:2348 +#: initdb.c:2550 #, c-format msgid "no data directory specified" msgstr "没有指定数据目录" -#: initdb.c:2350 +#: initdb.c:2551 #, c-format -msgid "" -"You must identify the directory where the data for this database system\n" -"will reside. Do this with either the invocation option -D or the\n" -"environment variable PGDATA.\n" -msgstr "" -"您必须确认此数据库系统的数据所在目录\n" -"存在. 使用 -D 选项或者\n" -"环境变量 PGDATA.\n" +msgid "You must identify the directory where the data for this database system will reside. Do this with either the invocation option -D or the environment variable PGDATA." +msgstr "你必须确认此数据库系统的数据所在目录存在. 可使用 -D 选项或者环境变量 PGDATA 操作." -#: initdb.c:2368 +#: initdb.c:2568 +#, c-format msgid "could not set environment" msgstr "无法设置环境" -#: initdb.c:2388 +#: initdb.c:2586 #, 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." -msgstr "" -"%2$s需要程序\"%1$s\"\n" -"但在与\"%3$s\"相同的目录中找不到该程序.\n" -"检查您的安装." +msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" +msgstr "%2$s 需要程序 \"%1$s\", 但在与 \"%3$s\" 相同的目录中找不到该程序" -#: initdb.c:2393 +#: initdb.c:2589 #, c-format -msgid "" -"The program \"%s\" was found by \"%s\"\n" -"but was not the same version as %s.\n" -"Check your installation." -msgstr "" -"程序\"%s\"是由\"%s\"找到的\n" -"但与%s的版本不同.\n" -"检查您的安装." +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "程序 \"%s\" 已由 \"%s\" 找到, 但与 %s 版本不一致" -#: initdb.c:2412 +#: initdb.c:2604 #, c-format msgid "input file location must be an absolute path" msgstr "输入文件位置必须为绝对路径" -#: initdb.c:2429 +#: initdb.c:2621 #, c-format msgid "The database cluster will be initialized with locale \"%s\".\n" -msgstr "数据库簇将使用本地化语言 \"%s\"进行初始化.\n" +msgstr "数据库集簇将以区域环境设置 \"%s\" 进行初始化.\n" + +#: initdb.c:2624 +#, c-format +msgid "The database cluster will be initialized with this locale configuration:\n" +msgstr "数据库集簇将以该区域环境配置进行初始化:\n" + +#: initdb.c:2625 +#, c-format +msgid " locale provider: %s\n" +msgstr " 区域环境支持程序: %s\n" + +#: initdb.c:2627 +#, c-format +msgid " default collation: %s\n" +msgstr " 默认排序: %s\n" -#: initdb.c:2432 +#: initdb.c:2628 #, c-format msgid "" -"The database cluster will be initialized with locales\n" -" COLLATE: %s\n" -" CTYPE: %s\n" -" MESSAGES: %s\n" -" MONETARY: %s\n" -" NUMERIC: %s\n" -" TIME: %s\n" +" LC_COLLATE: %s\n" +" LC_CTYPE: %s\n" +" LC_MESSAGES: %s\n" +" LC_MONETARY: %s\n" +" LC_NUMERIC: %s\n" +" LC_TIME: %s\n" msgstr "" -"数据库簇将带有一下 locales 初始化\n" -" COLLATE: %s\n" -" CTYPE: %s\n" -" MESSAGES: %s\n" -" MONETARY: %s\n" -" NUMERIC: %s\n" -" TIME: %s\n" +" LC_COLLATE: %s\n" +" LC_CTYPE: %s\n" +" LC_MESSAGES: %s\n" +" LC_MONETARY: %s\n" +" LC_NUMERIC: %s\n" +" LC_TIME: %s\n" -#: initdb.c:2456 +#: initdb.c:2658 #, c-format msgid "could not find suitable encoding for locale \"%s\"" -msgstr "无法为locale(本地化语言)\"%s\"找到合适的编码" +msgstr "无法为区域环境 \"%s\" 找到合适的编码" -#: initdb.c:2458 +#: initdb.c:2660 #, c-format -msgid "Rerun %s with the -E option.\n" -msgstr "带 -E 选项重新运行 %s.\n" +msgid "Rerun %s with the -E option." +msgstr "请带 -E 选项重新运行 %s." -#: initdb.c:2459 initdb.c:3099 initdb.c:3120 +#: initdb.c:2661 initdb.c:3204 initdb.c:3324 initdb.c:3344 #, c-format -msgid "Try \"%s --help\" for more information.\n" -msgstr "请用 \"%s --help\" 获取更多的信息.\n" +msgid "Try \"%s --help\" for more information." +msgstr "请用 \"%s --help\" 获取更多信息." -#: initdb.c:2472 +#: initdb.c:2673 #, c-format msgid "" "Encoding \"%s\" implied by locale is not allowed as a server-side encoding.\n" @@ -771,173 +870,179 @@ msgstr "" "本地化隐含的编码 \"%s\" 不允许作为服务器端的编码.\n" "默认的数据库编码将采用 \"%s\" 作为代替.\n" -#: initdb.c:2477 +#: initdb.c:2678 #, c-format msgid "locale \"%s\" requires unsupported encoding \"%s\"" -msgstr "本地化语言环境 \"%s\"要求使用不支持的编码\"%s\"" +msgstr "区域环境 \"%s\" 要求使用不支持的编码 \"%s\"" -#: initdb.c:2480 +#: initdb.c:2680 #, c-format -msgid "" -"Encoding \"%s\" is not allowed as a server-side encoding.\n" -"Rerun %s with a different locale selection.\n" -msgstr "" -"不允许将编码\"%s\"作为服务器端编码.\n" -"使用一个不同的本地化语言环境重新运行%s.\n" +msgid "Encoding \"%s\" is not allowed as a server-side encoding." +msgstr "编码 \"%s\" 不允许作为服务器端编码." -#: initdb.c:2489 +#: initdb.c:2682 +#, c-format +msgid "Rerun %s with a different locale selection." +msgstr "请使用一个不同的区域环境选项重新运行 %s." + +#: initdb.c:2690 #, c-format msgid "The default database encoding has accordingly been set to \"%s\".\n" msgstr "默认的数据库编码已经相应的设置为 \"%s\".\n" -#: initdb.c:2555 +#: initdb.c:2704 +#, c-format +msgid "builtin provider locale \"%s\" requires encoding \"%s\"" +msgstr "内置的支持程序区域环境 \"%s\" 要求编码 \"%s\"" + +#: initdb.c:2766 +#, c-format msgid "could not find suitable text search configuration for locale \"%s\"" -msgstr "无法为本地化语言环境\"%s\"找到合适的文本搜索配置" +msgstr "无法为区域环境 \"%s\" 找到合适的文本搜索配置" -#: initdb.c:2566 +#: initdb.c:2777 +#, c-format msgid "suitable text search configuration for locale \"%s\" is unknown" -msgstr "对于本地化语言环境\"%s\"合适的文本搜索配置未知" +msgstr "区域环境 \"%s\" 的合适文本搜索配置未知" -#: initdb.c:2571 +#: initdb.c:2782 +#, c-format msgid "specified text search configuration \"%s\" might not match locale \"%s\"" -msgstr "所指定的文本搜索配置\"%s\"可能与本地语言环境\"%s\"不匹配" +msgstr "所指定的文本搜索配置 \"%s\" 可能与区域环境 \"%s\" 不匹配" -#: initdb.c:2576 +#: initdb.c:2787 #, c-format msgid "The default text search configuration will be set to \"%s\".\n" -msgstr "缺省的文本搜索配置将会被设置到\"%s\"\n" +msgstr "默认的文本搜索配置将被设为 \"%s\".\n" -#: initdb.c:2620 initdb.c:2702 +#: initdb.c:2830 initdb.c:2901 #, c-format msgid "creating directory %s ... " -msgstr "创建目录 %s ... " +msgstr "正在创建目录 %s ... " -#: initdb.c:2626 initdb.c:2708 initdb.c:2773 initdb.c:2835 +#: initdb.c:2835 initdb.c:2906 initdb.c:2954 initdb.c:3011 #, c-format msgid "could not create directory \"%s\": %m" msgstr "无法创建目录 \"%s\": %m" -#: initdb.c:2637 initdb.c:2720 +#: initdb.c:2844 initdb.c:2916 #, c-format msgid "fixing permissions on existing directory %s ... " -msgstr "修复已存在目录 %s 的权限 ... " +msgstr "正在修复已存在目录 %s 的权限 ... " -#: initdb.c:2643 initdb.c:2726 +#: initdb.c:2849 initdb.c:2921 #, c-format msgid "could not change permissions of directory \"%s\": %m" msgstr "无法改变目录 \"%s\" 的权限: %m" -#: initdb.c:2657 initdb.c:2740 +#: initdb.c:2861 initdb.c:2933 #, c-format msgid "directory \"%s\" exists but is not empty" -msgstr "目录\"%s\"已存在,但不是空的" +msgstr "目录 \"%s\" 已存在,但不为空" -#: initdb.c:2662 +#: initdb.c:2865 #, c-format -msgid "" -"If you want to create a new database system, either remove or empty\n" -"the directory \"%s\" or run %s\n" -"with an argument other than \"%s\".\n" -msgstr "" -"如果您想创建一个新的数据库系统, 请删除或清空\n" -"目录 \"%s\" 或者运行带参数的 %s\n" -"而不是 \"%s\".\n" +msgid "If you want to create a new database system, either remove or empty the directory \"%s\" or run %s with an argument other than \"%s\"." +msgstr "如果你想创建一个新的数据库系统, 请删除或清空目录 \"%s\" 或者运行带有参数的 %s 而不是 \"%s\"." -#: initdb.c:2670 initdb.c:2752 initdb.c:3135 +#: initdb.c:2873 initdb.c:2943 initdb.c:3369 #, c-format msgid "could not access directory \"%s\": %m" msgstr "无法访问目录 \"%s\": %m" -#: initdb.c:2693 +#: initdb.c:2894 #, c-format msgid "WAL directory location must be an absolute path" -msgstr "WAL目录的位置必须为绝对路径" +msgstr "WAL 目录位置必须为绝对路径" -#: initdb.c:2745 +#: initdb.c:2937 #, c-format -msgid "" -"If you want to store the WAL there, either remove or empty the directory\n" -"\"%s\".\n" -msgstr "如果您要存储WAL日志,需要删除或者清空目录\"%s\".\n" +msgid "If you want to store the WAL there, either remove or empty the directory \"%s\"." +msgstr "如果你要存储 WAL 日志,需要删除或者清空目录 \"%s\"." -#: initdb.c:2759 +#: initdb.c:2947 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "无法创建符号链接 \"%s\": %m" -#: initdb.c:2764 +#: initdb.c:2966 #, c-format -msgid "symlinks are not supported on this platform" -msgstr "在这个平台上不支持符号链接" +msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point." +msgstr "它包含一个以点号开头/不可见的文件,可能因为它是一个挂载点." -#: initdb.c:2788 +#: initdb.c:2968 #, c-format -msgid "It contains a dot-prefixed/invisible file, perhaps due to it being a mount point.\n" -msgstr "它包含一个不可见的带固定点的文件,可能因为它是一个装载点。\n" +msgid "It contains a lost+found directory, perhaps due to it being a mount point." +msgstr "它包含名为 lost+found 的目录,可能因为它是一个挂载点." -#: initdb.c:2791 -#, c-format -msgid "It contains a lost+found directory, perhaps due to it being a mount point.\n" -msgstr "它包含名为lost+found的目录,可能因为它是一个加载点.\n" - -#: initdb.c:2794 +#: initdb.c:2970 #, c-format msgid "" "Using a mount point directly as the data directory is not recommended.\n" -"Create a subdirectory under the mount point.\n" +"Create a subdirectory under the mount point." msgstr "" -"不推荐将加载点作为数据目录.\n" -"通常在加载点下边创建一个子目录.\n" +"不推荐直接将挂载点用作数据目录.\n" +"通常在挂载点下边创建一个子目录." -#: initdb.c:2820 +#: initdb.c:2997 #, c-format msgid "creating subdirectories ... " msgstr "正在创建子目录 ... " -#: initdb.c:2866 +#: initdb.c:3040 msgid "performing post-bootstrap initialization ... " -msgstr "正在执行自举后初始化 ..." +msgstr "正在执行启动脚本后续初始化 ... " + +#: initdb.c:3203 +#, c-format +msgid "-c %s requires a value" +msgstr "-c %s 需要一个值" -#: initdb.c:3029 +#: initdb.c:3228 #, c-format msgid "Running in debug mode.\n" -msgstr "运行在除错模式中. \n" +msgstr "正在以调试模式运行. \n" -#: initdb.c:3033 +#: initdb.c:3232 #, c-format msgid "Running in no-clean mode. Mistakes will not be cleaned up.\n" -msgstr "运行在 no-clean 模式中. 错误将不被清理.\n" +msgstr "正在以 no-clean 模式运行. 错误将不被清理.\n" + +#: initdb.c:3305 +#, c-format +msgid "unrecognized locale provider: %s" +msgstr "无法识别的区域环境支持程序: %s" -#: initdb.c:3118 +#: initdb.c:3342 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "命令行参数太多 (第一个是 \"%s\")" -#: initdb.c:3139 initdb.c:3228 +#: initdb.c:3349 initdb.c:3353 initdb.c:3357 +#, c-format +msgid "%s cannot be specified unless locale provider \"%s\" is chosen" +msgstr "无法指定 %s, 除非选择区域环境支持程序 \"%s\"" + +#: initdb.c:3371 initdb.c:3434 msgid "syncing data to disk ... " -msgstr "同步数据到磁盘..." +msgstr "正在同步数据到磁盘 ... " -#: initdb.c:3148 +#: initdb.c:3379 #, c-format msgid "password prompt and password file cannot be specified together" -msgstr "口令提示和口令文件不能同时都指定" +msgstr "密码提示和密码文件不能同时都指定" -#: initdb.c:3173 +#: initdb.c:3390 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "--wal-segsize的参数必须是一个数字" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "%s 的参数必须是 2 的幂次方(在 1 - 1024 之间)" -#: initdb.c:3178 -#, c-format -msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" -msgstr "--wal-segsize的参数必须是2的幂次方(在1和1024之间)" - -#: initdb.c:3195 +#: initdb.c:3403 #, c-format msgid "superuser name \"%s\" is disallowed; role names cannot begin with \"pg_\"" -msgstr "超级用户名\"%s\"是不允许的;角色名称不能以\"pg_\"开始" +msgstr "超级用户名 \"%s\" 不被允许;角色名称不能以 \"pg_\" 开始" -#: initdb.c:3199 +#: initdb.c:3405 #, c-format msgid "" "The files belonging to this database system will be owned by user \"%s\".\n" @@ -946,18 +1051,19 @@ msgid "" msgstr "" "属于此数据库系统的文件宿主为用户 \"%s\".\n" "此用户也必须为服务器进程的宿主.\n" +"\n" -#: initdb.c:3215 +#: initdb.c:3421 #, c-format msgid "Data page checksums are enabled.\n" msgstr "允许生成数据页校验和.\n" -#: initdb.c:3217 +#: initdb.c:3423 #, c-format msgid "Data page checksums are disabled.\n" msgstr "禁止为数据页生成校验和.\n" -#: initdb.c:3234 +#: initdb.c:3440 #, c-format msgid "" "\n" @@ -968,26 +1074,22 @@ msgstr "" "跳过同步到磁盘操作.\n" "如果操作系统宕机,数据目录可能会毁坏.\n" -#: initdb.c:3239 +#: initdb.c:3445 #, c-format msgid "enabling \"trust\" authentication for local connections" -msgstr "为本地连接启用\"trust\"身份验证" +msgstr "为本地连接启用 \"trust\" 身份验证" -#: initdb.c:3240 +#: initdb.c:3446 #, c-format -msgid "" -"You can change this by editing pg_hba.conf or using the option -A, or\n" -"--auth-local and --auth-host, the next time you run initdb.\n" -msgstr "" -"你可以通过编辑 pg_hba.conf 更改或你下次\n" -"执行 initdb 时使用 -A或者--auth-local和--auth-host选项.\n" +msgid "You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb." +msgstr "你可以通过编辑 pg_hba.conf 或下次运行 initdb 时使用 -A 或者 --auth-local 和 --auth-host 选项进行更改." #. translator: This is a placeholder in a shell command. -#: initdb.c:3270 +#: initdb.c:3476 msgid "logfile" -msgstr "日志文件" +msgstr "logfile" -#: initdb.c:3272 +#: initdb.c:3478 #, c-format msgid "" "\n" @@ -997,8 +1099,79 @@ msgid "" "\n" msgstr "" "\n" -"成功。您现在可以用下面的命令开启数据库服务器:\n" +"成功。你现在可以用下面的命令开启数据库服务器:\n" "\n" " %s\n" "\n" +#, 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." +#~ msgstr "" +#~ "%2$s需要程序\"%1$s\"\n" +#~ "但在与\"%3$s\"相同的目录中找不到该程序.\n" +#~ "检查您的安装." + +#, c-format +#~ msgid "" +#~ "The program \"%s\" was found by \"%s\"\n" +#~ "but was not the same version as %s.\n" +#~ "Check your installation." +#~ msgstr "" +#~ "程序\"%s\"是由\"%s\"找到的\n" +#~ "但与%s的版本不同.\n" +#~ "检查您的安装." + +#, c-format +#~ msgid "Try \"%s --help\" for more information.\n" +#~ msgstr "请用 \"%s --help\" 获取更多的信息.\n" + +#, c-format +#~ msgid "argument of --wal-segsize must be a number" +#~ msgstr "--wal-segsize 的参数必须是一个数字" + +#, c-format +#~ msgid "cannot create restricted tokens on this platform: error code %lu" +#~ msgstr "无法为该平台创建受限令牌: 错误码 %lu" + +#, c-format +#~ msgid "could not change directory to \"%s\": %m" +#~ msgstr "无法跳转到目录 \"%s\" 中: %m" + +#, c-format +#~ msgid "could not identify current directory: %m" +#~ msgstr "无法确认当前目录: %m" + +#, c-format +#~ msgid "could not load library \"%s\": error code %lu" +#~ msgstr "无法加载库 \"%s\": 错误码 %lu" + +#, c-format +#~ msgid "could not read binary \"%s\"" +#~ msgstr "无法读取二进制码 \"%s\"" + +#, c-format +#~ msgid "could not read symbolic link \"%s\": %m" +#~ msgstr "无法读取符号链接 \"%s\": %m" + +#, c-format +#~ msgid "could not remove file or directory \"%s\": %m" +#~ msgstr "无法删除文件或目录 \"%s\": %m" + +#, c-format +#~ msgid "could not stat file or directory \"%s\": %m" +#~ msgstr "无法获取文件或目录 \"%s\" 状态: %m" + +#, c-format +#~ msgid "fatal: " +#~ msgstr "致命的: " + +#, c-format +#~ msgid "invalid binary \"%s\"" +#~ msgstr "无效的二进制码 \"%s\"" + +#, c-format +#~ msgid "symlinks are not supported on this platform" +#~ msgstr "在这个平台上不支持符号链接" diff --git a/src/bin/pg_amcheck/po/de.po b/src/bin/pg_amcheck/po/de.po index 428a8b3262e0c..5dd5992747206 100644 --- a/src/bin/pg_amcheck/po/de.po +++ b/src/bin/pg_amcheck/po/de.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_amcheck (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 10:22+0000\n" -"PO-Revision-Date: 2024-06-16 19:05+0200\n" +"POT-Creation-Date: 2024-08-28 04:23+0000\n" +"PO-Revision-Date: 2024-08-28 07:51+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -249,8 +249,8 @@ msgstr "in Datenbank »%s«: verwende amcheck Version »%s« in Schema »%s«" #: pg_amcheck.c:624 #, c-format -msgid "--checkunique option is not supported by amcheck version \"%s\"" -msgstr "Option --checkunique wird von amcheck Version »%s« nicht unterstützt" +msgid "option %s is not supported by amcheck version %s" +msgstr "Option %s wird von amcheck Version %s nicht unterstützt" #: pg_amcheck.c:650 #, c-format diff --git a/src/bin/pg_amcheck/po/es.po b/src/bin/pg_amcheck/po/es.po index ed8cb6e5503c0..7dc5272b7b76d 100644 --- a/src/bin/pg_amcheck/po/es.po +++ b/src/bin/pg_amcheck/po/es.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_amcheck (PostgreSQL) 16\n" +"Project-Id-Version: pg_amcheck (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-09-24 23:20+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2024-11-16 05:22+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -39,11 +39,78 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "no se pudo buscar el ID de usuario efectivo %ld: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "el usuario no existe" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "fallo en la búsqueda de nombre de usuario: código de error %lu" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Petición de cancelación enviada\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "No se pudo enviar la petición de cancelación: " @@ -52,7 +119,7 @@ msgstr "No se pudo enviar la petición de cancelación: " msgid "could not connect to database %s: out of memory" msgstr "no se pudo conectar a la base de datos %s: memoria agotada" -#: ../../fe_utils/connect_utils.c:117 +#: ../../fe_utils/connect_utils.c:116 #, c-format msgid "%s" msgstr "%s" @@ -67,174 +134,214 @@ msgstr "el valor «%s» no es válido para la opción %s" msgid "%s must be in range %d..%d" msgstr "%s debe estar en el rango %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método de sync no reconocido: %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "demasiados procesos para esta plataforma: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "descriptor de archivo para socket fuera de rango para select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Intente con menos trabajos." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "falló el procesamiento de la base de datos «%s»: %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1647 pg_amcheck.c:2092 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "la consulta falló: %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1102 pg_amcheck.c:1648 pg_amcheck.c:2093 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "La consulta era: %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "argumento no válido para la opción %s" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "bloque de inicio no válido" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "bloque de inicio fuera de rango" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "bloque final no válido" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "bloque final fuera de rango" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "bloque final precede al bloque de inicio" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "no se puede especificar un nombre de base de datos al usar --all" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "no se puede especificar al mismo tiempo un nombre de base de datos junto con patrones de bases de datos" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "no hay bases de datos para revisar" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "base de datos «%s»: %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "omitiendo la base de datos «%s»: amcheck no está instalado" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "en base de datos «%s»: usando amcheck versión «%s» en esquema «%s»" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "la opción %s no está soportada por la versión %s de amcheck" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "no hay tablas heap para revisar que coincidan con «%s»" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "no hay índices btree para revisar que coincidan con «%s»" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "no hay relaciones para revisar en esquemas que coincidan con «%s»" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "no hay relaciones para revisar que coincidan con «%s»" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "no hay relaciones para revisar" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "revisando tabla heap «%s.%s.%s»" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "revisando índice btree «%s.%s.%s»" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "error al enviar orden a la base de datos «%s»: %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "La orden era: % s" -#: pg_amcheck.c:1015 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "tabla heap «%s.%s.%s», bloque %s, posición %s, atributo %s:\n" -#: pg_amcheck.c:1022 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "tabla heap «%s.%s.%s», bloque %s, posición %s:\n" -#: pg_amcheck.c:1028 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "tabla heap «%s.%s.%s», bloque %s:\n" -#: pg_amcheck.c:1033 pg_amcheck.c:1044 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "tabla heap «%s.%s.%s»:\n" -#: pg_amcheck.c:1048 pg_amcheck.c:1117 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "la consulta era: %s\n" -#: pg_amcheck.c:1099 +#: pg_amcheck.c:1144 #, c-format msgid "btree index \"%s.%s.%s\": btree checking function returned unexpected number of rows: %d" msgstr "índice btree «%s.%s.%s»: la función de comprobación de btree devolvió un número inesperado de registros: %d" -#: pg_amcheck.c:1103 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "¿Son compatibles la versión de %s con la de amcheck?" -#: pg_amcheck.c:1113 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "índice btree «%s.%s.%s»:\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1183 #, c-format msgid "" "%s checks objects in a PostgreSQL database for corruption.\n" @@ -243,17 +350,17 @@ msgstr "" "%s busca corrupción en objetos de una base de datos PostgreSQL.\n" "\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPCIÓN]... [BASE-DE-DATOS]\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1186 #, c-format msgid "" "\n" @@ -262,77 +369,77 @@ msgstr "" "\n" "Opciones de objetivo:\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" msgstr " -a, --all revisar todas las bases de datos\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" msgstr " -d, --database=PATRÓN revisar la(s) base(s) de datos que coincida(n)\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr " -D, --exclude-database=PATRÓN NO revisar la(s) base(s) de datos que coincida(n)\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" msgstr " -i, --index=PATRÓN revisar el(los) índice(s) que coincida(n)\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" msgstr " -I, --exclude-index=PATRÓN NO revisar el(los) índice(s) que coincida(n)\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" msgstr " -r, --relation=PATRÓN revisar la(s) relación(es) que coincida(n)\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" msgstr " -R, --exclude-relation=PATRÓN NO revisar la(s) relación(es) que coincida(n)\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" msgstr " -s, --schema=PATRÓN revisar el(los) esquema(s) que coincida(n)\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" msgstr " -S, --exclude-schema=PATRÓN NO revisar el(los) esquema(s) que coincida(n)\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" msgstr " -t, --table=PATRÓN revisar la(s) tabla(s) que coincida(n)\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" msgstr " -T, --exclude-table=PATRÓN NO revisar la(s) tabla(s) que coincida(n)\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1198 #, c-format msgid " --no-dependent-indexes do NOT expand list of relations to include indexes\n" msgstr " --no-dependent-indexes NO expandir la lista de relaciones para incluir índices\n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1199 #, c-format msgid " --no-dependent-toast do NOT expand list of relations to include TOAST tables\n" msgstr " --no-dependent-toast NO expandir lista de relaciones para incluir tablas TOAST\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1200 #, c-format msgid " --no-strict-names do NOT require patterns to match objects\n" msgstr " --no-strict-names NO requerir que los patrones coincidan con los objetos\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1201 #, c-format msgid "" "\n" @@ -341,32 +448,32 @@ msgstr "" "\n" "Opciones para revisión de tabla:\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1202 #, c-format msgid " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" msgstr " --exclude-toast-pointers NO seguir punteros TOAST de la relación\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1203 #, c-format msgid " --on-error-stop stop checking at end of first corrupt page\n" msgstr " --on-error-stop detener la revisión al final de la primera página corrupta\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1204 #, c-format msgid " --skip=OPTION do NOT check \"all-frozen\" or \"all-visible\" blocks\n" msgstr " --skip=OPTION NO revisar bloques «all-frozen» u «all-visible»\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1205 #, c-format msgid " --startblock=BLOCK begin checking table(s) at the given block number\n" msgstr " --startblock=BLOQUE empezar la revisión de la(s) tabla(s) en el número de bloque especificado\n" -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1206 #, c-format msgid " --endblock=BLOCK check table(s) only up to the given block number\n" msgstr " --endblock=BLOQUE solo revisar la(s) tabla(s) hasta el número de bloque especificado\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1207 #, c-format msgid "" "\n" @@ -375,22 +482,27 @@ msgstr "" "\n" "Opciones para revisión de índices B-tree:\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1208 +#, c-format +msgid " --checkunique check unique constraint if index is unique\n" +msgstr " --checkunique verificar si restricción de unicidad se cumple en índice\n" + +#: pg_amcheck.c:1209 #, c-format msgid " --heapallindexed check that all heap tuples are found within indexes\n" msgstr " --heapallindexed revisar que todas las tuplas heap se encuentren en los índices\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1210 #, c-format msgid " --parent-check check index parent/child relationships\n" msgstr " --parent-check revisar relaciones padre/hijo de índice\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1211 #, c-format msgid " --rootdescend search from root page to refind tuples\n" msgstr " --rootdescend buscar desde la página raíz para volver a encontrar tuplas\n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1212 #, c-format msgid "" "\n" @@ -399,37 +511,37 @@ msgstr "" "\n" "Opciones de conexión:\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1213 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ANFITRIÓN nombre del servidor o directorio del socket\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PUERTO puerto del servidor de base de datos\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USUARIO nombre de usuario para la conexión\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir contraseña\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password forzar la petición de contraseña\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE base de datos de mantención alternativa\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1219 #, c-format msgid "" "\n" @@ -438,42 +550,42 @@ msgstr "" "\n" "Otras opciones:\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1220 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo mostrar las órdenes enviadas al servidor\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1221 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to the server\n" msgstr " -j, --jobs=NUM usar esta cantidad de conexiones concurrentes hacia el servidor\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress mostrar información de progreso\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose desplegar varios mensajes informativos\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1224 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: pg_amcheck.c:1179 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" msgstr " --install-missing instalar extensiones faltantes\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_amcheck.c:1182 +#: pg_amcheck.c:1228 #, c-format msgid "" "\n" @@ -482,52 +594,52 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_amcheck.c:1183 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_amcheck.c:1236 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "%*s/%s relaciones (%d%%), %*s/%s páginas (%d%%) %*s" -#: pg_amcheck.c:1247 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "%*s/%s relaciones (%d%%), %*s/%s páginas (%d%%), (%s%-*.*s)" -#: pg_amcheck.c:1262 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "%*s/%s relaciones (%d%%), %*s/%s páginas (%d%%)" -#: pg_amcheck.c:1321 pg_amcheck.c:1354 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "el nombre no es válido (demasiados puntos): %s" -#: pg_amcheck.c:1399 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "el nombre de relación no es válido (demasiados puntos): %s" -#: pg_amcheck.c:1552 pg_amcheck.c:1691 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "incluyendo base de datos «%s»" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "error interno: se recibió pattern_id de base de datos inesperado (%d)" -#: pg_amcheck.c:1675 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "no hay bases de datos a las que se pueda conectar que coincidan con «%s»" -#: pg_amcheck.c:2133 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "error interno: se recibió pattern_id de relación inesperado (%d)" diff --git a/src/bin/pg_amcheck/po/fr.po b/src/bin/pg_amcheck/po/fr.po index 9fc553f23b70c..14157b066b0b5 100644 --- a/src/bin/pg_amcheck/po/fr.po +++ b/src/bin/pg_amcheck/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-14 10:19+0000\n" -"PO-Revision-Date: 2022-05-14 17:15+0200\n" +"POT-Creation-Date: 2024-08-29 17:53+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,33 +19,100 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "erreur : " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "attention : " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "détail : " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "astuce : " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation %s" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "n'a pas pu trouver l'identifiant réel %ld de l'utilisateur : %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "l'utilisateur n'existe pas" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Requête d'annulation envoyée\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "N'a pas pu envoyer la requête d'annulation : " @@ -54,7 +121,7 @@ msgstr "N'a pas pu envoyer la requête d'annulation : " 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" -#: ../../fe_utils/connect_utils.c:117 +#: ../../fe_utils/connect_utils.c:116 #, c-format msgid "%s" msgstr "%s" @@ -69,174 +136,214 @@ msgstr "valeur « %s » invalide pour l'option %s" msgid "%s must be in range %d..%d" msgstr "%s doit être compris entre %d et %d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "trop de jobs pour cette plateforme : %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "descripteur de fichier socket hors d'échelle pour select() : %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Essayez moins de jobs." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "le traitement de la base de données « %s » a échoué : %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1645 pg_amcheck.c:2090 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "échec de la requête : %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1100 pg_amcheck.c:1646 pg_amcheck.c:2091 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "La requête était : %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "argument invalide pour l'option %s" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "bloc de début invalide" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "bloc de début hors des limites" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "bloc de fin invalide" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "bloc de fin hors des limites" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "le bloc de fin précède le bloc de début" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "ne peut pas spécifier un nom de base de données avec --all" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "ne peut pas spécifier à la fois le nom d'une base de données et des motifs de noms de base" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "aucune base de données à vérifier" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "base de données « %s » : %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "ignore la base « %s » : amcheck n'est pas installé" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "dans la base de données « %s » : utilisation de la version « %s » d'amcheck dans le schéma « %s »" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "l'option %s n'est pas acceptée par la version « %s » de amcheck" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "aucune table heap à vérifier correspondant à « %s »" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "aucun index btree à vérifier correspondant à « %s »" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "aucune relation à vérifier dans les schémas correspondant à « %s »" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "aucune relation à vérifier correspondant à « %s »" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "aucune relation à vérifier" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "vérification de la table heap « %s %s.%s »" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "vérification de l'index btree « %s %s.%s »" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "erreur de l'envoi d'une commande à la base de données « %s » : %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "La commande était : %s" -#: pg_amcheck.c:1013 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "table heap « %s.%s.%s », bloc %s, décalage %s, attribut %s :\n" -#: pg_amcheck.c:1020 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "table heap « %s.%s.%s », bloc %s, décalage %s :\n" -#: pg_amcheck.c:1026 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "table heap « %s %s.%s », bloc %s :\n" -#: pg_amcheck.c:1031 pg_amcheck.c:1042 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "table heap « %s %s.%s » :\n" -#: pg_amcheck.c:1046 pg_amcheck.c:1115 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "la requête était : %s\n" -#: pg_amcheck.c:1097 +#: pg_amcheck.c:1144 #, c-format msgid "btree index \"%s.%s.%s\": btree checking function returned unexpected number of rows: %d" msgstr "index btree « %s.%s.%s » : la fonction de vérification des index btree a renvoyé un nombre de lignes inattendu : %d" -#: pg_amcheck.c:1101 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "est-ce que les versions de %s et d'amcheck sont compatibles ?" -#: pg_amcheck.c:1111 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "vérification de l'index btree« %s %s.%s » :\n" -#: pg_amcheck.c:1136 +#: pg_amcheck.c:1183 #, c-format msgid "" "%s checks objects in a PostgreSQL database for corruption.\n" @@ -246,17 +353,17 @@ msgstr "" "PostgreSQL sont corrompus.\n" "\n" -#: pg_amcheck.c:1137 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [BASE]\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1186 #, c-format msgid "" "\n" @@ -265,83 +372,83 @@ msgstr "" "\n" "Options de la cible :\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" msgstr " -a, --all vérifie toutes les bases\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" msgstr " -d, --database=MOTIF vérifie les bases correspondantes\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr " -D, --exclude-database=MOTIF ne vérifie PAS les bases correspondantes\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" msgstr " -i, --index=MOTIF vérifie les index correspondants\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" msgstr " -I, --exclude-index=MOTIF ne vérifie PAS les index correspondants\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" msgstr " -r, --relation=MOTIF vérifie les relations correspondantes\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" msgstr " -R, --exclude-relation=MOTIF ne vérifie PAS les relations correspondantes\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" msgstr " -s, --schema=MOTIF vérifie les schémas correspondants\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" msgstr " -S, --exclude-schema=MOTIF ne vérifie PAS les schémas correspondants\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" msgstr " -t, --table=MOTIF vérifie les tables correspondantes\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" msgstr " -T, --exclude-table=MOTIF ne vérifie PAS les tables correspondantes\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1198 #, c-format msgid " --no-dependent-indexes do NOT expand list of relations to include indexes\n" msgstr "" " --no-dependent-indexes n'étend PAS la liste des relations pour inclure\n" " les index\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1199 #, c-format msgid " --no-dependent-toast do NOT expand list of relations to include TOAST tables\n" msgstr "" " --no-dependent-toast n'étend PAS la liste des relations pour inclure\n" " les TOAST\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1200 #, c-format msgid " --no-strict-names do NOT require patterns to match objects\n" msgstr "" " --no-strict-names ne requiert PAS que les motifs correspondent à\n" " des objets\n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1201 #, c-format msgid "" "\n" @@ -350,40 +457,40 @@ msgstr "" "\n" "Options de vérification des tables :\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1202 #, c-format msgid " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" msgstr " --exclude-toast-pointers ne suit PAS les pointeurs de TOAST\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1203 #, c-format msgid " --on-error-stop stop checking at end of first corrupt page\n" msgstr "" " --on-error-stop arrête la vérification à la fin du premier bloc\n" " corrompu\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1204 #, c-format msgid " --skip=OPTION do NOT check \"all-frozen\" or \"all-visible\" blocks\n" msgstr "" " --skip=OPTION ne vérifie PAS les blocs « all-frozen » et\n" " « all-visible »\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1205 #, c-format msgid " --startblock=BLOCK begin checking table(s) at the given block number\n" msgstr "" " --startblock=BLOC commence la vérification des tables au numéro\n" " de bloc indiqué\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1206 #, c-format msgid " --endblock=BLOCK check table(s) only up to the given block number\n" msgstr "" " --endblock=BLOC vérifie les tables jusqu'au numéro de bloc\n" " indiqué\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1207 #, c-format msgid "" "\n" @@ -392,28 +499,33 @@ msgstr "" "\n" "Options de vérification des index Btree :\n" -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1208 +#, c-format +msgid " --checkunique check unique constraint if index is unique\n" +msgstr " --checkunique vérifie l'unicité de l'index pour la contrainte d'unicité\n" + +#: pg_amcheck.c:1209 #, c-format msgid " --heapallindexed check that all heap tuples are found within indexes\n" msgstr "" " --heapallindexed vérifie que tous les enregistrements de la\n" " table sont référencés dans les index\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1210 #, c-format msgid " --parent-check check index parent/child relationships\n" msgstr "" " --parent-check vérifie les relations parent/enfants dans les\n" " index\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1211 #, c-format msgid " --rootdescend search from root page to refind tuples\n" msgstr "" " --rootdescend recherche à partir de la racine pour trouver\n" " les lignes\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1212 #, c-format msgid "" "\n" @@ -422,37 +534,37 @@ msgstr "" "\n" "Options de connexion :\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1213 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HÔTE IP/alias du serveur ou répertoire du socket\n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT port du serveur de bases de données\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ne demande jamais un mot de passe\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password force la saisie d'un mot de passe\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE change la base de maintenance\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1219 #, c-format msgid "" "\n" @@ -461,44 +573,44 @@ msgstr "" "\n" "Autres options :\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1220 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo affiche les commandes envoyées au serveur\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1221 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to the server\n" msgstr "" " -j, --jobs=NOMBRE utilise ce nombre de connexions simultanées au\n" " serveur\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress affiche la progression\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose mode verbeux\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1224 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" msgstr " --install-missing installe les extensions manquantes\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1228 #, c-format msgid "" "\n" @@ -507,99 +619,52 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_amcheck.c:1181 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_amcheck.c:1234 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "relations %*s/%s (%d%%), blocs %*s/%s (%d%%) %*s" -#: pg_amcheck.c:1245 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "relations %*s/%s (%d%%), blocs %*s/%s (%d%%) (%s%-*.*s)" -#: pg_amcheck.c:1260 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "relations %*s/%s (%d%%), blocs %*s/%s (%d%%)" -#: pg_amcheck.c:1319 pg_amcheck.c:1352 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s" -#: pg_amcheck.c:1397 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "nom de relation incorrecte (trop de points entre les noms) : %s" -#: pg_amcheck.c:1550 pg_amcheck.c:1689 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "en incluant la base de données : « %s »" -#: pg_amcheck.c:1671 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "erreur interne : a reçu un pattern_id %d inattendu de la base" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "aucune base de données connectable à vérifier correspondant à « %s »" -#: pg_amcheck.c:2131 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "erreur interne : a reçu un pattern_id %d inattendu de la relation" - -#~ msgid "" -#~ "\n" -#~ "Other Options:\n" -#~ msgstr "" -#~ "\n" -#~ "Autres options:\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 " -e, --echo show the commands being sent to the server\n" -#~ msgstr " -e, --echo affiche les commandes envoyées au serveur\n" - -#~ msgid " -q, --quiet don't write any messages\n" -#~ msgstr " -q, --quiet n'écrit aucun message\n" - -#~ msgid " -q, --quiet don't write any messages\n" -#~ msgstr " -q, --quiet n'écrit aucun message\n" - -#~ msgid " -v, --verbose write a lot of output\n" -#~ msgstr " -v, --verbose mode verbeux\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "command was: %s" -#~ msgstr "la commande était : %s" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ msgid "invalid skip option" -#~ msgstr "option skip invalide" - -#, c-format -#~ msgid "number of parallel jobs must be at least 1" -#~ msgstr "le nombre maximum de jobs en parallèle doit être au moins de 1" - -#~ msgid "number of parallel jobs must be at least 1\n" -#~ msgstr "le nombre de jobs parallèles doit être au moins de 1\n" diff --git a/src/bin/pg_amcheck/po/ja.po b/src/bin/pg_amcheck/po/ja.po index 170a2dc2a4ebd..a4f67dfd21182 100644 --- a/src/bin/pg_amcheck/po/ja.po +++ b/src/bin/pg_amcheck/po/ja.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_amcheck (PostgreSQL 17)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:23+0900\n" -"PO-Revision-Date: 2024-06-14 11:27+0900\n" +"POT-Creation-Date: 2024-08-28 10:42+0900\n" +"PO-Revision-Date: 2024-08-28 11:43+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: \n" "Language: ja\n" @@ -18,22 +18,22 @@ msgstr "" "X-Generator: Poedit 1.8.13\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:278 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:285 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:296 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:303 #, c-format msgid "hint: " msgstr "ヒント: " @@ -252,8 +252,8 @@ msgstr "データベース\"%1$s\"内: スキーマ\"%3$s\"内でamcheck バー #: pg_amcheck.c:624 #, c-format -msgid "--checkunique option is not supported by amcheck version \"%s\"" -msgstr "--checkuniqueオプションはamcheckバージョン\"%s\"ではサポートされていません" +msgid "option %s is not supported by amcheck version %s" +msgstr "%sオプションはamcheckバージョン\"%s\"ではサポートされていません" #: pg_amcheck.c:650 #, c-format diff --git a/src/bin/pg_amcheck/po/ka.po b/src/bin/pg_amcheck/po/ka.po index fb08fc2ae6549..8cf7f280e248b 100644 --- a/src/bin/pg_amcheck/po/ka.po +++ b/src/bin/pg_amcheck/po/ka.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_amcheck (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:22+0000\n" -"PO-Revision-Date: 2024-06-14 06:13+0200\n" +"POT-Creation-Date: 2024-08-27 16:52+0000\n" +"PO-Revision-Date: 2024-08-28 05:43+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -252,8 +252,8 @@ msgstr "ბაზაში \"%s\": გამოიყენება amcheck-ი #: pg_amcheck.c:624 #, c-format -msgid "--checkunique option is not supported by amcheck version \"%s\"" -msgstr "--checkunique პარამეტრის მხარდაჭერა amcheck-ის ვერსიას \"%s\" არ გააჩნია" +msgid "option %s is not supported by amcheck version %s" +msgstr "პარამეტრის '%s' მხარდაჭერა amcheck-ის ვერსიას \"%s\" არ გააჩნია" #: pg_amcheck.c:650 #, c-format diff --git a/src/bin/pg_amcheck/po/ko.po b/src/bin/pg_amcheck/po/ko.po index cef3583a4432e..d5e78e4f22c7f 100644 --- a/src/bin/pg_amcheck/po/ko.po +++ b/src/bin/pg_amcheck/po/ko.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_amcheck (PostgreSQL) 16\n" +"Project-Id-Version: pg_amcheck (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:51+0000\n" -"PO-Revision-Date: 2023-05-30 12:37+0900\n" +"POT-Creation-Date: 2025-01-17 04:52+0000\n" +"PO-Revision-Date: 2025-01-17 18:01+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -36,11 +36,78 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위한 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일 상태 정보를 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법은 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "사용자 ID(%ld)를 찾을 수 없음: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "사용자 없음" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "사용자 이름 찾기 실패: 오류 코드 %lu" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "취소 요청 보냄\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "취소 요청 보내기 실패: " @@ -64,195 +131,235 @@ msgstr "\"%s\" 값은 %s 옵션의 값으로 적당하지 않음" msgid "%s must be in range %d..%d" msgstr "%s 값은 %d부터 %d까지만 허용합니다" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "이 플랫폼에서는 너무 많은 job 입니다: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "select() 작업 범위를 벗어나는 소켓 파일 기술자: %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "job 수를 줄여주세요." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "\"%s\" 데이터베이스 처리 중 오류 발생: %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1647 pg_amcheck.c:2092 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "쿼리 실패: %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1102 pg_amcheck.c:1648 pg_amcheck.c:2093 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "사용한 쿼리: %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "%s 옵션의 잘못된 인자" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "시작 블록이 유효하지 않음" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "시작 블록이 범위를 벗어남" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "마지막 블록이 유효하지 않음" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "마지막 블록이 범위를 벗어남" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보십시오." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "마지막 블록이 시작 블록보다 앞에 존재함" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인자를 지정했습니다. (처음 \"%s\")" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "데이터베이스 이름을 —all 와 같이 지정할 수 없습니다" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "데이터베이스 이름과 형식을 지정할 수 없습니다" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "확인할 데이터베이스가 없습니다" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "데이터베이스 “%s”: %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "데이터베이스 생략 “%s”: amcheck 가 설치되지 않음" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "데이터베이스 “%s”: 사용하는 amcheck 버전 “%s” 스키마 “%s”" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "%s 옵션은 %s 버전 amcheck에서 지원하지 않음" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "“%s” 와 일치하는 heap 테이블을 찾을 수 없습니다" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "“%s” 와 일치하는 btree 인덱스를 찾을 수 없습니다" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "스키마에서 “%s” 와 일치하는 릴레이션을 찾을 수 없습니다" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "“%s” 와 일치하는 릴레이션을 찾을 수 없습니다" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "확인할 릴레이션이 없습니다" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "heap 테이블 확인 “%s.%s.%s”" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "btree 인덱스 확인 “%s.%s.%s”" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "데이터베이스에 명령을 보내는 중 오류 발생 “%s”: %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "사용한 명령: %s" -#: pg_amcheck.c:1015 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "heap 테이블 “%s.%s.%s”, 블록 %s, 오프셋 %s, 에트리뷰트 %s:\n" -#: pg_amcheck.c:1022 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "heap 테이블 “%s.%s.%s”, 블록 %s, 오프셋 %s:\n" -#: pg_amcheck.c:1028 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "heap 테이블 “%s.%s.%s”, 블록 %s:\n" -#: pg_amcheck.c:1033 pg_amcheck.c:1044 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "heap 테이블 “%s.%s.%s”:\n" -#: pg_amcheck.c:1048 pg_amcheck.c:1117 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "사용한 쿼리: %s\n" -#: pg_amcheck.c:1099 +#: pg_amcheck.c:1144 #, c-format msgid "" "btree index \"%s.%s.%s\": btree checking function returned unexpected number " "of rows: %d" msgstr "btree 인덱스 “%s.%s.%s”: btree 확인 중에 예기치 않은 행수를 반환함: %d" -#: pg_amcheck.c:1103 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "%s 버전과 amcheck의 버전이 호환 가능합니까?" -#: pg_amcheck.c:1113 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "btree 인덱스 “%s.%s.%s”:\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1183 #, c-format msgid "" "%s checks objects in a PostgreSQL database for corruption.\n" "\n" msgstr "" -"%s 가 PostgreSQL 데이터베이스 개체 손상 여부를 검사합니다.\n" +"%s는 PostgreSQL 데이터베이스 개체 손상 여부를 검사합니다.\n" "\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [옵션]... [DB이름]\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1186 #, c-format msgid "" "\n" @@ -261,85 +368,85 @@ msgstr "" "\n" "사용가능한 옵션들:\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" -msgstr " -a, —all 모든 데이터베이스를 검사\n" +msgstr " -a, -—all 모든 데이터베이스를 검사\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" -msgstr " -d, —database=PATTERN 일치하는 모든 데이터베이스를 검사\n" +msgstr " -d, -—database=PATTERN 일치하는 모든 데이터베이스를 검사\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr "" -" -D, —exclude-database=PATTERN 일치하는 데이터베이스를 제외 하고 검사\n" +" -D, -—exclude-database=PATTERN 일치하는 데이터베이스를 제외 하고 검사\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" -msgstr " -i, —index=PATTERN 일치하는 인덱스를 검사\n" +msgstr " -i, -—index=PATTERN 일치하는 인덱스를 검사\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" -msgstr " -I, —exclude-index=PATTERN 일치하는 인덱스를 제외하고 검사\n" +msgstr " -I, -—exclude-index=PATTERN 일치하는 인덱스를 제외하고 검사\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" -msgstr " -r, —relation=PATTERN 일치하는 릴레이션을 검사\n" +msgstr " -r, -—relation=PATTERN 일치하는 릴레이션을 검사\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" -msgstr " -R, —exclude-relation=PATTERN 일치하는 릴레이션을 제외하고 검사\n" +msgstr " -R, -—exclude-relation=PATTERN 일치하는 릴레이션을 제외하고 검사\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" -msgstr " -s, —schema=PATTERN 일치하는 스키마를 검사\n" +msgstr " -s, -—schema=PATTERN 일치하는 스키마를 검사\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" -msgstr " -S, —exclude-schema=PATTERN 일치하는 스키마를 제외하고 검사\n" +msgstr " -S, -—exclude-schema=PATTERN 일치하는 스키마를 제외하고 검사\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" -msgstr " -t, —table=PATTERN 일치하는 테이블을 검사\n" +msgstr " -t, -—table=PATTERN 일치하는 테이블을 검사\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" -msgstr " -T, —exclude-table=PATTERN 일치하는 테이블을 제외하고 검사\n" +msgstr " -T, -—exclude-table=PATTERN 일치하는 테이블을 제외하고 검사\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1198 #, c-format msgid "" " --no-dependent-indexes do NOT expand list of relations to include " "indexes\n" -msgstr " —no-dependent-indexes 릴레이션에 인덱스를 포함하지 않음 \n" +msgstr " -—no-dependent-indexes 릴레이션에 인덱스를 포함하지 않음 \n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1199 #, c-format msgid "" " --no-dependent-toast do NOT expand list of relations to include " "TOAST tables\n" msgstr "" -" —no-dependent-toast 릴레이션에 TOAST 테이블을 포함하지 않음\n" +" -—no-dependent-toast 릴레이션에 TOAST 테이블을 포함하지 않음\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1200 #, c-format msgid "" " --no-strict-names do NOT require patterns to match objects\n" msgstr "" -" —no-strict-names 개체가 패턴과 일치하지 않아도 허용함\n" +" -—no-strict-names 개체가 패턴과 일치하지 않아도 허용함\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1201 #, c-format msgid "" "\n" @@ -348,45 +455,45 @@ msgstr "" "\n" "테이블 검사 옵션들:\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1202 #, c-format msgid "" " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" -msgstr " —exclude-toast-pointers TOAST 포인터를 확인하지 않음\n" +msgstr " -—exclude-toast-pointers TOAST 포인터를 확인하지 않음\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1203 #, c-format msgid "" " --on-error-stop stop checking at end of first corrupt " "page\n" -msgstr " —on-error-stop 손상된 페이지 끝에서 검사를 멈춤\n" +msgstr " -—on-error-stop 손상된 페이지 끝에서 검사를 멈춤\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1204 #, c-format msgid "" " --skip=OPTION do NOT check \"all-frozen\" or \"all-" "visible\" blocks\n" msgstr "" -" —skip=OPTION “all-frozen” 또는 “all-visible” 블록을 검사" -"하지 않음\n" +" -—skip=OPTION \"all-frozen\" 또는 \"all-visible\" 블록을 " +"검사하지 않음\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1205 #, c-format msgid "" " --startblock=BLOCK begin checking table(s) at the given block " "number\n" msgstr "" -" —startblock=BLOCK 지정된 블록 번호부터 테이블 검사를 시작\n" +" -—startblock=BLOCK 지정된 블록 번호부터 테이블 검사를 시작\n" -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1206 #, c-format msgid "" " --endblock=BLOCK check table(s) only up to the given block " "number\n" msgstr "" -" —endblock=BLOCK 지정된 블록 번호까지 테이블 검사 마침 \n" +" -—endblock=BLOCK 지정된 블록 번호까지 테이블 검사 마침\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1207 #, c-format msgid "" "\n" @@ -395,27 +502,35 @@ msgstr "" "\n" "B-tree 인덱스 검사 옵션들:\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1208 +#, c-format +msgid "" +" --checkunique check unique constraint if index is " +"unique\n" +msgstr "" +" --checkunique 유니크 인덱스라면 유니크 제약조건 검사\n" + +#: pg_amcheck.c:1209 #, c-format msgid "" " --heapallindexed check that all heap tuples are found " "within indexes\n" msgstr "" -" —heapallindexed 모든 heap 튜플이 인덱스 내에 있는지 검사\n" +" -—heapallindexed 모든 heap 튜플이 인덱스 내에 있는지 검사\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1210 #, c-format msgid "" " --parent-check check index parent/child relationships\n" -msgstr " —parent-check 인덱스의 부모/자식 관계를 검사\n" +msgstr " -—parent-check 인덱스의 부모/자식 관계를 검사\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1211 #, c-format msgid "" " --rootdescend search from root page to refind tuples\n" -msgstr " —rootdescend 루트 페이지 부터 튜플을 다시 찾음 \n" +msgstr " —-rootdescend 루트 페이지 부터 튜플을 다시 찾음 \n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1212 #, c-format msgid "" "\n" @@ -424,40 +539,40 @@ msgstr "" "\n" "연결 옵션들:\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1213 #, c-format msgid "" " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, —host=HOSTNAME 데이터베이스 서버 호스트 또는 소켓의 디렉터" +" -h, -—host=HOSTNAME 데이터베이스 서버 호스트 또는 소켓의 디렉터" "리\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" -msgstr " -p, —port=PORT 데이터베이스 서버 포트\n" +msgstr " -p, -—port=PORT 데이터베이스 서버 포트\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" -msgstr " -U, —username=USERNAME 연결할 유저 이름\n" +msgstr " -U, -—username=USERNAME 연결할 유저 이름\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" -msgstr " -w, —no-password 암호 입력 프롬프트가 나타나지 않음\n" +msgstr " -w, -—no-password 암호 입력 프롬프트가 나타나지 않음\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" -msgstr " -W, —password 암호 입력 프롬프트가 나타남\n" +msgstr " -W, -—password 암호 입력 프롬프트가 나타남\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" -msgstr " —maintenance-db=DBNAME 대체 연결 데이터베이스\n" +msgstr " -—maintenance-db=DBNAME 대체 연결 데이터베이스\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1219 #, c-format msgid "" "\n" @@ -466,47 +581,47 @@ msgstr "" "\n" "기타 옵션:\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1220 #, c-format msgid "" " -e, --echo show the commands being sent to the " "server\n" msgstr " -e, --echo 서버로 보내는 명령들을 보여줌\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1221 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " "the server\n" -msgstr " -j, —jobs=NUM 서버에 동시 연결할 수를 지정\n" +msgstr " -j, -—jobs=NUM 서버에 동시 연결할 수를 지정\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" -msgstr " -P, —progress 진행 사항 정보를 보여줌\n" +msgstr " -P, -—progress 진행 사항 정보를 보여줌\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 작업내역의 자세한 출력\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1224 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_amcheck.c:1179 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" -msgstr " —install-missing 누락된 익스텐션을 설치\n" +msgstr " -—install-missing 누락된 익스텐션을 설치\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 도움말을 표시하고 종료\n" -#: pg_amcheck.c:1182 +#: pg_amcheck.c:1228 #, c-format msgid "" "\n" @@ -515,52 +630,52 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_amcheck.c:1183 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_amcheck.c:1236 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "%*s/%s 릴레이션 (%d%%), %*s/%s 페이지 (%d%%) %*s" -#: pg_amcheck.c:1247 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "%*s/%s 릴레이션 (%d%%), %*s/%s 페이지 (%d%%) (%s%-*.*s)" -#: pg_amcheck.c:1262 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "%*s/%s 릴레이션 (%d%%), %*s/%s 페이지 (%d%%)" -#: pg_amcheck.c:1321 pg_amcheck.c:1354 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "바르지 못한 규정 이름(점으로 구분된 이름이 너무 많음): %s" -#: pg_amcheck.c:1399 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "바르지 못한 릴레이션 이름(점으로 구분된 이름이 너무 많음): %s" -#: pg_amcheck.c:1552 pg_amcheck.c:1691 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "“%s” 데이터베이스를 포함합니다" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "내부 오류: 올바르지 않은 데이터베이스 패턴 아이디 %d" -#: pg_amcheck.c:1675 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "“%s” 와 일치하는 연결 가능한 데이터베이스를 찾을 수 없음" -#: pg_amcheck.c:2133 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "내부 오류: 올바르지 않은 릴레이션 패턴 아이디 %d" diff --git a/src/bin/pg_amcheck/po/ru.po b/src/bin/pg_amcheck/po/ru.po index c6be3badc0d35..0889dfb2f8ebc 100644 --- a/src/bin/pg_amcheck/po/ru.po +++ b/src/bin/pg_amcheck/po/ru.po @@ -1,10 +1,10 @@ -# Alexander Lakhin , 2021, 2022. +# Alexander Lakhin , 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pg_amcheck (PostgreSQL) 14\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2022-09-05 13:33+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-05 08:23+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -32,11 +32,78 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "пользователь не существует" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "распознать имя пользователя не удалось (код ошибки: %lu)" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Сигнал отмены отправлен\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Отправить сигнал отмены не удалось: " @@ -60,160 +127,203 @@ msgstr "неверное значение \"%s\" для параметра %s" msgid "%s must be in range %d..%d" msgstr "значение %s должно быть в диапазоне %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "слишком много заданий для этой платформы: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "дескриптор файла сокета вне диапазона, допустимого для select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Попробуйте уменьшить количество заданий." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "ошибка при обработке базы \"%s\": %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1647 pg_amcheck.c:2092 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "ошибка при выполнении запроса: %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1102 pg_amcheck.c:1648 pg_amcheck.c:2093 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "Выполнялся запрос: %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "недопустимый аргумент параметра %s" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "неверный начальный блок" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "начальный блок вне допустимых пределов" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "неверный конечный блок" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "конечный блок вне допустимых пределов" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "конечный блок предшествует начальному" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "имя базы данных нельзя задавать с --all" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "нельзя задавать одновременно имя базы данных и шаблоны имён" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "не указаны базы для проверки" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "база данных \"%s\": %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "база \"%s\" пропускается: расширение amcheck не установлено" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "база \"%s\": используется amcheck версии \"%s\" в схеме \"%s\"" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "параметр %s не поддерживается версией amcheck %s" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "не найдены подлежащие проверке базовые таблицы, соответствующие \"%s\"" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "не найдены подлежащие проверке индексы btree, соответствующие \"%s\"" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "" "не найдены подлежащие проверке отношения в схемах, соответствующих \"%s\"" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "не найдены подлежащие проверке отношения, соответствующие \"%s\"" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "не найдены отношения для проверки" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "проверка базовой таблицы \"%s.%s.%s\"" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "проверка индекса btree \"%s.%s.%s\"" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "ошибка передачи команды базе \"%s\": %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "Выполнялась команда: %s" -#: pg_amcheck.c:1015 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "базовая таблица \"%s.%s.%s\", блок %s, смещение %s, атрибут %s:\n" -#: pg_amcheck.c:1022 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "базовая таблица \"%s.%s.%s\", блок %s, смещение %s:\n" -#: pg_amcheck.c:1028 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "базовая таблица \"%s.%s.%s\", блок %s:\n" -#: pg_amcheck.c:1033 pg_amcheck.c:1044 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "базовая таблица \"%s.%s.%s\":\n" -#: pg_amcheck.c:1048 pg_amcheck.c:1117 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "запрос: %s\n" -#: pg_amcheck.c:1099 +#: pg_amcheck.c:1144 #, c-format msgid "" "btree index \"%s.%s.%s\": btree checking function returned unexpected number " @@ -222,17 +332,17 @@ msgstr "" "индекс btree \"%s.%s.%s\": функция проверки btree выдала неожиданное " "количество строк: %d" -#: pg_amcheck.c:1103 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "Совместимы ли версии %s и amcheck?" -#: pg_amcheck.c:1113 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "индекс btree \"%s.%s.%s\":\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1183 #, c-format msgid "" "%s checks objects in a PostgreSQL database for corruption.\n" @@ -241,17 +351,17 @@ msgstr "" "%s проверяет объекты в базе данных PostgreSQL на предмет повреждений.\n" "\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [ПАРАМЕТР]... [ИМЯ_БД]\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1186 #, c-format msgid "" "\n" @@ -260,77 +370,77 @@ msgstr "" "\n" "Параметры выбора объектов:\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" msgstr " -a, --all проверить все базы\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" msgstr "" " -d, --database=ШАБЛОН проверить соответствующие шаблону базы\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr "" " -D, --exclude-database=ШАБЛОН не проверять соответствующие шаблону базы\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" msgstr "" " -i, --index=ШАБЛОН проверить соответствующие шаблону индексы\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" msgstr "" " -I, --exclude-index=ШАБЛОН не проверять соответствующие шаблону " "индексы\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" msgstr "" " -r, --relation=ШАБЛОН проверить соответствующие шаблону " "отношения\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" msgstr "" " -R, --exclude-relation=ШАБЛОН не проверять соответствующие шаблону " "отношения\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" msgstr "" " -s, --schema=ШАБЛОН проверить соответствующие шаблону схемы\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" msgstr "" " -S, --exclude-schema=ШАБЛОН не проверять соответствующие шаблону " "схемы\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" msgstr "" " -t, --table=ШАБЛОН проверить соответствующие шаблону таблицы\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" msgstr "" " -T, --exclude-table=ШАБЛОН не проверять соответствующие шаблону " "таблицы\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1198 #, c-format msgid "" " --no-dependent-indexes do NOT expand list of relations to include " @@ -339,7 +449,7 @@ msgstr "" " --no-dependent-indexes не включать в список проверяемых отношений " "индексы\n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1199 #, c-format msgid "" " --no-dependent-toast do NOT expand list of relations to include " @@ -348,7 +458,7 @@ msgstr "" " --no-dependent-toast не включать в список проверяемых отношений " "TOAST-таблицы\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1200 #, c-format msgid "" " --no-strict-names do NOT require patterns to match objects\n" @@ -356,7 +466,7 @@ msgstr "" " --no-strict-names не требовать наличия объектов, " "соответствующих шаблонам\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1201 #, c-format msgid "" "\n" @@ -365,14 +475,14 @@ msgstr "" "\n" "Параметры проверки таблиц:\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1202 #, c-format msgid "" " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" msgstr "" " --exclude-toast-pointers не переходить по указателям в TOAST\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1203 #, c-format msgid "" " --on-error-stop stop checking at end of first corrupt " @@ -381,7 +491,7 @@ msgstr "" " --on-error-stop прекратить проверку по достижении конца " "первой повреждённой страницы\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1204 #, c-format msgid "" " --skip=OPTION do NOT check \"all-frozen\" or \"all-" @@ -390,7 +500,7 @@ msgstr "" " --skip=ТИП_БЛОКА не проверять блоки типа \"all-frozen\" или " "\"all-visible\"\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1205 #, c-format msgid "" " --startblock=BLOCK begin checking table(s) at the given block " @@ -400,7 +510,7 @@ msgstr "" "заданным номером\n" # skip-rule: no-space-before-parentheses -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1206 #, c-format msgid "" " --endblock=BLOCK check table(s) only up to the given block " @@ -409,7 +519,7 @@ msgstr "" " --endblock=БЛОК проверить таблицы(у) до блока с заданным " "номером\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1207 #, c-format msgid "" "\n" @@ -418,7 +528,16 @@ msgstr "" "\n" "Параметры проверки индексов-B-деревьев:\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1208 +#, c-format +msgid "" +" --checkunique check unique constraint if index is " +"unique\n" +msgstr "" +" --checkunique проверить ограничение уникальности для " +"уникальных индексов\n" + +#: pg_amcheck.c:1209 #, c-format msgid "" " --heapallindexed check that all heap tuples are found " @@ -427,7 +546,7 @@ msgstr "" " --heapallindexed проверить, что всем кортежам кучи " "находится соответствие в индексах\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1210 #, c-format msgid "" " --parent-check check index parent/child relationships\n" @@ -435,7 +554,7 @@ msgstr "" " --parent-check проверить связи родитель/потомок в " "индексах\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1211 #, c-format msgid "" " --rootdescend search from root page to refind tuples\n" @@ -443,7 +562,7 @@ msgstr "" " --rootdescend перепроверять поиск кортежей от корневой " "страницы\n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1212 #, c-format msgid "" "\n" @@ -452,42 +571,42 @@ msgstr "" "\n" "Параметры подключения:\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1213 #, c-format msgid "" " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог " -"сокетов\n" +" -h, --host=ИМЯ компьютер с сервером баз данных или " +"каталог сокетов\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=ПОРТ порт сервера баз данных\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr "" " -U, --username=ИМЯ имя пользователя для подключения к " "серверу\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запросить пароль\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=ИМЯ_БД другая опорная база данных\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1219 #, c-format msgid "" "\n" @@ -496,7 +615,7 @@ msgstr "" "\n" "Другие параметры:\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1220 #, c-format msgid "" " -e, --echo show the commands being sent to the " @@ -504,7 +623,7 @@ msgid "" msgstr "" " -e, --echo отображать команды, отправляемые серверу\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1221 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " @@ -513,33 +632,33 @@ msgstr "" " -j, --jobs=ЧИСЛО устанавливать заданное число подключений к " "серверу\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress показывать прогресс операции\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose выводить исчерпывающие сообщения\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1224 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_amcheck.c:1179 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" msgstr " --install-missing установить недостающие расширения\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_amcheck.c:1182 +#: pg_amcheck.c:1228 #, c-format msgid "" "\n" @@ -548,53 +667,53 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_amcheck.c:1183 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_amcheck.c:1236 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "отношений: %*s/%s (%d%%), страниц: %*s/%s (%d%%) %*s" -#: pg_amcheck.c:1247 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "отношений: %*s/%s (%d%%), страниц: %*s/%s (%d%%) (%s%-*.*s)" -#: pg_amcheck.c:1262 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "отношений: %*s/%s (%d%%), страниц: %*s/%s (%d%%)" -#: pg_amcheck.c:1321 pg_amcheck.c:1354 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" -#: pg_amcheck.c:1399 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неверное имя отношения (слишком много компонентов): %s" -#: pg_amcheck.c:1552 pg_amcheck.c:1691 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "выбирается база \"%s\"" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "внутренняя ошибка: получен неожиданный идентификатор шаблона базы %d" -#: pg_amcheck.c:1675 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "" "не найдены подлежащие проверке доступные базы, соответствующие шаблону \"%s\"" -#: pg_amcheck.c:2133 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "" diff --git a/src/bin/pg_amcheck/po/sv.po b/src/bin/pg_amcheck/po/sv.po index 2a9ee08207df0..6db26dc737657 100644 --- a/src/bin/pg_amcheck/po/sv.po +++ b/src/bin/pg_amcheck/po/sv.po @@ -1,14 +1,14 @@ # SWEDISH message translation file for pg_amcheck # Copyright (C) 2021 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_amcheck (PostgreSQL) package. -# Dennis Björklund , 2021, 2022. +# Dennis Björklund , 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-09 18:50+0000\n" -"PO-Revision-Date: 2023-09-05 08:59+0200\n" +"POT-Creation-Date: 2024-08-27 15:52+0000\n" +"PO-Revision-Date: 2024-08-27 18:29+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -16,31 +16,98 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "fel: " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "varning: " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "detalj: " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "tips: " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + +#: ../../common/username.c:43 +#, c-format +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 +msgid "user does not exist" +msgstr "användaren finns inte" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "misslyckad sökning efter användarnamn: felkod %lu" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Förfrågan om avbrytning skickad\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Kunde inte skicka förfrågan om avbrytning: " @@ -49,7 +116,7 @@ msgstr "Kunde inte skicka förfrågan om avbrytning: " msgid "could not connect to database %s: out of memory" msgstr "kunde inte ansluta till databas %s: slut på minne" -#: ../../fe_utils/connect_utils.c:117 +#: ../../fe_utils/connect_utils.c:116 #, c-format msgid "%s" msgstr "%s" @@ -64,174 +131,214 @@ msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" msgid "%s must be in range %d..%d" msgstr "%s måste vara i intervallet %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "för många jobb för denna plattform: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "deskriptor-index utanför sitt intervall för select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Försök med färre job." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "processande av databas \"%s\" misslyckades: %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1645 pg_amcheck.c:2090 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "fråga misslyckades: %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1100 pg_amcheck.c:1646 pg_amcheck.c:2091 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "Frågan var: %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "ogiltigt argument för flaggan %s" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "ogiltigt startblock" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "startblocket utanför giltig gräns" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "ogiltigt slutblock" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "slutblocket utanför giltig gräns" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "slutblocket kommer före startblocket" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "kan inte ange databasnamn tillsammans med --all" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "kan inte ange både ett databasnamn och ett databasmönster" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "inga databaser att kontrollera" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "databas \"%s\": %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "hoppar över databas \"%s\": amcheck är inte installerad" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "i databas \"%s\": använder amcheck version \"%s\" i schema \"%s\"" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "flaggan %s stöds inte av amcheck version %s" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "finns inga heap-tabeller för att kontrollera matchning \"%s\"" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "finns inga btree-index för att kontrollera matching \"%s\"" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "finns inga relationer att kontrollera i schemamatchning \"%s\"" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "finns inga relations för att kontrollera matching \"%s\"" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "finns inga relationer att kontrollera" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "kontrollerar heap-tabell \"%s.%s.%s\"" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "kontrollerar btree-index \"%s.%s.%s\"" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "fel vid skickande av kommando till databas \"%s\": %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "Kommandot var: %s" -#: pg_amcheck.c:1013 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "heap-tabell \"%s.%s.%s\", block %s, offset %s, attribut %s:\n" -#: pg_amcheck.c:1020 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "heap-tabell \"%s.%s.%s\", block %s, offset %s:\n" -#: pg_amcheck.c:1026 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "heap-tabell \"%s.%s.%s\", block %s:\n" -#: pg_amcheck.c:1031 pg_amcheck.c:1042 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "heap-tabell \"%s.%s.%s\":\n" -#: pg_amcheck.c:1046 pg_amcheck.c:1115 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "frågan var: %s\n" -#: pg_amcheck.c:1097 +#: pg_amcheck.c:1144 #, c-format msgid "btree index \"%s.%s.%s\": btree checking function returned unexpected number of rows: %d" msgstr "btree-index \"%s.%s.%s\": kontrollfunktion för btree returnerade oväntat antal rader: %d" -#: pg_amcheck.c:1101 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "Är versionerna på %s och amcheck kompatibla?" -#: pg_amcheck.c:1111 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "btree-index \"%s.%s.%s\":\n" -#: pg_amcheck.c:1136 +#: pg_amcheck.c:1183 #, c-format msgid "" "%s checks objects in a PostgreSQL database for corruption.\n" @@ -240,17 +347,17 @@ msgstr "" "%s kontrollerar objekt i en PostgreSQL-database för att hitta korruption.\n" "\n" -#: pg_amcheck.c:1137 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [FLAGGA]... [DBNAMN]\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1186 #, c-format msgid "" "\n" @@ -259,77 +366,77 @@ msgstr "" "\n" "Flaggor för destinationen:\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" msgstr " -a, --all kontrollera alla databaser\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" msgstr " -d, --database=MALL kontrollera matchande databas(er)\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr " -D, --exclude-database=MALL kontrollera INTE matchande databas(er)\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" msgstr " -i, --index=MALL kontrollera matchande index\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" msgstr " -I, --exclude-index=MALL kontrollera INTE matchande index\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" msgstr " -r, --relation=MALL kontrollera matchande relation(er)\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" msgstr " -R, --exclude-relation=MALL kontrollera INTE matchande relation(er)\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" msgstr " -s, --schema=MALL kontrollera matchande schema(n)\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" msgstr " -S, --exclude-schema=MALL kontrollera INTE matchande schema(n)\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" msgstr " -t, --table=MALL kontollera matchande tabell(er)\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" msgstr " -T, --exclude-table=MALL kontollera INTE matchande tabell(er)\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1198 #, c-format msgid " --no-dependent-indexes do NOT expand list of relations to include indexes\n" msgstr " --no-dependent-indexes expandera INTE listan med relationer för att inkludera index\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1199 #, c-format msgid " --no-dependent-toast do NOT expand list of relations to include TOAST tables\n" msgstr " --no-dependent-toast expandera inte listan av relationer för att inkludera TOAST-tabeller\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1200 #, c-format msgid " --no-strict-names do NOT require patterns to match objects\n" msgstr " --no-strict-names kräv INTE mallar för matcha objekt\n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1201 #, c-format msgid "" "\n" @@ -338,32 +445,32 @@ msgstr "" "\n" "Flaggor för kontroll av tabeller:\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1202 #, c-format msgid " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" msgstr " --exclude-toast-pointers följ INTE relationers TOAST-pekare\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1203 #, c-format msgid " --on-error-stop stop checking at end of first corrupt page\n" msgstr " --on-error-stop sluta kontrollera efter första korrupta sidan\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1204 #, c-format msgid " --skip=OPTION do NOT check \"all-frozen\" or \"all-visible\" blocks\n" msgstr " --skip=FLAGGA kontrollera INTE block som är \"all-frozen\" eller \"all-visible\"\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1205 #, c-format msgid " --startblock=BLOCK begin checking table(s) at the given block number\n" msgstr " --startblock=BLOCK börja kontollera tabell(er) vid angivet blocknummer\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1206 #, c-format msgid " --endblock=BLOCK check table(s) only up to the given block number\n" msgstr " --endblock=BLOCK kontrollera tabell(er) fram till angivet blocknummer\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1207 #, c-format msgid "" "\n" @@ -372,22 +479,27 @@ msgstr "" "\n" "Flaggor för kontroll av B-tree-index:\n" -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1208 +#, c-format +msgid " --checkunique check unique constraint if index is unique\n" +msgstr " --checkunique verifiera unik-villkor om indexet är unikt\n" + +#: pg_amcheck.c:1209 #, c-format msgid " --heapallindexed check that all heap tuples are found within indexes\n" msgstr " --heapallindexed kontrollera att alla heap-tupler hittas i index\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1210 #, c-format msgid " --parent-check check index parent/child relationships\n" msgstr " --parent-check kontrollera förhållandet mellan barn/förälder i index\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1211 #, c-format msgid " --rootdescend search from root page to refind tuples\n" msgstr " --rootdescend sök från root-sidan för att återfinna tupler\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1212 #, c-format msgid "" "\n" @@ -396,37 +508,37 @@ msgstr "" "\n" "Flaggor för anslutning:\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1213 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=VÄRDNAMN databasens värdnamn eller socketkatalog\n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT databasserverns port\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga ej efter lösenord\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password tvinga fram lösenordsfråga\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAMN val av underhållsdatabas\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1219 #, c-format msgid "" "\n" @@ -435,42 +547,42 @@ msgstr "" "\n" "Andra flaggor:\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1220 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo visa kommandon som skickas till servern\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1221 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to the server\n" msgstr " -j, --jobs=NUM antal samtidiga anslutningar till servern\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress visa förloppsinformation\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1224 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" msgstr " --install-missing installera utökningar som saknas\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1228 #, c-format msgid "" "\n" @@ -479,68 +591,52 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_amcheck.c:1181 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_amcheck.c:1234 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "%*s/%s relationer (%d%%), %*s/%s sidor (%d%%) %*s" -#: pg_amcheck.c:1245 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "%*s/%s relationer (%d%%), %*s/%s sidor (%d%%) (%s%-*.*s)" -#: pg_amcheck.c:1260 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "%*s/%s relationer (%d%%), %*s/%s sidor (%d%%)" -#: pg_amcheck.c:1319 pg_amcheck.c:1352 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "ej korrekt kvalificerat namn (för många namn med punkt): %s" -#: pg_amcheck.c:1397 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ej korrekt relationsnamn (för många namn med punkt): %s" -#: pg_amcheck.c:1550 pg_amcheck.c:1689 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "inkludera databas \"%s\"" -#: pg_amcheck.c:1671 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "internt fel: tog emot oväntat pattern_id %d för databas" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "finns inga anslutningsbara databaser att kontrollera som matchar \"%s\"" -#: pg_amcheck.c:2131 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "internt fel: tog emot oväntat pattern_id %d för relation" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Försök med \"%s --help\" för mer information.\n" - -#, c-format -#~ msgid "command was: %s" -#~ msgstr "kommandot var: %s" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatalt: " - -#, c-format -#~ msgid "number of parallel jobs must be at least 1" -#~ msgstr "antalet parallella jobb måste vara minst 1" diff --git a/src/bin/pg_amcheck/po/uk.po b/src/bin/pg_amcheck/po/uk.po index 601e0434da1e5..7ce979b0ea83b 100644 --- a/src/bin/pg_amcheck/po/uk.po +++ b/src/bin/pg_amcheck/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:50+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:23+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_amcheck.pot\n" -"X-Crowdin-File-ID: 892\n" +"X-Crowdin-File: /REL_17_STABLE/pg_amcheck.pot\n" +"X-Crowdin-File-ID: 1036\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,11 +37,78 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "не можу знайти користувача з ефективним ID %ld: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "користувача не існує" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "невдала підстановка імені користувача: код помилки %lu" + +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Запит на скасування відправлений\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Не вдалося надіслати запит на скасування: " @@ -50,7 +117,7 @@ msgstr "Не вдалося надіслати запит на скасуван msgid "could not connect to database %s: out of memory" msgstr "не можливо під'єднатися до бази даних %s: не вистачає пам'яті" -#: ../../fe_utils/connect_utils.c:117 +#: ../../fe_utils/connect_utils.c:116 #, c-format msgid "%s" msgstr "%s" @@ -65,451 +132,496 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "занадто багато завдань для цієї платформи: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "дескриптор файлу сокету поза діапазоном для select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Спробуйте менше робочих завдань." + +#: ../../fe_utils/parallel_slot.c:553 +#, c-format +msgid "processing of database \"%s\" failed: %s" +msgstr "обробка бази даних \"%s\" не вдалась: %s" + #: ../../fe_utils/query_utils.c:33 ../../fe_utils/query_utils.c:58 -#: pg_amcheck.c:1647 pg_amcheck.c:2092 +#: pg_amcheck.c:1693 pg_amcheck.c:2138 #, c-format msgid "query failed: %s" msgstr "запит не вдався: %s" #: ../../fe_utils/query_utils.c:34 ../../fe_utils/query_utils.c:59 -#: pg_amcheck.c:571 pg_amcheck.c:1102 pg_amcheck.c:1648 pg_amcheck.c:2093 +#: pg_amcheck.c:578 pg_amcheck.c:1147 pg_amcheck.c:1694 pg_amcheck.c:2139 #, c-format msgid "Query was: %s" msgstr "Запит був: %s" -#: pg_amcheck.c:399 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: pg_amcheck.c:403 #, c-format msgid "invalid argument for option %s" msgstr "неприпустимий аргумент для параметру %s" -#: pg_amcheck.c:405 +#: pg_amcheck.c:409 #, c-format msgid "invalid start block" msgstr "неприпустимий початковий блок" -#: pg_amcheck.c:407 +#: pg_amcheck.c:411 #, c-format msgid "start block out of bounds" msgstr "початковий блок поза межами" -#: pg_amcheck.c:414 +#: pg_amcheck.c:418 #, c-format msgid "invalid end block" msgstr "неприпустимий кінцевий блок" -#: pg_amcheck.c:416 +#: pg_amcheck.c:420 #, c-format msgid "end block out of bounds" msgstr "кінцевий блок поза межами" -#: pg_amcheck.c:439 pg_amcheck.c:461 +#: pg_amcheck.c:446 pg_amcheck.c:468 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_amcheck.c:445 +#: pg_amcheck.c:452 #, c-format msgid "end block precedes start block" msgstr "кінцевий блок передує початковому блоку" -#: pg_amcheck.c:459 +#: pg_amcheck.c:466 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_amcheck.c:479 +#: pg_amcheck.c:486 #, c-format msgid "cannot specify a database name with --all" msgstr "не можна вказати назву бази даних з --all" -#: pg_amcheck.c:485 +#: pg_amcheck.c:492 #, c-format msgid "cannot specify both a database name and database patterns" msgstr "не можна вказати одночасно ім'я бази даних і шаблони бази даних" -#: pg_amcheck.c:513 +#: pg_amcheck.c:520 #, c-format msgid "no databases to check" msgstr "немає баз даних для перевірки" -#: pg_amcheck.c:569 +#: pg_amcheck.c:576 #, c-format msgid "database \"%s\": %s" msgstr "база даних \"%s\": %s" -#: pg_amcheck.c:580 +#: pg_amcheck.c:587 #, c-format msgid "skipping database \"%s\": amcheck is not installed" msgstr "пропуск бази даних \"%s\": amcheck не встановлено" -#: pg_amcheck.c:588 +#: pg_amcheck.c:595 #, c-format msgid "in database \"%s\": using amcheck version \"%s\" in schema \"%s\"" msgstr "у базі даних \"%s\": використовується amcheck версії \"%s\" у схемі \"%s\"" -#: pg_amcheck.c:610 +#: pg_amcheck.c:624 +#, c-format +msgid "option %s is not supported by amcheck version %s" +msgstr "параметр %s не підтримується у версії amcheck %s" + +#: pg_amcheck.c:650 #, c-format msgid "no heap tables to check matching \"%s\"" msgstr "немає таблиць в динамічній пам'яті для перевірки відповідності \"%s\"" -#: pg_amcheck.c:613 +#: pg_amcheck.c:653 #, c-format msgid "no btree indexes to check matching \"%s\"" msgstr "немає індексів btree для перевірки відповідності \"%s\"" -#: pg_amcheck.c:616 +#: pg_amcheck.c:656 #, c-format msgid "no relations to check in schemas matching \"%s\"" msgstr "немає відношень для перевірки в схемах, відповідних \"%s\"" -#: pg_amcheck.c:619 +#: pg_amcheck.c:659 #, c-format msgid "no relations to check matching \"%s\"" msgstr "немає відношень для перевірки відповідності \"%s\"" -#: pg_amcheck.c:647 +#: pg_amcheck.c:687 #, c-format msgid "no relations to check" msgstr "немає зв'язків для перевірки" -#: pg_amcheck.c:730 +#: pg_amcheck.c:770 #, c-format msgid "checking heap table \"%s.%s.%s\"" msgstr "перевірка таблиць динамічної пам'яті \"%s.%s.%s\"" -#: pg_amcheck.c:746 +#: pg_amcheck.c:786 #, c-format msgid "checking btree index \"%s.%s.%s\"" msgstr "перевірка індексу btree \"%s.%s.%s\"" -#: pg_amcheck.c:893 +#: pg_amcheck.c:937 #, c-format msgid "error sending command to database \"%s\": %s" msgstr "помилка надсилання команди до бази даних \"%s: %s" -#: pg_amcheck.c:896 +#: pg_amcheck.c:940 #, c-format msgid "Command was: %s" msgstr "Команда була: %s" -#: pg_amcheck.c:1015 +#: pg_amcheck.c:1060 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s, attribute %s:\n" msgstr "таблиця динамічної пам'яті \"%s.%s.%s\", блок %s, зсув %s, атрибут %s:\n" -#: pg_amcheck.c:1022 +#: pg_amcheck.c:1067 #, c-format msgid "heap table \"%s.%s.%s\", block %s, offset %s:\n" msgstr "таблиця динамічної пам'яті \"%s.%s.%s\", блок %s, зсув %s:\n" -#: pg_amcheck.c:1028 +#: pg_amcheck.c:1073 #, c-format msgid "heap table \"%s.%s.%s\", block %s:\n" msgstr "таблиця динамічної пам'яті \"%s.%s.%s\", блок %s:\n" -#: pg_amcheck.c:1033 pg_amcheck.c:1044 +#: pg_amcheck.c:1078 pg_amcheck.c:1089 #, c-format msgid "heap table \"%s.%s.%s\":\n" msgstr "таблиця динамічної пам'яті \"%s.%s.%s\":\n" -#: pg_amcheck.c:1048 pg_amcheck.c:1117 +#: pg_amcheck.c:1093 pg_amcheck.c:1162 #, c-format msgid "query was: %s\n" msgstr "запит був: %s\n" -#: pg_amcheck.c:1099 +#: pg_amcheck.c:1144 #, c-format msgid "btree index \"%s.%s.%s\": btree checking function returned unexpected number of rows: %d" msgstr "індекс btree \"%s.%s.%s\": функція перевірки btree повернула неочікувану кількість рядків: %d" -#: pg_amcheck.c:1103 +#: pg_amcheck.c:1148 #, c-format msgid "Are %s's and amcheck's versions compatible?" msgstr "Чи сумісні версії %s і amcheck?" -#: pg_amcheck.c:1113 +#: pg_amcheck.c:1158 #, c-format msgid "btree index \"%s.%s.%s\":\n" msgstr "індекс btree \"%s.%s.%s\":\n" -#: pg_amcheck.c:1138 +#: pg_amcheck.c:1183 #, c-format msgid "%s checks objects in a PostgreSQL database for corruption.\n\n" msgstr "%s перевіряє об'єкти бази даних PostgreSQL на пошкодження.\n\n" -#: pg_amcheck.c:1139 +#: pg_amcheck.c:1184 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_amcheck.c:1140 +#: pg_amcheck.c:1185 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: pg_amcheck.c:1141 +#: pg_amcheck.c:1186 #, c-format msgid "\n" "Target options:\n" msgstr "\n" "Цільові параметри:\n" -#: pg_amcheck.c:1142 +#: pg_amcheck.c:1187 #, c-format msgid " -a, --all check all databases\n" msgstr " -a, --all перевірити всі бази даних\n" -#: pg_amcheck.c:1143 +#: pg_amcheck.c:1188 #, c-format msgid " -d, --database=PATTERN check matching database(s)\n" msgstr " -d, --database=PATTERN перевірити відповідні бази даних\n" -#: pg_amcheck.c:1144 +#: pg_amcheck.c:1189 #, c-format msgid " -D, --exclude-database=PATTERN do NOT check matching database(s)\n" msgstr " -D, --exclude-database=PATTERN НЕ перевіряти відповідні бази даних\n" -#: pg_amcheck.c:1145 +#: pg_amcheck.c:1190 #, c-format msgid " -i, --index=PATTERN check matching index(es)\n" msgstr " -i, --index=PATTERN перевірити відповідні індекси\n" -#: pg_amcheck.c:1146 +#: pg_amcheck.c:1191 #, c-format msgid " -I, --exclude-index=PATTERN do NOT check matching index(es)\n" msgstr " -I, --exclude-index=PATTERN НЕ перевіряти відповідні індекси\n" -#: pg_amcheck.c:1147 +#: pg_amcheck.c:1192 #, c-format msgid " -r, --relation=PATTERN check matching relation(s)\n" msgstr " -r, --relation=PATTERN перевірити відповідні відношення\n" -#: pg_amcheck.c:1148 +#: pg_amcheck.c:1193 #, c-format msgid " -R, --exclude-relation=PATTERN do NOT check matching relation(s)\n" msgstr " -R, --exclude-relation=PATTERN НЕ перевіряти відповідні відношення\n" -#: pg_amcheck.c:1149 +#: pg_amcheck.c:1194 #, c-format msgid " -s, --schema=PATTERN check matching schema(s)\n" msgstr " -s, --schema=PATTERN перевірити відповідні схеми\n" -#: pg_amcheck.c:1150 +#: pg_amcheck.c:1195 #, c-format msgid " -S, --exclude-schema=PATTERN do NOT check matching schema(s)\n" msgstr " -S, --exclude-schema=PATTERN НЕ перевіряти відповідні схеми\n" -#: pg_amcheck.c:1151 +#: pg_amcheck.c:1196 #, c-format msgid " -t, --table=PATTERN check matching table(s)\n" msgstr " -t, --table=PATTERN перевірити відповідні таблиці\n" -#: pg_amcheck.c:1152 +#: pg_amcheck.c:1197 #, c-format msgid " -T, --exclude-table=PATTERN do NOT check matching table(s)\n" msgstr " -T, --exclude-table=PATTERN НЕ перевіряти відповідні таблиці\n" -#: pg_amcheck.c:1153 +#: pg_amcheck.c:1198 #, c-format msgid " --no-dependent-indexes do NOT expand list of relations to include indexes\n" msgstr " --no-dependent-indexes НЕ розширювати список відносин, щоб включити індекси\n" -#: pg_amcheck.c:1154 +#: pg_amcheck.c:1199 #, c-format msgid " --no-dependent-toast do NOT expand list of relations to include TOAST tables\n" msgstr " --no-dependent-toast НЕ розширювати список відносин, щоб включити таблиці TOAST\n" -#: pg_amcheck.c:1155 +#: pg_amcheck.c:1200 #, c-format msgid " --no-strict-names do NOT require patterns to match objects\n" msgstr " --no-strict-names НЕ вимагати відповідності шаблонів об'єктам\n" -#: pg_amcheck.c:1156 +#: pg_amcheck.c:1201 #, c-format msgid "\n" "Table checking options:\n" msgstr "\n" "Параметри перевірки таблиць:\n" -#: pg_amcheck.c:1157 +#: pg_amcheck.c:1202 #, c-format msgid " --exclude-toast-pointers do NOT follow relation TOAST pointers\n" msgstr " --exclude-toast-pointers НЕ слідувати покажчикам відношень TOAST\n" -#: pg_amcheck.c:1158 +#: pg_amcheck.c:1203 #, c-format msgid " --on-error-stop stop checking at end of first corrupt page\n" msgstr " --on-error-stop зупинити перевірку наприкінці першої пошкодженої сторінки\n" -#: pg_amcheck.c:1159 +#: pg_amcheck.c:1204 #, c-format msgid " --skip=OPTION do NOT check \"all-frozen\" or \"all-visible\" blocks\n" msgstr " --skip=OPTION НЕ перевіряти \"всі заморожені\" або \"всі видимі\" блоки\n" -#: pg_amcheck.c:1160 +#: pg_amcheck.c:1205 #, c-format msgid " --startblock=BLOCK begin checking table(s) at the given block number\n" msgstr " --startblock=BLOCK почати перевірку таблиць за поданим номером блоку\n" -#: pg_amcheck.c:1161 +#: pg_amcheck.c:1206 #, c-format msgid " --endblock=BLOCK check table(s) only up to the given block number\n" msgstr " --endblock=BLOCK перевіряти таблиці лише до поданого номеру блоку\n" -#: pg_amcheck.c:1162 +#: pg_amcheck.c:1207 #, c-format msgid "\n" "B-tree index checking options:\n" msgstr "\n" "Параметри перевірки індексів B-tree:\n" -#: pg_amcheck.c:1163 +#: pg_amcheck.c:1208 +#, c-format +msgid " --checkunique check unique constraint if index is unique\n" +msgstr " --checkunique перевіряємо обмеження unique, якщо індекс унікальний\n" + +#: pg_amcheck.c:1209 #, c-format msgid " --heapallindexed check that all heap tuples are found within indexes\n" msgstr " --heapallindexed перевірити чи всі кортежі динамічної пам'яті містяться в індексах\n" -#: pg_amcheck.c:1164 +#: pg_amcheck.c:1210 #, c-format msgid " --parent-check check index parent/child relationships\n" msgstr " --parent-check перевірити індекс батьківських/дочірніх відносин\n" -#: pg_amcheck.c:1165 +#: pg_amcheck.c:1211 #, c-format msgid " --rootdescend search from root page to refind tuples\n" msgstr " --rootdescend шукати з кореневої сторінки, для повторного пошуку кортежів\n" -#: pg_amcheck.c:1166 +#: pg_amcheck.c:1212 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: pg_amcheck.c:1167 +#: pg_amcheck.c:1213 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хост сервера бази даних або каталог сокетів\n" -#: pg_amcheck.c:1168 +#: pg_amcheck.c:1214 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT порт серверу бази даних\n" -#: pg_amcheck.c:1169 +#: pg_amcheck.c:1215 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME ім'я користувача для з'єднання з сервером\n" -#: pg_amcheck.c:1170 +#: pg_amcheck.c:1216 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: pg_amcheck.c:1171 +#: pg_amcheck.c:1217 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password примусовий запит пароля\n" -#: pg_amcheck.c:1172 +#: pg_amcheck.c:1218 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME база даних альтернативного обслуговування\n" -#: pg_amcheck.c:1173 +#: pg_amcheck.c:1219 #, c-format msgid "\n" "Other options:\n" msgstr "\n" "Інші параметри:\n" -#: pg_amcheck.c:1174 +#: pg_amcheck.c:1220 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіслані серверу\n" -#: pg_amcheck.c:1175 +#: pg_amcheck.c:1221 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to the server\n" msgstr " -j, --jobs=NUM використати цю кількість одночасних з'єднань з сервером\n" -#: pg_amcheck.c:1176 +#: pg_amcheck.c:1222 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress показати інформацію про прогрес\n" -#: pg_amcheck.c:1177 +#: pg_amcheck.c:1223 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато інформації\n" -#: pg_amcheck.c:1178 +#: pg_amcheck.c:1224 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_amcheck.c:1179 +#: pg_amcheck.c:1225 #, c-format msgid " --install-missing install missing extensions\n" msgstr " --install-missing встановити відсутні розширення\n" -#: pg_amcheck.c:1180 +#: pg_amcheck.c:1226 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю справку, потім вийти\n" -#: pg_amcheck.c:1182 +#: pg_amcheck.c:1228 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_amcheck.c:1183 +#: pg_amcheck.c:1229 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_amcheck.c:1236 +#: pg_amcheck.c:1282 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) %*s" msgstr "%*s/%s відношень (%d%%), %*s/%s сторінок (%d%%) %*s" -#: pg_amcheck.c:1247 +#: pg_amcheck.c:1293 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%) (%s%-*.*s)" msgstr "%*s/%s відношень (%d%%), %*s/%s сторінок (%d%%) (%s%-*.*s)" -#: pg_amcheck.c:1262 +#: pg_amcheck.c:1308 #, c-format msgid "%*s/%s relations (%d%%), %*s/%s pages (%d%%)" msgstr "%*s/%s відношень (%d%%), %*s/%s сторінок (%d%%)" -#: pg_amcheck.c:1321 pg_amcheck.c:1354 +#: pg_amcheck.c:1367 pg_amcheck.c:1400 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: pg_amcheck.c:1399 +#: pg_amcheck.c:1445 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: pg_amcheck.c:1552 pg_amcheck.c:1691 +#: pg_amcheck.c:1598 pg_amcheck.c:1737 #, c-format msgid "including database \"%s\"" msgstr "включаючи базу даних \"%s\"" -#: pg_amcheck.c:1673 +#: pg_amcheck.c:1719 #, c-format msgid "internal error: received unexpected database pattern_id %d" msgstr "внутрішня помилка: отримано неочікувану помилку шаблону бази даних %d" -#: pg_amcheck.c:1675 +#: pg_amcheck.c:1721 #, c-format msgid "no connectable databases to check matching \"%s\"" msgstr "немає бази даних для підключення, щоб перевірити відповідність\"%s\"" -#: pg_amcheck.c:2133 +#: pg_amcheck.c:2179 #, c-format msgid "internal error: received unexpected relation pattern_id %d" msgstr "внутрішня помилка: отримано неочікувану помилку шаблону відношення %d" diff --git a/src/bin/pg_archivecleanup/po/de.po b/src/bin/pg_archivecleanup/po/de.po index ff82851e552cd..78f867ca0fd64 100644 --- a/src/bin/pg_archivecleanup/po/de.po +++ b/src/bin/pg_archivecleanup/po/de.po @@ -1,14 +1,14 @@ # pg_archivecleanup message translation file for pg_archivecleanup -# Copyright (C) 2019-2024 PostgreSQL Global Development Group +# Copyright (C) 2019-2025 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Peter Eisentraut , 2019 - 2024. +# Peter Eisentraut , 2019 - 2025. # msgid "" msgstr "" -"Project-Id-Version: pg_archivecleanup (PostgreSQL) 17\n" +"Project-Id-Version: pg_archivecleanup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 07:53+0000\n" -"PO-Revision-Date: 2024-04-04 11:48+0200\n" +"POT-Creation-Date: 2025-03-06 09:23+0000\n" +"PO-Revision-Date: 2025-03-06 12:11+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,22 +16,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -47,43 +47,43 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: pg_archivecleanup.c:68 +#: pg_archivecleanup.c:69 #, c-format msgid "archive location \"%s\" does not exist" msgstr "Archivverzeichnis »%s« existiert nicht" -#: pg_archivecleanup.c:100 +#: pg_archivecleanup.c:101 #, c-format msgid "could not open archive location \"%s\": %m" msgstr "konnte Archivverzeichnis »%s« nicht öffnen: %m" -#: pg_archivecleanup.c:164 +#: pg_archivecleanup.c:165 #, c-format msgid "could not remove file \"%s\": %m" msgstr "konnte Datei »%s« nicht löschen: %m" -#: pg_archivecleanup.c:169 +#: pg_archivecleanup.c:170 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "konnte Archivverzeichnis »%s« nicht lesen: %m" -#: pg_archivecleanup.c:172 +#: pg_archivecleanup.c:173 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "konnte Archivverzeichnis »%s« nicht schließen: %m" -#: pg_archivecleanup.c:245 +#: pg_archivecleanup.c:246 #, c-format msgid "invalid file name argument" msgstr "ungültiges Dateinamenargument" -#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 -#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 +#: pg_archivecleanup.c:247 pg_archivecleanup.c:335 pg_archivecleanup.c:355 +#: pg_archivecleanup.c:367 pg_archivecleanup.c:374 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:260 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -92,17 +92,17 @@ msgstr "" "%s entfernt alte WAL-Dateien aus PostgreSQL-Archiven.\n" "\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:261 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_archivecleanup.c:261 +#: pg_archivecleanup.c:262 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [OPTION]... ARCHIVVERZEICHNIS ÄLTESTE-ZU-BEHALTENE-WALDATEI\n" -#: pg_archivecleanup.c:262 +#: pg_archivecleanup.c:263 #, c-format msgid "" "\n" @@ -111,29 +111,29 @@ msgstr "" "\n" "Optionen:\n" -#: pg_archivecleanup.c:263 +#: pg_archivecleanup.c:264 #, c-format msgid " -b, --clean-backup-history clean up files including backup history files\n" msgstr " -b, --clean-backup-history Dateien einschließlich Backup-History-Dateien aufräumen\n" -#: pg_archivecleanup.c:264 +#: pg_archivecleanup.c:265 #, c-format msgid " -d, --debug generate debug output (verbose mode)\n" msgstr " -d, --debug Debug-Ausgaben erzeugen (Verbose-Modus)\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:266 #, c-format msgid "" " -n, --dry-run dry run, show the names of the files that would be\n" " removed\n" msgstr " -n, --dry-run Probelauf, Namen der Dateien anzeigen, die entfernt würden\n" -#: pg_archivecleanup.c:267 +#: pg_archivecleanup.c:268 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_archivecleanup.c:268 +#: pg_archivecleanup.c:269 #, c-format msgid "" " -x, --strip-extension=EXT strip this extension before identifying files for\n" @@ -142,27 +142,27 @@ msgstr "" " -x, --strip-extension=ERW diese Erweiterung entfernen, bevor aufzuräumende\n" " Dateien bestimmt werden\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:271 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_archivecleanup.c:271 +#: pg_archivecleanup.c:272 #, c-format msgid "" "\n" -"For use as archive_cleanup_command in postgresql.conf:\n" +"For use as \"archive_cleanup_command\" in postgresql.conf:\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n" "e.g.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" msgstr "" "\n" -"Verwendung als archive_cleanup_command in postgresql.conf:\n" +"Verwendung als »archive_cleanup_command« in postgresql.conf:\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVVERZ %%r'\n" "z.B.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiv %%r'\n" -#: pg_archivecleanup.c:276 +#: pg_archivecleanup.c:277 #, c-format msgid "" "\n" @@ -175,7 +175,7 @@ msgstr "" "z.B.\n" " pg_archivecleanup /mnt/server/archiv 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:280 +#: pg_archivecleanup.c:281 #, c-format msgid "" "\n" @@ -184,22 +184,22 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_archivecleanup.c:281 +#: pg_archivecleanup.c:282 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_archivecleanup.c:353 +#: pg_archivecleanup.c:354 #, c-format msgid "must specify archive location" msgstr "Archivverzeichnis muss angegeben werden" -#: pg_archivecleanup.c:365 +#: pg_archivecleanup.c:366 #, c-format msgid "must specify oldest kept WAL file" msgstr "älteste zu behaltene WAL-Datei muss angegeben werden" -#: pg_archivecleanup.c:372 +#: pg_archivecleanup.c:373 #, c-format msgid "too many command-line arguments" msgstr "zu viele Kommandozeilenargumente" diff --git a/src/bin/pg_archivecleanup/po/es.po b/src/bin/pg_archivecleanup/po/es.po index 902f4a849d7a1..bac039fa0539b 100644 --- a/src/bin/pg_archivecleanup/po/es.po +++ b/src/bin/pg_archivecleanup/po/es.po @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_archivecleanup (PostgreSQL) 16\n" +"Project-Id-Version: pg_archivecleanup (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:21+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:52+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -38,43 +38,54 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " -#: pg_archivecleanup.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "ubicación de archivador «%s» no existe" -#: pg_archivecleanup.c:151 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "no se pudo abrir la ubicación del archivador «%s»: %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "no se pudo eliminar el archivo «%s»: %m" -#: pg_archivecleanup.c:157 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "no se pudo leer la ubicación del archivador «%s»: %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "no se pudo cerrar la ubicación del archivador «%s»: %m" -#: pg_archivecleanup.c:164 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "no se pudo abrir la ubicación del archivador «%s»: %m" - -#: pg_archivecleanup.c:237 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "el nombre de archivo usado como argumento no es válido" -#: pg_archivecleanup.c:238 pg_archivecleanup.c:313 pg_archivecleanup.c:333 -#: pg_archivecleanup.c:345 pg_archivecleanup.c:352 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_archivecleanup.c:251 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -83,17 +94,17 @@ msgstr "" "%s elimina archivos de WAL antiguos del archivador de PostgreSQL.\n" "\n" -#: pg_archivecleanup.c:252 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_archivecleanup.c:253 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [OPCIÓN].... UBICACIÓNARCHIVADOR WALMÁSANTIGUOAMANTENER\n" -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -102,32 +113,43 @@ msgstr "" "\n" "Opciones:\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d genera salida de depuración (modo verboso)\n" +msgid " -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -, --clean-backup-history limpia archivos incluyendo archivos de historia de backup\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:264 #, c-format -msgid " -n dry run, show the names of the files that would be removed\n" -msgstr " -n simulacro, muestra el nombre de los archivos que se eliminarían\n" +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug genera salida de depuración (modo verboso)\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:265 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version muestra información de la versión, luego sale\n" +msgid "" +" -n, --dry-run dry run, show the names of the files that would be\n" +" removed\n" +msgstr " -n, --dry-run simulacro, muestra el nombre de los archivos que se eliminarían\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:267 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x EXT hace limpieza de archivos que tengan esta extensión\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version mostrar la información de la versión, luego salir\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:268 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help muestra esta ayuda, luego sale\n" +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files for\n" +" clean up\n" +msgstr "" +" -x, --strip-extension=EXT quitar esta extensión antes de identificar archivos\n" +" a limpiar\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:270 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help muestra esta ayuda, luego salir\n" + +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" @@ -142,7 +164,7 @@ msgstr "" "por ej.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/servidor/directorioarchivador %%r'\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" @@ -155,7 +177,7 @@ msgstr "" "por ej.\n" " pg_archivecleanup /mnt/servidor/directorioarchivador 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:269 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" @@ -164,22 +186,22 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_archivecleanup.c:332 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "debe especificar la ubicación del archivador" -#: pg_archivecleanup.c:344 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "debe especificar el fichero WAL más antiguo a mantener" -#: pg_archivecleanup.c:351 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "demasiados argumentos de línea de órdenes" diff --git a/src/bin/pg_archivecleanup/po/fr.po b/src/bin/pg_archivecleanup/po/fr.po index 0ac310cc7012a..392e6e64d5f60 100644 --- a/src/bin/pg_archivecleanup/po/fr.po +++ b/src/bin/pg_archivecleanup/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-07-20 21:23+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,65 +19,76 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:273 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "erreur : " -#: ../../../src/common/logging.c:280 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "attention : " -#: ../../../src/common/logging.c:291 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "détail : " -#: ../../../src/common/logging.c:298 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "astuce : " -#: pg_archivecleanup.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "l'emplacement d'archivage « %s » n'existe pas" -#: pg_archivecleanup.c:151 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "n'a pas pu ouvrir l'emplacement de l'archive « %s » : %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" -#: pg_archivecleanup.c:157 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "n'a pas pu lire l'emplacement de l'archive « %s » : %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "n'a pas pu fermer l'emplacement de l'archive « %s » : %m" -#: pg_archivecleanup.c:164 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "n'a pas pu ouvrir l'emplacement de l'archive « %s » : %m" - -#: pg_archivecleanup.c:237 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "argument du nom de fichier invalide" -#: pg_archivecleanup.c:238 pg_archivecleanup.c:313 pg_archivecleanup.c:333 -#: pg_archivecleanup.c:345 pg_archivecleanup.c:352 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_archivecleanup.c:251 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -86,17 +97,17 @@ msgstr "" "%s supprime les anciens fichiers WAL des archives de PostgreSQL.\n" "\n" -#: pg_archivecleanup.c:252 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_archivecleanup.c:253 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [OPTION]... EMPLACEMENTARCHIVE PLUSANCIENFICHIERWALCONSERVÉ\n" -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -105,32 +116,41 @@ msgstr "" "\n" "Options :\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:263 +#, c-format +msgid " -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -b, --clean-backup-history nettoie les fichiers, y compris les historiques de sauvegarde\n" + +#: pg_archivecleanup.c:264 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d affiche des informations de débugage (mode verbeux)\n" +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug affiche des informations de débogage (mode verbeux)\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:265 #, c-format -msgid " -n dry run, show the names of the files that would be removed\n" -msgstr " -n test, affiche le nom des fichiers qui seraient supprimés\n" +msgid "" +" -n, --dry-run dry run, show the names of the files that would be\n" +" removed\n" +msgstr " -n, --dry-run test, affiche le nom des fichiers qui seraient supprimés\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:267 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version et quitte\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version, puis quitte\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:268 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x EXT nettoie les fichiers s'ils ont cette extension\n" +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files for\n" +" clean up\n" +msgstr " -x, --strip-extension=EXT supprime cette extension avant d'identifier les fichiers pour nettoyage\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:270 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide et quitte\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide, puis quitte\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" @@ -145,7 +165,7 @@ msgstr "" "Par exemple :\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/serveur/reparchives %%r'\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" @@ -158,7 +178,7 @@ msgstr "" "Par exemple :\n" " pg_archivecleanup /mnt/serveur/reparchives 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:269 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" @@ -167,52 +187,22 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_archivecleanup.c:332 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "doit spécifier l'emplacement de l'archive" -#: pg_archivecleanup.c:344 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "doit spécifier le plus ancien journal de transactions conservé" -#: pg_archivecleanup.c:351 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "trop d'arguments en ligne de commande" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid "%s: ERROR: could not remove file \"%s\": %s\n" -#~ msgstr "%s : ERREUR : n'a pas pu supprimer le fichier « %s » : %s\n" - -#~ msgid "%s: file \"%s\" would be removed\n" -#~ msgstr "%s : le fichier « %s » serait supprimé\n" - -#~ msgid "%s: keeping WAL file \"%s\" and later\n" -#~ msgstr "%s : conservation du fichier WAL « %s » et des suivants\n" - -#~ msgid "%s: removing file \"%s\"\n" -#~ msgstr "%s : suppression du fichier « %s »\n" - -#~ msgid "%s: too many parameters\n" -#~ msgstr "%s : trop de paramètres\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " diff --git a/src/bin/pg_archivecleanup/po/ja.po b/src/bin/pg_archivecleanup/po/ja.po index 57886bc8df0d9..f601cfc4376b3 100644 --- a/src/bin/pg_archivecleanup/po/ja.po +++ b/src/bin/pg_archivecleanup/po/ja.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_archivecleanup (PostgreSQL 17)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-01-09 10:22+0900\n" -"PO-Revision-Date: 2024-01-09 11:54+0900\n" +"POT-Creation-Date: 2024-09-05 09:59+0900\n" +"PO-Revision-Date: 2024-09-05 10:38+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -17,63 +17,74 @@ msgstr "" "X-Generator: Poedit 1.8.13\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:278 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:285 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:296 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:303 #, c-format msgid "hint: " msgstr "ヒント: " -#: pg_archivecleanup.c:68 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "メモリ不足です\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "nullポインタは複製できません(内部エラー)\n" + +#: pg_archivecleanup.c:69 #, c-format msgid "archive location \"%s\" does not exist" msgstr "アーカイブの場所\"%s\"が存在しません" -#: pg_archivecleanup.c:100 +#: pg_archivecleanup.c:101 #, c-format msgid "could not open archive location \"%s\": %m" msgstr "アーカイブの場所\"%s\"をオープンできませんでした: %m" -#: pg_archivecleanup.c:164 +#: pg_archivecleanup.c:165 #, c-format msgid "could not remove file \"%s\": %m" msgstr "ファイル\"%s\"を削除できませんでした: %m" -#: pg_archivecleanup.c:169 +#: pg_archivecleanup.c:170 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "アーカイブの場所\"%s\"を読み込めませんでした: %m" -#: pg_archivecleanup.c:172 +#: pg_archivecleanup.c:173 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "アーカイブの場所\"%s\"をクローズできませんでした: %m" -#: pg_archivecleanup.c:245 +#: pg_archivecleanup.c:246 #, c-format msgid "invalid file name argument" msgstr "ファイル名引数が無効です" -#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 -#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 +#: pg_archivecleanup.c:247 pg_archivecleanup.c:335 pg_archivecleanup.c:355 +#: pg_archivecleanup.c:367 pg_archivecleanup.c:374 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:260 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -82,17 +93,17 @@ msgstr "" "%sはPostgreSQLのアーカイブから古いWALファイルを削除します。\n" "\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:261 #, c-format msgid "Usage:\n" msgstr "使用法:\n" -#: pg_archivecleanup.c:261 +#: pg_archivecleanup.c:262 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr "%s [オプション] ... {アーカイブの場所} {保存する最古の WAL ファイル名}\n" -#: pg_archivecleanup.c:262 +#: pg_archivecleanup.c:263 #, c-format msgid "" "\n" @@ -101,56 +112,56 @@ msgstr "" "\n" "オプション:\n" -#: pg_archivecleanup.c:263 +#: pg_archivecleanup.c:264 #, c-format msgid " -b, --clean-backup-history clean up files including backup history files\n" msgstr " -b, --clean-backup-history バックアップヒストリファイルを含めて削除する\n" -#: pg_archivecleanup.c:264 +#: pg_archivecleanup.c:265 #, c-format msgid " -d, --debug generate debug output (verbose mode)\n" msgstr " -d, --debug デバッグ情報を出力(冗長モード)\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:266 #, c-format msgid "" " -n, --dry-run dry run, show the names of the files that would be\n" " removed\n" msgstr " -n, --dry-run リハーサル、削除対象のファイル名を表示\n" -#: pg_archivecleanup.c:267 +#: pg_archivecleanup.c:268 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_archivecleanup.c:268 +#: pg_archivecleanup.c:269 #, c-format msgid "" " -x, --strip-extension=EXT strip this extension before identifying files for\n" " clean up\n" msgstr " -x, --strip-extension=EXT 削除対象のファイルの確認前にこの拡張子を削除する\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:271 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_archivecleanup.c:271 +#: pg_archivecleanup.c:272 #, c-format msgid "" "\n" -"For use as archive_cleanup_command in postgresql.conf:\n" +"For use as \"archive_cleanup_command\" in postgresql.conf:\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n" "e.g.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" msgstr "" "\n" -"postgresql.confでarchive_cleanup_commandとして使用する場合は以下のようにします:\n" +"postgresql.confで\"archive_cleanup_command\"として使用する場合は以下のようにします:\n" " archive_cleanup_command = 'pg_archivecleanup [オプション]... アーカイブの場所 %%r'\n" "例としては:\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:276 +#: pg_archivecleanup.c:277 #, c-format msgid "" "\n" @@ -163,7 +174,7 @@ msgstr "" "使用例\n" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:280 +#: pg_archivecleanup.c:281 #, c-format msgid "" "\n" @@ -172,22 +183,22 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_archivecleanup.c:281 +#: pg_archivecleanup.c:282 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: pg_archivecleanup.c:353 +#: pg_archivecleanup.c:354 #, c-format msgid "must specify archive location" msgstr "アーカイブの場所を指定してください" -#: pg_archivecleanup.c:365 +#: pg_archivecleanup.c:366 #, c-format msgid "must specify oldest kept WAL file" msgstr "保存する最古のWALファイルを指定してください" -#: pg_archivecleanup.c:372 +#: pg_archivecleanup.c:373 #, c-format msgid "too many command-line arguments" msgstr "コマンドライン引数が多すぎます" diff --git a/src/bin/pg_archivecleanup/po/ka.po b/src/bin/pg_archivecleanup/po/ka.po index 4f4c9f74f0b1a..801657a4b3a3b 100644 --- a/src/bin/pg_archivecleanup/po/ka.po +++ b/src/bin/pg_archivecleanup/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_archivecleanup (PostgreSQL) 17\n" +"Project-Id-Version: pg_archivecleanup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-11 09:52+0000\n" -"PO-Revision-Date: 2024-02-11 14:42+0100\n" +"POT-Creation-Date: 2025-02-27 09:54+0000\n" +"PO-Revision-Date: 2025-02-27 12:57+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,65 +16,76 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "warning: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " -#: pg_archivecleanup.c:68 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + +#: pg_archivecleanup.c:69 #, c-format msgid "archive location \"%s\" does not exist" msgstr "არქივის მდებარეობა არ არსებობს: %s" -#: pg_archivecleanup.c:100 +#: pg_archivecleanup.c:101 #, c-format msgid "could not open archive location \"%s\": %m" msgstr "არქივის მდებარეობის გახსნის შეცდომა\"%s\": %m" -#: pg_archivecleanup.c:164 +#: pg_archivecleanup.c:165 #, c-format msgid "could not remove file \"%s\": %m" msgstr "ფაილის წაშლის შეცდომა \"%s\": %m" -#: pg_archivecleanup.c:169 +#: pg_archivecleanup.c:170 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "არქივის მდებარეობის წაკითხვის შეცდომა\"%s\": %m" -#: pg_archivecleanup.c:172 +#: pg_archivecleanup.c:173 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "არქივის მდებარეობის დაყენების შეცდომა\"%s\": %m" -#: pg_archivecleanup.c:245 +#: pg_archivecleanup.c:246 #, c-format msgid "invalid file name argument" msgstr "ფაილის სახელის არასწორი არგუმენტი" -#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 -#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 +#: pg_archivecleanup.c:247 pg_archivecleanup.c:335 pg_archivecleanup.c:355 +#: pg_archivecleanup.c:367 pg_archivecleanup.c:374 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:260 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -83,17 +94,17 @@ msgstr "" "%s PostgreSQL-ის არქივებიდან ძველი WAL ფაილების წაშლა.\n" "\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:261 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_archivecleanup.c:261 +#: pg_archivecleanup.c:262 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [პარამეტრი]... არქივისმდგომარეობა უძველესიშენახულიWALფაილი\n" -#: pg_archivecleanup.c:262 +#: pg_archivecleanup.c:263 #, c-format msgid "" "\n" @@ -102,17 +113,17 @@ msgstr "" "\n" "პარამეტრები\n" -#: pg_archivecleanup.c:263 +#: pg_archivecleanup.c:264 #, c-format msgid " -b, --clean-backup-history clean up files including backup history files\n" msgstr " -b, --clean-backup-history ფაილების მოსუფთავება მარქაფი ისტორიის ფაილების ჩათვლით\n" -#: pg_archivecleanup.c:264 +#: pg_archivecleanup.c:265 #, c-format msgid " -d, --debug generate debug output (verbose mode)\n" msgstr " -d, --debug გასამართი ინფორმაციის გამოტანა(დამატებითი შეტყობინებების რეჟიმი)\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:266 #, c-format msgid "" " -n, --dry-run dry run, show the names of the files that would be\n" @@ -121,16 +132,13 @@ msgstr "" " -n, --dry-run მშრალი გაშვება. ფაილების წაშლის მაგიერ მხოლოდ მათი \n" " სახელების ჩვენება\n" -#: pg_archivecleanup.c:267 +#: pg_archivecleanup.c:268 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_archivecleanup.c:268 +#: pg_archivecleanup.c:269 #, c-format -#| msgid "" -#| " -L, --use-list=FILENAME use table of contents from this file for\n" -#| " selecting/ordering output\n" msgid "" " -x, --strip-extension=EXT strip this extension before identifying files for\n" " clean up\n" @@ -138,27 +146,27 @@ msgstr "" " -x, --strip-extension=გაფ ამ გაფართოების მოცილებაფაილის მოსასუფთავებლების\n" " სიაში ჩასმამდე\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:271 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_archivecleanup.c:271 +#: pg_archivecleanup.c:272 #, c-format msgid "" "\n" -"For use as archive_cleanup_command in postgresql.conf:\n" +"For use as \"archive_cleanup_command\" in postgresql.conf:\n" " archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %%r'\n" "e.g.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" msgstr "" "\n" -"გამოსაყენებლად, როგორც archive_cleanup_command postgresql.conf-ში: \n" +"გამოსაყენებლად, როგორც \"archive_cleanup_command\" postgresql.conf-ში: \n" " archive_cleanup_command = 'pg_archivecleanup [პარამეტრი]... არქივისმდებარეობა %%r'\n" "მაგ: \n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:276 +#: pg_archivecleanup.c:277 #, c-format msgid "" "\n" @@ -171,7 +179,7 @@ msgstr "" "მაგ:\n" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:280 +#: pg_archivecleanup.c:281 #, c-format msgid "" "\n" @@ -180,22 +188,22 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_archivecleanup.c:281 +#: pg_archivecleanup.c:282 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: pg_archivecleanup.c:353 +#: pg_archivecleanup.c:354 #, c-format msgid "must specify archive location" msgstr "არქივის მდებარეობის მითითება აუცილებელია" -#: pg_archivecleanup.c:365 +#: pg_archivecleanup.c:366 #, c-format msgid "must specify oldest kept WAL file" msgstr "დატოვებული უძველესი WAL ფაილის მითითება აუცილებელია" -#: pg_archivecleanup.c:372 +#: pg_archivecleanup.c:373 #, c-format msgid "too many command-line arguments" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი" diff --git a/src/bin/pg_archivecleanup/po/ko.po b/src/bin/pg_archivecleanup/po/ko.po index 785839ab2fd4a..79fea6d7cf4cd 100644 --- a/src/bin/pg_archivecleanup/po/ko.po +++ b/src/bin/pg_archivecleanup/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_archivecleanup (PostgreSQL) 13\n" +"Project-Id-Version: pg_archivecleanup (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-05 01:16+0000\n" -"PO-Revision-Date: 2020-10-05 17:51+0900\n" +"POT-Creation-Date: 2025-01-17 04:52+0000\n" +"PO-Revision-Date: 2025-01-16 13:10+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,58 +17,74 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:236 -#, c-format -msgid "fatal: " -msgstr "심각: " - -#: ../../../src/common/logging.c:243 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "오류: " -#: ../../../src/common/logging.c:250 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "경고: " -#: pg_archivecleanup.c:66 +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "상세정보: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "힌트: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "\"%s\" 이름의 아카이브 위치가 없음" -#: pg_archivecleanup.c:152 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "\"%s\" 아카이브 위치를 열 수 없음: %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "\"%s\" 파일을 삭제할 수 없음: %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "\"%s\" 아카이브 위치를 읽을 수 없음: %m" -#: pg_archivecleanup.c:163 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "\"%s\" 아카이브 위치를 닫을 수 없음: %m" -#: pg_archivecleanup.c:167 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "\"%s\" 아카이브 위치를 열 수 없음: %m" - -#: pg_archivecleanup.c:240 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "잘못된 파일 이름 매개변수" -#: pg_archivecleanup.c:241 pg_archivecleanup.c:315 pg_archivecleanup.c:336 -#: pg_archivecleanup.c:348 pg_archivecleanup.c:355 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format -msgid "Try \"%s --help\" for more information.\n" -msgstr "보다 자세한 정보는 \"%s --help\" 명령을 참조하세요.\n" +msgid "Try \"%s --help\" for more information." +msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -78,17 +94,17 @@ msgstr "" "WAL 파일을 지웁니다.\n" "\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [옵션]... 아카이브위치 보관할제일오래된파일\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -97,33 +113,45 @@ msgstr "" "\n" "옵션들:\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d 보다 자세한 작업 내용 출력\n" +msgid "" +" -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -b, --clean-backup-history 백업 내역 파일을 포함해서 파일들 지움\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:264 +#, c-format +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug 보다 자세한 작업 내용 출력\n" + +#: pg_archivecleanup.c:265 #, c-format msgid "" -" -n dry run, show the names of the files that would be removed\n" -msgstr " -n 지울 대상만 확인하고 지우지는 않음\n" +" -n, --dry-run dry run, show the names of the files that " +"would be\n" +" removed\n" +msgstr " -n, --dry-run 지울 대상만 확인하고 지우지는 않음\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:267 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version 버전 정보를 보여주고 마침\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_archivecleanup.c:261 +#: pg_archivecleanup.c:268 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x EXT 해당 확장자 파일들을 작업 대상으로 함\n" +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files " +"for\n" +" clean up\n" +msgstr "" +" -x, --strip-extension=EXT 지울 파일을 식별하기 전에 해당 확장 모듈 지움\n" -#: pg_archivecleanup.c:262 +#: pg_archivecleanup.c:270 #, 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_archivecleanup.c:263 +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" @@ -139,7 +167,7 @@ msgstr "" "사용예:\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:268 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" @@ -154,7 +182,7 @@ msgstr "" " pg_archivecleanup /mnt/server/archiverdir " "000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:272 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" @@ -163,22 +191,26 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_archivecleanup.c:273 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_archivecleanup.c:335 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "아카이브 위치는 지정해야 함" -#: pg_archivecleanup.c:347 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "남길 가장 오래된 WAL 파일은 지정해야 함" -#: pg_archivecleanup.c:354 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "너무 많은 명령행 인자를 지정했음" + +#, c-format +#~ msgid " -x EXT clean up files if they have this extension\n" +#~ msgstr " -x EXT 해당 확장자 파일들을 작업 대상으로 함\n" diff --git a/src/bin/pg_archivecleanup/po/ru.po b/src/bin/pg_archivecleanup/po/ru.po index 4b542ce16ce84..e04456d67d365 100644 --- a/src/bin/pg_archivecleanup/po/ru.po +++ b/src/bin/pg_archivecleanup/po/ru.po @@ -1,21 +1,21 @@ # Russian 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. -# Alexander Lakhin , 2017, 2019, 2020, 2022. +# Alexander Lakhin , 2017, 2019, 2020, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pg_archivecleanup (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-27 14:52+0300\n" -"PO-Revision-Date: 2022-09-05 13:34+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-07 06:17+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"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" +"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" #: ../../../src/common/logging.c:276 #, c-format @@ -37,43 +37,54 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " -#: pg_archivecleanup.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "расположение архива \"%s\" не существует" -#: pg_archivecleanup.c:151 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "не удалось открыть расположение архива \"%s\": %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не удалось стереть файл \"%s\": %m" -#: pg_archivecleanup.c:157 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "не удалось прочитать расположение архива \"%s\": %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "не удалось закрыть расположение архива \"%s\": %m" -#: pg_archivecleanup.c:164 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "не удалось открыть расположение архива \"%s\": %m" - -#: pg_archivecleanup.c:237 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "неверный аргумент с именем файла" -#: pg_archivecleanup.c:238 pg_archivecleanup.c:313 pg_archivecleanup.c:333 -#: pg_archivecleanup.c:345 pg_archivecleanup.c:352 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_archivecleanup.c:251 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -82,18 +93,18 @@ msgstr "" "%s удаляет старые файлы WAL из архивов PostgreSQL.\n" "\n" -#: pg_archivecleanup.c:252 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_archivecleanup.c:253 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr "" " %s [ПАРАМЕТР]... РАСПОЛОЖЕНИЕ_АРХИВА СТАРЕЙШИЙ_СОХРАНЯЕМЫЙ_ФАЙЛ_WAL\n" -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -102,42 +113,60 @@ msgstr "" "\n" "Параметры:\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d генерировать подробные сообщения (отладочный режим)\n" +msgid "" +" -b, --clean-backup-history clean up files including backup history files\n" +msgstr "" +" -b, --clean-backup-history удалить также файлы истории копирования\n" + +#: pg_archivecleanup.c:264 +#, c-format +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr "" +" -d, --debug генерировать подробные сообщения (режим " +"отладки)\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:265 #, c-format msgid "" -" -n dry run, show the names of the files that would be removed\n" +" -n, --dry-run dry run, show the names of the files that " +"would be\n" +" removed\n" msgstr "" -" -n холостой запуск, только показать имена файлов, которые " -"будут удалены\n" +" -n, --dry-run холостой запуск, только показать имена " +"файлов,\n" +" которые будут удалены\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:267 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version показать версию и выйти\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" # well-spelled: РСШ -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:268 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x РСШ убрать файлы с заданным расширением\n" +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files " +"for\n" +" clean up\n" +msgstr "" +" -x, --strip-extension=РСШ убрать это расширение прежде чем определять " +"файлы,\n" +" подлежащие удалению\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:270 #, 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_archivecleanup.c:260 +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" "For use as archive_cleanup_command in postgresql.conf:\n" -" archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION %" -"%r'\n" +" archive_cleanup_command = 'pg_archivecleanup [OPTION]... ARCHIVELOCATION " +"%%r'\n" "e.g.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" msgstr "" @@ -148,22 +177,22 @@ msgstr "" "например:\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" "Or for use as a standalone archive cleaner:\n" "e.g.\n" -" pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010." -"00000020.backup\n" +" pg_archivecleanup /mnt/server/archiverdir " +"000000010000000000000010.00000020.backup\n" msgstr "" "\n" "Либо для использования в качестве отдельного средства очистки архива,\n" "например:\n" -" pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010." -"00000020.backup\n" +" pg_archivecleanup /mnt/server/archiverdir " +"000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:269 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" @@ -172,26 +201,31 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_archivecleanup.c:332 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "необходимо задать расположение архива" -#: pg_archivecleanup.c:344 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "необходимо задать имя старейшего сохраняемого файла WAL" -#: pg_archivecleanup.c:351 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "слишком много аргументов командной строки" +# well-spelled: РСШ +#, c-format +#~ msgid " -x EXT clean up files if they have this extension\n" +#~ msgstr " -x РСШ убрать файлы с заданным расширением\n" + #~ msgid "fatal: " #~ msgstr "важно: " diff --git a/src/bin/pg_archivecleanup/po/sv.po b/src/bin/pg_archivecleanup/po/sv.po index 6cebbc1ad1b86..d91831a8ba751 100644 --- a/src/bin/pg_archivecleanup/po/sv.po +++ b/src/bin/pg_archivecleanup/po/sv.po @@ -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, 2021, 2022. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 13:50+0000\n" -"PO-Revision-Date: 2022-04-11 16:06+0200\n" +"POT-Creation-Date: 2024-07-12 13:23+0000\n" +"PO-Revision-Date: 2024-07-12 15:46+0200\n" "Last-Translator: FDennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,63 +17,74 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:268 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "fel: " -#: ../../../src/common/logging.c:275 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "varning: " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "detalj: " -#: ../../../src/common/logging.c:287 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "tips: " -#: pg_archivecleanup.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "arkivplats \"%s\" finns inte" -#: pg_archivecleanup.c:151 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "kunde inte öppna arkivplats \"%s\": %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "kunde inte ta bort fil \"%s\": %m" -#: pg_archivecleanup.c:157 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "kunde inte läsa arkivplats \"%s\": %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "kunde inte stänga arkivplats \"%s\": %m" -#: pg_archivecleanup.c:164 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "kunde inte öppna arkivplats \"%s\": %m" - -#: pg_archivecleanup.c:237 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "ogiltigt filnamnsargument" -#: pg_archivecleanup.c:238 pg_archivecleanup.c:313 pg_archivecleanup.c:333 -#: pg_archivecleanup.c:345 pg_archivecleanup.c:352 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_archivecleanup.c:251 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" @@ -82,17 +93,17 @@ msgstr "" "%s tar bort gamla WAL-filer från PostgreSQLs arkiv.\n" "\n" -#: pg_archivecleanup.c:252 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_archivecleanup.c:253 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [FLAGGA]... ARKIVPLATS ÄLDSTASPARADEWALFIL\n" -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -101,32 +112,45 @@ msgstr "" "\n" "Flaggor:\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d generera debugutskrift (utförligt läge)\n" +msgid " -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -b, --clean-backup-history rensa upp filer, inklusive filer för backuphistorik\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:264 #, c-format -msgid " -n dry run, show the names of the files that would be removed\n" -msgstr " -n gör inga ändringar visa namn på de filer som skulle ha tagits bort\n" +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug generera debugutskrift (utförligt läge)\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:265 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version visa versionsinformation, avsluta sedan\n" +msgid "" +" -n, --dry-run dry run, show the names of the files that would be\n" +" removed\n" +msgstr "" +" -n, --dry-run gör inga ändringar, visa namn på de filer som skulle\n" +" ha tagits bort\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:267 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x SUF städa upp filer om de har detta suffix\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:268 +#, c-format +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files for\n" +" clean up\n" +msgstr "" +" -x, --strip-extension=EXT ta bort denna ändelse innan vi identifierar filer\n" +" som skall tas bort\n" + +#: pg_archivecleanup.c:270 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help visa denna hjälp, avsluta sedan\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" @@ -141,7 +165,7 @@ msgstr "" "t.ex.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" @@ -154,7 +178,7 @@ msgstr "" "t.ex.\n" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:269 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" @@ -163,22 +187,22 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_archivecleanup.c:332 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "måste ange en arkivplats" -#: pg_archivecleanup.c:344 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "måste ange äldsta sparade WAL-filen" -#: pg_archivecleanup.c:351 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "för många kommandoradsargument" diff --git a/src/bin/pg_archivecleanup/po/uk.po b/src/bin/pg_archivecleanup/po/uk.po index 120f799bc7014..767f51cc73f95 100644 --- a/src/bin/pg_archivecleanup/po/uk.po +++ b/src/bin/pg_archivecleanup/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:51+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:23+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_archivecleanup.pot\n" -"X-Crowdin-File-ID: 898\n" +"X-Crowdin-File: /REL_17_STABLE/pg_archivecleanup.pot\n" +"X-Crowdin-File-ID: 1032\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,90 +37,110 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " -#: pg_archivecleanup.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" msgstr "архівного розташування \"%s\" не існує" -#: pg_archivecleanup.c:151 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "не вдалося відкрити архівне розташування \"%s\":%m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "не можливо видалити файл \"%s\": %m" -#: pg_archivecleanup.c:157 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" msgstr "не вдалося прочитати архівне розташування \"%s\":%m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "не вдалося закрити архівне розташування \"%s\":%m" -#: pg_archivecleanup.c:164 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "не вдалося відкрити архівне розташування \"%s\":%m" - -#: pg_archivecleanup.c:237 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "недійсна назва файла з аргументом" -#: pg_archivecleanup.c:238 pg_archivecleanup.c:313 pg_archivecleanup.c:333 -#: pg_archivecleanup.c:345 pg_archivecleanup.c:352 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_archivecleanup.c:251 +#: pg_archivecleanup.c:259 #, c-format msgid "%s removes older WAL files from PostgreSQL archives.\n\n" msgstr "%s видаляє старі WAL-файли з архівів PostgreSQL.\n\n" -#: pg_archivecleanup.c:252 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_archivecleanup.c:253 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" msgstr " %s [OPTION]... РОЗТАШУВАННЯ_АРХІВА НАЙДАВНІШИЙ_ЗБЕРЕЖЕНИЙ_WAL_ФАЙЛ\n" -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:262 #, c-format msgid "\n" "Options:\n" msgstr "\n" "Параметри:\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d генерує налагоджувальні повідомлення (детальний режим)\n" +msgid " -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -b, --clean-backup-history очистити файли, включаючи файли історії резервного копіювання\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:264 #, c-format -msgid " -n dry run, show the names of the files that would be removed\n" -msgstr " -n сухий запуск, показує тільки ті файли, які будуть видалені\n" +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug генерувати налагоджувальний вивід (розгорнутий режим)\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:265 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version показати версію, потім вийти\n" +msgid " -n, --dry-run dry run, show the names of the files that would be\n" +" removed\n" +msgstr " -n, --dry-run сухий запуск, показати назви файлів, які будуть\n" +" вилучені\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:267 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x EXT прибрати файли з цим розширенням\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:268 #, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help показати цю довідку, потім вийти\n" +msgid " -x, --strip-extension=EXT strip this extension before identifying files for\n" +" clean up\n" +msgstr " -x, --strip-extension=EXT вилучати це розширення перед ідентифікацією файлів для\n" +" очищення\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:270 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показати цю довідку, потім вийти\n" + +#: pg_archivecleanup.c:271 #, c-format msgid "\n" "For use as archive_cleanup_command in postgresql.conf:\n" @@ -133,7 +153,7 @@ msgstr "\n" "напр.\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:265 +#: pg_archivecleanup.c:276 #, c-format msgid "\n" "Or for use as a standalone archive cleaner:\n" @@ -144,29 +164,29 @@ msgstr "\n" "наприклад:\n" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:269 +#: pg_archivecleanup.c:280 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_archivecleanup.c:270 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_archivecleanup.c:332 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "необхідно вказати розташування архіва" -#: pg_archivecleanup.c:344 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" msgstr "необхідно вказати найдавніший збережений WAL-файл" -#: pg_archivecleanup.c:351 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "занадто багато аргументів командного рядка" diff --git a/src/bin/pg_archivecleanup/po/zh_CN.po b/src/bin/pg_archivecleanup/po/zh_CN.po index e8c33482e1750..ae2cc68e75c68 100644 --- a/src/bin/pg_archivecleanup/po/zh_CN.po +++ b/src/bin/pg_archivecleanup/po/zh_CN.po @@ -1,92 +1,98 @@ # LANGUAGE message translation file for pg_archivecleanup # Copyright (C) 2019 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_archivecleanup (PostgreSQL) package. -# FIRST AUTHOR , 2019. +# Dianjin Wang , 2024. # msgid "" msgstr "" -"Project-Id-Version: pg_archivecleanup (PostgreSQL) 14\n" +"Project-Id-Version: pg_archivecleanup (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 05:48+0000\n" -"PO-Revision-Date: 2021-08-14 19:40+0800\n" -"Last-Translator: Jie Zhang \n" +"POT-Creation-Date: 2024-06-06 01:23+0000\n" +"PO-Revision-Date: 2024-06-06 16:40+0800\n" +"Last-Translator: Dianjin Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.4.4\n" -#: ../../../src/common/logging.c:259 -#, c-format -msgid "fatal: " -msgstr "致命的: " - -#: ../../../src/common/logging.c:266 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "错误: " -#: ../../../src/common/logging.c:273 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "警告: " -#: pg_archivecleanup.c:66 +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "详细信息: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "提示: " + +#: pg_archivecleanup.c:68 #, c-format msgid "archive location \"%s\" does not exist" -msgstr "存档位置\"%s\"不存在" +msgstr "存档位置 \"%s\" 不存在" -#: pg_archivecleanup.c:152 +#: pg_archivecleanup.c:100 +#, c-format +msgid "could not open archive location \"%s\": %m" +msgstr "无法打开存档位置 \"%s\": %m" + +#: pg_archivecleanup.c:164 #, c-format msgid "could not remove file \"%s\": %m" msgstr "无法删除文件 \"%s\": %m" -#: pg_archivecleanup.c:160 +#: pg_archivecleanup.c:169 #, c-format msgid "could not read archive location \"%s\": %m" -msgstr "无法读取存档位置\"%s\": %m" +msgstr "无法读取存档位置 \"%s\": %m" -#: pg_archivecleanup.c:163 +#: pg_archivecleanup.c:172 #, c-format msgid "could not close archive location \"%s\": %m" msgstr "无法关闭存档位置 \"%s\": %m" -#: pg_archivecleanup.c:167 -#, c-format -msgid "could not open archive location \"%s\": %m" -msgstr "无法打开存档位置\"%s\": %m" - -#: pg_archivecleanup.c:240 +#: pg_archivecleanup.c:245 #, c-format msgid "invalid file name argument" msgstr "文件名参数无效" -#: pg_archivecleanup.c:241 pg_archivecleanup.c:315 pg_archivecleanup.c:336 -#: pg_archivecleanup.c:348 pg_archivecleanup.c:355 +#: pg_archivecleanup.c:246 pg_archivecleanup.c:334 pg_archivecleanup.c:354 +#: pg_archivecleanup.c:366 pg_archivecleanup.c:373 #, c-format -msgid "Try \"%s --help\" for more information.\n" -msgstr "请用 \"%s --help\" 获取更多的信息.\n" +msgid "Try \"%s --help\" for more information." +msgstr "请用 \"%s --help\" 获取更多的信息." -#: pg_archivecleanup.c:254 +#: pg_archivecleanup.c:259 #, c-format msgid "" "%s removes older WAL files from PostgreSQL archives.\n" "\n" msgstr "" -"%s 从PostgreSQL存档中删除旧的WAL文件.\n" +"%s 从 PostgreSQL 存档中删除旧的 WAL 文件.\n" "\n" -#: pg_archivecleanup.c:255 +#: pg_archivecleanup.c:260 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_archivecleanup.c:256 +#: pg_archivecleanup.c:261 #, c-format msgid " %s [OPTION]... ARCHIVELOCATION OLDESTKEPTWALFILE\n" -msgstr " %s [OPTION]... 归档文件位置 最早保存的WAL文件\n" +msgstr " %s [选项]... 归档文件位置 最早保存的WAL文件\n" -#: pg_archivecleanup.c:257 +#: pg_archivecleanup.c:262 #, c-format msgid "" "\n" @@ -95,32 +101,45 @@ msgstr "" "\n" "选项:\n" -#: pg_archivecleanup.c:258 +#: pg_archivecleanup.c:263 #, c-format -msgid " -d generate debug output (verbose mode)\n" -msgstr " -d 生成调试输出(详细模式)\n" +msgid " -b, --clean-backup-history clean up files including backup history files\n" +msgstr " -b, --clean-backup-history 清理包括备份历史文件在内的文件\n" -#: pg_archivecleanup.c:259 +#: pg_archivecleanup.c:264 #, c-format -msgid " -n dry run, show the names of the files that would be removed\n" -msgstr " -n dry运行,显示要删除的文件的名称\n" +msgid " -d, --debug generate debug output (verbose mode)\n" +msgstr " -d, --debug 生成调试输出(详细模式)\n" -#: pg_archivecleanup.c:260 +#: pg_archivecleanup.c:265 #, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version 输出版本信息,然后退出\n" +msgid "" +" -n, --dry-run dry run, show the names of the files that would be\n" +" removed\n" +msgstr "" +" -n, --dry-run 模拟运行, 显示要被删除的文件名称\n" +" \n" -#: pg_archivecleanup.c:261 +#: pg_archivecleanup.c:267 #, c-format -msgid " -x EXT clean up files if they have this extension\n" -msgstr " -x EXT 如果文件具有此扩展名,则清除文件\n" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version 输出版本信息,然后退出\n" -#: pg_archivecleanup.c:262 +#: pg_archivecleanup.c:268 +#, c-format +msgid "" +" -x, --strip-extension=EXT strip this extension before identifying files for\n" +" clean up\n" +msgstr "" +" -x, --strip-extension=EXT 在识别要清理的文件前移除该扩展\n" +" \n" + +#: pg_archivecleanup.c:270 #, 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_archivecleanup.c:263 +#: pg_archivecleanup.c:271 #, c-format msgid "" "\n" @@ -130,12 +149,12 @@ msgid "" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" msgstr "" "\n" -"在postgresql.conf中,archive_cleanup_command的用法 \n" +"在 postgresql.conf 中,archive_cleanup_command 的用法为:\n" " archive_cleanup_command = 'pg_archivecleanup [选项]... 存档位置 %%r'\n" -"例.\n" +"例如:\n" " archive_cleanup_command = 'pg_archivecleanup /mnt/server/archiverdir %%r'\n" -#: pg_archivecleanup.c:268 +#: pg_archivecleanup.c:276 #, c-format msgid "" "\n" @@ -144,36 +163,55 @@ msgid "" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" msgstr "" "\n" -"或者,用作独立存档清理程序:\n" -"例.\n" +"或者,将其用作独立存档清理程序:\n" +"例如:\n" " pg_archivecleanup /mnt/server/archiverdir 000000010000000000000010.00000020.backup\n" -#: pg_archivecleanup.c:272 +#: pg_archivecleanup.c:280 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" -"臭虫报告至<%s>.\n" +"报告缺陷: <%s>.\n" -#: pg_archivecleanup.c:273 +#: pg_archivecleanup.c:281 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 主页: <%s>\n" -#: pg_archivecleanup.c:335 +#: pg_archivecleanup.c:353 #, c-format msgid "must specify archive location" msgstr "必须指定存档位置" -#: pg_archivecleanup.c:347 +#: pg_archivecleanup.c:365 #, c-format msgid "must specify oldest kept WAL file" -msgstr "必须指定最早保存的WAL文件" +msgstr "必须指定最早保存的 WAL 文件" -#: pg_archivecleanup.c:354 +#: pg_archivecleanup.c:372 #, c-format msgid "too many command-line arguments" msgstr "命令行参数太多" +#, c-format +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help 显示帮助信息,然后退出\n" + +#, c-format +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version 输出版本信息,然后退出\n" + +#, c-format +#~ msgid " -x EXT clean up files if they have this extension\n" +#~ msgstr " -x EXT 如果文件具有此扩展名,则清除文件\n" + +#, c-format +#~ msgid "Try \"%s --help\" for more information.\n" +#~ msgstr "请用 \"%s --help\" 获取更多的信息.\n" + +#, c-format +#~ msgid "fatal: " +#~ msgstr "致命的: " diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index 1da4bfc2351e9..eb7354200bcee 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -667,7 +667,8 @@ StartLogStreamer(char *startpos, uint32 timeline, char *sysidentifier, if (temp_replication_slot || create_slot) { if (!CreateReplicationSlot(param->bgconn, replication_slot, NULL, - temp_replication_slot, true, true, false, false)) + temp_replication_slot, true, true, false, + false, false)) exit(1); if (verbose) diff --git a/src/bin/pg_basebackup/pg_createsubscriber.c b/src/bin/pg_basebackup/pg_createsubscriber.c index eed3793c8168b..f65acc7cb1141 100644 --- a/src/bin/pg_basebackup/pg_createsubscriber.c +++ b/src/bin/pg_basebackup/pg_createsubscriber.c @@ -1247,20 +1247,20 @@ setup_recovery(const struct LogicalRepInfo *dbinfo, const char *datadir, const c * targets (name, time, xid, LSN). */ recoveryconfcontents = GenerateRecoveryConfig(conn, NULL, NULL); - appendPQExpBuffer(recoveryconfcontents, "recovery_target = ''\n"); - appendPQExpBuffer(recoveryconfcontents, - "recovery_target_timeline = 'latest'\n"); - appendPQExpBuffer(recoveryconfcontents, - "recovery_target_inclusive = true\n"); - appendPQExpBuffer(recoveryconfcontents, - "recovery_target_action = promote\n"); - appendPQExpBuffer(recoveryconfcontents, "recovery_target_name = ''\n"); - appendPQExpBuffer(recoveryconfcontents, "recovery_target_time = ''\n"); - appendPQExpBuffer(recoveryconfcontents, "recovery_target_xid = ''\n"); + appendPQExpBufferStr(recoveryconfcontents, "recovery_target = ''\n"); + appendPQExpBufferStr(recoveryconfcontents, + "recovery_target_timeline = 'latest'\n"); + appendPQExpBufferStr(recoveryconfcontents, + "recovery_target_inclusive = true\n"); + appendPQExpBufferStr(recoveryconfcontents, + "recovery_target_action = promote\n"); + appendPQExpBufferStr(recoveryconfcontents, "recovery_target_name = ''\n"); + appendPQExpBufferStr(recoveryconfcontents, "recovery_target_time = ''\n"); + appendPQExpBufferStr(recoveryconfcontents, "recovery_target_xid = ''\n"); if (dry_run) { - appendPQExpBuffer(recoveryconfcontents, "# dry run mode"); + appendPQExpBufferStr(recoveryconfcontents, "# dry run mode"); appendPQExpBuffer(recoveryconfcontents, "recovery_target_lsn = '%X/%X'\n", LSN_FORMAT_ARGS((XLogRecPtr) InvalidXLogRecPtr)); @@ -1484,10 +1484,10 @@ start_standby_server(const struct CreateSubscriberOptions *opt, bool restricted_ appendPQExpBuffer(pg_ctl_cmd, "\"%s\" start -D ", pg_ctl_path); appendShellString(pg_ctl_cmd, subscriber_dir); - appendPQExpBuffer(pg_ctl_cmd, " -s -o \"-c sync_replication_slots=off\""); + appendPQExpBufferStr(pg_ctl_cmd, " -s -o \"-c sync_replication_slots=off\""); /* Prevent unintended slot invalidation */ - appendPQExpBuffer(pg_ctl_cmd, " -o \"-c idle_replication_slot_timeout=0\""); + appendPQExpBufferStr(pg_ctl_cmd, " -o \"-c idle_replication_slot_timeout=0\""); if (restricted_access) { @@ -1513,7 +1513,7 @@ start_standby_server(const struct CreateSubscriberOptions *opt, bool restricted_ /* Suppress to start logical replication if requested */ if (restrict_logical_worker) - appendPQExpBuffer(pg_ctl_cmd, " -o \"-c max_logical_replication_workers=0\""); + appendPQExpBufferStr(pg_ctl_cmd, " -o \"-c max_logical_replication_workers=0\""); pg_log_debug("pg_ctl command is: %s", pg_ctl_cmd->data); rc = system(pg_ctl_cmd->data); @@ -1963,8 +1963,8 @@ enable_subscription(PGconn *conn, const struct LogicalRepInfo *dbinfo) } /* - * Fetch a list of all not-template databases from the source server and form - * a list such that they appear as if the user has specified multiple + * Fetch a list of all connectable non-template databases from the source server + * and form a list such that they appear as if the user has specified multiple * --database options, one for each source database. */ static void @@ -2124,10 +2124,7 @@ main(int argc, char **argv) num_dbs++; } else - { - pg_log_error("database \"%s\" specified more than once", optarg); - exit(1); - } + pg_fatal("database \"%s\" specified more than once for -d/--database", optarg); break; case 'D': subscriber_dir = pg_strdup(optarg); @@ -2146,7 +2143,7 @@ main(int argc, char **argv) if (!simple_string_list_member(&opt.objecttypes_to_remove, optarg)) simple_string_list_append(&opt.objecttypes_to_remove, optarg); else - pg_fatal("object type \"%s\" is specified more than once for --remove", optarg); + pg_fatal("object type \"%s\" is specified more than once for -R/--remove", optarg); break; case 's': opt.socket_dir = pg_strdup(optarg); @@ -2174,10 +2171,7 @@ main(int argc, char **argv) num_pubs++; } else - { - pg_log_error("publication \"%s\" specified more than once", optarg); - exit(1); - } + pg_fatal("publication \"%s\" specified more than once for --publication", optarg); break; case 3: if (!simple_string_list_member(&opt.replslot_names, optarg)) @@ -2186,10 +2180,7 @@ main(int argc, char **argv) num_replslots++; } else - { - pg_log_error("replication slot \"%s\" specified more than once", optarg); - exit(1); - } + pg_fatal("replication slot \"%s\" specified more than once for --replication-slot", optarg); break; case 4: if (!simple_string_list_member(&opt.sub_names, optarg)) @@ -2198,10 +2189,7 @@ main(int argc, char **argv) num_subs++; } else - { - pg_log_error("subscription \"%s\" specified more than once", optarg); - exit(1); - } + pg_fatal("subscription \"%s\" specified more than once for --subscription", optarg); break; default: /* getopt_long already emitted a complaint */ @@ -2226,7 +2214,7 @@ main(int argc, char **argv) if (bad_switch) { - pg_log_error("%s cannot be used with --all", bad_switch); + pg_log_error("%s cannot be used with -a/--all", bad_switch); pg_log_error_hint("Try \"%s --help\" for more information.", progname); exit(1); } @@ -2352,7 +2340,7 @@ main(int argc, char **argv) dbinfos.objecttypes_to_remove |= OBJECTTYPE_PUBLICATIONS; else { - pg_log_error("invalid object type \"%s\" specified for --remove", cell->val); + pg_log_error("invalid object type \"%s\" specified for -R/--remove", cell->val); pg_log_error_hint("The valid option is: \"publications\""); exit(1); } diff --git a/src/bin/pg_basebackup/pg_receivewal.c b/src/bin/pg_basebackup/pg_receivewal.c index de3584018b097..e816cf58101fb 100644 --- a/src/bin/pg_basebackup/pg_receivewal.c +++ b/src/bin/pg_basebackup/pg_receivewal.c @@ -889,7 +889,7 @@ main(int argc, char **argv) pg_log_info("creating replication slot \"%s\"", replication_slot); if (!CreateReplicationSlot(conn, replication_slot, NULL, false, true, false, - slot_exists_ok, false)) + slot_exists_ok, false, false)) exit(1); exit(0); } diff --git a/src/bin/pg_basebackup/pg_recvlogical.c b/src/bin/pg_basebackup/pg_recvlogical.c index e6158251ec181..e6810efe5f0d7 100644 --- a/src/bin/pg_basebackup/pg_recvlogical.c +++ b/src/bin/pg_basebackup/pg_recvlogical.c @@ -42,6 +42,7 @@ typedef enum static char *outfile = NULL; static int verbose = 0; static bool two_phase = false; +static bool failover = false; static int noloop = 0; static int standby_message_timeout = 10 * 1000; /* 10 sec = default */ static int fsync_interval = 10 * 1000; /* 10 sec = default */ @@ -89,6 +90,8 @@ usage(void) printf(_(" --start start streaming in a replication slot (for the slot's name see --slot)\n")); printf(_("\nOptions:\n")); printf(_(" -E, --endpos=LSN exit after receiving the specified LSN\n")); + printf(_(" --failover enable replication slot synchronization to standby servers when\n" + " creating a slot\n")); printf(_(" -f, --file=FILE receive log into this file, - for stdout\n")); printf(_(" -F --fsync-interval=SECS\n" " time between fsyncs to the output file (default: %d)\n"), (fsync_interval / 1000)); @@ -695,6 +698,7 @@ main(int argc, char **argv) {"file", required_argument, NULL, 'f'}, {"fsync-interval", required_argument, NULL, 'F'}, {"no-loop", no_argument, NULL, 'n'}, + {"failover", no_argument, NULL, 5}, {"verbose", no_argument, NULL, 'v'}, {"two-phase", no_argument, NULL, 't'}, {"version", no_argument, NULL, 'V'}, @@ -770,6 +774,9 @@ main(int argc, char **argv) case 'v': verbose++; break; + case 5: + failover = true; + break; /* connection options */ case 'd': dbname = pg_strdup(optarg); @@ -917,11 +924,21 @@ main(int argc, char **argv) exit(1); } - if (two_phase && !do_create_slot) + if (!do_create_slot) { - pg_log_error("--two-phase may only be specified with --create-slot"); - pg_log_error_hint("Try \"%s --help\" for more information.", progname); - exit(1); + if (two_phase) + { + pg_log_error("--two-phase may only be specified with --create-slot"); + pg_log_error_hint("Try \"%s --help\" for more information.", progname); + exit(1); + } + + if (failover) + { + pg_log_error("--failover may only be specified with --create-slot"); + pg_log_error_hint("Try \"%s --help\" for more information.", progname); + exit(1); + } } /* @@ -984,7 +1001,8 @@ main(int argc, char **argv) pg_log_info("creating replication slot \"%s\"", replication_slot); if (!CreateReplicationSlot(conn, replication_slot, plugin, false, - false, false, slot_exists_ok, two_phase)) + false, false, slot_exists_ok, two_phase, + failover)) exit(1); startpos = InvalidXLogRecPtr; } diff --git a/src/bin/pg_basebackup/po/de.po b/src/bin/pg_basebackup/po/de.po index f501eaddef02b..0afd145285c35 100644 --- a/src/bin/pg_basebackup/po/de.po +++ b/src/bin/pg_basebackup/po/de.po @@ -1,15 +1,15 @@ # German message translation file for pg_basebackup -# Copyright (C) 2011 - 2024 PostgreSQL Global Development Group +# Copyright (C) 2011 - 2025 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 16:50+0000\n" -"PO-Revision-Date: 2024-06-22 10:55+0200\n" +"POT-Creation-Date: 2025-04-14 00:20+0000\n" +"PO-Revision-Date: 2025-04-14 09:52+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -18,30 +18,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " #: ../../common/compression.c:132 ../../common/compression.c:141 -#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 -#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 -#: bbstreamer_zstd.c:284 +#: ../../common/compression.c:150 ../../fe_utils/astreamer_gzip.c:140 +#: ../../fe_utils/astreamer_gzip.c:273 ../../fe_utils/astreamer_lz4.c:102 +#: ../../fe_utils/astreamer_lz4.c:300 ../../fe_utils/astreamer_zstd.c:133 +#: ../../fe_utils/astreamer_zstd.c:288 #, c-format msgid "this build does not support compression with %s" msgstr "diese Installation unterstützt keine Komprimierung mit %s" @@ -95,7 +96,7 @@ msgstr "Komprimierungsalgorithmus »%s« unterstützt keinen Long-Distance-Modus msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1874 #: pg_receivewal.c:402 #, c-format msgid "could not read file \"%s\": %m" @@ -107,7 +108,7 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#: ../../fe_utils/astreamer_file.c:141 pg_recvlogical.c:652 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" @@ -130,10 +131,10 @@ msgstr "" "diesem Fall wären die Ergebnisse unten falsch und die PostgreSQL-Installation\n" "wäre inkompatibel mit diesem Datenverzeichnis." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: pg_basebackup.c:1846 pg_receivewal.c:386 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: pg_basebackup.c:1847 pg_receivewal.c:386 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -143,8 +144,8 @@ msgstr "konnte Datei »%s« nicht öffnen: %m" msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 pg_recvlogical.c:205 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" @@ -160,36 +161,36 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: pg_receivewal.c:319 pg_recvlogical.c:352 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: pg_receivewal.c:319 pg_recvlogical.c:353 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 +#: ../../common/file_utils.c:520 pg_basebackup.c:2345 walmethods.c:462 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -224,191 +225,200 @@ msgstr "konnte Prozess nicht mit beschränktem Token neu starten: Fehlercode %lu msgid "could not get exit code from subprocess: error code %lu" msgstr "konnte Statuscode des Subprozesses nicht ermitteln: Fehlercode %lu" -#: ../../fe_utils/option_utils.c:69 -#, c-format -msgid "invalid value \"%s\" for option %s" -msgstr "ungültiger Wert »%s« für Option %s" - -#: ../../fe_utils/option_utils.c:76 -#, c-format -msgid "%s must be in range %d..%d" -msgstr "%s muss im Bereich %d..%d sein" - -#: ../../fe_utils/option_utils.c:106 -#, c-format -msgid "unrecognized sync method: %s" -msgstr "unbekannte Sync-Methode: %s" - -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 -#, c-format -msgid "out of memory" -msgstr "Speicher aufgebraucht" - -#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "konnte nicht in Datei »%s« schreiben: %m" - -#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 -#: pg_basebackup.c:1497 pg_basebackup.c:1706 +#: ../../fe_utils/astreamer_file.c:96 ../../fe_utils/astreamer_file.c:364 +#: ../../fe_utils/recovery_gen.c:153 pg_basebackup.c:1498 pg_basebackup.c:1707 #, c-format msgid "could not create file \"%s\": %m" msgstr "konnte Datei »%s« nicht erstellen: %m" -#: ../../fe_utils/string_utils.c:434 -#, c-format -msgid "shell command argument contains a newline or carriage return: \"%s\"\n" -msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" - -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/astreamer_file.c:124 ../../fe_utils/astreamer_file.c:261 +#: ../../fe_utils/recovery_gen.c:144 pg_basebackup.c:1434 pg_basebackup.c:1728 #, c-format -msgid "database name contains a newline or carriage return: \"%s\"\n" -msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" +msgid "could not write to file \"%s\": %m" +msgstr "konnte nicht in Datei »%s« schreiben: %m" -#: bbstreamer_file.c:275 +#: ../../fe_utils/astreamer_file.c:278 #, c-format msgid "unexpected state while extracting archive" msgstr "unerwarteter Zustand beim Extrahieren des Archivs" -#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 -#: pg_basebackup.c:757 +#: ../../fe_utils/astreamer_file.c:324 pg_basebackup.c:699 pg_basebackup.c:713 +#: pg_basebackup.c:758 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: bbstreamer_file.c:326 +#: ../../fe_utils/astreamer_file.c:329 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "konnte Zugriffsrechte für Verzeichnis »%s« nicht setzen: %m" -#: bbstreamer_file.c:345 +#: ../../fe_utils/astreamer_file.c:348 #, 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" -#: bbstreamer_file.c:365 +#: ../../fe_utils/astreamer_file.c:368 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "konnte Zugriffsrechte von Datei »%s« nicht setzen: %m" -#: bbstreamer_gzip.c:95 +#: ../../fe_utils/astreamer_gzip.c:115 #, c-format msgid "could not create compressed file \"%s\": %m" msgstr "konnte komprimierte Datei »%s« nicht erzeugen: %m" -#: bbstreamer_gzip.c:103 +#: ../../fe_utils/astreamer_gzip.c:127 #, c-format msgid "could not duplicate stdout: %m" msgstr "konnte Standardausgabe nicht duplizieren: %m" -#: bbstreamer_gzip.c:107 +#: ../../fe_utils/astreamer_gzip.c:131 #, c-format msgid "could not open output file: %m" msgstr "konnte Ausgabedatei nicht öffnen: %m" -#: bbstreamer_gzip.c:111 +#: ../../fe_utils/astreamer_gzip.c:135 #, c-format msgid "could not set compression level %d: %s" msgstr "konnte Komprimierungsniveau %d nicht setzen: %s" -#: bbstreamer_gzip.c:143 +#: ../../fe_utils/astreamer_gzip.c:167 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "konnte nicht in komprimierte Datei »%s« schreiben: %s" -#: bbstreamer_gzip.c:167 +#: ../../fe_utils/astreamer_gzip.c:191 #, c-format msgid "could not close compressed file \"%s\": %m" msgstr "konnte komprimierte Datei »%s« nicht schließen: %m" -#: bbstreamer_gzip.c:245 walmethods.c:880 +#: ../../fe_utils/astreamer_gzip.c:269 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "konnte Komprimierungsbibliothek nicht initialisieren" -#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 +#: ../../fe_utils/astreamer_gzip.c:320 ../../fe_utils/astreamer_lz4.c:356 +#: ../../fe_utils/astreamer_zstd.c:333 #, c-format msgid "could not decompress data: %s" msgstr "konnte Daten nicht dekomprimieren: %s" -#: bbstreamer_inject.c:189 -#, c-format -msgid "unexpected state while injecting recovery settings" -msgstr "unerwarteter Zustand beim Einfügen der Recovery-Einstellungen" - -#: bbstreamer_lz4.c:95 +#: ../../fe_utils/astreamer_lz4.c:97 #, c-format msgid "could not create lz4 compression context: %s" msgstr "konnte lz4-Komprimierungskontext nicht erzeugen: %s" -#: bbstreamer_lz4.c:140 +#: ../../fe_utils/astreamer_lz4.c:142 #, c-format msgid "could not write lz4 header: %s" msgstr "konnte lz4-Header nicht schreiben: %s" -#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 +#: ../../fe_utils/astreamer_lz4.c:191 ../../fe_utils/astreamer_zstd.c:185 +#: ../../fe_utils/astreamer_zstd.c:227 #, c-format msgid "could not compress data: %s" msgstr "konnte Daten nicht komprimieren: %s" -#: bbstreamer_lz4.c:241 +#: ../../fe_utils/astreamer_lz4.c:243 #, c-format msgid "could not end lz4 compression: %s" msgstr "konnte lz4-Komprimierung nicht beenden: %s" -#: bbstreamer_lz4.c:293 +#: ../../fe_utils/astreamer_lz4.c:295 #, c-format msgid "could not initialize compression library: %s" msgstr "konnte Komprimierungsbibliothek nicht initialisieren: %s" -#: bbstreamer_tar.c:244 +#: ../../fe_utils/astreamer_tar.c:244 #, c-format msgid "tar file trailer exceeds 2 blocks" msgstr "Tar-Datei-Trailer überschreitet 2 Blöcke" -#: bbstreamer_tar.c:249 +#: ../../fe_utils/astreamer_tar.c:249 #, c-format msgid "unexpected state while parsing tar archive" msgstr "unerwarteter Zustand beim Parsen des Tar-Archivs" -#: bbstreamer_tar.c:292 +#: ../../fe_utils/astreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "Tar-Mitglied hat leeren Namen" -#: bbstreamer_tar.c:326 +#: ../../fe_utils/astreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "COPY-Strom endete vor dem Ende der letzten Datei" -#: bbstreamer_zstd.c:85 +#: ../../fe_utils/astreamer_zstd.c:89 #, c-format msgid "could not create zstd compression context" msgstr "konnte zstd-Komprimierungskontext nicht erzeugen" -#: bbstreamer_zstd.c:91 +#: ../../fe_utils/astreamer_zstd.c:95 #, c-format msgid "could not set zstd compression level to %d: %s" msgstr "konnte zstd-Komprimierungsniveau nicht auf %d setzen: %s" -#: bbstreamer_zstd.c:105 +#: ../../fe_utils/astreamer_zstd.c:109 #, c-format msgid "could not set compression worker count to %d: %s" msgstr "konnte Komprimierungs-Worker-Anzahl nicht auf %d setzen: %s" -#: bbstreamer_zstd.c:116 +#: ../../fe_utils/astreamer_zstd.c:120 #, c-format msgid "could not enable long-distance mode: %s" msgstr "konnte Long-Distance-Modus nicht einschalten: %s" -#: bbstreamer_zstd.c:275 +#: ../../fe_utils/astreamer_zstd.c:279 #, c-format msgid "could not create zstd decompression context" msgstr "konnte zstd-Dekomprimierungskontext nicht erzeugen" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "ungültiger Wert »%s« für Option %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s muss im Bereich %d..%d sein" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "unbekannte Sync-Methode: %s" + +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 +#: pg_basebackup.c:1637 +#, c-format +msgid "out of memory" +msgstr "Speicher aufgebraucht" + +#: ../../fe_utils/recovery_gen.c:215 pg_basebackup.c:2249 streamutil.c:89 +#: streamutil.c:204 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" + +#: astreamer_inject.c:189 +#, c-format +msgid "unexpected state while injecting recovery settings" +msgstr "unerwarteter Zustand beim Einfügen der Recovery-Einstellungen" + #: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" @@ -498,14 +508,14 @@ msgstr "" "%s erzeugt eine Basissicherung eines laufenden PostgreSQL-Servers.\n" "\n" -#: pg_basebackup.c:394 pg_createsubscriber.c:216 pg_receivewal.c:79 -#: pg_recvlogical.c:86 +#: pg_basebackup.c:394 pg_createsubscriber.c:246 pg_receivewal.c:79 +#: pg_recvlogical.c:85 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_basebackup.c:395 pg_createsubscriber.c:217 pg_receivewal.c:80 -#: pg_recvlogical.c:87 +#: pg_basebackup.c:395 pg_createsubscriber.c:247 pg_receivewal.c:80 +#: pg_recvlogical.c:86 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" @@ -658,12 +668,12 @@ msgstr " -P, --progress Fortschrittsinformationen zeigen\n" msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=SLOTNAME zu verwendender Replikations-Slot\n" -#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:109 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:110 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" @@ -720,12 +730,12 @@ msgstr "" " Methode zum Synchronisieren von Dateien auf Festplatte\n" " setzen\n" -#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:111 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:112 #, c-format msgid "" "\n" @@ -739,12 +749,12 @@ msgstr "" msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=VERBDG Verbindungsparameter\n" -#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:114 #, 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:442 pg_receivewal.c:99 pg_recvlogical.c:114 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:115 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT Portnummer des Datenbankservers\n" @@ -758,23 +768,23 @@ msgstr "" " -s, --status-interval=INTERVALL\n" " Zeit zwischen an Server gesendeten Statuspaketen (in Sekunden)\n" -#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:116 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:117 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:118 #, 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:448 pg_createsubscriber.c:235 pg_receivewal.c:106 -#: pg_recvlogical.c:118 +#: pg_basebackup.c:448 pg_createsubscriber.c:270 pg_receivewal.c:106 +#: pg_recvlogical.c:119 #, c-format msgid "" "\n" @@ -783,8 +793,8 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_basebackup.c:449 pg_createsubscriber.c:236 pg_receivewal.c:107 -#: pg_recvlogical.c:119 +#: pg_basebackup.c:449 pg_createsubscriber.c:271 pg_receivewal.c:107 +#: pg_recvlogical.c:120 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" @@ -794,8 +804,8 @@ msgstr "%s Homepage: <%s>\n" msgid "could not read from ready pipe: %m" msgstr "konnte nicht aus bereiter Pipe lesen: %m" -#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 -#: streamutil.c:518 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2259 +#: streamutil.c:450 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "konnte Write-Ahead-Log-Position »%s« nicht interpretieren" @@ -810,521 +820,517 @@ msgstr "konnte WAL-Dateien nicht zu Ende schreiben: %m" msgid "could not create pipe for background process: %m" msgstr "konnte Pipe für Hintergrundprozess nicht erzeugen: %m" -#: pg_basebackup.c:676 +#: pg_basebackup.c:677 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "temporärer Replikations-Slot »%s« wurde erzeugt" -#: pg_basebackup.c:679 +#: pg_basebackup.c:680 #, c-format msgid "created replication slot \"%s\"" msgstr "Replikations-Slot »%s« wurde erzeugt" -#: pg_basebackup.c:728 +#: pg_basebackup.c:729 #, c-format msgid "could not create background process: %m" msgstr "konnte Hintergrundprozess nicht erzeugen: %m" -#: pg_basebackup.c:737 +#: pg_basebackup.c:738 #, c-format msgid "could not create background thread: %m" msgstr "konnte Hintergrund-Thread nicht erzeugen: %m" -#: pg_basebackup.c:776 +#: pg_basebackup.c:777 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "Verzeichnis »%s« existiert aber ist nicht leer" -#: pg_basebackup.c:782 pg_createsubscriber.c:378 +#: pg_basebackup.c:783 pg_createsubscriber.c:420 #, c-format msgid "could not access directory \"%s\": %m" msgstr "konnte nicht auf Verzeichnis »%s« zugreifen: %m" -#: pg_basebackup.c:858 +#: pg_basebackup.c:859 #, 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:870 +#: pg_basebackup.c:871 #, 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:886 +#: pg_basebackup.c:887 #, 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:910 +#: pg_basebackup.c:911 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "Transferrate »%s« ist kein gültiger Wert" -#: pg_basebackup.c:912 +#: pg_basebackup.c:913 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "ungültige Transferrate »%s«: %m" -#: pg_basebackup.c:919 +#: pg_basebackup.c:920 #, c-format msgid "transfer rate must be greater than zero" msgstr "Transferrate muss größer als null sein" -#: pg_basebackup.c:949 +#: pg_basebackup.c:950 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "ungültige Einheit für --max-rate: »%s«" -#: pg_basebackup.c:953 +#: pg_basebackup.c:954 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "Transferrate »%s« überschreitet Bereich für ganze Zahlen" -#: pg_basebackup.c:960 +#: pg_basebackup.c:961 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "Transferrate »%s« ist außerhalb des gültigen Bereichs" -#: pg_basebackup.c:1022 +#: pg_basebackup.c:1023 #, c-format msgid "could not get COPY data stream: %s" msgstr "konnte COPY-Datenstrom nicht empfangen: %s" -#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 -#: receivelog.c:973 +#: pg_basebackup.c:1040 pg_recvlogical.c:450 pg_recvlogical.c:626 +#: receivelog.c:980 #, c-format msgid "could not read COPY data: %s" msgstr "konnte COPY-Daten nicht lesen: %s" -#: pg_basebackup.c:1043 +#: pg_basebackup.c:1044 #, c-format msgid "background process terminated unexpectedly" msgstr "Hintergrundprozess beendete unerwartet" -#: pg_basebackup.c:1114 +#: pg_basebackup.c:1115 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "Manifest kann nicht in eine komprimierte Tar-Datei eingefügt werden" -#: pg_basebackup.c:1115 +#: pg_basebackup.c:1116 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "Verwenden Sie clientseitige Komprimierung, senden Sie die Ausgabe in ein Verzeichnis statt auf die Standardausgabe, oder verwenden Sie %s." -#: pg_basebackup.c:1131 +#: pg_basebackup.c:1132 #, c-format msgid "cannot parse archive \"%s\"" msgstr "kann Archiv »%s« nicht parsen" -#: pg_basebackup.c:1132 +#: pg_basebackup.c:1133 #, c-format msgid "Only tar archives can be parsed." msgstr "Nur Tar-Archive können geparst werden." -#: pg_basebackup.c:1134 +#: pg_basebackup.c:1135 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Format »plain« benötigt pg_basebackup, um das Archiv zu parsen." -#: pg_basebackup.c:1136 +#: pg_basebackup.c:1137 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "Wenn - als Ausgabeverzeichnis verwendet wird, wird pg_basebackup benötigt, um das Archiv zu parsen." -#: pg_basebackup.c:1138 +#: pg_basebackup.c:1139 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "Die Option -R benötigt pg_basebackup, um das Archiv zu parsen." -#: pg_basebackup.c:1357 +#: pg_basebackup.c:1358 #, c-format msgid "archives must precede manifest" msgstr "Archive müssen vor dem Manifest kommen" -#: pg_basebackup.c:1372 +#: pg_basebackup.c:1373 #, c-format msgid "invalid archive name: \"%s\"" msgstr "ungültiger Archivname: »%s«" -#: pg_basebackup.c:1444 +#: pg_basebackup.c:1445 #, c-format msgid "unexpected payload data" msgstr "unerwartete Payload-Daten" -#: pg_basebackup.c:1587 +#: pg_basebackup.c:1588 #, c-format msgid "empty COPY message" msgstr "leere COPY-Nachricht" -#: pg_basebackup.c:1589 +#: pg_basebackup.c:1590 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "fehlerhafte COPY-Nachricht vom Typ %d, Länge %zu" -#: pg_basebackup.c:1789 +#: pg_basebackup.c:1790 #, c-format msgid "incompatible server version %s" msgstr "inkompatible Serverversion %s" -#: pg_basebackup.c:1805 +#: pg_basebackup.c:1806 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "Verwenden Sie -X none oder -X fetch, um Log-Streaming abzuschalten." -#: pg_basebackup.c:1841 +#: pg_basebackup.c:1842 #, c-format msgid "server does not support incremental backup" msgstr "Server unterstützt kein inkrementelles Backup" -#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 -#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 -#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#: pg_basebackup.c:1851 pg_basebackup.c:2009 pg_recvlogical.c:273 +#: receivelog.c:542 receivelog.c:581 streamutil.c:296 streamutil.c:370 +#: streamutil.c:422 streamutil.c:510 streamutil.c:667 streamutil.c:712 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "konnte Replikationsbefehl »%s« nicht senden: %s" -#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#: pg_basebackup.c:1857 pg_basebackup.c:1884 #, c-format msgid "could not upload manifest: %s" msgstr "konnte Manifest nicht hochladen: %s" -#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#: pg_basebackup.c:1860 pg_basebackup.c:1887 #, c-format msgid "could not upload manifest: unexpected status %s" msgstr "konnte Manifest nicht hochladen: unerwarteter Status %s" -#: pg_basebackup.c:1867 +#: pg_basebackup.c:1868 #, c-format msgid "could not send COPY data: %s" msgstr "konnte COPY-Daten nicht senden: %s" -#: pg_basebackup.c:1877 +#: pg_basebackup.c:1878 #, c-format msgid "could not send end-of-COPY: %s" msgstr "konnte End-of-COPY nicht senden: %s" -#: pg_basebackup.c:1892 +#: pg_basebackup.c:1893 #, c-format msgid "unexpected extra result while sending manifest" msgstr "unerwartetes zusätzliches Ergebnis beim Senden des Manifests" -#: pg_basebackup.c:1950 +#: pg_basebackup.c:1951 #, c-format msgid "backup targets are not supported by this server version" msgstr "Backup-Ziele werden von dieser Serverversion nicht unterstützt" -#: pg_basebackup.c:1953 +#: pg_basebackup.c:1954 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "Recovery-Konfiguration kann nicht geschrieben werden, wenn ein Backup-Ziel verwendet wird" -#: pg_basebackup.c:1980 +#: pg_basebackup.c:1981 #, c-format msgid "server does not support server-side compression" msgstr "Server unterstützt keine serverseitige Komprimierung" -#: pg_basebackup.c:1990 +#: pg_basebackup.c:1991 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "Basissicherung eingeleitet, warte auf Abschluss des Checkpoints" -#: pg_basebackup.c:1994 +#: pg_basebackup.c:1995 #, c-format msgid "waiting for checkpoint" msgstr "Warten auf Checkpoint" -#: pg_basebackup.c:2016 +#: pg_basebackup.c:2017 #, c-format msgid "could not initiate base backup: %s" msgstr "konnte Basissicherung nicht starten: %s" -#: pg_basebackup.c:2019 +#: pg_basebackup.c:2020 #, 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:2025 +#: pg_basebackup.c:2026 #, c-format msgid "checkpoint completed" msgstr "Checkpoint abgeschlossen" -#: pg_basebackup.c:2039 +#: pg_basebackup.c:2040 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "Write-Ahead-Log-Startpunkt: %s auf Zeitleiste %u" -#: pg_basebackup.c:2047 +#: pg_basebackup.c:2048 #, c-format msgid "could not get backup header: %s" msgstr "konnte Kopf der Sicherung nicht empfangen: %s" -#: pg_basebackup.c:2050 +#: pg_basebackup.c:2051 #, c-format msgid "no data returned from server" msgstr "keine Daten vom Server zurückgegeben" -#: pg_basebackup.c:2093 +#: pg_basebackup.c:2094 #, 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:2106 +#: pg_basebackup.c:2107 #, c-format msgid "starting background WAL receiver" msgstr "Hintergrund-WAL-Receiver wird gestartet" -#: pg_basebackup.c:2189 +#: pg_basebackup.c:2190 #, c-format msgid "backup failed: %s" msgstr "Backup fehlgeschlagen: %s" -#: pg_basebackup.c:2192 +#: pg_basebackup.c:2193 #, 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:2195 +#: pg_basebackup.c:2196 #, c-format msgid "write-ahead log end point: %s" msgstr "Write-Ahead-Log-Endposition: %s" -#: pg_basebackup.c:2206 +#: pg_basebackup.c:2207 #, c-format msgid "checksum error occurred" msgstr "ein Prüfsummenfehler ist aufgetreten" -#: pg_basebackup.c:2211 +#: pg_basebackup.c:2212 #, c-format msgid "final receive failed: %s" msgstr "letztes Empfangen fehlgeschlagen: %s" -#: pg_basebackup.c:2235 +#: pg_basebackup.c:2236 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "warte bis Hintergrundprozess Streaming beendet hat ..." -#: pg_basebackup.c:2239 +#: pg_basebackup.c:2240 #, c-format msgid "could not send command to background pipe: %m" msgstr "konnte Befehl nicht an Hintergrund-Pipe senden: %m" -#: pg_basebackup.c:2244 +#: pg_basebackup.c:2245 #, c-format msgid "could not wait for child process: %m" msgstr "konnte nicht auf Kindprozess warten: %m" -#: pg_basebackup.c:2246 +#: pg_basebackup.c:2247 #, c-format msgid "child %d died, expected %d" msgstr "Kindprozess %d endete, aber %d wurde erwartet" -#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 -#, c-format -msgid "%s" -msgstr "%s" - -#: pg_basebackup.c:2268 +#: pg_basebackup.c:2269 #, c-format msgid "could not wait for child thread: %m" msgstr "konnte nicht auf Kind-Thread warten: %m" -#: pg_basebackup.c:2273 +#: pg_basebackup.c:2274 #, c-format msgid "could not get child thread exit status: %m" msgstr "konnte Statuscode des Kind-Threads nicht ermitteln: %m" -#: pg_basebackup.c:2276 +#: pg_basebackup.c:2277 #, c-format msgid "child thread exited with error %u" msgstr "Kind-Thread hat mit Fehler %u beendet" -#: pg_basebackup.c:2305 +#: pg_basebackup.c:2306 #, c-format msgid "syncing data to disk ..." msgstr "synchronisiere Daten auf Festplatte ..." -#: pg_basebackup.c:2330 +#: pg_basebackup.c:2331 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "umbenennen von backup_manifest.tmp nach backup_manifest" -#: pg_basebackup.c:2350 +#: pg_basebackup.c:2351 #, c-format msgid "base backup completed" msgstr "Basissicherung abgeschlossen" -#: pg_basebackup.c:2436 +#: pg_basebackup.c:2437 #, 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:2454 +#: pg_basebackup.c:2455 #, 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:2535 +#: pg_basebackup.c:2536 #, 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:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 -#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 -#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 -#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 -#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 -#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 -#: pg_basebackup.c:2803 pg_createsubscriber.c:1907 pg_createsubscriber.c:1917 -#: pg_createsubscriber.c:1925 pg_createsubscriber.c:1953 -#: pg_createsubscriber.c:1985 pg_receivewal.c:748 pg_receivewal.c:760 -#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 -#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 -#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 -#: pg_recvlogical.c:917 pg_recvlogical.c:924 +#: pg_basebackup.c:2575 pg_basebackup.c:2587 pg_basebackup.c:2609 +#: pg_basebackup.c:2621 pg_basebackup.c:2627 pg_basebackup.c:2679 +#: pg_basebackup.c:2690 pg_basebackup.c:2700 pg_basebackup.c:2706 +#: pg_basebackup.c:2713 pg_basebackup.c:2725 pg_basebackup.c:2737 +#: pg_basebackup.c:2745 pg_basebackup.c:2758 pg_basebackup.c:2764 +#: pg_basebackup.c:2773 pg_basebackup.c:2785 pg_basebackup.c:2796 +#: pg_basebackup.c:2804 pg_createsubscriber.c:2196 pg_createsubscriber.c:2218 +#: pg_createsubscriber.c:2228 pg_createsubscriber.c:2236 +#: pg_createsubscriber.c:2264 pg_createsubscriber.c:2307 pg_receivewal.c:748 +#: pg_receivewal.c:760 pg_receivewal.c:767 pg_receivewal.c:776 +#: pg_receivewal.c:783 pg_receivewal.c:793 pg_recvlogical.c:859 +#: pg_recvlogical.c:871 pg_recvlogical.c:881 pg_recvlogical.c:888 +#: pg_recvlogical.c:895 pg_recvlogical.c:902 pg_recvlogical.c:909 +#: pg_recvlogical.c:916 pg_recvlogical.c:923 pg_recvlogical.c:932 +#: pg_recvlogical.c:939 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_basebackup.c:2584 pg_createsubscriber.c:1915 pg_receivewal.c:758 -#: pg_recvlogical.c:863 +#: pg_basebackup.c:2585 pg_createsubscriber.c:2226 pg_receivewal.c:758 +#: pg_recvlogical.c:869 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_basebackup.c:2607 +#: pg_basebackup.c:2608 #, c-format msgid "cannot specify both format and backup target" msgstr "Format und Backup-Ziel können nicht beide angegeben werden" -#: pg_basebackup.c:2619 +#: pg_basebackup.c:2620 #, c-format msgid "must specify output directory or backup target" msgstr "Ausgabeverzeichnis oder Backup-Ziel muss angegeben werden" -#: pg_basebackup.c:2625 +#: pg_basebackup.c:2626 #, c-format msgid "cannot specify both output directory and backup target" msgstr "Ausgabeverzeichnis und Backup-Ziel können nicht beide angegeben werden" -#: pg_basebackup.c:2655 pg_receivewal.c:802 +#: pg_basebackup.c:2656 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "unbekannter Komprimierungsalgorithmus: »%s«" -#: pg_basebackup.c:2661 pg_receivewal.c:809 +#: pg_basebackup.c:2662 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "ungültige Komprimierungsangabe: %s" -#: pg_basebackup.c:2677 +#: pg_basebackup.c:2678 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "clientseitige Komprimierung ist nicht möglich, wenn ein Backup-Ziel angegeben ist" -#: pg_basebackup.c:2688 +#: pg_basebackup.c:2689 #, c-format msgid "only tar mode backups can be compressed" msgstr "nur Sicherungen im Tar-Modus können komprimiert werden" -#: pg_basebackup.c:2698 +#: pg_basebackup.c:2699 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "WAL-Streaming ist nicht möglich, wenn ein Backup-Ziel angegeben ist" -#: pg_basebackup.c:2704 +#: pg_basebackup.c:2705 #, 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:2711 +#: pg_basebackup.c:2712 #, 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:2723 +#: pg_basebackup.c:2724 #, 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:2734 pg_receivewal.c:774 +#: pg_basebackup.c:2735 pg_receivewal.c:774 #, 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:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 -#: pg_basebackup.c:2801 +#: pg_basebackup.c:2743 pg_basebackup.c:2783 pg_basebackup.c:2794 +#: pg_basebackup.c:2802 #, c-format msgid "%s and %s are incompatible options" msgstr "%s und %s sind inkompatible Optionen" -#: pg_basebackup.c:2756 +#: pg_basebackup.c:2757 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "WAL-Verzeichnis kann nicht zusammen mit einem Backup-Ziel angegeben werden" -#: pg_basebackup.c:2762 +#: pg_basebackup.c:2763 #, 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:2771 +#: pg_basebackup.c:2772 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL-Verzeichnis muss absoluten Pfad haben" -#: pg_basebackup.c:2871 +#: pg_basebackup.c:2872 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht erstellen: %m" -#: pg_createsubscriber.c:164 -#, fuzzy, c-format -#| msgid "pausing at the end of recovery" +#: pg_createsubscriber.c:189 +#, c-format msgid "failed after the end of recovery" -msgstr "pausiere am Ende der Wiederherstellung" +msgstr "fehlgeschlagen am Ende der Wiederherstellung" -#: pg_createsubscriber.c:165 +#: pg_createsubscriber.c:190 #, c-format msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." -msgstr "" +msgstr "Der Zielserver kann nicht mehr als physischer Standby verwendet werden. Sie müssen den physischen Standby neu erzeugen bevor fortgesetzt werden kann." -#: pg_createsubscriber.c:193 +#: pg_createsubscriber.c:221 #, c-format -msgid "publication \"%s\" in database \"%s\" on primary might be left behind" -msgstr "" +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "Publikation »%s« erzeugt in Datenbank »%s« auf dem Primärserver wurde zurückgelassen" -#: pg_createsubscriber.c:195 +#: pg_createsubscriber.c:224 #, c-format -msgid "Consider dropping this publication before trying again." -msgstr "" +msgid "Drop this publication before trying again." +msgstr "Löschen Sie diese Publikation, bevor Sie erneut versuchen." -#: pg_createsubscriber.c:199 +#: pg_createsubscriber.c:228 #, c-format -msgid "replication slot \"%s\" in database \"%s\" on primary might be left behind" -msgstr "" +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "Replikations-Slot »%s« erzeugt in Datenbank »%s« auf dem Primärserver wurde zurückgelassen" -#: pg_createsubscriber.c:201 pg_createsubscriber.c:1137 +#: pg_createsubscriber.c:231 pg_createsubscriber.c:1305 #, c-format msgid "Drop this replication slot soon to avoid retention of WAL files." -msgstr "" +msgstr "Löschen Sie diesen Replikations-Slot bald, um Zurückhalten von WAL-Datein zu vermeiden." -#: pg_createsubscriber.c:214 -#, fuzzy, c-format -#| msgid "cannot copy a replication slot that doesn't reserve WAL" +#: pg_createsubscriber.c:244 +#, c-format msgid "" "%s creates a new logical replica from a standby server.\n" "\n" -msgstr "ein Replikations-Slot, der kein WAL reserviert, kann nicht kopiert werden" +msgstr "" +"%s erzeugt eine neue logische Replik aus einem Standby-Server.\n" +"\n" -#: pg_createsubscriber.c:218 pg_receivewal.c:81 pg_recvlogical.c:92 +#: pg_createsubscriber.c:248 pg_receivewal.c:81 pg_recvlogical.c:91 #, c-format msgid "" "\n" @@ -1333,60 +1339,71 @@ msgstr "" "\n" "Optionen:\n" -#: pg_createsubscriber.c:219 -#, fuzzy, c-format -#| msgid " -d, --dbname=DBNAME database to vacuum\n" -msgid " -d, --database=DBNAME database to create a subscription\n" -msgstr " -d, --dbname=DBNAME führe Vacuum in dieser Datenbank aus\n" +#: pg_createsubscriber.c:249 +#, c-format +msgid "" +" -a, --all create subscriptions for all databases except template\n" +" databases or databases that don't allow connections\n" +msgstr "" -#: pg_createsubscriber.c:220 -#, fuzzy, c-format -#| msgid " [-D, --pgdata=]DATADIR location for this database cluster\n" +#: pg_createsubscriber.c:251 +#, c-format +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --database=DBNAME Datenbank, in der eine Subskription erzeugt werden soll\n" + +#: pg_createsubscriber.c:252 +#, c-format msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" -msgstr " [-D, --pgdata=]DATENVERZ Datenverzeichnis für diesen Datenbankcluster\n" +msgstr " -D, --pgdata=DATENVERZ Datenverzeichnis für den Subskriptionsserver\n" -#: pg_createsubscriber.c:221 -#, fuzzy, c-format -#| msgid " -n, --dry-run no update, just show what would be done\n" +#: pg_createsubscriber.c:253 +#, c-format msgid " -n, --dry-run dry run, just show what would be done\n" -msgstr " -n, --dry-run keine Änderungen; nur zeigen, was gemacht werden würde\n" +msgstr " -n, --dry-run Probelauf; nur zeigen, was gemacht werden würde\n" -#: pg_createsubscriber.c:222 -#, fuzzy, c-format -#| msgid " -p, --old-port=PORT old cluster port number (default %d)\n" +#: pg_createsubscriber.c:254 +#, c-format msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" -msgstr " -p, --old-port=PORT Portnummer für den alten Cluster (Standard: %d)\n" +msgstr " -p, --subscriber-port=PORT Portnummer für den Subskriptionsserver (Standard %s)\n" -#: pg_createsubscriber.c:223 -#, fuzzy, c-format -#| msgid " -d, --dbname=CONNSTR connect using connection string\n" +#: pg_createsubscriber.c:255 +#, c-format msgid " -P, --publisher-server=CONNSTR publisher connection string\n" -msgstr " -d, --dbname=VERBDG mit angegebenen Verbindungsparametern verbinden\n" +msgstr " -P, --publisher-server=VERBDG Verbindungsparameter des Publikationsservers\n" -#: pg_createsubscriber.c:224 -#, fuzzy, c-format -#| msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" -msgid " -s, --socket-directory=DIR socket directory to use (default current directory)\n" -msgstr " -s, --socketdir=VERZ Verzeichnis für Socket (Standard: aktuelles Verz.)\n" +#: pg_createsubscriber.c:256 +#, c-format +msgid "" +" -R, --remove=OBJECTTYPE remove all objects of the specified type from specified\n" +" databases on the subscriber; accepts: publications\n" +msgstr "" -#: pg_createsubscriber.c:225 -#, fuzzy, c-format -#| msgid " -t, --timeout=SECS seconds to wait when using -w option\n" +#: pg_createsubscriber.c:258 +#, c-format +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=VERZ Verzeichnis für Socket (Standard: aktuelles Verz.)\n" + +#: pg_createsubscriber.c:259 +#, c-format msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" -msgstr " -t, --timeout=SEK Sekunden zu warten bei Option -w\n" +msgstr " -t, --recovery-timeout=SEK Sekunden zu warten auf Ende der Wiederherstellung\n" -#: pg_createsubscriber.c:226 -#, fuzzy, c-format -#| msgid " -U, --username=NAME database superuser name\n" -msgid " -U, --subscriber-username=NAME subscriber username\n" -msgstr " -U, --username=NAME Datenbank-Superusername\n" +#: pg_createsubscriber.c:260 +#, c-format +msgid " -T, --enable-two-phase enable two-phase commit for all subscriptions\n" +msgstr " -T, --enable-two-phase Zwei-Phasen-Commit für alle Subskriptionen einschalten\n" -#: pg_createsubscriber.c:227 +#: pg_createsubscriber.c:261 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NAME Benutzername für Subskriptionsserver-Verbindung\n" + +#: pg_createsubscriber.c:262 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_createsubscriber.c:228 +#: pg_createsubscriber.c:263 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -1395,606 +1412,611 @@ msgstr "" " --config-file=DATEINAME angegebene Serverkonfigurationsdatei zum\n" " Starten des Ziel-Clusters verwenden\n" -#: pg_createsubscriber.c:230 +#: pg_createsubscriber.c:265 #, c-format msgid " --publication=NAME publication name\n" msgstr " --publication=NAME Publikationsname\n" -#: pg_createsubscriber.c:231 -#, fuzzy, c-format -#| msgid " -C, --create-slot create replication slot\n" +#: pg_createsubscriber.c:266 +#, c-format msgid " --replication-slot=NAME replication slot name\n" -msgstr " -C, --create-slot Replikations-Slot erzeugen\n" +msgstr " --replication-slot=NAME Replikations-Slot-Name\n" -#: pg_createsubscriber.c:232 +#: pg_createsubscriber.c:267 #, c-format msgid " --subscription=NAME subscription name\n" msgstr " --subscription=NAME Subskriptionsname\n" -#: pg_createsubscriber.c:233 +#: pg_createsubscriber.c:268 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_createsubscriber.c:234 +#: pg_createsubscriber.c:269 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_createsubscriber.c:265 +#: pg_createsubscriber.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "konnte Verbindungsparameter nicht interpretieren: %s" -#: pg_createsubscriber.c:347 +#: pg_createsubscriber.c:389 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden" -#: pg_createsubscriber.c:350 +#: pg_createsubscriber.c:392 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s" -#: pg_createsubscriber.c:370 -#, fuzzy, c-format -#| msgid "specified data directory \"%s\" is not a directory" +#: pg_createsubscriber.c:412 +#, c-format msgid "checking if directory \"%s\" is a cluster data directory" -msgstr "angegebenes Datenverzeichnis »%s« ist kein Verzeichnis" +msgstr "prüfe ob Verzeichnis »%s« ein Cluster-Datenverzeichnis ist" -#: pg_createsubscriber.c:376 +#: pg_createsubscriber.c:418 #, c-format msgid "data directory \"%s\" does not exist" msgstr "Datenverzeichnis »%s« existiert nicht" -#: pg_createsubscriber.c:384 +#: pg_createsubscriber.c:426 #, c-format msgid "directory \"%s\" is not a database cluster directory" msgstr "Verzeichnis »%s« ist kein Datenbankclusterverzeichnis" -#: pg_createsubscriber.c:501 +#: pg_createsubscriber.c:544 #, c-format msgid "connection to database failed: %s" msgstr "Verbindung zur Datenbank fehlgeschlagen: %s" -#: pg_createsubscriber.c:514 +#: pg_createsubscriber.c:557 streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "konnte search_path nicht auf leer setzen: %s" +msgid "could not clear \"search_path\": %s" +msgstr "konnte »search_path« nicht auf leer setzen: %s" -#: pg_createsubscriber.c:554 +#: pg_createsubscriber.c:597 #, c-format msgid "getting system identifier from publisher" msgstr "hole Systemidentifikator vom Publikationsserver" -#: pg_createsubscriber.c:561 +#: pg_createsubscriber.c:604 #, c-format msgid "could not get system identifier: %s" msgstr "konnte Systemidentifikator nicht ermitteln: %s" -#: pg_createsubscriber.c:567 -#, fuzzy, c-format -#| msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" +#: pg_createsubscriber.c:610 +#, c-format msgid "could not get system identifier: got %d rows, expected %d row" -msgstr "Konnte System nicht identifizieren: %d Zeilen und %d Felder erhalten, %d Zeilen und %d oder mehr Felder erwartet" +msgstr "konnte Systemidentifikator nicht ermitteln: %d Zeilen erhalten, %d Zeile erwartet" -#: pg_createsubscriber.c:574 -#, fuzzy, c-format -#| msgid "%s: expected system identifier %llu, but found %llu" -msgid "system identifier is %llu on publisher" -msgstr "%s: Systemidentifikator %llu erwartet, aber %llu gefunden" +#: pg_createsubscriber.c:617 +#, c-format +msgid "system identifier is % on publisher" +msgstr "Systemidentifikator ist % auf dem Publikationsserver" -#: pg_createsubscriber.c:595 +#: pg_createsubscriber.c:637 #, c-format msgid "getting system identifier from subscriber" msgstr "hole Systemidentifikator vom Subskriptionsserver" -#: pg_createsubscriber.c:599 pg_createsubscriber.c:629 +#: pg_createsubscriber.c:641 pg_createsubscriber.c:670 #, c-format msgid "control file appears to be corrupt" msgstr "Kontrolldatei scheint kaputt zu sein" -#: pg_createsubscriber.c:603 pg_createsubscriber.c:644 +#: pg_createsubscriber.c:645 pg_createsubscriber.c:685 #, c-format -msgid "system identifier is %llu on subscriber" -msgstr "Systemidentifikator ist %llu auf dem Subskriptionsserver" +msgid "system identifier is % on subscriber" +msgstr "Systemidentifikator ist % auf dem Subskriptionsserver" -#: pg_createsubscriber.c:625 +#: pg_createsubscriber.c:666 #, c-format msgid "modifying system identifier of subscriber" msgstr "ändere Systemidentifikator auf dem Subskriptionsserver" -#: pg_createsubscriber.c:647 +#: pg_createsubscriber.c:688 #, c-format msgid "running pg_resetwal on the subscriber" msgstr "führe pg_resetwal auf dem Subskriptionsserver aus" -#: pg_createsubscriber.c:659 +#: pg_createsubscriber.c:700 #, c-format msgid "subscriber successfully changed the system identifier" msgstr "Subskriptionsserver hat Systemidentifikator erfolgreich geändert" -#: pg_createsubscriber.c:661 +#: pg_createsubscriber.c:702 #, c-format -msgid "subscriber failed to change system identifier: exit code: %d" -msgstr "" +msgid "could not change system identifier of subscriber: %s" +msgstr "konnte Systemidentifikator des Subskriptionsservers nicht ändern: %s" -#: pg_createsubscriber.c:685 +#: pg_createsubscriber.c:726 #, c-format msgid "could not obtain database OID: %s" msgstr "konnte Datenbank-OID nicht ermitteln: %s" -#: pg_createsubscriber.c:692 -#, fuzzy, c-format -#| msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" +#: pg_createsubscriber.c:733 +#, c-format msgid "could not obtain database OID: got %d rows, expected %d row" -msgstr "konnte Replikations-Slot »%s« nicht löschen: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" +msgstr "konnte Datenbank-OID nicht ermitteln: %d Zeilen erhalten, %d Zeile erwartet" -#: pg_createsubscriber.c:764 -#, fuzzy, c-format -#| msgid "created replication slot \"%s\" on publisher" +#: pg_createsubscriber.c:805 +#, c-format msgid "create replication slot \"%s\" on publisher" -msgstr "Replikations-Slot »%s« wurde auf dem Publikationsserver erzeugt" +msgstr "erzeuge Replikations-Slot »%s« auf dem Publikationsserver" + +#: pg_createsubscriber.c:825 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "konnte zusätzlichen WAL-Datensatz nicht schreiben: %s" -#: pg_createsubscriber.c:788 +#: pg_createsubscriber.c:851 #, c-format msgid "could not obtain recovery progress: %s" msgstr "konnte Recovery-Fortschritt nicht ermitteln: %s" -#: pg_createsubscriber.c:819 -#, fuzzy, c-format -#| msgid "created replication slot \"%s\" on publisher" +#: pg_createsubscriber.c:884 +#, c-format msgid "checking settings on publisher" -msgstr "Replikations-Slot »%s« wurde auf dem Publikationsserver erzeugt" +msgstr "prüfe Einstellungen auf dem Publikationsserver" -#: pg_createsubscriber.c:829 -#, fuzzy, c-format -#| msgid "primary keys cannot be expressions" +#: pg_createsubscriber.c:894 +#, c-format msgid "primary server cannot be in recovery" -msgstr "Primärschlüssel können keine Ausdrücke sein" +msgstr "Primärserver kann nicht im Wiederherstellungsmodus sein" -#: pg_createsubscriber.c:864 -#, fuzzy, c-format -#| msgid "could not connect to the publisher: %s" +#: pg_createsubscriber.c:920 +#, c-format msgid "could not obtain publisher settings: %s" -msgstr "konnte nicht mit dem Publikationsserver verbinden: %s" +msgstr "konnte Einstellungen des Publikationsservers nicht ermitteln: %s" -#: pg_createsubscriber.c:887 +#: pg_createsubscriber.c:949 #, c-format -msgid "publisher requires wal_level >= \"logical\"" -msgstr "Publikationsserver benötigt wal_level >= »logical«" +msgid "publisher requires \"wal_level\" >= \"logical\"" +msgstr "Publikationsserver benötigt »wal_level« >= »logical«" -#: pg_createsubscriber.c:893 -#, fuzzy, c-format -#| msgid "Field requires %d characters, but only %d remain." +#: pg_createsubscriber.c:955 +#, c-format msgid "publisher requires %d replication slots, but only %d remain" -msgstr "Feld benötigt %d Zeichen, aber nur %d verbleiben." +msgstr "Publikationsserver benötigt %d Replikations-Slots, aber nur %d verbleiben" -#: pg_createsubscriber.c:895 pg_createsubscriber.c:994 -#, fuzzy, c-format -#| msgid "Free one or increase max_replication_slots." -msgid "Consider increasing max_replication_slots to at least %d." -msgstr "Geben Sie einen frei oder erhöhen Sie max_replication_slots." +#: pg_createsubscriber.c:957 pg_createsubscriber.c:966 +#: pg_createsubscriber.c:1076 pg_createsubscriber.c:1085 +#: pg_createsubscriber.c:1094 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Erhöhen Sie den Konfigurationsparameter »%s« auf mindestens %d." -#: pg_createsubscriber.c:902 -#, fuzzy, c-format -#| msgid "Field requires %d characters, but only %d remain." -msgid "publisher requires %d wal sender processes, but only %d remain" -msgstr "Feld benötigt %d Zeichen, aber nur %d verbleiben." +#: pg_createsubscriber.c:964 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "Publikationsserver benötigt %d WAL-Sender-Prozesse, aber nur %d verbleiben" + +#: pg_createsubscriber.c:973 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "Option »two_phase« wird für Replikations-Slots nicht aktiviert" -#: pg_createsubscriber.c:904 +#: pg_createsubscriber.c:974 #, c-format -msgid "Consider increasing max_wal_senders to at least %d." +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "Subskriptionen werden mit der Option »two_phase« ausgeschaltet erzeugt. Vorbereitete Transaktionen werden bei COMMIT PREPARED repliziert werden." + +#: pg_createsubscriber.c:976 +#, c-format +msgid "You can use --enable-two-phase switch to enable two_phase." msgstr "" -#: pg_createsubscriber.c:937 +#: pg_createsubscriber.c:986 +#, c-format +msgid "required WAL could be removed from the publisher" +msgstr "" + +#: pg_createsubscriber.c:987 +#, fuzzy, c-format +#| msgid "Make sure the configuration parameter \"%s\" is set on the primary server." +msgid "Set the configuration parameter \"%s\" to -1 to ensure that required WAL files are not prematurely removed." +msgstr "Stellen Sie sicher, dass der Konfigurationsparameter »%s« auf dem Primärserver gesetzt ist." + +#: pg_createsubscriber.c:1019 #, c-format msgid "checking settings on subscriber" msgstr "prüfe Einstellungen auf Subskriptionsserver" -#: pg_createsubscriber.c:944 -#, fuzzy, c-format -#| msgid "target server must be shut down cleanly" +#: pg_createsubscriber.c:1026 +#, c-format msgid "target server must be a standby" -msgstr "Zielserver muss sauber heruntergefahren worden sein" +msgstr "Zielserver muss ein Standby sein" -#: pg_createsubscriber.c:968 +#: pg_createsubscriber.c:1050 #, c-format msgid "could not obtain subscriber settings: %s" msgstr "konnte Einstellungen des Subskriptionsservers nicht ermitteln: %s" -#: pg_createsubscriber.c:992 +#: pg_createsubscriber.c:1074 #, fuzzy, c-format -#| msgid "Field requires %d characters, but only %d remain." -msgid "subscriber requires %d replication slots, but only %d remain" -msgstr "Feld benötigt %d Zeichen, aber nur %d verbleiben." +#| msgid "subscriber requires %d replication slots, but only %d remain" +msgid "subscriber requires %d active replication origins, but only %d remain" +msgstr "Subskriptionsserver benötigt %d Replikations-Slots, aber nur %d verbleiben" -#: pg_createsubscriber.c:1001 -#, fuzzy, c-format -#| msgid "Field requires %d characters, but only %d remain." +#: pg_createsubscriber.c:1083 +#, c-format msgid "subscriber requires %d logical replication workers, but only %d remain" -msgstr "Feld benötigt %d Zeichen, aber nur %d verbleiben." +msgstr "Subskriptionsserver benötigt %d Arbeitsprozesse für logische Replikation, aber nur %d verbleiben" -#: pg_createsubscriber.c:1003 -#, fuzzy, c-format -#| msgid "terminating logical replication worker due to timeout" -msgid "Consider increasing max_logical_replication_workers to at least %d." -msgstr "Arbeitsprozess für logische Replikation wird abgebrochen wegen Zeitüberschreitung" - -#: pg_createsubscriber.c:1010 -#, fuzzy, c-format -#| msgid "Field requires %d characters, but only %d remain." +#: pg_createsubscriber.c:1092 +#, c-format msgid "subscriber requires %d worker processes, but only %d remain" -msgstr "Feld benötigt %d Zeichen, aber nur %d verbleiben." +msgstr "Subskriptionsserver benötigt %d Arbeitsprozesse, aber nur %d verbleiben" -#: pg_createsubscriber.c:1012 -#, fuzzy, c-format -#| msgid "Consider increasing the configuration parameter \"max_worker_processes\"." -msgid "Consider increasing max_worker_processes to at least %d." -msgstr "Erhöhen Sie eventuell den Konfigurationsparameter »max_worker_processes«." +#: pg_createsubscriber.c:1127 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "lösche Subskription »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1135 -#, fuzzy, c-format -#| msgid "could not drop replication slot \"%s\" on publisher: %s" +#: pg_createsubscriber.c:1136 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "konnte Subskription »%s« nicht löschen: %s" + +#: pg_createsubscriber.c:1171 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "konnte bereits existierende Subskriptionen nicht ermitteln: %s" + +#: pg_createsubscriber.c:1303 +#, c-format msgid "could not drop replication slot \"%s\" on primary" -msgstr "konnte Replikations-Slot »%s« auf dem Publikationsserver nicht löschen: %s" +msgstr "konnte Replikations-Slot »%s« auf dem Primärserver nicht löschen" -#: pg_createsubscriber.c:1169 -#, fuzzy, c-format -#| msgid "could not obtain replication slot information: %s" +#: pg_createsubscriber.c:1337 +#, c-format msgid "could not obtain failover replication slot information: %s" -msgstr "konnte Replikations-Slot-Informationen nicht ermitteln: %s" +msgstr "konnte Failover-Replikations-Slot-Informationen nicht ermitteln: %s" -#: pg_createsubscriber.c:1171 pg_createsubscriber.c:1180 +#: pg_createsubscriber.c:1339 pg_createsubscriber.c:1348 #, c-format msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." -msgstr "" +msgstr "Löschen Sie die Failover-Replikations-Slots auf dem Subskriptionsserver bald, um Zurückhalten von WAL-Dateien zu vermeiden." -#: pg_createsubscriber.c:1179 -#, fuzzy, c-format -#| msgid "could not alter replication slot \"%s\": %s" +#: pg_createsubscriber.c:1347 +#, c-format msgid "could not drop failover replication slot" -msgstr "konnte Replikations-Slot »%s« nicht ändern: %s" +msgstr "konnte Failover-Replikations-Slot nicht löschen" -#: pg_createsubscriber.c:1201 -#, fuzzy, c-format -#| msgid "created replication slot \"%s\" on publisher" -msgid "creating the replication slot \"%s\" on database \"%s\"" -msgstr "Replikations-Slot »%s« wurde auf dem Publikationsserver erzeugt" +#: pg_createsubscriber.c:1369 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "erzeuge Replikations-Slot »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1219 -#, fuzzy, c-format -#| msgid "could not create replication slot \"%s\": %s" -msgid "could not create replication slot \"%s\" on database \"%s\": %s" -msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %s" +#: pg_createsubscriber.c:1388 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "konnte Replikations-Slot »%s« in Datenbank »%s« nicht erzeugen: %s" -#: pg_createsubscriber.c:1249 -#, fuzzy, c-format -#| msgid "dropped replication slot \"%s\" on publisher" -msgid "dropping the replication slot \"%s\" on database \"%s\"" -msgstr "Replikations-Slot »%s« auf dem Publikationsserver wurde gelöscht" +#: pg_createsubscriber.c:1418 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "lösche Replikations-Slot »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1265 -#, fuzzy, c-format -#| msgid "could not drop replication slot \"%s\" on publisher: %s" -msgid "could not drop replication slot \"%s\" on database \"%s\": %s" -msgstr "konnte Replikations-Slot »%s« auf dem Publikationsserver nicht löschen: %s" +#: pg_createsubscriber.c:1434 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "konnte Replikations-Slot »%s« in Datenbank »%s« nicht löschen: %s" -#: pg_createsubscriber.c:1286 -#, fuzzy, c-format -#| msgid "archive command failed with exit code %d" +#: pg_createsubscriber.c:1455 +#, c-format msgid "pg_ctl failed with exit code %d" -msgstr "Archivbefehl ist fehlgeschlagen mit Statuscode %d" +msgstr "pg_ctl ist fehlgeschlagen mit Statuscode %d" -#: pg_createsubscriber.c:1291 -#, fuzzy, c-format -#| msgid "child process was terminated by exception 0x%X" +#: pg_createsubscriber.c:1460 +#, c-format msgid "pg_ctl was terminated by exception 0x%X" -msgstr "Kindprozess wurde durch Ausnahme 0x%X beendet" +msgstr "pg_ctl wurde durch Ausnahme 0x%X beendet" -#: pg_createsubscriber.c:1293 +#: pg_createsubscriber.c:1462 #, 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." -#: pg_createsubscriber.c:1295 -#, fuzzy, c-format -#| msgid "child process was terminated by signal %d: %s" +#: pg_createsubscriber.c:1464 +#, c-format msgid "pg_ctl was terminated by signal %d: %s" -msgstr "Kindprozess wurde von Signal %d beendet: %s" +msgstr "pg_ctl wurde durch Signal %d beendet: %s" -#: pg_createsubscriber.c:1301 -#, fuzzy, c-format -#| msgid "child process exited with unrecognized status %d" +#: pg_createsubscriber.c:1470 +#, c-format msgid "pg_ctl exited with unrecognized status %d" -msgstr "Kindprozess hat mit unbekanntem Status %d beendet" +msgstr "pg_ctl hat mit unbekanntem Status %d beendet" -#: pg_createsubscriber.c:1304 +#: pg_createsubscriber.c:1473 #, c-format msgid "The failed command was: %s" msgstr "Der fehlgeschlagene Befehl war: %s" -#: pg_createsubscriber.c:1343 +#: pg_createsubscriber.c:1523 #, c-format msgid "server was started" msgstr "Server wurde gestartet" -#: pg_createsubscriber.c:1358 +#: pg_createsubscriber.c:1538 #, c-format msgid "server was stopped" msgstr "Server wurde angehalten" -#: pg_createsubscriber.c:1377 +#: pg_createsubscriber.c:1557 #, c-format msgid "waiting for the target server to reach the consistent state" -msgstr "" +msgstr "warte, dass der Zielserver einen konsistenten Zustand erreicht" -#: pg_createsubscriber.c:1400 +#: pg_createsubscriber.c:1580 #, c-format msgid "recovery timed out" -msgstr "" +msgstr "Zeitüberschreitung bei der Wiederherstellung" -#: pg_createsubscriber.c:1413 -#, fuzzy, c-format -#| msgid "server did not promote within %d second" -#| msgid_plural "server did not promote within %d seconds" +#: pg_createsubscriber.c:1593 +#, c-format msgid "server did not end recovery" -msgstr "Befördern des Servers wurde nicht innerhalb von %d Sekunde abgeschlossen" +msgstr "Server hat Recovery-Zustand nicht beendet" -#: pg_createsubscriber.c:1415 +#: pg_createsubscriber.c:1595 #, c-format msgid "target server reached the consistent state" -msgstr "" +msgstr "Zielserver hat einen konsistenten Zustand erreicht" -#: pg_createsubscriber.c:1416 -#, fuzzy, c-format -#| msgid "" -#| "\n" -#| "If pg_upgrade fails after this point, you must re-initdb the\n" -#| "new cluster before continuing." +#: pg_createsubscriber.c:1596 +#, c-format msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." -msgstr "" -"\n" -"Wenn pg_upgrade ab diesem Punkt fehlschlägt, dann müssen Sie den\n" -"neuen Cluster neu mit initdb initialisieren, bevor fortgesetzt\n" -"werden kann." +msgstr "Wenn pg_createsubscriber ab diesem Punkt fehlschlägt, dann müssen Sie die physikalische Replik neu erzeugen, bevor fortgesetzt werden kann." -#: pg_createsubscriber.c:1443 -#, fuzzy, c-format -#| msgid "could not obtain lock on relation \"%s\"" +#: pg_createsubscriber.c:1623 pg_createsubscriber.c:1746 +#, c-format msgid "could not obtain publication information: %s" -msgstr "konnte Sperre für Relation »%s« nicht setzen" +msgstr "konnte Publikationsinformationen nicht ermitteln: %s" -#: pg_createsubscriber.c:1457 +#: pg_createsubscriber.c:1637 #, c-format msgid "publication \"%s\" already exists" msgstr "Publikation »%s« existiert bereits" -#: pg_createsubscriber.c:1458 +#: pg_createsubscriber.c:1638 #, c-format msgid "Consider renaming this publication before continuing." -msgstr "" +msgstr "Nennen Sie diese Publikation eventuell um bevor Sie fortsetzen." -#: pg_createsubscriber.c:1465 -#, fuzzy, c-format -#| msgid "creating replication slot \"%s\"" -msgid "creating publication \"%s\" on database \"%s\"" -msgstr "erzeuge Replikations-Slot »%s«" +#: pg_createsubscriber.c:1645 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "erzeuge Publikation »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1478 -#, fuzzy, c-format -#| msgid "could not create replication slot \"%s\": %s" -msgid "could not create publication \"%s\" on database \"%s\": %s" -msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %s" +#: pg_createsubscriber.c:1658 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "konnte Publikation »%s« in Datenbank »%s« nicht erzeugen: %s" -#: pg_createsubscriber.c:1507 -#, fuzzy, c-format -#| msgid "dropping replication slot \"%s\"" -msgid "dropping publication \"%s\" on database \"%s\"" -msgstr "lösche Replikations-Slot »%s«" +#: pg_createsubscriber.c:1688 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "lösche Publikation »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1521 -#, fuzzy, c-format -#| msgid "could not drop replication slot \"%s\" on publisher: %s" -msgid "could not drop publication \"%s\" on database \"%s\": %s" -msgstr "konnte Replikations-Slot »%s« auf dem Publikationsserver nicht löschen: %s" +#: pg_createsubscriber.c:1702 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "konnte Publikation »%s« in Datenbank »%s« nicht löschen: %s" -#: pg_createsubscriber.c:1567 +#: pg_createsubscriber.c:1739 #, fuzzy, c-format -#| msgid "remote transaction %u of subscription %u of database %u" -msgid "creating subscription \"%s\" on database \"%s\"" -msgstr "Remote-Transaktion %u von Subskription %u in Datenbank %u" +#| msgid "dropping publication \"%s\" in database \"%s\"" +msgid "dropping all existing publications in database \"%s\"" +msgstr "lösche Publikation »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1588 -#, fuzzy, c-format -#| msgid "could not create replication slot \"%s\": %s" -msgid "could not create subscription \"%s\" on database \"%s\": %s" -msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %s" +#: pg_createsubscriber.c:1797 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "erzeuge Subskription »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1633 -#, fuzzy, c-format -#| msgid "could not obtain lock on relation \"%s\"" +#: pg_createsubscriber.c:1819 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "konnte Subskription »%s« in Datenbank »%s« nicht erzeugen: %s" + +#: pg_createsubscriber.c:1864 +#, c-format msgid "could not obtain subscription OID: %s" -msgstr "konnte Sperre für Relation »%s« nicht setzen" +msgstr "konnte Subskriptions-OID nicht ermitteln: %s" -#: pg_createsubscriber.c:1640 -#, fuzzy, c-format -#| msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" +#: pg_createsubscriber.c:1871 +#, c-format msgid "could not obtain subscription OID: got %d rows, expected %d row" -msgstr "konnte Replikations-Slot »%s« nicht lesen: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" +msgstr "konnte Subskriptions-OID nicht ermitteln: %d Zeilen erhalten, %d Zeile erwartet" -#: pg_createsubscriber.c:1664 +#: pg_createsubscriber.c:1895 #, c-format -msgid "setting the replication progress (node name \"%s\" ; LSN %s) on database \"%s\"" -msgstr "" +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "setze Replikationsfortschritt (Knotenname »%s«, LSN %s) in Datenbank »%s«" -#: pg_createsubscriber.c:1679 -#, fuzzy, c-format -#| msgid "could not drop relation mapping for subscription \"%s\"" -msgid "could not set replication progress for the subscription \"%s\": %s" -msgstr "konnte Relation-Mapping für Subskription »%s« nicht löschen" +#: pg_createsubscriber.c:1910 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "konnte Replikationsfortschritt für Subskription »%s« nicht setzen: %s" -#: pg_createsubscriber.c:1710 -#, fuzzy, c-format -#| msgid "remote transaction %u of subscription %u of database %u" -msgid "enabling subscription \"%s\" on database \"%s\"" -msgstr "Remote-Transaktion %u von Subskription %u in Datenbank %u" +#: pg_createsubscriber.c:1941 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "aktiviere Subskription »%s« in Datenbank »%s«" -#: pg_createsubscriber.c:1722 -#, fuzzy, c-format -#| msgid "could not enable user right \"%s\"" +#: pg_createsubscriber.c:1953 +#, c-format msgid "could not enable subscription \"%s\": %s" -msgstr "konnte Benutzerrecht »%s« nicht aktivieren" +msgstr "konnte Subskription »%s« nicht aktivieren: %s" + +#: pg_createsubscriber.c:1999 +#, fuzzy, c-format +#| msgid "could not obtain database OID: %s" +msgid "could not obtain a list of databases: %s" +msgstr "konnte Datenbank-OID nicht ermitteln: %s" -#: pg_createsubscriber.c:1814 +#: pg_createsubscriber.c:2103 #, c-format msgid "cannot be executed by \"root\"" msgstr "kann nicht von »root« ausgeführt werden" -#: pg_createsubscriber.c:1815 +#: pg_createsubscriber.c:2104 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Sie müssen %s als PostgreSQL-Superuser ausführen." -#: pg_createsubscriber.c:1836 +#: pg_createsubscriber.c:2127 #, fuzzy, c-format -#| msgid "dumping database \"%s\"" -msgid "duplicate database \"%s\"" -msgstr "Ausgabe der Datenbank »%s«" +#| msgid "database \"%s\" specified more than once" +msgid "database \"%s\" specified more than once for -d/--database" +msgstr "Datenbank »%s« mehrmals angegeben" -#: pg_createsubscriber.c:1877 +#: pg_createsubscriber.c:2146 #, fuzzy, c-format -#| msgid "duplicate option \"%s\"" -msgid "duplicate publication \"%s\"" -msgstr "doppelte Option »%s«" +#| msgid "table name \"%s\" specified more than once" +msgid "object type \"%s\" is specified more than once for -R/--remove" +msgstr "Tabellenname »%s« mehrmals angegeben" -#: pg_createsubscriber.c:1889 +#: pg_createsubscriber.c:2174 #, fuzzy, c-format -#| msgid "created replication slot \"%s\"" -msgid "duplicate replication slot \"%s\"" -msgstr "Replikations-Slot »%s« wurde erzeugt" +#| msgid "publication \"%s\" specified more than once" +msgid "publication \"%s\" specified more than once for --publication" +msgstr "Publikation »%s« mehrmals angegeben" -#: pg_createsubscriber.c:1901 +#: pg_createsubscriber.c:2183 #, fuzzy, c-format -#| msgid "duplicate option \"%s\"" -msgid "duplicate subscription \"%s\"" -msgstr "doppelte Option »%s«" +#| msgid "replication slot \"%s\" specified more than once" +msgid "replication slot \"%s\" specified more than once for --replication-slot" +msgstr "Replikations-Slot »%s« mehrmals angegeben" -#: pg_createsubscriber.c:1924 +#: pg_createsubscriber.c:2192 #, fuzzy, c-format -#| msgid "no data directory specified" +#| msgid "subscription \"%s\" specified more than once" +msgid "subscription \"%s\" specified more than once for --subscription" +msgstr "Subskription »%s« mehrmals angegeben" + +#: pg_createsubscriber.c:2217 +#, fuzzy, c-format +#| msgid "COPY %s cannot be used with %s" +msgid "%s cannot be used with -a/--all" +msgstr "COPY %s kann nicht mit %s verwendet werden" + +#: pg_createsubscriber.c:2235 +#, c-format msgid "no subscriber data directory specified" -msgstr "kein Datenverzeichnis angegeben" +msgstr "kein Datenverzeichnis für Subskriptionsserver angegeben" -#: pg_createsubscriber.c:1935 +#: pg_createsubscriber.c:2246 #, c-format msgid "could not determine current directory" msgstr "konnte aktuelles Verzeichnis nicht ermitteln" -#: pg_createsubscriber.c:1952 -#, fuzzy, c-format -#| msgid "could not parse connection string: %s" +#: pg_createsubscriber.c:2263 +#, c-format msgid "no publisher connection string specified" -msgstr "konnte Verbindungsparameter nicht interpretieren: %s" +msgstr "keine Verbindungsparameter für Publikationsserver angegeben" -#: pg_createsubscriber.c:1956 -#, fuzzy, c-format -#| msgid "invalid connection string syntax: %s" -msgid "validating connection string on publisher" -msgstr "ungültige Syntax für Verbindungszeichenkette: %s" +#: pg_createsubscriber.c:2267 +#, c-format +msgid "validating publisher connection string" +msgstr "validiere Verbindungsparameter für Publikationsserver" -#: pg_createsubscriber.c:1962 -#, fuzzy, c-format -#| msgid "invalid connection string syntax: %s" -msgid "validating connection string on subscriber" -msgstr "ungültige Syntax für Verbindungszeichenkette: %s" +#: pg_createsubscriber.c:2273 +#, c-format +msgid "validating subscriber connection string" +msgstr "validiere Verbindungsparameter für Subskriptionsserver" -#: pg_createsubscriber.c:1967 -#, fuzzy, c-format -#| msgid "no database specified" +#: pg_createsubscriber.c:2290 +#, c-format msgid "no database was specified" -msgstr "keine Datenbank angegeben" +msgstr "keine Datenbank wurde angegeben" -#: pg_createsubscriber.c:1979 -#, fuzzy, c-format -#| msgid "database \"%s\" is not currently accepting connections" -msgid "database \"%s\" was extracted from the publisher connection string" -msgstr "Datenbank »%s« akzeptiert gegenwärtig keine Verbindungen" +#: pg_createsubscriber.c:2301 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "Datenbankname »%s« wurde aus der Verbindungszeichenkette des Publikationsservers extrahiert" -#: pg_createsubscriber.c:1984 -#, fuzzy, c-format -#| msgid "no database specified" +#: pg_createsubscriber.c:2306 +#, c-format msgid "no database name specified" -msgstr "keine Datenbank angegeben" +msgstr "kein Datenbankname angegeben" -#: pg_createsubscriber.c:1994 -#, fuzzy, c-format -#| msgid "must be owner of publication %s" -msgid "wrong number of publication names" -msgstr "Berechtigung nur für Eigentümer der Publikation %s" +#: pg_createsubscriber.c:2316 +#, c-format +msgid "wrong number of publication names specified" +msgstr "falsche Anzahl Publikationsnamen angegeben" -#: pg_createsubscriber.c:1995 -#, fuzzy, c-format -#| msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" -msgid "Number of publication names (%d) must match number of database names (%d)." -msgstr "Anzahl der Partitionierungsspalten (%d) stimmt nicht mit der Anzahl der angegebenen Partitionierungsschlüssel (%d) überein" +#: pg_createsubscriber.c:2317 +#, c-format +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "Die Anzahl der angegebenen Publikationsnamen (%d) muss mit der Anzahl der angegebenen Datenbanknamen (%d) übereinstimmen." -#: pg_createsubscriber.c:2001 -#, fuzzy, c-format -#| msgid "wrong number of array subscripts" -msgid "wrong number of subscription names" -msgstr "falsche Anzahl Arrayindizes" +#: pg_createsubscriber.c:2323 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "falsche Anzahl Subskriptionsnamen angegeben" -#: pg_createsubscriber.c:2002 -#, fuzzy, c-format -#| msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" -msgid "Number of subscription names (%d) must match number of database names (%d)." -msgstr "Anzahl der Partitionierungsspalten (%d) stimmt nicht mit der Anzahl der angegebenen Partitionierungsschlüssel (%d) überein" +#: pg_createsubscriber.c:2324 +#, c-format +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "Die Anzahl der angegebenen Subskriptionsnamen (%d) muss mit der Anzahl der angegebenen Datenbanknamen (%d) übereinstimmen." -#: pg_createsubscriber.c:2008 -#, fuzzy, c-format -#| msgid "dropping replication slot \"%s\"" -msgid "wrong number of replication slot names" -msgstr "lösche Replikations-Slot »%s«" +#: pg_createsubscriber.c:2330 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "falsche Anzahl Replikations-Slot-Namen angegeben" + +#: pg_createsubscriber.c:2331 +#, c-format +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "Die Anzahl der angegebenen Replikations-Slot-Namen (%d) muss mit der Anzahl der angegebenen Datenbanknamen (%d) übereinstimmen." -#: pg_createsubscriber.c:2009 +#: pg_createsubscriber.c:2343 #, fuzzy, c-format -#| msgid "number of partitioning columns (%d) does not match number of partition keys provided (%d)" -msgid "Number of replication slot names (%d) must match number of database names (%d)." -msgstr "Anzahl der Partitionierungsspalten (%d) stimmt nicht mit der Anzahl der angegebenen Partitionierungsschlüssel (%d) überein" +#| msgid "invalid output format \"%s\" specified" +msgid "invalid object type \"%s\" specified for -R/--remove" +msgstr "ungültiges Ausgabeformat »%s« angegeben" -#: pg_createsubscriber.c:2038 +#: pg_createsubscriber.c:2344 #, fuzzy, c-format -#| msgid "Finding the real data directory for the source cluster" +#| msgid "reading publications" +msgid "The valid option is: \"publications\"" +msgstr "lese Publikationen" + +#: pg_createsubscriber.c:2375 +#, c-format msgid "subscriber data directory is not a copy of the source database cluster" -msgstr "Suche das tatsächliche Datenverzeichnis des alten Clusters" +msgstr "Datenverzeichnis des Subskriptionsservers ist keine Kopie des Quelldatenbankclusters" -#: pg_createsubscriber.c:2051 +#: pg_createsubscriber.c:2388 #, c-format -msgid "standby is up and running" -msgstr "" +msgid "standby server is running" +msgstr "Standby-Server läuft" -#: pg_createsubscriber.c:2052 +#: pg_createsubscriber.c:2389 #, c-format -msgid "Stop the standby and try again." -msgstr "" +msgid "Stop the standby server and try again." +msgstr "Halten Sie den Standby-Server an und versuchen Sie erneut." -#: pg_createsubscriber.c:2061 +#: pg_createsubscriber.c:2398 #, c-format -msgid "starting the standby with command-line options" -msgstr "" +msgid "starting the standby server with command-line options" +msgstr "starte den Standby-Server mit Kommandozeilenoptionen" -#: pg_createsubscriber.c:2077 pg_createsubscriber.c:2116 +#: pg_createsubscriber.c:2414 pg_createsubscriber.c:2449 #, c-format msgid "stopping the subscriber" -msgstr "" +msgstr "stoppe den Subskriptionsserver" -#: pg_createsubscriber.c:2095 +#: pg_createsubscriber.c:2428 #, c-format msgid "starting the subscriber" msgstr "starte den Subskriptionsserver" -#: pg_createsubscriber.c:2124 +#: pg_createsubscriber.c:2457 #, c-format msgid "Done!" msgstr "Fertig!" @@ -2013,17 +2035,17 @@ msgstr "" msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=VERZ Write-Ahead-Log-Dateien in dieses Verzeichnis empfangen\n" -#: pg_receivewal.c:83 pg_recvlogical.c:93 +#: pg_receivewal.c:83 pg_recvlogical.c:92 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN nach Empfang der angegebenen LSN beenden\n" -#: pg_receivewal.c:84 pg_recvlogical.c:97 +#: pg_receivewal.c:84 pg_recvlogical.c:98 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr " --if-not-exists keinen Fehler ausgeben, wenn Slot beim Erzeugen schon existiert\n" -#: pg_receivewal.c:85 pg_recvlogical.c:99 +#: pg_receivewal.c:85 pg_recvlogical.c:100 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop bei Verbindungsverlust nicht erneut probieren\n" @@ -2035,7 +2057,7 @@ msgstr "" " --no-sync nicht warten, bis Änderungen sicher auf Festplatte\n" " geschrieben sind\n" -#: pg_receivewal.c:87 pg_recvlogical.c:104 +#: pg_receivewal.c:87 pg_recvlogical.c:105 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -2067,12 +2089,12 @@ msgstr "" "\n" "Optionale Aktionen:\n" -#: pg_receivewal.c:104 pg_recvlogical.c:89 +#: pg_receivewal.c:104 pg_recvlogical.c:88 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr " --create-slot neuen Replikations-Slot erzeugen (Slot-Name siehe --slot)\n" -#: pg_receivewal.c:105 pg_recvlogical.c:90 +#: pg_receivewal.c:105 pg_recvlogical.c:89 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr " --drop-slot Replikations-Slot löschen (Slot-Name siehe --slot)\n" @@ -2092,7 +2114,7 @@ msgstr "Log-Streaming gestoppt bei %X/%X (Zeitleiste %u)" msgid "switched to timeline %u at %X/%X" msgstr "auf Zeitleiste %u umgeschaltet bei %X/%X" -#: pg_receivewal.c:224 pg_recvlogical.c:1053 +#: pg_receivewal.c:224 pg_recvlogical.c:1073 #, c-format msgid "received interrupt signal, exiting" msgstr "Interrupt-Signal erhalten, beende" @@ -2162,7 +2184,7 @@ msgstr "kann Datei »%s« nicht prüfen: Komprimierung mit %s wird von dieser In msgid "starting log streaming at %X/%X (timeline %u)" msgstr "starte Log-Streaming bei %X/%X (Zeitleiste %u)" -#: pg_receivewal.c:693 pg_recvlogical.c:801 +#: pg_receivewal.c:693 pg_recvlogical.c:807 #, c-format msgid "could not parse end position \"%s\"" msgstr "konnte Endposition »%s« nicht parsen" @@ -2192,28 +2214,28 @@ msgstr "Komprimierung mit %s wird noch nicht unterstützt" msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "Replikationsverbindung, die Slot »%s« verwendet, ist unerwarteterweise datenbankspezifisch" -#: pg_receivewal.c:878 pg_recvlogical.c:972 +#: pg_receivewal.c:878 pg_recvlogical.c:991 #, c-format msgid "dropping replication slot \"%s\"" msgstr "lösche Replikations-Slot »%s«" -#: pg_receivewal.c:889 pg_recvlogical.c:982 +#: pg_receivewal.c:889 pg_recvlogical.c:1001 #, c-format msgid "creating replication slot \"%s\"" msgstr "erzeuge Replikations-Slot »%s«" -#: pg_receivewal.c:918 pg_recvlogical.c:1006 +#: pg_receivewal.c:918 pg_recvlogical.c:1026 #, c-format msgid "disconnected" msgstr "Verbindung beendet" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:1010 +#: pg_receivewal.c:922 pg_recvlogical.c:1030 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "Verbindung beendet; erneuter Versuch in %d Sekunden" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:83 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -2222,7 +2244,7 @@ msgstr "" "%s kontrolliert logische Dekodierungsströme von PostgreSQL.\n" "\n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:87 #, c-format msgid "" "\n" @@ -2231,17 +2253,29 @@ msgstr "" "\n" "Auszuführende Aktion:\n" -#: pg_recvlogical.c:91 +#: pg_recvlogical.c:90 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr " --start Streaming in einem Replikations-Slot starten (Slot-Name siehe --slot)\n" -#: pg_recvlogical.c:94 +#: pg_recvlogical.c:93 +#, fuzzy, c-format +#| msgid "" +#| " --includedir show location of C header files of the client\n" +#| " interfaces\n" +msgid "" +" --failover enable replication slot synchronization to standby servers when\n" +" creating a slot\n" +msgstr "" +" --includedir zeige Installationsverzeichnis der Headerdateien der\n" +" Client-Schnittstellen\n" + +#: pg_recvlogical.c:95 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=DATEI Log in diese Datei empfangen, - für Standardausgabe\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:96 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -2250,12 +2284,12 @@ msgstr "" " -F --fsync-interval=SEK\n" " Zeit zwischen Fsyncs der Ausgabedatei (Standard: %d)\n" -#: pg_recvlogical.c:98 +#: pg_recvlogical.c:99 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN wo in einem bestehenden Slot das Streaming starten soll\n" -#: pg_recvlogical.c:100 +#: pg_recvlogical.c:101 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -2266,282 +2300,287 @@ msgstr "" " Option NAME mit optionalem Wert WERT an den\n" " Ausgabe-Plugin übergeben\n" -#: pg_recvlogical.c:103 +#: pg_recvlogical.c:104 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN Ausgabe-Plugin PLUGIN verwenden (Standard: %s)\n" -#: pg_recvlogical.c:106 +#: pg_recvlogical.c:107 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOTNAME Name des logischen Replikations-Slots\n" -#: pg_recvlogical.c:107 +#: pg_recvlogical.c:108 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr "" " -t, --two-phase Dekodieren von vorbereiteten Transaktionen beim Erzeugen\n" " eines Slots einschalten\n" -#: pg_recvlogical.c:112 +#: pg_recvlogical.c:113 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=DBNAME Datenbank, mit der verbunden werden soll\n" -#: pg_recvlogical.c:145 +#: pg_recvlogical.c:146 #, c-format 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:169 receivelog.c:360 +#: pg_recvlogical.c:170 receivelog.c:359 #, c-format msgid "could not send feedback packet: %s" msgstr "konnte Rückmeldungspaket nicht senden: %s" -#: pg_recvlogical.c:239 +#: pg_recvlogical.c:240 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "starte Log-Streaming bei %X/%X (Slot %s)" -#: pg_recvlogical.c:281 +#: pg_recvlogical.c:282 #, c-format msgid "streaming initiated" msgstr "Streaming eingeleitet" -#: pg_recvlogical.c:346 +#: pg_recvlogical.c:347 #, c-format msgid "could not open log file \"%s\": %m" msgstr "konnte Logdatei »%s« nicht öffnen: %m" -#: pg_recvlogical.c:375 receivelog.c:882 +#: pg_recvlogical.c:376 receivelog.c:889 #, c-format msgid "invalid socket: %s" msgstr "ungültiges Socket: %s" -#: pg_recvlogical.c:428 receivelog.c:910 +#: pg_recvlogical.c:429 receivelog.c:917 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" -#: pg_recvlogical.c:435 receivelog.c:959 +#: pg_recvlogical.c:436 receivelog.c:966 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "konnte keine Daten vom WAL-Stream empfangen: %s" -#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 -#: receivelog.c:1066 +#: pg_recvlogical.c:478 pg_recvlogical.c:529 receivelog.c:1010 +#: receivelog.c:1073 #, c-format msgid "streaming header too small: %d" msgstr "Streaming-Header zu klein: %d" -#: pg_recvlogical.c:512 receivelog.c:843 +#: pg_recvlogical.c:513 receivelog.c:846 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "unbekannter Streaming-Header: »%c«" -#: pg_recvlogical.c:566 pg_recvlogical.c:578 +#: pg_recvlogical.c:567 pg_recvlogical.c:579 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "konnte %d Bytes nicht in Logdatei »%s« schreiben: %m" -#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:637 receivelog.c:641 receivelog.c:678 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "unerwarteter Abbruch des Replikations-Streams: %s" -#: pg_recvlogical.c:796 +#: pg_recvlogical.c:802 #, c-format msgid "could not parse start position \"%s\"" msgstr "konnte Startposition »%s« nicht parsen" -#: pg_recvlogical.c:874 +#: pg_recvlogical.c:880 #, c-format msgid "no slot specified" msgstr "kein Slot angegeben" -#: pg_recvlogical.c:881 +#: pg_recvlogical.c:887 #, c-format msgid "no target file specified" msgstr "keine Zieldatei angegeben" -#: pg_recvlogical.c:888 +#: pg_recvlogical.c:894 #, c-format msgid "no database specified" msgstr "keine Datenbank angegeben" -#: pg_recvlogical.c:895 +#: pg_recvlogical.c:901 #, c-format msgid "at least one action needs to be specified" msgstr "mindestens eine Aktion muss angegeben werden" -#: pg_recvlogical.c:902 +#: pg_recvlogical.c:908 #, 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:915 #, 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:916 +#: pg_recvlogical.c:922 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos kann nur zusammen mit --start angegeben werden" -#: pg_recvlogical.c:923 +#: pg_recvlogical.c:931 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase kann nur zusammen mit --create-slot angegeben werden" -#: pg_recvlogical.c:956 +#: pg_recvlogical.c:938 +#, c-format +msgid "--failover may only be specified with --create-slot" +msgstr "--failover kann nur zusammen mit --create-slot angegeben werden" + +#: pg_recvlogical.c:975 #, c-format msgid "could not establish database-specific replication connection" msgstr "konnte keine datenbankspezifische Replikationsverbindung herstellen" -#: pg_recvlogical.c:1056 +#: pg_recvlogical.c:1076 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "Endposition %X/%X durch Keepalive erreicht" -#: pg_recvlogical.c:1061 +#: pg_recvlogical.c:1081 #, 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" -#: receivelog.c:66 +#: receivelog.c:65 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "konnte Archivstatusdatei »%s« nicht erstellen: %s" -#: receivelog.c:73 +#: receivelog.c:72 #, c-format msgid "could not close archive status file \"%s\": %s" msgstr "konnte Archivstatusdatei »%s« nicht schließen: %s" -#: receivelog.c:122 +#: receivelog.c:121 #, 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:133 +#: receivelog.c:132 #, 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:142 +#: receivelog.c:141 #, 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:157 +#: receivelog.c:156 #, c-format msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" msgstr[0] "Write-Ahead-Log-Datei »%s« hat %zd Byte, sollte 0 oder %d sein" msgstr[1] "Write-Ahead-Log-Datei »%s« hat %zd Bytes, sollte 0 oder %d sein" -#: receivelog.c:175 +#: receivelog.c:174 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "konnte Write-Ahead-Log-Datei »%s« nicht öffnen: %s" -#: receivelog.c:216 +#: receivelog.c:215 #, c-format msgid "not renaming \"%s\", segment is not complete" msgstr "»%s« wird nicht umbenannt, Segment ist noch nicht vollständig" -#: receivelog.c:227 receivelog.c:317 receivelog.c:688 +#: receivelog.c:226 receivelog.c:316 receivelog.c:687 #, c-format msgid "could not close file \"%s\": %s" msgstr "konnte Datei »%s« nicht schließen: %s" -#: receivelog.c:288 +#: receivelog.c:287 #, 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:297 +#: receivelog.c:296 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "konnte Zeitleisten-History-Datei »%s« nicht erzeugen: %s" -#: receivelog.c:304 +#: receivelog.c:303 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "konnte Zeitleisten-History-Datei »%s« nicht schreiben: %s" -#: receivelog.c:394 +#: receivelog.c:393 #, 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:403 +#: receivelog.c:402 #, 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:508 +#: receivelog.c:507 #, 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:516 +#: 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:555 +#: receivelog.c:554 #, 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:626 +#: receivelog.c:625 #, 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:632 +#: receivelog.c:631 #, 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:672 +#: receivelog.c:671 #, c-format msgid "replication stream was terminated before stop point" msgstr "Replikationsstrom wurde vor Stopppunkt abgebrochen" -#: receivelog.c:718 +#: receivelog.c:717 #, 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:727 +#: receivelog.c:726 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "konnte Startpunkt der nächsten Zeitleiste (»%s«) nicht interpretieren" -#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 +#: receivelog.c:774 receivelog.c:1029 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "konnte Datei »%s« nicht fsyncen: %s" -#: receivelog.c:1083 +#: receivelog.c:1090 #, 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:1093 +#: receivelog.c:1100 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "WAL-Daten-Offset %08x erhalten, %08x erwartet" -#: receivelog.c:1128 +#: receivelog.c:1135 #, c-format msgid "could not write %d bytes to WAL file \"%s\": %s" msgstr "konnte %d Bytes nicht in WAL-Datei »%s« schreiben: %s" -#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 +#: receivelog.c:1160 receivelog.c:1200 receivelog.c:1228 #, c-format msgid "could not send copy-end packet: %s" msgstr "konnte COPY-Ende-Paket nicht senden: %s" @@ -2555,11 +2594,6 @@ msgstr "Passwort: " msgid "could not connect to server" msgstr "konnte nicht mit Server verbinden" -#: streamutil.c:230 -#, c-format -msgid "could not clear \"search_path\": %s" -msgstr "konnte »search_path« nicht auf leer setzen: %s" - #: streamutil.c:246 #, c-format msgid "could not determine server setting for \"integer_datetimes\"" @@ -2570,69 +2604,69 @@ msgstr "konnte Servereinstellung für »integer_datetimes« nicht ermitteln" msgid "\"integer_datetimes\" compile flag does not match server" msgstr "Kompilieroption »integer_datetimes« stimmt nicht mit Server überein" -#: streamutil.c:372 +#: 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:382 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL-Segmentgröße konnte nicht interpretiert werden" -#: streamutil.c:400 +#: streamutil.c:332 #, c-format msgid "remote server reported invalid WAL segment size (%d byte)" msgid_plural "remote server reported invalid WAL segment size (%d bytes)" msgstr[0] "Server meldete ungültige WAL-Segmentgröße (%d Byte)" msgstr[1] "Server meldete ungültige WAL-Segmentgröße (%d Bytes)" -#: streamutil.c:404 +#: streamutil.c:336 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "Die WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein." -#: streamutil.c:446 +#: streamutil.c:378 #, 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:455 +#: streamutil.c:387 #, c-format msgid "group access flag could not be parsed: %s" msgstr "Gruppenzugriffseinstellung konnte nicht interpretiert werden: %s" -#: streamutil.c:498 streamutil.c:535 +#: streamutil.c:430 streamutil.c:467 #, 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" -#: streamutil.c:587 +#: streamutil.c:519 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "konnte Replikations-Slot »%s« nicht lesen: %d Zeilen und %d Felder erhalten, %d Zeilen und %d Felder erwartet" -#: streamutil.c:599 +#: streamutil.c:531 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "Replikations-Slot »%s« existiert nicht" -#: streamutil.c:610 +#: streamutil.c:542 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "physischer Replikations-Slot wurde erwartet, stattdessen wurde Typ »%s« erhalten" -#: streamutil.c:624 +#: streamutil.c:556 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "konnte restart_lsn »%s« für Replikations-Slot »%s« nicht parsen" -#: streamutil.c:741 +#: streamutil.c:678 #, 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:785 +#: streamutil.c:722 #, 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" diff --git a/src/bin/pg_basebackup/po/es.po b/src/bin/pg_basebackup/po/es.po index 1148c0b46b9dc..b637026541f0e 100644 --- a/src/bin/pg_basebackup/po/es.po +++ b/src/bin/pg_basebackup/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_basebackup (PostgreSQL) 16\n" +"Project-Id-Version: pg_basebackup (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:19+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:49+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -70,9 +70,8 @@ msgstr "el valor para la opción de compresión «%s» debe ser un entero" #: ../../common/compression.c:331 #, c-format -#| msgid "value for compression option \"%s\" must be a boolean" msgid "value for compression option \"%s\" must be a Boolean value" -msgstr "el valor para la opción de compresión «%s» debe ser booleano" +msgstr "el valor para la opción de compresión «%s» debe ser un booleano" #: ../../common/compression.c:379 #, c-format @@ -94,6 +93,65 @@ msgstr "el algoritmo de compresión «%s» no acepta una cantidad de procesos ay msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "el algoritmo de compresión «%s» no acepta modo de larga distancia" +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" + +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "no se pudo cerrar el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"posible discordancia en orden de bytes\n" +"El ordenamiento de bytes usado para almacenar el archivo pg_control puede no\n" +"coincidir con el usado por este programa. En tal caso los resultados de abajo\n" +"serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" +"directorio de datos." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "no se pudo escribir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -105,39 +163,69 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 -#: pg_receivewal.c:319 pg_recvlogical.c:339 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "no se pudo hacer stat al archivo «%s»: %m" -#: ../../common/file_utils.c:162 pg_receivewal.c:242 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: ../../common/file_utils.c:196 pg_receivewal.c:471 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "no se pudo leer el directorio «%s»: %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 ../../fe_utils/recovery_gen.c:121 -#: pg_receivewal.c:386 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 -#: pg_recvlogical.c:194 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" +msgid "could not open process token: error code %lu" +msgstr "no se pudo abrir el token de proceso: código de error %lu" -#: ../../common/file_utils.c:379 pg_basebackup.c:2237 walmethods.c:462 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "no se pudo emplazar los SIDs: código de error %lu" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "no se pudo crear el token restringido: código de error %lu" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "no se pudo iniciar el proceso para la orden «%s»: código de error %lu" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "no se pudo re-ejecutar con el token restringido: código de error %lu" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "no se pudo obtener el código de salida del subproceso: código de error %lu" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -149,51 +237,62 @@ msgstr "el valor «%s» no es válido para la opción «%s»" msgid "%s must be in range %d..%d" msgstr "%s debe estar en el rango %d..%d" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 pg_basebackup.c:1609 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método de sync no reconocido: «%s»" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:334 #, c-format msgid "out of memory" msgstr "memoria agotada" -#: ../../fe_utils/recovery_gen.c:124 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1406 pg_basebackup.c:1700 +#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, c-format msgid "could not write to file \"%s\": %m" msgstr "no se pudo escribir a archivo «%s»: %m" -#: ../../fe_utils/recovery_gen.c:133 bbstreamer_file.c:93 bbstreamer_file.c:360 -#: pg_basebackup.c:1470 pg_basebackup.c:1679 +#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "no se pudo crear archivo «%s»: %m" -#: bbstreamer_file.c:138 pg_recvlogical.c:633 +#: ../../fe_utils/string_utils.c:587 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "no se pudo cerrar el archivo «%s»: %m" +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" #: bbstreamer_file.c:275 #, c-format msgid "unexpected state while extracting archive" msgstr "estado inesperado mientras se extraía el archivo" -#: bbstreamer_file.c:320 pg_basebackup.c:686 pg_basebackup.c:730 +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 #, c-format msgid "could not create directory \"%s\": %m" msgstr "no se pudo crear el directorio «%s»: %m" -#: bbstreamer_file.c:325 +#: bbstreamer_file.c:326 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "no se pudo definir los permisos del directorio «%s»: %m" -#: bbstreamer_file.c:344 +#: bbstreamer_file.c:345 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "no se pudo crear un enlace simbólico desde «%s» a «%s»: %m" -#: bbstreamer_file.c:364 +#: bbstreamer_file.c:365 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "no se pudo definir los permisos al archivo «%s»: %m" @@ -228,7 +327,7 @@ msgstr "no se pudo escribir al archivo comprimido «%s»: %s" msgid "could not close compressed file \"%s\": %m" msgstr "no se pudo cerrar el archivo comprimido «%s»: %m" -#: bbstreamer_gzip.c:245 walmethods.c:876 +#: bbstreamer_gzip.c:245 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "no se pudo inicializar la biblioteca de compresión" @@ -278,12 +377,12 @@ msgstr "la terminación del archivo tar excede de 2 bloques" msgid "unexpected state while parsing tar archive" msgstr "se encontró un estado inesperado mientras se interpretaba el archivo tar" -#: bbstreamer_tar.c:296 +#: bbstreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "miembro de tar tiene nombre vacío" -#: bbstreamer_tar.c:328 +#: bbstreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "el flujo COPY terminó antes que el último archivo estuviera completo" @@ -305,115 +404,117 @@ msgstr "no se pudo definir la cantidad de procesos ayudantes de compresión a %d #: bbstreamer_zstd.c:116 #, c-format -#| msgid "could not enable user right \"%s\"" msgid "could not enable long-distance mode: %s" -msgstr "no se pudo habilitar el modo “long-distance”: %s" +msgstr "no se pudo habilitar el modo de larga distancia: %s" #: bbstreamer_zstd.c:275 #, c-format msgid "could not create zstd decompression context" msgstr "no se pudo crear el contexto de descompresión zstd" -#: pg_basebackup.c:238 +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "eliminando el directorio de datos «%s»" -#: pg_basebackup.c:240 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "no se pudo eliminar el directorio de datos" -#: pg_basebackup.c:244 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "eliminando el contenido del directorio «%s»" -#: pg_basebackup.c:246 +#: pg_basebackup.c:253 #, c-format msgid "failed to remove contents of data directory" msgstr "no se pudo eliminar el contenido del directorio de datos" -#: pg_basebackup.c:251 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "eliminando el directorio de WAL «%s»" -#: pg_basebackup.c:253 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "no se pudo eliminar el directorio de WAL" -#: pg_basebackup.c:257 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "eliminando el contenido del directorio de WAL «%s»" -#: pg_basebackup.c:259 +#: pg_basebackup.c:266 #, c-format msgid "failed to remove contents of WAL directory" msgstr "no se pudo eliminar el contenido del directorio de WAL" -#: pg_basebackup.c:265 +#: pg_basebackup.c:272 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "directorio de datos «%s» no eliminado a petición del usuario" -#: pg_basebackup.c:268 +#: pg_basebackup.c:275 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "directorio de WAL «%s» no eliminado a petición del usuario" -#: pg_basebackup.c:272 +#: pg_basebackup.c:279 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "los cambios a los directorios de tablespaces no se desharán" -#: pg_basebackup.c:324 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "nombre de directorio demasiado largo" -#: pg_basebackup.c:331 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "múltiples signos «=» en mapeo de tablespace" -#: pg_basebackup.c:340 +#: pg_basebackup.c:347 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "formato de mapeo de tablespace «%s» no válido, debe ser «ANTIGUO=NUEVO»" -#: pg_basebackup.c:359 +#: pg_basebackup.c:366 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "directorio antiguo no es una ruta absoluta en mapeo de tablespace: %s" -#: pg_basebackup.c:363 +#: pg_basebackup.c:370 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "directorio nuevo no es una ruta absoluta en mapeo de tablespace: %s" -#: pg_basebackup.c:385 +#: pg_basebackup.c:392 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" "\n" msgstr "" -"%s obtiene un respaldo base a partir de un servidor PostgreSQL en ejecución.\n" +"%s obtiene un respaldo base a partir de un servidor PostgreSQL\n" +"en ejecución.\n" "\n" -#: pg_basebackup.c:387 pg_receivewal.c:79 pg_recvlogical.c:76 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_basebackup.c:388 pg_receivewal.c:80 pg_recvlogical.c:77 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPCIÓN]...\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:396 #, c-format msgid "" "\n" @@ -422,17 +523,26 @@ msgstr "" "\n" "Opciones que controlan la salida:\n" -#: pg_basebackup.c:390 +#: pg_basebackup.c:397 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, --pgdata=DIR directorio en el cual recibir el respaldo base\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:398 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr " -F, --format=p|t formato de salida (plano (por omisión), tar)\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:399 +#, c-format +msgid "" +" -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr "" +" -i, --incremental=MANIFIESTOANTIGUO\n" +" tomar respaldo base incremental\n" + +#: pg_basebackup.c:401 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -441,7 +551,7 @@ msgstr "" " -r, --max-rate=TASA máxima tasa a la que transferir el directorio de datos\n" " (en kB/s, o use sufijos «k» o «M»)\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:403 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -450,7 +560,7 @@ msgstr "" " -R, --write-recovery-conf\n" " escribe configuración para replicación\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:405 #, c-format msgid "" " -t, --target=TARGET[:DETAIL]\n" @@ -459,7 +569,7 @@ msgstr "" " -t, --target=DESTINO:[DETALLE]\n" " destino del respaldo base (si no es el cliente)\n" -#: pg_basebackup.c:398 +#: pg_basebackup.c:407 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -468,12 +578,12 @@ msgstr "" " -T, --tablespace-mapping=ANTIGUO=NUEVO\n" " reubicar el directorio de tablespace de ANTIGUO a NUEVO\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:409 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr " --waldir=DIRWAL ubicación para el directorio WAL\n" -#: pg_basebackup.c:401 +#: pg_basebackup.c:410 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -481,14 +591,14 @@ msgid "" msgstr "" " -X, --wal-method=none|fetch|stream\n" " incluye los archivos WAL necesarios,\n" -" en el modo especificado\n" +" usando el método especificado\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip comprimir la salida de tar\n" -#: pg_basebackup.c:404 +#: pg_basebackup.c:413 #, c-format msgid "" " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" @@ -497,12 +607,12 @@ msgstr "" " -Z, --compress=[{client|server}-]MÉTODO[:DETALLE]\n" " comprimir en cliente o servidor como se especifica\n" -#: pg_basebackup.c:406 +#: pg_basebackup.c:415 #, c-format msgid " -Z, --compress=none do not compress tar output\n" msgstr " -Z, --compress=none no comprimir la salida tar\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:416 #, c-format msgid "" "\n" @@ -511,89 +621,93 @@ msgstr "" "\n" "Opciones generales:\n" -#: pg_basebackup.c:408 +#: pg_basebackup.c:417 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" -" set fast or spread checkpointing\n" +" set fast or spread (default) checkpointing\n" msgstr "" -" -c, --checkpoint=fast|spread\n" -" utilizar checkpoint rápido o extendido\n" +" -c, --checkpoint=spread|fast\n" +" utilizar checkpoint extendido (por omisión) o rápido\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " -C, --create-slot crear un slot de replicación\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=ETIQUETA establecer etiqueta del respaldo\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:421 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean no hacer limpieza tras errores\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:422 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress mostrar información de progreso\n" -#: pg_basebackup.c:415 pg_receivewal.c:89 +#: pg_basebackup.c:424 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=NOMBRE slot de replicación a usar\n" -#: pg_basebackup.c:416 pg_receivewal.c:91 pg_recvlogical.c:98 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose desplegar mensajes verbosos\n" -#: pg_basebackup.c:417 pg_receivewal.c:92 pg_recvlogical.c:99 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión, luego salir\n" -#: pg_basebackup.c:418 +#: pg_basebackup.c:427 #, 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" -" usar algoritmo para sumas de comprobación del manifiesto\n" +" algoritmo a usar para \"checksums\" del manifiesto\n" -#: pg_basebackup.c:420 +#: pg_basebackup.c:429 #, c-format msgid "" " --manifest-force-encode\n" " hex encode all file names in manifest\n" msgstr "" -" --manifest-force-encode\n" -" codifica a hexadecimal todos los nombres de archivo en el manifiesto\n" +" --manifest-force-encode codifica a hexadecimal todos los nombres\n" +" de archivo en el manifiesto\n" -#: pg_basebackup.c:422 +#: pg_basebackup.c:431 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" -msgstr " --no-estimate-size no estimar el tamaño del la copia de seguridad en el lado del servidor\n" +msgstr "" +" --no-estimate-size no estimar el tamaño de la copia de seguridad en\n" +" el lado del servidor\n" -#: pg_basebackup.c:423 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" -msgstr " --no-manifest suprimir la generación del manifiesto de la copia de seguridad\n" +msgstr "" +" --no-manifest suprimir la generación del manifiesto\n" +" de la copia de seguridad\n" -#: pg_basebackup.c:424 +#: pg_basebackup.c:433 #, c-format msgid " --no-slot prevent creation of temporary replication slot\n" msgstr " --no-slot evitar la creación de un slot de replicación temporal\n" -#: pg_basebackup.c:425 +#: pg_basebackup.c:434 #, c-format msgid "" " --no-verify-checksums\n" @@ -602,12 +716,19 @@ msgstr "" " --no-verify-checksums\n" " no verificar checksums\n" -#: pg_basebackup.c:427 pg_receivewal.c:95 pg_recvlogical.c:100 +#: pg_basebackup.c:436 +#, c-format +msgid "" +" --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método para sincronizar archivos a disco\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda, luego salir\n" -#: pg_basebackup.c:428 pg_receivewal.c:96 pg_recvlogical.c:101 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "" "\n" @@ -616,22 +737,22 @@ msgstr "" "\n" "Opciones de conexión:\n" -#: pg_basebackup.c:429 pg_receivewal.c:97 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONSTR cadena de conexión\n" -#: pg_basebackup.c:430 pg_receivewal.c:98 pg_recvlogical.c:103 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ANFITRIÓN dirección del servidor o directorio del socket\n" -#: pg_basebackup.c:431 pg_receivewal.c:99 pg_recvlogical.c:104 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT número de port del servidor\n" -#: pg_basebackup.c:432 +#: pg_basebackup.c:443 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -640,24 +761,25 @@ msgstr "" " -s, --status-interval=INTERVALO (segundos)\n" " tiempo entre envíos de paquetes de estado al servidor\n" -#: pg_basebackup.c:434 pg_receivewal.c:100 pg_recvlogical.c:105 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NOMBRE conectarse con el usuario especificado\n" -#: pg_basebackup.c:435 pg_receivewal.c:101 pg_recvlogical.c:106 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir contraseña\n" -#: pg_basebackup.c:436 pg_receivewal.c:102 pg_recvlogical.c:107 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password forzar un prompt para la contraseña\n" " (debería ser automático)\n" -#: pg_basebackup.c:437 pg_receivewal.c:106 pg_recvlogical.c:108 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "" "\n" @@ -666,484 +788,549 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_basebackup.c:438 pg_receivewal.c:107 pg_recvlogical.c:109 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_basebackup.c:477 +#: pg_basebackup.c:488 #, c-format msgid "could not read from ready pipe: %m" msgstr "no se pudo leer desde la tubería: %m" -#: pg_basebackup.c:480 pg_basebackup.c:622 pg_basebackup.c:2151 -#: streamutil.c:441 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:521 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "no se pudo interpretar la ubicación del WAL «%s»" -#: pg_basebackup.c:585 pg_receivewal.c:600 +#: pg_basebackup.c:596 pg_receivewal.c:600 #, c-format msgid "could not finish writing WAL files: %m" msgstr "no se pudo completar la escritura de archivos WAL: %m" -#: pg_basebackup.c:631 +#: pg_basebackup.c:642 #, c-format msgid "could not create pipe for background process: %m" msgstr "no se pudo crear la tubería para el proceso en segundo plano: %m" -#: pg_basebackup.c:664 +#: pg_basebackup.c:676 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "se creó slot temporal de replicación «%s»" -#: pg_basebackup.c:667 +#: pg_basebackup.c:679 #, c-format msgid "created replication slot \"%s\"" msgstr "se creó el slot de replicación «%s»" -#: pg_basebackup.c:701 +#: pg_basebackup.c:728 #, c-format msgid "could not create background process: %m" msgstr "no se pudo lanzar el proceso en segundo plano: %m" -#: pg_basebackup.c:710 +#: pg_basebackup.c:737 #, c-format msgid "could not create background thread: %m" msgstr "no se pudo lanzar el hilo en segundo plano: %m" -#: pg_basebackup.c:749 +#: pg_basebackup.c:776 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "el directorio «%s» existe pero no está vacío" -#: pg_basebackup.c:755 +#: pg_basebackup.c:782 pg_createsubscriber.c:390 #, c-format msgid "could not access directory \"%s\": %m" msgstr "no se pudo acceder al directorio «%s»: %m" -#: pg_basebackup.c:831 +#: pg_basebackup.c:858 #, 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:843 +#: pg_basebackup.c:870 #, 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:859 +#: pg_basebackup.c:886 #, 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:883 +#: pg_basebackup.c:910 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "tasa de transferencia «%s» no es un valor válido" -#: pg_basebackup.c:885 +#: pg_basebackup.c:912 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "tasa de transferencia «%s» no válida: %m" -#: pg_basebackup.c:892 +#: pg_basebackup.c:919 #, c-format msgid "transfer rate must be greater than zero" msgstr "tasa de transferencia debe ser mayor que cero" -#: pg_basebackup.c:922 +#: pg_basebackup.c:949 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "unidad de --max-rato no válida: «%s»" -#: pg_basebackup.c:926 +#: pg_basebackup.c:953 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "la tasa de transferencia «%s» excede el rango de enteros" -#: pg_basebackup.c:933 +#: pg_basebackup.c:960 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "la tasa de transferencia «%s» está fuera de rango" -#: pg_basebackup.c:995 +#: pg_basebackup.c:1022 #, c-format msgid "could not get COPY data stream: %s" msgstr "no se pudo obtener un flujo de datos COPY: %s" -#: pg_basebackup.c:1012 pg_recvlogical.c:436 pg_recvlogical.c:608 +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 #: receivelog.c:973 #, c-format msgid "could not read COPY data: %s" msgstr "no fue posible leer datos COPY: %s" -#: pg_basebackup.c:1016 +#: pg_basebackup.c:1043 #, c-format msgid "background process terminated unexpectedly" msgstr "un proceso en segundo plano terminó inesperadamente" -#: pg_basebackup.c:1087 +#: pg_basebackup.c:1114 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "no se pueden inyectar un manifiesto en un archivo tar comprimido" -#: pg_basebackup.c:1088 +#: pg_basebackup.c:1115 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "Use compresión del lado del cliente, envíe la salida a un directorio en lugar de a salida estándar, o use %s." -#: pg_basebackup.c:1104 +#: pg_basebackup.c:1131 #, c-format msgid "cannot parse archive \"%s\"" msgstr "no se pudo interpretar el archivo «%s»" -#: pg_basebackup.c:1105 +#: pg_basebackup.c:1132 #, c-format msgid "Only tar archives can be parsed." msgstr "Sólo los archivos tar pueden ser interpretados." -#: pg_basebackup.c:1107 +#: pg_basebackup.c:1134 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "El formato plano requiere que pg_basebackup interprete el archivo." -#: pg_basebackup.c:1109 +#: pg_basebackup.c:1136 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "Usar - como directorio de salida requiere que pg_basebackup interprete el archivo." -#: pg_basebackup.c:1111 +#: pg_basebackup.c:1138 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "La opción -R requiere que pg_basebackup interprete el archivo." -#: pg_basebackup.c:1330 +#: pg_basebackup.c:1357 #, c-format msgid "archives must precede manifest" msgstr "los archivos deben preceder al manifiesto" -#: pg_basebackup.c:1345 +#: pg_basebackup.c:1372 #, c-format msgid "invalid archive name: \"%s\"" msgstr "nombre de archivo no válido: «%s»" -#: pg_basebackup.c:1417 +#: pg_basebackup.c:1444 #, c-format msgid "unexpected payload data" msgstr "datos inesperados" -#: pg_basebackup.c:1560 +#: pg_basebackup.c:1587 #, c-format msgid "empty COPY message" msgstr "mensaje COPY vacío" -#: pg_basebackup.c:1562 +#: pg_basebackup.c:1589 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "mensaje COPY mal formado de tipo %d, largo %zu" -#: pg_basebackup.c:1760 +#: pg_basebackup.c:1789 #, c-format msgid "incompatible server version %s" msgstr "versión del servidor %s incompatible" -#: pg_basebackup.c:1776 +#: pg_basebackup.c:1805 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "Use -X none o -X fetch para deshabilitar el flujo de log." -#: pg_basebackup.c:1844 +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "el servidor no soporta backup incremental" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:367 streamutil.c:441 +#: streamutil.c:493 streamutil.c:581 streamutil.c:733 streamutil.c:778 +#, c-format +msgid "could not send replication command \"%s\": %s" +msgstr "no se pudo ejecutar la orden de replicación «%s»: %s" + +#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "no se pudo cargar el manifiesto: %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#, c-format +msgid "could not upload manifest: unexpected status %s" +msgstr "no se pudo cargar el manifiesto: estado inesperado %s" + +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "no fue posible enviar datos COPY: %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "no se pudo enviar fin-de-COPY: %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "conjunto de resultados inesperado mientras se enviaba el manifiesto" + +#: pg_basebackup.c:1950 #, c-format msgid "backup targets are not supported by this server version" msgstr "los destinos de respaldo no están soportados por esta versión de servidor" -#: pg_basebackup.c:1847 +#: pg_basebackup.c:1953 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "la configuración de recuperación no puede ser escrita cuando se usa un destino de respaldo base" -#: pg_basebackup.c:1874 +#: pg_basebackup.c:1980 #, c-format msgid "server does not support server-side compression" msgstr "el servidor no soporta compresión del lado del servidor" -#: pg_basebackup.c:1884 +#: pg_basebackup.c:1990 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "iniciando el respaldo base, esperando que el checkpoint se complete" -#: pg_basebackup.c:1888 +#: pg_basebackup.c:1994 #, c-format msgid "waiting for checkpoint" msgstr "esperando al checkpoint" -#: pg_basebackup.c:1901 pg_recvlogical.c:260 receivelog.c:543 receivelog.c:582 -#: streamutil.c:288 streamutil.c:361 streamutil.c:413 streamutil.c:501 -#: streamutil.c:653 streamutil.c:698 -#, c-format -msgid "could not send replication command \"%s\": %s" -msgstr "no se pudo ejecutar la orden de replicación «%s»: %s" - -#: pg_basebackup.c:1909 +#: pg_basebackup.c:2016 #, c-format msgid "could not initiate base backup: %s" msgstr "no se pudo iniciar el respaldo base: %s" -#: pg_basebackup.c:1912 +#: pg_basebackup.c:2019 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "el servidor envió una respuesta inesperada a la orden BASE_BACKUP; se obtuvieron %d filas y %d campos, se esperaban %d filas y %d campos" -#: pg_basebackup.c:1918 +#: pg_basebackup.c:2025 #, c-format msgid "checkpoint completed" msgstr "el checkpoint se ha completado" -#: pg_basebackup.c:1932 +#: pg_basebackup.c:2039 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "punto de inicio del WAL: %s en el timeline %u" -#: pg_basebackup.c:1940 +#: pg_basebackup.c:2047 #, c-format msgid "could not get backup header: %s" msgstr "no se pudo obtener la cabecera de respaldo: %s" -#: pg_basebackup.c:1943 +#: pg_basebackup.c:2050 #, c-format msgid "no data returned from server" msgstr "el servidor no retornó datos" -#: pg_basebackup.c:1986 +#: pg_basebackup.c:2093 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "sólo se puede escribir un tablespace a stdout, la base de datos tiene %d" -#: pg_basebackup.c:1999 +#: pg_basebackup.c:2106 #, c-format msgid "starting background WAL receiver" msgstr "iniciando el receptor de WAL en segundo plano" -#: pg_basebackup.c:2082 +#: pg_basebackup.c:2189 #, c-format msgid "backup failed: %s" msgstr "el respaldo falló: %s" -#: pg_basebackup.c:2085 +#: pg_basebackup.c:2192 #, c-format msgid "no write-ahead log end position returned from server" msgstr "el servidor no retornó la posición final del WAL" -#: pg_basebackup.c:2088 +#: pg_basebackup.c:2195 #, c-format msgid "write-ahead log end point: %s" msgstr "posición final del WAL: %s" -#: pg_basebackup.c:2099 +#: pg_basebackup.c:2206 #, c-format msgid "checksum error occurred" msgstr "ocurrió un error de checksums" -#: pg_basebackup.c:2104 +#: pg_basebackup.c:2211 #, c-format msgid "final receive failed: %s" msgstr "la recepción final falló: %s" -#: pg_basebackup.c:2128 +#: pg_basebackup.c:2235 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "esperando que el proceso en segundo plano complete el flujo..." -#: pg_basebackup.c:2132 +#: pg_basebackup.c:2239 #, c-format msgid "could not send command to background pipe: %m" msgstr "no se pudo enviar una orden a la tubería de segundo plano: %m" -#: pg_basebackup.c:2137 +#: pg_basebackup.c:2244 #, c-format msgid "could not wait for child process: %m" msgstr "no se pudo esperar al proceso hijo: %m" -#: pg_basebackup.c:2139 +#: pg_basebackup.c:2246 #, c-format msgid "child %d died, expected %d" msgstr "el hijo %d murió, pero se esperaba al %d" -#: pg_basebackup.c:2141 streamutil.c:91 streamutil.c:196 +#: pg_basebackup.c:2248 streamutil.c:92 streamutil.c:207 streamutil.c:319 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2161 +#: pg_basebackup.c:2268 #, c-format msgid "could not wait for child thread: %m" msgstr "no se pudo esperar el hilo hijo: %m" -#: pg_basebackup.c:2166 +#: pg_basebackup.c:2273 #, c-format msgid "could not get child thread exit status: %m" msgstr "no se pudo obtener la cabecera de respaldo: %m" -#: pg_basebackup.c:2169 +#: pg_basebackup.c:2276 #, c-format msgid "child thread exited with error %u" msgstr "el hilo hijo terminó con error %u" -#: pg_basebackup.c:2198 +#: pg_basebackup.c:2305 #, c-format msgid "syncing data to disk ..." msgstr "sincronizando datos a disco ..." -#: pg_basebackup.c:2223 +#: pg_basebackup.c:2330 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "renombrando backup_manifest.tmp a backup_manifest" -#: pg_basebackup.c:2243 +#: pg_basebackup.c:2350 #, c-format msgid "base backup completed" msgstr "el respaldo base se ha completado" -#: pg_basebackup.c:2326 +#: pg_basebackup.c:2436 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "argumento de checkpoint «%s» no válido, debe ser «fast» o «spread»" -#: pg_basebackup.c:2344 +#: pg_basebackup.c:2454 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "formato de salida «%s» no válido, debe ser «plain» o «tar»" -#: pg_basebackup.c:2422 +#: pg_basebackup.c:2535 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "opción de wal-method «%s» no válida, debe ser «fetch», «stream» o «none»" -#: pg_basebackup.c:2457 pg_basebackup.c:2469 pg_basebackup.c:2491 -#: pg_basebackup.c:2503 pg_basebackup.c:2509 pg_basebackup.c:2561 -#: pg_basebackup.c:2572 pg_basebackup.c:2582 pg_basebackup.c:2588 -#: pg_basebackup.c:2595 pg_basebackup.c:2607 pg_basebackup.c:2619 -#: pg_basebackup.c:2627 pg_basebackup.c:2640 pg_basebackup.c:2646 -#: pg_basebackup.c:2655 pg_basebackup.c:2667 pg_basebackup.c:2678 -#: pg_basebackup.c:2686 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2038 pg_createsubscriber.c:2048 +#: pg_createsubscriber.c:2056 pg_createsubscriber.c:2084 +#: pg_createsubscriber.c:2116 pg_receivewal.c:748 pg_receivewal.c:760 #: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:835 pg_recvlogical.c:847 -#: pg_recvlogical.c:857 pg_recvlogical.c:864 pg_recvlogical.c:871 -#: pg_recvlogical.c:878 pg_recvlogical.c:885 pg_recvlogical.c:892 -#: pg_recvlogical.c:899 pg_recvlogical.c:906 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_basebackup.c:2467 pg_receivewal.c:758 pg_recvlogical.c:845 +#: pg_basebackup.c:2584 pg_createsubscriber.c:2046 pg_receivewal.c:758 +#: pg_recvlogical.c:863 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_basebackup.c:2490 +#: pg_basebackup.c:2607 #, c-format msgid "cannot specify both format and backup target" msgstr "no se puede especificar un formato junto con un destino de respaldo" -#: pg_basebackup.c:2502 +#: pg_basebackup.c:2619 #, c-format msgid "must specify output directory or backup target" msgstr "debe especificar un directorio de salida o destino de respaldo base" -#: pg_basebackup.c:2508 +#: pg_basebackup.c:2625 #, c-format msgid "cannot specify both output directory and backup target" msgstr "no se puede especificar un directorio de salida junto con un destino de respaldo" -#: pg_basebackup.c:2538 pg_receivewal.c:802 +#: pg_basebackup.c:2655 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "algoritmo de compresión no reconocido: «%s»" -#: pg_basebackup.c:2544 pg_receivewal.c:809 +#: pg_basebackup.c:2661 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "especificación de compresión no válida: %s" -#: pg_basebackup.c:2560 +#: pg_basebackup.c:2677 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "la compresión del lado del cliente no es posible cuando se especifica un destino del respaldo base" -#: pg_basebackup.c:2571 +#: pg_basebackup.c:2688 #, c-format msgid "only tar mode backups can be compressed" msgstr "sólo los respaldos de modo tar pueden ser comprimidos" -#: pg_basebackup.c:2581 +#: pg_basebackup.c:2698 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "no se puede enviar WAL cuando se especifica un destino del respaldo base" -#: pg_basebackup.c:2587 +#: pg_basebackup.c:2704 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "no se puede enviar WALs en modo tar a stdout" -#: pg_basebackup.c:2594 +#: pg_basebackup.c:2711 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "los slots de replicación sólo pueden usarse con flujo de WAL" -#: pg_basebackup.c:2606 +#: pg_basebackup.c:2723 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "no se puede usar --no-slot junto con nombre de slot" #. translator: second %s is an option name -#: pg_basebackup.c:2617 pg_receivewal.c:774 +#: pg_basebackup.c:2734 pg_receivewal.c:774 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "la opcón %s necesita que se especifique un slot con --slot" -#: pg_basebackup.c:2625 pg_basebackup.c:2665 pg_basebackup.c:2676 -#: pg_basebackup.c:2684 +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 #, c-format msgid "%s and %s are incompatible options" msgstr "%s y %s son opciones incompatibles" -#: pg_basebackup.c:2639 +#: pg_basebackup.c:2756 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "la ubicación del directorio de WAL no puede especificarse junto con un destino de respaldo" -#: pg_basebackup.c:2645 +#: pg_basebackup.c:2762 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "la ubicación del directorio de WAL sólo puede especificarse en modo «plain»" -#: pg_basebackup.c:2654 +#: pg_basebackup.c:2771 #, c-format msgid "WAL directory location must be an absolute path" msgstr "la ubicación del directorio de WAL debe ser una ruta absoluta" -#: pg_basebackup.c:2754 +#: pg_basebackup.c:2871 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "no se pudo crear el enlace simbólico «%s»: %m" -#: pg_receivewal.c:77 +#: pg_createsubscriber.c:169 +#, c-format +msgid "failed after the end of recovery" +msgstr "falló al final de la recuperación" + +#: pg_createsubscriber.c:170 +#, c-format +msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." +msgstr "El servidor de destino no puede ser usado más como réplica física. Debe volver a crear la réplica física antes de continuar." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "la publicación «%s» en la base de datos «%s» en el primaro fue abandonada" + +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "Borre esta publicación antes de volver a intentar." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "el slot de replicación «%s» en la base de datos «%s» en el primario fue abandonada" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1261 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "Elimine este slot de replicación pronto para evitar la retención de archivos WAL." + +#: pg_createsubscriber.c:219 #, c-format msgid "" -"%s receives PostgreSQL streaming write-ahead logs.\n" +"%s creates a new logical replica from a standby server.\n" "\n" msgstr "" -"%s recibe flujos del WAL de PostgreSQL.\n" +"%s crea una nueva réplica lógica a partir de un\n" +"servidor standby.\n" "\n" -#: pg_receivewal.c:81 pg_recvlogical.c:82 +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 #, c-format msgid "" "\n" @@ -1152,22 +1339,638 @@ msgstr "" "\n" "Opciones:\n" +#: pg_createsubscriber.c:224 +#, c-format +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --dbname=BASE-DATOS base de datos en la cual crear una suscripción\n" + +#: pg_createsubscriber.c:225 +#, c-format +msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" +msgstr " -D, --pgdata=DATADIR ubicación del directorio de datos del suscriptor\n" + +#: pg_createsubscriber.c:226 +#, c-format +msgid " -n, --dry-run dry run, just show what would be done\n" +msgstr " -n, --dry-run no actualiza, sólo muestra lo que se haría\n" + +#: pg_createsubscriber.c:227 +#, c-format +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr " -p, --subscriber-port=PUERTO número de puerto del suscriptor (def. %s)\n" + +#: pg_createsubscriber.c:228 +#, c-format +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CONSTR cadena de conexión del publicador\n" + +#: pg_createsubscriber.c:229 +#, c-format +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=DIR directorio de sockets a usar (omisión: dir. actual)\n" + +#: pg_createsubscriber.c:230 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=SEGS segundos a esperar a que la recuperación termine\n" + +#: pg_createsubscriber.c:231 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=USUARIO nombre de usuario para conexión del suscriptor\n" + +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose desplegar mensajes verbosos\n" + +#: pg_createsubscriber.c:233 +#, c-format +msgid "" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" +msgstr "" +" --config-file=ARCHIVO utilizar el archivo de configuración del servidor\n" +" principal especificado al ejecutar el clúster de destino\n" + +#: pg_createsubscriber.c:235 +#, c-format +msgid " --publication=NAME publication name\n" +msgstr " --publication=NOMBRE nombre de publicación\n" + +#: pg_createsubscriber.c:236 +#, c-format +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=NOMBRE nombre de slot de replicación\n" + +#: pg_createsubscriber.c:237 +#, c-format +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NOMBRE nombre de suscripción\n" + +#: pg_createsubscriber.c:238 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version mostrar información de versión y salir\n" + +#: pg_createsubscriber.c:239 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help mostrar esta ayuda y salir\n" + +#: pg_createsubscriber.c:282 +#, c-format +msgid "could not parse connection string: %s" +msgstr "no se pudo interpretar la cadena de conexión: %s" + +#: pg_createsubscriber.c:359 +#, c-format +msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" +msgstr "el programa «%s» es requerido por %s pero se encontró en el mismo directorio que «%s»" + +#: pg_createsubscriber.c:362 +#, c-format +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "El programa «%s» fue encontrado por «%s», pero no es de la misma versión que %s" + +#: pg_createsubscriber.c:382 +#, c-format +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "verificando si el directorio «%s» es un directorio de datos de base de datos" + +#: pg_createsubscriber.c:388 +#, c-format +msgid "data directory \"%s\" does not exist" +msgstr "no existe el directorio de datos «%s»" + +#: pg_createsubscriber.c:396 +#, c-format +msgid "directory \"%s\" is not a database cluster directory" +msgstr "el directorio «%s» no es un directorio de base de datos" + +#: pg_createsubscriber.c:513 +#, c-format +msgid "connection to database failed: %s" +msgstr "falló la conexión a la base de datos: %s" + +#: pg_createsubscriber.c:526 +#, c-format +msgid "could not clear search_path: %s" +msgstr "no se pudo limpiar search_path: %s" + +#: pg_createsubscriber.c:566 +#, c-format +msgid "getting system identifier from publisher" +msgstr "obteniendo el identificador de sistema del publicador" + +#: pg_createsubscriber.c:573 +#, c-format +msgid "could not get system identifier: %s" +msgstr "no se pudo obtener el identificador de sistema: %s" + +#: pg_createsubscriber.c:579 +#, c-format +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "no se pudo obtener el identificador de sistema: se obtuvieron %d filas, se esperaban %d filas" + +#: pg_createsubscriber.c:586 +#, c-format +msgid "system identifier is %llu on publisher" +msgstr "identificador de sistema es %llu en el publicador" + +#: pg_createsubscriber.c:607 +#, c-format +msgid "getting system identifier from subscriber" +msgstr "obteniendo identificador de sistema del suscriptor" + +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 +#, c-format +msgid "control file appears to be corrupt" +msgstr "el archivo de control parece estar corrupto" + +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 +#, c-format +msgid "system identifier is %llu on subscriber" +msgstr "el identificador de sistema es %llu en suscriptor" + +#: pg_createsubscriber.c:637 +#, c-format +msgid "modifying system identifier of subscriber" +msgstr "modificando el identificador de sistema del suscriptor" + +#: pg_createsubscriber.c:659 +#, c-format +msgid "running pg_resetwal on the subscriber" +msgstr "ejecutando pg_resetwal en el suscriptor" + +#: pg_createsubscriber.c:671 +#, c-format +msgid "subscriber successfully changed the system identifier" +msgstr "el suscriptor cambió exitosamente el identificador de sistema" + +#: pg_createsubscriber.c:673 +#, c-format +msgid "could not change system identifier of subscriber: %s" +msgstr "no se pudo cambiar el identificador de sistema del suscriptor: %s" + +#: pg_createsubscriber.c:697 +#, c-format +msgid "could not obtain database OID: %s" +msgstr "no se pudo obtener el OID de base de datos: %s" + +#: pg_createsubscriber.c:704 +#, c-format +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "no se pudo obtener el OID de base de datos: se obtuvieron %d filas, se esperaban %d filas" + +#: pg_createsubscriber.c:776 +#, c-format +msgid "create replication slot \"%s\" on publisher" +msgstr "crear el slot de replicación «%s» en el publicador" + +#: pg_createsubscriber.c:796 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "no se pudo escribir un registro WAL adicional: %s" + +#: pg_createsubscriber.c:822 +#, c-format +msgid "could not obtain recovery progress: %s" +msgstr "no se pudo obtener el progreso de la recuperación: %s" + +#: pg_createsubscriber.c:854 +#, c-format +msgid "checking settings on publisher" +msgstr "verificando configuración en el publicador" + +#: pg_createsubscriber.c:864 +#, c-format +msgid "primary server cannot be in recovery" +msgstr "el servidor primario no puede estar en recuperación" + +#: pg_createsubscriber.c:888 +#, c-format +msgid "could not obtain publisher settings: %s" +msgstr "no se pudo obtener configuraciones del publicador: %s" + +# FIXME see slot.c:779. See also postmaster.c:835 +#: pg_createsubscriber.c:914 +#, c-format +msgid "publisher requires wal_level >= \"logical\"" +msgstr "el publicador requiere wal_level >= «logical»" + +#: pg_createsubscriber.c:920 +#, c-format +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "el publicador requiere %d slots de replicación, pero solo quedan %d" + +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Aumente el parámetro de configuración «%s» a al menos %d." + +#: pg_createsubscriber.c:929 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "el publicador requiere %d procesos WAL sender, pero sólo quedan %d" + +#: pg_createsubscriber.c:938 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "la opción two_phase no será activada en los slots de replicación" + +#: pg_createsubscriber.c:939 +#, c-format +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "Las suscripciones serán creadas con la opción two_phase desactivada. Las transacciones preparadas serán replicadas durante COMMIT PREPARED." + +#: pg_createsubscriber.c:971 +#, c-format +msgid "checking settings on subscriber" +msgstr "verificando configuraciones en el suscriptor" + +#: pg_createsubscriber.c:978 +#, c-format +msgid "target server must be a standby" +msgstr "el servidor de destino debe ser un standby" + +#: pg_createsubscriber.c:1002 +#, c-format +msgid "could not obtain subscriber settings: %s" +msgstr "no se pudo obtener la configuración del suscriptor: %s" + +#: pg_createsubscriber.c:1026 +#, c-format +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "el suscriptor requiere %d slots de replicación, pero sólo quedan %d" + +#: pg_createsubscriber.c:1035 +#, c-format +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "el suscriptor requiere %d procesos de replicación lógica, pero sólo quedan %d" + +#: pg_createsubscriber.c:1044 +#, c-format +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "el suscriptor requiere %d procesos ayudantes, pero solo quedan %d" + +#: pg_createsubscriber.c:1079 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "eliminando suscripción «%s» en base de datos «%s»" + +#: pg_createsubscriber.c:1088 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "no se pudo eliminar la suscripción «%s»: %s" + +#: pg_createsubscriber.c:1123 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "no se pudo obtener suscripciones pre-existentes: %s" + +#: pg_createsubscriber.c:1259 +#, c-format +msgid "could not drop replication slot \"%s\" on primary" +msgstr "no se pudo eliminar el slot de replicación «%s» en el primario" + +#: pg_createsubscriber.c:1293 +#, c-format +msgid "could not obtain failover replication slot information: %s" +msgstr "no se pudo obtener información de slots de replicación \"failover\": %s" + +#: pg_createsubscriber.c:1295 pg_createsubscriber.c:1304 +#, c-format +msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." +msgstr "Elimine los slots de replicación de failover en el suscriptor pronto para evitar retención de archivos WAL." + +#: pg_createsubscriber.c:1303 +#, c-format +msgid "could not drop failover replication slot" +msgstr "no se pudo eliminar el slot de replicación \"failover\"" + +#: pg_createsubscriber.c:1325 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "creando el slot de replicación «%s» en base de datos «%s»" + +#: pg_createsubscriber.c:1343 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "no se pudo crear el slot de replicación «%s» en base de datos «%s»: %s" + +#: pg_createsubscriber.c:1373 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "eliminando el slot de replicación «%s» en base de datos «%s»" + +#: pg_createsubscriber.c:1389 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "no se pudo eliminar el slot de replicación «%s» en base de datos «%s»: %s" + +#: pg_createsubscriber.c:1410 +#, c-format +msgid "pg_ctl failed with exit code %d" +msgstr "pg_ctl falló con código de retorno %d" + +#: pg_createsubscriber.c:1415 +#, c-format +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "pg_ctl fue terminado por una excepción 0x%X" + +#: pg_createsubscriber.c:1417 +#, c-format +msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "Vea el archivo «ntstatus.h» para una descripción del valor hexadecimal." + +#: pg_createsubscriber.c:1419 +#, c-format +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "pg_ctl fue terminado por una señal %d: %s" + +#: pg_createsubscriber.c:1425 +#, c-format +msgid "pg_ctl exited with unrecognized status %d" +msgstr "pg_ctl terminó con código no reconocido %d" + +#: pg_createsubscriber.c:1428 +#, c-format +msgid "The failed command was: %s" +msgstr "La orden fallida era: %s" + +#: pg_createsubscriber.c:1474 +#, c-format +msgid "server was started" +msgstr "el servidor fue iniciado" + +#: pg_createsubscriber.c:1489 +#, c-format +msgid "server was stopped" +msgstr "el servidor fue detenido" + +#: pg_createsubscriber.c:1508 +#, c-format +msgid "waiting for the target server to reach the consistent state" +msgstr "esperando que el servidor de destino alcance el estado consistente" + +#: pg_createsubscriber.c:1531 +#, c-format +msgid "recovery timed out" +msgstr "la recuperación tomó demasiado tiempo" + +#: pg_createsubscriber.c:1544 +#, c-format +msgid "server did not end recovery" +msgstr "el servidor no terminó la recuperación" + +#: pg_createsubscriber.c:1546 +#, c-format +msgid "target server reached the consistent state" +msgstr "el servidor de destino alcanzó el estado consistente" + +#: pg_createsubscriber.c:1547 +#, c-format +msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." +msgstr "Si pg_createsubscriber falla a partir de este punto, deberá re-crear la réplica física antes de continuar." + +#: pg_createsubscriber.c:1574 +#, c-format +msgid "could not obtain publication information: %s" +msgstr "no se pudo obtener la información de publicación: %s" + +#: pg_createsubscriber.c:1588 +#, c-format +msgid "publication \"%s\" already exists" +msgstr "la publicación «%s» ya existe" + +#: pg_createsubscriber.c:1589 +#, c-format +msgid "Consider renaming this publication before continuing." +msgstr "Considere cambiar el nombre de esta publicación antes de continuar." + +#: pg_createsubscriber.c:1596 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "creando la publicación «%s» en la base de datos «%s»" + +#: pg_createsubscriber.c:1609 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "no se pudo crear la publicación «%s» en la base de datos «%s»: %s" + +#: pg_createsubscriber.c:1638 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "eliminando la publicación «%s» en la base de datos «%s»" + +#: pg_createsubscriber.c:1652 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "no se pudo eliminar la publicación «%s» en la base de datos «%s»: %s" + +#: pg_createsubscriber.c:1698 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "creando la suscripción «%s» en la base de datos «%s»" + +#: pg_createsubscriber.c:1719 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "no se pudo create la suscripción «%s» en la base de datos «%s»: %s" + +#: pg_createsubscriber.c:1764 +#, c-format +msgid "could not obtain subscription OID: %s" +msgstr "no se pudo obtener el OID de suscripción: %s" + +#: pg_createsubscriber.c:1771 +#, c-format +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "no se pudo obtener el OID de suscripción: se obtuvieron %d filas, se esperaban %d filas" + +#: pg_createsubscriber.c:1795 +#, c-format +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "definiendo progreso de replicación (nombre de nodo «%s», LSN %s) en base de datos «%s»" + +#: pg_createsubscriber.c:1810 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "no se pudo establecer el progreso de replicación para la suscripción «%s»: %s" + +#: pg_createsubscriber.c:1841 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "activando la suscripción «%s» en la base de datos «%s»" + +#: pg_createsubscriber.c:1853 +#, c-format +msgid "could not enable subscription \"%s\": %s" +msgstr "no se pudo habilitar la suscripción «%s»: %s" + +#: pg_createsubscriber.c:1945 +#, c-format +msgid "cannot be executed by \"root\"" +msgstr "no puede ser ejecutado con el usuario «root»" + +#: pg_createsubscriber.c:1946 +#, c-format +msgid "You must run %s as the PostgreSQL superuser." +msgstr "Debe ejecutar %s con el superusuario de PostgreSQL." + +#: pg_createsubscriber.c:1967 +#, c-format +msgid "database \"%s\" specified more than once" +msgstr "la base de datos «%s» fue especificado más de una vez" + +#: pg_createsubscriber.c:2008 +#, c-format +msgid "publication \"%s\" specified more than once" +msgstr "la publicación «%s» fue especificada más de una vez" + +#: pg_createsubscriber.c:2020 +#, c-format +msgid "replication slot \"%s\" specified more than once" +msgstr "el slot de replicación «%s» fue especificado más de una vez" + +#: pg_createsubscriber.c:2032 +#, c-format +msgid "subscription \"%s\" specified more than once" +msgstr "la suscripción «%s» fue especificada más de una vez" + +#: pg_createsubscriber.c:2055 +#, c-format +msgid "no subscriber data directory specified" +msgstr "no se especificó un directorio de datos de suscripción" + +#: pg_createsubscriber.c:2066 +#, c-format +msgid "could not determine current directory" +msgstr "no se pudo determinar el directorio actual" + +#: pg_createsubscriber.c:2083 +#, c-format +msgid "no publisher connection string specified" +msgstr "no se especificó un string de conexión de publicador" + +#: pg_createsubscriber.c:2087 +#, c-format +msgid "validating publisher connection string" +msgstr "validando string de conexión del publicador" + +#: pg_createsubscriber.c:2093 +#, c-format +msgid "validating subscriber connection string" +msgstr "validando string de conexión del suscriptor" + +#: pg_createsubscriber.c:2098 +#, c-format +msgid "no database was specified" +msgstr "no se especificó una base de datos" + +#: pg_createsubscriber.c:2110 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "el nombr de base de datos «%s» fue extraído del string de conexión del publicador" + +#: pg_createsubscriber.c:2115 +#, c-format +msgid "no database name specified" +msgstr "no se especificó un nombre de base de datos" + +#: pg_createsubscriber.c:2125 +#, c-format +msgid "wrong number of publication names specified" +msgstr "una cantidad incorrecta de nombres de publicación fue especificada" + +#: pg_createsubscriber.c:2126 +#, c-format +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "La cantidad de nombres de publicación especificados (%d) debe coincidir con el número de nombres de bases de datos (%d)." + +#: pg_createsubscriber.c:2132 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "una cantidad incorrecta de nombres de suscripción fue especificada" + +#: pg_createsubscriber.c:2133 +#, c-format +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "La cantidad de nombres de suscripción especificados (%d) debe coincidir con el número de nombres de bases de datos (%d)." + +#: pg_createsubscriber.c:2139 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "una cantidad incorrecta de nombres de slots de replicación fue especificada" + +#: pg_createsubscriber.c:2140 +#, c-format +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "La cantidad de nombres de slots de replicación especificados (%d) debe coincidir con el número de nombres de bases de datos (%d)." + +#: pg_createsubscriber.c:2169 +#, c-format +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "el directorio de datos del suscriptor no es una copia del clúster de origen" + +#: pg_createsubscriber.c:2182 +#, c-format +msgid "standby server is running" +msgstr "el servidor standby está en ejecución" + +#: pg_createsubscriber.c:2183 +#, c-format +msgid "Stop the standby server and try again." +msgstr "Detenga el servidor standby y pruebe otra vez." + +#: pg_createsubscriber.c:2192 +#, c-format +msgid "starting the standby server with command-line options" +msgstr "iniciando el standby con opciones de línea de órdenes" + +#: pg_createsubscriber.c:2208 pg_createsubscriber.c:2243 +#, c-format +msgid "stopping the subscriber" +msgstr "deteniendo el suscriptor" + +#: pg_createsubscriber.c:2222 +#, c-format +msgid "starting the subscriber" +msgstr "iniciando el suscriptor" + +#: pg_createsubscriber.c:2251 +#, c-format +msgid "Done!" +msgstr "¡Listo!" + +#: pg_receivewal.c:77 +#, c-format +msgid "" +"%s receives PostgreSQL streaming write-ahead logs.\n" +"\n" +msgstr "" +"%s recibe flujos del WAL de PostgreSQL.\n" +"\n" + #: pg_receivewal.c:82 #, c-format msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=DIR recibir los archivos de WAL en este directorio\n" -#: pg_receivewal.c:83 pg_recvlogical.c:83 +#: pg_receivewal.c:83 pg_recvlogical.c:93 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN salir luego de recibir el LSN especificado\n" -#: pg_receivewal.c:84 pg_recvlogical.c:87 +#: pg_receivewal.c:84 pg_recvlogical.c:97 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr " --if-not-exists no abandonar si el slot ya existe al crear un slot\n" -#: pg_receivewal.c:85 pg_recvlogical.c:89 +#: pg_receivewal.c:85 pg_recvlogical.c:99 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop no entrar en bucle al perder la conexión\n" @@ -1177,7 +1980,7 @@ msgstr " -n, --no-loop no entrar en bucle al perder la conexión\n" msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync no esperar que los cambios se sincronicen a disco\n" -#: pg_receivewal.c:87 pg_recvlogical.c:94 +#: pg_receivewal.c:87 pg_recvlogical.c:104 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -1210,12 +2013,12 @@ msgstr "" "\n" "Acciones optativas:\n" -#: pg_receivewal.c:104 pg_recvlogical.c:79 +#: pg_receivewal.c:104 pg_recvlogical.c:89 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr " --create-slot crear un nuevo slot de replicación (para el nombre, vea --slot)\n" -#: pg_receivewal.c:105 pg_recvlogical.c:80 +#: pg_receivewal.c:105 pg_recvlogical.c:90 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr " --drop-slot eliminar un slot de replicación (para el nombre, vea --slot)\n" @@ -1235,7 +2038,7 @@ msgstr "detenido el flujo de log en %X/%X (timeline %u)" msgid "switched to timeline %u at %X/%X" msgstr "cambiado al timeline %u en %X/%X" -#: pg_receivewal.c:224 +#: pg_receivewal.c:224 pg_recvlogical.c:1053 #, c-format msgid "received interrupt signal, exiting" msgstr "se recibió una señal de interrupción, saliendo" @@ -1280,11 +2083,6 @@ msgstr "el archivo de segmento «%s» tiene tamaño incorrecto %d al descomprimi msgid "could not create LZ4 decompression context: %s" msgstr "no se pudo crear un contexto de descompresión LZ4: %s" -#: pg_receivewal.c:402 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "no se pudo leer el archivo «%s»: %m" - #: pg_receivewal.c:420 #, c-format msgid "could not decompress file \"%s\": %s" @@ -1310,7 +2108,7 @@ msgstr "no se puede verificar el archivo «%s»: la compresión con %s no está msgid "starting log streaming at %X/%X (timeline %u)" msgstr "iniciando el flujo de log en %X/%X (timeline %u)" -#: pg_receivewal.c:693 pg_recvlogical.c:783 +#: pg_receivewal.c:693 pg_recvlogical.c:801 #, c-format msgid "could not parse end position \"%s\"" msgstr "no se pudo interpretar la posición final «%s»" @@ -1340,28 +2138,28 @@ msgstr "el método de compresión %s no está soportado aún" msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "la conexión de replicación usando el slot «%s» es inesperadamente específica a una base de datos" -#: pg_receivewal.c:878 pg_recvlogical.c:954 +#: pg_receivewal.c:878 pg_recvlogical.c:972 #, c-format msgid "dropping replication slot \"%s\"" msgstr "eliminando el slot de replicación «%s»" -#: pg_receivewal.c:889 pg_recvlogical.c:964 +#: pg_receivewal.c:889 pg_recvlogical.c:982 #, c-format msgid "creating replication slot \"%s\"" msgstr "creando el slot de replicación «%s»" -#: pg_receivewal.c:918 pg_recvlogical.c:988 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "desconectado" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:992 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "desconectado; esperando %d segundos para intentar nuevamente" -#: pg_recvlogical.c:74 +#: pg_recvlogical.c:84 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -1370,7 +2168,7 @@ msgstr "" "%s controla flujos de decodificación lógica de PostgreSQL.\n" "\n" -#: pg_recvlogical.c:78 +#: pg_recvlogical.c:88 #, c-format msgid "" "\n" @@ -1379,17 +2177,17 @@ msgstr "" "\n" "Acciones a ejecutar:\n" -#: pg_recvlogical.c:81 +#: pg_recvlogical.c:91 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr " --start iniciar flujo en un slot de replicación (para el nombre, vea --slot)\n" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=ARCHIVO recibir el log en este archivo, - para stdout\n" -#: pg_recvlogical.c:85 +#: pg_recvlogical.c:95 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -1398,12 +2196,12 @@ msgstr "" " -F, --fsync-interval=SEGS\n" " tiempo entre fsyncs del archivo de salida (omisión: %d)\n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:98 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN dónde en un slot existente debe empezar el flujo\n" -#: pg_recvlogical.c:90 +#: pg_recvlogical.c:100 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -1414,143 +2212,143 @@ msgstr "" " pasar opción NOMBRE con valor opcional VALOR al\n" " plugin de salida\n" -#: pg_recvlogical.c:93 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN usar plug-in de salida PLUGIN (omisión: %s)\n" -#: pg_recvlogical.c:96 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=NOMBRE-SLOT nombre del slot de replicación lógica\n" -#: pg_recvlogical.c:97 +#: pg_recvlogical.c:107 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr " -t, --two-phase activa decodificación de transacciones preparadas al crear un slot\n" -#: pg_recvlogical.c:102 +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=BASE base de datos a la cual conectarse\n" -#: pg_recvlogical.c:135 +#: pg_recvlogical.c:145 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "confirmando escritura hasta %X/%X, fsync hasta %X/%X (slot %s)" -#: pg_recvlogical.c:159 receivelog.c:360 +#: pg_recvlogical.c:169 receivelog.c:360 #, c-format msgid "could not send feedback packet: %s" msgstr "no se pudo enviar el paquete de retroalimentación: %s" -#: pg_recvlogical.c:227 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "iniciando el flujo de log en %X/%X (slot %s)" -#: pg_recvlogical.c:269 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "flujo iniciado" -#: pg_recvlogical.c:333 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "no se pudo abrir el archivo de registro «%s»: %m" -#: pg_recvlogical.c:362 receivelog.c:882 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "el socket no es válido: %s" -#: pg_recvlogical.c:415 receivelog.c:910 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: pg_recvlogical.c:422 receivelog.c:959 +#: pg_recvlogical.c:435 receivelog.c:959 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "no se pudo recibir datos desde el flujo de WAL: %s" -#: pg_recvlogical.c:464 pg_recvlogical.c:515 receivelog.c:1003 +#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 #: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "cabecera de flujo demasiado pequeña: %d" -#: pg_recvlogical.c:499 receivelog.c:843 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "cabecera de flujo no reconocida: «%c»" -#: pg_recvlogical.c:553 pg_recvlogical.c:565 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "no se pudo escribir %d bytes al archivo de registro «%s»: %m" -#: pg_recvlogical.c:619 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "término inesperado del flujo de replicación: %s" -#: pg_recvlogical.c:778 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "no se pudo interpretar la posición de inicio «%s»" -#: pg_recvlogical.c:856 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "no se especificó slot" -#: pg_recvlogical.c:863 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "no se especificó un archivo de destino" -#: pg_recvlogical.c:870 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "no se especificó una base de datos" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "debe especificarse al menos una operación" -#: pg_recvlogical.c:884 +#: pg_recvlogical.c:902 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "no puede usarse --create-slot o --start junto con --drop-slot" -#: pg_recvlogical.c:891 +#: pg_recvlogical.c:909 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "no puede usarse --create-slot o --drop-slot junto con --startpos" -#: pg_recvlogical.c:898 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos sólo se puede utilizar con --start" -#: pg_recvlogical.c:905 +#: pg_recvlogical.c:923 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase sólo se puede utilizar con --create-slot" -#: pg_recvlogical.c:938 +#: pg_recvlogical.c:956 #, c-format msgid "could not establish database-specific replication connection" msgstr "no se pudo establecer una conexión de replicación específica a una base de datos" -#: pg_recvlogical.c:1032 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "ubicación de término %X/%X alcanzado por «keep-alive»" -#: pg_recvlogical.c:1035 +#: pg_recvlogical.c:1061 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "ubicación de término %X/%X alcanzado por registro WAL en %X/%X" @@ -1667,7 +2465,7 @@ msgstr "respuesta inesperada después del fin-de-timeline: se obtuvieron %d fila msgid "could not parse next timeline's starting point \"%s\"" msgstr "no se pudo interpretar el punto de inicio del siguiente timeline «%s»" -#: receivelog.c:775 receivelog.c:1022 walmethods.c:1201 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "no se pudo sincronizar (fsync) archivo «%s»: %s" @@ -1692,120 +2490,121 @@ msgstr "no se pudo escribir %d bytes al archivo WAL «%s»: %s" msgid "could not send copy-end packet: %s" msgstr "no se pudo enviar el paquete copy-end: %s" -#: streamutil.c:158 +#: streamutil.c:165 msgid "Password: " msgstr "Contraseña: " -#: streamutil.c:181 +#: streamutil.c:192 #, c-format msgid "could not connect to server" msgstr "no se pudo conectar al servidor" -#: streamutil.c:222 +#: streamutil.c:233 #, c-format -msgid "could not clear search_path: %s" -msgstr "no se pudo limpiar search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "no se pudo limpiar «search_path»: %s" -#: streamutil.c:238 +#: streamutil.c:249 #, c-format -msgid "could not determine server setting for integer_datetimes" -msgstr "no se pudo determinar la opción integer_datetimes del servidor" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "no se pudo determinar la opción «integer_datetimes» del servidor" -#: streamutil.c:245 +#: streamutil.c:256 #, c-format -msgid "integer_datetimes compile flag does not match server" -msgstr "la opción de compilación integer_datetimes no coincide con el servidor" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "la opción de compilación «integer_datetimes» no coincide con el servidor" -#: streamutil.c:296 +#: streamutil.c:375 #, c-format msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "no se pudo obtener el tamaño del segmento de WAL: se obtuvo %d filas y %d campos, se esperaban %d filas y %d o más campos" -#: streamutil.c:306 +#: streamutil.c:385 #, c-format msgid "WAL segment size could not be parsed" msgstr "el tamaño de segmento de WAL no pudo ser analizado" -#: streamutil.c:324 +#: streamutil.c:403 +#, c-format +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "el servidor remoto reportó un tamaño de segmento de WAL no válido (%d byte)" +msgstr[1] "el servidor remoto reportó un tamaño de segmento de WAL no válido (%d bytes)" + +#: streamutil.c:407 #, 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] "el tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el servidor remoto reportó un valor de %d byte" -msgstr[1] "el tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el servidor remoto reportó un valor de %d bytes" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB." -#: streamutil.c:369 +#: streamutil.c:449 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "no se pudo obtener el indicador de acceso de grupo: se obtuvo %d filas y %d campos, se esperaban %d filas y %d o más campos" -#: streamutil.c:378 +#: streamutil.c:458 #, c-format msgid "group access flag could not be parsed: %s" msgstr "el indicador de acceso de grupo no pudo ser analizado: %s" -#: streamutil.c:421 streamutil.c:458 +#: streamutil.c:501 streamutil.c:538 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "no se pudo identificar al sistema: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d o más campos" -#: streamutil.c:510 +#: streamutil.c:590 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "no se pudo leer el slot de replicación «%s»: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d campos" -#: streamutil.c:522 +#: streamutil.c:602 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "no existe el slot de replicación «%s»" -#: streamutil.c:533 +#: streamutil.c:613 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "se esperaba un slot de replicación físico, en cambio se obtuvo tipo «%s»" -#: streamutil.c:547 +#: streamutil.c:627 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "no se pudo interpretar restart_lsn de WAL «%s» para el slot de replicación «%s»" -#: streamutil.c:664 +#: streamutil.c:744 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "no se pudo create el slot de replicación «%s»: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d campos" -#: streamutil.c:708 +#: streamutil.c:788 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "no se pudo eliminar el slot de replicación «%s»: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d campos" -#: walmethods.c:721 walmethods.c:1264 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "no se pudo comprimir datos" -#: walmethods.c:750 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "no se pudo restablecer el flujo comprimido" -#: walmethods.c:888 +#: walmethods.c:892 msgid "implementation error: tar files can't have more than one open file" msgstr "error de implementación: los archivos tar no pueden tener abierto más de un fichero" -#: walmethods.c:903 +#: walmethods.c:907 msgid "could not create tar header" msgstr "no se pudo crear la cabecera del archivo tar" -#: walmethods.c:920 walmethods.c:961 walmethods.c:1166 walmethods.c:1179 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "no se pudo cambiar los parámetros de compresión" -#: walmethods.c:1052 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "unlink no soportado con compresión" -#: walmethods.c:1288 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "no se pudo cerrar el flujo comprimido" - -#, c-format -#~ msgid "could not set compression flag for %s: %s" -#~ msgstr "no se pudo definir una opción de compresión para %s: %s" diff --git a/src/bin/pg_basebackup/po/fr.po b/src/bin/pg_basebackup/po/fr.po index 54a388acf9d1d..ae370d26a6cae 100644 --- a/src/bin/pg_basebackup/po/fr.po +++ b/src/bin/pg_basebackup/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:18+0000\n" -"PO-Revision-Date: 2023-07-29 22:45+0200\n" +"POT-Creation-Date: 2024-08-26 19:50+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -93,6 +93,65 @@ msgstr "l'algorithme de compression « %s » n'accepte pas un nombre de workers" msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "l'algorithme de compression « %s » n'accepte pas un mode distance longue" +#: ../../common/controldata_utils.c:97 +#, c-format +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:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"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 de PostgreSQL\n" +"est incompatible avec ce répertoire des données." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "impossible d'écrire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -104,39 +163,69 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 -#: pg_receivewal.c:319 pg_recvlogical.c:339 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "n'a pas pu tester le fichier « %s » : %m" -#: ../../common/file_utils.c:162 pg_receivewal.c:242 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" -#: ../../common/file_utils.c:196 pg_receivewal.c:471 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "n'a pas pu lire le répertoire « %s » : %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 ../../fe_utils/recovery_gen.c:121 -#: pg_receivewal.c:386 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 -#: pg_recvlogical.c:194 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" +msgid "could not open process token: error code %lu" +msgstr "n'a pas pu ouvrir le jeton du processus : code d'erreur %lu" -#: ../../common/file_utils.c:379 pg_basebackup.c:2237 walmethods.c:462 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "n'a pas pu allouer les SID : code d'erreur %lu" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "n'a pas pu créer le jeton restreint : code d'erreur %lu" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "n'a pas pu démarrer le processus pour la commande « %s » : code d'erreur %lu" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -148,51 +237,62 @@ msgstr "valeur « %s » invalide pour l'option %s" msgid "%s must be in range %d..%d" msgstr "%s doit être compris entre %d et %d" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 pg_basebackup.c:1609 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 #, c-format msgid "out of memory" msgstr "mémoire épuisée" -#: ../../fe_utils/recovery_gen.c:124 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1406 pg_basebackup.c:1700 +#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, 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:133 bbstreamer_file.c:93 bbstreamer_file.c:360 -#: pg_basebackup.c:1470 pg_basebackup.c:1679 +#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "n'a pas pu créer le fichier « %s » : %m" -#: bbstreamer_file.c:138 pg_recvlogical.c:633 +#: ../../fe_utils/string_utils.c:434 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "n'a pas pu fermer le fichier « %s » : %m" +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" #: bbstreamer_file.c:275 #, c-format msgid "unexpected state while extracting archive" msgstr "état inattendu lors de l'extraction de l'archive" -#: bbstreamer_file.c:320 pg_basebackup.c:686 pg_basebackup.c:730 +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: bbstreamer_file.c:325 +#: bbstreamer_file.c:326 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "n'a pas pu configurer les droits du répertoire « %s » : %m" -#: bbstreamer_file.c:344 +#: bbstreamer_file.c:345 #, 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" -#: bbstreamer_file.c:364 +#: bbstreamer_file.c:365 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "n'a pas pu initialiser les droits du fichier « %s » : %m" @@ -227,7 +327,7 @@ msgstr "n'a pas pu écrire dans le fichier compressé « %s » : %s" msgid "could not close compressed file \"%s\": %m" msgstr "n'a pas pu fermer le fichier compressé « %s » : %m" -#: bbstreamer_gzip.c:245 walmethods.c:876 +#: bbstreamer_gzip.c:245 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "n'a pas pu initialiser la bibliothèque de compression" @@ -277,12 +377,12 @@ msgstr "la fin du fichier tar fait plus de 2 blocs" msgid "unexpected state while parsing tar archive" msgstr "état inattendu lors de l'analyse de l'archive tar" -#: bbstreamer_tar.c:296 +#: bbstreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "le membre de tar a un nom vide" -#: bbstreamer_tar.c:328 +#: bbstreamer_tar.c:326 #, 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é" @@ -312,87 +412,87 @@ msgstr "n'a pas pu activer le mode distance longue : %s" msgid "could not create zstd decompression context" msgstr "n'a pas pu créer le contexte de décompression zstd" -#: pg_basebackup.c:238 +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "suppression du répertoire des données « %s »" -#: pg_basebackup.c:240 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "échec de la suppression du répertoire des données" -#: pg_basebackup.c:244 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "suppression du contenu du répertoire des données « %s »" -#: pg_basebackup.c:246 +#: pg_basebackup.c:253 #, 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:251 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "suppression du répertoire des journaux de transactions « %s »" -#: pg_basebackup.c:253 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "échec de la suppression du répertoire des journaux de transactions" -#: pg_basebackup.c:257 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "suppression du contenu du répertoire des journaux de transactions « %s »" -#: pg_basebackup.c:259 +#: pg_basebackup.c:266 #, 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:265 +#: pg_basebackup.c:272 #, 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:268 +#: pg_basebackup.c:275 #, 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:272 +#: pg_basebackup.c:279 #, 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:324 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "nom du répertoire trop long" -#: pg_basebackup.c:331 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "multiple signes « = » dans la correspondance de tablespace" -#: pg_basebackup.c:340 +#: pg_basebackup.c:347 #, 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:359 +#: pg_basebackup.c:366 #, 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:363 +#: pg_basebackup.c:370 #, 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:385 +#: pg_basebackup.c:392 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -402,17 +502,19 @@ msgstr "" "d'exécution.\n" "\n" -#: pg_basebackup.c:387 pg_receivewal.c:79 pg_recvlogical.c:76 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_basebackup.c:388 pg_receivewal.c:80 pg_recvlogical.c:77 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:396 #, c-format msgid "" "\n" @@ -421,17 +523,26 @@ msgstr "" "\n" "Options contrôlant la sortie :\n" -#: pg_basebackup.c:390 +#: pg_basebackup.c:397 #, 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" -#: pg_basebackup.c:391 +#: pg_basebackup.c:398 #, 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" -#: pg_basebackup.c:392 +#: pg_basebackup.c:399 +#, c-format +msgid "" +" -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr "" +" -i, --incremental=ANCIENMANIFESTE\n" +" réalise une sauvegarde incrémentale\n" + +#: pg_basebackup.c:401 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -441,21 +552,21 @@ msgstr "" " données (en Ko/s, ou utiliser le suffixe « k »\n" " ou « M »)\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:403 #, 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" -#: pg_basebackup.c:396 +#: pg_basebackup.c:405 #, c-format msgid "" " -t, --target=TARGET[:DETAIL]\n" " backup target (if other than client)\n" msgstr " -t, --target=CIBLE[:DETAIL] cible de sauvegarde (si autre que client)\n" -#: pg_basebackup.c:398 +#: pg_basebackup.c:407 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -464,14 +575,14 @@ msgstr "" " -T, --tablespace-mapping=ANCIENREP=NOUVEAUREP\n" " déplace le répertoire ANCIENREP en NOUVEAUREP\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:409 #, 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" -#: pg_basebackup.c:401 +#: pg_basebackup.c:410 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -481,12 +592,12 @@ msgstr "" " inclut les journaux de transactions requis avec\n" " la méthode spécifiée\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip compresse la sortie tar\n" -#: pg_basebackup.c:404 +#: pg_basebackup.c:413 #, c-format msgid "" " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" @@ -495,12 +606,12 @@ msgstr "" " -Z, --compress=[{client|server}-]METHODE[:DETAIL]\n" " compresse sur le client ou le serveur comme indiqué\n" -#: pg_basebackup.c:406 +#: pg_basebackup.c:415 #, c-format msgid " -Z, --compress=none do not compress tar output\n" msgstr " -Z, --compress=none ne compresse pas la sortie tar\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:416 #, c-format msgid "" "\n" @@ -509,56 +620,56 @@ msgstr "" "\n" "Options générales :\n" -#: pg_basebackup.c:408 +#: pg_basebackup.c:417 #, 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" +" set fast or spread (default) checkpointing\n" +msgstr " -c, --checkpoint=fast|spread exécute un CHECKPOINT rapide ou réparti (par défaut)\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " --create-slot crée un slot de réplication\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=LABEL configure le label de sauvegarde\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:421 #, 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" -#: pg_basebackup.c:413 +#: pg_basebackup.c:422 #, 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\n" " proprement écrites sur disque\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress affiche la progression de la sauvegarde\n" -#: pg_basebackup.c:415 pg_receivewal.c:89 +#: pg_basebackup.c:424 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" -#: pg_basebackup.c:416 pg_receivewal.c:91 pg_recvlogical.c:98 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose affiche des messages verbeux\n" -#: pg_basebackup.c:417 pg_receivewal.c:92 pg_recvlogical.c:99 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_basebackup.c:418 +#: pg_basebackup.c:427 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -568,7 +679,7 @@ msgstr "" " utilise cet algorithme pour les sommes de\n" " contrôle du manifeste\n" -#: pg_basebackup.c:420 +#: pg_basebackup.c:429 #, c-format msgid "" " --manifest-force-encode\n" @@ -577,40 +688,47 @@ msgstr "" " --manifest-force-encode encode tous les noms de fichier dans le\n" " manifeste en hexadécimal\n" -#: pg_basebackup.c:422 +#: pg_basebackup.c:431 #, 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\n" " sauvegarde côté serveur\n" -#: pg_basebackup.c:423 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr "" " --no-manifest supprime la génération de manifeste de\n" " sauvegarde\n" -#: pg_basebackup.c:424 +#: pg_basebackup.c:433 #, 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\n" " temporaires\n" -#: pg_basebackup.c:425 +#: pg_basebackup.c:434 #, 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" -#: pg_basebackup.c:427 pg_receivewal.c:95 pg_recvlogical.c:100 +#: pg_basebackup.c:436 +#, c-format +msgid "" +" --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_basebackup.c:428 pg_receivewal.c:96 pg_recvlogical.c:101 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "" "\n" @@ -619,24 +737,24 @@ msgstr "" "\n" "Options de connexion :\n" -#: pg_basebackup.c:429 pg_receivewal.c:97 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CHAÎNE_CONNEX chaîne de connexion\n" -#: pg_basebackup.c:430 pg_receivewal.c:98 pg_recvlogical.c:103 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HÔTE hôte du serveur de bases de données ou\n" " répertoire des sockets\n" -#: pg_basebackup.c:431 pg_receivewal.c:99 pg_recvlogical.c:104 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT numéro de port du serveur de bases de données\n" -#: pg_basebackup.c:432 +#: pg_basebackup.c:443 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -645,24 +763,25 @@ msgstr "" " -s, --status-interval=INTERVAL durée entre l'envoi de paquets de statut au\n" " serveur (en secondes)\n" -#: pg_basebackup.c:434 pg_receivewal.c:100 pg_recvlogical.c:105 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=UTILISATEUR se connecte avec cet utilisateur\n" -#: pg_basebackup.c:435 pg_receivewal.c:101 pg_recvlogical.c:106 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ne demande jamais le mot de passe\n" -#: pg_basebackup.c:436 pg_receivewal.c:102 pg_recvlogical.c:107 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password force la demande du mot de passe (devrait\n" " survenir automatiquement)\n" -#: pg_basebackup.c:437 pg_receivewal.c:106 pg_recvlogical.c:108 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "" "\n" @@ -671,484 +790,548 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_basebackup.c:438 pg_receivewal.c:107 pg_recvlogical.c:109 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_basebackup.c:477 +#: pg_basebackup.c:488 #, c-format msgid "could not read from ready pipe: %m" msgstr "n'a pas pu lire à partir du tube : %m" -#: pg_basebackup.c:480 pg_basebackup.c:622 pg_basebackup.c:2151 -#: streamutil.c:441 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:518 #, 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:585 pg_receivewal.c:600 +#: pg_basebackup.c:596 pg_receivewal.c:600 #, 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:631 +#: pg_basebackup.c:642 #, 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:664 +#: pg_basebackup.c:676 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "a créé le slot de réplication temporaire « %s »" -#: pg_basebackup.c:667 +#: pg_basebackup.c:679 #, c-format msgid "created replication slot \"%s\"" msgstr "a créé le slot de réplication « %s »" -#: pg_basebackup.c:701 +#: pg_basebackup.c:728 #, 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:710 +#: pg_basebackup.c:737 #, 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:749 +#: pg_basebackup.c:776 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "le répertoire « %s » existe mais n'est pas vide" -#: pg_basebackup.c:755 +#: pg_basebackup.c:782 pg_createsubscriber.c:390 #, c-format msgid "could not access directory \"%s\": %m" msgstr "n'a pas pu accéder au répertoire « %s » : %m" -#: pg_basebackup.c:831 +#: pg_basebackup.c:858 #, 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:843 +#: pg_basebackup.c:870 #, 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:859 +#: pg_basebackup.c:886 #, 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:883 +#: pg_basebackup.c:910 #, 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:885 +#: pg_basebackup.c:912 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "taux de transfert invalide (« %s ») : %m" -#: pg_basebackup.c:892 +#: pg_basebackup.c:919 #, c-format msgid "transfer rate must be greater than zero" msgstr "le taux de transfert doit être supérieur à zéro" -#: pg_basebackup.c:922 +#: pg_basebackup.c:949 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "unité invalide pour --max-rate : « %s »" -#: pg_basebackup.c:926 +#: pg_basebackup.c:953 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "le taux de transfert « %s » dépasse l'échelle des entiers" -#: pg_basebackup.c:933 +#: pg_basebackup.c:960 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "le taux de transfert « %s » est en dehors des limites" -#: pg_basebackup.c:995 +#: pg_basebackup.c:1022 #, 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:1012 pg_recvlogical.c:436 pg_recvlogical.c:608 +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 #: receivelog.c:973 #, c-format msgid "could not read COPY data: %s" msgstr "n'a pas pu lire les données du COPY : %s" -#: pg_basebackup.c:1016 +#: pg_basebackup.c:1043 #, c-format msgid "background process terminated unexpectedly" msgstr "un processus worker s'est arrêté de façon inattendue" -#: pg_basebackup.c:1087 +#: pg_basebackup.c:1114 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "ne peut pas injecter le manifeste dans un fichier tar compressé" -#: pg_basebackup.c:1088 +#: pg_basebackup.c:1115 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "Utilisez la compression côté client, envoyez la sortie dans un répertoire plutôt que sur la sortie standard, ou utilisez %s." -#: pg_basebackup.c:1104 +#: pg_basebackup.c:1131 #, c-format msgid "cannot parse archive \"%s\"" msgstr "n'a pas pu analyser l'archive « %s »" -#: pg_basebackup.c:1105 +#: pg_basebackup.c:1132 #, c-format msgid "Only tar archives can be parsed." msgstr "Seules les archives tar peuvent être analysées" -#: pg_basebackup.c:1107 +#: pg_basebackup.c:1134 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Le format plain requiert que pg_basebackup analyse l'archive." -#: pg_basebackup.c:1109 +#: pg_basebackup.c:1136 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "Utiliser - comme répertoire de sortie requiert que pg_basebackup analyse l'archive." -#: pg_basebackup.c:1111 +#: pg_basebackup.c:1138 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "L'option -R requiert que pg_basebackup analyse l'archive." -#: pg_basebackup.c:1330 +#: pg_basebackup.c:1357 #, c-format msgid "archives must precede manifest" msgstr "les archives doivent précéder le manifeste" -#: pg_basebackup.c:1345 +#: pg_basebackup.c:1372 #, c-format msgid "invalid archive name: \"%s\"" msgstr "nom d'archive invalide : « %s »" -#: pg_basebackup.c:1417 +#: pg_basebackup.c:1444 #, c-format msgid "unexpected payload data" msgstr "donnée de charge inattendue" -#: pg_basebackup.c:1560 +#: pg_basebackup.c:1587 #, c-format msgid "empty COPY message" msgstr "message COPY vide" -#: pg_basebackup.c:1562 +#: pg_basebackup.c:1589 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "message COPY malformé de type %d, longueur %zu" -#: pg_basebackup.c:1760 +#: pg_basebackup.c:1789 #, c-format msgid "incompatible server version %s" msgstr "version « %s » du serveur incompatible" -#: pg_basebackup.c:1776 +#: pg_basebackup.c:1805 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "Utilisez -X none ou -X fetch pour désactiver la réplication en flux." -#: pg_basebackup.c:1844 +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "le serveur n'accepte pas les sauvegardes incrémentales" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 +#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#, 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:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "n'a pas pu charger le manifeste : %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#, c-format +msgid "could not upload manifest: unexpected status %s" +msgstr "n'a pas pu charger le manifeste : statut %s inattendu" + +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "n'a pas pu envoyer les données COPY : %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "n'a pas pu envoyer end-of-COPY : %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "résultat supplémentaire inattendu lors de l'envoi du manifeste" + +#: pg_basebackup.c:1950 #, c-format msgid "backup targets are not supported by this server version" msgstr "les cibles de sauvegarde ne sont pas supportées par cette version du serveur" -#: pg_basebackup.c:1847 +#: pg_basebackup.c:1953 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "la configuration de la restauration ne peut pas être écrite quand une cible de restauration est utilisée" -#: pg_basebackup.c:1874 +#: pg_basebackup.c:1980 #, c-format msgid "server does not support server-side compression" msgstr "le serveur ne supporte pas la compression côté serveur" -#: pg_basebackup.c:1884 +#: pg_basebackup.c:1990 #, 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:1888 +#: pg_basebackup.c:1994 #, c-format msgid "waiting for checkpoint" msgstr "en attente du checkpoint" -#: pg_basebackup.c:1901 pg_recvlogical.c:260 receivelog.c:543 receivelog.c:582 -#: streamutil.c:288 streamutil.c:361 streamutil.c:413 streamutil.c:501 -#: streamutil.c:653 streamutil.c:698 -#, 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:1909 +#: pg_basebackup.c:2016 #, c-format msgid "could not initiate base backup: %s" msgstr "n'a pas pu initier la sauvegarde de base : %s" -#: pg_basebackup.c:1912 +#: pg_basebackup.c:2019 #, 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:1918 +#: pg_basebackup.c:2025 #, c-format msgid "checkpoint completed" msgstr "checkpoint terminé" -#: pg_basebackup.c:1932 +#: pg_basebackup.c:2039 #, 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:1940 +#: pg_basebackup.c:2047 #, 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:1943 +#: pg_basebackup.c:2050 #, c-format msgid "no data returned from server" msgstr "aucune donnée renvoyée du serveur" -#: pg_basebackup.c:1986 +#: pg_basebackup.c:2093 #, 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:1999 +#: pg_basebackup.c:2106 #, c-format msgid "starting background WAL receiver" msgstr "lance le récepteur de journaux de transactions en tâche de fond" -#: pg_basebackup.c:2082 +#: pg_basebackup.c:2189 #, c-format msgid "backup failed: %s" msgstr "échec de la sauvegarde : %s" -#: pg_basebackup.c:2085 +#: pg_basebackup.c:2192 #, 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:2088 +#: pg_basebackup.c:2195 #, c-format msgid "write-ahead log end point: %s" msgstr "point final du journal de transactions : %s" -#: pg_basebackup.c:2099 +#: pg_basebackup.c:2206 #, c-format msgid "checksum error occurred" msgstr "erreur de somme de contrôle" -#: pg_basebackup.c:2104 +#: pg_basebackup.c:2211 #, c-format msgid "final receive failed: %s" msgstr "échec lors de la réception finale : %s" -#: pg_basebackup.c:2128 +#: pg_basebackup.c:2235 #, 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:2132 +#: pg_basebackup.c:2239 #, 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:2137 +#: pg_basebackup.c:2244 #, c-format msgid "could not wait for child process: %m" msgstr "n'a pas pu attendre le processus fils : %m" -#: pg_basebackup.c:2139 +#: pg_basebackup.c:2246 #, c-format msgid "child %d died, expected %d" msgstr "le fils %d est mort, %d attendu" -#: pg_basebackup.c:2141 streamutil.c:91 streamutil.c:196 +#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2161 +#: pg_basebackup.c:2268 #, c-format msgid "could not wait for child thread: %m" msgstr "n'a pas pu attendre le thread : %m" -#: pg_basebackup.c:2166 +#: pg_basebackup.c:2273 #, 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:2169 +#: pg_basebackup.c:2276 #, c-format msgid "child thread exited with error %u" msgstr "le thread a quitté avec le code d'erreur %u" -#: pg_basebackup.c:2198 +#: pg_basebackup.c:2305 #, c-format msgid "syncing data to disk ..." msgstr "synchronisation des données sur disque..." -#: pg_basebackup.c:2223 +#: pg_basebackup.c:2330 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "renommage de backup_manifest.tmp en backup_manifest" -#: pg_basebackup.c:2243 +#: pg_basebackup.c:2350 #, c-format msgid "base backup completed" msgstr "sauvegarde de base terminée" -#: pg_basebackup.c:2326 +#: pg_basebackup.c:2436 #, 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:2344 +#: pg_basebackup.c:2454 #, 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:2422 +#: pg_basebackup.c:2535 #, 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:2457 pg_basebackup.c:2469 pg_basebackup.c:2491 -#: pg_basebackup.c:2503 pg_basebackup.c:2509 pg_basebackup.c:2561 -#: pg_basebackup.c:2572 pg_basebackup.c:2582 pg_basebackup.c:2588 -#: pg_basebackup.c:2595 pg_basebackup.c:2607 pg_basebackup.c:2619 -#: pg_basebackup.c:2627 pg_basebackup.c:2640 pg_basebackup.c:2646 -#: pg_basebackup.c:2655 pg_basebackup.c:2667 pg_basebackup.c:2678 -#: pg_basebackup.c:2686 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2037 pg_createsubscriber.c:2047 +#: pg_createsubscriber.c:2055 pg_createsubscriber.c:2083 +#: pg_createsubscriber.c:2115 pg_receivewal.c:748 pg_receivewal.c:760 #: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:835 pg_recvlogical.c:847 -#: pg_recvlogical.c:857 pg_recvlogical.c:864 pg_recvlogical.c:871 -#: pg_recvlogical.c:878 pg_recvlogical.c:885 pg_recvlogical.c:892 -#: pg_recvlogical.c:899 pg_recvlogical.c:906 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_basebackup.c:2467 pg_receivewal.c:758 pg_recvlogical.c:845 +#: pg_basebackup.c:2584 pg_createsubscriber.c:2045 pg_receivewal.c:758 +#: pg_recvlogical.c:863 #, 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:2490 +#: pg_basebackup.c:2607 #, c-format msgid "cannot specify both format and backup target" msgstr "ne peut pas spécifier à la fois le format et la cible de sauvegarde" -#: pg_basebackup.c:2502 +#: pg_basebackup.c:2619 #, c-format msgid "must specify output directory or backup target" msgstr "doit spécifier un répertoire de sortie ou une cible de sauvegarde" -#: pg_basebackup.c:2508 +#: pg_basebackup.c:2625 #, c-format msgid "cannot specify both output directory and backup target" msgstr "ne peut pas spécifier à la fois le répertoire en sortie et la cible de sauvegarde" -#: pg_basebackup.c:2538 pg_receivewal.c:802 +#: pg_basebackup.c:2655 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "algorithme de compression inconnu : « %s »" -#: pg_basebackup.c:2544 pg_receivewal.c:809 +#: pg_basebackup.c:2661 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "spécification de compression invalide : %s" -#: pg_basebackup.c:2560 +#: pg_basebackup.c:2677 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "la compression client n'est pas possible quand une cible de restauration est indiquée." -#: pg_basebackup.c:2571 +#: pg_basebackup.c:2688 #, c-format msgid "only tar mode backups can be compressed" msgstr "seules les sauvegardes en mode tar peuvent être compressées" -#: pg_basebackup.c:2581 +#: pg_basebackup.c:2698 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "Les journaux de transactions ne peuvent pas être envoyés en flux quand une cible de sauvegarde est indiquée." -#: pg_basebackup.c:2587 +#: pg_basebackup.c:2704 #, 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:2594 +#: pg_basebackup.c:2711 #, 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:2606 +#: pg_basebackup.c:2723 #, 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:2617 pg_receivewal.c:774 +#: pg_basebackup.c:2734 pg_receivewal.c:774 #, 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:2625 pg_basebackup.c:2665 pg_basebackup.c:2676 -#: pg_basebackup.c:2684 +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 #, c-format msgid "%s and %s are incompatible options" msgstr "%s et %s sont des options incompatibles" -#: pg_basebackup.c:2639 +#: pg_basebackup.c:2756 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "l'emplacement du répertoire des journaux de transactions ne peut pas être indiqué avec une cible de sauvegarde" -#: pg_basebackup.c:2645 +#: pg_basebackup.c:2762 #, 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:2654 +#: pg_basebackup.c:2771 #, 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:2754 +#: pg_basebackup.c:2871 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "n'a pas pu créer le lien symbolique « %s » : %m" -#: pg_receivewal.c:77 +#: pg_createsubscriber.c:169 +#, c-format +msgid "failed after the end of recovery" +msgstr "échec après la fin de la restauration" + +#: pg_createsubscriber.c:170 +#, c-format +msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." +msgstr "Le serveur cible ne peut plus être utilisé comme un réplicat physique. Vous devez recréer le réplicat physique avant de continuer." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "la publication « %s » dans la base « %s » sur le primaire pourrait être laissé derrière" + +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "Supprimez cette publication avant de tenter de nouveau." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "le slot de réplication « %s » dans la base « %s » sur le primaire pourrait être laissé derrière" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1260 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "Supprimez rapidement ce slot de réplication pour éviter la rétention des fichiers WAL." + +#: pg_createsubscriber.c:219 #, c-format msgid "" -"%s receives PostgreSQL streaming write-ahead logs.\n" +"%s creates a new logical replica from a standby server.\n" "\n" msgstr "" -"%s reçoit le flux des journaux de transactions PostgreSQL.\n" +"%s crée un nouveau réplicat logique à partir d'un serveur secondaire.\n" "\n" -#: pg_receivewal.c:81 pg_recvlogical.c:82 +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 #, c-format msgid "" "\n" @@ -1157,227 +1340,842 @@ msgstr "" "\n" "Options :\n" -#: pg_receivewal.c:82 +#: pg_createsubscriber.c:224 #, c-format -msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" -msgstr "" -" -D, --directory=RÉPERTOIRE reçoit les journaux de transactions dans ce\n" -" répertoire\n" +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --dbname=BASE base de données où créer la souscription\n" -#: pg_receivewal.c:83 pg_recvlogical.c:83 +#: pg_createsubscriber.c:225 #, 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" +msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" +msgstr " [-D, --pgdata=]RÉP_DONNEES emplacement du répertoire de données de l'abonné\n" -#: pg_receivewal.c:84 pg_recvlogical.c:87 +#: pg_createsubscriber.c:226 #, c-format -msgid " --if-not-exists do not error if slot already exists when creating a slot\n" +msgid " -n, --dry-run dry run, just show what would be done\n" msgstr "" -" --if-not-exists ne pas renvoyer une erreur si le slot existe\n" -" déjà lors de sa création\n" +" -n, --dry-run pas d'exécution, affiche\n" +" simplement ce qui sera fait\n" -#: pg_receivewal.c:85 pg_recvlogical.c:89 +#: pg_createsubscriber.c:227 #, 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" +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr " -p, --subscriber-port=PORT numéro de port de l'abonné (par défaut %s)\n" -#: pg_receivewal.c:86 +#: pg_createsubscriber.c:228 #, 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\n" -" proprement écrites sur disque\n" +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CHAÎNE_CONNEX chaîne de connexion du publieur\n" -#: pg_receivewal.c:87 pg_recvlogical.c:94 +#: pg_createsubscriber.c:229 #, c-format -msgid "" -" -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" +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=RÉP répertoire de la socket à utiliser (par défaut, le répertoire courant)\n" -#: pg_receivewal.c:90 +#: pg_createsubscriber.c:230 #, 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" +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=SECS durée en secondes à attendre pour la fin de la restauration\n" -#: pg_receivewal.c:93 +#: pg_createsubscriber.c:231 #, c-format -msgid "" -" -Z, --compress=METHOD[:DETAIL]\n" -" compress as specified\n" -msgstr "" -" -Z, --compress=METHOD[:DETAIL]\n" -" compresse comme indiqué\n" +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NOM nom d'utilisateur pour la connexion de l'abonné\n" -#: pg_receivewal.c:103 +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose affiche des messages verbeux\n" + +#: pg_createsubscriber.c:233 #, c-format msgid "" -"\n" -"Optional actions:\n" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" msgstr "" -"\n" -"Actions optionnelles :\n" +" --config-file=NOMFICHIER utilise le fichier de configuration indiqué\n" +" du serveur principal lors de l'exécution de\n" +" l'instance cible\n" -#: pg_receivewal.c:104 pg_recvlogical.c:79 +#: pg_createsubscriber.c:235 #, c-format -msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" -msgstr "" -" --create-slot crée un nouveau slot de réplication\n" -" (pour le nom du slot, voir --slot)\n" +msgid " --publication=NAME publication name\n" +msgstr " --publication=NOM nom de la publication\n" -#: pg_receivewal.c:105 pg_recvlogical.c:80 +#: pg_createsubscriber.c:236 #, c-format -msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" -msgstr "" -" --drop-slot supprime un nouveau slot de réplication\n" -" (pour le nom du slot, voir --slot)\n" +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=NOM nom du slot de réplication\n" -#: pg_receivewal.c:191 +#: pg_createsubscriber.c:237 #, c-format -msgid "finished segment at %X/%X (timeline %u)" -msgstr "segment terminé à %X/%X (timeline %u)" +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NOM nom de la souscription\n" -#: pg_receivewal.c:198 +#: pg_createsubscriber.c:238 #, c-format -msgid "stopped log streaming at %X/%X (timeline %u)" -msgstr "arrêt du flux streaming à %X/%X (timeline %u)" +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version puis quitte\n" -#: pg_receivewal.c:214 +#: pg_createsubscriber.c:239 #, c-format -msgid "switched to timeline %u at %X/%X" -msgstr "a basculé sur la timeline %u à %X/%X" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_receivewal.c:224 +#: pg_createsubscriber.c:282 #, c-format -msgid "received interrupt signal, exiting" -msgstr "a reçu un signal d'interruption, quitte" +msgid "could not parse connection string: %s" +msgstr "n'a pas pu analyser la chaîne de connexion : %s" -#: pg_receivewal.c:256 +#: pg_createsubscriber.c:359 #, c-format -msgid "could not close directory \"%s\": %m" -msgstr "n'a pas pu fermer le répertoire « %s » : %m" +msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" +msgstr "le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé dans le même répertoire que « %s »" -#: pg_receivewal.c:323 +#: pg_createsubscriber.c:362 #, c-format -msgid "segment file \"%s\" has incorrect size %lld, skipping" -msgstr "le segment « %s » a une taille incorrecte (%lld), ignoré" +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "le programme « %s » a été trouvé par « %s » mais n'est pas de la même version que %s" -#: pg_receivewal.c:340 +#: pg_createsubscriber.c:382 #, c-format -msgid "could not open compressed file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier compressé « %s » : %m" +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "vérification si le répertoire « %s » est le répertoire d'une instance" -#: pg_receivewal.c:343 +#: pg_createsubscriber.c:388 #, c-format -msgid "could not seek in compressed file \"%s\": %m" -msgstr "n'a pas pu chercher dans le fichier compressé « %s » : %m" +msgid "data directory \"%s\" does not exist" +msgstr "le répertoire des données « %s » n'existe pas" -#: pg_receivewal.c:349 +#: pg_createsubscriber.c:396 #, c-format -msgid "could not read compressed file \"%s\": %m" -msgstr "n'a pas pu lire le fichier compressé « %s » : %m" +msgid "directory \"%s\" is not a database cluster directory" +msgstr "le répertoire « %s » n'est pas un répertoire d'instance" -#: pg_receivewal.c:352 +#: pg_createsubscriber.c:513 #, c-format -msgid "could not read compressed file \"%s\": read %d of %zu" -msgstr "n'a pas pu lire le fichier compressé « %s » : a lu %d sur %zu" +msgid "connection to database failed: %s" +msgstr "échec de la connexion à la base de données : %s" -#: pg_receivewal.c:362 +#: pg_createsubscriber.c:526 #, c-format -msgid "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping" -msgstr "le segment compressé « %s » a une taille %d non compressé incorrecte, ignoré" +msgid "could not clear search_path: %s" +msgstr "n'a pas pu effacer search_path : %s" -#: pg_receivewal.c:390 +#: pg_createsubscriber.c:566 #, c-format -msgid "could not create LZ4 decompression context: %s" -msgstr "n'a pas pu créer le contexte de décompression LZ4 : %s" +msgid "getting system identifier from publisher" +msgstr "recherche de l'identifieur système sur le publieur" -#: pg_receivewal.c:402 +#: pg_createsubscriber.c:573 #, c-format -msgid "could not read file \"%s\": %m" -msgstr "n'a pas pu lire le fichier « %s » : %m" +msgid "could not get system identifier: %s" +msgstr "n'a pas pu obtenir l'identifiant du système : %s" -#: pg_receivewal.c:420 +#: pg_createsubscriber.c:579 #, c-format -msgid "could not decompress file \"%s\": %s" -msgstr "n'a pas pu décompresser le fichier « %s » : %s" +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "n'a pas pu obtenir l'identifiant du système : lu %d octets, %d attendus" -#: pg_receivewal.c:443 +#: pg_createsubscriber.c:586 #, c-format -msgid "could not free LZ4 decompression context: %s" -msgstr "n'a pas pu libérer le contexte de décompression LZ4 : %s" +msgid "system identifier is %llu on publisher" +msgstr "l'identifieur système est %llu sur le publieur" -#: pg_receivewal.c:448 +#: pg_createsubscriber.c:607 #, c-format -msgid "compressed segment file \"%s\" has incorrect uncompressed size %zu, skipping" -msgstr "le fichier segment compressé « %s » a une taille %zu décompressée incorrecte, ignoré" +msgid "getting system identifier from subscriber" +msgstr "recherche l'identifieur système sur l'abonné" -#: pg_receivewal.c:453 +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 #, c-format -msgid "cannot check file \"%s\": compression with %s not supported by this build" -msgstr "ne peut pas vérifier le fichier « %s » : la compression avec %s n'a pas été intégrée lors de la compilation" +msgid "control file appears to be corrupt" +msgstr "le fichier de contrôle semble corrompu" -#: pg_receivewal.c:578 +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 #, c-format -msgid "starting log streaming at %X/%X (timeline %u)" -msgstr "commence le flux des journaux à %X/%X (timeline %u)" +msgid "system identifier is %llu on subscriber" +msgstr "l'identifieur système est %llu sur l'abonné" -#: pg_receivewal.c:693 pg_recvlogical.c:783 +#: pg_createsubscriber.c:637 #, c-format -msgid "could not parse end position \"%s\"" -msgstr "n'a pas pu analyser la position finale « %s »" +msgid "modifying system identifier of subscriber" +msgstr "modification de l'identifieur système sur l'abonné" -#: pg_receivewal.c:766 +#: pg_createsubscriber.c:659 #, c-format -msgid "cannot use --create-slot together with --drop-slot" -msgstr "ne peut pas utiliser --create-slot avec --drop-slot" +msgid "running pg_resetwal on the subscriber" +msgstr "exécution de pg_resetwal sur l'abonné" -#: pg_receivewal.c:782 +#: pg_createsubscriber.c:671 #, c-format -msgid "cannot use --synchronous together with --no-sync" -msgstr "ne peut pas utiliser --synchronous avec --no-sync" +msgid "subscriber successfully changed the system identifier" +msgstr "l'abonné a modifié avec succès l'identifieur système" -#: pg_receivewal.c:792 +#: pg_createsubscriber.c:673 #, c-format -msgid "no target directory specified" -msgstr "aucun répertoire cible indiqué" +msgid "could not change system identifier of subscriber: %s" +msgstr "n'a pas pu modifier l'identifiant du système abonné : %s" -#: pg_receivewal.c:816 +#: pg_createsubscriber.c:697 #, c-format -msgid "compression with %s is not yet supported" -msgstr "la méthode de compression %s n'est pas encore supportée" +msgid "could not obtain database OID: %s" +msgstr "n'a pas pu obtenir l'OID de la base : %s" -#: pg_receivewal.c:859 +#: pg_createsubscriber.c:704 #, 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" +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "n'a pas pu obtenir l'OID de la base de données : %d lignes attendues, %d ligne reçue" -#: pg_receivewal.c:878 pg_recvlogical.c:954 +#: pg_createsubscriber.c:776 #, c-format -msgid "dropping replication slot \"%s\"" -msgstr "suppression du slot de réplication « %s »" +msgid "create replication slot \"%s\" on publisher" +msgstr "création du slot de réplication « %s » sur le publieur" -#: pg_receivewal.c:889 pg_recvlogical.c:964 +#: pg_createsubscriber.c:796 #, c-format -msgid "creating replication slot \"%s\"" +msgid "could not write an additional WAL record: %s" +msgstr "n'a pas pu écrire un enregistrement WAL supplémentaire : %s" + +#: pg_createsubscriber.c:822 +#, c-format +msgid "could not obtain recovery progress: %s" +msgstr "n'a pas pu obtenir la progression de la restauration : %s" + +#: pg_createsubscriber.c:854 +#, c-format +msgid "checking settings on publisher" +msgstr "vérification de la configuration du publieur" + +#: pg_createsubscriber.c:864 +#, c-format +msgid "primary server cannot be in recovery" +msgstr "le serveur primaire ne peut pas être en restauration" + +#: pg_createsubscriber.c:888 +#, c-format +msgid "could not obtain publisher settings: %s" +msgstr "n'a pas pu obtenir la configuration du publieur : %s" + +#: pg_createsubscriber.c:914 +#, c-format +msgid "publisher requires wal_level >= \"logical\"" +msgstr "le publieur requiert wal_level >= « logical »" + +#: pg_createsubscriber.c:920 +#, c-format +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "le publieur requiert %d slots de réplication, mais seuls %d restent" + +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Augmentez le paramètre de configuration « %s » à au moins %d." + +#: pg_createsubscriber.c:929 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "le publieur requiert %d processus wal sender, mais seuls %d restent" + +#: pg_createsubscriber.c:938 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "l'option two_phase ne sera pas activée pour les slots de réplication" + +#: pg_createsubscriber.c:939 +#, c-format +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "Les souscriptions seront créées avec l'option two_phase désactivé. Les transactions préparées seront répliquées au COMMIT PREPARED." + +#: pg_createsubscriber.c:971 +#, c-format +msgid "checking settings on subscriber" +msgstr "vérification de la configuration sur l'abonné" + +#: pg_createsubscriber.c:978 +#, c-format +msgid "target server must be a standby" +msgstr "le serveur cible doit être un secondaire" + +#: pg_createsubscriber.c:1002 +#, c-format +msgid "could not obtain subscriber settings: %s" +msgstr "n'a pas pu obtenir la configuration de l'abonné : %s" + +#: pg_createsubscriber.c:1026 +#, c-format +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "l'abonné requiert %d slots de réplication, mais seuls %d restent" + +#: pg_createsubscriber.c:1035 +#, c-format +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "l'abonné requiert %d processus worker de réplication logique, mais seuls %d restent" + +#: pg_createsubscriber.c:1044 +#, c-format +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "l'abonné requiert %d processus worker, mais seuls %d restent" + +#: pg_createsubscriber.c:1079 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "suppression de la souscription « %s » dans la base de données « %s »" + +#: pg_createsubscriber.c:1088 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "n'a pas pu supprimer la souscription « %s » : %s" + +#: pg_createsubscriber.c:1123 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "n'a pas pu obtenir les souscriptions pré-existantes : %s" + +#: pg_createsubscriber.c:1258 +#, c-format +msgid "could not drop replication slot \"%s\" on primary" +msgstr "n'a pas pu supprimer le slot de réplication « %s » sur le primaire" + +#: pg_createsubscriber.c:1292 +#, c-format +msgid "could not obtain failover replication slot information: %s" +msgstr "n'a pas pu obtenir l'information de slot de réplication failover : %s" + +#: pg_createsubscriber.c:1294 pg_createsubscriber.c:1303 +#, c-format +msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." +msgstr "Supprimez rapidement les slots de réplication failover sur l'abonnée pour éviter la rétention des fichiers WAL." + +#: pg_createsubscriber.c:1302 +#, c-format +msgid "could not drop failover replication slot" +msgstr "n'a pas pu supprimer le slot de réplication failover" + +#: pg_createsubscriber.c:1324 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "création du slot de réplication « %s » dans la base « %s »" + +#: pg_createsubscriber.c:1342 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "n'a pas pu créer le slot de réplication « %s » dans la base « %s » : %s" + +#: pg_createsubscriber.c:1372 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "suppression du slot de réplication « %s » dans la base « %s »" + +#: pg_createsubscriber.c:1388 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "n'a pas pu supprimer le slot de réplication « %s » dans la base « %s » : %s" + +#: pg_createsubscriber.c:1409 +#, c-format +msgid "pg_ctl failed with exit code %d" +msgstr "échec de pg_ctl avec un code de retour %d" + +#: pg_createsubscriber.c:1414 +#, c-format +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "pg_ctl a été terminé par l'exception 0x%X" + +#: pg_createsubscriber.c:1416 +#, c-format +msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "" +"Voir le fichier d'en-tête C « ntstatus.h » pour une description de la valeur\n" +"hexadécimale." + +#: pg_createsubscriber.c:1418 +#, c-format +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "pg_ctl a été terminé par le signal %d : %s" + +#: pg_createsubscriber.c:1424 +#, c-format +msgid "pg_ctl exited with unrecognized status %d" +msgstr "pg_ctl a quitté avec un statut %d non reconnu" + +#: pg_createsubscriber.c:1427 +#, c-format +msgid "The failed command was: %s" +msgstr "La commande échouée était : %s" + +#: pg_createsubscriber.c:1473 +#, c-format +msgid "server was started" +msgstr "le serveur a été démarré" + +#: pg_createsubscriber.c:1488 +#, c-format +msgid "server was stopped" +msgstr "le serveur a été arrêté" + +#: pg_createsubscriber.c:1507 +#, c-format +msgid "waiting for the target server to reach the consistent state" +msgstr "en attente de l'atteinte de l'état de cohérence sur le serveur cible" + +#: pg_createsubscriber.c:1530 +#, c-format +msgid "recovery timed out" +msgstr "délai de restauration atteint" + +#: pg_createsubscriber.c:1543 +#, c-format +msgid "server did not end recovery" +msgstr "le serveur n'a pas terminé la restauration" + +#: pg_createsubscriber.c:1545 +#, c-format +msgid "target server reached the consistent state" +msgstr "le serveur cible a atteint l'état de cohérence" + +#: pg_createsubscriber.c:1546 +#, c-format +msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." +msgstr "Si pg_createsubscriber échoue après cela, vous devez recréer le réplicat physique avant de continuer." + +#: pg_createsubscriber.c:1573 +#, c-format +msgid "could not obtain publication information: %s" +msgstr "n'a pas pu obtenir une information sur la publication : %s" + +#: pg_createsubscriber.c:1587 +#, c-format +msgid "publication \"%s\" already exists" +msgstr "la publication « %s » existe déjà" + +#: pg_createsubscriber.c:1588 +#, c-format +msgid "Consider renaming this publication before continuing." +msgstr "Pensez à renommer cette publication avant de continuer." + +#: pg_createsubscriber.c:1595 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "création de la publication « %s » dans la base de données « %s »" + +#: pg_createsubscriber.c:1608 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "n'a pas pu créer la publication « %s » dans la base de données « %s » : %s" + +#: pg_createsubscriber.c:1637 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "suppression de la publication « %s » dans la base de données « %s »" + +#: pg_createsubscriber.c:1651 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "n'a pas pu supprimer la publication « %s » dans la base de données « %s » : %s" + +#: pg_createsubscriber.c:1697 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "création de la souscription « %s » dans la base de données « %s »" + +#: pg_createsubscriber.c:1718 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "n'a pas pu créer la souscription « %s » dans la base « %s » : %s" + +#: pg_createsubscriber.c:1763 +#, c-format +msgid "could not obtain subscription OID: %s" +msgstr "n'a pas pu obtenir l'OID de la souscription : %s" + +#: pg_createsubscriber.c:1770 +#, c-format +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "n'a pas pu obtenir l'OID de la souscription : attendait %d lignes, a reçu %d ligne" + +#: pg_createsubscriber.c:1794 +#, c-format +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "configuration de la progression de la réplication (nom du noeud « %s » , LSN %s) dans la base de données « %s »" + +#: pg_createsubscriber.c:1809 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "n'a pas pu configurer la progression de la réplication pour la souscription « %s » : %s" + +#: pg_createsubscriber.c:1840 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "activation de la souscription « %s » dans la base de données « %s »" + +#: pg_createsubscriber.c:1852 +#, c-format +msgid "could not enable subscription \"%s\": %s" +msgstr "n'a pas pu activer la souscription « %s » : %s" + +#: pg_createsubscriber.c:1944 +#, c-format +msgid "cannot be executed by \"root\"" +msgstr "ne peut pas être exécuté par « root »" + +#: pg_createsubscriber.c:1945 +#, c-format +msgid "You must run %s as the PostgreSQL superuser." +msgstr "Vous devez exécuter %s en tant que super-utilisateur PostgreSQL." + +#: pg_createsubscriber.c:1966 +#, c-format +msgid "database \"%s\" specified more than once" +msgstr "la base de données « %s » est spécifiée plus d'une fois" + +#: pg_createsubscriber.c:2007 +#, c-format +msgid "publication \"%s\" specified more than once" +msgstr "la publication « %s » est spécifiée plus d'une fois" + +#: pg_createsubscriber.c:2019 +#, c-format +msgid "replication slot \"%s\" specified more than once" +msgstr "le slot de réplication « %s » est spécifié plus d'une fois" + +#: pg_createsubscriber.c:2031 +#, c-format +msgid "subscription \"%s\" specified more than once" +msgstr "la souscription « %s » est spécifiée plus d'une fois" + +#: pg_createsubscriber.c:2054 +#, c-format +msgid "no subscriber data directory specified" +msgstr "aucune chaîne de connexion de l'abonné indiquée" + +#: pg_createsubscriber.c:2065 +#, c-format +msgid "could not determine current directory" +msgstr "n'a pas pu déterminer le répertoire courant" + +#: pg_createsubscriber.c:2082 +#, c-format +msgid "no publisher connection string specified" +msgstr "aucune chaîne de connexion du publieur indiquée" + +#: pg_createsubscriber.c:2086 +#, c-format +msgid "validating publisher connection string" +msgstr "validation de la chaîne de connexion du publieur" + +#: pg_createsubscriber.c:2092 +#, c-format +msgid "validating subscriber connection string" +msgstr "validation de la chaîne de connexion de l'abonné" + +#: pg_createsubscriber.c:2097 +#, c-format +msgid "no database was specified" +msgstr "aucune base de données n'a été indiquée" + +#: pg_createsubscriber.c:2109 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "le nom de la base de données « %s » a été extrait de la chaîne de connexion du publieur" + +#: pg_createsubscriber.c:2114 +#, c-format +msgid "no database name specified" +msgstr "aucun nom de base de données indiqué" + +#: pg_createsubscriber.c:2124 +#, c-format +msgid "wrong number of publication names specified" +msgstr "mauvais nombre de noms de publication indiqués" + +#: pg_createsubscriber.c:2125 +#, c-format +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "Le nombre de noms de publication indiqués (%d) doit correspondre au nombre de noms de bases de données indiqués (%d)" + +#: pg_createsubscriber.c:2131 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "mauvais nombre de noms de souscription indiqués" + +#: pg_createsubscriber.c:2132 +#, c-format +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "Le nombre de noms de souscriptions indiqués (%d) doit correspondre au nombre de noms de bases de données indiqués (%d)" + +#: pg_createsubscriber.c:2138 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "mauvais nombre de noms de slots de réplication indiqués" + +#: pg_createsubscriber.c:2139 +#, c-format +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "Le nombre de noms de slots de réplication indiqués (%d) doit correspondre au nombre de noms de bases de données indiqués (%d)" + +#: pg_createsubscriber.c:2168 +#, c-format +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "le répertoire de données de l'abonné n'est pas une copie de l'instance source" + +#: pg_createsubscriber.c:2181 +#, c-format +msgid "standby server is running" +msgstr "le serveur secondaire est en cours d'exécution" + +#: pg_createsubscriber.c:2182 +#, c-format +msgid "Stop the standby server and try again." +msgstr "Arrêtez le secondaire et tentez de nouveau." + +#: pg_createsubscriber.c:2191 +#, c-format +msgid "starting the standby server with command-line options" +msgstr "lancement du serveur secondaire avec les options en ligne de commande" + +#: pg_createsubscriber.c:2207 pg_createsubscriber.c:2242 +#, c-format +msgid "stopping the subscriber" +msgstr "arrêt de l'abonné" + +#: pg_createsubscriber.c:2221 +#, c-format +msgid "starting the subscriber" +msgstr "lancement de l'abonné" + +#: pg_createsubscriber.c:2250 +#, c-format +msgid "Done!" +msgstr "Terminé !" + +#: pg_receivewal.c:77 +#, c-format +msgid "" +"%s receives PostgreSQL streaming write-ahead logs.\n" +"\n" +msgstr "" +"%s reçoit le flux des journaux de transactions PostgreSQL.\n" +"\n" + +#: pg_receivewal.c:82 +#, c-format +msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" +msgstr "" +" -D, --directory=RÉPERTOIRE reçoit les journaux de transactions dans ce\n" +" répertoire\n" + +#: pg_receivewal.c:83 pg_recvlogical.c:93 +#, 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" + +#: pg_receivewal.c:84 pg_recvlogical.c:97 +#, 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" + +#: pg_receivewal.c:85 pg_recvlogical.c:99 +#, 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" + +#: 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\n" +" proprement écrites sur disque\n" + +#: pg_receivewal.c:87 pg_recvlogical.c:104 +#, c-format +msgid "" +" -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" +" 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" + +#: pg_receivewal.c:93 +#, c-format +msgid "" +" -Z, --compress=METHOD[:DETAIL]\n" +" compress as specified\n" +msgstr "" +" -Z, --compress=METHOD[:DETAIL]\n" +" compresse comme indiqué\n" + +#: pg_receivewal.c:103 +#, c-format +msgid "" +"\n" +"Optional actions:\n" +msgstr "" +"\n" +"Actions optionnelles :\n" + +#: pg_receivewal.c:104 pg_recvlogical.c:89 +#, c-format +msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" +msgstr "" +" --create-slot crée un nouveau slot de réplication\n" +" (pour le nom du slot, voir --slot)\n" + +#: pg_receivewal.c:105 pg_recvlogical.c:90 +#, c-format +msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" +msgstr "" +" --drop-slot supprime un nouveau slot de réplication\n" +" (pour le nom du slot, voir --slot)\n" + +#: pg_receivewal.c:191 +#, c-format +msgid "finished segment at %X/%X (timeline %u)" +msgstr "segment terminé à %X/%X (timeline %u)" + +#: pg_receivewal.c:198 +#, c-format +msgid "stopped log streaming at %X/%X (timeline %u)" +msgstr "arrêt du flux streaming à %X/%X (timeline %u)" + +#: pg_receivewal.c:214 +#, c-format +msgid "switched to timeline %u at %X/%X" +msgstr "a basculé sur la timeline %u à %X/%X" + +#: pg_receivewal.c:224 pg_recvlogical.c:1053 +#, c-format +msgid "received interrupt signal, exiting" +msgstr "a reçu un signal d'interruption, quitte" + +#: pg_receivewal.c:256 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "n'a pas pu fermer le répertoire « %s » : %m" + +#: pg_receivewal.c:323 +#, c-format +msgid "segment file \"%s\" has incorrect size %lld, skipping" +msgstr "le segment « %s » a une taille incorrecte (%lld), ignoré" + +#: pg_receivewal.c:340 +#, c-format +msgid "could not open compressed file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier compressé « %s » : %m" + +#: pg_receivewal.c:343 +#, c-format +msgid "could not seek in compressed file \"%s\": %m" +msgstr "n'a pas pu chercher dans le fichier compressé « %s » : %m" + +#: pg_receivewal.c:349 +#, c-format +msgid "could not read compressed file \"%s\": %m" +msgstr "n'a pas pu lire le fichier compressé « %s » : %m" + +#: pg_receivewal.c:352 +#, c-format +msgid "could not read compressed file \"%s\": read %d of %zu" +msgstr "n'a pas pu lire le fichier compressé « %s » : a lu %d sur %zu" + +#: pg_receivewal.c:362 +#, c-format +msgid "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping" +msgstr "le segment compressé « %s » a une taille %d non compressé incorrecte, ignoré" + +#: pg_receivewal.c:390 +#, c-format +msgid "could not create LZ4 decompression context: %s" +msgstr "n'a pas pu créer le contexte de décompression LZ4 : %s" + +#: pg_receivewal.c:420 +#, c-format +msgid "could not decompress file \"%s\": %s" +msgstr "n'a pas pu décompresser le fichier « %s » : %s" + +#: pg_receivewal.c:443 +#, c-format +msgid "could not free LZ4 decompression context: %s" +msgstr "n'a pas pu libérer le contexte de décompression LZ4 : %s" + +#: pg_receivewal.c:448 +#, c-format +msgid "compressed segment file \"%s\" has incorrect uncompressed size %zu, skipping" +msgstr "le fichier segment compressé « %s » a une taille %zu décompressée incorrecte, ignoré" + +#: pg_receivewal.c:453 +#, c-format +msgid "cannot check file \"%s\": compression with %s not supported by this build" +msgstr "ne peut pas vérifier le fichier « %s » : la compression avec %s n'a pas été intégrée lors de la compilation" + +#: pg_receivewal.c:578 +#, c-format +msgid "starting log streaming at %X/%X (timeline %u)" +msgstr "commence le flux des journaux à %X/%X (timeline %u)" + +#: pg_receivewal.c:693 pg_recvlogical.c:801 +#, c-format +msgid "could not parse end position \"%s\"" +msgstr "n'a pas pu analyser la position finale « %s »" + +#: pg_receivewal.c:766 +#, c-format +msgid "cannot use --create-slot together with --drop-slot" +msgstr "ne peut pas utiliser --create-slot avec --drop-slot" + +#: pg_receivewal.c:782 +#, c-format +msgid "cannot use --synchronous together with --no-sync" +msgstr "ne peut pas utiliser --synchronous avec --no-sync" + +#: pg_receivewal.c:792 +#, c-format +msgid "no target directory specified" +msgstr "aucun répertoire cible indiqué" + +#: pg_receivewal.c:816 +#, c-format +msgid "compression with %s is not yet supported" +msgstr "la méthode de compression %s n'est pas encore supportée" + +#: pg_receivewal.c:859 +#, 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:878 pg_recvlogical.c:972 +#, c-format +msgid "dropping replication slot \"%s\"" +msgstr "suppression du slot de réplication « %s »" + +#: pg_receivewal.c:889 pg_recvlogical.c:982 +#, c-format +msgid "creating replication slot \"%s\"" msgstr "création du slot de réplication « %s »" -#: pg_receivewal.c:918 pg_recvlogical.c:988 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "déconnecté" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:992 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "déconnecté, attente de %d secondes avant une nouvelle tentative" -#: pg_recvlogical.c:74 +#: pg_recvlogical.c:84 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -1386,7 +2184,7 @@ msgstr "" "%s contrôle le flux des modifications logiques de PostgreSQL.\n" "\n" -#: pg_recvlogical.c:78 +#: pg_recvlogical.c:88 #, c-format msgid "" "\n" @@ -1395,21 +2193,21 @@ msgstr "" "\n" "Action à réaliser :\n" -#: pg_recvlogical.c:81 +#: pg_recvlogical.c:91 #, 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" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr "" " -f, --file=FICHIER trace la réception dans ce fichier, - pour\n" " stdout\n" -#: pg_recvlogical.c:85 +#: pg_recvlogical.c:95 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -1418,14 +2216,14 @@ msgstr "" " -F --fsync-interval=SECS durée entre les fsyncs vers le fichier de sortie\n" " (par défaut %d)\n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:98 #, 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" -#: pg_recvlogical.c:90 +#: pg_recvlogical.c:100 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -1435,145 +2233,145 @@ msgstr "" " -o, --option=NOM[=VALEUR] passe l'option NOM avec la valeur optionnelle\n" " VALEUR au plugin en sortie\n" -#: pg_recvlogical.c:93 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr "" " -P, --plugin=PLUGIN utilise le plugin PLUGIN en sortie (par défaut\n" " %s)\n" -#: pg_recvlogical.c:96 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOT nom du slot de réplication logique\n" -#: pg_recvlogical.c:97 +#: pg_recvlogical.c:107 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr " -t, --two-phase active le décodage des transactions préparées lors de la création d'un slot\n" -#: pg_recvlogical.c:102 +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=BASE base de données de connexion\n" -#: pg_recvlogical.c:135 +#: pg_recvlogical.c:145 #, 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:159 receivelog.c:360 +#: pg_recvlogical.c:169 receivelog.c:360 #, 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:227 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "commence le flux des journaux à %X/%X (slot %s)" -#: pg_recvlogical.c:269 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "flux lancé" -#: pg_recvlogical.c:333 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m" -#: pg_recvlogical.c:362 receivelog.c:882 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "socket invalide : %s" -#: pg_recvlogical.c:415 receivelog.c:910 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: pg_recvlogical.c:422 receivelog.c:959 +#: pg_recvlogical.c:435 receivelog.c:959 #, 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:464 pg_recvlogical.c:515 receivelog.c:1003 +#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 #: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "en-tête de flux trop petit : %d" -#: pg_recvlogical.c:499 receivelog.c:843 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "entête non reconnu du flux : « %c »" -#: pg_recvlogical.c:553 pg_recvlogical.c:565 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "n'a pas pu écrire %d octets dans le journal de transactions « %s » : %m" -#: pg_recvlogical.c:619 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "fin inattendue du flux de réplication : %s" -#: pg_recvlogical.c:778 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "n'a pas pu analyser la position de départ « %s »" -#: pg_recvlogical.c:856 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "aucun slot de réplication indiqué" -#: pg_recvlogical.c:863 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "aucun fichier cible indiqué" -#: pg_recvlogical.c:870 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "aucune base de données indiquée" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "au moins une action doit être indiquée" -#: pg_recvlogical.c:884 +#: pg_recvlogical.c:902 #, 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:891 +#: pg_recvlogical.c:909 #, 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:898 +#: 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:905 +#: pg_recvlogical.c:923 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase peut seulement être spécifié avec --create-slot" -#: pg_recvlogical.c:938 +#: pg_recvlogical.c:956 #, 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:1032 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "position finale %X/%X atteinte par keepalive" -#: pg_recvlogical.c:1035 +#: pg_recvlogical.c:1061 #, 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" @@ -1690,7 +2488,7 @@ msgstr "ensemble de résultats inattendu après la fin de la timeline : a récup 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:775 receivelog.c:1022 walmethods.c:1201 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %s" @@ -1715,495 +2513,121 @@ msgstr "n'a pas pu écrire %d octets dans le journal de transactions « %s » : msgid "could not send copy-end packet: %s" msgstr "n'a pas pu envoyer le paquet de fin de copie : %s" -#: streamutil.c:158 +#: streamutil.c:162 msgid "Password: " msgstr "Mot de passe : " -#: streamutil.c:181 +#: streamutil.c:189 #, c-format msgid "could not connect to server" msgstr "n'a pas pu se connecter au serveur" -#: streamutil.c:222 +#: streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "n'a pas pu effacer search_path : %s" +msgid "could not clear \"search_path\": %s" +msgstr "n'a pas pu effacer « search_path » : %s" -#: streamutil.c:238 +#: 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" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "n'a pas pu déterminer la configuration serveur de « integer_datetimes »" -#: streamutil.c:245 +#: 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" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "l'option de compilation « integer_datetimes » ne correspond pas au serveur" -#: streamutil.c:296 +#: streamutil.c:372 #, 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:306 +#: streamutil.c:382 #, 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:324 +#: streamutil.c:400 +#, c-format +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "le serveur distant a rapporté une taille invalide du segment WAL (%d octet)" +msgstr[1] "le serveur distant a rapporté une taille invalide du segment WAL (%d octets)" + +#: streamutil.c:404 #, 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" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go." -#: streamutil.c:369 +#: streamutil.c:446 #, 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:378 +#: streamutil.c:455 #, 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:421 streamutil.c:458 +#: streamutil.c:498 streamutil.c:535 #, 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)." -#: streamutil.c:510 +#: streamutil.c:587 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "n'a pas pu lire le slot de réplication « %s » : a récupéré %d lignes et %d champs, attendait %d lignes et %d champs" -#: streamutil.c:522 +#: streamutil.c:599 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "le slot de réplication « %s » n'existe pas" -#: streamutil.c:533 +#: streamutil.c:610 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "attendait un slot de réplication physique, a obtenu le type « %s » à la place" -#: streamutil.c:547 +#: streamutil.c:624 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "n'a pas pu analyser le champ restart_lsn « %s » pour le slot de réplication « %s »" -#: streamutil.c:664 +#: streamutil.c:741 #, 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:708 +#: streamutil.c:785 #, 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:721 walmethods.c:1264 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "n'a pas pu compresser les données" -#: walmethods.c:750 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "n'a pas pu réinitialiser le flux de compression" -#: walmethods.c:888 +#: walmethods.c:892 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:903 +#: walmethods.c:907 msgid "could not create tar header" msgstr "n'a pas pu créer l'en-tête du fichier tar" -#: walmethods.c:920 walmethods.c:961 walmethods.c:1166 walmethods.c:1179 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "n'a pas pu modifier les paramètres de compression" -#: walmethods.c:1052 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "suppression non supportée avec la compression" -#: walmethods.c:1288 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "n'a pas pu fermer le flux de compression" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#, c-format -#~ msgid "" -#~ " --compression-method=METHOD\n" -#~ " method to compress logs\n" -#~ msgstr "" -#~ " --compression-method=METHODE\n" -#~ " méthode pour compresser les journaux\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 " -?, --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" - -#, 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" - -#, c-format -#~ msgid " -Z, --compress=1-9 compress logs with given compression level\n" -#~ msgstr "" -#~ " -Z, --compress=0-9 compresse les journaux avec le niveau de\n" -#~ " compression indiqué\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: 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: cannot specify both --xlog and --xlog-method\n" -#~ msgstr "%s : ne peut pas spécifier à la fois --xlog et --xlog-method\n" - -#~ msgid "%s: child process did not exit normally\n" -#~ msgstr "%s : le processus fils n'a pas quitté normalement\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 access directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu accéder au répertoire « %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 close directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu fermer le répertoire « %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 close file %s: %s\n" -#~ msgstr "%s : n'a pas pu fermer 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 connect to server: %s" -#~ msgstr "%s : n'a pas pu se connecter au serveur : %s" - -#~ 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 create directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le répertoire « %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 create symbolic link \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le lien symbolique « %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 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 identify system: %s" -#~ msgstr "%s : n'a pas pu identifier le système : %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 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 WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le segment WAL %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 "%s: could not open file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %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 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 pad WAL segment %s: %s\n" -#~ msgstr "%s : n'a pas pu terminer le segment WAL %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: could not parse file mode\n" -#~ msgstr "%s : n'a pas pu analyser le mode du fichier\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 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 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 read copy data: %s\n" -#~ msgstr "%s : n'a pas pu lire les données du COPY : %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: 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 rename file \"%s\" to \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu renommer le fichier « %s » en « %s » : %s\n" - -#~ msgid "%s: could not rename file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu renommer 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 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: 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 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 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 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 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: 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: 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: 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 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: 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: removing data directory \"%s\"\n" -#~ msgstr "%s : suppression du répertoire des données « %s »\n" - -#~ msgid "%s: select() failed: %s\n" -#~ msgstr "%s : échec de select() : %s\n" - -#~ msgid "%s: socket not open" -#~ msgstr "%s : socket non ouvert" - -#~ 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: 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: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" - -#~ msgid "--create-slot and --no-slot are incompatible options" -#~ msgstr "--create-slot et --no-slot sont des options incompatibles" - -#~ msgid "--no-manifest and --manifest-checksums are incompatible options" -#~ msgstr "--no-manifest et --manifest-checksums sont des options incompatibles" - -#~ msgid "--no-manifest and --manifest-force-encode are incompatible options" -#~ msgstr "--no-manifest et --manifest-force-encode sont des options incompatibles" - -#~ msgid "--progress and --no-estimate-size are incompatible options" -#~ msgstr "--progress et --no-estimate-size sont des options incompatibles" - -#, c-format -#~ msgid "This build does not support compression with %s." -#~ msgstr "Cette construction ne supporte pas la compression avec %s." - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "cannot use --compress with --compression-method=%s" -#~ msgstr "ne peut pas utiliser --compress avec --compression-method=%s" - -#, c-format -#~ msgid "could not check file \"%s\"" -#~ msgstr "n'a pas pu vérifier le fichier « %s »" - -#~ msgid "could not connect to server: %s" -#~ msgstr "n'a pas pu se connecter au serveur : %s" - -#, 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" - -#, c-format -#~ msgid "could not find replication slot \"%s\"" -#~ msgstr "n'a pas pu trouver le slot de réplication « %s »" - -#, 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" - -#~ 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" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#, c-format -#~ msgid "invalid compression level \"%s\"" -#~ msgstr "niveau de compression « %s » invalide" - -#, c-format -#~ msgid "invalid fsync interval \"%s\"" -#~ msgstr "intervalle fsync « %s » invalide" - -#, c-format -#~ msgid "invalid port number \"%s\"" -#~ msgstr "numéro de port invalide : « %s »" - -#, c-format -#~ msgid "invalid status interval \"%s\"" -#~ msgstr "intervalle « %s » invalide du statut" - -#, c-format -#~ msgid "invalid tar block header size: %zu" -#~ msgstr "taille invalide de l'en-tête de bloc du fichier tar : %zu" - -#, c-format -#~ msgid "log streamer with pid %d exiting" -#~ msgstr "le processus d'envoi des journaux de PID %d quitte" - -#, c-format -#~ msgid "no value specified for --compress, switching to default" -#~ msgstr "aucune valeur indiquée pour --compression, utilise la valeur par défaut" - -#~ msgid "select() failed: %m" -#~ msgstr "échec de select() : %m" - -#, c-format -#~ msgid "symlinks are not supported on this platform" -#~ msgstr "les liens symboliques ne sont pas supportés sur cette plateforme" - -#, c-format -#~ msgid "this build does not support gzip compression" -#~ msgstr "cette construction ne supporte pas la compression gzip" - -#, c-format -#~ msgid "this build does not support lz4 compression" -#~ msgstr "cette construction ne supporte pas la compression lz4" - -#, c-format -#~ msgid "this build does not support zstd compression" -#~ msgstr "cette construction ne supporte pas la compression zstd" - -#, c-format -#~ msgid "unknown compression option \"%s\"" -#~ msgstr "option de compression « %s » inconnue" - -#, c-format -#~ msgid "unrecognized link indicator \"%c\"" -#~ msgstr "indicateur de lien « %c » non reconnu" diff --git a/src/bin/pg_basebackup/po/ja.po b/src/bin/pg_basebackup/po/ja.po index e1926adeaab62..d85ecc42ae0b2 100644 --- a/src/bin/pg_basebackup/po/ja.po +++ b/src/bin/pg_basebackup/po/ja.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_basebackup (PostgreSQL 17)\n" +"Project-Id-Version: pg_basebackup (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 09:57+0900\n" -"PO-Revision-Date: 2024-06-21 10:16+0900\n" +"POT-Creation-Date: 2025-04-07 09:45+0900\n" +"PO-Revision-Date: 2025-04-07 15:32+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -22,30 +22,31 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " #: ../../common/compression.c:132 ../../common/compression.c:141 -#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 -#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 -#: bbstreamer_zstd.c:284 +#: ../../common/compression.c:150 ../../fe_utils/astreamer_gzip.c:140 +#: ../../fe_utils/astreamer_gzip.c:273 ../../fe_utils/astreamer_lz4.c:102 +#: ../../fe_utils/astreamer_lz4.c:300 ../../fe_utils/astreamer_zstd.c:133 +#: ../../fe_utils/astreamer_zstd.c:288 #, c-format msgid "this build does not support compression with %s" msgstr "このビルドでは%sによる圧縮をサポートしていません" @@ -99,7 +100,7 @@ msgstr "圧縮アルゴリズム\"%s\"は長距離モードをサポートしま msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み込み用にオープンできませんでした: %m" -#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1874 #: pg_receivewal.c:402 #, c-format msgid "could not read file \"%s\": %m" @@ -111,7 +112,7 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#: ../../fe_utils/astreamer_file.c:141 pg_recvlogical.c:652 #, c-format msgid "could not close file \"%s\": %m" msgstr "ファイル\"%s\"をクローズできませんでした: %m" @@ -133,10 +134,10 @@ msgstr "" "されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" "PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: pg_basebackup.c:1846 pg_receivewal.c:386 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: pg_basebackup.c:1847 pg_receivewal.c:386 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" @@ -146,8 +147,8 @@ msgstr "ファイル\"%s\"をオープンできませんでした: %m" msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 pg_recvlogical.c:205 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" @@ -163,36 +164,36 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null ポインタを複製できません (内部エラー)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: pg_receivewal.c:319 pg_recvlogical.c:352 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: pg_receivewal.c:319 pg_recvlogical.c:353 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 +#: ../../common/file_utils.c:520 pg_basebackup.c:2345 walmethods.c:462 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -227,191 +228,200 @@ msgstr "制限付きトークンで再実行できませんでした: %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "サブプロセスの終了コードを取得できませんでした: エラーコード %lu" -#: ../../fe_utils/option_utils.c:69 -#, c-format -msgid "invalid value \"%s\" for option %s" -msgstr "オプション\"%2$s\"に対する不正な値\"%1$s\"" - -#: ../../fe_utils/option_utils.c:76 -#, c-format -msgid "%s must be in range %d..%d" -msgstr "%sは%d..%dの範囲でなければなりません" - -#: ../../fe_utils/option_utils.c:106 -#, c-format -msgid "unrecognized sync method: %s" -msgstr "認識できない同期方式: %s" - -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 -#, c-format -msgid "out of memory" -msgstr "メモリ不足です" - -#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "ファイル\"%s\"を書き込めませんでした: %m" - -#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 -#: pg_basebackup.c:1497 pg_basebackup.c:1706 +#: ../../fe_utils/astreamer_file.c:96 ../../fe_utils/astreamer_file.c:364 +#: ../../fe_utils/recovery_gen.c:153 pg_basebackup.c:1498 pg_basebackup.c:1707 #, c-format msgid "could not create file \"%s\": %m" msgstr "ファイル\"%s\"を作成できませんでした: %m" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/astreamer_file.c:124 ../../fe_utils/astreamer_file.c:261 +#: ../../fe_utils/recovery_gen.c:144 pg_basebackup.c:1434 pg_basebackup.c:1728 #, c-format -msgid "shell command argument contains a newline or carriage return: \"%s\"\n" -msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" - -#: ../../fe_utils/string_utils.c:607 -#, c-format -msgid "database name contains a newline or carriage return: \"%s\"\n" -msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" +msgid "could not write to file \"%s\": %m" +msgstr "ファイル\"%s\"を書き込めませんでした: %m" -#: bbstreamer_file.c:275 +#: ../../fe_utils/astreamer_file.c:278 #, c-format msgid "unexpected state while extracting archive" msgstr "アーカイブの抽出中に想定外の状態" -#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 -#: pg_basebackup.c:757 +#: ../../fe_utils/astreamer_file.c:324 pg_basebackup.c:699 pg_basebackup.c:713 +#: pg_basebackup.c:758 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" -#: bbstreamer_file.c:326 +#: ../../fe_utils/astreamer_file.c:329 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "ディレクトリ\"%s\"に権限を設定できませんでした: %m" -#: bbstreamer_file.c:345 +#: ../../fe_utils/astreamer_file.c:348 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "\"%s\"から\"%s\"へのシンボリックリンクを作成できませんでした: %m" -#: bbstreamer_file.c:365 +#: ../../fe_utils/astreamer_file.c:368 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "ファイル\"%s\"の権限を設定できませんでした: %m" -#: bbstreamer_gzip.c:95 +#: ../../fe_utils/astreamer_gzip.c:115 #, c-format msgid "could not create compressed file \"%s\": %m" msgstr "圧縮ファイル\"%s\"を作成できませんでした: %m" -#: bbstreamer_gzip.c:103 +#: ../../fe_utils/astreamer_gzip.c:127 #, c-format msgid "could not duplicate stdout: %m" msgstr "標準出力の複製に失敗しました: %m" -#: bbstreamer_gzip.c:107 +#: ../../fe_utils/astreamer_gzip.c:131 #, c-format msgid "could not open output file: %m" msgstr "出力ファイルをオープンできませんでした: %m" -#: bbstreamer_gzip.c:111 +#: ../../fe_utils/astreamer_gzip.c:135 #, c-format msgid "could not set compression level %d: %s" msgstr "圧縮レベルを%dに設定できませんでした: %s" -#: bbstreamer_gzip.c:143 +#: ../../fe_utils/astreamer_gzip.c:167 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "圧縮ファイル\"%s\"に書き込めませんでした: %s" -#: bbstreamer_gzip.c:167 +#: ../../fe_utils/astreamer_gzip.c:191 #, c-format msgid "could not close compressed file \"%s\": %m" msgstr "圧縮ファイル\"%s\"をクローズすることができませんでした: %m" -#: bbstreamer_gzip.c:245 walmethods.c:880 +#: ../../fe_utils/astreamer_gzip.c:269 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "圧縮ライブラリを初期化できませんでした" -#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 +#: ../../fe_utils/astreamer_gzip.c:320 ../../fe_utils/astreamer_lz4.c:356 +#: ../../fe_utils/astreamer_zstd.c:333 #, c-format msgid "could not decompress data: %s" msgstr "データを伸張できませんでした: %s" -#: bbstreamer_inject.c:189 -#, c-format -msgid "unexpected state while injecting recovery settings" -msgstr "リカバリ設定の出力中に想定外の状態" - -#: bbstreamer_lz4.c:95 +#: ../../fe_utils/astreamer_lz4.c:97 #, c-format msgid "could not create lz4 compression context: %s" msgstr "lz4圧縮コンテクストを生成できませんでした: %s" -#: bbstreamer_lz4.c:140 +#: ../../fe_utils/astreamer_lz4.c:142 #, c-format msgid "could not write lz4 header: %s" msgstr "lz4ヘッダを出力できませんでした: %s" -#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 +#: ../../fe_utils/astreamer_lz4.c:191 ../../fe_utils/astreamer_zstd.c:185 +#: ../../fe_utils/astreamer_zstd.c:227 #, c-format msgid "could not compress data: %s" msgstr "データを圧縮できませんでした: %s" -#: bbstreamer_lz4.c:241 +#: ../../fe_utils/astreamer_lz4.c:243 #, c-format msgid "could not end lz4 compression: %s" msgstr "lz4圧縮を終了できませんでした: %s" -#: bbstreamer_lz4.c:293 +#: ../../fe_utils/astreamer_lz4.c:295 #, c-format msgid "could not initialize compression library: %s" msgstr "圧縮ライブラリを初期化できませんでした: %s" -#: bbstreamer_tar.c:244 +#: ../../fe_utils/astreamer_tar.c:244 #, c-format msgid "tar file trailer exceeds 2 blocks" msgstr "tarファイル後続ブロックが2ブロックを超えています" -#: bbstreamer_tar.c:249 +#: ../../fe_utils/astreamer_tar.c:249 #, c-format msgid "unexpected state while parsing tar archive" msgstr "tarアーカイブのパース中に想定外の状態" -#: bbstreamer_tar.c:292 +#: ../../fe_utils/astreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "tarメンバーの名前が空です" -#: bbstreamer_tar.c:326 +#: ../../fe_utils/astreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "最後のファイルが終わる前にCOPYストリームが終了しました" -#: bbstreamer_zstd.c:85 +#: ../../fe_utils/astreamer_zstd.c:89 #, c-format msgid "could not create zstd compression context" msgstr "zstd圧縮コンテクストを生成できませんでした" -#: bbstreamer_zstd.c:91 +#: ../../fe_utils/astreamer_zstd.c:95 #, c-format msgid "could not set zstd compression level to %d: %s" msgstr "zstd圧縮レベルを%dに設定できませんでした: %s" -#: bbstreamer_zstd.c:105 +#: ../../fe_utils/astreamer_zstd.c:109 #, c-format msgid "could not set compression worker count to %d: %s" msgstr "圧縮ワーカー数を%dに設定できませんでした: %s" -#: bbstreamer_zstd.c:116 +#: ../../fe_utils/astreamer_zstd.c:120 #, c-format msgid "could not enable long-distance mode: %s" msgstr "長距離モードを有効化できませんでした: %s" -#: bbstreamer_zstd.c:275 +#: ../../fe_utils/astreamer_zstd.c:279 #, c-format msgid "could not create zstd decompression context" msgstr "zstd伸張コンテクストを生成できませんでした" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "オプション\"%2$s\"に対する不正な値\"%1$s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%sは%d..%dの範囲でなければなりません" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "認識できない同期方式: %s" + +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 +#: pg_basebackup.c:1637 +#, c-format +msgid "out of memory" +msgstr "メモリ不足です" + +#: ../../fe_utils/recovery_gen.c:215 pg_basebackup.c:2249 streamutil.c:89 +#: streamutil.c:204 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" + +#: astreamer_inject.c:189 +#, c-format +msgid "unexpected state while injecting recovery settings" +msgstr "リカバリ設定の出力中に想定外の状態" + #: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" @@ -501,14 +511,14 @@ msgstr "" "%sは実行中のPostgreSQLサーバーのベースバックアップを取得します。\n" "\n" -#: pg_basebackup.c:394 pg_createsubscriber.c:216 pg_receivewal.c:79 -#: pg_recvlogical.c:86 +#: pg_basebackup.c:394 pg_createsubscriber.c:246 pg_receivewal.c:79 +#: pg_recvlogical.c:85 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_basebackup.c:395 pg_createsubscriber.c:217 pg_receivewal.c:80 -#: pg_recvlogical.c:87 +#: pg_basebackup.c:395 pg_createsubscriber.c:247 pg_receivewal.c:80 +#: pg_recvlogical.c:86 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [オプション]...\n" @@ -659,12 +669,12 @@ msgstr " -P, --progress 進行状況の表示\n" msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=スロット名 使用するレプリケーションスロット\n" -#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:109 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose 冗長メッセージの出力\n" -#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:110 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" @@ -720,12 +730,12 @@ msgstr "" " --sync-method=METHOD\n" " ファイルをディスクに同期させる方法を指定\n" -#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:111 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:112 #, c-format msgid "" "\n" @@ -739,12 +749,12 @@ msgstr "" msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONNSTR 接続文字列\n" -#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:114 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME データベースサーバーホストまたはソケットディレクトリ\n" -#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:115 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT データベースサーバーのポート番号\n" @@ -758,23 +768,23 @@ msgstr "" " -s, --status-interval=INTERVAL\n" " サーバーへ送出するステータスパケットの間隔(秒単位)\n" -#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:116 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME 指定したデータベースユーザーで接続\n" -#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:117 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password パスワードの入力を要求しない\n" -#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:118 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password パスワード入力要求を強制(自動的に行われるはず)\n" -#: pg_basebackup.c:448 pg_createsubscriber.c:235 pg_receivewal.c:106 -#: pg_recvlogical.c:118 +#: pg_basebackup.c:448 pg_createsubscriber.c:270 pg_receivewal.c:106 +#: pg_recvlogical.c:119 #, c-format msgid "" "\n" @@ -783,8 +793,8 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_basebackup.c:449 pg_createsubscriber.c:236 pg_receivewal.c:107 -#: pg_recvlogical.c:119 +#: pg_basebackup.c:449 pg_createsubscriber.c:271 pg_receivewal.c:107 +#: pg_recvlogical.c:120 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" @@ -794,8 +804,8 @@ msgstr "%s ホームページ: <%s>\n" msgid "could not read from ready pipe: %m" msgstr "準備ができたパイプからの読み込みが失敗しました: %m" -#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 -#: streamutil.c:518 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2259 +#: streamutil.c:450 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "先行書き込みログの位置\"%s\"をパースできませんでした" @@ -810,509 +820,505 @@ msgstr "WALファイルの書き込みを終了できませんでした: %m" msgid "could not create pipe for background process: %m" msgstr "バックグランドプロセス用のパイプを作成できませんでした: \"%m" -#: pg_basebackup.c:676 +#: pg_basebackup.c:677 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "一時レプリケーションスロット\"%s\"を作成しました" -#: pg_basebackup.c:679 +#: pg_basebackup.c:680 #, c-format msgid "created replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"を作成していました" -#: pg_basebackup.c:728 +#: pg_basebackup.c:729 #, c-format msgid "could not create background process: %m" msgstr "バックグラウンドプロセスを生成できませんでした: %m" -#: pg_basebackup.c:737 +#: pg_basebackup.c:738 #, c-format msgid "could not create background thread: %m" msgstr "バックグラウンドスレッドを生成できませんでした: %m" -#: pg_basebackup.c:776 +#: pg_basebackup.c:777 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "ディレクトリ\"%s\"は存在しますが空ではありません" -#: pg_basebackup.c:782 pg_createsubscriber.c:378 +#: pg_basebackup.c:783 pg_createsubscriber.c:420 #, c-format msgid "could not access directory \"%s\": %m" msgstr "ディレクトリ\"%s\"にアクセスできませんでした: %m" -#: pg_basebackup.c:858 +#: pg_basebackup.c:859 #, 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 テーブル空間 %*s" -#: pg_basebackup.c:870 +#: pg_basebackup.c:871 #, 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 テーブル空間 (%s%-*.*s)" -#: pg_basebackup.c:886 +#: pg_basebackup.c:887 #, 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 テーブル空間" -#: pg_basebackup.c:910 +#: pg_basebackup.c:911 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "転送速度\"%s\"は無効な値です" -#: pg_basebackup.c:912 +#: pg_basebackup.c:913 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "転送速度\"%s\"は無効です: %m" -#: pg_basebackup.c:919 +#: pg_basebackup.c:920 #, c-format msgid "transfer rate must be greater than zero" msgstr "転送速度は0より大きな値でなければなりません" -#: pg_basebackup.c:949 +#: pg_basebackup.c:950 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "--max-rate の単位が不正です: \"%s\"" -#: pg_basebackup.c:953 +#: pg_basebackup.c:954 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "転送速度\"%s\"がintegerの範囲を超えています" -#: pg_basebackup.c:960 +#: pg_basebackup.c:961 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "転送速度\"%s\"が範囲外です" -#: pg_basebackup.c:1022 +#: pg_basebackup.c:1023 #, c-format msgid "could not get COPY data stream: %s" msgstr "COPYデータストリームを取得できませんでした: %s" -#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 -#: receivelog.c:973 +#: pg_basebackup.c:1040 pg_recvlogical.c:450 pg_recvlogical.c:626 +#: receivelog.c:980 #, c-format msgid "could not read COPY data: %s" msgstr "COPYデータを読み取ることができませんでした: %s" -#: pg_basebackup.c:1043 +#: pg_basebackup.c:1044 #, c-format msgid "background process terminated unexpectedly" msgstr "バックグラウンドプロセスが突然終了しました" -#: pg_basebackup.c:1114 +#: pg_basebackup.c:1115 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "圧縮tarファイルには目録は出力できません" -#: pg_basebackup.c:1115 +#: pg_basebackup.c:1116 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "クライアントサイド圧縮を使用して標準出力ではなくディレクトリに出力する、または %s を使用してください。" -#: pg_basebackup.c:1131 +#: pg_basebackup.c:1132 #, c-format msgid "cannot parse archive \"%s\"" msgstr "アーカイブ\"%s\"のパースができませんでした" -#: pg_basebackup.c:1132 +#: pg_basebackup.c:1133 #, c-format msgid "Only tar archives can be parsed." msgstr "tarアーカイブのみパース可能です。" -#: pg_basebackup.c:1134 +#: pg_basebackup.c:1135 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Plainフォーマットではpg_basebackupがアーカイブをパースする必要があります。" -#: pg_basebackup.c:1136 +#: pg_basebackup.c:1137 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "出力ディレクトリに - を指定する際にはpg_basebackupがアーカイブをパースする必要があります。" -#: pg_basebackup.c:1138 +#: pg_basebackup.c:1139 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "-Rオプションを指定する場合はpg_basebackupがアーカイブをパースする必要があります。" -#: pg_basebackup.c:1357 +#: pg_basebackup.c:1358 #, c-format msgid "archives must precede manifest" msgstr "アーカイブは目録より先にあるはずです" -#: pg_basebackup.c:1372 +#: pg_basebackup.c:1373 #, c-format msgid "invalid archive name: \"%s\"" msgstr "不正なアーカイブ名: \"%s\"" -#: pg_basebackup.c:1444 +#: pg_basebackup.c:1445 #, c-format msgid "unexpected payload data" msgstr "予期しないペイロードのデータ" -#: pg_basebackup.c:1587 +#: pg_basebackup.c:1588 #, c-format msgid "empty COPY message" msgstr "空のCOPYメッセージ" -#: pg_basebackup.c:1589 +#: pg_basebackup.c:1590 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "タイプ%d、長さ%zuのCOPYメッセージのフォーマット異常" -#: pg_basebackup.c:1789 +#: pg_basebackup.c:1790 #, c-format msgid "incompatible server version %s" msgstr "非互換のサーバーバージョン \"%s\"" -#: pg_basebackup.c:1805 +#: pg_basebackup.c:1806 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "-X none または -X fetch でログストリーミングを無効にできます。" -#: pg_basebackup.c:1841 +#: pg_basebackup.c:1842 #, c-format msgid "server does not support incremental backup" msgstr "サーバーは差分バックアップをサポートしていません" -#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 -#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 -#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#: pg_basebackup.c:1851 pg_basebackup.c:2009 pg_recvlogical.c:273 +#: receivelog.c:542 receivelog.c:581 streamutil.c:296 streamutil.c:370 +#: streamutil.c:422 streamutil.c:510 streamutil.c:667 streamutil.c:712 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "レプリケーションコマンド\"%s\"を送信できませんでした: %s" -#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#: pg_basebackup.c:1857 pg_basebackup.c:1884 #, c-format msgid "could not upload manifest: %s" msgstr "バックアップ目録をアップロードできませんでした: %s" -#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#: pg_basebackup.c:1860 pg_basebackup.c:1887 #, c-format msgid "could not upload manifest: unexpected status %s" msgstr "バックアップ目録をアップロードできませんでした: 予期しないステータス %s" -#: pg_basebackup.c:1867 +#: pg_basebackup.c:1868 #, c-format msgid "could not send COPY data: %s" msgstr "COPYデータを創出することができませんでした: %s" -#: pg_basebackup.c:1877 +#: pg_basebackup.c:1878 #, c-format msgid "could not send end-of-COPY: %s" msgstr "COPY終端マーカーを送信できませんでした: %s" -#: pg_basebackup.c:1892 +#: pg_basebackup.c:1893 #, c-format msgid "unexpected extra result while sending manifest" msgstr "バックアップ目録送出中の想定外の余分な結果" -#: pg_basebackup.c:1950 +#: pg_basebackup.c:1951 #, c-format msgid "backup targets are not supported by this server version" msgstr "バックアップターゲットはこのサーバーバージョンではサポートされません" -#: pg_basebackup.c:1953 +#: pg_basebackup.c:1954 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "バックアップターゲットが使用されている場合にはリカバリ設定は出力できません" -#: pg_basebackup.c:1980 +#: pg_basebackup.c:1981 #, c-format msgid "server does not support server-side compression" msgstr "サーバーはサーバーサイド圧縮をサポートしていません" -#: pg_basebackup.c:1990 +#: pg_basebackup.c:1991 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "ベースバックアップを開始しています - チェックポイントの完了を待機中" -#: pg_basebackup.c:1994 +#: pg_basebackup.c:1995 #, c-format msgid "waiting for checkpoint" msgstr "チェックポイントを待っています" -#: pg_basebackup.c:2016 +#: pg_basebackup.c:2017 #, c-format msgid "could not initiate base backup: %s" msgstr "ベースバックアップを開始できませんでした: %s" -#: pg_basebackup.c:2019 +#: pg_basebackup.c:2020 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "サーバーが BASE_BACKUP コマンドに期待していない応答を返しました; %d行 %d列を受信しましたが期待は %d列 %d行でした" -#: pg_basebackup.c:2025 +#: pg_basebackup.c:2026 #, c-format msgid "checkpoint completed" msgstr "チェックポイントが完了しました" -#: pg_basebackup.c:2039 +#: pg_basebackup.c:2040 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "先行書き込みログの開始ポイント: タイムライン %2$u 上の %1$s" -#: pg_basebackup.c:2047 +#: pg_basebackup.c:2048 #, c-format msgid "could not get backup header: %s" msgstr "バックアップヘッダを取得できませんでした: %s" -#: pg_basebackup.c:2050 +#: pg_basebackup.c:2051 #, c-format msgid "no data returned from server" msgstr "サーバーからデータが返されませんでした" -#: pg_basebackup.c:2093 +#: pg_basebackup.c:2094 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "標準出力に書き出せるテーブル空間は1つだけですが、データベースには%d個あります" -#: pg_basebackup.c:2106 +#: pg_basebackup.c:2107 #, c-format msgid "starting background WAL receiver" msgstr "バックグランドWAL受信処理を起動します" -#: pg_basebackup.c:2189 +#: pg_basebackup.c:2190 #, c-format msgid "backup failed: %s" msgstr "バックアップが失敗しました: %s" -#: pg_basebackup.c:2192 +#: pg_basebackup.c:2193 #, c-format msgid "no write-ahead log end position returned from server" msgstr "サーバーから先行書き込みログの終了位置が返されませんでした" -#: pg_basebackup.c:2195 +#: pg_basebackup.c:2196 #, c-format msgid "write-ahead log end point: %s" msgstr "先行書き込みログの終了ポイント: %s" -#: pg_basebackup.c:2206 +#: pg_basebackup.c:2207 #, c-format msgid "checksum error occurred" msgstr "チェックサムエラーが発生しました" -#: pg_basebackup.c:2211 +#: pg_basebackup.c:2212 #, c-format msgid "final receive failed: %s" msgstr "終端の受信に失敗しました: %s" -#: pg_basebackup.c:2235 +#: pg_basebackup.c:2236 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "バックグランドプロセスがストリーミング処理が終わるまで待機します ..." -#: pg_basebackup.c:2239 +#: pg_basebackup.c:2240 #, c-format msgid "could not send command to background pipe: %m" msgstr "バックグランドへのパイプにコマンドを送信できませんでした: %m" -#: pg_basebackup.c:2244 +#: pg_basebackup.c:2245 #, c-format msgid "could not wait for child process: %m" msgstr "子プロセスの待機ができませんでした: %m" -#: pg_basebackup.c:2246 +#: pg_basebackup.c:2247 #, c-format msgid "child %d died, expected %d" msgstr "子プロセス %d が終了しましたが、期待していたのは %d でした" -#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 -#, c-format -msgid "%s" -msgstr "%s" - -#: pg_basebackup.c:2268 +#: pg_basebackup.c:2269 #, c-format msgid "could not wait for child thread: %m" msgstr "子スレッドの待機ができませんでした: %m" -#: pg_basebackup.c:2273 +#: pg_basebackup.c:2274 #, c-format msgid "could not get child thread exit status: %m" msgstr "子スレッドの終了ステータスを取得できませんでした: %m" -#: pg_basebackup.c:2276 +#: pg_basebackup.c:2277 #, c-format msgid "child thread exited with error %u" msgstr "子スレッドがエラー%uで終了しました" -#: pg_basebackup.c:2305 +#: pg_basebackup.c:2306 #, c-format msgid "syncing data to disk ..." msgstr "データをディスクに同期しています..." -#: pg_basebackup.c:2330 +#: pg_basebackup.c:2331 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" -msgstr "backup_manifest.tmp の名前を backup_manifest に変更してください" +msgstr "backup_manifest.tmp の名前を backup_manifest に変更しています" -#: pg_basebackup.c:2350 +#: pg_basebackup.c:2351 #, c-format msgid "base backup completed" msgstr "ベースバックアップが完了しました" -#: pg_basebackup.c:2436 +#: pg_basebackup.c:2437 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "不正な checkpoint の引数\"%s\"、\"fast\" または \"spreadでなければなりません" -#: pg_basebackup.c:2454 +#: pg_basebackup.c:2455 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "不正な出力フォーマット\"%s\"、\"plain\"か\"tar\"でなければなりません" -#: pg_basebackup.c:2535 +#: pg_basebackup.c:2536 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "不正な wal-method オプション\"%s\"、\"fetch\"、\"stream\" または \"none\" のいずれかでなければなりません" -#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 -#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 -#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 -#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 -#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 -#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 -#: pg_basebackup.c:2803 pg_createsubscriber.c:1907 pg_createsubscriber.c:1917 -#: pg_createsubscriber.c:1925 pg_createsubscriber.c:1953 -#: pg_createsubscriber.c:1985 pg_receivewal.c:748 pg_receivewal.c:760 -#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 -#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 -#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 -#: pg_recvlogical.c:917 pg_recvlogical.c:924 +#: pg_basebackup.c:2575 pg_basebackup.c:2587 pg_basebackup.c:2609 +#: pg_basebackup.c:2621 pg_basebackup.c:2627 pg_basebackup.c:2679 +#: pg_basebackup.c:2690 pg_basebackup.c:2700 pg_basebackup.c:2706 +#: pg_basebackup.c:2713 pg_basebackup.c:2725 pg_basebackup.c:2737 +#: pg_basebackup.c:2745 pg_basebackup.c:2758 pg_basebackup.c:2764 +#: pg_basebackup.c:2773 pg_basebackup.c:2785 pg_basebackup.c:2796 +#: pg_basebackup.c:2804 pg_createsubscriber.c:2196 pg_createsubscriber.c:2218 +#: pg_createsubscriber.c:2228 pg_createsubscriber.c:2236 +#: pg_createsubscriber.c:2264 pg_createsubscriber.c:2307 pg_receivewal.c:748 +#: pg_receivewal.c:760 pg_receivewal.c:767 pg_receivewal.c:776 +#: pg_receivewal.c:783 pg_receivewal.c:793 pg_recvlogical.c:859 +#: pg_recvlogical.c:871 pg_recvlogical.c:881 pg_recvlogical.c:888 +#: pg_recvlogical.c:895 pg_recvlogical.c:902 pg_recvlogical.c:909 +#: pg_recvlogical.c:916 pg_recvlogical.c:923 pg_recvlogical.c:932 +#: pg_recvlogical.c:939 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_basebackup.c:2584 pg_createsubscriber.c:1915 pg_receivewal.c:758 -#: pg_recvlogical.c:863 +#: pg_basebackup.c:2585 pg_createsubscriber.c:2226 pg_receivewal.c:758 +#: pg_recvlogical.c:869 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多過ぎます(先頭は\"%s\"です)" -#: pg_basebackup.c:2607 +#: pg_basebackup.c:2608 #, c-format msgid "cannot specify both format and backup target" msgstr "フォーマットとバックアップターゲットの両方を同時には指定できません" -#: pg_basebackup.c:2619 +#: pg_basebackup.c:2620 #, c-format msgid "must specify output directory or backup target" msgstr "出力ディレクトリかバックアップターゲットを指定する必要があります" -#: pg_basebackup.c:2625 +#: pg_basebackup.c:2626 #, c-format msgid "cannot specify both output directory and backup target" msgstr "出力先ディレクトリとバックアップターゲットの両方を同時には指定できません" -#: pg_basebackup.c:2655 pg_receivewal.c:802 +#: pg_basebackup.c:2656 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "認識できない圧縮アルゴリズム\"%s\"" -#: pg_basebackup.c:2661 pg_receivewal.c:809 +#: pg_basebackup.c:2662 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "不正な圧縮指定: %s" -#: pg_basebackup.c:2677 +#: pg_basebackup.c:2678 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "バックアップターゲットが指定されているとクライアントサイド圧縮はできません" -#: pg_basebackup.c:2688 +#: pg_basebackup.c:2689 #, c-format msgid "only tar mode backups can be compressed" msgstr "tarモードでのバックアップのみが圧縮可能です" -#: pg_basebackup.c:2698 +#: pg_basebackup.c:2699 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "バックアップターゲット指定されているとWALはストリーム出力できません" -#: pg_basebackup.c:2704 +#: pg_basebackup.c:2705 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "標準出力への tar モードでは書き込み先行ログをストリーム出力できません" -#: pg_basebackup.c:2711 +#: pg_basebackup.c:2712 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "レプリケーションスロットはWALストリーミングでのみ使用可能です" -#: pg_basebackup.c:2723 +#: pg_basebackup.c:2724 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot はスロット名と同時には指定できません" #. translator: second %s is an option name -#: pg_basebackup.c:2734 pg_receivewal.c:774 +#: pg_basebackup.c:2735 pg_receivewal.c:774 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "%s は --slot でスロットを指定する必要があります" -#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 -#: pg_basebackup.c:2801 +#: pg_basebackup.c:2743 pg_basebackup.c:2783 pg_basebackup.c:2794 +#: pg_basebackup.c:2802 #, c-format msgid "%s and %s are incompatible options" msgstr "%s と %s は非互換なオプションです" -#: pg_basebackup.c:2756 +#: pg_basebackup.c:2757 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "WALディレクトリの位置はバックアップターゲットと同時には指定できません" -#: pg_basebackup.c:2762 +#: pg_basebackup.c:2763 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "WALディレクトリの位置は plainモードでのみ指定可能です" -#: pg_basebackup.c:2771 +#: pg_basebackup.c:2772 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WALディレクトリの位置は、絶対パスでなければなりません" -#: pg_basebackup.c:2871 +#: pg_basebackup.c:2872 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を作成できませんでした: %m" -#: pg_createsubscriber.c:164 +#: pg_createsubscriber.c:189 #, c-format msgid "failed after the end of recovery" msgstr "リカバリ完了後に失敗しました" -#: pg_createsubscriber.c:165 +#: pg_createsubscriber.c:190 #, c-format msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." msgstr "以降この対象サーバーは物理複製としては使用できません。作業を継続する前に物理複製を再作成する必要があります。" -#: pg_createsubscriber.c:193 +#: pg_createsubscriber.c:221 #, c-format -msgid "publication \"%s\" in database \"%s\" on primary might be left behind" -msgstr "プライマリ上のデータベース\"%2$s\"にパブリケーション\"%1$s\"が残される可能性があります" +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "プライマリ上のデータベース\"%2$s\"で作成されたパブリケーション\"%1$s\"が残されています" -#: pg_createsubscriber.c:195 +#: pg_createsubscriber.c:224 #, c-format -msgid "Consider dropping this publication before trying again." -msgstr "再試行の前にこのパブリケーションを削除することを検討してください。" +msgid "Drop this publication before trying again." +msgstr "再試行の前にこのパブリケーションを削除してください。" -#: pg_createsubscriber.c:199 +#: pg_createsubscriber.c:228 #, c-format -msgid "replication slot \"%s\" in database \"%s\" on primary might be left behind" -msgstr "プライマリ上のデータベース\"%2$s\"にレプリケーションスロット\"%1$s\"が残される可能性があります" +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "プライマリ上のデータベース\"%2$s\"で作成されたレプリケーションスロット\"%1$s\"が残されています" -#: pg_createsubscriber.c:201 pg_createsubscriber.c:1137 +#: pg_createsubscriber.c:231 pg_createsubscriber.c:1305 #, c-format msgid "Drop this replication slot soon to avoid retention of WAL files." msgstr "WALファイルの増加を避けるためにこのレプリケーションスロットを直ちに削除してください。" -#: pg_createsubscriber.c:214 +#: pg_createsubscriber.c:244 #, c-format msgid "" "%s creates a new logical replica from a standby server.\n" @@ -1321,7 +1327,7 @@ msgstr "" "%s スタンバイサーバーから新たな論理複製を作成します。\n" "\n" -#: pg_createsubscriber.c:218 pg_receivewal.c:81 pg_recvlogical.c:92 +#: pg_createsubscriber.c:248 pg_receivewal.c:81 pg_recvlogical.c:91 #, c-format msgid "" "\n" @@ -1330,593 +1336,682 @@ msgstr "" "\n" "オプション:\n" -#: pg_createsubscriber.c:219 +#: pg_createsubscriber.c:249 #, c-format -msgid " -d, --database=DBNAME database to create a subscription\n" +msgid "" +" -a, --all create subscriptions for all databases except template\n" +" databases or databases that don't allow connections\n" +msgstr "" +" -a, --all テンプレートデータベースまたは接続を許可\n" +" しないデーバーベースを除くすべてのデータ\n" +" ベースでサブスクリプションを作成する\n" + +#: pg_createsubscriber.c:251 +#, c-format +msgid " -d, --database=DBNAME database in which to create a subscription\n" msgstr " -d, --database=DBNAME サブスクリプションを作成するデータベース名\n" -#: pg_createsubscriber.c:220 +#: pg_createsubscriber.c:252 #, c-format msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" msgstr " -D, --pgdata=DATADIR サブスクライバのデータディレクトリの場所\n" -#: pg_createsubscriber.c:221 +#: pg_createsubscriber.c:253 #, c-format msgid " -n, --dry-run dry run, just show what would be done\n" msgstr " -n, --dry-run 更新をせず、単に何が行なわれるかを表示\n" -#: pg_createsubscriber.c:222 +#: pg_createsubscriber.c:254 #, c-format msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" msgstr " -p, --subscriber-port=PORT サブスクライバのポート番号 (デフォルト %s)\n" -#: pg_createsubscriber.c:223 +#: pg_createsubscriber.c:255 #, c-format msgid " -P, --publisher-server=CONNSTR publisher connection string\n" msgstr " -P, --publisher-server=CONNSTR パブリッシャの接続文字列\n" -#: pg_createsubscriber.c:224 +#: pg_createsubscriber.c:256 #, c-format -msgid " -s, --socket-directory=DIR socket directory to use (default current directory)\n" +msgid "" +" -R, --remove=OBJECTTYPE remove all objects of the specified type from specified\n" +" databases on the subscriber; accepts: publications\n" msgstr "" -" -s, --socket-directory=DIR 使用するソケットディレクトリ(デフォルトは\n" +" -R, --remove=OBJECTTYPE サブスクライバ側の指定したデータベースから、\n" +" 指定された種類のオブジェクトをすべて削除する;\n" +" 指定可能なオブジェクト種別: publications\n" + +#: pg_createsubscriber.c:258 +#, c-format +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr "" +" -s, --socketdir=DIR 使用するソケットディレクトリ(デフォルトは\n" " カレントディレクトリ)\n" -#: pg_createsubscriber.c:225 +#: pg_createsubscriber.c:259 #, c-format msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" msgstr " -t, --recovery-timeout=SECS リカバリ完了を待機する秒数\n" -#: pg_createsubscriber.c:226 +#: pg_createsubscriber.c:260 #, c-format -msgid " -U, --subscriber-username=NAME subscriber username\n" -msgstr " -U, --subscriber-username=NAME サブスクライバのユーザー名\n" +msgid " -T, --enable-two-phase enable two-phase commit for all subscriptions\n" +msgstr "" +" -T, --enable-two-phase 2相コミットをすべてのサブスクリプションに\n" +" 対して有効化\n" -#: pg_createsubscriber.c:227 +#: pg_createsubscriber.c:261 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NAME サブスクライバ接続のユーザー名\n" + +#: pg_createsubscriber.c:262 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose 冗長メッセージを出力\n" -#: pg_createsubscriber.c:228 +#: pg_createsubscriber.c:263 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" " file when running target cluster\n" msgstr "" -" --config-file=FILENAME ターゲットのクラスタの実行時に指定した\n" -" 主サーバー設定ファイルを使用する\n" +" --config-file=FILENAME ターゲットクラスタの実行時に、指定した\n" +" メインのサーバー設定ファイルを使用する\n" -#: pg_createsubscriber.c:230 +#: pg_createsubscriber.c:265 #, c-format msgid " --publication=NAME publication name\n" msgstr " --publication=NAME パブリケーション名\n" -#: pg_createsubscriber.c:231 +#: pg_createsubscriber.c:266 #, c-format msgid " --replication-slot=NAME replication slot name\n" msgstr " --replication-slot=NAME レプリケーションスロット名\n" -#: pg_createsubscriber.c:232 +#: pg_createsubscriber.c:267 #, c-format msgid " --subscription=NAME subscription name\n" msgstr " --subscription=NAME サブスクリプション名\n" -#: pg_createsubscriber.c:233 +#: pg_createsubscriber.c:268 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_createsubscriber.c:234 +#: pg_createsubscriber.c:269 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_createsubscriber.c:265 +#: pg_createsubscriber.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "接続文字列をパースできませんでした: %s" -#: pg_createsubscriber.c:347 +#: pg_createsubscriber.c:389 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "%2$sにはプログラム\"%1$s\"が必要ですが、\"%3$s\"と同じディレクトリにはありませんでした。" -#: pg_createsubscriber.c:350 +#: pg_createsubscriber.c:392 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした。" -#: pg_createsubscriber.c:370 +#: pg_createsubscriber.c:412 #, c-format msgid "checking if directory \"%s\" is a cluster data directory" msgstr "ディレクトリ\"%s\"がクラスタデータディレクトリであることを確認中" -#: pg_createsubscriber.c:376 +#: pg_createsubscriber.c:418 #, c-format msgid "data directory \"%s\" does not exist" msgstr "データディレクトリ\"%s\"は存在しません" -#: pg_createsubscriber.c:384 +#: pg_createsubscriber.c:426 #, c-format msgid "directory \"%s\" is not a database cluster directory" msgstr "ディレクトリ\"%s\"はデータベースクラスタディレクトリではありません" -#: pg_createsubscriber.c:501 +#: pg_createsubscriber.c:544 #, c-format msgid "connection to database failed: %s" msgstr "データベース接続に失敗しました: %s" -#: pg_createsubscriber.c:514 +#: pg_createsubscriber.c:557 streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "search_pathを消去できませんでした: %s" +msgid "could not clear \"search_path\": %s" +msgstr "\"search_path\"を消去できませんでした: %s" -#: pg_createsubscriber.c:554 +#: pg_createsubscriber.c:597 #, c-format msgid "getting system identifier from publisher" msgstr "パブリッシャからシステム識別子を取得しています" -#: pg_createsubscriber.c:561 +#: pg_createsubscriber.c:604 #, c-format msgid "could not get system identifier: %s" msgstr "システム識別子を取得できませんでした: %s" -#: pg_createsubscriber.c:567 +#: pg_createsubscriber.c:610 #, c-format msgid "could not get system identifier: got %d rows, expected %d row" msgstr "システム識別子を取得できませんでした: 受信したのは%d行、想定は%d行" -#: pg_createsubscriber.c:574 +#: pg_createsubscriber.c:617 #, c-format -msgid "system identifier is %llu on publisher" -msgstr "パブリッシャのシステム識別子は%lluです" +msgid "system identifier is % on publisher" +msgstr "パブリッシャのシステム識別子は%です" -#: pg_createsubscriber.c:595 +#: pg_createsubscriber.c:637 #, c-format msgid "getting system identifier from subscriber" msgstr "サブスクライバからシステム識別子を取得しています" -#: pg_createsubscriber.c:599 pg_createsubscriber.c:629 +#: pg_createsubscriber.c:641 pg_createsubscriber.c:670 #, c-format msgid "control file appears to be corrupt" msgstr "制御ファイルが破損しているようです" -#: pg_createsubscriber.c:603 pg_createsubscriber.c:644 +#: pg_createsubscriber.c:645 pg_createsubscriber.c:685 #, c-format -msgid "system identifier is %llu on subscriber" -msgstr "サブスクライバのシステム識別子は%lluです" +msgid "system identifier is % on subscriber" +msgstr "サブスクライバのシステム識別子は%です" -#: pg_createsubscriber.c:625 +#: pg_createsubscriber.c:666 #, c-format msgid "modifying system identifier of subscriber" msgstr "サブスクライバのシステム識別子を変更しています" -#: pg_createsubscriber.c:647 +#: pg_createsubscriber.c:688 #, c-format msgid "running pg_resetwal on the subscriber" msgstr "サブスクライバ上でpg_resetwalを実行します" -#: pg_createsubscriber.c:659 +#: pg_createsubscriber.c:700 #, c-format msgid "subscriber successfully changed the system identifier" msgstr "サブスクライバはシステム識別子の変更に成功しました" -#: pg_createsubscriber.c:661 +#: pg_createsubscriber.c:702 #, c-format -msgid "subscriber failed to change system identifier: exit code: %d" -msgstr "サブスクライバはシステム識別子の変更に失敗しました: 終了コード: %d" +msgid "could not change system identifier of subscriber: %s" +msgstr "サブスクライバーのシステム識別子を変更できませんでした: %s" -#: pg_createsubscriber.c:685 +#: pg_createsubscriber.c:726 #, c-format msgid "could not obtain database OID: %s" msgstr "データベースOIDを取得できませんでした: %s" -#: pg_createsubscriber.c:692 +#: pg_createsubscriber.c:733 #, c-format msgid "could not obtain database OID: got %d rows, expected %d row" msgstr "データベースOIDを取得できませんでした: 受信したのは%d行、想定は%d行" -#: pg_createsubscriber.c:764 +#: pg_createsubscriber.c:805 #, c-format msgid "create replication slot \"%s\" on publisher" msgstr "パブリッシャでレプリケーションスロット\"%s\"を作成します" -#: pg_createsubscriber.c:788 +#: pg_createsubscriber.c:825 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "追加のWALレコードを書き込めませんでした: %s" + +#: pg_createsubscriber.c:851 #, c-format msgid "could not obtain recovery progress: %s" msgstr "リカバリ進捗を取得できませんでした: %s" -#: pg_createsubscriber.c:819 +#: pg_createsubscriber.c:884 #, c-format msgid "checking settings on publisher" msgstr "パブリッシャ上の設定を確認しています" -#: pg_createsubscriber.c:829 +#: pg_createsubscriber.c:894 #, c-format msgid "primary server cannot be in recovery" msgstr "プライマリサーバーがリカバリ中であってはなりません" -#: pg_createsubscriber.c:864 +#: pg_createsubscriber.c:920 #, c-format msgid "could not obtain publisher settings: %s" msgstr "パブリッシャの設定が取得できませんでした: %s" -#: pg_createsubscriber.c:887 +#: pg_createsubscriber.c:949 #, c-format -msgid "publisher requires wal_level >= \"logical\"" -msgstr "パブリッシャは wal_level >= \"logical\" である必要があります" +msgid "publisher requires \"wal_level\" >= \"logical\"" +msgstr "パブリッシャでは \"wal_level\" >= \"logical\" である必要があります" -#: pg_createsubscriber.c:893 +#: pg_createsubscriber.c:955 #, c-format msgid "publisher requires %d replication slots, but only %d remain" msgstr "パブリッシャは%d個のレプリケーションスロットを必要としますが、%d個しか残っていません" -#: pg_createsubscriber.c:895 pg_createsubscriber.c:994 +#: pg_createsubscriber.c:957 pg_createsubscriber.c:966 +#: pg_createsubscriber.c:1076 pg_createsubscriber.c:1085 +#: pg_createsubscriber.c:1094 #, c-format -msgid "Consider increasing max_replication_slots to at least %d." -msgstr "max_replication_slots を最低でも%dまで増やすことを検討してください。" +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "設定パラメータ\"%s\"を少なくとも%dに増やしてください。" -#: pg_createsubscriber.c:902 +#: pg_createsubscriber.c:964 #, c-format -msgid "publisher requires %d wal sender processes, but only %d remain" -msgstr "パブリッシャは%d個のwal senderプロセスを必要としますが、%d個しか残っていません" +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "パブリッシャは%d個のWAL senderプロセスを必要としますが、%d個しか残っていません" -#: pg_createsubscriber.c:904 +#: pg_createsubscriber.c:973 #, c-format -msgid "Consider increasing max_wal_senders to at least %d." -msgstr "max_wal_sendersを最低でも%dに上げることを検討してください。" +msgid "two_phase option will not be enabled for replication slots" +msgstr "レプリケーションスロットに対してtwo_phaseオプションは有効化されません" -#: pg_createsubscriber.c:937 +#: pg_createsubscriber.c:974 +#, c-format +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "サブスクリプションはtwo_phaseオプションが無効な状態で作成されます。準備済みトランザクションはCOMMIT PREPAREDでレプリケートされます。" + +#: pg_createsubscriber.c:976 +#, c-format +msgid "You can use --enable-two-phase switch to enable two_phase." +msgstr "--enable-two-phase オプションで two_phase を有効にできます。" + +#: pg_createsubscriber.c:986 +#, c-format +msgid "required WAL could be removed from the publisher" +msgstr "必要なWALがパブリッシャから削除される可能性があります" + +#: pg_createsubscriber.c:987 +#, c-format +msgid "Set the configuration parameter \"%s\" to -1 to ensure that required WAL files are not prematurely removed." +msgstr "設定パラメータ\"%s\"を -1 に設定して、必要となるWALファイルが使用される前に削除されないようにしてください。" + +#: pg_createsubscriber.c:1019 #, c-format msgid "checking settings on subscriber" msgstr "サブスクライバ上で設定を確認します" -#: pg_createsubscriber.c:944 +#: pg_createsubscriber.c:1026 #, c-format msgid "target server must be a standby" msgstr "ターゲットサーバーはスタンバイである必要があります" -#: pg_createsubscriber.c:968 +#: pg_createsubscriber.c:1050 #, c-format msgid "could not obtain subscriber settings: %s" msgstr "サブスクライバの設定を取得できませんでした: %s" -#: pg_createsubscriber.c:992 +#: pg_createsubscriber.c:1074 #, c-format -msgid "subscriber requires %d replication slots, but only %d remain" -msgstr "サブスクライバは%d個のレプリケーションスロットを必要としますが、%d個しか残ってません" +msgid "subscriber requires %d active replication origins, but only %d remain" +msgstr "サブスクライバは%d個の有効なレプリケーション起源を必要としますが、%d個しか残ってません" -#: pg_createsubscriber.c:1001 +#: pg_createsubscriber.c:1083 #, c-format msgid "subscriber requires %d logical replication workers, but only %d remain" msgstr "サブスクライバは%d個の論理レプリケーションワーカーを必要としますが、%d個しか残っていません" -#: pg_createsubscriber.c:1003 -#, c-format -msgid "Consider increasing max_logical_replication_workers to at least %d." -msgstr "max_logical_replication_workersを最低でも%dに増やすことを検討してください。" - -#: pg_createsubscriber.c:1010 +#: pg_createsubscriber.c:1092 #, c-format msgid "subscriber requires %d worker processes, but only %d remain" msgstr "サブスクライバは%d個のワーカープロセスを必要としますが、%d個しか残っていません" -#: pg_createsubscriber.c:1012 +#: pg_createsubscriber.c:1127 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"のサブスクリプション\"%1$s\"の削除中" + +#: pg_createsubscriber.c:1136 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "サブスクリプション\"%s\"を削除できませんでした: %s" + +#: pg_createsubscriber.c:1171 #, c-format -msgid "Consider increasing max_worker_processes to at least %d." -msgstr "max_worker_processesを最低でも%dに増やすことを検討してください。" +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "既存のサブスクリプションを取得できませんでした: %s" -#: pg_createsubscriber.c:1135 +#: pg_createsubscriber.c:1303 #, c-format msgid "could not drop replication slot \"%s\" on primary" msgstr "プライマリ上のレプリケーションスロット\"%s\"を削除できませんでした" -#: pg_createsubscriber.c:1169 +#: pg_createsubscriber.c:1337 #, c-format msgid "could not obtain failover replication slot information: %s" msgstr "フェイルオーバーレプリケーションスロットの情報を取得できませんでした: %s" -#: pg_createsubscriber.c:1171 pg_createsubscriber.c:1180 +#: pg_createsubscriber.c:1339 pg_createsubscriber.c:1348 #, c-format msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." msgstr "WALファイルの増加を避けるためにこのフェイルオーバーレプリケーションスロットを直ちに削除してください。" -#: pg_createsubscriber.c:1179 +#: pg_createsubscriber.c:1347 #, c-format msgid "could not drop failover replication slot" msgstr "フェイルオーバーレプリケーションスロットを削除できませんでした" -#: pg_createsubscriber.c:1201 +#: pg_createsubscriber.c:1369 #, c-format -msgid "creating the replication slot \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でレプリケーションスロット\"%1$s:を作成します" +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"でレプリケーションスロット\"%1$s:を作成します" -#: pg_createsubscriber.c:1219 +#: pg_createsubscriber.c:1388 #, c-format -msgid "could not create replication slot \"%s\" on database \"%s\": %s" -msgstr "データベース\"%2$s\"上でレプリケーションスロット\"%1$s\"を作成できませんでした: %3$s" +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "データベース\"%2$s\"でレプリケーションスロット\"%1$s\"を作成できませんでした: %3$s" -#: pg_createsubscriber.c:1249 +#: pg_createsubscriber.c:1418 #, c-format -msgid "dropping the replication slot \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でレプリケーションスロット\"%1$s:を削除します" +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"のレプリケーションスロット\"%1$s:を削除します" -#: pg_createsubscriber.c:1265 +#: pg_createsubscriber.c:1434 #, c-format -msgid "could not drop replication slot \"%s\" on database \"%s\": %s" -msgstr "データベース\"%2$s\"上でレプリケーションスロット\"%1$s\"を削除できませんでした: %3$s" +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "データベース\"%2$s\"のレプリケーションスロット\"%1$s\"を削除できませんでした: %3$s" -#: pg_createsubscriber.c:1286 +#: pg_createsubscriber.c:1455 #, c-format msgid "pg_ctl failed with exit code %d" msgstr "pg_ctlが終了コード%dで失敗しました" -#: pg_createsubscriber.c:1291 +#: pg_createsubscriber.c:1460 #, c-format msgid "pg_ctl was terminated by exception 0x%X" msgstr "pg_ctlが例外0x%Xによって終了させられました" -#: pg_createsubscriber.c:1293 +#: pg_createsubscriber.c:1462 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "16進値の説明についてはC インクルードファイル\"ntstatus.h\"を参照してください。" -#: pg_createsubscriber.c:1295 +#: pg_createsubscriber.c:1464 #, c-format msgid "pg_ctl was terminated by signal %d: %s" msgstr "pg_ctlがシグナル%dによって終了させられました %s" -#: pg_createsubscriber.c:1301 +#: pg_createsubscriber.c:1470 #, c-format msgid "pg_ctl exited with unrecognized status %d" msgstr "pg_ctlが認識できない状態%dで終了しました" -#: pg_createsubscriber.c:1304 +#: pg_createsubscriber.c:1473 #, c-format msgid "The failed command was: %s" msgstr "失敗したコマンドは以下のとおりです: %s" -#: pg_createsubscriber.c:1343 +#: pg_createsubscriber.c:1523 #, c-format msgid "server was started" msgstr "サーバー起動完了" -#: pg_createsubscriber.c:1358 +#: pg_createsubscriber.c:1538 #, c-format msgid "server was stopped" msgstr "サーバーは停止しました" -#: pg_createsubscriber.c:1377 +#: pg_createsubscriber.c:1557 #, c-format msgid "waiting for the target server to reach the consistent state" msgstr "対象サーバーが一貫性のある状態に到達するのを待っています" -#: pg_createsubscriber.c:1400 +#: pg_createsubscriber.c:1580 #, c-format msgid "recovery timed out" msgstr "リカバリーがタイムアウトしました" -#: pg_createsubscriber.c:1413 +#: pg_createsubscriber.c:1593 #, c-format msgid "server did not end recovery" msgstr "サーバーはリカバリを完了しませんでした" -#: pg_createsubscriber.c:1415 +#: pg_createsubscriber.c:1595 #, c-format msgid "target server reached the consistent state" msgstr "対象サーバーが一貫性のある状態に到達しました" -#: pg_createsubscriber.c:1416 +#: pg_createsubscriber.c:1596 #, c-format msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." msgstr "もしpg_createsubscriberが今時点より後で失敗した場合は、作業を継続する前に物理レプリカを再作成する必要があります。" -#: pg_createsubscriber.c:1443 +#: pg_createsubscriber.c:1623 pg_createsubscriber.c:1746 #, c-format msgid "could not obtain publication information: %s" msgstr "パブリケーション情報を取得できませんでした: %s" -#: pg_createsubscriber.c:1457 +#: pg_createsubscriber.c:1637 #, c-format msgid "publication \"%s\" already exists" msgstr "パブリケーション\"%s\"はすでに存在します" -#: pg_createsubscriber.c:1458 +#: pg_createsubscriber.c:1638 #, c-format msgid "Consider renaming this publication before continuing." msgstr "作業を継続する前にこのパブリケーションの名前を変更することを検討してください。" -#: pg_createsubscriber.c:1465 +#: pg_createsubscriber.c:1645 #, c-format -msgid "creating publication \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でパブリケーション\"%1$s\"を作成します" +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"でパブリケーション\"%1$s\"を作成します" -#: pg_createsubscriber.c:1478 +#: pg_createsubscriber.c:1658 #, c-format -msgid "could not create publication \"%s\" on database \"%s\": %s" -msgstr "データベース\"%2$s\"上でパブリケーション\"%1$s\"を作成できませんでした: %3$s" +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "データベース\"%2$s\"でパブリケーション\"%1$s\"を作成できませんでした: %3$s" -#: pg_createsubscriber.c:1507 +#: pg_createsubscriber.c:1688 #, c-format -msgid "dropping publication \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でパブリケーション\"%1$s\"を削除します" +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"のパブリケーション\"%1$s\"を削除します" -#: pg_createsubscriber.c:1521 +#: pg_createsubscriber.c:1702 #, c-format -msgid "could not drop publication \"%s\" on database \"%s\": %s" -msgstr "データベース\"%2$s\"上でパブリケーション\"%1$s\"が削除できませんでした: %3$s" +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "データベース\"%2$s\"のパブリケーション\"%1$s\"が削除できませんでした: %3$s" -#: pg_createsubscriber.c:1567 +#: pg_createsubscriber.c:1739 #, c-format -msgid "creating subscription \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でサブスクリプション\"%1$s\"を作成します" +msgid "dropping all existing publications in database \"%s\"" +msgstr "データベース\"%s\"のすべてのパブリケーションを削除します" -#: pg_createsubscriber.c:1588 +#: pg_createsubscriber.c:1797 #, c-format -msgid "could not create subscription \"%s\" on database \"%s\": %s" -msgstr "データベース\"%2$s\"上でサブスクリプション\"%1$s\"を作成できませんでした: %3$s" +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"でサブスクリプション\"%1$s\"を作成します" -#: pg_createsubscriber.c:1633 +#: pg_createsubscriber.c:1819 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "データベース\"%2$s\"でサブスクリプション\"%1$s\"を作成できませんでした: %3$s" + +#: pg_createsubscriber.c:1864 #, c-format msgid "could not obtain subscription OID: %s" msgstr "サブスクリプションOIDが取得できませんでした: %s" -#: pg_createsubscriber.c:1640 +#: pg_createsubscriber.c:1871 #, c-format msgid "could not obtain subscription OID: got %d rows, expected %d row" msgstr "サブスクリプションOIDが取得できませんでした: 受信したのは%d行、想定は%d行" -#: pg_createsubscriber.c:1664 +#: pg_createsubscriber.c:1895 #, c-format -msgid "setting the replication progress (node name \"%s\" ; LSN %s) on database \"%s\"" -msgstr "データベース\"%3$s\"上でレプリケーションの進捗を設定しています(ノード名\"%1$s\", LSN %2$s)" +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "データベース\"%3$s\"でのレプリケーションの進捗を設定しています(ノード名\"%1$s\", LSN %2$s)" -#: pg_createsubscriber.c:1679 +#: pg_createsubscriber.c:1910 #, c-format -msgid "could not set replication progress for the subscription \"%s\": %s" +msgid "could not set replication progress for subscription \"%s\": %s" msgstr "サブスクリプション\"%s\"にレプリケーション進捗を設定できませんでした: %s" -#: pg_createsubscriber.c:1710 +#: pg_createsubscriber.c:1941 #, c-format -msgid "enabling subscription \"%s\" on database \"%s\"" -msgstr "データベース\"%2$s\"上でサブスクリプション\"%1$s\"を有効にします" +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "データベース\"%2$s\"のサブスクリプション\"%1$s\"を有効にします" -#: pg_createsubscriber.c:1722 +#: pg_createsubscriber.c:1953 #, c-format msgid "could not enable subscription \"%s\": %s" msgstr "サブスクリプション\"%s\"を有効化できませんでした: %s" -#: pg_createsubscriber.c:1814 +#: pg_createsubscriber.c:1999 +#, c-format +msgid "could not obtain a list of databases: %s" +msgstr "データベースの一覧を取得できませんでした: %s" + +#: pg_createsubscriber.c:2103 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\"では実行できません" -#: pg_createsubscriber.c:1815 +#: pg_createsubscriber.c:2104 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "PostgreSQLのスーパーユーザーで%sを実行しなければなりません" -#: pg_createsubscriber.c:1836 +#: pg_createsubscriber.c:2127 #, c-format -msgid "duplicate database \"%s\"" -msgstr "データベース\"%s\"が重複しています" +msgid "database \"%s\" specified more than once for -d/--database" +msgstr "-d/--database に対してデータベース\"%s\"が複数回指定されました" -#: pg_createsubscriber.c:1877 +#: pg_createsubscriber.c:2146 #, c-format -msgid "duplicate publication \"%s\"" -msgstr "パブリケーション\"%s\"が重複しています" +msgid "object type \"%s\" is specified more than once for -R/--remove" +msgstr "-R/--remove に対してオブジェクト種別%s\"が複数回指定されました" -#: pg_createsubscriber.c:1889 +#: pg_createsubscriber.c:2174 #, c-format -msgid "duplicate replication slot \"%s\"" -msgstr "レプリケーションスロット\"%s\"が重複しています" +msgid "publication \"%s\" specified more than once for --publication" +msgstr "--publication に対してパブリケーション\"%s\"が複数回指定されました" -#: pg_createsubscriber.c:1901 +#: pg_createsubscriber.c:2183 #, c-format -msgid "duplicate subscription \"%s\"" -msgstr "サブスクリプション\"%s\"が重複しています" +msgid "replication slot \"%s\" specified more than once for --replication-slot" +msgstr "--replication-slot に対してレプリケーションスロット\"%s\"が複数回指定されました" -#: pg_createsubscriber.c:1924 +#: pg_createsubscriber.c:2192 +#, c-format +msgid "subscription \"%s\" specified more than once for --subscription" +msgstr "--subscription に対してブスクリプション\"%s\"が複数回指定されました" + +#: pg_createsubscriber.c:2217 +#, c-format +msgid "%s cannot be used with -a/--all" +msgstr "%s は -a/--all と同時には使えません" + +#: pg_createsubscriber.c:2235 #, c-format msgid "no subscriber data directory specified" msgstr "サブスクライバのデータディレクトリが指定されていません" -#: pg_createsubscriber.c:1935 +#: pg_createsubscriber.c:2246 #, c-format msgid "could not determine current directory" msgstr "カレントディレクトリを特定できませんでした" -#: pg_createsubscriber.c:1952 +#: pg_createsubscriber.c:2263 #, c-format msgid "no publisher connection string specified" msgstr "パブリッシャの接続文字列が指定されていません" -#: pg_createsubscriber.c:1956 +#: pg_createsubscriber.c:2267 #, c-format -msgid "validating connection string on publisher" -msgstr "パブリッシャ上の接続文字列を検証しています" +msgid "validating publisher connection string" +msgstr "パブリッシャの接続文字列の検証中" -#: pg_createsubscriber.c:1962 +#: pg_createsubscriber.c:2273 #, c-format -msgid "validating connection string on subscriber" -msgstr "サブスクライバ上の接続文字列を検証しています" +msgid "validating subscriber connection string" +msgstr "サブスクライバの接続文字列の検証中" -#: pg_createsubscriber.c:1967 +#: pg_createsubscriber.c:2290 #, c-format msgid "no database was specified" msgstr "データベースが指定されていません" -#: pg_createsubscriber.c:1979 +#: pg_createsubscriber.c:2301 #, c-format -msgid "database \"%s\" was extracted from the publisher connection string" -msgstr "データベース\"%s\"がパブリッシャの接続文字列から抽出されました" +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "データベース名\"%s\"がパブリッシャの接続文字列から抽出されました" -#: pg_createsubscriber.c:1984 +#: pg_createsubscriber.c:2306 #, c-format msgid "no database name specified" msgstr "データベース名が指定されていません" -#: pg_createsubscriber.c:1994 +#: pg_createsubscriber.c:2316 #, c-format -msgid "wrong number of publication names" -msgstr "パブリケーション名の数が間違っています" +msgid "wrong number of publication names specified" +msgstr "指定されたパブリケーション名の数が間違っています" -#: pg_createsubscriber.c:1995 +#: pg_createsubscriber.c:2317 #, c-format -msgid "Number of publication names (%d) must match number of database names (%d)." +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." msgstr "パブリケーション名の数(%d)はデータベース名の数(%d)と一致している必要があります。" -#: pg_createsubscriber.c:2001 +#: pg_createsubscriber.c:2323 #, c-format -msgid "wrong number of subscription names" -msgstr "サブスクリプション名の数が間違っています" +msgid "wrong number of subscription names specified" +msgstr "指定されたサブスクリプション名の数が間違っています" -#: pg_createsubscriber.c:2002 +#: pg_createsubscriber.c:2324 #, c-format -msgid "Number of subscription names (%d) must match number of database names (%d)." +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." msgstr "サブスクリプション名の数(%d)はデータベース名の数(%d)と一致している必要があります。" -#: pg_createsubscriber.c:2008 +#: pg_createsubscriber.c:2330 #, c-format -msgid "wrong number of replication slot names" -msgstr "レプリケーションスロット名の数が間違っています" +msgid "wrong number of replication slot names specified" +msgstr "指定されたレプリケーションスロット名の数が間違っています" -#: pg_createsubscriber.c:2009 +#: pg_createsubscriber.c:2331 #, c-format -msgid "Number of replication slot names (%d) must match number of database names (%d)." +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." msgstr "レプリケーションスロット名の数(%d)はデータベース名の数(%d)と一致している必要があります。" -#: pg_createsubscriber.c:2038 +#: pg_createsubscriber.c:2343 +#, c-format +msgid "invalid object type \"%s\" specified for -R/--remove" +msgstr "-R/--remove に対して指定された不正なオブジェクト種別\"%s\"" + +#: pg_createsubscriber.c:2344 +#, c-format +msgid "The valid option is: \"publications\"" +msgstr "有効なオプション: \"publications\"" + +#: pg_createsubscriber.c:2375 #, c-format msgid "subscriber data directory is not a copy of the source database cluster" msgstr "サブスクライバのデータディレクトリは元データベースクラスタのコピーではありません" -#: pg_createsubscriber.c:2051 +#: pg_createsubscriber.c:2388 #, c-format -msgid "standby is up and running" -msgstr "スタンバイは起動して実行中です" +msgid "standby server is running" +msgstr "スタンバイサーバーが稼働中です" -#: pg_createsubscriber.c:2052 +#: pg_createsubscriber.c:2389 #, c-format -msgid "Stop the standby and try again." -msgstr "このスタンバイを停止して再試行してください。" +msgid "Stop the standby server and try again." +msgstr "このスタンバイサーバーを停止してから再試行してください。" -#: pg_createsubscriber.c:2061 +#: pg_createsubscriber.c:2398 #, c-format -msgid "starting the standby with command-line options" -msgstr "コマンドラインオプションを指定してスタンバイを起動しています" +msgid "starting the standby server with command-line options" +msgstr "コマンドラインオプションを指定してスタンバイサーバーを起動しています" -#: pg_createsubscriber.c:2077 pg_createsubscriber.c:2116 +#: pg_createsubscriber.c:2414 pg_createsubscriber.c:2449 #, c-format msgid "stopping the subscriber" msgstr "サブスクライバを起動しています" -#: pg_createsubscriber.c:2095 +#: pg_createsubscriber.c:2428 #, c-format msgid "starting the subscriber" msgstr "サブスクライバを起動しています" -#: pg_createsubscriber.c:2124 +#: pg_createsubscriber.c:2457 #, c-format msgid "Done!" msgstr "完了!" @@ -1935,17 +2030,17 @@ msgstr "" msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=DIR 受信した先行書き込みログの格納ディレクトリ\n" -#: pg_receivewal.c:83 pg_recvlogical.c:93 +#: pg_receivewal.c:83 pg_recvlogical.c:92 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN 指定したLSNの受信後に終了\n" -#: pg_receivewal.c:84 pg_recvlogical.c:97 +#: pg_receivewal.c:84 pg_recvlogical.c:98 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr "   --if-not-exists スロットの作成時に既に存在していてもエラーとしない\n" -#: pg_receivewal.c:85 pg_recvlogical.c:99 +#: pg_receivewal.c:85 pg_recvlogical.c:100 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop 接続断の際にループしない\n" @@ -1955,7 +2050,7 @@ msgstr " -n, --no-loop 接続断の際にループしない\n" msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync ディスクへの安全な書き込みの待機を行わない\n" -#: pg_receivewal.c:87 pg_recvlogical.c:104 +#: pg_receivewal.c:87 pg_recvlogical.c:105 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -1988,14 +2083,14 @@ msgstr "" "\n" "追加の動作:\n" -#: pg_receivewal.c:104 pg_recvlogical.c:89 +#: pg_receivewal.c:104 pg_recvlogical.c:88 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr "" " --create-slot 新しいレプリケーションスロットを作成する\n" " (スロット名については --slot を参照)\n" -#: pg_receivewal.c:105 pg_recvlogical.c:90 +#: pg_receivewal.c:105 pg_recvlogical.c:89 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr "" @@ -2017,7 +2112,7 @@ msgstr "%X/%X (タイムライン %u)でログのストリーミングを停止 msgid "switched to timeline %u at %X/%X" msgstr "%3$X/%2$Xで タイムライン%1$uに切り替えました" -#: pg_receivewal.c:224 pg_recvlogical.c:1053 +#: pg_receivewal.c:224 pg_recvlogical.c:1073 #, c-format msgid "received interrupt signal, exiting" msgstr "割り込みシグナルを受信、終了します" @@ -2087,7 +2182,7 @@ msgstr "ファイル\"%s\"の確認ができません: %sによる圧縮はこ msgid "starting log streaming at %X/%X (timeline %u)" msgstr "%X/%X (タイムライン %u)からログのストリーミングを開始" -#: pg_receivewal.c:693 pg_recvlogical.c:801 +#: pg_receivewal.c:693 pg_recvlogical.c:807 #, c-format msgid "could not parse end position \"%s\"" msgstr "終了位置\"%s\"をパースできませんでした" @@ -2117,28 +2212,28 @@ msgstr "%sによる圧縮`まだサポートされていません" msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "スロット\"%s\"を使用するレプリケーション接続で、想定に反してデータベースが指定されています" -#: pg_receivewal.c:878 pg_recvlogical.c:972 +#: pg_receivewal.c:878 pg_recvlogical.c:991 #, c-format msgid "dropping replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"を削除しています" -#: pg_receivewal.c:889 pg_recvlogical.c:982 +#: pg_receivewal.c:889 pg_recvlogical.c:1001 #, c-format msgid "creating replication slot \"%s\"" msgstr "レプリケーションスロット\"%s\"を作成しています" -#: pg_receivewal.c:918 pg_recvlogical.c:1006 +#: pg_receivewal.c:918 pg_recvlogical.c:1026 #, c-format msgid "disconnected" msgstr "切断しました" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:1010 +#: pg_receivewal.c:922 pg_recvlogical.c:1030 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "切断しました; %d秒待機して再試行します" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:83 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -2147,7 +2242,7 @@ msgstr "" "%s はPostgreSQLの論理デコードストリームを制御します。\n" "\n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:87 #, c-format msgid "" "\n" @@ -2156,19 +2251,28 @@ msgstr "" "\n" "実行する動作:\n" -#: pg_recvlogical.c:91 +#: pg_recvlogical.c:90 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr "" " --start レプリケーションスロットでストリーミングを開始する\n" " (スロット名については --slot を参照)\n" -#: pg_recvlogical.c:94 +#: pg_recvlogical.c:93 +#, c-format +msgid "" +" --failover enable replication slot synchronization to standby servers when\n" +" creating a slot\n" +msgstr "" +" --failover スロット作成時にスタンバイサーバーへのスロット同期を\n" +" 有効にする\n" + +#: pg_recvlogical.c:95 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=FILE このファイルにログを受け取る、 - で標準出力\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:96 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -2177,12 +2281,12 @@ msgstr "" " -F --fsync-interval=SECS\n" " 出力ファイルへのfsync時間間隔(デフォルト: %d)\n" -#: pg_recvlogical.c:98 +#: pg_recvlogical.c:99 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN 既存スロット内のストリーミング開始位置\n" -#: pg_recvlogical.c:100 +#: pg_recvlogical.c:101 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -2193,279 +2297,284 @@ msgstr "" " 出力プラグインにオプションNAMEをオプション値VALUEと\n" " ともに渡す\n" -#: pg_recvlogical.c:103 +#: pg_recvlogical.c:104 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN 出力プラグインPLUGINを使う(デフォルト: %s)\n" -#: pg_recvlogical.c:106 +#: pg_recvlogical.c:107 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOTNAME 論理レプリケーションスロットの名前\n" -#: pg_recvlogical.c:107 +#: pg_recvlogical.c:108 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr " -t, --two-phase スロット作成時にプリペアドトランザクションのデコードを有効にする\n" -#: pg_recvlogical.c:112 +#: pg_recvlogical.c:113 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=DBNAME 接続先データベース\n" -#: pg_recvlogical.c:145 +#: pg_recvlogical.c:146 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "PrecPpg%X/%Xまでの書き込みと、%X/%X (スロット %s)までのフラッシュを確認しています" -#: pg_recvlogical.c:169 receivelog.c:360 +#: pg_recvlogical.c:170 receivelog.c:359 #, c-format msgid "could not send feedback packet: %s" msgstr "フィードバックパケットを送信できませんでした: %s" -#: pg_recvlogical.c:239 +#: pg_recvlogical.c:240 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "%X/%X (スロット %s)からログのストリーミングを開始します" -#: pg_recvlogical.c:281 +#: pg_recvlogical.c:282 #, c-format msgid "streaming initiated" msgstr "ストリーミングを開始しました" -#: pg_recvlogical.c:346 +#: pg_recvlogical.c:347 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ロックファイル\"%s\"をオープンできませんでした: %m" -#: pg_recvlogical.c:375 receivelog.c:882 +#: pg_recvlogical.c:376 receivelog.c:889 #, c-format msgid "invalid socket: %s" msgstr "無効なソケット: %s" -#: pg_recvlogical.c:428 receivelog.c:910 +#: pg_recvlogical.c:429 receivelog.c:917 #, c-format msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: pg_recvlogical.c:435 receivelog.c:959 +#: pg_recvlogical.c:436 receivelog.c:966 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "WAL ストリームからデータを受信できませんでした: %s" -#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 -#: receivelog.c:1066 +#: pg_recvlogical.c:478 pg_recvlogical.c:529 receivelog.c:1010 +#: receivelog.c:1073 #, c-format msgid "streaming header too small: %d" msgstr "ストリーミングヘッダが小さ過ぎます: %d" -#: pg_recvlogical.c:512 receivelog.c:843 +#: pg_recvlogical.c:513 receivelog.c:846 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "ストリーミングヘッダを認識できませんでした: \"%c\"" -#: pg_recvlogical.c:566 pg_recvlogical.c:578 +#: pg_recvlogical.c:567 pg_recvlogical.c:579 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "%dバイトをログファイル\"%s\"に書き込めませんでした: %m" -#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:637 receivelog.c:641 receivelog.c:678 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "レプリケーションストリームが突然終了しました: %s" -#: pg_recvlogical.c:796 +#: pg_recvlogical.c:802 #, c-format msgid "could not parse start position \"%s\"" msgstr "開始位置\"%s\"をパースできませんでした" -#: pg_recvlogical.c:874 +#: pg_recvlogical.c:880 #, c-format msgid "no slot specified" msgstr "スロットが指定されていません" -#: pg_recvlogical.c:881 +#: pg_recvlogical.c:887 #, c-format msgid "no target file specified" msgstr "ターゲットファイルが指定されていません" -#: pg_recvlogical.c:888 +#: pg_recvlogical.c:894 #, c-format msgid "no database specified" msgstr "データベースが指定されていません" -#: pg_recvlogical.c:895 +#: pg_recvlogical.c:901 #, c-format msgid "at least one action needs to be specified" msgstr "少なくとも一つのアクションを指定する必要があります" -#: pg_recvlogical.c:902 +#: pg_recvlogical.c:908 #, 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:915 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "--create-slot や --drop-slot は --startpos と同時には指定できません" -#: pg_recvlogical.c:916 +#: pg_recvlogical.c:922 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos は --start が指定されているときにのみ指定可能です" -#: pg_recvlogical.c:923 +#: pg_recvlogical.c:931 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phaseは--create-slotが指定されているときにのみ指定可能です" -#: pg_recvlogical.c:956 +#: pg_recvlogical.c:938 +#, c-format +msgid "--failover may only be specified with --create-slot" +msgstr "--failover は --create-slot が指定されているときにのみ指定可能です" + +#: pg_recvlogical.c:975 #, c-format msgid "could not establish database-specific replication connection" msgstr "データベース指定のレプリケーション接続が確立できませんでした" -#: pg_recvlogical.c:1056 +#: pg_recvlogical.c:1076 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "キープアライブで終了位置 %X/%X に到達しました " -#: pg_recvlogical.c:1061 +#: pg_recvlogical.c:1081 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "%X/%X のWALレコードで終了位置 %X/%X に到達しました" -#: receivelog.c:66 +#: receivelog.c:65 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "アーカイブステータスファイル\"%s\"を作成できませんでした: %s" -#: receivelog.c:73 +#: receivelog.c:72 #, c-format msgid "could not close archive status file \"%s\": %s" msgstr "アーカイブステータスファイル\"%s\"をクローズできませんでした: %s" -#: receivelog.c:122 +#: receivelog.c:121 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "先行書き込みログファイル\"%s\"のサイズを取得できませんでした: %s" -#: receivelog.c:133 +#: receivelog.c:132 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "既存の先行書き込みログファイル\"%s\"をオープンできませんでした: %s" -#: receivelog.c:142 +#: receivelog.c:141 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "既存の先行書き込みログファイル\"%s\"をfsyncできませんでした: %s" -#: receivelog.c:157 +#: receivelog.c:156 #, c-format msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" msgstr[0] "先行書き込みログファイル\"%s\"は%zdバイトですが、0または%dであるはずです" -#: receivelog.c:175 +#: receivelog.c:174 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "先行書き込みログファイル\"%s\"をオープンできませんでした: %s" -#: receivelog.c:216 +#: receivelog.c:215 #, c-format msgid "not renaming \"%s\", segment is not complete" msgstr "\"%s\"の名前を変更しません、セグメントが完成していません" -#: receivelog.c:227 receivelog.c:317 receivelog.c:688 +#: receivelog.c:226 receivelog.c:316 receivelog.c:687 #, c-format msgid "could not close file \"%s\": %s" msgstr "ファイル\"%s\"をクローズできませんでした: %s" -#: receivelog.c:288 +#: receivelog.c:287 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "サーバーがタイムライン%uに対する想定外の履歴ファイル名を通知してきました: %s" -#: receivelog.c:297 +#: receivelog.c:296 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "タイムライン履歴ファイル\"%s\"を作成できませんでした: %s" -#: receivelog.c:304 +#: receivelog.c:303 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "タイムライン履歴ファイル\"%s\"に書き込めませんでした: %s" -#: receivelog.c:394 +#: receivelog.c:393 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "非互換のサーバーバージョン%s、クライアントは%sより古いサーバーバージョンからのストリーミングをサポートしていません" -#: receivelog.c:403 +#: receivelog.c:402 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "非互換のサーバーバージョン%s、クライアントは%sより新しいサーバーバージョンからのストリーミングをサポートしていません" -#: receivelog.c:508 +#: receivelog.c:507 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "システム識別子がベースバックアップとストリーミング接続の間で一致しません" -#: receivelog.c:516 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "開始タイムライン%uがサーバーに存在しません" -#: receivelog.c:555 +#: receivelog.c:554 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "TIMELINE_HISTORYコマンドへの想定外の応答: 受信したのは%d行%d列、想定は%d行%d列" -#: receivelog.c:626 +#: receivelog.c:625 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "サーバーがタイムライン%2$uに続いて想定外のタイムライン%1$uを通知してきました" -#: receivelog.c:632 +#: receivelog.c:631 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "サーバーはタイムライン%uのストリーミングを%X/%Xで停止しました、しかし次のタイムライン%uが%X/%Xから開始すると通知してきています" -#: receivelog.c:672 +#: receivelog.c:671 #, c-format msgid "replication stream was terminated before stop point" msgstr "レプリケーションストリームが停止ポイントより前で終了しました" -#: receivelog.c:718 +#: receivelog.c:717 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "タイムライン終了後に想定外の結果セット: 受信したのは%d行%d列、想定は%d行%d列" -#: receivelog.c:727 +#: receivelog.c:726 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "次のタイムラインの開始ポイント\"%s\"をパースできませんでした" -#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 +#: receivelog.c:774 receivelog.c:1029 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "ファイル\"%s\"をfsyncできませんでした: %s" -#: receivelog.c:1083 +#: receivelog.c:1090 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "ファイルがオープンされていない状態で、オフセット%uに対する先行書き込みログレコードを受信しました" -#: receivelog.c:1093 +#: receivelog.c:1100 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "WALデータオフセット%08xを受信、想定は%08x" -#: receivelog.c:1128 +#: receivelog.c:1135 #, c-format msgid "could not write %d bytes to WAL file \"%s\": %s" msgstr "WALファイル\"%2$s\"に%1$dバイト書き込めませんでした: %3$s" -#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 +#: receivelog.c:1160 receivelog.c:1200 receivelog.c:1228 #, c-format msgid "could not send copy-end packet: %s" msgstr "コピー終端パケットを送信できませんでした: %s" @@ -2479,11 +2588,6 @@ msgstr "パスワード: " msgid "could not connect to server" msgstr "サーバーに接続できませんでした" -#: streamutil.c:230 -#, c-format -msgid "could not clear \"search_path\": %s" -msgstr "\"search_path\"を消去できませんでした: %s" - #: streamutil.c:246 #, c-format msgid "could not determine server setting for \"integer_datetimes\"" @@ -2494,68 +2598,68 @@ msgstr "\"integer_datetimes\"のサーバー設定を取得できませんでし msgid "\"integer_datetimes\" compile flag does not match server" msgstr "コンパイル時フラグ\"integer_datetimes\"がサーバーと異なっています" -#: streamutil.c:372 +#: 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 "WALセグメントサイズを取得できませんでした: 受信したのは%d行で%d列、想定は%d行で%d列以上" -#: streamutil.c:382 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "WALセグメントサイズがパースできませんでした" -#: streamutil.c:400 +#: streamutil.c:332 #, c-format msgid "remote server reported invalid WAL segment size (%d byte)" msgid_plural "remote server reported invalid WAL segment size (%d bytes)" msgstr[0] "リモートサーバーが不正なWALセグメントサイズを報告してきました (%dバイト)" -#: streamutil.c:404 +#: streamutil.c:336 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WALセグメントサイズは1MBから1GBまでの間の2の累乗でなければなりません。" -#: streamutil.c:446 +#: streamutil.c:378 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "グループアクセスフラグを取得できませんでした: 受信したのは%d行で%d列、想定は%d行で%d列以上" -#: streamutil.c:455 +#: streamutil.c:387 #, c-format msgid "group access flag could not be parsed: %s" msgstr "グループアクセスフラグがパースできませんでした: %s" -#: streamutil.c:498 streamutil.c:535 +#: streamutil.c:430 streamutil.c:467 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "システムを識別できませんでした: 受信したのは%d行%d列、想定は%d行%d列以上" -#: streamutil.c:587 +#: streamutil.c:519 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "レプリケーションスロット\"%s\"を読み取れませんでした: 受信したのは%d行%d列、想定は%d行%d列" -#: streamutil.c:599 +#: streamutil.c:531 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "レプリケーションスロット\"%s\"は存在しません" -#: streamutil.c:610 +#: streamutil.c:542 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "物理レプリケーションスロットが必要ですが、タイプは\"%s\"でした" -#: streamutil.c:624 +#: streamutil.c:556 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "レプリケーションスロット\"%2$s\"のrestart_lsn\"%1$s\"をパースできませんでした" -#: streamutil.c:741 +#: streamutil.c:678 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "レプリケーションスロット\"%s\"を作成できませんでした: 受信したのは%d行%d列、想定は%d行%d列" -#: streamutil.c:785 +#: streamutil.c:722 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "レプリケーションスロット\"%s\"を削除できませんでした: 受信したのは%d行%d列、想定は%d行%d列" diff --git a/src/bin/pg_basebackup/po/ka.po b/src/bin/pg_basebackup/po/ka.po index 559531710eeeb..b42019dcab678 100644 --- a/src/bin/pg_basebackup/po/ka.po +++ b/src/bin/pg_basebackup/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_basebackup (PostgreSQL) 17\n" +"Project-Id-Version: pg_basebackup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-18 04:20+0000\n" -"PO-Revision-Date: 2024-06-18 06:28+0200\n" +"POT-Creation-Date: 2025-04-05 02:20+0000\n" +"PO-Revision-Date: 2025-04-05 05:14+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,32 +16,33 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " #: ../../common/compression.c:132 ../../common/compression.c:141 -#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 -#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 -#: bbstreamer_zstd.c:284 +#: ../../common/compression.c:150 ../../fe_utils/astreamer_gzip.c:140 +#: ../../fe_utils/astreamer_gzip.c:273 ../../fe_utils/astreamer_lz4.c:102 +#: ../../fe_utils/astreamer_lz4.c:300 ../../fe_utils/astreamer_zstd.c:133 +#: ../../fe_utils/astreamer_zstd.c:288 #, c-format msgid "this build does not support compression with %s" msgstr "ამ აგებაში %s-ით შეკუმშვის მხარდაჭრა არ არსებობს" @@ -78,7 +79,7 @@ msgstr "შეკუმშვის ალგორითმს \"%s\" შეკ #: ../../common/compression.c:386 #, c-format msgid "compression algorithm \"%s\" expects a compression level between %d and %d (default at %d)" -msgstr "შეკუმშვის ალგორითმის \"%s\" შეკუმშვის დონე %d-სა და %d-ს შორის უნდა იყოს (ნაგულისხმები %d)" +msgstr "შეკუმშვის ალგორითმის \"%s\" შეკუმშვის დონე %d-სა და %d-ს შორის უნდა იყოს (ნაგულისხმევი %d)" #: ../../common/compression.c:397 #, c-format @@ -95,7 +96,7 @@ msgstr "შეკუმშვის ალგორითმს \"%s\" long-dist msgid "could not open file \"%s\" for reading: %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1874 #: pg_receivewal.c:402 #, c-format msgid "could not read file \"%s\": %m" @@ -107,7 +108,7 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#: ../../fe_utils/astreamer_file.c:141 pg_recvlogical.c:652 #, c-format msgid "could not close file \"%s\": %m" msgstr "ფაილის (%s) დახურვის შეცდომა: %m" @@ -128,10 +129,10 @@ msgstr "" "ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" "მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: pg_basebackup.c:1846 pg_receivewal.c:386 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: pg_basebackup.c:1847 pg_receivewal.c:386 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" @@ -141,8 +142,8 @@ msgstr "ფაილის (%s) გახსნის შეცდომა: %m" msgid "could not write file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 pg_recvlogical.c:205 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" @@ -158,36 +159,36 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: pg_receivewal.c:319 pg_recvlogical.c:352 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: pg_receivewal.c:319 pg_recvlogical.c:353 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 +#: ../../common/file_utils.c:520 pg_basebackup.c:2345 walmethods.c:462 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -222,191 +223,200 @@ msgstr "შეზღუდულ კოდის ხელახლა შეს msgid "could not get exit code from subprocess: error code %lu" msgstr "ქვეპროცესიდან გასასვლელი კოდი ვერ მივიღე: შეცდომის კოდი %lu" -#: ../../fe_utils/option_utils.c:69 -#, c-format -msgid "invalid value \"%s\" for option %s" -msgstr "არასწორი მნიშვნელობა \"%s\" პარამეტრისთვის %s" - -#: ../../fe_utils/option_utils.c:76 -#, c-format -msgid "%s must be in range %d..%d" -msgstr "%s არაა საზღვრებში %d-დან %d-მდე" - -#: ../../fe_utils/option_utils.c:106 -#, c-format -msgid "unrecognized sync method: %s" -msgstr "უცნობი სინქრონიზაციის მეთოდი: %s" - -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 -#, c-format -msgid "out of memory" -msgstr "არასაკმარისი მეხსიერება" - -#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 -#, c-format -msgid "could not write to file \"%s\": %m" -msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" - -#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 -#: pg_basebackup.c:1497 pg_basebackup.c:1706 +#: ../../fe_utils/astreamer_file.c:96 ../../fe_utils/astreamer_file.c:364 +#: ../../fe_utils/recovery_gen.c:153 pg_basebackup.c:1498 pg_basebackup.c:1707 #, c-format msgid "could not create file \"%s\": %m" msgstr "ფაილის (%s) შექმნის შეცდომა: %m" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/astreamer_file.c:124 ../../fe_utils/astreamer_file.c:261 +#: ../../fe_utils/recovery_gen.c:144 pg_basebackup.c:1434 pg_basebackup.c:1728 #, c-format -msgid "shell command argument contains a newline or carriage return: \"%s\"\n" -msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" - -#: ../../fe_utils/string_utils.c:607 -#, c-format -msgid "database name contains a newline or carriage return: \"%s\"\n" -msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" +msgid "could not write to file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: bbstreamer_file.c:275 +#: ../../fe_utils/astreamer_file.c:278 #, c-format msgid "unexpected state while extracting archive" msgstr "არქივის გაშლის მოულოდნელი მდგომარეობა" -#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 -#: pg_basebackup.c:757 +#: ../../fe_utils/astreamer_file.c:324 pg_basebackup.c:699 pg_basebackup.c:713 +#: pg_basebackup.c:758 #, c-format msgid "could not create directory \"%s\": %m" msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" -#: bbstreamer_file.c:326 +#: ../../fe_utils/astreamer_file.c:329 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "საქაღალდეზე \"%s\" წვდომების დაყენების შეცდომა: %m" -#: bbstreamer_file.c:345 +#: ../../fe_utils/astreamer_file.c:348 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "%s-დან %s-მდე სიმბმულის შექმნა შეუძლებელია: %m" -#: bbstreamer_file.c:365 +#: ../../fe_utils/astreamer_file.c:368 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "ფაილზე \"%s\" წვდომების დაყენების შეცდომა: %m" -#: bbstreamer_gzip.c:95 +#: ../../fe_utils/astreamer_gzip.c:115 #, c-format msgid "could not create compressed file \"%s\": %m" msgstr "ვერ შექმნა შეკუმშული ფაილი \"%s\": %m" -#: bbstreamer_gzip.c:103 +#: ../../fe_utils/astreamer_gzip.c:127 #, c-format msgid "could not duplicate stdout: %m" msgstr "stdout-ის დუბლირების შეცდომა: %m" -#: bbstreamer_gzip.c:107 +#: ../../fe_utils/astreamer_gzip.c:131 #, c-format msgid "could not open output file: %m" msgstr "გამოტანის ფაილის გახსნის შეცდომა: %m" -#: bbstreamer_gzip.c:111 +#: ../../fe_utils/astreamer_gzip.c:135 #, c-format msgid "could not set compression level %d: %s" msgstr "შეკუმშვის დონის დაყენების შეცდომა %d: %s" -#: bbstreamer_gzip.c:143 +#: ../../fe_utils/astreamer_gzip.c:167 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "შეკუმშული ფაილში (\"%s\") ჩაწერის შეცდომა: %s" -#: bbstreamer_gzip.c:167 +#: ../../fe_utils/astreamer_gzip.c:191 #, c-format msgid "could not close compressed file \"%s\": %m" msgstr "შეკუმშული ფაილის (\"%s\") დახურვის შეცდომა: %m" -#: bbstreamer_gzip.c:245 walmethods.c:880 +#: ../../fe_utils/astreamer_gzip.c:269 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზაციის შეცდომა" -#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 +#: ../../fe_utils/astreamer_gzip.c:320 ../../fe_utils/astreamer_lz4.c:356 +#: ../../fe_utils/astreamer_zstd.c:333 #, c-format msgid "could not decompress data: %s" msgstr "მონაცემების გაშლის შეცდომა: %s" -#: bbstreamer_inject.c:189 -#, c-format -msgid "unexpected state while injecting recovery settings" -msgstr "უცნობი მდგომარეობა აღდგენის ინფორმაციის ჩასმისას" - -#: bbstreamer_lz4.c:95 +#: ../../fe_utils/astreamer_lz4.c:97 #, c-format msgid "could not create lz4 compression context: %s" msgstr "lz4 შეკუმშვის კონტექსტის შექმნის შეცდომა: %s" -#: bbstreamer_lz4.c:140 +#: ../../fe_utils/astreamer_lz4.c:142 #, c-format msgid "could not write lz4 header: %s" msgstr "lz4 თავსართის ჩაწერის შეცდოა: %s" -#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 +#: ../../fe_utils/astreamer_lz4.c:191 ../../fe_utils/astreamer_zstd.c:185 +#: ../../fe_utils/astreamer_zstd.c:227 #, c-format msgid "could not compress data: %s" msgstr "მონაცემების შეკუმშვა შეუძლებელია: %s" -#: bbstreamer_lz4.c:241 +#: ../../fe_utils/astreamer_lz4.c:243 #, c-format msgid "could not end lz4 compression: %s" msgstr "lz4 შეკუმშვის დასრულების შეცდომა: %s" -#: bbstreamer_lz4.c:293 +#: ../../fe_utils/astreamer_lz4.c:295 #, c-format msgid "could not initialize compression library: %s" msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზება ვერ მოხერხდა: %s" -#: bbstreamer_tar.c:244 +#: ../../fe_utils/astreamer_tar.c:244 #, c-format msgid "tar file trailer exceeds 2 blocks" msgstr "tar ფაილის ბოლოსართი 2 ბლოკს სცდება" -#: bbstreamer_tar.c:249 +#: ../../fe_utils/astreamer_tar.c:249 #, c-format msgid "unexpected state while parsing tar archive" msgstr "მოულოდნელი მდგომარეობა tar არქივის დამუშავებისას" -#: bbstreamer_tar.c:292 +#: ../../fe_utils/astreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "tar-ის წევრს ცარიელი სახელი აქვს" -#: bbstreamer_tar.c:326 +#: ../../fe_utils/astreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "COPY-ის ნაკადი ბოლო ფაილის დასრულებამდე დასრულდა" -#: bbstreamer_zstd.c:85 +#: ../../fe_utils/astreamer_zstd.c:89 #, c-format msgid "could not create zstd compression context" msgstr "zstd შეკუმშვის კონტექსტის შექმნის შეცდომა" -#: bbstreamer_zstd.c:91 +#: ../../fe_utils/astreamer_zstd.c:95 #, c-format msgid "could not set zstd compression level to %d: %s" msgstr "zstd შეკუმშვის დონის %d-ზე დაყენების შეცდომა: %s" -#: bbstreamer_zstd.c:105 +#: ../../fe_utils/astreamer_zstd.c:109 #, c-format msgid "could not set compression worker count to %d: %s" msgstr "შეკუმშვის დამხმარე პროცესების რიცხვის %d-ზე დაყენების შეცდომა: %s" -#: bbstreamer_zstd.c:116 +#: ../../fe_utils/astreamer_zstd.c:120 #, c-format msgid "could not enable long-distance mode: %s" msgstr "long-distance რეჟიმი ვერ ჩავრთე: %s" -#: bbstreamer_zstd.c:275 +#: ../../fe_utils/astreamer_zstd.c:279 #, c-format msgid "could not create zstd decompression context" msgstr "zstd გაშლის კონტექსტის შექმნის შეცდომა" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "არასწორი მნიშვნელობა \"%s\" პარამეტრისთვის %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s არაა საზღვრებში %d-დან %d-მდე" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "უცნობი სინქრონიზაციის მეთოდი: %s" + +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 +#: pg_basebackup.c:1637 +#, c-format +msgid "out of memory" +msgstr "არასაკმარისი მეხსიერება" + +#: ../../fe_utils/recovery_gen.c:215 pg_basebackup.c:2249 streamutil.c:89 +#: streamutil.c:204 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" + +#: astreamer_inject.c:189 +#, c-format +msgid "unexpected state while injecting recovery settings" +msgstr "უცნობი მდგომარეობა აღდგენის ინფორმაციის ჩასმისას" + #: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" @@ -496,14 +506,14 @@ msgstr "" "%s გაშვებული PostgreSQL სერვერის მარქაფს იღებს.\n" "\n" -#: pg_basebackup.c:394 pg_createsubscriber.c:216 pg_receivewal.c:79 -#: pg_recvlogical.c:86 +#: pg_basebackup.c:394 pg_createsubscriber.c:246 pg_receivewal.c:79 +#: pg_recvlogical.c:85 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_basebackup.c:395 pg_createsubscriber.c:217 pg_receivewal.c:80 -#: pg_recvlogical.c:87 +#: pg_basebackup.c:395 pg_createsubscriber.c:247 pg_receivewal.c:80 +#: pg_recvlogical.c:86 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [პარამეტრი]...\n" @@ -525,7 +535,7 @@ msgstr " -D, --pgdata=საქაღლდე იღებს ბაზის #: pg_basebackup.c:398 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" -msgstr " -F, --format=p|t გამოტანის ფორმატი (plain (ნაგულისხმები), tar)\n" +msgstr " -F, --format=p|t გამოტანის ფორმატი (plain (ნაგულისხმევი), tar)\n" #: pg_basebackup.c:399 #, c-format @@ -653,12 +663,12 @@ msgstr " -P, --progress მიმდინარეობი msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=SLOTNAME გამოსაყენებელი სლოტი\n" -#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:109 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:110 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" @@ -714,12 +724,12 @@ msgstr "" " --sync-method=მეთოდი\n" " ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:111 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:112 #, c-format msgid "" "\n" @@ -733,12 +743,12 @@ msgstr "" msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONNSTR კავშირის სტრიქონი\n" -#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:114 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME მონაცემთა ბაზის სერვერის ჰოსტის ან სოკეტის საქაღალდე\n" -#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:115 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT მონაცემთა ბაზის სერვერის პორტი\n" @@ -752,23 +762,23 @@ msgstr "" " -s, --status-interval=INTERVAL=INTERVAL\n" " სერვერზე გაგზავნილ სტატუსის პაკეტებს შორის დაყოვნება(წამებში)\n" -#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:116 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=მომხმარებელი ბაზის მომხმარებლის სახელი\n" -#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:117 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password არასოდეს მკითხო პაროლი\n" -#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:118 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password პაროლის ყოველთვის კითხვა (ავტომატურად უნდა ხდებოდეს)\n" -#: pg_basebackup.c:448 pg_createsubscriber.c:235 pg_receivewal.c:106 -#: pg_recvlogical.c:118 +#: pg_basebackup.c:448 pg_createsubscriber.c:270 pg_receivewal.c:106 +#: pg_recvlogical.c:119 #, c-format msgid "" "\n" @@ -777,8 +787,8 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_basebackup.c:449 pg_createsubscriber.c:236 pg_receivewal.c:107 -#: pg_recvlogical.c:119 +#: pg_basebackup.c:449 pg_createsubscriber.c:271 pg_receivewal.c:107 +#: pg_recvlogical.c:120 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" @@ -788,8 +798,8 @@ msgstr "%s-ის საწყისი გვერდია: <%s>\n" msgid "could not read from ready pipe: %m" msgstr "მზა ფაიფიდან წაკითხვის შეცდომა: %m" -#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 -#: streamutil.c:518 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2259 +#: streamutil.c:450 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "წინასწარ-ჩაწერადი ჟურნალის მდებარეობის დამუშავების შეცდომა: %s" @@ -804,512 +814,508 @@ msgstr "\"WAL\" ფაილების ჩაწერის დასრუ msgid "could not create pipe for background process: %m" msgstr "ფონური პროცესისთვის ფაიფის შექმნის შეცდომა: %m" -#: pg_basebackup.c:676 +#: pg_basebackup.c:677 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "შექმნილია რეპლიკაციის დროებითი სლოტი %s" -#: pg_basebackup.c:679 +#: pg_basebackup.c:680 #, c-format msgid "created replication slot \"%s\"" msgstr "შექმნილია რეპლიკაციის სლოტი %s" -#: pg_basebackup.c:728 +#: pg_basebackup.c:729 #, c-format msgid "could not create background process: %m" msgstr "ფონური პროცესის შექმნის შეცდომა: %m" -#: pg_basebackup.c:737 +#: pg_basebackup.c:738 #, c-format msgid "could not create background thread: %m" msgstr "ფონური ნაკადის შექმნის შეცდომა: %m" -#: pg_basebackup.c:776 +#: pg_basebackup.c:777 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "საქაღალდე \"%s\" არსებობს, მაგრამ ცარიელი არაა" -#: pg_basebackup.c:782 pg_createsubscriber.c:378 +#: pg_basebackup.c:783 pg_createsubscriber.c:420 #, c-format msgid "could not access directory \"%s\": %m" msgstr "საქაღალდის (%s) წვდომის შეცდომა: %m" -#: pg_basebackup.c:858 +#: pg_basebackup.c:859 #, 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 კბ (100%%), %d/%d ცხრილების სივრცე %*s" msgstr[1] "%*s/%s კბ (100%%), %d/%d ცხრილების სივრცე %*s" -#: pg_basebackup.c:870 +#: pg_basebackup.c:871 #, 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 კბ (%d%%), %d/%d ცხრილების სივრცე (%s%-*.*s)" msgstr[1] "%*s/%s კბ (%d%%), %d/%d ცხრილების სივრცე (%s%-*.*s)" -#: pg_basebackup.c:886 +#: pg_basebackup.c:887 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" msgstr[0] "%*s/%s კბ (%d%%), %d/%d ცხრილების სივრცე" msgstr[1] "%*s/%s კბ (%d%%), %d/%d ცხრილების სივრცე" -#: pg_basebackup.c:910 +#: pg_basebackup.c:911 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "გადაცემის სიჩქარის არასწორი მნიშვნელობა: %s" -#: pg_basebackup.c:912 +#: pg_basebackup.c:913 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "გადაცემის არასწორი სიჩქარე \"%s\": %m" -#: pg_basebackup.c:919 +#: pg_basebackup.c:920 #, c-format msgid "transfer rate must be greater than zero" msgstr "გადაცემის სიჩქარე ნულზე მეტი უნდა იყოს" -#: pg_basebackup.c:949 +#: pg_basebackup.c:950 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "--max-rate -ის არასწორი ერთეული: \"%s\"" -#: pg_basebackup.c:953 +#: pg_basebackup.c:954 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "გადაცემის სიჩქარე მთელი რიცხვის დიაპაზონს აღემატება: %s" -#: pg_basebackup.c:960 +#: pg_basebackup.c:961 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "გადაცემის სიჩქარის მნიშვნელობა დიაპაზონს გარეთაა: %s" -#: pg_basebackup.c:1022 +#: pg_basebackup.c:1023 #, c-format msgid "could not get COPY data stream: %s" msgstr "\"COPY\"-ის მონაცემების ნაკადის მიღების შეცდომა: %s" -#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 -#: receivelog.c:973 +#: pg_basebackup.c:1040 pg_recvlogical.c:450 pg_recvlogical.c:626 +#: receivelog.c:980 #, c-format msgid "could not read COPY data: %s" msgstr "\"COPY\"-ის მონაცემების წაკითხვის შეცდომა: %s" -#: pg_basebackup.c:1043 +#: pg_basebackup.c:1044 #, c-format msgid "background process terminated unexpectedly" msgstr "ფონური პროცესი მოულოდნელად დასრულდა" -#: pg_basebackup.c:1114 +#: pg_basebackup.c:1115 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "შეკუმშულ tar ფაილში მანიფესტის შეჩურთვა შეუძლებელია" -#: pg_basebackup.c:1115 +#: pg_basebackup.c:1116 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "გამოიყენეთ კლიენტის მხარეს შეკუმშვა და გააგზავნეთ გამონატანი საქაღალდეში stdout-ის მაგიერ, ან გამოიყენეთ %s." -#: pg_basebackup.c:1131 +#: pg_basebackup.c:1132 #, c-format msgid "cannot parse archive \"%s\"" msgstr "არქივის დამუშავების შეცდომა: %s" -#: pg_basebackup.c:1132 +#: pg_basebackup.c:1133 #, c-format msgid "Only tar archives can be parsed." msgstr "შესაძლებელია მხოლოდ tar არქივების დამუშავება." -#: pg_basebackup.c:1134 +#: pg_basebackup.c:1135 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Plain-ის ფორმატი არქივის დასამუშავებლად pg_basebackup-ს მოითხოვს." -#: pg_basebackup.c:1136 +#: pg_basebackup.c:1137 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "გამოსატან საქაღალდედ - -ის მითითება არქივის დასამუშავებლად pg_basebackup-ს მოითხოვს." -#: pg_basebackup.c:1138 +#: pg_basebackup.c:1139 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "-R პარამეტრს არქივის დასამუშავებლად pg_basebackup-ს მოითხოვს." -#: pg_basebackup.c:1357 +#: pg_basebackup.c:1358 #, c-format msgid "archives must precede manifest" msgstr "არქივები წინ უნდა უსწრებდეს მანიფესტს" -#: pg_basebackup.c:1372 +#: pg_basebackup.c:1373 #, c-format msgid "invalid archive name: \"%s\"" msgstr "არქივის არასწორი სახელი: \"%s\"" -#: pg_basebackup.c:1444 +#: pg_basebackup.c:1445 #, c-format msgid "unexpected payload data" msgstr "მოულოდნელი შიგთავსი" -#: pg_basebackup.c:1587 +#: pg_basebackup.c:1588 #, c-format msgid "empty COPY message" msgstr "შეტყობინება COPY ცარიელია" -#: pg_basebackup.c:1589 +#: pg_basebackup.c:1590 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "არასწორი COPY შეტყობინება ტიპით %d, სიგრძე %zu" -#: pg_basebackup.c:1789 +#: pg_basebackup.c:1790 #, c-format msgid "incompatible server version %s" msgstr "სერვერის შეუთავსებელი ვერსია %s" -#: pg_basebackup.c:1805 +#: pg_basebackup.c:1806 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "ჟურნალის ნაკადის გასათიშად -X none ან -X fetch გამოიყენეთ." -#: pg_basebackup.c:1841 +#: pg_basebackup.c:1842 #, c-format msgid "server does not support incremental backup" msgstr "სერვერს ინკრემენტული მარქაფის მხარდაჭერა არ გააჩნია" -#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 -#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 -#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#: pg_basebackup.c:1851 pg_basebackup.c:2009 pg_recvlogical.c:273 +#: receivelog.c:542 receivelog.c:581 streamutil.c:296 streamutil.c:370 +#: streamutil.c:422 streamutil.c:510 streamutil.c:667 streamutil.c:712 #, c-format msgid "could not send replication command \"%s\": %s" msgstr "რეპლიკაციის ბრძანების (\"%s\") გაგზავნის შეცდომა: %s" -#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#: pg_basebackup.c:1857 pg_basebackup.c:1884 #, c-format msgid "could not upload manifest: %s" msgstr "ვერ ავტვირთე მანიფესტი: %s" -#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#: pg_basebackup.c:1860 pg_basebackup.c:1887 #, c-format msgid "could not upload manifest: unexpected status %s" msgstr "ვერ ავტვირთე მანიფესტი: მოულოდნელი სტატუსი %s" -#: pg_basebackup.c:1867 +#: pg_basebackup.c:1868 #, c-format msgid "could not send COPY data: %s" msgstr "ვერ გავაგზავნე COPY-ის მონაცემები: %s" -#: pg_basebackup.c:1877 +#: pg_basebackup.c:1878 #, c-format msgid "could not send end-of-COPY: %s" msgstr "ვერ გავაგზავნე end-of-COPY: %s" -#: pg_basebackup.c:1892 +#: pg_basebackup.c:1893 #, c-format msgid "unexpected extra result while sending manifest" msgstr "მოულოდნელი დამატებითი პასუხი მანიფესტის გაგზავნისას" -#: pg_basebackup.c:1950 +#: pg_basebackup.c:1951 #, c-format msgid "backup targets are not supported by this server version" msgstr "სერვერის ამ ვერსიას მარქაფის სამიზნის მხარდაჭერა არ გააჩნია" -#: pg_basebackup.c:1953 +#: pg_basebackup.c:1954 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "აღდგენის კონფიგურაციის ჩაწერა მაშინ, როცა მარქაფის სამიზნე გამოიყენება, შეუძლებელია" -#: pg_basebackup.c:1980 +#: pg_basebackup.c:1981 #, c-format msgid "server does not support server-side compression" msgstr "სერვერს თავის მხარეს შეკუმშვის მხარდაჭერა არ გააჩნია" -#: pg_basebackup.c:1990 +#: pg_basebackup.c:1991 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "ბაზის მარქაფის პროფესი დაიწყო. ველოდები საკონტროლო წერტილის დასასრულს" -#: pg_basebackup.c:1994 +#: pg_basebackup.c:1995 #, c-format msgid "waiting for checkpoint" msgstr "საკონტროლო წერტილის მოლოდინი" -#: pg_basebackup.c:2016 +#: pg_basebackup.c:2017 #, c-format msgid "could not initiate base backup: %s" msgstr "ბაზის მარქაფის ინიციალიზაციის შეცდომა: %s" -#: pg_basebackup.c:2019 +#: pg_basebackup.c:2020 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "სერვერმა BASE_BACKUP ბრძანებაზე მოულოდნელი პასუხი დააბრუნა; მივიღე %d მწკრივი და %d ველი, მოველოდი %d მწკრივს და %d ველს" -#: pg_basebackup.c:2025 +#: pg_basebackup.c:2026 #, c-format msgid "checkpoint completed" msgstr "საკონტროლო წერტილი დასრულებულია" -#: pg_basebackup.c:2039 +#: pg_basebackup.c:2040 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "წინასწარ-ჩაწერადი ჟურნალის საწყისი წერტილი: %s დროს ხაზზე %u" -#: pg_basebackup.c:2047 +#: pg_basebackup.c:2048 #, c-format msgid "could not get backup header: %s" msgstr "მარქაფის თავსართის მიღების შეცდომა: %s" -#: pg_basebackup.c:2050 +#: pg_basebackup.c:2051 #, c-format msgid "no data returned from server" msgstr "სერვერიდან მონაცემები არ დაბრუნებულა" -#: pg_basebackup.c:2093 +#: pg_basebackup.c:2094 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "stdout-ში მხოლოდ ერთი ცხრილების სივრცის ჩაწერა შეუძლია. ბაზას კი %d აქვს" -#: pg_basebackup.c:2106 +#: pg_basebackup.c:2107 #, c-format msgid "starting background WAL receiver" msgstr "ფონური WAL მიმღების გაშვება" -#: pg_basebackup.c:2189 +#: pg_basebackup.c:2190 #, c-format msgid "backup failed: %s" msgstr "მარქაფის შეცდომა: %s" -#: pg_basebackup.c:2192 +#: pg_basebackup.c:2193 #, c-format msgid "no write-ahead log end position returned from server" msgstr "სერვერიდან წინასწარ-ჩაწერადი ჟურნალის ბოლო პოზიცია არ დაბრუნებულა" -#: pg_basebackup.c:2195 +#: pg_basebackup.c:2196 #, c-format msgid "write-ahead log end point: %s" msgstr "წინასწარ-ჩაწერადი ჟურნალის ბოლო წერტილი: %s" -#: pg_basebackup.c:2206 +#: pg_basebackup.c:2207 #, c-format msgid "checksum error occurred" msgstr "საკონტროლო ჯამის შეცდომა" -#: pg_basebackup.c:2211 +#: pg_basebackup.c:2212 #, c-format msgid "final receive failed: %s" msgstr "მიღების დასრულების შეცდომა: %s" -#: pg_basebackup.c:2235 +#: pg_basebackup.c:2236 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "ფონური პროცესის მიერ ნაკადის დასრულების მოლოდინი ..." -#: pg_basebackup.c:2239 +#: pg_basebackup.c:2240 #, c-format msgid "could not send command to background pipe: %m" msgstr "ფონური ფაიფისთვის ბრძანების გაგზავნის შეცდომა: %m" -#: pg_basebackup.c:2244 +#: pg_basebackup.c:2245 #, c-format msgid "could not wait for child process: %m" msgstr "შვულეულ პროცესს ვერ დაველოდები: %m" -#: pg_basebackup.c:2246 +#: pg_basebackup.c:2247 #, c-format msgid "child %d died, expected %d" msgstr "%d შვილი მოკვდა, მოველოდი %d" -#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 -#, c-format -msgid "%s" -msgstr "%s" - -#: pg_basebackup.c:2268 +#: pg_basebackup.c:2269 #, c-format msgid "could not wait for child thread: %m" msgstr "შვილეულ ნაკადს ვერ დაველოდები %m" -#: pg_basebackup.c:2273 +#: pg_basebackup.c:2274 #, c-format msgid "could not get child thread exit status: %m" msgstr "შვილეული ნაკადის გამოსვლის სტატუსის მიღების შეცდომა: %m" -#: pg_basebackup.c:2276 +#: pg_basebackup.c:2277 #, c-format msgid "child thread exited with error %u" msgstr "შვილეული ნაკადის შეცდომა: %u" -#: pg_basebackup.c:2305 +#: pg_basebackup.c:2306 #, c-format msgid "syncing data to disk ..." msgstr "მონაცემების სინქრონიზაცია დისკზე ..." -#: pg_basebackup.c:2330 +#: pg_basebackup.c:2331 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "backup_manifest.tmp -ის სახელის გადარქმევა backup_manifest" -#: pg_basebackup.c:2350 +#: pg_basebackup.c:2351 #, c-format msgid "base backup completed" msgstr "ბაზის მარქაფი დასრულდა" -#: pg_basebackup.c:2436 +#: pg_basebackup.c:2437 #, c-format msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" msgstr "საკონტროლო წერტილის არასწორი არგუმენტი %s: უნდა იყოს \"fast\" an \"spread\"" -#: pg_basebackup.c:2454 +#: pg_basebackup.c:2455 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "\"%s\"-ის არასწორი გამოტანის ფორმატი. უნდა იყოს: \"plain\" ან \"tar\"" -#: pg_basebackup.c:2535 +#: pg_basebackup.c:2536 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "wal-method-ის არასწორი მნიშვნელობა: %s. უნდა იყოს \"fetch\", \"stream\" ან \"none\"" -#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 -#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 -#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 -#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 -#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 -#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 -#: pg_basebackup.c:2803 pg_createsubscriber.c:1907 pg_createsubscriber.c:1917 -#: pg_createsubscriber.c:1925 pg_createsubscriber.c:1953 -#: pg_createsubscriber.c:1985 pg_receivewal.c:748 pg_receivewal.c:760 -#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 -#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 -#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 -#: pg_recvlogical.c:917 pg_recvlogical.c:924 +#: pg_basebackup.c:2575 pg_basebackup.c:2587 pg_basebackup.c:2609 +#: pg_basebackup.c:2621 pg_basebackup.c:2627 pg_basebackup.c:2679 +#: pg_basebackup.c:2690 pg_basebackup.c:2700 pg_basebackup.c:2706 +#: pg_basebackup.c:2713 pg_basebackup.c:2725 pg_basebackup.c:2737 +#: pg_basebackup.c:2745 pg_basebackup.c:2758 pg_basebackup.c:2764 +#: pg_basebackup.c:2773 pg_basebackup.c:2785 pg_basebackup.c:2796 +#: pg_basebackup.c:2804 pg_createsubscriber.c:2196 pg_createsubscriber.c:2218 +#: pg_createsubscriber.c:2228 pg_createsubscriber.c:2236 +#: pg_createsubscriber.c:2264 pg_createsubscriber.c:2307 pg_receivewal.c:748 +#: pg_receivewal.c:760 pg_receivewal.c:767 pg_receivewal.c:776 +#: pg_receivewal.c:783 pg_receivewal.c:793 pg_recvlogical.c:859 +#: pg_recvlogical.c:871 pg_recvlogical.c:881 pg_recvlogical.c:888 +#: pg_recvlogical.c:895 pg_recvlogical.c:902 pg_recvlogical.c:909 +#: pg_recvlogical.c:916 pg_recvlogical.c:923 pg_recvlogical.c:932 +#: pg_recvlogical.c:939 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_basebackup.c:2584 pg_createsubscriber.c:1915 pg_receivewal.c:758 -#: pg_recvlogical.c:863 +#: pg_basebackup.c:2585 pg_createsubscriber.c:2226 pg_receivewal.c:758 +#: pg_recvlogical.c:869 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_basebackup.c:2607 +#: pg_basebackup.c:2608 #, c-format msgid "cannot specify both format and backup target" msgstr "ერთდროულად შეუძლებელია ორივე, ფორმატის და მარქაფის სამიზნის მითითება" -#: pg_basebackup.c:2619 +#: pg_basebackup.c:2620 #, c-format msgid "must specify output directory or backup target" msgstr "გამოტანის საქაღალდის ან მარქაფის სამიზნის მითითება აუცილებელია" -#: pg_basebackup.c:2625 +#: pg_basebackup.c:2626 #, c-format msgid "cannot specify both output directory and backup target" msgstr "ორივე, გამოტანის საქაღალდის და მარქაფის სამიზნის მითითება ერთდროულად შეუძლებელია" -#: pg_basebackup.c:2655 pg_receivewal.c:802 +#: pg_basebackup.c:2656 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "შეკუმშვის უცხო ალგორითმი: \"%s\"" -#: pg_basebackup.c:2661 pg_receivewal.c:809 +#: pg_basebackup.c:2662 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "შეკუმშვის არასწორი სპეციფიკაცია: %s" -#: pg_basebackup.c:2677 +#: pg_basebackup.c:2678 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "როცა მარქაფის სამიზნე მითითებულია, კლიენტის-მხრის შეკუმშვის მითითება შეუძლებელია" -#: pg_basebackup.c:2688 +#: pg_basebackup.c:2689 #, c-format msgid "only tar mode backups can be compressed" msgstr "შესაძლებელია მხოლოდ tar რეჟიმის მარქაფების შეკუმშვა" -#: pg_basebackup.c:2698 +#: pg_basebackup.c:2699 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "WAL-ის ნაკადი მაშინ, როცა მარქაფის სამიზნე მითითებულია, შეუძლებელია" -#: pg_basebackup.c:2704 +#: pg_basebackup.c:2705 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "წინასწარ-ჩაწერადი ჟურნალის ნაკადის tar-ის რეჟიმში stdout-ზე გამოტანა შეუძლებელია" -#: pg_basebackup.c:2711 +#: pg_basebackup.c:2712 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "რეპლიკაციის სლოტების გამოყენება მხოლოდ WAL ნაკადთან ერთადაა შესაძლებელი" -#: pg_basebackup.c:2723 +#: pg_basebackup.c:2724 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot სლოტის სახელთან ერთად არ გამოიყენება" #. translator: second %s is an option name -#: pg_basebackup.c:2734 pg_receivewal.c:774 +#: pg_basebackup.c:2735 pg_receivewal.c:774 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "%s-სთვის საჭიროა სლოტის მითითება --slot პარამეტრის საშუალებით" -#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 -#: pg_basebackup.c:2801 +#: pg_basebackup.c:2743 pg_basebackup.c:2783 pg_basebackup.c:2794 +#: pg_basebackup.c:2802 #, c-format msgid "%s and %s are incompatible options" msgstr "პარამეტრები %s და %s შეუთავსებელია" -#: pg_basebackup.c:2756 +#: pg_basebackup.c:2757 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "WAL საქაღალდის მდებარეობა მარქაფის სამიზნესთან ერთად მითითებული არ შეიძლება იყოს" -#: pg_basebackup.c:2762 +#: pg_basebackup.c:2763 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "WAL-ის საქაღალდის მდებარეობის მითითება მხოლოდ უბრალო რეჟიმშია შესაძლებელი" -#: pg_basebackup.c:2771 +#: pg_basebackup.c:2772 #, c-format msgid "WAL directory location must be an absolute path" msgstr "WAL საქაღალდის მდებარეობა აბსოლუტური ბილიკი უნდა იყოს" -#: pg_basebackup.c:2871 +#: pg_basebackup.c:2872 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "სიმბმულის შექმნის შეცდომა %s: %m" -#: pg_createsubscriber.c:164 +#: pg_createsubscriber.c:189 #, c-format msgid "failed after the end of recovery" msgstr "ჩავარდა აღდგენის დასრულების შემდეგ" -#: pg_createsubscriber.c:165 +#: pg_createsubscriber.c:190 #, c-format msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." msgstr "სამიზნე სერვერს ფიზიკურ რეპლიკად ვეღარ გამოიყენებთ. გაგრძელებამდე ფიზიკური რეპლიკა თავიდან უნდა შექმნათ." -#: pg_createsubscriber.c:193 +#: pg_createsubscriber.c:221 #, c-format -msgid "publication \"%s\" in database \"%s\" on primary might be left behind" -msgstr "გამოცემა \"%s\" მონაცემთა ბაზაში \"%s\" ძირითადზე შეიძლება გამოტოვებულია" +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "გამოცემა \"%s\", შექმნილი მონაცემთა ბაზაში \"%s\" ძირითადზე, გამოტოვებულია" -#: pg_createsubscriber.c:195 +#: pg_createsubscriber.c:224 #, c-format -msgid "Consider dropping this publication before trying again." -msgstr "განიხილეთ ამ პუბლიკაციის გაუქმება ხელახლა ცდამდე." +msgid "Drop this publication before trying again." +msgstr "მოაცილეთ ეს გამოცემა, სანამ თავიდან სცდით." -#: pg_createsubscriber.c:199 +#: pg_createsubscriber.c:228 #, c-format -msgid "replication slot \"%s\" in database \"%s\" on primary might be left behind" -msgstr "რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაში \"%s\" ძირითადზე შეიძლება გამოტოვებულია" +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "რეპლიკაციის სლოტი \"%s\" შეიქმნა მონაცემთა ბაზაში \"%s\" ძირითადზე, შეიძლება, გამოტოვებულია" -#: pg_createsubscriber.c:201 pg_createsubscriber.c:1137 +#: pg_createsubscriber.c:231 pg_createsubscriber.c:1305 #, c-format msgid "Drop this replication slot soon to avoid retention of WAL files." msgstr "ამ რეპლიკაციის სლოტის მალე წაშლა WAL ფაილების მორჩენის თავიდან ასაცილებლად." -#: pg_createsubscriber.c:214 +#: pg_createsubscriber.c:244 #, c-format msgid "" "%s creates a new logical replica from a standby server.\n" @@ -1318,7 +1324,7 @@ msgstr "" "%s შექმნის ახალ ლოგიკური რეპლიკას უქმე სერვერიდან.\n" "\n" -#: pg_createsubscriber.c:218 pg_receivewal.c:81 pg_recvlogical.c:92 +#: pg_createsubscriber.c:248 pg_receivewal.c:81 pg_recvlogical.c:91 #, c-format msgid "" "\n" @@ -1327,599 +1333,676 @@ msgstr "" "\n" "პარამეტრები:\n" -#: pg_createsubscriber.c:219 +#: pg_createsubscriber.c:249 #, c-format -msgid " -d, --database=DBNAME database to create a subscription\n" +msgid "" +" -a, --all create subscriptions for all databases except template\n" +" databases or databases that don't allow connections\n" msgstr "" -" -d, --database=ბაზისსახელი გამოწერის შესაქმნელი ბაზის სახელი\n" -"\n" +" -a, --all გამოწერების შექმნა ყველა მონაცემთა ბაზისთვის გარდა შაბლონი\n" +" მონაცემთა ბაზების და მონაცემთა ბაზებისთვის, რომლებთანაც დაკავშირება აკრძალულია\n" -#: pg_createsubscriber.c:220 +#: pg_createsubscriber.c:251 #, c-format -msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" -msgstr "" -" -D, --pgdata=DATADIR გამომწერის მონაცემების საქაღალდის მდებარეობა\n" -"\n" +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --database=ბაზისსახელი მონაცემთა ბაზა, რომელშიც გნებავთ, გამოწერა შექმნათ\n" -#: pg_createsubscriber.c:221 +#: pg_createsubscriber.c:252 #, c-format -msgid " -n, --dry-run dry run, just show what would be done\n" -msgstr " -n, --dry-run განახლების გარეშე. უბრალოდ ნაჩვენები იქნება, რა მოხდებოდა\n" +msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" +msgstr " -D, --pgdata=DATADIR გამომწერის მონაცემების საქაღალდის მდებარეობა\n" -#: pg_createsubscriber.c:222 +#: pg_createsubscriber.c:253 #, c-format -msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" -msgstr " -p, --subscriber-port=პორტი გამომწერის პორტის ნომერი (ნაგულისხმევი %s)\n" +msgid " -n, --dry-run dry run, just show what would be done\n" +msgstr " -n, --dry-run განახლების გარეშე. უბრალოდ ნაჩვენები იქნება, რა მოხდებოდა\n" -#: pg_createsubscriber.c:223 +#: pg_createsubscriber.c:254 #, c-format -msgid " -P, --publisher-server=CONNSTR publisher connection string\n" -msgstr " -P, --publisher-server=CONNSTR გამომცემელთან მიერთების სტრიქონი\n" +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr " -p, --subscriber-port=პორტი გამომწერის პორტის ნომერი (ნაგულისხმევი %s)\n" -#: pg_createsubscriber.c:224 +#: pg_createsubscriber.c:255 #, c-format -msgid " -s, --socket-directory=DIR socket directory to use (default current directory)\n" -msgstr " -s, --socketdir=DIR სოკეტის საქაღალდე (ნაგულისხმევია მიმდინარე.)\n" +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CONNSTR გამომცემელთან მიერთების სტრიქონი\n" -#: pg_createsubscriber.c:225 +#: pg_createsubscriber.c:256 #, c-format -msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgid "" +" -R, --remove=OBJECTTYPE remove all objects of the specified type from specified\n" +" databases on the subscriber; accepts: publications\n" msgstr "" -" -t, --recovery-timeout=წამები რამდენი წამი დაველოდო აღდგენის დასრულებას\n" -"\n" +" -R, --remove=ობიექტისტიპი წაშლის მითითებული ტიპის ყველა ობიექტს მითითებული\n" +" მონაცემთა ბაზებიდან გამომწერზე. იღებს: გამოცემებს\n" -#: pg_createsubscriber.c:226 +#: pg_createsubscriber.c:258 #, c-format -msgid " -U, --subscriber-username=NAME subscriber username\n" -msgstr "" -" -U, --subscriber-username=სახელი გამომწერის მომხმარებლის სახელი\n" -"\n" +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=DIR სოკეტის საქაღალდე (ნაგულისხმევია მიმდინარე.)\n" + +#: pg_createsubscriber.c:259 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=წამები რამდენი წამი დაველოდო აღდგენის დასრულებას\n" + +#: pg_createsubscriber.c:260 +#, c-format +msgid " -T, --enable-two-phase enable two-phase commit for all subscriptions\n" +msgstr " -T, --enable-two-phase ორფაზიანი კომიტების ჩართვა ყველა გამოწერისთვის\n" + +#: pg_createsubscriber.c:261 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=სახელი მომხმარებლის სახელი გამომწერის კავშირისთვის\n" -#: pg_createsubscriber.c:227 +#: pg_createsubscriber.c:262 #, c-format -msgid " -v, --verbose output verbose messages\n" +msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: pg_createsubscriber.c:228 +#: pg_createsubscriber.c:263 #, c-format msgid "" -" --config-file=FILENAME use specified main server configuration\n" -" file when running target cluster\n" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" msgstr "" " --config-file=FILENAME სამიზნე კლასტერის გაშვებისას მთავარი \n" -" სერვერის მითითებული კონფიგურაციის ფაილში გამოყენება\n" +" სერვერის მითითებული კონფიგურაციის ფაილის გამოყენება\n" -#: pg_createsubscriber.c:230 +#: pg_createsubscriber.c:265 #, c-format -msgid " --publication=NAME publication name\n" +msgid " --publication=NAME publication name\n" msgstr " --publication=NAME პუბლიკაციის სახელი\n" -#: pg_createsubscriber.c:231 +#: pg_createsubscriber.c:266 #, c-format -msgid " --replication-slot=NAME replication slot name\n" -msgstr " --replication-slot=სახელი რეპლიკაციის სლოტის სახელი\n" +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=სახელი რეპლიკაციის სლოტის სახელი\n" -#: pg_createsubscriber.c:232 +#: pg_createsubscriber.c:267 #, c-format -msgid " --subscription=NAME subscription name\n" -msgstr " --subscription=NAME გამოწერის სახელი\n" +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NAME გამოწერის სახელი\n" -#: pg_createsubscriber.c:233 +#: pg_createsubscriber.c:268 #, c-format -msgid " -V, --version output version information, then exit\n" +msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_createsubscriber.c:234 +#: pg_createsubscriber.c:269 #, c-format -msgid " -?, --help show this help, then exit\n" +msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_createsubscriber.c:265 +#: pg_createsubscriber.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "შეერთების სტრიქონის დამუშავების შეცდომა: %s" -#: pg_createsubscriber.c:347 +#: pg_createsubscriber.c:389 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა" -#: pg_createsubscriber.c:350 +#: pg_createsubscriber.c:392 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s" -#: pg_createsubscriber.c:370 +#: pg_createsubscriber.c:412 #, c-format msgid "checking if directory \"%s\" is a cluster data directory" msgstr "შემოწმება, არის თუ არა საქაღალდე \"%s\" კლასტერის მონაცემების საქაღალდე" -#: pg_createsubscriber.c:376 +#: pg_createsubscriber.c:418 #, c-format msgid "data directory \"%s\" does not exist" msgstr "მონაცემების საქაღალდე არ არსებობს: \"%s\"" -#: pg_createsubscriber.c:384 +#: pg_createsubscriber.c:426 #, c-format msgid "directory \"%s\" is not a database cluster directory" msgstr "საქაღალდე \"%s\" ბაზის კლასტერის საქაღალდეს არ წარმოადგენს" -#: pg_createsubscriber.c:501 +#: pg_createsubscriber.c:544 #, c-format msgid "connection to database failed: %s" msgstr "მონაცემთა ბაზასთან მიერთება ჩავარდა: %s" -#: pg_createsubscriber.c:514 +#: pg_createsubscriber.c:557 streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "search_path-ის გასუფთავების პრობლემა: %s" +msgid "could not clear \"search_path\": %s" +msgstr "\"search_path\"-ის გასუფთავების პრობლემა: %s" -#: pg_createsubscriber.c:554 +#: pg_createsubscriber.c:597 #, c-format msgid "getting system identifier from publisher" msgstr "სისტემური იდენტიფიკატორის მიღება გამომცემლისგან" -#: pg_createsubscriber.c:561 +#: pg_createsubscriber.c:604 #, c-format msgid "could not get system identifier: %s" msgstr "ვერ მივიღე სისტემის იდენტიფიკატორი: %s" -#: pg_createsubscriber.c:567 +#: pg_createsubscriber.c:610 #, c-format msgid "could not get system identifier: got %d rows, expected %d row" msgstr "სისტემური იდენტიფიკატორის მიღება შეუძლებელია: მივიღე %d მწკრივი. მოველოდი %d მწკრივს" -#: pg_createsubscriber.c:574 +#: pg_createsubscriber.c:617 #, c-format -msgid "system identifier is %llu on publisher" -msgstr "სისტემური იდენტიფიკატორი გამომცემელზე %llu-ია" +msgid "system identifier is % on publisher" +msgstr "სისტემური იდენტიფიკატორი % გამომცემელზეა" -#: pg_createsubscriber.c:595 +#: pg_createsubscriber.c:637 #, c-format msgid "getting system identifier from subscriber" msgstr "სისტემური იდენტიფიკატორის მიღება გამომწერისგან" -#: pg_createsubscriber.c:599 pg_createsubscriber.c:629 +#: pg_createsubscriber.c:641 pg_createsubscriber.c:670 #, c-format msgid "control file appears to be corrupt" msgstr "როგორც ჩანს, საკონტროლო ფაილი დაზიანებულია" -#: pg_createsubscriber.c:603 pg_createsubscriber.c:644 +#: pg_createsubscriber.c:645 pg_createsubscriber.c:685 #, c-format -msgid "system identifier is %llu on subscriber" -msgstr "სისტემური იდენტიფიკატორი %llu გამომწერზეა" +msgid "system identifier is % on subscriber" +msgstr "სისტემური იდენტიფიკატორი % გამომწერზეა" -#: pg_createsubscriber.c:625 +#: pg_createsubscriber.c:666 #, c-format msgid "modifying system identifier of subscriber" msgstr "გამომწერის სისტემური იდენტიფიკატორის შეცვლა" -#: pg_createsubscriber.c:647 +#: pg_createsubscriber.c:688 #, c-format msgid "running pg_resetwal on the subscriber" msgstr "pg_resetwal-ის გაშვება გამომწერზე" -#: pg_createsubscriber.c:659 +#: pg_createsubscriber.c:700 #, c-format msgid "subscriber successfully changed the system identifier" msgstr "გამომწერმა სისტემური იდენტიფიკატორი წარმატებით შეცვალა" -#: pg_createsubscriber.c:661 +#: pg_createsubscriber.c:702 #, c-format -msgid "subscriber failed to change system identifier: exit code: %d" -msgstr "გამომწერის სისტემური იდენტიფიკატორის შეცვლა ჩავარდა: გამოსვლის კოდი: %d" +msgid "could not change system identifier of subscriber: %s" +msgstr "ვერ შევცვალე სისტემურ იდენტიფიკატორი გამომწერისთვის: %s" -#: pg_createsubscriber.c:685 +#: pg_createsubscriber.c:726 #, c-format msgid "could not obtain database OID: %s" msgstr "ვერ მივიღე მონაცემთა ბაზის OID: %s" -#: pg_createsubscriber.c:692 +#: pg_createsubscriber.c:733 #, c-format msgid "could not obtain database OID: got %d rows, expected %d row" msgstr "ვერ მივიღე მონაცემთა ბაზის OID: მივიღე %d მწკრივი, მოველოდი %d მწკრივს" -#: pg_createsubscriber.c:764 +#: pg_createsubscriber.c:805 #, c-format msgid "create replication slot \"%s\" on publisher" msgstr "რეპლიკაციის სლოტის \"%s\" შექმნა გამომცემელზე" -#: pg_createsubscriber.c:788 +#: pg_createsubscriber.c:825 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "ვერ ჩავწერე დამატებითი WAL ჩანაწერი: %s" + +#: pg_createsubscriber.c:851 #, c-format msgid "could not obtain recovery progress: %s" msgstr "აღდგენის მიმდინარეობის მდგომარეობის მიღება შეუძლებელია: %s" -#: pg_createsubscriber.c:819 +#: pg_createsubscriber.c:884 #, c-format msgid "checking settings on publisher" msgstr "პარამეტრების შექმნა გამომცემელზე" -#: pg_createsubscriber.c:829 +#: pg_createsubscriber.c:894 #, c-format msgid "primary server cannot be in recovery" msgstr "ძირითადი სერვერი აღდგენის რეჟიმში ვერ იქნება" -#: pg_createsubscriber.c:864 +#: pg_createsubscriber.c:920 #, c-format msgid "could not obtain publisher settings: %s" msgstr "გამომცემლის პარამეტრების მიღება შეუძლებელია: %s" -#: pg_createsubscriber.c:887 +#: pg_createsubscriber.c:949 #, c-format -msgid "publisher requires wal_level >= \"logical\"" -msgstr "გამომცემელს wal_level >= \"logical\" ესაჭიროება" +msgid "publisher requires \"wal_level\" >= \"logical\"" +msgstr "გამომცემელს \"wal_level\" >= \"logical\" ესაჭიროება" -#: pg_createsubscriber.c:893 +#: pg_createsubscriber.c:955 #, c-format msgid "publisher requires %d replication slots, but only %d remain" msgstr "გამომცემელს %d რეპლიკაციის სლოტი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" -#: pg_createsubscriber.c:895 pg_createsubscriber.c:994 +#: pg_createsubscriber.c:957 pg_createsubscriber.c:966 +#: pg_createsubscriber.c:1076 pg_createsubscriber.c:1085 +#: pg_createsubscriber.c:1094 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "გაზარდეთ კონფიგურაციის პარამეტრი \"%s\" %d-მდე მაინც." + +#: pg_createsubscriber.c:964 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "გამომცემელს %d WAL-ის გამგზავნი პროცესი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" + +#: pg_createsubscriber.c:973 #, c-format -msgid "Consider increasing max_replication_slots to at least %d." -msgstr "განიხილეთ max_replication_slots-ის გაზრდა მინიმუმ %d-მდე." +msgid "two_phase option will not be enabled for replication slots" +msgstr "პარამეტრი two_phase რეპლიკაციის სლოტებისთვის არ ჩაირთვება" -#: pg_createsubscriber.c:902 +#: pg_createsubscriber.c:974 #, c-format -msgid "publisher requires %d wal sender processes, but only %d remain" -msgstr "გამომცემელს %d wal გამგზავნი პროცესი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "გამოწერები two_phase პარამეტრით გათიშული შეიქმნება. მომზადებული ტრანზაქციების რეპლიკაცია მოხდება COMMIT PREPARED-თან." -#: pg_createsubscriber.c:904 +#: pg_createsubscriber.c:976 #, c-format -msgid "Consider increasing max_wal_senders to at least %d." -msgstr "განიხილეთ max_wal_senders-ის გაზრდა მინიმუმ %d-მდე." +msgid "You can use --enable-two-phase switch to enable two_phase." +msgstr "'two_phase'-ის ჩასართავად, შეგიძლიათ, გამოიყენოთ პარამეტრი --enable-two-phase." -#: pg_createsubscriber.c:937 +#: pg_createsubscriber.c:986 +#, c-format +msgid "required WAL could be removed from the publisher" +msgstr "აუცილებელი WAL-ის წაშლა შესაძლებელია გამომცემლიდან" + +#: pg_createsubscriber.c:987 +#, c-format +msgid "Set the configuration parameter \"%s\" to -1 to ensure that required WAL files are not prematurely removed." +msgstr "დააყენეთ კონფიგურაციის პარამეტრი \"%s\" მნიშვნელობაზე -1, რომ დარწმუნდეთ, რომ WAL ფაილები საჭიროზე ადრე არ წაიშლება." + +#: pg_createsubscriber.c:1019 #, c-format msgid "checking settings on subscriber" msgstr "პარამეტრების შემოწმება გამომწერზე" -#: pg_createsubscriber.c:944 +#: pg_createsubscriber.c:1026 #, c-format msgid "target server must be a standby" msgstr "სამიზნე სერვერი უქმე უნდა იყოს" -#: pg_createsubscriber.c:968 +#: pg_createsubscriber.c:1050 #, c-format msgid "could not obtain subscriber settings: %s" msgstr "გამომწერის პარამეტრების მიღება შეუძლებელია: %s" -#: pg_createsubscriber.c:992 +#: pg_createsubscriber.c:1074 #, c-format -msgid "subscriber requires %d replication slots, but only %d remain" -msgstr "გამომწერს %d რეპლიკაციის სლოტი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" +msgid "subscriber requires %d active replication origins, but only %d remain" +msgstr "გამომწერს %d აქტიური რეპლიკაციის წყარო სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" -#: pg_createsubscriber.c:1001 +#: pg_createsubscriber.c:1083 #, c-format msgid "subscriber requires %d logical replication workers, but only %d remain" msgstr "გამომწერს %d ლოგიკური რეპლიკაციის დამხმარე პროცესი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" -#: pg_createsubscriber.c:1003 -#, c-format -msgid "Consider increasing max_logical_replication_workers to at least %d." -msgstr "განიხილეთ max_logical_replication_workers-ის გაზრდა მინიმუმ %d-მდე." - -#: pg_createsubscriber.c:1010 +#: pg_createsubscriber.c:1092 #, c-format msgid "subscriber requires %d worker processes, but only %d remain" msgstr "გამომწერს %d დამხმარე პროცესი სჭირდება, მაგრამ დარჩენილია, მხოლოდ, %d" -#: pg_createsubscriber.c:1012 +#: pg_createsubscriber.c:1127 #, c-format -msgid "Consider increasing max_worker_processes to at least %d." -msgstr "განიხილეთ max_worker_processes-ის გაზრდა მინიმუმ %d-მდე." +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "მოხდება მოცილება გამოწერისა \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1135 +#: pg_createsubscriber.c:1136 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "ვერ მოვაცილე გამოწერა \"%s\": %s" + +#: pg_createsubscriber.c:1171 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "ვერ მივიღე უკვე არსებული გამოწერები: %s" + +#: pg_createsubscriber.c:1303 #, c-format msgid "could not drop replication slot \"%s\" on primary" msgstr "ვერ წავშალე რეპლიკაციის სლოტი \"%s\" ძირითადზე" -#: pg_createsubscriber.c:1169 +#: pg_createsubscriber.c:1337 #, c-format msgid "could not obtain failover replication slot information: %s" msgstr "გადასართველი რეპლიკაციის სლოტის ინფორმაციის მიღება შეუძლებელია: %s" -#: pg_createsubscriber.c:1171 pg_createsubscriber.c:1180 +#: pg_createsubscriber.c:1339 pg_createsubscriber.c:1348 #, c-format msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." msgstr "გამომწერზე გადასართველი რეპლიკაციის სლოტების მალე წაშლა WAL ფაილების მორჩენის თავიდან ასაცილებლად." -#: pg_createsubscriber.c:1179 +#: pg_createsubscriber.c:1347 #, c-format msgid "could not drop failover replication slot" msgstr "გადასართველი რეპლიკაციის სლოტი წაშლა შეუძლებელია" -#: pg_createsubscriber.c:1201 +#: pg_createsubscriber.c:1369 #, c-format -msgid "creating the replication slot \"%s\" on database \"%s\"" -msgstr "იქმნება რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "იქმნება რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1219 +#: pg_createsubscriber.c:1388 #, c-format -msgid "could not create replication slot \"%s\" on database \"%s\": %s" -msgstr "ვერ შევქმენი რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაზე \"%s\": %s" +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "ვერ შევქმენი რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაში \"%s\": %s" -#: pg_createsubscriber.c:1249 +#: pg_createsubscriber.c:1418 #, c-format -msgid "dropping the replication slot \"%s\" on database \"%s\"" -msgstr "იშლება რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "იშლება რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1265 +#: pg_createsubscriber.c:1434 #, c-format -msgid "could not drop replication slot \"%s\" on database \"%s\": %s" -msgstr "ვერ წავშალე რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაზე \"%s\": %s" +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "ვერ წავშალე რეპლიკაციის სლოტი \"%s\" მონაცემთა ბაზაში \"%s\": %s" -#: pg_createsubscriber.c:1286 +#: pg_createsubscriber.c:1455 #, c-format msgid "pg_ctl failed with exit code %d" msgstr "pg_ctl ჩავარდა გამოსვლის კოდით %d" -#: pg_createsubscriber.c:1291 +#: pg_createsubscriber.c:1460 #, c-format msgid "pg_ctl was terminated by exception 0x%X" msgstr "pg_ctl შეწყდა გამონაკლისით 0x%X" -#: pg_createsubscriber.c:1293 +#: pg_createsubscriber.c:1462 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "თექვსმეტობითი მნიშვნელობის აღწერისთვის იხილეთ C-ის ჩასასმელი ფაილი \"ntstatus.h\"." -#: pg_createsubscriber.c:1295 +#: pg_createsubscriber.c:1464 #, c-format msgid "pg_ctl was terminated by signal %d: %s" msgstr "pg_ctl შეწყვეტილია სიგნალით %d: %s" -#: pg_createsubscriber.c:1301 +#: pg_createsubscriber.c:1470 #, c-format msgid "pg_ctl exited with unrecognized status %d" msgstr "pg_ctl დასრულდა უცნობი სტატუსით %d" -#: pg_createsubscriber.c:1304 +#: pg_createsubscriber.c:1473 #, c-format msgid "The failed command was: %s" msgstr "ჩავარდნილი ბრძანება იყო: %s" -#: pg_createsubscriber.c:1343 +#: pg_createsubscriber.c:1523 #, c-format msgid "server was started" msgstr "სერვერი გაეშვა" -#: pg_createsubscriber.c:1358 +#: pg_createsubscriber.c:1538 #, c-format msgid "server was stopped" msgstr "სერვერი გამოირთო" -#: pg_createsubscriber.c:1377 +#: pg_createsubscriber.c:1557 #, c-format msgid "waiting for the target server to reach the consistent state" msgstr "სამიზნე სერვერის მდგრად მდგომარეობაში გადასვლის მოლოდინი" -#: pg_createsubscriber.c:1400 +#: pg_createsubscriber.c:1580 #, c-format msgid "recovery timed out" msgstr "აღდგენის მოლოდინის ვადა ამოიწურა" -#: pg_createsubscriber.c:1413 +#: pg_createsubscriber.c:1593 #, c-format msgid "server did not end recovery" msgstr "სერვერმა აღდგენა არ დაამთავრა" -#: pg_createsubscriber.c:1415 +#: pg_createsubscriber.c:1595 #, c-format msgid "target server reached the consistent state" msgstr "სამიზნე სერვერმა მიაღწია მდგრად მდგომარეობას" -#: pg_createsubscriber.c:1416 +#: pg_createsubscriber.c:1596 #, c-format msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." msgstr "თუ ამ წერტილის შემდეგ pg_createsubscriber ჩავარდება, გაგრძელებამდე ფიზიკური რეპლიკა თავიდან უნდა შექმნათ." -#: pg_createsubscriber.c:1443 +#: pg_createsubscriber.c:1623 pg_createsubscriber.c:1746 #, c-format msgid "could not obtain publication information: %s" msgstr "გამოცემის ინფორმაციის მიღება შეუძლებელია: %s" -#: pg_createsubscriber.c:1457 +#: pg_createsubscriber.c:1637 #, c-format msgid "publication \"%s\" already exists" msgstr "პუბლიკაცია \"%s\" უკვე არსებობს" -#: pg_createsubscriber.c:1458 +#: pg_createsubscriber.c:1638 #, c-format msgid "Consider renaming this publication before continuing." msgstr "განიხილეთ ამ პუბლიკაციის სახელის გადარქმევა ხელახლა ცდამდე." -#: pg_createsubscriber.c:1465 +#: pg_createsubscriber.c:1645 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "იქმნება გამოცემა \"%s\" მონაცემთა ბაზაში \"%s\"" + +#: pg_createsubscriber.c:1658 #, c-format -msgid "creating publication \"%s\" on database \"%s\"" -msgstr "იქმნება გამოცემა \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "ვერ შევქმენი გამოცემა \"%s\" მონაცემთა ბაზაში \"%s\": %s" -#: pg_createsubscriber.c:1478 +#: pg_createsubscriber.c:1688 #, c-format -msgid "could not create publication \"%s\" on database \"%s\": %s" -msgstr "ვერ შევქმენი გამოცემა \"%s\" მონაცემთა ბაზაზე \"%s\": %s" +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "ვშლი გამოცემას \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1507 +#: pg_createsubscriber.c:1702 #, c-format -msgid "dropping publication \"%s\" on database \"%s\"" -msgstr "ვშლი გამოცემას \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "ვერ წავშალე გამოცემა \"%s\" მონაცემთა ბაზაში \"%s\": %s" -#: pg_createsubscriber.c:1521 +#: pg_createsubscriber.c:1739 #, c-format -msgid "could not drop publication \"%s\" on database \"%s\": %s" -msgstr "ვერ წავშალე გამოცემა \"%s\" მონაცემთა ბაზაზე \"%s\": %s" +msgid "dropping all existing publications in database \"%s\"" +msgstr "ვშლი ყველა არსებულ გამოცემას მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1567 +#: pg_createsubscriber.c:1797 #, c-format -msgid "creating subscription \"%s\" on database \"%s\"" -msgstr "იქმნება გამოწერა \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "იქმნება გამოწერა \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1588 +#: pg_createsubscriber.c:1819 #, c-format -msgid "could not create subscription \"%s\" on database \"%s\": %s" -msgstr "ვერ შევქმენი გამოწერა \"%s\" მონაცემთა ბაზაზე \"%s\": %s" +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "ვერ შევქმენი გამოწერა \"%s\" მონაცემთა ბაზაში \"%s\": %s" -#: pg_createsubscriber.c:1633 +#: pg_createsubscriber.c:1864 #, c-format msgid "could not obtain subscription OID: %s" msgstr "ვერ მივიღე გამოწერის OID: %s" -#: pg_createsubscriber.c:1640 +#: pg_createsubscriber.c:1871 #, c-format msgid "could not obtain subscription OID: got %d rows, expected %d row" msgstr "ვერ მივიღე გამოწერის OID: მივიღე %d მწკრივი, მოველოდი %d მწკრივს" -#: pg_createsubscriber.c:1664 +#: pg_createsubscriber.c:1895 #, c-format -msgid "setting the replication progress (node name \"%s\" ; LSN %s) on database \"%s\"" +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" msgstr "რეპლიკაციის მიმდინარეობის (კვანძის სახელი \"%s\", LSN %s) დაყენება მონაცემთა ბაზაზე \"%s\"" -#: pg_createsubscriber.c:1679 +#: pg_createsubscriber.c:1910 #, c-format -msgid "could not set replication progress for the subscription \"%s\": %s" +msgid "could not set replication progress for subscription \"%s\": %s" msgstr "შეუძლებელია რეპლიკაციის მიმდინარეობის დაყენება გამოწერისთვის \"%s\": %s" -#: pg_createsubscriber.c:1710 +#: pg_createsubscriber.c:1941 #, c-format -msgid "enabling subscription \"%s\" on database \"%s\"" -msgstr "ჩაირთვება გამოწერა \"%s\" მონაცემთა ბაზაზე \"%s\"" +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "ჩაირთვება გამოწერა \"%s\" მონაცემთა ბაზაში \"%s\"" -#: pg_createsubscriber.c:1722 +#: pg_createsubscriber.c:1953 #, c-format msgid "could not enable subscription \"%s\": %s" msgstr "ვერ ჩავრთე გამოწერა \"%s\": %s" -#: pg_createsubscriber.c:1814 +#: pg_createsubscriber.c:1999 +#, c-format +msgid "could not obtain a list of databases: %s" +msgstr "ვერ მივიღე მონაცემთა ბაზების სია: %s" + +#: pg_createsubscriber.c:2103 #, c-format msgid "cannot be executed by \"root\"" msgstr "root-ით ვერ გაეშვება" -#: pg_createsubscriber.c:1815 +#: pg_createsubscriber.c:2104 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "%s PostgreSQL-ის ზემომხმარებლით უნდა გაუშვათ." -#: pg_createsubscriber.c:1836 +#: pg_createsubscriber.c:2127 +#, c-format +msgid "database \"%s\" specified more than once for -d/--database" +msgstr "მონაცემთა ბაზა \"%s\" ერთზე მეტჯერაა მითითებული პარამეტრისთვის -d/--database" + +#: pg_createsubscriber.c:2146 +#, c-format +msgid "object type \"%s\" is specified more than once for -R/--remove" +msgstr "პარამეტრისთვის -R/--remove ობიექტის ტიპი \"%s\" ერთზე მეტჯერაა მითითებული" + +#: pg_createsubscriber.c:2174 #, c-format -msgid "duplicate database \"%s\"" -msgstr "განმეორებადი ბაზა \"%s\"" +msgid "publication \"%s\" specified more than once for --publication" +msgstr "პუბლიკაცია \"%s\" მითითებულია ერთზე მეტჯერ პარამეტრისთვის --publication" -#: pg_createsubscriber.c:1877 +#: pg_createsubscriber.c:2183 #, c-format -msgid "duplicate publication \"%s\"" -msgstr "განმეორებადი გამოცემა \"%s\"" +msgid "replication slot \"%s\" specified more than once for --replication-slot" +msgstr "რეპლიკაციის სლოტი \"%s\" მითითებულია ერთზე მეტჯერ პარამეტრისთვის --repilication-slot" -#: pg_createsubscriber.c:1889 +#: pg_createsubscriber.c:2192 #, c-format -msgid "duplicate replication slot \"%s\"" -msgstr "განმეორებადი რეპლიკაციის სლოტი \"%s\"" +msgid "subscription \"%s\" specified more than once for --subscription" +msgstr "გამოწერა \"%s\" მითითებულია ერთზე მეტჯერ პარამეტრისთვის --subscription" -#: pg_createsubscriber.c:1901 +#: pg_createsubscriber.c:2217 #, c-format -msgid "duplicate subscription \"%s\"" -msgstr "განმეორებადი გამოწერა \"%s\"" +msgid "%s cannot be used with -a/--all" +msgstr "%s-ს ვერ გამოიყენებთ -a/--all -თან ერთად" -#: pg_createsubscriber.c:1924 +#: pg_createsubscriber.c:2235 #, c-format msgid "no subscriber data directory specified" msgstr "გამომწერის მონაცემების საქაღალდე მითითებული არაა" -#: pg_createsubscriber.c:1935 +#: pg_createsubscriber.c:2246 #, c-format msgid "could not determine current directory" msgstr "მიმდინარე საქაღალდის იდენტიფიკაციის პრობლემა" -#: pg_createsubscriber.c:1952 +#: pg_createsubscriber.c:2263 #, c-format msgid "no publisher connection string specified" msgstr "გამომცემლის მიერთების სტრიქონი მითითებული არაა" -#: pg_createsubscriber.c:1956 +#: pg_createsubscriber.c:2267 #, c-format -msgid "validating connection string on publisher" -msgstr "შეერთების სტრიქონის დადასტურება გამომცემელზე" +msgid "validating publisher connection string" +msgstr "გამომცემლის მიერთების სტრიქონის გადამოწმება" -#: pg_createsubscriber.c:1962 +#: pg_createsubscriber.c:2273 #, c-format -msgid "validating connection string on subscriber" -msgstr "შეერთების სტრიქონის დადასტურება გამომწერზე" +msgid "validating subscriber connection string" +msgstr "მიმდინარეობს გამომწერის დაკავშირების სტრიქონის გადამოწმება" -#: pg_createsubscriber.c:1967 +#: pg_createsubscriber.c:2290 #, c-format msgid "no database was specified" msgstr "ბაზა მითითებული არაა" -#: pg_createsubscriber.c:1979 +#: pg_createsubscriber.c:2301 #, c-format -msgid "database \"%s\" was extracted from the publisher connection string" -msgstr "ბაზა \"%s\" ამოღებულია გამომცემლის მიერთების სტრიქონიიდან" +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "ბაზა \"%s\" გამოღებულია გამომცემლის მიერთების სტრიქონიდან" -#: pg_createsubscriber.c:1984 +#: pg_createsubscriber.c:2306 #, c-format msgid "no database name specified" msgstr "ბაზის სახელი მითითებული არაა" -#: pg_createsubscriber.c:1994 +#: pg_createsubscriber.c:2316 #, c-format -msgid "wrong number of publication names" -msgstr "გამოცემის სახელების არასწორი რაოდენობა" +msgid "wrong number of publication names specified" +msgstr "მითითებულია გამოცემის სახელების არასწორი რაოდენობა" -#: pg_createsubscriber.c:1995 +#: pg_createsubscriber.c:2317 #, c-format -msgid "Number of publication names (%d) must match number of database names (%d)." -msgstr "გამოცემის სახელების რაოდენობა (%d) ბაზის სახელების რაოდენობას (%d) უნდა ემთხვეოდეს." +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "გამოცემის სახელების რაოდენობა (%d) ბაზის სახელების მითითებულ რაოდენობას (%d) უნდა ემთხვეოდეს." -#: pg_createsubscriber.c:2001 +#: pg_createsubscriber.c:2323 #, c-format -msgid "wrong number of subscription names" -msgstr "გამოწერის სახელების არასწორი რაოდენობა" +msgid "wrong number of subscription names specified" +msgstr "მითითებულია გამოწერის სახელების არასწორი რაოდენობა" -#: pg_createsubscriber.c:2002 +#: pg_createsubscriber.c:2324 #, c-format -msgid "Number of subscription names (%d) must match number of database names (%d)." -msgstr "გამოწერის სახელების რაოდენობა (%d) ბაზის სახელების რაოდენობას (%d) უნდა ემთხვეოდეს." +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "მითითებული გამოწერის სახელების რაოდენობა (%d) მითითებული ბაზის სახელების რაოდენობას (%d) უნდა ემთხვეოდეს." -#: pg_createsubscriber.c:2008 +#: pg_createsubscriber.c:2330 #, c-format -msgid "wrong number of replication slot names" -msgstr "რეპლიკაციის სლოტის სახელების არასწორი რაოდენობა" +msgid "wrong number of replication slot names specified" +msgstr "მითითებულია რეპლიკაციის სლოტის სახელების არასწორი რაოდენობა" -#: pg_createsubscriber.c:2009 +#: pg_createsubscriber.c:2331 #, c-format -msgid "Number of replication slot names (%d) must match number of database names (%d)." -msgstr "რეპლიკაციის სლოტების სახელების რაოდენობა (%d) ბაზის სახელების რაოდენობას (%d) უნდა ემთხვეოდეს." +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "რეპლიკაციის სლოტების მითითებული სახელების რაოდენობა (%d) ბაზის სახელების მითითებულ რაოდენობას (%d) უნდა ემთხვეოდეს." -#: pg_createsubscriber.c:2038 +#: pg_createsubscriber.c:2343 +#, c-format +msgid "invalid object type \"%s\" specified for -R/--remove" +msgstr "პარამეტრისთვის -R/--remove მითითებული ობიექტის ტიპი '%s' არასწორია" + +#: pg_createsubscriber.c:2344 +#, c-format +msgid "The valid option is: \"publications\"" +msgstr "სწორი პარამეტრია \"publications\"" + +#: pg_createsubscriber.c:2375 #, c-format msgid "subscriber data directory is not a copy of the source database cluster" msgstr "გამომწერის მონაცემების საქაღალდე წყარო ბაზის კლასტერის ასლი არაა" -#: pg_createsubscriber.c:2051 +#: pg_createsubscriber.c:2388 #, c-format -msgid "standby is up and running" -msgstr "უქმე ჩართულია და მუშაობს" +msgid "standby server is running" +msgstr "უქმე სერვერი გაშვებულია" -#: pg_createsubscriber.c:2052 +#: pg_createsubscriber.c:2389 #, c-format -msgid "Stop the standby and try again." -msgstr "გააჩერეთ უქმე და თავიდან სცადეთ." +msgid "Stop the standby server and try again." +msgstr "გააჩერეთ უქმე სერვერი და თავიდან სცადეთ." -#: pg_createsubscriber.c:2061 +#: pg_createsubscriber.c:2398 #, c-format -msgid "starting the standby with command-line options" -msgstr "უქმეს გაშვება ბრძანების სტრიქონის პარამეტრებით" +msgid "starting the standby server with command-line options" +msgstr "მიმდინარეობს უქმე სერვერის გაშვება ბრძანების სტრიქონის პარამეტრებით" -#: pg_createsubscriber.c:2077 pg_createsubscriber.c:2116 +#: pg_createsubscriber.c:2414 pg_createsubscriber.c:2449 #, c-format msgid "stopping the subscriber" msgstr "გამომწერის გაჩერება" -#: pg_createsubscriber.c:2095 +#: pg_createsubscriber.c:2428 #, c-format msgid "starting the subscriber" msgstr "გამომწერის გაშვება" -#: pg_createsubscriber.c:2124 +#: pg_createsubscriber.c:2457 #, c-format msgid "Done!" msgstr "შესრულებულია!" @@ -1938,17 +2021,17 @@ msgstr "" msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=DIR წინასწარ-ჩაწერადი ჟურნალის ფაილების მითითებულ საქაღალდეში ჩაწერა\n" -#: pg_receivewal.c:83 pg_recvlogical.c:93 +#: pg_receivewal.c:83 pg_recvlogical.c:92 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN გამოსვლა მითითებული LSN-ის მიღების შემდეგ\n" -#: pg_receivewal.c:84 pg_recvlogical.c:97 +#: pg_receivewal.c:84 pg_recvlogical.c:98 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr " --if-not-exists სლოტის შექმნისას მისი არსებობის შემთხვევაში ფაქტი შეცდომად არ ჩაითვლება\n" -#: pg_receivewal.c:85 pg_recvlogical.c:99 +#: pg_receivewal.c:85 pg_recvlogical.c:100 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop შეერთების დაკარგვისას თავიდან არ ცდა\n" @@ -1958,14 +2041,14 @@ msgstr " -n, --no-loop შეერთების დაკარგ msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: pg_receivewal.c:87 pg_recvlogical.c:104 +#: pg_receivewal.c:87 pg_recvlogical.c:105 #, c-format msgid "" " -s, --status-interval=SECS\n" " time between status packets sent to server (default: %d)\n" msgstr "" " -s, --status-interval=SECS\n" -" შუალედი სერვერზე სტატუსის პაკეტების გაგზავნებს შორის (ნაგულისხმები: %d)\n" +" შუალედი სერვერზე სტატუსის პაკეტების გაგზავნებს შორის (ნაგულისხმევი: %d)\n" #: pg_receivewal.c:90 #, c-format @@ -1990,12 +2073,12 @@ msgstr "" "\n" "არასავალდებულო ქმედებები:\n" -#: pg_receivewal.c:104 pg_recvlogical.c:89 +#: pg_receivewal.c:104 pg_recvlogical.c:88 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr " --create-slot ახალი რეპლიკაციის სლოტის შექმნა (სლოტის სახელისთვის იხილეთ --slot)\n" -#: pg_receivewal.c:105 pg_recvlogical.c:90 +#: pg_receivewal.c:105 pg_recvlogical.c:89 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr " --drop-slot რეპლიკაციის სლოტის გადაგდება (რეპლიკაციის სახელისთვის იხილეთ --slot)\n" @@ -2015,7 +2098,7 @@ msgstr "ჟურნალის ნაკადი შეჩერდა მი msgid "switched to timeline %u at %X/%X" msgstr "გადავერთე %u-ე დროის ხაზზე მისამართით %X/%X" -#: pg_receivewal.c:224 pg_recvlogical.c:1053 +#: pg_receivewal.c:224 pg_recvlogical.c:1073 #, c-format msgid "received interrupt signal, exiting" msgstr "მიღებულია შეწყვეტის სიგნალი. გამოსვლა" @@ -2085,7 +2168,7 @@ msgstr "ფაილის (%s) შემოწმება შეუძლე msgid "starting log streaming at %X/%X (timeline %u)" msgstr "ჟურნალის ნაკადი დაიწყო მისამართზე %X/%X (დროის ხაზი %u)" -#: pg_receivewal.c:693 pg_recvlogical.c:801 +#: pg_receivewal.c:693 pg_recvlogical.c:807 #, c-format msgid "could not parse end position \"%s\"" msgstr "ბოლო პოზიციის დამუშავების შეცდომა: %s" @@ -2115,28 +2198,28 @@ msgstr "%s-სთან დაკავშირების მხარდა msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "რეპლიკაციის შეერთება სლოტით \"%s\" მოულოდნელად ბაზაზეა დამოკიდებული" -#: pg_receivewal.c:878 pg_recvlogical.c:972 +#: pg_receivewal.c:878 pg_recvlogical.c:991 #, c-format msgid "dropping replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის წაშლა: %s" -#: pg_receivewal.c:889 pg_recvlogical.c:982 +#: pg_receivewal.c:889 pg_recvlogical.c:1001 #, c-format msgid "creating replication slot \"%s\"" msgstr "რეპლიკაციის სლოტის შექმნა \"%s\"" -#: pg_receivewal.c:918 pg_recvlogical.c:1006 +#: pg_receivewal.c:918 pg_recvlogical.c:1026 #, c-format msgid "disconnected" msgstr "გათიშულია" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:1010 +#: pg_receivewal.c:922 pg_recvlogical.c:1030 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "გათიშულია; თავიდან ცდამდე დაყოვნება %d წამია" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:83 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -2146,7 +2229,7 @@ msgstr "" "\n" " \n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:87 #, c-format msgid "" "\n" @@ -2155,31 +2238,43 @@ msgstr "" "\n" "შესასრულებელი ქმედებები:\n" -#: pg_recvlogical.c:91 +#: pg_recvlogical.c:90 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr " --start რეპლიკაციის სლოტში ნაკადის გაშვება (სლოტის სახელისთვის იხილეთ --slot)\n" -#: pg_recvlogical.c:94 +#: pg_recvlogical.c:93 +#, c-format +#| msgid "" +#| " --includedir show location of C header files of the client\n" +#| " interfaces\n" +msgid "" +" --failover enable replication slot synchronization to standby servers when\n" +" creating a slot\n" +msgstr "" +" --failover ჩართავს რეპლიკაციის სლოტის სინქრონიზაციას უქმე სერვერებთან\n" +" სლოტის შექმნისას\n" + +#: pg_recvlogical.c:95 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=FILE ჟურნალის მითითებულ ფაილში მიღება. stdout-ისთვის -\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:96 #, c-format msgid "" " -F --fsync-interval=SECS\n" " time between fsyncs to the output file (default: %d)\n" msgstr "" " -F --fsync-interval=SECS\n" -" შუალედი გამოსატანი ფაილის fsync-ებს შორის (ნაგულისხმები: %d)\n" +" შუალედი გამოსატანი ფაილის fsync-ებს შორის (ნაგულისხმევი: %d)\n" -#: pg_recvlogical.c:98 +#: pg_recvlogical.c:99 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN ნაკადის დასაწყისი არსებული სლოტისთვის\n" -#: pg_recvlogical.c:100 +#: pg_recvlogical.c:101 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -2190,280 +2285,286 @@ msgstr "" " გამოტანის დამატებისთვის მითითებული სახელის, არასავალდებულო მნიშვნელობით,\n" " გადაცემა\n" -#: pg_recvlogical.c:103 +#: pg_recvlogical.c:104 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" -msgstr " -P, --plugin=PLUGIN გამოტანის მითითებული დამატების გამოყენება (ნაგულისხმები: %s)\n" +msgstr " -P, --plugin=PLUGIN გამოტანის მითითებული დამატების გამოყენება (ნაგულისხმევი: %s)\n" -#: pg_recvlogical.c:106 +#: pg_recvlogical.c:107 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOTNAME ლოგიკური რეპლიკაციის სლოტის სახელი\n" -#: pg_recvlogical.c:107 +#: pg_recvlogical.c:108 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr " -t, --two-phase სლოტის შექმნისას მომზადებული ტრანზაქციების დეკოდერის ჩართვა\n" -#: pg_recvlogical.c:112 +#: pg_recvlogical.c:113 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=DBNAME მისაერთებელი ბაზის სახელი\n" -#: pg_recvlogical.c:145 +#: pg_recvlogical.c:146 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "ჩაწერის დადასტურება %X/%X-მდე, %X/%X-მდე მოცილება (სლოტი %s)" -#: pg_recvlogical.c:169 receivelog.c:360 +#: pg_recvlogical.c:170 receivelog.c:359 #, c-format msgid "could not send feedback packet: %s" msgstr "უკუკავშირის პაკეტის გაგზავნის შეცდომა: %s" -#: pg_recvlogical.c:239 +#: pg_recvlogical.c:240 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "ჟურნალის ნაკადის დაწყება მისამართზე %X/%X (სლოტი %s)" -#: pg_recvlogical.c:281 +#: pg_recvlogical.c:282 #, c-format msgid "streaming initiated" msgstr "ნაკადი ინიცირებულია" -#: pg_recvlogical.c:346 +#: pg_recvlogical.c:347 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ჟურნალის ფაილის გახსნის შეცდომა \"%s\": %m" -#: pg_recvlogical.c:375 receivelog.c:882 +#: pg_recvlogical.c:376 receivelog.c:889 #, c-format msgid "invalid socket: %s" msgstr "არასწორი სოკეტი: %s" -#: pg_recvlogical.c:428 receivelog.c:910 +#: pg_recvlogical.c:429 receivelog.c:917 #, c-format msgid "%s() failed: %m" msgstr "%s()-ის შეცდომა: %m" -#: pg_recvlogical.c:435 receivelog.c:959 +#: pg_recvlogical.c:436 receivelog.c:966 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "\"WAL\" ნაკადიდან მონაცემების მიღების შეცდომა: %s" -#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 -#: receivelog.c:1066 +#: pg_recvlogical.c:478 pg_recvlogical.c:529 receivelog.c:1010 +#: receivelog.c:1073 #, c-format msgid "streaming header too small: %d" msgstr "ნაკადის თავსართი ძალიან პატარაა: %d" -#: pg_recvlogical.c:512 receivelog.c:843 +#: pg_recvlogical.c:513 receivelog.c:846 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "ნაკადის უცნობი თავსართი: \"%c\"" -#: pg_recvlogical.c:566 pg_recvlogical.c:578 +#: pg_recvlogical.c:567 pg_recvlogical.c:579 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "%d ბაიტის ჩაწერის შეცდომა ჟურნალის ფაილში \"%s\": %m" -#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:637 receivelog.c:641 receivelog.c:678 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "რეპლიკაციის ნაკადის მოულოდნელი დასასრული: %s" -#: pg_recvlogical.c:796 +#: pg_recvlogical.c:802 #, c-format msgid "could not parse start position \"%s\"" msgstr "საწყისი მდებარეობის დამუშავების შეცდომა: %s" -#: pg_recvlogical.c:874 +#: pg_recvlogical.c:880 #, c-format msgid "no slot specified" msgstr "სლოტი მითითებული არაა" -#: pg_recvlogical.c:881 +#: pg_recvlogical.c:887 #, c-format msgid "no target file specified" msgstr "სამიზნე ფაილი მითითებული არაა" -#: pg_recvlogical.c:888 +#: pg_recvlogical.c:894 #, c-format msgid "no database specified" msgstr "ბაზა მითითებული არაა" -#: pg_recvlogical.c:895 +#: pg_recvlogical.c:901 #, c-format msgid "at least one action needs to be specified" msgstr "საჭიროა, სულ ცოტა, ერთი ქმედების მითითება" -#: pg_recvlogical.c:902 +#: pg_recvlogical.c:908 #, 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:915 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "--create-slot -ს და --drop-slot-ს --startpos -თან ერთად ვერ გამოიყენებთ" -#: pg_recvlogical.c:916 +#: pg_recvlogical.c:922 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos -ის მითითება მხოლოდ --start -თან ერთად შეიძლება" -#: pg_recvlogical.c:923 +#: pg_recvlogical.c:931 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase -ის მითითება მხოლოდ --create-slot -თან ერთად შეიძლება" -#: pg_recvlogical.c:956 +#: pg_recvlogical.c:938 +#, c-format +#| msgid "--two-phase may only be specified with --create-slot" +msgid "--failover may only be specified with --create-slot" +msgstr "--failover პარამეტრის მითითება, მხოლოდ, --create-slot პარამეტრთან ერთად შეგიძლიათ" + +#: pg_recvlogical.c:975 #, c-format msgid "could not establish database-specific replication connection" msgstr "ბაზაზე-დამოკიდებული რეპლიკაციის შეერთების დამყარების შეცდომა" -#: pg_recvlogical.c:1056 +#: pg_recvlogical.c:1076 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "ბოლო მდებარეობა %X/%X keepalive-ის მიერ მიღწეული" -#: pg_recvlogical.c:1061 +#: pg_recvlogical.c:1081 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "ბოლო მდებარეობა %X/%X WAL ჩანაწერის მიერ მიღწეულია მისამართზე %X/%X" -#: receivelog.c:66 +#: receivelog.c:65 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "არქივის სტატუსის ფაილის \"%s\" შექმნის შეცდომა: %s" -#: receivelog.c:73 +#: receivelog.c:72 #, c-format msgid "could not close archive status file \"%s\": %s" msgstr "არქივის სტატუსის ფაილის \"%s\" დახურვის შეცდომა: %s" -#: receivelog.c:122 +#: receivelog.c:121 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "წინასწარ-ჩაწერადი ჟურნალის ფაილის \"%s\" ზომის მიღების შეცდომა: %s" -#: receivelog.c:133 +#: receivelog.c:132 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "წინასწარ-ჩაწერადი ჟურნალის არსებული ფაილის \"%s\" გახსნის შეცდომა: %s" -#: receivelog.c:142 +#: receivelog.c:141 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "წინასწარ-ჩაწერადი ჟურნალის არსებული ფაილის \"%s\" fsync()-ის შეცდომა: %s" -#: receivelog.c:157 +#: receivelog.c:156 #, c-format msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" msgstr[0] "წინასწარ-ჩაწერადი ჟურნალის ფაილს \"%s\" აქვს %zd ბაიტი. უნდა იყოს 0 ან %d" msgstr[1] "წინასწარ-ჩაწერადი ჟურნალის ფაილს \"%s\" აქვს %zd ბაიტი. უნდა იყოს 0 ან %d" -#: receivelog.c:175 +#: receivelog.c:174 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "წინასწარ-ჩაწერადი ჟურნალის არსებული ფაილის \"%s\" გახსნის შეცდომა: %s" -#: receivelog.c:216 +#: receivelog.c:215 #, c-format msgid "not renaming \"%s\", segment is not complete" msgstr "\"%s\"-ის სახელი არ შეიცვლება. სეგმენტი დაუსრულებელია" -#: receivelog.c:227 receivelog.c:317 receivelog.c:688 +#: receivelog.c:226 receivelog.c:316 receivelog.c:687 #, c-format msgid "could not close file \"%s\": %s" msgstr "ფაილის (\"%s\") დახურვის შეცდომა: %s" -#: receivelog.c:288 +#: receivelog.c:287 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "სერვერის პასუხში მოულოდნელი ისტორიის ფაილის სახელია, დროის ხაზისთვის %u: %s" -#: receivelog.c:297 +#: receivelog.c:296 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "დროის ხაზის ისტორიის ფაილის (%s) შექმნის შეცდომა: %s" -#: receivelog.c:304 +#: receivelog.c:303 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "დროის ხაზის ისტორიის ფაილის (%s) ჩაწერის შეცდომა: %s" -#: receivelog.c:394 +#: receivelog.c:393 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "სერვერის შეუთავსებელი ვერსია %s: კლიენტს ნაკადის მხარდაჭერა სერვერებიდან, რომლის ვერსიაც დაბალია %s-ზე, არ გააჩნია" -#: receivelog.c:403 +#: receivelog.c:402 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "სერვერის შეუთავსებელი ვერსია %s: კლიენტს ნაკადის მხარდაჭერა სერვერებიდან, რომლის ვერსიაც მაღალია %s-ზე, არ გააჩნია" -#: receivelog.c:508 +#: receivelog.c:507 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "სისტემის იდენტიფიკატორი ბაზს მარქაფსა და ნაკადურ შეერთებას შორის არ ემთხვევა" -#: receivelog.c:516 +#: receivelog.c:515 #, c-format msgid "starting timeline %u is not present in the server" msgstr "დაწყების დროის ხაზი %u სერვერზე არ არსებობს" -#: receivelog.c:555 +#: receivelog.c:554 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "მოულოდნელი პასუხი TIMELINE_HISTORY ბრძანებაზე: მივიღე %d მწკრივი და %d ველი, ველოდებოდი %d მწკრივს და %d ველს" -#: receivelog.c:626 +#: receivelog.c:625 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "სერვერის პასუხში მოულოდნელი შემდეგი დროის ხაზია (%u), დროის ხაზის შემდეგ: %u" -#: receivelog.c:632 +#: receivelog.c:631 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "სერვერმა შეწყვიტა დროის ხაზის %u ნაკადი მისამართზე %X/%X, მაგრამ მოიწერა, რომ შემდეგი დროის ხაზი %u მისამართზე %X/%X იწყება" -#: receivelog.c:672 +#: receivelog.c:671 #, c-format msgid "replication stream was terminated before stop point" msgstr "რეპლიკაციის ნაკადი გაჩერების წერტილამდე შეწყდა" -#: receivelog.c:718 +#: receivelog.c:717 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "მოულოდნელი შედეგების ნაკრები დროის-ხაზის-დამთავრების შემდეგ: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ველს" -#: receivelog.c:727 +#: receivelog.c:726 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "შემდეგი დროის ხაზის დაწყების წერტილის (%s) დამუშავების შეცდომა" -#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 +#: receivelog.c:774 receivelog.c:1029 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "ფაილის (\"%s\") fsync-ის შეცდომა: %s" -#: receivelog.c:1083 +#: receivelog.c:1090 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "მიღებულია წინასწარ-ჩაწერადი ჟურნალის ჩანაწერი წანაცვლებისთვის %u მაშინ, როცა ფაილები ღია არაა" -#: receivelog.c:1093 +#: receivelog.c:1100 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "მიღებული WAL მონაცემის წანაცვლება %08x, მოველოდი %08x" -#: receivelog.c:1128 +#: receivelog.c:1135 #, c-format msgid "could not write %d bytes to WAL file \"%s\": %s" msgstr "%d ბაიტის WAL ფაილში (\"%s\") ჩაწერის შეცდომა: %s" -#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 +#: receivelog.c:1160 receivelog.c:1200 receivelog.c:1228 #, c-format msgid "could not send copy-end packet: %s" msgstr "copy-end პაკეტის გაგზავნის შეცდომა: %s" @@ -2477,11 +2578,6 @@ msgstr "პაროლი: " msgid "could not connect to server" msgstr "სერვერთან მიერთების პრობლემა" -#: streamutil.c:230 -#, c-format -msgid "could not clear \"search_path\": %s" -msgstr "\"search_path\"-ის გასუფთავების პრობლემა: %s" - #: streamutil.c:246 #, c-format msgid "could not determine server setting for \"integer_datetimes\"" @@ -2492,69 +2588,69 @@ msgstr "სერვერის პარამეტრის \"integer_dateti msgid "\"integer_datetimes\" compile flag does not match server" msgstr "აგებისას მითითებული ალამი \"integer_datetimes\" სერვერისას არ ემთხვვევა" -#: streamutil.c:372 +#: 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 "შეცდომა WAL-ის სეგმენტის ზომის მიღებისას: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ან მეტ ველს" -#: streamutil.c:382 +#: streamutil.c:314 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL სეგმენტის ზომის დამუშავების შეცდომა" -#: streamutil.c:400 +#: streamutil.c:332 #, c-format msgid "remote server reported invalid WAL segment size (%d byte)" msgid_plural "remote server reported invalid WAL segment size (%d bytes)" msgstr[0] "დაშორებულმა სერვერმა არასწორი WAL სეგმენტის ზომის (%d ბაიტი) შესახებ შეგვატყობინა" msgstr[1] "დაშორებულმა სერვერმა არასწორი WAL სეგმენტის ზომის (%d ბაიტი) შესახებ შეგვატყობინა" -#: streamutil.c:404 +#: streamutil.c:336 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WAL სეგმენტის ზომა ორის ხარისხი უნდა იყოს, შუალედიდან 1მბ-1გბ." -#: streamutil.c:446 +#: streamutil.c:378 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "ჯგუფის წვდომის ალმის გამოთხოვის შეცდომა: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ან მეტ ველს" -#: streamutil.c:455 +#: streamutil.c:387 #, c-format msgid "group access flag could not be parsed: %s" msgstr "ჯგუფის წვდომის ალმის დამუშავების შეცდომა: %s" -#: streamutil.c:498 streamutil.c:535 +#: streamutil.c:430 streamutil.c:467 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "სისტემის ამოცნობის შეცდომა: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ან მეტ ველს" -#: streamutil.c:587 +#: streamutil.c:519 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "რეპლიკაციის სლოტის (\"%s\") წაკითხვის შეცდომა: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ველს" -#: streamutil.c:599 +#: streamutil.c:531 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "რეპლიკაციის სლოტი \"%s\"არ არსებობს" -#: streamutil.c:610 +#: streamutil.c:542 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "მოველოდი ფიზიკური რეპლიკაციის სლოტს. მივიღე: %s" -#: streamutil.c:624 +#: streamutil.c:556 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "restart_lsn \"%s\"-ის დამუშავების შეცდომა რეპლიკაციის სლოტისთვის \"%s\"" -#: streamutil.c:741 +#: streamutil.c:678 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "რეპლიკაციის სლოტის (\"%s\") შექმნის შეცდომა: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ველს" -#: streamutil.c:785 +#: streamutil.c:722 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "რეპლიკაციის სლოტის (\"%s\") გადაგდების შეცდომა: მივიღე %d მწკრივი და %d ველი. მოველოდი %d მწკრივს და %d ველს" @@ -2587,6 +2683,42 @@ msgstr "წაშლა შეკუმშვით მხარდაუჭე msgid "could not close compression stream" msgstr "შეკუმშვის ნაკადის დახურვის შეცდომა" +#, c-format +#~ msgid "" +#~ " --config-file=FILENAME use specified main server configuration\n" +#~ " file when running target cluster\n" +#~ msgstr "" +#~ " --config-file=FILENAME სამიზნე კლასტერის გაშვებისას მთავარი \n" +#~ " სერვერის მითითებული კონფიგურაციის ფაილში გამოყენება\n" + +#, c-format +#~ msgid " -s, --socket-directory=DIR socket directory to use (default current directory)\n" +#~ msgstr " -s, --socket-directory=DIR სოკეტის საქაღალდე (ნაგულისხმევია მიმდინარე.)\n" + +#, c-format +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" + +#, c-format +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" + +#, c-format +#~ msgid "Consider increasing max_logical_replication_workers to at least %d." +#~ msgstr "განიხილეთ max_logical_replication_workers-ის გაზრდა მინიმუმ %d-მდე." + +#, c-format +#~ msgid "Consider increasing max_replication_slots to at least %d." +#~ msgstr "განიხილეთ max_replication_slots-ის გაზრდა მინიმუმ %d-მდე." + +#, c-format +#~ msgid "Consider increasing max_wal_senders to at least %d." +#~ msgstr "განიხილეთ max_wal_senders-ის გაზრდა მინიმუმ %d-მდე." + +#, c-format +#~ msgid "Consider increasing max_worker_processes to at least %d." +#~ msgstr "განიხილეთ max_worker_processes-ის გაზრდა მინიმუმ %d-მდე." + #, c-format #~ msgid "This build does not support compression with %s." #~ msgstr "ამ აგებაში %s-ით შეკუმშვის მხარდაჭრა არ არსებობს." @@ -2601,6 +2733,10 @@ msgstr "შეკუმშვის ნაკადის დახურვი #~ msgid "could not check file \"%s\"" #~ msgstr "ფაილის შემოწმება შეუძლებელია: %s" +#, c-format +#~ msgid "could not clear search_path: %s" +#~ msgstr "search_path-ის გასუფთავების პრობლემა: %s" + #, c-format #~ msgid "could not determine seek position in file \"%s\": %s" #~ msgstr "ფაილში %s გადახვევის მდებარეობის დადგენა შეუძლებელია: %s" @@ -2613,6 +2749,22 @@ msgstr "შეკუმშვის ნაკადის დახურვი #~ msgid "could not set compression flag for %s: %s" #~ msgstr "%s-სთვის შეკუმშვის დონის დაყენების შეცდომა: %s" +#, c-format +#~ msgid "duplicate database \"%s\"" +#~ msgstr "განმეორებადი ბაზა \"%s\"" + +#, c-format +#~ msgid "duplicate publication \"%s\"" +#~ msgstr "განმეორებადი გამოცემა \"%s\"" + +#, c-format +#~ msgid "duplicate replication slot \"%s\"" +#~ msgstr "განმეორებადი რეპლიკაციის სლოტი \"%s\"" + +#, c-format +#~ msgid "duplicate subscription \"%s\"" +#~ msgstr "განმეორებადი გამოწერა \"%s\"" + #, c-format #~ msgid "log streamer with pid %d exiting" #~ msgstr "ჟურნალის ნაკადის პროცესი pid-ით %d ასრულებს მუშაობას" @@ -2625,10 +2777,18 @@ msgstr "შეკუმშვის ნაკადის დახურვი #~ msgid "primary has replication slot \"%s\"" #~ msgstr "ძირითადს აქვს რეპლიკაციის სლოტი \"%s\"" +#, c-format +#~ msgid "standby is up and running" +#~ msgstr "უქმე ჩართულია და მუშაობს" + #, c-format #~ msgid "standby server disconnected from the primary" #~ msgstr "უქმე სერვერ გაითიშა ძირითადისგან" +#, c-format +#~ msgid "subscriber failed to change system identifier: exit code: %d" +#~ msgstr "გამომწერის სისტემური იდენტიფიკატორის შეცვლა ჩავარდა: გამოსვლის კოდი: %d" + #, c-format #~ msgid "symlinks are not supported on this platform" #~ msgstr "სიმბმულები ამ პლატფორმაზე მხარდაჭერილი არაა" @@ -2648,3 +2808,7 @@ msgstr "შეკუმშვის ნაკადის დახურვი #, c-format #~ msgid "unknown compression option \"%s\"" #~ msgstr "შეკუმშვის უცნობი პარამეტრი: \"%s\"" + +#, c-format +#~ msgid "validating connection string on subscriber" +#~ msgstr "შეერთების სტრიქონის დადასტურება გამომწერზე" diff --git a/src/bin/pg_basebackup/po/ko.po b/src/bin/pg_basebackup/po/ko.po index bbd19de74311b..08861d1022c3e 100644 --- a/src/bin/pg_basebackup/po/ko.po +++ b/src/bin/pg_basebackup/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_basebackup (PostgreSQL) 13\n" +"Project-Id-Version: pg_basebackup (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-05 01:15+0000\n" -"PO-Revision-Date: 2020-10-06 11:02+0900\n" +"POT-Creation-Date: 2025-01-17 04:49+0000\n" +"PO-Revision-Date: 2025-01-18 02:23+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,167 +17,484 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:236 -#, c-format -msgid "fatal: " -msgstr "심각: " - -#: ../../../src/common/logging.c:243 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "오류: " -#: ../../../src/common/logging.c:250 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "경고: " +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "상세정보: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "힌트: " + +#: ../../common/compression.c:132 ../../common/compression.c:141 +#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 +#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 +#: bbstreamer_zstd.c:284 +#, c-format +msgid "this build does not support compression with %s" +msgstr "이 버전은 %s 압축 기능을 포함 하지 않고 빌드 되었습니다." + +#: ../../common/compression.c:205 +msgid "found empty string where a compression option was expected" +msgstr "압축 옵션을 지정하는 자리에 빈 문자열이 있습니다." + +#: ../../common/compression.c:244 +#, c-format +msgid "unrecognized compression option: \"%s\"" +msgstr "인식할 수 없는 압축 옵션: \"%s\"" + +#: ../../common/compression.c:283 +#, c-format +msgid "compression option \"%s\" requires a value" +msgstr "\"%s\" 압축 옵션에는 그 지정값이 필요합니다." + +#: ../../common/compression.c:292 +#, c-format +msgid "value for compression option \"%s\" must be an integer" +msgstr "\"%s\" 압축 옵션 값은 정수여야 합니다." + +#: ../../common/compression.c:331 +#, c-format +msgid "value for compression option \"%s\" must be a Boolean value" +msgstr "\"%s\" 압축 옵션 값은 부울린형여야 합니다." + +#: ../../common/compression.c:379 +#, c-format +msgid "compression algorithm \"%s\" does not accept a compression level" +msgstr "\"%s\" 압축 알고리즘은 압축 수준을 지정할 수 없습니다." + +#: ../../common/compression.c:386 +#, c-format +msgid "" +"compression algorithm \"%s\" expects a compression level between %d and %d " +"(default at %d)" +msgstr "" +"\"%s\" 압축 알고리즘은 압축 수준값으로 %d에서 %d까지만 허용함 (기본값 %d)" + +#: ../../common/compression.c:397 +#, c-format +msgid "compression algorithm \"%s\" does not accept a worker count" +msgstr "\"%s\" 압축 알고리즘은 병렬 작업 수를 지정할 수 없습니다." + +#: ../../common/compression.c:408 +#, c-format +msgid "compression algorithm \"%s\" does not support long-distance mode" +msgstr "\"%s\" 압축 알고리즘은 원거리 모드를 지원하지 않습니다." + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "읽기 용 \"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "\"%s\" 파일을 닫을 수 없음: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 불일치" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"바이트 순서 일치하지 않는 문제\n" +"바이트 순서 정보는 pg_control 파일을 저장할 때 사용되는데,\n" +"이 파일의 바이트 순서 정보와 이 프로그램에서 사용하는 순서 정보가 다릅니다.\n" +"이럴 경우, 출력 결과가 바르지 않을 수 있고,\n" +"설치된 PostgreSQL 프로그램과 데이터 디렉터리가 호환되지 않을 수 있습니다." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "\"%s\" 파일 쓰기 실패: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일 fsync 실패: %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 -#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:162 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format msgid "out of memory\n" msgstr "메모리 부족\n" -#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:154 +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 #, c-format msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 복제할 수 없음(내부 오류)\n" -#: ../../common/file_utils.c:79 ../../common/file_utils.c:181 -#: pg_receivewal.c:266 pg_recvlogical.c:340 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위해 파일 시스템 동기화 실패: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" -#: ../../common/file_utils.c:158 pg_receivewal.c:169 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "\"%s\" 디렉터리 열 수 없음: %m" -#: ../../common/file_utils.c:192 pg_receivewal.c:337 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" -#: ../../common/file_utils.c:224 ../../common/file_utils.c:283 -#: ../../common/file_utils.c:357 ../../fe_utils/recovery_gen.c:134 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" -#: ../../common/file_utils.c:295 ../../common/file_utils.c:365 -#: pg_recvlogical.c:193 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "\"%s\" 파일 fsync 실패: %m" +msgid "could not open process token: error code %lu" +msgstr "프로세스 토큰을 열 수 없음: 오류 코드 %lu" -#: ../../common/file_utils.c:375 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "SID를 할당할 수 없음: 오류 코드 %lu" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "제한된 토큰을 생성할 수 없습니다: %lu" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "\"%s\" 명령용 프로세스를 시작할 수 없음: 오류 코드 %lu" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "제한된 토큰으로 다시 실행할 수 없음: 오류 코드 %lu" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "하위 프로세스의 종료 코드를 구할 수 없음: 오류 코드 %lu" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값은 \"%s\" 옵션값으로 유효하지 않음" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 값은 %d부터 %d까지 지정할 수 있습니다." + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" -#: ../../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 +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:334 #, c-format 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:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, c-format msgid "could not write to file \"%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 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "\"%s\" 파일을 만들 수 없음: %m" -#: pg_basebackup.c:224 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + +#: bbstreamer_file.c:275 +#, c-format +msgid "unexpected state while extracting archive" +msgstr "아카이브 추출 중 예상치 못한 상태값 발견" + +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" + +#: bbstreamer_file.c:326 +#, c-format +msgid "could not set permissions on directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 액세스 권한을 지정할 수 없음: %m" + +#: bbstreamer_file.c:345 +#, c-format +msgid "could not create symbolic link from \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 심볼릭 링크로 만들 수 없음: %m" + +#: bbstreamer_file.c:365 +#, c-format +msgid "could not set permissions on file \"%s\": %m" +msgstr "파일 \"%s\" 의 접근권한을 지정할 수 없음: %m" + +#: bbstreamer_gzip.c:95 +#, c-format +msgid "could not create compressed file \"%s\": %m" +msgstr "\"%s\" 압축 파일 만들기 실패: %m" + +#: bbstreamer_gzip.c:103 +#, c-format +msgid "could not duplicate stdout: %m" +msgstr "stdout을 중복할 수 없음: %m" + +#: bbstreamer_gzip.c:107 +#, c-format +msgid "could not open output file: %m" +msgstr "출력파일을 열 수 없음: %m" + +#: bbstreamer_gzip.c:111 +#, c-format +msgid "could not set compression level %d: %s" +msgstr "잘못된 압축 수위 %d: %s" + +#: bbstreamer_gzip.c:143 +#, c-format +msgid "could not write to compressed file \"%s\": %s" +msgstr "\"%s\" 압축 파일 쓰기 실패: %s" + +#: bbstreamer_gzip.c:167 +#, c-format +msgid "could not close compressed file \"%s\": %m" +msgstr "\"%s\" 압축 파일 닫기 실패: %m" + +#: bbstreamer_gzip.c:245 walmethods.c:880 +#, c-format +msgid "could not initialize compression library" +msgstr "압축 라이브러리를 초기화할 수 없음" + +#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 +#, c-format +msgid "could not decompress data: %s" +msgstr "압축 풀기 실패: %s" + +#: bbstreamer_inject.c:189 +#, c-format +msgid "unexpected state while injecting recovery settings" +msgstr "복구 관련 설정을 추가 하는 도중 예상치 못한 상태 발견" + +#: bbstreamer_lz4.c:95 +#, c-format +msgid "could not create lz4 compression context: %s" +msgstr "lz4 압축 컨텍스트 정보를 생성할 수 없습니다: %s" + +#: bbstreamer_lz4.c:140 +#, c-format +msgid "could not write lz4 header: %s" +msgstr "lz4 헤더를 쓸 수 없음: %s" + +#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 +#, c-format +msgid "could not compress data: %s" +msgstr "자료를 압축할 수 없음: %s" + +#: bbstreamer_lz4.c:241 +#, c-format +msgid "could not end lz4 compression: %s" +msgstr "lz4 압축을 끝낼 수 없음: %s" + +#: bbstreamer_lz4.c:293 +#, c-format +msgid "could not initialize compression library: %s" +msgstr "압축 라이브러리를 초기화 할 수 없음: %s" + +#: bbstreamer_tar.c:244 +#, c-format +msgid "tar file trailer exceeds 2 blocks" +msgstr "tar 파일 끝부분에서 2 블록이 초과됨" + +#: bbstreamer_tar.c:249 +#, c-format +msgid "unexpected state while parsing tar archive" +msgstr "tar 아카이브 분석 중 예상치 못한 상태 발견" + +#: bbstreamer_tar.c:292 +#, c-format +msgid "tar member has empty name" +msgstr "tar 맴버에 이름이 없음" + +#: bbstreamer_tar.c:326 +#, c-format +msgid "COPY stream ended before last file was finished" +msgstr "마지막 파일을 끝내기 전에 COPY 스트림이 끝났음" + +#: bbstreamer_zstd.c:85 +#, c-format +msgid "could not create zstd compression context" +msgstr "zstd 압축 컨텍스트를 만들 수 없음" + +#: bbstreamer_zstd.c:91 +#, c-format +msgid "could not set zstd compression level to %d: %s" +msgstr "zstd 압축 수준을 %d 값으로 지정할 수 없음: %s" + +#: bbstreamer_zstd.c:105 +#, c-format +msgid "could not set compression worker count to %d: %s" +msgstr "압축용 병렬 작업자 수를 %d 값으로 지정할 수 없음: %s" + +#: bbstreamer_zstd.c:116 +#, c-format +msgid "could not enable long-distance mode: %s" +msgstr "원거리 모드를 활성화 할 수 없음: %s" + +#: bbstreamer_zstd.c:275 +#, c-format +msgid "could not create zstd decompression context" +msgstr "zstd 압축 컨텍스트를 만들 수 없음" + +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "\"%s\" 디렉터리를 지우는 중" -#: pg_basebackup.c:226 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "데이터 디렉터리 삭제 실패" -#: pg_basebackup.c:230 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "\"%s\" 데이터 디렉터리의 내용을 지우는 중" -#: pg_basebackup.c:232 +#: pg_basebackup.c:253 #, c-format msgid "failed to remove contents of data directory" msgstr "데이터 디렉터리의 내용을 지울 수 없음" -#: pg_basebackup.c:237 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "\"%s\" WAL 디렉터리를 지우는 중" -#: pg_basebackup.c:239 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "WAL 디렉터리 삭제 실패" -#: pg_basebackup.c:243 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "\"%s\" WAL 디렉터리 내용을 지우는 중" -#: pg_basebackup.c:245 +#: pg_basebackup.c:266 #, c-format msgid "failed to remove contents of WAL directory" msgstr "WAL 디렉터리의 내용을 지울 수 없음" -#: pg_basebackup.c:251 +#: pg_basebackup.c:272 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "사용자 요청으로 \"%s\" 데이터 디렉터리를 지우지 않았음" -#: pg_basebackup.c:254 +#: pg_basebackup.c:275 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "사용자 요청으로 \"%s\" WAL 디렉터리를 지우지 않았음" -#: pg_basebackup.c:258 +#: pg_basebackup.c:279 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "아직 마무리 되지 않은 테이블스페이스 디렉터리 변경함" -#: pg_basebackup.c:299 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "디렉터리 이름이 너무 김" -#: pg_basebackup.c:309 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "테이블스페이스 맵핑 하는 곳에서 \"=\" 문자가 중복 되어 있음" -#: pg_basebackup.c:321 +#: pg_basebackup.c:347 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "" "\"%s\" 형식의 테이블스페이스 맵핑이 잘못 되었음, \"OLDDIR=NEWDIR\" 형식이어" "야 함" -#: pg_basebackup.c:333 +#: pg_basebackup.c:366 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "테이블스페이스 맵핑용 옛 디렉터리가 절대 경로가 아님: %s" -#: pg_basebackup.c:340 +#: pg_basebackup.c:370 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "테이블스페이스 맵핑용 새 디렉터리가 절대 경로가 아님: %s" -#: pg_basebackup.c:379 +#: pg_basebackup.c:392 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -187,17 +504,19 @@ msgstr "" "다.\n" "\n" -#: pg_basebackup.c:381 pg_receivewal.c:79 pg_recvlogical.c:75 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_basebackup.c:382 pg_receivewal.c:80 pg_recvlogical.c:76 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [옵션]...\n" -#: pg_basebackup.c:383 +#: pg_basebackup.c:396 #, c-format msgid "" "\n" @@ -206,17 +525,26 @@ msgstr "" "\n" "출력물을 제어야하는 옵션들:\n" -#: pg_basebackup.c:384 +#: pg_basebackup.c:397 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, --pgdata=디렉터리 베이스 백업 결과물이 저장될 디렉터리\n" -#: pg_basebackup.c:385 +#: pg_basebackup.c:398 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr " -F, --format=p|t 출력 형식 (plain (초기값), tar)\n" -#: pg_basebackup.c:386 +#: pg_basebackup.c:399 +#, c-format +msgid "" +" -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr "" +" -i, --incremental=이전매니페이스\n" +" 증분 백업\n" + +#: pg_basebackup.c:401 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -226,7 +554,7 @@ msgstr "" " (단위는 kB/s, 또는 숫자 뒤에 \"k\" 또는 \"M\" 단위 " "문자 지정 가능)\n" -#: pg_basebackup.c:388 +#: pg_basebackup.c:403 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -235,7 +563,16 @@ msgstr "" " -R, --write-recovery-conf\n" " 복제를 위한 환경 설정 함\n" -#: pg_basebackup.c:390 +#: pg_basebackup.c:405 +#, c-format +msgid "" +" -t, --target=TARGET[:DETAIL]\n" +" backup target (if other than client)\n" +msgstr "" +" -t, --target=TARGET[:DETAIL]\n" +" 백업 타겟 지정 (이곳 또는 다른 곳)\n" + +#: pg_basebackup.c:407 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -244,12 +581,12 @@ msgstr "" " -T, --tablespace-mapping=옛DIR=새DIR\n" " 테이블스페이스 디렉터리 새 맵핑\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:409 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr " --waldir=WALDIR 트랜잭션 로그 디렉터리 지정\n" -#: pg_basebackup.c:393 +#: pg_basebackup.c:410 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -258,18 +595,26 @@ msgstr "" " -X, --wal-method=none|fetch|stream\n" " 필요한 WAL 파일을 백업하는 방법\n" -#: pg_basebackup.c:395 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip tar 출력물을 압축\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:413 #, c-format msgid "" -" -Z, --compress=0-9 compress tar output with given compression level\n" -msgstr " -Z, --compress=0-9 압축된 tar 파일의 압축 수위 지정\n" +" -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" +" compress on client or server as specified\n" +msgstr "" +" -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" +" 압축 관련 설정\n" -#: pg_basebackup.c:397 +#: pg_basebackup.c:415 +#, c-format +msgid " -Z, --compress=none do not compress tar output\n" +msgstr " -Z, --compress=none tar 출력에서 압축 안함\n" + +#: pg_basebackup.c:416 #, c-format msgid "" "\n" @@ -278,58 +623,58 @@ msgstr "" "\n" "일반 옵션들:\n" -#: pg_basebackup.c:398 +#: pg_basebackup.c:417 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" -" set fast or spread checkpointing\n" +" set fast or spread (default) checkpointing\n" msgstr "" " -c, --checkpoint=fast|spread\n" -" 체크포인트 방법\n" +" 체크포인트 방법, fast 또는 spread (기본값)\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " -C, --create-slot 새 복제 슬롯을 만듬\n" -#: pg_basebackup.c:401 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=라벨 백업 라벨 지정\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:421 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean 오류 발생 시 정리하지 않음\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:422 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " "disk\n" msgstr " -N, --no-sync 디스크 쓰기 뒤 sync 작업 생략\n" -#: pg_basebackup.c:404 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress 진행 과정 보여줌\n" -#: pg_basebackup.c:405 pg_receivewal.c:89 +#: pg_basebackup.c:424 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=슬롯이름 지정한 복제 슬롯을 사용함\n" -#: pg_basebackup.c:406 pg_receivewal.c:91 pg_recvlogical.c:96 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose 자세한 작업 메시지 보여줌\n" -#: pg_basebackup.c:407 pg_receivewal.c:92 pg_recvlogical.c:97 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보 보여주고 마침\n" -#: pg_basebackup.c:408 +#: pg_basebackup.c:427 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -338,7 +683,7 @@ msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " 사용할 manifest 체크섬 알고리즘\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:429 #, c-format msgid "" " --manifest-force-encode\n" @@ -347,23 +692,23 @@ msgstr "" " --manifest-force-encode\n" " manifest 내 모든 파일 이름을 16진수 인코딩함\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:431 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" msgstr " --no-estimate-size 서버측 백업 크기를 예상하지 않음\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest 백업 매니페스트 만들지 않음\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:433 #, c-format msgid "" " --no-slot prevent creation of temporary replication slot\n" msgstr " --no-slot 임시 복제 슬롯 만들지 않음\n" -#: pg_basebackup.c:415 +#: pg_basebackup.c:434 #, c-format msgid "" " --no-verify-checksums\n" @@ -372,12 +717,21 @@ msgstr "" " --no-verify-checksums\n" " 체크섬 검사 안함\n" -#: pg_basebackup.c:417 pg_receivewal.c:94 pg_recvlogical.c:98 +#: pg_basebackup.c:436 +#, c-format +msgid "" +" --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr "" +" --sync-method=METHOD\n" +" 파일을 디스크에 동기화 하는 방법 지정\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_basebackup.c:418 pg_receivewal.c:95 pg_recvlogical.c:99 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "" "\n" @@ -386,22 +740,22 @@ msgstr "" "\n" "연결 옵션들:\n" -#: pg_basebackup.c:419 pg_receivewal.c:96 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=접속문자열 서버 접속 문자열\n" -#: pg_basebackup.c:420 pg_receivewal.c:97 pg_recvlogical.c:101 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=호스트이름 접속할 데이터베이스 서버나 소켓 디렉터리\n" -#: pg_basebackup.c:421 pg_receivewal.c:98 pg_recvlogical.c:102 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=포트 데이터베이스 서버 포트 번호\n" -#: pg_basebackup.c:422 +#: pg_basebackup.c:443 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -411,17 +765,17 @@ msgstr "" " -s, --status-interval=초\n" " 초 단위 매번 서버로 상태 패킷을 보냄\n" -#: pg_basebackup.c:424 pg_receivewal.c:99 pg_recvlogical.c:103 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=사용자 접속할 특정 데이터베이스 사용자\n" -#: pg_basebackup.c:425 pg_receivewal.c:100 pg_recvlogical.c:104 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password 비밀번호 물어 보지 않음\n" -#: pg_basebackup.c:426 pg_receivewal.c:101 pg_recvlogical.c:105 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, c-format msgid "" " -W, --password force password prompt (should happen " @@ -429,7 +783,8 @@ msgid "" msgstr "" " -W, --password 항상 비밀번호 프롬프트 보임 (자동으로 판단 함)\n" -#: pg_basebackup.c:427 pg_receivewal.c:105 pg_recvlogical.c:106 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "" "\n" @@ -438,464 +793,1218 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_basebackup.c:428 pg_receivewal.c:106 pg_recvlogical.c:107 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_basebackup.c:471 +#: pg_basebackup.c:488 +#, c-format +msgid "could not read from ready pipe: %m" +msgstr "준비된 파이프로부터 읽기 실패: %m" + +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:521 +#, c-format +msgid "could not parse write-ahead log location \"%s\"" +msgstr "트랜잭션 로그 위치 \"%s\" 분석 실패" + +#: pg_basebackup.c:596 pg_receivewal.c:600 +#, c-format +msgid "could not finish writing WAL files: %m" +msgstr "WAL 파일 쓰기 마무리 실패: %m" + +#: pg_basebackup.c:642 +#, c-format +msgid "could not create pipe for background process: %m" +msgstr "백그라운드 프로세스를 위한 파이프 만들기 실패: %m" + +#: pg_basebackup.c:676 +#, c-format +msgid "created temporary replication slot \"%s\"" +msgstr "\"%s\" 임시 복제 슬롯을 만듦" + +#: pg_basebackup.c:679 +#, c-format +msgid "created replication slot \"%s\"" +msgstr "\"%s\" 이름의 복제 슬롯을 만듦" + +#: pg_basebackup.c:728 +#, c-format +msgid "could not create background process: %m" +msgstr "백그라운드 프로세스 만들기 실패: %m" + +#: pg_basebackup.c:737 +#, c-format +msgid "could not create background thread: %m" +msgstr "백그라운드 스래드 만들기 실패: %m" + +#: pg_basebackup.c:776 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "\"%s\" 디렉터리가 있지만 비어 있지 않음" + +#: pg_basebackup.c:782 pg_createsubscriber.c:390 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" + +#: pg_basebackup.c:858 +#, 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 테이블스페이스 %*s" + +#: pg_basebackup.c:870 +#, 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 테이블스페이스 (%s%-*.*s)" + +#: pg_basebackup.c:886 +#, 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 테이블스페이스" + +#: pg_basebackup.c:910 +#, c-format +msgid "transfer rate \"%s\" is not a valid value" +msgstr "\"%s\" 전송 속도는 잘못된 값임" + +#: pg_basebackup.c:912 +#, c-format +msgid "invalid transfer rate \"%s\": %m" +msgstr "잘못된 전송 속도 \"%s\": %m" + +#: pg_basebackup.c:919 +#, c-format +msgid "transfer rate must be greater than zero" +msgstr "전송 속도는 0보다 커야 함" + +#: pg_basebackup.c:949 +#, c-format +msgid "invalid --max-rate unit: \"%s\"" +msgstr "잘못된 --max-rate 단위: \"%s\"" + +#: pg_basebackup.c:953 +#, c-format +msgid "transfer rate \"%s\" exceeds integer range" +msgstr "\"%s\" 전송 속도는 정수형 범위가 아님" + +#: pg_basebackup.c:960 +#, c-format +msgid "transfer rate \"%s\" is out of range" +msgstr "\"%s\" 전송 속도는 범위 초과" + +#: pg_basebackup.c:1022 +#, c-format +msgid "could not get COPY data stream: %s" +msgstr "COPY 데이터 스트림을 사용할 수 없음: %s" + +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 +#: receivelog.c:973 +#, c-format +msgid "could not read COPY data: %s" +msgstr "COPY 자료를 읽을 수 없음: %s" + +#: pg_basebackup.c:1043 +#, c-format +msgid "background process terminated unexpectedly" +msgstr "백그라운드 프로세스가 예상치 않게 종료됨" + +#: pg_basebackup.c:1114 +#, c-format +msgid "cannot inject manifest into a compressed tar file" +msgstr "압축된 tar 파일에는 manifest를 넣을 수 없습니다." + +#: pg_basebackup.c:1115 +#, c-format +msgid "" +"Use client-side compression, send the output to a directory rather than " +"standard output, or use %s." +msgstr "" +"결과물을 표준 출력으로 보내지 말고, 디렉터리로 보낸 뒤 클라이언트 측에서 압" +"축 하거나, %s 옵션을 사용하세요." + +#: pg_basebackup.c:1131 +#, c-format +msgid "cannot parse archive \"%s\"" +msgstr "\"%s\" 아카이브를 구문분석할 수 없음" + +#: pg_basebackup.c:1132 +#, c-format +msgid "Only tar archives can be parsed." +msgstr "tar 형식만 구문분석할 수 있음" + +#: pg_basebackup.c:1134 +#, c-format +msgid "Plain format requires pg_basebackup to parse the archive." +msgstr "아카이브를 분석하기 위해서는 일반 양식이어야 합니다." + +#: pg_basebackup.c:1136 +#, c-format +msgid "" +"Using - as the output directory requires pg_basebackup to parse the archive." +msgstr "아카이브를 분석하기 위해 출력 디렉터리 이름으로 - 문자를 사용하세요." + +#: pg_basebackup.c:1138 +#, c-format +msgid "The -R option requires pg_basebackup to parse the archive." +msgstr "아카이브를 분석하기 위해 -R 옵션을 사용하세요." + +#: pg_basebackup.c:1357 +#, c-format +msgid "archives must precede manifest" +msgstr "아카이브 작업은 매니페스트보다 앞서야합니다" + +#: pg_basebackup.c:1372 +#, c-format +msgid "invalid archive name: \"%s\"" +msgstr "잘못된 아카이브 이름: \"%s\"" + +#: pg_basebackup.c:1444 +#, c-format +msgid "unexpected payload data" +msgstr "비정상 payload 자료" + +#: pg_basebackup.c:1587 +#, c-format +msgid "empty COPY message" +msgstr "빈 COPY 메시지" + +#: pg_basebackup.c:1589 +#, c-format +msgid "malformed COPY message of type %d, length %zu" +msgstr "타입 %d의 잘못된 COPY 메시지, 길이: %zu" + +#: pg_basebackup.c:1789 +#, c-format +msgid "incompatible server version %s" +msgstr "호환하지 않는 서버 버전 %s" + +#: pg_basebackup.c:1805 +#, c-format +msgid "Use -X none or -X fetch to disable log streaming." +msgstr "" +"트랜잭션 로그 스트리밍을 사용하지 않으려면 -X none 또는 -X fetch 옵션을 사용" +"하세요." + +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "서버가 증분 백업을 지원하지 않음" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:367 streamutil.c:441 +#: streamutil.c:493 streamutil.c:581 streamutil.c:733 streamutil.c:778 +#, c-format +msgid "could not send replication command \"%s\": %s" +msgstr "\"%s\" 복제 명령을 보낼 수 없음: %s" + +#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "매니페이스 파일을 업로드 할 수 없음: %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#, c-format +msgid "could not upload manifest: unexpected status %s" +msgstr "매니페이스 파일을 업로드 할 수 없음: 예상치 않은 상태 %s" + +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "COPY 자료를 보낼 수 없음: %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "COPY 종료 정보를 보낼 수 없음: %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "매니페이스를 보내는 중 예상치 못한 부가 결과 발견" + +#: pg_basebackup.c:1950 +#, c-format +msgid "backup targets are not supported by this server version" +msgstr "이 서버는 백업 타켓을 지원하지 않음." + +#: pg_basebackup.c:1953 +#, c-format +msgid "recovery configuration cannot be written when a backup target is used" +msgstr "백업 타겟을 사용할 때는 원 환경 설정을 기록할 수 없습니다." + +#: pg_basebackup.c:1980 +#, c-format +msgid "server does not support server-side compression" +msgstr "이 서버는 서버 측 압축을 지원하지 않습니다" + +#: pg_basebackup.c:1990 +#, c-format +msgid "initiating base backup, waiting for checkpoint to complete" +msgstr "베이스 백업을 초기화 중, 체크포인트 완료를 기다리는 중" + +#: pg_basebackup.c:1994 +#, c-format +msgid "waiting for checkpoint" +msgstr "체크포인트가 끝나길 기다리는 중" + +#: pg_basebackup.c:2016 +#, c-format +msgid "could not initiate base backup: %s" +msgstr "베이스 백업을 초기화 할 수 없음: %s" + +#: pg_basebackup.c:2019 +#, c-format +msgid "" +"server returned unexpected response to BASE_BACKUP command; got %d rows and " +"%d fields, expected %d rows and %d fields" +msgstr "" +"서버가 BASE_BACKUP 명령에 대해서 잘못된 응답을 했습니다; 응답값: %d 로우, %d " +"필드, (기대값: %d 로우, %d 필드)" + +#: pg_basebackup.c:2025 +#, c-format +msgid "checkpoint completed" +msgstr "체크포인트 완료" + +#: pg_basebackup.c:2039 +#, c-format +msgid "write-ahead log start point: %s on timeline %u" +msgstr "트랙잭션 로그 시작 위치: %s, 타임라인: %u" + +#: pg_basebackup.c:2047 +#, c-format +msgid "could not get backup header: %s" +msgstr "백업 헤더를 구할 수 없음: %s" + +#: pg_basebackup.c:2050 +#, c-format +msgid "no data returned from server" +msgstr "서버가 아무런 자료도 주지 않았음" + +#: pg_basebackup.c:2093 +#, c-format +msgid "can only write single tablespace to stdout, database has %d" +msgstr "" +"표준 출력으로는 하나의 테이블스페이스만 쓸 수 있음, 데이터베이스는 %d 개의 테" +"이블 스페이스가 있음" + +#: pg_basebackup.c:2106 +#, c-format +msgid "starting background WAL receiver" +msgstr "백그라운드 WAL 수신자 시작 중" + +#: pg_basebackup.c:2189 +#, c-format +msgid "backup failed: %s" +msgstr "백업 실패: %s" + +#: pg_basebackup.c:2192 +#, c-format +msgid "no write-ahead log end position returned from server" +msgstr "서버에서 트랜잭션 로그 마지막 위치가 수신 되지 않았음" + +#: pg_basebackup.c:2195 +#, c-format +msgid "write-ahead log end point: %s" +msgstr "트랜잭션 로그 마지막 위치: %s" + +#: pg_basebackup.c:2206 +#, c-format +msgid "checksum error occurred" +msgstr "체크섬 오류 발생" + +#: pg_basebackup.c:2211 +#, c-format +msgid "final receive failed: %s" +msgstr "수신 작업 마무리 실패: %s" + +#: pg_basebackup.c:2235 +#, c-format +msgid "waiting for background process to finish streaming ..." +msgstr "스트리밍을 끝내기 위해서 백그라운드 프로세스를 기다리는 중 ..." + +#: pg_basebackup.c:2239 +#, c-format +msgid "could not send command to background pipe: %m" +msgstr "백그라운드 파이프로 명령을 보낼 수 없음: %m" + +#: pg_basebackup.c:2244 +#, c-format +msgid "could not wait for child process: %m" +msgstr "하위 프로세스를 기다릴 수 없음: %m" + +#: pg_basebackup.c:2246 +#, c-format +msgid "child %d died, expected %d" +msgstr "%d 개의 하위 프로세스가 종료됨, 기대값 %d" + +#: pg_basebackup.c:2248 streamutil.c:92 streamutil.c:207 streamutil.c:319 +#, c-format +msgid "%s" +msgstr "%s" + +#: pg_basebackup.c:2268 +#, c-format +msgid "could not wait for child thread: %m" +msgstr "하위 스레드를 기다릴 수 없음: %m" + +#: pg_basebackup.c:2273 +#, c-format +msgid "could not get child thread exit status: %m" +msgstr "하위 스레드 종료 상태가 정상적이지 않음: %m" + +#: pg_basebackup.c:2276 +#, c-format +msgid "child thread exited with error %u" +msgstr "하위 스레드가 비정상 종료됨: 오류 코드 %u" + +#: pg_basebackup.c:2305 +#, c-format +msgid "syncing data to disk ..." +msgstr "자료를 디스크에 동기화 하는 중 ... " + +#: pg_basebackup.c:2330 +#, c-format +msgid "renaming backup_manifest.tmp to backup_manifest" +msgstr "backup_manifest.tmp 파일을 backup_manifest로 바꾸는 중" + +#: pg_basebackup.c:2350 +#, c-format +msgid "base backup completed" +msgstr "베이스 백업 완료" + +#: pg_basebackup.c:2436 +#, c-format +msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" +msgstr "잘못된 체크포인트 옵션값 \"%s\", \"fast\" 또는 \"spread\"만 사용 가능" + +#: pg_basebackup.c:2454 +#, c-format +msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" +msgstr "\"%s\" 값은 잘못된 출력 형식, \"plain\" 또는 \"tar\" 만 사용 가능" + +#: pg_basebackup.c:2535 +#, c-format +msgid "" +"invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" +msgstr "" +"\"%s\" 값은 잘못된 wal-method 옵션값, \"fetch\", \"stream\" 또는 \"none\"만 " +"사용 가능" + +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2037 pg_createsubscriber.c:2047 +#: pg_createsubscriber.c:2055 pg_createsubscriber.c:2083 +#: pg_createsubscriber.c:2115 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." + +#: pg_basebackup.c:2584 pg_createsubscriber.c:2045 pg_receivewal.c:758 +#: pg_recvlogical.c:863 +#, c-format +msgid "too many command-line arguments (first is \"%s\")" +msgstr "너무 많은 명령행 인자를 지정했습니다. (처음 \"%s\")" + +#: pg_basebackup.c:2607 +#, c-format +msgid "cannot specify both format and backup target" +msgstr "백업 양식과 백업 타겟을 함께 사용할 수 없음" + +#: pg_basebackup.c:2619 +#, c-format +msgid "must specify output directory or backup target" +msgstr "출력 디렉터리를 지정하거나, 백업 타겟을 지정하세요." + +#: pg_basebackup.c:2625 +#, c-format +msgid "cannot specify both output directory and backup target" +msgstr "출력 디렉터리와 백업 타겟은 함께 지정할 수 없음" + +#: pg_basebackup.c:2655 pg_receivewal.c:802 +#, c-format +msgid "unrecognized compression algorithm: \"%s\"" +msgstr "알 수 없는 압축 알고리즘: \"%s\"" + +#: pg_basebackup.c:2661 pg_receivewal.c:809 +#, c-format +msgid "invalid compression specification: %s" +msgstr "잘못된 압축 정보: %s" + +#: pg_basebackup.c:2677 +#, c-format +msgid "" +"client-side compression is not possible when a backup target is specified" +msgstr "백업 타켓을 사용할 때는 클라이언트 측 압축을 사용할 수 없습니다." + +#: pg_basebackup.c:2688 +#, c-format +msgid "only tar mode backups can be compressed" +msgstr "tar 형식만 압축을 사용할 수 있음" + +#: pg_basebackup.c:2698 +#, c-format +msgid "WAL cannot be streamed when a backup target is specified" +msgstr "백업 타겟을 지정할 때는 WAL 스트리밍을 사용할 수 없습니다." + +#: pg_basebackup.c:2704 +#, c-format +msgid "cannot stream write-ahead logs in tar mode to stdout" +msgstr "tar 방식에서 stdout으로 트랜잭션 로그 스트리밍 불가" + +#: pg_basebackup.c:2711 +#, c-format +msgid "replication slots can only be used with WAL streaming" +msgstr "복제 슬롯은 WAL 스트리밍 방식에서만 사용할 수 있음" + +#: pg_basebackup.c:2723 +#, c-format +msgid "--no-slot cannot be used with slot name" +msgstr "슬롯 이름을 지정한 경우 --no-slot 옵션을 사용할 수 없음" + +#. translator: second %s is an option name +#: pg_basebackup.c:2734 pg_receivewal.c:774 +#, c-format +msgid "%s needs a slot to be specified using --slot" +msgstr "%s 옵션은 --slot 옵션을 함께 사용해야 함" + +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 +#, c-format +msgid "%s and %s are incompatible options" +msgstr "%s 옵션과 %s 옵션은 함께 사용할 수 없음" + +#: pg_basebackup.c:2756 +#, c-format +msgid "WAL directory location cannot be specified along with a backup target" +msgstr "트랜잭션 로그 디렉터리 위치는 백업 타켓과 함께 지정할 수 없음" + +#: pg_basebackup.c:2762 +#, c-format +msgid "WAL directory location can only be specified in plain mode" +msgstr "트랜잭션 로그 디렉터리 위치는 plain 모드에서만 사용할 수 있음" + +#: pg_basebackup.c:2771 +#, c-format +msgid "WAL directory location must be an absolute path" +msgstr "트랜잭션 로그 디렉터리 위치는 절대 경로여야 함" + +#: pg_basebackup.c:2871 +#, c-format +msgid "could not create symbolic link \"%s\": %m" +msgstr "\"%s\" 심벌릭 링크를 만들 수 없음: %m" + +#: pg_createsubscriber.c:169 +#, c-format +msgid "failed after the end of recovery" +msgstr "복구 뒤 실패" + +#: pg_createsubscriber.c:170 +#, c-format +msgid "" +"The target server cannot be used as a physical replica anymore. You must " +"recreate the physical replica before continuing." +msgstr "" +"대상 서버는 더 이상 물리 복제 대기 서버로 사용할 수 없습니다. 물리 복제 대기 " +"서버가 필요하다면, 다시 만들어야 합니다." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "" +"publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "다음 발행이 남아 있음: 발행 이름=\"%s\", 대상 데이터베이스=\"%s\"" + +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "재시도 전에 이 발행을 삭제하세요." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "" +"replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "" +"다음 복제 슬롯이 남아 있음: 복제 슬롯 이름=\"%s\", 대상 데이터베이스=\"%s\"" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1260 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "WAL 파일이 늘어나는 것을 막기위해 해당 복제 슬롯을 삭제하세요." + +#: pg_createsubscriber.c:219 +#, c-format +msgid "" +"%s creates a new logical replica from a standby server.\n" +"\n" +msgstr "" +"%s 프로그램은 물리 복제 대기 서버를 새로운 논리 복제 서버로 만듭니다.\n" +"\n" + +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"옵션들:\n" + +#: pg_createsubscriber.c:224 +#, c-format +msgid "" +" -d, --database=DBNAME database in which to create a " +"subscription\n" +msgstr " -d, --database=DBNAME 구독을 만들 데이터베이스 지정\n" + +#: pg_createsubscriber.c:225 +#, c-format +msgid "" +" -D, --pgdata=DATADIR location for the subscriber data " +"directory\n" +msgstr " -D, --pgdata=DATADIR 구독용 인스턴스 데이터 디렉터리\n" + +#: pg_createsubscriber.c:226 +#, c-format +msgid "" +" -n, --dry-run dry run, just show what would be done\n" +msgstr "" +" -n, --dry-run 실작업은 안하고, 뭘 할 것인지만 보여줌\n" + +#: pg_createsubscriber.c:227 +#, c-format +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr "" +" -p, --subscriber-port=PORT 구독용 인스턴스 포트 번호 (초기값 %s)\n" + +#: pg_createsubscriber.c:228 +#, c-format +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CONNSTR 구독용 인스턴스 연결 문자열\n" + +#: pg_createsubscriber.c:229 +#, c-format +msgid "" +" -s, --socketdir=DIR socket directory to use (default current " +"dir.)\n" +msgstr "" +" -s, --socketdir=DIR 사용할 소켓 디렉터리 (초기값 current " +"dir.)\n" + +#: pg_createsubscriber.c:230 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=SECS 복구가 끝날 때까지 기다리는 초\n" + +#: pg_createsubscriber.c:231 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NAME 구독용 인스턴스 연결을 위한 사용자\n" + +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose 자세한 작업 메시지 보여줌\n" + +#: pg_createsubscriber.c:233 +#, c-format +msgid "" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" +msgstr "" +" --config-file=FILENAME 대상 클러스터가 실행될 때 사용할\n" +" 주 서버용 환경 설정 파일\n" + +#: pg_createsubscriber.c:235 +#, c-format +msgid " --publication=NAME publication name\n" +msgstr " --publication=NAME 발행 이름\n" + +#: pg_createsubscriber.c:236 +#, c-format +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=NAME 복제 슬롯 이름\n" + +#: pg_createsubscriber.c:237 +#, c-format +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NAME 구독 이름\n" + +#: pg_createsubscriber.c:238 +#, c-format +msgid "" +" -V, --version output version information, then exit\n" +msgstr " -V, --version 버전 정보 보여주고 마침\n" + +#: pg_createsubscriber.c:239 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help 이 도움말을 보여주고 마침\n" + +#: pg_createsubscriber.c:282 +#, c-format +msgid "could not parse connection string: %s" +msgstr "연결 문자열 구문이 잘못됨: %s" + +#: pg_createsubscriber.c:359 +#, c-format +msgid "" +"program \"%s\" is needed by %s but was not found in the same directory as " +"\"%s\"" +msgstr "\"%s\" 프로그램이 %s에서 필요하지만, \"%s\" 디렉터리 안에 없음" + +#: pg_createsubscriber.c:362 +#, c-format +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "\"%s\" 프로그램이 \"%s\" 프로그램에서 사용하는 %s 버전과 같지 않음" + +#: pg_createsubscriber.c:382 +#, c-format +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "\"%s\" 디렉터리가 클러스터 데이터 디렉터리인지 확인해보세요." + +#: pg_createsubscriber.c:388 +#, c-format +msgid "data directory \"%s\" does not exist" +msgstr "\"%s\" 데이터 디렉터리가 없음" + +#: pg_createsubscriber.c:396 +#, c-format +msgid "directory \"%s\" is not a database cluster directory" +msgstr "\"%s\" 디렉터리는 데이베이스 클러스터 디렉터리가 아님" + +#: pg_createsubscriber.c:513 +#, c-format +msgid "connection to database failed: %s" +msgstr "데이터베이스 연결 실패: %s" + +#: pg_createsubscriber.c:526 +#, c-format +msgid "could not clear search_path: %s" +msgstr "search_path를 지울 수 없음: %s" + +#: pg_createsubscriber.c:566 +#, c-format +msgid "getting system identifier from publisher" +msgstr "발행에서 system identifier 가져오는 중" + +#: pg_createsubscriber.c:573 +#, c-format +msgid "could not get system identifier: %s" +msgstr "system identifier 가져오기 실패: %s" + +#: pg_createsubscriber.c:579 +#, c-format +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "system identifier 가져오기 실패: 취득=%d개 로우, 예상=%d개 로우" + +#: pg_createsubscriber.c:586 +#, c-format +msgid "system identifier is %llu on publisher" +msgstr "발행 서버의 system identifier: %llu" + +#: pg_createsubscriber.c:607 +#, c-format +msgid "getting system identifier from subscriber" +msgstr "구독에서 system identifier 가져오는 중" + +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 +#, c-format +msgid "control file appears to be corrupt" +msgstr "컨트롤 파일 깨짐" + +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 +#, c-format +msgid "system identifier is %llu on subscriber" +msgstr "구독 서버의 system identifier: %llu" + +#: pg_createsubscriber.c:637 +#, c-format +msgid "modifying system identifier of subscriber" +msgstr "구독 서버의 system identifier 바꾸는 중" + +#: pg_createsubscriber.c:659 +#, c-format +msgid "running pg_resetwal on the subscriber" +msgstr "구독 서버에서 pg_resetwal 실행 중" + +#: pg_createsubscriber.c:671 +#, c-format +msgid "subscriber successfully changed the system identifier" +msgstr "구독 서버의 system identifier 바꾸기 끝" + +#: pg_createsubscriber.c:673 +#, c-format +msgid "could not change system identifier of subscriber: %s" +msgstr "구독 서버의 system identifier 바꾸기 실패: %s" + +#: pg_createsubscriber.c:697 +#, c-format +msgid "could not obtain database OID: %s" +msgstr "베이스베이스 OID 확인 불가: %s" + +#: pg_createsubscriber.c:704 #, c-format -msgid "could not read from ready pipe: %m" -msgstr "준비된 파이프로부터 읽기 실패: %m" +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "베이스베이스 OID 확인 불가: %d개 로우 발견, %d개 로우 예상" -#: pg_basebackup.c:477 pg_basebackup.c:608 pg_basebackup.c:2133 -#: streamutil.c:450 +#: pg_createsubscriber.c:776 #, c-format -msgid "could not parse write-ahead log location \"%s\"" -msgstr "트랜잭션 로그 위치 \"%s\" 분석 실패" +msgid "create replication slot \"%s\" on publisher" +msgstr "발행 서버에서 \"%s\" 이름의 복제 슬롯을 만듦" -#: pg_basebackup.c:573 pg_receivewal.c:441 +#: pg_createsubscriber.c:796 #, c-format -msgid "could not finish writing WAL files: %m" -msgstr "WAL 파일 쓰기 마무리 실패: %m" +msgid "could not write an additional WAL record: %s" +msgstr "추가 WAL 레코드를 쓸 수 없음: %s" -#: pg_basebackup.c:620 +#: pg_createsubscriber.c:822 #, c-format -msgid "could not create pipe for background process: %m" -msgstr "백그라운드 프로세스를 위한 파이프 만들기 실패: %m" +msgid "could not obtain recovery progress: %s" +msgstr "복구 작업 과정 확인 불가: %s" -#: pg_basebackup.c:655 +#: pg_createsubscriber.c:854 #, c-format -msgid "created temporary replication slot \"%s\"" -msgstr "\"%s\" 임시 복제 슬롯을 만들 수 없음" +msgid "checking settings on publisher" +msgstr "발행 서버 설정 검사 중" -#: pg_basebackup.c:658 +#: pg_createsubscriber.c:864 #, c-format -msgid "created replication slot \"%s\"" -msgstr "\"%s\" 이름의 복제 슬롯을 만듦" +msgid "primary server cannot be in recovery" +msgstr "주 서버는 복구 작업을 할 수 없음" -#: pg_basebackup.c:678 pg_basebackup.c:731 pg_basebackup.c:1620 +#: pg_createsubscriber.c:888 #, c-format -msgid "could not create directory \"%s\": %m" -msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" +msgid "could not obtain publisher settings: %s" +msgstr "발행 서버 설정 확인 불가: %s" -#: pg_basebackup.c:696 +#: pg_createsubscriber.c:914 #, c-format -msgid "could not create background process: %m" -msgstr "백그라운드 프로세스 만들기 실패: %m" +msgid "publisher requires wal_level >= \"logical\"" +msgstr "발행 서버의 wal_level >= \"logical\" 설정 필요" -#: pg_basebackup.c:708 +#: pg_createsubscriber.c:920 #, c-format -msgid "could not create background thread: %m" -msgstr "백그라운드 스래드 만들기 실패: %m" +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "발행서버는 %d개의 복제 슬롯이 필요하지만, %d개만 남았음" -#: pg_basebackup.c:752 +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 #, c-format -msgid "directory \"%s\" exists but is not empty" -msgstr "\"%s\" 디렉터리가 있지만 비어 있지 않음" +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "\"%s\" 환경설정 매개변수 값을 %d 이상으로 늘려주세요." -#: pg_basebackup.c:759 +#: pg_createsubscriber.c:929 #, c-format -msgid "could not access directory \"%s\": %m" -msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "발행서버는 %d개의 WAL 발송 프로세스가 필요하지만, %d개만 남았음" -#: pg_basebackup.c:824 +#: pg_createsubscriber.c:938 #, 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 테이블스페이스 %*s" +msgid "two_phase option will not be enabled for replication slots" +msgstr "two_phase 옵션은 복제 슬롯을 위해 비활성화 될 예정" -#: pg_basebackup.c:836 +#: pg_createsubscriber.c:939 #, 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 테이블스페이스 (%s%-*.*s)" +msgid "" +"Subscriptions will be created with the two_phase option disabled. Prepared " +"transactions will be replicated at COMMIT PREPARED." +msgstr "" +"구독은 two_phase 옵션이 비활성 되어 만들어집니다. 미리 준비된 트랜잭션은 " +"COMMIT PREPARED 때 복제될 것입니다." -#: pg_basebackup.c:852 +#: pg_createsubscriber.c:971 #, 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 테이블스페이스" +msgid "checking settings on subscriber" +msgstr "구독 서버 설정 검사 중" -#: pg_basebackup.c:877 +#: pg_createsubscriber.c:978 #, c-format -msgid "transfer rate \"%s\" is not a valid value" -msgstr "\"%s\" 전송 속도는 잘못된 값임" +msgid "target server must be a standby" +msgstr "대상 서버는 대기 서버여야 함" -#: pg_basebackup.c:882 +#: pg_createsubscriber.c:1002 #, c-format -msgid "invalid transfer rate \"%s\": %m" -msgstr "잘못된 전송 속도 \"%s\": %m" +msgid "could not obtain subscriber settings: %s" +msgstr "구독 서버 설정 확인 불가: %s" -#: pg_basebackup.c:891 +#: pg_createsubscriber.c:1026 #, c-format -msgid "transfer rate must be greater than zero" -msgstr "전송 속도는 0보다 커야 함" +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "구독 서버는 %d개의 복제 슬롯이 필요하지만, %d개만 남았음" -#: pg_basebackup.c:923 +#: pg_createsubscriber.c:1035 #, c-format -msgid "invalid --max-rate unit: \"%s\"" -msgstr "잘못된 --max-rate 단위: \"%s\"" +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "구독 서버는 %d개의 논리 복제 작업자가 필요하지만, %d개만 남았음" -#: pg_basebackup.c:930 +#: pg_createsubscriber.c:1044 #, c-format -msgid "transfer rate \"%s\" exceeds integer range" -msgstr "\"%s\" 전송 속도는 정수형 범위가 아님" +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "구독 서버는 %d개의 작업자가 필요하지만, %d개만 남았음" -#: pg_basebackup.c:940 +#: pg_createsubscriber.c:1079 #, c-format -msgid "transfer rate \"%s\" is out of range" -msgstr "\"%s\" 전송 속도는 범위 초과" +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 구독을 \"%s\" 데이터베이스에서 삭제 중" -#: pg_basebackup.c:961 +#: pg_createsubscriber.c:1088 #, c-format -msgid "could not get COPY data stream: %s" -msgstr "COPY 데이터 스트림을 사용할 수 없음: %s" +msgid "could not drop subscription \"%s\": %s" +msgstr "\"%s\" 구독 삭제 실패: %s" -#: pg_basebackup.c:981 pg_recvlogical.c:435 pg_recvlogical.c:607 -#: receivelog.c:965 +#: pg_createsubscriber.c:1123 #, c-format -msgid "could not read COPY data: %s" -msgstr "COPY 자료를 읽을 수 없음: %s" +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "이미 있는 구독 정보를 알 수 없음: %s" -#: pg_basebackup.c:1007 +#: pg_createsubscriber.c:1258 #, c-format -msgid "could not write to compressed file \"%s\": %s" -msgstr "\"%s\" 압축 파일 쓰기 실패: %s" +msgid "could not drop replication slot \"%s\" on primary" +msgstr "주 서버의 \"%s\" 복제 슬롯을 삭제 수 없음" -#: pg_basebackup.c:1071 +#: pg_createsubscriber.c:1292 #, c-format -msgid "could not duplicate stdout: %m" -msgstr "stdout을 중복할 수 없음: %m" +msgid "could not obtain failover replication slot information: %s" +msgstr "failover 복제 슬롯 정보를 찾을 수 없음: %s" -#: pg_basebackup.c:1078 +#: pg_createsubscriber.c:1294 pg_createsubscriber.c:1303 #, c-format -msgid "could not open output file: %m" -msgstr "출력파일을 열 수 없음: %m" +msgid "" +"Drop the failover replication slots on subscriber soon to avoid retention of " +"WAL files." +msgstr "" +"WAL 파일이 비정상적으로 증가는 문제를 막기 위해, 구독 서버에서 failover 복제 " +"슬롯을 바로 지우세요." -#: pg_basebackup.c:1085 pg_basebackup.c:1106 pg_basebackup.c:1135 +#: pg_createsubscriber.c:1302 #, c-format -msgid "could not set compression level %d: %s" -msgstr "잘못된 압축 수위 %d: %s" +msgid "could not drop failover replication slot" +msgstr "failover 복제 슬롯을 삭제할 수 없음" -#: pg_basebackup.c:1155 +#: pg_createsubscriber.c:1324 #, c-format -msgid "could not create compressed file \"%s\": %s" -msgstr "\"%s\" 압축 파일 만들기 실패: %s" +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 복제 슬롯을 \"%s\" 데이터베이스에 만드는 중" -#: pg_basebackup.c:1267 +#: pg_createsubscriber.c:1342 #, c-format -msgid "could not close compressed file \"%s\": %s" -msgstr "\"%s\" 압축 파일 닫기 실패: %s" +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "\"%s\" 이름의 복제 슬롯을 \"%s\" 데이터베이스에 만들기 실패: %s" -#: pg_basebackup.c:1279 pg_recvlogical.c:632 +#: pg_createsubscriber.c:1372 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "\"%s\" 파일을 닫을 수 없음: %m" +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 복제 슬롯을 \"%s\" 데이터베이스에서 삭제 중" -#: pg_basebackup.c:1541 +#: pg_createsubscriber.c:1388 #, c-format -msgid "COPY stream ended before last file was finished" -msgstr "마지막 파일을 끝내기 전에 COPY 스트림이 끝났음" +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "\"%s\" 이름의 복제 슬롯을 \"%s\" 데이터베이스에서 삭제 실패: %s" -#: pg_basebackup.c:1570 +#: pg_createsubscriber.c:1409 #, c-format -msgid "invalid tar block header size: %zu" -msgstr "잘못된 tar 블럭 헤더 크기: %zu" +msgid "pg_ctl failed with exit code %d" +msgstr "pg_ctl 작업 실패: 오류 코드 %d" -#: pg_basebackup.c:1627 +#: pg_createsubscriber.c:1414 #, c-format -msgid "could not set permissions on directory \"%s\": %m" -msgstr "\"%s\" 디렉터리 액세스 권한을 지정할 수 없음: %m" +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "pg_ctl 종료됨: 예외 처리 0x%X" -#: pg_basebackup.c:1651 +#: pg_createsubscriber.c:1416 #, c-format -msgid "could not create symbolic link from \"%s\" to \"%s\": %m" -msgstr "\"%s\" 파일을 \"%s\" 심볼릭 링크로 만들 수 없음: %m" +msgid "" +"See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "윗 16진수 값은 \"ntstatus.h\" 파일을 참조하세요." -#: pg_basebackup.c:1658 +#: pg_createsubscriber.c:1418 #, c-format -msgid "unrecognized link indicator \"%c\"" -msgstr "알 수 없는 링크 지시자 \"%c\"" +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "pg_ctl 종료됨: 수신 시그널=%d: %s" -#: pg_basebackup.c:1677 +#: pg_createsubscriber.c:1424 #, c-format -msgid "could not set permissions on file \"%s\": %m" -msgstr "파일 \"%s\" 의 접근권한을 지정할 수 없음: %m" +msgid "pg_ctl exited with unrecognized status %d" +msgstr "pg_ctl 종료됨: 알 수 없은 상태 %d" -#: pg_basebackup.c:1831 +#: pg_createsubscriber.c:1427 #, c-format -msgid "incompatible server version %s" -msgstr "호환하지 않는 서버 버전 %s" +msgid "The failed command was: %s" +msgstr "실패한 명령: %s" -#: pg_basebackup.c:1846 +#: pg_createsubscriber.c:1473 #, c-format -msgid "HINT: use -X none or -X fetch to disable log streaming" -msgstr "" -"힌트: 트랜잭션 로그 스트리밍을 사용하지 않으려면 -X none 또는 -X fetch 옵션" -"을 사용하세요." +msgid "server was started" +msgstr "서버 시작됨" -#: pg_basebackup.c:1882 +#: pg_createsubscriber.c:1488 #, c-format -msgid "initiating base backup, waiting for checkpoint to complete" -msgstr "베이스 백업을 초기화 중, 체크포인트 완료를 기다리는 중" +msgid "server was stopped" +msgstr "서버 멈춤" -#: pg_basebackup.c:1908 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_createsubscriber.c:1507 #, c-format -msgid "could not send replication command \"%s\": %s" -msgstr "\"%s\" 복제 명령을 보낼 수 없음: %s" +msgid "waiting for the target server to reach the consistent state" +msgstr "일관성 맞추기 위해 대상 서버 기다리는 중" -#: pg_basebackup.c:1919 +#: pg_createsubscriber.c:1530 #, c-format -msgid "could not initiate base backup: %s" -msgstr "베이스 백업을 초기화 할 수 없음: %s" +msgid "recovery timed out" +msgstr "복구 시간 초과" -#: pg_basebackup.c:1925 +#: pg_createsubscriber.c:1543 #, c-format -msgid "" -"server returned unexpected response to BASE_BACKUP command; got %d rows and " -"%d fields, expected %d rows and %d fields" -msgstr "" -"서버가 BASE_BACKUP 명령에 대해서 잘못된 응답을 했습니다; 응답값: %d 로우, %d " -"필드, (기대값: %d 로우, %d 필드)" +msgid "server did not end recovery" +msgstr "서버 복구 실패" -#: pg_basebackup.c:1933 +#: pg_createsubscriber.c:1545 #, c-format -msgid "checkpoint completed" -msgstr "체크포인트 완료" +msgid "target server reached the consistent state" +msgstr "대상 서버 일관성 맞추기 완료" -#: pg_basebackup.c:1948 +#: pg_createsubscriber.c:1546 #, c-format -msgid "write-ahead log start point: %s on timeline %u" -msgstr "트랙잭션 로그 시작 위치: %s, 타임라인: %u" +msgid "" +"If pg_createsubscriber fails after this point, you must recreate the " +"physical replica before continuing." +msgstr "" +"이 시점에서 pg_createsubscriber 작업을 실패하면, 물리 복제 대기 서버는 다시 " +"만들어야 합니다." -#: pg_basebackup.c:1957 +#: pg_createsubscriber.c:1573 #, c-format -msgid "could not get backup header: %s" -msgstr "백업 헤더를 구할 수 없음: %s" +msgid "could not obtain publication information: %s" +msgstr "발행 정보를 찾을 수 없음: %s" -#: pg_basebackup.c:1963 +#: pg_createsubscriber.c:1587 #, c-format -msgid "no data returned from server" -msgstr "서버가 아무런 자료도 주지 않았음" +msgid "publication \"%s\" already exists" +msgstr "\"%s\" 이름의 발행이 이미 있음" -#: pg_basebackup.c:1995 +#: pg_createsubscriber.c:1588 #, c-format -msgid "can only write single tablespace to stdout, database has %d" -msgstr "" -"표준 출력으로는 하나의 테이블스페이스만 쓸 수 있음, 데이터베이스는 %d 개의 테" -"이블 스페이스가 있음" +msgid "Consider renaming this publication before continuing." +msgstr "계속 진행을 위해서는 이 발행 이름을 바꿔보세요." -#: pg_basebackup.c:2007 +#: pg_createsubscriber.c:1595 #, c-format -msgid "starting background WAL receiver" -msgstr "백그라운드 WAL 수신자 시작 중" +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 발행을 \"%s\" 데이터베이스에 만드는 중" -#: pg_basebackup.c:2046 +#: pg_createsubscriber.c:1608 #, c-format -msgid "could not get write-ahead log end position from server: %s" -msgstr "서버에서 트랜잭션 로그 마지막 위치를 구할 수 없음: %s" +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "\"%s\" 이름의 발행을 \"%s\" 데이터베이스에 만들 수 없음: %s" -#: pg_basebackup.c:2052 +#: pg_createsubscriber.c:1637 #, c-format -msgid "no write-ahead log end position returned from server" -msgstr "서버에서 트랜잭션 로그 마지막 위치가 수신 되지 않았음" +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 발행을 \"%s\" 데이터베이스에서 삭제 중" -#: pg_basebackup.c:2057 +#: pg_createsubscriber.c:1651 #, c-format -msgid "write-ahead log end point: %s" -msgstr "트랜잭션 로그 마지막 위치: %s" +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "\"%s\" 이름의 발행을 \"%s\" 데이터베이스에 지울 수 없음: %s" -#: pg_basebackup.c:2068 +#: pg_createsubscriber.c:1697 #, c-format -msgid "checksum error occurred" -msgstr "체크섬 오류 발생" +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "\"%s\" 이름의 구독을 \"%s\" 데이터베이스에 만드는 중" -#: pg_basebackup.c:2073 +#: pg_createsubscriber.c:1718 #, c-format -msgid "final receive failed: %s" -msgstr "수신 작업 마무리 실패: %s" +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "\"%s\" 이름의 구독을 \"%s\" 데이터베이스에 만들 수 없음: %s" -#: pg_basebackup.c:2097 +#: pg_createsubscriber.c:1763 #, c-format -msgid "waiting for background process to finish streaming ..." -msgstr "스트리밍을 끝내기 위해서 백그라운드 프로세스를 기다리는 중 ..." +msgid "could not obtain subscription OID: %s" +msgstr "구독 OID 찾지 못함: %s" -#: pg_basebackup.c:2102 +#: pg_createsubscriber.c:1770 #, c-format -msgid "could not send command to background pipe: %m" -msgstr "백그라운드 파이프로 명령을 보낼 수 없음: %m" +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "구독 OID 확인 불가: %d개 로우 발견, %d개 로우 예상" -#: pg_basebackup.c:2110 +#: pg_createsubscriber.c:1794 #, c-format -msgid "could not wait for child process: %m" -msgstr "하위 프로세스를 기다릴 수 없음: %m" +msgid "" +"setting the replication progress (node name \"%s\", LSN %s) in database " +"\"%s\"" +msgstr "복제 설정 중(노드이름 \"%s\", LSN %s, 데이터베이스 \"%s\")" -#: pg_basebackup.c:2115 +#: pg_createsubscriber.c:1809 #, c-format -msgid "child %d died, expected %d" -msgstr "%d 개의 하위 프로세스가 종료됨, 기대값 %d" +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "\"%s\" 구독을 위한 복제 설정 실패: %s" -#: pg_basebackup.c:2120 streamutil.c:92 +#: pg_createsubscriber.c:1840 #, c-format -msgid "%s" -msgstr "%s" +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "\"%s\" 구독을 \"%s\" 데이터베이스에서 활성화 시도 중" -#: pg_basebackup.c:2145 +#: pg_createsubscriber.c:1852 #, c-format -msgid "could not wait for child thread: %m" -msgstr "하위 스레드를 기다릴 수 없음: %m" +msgid "could not enable subscription \"%s\": %s" +msgstr "\"%s\" 구독을 활성화 할 수 없음: %s" -#: pg_basebackup.c:2151 +#: pg_createsubscriber.c:1944 #, c-format -msgid "could not get child thread exit status: %m" -msgstr "하위 스레드 종료 상태가 정상적이지 않음: %m" +msgid "cannot be executed by \"root\"" +msgstr "\"root\" 권한으로 실행할 수 없음" -#: pg_basebackup.c:2156 +#: pg_createsubscriber.c:1945 #, c-format -msgid "child thread exited with error %u" -msgstr "하위 스레드가 비정상 종료됨: 오류 코드 %u" +msgid "You must run %s as the PostgreSQL superuser." +msgstr "PostgreSQL 슈퍼유저 계정으로 %s 프로그램을 실행하세요." -#: pg_basebackup.c:2184 +#: pg_createsubscriber.c:1966 #, c-format -msgid "syncing data to disk ..." -msgstr "자료를 디스크에 동기화 하는 중 ... " +msgid "database \"%s\" specified more than once" +msgstr "\"%s\" 데이터베이스가 중복 지정 되었음" -#: pg_basebackup.c:2209 +#: pg_createsubscriber.c:2007 #, c-format -msgid "renaming backup_manifest.tmp to backup_manifest" -msgstr "backup_manifest.tmp 파일을 backup_manifest로 바꾸는 중" +msgid "publication \"%s\" specified more than once" +msgstr "\"%s\" 발행이 중복 지정 되었음" -#: pg_basebackup.c:2220 +#: pg_createsubscriber.c:2019 #, c-format -msgid "base backup completed" -msgstr "베이스 백업 완료" +msgid "replication slot \"%s\" specified more than once" +msgstr "\"%s\" 복제 슬롯이 중복 지정 되었음" -#: pg_basebackup.c:2305 +#: pg_createsubscriber.c:2031 #, c-format -msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" -msgstr "\"%s\" 값은 잘못된 출력 형식, \"plain\" 또는 \"tar\" 만 사용 가능" +msgid "subscription \"%s\" specified more than once" +msgstr "\"%s\" 구독이 중복 지정 되었음" -#: pg_basebackup.c:2349 +#: pg_createsubscriber.c:2054 #, c-format -msgid "" -"invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" -msgstr "" -"\"%s\" 값은 잘못된 wal-method 옵션값, \"fetch\", \"stream\" 또는 \"none\"만 " -"사용 가능" +msgid "no subscriber data directory specified" +msgstr "구독 서버용 데이터 디렉터리를 지정하지 않았음" -#: pg_basebackup.c:2377 pg_receivewal.c:580 +#: pg_createsubscriber.c:2065 #, c-format -msgid "invalid compression level \"%s\"" -msgstr "잘못된 압축 수위 \"%s\"" +msgid "could not determine current directory" +msgstr "현재 디렉터리를 확인할 수 없음" -#: pg_basebackup.c:2388 +#: pg_createsubscriber.c:2082 #, c-format -msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" -msgstr "잘못된 체크포인트 옵션값 \"%s\", \"fast\" 또는 \"spread\"만 사용 가능" +msgid "no publisher connection string specified" +msgstr "발행 서버 연결 문자열을 지정하지 않았음" -#: pg_basebackup.c:2415 pg_receivewal.c:555 pg_recvlogical.c:820 +#: pg_createsubscriber.c:2086 #, c-format -msgid "invalid status interval \"%s\"" -msgstr "잘못된 상태값 간격: \"%s\"" +msgid "validating publisher connection string" +msgstr "발행 서버 연결 문자열 검사 중" -#: 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_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_createsubscriber.c:2092 #, c-format -msgid "Try \"%s --help\" for more information.\n" -msgstr "자제한 사항은 \"%s --help\" 명령으로 살펴보십시오.\n" +msgid "validating subscriber connection string" +msgstr "구독 서버 연결 문자열 검사 중" -#: pg_basebackup.c:2456 pg_receivewal.c:616 pg_recvlogical.c:857 +#: pg_createsubscriber.c:2097 #, c-format -msgid "too many command-line arguments (first is \"%s\")" -msgstr "너무 많은 명령행 인자를 지정했습니다. (처음 \"%s\")" +msgid "no database was specified" +msgstr "데이터베이스를 지정하지 않았음" -#: pg_basebackup.c:2468 pg_receivewal.c:654 +#: pg_createsubscriber.c:2109 #, c-format -msgid "no target directory specified" -msgstr "대상 디렉터리를 지정하지 않음" +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "발행 서버 연결 문자열에서 데이터베이스 이름 확인: \"%s\"" -#: pg_basebackup.c:2479 +#: pg_createsubscriber.c:2114 #, c-format -msgid "only tar mode backups can be compressed" -msgstr "tar 형식만 압축을 사용할 수 있음" +msgid "no database name specified" +msgstr "데이터베이스 이름을 지정하지 않았음" -#: pg_basebackup.c:2487 +#: pg_createsubscriber.c:2124 #, c-format -msgid "cannot stream write-ahead logs in tar mode to stdout" -msgstr "tar 방식에서 stdout으로 트랜잭션 로그 스트리밍 불가" +msgid "wrong number of publication names specified" +msgstr "발행 이름들의 개수가 잘못됨" -#: pg_basebackup.c:2495 +#: pg_createsubscriber.c:2125 #, c-format -msgid "replication slots can only be used with WAL streaming" -msgstr "복제 슬롯은 WAL 스트리밍 방식에서만 사용할 수 있음" +msgid "" +"The number of specified publication names (%d) must match the number of " +"specified database names (%d)." +msgstr "지정한 발행 이름의 수(%d)와 데이터베이스 이름의 수(%d)가 같지 않음" -#: pg_basebackup.c:2505 +#: pg_createsubscriber.c:2131 #, c-format -msgid "--no-slot cannot be used with slot name" -msgstr "슬롯 이름을 지정한 경우 --no-slot 옵션을 사용할 수 없음" +msgid "wrong number of subscription names specified" +msgstr "구독 이름들의 개수가 잘못됨" -#. translator: second %s is an option name -#: pg_basebackup.c:2517 pg_receivewal.c:634 +#: pg_createsubscriber.c:2132 #, c-format -msgid "%s needs a slot to be specified using --slot" -msgstr "%s 옵션은 --slot 옵션을 함께 사용해야 함" +msgid "" +"The number of specified subscription names (%d) must match the number of " +"specified database names (%d)." +msgstr "지정한 구독 이름의 수(%d)와 데이터베이스 이름의 수(%d)가 같지 않음" -#: pg_basebackup.c:2526 +#: pg_createsubscriber.c:2138 #, c-format -msgid "--create-slot and --no-slot are incompatible options" -msgstr "--create-slot 옵션과 -no-slot 옵션은 함께 사용할 수 없음" +msgid "wrong number of replication slot names specified" +msgstr "복제 슬롯 이름들의 개수가 잘못됨" -#: pg_basebackup.c:2537 +#: pg_createsubscriber.c:2139 #, c-format -msgid "WAL directory location can only be specified in plain mode" -msgstr "트랜잭션 로그 디렉터리 위치는 plain 모드에서만 사용할 수 있음" +msgid "" +"The number of specified replication slot names (%d) must match the number of " +"specified database names (%d)." +msgstr "" +"지정한 복제 슬롯 이름의 수(%d)와 데이터베이스 이름의 수(%d)가 같지 않음" -#: pg_basebackup.c:2547 +#: pg_createsubscriber.c:2168 #, c-format -msgid "WAL directory location must be an absolute path" -msgstr "트랜잭션 로그 디렉터리 위치는 절대 경로여야 함" +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "구독 서버의 데이터 디렉터리는 원본 데이터베이스 클러스터의 것이 아님" -#: pg_basebackup.c:2557 pg_receivewal.c:663 +#: pg_createsubscriber.c:2181 #, c-format -msgid "this build does not support compression" -msgstr "이 버전은 압축 하는 기능을 포함 하지 않고 빌드 되었습니다." +msgid "standby server is running" +msgstr "대기 서버가 실행 중입니다." -#: pg_basebackup.c:2564 +#: pg_createsubscriber.c:2182 #, c-format -msgid "--progress and --no-estimate-size are incompatible options" -msgstr "--progress 옵션과 --no-estimate-size 옵션은 함께 사용할 수 없음" +msgid "Stop the standby server and try again." +msgstr "대기 서버를 중지 하고, 다시 하세요." -#: pg_basebackup.c:2572 +#: pg_createsubscriber.c:2191 #, c-format -msgid "--no-manifest and --manifest-checksums are incompatible options" -msgstr "--no-manifest 옵션과 --manifest-checksums 옵션은 함께 사용할 수 없음" +msgid "starting the standby server with command-line options" +msgstr "명령행 옵션을 포함해서 대기 서버를 시작 중" -#: pg_basebackup.c:2580 +#: pg_createsubscriber.c:2207 pg_createsubscriber.c:2242 #, c-format -msgid "--no-manifest and --manifest-force-encode are incompatible options" -msgstr "" -"--no-manifest 옵션과 --manifest-force-encode 옵션은 함께 사용할 수 없음" +msgid "stopping the subscriber" +msgstr "구독 서버 중지 중" -#: pg_basebackup.c:2639 +#: pg_createsubscriber.c:2221 #, c-format -msgid "could not create symbolic link \"%s\": %m" -msgstr "\"%s\" 심벌릭 링크를 만들 수 없음: %m" +msgid "starting the subscriber" +msgstr "구독 서버 실행 중" -#: pg_basebackup.c:2643 +#: pg_createsubscriber.c:2250 #, c-format -msgid "symlinks are not supported on this platform" -msgstr "이 플랫폼에서는 심볼 링크가 지원되지 않음" +msgid "Done!" +msgstr "완료!" #: pg_receivewal.c:77 #, c-format @@ -906,15 +2015,6 @@ msgstr "" "%s 프로그램은 PostgreSQL 스트리밍 트랜잭션 로그를 수신하는 도구입니다.\n" "\n" -#: pg_receivewal.c:81 pg_recvlogical.c:81 -#, c-format -msgid "" -"\n" -"Options:\n" -msgstr "" -"\n" -"옵션들:\n" - #: pg_receivewal.c:82 #, c-format msgid "" @@ -922,12 +2022,12 @@ msgid "" msgstr "" " -D, --directory=DIR 지정한 디렉터리로 트랜잭션 로그 파일을 백업함\n" -#: pg_receivewal.c:83 pg_recvlogical.c:82 +#: pg_receivewal.c:83 pg_recvlogical.c:93 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN 지정한 LSN까지 받고 종료함\n" -#: pg_receivewal.c:84 pg_recvlogical.c:86 +#: pg_receivewal.c:84 pg_recvlogical.c:97 #, c-format msgid "" " --if-not-exists do not error if slot already exists when creating a " @@ -935,7 +2035,7 @@ msgid "" msgstr "" " --if-not-exists 슬롯을 새로 만들 때 이미 있어도 오류 내지 않음\n" -#: pg_receivewal.c:85 pg_recvlogical.c:88 +#: pg_receivewal.c:85 pg_recvlogical.c:99 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop 접속이 끊겼을 때 재연결 하지 않음\n" @@ -947,7 +2047,7 @@ msgid "" "disk\n" msgstr " --no-sync 디스크 쓰기 뒤 sync 작업 생략\n" -#: pg_receivewal.c:87 pg_recvlogical.c:93 +#: pg_receivewal.c:87 pg_recvlogical.c:104 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -966,10 +2066,14 @@ msgstr " --synchronous 쓰기 작업 후 즉시 트랜잭션 로그를 #: pg_receivewal.c:93 #, c-format -msgid " -Z, --compress=0-9 compress logs with given compression level\n" -msgstr " -Z, --compress=0-9 압축된 로그 파일의 압축 수위 지정\n" +msgid "" +" -Z, --compress=METHOD[:DETAIL]\n" +" compress as specified\n" +msgstr "" +" -Z, --compress=METHOD[:DETAIL]\n" +" 압축 관련 속성 지정\n" -#: pg_receivewal.c:102 +#: pg_receivewal.c:103 #, c-format msgid "" "\n" @@ -978,7 +2082,7 @@ msgstr "" "\n" "추가 기능:\n" -#: pg_receivewal.c:103 pg_recvlogical.c:78 +#: pg_receivewal.c:104 pg_recvlogical.c:89 #, c-format msgid "" " --create-slot create a new replication slot (for the slot's name " @@ -987,7 +2091,7 @@ msgstr "" " --create-slot 새 복제 슬롯을 만듬 (--slot 옵션에서 슬롯 이름 지" "정)\n" -#: pg_receivewal.c:104 pg_recvlogical.c:79 +#: pg_receivewal.c:105 pg_recvlogical.c:90 #, c-format msgid "" " --drop-slot drop the replication slot (for the slot's name see " @@ -995,115 +2099,147 @@ msgid "" msgstr "" " --drop-slot 복제 슬롯 삭제 (--slot 옵션에서 슬롯 이름 지정)\n" -#: pg_receivewal.c:117 +#: pg_receivewal.c:191 #, c-format msgid "finished segment at %X/%X (timeline %u)" msgstr "마무리된 세그먼트 위치: %X/%X (타임라인 %u)" -#: pg_receivewal.c:124 +#: pg_receivewal.c:198 #, c-format msgid "stopped log streaming at %X/%X (timeline %u)" msgstr "로그 스트리밍 중지된 위치: %X/%X (타임라인 %u)" -#: pg_receivewal.c:140 +#: pg_receivewal.c:214 #, c-format msgid "switched to timeline %u at %X/%X" msgstr "전환됨: 타임라인 %u, 위치 %X/%X" -#: pg_receivewal.c:150 +#: pg_receivewal.c:224 pg_recvlogical.c:1053 #, c-format msgid "received interrupt signal, exiting" msgstr "인터럽터 시그널을 받음, 종료함" -#: pg_receivewal.c:186 +#: pg_receivewal.c:256 #, c-format msgid "could not close directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 닫을 수 없음: %m" -#: pg_receivewal.c:272 +#: pg_receivewal.c:323 #, c-format -msgid "segment file \"%s\" has incorrect size %d, skipping" -msgstr "\"%s\" 조각 파일은 잘못된 크기임: %d, 무시함" +msgid "segment file \"%s\" has incorrect size %lld, skipping" +msgstr "\"%s\" 조각 파일은 잘못된 크기임: %lld, 무시함" -#: pg_receivewal.c:290 +#: pg_receivewal.c:340 #, c-format msgid "could not open compressed file \"%s\": %m" msgstr "\"%s\" 압축 파일 열기 실패: %m" -#: pg_receivewal.c:296 +#: pg_receivewal.c:343 #, c-format msgid "could not seek in compressed file \"%s\": %m" msgstr "\"%s\" 압축 파일 작업 위치 찾기 실패: %m" -#: pg_receivewal.c:304 +#: pg_receivewal.c:349 #, c-format msgid "could not read compressed file \"%s\": %m" msgstr "\"%s\" 압축 파일 읽기 실패: %m" -#: pg_receivewal.c:307 +#: pg_receivewal.c:352 #, c-format msgid "could not read compressed file \"%s\": read %d of %zu" msgstr "\"%s\" 압축 파일을 읽을 수 없음: %d 읽음, 전체 %zu" -#: pg_receivewal.c:318 +#: pg_receivewal.c:362 #, c-format msgid "" "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping" msgstr "\"%s\" 압축 파일은 압축 풀었을 때 잘못된 크기임: %d, 무시함" -#: pg_receivewal.c:422 +#: pg_receivewal.c:390 #, c-format -msgid "starting log streaming at %X/%X (timeline %u)" -msgstr "로그 스트리밍 시작 위치: %X/%X (타임라인 %u)" +msgid "could not create LZ4 decompression context: %s" +msgstr "LZ4 압축 컨텍스트 정보를 생성할 수 없습니다: %s" + +#: pg_receivewal.c:420 +#, c-format +msgid "could not decompress file \"%s\": %s" +msgstr "\"%s\" 파일 압축 풀기 실패: %s" + +#: pg_receivewal.c:443 +#, c-format +msgid "could not free LZ4 decompression context: %s" +msgstr "LZ4 압축 해제 컨텍스트 반환 실패: %s" -#: pg_receivewal.c:537 pg_recvlogical.c:762 +#: pg_receivewal.c:448 #, c-format -msgid "invalid port number \"%s\"" -msgstr "잘못된 포트 번호: \"%s\"" +msgid "" +"compressed segment file \"%s\" has incorrect uncompressed size %zu, skipping" +msgstr "\"%s\" 압축된 조각 파일은 압축 풀었을 때 잘못된 크기임: %zu, 무시함" + +#: pg_receivewal.c:453 +#, c-format +msgid "" +"cannot check file \"%s\": compression with %s not supported by this build" +msgstr "\"%s\" 파일 검사 실패: %s 압축을 지원 안하게 빌드되었음" + +#: pg_receivewal.c:578 +#, c-format +msgid "starting log streaming at %X/%X (timeline %u)" +msgstr "로그 스트리밍 시작 위치: %X/%X (타임라인 %u)" -#: pg_receivewal.c:565 pg_recvlogical.c:788 +#: pg_receivewal.c:693 pg_recvlogical.c:801 #, c-format msgid "could not parse end position \"%s\"" msgstr "시작 위치 구문이 잘못됨 \"%s\"" -#: pg_receivewal.c:625 +#: pg_receivewal.c:766 #, c-format msgid "cannot use --create-slot together with --drop-slot" msgstr "--create-slot 옵션과 --drop-slot 옵션을 함께 사용할 수 없음" -#: pg_receivewal.c:643 +#: pg_receivewal.c:782 #, c-format msgid "cannot use --synchronous together with --no-sync" msgstr "--synchronous 옵션과 --no-sync 옵션을 함께 사용할 수 없음" -#: pg_receivewal.c:719 +#: pg_receivewal.c:792 +#, c-format +msgid "no target directory specified" +msgstr "대상 디렉터리를 지정하지 않음" + +#: pg_receivewal.c:816 +#, c-format +msgid "compression with %s is not yet supported" +msgstr "%s 압축을 아직 지원하지 않음" + +#: pg_receivewal.c:859 #, c-format msgid "" "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "\"%s\" 슬롯을 이용한 복제 연결은 이 데이터베이스에서 사용할 수 없음" -#: pg_receivewal.c:730 pg_recvlogical.c:966 +#: pg_receivewal.c:878 pg_recvlogical.c:972 #, c-format msgid "dropping replication slot \"%s\"" msgstr "\"%s\" 이름의 복제 슬롯을 삭제 중" -#: pg_receivewal.c:741 pg_recvlogical.c:976 +#: pg_receivewal.c:889 pg_recvlogical.c:982 #, c-format msgid "creating replication slot \"%s\"" msgstr "\"%s\" 이름의 복제 슬롯을 만드는 중" -#: pg_receivewal.c:767 pg_recvlogical.c:1001 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "연결 끊김" #. translator: check source for value for %d -#: pg_receivewal.c:773 pg_recvlogical.c:1007 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "연결 끊김; 다시 연결 하기 위해 %d 초를 기다리는 중" -#: pg_recvlogical.c:73 +#: pg_recvlogical.c:84 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -1112,7 +2248,7 @@ msgstr "" "%s 프로그램은 논리 디코딩 스트림을 제어하는 도구입니다.\n" "\n" -#: pg_recvlogical.c:77 +#: pg_recvlogical.c:88 #, c-format msgid "" "\n" @@ -1121,7 +2257,7 @@ msgstr "" "\n" "성능에 관계된 기능들:\n" -#: pg_recvlogical.c:80 +#: pg_recvlogical.c:91 #, c-format msgid "" " --start start streaming in a replication slot (for the " @@ -1130,12 +2266,12 @@ msgstr "" " --start 복제 슬롯을 이용한 스트리밍 시작 (--slot 옵션에서 슬" "롯 이름 지정)\n" -#: pg_recvlogical.c:83 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=파일 작업 로그를 해당 파일에 기록, 표준 출력은 -\n" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:95 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -1146,14 +2282,14 @@ msgstr "" " 지정한 초 간격으로 파일 fsync 작업을 함 (초기값: " "%d)\n" -#: pg_recvlogical.c:87 +#: pg_recvlogical.c:98 #, c-format msgid "" " -I, --startpos=LSN where in an existing slot should the streaming " "start\n" msgstr " -I, --startpos=LSN 스트리밍을 시작할 기존 슬롯 위치\n" -#: pg_recvlogical.c:89 +#: pg_recvlogical.c:100 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -1164,112 +2300,116 @@ msgstr "" " 출력 플러그인에서 사용할 옵션들의 옵션 이름과 그 " "값\n" -#: pg_recvlogical.c:92 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN 사용할 출력 플러그인 (초기값: %s)\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=슬롯이름 논리 복제 슬롯 이름\n" -#: pg_recvlogical.c:100 +#: pg_recvlogical.c:107 +#, c-format +msgid "" +" -t, --two-phase enable decoding of prepared transactions when " +"creating a slot\n" +msgstr "" +" -t, --two-phase 슬롯을 만들 때 미리 준비된 트랜잭션 디코딩 활성화\n" + +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=디비이름 접속할 데이터베이스\n" -#: pg_recvlogical.c:133 +#: pg_recvlogical.c:145 #, c-format 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:169 receivelog.c:360 #, c-format msgid "could not send feedback packet: %s" msgstr "피드백 패킷을 보낼 수 없음: %s" -#: pg_recvlogical.c:230 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "로그 스트리밍 시작 함, 위치: %X/%X (슬롯 %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "스트리밍 초기화 됨" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "\"%s\" 잠금파일을 열 수 없음: %m" -#: pg_recvlogical.c:361 receivelog.c:873 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "잘못된 소켓: %s" -#: pg_recvlogical.c:414 receivelog.c:901 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format -msgid "select() failed: %m" -msgstr "select() 실패: %m" +msgid "%s() failed: %m" +msgstr "%s() 실패: %m" -#: pg_recvlogical.c:421 receivelog.c:951 +#: pg_recvlogical.c:435 receivelog.c:959 #, 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:477 pg_recvlogical.c:528 receivelog.c:1003 +#: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "스트리밍 헤더 크기가 너무 작음: %d" -#: pg_recvlogical.c:498 receivelog.c:833 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "알 수 없는 스트리밍 헤더: \"%c\"" -#: pg_recvlogical.c:552 pg_recvlogical.c:564 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format -msgid "could not write %u bytes to log file \"%s\": %m" -msgstr "%u 바이트 쓰기 실패, 로그파일 \"%s\": %m" +msgid "could not write %d bytes to log file \"%s\": %m" +msgstr "%d 바이트 쓰기 실패, 대상 로그파일 \"%s\": %m" -#: pg_recvlogical.c:618 receivelog.c:629 receivelog.c:666 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "복제 스트림의 예상치 못한 종료: %s" -#: pg_recvlogical.c:742 -#, c-format -msgid "invalid fsync interval \"%s\"" -msgstr "\"%s\" 값은 잘못된 fsync 반복주기 임" - -#: pg_recvlogical.c:780 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "시작 위치 구문이 잘못됨 \"%s\"" -#: pg_recvlogical.c:869 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "슬롯을 지정하지 않았음" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "대상 파일을 지정하지 않았음" -#: pg_recvlogical.c:885 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "데이터베이스 지정하지 않았음" -#: pg_recvlogical.c:893 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "적어도 하나 이상의 작업 방법을 지정해야 함" -#: pg_recvlogical.c:901 +#: pg_recvlogical.c:902 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "" @@ -1281,89 +2421,94 @@ 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:923 +#, c-format +msgid "--two-phase may only be specified with --create-slot" +msgstr "--two-phase 옵션은 --create-slot 옵션을 쓸 때만 사용 가능함" + +#: pg_recvlogical.c:956 #, c-format msgid "could not establish database-specific replication connection" msgstr "데이터베이스 의존적인 복제 연결을 할 수 없음" -#: pg_recvlogical.c:1047 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "keepalive에 의해서 %X/%X 마지막 위치에 도달했음" -#: pg_recvlogical.c:1050 +#: pg_recvlogical.c:1061 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "%X/%X 마지막 위치가 WAL 레코드 %X/%X 위치에서 도달했음" -#: receivelog.c:69 +#: receivelog.c:66 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "\"%s\" archive status 파일을 만들 수 없습니다: %s" -#: receivelog.c:116 +#: receivelog.c:73 +#, c-format +msgid "could not close archive status file \"%s\": %s" +msgstr "\"%s\" archive status 파일을 닫을 수 없습니다: %s" + +#: receivelog.c:122 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "\"%s\" WAL 파일 크기를 알 수 없음: %s" -#: receivelog.c:126 +#: receivelog.c:133 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "이미 있는 \"%s\" 트랜잭션 로그 파일을 열 수 없음: %s" -#: receivelog.c:134 +#: receivelog.c:142 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "이미 있는 \"%s\" WAL 파일 fsync 실패: %s" -#: receivelog.c:148 +#: receivelog.c:157 #, 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" +msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" +msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" msgstr[0] "" -"\"%s\" 트랜잭션 로그파일의 크기가 %d 바이트임, 0 또는 %d 바이트여야 함" +"\"%s\" 트랜잭션 로그파일의 크기가 %zd 바이트임, 0 또는 %d 바이트여야 함" -#: receivelog.c:163 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "\"%s\" WAL 파일을 열 수 없음: %s" -#: receivelog.c:189 -#, c-format -msgid "could not determine seek position in file \"%s\": %s" -msgstr "\"%s\" 파일의 시작 위치를 결정할 수 없음: %s" - -#: receivelog.c:203 +#: receivelog.c:216 #, c-format -msgid "not renaming \"%s%s\", segment is not complete" -msgstr "\"%s%s\" 이름 변경 실패, 세그먼트가 완료되지 않았음" +msgid "not renaming \"%s\", segment is not complete" +msgstr "\"%s\" 이름 변경 실패, 세그먼트가 완료되지 않았음" -#: receivelog.c:215 receivelog.c:300 receivelog.c:675 +#: receivelog.c:227 receivelog.c:317 receivelog.c:688 #, c-format msgid "could not close file \"%s\": %s" msgstr "\"%s\" 파일을 닫을 수 없음: %s" -#: receivelog.c:272 +#: receivelog.c:288 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "타임라인 %u 번을 위한 내역 파일 이름이 잘못 되었음: %s" -#: receivelog.c:280 +#: receivelog.c:297 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "\"%s\" 타임라인 내역 파일을 만들 수 없음: %s" -#: receivelog.c:287 +#: receivelog.c:304 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "\"%s\" 타임라인 내역 파일에 쓸 수 없음: %s" -#: receivelog.c:377 +#: receivelog.c:394 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1372,7 +2517,7 @@ msgstr "" "%s 서버 버전은 호환되지 않음; 클라이언트는 %s 버전 보다 오래된 서버의 스트리" "밍은 지원하지 않음" -#: receivelog.c:386 +#: receivelog.c:403 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1381,27 +2526,18 @@ msgstr "" "%s 서버 버전은 호환되지 않음; 클라이언트는 %s 버전 보다 새로운 서버의 스트리" "밍은 지원하지 않음" -#: receivelog.c:488 streamutil.c:430 streamutil.c:467 -#, c-format -msgid "" -"could not identify system: got %d rows and %d fields, expected %d rows and " -"%d or more fields" -msgstr "" -"시스템을 식별할 수 없음: 로우수 %d, 필드수 %d, 예상값: 로우수 %d, 필드수 %d " -"이상" - -#: receivelog.c:495 +#: receivelog.c:508 #, c-format msgid "" "system identifier does not match between base backup and streaming connection" msgstr "시스템 식별자가 베이스 백업과 스트리밍 연결에서 서로 다름" -#: receivelog.c:501 +#: receivelog.c:516 #, c-format msgid "starting timeline %u is not present in the server" msgstr "%u 타임라인으로 시작하는 것을 서버에서 제공 하지 않음" -#: receivelog.c:542 +#: receivelog.c:555 #, c-format msgid "" "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, " @@ -1410,12 +2546,12 @@ msgstr "" "TIMELINE_HISTORY 명령 결과가 잘못됨: 받은 값: 로우수 %d, 필드수 %d, 예상값: " "로우수 %d, 필드수 %d" -#: receivelog.c:613 +#: receivelog.c:626 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "서버가 잘못된 다음 타임라인 번호 %u 보고함, 이전 타임라인 번호 %u" -#: receivelog.c:619 +#: receivelog.c:632 #, c-format msgid "" "server stopped streaming timeline %u at %X/%X, but reported next timeline %u " @@ -1424,12 +2560,12 @@ msgstr "" "서버의 중지 위치: 타임라인 %u, 위치 %X/%X, 하지만 보고 받은 위치: 타임라인 " "%u 위치 %X/%X" -#: receivelog.c:659 +#: receivelog.c:672 #, c-format msgid "replication stream was terminated before stop point" msgstr "복제 스트림이 중지 위치 전에 종료 되었음" -#: receivelog.c:705 +#: receivelog.c:718 #, c-format msgid "" "unexpected result set after end-of-timeline: got %d rows and %d fields, " @@ -1438,66 +2574,61 @@ msgstr "" "타임라인 끝에 잘못된 결과가 발견 됨: 로우수 %d, 필드수 %d / 예상값: 로우수 " "%d, 필드수 %d" -#: receivelog.c:714 +#: receivelog.c:727 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "다음 타임라인 시작 위치 분석 실패 \"%s\"" -#: receivelog.c:763 receivelog.c:1015 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "\"%s\" 파일 fsync 실패: %s" -#: receivelog.c:1078 +#: receivelog.c:1083 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "%u 위치의 수신된 트랜잭션 로그 레코드에 파일을 열 수 없음" -#: receivelog.c:1088 +#: receivelog.c:1093 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "잘못된 WAL 자료 위치 %08x, 기대값 %08x" -#: receivelog.c:1122 +#: receivelog.c:1128 #, c-format -msgid "could not write %u bytes to WAL file \"%s\": %s" -msgstr "%u 바이트를 \"%s\" WAL 파일에 쓸 수 없음: %s" +msgid "could not write %d bytes to WAL file \"%s\": %s" +msgstr "%d 바이트를 \"%s\" WAL 파일에 쓸 수 없음: %s" -#: receivelog.c:1147 receivelog.c:1187 receivelog.c:1218 +#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 #, c-format msgid "could not send copy-end packet: %s" msgstr "copy-end 패킷을 보낼 수 없음: %s" -#: streamutil.c:160 +#: streamutil.c:165 msgid "Password: " msgstr "암호: " -#: streamutil.c:185 +#: streamutil.c:192 #, c-format msgid "could not connect to server" msgstr "서버 접속 실패" -#: streamutil.c:202 -#, c-format -msgid "could not connect to server: %s" -msgstr "서버 접속 실패: %s" - -#: streamutil.c:231 +#: streamutil.c:233 #, c-format -msgid "could not clear search_path: %s" -msgstr "search_path를 지울 수 없음: %s" +msgid "could not clear \"search_path\": %s" +msgstr "\"search_path\"를 지울 수 없음: %s" -#: streamutil.c:247 +#: streamutil.c:249 #, c-format -msgid "could not determine server setting for integer_datetimes" -msgstr "integer_datetimes 서버 설정을 알 수 없음" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "\"integer_datetimes\" 서버 설정을 알 수 없음" -#: streamutil.c:254 +#: streamutil.c:256 #, c-format -msgid "integer_datetimes compile flag does not match server" -msgstr "integer_datetimes 컴파일 플래그가 서버와 일치하지 않음" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "\"integer_datetimes\" 컴파일 플래그가 서버와 일치하지 않음" -#: streamutil.c:305 +#: streamutil.c:375 #, c-format msgid "" "could not fetch WAL segment size: got %d rows and %d fields, expected %d " @@ -1506,24 +2637,23 @@ msgstr "" "WAL 조각 크기 계산 실패: 로우수 %d, 필드수 %d, 예상값: 로우수 %d, 필드수 %d " "이상" -#: streamutil.c:315 +#: streamutil.c:385 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL 조각 크기 분석 못함" -#: streamutil.c:333 +#: streamutil.c:403 #, 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 조각 파일 크기는 1MB에서 1GB사이 2의 제곱 크기여야 하는데, " -"원격 서버는 %d 바이트입니다." +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "원격 서버가 잘못 WAL 조각 크기를 보고했음 (%d 바이트)" + +#: streamutil.c:407 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL 조각 파일 크기는 1MB에서 1GB사이 2의 제곱 크기여야 합니다." -#: streamutil.c:378 +#: streamutil.c:449 #, c-format msgid "" "could not fetch group access flag: got %d rows and %d fields, expected %d " @@ -1532,12 +2662,45 @@ msgstr "" "그룹 접근 플래그를 가져올 수 없음: 로우수 %d, 필드수 %d, 예상값: 로우수 %d, " "필드수 %d 이상" -#: streamutil.c:387 +#: streamutil.c:458 #, c-format msgid "group access flag could not be parsed: %s" msgstr "그룹 접근 플래그를 분석 못함: %s" -#: streamutil.c:544 +#: streamutil.c:501 streamutil.c:538 +#, c-format +msgid "" +"could not identify system: got %d rows and %d fields, expected %d rows and " +"%d or more fields" +msgstr "" +"시스템을 식별할 수 없음: 로우수 %d, 필드수 %d, 예상값: 로우수 %d, 필드수 %d " +"이상" + +#: streamutil.c:590 +#, c-format +msgid "" +"could not read replication slot \"%s\": got %d rows and %d fields, expected " +"%d rows and %d fields" +msgstr "" +"\"%s\" 복제 슬롯을 읽을 수 없음: 로우수 %d, 필드수 %d, 기대값 로우수 %d, 필드" +"수 %d" + +#: streamutil.c:602 +#, c-format +msgid "replication slot \"%s\" does not exist" +msgstr "\"%s\" 이름의 복제 슬롯이 없습니다" + +#: streamutil.c:613 +#, c-format +msgid "expected a physical replication slot, got type \"%s\" instead" +msgstr "물리 복제 슬롯을 사용해야 함, \"%s\" 복제 슬롯임" + +#: streamutil.c:627 +#, c-format +msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" +msgstr "\"%s\" restart_lsn 위치를 해석할 수 없음, 해당 슬롯: \"%s\"" + +#: streamutil.c:744 #, c-format msgid "" "could not create replication slot \"%s\": got %d rows and %d fields, " @@ -1546,7 +2709,7 @@ msgstr "" "\"%s\" 복제 슬롯을 만들 수 없음: 로우수 %d, 필드수 %d, 기대값 로우수 %d, 필드" "수 %d" -#: streamutil.c:588 +#: streamutil.c:788 #, c-format msgid "" "could not drop replication slot \"%s\": got %d rows and %d fields, expected " @@ -1555,34 +2718,30 @@ msgstr "" "\"%s\" 복제 슬롯을 삭제할 수 없음: 로우수 %d, 필드수 %d, 기대값 로우수 %d, 필" "드수 %d" -#: walmethods.c:438 walmethods.c:927 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "자료를 압축할 수 없음" -#: walmethods.c:470 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "압축 스트림을 리셋할 수 없음" -#: walmethods.c:568 -msgid "could not initialize compression library" -msgstr "압축 라이브러리를 초기화할 수 없음" - -#: walmethods.c:580 +#: walmethods.c:892 msgid "implementation error: tar files can't have more than one open file" msgstr "구현 오류: tar 파일은 하나 이상 열 수 없음" -#: walmethods.c:594 +#: walmethods.c:907 msgid "could not create tar header" msgstr "tar 해더를 만들 수 없음" -#: walmethods.c:608 walmethods.c:648 walmethods.c:843 walmethods.c:854 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "압축 매개 변수를 바꿀 수 없음" -#: walmethods.c:730 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "압축 상태에서 파일 삭제는 지원하지 않음" -#: walmethods.c:952 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "압축 스트림을 닫을 수 없음" diff --git a/src/bin/pg_basebackup/po/ru.po b/src/bin/pg_basebackup/po/ru.po index 743d7c935e40d..94912f27c90b4 100644 --- a/src/bin/pg_basebackup/po/ru.po +++ b/src/bin/pg_basebackup/po/ru.po @@ -1,21 +1,21 @@ # 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, 2021, 2022. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_basebackup (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-11-01 14:40+0300\n" -"PO-Revision-Date: 2022-09-29 12:01+0300\n" +"POT-Creation-Date: 2024-11-09 07:47+0300\n" +"PO-Revision-Date: 2024-09-07 11:12+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"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" +"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" #: ../../../src/common/logging.c:276 #, c-format @@ -37,37 +37,44 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " -#: ../../common/compression.c:130 ../../common/compression.c:139 -#: ../../common/compression.c:148 +#: ../../common/compression.c:132 ../../common/compression.c:141 +#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 +#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 +#: bbstreamer_zstd.c:284 #, c-format msgid "this build does not support compression with %s" msgstr "эта сборка программы не поддерживает сжатие %s" -#: ../../common/compression.c:203 +#: ../../common/compression.c:205 msgid "found empty string where a compression option was expected" msgstr "вместо указания параметра сжатия получена пустая строка" -#: ../../common/compression.c:237 +#: ../../common/compression.c:244 #, c-format msgid "unrecognized compression option: \"%s\"" msgstr "нераспознанный параметр сжатия: \"%s\"" -#: ../../common/compression.c:276 +#: ../../common/compression.c:283 #, c-format msgid "compression option \"%s\" requires a value" msgstr "для параметра сжатия \"%s\" требуется значение" -#: ../../common/compression.c:285 +#: ../../common/compression.c:292 #, c-format msgid "value for compression option \"%s\" must be an integer" msgstr "значение параметра сжатия \"%s\" должно быть целочисленным" -#: ../../common/compression.c:335 +#: ../../common/compression.c:331 +#, c-format +msgid "value for compression option \"%s\" must be a Boolean value" +msgstr "значение параметра сжатия \"%s\" должно быть булевским" + +#: ../../common/compression.c:379 #, c-format msgid "compression algorithm \"%s\" does not accept a compression level" msgstr "для алгоритма сжатия \"%s\" нельзя задать уровень сжатия" -#: ../../common/compression.c:342 +#: ../../common/compression.c:386 #, c-format msgid "" "compression algorithm \"%s\" expects a compression level between %d and %d " @@ -76,55 +83,149 @@ msgstr "" "для алгоритма сжатия \"%s\" ожидается уровень сжатия от %d до %d (по " "умолчанию %d)" -#: ../../common/compression.c:353 +#: ../../common/compression.c:397 #, c-format msgid "compression algorithm \"%s\" does not accept a worker count" msgstr "для алгоритма сжатия \"%s\" нельзя задать число потоков" +#: ../../common/compression.c:408 +#, c-format +msgid "compression algorithm \"%s\" does not support long-distance mode" +msgstr "алгоритм сжатия \"%s\" не поддерживает режим большой дистанции" + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" + +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"возможно несоответствие порядка байт\n" +"Порядок байт в файле pg_control может не соответствовать используемому\n" +"этой программой. В этом случае результаты будут неверными и\n" +"установленный PostgreSQL будет несовместим с этим каталогом данных." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не удалось записать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 -#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:162 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format msgid "out of memory\n" msgstr "нехватка памяти\n" -#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:154 +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 #, c-format msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:451 -#: pg_receivewal.c:380 pg_recvlogical.c:341 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не удалось получить информацию о файле \"%s\": %m" -#: ../../common/file_utils.c:166 pg_receivewal.c:303 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: ../../common/file_utils.c:200 pg_receivewal.c:532 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" -#: ../../common/file_utils.c:232 ../../common/file_utils.c:291 -#: ../../common/file_utils.c:365 ../../fe_utils/recovery_gen.c:121 -#: pg_receivewal.c:447 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" -#: ../../common/file_utils.c:303 ../../common/file_utils.c:373 -#: pg_recvlogical.c:196 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" +msgid "could not open process token: error code %lu" +msgstr "не удалось открыть маркер процесса (код ошибки: %lu)" -#: ../../common/file_utils.c:383 pg_basebackup.c:2266 walmethods.c:459 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "не удалось подготовить структуры SID (код ошибки: %lu)" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "не удалось создать ограниченный маркер (код ошибки: %lu)" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "не удалось запустить процесс для команды \"%s\" (код ошибки: %lu)" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "не удалось перезапуститься с ограниченным маркером (код ошибки: %lu)" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -136,51 +237,65 @@ msgstr "неверное значение \"%s\" для параметра %s" msgid "%s must be in range %d..%d" msgstr "значение %s должно быть в диапазоне %d..%d" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 pg_basebackup.c:1646 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:334 #, c-format msgid "out of memory" msgstr "нехватка памяти" -#: ../../fe_utils/recovery_gen.c:124 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1443 pg_basebackup.c:1737 +#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, c-format msgid "could not write to file \"%s\": %m" msgstr "не удалось записать в файл \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 bbstreamer_file.c:93 bbstreamer_file.c:339 -#: pg_basebackup.c:1507 pg_basebackup.c:1716 +#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "не удалось создать файл \"%s\": %m" -#: bbstreamer_file.c:138 pg_recvlogical.c:635 +#: ../../fe_utils/string_utils.c:434 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "не удалось закрыть файл \"%s\": %m" +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" #: bbstreamer_file.c:275 #, c-format msgid "unexpected state while extracting archive" msgstr "неожиданное состояние при извлечении архива" -#: bbstreamer_file.c:298 pg_basebackup.c:696 pg_basebackup.c:740 +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: bbstreamer_file.c:304 +#: bbstreamer_file.c:326 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не удалось установить права для каталога \"%s\": %m" -#: bbstreamer_file.c:323 +#: bbstreamer_file.c:345 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\" в \"%s\": %m" -#: bbstreamer_file.c:343 +#: bbstreamer_file.c:365 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "не удалось установить права доступа для файла \"%s\": %m" @@ -205,11 +320,6 @@ msgstr "не удалось открыть выходной файл: %m" msgid "could not set compression level %d: %s" msgstr "не удалось установить уровень сжатия %d: %s" -#: bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 -#, c-format -msgid "this build does not support gzip compression" -msgstr "эта сборка программы не поддерживает сжатие gzip" - #: bbstreamer_gzip.c:143 #, c-format msgid "could not write to compressed file \"%s\": %s" @@ -220,12 +330,12 @@ msgstr "не удалось записать сжатый файл \"%s\": %s" msgid "could not close compressed file \"%s\": %m" msgstr "не удалось закрыть сжатый файл \"%s\": %m" -#: bbstreamer_gzip.c:245 walmethods.c:869 +#: bbstreamer_gzip.c:245 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "не удалось инициализировать библиотеку сжатия" -#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:316 +#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 #, c-format msgid "could not decompress data: %s" msgstr "не удалось распаковать данные: %s" @@ -240,17 +350,12 @@ msgstr "неожиданное состояние при внедрении па msgid "could not create lz4 compression context: %s" msgstr "не удалось создать контекст сжатия lz4: %s" -#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 -#, c-format -msgid "this build does not support lz4 compression" -msgstr "эта сборка программы не поддерживает сжатие lz4" - #: bbstreamer_lz4.c:140 #, c-format msgid "could not write lz4 header: %s" msgstr "не удалось записать заголовок lz4: %s" -#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:168 bbstreamer_zstd.c:210 +#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 #, c-format msgid "could not compress data: %s" msgstr "не удалось сжать данные: %s" @@ -275,12 +380,12 @@ msgstr "окончание файла tar занимает больше 2 бло msgid "unexpected state while parsing tar archive" msgstr "неожиданное состояние при разборе архива tar" -#: bbstreamer_tar.c:296 +#: bbstreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "пустое имя у компонента tar" -#: bbstreamer_tar.c:328 +#: bbstreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "поток COPY закончился до завершения последнего файла" @@ -300,103 +405,103 @@ msgstr "не удалось установить для zstd уровень сж msgid "could not set compression worker count to %d: %s" msgstr "не удалось установить для zstd число потоков %d: %s" -#: bbstreamer_zstd.c:116 bbstreamer_zstd.c:271 +#: bbstreamer_zstd.c:116 #, c-format -msgid "this build does not support zstd compression" -msgstr "эта сборка программы не поддерживает сжатие zstd" +msgid "could not enable long-distance mode: %s" +msgstr "не удалось включить режим большой дистанции: %s" -#: bbstreamer_zstd.c:262 +#: bbstreamer_zstd.c:275 #, c-format msgid "could not create zstd decompression context" msgstr "не удалось создать контекст распаковки zstd" -#: pg_basebackup.c:240 +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "удаление каталога данных \"%s\"" -#: pg_basebackup.c:242 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "ошибка при удалении каталога данных" -#: pg_basebackup.c:246 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "удаление содержимого каталога данных \"%s\"" -#: pg_basebackup.c:248 +#: pg_basebackup.c:253 #, c-format msgid "failed to remove contents of data directory" msgstr "ошибка при удалении содержимого каталога данных" -#: pg_basebackup.c:253 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "удаление каталога WAL \"%s\"" -#: pg_basebackup.c:255 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "ошибка при удалении каталога WAL" -#: pg_basebackup.c:259 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "удаление содержимого каталога WAL \"%s\"" -#: pg_basebackup.c:261 +#: pg_basebackup.c:266 #, c-format msgid "failed to remove contents of WAL directory" msgstr "ошибка при удалении содержимого каталога WAL" -#: pg_basebackup.c:267 +#: pg_basebackup.c:272 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "каталог данных \"%s\" не был удалён по запросу пользователя" -#: pg_basebackup.c:270 +#: pg_basebackup.c:275 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "каталог WAL \"%s\" не был удалён по запросу пользователя" -#: pg_basebackup.c:274 +#: pg_basebackup.c:279 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "изменения в каталогах табличных пространств не будут отменены" -#: pg_basebackup.c:326 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "слишком длинное имя каталога" -#: pg_basebackup.c:333 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "несколько знаков \"=\" в сопоставлении табличного пространства" -#: pg_basebackup.c:342 +#: pg_basebackup.c:347 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "" "сопоставление табл. пространства записано неверно: \"%s\"; должно быть " "\"СТАРЫЙ_КАТАЛОГ=НОВЫЙ_КАТАЛОГ\"" -#: pg_basebackup.c:361 +#: pg_basebackup.c:366 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "" "старый каталог в сопоставлении табл. пространства задан не абсолютным путём: " "%s" -#: pg_basebackup.c:365 +#: pg_basebackup.c:370 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "" "новый каталог в сопоставлении табл. пространства задан не абсолютным путём: " "%s" -#: pg_basebackup.c:387 +#: pg_basebackup.c:392 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -405,17 +510,19 @@ msgstr "" "%s делает базовую резервную копию работающего сервера PostgreSQL.\n" "\n" -#: pg_basebackup.c:389 pg_receivewal.c:81 pg_recvlogical.c:78 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_basebackup.c:390 pg_receivewal.c:82 pg_recvlogical.c:79 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [ПАРАМЕТР]...\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:396 #, c-format msgid "" "\n" @@ -424,19 +531,28 @@ msgstr "" "\n" "Параметры, управляющие выводом:\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:397 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, --pgdata=КАТАЛОГ сохранить базовую копию в указанный каталог\n" -#: pg_basebackup.c:393 +#: pg_basebackup.c:398 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr "" " -F, --format=p|t формат вывода (p (по умолчанию) - простой, t - " "tar)\n" -#: pg_basebackup.c:394 +#: pg_basebackup.c:399 +#, c-format +msgid "" +" -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr "" +" -i, --incremental=СТАРЫЙ_МАНИФЕСТ\n" +" создать инкрементальную копию\n" + +#: pg_basebackup.c:401 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -445,7 +561,7 @@ msgstr "" " -r, --max-rate=СКОРОСТЬ макс. скорость передачи данных в целевой каталог\n" " (в КБ/с, либо добавьте суффикс \"k\" или \"M\")\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:403 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -455,7 +571,7 @@ msgstr "" " записать конфигурацию для репликации\n" # well-spelled: ИНФО -#: pg_basebackup.c:398 +#: pg_basebackup.c:405 #, c-format msgid "" " -t, --target=TARGET[:DETAIL]\n" @@ -464,7 +580,7 @@ msgstr "" " -t, --target=ПОЛУЧАТЕЛЬ[:ДОП_ИНФО]\n" " получатель копии (если отличается от client)\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:407 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -475,14 +591,14 @@ msgstr "" "каталога\n" " в новый\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:409 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr "" " --waldir=КАТАЛОГ_WAL\n" " расположение каталога с журналом предзаписи\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:410 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -492,13 +608,13 @@ msgstr "" " включить в копию требуемые файлы WAL, используя\n" " заданный метод\n" -#: pg_basebackup.c:405 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip сжать выходной tar\n" # well-spelled: ИНФО -#: pg_basebackup.c:406 +#: pg_basebackup.c:413 #, c-format msgid "" " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" @@ -508,12 +624,12 @@ msgstr "" " выполнять сжатие на клиенте или сервере как " "указано\n" -#: pg_basebackup.c:408 +#: pg_basebackup.c:415 #, c-format msgid " -Z, --compress=none do not compress tar output\n" msgstr " -Z, --compress=none не сжимать вывод tar\n" -#: pg_basebackup.c:409 +#: pg_basebackup.c:416 #, c-format msgid "" "\n" @@ -522,31 +638,32 @@ msgstr "" "\n" "Общие параметры:\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:417 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" -" set fast or spread checkpointing\n" +" set fast or spread (default) checkpointing\n" msgstr "" " -c, --checkpoint=fast|spread\n" -" режим быстрых или распределённых контрольных точек\n" +" режим быстрых или распределённых (по умолчанию)\n" +" контрольных точек\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " -C, --create-slot создать слот репликации\n" -#: pg_basebackup.c:413 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=МЕТКА установить метку резервной копии\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:421 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean не очищать после ошибок\n" -#: pg_basebackup.c:415 +#: pg_basebackup.c:422 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -554,27 +671,27 @@ msgid "" msgstr "" " -N, --no-sync не ждать завершения сохранения данных на диске\n" -#: pg_basebackup.c:416 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress показывать прогресс операции\n" -#: pg_basebackup.c:417 pg_receivewal.c:91 +#: pg_basebackup.c:424 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=ИМЯ_СЛОТА использовать заданный слот репликации\n" -#: pg_basebackup.c:418 pg_receivewal.c:93 pg_recvlogical.c:100 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose выводить подробные сообщения\n" -#: pg_basebackup.c:419 pg_receivewal.c:94 pg_recvlogical.c:101 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_basebackup.c:420 +#: pg_basebackup.c:427 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -585,7 +702,7 @@ msgstr "" # skip-rule: capital-letter-first # well-spelled: шестнадц -#: pg_basebackup.c:422 +#: pg_basebackup.c:429 #, c-format msgid "" " --manifest-force-encode\n" @@ -595,25 +712,25 @@ msgstr "" " записывать все имена файлов в манифесте в шестнадц. " "виде\n" -#: pg_basebackup.c:424 +#: pg_basebackup.c:431 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" msgstr "" " --no-estimate-size не рассчитывать размер копии на стороне сервера\n" -#: pg_basebackup.c:425 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest отключить создание манифеста копии\n" -#: pg_basebackup.c:426 +#: pg_basebackup.c:433 #, c-format msgid "" " --no-slot prevent creation of temporary replication slot\n" msgstr "" " --no-slot предотвратить создание временного слота репликации\n" -#: pg_basebackup.c:427 +#: pg_basebackup.c:434 #, c-format msgid "" " --no-verify-checksums\n" @@ -622,12 +739,22 @@ msgstr "" " --no-verify-checksums\n" " не проверять контрольные суммы\n" -#: pg_basebackup.c:429 pg_receivewal.c:97 pg_recvlogical.c:102 +# well-spelled: ИНФО +#: pg_basebackup.c:436 +#, c-format +msgid "" +" --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr "" +" --sync-method=МЕТОД\n" +" метод синхронизации файлов с ФС\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_basebackup.c:430 pg_receivewal.c:98 pg_recvlogical.c:103 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "" "\n" @@ -636,22 +763,24 @@ msgstr "" "\n" "Параметры подключения:\n" -#: pg_basebackup.c:431 pg_receivewal.c:99 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=СТРОКА строка подключения\n" -#: pg_basebackup.c:432 pg_receivewal.c:100 pg_recvlogical.c:105 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" -msgstr " -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" +msgstr "" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" -#: pg_basebackup.c:433 pg_receivewal.c:101 pg_recvlogical.c:106 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=ПОРТ номер порта сервера БД\n" -#: pg_basebackup.c:434 +#: pg_basebackup.c:443 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -662,19 +791,19 @@ msgstr "" " интервал между передаваемыми серверу\n" " пакетами состояния (в секундах)\n" -#: pg_basebackup.c:436 pg_receivewal.c:102 pg_recvlogical.c:107 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr "" " -U, --username=NAME connect as specified database user\n" " -U, --username=ИМЯ имя пользователя баз данных\n" -#: pg_basebackup.c:437 pg_receivewal.c:103 pg_recvlogical.c:108 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: pg_basebackup.c:438 pg_receivewal.c:104 pg_recvlogical.c:109 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, c-format msgid "" " -W, --password force password prompt (should happen " @@ -682,7 +811,8 @@ msgid "" msgstr "" " -W, --password запрашивать пароль всегда (обычно не требуется)\n" -#: pg_basebackup.c:439 pg_receivewal.c:108 pg_recvlogical.c:110 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "" "\n" @@ -691,63 +821,64 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_basebackup.c:440 pg_receivewal.c:109 pg_recvlogical.c:111 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_basebackup.c:482 +#: pg_basebackup.c:488 #, c-format msgid "could not read from ready pipe: %m" msgstr "не удалось прочитать из готового канала: %m" -#: pg_basebackup.c:485 pg_basebackup.c:632 pg_basebackup.c:2180 -#: streamutil.c:444 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:521 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "не удалось разобрать положение в журнале предзаписи \"%s\"" -#: pg_basebackup.c:591 pg_receivewal.c:663 +#: pg_basebackup.c:596 pg_receivewal.c:600 #, c-format msgid "could not finish writing WAL files: %m" msgstr "не удалось завершить запись файлов WAL: %m" -#: pg_basebackup.c:641 +#: pg_basebackup.c:642 #, c-format msgid "could not create pipe for background process: %m" msgstr "не удалось создать канал для фонового процесса: %m" -#: pg_basebackup.c:674 +#: pg_basebackup.c:676 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "создан временный слот репликации \"%s\"" -#: pg_basebackup.c:677 +#: pg_basebackup.c:679 #, c-format msgid "created replication slot \"%s\"" msgstr "создан слот репликации \"%s\"" -#: pg_basebackup.c:711 +#: pg_basebackup.c:728 #, c-format msgid "could not create background process: %m" msgstr "не удалось создать фоновый процесс: %m" -#: pg_basebackup.c:720 +#: pg_basebackup.c:737 #, c-format msgid "could not create background thread: %m" msgstr "не удалось создать фоновый поток выполнения: %m" -#: pg_basebackup.c:759 +#: pg_basebackup.c:776 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" существует, но он не пуст" -#: pg_basebackup.c:765 +#: pg_basebackup.c:782 pg_createsubscriber.c:390 #, c-format msgid "could not access directory \"%s\": %m" -msgstr "ошибка доступа к каталогу \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" -#: pg_basebackup.c:842 +#: pg_basebackup.c:858 #, c-format msgid "%*s/%s kB (100%%), %d/%d tablespace %*s" msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s" @@ -755,7 +886,7 @@ msgstr[0] "%*s/%s КБ (100%%), табличное пространство %d/% msgstr[1] "%*s/%s КБ (100%%), табличное пространство %d/%d %*s" msgstr[2] "%*s/%s КБ (100%%), табличное пространство %d/%d %*s" -#: pg_basebackup.c:854 +#: pg_basebackup.c:870 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)" @@ -763,7 +894,7 @@ msgstr[0] "%*s/%s КБ (%d%%), табличное пространство %d/%d msgstr[1] "%*s/%s КБ (%d%%), табличное пространство %d/%d (%s%-*.*s)" msgstr[2] "%*s/%s КБ (%d%%), табличное пространство %d/%d (%s%-*.*s)" -#: pg_basebackup.c:870 +#: pg_basebackup.c:886 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" @@ -771,58 +902,58 @@ msgstr[0] "%*s/%s КБ (%d%%), табличное пространство %d/%d msgstr[1] "%*s/%s КБ (%d%%), табличное пространство %d/%d" msgstr[2] "%*s/%s КБ (%d%%), табличное пространство %d/%d" -#: pg_basebackup.c:894 +#: pg_basebackup.c:910 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "неверное значение (\"%s\") для скорости передачи данных" -#: pg_basebackup.c:896 +#: pg_basebackup.c:912 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "неверная скорость передачи данных \"%s\": %m" -#: pg_basebackup.c:903 +#: pg_basebackup.c:919 #, c-format msgid "transfer rate must be greater than zero" msgstr "скорость передачи должна быть больше 0" -#: pg_basebackup.c:933 +#: pg_basebackup.c:949 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "неверная единица измерения в --max-rate: \"%s\"" -#: pg_basebackup.c:937 +#: pg_basebackup.c:953 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "скорость передачи \"%s\" вне целочисленного диапазона" -#: pg_basebackup.c:944 +#: pg_basebackup.c:960 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "скорость передачи \"%s\" вне диапазона" -#: pg_basebackup.c:1040 +#: pg_basebackup.c:1022 #, c-format msgid "could not get COPY data stream: %s" msgstr "не удалось получить поток данных COPY: %s" -#: pg_basebackup.c:1057 pg_recvlogical.c:438 pg_recvlogical.c:610 -#: receivelog.c:981 +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 +#: receivelog.c:973 #, c-format msgid "could not read COPY data: %s" msgstr "не удалось прочитать данные COPY: %s" -#: pg_basebackup.c:1061 +#: pg_basebackup.c:1043 #, c-format msgid "background process terminated unexpectedly" msgstr "фоновый процесс завершился неожиданно" -#: pg_basebackup.c:1132 +#: pg_basebackup.c:1114 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "манифест нельзя внедрить в сжатый архив tar" -#: pg_basebackup.c:1133 +#: pg_basebackup.c:1115 #, c-format msgid "" "Use client-side compression, send the output to a directory rather than " @@ -831,24 +962,24 @@ msgstr "" "Примените сжатие на стороне клиента, передайте вывод в каталог, а не в " "стандартный вывод, или используйте %s." -#: pg_basebackup.c:1149 +#: pg_basebackup.c:1131 #, c-format msgid "cannot parse archive \"%s\"" msgstr "обработать архив \"%s\" невозможно" -#: pg_basebackup.c:1150 +#: pg_basebackup.c:1132 #, c-format msgid "Only tar archives can be parsed." msgstr "Возможна обработка только архивов tar." -#: pg_basebackup.c:1152 +#: pg_basebackup.c:1134 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "" "Когда используется простой формат, программа pg_basebackup должна обработать " "архив." -#: pg_basebackup.c:1154 +#: pg_basebackup.c:1136 #, c-format msgid "" "Using - as the output directory requires pg_basebackup to parse the archive." @@ -856,89 +987,119 @@ msgstr "" "Когда в качестве выходного каталога используется \"-\", программа " "pg_basebackup должна обработать архив." -#: pg_basebackup.c:1156 +#: pg_basebackup.c:1138 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "" "Когда используется ключ -R, программа pg_basebackup должна обработать архив." -#: pg_basebackup.c:1367 +#: pg_basebackup.c:1357 #, c-format msgid "archives must precede manifest" msgstr "архивы должны предшествовать манифесту" -#: pg_basebackup.c:1382 +#: pg_basebackup.c:1372 #, c-format msgid "invalid archive name: \"%s\"" msgstr "неверное имя архива: \"%s\"" -#: pg_basebackup.c:1454 +#: pg_basebackup.c:1444 #, c-format msgid "unexpected payload data" msgstr "неожиданно получены данные" -#: pg_basebackup.c:1597 +#: pg_basebackup.c:1587 #, c-format msgid "empty COPY message" msgstr "пустое сообщение COPY" -#: pg_basebackup.c:1599 +#: pg_basebackup.c:1589 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "неправильное сообщение COPY типа %d, длины %zu" -#: pg_basebackup.c:1797 +#: pg_basebackup.c:1789 #, c-format msgid "incompatible server version %s" msgstr "несовместимая версия сервера %s" -#: pg_basebackup.c:1813 +#: pg_basebackup.c:1805 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "Укажите -X none или -X fetch для отключения трансляции журнала." -#: pg_basebackup.c:1881 +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "сервер не поддерживает инкрементальное копирование" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:367 streamutil.c:441 +#: streamutil.c:493 streamutil.c:581 streamutil.c:733 streamutil.c:778 +#, c-format +msgid "could not send replication command \"%s\": %s" +msgstr "не удалось передать команду репликации \"%s\": %s" + +#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "не удалось загрузить манифест на сервер: %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#, c-format +msgid "could not upload manifest: unexpected status %s" +msgstr "не удалось загрузить манифест на сервер: неожиданное состояние %s" + +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "не удалось отправить данные COPY: %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "не удалось отправить сообщение \"конец COPY\": %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "неожиданный лишний результат при передаче манифеста" + +#: pg_basebackup.c:1950 #, c-format msgid "backup targets are not supported by this server version" msgstr "получатели копий не поддерживаются данной версией сервера" -#: pg_basebackup.c:1884 +#: pg_basebackup.c:1953 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "" "при использовании получателя копии записать конфигурацию восстановления " "нельзя" -#: pg_basebackup.c:1911 +#: pg_basebackup.c:1980 #, c-format msgid "server does not support server-side compression" msgstr "сервер не поддерживает сжатие на стороне сервера" -#: pg_basebackup.c:1921 +#: pg_basebackup.c:1990 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "" "начинается базовое резервное копирование, ожидается завершение контрольной " "точки" -#: pg_basebackup.c:1925 +#: pg_basebackup.c:1994 #, c-format msgid "waiting for checkpoint" msgstr "ожидание контрольной точки" -#: pg_basebackup.c:1938 pg_recvlogical.c:262 receivelog.c:549 receivelog.c:588 -#: streamutil.c:291 streamutil.c:364 streamutil.c:416 streamutil.c:504 -#: streamutil.c:656 streamutil.c:701 -#, c-format -msgid "could not send replication command \"%s\": %s" -msgstr "не удалось передать команду репликации \"%s\": %s" - -#: pg_basebackup.c:1946 +#: pg_basebackup.c:2016 #, c-format msgid "could not initiate base backup: %s" msgstr "не удалось инициализировать базовое резервное копирование: %s" -#: pg_basebackup.c:1949 +#: pg_basebackup.c:2019 #, c-format msgid "" "server returned unexpected response to BASE_BACKUP command; got %d rows and " @@ -947,123 +1108,130 @@ msgstr "" "сервер вернул неожиданный ответ на команду BASE_BACKUP; получено строк: %d, " "полей: %d, а ожидалось строк: %d, полей: %d" -#: pg_basebackup.c:1955 +#: pg_basebackup.c:2025 #, c-format msgid "checkpoint completed" msgstr "контрольная точка завершена" -#: pg_basebackup.c:1970 +#: pg_basebackup.c:2039 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "стартовая точка в журнале предзаписи: %s на линии времени %u" -#: pg_basebackup.c:1978 +#: pg_basebackup.c:2047 #, c-format msgid "could not get backup header: %s" msgstr "не удалось получить заголовок резервной копии: %s" -#: pg_basebackup.c:1981 +#: pg_basebackup.c:2050 #, c-format msgid "no data returned from server" msgstr "сервер не вернул данные" -#: pg_basebackup.c:2016 +#: pg_basebackup.c:2093 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "" "в stdout можно вывести только одно табличное пространство, всего в СУБД их %d" -#: pg_basebackup.c:2029 +#: pg_basebackup.c:2106 #, c-format msgid "starting background WAL receiver" msgstr "запуск фонового процесса считывания WAL" -#: pg_basebackup.c:2111 +#: pg_basebackup.c:2189 #, c-format msgid "backup failed: %s" msgstr "ошибка при создании копии: %s" -#: pg_basebackup.c:2114 +#: pg_basebackup.c:2192 #, c-format msgid "no write-ahead log end position returned from server" msgstr "сервер не передал конечную позицию в журнале предзаписи" -#: pg_basebackup.c:2117 +#: pg_basebackup.c:2195 #, c-format msgid "write-ahead log end point: %s" msgstr "конечная точка в журнале предзаписи: %s" -#: pg_basebackup.c:2128 +#: pg_basebackup.c:2206 #, c-format msgid "checksum error occurred" msgstr "выявлена ошибка контрольной суммы" -#: pg_basebackup.c:2133 +#: pg_basebackup.c:2211 #, c-format msgid "final receive failed: %s" msgstr "ошибка в конце передачи: %s" -#: pg_basebackup.c:2157 +#: pg_basebackup.c:2235 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "ожидание завершения потоковой передачи фоновым процессом..." -#: pg_basebackup.c:2161 +#: pg_basebackup.c:2239 #, c-format msgid "could not send command to background pipe: %m" msgstr "не удалось отправить команду в канал фонового процесса: %m" -#: pg_basebackup.c:2166 +#: pg_basebackup.c:2244 #, c-format msgid "could not wait for child process: %m" msgstr "сбой при ожидании дочернего процесса: %m" -#: pg_basebackup.c:2168 +#: pg_basebackup.c:2246 #, c-format msgid "child %d died, expected %d" msgstr "завершился дочерний процесс %d вместо ожидаемого %d" -#: pg_basebackup.c:2170 streamutil.c:91 streamutil.c:197 +#: pg_basebackup.c:2248 streamutil.c:92 streamutil.c:207 streamutil.c:319 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2190 +#: pg_basebackup.c:2268 #, c-format msgid "could not wait for child thread: %m" msgstr "сбой при ожидании дочернего потока: %m" -#: pg_basebackup.c:2195 +#: pg_basebackup.c:2273 #, c-format msgid "could not get child thread exit status: %m" msgstr "не удалось получить состояние завершения дочернего потока: %m" -#: pg_basebackup.c:2198 +#: pg_basebackup.c:2276 #, c-format msgid "child thread exited with error %u" msgstr "дочерний поток завершился с ошибкой %u" -#: pg_basebackup.c:2227 +#: pg_basebackup.c:2305 #, c-format msgid "syncing data to disk ..." msgstr "сохранение данных на диске..." -#: pg_basebackup.c:2252 +#: pg_basebackup.c:2330 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "переименование backup_manifest.tmp в backup_manifest" -#: pg_basebackup.c:2272 +#: pg_basebackup.c:2350 #, c-format msgid "base backup completed" msgstr "базовое резервное копирование завершено" -#: pg_basebackup.c:2361 +#: pg_basebackup.c:2436 +#, c-format +msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" +msgstr "" +"неверный аргумент режима контрольных точек \"%s\"; должен быть \"fast\" или " +"\"spread\"" + +#: pg_basebackup.c:2454 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "неверный формат вывода \"%s\", должен быть \"plain\" или \"tar\"" -#: pg_basebackup.c:2405 +#: pg_basebackup.c:2535 #, c-format msgid "" "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" @@ -1071,137 +1239,167 @@ msgstr "" "неверный аргумент для wal-method — \"%s\", допускается только \"fetch\", " "\"stream\" или \"none\"" -#: pg_basebackup.c:2435 -#, c-format -msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" -msgstr "" -"неверный аргумент режима контрольных точек \"%s\"; должен быть \"fast\" или " -"\"spread\"" - -#: pg_basebackup.c:2486 pg_basebackup.c:2498 pg_basebackup.c:2520 -#: pg_basebackup.c:2532 pg_basebackup.c:2538 pg_basebackup.c:2590 -#: pg_basebackup.c:2601 pg_basebackup.c:2611 pg_basebackup.c:2617 -#: pg_basebackup.c:2624 pg_basebackup.c:2636 pg_basebackup.c:2648 -#: pg_basebackup.c:2656 pg_basebackup.c:2669 pg_basebackup.c:2675 -#: pg_basebackup.c:2684 pg_basebackup.c:2696 pg_basebackup.c:2707 -#: pg_basebackup.c:2715 pg_receivewal.c:814 pg_receivewal.c:826 -#: pg_receivewal.c:833 pg_receivewal.c:842 pg_receivewal.c:849 -#: pg_receivewal.c:859 pg_recvlogical.c:837 pg_recvlogical.c:849 -#: pg_recvlogical.c:859 pg_recvlogical.c:866 pg_recvlogical.c:873 -#: pg_recvlogical.c:880 pg_recvlogical.c:887 pg_recvlogical.c:894 -#: pg_recvlogical.c:901 pg_recvlogical.c:908 +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2037 pg_createsubscriber.c:2047 +#: pg_createsubscriber.c:2055 pg_createsubscriber.c:2083 +#: pg_createsubscriber.c:2115 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_basebackup.c:2496 pg_receivewal.c:824 pg_recvlogical.c:847 +#: pg_basebackup.c:2584 pg_createsubscriber.c:2045 pg_receivewal.c:758 +#: pg_recvlogical.c:863 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_basebackup.c:2519 +#: pg_basebackup.c:2607 #, c-format msgid "cannot specify both format and backup target" msgstr "указать и формат, и получателя копии одновременно нельзя" -#: pg_basebackup.c:2531 +#: pg_basebackup.c:2619 #, c-format msgid "must specify output directory or backup target" msgstr "необходимо указать выходной каталог или получателя копии" -#: pg_basebackup.c:2537 +#: pg_basebackup.c:2625 #, c-format msgid "cannot specify both output directory and backup target" msgstr "указать и выходной каталог, и получателя копии одновременно нельзя" -#: pg_basebackup.c:2567 pg_receivewal.c:868 +#: pg_basebackup.c:2655 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "нераспознанный алгоритм сжатия: \"%s\"" -#: pg_basebackup.c:2573 pg_receivewal.c:875 +#: pg_basebackup.c:2661 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "неправильное указание сжатия: %s" -#: pg_basebackup.c:2589 +#: pg_basebackup.c:2677 #, c-format msgid "" "client-side compression is not possible when a backup target is specified" msgstr "сжатие на стороне клиента невозможно при указании получателя копии" -#: pg_basebackup.c:2600 +#: pg_basebackup.c:2688 #, c-format msgid "only tar mode backups can be compressed" msgstr "сжиматься могут только резервные копии в архиве tar" -#: pg_basebackup.c:2610 +#: pg_basebackup.c:2698 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "потоковая передача WAL невозможна при указании получателя копии" -#: pg_basebackup.c:2616 +#: pg_basebackup.c:2704 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "транслировать журналы предзаписи в режиме tar в поток stdout нельзя" -#: pg_basebackup.c:2623 +#: pg_basebackup.c:2711 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "слоты репликации можно использовать только при потоковой передаче WAL" -#: pg_basebackup.c:2635 +#: pg_basebackup.c:2723 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot нельзя использовать с именем слота" #. translator: second %s is an option name -#: pg_basebackup.c:2646 pg_receivewal.c:840 +#: pg_basebackup.c:2734 pg_receivewal.c:774 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "для %s необходимо задать слот с помощью параметра --slot" -#: pg_basebackup.c:2654 pg_basebackup.c:2694 pg_basebackup.c:2705 -#: pg_basebackup.c:2713 +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 #, c-format msgid "%s and %s are incompatible options" msgstr "параметры %s и %s несовместимы" -#: pg_basebackup.c:2668 +#: pg_basebackup.c:2756 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "расположение каталога WAL нельзя указать вместе с получателем копии" -#: pg_basebackup.c:2674 +#: pg_basebackup.c:2762 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "расположение каталога WAL можно указать только в режиме plain" -#: pg_basebackup.c:2683 +#: pg_basebackup.c:2771 #, c-format msgid "WAL directory location must be an absolute path" msgstr "расположение каталога WAL должно определяться абсолютным путём" -#: pg_basebackup.c:2784 +#: pg_basebackup.c:2871 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалось создать символическую ссылку \"%s\": %m" -#: pg_basebackup.c:2786 +#: pg_createsubscriber.c:169 #, c-format -msgid "symlinks are not supported on this platform" -msgstr "символические ссылки не поддерживаются в этой ОС" +msgid "failed after the end of recovery" +msgstr "ошибка после окончания восстановления" -#: pg_receivewal.c:79 +#: pg_createsubscriber.c:170 #, c-format msgid "" -"%s receives PostgreSQL streaming write-ahead logs.\n" +"The target server cannot be used as a physical replica anymore. You must " +"recreate the physical replica before continuing." +msgstr "" +"Целевой сервер больше не может использоваться как физическая реплика. Чтобы " +"продолжить, физическую реплику необходимо пересоздать." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "" +"publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "на главном сервере осталась публикация \"%s\", созданная в базе \"%s\"" + +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "Удалите эту публикацию и попробуйте повторить операцию." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "" +"replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "" +"на главном сервере остался слот репликации \"%s\", созданный в базе \"%s\"" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1260 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "" +"Удалите этот слот репликации незамедлительно во избежание накопления файлов " +"WAL." + +#: pg_createsubscriber.c:219 +#, c-format +msgid "" +"%s creates a new logical replica from a standby server.\n" "\n" msgstr "" -"%s получает транслируемые журналы предзаписи PostgreSQL.\n" +"%s превращает резервный сервер в логическую реплику.\n" "\n" -#: pg_receivewal.c:83 pg_recvlogical.c:84 +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 #, c-format msgid "" "\n" @@ -1210,7 +1408,681 @@ msgstr "" "\n" "Параметры:\n" -#: pg_receivewal.c:84 +#: pg_createsubscriber.c:224 +#, c-format +msgid "" +" -d, --database=DBNAME database in which to create a " +"subscription\n" +msgstr "" +" -d, --database=ИМЯ_БД база, в которой будет создана подписка\n" + +#: pg_createsubscriber.c:225 +#, c-format +msgid "" +" -D, --pgdata=DATADIR location for the subscriber data " +"directory\n" +msgstr "" +" -D, --pgdata=КАТ_ДАННЫХ расположение каталога данных подписчика\n" + +#: pg_createsubscriber.c:226 +#, c-format +msgid "" +" -n, --dry-run dry run, just show what would be done\n" +msgstr "" +" -n, --dry-run показать, какие действия будут выполнены,\n" +" но не выполнять их\n" + +#: pg_createsubscriber.c:227 +#, c-format +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr "" +" -p, --subscriber-port=ПОРТ номер порта подписчика (по умолчанию: %s)\n" + +#: pg_createsubscriber.c:228 +#, c-format +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr "" +" -P, --publisher-server=СТРОКА строка подключения к серверу публикации\n" + +#: pg_createsubscriber.c:229 +#, c-format +msgid "" +" -s, --socketdir=DIR socket directory to use (default current " +"dir.)\n" +msgstr "" +" -s, --socketdir=КАТАЛОГ каталог сокетов (по умолчанию текущий)\n" + +#: pg_createsubscriber.c:230 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr "" +" -t, --recovery-timeout=СЕК время ожидания окончания восстановления\n" + +#: pg_createsubscriber.c:231 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr "" +" -U, --subscriber-username=ИМЯ имя пользователя для подключения " +"подписчика\n" + +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose выводить подробные сообщения\n" + +#: pg_createsubscriber.c:233 +#, c-format +msgid "" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" +msgstr "" +" --config-file=ИМЯ_ФАЙЛА использовать указанный основной файл\n" +" конфигурации сервера при запуске целевого\n" +" кластера\n" + +#: pg_createsubscriber.c:235 +#, c-format +msgid " --publication=NAME publication name\n" +msgstr " --publication=ИМЯ имя публикации\n" + +#: pg_createsubscriber.c:236 +#, c-format +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=ИМЯ имя слота репликации\n" + +#: pg_createsubscriber.c:237 +#, c-format +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=ИМЯ имя подписки\n" + +#: pg_createsubscriber.c:238 +#, c-format +msgid "" +" -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" + +#: pg_createsubscriber.c:239 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показать эту справку и выйти\n" + +#: pg_createsubscriber.c:282 +#, c-format +msgid "could not parse connection string: %s" +msgstr "не удалось разобрать строку подключения: %s" + +#: pg_createsubscriber.c:359 +#, c-format +msgid "" +"program \"%s\" is needed by %s but was not found in the same directory as " +"\"%s\"" +msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"" + +#: pg_createsubscriber.c:362 +#, c-format +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "" +"программа \"%s\" найдена программой \"%s\", но её версия отличается от " +"версии %s" + +#: pg_createsubscriber.c:382 +#, c-format +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "проверяется, является ли каталог \"%s\" каталогом данных кластера" + +#: pg_createsubscriber.c:388 +#, c-format +msgid "data directory \"%s\" does not exist" +msgstr "каталог данных \"%s\" не существует" + +#: pg_createsubscriber.c:396 +#, c-format +msgid "directory \"%s\" is not a database cluster directory" +msgstr "каталог \"%s\" не является каталогом кластера баз данных" + +#: pg_createsubscriber.c:513 +#, c-format +msgid "connection to database failed: %s" +msgstr "не удалось подключиться к базе: %s" + +#: pg_createsubscriber.c:526 +#, c-format +msgid "could not clear search_path: %s" +msgstr "не удалось очистить search_path: %s" + +#: pg_createsubscriber.c:566 +#, c-format +msgid "getting system identifier from publisher" +msgstr "получение идентификатора системы с сервера публикации" + +#: pg_createsubscriber.c:573 +#, c-format +msgid "could not get system identifier: %s" +msgstr "не удалось получить идентификатор системы: %s" + +#: pg_createsubscriber.c:579 +#, c-format +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "" +"не удалось получить идентификатор системы; получено строк: %d, ожидалось: %d" + +#: pg_createsubscriber.c:586 +#, c-format +msgid "system identifier is %llu on publisher" +msgstr "идентификатор системы на стороне публикации: %llu" + +#: pg_createsubscriber.c:607 +#, c-format +msgid "getting system identifier from subscriber" +msgstr "получение идентификатора системы с подписчика" + +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 +#, c-format +msgid "control file appears to be corrupt" +msgstr "управляющий файл, по-видимому, испорчен" + +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 +#, c-format +msgid "system identifier is %llu on subscriber" +msgstr "идентификатор системы на подписчике: %llu" + +#: pg_createsubscriber.c:637 +#, c-format +msgid "modifying system identifier of subscriber" +msgstr "изменение идентификатора системы на подписчике" + +#: pg_createsubscriber.c:659 +#, c-format +msgid "running pg_resetwal on the subscriber" +msgstr "запуск pg_resetwal на подписчике" + +#: pg_createsubscriber.c:671 +#, c-format +msgid "subscriber successfully changed the system identifier" +msgstr "идентификатор системы на подписчике успешно изменён" + +#: pg_createsubscriber.c:673 +#, c-format +msgid "could not change system identifier of subscriber: %s" +msgstr "изменить идентификатор системы на подписчике не удалось: %s" + +#: pg_createsubscriber.c:697 +#, c-format +msgid "could not obtain database OID: %s" +msgstr "получить OID базы данных не удалось: %s" + +#: pg_createsubscriber.c:704 +#, c-format +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "получить OID базы данных не удалось; получено строк: %d, ожидалось: %d" + +#: pg_createsubscriber.c:776 +#, c-format +msgid "create replication slot \"%s\" on publisher" +msgstr "создаётся слот репликации \"%s\" на подписчике" + +#: pg_createsubscriber.c:796 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "не удалось записать дополнительную запись WAL: %s" + +#: pg_createsubscriber.c:822 +#, c-format +msgid "could not obtain recovery progress: %s" +msgstr "не удалось получить состояние восстановления: %s" + +#: pg_createsubscriber.c:854 +#, c-format +msgid "checking settings on publisher" +msgstr "проверка параметров на стороне публикации" + +#: pg_createsubscriber.c:864 +#, c-format +msgid "primary server cannot be in recovery" +msgstr "главный сервер не должен быть в состоянии восстановления" + +#: pg_createsubscriber.c:888 +#, c-format +msgid "could not obtain publisher settings: %s" +msgstr "не удалось получить параметры с сервера публикации: %s" + +#: pg_createsubscriber.c:914 +#, c-format +msgid "publisher requires wal_level >= \"logical\"" +msgstr "на стороне публикации требуется значение wal_level >= \"logical\"" + +#: pg_createsubscriber.c:920 +#, c-format +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "" +"на стороне публикации требуется слотов репликации: %d, но доступно всего %d" + +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Увеличьте значение параметра конфигурации \"%s\" как минимум до %d." + +#: pg_createsubscriber.c:929 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "" +"на стороне публикации требуется процессов-передатчиков WAL: %d, но доступно " +"всего %d" + +#: pg_createsubscriber.c:938 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "параметр two_phase для слотов репликации не будет включён" + +#: pg_createsubscriber.c:939 +#, c-format +msgid "" +"Subscriptions will be created with the two_phase option disabled. Prepared " +"transactions will be replicated at COMMIT PREPARED." +msgstr "" +"Подписки будут созданы с отключённым параметром two_phase. Подготовленные " +"транзакции будут реплицироваться в момент выполнения COMMIT PREPARED." + +#: pg_createsubscriber.c:971 +#, c-format +msgid "checking settings on subscriber" +msgstr "проверка параметров на подписчике" + +#: pg_createsubscriber.c:978 +#, c-format +msgid "target server must be a standby" +msgstr "целевой сервер должен быть резервным" + +#: pg_createsubscriber.c:1002 +#, c-format +msgid "could not obtain subscriber settings: %s" +msgstr "получить параметры подписчика не удалось: %s" + +#: pg_createsubscriber.c:1026 +#, c-format +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "подписчику требуется слотов репликации: %d, но доступно всего %d" + +#: pg_createsubscriber.c:1035 +#, c-format +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "" +"подписчику требуется процессов логической репликации: %d, но доступно всего " +"%d" + +#: pg_createsubscriber.c:1044 +#, c-format +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "подписчику требуется рабочих процессов: %d, но доступно всего %d" + +#: pg_createsubscriber.c:1079 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "удаление подписки \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1088 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "удалить подписку \"%s\" не получилось: %s" + +#: pg_createsubscriber.c:1123 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "получить уже существующие подписки не удалось: %s" + +#: pg_createsubscriber.c:1258 +#, c-format +msgid "could not drop replication slot \"%s\" on primary" +msgstr "удалить слот репликации \"%s\" на главном сервере не получилось" + +#: pg_createsubscriber.c:1292 +#, c-format +msgid "could not obtain failover replication slot information: %s" +msgstr "получить информацию о переносимом слоте репликации не удалось: %s" + +#: pg_createsubscriber.c:1294 pg_createsubscriber.c:1303 +#, c-format +msgid "" +"Drop the failover replication slots on subscriber soon to avoid retention of " +"WAL files." +msgstr "" +"Удалите переносимые слоты репликации на подписчике незамедлительно во " +"избежание накопления файлов WAL." + +#: pg_createsubscriber.c:1302 +#, c-format +msgid "could not drop failover replication slot" +msgstr "удалить переносимый слот репликации не получилось" + +#: pg_createsubscriber.c:1324 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "создание слота репликации \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1342 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "создать слот репликации \"%s\" в базе \"%s\" не удалось: %s" + +#: pg_createsubscriber.c:1372 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "удаление слота репликации \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1388 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "удалить слот репликации \"%s\" в базе \"%s\" не получилось: %s" + +#: pg_createsubscriber.c:1409 +#, c-format +msgid "pg_ctl failed with exit code %d" +msgstr "команда pg_ctl завершилась с кодом ошибки %d" + +#: pg_createsubscriber.c:1414 +#, c-format +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "команда pg_ctl была прервана исключением 0x%X" + +#: pg_createsubscriber.c:1416 +#, c-format +msgid "" +"See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "" +"Описание этого шестнадцатеричного значения ищите во включаемом C-файле " +"\"ntstatus.h\"" + +#: pg_createsubscriber.c:1418 +#, c-format +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "команда pg_ctl была завершена сигналом %d: %s" + +#: pg_createsubscriber.c:1424 +#, c-format +msgid "pg_ctl exited with unrecognized status %d" +msgstr "команда pg_ctl завершилась с нераспознанным кодом состояния %d" + +#: pg_createsubscriber.c:1427 +#, c-format +msgid "The failed command was: %s" +msgstr "Ошибку вызвала команда: %s" + +#: pg_createsubscriber.c:1473 +#, c-format +msgid "server was started" +msgstr "сервер был запущен" + +#: pg_createsubscriber.c:1488 +#, c-format +msgid "server was stopped" +msgstr "сервер был остановлен" + +#: pg_createsubscriber.c:1507 +#, c-format +msgid "waiting for the target server to reach the consistent state" +msgstr "ожидание достижения целевым сервером согласованного состояния" + +#: pg_createsubscriber.c:1530 +#, c-format +msgid "recovery timed out" +msgstr "тайм-аут при восстановлении" + +#: pg_createsubscriber.c:1543 +#, c-format +msgid "server did not end recovery" +msgstr "сервер не завершил восстановление" + +#: pg_createsubscriber.c:1545 +#, c-format +msgid "target server reached the consistent state" +msgstr "целевой сервер достиг согласованного состояния" + +#: pg_createsubscriber.c:1546 +#, c-format +msgid "" +"If pg_createsubscriber fails after this point, you must recreate the " +"physical replica before continuing." +msgstr "" +"Если в работе pg_createsubscriber произойдёт сбой после этого момента, " +"продолжение возможно только после пересоздания физической реплики." + +#: pg_createsubscriber.c:1573 +#, c-format +msgid "could not obtain publication information: %s" +msgstr "получить информацию о публикации не удалось: %s" + +#: pg_createsubscriber.c:1587 +#, c-format +msgid "publication \"%s\" already exists" +msgstr "публикация \"%s\" уже существует" + +#: pg_createsubscriber.c:1588 +#, c-format +msgid "Consider renaming this publication before continuing." +msgstr "Чтобы продолжить, её можно переименовать." + +#: pg_createsubscriber.c:1595 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "создаётся публикация \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1608 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "создать публикацию \"%s\" в базе \"%s\" не удалось: %s" + +#: pg_createsubscriber.c:1637 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "удаляется публикация \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1651 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "удалить публикацию \"%s\" в базе \"%s\" не получилось: %s" + +#: pg_createsubscriber.c:1697 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "создаётся подписка \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1718 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "создать подписку \"%s\" в базе \"%s\" не удалось: %s" + +#: pg_createsubscriber.c:1763 +#, c-format +msgid "could not obtain subscription OID: %s" +msgstr "получить OID подписки не удалось: %s" + +#: pg_createsubscriber.c:1770 +#, c-format +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "получить OID подписки не удалось; получено строк: %d, ожидалось: %d" + +#: pg_createsubscriber.c:1794 +#, c-format +msgid "" +"setting the replication progress (node name \"%s\", LSN %s) in database " +"\"%s\"" +msgstr "отражение состояния репликации (имя узла \"%s\", LSN %s) в базе \"%s\"" + +#: pg_createsubscriber.c:1809 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "не удалось передать состояние репликации для подписки \"%s\": %s" + +#: pg_createsubscriber.c:1840 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "включение подписки \"%s\" в базе \"%s\"" + +#: pg_createsubscriber.c:1852 +#, c-format +msgid "could not enable subscription \"%s\": %s" +msgstr "включить подписку \"%s\" не удалось: %s" + +#: pg_createsubscriber.c:1944 +#, c-format +msgid "cannot be executed by \"root\"" +msgstr "программу не должен запускать root" + +#: pg_createsubscriber.c:1945 +#, c-format +msgid "You must run %s as the PostgreSQL superuser." +msgstr "Запускать %s нужно от имени суперпользователя PostgreSQL." + +#: pg_createsubscriber.c:1966 +#, c-format +msgid "database \"%s\" specified more than once" +msgstr "база \"%s\" указана неоднократно" + +#: pg_createsubscriber.c:2007 +#, c-format +msgid "publication \"%s\" specified more than once" +msgstr "публикация \"%s\" указана неоднократно" + +#: pg_createsubscriber.c:2019 +#, c-format +msgid "replication slot \"%s\" specified more than once" +msgstr "слот репликации \"%s\" указан неоднократно" + +#: pg_createsubscriber.c:2031 +#, c-format +msgid "subscription \"%s\" specified more than once" +msgstr "подписка \"%s\" указана неоднократно" + +#: pg_createsubscriber.c:2054 +#, c-format +msgid "no subscriber data directory specified" +msgstr "каталог данных подписчика не указан" + +#: pg_createsubscriber.c:2065 +#, c-format +msgid "could not determine current directory" +msgstr "не удалось определить текущий каталог" + +#: pg_createsubscriber.c:2082 +#, c-format +msgid "no publisher connection string specified" +msgstr "строка подключения к серверу публикации не указана" + +#: pg_createsubscriber.c:2086 +#, c-format +msgid "validating publisher connection string" +msgstr "проверяется строка подключения к серверу публикации" + +#: pg_createsubscriber.c:2092 +#, c-format +msgid "validating subscriber connection string" +msgstr "проверяется строка подключения к подписчику" + +#: pg_createsubscriber.c:2097 +#, c-format +msgid "no database was specified" +msgstr "база данных не указана" + +#: pg_createsubscriber.c:2109 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "имя базы \"%s\" извлечено из строки подключения к серверу публикации" + +#: pg_createsubscriber.c:2114 +#, c-format +msgid "no database name specified" +msgstr "имя базы данных не указано" + +#: pg_createsubscriber.c:2124 +#, c-format +msgid "wrong number of publication names specified" +msgstr "указано неверное количество имён публикаций" + +#: pg_createsubscriber.c:2125 +#, c-format +msgid "" +"The number of specified publication names (%d) must match the number of " +"specified database names (%d)." +msgstr "" +"Количество указанных имён публикаций (%d) должно совпадать с количеством " +"указанных имён баз (%d)." + +#: pg_createsubscriber.c:2131 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "указано неверное количество имён подписок" + +#: pg_createsubscriber.c:2132 +#, c-format +msgid "" +"The number of specified subscription names (%d) must match the number of " +"specified database names (%d)." +msgstr "" +"Количество указанных имён подписок (%d) должно совпадать с количеством " +"указанных имён баз (%d)." + +#: pg_createsubscriber.c:2138 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "указано неверное количество имён слотов репликации" + +#: pg_createsubscriber.c:2139 +#, c-format +msgid "" +"The number of specified replication slot names (%d) must match the number of " +"specified database names (%d)." +msgstr "" +"Количество указанных имён слотов репликации (%d) должно совпадать с " +"количеством указанных имён баз (%d)." + +#: pg_createsubscriber.c:2168 +#, c-format +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "" +"каталог данных подписчика не является копией исходного кластера баз данных" + +#: pg_createsubscriber.c:2181 +#, c-format +msgid "standby server is running" +msgstr "резервный сервер запущен" + +#: pg_createsubscriber.c:2182 +#, c-format +msgid "Stop the standby server and try again." +msgstr "Остановите резервный сервер и повторите попытку." + +#: pg_createsubscriber.c:2191 +#, c-format +msgid "starting the standby server with command-line options" +msgstr "резервный сервер запускается с параметрами командной строки" + +#: pg_createsubscriber.c:2207 pg_createsubscriber.c:2242 +#, c-format +msgid "stopping the subscriber" +msgstr "подписчик останавливается" + +#: pg_createsubscriber.c:2221 +#, c-format +msgid "starting the subscriber" +msgstr "подписчик запускается" + +#: pg_createsubscriber.c:2250 +#, c-format +msgid "Done!" +msgstr "Готово!" + +#: pg_receivewal.c:77 +#, c-format +msgid "" +"%s receives PostgreSQL streaming write-ahead logs.\n" +"\n" +msgstr "" +"%s получает транслируемые журналы предзаписи PostgreSQL.\n" +"\n" + +#: pg_receivewal.c:82 #, c-format msgid "" " -D, --directory=DIR receive write-ahead log files into this directory\n" @@ -1218,14 +2090,14 @@ msgstr "" " -D, --directory=ПУТЬ сохранять файлы журнала предзаписи в данный " "каталог\n" -#: pg_receivewal.c:85 pg_recvlogical.c:85 +#: pg_receivewal.c:83 pg_recvlogical.c:93 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr "" " -E, --endpos=LSN определяет позицию, после которой нужно " "остановиться\n" -#: pg_receivewal.c:86 pg_recvlogical.c:89 +#: pg_receivewal.c:84 pg_recvlogical.c:97 #, c-format msgid "" " --if-not-exists do not error if slot already exists when creating a " @@ -1234,12 +2106,12 @@ msgstr "" " --if-not-exists не выдавать ошибку при попытке создать уже " "существующий слот\n" -#: pg_receivewal.c:87 pg_recvlogical.c:91 +#: pg_receivewal.c:85 pg_recvlogical.c:99 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop прерывать работу при потере соединения\n" -#: pg_receivewal.c:88 +#: pg_receivewal.c:86 #, c-format msgid "" " --no-sync do not wait for changes to be written safely to " @@ -1247,7 +2119,7 @@ msgid "" msgstr "" " --no-sync не ждать надёжного сохранения изменений на диске\n" -#: pg_receivewal.c:89 pg_recvlogical.c:96 +#: pg_receivewal.c:87 pg_recvlogical.c:104 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -1258,7 +2130,7 @@ msgstr "" " интервал между отправкой статусных пакетов серверу " "(по умолчанию: %d)\n" -#: pg_receivewal.c:92 +#: pg_receivewal.c:90 #, c-format msgid "" " --synchronous flush write-ahead log immediately after writing\n" @@ -1266,7 +2138,7 @@ msgstr "" " --synchronous сбрасывать журнал предзаписи сразу после записи\n" # well-spelled: ИНФО -#: pg_receivewal.c:95 +#: pg_receivewal.c:93 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1275,7 +2147,7 @@ msgstr "" " -Z, --compress=МЕТОД[:ДОП_ИНФО]\n" " выполнять сжатие как указано\n" -#: pg_receivewal.c:105 +#: pg_receivewal.c:103 #, c-format msgid "" "\n" @@ -1284,7 +2156,7 @@ msgstr "" "\n" "Дополнительные действия:\n" -#: pg_receivewal.c:106 pg_recvlogical.c:81 +#: pg_receivewal.c:104 pg_recvlogical.c:89 #, c-format msgid "" " --create-slot create a new replication slot (for the slot's name " @@ -1293,7 +2165,7 @@ msgstr "" " --create-slot создать новый слот репликации (имя слота задаёт " "параметр --slot)\n" -#: pg_receivewal.c:107 pg_recvlogical.c:82 +#: pg_receivewal.c:105 pg_recvlogical.c:90 #, c-format msgid "" " --drop-slot drop the replication slot (for the slot's name see " @@ -1302,57 +2174,57 @@ msgstr "" " --drop-slot удалить слот репликации (имя слота задаёт параметр " "--slot)\n" -#: pg_receivewal.c:252 +#: pg_receivewal.c:191 #, c-format msgid "finished segment at %X/%X (timeline %u)" msgstr "завершён сегмент %X/%X (линия времени %u)" -#: pg_receivewal.c:259 +#: pg_receivewal.c:198 #, c-format msgid "stopped log streaming at %X/%X (timeline %u)" msgstr "завершена передача журнала с позиции %X/%X (линия времени %u)" -#: pg_receivewal.c:275 +#: pg_receivewal.c:214 #, c-format msgid "switched to timeline %u at %X/%X" msgstr "переключение на линию времени %u (позиция %X/%X)" -#: pg_receivewal.c:285 +#: pg_receivewal.c:224 pg_recvlogical.c:1053 #, c-format msgid "received interrupt signal, exiting" msgstr "получен сигнал прерывания, работа завершается" -#: pg_receivewal.c:317 +#: pg_receivewal.c:256 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_receivewal.c:384 +#: pg_receivewal.c:323 #, c-format msgid "segment file \"%s\" has incorrect size %lld, skipping" msgstr "файл сегмента \"%s\" имеет неправильный размер %lld, файл пропускается" -#: pg_receivewal.c:401 +#: pg_receivewal.c:340 #, c-format msgid "could not open compressed file \"%s\": %m" msgstr "не удалось открыть сжатый файл \"%s\": %m" -#: pg_receivewal.c:404 +#: pg_receivewal.c:343 #, c-format msgid "could not seek in compressed file \"%s\": %m" msgstr "ошибка позиционирования в сжатом файле \"%s\": %m" -#: pg_receivewal.c:410 +#: pg_receivewal.c:349 #, c-format msgid "could not read compressed file \"%s\": %m" msgstr "не удалось прочитать сжатый файл \"%s\": %m" -#: pg_receivewal.c:413 +#: pg_receivewal.c:352 #, c-format msgid "could not read compressed file \"%s\": read %d of %zu" msgstr "не удалось прочитать сжатый файл \"%s\" (прочитано байт: %d из %zu)" -#: pg_receivewal.c:423 +#: pg_receivewal.c:362 #, c-format msgid "" "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping" @@ -1360,27 +2232,22 @@ msgstr "" "файл сжатого сегмента \"%s\" имеет неправильный исходный размер %d, файл " "пропускается" -#: pg_receivewal.c:451 +#: pg_receivewal.c:390 #, c-format msgid "could not create LZ4 decompression context: %s" msgstr "не удалось создать контекст распаковки LZ4: %s" -#: pg_receivewal.c:463 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не удалось прочитать файл \"%s\": %m" - -#: pg_receivewal.c:481 +#: pg_receivewal.c:420 #, c-format msgid "could not decompress file \"%s\": %s" msgstr "не удалось распаковать файл \"%s\": %s" -#: pg_receivewal.c:504 +#: pg_receivewal.c:443 #, c-format msgid "could not free LZ4 decompression context: %s" msgstr "не удалось освободить контекст распаковки LZ4: %s" -#: pg_receivewal.c:509 +#: pg_receivewal.c:448 #, c-format msgid "" "compressed segment file \"%s\" has incorrect uncompressed size %zu, skipping" @@ -1388,7 +2255,7 @@ msgstr "" "файл сжатого сегмента \"%s\" имеет неправильный исходный размер %zu, файл " "пропускается" -#: pg_receivewal.c:514 +#: pg_receivewal.c:453 #, c-format msgid "" "cannot check file \"%s\": compression with %s not supported by this build" @@ -1396,37 +2263,37 @@ msgstr "" "не удалось проверить файл \"%s\": сжатие методом %s не поддерживается данной " "сборкой" -#: pg_receivewal.c:641 +#: pg_receivewal.c:578 #, c-format msgid "starting log streaming at %X/%X (timeline %u)" msgstr "начало передачи журнала с позиции %X/%X (линия времени %u)" -#: pg_receivewal.c:783 pg_recvlogical.c:785 +#: pg_receivewal.c:693 pg_recvlogical.c:801 #, c-format msgid "could not parse end position \"%s\"" msgstr "не удалось разобрать конечную позицию \"%s\"" -#: pg_receivewal.c:832 +#: pg_receivewal.c:766 #, c-format msgid "cannot use --create-slot together with --drop-slot" msgstr "--create-slot нельзя применять вместе с --drop-slot" -#: pg_receivewal.c:848 +#: pg_receivewal.c:782 #, c-format msgid "cannot use --synchronous together with --no-sync" msgstr "--synchronous нельзя применять вместе с --no-sync" -#: pg_receivewal.c:858 +#: pg_receivewal.c:792 #, c-format msgid "no target directory specified" msgstr "целевой каталог не указан" -#: pg_receivewal.c:882 +#: pg_receivewal.c:816 #, c-format msgid "compression with %s is not yet supported" msgstr "метод сжатия %s ещё не поддерживается" -#: pg_receivewal.c:924 +#: pg_receivewal.c:859 #, c-format msgid "" "replication connection using slot \"%s\" is unexpectedly database specific" @@ -1434,28 +2301,28 @@ msgstr "" "подключение для репликации через слот \"%s\" оказалось привязано к базе " "данных" -#: pg_receivewal.c:943 pg_recvlogical.c:955 +#: pg_receivewal.c:878 pg_recvlogical.c:972 #, c-format msgid "dropping replication slot \"%s\"" msgstr "удаление слота репликации \"%s\"" -#: pg_receivewal.c:954 pg_recvlogical.c:965 +#: pg_receivewal.c:889 pg_recvlogical.c:982 #, c-format msgid "creating replication slot \"%s\"" msgstr "создание слота репликации \"%s\"" -#: pg_receivewal.c:983 pg_recvlogical.c:989 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "отключение" #. translator: check source for value for %d -#: pg_receivewal.c:987 pg_recvlogical.c:993 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "отключение; через %d сек. последует повторное подключение" -#: pg_recvlogical.c:76 +#: pg_recvlogical.c:84 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -1464,7 +2331,7 @@ msgstr "" "%s управляет потоками логического декодирования PostgreSQL.\n" "\n" -#: pg_recvlogical.c:80 +#: pg_recvlogical.c:88 #, c-format msgid "" "\n" @@ -1473,7 +2340,7 @@ msgstr "" "\n" "Действие, которое будет выполнено:\n" -#: pg_recvlogical.c:83 +#: pg_recvlogical.c:91 #, c-format msgid "" " --start start streaming in a replication slot (for the " @@ -1482,13 +2349,13 @@ msgstr "" " --start начать передачу в слоте репликации (имя слота " "задаёт параметр --slot)\n" -#: pg_recvlogical.c:86 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr "" " -f, --file=ФАЙЛ сохранять журнал в этот файл, - обозначает stdout\n" -#: pg_recvlogical.c:87 +#: pg_recvlogical.c:95 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -1499,7 +2366,7 @@ msgstr "" " периодичность сброса на диск выходного файла (по " "умолчанию: %d)\n" -#: pg_recvlogical.c:90 +#: pg_recvlogical.c:98 #, c-format msgid "" " -I, --startpos=LSN where in an existing slot should the streaming " @@ -1508,7 +2375,7 @@ msgstr "" " -I, --startpos=LSN определяет, с какой позиции в существующем слоте " "начнётся передача\n" -#: pg_recvlogical.c:92 +#: pg_recvlogical.c:100 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -1520,19 +2387,19 @@ msgstr "" "необязательным\n" " значением модулю вывода\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr "" " -P, --plugin=МОДУЛЬ использовать заданный модуль вывода (по умолчанию: " "%s)\n" -#: pg_recvlogical.c:98 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=ИМЯ_СЛОТА имя слота логической репликации\n" -#: pg_recvlogical.c:99 +#: pg_recvlogical.c:107 #, c-format msgid "" " -t, --two-phase enable decoding of prepared transactions when " @@ -1541,160 +2408,160 @@ msgstr "" " -t, --two-phase включить декодирование подготовленных транзакций " "при создании слота\n" -#: pg_recvlogical.c:104 +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=ИМЯ_БД целевая база данных\n" -#: pg_recvlogical.c:137 +#: pg_recvlogical.c:145 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "подтверждается запись до %X/%X, синхронизация с ФС до %X/%X (слот %s)" -#: pg_recvlogical.c:161 receivelog.c:366 +#: pg_recvlogical.c:169 receivelog.c:360 #, c-format msgid "could not send feedback packet: %s" msgstr "не удалось отправить пакет ответа: %s" -#: pg_recvlogical.c:229 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "начало передачи журнала с позиции %X/%X (слот %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "передача запущена" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "не удалось открыть файл протокола \"%s\": %m" -#: pg_recvlogical.c:364 receivelog.c:889 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "неверный сокет: %s" -#: pg_recvlogical.c:417 receivelog.c:917 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: pg_recvlogical.c:424 receivelog.c:967 +#: pg_recvlogical.c:435 receivelog.c:959 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не удалось получить данные из потока WAL: %s" -#: pg_recvlogical.c:466 pg_recvlogical.c:517 receivelog.c:1011 -#: receivelog.c:1074 +#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 +#: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "заголовок потока слишком мал: %d" -#: pg_recvlogical.c:501 receivelog.c:849 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "нераспознанный заголовок потока: \"%c\"" -#: pg_recvlogical.c:555 pg_recvlogical.c:567 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "не удалось записать %d Б в файл журнала \"%s\": %m" -#: pg_recvlogical.c:621 receivelog.c:648 receivelog.c:685 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "неожиданный конец потока репликации: %s" -#: pg_recvlogical.c:780 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "не удалось разобрать начальную позицию \"%s\"" -#: pg_recvlogical.c:858 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "слот не указан" -#: pg_recvlogical.c:865 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "целевой файл не задан" -#: pg_recvlogical.c:872 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "база данных не задана" -#: pg_recvlogical.c:879 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "необходимо задать минимум одно действие" -#: pg_recvlogical.c:886 +#: pg_recvlogical.c:902 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "--create-slot или --start нельзя применять вместе с --drop-slot" -#: pg_recvlogical.c:893 +#: pg_recvlogical.c:909 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "--create-slot или --drop-slot нельзя применять вместе с --startpos" -#: pg_recvlogical.c:900 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos можно задать только вместе с --start" -#: pg_recvlogical.c:907 +#: pg_recvlogical.c:923 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase можно задать только вместе с --create-slot" -#: pg_recvlogical.c:939 +#: pg_recvlogical.c:956 #, c-format msgid "could not establish database-specific replication connection" msgstr "" "не удалось установить подключение для репликации к определённой базе данных" -#: pg_recvlogical.c:1033 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "конечная позиция %X/%X достигнута при обработке keepalive" -#: pg_recvlogical.c:1036 +#: pg_recvlogical.c:1061 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "конечная позиция %X/%X достигнута при обработке записи WAL %X/%X" -#: receivelog.c:68 +#: receivelog.c:66 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "не удалось создать файл статуса архива \"%s\": %s" -#: receivelog.c:75 +#: receivelog.c:73 #, c-format msgid "could not close archive status file \"%s\": %s" msgstr "не удалось закрыть файл статуса архива \"%s\": %s" -#: receivelog.c:123 +#: receivelog.c:122 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "не удалось получить размер файла журнала предзаписи \"%s\": %s" -#: receivelog.c:134 +#: receivelog.c:133 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "не удалось открыть существующий файл журнала предзаписи \"%s\": %s" -#: receivelog.c:143 +#: receivelog.c:142 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "" "не удалось сбросить на диск существующий файл журнала предзаписи \"%s\": %s" -#: receivelog.c:158 +#: receivelog.c:157 #, c-format msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" @@ -1705,42 +2572,37 @@ msgstr[1] "" msgstr[2] "" "файл журнала предзаписи \"%s\" имеет размер %zd Б, а должен — 0 или %d" -#: receivelog.c:174 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "не удалось открыть файл журнала предзаписи \"%s\": %s" -#: receivelog.c:208 -#, c-format -msgid "could not determine seek position in file \"%s\": %s" -msgstr "не удалось определить текущую позицию в файле \"%s\": %s" - -#: receivelog.c:223 +#: receivelog.c:216 #, c-format msgid "not renaming \"%s\", segment is not complete" msgstr "файл сегмента \"%s\" не переименовывается, так как он неполный" -#: receivelog.c:234 receivelog.c:323 receivelog.c:694 +#: receivelog.c:227 receivelog.c:317 receivelog.c:688 #, c-format msgid "could not close file \"%s\": %s" msgstr "не удалось закрыть файл \"%s\": %s" -#: receivelog.c:295 +#: receivelog.c:288 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "сервер сообщил неожиданное имя файла истории для линии времени %u: %s" -#: receivelog.c:303 +#: receivelog.c:297 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "не удалось создать файл истории линии времени \"%s\": %s" -#: receivelog.c:310 +#: receivelog.c:304 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "не удалось записать файл истории линии времени \"%s\": %s" -#: receivelog.c:400 +#: receivelog.c:394 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1749,7 +2611,7 @@ msgstr "" "несовместимая версия сервера %s; клиент не поддерживает репликацию с " "серверов версии ниже %s" -#: receivelog.c:409 +#: receivelog.c:403 #, c-format msgid "" "incompatible server version %s; client does not support streaming from " @@ -1758,7 +2620,7 @@ msgstr "" "несовместимая версия сервера %s; клиент не поддерживает репликацию с " "серверов версии выше %s" -#: receivelog.c:514 +#: receivelog.c:508 #, c-format msgid "" "system identifier does not match between base backup and streaming connection" @@ -1766,12 +2628,12 @@ msgstr "" "системный идентификатор базовой резервной копии отличается от идентификатора " "потоковой передачи" -#: receivelog.c:522 +#: receivelog.c:516 #, c-format msgid "starting timeline %u is not present in the server" msgstr "на сервере нет начальной линии времени %u" -#: receivelog.c:561 +#: receivelog.c:555 #, c-format msgid "" "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, " @@ -1780,12 +2642,12 @@ msgstr "" "сервер вернул неожиданный ответ на команду TIMELINE_HISTORY; получено строк: " "%d, полей: %d, а ожидалось строк: %d, полей: %d" -#: receivelog.c:632 +#: receivelog.c:626 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "сервер неожиданно сообщил линию времени %u после линии времени %u" -#: receivelog.c:638 +#: receivelog.c:632 #, c-format msgid "" "server stopped streaming timeline %u at %X/%X, but reported next timeline %u " @@ -1794,12 +2656,12 @@ msgstr "" "сервер прекратил передачу линии времени %u в %X/%X, но сообщил, что " "следующая линии времени %u начнётся в %X/%X" -#: receivelog.c:678 +#: receivelog.c:672 #, c-format msgid "replication stream was terminated before stop point" msgstr "поток репликации закончился до точки остановки" -#: receivelog.c:724 +#: receivelog.c:718 #, c-format msgid "" "unexpected result set after end-of-timeline: got %d rows and %d fields, " @@ -1808,61 +2670,62 @@ msgstr "" "сервер вернул неожиданный набор данных после конца линии времени; получено " "строк: %d, полей: %d, а ожидалось строк: %d, полей: %d" -#: receivelog.c:733 +#: receivelog.c:727 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "не удалось разобрать начальную точку следующей линии времени \"%s\"" -#: receivelog.c:781 receivelog.c:1030 walmethods.c:1205 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "не удалось синхронизировать с ФС файл \"%s\": %s" -#: receivelog.c:1091 +#: receivelog.c:1083 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "получена запись журнала предзаписи по смещению %u, но файл не открыт" -#: receivelog.c:1101 +#: receivelog.c:1093 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "получено смещение данных WAL %08x, но ожидалось %08x" -#: receivelog.c:1135 +#: receivelog.c:1128 #, c-format msgid "could not write %d bytes to WAL file \"%s\": %s" msgstr "не удалось записать %d Б в файл WAL \"%s\": %s" -#: receivelog.c:1160 receivelog.c:1200 receivelog.c:1230 +#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 #, c-format msgid "could not send copy-end packet: %s" msgstr "не удалось отправить пакет \"конец COPY\": %s" -#: streamutil.c:159 +#: streamutil.c:165 msgid "Password: " msgstr "Пароль: " -#: streamutil.c:182 +#: streamutil.c:192 #, c-format msgid "could not connect to server" msgstr "не удалось подключиться к серверу" -#: streamutil.c:225 +#: streamutil.c:233 #, c-format -msgid "could not clear search_path: %s" -msgstr "не удалось очистить search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "не удалось очистить \"search_path\": %s" -#: streamutil.c:241 +#: streamutil.c:249 #, c-format -msgid "could not determine server setting for integer_datetimes" -msgstr "не удалось получить настройку сервера integer_datetimes" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "не удалось получить параметр сервера \"integer_datetimes\"" -#: streamutil.c:248 +#: streamutil.c:256 #, c-format -msgid "integer_datetimes compile flag does not match server" -msgstr "флаг компиляции integer_datetimes не соответствует настройке сервера" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "" +"флаг компиляции \"integer_datetimes\" не соответствует настройке сервера" -#: streamutil.c:299 +#: streamutil.c:375 #, c-format msgid "" "could not fetch WAL segment size: got %d rows and %d fields, expected %d " @@ -1871,30 +2734,26 @@ msgstr "" "не удалось извлечь размер сегмента WAL; получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))" -#: streamutil.c:309 +#: streamutil.c:385 #, c-format msgid "WAL segment size could not be parsed" msgstr "разобрать размер сегмента WAL не удалось" -#: streamutil.c:327 +#: streamutil.c:403 #, 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 должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но удалённый сервер сообщил значение: %d" -msgstr[1] "" -"размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но удалённый сервер сообщил значение: %d" -msgstr[2] "" -"размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но удалённый сервер сообщил значение: %d" +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "удалённый сервер выдал неверный размер сегмента WAL: %d Б" +msgstr[1] "удалённый сервер выдал неверный размер сегмента WAL: %d Б" +msgstr[2] "удалённый сервер выдал неверный размер сегмента WAL: %d Б" -#: streamutil.c:372 +#: streamutil.c:407 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "" +"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 ГБ." + +#: streamutil.c:449 #, c-format msgid "" "could not fetch group access flag: got %d rows and %d fields, expected %d " @@ -1903,12 +2762,12 @@ msgstr "" "не удалось извлечь флаг доступа группы; получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))" -#: streamutil.c:381 +#: streamutil.c:458 #, c-format msgid "group access flag could not be parsed: %s" msgstr "не удалось разобрать флаг доступа группы: %s" -#: streamutil.c:424 streamutil.c:461 +#: streamutil.c:501 streamutil.c:538 #, c-format msgid "" "could not identify system: got %d rows and %d fields, expected %d rows and " @@ -1917,7 +2776,7 @@ msgstr "" "не удалось идентифицировать систему; получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))" -#: streamutil.c:513 +#: streamutil.c:590 #, c-format msgid "" "could not read replication slot \"%s\": got %d rows and %d fields, expected " @@ -1926,23 +2785,23 @@ msgstr "" "прочитать из слота репликации \"%s\" не удалось; получено строк: %d, полей: " "%d (ожидалось: %d и %d)" -#: streamutil.c:525 +#: streamutil.c:602 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "слот репликации \"%s\" не существует" -#: streamutil.c:536 +#: streamutil.c:613 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "ожидался слот физической репликации, вместо этого получен тип \"%s\"" -#: streamutil.c:550 +#: streamutil.c:627 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "" "не удалось разобрать позицию restart_lsn \"%s\" для слота репликации \"%s\"" -#: streamutil.c:667 +#: streamutil.c:744 #, c-format msgid "" "could not create replication slot \"%s\": got %d rows and %d fields, " @@ -1951,7 +2810,7 @@ msgstr "" "создать слот репликации \"%s\" не удалось; получено строк: %d, полей: %d " "(ожидалось: %d и %d)" -#: streamutil.c:711 +#: streamutil.c:788 #, c-format msgid "" "could not drop replication slot \"%s\": got %d rows and %d fields, expected " @@ -1960,35 +2819,55 @@ msgstr "" "удалить слот репликации \"%s\" не получилось; получено строк: %d, полей: %d " "(ожидалось: %d и %d)" -#: walmethods.c:720 walmethods.c:1267 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "не удалось сжать данные" -#: walmethods.c:749 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "не удалось сбросить поток сжатых данных" -#: walmethods.c:880 +#: walmethods.c:892 msgid "implementation error: tar files can't have more than one open file" msgstr "" "ошибка реализации: в файлах tar не может быть больше одно открытого файла" -#: walmethods.c:894 +#: walmethods.c:907 msgid "could not create tar header" msgstr "не удалось создать заголовок tar" -#: walmethods.c:910 walmethods.c:951 walmethods.c:1170 walmethods.c:1183 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "не удалось изменить параметры сжатия" -#: walmethods.c:1055 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "со сжатием закрытие файла с удалением не поддерживается" -#: walmethods.c:1291 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "не удалось закрыть поток сжатых данных" +#, c-format +#~ msgid "this build does not support gzip compression" +#~ msgstr "эта сборка программы не поддерживает сжатие gzip" + +#, c-format +#~ msgid "this build does not support lz4 compression" +#~ msgstr "эта сборка программы не поддерживает сжатие lz4" + +#, c-format +#~ msgid "this build does not support zstd compression" +#~ msgstr "эта сборка программы не поддерживает сжатие zstd" + +#, c-format +#~ msgid "symlinks are not supported on this platform" +#~ msgstr "символические ссылки не поддерживаются в этой ОС" + +#, c-format +#~ msgid "could not determine seek position in file \"%s\": %s" +#~ msgstr "не удалось определить текущую позицию в файле \"%s\": %s" + #~ msgid "unknown compression option \"%s\"" #~ msgstr "неизвестный параметр сжатия \"%s\"" @@ -2003,9 +2882,6 @@ msgstr "не удалось закрыть поток сжатых данных" #~ "для параметра --compress не задано значение, используется значение по " #~ "умолчанию" -#~ msgid "could not find replication slot \"%s\"" -#~ msgstr "не удалось найти слот репликации \"%s\"" - #~ msgid "fatal: " #~ msgstr "важно: " @@ -2044,9 +2920,6 @@ msgstr "не удалось закрыть поток сжатых данных" #~ msgid "--no-manifest and --manifest-force-encode are incompatible options" #~ msgstr "параметры --no-manifest и --manifest-force-encode несовместимы" -#~ msgid "could not connect to server: %s" -#~ msgstr "не удалось подключиться к серверу: %s" - #~ msgid "" #~ "\n" #~ "Report bugs to .\n" @@ -2130,13 +3003,6 @@ msgstr "не удалось закрыть поток сжатых данных" #~ msgid "%s: initializing replication slot \"%s\"\n" #~ msgstr "%s: инициализируется слот репликации \"%s\"\n" -#~ msgid "" -#~ "%s: could not init logical replication: got %d rows and %d fields, " -#~ "expected %d rows and %d fields\n" -#~ msgstr "" -#~ "%s: не удалось инициализировать логическую репликацию; получено строк: " -#~ "%d, полей: %d (ожидалось: %d и %d)\n" - #~ msgid "%s: no start point returned from server\n" #~ msgstr "%s: сервер не вернул стартовую точку\n" @@ -2155,9 +3021,6 @@ msgstr "не удалось закрыть поток сжатых данных" #~ msgid "%s: invalid format of xlog location: %s\n" #~ msgstr "%s: неверный формат позиции в xlog: %s\n" -#~ msgid "%s: could not identify system: %s" -#~ msgstr "%s: не удалось идентифицировать систему: %s" - #~ msgid "%s: could not send base backup command: %s" #~ msgstr "" #~ "%s: не удалось отправить команду базового резервного копирования: %s" diff --git a/src/bin/pg_basebackup/po/sv.po b/src/bin/pg_basebackup/po/sv.po index e3cb887029169..e93dab66b4ca8 100644 --- a/src/bin/pg_basebackup/po/sv.po +++ b/src/bin/pg_basebackup/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-01 14:19+0000\n" -"PO-Revision-Date: 2023-08-01 22:11+0200\n" +"POT-Creation-Date: 2024-08-26 18:20+0000\n" +"PO-Revision-Date: 2024-08-26 20:56+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -52,7 +52,7 @@ msgstr "hittade en tom sträng där en komprimeringsinställning förväntades" #: ../../common/compression.c:244 #, c-format msgid "unrecognized compression option: \"%s\"" -msgstr "okänd komprimeringsflagga \"%s\"" +msgstr "okänd komprimeringsflagga: \"%s\"" #: ../../common/compression.c:283 #, c-format @@ -89,6 +89,64 @@ msgstr "komprimeringsalgoritmen \"%s\" stöder inte inställning av antal arbeta msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "komprimeringsalgoritmen \"%s\" stöder inte långdistansläge" +#: ../../common/controldata_utils.c:97 +#, 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:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "kunde inte stänga fil \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"möjligt fel i byteordning\n" +"Den byteordning som filen från pg_control lagrats med passar kanske\n" +"inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" +"och PostgreSQL-installationen vara inkompatibel med databaskatalogen." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "kunde inte skriva fil \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -100,39 +158,69 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:447 -#: pg_receivewal.c:319 pg_recvlogical.c:339 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" -#: ../../common/file_utils.c:162 pg_receivewal.c:242 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: ../../common/file_utils.c:196 pg_receivewal.c:471 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: ../../common/file_utils.c:228 ../../common/file_utils.c:287 -#: ../../common/file_utils.c:361 ../../fe_utils/recovery_gen.c:121 -#: pg_receivewal.c:386 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" -#: ../../common/file_utils.c:299 ../../common/file_utils.c:369 -#: pg_recvlogical.c:194 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "kunde inte fsync:a fil \"%s\": %m" +msgid "could not open process token: error code %lu" +msgstr "kunde inte öppna process-token: felkod %lu" -#: ../../common/file_utils.c:379 pg_basebackup.c:2237 walmethods.c:462 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "kunde inte allokera SID: felkod %lu" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "kunde inte skapa token för begränsad åtkomst: felkod %lu" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "kunde inte starta process för kommando \"%s\": felkod %lu" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "kunde inte köra igen med token för begränsad åtkomst: felkod %lu" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -144,51 +232,62 @@ msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" msgid "%s must be in range %d..%d" msgstr "%s måste vara i intervallet %d..%d" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 pg_basebackup.c:1609 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 #, c-format msgid "out of memory" msgstr "slut på minne" -#: ../../fe_utils/recovery_gen.c:124 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1406 pg_basebackup.c:1700 +#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, c-format msgid "could not write to file \"%s\": %m" msgstr "kunde inte skriva till fil \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 bbstreamer_file.c:93 bbstreamer_file.c:360 -#: pg_basebackup.c:1470 pg_basebackup.c:1679 +#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "kunde inte skapa fil \"%s\": %m" -#: bbstreamer_file.c:138 pg_recvlogical.c:633 +#: ../../fe_utils/string_utils.c:434 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "kunde inte stänga fil \"%s\": %m" +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" #: bbstreamer_file.c:275 #, c-format msgid "unexpected state while extracting archive" msgstr "oväntat tillstånd vid uppackning av arkiv" -#: bbstreamer_file.c:320 pg_basebackup.c:686 pg_basebackup.c:730 +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: bbstreamer_file.c:325 +#: bbstreamer_file.c:326 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "kunde inte sätta rättigheter på katalogen \"%s\": %m" -#: bbstreamer_file.c:344 +#: bbstreamer_file.c:345 #, 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" -#: bbstreamer_file.c:364 +#: bbstreamer_file.c:365 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "kunde inte sätta rättigheter på filen \"%s\": %m" @@ -223,7 +322,7 @@ msgstr "kunde inte skriva till komprimerad fil \"%s\": %s" msgid "could not close compressed file \"%s\": %m" msgstr "kunde inte stänga komprimerad fil \"%s\": %m" -#: bbstreamer_gzip.c:245 walmethods.c:876 +#: bbstreamer_gzip.c:245 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "kunde inte initierar komprimeringsbibliotek" @@ -273,12 +372,12 @@ msgstr "tarfilens slutdel överskred 2 block" msgid "unexpected state while parsing tar archive" msgstr "oväntat tillstånd vid parsning av tar-arkiv" -#: bbstreamer_tar.c:296 +#: bbstreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "tar-medlem har tomt namn" -#: bbstreamer_tar.c:328 +#: bbstreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "COPY-ström avslutade innan sista filen var klar" @@ -308,87 +407,87 @@ msgstr "kunde inte aktivera långdistansläge: %s" msgid "could not create zstd decompression context" msgstr "kunde inte skapa kontext för zstd-dekomprimering" -#: pg_basebackup.c:238 +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "tar bort datakatalog \"%s\"" -#: pg_basebackup.c:240 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "misslyckades med att ta bort datakatalog" -#: pg_basebackup.c:244 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "tar bort innehållet i datakatalog \"%s\"" -#: pg_basebackup.c:246 +#: pg_basebackup.c:253 #, c-format msgid "failed to remove contents of data directory" msgstr "misslyckades med att ta bort innehållet i datakatalogen" -#: pg_basebackup.c:251 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "tar bort WAL-katalog \"%s\"" -#: pg_basebackup.c:253 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "misslyckades med att ta bort WAL-katalog" -#: pg_basebackup.c:257 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "tar bort innehållet i WAL-katalog \"%s\"" -#: pg_basebackup.c:259 +#: pg_basebackup.c:266 #, c-format msgid "failed to remove contents of WAL directory" msgstr "misslyckades med att ta bort innehållet i WAL-katalogen" -#: pg_basebackup.c:265 +#: pg_basebackup.c:272 #, 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:268 +#: pg_basebackup.c:275 #, 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:272 +#: pg_basebackup.c:279 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "ändringar av tablespace-kataloger kan inte backas" -#: pg_basebackup.c:324 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "katalognamn för långt" -#: pg_basebackup.c:331 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "multipla \"=\"-tecken i tablespace-mappning" -#: pg_basebackup.c:340 +#: pg_basebackup.c:347 #, 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:359 +#: pg_basebackup.c:366 #, 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:363 +#: pg_basebackup.c:370 #, 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:385 +#: pg_basebackup.c:392 #, c-format msgid "" "%s takes a base backup of a running PostgreSQL server.\n" @@ -397,17 +496,19 @@ msgstr "" "%s tar en basbackup av en körande PostgreSQL-server.\n" "\n" -#: pg_basebackup.c:387 pg_receivewal.c:79 pg_recvlogical.c:76 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_basebackup.c:388 pg_receivewal.c:80 pg_recvlogical.c:77 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [FLAGGA]...\n" -#: pg_basebackup.c:389 +#: pg_basebackup.c:396 #, c-format msgid "" "\n" @@ -416,17 +517,26 @@ msgstr "" "\n" "Flaggor som styr utmatning:\n" -#: pg_basebackup.c:390 +#: pg_basebackup.c:397 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" -msgstr " -D, --pgdata=KATALOG ta emot basbackup till katalog\n" +msgstr " -D, --pgdata=KATALOG ta emot basbackup till katalog\n" -#: pg_basebackup.c:391 +#: pg_basebackup.c:398 #, 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:392 +#: pg_basebackup.c:399 +#, c-format +msgid "" +" -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr "" +" -i, --incremental=GAMMALTMANIFEST\n" +" ta inkrementell backup\n" + +#: pg_basebackup.c:401 #, c-format msgid "" " -r, --max-rate=RATE maximum transfer rate to transfer data directory\n" @@ -435,7 +545,7 @@ msgstr "" " -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:394 +#: pg_basebackup.c:403 #, c-format msgid "" " -R, --write-recovery-conf\n" @@ -444,7 +554,7 @@ msgstr "" " -R, --write-recovery-conf\n" " skriv konfiguration för replikering\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:405 #, c-format msgid "" " -t, --target=TARGET[:DETAIL]\n" @@ -453,7 +563,7 @@ msgstr "" " -t, --target=MÅL[:DETALJ]\n" " backupmål (om annat än klienten)\n" -#: pg_basebackup.c:398 +#: pg_basebackup.c:407 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -462,12 +572,12 @@ msgstr "" " -T, --tablespace-mapping=GAMMALKAT=NYKAT\n" " flytta tablespace i GAMMALKAT till NYKAT\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:409 #, 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:401 +#: pg_basebackup.c:410 #, c-format msgid "" " -X, --wal-method=none|fetch|stream\n" @@ -476,12 +586,12 @@ msgstr "" " -X, --wal-method=none|fetch|stream\n" " inkludera behövda WAL-filer med angiven metod\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip komprimera tar-utdata\n" -#: pg_basebackup.c:404 +#: pg_basebackup.c:413 #, c-format msgid "" " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" @@ -490,12 +600,12 @@ msgstr "" " -Z, --compress=[{client|server}-]METOD[:DETALJ]\n" " komprimera på klient- eller serversida\n" -#: pg_basebackup.c:406 +#: pg_basebackup.c:415 #, c-format msgid " -Z, --compress=none do not compress tar output\n" msgstr " -Z, --compress=none komprimera inte tar-utdata\n" -#: pg_basebackup.c:407 +#: pg_basebackup.c:416 #, c-format msgid "" "\n" @@ -504,56 +614,56 @@ msgstr "" "\n" "Allmänna flaggor:\n" -#: pg_basebackup.c:408 +#: pg_basebackup.c:417 #, c-format msgid "" " -c, --checkpoint=fast|spread\n" -" set fast or spread checkpointing\n" +" set fast or spread (default) checkpointing\n" msgstr "" " -c, --checkpoint=fast|spread\n" -" ställ in \"fast\" eller \"spread\" checkpoint-metod\n" +" ställ in checkpoint-metod \"fast\" eller \"spread\" (standard)\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " --create-slot skapa en replikeringsslot\n" -#: pg_basebackup.c:411 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=ETIKETT sätt backup-etikett\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:421 #, 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:413 +#: pg_basebackup.c:422 #, 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:414 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress visa förloppsinformation\n" -#: pg_basebackup.c:415 pg_receivewal.c:89 +#: pg_basebackup.c:424 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:416 pg_receivewal.c:91 pg_recvlogical.c:98 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose mata ut utförliga meddelanden\n" -#: pg_basebackup.c:417 pg_receivewal.c:92 pg_recvlogical.c:99 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_basebackup.c:418 +#: pg_basebackup.c:427 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -562,7 +672,7 @@ msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " använd algoritm för manifestchecksummor\n" -#: pg_basebackup.c:420 +#: pg_basebackup.c:429 #, c-format msgid "" " --manifest-force-encode\n" @@ -571,22 +681,22 @@ msgstr "" " --manifest-force-encode\n" " hex-koda alla filnamn i manifestet\n" -#: pg_basebackup.c:422 +#: pg_basebackup.c:431 #, 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:423 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest förhindra att backupmanifest genereras\n" -#: pg_basebackup.c:424 +#: pg_basebackup.c:433 #, 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:425 +#: pg_basebackup.c:434 #, c-format msgid "" " --no-verify-checksums\n" @@ -595,12 +705,21 @@ msgstr "" " --no-verify-checksums\n" " verifiera inte checksummor\n" -#: pg_basebackup.c:427 pg_receivewal.c:95 pg_recvlogical.c:100 +#: pg_basebackup.c:436 +#, c-format +msgid "" +" --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr "" +" --sync-method=METOD\n" +" sätt synkmetod för att synka filer till disk\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_basebackup.c:428 pg_receivewal.c:96 pg_recvlogical.c:101 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "" "\n" @@ -609,22 +728,22 @@ msgstr "" "\n" "Flaggor för anslutning:\n" -#: pg_basebackup.c:429 pg_receivewal.c:97 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONNSTR anslutningssträng\n" -#: pg_basebackup.c:430 pg_receivewal.c:98 pg_recvlogical.c:103 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, 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:431 pg_receivewal.c:99 pg_recvlogical.c:104 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT databasserverns postnummer\n" -#: pg_basebackup.c:432 +#: pg_basebackup.c:443 #, c-format msgid "" " -s, --status-interval=INTERVAL\n" @@ -633,22 +752,23 @@ msgstr "" " -s, --status-interval=INTERVAL\n" " tid mellan att statuspaket skickas till servern (i sekunder)\n" -#: pg_basebackup.c:434 pg_receivewal.c:100 pg_recvlogical.c:105 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, 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:435 pg_receivewal.c:101 pg_recvlogical.c:106 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, 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:436 pg_receivewal.c:102 pg_recvlogical.c:107 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, 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:437 pg_receivewal.c:106 pg_recvlogical.c:108 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "" "\n" @@ -657,484 +777,546 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_basebackup.c:438 pg_receivewal.c:107 pg_recvlogical.c:109 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_basebackup.c:477 +#: pg_basebackup.c:488 #, 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:480 pg_basebackup.c:622 pg_basebackup.c:2151 -#: streamutil.c:441 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:518 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "kunde inte parsa write-ahead-logg-plats \"%s\"" -#: pg_basebackup.c:585 pg_receivewal.c:600 +#: pg_basebackup.c:596 pg_receivewal.c:600 #, c-format msgid "could not finish writing WAL files: %m" msgstr "kunde inte slutföra skrivning av WAL-filer: %m" -#: pg_basebackup.c:631 +#: pg_basebackup.c:642 #, 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:664 +#: pg_basebackup.c:676 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "skapade en temporär replikeringsslot \"%s\"" -#: pg_basebackup.c:667 +#: pg_basebackup.c:679 #, c-format msgid "created replication slot \"%s\"" msgstr "skapade en replikeringsslot \"%s\"" -#: pg_basebackup.c:701 +#: pg_basebackup.c:728 #, c-format msgid "could not create background process: %m" msgstr "kunde inte skapa bakgrundsprocess: %m" -#: pg_basebackup.c:710 +#: pg_basebackup.c:737 #, c-format msgid "could not create background thread: %m" msgstr "kunde inte skapa bakgrundstråd: %m" -#: pg_basebackup.c:749 +#: pg_basebackup.c:776 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "katalogen \"%s\" existerar men är inte tom" -#: pg_basebackup.c:755 +#: pg_basebackup.c:782 pg_createsubscriber.c:390 #, c-format msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" -#: pg_basebackup.c:831 +#: pg_basebackup.c:858 #, 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:843 +#: pg_basebackup.c:870 #, 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:859 +#: pg_basebackup.c:886 #, 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:883 +#: pg_basebackup.c:910 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "överföringshastighet \"%s\" är inte ett giltigt värde" -#: pg_basebackup.c:885 +#: pg_basebackup.c:912 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "ogiltig överföringshastighet \"%s\": %m" -#: pg_basebackup.c:892 +#: pg_basebackup.c:919 #, c-format msgid "transfer rate must be greater than zero" msgstr "överföringshastigheten måste vara större än noll" -#: pg_basebackup.c:922 +#: pg_basebackup.c:949 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "ogiltig enhet för --max-rate: \"%s\"" -#: pg_basebackup.c:926 +#: pg_basebackup.c:953 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "överföringshastighet \"%s\" överskrider heltalsintervall" -#: pg_basebackup.c:933 +#: pg_basebackup.c:960 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "överföringshastighet \"%s\" är utanför sitt intervall" -#: pg_basebackup.c:995 +#: pg_basebackup.c:1022 #, c-format msgid "could not get COPY data stream: %s" msgstr "kunde inte hämta COPY-data-ström: %s" -#: pg_basebackup.c:1012 pg_recvlogical.c:436 pg_recvlogical.c:608 +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 #: receivelog.c:973 #, c-format msgid "could not read COPY data: %s" msgstr "kunde inte läsa COPY-data: %s" -#: pg_basebackup.c:1016 +#: pg_basebackup.c:1043 #, c-format msgid "background process terminated unexpectedly" msgstr "en bakgrundsprocess avslutade oväntat" -#: pg_basebackup.c:1087 +#: pg_basebackup.c:1114 #, c-format msgid "cannot inject manifest into a compressed tar file" msgstr "kan inte injicera manifest in i en komprimerad tarfil" -#: pg_basebackup.c:1088 +#: pg_basebackup.c:1115 #, c-format msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." msgstr "använd komprimering på klientsidan, skicka utdatan till en katalog istället för till standard ut eller använd %s." -#: pg_basebackup.c:1104 +#: pg_basebackup.c:1131 #, c-format msgid "cannot parse archive \"%s\"" msgstr "kunde inte parsa arkiv \"%s\"" -#: pg_basebackup.c:1105 +#: pg_basebackup.c:1132 #, c-format msgid "Only tar archives can be parsed." msgstr "Bara tar-arkiv kan parsas." -#: pg_basebackup.c:1107 +#: pg_basebackup.c:1134 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Enkelt format kräver pg_basebackup för att parsa arkivet." -#: pg_basebackup.c:1109 +#: pg_basebackup.c:1136 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "Att använda - som utkatalog kräver att pg_basebackup parsar arkivet." -#: pg_basebackup.c:1111 +#: pg_basebackup.c:1138 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "Flaggan -R kräver att pg_basebackup parsar arkivet." -#: pg_basebackup.c:1330 +#: pg_basebackup.c:1357 #, c-format msgid "archives must precede manifest" msgstr "arkiv skall komma före manifest" -#: pg_basebackup.c:1345 +#: pg_basebackup.c:1372 #, c-format msgid "invalid archive name: \"%s\"" msgstr "ogiltigt arkivnamn: \"%s\"" -#: pg_basebackup.c:1417 +#: pg_basebackup.c:1444 #, c-format msgid "unexpected payload data" msgstr "oväntat datainnehåll" -#: pg_basebackup.c:1560 +#: pg_basebackup.c:1587 #, c-format msgid "empty COPY message" msgstr "tomt COPY-meddelande" -#: pg_basebackup.c:1562 +#: pg_basebackup.c:1589 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "felaktigt COPY-meddelande av typ %d, längd %zu" -#: pg_basebackup.c:1760 +#: pg_basebackup.c:1789 #, c-format msgid "incompatible server version %s" msgstr "inkompatibel serverversion %s" -#: pg_basebackup.c:1776 +#: pg_basebackup.c:1805 #, c-format msgid "Use -X none or -X fetch to disable log streaming." msgstr "Använd -X none eller -X fetch för att stänga av logg-strömning" -#: pg_basebackup.c:1844 +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "servern stöder inte inkrementella backup:er" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 +#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#, c-format +msgid "could not send replication command \"%s\": %s" +msgstr "kunde inte skicka replikeringskommando \"%s\": %s" + +#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "kunde inte ladda upp manifest: %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 +#, c-format +msgid "could not upload manifest: unexpected status %s" +msgstr "kunde inte ladda upp manifest: oväntad status %s" + +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "kunde inte skicka COPY-data: %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "kunde inte skicka slut-på-COPY: %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "oväntat extra resultat vid skickande av manifest" + +#: pg_basebackup.c:1950 #, c-format msgid "backup targets are not supported by this server version" msgstr "backupmål stöds inte av denna serverversion" -#: pg_basebackup.c:1847 +#: pg_basebackup.c:1953 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "återställningskonfiguration kan inte skrivas när backupmål används" -#: pg_basebackup.c:1874 +#: pg_basebackup.c:1980 #, c-format msgid "server does not support server-side compression" msgstr "servern stöder inte komprimering på serversidan" -#: pg_basebackup.c:1884 +#: pg_basebackup.c:1990 #, 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:1888 +#: pg_basebackup.c:1994 #, c-format msgid "waiting for checkpoint" msgstr "väntar på checkpoint" -#: pg_basebackup.c:1901 pg_recvlogical.c:260 receivelog.c:543 receivelog.c:582 -#: streamutil.c:288 streamutil.c:361 streamutil.c:413 streamutil.c:501 -#: streamutil.c:653 streamutil.c:698 -#, c-format -msgid "could not send replication command \"%s\": %s" -msgstr "kunde inte skicka replikeringskommando \"%s\": %s" - -#: pg_basebackup.c:1909 +#: pg_basebackup.c:2016 #, c-format msgid "could not initiate base backup: %s" msgstr "kunde inte initiera basbackup: %s" -#: pg_basebackup.c:1912 +#: pg_basebackup.c:2019 #, 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:1918 +#: pg_basebackup.c:2025 #, c-format msgid "checkpoint completed" msgstr "checkpoint klar" -#: pg_basebackup.c:1932 +#: pg_basebackup.c:2039 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "write-ahead-loggens startposition: %s på tidslinje %u" -#: pg_basebackup.c:1940 +#: pg_basebackup.c:2047 #, c-format msgid "could not get backup header: %s" msgstr "kunde inte hämta backup-header: %s" -#: pg_basebackup.c:1943 +#: pg_basebackup.c:2050 #, c-format msgid "no data returned from server" msgstr "ingen data returnerades från servern" -#: pg_basebackup.c:1986 +#: pg_basebackup.c:2093 #, 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:1999 +#: pg_basebackup.c:2106 #, c-format msgid "starting background WAL receiver" msgstr "startar bakgrunds-WAL-mottagare" -#: pg_basebackup.c:2082 +#: pg_basebackup.c:2189 #, c-format msgid "backup failed: %s" msgstr "backup misslyckades: %s" -#: pg_basebackup.c:2085 +#: pg_basebackup.c:2192 #, 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:2088 +#: pg_basebackup.c:2195 #, c-format msgid "write-ahead log end point: %s" msgstr "write-ahead-logg-slutposition: %s" -#: pg_basebackup.c:2099 +#: pg_basebackup.c:2206 #, c-format msgid "checksum error occurred" msgstr "felaktig kontrollsumma upptäcktes" -#: pg_basebackup.c:2104 +#: pg_basebackup.c:2211 #, c-format msgid "final receive failed: %s" msgstr "sista mottagning misslyckades: %s" -#: pg_basebackup.c:2128 +#: pg_basebackup.c:2235 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "väntat på att bakgrundsprocess skall avsluta strömmande ..." -#: pg_basebackup.c:2132 +#: pg_basebackup.c:2239 #, c-format msgid "could not send command to background pipe: %m" msgstr "kunde inte skicka kommando till bakgrundsrör (pipe): %m" -#: pg_basebackup.c:2137 +#: pg_basebackup.c:2244 #, c-format msgid "could not wait for child process: %m" msgstr "kunde inte vänta på barnprocess: %m" -#: pg_basebackup.c:2139 +#: pg_basebackup.c:2246 #, c-format msgid "child %d died, expected %d" msgstr "barn %d dog, förväntade %d" -#: pg_basebackup.c:2141 streamutil.c:91 streamutil.c:196 +#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2161 +#: pg_basebackup.c:2268 #, c-format msgid "could not wait for child thread: %m" msgstr "kunde inte vänta på barntråd: %m" -#: pg_basebackup.c:2166 +#: pg_basebackup.c:2273 #, c-format msgid "could not get child thread exit status: %m" msgstr "kunde inte hämta barntrådens slutstatus: %m" -#: pg_basebackup.c:2169 +#: pg_basebackup.c:2276 #, c-format msgid "child thread exited with error %u" msgstr "barntråd avslutade med fel %u" -#: pg_basebackup.c:2198 +#: pg_basebackup.c:2305 #, c-format msgid "syncing data to disk ..." msgstr "synkar data till disk ..." -#: pg_basebackup.c:2223 +#: pg_basebackup.c:2330 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "byter namn på backup_manifest.tmp till backup_manifest" -#: pg_basebackup.c:2243 +#: pg_basebackup.c:2350 #, c-format msgid "base backup completed" msgstr "basbackup klar" -#: pg_basebackup.c:2326 +#: pg_basebackup.c:2436 #, 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:2344 +#: pg_basebackup.c:2454 #, 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:2422 +#: pg_basebackup.c:2535 #, 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:2457 pg_basebackup.c:2469 pg_basebackup.c:2491 -#: pg_basebackup.c:2503 pg_basebackup.c:2509 pg_basebackup.c:2561 -#: pg_basebackup.c:2572 pg_basebackup.c:2582 pg_basebackup.c:2588 -#: pg_basebackup.c:2595 pg_basebackup.c:2607 pg_basebackup.c:2619 -#: pg_basebackup.c:2627 pg_basebackup.c:2640 pg_basebackup.c:2646 -#: pg_basebackup.c:2655 pg_basebackup.c:2667 pg_basebackup.c:2678 -#: pg_basebackup.c:2686 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2037 pg_createsubscriber.c:2047 +#: pg_createsubscriber.c:2055 pg_createsubscriber.c:2083 +#: pg_createsubscriber.c:2115 pg_receivewal.c:748 pg_receivewal.c:760 #: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 -#: pg_receivewal.c:793 pg_recvlogical.c:835 pg_recvlogical.c:847 -#: pg_recvlogical.c:857 pg_recvlogical.c:864 pg_recvlogical.c:871 -#: pg_recvlogical.c:878 pg_recvlogical.c:885 pg_recvlogical.c:892 -#: pg_recvlogical.c:899 pg_recvlogical.c:906 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_basebackup.c:2467 pg_receivewal.c:758 pg_recvlogical.c:845 +#: pg_basebackup.c:2584 pg_createsubscriber.c:2045 pg_receivewal.c:758 +#: pg_recvlogical.c:863 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_basebackup.c:2490 +#: pg_basebackup.c:2607 #, c-format msgid "cannot specify both format and backup target" msgstr "kan inte ange både format och backupmål" -#: pg_basebackup.c:2502 +#: pg_basebackup.c:2619 #, c-format msgid "must specify output directory or backup target" msgstr "måste ange utkatalog eller backupmål" -#: pg_basebackup.c:2508 +#: pg_basebackup.c:2625 #, c-format msgid "cannot specify both output directory and backup target" msgstr "kan inte ange både utdatakatalog och backupmål" -#: pg_basebackup.c:2538 pg_receivewal.c:802 +#: pg_basebackup.c:2655 pg_receivewal.c:802 #, c-format msgid "unrecognized compression algorithm: \"%s\"" -msgstr "okänd komprimeringsalgoritm \"%s\"" +msgstr "okänd komprimeringsalgoritm: \"%s\"" -#: pg_basebackup.c:2544 pg_receivewal.c:809 +#: pg_basebackup.c:2661 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "ogiltig komprimeringsangivelse: %s" -#: pg_basebackup.c:2560 +#: pg_basebackup.c:2677 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "komprimering på klientsidan är inte möjlig när backupmål angivits" -#: pg_basebackup.c:2571 +#: pg_basebackup.c:2688 #, c-format msgid "only tar mode backups can be compressed" msgstr "bara backupper i tar-läge kan komprimeras" -#: pg_basebackup.c:2581 +#: pg_basebackup.c:2698 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "WAL kan inte strömmas när ett backupmål angivits" -#: pg_basebackup.c:2587 +#: pg_basebackup.c:2704 #, 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:2594 +#: pg_basebackup.c:2711 #, 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:2606 +#: pg_basebackup.c:2723 #, 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:2617 pg_receivewal.c:774 +#: pg_basebackup.c:2734 pg_receivewal.c:774 #, 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:2625 pg_basebackup.c:2665 pg_basebackup.c:2676 -#: pg_basebackup.c:2684 +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 #, c-format msgid "%s and %s are incompatible options" msgstr "%s och %s är inkompatibla flaggor" -#: pg_basebackup.c:2639 +#: pg_basebackup.c:2756 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "WAL-katalogplats kan inte anges tillsammans med backupmål" -#: pg_basebackup.c:2645 +#: pg_basebackup.c:2762 #, 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:2654 +#: pg_basebackup.c:2771 #, 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:2754 +#: pg_basebackup.c:2871 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "kan inte skapa symbolisk länk \"%s\": %m" -#: pg_receivewal.c:77 +#: pg_createsubscriber.c:169 +#, c-format +msgid "failed after the end of recovery" +msgstr "misslyckades vid slutet av återställning" + +#: pg_createsubscriber.c:170 +#, c-format +msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." +msgstr "Målservern kan inte längre användas som en fysisk replika. Du måste återskapa den fysiska replikan innan det går att fortsätta." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "publiceringen \"%s\" som skapades i databasen \"%s\" på primären har lämnats kvar" + +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "Släng denna publiceringen innan du försöker igen." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "replikeringsslotten \"%s\" som skapades i databasen \"%s\" på primären har lämnats kvar" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1260 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "Släng denna replikeringsslot inom kort för att undvika att WAL-filer köas upp." + +#: pg_createsubscriber.c:219 #, c-format msgid "" -"%s receives PostgreSQL streaming write-ahead logs.\n" -"\n" -msgstr "" -"%s tar emot PostgreSQL-strömning-write-ahead-logg.\n" +"%s creates a new logical replica from a standby server.\n" "\n" +msgstr "%s skapar en ny logisk replikering från en standby-server.\n" -#: pg_receivewal.c:81 pg_recvlogical.c:82 +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 #, c-format msgid "" "\n" @@ -1143,22 +1325,639 @@ msgstr "" "\n" "Flaggor:\n" +#: pg_createsubscriber.c:224 +#, c-format +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --database=DBNAME databas att skapa prenumeration i\n" + +#: pg_createsubscriber.c:225 +#, c-format +msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" +msgstr " -D, --pgdata=DATADIR plats för prenumerantens datakatalog\n" + +#: pg_createsubscriber.c:226 +#, c-format +msgid " -n, --dry-run dry run, just show what would be done\n" +msgstr " -n, --dry-run ingen updatering, visa bara planerade åtgärder\n" + +#: pg_createsubscriber.c:227 +#, c-format +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr " -p, --subscriber-port=PORT prenumerantens portnummer (standard %s)\n" + +#: pg_createsubscriber.c:228 +#, c-format +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CONNSTR publicerarens anslutningssträng\n" + +#: pg_createsubscriber.c:229 +#, c-format +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=KAT uttagskatalog (standard är aktuell katalog.)\n" + +#: pg_createsubscriber.c:230 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=SECS antal sekunder att vänta på att återställning skall avslutas\n" + +#: pg_createsubscriber.c:231 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NAME användarnamn för prenumerantens anslutning\n" + +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose visa utförliga meddelanden\n" + +#: pg_createsubscriber.c:233 +#, c-format +msgid "" +" --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" +msgstr "" +" --config-file=FILNAMN använd angiven fil med serverkonfiguration\n" +" när målklustret körs\n" + +#: pg_createsubscriber.c:235 +#, c-format +msgid " --publication=NAME publication name\n" +msgstr " --publication=NAME publiceringsnamn\n" + +#: pg_createsubscriber.c:236 +#, c-format +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=NAME namn på replikeringsslot\n" + +#: pg_createsubscriber.c:237 +#, c-format +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NAME namn på prenumeration\n" + +#: pg_createsubscriber.c:238 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" + +#: pg_createsubscriber.c:239 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa denna hjälp, avsluta sedan\n" + +#: pg_createsubscriber.c:282 +#, c-format +msgid "could not parse connection string: %s" +msgstr "kunde inte parsa anslutningssträng: %s" + +#: pg_createsubscriber.c:359 +#, c-format +msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" +msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"" + +#: pg_createsubscriber.c:362 +#, c-format +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s" + +#: pg_createsubscriber.c:382 +#, c-format +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "undersöker om katalogen \"%s\" är en klusterkatalog" + +#: pg_createsubscriber.c:388 +#, c-format +msgid "data directory \"%s\" does not exist" +msgstr "databaskatalogen \"%s\" existerar inte" + +#: pg_createsubscriber.c:396 +#, c-format +msgid "directory \"%s\" is not a database cluster directory" +msgstr "katalogen \"%s\" innehåller inte ett databaskluster." + +#: pg_createsubscriber.c:513 +#, c-format +msgid "connection to database failed: %s" +msgstr "anslutning till databasen misslyckades: %s" + +#: pg_createsubscriber.c:526 +#, c-format +msgid "could not clear search_path: %s" +msgstr "kunde inte nollställa search_path: %s" + +#: pg_createsubscriber.c:566 +#, c-format +msgid "getting system identifier from publisher" +msgstr "hämtar systemidentifierare från publicerare" + +#: pg_createsubscriber.c:573 +#, c-format +msgid "could not get system identifier: %s" +msgstr "kunde inte hämta systemidentifierare: %s" + +#: pg_createsubscriber.c:579 +#, c-format +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "kunde inte hämta systemidentifierare: fick %d rader, förväntade %d rad" + +#: pg_createsubscriber.c:586 +#, c-format +msgid "system identifier is %llu on publisher" +msgstr "systemidentifieraren är %llu på publiceraren" + +#: pg_createsubscriber.c:607 +#, c-format +msgid "getting system identifier from subscriber" +msgstr "hämtar systemidentifierare från prenumeranten" + +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 +#, c-format +msgid "control file appears to be corrupt" +msgstr "kontrollfilen verkar vara trasig" + +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 +#, c-format +msgid "system identifier is %llu on subscriber" +msgstr "systemidentifieraren är %llu hos prenumeranten" + +#: pg_createsubscriber.c:637 +#, c-format +msgid "modifying system identifier of subscriber" +msgstr "uppdaterar systemidentifieraren för prenumeranten" + +#: pg_createsubscriber.c:659 +#, c-format +msgid "running pg_resetwal on the subscriber" +msgstr "kör pg_resetwal på prenumeranten" + +#: pg_createsubscriber.c:671 +#, c-format +msgid "subscriber successfully changed the system identifier" +msgstr "prenumeranten lyckades ändra systemidentifieraren" + +#: pg_createsubscriber.c:673 +#, c-format +msgid "could not change system identifier of subscriber: %s" +msgstr "kunde inte ändra systemidentifierare för prenumerant: %s" + +#: pg_createsubscriber.c:697 +#, c-format +msgid "could not obtain database OID: %s" +msgstr "kunde inte hämta databas-OID: %s" + +#: pg_createsubscriber.c:704 +#, c-format +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "kunde inte hämta databas-OID: fick %d rader, förväntade %d rad" + +#: pg_createsubscriber.c:776 +#, c-format +msgid "create replication slot \"%s\" on publisher" +msgstr "skapa replikerings-slot \"%s\" på publicerare" + +#: pg_createsubscriber.c:796 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "kunde inte läsa ytterligare en WAL-post: %s" + +#: pg_createsubscriber.c:822 +#, c-format +msgid "could not obtain recovery progress: %s" +msgstr "kunde inte hämta progress för återställning: %s" + +#: pg_createsubscriber.c:854 +#, c-format +msgid "checking settings on publisher" +msgstr "kontrollerar inställningar på publicerare" + +#: pg_createsubscriber.c:864 +#, c-format +msgid "primary server cannot be in recovery" +msgstr "primära servern kan inte vara i återställningsläge" + +#: pg_createsubscriber.c:888 +#, c-format +msgid "could not obtain publisher settings: %s" +msgstr "kunde inte hämta inställningar för publicerare: %s" + +#: pg_createsubscriber.c:914 +#, c-format +msgid "publisher requires wal_level >= \"logical\"" +msgstr "publiceraren kräver wal_level >= \"logical\"" + +#: pg_createsubscriber.c:920 +#, c-format +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "publicerare kräver %d replikeringssslottar men bara %d återstår" + +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Öka konfigurationsparametern \"%s\" till minst %d." + +#: pg_createsubscriber.c:929 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "publicerare kräver %d WAL-skickar-processer men bara %d återstår" + +#: pg_createsubscriber.c:938 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "flaggan two_phase kommer inte aktiveras för replikeringsslottar" + +#: pg_createsubscriber.c:939 +#, c-format +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "Prenumerationer kommer skapas med flaggan two_phase avaktiverad. Förberedda transaktioner kommer replikeras vid COMMIT PREPARED." + +#: pg_createsubscriber.c:971 +#, c-format +msgid "checking settings on subscriber" +msgstr "kontrollerar inställningar på prenumeranten" + +#: pg_createsubscriber.c:978 +#, c-format +msgid "target server must be a standby" +msgstr "målserver måste vara en standby" + +#: pg_createsubscriber.c:1002 +#, c-format +msgid "could not obtain subscriber settings: %s" +msgstr "kunde inte hämta inställningar för prenumerant: %s" + +#: pg_createsubscriber.c:1026 +#, c-format +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "prenumerant kräver %d replikeringsslottar men bara %d återstår" + +#: pg_createsubscriber.c:1035 +#, c-format +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "prenumerant kräver %d logiska replikeringsprocesser men bara %d återstår" + +#: pg_createsubscriber.c:1044 +#, c-format +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "prenumerant kräver %d arbetsprocesser men bara %d återstår" + +#: pg_createsubscriber.c:1079 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "slänger prenumeration \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1088 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "kunde inte slänga prenumeration \"%s\": %s" + +#: pg_createsubscriber.c:1123 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "kunde inte hämta redan existerande prenumerationer: %s" + +#: pg_createsubscriber.c:1258 +#, c-format +msgid "could not drop replication slot \"%s\" on primary" +msgstr "kunde inte slänga replikeringsslotten \"%s\" på primären" + +#: pg_createsubscriber.c:1292 +#, c-format +msgid "could not obtain failover replication slot information: %s" +msgstr "kunde inte hämta replikeringsslottens information för failover: %s" + +#: pg_createsubscriber.c:1294 pg_createsubscriber.c:1303 +#, c-format +msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." +msgstr "Släng replikeringsslottar för failover på prenumeranten inom kort för att undvika att köa upp WAL-filer." + +#: pg_createsubscriber.c:1302 +#, c-format +msgid "could not drop failover replication slot" +msgstr "kunde inte slänga replikeringsslot för failover" + +#: pg_createsubscriber.c:1324 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "skapar replikeringsslot \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1342 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "kunde inte skapa replikeringsslot \"%s\" i databasen \"%s\": %s" + +#: pg_createsubscriber.c:1372 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "slänger replikeringsslot \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1388 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "kunde inte slänga replikeringsslot \"%s\" i databasen \"%s\": %s" + +#: pg_createsubscriber.c:1409 +#, c-format +msgid "pg_ctl failed with exit code %d" +msgstr "pg_ctl avslutade med felkod %d" + +#: pg_createsubscriber.c:1414 +#, c-format +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "pg_ctl avslutades med avbrott 0x%X" + +#: pg_createsubscriber.c:1416 +#, 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." + +#: pg_createsubscriber.c:1418 +#, c-format +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "pg_ctl terminerades av signal %d: %s" + +#: pg_createsubscriber.c:1424 +#, c-format +msgid "pg_ctl exited with unrecognized status %d" +msgstr "pg_ctl avslutade med okänd statuskod %d" + +#: pg_createsubscriber.c:1427 +#, c-format +msgid "The failed command was: %s" +msgstr "Det misslyckade kommandot var: %s" + +#: pg_createsubscriber.c:1473 +#, c-format +msgid "server was started" +msgstr "servern startad" + +#: pg_createsubscriber.c:1488 +#, c-format +msgid "server was stopped" +msgstr "servern är stoppad" + +#: pg_createsubscriber.c:1507 +#, c-format +msgid "waiting for the target server to reach the consistent state" +msgstr "väntar på att målservern skall komma till ett konsistent läge" + +#: pg_createsubscriber.c:1530 +#, c-format +msgid "recovery timed out" +msgstr "timeout vid återställning" + +#: pg_createsubscriber.c:1543 +#, c-format +msgid "server did not end recovery" +msgstr "servern avslutade inte återställning" + +#: pg_createsubscriber.c:1545 +#, c-format +msgid "target server reached the consistent state" +msgstr "målservern har nått ett konsistent läge" + +#: pg_createsubscriber.c:1546 +#, c-format +msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." +msgstr "" +"Om pg_createsubscriber misslyckas efter denna punkt så måste du\n" +"återskapa den fysiska replikan innan du fortsätter." + +#: pg_createsubscriber.c:1573 +#, c-format +msgid "could not obtain publication information: %s" +msgstr "kunde inte hämta publiceringsinformation: %s" + +#: pg_createsubscriber.c:1587 +#, c-format +msgid "publication \"%s\" already exists" +msgstr "publicering \"%s\" finns redan" + +#: pg_createsubscriber.c:1588 +#, c-format +msgid "Consider renaming this publication before continuing." +msgstr "Överväg att byta namn på denna publicering innan fortsättning." + +#: pg_createsubscriber.c:1595 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "skapar puiblicering \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1608 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "kunde inte skapa publicering \"%s\" i databasen \"%s\": %s" + +#: pg_createsubscriber.c:1637 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "slänger publiceringen \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1651 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "kunde inte slänga publiceringen \"%s\" i databasen \"%s\": %s" + +#: pg_createsubscriber.c:1697 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "skapar prenumeration \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1718 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "kunde inte skapa prenumeration \"%s\" i databasen \"%s\": %s" + +#: pg_createsubscriber.c:1763 +#, c-format +msgid "could not obtain subscription OID: %s" +msgstr "kunde inte hämta prenumerations-OID: %s" + +#: pg_createsubscriber.c:1770 +#, c-format +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "kunde inte hämta prenumerations-OID: fick %d rader, förväntade %d rad" + +#: pg_createsubscriber.c:1794 +#, c-format +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "sätter progress för replikering (nod-namn \"%s\", LSN %s) i databasen \"%s\"" + +#: pg_createsubscriber.c:1809 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "kunde inte sätta progress för replikering till prenumeration \"%s\": %s" + +#: pg_createsubscriber.c:1840 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "aktiverar prenumeration \"%s\" i databasen \"%s\"" + +#: pg_createsubscriber.c:1852 +#, c-format +msgid "could not enable subscription \"%s\": %s" +msgstr "kunde inte aktivera prenumerationen \"%s\": %s" + +#: pg_createsubscriber.c:1944 +#, c-format +msgid "cannot be executed by \"root\"" +msgstr "kan inte köras av \"root\"" + +#: pg_createsubscriber.c:1945 +#, c-format +msgid "You must run %s as the PostgreSQL superuser." +msgstr "Du måste köra %s som PostgreSQL:s superuser." + +#: pg_createsubscriber.c:1966 +#, c-format +msgid "database \"%s\" specified more than once" +msgstr "database \"%s\" angiven mer än en gång" + +#: pg_createsubscriber.c:2007 +#, c-format +msgid "publication \"%s\" specified more than once" +msgstr "publicering \"%s\" angiven mer än en gång" + +#: pg_createsubscriber.c:2019 +#, c-format +msgid "replication slot \"%s\" specified more than once" +msgstr "replikeringsslott \"%s\" angiven mer än en gång" + +#: pg_createsubscriber.c:2031 +#, c-format +msgid "subscription \"%s\" specified more than once" +msgstr "prenumeration \"%s\" angiven mer än en gång" + +#: pg_createsubscriber.c:2054 +#, c-format +msgid "no subscriber data directory specified" +msgstr "ingen datakatalog för prenumeration angiven" + +#: pg_createsubscriber.c:2065 +#, c-format +msgid "could not determine current directory" +msgstr "kunde inte bestämma aktuell katalog" + +#: pg_createsubscriber.c:2082 +#, c-format +msgid "no publisher connection string specified" +msgstr "ingen anslutningssträng angiven för publicerare" + +#: pg_createsubscriber.c:2086 +#, c-format +msgid "validating publisher connection string" +msgstr "validerar publicerares anslutningssträng" + +#: pg_createsubscriber.c:2092 +#, c-format +msgid "validating subscriber connection string" +msgstr "validerar prenumerants anslutningssträng" + +#: pg_createsubscriber.c:2097 +#, c-format +msgid "no database was specified" +msgstr "ingen databas angavs" + +#: pg_createsubscriber.c:2109 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "databasnamn \"%s\" extraherades från publicistens anslutningssträng" + +#: pg_createsubscriber.c:2114 +#, c-format +msgid "no database name specified" +msgstr "inget databasnamn angavs" + +#: pg_createsubscriber.c:2124 +#, c-format +msgid "wrong number of publication names specified" +msgstr "fel antal namn på publicister angavs" + +#: pg_createsubscriber.c:2125 +#, c-format +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "Antalet angivna namn på publicister (%d) måste matcha antalet angivna namn på databaser (%d)." + +#: pg_createsubscriber.c:2131 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "fel antal namn på prenumeranter angivna" + +#: pg_createsubscriber.c:2132 +#, c-format +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "Antalet angivna namn på prenumeranter (%d) måste matcha antalet angivna namn på databaser (%d)." + +#: pg_createsubscriber.c:2138 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "fel antal namn på replikeringsslottar angivet" + +#: pg_createsubscriber.c:2139 +#, c-format +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "Antalet angivna namn på replikeringsslottar (%d) måste matcha antalet angivna namn på databaser (%d)." + +#: pg_createsubscriber.c:2168 +#, c-format +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "prenumerantens datakatalog är inte en kopia på källdatabasens kluster" + +#: pg_createsubscriber.c:2181 +#, c-format +msgid "standby server is running" +msgstr "standby-servern kör" + +#: pg_createsubscriber.c:2182 +#, c-format +msgid "Stop the standby server and try again." +msgstr "Stoppa standby-servern och försök igen." + +#: pg_createsubscriber.c:2191 +#, c-format +msgid "starting the standby server with command-line options" +msgstr "startar standby-server med kommandoradsflaggor" + +#: pg_createsubscriber.c:2207 pg_createsubscriber.c:2242 +#, c-format +msgid "stopping the subscriber" +msgstr "stoppar prenumeranten" + +#: pg_createsubscriber.c:2221 +#, c-format +msgid "starting the subscriber" +msgstr "startar prenumeranten" + +#: pg_createsubscriber.c:2250 +#, c-format +msgid "Done!" +msgstr "Klar!" + +#: pg_receivewal.c:77 +#, c-format +msgid "" +"%s receives PostgreSQL streaming write-ahead logs.\n" +"\n" +msgstr "" +"%s tar emot PostgreSQL-strömning-write-ahead-logg.\n" +"\n" + #: pg_receivewal.c:82 #, c-format msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=KAT ta emot write-ahead-logg-filer till denna katalog\n" -#: pg_receivewal.c:83 pg_recvlogical.c:83 +#: pg_receivewal.c:83 pg_recvlogical.c:93 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN avsluta efter att ha taget emot den angivna LSN\n" -#: pg_receivewal.c:84 pg_recvlogical.c:87 +#: pg_receivewal.c:84 pg_recvlogical.c:97 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr " --if-not-exists inget fel om slot:en redan finns när vi skapar slot:en\n" -#: pg_receivewal.c:85 pg_recvlogical.c:89 +#: pg_receivewal.c:85 pg_recvlogical.c:99 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop loopa inte om anslutning tappas\n" @@ -1168,7 +1967,7 @@ msgstr " -n, --no-loop loopa inte om anslutning tappas\n" msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync vänta inte på att ändringar skall skrivas säkert till disk\n" -#: pg_receivewal.c:87 pg_recvlogical.c:94 +#: pg_receivewal.c:87 pg_recvlogical.c:104 #, c-format msgid "" " -s, --status-interval=SECS\n" @@ -1200,12 +1999,12 @@ msgstr "" "\n" "Valfria handlingar:\n" -#: pg_receivewal.c:104 pg_recvlogical.c:79 +#: pg_receivewal.c:104 pg_recvlogical.c:89 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr " --create-slot skapa en ny replikeringsslot (angående slot:ens namn, se --slot)\n" -#: pg_receivewal.c:105 pg_recvlogical.c:80 +#: pg_receivewal.c:105 pg_recvlogical.c:90 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr " --drop-slot släng replikeringsslot (angående slot:ens namn, se --slot)\n" @@ -1225,7 +2024,7 @@ msgstr "stoppade logg-strömning vid %X/%X (tidslinje %u)" msgid "switched to timeline %u at %X/%X" msgstr "bytte till tidslinje %u vid %X/%X" -#: pg_receivewal.c:224 +#: pg_receivewal.c:224 pg_recvlogical.c:1053 #, c-format msgid "received interrupt signal, exiting" msgstr "mottog avbrottsignal, avslutar" @@ -1270,11 +2069,6 @@ msgstr "komprimerad segmentfil \"%s\" har inkorrekt okomprimerad storlek %d, hop msgid "could not create LZ4 decompression context: %s" msgstr "kunde inte skapa kontext för LZ4-dekomprimering: %s" -#: pg_receivewal.c:402 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "kunde inte läsa fil \"%s\": %m" - #: pg_receivewal.c:420 #, c-format msgid "could not decompress file \"%s\": %s" @@ -1300,7 +2094,7 @@ msgstr "kan inte kontrollera filen \"%s\": komprimering med %s stöds inte av de msgid "starting log streaming at %X/%X (timeline %u)" msgstr "startar logg-strömning vid %X/%X (tidslinje %u)" -#: pg_receivewal.c:693 pg_recvlogical.c:783 +#: pg_receivewal.c:693 pg_recvlogical.c:801 #, c-format msgid "could not parse end position \"%s\"" msgstr "kunde inte parsa slutposition \"%s\"" @@ -1330,28 +2124,28 @@ msgstr "komprimering med %s stöds inte än" msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "replikeringsanslutning som använder slot \"%s\" är oväntat databasspecifik" -#: pg_receivewal.c:878 pg_recvlogical.c:954 +#: pg_receivewal.c:878 pg_recvlogical.c:972 #, c-format msgid "dropping replication slot \"%s\"" msgstr "slänger replikeringsslot \"%s\"" -#: pg_receivewal.c:889 pg_recvlogical.c:964 +#: pg_receivewal.c:889 pg_recvlogical.c:982 #, c-format msgid "creating replication slot \"%s\"" msgstr "skapar replikeringsslot \"%s\"" -#: pg_receivewal.c:918 pg_recvlogical.c:988 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "nerkopplad" #. translator: check source for value for %d -#: pg_receivewal.c:922 pg_recvlogical.c:992 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "nerkopplad; väntar %d sekunder för att försöka igen" -#: pg_recvlogical.c:74 +#: pg_recvlogical.c:84 #, c-format msgid "" "%s controls PostgreSQL logical decoding streams.\n" @@ -1360,7 +2154,7 @@ msgstr "" "%s styr PostgreSQL:s logiskt avkodade strömmar.\n" "\n" -#: pg_recvlogical.c:78 +#: pg_recvlogical.c:88 #, c-format msgid "" "\n" @@ -1369,17 +2163,17 @@ msgstr "" "\n" "Handling att utföra:\n" -#: pg_recvlogical.c:81 +#: pg_recvlogical.c:91 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr " --start starta strömning i en replikeringsslot (angående slot:ens namn, se --slot)\n" -#: pg_recvlogical.c:84 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=FIL ta emot logg till denna fil, - för stdout\n" -#: pg_recvlogical.c:85 +#: pg_recvlogical.c:95 #, c-format msgid "" " -F --fsync-interval=SECS\n" @@ -1388,12 +2182,12 @@ msgstr "" " -F --fsync-interval=SEK\n" " tid mellan fsync av utdatafil (standard: %d)\n" -#: pg_recvlogical.c:88 +#: pg_recvlogical.c:98 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN var i en existerande slot skall strömningen starta\n" -#: pg_recvlogical.c:90 +#: pg_recvlogical.c:100 #, c-format msgid "" " -o, --option=NAME[=VALUE]\n" @@ -1404,143 +2198,143 @@ msgstr "" " skicka vidare flaggan NAMN med ev. värde VÄRDE till\n" " utmatnings-plugin:en\n" -#: pg_recvlogical.c:93 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN använd utmatnings-plugin:en PLUGIN (standard: %s)\n" -#: pg_recvlogical.c:96 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOTNAMN namn på den logiska replikerings-slotten\n" -#: pg_recvlogical.c:97 +#: pg_recvlogical.c:107 #, c-format msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" msgstr " -t, --two-phase slå på avkodning av förberedda transaktioner när en slot skapas\n" -#: pg_recvlogical.c:102 +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=DBNAMN databas att ansluta till\n" -#: pg_recvlogical.c:135 +#: pg_recvlogical.c:145 #, c-format 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:159 receivelog.c:360 +#: pg_recvlogical.c:169 receivelog.c:360 #, c-format msgid "could not send feedback packet: %s" msgstr "kunde inte skicka feedback-paket: %s" -#: pg_recvlogical.c:227 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "startar logg-strömning vid %X/%X (slot %s)" -#: pg_recvlogical.c:269 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "strömning initierad" -#: pg_recvlogical.c:333 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "kunde inte öppna loggfil \"%s\": %m" -#: pg_recvlogical.c:362 receivelog.c:882 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "ogiltigt uttag: %s" -#: pg_recvlogical.c:415 receivelog.c:910 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: pg_recvlogical.c:422 receivelog.c:959 +#: pg_recvlogical.c:435 receivelog.c:959 #, 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:464 pg_recvlogical.c:515 receivelog.c:1003 +#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 #: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "strömningsheader för liten: %d" -#: pg_recvlogical.c:499 receivelog.c:843 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "okänd strömningsheader: \"%c\"" -#: pg_recvlogical.c:553 pg_recvlogical.c:565 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "kunde inte skriva %d byte till loggfil \"%s\": %m" -#: pg_recvlogical.c:619 receivelog.c:642 receivelog.c:679 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "oväntad terminering av replikeringsström: %s" -#: pg_recvlogical.c:778 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "kunde inte parsa startposition \"%s\"" -#: pg_recvlogical.c:856 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "ingen slot angiven" -#: pg_recvlogical.c:863 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "ingen målfil angiven" -#: pg_recvlogical.c:870 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "ingen databas angiven" -#: pg_recvlogical.c:877 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "minst en handling måste anges" -#: pg_recvlogical.c:884 +#: pg_recvlogical.c:902 #, 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:891 +#: pg_recvlogical.c:909 #, 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:898 +#: 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:905 +#: pg_recvlogical.c:923 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase får bara anges tillsammans med --create-slot" -#: pg_recvlogical.c:938 +#: pg_recvlogical.c:956 #, c-format msgid "could not establish database-specific replication connection" msgstr "kunde inte upprätta databasspecifik replikeringsanslutning" -#: pg_recvlogical.c:1032 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "slutposition %X/%X nådd av keepalive" -#: pg_recvlogical.c:1035 +#: pg_recvlogical.c:1061 #, 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" @@ -1657,7 +2451,7 @@ msgstr "oväntad resultatmängd efter slut-på-tidslinje: fick %d rader och %d f msgid "could not parse next timeline's starting point \"%s\"" msgstr "kunde inte parsa nästa tidslinjens startpunkt \"%s\"" -#: receivelog.c:775 receivelog.c:1022 walmethods.c:1201 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "kunde inte fsync:a fil \"%s\": %s" @@ -1682,136 +2476,121 @@ msgstr "kunde inte skriva %d byte till WAL-fil \"%s\": %s" msgid "could not send copy-end packet: %s" msgstr "kunde inte skicka \"copy-end\"-paket: %s" -#: streamutil.c:158 +#: streamutil.c:162 msgid "Password: " msgstr "Lösenord: " -#: streamutil.c:181 +#: streamutil.c:189 #, c-format msgid "could not connect to server" msgstr "kunde inte ansluta till server" -#: streamutil.c:222 +#: streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "kunde inte nollställa search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "kunde inte nollställa \"search_path\": %s" -#: streamutil.c:238 +#: 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" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "kunde inte lista ut serverns inställning för \"integer_datetimes\"" -#: streamutil.c:245 +#: streamutil.c:253 #, c-format -msgid "integer_datetimes compile flag does not match server" -msgstr "kompileringsflaggan integer_datetimes matchar inte servern" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "kompileringsflaggan \"integer_datetimes\" matchar inte servern" -#: streamutil.c:296 +#: streamutil.c:372 #, 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:306 +#: streamutil.c:382 #, c-format msgid "WAL segment size could not be parsed" msgstr "WAL-segment-storlek kunde inte parsas" -#: streamutil.c:324 +#: streamutil.c:400 #, 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" +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "fjärrservern rapporterade ogiltig WAL-segmentstorlek (%d byte)" +msgstr[1] "fjärrservern rapporterade ogiltig WAL-segmentstorlek (%d byte)" -#: streamutil.c:369 +#: streamutil.c:404 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Storleken på WAL-segment måste vara en tvåpotens mellan 1 MB och 1 GB." + +#: streamutil.c:446 #, 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:378 +#: streamutil.c:455 #, c-format msgid "group access flag could not be parsed: %s" msgstr "gruppaccessflagga kunde inte parsas: %s" -#: streamutil.c:421 streamutil.c:458 +#: streamutil.c:498 streamutil.c:535 #, 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" -#: streamutil.c:510 +#: streamutil.c:587 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "kunde inte läsa replikeringsslot \"%s\": fick %d rader och %d fält, förväntade %d rader och %d fält" -#: streamutil.c:522 +#: streamutil.c:599 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "replikeringsslot \"%s\" existerar inte" -#: streamutil.c:533 +#: streamutil.c:610 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "förväntade en fysisk replikeringsslot men fick av typen \"%s\" istället" -#: streamutil.c:547 +#: streamutil.c:624 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "kunde inte parsa restart_lsn \"%s\" för replikeringsslot \"%s\"" -#: streamutil.c:664 +#: streamutil.c:741 #, 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:708 +#: streamutil.c:785 #, 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:721 walmethods.c:1264 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "kunde inte komprimera data" -#: walmethods.c:750 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "kunde inte nollställa komprimeringsström" -#: walmethods.c:888 +#: walmethods.c:892 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:903 +#: walmethods.c:907 msgid "could not create tar header" msgstr "kunde inte skapa tar-header" -#: walmethods.c:920 walmethods.c:961 walmethods.c:1166 walmethods.c:1179 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "kunde inte ändra komprimeringsparametrar" -#: walmethods.c:1052 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "unlink stöds inte med komprimering" -#: walmethods.c:1288 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "kunde inte stänga komprimeringsström" - -#, c-format -#~ msgid "could not determine seek position in file \"%s\": %s" -#~ msgstr "kunde inte fastställa sökposition i fil \"%s\": %s" - -#, c-format -#~ msgid "symlinks are not supported on this platform" -#~ msgstr "symboliska länkar stöds inte på denna plattform" - -#, c-format -#~ msgid "this build does not support gzip compression" -#~ msgstr "detta bygge stöder inte gzip-komprimering" - -#, c-format -#~ msgid "this build does not support lz4 compression" -#~ msgstr "detta bygge stöder inte lz4-komprimering" - -#, c-format -#~ msgid "this build does not support zstd compression" -#~ msgstr "detta bygge stöder inte zstd-komprimering" diff --git a/src/bin/pg_basebackup/po/uk.po b/src/bin/pg_basebackup/po/uk.po index 695c62a9fd948..09cd1a552dde9 100644 --- a/src/bin/pg_basebackup/po/uk.po +++ b/src/bin/pg_basebackup/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:48+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:20+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_basebackup.pot\n" -"X-Crowdin-File-ID: 910\n" +"X-Crowdin-File: /REL_17_STABLE/pg_basebackup.pot\n" +"X-Crowdin-File-ID: 1006\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,84 +37,186 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " -#: ../../common/compression.c:157 +#: ../../common/compression.c:132 ../../common/compression.c:141 +#: ../../common/compression.c:150 bbstreamer_gzip.c:116 bbstreamer_gzip.c:249 +#: bbstreamer_lz4.c:100 bbstreamer_lz4.c:298 bbstreamer_zstd.c:129 +#: bbstreamer_zstd.c:284 +#, c-format +msgid "this build does not support compression with %s" +msgstr "ця збірка не підтримує стиснення з %s" + +#: ../../common/compression.c:205 msgid "found empty string where a compression option was expected" msgstr "знайдено порожній рядок, де очікувався параметр стискання" -#: ../../common/compression.c:187 +#: ../../common/compression.c:244 #, c-format -msgid "unknown compression option \"%s\"" -msgstr "невідомий параметр стискання \"%s\"" +msgid "unrecognized compression option: \"%s\"" +msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: ../../common/compression.c:226 +#: ../../common/compression.c:283 #, c-format msgid "compression option \"%s\" requires a value" msgstr "параметр стискання \"%s\" потребує значення" -#: ../../common/compression.c:235 +#: ../../common/compression.c:292 #, c-format msgid "value for compression option \"%s\" must be an integer" msgstr "значення параметру стискання \"%s\" має бути цілим числом" -#: ../../common/compression.c:273 +#: ../../common/compression.c:331 +#, c-format +msgid "value for compression option \"%s\" must be a Boolean value" +msgstr "значення параметра стискання \"%s\" має бути логічним значенням" + +#: ../../common/compression.c:379 #, c-format msgid "compression algorithm \"%s\" does not accept a compression level" msgstr "алгоритм стискання \"%s\" не приймає рівень стискання" -#: ../../common/compression.c:277 +#: ../../common/compression.c:386 #, c-format -msgid "compression algorithm \"%s\" expects a compression level between %d and %d" -msgstr "алгоритм стискання \"%s\" очікує рівень стискання між %d і %d" +msgid "compression algorithm \"%s\" expects a compression level between %d and %d (default at %d)" +msgstr "алгоритм стискання \"%s\" очікує рівень стискання між %d і %d (за замовчуванням %d)" -#: ../../common/compression.c:289 +#: ../../common/compression.c:397 #, c-format msgid "compression algorithm \"%s\" does not accept a worker count" msgstr "алгоритм стиснення \"%s\" не приймає кількість працівників" +#: ../../common/compression.c:408 +#, c-format +msgid "compression algorithm \"%s\" does not support long-distance mode" +msgstr "алгоритм стиснення \"%s\" не підтримує режим довгої відстані" + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" + +#: ../../common/controldata_utils.c:110 pg_basebackup.c:1873 +#: pg_receivewal.c:402 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: bbstreamer_file.c:138 pg_recvlogical.c:650 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "неможливо закрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "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." +msgstr "можлива помилка у послідовності байтів.\n" +"Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: pg_basebackup.c:1846 pg_receivewal.c:386 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не вдалося записати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 pg_recvlogical.c:204 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 -#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:162 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format msgid "out of memory\n" msgstr "недостатньо пам'яті\n" -#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:154 +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 #, c-format msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" -#: ../../common/file_utils.c:87 ../../common/file_utils.c:451 -#: pg_receivewal.c:380 pg_recvlogical.c:341 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_receivewal.c:319 pg_recvlogical.c:352 #, c-format msgid "could not stat file \"%s\": %m" msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" -#: ../../common/file_utils.c:166 pg_receivewal.c:303 +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_receivewal.c:242 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: ../../common/file_utils.c:200 pg_receivewal.c:534 +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_receivewal.c:471 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" -#: ../../common/file_utils.c:232 ../../common/file_utils.c:291 -#: ../../common/file_utils.c:365 ../../fe_utils/recovery_gen.c:121 -#: pg_receivewal.c:447 +#: ../../common/file_utils.c:498 pg_basebackup.c:2344 walmethods.c:462 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" -#: ../../common/file_utils.c:303 ../../common/file_utils.c:373 -#: pg_recvlogical.c:196 +#: ../../common/restricted_token.c:60 #, c-format -msgid "could not fsync file \"%s\": %m" -msgstr "не вдалося fsync файл \"%s\": %m" +msgid "could not open process token: error code %lu" +msgstr "не вдалося відкрити токен процесу: код помилки %lu" -#: ../../common/file_utils.c:383 pg_basebackup.c:2256 walmethods.c:459 +#: ../../common/restricted_token.c:74 #, c-format -msgid "could not rename file \"%s\" to \"%s\": %m" -msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" +msgid "could not allocate SIDs: error code %lu" +msgstr "не вдалося виділити SID: код помилки %lu" + +#: ../../common/restricted_token.c:94 +#, c-format +msgid "could not create restricted token: error code %lu" +msgstr "не вдалося створити обмежений токен: код помилки %lu" + +#: ../../common/restricted_token.c:115 +#, c-format +msgid "could not start process for command \"%s\": error code %lu" +msgstr "не вдалося запустити процес для команди \"%s\": код помилки %lu" + +#: ../../common/restricted_token.c:153 +#, c-format +msgid "could not re-execute with restricted token: error code %lu" +msgstr "не вдалося перезапустити з обмеженим токеном: код помилки %lu" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -126,51 +228,62 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 pg_basebackup.c:1635 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 pg_basebackup.c:1636 streamutil.c:331 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" -#: ../../fe_utils/recovery_gen.c:124 bbstreamer_file.c:121 -#: bbstreamer_file.c:258 pg_basebackup.c:1432 pg_basebackup.c:1726 +#: ../../fe_utils/recovery_gen.c:143 bbstreamer_file.c:121 +#: bbstreamer_file.c:258 pg_basebackup.c:1433 pg_basebackup.c:1727 #, c-format msgid "could not write to file \"%s\": %m" msgstr "неможливо записати до файлу \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 bbstreamer_file.c:93 bbstreamer_file.c:339 -#: pg_basebackup.c:1496 pg_basebackup.c:1705 +#: ../../fe_utils/recovery_gen.c:152 bbstreamer_file.c:93 bbstreamer_file.c:361 +#: pg_basebackup.c:1497 pg_basebackup.c:1706 #, c-format msgid "could not create file \"%s\": %m" msgstr "неможливо створити файл \"%s\": %m" -#: bbstreamer_file.c:138 pg_recvlogical.c:635 +#: ../../fe_utils/string_utils.c:434 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "неможливо закрити файл \"%s\": %m" +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" #: bbstreamer_file.c:275 #, c-format msgid "unexpected state while extracting archive" msgstr "неочікуваний стан під час розпакування архіву" -#: bbstreamer_file.c:298 pg_basebackup.c:686 pg_basebackup.c:730 +#: bbstreamer_file.c:321 pg_basebackup.c:698 pg_basebackup.c:712 +#: pg_basebackup.c:757 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не вдалося створити каталог \"%s\": %m" -#: bbstreamer_file.c:304 +#: bbstreamer_file.c:326 #, c-format msgid "could not set permissions on directory \"%s\": %m" msgstr "не вдалося встановити права для каталогу \"%s\": %m" -#: bbstreamer_file.c:323 +#: bbstreamer_file.c:345 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "не вдалося створити символічне послання з \"%s\" на \"%s\": %m" -#: bbstreamer_file.c:343 +#: bbstreamer_file.c:365 #, c-format msgid "could not set permissions on file \"%s\": %m" msgstr "не вдалося встановити права на файл \"%s\": %m" @@ -190,32 +303,27 @@ msgstr "не вдалося дублювати stdout: %m" msgid "could not open output file: %m" msgstr "не вдалося відкрити вихідний файл: %m" -#: bbstreamer_gzip.c:113 +#: bbstreamer_gzip.c:111 #, c-format msgid "could not set compression level %d: %s" msgstr "не вдалося встановити рівень стискання %d: %s" -#: bbstreamer_gzip.c:118 bbstreamer_gzip.c:251 -#, c-format -msgid "this build does not support gzip compression" -msgstr "ця збірка не підтримує стиснення gzip" - -#: bbstreamer_gzip.c:145 +#: bbstreamer_gzip.c:143 #, c-format msgid "could not write to compressed file \"%s\": %s" msgstr "не вдалося записати до стиснутого файлу \"%s\": %s" -#: bbstreamer_gzip.c:169 +#: bbstreamer_gzip.c:167 #, c-format msgid "could not close compressed file \"%s\": %m" msgstr "не вдалося закрити стиснутий файл \"%s\": %m" -#: bbstreamer_gzip.c:247 walmethods.c:869 +#: bbstreamer_gzip.c:245 walmethods.c:880 #, c-format msgid "could not initialize compression library" msgstr "не вдалося ініціалізувати бібліотеку стискання" -#: bbstreamer_gzip.c:298 bbstreamer_lz4.c:355 bbstreamer_zstd.c:319 +#: bbstreamer_gzip.c:296 bbstreamer_lz4.c:354 bbstreamer_zstd.c:329 #, c-format msgid "could not decompress data: %s" msgstr "не вдалося розпакувати дані: %s" @@ -225,32 +333,27 @@ msgstr "не вдалося розпакувати дані: %s" msgid "unexpected state while injecting recovery settings" msgstr "неочікуваний стан під час введення налаштувань відновлення" -#: bbstreamer_lz4.c:96 +#: bbstreamer_lz4.c:95 #, c-format msgid "could not create lz4 compression context: %s" msgstr "не вдалося створити контекст стиснення lz4: %s" -#: bbstreamer_lz4.c:101 bbstreamer_lz4.c:299 -#, c-format -msgid "this build does not support lz4 compression" -msgstr "ця збірка не підтримує стиснення lz4" - -#: bbstreamer_lz4.c:141 +#: bbstreamer_lz4.c:140 #, c-format msgid "could not write lz4 header: %s" msgstr "не вдалося записати заголовок lz4: %s" -#: bbstreamer_lz4.c:190 bbstreamer_zstd.c:171 bbstreamer_zstd.c:213 +#: bbstreamer_lz4.c:189 bbstreamer_zstd.c:181 bbstreamer_zstd.c:223 #, c-format msgid "could not compress data: %s" msgstr "не вдалося стиснути дані: %s" -#: bbstreamer_lz4.c:242 +#: bbstreamer_lz4.c:241 #, c-format msgid "could not end lz4 compression: %s" msgstr "не вдалося закінчити стискання lz4: %s" -#: bbstreamer_lz4.c:294 +#: bbstreamer_lz4.c:293 #, c-format msgid "could not initialize compression library: %s" msgstr "не вдалося ініціалізувати бібліотеку стиснення: %s" @@ -265,12 +368,12 @@ msgstr "причіп файлу tar перевищує 2 блоки" msgid "unexpected state while parsing tar archive" msgstr "неочікуваний стан під час розбору архіву tar" -#: bbstreamer_tar.c:296 +#: bbstreamer_tar.c:292 #, c-format msgid "tar member has empty name" msgstr "частина tar містить порожню назву" -#: bbstreamer_tar.c:328 +#: bbstreamer_tar.c:326 #, c-format msgid "COPY stream ended before last file was finished" msgstr "потік COPY завершився до завершення останнього файлу" @@ -280,397 +383,415 @@ msgstr "потік COPY завершився до завершення оста msgid "could not create zstd compression context" msgstr "не вдалося створити контекст стиснення zstd" -#: bbstreamer_zstd.c:93 +#: bbstreamer_zstd.c:91 #, c-format msgid "could not set zstd compression level to %d: %s" msgstr "не вдалося встановити рівень стискання zstd на %d: %s" -#: bbstreamer_zstd.c:108 +#: bbstreamer_zstd.c:105 #, c-format msgid "could not set compression worker count to %d: %s" msgstr "не вдалося встановити кількість процесів стискання на %d: %s" -#: bbstreamer_zstd.c:119 bbstreamer_zstd.c:274 +#: bbstreamer_zstd.c:116 #, c-format -msgid "this build does not support zstd compression" -msgstr "ця збірка не підтримує стиснення zstd" +msgid "could not enable long-distance mode: %s" +msgstr "не вдалося включити режим довгої відстані: %s" -#: bbstreamer_zstd.c:265 +#: bbstreamer_zstd.c:275 #, c-format msgid "could not create zstd decompression context" msgstr "не вдалося створити контекст zstd декомпресії" -#: pg_basebackup.c:240 +#: pg_basebackup.c:245 #, c-format msgid "removing data directory \"%s\"" msgstr "видалення даних з директорії \"%s\"" -#: pg_basebackup.c:242 +#: pg_basebackup.c:247 #, c-format msgid "failed to remove data directory" msgstr "не вдалося видалити дані директорії" -#: pg_basebackup.c:246 +#: pg_basebackup.c:251 #, c-format msgid "removing contents of data directory \"%s\"" msgstr "видалення даних з директорії \"%s\"" -#: pg_basebackup.c:248 +#: pg_basebackup.c:253 #, c-format msgid "failed to remove contents of data directory" msgstr "не вдалося видалити дані директорії" -#: pg_basebackup.c:253 +#: pg_basebackup.c:258 #, c-format msgid "removing WAL directory \"%s\"" msgstr "видалення WAL директорії \"%s\"" -#: pg_basebackup.c:255 +#: pg_basebackup.c:260 #, c-format msgid "failed to remove WAL directory" msgstr "не вдалося видалити директорію WAL" -#: pg_basebackup.c:259 +#: pg_basebackup.c:264 #, c-format msgid "removing contents of WAL directory \"%s\"" msgstr "видалення даних з директорії WAL \"%s\"" -#: pg_basebackup.c:261 +#: pg_basebackup.c:266 #, c-format msgid "failed to remove contents of WAL directory" msgstr "не вдалося видалити дані директорії WAL" -#: pg_basebackup.c:267 +#: pg_basebackup.c:272 #, c-format msgid "data directory \"%s\" not removed at user's request" msgstr "директорія даних \"%s\" не видалена за запитом користувача" -#: pg_basebackup.c:270 +#: pg_basebackup.c:275 #, c-format msgid "WAL directory \"%s\" not removed at user's request" msgstr "директорія WAL \"%s\" не видалена за запитом користувача" -#: pg_basebackup.c:274 +#: pg_basebackup.c:279 #, c-format msgid "changes to tablespace directories will not be undone" msgstr "зміни в каталогах табличних просторів незворотні" -#: pg_basebackup.c:326 +#: pg_basebackup.c:331 #, c-format msgid "directory name too long" msgstr "ім'я директорії задовге" -#: pg_basebackup.c:333 +#: pg_basebackup.c:338 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "кілька знаків \"=\" зіставленні табличних просторів" -#: pg_basebackup.c:342 +#: pg_basebackup.c:347 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "неприпустимий табличний простір зіставлення формату \"%s\", має бути \"OLDDIR = NEWDIR\"" -#: pg_basebackup.c:351 +#: pg_basebackup.c:366 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "старий каталог не є абсолютним шляхом у зіставлення табличного простору: %s" -#: pg_basebackup.c:355 +#: pg_basebackup.c:370 #, c-format msgid "new directory is not an absolute path in tablespace mapping: %s" msgstr "новий каталог не є абсолютним шляхом у зіставлення табличного простору: %s" -#: pg_basebackup.c:377 +#: pg_basebackup.c:392 #, c-format msgid "%s takes a base backup of a running PostgreSQL server.\n\n" msgstr "%s робить базову резервну копію працюючого сервера PostgreSQL.\n\n" -#: pg_basebackup.c:379 pg_receivewal.c:81 pg_recvlogical.c:78 +#: pg_basebackup.c:394 pg_createsubscriber.c:221 pg_receivewal.c:79 +#: pg_recvlogical.c:86 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_basebackup.c:380 pg_receivewal.c:82 pg_recvlogical.c:79 +#: pg_basebackup.c:395 pg_createsubscriber.c:222 pg_receivewal.c:80 +#: pg_recvlogical.c:87 #, c-format msgid " %s [OPTION]...\n" msgstr " %s: [OPTION]...\n" -#: pg_basebackup.c:381 +#: pg_basebackup.c:396 #, c-format msgid "\n" "Options controlling the output:\n" msgstr "\n" "Параметри, що контролюють вивід:\n" -#: pg_basebackup.c:382 +#: pg_basebackup.c:397 #, c-format msgid " -D, --pgdata=DIRECTORY receive base backup into directory\n" msgstr " -D, -- pgdata=DIRECTORY директорія, в яку зберегти резервну копію бази\n" -#: pg_basebackup.c:383 +#: pg_basebackup.c:398 #, c-format msgid " -F, --format=p|t output format (plain (default), tar)\n" msgstr " -F, --format=p|т формат виводу (звичайний за замовчуванням, tar)\n" -#: pg_basebackup.c:384 +#: pg_basebackup.c:399 +#, c-format +msgid " -i, --incremental=OLDMANIFEST\n" +" take incremental backup\n" +msgstr " -i, --incremental=OLDMANIFEST\n" +" створювати інкрементні резервні копії\n" + +#: pg_basebackup.c:401 #, 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=RATE максимальна швидкість передавання даних до директорії\n" " (у кБ/с або з використанням суфіксів \"k\" або \"М\")\n" -#: pg_basebackup.c:386 +#: pg_basebackup.c:403 #, c-format msgid " -R, --write-recovery-conf\n" " write configuration for replication\n" msgstr " -R, --write-recovery-conf\n" " записати конфігурацію для реплікації\n" -#: pg_basebackup.c:388 +#: pg_basebackup.c:405 #, c-format msgid " -t, --target=TARGET[:DETAIL]\n" " backup target (if other than client)\n" msgstr " -t, --target=TARGET[:DETAIL]\n" " ціль резервного копіювання (якщо не клієнт)\n" -#: pg_basebackup.c:390 +#: pg_basebackup.c:407 #, c-format msgid " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" " relocate tablespace in OLDDIR to NEWDIR\n" msgstr " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" " перенестb табличний простір з OLDDIR до NEWDIR\n" -#: pg_basebackup.c:392 +#: pg_basebackup.c:409 #, c-format msgid " --waldir=WALDIR location for the write-ahead log directory\n" msgstr "--waldir=WALDIR розташування журналу попереднього запису\n" -#: pg_basebackup.c:393 +#: pg_basebackup.c:410 #, 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" " додати необхідні WAL файли за допомогою вказаного методу\n" -#: pg_basebackup.c:395 +#: pg_basebackup.c:412 #, c-format msgid " -z, --gzip compress tar output\n" msgstr " -z, --gzip стиснути вихідний tar\n" -#: pg_basebackup.c:396 +#: pg_basebackup.c:413 #, c-format msgid " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" " compress on client or server as specified\n" msgstr " -Z, --compress=[{client|server}-]METHOD[:DETAIL]\n" " стискати на клієнті або сервері, як зазначено\n" -#: pg_basebackup.c:398 +#: pg_basebackup.c:415 #, c-format msgid " -Z, --compress=none do not compress tar output\n" msgstr " -Z, --compress=none не стискати вивід tar\n" -#: pg_basebackup.c:399 +#: pg_basebackup.c:416 #, c-format msgid "\n" "General options:\n" msgstr "\n" "Основні налаштування:\n" -#: pg_basebackup.c:400 +#: pg_basebackup.c:417 #, c-format msgid " -c, --checkpoint=fast|spread\n" -" set fast or spread checkpointing\n" +" set fast or spread (default) checkpointing\n" msgstr " -c, --checkpoint=fast|spread\n" -" режим швидких або розділених контрольних точок\n" +" встановлювати швидкі або розподілені (за замовчуванням) контрольні точки\n" -#: pg_basebackup.c:402 +#: pg_basebackup.c:419 #, c-format msgid " -C, --create-slot create replication slot\n" msgstr " -C, --create-slot створити слот для реплікації\n" -#: pg_basebackup.c:403 +#: pg_basebackup.c:420 #, c-format msgid " -l, --label=LABEL set backup label\n" msgstr " -l, --label=LABEL встановити мітку резервної копії\n" -#: pg_basebackup.c:404 +#: pg_basebackup.c:421 #, c-format msgid " -n, --no-clean do not clean up after errors\n" msgstr " -n, --no-clean не очищати після помилок\n" -#: pg_basebackup.c:405 +#: pg_basebackup.c:422 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync не чекати завершення збереження даних на диску\n" -#: pg_basebackup.c:406 +#: pg_basebackup.c:423 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress відображати інформацію про прогрес\n" -#: pg_basebackup.c:407 pg_receivewal.c:91 +#: pg_basebackup.c:424 pg_receivewal.c:89 #, c-format msgid " -S, --slot=SLOTNAME replication slot to use\n" msgstr " -S, --slot=ИМ'Я_СЛОТА використовувати вказаний слот реплікації\n" -#: pg_basebackup.c:408 pg_receivewal.c:93 pg_recvlogical.c:100 +#: pg_basebackup.c:425 pg_receivewal.c:91 pg_recvlogical.c:108 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose виводити детальні повідомлення\n" -#: pg_basebackup.c:409 pg_receivewal.c:94 pg_recvlogical.c:101 +#: pg_basebackup.c:426 pg_receivewal.c:92 pg_recvlogical.c:109 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_basebackup.c:410 +#: pg_basebackup.c:427 #, 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|НЕ\n" " використовувати алгоритм для контрольних сум маніфесту\n" -#: pg_basebackup.c:412 +#: pg_basebackup.c:429 #, c-format msgid " --manifest-force-encode\n" " hex encode all file names in manifest\n" msgstr " --manifest-force-encode\n" " кодувати у hex всі імена файлів у маніфесті\n" -#: pg_basebackup.c:414 +#: pg_basebackup.c:431 #, c-format msgid " --no-estimate-size do not estimate backup size in server side\n" msgstr " --no-estimate-size не оцінювати розмір резервної копії на стороні сервера\n" -#: pg_basebackup.c:415 +#: pg_basebackup.c:432 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest пропустити створення маніфесту резервного копіювання\n" -#: pg_basebackup.c:416 +#: pg_basebackup.c:433 #, c-format msgid " --no-slot prevent creation of temporary replication slot\n" msgstr " --no-slot не створювати тимчасового слоту реплікації\n" -#: pg_basebackup.c:417 +#: pg_basebackup.c:434 #, c-format msgid " --no-verify-checksums\n" " do not verify checksums\n" msgstr " --no-verify-checksums\n" " не перевіряти контрольні суми\n" -#: pg_basebackup.c:419 pg_receivewal.c:97 pg_recvlogical.c:102 +#: pg_basebackup.c:436 +#, c-format +msgid " --sync-method=METHOD\n" +" set method for syncing files to disk\n" +msgstr " --sync-method=METHOD\n" +" встановити метод синхронізації файлів на диск\n" + +#: pg_basebackup.c:438 pg_receivewal.c:95 pg_recvlogical.c:110 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку потім вийти\n" -#: pg_basebackup.c:420 pg_receivewal.c:98 pg_recvlogical.c:103 +#: pg_basebackup.c:439 pg_receivewal.c:96 pg_recvlogical.c:111 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: pg_basebackup.c:421 pg_receivewal.c:99 +#: pg_basebackup.c:440 pg_receivewal.c:97 #, c-format msgid " -d, --dbname=CONNSTR connection string\n" msgstr " -d, --dbname=CONNSTR рядок з'єднання\n" -#: pg_basebackup.c:422 pg_receivewal.c:100 pg_recvlogical.c:105 +#: pg_basebackup.c:441 pg_receivewal.c:98 pg_recvlogical.c:113 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хост сервера бази даних або каталог сокетів\n" -#: pg_basebackup.c:423 pg_receivewal.c:101 pg_recvlogical.c:106 +#: pg_basebackup.c:442 pg_receivewal.c:99 pg_recvlogical.c:114 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT порт сервера бази даних\n" -#: pg_basebackup.c:424 +#: pg_basebackup.c:443 #, c-format msgid " -s, --status-interval=INTERVAL\n" " time between status packets sent to server (in seconds)\n" msgstr " -s, --status-interval=INTERVAL часу між пакетами статусу до сервера (у секундах)\n" -#: pg_basebackup.c:426 pg_receivewal.c:102 pg_recvlogical.c:107 +#: pg_basebackup.c:445 pg_receivewal.c:100 pg_recvlogical.c:115 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME підключатись як вказаний користувач бази даних\n" -#: pg_basebackup.c:427 pg_receivewal.c:103 pg_recvlogical.c:108 +#: pg_basebackup.c:446 pg_receivewal.c:101 pg_recvlogical.c:116 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не питати пароль\n" -#: pg_basebackup.c:428 pg_receivewal.c:104 pg_recvlogical.c:109 +#: pg_basebackup.c:447 pg_receivewal.c:102 pg_recvlogical.c:117 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password обов'язково питати пароль (повинно відбуватися автоматично)\n" -#: pg_basebackup.c:429 pg_receivewal.c:108 pg_recvlogical.c:110 +#: pg_basebackup.c:448 pg_createsubscriber.c:240 pg_receivewal.c:106 +#: pg_recvlogical.c:118 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_basebackup.c:430 pg_receivewal.c:109 pg_recvlogical.c:111 +#: pg_basebackup.c:449 pg_createsubscriber.c:241 pg_receivewal.c:107 +#: pg_recvlogical.c:119 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_basebackup.c:472 +#: pg_basebackup.c:488 #, c-format msgid "could not read from ready pipe: %m" msgstr "не можливо прочитати з готових каналів: %m" -#: pg_basebackup.c:475 pg_basebackup.c:622 pg_basebackup.c:2170 -#: streamutil.c:444 +#: pg_basebackup.c:491 pg_basebackup.c:633 pg_basebackup.c:2258 +#: streamutil.c:518 #, c-format msgid "could not parse write-ahead log location \"%s\"" msgstr "не вдалося проаналізувати наперед журнал локації \"%s\"" -#: pg_basebackup.c:581 pg_receivewal.c:665 +#: pg_basebackup.c:596 pg_receivewal.c:600 #, c-format msgid "could not finish writing WAL files: %m" msgstr "не можливо закінчити написання файлів WAL: %m" -#: pg_basebackup.c:631 +#: pg_basebackup.c:642 #, c-format msgid "could not create pipe for background process: %m" msgstr "не можливо створити канал для фонового процесу: %m" -#: pg_basebackup.c:664 +#: pg_basebackup.c:676 #, c-format msgid "created temporary replication slot \"%s\"" msgstr "створено слот тимчасових реплікацій \"%s\"" -#: pg_basebackup.c:667 +#: pg_basebackup.c:679 #, c-format msgid "created replication slot \"%s\"" msgstr "створено слот реплікацій \"%s\"" -#: pg_basebackup.c:701 +#: pg_basebackup.c:728 #, c-format msgid "could not create background process: %m" msgstr "не можливо створити фоновий процес: %m" -#: pg_basebackup.c:710 +#: pg_basebackup.c:737 #, c-format msgid "could not create background thread: %m" msgstr "не можливо створити фоновий потік: %m" -#: pg_basebackup.c:749 +#: pg_basebackup.c:776 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" існує, але він не порожній" -#: pg_basebackup.c:755 +#: pg_basebackup.c:782 pg_createsubscriber.c:390 #, c-format msgid "could not access directory \"%s\": %m" msgstr "немає доступу до каталогу \"%s\": %m" -#: pg_basebackup.c:832 +#: pg_basebackup.c:858 #, c-format msgid "%*s/%s kB (100%%), %d/%d tablespace %*s" msgid_plural "%*s/%s kB (100%%), %d/%d tablespaces %*s" @@ -679,7 +800,7 @@ msgstr[1] "%*s/%s kB (100%%), %d/%d табличних простори %*s" msgstr[2] "%*s/%s kB (100%%), %d/%d табличних просторів %*s" msgstr[3] "%*s/%s kB (100%%), %d/%d табличних просторів %*s" -#: pg_basebackup.c:844 +#: pg_basebackup.c:870 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)" @@ -688,7 +809,7 @@ msgstr[1] "%*s/%s kB (%d%%), %d/%d табличних простори (%s%-*.*s msgstr[2] "%*s/%s kB (%d%%), %d/%d табличних просторів (%s%-*.*s)" msgstr[3] "%*s/%s kB (%d%%), %d/%d табличних просторів (%s%-*.*s)" -#: pg_basebackup.c:860 +#: pg_basebackup.c:886 #, c-format msgid "%*s/%s kB (%d%%), %d/%d tablespace" msgid_plural "%*s/%s kB (%d%%), %d/%d tablespaces" @@ -697,661 +818,1313 @@ msgstr[1] "%*s/%s kB (%d%%), %d/%d табличних простори" msgstr[2] "%*s/%s kB (%d%%), %d/%d табличних просторів" msgstr[3] "%*s/%s kB (%d%%), %d/%d табличних просторів" -#: pg_basebackup.c:884 +#: pg_basebackup.c:910 #, c-format msgid "transfer rate \"%s\" is not a valid value" msgstr "частота передач \"%s\" не є припустимим значенням" -#: pg_basebackup.c:886 +#: pg_basebackup.c:912 #, c-format msgid "invalid transfer rate \"%s\": %m" msgstr "неприпустима частота передач \"%s\": %m" -#: pg_basebackup.c:893 +#: pg_basebackup.c:919 #, c-format msgid "transfer rate must be greater than zero" msgstr "частота передач повинна бути більша за нуль" -#: pg_basebackup.c:923 +#: pg_basebackup.c:949 #, c-format msgid "invalid --max-rate unit: \"%s\"" msgstr "неприпустима одиниця виміру в --max-rate: \"%s\"" -#: pg_basebackup.c:927 +#: pg_basebackup.c:953 #, c-format msgid "transfer rate \"%s\" exceeds integer range" msgstr "швидкість передачі \"%s\" перевищує діапазон цілого числа" -#: pg_basebackup.c:934 +#: pg_basebackup.c:960 #, c-format msgid "transfer rate \"%s\" is out of range" msgstr "швидкість передавання \"%s\" поза діапазоном" -#: pg_basebackup.c:1030 +#: pg_basebackup.c:1022 #, c-format msgid "could not get COPY data stream: %s" msgstr "не вдалося отримати потік даних COPY: %s" -#: pg_basebackup.c:1047 pg_recvlogical.c:438 pg_recvlogical.c:610 -#: receivelog.c:981 +#: pg_basebackup.c:1039 pg_recvlogical.c:449 pg_recvlogical.c:625 +#: receivelog.c:973 #, c-format msgid "could not read COPY data: %s" msgstr "не вдалося прочитати дані COPY: %s" -#: pg_basebackup.c:1051 +#: pg_basebackup.c:1043 #, c-format msgid "background process terminated unexpectedly" msgstr "фоновий процес несподівано перервано" -#: pg_basebackup.c:1122 +#: pg_basebackup.c:1114 #, c-format -msgid "cannot inject manifest into a compressed tarfile" +msgid "cannot inject manifest into a compressed tar file" msgstr "неможливо підставити маніфест в стиснений tar-файл" -#: pg_basebackup.c:1123 +#: pg_basebackup.c:1115 #, c-format -msgid "use client-side compression, send the output to a directory rather than standard output, or use --no-manifest" -msgstr "використйте стиснення на клієнті та відправлення даних в каталог замість стандартного виводу, або використайте параметр --no-manifest" +msgid "Use client-side compression, send the output to a directory rather than standard output, or use %s." +msgstr "Використайте стиснення на клієнті та відправлення даних в каталог замість стандартного виводу, або використайте %s." -#: pg_basebackup.c:1138 +#: pg_basebackup.c:1131 #, c-format -msgid "unable to parse archive: %s" -msgstr "не вдалося розібрати архів: %s" +msgid "cannot parse archive \"%s\"" +msgstr "неможливо розібрати архів \"%s\"" -#: pg_basebackup.c:1139 +#: pg_basebackup.c:1132 #, c-format msgid "Only tar archives can be parsed." msgstr "Тільки архів tar може бути проаналізований." -#: pg_basebackup.c:1141 +#: pg_basebackup.c:1134 #, c-format msgid "Plain format requires pg_basebackup to parse the archive." msgstr "Простий формат потребує обробки архіву в pg_basebackup для обробки." -#: pg_basebackup.c:1143 +#: pg_basebackup.c:1136 #, c-format msgid "Using - as the output directory requires pg_basebackup to parse the archive." msgstr "Використання - в якості вихідного каталогу потребує pg_basebackup для аналізу архіву." -#: pg_basebackup.c:1145 +#: pg_basebackup.c:1138 #, c-format msgid "The -R option requires pg_basebackup to parse the archive." msgstr "Параметр -R потребує використання pg_basebackup для аналізу архіву." -#: pg_basebackup.c:1356 +#: pg_basebackup.c:1357 #, c-format -msgid "archives should precede manifest" +msgid "archives must precede manifest" msgstr "архіви повинні передувати маніфесту" -#: pg_basebackup.c:1371 +#: pg_basebackup.c:1372 #, c-format msgid "invalid archive name: \"%s\"" msgstr "неприпустиме ім'я архіву: \"%s\"" -#: pg_basebackup.c:1443 +#: pg_basebackup.c:1444 #, c-format msgid "unexpected payload data" msgstr "неочікувані дані корисного навантаження" -#: pg_basebackup.c:1586 +#: pg_basebackup.c:1587 #, c-format msgid "empty COPY message" msgstr "порожнє повідомлення COPY" -#: pg_basebackup.c:1588 +#: pg_basebackup.c:1589 #, c-format msgid "malformed COPY message of type %d, length %zu" msgstr "неправильне повідомлення COPY з типом %d, довжина %zu" -#: pg_basebackup.c:1786 +#: pg_basebackup.c:1789 #, c-format msgid "incompatible server version %s" msgstr "несумісна версія серверу %s" -#: pg_basebackup.c:1802 +#: pg_basebackup.c:1805 +#, c-format +msgid "Use -X none or -X fetch to disable log streaming." +msgstr "Використайте -X none або -X fetch, щоб вимкнути потокову передачу журналу." + +#: pg_basebackup.c:1841 +#, c-format +msgid "server does not support incremental backup" +msgstr "сервер не підтримує інкрементне резервне копіювання" + +#: pg_basebackup.c:1850 pg_basebackup.c:2008 pg_recvlogical.c:272 +#: receivelog.c:543 receivelog.c:582 streamutil.c:364 streamutil.c:438 +#: streamutil.c:490 streamutil.c:578 streamutil.c:730 streamutil.c:775 +#, c-format +msgid "could not send replication command \"%s\": %s" +msgstr "не вдалося відправити реплікаційну команду \"%s\": %s" + +#: pg_basebackup.c:1856 pg_basebackup.c:1883 +#, c-format +msgid "could not upload manifest: %s" +msgstr "не вдалося завантажити маніфест: %s" + +#: pg_basebackup.c:1859 pg_basebackup.c:1886 #, c-format -msgid "HINT: use -X none or -X fetch to disable log streaming" -msgstr "ПІДКАЗКА: використайте -X none або -X fetch, щоб вимкнути потокову передачу журналу" +msgid "could not upload manifest: unexpected status %s" +msgstr "не вдалося завантажити маніфест: неочікуваний статус %s" -#: pg_basebackup.c:1870 +#: pg_basebackup.c:1867 +#, c-format +msgid "could not send COPY data: %s" +msgstr "не вдалося надіслати дані COPY: %s" + +#: pg_basebackup.c:1877 +#, c-format +msgid "could not send end-of-COPY: %s" +msgstr "не вдалося надіслати сповіщення про закінчення копіювання: %s" + +#: pg_basebackup.c:1892 +#, c-format +msgid "unexpected extra result while sending manifest" +msgstr "несподіваний додатковий результат під час надсилання маніфесту" + +#: pg_basebackup.c:1950 #, c-format msgid "backup targets are not supported by this server version" msgstr "цілі резервного копіювання не підтримуються цією версією сервера" -#: pg_basebackup.c:1873 +#: pg_basebackup.c:1953 #, c-format msgid "recovery configuration cannot be written when a backup target is used" msgstr "конфігурація відновлення не може бути записана під час використання цілі резервного копіювання" -#: pg_basebackup.c:1900 +#: pg_basebackup.c:1980 #, c-format msgid "server does not support server-side compression" msgstr "сервер не підтримує стиснення на сервері" -#: pg_basebackup.c:1910 +#: pg_basebackup.c:1990 #, c-format msgid "initiating base backup, waiting for checkpoint to complete" msgstr "початок базового резервного копіювання, очікується завершення контрольної точки" -#: pg_basebackup.c:1927 pg_recvlogical.c:262 receivelog.c:549 receivelog.c:588 -#: streamutil.c:291 streamutil.c:364 streamutil.c:416 streamutil.c:504 -#: streamutil.c:656 streamutil.c:701 +#: pg_basebackup.c:1994 #, c-format -msgid "could not send replication command \"%s\": %s" -msgstr "не вдалося відправити реплікаційну команду \"%s\": %s" +msgid "waiting for checkpoint" +msgstr "очікування контрольної точки" -#: pg_basebackup.c:1935 +#: pg_basebackup.c:2016 #, c-format msgid "could not initiate base backup: %s" msgstr "не вдалося почати базове резервне копіювання: %s" -#: pg_basebackup.c:1938 +#: pg_basebackup.c:2019 #, c-format msgid "server returned unexpected response to BASE_BACKUP command; got %d rows and %d fields, expected %d rows and %d fields" msgstr "сервер повернув неочікувану відповідь на команду BASE_BACKUP; отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: pg_basebackup.c:1944 +#: pg_basebackup.c:2025 #, c-format msgid "checkpoint completed" msgstr "контрольна точка завершена" -#: pg_basebackup.c:1959 +#: pg_basebackup.c:2039 #, c-format msgid "write-ahead log start point: %s on timeline %u" msgstr "стартова точка у випереджувальному журналюванні: %s на часовій шкалі %u" -#: pg_basebackup.c:1967 +#: pg_basebackup.c:2047 #, c-format msgid "could not get backup header: %s" msgstr "не вдалося отримати заголовок резервної копії: %s" -#: pg_basebackup.c:1970 +#: pg_basebackup.c:2050 #, c-format msgid "no data returned from server" msgstr "сервер не повернув дані" -#: pg_basebackup.c:2005 +#: pg_basebackup.c:2093 #, c-format msgid "can only write single tablespace to stdout, database has %d" msgstr "можна записати лише один табличний простір в stdout, всього їх в базі даних %d" -#: pg_basebackup.c:2018 +#: pg_basebackup.c:2106 #, c-format msgid "starting background WAL receiver" msgstr "запуск фонового процесу зчитування WAL" -#: pg_basebackup.c:2101 +#: pg_basebackup.c:2189 #, c-format msgid "backup failed: %s" msgstr "помилка резервного копіювання: %s" -#: pg_basebackup.c:2104 +#: pg_basebackup.c:2192 #, c-format msgid "no write-ahead log end position returned from server" msgstr "сервер не повернув кінцеву позицію у випереджувальному журналюванні" -#: pg_basebackup.c:2107 +#: pg_basebackup.c:2195 #, c-format msgid "write-ahead log end point: %s" msgstr "кінцева точка у випереджувальному журналюванні: %s" -#: pg_basebackup.c:2118 +#: pg_basebackup.c:2206 #, c-format msgid "checksum error occurred" msgstr "сталася помилка контрольної суми" -#: pg_basebackup.c:2123 +#: pg_basebackup.c:2211 #, c-format msgid "final receive failed: %s" msgstr "помилка в кінці передачі: %s" -#: pg_basebackup.c:2147 +#: pg_basebackup.c:2235 #, c-format msgid "waiting for background process to finish streaming ..." msgstr "очікування завершення потокового передавання фоновим процесом ..." -#: pg_basebackup.c:2151 +#: pg_basebackup.c:2239 #, c-format msgid "could not send command to background pipe: %m" msgstr "не вдалося надіслати команду до канала фонового процесу: %m" -#: pg_basebackup.c:2156 +#: pg_basebackup.c:2244 #, c-format msgid "could not wait for child process: %m" msgstr "збій при очікуванні дочірнього процесу: %m" -#: pg_basebackup.c:2158 +#: pg_basebackup.c:2246 #, c-format msgid "child %d died, expected %d" msgstr "завершився дочірній процес %d, очікувалося %d" -#: pg_basebackup.c:2160 streamutil.c:91 streamutil.c:197 +#: pg_basebackup.c:2248 streamutil.c:89 streamutil.c:204 streamutil.c:316 #, c-format msgid "%s" msgstr "%s" -#: pg_basebackup.c:2180 +#: pg_basebackup.c:2268 #, c-format msgid "could not wait for child thread: %m" msgstr "неможливо дочекатися дочірнього потоку: %m" -#: pg_basebackup.c:2185 +#: pg_basebackup.c:2273 #, c-format msgid "could not get child thread exit status: %m" msgstr "не можливо отримати статус завершення дочірнього потоку: %m" -#: pg_basebackup.c:2188 +#: pg_basebackup.c:2276 #, c-format msgid "child thread exited with error %u" msgstr "дочірній потік завершився з помилкою %u" -#: pg_basebackup.c:2217 +#: pg_basebackup.c:2305 #, c-format msgid "syncing data to disk ..." msgstr "синхронізація даних з диском ..." -#: pg_basebackup.c:2242 +#: pg_basebackup.c:2330 #, c-format msgid "renaming backup_manifest.tmp to backup_manifest" msgstr "перейменування backup_manifest.tmp в backup_manifest" -#: pg_basebackup.c:2262 +#: pg_basebackup.c:2350 #, c-format msgid "base backup completed" msgstr "базове резервне копіювання завершено" -#: pg_basebackup.c:2351 +#: pg_basebackup.c:2436 +#, c-format +msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" +msgstr "неприпустимий аргумент контрольної точки \"%s\", повинен бути \"fast\" або \"spread\"" + +#: pg_basebackup.c:2454 #, c-format msgid "invalid output format \"%s\", must be \"plain\" or \"tar\"" msgstr "неприпустимий формат виводу \"%s\", повинен бути \"plain\" або \"tar\"" -#: pg_basebackup.c:2395 +#: pg_basebackup.c:2535 #, c-format msgid "invalid wal-method option \"%s\", must be \"fetch\", \"stream\", or \"none\"" msgstr "неприпустимий параметр wal-method \"%s\", повинен бути \"fetch\", \"stream\" або \"none\"" -#: pg_basebackup.c:2425 -#, c-format -msgid "invalid checkpoint argument \"%s\", must be \"fast\" or \"spread\"" -msgstr "неприпустимий аргумент контрольної точки \"%s\", повинен бути \"fast\" або \"spread\"" - -#: pg_basebackup.c:2476 pg_basebackup.c:2488 pg_basebackup.c:2510 -#: pg_basebackup.c:2522 pg_basebackup.c:2528 pg_basebackup.c:2580 -#: pg_basebackup.c:2591 pg_basebackup.c:2601 pg_basebackup.c:2607 -#: pg_basebackup.c:2614 pg_basebackup.c:2626 pg_basebackup.c:2638 -#: pg_basebackup.c:2646 pg_basebackup.c:2659 pg_basebackup.c:2665 -#: pg_basebackup.c:2674 pg_basebackup.c:2686 pg_basebackup.c:2697 -#: pg_basebackup.c:2705 pg_receivewal.c:816 pg_receivewal.c:828 -#: pg_receivewal.c:835 pg_receivewal.c:844 pg_receivewal.c:851 -#: pg_receivewal.c:861 pg_recvlogical.c:837 pg_recvlogical.c:849 -#: pg_recvlogical.c:859 pg_recvlogical.c:866 pg_recvlogical.c:873 -#: pg_recvlogical.c:880 pg_recvlogical.c:887 pg_recvlogical.c:894 -#: pg_recvlogical.c:901 pg_recvlogical.c:908 +#: pg_basebackup.c:2574 pg_basebackup.c:2586 pg_basebackup.c:2608 +#: pg_basebackup.c:2620 pg_basebackup.c:2626 pg_basebackup.c:2678 +#: pg_basebackup.c:2689 pg_basebackup.c:2699 pg_basebackup.c:2705 +#: pg_basebackup.c:2712 pg_basebackup.c:2724 pg_basebackup.c:2736 +#: pg_basebackup.c:2744 pg_basebackup.c:2757 pg_basebackup.c:2763 +#: pg_basebackup.c:2772 pg_basebackup.c:2784 pg_basebackup.c:2795 +#: pg_basebackup.c:2803 pg_createsubscriber.c:2037 pg_createsubscriber.c:2047 +#: pg_createsubscriber.c:2055 pg_createsubscriber.c:2083 +#: pg_createsubscriber.c:2115 pg_receivewal.c:748 pg_receivewal.c:760 +#: pg_receivewal.c:767 pg_receivewal.c:776 pg_receivewal.c:783 +#: pg_receivewal.c:793 pg_recvlogical.c:853 pg_recvlogical.c:865 +#: pg_recvlogical.c:875 pg_recvlogical.c:882 pg_recvlogical.c:889 +#: pg_recvlogical.c:896 pg_recvlogical.c:903 pg_recvlogical.c:910 +#: pg_recvlogical.c:917 pg_recvlogical.c:924 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_basebackup.c:2486 pg_receivewal.c:826 pg_recvlogical.c:847 +#: pg_basebackup.c:2584 pg_createsubscriber.c:2045 pg_receivewal.c:758 +#: pg_recvlogical.c:863 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_basebackup.c:2509 +#: pg_basebackup.c:2607 #, c-format msgid "cannot specify both format and backup target" msgstr "неможливо одночасно вказати формат і ціль резервного копіювання" -#: pg_basebackup.c:2521 +#: pg_basebackup.c:2619 #, c-format msgid "must specify output directory or backup target" msgstr "потрібно вказати вихідний каталог або ціль резервного копіювання" -#: pg_basebackup.c:2527 +#: pg_basebackup.c:2625 #, c-format msgid "cannot specify both output directory and backup target" msgstr "неможливо одночасно вказати вихідну директорію і ціль резервного копіювання" -#: pg_basebackup.c:2557 pg_receivewal.c:870 +#: pg_basebackup.c:2655 pg_receivewal.c:802 #, c-format -msgid "unrecognized compression algorithm \"%s\"" -msgstr "нерозпізнаний алгоритм стискання \"%s\"" +msgid "unrecognized compression algorithm: \"%s\"" +msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: pg_basebackup.c:2563 pg_receivewal.c:877 +#: pg_basebackup.c:2661 pg_receivewal.c:809 #, c-format msgid "invalid compression specification: %s" msgstr "неприпустима специфікація стискання: %s" -#: pg_basebackup.c:2579 +#: pg_basebackup.c:2677 #, c-format msgid "client-side compression is not possible when a backup target is specified" msgstr "стиснення на стороні клієнта неможливе, коли вказана ціль резервного копіювання" -#: pg_basebackup.c:2590 +#: pg_basebackup.c:2688 #, c-format msgid "only tar mode backups can be compressed" msgstr "лише резервні копії в архіві tar можуть стискатись" -#: pg_basebackup.c:2600 +#: pg_basebackup.c:2698 #, c-format msgid "WAL cannot be streamed when a backup target is specified" msgstr "неможливо передавати WAL, коли вказана ціль резервного копіювання" -#: pg_basebackup.c:2606 +#: pg_basebackup.c:2704 #, c-format msgid "cannot stream write-ahead logs in tar mode to stdout" msgstr "транслювати випереджувальні журналювання в режимі tar в потік stdout не можна" -#: pg_basebackup.c:2613 +#: pg_basebackup.c:2711 #, c-format msgid "replication slots can only be used with WAL streaming" msgstr "слоти реплікації можуть використовуватись тільки з потоковим передаванням WAL" -#: pg_basebackup.c:2625 +#: pg_basebackup.c:2723 #, c-format msgid "--no-slot cannot be used with slot name" msgstr "--no-slot не можна використовувати з іменем слота" #. translator: second %s is an option name -#: pg_basebackup.c:2636 pg_receivewal.c:842 +#: pg_basebackup.c:2734 pg_receivewal.c:774 #, c-format msgid "%s needs a slot to be specified using --slot" msgstr "для %s потрібно вказати слот за допомогою --slot" -#: pg_basebackup.c:2644 pg_basebackup.c:2684 pg_basebackup.c:2695 -#: pg_basebackup.c:2703 +#: pg_basebackup.c:2742 pg_basebackup.c:2782 pg_basebackup.c:2793 +#: pg_basebackup.c:2801 #, c-format msgid "%s and %s are incompatible options" msgstr "параметри %s і %s несумісні" -#: pg_basebackup.c:2658 +#: pg_basebackup.c:2756 #, c-format msgid "WAL directory location cannot be specified along with a backup target" msgstr "Не можна вказати розташування директорії WAL разом з ціллю резервного копіювання" -#: pg_basebackup.c:2664 +#: pg_basebackup.c:2762 #, c-format msgid "WAL directory location can only be specified in plain mode" msgstr "розташування каталога WAL можна вказати лише в режимі plain" -#: pg_basebackup.c:2673 +#: pg_basebackup.c:2771 #, c-format msgid "WAL directory location must be an absolute path" msgstr "розташування WAL каталогу має бути абсолютним шляхом" -#: pg_basebackup.c:2774 +#: pg_basebackup.c:2871 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не вдалося створити символічне послання \"%s\": %m" -#: pg_basebackup.c:2776 +#: pg_createsubscriber.c:169 #, c-format -msgid "symlinks are not supported on this platform" -msgstr "символічні посилання не підтримуються цією платформою" +msgid "failed after the end of recovery" +msgstr "помилка після закінчення відновлення" -#: pg_receivewal.c:79 +#: pg_createsubscriber.c:170 #, c-format -msgid "%s receives PostgreSQL streaming write-ahead logs.\n\n" -msgstr "%s отримує передачу випереджувальних журналів PostgreSQL.\n\n" +msgid "The target server cannot be used as a physical replica anymore. You must recreate the physical replica before continuing." +msgstr "Цільовий сервер не можна більше використовувати як фізичну репліку. Перед продовженням вам слід відтворити фізичну репліку." + +#: pg_createsubscriber.c:198 +#, c-format +msgid "publication \"%s\" created in database \"%s\" on primary was left behind" +msgstr "публікація \"%s\" створена в базі даних \"%s\" на основному кластері залишилася позаду" -#: pg_receivewal.c:83 pg_recvlogical.c:84 +#: pg_createsubscriber.c:200 +#, c-format +msgid "Drop this publication before trying again." +msgstr "Видаліть цю публікацію перед тим, як спробувати знову." + +#: pg_createsubscriber.c:204 +#, c-format +msgid "replication slot \"%s\" created in database \"%s\" on primary was left behind" +msgstr "слот реплікації \"%s\" створений в базі даних \"%s\" на основному кластері залишився позаду" + +#: pg_createsubscriber.c:206 pg_createsubscriber.c:1260 +#, c-format +msgid "Drop this replication slot soon to avoid retention of WAL files." +msgstr "Видаліть цей слот реплікації найближчим часом, щоб уникнути збереження файлів WAL." + +#: pg_createsubscriber.c:219 +#, c-format +msgid "%s creates a new logical replica from a standby server.\n\n" +msgstr "%s створює нову логічну репліку з резервного сервера.\n\n" + +#: pg_createsubscriber.c:223 pg_receivewal.c:81 pg_recvlogical.c:92 #, c-format msgid "\n" "Options:\n" msgstr "\n" "Параметри:\n" -#: pg_receivewal.c:84 +#: pg_createsubscriber.c:224 +#, c-format +msgid " -d, --database=DBNAME database in which to create a subscription\n" +msgstr " -d, --database=DBNAME база даних для створення підписки\n" + +#: pg_createsubscriber.c:225 +#, c-format +msgid " -D, --pgdata=DATADIR location for the subscriber data directory\n" +msgstr " -D, --pgdata=DATADIR розташування каталогу даних підписника\n" + +#: pg_createsubscriber.c:226 +#, c-format +msgid " -n, --dry-run dry run, just show what would be done\n" +msgstr " -n, --dry-run сухий запуск, просто показати, що буде зроблено\n" + +#: pg_createsubscriber.c:227 +#, c-format +msgid " -p, --subscriber-port=PORT subscriber port number (default %s)\n" +msgstr " -p, --subscriber-port=PORT номер порту підписника (за замовчуванням %s)\n" + +#: pg_createsubscriber.c:228 +#, c-format +msgid " -P, --publisher-server=CONNSTR publisher connection string\n" +msgstr " -P, --publisher-server=CONNSTR рядок підключення видавця\n" + +#: pg_createsubscriber.c:229 +#, c-format +msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" +msgstr " -s, --socketdir=DIR директорія сокету для використання (за замовчування поточна директорія)\n" + +#: pg_createsubscriber.c:230 +#, c-format +msgid " -t, --recovery-timeout=SECS seconds to wait for recovery to end\n" +msgstr " -t, --recovery-timeout=SECS секунд для очікування кінця відновлення\n" + +#: pg_createsubscriber.c:231 +#, c-format +msgid " -U, --subscriber-username=NAME user name for subscriber connection\n" +msgstr " -U, --subscriber-username=NAME користувач для під'єднання підписника\n" + +#: pg_createsubscriber.c:232 +#, c-format +msgid " -v, --verbose output verbose messages\n" +msgstr " -v, --verbose виводити детальні повідомлення\n" + +#: pg_createsubscriber.c:233 +#, c-format +msgid " --config-file=FILENAME use specified main server configuration\n" +" file when running target cluster\n" +msgstr " --config-file=FILENAME використовувати заданий основний файл конфігурації сервера\n" +" при запуску цільового кластера\n" + +#: pg_createsubscriber.c:235 +#, c-format +msgid " --publication=NAME publication name\n" +msgstr " --publication=NAME назва публікації\n" + +#: pg_createsubscriber.c:236 +#, c-format +msgid " --replication-slot=NAME replication slot name\n" +msgstr " --replication-slot=NAME назва слота реплікації\n" + +#: pg_createsubscriber.c:237 +#, c-format +msgid " --subscription=NAME subscription name\n" +msgstr " --subscription=NAME назва підписки\n" + +#: pg_createsubscriber.c:238 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version вивести інформацію про версію і вийти\n" + +#: pg_createsubscriber.c:239 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показати цю справку, потім вийти\n" + +#: pg_createsubscriber.c:282 +#, c-format +msgid "could not parse connection string: %s" +msgstr "не вдалося аналізувати рядок підключення: %s" + +#: pg_createsubscriber.c:359 +#, c-format +msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" +msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"" + +#: pg_createsubscriber.c:362 +#, c-format +msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" +msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s" + +#: pg_createsubscriber.c:382 +#, c-format +msgid "checking if directory \"%s\" is a cluster data directory" +msgstr "перевірка чи каталог \"%s\" є каталогом даних кластера" + +#: pg_createsubscriber.c:388 +#, c-format +msgid "data directory \"%s\" does not exist" +msgstr "каталог даних \"%s\" не існує" + +#: pg_createsubscriber.c:396 +#, c-format +msgid "directory \"%s\" is not a database cluster directory" +msgstr "каталог \"%s\" не є каталогом кластера бази даних" + +#: pg_createsubscriber.c:513 +#, c-format +msgid "connection to database failed: %s" +msgstr "помилка підключення до бази даних: %s" + +#: pg_createsubscriber.c:526 +#, c-format +msgid "could not clear search_path: %s" +msgstr "не вдалося очистити search_path: %s" + +#: pg_createsubscriber.c:566 +#, c-format +msgid "getting system identifier from publisher" +msgstr "отримання системного ідентифікатора з публікації" + +#: pg_createsubscriber.c:573 +#, c-format +msgid "could not get system identifier: %s" +msgstr "не вдалося отримати системний ідентифікатор: %s" + +#: pg_createsubscriber.c:579 +#, c-format +msgid "could not get system identifier: got %d rows, expected %d row" +msgstr "не вдалося отримати системний ідентифікатор: отримано рядки %d, очікувалось %d рядок" + +#: pg_createsubscriber.c:586 +#, c-format +msgid "system identifier is %llu on publisher" +msgstr "системний ідентифікатор %llu на сервері публікації" + +#: pg_createsubscriber.c:607 +#, c-format +msgid "getting system identifier from subscriber" +msgstr "отримання системного ідентифікатора від підписника" + +#: pg_createsubscriber.c:611 pg_createsubscriber.c:641 +#, c-format +msgid "control file appears to be corrupt" +msgstr "контрольний файл здається пошкодженим" + +#: pg_createsubscriber.c:615 pg_createsubscriber.c:656 +#, c-format +msgid "system identifier is %llu on subscriber" +msgstr "системний ідентифікатор %llu на підписнику" + +#: pg_createsubscriber.c:637 +#, c-format +msgid "modifying system identifier of subscriber" +msgstr "змінюю системний ідентифікатор підписника" + +#: pg_createsubscriber.c:659 +#, c-format +msgid "running pg_resetwal on the subscriber" +msgstr "запускаю pg_resetwal на підписнику" + +#: pg_createsubscriber.c:671 +#, c-format +msgid "subscriber successfully changed the system identifier" +msgstr "підписник успішно змінив системний ідентифікатор" + +#: pg_createsubscriber.c:673 +#, c-format +msgid "could not change system identifier of subscriber: %s" +msgstr "не вдалося змінити системний ідентифікатор підписника: %s" + +#: pg_createsubscriber.c:697 +#, c-format +msgid "could not obtain database OID: %s" +msgstr "не вдалося отримати OID бази даних: %s" + +#: pg_createsubscriber.c:704 +#, c-format +msgid "could not obtain database OID: got %d rows, expected %d row" +msgstr "не вдалося отримати OID бази даних: отримано %d рядків, очікувалось %d рядок" + +#: pg_createsubscriber.c:776 +#, c-format +msgid "create replication slot \"%s\" on publisher" +msgstr "створіть слот реплікації \"%s\" на сервері публікації" + +#: pg_createsubscriber.c:796 +#, c-format +msgid "could not write an additional WAL record: %s" +msgstr "не вдалося написати додатковий запис WAL: %s" + +#: pg_createsubscriber.c:822 +#, c-format +msgid "could not obtain recovery progress: %s" +msgstr "не вдалося отримати прогрес відновлення: %s" + +#: pg_createsubscriber.c:854 +#, c-format +msgid "checking settings on publisher" +msgstr "перевірка налаштувань на сервері публікації" + +#: pg_createsubscriber.c:864 +#, c-format +msgid "primary server cannot be in recovery" +msgstr "основний сервер не може бути у процесі відновлення" + +#: pg_createsubscriber.c:888 +#, c-format +msgid "could not obtain publisher settings: %s" +msgstr "не вдалось отримати налаштування сервера публікацій: %s" + +#: pg_createsubscriber.c:914 +#, c-format +msgid "publisher requires wal_level >= \"logical\"" +msgstr "сервер публікації вимагає wal_level >= \"logical\"" + +#: pg_createsubscriber.c:920 +#, c-format +msgid "publisher requires %d replication slots, but only %d remain" +msgstr "сервер публікацій вимагає %d слотів реплікації, але залишається тільки %d" + +#: pg_createsubscriber.c:922 pg_createsubscriber.c:931 +#: pg_createsubscriber.c:1028 pg_createsubscriber.c:1037 +#: pg_createsubscriber.c:1046 +#, c-format +msgid "Increase the configuration parameter \"%s\" to at least %d." +msgstr "Збільшіть параметр налаштування \"%s\" принаймні до %d." + +#: pg_createsubscriber.c:929 +#, c-format +msgid "publisher requires %d WAL sender processes, but only %d remain" +msgstr "сервер публікацій вимагає %d процесів відправника WAL, але залишається тільки %d" + +#: pg_createsubscriber.c:938 +#, c-format +msgid "two_phase option will not be enabled for replication slots" +msgstr "опція two_phase для слотів реплікації не буде увімкнена" + +#: pg_createsubscriber.c:939 +#, c-format +msgid "Subscriptions will be created with the two_phase option disabled. Prepared transactions will be replicated at COMMIT PREPARED." +msgstr "Підписки будуть створені з відключенем параметром two_phase. Підготовлені транзакції будуть скопійовані в COMMIT PREPARED." + +#: pg_createsubscriber.c:971 +#, c-format +msgid "checking settings on subscriber" +msgstr "перевірка налаштувань підписника" + +#: pg_createsubscriber.c:978 +#, c-format +msgid "target server must be a standby" +msgstr "цільовий сервер повинен бути в режимі очікування" + +#: pg_createsubscriber.c:1002 +#, c-format +msgid "could not obtain subscriber settings: %s" +msgstr "не вдалося отримати налаштування підписника: %s" + +#: pg_createsubscriber.c:1026 +#, c-format +msgid "subscriber requires %d replication slots, but only %d remain" +msgstr "підписник вимагає %d слотів реплікації, але залишається тільки %d" + +#: pg_createsubscriber.c:1035 +#, c-format +msgid "subscriber requires %d logical replication workers, but only %d remain" +msgstr "підписник вимагає %d процесів логічної реплікації, але залишається тільки %d" + +#: pg_createsubscriber.c:1044 +#, c-format +msgid "subscriber requires %d worker processes, but only %d remain" +msgstr "підписник вимагає %d робочих процесів, але залишається тільки %d" + +#: pg_createsubscriber.c:1079 +#, c-format +msgid "dropping subscription \"%s\" in database \"%s\"" +msgstr "видалення підписки \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1088 +#, c-format +msgid "could not drop subscription \"%s\": %s" +msgstr "не вдалося видалити підписку \"%s\": %s" + +#: pg_createsubscriber.c:1123 +#, c-format +msgid "could not obtain pre-existing subscriptions: %s" +msgstr "не вдалося отримати раніше наявні підписки: %s" + +#: pg_createsubscriber.c:1258 +#, c-format +msgid "could not drop replication slot \"%s\" on primary" +msgstr "не вдалося видалити слот реплікації \"%s\" на головному сервері" + +#: pg_createsubscriber.c:1292 +#, c-format +msgid "could not obtain failover replication slot information: %s" +msgstr "не вдалося отримати інформацію про запасний слот реплікації: %s" + +#: pg_createsubscriber.c:1294 pg_createsubscriber.c:1303 +#, c-format +msgid "Drop the failover replication slots on subscriber soon to avoid retention of WAL files." +msgstr "Видаліть запасний слот реплікації найближчим часом, щоб уникнути збереження файлів WAL." + +#: pg_createsubscriber.c:1302 +#, c-format +msgid "could not drop failover replication slot" +msgstr "не вдалося видалити запасний слот реплікації" + +#: pg_createsubscriber.c:1324 +#, c-format +msgid "creating the replication slot \"%s\" in database \"%s\"" +msgstr "створюю слот реплікації \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1342 +#, c-format +msgid "could not create replication slot \"%s\" in database \"%s\": %s" +msgstr "не вдалося створити слот реплікації \"%s\" в базі даних \"%s\": %s" + +#: pg_createsubscriber.c:1372 +#, c-format +msgid "dropping the replication slot \"%s\" in database \"%s\"" +msgstr "видалення слоту реплікації \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1388 +#, c-format +msgid "could not drop replication slot \"%s\" in database \"%s\": %s" +msgstr "не вдалося видалити слот реплікації \"%s\" в базі даних \"%s\": %s" + +#: pg_createsubscriber.c:1409 +#, c-format +msgid "pg_ctl failed with exit code %d" +msgstr "помилка pg_ctl з кодом %d" + +#: pg_createsubscriber.c:1414 +#, c-format +msgid "pg_ctl was terminated by exception 0x%X" +msgstr "pg_ctl був перерваний винятком 0x%X" + +#: pg_createsubscriber.c:1416 +#, c-format +msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." +msgstr "Опис цього Шістнадцяткового значення дивіться у включаємому C-файлі \"ntstatus.h\"." + +#: pg_createsubscriber.c:1418 +#, c-format +msgid "pg_ctl was terminated by signal %d: %s" +msgstr "pg_ctl було припинено сигналом %d: %s" + +#: pg_createsubscriber.c:1424 +#, c-format +msgid "pg_ctl exited with unrecognized status %d" +msgstr "pg_ctl завершився з невідомим статусом %d" + +#: pg_createsubscriber.c:1427 +#, c-format +msgid "The failed command was: %s" +msgstr "Команда з помилкою: %s" + +#: pg_createsubscriber.c:1473 +#, c-format +msgid "server was started" +msgstr "сервер був запущений" + +#: pg_createsubscriber.c:1488 +#, c-format +msgid "server was stopped" +msgstr "сервер було зупинено" + +#: pg_createsubscriber.c:1507 +#, c-format +msgid "waiting for the target server to reach the consistent state" +msgstr "чекаю на досягнення узгодженого стану цільовим сервером" + +#: pg_createsubscriber.c:1530 +#, c-format +msgid "recovery timed out" +msgstr "час відновлення вичерпався" + +#: pg_createsubscriber.c:1543 +#, c-format +msgid "server did not end recovery" +msgstr "сервер не завершив відновлення" + +#: pg_createsubscriber.c:1545 +#, c-format +msgid "target server reached the consistent state" +msgstr "цільовий сервер досяг узгодженого стану" + +#: pg_createsubscriber.c:1546 +#, c-format +msgid "If pg_createsubscriber fails after this point, you must recreate the physical replica before continuing." +msgstr "Якщо pg_createsubscriber поверне помилку після цієї точки, вам потрібно буде перестворити фізичну репліку перед продовженням." + +#: pg_createsubscriber.c:1573 +#, c-format +msgid "could not obtain publication information: %s" +msgstr "не вдалося отримати інформацію про публікацію: %s" + +#: pg_createsubscriber.c:1587 +#, c-format +msgid "publication \"%s\" already exists" +msgstr "публікація \"%s\" вже існує" + +#: pg_createsubscriber.c:1588 +#, c-format +msgid "Consider renaming this publication before continuing." +msgstr "Подумайте про перейменування цієї публікації, перш ніж продовжити." + +#: pg_createsubscriber.c:1595 +#, c-format +msgid "creating publication \"%s\" in database \"%s\"" +msgstr "створення публікації \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1608 +#, c-format +msgid "could not create publication \"%s\" in database \"%s\": %s" +msgstr "не вдалося створити публікацію \"%s\" в базі даних \"%s\": %s" + +#: pg_createsubscriber.c:1637 +#, c-format +msgid "dropping publication \"%s\" in database \"%s\"" +msgstr "видалення публікації \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1651 +#, c-format +msgid "could not drop publication \"%s\" in database \"%s\": %s" +msgstr "не вдалося видалити публікацію \"%s\" в базі даних \"%s\": %s" + +#: pg_createsubscriber.c:1697 +#, c-format +msgid "creating subscription \"%s\" in database \"%s\"" +msgstr "створення підписки \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1718 +#, c-format +msgid "could not create subscription \"%s\" in database \"%s\": %s" +msgstr "не вдалося створити підписку \"%s\" в базі даних \"%s\": %s" + +#: pg_createsubscriber.c:1763 +#, c-format +msgid "could not obtain subscription OID: %s" +msgstr "не вдалося отримати OID підписки: %s" + +#: pg_createsubscriber.c:1770 +#, c-format +msgid "could not obtain subscription OID: got %d rows, expected %d row" +msgstr "не вдалося отримати OID підписки: отримано %d рядків, очікувалось %d рядок" + +#: pg_createsubscriber.c:1794 +#, c-format +msgid "setting the replication progress (node name \"%s\", LSN %s) in database \"%s\"" +msgstr "налаштування прогресу реплікації (назва вузла \"%s, LSN %s) в базі даних \"%s\"" + +#: pg_createsubscriber.c:1809 +#, c-format +msgid "could not set replication progress for subscription \"%s\": %s" +msgstr "не вдалося виставити прогрес реплікації для підписки \"%s\": %s" + +#: pg_createsubscriber.c:1840 +#, c-format +msgid "enabling subscription \"%s\" in database \"%s\"" +msgstr "активація підписки \"%s\" в базі даних \"%s\"" + +#: pg_createsubscriber.c:1852 +#, c-format +msgid "could not enable subscription \"%s\": %s" +msgstr "не вдалося активувати підписку \"%s\": %s" + +#: pg_createsubscriber.c:1944 +#, c-format +msgid "cannot be executed by \"root\"" +msgstr "\"root\" не може це виконувати" + +#: pg_createsubscriber.c:1945 +#, c-format +msgid "You must run %s as the PostgreSQL superuser." +msgstr "Запускати %s треба від суперкористувача PostgreSQL." + +#: pg_createsubscriber.c:1966 +#, c-format +msgid "database \"%s\" specified more than once" +msgstr "база даних \"%s\" вказана неодноразово" + +#: pg_createsubscriber.c:2007 +#, c-format +msgid "publication \"%s\" specified more than once" +msgstr "публікація \"%s\" вказана неодноразово" + +#: pg_createsubscriber.c:2019 +#, c-format +msgid "replication slot \"%s\" specified more than once" +msgstr "слот реплікації \"%s\" вказаний неодноразово" + +#: pg_createsubscriber.c:2031 +#, c-format +msgid "subscription \"%s\" specified more than once" +msgstr "підписка \"%s\" вказана неодноразово" + +#: pg_createsubscriber.c:2054 +#, c-format +msgid "no subscriber data directory specified" +msgstr "не вказано каталог з даними підписника" + +#: pg_createsubscriber.c:2065 +#, c-format +msgid "could not determine current directory" +msgstr "не вдалося визначити поточний каталог" + +#: pg_createsubscriber.c:2082 +#, c-format +msgid "no publisher connection string specified" +msgstr "немає рядка підключення до видавця" + +#: pg_createsubscriber.c:2086 +#, c-format +msgid "validating publisher connection string" +msgstr "перевірка рядка підключення видавця" + +#: pg_createsubscriber.c:2092 +#, c-format +msgid "validating subscriber connection string" +msgstr "перевірка рядка з'єднання з підписником" + +#: pg_createsubscriber.c:2097 +#, c-format +msgid "no database was specified" +msgstr "база даних не вказана" + +#: pg_createsubscriber.c:2109 +#, c-format +msgid "database name \"%s\" was extracted from the publisher connection string" +msgstr "ім'я бази даних \"%s\" було отримано з рядка підключення видавця" + +#: pg_createsubscriber.c:2114 +#, c-format +msgid "no database name specified" +msgstr "не вказано ім'я бази даних" + +#: pg_createsubscriber.c:2124 +#, c-format +msgid "wrong number of publication names specified" +msgstr "вказана невірна кількість імен публікації" + +#: pg_createsubscriber.c:2125 +#, c-format +msgid "The number of specified publication names (%d) must match the number of specified database names (%d)." +msgstr "Кількість вказаних назв публікації (%d) мусить співпадати з кількістю вказаних баз даних (%d)." + +#: pg_createsubscriber.c:2131 +#, c-format +msgid "wrong number of subscription names specified" +msgstr "вказано неправильну кількість імен підписки" + +#: pg_createsubscriber.c:2132 +#, c-format +msgid "The number of specified subscription names (%d) must match the number of specified database names (%d)." +msgstr "Кількість зазначених назв підписки (%d) повинна співпадати з кількістю зазначених назв бази даних (%d)." + +#: pg_createsubscriber.c:2138 +#, c-format +msgid "wrong number of replication slot names specified" +msgstr "вказано неправильну кількість назв слотів реплікації" + +#: pg_createsubscriber.c:2139 +#, c-format +msgid "The number of specified replication slot names (%d) must match the number of specified database names (%d)." +msgstr "Кількість вказаних назв слотів реплікації (%d) повинна збігатися з кількістю вказаних назв бази даних (%d)." + +#: pg_createsubscriber.c:2168 +#, c-format +msgid "subscriber data directory is not a copy of the source database cluster" +msgstr "каталог даних підписника не є копією кластера вихідної бази даних" + +#: pg_createsubscriber.c:2181 +#, c-format +msgid "standby server is running" +msgstr "резервний сервер працює" + +#: pg_createsubscriber.c:2182 +#, c-format +msgid "Stop the standby server and try again." +msgstr "Зупиніть резервний сервер та повторіть спробу." + +#: pg_createsubscriber.c:2191 +#, c-format +msgid "starting the standby server with command-line options" +msgstr "запуск резервного серверу з параметрами командного рядка" + +#: pg_createsubscriber.c:2207 pg_createsubscriber.c:2242 +#, c-format +msgid "stopping the subscriber" +msgstr "зупинка підписника" + +#: pg_createsubscriber.c:2221 +#, c-format +msgid "starting the subscriber" +msgstr "запуск підписника" + +#: pg_createsubscriber.c:2250 +#, c-format +msgid "Done!" +msgstr "Готово!" + +#: pg_receivewal.c:77 +#, c-format +msgid "%s receives PostgreSQL streaming write-ahead logs.\n\n" +msgstr "%s отримує передачу випереджувальних журналів PostgreSQL.\n\n" + +#: pg_receivewal.c:82 #, c-format msgid " -D, --directory=DIR receive write-ahead log files into this directory\n" msgstr " -D, --directory=DIR зберігати файли випереджувального журналювання до цього каталогу\n" -#: pg_receivewal.c:85 pg_recvlogical.c:85 +#: pg_receivewal.c:83 pg_recvlogical.c:93 #, c-format msgid " -E, --endpos=LSN exit after receiving the specified LSN\n" msgstr " -E, --endpos=LSN вийти після отримання вказаного LSN\n" -#: pg_receivewal.c:86 pg_recvlogical.c:89 +#: pg_receivewal.c:84 pg_recvlogical.c:97 #, c-format msgid " --if-not-exists do not error if slot already exists when creating a slot\n" msgstr " --if-not-exists не видавати помилку, при створенні слота, якщо слот вже існує\n" -#: pg_receivewal.c:87 pg_recvlogical.c:91 +#: pg_receivewal.c:85 pg_recvlogical.c:99 #, c-format msgid " -n, --no-loop do not loop on connection lost\n" msgstr " -n, --no-loop переривати роботу при втраті підключення\n" -#: pg_receivewal.c:88 +#: 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" -#: pg_receivewal.c:89 pg_recvlogical.c:96 +#: pg_receivewal.c:87 pg_recvlogical.c:104 #, c-format msgid " -s, --status-interval=SECS\n" " time between status packets sent to server (default: %d)\n" msgstr " -s, --status-interval=SECS\n" " інтервал між відправкою статусних пакетів серверу (за замовчуванням: %d)\n" -#: pg_receivewal.c:92 +#: pg_receivewal.c:90 #, c-format msgid " --synchronous flush write-ahead log immediately after writing\n" msgstr " --synchronous очистити випереджувальне журналювання відразу після запису\n" -#: pg_receivewal.c:95 +#: pg_receivewal.c:93 #, c-format msgid " -Z, --compress=METHOD[:DETAIL]\n" " compress as specified\n" msgstr " -Z, --compress=METHOD[:DETAIL]\n" " стискати як вказано\n" -#: pg_receivewal.c:105 +#: pg_receivewal.c:103 #, c-format msgid "\n" "Optional actions:\n" msgstr "\n" "Додаткові дії:\n" -#: pg_receivewal.c:106 pg_recvlogical.c:81 +#: pg_receivewal.c:104 pg_recvlogical.c:89 #, c-format msgid " --create-slot create a new replication slot (for the slot's name see --slot)\n" msgstr " --create-slot створити новий слот реплікації (ім'я слота задає параметр --slot)\n" -#: pg_receivewal.c:107 pg_recvlogical.c:82 +#: pg_receivewal.c:105 pg_recvlogical.c:90 #, c-format msgid " --drop-slot drop the replication slot (for the slot's name see --slot)\n" msgstr " --drop-slot видалити слот реплікації (ім'я слота задає параметр --slot)\n" -#: pg_receivewal.c:252 +#: pg_receivewal.c:191 #, c-format msgid "finished segment at %X/%X (timeline %u)" msgstr "завершено сегмент в позиції %X/%X (часова шкала %u)" -#: pg_receivewal.c:259 +#: pg_receivewal.c:198 #, c-format msgid "stopped log streaming at %X/%X (timeline %u)" msgstr "зупинено потокове передавання журналу в позиції %X/%X (часова шкала %u)" -#: pg_receivewal.c:275 +#: pg_receivewal.c:214 #, c-format msgid "switched to timeline %u at %X/%X" msgstr "переключено на часову шкалу %u в позиції %X/%X" -#: pg_receivewal.c:285 +#: pg_receivewal.c:224 pg_recvlogical.c:1053 #, c-format msgid "received interrupt signal, exiting" msgstr "отримано сигнал переривання, завершення роботи" -#: pg_receivewal.c:317 +#: pg_receivewal.c:256 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не вдалося закрити каталог \"%s\": %m" -#: pg_receivewal.c:384 +#: pg_receivewal.c:323 #, c-format msgid "segment file \"%s\" has incorrect size %lld, skipping" msgstr "файл сегменту \"%s\" має неправильний розмір %lld, пропускається" -#: pg_receivewal.c:401 +#: pg_receivewal.c:340 #, c-format msgid "could not open compressed file \"%s\": %m" msgstr "не вдалося відкрити стиснутий файл \"%s\": %m" -#: pg_receivewal.c:404 +#: pg_receivewal.c:343 #, c-format msgid "could not seek in compressed file \"%s\": %m" msgstr "не вдалося знайти в стиснутому файлі \"%s\": %m" -#: pg_receivewal.c:410 +#: pg_receivewal.c:349 #, c-format msgid "could not read compressed file \"%s\": %m" msgstr "не вдалося прочитати стиснутий файл \"%s\": %m" -#: pg_receivewal.c:413 +#: pg_receivewal.c:352 #, c-format msgid "could not read compressed file \"%s\": read %d of %zu" msgstr "не вдалося прочитати стиснутий файл \"%s\": прочитано %d з %zu" -#: pg_receivewal.c:423 +#: pg_receivewal.c:362 #, c-format msgid "compressed segment file \"%s\" has incorrect uncompressed size %d, skipping" msgstr "файл стиснутого сегменту \"%s\" має неправильний розмір без стискання %d, пропускається" -#: pg_receivewal.c:451 +#: pg_receivewal.c:390 #, c-format msgid "could not create LZ4 decompression context: %s" msgstr "не вдалося створити контекст декомпресії LZ4: %s" -#: pg_receivewal.c:463 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не вдалося прочитати файл \"%s\": %m" - -#: pg_receivewal.c:481 +#: pg_receivewal.c:420 #, c-format msgid "could not decompress file \"%s\": %s" msgstr "не вдалося розпакувати файл \"%s\": %s" -#: pg_receivewal.c:504 +#: pg_receivewal.c:443 #, c-format msgid "could not free LZ4 decompression context: %s" msgstr "не вдалося звільнити контекст декомпресії LZ4: %s" -#: pg_receivewal.c:509 +#: pg_receivewal.c:448 #, c-format msgid "compressed segment file \"%s\" has incorrect uncompressed size %zu, skipping" msgstr "файл стиснутого сегменту \"%s\" має неправильний розмір не стиснутого розміру %zu, пропускається" -#: pg_receivewal.c:514 -#, c-format -msgid "could not check file \"%s\"" -msgstr "не вдалося перевірити файл \"%s\"" - -#: pg_receivewal.c:516 +#: pg_receivewal.c:453 #, c-format -msgid "This build does not support compression with %s." -msgstr "Ця збірка не підтримує стиснення з %s." +msgid "cannot check file \"%s\": compression with %s not supported by this build" +msgstr "неможливо перевірити файл \"%s\": стиснення %s не підтримується даною збіркою" -#: pg_receivewal.c:643 +#: pg_receivewal.c:578 #, c-format msgid "starting log streaming at %X/%X (timeline %u)" msgstr "початок потокового передавання журналу в позиції %X/%X (часова шкала %u)" -#: pg_receivewal.c:785 pg_recvlogical.c:785 +#: pg_receivewal.c:693 pg_recvlogical.c:801 #, c-format msgid "could not parse end position \"%s\"" msgstr "не вдалося проаналізувати кінцеву позицію \"%s\"" -#: pg_receivewal.c:834 +#: pg_receivewal.c:766 #, c-format msgid "cannot use --create-slot together with --drop-slot" msgstr "використовувати --create-slot разом з --drop-slot не можна" -#: pg_receivewal.c:850 +#: pg_receivewal.c:782 #, c-format msgid "cannot use --synchronous together with --no-sync" msgstr "використовувати --synchronous разом з --no-sync не можна" -#: pg_receivewal.c:860 +#: pg_receivewal.c:792 #, c-format msgid "no target directory specified" msgstr "цільовий каталог не вказано" -#: pg_receivewal.c:893 -#, c-format -msgid "no value specified for --compress, switching to default" -msgstr "не вказано значення для --compress, використовується значення за замовчуванням" - -#: pg_receivewal.c:897 pg_receivewal.c:903 -#, c-format -msgid "this build does not support compression with %s" -msgstr "ця збірка не підтримує стиснення з %s" - -#: pg_receivewal.c:908 +#: pg_receivewal.c:816 #, c-format msgid "compression with %s is not yet supported" msgstr "стиснення з %s ще не підтримується" -#: pg_receivewal.c:953 +#: pg_receivewal.c:859 #, c-format msgid "replication connection using slot \"%s\" is unexpectedly database specific" msgstr "підключення для реплікації з використанням слоту \"%s\" неочікувано виявилось прив'язаним до бази даних" -#: pg_receivewal.c:972 pg_recvlogical.c:955 +#: pg_receivewal.c:878 pg_recvlogical.c:972 #, c-format msgid "dropping replication slot \"%s\"" msgstr "видалення слоту реплікації \"%s\"" -#: pg_receivewal.c:983 pg_recvlogical.c:965 +#: pg_receivewal.c:889 pg_recvlogical.c:982 #, c-format msgid "creating replication slot \"%s\"" msgstr "створення слоту реплікації \"%s\"" -#: pg_receivewal.c:1012 pg_recvlogical.c:989 +#: pg_receivewal.c:918 pg_recvlogical.c:1006 #, c-format msgid "disconnected" msgstr "роз’єднано" #. translator: check source for value for %d -#: pg_receivewal.c:1016 pg_recvlogical.c:993 +#: pg_receivewal.c:922 pg_recvlogical.c:1010 #, c-format msgid "disconnected; waiting %d seconds to try again" msgstr "роз’єднано; через %d секунд буде повторна спроба" -#: pg_recvlogical.c:76 +#: pg_recvlogical.c:84 #, c-format msgid "%s controls PostgreSQL logical decoding streams.\n\n" msgstr "%s керує потоковими передаваннями логічного декодування PostgreSQL.\n\n" -#: pg_recvlogical.c:80 +#: pg_recvlogical.c:88 #, c-format msgid "\n" "Action to be performed:\n" msgstr "\n" "Дія до виконання:\n" -#: pg_recvlogical.c:83 +#: pg_recvlogical.c:91 #, c-format msgid " --start start streaming in a replication slot (for the slot's name see --slot)\n" msgstr " --start почати потокове передавання в слоті реплікації (ім'я слоту задає параметр --slot)\n" -#: pg_recvlogical.c:86 +#: pg_recvlogical.c:94 #, c-format msgid " -f, --file=FILE receive log into this file, - for stdout\n" msgstr " -f, --file=FILE зберігати журнал до цього файлу, - позначає stdout\n" -#: pg_recvlogical.c:87 +#: pg_recvlogical.c:95 #, c-format msgid " -F --fsync-interval=SECS\n" " time between fsyncs to the output file (default: %d)\n" msgstr " -F --fsync-interval=SECS\n" " час між fsyncs до файлу виводу (за замовчуванням: %d)\n" -#: pg_recvlogical.c:90 +#: pg_recvlogical.c:98 #, c-format msgid " -I, --startpos=LSN where in an existing slot should the streaming start\n" msgstr " -I, --startpos=LSN де в існуючому слоті слід почати потокове передавання\n" -#: pg_recvlogical.c:92 +#: pg_recvlogical.c:100 #, c-format msgid " -o, --option=NAME[=VALUE]\n" " pass option NAME with optional value VALUE to the\n" @@ -1360,173 +2133,173 @@ msgstr " -o, --option=NAME[=VALUE]\n" " передати параметр NAME з додатковим значенням VALUE до\n" " плагіну виводу\n" -#: pg_recvlogical.c:95 +#: pg_recvlogical.c:103 #, c-format msgid " -P, --plugin=PLUGIN use output plugin PLUGIN (default: %s)\n" msgstr " -P, --plugin=PLUGIN використовувати плагін виводу PLUGIN (за замовчуванням: %s)\n" -#: pg_recvlogical.c:98 +#: pg_recvlogical.c:106 #, c-format msgid " -S, --slot=SLOTNAME name of the logical replication slot\n" msgstr " -S, --slot=SLOTNAME ім'я слоту логічної реплікації\n" -#: pg_recvlogical.c:99 +#: pg_recvlogical.c:107 #, c-format -msgid " -t, --two-phase enable two-phase decoding when creating a slot\n" -msgstr " -t, --2-фазове декодування під час створення слота\n" +msgid " -t, --two-phase enable decoding of prepared transactions when creating a slot\n" +msgstr " -t, --two-phase активувати декодування підготовлених транзакцій під час створення слоту\n" -#: pg_recvlogical.c:104 +#: pg_recvlogical.c:112 #, c-format msgid " -d, --dbname=DBNAME database to connect to\n" msgstr " -d, --dbname=DBNAME бази даних для підключення\n" -#: pg_recvlogical.c:137 +#: pg_recvlogical.c:145 #, c-format msgid "confirming write up to %X/%X, flush to %X/%X (slot %s)" msgstr "підтвердження запису до %X/%X, очищення до %X/%X (слот %s)" -#: pg_recvlogical.c:161 receivelog.c:366 +#: pg_recvlogical.c:169 receivelog.c:360 #, c-format msgid "could not send feedback packet: %s" msgstr "не вдалося відправити пакет зворотнього зв'язку: %s" -#: pg_recvlogical.c:229 +#: pg_recvlogical.c:239 #, c-format msgid "starting log streaming at %X/%X (slot %s)" msgstr "початок потокового передавання журналу в позиції %X/%X (слот %s)" -#: pg_recvlogical.c:271 +#: pg_recvlogical.c:281 #, c-format msgid "streaming initiated" msgstr "потокове передавання ініційовано" -#: pg_recvlogical.c:335 +#: pg_recvlogical.c:346 #, c-format msgid "could not open log file \"%s\": %m" msgstr "не вдалося відкрити файл журналу \"%s\": %m" -#: pg_recvlogical.c:364 receivelog.c:889 +#: pg_recvlogical.c:375 receivelog.c:882 #, c-format msgid "invalid socket: %s" msgstr "неприпустимий сокет: %s" -#: pg_recvlogical.c:417 receivelog.c:917 +#: pg_recvlogical.c:428 receivelog.c:910 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: pg_recvlogical.c:424 receivelog.c:967 +#: pg_recvlogical.c:435 receivelog.c:959 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не вдалося отримати дані з WAL потоку: %s" -#: pg_recvlogical.c:466 pg_recvlogical.c:517 receivelog.c:1011 -#: receivelog.c:1074 +#: pg_recvlogical.c:477 pg_recvlogical.c:528 receivelog.c:1003 +#: receivelog.c:1066 #, c-format msgid "streaming header too small: %d" msgstr "заголовок потокового передавання занадто малий: %d" -#: pg_recvlogical.c:501 receivelog.c:849 +#: pg_recvlogical.c:512 receivelog.c:843 #, c-format msgid "unrecognized streaming header: \"%c\"" msgstr "нерозпізнаний заголовок потокового передавання: \"%c\"" -#: pg_recvlogical.c:555 pg_recvlogical.c:567 +#: pg_recvlogical.c:566 pg_recvlogical.c:578 #, c-format msgid "could not write %d bytes to log file \"%s\": %m" msgstr "не вдалося записати %d байт до файлу журналу \"%s\": %m" -#: pg_recvlogical.c:621 receivelog.c:648 receivelog.c:685 +#: pg_recvlogical.c:636 receivelog.c:642 receivelog.c:679 #, c-format msgid "unexpected termination of replication stream: %s" msgstr "неочікуване завершення роботи потоку реплікації: %s" -#: pg_recvlogical.c:780 +#: pg_recvlogical.c:796 #, c-format msgid "could not parse start position \"%s\"" msgstr "не вдалося аналізувати початкову позицію \"%s\"" -#: pg_recvlogical.c:858 +#: pg_recvlogical.c:874 #, c-format msgid "no slot specified" msgstr "слот не вказано" -#: pg_recvlogical.c:865 +#: pg_recvlogical.c:881 #, c-format msgid "no target file specified" msgstr "цільовий файл не вказано" -#: pg_recvlogical.c:872 +#: pg_recvlogical.c:888 #, c-format msgid "no database specified" msgstr "база даних не вказана" -#: pg_recvlogical.c:879 +#: pg_recvlogical.c:895 #, c-format msgid "at least one action needs to be specified" msgstr "необхідно вказати щонайменше одну дію" -#: pg_recvlogical.c:886 +#: pg_recvlogical.c:902 #, c-format msgid "cannot use --create-slot or --start together with --drop-slot" msgstr "використовувати --create-slot або --start разом з --drop-slot не можна" -#: pg_recvlogical.c:893 +#: pg_recvlogical.c:909 #, c-format msgid "cannot use --create-slot or --drop-slot together with --startpos" msgstr "використовувати --create-slot або --drop-slot разом з --startpos не можна" -#: pg_recvlogical.c:900 +#: pg_recvlogical.c:916 #, c-format msgid "--endpos may only be specified with --start" msgstr "--endpos можна вказати лише з --start" -#: pg_recvlogical.c:907 +#: pg_recvlogical.c:923 #, c-format msgid "--two-phase may only be specified with --create-slot" msgstr "--two-phase може бути вказано тільки з --create-slot" -#: pg_recvlogical.c:939 +#: pg_recvlogical.c:956 #, c-format msgid "could not establish database-specific replication connection" msgstr "не вдалося встановити підключення для реплікації до вказаної бази даних" -#: pg_recvlogical.c:1033 +#: pg_recvlogical.c:1056 #, c-format msgid "end position %X/%X reached by keepalive" msgstr "кінцева позиція %X/%X досягнута наживо" -#: pg_recvlogical.c:1036 +#: pg_recvlogical.c:1061 #, c-format msgid "end position %X/%X reached by WAL record at %X/%X" msgstr "кінцева позиція %X/%X досягнута WAL записом %X/%X" -#: receivelog.c:68 +#: receivelog.c:66 #, c-format msgid "could not create archive status file \"%s\": %s" msgstr "не вдалося створити файл статусу архіву \"%s\": %s" -#: receivelog.c:75 +#: receivelog.c:73 #, c-format msgid "could not close archive status file \"%s\": %s" msgstr "не вдалося закрити файл статусу архіву \"%s\": %s" -#: receivelog.c:123 +#: receivelog.c:122 #, c-format msgid "could not get size of write-ahead log file \"%s\": %s" msgstr "не вдалося отримати розмір файлу випереджувального журналювання \"%s\": %s" -#: receivelog.c:134 +#: receivelog.c:133 #, c-format msgid "could not open existing write-ahead log file \"%s\": %s" msgstr "не вдалося відкрити існуючий файл випереджувального журналювання \"%s\": %s" -#: receivelog.c:143 +#: receivelog.c:142 #, c-format msgid "could not fsync existing write-ahead log file \"%s\": %s" msgstr "не вдалося fsync існуючий файл випереджувального журналювання \"%s\": %s" -#: receivelog.c:158 +#: receivelog.c:157 #, c-format msgid "write-ahead log file \"%s\" has %zd byte, should be 0 or %d" msgid_plural "write-ahead log file \"%s\" has %zd bytes, should be 0 or %d" @@ -1535,229 +2308,229 @@ msgstr[1] "файл випереджувального журналювання msgstr[2] "файл випереджувального журналювання \"%s\" має %zd байтів, а повинен мати 0 або %d" msgstr[3] "файл випереджувального журналювання \"%s\" має %zd байтів, а повинен мати 0 або %d" -#: receivelog.c:174 +#: receivelog.c:175 #, c-format msgid "could not open write-ahead log file \"%s\": %s" msgstr "не вдалося відкрити файл випереджувального журналювання \"%s\": %s" -#: receivelog.c:208 -#, c-format -msgid "could not determine seek position in file \"%s\": %s" -msgstr "не вдалося визначити позицію у файлі \"%s\": %s" - -#: receivelog.c:223 +#: receivelog.c:216 #, c-format msgid "not renaming \"%s\", segment is not complete" msgstr "не перейменовується \"%s\", сегмент не завершений" -#: receivelog.c:234 receivelog.c:323 receivelog.c:694 +#: receivelog.c:227 receivelog.c:317 receivelog.c:688 #, c-format msgid "could not close file \"%s\": %s" msgstr "не вдалося закрити файл \"%s\": %s" -#: receivelog.c:295 +#: receivelog.c:288 #, c-format msgid "server reported unexpected history file name for timeline %u: %s" msgstr "сервер повідомив неочікуване ім'я файлу історії часової шкали %u: %s" -#: receivelog.c:303 +#: receivelog.c:297 #, c-format msgid "could not create timeline history file \"%s\": %s" msgstr "не вдалося створити файл історії часової шкали \"%s\": %s" -#: receivelog.c:310 +#: receivelog.c:304 #, c-format msgid "could not write timeline history file \"%s\": %s" msgstr "не вдалося записати файл історії часової шкали \"%s\": %s" -#: receivelog.c:400 +#: receivelog.c:394 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions older than %s" msgstr "несумісна версія серверу %s; клієнт не підтримує потокове передавання з версій серверу старіших, ніж %s" -#: receivelog.c:409 +#: receivelog.c:403 #, c-format msgid "incompatible server version %s; client does not support streaming from server versions newer than %s" msgstr "несумісна версія серверу %s; клієнт не підтримує потокове передавання з версій серверу новіших, ніж %s" -#: receivelog.c:514 +#: receivelog.c:508 #, c-format msgid "system identifier does not match between base backup and streaming connection" msgstr "системний ідентифікатор базової резервної копії не відповідає ідентифікатору потокового передавання підключення" -#: receivelog.c:522 +#: receivelog.c:516 #, c-format msgid "starting timeline %u is not present in the server" msgstr "початкова часова шкала %u не існує на сервері" -#: receivelog.c:561 +#: receivelog.c:555 #, c-format msgid "unexpected response to TIMELINE_HISTORY command: got %d rows and %d fields, expected %d rows and %d fields" msgstr "неочікувана відповідь на команду TIMELINE_HISTORY: отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: receivelog.c:632 +#: receivelog.c:626 #, c-format msgid "server reported unexpected next timeline %u, following timeline %u" msgstr "сервер неочікувано повідомив наступну часову шкалу %u після часової шкали %u" -#: receivelog.c:638 +#: receivelog.c:632 #, c-format msgid "server stopped streaming timeline %u at %X/%X, but reported next timeline %u to begin at %X/%X" msgstr "сервер зупинив потокове передавання часової шкали %u в позиції %X/%X, але повідомив, що наступна часова шкала %u почнеться в позиції %X/%X" -#: receivelog.c:678 +#: receivelog.c:672 #, c-format msgid "replication stream was terminated before stop point" msgstr "потік реплікації перервано до точки зупинки" -#: receivelog.c:724 +#: receivelog.c:718 #, c-format msgid "unexpected result set after end-of-timeline: got %d rows and %d fields, expected %d rows and %d fields" msgstr "неочікуваний набір результатів після кінця часової шкали: отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: receivelog.c:733 +#: receivelog.c:727 #, c-format msgid "could not parse next timeline's starting point \"%s\"" msgstr "не вдалося аналізувати початкову точку наступної часової шкали \"%s\"" -#: receivelog.c:781 receivelog.c:1030 walmethods.c:1203 +#: receivelog.c:775 receivelog.c:1022 walmethods.c:1206 #, c-format msgid "could not fsync file \"%s\": %s" msgstr "не вдалося fsync файл \"%s\": %s" -#: receivelog.c:1091 +#: receivelog.c:1083 #, c-format msgid "received write-ahead log record for offset %u with no file open" msgstr "отримано запис випереджувального журналювання для зсуву %u з закритим файлом" -#: receivelog.c:1101 +#: receivelog.c:1093 #, c-format msgid "got WAL data offset %08x, expected %08x" msgstr "отримано дані зсуву WAL %08x, очікувалось %08x" -#: receivelog.c:1135 +#: receivelog.c:1128 #, c-format msgid "could not write %d bytes to WAL file \"%s\": %s" msgstr "не вдалося записати %d байт до файлу WAL \"%s\": %s" -#: receivelog.c:1160 receivelog.c:1200 receivelog.c:1230 +#: receivelog.c:1153 receivelog.c:1193 receivelog.c:1222 #, c-format msgid "could not send copy-end packet: %s" msgstr "не вдалося відправити пакет кінця копіювання \"copy-end\": %s" -#: streamutil.c:159 +#: streamutil.c:162 msgid "Password: " msgstr "Пароль: " -#: streamutil.c:182 +#: streamutil.c:189 #, c-format msgid "could not connect to server" msgstr "не вдалося підключитись до серверу" -#: streamutil.c:225 +#: streamutil.c:230 #, c-format -msgid "could not clear search_path: %s" -msgstr "не вдалося очистити search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "не вдалося очистити \"search_path\": %s" -#: streamutil.c:241 +#: streamutil.c:246 #, c-format -msgid "could not determine server setting for integer_datetimes" -msgstr "не вдалося визначити настроювання серверу для integer_datetimes" +msgid "could not determine server setting for \"integer_datetimes\"" +msgstr "не вдалося визначити налаштування сервера для \"integer_datetimes\"" -#: streamutil.c:248 +#: streamutil.c:253 #, c-format -msgid "integer_datetimes compile flag does not match server" -msgstr "параметри компіляції integer_datetimes не відповідають серверу" +msgid "\"integer_datetimes\" compile flag does not match server" +msgstr "флаг компіляції \"integer_datetimes\" не відповідає серверу" -#: streamutil.c:299 +#: streamutil.c:372 #, c-format msgid "could not fetch WAL segment size: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "не вдалося отримати розмір сегменту WAL: отримано %d рядків і %d полів, очікувалось %d рядків і %d або більше полів" -#: streamutil.c:309 +#: streamutil.c:382 #, c-format msgid "WAL segment size could not be parsed" msgstr "не вдалося аналізувати розмір сегмента WAL" -#: streamutil.c:327 +#: streamutil.c:400 #, 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 повинен бути двійкою, піднесеною до степеня в інтервалі між 1 МБ і 1 ГБ, але віддалений сервер повідомив значення %d байт" -msgstr[1] "Розмір сегменту WAL повинен бути двійкою, піднесеною до степеня в інтервалі між 1 МБ і 1 ГБ, але віддалений сервер повідомив значення %d байти" -msgstr[2] "Розмір сегменту WAL повинен бути двійкою, піднесеною до степеня в інтервалі між 1 МБ і 1 ГБ, але віддалений сервер повідомив значення %d байтів" -msgstr[3] "Розмір сегменту WAL повинен бути двійкою, піднесеною до степеня в інтервалі між 1 МБ і 1 ГБ, але віддалений сервер повідомив значення %d байтів" +msgid "remote server reported invalid WAL segment size (%d byte)" +msgid_plural "remote server reported invalid WAL segment size (%d bytes)" +msgstr[0] "віддалений сервер повідомив про неправильний розмір сегмента WAL (%d байт)" +msgstr[1] "віддалений сервер повідомив про неправильний розмір сегмента WAL (%d байтів)" +msgstr[2] "віддалений сервер повідомив про неправильний розмір сегмента WAL (%d байтів)" +msgstr[3] "віддалений сервер повідомив про неправильний розмір сегмента WAL (%d байтів)" -#: streamutil.c:372 +#: streamutil.c:404 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Розмір сегмента WAL повинен бути степенем двійки від 1 МБ до 1 ГБ." + +#: streamutil.c:446 #, c-format msgid "could not fetch group access flag: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "не вдалося вилучити позначку доступа групи: отримано %d рядків і %d полів, очікувалось %d рядків і %d або більше полів" -#: streamutil.c:381 +#: streamutil.c:455 #, c-format msgid "group access flag could not be parsed: %s" msgstr "не вдалося аналізувати позначку доступа групи: %s" -#: streamutil.c:424 streamutil.c:461 +#: streamutil.c:498 streamutil.c:535 #, c-format msgid "could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields" msgstr "не вдалося ідентифікувати систему: отримано %d рядків і %d полів, очікувалось %d рядків і %d або більше полів" -#: streamutil.c:513 +#: streamutil.c:587 #, c-format msgid "could not read replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "не вдалося прочитати слот реплікації \"%s\": отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: streamutil.c:525 +#: streamutil.c:599 #, c-format -msgid "could not find replication slot \"%s\"" -msgstr "не вдалося знайти слот реплікації \"%s\"" +msgid "replication slot \"%s\" does not exist" +msgstr "слот реплікації \"%s\" не існує" -#: streamutil.c:536 +#: streamutil.c:610 #, c-format msgid "expected a physical replication slot, got type \"%s\" instead" msgstr "очікувався слот фізичної реплікації, а натомість знайдено \"%s\"" -#: streamutil.c:550 +#: streamutil.c:624 #, c-format msgid "could not parse restart_lsn \"%s\" for replication slot \"%s\"" msgstr "не вдалося аналізувати restart_lsn \"%s\" для слоту реплікації \"%s\"" -#: streamutil.c:667 +#: streamutil.c:741 #, c-format msgid "could not create replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "не вдалося створити слот реплікації \"%s\": отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: streamutil.c:711 +#: streamutil.c:785 #, c-format msgid "could not drop replication slot \"%s\": got %d rows and %d fields, expected %d rows and %d fields" msgstr "не вдалося видалити слот реплікації \"%s\": отримано %d рядків і %d полів, очікувалось %d рядків і %d полів" -#: walmethods.c:720 walmethods.c:1265 +#: walmethods.c:726 walmethods.c:1269 msgid "could not compress data" msgstr "не вдалося стиснути дані" -#: walmethods.c:749 +#: walmethods.c:755 msgid "could not reset compression stream" msgstr "не вдалося скинути потік стискання" -#: walmethods.c:880 +#: walmethods.c:892 msgid "implementation error: tar files can't have more than one open file" msgstr "помилка реалізації: файли tar не можуть мати більше одного відкритого файлу" -#: walmethods.c:894 +#: walmethods.c:907 msgid "could not create tar header" msgstr "не вдалося створити заголовок tar" -#: walmethods.c:910 walmethods.c:950 walmethods.c:1169 walmethods.c:1181 +#: walmethods.c:924 walmethods.c:965 walmethods.c:1171 walmethods.c:1184 msgid "could not change compression parameters" msgstr "не вдалося змінити параметри стискання" -#: walmethods.c:1054 +#: walmethods.c:1056 msgid "unlink not supported with compression" msgstr "unink не підтримується зі стисканням" -#: walmethods.c:1289 +#: walmethods.c:1293 msgid "could not close compression stream" msgstr "не вдалося закрити потік стискання" diff --git a/src/bin/pg_basebackup/streamutil.c b/src/bin/pg_basebackup/streamutil.c index 8e605f43ffef0..c7b8a4c3a4b6a 100644 --- a/src/bin/pg_basebackup/streamutil.c +++ b/src/bin/pg_basebackup/streamutil.c @@ -583,7 +583,7 @@ GetSlotInformation(PGconn *conn, const char *slot_name, bool CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, bool is_temporary, bool is_physical, bool reserve_wal, - bool slot_exists_ok, bool two_phase) + bool slot_exists_ok, bool two_phase, bool failover) { PQExpBuffer query; PGresult *res; @@ -594,6 +594,7 @@ CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, Assert((is_physical && plugin == NULL) || (!is_physical && plugin != NULL)); Assert(!(two_phase && is_physical)); + Assert(!(failover && is_physical)); Assert(slot_name != NULL); /* Build base portion of query */ @@ -616,6 +617,10 @@ CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, } else { + if (failover && PQserverVersion(conn) >= 170000) + AppendPlainCommandOption(query, use_new_option_syntax, + "FAILOVER"); + if (two_phase && PQserverVersion(conn) >= 150000) AppendPlainCommandOption(query, use_new_option_syntax, "TWO_PHASE"); diff --git a/src/bin/pg_basebackup/streamutil.h b/src/bin/pg_basebackup/streamutil.h index f917c43517fef..017b227303c83 100644 --- a/src/bin/pg_basebackup/streamutil.h +++ b/src/bin/pg_basebackup/streamutil.h @@ -35,7 +35,8 @@ extern PGconn *GetConnection(void); extern bool CreateReplicationSlot(PGconn *conn, const char *slot_name, const char *plugin, bool is_temporary, bool is_physical, bool reserve_wal, - bool slot_exists_ok, bool two_phase); + bool slot_exists_ok, bool two_phase, + bool failover); extern bool DropReplicationSlot(PGconn *conn, const char *slot_name); extern bool RunIdentifySystem(PGconn *conn, char **sysid, TimeLineID *starttli, diff --git a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl index 62bbc5a3f980d..c82e78847b382 100644 --- a/src/bin/pg_basebackup/t/030_pg_recvlogical.pl +++ b/src/bin/pg_basebackup/t/030_pg_recvlogical.pl @@ -135,4 +135,19 @@ ], 'drop could work without dbname'); +# test with failover option enabled +$node->command_ok( + [ + 'pg_recvlogical', + '--slot' => 'test', + '--dbname' => $node->connstr('postgres'), + '--create-slot', + '--failover', + ], + 'slot with failover created'); + +my $result = $node->safe_psql('postgres', + "SELECT failover FROM pg_catalog.pg_replication_slots WHERE slot_name = 'test'"); +is($result, 't', "failover is enabled for the new slot"); + done_testing(); diff --git a/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl b/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl index 80153f7d77e89..2d532fee567dd 100644 --- a/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl +++ b/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl @@ -399,7 +399,7 @@ sub generate_db '--database' => $db1, '--all', ], - qr/--database cannot be used with --all/, + qr/--database cannot be used with -a\/--all/, 'fail if --database is used with --all'); # run pg_createsubscriber with '--publication' and '--all' and verify @@ -416,7 +416,7 @@ sub generate_db '--all', '--publication' => 'pub1', ], - qr/--publication cannot be used with --all/, + qr/--publication cannot be used with -a\/--all/, 'fail if --publication is used with --all'); # run pg_createsubscriber with '--all' option diff --git a/src/bin/pg_checksums/po/de.po b/src/bin/pg_checksums/po/de.po index 8b74011f53b17..dc8eab7e76424 100644 --- a/src/bin/pg_checksums/po/de.po +++ b/src/bin/pg_checksums/po/de.po @@ -1,14 +1,14 @@ # German message translation file for pg_checksums # Copyright (C) 2024 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Peter Eisentraut , 2018 - 2024. +# Peter Eisentraut , 2018 - 2025. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 07:54+0000\n" -"PO-Revision-Date: 2024-03-19 21:17+0100\n" +"POT-Creation-Date: 2025-03-02 13:25+0000\n" +"PO-Revision-Date: 2025-03-02 15:48+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,22 +16,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -74,9 +74,9 @@ msgstr "" "diesem Fall wären die Ergebnisse unten falsch und die PostgreSQL-Installation\n" "wäre inkompatibel mit diesem Datenverzeichnis." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 pg_checksums.c:192 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:71 +#: ../../common/file_utils.c:348 ../../common/file_utils.c:407 +#: ../../common/file_utils.c:481 pg_checksums.c:191 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -86,8 +86,8 @@ msgstr "konnte Datei »%s« nicht öffnen: %m" msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:419 +#: ../../common/file_utils.c:489 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" @@ -103,35 +103,35 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:77 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: pg_checksums.c:338 pg_checksums.c:407 +#: ../../common/file_utils.c:121 ../../common/file_utils.c:567 +#: pg_checksums.c:337 pg_checksums.c:406 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:131 ../../common/file_utils.c:228 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 -#: pg_checksums.c:310 +#: ../../common/file_utils.c:152 ../../common/file_utils.c:282 +#: pg_checksums.c:309 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:170 ../../common/file_utils.c:316 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:499 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -151,7 +151,7 @@ msgstr "%s muss im Bereich %d..%d sein" msgid "unrecognized sync method: %s" msgstr "unbekannte Sync-Methode: %s" -#: pg_checksums.c:70 +#: pg_checksums.c:69 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" @@ -160,17 +160,17 @@ msgstr "" "%s überprüft die Datenprüfsummen in einem PostgreSQL-Datenbankcluster oder schaltet sie ein oder aus.\n" "\n" -#: pg_checksums.c:71 +#: pg_checksums.c:70 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_checksums.c:72 +#: pg_checksums.c:71 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATENVERZEICHNIS]\n" -#: pg_checksums.c:73 +#: pg_checksums.c:72 #, c-format msgid "" "\n" @@ -179,44 +179,44 @@ msgstr "" "\n" "Optionen:\n" -#: pg_checksums.c:74 +#: pg_checksums.c:73 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]VERZ Datenbankverzeichnis\n" -#: pg_checksums.c:75 +#: pg_checksums.c:74 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check Datenprüfsummen prüfen (Voreinstellung)\n" -#: pg_checksums.c:76 +#: pg_checksums.c:75 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable Datenprüfsummen ausschalten\n" -#: pg_checksums.c:77 +#: pg_checksums.c:76 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable Datenprüfsummen einschalten\n" -#: pg_checksums.c:78 +#: pg_checksums.c:77 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=FILENODE nur Relation mit angegebenem Filenode prüfen\n" -#: pg_checksums.c:79 +#: pg_checksums.c:78 #, 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_checksums.c:80 +#: pg_checksums.c:79 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress Fortschrittsinformationen zeigen\n" -#: pg_checksums.c:81 +#: pg_checksums.c:80 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" @@ -224,22 +224,22 @@ msgstr "" " Methode zum Synchronisieren von Dateien auf Festplatte\n" " setzen\n" -#: pg_checksums.c:82 +#: pg_checksums.c:81 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_checksums.c:83 +#: pg_checksums.c:82 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_checksums.c:84 +#: pg_checksums.c:83 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_checksums.c:85 +#: pg_checksums.c:84 #, c-format msgid "" "\n" @@ -252,177 +252,177 @@ msgstr "" "PGDATA verwendet.\n" "\n" -#: pg_checksums.c:87 +#: pg_checksums.c:86 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Berichten Sie Fehler an <%s>.\n" -#: pg_checksums.c:88 +#: pg_checksums.c:87 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_checksums.c:145 +#: pg_checksums.c:144 #, c-format -msgid "%lld/%lld MB (%d%%) computed" -msgstr "%lld/%lld MB (%d%%) berechnet" +msgid "%/% MB (%d%%) computed" +msgstr "%/% MB (%d%%) berechnet" -#: pg_checksums.c:206 +#: pg_checksums.c:205 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "konnte Block %u in Datei »%s« nicht lesen: %m" -#: pg_checksums.c:209 +#: pg_checksums.c:208 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "konnte Block %u in Datei »%s« nicht lesen: %d von %d gelesen" -#: pg_checksums.c:232 +#: pg_checksums.c:231 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "Prüfsummenprüfung fehlgeschlagen in Datei »%s«, Block %u: berechnete Prüfsumme ist %X, aber der Block enthält %X" -#: pg_checksums.c:255 +#: pg_checksums.c:254 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "seek fehlgeschlagen für Block %u in Datei »%s«: %m" -#: pg_checksums.c:262 +#: pg_checksums.c:261 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "konnte Block %u in Datei »%s« nicht schreiben: %m" -#: pg_checksums.c:265 +#: pg_checksums.c:264 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "konnte Block %u in Datei »%s« nicht schreiben: %d von %d geschrieben" -#: pg_checksums.c:277 +#: pg_checksums.c:276 #, c-format msgid "checksums verified in file \"%s\"" msgstr "Prüfsummen wurden überprüft in Datei »%s«" -#: pg_checksums.c:279 +#: pg_checksums.c:278 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "Prüfsummen wurden eingeschaltet in Datei »%s«" -#: pg_checksums.c:362 +#: pg_checksums.c:361 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "ungültige Segmentnummer %d in Dateiname »%s«" -#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 +#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_checksums.c:524 +#: pg_checksums.c:523 #, c-format msgid "no data directory specified" msgstr "kein Datenverzeichnis angegeben" -#: pg_checksums.c:533 +#: pg_checksums.c:532 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_checksums.c:542 +#: pg_checksums.c:541 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "Option -f/--filenode kann nur mit --check verwendet werden" -#: pg_checksums.c:550 +#: pg_checksums.c:549 #, c-format msgid "pg_control CRC value is incorrect" msgstr "CRC-Wert in pg_control ist falsch" -#: pg_checksums.c:553 +#: pg_checksums.c:552 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "die Cluster sind nicht mit dieser Version von pg_checksums kompatibel" -#: pg_checksums.c:557 +#: pg_checksums.c:556 #, c-format msgid "database cluster is not compatible" msgstr "Datenbank-Cluster ist nicht kompatibel" -#: pg_checksums.c:558 +#: pg_checksums.c:557 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "Der Datenbank-Cluster wurde mit Blockgröße %u initialisiert, aber pg_checksums wurde mit Blockgröße %u kompiliert." -#: pg_checksums.c:570 +#: pg_checksums.c:569 #, c-format msgid "cluster must be shut down" msgstr "Cluster muss heruntergefahren sein" -#: pg_checksums.c:574 +#: pg_checksums.c:573 #, c-format msgid "data checksums are not enabled in cluster" msgstr "Datenprüfsummen sind im Cluster nicht eingeschaltet" -#: pg_checksums.c:578 +#: pg_checksums.c:577 #, c-format msgid "data checksums are already disabled in cluster" msgstr "Datenprüfsummen sind im Cluster bereits ausgeschaltet" -#: pg_checksums.c:582 +#: pg_checksums.c:581 #, c-format msgid "data checksums are already enabled in cluster" msgstr "Datenprüfsummen sind im Cluster bereits eingeschaltet" -#: pg_checksums.c:606 +#: pg_checksums.c:605 #, c-format msgid "Checksum operation completed\n" msgstr "Prüfsummenoperation abgeschlossen\n" -#: pg_checksums.c:607 +#: pg_checksums.c:606 #, c-format -msgid "Files scanned: %lld\n" -msgstr "Überprüfte Dateien: %lld\n" +msgid "Files scanned: %\n" +msgstr "Überprüfte Dateien: %\n" -#: pg_checksums.c:608 +#: pg_checksums.c:607 #, c-format -msgid "Blocks scanned: %lld\n" -msgstr "Überprüfte Blöcke: %lld\n" +msgid "Blocks scanned: %\n" +msgstr "Überprüfte Blöcke: %\n" -#: pg_checksums.c:611 +#: pg_checksums.c:610 #, c-format -msgid "Bad checksums: %lld\n" -msgstr "Falsche Prüfsummen: %lld\n" +msgid "Bad checksums: %\n" +msgstr "Falsche Prüfsummen: %\n" -#: pg_checksums.c:612 pg_checksums.c:644 +#: pg_checksums.c:611 pg_checksums.c:643 #, c-format msgid "Data checksum version: %u\n" msgstr "Datenprüfsummenversion: %u\n" -#: pg_checksums.c:619 +#: pg_checksums.c:618 #, c-format -msgid "Files written: %lld\n" -msgstr "Geschriebene Dateien: %lld\n" +msgid "Files written: %\n" +msgstr "Geschriebene Dateien: %\n" -#: pg_checksums.c:620 +#: pg_checksums.c:619 #, c-format -msgid "Blocks written: %lld\n" -msgstr "Geschriebene Blöcke: %lld\n" +msgid "Blocks written: %\n" +msgstr "Geschriebene Blöcke: %\n" -#: pg_checksums.c:636 +#: pg_checksums.c:635 #, c-format msgid "syncing data directory" msgstr "synchronisiere Datenverzeichnis" -#: pg_checksums.c:640 +#: pg_checksums.c:639 #, c-format msgid "updating control file" msgstr "aktualisiere Kontrolldatei" -#: pg_checksums.c:646 +#: pg_checksums.c:645 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Prüfsummen wurden im Cluster eingeschaltet\n" -#: pg_checksums.c:648 +#: pg_checksums.c:647 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Prüfsummen wurden im Cluster ausgeschaltet\n" diff --git a/src/bin/pg_checksums/po/es.po b/src/bin/pg_checksums/po/es.po index 475406d903720..4a45c85987bbe 100644 --- a/src/bin/pg_checksums/po/es.po +++ b/src/bin/pg_checksums/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_checksums (PostgreSQL) 16\n" +"Project-Id-Version: pg_checksums (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:23+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:53+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: pgsql-es-ayuda \n" "Language: es\n" @@ -40,6 +40,106 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "no se pudo cerrar el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"posible discordancia en orden de bytes\n" +"El ordenamiento de bytes usado para almacenar el archivo pg_control puede no\n" +"coincidir con el usado por este programa. En tal caso los resultados de abajo\n" +"serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" +"directorio de datos." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "no se pudo escribir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -50,26 +150,32 @@ msgstr "el valor «%s» no es válido para la opción %s" msgid "%s must be in range %d..%d" msgstr "%s debe estar en el rango %d..%d" -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" + +#: pg_checksums.c:70 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" "\n" msgstr "" -"%s activa, desactiva o verifica checksums de datos en un clúster PostgreSQL.\n" +"%s activa, desactiva o verifica checksums de datos en un\n" +"clúster PostgreSQL.\n" "\n" -#: pg_checksums.c:80 +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPCIÓN]... [DATADIR]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format msgid "" "\n" @@ -78,57 +184,62 @@ msgstr "" "\n" "Opciones:\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR directorio de datos\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check verificar checksums (por omisión)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable desactivar checksums\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable activar checksums\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=FILENODE verificar sólo la relación con el filenode dado\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress mostrar información de progreso\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método para sincr. archivos a disco\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose desplegar mensajes verbosos\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format msgid "" "\n" @@ -141,192 +252,177 @@ msgstr "" "la variable de entorno PGDATA.\n" "\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Reporte errores a <%s>.\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld MB (%d%%) calculado" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "no se pudo leer el bloque %u del archivo «%s»: %m" -#: pg_checksums.c:217 +#: pg_checksums.c:209 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "no se pudo leer bloque %u en archivo «%s»: leídos %d de %d" -#: pg_checksums.c:240 +#: pg_checksums.c:232 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "verificación de checksums falló en archivo «%s», bloque %u: checksum calculado %X pero bloque contiene %X" -#: pg_checksums.c:263 +#: pg_checksums.c:255 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "posicionamiento (seek) falló para el bloque %u en archivo «%s»: %m" -#: pg_checksums.c:270 +#: pg_checksums.c:262 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "no se pudo escribir el bloque %u en el archivo «%s»: %m" -#: pg_checksums.c:273 +#: pg_checksums.c:265 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "no se pudo escribir el bloque %u en el archivo «%s»: se escribieron %d de %d" -#: pg_checksums.c:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "checksums verificados en archivo «%s»" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "checksums activados en archivo «%s»" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "no se pudo abrir el directorio «%s»: %m" - -#: pg_checksums.c:342 pg_checksums.c:411 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "no se pudo hacer stat al archivo «%s»: %m" - -#: pg_checksums.c:366 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "número de segmento %d no válido en nombre de archivo «%s»" -#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_checksums.c:523 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "no se especificó el directorio de datos" -#: pg_checksums.c:532 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_checksums.c:541 +#: pg_checksums.c:542 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "la opción -f/--filenode sólo puede usarse con --check" -#: pg_checksums.c:549 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "el valor de CRC de pg_control es incorrecto" -#: pg_checksums.c:552 +#: pg_checksums.c:553 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "el clúster no es compatible con esta versión de pg_checksums" -#: pg_checksums.c:556 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "el clúster de bases de datos no es compatible" -#: pg_checksums.c:557 +#: pg_checksums.c:558 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "El clúster fue inicializado con tamaño de bloque %u, pero pg_checksums fue compilado con tamaño de bloques %u." -#: pg_checksums.c:569 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "el clúster debe estar apagado" -#: pg_checksums.c:573 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "los checksums de datos no están activados en el clúster" -#: pg_checksums.c:577 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "los checksums de datos ya están desactivados en el clúster" -#: pg_checksums.c:581 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "los checksums de datos ya están activados en el clúster" -#: pg_checksums.c:605 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "Operación de checksums completa\n" -#: pg_checksums.c:606 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "Archivos recorridos: %lld\n" -#: pg_checksums.c:607 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Bloques recorridos: %lld\n" -#: pg_checksums.c:610 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "Checksums incorrectos: %lld\n" -#: pg_checksums.c:611 pg_checksums.c:643 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "Versión de checksums de datos: %u\n" -#: pg_checksums.c:618 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "Archivos escritos: %lld\n" -#: pg_checksums.c:619 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "Bloques escritos: %lld\n" -#: pg_checksums.c:635 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "sincronizando directorio de datos" -#: pg_checksums.c:639 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "actualizando archivo de control" -#: pg_checksums.c:645 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Checksums activos en el clúster\n" -#: pg_checksums.c:647 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Checksums inactivos en el clúster\n" diff --git a/src/bin/pg_checksums/po/fr.po b/src/bin/pg_checksums/po/fr.po index dcdb4c74f1512..dcd82587d4ff4 100644 --- a/src/bin/pg_checksums/po/fr.po +++ b/src/bin/pg_checksums/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-14 10:21+0000\n" -"PO-Revision-Date: 2022-05-14 17:15+0200\n" +"POT-Creation-Date: 2024-07-20 21:25+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,28 +19,128 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "erreur : " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "attention : " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "détail : " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "astuce : " +#: ../../common/controldata_utils.c:97 +#, c-format +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:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"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 de PostgreSQL\n" +"est incompatible avec ce répertoire des données." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "impossible d'écrire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -51,7 +151,12 @@ msgstr "valeur « %s » invalide pour l'option %s" msgid "%s must be in range %d..%d" msgstr "%s doit être compris entre %d et %d" -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: pg_checksums.c:70 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" @@ -61,17 +166,17 @@ msgstr "" "une instance PostgreSQL.\n" "\n" -#: pg_checksums.c:80 +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [RÉP_DONNÉES]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format msgid "" "\n" @@ -80,61 +185,66 @@ msgstr "" "\n" "Options :\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]REP_DONNEES répertoire des données\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check vérifie les sommes de contrôle (par défaut)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable désactive les sommes de contrôle\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable active les sommes de contrôle\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, 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\n" " relfilenode est indiqué\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, 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\n" " proprement écrites sur disque\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress affiche la progression de l'opération\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose affiche des messages verbeux\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format msgid "" "\n" @@ -147,228 +257,177 @@ msgstr "" "PGDATA est utilisée.\n" "\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapporter les bogues à <%s>.\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld Mo (%d%%) traités" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, 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" -#: pg_checksums.c:217 +#: pg_checksums.c:209 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "n'a pas pu lire le bloc %u dans le fichier « %s » : %d lus sur %d" -#: pg_checksums.c:240 +#: pg_checksums.c:232 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "échec de la vérification de la somme de contrôle dans le fichier « %s », bloc %u : somme de contrôle calculée %X, alors que le bloc contient %X" -#: pg_checksums.c:263 +#: pg_checksums.c:255 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "n'a pas pu rechercher le bloc %u dans le fichier « %s » : %m" -#: pg_checksums.c:270 +#: pg_checksums.c:262 #, 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" -#: pg_checksums.c:273 +#: pg_checksums.c:265 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "n'a pas pu écrire le bloc %u du fichier « %s » : a écrit %d octets sur %d" -#: pg_checksums.c:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "sommes de contrôle vérifiées dans le fichier « %s »" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "sommes de contrôle activées dans le fichier « %s »" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" - -#: pg_checksums.c:342 pg_checksums.c:415 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "n'a pas pu tester le fichier « %s » : %m" - -#: pg_checksums.c:366 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "numéro de segment %d invalide dans le nom de fichier « %s »" -#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:546 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_checksums.c:527 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "aucun répertoire de données indiqué" -#: pg_checksums.c:536 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_checksums.c:545 +#: pg_checksums.c:542 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "l'option « -f/--filenode » peut seulement être utilisée avec --check" -#: pg_checksums.c:553 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "la valeur CRC de pg_control n'est pas correcte" -#: pg_checksums.c:556 +#: pg_checksums.c:553 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "l'instance n'est pas compatible avec cette version de pg_checksums" -#: pg_checksums.c:560 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "l'instance n'est pas compatible" -#: pg_checksums.c:561 +#: pg_checksums.c:558 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "L'instance a été initialisée avec une taille de bloc à %u alors que pg_checksums a été compilé avec une taille de bloc à %u." -#: pg_checksums.c:573 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "l'instance doit être arrêtée" -#: pg_checksums.c:577 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "les sommes de contrôle sur les données ne sont pas activées sur cette instance" -#: pg_checksums.c:581 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "les sommes de contrôle sur les données sont déjà désactivées sur cette instance" -#: pg_checksums.c:585 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "les sommes de contrôle sur les données sont déjà activées sur cette instance" -#: pg_checksums.c:609 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "Opération sur les sommes de contrôle terminée\n" -#: pg_checksums.c:610 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "Fichiers parcourus : %lld\n" -#: pg_checksums.c:611 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Blocs parcourus : %lld\n" -#: pg_checksums.c:614 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "Mauvaises sommes de contrôle : %lld\n" -#: pg_checksums.c:615 pg_checksums.c:647 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "Version des sommes de contrôle sur les données : %u\n" -#: pg_checksums.c:622 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "Fichiers écrits : %lld\n" -#: pg_checksums.c:623 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "Blocs écrits : %lld\n" -#: pg_checksums.c:639 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "synchronisation du répertoire des données" -#: pg_checksums.c:643 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "mise à jour du fichier de contrôle" -#: pg_checksums.c:649 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Sommes de contrôle sur les données activées sur cette instance\n" -#: pg_checksums.c:651 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Sommes de contrôle sur les données désactivées sur cette instance\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 "%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 open file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu ouvrir 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: no data directory specified\n" -#~ msgstr "%s : aucun répertoire de données indiqué\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 "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#, c-format -#~ msgid "invalid filenode specification, must be numeric: %s" -#~ msgstr "spécification invalide du relfilnode, doit être numérique : %s" diff --git a/src/bin/pg_checksums/po/ja.po b/src/bin/pg_checksums/po/ja.po index f4d3da0256ed6..9241f4704a66a 100644 --- a/src/bin/pg_checksums/po/ja.po +++ b/src/bin/pg_checksums/po/ja.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_checksums (PostgreSQL 17)\n" +"Project-Id-Version: pg_checksums (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 09:23+0900\n" -"PO-Revision-Date: 2023-09-07 10:23+0900\n" +"POT-Creation-Date: 2025-03-03 16:14+0900\n" +"PO-Revision-Date: 2025-03-31 16:24+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -17,26 +17,125 @@ msgstr "" "X-Generator: Poedit 1.8.13\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ファイル\"%s\"を読み込み用にオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ファイル\"%s\"の読み込みに失敗しました: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ファイル\"%s\"をクローズできませんでした: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "バイトオーダが合っていません" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"バイトオーダが異なる可能性があります。\n" +"pg_controlファイルを格納するために使用するバイトオーダが本プログラムで使用\n" +"されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" +"PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:71 +#: ../../common/file_utils.c:348 ../../common/file_utils.c:407 +#: ../../common/file_utils.c:481 pg_checksums.c:191 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ファイル\"%s\"をオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ファイル\"%s\"を書き出せませんでした: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:419 +#: ../../common/file_utils.c:489 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ファイル\"%s\"をfsyncできませんでした: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "メモリ不足です\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "nullポインタは複製できません(内部エラー)\n" + +#: ../../common/file_utils.c:77 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" + +#: ../../common/file_utils.c:121 ../../common/file_utils.c:567 +#: pg_checksums.c:337 pg_checksums.c:406 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ファイル\"%s\"のstatに失敗しました: %m" + +#: ../../common/file_utils.c:131 ../../common/file_utils.c:228 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "このビルドでは同期方式\"%s\"をサポートしていません" + +#: ../../common/file_utils.c:152 ../../common/file_utils.c:282 +#: pg_checksums.c:309 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" + +#: ../../common/file_utils.c:170 ../../common/file_utils.c:316 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" + +#: ../../common/file_utils.c:499 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -47,17 +146,12 @@ msgstr "オプション%sの不正な値\"%s\"" msgid "%s must be in range %d..%d" msgstr "%sは%d..%dの範囲でなければなりません" -#: ../../fe_utils/option_utils.c:99 -#, c-format -msgid "this build does not support sync method \"%s\"" -msgstr "このビルドでは同期方式\"%s\"をサポートしていません" - #: ../../fe_utils/option_utils.c:106 #, c-format msgid "unrecognized sync method: %s" msgstr "認識できない同期方式: %s" -#: pg_checksums.c:70 +#: pg_checksums.c:69 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" @@ -66,17 +160,17 @@ msgstr "" "%sはPostgreSQLデータベースクラスタにおけるデータチェックサムの有効化、無効化および検証を行います。\n" "\n" -#: pg_checksums.c:71 +#: pg_checksums.c:70 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_checksums.c:72 +#: pg_checksums.c:71 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATADIR]\n" -#: pg_checksums.c:73 +#: pg_checksums.c:72 #, c-format msgid "" "\n" @@ -85,62 +179,62 @@ msgstr "" "\n" "オプション:\n" -#: pg_checksums.c:74 +#: pg_checksums.c:73 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR データディレクトリ\n" -#: pg_checksums.c:75 +#: pg_checksums.c:74 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check データチェックサムを検証(デフォルト)\n" -#: pg_checksums.c:76 +#: pg_checksums.c:75 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable データチェックサムを無効化\n" -#: pg_checksums.c:77 +#: pg_checksums.c:76 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable データチェックサムを有効化\n" -#: pg_checksums.c:78 +#: pg_checksums.c:77 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=FILENODE 指定したファイルノードのリレーションのみ検証\n" -#: pg_checksums.c:79 +#: pg_checksums.c:78 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync ディスクへの安全な書き込みを待機しない\n" -#: pg_checksums.c:80 +#: pg_checksums.c:79 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress 進行状況を表示\n" -#: pg_checksums.c:81 +#: pg_checksums.c:80 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=METHOD ファイルをディスクに同期させる方法を指定\n" -#: pg_checksums.c:82 +#: pg_checksums.c:81 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose 冗長メッセージを出力\n" -#: pg_checksums.c:83 +#: pg_checksums.c:82 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_checksums.c:84 +#: pg_checksums.c:83 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_checksums.c:85 +#: pg_checksums.c:84 #, c-format msgid "" "\n" @@ -152,192 +246,177 @@ msgstr "" "データディレクトリ(DATADIR)が指定されない場合、PGDATA環境変数が使用されます。\n" "\n" -#: pg_checksums.c:87 +#: pg_checksums.c:86 #, c-format msgid "Report bugs to <%s>.\n" msgstr "バグは<%s>に報告してください。\n" -#: pg_checksums.c:88 +#: pg_checksums.c:87 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: pg_checksums.c:145 -#, c-format -msgid "%lld/%lld MB (%d%%) computed" -msgstr "%lld/%lld MB (%d%%) 完了" - -#: pg_checksums.c:192 +#: pg_checksums.c:144 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "ファイル\"%s\"をオープンできませんでした: %m" +msgid "%/% MB (%d%%) computed" +msgstr "%/% MB (%d%%) 完了" -#: pg_checksums.c:206 +#: pg_checksums.c:205 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "ファイル\"%2$s\"で%1$uブロックを読み取れませんでした: %3$m" -#: pg_checksums.c:209 +#: pg_checksums.c:208 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr " ファイル\"%2$s\"のブロック%1$uが読み込めませんでした: %4$d中%3$d読み込み済み" -#: pg_checksums.c:232 +#: pg_checksums.c:231 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "ファイル\"%s\" ブロック%uでチェックサム検証が失敗: 算出したチェックサムは%X 、しかしブロック上の値は%X" -#: pg_checksums.c:255 +#: pg_checksums.c:254 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "ファイル\"%2$s\" ブロック%1$uへのシーク失敗: %3$m" -#: pg_checksums.c:262 +#: pg_checksums.c:261 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "ファイル\"%2$s\"で%1$uブロックが書き出せませんでした: %3$m" -#: pg_checksums.c:265 +#: pg_checksums.c:264 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "ファイル\"%2$s\"のブロック%1$uの書き込みに失敗しました: %4$dバイト中%3$dバイトのみ書き込みました" -#: pg_checksums.c:277 +#: pg_checksums.c:276 #, c-format msgid "checksums verified in file \"%s\"" msgstr "ファイル\"%s\"のチェックサムは検証されました" -#: pg_checksums.c:279 +#: pg_checksums.c:278 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "ファイル\"%s\"のチェックサムは有効化されました" -#: pg_checksums.c:310 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" - -#: pg_checksums.c:334 pg_checksums.c:403 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "ファイル\"%s\"のstatに失敗しました: %m" - -#: pg_checksums.c:358 +#: pg_checksums.c:361 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "ファイル名\"%2$s\"の不正なセグメント番号%1$d" -#: pg_checksums.c:505 pg_checksums.c:521 pg_checksums.c:531 pg_checksums.c:539 +#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細については\"%s --help\"を実行してください。" -#: pg_checksums.c:520 +#: pg_checksums.c:523 #, c-format msgid "no data directory specified" msgstr "データディレクトリが指定されていません" -#: pg_checksums.c:529 +#: pg_checksums.c:532 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます (最初は\"%s\")" -#: pg_checksums.c:538 +#: pg_checksums.c:541 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "オプション-f/--filenodeは--checkを指定したときのみ指定可能" -#: pg_checksums.c:546 +#: pg_checksums.c:549 #, c-format msgid "pg_control CRC value is incorrect" msgstr "pg_controlのCRC値が正しくありません" -#: pg_checksums.c:549 +#: pg_checksums.c:552 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "クラスタはこのバージョンのpg_checksumsと互換性がありません" -#: pg_checksums.c:553 +#: pg_checksums.c:556 #, c-format msgid "database cluster is not compatible" msgstr "データベースクラスタが非互換です" -#: pg_checksums.c:554 +#: pg_checksums.c:557 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "データベースクラスタはブロックサイズ%uで初期化されています、しかしpg_checksumsはブロックサイズ%uでコンパイルされています。" -#: pg_checksums.c:566 +#: pg_checksums.c:569 #, c-format msgid "cluster must be shut down" msgstr "クラスタはシャットダウンされていなければなりません" -#: pg_checksums.c:570 +#: pg_checksums.c:573 #, c-format msgid "data checksums are not enabled in cluster" msgstr "クラスタのデータチェックサムは有効になっていません" -#: pg_checksums.c:574 +#: pg_checksums.c:577 #, c-format msgid "data checksums are already disabled in cluster" msgstr "クラスタのデータチェックサムはすでに無効になっています" -#: pg_checksums.c:578 +#: pg_checksums.c:581 #, c-format msgid "data checksums are already enabled in cluster" msgstr "クラスタのデータチェックサムはすでに有効になっています" -#: pg_checksums.c:602 +#: pg_checksums.c:605 #, c-format msgid "Checksum operation completed\n" msgstr "チェックサム操作が完了しました\n" -#: pg_checksums.c:603 +#: pg_checksums.c:606 #, c-format -msgid "Files scanned: %lld\n" -msgstr "スキャンしたファイル数: %lld\n" +msgid "Files scanned: %\n" +msgstr "スキャンしたファイル数: %\n" -#: pg_checksums.c:604 +#: pg_checksums.c:607 #, c-format -msgid "Blocks scanned: %lld\n" -msgstr "スキャンしたブロック数: %lld\n" +msgid "Blocks scanned: %\n" +msgstr "スキャンしたブロック数: %\n" -#: pg_checksums.c:607 +#: pg_checksums.c:610 #, c-format -msgid "Bad checksums: %lld\n" -msgstr "不正なチェックサム数: %lld\n" +msgid "Bad checksums: %\n" +msgstr "不正なチェックサム数: %\n" -#: pg_checksums.c:608 pg_checksums.c:640 +#: pg_checksums.c:611 pg_checksums.c:643 #, c-format msgid "Data checksum version: %u\n" msgstr "データチェックサムバージョン: %u\n" -#: pg_checksums.c:615 +#: pg_checksums.c:618 #, c-format -msgid "Files written: %lld\n" -msgstr "スキャンしたファイル数: %lld\n" +msgid "Files written: %\n" +msgstr "スキャンしたファイル数: %\n" -#: pg_checksums.c:616 +#: pg_checksums.c:619 #, c-format -msgid "Blocks written: %lld\n" -msgstr "スキャンしたブロック数: %lld\n" +msgid "Blocks written: %\n" +msgstr "スキャンしたブロック数: %\n" -#: pg_checksums.c:632 +#: pg_checksums.c:635 #, c-format msgid "syncing data directory" msgstr "データディレクトリを同期しています" -#: pg_checksums.c:636 +#: pg_checksums.c:639 #, c-format msgid "updating control file" msgstr "コントロールファイルを更新しています" -#: pg_checksums.c:642 +#: pg_checksums.c:645 #, c-format msgid "Checksums enabled in cluster\n" msgstr "クラスタのチェックサムが有効化されました\n" -#: pg_checksums.c:644 +#: pg_checksums.c:647 #, c-format msgid "Checksums disabled in cluster\n" msgstr "クラスタのチェックサムが無効化されました\n" diff --git a/src/bin/pg_checksums/po/ka.po b/src/bin/pg_checksums/po/ka.po index 71e6f8a8c8cf4..ac8f90bc7cfae 100644 --- a/src/bin/pg_checksums/po/ka.po +++ b/src/bin/pg_checksums/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_checksums (PostgreSQL) 17\n" +"Project-Id-Version: pg_checksums (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-11 09:53+0000\n" -"PO-Revision-Date: 2024-02-11 14:43+0100\n" +"POT-Creation-Date: 2025-03-02 16:24+0000\n" +"PO-Revision-Date: 2025-03-02 18:36+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,28 +16,126 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ფაილის (%s) დახურვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "ბაიტების მიმდევრობა არ ემთხვევა" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"ბაიტების მიმდევრობის შესაძლო შეუსაბამობა pg_control ფაილის შესანახად გამოყენებული \n" +"ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" +"მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:71 +#: ../../common/file_utils.c:348 ../../common/file_utils.c:407 +#: ../../common/file_utils.c:481 pg_checksums.c:191 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:419 +#: ../../common/file_utils.c:489 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + +#: ../../common/file_utils.c:77 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" + +#: ../../common/file_utils.c:121 ../../common/file_utils.c:567 +#: pg_checksums.c:337 pg_checksums.c:406 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: ../../common/file_utils.c:131 ../../common/file_utils.c:228 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" + +#: ../../common/file_utils.c:152 ../../common/file_utils.c:282 +#: pg_checksums.c:309 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:170 ../../common/file_utils.c:316 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/file_utils.c:499 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "გადარქმევის შეცდომა %s - %s: %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -48,17 +146,12 @@ msgstr "არასწორი მნიშვნელობა \"%s\" პა msgid "%s must be in range %d..%d" msgstr "%s არაა საზღვრებში %d-დან %d-მდე" -#: ../../fe_utils/option_utils.c:99 -#, c-format -msgid "this build does not support sync method \"%s\"" -msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" - #: ../../fe_utils/option_utils.c:106 #, c-format msgid "unrecognized sync method: %s" msgstr "უცნობი სინქრონიზაციის მეთოდი: %s" -#: pg_checksums.c:70 +#: pg_checksums.c:69 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" @@ -67,17 +160,17 @@ msgstr "" "%s ჩართავს, გამორთავს და შეამოწმებს მონაცემების საკონტროლო ჯამებს PostgreSQL მონაცემთა ბაზის კლასტერში.\n" "\n" -#: pg_checksums.c:71 +#: pg_checksums.c:70 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_checksums.c:72 +#: pg_checksums.c:71 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [პარამეტრი]... [მონაცემებისსაქაღალდე]\n" -#: pg_checksums.c:73 +#: pg_checksums.c:72 #, c-format msgid "" "\n" @@ -86,62 +179,62 @@ msgstr "" "\n" "პარამეტრები:\n" -#: pg_checksums.c:74 +#: pg_checksums.c:73 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR მონაცემების საქაღალდე\n" -#: pg_checksums.c:75 +#: pg_checksums.c:74 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check მონაცემების საკნტროლო ჯამის შემოწმება(ნაგულისხმები)\n" -#: pg_checksums.c:76 +#: pg_checksums.c:75 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable მონაცემების საკონტროლო ჯამების გამორთვა\n" -#: pg_checksums.c:77 +#: pg_checksums.c:76 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable მონაცემების საკონტროლო ჯამების ჩართვა\n" -#: pg_checksums.c:78 +#: pg_checksums.c:77 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=ფაილისკვანძი მხოლოდ მითითებულ ფაილის კვანძთან ურთიერთობის შემოწმება\n" -#: pg_checksums.c:79 +#: pg_checksums.c:78 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: pg_checksums.c:80 +#: pg_checksums.c:79 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress მიმდინარეობის ინფორმაციის ჩვენება\n" -#: pg_checksums.c:81 +#: pg_checksums.c:80 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=მეთოდი ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: pg_checksums.c:82 +#: pg_checksums.c:81 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: pg_checksums.c:83 +#: pg_checksums.c:82 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_checksums.c:84 +#: pg_checksums.c:83 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_checksums.c:85 +#: pg_checksums.c:84 #, c-format msgid "" "\n" @@ -153,192 +246,179 @@ msgstr "" "თუ მონაცემების საქაღალდე მითითებული არაა, გამოყენებული იქნება \n" "გარემოს ცვლადი PGDATA.\n" -#: pg_checksums.c:87 +#: pg_checksums.c:86 #, c-format msgid "Report bugs to <%s>.\n" msgstr "შეცდომების შესახებ მიწერეთ: <%s>\n" -#: pg_checksums.c:88 +#: pg_checksums.c:87 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: pg_checksums.c:145 -#, c-format -msgid "%lld/%lld MB (%d%%) computed" -msgstr "%lld/%lld მბ (%d%%) გამოთვლილია" - -#: pg_checksums.c:192 +#: pg_checksums.c:144 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" +#| msgid "%lld/%lld MB (%d%%) computed" +msgid "%/% MB (%d%%) computed" +msgstr "%/% მბ (%d%%) გამოთვლილია" -#: pg_checksums.c:206 +#: pg_checksums.c:205 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "ბლოკის %u წაკითხვის შეცდომა ფაილში \"%s\": %m" -#: pg_checksums.c:209 +#: pg_checksums.c:208 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "ბლოკის %u წაკითხვის შეცდომა ფაილში \"%s\": წაკითხულია %d %d-დან" -#: pg_checksums.c:232 +#: pg_checksums.c:231 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "საკონტროლო ჯამის გამოთვლის შეცდომა ფაილში \"%s\", ბლოკი \"%u\": გამოთვლილი საკონტროლო კამია %X, მაგრამ ბლოკი შეიცავს: %X" -#: pg_checksums.c:255 +#: pg_checksums.c:254 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "გადახვევის შეცდომა ბლოკისთვის %u ფაილში \"%s\": %m" -#: pg_checksums.c:262 +#: pg_checksums.c:261 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "ბლოკის %u ჩაწერის შეცდომა ფაილში \"%s\": %m" -#: pg_checksums.c:265 +#: pg_checksums.c:264 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "ბლოკის %u ჩაწერის შეცდომა ფაილში \"%s\": ჩაწერილია %d %d-დან" -#: pg_checksums.c:277 +#: pg_checksums.c:276 #, c-format msgid "checksums verified in file \"%s\"" msgstr "ფაილის საკონტროლო ჯამები შემოწმებულია ფაილში: \"%s\"" -#: pg_checksums.c:279 +#: pg_checksums.c:278 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "ფაილის საკონტროლო ჯამები ჩართულია ფაილიდან: \"%s\"" -#: pg_checksums.c:310 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" - -#: pg_checksums.c:334 pg_checksums.c:403 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "ფაილი \"%s\" არ არსებობს: %m" - -#: pg_checksums.c:358 +#: pg_checksums.c:361 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "სეგმენტის არასწორი ნომერი %d ფაილის სახელში \"%s\"" -#: pg_checksums.c:505 pg_checksums.c:521 pg_checksums.c:531 pg_checksums.c:539 +#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_checksums.c:520 +#: pg_checksums.c:523 #, c-format msgid "no data directory specified" msgstr "მონაცემების საქაღალდე მითითებული არაა" -#: pg_checksums.c:529 +#: pg_checksums.c:532 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_checksums.c:538 +#: pg_checksums.c:541 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "პარამეტრი -f/--filenode მხოლოდ --check -თან ერთად შეიძლება იქნას გამოყენებული" -#: pg_checksums.c:546 +#: pg_checksums.c:549 #, c-format msgid "pg_control CRC value is incorrect" msgstr "pg_control CRC მნიშვნელობა არასწორია" -#: pg_checksums.c:549 +#: pg_checksums.c:552 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "კლასტერი შეუთავსებელია pg_checksums-ის ამ ვერსიასთან" -#: pg_checksums.c:553 +#: pg_checksums.c:556 #, c-format msgid "database cluster is not compatible" msgstr "ბაზის კლასტერი შეუთავსებელია" -#: pg_checksums.c:554 +#: pg_checksums.c:557 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "ბაზის კლასტერის ინიციალიზაცია მოხდა ბლოკის ზომით %u მაშინ, როცა pg_checksums აგებულია ბლოკის ზომით: %u." -#: pg_checksums.c:566 +#: pg_checksums.c:569 #, c-format msgid "cluster must be shut down" msgstr "კლასტერი უნდა გამოირთოს" -#: pg_checksums.c:570 +#: pg_checksums.c:573 #, c-format msgid "data checksums are not enabled in cluster" msgstr "კლასტერში მონაცემების საკონტროლო ჯამები ჩართული არაა" -#: pg_checksums.c:574 +#: pg_checksums.c:577 #, c-format msgid "data checksums are already disabled in cluster" msgstr "კლასტერში მონაცემების საკონტროლო ჯამები უკვე გამორთულია" -#: pg_checksums.c:578 +#: pg_checksums.c:581 #, c-format msgid "data checksums are already enabled in cluster" msgstr "კლასტერში მონაცემების საკონტროლო ჯამები უკვე ჩართულია" -#: pg_checksums.c:602 +#: pg_checksums.c:605 #, c-format msgid "Checksum operation completed\n" msgstr "საკონტროლო ჯამების ოპერაცია დასრულდა\n" -#: pg_checksums.c:603 +#: pg_checksums.c:606 #, c-format -msgid "Files scanned: %lld\n" -msgstr "დასკანერებულია ფაილები: %lld\n" +#| msgid "Files scanned: %lld\n" +msgid "Files scanned: %\n" +msgstr "დასკანირებულია ფაილები: %\n" -#: pg_checksums.c:604 +#: pg_checksums.c:607 #, c-format -msgid "Blocks scanned: %lld\n" -msgstr "დასკარერებული ბლოკები: %lld\n" +msgid "Blocks scanned: %\n" +msgstr "დასკანირებულია ბლოკები: %\n" -#: pg_checksums.c:607 +#: pg_checksums.c:610 #, c-format -msgid "Bad checksums: %lld\n" -msgstr "ცუდი საკონტროლო ჯამები: %lld\n" +msgid "Bad checksums: %\n" +msgstr "ცუდი საკონტროლო ჯამები: %\n" -#: pg_checksums.c:608 pg_checksums.c:640 +#: pg_checksums.c:611 pg_checksums.c:643 #, c-format msgid "Data checksum version: %u\n" msgstr "მონაცემების საკონტროლო ჯამის ვერსია: %u\n" -#: pg_checksums.c:615 +#: pg_checksums.c:618 #, c-format -msgid "Files written: %lld\n" -msgstr "ჩაწერილი ფაილები: %lld\n" +msgid "Files written: %\n" +msgstr "ჩაწერილი ფაილები: %\n" -#: pg_checksums.c:616 +#: pg_checksums.c:619 #, c-format -msgid "Blocks written: %lld\n" -msgstr "ჩაწერილი ბლოკები: %lld\n" +msgid "Blocks written: %\n" +msgstr "ჩაწერილი ბლოკები: %\n" -#: pg_checksums.c:632 +#: pg_checksums.c:635 #, c-format msgid "syncing data directory" msgstr "მონაცემების საქაღალდის სინქრონიზაცია" -#: pg_checksums.c:636 +#: pg_checksums.c:639 #, c-format msgid "updating control file" msgstr "საკონტროლო ფაილის ატვირთვა" -#: pg_checksums.c:642 +#: pg_checksums.c:645 #, c-format msgid "Checksums enabled in cluster\n" msgstr "კლასტერში მონაცემების საკონტროლო ჯამები ჩართულია\n" -#: pg_checksums.c:644 +#: pg_checksums.c:647 #, c-format msgid "Checksums disabled in cluster\n" msgstr "კლასტერში საკონტროლო ჯამები გამორთულია\n" diff --git a/src/bin/pg_checksums/po/ko.po b/src/bin/pg_checksums/po/ko.po index 3c9a6027c02f6..f8c71ae2ead3a 100644 --- a/src/bin/pg_checksums/po/ko.po +++ b/src/bin/pg_checksums/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_checksums (PostgreSQL) 16\n" +"Project-Id-Version: pg_checksums (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:53+0000\n" -"PO-Revision-Date: 2023-05-30 12:38+0900\n" +"POT-Creation-Date: 2025-01-17 04:54+0000\n" +"PO-Revision-Date: 2025-01-16 15:23+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: PostgreSQL Korea \n" "Language: ko\n" @@ -36,6 +36,107 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "읽기용 \"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %d / %zu 바이트만 읽음" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "\"%s\" 파일을 닫을 수 없음: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 일치하지 않음" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"바이트 순서 일치하지 않는 문제\n" +"바이트 순서 정보는 pg_control 파일을 저장할 때 사용되는데,\n" +"이 파일의 바이트 순서 정보와 이 프로그램에서 사용하는 순서 정보가 다릅니다.\n" +"이럴 경우, 출력 결과가 바르지 않을 수 있고,\n" +"설치된 PostgreSQL 프로그램과 데이터 디렉터리가 호환되지 않을 수 있습니다." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "\"%s\" 파일을 쓸 수 없음: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위해 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -46,7 +147,12 @@ msgstr "\"%s\" 값은 \"%s\" 옵션값으로 유효하지 않음" msgid "%s must be in range %d..%d" msgstr "%s 값은 %d부터 %d까지 지정할 수 있습니다." -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: pg_checksums.c:70 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database " @@ -57,17 +163,17 @@ msgstr "" "비활성화 또는 유효성 검사를 합니다.\n" "\n" -#: pg_checksums.c:80 +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [옵션]... [DATADIR]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format msgid "" "\n" @@ -76,33 +182,33 @@ msgstr "" "\n" "옵션들:\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR 데이터 디렉터리\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check 실 작업 없이, 그냥 검사만 (기본값)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable 자료 페이지 체크섬 비활성화\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable 자료 페이지 체크섬 활성화\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, c-format msgid "" " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=FILENODE 지정한 파일노드만 검사\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -110,27 +216,32 @@ msgid "" msgstr "" " -N, --no-sync 작업 완료 뒤 디스크 동기화 작업을 하지 않음\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress 진행 과정 보여줌\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD 파일을 디스크에 동기화 하는 방법 지정\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose 자세한 작업 메시지 보여줌\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format msgid "" "\n" @@ -144,37 +255,32 @@ msgstr "" "사용합니다.\n" "\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "문제점 보고 주소: <%s>\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld MB (%d%%) 계산됨" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %m" -#: pg_checksums.c:217 +#: pg_checksums.c:209 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "%u 블럭을 \"%s\" 파일에서 읽을 수 없음: %d / %d 바이트만 읽음" -#: pg_checksums.c:240 +#: pg_checksums.c:232 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated checksum " @@ -183,82 +289,72 @@ msgstr "" "\"%s\" 파일, %u 블럭의 체크섬 검사 실패: 계산된 체크섬은 %X 값이지만, 블럭에" "는 %X 값이 있음" -#: pg_checksums.c:263 +#: pg_checksums.c:255 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "%u 블럭을 \"%s\" 파일에서 찾을 수 없음: %m" -#: pg_checksums.c:270 +#: pg_checksums.c:262 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "%u 블럭을 \"%s\" 파일에 쓸 수 없음: %m" -#: pg_checksums.c:273 +#: pg_checksums.c:265 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "%u 블럭을 \"%s\" 파일에 쓸 수 없음: %d / %d 바이트만 씀" -#: pg_checksums.c:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "\"%s\" 파일 체크섬 검사 마침" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "\"%s\" 파일 체크섬 활성화 함" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "\"%s\" 디렉터리 열 수 없음: %m" - -#: pg_checksums.c:342 pg_checksums.c:411 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" - -#: pg_checksums.c:366 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "잘못된 조각 번호 %d, 해당 파일: \"%s\"" -#: pg_checksums.c:508 pg_checksums.c:524 pg_checksums.c:534 pg_checksums.c:542 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: pg_checksums.c:523 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "데이터 디렉터리를 지정하지 않았음" -#: pg_checksums.c:532 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인수를 지정했음 (처음 \"%s\")" -#: pg_checksums.c:541 +#: pg_checksums.c:542 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "-f/--filenode 옵션은 --check 옵션만 사용할 수 있음" -#: pg_checksums.c:549 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "pg_control CRC 값이 잘못되었음" -#: pg_checksums.c:552 +#: pg_checksums.c:553 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "해당 클러스터는 이 버전 pg_checksum과 호환되지 않음" -#: pg_checksums.c:556 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "데이터베이스 클러스터는 호환되지 않음" -#: pg_checksums.c:557 +#: pg_checksums.c:558 #, c-format msgid "" "The database cluster was initialized with block size %u, but pg_checksums " @@ -267,77 +363,77 @@ msgstr "" "이 데이터베이스 클러스터는 %u 블록 크기로 초기화 되었지만, pg_checksum은 %u " "블록 크기로 컴파일 되어있습니다." -#: pg_checksums.c:569 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "먼저 서버가 중지되어야 함" -#: pg_checksums.c:573 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "이 클러스터는 자료 체크섬이 비활성화 상태임" -#: pg_checksums.c:577 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "이 클러스터는 이미 자료 체크섬이 비활성화 상태임" -#: pg_checksums.c:581 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "이 클러스터는 이미 자료 체크섬이 활성화 상태임" -#: pg_checksums.c:605 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "체크섬 작업 완료\n" -#: pg_checksums.c:606 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "조사한 파일수: %lld\n" -#: pg_checksums.c:607 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "조사한 블럭수: %lld\n" -#: pg_checksums.c:610 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "잘못된 체크섬: %lld\n" -#: pg_checksums.c:611 pg_checksums.c:643 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "자료 체크섬 버전: %u\n" -#: pg_checksums.c:618 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "기록한 파일수: %lld\n" -#: pg_checksums.c:619 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "기록한 블럭수: %lld\n" -#: pg_checksums.c:635 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "데이터 디렉터리 fsync 중" -#: pg_checksums.c:639 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "컨트롤 파일 바꾸는 중" -#: pg_checksums.c:645 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "이 클러스터는 자료 체크섬 옵션이 활성화 되었음\n" -#: pg_checksums.c:647 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "이 클러스터는 자료 체크섬 옵션이 비활성화 되었음\n" diff --git a/src/bin/pg_checksums/po/ru.po b/src/bin/pg_checksums/po/ru.po index ebe4636657321..30f9791b0460a 100644 --- a/src/bin/pg_checksums/po/ru.po +++ b/src/bin/pg_checksums/po/ru.po @@ -1,10 +1,10 @@ -# Alexander Lakhin , 2019, 2020, 2021, 2022. +# Alexander Lakhin , 2019, 2020, 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pg_verify_checksums (PostgreSQL) 11\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2022-09-05 13:34+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 13:35+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -32,6 +32,106 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"возможно несоответствие порядка байт\n" +"Порядок байт в файле pg_control может не соответствовать используемому\n" +"этой программой. В этом случае результаты будут неверными и\n" +"установленный PostgreSQL будет несовместим с этим каталогом данных." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не удалось записать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -42,7 +142,12 @@ msgstr "неверное значение \"%s\" для параметра %s" msgid "%s must be in range %d..%d" msgstr "значение %s должно быть в диапазоне %d..%d" -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: pg_checksums.c:70 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database " @@ -53,17 +158,17 @@ msgstr "" "PostgreSQL.\n" "\n" -#: pg_checksums.c:80 +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [ПАРАМЕТР]... [КАТАЛОГ]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format msgid "" "\n" @@ -72,29 +177,29 @@ msgstr "" "\n" "Параметры:\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr "" " -c, --check проверить контрольные суммы данных (по " "умолчанию)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable отключить контрольные суммы\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable включить контрольные суммы\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, c-format msgid "" " -f, --filenode=FILENODE check only relation with specified filenode\n" @@ -102,7 +207,7 @@ msgstr "" " -f, --filenode=ФАЙЛ_УЗЕЛ проверить только отношение с заданным файловым " "узлом\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written safely to " @@ -110,27 +215,32 @@ msgid "" msgstr "" " -N, --no-sync не ждать завершения сохранения данных на диске\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress показывать прогресс операции\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose выводить подробные сообщения\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format msgid "" "\n" @@ -144,37 +254,32 @@ msgstr "" "переменной окружения PGDATA.\n" "\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld МБ (%d%%) обработано" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "не удалось прочитать блок %u в файле \"%s\": %m" -#: pg_checksums.c:217 +#: pg_checksums.c:209 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "не удалось прочитать блок %u в файле \"%s\" (прочитано байт: %d из %d)" -#: pg_checksums.c:240 +#: pg_checksums.c:232 #, c-format msgid "" "checksum verification failed in file \"%s\", block %u: calculated checksum " @@ -183,82 +288,72 @@ msgstr "" "ошибка контрольных сумм в файле \"%s\", блоке %u: вычислена контрольная " "сумма %X, но блок содержит %X" -#: pg_checksums.c:263 +#: pg_checksums.c:255 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "ошибка при переходе к блоку %u в файле \"%s\": %m" -#: pg_checksums.c:270 +#: pg_checksums.c:262 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "не удалось записать блок %u в файл \"%s\": %m" -#: pg_checksums.c:273 +#: pg_checksums.c:265 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "не удалось записать блок %u в файле \"%s\" (записано байт: %d из %d)" -#: pg_checksums.c:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "контрольные суммы в файле \"%s\" проверены" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "контрольные суммы в файле \"%s\" включены" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не удалось открыть каталог \"%s\": %m" - -#: pg_checksums.c:346 pg_checksums.c:415 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "не удалось получить информацию о файле \"%s\": %m" - -#: pg_checksums.c:370 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "неверный номер сегмента %d в имени файла \"%s\"" -#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:546 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_checksums.c:527 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_checksums.c:536 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_checksums.c:545 +#: pg_checksums.c:542 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "параметр -f/--filenode можно использовать только с --check" -#: pg_checksums.c:553 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "ошибка контрольного значения в pg_control" -#: pg_checksums.c:556 +#: pg_checksums.c:553 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "кластер несовместим с этой версией pg_checksums" -#: pg_checksums.c:560 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "несовместимый кластер баз данных" -#: pg_checksums.c:561 +#: pg_checksums.c:558 #, c-format msgid "" "The database cluster was initialized with block size %u, but pg_checksums " @@ -267,77 +362,77 @@ msgstr "" "Кластер баз данных был инициализирован с размером блока %u, а утилита " "pg_checksums скомпилирована для размера блока %u." -#: pg_checksums.c:573 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "кластер должен быть отключён" -#: pg_checksums.c:577 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "контрольные суммы в кластере не включены" -#: pg_checksums.c:581 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "контрольные суммы в кластере уже отключены" -#: pg_checksums.c:585 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "контрольные суммы в кластере уже включены" -#: pg_checksums.c:609 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "Обработка контрольных сумм завершена\n" -#: pg_checksums.c:610 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "Просканировано файлов: %lld\n" -#: pg_checksums.c:611 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Просканировано блоков: %lld\n" -#: pg_checksums.c:614 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "Неверные контрольные суммы: %lld\n" -#: pg_checksums.c:615 pg_checksums.c:647 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "Версия контрольных сумм данных: %u\n" -#: pg_checksums.c:622 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "Записано файлов: %lld\n" -#: pg_checksums.c:623 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "Записано блоков: %lld\n" -#: pg_checksums.c:639 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "синхронизация каталога данных" -#: pg_checksums.c:643 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "модификация управляющего файла" -#: pg_checksums.c:649 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Контрольные суммы в кластере включены\n" -#: pg_checksums.c:651 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Контрольные суммы в кластере отключены\n" diff --git a/src/bin/pg_checksums/po/sv.po b/src/bin/pg_checksums/po/sv.po index 8e92a9e5443b1..245aa1722ae29 100644 --- a/src/bin/pg_checksums/po/sv.po +++ b/src/bin/pg_checksums/po/sv.po @@ -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, 2021, 2022. +# Dennis Björklund , 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-09 18:52+0000\n" -"PO-Revision-Date: 2022-05-09 21:46+0200\n" +"POT-Creation-Date: 2024-07-12 14:25+0000\n" +"PO-Revision-Date: 2024-07-12 18:57+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,26 +17,125 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "fel: " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "varning: " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "detalj: " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "tips: " +#: ../../common/controldata_utils.c:97 +#, 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:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "kunde inte stänga fil \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"möjligt fel i byteordning\n" +"Den byteordning som filen från pg_control lagrats med passar kanske\n" +"inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" +"och PostgreSQL-installationen vara inkompatibel med databaskatalogen." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "kunde inte skriva fil \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -47,7 +146,12 @@ msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" msgid "%s must be in range %d..%d" msgstr "%s måste vara i intervallet %d..%d" -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: pg_checksums.c:70 #, c-format msgid "" "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" @@ -56,17 +160,17 @@ msgstr "" "%s slår på, slår av eller verifierar datakontrollsummor i ett PostgreSQL databaskluster.\n" "\n" -#: pg_checksums.c:80 +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [FLAGGA]... [DATAKATALOG]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format msgid "" "\n" @@ -75,57 +179,62 @@ msgstr "" "\n" "Flaggor:\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATAKAT datakatalog\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check kontrollera datakontrollsummor (standard)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable slå av datakontrollsummor\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable slå på datakontrollsummor\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" msgstr " -f, --filenode=FILNOD kontrollera bara relation med angiven filnod\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, 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 ändingar säkert skrivits till disk\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress visa förloppsinformation\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" msgstr " -v, --verbose visa utförliga meddelanden\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format msgid "" "\n" @@ -138,192 +247,177 @@ msgstr "" "PGDATA för detta syfte.\n" "\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapportera fel till <%s>.\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld MB (%d%%) beräknad" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, 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:217 +#: pg_checksums.c:209 #, 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:232 #, 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:263 +#: pg_checksums.c:255 #, 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:270 +#: pg_checksums.c:262 #, 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:273 +#: pg_checksums.c:265 #, 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:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "kontrollsummor verifierade i fil \"%s\"" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "kontrollsummor påslagen i fil \"%s\"" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "kunde inte öppna katalog \"%s\": %m" - -#: pg_checksums.c:342 pg_checksums.c:415 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "kunde inte göra stat() på fil \"%s\": %m" - -#: pg_checksums.c:366 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "ogiltigt segmentnummer %d i filnamn \"%s\"" -#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:546 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_checksums.c:527 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_checksums.c:536 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_checksums.c:545 +#: pg_checksums.c:542 #, 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:553 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "pg_control CRC-värde är inkorrekt" -#: pg_checksums.c:556 +#: pg_checksums.c:553 #, 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:560 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "databasklustret är inte kompatibelt" -#: pg_checksums.c:561 +#: pg_checksums.c:558 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "Databasklustret initierades med blockstorlek %u men pg_checksums kompilerades med blockstorlek %u." -#: pg_checksums.c:573 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "klustret måste stängas ner" -#: pg_checksums.c:577 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "datakontrollsummor är inte påslaget i klustret" -#: pg_checksums.c:581 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "datakontrollsummor är redan avslaget i klustret" -#: pg_checksums.c:585 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "datakontrollsummor är redan påslagna i klustret" -#: pg_checksums.c:609 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "Kontrollsummeoperation avslutad\n" -#: pg_checksums.c:610 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "Skannade filer: %lld\n" -#: pg_checksums.c:611 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Skannade block: %lld\n" -#: pg_checksums.c:614 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "Felaktiga kontrollsummor: %lld\n" -#: pg_checksums.c:615 pg_checksums.c:647 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "Datakontrollsummeversion: %u\n" -#: pg_checksums.c:622 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "Skrivna filer: %lld\n" -#: pg_checksums.c:623 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "Skrivna block: %lld\n" -#: pg_checksums.c:639 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "synkar datakatalogen" -#: pg_checksums.c:643 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "uppdaterar kontrollfil" -#: pg_checksums.c:649 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Kontrollsummor påslaget i klustret\n" -#: pg_checksums.c:651 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Kontrollsummor avslaget i klustret\n" diff --git a/src/bin/pg_checksums/po/uk.po b/src/bin/pg_checksums/po/uk.po index f27bd1ec3e9a2..747d6867562a4 100644 --- a/src/bin/pg_checksums/po/uk.po +++ b/src/bin/pg_checksums/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:52+0000\n" -"PO-Revision-Date: 2023-09-05 10:04+0200\n" +"POT-Creation-Date: 2024-08-31 06:25+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_checksums.pot\n" -"X-Crowdin-File-ID: 888\n" +"X-Crowdin-File: /REL_17_STABLE/pg_checksums.pot\n" +"X-Crowdin-File-ID: 1000\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,6 +37,101 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" + +#: ../../common/controldata_utils.c:110 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "неможливо закрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "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." +msgstr "можлива помилка у послідовності байтів.\n" +"Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_checksums.c:192 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не вдалося записати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: pg_checksums.c:338 pg_checksums.c:407 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_checksums.c:310 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: ../../fe_utils/option_utils.c:69 #, c-format msgid "invalid value \"%s\" for option %s" @@ -47,282 +142,268 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" -#: pg_checksums.c:79 +#: ../../fe_utils/option_utils.c:106 #, c-format -msgid "" -"%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n" -"\n" -msgstr "" -"%s активує, деактивує або перевіряє контрольні суми даних в кластері бази даних PostgreSQL.\n" -"\n" +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" -#: pg_checksums.c:80 +#: pg_checksums.c:70 +#, c-format +msgid "%s enables, disables, or verifies data checksums in a PostgreSQL database cluster.\n\n" +msgstr "%s активує, деактивує або перевіряє контрольні суми даних в кластері бази даних PostgreSQL.\n\n" + +#: pg_checksums.c:71 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_checksums.c:81 +#: pg_checksums.c:72 #, c-format msgid " %s [OPTION]... [DATADIR]\n" msgstr " %s [OPTION]... [DATADIR]\n" -#: pg_checksums.c:82 +#: pg_checksums.c:73 #, c-format -msgid "" -"\n" +msgid "\n" "Options:\n" -msgstr "" -"\n" +msgstr "\n" "Параметри:\n" -#: pg_checksums.c:83 +#: pg_checksums.c:74 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR каталог даних\n" +msgstr " [-D, --pgdata=]DATADIR каталог даних\n" -#: pg_checksums.c:84 +#: pg_checksums.c:75 #, c-format msgid " -c, --check check data checksums (default)\n" msgstr " -c, --check перевірити контрольні суми даних (за замовчуванням)\n" -#: pg_checksums.c:85 +#: pg_checksums.c:76 #, c-format msgid " -d, --disable disable data checksums\n" msgstr " -d, --disable вимкнути контрольні суми даних\n" -#: pg_checksums.c:86 +#: pg_checksums.c:77 #, c-format msgid " -e, --enable enable data checksums\n" msgstr " -e, --enable активувати контрольні суми даних\n" -#: pg_checksums.c:87 +#: pg_checksums.c:78 #, c-format msgid " -f, --filenode=FILENODE check only relation with specified filenode\n" -msgstr " -f, --filenode=FILENODE перевіряти відношення лише із вказаним файлом\n" +msgstr " -f, --filenode=FILENODE перевіряти відношення лише із вказаним файлом\n" -#: pg_checksums.c:88 +#: pg_checksums.c:79 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" -msgstr " -N, --no-sync не чекати на безпечний запис змін на диск\n" +msgstr " -N, --no-sync не чекати на безпечний запис змін на диск\n" -#: pg_checksums.c:89 +#: pg_checksums.c:80 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress показати інформацію про прогрес\n" -#: pg_checksums.c:90 +#: pg_checksums.c:81 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод синхронізації файлів на диск\n" + +#: pg_checksums.c:82 #, c-format msgid " -v, --verbose output verbose messages\n" -msgstr " -v, --verbose виводити детальні повідомлення\n" +msgstr " -v, --verbose виводити детальні повідомлення\n" -#: pg_checksums.c:91 +#: pg_checksums.c:83 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_checksums.c:92 +#: pg_checksums.c:84 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: pg_checksums.c:93 +#: pg_checksums.c:85 #, c-format -msgid "" -"\n" +msgid "\n" "If no data directory (DATADIR) is specified, the environment variable PGDATA\n" -"is used.\n" -"\n" -msgstr "" -"\n" -"Якщо каталог даних не вказано (DATADIR), використовується змінна середовища PGDATA.\n" -"\n" +"is used.\n\n" +msgstr "\n" +"Якщо каталог даних не вказано (DATADIR), використовується змінна середовища PGDATA.\n\n" -#: pg_checksums.c:95 +#: pg_checksums.c:87 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Повідомляти про помилки на <%s>.\n" -#: pg_checksums.c:96 +#: pg_checksums.c:88 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_checksums.c:153 +#: pg_checksums.c:145 #, c-format msgid "%lld/%lld MB (%d%%) computed" msgstr "%lld/%lld MB (%d%%) обчислено" -#: pg_checksums.c:200 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" - -#: pg_checksums.c:214 +#: pg_checksums.c:206 #, c-format msgid "could not read block %u in file \"%s\": %m" msgstr "не вдалося прочитати блок %u в файлі \"%s\": %m" -#: pg_checksums.c:217 +#: pg_checksums.c:209 #, c-format msgid "could not read block %u in file \"%s\": read %d of %d" msgstr "не вдалося прочитати блок %u у файлі \"%s\": прочитано %d з %d" -#: pg_checksums.c:240 +#: pg_checksums.c:232 #, c-format msgid "checksum verification failed in file \"%s\", block %u: calculated checksum %X but block contains %X" msgstr "помилка перевірки контрольних сум у файлі \"%s\", блок %u: обчислена контрольна сума %X, але блок містить %X" -#: pg_checksums.c:263 +#: pg_checksums.c:255 #, c-format msgid "seek failed for block %u in file \"%s\": %m" msgstr "помилка пошуку для блоку %u у файлі \"%s\": %m" -#: pg_checksums.c:270 +#: pg_checksums.c:262 #, c-format msgid "could not write block %u in file \"%s\": %m" msgstr "не вдалося записати блок %u у файл \"%s\": %m" -#: pg_checksums.c:273 +#: pg_checksums.c:265 #, c-format msgid "could not write block %u in file \"%s\": wrote %d of %d" msgstr "не вдалося записати блок %u у файлі \"%s\": записано %d з %d" -#: pg_checksums.c:285 +#: pg_checksums.c:277 #, c-format msgid "checksums verified in file \"%s\"" msgstr "контрольні суми у файлі \"%s\" перевірені" -#: pg_checksums.c:287 +#: pg_checksums.c:279 #, c-format msgid "checksums enabled in file \"%s\"" msgstr "контрольні суми у файлі \"%s\" активовані" -#: pg_checksums.c:318 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не вдалося відкрити каталог \"%s\": %m" - -#: pg_checksums.c:342 pg_checksums.c:415 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" - -#: pg_checksums.c:366 +#: pg_checksums.c:362 #, c-format msgid "invalid segment number %d in file name \"%s\"" msgstr "неприпустимий номер сегменту %d в імені файлу \"%s\"" -#: pg_checksums.c:512 pg_checksums.c:528 pg_checksums.c:538 pg_checksums.c:546 +#: pg_checksums.c:509 pg_checksums.c:525 pg_checksums.c:535 pg_checksums.c:543 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_checksums.c:527 +#: pg_checksums.c:524 #, c-format msgid "no data directory specified" msgstr "каталог даних не вказано" -#: pg_checksums.c:536 +#: pg_checksums.c:533 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_checksums.c:545 +#: pg_checksums.c:542 #, c-format msgid "option -f/--filenode can only be used with --check" msgstr "параметр -f/--filenode може бути використаний тільки з --check" -#: pg_checksums.c:553 +#: pg_checksums.c:550 #, c-format msgid "pg_control CRC value is incorrect" msgstr "значення CRC pg_control неправильне" -#: pg_checksums.c:556 +#: pg_checksums.c:553 #, c-format msgid "cluster is not compatible with this version of pg_checksums" msgstr "кластер не сумісний з цією версією pg_checksum" -#: pg_checksums.c:560 +#: pg_checksums.c:557 #, c-format msgid "database cluster is not compatible" msgstr "кластер бази даних не сумісний" -#: pg_checksums.c:561 +#: pg_checksums.c:558 #, c-format msgid "The database cluster was initialized with block size %u, but pg_checksums was compiled with block size %u." msgstr "Кластер бази даних було ініціалізовано з розміром блоку %u, але pg_checksums було скомпільовано з розміром блоку %u." -#: pg_checksums.c:573 +#: pg_checksums.c:570 #, c-format msgid "cluster must be shut down" msgstr "кластер повинен бути закритий" -#: pg_checksums.c:577 +#: pg_checksums.c:574 #, c-format msgid "data checksums are not enabled in cluster" msgstr "контрольні суми в кластері неактивовані" -#: pg_checksums.c:581 +#: pg_checksums.c:578 #, c-format msgid "data checksums are already disabled in cluster" msgstr "контрольні суми вже неактивовані в кластері" -#: pg_checksums.c:585 +#: pg_checksums.c:582 #, c-format msgid "data checksums are already enabled in cluster" msgstr "контрольні суми вже активовані в кластері" -#: pg_checksums.c:609 +#: pg_checksums.c:606 #, c-format msgid "Checksum operation completed\n" msgstr "Операція контрольної суми завершена\n" -#: pg_checksums.c:610 +#: pg_checksums.c:607 #, c-format msgid "Files scanned: %lld\n" msgstr "Файлів проскановано: %lld\n" -#: pg_checksums.c:611 +#: pg_checksums.c:608 #, c-format msgid "Blocks scanned: %lld\n" msgstr "Блоків відскановано: %lld\n" -#: pg_checksums.c:614 +#: pg_checksums.c:611 #, c-format msgid "Bad checksums: %lld\n" msgstr "Помилкові контрольні суми: %lld\n" -#: pg_checksums.c:615 pg_checksums.c:647 +#: pg_checksums.c:612 pg_checksums.c:644 #, c-format msgid "Data checksum version: %u\n" msgstr "Версія контрольних сум даних: %u\n" -#: pg_checksums.c:622 +#: pg_checksums.c:619 #, c-format msgid "Files written: %lld\n" msgstr "Файлів записано: %lld\n" -#: pg_checksums.c:623 +#: pg_checksums.c:620 #, c-format msgid "Blocks written: %lld\n" msgstr "Блоків записано: %lld\n" -#: pg_checksums.c:639 +#: pg_checksums.c:636 #, c-format msgid "syncing data directory" msgstr "синхронізація даних каталогу" -#: pg_checksums.c:643 +#: pg_checksums.c:640 #, c-format msgid "updating control file" msgstr "оновлення контрольного файлу" -#: pg_checksums.c:649 +#: pg_checksums.c:646 #, c-format msgid "Checksums enabled in cluster\n" msgstr "Контрольні суми активовані в кластері\n" -#: pg_checksums.c:651 +#: pg_checksums.c:648 #, c-format msgid "Checksums disabled in cluster\n" msgstr "Контрольні суми вимкнені у кластері\n" + diff --git a/src/bin/pg_combinebackup/copy_file.c b/src/bin/pg_combinebackup/copy_file.c index b0c94f6ee311b..db6c86223bbda 100644 --- a/src/bin/pg_combinebackup/copy_file.c +++ b/src/bin/pg_combinebackup/copy_file.c @@ -330,7 +330,7 @@ copy_file_link(const char *src, const char *dest, pg_checksum_context *checksum_ctx) { if (link(src, dest) < 0) - pg_fatal("error while linking file from \"%s\" to \"%s\": %m", + pg_fatal("could not create link from \"%s\" to \"%s\": %m", src, dest); /* if needed, calculate checksum of the file */ diff --git a/src/bin/pg_combinebackup/copy_file.h b/src/bin/pg_combinebackup/copy_file.h index 5a8517629c72c..3779edd567793 100644 --- a/src/bin/pg_combinebackup/copy_file.h +++ b/src/bin/pg_combinebackup/copy_file.h @@ -11,7 +11,6 @@ #ifndef COPY_FILE_H #define COPY_FILE_H -#include "c.h" #include "common/checksum_helper.h" /* diff --git a/src/bin/pg_combinebackup/pg_combinebackup.c b/src/bin/pg_combinebackup/pg_combinebackup.c index d61bde42f498b..28e58cd8ef458 100644 --- a/src/bin/pg_combinebackup/pg_combinebackup.c +++ b/src/bin/pg_combinebackup/pg_combinebackup.c @@ -24,6 +24,7 @@ #include #endif +#include "access/xlog_internal.h" #include "backup_label.h" #include "common/checksum_helper.h" #include "common/controldata_utils.h" @@ -300,7 +301,7 @@ main(int argc, char *argv[]) { char *controlpath; - controlpath = psprintf("%s/%s", prior_backup_dirs[i], "global/pg_control"); + controlpath = psprintf("%s/%s", prior_backup_dirs[i], XLOG_CONTROL_FILE); pg_fatal("%s: manifest system identifier is %" PRIu64 ", but control file has %" PRIu64, controlpath, @@ -431,7 +432,7 @@ main(int argc, char *argv[]) /* Warn about the possibility of compromising the backups, when link mode */ if (opt.copy_method == COPY_METHOD_LINK) pg_log_warning("--link mode was used; any modifications to the output " - "directory may destructively modify input directories"); + "directory might destructively modify input directories"); /* It's a success, so don't remove the output directories. */ reset_directory_cleanup_list(); @@ -614,7 +615,7 @@ check_control_files(int n_backups, char **backup_dirs) bool crc_ok; char *controlpath; - controlpath = psprintf("%s/%s", backup_dirs[i], "global/pg_control"); + controlpath = psprintf("%s/%s", backup_dirs[i], XLOG_CONTROL_FILE); pg_log_debug("reading \"%s\"", controlpath); control_file = get_controlfile_by_exact_path(controlpath, &crc_ok); @@ -813,7 +814,7 @@ parse_oid(char *s, Oid *result) * Copy files from the input directory to the output directory, reconstructing * full files from incremental files as required. * - * If processing is a user-defined tablespace, the tsoid should be the OID + * If processing a user-defined tablespace, the tsoid should be the OID * of that tablespace and input_directory and output_directory should be the * toplevel input and output directories for that tablespace. Otherwise, * tsoid should be InvalidOid and input_directory and output_directory should @@ -825,7 +826,7 @@ parse_oid(char *s, Oid *result) * * n_prior_backups is the number of prior backups that we have available. * This doesn't count the very last backup, which is referenced by - * output_directory, just the older ones. prior_backup_dirs is an array of + * input_directory, just the older ones. prior_backup_dirs is an array of * the locations of those previous backups. */ static void diff --git a/src/bin/pg_combinebackup/po/LINGUAS b/src/bin/pg_combinebackup/po/LINGUAS index c675cfe1c72a6..a6af4f7c83594 100644 --- a/src/bin/pg_combinebackup/po/LINGUAS +++ b/src/bin/pg_combinebackup/po/LINGUAS @@ -1 +1 @@ -de ja ka +de es fr ja ka ko ru sv uk diff --git a/src/bin/pg_combinebackup/po/de.po b/src/bin/pg_combinebackup/po/de.po index 8a6b57b9db42d..7b7966539b9fd 100644 --- a/src/bin/pg_combinebackup/po/de.po +++ b/src/bin/pg_combinebackup/po/de.po @@ -1,13 +1,13 @@ # German message translation file for pg_combinebackup -# Copyright (C) 2024 PostgreSQL Global Development Group +# Copyright (C) 2025 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_combinebackup (PostgreSQL) package. # msgid "" msgstr "" -"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Project-Id-Version: pg_combinebackup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 16:52+0000\n" -"PO-Revision-Date: 2024-06-22 09:58+0200\n" +"POT-Creation-Date: 2025-04-29 04:22+0000\n" +"PO-Revision-Date: 2025-04-29 08:34+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -15,22 +15,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -40,8 +40,8 @@ msgstr "Tipp: " msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: ../../common/controldata_utils.c:110 copy_file.c:146 load_manifest.c:161 -#: load_manifest.c:199 pg_combinebackup.c:1387 reconstruct.c:527 +#: ../../common/controldata_utils.c:110 copy_file.c:164 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1410 reconstruct.c:540 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" @@ -52,8 +52,8 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: backup_label.c:174 copy_file.c:64 pg_combinebackup.c:526 -#: pg_combinebackup.c:1162 reconstruct.c:356 reconstruct.c:727 +#: backup_label.c:174 copy_file.c:71 pg_combinebackup.c:548 +#: pg_combinebackup.c:1185 reconstruct.c:369 reconstruct.c:740 #: write_manifest.c:187 #, c-format msgid "could not close file \"%s\": %m" @@ -77,31 +77,32 @@ msgstr "" "diesem Fall wären die Ergebnisse unten falsch und die PostgreSQL-Installation\n" "wäre inkompatibel mit diesem Datenverzeichnis." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:62 -#: copy_file.c:135 copy_file.c:167 copy_file.c:171 copy_file.c:218 -#: copy_file.c:258 load_manifest.c:128 pg_combinebackup.c:511 -#: pg_combinebackup.c:1154 reconstruct.c:510 reconstruct.c:625 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 backup_label.c:143 copy_file.c:69 +#: copy_file.c:153 copy_file.c:185 copy_file.c:189 copy_file.c:239 +#: copy_file.c:282 load_manifest.c:128 pg_combinebackup.c:533 +#: pg_combinebackup.c:1177 reconstruct.c:523 reconstruct.c:638 #: write_manifest.c:250 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:746 +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 #: write_manifest.c:260 #, c-format msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" #: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -130,290 +131,294 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:664 -#: pg_combinebackup.c:1118 pg_combinebackup.c:1370 reconstruct.c:199 -#: reconstruct.c:408 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:685 +#: pg_combinebackup.c:1141 pg_combinebackup.c:1393 reconstruct.c:204 +#: reconstruct.c:421 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 -#: pg_combinebackup.c:920 pg_combinebackup.c:1243 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_combinebackup.c:943 pg_combinebackup.c:1266 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" -#: ../../common/jsonapi.c:2121 +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "Parser mit rekursivem Abstieg kann inkrementellen Lexer nicht benutzen." -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "Inkrementeller Parser benötigt inkrementellen Lexer." -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSON zu tief geschachtelt, maximale erlaubte Tiefe ist 6400." -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "Escape-Sequenz »\\%.*s« ist nicht gültig." -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Zeichen mit Wert 0x%02x muss escapt werden." -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "Ende der Eingabe erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "Array-Element oder »]« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "»,« oder »]« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "»:« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "JSON-Wert erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "Die Eingabezeichenkette endete unerwartet." -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "Zeichenkette oder »}« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "»,« oder »}« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "Zeichenkette erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "Token »%.*s« ist ungültig." -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 kann nicht in »text« umgewandelt werden." -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "Nach »\\u« müssen vier Hexadezimalziffern folgen." -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Unicode-Escape-Werte können nicht für Code-Punkt-Werte über 007F verwendet werden, wenn die Kodierung nicht UTF8 ist." -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Unicode-Escape-Wert konnte nicht in die Serverkodierung %s umgewandelt werden." -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicode-High-Surrogate darf nicht auf ein High-Surrogate folgen." -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicode-Low-Surrogate muss auf ein High-Surrogate folgen." -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "Speicher aufgebraucht beim Konstruieren der Fehlerbeschreibung" + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht initialisieren" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "Manifest endete unerwartet" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht aktualisieren" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "unerwarteter Objektstart" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "unerwartetes Objektende" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "unerwarteter Array-Start" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "unerwartetes Array-Ende" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "unerwartete Versionskennzeichnung" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "unbekanntes Feld auf oberster Ebene" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "unerwartetes Feld für Datei" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "unerwartetes Feld für WAL-Bereich" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "unbekanntes Feld für Objekt" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "unerwarteter Skalar" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "Manifestversion ist keine ganze Zahl" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "unerwartete Manifestversion" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" msgstr "Systemidentifikator im Manifest ist keine ganze Zahl" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "fehlender Pfadname" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "sowohl Pfadname als auch kodierter Pfadname angegeben" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "Größenangabe fehlt" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "Prüfsumme ohne Algorithmus" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "konnte Dateinamen nicht dekodieren" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "Dateigröße ist keine ganze Zahl" -#: ../../common/parse_manifest.c:700 pg_combinebackup.c:190 +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:204 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "unbekannter Prüfsummenalgorithmus: »%s«" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "ungültige Prüfsumme für Datei »%s«: »%s«" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "Zeitleiste fehlt" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "Start-LSN fehlt" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "End-LSN fehlt" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "Zeitleiste ist keine ganze Zahl" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "konnte Start-LSN nicht parsen" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "konnte End-LSN nicht parsen" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "mindestens 2 Zeilen erwartet" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "letzte Zeile nicht durch Newline abgeschlossen" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht abschließen" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "Manifest hat keine Prüfsumme" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "ungültige Manifestprüfsumme: »%s«" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "Manifestprüfsumme stimmt nicht überein" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "konnte Backup-Manifest nicht parsen: %s" @@ -463,67 +468,72 @@ msgstr "%s: konnte %s nicht finden" msgid "%s: %s requires %s" msgstr "%s: %s benötigt %s" -#: backup_label.c:162 reconstruct.c:748 write_manifest.c:262 +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 #, c-format msgid "could not write file \"%s\": wrote %d of %d" msgstr "konnte Datei »%s« nicht schreiben: %d von %d geschrieben" -#: backup_label.c:166 copy_file.c:142 copy_file.c:189 reconstruct.c:708 -#: reconstruct.c:754 write_manifest.c:270 +#: backup_label.c:166 copy_file.c:160 copy_file.c:207 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 #, c-format msgid "could not update checksum of file \"%s\"" msgstr "konnte Prüfsumme der Datei »%s« nicht aktualisieren" -#: copy_file.c:182 +#: copy_file.c:200 #, c-format msgid "could not write to file \"%s\": %m" msgstr "konnte nicht in Datei »%s« schreiben: %m" -#: copy_file.c:184 +#: copy_file.c:202 #, c-format msgid "could not write to file \"%s\", offset %u: wrote %d of %d" msgstr "konnte nicht in Datei »%s«, Position %u schreiben: %d von %d geschrieben" -#: copy_file.c:195 reconstruct.c:771 +#: copy_file.c:213 reconstruct.c:784 #, c-format msgid "could not read from file \"%s\": %m" msgstr "konnte nicht aus Datei »%s« lesen: %m" -#: copy_file.c:214 +#: copy_file.c:232 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %m" msgstr "Fehler beim Klonen von Datei »%s« nach »%s«: %m" -#: copy_file.c:222 copy_file.c:262 +#: copy_file.c:243 copy_file.c:286 #, c-format msgid "could not create file \"%s\": %m" msgstr "konnte Datei »%s« nicht erstellen: %m" -#: copy_file.c:230 +#: copy_file.c:251 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %s" msgstr "Fehler beim Klonen von Datei »%s« nach »%s«: %s" -#: copy_file.c:235 pg_combinebackup.c:239 +#: copy_file.c:259 pg_combinebackup.c:256 #, c-format msgid "file cloning not supported on this platform" msgstr "Klonen von Dateien wird auf dieser Plattform nicht unterstützt" -#: copy_file.c:268 reconstruct.c:691 +#: copy_file.c:292 reconstruct.c:704 #, c-format msgid "error while copying file range from \"%s\" to \"%s\": %m" msgstr "Fehler beim Kopieren von Dateibereich von »%s« nach »%s«: %m" -#: copy_file.c:275 pg_combinebackup.c:252 reconstruct.c:711 +#: copy_file.c:299 pg_combinebackup.c:269 reconstruct.c:724 #, c-format msgid "copy_file_range not supported on this platform" msgstr "copy_file_range wird auf dieser Plattform nicht unterstützt" -#: copy_file.c:290 +#: copy_file.c:314 #, c-format msgid "could not copy file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht nach »%s« kopieren: %m" +#: copy_file.c:333 +#, c-format +msgid "could not create link from \"%s\" to \"%s\": %m" +msgstr "konnte Verknüpfung von »%s« nach »%s« nicht erzeugen: %m" + #: load_manifest.c:125 #, c-format msgid "file \"%s\" does not exist" @@ -539,147 +549,152 @@ msgstr "konnte Datei »%s« nicht lesen: %d von %lld gelesen" msgid "could not read file \"%s\": read %lld of %lld" msgstr "konnte Datei »%s« nicht lesen: %lld von %lld gelesen" -#: load_manifest.c:249 +#: load_manifest.c:248 #, c-format msgid "backup manifest version 1 does not support incremental backup" msgstr "Backup-Manifest Version 1 unterstützt kein inkrementelles Backup" -#: load_manifest.c:281 +#: load_manifest.c:280 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "doppelter Pfadname im Backup-Manifest: »%s«" -#: pg_combinebackup.c:208 pg_combinebackup.c:216 +#: pg_combinebackup.c:225 pg_combinebackup.c:233 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_combinebackup.c:215 +#: pg_combinebackup.c:232 #, c-format msgid "no input directories specified" msgstr "keine Eingabeverzeichnisse angegeben" -#: pg_combinebackup.c:221 +#: pg_combinebackup.c:238 #, c-format msgid "no output directory specified" msgstr "kein Ausgabeverzeichnis angegeben" -#: pg_combinebackup.c:289 +#: pg_combinebackup.c:306 #, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: Systemidentifikator im Manifest ist %llu, aber Kontrolldatei hat %llu" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: Systemidentifikator im Manifest ist %, aber Kontrolldatei hat %" -#: pg_combinebackup.c:328 +#: pg_combinebackup.c:345 #, c-format -msgid "can't generate a manifest because no manifest is available for the final input backup" +msgid "cannot generate a manifest because no manifest is available for the final input backup" msgstr "kann kein Manifest erzeugen, weil kein Manifest für das letzte Eingabe-Backup verfügbar ist" -#: pg_combinebackup.c:375 +#: pg_combinebackup.c:392 #, 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_combinebackup.c:387 pg_combinebackup.c:718 pg_combinebackup.c:914 +#: pg_combinebackup.c:404 pg_combinebackup.c:739 pg_combinebackup.c:937 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: pg_combinebackup.c:442 +#: pg_combinebackup.c:434 +#, c-format +msgid "--link mode was used; any modifications to the output directory might destructively modify input directories" +msgstr "Modus --link wurde verwendet; Änderungen am Ausgabeverzeichnis könnten die Eingabeverzeichnisse destruktiv verändern" + +#: pg_combinebackup.c:464 #, c-format msgid "directory name too long" msgstr "Verzeichnisname zu lang" -#: pg_combinebackup.c:449 +#: pg_combinebackup.c:471 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "mehrere »=«-Zeichen im Tablespace-Mapping" -#: pg_combinebackup.c:457 +#: pg_combinebackup.c:479 #, 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_combinebackup.c:468 pg_combinebackup.c:472 +#: pg_combinebackup.c:490 pg_combinebackup.c:494 #, 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_combinebackup.c:541 +#: pg_combinebackup.c:563 #, c-format msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" msgstr "Backup in »%s« ist ein volles Backup, aber nur das erste Backup sollte ein volles Backup sein" -#: pg_combinebackup.c:544 +#: pg_combinebackup.c:566 #, c-format msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" msgstr "Backup in »%s« ist ein inkrementelles Backup, aber das erste Backup sollte ein volles Backup sein" -#: pg_combinebackup.c:547 +#: pg_combinebackup.c:569 #, c-format msgid "backup at \"%s\" starts on timeline %u, but expected %u" msgstr "Backup in »%s« startet auf Zeitleiste %u, aber %u wurde erwartet" -#: pg_combinebackup.c:550 +#: pg_combinebackup.c:572 #, c-format msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" msgstr "Backup in »%s« startet bei LSN %X/%X, aber %X/%X wurde erwartet" -#: pg_combinebackup.c:602 +#: pg_combinebackup.c:624 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRC ist falsch" -#: pg_combinebackup.c:606 +#: pg_combinebackup.c:628 #, c-format msgid "%s: unexpected control file version" msgstr "%s: unerwartete Kontrolldateiversion" -#: pg_combinebackup.c:613 +#: pg_combinebackup.c:635 #, c-format -msgid "%s: expected system identifier %llu, but found %llu" -msgstr "%s: Systemidentifikator %llu erwartet, aber %llu gefunden" +msgid "%s: expected system identifier %, but found %" +msgstr "%s: Systemidentifikator % erwartet, aber % gefunden" -#: pg_combinebackup.c:645 +#: pg_combinebackup.c:666 #, c-format msgid "only some backups have checksums enabled" msgstr "nur einige Sicherungen haben Prüfsummen aktiviert" -#: pg_combinebackup.c:646 +#: pg_combinebackup.c:667 #, c-format -msgid "disable, and optionally reenable, checksums on the output directory to avoid failures" -msgstr "schalten Sie für das Ausgabeverzeichnis Prüfsummen aus, und optional wieder an, um Fehler zu vermeiden" +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "Schalten Sie für das Ausgabeverzeichnis Prüfsummen aus, und optional wieder an, um Fehler zu vermeiden." -#: pg_combinebackup.c:681 +#: pg_combinebackup.c:702 #, c-format msgid "removing output directory \"%s\"" msgstr "Ausgabeverzeichnis »%s« wird entfernt" -#: pg_combinebackup.c:683 +#: pg_combinebackup.c:704 #, c-format msgid "failed to remove output directory" msgstr "konnte Ausgabeverzeichnis nicht entfernen" -#: pg_combinebackup.c:687 +#: pg_combinebackup.c:708 #, c-format msgid "removing contents of output directory \"%s\"" msgstr "entferne Inhalt des Ausgabeverzeichnisses »%s«" -#: pg_combinebackup.c:690 +#: pg_combinebackup.c:711 #, c-format msgid "failed to remove contents of output directory" msgstr "konnte Inhalt des Ausgabeverzeichnisses nicht entfernen" -#: pg_combinebackup.c:730 +#: pg_combinebackup.c:751 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "Verzeichnis »%s« existiert aber ist nicht leer" -#: pg_combinebackup.c:733 +#: pg_combinebackup.c:754 #, c-format msgid "could not access directory \"%s\": %m" msgstr "konnte nicht auf Verzeichnis »%s« zugreifen: %m" -#: pg_combinebackup.c:747 +#: pg_combinebackup.c:768 #, c-format msgid "" "%s reconstructs full backups from incrementals.\n" @@ -688,17 +703,17 @@ msgstr "" "%s rekonstruiert volle Backups aus inkrementellen.\n" "\n" -#: pg_combinebackup.c:748 +#: pg_combinebackup.c:769 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_combinebackup.c:749 +#: pg_combinebackup.c:770 #, c-format msgid " %s [OPTION]... DIRECTORY...\n" msgstr " %s [OPTION]... VERZEICHNIS...\n" -#: pg_combinebackup.c:750 +#: pg_combinebackup.c:771 #, c-format msgid "" "\n" @@ -707,29 +722,34 @@ msgstr "" "\n" "Optionen:\n" -#: pg_combinebackup.c:751 +#: pg_combinebackup.c:772 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug erzeuge eine Menge Debug-Ausgaben\n" -#: pg_combinebackup.c:752 +#: pg_combinebackup.c:773 +#, c-format +msgid " -k, --link link files instead of copying\n" +msgstr " -k, --link Dateien verknüpfen statt kopieren\n" + +#: pg_combinebackup.c:774 #, c-format msgid " -n, --dry-run do not actually do anything\n" msgstr " -n, --dry-run nichts wirklich ausführen\n" -#: pg_combinebackup.c:753 +#: pg_combinebackup.c:775 #, 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_combinebackup.c:754 +#: pg_combinebackup.c:776 #, c-format msgid " -o, --output=DIRECTORY output directory\n" msgstr " -o, --output=VERZEICHNIS Ausgabeverzeichnis\n" -#: pg_combinebackup.c:755 +#: pg_combinebackup.c:777 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -738,17 +758,22 @@ msgstr "" " -T, --tablespace-mapping=ALTES_VERZ=NEUES_VERZ\n" " Tablespace in ALTES_VERZ nach NEUES_VERZ verlagern\n" -#: pg_combinebackup.c:757 +#: pg_combinebackup.c:779 #, c-format -msgid " --clone clone (reflink) instead of copying files\n" +msgid " --clone clone (reflink) files instead of copying\n" msgstr " --clone Dateien klonen (reflink) statt kopieren\n" -#: pg_combinebackup.c:758 +#: pg_combinebackup.c:780 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy Dateien kopieren (Voreinstellung)\n" + +#: pg_combinebackup.c:781 #, c-format -msgid " --copy-file-range copy using copy_file_range() syscall\n" +msgid " --copy-file-range copy using copy_file_range() system call\n" msgstr " --copy-file-range mit Systemaufruf copy_file_range() kopieren\n" -#: pg_combinebackup.c:759 +#: pg_combinebackup.c:782 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -757,29 +782,29 @@ msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " Algorithmus für Manifest-Prüfsummen\n" -#: pg_combinebackup.c:761 +#: pg_combinebackup.c:784 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest Erzeugen des Backup-Manifests unterbinden\n" -#: pg_combinebackup.c:762 +#: pg_combinebackup.c:785 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHODE Methode zum Synchronisieren vond Dateien auf\n" " Festplatte setzen\n" -#: pg_combinebackup.c:763 +#: pg_combinebackup.c:786 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_combinebackup.c:764 +#: pg_combinebackup.c:787 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_combinebackup.c:766 +#: pg_combinebackup.c:789 #, c-format msgid "" "\n" @@ -788,107 +813,107 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_combinebackup.c:767 +#: pg_combinebackup.c:790 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_combinebackup.c:982 +#: pg_combinebackup.c:1005 #, c-format msgid "skipping symbolic link \"%s\"" msgstr "überspringe symbolische Verknüpfung »%s«" -#: pg_combinebackup.c:984 +#: pg_combinebackup.c:1007 #, c-format msgid "skipping special file \"%s\"" msgstr "überspringe besondere Datei »%s«" -#: pg_combinebackup.c:1060 +#: pg_combinebackup.c:1083 reconstruct.c:305 #, c-format -msgid "\"%s\" contains no entry for \"%s\"" -msgstr "»%s« enthält keinen Eintrag für »%s«" +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "Manifestdatei »%s« enthält keinen Eintrag für Datei »%s«" -#: pg_combinebackup.c:1176 +#: pg_combinebackup.c:1199 #, c-format msgid "%s: server version too old" msgstr "%s: Serverversion zu alt" -#: pg_combinebackup.c:1177 +#: pg_combinebackup.c:1200 #, c-format msgid "%s: could not parse version number" msgstr "%s: konnte Versionsnummer nicht parsen" -#: pg_combinebackup.c:1296 +#: pg_combinebackup.c:1319 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht lesen: %m" -#: pg_combinebackup.c:1299 +#: pg_combinebackup.c:1322 #, c-format msgid "target of symbolic link \"%s\" is too long" msgstr "Ziel der symbolischen Verknüpfung »%s« ist zu lang" -#: pg_combinebackup.c:1302 +#: pg_combinebackup.c:1325 #, c-format msgid "target of symbolic link \"%s\" is relative" msgstr "Ziel der symbolischen Verknüpfung »%s« ist relativ" -#: pg_combinebackup.c:1324 +#: pg_combinebackup.c:1347 #, c-format msgid "tablespace at \"%s\" has no tablespace mapping" msgstr "Tablespace in »%s« hat kein Tablespace-Mapping" -#: pg_combinebackup.c:1342 +#: pg_combinebackup.c:1365 #, c-format msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" msgstr "die Tablespaces mit OIDs %u und %u zeigen beide auf Verzeichnis »%s«" -#: pg_combinebackup.c:1351 +#: pg_combinebackup.c:1374 #, c-format msgid "could not close directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht schließen: %m" -#: pg_combinebackup.c:1372 +#: pg_combinebackup.c:1395 #, c-format msgid "file \"%s\" is too large" msgstr "Datei »%s« ist zu groß" -#: pg_combinebackup.c:1389 +#: pg_combinebackup.c:1412 #, c-format msgid "could not read file \"%s\": read %zd of %lld" msgstr "konnte Datei »%s« nicht lesen: %zd von %lld gelesen" -#: reconstruct.c:300 +#: reconstruct.c:339 #, c-format -msgid "manifest file \"%s\" contains no entry for file \"%s\"" -msgstr "Manifestdatei »%s« enthält keinen Eintrag für Datei »%s«" +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "volles Backup enthält unerwartete inkrementelle Datei »%s«" -#: reconstruct.c:410 +#: reconstruct.c:423 #, c-format msgid "file \"%s\" is too short: expected %llu, found %llu" msgstr "Datei »%s« ist zu kurz: %llu erwartet, %llu gefunden" -#: reconstruct.c:452 +#: reconstruct.c:465 #, c-format -msgid "file \"%s\" has bad incremental magic number (0x%x not 0x%x)" -msgstr "Datei »%s« hat falsche magische Zahl für inkrementelles Backup (0x%x, nicht 0x%x)" +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "Datei »%s« hat falsche inkrementelle magische Zahl (0x%x, erwartet 0x%x)" -#: reconstruct.c:458 +#: reconstruct.c:471 #, c-format msgid "file \"%s\" has block count %u in excess of segment size %u" msgstr "Datei »%s« hat Blockzahl %u, was die Segmentgröße %u überschreitet" -#: reconstruct.c:465 +#: reconstruct.c:478 #, c-format msgid "file \"%s\" has truncation block length %u in excess of segment size %u" msgstr "Datei »%s« hat Truncation-Blocklänge %u, was die Segmentgröße %u überschreitet" -#: reconstruct.c:529 +#: reconstruct.c:542 #, c-format msgid "could not read file \"%s\": read %d of %u" msgstr "konnte Datei »%s« nicht lesen: %d von %u gelesen" -#: reconstruct.c:773 +#: reconstruct.c:786 #, c-format msgid "could not read from file \"%s\", offset %llu: read %d of %d" msgstr "konnte nicht aus Datei »%s«, Position %llu lesen: %d von %d gelesen" diff --git a/src/bin/pg_combinebackup/po/es.po b/src/bin/pg_combinebackup/po/es.po new file mode 100644 index 0000000000000..850ef3dde2a0e --- /dev/null +++ b/src/bin/pg_combinebackup/po/es.po @@ -0,0 +1,900 @@ +# Spanish translation file for pg_combinebackup +# +# Copyright (c) 2024, PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# +# Alvaro Herrera , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-11-16 05:22+0000\n" +"PO-Revision-Date: 2024-11-16 09:07+0100\n" +"Last-Translator: Álvaro Herrera \n" +"Language-Team: PgSQL-es-Ayuda \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: BlackCAT 1.1\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "error: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "precaución: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "detalle: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "consejo: " + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" + +#: ../../common/controldata_utils.c:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "no se pudo cerrar el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"posible discordancia en orden de bytes\n" +"El ordenamiento de bytes usado para almacenar el archivo pg_control puede no\n" +"coincidir con el usado por este programa. En tal caso los resultados de abajo\n" +"serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" +"directorio de datos." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "no se pudo escribir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#, c-format +msgid "out of memory" +msgstr "memoria agotada" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "éxito" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "el búfer de destino es demasiado pequeño" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "falla de openSSL" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "El parser recursivo descendiente no puede usar el lexer incremental." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "El parser incremental requiere el lexer incremental." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON anidado demasiado profundamente, profundidad máxima es 6400." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "La secuencia de escape «\\%.*s» no es válida." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "Los caracteres con valor 0x%02x deben ser escapados." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Se esperaba el fin de la entrada, se encontró «%.*s»." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Se esperaba un elemento de array o «]», se encontró «%.*s»." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Se esperaba «,» o «]», se encontró «%.*s»." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Se esperaba «:», se encontró «%.*s»." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Se esperaba un valor JSON, se encontró «%.*s»." + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "La cadena de entrada terminó inesperadamente." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Se esperaba una cadena o «}», se encontró «%.*s»." + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Se esperaba «,» o «}», se encontró «%.*s»." + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "Se esperaba una cadena, se encontró «%.*s»." + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "El elemento «%.*s» no es válido." + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 no puede ser convertido a text." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "«\\u» debe ser seguido por cuatro dígitos hexadecimales." + +#: ../../common/jsonapi.c:2169 +msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." +msgstr "Los valores de escape Unicode no se pueden utilizar para valores de código superiores a 007F cuando la codificación no es UTF8." + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "Unicode escape value could not be translated to the server's encoding %s." +msgstr "El valor de escape Unicode no pudo ser traducido a la codificación del servidor %s." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "Un «high-surrogate» Unicode no puede venir después de un «high-surrogate»." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "Un «low-surrogate» Unicode debe seguir a un «high-surrogate»." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "no se pudo inicializar la suma de verificación del manifiesto" + +#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +msgid "manifest ended unexpectedly" +msgstr "el manifiesto terminó inesperadamente" + +#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#, c-format +msgid "could not update checksum of manifest" +msgstr "no se pudo actualizar la suma de verificación del manifiesto" + +#: ../../common/parse_manifest.c:302 +msgid "unexpected object start" +msgstr "inicio de objeto inesperado" + +#: ../../common/parse_manifest.c:337 +msgid "unexpected object end" +msgstr "fin de objeto inesperado" + +#: ../../common/parse_manifest.c:366 +msgid "unexpected array start" +msgstr "inicio de array inesperado" + +#: ../../common/parse_manifest.c:391 +msgid "unexpected array end" +msgstr "fin de array inesperado" + +#: ../../common/parse_manifest.c:418 +msgid "expected version indicator" +msgstr "se esperaba indicador de versión" + +#: ../../common/parse_manifest.c:454 +msgid "unrecognized top-level field" +msgstr "campo de nivel superior no reconocido" + +#: ../../common/parse_manifest.c:473 +msgid "unexpected file field" +msgstr "campo de archivo inesperado" + +#: ../../common/parse_manifest.c:487 +msgid "unexpected WAL range field" +msgstr "campo de rango de WAL inesperado" + +#: ../../common/parse_manifest.c:493 +msgid "unexpected object field" +msgstr "campo de objeto inesperado" + +#: ../../common/parse_manifest.c:583 +msgid "unexpected scalar" +msgstr "escalar inesperado" + +#: ../../common/parse_manifest.c:609 +msgid "manifest version not an integer" +msgstr "la versión de manifiesto no es un número entero" + +#: ../../common/parse_manifest.c:613 +msgid "unexpected manifest version" +msgstr "versión de manifiesto inesperada" + +#: ../../common/parse_manifest.c:637 +msgid "system identifier in manifest not an integer" +msgstr "el identificador de sistema en el manifiesto no es un número entero" + +#: ../../common/parse_manifest.c:662 +msgid "missing path name" +msgstr "ruta de archivo faltante" + +#: ../../common/parse_manifest.c:665 +msgid "both path name and encoded path name" +msgstr "hay ambos ruta de archivo (path name) y ruta codificada (encoded path name)" + +#: ../../common/parse_manifest.c:667 +msgid "missing size" +msgstr "tamaño faltante" + +#: ../../common/parse_manifest.c:670 +msgid "checksum without algorithm" +msgstr "suma de comprobación sin algoritmo" + +#: ../../common/parse_manifest.c:684 +msgid "could not decode file name" +msgstr "no se pudo decodificar el nombre del archivo" + +#: ../../common/parse_manifest.c:694 +msgid "file size is not an integer" +msgstr "el tamaño del archivo no es un número entero" + +#: ../../common/parse_manifest.c:700 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "algoritmo de suma de comprobación no reconocido: \"%s\"" + +#: ../../common/parse_manifest.c:719 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "suma de comprobación no válida para el archivo \"%s\": \"%s\"" + +#: ../../common/parse_manifest.c:762 +msgid "missing timeline" +msgstr "falta el timeline" + +#: ../../common/parse_manifest.c:764 +msgid "missing start LSN" +msgstr "falta el LSN de inicio" + +#: ../../common/parse_manifest.c:766 +msgid "missing end LSN" +msgstr "falta el LSN de término" + +#: ../../common/parse_manifest.c:772 +msgid "timeline is not an integer" +msgstr "el timeline no es un número entero" + +#: ../../common/parse_manifest.c:775 +msgid "could not parse start LSN" +msgstr "no se pudo interpretar el LSN de inicio" + +#: ../../common/parse_manifest.c:778 +msgid "could not parse end LSN" +msgstr "no se pudo interpretar el LSN de término" + +#: ../../common/parse_manifest.c:843 +msgid "expected at least 2 lines" +msgstr "esperado al menos 2 líneas" + +#: ../../common/parse_manifest.c:846 +msgid "last line not newline-terminated" +msgstr "última línea no termina en nueva línea" + +#: ../../common/parse_manifest.c:865 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "no se pudo finalizar la suma de verificación del manifiesto" + +#: ../../common/parse_manifest.c:869 +#, c-format +msgid "manifest has no checksum" +msgstr "el manifiesto no tiene suma de comprobación" + +#: ../../common/parse_manifest.c:873 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "suma de comprobación de manifiesto no válida: \"%s\"" + +#: ../../common/parse_manifest.c:877 +#, c-format +msgid "manifest checksum mismatch" +msgstr "discordancia en la suma de comprobación del manifiesto" + +#: ../../common/parse_manifest.c:892 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "no se pudo analizar el manifiesto de la copia de seguridad: %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "el valor «%s» no es válido para la opción %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s debe estar en el rango %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método de sync no reconocido: %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s: no se pudo interpretar %s" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s: terminador inapropiado para %s" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s: no se pudo interpretar el TLI para %s" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s: TLI no válido" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s: no se pudo encontrar %s" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s: %s requiere %s" + +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "no se pudo escribir al archivo «%s»: se escribió %d de %d" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "no se pudo actualizar la suma de verificación para el archivo «%s»" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "no se pudo escribir a archivo «%s»: %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "no se pudo escribir al archivo «%s», posición %u: se escribió %d de %d" + +#: copy_file.c:199 reconstruct.c:784 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "error mientras se clonaba el archivo «%s» a «%s»: %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "no se pudo crear archivo «%s»: %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "error mientras se clonaba la relación «%s» a «%s»: %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "el clonado de archivos no está soportado en esta plataforma" + +#: copy_file.c:278 reconstruct.c:704 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "error mientras se copiaba un rango de archivo de «%s» a «%s»: %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:724 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range no está soportado en esta plataforma" + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "no se pudo copiar el archivo de «%s» a «%s»: %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "el archivo «%s» no existe" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %lld" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "no se pudo leer el archivo «%s»: leídos %lld de %lld" + +#: load_manifest.c:249 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "el manifiesto de backup versión 1 no soporta backups incrementales" + +#: load_manifest.c:281 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "nombre de ruta duplicado en el manifiesto de la copia de seguridad: \"%s\"" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Pruebe «%s --help» para mayor información." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "no se especificó un directorio de entrada" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "no se especificó un directorio de salida" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: el identificador de sistema del manifiesto es %llu, pero el archivo de control tiene %llu" + +#: pg_combinebackup.c:340 +#, c-format +msgid "cannot generate a manifest because no manifest is available for the final input backup" +msgstr "no se puede generar un manifiesto porque no hay un manifiesto disponible para el backup final de entrada" + +#: pg_combinebackup.c:387 +#, c-format +msgid "could not create symbolic link from \"%s\" to \"%s\": %m" +msgstr "no se pudo crear un enlace simbólico desde «%s» a «%s»: %m" + +#: pg_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "no se pudo crear el directorio «%s»: %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "nombre de directorio demasiado largo" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "múltiples signos «=» en mapeo de tablespace" + +#: pg_combinebackup.c:469 +#, c-format +msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" +msgstr "formato de mapeo de tablespace «%s» no válido, debe ser «ANTIGUO=NUEVO»" + +#: pg_combinebackup.c:480 pg_combinebackup.c:484 +#, c-format +msgid "old directory is not an absolute path in tablespace mapping: %s" +msgstr "directorio antiguo no es una ruta absoluta en mapeo de tablespace: %s" + +#: pg_combinebackup.c:553 +#, c-format +msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" +msgstr "el backup en «%s» es un backup full, pero sólo el primer backup puede ser full" + +#: pg_combinebackup.c:556 +#, c-format +msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" +msgstr "el backup en «%s» es incremental, pero el primer backup debería ser full" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "el backup en «%s» empieza en el timeline %u, pero se esperaba %u" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "el backup en «%s» empieza en el LSN %X/%X, pero se esperaba %X/%X" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s: el valor de CRC es incorrecto" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s: versión de archivo de control inesperado" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s: se esperaba identificador de sistema %llu, pero se encontró %llu" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "sólo algunos backups tienen checksums activados" + +#: pg_combinebackup.c:658 +#, c-format +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "Desactive (y opcionalmente reactive) los checksums en el directorio de salida para evitar fallos." + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "eliminando el directorio de salida «%s»" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "no se pudo eliminar el directorio de salida" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "eliminando el contenido del directorio de salida «%s»" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "no se pudo eliminar el contenido del directorio de salida" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "el directorio «%s» existe pero no está vacío" + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "no se pudo acceder al directorio «%s»: %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "" +"%s reconstructs full backups from incrementals.\n" +"\n" +msgstr "" +"%s reconstruye backups full desde incrementales.\n" +"\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "Empleo:\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [OPCIÓN]... DIRECTOTIO...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opciones:\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug genera mucha salida de depuración\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr " -n, --dry-run no hacer realmente nada\n" + +#: pg_combinebackup.c:765 +#, c-format +msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" +msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=DIR directorio de salida\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr "" +" -T, --tablespace-mapping=ANTIGUO=NUEVO\n" +" reubicar el tablespace de ANTIGUO a NUEVO\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr " --clone clonar (reflink) archivos en vez de copiarlos\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy copiar archivos (por omisión)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr " --copy-file-range copiar usando la llamada copy_file_range()\n" + +#: pg_combinebackup.c:772 +#, 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" +" usar algoritmo para checksums del manifiesto\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest suprimir generación del manifiesto\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método para sincronizar archivos a disco\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version mostrar información de version y salir\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help mostrar esta ayuda y salir\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Reporte errores a <%s>.\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Sitio web de %s: <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "omitiendo el link simbólico «%s»" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "omitiendo el archivo especial «%s»" + +#: pg_combinebackup.c:1073 reconstruct.c:305 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "el archivo de manifiesto «%s» no contiene una entrada para el archivo «%s»" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s: versión de servidor demasiado antigua" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s: no se pudo interpretar el número de versión" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "no se pudo leer el enlace simbólico «%s»: %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "el destino del enlace simbólico «%s» es demasiado largo" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "el destino del enlace simbólico «%s» es relativo" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "el tablespace en «%s» no tiene mapeo de tablespace" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "los tablespaces con OIDs %u y %u ambos apuntan al directorio «%s»" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "el archivo «%s» es demasiado grande" + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "no se pudo leer el archivo «%s»: leídos %zd de %lld" + +#: reconstruct.c:339 +#, c-format +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "backup «full» contiene archivo incremental «%s» inesperado" + +#: reconstruct.c:423 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "el archivo «%s» es demasiado corto: se esperaban %llu, se encontraron %llu" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "el archivo «%s» tiene número mágico incremental erróneo (0x%x, se esperaba 0x%x)" + +#: reconstruct.c:471 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "el archivo «%s» tiene una cantidad de bloques %u más allá del tamaño de bloque %u" + +#: reconstruct.c:478 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "el archivo «%s» tiene una longitud de truncado de bloque %u en exceso del tamaño de segmento %u" + +#: reconstruct.c:542 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %u" + +#: reconstruct.c:786 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "no se pudo leer del archivo \"%s\", posición %llu: leídos %d de %d" diff --git a/src/bin/pg_combinebackup/po/fr.po b/src/bin/pg_combinebackup/po/fr.po new file mode 100644 index 0000000000000..aa8b0f4ea61f8 --- /dev/null +++ b/src/bin/pg_combinebackup/po/fr.po @@ -0,0 +1,900 @@ +# LANGUAGE message translation file for pg_combinebackup +# Copyright (C) 2024 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_combinebackup (PostgreSQL) package. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-11-11 01:52+0000\n" +"PO-Revision-Date: 2024-11-11 09:55+0100\n" +"Last-Translator: Guillaume Lelarge \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"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.5\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "erreur : " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "attention : " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "détail : " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "astuce : " + +#: ../../common/controldata_utils.c:97 +#, c-format +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:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"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 de PostgreSQL\n" +"est incompatible avec ce répertoire des données." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "impossible d'écrire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#, c-format +msgid "out of memory" +msgstr "mémoire épuisée" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "succès" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "tampon de destination trop petit" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "échec OpenSSL" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "L'analyseur (parser) en descente récursive ne peut pas utiliser l'analyseur (lexer) incrémental." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "L'analyser (parser) incrémental nécessite l'analyseur (lexer) incrémental." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON trop profondément imbriqué, profondeur maximum permise est 6400." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "La séquence d'échappement « \\%.*s » est invalide." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "Le caractère de valeur 0x%02x doit être échappé." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Fin de l'entrée attendue, mais trouvé « %.*s »." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Élément de tableau ou « ] » attendu, mais trouvé « %.*s »." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "« , » ou « ] » attendu, mais trouvé « %.*s »." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "« : » attendu, mais trouvé « %.*s »." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Valeur JSON attendue, mais « %.*s » trouvé." + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "La chaîne en entrée se ferme de manière inattendue." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Chaîne ou « } » attendu, mais « %.*s » trouvé." + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "« , » ou « } » attendu, mais trouvé « %.*s »." + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "Chaîne attendue, mais « %.*s » trouvé." + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "Le jeton « %.*s » n'est pas valide." + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 ne peut pas être converti en texte." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "« \\u » doit être suivi par quatre chiffres hexadécimaux." + +#: ../../common/jsonapi.c:2169 +msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." +msgstr "Les valeurs d'échappement Unicode ne peuvent pas être utilisées pour des valeurs de point code au-dessus de 007F quand l'encodage n'est pas UTF8." + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "Unicode escape value could not be translated to the server's encoding %s." +msgstr "La valeur d'échappement unicode ne peut pas être traduite dans l'encodage du serveur %s." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "Une substitution unicode haute ne doit pas suivre une substitution haute." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "Une substitution unicode basse ne doit pas suivre une substitution haute." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "n'a pas pu initialiser la somme de contrôle du manifeste" + +#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +msgid "manifest ended unexpectedly" +msgstr "le manifeste se termine de façon inattendue" + +#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#, c-format +msgid "could not update checksum of manifest" +msgstr "n'a pas pu mettre à jour la somme de contrôle du manifeste" + +#: ../../common/parse_manifest.c:302 +msgid "unexpected object start" +msgstr "début d'objet inattendu" + +#: ../../common/parse_manifest.c:337 +msgid "unexpected object end" +msgstr "fin d'objet inattendue" + +#: ../../common/parse_manifest.c:366 +msgid "unexpected array start" +msgstr "début de tableau inattendu" + +#: ../../common/parse_manifest.c:391 +msgid "unexpected array end" +msgstr "fin de tableau inattendue" + +#: ../../common/parse_manifest.c:418 +msgid "expected version indicator" +msgstr "indicateur de version inattendu" + +#: ../../common/parse_manifest.c:454 +msgid "unrecognized top-level field" +msgstr "champ haut niveau inconnu" + +#: ../../common/parse_manifest.c:473 +msgid "unexpected file field" +msgstr "champ de fichier inattendu" + +#: ../../common/parse_manifest.c:487 +msgid "unexpected WAL range field" +msgstr "champ d'intervalle de WAL inattendu" + +#: ../../common/parse_manifest.c:493 +msgid "unexpected object field" +msgstr "champ d'objet inattendu" + +#: ../../common/parse_manifest.c:583 +msgid "unexpected scalar" +msgstr "scalaire inattendu" + +#: ../../common/parse_manifest.c:609 +msgid "manifest version not an integer" +msgstr "la version du manifeste n'est pas un entier" + +#: ../../common/parse_manifest.c:613 +msgid "unexpected manifest version" +msgstr "version du manifeste inattendue" + +#: ../../common/parse_manifest.c:637 +msgid "system identifier in manifest not an integer" +msgstr "l'identifieur système dans le manifeste n'est pas un entier" + +#: ../../common/parse_manifest.c:662 +msgid "missing path name" +msgstr "nom de chemin manquant" + +#: ../../common/parse_manifest.c:665 +msgid "both path name and encoded path name" +msgstr "le nom du chemin et le nom du chemin encodé" + +#: ../../common/parse_manifest.c:667 +msgid "missing size" +msgstr "taille manquante" + +#: ../../common/parse_manifest.c:670 +msgid "checksum without algorithm" +msgstr "somme de contrôle sans algorithme" + +#: ../../common/parse_manifest.c:684 +msgid "could not decode file name" +msgstr "n'a pas pu décoder le nom du fichier" + +#: ../../common/parse_manifest.c:694 +msgid "file size is not an integer" +msgstr "la taille du fichier n'est pas un entier" + +#: ../../common/parse_manifest.c:700 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "algorithme de somme de contrôle inconnu : « %s »" + +#: ../../common/parse_manifest.c:719 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "somme de contrôle invalide pour le fichier « %s » : « %s »" + +#: ../../common/parse_manifest.c:762 +msgid "missing timeline" +msgstr "timeline manquante" + +#: ../../common/parse_manifest.c:764 +msgid "missing start LSN" +msgstr "LSN de début manquante" + +#: ../../common/parse_manifest.c:766 +msgid "missing end LSN" +msgstr "LSN de fin manquante" + +#: ../../common/parse_manifest.c:772 +msgid "timeline is not an integer" +msgstr "la timeline n'est pas un entier" + +#: ../../common/parse_manifest.c:775 +msgid "could not parse start LSN" +msgstr "n'a pas pu analyser le LSN de début" + +#: ../../common/parse_manifest.c:778 +msgid "could not parse end LSN" +msgstr "n'a pas pu analyser le LSN de fin" + +#: ../../common/parse_manifest.c:843 +msgid "expected at least 2 lines" +msgstr "attendait au moins deux lignes" + +#: ../../common/parse_manifest.c:846 +msgid "last line not newline-terminated" +msgstr "dernière ligne non terminée avec un caractère newline" + +#: ../../common/parse_manifest.c:865 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "n'a pas pu finaliser la somme de contrôle du manifeste" + +#: ../../common/parse_manifest.c:869 +#, c-format +msgid "manifest has no checksum" +msgstr "le manifeste n'a pas de somme de contrôle" + +#: ../../common/parse_manifest.c:873 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "somme de contrôle du manifeste invalide : « %s »" + +#: ../../common/parse_manifest.c:877 +#, c-format +msgid "manifest checksum mismatch" +msgstr "différence de somme de contrôle pour le manifeste" + +#: ../../common/parse_manifest.c:892 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "n'a pas pu analyser le manifeste de sauvegarde : %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "valeur « %s » invalide pour l'option %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s doit être compris entre %d et %d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s : n'a pas pu analyser %s" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s : mauvais terminateur pour %s" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s : n'a pas pu analyser le TLI pour %s" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s : TLI invalide" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s : n'a pas pu trouver %s" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s : %s requiert %s" + +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "n'a pas pu écrire le fichier « %s » : a écrit %d sur %d" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "n'a pas pu mettre à jour la somme de contrôle du fichier « %s »" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "n'a pas pu écrire dans le fichier « %s » : %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "n'a pas pu écrire dans le fichier « %s », à la position %u : a écrit %d sur %d" + +#: copy_file.c:199 reconstruct.c:784 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "n'a pas pu lire à partir du fichier « %s » : %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "erreur lors du clonage du fichier « %s » en «%s » : %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "n'a pas pu créer le fichier « %s » : %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "erreur lors du clonage du fichier « %s » en «%s » : %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "clonage de fichiers non supporté sur cette plateforme" + +#: copy_file.c:278 reconstruct.c:704 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "erreur lors de l'opération copy_file_range de « %s » à « %s » : %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:724 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range non supporté sur cette plateforme" + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu copier le fichier « %s » en « %s » : %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "le rôle « %s » n'existe pas" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %lld" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "n'a pas pu lire le fichier « %s » : a lu %lld sur %lld" + +#: load_manifest.c:249 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "la version du manifeste de sauvegarde ne permet pas les sauvegardes incrémentales" + +#: load_manifest.c:281 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "nom de chemin dupliqué dans le manifeste de sauvegarde : « %s »" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Essayez « %s --help » pour plus d'informations." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "aucun répertoire en entrée indiqué" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "aucun répertoire cible indiqué" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: l'identifieur système du manifeste est %llu, mais le fichier de contrôle a %llu" + +#: pg_combinebackup.c:340 +#, c-format +msgid "cannot generate a manifest because no manifest is available for the final input backup" +msgstr "ne peut pas générer un manifeste parce qu'aucun manifeste n'est disponible pour la sauvegarde finale en entrée" + +#: pg_combinebackup.c:387 +#, 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_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "n'a pas pu créer le répertoire « %s » : %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "nom du répertoire trop long" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "multiple signes « = » dans la correspondance de tablespace" + +#: pg_combinebackup.c:469 +#, 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_combinebackup.c:480 pg_combinebackup.c:484 +#, 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_combinebackup.c:553 +#, c-format +msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" +msgstr "la sauvegarde à « %s » est une sauvegarde complète, mais seule la première sauvegarde devrait être une sauvegarde complète" + +#: pg_combinebackup.c:556 +#, c-format +msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" +msgstr "la sauvegarde à « %s » est une sauvegarde incrémentale, mais la première sauvegarde devrait être une sauvegarde complète" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "la sauvegarde à « %s » commence à la timeline %u, mais attendait %u" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "la sauvegarde à « %s » commence au LSN %X/%X, mais s'attendait à %X/%X" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s : la valeur CRC n'est pas correcte" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s : version inattendue pour le fichier de contrôle" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s : identifieur système attendu %llu, mais %llu trouvé" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "seules certaines sauvegardes ont les sommes de contrôle activées" + +#: pg_combinebackup.c:658 +#, c-format +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "Désactivez, puis activez si vous le souhaitez, les sommes de contrôle sur le répertoire en sortie pour éviter les échecs" + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "suppression du répertoire en sortie « %s »" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "échec lors de la suppression du répertoire en sortie" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "suppression du contenu du répertoire en sortie « %s »" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "échec lors de la suppression du contenu du répertoire en sortie" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "le répertoire « %s » existe mais n'est pas vide" + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "n'a pas pu accéder au répertoire « %s » : %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "" +"%s reconstructs full backups from incrementals.\n" +"\n" +msgstr "" +"%s reconstruit des sauvegardes complètes à partir de sauvegardes incrémentales.\n" +"\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "Usage :\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [OPTION]... RÉPERTOIRE...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Options :\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug engendre un grand nombre de traces de débogage\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr " -n, --dry-run ne fait rien\n" + +#: pg_combinebackup.c:765 +#, 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\n" +" proprement écrites sur disque\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=RÉPERTOIRE répertoire en sortie\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr "" +" -T, --tablespace-mapping=ANCIENREP=NOUVEAUREP\n" +" déplace le tablespace de ANCIENREP vers NOUVEAUREP\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr " --clone clone (reflink) les fichiers au lieu de les copier\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy copie les fichiers (par défaut)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr " --copy-file-range copie les fichiers en utilisant la fonction système copy_file_range()\n" + +#: pg_combinebackup.c:772 +#, 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 l'algorithme pour les sommes de contrôle du manifeste\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest ne génère pas de manifeste de sauvegarde\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version puis quitte\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide puis quitte\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Rapporter les bogues à <%s>.\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "ignore le lien symbolique « %s »" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "ignore le fichier spécial « %s »" + +#: pg_combinebackup.c:1073 reconstruct.c:305 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "le fichier manifeste « %s » ne contient aucune entrée pour le fichier « %s »" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s : version trop ancienne du serveur" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s : n'a pas pu analyser le numéro de version" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "n'a pas pu lire le lien symbolique « %s » : %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "la cible « %s » du lien symbolique est trop longue" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "la cible « %s » du lien symbolique est relative" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "le tablespace sur \"%s\" n'a pas de correspondance de tablespace" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "les tablespaces d'OID %u et %u pointent tous les deux au répertoire « %s »" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "n'a pas pu fermer le répertoire « %s » : %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "le fichier « %s » est trop gros" + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "n'a pas pu lire le fichier « %s » : a lu %zd sur %lld" + +#: reconstruct.c:339 +#, c-format +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "la sauvegarde complète contient un fichier incrémental inattendu « %s »" + +#: reconstruct.c:423 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "le fichier « %s » est trop court : attendait %llu, a trouvé %llu" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "le fichier « %s » a un mauvaise numéro magique incrémental (0x%x et non pas 0x%x)" + +#: reconstruct.c:471 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "le fichier « %s » a %u blocs en plus de la taille de segment %u" + +#: reconstruct.c:478 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "le fichier « %s » a une longueur de bloc %u pour la troncation en excès de la taille de segment %u" + +#: reconstruct.c:542 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %u" + +#: reconstruct.c:786 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "n'a pas pu lire le fichier « %s » à la position %llu : a lu %d sur %d" diff --git a/src/bin/pg_combinebackup/po/ja.po b/src/bin/pg_combinebackup/po/ja.po index 3ae33d2f69045..627c4213b2467 100644 --- a/src/bin/pg_combinebackup/po/ja.po +++ b/src/bin/pg_combinebackup/po/ja.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Project-Id-Version: pg_combinebackup (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 17:48+0900\n" -"PO-Revision-Date: 2024-06-24 10:03+0900\n" +"POT-Creation-Date: 2025-03-31 09:53+0900\n" +"PO-Revision-Date: 2025-03-31 16:40+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: \n" "Language: ja\n" @@ -17,22 +17,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " @@ -42,8 +42,8 @@ msgstr "ヒント: " msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み込み用にオープンできませんでした: %m" -#: ../../common/controldata_utils.c:110 copy_file.c:146 load_manifest.c:161 -#: load_manifest.c:199 pg_combinebackup.c:1387 reconstruct.c:527 +#: ../../common/controldata_utils.c:110 copy_file.c:164 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1409 reconstruct.c:540 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"の読み込みに失敗しました: %m" @@ -54,8 +54,8 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: backup_label.c:174 copy_file.c:64 pg_combinebackup.c:526 -#: pg_combinebackup.c:1162 reconstruct.c:356 reconstruct.c:727 +#: backup_label.c:174 copy_file.c:71 pg_combinebackup.c:547 +#: pg_combinebackup.c:1184 reconstruct.c:369 reconstruct.c:740 #: write_manifest.c:187 #, c-format msgid "could not close file \"%s\": %m" @@ -78,31 +78,32 @@ msgstr "" "されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" "PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:62 -#: copy_file.c:135 copy_file.c:167 copy_file.c:171 copy_file.c:218 -#: copy_file.c:258 load_manifest.c:128 pg_combinebackup.c:511 -#: pg_combinebackup.c:1154 reconstruct.c:510 reconstruct.c:625 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 backup_label.c:143 copy_file.c:69 +#: copy_file.c:153 copy_file.c:185 copy_file.c:189 copy_file.c:239 +#: copy_file.c:282 load_manifest.c:128 pg_combinebackup.c:532 +#: pg_combinebackup.c:1176 reconstruct.c:523 reconstruct.c:638 #: write_manifest.c:250 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:746 +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 #: write_manifest.c:260 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" #: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 #, c-format msgid "out of memory" msgstr "メモリ不足です" @@ -131,290 +132,294 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "nullポインタは複製できません(内部エラー)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 -#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:664 -#: pg_combinebackup.c:1118 pg_combinebackup.c:1370 reconstruct.c:199 -#: reconstruct.c:408 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:684 +#: pg_combinebackup.c:1140 pg_combinebackup.c:1392 reconstruct.c:204 +#: reconstruct.c:421 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 -#: pg_combinebackup.c:920 pg_combinebackup.c:1243 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_combinebackup.c:942 pg_combinebackup.c:1265 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" -#: ../../common/jsonapi.c:2121 +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "再帰降下パーサーは差分字句解析器を使用できません。" -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "差分パーサーは差分字句解析器を必要とします。" -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSONのネストが深すぎます、可能な最大の深さは6400です。" -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "エスケープシーケンス\"\\%.*s\"は不正です。" -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "0x%02x値を持つ文字はエスケープしなければなりません" -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "入力の終端を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "配列要素または\"]\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "\",\"または\"]\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "\":\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "JSON値を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "入力文字列が予期せず終了しました。" -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "文字列または\"}\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "\",\"または\"}\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "文字列を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "トークン\"\\%.*s\"は不正です。" -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 はテキストに変換できません。" -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\"の後には16進数の4桁が続かなければなりません。" -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "エンコーディングがUTF-8ではない場合、コードポイントの値が 007F 以上についてはUnicodeエスケープの値は使用できません。" -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Unicodeエスケープの値がサーバーエンコーディング%sに変換できませんでした。" -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicodeのハイサロゲートはハイサロゲートに続いてはいけません。" -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicodeのローサロゲートはハイサロゲートに続かなければなりません。" -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "エラー記述の構築中にメモリ不足" + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "目録のチェックサムの初期化ができませんでした" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "目録が予期せず終了しました。" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "目録のチェックサムの更新ができませんでした" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "予期しないオブジェクトの開始" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "予期しないオブジェクトの終わり" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "予期しない配列の開始" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "予期しない配列の終わり" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "バージョン指示子を想定していました" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "認識できないトップレベルフィールド" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "予期しないファイルフィールド" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "予期しないWAL範囲フィールド" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "予期しないオブジェクトフィールド" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "予期しないスカラー" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "目録バージョンが整数ではありません" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "予期しない目録バージョン" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" -msgstr "目録のシステム識別子が整数ではありません" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "目録中のシステム識別子が整数ではありません" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "パス名がありません" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "パス名とエンコードされたパス名の両方" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "サイズがありません" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "アルゴリズムなしのチェックサム" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ファイル名をデコードできませんでした" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ファイルサイズが整数ではありません" -#: ../../common/parse_manifest.c:700 pg_combinebackup.c:190 +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:203 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "認識できないチェックサムアルゴリズム: \"%s\"" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "\"%s\" ファイルのチェックサムが無効: \"%s\"" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "タイムラインがありません" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "開始LSNがありません" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "終了LSNがありません" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "タイムラインが整数ではありません" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "開始LSNをパースできませんでした" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "終了LSNをパースできませんでした" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "少なくとも2行が必要です" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "最後の行が改行で終わっていません" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "目録のチェックサムの完了ができませんでした" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "目録にチェックサムがありません" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "無効な目録チェックサム: \"%s\"" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "目録チェックサムの不一致" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "バックアップ目録をパースできませんでした: %s" @@ -464,67 +469,72 @@ msgstr "%s: %sが見つかりませんでした" msgid "%s: %s requires %s" msgstr "%s: %sは%sを必要とします" -#: backup_label.c:162 reconstruct.c:748 write_manifest.c:262 +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 #, c-format msgid "could not write file \"%s\": wrote %d of %d" msgstr "ファイル\"%1$s\"の書き込みができませんでした: %3$dバイト中%2$dバイト書き込みました" -#: backup_label.c:166 copy_file.c:142 copy_file.c:189 reconstruct.c:708 -#: reconstruct.c:754 write_manifest.c:270 +#: backup_label.c:166 copy_file.c:160 copy_file.c:207 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 #, c-format msgid "could not update checksum of file \"%s\"" msgstr "ファイル\"%s\"のチェックサムの更新ができませんでした" -#: copy_file.c:182 +#: copy_file.c:200 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: copy_file.c:184 +#: copy_file.c:202 #, c-format msgid "could not write to file \"%s\", offset %u: wrote %d of %d" msgstr "ファイル \"%1$s\"、オフセット%2$uで書き込みができませんでした: %4$dバイト中%3$dバイト書き込みました" -#: copy_file.c:195 reconstruct.c:771 +#: copy_file.c:213 reconstruct.c:784 #, c-format msgid "could not read from file \"%s\": %m" msgstr "ファイル\"%s\"から読み取れませんでした: %m" -#: copy_file.c:214 +#: copy_file.c:232 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の\"%s\"へのクローニング中のエラー: %m" -#: copy_file.c:222 copy_file.c:262 +#: copy_file.c:243 copy_file.c:286 #, c-format msgid "could not create file \"%s\": %m" msgstr "ファイル\"%s\"を作成できませんでした: %m" -#: copy_file.c:230 +#: copy_file.c:251 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %s" msgstr "ファイル\"%s\"の\"%s\"へのクローニング中のエラー: %s" -#: copy_file.c:235 pg_combinebackup.c:239 +#: copy_file.c:259 pg_combinebackup.c:255 #, c-format msgid "file cloning not supported on this platform" msgstr "このプラットフォームではファイルのクローンはサポートされません" -#: copy_file.c:268 reconstruct.c:691 +#: copy_file.c:292 reconstruct.c:704 #, c-format msgid "error while copying file range from \"%s\" to \"%s\": %m" msgstr "\"%s\"の\"%s\"へのファイル範囲のコピー中のエラー: %m" -#: copy_file.c:275 pg_combinebackup.c:252 reconstruct.c:711 +#: copy_file.c:299 pg_combinebackup.c:268 reconstruct.c:724 #, c-format msgid "copy_file_range not supported on this platform" msgstr "このプラットフォームではcopy_file_rangeはサポートされません" -#: copy_file.c:290 +#: copy_file.c:314 #, c-format msgid "could not copy file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"を\"%s\"にコピーできませんでした: %m" +#: copy_file.c:333 +#, c-format +msgid "error while linking file from \"%s\" to \"%s\": %m" +msgstr "\"%s\"から\"%s\"へのリンク作成中にエラーが発生しました: %m" + #: load_manifest.c:125 #, c-format msgid "file \"%s\" does not exist" @@ -540,147 +550,152 @@ msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイト msgid "could not read file \"%s\": read %lld of %lld" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイトのうち%2$lldバイトを読み込みました" -#: load_manifest.c:249 +#: load_manifest.c:248 #, c-format msgid "backup manifest version 1 does not support incremental backup" msgstr "バックアップ目録のバージョン1は差分バックアップをサポートしていません" -#: load_manifest.c:281 +#: load_manifest.c:280 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "バックアップ目録内の重複パス名: \"%s\"" -#: pg_combinebackup.c:208 pg_combinebackup.c:216 +#: pg_combinebackup.c:224 pg_combinebackup.c:232 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_combinebackup.c:215 +#: pg_combinebackup.c:231 #, c-format msgid "no input directories specified" msgstr "入力ディレクトリが指定されていません" -#: pg_combinebackup.c:221 +#: pg_combinebackup.c:237 #, c-format msgid "no output directory specified" msgstr "出力ディレクトリが指定されていません" -#: pg_combinebackup.c:289 +#: pg_combinebackup.c:305 #, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: 目録のシステム識別子が%lluですが、制御ファイルでは%lluです" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: 目録のシステム識別子が%ですが、制御ファイルでは%です" -#: pg_combinebackup.c:328 +#: pg_combinebackup.c:344 #, c-format -msgid "can't generate a manifest because no manifest is available for the final input backup" +msgid "cannot generate a manifest because no manifest is available for the final input backup" msgstr "最後の入力バックアップに目録がないため目録を生成できません" -#: pg_combinebackup.c:375 +#: pg_combinebackup.c:391 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "\"%s\"から\"%s\"へのシンボリックリンクを作成できませんでした: %m" -#: pg_combinebackup.c:387 pg_combinebackup.c:718 pg_combinebackup.c:914 +#: pg_combinebackup.c:403 pg_combinebackup.c:738 pg_combinebackup.c:936 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" -#: pg_combinebackup.c:442 +#: pg_combinebackup.c:433 +#, c-format +msgid "--link mode was used; any modifications to the output directory may destructively modify input directories" +msgstr "--link モードが使用されています。出力ディレクトリに変更を加えると、入力ディレクトリが破壊的に変更される可能性があります。" + +#: pg_combinebackup.c:463 #, c-format msgid "directory name too long" msgstr "ディレクトリ名が長すぎます" -#: pg_combinebackup.c:449 +#: pg_combinebackup.c:470 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "テーブル空間のマッピングに複数の\"=\"記号があります" -#: pg_combinebackup.c:457 +#: pg_combinebackup.c:478 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "テーブル空間のマッピング形式\"%s\"が不正です。\"旧DIR=新DIR\"でなければなりません" -#: pg_combinebackup.c:468 pg_combinebackup.c:472 +#: pg_combinebackup.c:489 pg_combinebackup.c:493 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "テーブル空間のマッピングにおいて、旧ディレクトリが絶対パスではありません: %s" -#: pg_combinebackup.c:541 +#: pg_combinebackup.c:562 #, c-format msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" msgstr "\"%s\"のバックアップはフルバックアップですが、最初のバックアップのみがフルバックアップである必要があります" -#: pg_combinebackup.c:544 +#: pg_combinebackup.c:565 #, c-format msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" msgstr "\"%s\"のバックアップは差分バックアップですが、最初のバックアップはフルバックアップである必要があります" -#: pg_combinebackup.c:547 +#: pg_combinebackup.c:568 #, c-format msgid "backup at \"%s\" starts on timeline %u, but expected %u" msgstr "\"%s\"のバックアップはタイムライン%uで始まっていますが、%uを期待していました" -#: pg_combinebackup.c:550 +#: pg_combinebackup.c:571 #, c-format msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" msgstr "\"%s\"のバックアップはLSN %X/%Xで始まっていますが、%X/%Xを期待していました" -#: pg_combinebackup.c:602 +#: pg_combinebackup.c:623 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRCが正しくありません" -#: pg_combinebackup.c:606 +#: pg_combinebackup.c:627 #, c-format msgid "%s: unexpected control file version" msgstr "%s: 予期しない制御ファイルバージョン" -#: pg_combinebackup.c:613 +#: pg_combinebackup.c:634 #, c-format -msgid "%s: expected system identifier %llu, but found %llu" -msgstr "%s: システム識別子 %llu を予期していましたが、%llu でした" +msgid "%s: expected system identifier %, but found %" +msgstr "%s: システム識別子 % を予期していましたが、% でした" -#: pg_combinebackup.c:645 +#: pg_combinebackup.c:665 #, c-format msgid "only some backups have checksums enabled" msgstr "一部のバックアップのみチェックサムが有効化されています" -#: pg_combinebackup.c:646 +#: pg_combinebackup.c:666 #, c-format -msgid "disable, and optionally reenable, checksums on the output directory to avoid failures" -msgstr "失敗を防止するためには出力先ディレクトリでのチェックサムを無効にして、必要に応じて再度有効にしてください" +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "失敗を防止するためには出力先ディレクトリでのチェックサムを無効にして、必要に応じて再度有効にしてください。" -#: pg_combinebackup.c:681 +#: pg_combinebackup.c:701 #, c-format msgid "removing output directory \"%s\"" msgstr "出力ディレクトリ\"%s\"を削除しています" -#: pg_combinebackup.c:683 +#: pg_combinebackup.c:703 #, c-format msgid "failed to remove output directory" msgstr "出力ディレクトリの削除に失敗しました" -#: pg_combinebackup.c:687 +#: pg_combinebackup.c:707 #, c-format msgid "removing contents of output directory \"%s\"" msgstr "出力ディレクトリ\"%s\"の内容の削除中" -#: pg_combinebackup.c:690 +#: pg_combinebackup.c:710 #, c-format msgid "failed to remove contents of output directory" msgstr "出力ディレクトリの内容の削除に失敗しました" -#: pg_combinebackup.c:730 +#: pg_combinebackup.c:750 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "ディレクトリ\"%s\"は存在しますが、空ではありません" -#: pg_combinebackup.c:733 +#: pg_combinebackup.c:753 #, c-format msgid "could not access directory \"%s\": %m" msgstr "ディレクトリ\"%s\"にアクセスできませんでした: %m" -#: pg_combinebackup.c:747 +#: pg_combinebackup.c:767 #, c-format msgid "" "%s reconstructs full backups from incrementals.\n" @@ -689,17 +704,17 @@ msgstr "" "%s 差分からフルバックアップを再構築する。\n" "\n" -#: pg_combinebackup.c:748 +#: pg_combinebackup.c:768 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_combinebackup.c:749 +#: pg_combinebackup.c:769 #, c-format msgid " %s [OPTION]... DIRECTORY...\n" msgstr " %s [オプション]... ディレクトリ...\n" -#: pg_combinebackup.c:750 +#: pg_combinebackup.c:770 #, c-format msgid "" "\n" @@ -708,27 +723,32 @@ msgstr "" "\n" "オプション:\n" -#: pg_combinebackup.c:751 +#: pg_combinebackup.c:771 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug 多くのデバッグ用の出力を生成\n" -#: pg_combinebackup.c:752 +#: pg_combinebackup.c:772 +#, c-format +msgid " -k, --link link files instead of copying\n" +msgstr " -k, --link コピーする代わりにリンクを作成する\n" + +#: pg_combinebackup.c:773 #, c-format msgid " -n, --dry-run do not actually do anything\n" msgstr " -n, --dry-run 実際には何もしない\n" -#: pg_combinebackup.c:753 +#: pg_combinebackup.c:774 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync 変更の安全なディスクへの書き出しを待機しない\n" -#: pg_combinebackup.c:754 +#: pg_combinebackup.c:775 #, c-format msgid " -o, --output=DIRECTORY output directory\n" msgstr " -o, --output=DIRECTORY 出力ディレクトリ\n" -#: pg_combinebackup.c:755 +#: pg_combinebackup.c:776 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -737,19 +757,24 @@ msgstr "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" " OLDDIRにあるテーブルスペースをNEWDIRへ移動\n" -#: pg_combinebackup.c:757 +#: pg_combinebackup.c:778 #, c-format -msgid " --clone clone (reflink) instead of copying files\n" +msgid " --clone clone (reflink) files instead of copying\n" msgstr "" -" --clone ファイルコピーではなくクローニング(またはreflink)を\n" -" 行う\n" +" --clone ファイルをコピーする代わりにクローニング(reflink)\n" +" を行う\n" -#: pg_combinebackup.c:758 +#: pg_combinebackup.c:779 #, c-format -msgid " --copy-file-range copy using copy_file_range() syscall\n" +msgid " --copy copy files (default)\n" +msgstr " --copy ファイルをコピーする(デフォルト)\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" msgstr " --copy-file-range copy_file_range()システムコールでコピーする\n" -#: pg_combinebackup.c:759 +#: pg_combinebackup.c:781 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -758,27 +783,27 @@ msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " 目録チェックサムのアルゴリズムを指定\n" -#: pg_combinebackup.c:761 +#: pg_combinebackup.c:783 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest バックアップマニフェストの生成を抑止\n" -#: pg_combinebackup.c:762 +#: pg_combinebackup.c:784 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=METHOD ファイルをディスクに同期させる方法を指定\n" -#: pg_combinebackup.c:763 +#: pg_combinebackup.c:785 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_combinebackup.c:764 +#: pg_combinebackup.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_combinebackup.c:766 +#: pg_combinebackup.c:788 #, c-format msgid "" "\n" @@ -787,107 +812,107 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_combinebackup.c:767 +#: pg_combinebackup.c:789 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: pg_combinebackup.c:982 +#: pg_combinebackup.c:1004 #, c-format msgid "skipping symbolic link \"%s\"" msgstr "シンボリックリンク\"%s\"をスキップします" -#: pg_combinebackup.c:984 +#: pg_combinebackup.c:1006 #, c-format msgid "skipping special file \"%s\"" msgstr "スペシャルファイル\"%s\"をスキップしています" -#: pg_combinebackup.c:1060 +#: pg_combinebackup.c:1082 reconstruct.c:305 #, c-format -msgid "\"%s\" contains no entry for \"%s\"" -msgstr "\"%s\" には\"%s\"のエントリがありません" +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "目録ファイル\"%s\" にはファイル\"%s\"のエントリがありません" -#: pg_combinebackup.c:1176 +#: pg_combinebackup.c:1198 #, c-format msgid "%s: server version too old" msgstr "%s: サーバーバージョンが古すぎます" -#: pg_combinebackup.c:1177 +#: pg_combinebackup.c:1199 #, c-format msgid "%s: could not parse version number" msgstr "%s: バージョン番号をパースできませんでした" -#: pg_combinebackup.c:1296 +#: pg_combinebackup.c:1318 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を読めませんでした: %m" -#: pg_combinebackup.c:1299 +#: pg_combinebackup.c:1321 #, c-format msgid "target of symbolic link \"%s\" is too long" msgstr "シンボリックリンク\"%s\"のターゲットが長すぎます" -#: pg_combinebackup.c:1302 +#: pg_combinebackup.c:1324 #, c-format msgid "target of symbolic link \"%s\" is relative" msgstr "シンボリックリンク\"%s\"のターゲットが相対的です" -#: pg_combinebackup.c:1324 +#: pg_combinebackup.c:1346 #, c-format msgid "tablespace at \"%s\" has no tablespace mapping" msgstr "\"%s\"にあるテーブルスペースに対応するテーブルスペースマッピングがありません" -#: pg_combinebackup.c:1342 +#: pg_combinebackup.c:1364 #, c-format msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" msgstr "OID %uと%uのテーブルスペースがどちらもディレクトリ\"%s\"を指しています" -#: pg_combinebackup.c:1351 +#: pg_combinebackup.c:1373 #, c-format msgid "could not close directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" -#: pg_combinebackup.c:1372 +#: pg_combinebackup.c:1394 #, c-format msgid "file \"%s\" is too large" msgstr "ファイル\"%s\"は大きすぎます" -#: pg_combinebackup.c:1389 +#: pg_combinebackup.c:1411 #, c-format msgid "could not read file \"%s\": read %zd of %lld" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイトのうち%2$zdバイトを読み込みました" -#: reconstruct.c:300 +#: reconstruct.c:339 #, c-format -msgid "manifest file \"%s\" contains no entry for file \"%s\"" -msgstr "目録ファイル\"%s\" にはファイル\"%s\"のエントリがありません" +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "フルバックアップに予期しない差分ファイル\"%s\"が含まれています" -#: reconstruct.c:410 +#: reconstruct.c:423 #, c-format msgid "file \"%s\" is too short: expected %llu, found %llu" msgstr "ファイル\"%s\"が短すぎます: %lluを期待していましたが%lluでした" -#: reconstruct.c:452 +#: reconstruct.c:465 #, c-format -msgid "file \"%s\" has bad incremental magic number (0x%x not 0x%x)" -msgstr "ファイル\"%1$s\"の差分マジックナンバーが正しくありません (0x%3$xではなく0x%2$xでした)" +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "ファイル\"%1$s\"の差分マジックナンバーが正しくありません (0x%3$xを期待していましたが0x%2$xでした)" -#: reconstruct.c:458 +#: reconstruct.c:471 #, c-format msgid "file \"%s\" has block count %u in excess of segment size %u" msgstr "ファイル\"%s\"のブロック数%uがセグメントサイズ%uを超えています" -#: reconstruct.c:465 +#: reconstruct.c:478 #, c-format msgid "file \"%s\" has truncation block length %u in excess of segment size %u" msgstr "ファイル\"%s\"の切り詰めブロック長%uがセグメントサイズ%uを超えています" -#: reconstruct.c:529 +#: reconstruct.c:542 #, c-format msgid "could not read file \"%s\": read %d of %u" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$uバイトのうち%2$dバイトを読み込みました" -#: reconstruct.c:773 +#: reconstruct.c:786 #, c-format msgid "could not read from file \"%s\", offset %llu: read %d of %d" msgstr "ファイル \"%1$s\"、オフセット%2$lluから読み取れませんでした: %4$d中%3$d" diff --git a/src/bin/pg_combinebackup/po/ka.po b/src/bin/pg_combinebackup/po/ka.po index 294257800ba65..9aa8952078c75 100644 --- a/src/bin/pg_combinebackup/po/ka.po +++ b/src/bin/pg_combinebackup/po/ka.po @@ -5,38 +5,121 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Project-Id-Version: pg_combinebackup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-04 22:22+0000\n" -"PO-Revision-Date: 2024-06-05 01:39+0200\n" +"POT-Creation-Date: 2025-05-02 22:22+0000\n" +"PO-Revision-Date: 2025-05-03 01:27+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:110 copy_file.c:164 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1410 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:71 pg_combinebackup.c:548 +#: pg_combinebackup.c:1185 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ფაილის (%s) დახურვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "ბაიტების მიმდევრობა არ ემთხვევა" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"ბაიტების მიმდევრობის შესაძლო შეუსაბამობა pg_control ფაილის შესანახად გამოყენებული \n" +"ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" +"მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 backup_label.c:143 copy_file.c:69 +#: copy_file.c:153 copy_file.c:185 copy_file.c:189 copy_file.c:239 +#: copy_file.c:282 load_manifest.c:128 pg_combinebackup.c:533 +#: pg_combinebackup.c:1177 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "არასაკმარისი მეხსიერება" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "წარმატება" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "სამიზნე ბუფერი ძალიან პატარაა" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "OpenSSL -ის სეცდომა" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,264 +131,313 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/jsonapi.c:2121 +#: ../../common/file_utils.c:75 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" + +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:685 +#: pg_combinebackup.c:1141 pg_combinebackup.c:1393 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" + +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_combinebackup.c:943 pg_combinebackup.c:1266 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/file_utils.c:520 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "გადარქმევის შეცდომა %s - %s: %m" + +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "რეკურსიულ დაღმავალ დამმუშავებელს ინკრემენტული lexer-ის გამოყენება არ შეუძლია." -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "ინკრემენტულ დამმუშავებელს ინკრემენტული lexer სჭირდება." -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSON მეტისმეტად ღრმადაა ერთმანეთში ჩალაგებული. მაქსიმალური დასაშვები სიღრმეა 6400." -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "სპეციალური მიმდევრობა \"\\%.*s\" არასწორია." -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "სიმბოლო კოდით 0x%02x აუცილებლად ეკრანირებული უნდა იყოს." -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "მოველოდი შეყვანის დასასრულს, მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "მოველოდი მასივის ელემენტს ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "მოველოდი \",\" ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "მოველოდი \":\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "მოველოდი JSON მნიშვნელობას. მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "შეყვანის სტრიქონი მოულოდნელად დასრულდა." -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "მოველოდი სტრიქონს ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "მოველოდი \",\", ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "მოველოდი სტრიქონს, მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "კოდი \"%.*s\" არასწორია." -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 ტექსტად ვერ გარდაიქმნება." -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\" ს თექვსმეტობითი ციფრები უნდა მოჰყვებოდეს." -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "უნიკოდის სპეციალური კოდების გამოყენება კოდის წერტილის მნიშვნელობებად 007F-ის ზემოთ შეუძლებელია, თუ კოდირება UTF-8 არაა." -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "უნიკოდის სპეციალური კოდების სერვერის კოდირებაში (%s) თარგმნა შეუძლებელია." -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "უნიკოდის მაღალ სუროგატს მაღალი სუროგატი არ უნდა მოსდევდეს." -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "უნიკოდის დაბალი სუროგატი მაღალ სუროგატს უნდა მისდევდეს." -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 -#, c-format -msgid "out of memory" -msgstr "არასაკმარისი მეხსიერება" +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "არასაკმარისი მეხსიერება შეცდომის აღწერის აგებისას" -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის ინიციალიზაციის შეცდომა" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "მანიფესტი მოულოდნელად დასრულდა" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის განახლების შეცდომა" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "ობიექტის მოულოდნელი დასაწყისი" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "ობიექტის მოულოდნელი დასასრული" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "მასივის მოულოდნელი დასაწყისი" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "მასივის მოულოდნელი დასასრული" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "მოსალოდნელი ვერსიის მაჩვენებელი" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "უცნობი ველი ზედა დონეზე" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "მოულოდნელი ველი ფაილისთვის" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "მოულოდნელი ველი WAL-ის დიაპაზონისთვის" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "ობიექტის მოულოდნელი ველი" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "მოულოდნელი სკალარი" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "მანიფესტის ვერსია მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "მანიფესტის მოულოდნელი ვერსია" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" msgstr "მანიფესტის სისტემის იდენფიტიკატორი მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "აკლია ბილიკის სახელი" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "ორივე, ბილიკის სახელი და ბილიკის კოდირებული სახელი" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "ზომა აკლია" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "საკონტროლო ჯამი ალგორითმის გარეშე" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ფაილის სახელის გაშიფვრის შეცდომა" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ფაილის ზომა მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:700 pg_combinebackup.c:190 +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:204 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "საკონტროლო ჯამის უცნობი ალგორითმი: \"%s\"" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "არასწორი საკონტროლო ჯამი ფაილისთვის \"%s\": \"%s\"" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "აკლია დროის ხაზი" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "აკლია საწყისი LSN" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "აკლია დასასრულის LSN" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "დროის ხაზი მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "საწყისი LSN-ის დამუშავების შეცდომა" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "საბოლოო LSN-ის დამუშავების შეცდომა" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "ველოდებოდი სულ ცოტა 2 ხაზს" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "ბოლო ხაზი ხაზის გადატანით არ სრულდება" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის დასრულების შეცდომა" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "მანიფესტის საკონტროლო ჯამი არ გააჩნია" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "მანიფესტის საკონტროლო ჯამის არასწორია: %s" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "მანიფესტის საკონტროლო ჯამი არ ემთხვევა" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "მარქაფის მანიფესტის დამუშავების შეცრომა: %s" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "არასწორი მნიშვნელობა \"%s\" პარამეტრისთვის %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s არაა საზღვრებში %d-დან %d-მდე" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "უცნობი სინქრონიზაციის მეთოდი: \"%s\"" + #: backup_label.c:66 backup_label.c:85 backup_label.c:95 #, c-format msgid "%s: could not parse %s" @@ -336,97 +468,76 @@ msgstr "%s: %s ვერ ვიპოვე" msgid "%s: %s requires %s" msgstr "%s: %s-ს %s სჭირდება" -#: backup_label.c:143 copy_file.c:135 copy_file.c:167 copy_file.c:171 -#: copy_file.c:218 copy_file.c:258 load_manifest.c:128 pg_combinebackup.c:511 -#: pg_combinebackup.c:1154 reconstruct.c:511 reconstruct.c:626 -#: write_manifest.c:250 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" - -#: backup_label.c:160 copy_file.c:182 reconstruct.c:747 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" - -#: backup_label.c:162 reconstruct.c:749 write_manifest.c:262 +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 #, c-format -msgid "could not write file \"%s\": wrote only %d of %d bytes" -msgstr "ვერ ჩავწერე ფაილი \"%s\": ჩავწერე, მხოლოდ, %d ბაიტი %d-დან" +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "ფაილში \"%s\" ჩაწერა შეუძლებელია. ჩაწერილია %d %d-დან" -#: backup_label.c:166 copy_file.c:142 copy_file.c:189 reconstruct.c:709 -#: reconstruct.c:755 write_manifest.c:270 +#: backup_label.c:166 copy_file.c:160 copy_file.c:207 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 #, c-format msgid "could not update checksum of file \"%s\"" msgstr "ფაილის (\"%s\") საკონტროლო ჯამის განახლების შეცდომა" -#: backup_label.c:174 copy_file.c:64 pg_combinebackup.c:526 -#: pg_combinebackup.c:1162 reconstruct.c:357 reconstruct.c:728 -#: write_manifest.c:187 -#, c-format -msgid "could not close \"%s\": %m" -msgstr "\"%s\" ვერ დავხურე: %m" - -#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:1118 +#: copy_file.c:200 #, c-format -msgid "could not stat file \"%s\": %m" -msgstr "ფაილი \"%s\" არ არსებობს: %m" +msgid "could not write to file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: copy_file.c:62 +#: copy_file.c:202 #, c-format -msgid "could not open \"%s\": %m" -msgstr "\"%s\" ვერ გავხსენი: %m" +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "ფაილში \"%s\" ჩაწერის შეცდომა. წანაცვლება %u: ჩავწერე %d ბაიტი %d-დან" -#: copy_file.c:146 copy_file.c:195 load_manifest.c:161 load_manifest.c:199 -#: pg_combinebackup.c:1387 reconstruct.c:528 reconstruct.c:772 +#: copy_file.c:213 reconstruct.c:784 #, c-format -msgid "could not read file \"%s\": %m" -msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" +msgid "could not read from file \"%s\": %m" +msgstr "ფაილიდან (\"%s\") წაკითხვის შეცდომა: %m" -#: copy_file.c:184 -#, c-format -msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" -msgstr "ფაილში \"%s\" ჩაწერის შეცდომა: ჩავწერე მხოლოდ %d ბაიტი %d-დან , წანაცვლებაზე %u" - -#: copy_file.c:214 +#: copy_file.c:232 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %m" msgstr "შეცდომა ფაილის დაკლონვისას \"%s\"-დან \"%s\"-მდე: %m" -#: copy_file.c:222 copy_file.c:262 +#: copy_file.c:243 copy_file.c:286 #, c-format msgid "could not create file \"%s\": %m" msgstr "ფაილის (%s) შექმნის შეცდომა: %m" -#: copy_file.c:230 +#: copy_file.c:251 #, c-format msgid "error while cloning file \"%s\" to \"%s\": %s" msgstr "შეცდომა ფაილის დაკლონვისას \"%s\"-დან \"%s\"-მდე: %s" -#: copy_file.c:235 pg_combinebackup.c:239 +#: copy_file.c:259 pg_combinebackup.c:256 #, c-format msgid "file cloning not supported on this platform" msgstr "ამ პლატფორმაზე კლონირება მხარდაჭერილი არაა" -#: copy_file.c:268 reconstruct.c:692 +#: copy_file.c:292 reconstruct.c:704 #, c-format msgid "error while copying file range from \"%s\" to \"%s\": %m" msgstr "შეცდომა ფაილბის შუალედის კოპირებისას \"%s\"-დან \"%s\"-მდე: %m" -#: copy_file.c:275 pg_combinebackup.c:252 reconstruct.c:712 +#: copy_file.c:299 pg_combinebackup.c:269 reconstruct.c:724 #, c-format msgid "copy_file_range not supported on this platform" msgstr "ამ პლატფორმაზე copy_file_range მხარდაჭერილი არაა" -#: copy_file.c:290 +#: copy_file.c:314 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "ფაილის \"%s\"-დან \"%s\"-ში კოპირება შეუძლებელია: %m" + +#: copy_file.c:333 #, c-format -msgid "could not copy \"%s\" to \"%s\": %m" -msgstr "\"%s\"-დან \"%s\"-ში კოპირება შეუძლებელია: %m" +msgid "could not create link from \"%s\" to \"%s\": %m" +msgstr "\"%s\"-დან \"%s\"-მდე ბმულის შექმნა შეუძლებელია: %m" #: load_manifest.c:125 #, c-format -msgid "\"%s\" does not exist" -msgstr "\"%s\" არ არსებობს" +msgid "file \"%s\" does not exist" +msgstr "ფაილი %s არ არსებობს" #: load_manifest.c:163 #, c-format @@ -438,153 +549,152 @@ msgstr "ფაილის \"%s\" წაკითხვა შეუძლებ msgid "could not read file \"%s\": read %lld of %lld" msgstr "ფაილის \"%s\" წაკითხვა შეუძლებელია: წაკითხულია %lld %lld-დან" -#: load_manifest.c:249 +#: load_manifest.c:248 #, c-format msgid "backup manifest version 1 does not support incremental backup" msgstr "მარქაფის მანიფესტის ვერსიას 1 ინკრემენტული მარქაფების მხარდაჭერა არ გააჩნია" -#: load_manifest.c:281 +#: load_manifest.c:280 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "მარქაფს მანიფესტში მითითებული ბილიკის სახელი დუბლირებულია: %s" -#: pg_combinebackup.c:208 pg_combinebackup.c:216 +#: pg_combinebackup.c:225 pg_combinebackup.c:233 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_combinebackup.c:215 +#: pg_combinebackup.c:232 #, c-format -msgid "%s: no input directories specified" -msgstr "%s: შეყვანის საქაღალდეები მითითებული არაა" +msgid "no input directories specified" +msgstr "შეყვანის საქაღალდეები მითითებული არაა" -#: pg_combinebackup.c:221 +#: pg_combinebackup.c:238 #, c-format msgid "no output directory specified" msgstr "გამოტანის საქაღალდე მითითებული არაა" -#: pg_combinebackup.c:289 +#: pg_combinebackup.c:306 #, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: მანიფესტის სისტემის იდენტიფიკატორია %llu, მაგრამ კონტროლის ფაილი შეიცავს %llu" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: მანიფესტის სისტემის იდენტიფიკატორია %, მაგრამ კონტროლის ფაილი შეიცავს %-ს" -#: pg_combinebackup.c:328 +#: pg_combinebackup.c:345 #, c-format -msgid "can't generate a manifest because no manifest is available for the final input backup" +msgid "cannot generate a manifest because no manifest is available for the final input backup" msgstr "მანიფესტის გენერაცია შეუძლებელია, რადგან საბოლოო შეყვანის მარქაფისთვის მანიფესტი ხელმისაწვდომი არაა" -#: pg_combinebackup.c:375 +#: pg_combinebackup.c:392 #, c-format msgid "could not create symbolic link from \"%s\" to \"%s\": %m" msgstr "%s-დან %s-მდე სიმბმულის შექმნა შეუძლებელია: %m" -#: pg_combinebackup.c:387 pg_combinebackup.c:718 pg_combinebackup.c:914 +#: pg_combinebackup.c:404 pg_combinebackup.c:739 pg_combinebackup.c:937 #, c-format msgid "could not create directory \"%s\": %m" msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" -#: pg_combinebackup.c:442 +#: pg_combinebackup.c:434 +#, c-format +msgid "--link mode was used; any modifications to the output directory might destructively modify input directories" +msgstr "გამოყენებული იყო რეჟიმი --link. გამოტანის საქაღალდის ნებისმიერმა ცვლილებამ, შეიძლება, შეყვანის საქაღალდეები დამანგრევლად შეცვალოს" + +#: pg_combinebackup.c:464 #, c-format msgid "directory name too long" msgstr "საქაღალდის სახელი ძალიან გრძელია" -#: pg_combinebackup.c:449 +#: pg_combinebackup.c:471 #, c-format msgid "multiple \"=\" signs in tablespace mapping" msgstr "ცხრილების სივრცის მიბმაში ერთზე მეტი \"=\" ნიშანია" -#: pg_combinebackup.c:457 +#: pg_combinebackup.c:479 #, c-format msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" msgstr "ცხრილების მიბმის არასწორი ფორმატი \"%s\", უნდა იყოს \"OLDDIR=NEWDIR\"" -#: pg_combinebackup.c:468 pg_combinebackup.c:472 +#: pg_combinebackup.c:490 pg_combinebackup.c:494 #, c-format msgid "old directory is not an absolute path in tablespace mapping: %s" msgstr "ძველი საქაღალდის ბილიკი ცხრილის სივრცის მიბმაში აბსოლუტური არაა: %s" -#: pg_combinebackup.c:541 +#: pg_combinebackup.c:563 #, c-format msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" msgstr "მარქაფი მისამართზე \"%s\" სრული მარქაფია, მაგრამ, მხოლოდ, პირველი მარქაფი უნდა იყოს სრული" -#: pg_combinebackup.c:544 +#: pg_combinebackup.c:566 #, c-format msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" msgstr "მარქაფი მისამართზე \"%s\" ინკრემენტული მარქაფია, მაგრამ პირველი მარქაფი სრული უნდა იყოს" -#: pg_combinebackup.c:547 +#: pg_combinebackup.c:569 #, c-format msgid "backup at \"%s\" starts on timeline %u, but expected %u" msgstr "მარქაფი მისამართზე \"%s\" იწყება დროის ხაზზე %u, მაგრამ მოველოდი მნიშვნელობას %u" -#: pg_combinebackup.c:550 +#: pg_combinebackup.c:572 #, c-format msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" msgstr "მარქაფი მისამართზე \"%s\" იწყება LSN-თან %X/%X, მაგრამ მოველოდი მნიშვნელობას %X/%X" -#: pg_combinebackup.c:602 +#: pg_combinebackup.c:624 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRC არასწორია" -#: pg_combinebackup.c:606 +#: pg_combinebackup.c:628 #, c-format msgid "%s: unexpected control file version" msgstr "%s: მოულოდნელი საკონტროლო ფაილის ვერსია" -#: pg_combinebackup.c:613 +#: pg_combinebackup.c:635 #, c-format -msgid "%s: expected system identifier %llu, but found %llu" -msgstr "%s: მოველოდი სისტემის იდენტიფიკატორს %llu, ნაპოვნი მნიშვნელობაა %llu" +msgid "%s: expected system identifier %, but found %" +msgstr "%s: მოველოდი სისტემის იდენტიფიკატორს %, ნაპოვნი მნიშვნელობაა %" -#: pg_combinebackup.c:645 +#: pg_combinebackup.c:666 #, c-format msgid "only some backups have checksums enabled" msgstr "საკონტროლო ჯამები, მხოლოდ, ზოგიერთ მარქაფს ჰქონდა" -#: pg_combinebackup.c:646 -#, c-format -msgid "disable, and optionally reenable, checksums on the output directory to avoid failures" -msgstr "გამორთვა და არასავალდებულოდ თავიდან ჩართვა საკონტროლო ჯამებისა გამოტანის საქაღალდეზე, ჩავარდნების თავიდან ასაცილებლად" - -#: pg_combinebackup.c:664 pg_combinebackup.c:1370 reconstruct.c:199 -#: reconstruct.c:409 +#: pg_combinebackup.c:667 #, c-format -msgid "could not stat \"%s\": %m" -msgstr "\"%s\" ვერ აღმოვაჩინე: %m" +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "გამორთვა და არასავალდებულოდ თავიდან ჩართვა საკონტროლო ჯამებისა გამოტანის საქაღალდეზე, ჩავარდნების თავიდან ასაცილებლად." -#: pg_combinebackup.c:681 +#: pg_combinebackup.c:702 #, c-format msgid "removing output directory \"%s\"" msgstr "წაიშლება გამოტანის საქაღალდე \"%s\"" -#: pg_combinebackup.c:683 +#: pg_combinebackup.c:704 #, c-format msgid "failed to remove output directory" msgstr "გამოტანის საქაღალდის წაშლა ჩავარდა" -#: pg_combinebackup.c:687 +#: pg_combinebackup.c:708 #, c-format msgid "removing contents of output directory \"%s\"" msgstr "წაიშლება შემცველობა გამოტანის საქაღალდისთვის \"%s\"" -#: pg_combinebackup.c:690 +#: pg_combinebackup.c:711 #, c-format msgid "failed to remove contents of output directory" msgstr "გამოტანის საქაღალდის შემცველობის წაშლა ჩავარდა" -#: pg_combinebackup.c:730 +#: pg_combinebackup.c:751 #, c-format msgid "directory \"%s\" exists but is not empty" msgstr "საქაღალდე \"%s\" არსებობს, მაგრამ ცარიელი არაა" -#: pg_combinebackup.c:733 +#: pg_combinebackup.c:754 #, c-format msgid "could not access directory \"%s\": %m" msgstr "საქაღალდის (%s) წვდომის შეცდომა: %m" -#: pg_combinebackup.c:747 +#: pg_combinebackup.c:768 #, c-format msgid "" "%s reconstructs full backups from incrementals.\n" @@ -593,17 +703,17 @@ msgstr "" "%s სრული მარქაფების აგება ინკრემენტულებისგან.\n" "\n" -#: pg_combinebackup.c:748 +#: pg_combinebackup.c:769 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_combinebackup.c:749 +#: pg_combinebackup.c:770 #, c-format msgid " %s [OPTION]... DIRECTORY...\n" msgstr " %s [პარამეტრი]... საქაღალდე...\n" -#: pg_combinebackup.c:750 +#: pg_combinebackup.c:771 #, c-format msgid "" "\n" @@ -612,27 +722,32 @@ msgstr "" "\n" "პარამეტრები:\n" -#: pg_combinebackup.c:751 +#: pg_combinebackup.c:772 #, c-format msgid " -d, --debug generate lots of debugging output\n" msgstr " -d, --debug გასამართი ინფორმაციის გენერაცია\n" -#: pg_combinebackup.c:752 +#: pg_combinebackup.c:773 +#, c-format +msgid " -k, --link link files instead of copying\n" +msgstr " -k, --link ფაილებზე ბმულების შექმნა მათი კოპირების ნაცვლად\n" + +#: pg_combinebackup.c:774 #, c-format msgid " -n, --dry-run do not actually do anything\n" msgstr " -n, --dry-run არაფერი სინამდვილეში არ ქნა\n" -#: pg_combinebackup.c:753 +#: pg_combinebackup.c:775 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: pg_combinebackup.c:754 +#: pg_combinebackup.c:776 #, c-format -msgid " -o, --output output directory\n" -msgstr " -o, --output გამოტანის საქაღალდე\n" +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=საქაღალდე გამოტანის საქაღალდე\n" -#: pg_combinebackup.c:755 +#: pg_combinebackup.c:777 #, c-format msgid "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" @@ -641,17 +756,22 @@ msgstr "" " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" " ცხრილების სივრცის OLDDIR-დან NEWDIR-ში გადატანა\n" -#: pg_combinebackup.c:757 +#: pg_combinebackup.c:779 #, c-format -msgid " --clone clone (reflink) instead of copying files\n" +msgid " --clone clone (reflink) files instead of copying\n" msgstr " --clone ფაილების დაკლონვა (reflink) კოპირების ნაცვლად\n" -#: pg_combinebackup.c:758 +#: pg_combinebackup.c:780 #, c-format -msgid " --copy-file-range copy using copy_file_range() syscall\n" +msgid " --copy copy files (default)\n" +msgstr " --copy ფაილების კოპირება (ნაგულისხმევი)\n" + +#: pg_combinebackup.c:781 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" msgstr " --copy-file-range კოპირება სისტემური ფუნქციით copy_file_range()\n" -#: pg_combinebackup.c:759 +#: pg_combinebackup.c:782 #, c-format msgid "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" @@ -660,27 +780,27 @@ msgstr "" " --manifest-checksums=SHA{224,256,384,512}|CRC32C|NONE\n" " მანიფესტების საკონტროლო ჯამის გამოსათვლელი ალფორითმი\n" -#: pg_combinebackup.c:761 +#: pg_combinebackup.c:784 #, c-format msgid " --no-manifest suppress generation of backup manifest\n" msgstr " --no-manifest მარქაფის მანიფესტი არ შეიქმნება\n" -#: pg_combinebackup.c:762 +#: pg_combinebackup.c:785 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=მეთოდი ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: pg_combinebackup.c:763 +#: pg_combinebackup.c:786 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_combinebackup.c:764 +#: pg_combinebackup.c:787 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_combinebackup.c:766 +#: pg_combinebackup.c:789 #, c-format msgid "" "\n" @@ -689,116 +809,158 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_combinebackup.c:767 +#: pg_combinebackup.c:790 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: pg_combinebackup.c:920 pg_combinebackup.c:1243 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" - -#: pg_combinebackup.c:982 +#: pg_combinebackup.c:1005 #, c-format msgid "skipping symbolic link \"%s\"" msgstr "%s: სიმბმულია. გამოტოვება" -#: pg_combinebackup.c:984 +#: pg_combinebackup.c:1007 #, c-format msgid "skipping special file \"%s\"" msgstr "სპეციალური ფაილის გამოტოვება \"%s\"" -#. translator: the first %s is a backup manifest file, the second is a file absent therein -#: pg_combinebackup.c:1060 reconstruct.c:301 +#: pg_combinebackup.c:1083 reconstruct.c:305 #, c-format -msgid "\"%s\" contains no entry for \"%s\"" -msgstr "\"%s\" არ შეიცავს ჩანაწერს \"%s\"-სთვის" +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "მანიფესტის ფაილი \"%s\" ფაილისთვის \"%s\" ჩანაწერებს არ შეიცავს" -#: pg_combinebackup.c:1176 +#: pg_combinebackup.c:1199 #, c-format -msgid "%s: server version too old\n" -msgstr "%s: სერვერის ვერსია ძალიან ძველია\n" +msgid "%s: server version too old" +msgstr "%s: სერვერის ვერსია ძალიან ძველია" -#: pg_combinebackup.c:1177 +#: pg_combinebackup.c:1200 #, c-format -msgid "%s: could not parse version number\n" -msgstr "%s: ვერსის ნომრის დამუშავების შეცდომა\n" +msgid "%s: could not parse version number" +msgstr "%s: ვერსის ნომრის დამუშავების შეცდომა" -#: pg_combinebackup.c:1296 +#: pg_combinebackup.c:1319 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "სიმბოლური ბმის \"%s\" წაკითხვის შეცდომა: %m" -#: pg_combinebackup.c:1299 +#: pg_combinebackup.c:1322 #, c-format -msgid "symbolic link \"%s\" is too long" -msgstr "სიმბოლური ბმული \"%s\" მეტისმეტად გრძელია" +msgid "target of symbolic link \"%s\" is too long" +msgstr "სიმბოლური ბმულის \"%s\" სამიზნე მეტისმეტად გრძელია" -#: pg_combinebackup.c:1302 +#: pg_combinebackup.c:1325 #, c-format -msgid "symbolic link \"%s\" is relative" -msgstr "სიმბმული \"%s\" ფარდობითია" +msgid "target of symbolic link \"%s\" is relative" +msgstr "სიმბმულის \"%s\" სამიზნე ფარდობითია" -#: pg_combinebackup.c:1324 +#: pg_combinebackup.c:1347 #, c-format msgid "tablespace at \"%s\" has no tablespace mapping" msgstr "ცხრილები სივრცეს მისამართზე \"%s\" ცხრილების სივრცის ასახვები არ გააჩნია" -#: pg_combinebackup.c:1342 +#: pg_combinebackup.c:1365 #, c-format -msgid "tablespaces with OIDs %u and %u both point at \"%s\"" -msgstr "ცხრილის სივრცეები OID-ებით %u და %u, ორივე, \"%s\"-ზე მიუთითებს" +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "ცხრილის სივრცეები OID-ებით %u და %u, ორივე მიუთითებს საქაღალდეზე \"%s\"-ზე" -#: pg_combinebackup.c:1351 +#: pg_combinebackup.c:1374 #, c-format msgid "could not close directory \"%s\": %m" msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" -#: pg_combinebackup.c:1372 +#: pg_combinebackup.c:1395 #, c-format msgid "file \"%s\" is too large" msgstr "%s: ფაილი ძალიან დიდია" -#: pg_combinebackup.c:1389 +#: pg_combinebackup.c:1412 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "ფაილის \"%s\" წაკითხვა შეუძლებელია: წაკითხულია %zd %lld-დან" + +#: reconstruct.c:339 #, c-format -msgid "could not read file \"%s\": read only %zd of %lld bytes" -msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ, %zd ბაიტი %lld-დან" +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "სრული მარქაფი შეიცავს მოულოდნელ ინკრემენტულ ფაილს \"%s\"" -#: reconstruct.c:411 +#: reconstruct.c:423 #, c-format msgid "file \"%s\" is too short: expected %llu, found %llu" msgstr "ფაილი \"%s\" მეტისმეტად მოკლეა. მოველოდი %llu, მივიღე %llu" -#: reconstruct.c:453 +#: reconstruct.c:465 #, c-format -msgid "file \"%s\" has bad incremental magic number (0x%x not 0x%x)" +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" msgstr "ფაილს \"%s\" არასწორი ინკრემენტული ჯადოსნური რიცხვი (0x%x not 0x%x) გააჩნია" -#: reconstruct.c:459 +#: reconstruct.c:471 #, c-format msgid "file \"%s\" has block count %u in excess of segment size %u" msgstr "ფაილს \"%s\" აქვს ბლოკების რაოდენობა %u, რომელიც სეგმენტის ზომას %u აჭარბებს" -#: reconstruct.c:466 +#: reconstruct.c:478 #, c-format msgid "file \"%s\" has truncation block length %u in excess of segment size %u" msgstr "ფაილს \"%s\" აქვს წაკვეთის ბლოკის სიგრძე %u, რომელიც სეგმენტის ზომას %u აჭარბებს" -#: reconstruct.c:530 +#: reconstruct.c:542 #, c-format -msgid "could not read file \"%s\": read only %d of %u bytes" -msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ, %d ბაიტი %u-დან" +msgid "could not read file \"%s\": read %d of %u" +msgstr "ფაილის \"%s\" წაკითხვის შეცდომა: წაკითხულია %d %u-დან" -#: reconstruct.c:774 +#: reconstruct.c:786 #, c-format -msgid "could not read file \"%s\": read only %d of %d bytes at offset %llu" -msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ %d ბაიტი %d-დან წანაცვლებაზე %llu" +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "ფაილიდან \"%s\" წაკითხვის შეცდომა. წანაცვლება %llu: წაკითხულია %d %d-დან" + +#, c-format +#~ msgid "\"%s\" contains no entry for \"%s\"" +#~ msgstr "\"%s\" არ შეიცავს ჩანაწერს \"%s\"-სთვის" + +#, c-format +#~ msgid "\"%s\" does not exist" +#~ msgstr "\"%s\" არ არსებობს" + +#, c-format +#~ msgid "could not close \"%s\": %m" +#~ msgstr "\"%s\" ვერ დავხურე: %m" + +#, c-format +#~ msgid "could not open \"%s\": %m" +#~ msgstr "\"%s\" ვერ გავხსენი: %m" + +#, c-format +#~ msgid "could not read file \"%s\": read only %d of %d bytes at offset %llu" +#~ msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ %d ბაიტი %d-დან წანაცვლებაზე %llu" + +#, c-format +#~ msgid "could not read file \"%s\": read only %d of %u bytes" +#~ msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ, %d ბაიტი %u-დან" + +#, c-format +#~ msgid "could not read file \"%s\": read only %zd of %lld bytes" +#~ msgstr "ვერ წავიკითხე ფაილი \"%s\": წავიკითხე, მხოლოდ, %zd ბაიტი %lld-დან" + +#, c-format +#~ msgid "could not stat \"%s\": %m" +#~ msgstr "\"%s\" ვერ აღმოვაჩინე: %m" + +#, c-format +#~ msgid "could not write \"%s\": %m" +#~ msgstr "\"%s\"-ში ჩაწერის შეცდომა: %m" + +#, c-format +#~ msgid "could not write file \"%s\": wrote only %d of %d bytes" +#~ msgstr "ვერ ჩავწერე ფაილი \"%s\": ჩავწერე, მხოლოდ, %d ბაიტი %d-დან" + +#, c-format +#~ msgid "could not write file \"%s\": wrote only %d of %d bytes at offset %u" +#~ msgstr "ფაილში \"%s\" ჩაწერის შეცდომა: ჩავწერე მხოლოდ %d ბაიტი %d-დან , წანაცვლებაზე %u" -#: write_manifest.c:260 #, c-format -msgid "could not write \"%s\": %m" -msgstr "\"%s\"-ში ჩაწერის შეცდომა: %m" +#~ msgid "error while linking file from \"%s\" to \"%s\": %m" +#~ msgstr "შეცდომა ფაილის ბმულის შექმნისას \"%s\"-დან \"%s\"-მდე: %m" #, c-format #~ msgid "unexpected json parse error type: %d" diff --git a/src/bin/pg_combinebackup/po/ko.po b/src/bin/pg_combinebackup/po/ko.po new file mode 100644 index 0000000000000..e6d9629b170ff --- /dev/null +++ b/src/bin/pg_combinebackup/po/ko.po @@ -0,0 +1,918 @@ +# Korean message translation file for pg_combinebackup +# Copyright (C) 2025 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_combinebackup (PostgreSQL) package. +# Ioseph Kim , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2025-01-17 04:52+0000\n" +"PO-Revision-Date: 2025-01-18 00:54+0900\n" +"Last-Translator: Ioseph Kim \n" +"Language-Team: Korean team \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "오류: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "경고: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "상세정보: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "힌트: " + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" + +#: ../../common/controldata_utils.c:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "\"%s\" 파일을 닫을 수 없음: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 불일치" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"바이트 순서가 일치하지 않습니다.\n" +"pg_control 파일을 저장하는 데 사용된 바이트 순서는 \n" +"이 프로그램에서 사용하는 순서와 일치해야 합니다. 이 경우 아래 결과는 올바르" +"지 않으며\n" +"현재 PostgreSQL 설치본과 이 데이터 디렉터리가 호환하지 않습니다." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "\"%s\" 파일 쓰기 실패: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일 fsync 실패: %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "메모리 부족" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "성공" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "대상 버퍼가 너무 작습니다." + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "OpenSSL 실패" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "null 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일 대상으로 파일 시스템 동기화를 할 수 없습니다: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "재귀적 하향 구문분석기는 증분 토큰분석기을 사용할 수 없습니다." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "증분 구문분석기는 증분 토큰분석기를 필요로 합니다." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON 계층이 너무 깊음, 허용하는 최대 깊이는 6400입니다." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "\"\\%.*s\" 이스케이프 표기가 바르지 않습니다." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "0x%02x 값의 문자는 이스케이프 처리를 해야함." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "입력이 끝나야하는데, \"%.*s\" 발견했습니다." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "배열 요소나 \"]\" 문자를 기대했는데, \"%.*s\" 발견했습니다." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "\",\" 또는 \"]\" 문자를 기대했는데, \"%.*s\" 발견했습니다." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "\":\" 문자를 기대했는데, \"%.*s\" 발견했습니다." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "JSON 값을 기대했는데, \"%.*s\" 값임" + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "입력 문자열이 예상치 않게 끝났음." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "문자열이나, \"}\"가 필요한데 \"%.*s\"이(가) 있음" + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "\",\" 또는 \"}\"가 필요한데 \"%.*s\"이(가) 있음" + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "문자열 값을 기대했는데, \"%.*s\" 값임" + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "잘못된 토큰: \"%.*s\"" + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 값은 text 형으로 변환할 수 없음." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "\"\\u\" 표기법은 뒤에 4개의 16진수가 와야 합니다." + +#: ../../common/jsonapi.c:2169 +msgid "" +"Unicode escape values cannot be used for code point values above 007F when " +"the encoding is not UTF8." +msgstr "" +"서버 인코딩이 UTF8이 아닌 경우 007F보다 큰 코드 지점 값에는 유니코드 이스케이" +"프 값을 사용할 수 없음" + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "" +"Unicode escape value could not be translated to the server's encoding %s." +msgstr "유니코드 이스케이프 값을 %s 서버 인코딩으로 변환할 수 없음." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "유니코드 상위 surrogate(딸림 코드)는 상위 딸림 코드 뒤에 오면 안됨." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "유니코드 상위 surrogate(딸림 코드) 뒤에는 하위 딸림 코드가 있어야 함." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "메니페스트 체크섬 초기화를 할 수 없음" + +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "메니페스트가 비정상적으로 끝났음" + +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "메니페스트 체크섬 갱신 할 수 없음" + +#: ../../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "비정상적인 개체 시작" + +#: ../../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "비정상적인 개체 끝" + +#: ../../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "비정상적인 배열 시작" + +#: ../../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "비정상적인 배열 끝" + +#: ../../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "버전 지시자가 있어야 함" + +#: ../../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "최상위 필드를 알 수 없음" + +#: ../../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "예상치 못한 파일 필드" + +#: ../../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "예상치 못한 WAL 범위 필드" + +#: ../../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "예상치 못한 개체 필드" + +#: ../../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "예상치 못한 스칼라" + +#: ../../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "매니페이스 버전이 정수가 아님" + +#: ../../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "예상치 못한 메니페스트 버전" + +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "매니페이스 안 system identifier가 정수가 아님" + +#: ../../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "패스 이름 빠짐" + +#: ../../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "패스 이름과 인코딩 된 패스 이름이 함께 있음" + +#: ../../common/parse_manifest.c:666 +msgid "missing size" +msgstr "크기 빠짐" + +#: ../../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "알고리즘 없는 체크섬" + +#: ../../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "파일 이름을 디코딩할 수 없음" + +#: ../../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "파일 크기가 정수가 아님" + +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "알 수 없는 체크섬 알고리즘: \"%s\"" + +#: ../../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "\"%s\" 파일의 체크섬이 잘못됨: \"%s\"" + +#: ../../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "타임라인 빠짐" + +#: ../../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "시작 LSN 빠짐" + +#: ../../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "끝 LSN 빠짐" + +#: ../../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "타임라인이 정수가 아님" + +#: ../../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "시작 LSN 값을 분석할 수 없음" + +#: ../../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "끝 LSN 값을 분석할 수 없음" + +#: ../../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "적어도 2줄이 더 있어야 함" + +#: ../../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "마지막 줄에 줄바꿈 문자가 없음" + +#: ../../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "메니페스트 체크섬 마무리 작업 할 수 없음" + +#: ../../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "메니페스트에 체크섬 없음" + +#: ../../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "잘못된 메니페스트 체크섬: \"%s\"" + +#: ../../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "메니페스트 체크섬 불일치" + +#: ../../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "백업 메니페스트 구문 분석 실패: %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값은 %s 옵션의 값으로 적당하지 않음" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 값은 %d부터 %d까지만 허용합니다" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s: %s 구문분석 실패" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s: %s 값의 끝이 이상함" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s: %s 값의 TLI 구문분석 실패" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s: 바르지 않은 TLI" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s: %s 찾지 못함" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s: %s은(는) %s을(를) 필요로 함" + +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "\"%s\" 파일 쓰기 실패: %d/%d 만큼 씀" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "\"%s\" 파일 체크섬을 갱신할 수 없음" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "\"%s\" 파일 쓰기 실패: %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "\"%s\"파일 쓰기 실패: 시작위치=%u, %d/%d 만큼 씀" + +#: copy_file.c:199 reconstruct.c:784 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 클론하는 동안 오류 발생: %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "\"%s\" 파일을 만들 수 없음: %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "\"%s\" 파일을 \"%s\" 파일로 클론하는 동안 오류 발생: %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "이 운영체제는 파일 클론 기능을 제공하지 않습니다." + +#: copy_file.c:278 reconstruct.c:704 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 copy_file_range 기능으로 복사 중 오류: %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:724 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "이 운영체제는 copy_file_range 기능을 지원하지 않습니다." + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 복사할 수 없음: %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "\"%s\" 파일 없음" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "\"%s\" 파일 읽기 실패: %d/%lld 읽음" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "\"%s\" 파일 읽기 실패: %lld/%lld 읽음" + +#: load_manifest.c:248 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "백업 매니페이스 파일 버전이 1인 경우는 증분 백업을 지원하지 않음" + +#: load_manifest.c:280 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "백업 메니페스트 안에 경로 이름이 중복됨: \"%s\"" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "입력 디렉터리를 지정하지 않았음" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "자료가 저장될 디렉터리를 지정하지 않았음" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: 매니페이스 시스템 식별번호는 %llu인데, 컨트롤 파일은 %llu임" + +#: pg_combinebackup.c:340 +#, c-format +msgid "" +"cannot generate a manifest because no manifest is available for the final " +"input backup" +msgstr "마지막 입력 백업용 매니페이스가 없어 매니페이스를 만들 수 없음" + +#: pg_combinebackup.c:387 +#, c-format +msgid "could not create symbolic link from \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 심볼릭 링크로 만들 수 없음: %m" + +#: pg_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "디렉터리 이름이 너무 김" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "테이블스페이스 맵핑 하는 곳에서 \"=\" 문자가 중복 되어 있음" + +#: pg_combinebackup.c:469 +#, c-format +msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" +msgstr "" +"\"%s\" 형식의 테이블스페이스 맵핑이 잘못 되었음, \"OLDDIR=NEWDIR\" 형식이어" +"야 함" + +#: pg_combinebackup.c:480 pg_combinebackup.c:484 +#, c-format +msgid "old directory is not an absolute path in tablespace mapping: %s" +msgstr "테이블스페이스 맵핑용 옛 디렉터리가 절대 경로가 아님: %s" + +#: pg_combinebackup.c:553 +#, c-format +msgid "" +"backup at \"%s\" is a full backup, but only the first backup should be a " +"full backup" +msgstr "\"%s\"의 백업은 전체 백업이지만, 첫 백업 단 하나만 전체 백업이어야 함" + +#: pg_combinebackup.c:556 +#, c-format +msgid "" +"backup at \"%s\" is an incremental backup, but the first backup should be a " +"full backup" +msgstr "\"%s\"의 백업은 증분 백업이지만, 첫 백업은 전체 백업이어야 함" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "\"%s\"의 백업은 타임라인 %u번으로 시작하지만, 기대번호는 %u임" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "\"%s\"의 백업은 시작 LSN이 %X/%X이지만, 기대 LSN은 %X/%X임" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s: CRC 잘못됨" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s: 예상치 못한 컨트롤 파일 버전" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s: 예상 시스템 식별번호는 %llu이지만, %llu임" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "일부 백업만 체크섬 기능이 활성화 되었음" + +#: pg_combinebackup.c:658 +#, c-format +msgid "" +"Disable, and optionally reenable, checksums on the output directory to avoid " +"failures." +msgstr "" +"실패를 피하기 위해 출력 디렉터리의 체크섬 기능을 비활성하고, 다 합치고 나서 " +"활성화하는 방법이 있음." + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "\"%s\" 출력 디렉터리 삭제 중" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "출력 디렉터리 삭제 실패" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "\"%s\" 출력 디렉터리 안 파일들을 삭제 중" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "출력 디렉터리 안 파일 삭제 실패" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "\"%s\" 디렉터리가 비어있지 않습니다." + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "" +"%s reconstructs full backups from incrementals.\n" +"\n" +msgstr "" +"%s은 증분 백업들을 합쳐 전체 백업을 재생성 합니다.\n" +"\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "사용법:\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [옵션]... 디렉터리...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"옵션들:\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug 디버깅에 필요한 정보들도 함께 출력함\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr " -n, --dry-run 실 작업은 진행하지 않음\n" + +#: pg_combinebackup.c:765 +#, c-format +msgid "" +" -N, --no-sync do not wait for changes to be written safely to " +"disk\n" +msgstr "" +" -N, --no-sync 작업 완료 뒤 디스크 동기화 작업을 하지 않음\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=DIRECTORY 출력 디렉터리\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" OLDDIR을 NEWDIR로 테이블스페이스 재조정\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr " --clone 파일을 복사 대신에 클론 (reflink)\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy 파일 복사 (기본값)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr "" +" --copy-file-range 복사 할 때 copy using copy_file_range() 사용\n" + +#: pg_combinebackup.c:772 +#, 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" +" 매니페스트 체크섬 알고리즘 지정\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest 백업 매니페이스 파일 만들지 않음\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD 파일을 디스크에 동기화 하는 방법 지정\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version 버전 정보를 보여주고 마침\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help 이 도움말을 보여주고 마침\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"문제점 보고 주소: <%s>\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s 홈페이지: <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "\"%s\" 심볼릭 링크 건너뜀" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "\"%s\" 특수 파일을 건너뜀" + +#: pg_combinebackup.c:1073 reconstruct.c:305 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "\"%s\" 매니페스트 파일에 \"%s\" 파일에 대한 정보가 없음" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s: 서버 버전이 너무 낮음" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s: 버전 번호를 해석할 수 없음" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "\"%s\" 심볼릭 링크 파일을 읽을 수 없음: %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "\"%s\" 심볼릭 링크의 대상이 너무 긺" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "\"%s\" 심볼릭 링크 대상이 상대 경로임" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "\"%s\"의 테이블스페이스는 테이블스페이스 맵핑 정보가 없음" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "OIDs %u, %u 두 테이블스페이스는 같은 \"%s\" 디렉터리를 사용함" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 닫을 수 없음: %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "\"%s\" 파일이 너무 큽니다." + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "\"%s\" 파일을 읽을 수 없음: %zd/%lld 만 읽었음" + +#: reconstruct.c:339 +#, c-format +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "전체 백업에 예상치 못한 증분 파일이 있음: \"%s\"" + +#: reconstruct.c:423 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "\"%s\" 파일 크기가 너무 적음: 기대값=%llu, 실재값=%llu" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "\"%s\" 파일에 잘못된 증분 매직 번호(0x%x)가 있음 (기대값 0x%x)" + +#: reconstruct.c:471 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "\"%s\" 파일의 블록 수(%u)가 조각 크기(%u)보다 큼" + +#: reconstruct.c:478 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "\"%s\" 파일의 삭제 블럭 길이(%u)가 조각 크기(%u)보다 큼" + +#: reconstruct.c:542 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "\"%s\" 파일 읽을 수 없음: %d/%u만 읽음" + +#: reconstruct.c:786 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "\"%s\" 파일 읽을 수 없음: 시작위치 %llu, %d/%d만 읽음" diff --git a/src/bin/pg_combinebackup/po/ru.po b/src/bin/pg_combinebackup/po/ru.po new file mode 100644 index 0000000000000..5c2af7387c385 --- /dev/null +++ b/src/bin/pg_combinebackup/po/ru.po @@ -0,0 +1,944 @@ +# Alexander Lakhin , 2024. +msgid "" +msgstr "" +"Project-Id-Version: pg_combinebackup (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-11-09 08:04+0300\n" +"Last-Translator: Alexander Lakhin \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"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" +"X-Generator: Lokalize 21.12.3\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "ошибка: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "предупреждение: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "подробности: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "подсказка: " + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" + +#: ../../common/controldata_utils.c:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"возможно несоответствие порядка байт\n" +"Порядок байт в файле pg_control может не соответствовать используемому\n" +"этой программой. В этом случае результаты будут неверными и\n" +"установленный PostgreSQL будет несовместим с этим каталогом данных." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не удалось записать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "нехватка памяти" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "успех" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "буфер назначения слишком мал" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "ошибка OpenSSL" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "" +"Инкрементальный лексический анализатор не подходит для нисходящего " +"рекурсивного разбора." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "" +"Для инкрементального разбора требуется инкрементальный лексический " +"анализатор." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "" +"Слишком большая вложенность JSON, максимальная допустимая глубина: 6400." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Неверная спецпоследовательность: \"\\%.*s\"." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "Символ с кодом 0x%02x необходимо экранировать." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Ожидался конец текста, но обнаружено продолжение \"%.*s\"." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Ожидался элемент массива или \"]\", но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Ожидалась \",\" или \"]\", но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Ожидалось \":\", но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Ожидалось значение JSON, но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "Неожиданный конец входной строки." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Ожидалась строка или \"}\", но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Ожидалась \",\" или \"}\", но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "Ожидалась строка, но обнаружено \"%.*s\"." + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "Ошибочный элемент \"%.*s\"." + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 нельзя преобразовать в текст." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "За \"\\u\" должны следовать четыре шестнадцатеричные цифры." + +#: ../../common/jsonapi.c:2169 +msgid "" +"Unicode escape values cannot be used for code point values above 007F when " +"the encoding is not UTF8." +msgstr "" +"Спецкоды Unicode для значений выше 007F можно использовать только с " +"кодировкой UTF8." + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "" +"Unicode escape value could not be translated to the server's encoding %s." +msgstr "Спецкод Unicode нельзя преобразовать в серверную кодировку %s." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "" +"Старшее слово суррогата Unicode не может следовать за другим старшим словом." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "Младшее слово суррогата Unicode должно следовать за старшим словом." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "не удалось подготовить контекст контрольной суммы манифеста" + +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "неожиданный конец манифеста" + +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "не удалось изменить контекст контрольной суммы манифеста" + +#: ../../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "неожиданное начало объекта" + +#: ../../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "неожиданный конец объекта" + +#: ../../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "неожиданное начало массива" + +#: ../../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "неожиданный конец массива" + +#: ../../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "ожидалось указание версии" + +#: ../../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "нераспознанное поле на верхнем уровне" + +#: ../../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "неизвестное поле для файла" + +#: ../../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "неизвестное поле в указании диапазона WAL" + +#: ../../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "неожиданное поле объекта" + +#: ../../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "неожиданное скалярное значение" + +#: ../../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "версия манифеста не является целым числом" + +#: ../../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "неожиданная версия манифеста" + +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "идентификатор системы в манифесте не является целым числом" + +#: ../../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "отсутствует указание пути" + +#: ../../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "путь задан в обычном виде и в закодированном" + +#: ../../common/parse_manifest.c:666 +msgid "missing size" +msgstr "отсутствует указание размера" + +#: ../../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "не задан алгоритм расчёта контрольной суммы" + +#: ../../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "не удалось декодировать имя файла" + +#: ../../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "размер файла не является целочисленным" + +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "нераспознанный алгоритм расчёта контрольных сумм: \"%s\"" + +#: ../../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "неверная контрольная сумма для файла \"%s\": \"%s\"" + +#: ../../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "отсутствует линия времени" + +#: ../../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "отсутствует начальный LSN" + +#: ../../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "отсутствует конечный LSN" + +#: ../../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "линия времени задана не целым числом" + +#: ../../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "не удалось разобрать начальный LSN" + +#: ../../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "не удалось разобрать конечный LSN" + +#: ../../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "ожидалось как минимум 2 строки" + +#: ../../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "последняя строка не оканчивается символом новой строки" + +#: ../../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "не удалось завершить расчёт контрольной суммы манифеста" + +#: ../../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "в манифесте нет контрольной суммы" + +#: ../../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "неверная контрольная сумма в манифесте: \"%s\"" + +#: ../../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "ошибка контрольной суммы манифеста" + +#: ../../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "не удалось разобрать манифест копии: %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неверное значение \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "значение %s должно быть в диапазоне %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s: не удалось разобрать %s" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s: неподходящее окончание для %s" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s: не удалось разобрать TLI для %s" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s: неверное значение TLI" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s: не удалось найти %s" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s: %s требует %s" + +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "не удалось записать файл \"%s\" (записано байт: %d из %d)" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "не удалось изменить контекст контрольной суммы файла \"%s\"" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "не удалось записать в файл \"%s\": %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "" +"не удалось записать в файл \"%s\" (смещение %u, записано байт: %d из %d)" + +#: copy_file.c:199 reconstruct.c:784 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "ошибка при клонировании файла \"%s\" в \"%s\": %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "не удалось создать файл \"%s\": %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "ошибка при клонировании файла \"%s\" в \"%s\": %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "клонирование файлов не поддерживается в этой ОС" + +#: copy_file.c:278 reconstruct.c:704 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "ошибка при копировании фрагмента файла \"%s\" в \"%s\": %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:724 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range не поддерживается в этой ОС" + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "не удалось скопировать файл \"%s\" в \"%s\": %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "файл \"%s\" не существует" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %lld)" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %lld из %lld)" + +#: load_manifest.c:248 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "" +"с версией 1 манифеста копии инкрементальное копирование не поддерживается" + +#: load_manifest.c:280 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "дублирующийся путь в манифесте копии: \"%s\"" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Для дополнительной информации попробуйте \"%s --help\"." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "входные каталоги не указаны" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "выходной каталог не указан" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: идентификатор системы в манифесте %llu, а в управляющем файле %llu" + +#: pg_combinebackup.c:340 +#, c-format +msgid "" +"cannot generate a manifest because no manifest is available for the final " +"input backup" +msgstr "" +"сгенерировать манифест нельзя по причине отсутствия манифеста в последней " +"указанной копии" + +#: pg_combinebackup.c:387 +#, c-format +msgid "could not create symbolic link from \"%s\" to \"%s\": %m" +msgstr "не удалось создать символическую ссылку \"%s\" в \"%s\": %m" + +#: pg_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "не удалось создать каталог \"%s\": %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "слишком длинное имя каталога" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "несколько знаков \"=\" в сопоставлении табличного пространства" + +#: pg_combinebackup.c:469 +#, c-format +msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" +msgstr "" +"сопоставление табл. пространства записано неверно: \"%s\"; должно быть " +"\"СТАРЫЙ_КАТАЛОГ=НОВЫЙ_КАТАЛОГ\"" + +#: pg_combinebackup.c:480 pg_combinebackup.c:484 +#, c-format +msgid "old directory is not an absolute path in tablespace mapping: %s" +msgstr "" +"старый каталог в сопоставлении табл. пространства задан не абсолютным путём: " +"%s" + +#: pg_combinebackup.c:553 +#, c-format +msgid "" +"backup at \"%s\" is a full backup, but only the first backup should be a " +"full backup" +msgstr "" +"копия в \"%s\" является полной копией, но полную копию можно передать только " +"первой в списке" + +#: pg_combinebackup.c:556 +#, c-format +msgid "" +"backup at \"%s\" is an incremental backup, but the first backup should be a " +"full backup" +msgstr "" +"копия в \"%s\" является инкрементальной, но первой в списке должна " +"передаваться полная копия" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "копия в \"%s\" начинается с линии времени %u, а ожидалась %u" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "копия в \"%s\" начинается с LSN %X/%X, а ожидался %X/%X" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s: ошибка CRC" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s: неожиданная версия управляющего файла" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s: ожидался идентификатор системы %llu, но обнаружен %llu" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "контрольные суммы включены только в некоторых копиях" + +#: pg_combinebackup.c:658 +#, c-format +msgid "" +"Disable, and optionally reenable, checksums on the output directory to avoid " +"failures." +msgstr "" +"Отключите (и при необходимости вновь включите) контрольные суммы в выходном " +"каталоге во избежание сбоев." + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "удаление выходного каталога \"%s\"" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "ошибка при удалении выходного каталога" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "удаление содержимого выходного каталога \"%s\"" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "ошибка при удалении содержимого выходного каталога" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "каталог \"%s\" существует, но он не пуст" + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "" +"%s reconstructs full backups from incrementals.\n" +"\n" +msgstr "" +"%s реконструирует полные копии из инкрементальных.\n" +"\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "Использование:\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [ПАРАМЕТР]... КАТАЛОГ...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Параметры:\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug выдавать много отладочных сообщений\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr "" +" -n, --dry-run не выполнять никаких практических действий\n" + +#: pg_combinebackup.c:765 +#, c-format +msgid "" +" -N, --no-sync do not wait for changes to be written safely to " +"disk\n" +msgstr "" +" -N, --no-sync не ждать завершения сохранения данных на диске\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=КАТАЛОГ выходной каталог\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr "" +" -T, --tablespace-mapping=СТАРЫЙ_КАТАЛОГ=НОВЫЙ_КАТАЛОГ\n" +" перенести табличное пространство из старого " +"каталога\n" +" в новый\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr "" +" --clone клонировать (используя reflink), а не " +"копировать\n" +" файлы\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy копировать файлы (по умолчанию)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr "" +" --copy-file-range использовать для копирования системную функцию\n" +" copy_file_range()\n" + +#: pg_combinebackup.c:772 +#, 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" +" алгоритм подсчёта контрольных сумм в манифесте\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest отключить создание манифеста копии\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показать эту справку и выйти\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Об ошибках сообщайте по адресу <%s>.\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Домашняя страница %s: <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "символическая ссылка \"%s\" пропускается" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "специальный файл \"%s\" пропускается" + +#: pg_combinebackup.c:1073 reconstruct.c:305 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "файл манифеста \"%s\" не содержит записи о файле \"%s\"" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s: версия сервера слишком старая" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s: не удалось разобрать номер версии" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "не удалось прочитать символическую ссылку \"%s\": %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "целевой путь символической ссылки \"%s\" слишком длинный" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "целевой путь символической ссылки \"%s\" является относительным" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "для табличного пространства в \"%s\" не задано сопоставление" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "" +"два табличных пространства с OIDs %u и %u указывают на один каталог \"%s\"" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "не удалось закрыть каталог \"%s\": %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "файл \"%s\" слишком большой" + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %zd из %lld)" + +#: reconstruct.c:339 +#, c-format +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "полная копия содержит неожиданный инкрементальный файл \"%s\"" + +#: reconstruct.c:423 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "файл \"%s\" слишком мал (ожидалось байт: %llu, фактически: %llu)" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "" +"в файла \"%s\" неверное контрольное число инкрементальной копии (0x%x, " +"ожидалось: 0x%x)" + +#: reconstruct.c:471 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "в файле \"%s\" количество блоков %u превышает размер сегмента %u" + +#: reconstruct.c:478 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "" +"в файле \"%s\" длина отсечения в блоках (%u) превышает размер сегмента %u" + +#: reconstruct.c:542 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %u)" + +#: reconstruct.c:786 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "" +"не удалось прочитать файл \"%s\" по смещению %llu (прочитано байт: %d из %d)" diff --git a/src/bin/pg_combinebackup/po/sv.po b/src/bin/pg_combinebackup/po/sv.po new file mode 100644 index 0000000000000..06327f49fe97d --- /dev/null +++ b/src/bin/pg_combinebackup/po/sv.po @@ -0,0 +1,896 @@ +# Swedish message translation file for pg_combinebackup +# Copyright (C) 2024 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_combinebackup (PostgreSQL) package. +# Dennis Björklund , 2024, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2025-02-12 13:52+0000\n" +"PO-Revision-Date: 2025-02-12 20:37+0100\n" +"Last-Translator: Dennis Björklund \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "fel: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "varning: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "detalj: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "tips: " + +#: ../../common/controldata_utils.c:97 +#, 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:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:540 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:369 reconstruct.c:740 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "kunde inte stänga fil \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"möjligt fel i byteordning\n" +"Den byteordning som filen från pg_control lagrats med passar kanske\n" +"inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" +"och PostgreSQL-installationen vara inkompatibel med databaskatalogen." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:523 reconstruct.c:638 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:759 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "kunde inte skriva fil \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "slut på minne" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "lyckades" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "destinationsbuffer för liten" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "OpenSSL-fel" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:204 +#: reconstruct.c:421 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "Recursive-descent-parser kan inte använda inkrementell lexer." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "Inkrementell parser kräver en inkrementell lexer." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON nästlad för djupt, maximal tillåtet djup är 6400." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Escape-sekvens \"\\%.*s\" är ogiltig." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "Tecken med värde 0x%02x måste escape:as." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Förväntade slut på indata, men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Färväntade array-element eller \"]\", men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Förväntade \",\" eller \"]\", men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Förväntade sig \":\" men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Förväntade JSON-värde, men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "Indatasträngen avslutades oväntat." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Färväntade sträng eller \"}\", men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Förväntade sig \",\" eller \"}\" men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "Förväntade sträng, men hittade \"%.*s\"." + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "Token \"%.*s\" är ogiltig." + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 kan inte konverteras till text." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "\"\\u\" måste följas av fyra hexdecimala siffror." + +#: ../../common/jsonapi.c:2169 +msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." +msgstr "Escape-värden för unicode kan inte användas för kodpunkter med värde över 007F när kodningen inte är UTF8." + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "Unicode escape value could not be translated to the server's encoding %s." +msgstr "Escape-värde för unicode kan inte översättas till serverns kodning %s." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "Unicodes övre surrogathalva får inte komma efter en övre surrogathalva." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "Unicodes lägre surrogathalva måste följa en övre surrogathalva." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "kunde inte initiera kontrollsumma för backup-manifest" + +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 +msgid "manifest ended unexpectedly" +msgstr "manifestet avslutades oväntat" + +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 +#, c-format +msgid "could not update checksum of manifest" +msgstr "kunde inte uppdatera kontrollsumma för backup-manifest" + +#: ../../common/parse_manifest.c:301 +msgid "unexpected object start" +msgstr "oväntad objektstart" + +#: ../../common/parse_manifest.c:336 +msgid "unexpected object end" +msgstr "oväntat objektslut" + +#: ../../common/parse_manifest.c:365 +msgid "unexpected array start" +msgstr "oväntad array-start" + +#: ../../common/parse_manifest.c:390 +msgid "unexpected array end" +msgstr "oväntat array-slut" + +#: ../../common/parse_manifest.c:417 +msgid "expected version indicator" +msgstr "förväntade en versionsindikator" + +#: ../../common/parse_manifest.c:453 +msgid "unrecognized top-level field" +msgstr "okänt toppnivåfält" + +#: ../../common/parse_manifest.c:472 +msgid "unexpected file field" +msgstr "oväntat filfält" + +#: ../../common/parse_manifest.c:486 +msgid "unexpected WAL range field" +msgstr "oväntat WAL-intervall-fält" + +#: ../../common/parse_manifest.c:492 +msgid "unexpected object field" +msgstr "oväntat objektfält" + +#: ../../common/parse_manifest.c:582 +msgid "unexpected scalar" +msgstr "oväntad skalar" + +#: ../../common/parse_manifest.c:608 +msgid "manifest version not an integer" +msgstr "manifestversion är inte ett heltal" + +#: ../../common/parse_manifest.c:612 +msgid "unexpected manifest version" +msgstr "oväntad manifestversion" + +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "manifestets systemidentifierare är inte ett heltal" + +#: ../../common/parse_manifest.c:661 +msgid "missing path name" +msgstr "saknas sökväg" + +#: ../../common/parse_manifest.c:664 +msgid "both path name and encoded path name" +msgstr "både sökväg och kodad sökväg" + +#: ../../common/parse_manifest.c:666 +msgid "missing size" +msgstr "saknar storlek" + +#: ../../common/parse_manifest.c:669 +msgid "checksum without algorithm" +msgstr "kontrollsumma utan algoritm" + +#: ../../common/parse_manifest.c:683 +msgid "could not decode file name" +msgstr "kunde inte avkoda filnamn" + +#: ../../common/parse_manifest.c:693 +msgid "file size is not an integer" +msgstr "filstorlek är inte ett haltal" + +#: ../../common/parse_manifest.c:699 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "okänd algoritm för kontrollsumma: \"%s\"" + +#: ../../common/parse_manifest.c:718 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "ogiltig kontrollsumma för fil \"%s\": \"%s\"" + +#: ../../common/parse_manifest.c:761 +msgid "missing timeline" +msgstr "saknar tidslinje" + +#: ../../common/parse_manifest.c:763 +msgid "missing start LSN" +msgstr "saknar start-LSN" + +#: ../../common/parse_manifest.c:765 +msgid "missing end LSN" +msgstr "saknar slut-LSN" + +#: ../../common/parse_manifest.c:771 +msgid "timeline is not an integer" +msgstr "tidslinje är inte ett heltal" + +#: ../../common/parse_manifest.c:774 +msgid "could not parse start LSN" +msgstr "kunde inte parsa start-LSN" + +#: ../../common/parse_manifest.c:777 +msgid "could not parse end LSN" +msgstr "kunde inte parsa slut-LSN" + +#: ../../common/parse_manifest.c:842 +msgid "expected at least 2 lines" +msgstr "förväntade minst två rader" + +#: ../../common/parse_manifest.c:845 +msgid "last line not newline-terminated" +msgstr "sista raden är inte nyradsterminerad" + +#: ../../common/parse_manifest.c:864 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "kunde inte göra klart kontrollsumma för backup-manifest" + +#: ../../common/parse_manifest.c:868 +#, c-format +msgid "manifest has no checksum" +msgstr "manifestet har ingen kontrollsumma" + +#: ../../common/parse_manifest.c:872 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "ogiltig kontrollsumma för manifest: \"%s\"" + +#: ../../common/parse_manifest.c:876 +#, c-format +msgid "manifest checksum mismatch" +msgstr "kontrollsumma för manifest matchar inte" + +#: ../../common/parse_manifest.c:891 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "kunde inte parsa backup-manifest: %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s måste vara i intervallet %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s: kunde inte parsa %s" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s: felaktig avslutare för %s" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s: kunde inte parsa TLI för %s" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s: ogitlig TLI" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s: kunde inte hitta %s" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s: %s kräver %s" + +#: backup_label.c:162 reconstruct.c:761 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "kunde inte skriva fil \"%s\": skrev %d av %d" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:721 +#: reconstruct.c:767 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "kunde inte uppdatera kontrollsumma för filen \"%s\"" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "kunde inte skriva till fil \"%s\": %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "kunde inte skriva till fil \"%s\", offset %u: skrev %d av %d" + +#: copy_file.c:199 reconstruct.c:784 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "kunde inte läsa från fil \"%s\": %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "fel vid kloning av fil \"%s\" till \"%s\": %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "kunde inte skapa fil \"%s\": %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "fel vid kloning av fil \"%s\" till \"%s\": %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "filkloning stöds inte på denna plattform" + +#: copy_file.c:278 reconstruct.c:704 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "fel vid kopiering av filintervall från \"%s\" till \"%s\": %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:724 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range stöds inte på denna plattform" + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "kunde inte kopiera fil \"%s\" till \"%s\": %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "filen \"%s\" finns inte" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "kunde inte läsa fil \"%s\": läste %d av %lld" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "kunde inte läsa fil \"%s\": läste %lld av %lld" + +#: load_manifest.c:248 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "version 1 av backup-manifest stöder inte inkrementell backup" + +#: load_manifest.c:280 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "duplicerad sökväg i backup-manifest: \"%s\"" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Försök med \"%s --help\" för mer information." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "inga indatakataloger har angivits" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "ingen utdatakatalog angiven" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: manifestets systemidentifierare är %llu men kontrollfilern har %llu" + +#: pg_combinebackup.c:340 +#, c-format +msgid "cannot generate a manifest because no manifest is available for the final input backup" +msgstr "kan inte skapa manifest då inget manifest är tillgängligt för den avslutande indatabackup:en" + +#: pg_combinebackup.c:387 +#, 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_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "kunde inte skapa katalog \"%s\": %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "katalognamn för långt" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "multipla \"=\"-tecken i tablespace-mappning" + +#: pg_combinebackup.c:469 +#, c-format +msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" +msgstr "ogiltigt tablespace-mappningsformat \"%s\", måste vara \"OLDDIR=NEWDIR\"" + +#: pg_combinebackup.c:480 pg_combinebackup.c:484 +#, 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_combinebackup.c:553 +#, c-format +msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" +msgstr "backup:en vid \"%s\" är en full backup men det är bara den första backup:en som skall vara en full backup" + +#: pg_combinebackup.c:556 +#, c-format +msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" +msgstr "backup:en vid \"%s\" är en inkrementell backup men den första backupen skall vara en full backup" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "backup:en vid \"%s\" startar på tidslinjen %u men det förväntades vara %u" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "backup:eb vid \"%s\" startar vid LSN %X/%X men förväntades vare %X/%X" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s: CRC är inkorrekt" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s: oväntad version på kontrollfil" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s: förväntade systemidentifierare %llu men hittade %llu" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "bara några backup:er har checksummor aktiverade" + +#: pg_combinebackup.c:658 +#, c-format +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "Avaktivera och möjligen återaktivera checksummor på utdatakatalogen för att undvika fel" + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "tar bort katalog för utdata \"%s\"" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "misslyckades att ta bort katalog för utdata" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "tar bort innehåll i katalog för utdata \"%s\"" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "misslyckades att ta bort innehåll i katalog för utdata" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "katalogen \"%s\" existerar men är inte tom" + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "kunde inte komma åt katalog \"%s\": %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "" +"%s reconstructs full backups from incrementals.\n" +"\n" +msgstr "" +"%s återskapar fulla backup:er från inkrementella.\n" +"\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "Användning:\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [FLAGGA]... KATALOG...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Flaggor:\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug generera massor med debug-utskrifter\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr " -n, --dry-run gör inga operationer\n" + +#: pg_combinebackup.c:765 +#, 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 ändingar säkert skrivits till disk\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=KATALOG katalog för utdata\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid "" +" -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr "" +" -T, --tablespace-mapping=FRÅNKAT=NYKAT\n" +" flytta tabellutrymme i FRÅNKAT till NYKAT\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr " --clone klona (reflink) filer istället för att kopiera\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy kopiera filer (standard)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr " --copy-file-range kopiera med systemaropet copy_file_range()\n" + +#: pg_combinebackup.c:772 +#, 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" +" algoritm att anvvända för checksummor i manifest\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest skapa inget backup-manifest\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa denna hjälp, avsluta sedan\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Rapportera fel till <%s>.\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "hemsida för %s: <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "hoppar över symbolisk länk \"%s\"" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "hoppar över specialfil \"%s\"" + +#: pg_combinebackup.c:1073 reconstruct.c:305 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "manifestfil \"%s\" innehåller ingen post för fil \"%s\"" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s: serverns version är för gammal" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s: kunde inte parsa versionnummer" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "kan inte läsa symbolisk länk \"%s\": %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "destinationen för symbolisk länk \"%s\" är för lång" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "destination för symbolisk länk \"%s\" är relativ" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "tabellutrymme vid \"%s\" har ingen mapping" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "tabellutrymme med OID:er %u och %u pekar på samma katalog \"%s\"" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "kunde inte stänga katalog \"%s\": %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "filen \"%s\" är för stor" + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "kunde inte läsa fil \"%s\": läste %zd av %lld" + +#: reconstruct.c:339 +#, c-format +msgid "full backup contains unexpected incremental file \"%s\"" +msgstr "full backup innehåller in oväntad inkrementell fil \"%s\"" + +#: reconstruct.c:423 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "filen \"%s\" är för kort: förväntade %llu, hittade %llu" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "filen \"%s\" har ett felaktigt inkrementellt magiskt nummer (0x%x, förväntade 0x%x)" + +#: reconstruct.c:471 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "filen \"%s\" har ett blockantal %u som är större än segmentstorleken %u" + +#: reconstruct.c:478 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "filen \"%s\" trunkeringsblocklängd %u som är större än segmentstorleken %u" + +#: reconstruct.c:542 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "kunde inte läsa filen \"%s\": läste %d av %u" + +#: reconstruct.c:786 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "kunde inte läsa från filen \"%s\", offset %llu: läste %d av %d" diff --git a/src/bin/pg_combinebackup/po/uk.po b/src/bin/pg_combinebackup/po/uk.po new file mode 100644 index 0000000000000..51e19b6220614 --- /dev/null +++ b/src/bin/pg_combinebackup/po/uk.po @@ -0,0 +1,876 @@ +msgid "" +msgstr "" +"Project-Id-Version: postgresql\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-08-31 06:22+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" +"Last-Translator: \n" +"Language-Team: Ukrainian\n" +"Language: uk_UA\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: postgresql\n" +"X-Crowdin-Project-ID: 324573\n" +"X-Crowdin-Language: uk\n" +"X-Crowdin-File: /REL_17_STABLE/pg_combinebackup.pot\n" +"X-Crowdin-File-ID: 1008\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "помилка: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "попередження: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "деталі: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "підказка: " + +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" + +#: ../../common/controldata_utils.c:110 copy_file.c:150 load_manifest.c:161 +#: load_manifest.c:199 pg_combinebackup.c:1400 reconstruct.c:527 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: backup_label.c:174 copy_file.c:68 pg_combinebackup.c:538 +#: pg_combinebackup.c:1175 reconstruct.c:356 reconstruct.c:727 +#: write_manifest.c:187 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "неможливо закрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "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." +msgstr "можлива помилка у послідовності байтів.\n" +"Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 backup_label.c:143 copy_file.c:66 +#: copy_file.c:139 copy_file.c:171 copy_file.c:175 copy_file.c:225 +#: copy_file.c:268 load_manifest.c:128 pg_combinebackup.c:523 +#: pg_combinebackup.c:1167 reconstruct.c:510 reconstruct.c:625 +#: write_manifest.c:250 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 backup_label.c:160 reconstruct.c:746 +#: write_manifest.c:260 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не вдалося записати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#, c-format +msgid "out of memory" +msgstr "недостатньо пам'яті" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "успіх" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "буфер призначення занадто малий" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "Помилка OpenSSL" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: backup_label.c:187 load_manifest.c:133 pg_combinebackup.c:676 +#: pg_combinebackup.c:1131 pg_combinebackup.c:1383 reconstruct.c:199 +#: reconstruct.c:408 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_combinebackup.c:933 pg_combinebackup.c:1256 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + +#: ../../common/jsonapi.c:2121 +msgid "Recursive descent parser cannot use incremental lexer." +msgstr "Рекурсивний спуск не може використовувати інкрементний лексичний аналізатор." + +#: ../../common/jsonapi.c:2123 +msgid "Incremental parser requires incremental lexer." +msgstr "Інкрементний аналізатор потребує Інкрементний лексичний аналізатор." + +#: ../../common/jsonapi.c:2125 +msgid "JSON nested too deep, maximum permitted depth is 6400." +msgstr "JSON вкладений занадто глибокий, максимально дозволена глибина - 6400." + +#: ../../common/jsonapi.c:2127 +#, c-format +msgid "Escape sequence \"\\%.*s\" is invalid." +msgstr "Неприпустима спеціальна послідовність \"\\%.*s\"." + +#: ../../common/jsonapi.c:2131 +#, c-format +msgid "Character with value 0x%02x must be escaped." +msgstr "Символ зі значенням 0x%02x повинен бути пропущений." + +#: ../../common/jsonapi.c:2135 +#, c-format +msgid "Expected end of input, but found \"%.*s\"." +msgstr "Очікувався кінець введення, але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2138 +#, c-format +msgid "Expected array element or \"]\", but found \"%.*s\"." +msgstr "Очікувався елемент масиву або \"]\", але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2141 +#, c-format +msgid "Expected \",\" or \"]\", but found \"%.*s\"." +msgstr "Очікувалось \",\" або \"]\", але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2144 +#, c-format +msgid "Expected \":\", but found \"%.*s\"." +msgstr "Очікувалось \":\", але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2147 +#, c-format +msgid "Expected JSON value, but found \"%.*s\"." +msgstr "Очікувалось значення JSON, але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2150 +msgid "The input string ended unexpectedly." +msgstr "Несподіваний кінець вхідного рядка." + +#: ../../common/jsonapi.c:2152 +#, c-format +msgid "Expected string or \"}\", but found \"%.*s\"." +msgstr "Очікувався рядок або \"}\", але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2155 +#, c-format +msgid "Expected \",\" or \"}\", but found \"%.*s\"." +msgstr "Очікувалось \",\" або \"}\", але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2158 +#, c-format +msgid "Expected string, but found \"%.*s\"." +msgstr "Очікувався рядок, але знайдено \"%.*s\"." + +#: ../../common/jsonapi.c:2161 +#, c-format +msgid "Token \"%.*s\" is invalid." +msgstr "Неприпустимий маркер \"%.*s\"." + +#: ../../common/jsonapi.c:2164 +msgid "\\u0000 cannot be converted to text." +msgstr "\\u0000 не можна перетворити в текст." + +#: ../../common/jsonapi.c:2166 +msgid "\"\\u\" must be followed by four hexadecimal digits." +msgstr "За \"\\u\" повинні прямувати чотири шістнадцяткових числа." + +#: ../../common/jsonapi.c:2169 +msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." +msgstr "Значення виходу Unicode не можна використовувати для значень кодових точок більше 007F, якщо кодування не UTF8." + +#: ../../common/jsonapi.c:2178 +#, c-format +msgid "Unicode escape value could not be translated to the server's encoding %s." +msgstr "Значення символу Unicode не вдалося перекласти в кодування сервера %s." + +#: ../../common/jsonapi.c:2185 +msgid "Unicode high surrogate must not follow a high surrogate." +msgstr "Старший сурогат Unicode не повинен прямувати за іншим старшим сурогатом." + +#: ../../common/jsonapi.c:2187 +msgid "Unicode low surrogate must follow a high surrogate." +msgstr "Молодший сурогат Unicode не повинен прямувати за іншим молодшим сурогатом." + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#, c-format +msgid "could not initialize checksum of manifest" +msgstr "не вдалося ініціалізувати контрольну суму маніфесту" + +#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +msgid "manifest ended unexpectedly" +msgstr "маніфест закінчився несподівано" + +#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#, c-format +msgid "could not update checksum of manifest" +msgstr "не вдалося оновити контрольну суму маніфесту" + +#: ../../common/parse_manifest.c:302 +msgid "unexpected object start" +msgstr "неочікуваний початок об'єкта" + +#: ../../common/parse_manifest.c:337 +msgid "unexpected object end" +msgstr "неочікуваний кінець об'єкта" + +#: ../../common/parse_manifest.c:366 +msgid "unexpected array start" +msgstr "неочікуваний початок масиву" + +#: ../../common/parse_manifest.c:391 +msgid "unexpected array end" +msgstr "неочікуваний кінець масиву" + +#: ../../common/parse_manifest.c:418 +msgid "expected version indicator" +msgstr "індикатор очікуваної версії" + +#: ../../common/parse_manifest.c:454 +msgid "unrecognized top-level field" +msgstr "нерозпізнане поле верхнього рівня" + +#: ../../common/parse_manifest.c:473 +msgid "unexpected file field" +msgstr "неочікуване поле файлу" + +#: ../../common/parse_manifest.c:487 +msgid "unexpected WAL range field" +msgstr "неочікуване поле діапазону WAL" + +#: ../../common/parse_manifest.c:493 +msgid "unexpected object field" +msgstr "неочікуване поле об'єкта" + +#: ../../common/parse_manifest.c:583 +msgid "unexpected scalar" +msgstr "неочікуваний скаляр" + +#: ../../common/parse_manifest.c:609 +msgid "manifest version not an integer" +msgstr "версія маніфесту не ціле число" + +#: ../../common/parse_manifest.c:613 +msgid "unexpected manifest version" +msgstr "неочікувана версія маніфесту" + +#: ../../common/parse_manifest.c:637 +msgid "system identifier in manifest not an integer" +msgstr "системний ідентифікатор в маніфесті не ціле число" + +#: ../../common/parse_manifest.c:662 +msgid "missing path name" +msgstr "пропущено шлях" + +#: ../../common/parse_manifest.c:665 +msgid "both path name and encoded path name" +msgstr "і ім'я шляху, і закодований шлях" + +#: ../../common/parse_manifest.c:667 +msgid "missing size" +msgstr "відсутній розмір" + +#: ../../common/parse_manifest.c:670 +msgid "checksum without algorithm" +msgstr "контрольна сума без алгоритму" + +#: ../../common/parse_manifest.c:684 +msgid "could not decode file name" +msgstr "не вдалося декодувати ім'я файлу" + +#: ../../common/parse_manifest.c:694 +msgid "file size is not an integer" +msgstr "розмір файлу не є цілим числом" + +#: ../../common/parse_manifest.c:700 pg_combinebackup.c:199 +#, c-format +msgid "unrecognized checksum algorithm: \"%s\"" +msgstr "нерозпізнаний алгоритм контрольної суми: \"%s\"" + +#: ../../common/parse_manifest.c:719 +#, c-format +msgid "invalid checksum for file \"%s\": \"%s\"" +msgstr "неприпустима контрольна сума для файлу \"%s\": \"%s\"" + +#: ../../common/parse_manifest.c:762 +msgid "missing timeline" +msgstr "відсутня часова шкала" + +#: ../../common/parse_manifest.c:764 +msgid "missing start LSN" +msgstr "відсутній LSN початку" + +#: ../../common/parse_manifest.c:766 +msgid "missing end LSN" +msgstr "відсутній LSN кінця" + +#: ../../common/parse_manifest.c:772 +msgid "timeline is not an integer" +msgstr "часова лінія не є цілим числом" + +#: ../../common/parse_manifest.c:775 +msgid "could not parse start LSN" +msgstr "не вдалося проаналізувати початковий LSN" + +#: ../../common/parse_manifest.c:778 +msgid "could not parse end LSN" +msgstr "не вдалося проаналізувати кінцевий LSN" + +#: ../../common/parse_manifest.c:843 +msgid "expected at least 2 lines" +msgstr "очікувалося принаймні 2 рядки" + +#: ../../common/parse_manifest.c:846 +msgid "last line not newline-terminated" +msgstr "останній рядок не завершений новим рядком" + +#: ../../common/parse_manifest.c:865 +#, c-format +msgid "could not finalize checksum of manifest" +msgstr "не вдалося остаточно завершити контрольну суму маніфесту" + +#: ../../common/parse_manifest.c:869 +#, c-format +msgid "manifest has no checksum" +msgstr "у маніфесті немає контрольної суми" + +#: ../../common/parse_manifest.c:873 +#, c-format +msgid "invalid manifest checksum: \"%s\"" +msgstr "неприпустима контрольна сума маніфесту: \"%s\"" + +#: ../../common/parse_manifest.c:877 +#, c-format +msgid "manifest checksum mismatch" +msgstr "невідповідність контрольної суми маніфесту" + +#: ../../common/parse_manifest.c:892 +#, c-format +msgid "could not parse backup manifest: %s" +msgstr "не вдалося проаналізувати маніфест резервної копії: %s" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неприпустиме значення \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s має бути в діапазоні %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: backup_label.c:66 backup_label.c:85 backup_label.c:95 +#, c-format +msgid "%s: could not parse %s" +msgstr "%s: не вдалося розібрати %s" + +#: backup_label.c:69 backup_label.c:88 +#, c-format +msgid "%s: improper terminator for %s" +msgstr "%s: неправильний термінатор для %s" + +#: backup_label.c:76 +#, c-format +msgid "%s: could not parse TLI for %s" +msgstr "%s: не вдалося розібрати TLI для %s" + +#: backup_label.c:79 backup_label.c:98 +#, c-format +msgid "%s: invalid TLI" +msgstr "%s: невірний TLI" + +#: backup_label.c:106 backup_label.c:108 +#, c-format +msgid "%s: could not find %s" +msgstr "%s: не вдалося знайти %s" + +#: backup_label.c:110 backup_label.c:113 +#, c-format +msgid "%s: %s requires %s" +msgstr "%s: %s вимагає %s" + +#: backup_label.c:162 reconstruct.c:748 write_manifest.c:262 +#, c-format +msgid "could not write file \"%s\": wrote %d of %d" +msgstr "не вдалося записати файл \"%s\": записано %d з %d" + +#: backup_label.c:166 copy_file.c:146 copy_file.c:193 reconstruct.c:708 +#: reconstruct.c:754 write_manifest.c:270 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "не вдалося оновити контрольну суму файлу \"%s\"" + +#: copy_file.c:186 +#, c-format +msgid "could not write to file \"%s\": %m" +msgstr "неможливо записати до файлу \"%s\": %m" + +#: copy_file.c:188 +#, c-format +msgid "could not write to file \"%s\", offset %u: wrote %d of %d" +msgstr "не вдалося записати до файлу \"%s\", зсув %u: записано %d з %d" + +#: copy_file.c:199 reconstruct.c:771 +#, c-format +msgid "could not read from file \"%s\": %m" +msgstr "не вдалося прочитати з файлу \"%s\": %m" + +#: copy_file.c:218 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %m" +msgstr "помилка при клонуванні файлу \"%s\" в \"%s\": %m" + +#: copy_file.c:229 copy_file.c:272 +#, c-format +msgid "could not create file \"%s\": %m" +msgstr "неможливо створити файл \"%s\": %m" + +#: copy_file.c:237 +#, c-format +msgid "error while cloning file \"%s\" to \"%s\": %s" +msgstr "помилка при клонуванні файлу \"%s\" в \"%s\": %s" + +#: copy_file.c:245 pg_combinebackup.c:251 +#, c-format +msgid "file cloning not supported on this platform" +msgstr "клонування файлів не підтримується на цій платформі" + +#: copy_file.c:278 reconstruct.c:691 +#, c-format +msgid "error while copying file range from \"%s\" to \"%s\": %m" +msgstr "помилка при копіюванні діапазону файлу від \"%s\" до \"%s\": %m" + +#: copy_file.c:285 pg_combinebackup.c:264 reconstruct.c:711 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range не підтримується на цій платформі" + +#: copy_file.c:300 +#, c-format +msgid "could not copy file \"%s\" to \"%s\": %m" +msgstr "не вдалося скопіювати файл \"%s\" в \"%s\": %m" + +#: load_manifest.c:125 +#, c-format +msgid "file \"%s\" does not exist" +msgstr "файл \"%s\" не існує" + +#: load_manifest.c:163 +#, c-format +msgid "could not read file \"%s\": read %d of %lld" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %lld" + +#: load_manifest.c:201 +#, c-format +msgid "could not read file \"%s\": read %lld of %lld" +msgstr "не вдалося прочитати файл \"%s\": прочитано %lld з %lld" + +#: load_manifest.c:249 +#, c-format +msgid "backup manifest version 1 does not support incremental backup" +msgstr "маніфест резервного копіювання версії 1 не підтримує інкреметного резервного копіювання" + +#: load_manifest.c:281 +#, c-format +msgid "duplicate path name in backup manifest: \"%s\"" +msgstr "дубльований шлях у маніфесті резервного копіювання: \"%s\"" + +#: pg_combinebackup.c:220 pg_combinebackup.c:228 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Спробуйте \"%s --help\" для додаткової інформації." + +#: pg_combinebackup.c:227 +#, c-format +msgid "no input directories specified" +msgstr "вхідні каталоги не вказано" + +#: pg_combinebackup.c:233 +#, c-format +msgid "no output directory specified" +msgstr "вихідний каталог не вказано" + +#: pg_combinebackup.c:301 +#, c-format +msgid "%s: manifest system identifier is %llu, but control file has %llu" +msgstr "%s: маніфестовий ідентифікатор системи - %llu, але контрольний файл має %llu" + +#: pg_combinebackup.c:340 +#, c-format +msgid "cannot generate a manifest because no manifest is available for the final input backup" +msgstr "не вдається згенерувати маніфест, оскільки для остаточної резервної копії вхідних даних немає маніфесту" + +#: pg_combinebackup.c:387 +#, c-format +msgid "could not create symbolic link from \"%s\" to \"%s\": %m" +msgstr "не вдалося створити символічне послання з \"%s\" на \"%s\": %m" + +#: pg_combinebackup.c:399 pg_combinebackup.c:730 pg_combinebackup.c:927 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "не вдалося створити каталог \"%s\": %m" + +#: pg_combinebackup.c:454 +#, c-format +msgid "directory name too long" +msgstr "ім'я директорії задовге" + +#: pg_combinebackup.c:461 +#, c-format +msgid "multiple \"=\" signs in tablespace mapping" +msgstr "кілька знаків \"=\" зіставленні табличних просторів" + +#: pg_combinebackup.c:469 +#, c-format +msgid "invalid tablespace mapping format \"%s\", must be \"OLDDIR=NEWDIR\"" +msgstr "неприпустимий табличний простір зіставлення формату \"%s\", має бути \"OLDDIR = NEWDIR\"" + +#: pg_combinebackup.c:480 pg_combinebackup.c:484 +#, c-format +msgid "old directory is not an absolute path in tablespace mapping: %s" +msgstr "старий каталог не є абсолютним шляхом у зіставлення табличного простору: %s" + +#: pg_combinebackup.c:553 +#, c-format +msgid "backup at \"%s\" is a full backup, but only the first backup should be a full backup" +msgstr "резервна копія за адресою \"%s\" є повною резервною копією, але тільки перша резервна копія має бути повною резервною копією" + +#: pg_combinebackup.c:556 +#, c-format +msgid "backup at \"%s\" is an incremental backup, but the first backup should be a full backup" +msgstr "резервна копія за адресою \"%s\" є інкрементною резервною копією, але перша резервна копія має бути повною" + +#: pg_combinebackup.c:559 +#, c-format +msgid "backup at \"%s\" starts on timeline %u, but expected %u" +msgstr "резервне копіювання на \"%s\" починається на лінії часу %u, але очікується %u" + +#: pg_combinebackup.c:562 +#, c-format +msgid "backup at \"%s\" starts at LSN %X/%X, but expected %X/%X" +msgstr "резервне копіювання на \"%s\" починається з LSN %X/%X, але очікується %X/%X" + +#: pg_combinebackup.c:614 +#, c-format +msgid "%s: CRC is incorrect" +msgstr "%s: CRC невірний" + +#: pg_combinebackup.c:618 +#, c-format +msgid "%s: unexpected control file version" +msgstr "%s: неочікувана версія контрольного файлу" + +#: pg_combinebackup.c:625 +#, c-format +msgid "%s: expected system identifier %llu, but found %llu" +msgstr "%s: очікуваний ідентифікатор системи %llu, але знайдено %llu" + +#: pg_combinebackup.c:657 +#, c-format +msgid "only some backups have checksums enabled" +msgstr "лише деякі резервні копії мають включені контрольні суми" + +#: pg_combinebackup.c:658 +#, c-format +msgid "Disable, and optionally reenable, checksums on the output directory to avoid failures." +msgstr "Вимкніть, та за бажанням увімкніть, контрольні суми для вихідного каталога, щоб уникнути помилок." + +#: pg_combinebackup.c:693 +#, c-format +msgid "removing output directory \"%s\"" +msgstr "видалення вихідного каталогу \"%s\"" + +#: pg_combinebackup.c:695 +#, c-format +msgid "failed to remove output directory" +msgstr "не вдалося вилучити вихідний каталог" + +#: pg_combinebackup.c:699 +#, c-format +msgid "removing contents of output directory \"%s\"" +msgstr "видалення вмісту вихідного каталогу \"%s\"" + +#: pg_combinebackup.c:702 +#, c-format +msgid "failed to remove contents of output directory" +msgstr "не вдалося вилучити вміст з вихідного каталогу" + +#: pg_combinebackup.c:742 +#, c-format +msgid "directory \"%s\" exists but is not empty" +msgstr "каталог \"%s\" існує, але він не порожній" + +#: pg_combinebackup.c:745 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "немає доступу до каталогу \"%s\": %m" + +#: pg_combinebackup.c:759 +#, c-format +msgid "%s reconstructs full backups from incrementals.\n\n" +msgstr "%s відновлює повні резервні копії з інкрементів.\n\n" + +#: pg_combinebackup.c:760 +#, c-format +msgid "Usage:\n" +msgstr "Використання:\n" + +#: pg_combinebackup.c:761 +#, c-format +msgid " %s [OPTION]... DIRECTORY...\n" +msgstr " %s [ПАРАМЕТР]... КАТАЛОГ...\n" + +#: pg_combinebackup.c:762 +#, c-format +msgid "\n" +"Options:\n" +msgstr "\n" +"Параметри:\n" + +#: pg_combinebackup.c:763 +#, c-format +msgid " -d, --debug generate lots of debugging output\n" +msgstr " -d, --debug генерувати багато налагоджувальних повідомлень\n" + +#: pg_combinebackup.c:764 +#, c-format +msgid " -n, --dry-run do not actually do anything\n" +msgstr " -n, --dry-run насправді ніякої дії\n" + +#: pg_combinebackup.c:765 +#, c-format +msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" +msgstr " -N, --no-sync не чекати на безпечний запис змін на диск\n" + +#: pg_combinebackup.c:766 +#, c-format +msgid " -o, --output=DIRECTORY output directory\n" +msgstr " -o, --output=DIRECTORY вихідний каталог\n" + +#: pg_combinebackup.c:767 +#, c-format +msgid " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" relocate tablespace in OLDDIR to NEWDIR\n" +msgstr " -T, --tablespace-mapping=OLDDIR=NEWDIR\n" +" перемістити табличний простір з OLDDIR в NEWDIR\n" + +#: pg_combinebackup.c:769 +#, c-format +msgid " --clone clone (reflink) files instead of copying\n" +msgstr " --clone клонувати (reflink) файли замість копіювання\n" + +#: pg_combinebackup.c:770 +#, c-format +msgid " --copy copy files (default)\n" +msgstr " --copy копіювати файли (за замовчуванням)\n" + +#: pg_combinebackup.c:771 +#, c-format +msgid " --copy-file-range copy using copy_file_range() system call\n" +msgstr " --copy-file-range копіювати за допомогою системного виклику copy_file_range()\n" + +#: pg_combinebackup.c:772 +#, 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" +" алгоритм використання контрольних сум маніфесту\n" + +#: pg_combinebackup.c:774 +#, c-format +msgid " --no-manifest suppress generation of backup manifest\n" +msgstr " --no-manifest заборонити створення маніфесту резервної копії\n" + +#: pg_combinebackup.c:775 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод синхронізації файлів на диск\n" + +#: pg_combinebackup.c:776 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version вивести інформацію про версію і вийти\n" + +#: pg_combinebackup.c:777 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показати цю довідку, потім вийти\n" + +#: pg_combinebackup.c:779 +#, c-format +msgid "\n" +"Report bugs to <%s>.\n" +msgstr "\n" +"Повідомляти про помилки на <%s>.\n" + +#: pg_combinebackup.c:780 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Домашня сторінка %s: <%s>\n" + +#: pg_combinebackup.c:995 +#, c-format +msgid "skipping symbolic link \"%s\"" +msgstr "пропускання символічного посилання \"%s\"" + +#: pg_combinebackup.c:997 +#, c-format +msgid "skipping special file \"%s\"" +msgstr "спеціальний файл \"%s\" пропускається" + +#: pg_combinebackup.c:1073 reconstruct.c:300 +#, c-format +msgid "manifest file \"%s\" contains no entry for file \"%s\"" +msgstr "файл маніфеста \"%s\" не містить запису для файлу \"%s\"" + +#: pg_combinebackup.c:1189 +#, c-format +msgid "%s: server version too old" +msgstr "%s: версія серверу застаріла" + +#: pg_combinebackup.c:1190 +#, c-format +msgid "%s: could not parse version number" +msgstr "%s: не вдалося розібрати номер версії" + +#: pg_combinebackup.c:1309 +#, c-format +msgid "could not read symbolic link \"%s\": %m" +msgstr "не можливо прочитати символічне послання \"%s\": %m" + +#: pg_combinebackup.c:1312 +#, c-format +msgid "target of symbolic link \"%s\" is too long" +msgstr "ціль символічного посилання \"%s\" занадто довга" + +#: pg_combinebackup.c:1315 +#, c-format +msgid "target of symbolic link \"%s\" is relative" +msgstr "ціль символічного посилання \"%s\" є відносною" + +#: pg_combinebackup.c:1337 +#, c-format +msgid "tablespace at \"%s\" has no tablespace mapping" +msgstr "табличний простір за адресою \"%s\" не має зіставлення табличного простору" + +#: pg_combinebackup.c:1355 +#, c-format +msgid "tablespaces with OIDs %u and %u both point at directory \"%s\"" +msgstr "табличні простори з OID %u та %u обидва вказують на каталог \"%s\"" + +#: pg_combinebackup.c:1364 +#, c-format +msgid "could not close directory \"%s\": %m" +msgstr "не вдалося закрити каталог \"%s\": %m" + +#: pg_combinebackup.c:1385 +#, c-format +msgid "file \"%s\" is too large" +msgstr "файл \"%s\" занадто великий" + +#: pg_combinebackup.c:1402 +#, c-format +msgid "could not read file \"%s\": read %zd of %lld" +msgstr "не вдалося прочитати файл \"%s\": прочитано %zd з %lld" + +#: reconstruct.c:410 +#, c-format +msgid "file \"%s\" is too short: expected %llu, found %llu" +msgstr "файл \"%s\" занадто короткий: очікується %llu, знайдено %llu" + +#: reconstruct.c:452 +#, c-format +msgid "file \"%s\" has bad incremental magic number (0x%x, expected 0x%x)" +msgstr "файл \"%s\" має неправильне інкрементне магічне число (0x%x, очікувалось 0x%x)" + +#: reconstruct.c:458 +#, c-format +msgid "file \"%s\" has block count %u in excess of segment size %u" +msgstr "файл \"%s\" має кількість блоків %u, що перевищує розмір сегмента %u" + +#: reconstruct.c:465 +#, c-format +msgid "file \"%s\" has truncation block length %u in excess of segment size %u" +msgstr "файл \"%s\" має довжину блоку усікання %u, що перевищує розмір сегмента %u" + +#: reconstruct.c:529 +#, c-format +msgid "could not read file \"%s\": read %d of %u" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %u" + +#: reconstruct.c:773 +#, c-format +msgid "could not read from file \"%s\", offset %llu: read %d of %d" +msgstr "не вдалося прочитати з файлу \"%s\", зміщення %llu: прочитано %d з %d" + diff --git a/src/bin/pg_config/po/es.po b/src/bin/pg_config/po/es.po index 4ea583846477a..2ebb19f2a50c9 100644 --- a/src/bin/pg_config/po/es.po +++ b/src/bin/pg_config/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_config (PostgreSQL) 16\n" +"Project-Id-Version: pg_config (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:18+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:48+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -27,35 +27,61 @@ msgstr "" msgid "not recorded" msgstr "no registrado" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "memoria agotada" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + #: pg_config.c:74 #, c-format msgid "" diff --git a/src/bin/pg_config/po/fr.po b/src/bin/pg_config/po/fr.po index 3517868aa2bdb..3433a07cc2ef8 100644 --- a/src/bin/pg_config/po/fr.po +++ b/src/bin/pg_config/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:18+0000\n" -"PO-Revision-Date: 2023-07-30 08:09+0200\n" +"POT-Creation-Date: 2024-07-20 21:19+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../common/config_info.c:134 ../../common/config_info.c:142 #: ../../common/config_info.c:150 ../../common/config_info.c:158 @@ -30,35 +30,61 @@ msgstr "" msgid "not recorded" msgstr "non enregistré" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binaire « %s » invalide : %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "n'a pas pu lire le binaire « %s » : %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "n'a pas pu exécuter la commande « %s » : %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "n'a pas pu lire à partir de la commande « %s » : %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "aucune donnée n'a été renvoyée par la commande « %s »" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "mémoire épuisée" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + #: pg_config.c:74 #, c-format msgid "" @@ -278,56 +304,3 @@ msgstr "%s : n'a pas pu trouver l'exécutable du programme\n" #, c-format msgid "%s: invalid argument: %s\n" msgstr "%s : argument invalide : %s\n" - -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide puis quitte\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid "child process exited with exit code %d" -#~ msgstr "le processus fils a quitté avec le code de sortie %d" - -#~ msgid "child process exited with unrecognized status %d" -#~ msgstr "le processus fils a quitté avec un statut %d non reconnu" - -#~ msgid "child process was terminated by exception 0x%X" -#~ msgstr "le processus fils a été terminé par l'exception 0x%X" - -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" - -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" - -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %m" - -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "n'a pas pu identifier le répertoire courant : %m" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "n'a pas pu lire le binaire « %s »" - -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "binaire « %s » invalide" - -#~ msgid "pclose failed: %m" -#~ msgstr "échec de pclose : %m" diff --git a/src/bin/pg_config/po/ka.po b/src/bin/pg_config/po/ka.po index 6537557bead61..f0014e3c1fde7 100644 --- a/src/bin/pg_config/po/ka.po +++ b/src/bin/pg_config/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_config (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-10 07:18+0000\n" +"POT-Creation-Date: 2024-07-01 03:49+0000\n" "PO-Revision-Date: 2024-03-10 20:43+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" @@ -69,6 +69,17 @@ msgstr "%s()-ის შეცდომა: %m" msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + #: pg_config.c:74 #, c-format msgid "" diff --git a/src/bin/pg_config/po/ko.po b/src/bin/pg_config/po/ko.po index de9084760585e..e735330275b57 100644 --- a/src/bin/pg_config/po/ko.po +++ b/src/bin/pg_config/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_config (PostgreSQL) 16\n" +"Project-Id-Version: pg_config (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:48+0000\n" -"PO-Revision-Date: 2023-05-26 13:20+0900\n" +"POT-Creation-Date: 2025-01-17 04:48+0000\n" +"PO-Revision-Date: 2025-01-16 12:53+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean team \n" "Language: ko\n" @@ -22,35 +22,61 @@ msgstr "" msgid "not recorded" msgstr "기록되어 있지 않음" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일임: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "실행할 \"%s\" 파일 찾을 수 없음" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 경로를 절대경로로 바꿀 수 없음: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령으로부터 읽을 수 없음: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령이 아무런 데이터를 반환하지 않음" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "메모리 부족" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + #: pg_config.c:74 #, c-format msgid "" diff --git a/src/bin/pg_config/po/ru.po b/src/bin/pg_config/po/ru.po index 34e80c83c632d..0a86bbb455c6d 100644 --- a/src/bin/pg_config/po/ru.po +++ b/src/bin/pg_config/po/ru.po @@ -5,13 +5,13 @@ # Serguei A. Mokhov , 2004-2005. # Sergey Burladyan , 2009, 2012. # Andrey Sudnik , 2010. -# Alexander Lakhin , 2012-2016, 2017, 2019, 2020, 2021, 2023. +# Alexander Lakhin , 2012-2016, 2017, 2019, 2020, 2021, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_config (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2023-08-29 10:19+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 13:45+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -28,35 +28,61 @@ msgstr "" msgid "not recorded" msgstr "не записано" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "нехватка памяти" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + #: pg_config.c:74 #, c-format msgid "" @@ -295,10 +321,6 @@ msgstr "%s: неверный аргумент: %s\n" #~ msgid "could not identify current directory: %m" #~ msgstr "не удалось определить текущий каталог: %m" -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "не удалось перейти в каталог \"%s\": %m" - #, c-format #~ msgid "could not read symbolic link \"%s\": %m" #~ msgstr "не удалось прочитать символическую ссылку \"%s\": %m" diff --git a/src/bin/pg_config/po/sv.po b/src/bin/pg_config/po/sv.po index 2b5468ec93ac0..d729e3053217d 100644 --- a/src/bin/pg_config/po/sv.po +++ b/src/bin/pg_config/po/sv.po @@ -1,13 +1,13 @@ # Swedish message translation file for pg_config. -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Mats Erik Andersson , 2014. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-01 14:18+0000\n" -"PO-Revision-Date: 2023-08-30 09:01+0200\n" +"POT-Creation-Date: 2024-07-12 14:19+0000\n" +"PO-Revision-Date: 2024-07-12 18:58+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -23,35 +23,61 @@ msgstr "" msgid "not recorded" msgstr "ej sparad" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "slut på minne" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + #: pg_config.c:74 #, c-format msgid "" @@ -245,15 +271,3 @@ msgstr "%s: kunde inte hitta det egna programmets körbara fil\n" #, c-format msgid "%s: invalid argument: %s\n" msgstr "%s: ogiltigt argument: %s\n" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "kunde inte byta katalog till \"%s\": %m" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "kan inte läsa symbolisk länk \"%s\": %m" diff --git a/src/bin/pg_config/po/uk.po b/src/bin/pg_config/po/uk.po index d64a71c7a55d4..ad38f026516c6 100644 --- a/src/bin/pg_config/po/uk.po +++ b/src/bin/pg_config/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-04-19 11:17+0000\n" -"PO-Revision-Date: 2023-12-20 11:53\n" +"POT-Creation-Date: 2024-08-31 06:19+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_config.pot\n" -"X-Crowdin-File-ID: 973\n" +"X-Crowdin-File: /REL_17_STABLE/pg_config.pot\n" +"X-Crowdin-File-ID: 1024\n" #: ../../common/config_info.c:134 ../../common/config_info.c:142 #: ../../common/config_info.c:150 ../../common/config_info.c:158 @@ -24,35 +24,61 @@ msgstr "" msgid "not recorded" msgstr "не записано" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "недостатньо пам'яті" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + #: pg_config.c:74 #, c-format msgid "\n" diff --git a/src/bin/pg_config/po/zh_CN.po b/src/bin/pg_config/po/zh_CN.po index 8c32e10321f30..b12c1e2da620b 100644 --- a/src/bin/pg_config/po/zh_CN.po +++ b/src/bin/pg_config/po/zh_CN.po @@ -1,20 +1,20 @@ # SOME DESCRIPTIVE TITLE. # This file is put in the public domain. -# FIRST AUTHOR , YEAR. +# Dianjin Wang , 2024 # msgid "" msgstr "" -"Project-Id-Version: pg_config (PostgreSQL) 14\n" +"Project-Id-Version: pg_config (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 05:46+0000\n" -"PO-Revision-Date: 2021-08-15 17:25+0800\n" -"Last-Translator: Jie Zhang \n" +"POT-Creation-Date: 2024-09-13 22:51+0000\n" +"PO-Revision-Date: 2024-09-14 12:07+0800\n" +"Last-Translator: Dianjin Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Poedit 3.4.4\n" #: ../../common/config_info.c:134 ../../common/config_info.c:142 #: ../../common/config_info.c:150 ../../common/config_info.c:158 @@ -23,44 +23,61 @@ msgstr "" msgid "not recorded" msgstr "没有被记录" -#: ../../common/exec.c:136 ../../common/exec.c:253 ../../common/exec.c:299 +#: ../../common/exec.c:174 #, c-format -msgid "could not identify current directory: %m" -msgstr "无法确认当前目录: %m" +msgid "invalid binary \"%s\": %m" +msgstr "无效的二进制 \"%s\": %m" -#: ../../common/exec.c:155 +#: ../../common/exec.c:217 #, c-format -msgid "invalid binary \"%s\"" -msgstr "无效的二进制码 \"%s\"" +msgid "could not read binary \"%s\": %m" +msgstr "无法读取二进制 \"%s\": %m" -#: ../../common/exec.c:205 +#: ../../common/exec.c:225 #, c-format -msgid "could not read binary \"%s\"" -msgstr "无法读取二进制码 \"%s\"" +msgid "could not find a \"%s\" to execute" +msgstr "未能找到一个 \"%s\" 予以执行" -#: ../../common/exec.c:213 +#: ../../common/exec.c:252 #, c-format -msgid "could not find a \"%s\" to execute" -msgstr "未能找到一个 \"%s\" 来执行" +msgid "could not resolve path \"%s\" to absolute form: %m" +msgstr "无法将路径 \"%s\" 解析为绝对路径格式: %m" -#: ../../common/exec.c:269 ../../common/exec.c:308 +#: ../../common/exec.c:382 #, c-format -msgid "could not change directory to \"%s\": %m" -msgstr "无法跳转到目录 \"%s\" 中: %m" +msgid "could not execute command \"%s\": %m" +msgstr "无法执行命令 \"%s\": %m" -#: ../../common/exec.c:286 +#: ../../common/exec.c:394 #, c-format -msgid "could not read symbolic link \"%s\": %m" -msgstr "无法读取符号链接 \"%s\": %m" +msgid "could not read from command \"%s\": %m" +msgstr "无法读取命令 \"%s\": %m" -#: ../../common/exec.c:409 +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "命令 \"%s\" 未返回数据" + +#: ../../common/exec.c:424 +#, c-format msgid "%s() failed: %m" -msgstr "%s()失败: %m" +msgstr "%s() 失败: %m" -#: ../../common/exec.c:522 ../../common/exec.c:567 ../../common/exec.c:659 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "内存不足" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "内存不足\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "无法复制空指针 (内部错误)\n" + #: pg_config.c:74 #, c-format msgid "" @@ -69,7 +86,7 @@ msgid "" "\n" msgstr "" "\n" -"%s 提供 PostgreSQL 的安装信息.\n" +"%s 提供所安装 PostgreSQL 版本的信息.\n" "\n" #: pg_config.c:75 @@ -82,7 +99,9 @@ msgstr "使用方法:\n" msgid "" " %s [OPTION]...\n" "\n" -msgstr " %s [选项]...\n" +msgstr "" +" %s [选项]...\n" +"\n" #: pg_config.c:77 #, c-format @@ -92,17 +111,17 @@ msgstr "选项:\n" #: pg_config.c:78 #, c-format msgid " --bindir show location of user executables\n" -msgstr " --bindir 显示执行文件所在位置\n" +msgstr " --bindir 显示用户执行文件所在位置\n" #: pg_config.c:79 #, c-format msgid " --docdir show location of documentation files\n" -msgstr " --docdir 显示文档所在位置\n" +msgstr " --docdir 显示文档文件所在位置\n" #: pg_config.c:80 #, c-format msgid " --htmldir show location of HTML documentation files\n" -msgstr " --htmldir 显示HTML文档文件所在位置\n" +msgstr " --htmldir 显示 HTML 文档文件所在位置\n" #: pg_config.c:81 #, c-format @@ -110,18 +129,18 @@ msgid "" " --includedir show location of C header files of the client\n" " interfaces\n" msgstr "" -" --includedir 显示客户端接口 C 头文件所在\n" +" --includedir 显示客户端接口 C 语言头文件所在\n" " 位置\n" #: pg_config.c:83 #, c-format msgid " --pkgincludedir show location of other C header files\n" -msgstr " --pkgincludedir 显示其它C语言头文件所在的位置\n" +msgstr " --pkgincludedir 显示其它 C 语言头文件所在位置\n" #: pg_config.c:84 #, c-format msgid " --includedir-server show location of C header files for the server\n" -msgstr " --includedir-server 显示服务端 C 头文件所在位置\n" +msgstr " --includedir-server 显示服务器端 C 语言头文件所在位置\n" #: pg_config.c:85 #, c-format @@ -151,7 +170,7 @@ msgstr " --sharedir 显示独立架构支持文件所在位置\n" #: pg_config.c:90 #, c-format msgid " --sysconfdir show location of system-wide configuration files\n" -msgstr " --sysconfdir 显示系统范围的配置文件的所在位置\n" +msgstr " --sysconfdir 显示系统范围的配置文件所在位置\n" #: pg_config.c:91 #, c-format @@ -164,53 +183,53 @@ msgid "" " --configure show options given to \"configure\" script when\n" " PostgreSQL was built\n" msgstr "" -" --configure 显示编译 PostgreSQL 时 \"configure\"\n" -" 的选项\n" +" --configure 显示在编译 PostgreSQL 时 \"configure\" 脚本\n" +" 的所用选项\n" #: pg_config.c:94 #, c-format msgid " --cc show CC value used when PostgreSQL was built\n" -msgstr " --cc 显示在创建PostgreSQL时所使用的CC值\n" +msgstr " --cc 显示在编译 PostgreSQL 时所使用的 CC 值\n" #: pg_config.c:95 #, c-format msgid " --cppflags show CPPFLAGS value used when PostgreSQL was built\n" -msgstr " --cppflags 当创建PostgreSQL时显示CPPFLAGS的值\n" +msgstr " --cppflags 显示在编译 PostgreSQL 时所使用的 CPPFLAGS 值\n" #: pg_config.c:96 #, c-format msgid " --cflags show CFLAGS value used when PostgreSQL was built\n" -msgstr " --cflags 显示在创建PostgreSQL时所使用的CFLAG值\n" +msgstr " --cflags 显示在编译 PostgreSQL 时所使用的 CFLAGS 值\n" #: pg_config.c:97 #, c-format msgid " --cflags_sl show CFLAGS_SL value used when PostgreSQL was built\n" -msgstr " --cflags_sl 当创建PostgreSQL时显示CFLAGS_SL的值\n" +msgstr " --cflags_sl 显示在编译 PostgreSQL 时所使用的 CFLAGS_SL 值\n" #: pg_config.c:98 #, c-format msgid " --ldflags show LDFLAGS value used when PostgreSQL was built\n" -msgstr " --ldflags 显示在创建PostgreSQL时所使用的LDFLAG值\n" +msgstr " --ldflags 显示在编译 PostgreSQL 时所使用的 LDFLAGS 值\n" #: pg_config.c:99 #, c-format msgid " --ldflags_ex show LDFLAGS_EX value used when PostgreSQL was built\n" -msgstr " --ldflags_ex 当创建PostgreSQL时显示LDFLAGS_EX的值\n" +msgstr " --ldflags_ex 显示在编译 PostgreSQL 时所使用的 LDFLAGS_EX 值\n" #: pg_config.c:100 #, c-format msgid " --ldflags_sl show LDFLAGS_SL value used when PostgreSQL was built\n" -msgstr " --ldflags_sl 当创建PostgreSQL时显示LDFLAGS_SL的值\n" +msgstr " --ldflags_sl 显示在编译 PostgreSQL 时所使用的 LDFLAGS_SL 值\n" #: pg_config.c:101 #, c-format msgid " --libs show LIBS value used when PostgreSQL was built\n" -msgstr " --libs 显示在创建PostgreSQL时所使用的LIBS值\n" +msgstr " --libs 显示在编译 PostgreSQL 时所使用的 LIBS 值\n" #: pg_config.c:102 #, c-format msgid " --version show the PostgreSQL version\n" -msgstr " --version 显示PostgreSQL的版本信息\n" +msgstr " --version 显示 PostgreSQL 的版本信息\n" #: pg_config.c:103 #, c-format @@ -225,13 +244,13 @@ msgid "" "\n" msgstr "" "\n" -"没有参数,将显示所有已知的成员.\n" +"没有参数, 将显示所有已知条目.\n" "\n" #: pg_config.c:105 #, c-format msgid "Report bugs to <%s>.\n" -msgstr "臭虫报告至<%s>.\n" +msgstr "报告缺陷: <%s>.\n" #: pg_config.c:106 #, c-format @@ -246,10 +265,29 @@ msgstr "请用 \"%s --help\" 获取更多的信息.\n" #: pg_config.c:154 #, c-format msgid "%s: could not find own program executable\n" -msgstr "%s: 无法找到执行文件\n" +msgstr "%s: 无法找到所属执行程序\n" #: pg_config.c:181 #, c-format msgid "%s: invalid argument: %s\n" msgstr "%s: 无效参数: %s\n" +#, c-format +#~ msgid "could not change directory to \"%s\": %m" +#~ msgstr "无法跳转到目录 \"%s\" 中: %m" + +#, c-format +#~ msgid "could not identify current directory: %m" +#~ msgstr "无法确认当前目录: %m" + +#, c-format +#~ msgid "could not read binary \"%s\"" +#~ msgstr "无法读取二进制码 \"%s\"" + +#, c-format +#~ msgid "could not read symbolic link \"%s\": %m" +#~ msgstr "无法读取符号链接 \"%s\": %m" + +#, c-format +#~ msgid "invalid binary \"%s\"" +#~ msgstr "无效的二进制码 \"%s\"" diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c index 9901a2bae51c9..7bb801bb88612 100644 --- a/src/bin/pg_controldata/pg_controldata.c +++ b/src/bin/pg_controldata/pg_controldata.c @@ -1,7 +1,7 @@ /* * pg_controldata * - * reads the data from $PGDATA/global/pg_control + * reads the data from the control file located at $PGDATA/XLOG_CONTROL_FILE. * * copyright (c) Oliver Elphick , 2001; * license: BSD diff --git a/src/bin/pg_controldata/po/es.po b/src/bin/pg_controldata/po/es.po index 58127cba51d81..79a931a21b2d1 100644 --- a/src/bin/pg_controldata/po/es.po +++ b/src/bin/pg_controldata/po/es.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_controldata (PostgreSQL) 16\n" +"Project-Id-Version: pg_controldata (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:22+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:53+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -22,31 +22,31 @@ msgstr "" "X-Generator: Poedit 2.0.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../common/controldata_utils.c:73 +#: ../../common/controldata_utils.c:97 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "no se pudo abrir archivo «%s» para lectura: %m" -#: ../../common/controldata_utils.c:86 +#: ../../common/controldata_utils.c:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "no se pudo leer el archivo «%s»: %m" -#: ../../common/controldata_utils.c:95 +#: ../../common/controldata_utils.c:119 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" -#: ../../common/controldata_utils.c:108 ../../common/controldata_utils.c:236 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "no se pudo cerrar el archivo «%s»: %m" -#: ../../common/controldata_utils.c:124 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "discordancia en orden de bytes" -#: ../../common/controldata_utils.c:126 +#: ../../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -60,21 +60,32 @@ msgstr "" "serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" "directorio de datos." -#: ../../common/controldata_utils.c:186 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "no se pudo abrir el archivo «%s»: %m" -#: ../../common/controldata_utils.c:205 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "no se pudo escribir el archivo «%s»: %m" -#: ../../common/controldata_utils.c:224 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -174,342 +185,330 @@ msgid "unrecognized status code" msgstr "código de estado no reconocido" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "wal_level no reconocido" +msgid "unrecognized \"wal_level\"" +msgstr "«wal_level» no reconocido" -#: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 +#: pg_controldata.c:139 pg_controldata.c:157 pg_controldata.c:164 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_controldata.c:154 +#: pg_controldata.c:155 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_controldata.c:162 +#: pg_controldata.c:163 #, c-format msgid "no data directory specified" msgstr "no se especificó el directorio de datos" -#: pg_controldata.c:170 +#: pg_controldata.c:172 #, c-format -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 "" -"ATENCIÓN: La suma de verificación calculada no coincide con el valor\n" -"almacenado en el archivo. Puede ser que el archivo esté corrupto, o\n" -"bien tiene una estructura diferente de la que este programa está\n" -"esperando. Los resultados presentados a continuación no son confiables.\n" -"\n" +msgid "calculated CRC checksum does not match value stored in control file" +msgstr "el \"checksum\" calculado no coincide con el valor almacenado en el archivo de control" -#: pg_controldata.c:179 +#: pg_controldata.c:173 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "PRECAUCIÓN: tamaño de segmento de WAL no válido\n" +msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." +msgstr "O bien el archivo está corrupto, o tiene una estructura diferente de la que este programa está esperando. Los resultados presentados a continuación no son confiables." -#: pg_controldata.c:180 +#: pg_controldata.c:182 +#, c-format +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "tamaño de segmento de WAL no válido (%d byte) en archivo de control" +msgstr[1] "tamaño de segmento de WAL no válido (%d bytes) en archivo de control" + +#: pg_controldata.c:186 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB." + +#: pg_controldata.c:187 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "El archivo está corrupto y los resultados a continuación no son confiables." + +#: pg_controldata.c:205 pg_controldata.c:213 pg_controldata.c:232 #, c-format -msgid "" -"The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgid_plural "" -"The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgstr[0] "" -"El tamaño de segmento de WAL almacenado en el archivo, %d byte,\n" -"no es una potencia de dos entre 1 MB y 1 GB. El archivo está corrupto y los\n" -"resultados de abajo no son confiables.\n" -msgstr[1] "" -"El tamaño de segmento de WAL almacenado en el archivo, %d bytes,\n" -"no es una potencia de dos entre 1 MB y 1 GB. El archivo está corrupto y los\n" -"resultados de abajo no son confiables.\n" - -#: pg_controldata.c:222 msgid "???" msgstr "???" -#: pg_controldata.c:228 +#: pg_controldata.c:238 #, c-format msgid "pg_control version number: %u\n" msgstr "Número de versión de pg_control: %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:240 #, c-format msgid "Catalog version number: %u\n" msgstr "Número de versión del catálogo: %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:242 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identificador de sistema: %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:244 #, c-format msgid "Database cluster state: %s\n" msgstr "Estado del sistema de base de datos: %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:246 #, c-format msgid "pg_control last modified: %s\n" msgstr "Última modificación de pg_control: %s\n" -#: pg_controldata.c:238 +#: pg_controldata.c:248 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "Ubicación del último checkpoint: %X/%X\n" -#: pg_controldata.c:240 +#: pg_controldata.c:250 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "Ubicación de REDO de último checkpoint: %X/%X\n" -#: pg_controldata.c:242 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "Ubicación de REDO de último checkpoint: %s\n" -#: pg_controldata.c:244 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID del último checkpoint: %u\n" -#: pg_controldata.c:246 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "PrevTimeLineID del último checkpoint: %u\n" -#: pg_controldata.c:248 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "full_page_writes del último checkpoint: %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "off" msgstr "desactivado" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "on" msgstr "activado" -#: pg_controldata.c:250 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID de último checkpoint: %u/%u\n" -#: pg_controldata.c:253 +#: pg_controldata.c:263 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID de último checkpoint: %u\n" -#: pg_controldata.c:255 +#: pg_controldata.c:265 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId de último checkpoint: %u\n" -#: pg_controldata.c:257 +#: pg_controldata.c:267 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset de último checkpoint: %u\n" -#: pg_controldata.c:259 +#: pg_controldata.c:269 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID del último checkpoint: %u\n" -#: pg_controldata.c:261 +#: pg_controldata.c:271 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "DB del oldestXID del último checkpoint: %u\n" -#: pg_controldata.c:263 +#: pg_controldata.c:273 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID del último checkpoint: %u\n" -#: pg_controldata.c:265 +#: pg_controldata.c:275 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid del último checkpoint: %u\n" -#: pg_controldata.c:267 +#: pg_controldata.c:277 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB del oldestMultiXid del últ. checkpoint: %u\n" -#: pg_controldata.c:269 +#: pg_controldata.c:279 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid del último checkpoint: %u\n" -#: pg_controldata.c:271 +#: pg_controldata.c:281 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid del último checkpoint: %u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:283 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "Instante de último checkpoint: %s\n" -#: pg_controldata.c:275 +#: pg_controldata.c:285 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "Contador de LSN falsas para rels. unlogged: %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:287 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "Punto final mínimo de recuperación: %X/%X\n" -#: pg_controldata.c:279 +#: pg_controldata.c:289 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "Timeline de dicho punto final mínimo: %u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:291 #, c-format msgid "Backup start location: %X/%X\n" msgstr "Ubicación del inicio de backup: %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:293 #, c-format msgid "Backup end location: %X/%X\n" msgstr "Ubicación del fin de backup: %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:295 #, c-format msgid "End-of-backup record required: %s\n" msgstr "Registro fin-de-backup requerido: %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:296 msgid "no" msgstr "no" -#: pg_controldata.c:286 +#: pg_controldata.c:296 msgid "yes" msgstr "sí" -#: pg_controldata.c:287 +#: pg_controldata.c:297 #, c-format msgid "wal_level setting: %s\n" msgstr "Parámetro wal_level: %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:299 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "Parámetro wal_log_hings: %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:301 #, c-format msgid "max_connections setting: %d\n" msgstr "Parámetro max_connections: %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:303 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "Parámetro max_worker_processes: %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:305 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "Parámetro max_wal_senders: %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:307 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "Parámetro max_prepared_xacts: %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:309 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "Parámetro max_locks_per_xact: %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:311 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "Parámetro track_commit_timestamp: %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:313 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Alineamiento máximo de datos: %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:316 #, c-format msgid "Database block size: %u\n" msgstr "Tamaño de bloque de la base de datos: %u\n" -#: pg_controldata.c:308 +#: pg_controldata.c:318 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Bloques por segmento en relación grande: %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:320 #, c-format msgid "WAL block size: %u\n" msgstr "Tamaño del bloque de WAL: %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:322 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Bytes por segmento WAL: %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:324 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Máxima longitud de identificadores: %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:326 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Máximo número de columnas de un índice: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:328 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longitud máxima de un trozo TOAST: %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:330 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Longitud máx. de un trozo de objeto grande: %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:333 #, c-format msgid "Date/time type storage: %s\n" msgstr "Tipo de almacenamiento de horas y fechas: %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:334 msgid "64-bit integers" msgstr "enteros de 64 bits" -#: pg_controldata.c:325 +#: pg_controldata.c:335 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Paso de parámetros float8: %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:336 msgid "by reference" msgstr "por referencia" -#: pg_controldata.c:326 +#: pg_controldata.c:336 msgid "by value" msgstr "por valor" -#: pg_controldata.c:327 +#: pg_controldata.c:337 #, c-format msgid "Data page checksum version: %u\n" msgstr "Versión de sumas de verificación de datos: %u\n" -#: pg_controldata.c:329 +#: pg_controldata.c:339 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "Nonce para autentificación simulada: %s\n" diff --git a/src/bin/pg_controldata/po/fr.po b/src/bin/pg_controldata/po/fr.po index a22d809a9478c..1c94ff051b777 100644 --- a/src/bin/pg_controldata/po/fr.po +++ b/src/bin/pg_controldata/po/fr.po @@ -11,10 +11,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-07-20 21:24+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -22,33 +22,33 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: ../../common/controldata_utils.c:73 +#: ../../common/controldata_utils.c:97 #, c-format 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:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" -#: ../../common/controldata_utils.c:95 +#: ../../common/controldata_utils.c:119 #, 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:108 ../../common/controldata_utils.c:244 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" -#: ../../common/controldata_utils.c:124 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "différence de l'ordre des octets" -#: ../../common/controldata_utils.c:126 +#: ../../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -62,21 +62,32 @@ msgstr "" "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:194 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier « %s » : %m" -#: ../../common/controldata_utils.c:213 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: ../../common/controldata_utils.c:232 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -176,8 +187,8 @@ msgid "unrecognized status code" msgstr "code de statut inconnu" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "wal_level non reconnu" +msgid "unrecognized \"wal_level\"" +msgstr "« wal_level » non reconnu" #: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 #, c-format @@ -194,376 +205,311 @@ msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" msgid "no data directory specified" msgstr "aucun répertoire de données indiqué" -#: pg_controldata.c:170 +#: pg_controldata.c:171 #, c-format -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 "calculated CRC checksum does not match value stored in control file" +msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier de contrôle" -#: pg_controldata.c:179 +#: pg_controldata.c:172 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "ATTENTION : taille invalide du segment WAL\n" +msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." +msgstr "Soit le fichier de contrôle est corrompu, soit son organisation diffère de celle attendue par le programme. Les résultats ci-dessous ne sont pas dignes de confiance." -#: pg_controldata.c:180 +#: pg_controldata.c:181 #, c-format -msgid "" -"The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgid_plural "" -"The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgstr[0] "" -"La taille d'un segment WAL enregistré dans le fichier, %d octet, n'est pas une puissance de deux " -"entre 1 Mo et 1 Go. Le fichier est corrompu et les résultats ci-dessous ne proviennent pas d'une " -"source fiable.\n" -"\n" -msgstr[1] "" -"La taille d'un segment WAL enregistré dans le fichier, %d octets, n'est pas une puissance de deux " -"entre 1 Mo et 1 Go. Le fichier est corrompu et les résultats ci-dessous ne proviennent pas d'une " -"source fiable.\n" -"\n" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "taille invalide du segment WAL dans le fichier de contrôle (%d octet)" +msgstr[1] "taille invalide du segment WAL dans le fichier de contrôle (%d octets)" + +#: pg_controldata.c:185 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go." -#: pg_controldata.c:222 +#: pg_controldata.c:186 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "Le fichier est corrompu et il ne faut pas faire confiance aux résultats ci-dessous." + +#: pg_controldata.c:221 msgid "???" msgstr "???" -#: pg_controldata.c:228 +#: pg_controldata.c:227 #, c-format msgid "pg_control version number: %u\n" msgstr "Numéro de version de pg_control : %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:229 #, c-format msgid "Catalog version number: %u\n" msgstr "Numéro de version du catalogue : %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:231 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identifiant du système de base de données : %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:233 #, c-format msgid "Database cluster state: %s\n" msgstr "État du cluster de base de données : %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:235 #, c-format msgid "pg_control last modified: %s\n" msgstr "Dernière modification de pg_control : %s\n" -#: pg_controldata.c:238 +#: pg_controldata.c:237 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "Dernier point de contrôle : %X/%X\n" -#: pg_controldata.c:240 +#: pg_controldata.c:239 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "Dernier REDO (reprise) du point de contrôle : %X/%X\n" -#: pg_controldata.c:242 +#: pg_controldata.c:241 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "Dernier fichier WAL du rejeu du point de contrôle : %s\n" -#: pg_controldata.c:244 +#: pg_controldata.c:243 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Dernier TimeLineID du point de contrôle : %u\n" -#: pg_controldata.c:246 +#: pg_controldata.c:245 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "Dernier PrevTimeLineID du point de contrôle : %u\n" -#: pg_controldata.c:248 +#: pg_controldata.c:247 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Dernier full_page_writes du point de contrôle : %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "off" msgstr "désactivé" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "on" msgstr "activé" -#: pg_controldata.c:250 +#: pg_controldata.c:249 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Dernier NextXID du point de contrôle : %u:%u\n" -#: pg_controldata.c:253 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Dernier NextOID du point de contrôle : %u\n" -#: pg_controldata.c:255 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Dernier NextMultiXactId du point de contrôle : %u\n" -#: pg_controldata.c:257 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Dernier NextMultiOffset du point de contrôle : %u\n" -#: pg_controldata.c:259 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Dernier oldestXID du point de contrôle : %u\n" -#: pg_controldata.c:261 +#: pg_controldata.c:260 #, 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_controldata.c:263 +#: pg_controldata.c:262 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Dernier oldestActiveXID du point de contrôle : %u\n" -#: pg_controldata.c:265 +#: pg_controldata.c:264 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Dernier oldestMultiXid du point de contrôle : %u\n" -#: pg_controldata.c:267 +#: pg_controldata.c:266 #, 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_controldata.c:269 +#: pg_controldata.c:268 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Dernier oldestCommitTsXid du point de contrôle : %u\n" -#: pg_controldata.c:271 +#: pg_controldata.c:270 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Dernier newestCommitTsXid du point de contrôle : %u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:272 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "Heure du dernier point de contrôle : %s\n" -#: pg_controldata.c:275 +#: pg_controldata.c:274 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "Faux compteur LSN pour les relations non journalisés : %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:276 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "Emplacement de fin de la récupération minimale : %X/%X\n" -#: pg_controldata.c:279 +#: pg_controldata.c:278 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "Timeline de l'emplacement de fin de restauration : %u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:280 #, c-format msgid "Backup start location: %X/%X\n" msgstr "Début de la sauvegarde : %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:282 #, c-format msgid "Backup end location: %X/%X\n" msgstr "Fin de la sauvegarde : %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:284 #, c-format msgid "End-of-backup record required: %s\n" msgstr "Enregistrement de fin de sauvegarde requis : %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "no" msgstr "non" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "yes" msgstr "oui" -#: pg_controldata.c:287 +#: pg_controldata.c:286 #, c-format msgid "wal_level setting: %s\n" -msgstr "Paramètrage actuel de wal_level : %s\n" +msgstr "Paramétrage actuel de wal_level : %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:288 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "Paramétrage actuel de wal_log_hints : %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:290 #, c-format msgid "max_connections setting: %d\n" -msgstr "Paramètrage actuel de max_connections : %d\n" +msgstr "Paramétrage actuel de max_connections : %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:292 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "Paramétrage actuel de max_worker_processes : %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:294 #, c-format msgid "max_wal_senders setting: %d\n" -msgstr "Paramètrage actuel de max_wal_senders : %d\n" +msgstr "Paramétrage actuel de max_wal_senders : %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:296 #, c-format msgid "max_prepared_xacts setting: %d\n" -msgstr "Paramètrage actuel de max_prepared_xacts : %d\n" +msgstr "Paramétrage actuel de max_prepared_xacts : %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:298 #, c-format msgid "max_locks_per_xact setting: %d\n" -msgstr "Paramètrage actuel de max_locks_per_xact : %d\n" +msgstr "Paramétrage actuel de max_locks_per_xact : %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:300 #, c-format msgid "track_commit_timestamp setting: %s\n" -msgstr "Paramètrage actuel de track_commit_timestamp : %s\n" +msgstr "Paramétrage actuel de track_commit_timestamp : %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:302 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Alignement maximal des données : %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:305 #, c-format msgid "Database block size: %u\n" msgstr "Taille du bloc de la base de données : %u\n" -#: pg_controldata.c:308 +#: pg_controldata.c:307 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Blocs par segment des relations volumineuses : %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:309 #, c-format msgid "WAL block size: %u\n" msgstr "Taille de bloc du journal de transaction : %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:311 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Octets par segment du journal de transaction : %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:313 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Longueur maximale des identifiants : %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:315 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Nombre maximum de colonnes d'un index: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:317 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longueur maximale d'un morceau TOAST : %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:319 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Taille d'un morceau de Large Object : %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:322 #, c-format msgid "Date/time type storage: %s\n" msgstr "Stockage du type date/heure : %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:323 msgid "64-bit integers" msgstr "entiers 64-bits" -#: pg_controldata.c:325 +#: pg_controldata.c:324 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Passage d'argument float8 : %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by reference" msgstr "par référence" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by value" msgstr "par valeur" -#: pg_controldata.c:327 +#: pg_controldata.c:326 #, c-format msgid "Data page checksum version: %u\n" msgstr "Version des sommes de contrôle des pages de données : %u\n" -#: pg_controldata.c:329 +#: pg_controldata.c:328 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "Nonce pour simuler une identité: %s\n" - -#~ msgid " -?, --help show this help, then exit\n" -#~ msgstr " -?, --help affiche cette aide et quitte\n" - -#~ msgid " -V, --version output version information, then exit\n" -#~ msgstr " -V, --version affiche la version et quitte\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: could not read file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le fichier « %s » : %s\n" - -#~ 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 "Float4 argument passing: %s\n" -#~ msgstr "Passage d'argument float4 : %s\n" - -#~ msgid "Prior checkpoint location: %X/%X\n" -#~ msgstr "Point de contrôle précédent : %X/%X\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\n" - -#~ msgid "" -#~ "Usage:\n" -#~ " %s [OPTION] [DATADIR]\n" -#~ "\n" -#~ "Options:\n" -#~ " --help show this help, then exit\n" -#~ " --version output version information, then exit\n" -#~ msgstr "" -#~ "Usage :\n" -#~ " %s [OPTION] [RÉP_DONNÉES]\n" -#~ "\n" -#~ "Options :\n" -#~ " --help affiche cette aide et quitte\n" -#~ " --version affiche les informations de version et quitte\n" - -#~ msgid "calculated CRC checksum does not match value stored in file" -#~ msgstr "la somme de contrôle CRC calculée ne correspond par à la valeur enregistrée dans le fichier" - -#~ msgid "floating-point numbers" -#~ msgstr "nombres à virgule flottante" diff --git a/src/bin/pg_controldata/po/ja.po b/src/bin/pg_controldata/po/ja.po index 8da59bf47503a..6b9c5d7128af4 100644 --- a/src/bin/pg_controldata/po/ja.po +++ b/src/bin/pg_controldata/po/ja.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_controldata (PostgreSQL 17)\n" +"Project-Id-Version: pg_controldata (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-20 14:21+0900\n" -"PO-Revision-Date: 2024-05-20 16:33+0900\n" +"POT-Creation-Date: 2025-03-31 09:53+0900\n" +"PO-Revision-Date: 2025-03-31 16:28+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -70,6 +70,17 @@ msgstr "ファイル\"%s\"を書き出せませんでした: %m" msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "メモリ不足です\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "nullポインタは複製できません(内部エラー)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -171,325 +182,339 @@ msgstr "未知のステータスコード" msgid "unrecognized \"wal_level\"" msgstr "\"wal_level\"を認識できません" -#: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 +#: pg_controldata.c:139 pg_controldata.c:157 pg_controldata.c:164 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_controldata.c:154 +#: pg_controldata.c:155 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: pg_controldata.c:162 +#: pg_controldata.c:163 #, c-format msgid "no data directory specified" msgstr "データディレクトリが指定されていません" -#: pg_controldata.c:171 +#: pg_controldata.c:172 #, c-format msgid "calculated CRC checksum does not match value stored in control file" msgstr "算出されたCRCチェックサムが制御ファイルに格納されている値と一致しません" -#: pg_controldata.c:172 +#: pg_controldata.c:173 #, c-format msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." msgstr "制御ファイルが破損しているか、このプログラムが期待していない配置になっています。以下の結果は信頼できません。" -#: pg_controldata.c:181 +#: pg_controldata.c:182 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "制御ファイル中の不正なWALセグメントサイズ (%dバイト)" -#: pg_controldata.c:185 +#: pg_controldata.c:186 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WALセグメントサイズは1MBから1GBまでの間の2の累乗でなければなりません。" -#: pg_controldata.c:186 +#: pg_controldata.c:187 #, c-format msgid "The file is corrupt and the results below are untrustworthy." msgstr "このファイルは破損しており、以下の結果は信頼できません。" -#: pg_controldata.c:221 +#: pg_controldata.c:205 pg_controldata.c:213 pg_controldata.c:232 +#, c-format msgid "???" msgstr "???" -#: pg_controldata.c:227 +#: pg_controldata.c:238 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_controlバージョン番号: %u\n" -#: pg_controldata.c:229 +#: pg_controldata.c:240 #, c-format msgid "Catalog version number: %u\n" msgstr "カタログバージョン番号: %u\n" -#: pg_controldata.c:231 +#: pg_controldata.c:242 #, c-format -msgid "Database system identifier: %llu\n" -msgstr "データベースシステム識別子: %llu\n" +msgid "Database system identifier: %\n" +msgstr "データベースシステム識別子: %\n" -#: pg_controldata.c:233 +#: pg_controldata.c:244 #, c-format msgid "Database cluster state: %s\n" msgstr "データベースクラスタの状態: %s\n" -#: pg_controldata.c:235 +#: pg_controldata.c:246 #, c-format msgid "pg_control last modified: %s\n" msgstr "pg_control最終更新: %s\n" -#: pg_controldata.c:237 +#: pg_controldata.c:248 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "最終チェックポイント位置: %X/%X\n" -#: pg_controldata.c:239 +#: pg_controldata.c:250 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "最終チェックポイントのREDO位置: %X/%X\n" -#: pg_controldata.c:241 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "最終チェックポイントのREDO WALファイル: %s\n" -#: pg_controldata.c:243 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "最終チェックポイントの時系列ID: %u\n" -#: pg_controldata.c:245 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "最終チェックポイントのPrevTimeLineID: %u\n" -#: pg_controldata.c:247 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "最終チェックポイントのfull_page_writes: %s\n" -#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "off" msgstr "オフ" -#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "on" msgstr "オン" -#: pg_controldata.c:249 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "最終チェックポイントのNextXID: %u:%u\n" -#: pg_controldata.c:252 +#: pg_controldata.c:263 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "最終チェックポイントのNextOID: %u\n" -#: pg_controldata.c:254 +#: pg_controldata.c:265 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "最終チェックポイントのNextMultiXactId: %u\n" -#: pg_controldata.c:256 +#: pg_controldata.c:267 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "最終チェックポイントのNextMultiOffset: %u\n" -#: pg_controldata.c:258 +#: pg_controldata.c:269 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "最終チェックポイントのoldestXID: %u\n" -#: pg_controldata.c:260 +#: pg_controldata.c:271 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "最終チェックポイントのoldestXIDのDB: %u\n" -#: pg_controldata.c:262 +#: pg_controldata.c:273 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "最終チェックポイントのoldestActiveXID: %u\n" -#: pg_controldata.c:264 +#: pg_controldata.c:275 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "最終チェックポイントのoldestMultiXid: %u\n" -#: pg_controldata.c:266 +#: pg_controldata.c:277 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "最終チェックポイントのoldestMultiのDB: %u\n" -#: pg_controldata.c:268 +#: pg_controldata.c:279 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "最終チェックポイントのoldestCommitTsXid: %u\n" -#: pg_controldata.c:270 +#: pg_controldata.c:281 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "最終チェックポイントのnewestCommitTsXid: %u\n" -#: pg_controldata.c:272 +#: pg_controldata.c:283 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "最終チェックポイント時刻: %s\n" -#: pg_controldata.c:274 +#: pg_controldata.c:285 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "UNLOGGEDリレーションの偽のLSNカウンタ: %X/%X\n" -#: pg_controldata.c:276 +#: pg_controldata.c:287 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "最小リカバリ終了位置: %X/%X\n" -#: pg_controldata.c:278 +#: pg_controldata.c:289 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "最小リカバリ終了位置のタイムライン: %u\n" -#: pg_controldata.c:280 +#: pg_controldata.c:291 #, c-format msgid "Backup start location: %X/%X\n" msgstr "バックアップ開始位置: %X/%X\n" -#: pg_controldata.c:282 +#: pg_controldata.c:293 #, c-format msgid "Backup end location: %X/%X\n" msgstr "バックアップ終了位置: %X/%X\n" -#: pg_controldata.c:284 +#: pg_controldata.c:295 #, c-format msgid "End-of-backup record required: %s\n" msgstr "必要なバックアップ最終レコード: %s\n" -#: pg_controldata.c:285 +#: pg_controldata.c:296 msgid "no" msgstr "いいえ" -#: pg_controldata.c:285 +#: pg_controldata.c:296 msgid "yes" msgstr "はい" -#: pg_controldata.c:286 +#: pg_controldata.c:297 #, c-format msgid "wal_level setting: %s\n" msgstr "wal_levelの設定: %s\n" -#: pg_controldata.c:288 +#: pg_controldata.c:299 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "wal_log_hintsの設定: %s\n" -#: pg_controldata.c:290 +#: pg_controldata.c:301 #, c-format msgid "max_connections setting: %d\n" msgstr "max_connectionsの設定: %d\n" -#: pg_controldata.c:292 +#: pg_controldata.c:303 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "max_worker_processesの設定: %d\n" -#: pg_controldata.c:294 +#: pg_controldata.c:305 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "max_wal_sendersの設定: %d\n" -#: pg_controldata.c:296 +#: pg_controldata.c:307 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "max_prepared_xactsの設定: %d\n" -#: pg_controldata.c:298 +#: pg_controldata.c:309 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "max_locks_per_xactの設定: %d\n" -#: pg_controldata.c:300 +#: pg_controldata.c:311 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "track_commit_timestampの設定: %s\n" -#: pg_controldata.c:302 +#: pg_controldata.c:313 #, c-format msgid "Maximum data alignment: %u\n" msgstr "最大データアラインメント: %u\n" -#: pg_controldata.c:305 +#: pg_controldata.c:316 #, c-format msgid "Database block size: %u\n" msgstr "データベースのブロックサイズ: %u\n" -#: pg_controldata.c:307 +#: pg_controldata.c:318 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "大きなリレーションのセグメント毎のブロック数:%u\n" -#: pg_controldata.c:309 +#: pg_controldata.c:320 #, c-format msgid "WAL block size: %u\n" msgstr "WALのブロックサイズ: %u\n" -#: pg_controldata.c:311 +#: pg_controldata.c:322 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "WALセグメント当たりのバイト数: %u\n" -#: pg_controldata.c:313 +#: pg_controldata.c:324 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "識別子の最大長: %u\n" -#: pg_controldata.c:315 +#: pg_controldata.c:326 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "インデックス内の最大列数: %u\n" -#: pg_controldata.c:317 +#: pg_controldata.c:328 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOASTチャンクの最大サイズ: %u\n" -#: pg_controldata.c:319 +#: pg_controldata.c:330 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "ラージオブジェクトチャンクのサイズ: %u\n" -#: pg_controldata.c:322 +#: pg_controldata.c:333 #, c-format msgid "Date/time type storage: %s\n" msgstr "日付/時刻型の格納方式: %s\n" -#: pg_controldata.c:323 +#: pg_controldata.c:334 msgid "64-bit integers" msgstr "64ビット整数" -#: pg_controldata.c:324 +#: pg_controldata.c:335 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8引数の渡し方: %s\n" -#: pg_controldata.c:325 +#: pg_controldata.c:336 msgid "by reference" msgstr "参照渡し" -#: pg_controldata.c:325 +#: pg_controldata.c:336 msgid "by value" msgstr "値渡し" -#: pg_controldata.c:326 +#: pg_controldata.c:337 #, c-format msgid "Data page checksum version: %u\n" msgstr "データベージチェックサムのバージョン: %u\n" -#: pg_controldata.c:328 +#: pg_controldata.c:339 +#, c-format +msgid "Default char data signedness: %s\n" +msgstr "デフォルトのchar型の符号あり/なし: %s\n" + +#: pg_controldata.c:340 +msgid "signed" +msgstr "signed" + +#: pg_controldata.c:340 +msgid "unsigned" +msgstr "unsigned" + +#: pg_controldata.c:341 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "認証用の疑似nonce: %s\n" diff --git a/src/bin/pg_controldata/po/ka.po b/src/bin/pg_controldata/po/ka.po index 94bb60ceebc99..fe23c53667b11 100644 --- a/src/bin/pg_controldata/po/ka.po +++ b/src/bin/pg_controldata/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_controldata (PostgreSQL) 17\n" +"Project-Id-Version: pg_controldata (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-18 22:23+0000\n" -"PO-Revision-Date: 2024-05-19 07:11+0200\n" +"POT-Creation-Date: 2025-03-29 21:24+0000\n" +"PO-Revision-Date: 2025-03-30 01:29+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,7 +16,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../common/controldata_utils.c:97 #, c-format @@ -69,6 +69,17 @@ msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -170,326 +181,340 @@ msgstr "სტატუსის უცნობი კოდი" msgid "unrecognized \"wal_level\"" msgstr "უცნობი \"wal_level\"" -#: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 +#: pg_controldata.c:139 pg_controldata.c:157 pg_controldata.c:164 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_controldata.c:154 +#: pg_controldata.c:155 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_controldata.c:162 +#: pg_controldata.c:163 #, c-format msgid "no data directory specified" msgstr "მონაცემების საქაღალდე მითითებული არაა" -#: pg_controldata.c:171 +#: pg_controldata.c:172 #, c-format msgid "calculated CRC checksum does not match value stored in control file" msgstr "გამოთვლილი CRC საკონტროლო ჯამი კონტროლის ფაილში დამახსოვრებულ მნიშვნელობას არ ემთხვევა" -#: pg_controldata.c:172 +#: pg_controldata.c:173 #, c-format msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." msgstr "ან კონტროლი ფაილი დაზიანებულია, ან გააჩნია იმისგან განსხვავებული განლაგება, ვიდრე ამას პროგრამა მოელოდა. ქვემო შედეგები სანდო არაა." -#: pg_controldata.c:181 +#: pg_controldata.c:182 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" msgstr[1] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" -#: pg_controldata.c:185 +#: pg_controldata.c:186 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WAL სეგმენტის ზომა ორის ხარისხი უნდა იყოს, შუალედიდან 1მბ-1გბ." -#: pg_controldata.c:186 +#: pg_controldata.c:187 #, c-format msgid "The file is corrupt and the results below are untrustworthy." msgstr "ფაილი დაზიანებულია და ქვემო შედეგები სანდო არაა." -#: pg_controldata.c:221 +#: pg_controldata.c:205 pg_controldata.c:213 pg_controldata.c:232 +#, c-format msgid "???" msgstr "???" -#: pg_controldata.c:227 +#: pg_controldata.c:238 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control ვერსიის ნომერი: %u\n" -#: pg_controldata.c:229 +#: pg_controldata.c:240 #, c-format msgid "Catalog version number: %u\n" msgstr "კატალოგის ვერსიის ნომერი: %u\n" -#: pg_controldata.c:231 +#: pg_controldata.c:242 #, c-format -msgid "Database system identifier: %llu\n" -msgstr "ბაზის სისტემური იდენტიფიკატორი: %llu\n" +msgid "Database system identifier: %\n" +msgstr "ბაზის სისტემური იდენტიფიკატორი: %\n" -#: pg_controldata.c:233 +#: pg_controldata.c:244 #, c-format msgid "Database cluster state: %s\n" msgstr "ბაზის კლასტერის მდგომარეობა: %s\n" -#: pg_controldata.c:235 +#: pg_controldata.c:246 #, c-format msgid "pg_control last modified: %s\n" msgstr "pg_control-ის ბოლო ცვლილების დრო: %s\n" -#: pg_controldata.c:237 +#: pg_controldata.c:248 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "საკონტროლო წერტილის უკანასკნელი მდებარეობა: %X/%X\n" -#: pg_controldata.c:239 +#: pg_controldata.c:250 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "საკონტროლო წერტილის REDO-ის უკანასკნელი მდებარეობა: %X/%X\n" -#: pg_controldata.c:241 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "უკანასკნელი საკონტროლო წერტილის REDO WAL ფაილი: %s\n" -#: pg_controldata.c:243 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "უახლესი საკონტროლო წერტილისTimeLineID: %u\n" -#: pg_controldata.c:245 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "უახლესი საკონტროლო წერტილის PrevTimeLineID: %u\n" -#: pg_controldata.c:247 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "უახლესი უკანასკნელი საკონტროლო წერტილის full_page_writes: %s\n" -#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "off" msgstr "გამორთული" -#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "on" msgstr "ჩართ" -#: pg_controldata.c:249 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "უახლესი საკონტროლო წერტილის NextXID: %u:%u\n" -#: pg_controldata.c:252 +#: pg_controldata.c:263 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextOID: %u\n" -#: pg_controldata.c:254 +#: pg_controldata.c:265 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextMultiXactId: %u\n" -#: pg_controldata.c:256 +#: pg_controldata.c:267 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextMultiOffset: %u\n" -#: pg_controldata.c:258 +#: pg_controldata.c:269 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestXID: %u\n" -#: pg_controldata.c:260 +#: pg_controldata.c:271 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestXID's DB: %u\n" -#: pg_controldata.c:262 +#: pg_controldata.c:273 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestActiveXID: %u\n" -#: pg_controldata.c:264 +#: pg_controldata.c:275 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestMultiXid: %u\n" -#: pg_controldata.c:266 +#: pg_controldata.c:277 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestMulti's DB: %u\n" -#: pg_controldata.c:268 +#: pg_controldata.c:279 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "უახლესი საკონტროლო წერტილის oldestCommitTsXid:%u\n" -#: pg_controldata.c:270 +#: pg_controldata.c:281 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "უახლესი საკონტროლო წერტილის newestCommitTsXid:%u\n" -#: pg_controldata.c:272 +#: pg_controldata.c:283 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "უახლესი საკონტოლო წერტილის დრო: %s\n" -#: pg_controldata.c:274 +#: pg_controldata.c:285 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "LSN-ის ყალბი მთვლელი არაჟურნალიზებადი ურთ-თვის: %X/%X\n" -#: pg_controldata.c:276 +#: pg_controldata.c:287 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "მინიმალური აღდგენის დასასრულის მდებარეობა %X/%X\n" -#: pg_controldata.c:278 +#: pg_controldata.c:289 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "მინ. აღდგ დასასრ მდებარ დროის ხაზი: %u\n" -#: pg_controldata.c:280 +#: pg_controldata.c:291 #, c-format msgid "Backup start location: %X/%X\n" msgstr "მარქაფის დაწყების მდებარეობა: %X/%X\n" -#: pg_controldata.c:282 +#: pg_controldata.c:293 #, c-format msgid "Backup end location: %X/%X\n" msgstr "მარქაფს დასასრულის მდებარეობა: %X/%X\n" -#: pg_controldata.c:284 +#: pg_controldata.c:295 #, c-format msgid "End-of-backup record required: %s\n" msgstr "მარქაფის-ბოლო ჩანაწერი აუცილებელია: %s\n" -#: pg_controldata.c:285 +#: pg_controldata.c:296 msgid "no" msgstr "არა" -#: pg_controldata.c:285 +#: pg_controldata.c:296 msgid "yes" msgstr "დიახ" -#: pg_controldata.c:286 +#: pg_controldata.c:297 #, c-format msgid "wal_level setting: %s\n" msgstr "wal_level პარამეტრი: %s\n" -#: pg_controldata.c:288 +#: pg_controldata.c:299 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "wal_log_hints პარამეტრი: %s\n" -#: pg_controldata.c:290 +#: pg_controldata.c:301 #, c-format msgid "max_connections setting: %d\n" msgstr "max_connections პარამეტრი: %d\n" -#: pg_controldata.c:292 +#: pg_controldata.c:303 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "max_worker_processes პარამეტრი: %d\n" -#: pg_controldata.c:294 +#: pg_controldata.c:305 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "max_wal_senders პარამეტრი: %d\n" -#: pg_controldata.c:296 +#: pg_controldata.c:307 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "max_prepared_xacts პარამეტრი: %d\n" -#: pg_controldata.c:298 +#: pg_controldata.c:309 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "max_locks_per_xact პარამეტრი: %d\n" -#: pg_controldata.c:300 +#: pg_controldata.c:311 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "track_commit_timestamp პარამეტრი: %s\n" -#: pg_controldata.c:302 +#: pg_controldata.c:313 #, c-format msgid "Maximum data alignment: %u\n" msgstr "მონაცემების სწორების მაქსიმუმი: %u\n" -#: pg_controldata.c:305 +#: pg_controldata.c:316 #, c-format msgid "Database block size: %u\n" msgstr "ბაზის ბლოკის ზომა: %u\n" -#: pg_controldata.c:307 +#: pg_controldata.c:318 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "დიდი ურთიერთობის სეგმენტები თითოეულ ბლოკში: %u\n" -#: pg_controldata.c:309 +#: pg_controldata.c:320 #, c-format msgid "WAL block size: %u\n" msgstr "WAL ბლოკის ზომა: %u\n" -#: pg_controldata.c:311 +#: pg_controldata.c:322 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "ბაიტები თითოეულ WAL სეგმენტში: %u\n" -#: pg_controldata.c:313 +#: pg_controldata.c:324 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "იდენტიფიკატორების მაქსიმალური სიგრძე: %u\n" -#: pg_controldata.c:315 +#: pg_controldata.c:326 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "ინდექსში სვეტების მაქსიმალური რაოდენობა: %u\n" -#: pg_controldata.c:317 +#: pg_controldata.c:328 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOAST ნაგლეჯის მაქსიმალური ზომა: %u\n" -#: pg_controldata.c:319 +#: pg_controldata.c:330 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "დიდი ობიექტის ნაგლეჯის ზომა: %u\n" -#: pg_controldata.c:322 +#: pg_controldata.c:333 #, c-format msgid "Date/time type storage: %s\n" msgstr "თარიღის ტიპის საცავი: %s\n" -#: pg_controldata.c:323 +#: pg_controldata.c:334 msgid "64-bit integers" msgstr "64-ბიტიანი მთელ რიცხვები" -#: pg_controldata.c:324 +#: pg_controldata.c:335 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8 არგუმენტის გადაცემა: %s\n" -#: pg_controldata.c:325 +#: pg_controldata.c:336 msgid "by reference" msgstr "ბმით" -#: pg_controldata.c:325 +#: pg_controldata.c:336 msgid "by value" msgstr "მნიშვნელობით" -#: pg_controldata.c:326 +#: pg_controldata.c:337 #, c-format msgid "Data page checksum version: %u\n" msgstr "მონაცემების გვერდის საკონტროლო ჯამის ვერსია: %u\n" -#: pg_controldata.c:328 +#: pg_controldata.c:339 +#, c-format +msgid "Default char data signedness: %s\n" +msgstr "ნაგულისხმევი სტრიქონის მონაცემების ნიშნიანობა: %s\n" + +#: pg_controldata.c:340 +msgid "signed" +msgstr "ნიშნიანი" + +#: pg_controldata.c:340 +msgid "unsigned" +msgstr "უნიშნო" + +#: pg_controldata.c:341 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "ფსევდოავთენტიკაციის შემთხვევითი რიცხვი: %s\n" diff --git a/src/bin/pg_controldata/po/ko.po b/src/bin/pg_controldata/po/ko.po index 4b40dca65e0dc..b753d7e93c13c 100644 --- a/src/bin/pg_controldata/po/ko.po +++ b/src/bin/pg_controldata/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_controldata (PostgreSQL) 16\n" +"Project-Id-Version: pg_controldata (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:52+0000\n" -"PO-Revision-Date: 2023-05-30 12:38+0900\n" +"POT-Creation-Date: 2025-01-17 04:53+0000\n" +"PO-Revision-Date: 2025-01-16 15:43+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -15,31 +15,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../common/controldata_utils.c:73 +#: ../../common/controldata_utils.c:97 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "\"%s\" 파일을 읽기 모드로 열 수 없습니다: %m" -#: ../../common/controldata_utils.c:86 +#: ../../common/controldata_utils.c:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "\"%s\" 파일을 읽을 수 없습니다: %m" -#: ../../common/controldata_utils.c:95 +#: ../../common/controldata_utils.c:119 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" -#: ../../common/controldata_utils.c:108 ../../common/controldata_utils.c:236 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "\"%s\" 파일을 닫을 수 없습니다: %m" -#: ../../common/controldata_utils.c:124 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "바이트 순서 불일치" -#: ../../common/controldata_utils.c:126 +#: ../../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -48,26 +48,38 @@ msgid "" "and\n" "the PostgreSQL installation would be incompatible with this data directory." msgstr "" -"바이트 순서가 일치하지 않습니다.\n" -"pg_control 파일을 저장하는 데 사용된 바이트 순서는 \n" -"이 프로그램에서 사용하는 순서와 일치해야 합니다. 이 경우 아래 결과는\n" -"올바르지 않으며 이 데이터 디렉터리에 PostgreSQL을 설치할 수 없습니다." +"바이트 순서 일치하지 않는 문제\n" +"바이트 순서 정보는 pg_control 파일을 저장할 때 사용되는데,\n" +"이 파일의 바이트 순서 정보와 이 프로그램에서 사용하는 순서 정보가 다릅니다.\n" +"이럴 경우, 출력 결과가 바르지 않을 수 있고,\n" +"설치된 PostgreSQL 프로그램과 데이터 디렉터리가 호환되지 않을 수 있습니다." -#: ../../common/controldata_utils.c:186 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "\"%s\" 파일을 읽을 수 없습니다: %m" -#: ../../common/controldata_utils.c:205 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "\"%s\" 파일을 쓸 수 없습니다: %m" -#: ../../common/controldata_utils.c:224 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "\"%s\" 파일을 fsync 할 수 없습니다: %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -168,8 +180,8 @@ msgid "unrecognized status code" msgstr "알수 없는 상태 코드" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "알 수 없는 wal_level" +msgid "unrecognized \"wal_level\"" +msgstr "알 수 없는 \"wal_level\"" #: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 #, c-format @@ -186,319 +198,334 @@ msgstr "너무 많은 명령행 인수를 지정했습니다. (처음 \"%s\")" msgid "no data directory specified" msgstr "데이터 디렉터리를 지정하지 않았습니다" -#: pg_controldata.c:170 +#: pg_controldata.c:171 +#, c-format +msgid "calculated CRC checksum does not match value stored in control file" +msgstr "계산된 CRC 체크섬 값과 컨트롤 파일에 저장된 값이 다름" + +#: pg_controldata.c:172 #, c-format 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" +"Either the control file is corrupt, or it has a different layout than this " +"program is expecting. The results below are untrustworthy." msgstr "" -"경고: 계산된 CRC 체크섬값이 파일에 있는 값과 틀립니다.\n" -"이 경우는 파일이 손상되었거나, 이 프로그램과 컨트롤 파일의 버전이 틀린\n" -"경우입니다. 결과값들은 믿지 못할 값들이 출력될 수 있습니다.\n" -"\n" +"이 경우는 컨트롤 파일이 손상되었거나, 이 프로그램과 컨트롤 파일의 버전이 틀" +"린 경우입니다. 결과값들은 믿지 못할 값들이 출력될 수 있습니다." -#: pg_controldata.c:179 +#: pg_controldata.c:181 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "경고: 잘못된 WAL 조각 크기\n" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "컨트롤 파일의 WAL 조각 파일 크기가 올바르지 않음 (%d 바이트)" -#: pg_controldata.c:180 +#: pg_controldata.c:185 #, c-format -msgid "" -"The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgid_plural "" -"The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgstr[0] "" -"저장된 WAL 조각 파일의 크기는 %d 바이트입니다. 이 값은 1MB부터 1GB사이\n" -"2^n 값이 아닙니다. 파일이 손상되었으며, 결과 또한 믿을 수 없습니다.\n" -"\n" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL 조각 파일 크기는 1MB에서 1GB사이 2의 제곱값이어야 합니다." -#: pg_controldata.c:222 +#: pg_controldata.c:186 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "이 파일이 깨져서 신뢰할 수 없는 결과값이 출력됩니다." + +#: pg_controldata.c:221 msgid "???" msgstr "???" -#: pg_controldata.c:228 +#: pg_controldata.c:227 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control 버전 번호: %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:229 #, c-format msgid "Catalog version number: %u\n" msgstr "카탈로그 버전 번호: %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:231 #, c-format msgid "Database system identifier: %llu\n" msgstr "데이터베이스 시스템 식별자: %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:233 #, c-format msgid "Database cluster state: %s\n" msgstr "데이터베이스 클러스터 상태: %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:235 #, c-format msgid "pg_control last modified: %s\n" msgstr "pg_control 마지막 변경시간: %s\n" -#: pg_controldata.c:238 +#: pg_controldata.c:237 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "마지막 체크포인트 위치: %X/%X\n" -#: pg_controldata.c:240 +#: pg_controldata.c:239 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "마지막 체크포인트 REDO 위치: %X/%X\n" -#: pg_controldata.c:242 +#: pg_controldata.c:241 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "마지막 체크포인트 REDO WAL 파일: %s\n" -#: pg_controldata.c:244 +#: pg_controldata.c:243 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "마지막 체크포인트 TimeLineID: %u\n" -#: pg_controldata.c:246 +#: pg_controldata.c:245 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "마지막 체크포인트 PrevTimeLineID: %u\n" -#: pg_controldata.c:248 +#: pg_controldata.c:247 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "마지막 체크포인트 full_page_writes: %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "off" msgstr "off" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "on" msgstr "on" -#: pg_controldata.c:250 +#: pg_controldata.c:249 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "마지막 체크포인트 NextXID: %u:%u\n" -#: pg_controldata.c:253 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "마지막 체크포인트 NextOID: %u\n" -#: pg_controldata.c:255 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "마지막 체크포인트 NextMultiXactId: %u\n" -#: pg_controldata.c:257 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "마지막 체크포인트 NextMultiOffset: %u\n" -#: pg_controldata.c:259 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "마지막 체크포인트 제일오래된XID: %u\n" -#: pg_controldata.c:261 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "마지막 체크포인트 제일오래된XID의 DB: %u\n" -#: pg_controldata.c:263 +#: pg_controldata.c:262 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "마지막 체크포인트 제일오래된ActiveXID:%u\n" -#: pg_controldata.c:265 +#: pg_controldata.c:264 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "마지막 체크포인트 제일오래된MultiXid: %u\n" -#: pg_controldata.c:267 +#: pg_controldata.c:266 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "마지막 체크포인트 제일오래된멀티Xid DB:%u\n" -#: pg_controldata.c:269 +#: pg_controldata.c:268 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "마지막 체크포인트 제일오래된CommitTsXid:%u\n" -#: pg_controldata.c:271 +#: pg_controldata.c:270 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "마지막 체크포인트 최신CommitTsXid: %u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:272 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "마지막 체크포인트 시간: %s\n" -#: pg_controldata.c:275 +#: pg_controldata.c:274 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "언로그 릴레이션의 가짜 LSN 카운터: %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:276 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "최소 복구 마지막 위치: %X/%X\n" -#: pg_controldata.c:279 +#: pg_controldata.c:278 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "최소 복구 종료 위치의 타임라인: %u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:280 #, c-format msgid "Backup start location: %X/%X\n" msgstr "백업 시작 위치: %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:282 #, c-format msgid "Backup end location: %X/%X\n" msgstr "백업 종료 위치: %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:284 #, c-format msgid "End-of-backup record required: %s\n" msgstr "백업 종료 레코드 필요 여부: %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "no" msgstr "아니오" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "yes" msgstr "예" -#: pg_controldata.c:287 +#: pg_controldata.c:286 #, c-format msgid "wal_level setting: %s\n" msgstr "wal_level 설정값: %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:288 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "wal_log_hints 설정값: %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:290 #, c-format msgid "max_connections setting: %d\n" msgstr "max_connections 설정값: %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:292 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "max_worker_processes 설정값: %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:294 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "max_wal_senders 설정값: %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:296 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "max_prepared_xacts 설정값: %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:298 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "max_locks_per_xact 설정값: %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:300 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "track_commit_timestamp 설정값: %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:302 #, c-format msgid "Maximum data alignment: %u\n" msgstr "최대 자료 정렬: %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:305 #, c-format msgid "Database block size: %u\n" msgstr "데이터베이스 블록 크기: %u\n" -#: pg_controldata.c:308 +#: pg_controldata.c:307 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "대형 릴레이션의 세그먼트당 블럭 개수: %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:309 #, c-format msgid "WAL block size: %u\n" msgstr "WAL 블록 크기: %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:311 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "WAL 세그먼트의 크기(byte): %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:313 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "식별자 최대 길이: %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:315 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "인덱스에서 사용하는 최대 열 수: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:317 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOAST 청크 최대 크기: %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:319 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "대형 객체 청크 크기: %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:322 #, c-format msgid "Date/time type storage: %s\n" msgstr "날짜/시간형 자료의 저장방식: %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:323 msgid "64-bit integers" msgstr "64-비트 정수" -#: pg_controldata.c:325 +#: pg_controldata.c:324 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8 인수 전달: %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by reference" msgstr "참조별" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by value" msgstr "값별" -#: pg_controldata.c:327 +#: pg_controldata.c:326 #, c-format msgid "Data page checksum version: %u\n" msgstr "데이터 페이지 체크섬 버전: %u\n" -#: pg_controldata.c:329 +#: pg_controldata.c:328 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "임시 모의 인증: %s\n" + +#, c-format +#~ msgid "WARNING: invalid WAL segment size\n" +#~ msgstr "경고: 잘못된 WAL 조각 크기\n" + +#, c-format +#~ msgid "" +#~ "The WAL segment size stored in the file, %d byte, is not a power of two\n" +#~ "between 1 MB and 1 GB. The file is corrupt and the results below are\n" +#~ "untrustworthy.\n" +#~ "\n" +#~ msgid_plural "" +#~ "The WAL segment size stored in the file, %d bytes, is not a power of two\n" +#~ "between 1 MB and 1 GB. The file is corrupt and the results below are\n" +#~ "untrustworthy.\n" +#~ "\n" +#~ msgstr[0] "" +#~ "저장된 WAL 조각 파일의 크기는 %d 바이트입니다. 이 값은 1MB부터 1GB사이\n" +#~ "2^n 값이 아닙니다. 파일이 손상되었으며, 결과 또한 믿을 수 없습니다.\n" +#~ "\n" diff --git a/src/bin/pg_controldata/po/ru.po b/src/bin/pg_controldata/po/ru.po index 430ec929eed2c..5197e06cc71d3 100644 --- a/src/bin/pg_controldata/po/ru.po +++ b/src/bin/pg_controldata/po/ru.po @@ -4,13 +4,13 @@ # Serguei A. Mokhov , 2002-2004. # Oleg Bartunov , 2004. # Andrey Sudnik , 2011. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pg_controldata (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:08+0300\n" -"PO-Revision-Date: 2022-09-05 13:34+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-04 17:08+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -20,31 +20,31 @@ msgstr "" "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/controldata_utils.c:83 +#: ../../common/controldata_utils.c:97 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: ../../common/controldata_utils.c:96 +#: ../../common/controldata_utils.c:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: ../../common/controldata_utils.c:105 +#: ../../common/controldata_utils.c:119 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" -#: ../../common/controldata_utils.c:118 ../../common/controldata_utils.c:266 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: ../../common/controldata_utils.c:154 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "несоответствие порядка байт" -#: ../../common/controldata_utils.c:156 +#: ../../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -58,21 +58,32 @@ msgstr "" "этой программой. В этом случае результаты будут неверными и\n" "установленный PostgreSQL будет несовместим с этим каталогом данных." -#: ../../common/controldata_utils.c:216 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" -#: ../../common/controldata_utils.c:235 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: ../../common/controldata_utils.c:254 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -173,378 +184,398 @@ msgid "unrecognized status code" msgstr "нераспознанный код состояния" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "нераспознанный уровень WAL" +msgid "unrecognized \"wal_level\"" +msgstr "нераспознанное значение \"wal_level\"" -#: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 +#: pg_controldata.c:139 pg_controldata.c:157 pg_controldata.c:164 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_controldata.c:154 +#: pg_controldata.c:155 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_controldata.c:162 +#: pg_controldata.c:163 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_controldata.c:170 +#: pg_controldata.c:172 +#, c-format +msgid "calculated CRC checksum does not match value stored in control file" +msgstr "" +"вычисленная контрольная сумма (CRC) не соответствует значению, сохранённому " +"в управляющем файле" + +#: pg_controldata.c:173 #, c-format 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" +"Either the control file is corrupt, or it has a different layout than this " +"program is expecting. The results below are untrustworthy." msgstr "" -"ПРЕДУПРЕЖДЕНИЕ: Вычисленная контрольная сумма не совпадает со значением в " -"файле.\n" -"Либо файл повреждён, либо его формат отличается от ожидаемого.\n" -"Следующая информация может быть недостоверной.\n" -"\n" +"Либо управляющий файл повреждён, либо его структура отличается от ожидаемой. " +"Следующая информация может быть недостоверной." -#: pg_controldata.c:179 +#: pg_controldata.c:182 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "ПРЕДУПРЕЖДЕНИЕ: неверный размер сегмента WAL\n" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[1] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[2] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" -#: pg_controldata.c:180 +#: pg_controldata.c:186 #, c-format -msgid "" -"The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgid_plural "" -"The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgstr[0] "" -"Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " -"степенью\n" -"двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" -"подлежит сомнению.\n" -"\n" -msgstr[1] "" -"Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " -"степенью\n" -"двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" -"подлежит сомнению.\n" -"\n" -msgstr[2] "" -"Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " -"степенью\n" -"двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" -"подлежит сомнению.\n" -"\n" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "" +"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 ГБ." -#: pg_controldata.c:222 +#: pg_controldata.c:187 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "Файл испорчен, поэтому следующая информация не является достоверной." + +#: pg_controldata.c:205 pg_controldata.c:213 pg_controldata.c:232 +#, c-format msgid "???" msgstr "???" -#: pg_controldata.c:228 +#: pg_controldata.c:238 #, c-format msgid "pg_control version number: %u\n" msgstr "Номер версии pg_control: %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:240 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версии каталога: %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:242 #, c-format msgid "Database system identifier: %llu\n" msgstr "Идентификатор системы баз данных: %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:244 #, c-format msgid "Database cluster state: %s\n" msgstr "Состояние кластера БД: %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:246 #, c-format msgid "pg_control last modified: %s\n" msgstr "Последнее обновление pg_control: %s\n" # skip-rule: capital-letter-first -#: pg_controldata.c:238 +#: pg_controldata.c:248 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "Положение последней конт. точки: %X/%X\n" # skip-rule: capital-letter-first -#: pg_controldata.c:240 +#: pg_controldata.c:250 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "Положение REDO последней конт. точки: %X/%X\n" # skip-rule: capital-letter-first -#: pg_controldata.c:242 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "Файл WAL c REDO последней к. т.: %s\n" # skip-rule: capital-letter-first -#: pg_controldata.c:244 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Линия времени последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:246 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "Пред. линия времени последней к. т.: %u\n" # skip-rule: no-space-after-period -#: pg_controldata.c:248 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Режим full_page_writes последней к.т: %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "off" msgstr "выкл." -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:259 pg_controldata.c:300 pg_controldata.c:312 msgid "on" msgstr "вкл." # skip-rule: capital-letter-first -#: pg_controldata.c:250 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID последней конт. точки: %u:%u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:253 +#: pg_controldata.c:263 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:255 +#: pg_controldata.c:265 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:257 +#: pg_controldata.c:267 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:259 +#: pg_controldata.c:269 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:261 +#: pg_controldata.c:271 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "БД с oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:263 +#: pg_controldata.c:273 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID последней к. т.: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:265 +#: pg_controldata.c:275 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid последней конт. точки: %u\n" # skip-rule: double-space, capital-letter-first -#: pg_controldata.c:267 +#: pg_controldata.c:277 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "БД с oldestMulti последней к. т.: %u\n" # skip-rule: double-space, capital-letter-first -#: pg_controldata.c:269 +#: pg_controldata.c:279 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_controldata.c:271 +#: pg_controldata.c:281 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid последней к. т.: %u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:283 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "Время последней контрольной точки: %s\n" # skip-rule: capital-letter-first # well-spelled: нежурналир -#: pg_controldata.c:275 +#: pg_controldata.c:285 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "Фиктивный LSN для нежурналир. таблиц: %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:287 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "Мин. положение конца восстановления: %X/%X\n" # skip-rule: capital-letter-first -#: pg_controldata.c:279 +#: pg_controldata.c:289 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "Линия времени мин. положения к. в.: %u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:291 #, c-format msgid "Backup start location: %X/%X\n" msgstr "Положение начала копии: %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:293 #, c-format msgid "Backup end location: %X/%X\n" msgstr "Положение конца копии: %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:295 #, c-format msgid "End-of-backup record required: %s\n" msgstr "Требуется запись конец-копии: %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:296 msgid "no" msgstr "нет" -#: pg_controldata.c:286 +#: pg_controldata.c:296 msgid "yes" msgstr "да" -#: pg_controldata.c:287 +#: pg_controldata.c:297 #, c-format msgid "wal_level setting: %s\n" msgstr "Значение wal_level: %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:299 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "Значение wal_log_hints: %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:301 #, c-format msgid "max_connections setting: %d\n" msgstr "Значение max_connections: %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:303 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "Значение max_worker_processes: %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:305 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "Значение max_wal_senders: %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:307 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "Значение max_prepared_xacts: %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:309 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "Значение max_locks_per_xact: %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:311 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "Значение track_commit_timestamp: %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:313 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Макс. предел выравнивания данных: %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:316 #, c-format msgid "Database block size: %u\n" msgstr "Размер блока БД: %u\n" # skip-rule: double-space -#: pg_controldata.c:308 +#: pg_controldata.c:318 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоков в макс. сегменте отношений: %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:320 #, c-format msgid "WAL block size: %u\n" msgstr "Размер блока WAL: %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:322 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байт в сегменте WAL: %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:324 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальная длина идентификаторов: %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:326 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Макс. число столбцов в индексе: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:328 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальный размер порции TOAST: %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:330 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Размер порции большого объекта: %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:333 #, c-format msgid "Date/time type storage: %s\n" msgstr "Формат хранения даты/времени: %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:334 msgid "64-bit integers" msgstr "64-битные целые" -#: pg_controldata.c:325 +#: pg_controldata.c:335 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргумента float8: %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:336 msgid "by reference" msgstr "по ссылке" -#: pg_controldata.c:326 +#: pg_controldata.c:336 msgid "by value" msgstr "по значению" -#: pg_controldata.c:327 +#: pg_controldata.c:337 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версия контрольных сумм страниц: %u\n" # skip-rule: capital-letter-first -#: pg_controldata.c:329 +#: pg_controldata.c:339 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "Случ. число для псевдоаутентификации: %s\n" +#, c-format +#~ msgid "WARNING: invalid WAL segment size\n" +#~ msgstr "ПРЕДУПРЕЖДЕНИЕ: неверный размер сегмента WAL\n" + +#, c-format +#~ msgid "" +#~ "The WAL segment size stored in the file, %d byte, is not a power of two\n" +#~ "between 1 MB and 1 GB. The file is corrupt and the results below are\n" +#~ "untrustworthy.\n" +#~ "\n" +#~ msgid_plural "" +#~ "The WAL segment size stored in the file, %d bytes, is not a power of two\n" +#~ "between 1 MB and 1 GB. The file is corrupt and the results below are\n" +#~ "untrustworthy.\n" +#~ "\n" +#~ msgstr[0] "" +#~ "Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " +#~ "степенью\n" +#~ "двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" +#~ "подлежит сомнению.\n" +#~ "\n" +#~ msgstr[1] "" +#~ "Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " +#~ "степенью\n" +#~ "двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" +#~ "подлежит сомнению.\n" +#~ "\n" +#~ msgstr[2] "" +#~ "Сохранённый в этом файле размер сегмента WAL (байт: %d) не является " +#~ "степенью\n" +#~ "двух между 1 МБ и 1 ГБ. Файл испорчен, выводимая ниже информация\n" +#~ "подлежит сомнению.\n" +#~ "\n" + #~ msgid "Report bugs to .\n" #~ msgstr "Об ошибках сообщайте по адресу .\n" @@ -555,11 +586,6 @@ msgstr "Случ. число для псевдоаутентификации: %s #~ msgid "Prior checkpoint location: %X/%X\n" #~ msgstr "Положение предыдущей конт. точки: %X/%X\n" -#~ msgid "calculated CRC checksum does not match value stored in file" -#~ msgstr "" -#~ "вычисленная контрольная сумма (CRC) не соответствует значению, " -#~ "сохранённому в файле" - #~ msgid "floating-point numbers" #~ msgstr "числа с плавающей точкой" diff --git a/src/bin/pg_controldata/po/sv.po b/src/bin/pg_controldata/po/sv.po index 9836890199473..07b46343b13f3 100644 --- a/src/bin/pg_controldata/po/sv.po +++ b/src/bin/pg_controldata/po/sv.po @@ -1,16 +1,16 @@ # 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, 2021, 2022. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Mats Erik Andersson , 2014. # # Use these quotes: "%s" # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 09:21+0000\n" -"PO-Revision-Date: 2023-08-17 16:56+0200\n" +"POT-Creation-Date: 2024-07-12 14:24+0000\n" +"PO-Revision-Date: 2024-07-12 19:01+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -19,31 +19,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../common/controldata_utils.c:73 +#: ../../common/controldata_utils.c:97 #, 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:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: ../../common/controldata_utils.c:95 +#: ../../common/controldata_utils.c:119 #, 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:108 ../../common/controldata_utils.c:244 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: ../../common/controldata_utils.c:124 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "byte-ordning stämmer inte" -#: ../../common/controldata_utils.c:126 +#: ../../common/controldata_utils.c:170 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -56,21 +56,32 @@ msgstr "" "inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" "och PostgreSQL-installationen vara inkompatibel med databaskatalogen." -#: ../../common/controldata_utils.c:194 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: ../../common/controldata_utils.c:213 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: ../../common/controldata_utils.c:232 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "kunde inte fsync:a fil \"%s\": %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + #: pg_controldata.c:35 #, c-format msgid "" @@ -170,8 +181,8 @@ msgid "unrecognized status code" msgstr "okänd statuskod" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "okänd wal_level" +msgid "unrecognized \"wal_level\"" +msgstr "okänd \"wal_level\"" #: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 #, c-format @@ -188,48 +199,34 @@ msgstr "för många kommandoradsargument (första är \"%s\")" msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_controldata.c:170 +#: pg_controldata.c:171 #, c-format -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 "" -"VARNING: Beräknad CRC-kontrollsumma matchar inte det värde som har sparats i filen.\n" -"Antingen är filen trasig, eller så har den en annan uppbyggnad än vad detta\n" -"program förväntade sig. Resultatet nedan är inte helt tillförlitligt.\n" -"\n" +msgid "calculated CRC checksum does not match value stored in control file" +msgstr "uträknad CRC-checksumma matchar inte värdet som är lagrat i kontrollfil" -#: pg_controldata.c:179 +#: pg_controldata.c:172 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "VARNING: ogiltig WAL-segmentstorlek\n" +msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." +msgstr "Antingen är filen trasig, eller så har den en annan uppbyggnad än vad detta program förväntade sig. Resultatet nedan är inte helt tillförlitligt." -#: pg_controldata.c:180 +#: pg_controldata.c:181 #, c-format -msgid "" -"The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgid_plural "" -"The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n" -"\n" -msgstr[0] "" -"WAL-segmentstorleken sparad i filen, %d byte, är inte en tvåpotens\n" -"mellan 1 MB och 1 GB. Filen är trasig och resultatet nedan går\n" -"ej att lita på.\n" -"\n" -msgstr[1] "" -"WAL-segmentstorleken sparad i filen, %d byte, är inte en tvåpotens\n" -"mellan 1 MB och 1 GB. Filen är trasig och resultatet nedan går\n" -"ej att lita på.\n" -"\n" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" +msgstr[1] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" + +#: pg_controldata.c:185 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL-segmentstorleken måste vara en tvåpotens mellan 1 MB och 1 GB." + +#: pg_controldata.c:186 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "Filen är trasig och resultatet nedan är inte helt tillförlitligt." -#: pg_controldata.c:222 +#: pg_controldata.c:221 msgid "???" msgstr "???" @@ -239,280 +236,280 @@ msgstr "???" # used for English is insufficient for Swedish. New indenting # is consistent for all reporting statements: six additional # space characters. -#: pg_controldata.c:228 +#: pg_controldata.c:227 #, c-format msgid "pg_control version number: %u\n" msgstr "Versionsnummer för pg_control: %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:229 #, c-format msgid "Catalog version number: %u\n" msgstr "Katalogversion: %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:231 #, c-format msgid "Database system identifier: %llu\n" msgstr "Databasens systemidentifierare: %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:233 #, c-format msgid "Database cluster state: %s\n" msgstr "Databasklustrets tillstånd: %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:235 #, c-format msgid "pg_control last modified: %s\n" msgstr "pg_control ändrades senast: %s\n" -#: pg_controldata.c:238 +#: pg_controldata.c:237 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "Läge för senaste kontrollpunkt: %X/%X\n" -#: pg_controldata.c:240 +#: pg_controldata.c:239 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "REDO-läge för senaste kontrollpunkt: %X/%X\n" -#: pg_controldata.c:242 +#: pg_controldata.c:241 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "REDO-WAL-fil vid senaste kontrollpunkt: %s\n" -#: pg_controldata.c:244 +#: pg_controldata.c:243 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:246 +#: pg_controldata.c:245 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "PrevTimeLineID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:248 +#: pg_controldata.c:247 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Senaste kontrollpunktens full_page_writes: %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "off" msgstr "av" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "on" msgstr "på" -#: pg_controldata.c:250 +#: pg_controldata.c:249 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID vid senaste kontrollpunkt: %u:%u\n" -#: pg_controldata.c:253 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:255 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:257 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:259 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:261 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "DB för oldestXID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:263 +#: pg_controldata.c:262 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:265 +#: pg_controldata.c:264 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid vid senaste kontrollpunkt: %u\n" -#: pg_controldata.c:267 +#: pg_controldata.c:266 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB för oldestMulti vid senaste kontrollpkt: %u\n" -#: pg_controldata.c:269 +#: pg_controldata.c:268 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_controldata.c:271 +#: pg_controldata.c:270 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:272 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "Tidpunkt för senaste kontrollpunkt: %s\n" -#: pg_controldata.c:275 +#: pg_controldata.c:274 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "Beräknat LSN-tal av ologgade relationer: %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:276 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "Minsta slutposition vid återställning: %X/%X\n" -#: pg_controldata.c:279 +#: pg_controldata.c:278 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "Tidslinje för min slutpos vid återställning:%u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:280 #, c-format msgid "Backup start location: %X/%X\n" msgstr "Startpunkt för backup: %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:282 #, c-format msgid "Backup end location: %X/%X\n" msgstr "Slutpunkt för backup: %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:284 #, c-format msgid "End-of-backup record required: %s\n" msgstr "Tvingande markering av backupslut: %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "no" msgstr "nej" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "yes" msgstr "ja" -#: pg_controldata.c:287 +#: pg_controldata.c:286 #, c-format msgid "wal_level setting: %s\n" msgstr "Värde på wal_level: %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:288 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "Värde på wal_log_hints: %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:290 #, c-format msgid "max_connections setting: %d\n" msgstr "Värde på max_connections: %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:292 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "Värde på max_worker_processes: %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:294 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "Värde på max_wal_senders setting %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:296 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "Värde på max_prepared_xacts: %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:298 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "Nuvarande max_locks_per_xact: %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:300 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "Värde på track_commit_timestamp: %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:302 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Maximal jämkning av data (alignment): %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:305 #, c-format msgid "Database block size: %u\n" msgstr "Databasens blockstorlek: %u\n" -#: pg_controldata.c:308 +#: pg_controldata.c:307 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Block per segment i en stor relation: %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:309 #, c-format msgid "WAL block size: %u\n" msgstr "Blockstorlek i transaktionsloggen: %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:311 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Segmentstorlek i transaktionsloggen: %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:313 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Maximal längd för identifierare: %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:315 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Maximalt antal kolonner i ett index: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:317 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Maximal storlek för en TOAST-enhet: %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:319 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Storlek för large-object-enheter: %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:322 #, c-format msgid "Date/time type storage: %s\n" msgstr "Representation av dag och tid: %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:323 msgid "64-bit integers" msgstr "64-bitars heltal" -#: pg_controldata.c:325 +#: pg_controldata.c:324 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Överföring av float8-argument: %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by reference" msgstr "med referens" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by value" msgstr "med värde" -#: pg_controldata.c:327 +#: pg_controldata.c:326 #, c-format msgid "Data page checksum version: %u\n" msgstr "Checksummaversion för datasidor: %u\n" -#: pg_controldata.c:329 +#: pg_controldata.c:328 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "Fejkat authentiseringsvärde: %s\n" diff --git a/src/bin/pg_controldata/po/uk.po b/src/bin/pg_controldata/po/uk.po index 758c4c1245eb9..c2b2e3217f1bb 100644 --- a/src/bin/pg_controldata/po/uk.po +++ b/src/bin/pg_controldata/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:51+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:24+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,34 +14,34 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_controldata.pot\n" -"X-Crowdin-File-ID: 924\n" +"X-Crowdin-File: /REL_17_STABLE/pg_controldata.pot\n" +"X-Crowdin-File-ID: 1018\n" -#: ../../common/controldata_utils.c:73 +#: ../../common/controldata_utils.c:97 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: ../../common/controldata_utils.c:86 +#: ../../common/controldata_utils.c:110 #, c-format msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" -#: ../../common/controldata_utils.c:95 +#: ../../common/controldata_utils.c:119 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" -#: ../../common/controldata_utils.c:108 ../../common/controldata_utils.c:244 +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 #, c-format msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: ../../common/controldata_utils.c:124 +#: ../../common/controldata_utils.c:168 msgid "byte ordering mismatch" msgstr "неправильний порядок байтів" -#: ../../common/controldata_utils.c:126 +#: ../../common/controldata_utils.c:170 #, c-format msgid "possible byte ordering mismatch\n" "The byte ordering used to store the pg_control file might not match the one\n" @@ -50,21 +50,32 @@ msgid "possible byte ordering mismatch\n" msgstr "можлива помилка у послідовності байтів.\n" "Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." -#: ../../common/controldata_utils.c:194 +#: ../../common/controldata_utils.c:230 #, c-format msgid "could not open file \"%s\": %m" msgstr "не можливо відкрити файл \"%s\": %m" -#: ../../common/controldata_utils.c:213 +#: ../../common/controldata_utils.c:249 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: ../../common/controldata_utils.c:232 +#: ../../common/controldata_utils.c:268 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не вдалося fsync файл \"%s\": %m" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + #: pg_controldata.c:35 #, c-format msgid "%s displays control information of a PostgreSQL database cluster.\n\n" @@ -153,8 +164,8 @@ msgid "unrecognized status code" msgstr "невизнаний код статусу" #: pg_controldata.c:84 -msgid "unrecognized wal_level" -msgstr "невизнаний wal_рівень" +msgid "unrecognized \"wal_level\"" +msgstr "нерозпізнано \"wal_level\"" #: pg_controldata.c:138 pg_controldata.c:156 pg_controldata.c:163 #, c-format @@ -171,309 +182,313 @@ msgstr "забагато аргументів у командному рядку msgid "no data directory specified" msgstr "каталог даних не вказано" -#: pg_controldata.c:170 +#: pg_controldata.c:171 +#, c-format +msgid "calculated CRC checksum does not match value stored in control file" +msgstr "обчислена контрольна сума CRC не збігається зі значенням, що зберігається в контрольному файлі" + +#: pg_controldata.c:172 #, c-format -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 "ПОПЕРЕДЖЕННЯ: Контрольна сума CRC не відповідає збереженому значенню у файлі. Або файл пошкоджено, або він містить іншу структуру, ніж очікує ця програма. Результати нижче є недостовірними.\n\n" +msgid "Either the control file is corrupt, or it has a different layout than this program is expecting. The results below are untrustworthy." +msgstr "Або контрольний файл пошкоджено, або він має іншу структуру, ніж очікує ця програма. Наведені нижче результати не заслуговують на довіру." -#: pg_controldata.c:179 +#: pg_controldata.c:181 #, c-format -msgid "WARNING: invalid WAL segment size\n" -msgstr "ПОПЕРЕДЖЕННЯ: неправильний розмір WAL сегменту \n" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "невірний розмір сегменту WAL у файлі керування (%d байт)" +msgstr[1] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[2] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[3] "невірний розмір сегмента WAL у файлі керування (%d байтів)" -#: pg_controldata.c:180 +#: pg_controldata.c:185 #, c-format -msgid "The WAL segment size stored in the file, %d byte, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n\n" -msgid_plural "The WAL segment size stored in the file, %d bytes, is not a power of two\n" -"between 1 MB and 1 GB. The file is corrupt and the results below are\n" -"untrustworthy.\n\n" -msgstr[0] "Розмір WAL сегменту збережений у файлі, %d байт, не є степенем двійки між 1 MB та 1 GB. Файл пошкоджено та результати нижче є недостовірними.\n\n" -msgstr[1] "Розмір WAL сегменту збережений у файлі, %d байтів, не є степенем двійки між 1 MB та 1 GB. Файл пошкоджено та результати нижче є недостовірними.\n\n" -msgstr[2] "Розмір WAL сегменту збережений у файлі, %d байтів, не є степенем двійки між 1 MB та 1 GB. Файл пошкоджено та результати нижче є недостовірними.\n\n" -msgstr[3] "Розмір WAL сегменту збережений у файлі, %d байта, не є степенем двійки між 1 MB та 1 GB. Файл пошкоджено та результати нижче є недостовірними.\n\n" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Розмір сегмента WAL повинен бути степенем двійки від 1 МБ до 1 ГБ." -#: pg_controldata.c:222 +#: pg_controldata.c:186 +#, c-format +msgid "The file is corrupt and the results below are untrustworthy." +msgstr "Файл пошкоджено, і наведені нижче результати не заслуговують на довіру." + +#: pg_controldata.c:221 msgid "???" msgstr "???" -#: pg_controldata.c:228 +#: pg_controldata.c:227 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control номер версії: %u\n" -#: pg_controldata.c:230 +#: pg_controldata.c:229 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версії каталогу: %u\n" -#: pg_controldata.c:232 +#: pg_controldata.c:231 #, c-format msgid "Database system identifier: %llu\n" msgstr "Системний ідентифікатор бази даних: %llu\n" -#: pg_controldata.c:234 +#: pg_controldata.c:233 #, c-format msgid "Database cluster state: %s\n" msgstr "Стан кластеру бази даних: %s\n" -#: pg_controldata.c:236 +#: pg_controldata.c:235 #, c-format msgid "pg_control last modified: %s\n" msgstr "pg_control був модифікований востаннє: %s\n" -#: pg_controldata.c:238 +#: pg_controldata.c:237 #, c-format msgid "Latest checkpoint location: %X/%X\n" msgstr "Останнє місце знаходження контрольної точки: %X/%X\n" -#: pg_controldata.c:240 +#: pg_controldata.c:239 #, c-format msgid "Latest checkpoint's REDO location: %X/%X\n" msgstr "Розташування останньої контрольної точки: %X%X\n" -#: pg_controldata.c:242 +#: pg_controldata.c:241 #, c-format msgid "Latest checkpoint's REDO WAL file: %s\n" msgstr "Останній файл контрольної точки REDO WAL: %s\n" -#: pg_controldata.c:244 +#: pg_controldata.c:243 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Останній TimeLineID контрольної точки: %u\n" -#: pg_controldata.c:246 +#: pg_controldata.c:245 #, c-format msgid "Latest checkpoint's PrevTimeLineID: %u\n" msgstr "Останній PrevTimeLineID контрольної точки: %u\n" -#: pg_controldata.c:248 +#: pg_controldata.c:247 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Останній full_page_writes контрольної точки: %s\n" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "off" msgstr "вимк" -#: pg_controldata.c:249 pg_controldata.c:290 pg_controldata.c:302 +#: pg_controldata.c:248 pg_controldata.c:289 pg_controldata.c:301 msgid "on" msgstr "увімк" -#: pg_controldata.c:250 +#: pg_controldata.c:249 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Останній NextXID контрольної точки: %u%u\n" -#: pg_controldata.c:253 +#: pg_controldata.c:252 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Останній NextOID контрольної точки: %u\n" -#: pg_controldata.c:255 +#: pg_controldata.c:254 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Останній NextMultiXactId контрольної точки: %u\n" -#: pg_controldata.c:257 +#: pg_controldata.c:256 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Останній NextMultiOffset контрольної точки: %u\n" -#: pg_controldata.c:259 +#: pg_controldata.c:258 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Останній oldestXID контрольної точки: %u\n" -#: pg_controldata.c:261 +#: pg_controldata.c:260 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "Остання DB останнього oldestXID контрольної точки: %u\n" -#: pg_controldata.c:263 +#: pg_controldata.c:262 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Останній oldestActiveXID контрольної точки: %u\n" -#: pg_controldata.c:265 +#: pg_controldata.c:264 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Останній oldestMultiXid контрольної точки: %u \n" -#: pg_controldata.c:267 +#: pg_controldata.c:266 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "Остання DB останньої oldestMulti контрольної точки: %u\n" -#: pg_controldata.c:269 +#: pg_controldata.c:268 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Останній oldestCommitTsXid контрольної точки:%u\n" -#: pg_controldata.c:271 +#: pg_controldata.c:270 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Останній newestCommitTsXid контрольної точки: %u\n" -#: pg_controldata.c:273 +#: pg_controldata.c:272 #, c-format msgid "Time of latest checkpoint: %s\n" msgstr "Час останньої контрольної точки: %s\n" -#: pg_controldata.c:275 +#: pg_controldata.c:274 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" msgstr "Фіктивний LSN для таблиць без журналювання: %X/%X\n" -#: pg_controldata.c:277 +#: pg_controldata.c:276 #, c-format msgid "Minimum recovery ending location: %X/%X\n" msgstr "Мінімальне розташування кінця відновлення: %X/%X\n" -#: pg_controldata.c:279 +#: pg_controldata.c:278 #, c-format msgid "Min recovery ending loc's timeline: %u\n" msgstr "Мінімальна позиція історії часу завершення відновлення: %u\n" -#: pg_controldata.c:281 +#: pg_controldata.c:280 #, c-format msgid "Backup start location: %X/%X\n" msgstr "Початкове розташування резервного копіювання: %X/%X\n" -#: pg_controldata.c:283 +#: pg_controldata.c:282 #, c-format msgid "Backup end location: %X/%X\n" msgstr "Кінцеве розташування резервного копіювання: %X/%X\n" -#: pg_controldata.c:285 +#: pg_controldata.c:284 #, c-format msgid "End-of-backup record required: %s\n" msgstr "Вимагається запис кінця резервного копіювання: %s\n" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "no" msgstr "ні" -#: pg_controldata.c:286 +#: pg_controldata.c:285 msgid "yes" msgstr "так" -#: pg_controldata.c:287 +#: pg_controldata.c:286 #, c-format msgid "wal_level setting: %s\n" msgstr "налаштування wal_рівня: %s\n" -#: pg_controldata.c:289 +#: pg_controldata.c:288 #, c-format msgid "wal_log_hints setting: %s\n" msgstr "налаштування wal_log_hints: %s\n" -#: pg_controldata.c:291 +#: pg_controldata.c:290 #, c-format msgid "max_connections setting: %d\n" msgstr "налаштування max_connections: %d\n" -#: pg_controldata.c:293 +#: pg_controldata.c:292 #, c-format msgid "max_worker_processes setting: %d\n" msgstr "налаштування max_worker_processes: %d\n" -#: pg_controldata.c:295 +#: pg_controldata.c:294 #, c-format msgid "max_wal_senders setting: %d\n" msgstr "налаштування max_wal_senders: %d\n" -#: pg_controldata.c:297 +#: pg_controldata.c:296 #, c-format msgid "max_prepared_xacts setting: %d\n" msgstr "налаштування max_prepared_xacts: %d\n" -#: pg_controldata.c:299 +#: pg_controldata.c:298 #, c-format msgid "max_locks_per_xact setting: %d\n" msgstr "налаштування max_locks_per_xact: %d\n" -#: pg_controldata.c:301 +#: pg_controldata.c:300 #, c-format msgid "track_commit_timestamp setting: %s\n" msgstr "налаштування track_commit_timestamp: %s\n" -#: pg_controldata.c:303 +#: pg_controldata.c:302 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Максимальне вирівнювання даних: %u\n" -#: pg_controldata.c:306 +#: pg_controldata.c:305 #, c-format msgid "Database block size: %u\n" msgstr "Розмір блоку бази даних: %u\n" -#: pg_controldata.c:308 +#: pg_controldata.c:307 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоків на сегмент великого відношення: %u\n" -#: pg_controldata.c:310 +#: pg_controldata.c:309 #, c-format msgid "WAL block size: %u\n" msgstr "Pозмір блоку WAL: %u\n" -#: pg_controldata.c:312 +#: pg_controldata.c:311 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байтів на сегмент WAL: %u\n" -#: pg_controldata.c:314 +#: pg_controldata.c:313 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальна довжина ідентифікаторів: %u\n" -#: pg_controldata.c:316 +#: pg_controldata.c:315 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Максимальна кількість стовпців в індексі: %u\n" -#: pg_controldata.c:318 +#: pg_controldata.c:317 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальний розмір сегменту TOAST: %u\n" -#: pg_controldata.c:320 +#: pg_controldata.c:319 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Розмір сегменту великих обїєктів: %u\n" -#: pg_controldata.c:323 +#: pg_controldata.c:322 #, c-format msgid "Date/time type storage: %s\n" msgstr "Дата/час типу сховища: %s\n" -#: pg_controldata.c:324 +#: pg_controldata.c:323 msgid "64-bit integers" msgstr "64-бітні цілі" -#: pg_controldata.c:325 +#: pg_controldata.c:324 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргументу Float8: %s\n" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by reference" msgstr "за посиланням" -#: pg_controldata.c:326 +#: pg_controldata.c:325 msgid "by value" msgstr "за значенням" -#: pg_controldata.c:327 +#: pg_controldata.c:326 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версія контрольних сум сторінок даних: %u\n" -#: pg_controldata.c:329 +#: pg_controldata.c:328 #, c-format msgid "Mock authentication nonce: %s\n" msgstr "Імітувати нонс для аутентифікації: %s\n" diff --git a/src/bin/pg_controldata/po/zh_TW.po b/src/bin/pg_controldata/po/zh_TW.po index 450aec76ce0eb..b9ffb5669ac06 100644 --- a/src/bin/pg_controldata/po/zh_TW.po +++ b/src/bin/pg_controldata/po/zh_TW.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: pg_controldata (PostgreSQL) 16\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2023-09-08 21:52+0000\n" -"PO-Revision-Date: 2023-11-06 08:49+0800\n" +"PO-Revision-Date: 2024-06-26 08:37+0200\n" "Last-Translator: Zhenbang Wei \n" "Language-Team: \n" "Language: zh_TW\n" @@ -382,7 +382,7 @@ msgstr "最新檢查點的時間: %s\n" #: pg_controldata.c:275 #, c-format msgid "Fake LSN counter for unlogged rels: %X/%X\n" -msgstr "無日誌關聯的虛擬 LSN 計數: %X/%X\n" +msgstr "無日誌關聯的虛擬 LSN 計數: %X/%X\n" #: pg_controldata.c:277 #, c-format @@ -484,7 +484,7 @@ msgstr "資料庫區塊大小: %u\n" #: pg_controldata.c:308 #, c-format msgid "Blocks per segment of large relation: %u\n" -msgstr "大型關聯每個片段的區塊數: %u\n" +msgstr "大型關聯每個片段的區塊數: %u\n" #: pg_controldata.c:310 #, c-format diff --git a/src/bin/pg_ctl/po/de.po b/src/bin/pg_ctl/po/de.po index b61e43eefb205..3cfd780365e4b 100644 --- a/src/bin/pg_ctl/po/de.po +++ b/src/bin/pg_ctl/po/de.po @@ -1,14 +1,14 @@ # German message translation file for pg_ctl -# Peter Eisentraut , 2004 - 2024. +# Peter Eisentraut , 2004 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 07:49+0000\n" -"PO-Revision-Date: 2024-03-26 10:59+0100\n" +"POT-Creation-Date: 2025-03-19 06:50+0000\n" +"PO-Revision-Date: 2025-03-19 11:06+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -40,33 +40,33 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "konnte Pfad »%s« nicht in absolute Form auflösen: %m" -#: ../../common/exec.c:382 +#: ../../common/exec.c:363 #, c-format msgid "could not execute command \"%s\": %m" msgstr "konnte Befehl »%s« nicht ausführen: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "konnte nicht von Befehl »%s« lesen: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "Befehl »%s« gab keine Daten zurück" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 msgid "out of memory" msgstr "Speicher aufgebraucht" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 +#: ../../port/path.c:831 ../../port/path.c:868 ../../port/path.c:885 #, c-format msgid "out of memory\n" msgstr "Speicher aufgebraucht\n" @@ -106,123 +106,127 @@ msgstr "Kindprozess wurde von Signal %d beendet: %s" msgid "child process exited with unrecognized status %d" msgstr "Kindprozess hat mit unbekanntem Status %d beendet" -#: ../../port/path.c:775 +#: ../../port/path.c:853 #, c-format msgid "could not get current working directory: %m\n" msgstr "konnte aktuelles Arbeitsverzeichnis nicht ermitteln: %m\n" -#: pg_ctl.c:254 +#: pg_ctl.c:255 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: Verzeichnis »%s« existiert nicht\n" -#: pg_ctl.c:257 +#: pg_ctl.c:258 #, c-format msgid "%s: could not access directory \"%s\": %m\n" msgstr "%s: konnte nicht auf Verzeichnis »%s« zugreifen: %m\n" -#: pg_ctl.c:270 +#: pg_ctl.c:271 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: Verzeichnis »%s« ist kein Datenbankclusterverzeichnis\n" -#: pg_ctl.c:283 +#: pg_ctl.c:284 #, c-format msgid "%s: could not open PID file \"%s\": %m\n" msgstr "%s: konnte PID-Datei »%s« nicht öffnen: %m\n" -#: pg_ctl.c:292 +#: pg_ctl.c:293 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: die PID-Datei »%s« ist leer\n" -#: pg_ctl.c:295 +#: pg_ctl.c:296 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: ungültige Daten in PID-Datei »%s«\n" -#: pg_ctl.c:457 pg_ctl.c:499 +#: pg_ctl.c:458 pg_ctl.c:500 #, c-format msgid "%s: could not start server: %m\n" msgstr "%s: konnte Server nicht starten: %m\n" -#: pg_ctl.c:477 +#: pg_ctl.c:478 #, c-format msgid "%s: could not start server due to setsid() failure: %m\n" msgstr "%s: konnte Server wegen setsid()-Fehler nicht starten: %m\n" -#: pg_ctl.c:547 +#: pg_ctl.c:548 #, c-format msgid "%s: could not open log file \"%s\": %m\n" msgstr "%s: konnte Logdatei »%s« nicht öffnen: %m\n" -#: pg_ctl.c:564 +#: pg_ctl.c:565 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: konnte Server nicht starten: Fehlercode %lu\n" -#: pg_ctl.c:781 +#: pg_ctl.c:789 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "%s: kann Grenzwert für Core-Datei-Größe nicht setzen; durch harten Grenzwert verboten\n" -#: pg_ctl.c:807 +#: pg_ctl.c:815 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: konnte Datei »%s« nicht lesen\n" -#: pg_ctl.c:812 +#: pg_ctl.c:820 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: Optionsdatei »%s« muss genau eine Zeile haben\n" -#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 +#: pg_ctl.c:862 pg_ctl.c:1050 pg_ctl.c:1117 #, c-format msgid "%s: could not send stop signal (PID: %d): %m\n" msgstr "%s: konnte Stopp-Signal nicht senden (PID: %d): %m\n" -#: pg_ctl.c:882 +#: pg_ctl.c:890 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden\n" -#: pg_ctl.c:885 +#: pg_ctl.c:893 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s\n" -#: pg_ctl.c:917 +#: pg_ctl.c:925 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: Initialisierung des Datenbanksystems fehlgeschlagen\n" -#: pg_ctl.c:932 +#: pg_ctl.c:940 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: ein anderer Server läuft möglicherweise; versuche trotzdem zu starten\n" -#: pg_ctl.c:980 +#: pg_ctl.c:988 msgid "waiting for server to start..." msgstr "warte auf Start des Servers..." -#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 +#: pg_ctl.c:993 pg_ctl.c:1003 pg_ctl.c:1073 pg_ctl.c:1135 pg_ctl.c:1247 msgid " done\n" msgstr " fertig\n" -#: pg_ctl.c:986 +#: pg_ctl.c:994 msgid "server started\n" msgstr "Server gestartet\n" -#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 +#: pg_ctl.c:997 pg_ctl.c:1007 pg_ctl.c:1252 msgid " stopped waiting\n" msgstr " Warten beendet\n" -#: pg_ctl.c:990 +#: pg_ctl.c:998 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: Starten des Servers hat nicht rechtzeitig abgeschlossen\n" -#: pg_ctl.c:996 +#: pg_ctl.c:1004 +msgid "server shut down because of recovery target settings\n" +msgstr "Server fuhr aufgrund der Einstellungen für das Wiederherstellungsziel herunter\n" + +#: pg_ctl.c:1008 #, c-format msgid "" "%s: could not start server\n" @@ -231,42 +235,42 @@ msgstr "" "%s: konnte Server nicht starten\n" "Prüfen Sie die Logausgabe.\n" -#: pg_ctl.c:1004 +#: pg_ctl.c:1016 msgid "server starting\n" msgstr "Server startet\n" -#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 +#: pg_ctl.c:1035 pg_ctl.c:1093 pg_ctl.c:1156 pg_ctl.c:1195 pg_ctl.c:1276 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: PID-Datei »%s« existiert nicht\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 +#: pg_ctl.c:1036 pg_ctl.c:1095 pg_ctl.c:1157 pg_ctl.c:1196 pg_ctl.c:1277 msgid "Is server running?\n" msgstr "Läuft der Server?\n" -#: pg_ctl.c:1030 +#: pg_ctl.c:1042 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: kann Server nicht anhalten; Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1044 +#: pg_ctl.c:1056 msgid "server shutting down\n" msgstr "Server fährt herunter\n" -#: pg_ctl.c:1049 pg_ctl.c:1109 +#: pg_ctl.c:1061 pg_ctl.c:1121 msgid "waiting for server to shut down..." msgstr "warte auf Herunterfahren des Servers..." -#: pg_ctl.c:1053 pg_ctl.c:1114 +#: pg_ctl.c:1065 pg_ctl.c:1126 msgid " failed\n" msgstr " Fehler\n" -#: pg_ctl.c:1055 pg_ctl.c:1116 +#: pg_ctl.c:1067 pg_ctl.c:1128 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: Server fährt nicht herunter\n" -#: pg_ctl.c:1057 pg_ctl.c:1118 +#: pg_ctl.c:1069 pg_ctl.c:1130 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -274,235 +278,235 @@ msgstr "" "TIPP: Die Option »-m fast« beendet Sitzungen sofort, statt auf das Beenden\n" "durch die Sitzungen selbst zu warten.\n" -#: pg_ctl.c:1063 pg_ctl.c:1124 +#: pg_ctl.c:1075 pg_ctl.c:1136 msgid "server stopped\n" msgstr "Server angehalten\n" -#: pg_ctl.c:1084 +#: pg_ctl.c:1096 msgid "trying to start server anyway\n" msgstr "versuche Server trotzdem zu starten\n" -#: pg_ctl.c:1093 +#: pg_ctl.c:1105 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "%s: kann Server nicht neu starten; Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1096 pg_ctl.c:1154 +#: pg_ctl.c:1108 pg_ctl.c:1166 msgid "Please terminate the single-user server and try again.\n" msgstr "Bitte beenden Sie den Einzelbenutzerserver und versuchen Sie es noch einmal.\n" -#: pg_ctl.c:1128 +#: pg_ctl.c:1140 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: alter Serverprozess (PID: %d) scheint verschwunden zu sein\n" -#: pg_ctl.c:1130 +#: pg_ctl.c:1142 msgid "starting server anyway\n" msgstr "starte Server trotzdem\n" -#: pg_ctl.c:1151 +#: pg_ctl.c:1163 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "%s: kann Server nicht neu laden; Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1160 +#: pg_ctl.c:1172 #, c-format msgid "%s: could not send reload signal (PID: %d): %m\n" msgstr "%s: konnte Signal zum Neuladen nicht senden (PID: %d): %m\n" -#: pg_ctl.c:1165 +#: pg_ctl.c:1177 msgid "server signaled\n" msgstr "Signal an Server gesendet\n" -#: pg_ctl.c:1190 +#: pg_ctl.c:1202 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: kann Server nicht befördern; Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1198 +#: pg_ctl.c:1210 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: kann Server nicht befördern; Server ist nicht im Standby-Modus\n" -#: pg_ctl.c:1208 +#: pg_ctl.c:1220 #, c-format msgid "%s: could not create promote signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Befördern »%s« nicht erzeugen: %m\n" -#: pg_ctl.c:1214 +#: pg_ctl.c:1226 #, c-format msgid "%s: could not write promote signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Befördern »%s« nicht schreiben: %m\n" -#: pg_ctl.c:1222 +#: pg_ctl.c:1234 #, c-format msgid "%s: could not send promote signal (PID: %d): %m\n" msgstr "%s: konnte Signal zum Befördern nicht senden (PID: %d): %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1237 #, c-format msgid "%s: could not remove promote signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Befördern »%s« nicht entfernen: %m\n" -#: pg_ctl.c:1232 +#: pg_ctl.c:1244 msgid "waiting for server to promote..." msgstr "warte auf Befördern des Servers..." -#: pg_ctl.c:1236 +#: pg_ctl.c:1248 msgid "server promoted\n" msgstr "Server wurde befördert\n" -#: pg_ctl.c:1241 +#: pg_ctl.c:1253 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: Befördern des Servers hat nicht rechtzeitig abgeschlossen\n" -#: pg_ctl.c:1247 +#: pg_ctl.c:1259 msgid "server promoting\n" msgstr "Server wird befördert\n" -#: pg_ctl.c:1271 +#: pg_ctl.c:1283 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: kann Logdatei nicht rotieren; Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1281 +#: pg_ctl.c:1293 #, c-format msgid "%s: could not create log rotation signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Logrotieren »%s« nicht erzeugen: %m\n" -#: pg_ctl.c:1287 +#: pg_ctl.c:1299 #, c-format msgid "%s: could not write log rotation signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Logrotieren »%s« nicht schreiben: %m\n" -#: pg_ctl.c:1295 +#: pg_ctl.c:1307 #, c-format msgid "%s: could not send log rotation signal (PID: %d): %m\n" msgstr "%s: konnte Signal zum Logrotieren nicht senden (PID: %d): %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1310 #, c-format msgid "%s: could not remove log rotation signal file \"%s\": %m\n" msgstr "%s: konnte Signaldatei zum Logrotieren »%s« nicht entfernen: %m\n" -#: pg_ctl.c:1303 +#: pg_ctl.c:1315 msgid "server signaled to rotate log file\n" msgstr "Signal zum Logrotieren an Server gesendet\n" -#: pg_ctl.c:1350 +#: pg_ctl.c:1362 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: Einzelbenutzerserver läuft (PID: %d)\n" -#: pg_ctl.c:1364 +#: pg_ctl.c:1376 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: Server läuft (PID: %d)\n" -#: pg_ctl.c:1380 +#: pg_ctl.c:1392 #, c-format msgid "%s: no server running\n" msgstr "%s: kein Server läuft\n" -#: pg_ctl.c:1397 +#: pg_ctl.c:1409 #, c-format msgid "%s: could not send signal %d (PID: %d): %m\n" msgstr "%s: konnte Signal %d nicht senden (PID: %d): %m\n" -#: pg_ctl.c:1428 +#: pg_ctl.c:1440 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: konnte eigene Programmdatei nicht finden\n" -#: pg_ctl.c:1438 +#: pg_ctl.c:1450 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: konnte »postgres« Programmdatei nicht finden\n" -#: pg_ctl.c:1508 pg_ctl.c:1542 +#: pg_ctl.c:1520 pg_ctl.c:1554 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: konnte Servicemanager nicht öffnen\n" -#: pg_ctl.c:1514 +#: pg_ctl.c:1526 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: Systemdienst »%s« ist bereits registriert\n" -#: pg_ctl.c:1525 +#: pg_ctl.c:1537 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: konnte Systemdienst »%s« nicht registrieren: Fehlercode %lu\n" -#: pg_ctl.c:1548 +#: pg_ctl.c:1560 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: Systemdienst »%s« ist nicht registriert\n" -#: pg_ctl.c:1555 +#: pg_ctl.c:1567 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: konnte Systemdienst »%s« nicht öffnen: Fehlercode %lu\n" -#: pg_ctl.c:1564 +#: pg_ctl.c:1576 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: konnte Systemdienst »%s« nicht deregistrieren: Fehlercode %lu\n" -#: pg_ctl.c:1651 +#: pg_ctl.c:1663 msgid "Waiting for server startup...\n" msgstr "Warte auf Start des Servers...\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1666 msgid "Timed out waiting for server startup\n" msgstr "Zeitüberschreitung beim Warten auf Start des Servers\n" -#: pg_ctl.c:1658 +#: pg_ctl.c:1670 msgid "Server started and accepting connections\n" msgstr "Server wurde gestartet und nimmt Verbindungen an\n" -#: pg_ctl.c:1713 +#: pg_ctl.c:1725 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: konnte Systemdienst »%s« nicht starten: Fehlercode %lu\n" -#: pg_ctl.c:1786 +#: pg_ctl.c:1798 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: konnte Prozess-Token nicht öffnen: Fehlercode %lu\n" -#: pg_ctl.c:1800 +#: pg_ctl.c:1812 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: konnte SIDs nicht erzeugen: Fehlercode %lu\n" -#: pg_ctl.c:1826 +#: pg_ctl.c:1838 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: konnte beschränktes Token nicht erzeugen: Fehlercode %lu\n" -#: pg_ctl.c:1908 +#: pg_ctl.c:1920 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: konnte LUIDs für Privilegien nicht ermitteln: Fehlercode %lu\n" -#: pg_ctl.c:1916 pg_ctl.c:1931 +#: pg_ctl.c:1928 pg_ctl.c:1943 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: konnte Token-Informationen nicht ermitteln: Fehlercode %lu\n" -#: pg_ctl.c:1925 +#: pg_ctl.c:1937 #, c-format msgid "%s: out of memory\n" msgstr "%s: Speicher aufgebraucht\n" -#: pg_ctl.c:1955 +#: pg_ctl.c:1967 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n" -#: pg_ctl.c:1963 +#: pg_ctl.c:1975 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -512,17 +516,17 @@ msgstr "" "starten, anzuhalten oder zu steuern.\n" "\n" -#: pg_ctl.c:1964 +#: pg_ctl.c:1976 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_ctl.c:1965 +#: pg_ctl.c:1977 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D DATENVERZ] [-s] [-o OPTIONEN]\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1978 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -531,12 +535,12 @@ msgstr "" " %s start [-D DATENVERZ] [-l DATEINAME] [-W] [-t SEK] [-s]\n" " [-o OPTIONEN] [-p PFAD] [-c]\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1980 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" msgstr " %s stop [-D DATENVERZ] [-m SHUTDOWN-MODUS] [-W] [-t SEK] [-s]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1981 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -545,32 +549,32 @@ msgstr "" " %s restart [-D DATENVERZ] [-m SHUTDOWN-MODUS] [-W] [-t SEK] [-s]\n" " [-o OPTIONEN] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1983 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D DATENVERZ] [-s]\n" -#: pg_ctl.c:1972 +#: pg_ctl.c:1984 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATENVERZ]\n" -#: pg_ctl.c:1973 +#: pg_ctl.c:1985 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D DATENVERZ] [-W] [-t SEK] [-s]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1986 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATENVERZ] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1987 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill SIGNALNAME PID\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1989 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -579,12 +583,12 @@ msgstr "" " %s register [-D DATENVERZ] [-N DIENSTNAME] [-U BENUTZERNAME] [-P PASSWORT]\n" " [-S STARTTYP] [-e QUELLE] [-W] [-t SEK] [-s] [-o OPTIONEN]\n" -#: pg_ctl.c:1979 +#: pg_ctl.c:1991 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N DIENSTNAME]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1994 #, c-format msgid "" "\n" @@ -593,56 +597,56 @@ msgstr "" "\n" "Optionen für alle Modi:\n" -#: pg_ctl.c:1983 +#: pg_ctl.c:1995 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=DATENVERZ Datenbankverzeichnis\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1997 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr "" " -e QUELLE Ereignisquelle fürs Loggen, wenn als Systemdienst\n" " gestartet\n" -#: pg_ctl.c:1987 +#: pg_ctl.c:1999 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent nur Fehler zeigen, keine Informationsmeldungen\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:2000 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=SEK Sekunden zu warten bei Option -w\n" -#: pg_ctl.c:1989 +#: pg_ctl.c:2001 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:2002 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait warten bis Operation abgeschlossen ist (Voreinstellung)\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:2003 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait nicht warten bis Operation abgeschlossen ist\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:2004 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:2005 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "" "Wenn die Option -D weggelassen wird, dann wird die Umgebungsvariable\n" "PGDATA verwendet.\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:2007 #, c-format msgid "" "\n" @@ -651,24 +655,24 @@ msgstr "" "\n" "Optionen für Start oder Neustart:\n" -#: pg_ctl.c:1997 +#: pg_ctl.c:2009 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files erlaubt postgres Core-Dateien zu erzeugen\n" -#: pg_ctl.c:1999 +#: pg_ctl.c:2011 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files betrifft diese Plattform nicht\n" -#: pg_ctl.c:2001 +#: pg_ctl.c:2013 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr "" " -l, --log=DATEINAME Serverlog in DATEINAME schreiben (wird an bestehende\n" " Datei angehängt)\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:2014 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -677,12 +681,12 @@ msgstr "" " -o, --options=OPTIONEN Kommandozeilenoptionen für postgres (PostgreSQL-\n" " Serverprogramm) oder initdb\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2016 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p PFAD-ZU-POSTGRES normalerweise nicht notwendig\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -691,12 +695,12 @@ msgstr "" "\n" "Optionen für Anhalten oder Neustart:\n" -#: pg_ctl.c:2006 +#: pg_ctl.c:2018 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=MODUS MODUS kann »smart«, »fast« oder »immediate« sein\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2020 #, c-format msgid "" "\n" @@ -705,24 +709,24 @@ msgstr "" "\n" "Shutdown-Modi sind:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2021 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart beenden nachdem alle Clientverbindungen geschlossen sind\n" -#: pg_ctl.c:2010 +#: pg_ctl.c:2022 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast sofort beenden, mit richtigem Shutdown (Voreinstellung)\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2023 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr "" " immediate beenden ohne vollständigen Shutdown; führt zu Recovery-Lauf\n" " beim Neustart\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2025 #, c-format msgid "" "\n" @@ -731,7 +735,7 @@ msgstr "" "\n" "Erlaubte Signalnamen für »kill«:\n" -#: pg_ctl.c:2017 +#: pg_ctl.c:2029 #, c-format msgid "" "\n" @@ -740,27 +744,27 @@ msgstr "" "\n" "Optionen für »register« und »unregister«:\n" -#: pg_ctl.c:2018 +#: pg_ctl.c:2030 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N DIENSTNAME Systemdienstname für Registrierung des PostgreSQL-Servers\n" -#: pg_ctl.c:2019 +#: pg_ctl.c:2031 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P PASSWORD Passwort des Benutzers für Registrierung des PostgreSQL-Servers\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2032 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U USERNAME Benutzername für Registrierung des PostgreSQL-Servers\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2033 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S STARTTYP Systemdienst-Starttyp für PostgreSQL-Server\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2035 #, c-format msgid "" "\n" @@ -769,19 +773,19 @@ msgstr "" "\n" "Starttypen sind:\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2036 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr "" " auto Dienst automatisch starten beim Start des Betriebssystems\n" " (Voreinstellung)\n" -#: pg_ctl.c:2025 +#: pg_ctl.c:2037 #, c-format msgid " demand start service on demand\n" msgstr " demand Dienst bei Bedarf starten\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2040 #, c-format msgid "" "\n" @@ -790,37 +794,37 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_ctl.c:2029 +#: pg_ctl.c:2041 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_ctl.c:2054 +#: pg_ctl.c:2066 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: unbekannter Shutdown-Modus »%s«\n" -#: pg_ctl.c:2083 +#: pg_ctl.c:2095 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: unbekannter Signalname »%s«\n" -#: pg_ctl.c:2100 +#: pg_ctl.c:2112 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: unbekannter Starttyp »%s«\n" -#: pg_ctl.c:2156 +#: pg_ctl.c:2168 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: konnte das Datenverzeichnis mit Befehl »%s« nicht ermitteln\n" -#: pg_ctl.c:2179 +#: pg_ctl.c:2191 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: Kontrolldatei scheint kaputt zu sein\n" -#: pg_ctl.c:2247 +#: pg_ctl.c:2259 #, c-format msgid "" "%s: cannot be run as root\n" @@ -831,32 +835,32 @@ msgstr "" "Bitte loggen Sie sich (z.B. mit »su«) als der (unprivilegierte) Benutzer\n" "ein, der Eigentümer des Serverprozesses sein soll.\n" -#: pg_ctl.c:2319 +#: pg_ctl.c:2331 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: Option -S wird auf dieser Plattform nicht unterstützt\n" -#: pg_ctl.c:2375 +#: pg_ctl.c:2387 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: fehlende Argumente für »kill«-Modus\n" -#: pg_ctl.c:2393 +#: pg_ctl.c:2405 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: unbekannter Operationsmodus »%s«\n" -#: pg_ctl.c:2402 +#: pg_ctl.c:2414 #, c-format msgid "%s: too many command-line arguments (first is \"%s\")\n" msgstr "%s: zu viele Kommandozeilenargumente (das erste ist »%s«)\n" -#: pg_ctl.c:2409 +#: pg_ctl.c:2421 #, c-format msgid "%s: no operation specified\n" msgstr "%s: keine Operation angegeben\n" -#: pg_ctl.c:2430 +#: pg_ctl.c:2442 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: kein Datenbankverzeichnis angegeben und Umgebungsvariable PGDATA nicht gesetzt\n" diff --git a/src/bin/pg_ctl/po/es.po b/src/bin/pg_ctl/po/es.po index ea82807aee75f..f57f1217e9586 100644 --- a/src/bin/pg_ctl/po/es.po +++ b/src/bin/pg_ctl/po/es.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_ctl (PostgreSQL) 16\n" +"Project-Id-Version: pg_ctl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:18+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:49+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -21,38 +21,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.2\n" -#: ../../common/exec.c:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "memoria agotada" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:830 ../../port/path.c:867 ../../port/path.c:884 #, c-format msgid "out of memory\n" msgstr "memoria agotada\n" @@ -92,125 +111,125 @@ msgstr "el proceso hijo fue terminado por una señal %d: %s" msgid "child process exited with unrecognized status %d" msgstr "el proceso hijo terminó con código no reconocido %d" -#: ../../port/path.c:775 +#: ../../port/path.c:852 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "no se pudo obtener el directorio de trabajo actual: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "no se pudo obtener el directorio de trabajo actual: %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: el directorio «%s» no existe\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: no se pudo acceder al directorio «%s»: %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: no se pudo acceder al directorio «%s»: %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: el directorio «%s» no es un directorio de base de datos\n" -#: pg_ctl.c:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s: no se pudo abrir el archivo de PID «%s»: %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s: no se pudo abrir el archivo de PID «%s»: %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: el archivo de PID «%s» está vacío\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: datos no válidos en archivo de PID «%s»\n" -#: pg_ctl.c:458 pg_ctl.c:500 +#: pg_ctl.c:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s: no se pudo iniciar el servidor: %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s: no se pudo iniciar el servidor: %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, c-format -msgid "%s: could not start server due to setsid() failure: %s\n" -msgstr "%s: no se pudo iniciar el servidor debido a falla en setsid(): %s\n" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s: no se pudo iniciar el servidor debido a falla en setsid(): %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: no se pudo abrir el archivo de log «%s»: %s\n" +msgid "%s: could not open log file \"%s\": %m\n" +msgstr "%s: no se pudo abrir el archivo de log «%s»: %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: no se pudo iniciar el servidor: código de error %lu\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "" "%s: no se puede establecer el límite de archivos de volcado;\n" "impedido por un límite duro\n" -#: pg_ctl.c:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: no se pudo leer el archivo «%s»\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: archivo de opciones «%s» debe tener exactamente una línea\n" -#: pg_ctl.c:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s: falló la señal de detención (PID: %d): %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s: falló la señal de detención (PID: %d): %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "el programa «%s» es requerido por %s, pero no fue encontrado en el mismo directorio que «%s»\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "El programa «%s» fue encontrado por «%s», pero no es de la misma versión que %s\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: falló la creación de la base de datos\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: otro servidor puede estar en ejecución; tratando de iniciarlo de todas formas.\n" -#: pg_ctl.c:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "esperando que el servidor se inicie..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " listo\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "servidor iniciado\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " abandonando la espera\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: el servidor no inició a tiempo\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "" "%s: could not start server\n" @@ -219,44 +238,42 @@ msgstr "" "%s: no se pudo iniciar el servidor.\n" "Examine el registro del servidor.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "servidor iniciándose\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: el archivo de PID «%s» no existe\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "¿Está el servidor en ejecución?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" -msgstr "" -"%s: no se puede detener el servidor;\n" -"un servidor en modo mono-usuario está en ejecución (PID: %d)\n" +msgstr "%s: no se puede detener el servidor; un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "servidor deteniéndose\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "esperando que el servidor se detenga..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " falló\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: el servidor no se detiene\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -264,243 +281,237 @@ msgstr "" "SUGERENCIA: La opción «-m fast» desconecta las sesiones inmediatamente\n" "en lugar de esperar que cada sesión finalice por sí misma.\n" -#: pg_ctl.c:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "servidor detenido\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "intentando iniciae el servidor de todas maneras\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" -msgstr "" -"%s: no se puede reiniciar el servidor;\n" -"un servidor en modo mono-usuario está en ejecución (PID: %d)\n" +msgstr "%s: no se puede reiniciar el servidor; un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 msgid "Please terminate the single-user server and try again.\n" msgstr "Por favor termine el servidor mono-usuario e intente nuevamente.\n" -#: pg_ctl.c:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: el proceso servidor antiguo (PID: %d) parece no estar\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "iniciando el servidor de todas maneras\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" -msgstr "" -"%s: no se puede recargar el servidor;\n" -"un servidor en modo mono-usuario está en ejecución (PID: %d)\n" +msgstr "%s: no se puede recargar el servidor; un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s: la señal de recarga falló (PID: %d): %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s: no se pudo enviar señal de recarga (PID: %d): %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "se ha enviado una señal al servidor\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" -msgstr "" -"%s: no se puede promover el servidor;\n" -"un servidor en modo mono-usuario está en ejecución (PID: %d)\n" +msgstr "%s: no se puede promover el servidor; un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "" "%s: no se puede promover el servidor;\n" "el servidor no está en modo «standby»\n" -#: pg_ctl.c:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s: no se pudo crear el archivo de señal de promoción «%s»: %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s: no se pudo crear el archivo de señal de promoción «%s»: %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s: no se pudo escribir al archivo de señal de promoción «%s»: %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s: no se pudo escribir al archivo de señal de promoción «%s»: %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s: no se pudo enviar la señal de promoción (PID: %d): %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s: no se pudo enviar la señal de promoción (PID: %d): %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s: no se pudo eliminar el archivo de señal de promoción «%s»: %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s: no se pudo eliminar el archivo de señal de promoción «%s»: %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "esperando que el servidor se promueva..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "servidor promovido\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: el servidor no se promovió a tiempo\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "servidor promoviendo\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: no se puede rotar el archivo de log; un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" -msgstr "%s: no se pudo crear el archivo de señal de rotación de log «%s»: %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" +msgstr "%s: no se pudo crear el archivo de señal de rotación de log «%s»: %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" -msgstr "%s: no se pudo escribir al archivo de señal de rotación de log «%s»: %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" +msgstr "%s: no se pudo escribir al archivo de señal de rotación de log «%s»: %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s: no se pudo enviar la señal de rotación de log (PID: %d): %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s: no se pudo enviar la señal de rotación de log (PID: %d): %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" -msgstr "%s: no se pudo eliminar el archivo de señal de rotación de log «%s»: %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" +msgstr "%s: no se pudo eliminar el archivo de señal de rotación de log «%s»: %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "se ha enviado una señal de rotación de log al servidor\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: un servidor en modo mono-usuario está en ejecución (PID: %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: el servidor está en ejecución (PID: %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s: no hay servidor en ejecución\n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s: no se pudo enviar la señal %d (PID: %d): %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s: no se pudo enviar la señal %d (PID: %d): %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: no se pudo encontrar el ejecutable propio\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: no se pudo encontrar el ejecutable postgres\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: no se pudo abrir el gestor de servicios\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: el servicio «%s» ya está registrado\n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: no se pudo registrar el servicio «%s»: código de error %lu\n" -#: pg_ctl.c:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: el servicio «%s» no ha sido registrado\n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: no se pudo abrir el servicio «%s»: código de error %lu\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1564 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: no se pudo dar de baja el servicio «%s»: código de error %lu\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "Esperando que el servidor se inicie...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "Se agotó el tiempo de espera al inicio del servidor\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "Servidor iniciado y aceptando conexiones\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: no se pudo iniciar el servicio «%s»: código de error %lu\n" -#: pg_ctl.c:1789 +#: pg_ctl.c:1786 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: no se pudo abrir el token de proceso: código de error %lu\n" -#: pg_ctl.c:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: no se pudo emplazar los SIDs: código de error %lu\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: no se pudo crear el token restringido: código de error %lu\n" -#: pg_ctl.c:1911 +#: pg_ctl.c:1908 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: no se pudo obtener LUIDs para privilegios: código de error %lu\n" -#: pg_ctl.c:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: no se pudo obtener información de token: código de error %lu\n" -#: pg_ctl.c:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s: memoria agotada\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Use «%s --help» para obtener más información.\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1963 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -510,17 +521,17 @@ msgstr "" "un servidor PostgreSQL.\n" "\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D DATADIR] [-s] [-o OPCIONES]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1966 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -529,12 +540,12 @@ msgstr "" " %s start [-D DATADIR] [-l ARCHIVO] [-W] [-t SEGS] [-s]\n" " [-o OPCIONES] [-p RUTA] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" msgstr " %s stop [-D DATADIR] [-m MODO-DETENCIÓN] [-W] [-t SEGS] [-s]\n" -#: pg_ctl.c:1972 +#: pg_ctl.c:1969 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -543,32 +554,32 @@ msgstr "" " %s restart [-D DATADIR] [-m MODO-DETENCIÓN] [-W] [-t SEGS] [-s]\n" " [-o OPCIONES]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D DATADIR] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATADIR]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D DATADIR] [-W] [-t SEGS] [-s]\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATADIR] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill NOMBRE-SEÑAL ID-DE-PROCESO\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -577,12 +588,12 @@ msgstr "" " %s register [-D DATADIR] [-N SERVICIO] [-U USUARIO] [-P PASSWORD]\n" " [-S TIPO-INICIO] [-e ORIGEN] [-W] [-t SEGS] [-o OPCIONES]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N SERVICIO]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "" "\n" @@ -591,52 +602,52 @@ msgstr "" "\n" "Opciones comunes:\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata DATADIR ubicación del área de almacenamiento de datos\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:1985 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr " -e ORIGEN origen para el log de eventos cuando se ejecuta como servicio\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:1987 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent mostrar sólo errores, no mensajes de información\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:1988 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=SEGS segundos a esperar cuando se use la opción -w\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión, luego salir\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait esperar hasta que la operación se haya completado (por omisión)\n" -#: pg_ctl.c:1994 +#: pg_ctl.c:1991 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait no esperar hasta que la operación se haya completado\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda, luego salir\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Si la opción -D es omitida, se usa la variable de ambiente PGDATA.\n" -#: pg_ctl.c:1998 +#: pg_ctl.c:1995 #, c-format msgid "" "\n" @@ -645,24 +656,24 @@ msgstr "" "\n" "Opciones para inicio y reinicio:\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr "" " -c, --core-files permite que postgres produzca archivos\n" " de volcado (core)\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:1999 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files no aplicable en esta plataforma\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2001 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l --log=ARCHIVO guardar el registro del servidor en ARCHIVO.\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2002 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -671,12 +682,12 @@ msgstr "" " -o, --options=OPCIONES parámetros de línea de órdenes a pasar a postgres\n" " (ejecutable del servidor de PostgreSQL) o initdb\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p RUTA-A-POSTGRES normalmente no es necesario\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2005 #, c-format msgid "" "\n" @@ -685,12 +696,12 @@ msgstr "" "\n" "Opciones para detener o reiniciar:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=MODO puede ser «smart», «fast» o «immediate»\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2008 #, c-format msgid "" "\n" @@ -699,24 +710,24 @@ msgstr "" "\n" "Modos de detención son:\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart salir después que todos los clientes se hayan desconectado\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2010 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast salir directamente, con apagado apropiado (por omisión)\n" -#: pg_ctl.c:2014 +#: pg_ctl.c:2011 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr "" " immediate salir sin apagado completo; se ejecutará recuperación\n" " en el próximo inicio\n" -#: pg_ctl.c:2016 +#: pg_ctl.c:2013 #, c-format msgid "" "\n" @@ -725,7 +736,7 @@ msgstr "" "\n" "Nombres de señales permitidos para kill:\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -734,35 +745,35 @@ msgstr "" "\n" "Opciones para registrar y dar de baja:\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr "" " -N SERVICIO nombre de servicio con el cual registrar\n" " el servidor PostgreSQL\n" -#: pg_ctl.c:2022 +#: pg_ctl.c:2019 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr "" " -P CONTRASEÑA contraseña de la cuenta con la cual registrar\n" " el servidor PostgreSQL\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2020 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr "" " -U USUARIO nombre de usuario de la cuenta con la cual\n" " registrar el servidor PostgreSQL\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2021 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr "" " -S TIPO-INICIO tipo de inicio de servicio con que registrar\n" " el servidor PostgreSQL\n" -#: pg_ctl.c:2026 +#: pg_ctl.c:2023 #, c-format msgid "" "\n" @@ -771,17 +782,17 @@ msgstr "" "\n" "Tipos de inicio del servicio son:\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr " auto iniciar automáticamente al inicio del sistema (por omisión)\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand iniciar el servicio en demanda\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "" "\n" @@ -790,37 +801,37 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: modo de apagado «%s» no reconocido\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: nombre de señal «%s» no reconocido\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: tipo de inicio «%s» no reconocido\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: no se pudo determinar el directorio de datos usando la orden «%s»\n" -#: pg_ctl.c:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: el archivo de control parece estar corrupto\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "" "%s: cannot be run as root\n" @@ -831,32 +842,32 @@ msgstr "" "Por favor conéctese (usando, por ejemplo, «su») con un usuario no privilegiado,\n" "quien ejecutará el proceso servidor.\n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: la opción -S no está soportada en esta plataforma\n" -#: pg_ctl.c:2370 -#, c-format -msgid "%s: too many command-line arguments (first is \"%s\")\n" -msgstr "%s: demasiados argumentos de línea de órdenes (el primero es «%s»)\n" - -#: pg_ctl.c:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: argumentos faltantes para envío de señal\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: modo de operación «%s» no reconocido\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, c-format +msgid "%s: too many command-line arguments (first is \"%s\")\n" +msgstr "%s: demasiados argumentos de línea de órdenes (el primero es «%s»)\n" + +#: pg_ctl.c:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s: no se especificó operación\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: no se especificó directorio de datos y la variable PGDATA no está definida\n" diff --git a/src/bin/pg_ctl/po/fr.po b/src/bin/pg_ctl/po/fr.po index f5d95cd84a619..ea31cdbc395f9 100644 --- a/src/bin/pg_ctl/po/fr.po +++ b/src/bin/pg_ctl/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:18+0000\n" -"PO-Revision-Date: 2023-07-29 22:45+0200\n" +"POT-Creation-Date: 2024-08-22 10:19+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,40 +21,59 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../common/exec.c:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binaire « %s » invalide : %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "n'a pas pu lire le binaire « %s » : %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "n'a pas pu exécuter la commande « %s » : %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "n'a pas pu lire à partir de la commande « %s » : %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "aucune donnée n'a été renvoyée par la commande « %s »" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "mémoire épuisée" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 #, c-format msgid "out of memory\n" msgstr "mémoire épuisée\n" @@ -96,125 +115,125 @@ msgstr "le processus fils a quitté avec un statut %d non reconnu" #: ../../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "n'a pas pu obtenir le répertoire de travail : %s\n" +msgid "could not get current working directory: %m\n" +msgstr "n'a pas pu obtenir le répertoire de travail : %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s : le répertoire « %s » n'existe pas\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -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 access directory \"%s\": %m\n" +msgstr "%s : n'a pas pu accéder au répertoire « %s » : %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s : le répertoire « %s » n'est pas un répertoire d'instance\n" -#: pg_ctl.c:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s : n'a pas pu ouvrir le fichier de PID « %s » : %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s : n'a pas pu ouvrir le fichier de PID « %s » : %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s : le fichier PID « %s » est vide\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s : données invalides dans le fichier de PID « %s »\n" -#: pg_ctl.c:458 pg_ctl.c:500 +#: pg_ctl.c:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s : n'a pas pu démarrer le serveur : %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s : n'a pas pu démarrer le serveur : %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, c-format -msgid "%s: could not start server due to setsid() failure: %s\n" -msgstr "%s : n'a pas pu démarrer le serveur à cause d'un échec de setsid() : %s\n" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s : n'a pas pu démarrer le serveur à cause d'un échec de setsid() : %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -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 open log file \"%s\": %m\n" +msgstr "%s : n'a pas pu ouvrir le journal applicatif « %s » : %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s : n'a pas pu démarrer le serveur : code d'erreur %lu\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "" "%s : n'a pas pu initialiser la taille des fichiers core, ceci est interdit\n" "par une limite dure\n" -#: pg_ctl.c:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s : n'a pas pu lire le fichier « %s »\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s : le fichier d'options « %s » ne doit comporter qu'une seule ligne\n" -#: pg_ctl.c:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s : n'a pas pu envoyer le signal d'arrêt (PID : %d) : %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s : n'a pas pu envoyer le signal d'arrêt (PID : %d) : %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé dans le même répertoire que « %s »\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "le programme « %s » a été trouvé par « %s » mais n'est pas de la même version que %s\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s : l'initialisation du système a échoué\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "" "%s : un autre serveur semble en cours d'exécution ; le démarrage du serveur\n" "va toutefois être tenté\n" -#: pg_ctl.c:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "en attente du démarrage du serveur..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " effectué\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "serveur démarré\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " attente arrêtée\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s : le serveur ne s'est pas lancé à temps\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "" "%s: could not start server\n" @@ -223,44 +242,44 @@ msgstr "" "%s : n'a pas pu démarrer le serveur\n" "Examinez le journal applicatif.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "serveur en cours de démarrage\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s : le fichier de PID « %s » n'existe pas\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "Le serveur est-il en cours d'exécution ?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "" "%s : ne peut pas arrêter le serveur ; le serveur mono-utilisateur est en\n" "cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "serveur en cours d'arrêt\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "en attente de l'arrêt du serveur..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " a échoué\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s : le serveur ne s'est pas arrêté\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -268,243 +287,243 @@ msgstr "" "ASTUCE : l'option « -m fast » déconnecte immédiatement les sessions plutôt que\n" "d'attendre la déconnexion des sessions déjà présentes.\n" -#: pg_ctl.c:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "serveur arrêté\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "tentative de lancement du serveur malgré tout\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "" "%s : ne peut pas relancer le serveur ; le serveur mono-utilisateur est en\n" "cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 msgid "Please terminate the single-user server and try again.\n" msgstr "Merci d'arrêter le serveur mono-utilisateur et de réessayer.\n" -#: pg_ctl.c:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s : l'ancien processus serveur (PID : %d) semble être parti\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "lancement du serveur malgré tout\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "" "%s : ne peut pas recharger le serveur ; le serveur mono-utilisateur est en\n" "cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s : n'a pas pu envoyer le signal de rechargement (PID : %d) : %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s : n'a pas pu envoyer le signal de rechargement (PID : %d) : %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "envoi d'un signal au serveur\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "" "%s : ne peut pas promouvoir le serveur ; le serveur mono-utilisateur est en\n" "cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s : ne peut pas promouvoir le serveur ; le serveur n'est pas en standby\n" -#: pg_ctl.c:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu créer le fichier « %s » signalant la promotion : %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu créer le fichier « %s » signalant la promotion : %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu écrire le fichier « %s » signalant la promotion : %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu écrire le fichier « %s » signalant la promotion : %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s : n'a pas pu envoyer le signal de promotion (PID : %d) : %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s : n'a pas pu envoyer le signal de promotion (PID : %d) : %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu supprimer le fichier « %s » signalant la promotion : %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu supprimer le fichier « %s » signalant la promotion : %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "en attente du serveur à promouvoir..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "serveur promu\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s : le serveur ne s'est pas promu à temps\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "serveur en cours de promotion\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "" "%s : ne peut pas faire une rotation de fichier de traces ; le serveur mono-utilisateur est en\n" "cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu créer le fichier « %s » de demande de rotation des fichiers de trace : %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu créer le fichier « %s » de demande de rotation des fichiers de trace : %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu écrire le fichier « %s » de demande de rotation des fichiers de trace : %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu écrire le fichier « %s » de demande de rotation des fichiers de trace : %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s : n'a pas pu envoyer le signal de rotation des fichiers de trace (PID : %d) : %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s : n'a pas pu envoyer le signal de rotation des fichiers de trace (PID : %d) : %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" -msgstr "%s : n'a pas pu supprimer le fichier « %s » signalant la demande de rotation des fichiers de trace : %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" +msgstr "%s : n'a pas pu supprimer le fichier « %s » signalant la demande de rotation des fichiers de trace : %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "envoi d'un signal au serveur pour faire une rotation des traces\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s : le serveur mono-utilisateur est en cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s : le serveur est en cours d'exécution (PID : %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s : aucun serveur en cours d'exécution\n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s : n'a pas pu envoyer le signal %d (PID : %d) : %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s : n'a pas pu envoyer le signal %d (PID : %d) : %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s : n'a pas pu trouver l'exécutable du programme\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s : n'a pas pu trouver l'exécutable postgres\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s : n'a pas pu ouvrir le gestionnaire de services\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s : le service « %s » est déjà enregistré\n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s : n'a pas pu enregistrer le service « %s » : code d'erreur %lu\n" -#: pg_ctl.c:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s : le service « %s » n'est pas enregistré\n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s : n'a pas pu ouvrir le service « %s » : code d'erreur %lu\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1564 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s : n'a pas pu supprimer le service « %s » : code d'erreur %lu\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "En attente du démarrage du serveur...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "Dépassement du délai pour le démarrage du serveur\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "Serveur lancé et acceptant les connexions\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s : n'a pas pu démarrer le service « %s » : code d'erreur %lu\n" -#: pg_ctl.c:1789 +#: pg_ctl.c:1786 #, c-format 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" -#: pg_ctl.c:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s : n'a pas pu allouer les SID : code d'erreur %lu\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, c-format 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" -#: pg_ctl.c:1911 +#: pg_ctl.c:1908 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s : n'a pas pu obtenir les LUID pour les droits : code d'erreur %lu\n" -#: pg_ctl.c:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s : n'a pas pu obtenir l'information sur le jeton : code d'erreur %lu\n" -#: pg_ctl.c:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s : mémoire épuisée\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayer « %s --help » pour plus d'informations.\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1963 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -514,17 +533,17 @@ msgstr "" "PostgreSQL.\n" "\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D RÉP_DONNÉES] [-s] [-o OPTIONS]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1966 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -533,12 +552,12 @@ msgstr "" " %s start [-D RÉP_DONNÉES] [-l FICHIER] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-p CHEMIN] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, 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" -#: pg_ctl.c:1972 +#: pg_ctl.c:1969 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -547,32 +566,32 @@ msgstr "" " %s restart [-D RÉP_DONNÉES] [-m MODE_ARRÊT] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-c]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D RÉP_DONNÉES] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D RÉP_DONNÉES]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, 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" -#: pg_ctl.c:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D RÉP_DONNÉES] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill NOM_SIGNAL PID\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -581,12 +600,12 @@ 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" -#: pg_ctl.c:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N NOM_SERVICE]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "" "\n" @@ -595,58 +614,58 @@ msgstr "" "\n" "Options générales :\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=RÉP_DONNÉES emplacement du répertoire des données de l'instance\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:1985 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr "" " -e SOURCE source de l'événement pour la trace lors de\n" " l'exécution en tant que service\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:1987 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr "" " -s, --silent affiche uniquement les erreurs, aucun message\n" " d'informations\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:1988 #, 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 l'utilisation\n" " de l'option -w\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, 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" -#: pg_ctl.c:1994 +#: pg_ctl.c:1991 #, 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" -#: pg_ctl.c:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Si l'option -D est omise, la variable d'environnement PGDATA est utilisée.\n" -#: pg_ctl.c:1998 +#: pg_ctl.c:1995 #, c-format msgid "" "\n" @@ -655,22 +674,22 @@ msgstr "" "\n" "Options pour le démarrage ou le redémarrage :\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files autorise postgres à produire des fichiers core\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:1999 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files non applicable à cette plateforme\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2001 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log=FICHIER écrit (ou ajoute) le journal du serveur dans FICHIER\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2002 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -680,12 +699,12 @@ msgstr "" " postgres (exécutable du serveur PostgreSQL)\n" " ou à initdb\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p CHEMIN_POSTGRES normalement pas nécessaire\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2005 #, c-format msgid "" "\n" @@ -694,14 +713,14 @@ msgstr "" "\n" "Options pour l'arrêt ou le redémarrage :\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, 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" -#: pg_ctl.c:2011 +#: pg_ctl.c:2008 #, c-format msgid "" "\n" @@ -710,24 +729,24 @@ msgstr "" "\n" "Les modes d'arrêt sont :\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart quitte après déconnexion de tous les clients\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2010 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast quitte directement, et arrête correctement (par défaut)\n" -#: pg_ctl.c:2014 +#: pg_ctl.c:2011 #, 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 restauration au démarrage\n" " suivant\n" -#: pg_ctl.c:2016 +#: pg_ctl.c:2013 #, c-format msgid "" "\n" @@ -736,7 +755,7 @@ msgstr "" "\n" "Signaux autorisés pour kill :\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -745,35 +764,35 @@ msgstr "" "\n" "Options d'enregistrement ou de dés-enregistrement :\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr "" " -N NOM_SERVICE nom du service utilisé pour l'enregistrement du\n" " serveur PostgreSQL\n" -#: pg_ctl.c:2022 +#: pg_ctl.c:2019 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr "" " -P MOT_DE_PASSE mot de passe du compte utilisé pour\n" " l'enregistrement du serveur PostgreSQL\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2020 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr "" " -U NOM_UTILISATEUR nom de l'utilisateur du compte utilisé pour\n" " l'enregistrement du serveur PostgreSQL\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2021 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr "" " -S TYPE_DÉMARRAGE type de démarrage du service pour enregistrer le\n" " serveur PostgreSQL\n" -#: pg_ctl.c:2026 +#: pg_ctl.c:2023 #, c-format msgid "" "\n" @@ -782,19 +801,19 @@ msgstr "" "\n" "Les types de démarrage sont :\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr "" " auto démarre le service automatiquement lors du démarrage du système\n" " (par défaut)\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand démarre le service à la demande\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "" "\n" @@ -803,37 +822,37 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s : mode d'arrêt non reconnu « %s »\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s : signal non reconnu « %s »\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s : type de redémarrage « %s » non reconnu\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s : n'a pas déterminer le répertoire des données en utilisant la commande « %s »\n" -#: pg_ctl.c:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s : le fichier de contrôle semble corrompu\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "" "%s: cannot be run as root\n" @@ -844,170 +863,34 @@ msgstr "" "Connectez-vous (par exemple en utilisant « su ») sous l'utilisateur (non\n" " privilégié) qui sera propriétaire du processus serveur.\n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s : option -S non supportée sur cette plateforme\n" -#: pg_ctl.c:2370 -#, c-format -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" - -#: pg_ctl.c:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s : arguments manquant pour le mode kill\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s : mode d'opération « %s » non reconnu\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, c-format +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" + +#: pg_ctl.c:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s : aucune opération indiquée\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "" "%s : aucun répertoire de bases de données indiqué et variable\n" "d'environnement PGDATA non initialisée\n" - -#~ msgid "" -#~ "\n" -#~ "%s: -w option cannot use a relative socket directory specification\n" -#~ msgstr "" -#~ "\n" -#~ "%s : l'option -w ne peut pas utiliser un chemin relatif vers le répertoire de\n" -#~ "la socket\n" - -#~ msgid "" -#~ "\n" -#~ "%s: -w option is not supported when starting a pre-9.1 server\n" -#~ msgstr "" -#~ "\n" -#~ "%s : l'option -w n'est pas supportée lors du démarrage d'un serveur pré-9.1\n" - -#~ msgid "" -#~ "\n" -#~ "%s: this data directory appears to be running a pre-existing postmaster\n" -#~ msgstr "" -#~ "\n" -#~ "%s : ce répertoire des données semble être utilisé par un postmaster déjà existant\n" - -#~ msgid "" -#~ "\n" -#~ "Options for stop, restart, or promote:\n" -#~ msgstr "" -#~ "\n" -#~ "Options pour l'arrêt, le redémarrage ou la promotion :\n" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid " %s start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o \"OPTIONS\"]\n" -#~ msgstr "" -#~ " %s start [-w] [-t SECS] [-D RÉP_DONNÉES] [-s] [-l NOM_FICHIER]\n" -#~ " [-o \"OPTIONS\"]\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 is a utility to start, stop, restart, reload configuration files,\n" -#~ "report the status of a PostgreSQL server, or signal a PostgreSQL process.\n" -#~ "\n" -#~ msgstr "" -#~ "%s est un outil qui permet de démarrer, arrêter, redémarrer, recharger les\n" -#~ "les fichiers de configuration, rapporter le statut d'un serveur PostgreSQL\n" -#~ "ou d'envoyer un signal à un processus PostgreSQL\n" -#~ "\n" - -#~ msgid "%s: could not create log file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu créer le fichier de traces « %s » : %s\n" - -#~ msgid "%s: could not open process token: %lu\n" -#~ msgstr "%s : n'a pas pu ouvrir le jeton du processus : %lu\n" - -#~ msgid "%s: could not start server: exit code was %d\n" -#~ msgstr "%s : n'a pas pu démarrer le serveur : le code de sortie est %d\n" - -#~ msgid "%s: could not wait for server because of misconfiguration\n" -#~ msgstr "%s : n'a pas pu attendre le serveur à cause d'une mauvaise configuration\n" - -#~ msgid "" -#~ "(The default is to wait for shutdown, but not for start or restart.)\n" -#~ "\n" -#~ msgstr "" -#~ "(Le comportement par défaut attend l'arrêt, pas le démarrage ou le\n" -#~ "redémarrage.)\n" -#~ "\n" - -#, 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 "" -#~ "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.\n" - -#, c-format -#~ msgid "" -#~ "The program \"%s\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation.\n" -#~ msgstr "" -#~ "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" - -#~ msgid "" -#~ "WARNING: online backup mode is active\n" -#~ "Shutdown will not complete until pg_stop_backup() is called.\n" -#~ "\n" -#~ msgstr "" -#~ "ATTENTION : le mode de sauvegarde en ligne est activé.\n" -#~ "L'arrêt ne surviendra qu'au moment où pg_stop_backup() sera appelé.\n" -#~ "\n" - -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" - -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %m" - -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %s" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "n'a pas pu identifier le répertoire courant : %m" - -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" - -#~ msgid "pclose failed: %m" -#~ msgstr "échec de pclose : %m" - -#~ msgid "server is still starting up\n" -#~ msgstr "le serveur est toujours en cours de démarrage\n" diff --git a/src/bin/pg_ctl/po/ja.po b/src/bin/pg_ctl/po/ja.po index 892da976cada2..77c2d6ba2f16c 100644 --- a/src/bin/pg_ctl/po/ja.po +++ b/src/bin/pg_ctl/po/ja.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_ctl (PostgreSQL 17)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-13 10:06+0900\n" -"PO-Revision-Date: 2024-03-13 10:29+0900\n" +"POT-Creation-Date: 2024-07-19 09:21+0900\n" +"PO-Revision-Date: 2024-07-19 09:52+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -22,6 +22,10 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "バイトオーダが合っていません" + #: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" @@ -113,118 +117,122 @@ msgstr "子プロセスが未知のステータス%dで終了しました" msgid "could not get current working directory: %m\n" msgstr "現在の作業ディレクトリを取得できませんでした: %m\n" -#: pg_ctl.c:254 +#: pg_ctl.c:255 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: ディレクトリ \"%s\" は存在しません\n" -#: pg_ctl.c:257 +#: pg_ctl.c:258 #, c-format msgid "%s: could not access directory \"%s\": %m\n" msgstr "%s: ディレクトリ\"%s\"にアクセスできませんでした: %m\n" -#: pg_ctl.c:270 +#: pg_ctl.c:271 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: ディレクトリ\"%s\"はデータベースクラスタディレクトリではありません\n" -#: pg_ctl.c:283 +#: pg_ctl.c:284 #, c-format msgid "%s: could not open PID file \"%s\": %m\n" msgstr "%s: PIDファイル\"%s\"をオープンできませんでした: %m\n" -#: pg_ctl.c:292 +#: pg_ctl.c:293 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: PIDファイル\"%s\"が空です\n" -#: pg_ctl.c:295 +#: pg_ctl.c:296 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: PIDファイル\"%s\"内に無効なデータがあります\n" -#: pg_ctl.c:457 pg_ctl.c:499 +#: pg_ctl.c:458 pg_ctl.c:500 #, c-format msgid "%s: could not start server: %m\n" msgstr "%s: サーバーを起動できませんでした: %m\n" -#: pg_ctl.c:477 +#: pg_ctl.c:478 #, c-format msgid "%s: could not start server due to setsid() failure: %m\n" msgstr "%s: setsid()に失敗したためサーバーを起動できませんでした: %m\n" -#: pg_ctl.c:547 +#: pg_ctl.c:548 #, c-format msgid "%s: could not open log file \"%s\": %m\n" msgstr "%s: ログファイル \"%s\" をオープンできませんでした: %m\n" -#: pg_ctl.c:564 +#: pg_ctl.c:565 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: サーバーの起動に失敗しました: エラーコード %lu\n" -#: pg_ctl.c:781 +#: pg_ctl.c:789 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "%s: コアファイルのサイズ制限を設定できません:固定の制限により許されていません\n" -#: pg_ctl.c:807 +#: pg_ctl.c:815 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: ファイル\"%s\"を読み取ることに失敗しました\n" -#: pg_ctl.c:812 +#: pg_ctl.c:820 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: オプションファイル\"%s\"は1行のみでなければなりません\n" -#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 +#: pg_ctl.c:862 pg_ctl.c:1050 pg_ctl.c:1117 #, c-format msgid "%s: could not send stop signal (PID: %d): %m\n" msgstr "%s: 停止シグナルを送信できませんでした。(PID: %d): %m\n" -#: pg_ctl.c:882 +#: pg_ctl.c:890 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "%2$sにはプログラム\"%1$s\"が必要ですが、\"%3$s\"と同じディレクトリにありませんでした\n" -#: pg_ctl.c:885 +#: pg_ctl.c:893 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした\n" -#: pg_ctl.c:917 +#: pg_ctl.c:925 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: データベースシステムが初期化に失敗しました\n" -#: pg_ctl.c:932 +#: pg_ctl.c:940 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: 他のサーバーが動作中の可能性がありますが、とにかくpostmasterの起動を試みます。\n" -#: pg_ctl.c:980 +#: pg_ctl.c:988 msgid "waiting for server to start..." msgstr "サーバーの起動完了を待っています..." -#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 +#: pg_ctl.c:993 pg_ctl.c:1003 pg_ctl.c:1073 pg_ctl.c:1135 pg_ctl.c:1247 msgid " done\n" msgstr "完了\n" -#: pg_ctl.c:986 +#: pg_ctl.c:994 msgid "server started\n" msgstr "サーバー起動完了\n" -#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 +#: pg_ctl.c:997 pg_ctl.c:1007 pg_ctl.c:1252 msgid " stopped waiting\n" msgstr " 待機処理が停止されました\n" -#: pg_ctl.c:990 +#: pg_ctl.c:998 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: サーバーは時間内に起動しませんでした\n" -#: pg_ctl.c:996 +#: pg_ctl.c:1004 +msgid "server shut down because of recovery target settings\n" +msgstr "リカバリ目標設定によりシャットダウンしました\n" + +#: pg_ctl.c:1008 #, c-format msgid "" "%s: could not start server\n" @@ -233,42 +241,42 @@ msgstr "" "%s: サーバーを起動できませんでした。\n" "ログ出力を確認してください。\n" -#: pg_ctl.c:1004 +#: pg_ctl.c:1016 msgid "server starting\n" msgstr "サーバーは起動中です。\n" -#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 +#: pg_ctl.c:1035 pg_ctl.c:1093 pg_ctl.c:1156 pg_ctl.c:1195 pg_ctl.c:1276 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: PIDファイル\"%s\"がありません\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 +#: pg_ctl.c:1036 pg_ctl.c:1095 pg_ctl.c:1157 pg_ctl.c:1196 pg_ctl.c:1277 msgid "Is server running?\n" msgstr "サーバーが動作していますか?\n" -#: pg_ctl.c:1030 +#: pg_ctl.c:1042 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: サーバーを停止できません。シングルユーザーサーバー(PID: %d)が動作しています。\n" -#: pg_ctl.c:1044 +#: pg_ctl.c:1056 msgid "server shutting down\n" msgstr "サーバーの停止中です\n" -#: pg_ctl.c:1049 pg_ctl.c:1109 +#: pg_ctl.c:1061 pg_ctl.c:1121 msgid "waiting for server to shut down..." msgstr "サーバー停止処理の完了を待っています..." -#: pg_ctl.c:1053 pg_ctl.c:1114 +#: pg_ctl.c:1065 pg_ctl.c:1126 msgid " failed\n" msgstr "失敗しました\n" -#: pg_ctl.c:1055 pg_ctl.c:1116 +#: pg_ctl.c:1067 pg_ctl.c:1128 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: サーバーは停止していません\n" -#: pg_ctl.c:1057 pg_ctl.c:1118 +#: pg_ctl.c:1069 pg_ctl.c:1130 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -276,252 +284,252 @@ msgstr "" "ヒント: \"-m fast\"オプションは、セッション切断が始まるまで待機するのではなく\n" "即座にセッションを切断します。\n" -#: pg_ctl.c:1063 pg_ctl.c:1124 +#: pg_ctl.c:1075 pg_ctl.c:1136 msgid "server stopped\n" msgstr "サーバーは停止しました\n" -#: pg_ctl.c:1084 +#: pg_ctl.c:1096 msgid "trying to start server anyway\n" msgstr "とにかくサーバーの起動を試みます\n" -#: pg_ctl.c:1093 +#: pg_ctl.c:1105 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "%s: サーバーを再起動できません。シングルユーザーサーバー(PID: %d)が動作中です。\n" -#: pg_ctl.c:1096 pg_ctl.c:1154 +#: pg_ctl.c:1108 pg_ctl.c:1166 msgid "Please terminate the single-user server and try again.\n" msgstr "シングルユーザーサーバーを終了させてから、再度実行してください\n" -#: pg_ctl.c:1128 +#: pg_ctl.c:1140 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: 古いサーバープロセス(PID: %d)が動作していないようです\n" -#: pg_ctl.c:1130 +#: pg_ctl.c:1142 msgid "starting server anyway\n" msgstr "とにかくサーバーを起動しています\n" -#: pg_ctl.c:1151 +#: pg_ctl.c:1163 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "%s: サーバーをリロードできません。シングルユーザーサーバー(PID: %d)が動作中です\n" -#: pg_ctl.c:1160 +#: pg_ctl.c:1172 #, c-format msgid "%s: could not send reload signal (PID: %d): %m\n" msgstr "%s: リロードシグナルを送信できませんでした。(PID: %d): %m\n" -#: pg_ctl.c:1165 +#: pg_ctl.c:1177 msgid "server signaled\n" msgstr "サーバーにシグナルを送信しました\n" -#: pg_ctl.c:1190 +#: pg_ctl.c:1202 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: サーバーを昇格できません; シングルユーザーサーバー(PID: %d)が動作中です\n" -#: pg_ctl.c:1198 +#: pg_ctl.c:1210 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: サーバーを昇格できません; サーバーはスタンバイモードではありません\n" -#: pg_ctl.c:1208 +#: pg_ctl.c:1220 #, c-format msgid "%s: could not create promote signal file \"%s\": %m\n" msgstr "%s: 昇格指示ファイル\"%s\"を作成できませんでした: %m\n" -#: pg_ctl.c:1214 +#: pg_ctl.c:1226 #, c-format msgid "%s: could not write promote signal file \"%s\": %m\n" msgstr "%s: 昇格指示ファイル\"%s\"に書き込めませんでした: %m\n" -#: pg_ctl.c:1222 +#: pg_ctl.c:1234 #, c-format msgid "%s: could not send promote signal (PID: %d): %m\n" msgstr "%s: 昇格シグナルを送信できませんでした (PID: %d): %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1237 #, c-format msgid "%s: could not remove promote signal file \"%s\": %m\n" msgstr "%s: 昇格指示ファイル\"%s\"の削除に失敗しました: %m\n" -#: pg_ctl.c:1232 +#: pg_ctl.c:1244 msgid "waiting for server to promote..." msgstr "サーバーの昇格を待っています..." -#: pg_ctl.c:1236 +#: pg_ctl.c:1248 msgid "server promoted\n" msgstr "サーバーは昇格しました\n" -#: pg_ctl.c:1241 +#: pg_ctl.c:1253 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: サーバーは時間内に昇格しませんでした\n" -#: pg_ctl.c:1247 +#: pg_ctl.c:1259 msgid "server promoting\n" msgstr "サーバーを昇格中です\n" -#: pg_ctl.c:1271 +#: pg_ctl.c:1283 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: ログをローテートできません; シングルユーザーサーバーが動作中です (PID: %d)\n" -#: pg_ctl.c:1281 +#: pg_ctl.c:1293 #, c-format msgid "%s: could not create log rotation signal file \"%s\": %m\n" msgstr "%s: ログローテート指示ファイル\"%s\"を作成できませんでした: %m\n" -#: pg_ctl.c:1287 +#: pg_ctl.c:1299 #, c-format msgid "%s: could not write log rotation signal file \"%s\": %m\n" msgstr "%s: ログローテート指示ファイル\"%s\"に書き込めきませんでした: %m\n" -#: pg_ctl.c:1295 +#: pg_ctl.c:1307 #, c-format msgid "%s: could not send log rotation signal (PID: %d): %m\n" msgstr "%s: ログローテートシグナルを送信できませんでした (PID: %d): %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1310 #, c-format msgid "%s: could not remove log rotation signal file \"%s\": %m\n" msgstr "%s: ログローテート指示ファイル\"%s\"の削除に失敗しました: %m\n" -#: pg_ctl.c:1303 +#: pg_ctl.c:1315 msgid "server signaled to rotate log file\n" msgstr "サーバーがログローテートをシグナルされました\n" -#: pg_ctl.c:1350 +#: pg_ctl.c:1362 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: シングルユーザーサーバーが動作中です(PID: %d)\n" -#: pg_ctl.c:1364 +#: pg_ctl.c:1376 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: サーバーが動作中です(PID: %d)\n" -#: pg_ctl.c:1380 +#: pg_ctl.c:1392 #, c-format msgid "%s: no server running\n" msgstr "%s: サーバーが動作していません\n" -#: pg_ctl.c:1397 +#: pg_ctl.c:1409 #, c-format msgid "%s: could not send signal %d (PID: %d): %m\n" msgstr "%s: シグナル%dを送信できませんでした(PID: %d): %m\n" -#: pg_ctl.c:1428 +#: pg_ctl.c:1440 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: 本プログラムの実行ファイルの検索に失敗しました\n" -#: pg_ctl.c:1438 +#: pg_ctl.c:1450 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: postgres の実行ファイルが見つかりません\n" -#: pg_ctl.c:1508 pg_ctl.c:1542 +#: pg_ctl.c:1520 pg_ctl.c:1554 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: サービスマネージャのオープンに失敗しました\n" -#: pg_ctl.c:1514 +#: pg_ctl.c:1526 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: サービス\\\"%s\\\"は登録済みです\n" -#: pg_ctl.c:1525 +#: pg_ctl.c:1537 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: サービス\"%s\"の登録に失敗しました: エラーコード %lu\n" -#: pg_ctl.c:1548 +#: pg_ctl.c:1560 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: サービス\"%s\"は登録されていません\n" -#: pg_ctl.c:1555 +#: pg_ctl.c:1567 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: サービス\"%s\"のオープンに失敗しました: エラーコード %lu\n" -#: pg_ctl.c:1564 +#: pg_ctl.c:1576 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: サービス\"%s\"の登録削除に失敗しました: エラーコード %lu\n" -#: pg_ctl.c:1651 +#: pg_ctl.c:1663 msgid "Waiting for server startup...\n" msgstr "サーバーの起動完了を待っています...\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1666 msgid "Timed out waiting for server startup\n" msgstr "サーバーの起動待機がタイムアウトしました\n" -#: pg_ctl.c:1658 +#: pg_ctl.c:1670 msgid "Server started and accepting connections\n" msgstr "サーバーは起動し、接続を受け付けています\n" -#: pg_ctl.c:1713 +#: pg_ctl.c:1725 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: サービス\"%s\"の起動に失敗しました: エラーコード %lu\n" -#: pg_ctl.c:1786 +#: pg_ctl.c:1798 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: プロセストークンをオープンできませんでした: エラーコード %lu\n" -#: pg_ctl.c:1800 +#: pg_ctl.c:1812 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: SIDを割り当てられませんでした: エラーコード %lu\n" -#: pg_ctl.c:1826 +#: pg_ctl.c:1838 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: 制限付きトークンを作成できませんでした: エラーコード %lu\n" -#: pg_ctl.c:1908 +#: pg_ctl.c:1920 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: 権限の LUID を取得できません: エラーコード %lu\n" -#: pg_ctl.c:1916 pg_ctl.c:1931 +#: pg_ctl.c:1928 pg_ctl.c:1943 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: トークン情報を取得できませんでした: エラーコード %lu\n" -#: pg_ctl.c:1925 +#: pg_ctl.c:1937 #, c-format msgid "%s: out of memory\n" msgstr "%s: メモリ不足です\n" -#: pg_ctl.c:1955 +#: pg_ctl.c:1967 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "詳細は\"%s --help\"を実行してください。\n" -#: pg_ctl.c:1963 +#: pg_ctl.c:1975 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" "\n" msgstr "%sはPostgreSQLサーバーの初期化、起動、停止、制御を行うユーティリティです。\n" -#: pg_ctl.c:1964 +#: pg_ctl.c:1976 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_ctl.c:1965 +#: pg_ctl.c:1977 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1978 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -530,12 +538,12 @@ msgstr "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-p PATH] [-c]\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1980 #, c-format msgid " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" msgstr " %s stop [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1981 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -544,32 +552,32 @@ msgstr "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1983 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D DATADIR] [-s]\n" -#: pg_ctl.c:1972 +#: pg_ctl.c:1984 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATADIR]\n" -#: pg_ctl.c:1973 +#: pg_ctl.c:1985 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1986 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATADIR] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1987 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill SIGNALNAME PID\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1989 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -578,12 +586,12 @@ msgstr "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" " [-S START-TYPE] [-e SOURCE] [-W] [-t SECS] [-s] [-o OPTIONS]\n" -#: pg_ctl.c:1979 +#: pg_ctl.c:1991 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N SERVICENAME]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1994 #, c-format msgid "" "\n" @@ -592,52 +600,52 @@ msgstr "" "\n" "共通のオプション:\n" -#: pg_ctl.c:1983 +#: pg_ctl.c:1995 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=DATADIR データベース格納領域の場所\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1997 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr " -e SOURCE サービスとして起動させたときのログのイベントソース\n" -#: pg_ctl.c:1987 +#: pg_ctl.c:1999 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent エラーメッセージのみを表示、情報メッセージは表示しない\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:2000 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=SECS -wオプションを使用する時に待機する秒数\n" -#: pg_ctl.c:1989 +#: pg_ctl.c:2001 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:2002 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait 操作が完了するまで待機 (デフォルト)\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:2003 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait 作業の完了を待たない\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:2004 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:2005 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "-Dオプションの省略時はPGDATA環境変数が使用されます。\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:2007 #, c-format msgid "" "\n" @@ -646,22 +654,22 @@ msgstr "" "\n" "起動、再起動のオプション\n" -#: pg_ctl.c:1997 +#: pg_ctl.c:2009 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files postgresのコアファイル生成を許可\n" -#: pg_ctl.c:1999 +#: pg_ctl.c:2011 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files このプラットフォームでは適用されない\n" -#: pg_ctl.c:2001 +#: pg_ctl.c:2013 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log FILENAME サーバーログをFILENAMEへ書き込む(または追加する)\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:2014 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -670,12 +678,12 @@ msgstr "" " -o, --options=OPTIONS postgres(PostgreSQLサーバー実行ファイル)または\n" " initdb に渡すコマンドラインオプション\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2016 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p PATH-TO-POSTGRES 通常は不要\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -684,12 +692,12 @@ msgstr "" "\n" "停止、再起動のオプション\n" -#: pg_ctl.c:2006 +#: pg_ctl.c:2018 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=MODE MODEは\"smart\"、\"fast\"、\"immediate\"のいずれか\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2020 #, c-format msgid "" "\n" @@ -698,22 +706,22 @@ msgstr "" "\n" "シャットダウンモードは以下の通り:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2021 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart 全クライアントの接続切断後に停止\n" -#: pg_ctl.c:2010 +#: pg_ctl.c:2022 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast 適切な手続きで直ちに停止(デフォルト)\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2023 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr " immediate 適切な手続き抜きで停止; 再起動時にはリカバリが実行される\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2025 #, c-format msgid "" "\n" @@ -722,7 +730,7 @@ msgstr "" "\n" "killモードで利用できるシグナル名:\n" -#: pg_ctl.c:2017 +#: pg_ctl.c:2029 #, c-format msgid "" "\n" @@ -731,27 +739,27 @@ msgstr "" "\n" "登録、登録解除のオプション:\n" -#: pg_ctl.c:2018 +#: pg_ctl.c:2030 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N SERVICENAME PostgreSQLサーバーを登録する際のサービス名\n" -#: pg_ctl.c:2019 +#: pg_ctl.c:2031 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P PASSWORD PostgreSQLサーバーを登録するためのアカウントのパスワード\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2032 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U USERNAME PostgreSQLサーバーを登録するためのアカウント名\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2033 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S START-TYPE PostgreSQLサーバーを登録する際のサービス起動タイプ\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2035 #, c-format msgid "" "\n" @@ -760,17 +768,17 @@ msgstr "" "\n" "起動タイプは以下の通り:\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2036 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr " auto システムの起動時にサービスを自動的に開始(デフォルト)\n" -#: pg_ctl.c:2025 +#: pg_ctl.c:2037 #, c-format msgid " demand start service on demand\n" msgstr " demand 要求に応じてサービスを開始\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2040 #, c-format msgid "" "\n" @@ -779,37 +787,37 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_ctl.c:2029 +#: pg_ctl.c:2041 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: pg_ctl.c:2054 +#: pg_ctl.c:2066 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: 不正なシャットダウンモード\"%s\"\n" -#: pg_ctl.c:2083 +#: pg_ctl.c:2095 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: 不正なシグナル名\"%s\"\n" -#: pg_ctl.c:2100 +#: pg_ctl.c:2112 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: 不正な起動タイプ\"%s\"\n" -#: pg_ctl.c:2156 +#: pg_ctl.c:2168 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: コマンド\"%s\"を使用するデータディレクトリを決定できませんでした\n" -#: pg_ctl.c:2179 +#: pg_ctl.c:2191 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: 制御ファイルが壊れているようです\n" -#: pg_ctl.c:2247 +#: pg_ctl.c:2259 #, c-format msgid "" "%s: cannot be run as root\n" @@ -820,32 +828,32 @@ msgstr "" "サーバープロセスの所有者となる(非特権)ユーザーとして(\"su\"などを使用して)\n" "ログインしてください。\n" -#: pg_ctl.c:2319 +#: pg_ctl.c:2331 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: -Sオプションはこのプラットフォームでサポートされていません\n" -#: pg_ctl.c:2375 +#: pg_ctl.c:2387 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: killモード用の引数がありません\n" -#: pg_ctl.c:2393 +#: pg_ctl.c:2405 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: 操作モード\"%s\"は不明です\n" -#: pg_ctl.c:2402 +#: pg_ctl.c:2414 #, c-format msgid "%s: too many command-line arguments (first is \"%s\")\n" msgstr "%s: コマンドライン引数が多すぎます(先頭は\"%s\")\n" -#: pg_ctl.c:2409 +#: pg_ctl.c:2421 #, c-format msgid "%s: no operation specified\n" msgstr "%s: 操作モードが指定されていません\n" -#: pg_ctl.c:2430 +#: pg_ctl.c:2442 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: データベースの指定も、PGDATA環境変数の設定もありません\n" diff --git a/src/bin/pg_ctl/po/ka.po b/src/bin/pg_ctl/po/ka.po index fe7004788ae2d..5500c71f6d9b1 100644 --- a/src/bin/pg_ctl/po/ka.po +++ b/src/bin/pg_ctl/po/ka.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_ctl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-13 00:49+0000\n" -"PO-Revision-Date: 2024-03-13 02:04+0100\n" +"POT-Creation-Date: 2025-02-27 09:50+0000\n" +"PO-Revision-Date: 2025-02-27 12:52+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,7 +16,11 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "ბაიტების მიმდევრობა არ ემთხვევა" #: ../../common/exec.c:174 #, c-format @@ -38,33 +42,33 @@ msgstr "გასაშვებად ფაილის \"%s\" პოვნა msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "ბილიკის (\"%s\") აბსოლუტურ ფორმაში ამოხსნის შეცდომა: %m" -#: ../../common/exec.c:382 +#: ../../common/exec.c:363 #, c-format msgid "could not execute command \"%s\": %m" msgstr "ბრძანების (\"%s\") შესრულების შეცდომა: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "ბრძანებიდან \"%s\" წაკითხვის შეცდომა: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "ბრძანებამ \"%s\" მონაცემები არ დააბრუნა" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s()-ის შეცდომა: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 +#: ../../port/path.c:831 ../../port/path.c:868 ../../port/path.c:885 #, c-format msgid "out of memory\n" msgstr "არასაკმარისი მეხსიერება\n" @@ -104,123 +108,127 @@ msgstr "პროცესი გაჩერდა სიგნალით: %d msgid "child process exited with unrecognized status %d" msgstr "შვილეული პროცესი დასრულდა უცნობი სტატუსით %d" -#: ../../port/path.c:775 +#: ../../port/path.c:853 #, c-format msgid "could not get current working directory: %m\n" msgstr "მიმდინარე სამუშაო საქაღალდის მიღების შეცდომა: %m\n" -#: pg_ctl.c:254 +#: pg_ctl.c:255 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: საქაღალდე %s არ არსებობს\n" -#: pg_ctl.c:257 +#: pg_ctl.c:258 #, c-format msgid "%s: could not access directory \"%s\": %m\n" msgstr "%s საქაღალდესთან %s წვდომის უფლება არ გაქვთ: %m\n" -#: pg_ctl.c:270 +#: pg_ctl.c:271 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: საქაღალდე \"%s\" ბაზის კლასტერის საქაღალდეს არ წარმოადგენს\n" -#: pg_ctl.c:283 +#: pg_ctl.c:284 #, c-format msgid "%s: could not open PID file \"%s\": %m\n" msgstr "%s: PID ფაილის (\"%s\") გახსნის შეცდომა: %m\n" -#: pg_ctl.c:292 +#: pg_ctl.c:293 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: PID ფაილი \"%s\" ცარიელია\n" -#: pg_ctl.c:295 +#: pg_ctl.c:296 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: PID ფაილის (\"%s\") არასწორი შიგთავსი\n" -#: pg_ctl.c:457 pg_ctl.c:499 +#: pg_ctl.c:458 pg_ctl.c:500 #, c-format msgid "%s: could not start server: %m\n" msgstr "%s: სერვერის გაშვების შეცდომა: %m\n" -#: pg_ctl.c:477 +#: pg_ctl.c:478 #, c-format msgid "%s: could not start server due to setsid() failure: %m\n" msgstr "%s: სერვერის გაშვება შეუძლებელია setsid()-ის ჩავარდნის გამო: %m\n" -#: pg_ctl.c:547 +#: pg_ctl.c:548 #, c-format msgid "%s: could not open log file \"%s\": %m\n" msgstr "%s: ჟურნალის ფაილის გახსნის შეცდომა \"%s\": %m\n" -#: pg_ctl.c:564 +#: pg_ctl.c:565 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: სერვერის გაშვება შეუძლებელია: შეცდომის კოდი %lu\n" -#: pg_ctl.c:781 +#: pg_ctl.c:789 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "%s ბირთვის ფაილის ზომის ლიმიტის დაყენება აკრძალულია hardlimit-ის მიერ\n" -#: pg_ctl.c:807 +#: pg_ctl.c:815 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "ფაილის (%s) წაკითხვის შეცდომა: %s\n" -#: pg_ctl.c:812 +#: pg_ctl.c:820 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: პარამეტრების ფაილში \"%s\" ზუსტად ერთი ხაზი უნდა იყოს\n" -#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 +#: pg_ctl.c:862 pg_ctl.c:1050 pg_ctl.c:1117 #, c-format msgid "%s: could not send stop signal (PID: %d): %m\n" msgstr "%s: გაჩერების სიგნალის გაგზავნა შეუძლებელია (PID: %d): %m\n" -#: pg_ctl.c:882 +#: pg_ctl.c:890 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა\n" -#: pg_ctl.c:885 +#: pg_ctl.c:893 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s\n" -#: pg_ctl.c:917 +#: pg_ctl.c:925 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: მონაცემთა ბაზის ინიციალიზაციის შეცდომა\n" -#: pg_ctl.c:932 +#: pg_ctl.c:940 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: შეიძლება გაშვებულია სხვა სერვერი; გაშვებას მაინც ვეცდები\n" -#: pg_ctl.c:980 +#: pg_ctl.c:988 msgid "waiting for server to start..." msgstr "სერვერის გაშვების მოლოდინი..." -#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 +#: pg_ctl.c:993 pg_ctl.c:1003 pg_ctl.c:1073 pg_ctl.c:1135 pg_ctl.c:1247 msgid " done\n" msgstr " დასრულდა\n" -#: pg_ctl.c:986 +#: pg_ctl.c:994 msgid "server started\n" msgstr "სერვერი გაეშვა\n" -#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 +#: pg_ctl.c:997 pg_ctl.c:1007 pg_ctl.c:1252 msgid " stopped waiting\n" msgstr " ლოდინი შეწყვეტილია\n" -#: pg_ctl.c:990 +#: pg_ctl.c:998 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: სერვერი დროზე არ გაეშვა\n" -#: pg_ctl.c:996 +#: pg_ctl.c:1004 +msgid "server shut down because of recovery target settings\n" +msgstr "სერვერი გამოირთო აღდგენის სამიზნის პარამეტრების გამო\n" + +#: pg_ctl.c:1008 #, c-format msgid "" "%s: could not start server\n" @@ -229,42 +237,42 @@ msgstr "" "%s: სერვერის გაშვების შეცდომა\n" "შეამოწმეთ ჟურნალის ფაილი.\n" -#: pg_ctl.c:1004 +#: pg_ctl.c:1016 msgid "server starting\n" msgstr "სერვერი ეშვება\n" -#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 +#: pg_ctl.c:1035 pg_ctl.c:1093 pg_ctl.c:1156 pg_ctl.c:1195 pg_ctl.c:1276 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: PID-ის ფაილი \"%s\" არ არსებობს\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 +#: pg_ctl.c:1036 pg_ctl.c:1095 pg_ctl.c:1157 pg_ctl.c:1196 pg_ctl.c:1277 msgid "Is server running?\n" msgstr "სერვერი გაშვებიულია?\n" -#: pg_ctl.c:1030 +#: pg_ctl.c:1042 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: სერვერის გაჩერების შეცდომა; გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1044 +#: pg_ctl.c:1056 msgid "server shutting down\n" msgstr "მიმდინარეობს სერვერის გამორთვა\n" -#: pg_ctl.c:1049 pg_ctl.c:1109 +#: pg_ctl.c:1061 pg_ctl.c:1121 msgid "waiting for server to shut down..." msgstr "სერვერის გამორთვის მოლოდინი..." -#: pg_ctl.c:1053 pg_ctl.c:1114 +#: pg_ctl.c:1065 pg_ctl.c:1126 msgid " failed\n" msgstr " წარუმატებელი.\n" -#: pg_ctl.c:1055 pg_ctl.c:1116 +#: pg_ctl.c:1067 pg_ctl.c:1128 #, c-format msgid "%s: server does not shut down\n" msgstr "%s სერვერი არ გამორთულა\n" -#: pg_ctl.c:1057 pg_ctl.c:1118 +#: pg_ctl.c:1069 pg_ctl.c:1130 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -272,235 +280,235 @@ msgstr "" "მინიშნება: \"-m fast\" პარამეტრი სესიებს მაშინვე წყვეტს,\n" "სესიის-ინიცირებული გათიშვის მოლოდინის გარეშე.\n" -#: pg_ctl.c:1063 pg_ctl.c:1124 +#: pg_ctl.c:1075 pg_ctl.c:1136 msgid "server stopped\n" msgstr "სერვერი გამოირთო\n" -#: pg_ctl.c:1084 +#: pg_ctl.c:1096 msgid "trying to start server anyway\n" msgstr "სერვერის მაინც გაშვების მცდელობა\n" -#: pg_ctl.c:1093 +#: pg_ctl.c:1105 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "%s: სერვერის რესტარტი შეუძლებელია; გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1096 pg_ctl.c:1154 +#: pg_ctl.c:1108 pg_ctl.c:1166 msgid "Please terminate the single-user server and try again.\n" msgstr "შეაჩერეთ ერთმომხმარებლიანი სერვერი და თავიდან სცადეთ.\n" -#: pg_ctl.c:1128 +#: pg_ctl.c:1140 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: სერვერის ძველი პროცესი (PID: %d) როგორც ჩანს, მოკვდა\n" -#: pg_ctl.c:1130 +#: pg_ctl.c:1142 msgid "starting server anyway\n" msgstr "სერვერის მაინც გაშვება\n" -#: pg_ctl.c:1151 +#: pg_ctl.c:1163 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "%s: სერვერის გადატვირთვის შეცდომა; გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1160 +#: pg_ctl.c:1172 #, c-format msgid "%s: could not send reload signal (PID: %d): %m\n" msgstr "%s: გადატვირთვის სიგნალის გაგზავნის შეცდომა (PID: %d): %m\n" -#: pg_ctl.c:1165 +#: pg_ctl.c:1177 msgid "server signaled\n" msgstr "სერვერს სიგნალი გაეგზავნა\n" -#: pg_ctl.c:1190 +#: pg_ctl.c:1202 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: სერვერის წახალისების შეცდომა; გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1198 +#: pg_ctl.c:1210 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s:სერვერის წახალისება შეუძლებელია; სერვერი უქმე რეჟიმში არაა\n" -#: pg_ctl.c:1208 +#: pg_ctl.c:1220 #, c-format msgid "%s: could not create promote signal file \"%s\": %m\n" msgstr "%s: წახალისების სიგნალის ფაილის (\"%s\") შექმნა შეუძლებელია: %m\n" -#: pg_ctl.c:1214 +#: pg_ctl.c:1226 #, c-format msgid "%s: could not write promote signal file \"%s\": %m\n" msgstr "%s: წახალისების სიგნალის ფაილში (\"%s\") ჩაწერა შეუძლებელია: %m\n" -#: pg_ctl.c:1222 +#: pg_ctl.c:1234 #, c-format msgid "%s: could not send promote signal (PID: %d): %m\n" msgstr "%s: წახალისების სიგნალის გაგზავნა შეუძლებელია(PID: %d): %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1237 #, c-format msgid "%s: could not remove promote signal file \"%s\": %m\n" msgstr "%s: წახალისების სიგნალის ფაილის (\"%s\") წაშლის შეცდომა: %m\n" -#: pg_ctl.c:1232 +#: pg_ctl.c:1244 msgid "waiting for server to promote..." msgstr "სერვერის დაწინაურების მოლოდინი..." -#: pg_ctl.c:1236 +#: pg_ctl.c:1248 msgid "server promoted\n" msgstr "სერვერი დაწინაურდა\n" -#: pg_ctl.c:1241 +#: pg_ctl.c:1253 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s სერვერი დროზე არ დაწინაურდა\n" -#: pg_ctl.c:1247 +#: pg_ctl.c:1259 msgid "server promoting\n" msgstr "სერვერის დაწინაურება\n" -#: pg_ctl.c:1271 +#: pg_ctl.c:1283 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: ჟურნალის ფაილების როტაცია შეუძლებელია; გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1281 +#: pg_ctl.c:1293 #, c-format msgid "%s: could not create log rotation signal file \"%s\": %m\n" msgstr "%s: ჟურნალის როტაციის სიგნალის ფაილის (\"%s\") შექმნა შეუძლებელია: %m\n" -#: pg_ctl.c:1287 +#: pg_ctl.c:1299 #, c-format msgid "%s: could not write log rotation signal file \"%s\": %m\n" msgstr "%s: ჟურნალის როტაციის სიგნალის ფაილში (\"%s\") ჩაწერა შეუძლებელია: %m\n" -#: pg_ctl.c:1295 +#: pg_ctl.c:1307 #, c-format msgid "%s: could not send log rotation signal (PID: %d): %m\n" msgstr "%s: ჟურნალის როტაციის სიგნალის გაგზავნის შეცდომა (PID: %d): %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1310 #, c-format msgid "%s: could not remove log rotation signal file \"%s\": %m\n" msgstr "%s: ჟურნალის როტაციის სიგნალის ფაილის (\"%s\") წაშლის შეცდომა : %m\n" -#: pg_ctl.c:1303 +#: pg_ctl.c:1315 msgid "server signaled to rotate log file\n" msgstr "სერვერმა გვანიშნა რომ ჟურნალის ფაილი დასატრიალებელია\n" -#: pg_ctl.c:1350 +#: pg_ctl.c:1362 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: გაშვებულია ერთმომხმარებლიანი სერვერი (PID: %d)\n" -#: pg_ctl.c:1364 +#: pg_ctl.c:1376 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: სერვერი გაშვებულია (PID: %d)\n" -#: pg_ctl.c:1380 +#: pg_ctl.c:1392 #, c-format msgid "%s: no server running\n" msgstr "%s: სერვერი გაშვებული არა\n" -#: pg_ctl.c:1397 +#: pg_ctl.c:1409 #, c-format msgid "%s: could not send signal %d (PID: %d): %m\n" msgstr "%s: სიგნალის (%d) გაგზავნის შეცდომა (PID: %d): %m\n" -#: pg_ctl.c:1428 +#: pg_ctl.c:1440 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: საკუთარი პროგრამის გამშვები ფაილის პოვნა შეუძლებელია\n" -#: pg_ctl.c:1438 +#: pg_ctl.c:1450 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: გამშვები ფაილი postgres არ არსებობს\n" -#: pg_ctl.c:1508 pg_ctl.c:1542 +#: pg_ctl.c:1520 pg_ctl.c:1554 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: სერვისის მმართველის გახსნის შეცდომა\n" -#: pg_ctl.c:1514 +#: pg_ctl.c:1526 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: სერვისი %s უკვე რეგისტრირებულია\n" -#: pg_ctl.c:1525 +#: pg_ctl.c:1537 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: სერვისის (\"%s\") რეგისტრაციის შეცდომა: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1548 +#: pg_ctl.c:1560 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: სერვისი %s უკვე რეგისტრირებულია\n" -#: pg_ctl.c:1555 +#: pg_ctl.c:1567 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: სერვისის (%s) გახსნა შეუძლებელია: შეცდომის კოდი: %lu\n" -#: pg_ctl.c:1564 +#: pg_ctl.c:1576 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: სერვისის (\"%s\") რეგისტრაციის მოხსნა შეუძლებელია: შეცდომის კოდი: %lu\n" -#: pg_ctl.c:1651 +#: pg_ctl.c:1663 msgid "Waiting for server startup...\n" msgstr "სერვერის გაშვების მოლოდინი...\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1666 msgid "Timed out waiting for server startup\n" msgstr "სერვერის გაშვების მოლოდინის ვადა გავიდა\n" -#: pg_ctl.c:1658 +#: pg_ctl.c:1670 msgid "Server started and accepting connections\n" msgstr "სერვერი გაეშვა და მზადაა შეერთებისთვის\n" -#: pg_ctl.c:1713 +#: pg_ctl.c:1725 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: სერვისის (%s) გაშვება შეუძლებელია: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1786 +#: pg_ctl.c:1798 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: პროცესის კოდის გახსნა შეუძლებელია: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1800 +#: pg_ctl.c:1812 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: შეცდომა SSID-ების გამოყოფისას: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1826 +#: pg_ctl.c:1838 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: შეზღუდული კოდის შექმნა ვერ მოხერხდა: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1908 +#: pg_ctl.c:1920 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: პრივილეგიებისთვის LUID-ების მიღება შეუძლებელია: შეცდომის კოდი: %lu\n" -#: pg_ctl.c:1916 pg_ctl.c:1931 +#: pg_ctl.c:1928 pg_ctl.c:1943 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: შეზღუდული კოდის ინფორმაციის მიღება ვერ მოხერხდა: შეცდომის კოდი %lu\n" -#: pg_ctl.c:1925 +#: pg_ctl.c:1937 #, c-format msgid "%s: out of memory\n" msgstr "%s: არასაკმარისი მეხსიერება\n" -#: pg_ctl.c:1955 +#: pg_ctl.c:1967 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'.\n" -#: pg_ctl.c:1963 +#: pg_ctl.c:1975 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -509,17 +517,17 @@ msgstr "" "%s წარმოადგენს პროგრამას PostgreSQL სერვერის ინიციალიზაციის, გაშვების, გაჩერების და კონტროლისთვის.\n" "\n" -#: pg_ctl.c:1964 +#: pg_ctl.c:1976 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_ctl.c:1965 +#: pg_ctl.c:1977 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D მონაცემებისსაქაღალდე] [-s] [-o პარამეტრები]\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1978 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -528,12 +536,12 @@ msgstr "" " %s start [-D მონაცემებსსაქაღალდე] [-l ფაილისსახელი] [-W] [-t წამი] [-s]\n" " [-o პარამეტრი] [-p ბილიკი] [-c]\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1980 #, 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:1969 +#: pg_ctl.c:1981 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -542,32 +550,32 @@ msgstr "" " %s restart [-D მონაცემებსსაქაღალდე] [-m გამორთვის-რეჟიმი] [-W] [-t წამი] [-s]\n" " [-o პარამეტრები] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1983 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D მონაცემებსსაქაღალდე] [-s]\n" -#: pg_ctl.c:1972 +#: pg_ctl.c:1984 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D მონაცემებსსაქაღალდე]\n" -#: pg_ctl.c:1973 +#: pg_ctl.c:1985 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D მონაცემებისსაქაღალდე] [-W] [-t წამი] [-s]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1986 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D მონაცემებისსაქაღალდე] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1987 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill სიგნალისსახელი PID\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1989 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -576,12 +584,12 @@ msgstr "" " %s register [-D მონაცემებსსაქაღალდე] [-N სერვისისსახელი] [-U მომხმარებელი] [-P პაროლი]\n" " [-S გაშვების-ტიპი] [-e წყარო] [-W] [-t წამი] [-s] [-o პარამეტრები]\n" -#: pg_ctl.c:1979 +#: pg_ctl.c:1991 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N სერვისისსახელი]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1994 #, c-format msgid "" "\n" @@ -590,52 +598,52 @@ msgstr "" "\n" "ზოგადი პარამეტრები:\n" -#: pg_ctl.c:1983 +#: pg_ctl.c:1995 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " [-D, --pgdata=]DATADIR ბაზის საცავის მდებარეობა\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1997 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr " -e SOURCE მოვლენების წყარო სერვისად გაშვებულობის დროს ჟურნალის ჩასაწერად\n" -#: pg_ctl.c:1987 +#: pg_ctl.c:1999 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent მხოლოდ შეცდომების გამოტანა. საინფორმაციო შეტყობინებები არ გამოჩნდება\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:2000 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=წამი -w პარამეტრის გამოყენებისას მითითებული ლოდინის დრო\n" -#: pg_ctl.c:1989 +#: pg_ctl.c:2001 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:2002 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait დალოდება ოპერაციის დასრულებამდე(ნაგულისხმები)\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:2003 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait არ დაელოდება ოპერაციის დასასრულს\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:2004 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:2005 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "თუ -D პარამეტრი მითითებული არაა, გამოყენებული იქნება გარემოს ცვლადი PGDATA.\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:2007 #, c-format msgid "" "\n" @@ -644,22 +652,22 @@ msgstr "" "\n" "გაშვების ან თავიდან გაშვების პარამეტრები:\n" -#: pg_ctl.c:1997 +#: pg_ctl.c:2009 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files postgres-ისთვის ბირთვის ფაილების ჩაწერის უფლების მიცემა\n" -#: pg_ctl.c:1999 +#: pg_ctl.c:2011 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files ამ პლატფორმაზე არ მუშაობს\n" -#: pg_ctl.c:2001 +#: pg_ctl.c:2013 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log=ფაილისსახელი სერვერის ჟურნალის ფაილში ჩაწერა (ან არსებული ფაილის ბოლოში მიწერა)\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:2014 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -668,12 +676,12 @@ msgstr "" " -o, --options=OPTIONS postgres-ისთვის (PostgreSQL სერვერი) ან initdb-სთვის გადასაცემი \n" " ბრძანების სტრიქონის პარამეტრები \n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2016 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p ბილიკი-POSTGRES-მდე ჩვეულებრივ საჭირო არაა\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -682,12 +690,12 @@ msgstr "" "\n" "გაჩერებისა და გადატვირთვის პარამეტრები:\n" -#: pg_ctl.c:2006 +#: pg_ctl.c:2018 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=რეჟიმი რეჟიმი შეიძლება იყოს: (ჭკვიანი)\"smart\", (ჩქარი)\"fast\", ან (ახლავე)\"immediate\"\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2020 #, c-format msgid "" "\n" @@ -696,22 +704,22 @@ msgstr "" "\n" "გამორთვის რეჟიმებია:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2021 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart გასვლა, როცა ყველა კლიენტი გაითიშება\n" -#: pg_ctl.c:2010 +#: pg_ctl.c:2022 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast პირდაპირ გასვლა, სწორად გამორთვით (ნაგულისხმები)\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2023 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr " immediate სრული გათიშვის გარეშე გასვლა; დიდი ალბათობით შემდეგ გაშვებაზე მონაცემების აღდგენა მოგიწევთ\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2025 #, c-format msgid "" "\n" @@ -720,7 +728,7 @@ msgstr "" "\n" "მოსაკლავად დაშვებული სიგნალის სახელები:\n" -#: pg_ctl.c:2017 +#: pg_ctl.c:2029 #, c-format msgid "" "\n" @@ -729,27 +737,27 @@ msgstr "" "\n" "რეგისტრაციისა და მისი მოხსნის პარამეტრები:\n" -#: pg_ctl.c:2018 +#: pg_ctl.c:2030 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N სერვისისსახელი სერვისის სახელი, რომელიც PostgreSQL სერვერი დარეგისტრირდება\n" -#: pg_ctl.c:2019 +#: pg_ctl.c:2031 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P პაროლი PostgreSQL სერვერის დასარეგისტრირებელი მომხმარებლის პაროლი\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2032 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U მომხმარებელი PostgreSQL სერვერის დასარეგისტრირებელი მომხმარებლის სახელი\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2033 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S გაშვების ტიპი PostgreSQL სერვერის გაშვების ტიპი\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2035 #, c-format msgid "" "\n" @@ -758,17 +766,17 @@ msgstr "" "\n" "გაშვების ტიპები:\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2036 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr " auto სერვისი ავტომატურად გაეშვება სისტემის ჩატვირთვისას (ნაგულისხმები)\n" -#: pg_ctl.c:2025 +#: pg_ctl.c:2037 #, c-format msgid " demand start service on demand\n" msgstr " demand საჭიროების მიხედვით\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2040 #, c-format msgid "" "\n" @@ -777,37 +785,37 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_ctl.c:2029 +#: pg_ctl.c:2041 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: pg_ctl.c:2054 +#: pg_ctl.c:2066 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: მუშაობის დასრულების უცნობი რეჟიმი: \"%s\"\n" -#: pg_ctl.c:2083 +#: pg_ctl.c:2095 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: სიგნალის უცნობი სახელი: \"%s\"\n" -#: pg_ctl.c:2100 +#: pg_ctl.c:2112 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: გაშვების უცნობი ტიპი \"%s\"\n" -#: pg_ctl.c:2156 +#: pg_ctl.c:2168 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: შეუძლებელია მონაცემების საქაღალდის პოვნა ბრძანებით \"%s\"\n" -#: pg_ctl.c:2179 +#: pg_ctl.c:2191 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: როგორც ჩანს, საკონტროლო ფაილი დაზიანებულია\n" -#: pg_ctl.c:2247 +#: pg_ctl.c:2259 #, c-format msgid "" "%s: cannot be run as root\n" @@ -818,32 +826,32 @@ msgstr "" "გთხოვთ შეხვიდეთ (მაგ. \"su\"-ის გამოყენებით) როგორც (არაპრივილეგირებული)\n" "მომხმარებელი, რომელიც ფლობს სერვერის პროცესს.\n" -#: pg_ctl.c:2319 +#: pg_ctl.c:2331 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: პარამეტრი -S ამ პლატფორმაზე მხარდაუჭერელია\n" -#: pg_ctl.c:2375 +#: pg_ctl.c:2387 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: ნაკლული არგუმენტები მოკვლის რეჟიმისთვის\n" -#: pg_ctl.c:2393 +#: pg_ctl.c:2405 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: ოპერაციის უცნობი რეჟიმი \"%s\"\n" -#: pg_ctl.c:2402 +#: pg_ctl.c:2414 #, c-format msgid "%s: too many command-line arguments (first is \"%s\")\n" msgstr "%s: მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")\n" -#: pg_ctl.c:2409 +#: pg_ctl.c:2421 #, c-format msgid "%s: no operation specified\n" msgstr "%s: ოპერაცია მითითებული არაა\n" -#: pg_ctl.c:2430 +#: pg_ctl.c:2442 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: ბაზის საქაღალდე და გარემოს ცვლადი PGDATA მითითებული არაა\n" diff --git a/src/bin/pg_ctl/po/ko.po b/src/bin/pg_ctl/po/ko.po index 03d2ac8190162..e6f6e8ccb5691 100644 --- a/src/bin/pg_ctl/po/ko.po +++ b/src/bin/pg_ctl/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_ctl (PostgreSQL) 16\n" +"Project-Id-Version: pg_ctl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:49+0000\n" -"PO-Revision-Date: 2023-05-26 13:21+0900\n" +"POT-Creation-Date: 2025-01-17 04:49+0000\n" +"PO-Revision-Date: 2025-01-16 14:12+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -15,38 +15,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../common/exec.c:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 정보 불일치" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일임: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "실행할 \"%s\" 파일을 찾을 수 없음" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 경로를 절대경로로 바꿀 수 없음: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령에서 읽을 수 없음: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령이 아무런 데이터도 반환하지 않음" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "메모리 부족" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 #, c-format msgid "out of memory\n" msgstr "메모리 부족\n" @@ -88,82 +107,82 @@ msgstr "하위 프로세스가 종료되었음, 알수 없는 상태 %d" #: ../../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "현재 작업 디렉터리를 알 수 없음: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "현재 작업 디렉터리를 알 수 없음: %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: \"%s\" 디렉터리 없음\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: \"%s\" 디렉터리에 액세스할 수 없음: %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: \"%s\" 디렉터리에 액세스할 수 없음: %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: 지정한 \"%s\" 디렉터리는 데이터베이스 클러스트 디렉터리가 아님\n" -#: pg_ctl.c:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s: \"%s\" PID 파일을 열 수 없음: %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s: \"%s\" PID 파일을 열 수 없음: %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: \"%s\" PID 파일에 내용이 없습니다\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, c-format msgid "%s: invalid data in PID file \"%s\"\n" msgstr "%s: \"%s\" PID 파일이 비었음\n" -#: pg_ctl.c:458 pg_ctl.c:500 +#: pg_ctl.c:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s: 서버를 시작 할 수 없음: %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s: 서버를 시작 할 수 없음: %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, c-format -msgid "%s: could not start server due to setsid() failure: %s\n" -msgstr "%s: setsid() 실패로 서버를 시작 할 수 없음: %s\n" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s: setsid() 실패로 서버를 시작 할 수 없음: %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: \"%s\" 로그 파일을 열 수 없음: %s\n" +msgid "%s: could not open log file \"%s\": %m\n" +msgstr "%s: \"%s\" 로그 파일을 열 수 없음: %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: 서버를 시작할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "" "%s: 코어 파일 크기 한도를 설정할 수 없음, 하드 디스크 용량 초과로 허용되지 않" "음\n" -#: pg_ctl.c:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: \"%s\" 파일을 읽을 수 없음\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: \"%s\" 환경설정파일은 반드시 한 줄을 가져야한다?\n" -#: pg_ctl.c:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s: stop 시그널을 보낼 수 없음 (PID: %d): %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s: stop 시그널을 보낼 수 없음 (PID: %d): %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " @@ -172,45 +191,45 @@ msgstr "" "\"%s\" 프로그램이 %s 작업에서 필요합니다. 그런데, 이 파일이\n" "\"%s\" 파일이 있는 디렉터리안에 없습니다.\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "" "\"%s\" 프로그램을 \"%s\" 작업 때문에 찾았지만 이 파일은\n" "%s 프로그램의 버전과 다릅니다.\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: 데이터베이스 초기화 실패\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: 다른 서버가 가동 중인 것 같음; 어째든 서버 가동을 시도함\n" -#: pg_ctl.c:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "서버를 시작하기 위해 기다리는 중..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " 완료\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "서버 시작됨\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " 중지 기다리는 중\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: 서버가 제 시간에 시작되지 못했음\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "" "%s: could not start server\n" @@ -219,42 +238,42 @@ msgstr "" "%s: 서버를 시작 할 수 없음\n" "로그 출력을 살펴보십시오.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "서버를 시작합니다\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: \"%s\" PID 파일이 없습니다\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "서버가 실행 중입니까?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: 서버 중지 실패; 단일 사용자 서버가 실행 중 (PID: %d)\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "서버를 멈춥니다\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "서버를 멈추기 위해 기다리는 중..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " 실패\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: 서버를 멈추지 못했음\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -262,239 +281,239 @@ msgstr "" "힌트: \"-m fast\" 옵션을 사용하면 접속한 세션들을 즉시 정리합니다.\n" "이 옵션을 사용하지 않으면 접속한 세션들 스스로 끊을 때까지 기다립니다.\n" -#: pg_ctl.c:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "서버 멈추었음\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "어째든 서버를 시작해 봅니다\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "" "%s: 서버를 다시 시작 할 수 없음; 단일사용자 서버가 실행 중임 (PID: %d)\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 msgid "Please terminate the single-user server and try again.\n" msgstr "단일 사용자 서버를 멈추고 다시 시도하십시오.\n" -#: pg_ctl.c:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: 이전 서버 프로세스(PID: %d)가 없어졌습니다\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "어째든 서버를 시작합니다\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "" "%s: 서버 환경설정을 다시 불러올 수 없음; 단일 사용자 서버가 실행 중임 (PID: " "%d)\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s: reload 시그널을 보낼 수 없음 (PID: %d): %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s: reload 시그널을 보낼 수 없음 (PID: %d): %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "서버가 시스템 시그널을 받았음\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: 운영서버 전환 실패; 단일사용자 서버가 실행 중(PID: %d)\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: 운영서버 전환 실패; 서버가 대기 모드로 상태가 아님\n" -#: pg_ctl.c:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일을 만들 수 없음: %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일을 만들 수 없음: %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일에 쓰기 실패: %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일에 쓰기 실패: %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s: 운영전환 시그널을 서버(PID: %d)로 보낼 수 없음: %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s: 운영전환 시그널을 서버(PID: %d)로 보낼 수 없음: %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일을 지울 수 없음: %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s: 운영전환 시그널 파일인 \"%s\" 파일을 지울 수 없음: %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "서버를 운영 모드로 전환하는 중 ..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "운영 모드 전환 완료\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: 서버를 제 시간에 운영 모드로 전환하지 못했음\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "서버를 운영 모드로 전환합니다\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "" "%s: 서버 로그 파일을 바꿀 수 없음; 단일 사용자 서버가 실행 중임 (PID: %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" -msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일을 만들 수 없음: %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" +msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일을 만들 수 없음: %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" -msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일에 쓰기 실패: %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" +msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일에 쓰기 실패: %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s: 로그 전환 시그널을 보낼 수 없음 (PID: %d): %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s: 로그 전환 시그널을 보낼 수 없음 (PID: %d): %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" -msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일을 지울 수 없음: %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" +msgstr "%s: 로그 전환 시그널 파일인 \"%s\" 파일을 지울 수 없음: %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "서버가 로그 전환 시그널을 받았음\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: 단일사용자 서버가 실행 중임 (PID: %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: 서버가 실행 중임 (PID: %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s: 가동 중인 서버가 없음\n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s: %d 시그널을 보낼 수 없음 (PID: %d): %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s: %d 시그널을 보낼 수 없음 (PID: %d): %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: 실행 가능한 프로그램을 찾을 수 없습니다\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: 실행 가능한 postgres 프로그램을 찾을 수 없음\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: 서비스 관리자를 열 수 없음\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: \"%s\" 서비스가 이미 등록 되어 있음\n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: \"%s\" 서비스를 등록할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: \"%s\" 서비스가 등록되어 있지 않음\n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: \"%s\" 서비스를 열 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1564 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: \"%s\" 서비스를 서비스 목록에서 뺄 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "서버를 시작하기 위해 기다리는 중...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "서버 시작을 기다리는 동안 시간 초과됨\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "서버가 시작되었으며 연결을 허용함\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: \"%s\" 서비스를 시작할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1789 +#: pg_ctl.c:1786 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: 프로세스 토큰을 열 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: SID를 할당할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: restricted token을 만들 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1911 +#: pg_ctl.c:1908 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: 접근 권한용 LUID를 구할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: 토큰 정보를 구할 수 없음: 오류 코드 %lu\n" -#: pg_ctl.c:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s: 메모리 부족\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "보다 자세한 사용법은 \"%s --help\"\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1963 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -503,17 +522,17 @@ msgstr "" "%s 프로그램은 PostgreSQL 서버를 초기화, 시작, 중지, 제어하는 도구입니다.\n" "\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D 데이터디렉터리] [-s] [-o 옵션]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1966 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -522,12 +541,12 @@ msgstr "" " %s start [-D 데이터디렉터리] [-l 파일이름] [-W] [-t 초] [-s]\n" " [-o 옵션] [-p 경로] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, 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:1972 +#: pg_ctl.c:1969 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -536,32 +555,32 @@ msgstr "" " %s restart [-D 데이터디렉터리] [-m 중지방법] [-W] [-t 초] [-s]\n" " [-o 옵션] [-c]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D 데이터디렉터리] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D 데이터디렉터리]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D 데이터디렉터리] [-W] [-t 초] [-s]\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D 데이터디렉터리] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill 시그널이름 PID\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -572,12 +591,12 @@ msgstr "" "호]\n" " [-S 시작형태] [-e SOURCE] [-w] [-t 초] [-o 옵션]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N 서비스이름]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "" "\n" @@ -586,56 +605,56 @@ msgstr "" "\n" "일반 옵션들:\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr "" " -D, --pgdata=데이터디렉터리 데이터베이스 자료가 저장되어있는 디렉터리\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:1985 #, c-format msgid "" " -e SOURCE event source for logging when running as a service\n" msgstr "" " -e SOURCE 서비스가 실행 중일때 쌓을 로그를 위한 이벤트 소스\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:1987 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr "" " -s, --silent 일반적인 메시지는 보이지 않고, 오류만 보여줌\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:1988 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=초 -w 옵션 사용 시 대기 시간(초)\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait 작업이 끝날 때까지 기다림 (기본값)\n" -#: pg_ctl.c:1994 +#: pg_ctl.c:1991 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait 작업이 끝날 때까지 기다리지 않음\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "-D 옵션을 사용하지 않으면, PGDATA 환경변수값을 사용함.\n" -#: pg_ctl.c:1998 +#: pg_ctl.c:1995 #, c-format msgid "" "\n" @@ -644,22 +663,22 @@ msgstr "" "\n" "start, restart 때 사용할 수 있는 옵션들:\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files 코어 덤프 파일을 만듬\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:1999 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files 이 플랫폼에서는 사용할 수 없음\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2001 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log=로그파일 서버 로그를 이 로그파일에 기록함\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2002 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -668,12 +687,12 @@ msgstr "" " -o, --options=옵션들 PostgreSQL 서버프로그램인 postgres나 initdb\n" " 명령에서 사용할 명령행 옵션들\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p PATH-TO-POSTGRES 보통은 필요치 않음\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2005 #, c-format msgid "" "\n" @@ -682,14 +701,14 @@ msgstr "" "\n" "stop, restart 때 사용 할 수 있는 옵션들:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, c-format msgid "" " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr "" " -m, --mode=모드 모드는 \"smart\", \"fast\", \"immediate\" 중 하나\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2008 #, c-format msgid "" "\n" @@ -698,18 +717,18 @@ msgstr "" "\n" "중지방법 설명:\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart 모든 클라이언트의 연결이 끊기게 되면 중지 됨\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2010 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr "" " fast 클라이언트의 연결을 강제로 끊고 정상적으로 중지 됨 (기본값)\n" -#: pg_ctl.c:2014 +#: pg_ctl.c:2011 #, c-format msgid "" " immediate quit without complete shutdown; will lead to recovery on " @@ -717,7 +736,7 @@ msgid "" msgstr "" " immediate 그냥 무조건 중지함; 다시 시작할 때 복구 작업을 할 수도 있음\n" -#: pg_ctl.c:2016 +#: pg_ctl.c:2013 #, c-format msgid "" "\n" @@ -726,7 +745,7 @@ msgstr "" "\n" "사용할 수 있는 중지용(for kill) 시그널 이름:\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -735,28 +754,28 @@ msgstr "" "\n" "서비스 등록/제거용 옵션들:\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, c-format msgid "" " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N SERVICENAME 서비스 목록에 등록될 PostgreSQL 서비스 이름\n" -#: pg_ctl.c:2022 +#: pg_ctl.c:2019 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P PASSWORD 이 서비스를 실행할 사용자의 암호\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2020 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U USERNAME 이 서비스를 실행할 사용자 이름\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2021 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S 시작형태 서비스로 등록된 PostgreSQL 서버 시작 방법\n" -#: pg_ctl.c:2026 +#: pg_ctl.c:2023 #, c-format msgid "" "\n" @@ -765,18 +784,18 @@ msgstr "" "\n" "시작형태 설명:\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, c-format msgid "" " auto start service automatically during system startup (default)\n" msgstr " auto 시스템이 시작되면 자동으로 서비스가 시작됨 (초기값)\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand 수동 시작\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "" "\n" @@ -785,37 +804,37 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: 잘못된 중지 방법 \"%s\"\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: 잘못된 시그널 이름 \"%s\"\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: 알 수 없는 시작형태 \"%s\"\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: \"%s\" 명령에서 사용할 데이터 디렉터리를 알 수 없음\n" -#: pg_ctl.c:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: 컨트롤 파일이 깨졌음\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "" "%s: cannot be run as root\n" @@ -826,32 +845,32 @@ msgstr "" "시스템관리자 권한이 없는, 서버프로세스의 소유주가 될 일반 사용자로\n" "로그인 해서(\"su\", \"runas\" 같은 명령 이용) 실행하십시오.\n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: -S 옵션은 이 운영체제에서는 지원하지 않음\n" -#: pg_ctl.c:2370 -#, c-format -msgid "%s: too many command-line arguments (first is \"%s\")\n" -msgstr "%s: 너무 많은 명령행 인수들 (시작 \"%s\")\n" - -#: pg_ctl.c:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: kill 작업에 필요한 인수가 빠졌습니다\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: 알 수 없는 작업 모드 \"%s\"\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, c-format +msgid "%s: too many command-line arguments (first is \"%s\")\n" +msgstr "%s: 너무 많은 명령행 인수들 (시작 \"%s\")\n" + +#: pg_ctl.c:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s: 수행할 작업을 지정하지 않았습니다\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, c-format msgid "" "%s: no database directory specified and environment variable PGDATA unset\n" diff --git a/src/bin/pg_ctl/po/ru.po b/src/bin/pg_ctl/po/ru.po index a5d7ee2b74815..8f9a0a24aef49 100644 --- a/src/bin/pg_ctl/po/ru.po +++ b/src/bin/pg_ctl/po/ru.po @@ -6,13 +6,13 @@ # Sergey Burladyan , 2009, 2012. # Andrey Sudnik , 2010. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_ctl (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2023-08-29 10:20+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-07 06:47+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -22,38 +22,57 @@ msgstr "" "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:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "нехватка памяти" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:830 ../../port/path.c:867 ../../port/path.c:884 #, c-format msgid "out of memory\n" msgstr "нехватка памяти\n" @@ -91,133 +110,133 @@ msgstr "дочерний процесс завершён по сигналу %d: #: ../../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "дочерний процесс завершился с нераспознанным состоянием %d" +msgstr "дочерний процесс завершился с нераспознанным кодом состояния %d" -#: ../../port/path.c:775 +#: ../../port/path.c:852 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "не удалось определить текущий рабочий каталог: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "не удалось определить текущий рабочий каталог: %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: каталог \"%s\" не существует\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: ошибка доступа к каталогу \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: ошибка при обращении к каталогу \"%s\": %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: каталог \"%s\" не содержит структуры кластера баз данных\n" -#: pg_ctl.c:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s: не удалось открыть файл PID \"%s\": %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s: не удалось открыть файл PID \"%s\": %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: файл PID \"%s\" пуст\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, 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:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s: не удалось запустить сервер: %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s: не удалось запустить сервер: %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, c-format -msgid "%s: could not start server due to setsid() failure: %s\n" -msgstr "%s: не удалось запустить сервер из-за ошибки в setsid(): %s\n" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s: не удалось запустить сервер из-за ошибки в setsid(): %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: не удалось открыть файл протокола \"%s\": %s\n" +msgid "%s: could not open log file \"%s\": %m\n" +msgstr "%s: не удалось открыть файл протокола \"%s\": %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: не удалось запустить сервер (код ошибки: %lu)\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "" "%s: не удалось ограничить размер дампа памяти; запрещено жёстким " "ограничением\n" -#: pg_ctl.c:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: не удалось прочитать файл \"%s\"\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: в файле параметров \"%s\" должна быть ровно одна строка\n" -#: pg_ctl.c:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s: не удалось отправить сигнал остановки (PID: %d): %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s: не удалось отправить сигнал остановки (PID: %d): %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " "\"%s\"\n" msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "" "программа \"%s\" найдена программой \"%s\", но её версия отличается от " "версии %s\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: сбой при инициализации системы баз данных\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "" "%s: возможно, уже работает другой сервер; всё же пробуем запустить этот " "сервер\n" -#: pg_ctl.c:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "ожидание запуска сервера..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " готово\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "сервер запущен\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " прекращение ожидания\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: сервер не запустился за отведённое время\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "" "%s: could not start server\n" @@ -226,43 +245,43 @@ msgstr "" "%s: не удалось запустить сервер\n" "Изучите протокол выполнения.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "сервер запускается\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: файл PID \"%s\" не существует\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "Запущен ли сервер?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "" "%s: остановить сервер с PID %d нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "сервер останавливается\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "ожидание завершения работы сервера..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " ошибка\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: сервер не останавливается\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -270,243 +289,243 @@ msgstr "" "ПОДСКАЗКА: Параметр \"-m fast\" может сбросить сеансы принудительно,\n" "не дожидаясь, пока они завершатся сами.\n" -#: pg_ctl.c:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "сервер остановлен\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "производится попытка запуска сервера в любом случае\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "" "%s: перезапустить сервер с PID %d нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 msgid "Please terminate the single-user server and try again.\n" msgstr "Пожалуйста, остановите его и повторите попытку.\n" -#: pg_ctl.c:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: похоже, что старый серверный процесс (PID: %d) исчез\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "сервер запускается, несмотря на это\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "" "%s: перезагрузить сервер с PID %d нельзя - он запущен в монопольном режиме\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s: не удалось отправить сигнал перезагрузки (PID: %d): %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s: не удалось отправить сигнал перезагрузки (PID: %d): %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "сигнал отправлен серверу\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "" "%s: повысить сервер с PID %d нельзя - он выполняется в монопольном режиме\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: повысить сервер нельзя - он работает не в режиме резерва\n" -#: pg_ctl.c:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s: не удалось создать файл \"%s\" с сигналом к повышению: %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s: не удалось создать файл \"%s\" с сигналом к повышению: %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s: не удалось записать файл \"%s\" с сигналом к повышению: %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s: не удалось записать файл \"%s\" с сигналом к повышению: %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s: не удалось отправить сигнал к повышению (PID: %d): %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s: не удалось отправить сигнал к повышению (PID: %d): %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s: ошибка при удалении файла \"%s\" с сигналом к повышению: %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s: ошибка при удалении файла \"%s\" с сигналом к повышению: %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "ожидание повышения сервера..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "сервер повышен\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: повышение сервера не завершилось за отведённое время\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "сервер повышается\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "" "%s: не удалось прокрутить файл журнала; сервер работает в монопольном режиме " "(PID: %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" msgstr "" -"%s: не удалось создать файл \"%s\" с сигналом к прокрутке журнала: %s\n" +"%s: не удалось создать файл \"%s\" с сигналом к прокрутке журнала: %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" msgstr "" -"%s: не удалось записать файл \"%s\" с сигналом к прокрутке журнала: %s\n" +"%s: не удалось записать файл \"%s\" с сигналом к прокрутке журнала: %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s: не удалось отправить сигнал к прокрутке журнала (PID: %d): %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s: не удалось отправить сигнал к прокрутке журнала (PID: %d): %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" msgstr "" -"%s: ошибка при удалении файла \"%s\" с сигналом к прокрутке журнала: %s\n" +"%s: ошибка при удалении файла \"%s\" с сигналом к прокрутке журнала: %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "сигнал для прокрутки файла журнала отправлен серверу\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: сервер работает в монопольном режиме (PID: %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: сервер работает (PID: %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s: сервер не работает\n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s: не удалось отправить сигнал %d (PID: %d): %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s: не удалось отправить сигнал %d (PID: %d): %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: не удалось найти свой исполняемый файл\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: не удалось найти исполняемый файл postgres\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: не удалось открыть менеджер служб\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: служба \"%s\" уже зарегистрирована\n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: не удалось зарегистрировать службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: служба \"%s\" не зарегистрирована\n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: не удалось открыть службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1564 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: ошибка при удалении службы \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "Ожидание запуска сервера...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "Превышено время ожидания запуска сервера\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "Сервер запущен и принимает подключения\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: не удалось запустить службу \"%s\" (код ошибки: %lu)\n" -#: pg_ctl.c:1789 +#: pg_ctl.c:1786 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: не удалось открыть маркер процесса (код ошибки: %lu)\n" -#: pg_ctl.c:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: не удалось подготовить структуры SID (код ошибки: %lu)\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: не удалось создать ограниченный маркер (код ошибки: %lu)\n" -#: pg_ctl.c:1911 +#: pg_ctl.c:1908 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: не удалось получить LUID для привилегий (код ошибки: %lu)\n" -#: pg_ctl.c:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: не удалось получить информацию о маркере (код ошибки: %lu)\n" -#: pg_ctl.c:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s: нехватка памяти\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1963 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -516,17 +535,17 @@ msgstr "" "PostgreSQL.\n" "\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D КАТАЛОГ-ДАННЫХ] [-s] [-o ПАРАМЕТРЫ]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1966 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -535,13 +554,13 @@ msgstr "" " %s start [-D КАТАЛОГ-ДАННЫХ] [-l ИМЯ-ФАЙЛА] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРЫ] [-p ПУТЬ] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, 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:1972 +#: pg_ctl.c:1969 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -550,32 +569,32 @@ msgstr "" " %s restart [-D КАТАЛОГ-ДАННЫХ] [-m РЕЖИМ-ОСТАНОВКИ] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРЫ] [-c]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D КАТАЛОГ-ДАННЫХ] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D КАТАЛОГ-ДАННЫХ]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D КАТАЛОГ-ДАННЫХ] [-W] [-t СЕК] [-s]\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D КАТАЛОГ-ДАННЫХ] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill СИГНАЛ PID\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -587,12 +606,12 @@ msgstr "" " [-S ТИП-ЗАПУСКА] [-e ИСТОЧНИК] [-W] [-t СЕК] [-s] [-o " "ПАРАМЕТРЫ]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N ИМЯ-СЛУЖБЫ]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "" "\n" @@ -601,12 +620,12 @@ msgstr "" "\n" "Общие параметры:\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=КАТАЛОГ расположение хранилища баз данных\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:1985 #, c-format msgid "" " -e SOURCE event source for logging when running as a service\n" @@ -615,45 +634,45 @@ msgstr "" "журнал,\n" " когда сервер работает в виде службы\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:1987 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr "" " -s, --silent выводить только ошибки, без информационных " "сообщений\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:1988 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr "" " -t, --timeout=СЕК время ожидания при использовании параметра -w\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait ждать завершения операции (по умолчанию)\n" -#: pg_ctl.c:1994 +#: pg_ctl.c:1991 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait не ждать завершения операции\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Если параметр -D опущен, используется переменная окружения PGDATA.\n" -#: pg_ctl.c:1998 +#: pg_ctl.c:1995 #, c-format msgid "" "\n" @@ -662,24 +681,24 @@ msgstr "" "\n" "Параметры запуска и перезапуска:\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files указать postgres создавать дампы памяти\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:1999 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files неприменимо на этой платформе\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2001 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr "" " -l, --log=ФАЙЛ записывать (или добавлять) протокол сервера в " "ФАЙЛ.\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2002 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -689,12 +708,12 @@ msgstr "" "PostgreSQL)\n" " или initdb параметры командной строки\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p ПУТЬ-К-POSTGRES обычно не требуется\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2005 #, c-format msgid "" "\n" @@ -703,14 +722,14 @@ msgstr "" "\n" "Параметры остановки и перезапуска:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, c-format msgid "" " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr "" " -m, --mode=РЕЖИМ может быть \"smart\", \"fast\" или \"immediate\"\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2008 #, c-format msgid "" "\n" @@ -719,17 +738,17 @@ msgstr "" "\n" "Режимы остановки:\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart закончить работу после отключения всех клиентов\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2010 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast закончить сразу, в штатном режиме (по умолчанию)\n" -#: pg_ctl.c:2014 +#: pg_ctl.c:2011 #, c-format msgid "" " immediate quit without complete shutdown; will lead to recovery on " @@ -738,7 +757,7 @@ msgstr "" " immediate закончить немедленно, в экстренном режиме; влечёт за собой\n" " восстановление при перезапуске\n" -#: pg_ctl.c:2016 +#: pg_ctl.c:2013 #, c-format msgid "" "\n" @@ -747,7 +766,7 @@ msgstr "" "\n" "Разрешённые сигналы для команды kill:\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -756,30 +775,30 @@ msgstr "" "\n" "Параметры для регистрации и удаления:\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, c-format msgid "" " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N ИМЯ-СЛУЖБЫ имя службы для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2022 +#: pg_ctl.c:2019 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr "" " -P ПАРОЛЬ пароль учётной записи для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2020 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr "" " -U ПОЛЬЗОВАТЕЛЬ имя пользователя для регистрации сервера PostgreSQL\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2021 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S ТИП-ЗАПУСКА тип запуска службы сервера PostgreSQL\n" -#: pg_ctl.c:2026 +#: pg_ctl.c:2023 #, c-format msgid "" "\n" @@ -788,7 +807,7 @@ msgstr "" "\n" "Типы запуска:\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, c-format msgid "" " auto start service automatically during system startup (default)\n" @@ -796,12 +815,12 @@ msgstr "" " auto запускать службу автоматически при старте системы (по " "умолчанию)\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand запускать службу по требованию\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "" "\n" @@ -810,37 +829,37 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: неизвестный режим остановки \"%s\"\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: нераспознанное имя сигнала \"%s\"\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: нераспознанный тип запуска \"%s\"\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: не удалось определить каталог данных с помощью команды \"%s\"\n" -#: pg_ctl.c:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: управляющий файл, по-видимому, испорчен\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "" "%s: cannot be run as root\n" @@ -851,32 +870,32 @@ msgstr "" "Пожалуйста, переключитесь на обычного пользователя (например,\n" "используя \"su\"), который будет запускать серверный процесс.\n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: параметр -S не поддерживается в этой ОС\n" -#: pg_ctl.c:2370 -#, c-format -msgid "%s: too many command-line arguments (first is \"%s\")\n" -msgstr "%s: слишком много аргументов командной строки (первый: \"%s\")\n" - -#: pg_ctl.c:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: отсутствуют аргументы для режима kill\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: нераспознанный режим работы \"%s\"\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, c-format +msgid "%s: too many command-line arguments (first is \"%s\")\n" +msgstr "%s: слишком много аргументов командной строки (первый: \"%s\")\n" + +#: pg_ctl.c:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s: команда не указана\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, c-format msgid "" "%s: no database directory specified and environment variable PGDATA unset\n" @@ -1009,10 +1028,6 @@ msgstr "" #~ msgid "child process was terminated by signal %s" #~ msgstr "дочерний процесс завершён по сигналу %s" -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "не удалось перейти в каталог \"%s\": %m" - #, c-format #~ msgid "could not identify current directory: %m" #~ msgstr "не удалось определить текущий каталог: %m" diff --git a/src/bin/pg_ctl/po/sv.po b/src/bin/pg_ctl/po/sv.po index 3ab0f950e7026..ff52b8cb20915 100644 --- a/src/bin/pg_ctl/po/sv.po +++ b/src/bin/pg_ctl/po/sv.po @@ -1,5 +1,5 @@ # Swedish message translation file for pg_ctl -# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Magnus Hagander , 2010. # Mats Erik Andersson , 2013, 2014. # @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-01 14:18+0000\n" -"PO-Revision-Date: 2023-08-30 09:01+0200\n" +"POT-Creation-Date: 2024-07-12 14:20+0000\n" +"PO-Revision-Date: 2024-07-12 19:04+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -19,38 +19,57 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../common/exec.c:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "slut på minne" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 #, c-format msgid "out of memory\n" msgstr "slut på minne\n" @@ -92,121 +111,121 @@ msgstr "barnprocess avslutade med okänd statuskod %d" #: ../../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "kunde inte fastställa nuvarande arbetskatalog: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "kunde inte fastställa nuvarande arbetskatalog: %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: katalogen \"%s\" existerar inte\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: kunde inte komma åt katalogen \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: kunde inte komma åt katalogen \"%s\": %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, 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:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s: kunde inte öppna PID-fil \"%s\": %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s: kunde inte öppna PID-fil \"%s\": %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: PID-filen \"%s\" är tom\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, 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:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s: kunde inte starta servern: %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s: kunde inte starta servern: %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, 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" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s: kunde inte starta servern då setsid() misslyckades: %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: kunde inte öppna logg-fil \"%s\": %s\n" +msgid "%s: could not open log file \"%s\": %m\n" +msgstr "%s: kunde inte öppna logg-fil \"%s\": %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: kunde inte starta servern: felkod %lu\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, 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:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: kunde inte läsa filen \"%s\"\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, 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:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s: kunde inte skicka stopp-signal (PID: %d): %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s: kunde inte skicka stopp-signal (PID: %d): %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: skapande av databaskluster misslyckades\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, 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:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "väntar på att servern skall starta..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " klar\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "servern startad\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " avslutade väntan\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: servern startade inte i tid\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "" "%s: could not start server\n" @@ -215,42 +234,42 @@ msgstr "" "%s: kunde inte starta servern\n" "Undersök logg-utskriften.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "servern startar\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: PID-filen \"%s\" finns inte\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "Kör servern?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: Kan inte stanna servern. En-användar-server i drift (PID: %d).\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "servern stänger ner\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "väntar på att servern skall stänga ner..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " misslyckades\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: servern stänger inte ner\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "" "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" @@ -258,235 +277,235 @@ msgstr "" "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:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "servern är stoppad\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "försöker starta servern ändå\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "%s: kan inte starta om servern. En-användar-server kör (PID: %d).\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 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:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: gamla serverprocessen (PID: %d) verkar vara borta\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "startar servern ändå\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "%s: kan inte ladda om servern; en-användar-server kör (PID: %d)\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s: kunde inte skicka signalen \"reload\" (PID: %d): %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s: kunde inte skicka signalen \"reload\" (PID: %d): %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "servern är signalerad\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: kan inte befordra servern; en-användar-server kör (PID: %d)\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, 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:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s: kunde inte skapa befordringssignalfil \"%s\": %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s: kunde inte skapa befordringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s: kunde inte skriva befordringssignalfil \"%s\": %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s: kunde inte skriva befordringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s: kunde inte skicka befordringssignal (PID: %d): %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s: kunde inte skicka befordringssignal (PID: %d): %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s: kunde inte ta bort befordringssignalfil \"%s\": %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s: kunde inte ta bort befordringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "väntar på att servern skall befordras..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "servern befordrad\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: servern befordrades inte i tid\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "servern befordras\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: kan inte rotera loggfil; en-användar-server kör (PID: %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" -msgstr "%s: kunde inte skapa loggroteringssignalfil \"%s\": %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" +msgstr "%s: kunde inte skapa loggroteringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" -msgstr "%s: kunde inte skriva loggroteringssignalfil \"%s\": %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" +msgstr "%s: kunde inte skriva loggroteringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s: kunde inte skicka signalen för loggrotering (PID: %d): %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s: kunde inte skicka signalen för loggrotering (PID: %d): %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" -msgstr "%s: kunde inte ta bort loggroteringssignalfil \"%s\": %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" +msgstr "%s: kunde inte ta bort loggroteringssignalfil \"%s\": %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "servern är signalerad att rotera loggfil\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: en-användar-server kör. (PID: %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: servern kör (PID: %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s: ingen server kör\n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s: kunde inte skicka signal %d (PID: %d): %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s: kunde inte skicka signal %d (PID: %d): %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, 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:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: kunde inte hitta körbar postgres.\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: kunde inte öppna tjänstehanteraren\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: tjänsten \"%s\" är redan registrerad\n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, 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:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: tjänsten \"%s\" är inte registrerad\n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, 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:1567 +#: pg_ctl.c:1564 #, 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:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "Väntar på serverstart...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "Tidsfristen ute vid väntan på serverstart\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "Server startad och accepterar nu anslutningar\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, 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:1789 +#: pg_ctl.c:1786 #, 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:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: kunde inte tilldela SID: felkod %lu\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, 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:1911 +#: pg_ctl.c:1908 #, 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:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, 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:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s: slut på minne\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, 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:1966 +#: pg_ctl.c:1963 #, c-format msgid "" "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n" @@ -496,17 +515,17 @@ msgstr "" "PostgreSQL-tjänsten.\n" "\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, 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:1969 +#: pg_ctl.c:1966 #, c-format msgid "" " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" @@ -515,12 +534,12 @@ msgstr "" " %s start [-D DATAKAT] [-l FILNAMN] [-W] [-t SEK] [-s]\n" " [-o FLAGGOR] [-p SOKVÄG] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, 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:1972 +#: pg_ctl.c:1969 #, c-format msgid "" " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" @@ -529,32 +548,32 @@ msgstr "" " %s restart [-D DATAKAT] [-m STÄNGNINGSMETOD] [-W] [-t SEK] [-s]\n" " [-o FLAGGOR] [-c]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D DATAKAT] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATAKAT]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, 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:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATAKAT] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill SIGNALNAMN PID\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid "" " %s register [-D DATADIR] [-N SERVICENAME] [-U USERNAME] [-P PASSWORD]\n" @@ -563,12 +582,12 @@ msgstr "" " %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:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N TJÄNSTNAMN]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "" "\n" @@ -577,52 +596,52 @@ msgstr "" "\n" "Gemensamma flaggor:\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, 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:1988 +#: pg_ctl.c:1985 #, 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:1990 +#: pg_ctl.c:1987 #, 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:1991 +#: pg_ctl.c:1988 #, 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:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, 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:1994 +#: pg_ctl.c:1991 #, 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:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, 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:1998 +#: pg_ctl.c:1995 #, c-format msgid "" "\n" @@ -631,22 +650,22 @@ msgstr "" "\n" "Flaggor för start eller omstart:\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, 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:2002 +#: pg_ctl.c:1999 #, 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:2004 +#: pg_ctl.c:2001 #, 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:2005 +#: pg_ctl.c:2002 #, c-format msgid "" " -o, --options=OPTIONS command line options to pass to postgres\n" @@ -655,14 +674,14 @@ msgstr "" " -o, --options=OPTIONS kommandoradsflaggor som skickas vidare till postgres\n" " (PostgreSQL-serverns körbara fil) eller till initdb\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, 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:2008 +#: pg_ctl.c:2005 #, c-format msgid "" "\n" @@ -671,12 +690,12 @@ msgstr "" "\n" "Flaggor för stopp eller omstart:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, 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:2011 +#: pg_ctl.c:2008 #, c-format msgid "" "\n" @@ -685,22 +704,22 @@ msgstr "" "\n" "Stängningsmetoder är:\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, 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:2013 +#: pg_ctl.c:2010 #, 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:2014 +#: pg_ctl.c:2011 #, 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:2016 +#: pg_ctl.c:2013 #, c-format msgid "" "\n" @@ -709,7 +728,7 @@ msgstr "" "\n" "Tillåtna signalnamn för kommando \"kill\":\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "" "\n" @@ -718,27 +737,27 @@ msgstr "" "\n" "Flaggor för registrering och avregistrering:\n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, 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:2022 +#: pg_ctl.c:2019 #, 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:2023 +#: pg_ctl.c:2020 #, 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:2024 +#: pg_ctl.c:2021 #, 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:2026 +#: pg_ctl.c:2023 #, c-format msgid "" "\n" @@ -747,17 +766,17 @@ msgstr "" "\n" "Startmetoder är:\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, 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:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand starta tjänsten vid behov\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "" "\n" @@ -766,37 +785,37 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: ogiltig stängningsmetod \"%s\"\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: ogiltigt signalnamn \"%s\"\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: ogiltigt startvillkor \"%s\"\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, 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:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: kontrollfilen verkar vara trasig\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "" "%s: cannot be run as root\n" @@ -807,52 +826,32 @@ msgstr "" "Logga in (t.ex. med \"su\") som den (opriviligerade) användare\n" "vilken skall äga serverprocessen.\n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, 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:2370 -#, 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:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: saknar argument för \"kill\"-kommando.\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: okänd operationsmetod \"%s\"\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, 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:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s: ingen operation angiven\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, 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" - -#, c-format -#~ msgid "%s: WARNING: cannot create restricted tokens on this platform\n" -#~ msgstr "%s: VARNING: \"Restricted Token\" stöds inte av plattformen.\n" - -#, 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" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "kunde inte byta katalog till \"%s\": %m" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "kan inte läsa symbolisk länk \"%s\": %m" diff --git a/src/bin/pg_ctl/po/uk.po b/src/bin/pg_ctl/po/uk.po index c1fcbe971331d..b517535543aac 100644 --- a/src/bin/pg_ctl/po/uk.po +++ b/src/bin/pg_ctl/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-04-19 11:18+0000\n" -"PO-Revision-Date: 2023-12-19 15:37\n" +"POT-Creation-Date: 2024-08-31 06:20+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,41 +14,60 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_ctl.pot\n" -"X-Crowdin-File-ID: 937\n" +"X-Crowdin-File: /REL_17_STABLE/pg_ctl.pot\n" +"X-Crowdin-File-ID: 994\n" -#: ../../common/exec.c:172 +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "недостатньо пам'яті" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 -#: ../../port/path.c:753 ../../port/path.c:791 ../../port/path.c:808 +#: ../../port/path.c:753 ../../port/path.c:790 ../../port/path.c:807 #, c-format msgid "out of memory\n" msgstr "недостатньо пам'яті\n" @@ -90,674 +109,674 @@ msgstr "дочірній процес завершився з невизнани #: ../../port/path.c:775 #, c-format -msgid "could not get current working directory: %s\n" -msgstr "не вдалося отримати поточний робочий каталог: %s\n" +msgid "could not get current working directory: %m\n" +msgstr "не вдалося отримати поточний робочий каталог: %m\n" -#: pg_ctl.c:255 +#: pg_ctl.c:254 #, c-format msgid "%s: directory \"%s\" does not exist\n" msgstr "%s: директорія \"%s\" не існує\n" -#: pg_ctl.c:258 +#: pg_ctl.c:257 #, c-format -msgid "%s: could not access directory \"%s\": %s\n" -msgstr "%s: немає доступу до каталогу \"%s\": %s\n" +msgid "%s: could not access directory \"%s\": %m\n" +msgstr "%s: не вдалося отримати доступ до каталогу \"%s\": %m\n" -#: pg_ctl.c:271 +#: pg_ctl.c:270 #, c-format msgid "%s: directory \"%s\" is not a database cluster directory\n" msgstr "%s: каталог \"%s\" не є каталогом кластера бази даних\n" -#: pg_ctl.c:284 +#: pg_ctl.c:283 #, c-format -msgid "%s: could not open PID file \"%s\": %s\n" -msgstr "%s: не вдалося відкрити файл PID \"%s\": %s\n" +msgid "%s: could not open PID file \"%s\": %m\n" +msgstr "%s: не вдалося відкрити файл PID \"%s\": %m\n" -#: pg_ctl.c:293 +#: pg_ctl.c:292 #, c-format msgid "%s: the PID file \"%s\" is empty\n" msgstr "%s: файл PID \"%s\" пустий\n" -#: pg_ctl.c:296 +#: pg_ctl.c:295 #, 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:457 pg_ctl.c:499 #, c-format -msgid "%s: could not start server: %s\n" -msgstr "%s: не вдалося запустити сервер: %s\n" +msgid "%s: could not start server: %m\n" +msgstr "%s: не вдалося запустити сервер: %m\n" -#: pg_ctl.c:478 +#: pg_ctl.c:477 #, c-format -msgid "%s: could not start server due to setsid() failure: %s\n" -msgstr "%s: не вдалося запустити сервер через помилку setsid(): %s\n" +msgid "%s: could not start server due to setsid() failure: %m\n" +msgstr "%s: не вдалося запустити сервер через помилку setsid(): %m\n" -#: pg_ctl.c:548 +#: pg_ctl.c:547 #, c-format -msgid "%s: could not open log file \"%s\": %s\n" -msgstr "%s: не вдалося відкрити файл журналу \"%s\": %s\n" +msgid "%s: could not open log file \"%s\": %m\n" +msgstr "%s: не вдалося відкрити файл журналу \"%s\": %m\n" -#: pg_ctl.c:565 +#: pg_ctl.c:564 #, c-format msgid "%s: could not start server: error code %lu\n" msgstr "%s: не вдалося запустити сервер: код помилки %lu\n" -#: pg_ctl.c:782 +#: pg_ctl.c:781 #, c-format msgid "%s: cannot set core file size limit; disallowed by hard limit\n" msgstr "%s: не вдалося встановити обмеження на розмір файлу; заборонено жорстким лімітом\n" -#: pg_ctl.c:808 +#: pg_ctl.c:807 #, c-format msgid "%s: could not read file \"%s\"\n" msgstr "%s: не вдалося прочитати файл \"%s\"\n" -#: pg_ctl.c:813 +#: pg_ctl.c:812 #, c-format msgid "%s: option file \"%s\" must have exactly one line\n" msgstr "%s: файл параметрів \"%s\" повинен містити рівно один рядок\n" -#: pg_ctl.c:855 pg_ctl.c:1039 pg_ctl.c:1107 +#: pg_ctl.c:854 pg_ctl.c:1038 pg_ctl.c:1105 #, c-format -msgid "%s: could not send stop signal (PID: %d): %s\n" -msgstr "%s: не вдалося надіслати стоп-сигнал (PID: %d): %s\n" +msgid "%s: could not send stop signal (PID: %d): %m\n" +msgstr "%s: не вдалося надіслати стоп-сигнал (PID: %d): %m\n" -#: pg_ctl.c:883 +#: pg_ctl.c:882 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"\n" msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"\n" -#: pg_ctl.c:886 +#: pg_ctl.c:885 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s\n" msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s\n" -#: pg_ctl.c:918 +#: pg_ctl.c:917 #, c-format msgid "%s: database system initialization failed\n" msgstr "%s: не вдалося виконати ініціалізацію системи бази даних\n" -#: pg_ctl.c:933 +#: pg_ctl.c:932 #, c-format msgid "%s: another server might be running; trying to start server anyway\n" msgstr "%s: мабуть, інший сервер вже працює; у будь-якому разі спробуємо запустити сервер\n" -#: pg_ctl.c:981 +#: pg_ctl.c:980 msgid "waiting for server to start..." msgstr "очікується запуск серверу..." -#: pg_ctl.c:986 pg_ctl.c:1063 pg_ctl.c:1126 pg_ctl.c:1238 +#: pg_ctl.c:985 pg_ctl.c:1061 pg_ctl.c:1123 pg_ctl.c:1235 msgid " done\n" msgstr " готово\n" -#: pg_ctl.c:987 +#: pg_ctl.c:986 msgid "server started\n" msgstr "сервер запущено\n" -#: pg_ctl.c:990 pg_ctl.c:996 pg_ctl.c:1243 +#: pg_ctl.c:989 pg_ctl.c:995 pg_ctl.c:1240 msgid " stopped waiting\n" msgstr " очікування припинено\n" -#: pg_ctl.c:991 +#: pg_ctl.c:990 #, c-format msgid "%s: server did not start in time\n" msgstr "%s: сервер не було запущено вчасно\n" -#: pg_ctl.c:997 +#: pg_ctl.c:996 #, c-format msgid "%s: could not start server\n" "Examine the log output.\n" msgstr "%s: неможливо запустити сервер\n" "Передивіться протокол виконання.\n" -#: pg_ctl.c:1005 +#: pg_ctl.c:1004 msgid "server starting\n" msgstr "запуск серверу\n" -#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1147 pg_ctl.c:1186 pg_ctl.c:1267 +#: pg_ctl.c:1023 pg_ctl.c:1081 pg_ctl.c:1144 pg_ctl.c:1183 pg_ctl.c:1264 #, c-format msgid "%s: PID file \"%s\" does not exist\n" msgstr "%s: файл PID \"%s\" не існує\n" -#: pg_ctl.c:1025 pg_ctl.c:1085 pg_ctl.c:1148 pg_ctl.c:1187 pg_ctl.c:1268 +#: pg_ctl.c:1024 pg_ctl.c:1083 pg_ctl.c:1145 pg_ctl.c:1184 pg_ctl.c:1265 msgid "Is server running?\n" msgstr "Сервер працює?\n" -#: pg_ctl.c:1031 +#: pg_ctl.c:1030 #, c-format msgid "%s: cannot stop server; single-user server is running (PID: %d)\n" msgstr "%s: не можливо зупинити сервер; сервер запущений в режимі single-user (PID: %d)\n" -#: pg_ctl.c:1046 +#: pg_ctl.c:1044 msgid "server shutting down\n" msgstr "сервер зупиняється\n" -#: pg_ctl.c:1051 pg_ctl.c:1112 +#: pg_ctl.c:1049 pg_ctl.c:1109 msgid "waiting for server to shut down..." msgstr "очікується зупинка серверу..." -#: pg_ctl.c:1055 pg_ctl.c:1117 +#: pg_ctl.c:1053 pg_ctl.c:1114 msgid " failed\n" msgstr " помилка\n" -#: pg_ctl.c:1057 pg_ctl.c:1119 +#: pg_ctl.c:1055 pg_ctl.c:1116 #, c-format msgid "%s: server does not shut down\n" msgstr "%s: сервер не зупинено\n" -#: pg_ctl.c:1059 pg_ctl.c:1121 +#: pg_ctl.c:1057 pg_ctl.c:1118 msgid "HINT: The \"-m fast\" option immediately disconnects sessions rather than\n" "waiting for session-initiated disconnection.\n" msgstr "ПІДКАЗКА: Режим \"-m fast\" закриває сесії відразу, не чекаючи на відключення ініційовані сесіями.\n" -#: pg_ctl.c:1065 pg_ctl.c:1127 +#: pg_ctl.c:1063 pg_ctl.c:1124 msgid "server stopped\n" msgstr "сервер зупинено\n" -#: pg_ctl.c:1086 +#: pg_ctl.c:1084 msgid "trying to start server anyway\n" msgstr "спроба запуску серверу в будь-якому разі\n" -#: pg_ctl.c:1095 +#: pg_ctl.c:1093 #, c-format msgid "%s: cannot restart server; single-user server is running (PID: %d)\n" msgstr "%s: не можливо перезапустити сервер; сервер запущений в режимі single-user (PID: %d)\n" -#: pg_ctl.c:1098 pg_ctl.c:1157 +#: pg_ctl.c:1096 pg_ctl.c:1154 msgid "Please terminate the single-user server and try again.\n" msgstr "Будь ласка, припиніть однокористувацький сервер та спробуйте ще раз.\n" -#: pg_ctl.c:1131 +#: pg_ctl.c:1128 #, c-format msgid "%s: old server process (PID: %d) seems to be gone\n" msgstr "%s: старий серверний процес (PID: %d), здається, зник\n" -#: pg_ctl.c:1133 +#: pg_ctl.c:1130 msgid "starting server anyway\n" msgstr "запуск серверу в будь-якому разі\n" -#: pg_ctl.c:1154 +#: pg_ctl.c:1151 #, c-format msgid "%s: cannot reload server; single-user server is running (PID: %d)\n" msgstr "%s: не можливо перезапустити сервер; сервер запущений в режимі single-user (PID: %d)\n" -#: pg_ctl.c:1163 +#: pg_ctl.c:1160 #, c-format -msgid "%s: could not send reload signal (PID: %d): %s\n" -msgstr "%s: не можливо надіслати сигнал перезавантаження (PID: %d): %s\n" +msgid "%s: could not send reload signal (PID: %d): %m\n" +msgstr "%s: не можливо надіслати сигнал перезавантаження (PID: %d): %m\n" -#: pg_ctl.c:1168 +#: pg_ctl.c:1165 msgid "server signaled\n" msgstr "серверу надіслано сигнал\n" -#: pg_ctl.c:1193 +#: pg_ctl.c:1190 #, c-format msgid "%s: cannot promote server; single-user server is running (PID: %d)\n" msgstr "%s: неможливо підвищити сервер; сервер запущено в режимі single-user (PID: %d)\n" -#: pg_ctl.c:1201 +#: pg_ctl.c:1198 #, c-format msgid "%s: cannot promote server; server is not in standby mode\n" msgstr "%s: неможливо підвищити сервер; сервер запущено не в режимі резерву\n" -#: pg_ctl.c:1211 +#: pg_ctl.c:1208 #, c-format -msgid "%s: could not create promote signal file \"%s\": %s\n" -msgstr "%s: неможливо створити файл \"%s\" із сигналом для підвищення: %s\n" +msgid "%s: could not create promote signal file \"%s\": %m\n" +msgstr "%s: неможливо створити файл \"%s\" із сигналом для підвищення: %m\n" -#: pg_ctl.c:1217 +#: pg_ctl.c:1214 #, c-format -msgid "%s: could not write promote signal file \"%s\": %s\n" -msgstr "%s: неможливо записати файл \"%s\" із сигналом для підвищення: %s\n" +msgid "%s: could not write promote signal file \"%s\": %m\n" +msgstr "%s: неможливо записати файл \"%s\" із сигналом для підвищення: %m\n" -#: pg_ctl.c:1225 +#: pg_ctl.c:1222 #, c-format -msgid "%s: could not send promote signal (PID: %d): %s\n" -msgstr "%s: неможливо надіслати сигнал підвищення (PID: %d): %s\n" +msgid "%s: could not send promote signal (PID: %d): %m\n" +msgstr "%s: неможливо надіслати сигнал підвищення (PID: %d): %m\n" -#: pg_ctl.c:1228 +#: pg_ctl.c:1225 #, c-format -msgid "%s: could not remove promote signal file \"%s\": %s\n" -msgstr "%s: неможливо видалити файл \"%s\" із сигналом для підвищення: %s\n" +msgid "%s: could not remove promote signal file \"%s\": %m\n" +msgstr "%s: неможливо видалити файл \"%s\" із сигналом для підвищення: %m\n" -#: pg_ctl.c:1235 +#: pg_ctl.c:1232 msgid "waiting for server to promote..." msgstr "очікується підвищення серверу..." -#: pg_ctl.c:1239 +#: pg_ctl.c:1236 msgid "server promoted\n" msgstr "сервер підвищено\n" -#: pg_ctl.c:1244 +#: pg_ctl.c:1241 #, c-format msgid "%s: server did not promote in time\n" msgstr "%s: сервер не було підвищено вчасно\n" -#: pg_ctl.c:1250 +#: pg_ctl.c:1247 msgid "server promoting\n" msgstr "сервер підвищується\n" -#: pg_ctl.c:1274 +#: pg_ctl.c:1271 #, c-format msgid "%s: cannot rotate log file; single-user server is running (PID: %d)\n" msgstr "%s: не можливо розвернути файл журналу; сервер працює в режимі одного користувача (PID: %d)\n" -#: pg_ctl.c:1284 +#: pg_ctl.c:1281 #, c-format -msgid "%s: could not create log rotation signal file \"%s\": %s\n" -msgstr "%s: не вдалося створити файл сигналу розвороту журналу \"%s\": %s\n" +msgid "%s: could not create log rotation signal file \"%s\": %m\n" +msgstr "%s: не вдалося створити файл сигналу розвороту журналу \"%s\": %m\n" -#: pg_ctl.c:1290 +#: pg_ctl.c:1287 #, c-format -msgid "%s: could not write log rotation signal file \"%s\": %s\n" -msgstr "%s: не вдалося записати у файл сигналу розвороту журналу \"%s\": %s\n" +msgid "%s: could not write log rotation signal file \"%s\": %m\n" +msgstr "%s: не вдалося записати у файл сигналу розвороту журналу \"%s\": %m\n" -#: pg_ctl.c:1298 +#: pg_ctl.c:1295 #, c-format -msgid "%s: could not send log rotation signal (PID: %d): %s\n" -msgstr "%s: не вдалося надіслати сигнал розвороту журналу (PID: %d): %s\n" +msgid "%s: could not send log rotation signal (PID: %d): %m\n" +msgstr "%s: не вдалося надіслати сигнал розвороту журналу (PID: %d): %m\n" -#: pg_ctl.c:1301 +#: pg_ctl.c:1298 #, c-format -msgid "%s: could not remove log rotation signal file \"%s\": %s\n" -msgstr "%s: не вдалося видалити файл сигналу розвороту журналу \"%s\": %s\n" +msgid "%s: could not remove log rotation signal file \"%s\": %m\n" +msgstr "%s: не вдалося видалити файл сигналу розвороту журналу \"%s\": %m\n" -#: pg_ctl.c:1306 +#: pg_ctl.c:1303 msgid "server signaled to rotate log file\n" msgstr "серверу надіслано сигнал для розворот файлу журналу\n" -#: pg_ctl.c:1353 +#: pg_ctl.c:1350 #, c-format msgid "%s: single-user server is running (PID: %d)\n" msgstr "%s: однокористувацький сервер працює (PID: %d)\n" -#: pg_ctl.c:1367 +#: pg_ctl.c:1364 #, c-format msgid "%s: server is running (PID: %d)\n" msgstr "%s: сервер працює (PID: %d)\n" -#: pg_ctl.c:1383 +#: pg_ctl.c:1380 #, c-format msgid "%s: no server running\n" msgstr "%s: сервер не працює \n" -#: pg_ctl.c:1400 +#: pg_ctl.c:1397 #, c-format -msgid "%s: could not send signal %d (PID: %d): %s\n" -msgstr "%s: не вдалося надіслати сигнал %d (PID: %d): %s\n" +msgid "%s: could not send signal %d (PID: %d): %m\n" +msgstr "%s: не вдалося надіслати сигнал %d (PID: %d): %m\n" -#: pg_ctl.c:1431 +#: pg_ctl.c:1428 #, c-format msgid "%s: could not find own program executable\n" msgstr "%s: не вдалося знайти ехе файл власної програми\n" -#: pg_ctl.c:1441 +#: pg_ctl.c:1438 #, c-format msgid "%s: could not find postgres program executable\n" msgstr "%s: не вдалося знайти виконану програму postgres\n" -#: pg_ctl.c:1511 pg_ctl.c:1545 +#: pg_ctl.c:1508 pg_ctl.c:1542 #, c-format msgid "%s: could not open service manager\n" msgstr "%s: не вдалося відкрити менеджер служб\n" -#: pg_ctl.c:1517 +#: pg_ctl.c:1514 #, c-format msgid "%s: service \"%s\" already registered\n" msgstr "%s: служба \"%s\" вже зареєстрована \n" -#: pg_ctl.c:1528 +#: pg_ctl.c:1525 #, c-format msgid "%s: could not register service \"%s\": error code %lu\n" msgstr "%s: не вдалося зареєструвати службу \"%s\": код помилки %lu\n" -#: pg_ctl.c:1551 +#: pg_ctl.c:1548 #, c-format msgid "%s: service \"%s\" not registered\n" msgstr "%s: служба \"%s\" не зареєстрована \n" -#: pg_ctl.c:1558 +#: pg_ctl.c:1555 #, c-format msgid "%s: could not open service \"%s\": error code %lu\n" msgstr "%s: не вдалося відкрити службу \"%s\": код помилки %lu\n" -#: pg_ctl.c:1567 +#: pg_ctl.c:1564 #, c-format msgid "%s: could not unregister service \"%s\": error code %lu\n" msgstr "%s: не вдалося видалити службу \"%s\": код помилки %lu\n" -#: pg_ctl.c:1654 +#: pg_ctl.c:1651 msgid "Waiting for server startup...\n" msgstr "Очікування запуску сервера...\n" -#: pg_ctl.c:1657 +#: pg_ctl.c:1654 msgid "Timed out waiting for server startup\n" msgstr "Перевищено час очікування запуску сервера\n" -#: pg_ctl.c:1661 +#: pg_ctl.c:1658 msgid "Server started and accepting connections\n" msgstr "Сервер запущений і приймає з'єднання\n" -#: pg_ctl.c:1716 +#: pg_ctl.c:1713 #, c-format msgid "%s: could not start service \"%s\": error code %lu\n" msgstr "%s: не вдалося почати службу \"%s\": код помилки %lu\n" -#: pg_ctl.c:1789 +#: pg_ctl.c:1786 #, c-format msgid "%s: could not open process token: error code %lu\n" msgstr "%s: не вдалося відкрити токен процесу: код помилки %lu\n" -#: pg_ctl.c:1803 +#: pg_ctl.c:1800 #, c-format msgid "%s: could not allocate SIDs: error code %lu\n" msgstr "%s: не вдалося виділити SID: код помилки %lu\n" -#: pg_ctl.c:1829 +#: pg_ctl.c:1826 #, c-format msgid "%s: could not create restricted token: error code %lu\n" msgstr "%s: не вдалося створити обмежений токен: код помилки %lu\n" -#: pg_ctl.c:1911 +#: pg_ctl.c:1908 #, c-format msgid "%s: could not get LUIDs for privileges: error code %lu\n" msgstr "%s: не вдалося отримати LUIDs для прав: код помилки %lu\n" -#: pg_ctl.c:1919 pg_ctl.c:1934 +#: pg_ctl.c:1916 pg_ctl.c:1931 #, c-format msgid "%s: could not get token information: error code %lu\n" msgstr "%s: не вдалося отримати інформацію токену: код помилки %lu\n" -#: pg_ctl.c:1928 +#: pg_ctl.c:1925 #, c-format msgid "%s: out of memory\n" msgstr "%s: бракує пам'яті\n" -#: pg_ctl.c:1958 +#: pg_ctl.c:1955 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n" -#: pg_ctl.c:1966 +#: pg_ctl.c:1963 #, c-format msgid "%s is a utility to initialize, start, stop, or control a PostgreSQL server.\n\n" msgstr "%s - це утиліта для ініціалізації, запуску, зупинки і контролю серверу PostgreSQL.\n\n" -#: pg_ctl.c:1967 +#: pg_ctl.c:1964 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_ctl.c:1968 +#: pg_ctl.c:1965 #, c-format msgid " %s init[db] [-D DATADIR] [-s] [-o OPTIONS]\n" msgstr " %s init[db] [-D КАТАЛОГ-ДАНИХ] [-s] [-o ПАРАМЕТРИ]\n" -#: pg_ctl.c:1969 +#: pg_ctl.c:1966 #, c-format msgid " %s start [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-p PATH] [-c]\n" msgstr " %s start [-D КАТАЛОГ-ДАНИХ] [-l ІМ'Я-ФАЙЛ] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРИ] [-p ШЛЯХ] [-c]\n" -#: pg_ctl.c:1971 +#: pg_ctl.c:1968 #, 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:1972 +#: pg_ctl.c:1969 #, c-format msgid " %s restart [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]\n" " [-o OPTIONS] [-c]\n" msgstr " %s restart [-D КАТАЛОГ-ДАНИХ] [-m РЕЖИМ-ЗУПИНКИ] [-W] [-t СЕК] [-s]\n" " [-o ПАРАМЕТРИ] [-c]\n" -#: pg_ctl.c:1974 +#: pg_ctl.c:1971 #, c-format msgid " %s reload [-D DATADIR] [-s]\n" msgstr " %s reload [-D КАТАЛОГ-ДАНИХ] [-s]\n" -#: pg_ctl.c:1975 +#: pg_ctl.c:1972 #, c-format msgid " %s status [-D DATADIR]\n" msgstr " %s status [-D DATADIR]\n" -#: pg_ctl.c:1976 +#: pg_ctl.c:1973 #, c-format msgid " %s promote [-D DATADIR] [-W] [-t SECS] [-s]\n" msgstr " %s promote [-D КАТАЛОГ-ДАНИХ] [-W] [-t СЕК] [-s]\n" -#: pg_ctl.c:1977 +#: pg_ctl.c:1974 #, c-format msgid " %s logrotate [-D DATADIR] [-s]\n" msgstr " %s logrotate [-D DATADIR] [-s]\n" -#: pg_ctl.c:1978 +#: pg_ctl.c:1975 #, c-format msgid " %s kill SIGNALNAME PID\n" msgstr " %s kill ІМ'Я-СИГНАЛУ PID\n" -#: pg_ctl.c:1980 +#: pg_ctl.c:1977 #, c-format msgid " %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 КАТАЛОГ-ДАНИХ] [-N ІМ'Я-СЛУЖБИ] [-U ІМ'Я-КОРИСТУВАЧА] [-P ПАРОЛЬ]\n" " [-S ТИП-ЗАПУСКУ] [-e ДЖЕРЕЛО] [-W] [-t СЕК] [-s] [-o ПАРАМЕТРИ]\n" -#: pg_ctl.c:1982 +#: pg_ctl.c:1979 #, c-format msgid " %s unregister [-N SERVICENAME]\n" msgstr " %s unregister [-N ІМ'Я-СЛУЖБИ]\n" -#: pg_ctl.c:1985 +#: pg_ctl.c:1982 #, c-format msgid "\n" "Common options:\n" msgstr "\n" "Загальні параметри:\n" -#: pg_ctl.c:1986 +#: pg_ctl.c:1983 #, c-format msgid " -D, --pgdata=DATADIR location of the database storage area\n" msgstr " -D, --pgdata=КАТАЛОГ-ДАНИХ розташування простору зберігання бази даних\n" -#: pg_ctl.c:1988 +#: pg_ctl.c:1985 #, c-format msgid " -e SOURCE event source for logging when running as a service\n" msgstr " -e ДЖЕРЕЛО джерело подій для протоколу при запуску в якості послуги\n" -#: pg_ctl.c:1990 +#: pg_ctl.c:1987 #, c-format msgid " -s, --silent only print errors, no informational messages\n" msgstr " -s, --silent виводити лише помилки, без інформаційних повідомлень\n" -#: pg_ctl.c:1991 +#: pg_ctl.c:1988 #, c-format msgid " -t, --timeout=SECS seconds to wait when using -w option\n" msgstr " -t, --timeout=СЕК час очікування при використанні -w параметра\n" -#: pg_ctl.c:1992 +#: pg_ctl.c:1989 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_ctl.c:1993 +#: pg_ctl.c:1990 #, c-format msgid " -w, --wait wait until operation completes (default)\n" msgstr " -w, --wait чекати завершення операції (за замовчуванням)\n" -#: pg_ctl.c:1994 +#: pg_ctl.c:1991 #, c-format msgid " -W, --no-wait do not wait until operation completes\n" msgstr " -W, --no-wait не чекати завершення операції\n" -#: pg_ctl.c:1995 +#: pg_ctl.c:1992 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку потім вийти\n" -#: pg_ctl.c:1996 +#: pg_ctl.c:1993 #, c-format msgid "If the -D option is omitted, the environment variable PGDATA is used.\n" msgstr "Якщо -D параметр пропущено, використовувати змінну середовища PGDATA.\n" -#: pg_ctl.c:1998 +#: pg_ctl.c:1995 #, c-format msgid "\n" "Options for start or restart:\n" msgstr "\n" "Параметри запуску або перезапуску:\n" -#: pg_ctl.c:2000 +#: pg_ctl.c:1997 #, c-format msgid " -c, --core-files allow postgres to produce core files\n" msgstr " -c, --core-files дозволяти postgres створювати дампи пам'яті\n" -#: pg_ctl.c:2002 +#: pg_ctl.c:1999 #, c-format msgid " -c, --core-files not applicable on this platform\n" msgstr " -c, --core-files недопустимо цією платформою\n" -#: pg_ctl.c:2004 +#: pg_ctl.c:2001 #, c-format msgid " -l, --log=FILENAME write (or append) server log to FILENAME\n" msgstr " -l, --log=ФАЙЛ записувати (або додавати) протокол служби до ФАЙЛ\n" -#: pg_ctl.c:2005 +#: pg_ctl.c:2002 #, c-format msgid " -o, --options=OPTIONS command line options to pass to postgres\n" " (PostgreSQL server executable) or initdb\n" msgstr " -o, --options=ПАРАМЕТРИ параметри командного рядку для PostgreSQL або initdb\n" -#: pg_ctl.c:2007 +#: pg_ctl.c:2004 #, c-format msgid " -p PATH-TO-POSTGRES normally not necessary\n" msgstr " -p ШЛЯХ-ДО-СЕРВЕРУ зазвичай зайвий\n" -#: pg_ctl.c:2008 +#: pg_ctl.c:2005 #, c-format msgid "\n" "Options for stop or restart:\n" msgstr "\n" "Параметри припинення або перезапуску:\n" -#: pg_ctl.c:2009 +#: pg_ctl.c:2006 #, c-format msgid " -m, --mode=MODE MODE can be \"smart\", \"fast\", or \"immediate\"\n" msgstr " -m, --mode=РЕЖИМ РЕЖИМ може бути \"smart\", \"fast\", або \"immediate\"\n" -#: pg_ctl.c:2011 +#: pg_ctl.c:2008 #, c-format msgid "\n" "Shutdown modes are:\n" msgstr "\n" "Режими зупинки:\n" -#: pg_ctl.c:2012 +#: pg_ctl.c:2009 #, c-format msgid " smart quit after all clients have disconnected\n" msgstr " smart вийти після від'єднання усіх клієнтів\n" -#: pg_ctl.c:2013 +#: pg_ctl.c:2010 #, c-format msgid " fast quit directly, with proper shutdown (default)\n" msgstr " fast вийти негайно з коректним вимкненням (за замовченням)\n" -#: pg_ctl.c:2014 +#: pg_ctl.c:2011 #, c-format msgid " immediate quit without complete shutdown; will lead to recovery on restart\n" msgstr " immediate вийти негайно без повної процедури. Приведе до відновлення під час перезапуску\n" -#: pg_ctl.c:2016 +#: pg_ctl.c:2013 #, c-format msgid "\n" "Allowed signal names for kill:\n" msgstr "\n" "Дозволенні сигнали для команди kill:\n" -#: pg_ctl.c:2020 +#: pg_ctl.c:2017 #, c-format msgid "\n" "Options for register and unregister:\n" msgstr "\n" "Параметри для реєстрації і видалення: \n" -#: pg_ctl.c:2021 +#: pg_ctl.c:2018 #, c-format msgid " -N SERVICENAME service name with which to register PostgreSQL server\n" msgstr " -N ІМ'Я-СЛУЖБИ ім'я служби під яким зареєструвати сервер PostgreSQL\n" -#: pg_ctl.c:2022 +#: pg_ctl.c:2019 #, c-format msgid " -P PASSWORD password of account to register PostgreSQL server\n" msgstr " -P ПАРОЛЬ пароль облікового запису для реєстрації серверу PostgreSQL\n" -#: pg_ctl.c:2023 +#: pg_ctl.c:2020 #, c-format msgid " -U USERNAME user name of account to register PostgreSQL server\n" msgstr " -U КОРИСТУВАЧ ім'я користувача під яким зареєструвати сервер PostgreSQL\n" -#: pg_ctl.c:2024 +#: pg_ctl.c:2021 #, c-format msgid " -S START-TYPE service start type to register PostgreSQL server\n" msgstr " -S ТИП-ЗАПУСКУ тип запуску служби для реєстрації серверу PostgreSQL\n" -#: pg_ctl.c:2026 +#: pg_ctl.c:2023 #, c-format msgid "\n" "Start types are:\n" msgstr "\n" "Типи запуску:\n" -#: pg_ctl.c:2027 +#: pg_ctl.c:2024 #, c-format msgid " auto start service automatically during system startup (default)\n" msgstr " auto запускати сервер автоматично під час запуску системи (за замовчуванням)\n" -#: pg_ctl.c:2028 +#: pg_ctl.c:2025 #, c-format msgid " demand start service on demand\n" msgstr " demand запускати сервер за потреби\n" -#: pg_ctl.c:2031 +#: pg_ctl.c:2028 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_ctl.c:2032 +#: pg_ctl.c:2029 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_ctl.c:2057 +#: pg_ctl.c:2054 #, c-format msgid "%s: unrecognized shutdown mode \"%s\"\n" msgstr "%s: невідомий режим завершення \"%s\"\n" -#: pg_ctl.c:2086 +#: pg_ctl.c:2083 #, c-format msgid "%s: unrecognized signal name \"%s\"\n" msgstr "%s: невідомий сигнал \"%s\"\n" -#: pg_ctl.c:2103 +#: pg_ctl.c:2100 #, c-format msgid "%s: unrecognized start type \"%s\"\n" msgstr "%s: невідомий тип запуску \"%s\"\n" -#: pg_ctl.c:2159 +#: pg_ctl.c:2156 #, c-format msgid "%s: could not determine the data directory using command \"%s\"\n" msgstr "%s: неможливо визначити каталог даних за допомогою команди \"%s\"\n" -#: pg_ctl.c:2182 +#: pg_ctl.c:2179 #, c-format msgid "%s: control file appears to be corrupt\n" msgstr "%s: контрольний файл видається пошкодженим\n" -#: pg_ctl.c:2250 +#: pg_ctl.c:2247 #, c-format msgid "%s: cannot be run as root\n" "Please log in (using, e.g., \"su\") as the (unprivileged) user that will\n" @@ -766,32 +785,32 @@ msgstr "%s: не може бути запущеним від ім'я супер- " Будь ласка увійдіть (використовуючи наприклад, \"su\") як (непривілейований) користувач який буде мати\n" "свій серверний процес. \n" -#: pg_ctl.c:2333 +#: pg_ctl.c:2319 #, c-format msgid "%s: -S option not supported on this platform\n" msgstr "%s: параметр -S не підтримується цією платформою\n" -#: pg_ctl.c:2370 -#, c-format -msgid "%s: too many command-line arguments (first is \"%s\")\n" -msgstr "%s: забагато аргументів у командному рядку (перший \"%s\")\n" - -#: pg_ctl.c:2396 +#: pg_ctl.c:2375 #, c-format msgid "%s: missing arguments for kill mode\n" msgstr "%s: відсутні аргументи для режиму kill\n" -#: pg_ctl.c:2414 +#: pg_ctl.c:2393 #, c-format msgid "%s: unrecognized operation mode \"%s\"\n" msgstr "%s: невідомий режим роботи \"%s\"\n" -#: pg_ctl.c:2424 +#: pg_ctl.c:2402 +#, c-format +msgid "%s: too many command-line arguments (first is \"%s\")\n" +msgstr "%s: забагато аргументів у командному рядку (перший \"%s\")\n" + +#: pg_ctl.c:2409 #, c-format msgid "%s: no operation specified\n" msgstr "%s: команда не вказана\n" -#: pg_ctl.c:2445 +#: pg_ctl.c:2430 #, c-format msgid "%s: no database directory specified and environment variable PGDATA unset\n" msgstr "%s: не вказано каталог даних і змінна середовища PGDATA не встановлена\n" diff --git a/src/bin/pg_dump/Makefile b/src/bin/pg_dump/Makefile index 233ad15ca75dc..fa795883e9f30 100644 --- a/src/bin/pg_dump/Makefile +++ b/src/bin/pg_dump/Makefile @@ -31,6 +31,7 @@ OBJS = \ compress_lz4.o \ compress_none.o \ compress_zstd.o \ + connectdb.o \ dumputils.o \ filter.o \ parallel.o \ @@ -50,8 +51,8 @@ pg_dump: pg_dump.o common.o pg_dump_sort.o $(OBJS) | submake-libpq submake-libpg 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 filter.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils - $(CC) $(CFLAGS) pg_dumpall.o dumputils.o filter.o $(WIN32RES) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) +pg_dumpall: pg_dumpall.o $(OBJS) | submake-libpq submake-libpgport submake-libpgfeutils + $(CC) $(CFLAGS) pg_dumpall.o $(OBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) install: all installdirs $(INSTALL_PROGRAM) pg_dump$(X) '$(DESTDIR)$(bindir)'/pg_dump$(X) diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 56b6c368acf89..aa1589e3331d2 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -453,8 +453,8 @@ flagInhIndexes(Archive *fout, TableInfo tblinfo[], int numTables) * What we need to do here is: * * - Detect child columns that inherit NOT NULL bits from their parents, so - * that we needn't specify that again for the child. (Versions >= 18 no - * longer need this.) + * that we needn't specify that again for the child. For versions 18 and + * up, this is needed when the parent is NOT VALID and the child isn't. * * - Detect child columns that have DEFAULT NULL when their parents had some * non-null default. In this case, we make up a dummy AttrDefInfo object so @@ -516,6 +516,8 @@ flagInhAttrs(Archive *fout, DumpOptions *dopt, TableInfo *tblinfo, int numTables bool foundDefault; /* Found a default in a parent */ bool foundSameGenerated; /* Found matching GENERATED */ bool foundDiffGenerated; /* Found non-matching GENERATED */ + bool allNotNullsInvalid = true; /* is NOT NULL NOT VALID + * on all parents? */ /* no point in examining dropped columns */ if (tbinfo->attisdropped[j]) @@ -546,6 +548,18 @@ flagInhAttrs(Archive *fout, DumpOptions *dopt, TableInfo *tblinfo, int numTables parent->notnull_constrs[inhAttrInd] != NULL) foundNotNull = true; + /* + * Keep track of whether all the parents that have a + * not-null constraint on this column have it as NOT + * VALID; if they all are, arrange to have it printed for + * this column. If at least one parent has it as valid, + * there's no need. + */ + if (fout->remoteVersion >= 180000 && + parent->notnull_constrs[inhAttrInd] && + !parent->notnull_invalid[inhAttrInd]) + allNotNullsInvalid = false; + foundDefault |= (parentDef != NULL && strcmp(parentDef->adef_expr, "NULL") != 0 && !parent->attgenerated[inhAttrInd]); @@ -571,6 +585,14 @@ flagInhAttrs(Archive *fout, DumpOptions *dopt, TableInfo *tblinfo, int numTables if (fout->remoteVersion < 180000 && foundNotNull) tbinfo->notnull_islocal[j] = false; + /* + * For versions >18, we must print the not-null constraint locally + * for this table even if it isn't really locally defined, but is + * valid for the child and no parent has it as valid. + */ + if (fout->remoteVersion >= 180000 && allNotNullsInvalid) + tbinfo->notnull_islocal[j] = true; + /* * Manufacture a DEFAULT NULL clause if necessary. This breaks * the advice given above to avoid changing state that might get diff --git a/src/bin/pg_dump/compress_gzip.c b/src/bin/pg_dump/compress_gzip.c index 23f617209e65e..5a30ebf9bf5b5 100644 --- a/src/bin/pg_dump/compress_gzip.c +++ b/src/bin/pg_dump/compress_gzip.c @@ -18,7 +18,7 @@ #include "pg_backup_utils.h" #ifdef HAVE_LIBZ -#include "zlib.h" +#include /*---------------------- * Compressor API diff --git a/src/bin/pg_dump/compress_zstd.c b/src/bin/pg_dump/compress_zstd.c index 1f7b4942706b4..cb595b10c2d32 100644 --- a/src/bin/pg_dump/compress_zstd.c +++ b/src/bin/pg_dump/compress_zstd.c @@ -142,6 +142,7 @@ EndCompressorZstd(ArchiveHandle *AH, CompressorState *cs) /* output buffer may be allocated in either mode */ pg_free(zstdcs->output.dst); pg_free(zstdcs); + cs->private_data = NULL; } static void diff --git a/src/bin/pg_dump/connectdb.c b/src/bin/pg_dump/connectdb.c new file mode 100644 index 0000000000000..d55d53dbeeab9 --- /dev/null +++ b/src/bin/pg_dump/connectdb.c @@ -0,0 +1,295 @@ +/*------------------------------------------------------------------------- + * + * connectdb.c + * This is a common file connection to the database. + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/bin/pg_dump/connectdb.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres_fe.h" + +#include "common/connect.h" +#include "common/logging.h" +#include "common/string.h" +#include "connectdb.h" +#include "dumputils.h" +#include "fe_utils/string_utils.h" + +static char *constructConnStr(const char **keywords, const char **values); + +/* + * ConnectDatabase + * + * Make a database connection with the given parameters. An + * interactive password prompt is automatically issued if required. + * + * If fail_on_error is false, we return NULL without printing any message + * on failure, but preserve any prompted password for the next try. + * + * On success, the 'connstr' is set to a connection string containing + * the options used and 'server_version' is set to version so that caller + * can use them. + */ +PGconn * +ConnectDatabase(const char *dbname, const char *connection_string, + const char *pghost, const char *pgport, const char *pguser, + trivalue prompt_password, bool fail_on_error, const char *progname, + const char **connstr, int *server_version, char *password, + char *override_dbname) +{ + PGconn *conn; + bool new_pass; + const char *remoteversion_str; + int my_version; + const char **keywords = NULL; + const char **values = NULL; + PQconninfoOption *conn_opts = NULL; + int server_version_temp; + + if (prompt_password == TRI_YES && !password) + password = simple_prompt("Password: ", false); + + /* + * Start the connection. Loop until we have a password if requested by + * backend. + */ + do + { + int argcount = 8; + PQconninfoOption *conn_opt; + char *err_msg = NULL; + int i = 0; + + free(keywords); + free(values); + PQconninfoFree(conn_opts); + + /* + * Merge the connection info inputs given in form of connection string + * and other options. Explicitly discard any dbname value in the + * connection string; otherwise, PQconnectdbParams() would interpret + * that value as being itself a connection string. + */ + if (connection_string) + { + conn_opts = PQconninfoParse(connection_string, &err_msg); + if (conn_opts == NULL) + pg_fatal("%s", err_msg); + + for (conn_opt = conn_opts; conn_opt->keyword != NULL; conn_opt++) + { + if (conn_opt->val != NULL && conn_opt->val[0] != '\0' && + strcmp(conn_opt->keyword, "dbname") != 0) + argcount++; + } + + keywords = pg_malloc0((argcount + 1) * sizeof(*keywords)); + values = pg_malloc0((argcount + 1) * sizeof(*values)); + + for (conn_opt = conn_opts; conn_opt->keyword != NULL; conn_opt++) + { + if (conn_opt->val != NULL && conn_opt->val[0] != '\0' && + strcmp(conn_opt->keyword, "dbname") != 0) + { + keywords[i] = conn_opt->keyword; + values[i] = conn_opt->val; + i++; + } + } + } + else + { + keywords = pg_malloc0((argcount + 1) * sizeof(*keywords)); + values = pg_malloc0((argcount + 1) * sizeof(*values)); + } + + if (pghost) + { + keywords[i] = "host"; + values[i] = pghost; + i++; + } + if (pgport) + { + keywords[i] = "port"; + values[i] = pgport; + i++; + } + if (pguser) + { + keywords[i] = "user"; + values[i] = pguser; + i++; + } + if (password) + { + keywords[i] = "password"; + values[i] = password; + i++; + } + if (dbname) + { + keywords[i] = "dbname"; + values[i] = dbname; + i++; + } + if (override_dbname) + { + keywords[i] = "dbname"; + values[i] = override_dbname; + i++; + } + + keywords[i] = "fallback_application_name"; + values[i] = progname; + i++; + + new_pass = false; + conn = PQconnectdbParams(keywords, values, true); + + if (!conn) + pg_fatal("could not connect to database \"%s\"", dbname); + + if (PQstatus(conn) == CONNECTION_BAD && + PQconnectionNeedsPassword(conn) && + !password && + prompt_password != TRI_NO) + { + PQfinish(conn); + password = simple_prompt("Password: ", false); + new_pass = true; + } + } while (new_pass); + + /* check to see that the backend connection was successfully made */ + if (PQstatus(conn) == CONNECTION_BAD) + { + if (fail_on_error) + pg_fatal("%s", PQerrorMessage(conn)); + else + { + PQfinish(conn); + + free(keywords); + free(values); + PQconninfoFree(conn_opts); + + return NULL; + } + } + + /* + * Ok, connected successfully. If requested, remember the options used, in + * the form of a connection string. + */ + if (connstr) + *connstr = constructConnStr(keywords, values); + + free(keywords); + free(values); + PQconninfoFree(conn_opts); + + /* Check version */ + remoteversion_str = PQparameterStatus(conn, "server_version"); + if (!remoteversion_str) + pg_fatal("could not get server version"); + + server_version_temp = PQserverVersion(conn); + if (server_version_temp == 0) + pg_fatal("could not parse server version \"%s\"", + remoteversion_str); + + /* If requested, then copy server version to out variable. */ + if (server_version) + *server_version = server_version_temp; + + my_version = PG_VERSION_NUM; + + /* + * We allow the server to be back to 9.2, and up to any minor release of + * our own major version. (See also version check in pg_dump.c.) + */ + if (my_version != server_version_temp + && (server_version_temp < 90200 || + (server_version_temp / 100) > (my_version / 100))) + { + pg_log_error("aborting because of server version mismatch"); + pg_log_error_detail("server version: %s; %s version: %s", + remoteversion_str, progname, PG_VERSION); + exit_nicely(1); + } + + PQclear(executeQuery(conn, ALWAYS_SECURE_SEARCH_PATH_SQL)); + + return conn; +} + +/* + * constructConnStr + * + * Construct a connection string from the given keyword/value pairs. It is + * used to pass the connection options to the pg_dump subprocess. + * + * The following parameters are excluded: + * dbname - varies in each pg_dump invocation + * password - it's not secure to pass a password on the command line + * fallback_application_name - we'll let pg_dump set it + */ +static char * +constructConnStr(const char **keywords, const char **values) +{ + PQExpBuffer buf = createPQExpBuffer(); + char *connstr; + int i; + bool firstkeyword = true; + + /* Construct a new connection string in key='value' format. */ + for (i = 0; keywords[i] != NULL; i++) + { + if (strcmp(keywords[i], "dbname") == 0 || + strcmp(keywords[i], "password") == 0 || + strcmp(keywords[i], "fallback_application_name") == 0) + continue; + + if (!firstkeyword) + appendPQExpBufferChar(buf, ' '); + firstkeyword = false; + appendPQExpBuffer(buf, "%s=", keywords[i]); + appendConnStrVal(buf, values[i]); + } + + connstr = pg_strdup(buf->data); + destroyPQExpBuffer(buf); + return connstr; +} + +/* + * executeQuery + * + * Run a query, return the results, exit program on failure. + */ +PGresult * +executeQuery(PGconn *conn, const char *query) +{ + PGresult *res; + + pg_log_info("executing %s", query); + + res = PQexec(conn, query); + if (!res || + PQresultStatus(res) != PGRES_TUPLES_OK) + { + pg_log_error("query failed: %s", PQerrorMessage(conn)); + pg_log_error_detail("Query was: %s", query); + PQfinish(conn); + exit_nicely(1); + } + + return res; +} diff --git a/src/bin/pg_dump/connectdb.h b/src/bin/pg_dump/connectdb.h new file mode 100644 index 0000000000000..6c1e1954769ff --- /dev/null +++ b/src/bin/pg_dump/connectdb.h @@ -0,0 +1,26 @@ +/*------------------------------------------------------------------------- + * + * connectdb.h + * Common header file for connection to the database. + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/bin/pg_dump/connectdb.h + * + *------------------------------------------------------------------------- + */ +#ifndef CONNECTDB_H +#define CONNECTDB_H + +#include "pg_backup.h" +#include "pg_backup_utils.h" + +extern PGconn *ConnectDatabase(const char *dbname, const char *connection_string, const char *pghost, + const char *pgport, const char *pguser, + trivalue prompt_password, bool fail_on_error, + const char *progname, const char **connstr, int *server_version, + char *password, char *override_dbname); +extern PGresult *executeQuery(PGconn *conn, const char *query); +#endif /* CONNECTDB_H */ diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c index 5ae77f7636709..73ce34346b278 100644 --- a/src/bin/pg_dump/dumputils.c +++ b/src/bin/pg_dump/dumputils.c @@ -16,6 +16,8 @@ #include +#include "common/file_perm.h" +#include "common/logging.h" #include "dumputils.h" #include "fe_utils/string_utils.h" @@ -506,7 +508,8 @@ do { \ CONVERT_PRIV('s', "SET"); CONVERT_PRIV('A', "ALTER SYSTEM"); } - else if (strcmp(type, "LARGE OBJECT") == 0) + else if (strcmp(type, "LARGE OBJECT") == 0 || + strcmp(type, "LARGE OBJECTS") == 0) { CONVERT_PRIV('r', "SELECT"); CONVERT_PRIV('w', "UPDATE"); @@ -883,3 +886,37 @@ makeAlterConfigCommand(PGconn *conn, const char *configitem, pg_free(mine); } + +/* + * create_or_open_dir + * + * This will create a new directory with the given dirname. If there is + * already an empty directory with that name, then use it. + */ +void +create_or_open_dir(const char *dirname) +{ + int ret; + + switch ((ret = pg_check_dir(dirname))) + { + case -1: + /* opendir failed but not with ENOENT */ + pg_fatal("could not open directory \"%s\": %m", dirname); + break; + case 0: + /* directory does not exist */ + if (mkdir(dirname, pg_dir_create_mode) < 0) + pg_fatal("could not create directory \"%s\": %m", dirname); + break; + case 1: + /* exists and is empty, fix perms */ + if (chmod(dirname, pg_dir_create_mode) != 0) + pg_fatal("could not change permissions of directory \"%s\": %m", + dirname); + break; + default: + /* exists and is not empty */ + pg_fatal("directory \"%s\" is not empty", dirname); + } +} diff --git a/src/bin/pg_dump/dumputils.h b/src/bin/pg_dump/dumputils.h index a4bd16857ce5b..91c6e612e282e 100644 --- a/src/bin/pg_dump/dumputils.h +++ b/src/bin/pg_dump/dumputils.h @@ -62,5 +62,6 @@ extern void makeAlterConfigCommand(PGconn *conn, const char *configitem, const char *type, const char *name, const char *type2, const char *name2, PQExpBuffer buf); +extern void create_or_open_dir(const char *dirname); #endif /* DUMPUTILS_H */ diff --git a/src/bin/pg_dump/meson.build b/src/bin/pg_dump/meson.build index 603ba6cfbf0f6..d8e9e101254b1 100644 --- a/src/bin/pg_dump/meson.build +++ b/src/bin/pg_dump/meson.build @@ -6,6 +6,7 @@ pg_dump_common_sources = files( 'compress_lz4.c', 'compress_none.c', 'compress_zstd.c', + 'connectdb.c', 'dumputils.c', 'filter.c', 'parallel.c', @@ -101,6 +102,7 @@ tests += { 't/003_pg_dump_with_server.pl', 't/004_pg_dump_parallel.pl', 't/005_pg_dump_filterfile.pl', + 't/006_pg_dumpall.pl', 't/010_dump_connstr.pl', ], }, diff --git a/src/bin/pg_dump/nls.mk b/src/bin/pg_dump/nls.mk index b7b77394f0fa6..9700f7cbe6c28 100644 --- a/src/bin/pg_dump/nls.mk +++ b/src/bin/pg_dump/nls.mk @@ -13,6 +13,7 @@ GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) \ compress_lz4.c \ compress_none.c \ compress_zstd.c \ + connectdb.c \ pg_dump.c \ common.c \ pg_dump_sort.c \ diff --git a/src/bin/pg_dump/parallel.c b/src/bin/pg_dump/parallel.c index 086adcdc50295..5974d6706fd57 100644 --- a/src/bin/pg_dump/parallel.c +++ b/src/bin/pg_dump/parallel.c @@ -333,6 +333,16 @@ on_exit_close_archive(Archive *AHX) on_exit_nicely(archive_close_connection, &shutdown_info); } +/* + * When pg_restore restores multiple databases, then update already added entry + * into array for cleanup. + */ +void +replace_on_exit_close_archive(Archive *AHX) +{ + shutdown_info.AHX = AHX; +} + /* * on_exit_nicely handler for shutting down database connections and * worker processes cleanly. diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h index 658986de6f836..af0007fb6d2f1 100644 --- a/src/bin/pg_dump/pg_backup.h +++ b/src/bin/pg_dump/pg_backup.h @@ -284,18 +284,15 @@ typedef int DumpId; /* * Function pointer prototypes for assorted callback methods. */ - -typedef int (*DataDumperPtr) (Archive *AH, const void *userArg); - typedef void (*SetupWorkerPtrType) (Archive *AH); /* * Main archiver interface. */ -extern void ConnectDatabase(Archive *AHX, - const ConnParams *cparams, - bool isReconnect); +extern void ConnectDatabaseAhx(Archive *AHX, + const ConnParams *cparams, + bool isReconnect); extern void DisconnectDatabase(Archive *AHX); extern PGconn *GetConnection(Archive *AHX); @@ -311,7 +308,7 @@ extern void SetArchiveOptions(Archive *AH, DumpOptions *dopt, RestoreOptions *ro extern void ProcessArchiveRestoreOptions(Archive *AHX); -extern void RestoreArchive(Archive *AHX); +extern void RestoreArchive(Archive *AHX, bool append_data); /* Open an existing archive */ extern Archive *OpenArchive(const char *FileSpec, const ArchiveFormat fmt); diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 1d131e5a57d4e..afa42337b110f 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -72,7 +72,7 @@ static void processEncodingEntry(ArchiveHandle *AH, TocEntry *te); static void processStdStringsEntry(ArchiveHandle *AH, TocEntry *te); static void processSearchPathEntry(ArchiveHandle *AH, TocEntry *te); static int _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH); -static RestorePass _tocEntryRestorePass(ArchiveHandle *AH, TocEntry *te); +static RestorePass _tocEntryRestorePass(TocEntry *te); static bool _tocEntryIsACL(TocEntry *te); static void _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te); static void _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te); @@ -85,7 +85,7 @@ static int RestoringToDB(ArchiveHandle *AH); static void dump_lo_buf(ArchiveHandle *AH); static void dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim); static void SetOutput(ArchiveHandle *AH, const char *filename, - const pg_compress_specification compression_spec); + const pg_compress_specification compression_spec, bool append_data); static CompressFileHandle *SaveOutput(ArchiveHandle *AH); static void RestoreOutput(ArchiveHandle *AH, CompressFileHandle *savedOutput); @@ -102,8 +102,7 @@ static void pending_list_append(TocEntry *l, TocEntry *te); static void pending_list_remove(TocEntry *te); static int TocEntrySizeCompareQsort(const void *p1, const void *p2); static int TocEntrySizeCompareBinaryheap(void *p1, void *p2, void *arg); -static void move_to_ready_heap(ArchiveHandle *AH, - TocEntry *pending_list, +static void move_to_ready_heap(TocEntry *pending_list, binaryheap *ready_heap, RestorePass pass); static TocEntry *pop_next_work_item(binaryheap *ready_heap, @@ -338,9 +337,14 @@ ProcessArchiveRestoreOptions(Archive *AHX) StrictNamesCheck(ropt); } -/* Public */ +/* + * RestoreArchive + * + * If append_data is set, then append data into file as we are restoring dump + * of multiple databases which was taken by pg_dumpall. + */ void -RestoreArchive(Archive *AHX) +RestoreArchive(Archive *AHX, bool append_data) { ArchiveHandle *AH = (ArchiveHandle *) AHX; RestoreOptions *ropt = AH->public.ropt; @@ -415,7 +419,7 @@ RestoreArchive(Archive *AHX) AHX->minRemoteVersion = 0; AHX->maxRemoteVersion = 9999999; - ConnectDatabase(AHX, &ropt->cparams, false); + ConnectDatabaseAhx(AHX, &ropt->cparams, false); /* * If we're talking to the DB directly, don't send comments since they @@ -457,7 +461,7 @@ RestoreArchive(Archive *AHX) */ sav = SaveOutput(AH); if (ropt->filename || ropt->compression_spec.algorithm != PG_COMPRESSION_NONE) - SetOutput(AH, ropt->filename, ropt->compression_spec); + SetOutput(AH, ropt->filename, ropt->compression_spec, append_data); ahprintf(AH, "--\n-- PostgreSQL database dump\n--\n\n"); @@ -749,7 +753,7 @@ RestoreArchive(Archive *AHX) if ((te->reqs & (REQ_SCHEMA | REQ_DATA | REQ_STATS)) == 0) continue; /* ignore if not to be dumped at all */ - switch (_tocEntryRestorePass(AH, te)) + switch (_tocEntryRestorePass(te)) { case RESTORE_PASS_MAIN: (void) restore_toc_entry(AH, te, false); @@ -768,7 +772,7 @@ RestoreArchive(Archive *AHX) for (te = AH->toc->next; te != AH->toc; te = te->next) { if ((te->reqs & (REQ_SCHEMA | REQ_DATA | REQ_STATS)) != 0 && - _tocEntryRestorePass(AH, te) == RESTORE_PASS_ACL) + _tocEntryRestorePass(te) == RESTORE_PASS_ACL) (void) restore_toc_entry(AH, te, false); } } @@ -778,7 +782,7 @@ RestoreArchive(Archive *AHX) for (te = AH->toc->next; te != AH->toc; te = te->next) { if ((te->reqs & (REQ_SCHEMA | REQ_DATA | REQ_STATS)) != 0 && - _tocEntryRestorePass(AH, te) == RESTORE_PASS_POST_ACL) + _tocEntryRestorePass(te) == RESTORE_PASS_POST_ACL) (void) restore_toc_entry(AH, te, false); } } @@ -1266,6 +1270,9 @@ ArchiveEntry(Archive *AHX, CatalogId catalogId, DumpId dumpId, newToc->dataDumperArg = opts->dumpArg; newToc->hadDumper = opts->dumpFn ? true : false; + newToc->defnDumper = opts->defnFn; + newToc->defnDumperArg = opts->defnArg; + newToc->formatData = NULL; newToc->dataLength = 0; @@ -1293,7 +1300,7 @@ PrintTOCSummary(Archive *AHX) sav = SaveOutput(AH); if (ropt->filename) - SetOutput(AH, ropt->filename, out_compression_spec); + SetOutput(AH, ropt->filename, out_compression_spec, false); if (strftime(stamp_str, sizeof(stamp_str), PGDUMP_STRFTIME_FMT, localtime(&AH->createDate)) == 0) @@ -1672,7 +1679,8 @@ archprintf(Archive *AH, const char *fmt,...) static void SetOutput(ArchiveHandle *AH, const char *filename, - const pg_compress_specification compression_spec) + const pg_compress_specification compression_spec, + bool append_data) { CompressFileHandle *CFH; const char *mode; @@ -1692,7 +1700,7 @@ SetOutput(ArchiveHandle *AH, const char *filename, else fn = fileno(stdout); - if (AH->mode == archModeAppend) + if (append_data || AH->mode == archModeAppend) mode = PG_BINARY_A; else mode = PG_BINARY_W; @@ -2461,7 +2469,7 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt, break; default: - pg_fatal("unrecognized file format \"%d\"", fmt); + pg_fatal("unrecognized file format \"%d\"", AH->format); } return AH; @@ -2621,7 +2629,45 @@ WriteToc(ArchiveHandle *AH) WriteStr(AH, te->tag); WriteStr(AH, te->desc); WriteInt(AH, te->section); - WriteStr(AH, te->defn); + + if (te->defnLen) + { + /* + * defnLen should only be set for custom format's second call to + * WriteToc(), which rewrites the TOC in place to update data + * offsets. Instead of calling the defnDumper a second time + * (which could involve re-executing queries), just skip writing + * the entry. While regenerating the definition should + * theoretically produce the same result as before, it's expensive + * and feels risky. + * + * The custom format only calls WriteToc() a second time if + * fseeko() is usable (see _CloseArchive() in pg_backup_custom.c), + * so we can safely use it without checking. For other formats, + * we fail because one of our assumptions must no longer hold + * true. + * + * XXX This is a layering violation, but the alternative is an + * awkward and complicated callback infrastructure for this + * special case. This might be worth revisiting in the future. + */ + if (AH->format != archCustom) + pg_fatal("unexpected TOC entry in WriteToc(): %d %s %s", + te->dumpId, te->desc, te->tag); + + if (fseeko(AH->FH, te->defnLen, SEEK_CUR != 0)) + pg_fatal("error during file seek: %m"); + } + else if (te->defnDumper) + { + char *defn = te->defnDumper((Archive *) AH, te->defnDumperArg, te); + + te->defnLen = WriteStr(AH, defn); + pg_free(defn); + } + else + WriteStr(AH, te->defn); + WriteStr(AH, te->dropStmt); WriteStr(AH, te->copyStmt); WriteStr(AH, te->namespace); @@ -3220,7 +3266,7 @@ _tocEntryRequired(TocEntry *te, teSection curSection, ArchiveHandle *AH) * See notes with the RestorePass typedef in pg_backup_archiver.h. */ static RestorePass -_tocEntryRestorePass(ArchiveHandle *AH, TocEntry *te) +_tocEntryRestorePass(TocEntry *te) { /* "ACL LANGUAGE" was a crock emitted only in PG 7.4 */ if (strcmp(te->desc, "ACL") == 0 || @@ -3243,23 +3289,16 @@ _tocEntryRestorePass(ArchiveHandle *AH, TocEntry *te) /* * If statistics data is dependent on materialized view data, it must be - * deferred to RESTORE_PASS_POST_ACL. + * deferred to RESTORE_PASS_POST_ACL. Those entries are already marked as + * SECTION_POST_DATA, and some other stats entries (e.g., index stats) + * will also be marked as SECTION_POST_DATA. Additionally, our lookahead + * code in fetchAttributeStats() assumes that we dump all statistics data + * entries in TOC order. To ensure this assumption holds, we move all + * statistics data entries in SECTION_POST_DATA to RESTORE_PASS_POST_ACL. */ - if (strcmp(te->desc, "STATISTICS DATA") == 0) - { - for (int i = 0; i < te->nDeps; i++) - { - DumpId depid = te->dependencies[i]; - - if (depid <= AH->maxDumpId && AH->tocsByDumpId[depid] != NULL) - { - TocEntry *otherte = AH->tocsByDumpId[depid]; - - if (strcmp(otherte->desc, "MATERIALIZED VIEW DATA") == 0) - return RESTORE_PASS_POST_ACL; - } - } - } + if (strcmp(te->desc, "STATISTICS DATA") == 0 && + te->section == SECTION_POST_DATA) + return RESTORE_PASS_POST_ACL; /* All else can be handled in the main pass. */ return RESTORE_PASS_MAIN; @@ -3849,7 +3888,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, const char *pfx) /* * Actually print the definition. Normally we can just print the defn - * string if any, but we have three special cases: + * string if any, but we have four special cases: * * 1. A crude hack for suppressing AUTHORIZATION clause that old pg_dump * versions put into CREATE SCHEMA. Don't mutate the variant for schema @@ -3862,6 +3901,11 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, const char *pfx) * 3. ACL LARGE OBJECTS entries need special processing because they * contain only one copy of the ACL GRANT/REVOKE commands, which we must * apply to each large object listed in the associated BLOB METADATA. + * + * 4. Entries with a defnDumper need to call it to generate the + * definition. This is primarily intended to provide a way to save memory + * for objects that would otherwise need a lot of it (e.g., statistics + * data). */ if (ropt->noOwner && strcmp(te->desc, "SCHEMA") == 0 && strncmp(te->defn, "--", 2) != 0) @@ -3877,6 +3921,39 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, const char *pfx) { IssueACLPerBlob(AH, te); } + else if (te->defnLen && AH->format != archTar) + { + /* + * If defnLen is set, the defnDumper has already been called for this + * TOC entry. We don't normally expect a defnDumper to be called for + * a TOC entry a second time in _printTocEntry(), but there's an + * exception. The tar format first calls WriteToc(), which scans the + * entire TOC, and then it later calls RestoreArchive() to generate + * restore.sql, which scans the TOC again. There doesn't appear to be + * a good way to prevent a second defnDumper call in this case without + * storing the definition in memory, which defeats the purpose. This + * second defnDumper invocation should generate the same output as the + * first, but even if it doesn't, the worst-case scenario is that + * restore.sql might have different statistics data than the archive. + * + * In all other cases, encountering a TOC entry a second time in + * _printTocEntry() is unexpected, so we fail because one of our + * assumptions must no longer hold true. + * + * XXX This is a layering violation, but the alternative is an awkward + * and complicated callback infrastructure for this special case. This + * might be worth revisiting in the future. + */ + pg_fatal("unexpected TOC entry in _printTocEntry(): %d %s %s", + te->dumpId, te->desc, te->tag); + } + else if (te->defnDumper) + { + char *defn = te->defnDumper((Archive *) AH, te->defnDumperArg, te); + + te->defnLen = ahprintf(AH, "%s\n\n", defn); + pg_free(defn); + } else if (te->defn && strlen(te->defn) > 0) { ahprintf(AH, "%s\n\n", te->defn); @@ -4270,7 +4347,7 @@ restore_toc_entries_prefork(ArchiveHandle *AH, TocEntry *pending_list) * not set skipped_some in this case, since by assumption no main-pass * items could depend on these. */ - if (_tocEntryRestorePass(AH, next_work_item) != RESTORE_PASS_MAIN) + if (_tocEntryRestorePass(next_work_item) != RESTORE_PASS_MAIN) do_now = false; if (do_now) @@ -4352,7 +4429,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate, * process in the current restore pass. */ AH->restorePass = RESTORE_PASS_MAIN; - move_to_ready_heap(AH, pending_list, ready_heap, AH->restorePass); + move_to_ready_heap(pending_list, ready_heap, AH->restorePass); /* * main parent loop @@ -4401,7 +4478,7 @@ restore_toc_entries_parallel(ArchiveHandle *AH, ParallelState *pstate, /* Advance to next restore pass */ AH->restorePass++; /* That probably allows some stuff to be made ready */ - move_to_ready_heap(AH, pending_list, ready_heap, AH->restorePass); + move_to_ready_heap(pending_list, ready_heap, AH->restorePass); /* Loop around to see if anything's now ready */ continue; } @@ -4458,7 +4535,7 @@ restore_toc_entries_postfork(ArchiveHandle *AH, TocEntry *pending_list) /* * Now reconnect the single parent connection. */ - ConnectDatabase((Archive *) AH, &ropt->cparams, true); + ConnectDatabaseAhx((Archive *) AH, &ropt->cparams, true); /* re-establish fixed state */ _doSetFixedOutputState(AH); @@ -4572,8 +4649,7 @@ TocEntrySizeCompareBinaryheap(void *p1, void *p2, void *arg) * which applies the same logic one-at-a-time.) */ static void -move_to_ready_heap(ArchiveHandle *AH, - TocEntry *pending_list, +move_to_ready_heap(TocEntry *pending_list, binaryheap *ready_heap, RestorePass pass) { @@ -4586,7 +4662,7 @@ move_to_ready_heap(ArchiveHandle *AH, next_te = te->pending_next; if (te->depCount == 0 && - _tocEntryRestorePass(AH, te) == pass) + _tocEntryRestorePass(te) == pass) { /* Remove it from pending_list ... */ pending_list_remove(te); @@ -4980,7 +5056,7 @@ reduce_dependencies(ArchiveHandle *AH, TocEntry *te, * memberships changed. */ if (otherte->depCount == 0 && - _tocEntryRestorePass(AH, otherte) == AH->restorePass && + _tocEntryRestorePass(otherte) == AH->restorePass && otherte->pending_prev != NULL && ready_heap != NULL) { @@ -5076,7 +5152,7 @@ CloneArchive(ArchiveHandle *AH) * Connect our new clone object to the database, using the same connection * parameters used for the original connection. */ - ConnectDatabase((Archive *) clone, &clone->public.ropt->cparams, true); + ConnectDatabaseAhx((Archive *) clone, &clone->public.ropt->cparams, true); /* re-establish fixed state */ if (AH->mode == archModeRead) diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h index a2064f471edef..365073b3eae45 100644 --- a/src/bin/pg_dump/pg_backup_archiver.h +++ b/src/bin/pg_dump/pg_backup_archiver.h @@ -341,6 +341,10 @@ struct _archiveHandle struct _tocEntry *lastErrorTE; }; + +typedef char *(*DefnDumperPtr) (Archive *AH, const void *userArg, const TocEntry *te); +typedef int (*DataDumperPtr) (Archive *AH, const void *userArg); + struct _tocEntry { struct _tocEntry *prev; @@ -368,6 +372,10 @@ struct _tocEntry const void *dataDumperArg; /* Arg for above routine */ void *formatData; /* TOC Entry data specific to file format */ + DefnDumperPtr defnDumper; /* routine to dump definition statement */ + const void *defnDumperArg; /* arg for above routine */ + size_t defnLen; /* length of dumped definition */ + /* working state while dumping/restoring */ pgoff_t dataLength; /* item's data size; 0 if none or unknown */ int reqs; /* do we need schema and/or data of object @@ -386,6 +394,7 @@ struct _tocEntry extern int parallel_restore(ArchiveHandle *AH, TocEntry *te); extern void on_exit_close_archive(Archive *AHX); +extern void replace_on_exit_close_archive(Archive *AHX); extern void warn_or_exit_horribly(ArchiveHandle *AH, const char *fmt,...) pg_attribute_printf(2, 3); @@ -407,6 +416,8 @@ typedef struct _archiveOpts int nDeps; DataDumperPtr dumpFn; const void *dumpArg; + DefnDumperPtr defnFn; + const void *defnArg; } ArchiveOpts; #define ARCHIVE_OPTS(...) &(ArchiveOpts){__VA_ARGS__} /* Called to add a TOC entry */ diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c index e44b887eb29bd..f7c3af56304ce 100644 --- a/src/bin/pg_dump/pg_backup_custom.c +++ b/src/bin/pg_dump/pg_backup_custom.c @@ -755,9 +755,11 @@ _CloseArchive(ArchiveHandle *AH) * If possible, re-write the TOC in order to update the data offset * information. This is not essential, as pg_restore can cope in most * cases without it; but it can make pg_restore significantly faster - * in some situations (especially parallel restore). + * in some situations (especially parallel restore). We can skip this + * step if we're not dumping any data; there are no offsets to update + * in that case. */ - if (ctx->hasSeek && + if (ctx->hasSeek && AH->public.dopt->dumpData && fseeko(AH->FH, tpos, SEEK_SET) == 0) WriteToc(AH); } diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c index 71c55d2466a59..5c349279beb56 100644 --- a/src/bin/pg_dump/pg_backup_db.c +++ b/src/bin/pg_dump/pg_backup_db.c @@ -19,6 +19,7 @@ #include "common/connect.h" #include "common/string.h" +#include "connectdb.h" #include "parallel.h" #include "pg_backup_archiver.h" #include "pg_backup_db.h" @@ -86,9 +87,9 @@ ReconnectToServer(ArchiveHandle *AH, const char *dbname) * ArchiveHandle's connCancel, before closing old connection. Otherwise * an ill-timed SIGINT could try to access a dead connection. */ - AH->connection = NULL; /* dodge error check in ConnectDatabase */ + AH->connection = NULL; /* dodge error check in ConnectDatabaseAhx */ - ConnectDatabase((Archive *) AH, &ropt->cparams, true); + ConnectDatabaseAhx((Archive *) AH, &ropt->cparams, true); PQfinish(oldConn); } @@ -105,14 +106,13 @@ ReconnectToServer(ArchiveHandle *AH, const char *dbname) * username never does change, so one savedPassword is sufficient. */ void -ConnectDatabase(Archive *AHX, - const ConnParams *cparams, - bool isReconnect) +ConnectDatabaseAhx(Archive *AHX, + const ConnParams *cparams, + bool isReconnect) { ArchiveHandle *AH = (ArchiveHandle *) AHX; trivalue prompt_password; char *password; - bool new_pass; if (AH->connection) pg_fatal("already connected to a database"); @@ -125,69 +125,10 @@ ConnectDatabase(Archive *AHX, if (prompt_password == TRI_YES && password == NULL) password = simple_prompt("Password: ", false); - /* - * Start the connection. Loop until we have a password if requested by - * backend. - */ - do - { - const char *keywords[8]; - const char *values[8]; - int i = 0; - - /* - * If dbname is a connstring, its entries can override the other - * values obtained from cparams; but in turn, override_dbname can - * override the dbname component of it. - */ - keywords[i] = "host"; - values[i++] = cparams->pghost; - keywords[i] = "port"; - values[i++] = cparams->pgport; - keywords[i] = "user"; - values[i++] = cparams->username; - keywords[i] = "password"; - values[i++] = password; - keywords[i] = "dbname"; - values[i++] = cparams->dbname; - if (cparams->override_dbname) - { - keywords[i] = "dbname"; - values[i++] = cparams->override_dbname; - } - keywords[i] = "fallback_application_name"; - values[i++] = progname; - keywords[i] = NULL; - values[i++] = NULL; - Assert(i <= lengthof(keywords)); - - new_pass = false; - AH->connection = PQconnectdbParams(keywords, values, true); - - if (!AH->connection) - pg_fatal("could not connect to database"); - - if (PQstatus(AH->connection) == CONNECTION_BAD && - PQconnectionNeedsPassword(AH->connection) && - password == NULL && - prompt_password != TRI_NO) - { - PQfinish(AH->connection); - password = simple_prompt("Password: ", false); - new_pass = true; - } - } while (new_pass); - - /* check to see that the backend connection was successfully made */ - if (PQstatus(AH->connection) == CONNECTION_BAD) - { - if (isReconnect) - pg_fatal("reconnection failed: %s", - PQerrorMessage(AH->connection)); - else - pg_fatal("%s", - PQerrorMessage(AH->connection)); - } + AH->connection = ConnectDatabase(cparams->dbname, NULL, cparams->pghost, + cparams->pgport, cparams->username, + prompt_password, true, + progname, NULL, NULL, password, cparams->override_dbname); /* Start strict; later phases may override this. */ PQclear(ExecuteSqlQueryForSingleRow((Archive *) AH, diff --git a/src/bin/pg_dump/pg_backup_directory.c b/src/bin/pg_dump/pg_backup_directory.c index b2a841bb0ffb3..21b00792a8a48 100644 --- a/src/bin/pg_dump/pg_backup_directory.c +++ b/src/bin/pg_dump/pg_backup_directory.c @@ -41,6 +41,7 @@ #include "common/file_utils.h" #include "compress_io.h" +#include "dumputils.h" #include "parallel.h" #include "pg_backup_utils.h" @@ -156,41 +157,8 @@ InitArchiveFmt_Directory(ArchiveHandle *AH) if (AH->mode == archModeWrite) { - struct stat st; - bool is_empty = false; - /* we accept an empty existing directory */ - if (stat(ctx->directory, &st) == 0 && S_ISDIR(st.st_mode)) - { - DIR *dir = opendir(ctx->directory); - - if (dir) - { - struct dirent *d; - - is_empty = true; - while (errno = 0, (d = readdir(dir))) - { - if (strcmp(d->d_name, ".") != 0 && strcmp(d->d_name, "..") != 0) - { - is_empty = false; - break; - } - } - - if (errno) - pg_fatal("could not read directory \"%s\": %m", - ctx->directory); - - if (closedir(dir)) - pg_fatal("could not close directory \"%s\": %m", - ctx->directory); - } - } - - if (!is_empty && mkdir(ctx->directory, 0700) < 0) - pg_fatal("could not create directory \"%s\": %m", - ctx->directory); + create_or_open_dir(ctx->directory); } else { /* Read Mode */ diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c index b5ba3b46dd999..d94d0de2a5d17 100644 --- a/src/bin/pg_dump/pg_backup_tar.c +++ b/src/bin/pg_dump/pg_backup_tar.c @@ -826,7 +826,7 @@ _CloseArchive(ArchiveHandle *AH) savVerbose = AH->public.verbose; AH->public.verbose = 0; - RestoreArchive((Archive *) AH); + RestoreArchive((Archive *) AH, false); SetArchiveOptions((Archive *) AH, savDopt, savRopt); diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 4ca34be230cd7..37432e66efd7c 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -209,6 +209,9 @@ static int nbinaryUpgradeClassOids = 0; static SequenceItem *sequences = NULL; static int nsequences = 0; +/* Maximum number of relations to fetch in a fetchAttributeStats() call. */ +#define MAX_ATTR_STATS_RELS 64 + /* * The default number of rows per INSERT when * --inserts is specified without --rows-per-insert @@ -347,8 +350,10 @@ static void buildMatViewRefreshDependencies(Archive *fout); static void getTableDataFKConstraints(void); static void determineNotNullFlags(Archive *fout, PGresult *res, int r, TableInfo *tbinfo, int j, - int i_notnull_name, int i_notnull_noinherit, - int i_notnull_islocal); + int i_notnull_name, int i_notnull_invalidoid, + int i_notnull_noinherit, + int i_notnull_islocal, + PQExpBuffer *invalidnotnulloids); static char *format_function_arguments(const FuncInfo *finfo, const char *funcargs, bool is_agg); static char *format_function_signature(Archive *fout, @@ -966,7 +971,7 @@ main(int argc, char **argv) * Open the database using the Archiver, so it knows about it. Errors mean * death. */ - ConnectDatabase(fout, &dopt.cparams, false); + ConnectDatabaseAhx(fout, &dopt.cparams, false); setup_connection(fout, dumpencoding, dumpsnapshot, use_role); /* @@ -1219,7 +1224,7 @@ main(int argc, char **argv) * right now. */ if (plainText) - RestoreArchive(fout); + RestoreArchive(fout, false); CloseArchive(fout); @@ -1772,7 +1777,7 @@ expand_table_name_patterns(Archive *fout, */ if (with_child_tables) { - appendPQExpBuffer(query, "WITH RECURSIVE partition_tree (relid) AS (\n"); + appendPQExpBufferStr(query, "WITH RECURSIVE partition_tree (relid) AS (\n"); } appendPQExpBuffer(query, @@ -1799,13 +1804,13 @@ expand_table_name_patterns(Archive *fout, if (with_child_tables) { - appendPQExpBuffer(query, "UNION" - "\nSELECT i.inhrelid" - "\nFROM partition_tree p" - "\n JOIN pg_catalog.pg_inherits i" - "\n ON p.relid OPERATOR(pg_catalog.=) i.inhparent" - "\n)" - "\nSELECT relid FROM partition_tree"); + appendPQExpBufferStr(query, "UNION" + "\nSELECT i.inhrelid" + "\nFROM partition_tree p" + "\n JOIN pg_catalog.pg_inherits i" + "\n ON p.relid OPERATOR(pg_catalog.=) i.inhparent" + "\n)" + "\nSELECT relid FROM partition_tree"); } ExecuteSqlStatement(fout, "RESET search_path"); @@ -5029,8 +5034,8 @@ getSubscriptions(Archive *fout) appendPQExpBufferStr(query, " s.subfailover\n"); else - appendPQExpBuffer(query, - " false AS subfailover\n"); + appendPQExpBufferStr(query, + " false AS subfailover\n"); appendPQExpBufferStr(query, "FROM pg_subscription s\n"); @@ -5252,7 +5257,7 @@ dumpSubscriptionTable(Archive *fout, const SubRelInfo *subrinfo) if (subrinfo->srsublsn && subrinfo->srsublsn[0] != '\0') appendPQExpBuffer(query, ", '%s'", subrinfo->srsublsn); else - appendPQExpBuffer(query, ", NULL"); + appendPQExpBufferStr(query, ", NULL"); appendPQExpBufferStr(query, ");\n"); } @@ -5347,7 +5352,7 @@ dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo) appendPQExpBufferStr(query, ", disable_on_error = true"); if (!subinfo->subpasswordrequired) - appendPQExpBuffer(query, ", password_required = false"); + appendPQExpBufferStr(query, ", password_required = false"); if (subinfo->subrunasowner) appendPQExpBufferStr(query, ", run_as_owner = true"); @@ -8084,13 +8089,7 @@ getConstraints(Archive *fout, TableInfo tblinfo[], int numTables) { TableInfo *tinfo = &tblinfo[i]; - /* - * For partitioned tables, foreign keys have no triggers so they must - * be included anyway in case some foreign keys are defined. - */ - if ((!tinfo->hastriggers && - tinfo->relkind != RELKIND_PARTITIONED_TABLE) || - !(tinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)) + if (!(tinfo->dobj.dump & DUMP_COMPONENT_DEFINITION)) continue; /* OK, we need info for this table */ @@ -8987,6 +8986,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) PQExpBuffer q = createPQExpBuffer(); PQExpBuffer tbloids = createPQExpBuffer(); PQExpBuffer checkoids = createPQExpBuffer(); + PQExpBuffer invalidnotnulloids = NULL; PGresult *res; int ntups; int curtblindx; @@ -9006,6 +9006,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) int i_notnull_name; int i_notnull_noinherit; int i_notnull_islocal; + int i_notnull_invalidoid; int i_attoptions; int i_attcollation; int i_attcompression; @@ -9092,19 +9093,26 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) * attnotnull (this cues dumpTableSchema to print the NOT NULL clause * without a name); also, such cases are never NO INHERIT. * + * For invalid constraints, we need to store their OIDs for processing + * elsewhere, so we bring the pg_constraint.oid value when the constraint + * is invalid, and NULL otherwise. + * * We track in notnull_islocal whether the constraint was defined directly * in this table or via an ancestor, for binary upgrade. flagInhAttrs - * might modify this later for servers older than 18; it's also in charge - * of determining the correct inhcount. + * might modify this later; that routine is also in charge of determining + * the correct inhcount. */ if (fout->remoteVersion >= 180000) appendPQExpBufferStr(q, "co.conname AS notnull_name,\n" + "CASE WHEN NOT co.convalidated THEN co.oid " + "ELSE NULL END AS notnull_invalidoid,\n" "co.connoinherit AS notnull_noinherit,\n" "co.conislocal AS notnull_islocal,\n"); else appendPQExpBufferStr(q, "CASE WHEN a.attnotnull THEN '' ELSE NULL END AS notnull_name,\n" + "NULL AS notnull_invalidoid,\n" "false AS notnull_noinherit,\n" "a.attislocal AS notnull_islocal,\n"); @@ -9179,6 +9187,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) i_attalign = PQfnumber(res, "attalign"); i_attislocal = PQfnumber(res, "attislocal"); i_notnull_name = PQfnumber(res, "notnull_name"); + i_notnull_invalidoid = PQfnumber(res, "notnull_invalidoid"); i_notnull_noinherit = PQfnumber(res, "notnull_noinherit"); i_notnull_islocal = PQfnumber(res, "notnull_islocal"); i_attoptions = PQfnumber(res, "attoptions"); @@ -9246,6 +9255,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) tbinfo->attfdwoptions = (char **) pg_malloc(numatts * sizeof(char *)); tbinfo->attmissingval = (char **) pg_malloc(numatts * sizeof(char *)); tbinfo->notnull_constrs = (char **) pg_malloc(numatts * sizeof(char *)); + tbinfo->notnull_invalid = (bool *) pg_malloc(numatts * sizeof(bool)); tbinfo->notnull_noinh = (bool *) pg_malloc(numatts * sizeof(bool)); tbinfo->notnull_islocal = (bool *) pg_malloc(numatts * sizeof(bool)); tbinfo->attrdefs = (AttrDefInfo **) pg_malloc(numatts * sizeof(AttrDefInfo *)); @@ -9275,8 +9285,11 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) /* Handle not-null constraint name and flags */ determineNotNullFlags(fout, res, r, tbinfo, j, - i_notnull_name, i_notnull_noinherit, - i_notnull_islocal); + i_notnull_name, + i_notnull_invalidoid, + i_notnull_noinherit, + i_notnull_islocal, + &invalidnotnulloids); tbinfo->attoptions[j] = pg_strdup(PQgetvalue(res, r, i_attoptions)); tbinfo->attcollation[j] = atooid(PQgetvalue(res, r, i_attcollation)); @@ -9297,6 +9310,10 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) } } + /* If invalidnotnulloids has any data, finalize it */ + if (invalidnotnulloids != NULL) + appendPQExpBufferChar(invalidnotnulloids, '}'); + PQclear(res); /* @@ -9429,6 +9446,103 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) PQclear(res); } + /* + * Get info about NOT NULL NOT VALID constraints. This is skipped for a + * data-only dump, as it is only needed for table schemas. + */ + if (dopt->dumpSchema && invalidnotnulloids) + { + ConstraintInfo *constrs; + int numConstrs; + int i_tableoid; + int i_oid; + int i_conrelid; + int i_conname; + int i_consrc; + int i_conislocal; + + pg_log_info("finding invalid not null constraints"); + + resetPQExpBuffer(q); + appendPQExpBuffer(q, + "SELECT c.tableoid, c.oid, conrelid, conname, " + "pg_catalog.pg_get_constraintdef(c.oid) AS consrc, " + "conislocal, convalidated " + "FROM unnest('%s'::pg_catalog.oid[]) AS src(conoid)\n" + "JOIN pg_catalog.pg_constraint c ON (src.conoid = c.oid)\n" + "ORDER BY c.conrelid, c.conname", + invalidnotnulloids->data); + + res = ExecuteSqlQuery(fout, q->data, PGRES_TUPLES_OK); + + numConstrs = PQntuples(res); + constrs = (ConstraintInfo *) pg_malloc(numConstrs * sizeof(ConstraintInfo)); + + i_tableoid = PQfnumber(res, "tableoid"); + i_oid = PQfnumber(res, "oid"); + i_conrelid = PQfnumber(res, "conrelid"); + i_conname = PQfnumber(res, "conname"); + i_consrc = PQfnumber(res, "consrc"); + i_conislocal = PQfnumber(res, "conislocal"); + + /* As above, this loop iterates once per table, not once per row */ + curtblindx = -1; + for (int j = 0; j < numConstrs;) + { + Oid conrelid = atooid(PQgetvalue(res, j, i_conrelid)); + TableInfo *tbinfo = NULL; + int numcons; + + /* Count rows for this table */ + for (numcons = 1; numcons < numConstrs - j; numcons++) + if (atooid(PQgetvalue(res, j + numcons, i_conrelid)) != conrelid) + break; + + /* + * Locate the associated TableInfo; we rely on tblinfo[] being in + * OID order. + */ + while (++curtblindx < numTables) + { + tbinfo = &tblinfo[curtblindx]; + if (tbinfo->dobj.catId.oid == conrelid) + break; + } + if (curtblindx >= numTables) + pg_fatal("unrecognized table OID %u", conrelid); + + for (int c = 0; c < numcons; c++, j++) + { + constrs[j].dobj.objType = DO_CONSTRAINT; + constrs[j].dobj.catId.tableoid = atooid(PQgetvalue(res, j, i_tableoid)); + constrs[j].dobj.catId.oid = atooid(PQgetvalue(res, j, i_oid)); + AssignDumpId(&constrs[j].dobj); + constrs[j].dobj.name = pg_strdup(PQgetvalue(res, j, i_conname)); + constrs[j].dobj.namespace = tbinfo->dobj.namespace; + constrs[j].contable = tbinfo; + constrs[j].condomain = NULL; + constrs[j].contype = 'n'; + constrs[j].condef = pg_strdup(PQgetvalue(res, j, i_consrc)); + constrs[j].confrelid = InvalidOid; + constrs[j].conindex = 0; + constrs[j].condeferrable = false; + constrs[j].condeferred = false; + constrs[j].conislocal = (PQgetvalue(res, j, i_conislocal)[0] == 't'); + + /* + * All invalid not-null constraints must be dumped separately, + * because CREATE TABLE would not create them as invalid, and + * also because they must be created after potentially + * violating data has been loaded. + */ + constrs[j].separate = true; + + constrs[j].dobj.dump = tbinfo->dobj.dump; + } + } + PQclear(res); + } + /* * Get info about table CHECK constraints. This is skipped for a * data-only dump, as it is only needed for table schemas. @@ -9573,48 +9687,96 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int numTables) * * Result row 'r' is for tbinfo's attribute 'j'. * - * There are three possibilities: + * There are four possibilities: * 1) the column has no not-null constraints. In that case, ->notnull_constrs * (the constraint name) remains NULL. * 2) The column has a constraint with no name (this is the case when * constraints come from pre-18 servers). In this case, ->notnull_constrs * is set to the empty string; dumpTableSchema will print just "NOT NULL". - * 3) The column has a constraint with a known name; in that case + * 3) The column has an invalid not-null constraint. This must be treated + * as a separate object (because it must be created after the table data + * is loaded). So we add its OID to invalidnotnulloids for processing + * elsewhere and do nothing further with it here. We distinguish this + * case because the "notnull_invalidoid" column has been set to a non-NULL + * value, which is the constraint OID. Valid constraints have a null OID. + * 4) The column has a constraint with a known name; in that case * notnull_constrs carries that name and dumpTableSchema will print * "CONSTRAINT the_name NOT NULL". However, if the name is the default * (table_column_not_null), there's no need to print that name in the dump, - * so notnull_constrs is set to the empty string and it behaves as the case - * above. + * so notnull_constrs is set to the empty string and it behaves as case 2. * * In a child table that inherits from a parent already containing NOT NULL * constraints and the columns in the child don't have their own NOT NULL * declarations, we suppress printing constraints in the child: the * constraints are acquired at the point where the child is attached to the - * parent. This is tracked in ->notnull_islocal (which is set in flagInhAttrs - * for servers pre-18). + * parent. This is tracked in ->notnull_islocal; for servers pre-18 this is + * set not here but in flagInhAttrs. That flag is also used when the + * constraint was validated in a child but all its parent have it as NOT + * VALID. * * Any of these constraints might have the NO INHERIT bit. If so we set * ->notnull_noinh and NO INHERIT will be printed by dumpTableSchema. * - * In case 3 above, the name comparison is a bit of a hack; it actually fails + * In case 4 above, the name comparison is a bit of a hack; it actually fails * to do the right thing in all but the trivial case. However, the downside * of getting it wrong is simply that the name is printed rather than * suppressed, so it's not a big deal. + * + * invalidnotnulloids is expected to be given as NULL; if any invalid not-null + * constraints are found, it is initialized and filled with the array of + * OIDs of such constraints, for later processing. */ static void determineNotNullFlags(Archive *fout, PGresult *res, int r, TableInfo *tbinfo, int j, - int i_notnull_name, int i_notnull_noinherit, - int i_notnull_islocal) + int i_notnull_name, + int i_notnull_invalidoid, + int i_notnull_noinherit, + int i_notnull_islocal, + PQExpBuffer *invalidnotnulloids) { DumpOptions *dopt = fout->dopt; + /* + * If this not-null constraint is not valid, list its OID in + * invalidnotnulloids and do nothing further. It'll be processed + * elsewhere later. + * + * Because invalid not-null constraints are rare, we don't want to malloc + * invalidnotnulloids until we're sure we're going it need it, which + * happens here. + */ + if (!PQgetisnull(res, r, i_notnull_invalidoid)) + { + char *constroid = PQgetvalue(res, r, i_notnull_invalidoid); + + if (*invalidnotnulloids == NULL) + { + *invalidnotnulloids = createPQExpBuffer(); + appendPQExpBufferChar(*invalidnotnulloids, '{'); + appendPQExpBufferStr(*invalidnotnulloids, constroid); + } + else + appendPQExpBuffer(*invalidnotnulloids, ",%s", constroid); + + /* + * Track when a parent constraint is invalid for the cases where a + * child constraint has been validated independenly. + */ + tbinfo->notnull_invalid[j] = true; + + /* nothing else to do */ + tbinfo->notnull_constrs[j] = NULL; + return; + } + /* * notnull_noinh is straight from the query result. notnull_islocal also, - * though flagInhAttrs may change that one later in versions < 18. + * though flagInhAttrs may change that one later. */ tbinfo->notnull_noinh[j] = PQgetvalue(res, r, i_notnull_noinherit)[0] == 't'; tbinfo->notnull_islocal[j] = PQgetvalue(res, r, i_notnull_islocal)[0] == 't'; + tbinfo->notnull_invalid[j] = false; /* * Determine a constraint name to use. If the column is not marked not- @@ -10560,17 +10722,109 @@ appendNamedArgument(PQExpBuffer out, Archive *fout, const char *argname, } /* - * dumpRelationStats -- + * fetchAttributeStats -- * - * Dump command to import stats into the relation on the new database. + * Fetch next batch of attribute statistics for dumpRelationStats_dumper(). */ -static void -dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) +static PGresult * +fetchAttributeStats(Archive *fout) { - const DumpableObject *dobj = &rsinfo->dobj; - PGresult *res; + ArchiveHandle *AH = (ArchiveHandle *) fout; + PQExpBuffer nspnames = createPQExpBuffer(); + PQExpBuffer relnames = createPQExpBuffer(); + int count = 0; + PGresult *res = NULL; + static TocEntry *te; + static bool restarted; + int max_rels = MAX_ATTR_STATS_RELS; + + /* + * Our query for retrieving statistics for multiple relations uses WITH + * ORDINALITY and multi-argument UNNEST(), both of which were introduced + * in v9.4. For older versions, we resort to gathering statistics for a + * single relation at a time. + */ + if (fout->remoteVersion < 90400) + max_rels = 1; + + /* If we're just starting, set our TOC pointer. */ + if (!te) + te = AH->toc->next; + + /* + * We can't easily avoid a second TOC scan for the tar format because it + * writes restore.sql separately, which means we must execute the queries + * twice. This feels risky, but there is no known reason it should + * generate different output than the first pass. Even if it does, the + * worst-case scenario is that restore.sql might have different statistics + * data than the archive. + */ + if (!restarted && te == AH->toc && AH->format == archTar) + { + te = AH->toc->next; + restarted = true; + } + + appendPQExpBufferChar(nspnames, '{'); + appendPQExpBufferChar(relnames, '{'); + + /* + * Scan the TOC for the next set of relevant stats entries. We assume + * that statistics are dumped in the order they are listed in the TOC. + * This is perhaps not the sturdiest assumption, so we verify it matches + * reality in dumpRelationStats_dumper(). + */ + for (; te != AH->toc && count < max_rels; te = te->next) + { + if ((te->reqs & REQ_STATS) != 0 && + strcmp(te->desc, "STATISTICS DATA") == 0) + { + appendPGArray(nspnames, te->namespace); + appendPGArray(relnames, te->tag); + count++; + } + } + + appendPQExpBufferChar(nspnames, '}'); + appendPQExpBufferChar(relnames, '}'); + + /* Execute the query for the next batch of relations. */ + if (count > 0) + { + PQExpBuffer query = createPQExpBuffer(); + + appendPQExpBufferStr(query, "EXECUTE getAttributeStats("); + appendStringLiteralAH(query, nspnames->data, fout); + appendPQExpBufferStr(query, "::pg_catalog.name[],"); + appendStringLiteralAH(query, relnames->data, fout); + appendPQExpBufferStr(query, "::pg_catalog.name[])"); + res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); + destroyPQExpBuffer(query); + } + + destroyPQExpBuffer(nspnames); + destroyPQExpBuffer(relnames); + return res; +} + +/* + * dumpRelationStats_dumper -- + * + * Generate command to import stats into the relation on the new database. + * This routine is called by the Archiver when it wants the statistics to be + * dumped. + */ +static char * +dumpRelationStats_dumper(Archive *fout, const void *userArg, const TocEntry *te) +{ + const RelStatsInfo *rsinfo = (RelStatsInfo *) userArg; + static PGresult *res; + static int rownum; PQExpBuffer query; - PQExpBuffer out; + PQExpBufferData out_data; + PQExpBuffer out = &out_data; + int i_schemaname; + int i_tablename; int i_attname; int i_inherited; int i_null_frac; @@ -10586,17 +10840,31 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) int i_range_length_histogram; int i_range_empty_frac; int i_range_bounds_histogram; + static TocEntry *expected_te; - /* nothing to do if we are not dumping statistics */ - if (!fout->dopt->dumpStatistics) - return; + /* + * fetchAttributeStats() assumes that the statistics are dumped in the + * order they are listed in the TOC. We verify that here for safety. + */ + if (!expected_te) + expected_te = ((ArchiveHandle *) fout)->toc; + + expected_te = expected_te->next; + while ((expected_te->reqs & REQ_STATS) == 0 || + strcmp(expected_te->desc, "STATISTICS DATA") != 0) + expected_te = expected_te->next; + + if (te != expected_te) + pg_fatal("stats dumped out of order (current: %d %s %s) (expected: %d %s %s)", + te->dumpId, te->desc, te->tag, + expected_te->dumpId, expected_te->desc, expected_te->tag); query = createPQExpBuffer(); if (!fout->is_prepared[PREPQUERY_GETATTRIBUTESTATS]) { appendPQExpBufferStr(query, - "PREPARE getAttributeStats(pg_catalog.name, pg_catalog.name) AS\n" - "SELECT s.attname, s.inherited, " + "PREPARE getAttributeStats(pg_catalog.name[], pg_catalog.name[]) AS\n" + "SELECT s.schemaname, s.tablename, s.attname, s.inherited, " "s.null_frac, s.avg_width, s.n_distinct, " "s.most_common_vals, s.most_common_freqs, " "s.histogram_bounds, s.correlation, " @@ -10614,11 +10882,33 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) "NULL AS range_empty_frac," "NULL AS range_bounds_histogram "); - appendPQExpBufferStr(query, - "FROM pg_catalog.pg_stats s " - "WHERE s.schemaname = $1 " - "AND s.tablename = $2 " - "ORDER BY s.attname, s.inherited"); + /* + * The results must be in the order of the relations supplied in the + * parameters to ensure we remain in sync as we walk through the TOC. + * The redundant filter clause on s.tablename = ANY(...) seems + * sufficient to convince the planner to use + * pg_class_relname_nsp_index, which avoids a full scan of pg_stats. + * This may not work for all versions. + * + * Our query for retrieving statistics for multiple relations uses + * WITH ORDINALITY and multi-argument UNNEST(), both of which were + * introduced in v9.4. For older versions, we resort to gathering + * statistics for a single relation at a time. + */ + if (fout->remoteVersion >= 90400) + appendPQExpBufferStr(query, + "FROM pg_catalog.pg_stats s " + "JOIN unnest($1, $2) WITH ORDINALITY AS u (schemaname, tablename, ord) " + "ON s.schemaname = u.schemaname " + "AND s.tablename = u.tablename " + "WHERE s.tablename = ANY($2) " + "ORDER BY u.ord, s.attname, s.inherited"); + else + appendPQExpBufferStr(query, + "FROM pg_catalog.pg_stats s " + "WHERE s.schemaname = $1[1] " + "AND s.tablename = $2[1] " + "ORDER BY s.attname, s.inherited"); ExecuteSqlStatement(fout, query->data); @@ -10626,11 +10916,11 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) resetPQExpBuffer(query); } - out = createPQExpBuffer(); + initPQExpBuffer(out); /* restore relation stats */ appendPQExpBufferStr(out, "SELECT * FROM pg_catalog.pg_restore_relation_stats(\n"); - appendPQExpBuffer(out, "\t'version', '%u'::integer,\n", + appendPQExpBuffer(out, "\t'version', '%d'::integer,\n", fout->remoteVersion); appendPQExpBufferStr(out, "\t'schemaname', "); appendStringLiteralAH(out, rsinfo->dobj.namespace->dobj.name, fout); @@ -10639,7 +10929,20 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) appendStringLiteralAH(out, rsinfo->dobj.name, fout); appendPQExpBufferStr(out, ",\n"); appendPQExpBuffer(out, "\t'relpages', '%d'::integer,\n", rsinfo->relpages); - appendPQExpBuffer(out, "\t'reltuples', '%s'::real,\n", rsinfo->reltuples); + + /* + * Before v14, a reltuples value of 0 was ambiguous: it could either mean + * the relation is empty, or it could mean that it hadn't yet been + * vacuumed or analyzed. (Newer versions use -1 for the latter case.) + * This ambiguity allegedly can cause the planner to choose inefficient + * plans after restoring to v18 or newer. To deal with this, let's just + * set reltuples to -1 in that case. + */ + if (fout->remoteVersion < 140000 && strcmp("0", rsinfo->reltuples) == 0) + appendPQExpBufferStr(out, "\t'reltuples', '-1'::real,\n"); + else + appendPQExpBuffer(out, "\t'reltuples', '%s'::real,\n", rsinfo->reltuples); + appendPQExpBuffer(out, "\t'relallvisible', '%d'::integer", rsinfo->relallvisible); @@ -10648,16 +10951,16 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) appendPQExpBufferStr(out, "\n);\n"); + /* Fetch the next batch of attribute statistics if needed. */ + if (rownum >= PQntuples(res)) + { + PQclear(res); + res = fetchAttributeStats(fout); + rownum = 0; + } - /* fetch attribute stats */ - appendPQExpBufferStr(query, "EXECUTE getAttributeStats("); - appendStringLiteralAH(query, dobj->namespace->dobj.name, fout); - appendPQExpBufferStr(query, ", "); - appendStringLiteralAH(query, dobj->name, fout); - appendPQExpBufferStr(query, ");"); - - res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); - + i_schemaname = PQfnumber(res, "schemaname"); + i_tablename = PQfnumber(res, "tablename"); i_attname = PQfnumber(res, "attname"); i_inherited = PQfnumber(res, "inherited"); i_null_frac = PQfnumber(res, "null_frac"); @@ -10675,12 +10978,17 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) i_range_bounds_histogram = PQfnumber(res, "range_bounds_histogram"); /* restore attribute stats */ - for (int rownum = 0; rownum < PQntuples(res); rownum++) + for (; rownum < PQntuples(res); rownum++) { const char *attname; + /* Stop if the next stat row in our cache isn't for this relation. */ + if (strcmp(te->tag, PQgetvalue(res, rownum, i_tablename)) != 0 || + strcmp(te->namespace, PQgetvalue(res, rownum, i_schemaname)) != 0) + break; + appendPQExpBufferStr(out, "SELECT * FROM pg_catalog.pg_restore_attribute_stats(\n"); - appendPQExpBuffer(out, "\t'version', '%u'::integer,\n", + appendPQExpBuffer(out, "\t'version', '%d'::integer,\n", fout->remoteVersion); appendPQExpBufferStr(out, "\t'schemaname', "); appendStringLiteralAH(out, rsinfo->dobj.namespace->dobj.name, fout); @@ -10698,7 +11006,7 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) */ if (rsinfo->nindAttNames == 0) { - appendPQExpBuffer(out, ",\n\t'attname', "); + appendPQExpBufferStr(out, ",\n\t'attname', "); appendStringLiteralAH(out, attname, fout); } else @@ -10768,19 +11076,35 @@ dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) appendPQExpBufferStr(out, "\n);\n"); } - PQclear(res); + destroyPQExpBuffer(query); + return out->data; +} + +/* + * dumpRelationStats -- + * + * Make an ArchiveEntry for the relation statistics. The Archiver will take + * care of gathering the statistics and generating the restore commands when + * they are needed. + */ +static void +dumpRelationStats(Archive *fout, const RelStatsInfo *rsinfo) +{ + const DumpableObject *dobj = &rsinfo->dobj; + + /* nothing to do if we are not dumping statistics */ + if (!fout->dopt->dumpStatistics) + return; ArchiveEntry(fout, nilCatalogId, createDumpId(), ARCHIVE_OPTS(.tag = dobj->name, .namespace = dobj->namespace->dobj.name, .description = "STATISTICS DATA", .section = rsinfo->section, - .createStmt = out->data, + .defnFn = dumpRelationStats_dumper, + .defnArg = rsinfo, .deps = dobj->dependencies, .nDeps = dobj->nDeps)); - - destroyPQExpBuffer(out); - destroyPQExpBuffer(query); } /* @@ -15685,6 +16009,9 @@ dumpDefaultACL(Archive *fout, const DefaultACLInfo *daclinfo) case DEFACLOBJ_NAMESPACE: type = "SCHEMAS"; break; + case DEFACLOBJ_LARGEOBJECT: + type = "LARGE OBJECTS"; + break; default: /* shouldn't get here */ pg_fatal("unrecognized object type in default privileges: %d", @@ -16687,11 +17014,6 @@ dumpTableSchema(Archive *fout, const TableInfo *tbinfo) tbinfo->attrdefs[j]->adef_expr); } - print_notnull = (tbinfo->notnull_constrs[j] != NULL && - (tbinfo->notnull_islocal[j] || - dopt->binary_upgrade || - tbinfo->ispartition)); - if (print_notnull) { if (tbinfo->notnull_constrs[j][0] == '\0') @@ -17659,7 +17981,17 @@ dumpIndex(Archive *fout, const IndxInfo *indxinfo) qindxname); } - appendPQExpBuffer(delq, "DROP INDEX %s;\n", qqindxname); + /* + * If this index is a member of a partitioned index, the backend will + * not allow us to drop it separately, so don't try. It will go away + * automatically when we drop either the index's table or the + * partitioned index. (If, in a selective restore with --clean, we + * drop neither of those, then this index will not be dropped either. + * But that's fine, and even if you think it's not, the backend won't + * let us do differently.) + */ + if (indxinfo->parentidx == 0) + appendPQExpBuffer(delq, "DROP INDEX %s;\n", qqindxname); if (indxinfo->dobj.dump & DUMP_COMPONENT_DEFINITION) ArchiveEntry(fout, indxinfo->dobj.catId, indxinfo->dobj.dumpId, @@ -17712,11 +18044,15 @@ dumpIndexAttach(Archive *fout, const IndexAttachInfo *attachinfo) fmtQualifiedDumpable(attachinfo->partitionIdx)); /* - * There is no point in creating a drop query as the drop is done by - * index drop. (If you think to change this, see also - * _printTocEntry().) Although this object doesn't really have - * ownership as such, set the owner field anyway to ensure that the - * command is run by the correct role at restore time. + * There is no need for a dropStmt since the drop is done implicitly + * when we drop either the index's table or the partitioned index. + * Moreover, since there's no ALTER INDEX DETACH PARTITION command, + * there's no way to do it anyway. (If you think to change this, + * consider also what to do with --if-exists.) + * + * Although this object doesn't really have ownership as such, set the + * owner field anyway to ensure that the command is run by the correct + * role at restore time. */ ArchiveEntry(fout, attachinfo->dobj.catId, attachinfo->dobj.dumpId, ARCHIVE_OPTS(.tag = attachinfo->dobj.name, @@ -18013,13 +18349,20 @@ dumpConstraint(Archive *fout, const ConstraintInfo *coninfo) .createStmt = q->data, .dropStmt = delq->data)); } - else if (coninfo->contype == 'c' && tbinfo) + else if ((coninfo->contype == 'c' || coninfo->contype == 'n') && tbinfo) { - /* CHECK constraint on a table */ + /* CHECK or invalid not-null constraint on a table */ /* Ignore if not to be dumped separately, or if it was inherited */ if (coninfo->separate && coninfo->conislocal) { + const char *keyword; + + if (coninfo->contype == 'c') + keyword = "CHECK CONSTRAINT"; + else + keyword = "CONSTRAINT"; + /* not ONLY since we want it to propagate to children */ appendPQExpBuffer(q, "ALTER %sTABLE %s\n", foreign, fmtQualifiedDumpable(tbinfo)); @@ -18039,7 +18382,7 @@ dumpConstraint(Archive *fout, const ConstraintInfo *coninfo) ARCHIVE_OPTS(.tag = tag, .namespace = tbinfo->dobj.namespace->dobj.name, .owner = tbinfo->rolname, - .description = "CHECK CONSTRAINT", + .description = keyword, .section = SECTION_POST_DATA, .createStmt = q->data, .dropStmt = delq->data)); diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index e6f0f86a4593a..7417eab6aefa6 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -365,6 +365,7 @@ typedef struct _tableInfo * there isn't one on this column. If * empty string, unnamed constraint * (pre-v17) */ + bool *notnull_invalid; /* true for NOT NULL NOT VALID */ bool *notnull_noinh; /* NOT NULL is NO INHERIT */ bool *notnull_islocal; /* true if NOT NULL has local definition */ struct _attrDefInfo **attrdefs; /* DEFAULT expressions */ @@ -498,6 +499,8 @@ typedef struct _evttriggerInfo * use a different objType for foreign key constraints, to make it easier * to sort them the way we want. * + * Not-null constraints don't need this, unless they are NOT VALID. + * * Note: condeferrable and condeferred are currently only valid for * unique/primary-key constraints. Otherwise that info is in condef. */ diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index 2ea574b0f065d..7f9c302b719ec 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -20,15 +20,16 @@ #include "catalog/pg_authid_d.h" #include "common/connect.h" +#include "common/file_perm.h" #include "common/file_utils.h" #include "common/hashfn_unstable.h" #include "common/logging.h" #include "common/string.h" +#include "connectdb.h" #include "dumputils.h" #include "fe_utils/string_utils.h" #include "filter.h" #include "getopt_long.h" -#include "pg_backup.h" /* version string we expect back from pg_dump */ #define PGDUMP_VERSIONSTR "pg_dump (PostgreSQL) " PG_VERSION "\n" @@ -64,28 +65,23 @@ static void dropTablespaces(PGconn *conn); static void dumpTablespaces(PGconn *conn); static void dropDBs(PGconn *conn); static void dumpUserConfig(PGconn *conn, const char *username); -static void dumpDatabases(PGconn *conn); +static void dumpDatabases(PGconn *conn, ArchiveFormat archDumpFormat); static void dumpTimestamp(const char *msg); -static int runPgDump(const char *dbname, const char *create_opts); +static int runPgDump(const char *dbname, const char *create_opts, + char *dbfile, ArchiveFormat archDumpFormat); static void buildShSecLabels(PGconn *conn, const char *catalog_name, Oid objectId, const char *objtype, const char *objname, PQExpBuffer buffer); -static PGconn *connectDatabase(const char *dbname, - const char *connection_string, const char *pghost, - const char *pgport, const char *pguser, - trivalue prompt_password, bool fail_on_error); -static char *constructConnStr(const char **keywords, const char **values); -static PGresult *executeQuery(PGconn *conn, const char *query); static void executeCommand(PGconn *conn, const char *query); static void expand_dbname_patterns(PGconn *conn, SimpleStringList *patterns, SimpleStringList *names); static void read_dumpall_filters(const char *filename, SimpleStringList *pattern); +static ArchiveFormat parseDumpFormat(const char *format); static char pg_dump_bin[MAXPGPATH]; -static const char *progname; static PQExpBuffer pgdumpopts; -static char *connstr = ""; +static const char *connstr = ""; static bool output_clean = false; static bool skip_acls = false; static bool verbose = false; @@ -118,6 +114,7 @@ static int server_version; static int load_via_partition_root = 0; static int on_conflict_do_nothing = 0; static int statistics_only = 0; +static int sequence_data = 0; static char role_catalog[10]; #define PG_AUTHID "pg_authid" @@ -129,8 +126,6 @@ static char *filename = NULL; static SimpleStringList database_exclude_patterns = {NULL, NULL}; static SimpleStringList database_exclude_names = {NULL, NULL}; -#define exit_nicely(code) exit(code) - int main(int argc, char *argv[]) { @@ -155,6 +150,7 @@ main(int argc, char *argv[]) {"password", no_argument, NULL, 'W'}, {"no-privileges", no_argument, NULL, 'x'}, {"no-acl", no_argument, NULL, 'x'}, + {"format", required_argument, NULL, 'F'}, /* * the following options don't have an equivalent short option letter @@ -194,6 +190,7 @@ main(int argc, char *argv[]) {"rows-per-insert", required_argument, NULL, 7}, {"statistics-only", no_argument, &statistics_only, 1}, {"filter", required_argument, NULL, 8}, + {"sequence-data", no_argument, &sequence_data, 1}, {NULL, 0, NULL, 0} }; @@ -204,6 +201,8 @@ main(int argc, char *argv[]) char *pgdb = NULL; char *use_role = NULL; const char *dumpencoding = NULL; + ArchiveFormat archDumpFormat = archNull; + const char *formatName = "p"; trivalue prompt_password = TRI_DEFAULT; bool data_only = false; bool globals_only = false; @@ -253,7 +252,7 @@ main(int argc, char *argv[]) pgdumpopts = createPQExpBuffer(); - while ((c = getopt_long(argc, argv, "acd:E:f:gh:l:Op:rsS:tU:vwWx", long_options, &optindex)) != -1) + while ((c = getopt_long(argc, argv, "acd:E:f:F:gh:l:Op:rsS:tU:vwWx", long_options, &optindex)) != -1) { switch (c) { @@ -281,7 +280,9 @@ main(int argc, char *argv[]) appendPQExpBufferStr(pgdumpopts, " -f "); appendShellString(pgdumpopts, filename); break; - + case 'F': + formatName = pg_strdup(optarg); + break; case 'g': globals_only = true; break; @@ -430,6 +431,21 @@ main(int argc, char *argv[]) exit_nicely(1); } + /* Get format for dump. */ + archDumpFormat = parseDumpFormat(formatName); + + /* + * If a non-plain format is specified, a file name is also required as the + * path to the main directory. + */ + if (archDumpFormat != archNull && + (!filename || strcmp(filename, "") == 0)) + { + pg_log_error("option -F/--format=d|c|t requires option -f/--file"); + pg_log_error_hint("Try \"%s --help\" for more information.", progname); + exit_nicely(1); + } + /* * If password values are not required in the dump, switch to using * pg_roles which is equally useful, just more likely to have unrestricted @@ -491,6 +507,35 @@ main(int argc, char *argv[]) appendPQExpBufferStr(pgdumpopts, " --on-conflict-do-nothing"); if (statistics_only) appendPQExpBufferStr(pgdumpopts, " --statistics-only"); + if (sequence_data) + appendPQExpBufferStr(pgdumpopts, " --sequence-data"); + + /* + * Open the output file if required, otherwise use stdout. If required, + * then create new directory and global.dat file. + */ + if (archDumpFormat != archNull) + { + char global_path[MAXPGPATH]; + + /* Create new directory or accept the empty existing directory. */ + create_or_open_dir(filename); + + snprintf(global_path, MAXPGPATH, "%s/global.dat", filename); + + OPF = fopen(global_path, PG_BINARY_W); + if (!OPF) + pg_fatal("could not open \"%s\": %m", global_path); + } + else if (filename) + { + OPF = fopen(filename, PG_BINARY_W); + if (!OPF) + pg_fatal("could not open output file \"%s\": %m", + filename); + } + else + OPF = stdout; /* * If there was a database specified on the command line, use that, @@ -499,19 +544,22 @@ main(int argc, char *argv[]) */ if (pgdb) { - conn = connectDatabase(pgdb, connstr, pghost, pgport, pguser, - prompt_password, false); + conn = ConnectDatabase(pgdb, connstr, pghost, pgport, pguser, + prompt_password, false, + progname, &connstr, &server_version, NULL, NULL); if (!conn) pg_fatal("could not connect to database \"%s\"", pgdb); } else { - conn = connectDatabase("postgres", connstr, pghost, pgport, pguser, - prompt_password, false); + conn = ConnectDatabase("postgres", connstr, pghost, pgport, pguser, + prompt_password, false, + progname, &connstr, &server_version, NULL, NULL); if (!conn) - conn = connectDatabase("template1", connstr, pghost, pgport, pguser, - prompt_password, true); + conn = ConnectDatabase("template1", connstr, pghost, pgport, pguser, + prompt_password, true, + progname, &connstr, &server_version, NULL, NULL); if (!conn) { @@ -528,19 +576,6 @@ main(int argc, char *argv[]) expand_dbname_patterns(conn, &database_exclude_patterns, &database_exclude_names); - /* - * Open the output file if required, otherwise use stdout - */ - if (filename) - { - OPF = fopen(filename, PG_BINARY_W); - if (!OPF) - pg_fatal("could not open output file \"%s\": %m", - filename); - } - else - OPF = stdout; - /* * Set the client encoding if requested. */ @@ -640,7 +675,7 @@ main(int argc, char *argv[]) } if (!globals_only && !roles_only && !tablespaces_only) - dumpDatabases(conn); + dumpDatabases(conn, archDumpFormat); PQfinish(conn); @@ -653,7 +688,7 @@ main(int argc, char *argv[]) fclose(OPF); /* sync the resulting file, errors are not fatal */ - if (dosync) + if (dosync && (archDumpFormat == archNull)) (void) fsync_fname(filename, false); } @@ -664,12 +699,14 @@ main(int argc, char *argv[]) static void help(void) { - printf(_("%s extracts a PostgreSQL database cluster into an SQL script file.\n\n"), progname); + printf(_("%s extracts a PostgreSQL database cluster based on specified dump format.\n\n"), progname); printf(_("Usage:\n")); printf(_(" %s [OPTION]...\n"), progname); printf(_("\nGeneral options:\n")); printf(_(" -f, --file=FILENAME output file name\n")); + printf(_(" -F, --format=c|d|t|p output file format (custom, directory, tar,\n" + " plain text (default))\n")); printf(_(" -v, --verbose verbose mode\n")); printf(_(" -V, --version output version information, then exit\n")); printf(_(" --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n")); @@ -712,6 +749,7 @@ help(void) printf(_(" --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n")); printf(_(" --quote-all-identifiers quote all identifiers, even if not key words\n")); printf(_(" --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n")); + printf(_(" --sequence-data include sequence data in dump\n")); printf(_(" --statistics-only dump only the statistics, not schema or data\n")); printf(_(" --use-set-session-authorization\n" " use SET SESSION AUTHORIZATION commands instead of\n" @@ -975,9 +1013,6 @@ dumpRoles(PGconn *conn) * We do it this way because config settings for roles could mention the * names of other roles. */ - if (PQntuples(res) > 0) - fprintf(OPF, "\n--\n-- User Configurations\n--\n"); - for (i = 0; i < PQntuples(res); i++) dumpUserConfig(conn, PQgetvalue(res, i, i_rolname)); @@ -1216,7 +1251,7 @@ dumpRoleMembership(PGconn *conn) { if (optbuf->data[0] != '\0') appendPQExpBufferStr(optbuf, ", "); - appendPQExpBuffer(optbuf, "SET FALSE"); + appendPQExpBufferStr(optbuf, "SET FALSE"); } if (optbuf->data[0] != '\0') fprintf(OPF, " WITH %s", optbuf->data); @@ -1491,6 +1526,7 @@ dumpUserConfig(PGconn *conn, const char *username) { PQExpBuffer buf = createPQExpBuffer(); PGresult *res; + static bool header_done = false; printfPQExpBuffer(buf, "SELECT unnest(setconfig) FROM pg_db_role_setting " "WHERE setdatabase = 0 AND setrole = " @@ -1502,7 +1538,13 @@ dumpUserConfig(PGconn *conn, const char *username) res = executeQuery(conn, buf->data); if (PQntuples(res) > 0) + { + if (!header_done) + fprintf(OPF, "\n--\n-- User Configurations\n--\n"); + header_done = true; + fprintf(OPF, "\n--\n-- User Config \"%s\"\n--\n\n", username); + } for (int i = 0; i < PQntuples(res); i++) { @@ -1576,10 +1618,13 @@ expand_dbname_patterns(PGconn *conn, * Dump contents of databases. */ static void -dumpDatabases(PGconn *conn) +dumpDatabases(PGconn *conn, ArchiveFormat archDumpFormat) { PGresult *res; int i; + char db_subdir[MAXPGPATH]; + char dbfilepath[MAXPGPATH]; + FILE *map_file = NULL; /* * Skip databases marked not datallowconn, since we'd be unable to connect @@ -1593,18 +1638,42 @@ dumpDatabases(PGconn *conn) * doesn't have some failure mode with --clean. */ res = executeQuery(conn, - "SELECT datname " + "SELECT datname, oid " "FROM pg_database d " "WHERE datallowconn AND datconnlimit != -2 " "ORDER BY (datname <> 'template1'), datname"); - if (PQntuples(res) > 0) + if (archDumpFormat == archNull && PQntuples(res) > 0) fprintf(OPF, "--\n-- Databases\n--\n\n"); + /* + * If directory/tar/custom format is specified, create a subdirectory + * under the main directory and each database dump file or subdirectory + * will be created in that subdirectory by pg_dump. + */ + if (archDumpFormat != archNull) + { + char map_file_path[MAXPGPATH]; + + snprintf(db_subdir, MAXPGPATH, "%s/databases", filename); + + /* Create a subdirectory with 'databases' name under main directory. */ + if (mkdir(db_subdir, pg_dir_create_mode) != 0) + pg_fatal("could not create subdirectory \"%s\": %m", db_subdir); + + snprintf(map_file_path, MAXPGPATH, "%s/map.dat", filename); + + /* Create a map file (to store dboid and dbname) */ + map_file = fopen(map_file_path, PG_BINARY_W); + if (!map_file) + pg_fatal("could not open map file: %s", strerror(errno)); + } + for (i = 0; i < PQntuples(res); i++) { char *dbname = PQgetvalue(res, i, 0); - const char *create_opts; + char *oid = PQgetvalue(res, i, 1); + const char *create_opts = ""; int ret; /* Skip template0, even if it's not marked !datallowconn. */ @@ -1618,9 +1687,27 @@ dumpDatabases(PGconn *conn) continue; } + /* + * If this is not a plain format dump, then append dboid and dbname to + * the map.dat file. + */ + if (archDumpFormat != archNull) + { + if (archDumpFormat == archCustom) + snprintf(dbfilepath, MAXPGPATH, "\"%s\"/\"%s\".dmp", db_subdir, oid); + else if (archDumpFormat == archTar) + snprintf(dbfilepath, MAXPGPATH, "\"%s\"/\"%s\".tar", db_subdir, oid); + else + snprintf(dbfilepath, MAXPGPATH, "\"%s\"/\"%s\"", db_subdir, oid); + + /* Put one line entry for dboid and dbname in map file. */ + fprintf(map_file, "%s %s\n", oid, dbname); + } + pg_log_info("dumping database \"%s\"", dbname); - fprintf(OPF, "--\n-- Database \"%s\" dump\n--\n\n", dbname); + if (archDumpFormat == archNull) + fprintf(OPF, "--\n-- Database \"%s\" dump\n--\n\n", dbname); /* * We assume that "template1" and "postgres" already exist in the @@ -1634,12 +1721,9 @@ dumpDatabases(PGconn *conn) { if (output_clean) create_opts = "--clean --create"; - else - { - create_opts = ""; - /* Since pg_dump won't emit a \connect command, we must */ + /* Since pg_dump won't emit a \connect command, we must */ + else if (archDumpFormat == archNull) fprintf(OPF, "\\connect %s\n\n", dbname); - } } else create_opts = "--create"; @@ -1647,19 +1731,30 @@ dumpDatabases(PGconn *conn) if (filename) fclose(OPF); - ret = runPgDump(dbname, create_opts); + ret = runPgDump(dbname, create_opts, dbfilepath, archDumpFormat); if (ret != 0) pg_fatal("pg_dump failed on database \"%s\", exiting", dbname); if (filename) { - OPF = fopen(filename, PG_BINARY_A); + char global_path[MAXPGPATH]; + + if (archDumpFormat != archNull) + snprintf(global_path, MAXPGPATH, "%s/global.dat", filename); + else + snprintf(global_path, MAXPGPATH, "%s", filename); + + OPF = fopen(global_path, PG_BINARY_A); if (!OPF) pg_fatal("could not re-open the output file \"%s\": %m", - filename); + global_path); } } + /* Close map file */ + if (archDumpFormat != archNull) + fclose(map_file); + PQclear(res); } @@ -1669,7 +1764,8 @@ dumpDatabases(PGconn *conn) * Run pg_dump on dbname, with specified options. */ static int -runPgDump(const char *dbname, const char *create_opts) +runPgDump(const char *dbname, const char *create_opts, char *dbfile, + ArchiveFormat archDumpFormat) { PQExpBufferData connstrbuf; PQExpBufferData cmd; @@ -1678,17 +1774,36 @@ runPgDump(const char *dbname, const char *create_opts) initPQExpBuffer(&connstrbuf); initPQExpBuffer(&cmd); - printfPQExpBuffer(&cmd, "\"%s\" %s %s", pg_dump_bin, - pgdumpopts->data, create_opts); - /* - * If we have a filename, use the undocumented plain-append pg_dump - * format. + * If this is not a plain format dump, then append file name and dump + * format to the pg_dump command to get archive dump. */ - if (filename) - appendPQExpBufferStr(&cmd, " -Fa "); + if (archDumpFormat != archNull) + { + printfPQExpBuffer(&cmd, "\"%s\" -f %s %s", pg_dump_bin, + dbfile, create_opts); + + if (archDumpFormat == archDirectory) + appendPQExpBufferStr(&cmd, " --format=directory "); + else if (archDumpFormat == archCustom) + appendPQExpBufferStr(&cmd, " --format=custom "); + else if (archDumpFormat == archTar) + appendPQExpBufferStr(&cmd, " --format=tar "); + } else - appendPQExpBufferStr(&cmd, " -Fp "); + { + printfPQExpBuffer(&cmd, "\"%s\" %s %s", pg_dump_bin, + pgdumpopts->data, create_opts); + + /* + * If we have a filename, use the undocumented plain-append pg_dump + * format. + */ + if (filename) + appendPQExpBufferStr(&cmd, " -Fa "); + else + appendPQExpBufferStr(&cmd, " -Fp "); + } /* * Append the database name to the already-constructed stem of connection @@ -1738,256 +1853,6 @@ buildShSecLabels(PGconn *conn, const char *catalog_name, Oid objectId, destroyPQExpBuffer(sql); } -/* - * Make a database connection with the given parameters. An - * interactive password prompt is automatically issued if required. - * - * If fail_on_error is false, we return NULL without printing any message - * on failure, but preserve any prompted password for the next try. - * - * On success, the global variable 'connstr' is set to a connection string - * containing the options used. - */ -static PGconn * -connectDatabase(const char *dbname, const char *connection_string, - const char *pghost, const char *pgport, const char *pguser, - trivalue prompt_password, bool fail_on_error) -{ - PGconn *conn; - bool new_pass; - const char *remoteversion_str; - int my_version; - const char **keywords = NULL; - const char **values = NULL; - PQconninfoOption *conn_opts = NULL; - static char *password = NULL; - - if (prompt_password == TRI_YES && !password) - password = simple_prompt("Password: ", false); - - /* - * Start the connection. Loop until we have a password if requested by - * backend. - */ - do - { - int argcount = 6; - PQconninfoOption *conn_opt; - char *err_msg = NULL; - int i = 0; - - free(keywords); - free(values); - PQconninfoFree(conn_opts); - - /* - * Merge the connection info inputs given in form of connection string - * and other options. Explicitly discard any dbname value in the - * connection string; otherwise, PQconnectdbParams() would interpret - * that value as being itself a connection string. - */ - if (connection_string) - { - conn_opts = PQconninfoParse(connection_string, &err_msg); - if (conn_opts == NULL) - pg_fatal("%s", err_msg); - - for (conn_opt = conn_opts; conn_opt->keyword != NULL; conn_opt++) - { - if (conn_opt->val != NULL && conn_opt->val[0] != '\0' && - strcmp(conn_opt->keyword, "dbname") != 0) - argcount++; - } - - keywords = pg_malloc0((argcount + 1) * sizeof(*keywords)); - values = pg_malloc0((argcount + 1) * sizeof(*values)); - - for (conn_opt = conn_opts; conn_opt->keyword != NULL; conn_opt++) - { - if (conn_opt->val != NULL && conn_opt->val[0] != '\0' && - strcmp(conn_opt->keyword, "dbname") != 0) - { - keywords[i] = conn_opt->keyword; - values[i] = conn_opt->val; - i++; - } - } - } - else - { - keywords = pg_malloc0((argcount + 1) * sizeof(*keywords)); - values = pg_malloc0((argcount + 1) * sizeof(*values)); - } - - if (pghost) - { - keywords[i] = "host"; - values[i] = pghost; - i++; - } - if (pgport) - { - keywords[i] = "port"; - values[i] = pgport; - i++; - } - if (pguser) - { - keywords[i] = "user"; - values[i] = pguser; - i++; - } - if (password) - { - keywords[i] = "password"; - values[i] = password; - i++; - } - if (dbname) - { - keywords[i] = "dbname"; - values[i] = dbname; - i++; - } - keywords[i] = "fallback_application_name"; - values[i] = progname; - i++; - - new_pass = false; - conn = PQconnectdbParams(keywords, values, true); - - if (!conn) - pg_fatal("could not connect to database \"%s\"", dbname); - - if (PQstatus(conn) == CONNECTION_BAD && - PQconnectionNeedsPassword(conn) && - !password && - prompt_password != TRI_NO) - { - PQfinish(conn); - password = simple_prompt("Password: ", false); - new_pass = true; - } - } while (new_pass); - - /* check to see that the backend connection was successfully made */ - if (PQstatus(conn) == CONNECTION_BAD) - { - if (fail_on_error) - pg_fatal("%s", PQerrorMessage(conn)); - else - { - PQfinish(conn); - - free(keywords); - free(values); - PQconninfoFree(conn_opts); - - return NULL; - } - } - - /* - * Ok, connected successfully. Remember the options used, in the form of a - * connection string. - */ - connstr = constructConnStr(keywords, values); - - free(keywords); - free(values); - PQconninfoFree(conn_opts); - - /* Check version */ - remoteversion_str = PQparameterStatus(conn, "server_version"); - if (!remoteversion_str) - pg_fatal("could not get server version"); - server_version = PQserverVersion(conn); - if (server_version == 0) - pg_fatal("could not parse server version \"%s\"", - remoteversion_str); - - my_version = PG_VERSION_NUM; - - /* - * We allow the server to be back to 9.2, and up to any minor release of - * our own major version. (See also version check in pg_dump.c.) - */ - if (my_version != server_version - && (server_version < 90200 || - (server_version / 100) > (my_version / 100))) - { - pg_log_error("aborting because of server version mismatch"); - pg_log_error_detail("server version: %s; %s version: %s", - remoteversion_str, progname, PG_VERSION); - exit_nicely(1); - } - - PQclear(executeQuery(conn, ALWAYS_SECURE_SEARCH_PATH_SQL)); - - return conn; -} - -/* ---------- - * Construct a connection string from the given keyword/value pairs. It is - * used to pass the connection options to the pg_dump subprocess. - * - * The following parameters are excluded: - * dbname - varies in each pg_dump invocation - * password - it's not secure to pass a password on the command line - * fallback_application_name - we'll let pg_dump set it - * ---------- - */ -static char * -constructConnStr(const char **keywords, const char **values) -{ - PQExpBuffer buf = createPQExpBuffer(); - char *connstr; - int i; - bool firstkeyword = true; - - /* Construct a new connection string in key='value' format. */ - for (i = 0; keywords[i] != NULL; i++) - { - if (strcmp(keywords[i], "dbname") == 0 || - strcmp(keywords[i], "password") == 0 || - strcmp(keywords[i], "fallback_application_name") == 0) - continue; - - if (!firstkeyword) - appendPQExpBufferChar(buf, ' '); - firstkeyword = false; - appendPQExpBuffer(buf, "%s=", keywords[i]); - appendConnStrVal(buf, values[i]); - } - - connstr = pg_strdup(buf->data); - destroyPQExpBuffer(buf); - return connstr; -} - -/* - * Run a query, return the results, exit program on failure. - */ -static PGresult * -executeQuery(PGconn *conn, const char *query) -{ - PGresult *res; - - pg_log_info("executing %s", query); - - res = PQexec(conn, query); - if (!res || - PQresultStatus(res) != PGRES_TUPLES_OK) - { - pg_log_error("query failed: %s", PQerrorMessage(conn)); - pg_log_error_detail("Query was: %s", query); - PQfinish(conn); - exit_nicely(1); - } - - return res; -} - /* * As above for a SQL command (which returns nothing). */ @@ -2083,3 +1948,36 @@ read_dumpall_filters(const char *filename, SimpleStringList *pattern) filter_free(&fstate); } + +/* + * parseDumpFormat + * + * This will validate dump formats. + */ +static ArchiveFormat +parseDumpFormat(const char *format) +{ + ArchiveFormat archDumpFormat; + + if (pg_strcasecmp(format, "c") == 0) + archDumpFormat = archCustom; + else if (pg_strcasecmp(format, "custom") == 0) + archDumpFormat = archCustom; + else if (pg_strcasecmp(format, "d") == 0) + archDumpFormat = archDirectory; + else if (pg_strcasecmp(format, "directory") == 0) + archDumpFormat = archDirectory; + else if (pg_strcasecmp(format, "p") == 0) + archDumpFormat = archNull; + else if (pg_strcasecmp(format, "plain") == 0) + archDumpFormat = archNull; + else if (pg_strcasecmp(format, "t") == 0) + archDumpFormat = archTar; + else if (pg_strcasecmp(format, "tar") == 0) + archDumpFormat = archTar; + else + pg_fatal("unrecognized archive format \"%s\"; please specify \"c\", \"d\", \"p\", or \"t\"", + format); + + return archDumpFormat; +} diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index 47f7b0dd3a13a..f2182e9182560 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -2,7 +2,7 @@ * * pg_restore.c * pg_restore is an utility extracting postgres database definitions - * from a backup archive created by pg_dump using the archiver + * from a backup archive created by pg_dump/pg_dumpall using the archiver * interface. * * pg_restore will read the backup archive and @@ -41,11 +41,15 @@ #include "postgres_fe.h" #include +#include #ifdef HAVE_TERMIOS_H #include #endif +#include "common/string.h" +#include "connectdb.h" #include "fe_utils/option_utils.h" +#include "fe_utils/string_utils.h" #include "filter.h" #include "getopt_long.h" #include "parallel.h" @@ -53,18 +57,43 @@ static void usage(const char *progname); static void read_restore_filters(const char *filename, RestoreOptions *opts); +static bool file_exists_in_directory(const char *dir, const char *filename); +static int restore_one_database(const char *inputFileSpec, RestoreOptions *opts, + int numWorkers, bool append_data, int num); +static int read_one_statement(StringInfo inBuf, FILE *pfile); +static int restore_all_databases(PGconn *conn, const char *dumpdirpath, + SimpleStringList db_exclude_patterns, RestoreOptions *opts, int numWorkers); +static int process_global_sql_commands(PGconn *conn, const char *dumpdirpath, + const char *outfile); +static void copy_or_print_global_file(const char *outfile, FILE *pfile); +static int get_dbnames_list_to_restore(PGconn *conn, + SimplePtrList *dbname_oid_list, + SimpleStringList db_exclude_patterns); +static int get_dbname_oid_list_from_mfile(const char *dumpdirpath, + SimplePtrList *dbname_oid_list); + +/* + * Stores a database OID and the corresponding name. + */ +typedef struct DbOidName +{ + Oid oid; + char str[FLEXIBLE_ARRAY_MEMBER]; /* null-terminated string here */ +} DbOidName; + int main(int argc, char **argv) { RestoreOptions *opts; int c; - int exit_code; int numWorkers = 1; - Archive *AH; char *inputFileSpec; bool data_only = false; bool schema_only = false; + int n_errors = 0; + bool globals_only = false; + SimpleStringList db_exclude_patterns = {NULL, NULL}; static int disable_triggers = 0; static int enable_row_security = 0; static int if_exists = 0; @@ -90,6 +119,7 @@ main(int argc, char **argv) {"clean", 0, NULL, 'c'}, {"create", 0, NULL, 'C'}, {"data-only", 0, NULL, 'a'}, + {"globals-only", 0, NULL, 'g'}, {"dbname", 1, NULL, 'd'}, {"exit-on-error", 0, NULL, 'e'}, {"exclude-schema", 1, NULL, 'N'}, @@ -144,6 +174,7 @@ main(int argc, char **argv) {"with-statistics", no_argument, &with_statistics, 1}, {"statistics-only", no_argument, &statistics_only, 1}, {"filter", required_argument, NULL, 4}, + {"exclude-database", required_argument, NULL, 6}, {NULL, 0, NULL, 0} }; @@ -172,7 +203,7 @@ main(int argc, char **argv) } } - while ((c = getopt_long(argc, argv, "acCd:ef:F:h:I:j:lL:n:N:Op:P:RsS:t:T:U:vwWx1", + while ((c = getopt_long(argc, argv, "acCd:ef:F:gh:I:j:lL:n:N:Op:P:RsS:t:T:U:vwWx1", cmdopts, NULL)) != -1) { switch (c) @@ -199,11 +230,14 @@ main(int argc, char **argv) if (strlen(optarg) != 0) opts->formatName = pg_strdup(optarg); break; + case 'g': + /* restore only global.dat file from directory */ + globals_only = true; + break; case 'h': if (strlen(optarg) != 0) opts->cparams.pghost = pg_strdup(optarg); break; - case 'j': /* number of restore jobs */ if (!option_parse_int(optarg, "-j/--jobs", 1, PG_MAX_JOBS, @@ -318,6 +352,9 @@ main(int argc, char **argv) exit(1); opts->exit_on_error = true; break; + case 6: /* database patterns to skip */ + simple_string_list_append(&db_exclude_patterns, optarg); + break; default: /* getopt_long already emitted a complaint */ @@ -345,6 +382,13 @@ main(int argc, char **argv) if (!opts->cparams.dbname && !opts->filename && !opts->tocSummary) pg_fatal("one of -d/--dbname and -f/--file must be specified"); + if (db_exclude_patterns.head != NULL && globals_only) + { + pg_log_error("option --exclude-database cannot be used together with -g/--globals-only"); + pg_log_error_hint("Try \"%s --help\" for more information.", progname); + exit_nicely(1); + } + /* Should get at most one of -d and -f, else user is confused */ if (opts->cparams.dbname) { @@ -452,6 +496,114 @@ main(int argc, char **argv) opts->formatName); } + /* + * If toc.dat file is not present in the current path, then check for + * global.dat. If global.dat file is present, then restore all the + * databases from map.dat (if it exists), but skip restoring those + * matching --exclude-database patterns. + */ + if (inputFileSpec != NULL && !file_exists_in_directory(inputFileSpec, "toc.dat") && + file_exists_in_directory(inputFileSpec, "global.dat")) + { + PGconn *conn = NULL; /* Connection to restore global sql + * commands. */ + + /* + * Can only use --list or --use-list options with a single database + * dump. + */ + if (opts->tocSummary) + pg_fatal("option -l/--list cannot be used when restoring an archive created by pg_dumpall"); + else if (opts->tocFile) + pg_fatal("option -L/--use-list cannot be used when restoring an archive created by pg_dumpall"); + + /* + * To restore from a pg_dumpall archive, -C (create database) option + * must be specified unless we are only restoring globals. + */ + if (!globals_only && opts->createDB != 1) + { + pg_log_error("-C/--create option should be specified when restoring an archive created by pg_dumpall"); + pg_log_error_hint("Try \"%s --help\" for more information.", progname); + pg_log_error_hint("Individual databases can be restored using their specific archives."); + exit_nicely(1); + } + + /* + * Connect to the database to execute global sql commands from + * global.dat file. + */ + if (opts->cparams.dbname) + { + conn = ConnectDatabase(opts->cparams.dbname, NULL, opts->cparams.pghost, + opts->cparams.pgport, opts->cparams.username, TRI_DEFAULT, + false, progname, NULL, NULL, NULL, NULL); + + + if (!conn) + pg_fatal("could not connect to database \"%s\"", opts->cparams.dbname); + } + + /* If globals-only, then return from here. */ + if (globals_only) + { + /* + * Open global.dat file and execute/append all the global sql + * commands. + */ + n_errors = process_global_sql_commands(conn, inputFileSpec, + opts->filename); + + if (conn) + PQfinish(conn); + + pg_log_info("database restoring skipped as -g/--globals-only option was specified"); + } + else + { + /* Now restore all the databases from map.dat */ + n_errors = restore_all_databases(conn, inputFileSpec, db_exclude_patterns, + opts, numWorkers); + } + + /* Free db pattern list. */ + simple_string_list_destroy(&db_exclude_patterns); + } + else /* process if global.dat file does not exist. */ + { + if (db_exclude_patterns.head != NULL) + pg_fatal("option --exclude-database can be used only when restoring an archive created by pg_dumpall"); + + if (globals_only) + pg_fatal("option -g/--globals-only can be used only when restoring an archive created by pg_dumpall"); + + n_errors = restore_one_database(inputFileSpec, opts, numWorkers, false, 0); + } + + /* Done, print a summary of ignored errors during restore. */ + if (n_errors) + { + pg_log_warning("errors ignored on restore: %d", n_errors); + return 1; + } + + return 0; +} + +/* + * restore_one_database + * + * This will restore one database using toc.dat file. + * + * returns the number of errors while doing restore. + */ +static int +restore_one_database(const char *inputFileSpec, RestoreOptions *opts, + int numWorkers, bool append_data, int num) +{ + Archive *AH; + int n_errors; + AH = OpenArchive(inputFileSpec, opts->format); SetArchiveOptions(AH, NULL, opts); @@ -459,9 +611,15 @@ main(int argc, char **argv) /* * We don't have a connection yet but that doesn't matter. The connection * is initialized to NULL and if we terminate through exit_nicely() while - * it's still NULL, the cleanup function will just be a no-op. + * it's still NULL, the cleanup function will just be a no-op. If we are + * restoring multiple databases, then only update AX handle for cleanup as + * the previous entry was already in the array and we had closed previous + * connection, so we can use the same array slot. */ - on_exit_close_archive(AH); + if (!append_data || num == 0) + on_exit_close_archive(AH); + else + replace_on_exit_close_archive(AH); /* Let the archiver know how noisy to be */ AH->verbose = opts->verbose; @@ -481,25 +639,21 @@ main(int argc, char **argv) else { ProcessArchiveRestoreOptions(AH); - RestoreArchive(AH); + RestoreArchive(AH, append_data); } - /* done, print a summary of ignored errors */ - if (AH->n_errors) - pg_log_warning("errors ignored on restore: %d", AH->n_errors); + n_errors = AH->n_errors; /* AH may be freed in CloseArchive? */ - exit_code = AH->n_errors ? 1 : 0; - CloseArchive(AH); - return exit_code; + return n_errors; } static void usage(const char *progname) { - printf(_("%s restores a PostgreSQL database from an archive created by pg_dump.\n\n"), progname); + printf(_("%s restores PostgreSQL databases from archives created by pg_dump or pg_dumpall.\n\n"), progname); printf(_("Usage:\n")); printf(_(" %s [OPTION]... [FILE]\n"), progname); @@ -517,6 +671,7 @@ usage(const char *progname) printf(_(" -c, --clean clean (drop) database objects before recreating\n")); printf(_(" -C, --create create the target database\n")); printf(_(" -e, --exit-on-error exit on error, default is to continue\n")); + printf(_(" -g, --globals-only restore only global objects, no databases\n")); printf(_(" -I, --index=NAME restore named index\n")); printf(_(" -j, --jobs=NUM use this many parallel jobs to restore\n")); printf(_(" -L, --use-list=FILENAME use table of contents from this file for\n" @@ -533,6 +688,7 @@ usage(const char *progname) printf(_(" -1, --single-transaction restore as a single transaction\n")); printf(_(" --disable-triggers disable triggers during data-only restore\n")); printf(_(" --enable-row-security enable row security\n")); + printf(_(" --exclude-database=PATTERN do not restore the specified database(s)\n")); printf(_(" --filter=FILENAME restore or skip objects based on expressions\n" " in FILENAME\n")); printf(_(" --if-exists use IF EXISTS when dropping objects\n")); @@ -569,8 +725,8 @@ usage(const char *progname) printf(_(" --role=ROLENAME do SET ROLE before restore\n")); printf(_("\n" - "The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n" - "multiple times to select multiple objects.\n")); + "The options -I, -n, -N, -P, -t, -T, --section, and --exclude-database can be combined\n" + "and specified multiple times to select multiple objects.\n")); printf(_("\nIf no input file name is supplied, then standard input is used.\n\n")); printf(_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT); printf(_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); @@ -675,3 +831,578 @@ read_restore_filters(const char *filename, RestoreOptions *opts) filter_free(&fstate); } + +/* + * file_exists_in_directory + * + * Returns true if the file exists in the given directory. + */ +static bool +file_exists_in_directory(const char *dir, const char *filename) +{ + struct stat st; + char buf[MAXPGPATH]; + + if (snprintf(buf, MAXPGPATH, "%s/%s", dir, filename) >= MAXPGPATH) + pg_fatal("directory name too long: \"%s\"", dir); + + return (stat(buf, &st) == 0 && S_ISREG(st.st_mode)); +} + +/* + * read_one_statement + * + * This will start reading from passed file pointer using fgetc and read till + * semicolon(sql statement terminator for global.dat file) + * + * EOF is returned if end-of-file input is seen; time to shut down. + */ + +static int +read_one_statement(StringInfo inBuf, FILE *pfile) +{ + int c; /* character read from getc() */ + int m; + + StringInfoData q; + + initStringInfo(&q); + + resetStringInfo(inBuf); + + /* + * Read characters until EOF or the appropriate delimiter is seen. + */ + while ((c = fgetc(pfile)) != EOF) + { + if (c != '\'' && c != '"' && c != '\n' && c != ';') + { + appendStringInfoChar(inBuf, (char) c); + while ((c = fgetc(pfile)) != EOF) + { + if (c != '\'' && c != '"' && c != ';' && c != '\n') + appendStringInfoChar(inBuf, (char) c); + else + break; + } + } + + if (c == '\'' || c == '"') + { + appendStringInfoChar(&q, (char) c); + m = c; + + while ((c = fgetc(pfile)) != EOF) + { + appendStringInfoChar(&q, (char) c); + + if (c == m) + { + appendStringInfoString(inBuf, q.data); + resetStringInfo(&q); + break; + } + } + } + + if (c == ';') + { + appendStringInfoChar(inBuf, (char) ';'); + break; + } + + if (c == '\n') + appendStringInfoChar(inBuf, (char) '\n'); + } + + pg_free(q.data); + + /* No input before EOF signal means time to quit. */ + if (c == EOF && inBuf->len == 0) + return EOF; + + /* return something that's not EOF */ + return 'Q'; +} + +/* + * get_dbnames_list_to_restore + * + * This will mark for skipping any entries from dbname_oid_list that pattern match an + * entry in the db_exclude_patterns list. + * + * Returns the number of database to be restored. + * + */ +static int +get_dbnames_list_to_restore(PGconn *conn, + SimplePtrList *dbname_oid_list, + SimpleStringList db_exclude_patterns) +{ + int count_db = 0; + PQExpBuffer query; + PGresult *res; + + query = createPQExpBuffer(); + + if (!conn) + pg_log_info("considering PATTERN as NAME for --exclude-database option as no db connection while doing pg_restore."); + + /* + * Process one by one all dbnames and if specified to skip restoring, then + * remove dbname from list. + */ + for (SimplePtrListCell *db_cell = dbname_oid_list->head; + db_cell; db_cell = db_cell->next) + { + DbOidName *dbidname = (DbOidName *) db_cell->ptr; + bool skip_db_restore = false; + PQExpBuffer db_lit = createPQExpBuffer(); + + appendStringLiteralConn(db_lit, dbidname->str, conn); + + for (SimpleStringListCell *pat_cell = db_exclude_patterns.head; pat_cell; pat_cell = pat_cell->next) + { + /* + * If there is an exact match then we don't need to try a pattern + * match + */ + if (pg_strcasecmp(dbidname->str, pat_cell->val) == 0) + skip_db_restore = true; + /* Otherwise, try a pattern match if there is a connection */ + else if (conn) + { + int dotcnt; + + appendPQExpBufferStr(query, "SELECT 1 "); + processSQLNamePattern(conn, query, pat_cell->val, false, + false, NULL, db_lit->data, + NULL, NULL, NULL, &dotcnt); + + if (dotcnt > 0) + { + pg_log_error("improper qualified name (too many dotted names): %s", + dbidname->str); + PQfinish(conn); + exit_nicely(1); + } + + res = executeQuery(conn, query->data); + + if ((PQresultStatus(res) == PGRES_TUPLES_OK) && PQntuples(res)) + { + skip_db_restore = true; + pg_log_info("database \"%s\" matches exclude pattern: \"%s\"", dbidname->str, pat_cell->val); + } + + PQclear(res); + resetPQExpBuffer(query); + } + + if (skip_db_restore) + break; + } + + destroyPQExpBuffer(db_lit); + + /* + * Mark db to be skipped or increment the counter of dbs to be + * restored + */ + if (skip_db_restore) + { + pg_log_info("excluding database \"%s\"", dbidname->str); + dbidname->oid = InvalidOid; + } + else + { + count_db++; + } + } + + destroyPQExpBuffer(query); + + return count_db; +} + +/* + * get_dbname_oid_list_from_mfile + * + * Open map.dat file and read line by line and then prepare a list of database + * names and corresponding db_oid. + * + * Returns, total number of database names in map.dat file. + */ +static int +get_dbname_oid_list_from_mfile(const char *dumpdirpath, SimplePtrList *dbname_oid_list) +{ + StringInfoData linebuf; + FILE *pfile; + char map_file_path[MAXPGPATH]; + int count = 0; + + + /* + * If there is only global.dat file in dump, then return from here as + * there is no database to restore. + */ + if (!file_exists_in_directory(dumpdirpath, "map.dat")) + { + pg_log_info("database restoring is skipped as \"map.dat\" is not present in \"%s\"", dumpdirpath); + return 0; + } + + snprintf(map_file_path, MAXPGPATH, "%s/map.dat", dumpdirpath); + + /* Open map.dat file. */ + pfile = fopen(map_file_path, PG_BINARY_R); + + if (pfile == NULL) + pg_fatal("could not open \"%s\": %m", map_file_path); + + initStringInfo(&linebuf); + + /* Append all the dbname/db_oid combinations to the list. */ + while (pg_get_line_buf(pfile, &linebuf)) + { + Oid db_oid = InvalidOid; + char *dbname; + DbOidName *dbidname; + int namelen; + char *p = linebuf.data; + + /* Extract dboid. */ + while (isdigit((unsigned char) *p)) + p++; + if (p > linebuf.data && *p == ' ') + { + sscanf(linebuf.data, "%u", &db_oid); + p++; + } + + /* dbname is the rest of the line */ + dbname = p; + namelen = strlen(dbname); + + /* Report error and exit if the file has any corrupted data. */ + if (!OidIsValid(db_oid) || namelen <= 1) + pg_fatal("invalid entry in \"%s\" at line: %d", map_file_path, + count + 1); + + pg_log_info("found database \"%s\" (OID: %u) in \"%s\"", + dbname, db_oid, map_file_path); + + dbidname = pg_malloc(offsetof(DbOidName, str) + namelen + 1); + dbidname->oid = db_oid; + strlcpy(dbidname->str, dbname, namelen); + + simple_ptr_list_append(dbname_oid_list, dbidname); + count++; + } + + /* Close map.dat file. */ + fclose(pfile); + + return count; +} + +/* + * restore_all_databases + * + * This will restore databases those dumps are present in + * directory based on map.dat file mapping. + * + * This will skip restoring for databases that are specified with + * exclude-database option. + * + * returns, number of errors while doing restore. + */ +static int +restore_all_databases(PGconn *conn, const char *dumpdirpath, + SimpleStringList db_exclude_patterns, RestoreOptions *opts, + int numWorkers) +{ + SimplePtrList dbname_oid_list = {NULL, NULL}; + int num_db_restore = 0; + int num_total_db; + int n_errors_total; + int count = 0; + char *connected_db = NULL; + bool dumpData = opts->dumpData; + bool dumpSchema = opts->dumpSchema; + bool dumpStatistics = opts->dumpSchema; + + /* Save db name to reuse it for all the database. */ + if (opts->cparams.dbname) + connected_db = opts->cparams.dbname; + + num_total_db = get_dbname_oid_list_from_mfile(dumpdirpath, &dbname_oid_list); + + /* If map.dat has no entries, return after processing global.dat */ + if (dbname_oid_list.head == NULL) + return process_global_sql_commands(conn, dumpdirpath, opts->filename); + + pg_log_info("found %d database names in \"map.dat\"", num_total_db); + + if (!conn) + { + pg_log_info("trying to connect database \"postgres\""); + + conn = ConnectDatabase("postgres", NULL, opts->cparams.pghost, + opts->cparams.pgport, opts->cparams.username, TRI_DEFAULT, + false, progname, NULL, NULL, NULL, NULL); + + /* Try with template1. */ + if (!conn) + { + pg_log_info("trying to connect database \"template1\""); + + conn = ConnectDatabase("template1", NULL, opts->cparams.pghost, + opts->cparams.pgport, opts->cparams.username, TRI_DEFAULT, + false, progname, NULL, NULL, NULL, NULL); + } + } + + /* + * filter the db list according to the exclude patterns + */ + num_db_restore = get_dbnames_list_to_restore(conn, &dbname_oid_list, + db_exclude_patterns); + + /* Open global.dat file and execute/append all the global sql commands. */ + n_errors_total = process_global_sql_commands(conn, dumpdirpath, opts->filename); + + /* Close the db connection as we are done with globals and patterns. */ + if (conn) + PQfinish(conn); + + /* Exit if no db needs to be restored. */ + if (dbname_oid_list.head == NULL || num_db_restore == 0) + { + pg_log_info("no database needs to restore out of %d databases", num_total_db); + return n_errors_total; + } + + pg_log_info("need to restore %d databases out of %d databases", num_db_restore, num_total_db); + + /* + * We have a list of databases to restore after processing the + * exclude-database switch(es). Now we can restore them one by one. + */ + for (SimplePtrListCell *db_cell = dbname_oid_list.head; + db_cell; db_cell = db_cell->next) + { + DbOidName *dbidname = (DbOidName *) db_cell->ptr; + char subdirpath[MAXPGPATH]; + char subdirdbpath[MAXPGPATH]; + char dbfilename[MAXPGPATH]; + int n_errors; + + /* ignore dbs marked for skipping */ + if (dbidname->oid == InvalidOid) + continue; + + /* + * We need to reset override_dbname so that objects can be restored + * into an already created database. (used with -d/--dbname option) + */ + if (opts->cparams.override_dbname) + { + pfree(opts->cparams.override_dbname); + opts->cparams.override_dbname = NULL; + } + + snprintf(subdirdbpath, MAXPGPATH, "%s/databases", dumpdirpath); + + /* + * Look for the database dump file/dir. If there is an {oid}.tar or + * {oid}.dmp file, use it. Otherwise try to use a directory called + * {oid} + */ + snprintf(dbfilename, MAXPGPATH, "%u.tar", dbidname->oid); + if (file_exists_in_directory(subdirdbpath, dbfilename)) + snprintf(subdirpath, MAXPGPATH, "%s/databases/%u.tar", dumpdirpath, dbidname->oid); + else + { + snprintf(dbfilename, MAXPGPATH, "%u.dmp", dbidname->oid); + + if (file_exists_in_directory(subdirdbpath, dbfilename)) + snprintf(subdirpath, MAXPGPATH, "%s/databases/%u.dmp", dumpdirpath, dbidname->oid); + else + snprintf(subdirpath, MAXPGPATH, "%s/databases/%u", dumpdirpath, dbidname->oid); + } + + pg_log_info("restoring database \"%s\"", dbidname->str); + + /* If database is already created, then don't set createDB flag. */ + if (opts->cparams.dbname) + { + PGconn *test_conn; + + test_conn = ConnectDatabase(dbidname->str, NULL, opts->cparams.pghost, + opts->cparams.pgport, opts->cparams.username, TRI_DEFAULT, + false, progname, NULL, NULL, NULL, NULL); + if (test_conn) + { + PQfinish(test_conn); + + /* Use already created database for connection. */ + opts->createDB = 0; + opts->cparams.dbname = dbidname->str; + } + else + { + /* we'll have to create it */ + opts->createDB = 1; + opts->cparams.dbname = connected_db; + } + } + + /* + * Reset flags - might have been reset in pg_backup_archiver.c by the + * previous restore. + */ + opts->dumpData = dumpData; + opts->dumpSchema = dumpSchema; + opts->dumpStatistics = dumpStatistics; + + /* Restore the single database. */ + n_errors = restore_one_database(subdirpath, opts, numWorkers, true, count); + + /* Print a summary of ignored errors during single database restore. */ + if (n_errors) + { + n_errors_total += n_errors; + pg_log_warning("errors ignored on database \"%s\" restore: %d", dbidname->str, n_errors); + } + + count++; + } + + /* Log number of processed databases. */ + pg_log_info("number of restored databases is %d", num_db_restore); + + /* Free dbname and dboid list. */ + simple_ptr_list_destroy(&dbname_oid_list); + + return n_errors_total; +} + +/* + * process_global_sql_commands + * + * Open global.dat and execute or copy the sql commands one by one. + * + * If outfile is not NULL, copy all sql commands into outfile rather than + * executing them. + * + * Returns the number of errors while processing global.dat + */ +static int +process_global_sql_commands(PGconn *conn, const char *dumpdirpath, const char *outfile) +{ + char global_file_path[MAXPGPATH]; + PGresult *result; + StringInfoData sqlstatement, + user_create; + FILE *pfile; + int n_errors = 0; + + snprintf(global_file_path, MAXPGPATH, "%s/global.dat", dumpdirpath); + + /* Open global.dat file. */ + pfile = fopen(global_file_path, PG_BINARY_R); + + if (pfile == NULL) + pg_fatal("could not open \"%s\": %m", global_file_path); + + /* + * If outfile is given, then just copy all global.dat file data into + * outfile. + */ + if (outfile) + { + copy_or_print_global_file(outfile, pfile); + return 0; + } + + /* Init sqlstatement to append commands. */ + initStringInfo(&sqlstatement); + + /* creation statement for our current role */ + initStringInfo(&user_create); + appendStringInfoString(&user_create, "CREATE ROLE "); + /* should use fmtId here, but we don't know the encoding */ + appendStringInfoString(&user_create, PQuser(conn)); + appendStringInfoChar(&user_create, ';'); + + /* Process file till EOF and execute sql statements. */ + while (read_one_statement(&sqlstatement, pfile) != EOF) + { + /* don't try to create the role we are connected as */ + if (strstr(sqlstatement.data, user_create.data)) + continue; + + pg_log_info("executing query: %s", sqlstatement.data); + result = PQexec(conn, sqlstatement.data); + + switch (PQresultStatus(result)) + { + case PGRES_COMMAND_OK: + case PGRES_TUPLES_OK: + case PGRES_EMPTY_QUERY: + break; + default: + n_errors++; + pg_log_error("could not execute query: \"%s\" \nCommand was: \"%s\"", PQerrorMessage(conn), sqlstatement.data); + } + PQclear(result); + } + + /* Print a summary of ignored errors during global.dat. */ + if (n_errors) + pg_log_warning("ignored %d errors in \"%s\"", n_errors, global_file_path); + + fclose(pfile); + + return n_errors; +} + +/* + * copy_or_print_global_file + * + * Copy global.dat into the output file. If "-" is used as outfile, + * then print commands to stdout. + */ +static void +copy_or_print_global_file(const char *outfile, FILE *pfile) +{ + char out_file_path[MAXPGPATH]; + FILE *OPF; + int c; + + /* "-" is used for stdout. */ + if (strcmp(outfile, "-") == 0) + OPF = stdout; + else + { + snprintf(out_file_path, MAXPGPATH, "%s", outfile); + OPF = fopen(out_file_path, PG_BINARY_W); + + if (OPF == NULL) + { + fclose(pfile); + pg_fatal("could not open file: \"%s\"", outfile); + } + } + + /* Append global.dat into output file or print to stdout. */ + while ((c = fgetc(pfile)) != EOF) + fputc(c, OPF); + + fclose(pfile); + + /* Close output file. */ + if (strcmp(outfile, "-") != 0) + fclose(OPF); +} diff --git a/src/bin/pg_dump/po/de.po b/src/bin/pg_dump/po/de.po index fa22292c6a733..ecf78101184f4 100644 --- a/src/bin/pg_dump/po/de.po +++ b/src/bin/pg_dump/po/de.po @@ -1,14 +1,14 @@ # German message translation file for pg_dump and friends -# Peter Eisentraut , 2001 - 2024. +# Peter Eisentraut , 2001 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 16:52+0000\n" -"PO-Revision-Date: 2024-06-22 07:36+0200\n" +"POT-Creation-Date: 2025-04-04 11:22+0000\n" +"PO-Revision-Date: 2025-04-04 15:49+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -17,29 +17,29 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " #: ../../common/compression.c:132 ../../common/compression.c:141 #: ../../common/compression.c:150 compress_gzip.c:413 compress_gzip.c:420 -#: compress_io.c:109 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 +#: compress_io.c:108 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 #: compress_zstd.c:31 #, c-format msgid "this build does not support compression with %s" @@ -109,27 +109,27 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "konnte Pfad »%s« nicht in absolute Form auflösen: %m" -#: ../../common/exec.c:382 +#: ../../common/exec.c:363 #, c-format msgid "could not execute command \"%s\": %m" msgstr "konnte Befehl »%s« nicht ausführen: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "konnte nicht von Befehl »%s« lesen: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "Befehl »%s« gab keine Daten zurück" -#: ../../common/exec.c:424 parallel.c:1609 +#: ../../common/exec.c:405 parallel.c:1611 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -144,45 +144,45 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #: pg_backup_directory.c:182 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -232,242 +232,242 @@ msgstr "%s muss im Bereich %d..%d sein" msgid "unrecognized sync method: %s" msgstr "unbekannte Sync-Methode: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" -#: common.c:135 +#: common.c:111 #, c-format msgid "reading extensions" msgstr "lese Erweiterungen" -#: common.c:138 +#: common.c:114 #, c-format msgid "identifying extension members" msgstr "identifiziere Erweiterungselemente" -#: common.c:141 +#: common.c:117 #, c-format msgid "reading schemas" msgstr "lese Schemas" -#: common.c:150 +#: common.c:126 #, c-format msgid "reading user-defined tables" msgstr "lese benutzerdefinierte Tabellen" -#: common.c:155 +#: common.c:131 #, c-format msgid "reading user-defined functions" msgstr "lese benutzerdefinierte Funktionen" -#: common.c:159 +#: common.c:135 #, c-format msgid "reading user-defined types" msgstr "lese benutzerdefinierte Typen" -#: common.c:163 +#: common.c:139 #, c-format msgid "reading procedural languages" msgstr "lese prozedurale Sprachen" -#: common.c:166 +#: common.c:142 #, c-format msgid "reading user-defined aggregate functions" msgstr "lese benutzerdefinierte Aggregatfunktionen" -#: common.c:169 +#: common.c:145 #, c-format msgid "reading user-defined operators" msgstr "lese benutzerdefinierte Operatoren" -#: common.c:172 +#: common.c:148 #, c-format msgid "reading user-defined access methods" msgstr "lese benutzerdefinierte Zugriffsmethoden" -#: common.c:175 +#: common.c:151 #, c-format msgid "reading user-defined operator classes" msgstr "lese benutzerdefinierte Operatorklassen" -#: common.c:178 +#: common.c:154 #, c-format msgid "reading user-defined operator families" msgstr "lese benutzerdefinierte Operatorfamilien" -#: common.c:181 +#: common.c:157 #, c-format msgid "reading user-defined text search parsers" msgstr "lese benutzerdefinierte Textsuche-Parser" -#: common.c:184 +#: common.c:160 #, c-format msgid "reading user-defined text search templates" msgstr "lese benutzerdefinierte Textsuche-Templates" -#: common.c:187 +#: common.c:163 #, c-format msgid "reading user-defined text search dictionaries" msgstr "lese benutzerdefinierte Textsuchewörterbücher" -#: common.c:190 +#: common.c:166 #, c-format msgid "reading user-defined text search configurations" msgstr "lese benutzerdefinierte Textsuchekonfigurationen" -#: common.c:193 +#: common.c:169 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "lese benutzerdefinierte Fremddaten-Wrapper" -#: common.c:196 +#: common.c:172 #, c-format msgid "reading user-defined foreign servers" msgstr "lese benutzerdefinierte Fremdserver" -#: common.c:199 +#: common.c:175 #, c-format msgid "reading default privileges" msgstr "lese Vorgabeprivilegien" -#: common.c:202 +#: common.c:178 #, c-format msgid "reading user-defined collations" msgstr "lese benutzerdefinierte Sortierfolgen" -#: common.c:205 +#: common.c:181 #, c-format msgid "reading user-defined conversions" msgstr "lese benutzerdefinierte Konversionen" -#: common.c:208 +#: common.c:184 #, c-format msgid "reading type casts" msgstr "lese Typumwandlungen" -#: common.c:211 +#: common.c:187 #, c-format msgid "reading transforms" msgstr "lese Transformationen" -#: common.c:214 +#: common.c:190 #, c-format msgid "reading table inheritance information" msgstr "lese Tabellenvererbungsinformationen" -#: common.c:217 +#: common.c:193 #, c-format msgid "reading event triggers" msgstr "lese Ereignistrigger" -#: common.c:221 +#: common.c:197 #, c-format msgid "finding extension tables" msgstr "finde Erweiterungstabellen" -#: common.c:225 +#: common.c:201 #, c-format msgid "finding inheritance relationships" msgstr "finde Vererbungsbeziehungen" -#: common.c:228 +#: common.c:204 #, c-format msgid "reading column info for interesting tables" msgstr "lese Spalteninfo für interessante Tabellen" -#: common.c:231 +#: common.c:207 #, c-format msgid "flagging inherited columns in subtables" msgstr "markiere vererbte Spalten in abgeleiteten Tabellen" -#: common.c:234 +#: common.c:210 #, c-format msgid "reading partitioning data" msgstr "lese Partitionierungsdaten" -#: common.c:237 +#: common.c:213 #, c-format msgid "reading indexes" msgstr "lese Indexe" -#: common.c:240 +#: common.c:216 #, c-format msgid "flagging indexes in partitioned tables" msgstr "markiere Indexe in partitionierten Tabellen" -#: common.c:243 +#: common.c:219 #, c-format msgid "reading extended statistics" msgstr "lese erweiterte Statistiken" -#: common.c:246 +#: common.c:222 #, c-format msgid "reading constraints" msgstr "lese Constraints" -#: common.c:249 +#: common.c:225 #, c-format msgid "reading triggers" msgstr "lese Trigger" -#: common.c:252 +#: common.c:228 #, c-format msgid "reading rewrite rules" msgstr "lese Umschreiberegeln" -#: common.c:255 +#: common.c:231 #, c-format msgid "reading policies" -msgstr "lese Policies" +msgstr "lese Policys" -#: common.c:258 +#: common.c:234 #, c-format msgid "reading publications" msgstr "lese Publikationen" -#: common.c:261 +#: common.c:237 #, c-format msgid "reading publication membership of tables" msgstr "lese Publikationsmitgliedschaft von Tabellen" -#: common.c:264 +#: common.c:240 #, c-format msgid "reading publication membership of schemas" msgstr "lese Publikationsmitgliedschaft von Schemas" -#: common.c:267 +#: common.c:243 #, c-format msgid "reading subscriptions" msgstr "lese Subskriptionen" -#: common.c:270 +#: common.c:246 #, c-format msgid "reading subscription membership of tables" msgstr "lese Subskriptionsmitgliedschaft von Tabellen" -#: common.c:333 +#: common.c:309 #, 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:375 +#: common.c:351 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "ungültige Anzahl Eltern %d für Tabelle »%s«" -#: common.c:1098 +#: common.c:1087 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "konnte numerisches Array »%s« nicht parsen: zu viele Zahlen" -#: common.c:1110 +#: common.c:1099 #, 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" @@ -503,13 +503,13 @@ msgid "could not read from input file: %s" msgstr "konnte nicht aus Eingabedatei lesen: %s" #: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 -#: compress_zstd.c:373 pg_backup_custom.c:651 +#: compress_zstd.c:374 pg_backup_custom.c:650 #, c-format msgid "could not read from input file: %m" msgstr "konnte nicht aus Eingabedatei lesen: %m" #: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 -#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: compress_zstd.c:372 pg_backup_custom.c:648 pg_backup_directory.c:565 #: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" @@ -550,98 +550,98 @@ msgstr "konnte Dekomprimierung nicht beenden: %s" msgid "could not set compression parameter \"%s\": %s" msgstr "konnte Komprimierungsparameter »%s« nicht setzen: %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:232 compress_zstd.c:491 +#: compress_zstd.c:499 #, c-format msgid "could not initialize compression library" msgstr "konnte Komprimierungsbibliothek nicht initialisieren" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:195 compress_zstd.c:309 #, c-format msgid "could not decompress data: %s" msgstr "konnte Daten nicht dekomprimieren: %s" -#: compress_zstd.c:501 +#: compress_zstd.c:502 #, c-format msgid "unhandled mode \"%s\"" msgstr "unbehandelter Modus »%s«" -#: filter.c:49 +#: filter.c:48 #, c-format msgid "could not open filter file \"%s\": %m" msgstr "konnte Filterdatei »%s« nicht öffnen: %m" -#: filter.c:72 +#: filter.c:71 #, c-format msgid "could not close filter file \"%s\": %m" msgstr "konnte Filterdatei »%s« nicht schließen: %m" -#: filter.c:165 +#: filter.c:164 #, c-format msgid "invalid format in filter read from standard input on line %d: %s" msgstr "ungültiges Format in Filter gelesen von Standardeingabe auf Zeile %d: %s" -#: filter.c:168 +#: filter.c:167 #, c-format msgid "invalid format in filter read from file \"%s\" on line %d: %s" msgstr "ungültiges Format in Filter gelesen aus Datei »%s« auf Zeile %d: %s" -#: filter.c:241 filter.c:468 +#: filter.c:240 filter.c:467 #, c-format msgid "could not read from filter file \"%s\": %m" msgstr "konnte nicht aus Filterdatei »%s« lesen: %m" -#: filter.c:244 +#: filter.c:243 msgid "unexpected end of file" msgstr "unerwartetes Dateiende" -#: filter.c:311 +#: filter.c:310 msgid "missing object name pattern" msgstr "Objektnamenmuster fehlt" -#: filter.c:422 +#: filter.c:421 msgid "no filter command found (expected \"include\" or \"exclude\")" msgstr "kein Filterbefehl gefunden (»include« oder »exclude« erwartet)" -#: filter.c:433 +#: filter.c:432 msgid "invalid filter command (expected \"include\" or \"exclude\")" msgstr "ungültiger Filterbefehl (»include« oder »exclude« erwartet)" -#: filter.c:440 +#: filter.c:439 msgid "missing filter object type" msgstr "Filterobjekttyp fehlt" -#: filter.c:447 +#: filter.c:446 #, c-format msgid "unsupported filter object type: \"%.*s\"" msgstr "nicht unterstützter Filterobjekttyp: »%.*s«" -#: parallel.c:251 +#: parallel.c:253 #, c-format msgid "%s() failed: error code %d" msgstr "%s() fehlgeschlagen: Fehlercode %d" -#: parallel.c:959 +#: parallel.c:961 #, c-format msgid "could not create communication channels: %m" msgstr "konnte Kommunikationskanäle nicht erzeugen: %m" -#: parallel.c:1016 +#: parallel.c:1018 #, c-format msgid "could not create worker process: %m" msgstr "konnte Arbeitsprozess nicht erzeugen: %m" -#: parallel.c:1146 +#: parallel.c:1148 #, c-format msgid "unrecognized command received from leader: \"%s\"" msgstr "unbekannter Befehl vom Leader-Prozess empfangen: »%s«" -#: parallel.c:1189 parallel.c:1427 +#: parallel.c:1191 parallel.c:1429 #, c-format msgid "invalid message received from worker: \"%s\"" msgstr "ungültige Nachricht vom Arbeitsprozess empfangen: »%s«" -#: parallel.c:1321 +#: parallel.c:1323 #, c-format msgid "" "could not obtain lock on relation \"%s\"\n" @@ -650,657 +650,657 @@ msgstr "" "konnte Sperre für Relation »%s« nicht setzen\n" "Das bedeutet meistens, dass jemand eine ACCESS-EXCLUSIVE-Sperre auf die Tabelle gesetzt hat, nachdem der pg-dump-Elternprozess die anfängliche ACCESS-SHARE-Sperre gesetzt hatte." -#: parallel.c:1410 +#: parallel.c:1412 #, c-format msgid "a worker process died unexpectedly" msgstr "ein Arbeitsprozess endete unerwartet" -#: parallel.c:1532 parallel.c:1650 +#: parallel.c:1534 parallel.c:1652 #, c-format msgid "could not write to the communication channel: %m" msgstr "konnte nicht in den Kommunikationskanal schreiben: %m" -#: parallel.c:1734 +#: parallel.c:1736 #, c-format msgid "pgpipe: could not create socket: error code %d" msgstr "pgpipe: konnte Socket nicht erzeugen: Fehlercode %d" -#: parallel.c:1745 +#: parallel.c:1747 #, c-format msgid "pgpipe: could not bind: error code %d" msgstr "pgpipe: konnte nicht binden: Fehlercode %d" -#: parallel.c:1752 +#: parallel.c:1754 #, c-format msgid "pgpipe: could not listen: error code %d" msgstr "pgpipe: konnte nicht auf Socket hören: Fehlercode %d" -#: parallel.c:1759 +#: parallel.c:1761 #, c-format msgid "pgpipe: %s() failed: error code %d" msgstr "pgpipe: %s() fehlgeschlagen: Fehlercode %d" -#: parallel.c:1770 +#: parallel.c:1772 #, c-format msgid "pgpipe: could not create second socket: error code %d" msgstr "pgpipe: konnte zweites Socket nicht erzeugen: Fehlercode %d" -#: parallel.c:1779 +#: parallel.c:1781 #, c-format msgid "pgpipe: could not connect socket: error code %d" msgstr "pgpipe: konnte Socket nicht verbinden: Fehlercode %d" -#: parallel.c:1788 +#: parallel.c:1790 #, c-format msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: konnte Verbindung nicht annehmen: Fehlercode %d" -#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 +#: pg_backup_archiver.c:270 pg_backup_archiver.c:1724 #, c-format msgid "could not close output file: %m" msgstr "konnte Ausgabedatei nicht schließen: %m" -#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 +#: pg_backup_archiver.c:314 pg_backup_archiver.c:318 #, c-format msgid "archive items not in correct section order" msgstr "Archivelemente nicht in richtiger Abschnittsreihenfolge" -#: pg_backup_archiver.c:315 +#: pg_backup_archiver.c:324 #, c-format msgid "unexpected section code %d" msgstr "unerwarteter Abschnittscode %d" -#: pg_backup_archiver.c:352 +#: pg_backup_archiver.c:361 #, 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:356 +#: pg_backup_archiver.c:365 #, 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:377 +#: pg_backup_archiver.c:386 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "kann komprimiertes Archiv nicht wiederherstellen (%s)" -#: pg_backup_archiver.c:397 +#: pg_backup_archiver.c:406 #, c-format msgid "connecting to database for restore" msgstr "verbinde mit der Datenbank zur Wiederherstellung" -#: pg_backup_archiver.c:399 +#: pg_backup_archiver.c:408 #, 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:442 +#: pg_backup_archiver.c:451 #, c-format -msgid "implied data-only restore" -msgstr "implizit werden nur Daten wiederhergestellt" +msgid "implied no-schema restore" +msgstr "implizit wird das Schema nicht wiederhergestellt" -#: pg_backup_archiver.c:510 +#: pg_backup_archiver.c:519 #, c-format msgid "dropping %s %s" msgstr "entferne %s %s" -#: pg_backup_archiver.c:642 +#: pg_backup_archiver.c:651 #, 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:828 pg_backup_archiver.c:830 +#: pg_backup_archiver.c:837 pg_backup_archiver.c:839 #, c-format msgid "warning from original dump file: %s" msgstr "Warnung aus der ursprünglichen Ausgabedatei: %s" -#: pg_backup_archiver.c:864 +#: pg_backup_archiver.c:873 #, c-format msgid "creating %s \"%s.%s\"" msgstr "erstelle %s »%s.%s«" -#: pg_backup_archiver.c:867 +#: pg_backup_archiver.c:876 #, c-format msgid "creating %s \"%s\"" msgstr "erstelle %s »%s«" -#: pg_backup_archiver.c:917 +#: pg_backup_archiver.c:926 #, c-format msgid "connecting to new database \"%s\"" msgstr "verbinde mit neuer Datenbank »%s«" -#: pg_backup_archiver.c:944 +#: pg_backup_archiver.c:953 #, c-format msgid "processing %s" msgstr "verarbeite %s" -#: pg_backup_archiver.c:966 +#: pg_backup_archiver.c:975 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "verarbeite Daten für Tabelle »%s.%s«" -#: pg_backup_archiver.c:1036 +#: pg_backup_archiver.c:1045 #, c-format msgid "executing %s %s" msgstr "führe %s %s aus" -#: pg_backup_archiver.c:1096 +#: pg_backup_archiver.c:1114 #, c-format msgid "disabling triggers for %s" msgstr "schalte Trigger für %s aus" -#: pg_backup_archiver.c:1122 +#: pg_backup_archiver.c:1140 #, c-format msgid "enabling triggers for %s" msgstr "schalte Trigger für %s ein" -#: pg_backup_archiver.c:1187 +#: pg_backup_archiver.c:1205 #, 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:1379 +#: pg_backup_archiver.c:1397 #, 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:1442 +#: pg_backup_archiver.c:1460 #, 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:1469 pg_backup_tar.c:683 +#: pg_backup_archiver.c:1487 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "Wiederherstellung von Large Object mit OID %u" -#: pg_backup_archiver.c:1481 +#: pg_backup_archiver.c:1499 #, c-format msgid "could not create large object %u: %s" msgstr "konnte Large Object %u nicht erstellen: %s" -#: pg_backup_archiver.c:1486 pg_dump.c:3863 +#: pg_backup_archiver.c:1504 pg_dump.c:4058 #, c-format msgid "could not open large object %u: %s" msgstr "konnte Large Object %u nicht öffnen: %s" -#: pg_backup_archiver.c:1542 +#: pg_backup_archiver.c:1560 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "konnte Inhaltsverzeichnisdatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:1570 +#: pg_backup_archiver.c:1588 #, c-format msgid "line ignored: %s" msgstr "Zeile ignoriert: %s" -#: pg_backup_archiver.c:1577 pg_backup_db.c:609 +#: pg_backup_archiver.c:1595 pg_backup_db.c:607 #, c-format msgid "could not find entry for ID %d" msgstr "konnte Eintrag für ID %d nicht finden" -#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_archiver.c:1618 pg_backup_directory.c:219 #: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "konnte Inhaltsverzeichnisdatei nicht schließen: %m" -#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_archiver.c:1705 pg_backup_custom.c:151 pg_backup_directory.c:333 #: pg_backup_directory.c:600 pg_backup_directory.c:666 -#: pg_backup_directory.c:684 pg_dumpall.c:506 +#: pg_backup_directory.c:684 pg_dumpall.c:538 #, c-format msgid "could not open output file \"%s\": %m" msgstr "konnte Ausgabedatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 +#: pg_backup_archiver.c:1707 pg_backup_custom.c:157 #, c-format msgid "could not open output file: %m" msgstr "konnte Ausgabedatei nicht öffnen: %m" -#: pg_backup_archiver.c:1772 +#: pg_backup_archiver.c:1790 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "%zu Byte Large-Object-Daten geschrieben (Ergebnis = %d)" msgstr[1] "%zu Bytes Large-Object-Daten geschrieben (Ergebnis = %d)" -#: pg_backup_archiver.c:1778 +#: pg_backup_archiver.c:1796 #, c-format msgid "could not write to large object: %s" msgstr "konnte Large Object nicht schreiben: %s" -#: pg_backup_archiver.c:1868 +#: pg_backup_archiver.c:1886 #, c-format msgid "while INITIALIZING:" msgstr "in Phase INITIALIZING:" -#: pg_backup_archiver.c:1873 +#: pg_backup_archiver.c:1891 #, c-format msgid "while PROCESSING TOC:" msgstr "in Phase PROCESSING TOC:" -#: pg_backup_archiver.c:1878 +#: pg_backup_archiver.c:1896 #, c-format msgid "while FINALIZING:" msgstr "in Phase FINALIZING:" -#: pg_backup_archiver.c:1883 +#: pg_backup_archiver.c:1901 #, 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:1959 +#: pg_backup_archiver.c:1977 #, c-format msgid "bad dumpId" msgstr "ungültige DumpId" -#: pg_backup_archiver.c:1980 +#: pg_backup_archiver.c:1998 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "ungültige Tabellen-DumpId für »TABLE DATA«-Eintrag" -#: pg_backup_archiver.c:2072 +#: pg_backup_archiver.c:2090 #, c-format msgid "unexpected data offset flag %d" msgstr "unerwartete Datenoffsetmarkierung %d" -#: pg_backup_archiver.c:2085 +#: pg_backup_archiver.c:2103 #, c-format msgid "file offset in dump file is too large" msgstr "Dateioffset in Dumpdatei ist zu groß" -#: pg_backup_archiver.c:2196 +#: pg_backup_archiver.c:2214 #, c-format msgid "directory name too long: \"%s\"" msgstr "Verzeichnisname zu lang: »%s«" -#: pg_backup_archiver.c:2246 +#: pg_backup_archiver.c:2264 #, 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:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_archiver.c:2272 pg_backup_custom.c:168 pg_backup_custom.c:811 #: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "konnte Eingabedatei »%s« nicht öffnen: %m" -#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 +#: pg_backup_archiver.c:2279 pg_backup_custom.c:174 #, c-format msgid "could not open input file: %m" msgstr "konnte Eingabedatei nicht öffnen: %m" -#: pg_backup_archiver.c:2267 +#: pg_backup_archiver.c:2285 #, c-format msgid "could not read input file: %m" msgstr "konnte Eingabedatei nicht lesen: %m" -#: pg_backup_archiver.c:2269 +#: pg_backup_archiver.c:2287 #, 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:2301 +#: pg_backup_archiver.c:2319 #, 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:2307 +#: pg_backup_archiver.c:2325 #, 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:2313 +#: pg_backup_archiver.c:2331 #, 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:2322 +#: pg_backup_archiver.c:2340 #, c-format msgid "could not close input file: %m" msgstr "konnte Eingabedatei nicht schließen: %m" -#: pg_backup_archiver.c:2401 +#: pg_backup_archiver.c:2419 #, c-format msgid "could not open stdout for appending: %m" msgstr "konnte Standardausgabe nicht zum Anhängen öffnen: %m" -#: pg_backup_archiver.c:2446 +#: pg_backup_archiver.c:2464 #, c-format msgid "unrecognized file format \"%d\"" msgstr "nicht erkanntes Dateiformat »%d«" -#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4625 +#: pg_backup_archiver.c:2545 pg_backup_archiver.c:4698 #, c-format msgid "finished item %d %s %s" msgstr "Element %d %s %s abgeschlossen" -#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4638 +#: pg_backup_archiver.c:2549 pg_backup_archiver.c:4711 #, c-format msgid "worker process failed: exit code %d" msgstr "Arbeitsprozess fehlgeschlagen: Code %d" -#: pg_backup_archiver.c:2653 +#: pg_backup_archiver.c:2671 #, 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:2736 +#: pg_backup_archiver.c:2754 #, 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:2818 +#: pg_backup_archiver.c:2836 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "nicht erkannte Kodierung »%s«" -#: pg_backup_archiver.c:2823 +#: pg_backup_archiver.c:2842 #, c-format msgid "invalid ENCODING item: %s" msgstr "ungültiger ENCODING-Eintrag: %s" -#: pg_backup_archiver.c:2841 +#: pg_backup_archiver.c:2860 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "ungültiger STDSTRINGS-Eintrag: %s" -#: pg_backup_archiver.c:2866 +#: pg_backup_archiver.c:2885 #, c-format msgid "schema \"%s\" not found" msgstr "Schema »%s« nicht gefunden" -#: pg_backup_archiver.c:2873 +#: pg_backup_archiver.c:2892 #, c-format msgid "table \"%s\" not found" msgstr "Tabelle »%s« nicht gefunden" -#: pg_backup_archiver.c:2880 +#: pg_backup_archiver.c:2899 #, c-format msgid "index \"%s\" not found" msgstr "Index »%s« nicht gefunden" -#: pg_backup_archiver.c:2887 +#: pg_backup_archiver.c:2906 #, c-format msgid "function \"%s\" not found" msgstr "Funktion »%s« nicht gefunden" -#: pg_backup_archiver.c:2894 +#: pg_backup_archiver.c:2913 #, c-format msgid "trigger \"%s\" not found" msgstr "Trigger »%s« nicht gefunden" -#: pg_backup_archiver.c:3325 +#: pg_backup_archiver.c:3381 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "konnte Sitzungsbenutzer nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3457 +#: pg_backup_archiver.c:3513 #, c-format msgid "could not set \"search_path\" to \"%s\": %s" msgstr "konnte »search_path« nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3518 +#: pg_backup_archiver.c:3574 #, c-format msgid "could not set \"default_tablespace\" to %s: %s" msgstr "konnte »default_tablespace« nicht auf »%s« setzen: %s" -#: pg_backup_archiver.c:3567 +#: pg_backup_archiver.c:3623 #, c-format msgid "could not set \"default_table_access_method\": %s" msgstr "konnte »default_table_access_method« nicht setzen: %s" -#: pg_backup_archiver.c:3616 +#: pg_backup_archiver.c:3672 #, c-format msgid "could not alter table access method: %s" msgstr "konnte Tabellenzugriffsmethode nicht ändern: %s" -#: pg_backup_archiver.c:3717 +#: pg_backup_archiver.c:3773 #, 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:3982 +#: pg_backup_archiver.c:4054 #, c-format msgid "did not find magic string in file header" msgstr "magische Zeichenkette im Dateikopf nicht gefunden" -#: pg_backup_archiver.c:3996 +#: pg_backup_archiver.c:4068 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "nicht unterstützte Version (%d.%d) im Dateikopf" -#: pg_backup_archiver.c:4001 +#: pg_backup_archiver.c:4073 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "Prüfung der Integer-Größe (%lu) fehlgeschlagen" -#: pg_backup_archiver.c:4005 +#: pg_backup_archiver.c:4077 #, 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:4015 +#: pg_backup_archiver.c:4087 #, 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:4037 +#: pg_backup_archiver.c:4109 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "Archiv ist komprimiert, aber diese Installation unterstützt keine Komprimierung (%s) -- keine Daten verfügbar" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4145 #, c-format msgid "invalid creation date in header" msgstr "ungültiges Erstellungsdatum im Kopf" -#: pg_backup_archiver.c:4207 +#: pg_backup_archiver.c:4279 #, c-format msgid "processing item %d %s %s" msgstr "verarbeite Element %d %s %s" -#: pg_backup_archiver.c:4292 +#: pg_backup_archiver.c:4364 #, c-format msgid "entering main parallel loop" msgstr "Eintritt in Hauptparallelschleife" -#: pg_backup_archiver.c:4303 +#: pg_backup_archiver.c:4375 #, c-format msgid "skipping item %d %s %s" msgstr "Element %d %s %s wird übersprungen" -#: pg_backup_archiver.c:4312 +#: pg_backup_archiver.c:4384 #, c-format msgid "launching item %d %s %s" msgstr "starte Element %d %s %s" -#: pg_backup_archiver.c:4366 +#: pg_backup_archiver.c:4438 #, c-format msgid "finished main parallel loop" msgstr "Hauptparallelschleife beendet" -#: pg_backup_archiver.c:4402 +#: pg_backup_archiver.c:4474 #, c-format msgid "processing missed item %d %s %s" msgstr "verarbeite verpasstes Element %d %s %s" -#: pg_backup_archiver.c:4944 +#: pg_backup_archiver.c:5017 #, 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" -#: pg_backup_custom.c:376 pg_backup_null.c:143 +#: pg_backup_custom.c:375 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "ungültige OID für Large Object" -#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 -#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 +#: pg_backup_custom.c:440 pg_backup_custom.c:506 pg_backup_custom.c:635 +#: pg_backup_custom.c:869 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "Fehler beim Suchen in Datei: %m" -#: pg_backup_custom.c:480 +#: pg_backup_custom.c:479 #, c-format msgid "data block %d has wrong seek position" msgstr "Datenblock %d hat falsche Seek-Position" -#: pg_backup_custom.c:497 +#: pg_backup_custom.c:496 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "unerkannter Datenblocktyp (%d) beim Suchen im Archiv gefunden" -#: pg_backup_custom.c:519 +#: pg_backup_custom.c:518 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "konnte Block-ID %d nicht im Archiv finden -- möglicherweise wegen Wiederherstellung außer der Reihe, was nicht möglich ist, weil die Eingabedatei kein Suchen unterstützt" -#: pg_backup_custom.c:524 +#: pg_backup_custom.c:523 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "konnte Block-ID %d nicht im Archiv finden -- möglicherweise beschädigtes Archiv" -#: pg_backup_custom.c:531 +#: pg_backup_custom.c:530 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "unerwartete Block-ID (%d) beim Lesen der Daten gefunden -- erwartet wurde %d" -#: pg_backup_custom.c:545 +#: pg_backup_custom.c:544 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "unerkannter Datenblocktyp %d beim Wiederherstellen des Archivs gefunden" -#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_custom.c:750 pg_backup_custom.c:802 pg_backup_custom.c:944 #: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "konnte Positionszeiger in Archivdatei nicht ermitteln: %m" -#: pg_backup_custom.c:767 pg_backup_custom.c:807 +#: pg_backup_custom.c:766 pg_backup_custom.c:806 #, c-format msgid "could not close archive file: %m" msgstr "konnte Archivdatei nicht schließen: %m" -#: pg_backup_custom.c:790 +#: pg_backup_custom.c:789 #, c-format msgid "can only reopen input archives" msgstr "nur Eingabearchive können neu geöffnet werden" -#: pg_backup_custom.c:797 +#: pg_backup_custom.c:796 #, c-format msgid "parallel restore from standard input is not supported" msgstr "parallele Wiederherstellung aus der Standardeingabe wird nicht unterstützt" -#: pg_backup_custom.c:799 +#: pg_backup_custom.c:798 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "parallele Wiederherstellung aus einer Datei, die kein Suchen ermöglicht, wird nicht unterstützt" -#: pg_backup_custom.c:815 +#: pg_backup_custom.c:814 #, c-format msgid "could not set seek position in archive file: %m" msgstr "konnte Positionszeiger in Archivdatei nicht setzen: %m" -#: pg_backup_custom.c:894 +#: pg_backup_custom.c:893 #, c-format msgid "compressor active" msgstr "Kompressor ist aktiv" -#: pg_backup_db.c:42 +#: pg_backup_db.c:40 #, c-format -msgid "could not get server_version from libpq" -msgstr "konnte server_version nicht von libpq ermitteln" +msgid "could not get \"server_version\" from libpq" +msgstr "konnte »server_version« nicht von libpq ermitteln" -#: pg_backup_db.c:53 pg_dumpall.c:1830 +#: pg_backup_db.c:51 pg_dumpall.c:1919 #, c-format msgid "aborting because of server version mismatch" msgstr "Abbruch wegen unpassender Serverversion" -#: pg_backup_db.c:54 pg_dumpall.c:1831 +#: pg_backup_db.c:52 pg_dumpall.c:1920 #, c-format msgid "server version: %s; %s version: %s" msgstr "Version des Servers: %s; Version von %s: %s" -#: pg_backup_db.c:120 +#: pg_backup_db.c:118 #, c-format msgid "already connected to a database" msgstr "bereits mit einer Datenbank verbunden" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 +#: pg_backup_db.c:126 pg_backup_db.c:176 pg_dumpall.c:1766 pg_dumpall.c:1868 msgid "Password: " msgstr "Passwort: " -#: pg_backup_db.c:170 +#: pg_backup_db.c:168 #, c-format msgid "could not connect to database" msgstr "konnte nicht mit der Datenbank verbinden" -#: pg_backup_db.c:187 +#: pg_backup_db.c:185 #, c-format msgid "reconnection failed: %s" msgstr "Wiederverbindung fehlgeschlagen: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:787 pg_dump_sort.c:1213 -#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 +#: pg_backup_db.c:188 pg_backup_db.c:262 pg_dump.c:920 pg_dump_sort.c:1251 +#: pg_dump_sort.c:1271 pg_dumpall.c:1793 pg_dumpall.c:1877 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 +#: pg_backup_db.c:269 pg_dumpall.c:1982 pg_dumpall.c:2005 #, c-format msgid "query failed: %s" msgstr "Anfrage fehlgeschlagen: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 +#: pg_backup_db.c:271 pg_dumpall.c:1983 pg_dumpall.c:2006 #, c-format msgid "Query was: %s" msgstr "Anfrage war: %s" -#: pg_backup_db.c:315 +#: pg_backup_db.c:313 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" msgstr[0] "Anfrage ergab %d Zeile anstatt einer: %s" msgstr[1] "Anfrage ergab %d Zeilen anstatt einer: %s" -#: pg_backup_db.c:351 +#: pg_backup_db.c:349 #, c-format msgid "%s: %sCommand was: %s" msgstr "%s: %sDie Anweisung war: %s" -#: pg_backup_db.c:407 pg_backup_db.c:481 pg_backup_db.c:488 +#: pg_backup_db.c:405 pg_backup_db.c:479 pg_backup_db.c:486 msgid "could not execute query" msgstr "konnte Anfrage nicht ausführen" -#: pg_backup_db.c:460 +#: pg_backup_db.c:458 #, c-format msgid "error returned by PQputCopyData: %s" msgstr "Fehler in PQputCopyData: %s" -#: pg_backup_db.c:509 +#: pg_backup_db.c:507 #, c-format msgid "error returned by PQputCopyEnd: %s" msgstr "Fehler in PQputCopyEnd: %s" -#: pg_backup_db.c:515 +#: pg_backup_db.c:513 #, c-format msgid "COPY failed for table \"%s\": %s" msgstr "COPY fehlgeschlagen für Tabelle »%s«: %s" -#: pg_backup_db.c:521 pg_dump.c:2271 +#: pg_backup_db.c:519 pg_dump.c:2434 #, 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:533 +#: pg_backup_db.c:531 msgid "could not start database transaction" msgstr "konnte Datenbanktransaktion nicht starten" -#: pg_backup_db.c:541 +#: pg_backup_db.c:539 msgid "could not commit database transaction" msgstr "konnte Datenbanktransaktion nicht beenden" @@ -1458,100 +1458,140 @@ msgstr[1] "unvollständiger Tar-Dateikopf gefunden (%lu Bytes)" msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "beschädigter Tar-Kopf in %s gefunden (%d erwartet, %d berechnet), Dateiposition %llu" -#: pg_backup_utils.c:54 +#: pg_backup_utils.c:56 #, c-format msgid "unrecognized section name: \"%s\"" msgstr "unbekannter Abschnittsname: »%s«" -#: pg_backup_utils.c:55 pg_dump.c:693 pg_dump.c:710 pg_dumpall.c:370 -#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 -#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 -#: pg_restore.c:337 +#: pg_backup_utils.c:57 pg_dump.c:798 pg_dump.c:815 pg_dumpall.c:386 +#: pg_dumpall.c:396 pg_dumpall.c:404 pg_dumpall.c:412 pg_dumpall.c:419 +#: pg_dumpall.c:429 pg_dumpall.c:520 pg_restore.c:324 pg_restore.c:340 +#: pg_restore.c:354 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_backup_utils.c:66 +#: pg_backup_utils.c:68 #, c-format msgid "out of on_exit_nicely slots" msgstr "on_exit_nicely-Slots aufgebraucht" -#: pg_dump.c:708 pg_dumpall.c:378 pg_restore.c:321 +#: pg_dump.c:813 pg_dumpall.c:394 pg_restore.c:338 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_dump.c:727 pg_restore.c:344 +#: pg_dump.c:825 pg_restore.c:362 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "Optionen -s/--schema-only und -a/--data-only können nicht zusammen verwendet werden" -#: pg_dump.c:730 +#: pg_dump.c:827 pg_restore.c:364 +#, c-format +msgid "options -s/--schema-only and --statistics-only cannot be used together" +msgstr "Optionen -s/--schema-only und --statistics-only können nicht zusammen verwendet werden" + +#: pg_dump.c:829 pg_restore.c:366 +#, c-format +msgid "options -a/--data-only and --statistics-only cannot be used together" +msgstr "Optionen -a/--data-only und --statistic-only können nicht zusammen verwendet werden" + +#: pg_dump.c:833 pg_restore.c:370 +#, c-format +msgid "options -a/--data-only and --no-data cannot be used together" +msgstr "Optionen -a/--data-only und --no-data können nicht zusammen verwendet werden" + +#: pg_dump.c:835 pg_restore.c:372 +#, c-format +msgid "options -s/--schema-only and --no-schema cannot be used together" +msgstr "Optionen -s/--schema-only und --no-schema können nicht zusammen verwendet werden" + +#: pg_dump.c:837 pg_restore.c:374 +#, c-format +msgid "options --statistics-only and --no-statistics cannot be used together" +msgstr "Optionen --statistics-only und --no-statistics können nicht zusammen verwendet werden" + +#: pg_dump.c:841 pg_restore.c:378 +#, c-format +msgid "options --with-data and --no-data cannot be used together" +msgstr "Optionen --with-data und --no-data können nicht zusammen verwendet werden" + +#: pg_dump.c:843 pg_restore.c:380 +#, c-format +msgid "options --with-schema and --no-schema cannot be used together" +msgstr "Optionen --with-schema und --no-schema können nicht zusammen verwendet werden" + +#: pg_dump.c:845 pg_restore.c:382 +#, c-format +msgid "options --with-statistics and --no-statistics cannot be used together" +msgstr "Optionen --with-statistics und --no-statistics können nicht zusammen verwendet werden" + +#: pg_dump.c:848 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "Optionen -s/--schema-only und --include-foreign-data können nicht zusammen verwendet werden" -#: pg_dump.c:733 +#: pg_dump.c:851 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "Option --include-foreign-data wird nicht mit paralleler Sicherung unterstützt" -#: pg_dump.c:736 pg_restore.c:347 +#: pg_dump.c:854 pg_restore.c:385 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "Optionen -c/--clean und -a/--data-only können nicht zusammen verwendet werden" -#: pg_dump.c:739 pg_dumpall.c:408 pg_restore.c:375 +#: pg_dump.c:857 pg_dumpall.c:424 pg_restore.c:428 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "Option --if-exists benötigt Option -c/--clean" -#: pg_dump.c:746 +#: pg_dump.c:879 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "Option --on-conflict-do-nothing benötigt Option --inserts, --rows-per-insert oder --column-inserts" -#: pg_dump.c:775 +#: pg_dump.c:908 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "unbekannter Komprimierungsalgorithmus: »%s«" -#: pg_dump.c:782 +#: pg_dump.c:915 #, c-format msgid "invalid compression specification: %s" msgstr "ungültige Komprimierungsangabe: %s" -#: pg_dump.c:795 +#: pg_dump.c:928 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "Komprimierungsoption »%s« wird aktuell von pg_dump nicht unterstützt" -#: pg_dump.c:807 +#: pg_dump.c:940 #, c-format msgid "parallel backup only supported by the directory format" msgstr "parallele Sicherung wird nur vom Ausgabeformat »Verzeichnis« unterstützt" -#: pg_dump.c:853 +#: pg_dump.c:986 #, c-format msgid "last built-in OID is %u" msgstr "letzte eingebaute OID ist %u" -#: pg_dump.c:862 +#: pg_dump.c:995 #, c-format msgid "no matching schemas were found" msgstr "keine passenden Schemas gefunden" -#: pg_dump.c:879 +#: pg_dump.c:1012 #, c-format msgid "no matching tables were found" msgstr "keine passenden Tabellen gefunden" -#: pg_dump.c:907 +#: pg_dump.c:1040 #, c-format msgid "no matching extensions were found" msgstr "keine passenden Erweiterungen gefunden" -#: pg_dump.c:1091 +#: pg_dump.c:1233 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1560,17 +1600,17 @@ msgstr "" "%s gibt eine Datenbank als Textdatei oder in anderen Formaten aus.\n" "\n" -#: pg_dump.c:1092 pg_dumpall.c:635 pg_restore.c:452 +#: pg_dump.c:1234 pg_dumpall.c:668 pg_restore.c:503 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: pg_dump.c:1093 +#: pg_dump.c:1235 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: pg_dump.c:1095 pg_dumpall.c:638 pg_restore.c:455 +#: pg_dump.c:1237 pg_dumpall.c:671 pg_restore.c:506 #, c-format msgid "" "\n" @@ -1579,12 +1619,12 @@ msgstr "" "\n" "Allgemeine Optionen:\n" -#: pg_dump.c:1096 +#: pg_dump.c:1238 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=DATEINAME Name der Ausgabedatei oder des -verzeichnisses\n" -#: pg_dump.c:1097 +#: pg_dump.c:1239 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1593,22 +1633,22 @@ msgstr "" " -F, --format=c|d|t|p Ausgabeformat (custom, d=Verzeichnis, tar,\n" " plain text)\n" -#: pg_dump.c:1099 +#: pg_dump.c:1241 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM so viele parallele Jobs zur Sicherung verwenden\n" -#: pg_dump.c:1100 pg_dumpall.c:640 +#: pg_dump.c:1242 pg_dumpall.c:673 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_dump.c:1101 pg_dumpall.c:641 +#: pg_dump.c:1243 pg_dumpall.c:674 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_dump.c:1102 +#: pg_dump.c:1244 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1617,31 +1657,31 @@ msgstr "" " -Z, --compress=METHODE[:DETAIL]\n" " wie angegeben komprimieren\n" -#: pg_dump.c:1104 pg_dumpall.c:642 +#: pg_dump.c:1246 pg_dumpall.c:675 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=ZEIT Abbruch nach ZEIT Warten auf Tabellensperre\n" -#: pg_dump.c:1105 pg_dumpall.c:670 +#: pg_dump.c:1247 pg_dumpall.c:707 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr "" " --no-sync nicht warten, bis Änderungen sicher auf\n" " Festplatte geschrieben sind\n" -#: pg_dump.c:1106 +#: pg_dump.c:1248 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHODE Methode zum Synchronisieren von Dateien auf\n" " Festplatte setzen\n" -#: pg_dump.c:1107 pg_dumpall.c:643 +#: pg_dump.c:1249 pg_dumpall.c:676 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_dump.c:1109 pg_dumpall.c:644 +#: pg_dump.c:1251 pg_dumpall.c:677 #, c-format msgid "" "\n" @@ -1650,64 +1690,64 @@ msgstr "" "\n" "Optionen die den Inhalt der Ausgabe kontrollieren:\n" -#: pg_dump.c:1110 pg_dumpall.c:645 +#: pg_dump.c:1252 pg_dumpall.c:678 #, c-format -msgid " -a, --data-only dump only the data, not the schema\n" -msgstr " -a, --data-only nur Daten ausgeben, nicht das Schema\n" +msgid " -a, --data-only dump only the data, not the schema or statistics\n" +msgstr " -a, --data-only nur die Daten ausgeben, nicht das Schema oder Statistiken\n" -#: pg_dump.c:1111 +#: pg_dump.c:1253 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects Large Objects mit ausgeben\n" -#: pg_dump.c:1112 +#: pg_dump.c:1254 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (gleich --large-objects, veraltet)\n" -#: pg_dump.c:1113 +#: pg_dump.c:1255 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects Large Objects nicht mit ausgeben\n" -#: pg_dump.c:1114 +#: pg_dump.c:1256 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (gleich --no-large-objects, veraltet)\n" -#: pg_dump.c:1115 pg_restore.c:466 +#: pg_dump.c:1257 pg_restore.c:517 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean Datenbankobjekte vor der Wiedererstellung löschen\n" -#: pg_dump.c:1116 +#: pg_dump.c:1258 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr "" " -C, --create Anweisungen zum Erstellen der Datenbank in\n" " Ausgabe einfügen\n" -#: pg_dump.c:1117 +#: pg_dump.c:1259 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=MUSTER nur die angegebene(n) Erweiterung(en) ausgeben\n" -#: pg_dump.c:1118 pg_dumpall.c:647 +#: pg_dump.c:1260 pg_dumpall.c:680 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=KODIERUNG Daten in Kodierung KODIERUNG ausgeben\n" -#: pg_dump.c:1119 +#: pg_dump.c:1261 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=MUSTER nur das/die angegebene(n) Schema(s) ausgeben\n" -#: pg_dump.c:1120 +#: pg_dump.c:1262 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=MUSTER das/die angegebene(n) Schema(s) NICHT ausgeben\n" -#: pg_dump.c:1121 +#: pg_dump.c:1263 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1716,58 +1756,58 @@ msgstr "" " -O, --no-owner Wiederherstellung der Objekteigentümerschaft im\n" " »plain text«-Format auslassen\n" -#: pg_dump.c:1123 pg_dumpall.c:651 +#: pg_dump.c:1265 pg_dumpall.c:684 #, c-format -msgid " -s, --schema-only dump only the schema, no data\n" -msgstr " -s, --schema-only nur das Schema, nicht die Daten, ausgeben\n" +msgid " -s, --schema-only dump only the schema, no data or statistics\n" +msgstr " -s, --schema-only nur das Schema ausgeben, nicht Daten oder Statistiken\n" -#: pg_dump.c:1124 +#: pg_dump.c:1266 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME Superusername für »plain text«-Format\n" -#: pg_dump.c:1125 +#: pg_dump.c:1267 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=MUSTER nur die angegebene(n) Tabelle(n) ausgeben\n" -#: pg_dump.c:1126 +#: pg_dump.c:1268 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=MUSTER die angegebene(n) Tabelle(n) NICHT ausgeben\n" -#: pg_dump.c:1127 pg_dumpall.c:654 +#: pg_dump.c:1269 pg_dumpall.c:687 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges Zugriffsprivilegien (grant/revoke) nicht ausgeben\n" -#: pg_dump.c:1128 pg_dumpall.c:655 +#: pg_dump.c:1270 pg_dumpall.c:688 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade wird nur von Upgrade-Programmen verwendet\n" -#: pg_dump.c:1129 pg_dumpall.c:656 +#: pg_dump.c:1271 pg_dumpall.c:689 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr "" " --column-inserts Daten als INSERT-Anweisungen mit Spaltennamen\n" " ausgeben\n" -#: pg_dump.c:1130 pg_dumpall.c:657 +#: pg_dump.c:1272 pg_dumpall.c:690 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr "" " --disable-dollar-quoting Dollar-Quoting abschalten, normales SQL-Quoting\n" " verwenden\n" -#: pg_dump.c:1131 pg_dumpall.c:658 pg_restore.c:483 +#: pg_dump.c:1273 pg_dumpall.c:691 pg_restore.c:534 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr "" " --disable-triggers Trigger während der Datenwiederherstellung\n" " abschalten\n" -#: pg_dump.c:1132 +#: pg_dump.c:1274 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1776,12 +1816,12 @@ msgstr "" " --enable-row-security Sicherheit auf Zeilenebene einschalten (nur Daten\n" " ausgeben, auf die der Benutzer Zugriff hat)\n" -#: pg_dump.c:1134 +#: pg_dump.c:1276 #, c-format msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" msgstr " --exclude-extension=MUSTER die angegebene(n) Erweiterung(en) NICHT ausgeben\n" -#: pg_dump.c:1135 +#: pg_dump.c:1277 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1792,12 +1832,12 @@ msgstr "" " die angegebene(n) Tabelle(n) NICHT ausgeben,\n" " einschließlich abgeleiteter und Partitionstabellen\n" -#: pg_dump.c:1138 +#: pg_dump.c:1280 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=MUSTER Daten der angegebenen Tabelle(n) NICHT ausgeben\n" -#: pg_dump.c:1139 +#: pg_dump.c:1281 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1808,12 +1848,12 @@ msgstr "" " Daten der angegebenen Tabelle(n) NICHT ausgeben,\n" " einschließlich abgeleiteter und Partitionstabellen\n" -#: pg_dump.c:1142 pg_dumpall.c:660 +#: pg_dump.c:1284 pg_dumpall.c:693 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=ZAHL Einstellung für extra_float_digits\n" -#: pg_dump.c:1143 +#: pg_dump.c:1285 #, c-format msgid "" " --filter=FILENAME include or exclude objects and data from dump\n" @@ -1822,12 +1862,12 @@ msgstr "" " --filter=DATEINAME Objekte und Daten basierend auf Ausdrücken in DATEINAME\n" " mit sichern oder überspringen\n" -#: pg_dump.c:1145 pg_dumpall.c:662 pg_restore.c:487 +#: pg_dump.c:1287 pg_dumpall.c:695 pg_restore.c:538 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists IF EXISTS verwenden, wenn Objekte gelöscht werden\n" -#: pg_dump.c:1146 +#: pg_dump.c:1288 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1838,91 +1878,121 @@ msgstr "" " Daten von Fremdtabellen auf Fremdservern, die\n" " mit MUSTER übereinstimmen, mit sichern\n" -#: pg_dump.c:1149 pg_dumpall.c:663 +#: pg_dump.c:1291 pg_dumpall.c:696 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts Daten als INSERT-Anweisungen statt COPY ausgeben\n" -#: pg_dump.c:1150 pg_dumpall.c:664 +#: pg_dump.c:1292 pg_dumpall.c:697 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root Partitionen über die Wurzeltabelle laden\n" -#: pg_dump.c:1151 pg_dumpall.c:665 +#: pg_dump.c:1293 pg_dumpall.c:698 #, c-format -msgid " --no-comments do not dump comments\n" -msgstr " --no-comments Kommentare nicht ausgeben\n" +msgid " --no-comments do not dump comment commands\n" +msgstr " --no-comments Kommentar-Befehle nicht ausgeben\n" -#: pg_dump.c:1152 pg_dumpall.c:666 +#: pg_dump.c:1294 pg_dumpall.c:699 +#, c-format +msgid " --no-data do not dump data\n" +msgstr " --no-data Daten nicht ausgeben\n" + +#: pg_dump.c:1295 pg_dumpall.c:700 +#, c-format +msgid " --no-policies do not dump row security policies\n" +msgstr " --no-policies Policys für Sicherheit auf Zeilenebene nicht ausgeben\n" + +#: pg_dump.c:1296 pg_dumpall.c:701 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications Publikationen nicht ausgeben\n" -#: pg_dump.c:1153 pg_dumpall.c:668 +#: pg_dump.c:1297 pg_dumpall.c:703 +#, c-format +msgid " --no-schema do not dump schema\n" +msgstr " --no-schema Schema nicht ausgeben\n" + +#: pg_dump.c:1298 pg_dumpall.c:704 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels Security-Label-Zuweisungen nicht ausgeben\n" -#: pg_dump.c:1154 pg_dumpall.c:669 +#: pg_dump.c:1299 pg_dumpall.c:705 +#, c-format +msgid " --no-statistics do not dump statistics\n" +msgstr " --no-statistics Statistiken nicht ausgeben\n" + +#: pg_dump.c:1300 pg_dumpall.c:706 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions Subskriptionen nicht ausgeben\n" -#: pg_dump.c:1155 pg_dumpall.c:671 +#: pg_dump.c:1301 pg_dumpall.c:708 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method Tabellenzugriffsmethoden nicht ausgeben\n" -#: pg_dump.c:1156 pg_dumpall.c:672 +#: pg_dump.c:1302 pg_dumpall.c:709 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces Tablespace-Zuordnungen nicht ausgeben\n" -#: pg_dump.c:1157 pg_dumpall.c:673 +#: pg_dump.c:1303 pg_dumpall.c:710 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression TOAST-Komprimierungsmethoden nicht ausgeben\n" -#: pg_dump.c:1158 pg_dumpall.c:674 +#: pg_dump.c:1304 pg_dumpall.c:711 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data Daten in ungeloggten Tabellen nicht ausgeben\n" -#: pg_dump.c:1159 pg_dumpall.c:675 +#: pg_dump.c:1305 pg_dumpall.c:712 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing INSERT-Befehle mit ON CONFLICT DO NOTHING ausgeben\n" -#: pg_dump.c:1160 pg_dumpall.c:676 +#: pg_dump.c:1306 pg_dumpall.c:713 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr "" " --quote-all-identifiers alle Bezeichner in Anführungszeichen, selbst wenn\n" " kein Schlüsselwort\n" -#: pg_dump.c:1161 pg_dumpall.c:677 +#: pg_dump.c:1307 pg_dumpall.c:714 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=ANZAHL Anzahl Zeilen pro INSERT; impliziert --inserts\n" -#: pg_dump.c:1162 +#: pg_dump.c:1308 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr "" " --section=ABSCHNITT angegebenen Abschnitt ausgeben (pre-data, data\n" " oder post-data)\n" -#: pg_dump.c:1163 +#: pg_dump.c:1309 +#, c-format +msgid " --sequence-data include sequence data in dump\n" +msgstr " --sequence-data Sequenzdaten in Ausgabe einfügen\n" + +#: pg_dump.c:1310 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable warten bis der Dump ohne Anomalien laufen kann\n" -#: pg_dump.c:1164 +#: pg_dump.c:1311 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT angegebenen Snapshot für den Dump verwenden\n" -#: pg_dump.c:1165 pg_restore.c:497 +#: pg_dump.c:1312 pg_dumpall.c:715 +#, c-format +msgid " --statistics-only dump only the statistics, not schema or data\n" +msgstr " --statistics-only nur die Statistiken ausgeben, nicht Schema oder Daten\n" + +#: pg_dump.c:1313 pg_restore.c:553 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1931,7 +2001,7 @@ msgstr "" " --strict-names Tabellen- oder Schemamuster müssen auf mindestens\n" " je ein Objekt passen\n" -#: pg_dump.c:1167 +#: pg_dump.c:1315 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1940,7 +2010,7 @@ msgstr "" " --table-and-children=MUSTER nur die angegebene(n) Tabelle(n) ausgeben,\n" " einschließlich abgeleiteter und Partitionstabellen\n" -#: pg_dump.c:1169 pg_dumpall.c:678 pg_restore.c:500 +#: pg_dump.c:1317 pg_dumpall.c:716 pg_restore.c:556 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1952,7 +2022,22 @@ msgstr "" " OWNER Befehle verwenden, um Eigentümerschaft zu\n" " setzen\n" -#: pg_dump.c:1173 pg_dumpall.c:682 pg_restore.c:504 +#: pg_dump.c:1320 pg_dumpall.c:719 pg_restore.c:559 +#, c-format +msgid " --with-data dump the data\n" +msgstr " --with-data die Daten ausgeben\n" + +#: pg_dump.c:1321 pg_dumpall.c:720 pg_restore.c:560 +#, c-format +msgid " --with-schema dump the schema\n" +msgstr " --with-schema das Schema ausgeben\n" + +#: pg_dump.c:1322 pg_dumpall.c:721 pg_restore.c:561 +#, c-format +msgid " --with-statistics dump the statistics\n" +msgstr " --with-statistics die Statistiken ausgeben\n" + +#: pg_dump.c:1324 pg_dumpall.c:723 pg_restore.c:563 #, c-format msgid "" "\n" @@ -1961,42 +2046,42 @@ msgstr "" "\n" "Verbindungsoptionen:\n" -#: pg_dump.c:1174 +#: pg_dump.c:1325 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAME auszugebende Datenbank\n" -#: pg_dump.c:1175 pg_dumpall.c:684 pg_restore.c:505 +#: pg_dump.c:1326 pg_dumpall.c:725 pg_restore.c:564 #, 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_dump.c:1176 pg_dumpall.c:686 pg_restore.c:506 +#: pg_dump.c:1327 pg_dumpall.c:727 pg_restore.c:565 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT Portnummer des Datenbankservers\n" -#: pg_dump.c:1177 pg_dumpall.c:687 pg_restore.c:507 +#: pg_dump.c:1328 pg_dumpall.c:728 pg_restore.c:566 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: pg_dump.c:1178 pg_dumpall.c:688 pg_restore.c:508 +#: pg_dump.c:1329 pg_dumpall.c:729 pg_restore.c:567 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: pg_dump.c:1179 pg_dumpall.c:689 pg_restore.c:509 +#: pg_dump.c:1330 pg_dumpall.c:730 pg_restore.c:568 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password nach Passwort fragen (sollte automatisch geschehen)\n" -#: pg_dump.c:1180 pg_dumpall.c:690 +#: pg_dump.c:1331 pg_dumpall.c:731 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLLENNAME vor der Ausgabe SET ROLE ausführen\n" -#: pg_dump.c:1182 +#: pg_dump.c:1333 #, c-format msgid "" "\n" @@ -2009,537 +2094,560 @@ msgstr "" "PGDATABASE verwendet.\n" "\n" -#: pg_dump.c:1184 pg_dumpall.c:694 pg_restore.c:516 +#: pg_dump.c:1335 pg_dumpall.c:735 pg_restore.c:575 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Berichten Sie Fehler an <%s>.\n" -#: pg_dump.c:1185 pg_dumpall.c:695 pg_restore.c:517 +#: pg_dump.c:1336 pg_dumpall.c:736 pg_restore.c:576 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: pg_dump.c:1204 pg_dumpall.c:518 +#: pg_dump.c:1355 pg_dumpall.c:550 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "ungültige Clientkodierung »%s« angegeben" -#: pg_dump.c:1344 +#: pg_dump.c:1503 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "parallele Dumps von Standby-Servern werden von dieser Serverversion nicht unterstützt" -#: pg_dump.c:1409 +#: pg_dump.c:1568 #, c-format msgid "invalid output format \"%s\" specified" msgstr "ungültiges Ausgabeformat »%s« angegeben" -#: pg_dump.c:1450 pg_dump.c:1506 pg_dump.c:1559 pg_dumpall.c:1467 +#: pg_dump.c:1609 pg_dump.c:1665 pg_dump.c:1718 pg_dumpall.c:1556 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "falscher qualifizierter Name (zu viele Namensteile): %s" -#: pg_dump.c:1458 +#: pg_dump.c:1617 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "keine passenden Schemas für Muster »%s« gefunden" -#: pg_dump.c:1511 +#: pg_dump.c:1670 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "keine passenden Erweiterungen für Muster »%s« gefunden" -#: pg_dump.c:1564 +#: pg_dump.c:1723 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "keine passenden Fremdserver für Muster »%s« gefunden" -#: pg_dump.c:1635 +#: pg_dump.c:1794 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "falscher Relationsname (zu viele Namensteile): %s" -#: pg_dump.c:1657 +#: pg_dump.c:1816 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "keine passenden Tabellen für Muster »%s« gefunden" -#: pg_dump.c:1684 +#: pg_dump.c:1843 #, c-format msgid "You are currently not connected to a database." msgstr "Sie sind gegenwärtig nicht mit einer Datenbank verbunden." -#: pg_dump.c:1687 +#: pg_dump.c:1846 #, c-format msgid "cross-database references are not implemented: %s" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: %s" -#: pg_dump.c:2146 +#: pg_dump.c:2305 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "gebe Inhalt der Tabelle »%s.%s« aus" -#: pg_dump.c:2252 +#: pg_dump.c:2415 #, 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:2253 pg_dump.c:2263 +#: pg_dump.c:2416 pg_dump.c:2426 #, c-format msgid "Error message from server: %s" msgstr "Fehlermeldung vom Server: %s" -#: pg_dump.c:2254 pg_dump.c:2264 +#: pg_dump.c:2417 pg_dump.c:2427 #, c-format msgid "Command was: %s" msgstr "Die Anweisung war: %s" -#: pg_dump.c:2262 +#: pg_dump.c:2425 #, 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:2344 +#: pg_dump.c:2516 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "falsche Anzahl Felder von Tabelle »%s« erhalten" -#: pg_dump.c:3042 +#: pg_dump.c:3231 #, c-format msgid "saving database definition" msgstr "sichere Datenbankdefinition" -#: pg_dump.c:3151 +#: pg_dump.c:3346 #, c-format msgid "unrecognized locale provider: %s" msgstr "unbekannter Locale-Provider: %s" -#: pg_dump.c:3512 +#: pg_dump.c:3707 #, c-format msgid "saving encoding = %s" msgstr "sichere Kodierung = %s" -#: pg_dump.c:3537 +#: pg_dump.c:3732 #, c-format msgid "saving \"standard_conforming_strings = %s\"" msgstr "sichere »standard_conforming_strings = %s«" -#: pg_dump.c:3576 +#: pg_dump.c:3771 #, c-format msgid "could not parse result of current_schemas()" msgstr "konnte Ergebnis von current_schemas() nicht interpretieren" -#: pg_dump.c:3595 +#: pg_dump.c:3790 #, c-format msgid "saving \"search_path = %s\"" msgstr "sichere »search_path = %s«" -#: pg_dump.c:3631 +#: pg_dump.c:3826 #, c-format msgid "reading large objects" msgstr "lese Large Objects" -#: pg_dump.c:3852 +#: pg_dump.c:4047 #, c-format msgid "saving large objects \"%s\"" msgstr "sichere Large Objects »%s«" -#: pg_dump.c:3873 +#: pg_dump.c:4068 #, c-format msgid "error reading large object %u: %s" msgstr "Fehler beim Lesen von Large Object %u: %s" -#: pg_dump.c:3976 +#: pg_dump.c:4176 #, c-format msgid "reading row-level security policies" msgstr "lese Policys für Sicherheit auf Zeilenebene" -#: pg_dump.c:4117 +#: pg_dump.c:4317 #, c-format msgid "unexpected policy command type: %c" msgstr "unerwarteter Policy-Befehlstyp: %c" -#: pg_dump.c:4567 pg_dump.c:5103 pg_dump.c:12315 pg_dump.c:18137 -#: pg_dump.c:18139 pg_dump.c:18761 +#: pg_dump.c:4759 pg_dump.c:5316 pg_dump.c:7912 pg_dump.c:12975 pg_dump.c:19072 +#: pg_dump.c:19074 pg_dump.c:19706 #, c-format msgid "could not parse %s array" msgstr "konnte %s-Array nicht interpretieren" -#: pg_dump.c:4759 +#: pg_dump.c:4975 #, 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:4965 +#: pg_dump.c:5179 #, c-format msgid "subscription with OID %u does not exist" msgstr "Subskription mit OID %u existiert nicht" -#: pg_dump.c:4972 +#: pg_dump.c:5186 #, c-format msgid "failed sanity check, table with OID %u not found" msgstr "Sanity-Check fehlgeschlagen, Tabelle mit OID %u nicht gefunden" -#: pg_dump.c:5535 +#: pg_dump.c:5772 #, 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:5680 +#: pg_dump.c:5910 #, c-format msgid "schema with OID %u does not exist" msgstr "Schema mit OID %u existiert nicht" -#: pg_dump.c:7162 pg_dump.c:17508 +#: pg_dump.c:6934 +#, fuzzy, c-format +#| msgid "cannot define statistics for relation \"%s\"" +msgid "cannot dump statistics for relation kind '%c'" +msgstr "für Relation »%s« können keine Statistiken definiert werden" + +#: pg_dump.c:7446 pg_dump.c:18416 #, 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:7305 +#: pg_dump.c:7591 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "Sanity-Check fehlgeschlagen, Tabellen-OID %u, die in pg_partitioned_table erscheint, nicht gefunden" -#: pg_dump.c:7536 pg_dump.c:7810 pg_dump.c:8257 pg_dump.c:8871 pg_dump.c:8993 -#: pg_dump.c:9141 +#: pg_dump.c:7856 pg_dump.c:8149 pg_dump.c:8590 pg_dump.c:9217 pg_dump.c:9344 +#: pg_dump.c:9492 #, c-format msgid "unrecognized table OID %u" msgstr "unbekannte Tabellen-OID %u" -#: pg_dump.c:7540 +#: pg_dump.c:7860 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "unerwartete Indexdaten für Tabelle »%s«" -#: pg_dump.c:8042 +#: pg_dump.c:8377 #, 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:8875 +#: pg_dump.c:9221 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "unerwartete Spaltendaten für Tabelle »%s«" -#: pg_dump.c:8904 +#: pg_dump.c:9251 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "ungültige Spaltennummerierung in Tabelle »%s«" -#: pg_dump.c:8955 +#: pg_dump.c:9306 #, c-format msgid "finding table default expressions" msgstr "finde Tabellenvorgabeausdrücke" -#: pg_dump.c:8997 +#: pg_dump.c:9348 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "ungültiger adnum-Wert %d für Tabelle »%s«" -#: pg_dump.c:9091 +#: pg_dump.c:9442 #, c-format msgid "finding table check constraints" msgstr "finde Tabellen-Check-Constraints" -#: pg_dump.c:9145 +#: pg_dump.c:9496 #, 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:9149 +#: pg_dump.c:9500 #, c-format msgid "The system catalogs might be corrupted." msgstr "Die Systemkataloge sind wahrscheinlich verfälscht." -#: pg_dump.c:9839 +#: pg_dump.c:10253 #, c-format msgid "role with OID %u does not exist" msgstr "Rolle mit OID %u existiert nicht" -#: pg_dump.c:9951 pg_dump.c:9980 +#: pg_dump.c:10365 pg_dump.c:10394 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "nicht unterstützter pg_init_privs-Eintrag: %u %u %d" -#: pg_dump.c:10527 +#: pg_dump.c:10685 +#, fuzzy, c-format +#| msgid "timestamp cannot be NaN" +msgid "attname cannot be NULL" +msgstr "timestamp kann nicht NaN sein" + +#: pg_dump.c:10714 +#, fuzzy, c-format +#| msgid "could not find an aggregate named \"%s\"" +msgid "could not find index attname \"%s\"" +msgstr "konnte keine Aggregatfunktion namens »%s« finden" + +#: pg_dump.c:11184 #, c-format msgid "missing metadata for large objects \"%s\"" msgstr "fehlende Metadaten für Large Objects »%s«" -#: pg_dump.c:10810 +#: pg_dump.c:11470 #, 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:12384 +#: pg_dump.c:13046 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "ungültiger provolatile-Wert für Funktion »%s«" -#: pg_dump.c:12434 pg_dump.c:14330 +#: pg_dump.c:13096 pg_dump.c:14992 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "ungültiger proparallel-Wert für Funktion »%s«" -#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 +#: pg_dump.c:13226 pg_dump.c:13332 pg_dump.c:13339 #, 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:12603 +#: pg_dump.c:13265 #, 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:12606 +#: pg_dump.c:13268 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "unsinniger Wert in Feld pg_cast.castmethod" -#: pg_dump.c:12696 +#: pg_dump.c:13358 #, 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:12713 +#: pg_dump.c:13375 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "unsinniger Wert in Feld pg_transform.trffromsql" -#: pg_dump.c:12734 +#: pg_dump.c:13396 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "unsinniger Wert in Feld pg_transform.trftosql" -#: pg_dump.c:12879 +#: pg_dump.c:13541 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "Postfix-Operatoren werden nicht mehr unterstützt (Operator »%s«)" -#: pg_dump.c:13049 +#: pg_dump.c:13711 #, c-format msgid "could not find operator with OID %s" msgstr "konnte Operator mit OID %s nicht finden" -#: pg_dump.c:13117 +#: pg_dump.c:13779 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "ungültiger Typ »%c« für Zugriffsmethode »%s«" -#: pg_dump.c:13791 pg_dump.c:13859 +#: pg_dump.c:14453 pg_dump.c:14521 #, c-format msgid "unrecognized collation provider: %s" msgstr "unbekannter Sortierfolgen-Provider: %s" -#: pg_dump.c:13800 pg_dump.c:13807 pg_dump.c:13818 pg_dump.c:13828 -#: pg_dump.c:13843 +#: pg_dump.c:14462 pg_dump.c:14469 pg_dump.c:14480 pg_dump.c:14490 +#: pg_dump.c:14505 #, c-format msgid "invalid collation \"%s\"" msgstr "ungültige Sortierfolge »%s«" -#: pg_dump.c:14249 +#: pg_dump.c:14911 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "unbekannter aggfinalmodify-Wert für Aggregat »%s«" -#: pg_dump.c:14305 +#: pg_dump.c:14967 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "unbekannter aggmfinalmodify-Wert für Aggregat »%s«" -#: pg_dump.c:15022 +#: pg_dump.c:15687 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "unbekannter Objekttyp in den Vorgabeprivilegien: %d" -#: pg_dump.c:15038 +#: pg_dump.c:15703 #, c-format msgid "could not parse default ACL list (%s)" msgstr "konnte Vorgabe-ACL-Liste (%s) nicht interpretieren" -#: pg_dump.c:15122 +#: pg_dump.c:15787 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "konnte initiale ACL-Liste (%s) oder Default (%s) für Objekt »%s« (%s) nicht interpretieren" -#: pg_dump.c:15147 +#: pg_dump.c:15812 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "konnte ACL-Liste (%s) oder Default (%s) für Objekt »%s« (%s) nicht interpretieren" -#: pg_dump.c:15690 +#: pg_dump.c:16355 #, 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:15693 +#: pg_dump.c:16358 #, 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:15700 +#: pg_dump.c:16365 #, 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:15784 +#: pg_dump.c:16450 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS wird nicht mehr unterstützt (Tabelle »%s«)" -#: pg_dump.c:16710 +#: pg_dump.c:17540 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "ungültige Spaltennummer %d in Tabelle »%s«" -#: pg_dump.c:16788 +#: pg_dump.c:17618 #, c-format msgid "could not parse index statistic columns" msgstr "konnte Indexstatistikspalten nicht interpretieren" -#: pg_dump.c:16790 +#: pg_dump.c:17620 #, c-format msgid "could not parse index statistic values" msgstr "konnte Indexstatistikwerte nicht interpretieren" -#: pg_dump.c:16792 +#: pg_dump.c:17622 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "Anzahl Spalten und Werte für Indexstatistiken stimmt nicht überein" -#: pg_dump.c:17007 +#: pg_dump.c:17837 #, c-format msgid "missing index for constraint \"%s\"" msgstr "fehlender Index für Constraint »%s«" -#: pg_dump.c:17242 +#: pg_dump.c:18074 #, c-format msgid "unrecognized constraint type: %c" msgstr "unbekannter Constraint-Typ: %c" -#: pg_dump.c:17343 pg_dump.c:17572 +#: pg_dump.c:18127 +#, c-format +msgid "unrecognized sequence type: %s" +msgstr "unbekannter Sequenztyp: %s" + +#: pg_dump.c:18259 pg_dump.c:18491 #, 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:17375 +#: pg_dump.c:18295 #, c-format -msgid "unrecognized sequence type: %s" -msgstr "unbekannter Sequenztyp: %s" +msgid "unrecognized sequence type: %d" +msgstr "unbekannter Sequenztyp: %d" -#: pg_dump.c:17889 +#: pg_dump.c:18824 #, 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:18042 +#: pg_dump.c:18977 #, c-format msgid "could not find referenced extension %u" msgstr "konnte referenzierte Erweiterung %u nicht finden" -#: pg_dump.c:18141 +#: pg_dump.c:19076 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "Anzahl Konfigurationen und Bedingungen für Erweiterung stimmt nicht überein" -#: pg_dump.c:18273 +#: pg_dump.c:19208 #, c-format msgid "reading dependency data" msgstr "lese Abhängigkeitsdaten" -#: pg_dump.c:18359 +#: pg_dump.c:19294 #, c-format msgid "no referencing object %u %u" msgstr "kein referenzierendes Objekt %u %u" -#: pg_dump.c:18370 +#: pg_dump.c:19305 #, c-format msgid "no referenced object %u %u" msgstr "kein referenziertes Objekt %u %u" -#: pg_dump.c:18795 pg_dump.c:18833 pg_dumpall.c:1962 pg_restore.c:551 -#: pg_restore.c:597 +#: pg_dump.c:19740 pg_dump.c:19778 pg_dumpall.c:2051 pg_restore.c:610 +#: pg_restore.c:656 #, c-format msgid "%s filter for \"%s\" is not allowed" msgstr "%s-Filter für »%s« ist nicht erlaubt" -#: pg_dump_sort.c:424 +#: pg_dump_sort.c:436 #, c-format msgid "invalid dumpId %d" msgstr "ungültige dumpId %d" -#: pg_dump_sort.c:430 +#: pg_dump_sort.c:442 #, c-format msgid "invalid dependency %d" msgstr "ungültige Abhängigkeit %d" -#: pg_dump_sort.c:594 +#: pg_dump_sort.c:606 #, c-format msgid "could not identify dependency loop" msgstr "konnte Abhängigkeitsschleife nicht bestimmen" -#: pg_dump_sort.c:1209 +#: pg_dump_sort.c:1247 #, 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:1214 +#: pg_dump_sort.c:1252 #, 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:1215 +#: pg_dump_sort.c:1253 #, 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:1227 +#: pg_dump_sort.c:1265 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "konnte Abhängigkeitsschleife zwischen diesen Elementen nicht auflösen:" -#: pg_dumpall.c:231 +#: pg_dumpall.c:247 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden" -#: pg_dumpall.c:234 +#: pg_dumpall.c:250 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s" -#: pg_dumpall.c:387 +#: pg_dumpall.c:403 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "Option --exclude-database kann nicht zusammen mit -g/--globals-only, -r/--roles-only oder -t/--tablesspaces-only verwendet werden" -#: pg_dumpall.c:395 +#: pg_dumpall.c:411 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "Optionen -g/--globals-only und -r/--roles-only können nicht zusammen verwendet werden" -#: pg_dumpall.c:402 +#: pg_dumpall.c:418 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "Optionen -g/--globals-only und -t/--tablespaces-only können nicht zusammen verwendet werden" -#: pg_dumpall.c:412 +#: pg_dumpall.c:428 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "Optionen -r/--roles-only und -t/--tablespaces-only können nicht zusammen verwendet werden" -#: pg_dumpall.c:474 pg_dumpall.c:1771 +#: pg_dumpall.c:506 pg_dumpall.c:1860 #, c-format msgid "could not connect to database \"%s\"" msgstr "konnte nicht mit der Datenbank »%s« verbinden" -#: pg_dumpall.c:486 +#: pg_dumpall.c:518 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2548,7 +2656,7 @@ msgstr "" "konnte nicht mit Datenbank »postgres« oder »template1« verbinden\n" "Bitte geben Sie eine alternative Datenbank an." -#: pg_dumpall.c:634 +#: pg_dumpall.c:667 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2557,80 +2665,82 @@ msgstr "" "%s gibt einen PostgreSQL-Datenbankcluster in eine SQL-Skriptdatei aus.\n" "\n" -#: pg_dumpall.c:636 +#: pg_dumpall.c:669 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_dumpall.c:639 +#: pg_dumpall.c:672 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=DATEINAME Name der Ausgabedatei\n" -#: pg_dumpall.c:646 +#: pg_dumpall.c:679 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean Datenbanken vor der Wiedererstellung löschen\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:681 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr " -g, --globals-only nur globale Objekte ausgeben, keine Datenbanken\n" -#: pg_dumpall.c:649 pg_restore.c:475 +#: pg_dumpall.c:682 pg_restore.c:526 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr "" " -O, --no-owner Wiederherstellung der Objekteigentümerschaft\n" " auslassen\n" -#: pg_dumpall.c:650 +#: pg_dumpall.c:683 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr "" " -r, --roles-only nur Rollen ausgeben, keine Datenbanken oder\n" " Tablespaces\n" -#: pg_dumpall.c:652 +#: pg_dumpall.c:685 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAME Superusername für den Dump\n" -#: pg_dumpall.c:653 +#: pg_dumpall.c:686 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr "" " -t, --tablespaces-only nur Tablespaces ausgeben, keine Datenbanken oder\n" " Rollen\n" -#: pg_dumpall.c:659 +#: pg_dumpall.c:692 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr "" " --exclude-database=MUSTER Datenbanken deren Name mit MUSTER übereinstimmt\n" " überspringen\n" -#: pg_dumpall.c:661 +#: pg_dumpall.c:694 #, c-format -msgid " --filter=FILENAME exclude databases specified in FILENAME\n" -msgstr " --filter=DATEINAME in DATEINAME angegebene Datenbanken überspringen\n" +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr "" +" --filter=DATEINAME Datenbanken basierend auf Ausdrücken in DATEINAME\n" +" überspringen\n" -#: pg_dumpall.c:667 +#: pg_dumpall.c:702 #, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords Rollenpasswörter nicht mit ausgeben\n" -#: pg_dumpall.c:683 +#: pg_dumpall.c:724 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=VERBDG mit angegebenen Verbindungsparametern verbinden\n" -#: pg_dumpall.c:685 +#: pg_dumpall.c:726 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAME alternative Standarddatenbank\n" -#: pg_dumpall.c:692 +#: pg_dumpall.c:733 #, c-format msgid "" "\n" @@ -2643,106 +2753,117 @@ msgstr "" "Standardausgabe geschrieben.\n" "\n" -#: pg_dumpall.c:837 +#: pg_dumpall.c:878 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "mit »pg_« anfangender Rollenname übersprungen (%s)" -#: pg_dumpall.c:1059 +#. translator: %s represents a numeric role OID +#: pg_dumpall.c:1095 pg_dumpall.c:1153 pg_dumpall.c:1162 +#, c-format +msgid "found orphaned pg_auth_members entry for role %s" +msgstr "verwaister pg_auth_members-Eintrag für Rolle %s gefunden" + +#: pg_dumpall.c:1128 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "konnte keine legale Dump-Reihenfolge für Mitgliedschaften in Rolle »%s« finden" -#: pg_dumpall.c:1194 +#: pg_dumpall.c:1283 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "konnte ACL-Zeichenkette (%s) für Parameter »%s« nicht interpretieren" -#: pg_dumpall.c:1321 +#: pg_dumpall.c:1410 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "konnte ACL-Zeichenkette (%s) für Tablespace »%s« nicht interpretieren" -#: pg_dumpall.c:1528 +#: pg_dumpall.c:1617 #, c-format msgid "excluding database \"%s\"" msgstr "Datenbank »%s« übersprungen" -#: pg_dumpall.c:1532 +#: pg_dumpall.c:1621 #, c-format msgid "dumping database \"%s\"" msgstr "Ausgabe der Datenbank »%s«" -#: pg_dumpall.c:1563 +#: pg_dumpall.c:1652 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "pg_dump für Datenbank »%s« fehlgeschlagen; beende" -#: pg_dumpall.c:1569 +#: pg_dumpall.c:1658 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "konnte die Ausgabedatei »%s« nicht neu öffnen: %m" -#: pg_dumpall.c:1613 +#: pg_dumpall.c:1702 #, c-format msgid "running \"%s\"" msgstr "führe »%s« aus" -#: pg_dumpall.c:1814 +#: pg_dumpall.c:1903 #, c-format msgid "could not get server version" msgstr "konnte Version des Servers nicht ermitteln" -#: pg_dumpall.c:1817 +#: pg_dumpall.c:1906 #, c-format msgid "could not parse server version \"%s\"" msgstr "konnte Versionszeichenkette »%s« nicht entziffern" -#: pg_dumpall.c:1887 pg_dumpall.c:1910 +#: pg_dumpall.c:1976 pg_dumpall.c:1999 #, c-format msgid "executing %s" msgstr "führe %s aus" -#: pg_dumpall.c:1982 +#: pg_dumpall.c:2071 msgid "unsupported filter object" msgstr "nicht unterstütztes Filterobjekt" -#: pg_restore.c:329 +#: pg_restore.c:346 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "entweder -d/--dbname oder -f/--file muss angegeben werden" -#: pg_restore.c:336 +#: pg_restore.c:353 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "Optionen -d/--dbname und -f/--file können nicht zusammen verwendet werden" -#: pg_restore.c:350 +#: pg_restore.c:388 #, c-format msgid "options -1/--single-transaction and --transaction-size cannot be used together" msgstr "Optionen -1/--single-transaction und --transaction-size können nicht zusammen verwendet werden" -#: pg_restore.c:357 +#: pg_restore.c:395 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "Optionen -C/--create und -1/--single-transaction können nicht zusammen verwendet werden" -#: pg_restore.c:361 +#: pg_restore.c:399 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "--single-transaction und mehrere Jobs können nicht zusammen verwendet werden" -#: pg_restore.c:399 +#: pg_restore.c:447 +#, c-format +msgid "archive format \"%s\" is not supported; please use psql" +msgstr "Archivformat »%s« wird nicht unterstützt; bitte psql verwenden" + +#: pg_restore.c:451 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "unbekanntes Archivformat »%s«; bitte »c«, »d« oder »t« angeben" -#: pg_restore.c:438 +#: pg_restore.c:489 #, c-format msgid "errors ignored on restore: %d" msgstr "bei Wiederherstellung ignorierte Fehler: %d" -#: pg_restore.c:451 +#: pg_restore.c:502 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2752,47 +2873,47 @@ msgstr "" "gesichert wurde.\n" "\n" -#: pg_restore.c:453 +#: pg_restore.c:504 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPTION]... [DATEI]\n" -#: pg_restore.c:456 +#: pg_restore.c:507 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAME mit angegebener Datenbank verbinden\n" -#: pg_restore.c:457 +#: pg_restore.c:508 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=DATEINAME Name der Ausgabedatei (- für stdout)\n" -#: pg_restore.c:458 +#: pg_restore.c:509 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t Format der Backup-Datei (sollte automatisch gehen)\n" -#: pg_restore.c:459 +#: pg_restore.c:510 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list Inhaltsverzeichnis für dieses Archiv anzeigen\n" -#: pg_restore.c:460 +#: pg_restore.c:511 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose »Verbose«-Modus\n" -#: pg_restore.c:461 +#: pg_restore.c:512 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_restore.c:462 +#: pg_restore.c:513 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_restore.c:464 +#: pg_restore.c:515 #, c-format msgid "" "\n" @@ -2801,34 +2922,34 @@ msgstr "" "\n" "Optionen die die Wiederherstellung kontrollieren:\n" -#: pg_restore.c:465 +#: pg_restore.c:516 #, c-format msgid " -a, --data-only restore only the data, no schema\n" -msgstr " -a, --data-only nur Daten, nicht das Schema, wiederherstellen\n" +msgstr " -a, --data-only nur die Daten wiederherstellen, nicht das Schema\n" -#: pg_restore.c:467 +#: pg_restore.c:518 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create Zieldatenbank erzeugen\n" -#: pg_restore.c:468 +#: pg_restore.c:519 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error bei Fehler beenden, Voreinstellung ist fortsetzen\n" -#: pg_restore.c:469 +#: pg_restore.c:520 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME benannten Index wiederherstellen\n" -#: pg_restore.c:470 +#: pg_restore.c:521 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr "" " -j, --jobs=NUM so viele parallele Jobs zur Wiederherstellung\n" " verwenden\n" -#: pg_restore.c:471 +#: pg_restore.c:522 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2837,59 +2958,59 @@ msgstr "" " -L, --use-list=DATEINAME Inhaltsverzeichnis aus dieser Datei zur Auswahl oder\n" " Sortierung der Ausgabe verwenden\n" -#: pg_restore.c:473 +#: pg_restore.c:524 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME nur Objekte in diesem Schema wiederherstellen\n" -#: pg_restore.c:474 +#: pg_restore.c:525 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, ---exclude-schema=NAME Objekte in diesem Schema nicht wiederherstellen\n" -#: pg_restore.c:476 +#: pg_restore.c:527 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAME(args) benannte Funktion wiederherstellen\n" -#: pg_restore.c:477 +#: pg_restore.c:528 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" -msgstr " -s, --schema-only nur das Schema, nicht die Daten, wiederherstellen\n" +msgstr " -s, --schema-only nur das Schema wiederherstellen, nicht die Daten\n" -#: pg_restore.c:478 +#: pg_restore.c:529 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAME Name des Superusers, um Trigger auszuschalten\n" -#: pg_restore.c:479 +#: pg_restore.c:530 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr "" " -t, --table=NAME benannte Relation (Tabelle, Sicht, usw.)\n" " wiederherstellen\n" -#: pg_restore.c:480 +#: pg_restore.c:531 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME benannten Trigger wiederherstellen\n" -#: pg_restore.c:481 +#: pg_restore.c:532 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges Wiederherstellung der Zugriffsprivilegien auslassen\n" -#: pg_restore.c:482 +#: pg_restore.c:533 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction Wiederherstellung als eine einzige Transaktion\n" -#: pg_restore.c:484 +#: pg_restore.c:535 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security Sicherheit auf Zeilenebene einschalten\n" -#: pg_restore.c:485 +#: pg_restore.c:536 #, c-format msgid "" " --filter=FILENAME restore or skip objects based on expressions\n" @@ -2898,12 +3019,17 @@ msgstr "" " --filter=DATEINAME Objekte basierend auf Ausdrücken in DATEINAME\n" " wiederherstellen oder überspringen\n" -#: pg_restore.c:488 +#: pg_restore.c:539 #, c-format -msgid " --no-comments do not restore comments\n" -msgstr " --no-comments Kommentare nicht wiederherstellen\n" +msgid " --no-comments do not restore comment commands\n" +msgstr " --no-comments Kommentar-Befehle nicht wiederherstellen\n" -#: pg_restore.c:489 +#: pg_restore.c:540 +#, c-format +msgid " --no-data do not restore data\n" +msgstr " --no-data Daten nicht wiederherstellen\n" + +#: pg_restore.c:541 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" @@ -2912,49 +3038,71 @@ msgstr "" " --no-data-for-failed-tables Daten für Tabellen, die nicht erzeugt werden\n" " konnten, nicht wiederherstellen\n" -#: pg_restore.c:491 +#: pg_restore.c:543 +#, c-format +msgid " --no-policies do not restore row security policies\n" +msgstr "" +" --no-policies Policys für Sicherheit auf Zeilenebene nicht\n" +" wiederherstellen\n" + +#: pg_restore.c:544 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications Publikationen nicht wiederherstellen\n" -#: pg_restore.c:492 +#: pg_restore.c:545 +#, c-format +msgid " --no-schema do not restore schema\n" +msgstr " --no-schema Schema nicht wiederherstellen\n" + +#: pg_restore.c:546 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels Security-Labels nicht wiederherstellen\n" -#: pg_restore.c:493 +#: pg_restore.c:547 +#, c-format +msgid " --no-statistics do not restore statistics\n" +msgstr " --no-statistics Statistiken nicht wiederherstellen\n" + +#: pg_restore.c:548 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions Subskriptionen nicht wiederherstellen\n" -#: pg_restore.c:494 +#: pg_restore.c:549 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method Tabellenzugriffsmethoden nicht wiederherstellen\n" -#: pg_restore.c:495 +#: pg_restore.c:550 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces Tablespace-Zuordnungen nicht wiederherstellen\n" -#: pg_restore.c:496 +#: pg_restore.c:551 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr "" " --section=ABSCHNITT angegebenen Abschnitt wiederherstellen (pre-data,\n" " data oder post-data)\n" -#: pg_restore.c:499 +#: pg_restore.c:552 +#, c-format +msgid " --statistics-only restore only the statistics, not schema or data\n" +msgstr " --statistics-only nur die Statistiken wiederherstellen, nicht Schema oder Daten\n" + +#: pg_restore.c:555 #, c-format msgid " --transaction-size=N commit after every N objects\n" msgstr " --transaction-size=N jeweils nach N Objekten committen\n" -#: pg_restore.c:510 +#: pg_restore.c:569 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLLENNAME vor der Wiederherstellung SET ROLE ausführen\n" -#: pg_restore.c:512 +#: pg_restore.c:571 #, c-format msgid "" "\n" @@ -2965,7 +3113,7 @@ msgstr "" "Die Optionen -I, -n, -N, -P, -t, -T und --section können kombiniert und mehrfach\n" "angegeben werden, um mehrere Objekte auszuwählen.\n" -#: pg_restore.c:515 +#: pg_restore.c:574 #, c-format msgid "" "\n" diff --git a/src/bin/pg_dump/po/es.po b/src/bin/pg_dump/po/es.po index ac8e807dbd441..b40afd89881bb 100644 --- a/src/bin/pg_dump/po/es.po +++ b/src/bin/pg_dump/po/es.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_dump (PostgreSQL) 16\n" +"Project-Id-Version: pg_dump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-03 07:20+0000\n" -"PO-Revision-Date: 2023-10-03 16:15+0200\n" +"POT-Creation-Date: 2025-02-16 19:51+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -94,32 +94,47 @@ msgstr "el algoritmo de compresión «%s» no acepta una cantidad de procesos ay msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "el algoritmo de compresión «%s» no acepta modo de larga distancia" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "memoria agotada" @@ -134,6 +149,49 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -174,227 +232,247 @@ msgstr "el valor «%s» no es válido para la opción %s" msgid "%s must be in range %d..%d" msgstr "%s debe estar en el rango %d..%d" -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "leyendo las extensiones" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "identificando miembros de extensión" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "leyendo esquemas" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "leyendo las tablas definidas por el usuario" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "leyendo las funciones definidas por el usuario" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "leyendo los tipos definidos por el usuario" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "leyendo los lenguajes procedurales" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "leyendo las funciones de agregación definidas por el usuario" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "leyendo los operadores definidos por el usuario" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "leyendo los métodos de acceso definidos por el usuario" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "leyendo las clases de operadores definidos por el usuario" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "leyendo las familias de operadores definidas por el usuario" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "leyendo los procesadores (parsers) de búsqueda en texto definidos por el usuario" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "leyendo las plantillas de búsqueda en texto definidas por el usuario" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "leyendo los diccionarios de búsqueda en texto definidos por el usuario" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "leyendo las configuraciones de búsqueda en texto definidas por el usuario" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "leyendo los conectores de datos externos definidos por el usuario" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "leyendo los servidores foráneos definidas por el usuario" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "leyendo los privilegios por omisión" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "leyendo los ordenamientos definidos por el usuario" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "leyendo las conversiones definidas por el usuario" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "leyendo conversiones de tipo" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "leyendo las transformaciones" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "leyendo la información de herencia de las tablas" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "leyendo los disparadores por eventos" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "buscando tablas de extensión" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "buscando relaciones de herencia" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "leyendo la información de columnas para las tablas interesantes" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "marcando las columnas heredadas en las subtablas" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "leyendo datos de particionamiento" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "leyendo los índices" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "marcando índices en las tablas particionadas" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "leyendo estadísticas extendidas" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "leyendo las restricciones" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "leyendo los disparadores (triggers)" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "leyendo las reglas de reescritura" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "leyendo políticas" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "leyendo publicaciones" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "leyendo membresía de tablas en publicaciones" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "leyendo membresía de esquemas en publicaciones" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "leyendo las suscripciones" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "leyendo membresía de tablas en suscripciones" + +#: common.c:333 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "falló la revisión de integridad, el OID %u del padre de la tabla «%s» (OID %u) no se encontró" -#: common.c:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "número de padres %d para la tabla «%s» no es válido" -#: common.c:1049 +#: common.c:1098 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "no se pudo interpretar el arreglo numérico «%s»: demasiados números" -#: common.c:1061 +#: common.c:1110 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "no se pudo interpretar el arreglo numérico «%s»: carácter no válido en número" @@ -424,15 +502,20 @@ msgstr "no se pudo descomprimir datos: %s" msgid "could not close compression library: %s" msgstr "no se pudo cerrar la biblioteca de compresión: %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "no se pudo leer el archivo de entrada: %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:374 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "no se pudo leer el archivo de entrada: %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:372 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" msgstr "no se pudo leer desde el archivo de entrada: fin de archivo" @@ -472,27 +555,72 @@ msgstr "no se pudo terminar la descompresión: %s" msgid "could not set compression parameter \"%s\": %s" msgstr "no se pudo definir el parámetro de compresión «%s»: %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:232 compress_zstd.c:491 +#: compress_zstd.c:499 #, c-format msgid "could not initialize compression library" msgstr "no se pudo inicializar la biblioteca de compresión" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:195 compress_zstd.c:309 #, c-format msgid "could not decompress data: %s" msgstr "no se pudo descomprimir datos: %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "no se pudo leer el archivo de entrada: %m" - -#: compress_zstd.c:501 +#: compress_zstd.c:502 #, c-format msgid "unhandled mode \"%s\"" msgstr "modo «%s» sin manejar" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "no se pudo abrir el archivo de filtro «%s»: %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "no se pudo cerrar el archivo de filtro «%s»: %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "formato inválido en filtro leído desde entrada estándar en línea %d: %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "sintaxis no válida en filtro leído desde archivo «%s», línea %d: %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "no se pudo leer el archivo de filtro «%s»: %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "fin de archivo inesperado" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "falta el parámetro de nombre de objeto" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "no se encontró orden de filtro (se esperaba «include» o «include»)" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "orden de filtro no válida (se esperaba «include» o «exclude»)" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "falta el parámetro de tipo de objeto" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "tipo de objeto de filtro «%.*s» no soportado" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -572,512 +700,517 @@ msgstr "pgpipe: no se pudo conectar el socket: código de error %d" msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: no se pudo aceptar la conexión: código de error %d" -#: pg_backup_archiver.c:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "no se pudo cerrar el archivo de salida: %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, c-format msgid "archive items not in correct section order" msgstr "elementos del archivo no están en el orden correcto de secciones" -#: pg_backup_archiver.c:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "código de sección %d inesperado" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "la restauración en paralelo no está soportada con este formato de archivo" -#: pg_backup_archiver.c:371 +#: pg_backup_archiver.c:356 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "la restauración en paralelo no está soportada con archivos construidos con pg_dump anterior a 8.0" -#: pg_backup_archiver.c:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" -msgstr "no se pudo restaurar desde archivo comprimido (%s)" +msgstr "no se puede restaurar del archivo comprimido (%s)" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "conectando a la base de datos para reestablecimiento" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "las conexiones directas a la base de datos no están soportadas en archivadores pre-1.3" -#: pg_backup_archiver.c:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "asumiendo reestablecimiento de sólo datos" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "eliminando %s %s" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "no se pudo encontrar dónde insertar IF EXISTS en la sentencia «%s»" -#: pg_backup_archiver.c:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "precaución desde el archivo original: %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "creando %s «%s.%s»" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "creando %s «%s»" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "conectando a nueva base de datos «%s»" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "procesando %s" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "procesando datos de la tabla «%s.%s»" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "ejecutando %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "deshabilitando disparadores (triggers) para %s" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "habilitando disparadores (triggers) para %s" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "error interno -- WriteData no puede ser llamada fuera del contexto de una rutina DataDumper" -#: pg_backup_archiver.c:1287 +#: pg_backup_archiver.c:1379 #, c-format msgid "large-object output not supported in chosen format" msgstr "la extracción de objetos grandes no está soportada en el formato seleccionado" -#: pg_backup_archiver.c:1345 +#: pg_backup_archiver.c:1442 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "se reestableció %d objeto grande" msgstr[1] "se reestablecieron %d objetos grandes" -#: pg_backup_archiver.c:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "reestableciendo objeto grande con OID %u" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, c-format msgid "could not create large object %u: %s" msgstr "no se pudo crear el objeto grande %u: %s" -#: pg_backup_archiver.c:1383 pg_dump.c:3718 +#: pg_backup_archiver.c:1486 pg_dump.c:3889 #, c-format msgid "could not open large object %u: %s" msgstr "no se pudo abrir el objeto grande %u: %s" -#: pg_backup_archiver.c:1439 +#: pg_backup_archiver.c:1542 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "no se pudo abrir el archivo TOC «%s»: %m" -#: pg_backup_archiver.c:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "línea ignorada: %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, c-format msgid "could not find entry for ID %d" msgstr "no se pudo encontrar una entrada para el ID %d" -#: pg_backup_archiver.c:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "no se pudo cerrar el archivo TOC: %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, c-format msgid "could not open output file \"%s\": %m" msgstr "no se pudo abrir el archivo de salida «%s»: %m" -#: pg_backup_archiver.c:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "no se pudo abrir el archivo de salida: %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "se escribió %zu byte de los datos del objeto grande (resultado = %d)" msgstr[1] "se escribieron %zu bytes de los datos del objeto grande (resultado = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "no se pudo escribir en objeto grande: %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "durante INICIALIZACIÓN:" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "durante PROCESAMIENTO DE TABLA DE CONTENIDOS:" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "durante FINALIZACIÓN:" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "en entrada de la tabla de contenidos %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "dumpId incorrecto" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "dumpId de tabla incorrecto para elemento TABLE DATA" -#: pg_backup_archiver.c:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "bandera de posición inesperada %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, c-format msgid "file offset in dump file is too large" msgstr "el posición en el archivo es demasiado grande" -#: pg_backup_archiver.c:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "nombre de directorio demasiado largo: «%s»" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, c-format msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)" msgstr "el directorio «%s» no parece ser un archivador válido (no existe «toc.dat»)" -#: pg_backup_archiver.c:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "no se pudo abrir el archivo de entrada «%s»: %m" -#: pg_backup_archiver.c:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, c-format msgid "could not open input file: %m" msgstr "no se pudo abrir el archivo de entrada: %m" -#: pg_backup_archiver.c:2164 +#: pg_backup_archiver.c:2267 #, c-format msgid "could not read input file: %m" msgstr "no se pudo leer el archivo de entrada: %m" -#: pg_backup_archiver.c:2166 +#: pg_backup_archiver.c:2269 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "el archivo de entrada es demasiado corto (leidos %lu, esperados 5)" -#: pg_backup_archiver.c:2198 +#: pg_backup_archiver.c:2301 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "el archivo de entrada parece ser un volcado de texto. Por favor use psql." -#: pg_backup_archiver.c:2204 +#: pg_backup_archiver.c:2307 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "el archivo de entrada no parece ser un archivador válido (¿demasiado corto?)" -#: pg_backup_archiver.c:2210 +#: pg_backup_archiver.c:2313 #, c-format msgid "input file does not appear to be a valid archive" msgstr "el archivo de entrada no parece ser un archivador válido" -#: pg_backup_archiver.c:2219 +#: pg_backup_archiver.c:2322 #, c-format msgid "could not close input file: %m" msgstr "no se pudo cerrar el archivo de entrada: %m" -#: pg_backup_archiver.c:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "no se pudo abrir stdout para agregar datos: %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "formato de archivo no reconocido «%d»" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4466 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4648 #, c-format msgid "finished item %d %s %s" msgstr "terminó el elemento %d %s %s" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4479 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4661 #, c-format msgid "worker process failed: exit code %d" msgstr "el proceso hijo falló: código de salida %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "la entrada con ID %d está fuera de rango -- tal vez la tabla de contenido está corrupta" -#: pg_backup_archiver.c:2628 +#: pg_backup_archiver.c:2736 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "restaurar tablas WITH OIDS ya no está soportado" -#: pg_backup_archiver.c:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "no se reconoce la codificación: «%s»" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2824 #, c-format msgid "invalid ENCODING item: %s" msgstr "elemento ENCODING no válido: %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2842 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "elemento STDSTRINGS no válido: %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2867 #, c-format msgid "schema \"%s\" not found" msgstr "esquema «%s» no encontrado" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2874 #, c-format msgid "table \"%s\" not found" msgstr "tabla «%s» no encontrada" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2881 #, c-format msgid "index \"%s\" not found" msgstr "índice «%s» no encontrado" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2888 #, c-format msgid "function \"%s\" not found" msgstr "función «%s» no encontrada" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2895 #, c-format msgid "trigger \"%s\" not found" msgstr "disparador «%s» no encontrado" -#: pg_backup_archiver.c:3201 +#: pg_backup_archiver.c:3326 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "no se pudo establecer el usuario de sesión a «%s»: %s" -#: pg_backup_archiver.c:3333 +#: pg_backup_archiver.c:3458 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "no se pudo definir search_path a «%s»: %s" +msgid "could not set \"search_path\" to \"%s\": %s" +msgstr "no se pudo definir «search_path» a «%s»: %s" -#: pg_backup_archiver.c:3394 +#: pg_backup_archiver.c:3519 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "no se pudo definir default_tablespace a %s: %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "no se pudo definir «default_tablespace» a %s: %s" -#: pg_backup_archiver.c:3443 +#: pg_backup_archiver.c:3568 #, c-format -msgid "could not set default_table_access_method: %s" -msgstr "no se pudo definir default_table_access_method: %s" +msgid "could not set \"default_table_access_method\": %s" +msgstr "no se pudo definir «default_table_access_method»: %s" -#: pg_backup_archiver.c:3548 +#: pg_backup_archiver.c:3617 +#, c-format +msgid "could not alter table access method: %s" +msgstr "no se pudo alterar el método de acceso a tabla: %s" + +#: pg_backup_archiver.c:3718 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "no se sabe cómo establecer el dueño para el objeto de tipo «%s»" -#: pg_backup_archiver.c:3770 +#: pg_backup_archiver.c:4005 #, c-format msgid "did not find magic string in file header" msgstr "no se encontró la cadena mágica en el encabezado del archivo" -#: pg_backup_archiver.c:3784 +#: pg_backup_archiver.c:4019 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "versión no soportada (%d.%d) en el encabezado del archivo" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:4024 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "revisión de integridad en el tamaño del entero (%lu) falló" -#: pg_backup_archiver.c:3793 +#: pg_backup_archiver.c:4028 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "el archivador fue hecho en una máquina con enteros más grandes, algunas operaciones podrían fallar" -#: pg_backup_archiver.c:3803 +#: pg_backup_archiver.c:4038 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "el formato esperado (%d) difiere del formato encontrado en el archivo (%d)" -#: pg_backup_archiver.c:3825 +#: pg_backup_archiver.c:4060 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "el archivo está comprimido, pero esta instalación no soporta compresión (%s) -- los datos no estarán disponibles" -#: pg_backup_archiver.c:3861 +#: pg_backup_archiver.c:4096 #, c-format msgid "invalid creation date in header" msgstr "la fecha de creación en el encabezado no es válida" -#: pg_backup_archiver.c:3995 +#: pg_backup_archiver.c:4230 #, c-format msgid "processing item %d %s %s" msgstr "procesando el elemento %d %s %s" -#: pg_backup_archiver.c:4070 +#: pg_backup_archiver.c:4315 #, c-format msgid "entering main parallel loop" msgstr "ingresando al bucle paralelo principal" -#: pg_backup_archiver.c:4081 +#: pg_backup_archiver.c:4326 #, c-format msgid "skipping item %d %s %s" msgstr "saltando el elemento %d %s %s" -#: pg_backup_archiver.c:4090 +#: pg_backup_archiver.c:4335 #, c-format msgid "launching item %d %s %s" msgstr "lanzando el elemento %d %s %s" -#: pg_backup_archiver.c:4144 +#: pg_backup_archiver.c:4389 #, c-format msgid "finished main parallel loop" msgstr "terminó el bucle paralelo principal" -#: pg_backup_archiver.c:4180 +#: pg_backup_archiver.c:4425 #, c-format msgid "processing missed item %d %s %s" msgstr "procesando el elemento saltado %d %s %s" -#: pg_backup_archiver.c:4785 +#: pg_backup_archiver.c:4967 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "la tabla «%s» no pudo ser creada, no se recuperarán sus datos" -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "OID no válido para objeto grande" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "error durante el posicionamiento (seek) en el archivo: %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "el bloque de datos %d tiene una posición de búsqueda incorrecta" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "tipo de bloque de datos (%d) no conocido al buscar en el archivador" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "no se pudo encontrar el bloque con ID %d en archivo -- posiblemente debido a una petición de restauración fuera de orden, la que no puede ser completada debido a que en el archivo de entrada no es reposicionable (seekable)" -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "no se pudo encontrar el bloque con ID %d en archivo -- posiblemente el archivo está corrupto" -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "se encontró un bloque no esperado ID (%d) mientras se leían los datos -- se esperaba %d" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "se encontró un bloque tipo %d no reconocido al restablecer el archivador" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "no se pudo determinar la posición (seek) en el archivo del archivador: %m" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "no se pudo cerrar el archivo del archivador: %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "sólo se pueden reabrir archivos de entrada" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "la restauración en paralelo desde entrada estándar (stdin) no está soportada" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "la restauración en paralelo desde un archivo no posicionable no está soportada" -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "no se pudo posicionar (seek) en el archivo del archivador: %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "compresor activo" @@ -1087,12 +1220,12 @@ msgstr "compresor activo" msgid "could not get server_version from libpq" msgstr "no se pudo obtener server_version desde libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1831 #, c-format msgid "aborting because of server version mismatch" msgstr "abortando debido a que no coincide la versión del servidor" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1832 #, c-format msgid "server version: %s; %s version: %s" msgstr "versión del servidor: %s; versión de %s: %s" @@ -1102,7 +1235,7 @@ msgstr "versión del servidor: %s; versión de %s: %s" msgid "already connected to a database" msgstr "ya está conectado a una base de datos" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1678 pg_dumpall.c:1780 msgid "Password: " msgstr "Contraseña: " @@ -1116,18 +1249,18 @@ msgstr "no se pudo hacer la conexión a la base de datos" msgid "reconnection failed: %s" msgstr "falló la reconexión: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1705 pg_dumpall.c:1789 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "query failed: %s" msgstr "la consulta falló: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1895 pg_dumpall.c:1918 #, c-format msgid "Query was: %s" msgstr "La consulta era: %s" @@ -1163,7 +1296,7 @@ msgstr "PQputCopyEnd regresó un error: %s" msgid "COPY failed for table \"%s\": %s" msgstr "COPY falló para la tabla «%s»: %s" -#: pg_backup_db.c:521 pg_dump.c:2202 +#: pg_backup_db.c:521 pg_dump.c:2284 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "resultados extra inesperados durante el COPY de la tabla «%s»" @@ -1176,161 +1309,156 @@ msgstr "no se pudo iniciar la transacción en la base de datos" msgid "could not commit database transaction" msgstr "no se pudo terminar la transacción a la base de datos" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "no se especificó un directorio de salida" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "no se pudo leer el directorio «%s»: %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "no se pudo crear el directorio «%s»: %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, c-format msgid "could not write to output file: %s" msgstr "no se pudo escribir al archivo de salida: %s" -#: pg_backup_directory.c:374 +#: pg_backup_directory.c:375 #, c-format msgid "could not close data file: %m" msgstr "no se pudo cerrar el archivo de datos: %m" -#: pg_backup_directory.c:407 +#: pg_backup_directory.c:408 #, c-format msgid "could not close data file \"%s\": %m" msgstr "no se pudo cerrar el archivo de datos «%s»: %m" -#: pg_backup_directory.c:448 +#: pg_backup_directory.c:455 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "no se pudo abrir el archivo de la tabla de contenidos de objetos grandes «%s» para su lectura: %m" -#: pg_backup_directory.c:459 +#: pg_backup_directory.c:466 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "línea no válida en el archivo de la tabla de contenido de objetos grandes «%s»: «%s»" -#: pg_backup_directory.c:468 +#: pg_backup_directory.c:475 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "error al leer el archivo de la tabla de contenidos de objetos grandes «%s»" -#: pg_backup_directory.c:472 +#: pg_backup_directory.c:479 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "no se pudo cerrar el archivo de la tabla de contenido de los objetos grandes «%s»: %m" -#: pg_backup_directory.c:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "no se pudo cerrar el archivo de datos LO: %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "no se pudo escribir archivo TOC de LOs: %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" -msgstr "no se pudo cerrar el archivo TOC de LOs: %m" +msgstr "no se pudo cerrar el archivo TOC: %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "nombre de archivo demasiado largo: «%s»" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "no se puede leer este formato" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "no se pudo abrir el archivo de tabla de contenido «%s» para escribir: %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format msgid "could not open TOC file for output: %m" msgstr "no se pudo abrir la tabla de contenido para escribir: %m" -#: pg_backup_tar.c:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "la compresión no está soportada por el formato de salida tar" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "no se pudo abrir el archivo de tabla de contenido «%s» para leer: %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format msgid "could not open TOC file for input: %m" msgstr "no se pudo abrir la tabla de contenido para leer: %m" -#: pg_backup_tar.c:322 +#: pg_backup_tar.c:318 #, c-format msgid "could not find file \"%s\" in archive" msgstr "no se pudo encontrar el archivo «%s» en el archivador" -#: pg_backup_tar.c:382 +#: pg_backup_tar.c:378 #, c-format msgid "could not generate temporary file name: %m" msgstr "no se pudo generar el nombre de archivo temporal: %m" -#: pg_backup_tar.c:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "sintaxis de sentencia COPY inesperada: «%s»" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "el OID del objeto grande no es válido (%u)" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "no se pudo abrir archivo temporal: %m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "el tamaño real del archivo (%lld) no coincide con el esperado (%lld)" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "no se pudo encontrar el encabezado para el archivo «%s» en el archivo tar" -#: pg_backup_tar.c:1100 +#: pg_backup_tar.c:1115 #, 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 extracción de datos fuera de orden no está soportada en este formato: se requiere «%s», pero viene antes de «%s» en el archivador." -#: pg_backup_tar.c:1147 +#: pg_backup_tar.c:1162 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" msgstr[0] "se encontró un encabezado incompleto (%lu byte)" msgstr[1] "se encontró un encabezado incompleto (%lu bytes)" -#: pg_backup_tar.c:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "se encontró un encabezado corrupto en %s (esperado %d, calculado %d) en la posición %llu" @@ -1340,10 +1468,10 @@ msgstr "se encontró un encabezado corrupto en %s (esperado %d, calculado %d) en msgid "unrecognized section name: \"%s\"" msgstr "nombre de sección «%s» no reconocido" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." @@ -1353,82 +1481,82 @@ msgstr "Pruebe «%s --help» para mayor información." msgid "out of on_exit_nicely slots" msgstr "elementos on_exit_nicely agotados" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "las opciones -s/--schema-only y -a/--data-only no pueden usarse juntas" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "las opciones -s/--schema-only y --include-foreign-data no pueden usarse juntas" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "la opción --include-foreign-data no está soportado con respaldo en paralelo" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "las opciones -c/--clean y -a/--data-only no pueden usarse juntas" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "la opción --if-exists requiere la opción -c/--clean" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "la opción --on-conflict-do-nothing requiere la opción --inserts, --rows-per-insert o --column-inserts" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "algoritmo de compresión no reconocido: «%s»" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "especificación de compresión no válida: %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "la opción de compresión «%s» no está soportada por pg_dump actualmente" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "el volcado en paralelo sólo está soportado por el formato «directory»" -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "el último OID interno es %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "no se encontraron esquemas coincidentes" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "no se encontraron tablas coincidentes" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "no se encontraron extensiones coincidentes" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1437,17 +1565,17 @@ msgstr "" "%s extrae una base de datos en formato de texto o en otros formatos.\n" "\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:636 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPCIÓN]... [NOMBREDB]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:639 pg_restore.c:455 #, c-format msgid "" "\n" @@ -1456,12 +1584,12 @@ msgstr "" "\n" "Opciones generales:\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=ARCHIVO nombre del archivo o directorio de salida\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1470,22 +1598,22 @@ msgstr "" " -F, --format=c|d|t|p Formato del archivo de salida (c=personalizado, \n" " d=directorio, t=tar, p=texto (por omisión))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM máximo de procesos paralelos para volcar\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:641 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose modo verboso\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:642 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de version y salir\n" -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1494,22 +1622,27 @@ msgstr "" " -Z, --compress=MÉTODO[:DETALLE]\n" " comprimir como se indica\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:643 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=SEGS espera a lo más SEGS segundos obtener un lock\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:671 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync no esperar que los cambios se sincronicen a disco\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método para sincr. archivos a disco\n" + +#: pg_dump.c:1108 pg_dumpall.c:644 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:645 #, c-format msgid "" "\n" @@ -1518,64 +1651,64 @@ msgstr "" "\n" "Opciones que controlan el contenido de la salida:\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:646 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only extrae sólo los datos, no el esquema\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects incluir “large objects” en la extracción\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (igual que --large-objects, deprecado)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects excluir “large objects” en la extracción\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (igual que --no-large-objects, deprecado)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean tira (drop) la base de datos antes de crearla\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr "" " -C, --create incluye órdenes para crear la base de datos\n" " en la extracción\n" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATRÓN extrae sólo la o las extensiones nombradas\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:648 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=CODIF extrae los datos con la codificación CODIF\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=PATRÓN extrae sólo el o los esquemas nombrados\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=PATRÓN NO extrae el o los esquemas nombrados\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1584,58 +1717,58 @@ msgstr "" " -O, --no-owner en formato de sólo texto, no reestablece\n" " los dueños de los objetos\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:652 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only extrae sólo el esquema, no los datos\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME superusuario a utilizar en el volcado de texto\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=PATRÓN extrae sólo la o las tablas nombradas\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATRÓN NO extrae la o las tablas nombradas\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:655 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges no extrae los privilegios (grant/revoke)\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:656 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade sólo para uso de utilidades de upgrade\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:657 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr "" " --column-inserts extrae los datos usando INSERT con nombres\n" " de columnas\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:658 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr "" " --disable-dollar-quoting deshabilita el uso de «delimitadores de dólar»,\n" " usa delimitadores de cadena estándares\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:659 pg_restore.c:483 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr "" " --disable-triggers deshabilita los disparadores (triggers) durante el\n" " restablecimiento de la extracción de sólo-datos\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1644,7 +1777,12 @@ msgstr "" " --enable-row-security activa seguridad de filas (volcar sólo el\n" " contenido al que el usuario tiene acceso)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=PATRÓN NO volcar la o las extensiones indicadas\n" + +#: pg_dump.c:1136 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1655,12 +1793,12 @@ msgstr "" " NO extrae la o las tablas especificadas,\n" " incluyendo tablas hijas y particiones\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=PATRÓN NO extrae los datos de la(s) tablas nombradas\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1671,17 +1809,26 @@ msgstr "" " NO extrae datos para la o las tablas\n" " especificadas, incluyendo hijas y particiones\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:661 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM usa este valor para extra_float_digits\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid "" +" --filter=FILENAME include or exclude objects and data from dump\n" +" based on expressions in FILENAME\n" +msgstr "" +" --filter=ARCHIVO incluir o excluir objetos y datos basado en\n" +" expresiones en ARCHIVO\n" + +#: pg_dump.c:1146 pg_dumpall.c:663 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists usa IF EXISTS al eliminar objetos\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1692,93 +1839,93 @@ msgstr "" " incluye datos de tablas foráneas en servidores\n" " que coinciden con PATRÓN\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:664 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts extrae los datos usando INSERT, en vez de COPY\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:665 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root cargar particiones a través de tabla raíz\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:666 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments no volcar los comentarios\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:667 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications no volcar las publicaciones\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:669 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels no volcar asignaciones de etiquetas de seguridad\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:670 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions no volcar las suscripciones\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:672 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method no volcar métodos de acceso de tablas\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:673 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces no volcar asignaciones de tablespace\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:674 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression no volcar métodos de compresión TOAST\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:675 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data no volcar datos de tablas unlogged\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:676 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing agregar ON CONFLICT DO NOTHING a órdenes INSERT\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:677 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr "" " --quote-all-identifiers entrecomilla todos los identificadores, incluso\n" " si no son palabras clave\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:678 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NUMFILAS número de filas por INSERT; implica --inserts\n" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr "" " --section=SECCIÓN volcar la sección nombrada (pre-data, data,\n" " post-data)\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr "" " --serializable-deferrable espera hasta que el respaldo pueda completarse\n" " sin anomalías\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT use el snapshot dado para la extracción\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1787,7 +1934,7 @@ msgstr "" " --strict-names requerir al menos una coincidencia para cada patrón\n" " de nombre de tablas y esquemas\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1796,7 +1943,7 @@ msgstr "" " --table-and-children=PATRÓN volcar sólo la o las tablas especificadas,\n" " incluyendo tablas hijas y particiones\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:679 pg_restore.c:500 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1807,7 +1954,7 @@ msgstr "" " usa órdenes SESSION AUTHORIZATION en lugar de\n" " ALTER OWNER para cambiar los dueño de los objetos\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:683 pg_restore.c:504 #, c-format msgid "" "\n" @@ -1816,46 +1963,46 @@ msgstr "" "\n" "Opciones de conexión:\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=NOMBRE nombre de la base de datos que volcar\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:685 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=ANFITRIÓN anfitrión de la base de datos o\n" " directorio del enchufe (socket)\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:687 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PUERTO número del puerto de la base de datos\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:688 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=USUARIO nombre de usuario con el cual conectarse\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:689 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir una contraseña\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:690 pg_restore.c:509 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password fuerza un prompt para la contraseña\n" " (debería ser automático)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:691 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROL ejecuta SET ROLE antes del volcado\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "" "\n" @@ -1868,530 +2015,537 @@ msgstr "" "de la variable de ambiente PGDATABASE.\n" "\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:695 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Reporte errores a <%s>.\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:696 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "la codificación de cliente especificada «%s» no es válida" -#: pg_dump.c:1303 +#: pg_dump.c:1353 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "Los volcados en paralelo desde servidores standby no están soportados por esta versión de servidor." -#: pg_dump.c:1368 +#: pg_dump.c:1418 #, c-format msgid "invalid output format \"%s\" specified" msgstr "el formato de salida especificado «%s» no es válido" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1459 pg_dump.c:1515 pg_dump.c:1568 pg_dumpall.c:1468 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "el nombre no es válido (demasiados puntos): %s" -#: pg_dump.c:1417 +#: pg_dump.c:1467 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "no se encontraron esquemas coincidentes para el patrón «%s»" -#: pg_dump.c:1470 +#: pg_dump.c:1520 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "no se encontraron extensiones coincidentes para el patrón «%s»" -#: pg_dump.c:1523 +#: pg_dump.c:1573 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "no se encontraron servidores foráneos coincidentes para el patrón «%s»" -#: pg_dump.c:1594 +#: pg_dump.c:1644 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "el nombre de relación no es válido (demasiados puntos): %s" -#: pg_dump.c:1616 +#: pg_dump.c:1666 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "no se encontraron tablas coincidentes para el patrón «%s»" -#: pg_dump.c:1643 +#: pg_dump.c:1693 #, c-format msgid "You are currently not connected to a database." msgstr "No está conectado a una base de datos." -#: pg_dump.c:1646 +#: pg_dump.c:1696 #, c-format msgid "cross-database references are not implemented: %s" msgstr "no están implementadas las referencias entre bases de datos: %s" -#: pg_dump.c:2077 +#: pg_dump.c:2155 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "extrayendo el contenido de la tabla «%s.%s»" -#: pg_dump.c:2183 +#: pg_dump.c:2265 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Falló la extracción del contenido de la tabla «%s»: PQgetCopyData() falló." -#: pg_dump.c:2184 pg_dump.c:2194 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Error message from server: %s" msgstr "Mensaje de error del servidor: %s" -#: pg_dump.c:2185 pg_dump.c:2195 +#: pg_dump.c:2267 pg_dump.c:2277 #, c-format msgid "Command was: %s" msgstr "La orden era: % s" -#: pg_dump.c:2193 +#: pg_dump.c:2275 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Falló la extracción del contenido de la tabla «%s»: PQgetResult() falló." -#: pg_dump.c:2275 +#: pg_dump.c:2366 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "se obtuvo un número incorrecto de campos de la tabla «%s»" -#: pg_dump.c:2973 +#: pg_dump.c:3068 #, c-format msgid "saving database definition" msgstr "salvando las definiciones de la base de datos" -#: pg_dump.c:3078 +#: pg_dump.c:3177 #, c-format msgid "unrecognized locale provider: %s" msgstr "proveedor de configuración regional no reconocido: %s" -#: pg_dump.c:3429 +#: pg_dump.c:3538 #, c-format msgid "saving encoding = %s" msgstr "salvando codificaciones = %s" -#: pg_dump.c:3454 +#: pg_dump.c:3563 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "salvando standard_conforming_strings = %s" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "salvando «standard_conforming_strings = %s»" -#: pg_dump.c:3493 +#: pg_dump.c:3602 #, c-format msgid "could not parse result of current_schemas()" msgstr "no se pudo interpretar la salida de current_schemas()" -#: pg_dump.c:3512 +#: pg_dump.c:3621 #, c-format -msgid "saving search_path = %s" -msgstr "salvando search_path = %s" +msgid "saving \"search_path = %s\"" +msgstr "salvando «search_path = %s»" -#: pg_dump.c:3549 +#: pg_dump.c:3657 #, c-format msgid "reading large objects" msgstr "leyendo objetos grandes" -#: pg_dump.c:3687 +#: pg_dump.c:3878 #, c-format -msgid "saving large objects" -msgstr "salvando objetos grandes" +msgid "saving large objects \"%s\"" +msgstr "salvando objetos grandes «%s»" -#: pg_dump.c:3728 +#: pg_dump.c:3899 #, c-format msgid "error reading large object %u: %s" msgstr "error al leer el objeto grande %u: %s" -#: pg_dump.c:3834 +#: pg_dump.c:4002 #, c-format msgid "reading row-level security policies" msgstr "leyendo políticas de seguridad a nivel de registros" -#: pg_dump.c:3975 +#: pg_dump.c:4143 #, c-format msgid "unexpected policy command type: %c" msgstr "tipo de orden inesperada en política: %c" -#: pg_dump.c:4425 pg_dump.c:4760 pg_dump.c:11984 pg_dump.c:17894 -#: pg_dump.c:17896 pg_dump.c:18517 +#: pg_dump.c:4593 pg_dump.c:5151 pg_dump.c:12365 pg_dump.c:18250 +#: pg_dump.c:18252 pg_dump.c:18874 #, c-format msgid "could not parse %s array" msgstr "no se pudo interpretar el arreglo %s" -#: pg_dump.c:4613 +#: pg_dump.c:4807 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "no se volcaron las suscripciones porque el usuario actual no es un superusuario" -#: pg_dump.c:5149 +#: pg_dump.c:5013 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "no existe la suscripción con OID %u" + +#: pg_dump.c:5020 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "falló la revisión de integridad, tabla con OID %u no se encontró" + +#: pg_dump.c:5583 #, c-format msgid "could not find parent extension for %s %s" msgstr "no se pudo encontrar la extensión padre para %s %s" -#: pg_dump.c:5294 +#: pg_dump.c:5728 #, c-format msgid "schema with OID %u does not exist" msgstr "no existe el esquema con OID %u" -#: pg_dump.c:6776 pg_dump.c:17158 +#: pg_dump.c:7210 pg_dump.c:17621 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "falló la revisión de integridad, no se encontró la tabla padre con OID %u de la secuencia con OID %u" -#: pg_dump.c:6919 +#: pg_dump.c:7355 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "falló la revisión de integridad, el OID %u que aparece en pg_partitioned_table no se encontró" -#: pg_dump.c:7150 pg_dump.c:7417 pg_dump.c:7888 pg_dump.c:8552 pg_dump.c:8671 -#: pg_dump.c:8819 +#: pg_dump.c:7586 pg_dump.c:7860 pg_dump.c:8307 pg_dump.c:8921 pg_dump.c:9043 +#: pg_dump.c:9191 #, c-format msgid "unrecognized table OID %u" msgstr "OID de tabla %u no reconocido" -#: pg_dump.c:7154 +#: pg_dump.c:7590 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "datos de índice inesperados para la tabla «%s»" -#: pg_dump.c:7649 +#: pg_dump.c:8092 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "falló la revisión de integridad, no se encontró la tabla padre con OID %u del elemento con OID %u de pg_rewrite" -#: pg_dump.c:7940 -#, c-format -msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" -msgstr "la consulta produjo un nombre de tabla nulo para la llave foránea del disparador \"%s\" en la tabla «%s» (OID de la tabla: %u)" - -#: pg_dump.c:8556 +#: pg_dump.c:8925 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "información de columnas para la tabla «%s» inesperada" -#: pg_dump.c:8585 +#: pg_dump.c:8954 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "numeración de columnas no válida en la tabla «%s»" -#: pg_dump.c:8633 +#: pg_dump.c:9005 #, c-format msgid "finding table default expressions" msgstr "encontrando expresiones default de tablas" -#: pg_dump.c:8675 +#: pg_dump.c:9047 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "el valor de adnum %d para la tabla «%s» no es válido" -#: pg_dump.c:8769 +#: pg_dump.c:9141 #, c-format msgid "finding table check constraints" msgstr "encontrando restricciones CHECK de tablas" -#: pg_dump.c:8823 +#: pg_dump.c:9195 #, 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] "se esperaban %d restricciones CHECK en la tabla «%s» pero se encontraron %d" msgstr[1] "se esperaban %d restricciones CHECK en la tabla «%s» pero se encontraron %d" -#: pg_dump.c:8827 +#: pg_dump.c:9199 #, c-format msgid "The system catalogs might be corrupted." msgstr "Los catálogos del sistema podrían estar corruptos." -#: pg_dump.c:9517 +#: pg_dump.c:9889 #, c-format msgid "role with OID %u does not exist" msgstr "no existe el rol con OID %u" -#: pg_dump.c:9629 pg_dump.c:9658 +#: pg_dump.c:10001 pg_dump.c:10030 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "entrada en pg_init_privs no soportada: %u %u %d" -#: pg_dump.c:10479 +#: pg_dump.c:10577 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "metadata faltante para los objetos grandes «%s»" + +#: pg_dump.c:10860 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "el typtype del tipo «%s» parece no ser válido" -#: pg_dump.c:12053 +#: pg_dump.c:12434 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "el valor del atributo «provolatile» para la función «%s» es desconocido" -#: pg_dump.c:12103 pg_dump.c:13985 +#: pg_dump.c:12484 pg_dump.c:14380 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "el valor del atributo «proparallel» para la función «%s» es desconocido" -#: pg_dump.c:12233 pg_dump.c:12339 pg_dump.c:12346 +#: pg_dump.c:12614 pg_dump.c:12720 pg_dump.c:12727 #, c-format msgid "could not find function definition for function with OID %u" msgstr "no se encontró la definición de la función con OID %u" -#: pg_dump.c:12272 +#: pg_dump.c:12653 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "valor no válido en los campos pg_cast.castfunc o pg_cast.castmethod" -#: pg_dump.c:12275 +#: pg_dump.c:12656 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "valor no válido en el campo pg_cast.castmethod" -#: pg_dump.c:12365 +#: pg_dump.c:12746 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "definición errónea de transformación; al menos uno de trffromsql y trftosql debe ser distinto de cero" -#: pg_dump.c:12382 +#: pg_dump.c:12763 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "valor erróneo en el campo pg_transform.trffromsql" -#: pg_dump.c:12403 +#: pg_dump.c:12784 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "valor erróneo en el campo pg_transform.trftosql" -#: pg_dump.c:12548 +#: pg_dump.c:12929 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "los operadores postfix ya no están soportados (operador «%s»)" -#: pg_dump.c:12718 +#: pg_dump.c:13099 #, c-format msgid "could not find operator with OID %s" msgstr "no se pudo encontrar el operador con OID %s" -#: pg_dump.c:12786 +#: pg_dump.c:13167 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "el tipo «%c» para el método de acceso «%s» no es válido" -#: pg_dump.c:13455 pg_dump.c:13514 +#: pg_dump.c:13841 pg_dump.c:13909 #, c-format msgid "unrecognized collation provider: %s" msgstr "proveedor de ordenamiento no reconocido: %s" -#: pg_dump.c:13464 pg_dump.c:13473 pg_dump.c:13483 pg_dump.c:13498 +#: pg_dump.c:13850 pg_dump.c:13857 pg_dump.c:13868 pg_dump.c:13878 +#: pg_dump.c:13893 #, c-format msgid "invalid collation \"%s\"" msgstr "ordenamiento \"%s\" no válido" -#: pg_dump.c:13904 +#: pg_dump.c:14299 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "valor de aggfinalmodify no reconocido para la agregación «%s»" -#: pg_dump.c:13960 +#: pg_dump.c:14355 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "valor de aggmfinalmodify no reconocido para la agregación «%s»" -#: pg_dump.c:14677 +#: pg_dump.c:15072 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "tipo de objeto desconocido en privilegios por omisión: %d" -#: pg_dump.c:14693 +#: pg_dump.c:15088 #, c-format msgid "could not parse default ACL list (%s)" msgstr "no se pudo interpretar la lista de ACL (%s)" -#: pg_dump.c:14775 +#: pg_dump.c:15172 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "no se pudo interpretar la lista ACL inicial (%s) o por defecto (%s) para el objeto «%s» (%s)" -#: pg_dump.c:14800 +#: pg_dump.c:15197 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "no se pudo interpretar la lista de ACL (%s) o por defecto (%s) para el objeto «%s» (%s)" -#: pg_dump.c:15341 +#: pg_dump.c:15740 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "la consulta para obtener la definición de la vista «%s» no regresó datos" -#: pg_dump.c:15344 +#: pg_dump.c:15743 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "la consulta para obtener la definición de la vista «%s» regresó más de una definición" -#: pg_dump.c:15351 +#: pg_dump.c:15750 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "la definición de la vista «%s» parece estar vacía (tamaño cero)" -#: pg_dump.c:15435 +#: pg_dump.c:15835 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS ya no está soportado (tabla «%s»)" -#: pg_dump.c:16359 +#: pg_dump.c:16822 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "el número de columna %d no es válido para la tabla «%s»" -#: pg_dump.c:16437 +#: pg_dump.c:16900 #, c-format msgid "could not parse index statistic columns" msgstr "no se pudieron interpretar columnas de estadísticas de índices" -#: pg_dump.c:16439 +#: pg_dump.c:16902 #, c-format msgid "could not parse index statistic values" msgstr "no se pudieron interpretar valores de estadísticas de índices" -#: pg_dump.c:16441 +#: pg_dump.c:16904 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "no coincide el número de columnas con el de valores para estadísticas de índices" -#: pg_dump.c:16657 +#: pg_dump.c:17119 #, c-format msgid "missing index for constraint \"%s\"" msgstr "falta un índice para restricción «%s»" -#: pg_dump.c:16892 +#: pg_dump.c:17354 #, c-format msgid "unrecognized constraint type: %c" msgstr "tipo de restricción inesperado: %c" -#: pg_dump.c:16993 pg_dump.c:17222 +#: pg_dump.c:17455 pg_dump.c:17685 #, 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 consulta para obtener los datos de la secuencia «%s» regresó %d entrada, pero se esperaba 1" msgstr[1] "la consulta para obtener los datos de la secuencia «%s» regresó %d entradas, pero se esperaba 1" -#: pg_dump.c:17025 +#: pg_dump.c:17487 #, c-format msgid "unrecognized sequence type: %s" msgstr "tipo no reconocido de secuencia: %s" -#: pg_dump.c:17314 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "tgtype no esperado: %d" - -#: pg_dump.c:17386 -#, c-format -msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" -msgstr "argumento de cadena (%s) no válido para el disparador (trigger) «%s» en la tabla «%s»" - -#: pg_dump.c:17655 +#: pg_dump.c:18002 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "la consulta para obtener la regla «%s» asociada con la tabla «%s» falló: retornó un número incorrecto de renglones" -#: pg_dump.c:17808 +#: pg_dump.c:18155 #, c-format msgid "could not find referenced extension %u" msgstr "no se pudo encontrar la extensión referenciada %u" -#: pg_dump.c:17898 +#: pg_dump.c:18254 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "no coincide el número de configuraciones con el de condiciones para extensión" -#: pg_dump.c:18030 +#: pg_dump.c:18386 #, c-format msgid "reading dependency data" msgstr "obteniendo datos de dependencias" -#: pg_dump.c:18116 +#: pg_dump.c:18472 #, c-format msgid "no referencing object %u %u" msgstr "no existe el objeto referenciante %u %u" -#: pg_dump.c:18127 +#: pg_dump.c:18483 #, c-format msgid "no referenced object %u %u" msgstr "no existe el objeto referenciado %u %u" -#: pg_dump_sort.c:422 +#: pg_dump.c:18908 pg_dump.c:18946 pg_dumpall.c:1963 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "el filtro %s para «%s» no está permitido" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "dumpId %d no válido" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "dependencia %d no válida" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "no se pudo identificar bucle de dependencia" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, 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] "hay restricciones de llave foránea circulares en la siguiente tabla:" msgstr[1] "hay restricciones de llave foránea circulares entre las siguientes tablas:" -#: pg_dump_sort.c:1281 +#: pg_dump_sort.c:1214 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Puede no ser capaz de restaurar el respaldo sin usar --disable-triggers o temporalmente eliminar las restricciones." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1215 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Considere usar un volcado completo en lugar de --data-only para evitar este problema." -#: pg_dump_sort.c:1294 +#: pg_dump_sort.c:1227 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "no se pudo resolver el bucle de dependencias entre los siguientes elementos:" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "el programa «%s» es requerido por %s, pero no fue encontrado en el mismo directorio que «%s»" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "el programa «%s» fue encontrado por «%s», pero no es de la misma versión que %s" -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "la opción --exclude-database no puede ser usada junto con -g/--globals-only, -r/--roles-only o -t/--tablespaces-only" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "las opciones -g/--globals-only y -r/--roles-only no pueden usarse juntas" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "las opciones -g/--globals-only y -t/--tablespaces-only no pueden usarse juntas" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "las opciones -r/--roles-only y -t/--tablespaces-only no pueden usarse juntas" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:474 pg_dumpall.c:1772 #, c-format msgid "could not connect to database \"%s\"" msgstr "no se pudo establecer la conexión a la base de datos «%s»" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2400,7 +2554,7 @@ msgstr "" "no se pudo establecer la conexión a las bases de datos «postgres» o\n" "«template1». Por favor especifique una base de datos para conectarse." -#: pg_dumpall.c:629 +#: pg_dumpall.c:635 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2410,73 +2564,78 @@ msgstr "" "guión (script) SQL.\n" "\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:637 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPCIÓN]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:640 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=ARCHIVO nombre del archivo de salida\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:647 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean tira (drop) la base de datos antes de crearla\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:649 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr " -g, --globals-only extrae sólo los objetos globales, no bases de datos\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:650 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner no reestablece los dueños de los objetos\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:651 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr "" " -r, --roles-only extrae sólo los roles, no bases de datos\n" " ni tablespaces\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:653 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr "" " -S, --superuser=NAME especifica el nombre del superusuario a usar en\n" " el volcado\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:654 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr "" " -t, --tablespaces-only extrae sólo los tablespaces, no bases de datos\n" " ni roles\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:660 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=PATRÓN excluir bases de datos cuyos nombres coinciden con el patrón\n" -#: pg_dumpall.c:661 +#: pg_dumpall.c:662 +#, c-format +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr " --filter=ARCHIVO excluir bases de datos basado en expresiones en ARCHIVO\n" + +#: pg_dumpall.c:668 #, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords no extraer contraseñas para roles\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:684 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CONNSTR conectar usando la cadena de conexión\n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:686 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=NOMBRE especifica la base de datos a la cual conectarse\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:693 #, c-format msgid "" "\n" @@ -2488,97 +2647,106 @@ msgstr "" "Si no se usa -f/--file, el volcado de SQL será escrito a la salida estándar.\n" "\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:838 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "omitido nombre de rol que empieza con «pg_» (%s)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1060 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "no se pudo encontrar un orden legal para membresías del rol «%s»" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1195 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "no se pudo interpretar la lista de control de acceso (%s) del parámetro «%s»" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1322 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "no se pudo interpretar la lista de control de acceso (%s) del tablespace «%s»" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1529 #, c-format msgid "excluding database \"%s\"" msgstr "excluyendo base de datos «%s»" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1533 #, c-format msgid "dumping database \"%s\"" msgstr "extrayendo base de datos «%s»" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1564 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "pg_dump falló en la base de datos «%s», saliendo" -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1570 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "no se pudo reabrir el archivo de salida «%s»: %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1614 #, c-format msgid "running \"%s\"" msgstr "ejecutando «%s»" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1815 #, c-format msgid "could not get server version" msgstr "no se pudo obtener la versión del servidor" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1818 #, c-format msgid "could not parse server version \"%s\"" msgstr "no se pudo interpretar la versión del servidor «%s»" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1888 pg_dumpall.c:1911 #, c-format msgid "executing %s" msgstr "ejecutando %s" -#: pg_restore.c:313 +#: pg_dumpall.c:1983 +msgid "unsupported filter object" +msgstr "objeto de filtro no soportado" + +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "una de las opciones -d/--dbname y -f/--file debe especificarse" -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "las opciones -d/--dbname y -f/--file no pueden usarse juntas" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "options -1/--single-transaction and --transaction-size cannot be used together" +msgstr "las opciones -1/--single-transaction y --transaction-size no pueden usarse juntas" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "las opciones -c/--clean y -1/--single-transaction no pueden usarse juntas" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "no se puede especificar --single-transaction junto con múltiples tareas" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "formato de archivo «%s» no reconocido; por favor especifique «c», «d» o «t»" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "errores ignorados durante la recuperación: %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2588,49 +2756,49 @@ msgstr "" "creado por pg_dump.\n" "\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPCIÓN]... [ARCHIVO]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NOMBRE nombre de la base de datos a la que conectarse\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=ARCHIVO nombre del archivo de salida (- para stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t formato del volcado (debería ser automático)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr "" " -l, --list imprime una tabla resumida de contenidos\n" " del archivador\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose modo verboso\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "" "\n" @@ -2639,34 +2807,34 @@ msgstr "" "\n" "Opciones que controlan la recuperación:\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only reestablece sólo los datos, no el esquema\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create crea la base de datos de destino\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr "" " -e, --exit-on-error abandonar al encontrar un error\n" " por omisión, se continúa la restauración\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NOMBRE reestablece el índice nombrado\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM máximo de procesos paralelos para restaurar\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2675,64 +2843,73 @@ msgstr "" " -L, --use-list=ARCHIVO usa la tabla de contenido especificada para ordenar\n" " la salida de este archivo\n" -#: pg_restore.c:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME reestablece sólo los objetos en este esquema\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAME no reestablecer los objetos en este esquema\n" -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NOMBRE(args) reestablece la función nombrada\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only reestablece el esquema únicamente, no los datos\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr "" " -S, --superuser=NOMBRE especifica el nombre del superusuario que se usa\n" " para deshabilitar los disparadores (triggers)\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NOMBRE reestablece la relación (tabla, vista, etc.) nombrada\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NOMBRE reestablece el disparador (trigger) nombrado\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges no reestablece los privilegios (grant/revoke)\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction reestablece en una única transacción\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security activa seguridad de filas\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid "" +" --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr "" +" --filter=ARCHIVO restaurar o ignorar objetos basados en\n" +" expresiones en ARCHIVO\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments no restaurar comentarios\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" @@ -2741,44 +2918,49 @@ msgstr "" " --no-data-for-failed-tables no reestablece datos de tablas que no pudieron\n" " ser creadas\n" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications no restaurar publicaciones\n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels no restaura etiquetas de seguridad\n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions no restaurar suscripciones\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method no restaura métodos de acceso de tablas\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces no restaura asignaciones de tablespace\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr "" " --section=SECCIÓN reestablece la sección nombrada (pre-data, data\n" " post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr " --transaction-size=N comprometer transacción cada N objetos\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME hace SET ROLE antes de restaurar\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "" "\n" @@ -2789,7 +2971,7 @@ msgstr "" "Las opciones -I, -n, -N, -P, -t, -T, y --section pueden ser combinadas y especificadas\n" "varias veces para seleccionar varios objetos.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "" "\n" diff --git a/src/bin/pg_dump/po/fr.po b/src/bin/pg_dump/po/fr.po index 808499207e662..7e965dff10330 100644 --- a/src/bin/pg_dump/po/fr.po +++ b/src/bin/pg_dump/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-05 17:21+0000\n" -"PO-Revision-Date: 2023-09-05 22:02+0200\n" +"POT-Creation-Date: 2024-08-29 17:52+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -95,32 +95,47 @@ msgstr "l'algorithme de compression « %s » n'accepte pas un nombre de workers" msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "l'algorithme de compression « %s » n'accepte pas un mode distance longue" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binaire « %s » invalide : %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "n'a pas pu lire le binaire « %s » : %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "n'a pas pu exécuter la commande « %s » : %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "n'a pas pu lire à partir de la commande « %s » : %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "aucune donnée n'a été renvoyée par la commande « %s »" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "mémoire épuisée" @@ -135,6 +150,49 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -175,227 +233,247 @@ msgstr "valeur « %s » invalide pour l'option %s" msgid "%s must be in range %d..%d" msgstr "%s doit être compris entre %d et %d" -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "lecture des extensions" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "identification des membres d'extension" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "lecture des schémas" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "lecture des tables utilisateur" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "lecture des fonctions utilisateur" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "lecture des types utilisateur" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "lecture des langages procéduraux" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "lecture des fonctions d'agrégats utilisateur" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "lecture des opérateurs utilisateur" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "lecture des méthodes d'accès définis par les utilisateurs" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "lecture des classes d'opérateurs utilisateur" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "lecture des familles d'opérateurs utilisateur" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "lecture des analyseurs utilisateur pour la recherche plein texte" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "lecture des modèles utilisateur pour la recherche plein texte" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "lecture des dictionnaires utilisateur pour la recherche plein texte" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "lecture des configurations utilisateur pour la recherche plein texte" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "lecture des wrappers de données distantes utilisateur" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "lecture des serveurs distants utilisateur" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "lecture des droits par défaut" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "lecture des collationnements utilisateurs" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "lecture des conversions utilisateur" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "lecture des conversions de type" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "lecture des transformations" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "lecture des informations d'héritage des tables" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "lecture des triggers sur évènement" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "recherche des tables d'extension" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "recherche des relations d'héritage" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "lecture des informations de colonnes des tables intéressantes" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "marquage des colonnes héritées dans les sous-tables" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "lecture des données de partitionnement" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "lecture des index" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "décrit les index des tables partitionnées" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "lecture des statistiques étendues" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "lecture des contraintes" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "lecture des triggers" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "lecture des règles de réécriture" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "lecture des politiques" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "lecture des publications" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "lecture des appartenances aux publications des tables" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "lecture des appartenances aux publications des schémas" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "lecture des souscriptions" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "lecture des appartenances aux souscriptions des tables" + +#: common.c:333 #, 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:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "nombre de parents invalide (%d) pour la table « %s »" -#: common.c:1049 +#: common.c:1098 #, 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:1061 +#: common.c:1110 #, 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" @@ -425,15 +503,20 @@ msgstr "n'a pas pu décompresser les données : %s" msgid "could not close compression library: %s" msgstr "n'a pas pu fermer la bibliothèque de compression : %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "n'a pas pu lire à partir du fichier en entrée : %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:373 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "n'a pas pu lire à partir du fichier en entrée : %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, 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" @@ -484,16 +567,61 @@ msgstr "n'a pas pu initialiser la bibliothèque de compression" msgid "could not decompress data: %s" msgstr "n'a pas pu décompresser les données : %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "n'a pas pu lire à partir du fichier en entrée : %m" - #: compress_zstd.c:501 #, c-format msgid "unhandled mode \"%s\"" msgstr "mode « %s » non géré" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier filtre « %s » : %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier filtre « %s » : %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "format invalide dans la lecture du filtre à partir de l'entrée standard sur la ligne %d : %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "format invalide dans le filtre lu du fichier « %s » sur la ligne %d : %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "n'a pas pu lire à partir du fichier filtre « %s » : %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "fin de fichier inattendu" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "motif de nom d'objet manquant" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "aucune commande de filtre (attendait « include » ou « exclude »)" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "commande de filtre invalide (attendait « include » ou « exclude »)" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "type d'objet filtre manquant" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "type d'objet filtre non supporté : « %.*s »" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -573,461 +701,466 @@ msgstr "pgpipe: n'a pas pu se connecter au socket: code d'erreur %d" 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:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "n'a pas pu fermer le fichier en sortie : %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, 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:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "code de section inattendu %d" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, 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:371 +#: pg_backup_archiver.c:356 #, 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:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "ne peut pas restaurer l'archive compressée (%s)" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "connexion à la base de données pour la restauration" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, 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:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "a impliqué une restauration des données uniquement" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "suppression de %s %s" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, 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:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "message d'avertissement du fichier de sauvegarde original : %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "création de %s « %s.%s »" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "création de %s « %s »" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "connexion à la nouvelle base de données « %s »" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "traitement de %s" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "traitement des données de la table « %s.%s »" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "exécution de %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "désactivation des triggers pour %s" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "activation des triggers pour %s" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, 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:1287 +#: pg_backup_archiver.c:1379 #, 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:1345 +#: pg_backup_archiver.c:1442 #, 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:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "restauration du « Large Object » d'OID %u" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, 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:1383 pg_dump.c:3718 +#: pg_backup_archiver.c:1486 pg_dump.c:3888 #, 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:1439 +#: pg_backup_archiver.c:1542 #, 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:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "ligne ignorée : %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, 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:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "n'a pas pu fermer le fichier TOC : %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, 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:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "n'a pas pu ouvrir le fichier de sauvegarde : %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "a écrit %zu octet de données d'un « Large Object » (résultat = %d)" msgstr[1] "a écrit %zu octets de données d'un « Large Object » (résultat = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "n'a pas pu écrire dans le « Large Object » : %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "pendant l'initialisation (« INITIALIZING ») :" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "pendant le traitement de la TOC (« PROCESSING TOC ») :" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "pendant la finalisation (« FINALIZING ») :" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, 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:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "mauvais dumpId" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, 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:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "drapeau de décalage de données inattendu %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, 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:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "nom du répertoire trop long : « %s »" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, 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:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, 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:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, 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:2164 +#: pg_backup_archiver.c:2267 #, 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:2166 +#: pg_backup_archiver.c:2269 #, 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:2198 +#: pg_backup_archiver.c:2301 #, 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:2204 +#: pg_backup_archiver.c:2307 #, 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:2210 +#: pg_backup_archiver.c:2313 #, 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:2219 +#: pg_backup_archiver.c:2322 #, 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:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "n'a pas pu ouvrir stdout pour l'ajout : %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "format de fichier « %d » non reconnu" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4448 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4647 #, c-format msgid "finished item %d %s %s" msgstr "élément terminé %d %s %s" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4461 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4660 #, c-format msgid "worker process failed: exit code %d" msgstr "échec du processus worker : code de sortie %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, 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:2628 +#: pg_backup_archiver.c:2736 #, 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:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "encodage « %s » non reconnu" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2823 #, c-format msgid "invalid ENCODING item: %s" msgstr "élément ENCODING invalide : %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2841 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "élément STDSTRINGS invalide : %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2866 #, c-format msgid "schema \"%s\" not found" msgstr "schéma « %s » non trouvé" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2873 #, c-format msgid "table \"%s\" not found" msgstr "table « %s » non trouvée" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2880 #, c-format msgid "index \"%s\" not found" msgstr "index « %s » non trouvé" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2887 #, c-format msgid "function \"%s\" not found" msgstr "fonction « %s » non trouvée" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2894 #, c-format msgid "trigger \"%s\" not found" msgstr "trigger « %s » non trouvé" -#: pg_backup_archiver.c:3183 +#: pg_backup_archiver.c:3325 #, 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:3315 +#: pg_backup_archiver.c:3457 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "n'a pas pu configurer search_path à « %s » : %s" +msgid "could not set \"search_path\" to \"%s\": %s" +msgstr "n'a pas pu configurer « search_path » à « %s » : %s" -#: pg_backup_archiver.c:3376 +#: pg_backup_archiver.c:3518 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "n'a pas pu configurer default_tablespace à %s : %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "n'a pas pu configurer « default_tablespace » à %s : %s" -#: pg_backup_archiver.c:3425 +#: pg_backup_archiver.c:3567 #, 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" +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:3530 +#: pg_backup_archiver.c:3616 +#, c-format +msgid "could not alter table access method: %s" +msgstr "n'a pas pu modifier la méthode d'accès aux tables : %s" + +#: pg_backup_archiver.c:3717 #, 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:3752 +#: pg_backup_archiver.c:4004 #, 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:3766 +#: pg_backup_archiver.c:4018 #, 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:3771 +#: pg_backup_archiver.c:4023 #, 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:3775 +#: pg_backup_archiver.c:4027 #, 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:3785 +#: pg_backup_archiver.c:4037 #, 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:3807 +#: pg_backup_archiver.c:4059 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "l'archive est compressée mais cette installation ne supporte pas la compression (%s) -- aucune donnée ne sera disponible" -#: pg_backup_archiver.c:3843 +#: pg_backup_archiver.c:4095 #, c-format msgid "invalid creation date in header" msgstr "date de création invalide dans l'en-tête" -#: pg_backup_archiver.c:3977 +#: pg_backup_archiver.c:4229 #, c-format msgid "processing item %d %s %s" msgstr "traitement de l'élément %d %s %s" -#: pg_backup_archiver.c:4052 +#: pg_backup_archiver.c:4314 #, c-format msgid "entering main parallel loop" msgstr "entrée dans la boucle parallèle principale" -#: pg_backup_archiver.c:4063 +#: pg_backup_archiver.c:4325 #, c-format msgid "skipping item %d %s %s" msgstr "omission de l'élément %d %s %s" -#: pg_backup_archiver.c:4072 +#: pg_backup_archiver.c:4334 #, c-format msgid "launching item %d %s %s" msgstr "lancement de l'élément %d %s %s" -#: pg_backup_archiver.c:4126 +#: pg_backup_archiver.c:4388 #, c-format msgid "finished main parallel loop" msgstr "fin de la boucle parallèle principale" -#: pg_backup_archiver.c:4162 +#: pg_backup_archiver.c:4424 #, c-format msgid "processing missed item %d %s %s" msgstr "traitement de l'élément manquant %d %s %s" -#: pg_backup_archiver.c:4767 +#: pg_backup_archiver.c:4966 #, 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" -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "OID invalide pour le « Large Object »" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "erreur lors de la recherche dans le fichier : %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "le bloc de données %d a une mauvaise position de recherche" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "type de bloc de données non reconnu (%d) lors de la recherche dans l'archive" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "" @@ -1036,53 +1169,53 @@ msgstr "" "différent, ce qui ne peut pas être géré à cause d'un fichier non gérable en\n" "recherche" -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "n'a pas pu trouver l'identifiant de bloc %d dans l'archive -- possible corruption de l'archive" -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "ID de bloc inattendu (%d) lors de la lecture des données -- %d attendu" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "type de bloc de données %d non reconnu lors de la restauration de l'archive" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, 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" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "n'a pas pu fermer le fichier d'archive : %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "peut seulement rouvrir l'archive en entrée" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "la restauration parallélisée n'est pas supportée à partir de stdin" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "la restauration parallélisée n'est pas supportée à partir de fichiers sans table de matière" -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "n'a pas pu initialiser la recherche de position dans le fichier d'archive : %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "compression activée" @@ -1092,12 +1225,12 @@ msgstr "compression activée" msgid "could not get server_version from libpq" msgstr "n'a pas pu obtenir server_version de libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1830 #, c-format msgid "aborting because of server version mismatch" msgstr "annulation à cause de la différence des versions" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1831 #, c-format msgid "server version: %s; %s version: %s" msgstr "version du serveur : %s ; %s version : %s" @@ -1107,7 +1240,7 @@ msgstr "version du serveur : %s ; %s version : %s" msgid "already connected to a database" msgstr "déjà connecté à une base de données" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 msgid "Password: " msgstr "Mot de passe : " @@ -1121,18 +1254,18 @@ msgstr "n'a pas pu se connecter à la base de données" msgid "reconnection failed: %s" msgstr "échec de la reconnexion : %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 #, c-format msgid "query failed: %s" msgstr "échec de la requête : %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "Query was: %s" msgstr "La requête était : %s" @@ -1168,7 +1301,7 @@ msgstr "erreur renvoyée par PQputCopyEnd : %s" msgid "COPY failed for table \"%s\": %s" msgstr "COPY échoué pour la table « %s » : %s" -#: pg_backup_db.c:521 pg_dump.c:2202 +#: pg_backup_db.c:521 pg_dump.c:2283 #, 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 »" @@ -1181,161 +1314,156 @@ msgstr "n'a pas pu démarrer la transaction de la base de données" msgid "could not commit database transaction" msgstr "n'a pas pu valider la transaction de la base de données" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "aucun répertoire cible indiqué" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "n'a pas pu lire le répertoire « %s » : %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "n'a pas pu fermer le répertoire « %s » : %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, 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:374 +#: pg_backup_directory.c:375 #, 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 +#: pg_backup_directory.c:408 #, 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:448 +#: pg_backup_directory.c:455 #, 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:459 +#: pg_backup_directory.c:466 #, 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:468 +#: pg_backup_directory.c:475 #, 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:472 +#: pg_backup_directory.c:479 #, 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:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "n'a pas pu fermer le fichier de données LO : %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "n'a pas pu écrire dans le fichier TOC des Large Objects : %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" msgstr "n'a pas pu fermer le fichier TOC des Large Objects : %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "nom du fichier trop long : « %s »" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "ce format ne peut pas être lu" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "n'a pas pu ouvrir le fichier TOC « %s » en sortie : %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format 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:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "compression non supportée par le format des archives tar" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "n'a pas pu ouvrir le fichier TOC « %s » en entrée : %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format 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:322 +#: pg_backup_tar.c:318 #, 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:382 +#: pg_backup_tar.c:378 #, 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:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "syntaxe inattendue de l'instruction COPY : « %s »" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "OID invalide pour le « Large Object » (%u)" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "n'a pas pu fermer le fichier temporaire : m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "la longueur réelle du fichier (%lld) ne correspond pas à ce qui était attendu (%lld)" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, 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:1100 +#: pg_backup_tar.c:1115 #, 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:1147 +#: pg_backup_tar.c:1162 #, 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:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "en-tête tar corrompu trouvé dans %s (%d attendu, %d calculé ) à la position %llu du fichier" @@ -1345,10 +1473,10 @@ msgstr "en-tête tar corrompu trouvé dans %s (%d attendu, %d calculé ) à la p msgid "unrecognized section name: \"%s\"" msgstr "nom de section non reconnu : « %s »" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." @@ -1358,82 +1486,82 @@ msgstr "Essayez « %s --help » pour plus d'informations." msgid "out of on_exit_nicely slots" msgstr "plus d'emplacements on_exit_nicely" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "les options « -s/--schema-only » et « -a/--data-only » ne peuvent pas être utilisées ensemble" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "les options « -s/--schema-only » et « --include-foreign-data » ne peuvent pas être utilisées ensemble" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "l'option --include-foreign-data n'est pas supportée avec une sauvegarde parallélisée" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "les options « -c/--clean » et « -a/--data-only » ne peuvent pas être utilisées ensemble" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "l'option --if-exists nécessite l'option -c/--clean" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "l'option --on-conflict-do-nothing requiert l'option --inserts, --rows-per-insert, ou --column-inserts" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "algorithme de compression inconnu : « %s »" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "spécification de compression invalide : %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "l'option de compression « %s » n'est pas actuellement supportée par pg_dump" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "la sauvegarde parallélisée n'est supportée qu'avec le format directory" -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "le dernier OID interne est %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "aucun schéma correspondant n'a été trouvé" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "aucune table correspondante n'a été trouvée" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "aucune extension correspondante n'a été trouvée" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1443,17 +1571,17 @@ msgstr "" "formats.\n" "\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:635 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [BASE]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:638 pg_restore.c:455 #, c-format msgid "" "\n" @@ -1462,12 +1590,12 @@ msgstr "" "\n" "Options générales :\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=FICHIER nom du fichier ou du répertoire en sortie\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1476,24 +1604,24 @@ msgstr "" " -F, --format=c|d|t|p format du fichier de sortie (personnalisé,\n" " répertoire, tar, texte (par défaut))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr "" " -j, --jobs=NOMBRE utilise ce nombre de jobs en parallèle pour la\n" " sauvegarde\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:640 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose mode verbeux\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:641 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1502,26 +1630,31 @@ msgstr "" " -Z, --compress=METHODE[:DETAIL]\n" " compresse comme indiqué\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:642 #, 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 de\n" " table\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:670 #, 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\n" " proprement écrites sur disque\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: pg_dump.c:1108 pg_dumpall.c:643 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:644 #, c-format msgid "" "\n" @@ -1530,66 +1663,66 @@ msgstr "" "\n" "Options contrôlant le contenu en sortie :\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:645 #, 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 schéma\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects inclut les « Large Objects » dans la sauvegarde\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (comme --large-objects, obsolète)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects exclut les « Large Objects » de la sauvegarde\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (comme --no-large-objects, obsolète)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr "" " -c, --clean nettoie/supprime les objets de la base de données\n" " avant de les créer\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, 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" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=MOTIF sauvegarde uniquement les extensions indiquées\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:647 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=ENCODAGE sauvegarde les données dans l'encodage ENCODAGE\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=MOTIF sauvegarde uniquement les schémas indiqués\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=MOTIF ne sauvegarde pas les schémas indiqués\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1598,50 +1731,50 @@ msgstr "" " -O, --no-owner ne sauvegarde pas les propriétaires des objets\n" " lors de l'utilisation du format texte\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:651 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr "" " -s, --schema-only sauvegarde uniquement la structure, pas les\n" " données\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, 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 à utiliser\n" " avec le format texte\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=MOTIF sauvegarde uniquement les tables indiquées\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=MOTIF ne sauvegarde pas les tables indiquées\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:654 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges ne sauvegarde pas les droits sur les objets\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:655 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr "" " --binary-upgrade à n'utiliser que par les outils de mise à jour\n" " seulement\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:656 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr "" " --column-inserts sauvegarde les données avec des commandes INSERT\n" " en précisant les noms des colonnes\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:657 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr "" @@ -1649,14 +1782,14 @@ msgstr "" " dans le but de respecter le standard SQL en\n" " matière de guillemets\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:658 pg_restore.c:483 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr "" " --disable-triggers désactive les triggers en mode de restauration\n" " des données seules\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1666,7 +1799,12 @@ msgstr "" " sauvegarde uniquement le contenu visible par cet\n" " utilisateur)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=MOTIF ne sauvegarde PAS les extensions indiquées\n" + +#: pg_dump.c:1136 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1676,12 +1814,12 @@ msgstr "" " --exclude-table-and-children=MOTIF\n" " ne sauvegarde PAS les tables indiquées, ceci incluant les tables filles et les partitions\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=MOTIF ne sauvegarde pas les tables indiquées\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1691,21 +1829,30 @@ msgstr "" " --exclude-table-data-and-children=MOTIF\n" " ne sauvegarde PAS les données des tables indiquées, ceci incluant les tables filles et les partitions\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:660 #, 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\n" " extra_float_digits\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid "" +" --filter=FILENAME include or exclude objects and data from dump\n" +" based on expressions in FILENAME\n" +msgstr "" +" --filter=NOMFICHIER inclut ou exclut des objets et des données à partir de la sauvegarde\n" +" basée sur les expressions dans NOMFICHIER\n" + +#: pg_dump.c:1146 pg_dumpall.c:662 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr "" " --if-exists utilise IF EXISTS lors de la suppression des\n" " objets\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1715,103 +1862,103 @@ msgstr "" " --include-foreign-data=MOTIF inclut les données des tables externes pour les\n" " serveurs distants correspondant au motif MOTIF\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:663 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr "" " --inserts sauvegarde les données avec des instructions\n" " INSERT plutôt que COPY\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:664 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root charger les partitions via la table racine\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:665 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments ne sauvegarde pas les commentaires\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:666 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications ne sauvegarde pas les publications\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:668 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr "" " --no-security-labels ne sauvegarde pas les affectations de labels de\n" " sécurité\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:669 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions ne sauvegarde pas les souscriptions\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:671 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method ne sauvegarde pas les méthodes d'accès aux tables\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:672 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces ne sauvegarde pas les affectations de tablespaces\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:673 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr "" " --no-toast-compression ne sauvegarde pas les méthodes de compression de\n" " TOAST\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:674 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr "" " --no-unlogged-table-data ne sauvegarde pas les données des tables non\n" " journalisées\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:675 #, 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\n" " INSERT\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:676 #, 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 même\n" " s'il ne s'agit pas de mots clés\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:677 #, 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" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr "" " --section=SECTION sauvegarde la section indiquée (pre-data, data\n" " ou post-data)\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr "" " --serializable-deferrable attend jusqu'à ce que la sauvegarde puisse\n" " s'exécuter sans anomalies\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT utilise l'image donnée pour la sauvegarde\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1820,14 +1967,14 @@ msgstr "" " --strict-names requiert que les motifs des tables et/ou schémas\n" " correspondent à au moins une entité de chaque\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" " child and partition tables\n" msgstr " --table-and-children=MODÈLE sauvegarde uniquement les tables indiquées, en incluant les tables filles et les partitions\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:678 pg_restore.c:500 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1839,7 +1986,7 @@ msgstr "" " au lieu des commandes ALTER OWNER pour modifier\n" " les propriétaires\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:682 pg_restore.c:504 #, c-format msgid "" "\n" @@ -1848,46 +1995,46 @@ msgstr "" "\n" "Options de connexion :\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=BASE base de données à sauvegarder\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:684 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HÔTE hôte du serveur de bases de données ou\n" " répertoire des sockets\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:686 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT numéro de port du serveur de bases de données\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:687 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NOM se connecter avec cet utilisateur\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:688 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ne demande jamais un mot de passe\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:689 pg_restore.c:509 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password force la demande du mot de passe (devrait\n" " survenir automatiquement)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:690 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=NOMROLE exécute SET ROLE avant la sauvegarde\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "" "\n" @@ -1900,530 +2047,537 @@ msgstr "" "d'environnement PGDATABASE est alors utilisée.\n" "\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:694 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapporter les bogues à <%s>.\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:695 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "encodage client indiqué (« %s ») invalide" -#: pg_dump.c:1303 +#: pg_dump.c:1352 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "les sauvegardes parallélisées sur un serveur standby ne sont pas supportées par cette version du serveur" -#: pg_dump.c:1368 +#: pg_dump.c:1417 #, c-format msgid "invalid output format \"%s\" specified" msgstr "format de sortie « %s » invalide" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1458 pg_dump.c:1514 pg_dump.c:1567 pg_dumpall.c:1467 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s" -#: pg_dump.c:1417 +#: pg_dump.c:1466 #, 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:1470 +#: pg_dump.c:1519 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "aucune extension correspondante n'a été trouvée avec le motif « %s »" -#: pg_dump.c:1523 +#: pg_dump.c:1572 #, 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:1594 +#: pg_dump.c:1643 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "nom de relation incorrecte (trop de points entre les noms) : %s" -#: pg_dump.c:1616 +#: pg_dump.c:1665 #, 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:1643 +#: pg_dump.c:1692 #, c-format msgid "You are currently not connected to a database." msgstr "Vous n'êtes pas connecté à une base de données." -#: pg_dump.c:1646 +#: pg_dump.c:1695 #, 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" -#: pg_dump.c:2077 +#: pg_dump.c:2154 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "sauvegarde du contenu de la table « %s.%s »" -#: pg_dump.c:2183 +#: pg_dump.c:2264 #, 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:2184 pg_dump.c:2194 +#: pg_dump.c:2265 pg_dump.c:2275 #, c-format msgid "Error message from server: %s" msgstr "Message d'erreur du serveur : %s" -#: pg_dump.c:2185 pg_dump.c:2195 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Command was: %s" msgstr "La commande était : %s" -#: pg_dump.c:2193 +#: pg_dump.c:2274 #, 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:2275 +#: pg_dump.c:2365 #, 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:2973 +#: pg_dump.c:3067 #, c-format msgid "saving database definition" msgstr "sauvegarde de la définition de la base de données" -#: pg_dump.c:3078 +#: pg_dump.c:3176 #, c-format msgid "unrecognized locale provider: %s" msgstr "fournisseur de locale non reconnu : %s" -#: pg_dump.c:3429 +#: pg_dump.c:3537 #, c-format msgid "saving encoding = %s" msgstr "encodage de la sauvegarde = %s" -#: pg_dump.c:3454 +#: pg_dump.c:3562 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "sauvegarde de standard_conforming_strings = %s" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "sauvegarde de « standard_conforming_strings = %s »" -#: pg_dump.c:3493 +#: pg_dump.c:3601 #, 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:3512 +#: pg_dump.c:3620 #, c-format -msgid "saving search_path = %s" -msgstr "sauvegarde de search_path = %s" +msgid "saving \"search_path = %s\"" +msgstr "sauvegarde de « search_path = %s »" -#: pg_dump.c:3549 +#: pg_dump.c:3656 #, c-format msgid "reading large objects" msgstr "lecture des « Large Objects »" -#: pg_dump.c:3687 +#: pg_dump.c:3877 #, c-format -msgid "saving large objects" -msgstr "sauvegarde des « Large Objects »" +msgid "saving large objects \"%s\"" +msgstr "sauvegarde des « Large Objects » « %s »" -#: pg_dump.c:3728 +#: pg_dump.c:3898 #, c-format msgid "error reading large object %u: %s" msgstr "erreur lors de la lecture du « Large Object » %u : %s" -#: pg_dump.c:3834 +#: pg_dump.c:4001 #, c-format msgid "reading row-level security policies" msgstr "lecture des politiques de sécurité au niveau ligne" -#: pg_dump.c:3975 +#: pg_dump.c:4142 #, c-format msgid "unexpected policy command type: %c" msgstr "type de commande inattendu pour la politique : %c" -#: pg_dump.c:4425 pg_dump.c:4760 pg_dump.c:11984 pg_dump.c:17894 -#: pg_dump.c:17896 pg_dump.c:18517 +#: pg_dump.c:4592 pg_dump.c:5150 pg_dump.c:12362 pg_dump.c:18246 +#: pg_dump.c:18248 pg_dump.c:18870 #, c-format msgid "could not parse %s array" msgstr "n'a pas pu analyser le tableau %s" -#: pg_dump.c:4613 +#: pg_dump.c:4806 #, 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:5149 +#: pg_dump.c:5012 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "la souscription d'OID %u n'existe pas" + +#: pg_dump.c:5019 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "vérification de santé échouée, table d'OID %u introuvable" + +#: pg_dump.c:5582 #, 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:5294 +#: pg_dump.c:5727 #, c-format msgid "schema with OID %u does not exist" msgstr "le schéma d'OID %u n'existe pas" -#: pg_dump.c:6776 pg_dump.c:17158 +#: pg_dump.c:7209 pg_dump.c:17617 #, 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:6919 +#: pg_dump.c:7352 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "vérification échouée, OID de table %u apparaissant dans partitioned introuvable" -#: pg_dump.c:7150 pg_dump.c:7417 pg_dump.c:7888 pg_dump.c:8552 pg_dump.c:8671 -#: pg_dump.c:8819 +#: pg_dump.c:7583 pg_dump.c:7857 pg_dump.c:8304 pg_dump.c:8918 pg_dump.c:9040 +#: pg_dump.c:9188 #, c-format msgid "unrecognized table OID %u" msgstr "OID de table %u non reconnu" -#: pg_dump.c:7154 +#: pg_dump.c:7587 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "données d'index inattendu pour la table « %s »" -#: pg_dump.c:7649 +#: pg_dump.c:8089 #, 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:7940 -#, 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:8556 +#: pg_dump.c:8922 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "données de colonne inattendues pour la table « %s »" -#: pg_dump.c:8585 +#: pg_dump.c:8951 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "numérotation des colonnes invalide pour la table « %s »" -#: pg_dump.c:8633 +#: pg_dump.c:9002 #, c-format msgid "finding table default expressions" msgstr "recherche des expressions par défaut de la table" -#: pg_dump.c:8675 +#: pg_dump.c:9044 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "valeur adnum %d invalide pour la table « %s »" -#: pg_dump.c:8769 +#: pg_dump.c:9138 #, c-format msgid "finding table check constraints" msgstr "recherche des contraintes CHECK de la table" -#: pg_dump.c:8823 +#: pg_dump.c:9192 #, 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:8827 +#: pg_dump.c:9196 #, c-format msgid "The system catalogs might be corrupted." msgstr "Les catalogues système pourraient être corrompus." -#: pg_dump.c:9517 +#: pg_dump.c:9886 #, c-format msgid "role with OID %u does not exist" msgstr "le rôle d'OID %u n'existe pas" -#: pg_dump.c:9629 pg_dump.c:9658 +#: pg_dump.c:9998 pg_dump.c:10027 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "entrée pg_init_privs non supportée : %u %u %d" -#: pg_dump.c:10479 +#: pg_dump.c:10574 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "métadonnée manquante pour les Large Object « %s »" + +#: pg_dump.c:10857 #, 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:12053 +#: pg_dump.c:12431 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "valeur provolatile non reconnue pour la fonction « %s »" -#: pg_dump.c:12103 pg_dump.c:13985 +#: pg_dump.c:12481 pg_dump.c:14377 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "valeur proparallel non reconnue pour la fonction « %s »" -#: pg_dump.c:12233 pg_dump.c:12339 pg_dump.c:12346 +#: pg_dump.c:12611 pg_dump.c:12717 pg_dump.c:12724 #, 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:12272 +#: pg_dump.c:12650 #, 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:12275 +#: pg_dump.c:12653 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "valeur erronée dans pg_cast.castmethod" -#: pg_dump.c:12365 +#: pg_dump.c:12743 #, 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:12382 +#: pg_dump.c:12760 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "valeur erronée dans pg_transform.trffromsql" -#: pg_dump.c:12403 +#: pg_dump.c:12781 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "valeur erronée dans pg_transform.trftosql" -#: pg_dump.c:12548 +#: pg_dump.c:12926 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "les opérateurs postfixes ne sont plus supportés (opérateur « %s »)" -#: pg_dump.c:12718 +#: pg_dump.c:13096 #, 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:12786 +#: pg_dump.c:13164 #, 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:13455 pg_dump.c:13514 +#: pg_dump.c:13838 pg_dump.c:13906 #, c-format msgid "unrecognized collation provider: %s" msgstr "fournisseur de collationnement non reconnu : %s" -#: pg_dump.c:13464 pg_dump.c:13473 pg_dump.c:13483 pg_dump.c:13498 +#: pg_dump.c:13847 pg_dump.c:13854 pg_dump.c:13865 pg_dump.c:13875 +#: pg_dump.c:13890 #, c-format msgid "invalid collation \"%s\"" msgstr "collation « %s » invalide" -#: pg_dump.c:13904 +#: pg_dump.c:14296 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "valeur non reconnue de aggfinalmodify pour l'agrégat « %s »" -#: pg_dump.c:13960 +#: pg_dump.c:14352 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "valeur non reconnue de aggmfinalmodify pour l'agrégat « %s »" -#: pg_dump.c:14677 +#: pg_dump.c:15069 #, 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:14693 +#: pg_dump.c:15085 #, 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:14775 +#: pg_dump.c:15169 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "n'a pas pu analyser la liste ACL initiale (%s) ou par défaut (%s) pour l'objet « %s » (%s)" -#: pg_dump.c:14800 +#: pg_dump.c:15194 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "n'a pas pu analyser la liste ACL (%s) ou par défaut (%s) pour l'objet « %s » (%s)" -#: pg_dump.c:15341 +#: pg_dump.c:15737 #, 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:15344 +#: pg_dump.c:15740 #, 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:15351 +#: pg_dump.c:15747 #, 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:15435 +#: pg_dump.c:15832 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS n'est plus supporté (table « %s »)" -#: pg_dump.c:16359 +#: pg_dump.c:16819 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "numéro de colonne %d invalide pour la table « %s »" -#: pg_dump.c:16437 +#: pg_dump.c:16897 #, c-format msgid "could not parse index statistic columns" msgstr "n'a pas pu analyser les colonnes statistiques de l'index" -#: pg_dump.c:16439 +#: pg_dump.c:16899 #, c-format msgid "could not parse index statistic values" msgstr "n'a pas pu analyser les valeurs statistiques de l'index" -#: pg_dump.c:16441 +#: pg_dump.c:16901 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "nombre de colonnes et de valeurs différentes pour les statistiques des index" -#: pg_dump.c:16657 +#: pg_dump.c:17116 #, c-format msgid "missing index for constraint \"%s\"" msgstr "index manquant pour la contrainte « %s »" -#: pg_dump.c:16892 +#: pg_dump.c:17351 #, c-format msgid "unrecognized constraint type: %c" msgstr "type de contrainte inconnu : %c" -#: pg_dump.c:16993 pg_dump.c:17222 +#: pg_dump.c:17452 pg_dump.c:17681 #, 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:17025 +#: pg_dump.c:17484 #, c-format msgid "unrecognized sequence type: %s" msgstr "type de séquence non reconnu : « %s »" -#: pg_dump.c:17314 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "valeur tgtype inattendue : %d" - -#: pg_dump.c:17386 -#, 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:17655 +#: pg_dump.c:17998 #, 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:17808 +#: pg_dump.c:18151 #, 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:17898 +#: pg_dump.c:18250 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "nombre différent de configurations et de conditions pour l'extension" -#: pg_dump.c:18030 +#: pg_dump.c:18382 #, c-format msgid "reading dependency data" msgstr "lecture des données de dépendance" -#: pg_dump.c:18116 +#: pg_dump.c:18468 #, c-format msgid "no referencing object %u %u" msgstr "pas d'objet référant %u %u" -#: pg_dump.c:18127 +#: pg_dump.c:18479 #, c-format msgid "no referenced object %u %u" msgstr "pas d'objet référencé %u %u" -#: pg_dump_sort.c:422 +#: pg_dump.c:18904 pg_dump.c:18942 pg_dumpall.c:1962 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "filtre %s pour « %s » n'est pas autorisé" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "dumpId %d invalide" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "dépendance invalide %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "n'a pas pu identifier la boucle de dépendance" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, 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 constraintes de clés étrangères circulaires sur cette table :" -msgstr[1] "NOTE : il existe des constraintes de clés étrangères circulaires sur ces 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:1281 +#: pg_dump_sort.c:1214 #, 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 constraintes." +msgstr "Il est possible de restaurer la sauvegarde sans utiliser --disable-triggers ou sans supprimer temporairement les contraintes." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1215 #, 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:1294 +#: pg_dump_sort.c:1227 #, 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 :" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé dans le même répertoire que « %s »" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "le programme « %s » a été trouvé par « %s » mais n'est pas de la même version que %s" -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "l'option --exclude-database ne peut pas être utilisée avec -g/--globals-only, -r/--roles-only ou -t/--tablespaces-only" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "les options « -g/--globals-only » et « -r/--roles-only » ne peuvent pas être utilisées ensemble" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "les options « -g/--globals-only » et « -t/--tablespaces-only » ne peuvent pas être utilisées ensemble" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "les options « -r/--roles-only » et « -t/--tablespaces-only » ne peuvent pas être utilisées ensemble" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:474 pg_dumpall.c:1771 #, c-format msgid "could not connect to database \"%s\"" msgstr "n'a pas pu se connecter à la base de données « %s »" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2432,7 +2586,7 @@ msgstr "" "n'a pas pu se connecter aux bases « postgres » et « template1 ».\n" "Merci de préciser une autre base de données." -#: pg_dumpall.c:629 +#: pg_dumpall.c:634 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2442,57 +2596,57 @@ msgstr "" "commandes SQL.\n" "\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:636 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:639 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=FICHIER nom du fichier de sortie\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:646 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr "" " -c, --clean nettoie (supprime) les bases de données avant de\n" " les créer\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:648 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr "" " -g, --globals-only sauvegarde uniquement les objets système, pas\n" " le contenu des bases de données\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:649 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner omet la restauration des propriétaires des objets\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:650 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr "" " -r, --roles-only sauvegarde uniquement les rôles, pas les bases\n" " de données ni les tablespaces\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:652 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr "" " -S, --superuser=NOM indique le nom du super-utilisateur à utiliser\n" " avec le format texte\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:653 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr "" " -t, --tablespaces-only sauvegarde uniquement les tablespaces, pas les\n" " bases de données ni les rôles\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:659 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr "" @@ -2501,20 +2655,25 @@ msgstr "" #: pg_dumpall.c:661 #, c-format +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr " -f, --file=FICHIER exclut les bases indiquées sous forme d'expressions dans FICHIER\n" + +#: pg_dumpall.c:667 +#, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords ne sauvegarde pas les mots de passe des rôles\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:683 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CHAINE_CONNEX connexion à l'aide de la chaîne de connexion\n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:685 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=BASE indique une autre base par défaut\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:692 #, c-format msgid "" "\n" @@ -2527,97 +2686,106 @@ msgstr "" "standard.\n" "\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:837 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "nom de rôle commençant par « pg_ » ignoré (« %s »)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1059 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "n'a pas pu trouver un ordre de sauvegarde correct pour les appartenances au rôle « %s »" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1194 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "n'a pas pu analyser la liste d'ACL (%s) pour le paramètre « %s »" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1321 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "n'a pas pu analyser la liste d'ACL (%s) pour le tablespace « %s »" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1528 #, c-format msgid "excluding database \"%s\"" msgstr "exclusion de la base de données « %s »" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1532 #, c-format msgid "dumping database \"%s\"" msgstr "sauvegarde de la base de données « %s »" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1563 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "échec de pg_dump sur la base de données « %s », quitte" -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1569 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "n'a pas pu ré-ouvrir le fichier de sortie « %s » : %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1613 #, c-format msgid "running \"%s\"" msgstr "exécute « %s »" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1814 #, c-format msgid "could not get server version" msgstr "n'a pas pu obtenir la version du serveur" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1817 #, c-format msgid "could not parse server version \"%s\"" msgstr "n'a pas pu analyser la version du serveur « %s »" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1887 pg_dumpall.c:1910 #, c-format msgid "executing %s" msgstr "exécution %s" -#: pg_restore.c:313 +#: pg_dumpall.c:1982 +msgid "unsupported filter object" +msgstr "objet de filtre non supporté" + +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "une seule des options -d/--dbname and -f/--file peut être indiquée" -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "les options « -d/--dbname » et « -f/--file » ne peuvent pas être utilisées ensemble" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "options -1/--single-transaction and --transaction-size cannot be used together" +msgstr "les options -1/--single-transaction » et --transaction-size ne peuvent pas être utilisées ensemble" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "les options « -C/--create » et « -1/--single-transaction » ne peuvent pas être utilisées ensemble" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "ne peut pas spécifier à la fois l'option --single-transaction et demander plusieurs jobs" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "format d'archive « %s » non reconnu ; merci d'indiquer « c », « d » ou « t »" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "erreurs ignorées lors de la restauration : %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2627,51 +2795,51 @@ msgstr "" "par pg_dump.\n" "\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPTION]... [FICHIER]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr "" " -d, --dbname=NOM nom de la base de données utilisée pour la\n" " connexion\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FICHIER nom du fichier de sortie (- pour stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr "" " -F, --format=c|d|t format du fichier de sauvegarde (devrait être\n" " automatique)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list affiche la table des matières de l'archive (TOC)\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose mode verbeux\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "" "\n" @@ -2680,34 +2848,34 @@ msgstr "" "\n" "Options contrôlant la restauration :\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only restaure uniquement les données, pas la structure\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create crée la base de données cible\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error quitte en cas d'erreur, continue par défaut\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NOM restaure l'index indiqué\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr "" " -j, --jobs=NOMBRE utilise ce nombre de jobs en parallèle pour la\n" " restauration\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2716,66 +2884,75 @@ msgstr "" " -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:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NOM restaure uniquement les objets de ce schéma\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, 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" -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NOM(args) restaure la fonction indiquée\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only restaure uniquement la structure, pas les données\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, 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 à utiliser\n" " pour désactiver les triggers\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NOM restaure la relation indiquée (table, vue, etc)\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NOM restaure le trigger indiqué\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr "" " -x, --no-privileges omet la restauration des droits sur les objets\n" " (grant/revoke)\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction restaure dans une seule transaction\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security active la sécurité niveau ligne\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid "" +" --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr "" +" --filter=NOMFICHIER restaure ou ignore les objets suivant des expressions\n" +" dans NOMFICHIER\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments ne restaure pas les commentaires\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" @@ -2784,44 +2961,49 @@ msgstr "" " --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:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications ne restaure pas les publications\n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels ne restaure pas les labels de sécurité\n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions ne restaure pas les souscriptions\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method ne restaure pas les méthodes d'accès aux tables\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces ne restaure pas les affectations de tablespaces\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, 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 ou\n" " post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr " --transaction-size=N valide après N objets\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=RÔLE exécute SET ROLE avant la restauration\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "" "\n" @@ -2832,7 +3014,7 @@ msgstr "" "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:493 +#: pg_restore.c:515 #, c-format msgid "" "\n" @@ -2843,755 +3025,3 @@ msgstr "" "Si aucun nom de fichier n'est fourni en entrée, alors l'entrée standard est\n" "utilisée.\n" "\n" - -#, c-format -#~ msgid " %s" -#~ msgstr " %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 " --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 et quitte\n" - -#, 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\n" -#~ " jobs en parallèle\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 " --version output version information, then exit\n" -#~ msgstr " --version affiche la version puis quitte\n" - -#~ 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 "" -#~ " -O, --no-owner omettre la restauration des possessions des\n" -#~ " objets\n" - -#, c-format -#~ msgid " -Z, --compress=0-9 compression level for compressed formats\n" -#~ msgstr "" -#~ " -Z, --compress=0-9 niveau de compression pour les formats\n" -#~ " compressés\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 " -o, --oids include OIDs in dump\n" -#~ msgstr " -o, --oids inclut les OID dans la sauvegarde\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 "%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 "%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 "%s: could not parse version \"%s\"\n" -#~ msgstr "%s : n'a pas pu analyser la version « %s »\n" - -#~ msgid "%s: executing %s\n" -#~ msgstr "%s : exécute %s\n" - -#~ msgid "%s: invalid -X option -- %s\n" -#~ msgstr "%s : option -X invalide -- %s\n" - -#~ msgid "%s: invalid client encoding \"%s\" specified\n" -#~ msgstr "%s : encodage client indiqué (« %s ») invalide\n" - -#~ msgid "%s: invalid number of parallel jobs\n" -#~ msgstr "%s : nombre de jobs en parallèle invalide\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 "%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 "%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 "%s: out of memory\n" -#~ msgstr "%s : mémoire épuisée\n" - -#~ msgid "%s: query failed: %s" -#~ msgstr "%s : échec de la requête : %s" - -#~ msgid "%s: query was: %s\n" -#~ msgstr "%s : la requête était : %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 "(The INSERT command cannot set OIDs.)\n" -#~ msgstr "(La commande INSERT ne peut pas positionner les OID.)\n" - -#~ msgid "*** aborted because of error\n" -#~ msgstr "*** interrompu du fait d'erreurs\n" - -#~ msgid "-C and -1 are incompatible options\n" -#~ msgstr "-C et -1 sont des options incompatibles\n" - -#~ msgid "-C and -c are incompatible options\n" -#~ msgstr "-C et -c sont des options incompatibles\n" - -#~ msgid "LOCK TABLE failed for \"%s\": %s" -#~ msgstr "LOCK TABLE échoué pour la table « %s » : %s" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid "SQL command failed\n" -#~ msgstr "la commande SQL a échoué\n" - -#, c-format -#~ msgid "" -#~ "Synchronized snapshots are not supported by this server version.\n" -#~ "Run with --no-synchronized-snapshots instead if you do not need\n" -#~ "synchronized snapshots." -#~ msgstr "" -#~ "Les snapshots synchronisés ne sont pas supportés par cette version serveur.\n" -#~ "Lancez avec --no-synchronized-snapshots à la place si vous n'avez pas besoin\n" -#~ "de snapshots synchronisés." - -#~ 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" - -#, c-format -#~ msgid "" -#~ "Synchronized snapshots on standby servers are not supported by this server version.\n" -#~ "Run with --no-synchronized-snapshots instead if you do not need\n" -#~ "synchronized snapshots." -#~ msgstr "" -#~ "Les snapshots synchronisés sur les serveurs standbys ne sont pas supportés par cette version serveur.\n" -#~ "Lancez avec --no-synchronized-snapshots à la place si vous n'avez pas besoin\n" -#~ "de snapshots synchronisés." - -#~ 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" - -#, c-format -#~ msgid "The command was: %s" -#~ msgstr "La commande était : %s" - -#~ 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 "" -#~ "The program \"pg_dump\" was found by \"%s\"\n" -#~ "but was not the same version as %s.\n" -#~ "Check your installation." -#~ 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-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\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 "WARNING: could not parse reloptions array\n" -#~ msgstr "ATTENTION : n'a pas pu analyser le tableau reloptions\n" - -#~ msgid "WSAStartup failed: %d" -#~ msgstr "WSAStartup a échoué : %d" - -#~ 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" - -#~ msgid "allocating AH for %s, format %d\n" -#~ msgstr "allocation d'AH pour %s, format %d\n" - -#~ msgid "archive member too large for tar format\n" -#~ msgstr "membre de l'archive trop volumineux pour le format tar\n" - -#~ msgid "archiver" -#~ msgstr "archiveur" - -#~ msgid "archiver (db)" -#~ msgstr "programme d'archivage (db)" - -#~ msgid "attempting to ascertain archive format\n" -#~ msgstr "tentative d'identification du format de l'archive\n" - -#, c-format -#~ msgid "bogus value in proargmodes array" -#~ msgstr "valeur erronée dans le tableau proargmodes" - -#~ msgid "cannot duplicate null pointer\n" -#~ msgstr "ne peut pas dupliquer un pointeur nul\n" - -#~ msgid "cannot reopen non-seekable file\n" -#~ msgstr "ne peut pas rouvrir le fichier non cherchable\n" - -#~ msgid "cannot reopen stdin\n" -#~ msgstr "ne peut pas rouvrir stdin\n" - -#, 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)" - -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" - -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" - -#~ msgid "compress_io" -#~ msgstr "compression_io" - -#, c-format -#~ msgid "compression level must be in range 0..9" -#~ msgstr "le niveau de compression doit être compris entre 0 et 9" - -#~ msgid "compression support is disabled in this format\n" -#~ msgstr "le support de la compression est désactivé avec ce format\n" - -#~ msgid "connecting to database \"%s\" as user \"%s\"" -#~ msgstr "connexion à la base de données « %s » en tant qu'utilisateur « %s »" - -#~ msgid "connection needs password" -#~ msgstr "la connexion nécessite un mot de passe" - -#~ msgid "connection to database \"%s\" failed: %s" -#~ msgstr "la connexion à la base de données « %s » a échoué : %s" - -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %m" - -#~ msgid "could not change directory to \"%s\": %s" -#~ msgstr "n'a pas pu changer le répertoire par « %s » : %s" - -#, c-format -#~ msgid "could not close blob data file: %m" -#~ msgstr "n'a pas pu fermer le fichier de données blob : %m" - -#, c-format -#~ msgid "could not close blobs TOC file: %m" -#~ msgstr "n'a pas pu fermer le fichier TOC des blobs : %m" - -#~ 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 "could not close directory \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" - -#~ msgid "could not close large object file\n" -#~ msgstr "n'a pas pu fermer le fichier du « Large Object »\n" - -#, c-format -#~ msgid "could not close tar member: %m" -#~ msgstr "n'a pas pu fermer le membre de tar : %m" - -#~ msgid "could not connect to database \"%s\": %s" -#~ msgstr "n'a pas pu se connecter à la base de données « %s » : %s" - -#~ 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 "" -#~ "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 "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 "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" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "n'a pas pu identifier le répertoire courant : %m" - -#~ msgid "could not identify current directory: %s" -#~ msgstr "n'a pas pu identifier le répertoire courant : %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 "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 "could not open output file \"%s\" for writing\n" -#~ msgstr "n'a pas pu ouvrir le fichier de sauvegarde « %s » en écriture\n" - -#, c-format -#~ msgid "could not open temporary file" -#~ msgstr "n'a pas pu ouvrir le fichier temporaire" - -#~ 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 parse ACL (%s) for large object %u" -#~ msgstr "n'a pas pu analyser la liste ACL (%s) du « Large Object » %u" - -#, c-format -#~ msgid "could not parse extension condition array" -#~ msgstr "n'a pas pu analyser le tableau de condition de l'extension" - -#, c-format -#~ msgid "could not parse extension configuration array" -#~ msgstr "n'a pas pu analyser le tableau de configuration des extensions" - -#~ msgid "could not parse index collation name array" -#~ msgstr "n'a pas pu analyser le tableau des noms de collation de l'index" - -#~ msgid "could not parse index collation version array" -#~ msgstr "n'a pas pu analyser le tableau des versions de collation de l'index" - -#, c-format -#~ msgid "could not parse proallargtypes array" -#~ msgstr "n'a pas pu analyser le tableau proallargtypes" - -#, c-format -#~ msgid "could not parse proargmodes array" -#~ msgstr "n'a pas pu analyser le tableau proargmodes" - -#, c-format -#~ msgid "could not parse proargnames array" -#~ msgstr "n'a pas pu analyser le tableau proargnames" - -#, c-format -#~ msgid "could not parse proconfig array" -#~ msgstr "n'a pas pu analyser le tableau proconfig" - -#, c-format -#~ msgid "could not parse subpublications array" -#~ msgstr "n'a pas pu analyser le tableau de sous-publications" - -#~ msgid "could not parse version string \"%s\"\n" -#~ msgstr "n'a pas pu analyser la chaîne de version « %s »\n" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "n'a pas pu lire le binaire « %s »" - -#~ msgid "could not read directory \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le répertoire « %s » : %s\n" - -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" - -#~ msgid "could not reconnect to database" -#~ msgstr "n'a pas pu se reconnecter à la base de données" - -#~ msgid "could not reconnect to database: %s" -#~ msgstr "n'a pas pu se reconnecter à la base de données : %s" - -#~ msgid "could not set default_with_oids: %s" -#~ msgstr "n'a pas pu configurer default_with_oids : %s" - -#~ msgid "could not write byte\n" -#~ msgstr "n'a pas pu écrire l'octet\n" - -#~ msgid "could not write byte: %s\n" -#~ msgstr "n'a pas pu écrire un octet : %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 "could not write to custom output routine\n" -#~ msgstr "n'a pas pu écrire vers la routine de sauvegarde personnalisée\n" - -#~ 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)" - -#~ 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 "entering restore_toc_entries_parallel\n" -#~ msgstr "entrée dans restore_toc_entries_parallel\n" - -#~ msgid "entering restore_toc_entries_postfork\n" -#~ msgstr "entrée dans restore_toc_entries_prefork\n" - -#~ msgid "entering restore_toc_entries_prefork\n" -#~ msgstr "entrée dans restore_toc_entries_prefork\n" - -#~ msgid "error during backup\n" -#~ msgstr "erreur lors de la sauvegarde\n" - -#~ msgid "error in ListenToWorkers(): %s\n" -#~ msgstr "erreur dans ListenToWorkers(): %s\n" - -#~ msgid "error processing a parallel work item\n" -#~ msgstr "erreur durant le traitement en parallèle d'un item\n" - -#, c-format -#~ msgid "extra_float_digits must be in range -15..3" -#~ msgstr "extra_float_digits doit être dans l'intervalle -15 à 3" - -#~ msgid "failed to connect to database\n" -#~ msgstr "n'a pas pu se connecter à la base de données\n" - -#~ msgid "failed to reconnect to database\n" -#~ msgstr "la reconnexion à la base de données a échoué\n" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ msgid "file archiver" -#~ msgstr "programme d'archivage de fichiers" - -#, c-format -#~ msgid "finding check constraints for table \"%s.%s\"" -#~ msgstr "recherche des contraintes de vérification pour la table « %s.%s »" - -#, c-format -#~ msgid "finding default expressions of table \"%s.%s\"" -#~ msgstr "recherche des expressions par défaut de la table « %s.%s »" - -#, c-format -#~ msgid "finding the columns and types of table \"%s.%s\"" -#~ msgstr "recherche des colonnes et types de la table « %s.%s »" - -#~ 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 "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 "ftell mismatch with expected position -- ftell used" -#~ msgstr "ftell ne correspond pas à la position attendue -- ftell utilisé" - -#~ 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 "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 "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 "invalid TOASTCOMPRESSION item: %s" -#~ msgstr "élément TOASTCOMPRESSION invalide : %s" - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "binaire « %s » invalide" - -#, c-format -#~ msgid "invalid compression code: %d" -#~ msgstr "code de compression invalide : %d" - -#, c-format -#~ msgid "invalid number of parallel jobs" -#~ msgstr "nombre de jobs parallèles invalide" - -#, c-format -#~ msgid "maximum number of parallel jobs is %d" -#~ msgstr "le nombre maximum de jobs en parallèle est %d" - -#~ 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 "mismatched number of collation names and versions for index" -#~ msgstr "nombre différent de noms et versions de collation pour l'index" - -#~ 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 "missing pg_database entry for this database\n" -#~ msgstr "entrée pg_database manquante pour cette base de données\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 "no item ready\n" -#~ msgstr "aucun élément prêt\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" - -#, c-format -#~ msgid "not built with zlib support" -#~ msgstr "pas construit avec le support de zlib" - -#~ msgid "now at file position %s\n" -#~ msgstr "maintenant en position %s du fichier\n" - -#~ msgid "option --index-collation-versions-unknown only works in binary upgrade mode" -#~ msgstr "l'option --index-collation-versions-unknown fonctionne seulement dans le mode de mise à jour binaire" - -#~ 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" - -#, 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" - -#, 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" - -#, c-format -#~ msgid "owner of function \"%s\" appears to be invalid" -#~ msgstr "le propriétaire de la fonction « %s » semble être invalide" - -#, c-format -#~ msgid "owner of operator \"%s\" appears to be invalid" -#~ msgstr "le propriétaire de l'opérateur « %s » semble être invalide" - -#, 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" - -#, 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" - -#, c-format -#~ msgid "owner of publication \"%s\" appears to be invalid" -#~ msgstr "le propriétaire de la publication « %s » semble être invalide" - -#, c-format -#~ msgid "owner of schema \"%s\" appears to be invalid" -#~ msgstr "le propriétaire du schéma « %s » semble être invalide" - -#, c-format -#~ msgid "owner of subscription \"%s\" appears to be invalid" -#~ msgstr "le propriétaire de la souscription « %s » semble être invalide" - -#, c-format -#~ msgid "owner of table \"%s\" appears to be invalid" -#~ msgstr "le propriétaire de la table « %s » semble être invalide" - -#~ 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: %m" -#~ msgstr "échec de pclose : %m" - -#~ 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 "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 "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 "query returned no rows: %s\n" -#~ msgstr "la requête n'a renvoyé aucune ligne : %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 "query was: %s\n" -#~ msgstr "la requête était : %s\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 "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 "reading extended statistics for table \"%s.%s\"\n" -#~ msgstr "lecture des statistiques étendues pour la table « %s.%s »\n" - -#, 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 »" - -#, c-format -#~ msgid "reading indexes for table \"%s.%s\"" -#~ msgstr "lecture des index de la table « %s.%s »" - -#~ msgid "reading policies for table \"%s.%s\"" -#~ msgstr "lecture des politiques pour la table « %s.%s »" - -#~ 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 »" - -#, c-format -#~ msgid "reading triggers for table \"%s.%s\"" -#~ msgstr "lecture des triggers pour la table « %s.%s »" - -#~ msgid "reconnection to database \"%s\" failed: %s" -#~ msgstr "reconnexion à la base de données « %s » échouée : %s" - -#~ msgid "reducing dependencies for %d\n" -#~ msgstr "réduction des dépendances pour %d\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" - -#, c-format -#~ msgid "requested compression not available in this installation -- archive will be uncompressed" -#~ msgstr "la compression requise n'est pas disponible avec cette installation -- l'archive ne sera pas compressée" - -#~ msgid "restoring large object OID %u\n" -#~ msgstr "restauration du « Large Object » d'OID %u\n" - -#, c-format -#~ msgid "rows-per-insert must be in range %d..%d" -#~ msgstr "le nombre de lignes par insertion doit être compris entre %d et %d" - -#~ msgid "saving default_toast_compression = %s" -#~ msgstr "sauvegarde de default_toast_compression = %s" - -#~ msgid "saving large object properties\n" -#~ msgstr "sauvegarde des propriétés des « Large Objects »\n" - -#~ msgid "schema with OID %u does not exist\n" -#~ msgstr "le schéma d'OID %u n'existe pas\n" - -#~ msgid "select() failed: %m" -#~ msgstr "échec de select() : %m" - -#~ 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 "worker is terminating\n" -#~ msgstr "le worker est en cours d'arrêt\n" - -#~ msgid "worker process crashed: status %d\n" -#~ msgstr "crash du processus worker : statut %d\n" diff --git a/src/bin/pg_dump/po/ja.po b/src/bin/pg_dump/po/ja.po index 5cb951737212d..0b0dbacaffa92 100644 --- a/src/bin/pg_dump/po/ja.po +++ b/src/bin/pg_dump/po/ja.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_dump (PostgreSQL 17)\n" +"Project-Id-Version: pg_dump (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-21 09:58+0900\n" -"PO-Revision-Date: 2024-06-21 10:18+0900\n" +"POT-Creation-Date: 2025-04-14 09:41+0900\n" +"PO-Revision-Date: 2025-04-14 10:24+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -22,29 +22,29 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " #: ../../common/compression.c:132 ../../common/compression.c:141 #: ../../common/compression.c:150 compress_gzip.c:413 compress_gzip.c:420 -#: compress_io.c:109 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 +#: compress_io.c:108 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 #: compress_zstd.c:31 #, c-format msgid "this build does not support compression with %s" @@ -114,27 +114,27 @@ msgstr "実行する\"%s\"がありませんでした" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "パス\"%s\"を絶対パス形式に変換できませんでした: %m" -#: ../../common/exec.c:382 +#: ../../common/exec.c:363 #, c-format msgid "could not execute command \"%s\": %m" msgstr "コマンド\"%s\"を実行できませんでした: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "コマンド\"%s\"から読み取れませんでした: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "コマンド\"%s\"がデータを返却しませんでした" -#: ../../common/exec.c:424 parallel.c:1609 +#: ../../common/exec.c:405 parallel.c:1621 #, c-format msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 msgid "out of memory" msgstr "メモリ不足です" @@ -149,45 +149,44 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null ポインタを複製できません(内部エラー)。\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 dumputils.c:905 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 -#: pg_backup_directory.c:182 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -237,242 +236,242 @@ msgstr "%sは%d..%dの範囲でなければなりません" msgid "unrecognized sync method: %s" msgstr "認識できない同期方式: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: common.c:135 +#: common.c:111 #, c-format msgid "reading extensions" msgstr "機能拡張を読み込んでいます" -#: common.c:138 +#: common.c:114 #, c-format msgid "identifying extension members" msgstr "機能拡張の構成要素を特定しています" -#: common.c:141 +#: common.c:117 #, c-format msgid "reading schemas" msgstr "スキーマを読み込んでいます" -#: common.c:150 +#: common.c:126 #, c-format msgid "reading user-defined tables" msgstr "ユーザー定義テーブルを読み込んでいます" -#: common.c:155 +#: common.c:131 #, c-format msgid "reading user-defined functions" msgstr "ユーザー定義関数を読み込んでいます" -#: common.c:159 +#: common.c:135 #, c-format msgid "reading user-defined types" msgstr "ユーザー定義型を読み込んでいます" -#: common.c:163 +#: common.c:139 #, c-format msgid "reading procedural languages" msgstr "手続き言語を読み込んでいます" -#: common.c:166 +#: common.c:142 #, c-format msgid "reading user-defined aggregate functions" msgstr "ユーザー定義集約関数を読み込んでいます" -#: common.c:169 +#: common.c:145 #, c-format msgid "reading user-defined operators" msgstr "ユーザー定義演算子を読み込んでいます" -#: common.c:172 +#: common.c:148 #, c-format msgid "reading user-defined access methods" msgstr "ユーザー定義アクセスメソッドを読み込んでいます" -#: common.c:175 +#: common.c:151 #, c-format msgid "reading user-defined operator classes" msgstr "ユーザー定義演算子クラスを読み込んでいます" -#: common.c:178 +#: common.c:154 #, c-format msgid "reading user-defined operator families" msgstr "ユーザー定義演算子族を読み込んでいます" -#: common.c:181 +#: common.c:157 #, c-format msgid "reading user-defined text search parsers" msgstr "ユーザー定義のテキスト検索パーサを読み込んでいます" -#: common.c:184 +#: common.c:160 #, c-format msgid "reading user-defined text search templates" msgstr "ユーザー定義のテキスト検索テンプレートを読み込んでいます" -#: common.c:187 +#: common.c:163 #, c-format msgid "reading user-defined text search dictionaries" msgstr "ユーザー定義のテキスト検索辞書を読み込んでいます" -#: common.c:190 +#: common.c:166 #, c-format msgid "reading user-defined text search configurations" msgstr "ユーザー定義のテキスト検索設定を読み込んでいます" -#: common.c:193 +#: common.c:169 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "ユーザー定義の外部データラッパーを読み込んでいます" -#: common.c:196 +#: common.c:172 #, c-format msgid "reading user-defined foreign servers" msgstr "ユーザー定義の外部サーバーを読み込んでいます" -#: common.c:199 +#: common.c:175 #, c-format msgid "reading default privileges" msgstr "デフォルト権限設定を読み込んでいます" -#: common.c:202 +#: common.c:178 #, c-format msgid "reading user-defined collations" msgstr "ユーザー定義の照合順序を読み込んでいます" -#: common.c:205 +#: common.c:181 #, c-format msgid "reading user-defined conversions" msgstr "ユーザー定義の変換を読み込んでいます" -#: common.c:208 +#: common.c:184 #, c-format msgid "reading type casts" msgstr "型キャストを読み込んでいます" -#: common.c:211 +#: common.c:187 #, c-format msgid "reading transforms" msgstr "変換を読み込んでいます" -#: common.c:214 +#: common.c:190 #, c-format msgid "reading table inheritance information" msgstr "テーブル継承情報を読み込んでいます" -#: common.c:217 +#: common.c:193 #, c-format msgid "reading event triggers" msgstr "イベントトリガを読み込んでいます" -#: common.c:221 +#: common.c:197 #, c-format msgid "finding extension tables" msgstr "機能拡張構成テーブルを探しています" -#: common.c:225 +#: common.c:201 #, c-format msgid "finding inheritance relationships" msgstr "継承関係を検索しています" -#: common.c:228 +#: common.c:204 #, c-format msgid "reading column info for interesting tables" msgstr "対象テーブルの列情報を読み込んでいます" -#: common.c:231 +#: common.c:207 #, c-format msgid "flagging inherited columns in subtables" msgstr "子テーブルの継承列にフラグを設定しています" -#: common.c:234 +#: common.c:210 #, c-format msgid "reading partitioning data" msgstr "パーティション情報を読み込んでいます" -#: common.c:237 +#: common.c:213 #, c-format msgid "reading indexes" msgstr "インデックスを読み込んでいます" -#: common.c:240 +#: common.c:216 #, c-format msgid "flagging indexes in partitioned tables" msgstr "パーティション親テーブルのインデックスにフラグを設定しています" -#: common.c:243 +#: common.c:219 #, c-format msgid "reading extended statistics" msgstr "拡張統計情報を読み込んでいます" -#: common.c:246 +#: common.c:222 #, c-format msgid "reading constraints" msgstr "制約を読み込んでいます" -#: common.c:249 +#: common.c:225 #, c-format msgid "reading triggers" msgstr "トリガを読み込んでいます" -#: common.c:252 +#: common.c:228 #, c-format msgid "reading rewrite rules" msgstr "書き換えルールを読み込んでいます" -#: common.c:255 +#: common.c:231 #, c-format msgid "reading policies" msgstr "ポリシを読み込んでいます" -#: common.c:258 +#: common.c:234 #, c-format msgid "reading publications" msgstr "パブリケーションを読み込んでいます" -#: common.c:261 +#: common.c:237 #, c-format msgid "reading publication membership of tables" msgstr "テーブルのパブリケーションへの所属を読み取っています" -#: common.c:264 +#: common.c:240 #, c-format msgid "reading publication membership of schemas" msgstr "スキーマのパブリケーションへの所属を読み取っています" -#: common.c:267 +#: common.c:243 #, c-format msgid "reading subscriptions" msgstr "サブスクリプションを読み込んでいます" -#: common.c:270 +#: common.c:246 #, c-format msgid "reading subscription membership of tables" msgstr "テーブルのサブスクリプションへの所属を読み取っています" -#: common.c:333 +#: common.c:309 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "健全性検査に失敗しました、テーブル\"%2$s\"(OID %3$u)の親のOID %1$uがありません" -#: common.c:375 +#: common.c:351 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "テーブル\"%2$s\"用の親テーブルの数%1$dが不正です" -#: common.c:1098 +#: common.c:1087 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "数値配列\"%s\"のパースに失敗しました: 要素が多すぎます" -#: common.c:1110 +#: common.c:1099 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "数値配列\"%s\"のパースに失敗しました: 数値に不正な文字が含まれています" @@ -508,13 +507,13 @@ msgid "could not read from input file: %s" msgstr "入力ファイルから読み込めませんでした: %s" #: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 -#: compress_zstd.c:373 pg_backup_custom.c:651 +#: compress_zstd.c:374 pg_backup_custom.c:650 #, c-format msgid "could not read from input file: %m" msgstr "入力ファイルから読み込めませんでした: %m" #: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 -#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: compress_zstd.c:372 pg_backup_custom.c:648 pg_backup_directory.c:533 #: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" @@ -555,98 +554,163 @@ msgstr "展開を終了できませんでした: %s" msgid "could not set compression parameter \"%s\": %s" msgstr "圧縮パラメータ\"%s\"を設定できませんでした: %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:232 compress_zstd.c:491 +#: compress_zstd.c:499 #, c-format msgid "could not initialize compression library" msgstr "圧縮ライブラリを初期化できませんでした" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:195 compress_zstd.c:309 #, c-format msgid "could not decompress data: %s" msgstr "データを伸張できませんでした: %s" -#: compress_zstd.c:501 +#: compress_zstd.c:502 #, c-format msgid "unhandled mode \"%s\"" msgstr "処理されないモード \"%s\"" -#: filter.c:49 +#: connectdb.c:56 connectdb.c:164 pg_backup_db.c:126 +msgid "Password: " +msgstr "パスワード: " + +#: connectdb.c:83 connectdb.c:173 pg_backup_db.c:203 pg_dump.c:925 +#: pg_dump_sort.c:1251 pg_dump_sort.c:1271 +#, c-format +msgid "%s" +msgstr "%s" + +#: connectdb.c:156 pg_dumpall.c:548 pg_restore.c:534 +#, c-format +msgid "could not connect to database \"%s\"" +msgstr "データベース\"%s\"へ接続できませんでした" + +#: connectdb.c:200 +#, c-format +msgid "could not get server version" +msgstr "サーバーバージョンを取得できませんでした" + +#: connectdb.c:204 +#, c-format +msgid "could not parse server version \"%s\"" +msgstr "サーバーバージョン\"%s\"をパースできませんでした" + +#: connectdb.c:221 pg_backup_db.c:52 +#, c-format +msgid "aborting because of server version mismatch" +msgstr "サーバーバージョンの不一致のため処理を中断します" + +#: connectdb.c:222 pg_backup_db.c:53 +#, c-format +msgid "server version: %s; %s version: %s" +msgstr "サーバーバージョン: %s、%s バージョン: %s" + +#: connectdb.c:281 pg_dumpall.c:1859 +#, c-format +msgid "executing %s" +msgstr "%s を実行しています" + +#: connectdb.c:287 pg_backup_db.c:210 pg_dumpall.c:1865 +#, c-format +msgid "query failed: %s" +msgstr "問い合わせが失敗しました: %s" + +#: connectdb.c:288 pg_backup_db.c:212 pg_dumpall.c:1866 +#, c-format +msgid "Query was: %s" +msgstr "問い合わせ: %s" + +#: dumputils.c:910 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" + +#: dumputils.c:915 +#, c-format +msgid "could not change permissions of directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"の権限を変更できませんでした: %m" + +#: dumputils.c:920 +#, c-format +msgid "directory \"%s\" is not empty" +msgstr "ディレクトリ\"%s\"は空です" + +#: filter.c:48 #, c-format msgid "could not open filter file \"%s\": %m" msgstr "フィルターファイル\"%s\"をオープンできませんでした: %m" -#: filter.c:72 +#: filter.c:71 #, c-format msgid "could not close filter file \"%s\": %m" msgstr "フィルターファイル\"%s\"をクローズできませんでした: %m" -#: filter.c:165 +#: filter.c:164 #, c-format msgid "invalid format in filter read from standard input on line %d: %s" msgstr "標準入力からのフィルターの読み取り中%d行目に無効なフォーマット: %s" -#: filter.c:168 +#: filter.c:167 #, c-format msgid "invalid format in filter read from file \"%s\" on line %d: %s" msgstr "ファイル\"%s\"からのフィルターの読み取り中%d行目に無効なフォーマット: %s" -#: filter.c:241 filter.c:468 +#: filter.c:240 filter.c:467 #, c-format msgid "could not read from filter file \"%s\": %m" msgstr "フィルターファイル\"%s\"から読み取れませんでした: %m" -#: filter.c:244 +#: filter.c:243 msgid "unexpected end of file" msgstr "想定外のファイル終端です" -#: filter.c:311 +#: filter.c:310 msgid "missing object name pattern" msgstr "オブジェクト名のパターンが指定されていません" -#: filter.c:422 +#: filter.c:421 msgid "no filter command found (expected \"include\" or \"exclude\")" msgstr "フィルタコマンドが見つかりません (\"include\" または\"exclude\"が指定可能です)" -#: filter.c:433 +#: filter.c:432 msgid "invalid filter command (expected \"include\" or \"exclude\")" msgstr "不正なフィルターコマンド (\"include\"または\"exclude\"が指定可能です)" -#: filter.c:440 +#: filter.c:439 msgid "missing filter object type" msgstr "フィルターオブジェクトのタイプが指定されてません" -#: filter.c:447 +#: filter.c:446 #, c-format msgid "unsupported filter object type: \"%.*s\"" msgstr "サポートされないフィルターオブジェクトタイプ: \"%.*s\"" -#: parallel.c:251 +#: parallel.c:253 #, c-format msgid "%s() failed: error code %d" msgstr "%s()が失敗しました: エラーコード %d" -#: parallel.c:959 +#: parallel.c:971 #, c-format msgid "could not create communication channels: %m" msgstr "通信チャンネルを作成できませんでした: %m" -#: parallel.c:1016 +#: parallel.c:1028 #, c-format msgid "could not create worker process: %m" msgstr "ワーカープロセスを作成できませんでした: %m" -#: parallel.c:1146 +#: parallel.c:1158 #, c-format msgid "unrecognized command received from leader: \"%s\"" msgstr "リーダーから認識不能のコマンドを受信しました: \"%s\"" -#: parallel.c:1189 parallel.c:1427 +#: parallel.c:1201 parallel.c:1439 #, c-format msgid "invalid message received from worker: \"%s\"" msgstr "ワーカーから不正なメッセージを受信しました: \"%s\"" -#: parallel.c:1321 +#: parallel.c:1333 #, c-format msgid "" "could not obtain lock on relation \"%s\"\n" @@ -655,724 +719,685 @@ msgstr "" "リレーション\"%s\"のロックを獲得できませんでした。\n" "通常これは、pg_dumpの親プロセスが初期のACCESS SHAREロックを獲得した後にだれかがテーブルに対してACCESS EXCLUSIVEロックを要求したことを意味しています。" -#: parallel.c:1410 +#: parallel.c:1422 #, c-format msgid "a worker process died unexpectedly" msgstr "ワーカープロセスが突然終了しました" -#: parallel.c:1532 parallel.c:1650 +#: parallel.c:1544 parallel.c:1662 #, c-format msgid "could not write to the communication channel: %m" msgstr "通信チャンネルに書き込めませんでした: %m" -#: parallel.c:1734 +#: parallel.c:1746 #, c-format msgid "pgpipe: could not create socket: error code %d" msgstr "pgpipe: ソケットを作成できませんでした: エラーコード %d" -#: parallel.c:1745 +#: parallel.c:1757 #, c-format msgid "pgpipe: could not bind: error code %d" msgstr "pgpipe: バインドできませんでした: エラーコード %d" -#: parallel.c:1752 +#: parallel.c:1764 #, c-format msgid "pgpipe: could not listen: error code %d" msgstr "pgpipe: リッスンできませんでした: エラーコード %d" -#: parallel.c:1759 +#: parallel.c:1771 #, c-format msgid "pgpipe: %s() failed: error code %d" msgstr "pgpipe: %s()が失敗しました: エラーコード %d" -#: parallel.c:1770 +#: parallel.c:1782 #, c-format msgid "pgpipe: could not create second socket: error code %d" msgstr "pgpipe: 第二ソケットを作成できませんでした: エラーコード %d" -#: parallel.c:1779 +#: parallel.c:1791 #, c-format msgid "pgpipe: could not connect socket: error code %d" msgstr "pgpipe: ソケットを接続できませんでした: エラーコード %d" -#: parallel.c:1788 +#: parallel.c:1800 #, c-format msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: 接続を受け付けられませんでした: エラーコード %d" -#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 +#: pg_backup_archiver.c:269 pg_backup_archiver.c:1732 #, c-format msgid "could not close output file: %m" msgstr "出力ファイルをクローズできませんでした: %m" -#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 +#: pg_backup_archiver.c:313 pg_backup_archiver.c:317 #, c-format msgid "archive items not in correct section order" msgstr "アーカイブ項目が正しいセクション順ではありません" -#: pg_backup_archiver.c:315 +#: pg_backup_archiver.c:323 #, c-format msgid "unexpected section code %d" msgstr "想定外のセクションコード %d" -#: pg_backup_archiver.c:352 +#: pg_backup_archiver.c:365 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "このアーカイブファイル形式での並列リストアはサポートしていません" -#: pg_backup_archiver.c:356 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "8.0 より古い pg_dump で作られたアーカイブでの並列リストアはサポートしていません" -#: pg_backup_archiver.c:377 +#: pg_backup_archiver.c:390 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "圧縮アーカイブから復元できませんでした(%s)" -#: pg_backup_archiver.c:397 +#: pg_backup_archiver.c:410 #, c-format msgid "connecting to database for restore" msgstr "リストアのためデータベースに接続しています" -#: pg_backup_archiver.c:399 +#: pg_backup_archiver.c:412 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "1.3より古いアーカイブではデータベースへの直接接続はサポートされていません" -#: pg_backup_archiver.c:442 +#: pg_backup_archiver.c:455 #, c-format -msgid "implied data-only restore" -msgstr "暗黙的にデータのみのリストアを行います" +msgid "implied no-schema restore" +msgstr "暗黙的にスキーマなしのリストアを行います" -#: pg_backup_archiver.c:510 +#: pg_backup_archiver.c:523 #, c-format msgid "dropping %s %s" msgstr "%s %sを削除しています" -#: pg_backup_archiver.c:642 +#: pg_backup_archiver.c:655 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "文\"%s\"中に IF EXISTS を挿入すべき場所が見つかりませでした" -#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 +#: pg_backup_archiver.c:841 pg_backup_archiver.c:843 #, c-format msgid "warning from original dump file: %s" msgstr "オリジナルのダンプファイルからの警告: %s" -#: pg_backup_archiver.c:864 +#: pg_backup_archiver.c:877 #, c-format msgid "creating %s \"%s.%s\"" msgstr "%s \"%s.%s\"を作成しています" -#: pg_backup_archiver.c:867 +#: pg_backup_archiver.c:880 #, c-format msgid "creating %s \"%s\"" msgstr "%s \"%s\"を作成しています" -#: pg_backup_archiver.c:917 +#: pg_backup_archiver.c:930 #, c-format msgid "connecting to new database \"%s\"" msgstr "新しいデータベース\"%s\"に接続しています" -#: pg_backup_archiver.c:944 +#: pg_backup_archiver.c:957 #, c-format msgid "processing %s" msgstr "%sを処理しています" -#: pg_backup_archiver.c:966 +#: pg_backup_archiver.c:979 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "テーブル\"%s.%s\"のデータを処理しています" -#: pg_backup_archiver.c:1036 +#: pg_backup_archiver.c:1049 #, c-format msgid "executing %s %s" msgstr "%s %sを実行しています" -#: pg_backup_archiver.c:1096 +#: pg_backup_archiver.c:1118 #, c-format msgid "disabling triggers for %s" msgstr "%sのトリガを無効にしています" -#: pg_backup_archiver.c:1122 +#: pg_backup_archiver.c:1144 #, c-format msgid "enabling triggers for %s" msgstr "%sのトリガを有効にしています" -#: pg_backup_archiver.c:1187 +#: pg_backup_archiver.c:1209 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "内部エラー -- WriteDataはDataDumperルーチンのコンテクスト外では呼び出せません" -#: pg_backup_archiver.c:1379 +#: pg_backup_archiver.c:1404 #, c-format msgid "large-object output not supported in chosen format" msgstr "選択した形式ではラージオブジェクト出力をサポートしていません" -#: pg_backup_archiver.c:1442 +#: pg_backup_archiver.c:1467 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "%d個のラージオブジェクトをリストアしました" -#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 +#: pg_backup_archiver.c:1494 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "OID %uのラージオブジェクトをリストアしています" -#: pg_backup_archiver.c:1481 +#: pg_backup_archiver.c:1506 #, c-format msgid "could not create large object %u: %s" msgstr "ラージオブジェクト %u を作成できませんでした: %s" -#: pg_backup_archiver.c:1486 pg_dump.c:3863 +#: pg_backup_archiver.c:1511 pg_dump.c:4063 #, c-format msgid "could not open large object %u: %s" msgstr "ラージオブジェクト %u をオープンできませんでした: %s" -#: pg_backup_archiver.c:1542 +#: pg_backup_archiver.c:1567 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "TOCファイル\"%s\"をオープンできませんでした: %m" -#: pg_backup_archiver.c:1570 +#: pg_backup_archiver.c:1595 #, c-format msgid "line ignored: %s" msgstr "行を無視しました: %s" -#: pg_backup_archiver.c:1577 pg_backup_db.c:609 +#: pg_backup_archiver.c:1602 pg_backup_db.c:548 #, c-format msgid "could not find entry for ID %d" msgstr "ID %dのエントリがありませんでした" -#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 -#: pg_backup_directory.c:613 +#: pg_backup_archiver.c:1625 pg_backup_directory.c:187 +#: pg_backup_directory.c:581 #, c-format msgid "could not close TOC file: %m" msgstr "TOCファイルをクローズできませんでした: %m" -#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 -#: pg_backup_directory.c:600 pg_backup_directory.c:666 -#: pg_backup_directory.c:684 pg_dumpall.c:506 +#: pg_backup_archiver.c:1713 pg_backup_custom.c:151 pg_backup_directory.c:301 +#: pg_backup_directory.c:568 pg_backup_directory.c:634 +#: pg_backup_directory.c:652 pg_dumpall.c:530 #, c-format msgid "could not open output file \"%s\": %m" msgstr "出力ファイル\"%s\"をオープンできませんでした: %m" -#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 +#: pg_backup_archiver.c:1715 pg_backup_custom.c:157 #, c-format msgid "could not open output file: %m" msgstr "出力ファイルをオープンできませんでした: %m" -#: pg_backup_archiver.c:1772 +#: pg_backup_archiver.c:1798 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "ラージオブジェクトデータを%zuバイト書き出しました(結果は%d)" -#: pg_backup_archiver.c:1778 +#: pg_backup_archiver.c:1804 #, c-format msgid "could not write to large object: %s" msgstr "ラージオブジェクトに書き込めませんでした: %s" -#: pg_backup_archiver.c:1868 +#: pg_backup_archiver.c:1894 #, c-format msgid "while INITIALIZING:" msgstr "初期化中:" -#: pg_backup_archiver.c:1873 +#: pg_backup_archiver.c:1899 #, c-format msgid "while PROCESSING TOC:" msgstr "TOC処理中:" -#: pg_backup_archiver.c:1878 +#: pg_backup_archiver.c:1904 #, c-format msgid "while FINALIZING:" msgstr "終了処理中:" -#: pg_backup_archiver.c:1883 +#: pg_backup_archiver.c:1909 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "TOCエントリ%d; %u %u %s %s %s から" -#: pg_backup_archiver.c:1959 +#: pg_backup_archiver.c:1985 #, c-format msgid "bad dumpId" msgstr "不正なdumpId" -#: pg_backup_archiver.c:1980 +#: pg_backup_archiver.c:2006 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "TABLE DATA項目に対する不正なテーブルdumpId" -#: pg_backup_archiver.c:2072 +#: pg_backup_archiver.c:2098 #, c-format msgid "unexpected data offset flag %d" msgstr "想定外のデータオフセットフラグ %d" -#: pg_backup_archiver.c:2085 +#: pg_backup_archiver.c:2111 #, c-format msgid "file offset in dump file is too large" msgstr "ダンプファイルのファイルオフセットが大きすぎます" -#: pg_backup_archiver.c:2196 +#: pg_backup_archiver.c:2222 pg_restore.c:838 #, c-format msgid "directory name too long: \"%s\"" msgstr "ディレクトリ名が長すぎます: \"%s\"" -#: pg_backup_archiver.c:2246 +#: pg_backup_archiver.c:2272 #, 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:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 -#: pg_backup_directory.c:204 pg_backup_directory.c:396 +#: pg_backup_archiver.c:2280 pg_backup_custom.c:168 pg_backup_custom.c:813 +#: pg_backup_directory.c:172 pg_backup_directory.c:364 #, c-format msgid "could not open input file \"%s\": %m" msgstr "入力ファイル\"%s\"をオープンできませんでした: %m" -#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 +#: pg_backup_archiver.c:2287 pg_backup_custom.c:174 #, c-format msgid "could not open input file: %m" msgstr "入力ファイルをオープンできませんでした: %m" -#: pg_backup_archiver.c:2267 +#: pg_backup_archiver.c:2293 #, c-format msgid "could not read input file: %m" msgstr "入力ファイルを読み込めませんでした: %m" -#: pg_backup_archiver.c:2269 +#: pg_backup_archiver.c:2295 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "入力ファイルが小さすぎます(読み取り%lu、想定は 5)" -#: pg_backup_archiver.c:2301 +#: pg_backup_archiver.c:2327 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "入力ファイルがテキスト形式のダンプのようです。psqlを使用してください。" -#: pg_backup_archiver.c:2307 +#: pg_backup_archiver.c:2333 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "入力ファイルが有効なアーカイブではないようです(小さすぎる?)" -#: pg_backup_archiver.c:2313 +#: pg_backup_archiver.c:2339 #, c-format msgid "input file does not appear to be a valid archive" msgstr "入力ファイルが有効なアーカイブではないようです" -#: pg_backup_archiver.c:2322 +#: pg_backup_archiver.c:2348 #, c-format msgid "could not close input file: %m" msgstr "入力ファイルをクローズできませんでした: %m" -#: pg_backup_archiver.c:2401 +#: pg_backup_archiver.c:2427 #, c-format msgid "could not open stdout for appending: %m" msgstr "標準出力を追記用にオープンできませんでした: %m" -#: pg_backup_archiver.c:2446 +#: pg_backup_archiver.c:2472 #, c-format msgid "unrecognized file format \"%d\"" msgstr "認識不能のファイル形式\"%d\"" -#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4625 +#: pg_backup_archiver.c:2553 pg_backup_archiver.c:4774 #, c-format msgid "finished item %d %s %s" msgstr "項目 %d %s %s の処理が完了" -#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4638 +#: pg_backup_archiver.c:2557 pg_backup_archiver.c:4787 #, c-format msgid "worker process failed: exit code %d" msgstr "ワーカープロセスの処理失敗: 終了コード %d" -#: pg_backup_archiver.c:2653 +#: pg_backup_archiver.c:2655 +#, c-format +msgid "unexpected TOC entry in WriteToc(): %d %s %s" +msgstr "WriteToc()で想定外のTOCエントリ: %d %s %s" + +#: pg_backup_archiver.c:2659 pg_backup_custom.c:440 pg_backup_custom.c:506 +#: pg_backup_custom.c:635 pg_backup_custom.c:871 pg_backup_tar.c:1029 +#: pg_backup_tar.c:1034 +#, c-format +msgid "error during file seek: %m" +msgstr "ファイルシーク中にエラーがありました: %m" + +#: pg_backup_archiver.c:2717 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "エントリID%dは範囲外です -- おそらくTOCの破損です" -#: pg_backup_archiver.c:2736 +#: pg_backup_archiver.c:2800 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "WITH OIDSと定義されたテーブルのリストアは今後サポートされません" -#: pg_backup_archiver.c:2818 +#: pg_backup_archiver.c:2882 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "認識不能のエンコーディング\"%s\"" -#: pg_backup_archiver.c:2823 +#: pg_backup_archiver.c:2888 #, c-format msgid "invalid ENCODING item: %s" msgstr "不正なENCODING項目: %s" -#: pg_backup_archiver.c:2841 +#: pg_backup_archiver.c:2906 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "不正なSTDSTRINGS項目: %s" -#: pg_backup_archiver.c:2866 +#: pg_backup_archiver.c:2931 #, c-format msgid "schema \"%s\" not found" msgstr "スキーマ \"%s\"が見つかりません" -#: pg_backup_archiver.c:2873 +#: pg_backup_archiver.c:2938 #, c-format msgid "table \"%s\" not found" msgstr "テーブル\"%s\"が見つかりません" -#: pg_backup_archiver.c:2880 +#: pg_backup_archiver.c:2945 #, c-format msgid "index \"%s\" not found" msgstr "インデックス\"%s\"が見つかりません" -#: pg_backup_archiver.c:2887 +#: pg_backup_archiver.c:2952 #, c-format msgid "function \"%s\" not found" msgstr "関数\"%s\"が見つかりません" -#: pg_backup_archiver.c:2894 +#: pg_backup_archiver.c:2959 #, c-format msgid "trigger \"%s\" not found" msgstr "トリガ\"%s\"が見つかりません" -#: pg_backup_archiver.c:3325 +#: pg_backup_archiver.c:3420 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "セッションユーザーを\"%s\"に設定できませんでした: %s" -#: pg_backup_archiver.c:3457 +#: pg_backup_archiver.c:3552 #, c-format msgid "could not set \"search_path\" to \"%s\": %s" msgstr "\"search_path\"を\"%s\"に設定できませんでした: %s" -#: pg_backup_archiver.c:3518 +#: pg_backup_archiver.c:3613 #, c-format msgid "could not set \"default_tablespace\" to %s: %s" msgstr "\"default_tablespace\"を\"%s\"に設定できませんでした: %s" -#: pg_backup_archiver.c:3567 +#: pg_backup_archiver.c:3662 #, c-format msgid "could not set \"default_table_access_method\": %s" msgstr "\"default_table_access_method\"を設定できませんでした: %s" -#: pg_backup_archiver.c:3616 +#: pg_backup_archiver.c:3711 #, c-format msgid "could not alter table access method: %s" msgstr "テーブルアクセスメソッドを変更できませんでした: %s" -#: pg_backup_archiver.c:3717 +#: pg_backup_archiver.c:3812 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "オブジェクトタイプ%sに対する所有者の設定方法がわかりません" -#: pg_backup_archiver.c:3982 +#: pg_backup_archiver.c:3947 +#, c-format +msgid "unexpected TOC entry in _printTocEntry(): %d %s %s" +msgstr "_printTocEntry()で想定外のTOCエントリ: %d %s %s" + +#: pg_backup_archiver.c:4131 #, c-format msgid "did not find magic string in file header" msgstr "ファイルヘッダにマジック文字列がありませんでした" -#: pg_backup_archiver.c:3996 +#: pg_backup_archiver.c:4145 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "ファイルヘッダ内のバージョン(%d.%d)はサポートされていません" -#: pg_backup_archiver.c:4001 +#: pg_backup_archiver.c:4150 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "整数のサイズ(%lu)に関する健全性検査が失敗しました" -#: pg_backup_archiver.c:4005 +#: pg_backup_archiver.c:4154 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "アーカイブはより大きなサイズの整数を持つマシンで作成されました、一部の操作が失敗する可能性があります" -#: pg_backup_archiver.c:4015 +#: pg_backup_archiver.c:4164 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "想定した形式(%d)はファイル内にある形式(%d)と異なります" -#: pg_backup_archiver.c:4037 +#: pg_backup_archiver.c:4186 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "アーカイブは圧縮されていますが、このインストールでは圧縮をサポートしていません (%s)-- データは利用できません" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4222 #, c-format msgid "invalid creation date in header" msgstr "ヘッダ内の作成日付が不正です" -#: pg_backup_archiver.c:4207 +#: pg_backup_archiver.c:4356 #, c-format msgid "processing item %d %s %s" msgstr "項目 %d %s %s を処理しています" -#: pg_backup_archiver.c:4292 +#: pg_backup_archiver.c:4441 #, c-format msgid "entering main parallel loop" msgstr "メインの並列ループに入ります" -#: pg_backup_archiver.c:4303 +#: pg_backup_archiver.c:4452 #, c-format msgid "skipping item %d %s %s" msgstr "項目 %d %s %s をスキップしています" -#: pg_backup_archiver.c:4312 +#: pg_backup_archiver.c:4461 #, c-format msgid "launching item %d %s %s" msgstr "項目 %d %s %s に着手します" -#: pg_backup_archiver.c:4366 +#: pg_backup_archiver.c:4515 #, c-format msgid "finished main parallel loop" msgstr "メインの並列ループが終了しました" -#: pg_backup_archiver.c:4402 +#: pg_backup_archiver.c:4551 #, c-format msgid "processing missed item %d %s %s" msgstr "やり残し項目 %d %s %s を処理しています" -#: pg_backup_archiver.c:4944 +#: pg_backup_archiver.c:5093 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "テーブル\"%s\"を作成できませんでした、このテーブルのデータは復元されません" -#: pg_backup_custom.c:376 pg_backup_null.c:143 +#: pg_backup_custom.c:375 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "ラージオブジェクトのOIDが不正です" -#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 -#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 -#, c-format -msgid "error during file seek: %m" -msgstr "ファイルシーク中にエラーがありました: %m" - -#: pg_backup_custom.c:480 +#: pg_backup_custom.c:479 #, c-format msgid "data block %d has wrong seek position" msgstr "データブロック%dのシーク位置が間違っています" -#: pg_backup_custom.c:497 +#: pg_backup_custom.c:496 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "アーカイブの探索中に認識不能のデータブロックタイプ(%d)がありました" -#: pg_backup_custom.c:519 +#: pg_backup_custom.c:518 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "アーカイブ中にブロックID %d がありません -- おそらくリストア要求が順不同だったためですが、入力ファイルがシーク不可なため処理できません" -#: pg_backup_custom.c:524 +#: pg_backup_custom.c:523 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "アーカイブ内にブロック ID %d がありませんでした -- おそらくアーカイブが壊れています" -#: pg_backup_custom.c:531 +#: pg_backup_custom.c:530 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "データ読み込み時に想定外のブロックID(%d)がありました --想定は%d" -#: pg_backup_custom.c:545 +#: pg_backup_custom.c:544 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "アーカイブのりストア中に認識不可のデータブロックタイプ%dがありました" -#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_custom.c:750 pg_backup_custom.c:804 pg_backup_custom.c:946 #: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "アーカイブファイルのシーク位置を決定できませんでした: %m" -#: pg_backup_custom.c:767 pg_backup_custom.c:807 +#: pg_backup_custom.c:768 pg_backup_custom.c:808 #, c-format msgid "could not close archive file: %m" msgstr "アーカイブファイルをクローズできませんでした: %m" -#: pg_backup_custom.c:790 +#: pg_backup_custom.c:791 #, c-format msgid "can only reopen input archives" msgstr "入力アーカイブだけが再オープン可能です" -#: pg_backup_custom.c:797 +#: pg_backup_custom.c:798 #, c-format msgid "parallel restore from standard input is not supported" msgstr "標準入力からの並列リストアはサポートされていません" -#: pg_backup_custom.c:799 +#: pg_backup_custom.c:800 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "シーク不可のファイルからの並列リストアはサポートされていません" -#: pg_backup_custom.c:815 +#: pg_backup_custom.c:816 #, c-format msgid "could not set seek position in archive file: %m" msgstr "アーカイブファイルのシークができませんでした: %m" -#: pg_backup_custom.c:894 +#: pg_backup_custom.c:895 #, c-format msgid "compressor active" msgstr "圧縮処理が有効です" -#: pg_backup_db.c:42 -#, c-format -msgid "could not get server_version from libpq" -msgstr "libpqからserver_versionを取得できませんでした" - -#: pg_backup_db.c:53 pg_dumpall.c:1830 +#: pg_backup_db.c:41 #, c-format -msgid "aborting because of server version mismatch" -msgstr "サーバーバージョンの不一致のため処理を中断します" +msgid "could not get \"server_version\" from libpq" +msgstr "libpqから\"server_version\"を取得できませんでした" -#: pg_backup_db.c:54 pg_dumpall.c:1831 -#, c-format -msgid "server version: %s; %s version: %s" -msgstr "サーバーバージョン: %s、%s バージョン: %s" - -#: pg_backup_db.c:120 +#: pg_backup_db.c:118 #, c-format msgid "already connected to a database" msgstr "データベースはすでに接続済みです" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 -msgid "Password: " -msgstr "パスワード: " - -#: pg_backup_db.c:170 -#, c-format -msgid "could not connect to database" -msgstr "データベースへの接続ができませんでした" - -#: pg_backup_db.c:187 -#, c-format -msgid "reconnection failed: %s" -msgstr "再接続に失敗しました: %s" - -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:787 pg_dump_sort.c:1213 -#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 -#, c-format -msgid "%s" -msgstr "%s" - -#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 -#, c-format -msgid "query failed: %s" -msgstr "問い合わせが失敗しました: %s" - -#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 -#, c-format -msgid "Query was: %s" -msgstr "問い合わせ: %s" - -#: pg_backup_db.c:315 +#: pg_backup_db.c:254 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" msgstr[0] "問い合わせが1行ではなく%d行返しました: %s" -#: pg_backup_db.c:351 +#: pg_backup_db.c:290 #, c-format msgid "%s: %sCommand was: %s" msgstr "%s: %sコマンド: %s" -#: pg_backup_db.c:407 pg_backup_db.c:481 pg_backup_db.c:488 +#: pg_backup_db.c:346 pg_backup_db.c:420 pg_backup_db.c:427 msgid "could not execute query" msgstr "問い合わせを実行できませんでした" -#: pg_backup_db.c:460 +#: pg_backup_db.c:399 #, c-format msgid "error returned by PQputCopyData: %s" msgstr "PQputCopyData からエラーが返されました: %s" -#: pg_backup_db.c:509 +#: pg_backup_db.c:448 #, c-format msgid "error returned by PQputCopyEnd: %s" msgstr "PQputCopyEnd からエラーが返されました: %s" -#: pg_backup_db.c:515 +#: pg_backup_db.c:454 #, c-format msgid "COPY failed for table \"%s\": %s" msgstr "テーブル\"%s\"へのコピーに失敗しました: %s" -#: pg_backup_db.c:521 pg_dump.c:2271 +#: pg_backup_db.c:460 pg_dump.c:2439 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "ファイル\"%s\"をCOPY中に想定していない余分な結果がありました" -#: pg_backup_db.c:533 +#: pg_backup_db.c:472 msgid "could not start database transaction" msgstr "データベーストランザクションを開始できませんでした" -#: pg_backup_db.c:541 +#: pg_backup_db.c:480 msgid "could not commit database transaction" msgstr "データベーストランザクションをコミットできませんでした" -#: pg_backup_directory.c:153 +#: pg_backup_directory.c:154 #, c-format msgid "no output directory specified" msgstr "出力ディレクトリが指定されていません" -#: pg_backup_directory.c:186 -#, c-format -msgid "could not close directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" - -#: pg_backup_directory.c:192 -#, c-format -msgid "could not create directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" - -#: pg_backup_directory.c:357 pg_backup_directory.c:506 -#: pg_backup_directory.c:544 +#: pg_backup_directory.c:325 pg_backup_directory.c:474 +#: pg_backup_directory.c:512 #, c-format msgid "could not write to output file: %s" msgstr "出力ファイルに書き込めませんでした: %s" -#: pg_backup_directory.c:375 +#: pg_backup_directory.c:343 #, c-format msgid "could not close data file: %m" msgstr "データファイルをクローズできませんでした: %m" -#: pg_backup_directory.c:408 +#: pg_backup_directory.c:376 #, c-format msgid "could not close data file \"%s\": %m" msgstr "データファイル\"%s\"をクローズできませんでした: %m" -#: pg_backup_directory.c:455 +#: pg_backup_directory.c:423 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "ラージオブジェクトTOCファイル\"%s\"を入力用としてオープンできませんでした: %m" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:434 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "ラージオブジェクトTOCファイル\"%s\"の中に不正な行がありました: \"%s\"" -#: pg_backup_directory.c:475 +#: pg_backup_directory.c:443 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "ラージオブジェクトTOCファイル\"%s\"の読み取り中にエラーがありました" -#: pg_backup_directory.c:479 +#: pg_backup_directory.c:447 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "ラージオブジェクトTOCファイル\"%s\"をクローズできませんでした: %m" -#: pg_backup_directory.c:702 +#: pg_backup_directory.c:670 #, c-format msgid "could not close LO data file: %m" msgstr "ラージオブジェクトのデータファイルをクローズできませんでした: %m" -#: pg_backup_directory.c:712 +#: pg_backup_directory.c:680 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "ラージオブジェクトのTOCファイルに書き出せませんでした: %s" -#: pg_backup_directory.c:728 +#: pg_backup_directory.c:696 #, c-format msgid "could not close LOs TOC file: %m" msgstr "ラージオブジェクトのTOCファイルをクローズできませんでした: %m" -#: pg_backup_directory.c:747 +#: pg_backup_directory.c:715 #, c-format msgid "file name too long: \"%s\"" msgstr "ファイル名が長すぎます: \"%s\"" @@ -1459,100 +1484,140 @@ msgstr[0] "不完全なtarヘッダがありました(%luバイト)" msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "破損したtarヘッダが%sにありました(想定 %d、算出結果 %d) ファイル位置 %llu" -#: pg_backup_utils.c:54 +#: pg_backup_utils.c:56 #, c-format msgid "unrecognized section name: \"%s\"" msgstr "認識不可のセクション名: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:693 pg_dump.c:710 pg_dumpall.c:370 -#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 -#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 -#: pg_restore.c:337 +#: pg_backup_utils.c:57 pg_dump.c:803 pg_dump.c:820 pg_dumpall.c:385 +#: pg_dumpall.c:395 pg_dumpall.c:403 pg_dumpall.c:411 pg_dumpall.c:418 +#: pg_dumpall.c:428 pg_dumpall.c:443 pg_dumpall.c:564 pg_restore.c:351 +#: pg_restore.c:367 pg_restore.c:378 pg_restore.c:388 pg_restore.c:517 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_backup_utils.c:66 +#: pg_backup_utils.c:68 #, c-format msgid "out of on_exit_nicely slots" msgstr "on_exit_nicelyスロットが足りません" -#: pg_dump.c:708 pg_dumpall.c:378 pg_restore.c:321 +#: pg_dump.c:818 pg_dumpall.c:393 pg_restore.c:365 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます(先頭は\"%s\")" -#: pg_dump.c:727 pg_restore.c:344 +#: pg_dump.c:830 pg_restore.c:396 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "-s/--schema-only と -a/--data-only オプションは同時には使用できません" -#: pg_dump.c:730 +#: pg_dump.c:832 pg_restore.c:398 +#, c-format +msgid "options -s/--schema-only and --statistics-only cannot be used together" +msgstr "-s/--schema-only と--statistics-only オプションは同時には使用できません" + +#: pg_dump.c:834 pg_restore.c:400 +#, c-format +msgid "options -a/--data-only and --statistics-only cannot be used together" +msgstr "-a/--data-only と --statistics-only オプションは同時には使用できません" + +#: pg_dump.c:838 pg_restore.c:404 +#, c-format +msgid "options -a/--data-only and --no-data cannot be used together" +msgstr "-a/--data-only と --no-data オプションは同時には使用できません" + +#: pg_dump.c:840 pg_restore.c:406 +#, c-format +msgid "options -s/--schema-only and --no-schema cannot be used together" +msgstr "-s/--schema-only と --no-schema オプションは同時には使用できません" + +#: pg_dump.c:842 pg_restore.c:408 +#, c-format +msgid "options --statistics-only and --no-statistics cannot be used together" +msgstr "オプション --statistics-only と --no-statistics とは同時には使用できません" + +#: pg_dump.c:846 pg_restore.c:412 +#, c-format +msgid "options --with-data and --no-data cannot be used together" +msgstr "--with-data と --no-data オプションは同時には使用できません" + +#: pg_dump.c:848 pg_restore.c:414 +#, c-format +msgid "options --with-schema and --no-schema cannot be used together" +msgstr "--with-schema と --no-schema オプションは同時には使用できません" + +#: pg_dump.c:850 pg_restore.c:416 +#, c-format +msgid "options --with-statistics and --no-statistics cannot be used together" +msgstr "オプション --with-statistics と --no-statistics とは同時には使用できません" + +#: pg_dump.c:853 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "-s/--schema-only と --include-foreign-data オプションは同時には使用できません" -#: pg_dump.c:733 +#: pg_dump.c:856 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "オプション --include-foreign-data はパラレルバックアップではサポートされません" -#: pg_dump.c:736 pg_restore.c:347 +#: pg_dump.c:859 pg_restore.c:419 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "-c/--clean と -a/--data-only オプションは同時には使用できません" -#: pg_dump.c:739 pg_dumpall.c:408 pg_restore.c:375 +#: pg_dump.c:862 pg_dumpall.c:423 pg_restore.c:462 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "--if-existsは -c/--clean の指定が必要です" -#: pg_dump.c:746 +#: pg_dump.c:884 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "--on-conflict-do-nothingオプションは--inserts、--rows-per-insert または --column-insertsを必要とします" -#: pg_dump.c:775 +#: pg_dump.c:913 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "認識できない圧縮アルゴリズム: \"%s\"" -#: pg_dump.c:782 +#: pg_dump.c:920 #, c-format msgid "invalid compression specification: %s" msgstr "不正な圧縮指定: %s" -#: pg_dump.c:795 +#: pg_dump.c:933 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "圧縮オプション\"%s\"は現時点ではpg_dumpではサポートされていません" -#: pg_dump.c:807 +#: pg_dump.c:945 #, c-format msgid "parallel backup only supported by the directory format" msgstr "並列バックアップはディレクトリ形式でのみサポートされます" -#: pg_dump.c:853 +#: pg_dump.c:991 #, c-format msgid "last built-in OID is %u" msgstr "最後の組み込みOIDは%u" -#: pg_dump.c:862 +#: pg_dump.c:1000 #, c-format msgid "no matching schemas were found" msgstr "マッチするスキーマが見つかりません" -#: pg_dump.c:879 +#: pg_dump.c:1017 #, c-format msgid "no matching tables were found" msgstr "マッチするテーブルが見つかりません" -#: pg_dump.c:907 +#: pg_dump.c:1045 #, c-format msgid "no matching extensions were found" msgstr "合致する機能拡張が見つかりません" -#: pg_dump.c:1091 +#: pg_dump.c:1238 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1561,17 +1626,17 @@ msgstr "" "%sはデータベースをテキストファイルまたはその他の形式でダンプします。\n" "\n" -#: pg_dump.c:1092 pg_dumpall.c:635 pg_restore.c:452 +#: pg_dump.c:1239 pg_dumpall.c:699 pg_restore.c:648 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_dump.c:1093 +#: pg_dump.c:1240 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: pg_dump.c:1095 pg_dumpall.c:638 pg_restore.c:455 +#: pg_dump.c:1242 pg_dumpall.c:702 pg_restore.c:651 #, c-format msgid "" "\n" @@ -1580,12 +1645,12 @@ msgstr "" "\n" "一般的なオプション;\n" -#: pg_dump.c:1096 +#: pg_dump.c:1243 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=ファイル名 出力ファイルまたはディレクトリの名前\n" -#: pg_dump.c:1097 +#: pg_dump.c:1244 pg_dumpall.c:704 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1594,22 +1659,22 @@ msgstr "" " -F, --format=c|d|t|p 出力ファイルの形式(custom, directory, tar, \n" " plain text(デフォルト))\n" -#: pg_dump.c:1099 +#: pg_dump.c:1246 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM ダンプ時に指定した数の並列ジョブを使用\n" -#: pg_dump.c:1100 pg_dumpall.c:640 +#: pg_dump.c:1247 pg_dumpall.c:706 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose 冗長モード\n" -#: pg_dump.c:1101 pg_dumpall.c:641 +#: pg_dump.c:1248 pg_dumpall.c:707 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_dump.c:1102 +#: pg_dump.c:1249 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1618,29 +1683,29 @@ msgstr "" " -Z, --compress=方式[:詳細]\n" " 指定のとおり圧縮\n" -#: pg_dump.c:1104 pg_dumpall.c:642 +#: pg_dump.c:1251 pg_dumpall.c:708 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=TIMEOUT テーブルロックをTIMEOUT待ってから失敗\n" -#: pg_dump.c:1105 pg_dumpall.c:670 +#: pg_dump.c:1252 pg_dumpall.c:740 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync 変更のディスクへの安全な書き出しを待機しない\n" -#: pg_dump.c:1106 +#: pg_dump.c:1253 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHOD ファイルをディスクに同期させる方法を指定\n" "\n" -#: pg_dump.c:1107 pg_dumpall.c:643 +#: pg_dump.c:1254 pg_dumpall.c:709 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_dump.c:1109 pg_dumpall.c:644 +#: pg_dump.c:1256 pg_dumpall.c:710 #, c-format msgid "" "\n" @@ -1649,66 +1714,66 @@ msgstr "" "\n" "出力内容を制御するためのオプション:\n" -#: pg_dump.c:1110 pg_dumpall.c:645 +#: pg_dump.c:1257 pg_dumpall.c:711 #, c-format -msgid " -a, --data-only dump only the data, not the schema\n" -msgstr " -a, --data-only データのみをダンプし、スキーマをダンプしない\n" +msgid " -a, --data-only dump only the data, not the schema or statistics\n" +msgstr " -a, --data-only データのみをダンプし、スキーマまたは統計情報をダンプしない\n" -#: pg_dump.c:1111 +#: pg_dump.c:1258 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr "" " -b, --large-objects ダンプにラージオブジェクトを含める\n" "\n" -#: pg_dump.c:1112 +#: pg_dump.c:1259 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (--large-objectsに同じ、非推奨)\n" -#: pg_dump.c:1113 +#: pg_dump.c:1260 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects ダンプにラージオブジェクトを含めない\n" -#: pg_dump.c:1114 +#: pg_dump.c:1261 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr "" " --no-blobs (--no-large-objectsに同じ、非推奨)\n" "\n" -#: pg_dump.c:1115 pg_restore.c:466 +#: pg_dump.c:1262 pg_restore.c:662 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean 再作成前にデータベースオブジェクトを整理(削除)\n" -#: pg_dump.c:1116 +#: pg_dump.c:1263 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr " -C, --create ダンプにデータベース生成用コマンドを含める\n" -#: pg_dump.c:1117 +#: pg_dump.c:1264 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATTERN 指定した機能拡張のみをダンプ\n" -#: pg_dump.c:1118 pg_dumpall.c:647 +#: pg_dump.c:1265 pg_dumpall.c:713 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=ENCODING 指定した符号化方式でデータをダンプ\n" -#: pg_dump.c:1119 +#: pg_dump.c:1266 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=SCHEMA 指定したスキーマのみをダンプ\n" -#: pg_dump.c:1120 +#: pg_dump.c:1267 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=SCHEMA 指定したスキーマをダンプしない\n" -#: pg_dump.c:1121 +#: pg_dump.c:1268 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1717,56 +1782,58 @@ msgstr "" " -O, --no-owner プレインテキスト形式で、オブジェクト所有権の\n" " 復元を行わない\n" -#: pg_dump.c:1123 pg_dumpall.c:651 +#: pg_dump.c:1270 pg_dumpall.c:717 #, c-format -msgid " -s, --schema-only dump only the schema, no data\n" -msgstr " -s, --schema-only スキーマのみをダンプし、データはダンプしない\n" +msgid " -s, --schema-only dump only the schema, no data or statistics\n" +msgstr "" +" -s, --schema-only スキーマのみをダンプし、データまたは統計情報を\n" +" ダンプしない\n" -#: pg_dump.c:1124 +#: pg_dump.c:1271 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr "" " -S, --superuser=NAME プレインテキスト形式で使用するスーパーユーザーの\n" " 名前\n" -#: pg_dump.c:1125 +#: pg_dump.c:1272 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=PATTERN 指定したテーブル(群)のみをダンプ\n" -#: pg_dump.c:1126 +#: pg_dump.c:1273 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATTERN 指定したテーブルをダンプしない\n" -#: pg_dump.c:1127 pg_dumpall.c:654 +#: pg_dump.c:1274 pg_dumpall.c:720 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges 権限(grant/revoke)をダンプしない\n" -#: pg_dump.c:1128 pg_dumpall.c:655 +#: pg_dump.c:1275 pg_dumpall.c:721 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade アップグレードユーティリティ専用\n" -#: pg_dump.c:1129 pg_dumpall.c:656 +#: pg_dump.c:1276 pg_dumpall.c:722 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr " --column-inserts 列名指定のINSERTコマンドでデータをダンプ\n" -#: pg_dump.c:1130 pg_dumpall.c:657 +#: pg_dump.c:1277 pg_dumpall.c:723 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr "" " --disable-dollar-quoting ドル記号による引用符付けを禁止、SQL標準の引用符\n" " 付けを使用\n" -#: pg_dump.c:1131 pg_dumpall.c:658 pg_restore.c:483 +#: pg_dump.c:1278 pg_dumpall.c:724 pg_restore.c:681 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers データのみのリストアの際にトリガを無効化\n" -#: pg_dump.c:1132 +#: pg_dump.c:1279 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1775,12 +1842,12 @@ msgstr "" " --enable-row-security 行セキュリティを有効化(ユーザーがアクセス可能な\n" " 内容のみをダンプ)\n" -#: pg_dump.c:1134 +#: pg_dump.c:1281 #, c-format msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" msgstr " --exclude-extension=PATTERN 指定した機能拡張をダンプしない\n" -#: pg_dump.c:1135 +#: pg_dump.c:1282 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1791,12 +1858,12 @@ msgstr "" " 指定したテーブル(群)を子テーブルを含めて\n" " ダンプしない\n" -#: pg_dump.c:1138 +#: pg_dump.c:1285 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=PATTERN 指定したテーブルのデータをダンプしない\n" -#: pg_dump.c:1139 +#: pg_dump.c:1286 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1807,12 +1874,12 @@ msgstr "" " 指定したテーブル(群)のデータを子テーブルを含めて\n" " ダンプしない\n" -#: pg_dump.c:1142 pg_dumpall.c:660 +#: pg_dump.c:1289 pg_dumpall.c:726 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM extra_float_digitsの設定を上書きする\n" -#: pg_dump.c:1143 +#: pg_dump.c:1290 #, c-format msgid "" " --filter=FILENAME include or exclude objects and data from dump\n" @@ -1821,12 +1888,12 @@ msgstr "" " --filter=FILENAME オブジェクトやデータの指定や除外を\n" " FILENAMEに記述された式をもとに行う\n" -#: pg_dump.c:1145 pg_dumpall.c:662 pg_restore.c:487 +#: pg_dump.c:1292 pg_dumpall.c:728 pg_restore.c:685 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists オブジェクト削除の際に IF EXISTS を使用\n" -#: pg_dump.c:1146 +#: pg_dump.c:1293 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1837,91 +1904,123 @@ msgstr "" " PATTERNに合致する外部サーバー上の外部テーブルの\n" " データを含める\n" -#: pg_dump.c:1149 pg_dumpall.c:663 +#: pg_dump.c:1296 pg_dumpall.c:729 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts COPYではなくINSERTコマンドでデータをダンプ\n" -#: pg_dump.c:1150 pg_dumpall.c:664 +#: pg_dump.c:1297 pg_dumpall.c:730 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root 子テーブルをルートテーブル経由でロードする\n" -#: pg_dump.c:1151 pg_dumpall.c:665 +#: pg_dump.c:1298 pg_dumpall.c:731 #, c-format -msgid " --no-comments do not dump comments\n" -msgstr " --no-comments コメントをダンプしない\n" +msgid " --no-comments do not dump comment commands\n" +msgstr " --no-comments コメントコマンドをダンプしない\n" -#: pg_dump.c:1152 pg_dumpall.c:666 +#: pg_dump.c:1299 pg_dumpall.c:732 +#, c-format +msgid " --no-data do not dump data\n" +msgstr " --no-data データをダンプしない\n" + +#: pg_dump.c:1300 pg_dumpall.c:733 +#, c-format +msgid " --no-policies do not dump row security policies\n" +msgstr " --no-policies 行セキュリティポリシーをダンプしない\n" + +#: pg_dump.c:1301 pg_dumpall.c:734 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications パブリケーションをダンプしない\n" -#: pg_dump.c:1153 pg_dumpall.c:668 +#: pg_dump.c:1302 pg_dumpall.c:736 +#, c-format +msgid " --no-schema do not dump schema\n" +msgstr " --no-schema スキーマをダンプしない\n" + +#: pg_dump.c:1303 pg_dumpall.c:737 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels セキュリティラベルの割り当てをダンプしない\n" -#: pg_dump.c:1154 pg_dumpall.c:669 +#: pg_dump.c:1304 pg_dumpall.c:738 +#, c-format +msgid " --no-statistics do not dump statistics\n" +msgstr " --no-statistics 統計情報をダンプしない\n" + +#: pg_dump.c:1305 pg_dumpall.c:739 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions サブスクリプションをダンプしない\n" -#: pg_dump.c:1155 pg_dumpall.c:671 +#: pg_dump.c:1306 pg_dumpall.c:741 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method テーブルアクセスメソッドをダンプしない\n" -#: pg_dump.c:1156 pg_dumpall.c:672 +#: pg_dump.c:1307 pg_dumpall.c:742 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces テーブルスペースの割り当てをダンプしない\n" -#: pg_dump.c:1157 pg_dumpall.c:673 +#: pg_dump.c:1308 pg_dumpall.c:743 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression TOAST圧縮方式をダンプしない\n" -#: pg_dump.c:1158 pg_dumpall.c:674 +#: pg_dump.c:1309 pg_dumpall.c:744 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data 非ログテーブルのデータをダンプしない\n" -#: pg_dump.c:1159 pg_dumpall.c:675 +#: pg_dump.c:1310 pg_dumpall.c:745 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing INSERTコマンドにON CONFLICT DO NOTHINGを付加する\n" -#: pg_dump.c:1160 pg_dumpall.c:676 +#: pg_dump.c:1311 pg_dumpall.c:746 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr "" " --quote-all-identifiers すべての識別子をキーワードでなかったとしても\n" " 引用符で囲む\n" -#: pg_dump.c:1161 pg_dumpall.c:677 +#: pg_dump.c:1312 pg_dumpall.c:747 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NROWS INSERT毎の行数; --insertsを暗黙的に指定する\n" -#: pg_dump.c:1162 +#: pg_dump.c:1313 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr "" " --section=SECTION 指定したセクション(pre-data、data または\n" " post-data)をダンプする\n" -#: pg_dump.c:1163 +#: pg_dump.c:1314 +#, c-format +msgid " --sequence-data include sequence data in dump\n" +msgstr " --sequence-data ダンプにシーケンスデータを含める\n" + +#: pg_dump.c:1315 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable ダンプを異常なく実行できるようになるまで待機\n" -#: pg_dump.c:1164 +#: pg_dump.c:1316 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT ダンプに指定のスナップショットを使用する\n" -#: pg_dump.c:1165 pg_restore.c:497 +#: pg_dump.c:1317 pg_dumpall.c:748 +#, c-format +msgid " --statistics-only dump only the statistics, not schema or data\n" +msgstr "" +" --statistics-only 統計情報のみをダンプし、スキーマまたはデータを\n" +" ダンプしない\n" + +#: pg_dump.c:1318 pg_restore.c:700 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1930,7 +2029,7 @@ msgstr "" " --strict-names テーブル/スキーマの対象パターンが最低でも\n" " 一つの実体にマッチすることを必須とする\n" -#: pg_dump.c:1167 +#: pg_dump.c:1320 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1939,7 +2038,7 @@ msgstr "" " --table-and-children=PATTERN 指定したテーブル(群)のみを子テーブル\n" " を含めてダンプ\n" -#: pg_dump.c:1169 pg_dumpall.c:678 pg_restore.c:500 +#: pg_dump.c:1322 pg_dumpall.c:749 pg_restore.c:703 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1950,7 +2049,22 @@ msgstr "" " 所有者をセットする際、ALTER OWNERコマンドの代わり\n" " にSET SESSION AUTHORIZATIONコマンドを使用する\n" -#: pg_dump.c:1173 pg_dumpall.c:682 pg_restore.c:504 +#: pg_dump.c:1325 pg_dumpall.c:752 pg_restore.c:706 +#, c-format +msgid " --with-data dump the data\n" +msgstr " --with-data データをダンプする\n" + +#: pg_dump.c:1326 pg_dumpall.c:753 pg_restore.c:707 +#, c-format +msgid " --with-schema dump the schema\n" +msgstr " --with-schema スキーマをダンプする\n" + +#: pg_dump.c:1327 pg_dumpall.c:754 pg_restore.c:708 +#, c-format +msgid " --with-statistics dump the statistics\n" +msgstr " --with-statistics 統計情報をダンプする\n" + +#: pg_dump.c:1329 pg_dumpall.c:756 pg_restore.c:710 #, c-format msgid "" "\n" @@ -1959,46 +2073,46 @@ msgstr "" "\n" "接続オプション:\n" -#: pg_dump.c:1174 +#: pg_dump.c:1330 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAME ダンプするデータベース\n" -#: pg_dump.c:1175 pg_dumpall.c:684 pg_restore.c:505 +#: pg_dump.c:1331 pg_dumpall.c:758 pg_restore.c:711 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME データベースサーバーのホストまたはソケット\n" " ディレクトリ\n" -#: pg_dump.c:1176 pg_dumpall.c:686 pg_restore.c:506 +#: pg_dump.c:1332 pg_dumpall.c:760 pg_restore.c:712 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT データベースサーバーのポート番号\n" -#: pg_dump.c:1177 pg_dumpall.c:687 pg_restore.c:507 +#: pg_dump.c:1333 pg_dumpall.c:761 pg_restore.c:713 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME 指定したデータベースユーザーで接続\n" -#: pg_dump.c:1178 pg_dumpall.c:688 pg_restore.c:508 +#: pg_dump.c:1334 pg_dumpall.c:762 pg_restore.c:714 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password パスワード入力を要求しない\n" -#: pg_dump.c:1179 pg_dumpall.c:689 pg_restore.c:509 +#: pg_dump.c:1335 pg_dumpall.c:763 pg_restore.c:715 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password パスワードプロンプトを強制表示\n" " (自動的に表示されるはず)\n" -#: pg_dump.c:1180 pg_dumpall.c:690 +#: pg_dump.c:1336 pg_dumpall.c:764 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLENAME ダンプの前に SET ROLE を行う\n" -#: pg_dump.c:1182 +#: pg_dump.c:1338 #, c-format msgid "" "\n" @@ -2010,534 +2124,570 @@ msgstr "" "データベース名が指定されなかった場合、環境変数PGDATABASEが使用されます\n" "\n" -#: pg_dump.c:1184 pg_dumpall.c:694 pg_restore.c:516 +#: pg_dump.c:1340 pg_dumpall.c:768 pg_restore.c:722 #, c-format msgid "Report bugs to <%s>.\n" msgstr "バグは<%s>に報告してください。\n" -#: pg_dump.c:1185 pg_dumpall.c:695 pg_restore.c:517 +#: pg_dump.c:1341 pg_dumpall.c:769 pg_restore.c:723 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: pg_dump.c:1204 pg_dumpall.c:518 +#: pg_dump.c:1360 pg_dumpall.c:581 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "不正なクライアントエンコーディング\"%s\"が指定されました" -#: pg_dump.c:1344 +#: pg_dump.c:1508 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "スタンバイサーバーからの並列ダンプはこのサーバーバージョンではサポートされません" -#: pg_dump.c:1409 +#: pg_dump.c:1573 #, c-format msgid "invalid output format \"%s\" specified" msgstr "不正な出力形式\"%s\"が指定されました" -#: pg_dump.c:1450 pg_dump.c:1506 pg_dump.c:1559 pg_dumpall.c:1467 +#: pg_dump.c:1614 pg_dump.c:1670 pg_dump.c:1723 pg_dumpall.c:1593 +#: pg_restore.c:974 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "修飾名が不適切です(ドット区切りの名前が多すぎます): %s" -#: pg_dump.c:1458 +#: pg_dump.c:1622 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "パターン\"%s\"にマッチするスキーマが見つかりません" -#: pg_dump.c:1511 +#: pg_dump.c:1675 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "パターン\"%s\"に合致する機能拡張が見つかりません" -#: pg_dump.c:1564 +#: pg_dump.c:1728 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "パターン\"%s\"にマッチする外部サーバーが見つかりません" -#: pg_dump.c:1635 +#: pg_dump.c:1799 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "リレーション名が不適切です(ドット区切りの名前が多すぎます): %s" -#: pg_dump.c:1657 +#: pg_dump.c:1821 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "パターン \"%s\"にマッチするテーブルが見つかりません" -#: pg_dump.c:1684 +#: pg_dump.c:1848 #, c-format msgid "You are currently not connected to a database." msgstr "現在データベースに接続していません。" -#: pg_dump.c:1687 +#: pg_dump.c:1851 #, c-format msgid "cross-database references are not implemented: %s" msgstr "データベース間の参照は実装されていません: %s" -#: pg_dump.c:2146 +#: pg_dump.c:2310 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "テーブル \"%s.%s\"の内容をダンプしています" -#: pg_dump.c:2252 +#: pg_dump.c:2420 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "テーブル\"%s\"の内容のダンプに失敗: PQgetCopyData()が失敗しました。" -#: pg_dump.c:2253 pg_dump.c:2263 +#: pg_dump.c:2421 pg_dump.c:2431 #, c-format msgid "Error message from server: %s" msgstr "サーバーのエラーメッセージ: %s" -#: pg_dump.c:2254 pg_dump.c:2264 +#: pg_dump.c:2422 pg_dump.c:2432 #, c-format msgid "Command was: %s" msgstr "コマンド: %s" -#: pg_dump.c:2262 +#: pg_dump.c:2430 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "テーブル\"%s\"の内容のダンプに失敗: PQgetResult()が失敗しました。" -#: pg_dump.c:2344 +#: pg_dump.c:2521 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "テーブル\"%s\"から取得したフィールドの数が間違っています" -#: pg_dump.c:3042 +#: pg_dump.c:3236 #, c-format msgid "saving database definition" msgstr "データベース定義を保存しています" -#: pg_dump.c:3151 +#: pg_dump.c:3351 #, c-format msgid "unrecognized locale provider: %s" msgstr "認識できない照合順序プロバイダ: %s" -#: pg_dump.c:3512 +#: pg_dump.c:3712 #, c-format msgid "saving encoding = %s" msgstr "encoding = %s を保存しています" -#: pg_dump.c:3537 +#: pg_dump.c:3737 #, c-format msgid "saving \"standard_conforming_strings = %s\"" msgstr "\"standard_conforming_strings = %s\" を保存しています" -#: pg_dump.c:3576 +#: pg_dump.c:3776 #, c-format msgid "could not parse result of current_schemas()" msgstr "current_schemas()の結果をパースできませんでした" -#: pg_dump.c:3595 +#: pg_dump.c:3795 #, c-format msgid "saving \"search_path = %s\"" msgstr "\"search_path = %s\" を保存しています" -#: pg_dump.c:3631 +#: pg_dump.c:3831 #, c-format msgid "reading large objects" msgstr "ラージオブジェクトを読み込んでいます" -#: pg_dump.c:3852 +#: pg_dump.c:4052 #, c-format msgid "saving large objects \"%s\"" msgstr "ラージオブジェクト\"%s\"を保存しています" -#: pg_dump.c:3873 +#: pg_dump.c:4073 #, c-format msgid "error reading large object %u: %s" msgstr "ラージオブジェクト %u を読み取り中にエラーがありました: %s" -#: pg_dump.c:3976 +#: pg_dump.c:4181 #, c-format msgid "reading row-level security policies" msgstr "行レベルセキュリティポリシーを読み取ります" -#: pg_dump.c:4117 +#: pg_dump.c:4322 #, c-format msgid "unexpected policy command type: %c" msgstr "想定外のポリシコマンドタイプ: \"%c\"" -#: pg_dump.c:4567 pg_dump.c:5103 pg_dump.c:12315 pg_dump.c:18137 -#: pg_dump.c:18139 pg_dump.c:18761 +#: pg_dump.c:4764 pg_dump.c:5321 pg_dump.c:7917 pg_dump.c:13277 pg_dump.c:19381 +#: pg_dump.c:19383 pg_dump.c:20015 #, c-format msgid "could not parse %s array" msgstr "%s配列をパースできませんでした" -#: pg_dump.c:4759 +#: pg_dump.c:4980 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "現在のユーザーがスーパーユーザーではないため、サブスクリプションはダンプされません" -#: pg_dump.c:4965 +#: pg_dump.c:5184 #, c-format msgid "subscription with OID %u does not exist" msgstr "OID %uのサブスクリプションは存在しません" -#: pg_dump.c:4972 +#: pg_dump.c:5191 #, c-format msgid "failed sanity check, table with OID %u not found" msgstr "健全性検査に失敗しました、OID %uのテーブルがありません" -#: pg_dump.c:5535 +#: pg_dump.c:5777 #, c-format msgid "could not find parent extension for %s %s" msgstr "%s %sの親となる機能拡張がありませんでした" -#: pg_dump.c:5680 +#: pg_dump.c:5915 #, c-format msgid "schema with OID %u does not exist" msgstr "OID %uのスキーマは存在しません" -#: pg_dump.c:7162 pg_dump.c:17508 +#: pg_dump.c:6939 +#, c-format +msgid "cannot dump statistics for relation kind '%c'" +msgstr "リレーション種別\"%c\"の統計情報はダンプできません" + +#: pg_dump.c:7451 pg_dump.c:18725 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "健全性検査に失敗しました、OID %2$u であるシーケンスの OID %1$u である親テーブルがありません" -#: pg_dump.c:7305 +#: pg_dump.c:7596 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "健全性検査に失敗しました、pg_partitioned_tableにあるテーブルOID %u が見つかりません" -#: pg_dump.c:7536 pg_dump.c:7810 pg_dump.c:8257 pg_dump.c:8871 pg_dump.c:8993 -#: pg_dump.c:9141 +#: pg_dump.c:7861 pg_dump.c:8154 pg_dump.c:8595 pg_dump.c:9232 pg_dump.c:9366 +#: pg_dump.c:9511 pg_dump.c:9611 #, c-format msgid "unrecognized table OID %u" msgstr "認識できないテーブルOID %u" -#: pg_dump.c:7540 +#: pg_dump.c:7865 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "テーブル\"%s\"に対する想定外のインデックスデータ" -#: pg_dump.c:8042 +#: pg_dump.c:8382 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "健全性検査に失敗しました、OID %2$u であるpg_rewriteエントリのOID %1$u である親テーブルが見つかりません" -#: pg_dump.c:8875 +#: pg_dump.c:9236 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "テーブル\"%s\"に対する想定外の列データ" -#: pg_dump.c:8904 +#: pg_dump.c:9266 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "テーブル\"%s\"の列番号が不正です" -#: pg_dump.c:8955 +#: pg_dump.c:9328 #, c-format msgid "finding table default expressions" msgstr "テーブルのデフォルト式を探しています" -#: pg_dump.c:8997 +#: pg_dump.c:9370 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "テーブル\"%2$s\"用のadnumの値%1$dが不正です" -#: pg_dump.c:9091 +#: pg_dump.c:9463 +#, c-format +msgid "finding invalid not null constraints" +msgstr "未検証の非NULL制約を探しています" + +#: pg_dump.c:9561 #, c-format msgid "finding table check constraints" msgstr "テーブルのチェック制約を探しています" -#: pg_dump.c:9145 +#: pg_dump.c:9615 #, 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] "テーブル\"%2$s\"で想定する検査制約は%1$d個でしたが、%3$dありました" -#: pg_dump.c:9149 +#: pg_dump.c:9619 #, c-format msgid "The system catalogs might be corrupted." msgstr "システムカタログが破損している可能性があります。" -#: pg_dump.c:9839 +#: pg_dump.c:10411 #, c-format msgid "role with OID %u does not exist" msgstr "OID が %u であるロールは存在しません" -#: pg_dump.c:9951 pg_dump.c:9980 +#: pg_dump.c:10523 pg_dump.c:10552 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "非サポートのpg_init_privsエントリ: %u %u %d" -#: pg_dump.c:10527 +#: pg_dump.c:10843 +#, c-format +msgid "stats dumped out of order (current: %d %s %s) (expected: %d %s %s)" +msgstr "統計情報が異常な順序でダンプされています (現在: %d %s %s) (想定: %d %s %s)" + +#: pg_dump.c:10971 +#, c-format +msgid "attname cannot be NULL" +msgstr "attname はNULLにはできません" + +#: pg_dump.c:11000 +#, c-format +msgid "could not find index attname \"%s\"" +msgstr "\"%s\" というインデックスのattnameは見つかりませんでした" + +#: pg_dump.c:11486 #, c-format msgid "missing metadata for large objects \"%s\"" msgstr "ラージオブジェクト\"%s\"のメタデータがありません" -#: pg_dump.c:10810 +#: pg_dump.c:11772 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "データ型\"%s\"のtyptypeが不正なようです" -#: pg_dump.c:12384 +#: pg_dump.c:13348 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "関数\"%s\"のprovolatileの値が認識できません" -#: pg_dump.c:12434 pg_dump.c:14330 +#: pg_dump.c:13398 pg_dump.c:15294 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "関数\"%s\"のproparallel値が認識できません" -#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 +#: pg_dump.c:13528 pg_dump.c:13634 pg_dump.c:13641 #, c-format msgid "could not find function definition for function with OID %u" msgstr "OID %uの関数の関数定義が見つかりませんでした" -#: pg_dump.c:12603 +#: pg_dump.c:13567 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "pg_cast.castfuncまたはpg_cast.castmethodフィールドの値がおかしいです" -#: pg_dump.c:12606 +#: pg_dump.c:13570 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "pg_cast.castmethod フィールドの値がおかしいです" -#: pg_dump.c:12696 +#: pg_dump.c:13660 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "おかしな変換定義、trffromsql か trftosql の少なくとも一方は非ゼロであるはずです" -#: pg_dump.c:12713 +#: pg_dump.c:13677 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "pg_cast.castmethod フィールドの値がおかしいです" -#: pg_dump.c:12734 +#: pg_dump.c:13698 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "pg_cast.castmethod フィールドの値がおかしいです" -#: pg_dump.c:12879 +#: pg_dump.c:13843 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "後置演算子は今後サポートされません(演算子\"%s\")" -#: pg_dump.c:13049 +#: pg_dump.c:14013 #, c-format msgid "could not find operator with OID %s" msgstr "OID %sの演算子がありませんでした" -#: pg_dump.c:13117 +#: pg_dump.c:14081 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"の不正なタイプ\"%1$c\"" -#: pg_dump.c:13791 pg_dump.c:13859 +#: pg_dump.c:14755 pg_dump.c:14823 #, c-format msgid "unrecognized collation provider: %s" msgstr "認識できないの照合順序プロバイダ: %s" -#: pg_dump.c:13800 pg_dump.c:13807 pg_dump.c:13818 pg_dump.c:13828 -#: pg_dump.c:13843 +#: pg_dump.c:14764 pg_dump.c:14771 pg_dump.c:14782 pg_dump.c:14792 +#: pg_dump.c:14807 #, c-format msgid "invalid collation \"%s\"" msgstr "不正な照合順序\"%s\"" -#: pg_dump.c:14249 +#: pg_dump.c:15213 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "集約\"%s\"のaggfinalmodifyの値が識別できません" -#: pg_dump.c:14305 +#: pg_dump.c:15269 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "集約\"%s\"のaggmfinalmodifyの値が識別できません" -#: pg_dump.c:15022 +#: pg_dump.c:15989 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "デフォルト権限設定中の認識できないオブジェクト型: %d" -#: pg_dump.c:15038 +#: pg_dump.c:16005 #, c-format msgid "could not parse default ACL list (%s)" msgstr "デフォルトの ACL リスト(%s)をパースできませんでした" -#: pg_dump.c:15122 +#: pg_dump.c:16089 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "オブジェクト\"%3$s\"(%4$s)の初期ACLリスト(%1$s)またはデフォルト値(%2$s)をパースできませんでした" -#: pg_dump.c:15147 +#: pg_dump.c:16114 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "オブジェクト\"%3$s\"(%4$s)のACLリスト(%1$s)またはデフォルト値(%2$s)をパースできませんでした" -#: pg_dump.c:15690 +#: pg_dump.c:16657 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "ビュー\"%s\"の定義を取り出すための問い合わせがデータを返却しませんでした" -#: pg_dump.c:15693 +#: pg_dump.c:16660 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "ビュー\"%s\"の定義を取り出すための問い合わせが2つ以上の定義を返却しました" -#: pg_dump.c:15700 +#: pg_dump.c:16667 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "ビュー\"%s\"の定義が空のようです(長さが0)" -#: pg_dump.c:15784 +#: pg_dump.c:16752 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDSは今後サポートされません(テーブル\"%s\")" -#: pg_dump.c:16710 +#: pg_dump.c:17842 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "テーブル\"%2$s\"の列番号%1$dは不正です" -#: pg_dump.c:16788 +#: pg_dump.c:17920 #, c-format msgid "could not parse index statistic columns" msgstr "インデックス統計列をパースできませんでした" -#: pg_dump.c:16790 +#: pg_dump.c:17922 #, c-format msgid "could not parse index statistic values" msgstr "インデックス統計値をパースできませんでした" -#: pg_dump.c:16792 +#: pg_dump.c:17924 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "インデックス統計に対して列と値の数が合致しません" -#: pg_dump.c:17007 +#: pg_dump.c:18139 #, c-format msgid "missing index for constraint \"%s\"" msgstr "制約\"%s\"のインデックスが見つかりません" -#: pg_dump.c:17242 +#: pg_dump.c:18383 #, c-format msgid "unrecognized constraint type: %c" msgstr "制約のタイプが識別できません: %c" -#: pg_dump.c:17343 pg_dump.c:17572 +#: pg_dump.c:18436 +#, c-format +msgid "unrecognized sequence type: %s" +msgstr "認識されないシーケンスの型\"%s\"" + +#: pg_dump.c:18568 pg_dump.c:18800 #, 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] "シーケンス\"%s\"のデータを得るための問い合わせが%d行返却しました(想定は1)" -#: pg_dump.c:17375 +#: pg_dump.c:18604 #, c-format -msgid "unrecognized sequence type: %s" -msgstr "認識されないシーケンスの型\"%s\"" +msgid "unrecognized sequence type: %d" +msgstr "認識されないシーケンスの型: %d" -#: pg_dump.c:17889 +#: pg_dump.c:19133 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "テーブル\"%2$s\"のルール\"%1$s\"を得るための問い合わせが失敗しました: 間違った行数が返却されました" -#: pg_dump.c:18042 +#: pg_dump.c:19286 #, c-format msgid "could not find referenced extension %u" msgstr "親の機能拡張%uが見つかりません" -#: pg_dump.c:18141 +#: pg_dump.c:19385 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "機能拡張に対して設定と条件の数が一致しません" -#: pg_dump.c:18273 +#: pg_dump.c:19517 #, c-format msgid "reading dependency data" msgstr "データの依存データを読み込んでいます" -#: pg_dump.c:18359 +#: pg_dump.c:19603 #, c-format msgid "no referencing object %u %u" msgstr "参照元オブジェクト%u %uがありません" -#: pg_dump.c:18370 +#: pg_dump.c:19614 #, c-format msgid "no referenced object %u %u" msgstr "参照先オブジェクト%u %uがありません" -#: pg_dump.c:18795 pg_dump.c:18833 pg_dumpall.c:1962 pg_restore.c:551 -#: pg_restore.c:597 +#: pg_dump.c:20049 pg_dump.c:20087 pg_dumpall.c:1911 pg_restore.c:757 +#: pg_restore.c:803 #, c-format msgid "%s filter for \"%s\" is not allowed" msgstr "\"%2$s\"に対しては%1$sフィルターを指定できません" -#: pg_dump_sort.c:424 +#: pg_dump_sort.c:436 #, c-format msgid "invalid dumpId %d" msgstr "不正なdumpId %d" -#: pg_dump_sort.c:430 +#: pg_dump_sort.c:442 #, c-format msgid "invalid dependency %d" msgstr "不正な依存関係 %d" -#: pg_dump_sort.c:594 +#: pg_dump_sort.c:606 #, c-format msgid "could not identify dependency loop" msgstr "依存関係のループが見つかりませんでした" -#: pg_dump_sort.c:1209 +#: pg_dump_sort.c:1247 #, 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] "次のテーブルの中で外部キー制約の循環があります: " -#: pg_dump_sort.c:1214 +#: pg_dump_sort.c:1252 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "--disable-triggersの使用または一時的な制約の削除を行わずにこのダンプをリストアすることはできないかもしれません。" -#: pg_dump_sort.c:1215 +#: pg_dump_sort.c:1253 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "この問題を回避するために--data-onlyダンプの代わりに完全なダンプを使用することを検討してください。" -#: pg_dump_sort.c:1227 +#: pg_dump_sort.c:1265 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "以下の項目の間の依存関係のループを解決できませんでした:" -#: pg_dumpall.c:231 +#: pg_dumpall.c:244 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "%2$sには\"%1$s\"プログラムが必要ですが、\"%3$s\"と同じディレクトリにありませんでした。" -#: pg_dumpall.c:234 +#: pg_dumpall.c:247 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした。" -#: pg_dumpall.c:387 +#: pg_dumpall.c:402 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "--exclude-database オプションは -g/--globals-only、-r/--roles-only もしくは -t/--tablespaces-only と一緒には使用できません" -#: pg_dumpall.c:395 +#: pg_dumpall.c:410 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "-g/--globals-onlyと-r/--roles-onlyオプションは同時に使用できません" -#: pg_dumpall.c:402 +#: pg_dumpall.c:417 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "-g/--globals-onlyと-t/--tablespaces-onlyオプションは同時に使用できません" -#: pg_dumpall.c:412 +#: pg_dumpall.c:427 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "-r/--roles-onlyと-t/--tablespaces-onlyオプションは同時に使用できません" -#: pg_dumpall.c:474 pg_dumpall.c:1771 +#: pg_dumpall.c:442 #, c-format -msgid "could not connect to database \"%s\"" -msgstr "データベース\"%s\"へ接続できませんでした" +msgid "option -F/--format=d|c|t requires option -f/--file" +msgstr "オプション -F/--format=d|c|t はオプション -f/--file の指定が必要です" + +#: pg_dumpall.c:524 pg_restore.c:1050 pg_restore.c:1295 +#, c-format +msgid "could not open \"%s\": %m" +msgstr "\"%s\"をオープンできませんでした: %m" -#: pg_dumpall.c:486 +#: pg_dumpall.c:562 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2546,89 +2696,89 @@ msgstr "" "\"postgres\"または\"template1\"データベースに接続できませんでした\n" "代わりのデータベースを指定してください。" -#: pg_dumpall.c:634 +#: pg_dumpall.c:698 #, c-format msgid "" -"%s extracts a PostgreSQL database cluster into an SQL script file.\n" +"%s extracts a PostgreSQL database cluster based on specified dump format.\n" "\n" msgstr "" -"%sはPostgreSQLデータベースクラスタをSQLスクリプトファイルに展開します。\n" +"%sはPostgreSQLデータベースクラスタを指定されたダンプ形式で抽出します。\n" "\n" -#: pg_dumpall.c:636 +#: pg_dumpall.c:700 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [OPTION]...\n" -#: pg_dumpall.c:639 +#: pg_dumpall.c:703 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=ファイル名 出力ファイル名\n" -#: pg_dumpall.c:646 +#: pg_dumpall.c:712 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean 再作成前にデータベースを整理(削除)\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:714 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr "" " -g, --globals-only グローバルオブジェクトのみをダンプし、\n" " データベースをダンプしない\n" -#: pg_dumpall.c:649 pg_restore.c:475 +#: pg_dumpall.c:715 pg_restore.c:672 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner オブジェクトの所有権の復元を省略\n" -#: pg_dumpall.c:650 +#: pg_dumpall.c:716 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr "" " -r, --roles-only ロールのみをダンプ。\n" " データベースとテーブル空間をダンプしない\n" -#: pg_dumpall.c:652 +#: pg_dumpall.c:718 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr "" " -S, --superuser=NAME ダンプで使用するスーパーユーザーのユーザー名を\n" " 指定\n" -#: pg_dumpall.c:653 +#: pg_dumpall.c:719 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr "" " -t, --tablespaces-only テーブル空間のみをダンプ。データベースとロールを\n" " ダンプしない\n" -#: pg_dumpall.c:659 +#: pg_dumpall.c:725 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=PATTERN PATTERNに合致する名前のデータベースを除外\n" -#: pg_dumpall.c:661 +#: pg_dumpall.c:727 #, c-format -msgid " --filter=FILENAME exclude databases specified in FILENAME\n" -msgstr " --filter=FILENAME FILENAMEで指定されているデータベースを除外する\n" +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr " --filter=FILENAME FILENAMEで指定された式に基づいてデータベースを除外する\n" -#: pg_dumpall.c:667 +#: pg_dumpall.c:735 #, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords ロールのパスワードをダンプしない\n" -#: pg_dumpall.c:683 +#: pg_dumpall.c:757 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CONSTR 接続文字列を用いた接続\n" -#: pg_dumpall.c:685 +#: pg_dumpall.c:759 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAME 代替のデフォルトデータベースを指定\n" -#: pg_dumpall.c:692 +#: pg_dumpall.c:766 #, c-format msgid "" "\n" @@ -2640,157 +2790,210 @@ msgstr "" "-f/--file が指定されない場合、SQLスクリプトは標準出力に書き出されます。\n" "\n" -#: pg_dumpall.c:837 +#: pg_dumpall.c:911 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "\"pg_\"で始まるロール名はスキップされました(%s)" -#: pg_dumpall.c:1059 +#. translator: %s represents a numeric role OID +#: pg_dumpall.c:1125 pg_dumpall.c:1183 pg_dumpall.c:1192 +#, c-format +msgid "found orphaned pg_auth_members entry for role %s" +msgstr "ロール %s に対する pg_auth_members エントリがありましたが、このロールは存在しません" + +#: pg_dumpall.c:1158 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "ロール\"%s\"のメンバーシップに対して正当なダンプ順序が見つかりませんでした" -#: pg_dumpall.c:1194 +#: pg_dumpall.c:1313 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "パラメータ\"%2$s\"のACLリスト(%1$s)をパースできませんでした" -#: pg_dumpall.c:1321 +#: pg_dumpall.c:1440 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "テーブル空間\"%2$s\"のACLリスト(%1$s)をパースできませんでした" -#: pg_dumpall.c:1528 +#: pg_dumpall.c:1657 +#, c-format +msgid "could not create subdirectory \"%s\": %m" +msgstr "サブディレクトリ\"%s\"を作成できませんでした: %m" + +#: pg_dumpall.c:1664 +#, c-format +msgid "could not open map file: %s" +msgstr "マップファイルを開くことができませんでした: %s" + +#: pg_dumpall.c:1681 pg_restore.c:1004 #, c-format msgid "excluding database \"%s\"" msgstr "データベース\"%s\"を除外します" -#: pg_dumpall.c:1532 +#: pg_dumpall.c:1702 #, c-format msgid "dumping database \"%s\"" msgstr "データベース\"%s\"をダンプしています" -#: pg_dumpall.c:1563 +#: pg_dumpall.c:1731 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "データベース\"%s\"のダンプが失敗しました、終了します" -#: pg_dumpall.c:1569 +#: pg_dumpall.c:1744 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "出力ファイル\"%s\"を再オープンできませんでした: %m" -#: pg_dumpall.c:1613 +#: pg_dumpall.c:1812 #, c-format msgid "running \"%s\"" msgstr "\"%s\"を実行しています" -#: pg_dumpall.c:1814 -#, c-format -msgid "could not get server version" -msgstr "サーバーバージョンを取得できませんでした" - -#: pg_dumpall.c:1817 -#, c-format -msgid "could not parse server version \"%s\"" -msgstr "サーバーバージョン\"%s\"をパースできませんでした" - -#: pg_dumpall.c:1887 pg_dumpall.c:1910 -#, c-format -msgid "executing %s" -msgstr "%s を実行しています" - -#: pg_dumpall.c:1982 +#: pg_dumpall.c:1931 msgid "unsupported filter object" msgstr "サポートされていないフィルターオブジェクト" -#: pg_restore.c:329 +#: pg_dumpall.c:1974 +#, c-format +msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", \"p\", or \"t\"" +msgstr "アーカイブ形式\"%s\"が認識できません; \"c\"、\"d\"、\"p\" または\"t\"を指定してください" + +#: pg_restore.c:373 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "-d/--dbnameと-f/--fileのどちらか一方が指定されていなければなりません" -#: pg_restore.c:336 +#: pg_restore.c:377 +#, c-format +msgid "option --exclude-database cannot be used together with -g/--globals-only" +msgstr "オプション --exclude-database は -g/--globals-only と一緒には使用できません" + +#: pg_restore.c:387 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "オプション-d/--dbnameと-f/--fileは同時に使用できません" -#: pg_restore.c:350 +#: pg_restore.c:422 #, c-format msgid "options -1/--single-transaction and --transaction-size cannot be used together" msgstr "オプション -1/--single-transaction と --transaction-size とは同時には使用できません" -#: pg_restore.c:357 +#: pg_restore.c:429 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "オプション-C/--createと-1/--single-transactionとは同時には使用できません" -#: pg_restore.c:361 +#: pg_restore.c:433 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "--single-transaction と複数ジョブは同時には指定できません" -#: pg_restore.c:399 +#: pg_restore.c:481 +#, c-format +msgid "archive format \"%s\" is not supported; please use psql" +msgstr "アーカイブ形式\"%s\"はサポートされていません、psqlを使ってください" + +#: pg_restore.c:485 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "アーカイブ形式\"%s\"が認識できません; \"c\"、\"d\"または\"t\"を指定してください" -#: pg_restore.c:438 +#: pg_restore.c:506 +#, c-format +msgid "option -l/--list cannot be used when restoring an archive created by pg_dumpall" +msgstr "オプション -l/--list はpg_dumpallで作成されたアーカイブの復元では使用できません" + +#: pg_restore.c:508 +#, c-format +msgid "option -L/--use-list cannot be used when restoring an archive created by pg_dumpall" +msgstr "オプション-L/--use-list はpg_dumpallで作成されたアーカイブの復元では使用できません" + +#: pg_restore.c:516 +#, c-format +msgid "-C/--create option should be specified when restoring an archive created by pg_dumpall" +msgstr "pg_dumpallで作成されたアーカイブを復元する際には、-C/--create オプションの指定が必要です" + +#: pg_restore.c:518 +#, c-format +msgid "Individual databases can be restored using their specific archives." +msgstr "各々のデータベースは対応するアーカイブを使って復元できます。" + +#: pg_restore.c:550 +#, c-format +msgid "database restoring skipped as -g/--globals-only option was specified" +msgstr "-g/--globals-only オプションが指定されているため、データベースの復元はスキップされました" + +#: pg_restore.c:565 +#, c-format +msgid "option --exclude-database can be used only when restoring an archive created by pg_dumpall" +msgstr "オプション --exclude-database はpg_dumpallで作成したアーカイブの復元時のみ使用できます" + +#: pg_restore.c:568 +#, c-format +msgid "option -g/--globals-only can be used only when restoring an archive created by pg_dumpall" +msgstr "オプション -g/--globals-only はpg_dumpallで作成したアーカイブの復元時のみ使用できます" + +#: pg_restore.c:576 #, c-format msgid "errors ignored on restore: %d" msgstr "リストア中に無視されたエラー数: %d" -#: pg_restore.c:451 +#: pg_restore.c:646 #, c-format msgid "" -"%s restores a PostgreSQL database from an archive created by pg_dump.\n" +"%s restores a PostgreSQL database from an archive created by pg_dump or pg_dumpall.\n" +"If the archive is created by pg_dumpall, then restores multiple databases also.\n" "\n" msgstr "" -"%sはpg_dumpで作成したアーカイブからPostgreSQLデータベースをリストアします。\n" +"%sはpg_dumpまたはpg_dumpallで作成したアーカイブからPostgreSQLデータベースを復元します。\n" +"pg_dumpallで作成されたものの場合は、複数のデータベースを復元します。\n" "\n" -#: pg_restore.c:453 +#: pg_restore.c:649 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPTION]... [FILE]\n" -#: pg_restore.c:456 +#: pg_restore.c:652 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAME 接続するデータベース名\n" -#: pg_restore.c:457 +#: pg_restore.c:653 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILENAME 出力ファイル名(- で標準出力)\n" -#: pg_restore.c:458 +#: pg_restore.c:654 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr "" " -F, --format=c|d|t バックアップファイルの形式\n" " (自動的に設定されるはずです)\n" -#: pg_restore.c:459 +#: pg_restore.c:655 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list アーカイブのTOCの要約を表示\n" -#: pg_restore.c:460 +#: pg_restore.c:656 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose 冗長モード\n" -#: pg_restore.c:461 +#: pg_restore.c:657 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示し、終了します\n" -#: pg_restore.c:462 +#: pg_restore.c:658 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示し、終了します\n" -#: pg_restore.c:464 +#: pg_restore.c:660 #, c-format msgid "" "\n" @@ -2799,32 +3002,39 @@ msgstr "" "\n" "リストア制御用のオプション:\n" -#: pg_restore.c:465 +#: pg_restore.c:661 #, c-format msgid " -a, --data-only restore only the data, no schema\n" -msgstr " -a, --data-only データのみをリストア。スキーマをリストアしません\n" +msgstr " -a, --data-only データのみをリストア。スキーマをリストアしない\n" -#: pg_restore.c:467 +#: pg_restore.c:663 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create 対象のデータベースを作成\n" -#: pg_restore.c:468 +#: pg_restore.c:664 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error エラー時に終了。デフォルトは継続\n" -#: pg_restore.c:469 +#: pg_restore.c:665 +#, c-format +msgid " -g, --globals-only restore only global objects, no databases\n" +msgstr "" +" -g, --globals-only グローバルオブジェクトのみを復元し、\n" +" データベースを復元しない\n" + +#: pg_restore.c:666 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME 指名したインデックスをリストア\n" -#: pg_restore.c:470 +#: pg_restore.c:667 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM リストア時に指定した数の並列ジョブを使用\n" -#: pg_restore.c:471 +#: pg_restore.c:668 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2833,57 +3043,62 @@ msgstr "" " -L, --use-list=FILENAME このファイルの内容に従って SELECT や\n" " 出力のソートを行います\n" -#: pg_restore.c:473 +#: pg_restore.c:670 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME 指定したスキーマのオブジェクトのみをリストア\n" -#: pg_restore.c:474 +#: pg_restore.c:671 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAME 指定したスキーマのオブジェクトはリストアしない\n" -#: pg_restore.c:476 +#: pg_restore.c:673 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAME(args) 指名された関数をリストア\n" -#: pg_restore.c:477 +#: pg_restore.c:674 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" -msgstr " -s, --schema-only スキーマのみをリストア。データをリストアしません\n" +msgstr " -s, --schema-only スキーマのみをリストア。データをリストアしない\n" -#: pg_restore.c:478 +#: pg_restore.c:675 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAME トリガを無効にするためのスーパーユーザーの名前\n" -#: pg_restore.c:479 +#: pg_restore.c:676 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAME 指名したリレーション(テーブル、ビューなど)をリストア\n" -#: pg_restore.c:480 +#: pg_restore.c:677 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME 指名したトリガをリストア\n" -#: pg_restore.c:481 +#: pg_restore.c:678 +#, c-format +msgid " --exclude-database=PATTERN exclude databases whose name matches with pattern\n" +msgstr " --exclude-database=<パターン> <パターン>に合致する名前のデータベースを除外\n" + +#: pg_restore.c:679 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges アクセス権限(grant/revoke)の復元を省略\n" -#: pg_restore.c:482 +#: pg_restore.c:680 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction 単一のトランザクションとしてリストア\n" -#: pg_restore.c:484 +#: pg_restore.c:682 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security 行セキュリティを有効にします\n" -#: pg_restore.c:485 +#: pg_restore.c:683 #, c-format msgid "" " --filter=FILENAME restore or skip objects based on expressions\n" @@ -2892,72 +3107,97 @@ msgstr "" " --filter=FILENAME オブジェクトの復元またはスキップをFILENAMEに\n" " 記述されている式を元に行う\n" -#: pg_restore.c:488 +#: pg_restore.c:686 +#, c-format +msgid " --no-comments do not restore comment commands\n" +msgstr " --no-comments コメントコマンドをリストアしない\n" + +#: pg_restore.c:687 #, c-format -msgid " --no-comments do not restore comments\n" -msgstr " --no-comments コメントをリストアしない\n" +msgid " --no-data do not restore data\n" +msgstr " --no-data データをリストアしない\n" -#: pg_restore.c:489 +#: pg_restore.c:688 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" " created\n" msgstr "" " --no-data-for-failed-tables 作成できなかったテーッブルのデータはリストア\n" -" しません\n" +" しない\n" -#: pg_restore.c:491 +#: pg_restore.c:690 +#, c-format +msgid " --no-policies do not restore row security policies\n" +msgstr " --no-policies 行セキュリティポリシーをリストアしない\n" + +#: pg_restore.c:691 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications パブリケーションをリストアしない\n" -#: pg_restore.c:492 +#: pg_restore.c:692 +#, c-format +msgid " --no-schema do not restore schema\n" +msgstr " --no-schema スキーマをリストアしない\n" + +#: pg_restore.c:693 #, c-format msgid " --no-security-labels do not restore security labels\n" -msgstr " --no-security-labels セキュリティラベルをリストアしません\n" +msgstr " --no-security-labels セキュリティラベルをリストアしない\n" -#: pg_restore.c:493 +#: pg_restore.c:694 +#, c-format +msgid " --no-statistics do not restore statistics\n" +msgstr " --no-statistics 統計情報をリストアしない\n" + +#: pg_restore.c:695 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions サブスクリプションをリストアしない\n" -#: pg_restore.c:494 +#: pg_restore.c:696 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method テーブルアクセスメソッドをリストアしない\n" -#: pg_restore.c:495 +#: pg_restore.c:697 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" -msgstr " --no-tablespaces テーブル空間の割り当てをリストアしません\n" +msgstr " --no-tablespaces テーブル空間の割り当てをリストアしない\n" -#: pg_restore.c:496 +#: pg_restore.c:698 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr " --section=SECTION 指定されたセクション(データ前部、データ、データ後部)をリストア\n" -#: pg_restore.c:499 +#: pg_restore.c:699 +#, c-format +msgid " --statistics-only restore only the statistics, not schema or data\n" +msgstr " --statistics-only 統計情報のみをリストア、スキーマまたはデータをリストアしない\n" + +#: pg_restore.c:702 #, c-format msgid " --transaction-size=N commit after every N objects\n" msgstr " --transaction-size=N Nオブジェクトごとにコミットします\n" -#: pg_restore.c:510 +#: pg_restore.c:716 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME リストアに先立って SET ROLE します\n" -#: pg_restore.c:512 +#: pg_restore.c:718 #, c-format msgid "" "\n" -"The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n" -"multiple times to select multiple objects.\n" +"The options -I, -n, -N, -P, -t, -T, --section, and --exclude-database can be combined\n" +"and specified multiple times to select multiple objects.\n" msgstr "" "\n" -" -I, -n, -N, -P, -t, -T および --section オプションは組み合わせて複数回\n" -"指定することで複数のオブジェクトを指定できます。\n" +"オプション -I、-n、-N、-P、-t、-T、--section および --exclude-databaseを組み\n" +"合わせて複数回指定することで複数のオブジェクトを指定できます。\n" -#: pg_restore.c:515 +#: pg_restore.c:721 #, c-format msgid "" "\n" @@ -2967,3 +3207,95 @@ msgstr "" "\n" "入力ファイル名が指定されない場合、標準入力が使用されます。\n" "\n" + +#: pg_restore.c:940 +#, c-format +msgid "considering PATTERN as NAME for --exclude-database option as no db connection while doing pg_restore." +msgstr "pg_restoreの実行中にDB接続がないため、--exclude-database オプションの<パターン>は<名前>とみなします。" + +#: pg_restore.c:985 +#, c-format +msgid "database \"%s\" matches exclude pattern: \"%s\"" +msgstr "データベース\"%s\"は除外パターンに合致します: \"%s\"" + +#: pg_restore.c:1040 +#, c-format +msgid "database restoring is skipped as \"map.dat\" is not present in \"%s\"" +msgstr "\"%s\"に \"map.dat\" がないため、データベースの復元をスキップします" + +#: pg_restore.c:1069 +#, c-format +msgid "found database \"%s\" (OID: %u) in \"%s\"" +msgstr "\"%3$s\" 内でデータベース \"%1$s\" (OID: %2$u) を検出しました。" + +#: pg_restore.c:1074 +#, c-format +msgid "invalid entry in \"%s\" at line : %d" +msgstr "\"%s\" 内に不正なエントリ: 行 %d" + +#: pg_restore.c:1123 +#, c-format +msgid "found %d database names in \"map.dat\"" +msgstr "\"map.dat\" 内に %d 個のデータベースを検出しました" + +#: pg_restore.c:1127 +#, c-format +msgid "trying to connect database \"postgres\"" +msgstr "データベース\"postgres\"に接続を試みています" + +#: pg_restore.c:1136 +#, c-format +msgid "trying to connect database \"template1\"" +msgstr "データベース\"template1\"に接続を試みています" + +#: pg_restore.c:1160 +#, c-format +msgid "no database needs to restore out of %d databases" +msgstr "%d 個のデータベースの中で復元が必要なものはありません" + +#: pg_restore.c:1164 +#, c-format +msgid "need to restore %d databases out of %d databases" +msgstr "%2$d 個のうち %1$d 個のデータベースの復元が必要です" + +#: pg_restore.c:1213 +#, c-format +msgid "restoring database \"%s\"" +msgstr "データベース\"%s\"の復元中" + +#: pg_restore.c:1254 +#, c-format +msgid "errors ignored on database \"%s\" restore: %d" +msgstr "データベース\"%s\"の復元中に無視されたエラー数: %d" + +#: pg_restore.c:1261 +#, c-format +msgid "number of restored databases is %d" +msgstr "復元されたデータベースの数は %d です" + +#: pg_restore.c:1324 +#, c-format +msgid "executing query: %s" +msgstr "実行クエリ: %s" + +#: pg_restore.c:1335 +#, c-format +msgid "" +"could not execute query: \"%s\" \n" +"Command was: \"%s\"" +msgstr "" +"クエリを実行できませんでした: \"%s\"\n" +"コマンドは: \"%s\"" + +#: pg_restore.c:1342 +#, c-format +msgid "ignored %d errors in \"%s\"" +msgstr "\"%2$s\" 内のエラー%1$d件を無視しました" + +#: pg_restore.c:1373 +#, c-format +msgid "could not open file: \"%s\"" +msgstr "ファイルを開くことができませんでした: \"%s\"" + +#~ msgid "could not close directory \"%s\": %m" +#~ msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" diff --git a/src/bin/pg_dump/po/ka.po b/src/bin/pg_dump/po/ka.po index 7b08ff6f9a27f..c045ae7574845 100644 --- a/src/bin/pg_dump/po/ka.po +++ b/src/bin/pg_dump/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_dump (PostgreSQL) 17\n" +"Project-Id-Version: pg_dump (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:22+0000\n" -"PO-Revision-Date: 2024-06-14 06:14+0200\n" +"POT-Creation-Date: 2025-05-02 22:21+0000\n" +"PO-Revision-Date: 2025-05-03 01:26+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,31 +16,31 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "warning: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " #: ../../common/compression.c:132 ../../common/compression.c:141 #: ../../common/compression.c:150 compress_gzip.c:413 compress_gzip.c:420 -#: compress_io.c:109 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 +#: compress_io.c:108 compress_lz4.c:780 compress_lz4.c:787 compress_zstd.c:25 #: compress_zstd.c:31 #, c-format msgid "this build does not support compression with %s" @@ -110,27 +110,27 @@ msgstr "გასაშვებად ფაილის \"%s\" პოვნა msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "ბილიკის (\"%s\") აბსოლუტურ ფორმაში ამოხსნის შეცდომა: %m" -#: ../../common/exec.c:382 +#: ../../common/exec.c:363 #, c-format msgid "could not execute command \"%s\": %m" msgstr "ბრძანების (\"%s\") შესრულების შეცდომა: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "ბრძანებიდან \"%s\" წაკითხვის შეცდომა: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "ბრძანებამ \"%s\" მონაცემები არ დააბრუნა" -#: ../../common/exec.c:424 parallel.c:1609 +#: ../../common/exec.c:405 parallel.c:1621 #, c-format msgid "%s() failed: %m" msgstr "%s()-ის შეცდომა: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" @@ -145,45 +145,44 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 dumputils.c:905 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 -#: pg_backup_directory.c:182 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -233,242 +232,242 @@ msgstr "%s არაა საზღვრებში %d-დან %d-მდე msgid "unrecognized sync method: %s" msgstr "უცნობი სინქრონიზაციის მეთოდი: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: common.c:135 +#: common.c:111 #, c-format msgid "reading extensions" msgstr "გაფართოებების წაკითხვა" -#: common.c:138 +#: common.c:114 #, c-format msgid "identifying extension members" msgstr "გაფართოების ნომრების იდენტიფიკაცია" -#: common.c:141 +#: common.c:117 #, c-format msgid "reading schemas" msgstr "სქემების კითხვა" -#: common.c:150 +#: common.c:126 #, c-format msgid "reading user-defined tables" msgstr "მომხმარებლის მიერ განსაზღვრული ცხრილების კითხვა" -#: common.c:155 +#: common.c:131 #, c-format msgid "reading user-defined functions" msgstr "მომხმარებლის მიერ განსაზღვრული ფუნქციების კითხვა" -#: common.c:159 +#: common.c:135 #, c-format msgid "reading user-defined types" msgstr "მომხმარებლის მიერ განსაზღვრული ტიპების კითხვა" -#: common.c:163 +#: common.c:139 #, c-format msgid "reading procedural languages" msgstr "პროცედურული ენების კითხვა" -#: common.c:166 +#: common.c:142 #, c-format msgid "reading user-defined aggregate functions" msgstr "მომხმარებლის მიერ განსაზღვრული აგრეგატული ფუნქციების კითხვა" -#: common.c:169 +#: common.c:145 #, c-format msgid "reading user-defined operators" msgstr "მომხმარებლის მიერ განსაზღვრული ოპერატორების კითხვა" -#: common.c:172 +#: common.c:148 #, c-format msgid "reading user-defined access methods" msgstr "მომხმარებლის მიერ განსაზღვრული წვდომის მეთოდების კითხვა" -#: common.c:175 +#: common.c:151 #, c-format msgid "reading user-defined operator classes" msgstr "მომხმარებლის მიერ განსაზღვრული ოპერატორის კლასების კითხვა" -#: common.c:178 +#: common.c:154 #, c-format msgid "reading user-defined operator families" msgstr "მომხმარებლის მიერ განსაზღვრული ოპერატორის ოჯახების კითხვა" -#: common.c:181 +#: common.c:157 #, c-format msgid "reading user-defined text search parsers" msgstr "მომხმარებლის მიერ განსაზღვრული ტექსტის ძებნის დამმუშავებლების კითხვა" -#: common.c:184 +#: common.c:160 #, c-format msgid "reading user-defined text search templates" msgstr "მომხმარებლის მიერ განსაზღვრული ტექსტის ძებნის შაბლონების კითხვა" -#: common.c:187 +#: common.c:163 #, c-format msgid "reading user-defined text search dictionaries" msgstr "მომხმარებლის მიერ განსაზღვრული ტექსტის ძებნის ლექსიკონების კითხვა" -#: common.c:190 +#: common.c:166 #, c-format msgid "reading user-defined text search configurations" msgstr "მომხმარებლის მიერ განსაზღვრული ტექსტის ძებნის კონფიგურაციების კითხვა" -#: common.c:193 +#: common.c:169 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "მომხმარებლის მიერ განსაზღვრული გარე მონაცემების გადამტანების კითხვა" -#: common.c:196 +#: common.c:172 #, c-format msgid "reading user-defined foreign servers" msgstr "მომხმარებლის მიერ განსაზღვრული გარე სერვერების კითხვა" -#: common.c:199 +#: common.c:175 #, c-format msgid "reading default privileges" msgstr "ნაგულისხმევი წვდომების კითხვა" -#: common.c:202 +#: common.c:178 #, c-format msgid "reading user-defined collations" msgstr "მომხმარებლის მიერ განსაზღვრული კოლაციების კითხვა" -#: common.c:205 +#: common.c:181 #, c-format msgid "reading user-defined conversions" msgstr "მომხმარებლის მიერ განსაზღვრული გადაყვანების კითხვა" -#: common.c:208 +#: common.c:184 #, c-format msgid "reading type casts" msgstr "ტიპის კასტების კითხვა" -#: common.c:211 +#: common.c:187 #, c-format msgid "reading transforms" msgstr "გარდაქმნების კითხვა" -#: common.c:214 +#: common.c:190 #, c-format msgid "reading table inheritance information" msgstr "ცხრილების მეკვიდრეობითობის ინფორმაციის კითხვა" -#: common.c:217 +#: common.c:193 #, c-format msgid "reading event triggers" msgstr "მოვლენების ტრიგერების კითხვა" -#: common.c:221 +#: common.c:197 #, c-format msgid "finding extension tables" msgstr "გაფართოების ცხრილების მოძებნა" -#: common.c:225 +#: common.c:201 #, c-format msgid "finding inheritance relationships" msgstr "მემკვიდრეობითი ურთიერთობების მოძებნა" -#: common.c:228 +#: common.c:204 #, c-format msgid "reading column info for interesting tables" msgstr "საინტერესო ცხრილების სვეტების ინფორმაციის კითხვა" -#: common.c:231 +#: common.c:207 #, c-format msgid "flagging inherited columns in subtables" msgstr "ქვეცხრილებში მემკვიდრეობით სვეტებზე ალმის დასმა" -#: common.c:234 +#: common.c:210 #, c-format msgid "reading partitioning data" msgstr "დანაყოფების მონაცემების კითხვა" -#: common.c:237 +#: common.c:213 #, c-format msgid "reading indexes" msgstr "ინდექსების კითხვა" -#: common.c:240 +#: common.c:216 #, c-format msgid "flagging indexes in partitioned tables" msgstr "დაყოფილ ცხრილებში ინდექსებზე ალმის დასმა" -#: common.c:243 +#: common.c:219 #, c-format msgid "reading extended statistics" msgstr "გაფართოებული სტატისტიკის კითხვა" -#: common.c:246 +#: common.c:222 #, c-format msgid "reading constraints" msgstr "შეზღუდვების კითხვა" -#: common.c:249 +#: common.c:225 #, c-format msgid "reading triggers" msgstr "ტრიგერების კითხვა" -#: common.c:252 +#: common.c:228 #, c-format msgid "reading rewrite rules" msgstr "გადაწერის წესების კითხვა" -#: common.c:255 +#: common.c:231 #, c-format msgid "reading policies" msgstr "წესების კითხვა" -#: common.c:258 +#: common.c:234 #, c-format msgid "reading publications" msgstr "გამოცემების კითხვა" -#: common.c:261 +#: common.c:237 #, c-format msgid "reading publication membership of tables" msgstr "ცხრილების გამოცემის წევრობის კითხვა" -#: common.c:264 +#: common.c:240 #, c-format msgid "reading publication membership of schemas" msgstr "სქემების გამოცემის წევრობის კითხვა" -#: common.c:267 +#: common.c:243 #, c-format msgid "reading subscriptions" msgstr "გამოწერების კითხვა" -#: common.c:270 +#: common.c:246 #, c-format msgid "reading subscription membership of tables" msgstr "ცხრილების გამოწერის წევრობის კითხვა" -#: common.c:333 +#: common.c:309 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "სისწორის შემოწმების შეცდომა. ცხრილის (\"%2$s\", OID %3$u) მშობელი OID (%1$u) არ არსებობს" -#: common.c:375 +#: common.c:351 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "მშობლების არასწორი რაოდენობა %d ცხრილისთვის \"%s\"" -#: common.c:1098 +#: common.c:1109 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "რიცხვითი მასივის \"%s\" დამუშავების შეცდომა: მეტისმეტად ბევრი რიცხვი" -#: common.c:1110 +#: common.c:1121 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "რიცხვითი მასივის \"%s\" დამუშავების შეცდომა: რიცხვში არასწორის სიმბოლოებია" @@ -504,13 +503,13 @@ msgid "could not read from input file: %s" msgstr "შეყვანის ფაილების წაკითხვის შეცდომა: %s" #: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 -#: compress_zstd.c:373 pg_backup_custom.c:651 +#: compress_zstd.c:375 pg_backup_custom.c:650 #, c-format msgid "could not read from input file: %m" msgstr "შემოსატანი ფაილის წაკითხვის შეცდომა: %m" #: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 -#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: compress_zstd.c:373 pg_backup_custom.c:648 pg_backup_directory.c:533 #: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" @@ -551,93 +550,163 @@ msgstr "დეკომპრესიის დასრულების შ msgid "could not set compression parameter \"%s\": %s" msgstr "შეკუმშვის პარამეტრის (%s) დაყენების შეცდომა: %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:233 compress_zstd.c:492 +#: compress_zstd.c:500 #, c-format msgid "could not initialize compression library" msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზაციის შეცდომა" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:196 compress_zstd.c:310 #, c-format msgid "could not decompress data: %s" msgstr "მონაცემების გაშლის შეცდომა: %s" -#: compress_zstd.c:501 +#: compress_zstd.c:503 #, c-format msgid "unhandled mode \"%s\"" msgstr "დაუმუშავებელი რეჟიმი \"%s\"" -#: filter.c:49 +#: connectdb.c:56 connectdb.c:165 pg_backup_db.c:126 +msgid "Password: " +msgstr "პაროლი: " + +#: connectdb.c:83 connectdb.c:174 pg_backup_db.c:203 pg_dump.c:925 +#: pg_dump_sort.c:1251 pg_dump_sort.c:1271 +#, c-format +msgid "%s" +msgstr "%s" + +#: connectdb.c:157 pg_dumpall.c:548 pg_restore.c:544 +#, c-format +msgid "could not connect to database \"%s\"" +msgstr "მონაცემთა ბაზასთან დაკავშირება ვერ მოხერხდა \"%s\"" + +#: connectdb.c:201 +#, c-format +msgid "could not get server version" +msgstr "სერვერის ვერსიის მღების შეცდომა" + +#: connectdb.c:205 +#, c-format +msgid "could not parse server version \"%s\"" +msgstr "შერვერის ვერსიის დამუშავების შეცდომა: %s" + +#: connectdb.c:222 pg_backup_db.c:52 +#, c-format +msgid "aborting because of server version mismatch" +msgstr "ოპერაცია გაუქმდა სერვერის ვერსიის შეუთავსებლობის გამო" + +#: connectdb.c:223 pg_backup_db.c:53 +#, c-format +msgid "server version: %s; %s version: %s" +msgstr "სერვერის ვერსია: %s; %s ვერსია: %s" + +#: connectdb.c:282 pg_dumpall.c:1859 +#, c-format +msgid "executing %s" +msgstr "%s -ის შესრულება" + +#: connectdb.c:288 pg_backup_db.c:210 pg_dumpall.c:1865 +#, c-format +msgid "query failed: %s" +msgstr "მოთხოვნის შეცდომა: %s" + +#: connectdb.c:289 pg_backup_db.c:212 pg_dumpall.c:1866 +#, c-format +msgid "Query was: %s" +msgstr "მოთხოვნის შინაარსი: %s" + +#: dumputils.c:910 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" + +#: dumputils.c:915 +#, c-format +msgid "could not change permissions of directory \"%s\": %m" +msgstr "საქაღალდის წვდომების შეცვლა შეუძლებელია \"%s\": %m" + +#: dumputils.c:920 +#, c-format +msgid "directory \"%s\" is not empty" +msgstr "საქაღალდე \"%s\" მაგრამ ცარიელი არაა" + +#: filter.c:48 #, c-format msgid "could not open filter file \"%s\": %m" msgstr "ფილტრის ფაილის \"%s\" გახსნის შეცდომა: %m" -#: filter.c:72 +#: filter.c:71 #, c-format msgid "could not close filter file \"%s\": %m" msgstr "ფილტრის ფაილის \"%s\" დახურვის შეცდომა: %m" #: filter.c:164 #, c-format -msgid "invalid format in filter read from \"%s\" on line %d: %s" -msgstr "არასწორი ფორმატი ფილტრში, რომელიც წავიკითხე \"%s\"-დან, ხაზზე %d: %s" +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "არასწორი ფორმატი ფილტრში, რომელიც წავიკითხე სტანდარტული შეყვანიდან, ხაზზე %d: %s" -#: filter.c:239 filter.c:466 +#: filter.c:167 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "არასწორი ფორმატი ფილტრში, რომელიც წავიკითხე ფაილიდან \"%s\", ხაზზე %d: %s" + +#: filter.c:240 filter.c:467 #, c-format msgid "could not read from filter file \"%s\": %m" msgstr "ფილტრის ფაილიდან \"%s\" წაკითხვა შეუძლებელია: %m" -#: filter.c:242 +#: filter.c:243 msgid "unexpected end of file" msgstr "ფაილის მოულოდნელი დასასრული" -#: filter.c:309 +#: filter.c:310 msgid "missing object name pattern" msgstr "აკლია ობიექტის სახელის ნიმუში" -#: filter.c:420 +#: filter.c:421 msgid "no filter command found (expected \"include\" or \"exclude\")" msgstr "ფილტრის ბრძანება ვერ ვიპოვე (მოველოდი \"include\" ან \"exclude\")" -#: filter.c:431 +#: filter.c:432 msgid "invalid filter command (expected \"include\" or \"exclude\")" msgstr "არასწორი ფილტრის ბრძანება (მოველოდი \"include\" ან \"exclude\")" -#: filter.c:438 +#: filter.c:439 msgid "missing filter object type" msgstr "აკლია ფილტრის ობიექტის ტიპი" -#: filter.c:445 +#: filter.c:446 #, c-format msgid "unsupported filter object type: \"%.*s\"" msgstr "მხარდაუჭერელი ფილტრის ობიექტის ტიპი: \"%.*s\"" -#: parallel.c:251 +#: parallel.c:253 #, c-format msgid "%s() failed: error code %d" msgstr "%s() -ის შეცდომა: შეცდომის კოდი: %d" -#: parallel.c:959 +#: parallel.c:971 #, c-format msgid "could not create communication channels: %m" msgstr "საკომუნიკაციო არხების შექმნა ვერ მოხერხდა: %m" -#: parallel.c:1016 +#: parallel.c:1028 #, c-format msgid "could not create worker process: %m" msgstr "დამხმარე პროცესის შექმნა შეუძლებელია: %m" -#: parallel.c:1146 +#: parallel.c:1158 #, c-format msgid "unrecognized command received from leader: \"%s\"" msgstr "თავსართიდან მიღებული ბრძანება უცნობია: %s" -#: parallel.c:1189 parallel.c:1427 +#: parallel.c:1201 parallel.c:1439 #, c-format msgid "invalid message received from worker: \"%s\"" msgstr "დამხმარე პროცესისგან მიღებულია არასწორი შეტყობინება: %s" -#: parallel.c:1321 +#: parallel.c:1333 #, c-format msgid "" "could not obtain lock on relation \"%s\"\n" @@ -646,727 +715,688 @@ msgstr "" "ურთიერთობის (\"%s\") დაბლოკვის შეცდომა\n" "ეს ჩვეულებრივ ნიშნავს, რომ ვინმემ მოითხოვა ACCESS EXCLUSIVE ბლოკი ცხრილზე მას შემდეგ, რაც pg_dump-ის მშობელმა პროცესმა საწყისი ACCESS SHARE ბლოკი ცხრილზე უკვე მიიღო." -#: parallel.c:1410 +#: parallel.c:1422 #, c-format msgid "a worker process died unexpectedly" msgstr "დამხმარე პროტოკოლის პროცესი მოულოდნელად მოკვდა" -#: parallel.c:1532 parallel.c:1650 +#: parallel.c:1544 parallel.c:1662 #, c-format msgid "could not write to the communication channel: %m" msgstr "საკომუნიკაციო არხში ჩაწერის შეცდომა: %m" -#: parallel.c:1734 +#: parallel.c:1746 #, c-format msgid "pgpipe: could not create socket: error code %d" msgstr "pgpipe: სოკეტის შექმნის შეცდომა. შეცდომის კოდი: %d" -#: parallel.c:1745 +#: parallel.c:1757 #, c-format msgid "pgpipe: could not bind: error code %d" msgstr "pgpipe: მიბმის შეცდომა: შეცდომის კოდი: %d" -#: parallel.c:1752 +#: parallel.c:1764 #, c-format msgid "pgpipe: could not listen: error code %d" msgstr "pgpipe: მოსმენის შეცდომა: შეცდომის კოდი: %d" -#: parallel.c:1759 +#: parallel.c:1771 #, c-format msgid "pgpipe: %s() failed: error code %d" msgstr "pgpipe: %s() -ის შეცდომა: შეცდომის კოდი %d" -#: parallel.c:1770 +#: parallel.c:1782 #, c-format msgid "pgpipe: could not create second socket: error code %d" msgstr "pgpipe: მეორე სოკეტის შექნა შეუძლებელია: შეცდომის კოდი: %d" -#: parallel.c:1779 +#: parallel.c:1791 #, c-format msgid "pgpipe: could not connect socket: error code %d" msgstr "pgpipe: სოკეტთან მიერთების შეცდომა: შეცდომის კოდი %d" -#: parallel.c:1788 +#: parallel.c:1800 #, c-format msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: შეერთების დადასტურება შეუძლებელია: შეცდომის კოდი %d" -#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 +#: pg_backup_archiver.c:269 pg_backup_archiver.c:1732 #, c-format msgid "could not close output file: %m" msgstr "გამოტანის ფაილის დახურვის შეცდომა: %m" -#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 +#: pg_backup_archiver.c:313 pg_backup_archiver.c:317 #, c-format msgid "archive items not in correct section order" msgstr "არქივის ჩანაწერების მიმდევრობა არასწორია" -#: pg_backup_archiver.c:315 +#: pg_backup_archiver.c:323 #, c-format msgid "unexpected section code %d" msgstr "სექციის მოულოდნელი კოდი %d" -#: pg_backup_archiver.c:352 +#: pg_backup_archiver.c:365 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "არქივის ფაილის ამ ფორმატზე პარალელური აღდგენა მხარდაჭერილი არაა" -#: pg_backup_archiver.c:356 +#: pg_backup_archiver.c:369 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "არქივის ფაილზე, რომელიც 8.0 pg_dump-ით ან უფრო ძველით შეიქმნა, პარალელური აღდგენა მხარდაჭერილი არაა" -#: pg_backup_archiver.c:377 +#: pg_backup_archiver.c:390 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "შეკუმშული არქივიდან (%s) აღდგენა შეუძლებელია" -#: pg_backup_archiver.c:397 +#: pg_backup_archiver.c:410 #, c-format msgid "connecting to database for restore" msgstr "მონაცემთა ბაზასთან დაკავშირება აღდგენისთვის" -#: pg_backup_archiver.c:399 +#: pg_backup_archiver.c:412 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "ბაზასთან პირდაპირი შეერთება 1.3 ან უფრო ძველ არქივებში მხარდაჭერილი არაა" -#: pg_backup_archiver.c:442 +#: pg_backup_archiver.c:455 #, c-format -msgid "implied data-only restore" -msgstr "მხოლოდ მონაცემთა აღდგენა" +msgid "implied no-schema restore" +msgstr "სავარაუდო no-schema აღდგენა" -#: pg_backup_archiver.c:510 +#: pg_backup_archiver.c:523 #, c-format msgid "dropping %s %s" msgstr "მოცილება %s %s" -#: pg_backup_archiver.c:642 +#: pg_backup_archiver.c:655 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "ვერ ვიპოვე, ოპერაციაში \"%s\" IF EXISTS სად უნდა ჩავსვა" -#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 +#: pg_backup_archiver.c:841 pg_backup_archiver.c:843 #, c-format msgid "warning from original dump file: %s" msgstr "გაფრთხილება საწყისი გამოტანილი ფაილიდან: %s" -#: pg_backup_archiver.c:864 +#: pg_backup_archiver.c:877 #, c-format msgid "creating %s \"%s.%s\"" msgstr "იქმნება %s \"%s.%s\"" -#: pg_backup_archiver.c:867 +#: pg_backup_archiver.c:880 #, c-format msgid "creating %s \"%s\"" msgstr "იქმნება %s \"%s\"" -#: pg_backup_archiver.c:917 +#: pg_backup_archiver.c:930 #, c-format msgid "connecting to new database \"%s\"" msgstr "ახალ ბაზასთან მიერთება \"%s\"" -#: pg_backup_archiver.c:944 +#: pg_backup_archiver.c:957 #, c-format msgid "processing %s" msgstr "დამუშავება %s" -#: pg_backup_archiver.c:966 +#: pg_backup_archiver.c:979 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "მონაცემების დამუშავება ცხრილისთვის \"%s.%s\"" -#: pg_backup_archiver.c:1036 +#: pg_backup_archiver.c:1049 #, c-format msgid "executing %s %s" msgstr "შესრულება %s %s" -#: pg_backup_archiver.c:1096 +#: pg_backup_archiver.c:1118 #, c-format msgid "disabling triggers for %s" msgstr "%s-სთვის ტრიგერების გამორთვა" -#: pg_backup_archiver.c:1122 +#: pg_backup_archiver.c:1144 #, c-format msgid "enabling triggers for %s" msgstr "%s-სთვის ტრიგერების ჩართვა" -#: pg_backup_archiver.c:1187 +#: pg_backup_archiver.c:1209 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "შიდა შეცდომა -- WriteData-ს DataDumper-ის ქვეპროგრამის კონტექსტის გარეთ ვერ გამოიძახებთ" -#: pg_backup_archiver.c:1379 +#: pg_backup_archiver.c:1404 #, c-format msgid "large-object output not supported in chosen format" msgstr "არჩეულ ფორმატს დიდი ობიექტების გამოტანის საშუალება არ გააჩნია" -#: pg_backup_archiver.c:1442 +#: pg_backup_archiver.c:1467 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "აღდგენილია %d დიდი ობიექტი" msgstr[1] "აღდგენილია %d დიდი ობიექტი" -#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 +#: pg_backup_archiver.c:1494 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "მიმდინარეობს დიდი ობიექტის აღდგენა OID-ით: %u" -#: pg_backup_archiver.c:1481 +#: pg_backup_archiver.c:1506 #, c-format msgid "could not create large object %u: %s" msgstr "დიდი ობიექტის (%u) შექმნის შეცდომა: %s" -#: pg_backup_archiver.c:1486 pg_dump.c:3863 +#: pg_backup_archiver.c:1511 pg_dump.c:4063 #, c-format msgid "could not open large object %u: %s" msgstr "დიდი ობიექტის (%u) გახსნის შეცდომა: %s" -#: pg_backup_archiver.c:1542 +#: pg_backup_archiver.c:1567 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "\"TOC\" ფაილის (%s) გახსნის შეცდომა: %m" -#: pg_backup_archiver.c:1570 +#: pg_backup_archiver.c:1595 #, c-format msgid "line ignored: %s" msgstr "ხაზი გამოტოვებულია: %s" -#: pg_backup_archiver.c:1577 pg_backup_db.c:609 +#: pg_backup_archiver.c:1602 pg_backup_db.c:548 #, c-format msgid "could not find entry for ID %d" msgstr "ჩანაწერი ID-ით %d არ არსებობს" -#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 -#: pg_backup_directory.c:613 +#: pg_backup_archiver.c:1625 pg_backup_directory.c:187 +#: pg_backup_directory.c:581 #, c-format msgid "could not close TOC file: %m" msgstr "\"TOC\" ფაილის დახურვის შეცდომა: %m" -#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 -#: pg_backup_directory.c:600 pg_backup_directory.c:666 -#: pg_backup_directory.c:684 pg_dumpall.c:506 +#: pg_backup_archiver.c:1713 pg_backup_custom.c:151 pg_backup_directory.c:301 +#: pg_backup_directory.c:568 pg_backup_directory.c:634 +#: pg_backup_directory.c:652 pg_dumpall.c:530 #, c-format msgid "could not open output file \"%s\": %m" msgstr "გამოტანის ფაილის (\"%s\") გახსნის შეცდომა: %m" -#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 +#: pg_backup_archiver.c:1715 pg_backup_custom.c:157 #, c-format msgid "could not open output file: %m" msgstr "გამოტანის ფაილის გახსნის შეცდომა: %m" -#: pg_backup_archiver.c:1772 +#: pg_backup_archiver.c:1798 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "ჩაწერილია დიდი ობიექტის მონაცემების %zu ბაიტი (შედეგი = %d)" msgstr[1] "ჩაწერილია დიდი ობიექტის მონაცემების %zu ბაიტი (შედეგი = %d)" -#: pg_backup_archiver.c:1778 +#: pg_backup_archiver.c:1804 #, c-format msgid "could not write to large object: %s" msgstr "დიდი ობიექტის ჩაწერის შეცდომა: %s" -#: pg_backup_archiver.c:1868 +#: pg_backup_archiver.c:1894 #, c-format msgid "while INITIALIZING:" msgstr "\"INITIALIZING\"-ის დროს:" -#: pg_backup_archiver.c:1873 +#: pg_backup_archiver.c:1899 #, c-format msgid "while PROCESSING TOC:" msgstr "\"PROCESSING TOC\"-ის დროს:" -#: pg_backup_archiver.c:1878 +#: pg_backup_archiver.c:1904 #, c-format msgid "while FINALIZING:" msgstr "\"FINALIZING\"-ის დროს:" -#: pg_backup_archiver.c:1883 +#: pg_backup_archiver.c:1909 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "შინაარსის ჩანაწერიდან %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1959 +#: pg_backup_archiver.c:1985 #, c-format msgid "bad dumpId" msgstr "არასწორი dumpId" -#: pg_backup_archiver.c:1980 +#: pg_backup_archiver.c:2006 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "ცხრილის არასწორი dumpId-ი TABLE DATA ელემენტისთვის" -#: pg_backup_archiver.c:2072 +#: pg_backup_archiver.c:2098 #, c-format msgid "unexpected data offset flag %d" msgstr "მონაცემების წანაცვლების მოულოდნელი ალამი: %d" -#: pg_backup_archiver.c:2085 +#: pg_backup_archiver.c:2111 #, c-format msgid "file offset in dump file is too large" msgstr "გამოტანილ ფაილში ფაილის წანაცვლება ძალიან დიდია" -#: pg_backup_archiver.c:2196 +#: pg_backup_archiver.c:2222 pg_restore.c:847 #, c-format msgid "directory name too long: \"%s\"" msgstr "საქაღალდის სახელი ძალიან გრძელია : \"%s\"" -#: pg_backup_archiver.c:2246 +#: pg_backup_archiver.c:2272 #, 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:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 -#: pg_backup_directory.c:204 pg_backup_directory.c:396 +#: pg_backup_archiver.c:2280 pg_backup_custom.c:168 pg_backup_custom.c:813 +#: pg_backup_directory.c:172 pg_backup_directory.c:364 #, c-format msgid "could not open input file \"%s\": %m" msgstr "შეყვანის ფაილის (\"%s\") გახსნის შეცდომა: %m" -#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 +#: pg_backup_archiver.c:2287 pg_backup_custom.c:174 #, c-format msgid "could not open input file: %m" msgstr "შეყვანის ფაილის გახსნის შეცდომა: %m" -#: pg_backup_archiver.c:2267 +#: pg_backup_archiver.c:2293 #, c-format msgid "could not read input file: %m" msgstr "შემოსატანი ფაილის წაკითხვის შეცდომა: %m" -#: pg_backup_archiver.c:2269 +#: pg_backup_archiver.c:2295 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "შეყვანის ფაილი ძალიან მოკლეა (წავიკითხე %lu, მოსალოდნელია 5)" -#: pg_backup_archiver.c:2301 +#: pg_backup_archiver.c:2327 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "შეყვანის ფაილი, როგორც ჩანს, არის ტექსტის ფორმატის დამპია. გთხოვთ გამოიყენოთ psql." -#: pg_backup_archiver.c:2307 +#: pg_backup_archiver.c:2333 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "შეყვანილი ფაილი სწორ არქივს არ ჰგავს (ძალიან მოკლეა)" -#: pg_backup_archiver.c:2313 +#: pg_backup_archiver.c:2339 #, c-format msgid "input file does not appear to be a valid archive" msgstr "შეყვანის ფაილი სწორ არქივს არ ჰგავს" -#: pg_backup_archiver.c:2322 +#: pg_backup_archiver.c:2348 #, c-format msgid "could not close input file: %m" msgstr "შეყვანის ფაილის დახურვის შეცდომა: %m" -#: pg_backup_archiver.c:2401 +#: pg_backup_archiver.c:2427 #, c-format msgid "could not open stdout for appending: %m" msgstr "stdout-ის ბოლოში მისაწერად გახსნა შეუძლებელია: %m" -#: pg_backup_archiver.c:2446 +#: pg_backup_archiver.c:2472 #, c-format msgid "unrecognized file format \"%d\"" msgstr "ფაილის უცნობი ფორმატი \"%d\"" -#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4625 +#: pg_backup_archiver.c:2553 pg_backup_archiver.c:4774 #, c-format msgid "finished item %d %s %s" msgstr "დასრულებული ელემენტი %d %s %s" -#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4638 +#: pg_backup_archiver.c:2557 pg_backup_archiver.c:4787 #, c-format msgid "worker process failed: exit code %d" msgstr "დამხმარე პროცესის შეცდომა: გამოსვლის კოდი %d" -#: pg_backup_archiver.c:2653 +#: pg_backup_archiver.c:2655 +#, c-format +msgid "unexpected TOC entry in WriteToc(): %d %s %s" +msgstr "მოულოდნელი TOC-ის ჩანაწერი ფუნქციაში WriteToc(): %d %s %s" + +#: pg_backup_archiver.c:2659 pg_backup_custom.c:440 pg_backup_custom.c:506 +#: pg_backup_custom.c:635 pg_backup_custom.c:871 pg_backup_tar.c:1029 +#: pg_backup_tar.c:1034 +#, c-format +msgid "error during file seek: %m" +msgstr "ფაილში გადახვევის პრობლემა: %m" + +#: pg_backup_archiver.c:2717 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "ელემენტის ID %d დიაპაზონს გარეთაა -- შეიძლება სარჩევი დაზიანებულია" -#: pg_backup_archiver.c:2736 +#: pg_backup_archiver.c:2800 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "ცხრილების, აღწერილი WITH OIDS -ით, აღდგენა მხარდაჭერილი აღარაა" -#: pg_backup_archiver.c:2818 +#: pg_backup_archiver.c:2882 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "უცნობი კოდირება \"%s\"" -#: pg_backup_archiver.c:2823 +#: pg_backup_archiver.c:2888 #, c-format msgid "invalid ENCODING item: %s" msgstr "არასწორი ჩანაწერი \"ENCODING\": %s" -#: pg_backup_archiver.c:2841 +#: pg_backup_archiver.c:2906 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "არასწორი ჩანაწერი \"STDSTRINGS\": %s" -#: pg_backup_archiver.c:2866 +#: pg_backup_archiver.c:2931 #, c-format msgid "schema \"%s\" not found" msgstr "სქემა \"%s\" არ არსებობს" -#: pg_backup_archiver.c:2873 +#: pg_backup_archiver.c:2938 #, c-format msgid "table \"%s\" not found" msgstr "ცხრილი %s არ არსებობს" -#: pg_backup_archiver.c:2880 +#: pg_backup_archiver.c:2945 #, c-format msgid "index \"%s\" not found" msgstr "ინდექსი %s არ არსებობს" -#: pg_backup_archiver.c:2887 +#: pg_backup_archiver.c:2952 #, c-format msgid "function \"%s\" not found" msgstr "ფუნქცია %s არ არსებობს" -#: pg_backup_archiver.c:2894 +#: pg_backup_archiver.c:2959 #, c-format msgid "trigger \"%s\" not found" msgstr "ტრიგერი %s არ არსებობს" -#: pg_backup_archiver.c:3325 +#: pg_backup_archiver.c:3420 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "სესიის მომხმარებლის %s-ზე დაყენების შეცდომა: %s" -#: pg_backup_archiver.c:3457 +#: pg_backup_archiver.c:3552 #, c-format msgid "could not set \"search_path\" to \"%s\": %s" msgstr "\"session_path\"-ის %s-ზე დაყენების შეცდომა: %s" -#: pg_backup_archiver.c:3518 +#: pg_backup_archiver.c:3613 #, c-format msgid "could not set \"default_tablespace\" to %s: %s" msgstr "\"default_tablespace\"-ის %s-ზე დაყენების შეცდომა: %s" -#: pg_backup_archiver.c:3567 +#: pg_backup_archiver.c:3662 #, c-format msgid "could not set \"default_table_access_method\": %s" msgstr "\"default_table_access_method\"-ის დაყენების შეცდომა: %s" -#: pg_backup_archiver.c:3616 +#: pg_backup_archiver.c:3711 #, c-format msgid "could not alter table access method: %s" msgstr "ცხრილის წვდომის მეთოდის შეცვლა შეუძლებელია: %s" -#: pg_backup_archiver.c:3717 +#: pg_backup_archiver.c:3812 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "არ ვიცი, როგორ დავაყენო ობიექტის მოცემული ტიპის (%s) მფლობელი" -#: pg_backup_archiver.c:3982 +#: pg_backup_archiver.c:3947 +#, c-format +msgid "unexpected TOC entry in _printTocEntry(): %d %s %s" +msgstr "მოულოდნელი TOC ჩანაწერი ფუნქციაში _printTocEntry(): %d %s %s" + +#: pg_backup_archiver.c:4131 #, c-format msgid "did not find magic string in file header" msgstr "ფაილის თავსართში მაგიური სტრიქონი ნაპოვნი არაა" -#: pg_backup_archiver.c:3996 +#: pg_backup_archiver.c:4145 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "ფაილის თავსართში არსებული ვერსია (%d.%d) მხარდაუჭერელია" -#: pg_backup_archiver.c:4001 +#: pg_backup_archiver.c:4150 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "მთელი რიცხვის ზომის (%lu) სისწორის შემოწმების შეცდომა" -#: pg_backup_archiver.c:4005 +#: pg_backup_archiver.c:4154 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "არქივი შეიქმნა მანქანაზე, სადაც მთელი რიცხვი უფრო დიდია. ზოგიერთი ოპერაცია შეიძლება შეცდომით დასრულდეს" -#: pg_backup_archiver.c:4015 +#: pg_backup_archiver.c:4164 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "მოსალოდნელი ფორმატი (%d) განსხვავდება ფაილის ფორმატისგან (%d)" -#: pg_backup_archiver.c:4037 +#: pg_backup_archiver.c:4186 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "არქივი შეკუმშულია, მაგრამ ამ ვერსიას შეკუმშვის(%s) მხარდაჭერა არ გააჩნია -- მონაცემები მიუწვდომელი იქნება" -#: pg_backup_archiver.c:4073 +#: pg_backup_archiver.c:4222 #, c-format msgid "invalid creation date in header" msgstr "თავსართში არსებული შექმნის დრო არასწორია" -#: pg_backup_archiver.c:4207 +#: pg_backup_archiver.c:4356 #, c-format msgid "processing item %d %s %s" msgstr "მუშავდება ელემენტი %d %s %s" -#: pg_backup_archiver.c:4292 +#: pg_backup_archiver.c:4441 #, c-format msgid "entering main parallel loop" msgstr "მთავარი პარალელური მარყუჟის დასაწყისი" -#: pg_backup_archiver.c:4303 +#: pg_backup_archiver.c:4452 #, c-format msgid "skipping item %d %s %s" msgstr "ელემენტის გამოტოვება %d %s %s" -#: pg_backup_archiver.c:4312 +#: pg_backup_archiver.c:4461 #, c-format msgid "launching item %d %s %s" msgstr "ელემენტის გაშვება %d %s %s" -#: pg_backup_archiver.c:4366 +#: pg_backup_archiver.c:4515 #, c-format msgid "finished main parallel loop" msgstr "მთავარი პარალელური მარყუჟის დასასრული" -#: pg_backup_archiver.c:4402 +#: pg_backup_archiver.c:4551 #, c-format msgid "processing missed item %d %s %s" msgstr "გამორჩენილი ჩანაწერის დამუშავება %d %s %s" -#: pg_backup_archiver.c:4944 +#: pg_backup_archiver.c:5093 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "ცხრილის (%s) შექმნა შეუძლებელია. მონაცემების აღდგენა არ მოხდება" -#: pg_backup_custom.c:376 pg_backup_null.c:143 +#: pg_backup_custom.c:375 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "დიდი ობიექტის არასწორი OID" -#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 -#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 -#, c-format -msgid "error during file seek: %m" -msgstr "ფაილში გადახვევის პრობლემა: %m" - -#: pg_backup_custom.c:480 +#: pg_backup_custom.c:479 #, c-format msgid "data block %d has wrong seek position" msgstr "მონაცემების ბლოკს (%d) არასწორი გადახვევის მდებარეობა გააჩნია" -#: pg_backup_custom.c:497 +#: pg_backup_custom.c:496 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "არქივის ძებნისას მონაცემების ბლოკის ტიპი (%d) არასწორია" -#: pg_backup_custom.c:519 +#: pg_backup_custom.c:518 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "არქივში ბლოკის ID-ის (%d) პოვნა შეუძლებელია -- შეიძლება დაულაგებელი აღდგენის მოთხოვნის გამო, რომელიც არ შეიძლება დამუშავდეს გადაუხვევადი შეტანის ფაილის გამო" -#: pg_backup_custom.c:524 +#: pg_backup_custom.c:523 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "არქივში ბლოკის ID -ის (%d) პოვნის შეცდომა -- შეიძლება არქივი დაზიანებულია" -#: pg_backup_custom.c:531 +#: pg_backup_custom.c:530 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "მონაცემების კითხვისას ვიპოვე მოულოდნელი ბლოკის ID (%d) -- მოველოდი: %d" -#: pg_backup_custom.c:545 +#: pg_backup_custom.c:544 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "უცნობი მონაცემის ბლოკის ტიპი %d არქივის აღდგენისას" -#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_custom.c:750 pg_backup_custom.c:804 pg_backup_custom.c:946 #: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "არქივის ფაილში გადახვევის მდებარეობის დადგენის შეცდომა: %m" -#: pg_backup_custom.c:767 pg_backup_custom.c:807 +#: pg_backup_custom.c:768 pg_backup_custom.c:808 #, c-format msgid "could not close archive file: %m" msgstr "არქივის ფაილის დახურვის შეცდომა: %m" -#: pg_backup_custom.c:790 +#: pg_backup_custom.c:791 #, c-format msgid "can only reopen input archives" msgstr "შეყვანილი არქივების თავიდან გახსნის შეცდომა" -#: pg_backup_custom.c:797 +#: pg_backup_custom.c:798 #, c-format msgid "parallel restore from standard input is not supported" msgstr "სტანდარტული შეტანიდან პარალელური აღდგენის მხარდაჭერა არ არსებობს" -#: pg_backup_custom.c:799 +#: pg_backup_custom.c:800 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "გადაუხვევადი ფაილიდან პარალელური აღდგენის მხარდაჭერა არ არსებობს" -#: pg_backup_custom.c:815 +#: pg_backup_custom.c:816 #, c-format msgid "could not set seek position in archive file: %m" msgstr "არქივის ფაილში გადახვევის შეცდომა:%m" -#: pg_backup_custom.c:894 +#: pg_backup_custom.c:895 #, c-format msgid "compressor active" msgstr "შემკუმშველი აქტიურია" -#: pg_backup_db.c:42 -#, c-format -msgid "could not get server_version from libpq" -msgstr "libpq-დან server_version-ის მიღების შეცდომა" - -#: pg_backup_db.c:53 pg_dumpall.c:1830 +#: pg_backup_db.c:41 #, c-format -msgid "aborting because of server version mismatch" -msgstr "ოპერაცია გაუქმდა სერვერის ვერსიის შეუთავსებლობის გამო" +msgid "could not get \"server_version\" from libpq" +msgstr "libpq-დან \"server_version\"-ის მიღება შეუძლებელია" -#: pg_backup_db.c:54 pg_dumpall.c:1831 -#, c-format -msgid "server version: %s; %s version: %s" -msgstr "სერვერის ვერსია: %s; %s ვერსია: %s" - -#: pg_backup_db.c:120 +#: pg_backup_db.c:118 #, c-format msgid "already connected to a database" msgstr "ბაზასთან მიერთება უკვე არსებობს" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 -msgid "Password: " -msgstr "პაროლი: " - -#: pg_backup_db.c:170 -#, c-format -msgid "could not connect to database" -msgstr "ბაზასთან მიერთების შეცდომა" - -#: pg_backup_db.c:187 -#, c-format -msgid "reconnection failed: %s" -msgstr "თავიდან მიერთების შეცდომა: %s" - -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:787 pg_dump_sort.c:1213 -#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 -#, c-format -msgid "%s" -msgstr "%s" - -#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 -#, c-format -msgid "query failed: %s" -msgstr "მოთხოვნის შეცდომა: %s" - -#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 -#, c-format -msgid "Query was: %s" -msgstr "მოთხოვნის შინაარსი: %s" - -#: pg_backup_db.c:315 +#: pg_backup_db.c:254 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" msgstr[0] "მოთხოვნამ %d მწკრივი დააბრუნა, ერთის მაგიერ: %s" msgstr[1] "მოთხოვნამ %d მწკრივი დააბრუნა, ერთის მაგიერ: %s" -#: pg_backup_db.c:351 +#: pg_backup_db.c:290 #, c-format msgid "%s: %sCommand was: %s" msgstr "%s: %sბრძანება იყო: %s" -#: pg_backup_db.c:407 pg_backup_db.c:481 pg_backup_db.c:488 +#: pg_backup_db.c:346 pg_backup_db.c:420 pg_backup_db.c:427 msgid "could not execute query" msgstr "მოთხოვნის შესრულების შეცდომა" -#: pg_backup_db.c:460 +#: pg_backup_db.c:399 #, c-format msgid "error returned by PQputCopyData: %s" msgstr "\"PQputCopyData\"-ის მიერ დაბრუნებული შეცდომა: %s" -#: pg_backup_db.c:509 +#: pg_backup_db.c:448 #, c-format msgid "error returned by PQputCopyEnd: %s" msgstr "\"PQputCopyEnd\"-ის მიერ დაბრუნებული შეცდომა: %s" -#: pg_backup_db.c:515 +#: pg_backup_db.c:454 #, c-format msgid "COPY failed for table \"%s\": %s" msgstr "COPY-ის შეცდომა ცხრილისთვის \"%s\": %s" -#: pg_backup_db.c:521 pg_dump.c:2271 +#: pg_backup_db.c:460 pg_dump.c:2439 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "მოულოდნელი დამატებითი შედეგები COPY-ის დროს ცხრილისთვის \"%s\"" -#: pg_backup_db.c:533 +#: pg_backup_db.c:472 msgid "could not start database transaction" msgstr "ბაზის ტრანზაქციის დაწყების შეცდომა" -#: pg_backup_db.c:541 +#: pg_backup_db.c:480 msgid "could not commit database transaction" msgstr "ბაზის ტრანზაქციის გადაცემის შეცდომა" -#: pg_backup_directory.c:153 +#: pg_backup_directory.c:154 #, c-format msgid "no output directory specified" msgstr "გამოტანის საქაღალდე მითითებული არაა" -#: pg_backup_directory.c:186 -#, c-format -msgid "could not close directory \"%s\": %m" -msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" - -#: pg_backup_directory.c:192 -#, c-format -msgid "could not create directory \"%s\": %m" -msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" - -#: pg_backup_directory.c:357 pg_backup_directory.c:506 -#: pg_backup_directory.c:544 +#: pg_backup_directory.c:325 pg_backup_directory.c:474 +#: pg_backup_directory.c:512 #, c-format msgid "could not write to output file: %s" msgstr "გამოსატან ფაილში ჩაწერის შეცდომა: %s" -#: pg_backup_directory.c:375 +#: pg_backup_directory.c:343 #, c-format msgid "could not close data file: %m" msgstr "მონაცემების ფაილის დახურვის შეცდომა: %m" -#: pg_backup_directory.c:408 +#: pg_backup_directory.c:376 #, c-format msgid "could not close data file \"%s\": %m" msgstr "მონაცემების ფაილის (%s) დახურვის შეცდომა: %m" -#: pg_backup_directory.c:455 +#: pg_backup_directory.c:423 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "დიდი ობიექტის სარჩევის ფაილის %s წასაკითხად გახსნის შეცდომა: %m" -#: pg_backup_directory.c:466 +#: pg_backup_directory.c:434 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "არასწორი ხაზი დიდი ობიექტის ცხრილის ფაილში \"%s\": %s" -#: pg_backup_directory.c:475 +#: pg_backup_directory.c:443 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "დიდი ობიექტის სარჩევის ფაილის წაკითხვის შეცდომა: %s" -#: pg_backup_directory.c:479 +#: pg_backup_directory.c:447 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "დიდი ობიექტის სარჩევის ფაილის (%s) დახურვის შეცდომა: %m" -#: pg_backup_directory.c:702 +#: pg_backup_directory.c:670 #, c-format msgid "could not close LO data file: %m" msgstr "'LO' მონაცემების ფაილის დახურვის შეცდომა: %m" -#: pg_backup_directory.c:712 +#: pg_backup_directory.c:680 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "'LO'-ების სარჩევის ფაილში ჩაწერა შეუძლებელია: %s" -#: pg_backup_directory.c:728 +#: pg_backup_directory.c:696 #, c-format msgid "could not close LOs TOC file: %m" msgstr "'LO'-ის სარჩევის ფაილის დახურვის შეცდომა: %m" -#: pg_backup_directory.c:747 +#: pg_backup_directory.c:715 #, c-format msgid "file name too long: \"%s\"" msgstr "%s: ფაილის სახელი ძალიან გრძელია" @@ -1454,100 +1484,140 @@ msgstr[1] "tar ფაილის თავსართი არასრულ msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "%s-ში ნაპოვნია დაზიანებული თავსართი (მოველოდი %d, გამოთვლილია %d) ფაილის პოზიციაზე %llu" -#: pg_backup_utils.c:54 +#: pg_backup_utils.c:56 #, c-format msgid "unrecognized section name: \"%s\"" msgstr "სექციის უცნობი სახელი: %s" -#: pg_backup_utils.c:55 pg_dump.c:693 pg_dump.c:710 pg_dumpall.c:370 -#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 -#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 -#: pg_restore.c:337 +#: pg_backup_utils.c:57 pg_dump.c:803 pg_dump.c:820 pg_dumpall.c:385 +#: pg_dumpall.c:395 pg_dumpall.c:403 pg_dumpall.c:411 pg_dumpall.c:418 +#: pg_dumpall.c:428 pg_dumpall.c:443 pg_dumpall.c:564 pg_restore.c:361 +#: pg_restore.c:377 pg_restore.c:388 pg_restore.c:398 pg_restore.c:527 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_backup_utils.c:66 +#: pg_backup_utils.c:68 #, c-format msgid "out of on_exit_nicely slots" msgstr "on_exit_nicely ტიპის სლოტები აღარ დარჩა" -#: pg_dump.c:708 pg_dumpall.c:378 pg_restore.c:321 +#: pg_dump.c:818 pg_dumpall.c:393 pg_restore.c:375 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_dump.c:727 pg_restore.c:344 +#: pg_dump.c:830 pg_restore.c:406 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" -msgstr "პარამეტრები -s/--schema-only და -a/--data-only ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -s/--schema-only და -a/--data-only ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:832 pg_restore.c:408 +#, c-format +msgid "options -s/--schema-only and --statistics-only cannot be used together" +msgstr "პარამეტრებს -s/--schema-only და --statistics-only ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:834 pg_restore.c:410 +#, c-format +msgid "options -a/--data-only and --statistics-only cannot be used together" +msgstr "პარამეტრებს -a/--data-only და --statistics-only ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:838 pg_restore.c:414 +#, c-format +msgid "options -a/--data-only and --no-data cannot be used together" +msgstr "პარამეტრებს -a/--data-only და --no-data ერთად ვერ გამოიყენებთ" -#: pg_dump.c:730 +#: pg_dump.c:840 pg_restore.c:416 +#, c-format +msgid "options -s/--schema-only and --no-schema cannot be used together" +msgstr "პარამეტრებს -s/--schema-only და --no-schema ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:842 pg_restore.c:418 +#, c-format +msgid "options --statistics-only and --no-statistics cannot be used together" +msgstr "პარამეტრებს --statistics-only და --no-statistics ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:846 pg_restore.c:422 +#, c-format +msgid "options --with-data and --no-data cannot be used together" +msgstr "პარამეტრებს --with-data და --no-data ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:848 pg_restore.c:424 +#, c-format +msgid "options --with-schema and --no-schema cannot be used together" +msgstr "პარამეტრებს --with-schema და --no-schema ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:850 pg_restore.c:426 +#, c-format +msgid "options --with-statistics and --no-statistics cannot be used together" +msgstr "პარამეტრებს --with-statistics და --no-statistics ერთად ვერ გამოიყენებთ" + +#: pg_dump.c:853 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" -msgstr "პარამეტრები -s/--schema-only და --include-foreign-data ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -s/--schema-only და --include-foreign-data ერთად ვერ გამოიყენებთ" -#: pg_dump.c:733 +#: pg_dump.c:856 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "პარამეტრი --include-foreign-data მხარდაუჭერელია პარალელური მარქაფისას" -#: pg_dump.c:736 pg_restore.c:347 +#: pg_dump.c:859 pg_restore.c:429 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" -msgstr "პარამეტრები -c/--clean და -a/--data-only ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -c/--clean და -a/--data-only ერთად ვერ გამოიყენებთ" -#: pg_dump.c:739 pg_dumpall.c:408 pg_restore.c:375 +#: pg_dump.c:862 pg_dumpall.c:423 pg_restore.c:472 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "--if-exists -ს -c/--clean პარამეტრი ესაჭიროება" -#: pg_dump.c:746 +#: pg_dump.c:884 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "--on-conflict-do-nothing -ს --inserts, --rows-per-insert ან --column-inserts ესაჭიროება" -#: pg_dump.c:775 +#: pg_dump.c:913 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "შეკუმშვის უცხო ალგორითმი: \"%s\"" -#: pg_dump.c:782 +#: pg_dump.c:920 #, c-format msgid "invalid compression specification: %s" msgstr "შეკუმშვის არასწორი სპეციფიკაცია: %s" -#: pg_dump.c:795 +#: pg_dump.c:933 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "შეკუმშვის პარამეტრი \"%s\"-ი pg_dump-ის მიერ ამჟამად მხარდაჭერილი არაა" -#: pg_dump.c:807 +#: pg_dump.c:945 #, c-format msgid "parallel backup only supported by the directory format" msgstr "პარალელური მარქაფი მხოლოდ საქაღალდის რეჟიმშია მხარდაჭერილი" -#: pg_dump.c:853 +#: pg_dump.c:991 #, c-format msgid "last built-in OID is %u" msgstr "ბოლო ჩაშენებული OID %u" -#: pg_dump.c:862 +#: pg_dump.c:1000 #, c-format msgid "no matching schemas were found" msgstr "შესაბამისი სქემები ნაპოვნი არაა" -#: pg_dump.c:879 +#: pg_dump.c:1017 #, c-format msgid "no matching tables were found" msgstr "შესაბამისი ცხრილები ნაპოვნი არაა" -#: pg_dump.c:907 +#: pg_dump.c:1045 #, c-format msgid "no matching extensions were found" msgstr "შესაბამისი გაფართოებები ნაპოვნი არაა" -#: pg_dump.c:1091 +#: pg_dump.c:1238 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1556,17 +1626,17 @@ msgstr "" "%s მონაცემთა ბაზას გამოიტანს, როგორც ტექსტურ ფაილს ან სხვა ფორმატებს.\n" "\n" -#: pg_dump.c:1092 pg_dumpall.c:635 pg_restore.c:452 +#: pg_dump.c:1239 pg_dumpall.c:699 pg_restore.c:657 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_dump.c:1093 +#: pg_dump.c:1240 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [პარამეტრი]... [ბაზისსახელი]\n" -#: pg_dump.c:1095 pg_dumpall.c:638 pg_restore.c:455 +#: pg_dump.c:1242 pg_dumpall.c:702 pg_restore.c:660 #, c-format msgid "" "\n" @@ -1575,12 +1645,12 @@ msgstr "" "\n" "ზოგადი პარამეტრები:\n" -#: pg_dump.c:1096 +#: pg_dump.c:1243 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=FILENAME გამოტანის ფაილის სახელი\n" -#: pg_dump.c:1097 +#: pg_dump.c:1244 pg_dumpall.c:704 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1589,22 +1659,22 @@ msgstr "" " -F, --format=c|d|t|p გამოტანის ფაილის ფორმატი (custom, directory, tar\n" " უბრალო ტექსტი (ნაგულისხმევი))\n" -#: pg_dump.c:1099 +#: pg_dump.c:1246 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM მითითებული რაოდენობის პარალელური დავალების გაშვება\n" -#: pg_dump.c:1100 pg_dumpall.c:640 +#: pg_dump.c:1247 pg_dumpall.c:706 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: pg_dump.c:1101 pg_dumpall.c:641 +#: pg_dump.c:1248 pg_dumpall.c:707 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_dump.c:1102 +#: pg_dump.c:1249 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1613,27 +1683,27 @@ msgstr "" " -Z, --compress=მეთოდი[:წვრილმანი]\n" " შეკუმშვის მითითება\n" -#: pg_dump.c:1104 pg_dumpall.c:642 +#: pg_dump.c:1251 pg_dumpall.c:708 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=TIMEOUT ცხრილის დაბლოკვისას TIMEOUT ის შემდეგ შეცდომის გამოგდება\n" -#: pg_dump.c:1105 pg_dumpall.c:670 +#: pg_dump.c:1252 pg_dumpall.c:740 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: pg_dump.c:1106 +#: pg_dump.c:1253 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=მეთოდი ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: pg_dump.c:1107 pg_dumpall.c:643 +#: pg_dump.c:1254 pg_dumpall.c:709 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_dump.c:1109 pg_dumpall.c:644 +#: pg_dump.c:1256 pg_dumpall.c:710 #, c-format msgid "" "\n" @@ -1642,62 +1712,62 @@ msgstr "" "\n" "პარამეტრები, რომლებიც აკონტროლებენ გამოტანას:\n" -#: pg_dump.c:1110 pg_dumpall.c:645 +#: pg_dump.c:1257 pg_dumpall.c:711 #, c-format -msgid " -a, --data-only dump only the data, not the schema\n" -msgstr " -a, --data-only გამოტანილი იქნება მხოლოდ მონაცემები, სქემის გარეშე\n" +msgid " -a, --data-only dump only the data, not the schema or statistics\n" +msgstr " -a, --data-only მოხდება, მხოლოდ, მონაცემების დამპი, მაგრამ არა სქემის ან სტატისტიკის\n" -#: pg_dump.c:1111 +#: pg_dump.c:1258 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects გამოტანილი იქნება დიდი ობიექტებიც\n" -#: pg_dump.c:1112 +#: pg_dump.c:1259 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (იგივე, რაც--large-objects, რომელიც მოძველებულია)\n" -#: pg_dump.c:1113 +#: pg_dump.c:1260 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects დიდი ობიექტები გამოტანილი არ იქნება\n" -#: pg_dump.c:1114 +#: pg_dump.c:1261 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (იგივე, რაც --no-large-objects, რომელიც მოძველებულია)\n" -#: pg_dump.c:1115 pg_restore.c:466 +#: pg_dump.c:1262 pg_restore.c:671 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean ბაზის ობიექტების წაშლა თავიდან შექმნამდე\n" -#: pg_dump.c:1116 +#: pg_dump.c:1263 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr " -C, --create გამოტანილში ბაზის შექმნის ბრძანებების მიყოლება\n" -#: pg_dump.c:1117 +#: pg_dump.c:1264 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATTERN მხოლოდ მითითებული გაფართოებების გამოტანა\n" -#: pg_dump.c:1118 pg_dumpall.c:647 +#: pg_dump.c:1265 pg_dumpall.c:713 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=ENCODING მხოლოდ მითითებული კოდირების მქონე მონაცემების გამოტანა\n" -#: pg_dump.c:1119 +#: pg_dump.c:1266 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=PATTERN მხოლოდ მითითებული სქემების გამოტანა\n" -#: pg_dump.c:1120 +#: pg_dump.c:1267 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=PATTERN მითითებული სქემები გამოტანილი არ იქნება\n" -#: pg_dump.c:1121 +#: pg_dump.c:1268 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1706,52 +1776,52 @@ msgstr "" " -O, --no-owner უბრალო ტექსტურ ფორმატში ობიექტების მფლობელობის \n" " აღდგენის გამოტოვება\n" -#: pg_dump.c:1123 pg_dumpall.c:651 +#: pg_dump.c:1270 pg_dumpall.c:717 #, c-format -msgid " -s, --schema-only dump only the schema, no data\n" -msgstr " -s, --schema-only აღდგება მხოლოდ სქემები, მონაცემები კი არა\n" +msgid " -s, --schema-only dump only the schema, no data or statistics\n" +msgstr " -s, --schema-only მოხდება, მხოლოდ, სქემის დამპი, მაგრამ არა მონაცემების ან სტატისტიკის\n" -#: pg_dump.c:1124 +#: pg_dump.c:1271 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME უბრალო ტექსტურ ფაილში გამოტანისას გამოყენებული ზემომხმარებლის სახელი\n" -#: pg_dump.c:1125 +#: pg_dump.c:1272 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=შაბლონი მხოლოდ მითითებული ცხრილების დამპი\n" -#: pg_dump.c:1126 +#: pg_dump.c:1273 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATTERN მითითებული ცხრილები გამოტანილი არ იქნება\n" -#: pg_dump.c:1127 pg_dumpall.c:654 +#: pg_dump.c:1274 pg_dumpall.c:720 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges პრივილეგიები (dump/revoke) გამოტანილი არ იქნება\n" -#: pg_dump.c:1128 pg_dumpall.c:655 +#: pg_dump.c:1275 pg_dumpall.c:721 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade გამოიყენება მხოლოდ განახლების პროგრამების მიერ\n" -#: pg_dump.c:1129 pg_dumpall.c:656 +#: pg_dump.c:1276 pg_dumpall.c:722 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr " --column-inserts მონაცემების დამპი ისე, როგორც ბრძანება INSERT, სვეტების სახელებით\n" -#: pg_dump.c:1130 pg_dumpall.c:657 +#: pg_dump.c:1277 pg_dumpall.c:723 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr " --disable-dollar-quoting დოლარით ციტირების გამორთვა. სტანდარტული SQL ციტირების გამოყენება\n" -#: pg_dump.c:1131 pg_dumpall.c:658 pg_restore.c:483 +#: pg_dump.c:1278 pg_dumpall.c:724 pg_restore.c:689 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers მხოლოდ მონაცემების აღდგენისას ტრიგერების გამორთვა\n" -#: pg_dump.c:1132 +#: pg_dump.c:1279 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1760,12 +1830,12 @@ msgstr "" " --enable-row-security მწკრივების უსაფრთხოების ჩართვა (მხოლოდ იმ მონაცემების დამპი, \n" " რაზეც მომხმარებელს წვდომა გააჩნია)\n" -#: pg_dump.c:1134 +#: pg_dump.c:1281 #, c-format msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" msgstr " --exclude-extension=PATTERN მითითებული გაფართოებ(ებ)-ი გამოტანილი *არ* იქნება\n" -#: pg_dump.c:1135 +#: pg_dump.c:1282 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1776,12 +1846,12 @@ msgstr "" " მითითებული ცხრილები დამპში არ იქნება,\n" " შვილი და დაყოფილი ცხრილების ჩათვლით\n" -#: pg_dump.c:1138 +#: pg_dump.c:1285 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " -T, --exclude-table=შაბლონი შაბლონით მითითებული ცხრილები\n" -#: pg_dump.c:1139 +#: pg_dump.c:1286 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1792,12 +1862,12 @@ msgstr "" " მითითებული ცხრილების მონაცემები დამპში არ იქნება,\n" " შვილი და დაყოფილი ცხრილების ჩათვლით\n" -#: pg_dump.c:1142 pg_dumpall.c:660 +#: pg_dump.c:1289 pg_dumpall.c:726 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM extra_float_digits-ის ნაგულისხმევი პარამეტრის გადაფარვა\n" -#: pg_dump.c:1143 +#: pg_dump.c:1290 #, c-format msgid "" " --filter=FILENAME include or exclude objects and data from dump\n" @@ -1806,12 +1876,12 @@ msgstr "" " --filter=ფაილისსახელი დამპიდან ობიექტების და მონაცემების, რომლებიც ემთხვევა მითითებულ\n" " ფაილისსახელში მყოფ გამოსახულებას, ამოღება ან ჩასმა\n" -#: pg_dump.c:1145 pg_dumpall.c:662 pg_restore.c:487 +#: pg_dump.c:1292 pg_dumpall.c:728 pg_restore.c:694 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists ობიექტების გადაყრისას IF EXISTS -ის გამოყენება\n" -#: pg_dump.c:1146 +#: pg_dump.c:1293 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1822,87 +1892,117 @@ msgstr "" " მონაცემების ჩასმა უცხო სერვერებზე მდებარე , უცხო ცხრილებიდან, რომლებიც\n" " შაბლონს ემთხვევა\n" -#: pg_dump.c:1149 pg_dumpall.c:663 +#: pg_dump.c:1296 pg_dumpall.c:729 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts მონაცემების დამპი INSERT ბრძანებების მსგავსად, COPY-ის მაგიერ\n" -#: pg_dump.c:1150 pg_dumpall.c:664 +#: pg_dump.c:1297 pg_dumpall.c:730 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root დანაყოფების root ცხრილს გავლით ჩატვირთვა\n" -#: pg_dump.c:1151 pg_dumpall.c:665 +#: pg_dump.c:1298 pg_dumpall.c:731 #, c-format -msgid " --no-comments do not dump comments\n" -msgstr " --no-comments კომენტარების გარეშე\n" +msgid " --no-comments do not dump comment commands\n" +msgstr " --no-comments კომენტარის ბრძანებების დამპი არ მოხდება\n" -#: pg_dump.c:1152 pg_dumpall.c:666 +#: pg_dump.c:1299 pg_dumpall.c:732 +#, c-format +msgid " --no-data do not dump data\n" +msgstr " --no-data მონაცემების დამპი არ მოხდება\n" + +#: pg_dump.c:1300 pg_dumpall.c:733 +#, c-format +msgid " --no-policies do not dump row security policies\n" +msgstr " --no-policies მწკრივის უსაფრთხოების პოლიტიკების დამპი არ მოხდება\n" + +#: pg_dump.c:1301 pg_dumpall.c:734 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications გამოცემების გარეშე\n" -#: pg_dump.c:1153 pg_dumpall.c:668 +#: pg_dump.c:1302 pg_dumpall.c:736 +#, c-format +msgid " --no-schema do not dump schema\n" +msgstr " --no-schema სქემების დამპი არ მოხდება\n" + +#: pg_dump.c:1303 pg_dumpall.c:737 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels უსაფრთხოების ჭდეების მინიჭებების გარეშე\n" -#: pg_dump.c:1154 pg_dumpall.c:669 +#: pg_dump.c:1304 pg_dumpall.c:738 +#, c-format +msgid " --no-statistics do not dump statistics\n" +msgstr " --no-statistics სტატისტიკის დამპი არ მოხდება\n" + +#: pg_dump.c:1305 pg_dumpall.c:739 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions გამოწერების გარეშე\n" -#: pg_dump.c:1155 pg_dumpall.c:671 +#: pg_dump.c:1306 pg_dumpall.c:741 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method ცხრილის წვდომის მეთოდები\n" -#: pg_dump.c:1156 pg_dumpall.c:672 +#: pg_dump.c:1307 pg_dumpall.c:742 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces ცხრილის სივრცის მინიჭებები\n" -#: pg_dump.c:1157 pg_dumpall.c:673 +#: pg_dump.c:1308 pg_dumpall.c:743 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression TOAST-ის შეკუმშვის მეთოდები დამპში არ ჩაიწერება\n" -#: pg_dump.c:1158 pg_dumpall.c:674 +#: pg_dump.c:1309 pg_dumpall.c:744 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data ის ცხრილები, რომლებსაც ჟურნალი არ აქვთ, დამპში არ ჩაიწერება\n" -#: pg_dump.c:1159 pg_dumpall.c:675 +#: pg_dump.c:1310 pg_dumpall.c:745 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing INSERT ბრძანებებისთვის ON CONFLICT DO NOTHING -ის დამატება\n" -#: pg_dump.c:1160 pg_dumpall.c:676 +#: pg_dump.c:1311 pg_dumpall.c:746 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr " --quote-all-identifiers ყველა იდენტიფიკატორის ციტირება. მაშინაც კი, თუ ისინი საკვანძო სიტყვები არაა\n" -#: pg_dump.c:1161 pg_dumpall.c:677 +#: pg_dump.c:1312 pg_dumpall.c:747 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NROWS მწკრივების რიცხვი თითოეული INSERT-ისთვის ; ასევე მიუთითებს --inserts\n" -#: pg_dump.c:1162 +#: pg_dump.c:1313 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr " --section=სექცია მითითებული სექცია (pre-data, data, ან post-data)\n" -#: pg_dump.c:1163 +#: pg_dump.c:1314 +#, c-format +msgid " --sequence-data include sequence data in dump\n" +msgstr " --sequence-data მიმდევრობის მონაცემების ჩასმა დამპში\n" + +#: pg_dump.c:1315 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable მოცდა, სანამ დამპის გაშვება ანომალიების გარეშე იქნება შესაძლებელი\n" -#: pg_dump.c:1164 +#: pg_dump.c:1316 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT დამპისთვის მითითებული სწრაფი ასლის გამოყენება\n" -#: pg_dump.c:1165 pg_restore.c:497 +#: pg_dump.c:1317 pg_dumpall.c:748 +#, c-format +msgid " --statistics-only dump only the statistics, not schema or data\n" +msgstr " --statistics-only მოხდება, მხოლოდ, სტატისტიკის დამპი, მაგრამ არ სქემის ან მონაცემების\n" + +#: pg_dump.c:1318 pg_restore.c:709 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1911,7 +2011,7 @@ msgstr "" " --strict-names მოთხოვნა, რომ ცხრილი ან/და სქემა შეიცავდეს შაბლონებს, რომლებიც\n" " ერთ ელემენტს მაინც ემთხვევა\n" -#: pg_dump.c:1167 +#: pg_dump.c:1320 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1920,7 +2020,7 @@ msgstr "" " --table-and-children=შაბლონი მხოლოდ მითითებული ცხრილების დამპი,\n" " შვილი და დაყოფილი ცხრილების ჩათვლით\n" -#: pg_dump.c:1169 pg_dumpall.c:678 pg_restore.c:500 +#: pg_dump.c:1322 pg_dumpall.c:749 pg_restore.c:712 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1931,7 +2031,22 @@ msgstr "" " მფლობელობის დასაყენებლად ALTER OWNER ბრძანებების მაგიერ\n" " SET SESSION AUTHORIZATION -ის გამოყენება\n" -#: pg_dump.c:1173 pg_dumpall.c:682 pg_restore.c:504 +#: pg_dump.c:1325 pg_dumpall.c:752 pg_restore.c:715 +#, c-format +msgid " --with-data dump the data\n" +msgstr " --with-data მონაცემების დამპი\n" + +#: pg_dump.c:1326 pg_dumpall.c:753 pg_restore.c:716 +#, c-format +msgid " --with-schema dump the schema\n" +msgstr " --with-schema სქემების დამპი\n" + +#: pg_dump.c:1327 pg_dumpall.c:754 pg_restore.c:717 +#, c-format +msgid " --with-statistics dump the statistics\n" +msgstr " --with-statistics სტატისტიკის დამპი\n" + +#: pg_dump.c:1329 pg_dumpall.c:756 pg_restore.c:719 #, c-format msgid "" "\n" @@ -1940,42 +2055,42 @@ msgstr "" "\n" "შეერთების პარამეტრები:\n" -#: pg_dump.c:1174 +#: pg_dump.c:1330 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=ბაზისსახელი მონაცემთა ბაზის სახელი\n" -#: pg_dump.c:1175 pg_dumpall.c:684 pg_restore.c:505 +#: pg_dump.c:1331 pg_dumpall.c:758 pg_restore.c:720 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME მონაცემთა ბაზის სერვერის ჰოსტის ან სოკეტის საქაღალდე\n" -#: pg_dump.c:1176 pg_dumpall.c:686 pg_restore.c:506 +#: pg_dump.c:1332 pg_dumpall.c:760 pg_restore.c:721 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT მონაცემთა ბაზის სერვერის პორტი\n" -#: pg_dump.c:1177 pg_dumpall.c:687 pg_restore.c:507 +#: pg_dump.c:1333 pg_dumpall.c:761 pg_restore.c:722 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=მომხმარებელი ბაზის მომხმარებლის სახელი\n" -#: pg_dump.c:1178 pg_dumpall.c:688 pg_restore.c:508 +#: pg_dump.c:1334 pg_dumpall.c:762 pg_restore.c:723 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password არასოდეს მკითხო პაროლი\n" -#: pg_dump.c:1179 pg_dumpall.c:689 pg_restore.c:509 +#: pg_dump.c:1335 pg_dumpall.c:763 pg_restore.c:724 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password პაროლის ყოველთვის კითხვა (ავტომატურად უნდა ხდებოდეს)\n" -#: pg_dump.c:1180 pg_dumpall.c:690 +#: pg_dump.c:1336 pg_dumpall.c:764 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLENAME აღდგენამდე SET ROLE -ის გაშვება\n" -#: pg_dump.c:1182 +#: pg_dump.c:1338 #, c-format msgid "" "\n" @@ -1988,537 +2103,573 @@ msgstr "" "ცვლადი გამოიყენება.\n" "\n" -#: pg_dump.c:1184 pg_dumpall.c:694 pg_restore.c:516 +#: pg_dump.c:1340 pg_dumpall.c:768 pg_restore.c:731 #, c-format msgid "Report bugs to <%s>.\n" msgstr "შეცდომების შესახებ მიწერეთ: <%s>\n" -#: pg_dump.c:1185 pg_dumpall.c:695 pg_restore.c:517 +#: pg_dump.c:1341 pg_dumpall.c:769 pg_restore.c:732 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: pg_dump.c:1204 pg_dumpall.c:518 +#: pg_dump.c:1360 pg_dumpall.c:581 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "კლიენტის მითითებული კოდირება არასწორია: %s" -#: pg_dump.c:1344 +#: pg_dump.c:1508 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "სერვერის ამ ვერსიაში უქმე სერვერებიდან პარალელური დამპი მხარდაჭერილი არაა" -#: pg_dump.c:1409 +#: pg_dump.c:1573 #, c-format msgid "invalid output format \"%s\" specified" msgstr "გამოტანის მითითებული ფორმატი არასწორია: %s" -#: pg_dump.c:1450 pg_dump.c:1506 pg_dump.c:1559 pg_dumpall.c:1467 +#: pg_dump.c:1614 pg_dump.c:1670 pg_dump.c:1723 pg_dumpall.c:1593 +#: pg_restore.c:984 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "არასწორი სრული სახელი (ძალიან ბევრი წერტილიანი სახელი): %s" -#: pg_dump.c:1458 +#: pg_dump.c:1622 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "შესაბამისი სქემა შაბლონისთვის \"%s\" ვერ ვიპოვე" -#: pg_dump.c:1511 +#: pg_dump.c:1675 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "შესაბამისი გაფართოება შაბლონისთვის \"%s\" ვერ ვიპოვე" -#: pg_dump.c:1564 +#: pg_dump.c:1728 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "შესაბამისი უცხო სერვერი შაბლონისთვის \"%s\" ვერ ვიპოვე" -#: pg_dump.c:1635 +#: pg_dump.c:1799 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ურთიერთობის არასწორი სახელი (ძალიან ბევრი წერტილიანი სახელი): %s" -#: pg_dump.c:1657 +#: pg_dump.c:1821 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "შესაბამისი ცხრილი შაბლონისთვის \"%s\" ვერ ვიპოვე" -#: pg_dump.c:1684 +#: pg_dump.c:1848 #, c-format msgid "You are currently not connected to a database." msgstr "ამჟამად მონაცემთა ბაზასთან მიერთებული არ ბრძანდებით." -#: pg_dump.c:1687 +#: pg_dump.c:1851 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ბაზებს შორის ბმულები განხორციელებული არაა: %s" -#: pg_dump.c:2146 +#: pg_dump.c:2310 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "ცხრილის შემცველობის გამოტანა: \"%s.%s\"" -#: pg_dump.c:2252 +#: pg_dump.c:2420 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "ცხრილის (\"%s\") დამპის შეცდომა: PQgetCopyData() failed." -#: pg_dump.c:2253 pg_dump.c:2263 +#: pg_dump.c:2421 pg_dump.c:2431 #, c-format msgid "Error message from server: %s" msgstr "შეცდომა სერვერიდან: %s" -#: pg_dump.c:2254 pg_dump.c:2264 +#: pg_dump.c:2422 pg_dump.c:2432 #, c-format msgid "Command was: %s" msgstr "ბრძანება იყო: %s" -#: pg_dump.c:2262 +#: pg_dump.c:2430 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "ცხრილის (\"%s\") დამპის შეცდომა: PQgetResult() failed." -#: pg_dump.c:2344 +#: pg_dump.c:2521 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "ცხრილიდან \"%s\" მიღებულია ველების არასწორი რაოდენობა" -#: pg_dump.c:3042 +#: pg_dump.c:3236 #, c-format msgid "saving database definition" msgstr "ბაზის აღწერის შენახვა" -#: pg_dump.c:3151 +#: pg_dump.c:3351 #, c-format msgid "unrecognized locale provider: %s" msgstr "ენის უცნობი მომწოდებელი: %s" -#: pg_dump.c:3512 +#: pg_dump.c:3712 #, c-format msgid "saving encoding = %s" msgstr "კოდირების შენახვა = %s" -#: pg_dump.c:3537 +#: pg_dump.c:3737 #, c-format msgid "saving \"standard_conforming_strings = %s\"" msgstr "შენახვა: \"standard_conforming_strings = %s\"" -#: pg_dump.c:3576 +#: pg_dump.c:3776 #, c-format msgid "could not parse result of current_schemas()" msgstr "current_schemas() -ის შედეგის დამუშავების შეცდომა" -#: pg_dump.c:3595 +#: pg_dump.c:3795 #, c-format msgid "saving \"search_path = %s\"" msgstr "შენახვა: \"search_path = %s\"" -#: pg_dump.c:3631 +#: pg_dump.c:3831 #, c-format msgid "reading large objects" msgstr "დიდი ობიექტების კითხვა" -#: pg_dump.c:3852 +#: pg_dump.c:4052 #, c-format msgid "saving large objects \"%s\"" msgstr "მიმდინარეობს შენახვა დიდი ობიექტებისთვის \"%s\"" -#: pg_dump.c:3873 +#: pg_dump.c:4073 #, c-format msgid "error reading large object %u: %s" msgstr "დიდი ობიექტის (%u) წაკითხვის შეცდომა: %s" -#: pg_dump.c:3976 +#: pg_dump.c:4181 #, c-format msgid "reading row-level security policies" msgstr "მწკრივის დონის უსაფრთხოების წესების წაკითხვა" -#: pg_dump.c:4117 +#: pg_dump.c:4322 #, c-format msgid "unexpected policy command type: %c" msgstr "წესების ბრძანების მოულოდნელი ტიპი: %c" -#: pg_dump.c:4567 pg_dump.c:5103 pg_dump.c:12315 pg_dump.c:18137 -#: pg_dump.c:18139 pg_dump.c:18761 +#: pg_dump.c:4764 pg_dump.c:5321 pg_dump.c:7917 pg_dump.c:13287 pg_dump.c:19405 +#: pg_dump.c:19407 pg_dump.c:20039 #, c-format msgid "could not parse %s array" msgstr "მასივის დამუშავების შეცდომა: %s" -#: pg_dump.c:4759 +#: pg_dump.c:4980 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "გამოწერები დამპში არ ჩაწერილა. მიმდინარე მომხმარებელი ზემომხმარებელი არაა" -#: pg_dump.c:4965 +#: pg_dump.c:5184 #, c-format msgid "subscription with OID %u does not exist" msgstr "გამოწერა OID-ით %u არ არსებობს" -#: pg_dump.c:4972 +#: pg_dump.c:5191 #, c-format msgid "failed sanity check, table with OID %u not found" msgstr "სისწორის შემოწმების შეცდომა. ცხრილი OID-ით %u აღმოჩენილი არაა" -#: pg_dump.c:5535 +#: pg_dump.c:5777 #, c-format msgid "could not find parent extension for %s %s" msgstr "%s-სთვის მშობელი გაფართოება ვერ ვიპოვე %s" -#: pg_dump.c:5680 +#: pg_dump.c:5915 #, c-format msgid "schema with OID %u does not exist" msgstr "სქემა OID-ით %u არ არსებობს" -#: pg_dump.c:7162 pg_dump.c:17508 +#: pg_dump.c:6939 +#, c-format +msgid "cannot dump statistics for relation kind '%c'" +msgstr "სტატისტიკის დამპი ურთიერთობის ტიპისთვის '%c' შეუძლებელია" + +#: pg_dump.c:7451 pg_dump.c:18749 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "სისწორის შემოწმების შეცდომა. მშობელი ცხრილი OID-ით %u მიმდევრობიდან OID-ით %u არ არსებობს" -#: pg_dump.c:7305 +#: pg_dump.c:7596 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "სისწორის შემოწმების შეცდომა. pg_parttioned_table-ში მოხსენიებული ცხრილი OID-ით %u ვერ ვიპოვე" -#: pg_dump.c:7536 pg_dump.c:7810 pg_dump.c:8257 pg_dump.c:8871 pg_dump.c:8993 -#: pg_dump.c:9141 +#: pg_dump.c:7861 pg_dump.c:8154 pg_dump.c:8595 pg_dump.c:9232 pg_dump.c:9367 +#: pg_dump.c:9512 pg_dump.c:9612 #, c-format msgid "unrecognized table OID %u" msgstr "ცხრილის უცნობი OID: %u" -#: pg_dump.c:7540 +#: pg_dump.c:7865 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "მოულოდნელი ინდექსის მონაცემები ცხრილისთვის \"%s\"" -#: pg_dump.c:8042 +#: pg_dump.c:8382 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "სისწორის შემოწმების შეცდომა. მშობელი ცხრილი OID-ით %u pg_rewrite-ის ელემენტიდან OID-ით %u ვერ ვიპოვე" -#: pg_dump.c:8875 +#: pg_dump.c:9236 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "სვეტის მოულოდნელი მონაცემები ცხრილისთვის %s" -#: pg_dump.c:8904 +#: pg_dump.c:9267 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "ცხრილში \"%s\" სვეტები არასწორადაა დანომრილი" -#: pg_dump.c:8955 +#: pg_dump.c:9329 #, c-format msgid "finding table default expressions" msgstr "ვეძებ ცხრილის ნაგულისხმევ გამოსახულებებს" -#: pg_dump.c:8997 +#: pg_dump.c:9371 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "adnum -ის არასწორი მნიშვნელობა %d ცხრილისთვის \"%s\"" -#: pg_dump.c:9091 +#: pg_dump.c:9464 +#, c-format +msgid "finding invalid not null constraints" +msgstr "ვეძებ არასწორ არანულოვან შეზღუდვებს" + +#: pg_dump.c:9562 #, c-format msgid "finding table check constraints" msgstr "ვეძებ ცხრილის შემოწმების შეზღუდვებს" -#: pg_dump.c:9145 +#: pg_dump.c:9616 #, 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 შემოწმების შეზღუდვას ცხრილზე \"%s\", მაგრამ %d" msgstr[1] "მოველოდი %d შემოწმების შეზღუდვას ცხრილზე \"%s\", მაგრამ %d" -#: pg_dump.c:9149 +#: pg_dump.c:9620 #, c-format msgid "The system catalogs might be corrupted." msgstr "სისტემის კატალოგი შეიძლება დაზიანებულია." -#: pg_dump.c:9839 +#: pg_dump.c:10421 #, c-format msgid "role with OID %u does not exist" msgstr "როლი OID-ით %u არ არსებობს" -#: pg_dump.c:9951 pg_dump.c:9980 +#: pg_dump.c:10533 pg_dump.c:10562 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "pg_init_privs -ის არასწორი ჩანაწერი: %u %u %d" -#: pg_dump.c:10527 +#: pg_dump.c:10853 +#, c-format +msgid "stats dumped out of order (current: %d %s %s) (expected: %d %s %s)" +msgstr "სტატისტიკის დამპი დალაგებული არაა (მიმდინარე: %d %s %s) (მოველოდი: %d %s %s)" + +#: pg_dump.c:10981 +#, c-format +msgid "attname cannot be NULL" +msgstr "attname NULL ვერ იქნება" + +#: pg_dump.c:11010 +#, c-format +msgid "could not find index attname \"%s\"" +msgstr "ინდექსის attname \"%s\" აღმოჩენილი არაა" + +#: pg_dump.c:11496 #, c-format msgid "missing metadata for large objects \"%s\"" msgstr "აკლია მეტამონაცემები დიდი ობიექტებისთვის \"%s\"" -#: pg_dump.c:10810 +#: pg_dump.c:11782 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "მონაცემის ტიპი %s-ის typetype თურმე არასორია" -#: pg_dump.c:12384 +#: pg_dump.c:13358 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "უცნობი provolatile მნიშვნელობა ფუნქციისთვის \"%s\"" -#: pg_dump.c:12434 pg_dump.c:14330 +#: pg_dump.c:13408 pg_dump.c:15304 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "უცნობი proparallel მნიშვნელობა ფუნქციისთვის \"%s\"" -#: pg_dump.c:12564 pg_dump.c:12670 pg_dump.c:12677 +#: pg_dump.c:13538 pg_dump.c:13644 pg_dump.c:13651 #, c-format msgid "could not find function definition for function with OID %u" msgstr "ფუნქციის აღწერა ფუნქციისთვის OID-ით %u ვერ ვიპოვე" -#: pg_dump.c:12603 +#: pg_dump.c:13577 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "pg_cast.castfunc ან pg_cast.castmethod ველების არასწორი მნიშვნელობა" -#: pg_dump.c:12606 +#: pg_dump.c:13580 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "pg_cast.castmethod ველის არასწორი მნიშვნელობა" -#: pg_dump.c:12696 +#: pg_dump.c:13670 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "არასწორი გარდაქმნის აღწერა. ერთ-ერთი, trffromsql ან trftosql ნულს არ უნდა უდრიდეს" -#: pg_dump.c:12713 +#: pg_dump.c:13687 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "pg_transform.trffromsql ველის არასწორი მნიშვნელობა" -#: pg_dump.c:12734 +#: pg_dump.c:13708 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "pg_transform.trftosql ველის არასწორი მნიშვნელობა" -#: pg_dump.c:12879 +#: pg_dump.c:13853 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "postfix ოპერატორები მხარდაჭერილი აღარაა (ოპერატორი \"%s\")" -#: pg_dump.c:13049 +#: pg_dump.c:14023 #, c-format msgid "could not find operator with OID %s" msgstr "ოპერატორი OID-ით %s არ არსებობს" -#: pg_dump.c:13117 +#: pg_dump.c:14091 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "წვდომის მეთოდის (%2$s) არასწორი ტიპი: %1$c" -#: pg_dump.c:13791 pg_dump.c:13859 +#: pg_dump.c:14765 pg_dump.c:14833 #, c-format msgid "unrecognized collation provider: %s" msgstr "კოლაციის უცნობი მომწოდებელი: %s" -#: pg_dump.c:13800 pg_dump.c:13807 pg_dump.c:13818 pg_dump.c:13828 -#: pg_dump.c:13843 +#: pg_dump.c:14774 pg_dump.c:14781 pg_dump.c:14792 pg_dump.c:14802 +#: pg_dump.c:14817 #, c-format msgid "invalid collation \"%s\"" msgstr "არასწორი კოლაცია \"%s\"" -#: pg_dump.c:14249 +#: pg_dump.c:15223 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "აგრეგატის (%s) aggfinalmodify -ის უცნობი ტიპი" -#: pg_dump.c:14305 +#: pg_dump.c:15279 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "აგრეგატის (%s) aggmfinalmodify -ის უცნობი ტიპი" -#: pg_dump.c:15022 +#: pg_dump.c:15999 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "ნაგულისხმევ პრივილეგიებში არსებული ობიექტის უცნობი ტიპი: %d" -#: pg_dump.c:15038 +#: pg_dump.c:16015 #, c-format msgid "could not parse default ACL list (%s)" msgstr "ნაგულიხმები ACL სიის ანალიზი შეუძლებელია: %s" -#: pg_dump.c:15122 +#: pg_dump.c:16099 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "საწყისი ACL სიის (%s) დამუშავების შეცდომა ან ნაგულისხმევი (%s) ობიექტისთვის \"%s\" (%s)" -#: pg_dump.c:15147 +#: pg_dump.c:16124 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "შეცდომა ACL სიის (%s) დამუშავებისას ან ნაგულისხმევი (%s) ობიექტისთვის \"%s\" (%s)" -#: pg_dump.c:15690 +#: pg_dump.c:16667 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "ხედის (%s) აღწერის გამოთხოვამ მონაცემები არ დააბრუნა" -#: pg_dump.c:15693 +#: pg_dump.c:16670 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "ხედის (%s) აღწერის გამოთხოვამ ერთზე მეტი აღწერა დააბრუნა" -#: pg_dump.c:15700 +#: pg_dump.c:16677 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "ხედის (%s) აღწერა, როგორც ჩანს, ცარიელია (ნულოვანი სიგრძე)" -#: pg_dump.c:15784 +#: pg_dump.c:16762 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS-ები უკვე მხარდაუჭერელია (ცხრილი \"%s\")" -#: pg_dump.c:16710 +#: pg_dump.c:17852 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "სვეტების არასწორი რიცხვი %d ცხრილისთვის %s" -#: pg_dump.c:16788 +#: pg_dump.c:17930 #, c-format msgid "could not parse index statistic columns" msgstr "ინდექსის სტატისტიკის სვეტების დამუშავების შეცდომა" -#: pg_dump.c:16790 +#: pg_dump.c:17932 #, c-format msgid "could not parse index statistic values" msgstr "ინდექსის სტატისტიკის მნიშვნელობების დამუშავების შეცდომა" -#: pg_dump.c:16792 +#: pg_dump.c:17934 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "ინდექსის სტატისტიკისთვის სვეტებისა და მნიშვნელობების რაოდენობა არ ემთხვევა" -#: pg_dump.c:17007 +#: pg_dump.c:18163 #, c-format msgid "missing index for constraint \"%s\"" msgstr "შეზღუდვას ინდექსი აკლია: \"%s\"" -#: pg_dump.c:17242 +#: pg_dump.c:18407 #, c-format msgid "unrecognized constraint type: %c" msgstr "შეზღუდვის უცნობი ტიპი: %c" -#: pg_dump.c:17343 pg_dump.c:17572 +#: pg_dump.c:18460 +#, c-format +msgid "unrecognized sequence type: %s" +msgstr "მიმდევრობის უცნობი ტიპი: %s" + +#: pg_dump.c:18592 pg_dump.c:18824 #, 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] "მოთხოვნამ, რომელსაც მონაცემები მიმდევრობიდან (%s) უნდა მიეღო, %d მწკრივი დააბრუნა. (მოველოდი: 1)" msgstr[1] "მოთხოვნამ, რომელსაც მონაცემები მიმდევრობიდან (%s) უნდა მიეღო, %d მწკრივი დააბრუნა. (მოველოდი: 1)" -#: pg_dump.c:17375 +#: pg_dump.c:18628 #, c-format -msgid "unrecognized sequence type: %s" -msgstr "მიმდევრობის უცნობი ტიპი: %s" +msgid "unrecognized sequence type: %d" +msgstr "მიმდევრობის უცნობი ტიპი: %d" -#: pg_dump.c:17889 +#: pg_dump.c:19157 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "მოთხოვნის შეცდომა, რომელსაც ცხრილისთვის \"%2$s\" წესი \"%1$s\" უნდა მიეღო: დაბრუნებულია მწკრივების არასწორი რაოდენობა" -#: pg_dump.c:18042 +#: pg_dump.c:19310 #, c-format msgid "could not find referenced extension %u" msgstr "მიბმული გაფართოება (%u) ვერ ვიპოვე" -#: pg_dump.c:18141 +#: pg_dump.c:19409 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "კონფიგურაციებისა და პირობების რაოდენობა გაფართოებისთვის არ ემთხვევა" -#: pg_dump.c:18273 +#: pg_dump.c:19541 #, c-format msgid "reading dependency data" msgstr "დამოკიდებულების მონაცემების კითხვა" -#: pg_dump.c:18359 +#: pg_dump.c:19627 #, c-format msgid "no referencing object %u %u" msgstr "მიბმადი ობიექტის გარეშე %u %u" -#: pg_dump.c:18370 +#: pg_dump.c:19638 #, c-format msgid "no referenced object %u %u" msgstr "მიბმული ობიექტის გარეშე %u %u" -#: pg_dump.c:18795 pg_dump.c:18833 pg_dumpall.c:1962 pg_restore.c:551 -#: pg_restore.c:597 +#: pg_dump.c:20073 pg_dump.c:20111 pg_dumpall.c:1911 pg_restore.c:766 +#: pg_restore.c:812 #, c-format msgid "%s filter for \"%s\" is not allowed" msgstr "ფილტრი %s \"%s\"-სთვის დაშვებული არაა" -#: pg_dump_sort.c:424 +#: pg_dump_sort.c:436 #, c-format msgid "invalid dumpId %d" msgstr "არასწორი dumpId %d" -#: pg_dump_sort.c:430 +#: pg_dump_sort.c:442 #, c-format msgid "invalid dependency %d" msgstr "არასწორი დამოკიდებულება %d" -#: pg_dump_sort.c:594 +#: pg_dump_sort.c:606 #, c-format msgid "could not identify dependency loop" msgstr "დამოკიდებულებების მარყუჟები ნაპოვნი არაა" -#: pg_dump_sort.c:1209 +#: pg_dump_sort.c:1247 #, 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] "ცხრილები, რომლებშიც აღმოჩენილია წრიული გარე-გასაღების შეზღუდვები:" msgstr[1] "ცხრილები, რომლებშიც აღმოჩენილია წრიული გარე-გასაღების შეზღუდვები:" -#: pg_dump_sort.c:1214 +#: pg_dump_sort.c:1252 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "შეიძლება დამპის აღდგენა --disable-trigger-ების გამორთვის ან დროებით შეზღუდვების გადაყრის გარეშე ვერ შეძლოთ." -#: pg_dump_sort.c:1215 +#: pg_dump_sort.c:1253 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "ამ პრობლემის ასარიდებლად უმჯობესია --data-only -ის მაგიერ სრული დამპი აიღოთ." -#: pg_dump_sort.c:1227 +#: pg_dump_sort.c:1265 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "ამ ელემენტებს შორის დამოკიდებულებების მარყუჟის ამოხსნა შეუძლებელია:" -#: pg_dumpall.c:231 +#: pg_dumpall.c:244 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა" -#: pg_dumpall.c:234 +#: pg_dumpall.c:247 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s" -#: pg_dumpall.c:387 +#: pg_dumpall.c:402 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" -msgstr "პარამეტრი --exclude-database არ შეიძლება -g/--globals-only, -r/--roles-only, და -t/--tablespaces-only -სთან ერთად იყოს გამოყენებული" +msgstr "პარამეტრი --exclude-database არ შეიძლება, -g/--globals-only, -r/--roles-only, და -t/--tablespaces-only -სთან ერთად იყოს გამოყენებული" -#: pg_dumpall.c:395 +#: pg_dumpall.c:410 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" -msgstr "პარამეტრები -g/--globals-only და -r/--roles-only ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -g/--globals-only და -r/--roles-only ერთად ვერ გამოიყენებთ" -#: pg_dumpall.c:402 +#: pg_dumpall.c:417 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" -msgstr "პარამეტრები -g/--globals-only და -t/--tablespaces-only ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -g/--globals-only და -t/--tablespaces-only ერთად ვერ გამოიყენებთ" -#: pg_dumpall.c:412 +#: pg_dumpall.c:427 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" -msgstr "პარამეტრები -r/--roles-only და -t/--tablespaces-only ერთად ვერ გამოიყენება" +msgstr "პარამეტრებს -r/--roles-only და -t/--tablespaces-only ერთად ვერ გამოიყენებთ" -#: pg_dumpall.c:474 pg_dumpall.c:1771 +#: pg_dumpall.c:442 #, c-format -msgid "could not connect to database \"%s\"" -msgstr "მონაცემთა ბაზასთან დაკავშირება ვერ მოხერხდა \"%s\"" +msgid "option -F/--format=d|c|t requires option -f/--file" +msgstr "პარამეტრს -F/--format=d|c|t სჭირდება პარამეტრი -f/--file" + +#: pg_dumpall.c:524 pg_restore.c:1061 pg_restore.c:1317 +#, c-format +msgid "could not open \"%s\": %m" +msgstr "\"%s\" ვერ გავხსენი: %m" -#: pg_dumpall.c:486 +#: pg_dumpall.c:562 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2527,81 +2678,81 @@ msgstr "" "ვერ დაუკავშირდა მონაცემთა ბაზებს \"postgres\" ან \"template1\"\n" "გთხოვთ მიუთითოთ ალტერნატიული მონაცემთა ბაზა." -#: pg_dumpall.c:634 +#: pg_dumpall.c:698 #, c-format msgid "" -"%s extracts a PostgreSQL database cluster into an SQL script file.\n" +"%s extracts a PostgreSQL database cluster based on specified dump format.\n" "\n" msgstr "" -"%s-ი PostgreSQL-ის ბაზის კლასტერს SQL სკრიპტის ფაილში გამოიტანს.\n" +"%s გაშლის PostgreSQL-ის მონაცემთა ბაზაის კლასტერს მითითებული დამპის ფორმატის მიხედვით.\n" "\n" -#: pg_dumpall.c:636 +#: pg_dumpall.c:700 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [პარამეტრი]...\n" -#: pg_dumpall.c:639 +#: pg_dumpall.c:703 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=FILENAME გამოტანის ფაილის სახელი\n" -#: pg_dumpall.c:646 +#: pg_dumpall.c:712 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean ბაზის წაშლა თავიდან შექმნამდე\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:714 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" -msgstr " -g, --globals-only წაიშლება მხოლოდ გლობალური ობიექტები და არა ბაზები\n" +msgstr " -g, --globals-only მოხდება, მხოლოდ, გლობალური ობიექტების დამპი და არა ბაზები\n" -#: pg_dumpall.c:649 pg_restore.c:475 +#: pg_dumpall.c:715 pg_restore.c:681 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner ობიექტების მფლობელობის აღდგენის გამოტოვება\n" -#: pg_dumpall.c:650 +#: pg_dumpall.c:716 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr " -r, --roles-only გამოიტანს მხოლოდ როლებს და არც ბაზებს და არც ცხრილების სივრცეებს\n" -#: pg_dumpall.c:652 +#: pg_dumpall.c:718 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAME გამოსაყენებელი ზემომხმარებლის სახელი\n" -#: pg_dumpall.c:653 +#: pg_dumpall.c:719 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr " -t, --tablespaces-only გამოიტანს მხლოდ ცხრილების სივრცეებს და არც ბაზებს და არც როლებს\n" -#: pg_dumpall.c:659 +#: pg_dumpall.c:725 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=PATTERN გამორიცხავს ბაზებს, რომლებიც PATTERN-ს ემთხვევა\n" -#: pg_dumpall.c:661 +#: pg_dumpall.c:727 #, c-format -msgid " --filter=FILENAME exclude databases specified in FILENAME\n" +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" msgstr " --filter=FILENAME ფაილში მითითებული მონაცემთა ბაზების ამოღება\n" -#: pg_dumpall.c:667 +#: pg_dumpall.c:735 #, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords როლების პაროლები გამოტანილ არ იქნება\n" -#: pg_dumpall.c:683 +#: pg_dumpall.c:757 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CONNSTR კავშირის სტრიქონი\n" -#: pg_dumpall.c:685 +#: pg_dumpall.c:759 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=ბაზისსახელი ალტერნატიული ბაზის სახელი)\n" -#: pg_dumpall.c:692 +#: pg_dumpall.c:766 #, c-format msgid "" "\n" @@ -2614,155 +2765,206 @@ msgstr "" "სტანდარტულ გამოტანაზე იქნება გამოტანილი.\n" "\n" -#: pg_dumpall.c:837 +#: pg_dumpall.c:911 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "როლის სახელი, რომელიც \"pg_\"-ით იწყება, გამოტოვებულია (%s)" -#: pg_dumpall.c:1059 +#. translator: %s represents a numeric role OID +#: pg_dumpall.c:1125 pg_dumpall.c:1183 pg_dumpall.c:1192 +#, c-format +msgid "found orphaned pg_auth_members entry for role %s" +msgstr "აღმოჩენილია მიტოვებული pg_auth-ის წევრის ჩანაწერი როლისთვის %s" + +#: pg_dumpall.c:1158 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "სწორი დამპის მიმდევრობა წევრობისთვის როლში \"%s\" აღმოჩენილი არაა" -#: pg_dumpall.c:1194 +#: pg_dumpall.c:1313 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "ვერ გაანალიზდა ACL სია (%s) პარამეტრისთვის \"%s\"" -#: pg_dumpall.c:1321 +#: pg_dumpall.c:1440 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "შეცდომა ACL-ის სიის (%s) დამუშავებისთვის ცხრილის სივრცისთვის \"%s\"" -#: pg_dumpall.c:1528 +#: pg_dumpall.c:1657 +#, c-format +msgid "could not create subdirectory \"%s\": %m" +msgstr "ქვესაქაღალდის (%s) შექმნის შეცდომა: %m" + +#: pg_dumpall.c:1664 +#, c-format +msgid "could not open map file: %s" +msgstr "შეუძლებელია რუკის ფაილის გახსნა: %s" + +#: pg_dumpall.c:1681 pg_restore.c:1014 #, c-format msgid "excluding database \"%s\"" msgstr "გამოირიცხა ბაზა \"%s\"" -#: pg_dumpall.c:1532 +#: pg_dumpall.c:1702 #, c-format msgid "dumping database \"%s\"" msgstr "დამპის გამოტანა ბაზისთვის \"%s\"" -#: pg_dumpall.c:1563 +#: pg_dumpall.c:1731 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "pg_dump -ის შეცდომა ბაზაზე \"%s\". დასასრული" -#: pg_dumpall.c:1569 +#: pg_dumpall.c:1744 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "გამოსატანი ფაილის თავიდან გახსნის შეცდომა \"%s\": %m" -#: pg_dumpall.c:1613 +#: pg_dumpall.c:1812 #, c-format msgid "running \"%s\"" msgstr "%s -ის გაშვება" -#: pg_dumpall.c:1814 -#, c-format -msgid "could not get server version" -msgstr "სერვერის ვერსიის მღების შეცდომა" - -#: pg_dumpall.c:1817 -#, c-format -msgid "could not parse server version \"%s\"" -msgstr "შერვერის ვერსიის დამუშავების შეცდომა: %s" - -#: pg_dumpall.c:1887 pg_dumpall.c:1910 -#, c-format -msgid "executing %s" -msgstr "%s -ის შესრულება" - -#: pg_dumpall.c:1982 +#: pg_dumpall.c:1931 msgid "unsupported filter object" msgstr "მხარდაუჭერელი ფილტრის ობიექტი" -#: pg_restore.c:329 +#: pg_dumpall.c:1974 +#, c-format +msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", \"p\", or \"t\"" +msgstr "არქივის უცნობი ფორმატი \"%s\"; გთხოვთ მიუთითოთ \"c\", \"d\" \"p\", ან \"t\"" + +#: pg_restore.c:383 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "-d/--dbname და-f/--file -დან მხოლოდ ერთ-ერთის მითითება შეგიძლიათ" -#: pg_restore.c:336 +#: pg_restore.c:387 +#, c-format +msgid "option --exclude-database cannot be used together with -g/--globals-only" +msgstr "პარამეტრი --exclude-database არ შეიძლება, გამოიყენოთ პარამეტრთან -g/--globals-only ერთად" + +#: pg_restore.c:397 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "-d/--dbname და-f/--file ერთად არ გამოიყენება" -#: pg_restore.c:350 +#: pg_restore.c:432 #, c-format msgid "options -1/--single-transaction and --transaction-size cannot be used together" msgstr "პარამეტრებს -1/--single-transaction და --transaction-size ერთად ვერ გამოიყენებთ" -#: pg_restore.c:357 +#: pg_restore.c:439 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "-C/--create და -1/--single-transaction ერთად არ გამოიყენება" -#: pg_restore.c:361 +#: pg_restore.c:443 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "--single-transaction -ის მითითება ბევრ დავალებასთან ერთად შეუძლებელია" -#: pg_restore.c:399 +#: pg_restore.c:491 +#, c-format +msgid "archive format \"%s\" is not supported; please use psql" +msgstr "არქივის ფორმატი \"%s\" მხარდაჭერილი არაა. გამოიყენეთ psql" + +#: pg_restore.c:495 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "არქივის უცნობი ფორმატი \"%s\"; გთხოვთ მიუთითოთ \"გ\", \"დ\", ან \"t\"" -#: pg_restore.c:438 +#: pg_restore.c:516 +#, c-format +msgid "option -l/--list cannot be used when restoring an archive created by pg_dumpall" +msgstr "პარამეტრს -l/--list ვერ გამოიყენებთ pg_dumpall-ის მიერ შექმნილი არქივის აღდგენისას" + +#: pg_restore.c:518 +#, c-format +msgid "option -L/--use-list cannot be used when restoring an archive created by pg_dumpall" +msgstr "პარამეტრს -L/--use-list ვერ გამოიყენებთ pg_dumpall-ის მიერ შექმნილი არქივის აღდგენისას" + +#: pg_restore.c:526 +#, c-format +msgid "-C/--create option should be specified when restoring an archive created by pg_dumpall" +msgstr "პარამეტრი -C/--create, მხოლოდ, მაშინ უნდა მიუტითოთ, როცა ხდება pg_dumpall-ის მიერ შექმნილი არქივის აღდგენა" + +#: pg_restore.c:528 +#, c-format +msgid "Individual databases can be restored using their specific archives." +msgstr "ინდივიდუალური მონაცემთა ბაზის აღდგენა მათი სპეციფიკური არქივების გამოყენებითაა შესაძლებელი." + +#: pg_restore.c:560 +#, c-format +msgid "database restoring skipped as -g/--globals-only option was specified" +msgstr "მონაცემთა ბაზის აღდგენა გამოტოვებულია, რადგან მითითებულია პარამეტრი -g/--globals-only" + +#: pg_restore.c:575 +#, c-format +msgid "option --exclude-database can be used only when restoring an archive created by pg_dumpall" +msgstr "პარამეტრის --exclude-database გამოყენება, მხოლოდ, pg_dumpall-ით შექმნილი არქივის აღდგენისას შეგიძლიათ" + +#: pg_restore.c:578 +#, c-format +msgid "option -g/--globals-only can be used only when restoring an archive created by pg_dumpall" +msgstr "პარამეტრის -g/--globals-only გამოყენება, მხოლოდ, pg_dumpall-ით შექმნილი არქივის აღდგენისას შეგიძლიათ" + +#: pg_restore.c:586 #, c-format msgid "errors ignored on restore: %d" msgstr "აღდგენისას იგნორირებული შეცდომების რაოდენობა: %d" -#: pg_restore.c:451 +#: pg_restore.c:656 #, c-format msgid "" -"%s restores a PostgreSQL database from an archive created by pg_dump.\n" +"%s restores PostgreSQL databases from archives created by pg_dump or pg_dumpall.\n" "\n" msgstr "" -"%s აღადგენს PostgreSQL მონაცემთა ბაზას pg_dump მიერ შექმნილი არქივიდან.\n" +"%s აღადგენს PostgreSQL-ის მონაცემთა ბაზებს არქივებიდან, რომლებიც pg_dump-ის, ან pg_dumpall-ის მიერაა შექმნილი.\n" "\n" -#: pg_restore.c:453 +#: pg_restore.c:658 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [პარამეტრი]... [ფაილი]\n" -#: pg_restore.c:456 +#: pg_restore.c:661 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=ბაზისსახელი მონაცემთა ბაზის სახელი\n" -#: pg_restore.c:457 +#: pg_restore.c:662 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILENAME გამოტანის ფაილის სახელი(stdout-ზე გამოსატანად გამოიყენეთ \"-\")\n" -#: pg_restore.c:458 +#: pg_restore.c:663 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t მარქაფის ფაილის ფორმატი (ავტომატური უნდა იყოს)\n" -#: pg_restore.c:459 +#: pg_restore.c:664 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list არქივის სარჩევის მიმოხილვის გამოტანა\n" -#: pg_restore.c:460 +#: pg_restore.c:665 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: pg_restore.c:461 +#: pg_restore.c:666 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_restore.c:462 +#: pg_restore.c:667 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_restore.c:464 +#: pg_restore.c:669 #, c-format msgid "" "\n" @@ -2771,32 +2973,37 @@ msgstr "" "\n" "პარამეტრები, რომლებიც აკონტროლებენ გამოტანას:\n" -#: pg_restore.c:465 +#: pg_restore.c:670 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only აღდგება მხოლოდ მონაცემები, სქემის გარეშე\n" -#: pg_restore.c:467 +#: pg_restore.c:672 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create სამიზნე ბაზის შექმნა\n" -#: pg_restore.c:468 +#: pg_restore.c:673 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error დაუყოვნებლივი გამოსვლა შეცდომის შემთხვევაში\n" -#: pg_restore.c:469 +#: pg_restore.c:674 +#, c-format +msgid " -g, --globals-only restore only global objects, no databases\n" +msgstr " -g, --globals-only აღდგება, მხოლოდ, გლობალური ობიექტები და არა ბაზები\n" + +#: pg_restore.c:675 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME მითითებული სახელის მქონე ინდექსის აღდგენა\n" -#: pg_restore.c:470 +#: pg_restore.c:676 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM აღდგენისას მითითებული რაოდენობის პარალელური დავალების გაშვება\n" -#: pg_restore.c:471 +#: pg_restore.c:677 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2805,57 +3012,62 @@ msgstr "" " -L, --use-list=FILENAME გამოტანის ასარჩევად/დასალაგებლად მითითებული\n" " ფაილის შემცველობის გამოყენება\n" -#: pg_restore.c:473 +#: pg_restore.c:679 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME მხოლოდ მითითებული სქემის ობიექტების აღდგენა\n" -#: pg_restore.c:474 +#: pg_restore.c:680 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=სახელი მითითებული სახელის მქონე სქემაში ობიექტები არ აღდგება\n" -#: pg_restore.c:476 +#: pg_restore.c:682 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=სახელი(არგები) მითითებული სახელის მქონე ფუნქციის აღდგენა\n" -#: pg_restore.c:477 +#: pg_restore.c:683 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only აღდგება მხოლოდ სქემები, მონაცემები კი არა\n" -#: pg_restore.c:478 +#: pg_restore.c:684 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAME ტრიგერების გამოსართავად გამოყენებული ზემომხმარებლის სახელი\n" -#: pg_restore.c:479 +#: pg_restore.c:685 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAME მითითებული ურთიერთობის აღდგენა (ცხრილი, ხედი, და ა.შ.)\n" -#: pg_restore.c:480 +#: pg_restore.c:686 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME მითითებული ტრიგერის აღდგენა \n" -#: pg_restore.c:481 +#: pg_restore.c:687 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges წვდომის პრივილეგიების აღდგენის გამოტოვება (grant/revoke)\n" -#: pg_restore.c:482 +#: pg_restore.c:688 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction აღდგენის ერთ ტრანზაქციად გაშვება\n" -#: pg_restore.c:484 +#: pg_restore.c:690 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security მწკრივების უსაფრთხოების ჩართვა\n" -#: pg_restore.c:485 +#: pg_restore.c:691 +#, c-format +msgid " --exclude-database=PATTERN do not restore the specified database(s)\n" +msgstr " --exclude-database=PATTERN მითითებული მონაცემთა ბაზ(ებ)-ის აღდგენა არ მოხდება\n" + +#: pg_restore.c:692 #, c-format msgid "" " --filter=FILENAME restore or skip objects based on expressions\n" @@ -2864,12 +3076,17 @@ msgstr "" " --filter=FILENAME ობიექტების აღდგენა ან გამოტოვება ფაილში\n" " მითითებული გამოსახულებების მიხედვით\n" -#: pg_restore.c:488 +#: pg_restore.c:695 +#, c-format +msgid " --no-comments do not restore comment commands\n" +msgstr " --no-comments კომენტარის ბრძანებები არ აღდგება\n" + +#: pg_restore.c:696 #, c-format -msgid " --no-comments do not restore comments\n" -msgstr " --no-comments კომენტარები არ აღდგება\n" +msgid " --no-data do not restore data\n" +msgstr " --no-data მონაცემები არ აღდგება\n" -#: pg_restore.c:489 +#: pg_restore.c:697 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" @@ -2878,58 +3095,78 @@ msgstr "" " --no-data-for-failed-tables ცხრილების, რომლის შექმნა შეუძლებელია,\n" " მონაცემები არ აღდგება\n" -#: pg_restore.c:491 +#: pg_restore.c:699 +#, c-format +msgid " --no-policies do not restore row security policies\n" +msgstr " --no-policies მწკრივის უსაფრთხოების პოლიტიკები არ აღდგება\n" + +#: pg_restore.c:700 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications გამოცემები არ აღდგება\n" -#: pg_restore.c:492 +#: pg_restore.c:701 +#, c-format +msgid " --no-schema do not restore schema\n" +msgstr " --no-schema სქემები არ აღდგება\n" + +#: pg_restore.c:702 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels უსაფრთხოების ჭდეები არ აღდგება\n" -#: pg_restore.c:493 +#: pg_restore.c:703 +#, c-format +msgid " --no-statistics do not restore statistics\n" +msgstr " --no-statistics სტატისტიკის აღდგენა არ მოხდება\n" + +#: pg_restore.c:704 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions გამოწერები არ აღდგება\n" -#: pg_restore.c:494 +#: pg_restore.c:705 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method ცხრილის წვდომის მეთოდები არ აღდგება\n" -#: pg_restore.c:495 +#: pg_restore.c:706 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces ცხრილის სივრცის მინიჭებები არ აღდგება\n" -#: pg_restore.c:496 +#: pg_restore.c:707 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr " --section=სექცია მითითებული სექციის აღდგენა (pre-data, data, ან post-data)\n" -#: pg_restore.c:499 +#: pg_restore.c:708 +#, c-format +msgid " --statistics-only restore only the statistics, not schema or data\n" +msgstr " --statistics-only აღდგება, მხოლოდ, სტატისტიკა, სქემა, ან მონაცემები კი - არა\n" + +#: pg_restore.c:711 #, c-format msgid " --transaction-size=N commit after every N objects\n" msgstr " --transaction-size=N გადაცემა ყოველი N ობიექტის შემდეგ\n" -#: pg_restore.c:510 +#: pg_restore.c:725 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME აღდგენამდე SET ROLE -ის გაშვება\n" -#: pg_restore.c:512 +#: pg_restore.c:727 #, c-format msgid "" "\n" -"The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n" -"multiple times to select multiple objects.\n" +"The options -I, -n, -N, -P, -t, -T, --section, and --exclude-database can be combined\n" +"and specified multiple times to select multiple objects.\n" msgstr "" "\n" "შესაძლებელია პარამეტრების -I, -n, -N, -P, -t, -T, და --section ერთად და მრავალჯერ მითითება, მრავალი\n" "ობიექტის ამოსაღებად.\n" -#: pg_restore.c:515 +#: pg_restore.c:730 #, c-format msgid "" "\n" @@ -2940,10 +3177,103 @@ msgstr "" "თუ ფაილის სახელი მითითებული არაა, გამოყენებული იქნება სტანდარტული შეტანა.\n" "\n" +#: pg_restore.c:949 +#, c-format +msgid "considering PATTERN as NAME for --exclude-database option as no db connection while doing pg_restore." +msgstr "ნიმუში ჩაითვლება სახელად პარამეტრისთვის --exclude-database, რადგან pg_restore-ის გაშვების დროს ბაზასთან კავშირი არ დამყარებულა." + +#: pg_restore.c:995 +#, c-format +msgid "database \"%s\" matches exclude pattern: \"%s\"" +msgstr "მონაცემთა ბაზა \"%s\" ემთხვევა გამოტოვების ნიმუშს: \"%s\"" + +#: pg_restore.c:1051 +#, c-format +msgid "database restoring is skipped as \"map.dat\" is not present in \"%s\"" +msgstr "მონაცემთა ბაზის აღდგენა გამოტოვებულია, რადგან \"%s\"-ში ფაილი map.dat აღმოჩენილი არაა" + +#: pg_restore.c:1089 +#, c-format +msgid "invalid entry in \"%s\" at line: %d" +msgstr "არასწორი ჩანაწერი ფაილში \"%s\" ხაზზე: %d" + +#: pg_restore.c:1092 +#, c-format +msgid "found database \"%s\" (OID: %u) in \"%s\"" +msgstr "აღდგენისას ფაილში \"%3$s\" აღმოჩენილია მონაცემთა ბაზა \"%1$s\" (OID: %2$u)." + +#: pg_restore.c:1145 +#, c-format +msgid "found %d database names in \"map.dat\"" +msgstr "ფაილში map.dat აღმოჩენილია სულ %d მონაცემთა ბაზის სახელი" + +#: pg_restore.c:1149 +#, c-format +msgid "trying to connect database \"postgres\"" +msgstr "ვცდილობ, მივუერთდე მონაცემთა ბაზას \"postgres\"" + +#: pg_restore.c:1158 +#, c-format +msgid "trying to connect database \"template1\"" +msgstr "ვცდილობ, მივუერთდე მონაცემთა ბაზას \"postgres\"" + +#: pg_restore.c:1182 +#, c-format +msgid "no database needs to restore out of %d databases" +msgstr "%d მონაცემთა ბაზიდან აღსადგენი არცერთია" + +#: pg_restore.c:1186 +#, c-format +msgid "need to restore %d databases out of %d databases" +msgstr "საჭიროა %d მონაცემთა ბაზის აღდგენა %d-დან" + +#: pg_restore.c:1235 +#, c-format +msgid "restoring database \"%s\"" +msgstr "მიმდინარეობს აღდგენა მონაცემთა ბაზისთვის \"%s\"" + +#: pg_restore.c:1276 +#, c-format +msgid "errors ignored on database \"%s\" restore: %d" +msgstr "მონაცემთა ბაზის \"%s\" აღდგენისას გამოტოვებული შეცდომები: %d" + +#: pg_restore.c:1283 +#, c-format +msgid "number of restored databases is %d" +msgstr "აღდგენილი მონაცემთა ბაზების რაოდენობა: %d" + +#: pg_restore.c:1346 +#, c-format +msgid "executing query: %s" +msgstr "მიმდინარეობს შესრულება მოთხოვნის: %s" + +#: pg_restore.c:1357 +#, c-format +msgid "" +"could not execute query: \"%s\" \n" +"Command was: \"%s\"" +msgstr "" +"ვერ შევასრულე მოთხოვნა: \"%s\"\n" +"ბრძანება: \"%s\"" + +#: pg_restore.c:1364 +#, c-format +msgid "ignored %d errors in \"%s\"" +msgstr "გამოტოვებულია %d შეცდომა \"%s\"-ში" + +#: pg_restore.c:1395 +#, c-format +msgid "could not open file: \"%s\"" +msgstr "შეუძლებელია ფაილის გახსნა: \"%s\"" + #, c-format #~ msgid " %s" #~ msgstr " %s" +#, c-format +#~ msgid " --exclude-database=PATTERN exclude databases whose name matches with pattern\n" +#~ msgstr " --exclude-database=ნიმუში გამორიცხავს ბაზებს, რომლებიც ნიმუშს ემთხვევა\n" + #, c-format #~ msgid " -Z, --compress=0-9 compression level for compressed formats\n" #~ msgstr " -Z, --compress=0-9 შეკუმშვის დონე\n" @@ -2956,6 +3286,10 @@ msgstr "" #~ " -Z, --compress=მეთოდი[:დონე]\n" #~ " შეკუმშვის მითითება\n" +#, c-format +#~ msgid "Either remove the directory \"%s\" or its contents." +#~ msgstr "ან წაშალეთ საქაღალდე \"%s\", ან მისი შემცველობა." + #, c-format #~ msgid "cannot restore from compressed archive (compression not supported in this installation)" #~ msgstr "შეკუმშული არქივიდან აღდგენა შეუძლებელია (ამ აგებაში შეკუმშვა მხარდაჭერილი არაა)" @@ -2964,22 +3298,42 @@ msgstr "" #~ msgid "could not change directory to \"%s\": %m" #~ msgstr "საქაღალდის %s-ზე შეცვლის შეცდომა: %m" -#, c-format -#~ msgid "could not close blob data file: %m" -#~ msgstr "ბლობის ფაილის დახურვის შეცდომა: %m" - #, c-format #~ msgid "could not close blobs TOC file: %m" #~ msgstr "ბლობების შინაარსის ფაილის დახურვის შეცდომა: %m" +#, c-format +#~ msgid "could not close directory \"%s\": %m" +#~ msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" + +#, c-format +#~ msgid "could not connect to database" +#~ msgstr "ბაზასთან მიერთების შეცდომა" + #, c-format #~ msgid "could not identify current directory: %m" #~ msgstr "მიმდინარე საქაღალდის იდენტიფიკაციის პრობლემა: %m" +#, c-format +#~ msgid "could not open global.dat file: \"%s\"" +#~ msgstr "ვერ გავხსენი ფაილი global.dat: \"%s\"" + +#, c-format +#~ msgid "could not open global.dat file: %s" +#~ msgstr "ვერ გავხსენი ფაილი global.dat: %s" + +#, c-format +#~ msgid "could not open map.dat file: \"%s\"" +#~ msgstr "შეუძლებელია map.dat ფაილის გახსნა: \"%s\"" + #, c-format #~ msgid "could not read symbolic link \"%s\": %m" #~ msgstr "სიმბოლური ბმის \"%s\" წაკითხვის შეცდომა: %m" +#, c-format +#~ msgid "errors ignored on global.dat file restore: %d" +#~ msgstr "ფაილის global.dat აღდგენისას გამოტოვებული შეცდომები: %d" + #, c-format #~ msgid "failed to LZ4 compress data: %s" #~ msgstr "'LZ4'-ით მონაცემების შეკუმშვა შეუძლებელია: %s" @@ -3008,10 +3362,18 @@ msgstr "" #~ msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" #~ msgstr "მოთხოვნის შედეგია ნულოვანი ბმის ცხრილის სახელის უცხო გასაღების ტრიგერი \"%s\" ცხრილზე \"%s\" (ცხრილის OID: %u)" +#, c-format +#~ msgid "reconnection failed: %s" +#~ msgstr "თავიდან მიერთების შეცდომა: %s" + #, c-format #~ msgid "requested compression not available in this installation -- archive will be uncompressed" #~ msgstr "მოთხოვნილი შეკუმშვა ამ აგებაში მხარდაუჭერელია. -- არქივი შეუკუმშავი იქნება" +#, c-format +#~ msgid "trying to connect database \"template1\" as failed to connect to database \"postgres\" to dump into out file" +#~ msgstr "ვცდილობ, მივუერთდე მონაცემთა ბაზას \"template1\", რადგან მცდელობა, მივერთებოდი მონაცემთა ბაზას \"postgres\" გამოსატან ფაილში დამპისთვის, ჩავარდა" + #, c-format #~ msgid "unexpected tgtype value: %d" #~ msgstr "tgtype -ის არასწორი მნიშვნელობა: %d" diff --git a/src/bin/pg_dump/po/ko.po b/src/bin/pg_dump/po/ko.po index f38254e8dfb1a..296f7e5ff487f 100644 --- a/src/bin/pg_dump/po/ko.po +++ b/src/bin/pg_dump/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_dump (PostgreSQL) 16\n" +"Project-Id-Version: pg_dump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:51+0000\n" -"PO-Revision-Date: 2023-09-08 16:10+0900\n" +"POT-Creation-Date: 2025-01-17 04:51+0000\n" +"PO-Revision-Date: 2025-01-16 14:55+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -90,32 +90,47 @@ msgstr "\"%s\" 압축 알고리즘을 사용할 때는 작업자 수를 지정 msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "\"%s\" 압축 알고리즘은 원거리 모드를 지원하지 않습니다" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일임: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "실행 할 \"%s\" 파일을 찾을 수 없음" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 경로를 절대경로로 바꿀 수 없음: %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령에서 읽을 수 없음: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령이 아무런 데이터도 반환하지 않음" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "메모리 부족" @@ -130,6 +145,49 @@ msgstr "메모리 부족\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 중복할 수 없음 (내부 오류)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위해 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일 상태 정보를 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 일 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -170,227 +228,247 @@ msgstr "\"%s\" 값은 %s 옵션 값으로 유효하지 않음" msgid "%s must be in range %d..%d" msgstr "%s 값은 %d부터 %d까지 지정할 수 있습니다." -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 있습니다: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있습니다: \"%s\"\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "확장 기능 읽는 중" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "확장 멤버를 식별 중" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "스키마들을 읽는 중" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "사용자 정의 테이블들을 읽는 중" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "사용자 정의 함수들 읽는 중" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "사용자 정의 자료형을 읽는 중" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "프로시쥬얼 언어를 읽는 중" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "사용자 정의 집계 함수를 읽는 중" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "사용자 정의 연산자를 읽는 중" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "사용자 정의 접근 방법을 읽는 중" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "사용자 정의 연산자 클래스를 읽는 중" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "사용자 정의 연산자 부류들 읽는 중" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "사용자 정의 텍스트 검색 파서를 읽는 중" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "사용자 정의 텍스트 검색 템플릿을 읽는 중" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "사용자 정의 텍스트 검색 사전을 읽는 중" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "사용자 정의 텍스트 검색 구성을 읽는 중" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "사용자 정의 외부 데이터 래퍼를 읽는 중" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "사용자 정의 외부 서버를 읽는 중" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "기본 접근 권한 읽는 중" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "사용자 정의 글자 정렬(collation) 읽는 중" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "사용자 정의 인코딩 변환규칙을 읽는 중" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "형변환자(type cast)들을 읽는 중" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "변환자(transform) 읽는 중" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "테이블 상속 정보를 읽는 중" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "이벤트 트리거들을 읽는 중" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "확장 테이블을 찾는 중" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "상속 관계를 조사중" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "재미난 테이블들(interesting tables)을 위해 열 정보를 읽는 중" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "하위 테이블에서 상속된 열 구분중" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "파티션 자료 읽는 중" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "인덱스들을 읽는 중" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "하위 파티션 테이블에서 인덱스를 플래그 처리하는 중" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "확장 통계들을 읽는 중" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "제약 조건들을 읽는 중" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "트리거들을 읽는 중" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "룰(rule) 읽는 중" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "정책 읽는 중" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "발행 정보를 읽는 중" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "테이블의 발행 맵버쉽을 읽는 중" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "스키마의 발행 맵버쉽을 읽을 중" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "구독정보를 읽는 중" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "테이블의 구독 맵버쉽을 읽는 중" + +#: common.c:333 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "안전 검사 실패, OID %u인 부모 개체가 없음. 해당 테이블 \"%s\" (OID %u)" -#: common.c:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "잘못된 부모 수: %d, 해당 테이블 \"%s\"" -#: common.c:1049 +#: common.c:1098 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "\"%s\" 숫자 배열을 분석할 수 없음: 너무 많은 숫자들이 있음" -#: common.c:1061 +#: common.c:1110 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "\"%s\" 숫자 배열을 분석할 수 없음: 숫자안에 이상한 글자가 있음" @@ -420,15 +498,20 @@ msgstr "자료 압축을 풀 수 없습니다: %s" msgid "could not close compression library: %s" msgstr "압축 라이브러리를 닫을 수 없음: %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "입력 파일을 읽을 수 없음: %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:374 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "입력 파일을 읽을 수 없음: %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:372 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" msgstr "입력 파일을 읽을 수 없음: 파일 끝" @@ -468,27 +551,72 @@ msgstr "압축 풀기 작업 끝내기 실패: %s" msgid "could not set compression parameter \"%s\": %s" msgstr "\"%s\" 압축 매개 변수를 지정할 수 없음: %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:232 compress_zstd.c:491 +#: compress_zstd.c:499 #, c-format msgid "could not initialize compression library" msgstr "압축 라이브러리를 초기화 할 수 없음" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:195 compress_zstd.c:309 #, c-format msgid "could not decompress data: %s" msgstr "자료를 압축 해제 할 수 없음: %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "입력 파일을 읽을 수 없음: %m" - -#: compress_zstd.c:501 +#: compress_zstd.c:502 #, c-format msgid "unhandled mode \"%s\"" msgstr "\"%s\" 모드는 처리할 수 없음" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "\"%s\" 필터 파일을 열 수 없음: %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "\"%s\" 필터 파일을 닫을 수 없음: %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "표준 입력의 %d 번째 줄을 읽는데 잘못된 필터 포멧: %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "\"%s\" 파일의 %d 번째 줄에 잘못된 필터 포멧: %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "\"%s\" 필터 파일을 읽을 수 없음: %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "예상치 못한 파일 끝" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "객체 이름 패턴이 빠졌음" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "필터 명령이 없음 (\"include\" 또는 \"exclude\" 사용할 수 있음)" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "잘못된 필터 명령 (\"include\" 또는 \"exclude\" 사용할 수 있음)" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "필터 객체형이 빠졌음" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "지원하지 않는 필터 객체형: \"%.*s\"" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -571,387 +699,392 @@ msgstr "pgpipe: 소켓 접속 실패: 오류 코드 %d" msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: 접속을 승인할 수 없음: 오류 코드 %d" -#: pg_backup_archiver.c:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "출력 파일을 닫을 수 없음: %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, c-format msgid "archive items not in correct section order" msgstr "아카이브 아이템의 순서가 섹션에서 비정상적임" -#: pg_backup_archiver.c:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "예상치 못한 섹션 코드 %d" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "이 아카이브 파일 형식에서는 병렬 복원이 지원되지 않음" -#: pg_backup_archiver.c:371 +#: pg_backup_archiver.c:356 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "8.0 이전 pg_dump로 만든 아카이브에서는 병렬 복원이 지원되지 않음" -#: pg_backup_archiver.c:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "압축된 아카이브 (%s) 에서 복원할 수 없음" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "복원 작업을 위해 데이터베이스에 접속 중" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "pre-1.3 archive에서 직통 데이터베이스 접속은 지원되지 않음" -#: pg_backup_archiver.c:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "암묵적으로 자료만 복원" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "%s %s 삭제 중" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "\"%s\" 구문에서 insert IF EXISTS 부분을 찾을 수 없음" -#: pg_backup_archiver.c:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "원본 덤프 파일에서 발생한 경고: %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "%s \"%s.%s\" 만드는 중" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "%s \"%s\" 만드는 중" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "\"%s\" 새 데이터베이스에 접속중" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "%s 처리 중" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "\"%s.%s\" 테이블의 자료를 처리 중" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "실행중: %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "%s 트리거 작동을 비활성화 하는 중" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "%s 트리거 작동을 활성화 하는 중" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, c-format msgid "" "internal error -- WriteData cannot be called outside the context of a " "DataDumper routine" msgstr "내부 오류 -- WriteData는 DataDumper 루틴 영역 밖에서 호출 될 수 없음" -#: pg_backup_archiver.c:1287 +#: pg_backup_archiver.c:1379 #, c-format msgid "large-object output not supported in chosen format" msgstr "선택한 파일 양식으로는 large-object를 덤프할 수 없음" -#: pg_backup_archiver.c:1345 +#: pg_backup_archiver.c:1442 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" msgstr[0] "%d개의 큰 개체가 복원됨" -#: pg_backup_archiver.c:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "%u OID large object를 복원중" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, c-format msgid "could not create large object %u: %s" msgstr "%u large object를 만들 수 없음: %s" -#: pg_backup_archiver.c:1383 pg_dump.c:3718 +#: pg_backup_archiver.c:1486 pg_dump.c:3888 #, c-format msgid "could not open large object %u: %s" msgstr "%u large object를 열 수 없음: %s" -#: pg_backup_archiver.c:1439 +#: pg_backup_archiver.c:1542 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "TOC 파일 \"%s\"을(를) 열 수 없음: %m" -#: pg_backup_archiver.c:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "줄 무시됨: %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, c-format msgid "could not find entry for ID %d" msgstr "%d ID에 대한 항목을 찾지 못했음" -#: pg_backup_archiver.c:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "TOC 파일을 닫을 수 없음: %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, c-format msgid "could not open output file \"%s\": %m" msgstr "\"%s\" 출력 파일을 열 수 없음: %m" -#: pg_backup_archiver.c:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "출력 파일을 열 수 없음: %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "%zu 바이트의 큰 객체 데이터를 씀(결과 = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "큰 객체를 쓸 수 없음: %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "초기화 작업 중:" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "TOC 처리하는 중:" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "뒷 마무리 작업 중:" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "%d TOC 항목에서; %u %u %s %s %s" -#: pg_backup_archiver.c:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "잘못된 dumpID" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "TABLE DATA 아이템에 대한 잘못된 테이블 dumpId" -#: pg_backup_archiver.c:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "예상치 못한 자료 옵셋 플래그 %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, c-format msgid "file offset in dump file is too large" msgstr "덤프 파일에서 파일 옵셋 값이 너무 큽니다" -#: pg_backup_archiver.c:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "디렉터리 이름이 너무 긺: \"%s\"" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, 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:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "\"%s\" 입력 파일을 열 수 없음: %m" -#: pg_backup_archiver.c:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, c-format msgid "could not open input file: %m" msgstr "입력 파일을 열 수 없음: %m" -#: pg_backup_archiver.c:2164 +#: pg_backup_archiver.c:2267 #, c-format msgid "could not read input file: %m" msgstr "입력 파일을 읽을 수 없음: %m" -#: pg_backup_archiver.c:2166 +#: pg_backup_archiver.c:2269 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "입력 파일이 너무 짧습니다 (%lu 읽었음, 예상치 5)" -#: pg_backup_archiver.c:2198 +#: pg_backup_archiver.c:2301 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "입력 파일은 일반 텍스트 덤프 파일입니다. psql 명령을 사용하세요." -#: pg_backup_archiver.c:2204 +#: pg_backup_archiver.c:2307 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "입력 파일에서 타당한 아카이브를 찾을 수 없습니다(너무 짧은지?)" -#: pg_backup_archiver.c:2210 +#: pg_backup_archiver.c:2313 #, c-format msgid "input file does not appear to be a valid archive" msgstr "입력 파일에서 타당한 아카이브를 찾을 수 없음" -#: pg_backup_archiver.c:2219 +#: pg_backup_archiver.c:2322 #, c-format msgid "could not close input file: %m" msgstr "입력 파일을 닫을 수 없음: %m" -#: pg_backup_archiver.c:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "추가용 표준출력 파일을 열 수 없음: %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "알 수 없는 파일 포멧: \"%d\"" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4448 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4647 #, c-format msgid "finished item %d %s %s" msgstr "%d %s %s 항목 마침" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4461 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4660 #, c-format msgid "worker process failed: exit code %d" msgstr "작업자 프로세스 실패: 종료 코드 %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "%d ID 항목은 범위를 벗어났음 -- TOC 정보가 손상된 듯 합니다" -#: pg_backup_archiver.c:2628 +#: pg_backup_archiver.c:2736 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "WITH OIDS 옵션이 있는 테이블의 복원은 이제 지원하지 않습니다" -#: pg_backup_archiver.c:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "알 수 없는 인코딩: \"%s\"" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2823 #, c-format msgid "invalid ENCODING item: %s" msgstr "잘못된 ENCODING 항목: %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2841 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "잘못된 STDSTRINGS 항목: %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2866 #, c-format msgid "schema \"%s\" not found" msgstr "\"%s\" 스키마를 찾을 수 없음" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2873 #, c-format msgid "table \"%s\" not found" msgstr "\"%s\" 테이블을 찾을 수 없음" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2880 #, c-format msgid "index \"%s\" not found" msgstr "\"%s\" 인덱스를 찾을 수 없음" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2887 #, c-format msgid "function \"%s\" not found" msgstr "\"%s\" 함수를 찾을 수 없음" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2894 #, c-format msgid "trigger \"%s\" not found" msgstr "\"%s\" 트리거를 찾을 수 없음" -#: pg_backup_archiver.c:3183 +#: pg_backup_archiver.c:3325 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "\"%s\" 사용자로 세션 사용자를 지정할 수 없음: %s" -#: pg_backup_archiver.c:3315 +#: pg_backup_archiver.c:3457 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "search_path를 \"%s\"(으)로 지정할 수 없음: %s" +msgid "could not set \"search_path\" to \"%s\": %s" +msgstr "\"search_path\"를 \"%s\"(으)로 지정할 수 없음: %s" -#: pg_backup_archiver.c:3376 +#: pg_backup_archiver.c:3518 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "default_tablespace로 %s(으)로 지정할 수 없음: %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "\"default_tablespace\"로 %s(으)로 지정할 수 없음: %s" -#: pg_backup_archiver.c:3425 +#: pg_backup_archiver.c:3567 #, c-format -msgid "could not set default_table_access_method: %s" -msgstr "default_table_access_method를 지정할 수 없음: %s" +msgid "could not set \"default_table_access_method\": %s" +msgstr "\"default_table_access_method\"를 지정할 수 없음: %s" -#: pg_backup_archiver.c:3530 +#: pg_backup_archiver.c:3616 +#, c-format +msgid "could not alter table access method: %s" +msgstr "alter table access method 실행 할 수 없음: %s" + +#: pg_backup_archiver.c:3717 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "\"%s\" 개체의 소유주를 지정할 수 없습니다" -#: pg_backup_archiver.c:3752 +#: pg_backup_archiver.c:4004 #, c-format msgid "did not find magic string in file header" msgstr "파일 헤더에서 매직 문자열을 찾지 못했습니다" -#: pg_backup_archiver.c:3766 +#: pg_backup_archiver.c:4018 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "파일 헤더에 있는 %d.%d 버전은 지원되지 않습니다" -#: pg_backup_archiver.c:3771 +#: pg_backup_archiver.c:4023 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "정수 크기 (%lu) 안전성 검사 실패" -#: pg_backup_archiver.c:3775 +#: pg_backup_archiver.c:4027 #, c-format msgid "" "archive was made on a machine with larger integers, some operations might " @@ -960,12 +1093,12 @@ msgstr "" "이 아카이브는 큰 정수를 지원하는 시스템에서 만들어졌습니다. 그래서 몇 동작이 " "실패할 수도 있습니다." -#: pg_backup_archiver.c:3785 +#: pg_backup_archiver.c:4037 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "예상되는 포멧 (%d)와 발견된 파일 포멧 (%d)이 서로 다름" -#: pg_backup_archiver.c:3807 +#: pg_backup_archiver.c:4059 #, c-format msgid "" "archive is compressed, but this installation does not support compression " @@ -974,68 +1107,68 @@ msgstr "" "아카이브는 압축되어있지만, 이 프로그램에서는 (%s) 압축기능을 지원하지 못합니" "다 -- 이 안에 있는 자료를 모두 사용할 수 없습니다." -#: pg_backup_archiver.c:3843 +#: pg_backup_archiver.c:4095 #, c-format msgid "invalid creation date in header" msgstr "헤더에 잘못된 생성 날짜가 있음" -#: pg_backup_archiver.c:3977 +#: pg_backup_archiver.c:4229 #, c-format msgid "processing item %d %s %s" msgstr "%d %s %s 항목을 처리하는 중" -#: pg_backup_archiver.c:4052 +#: pg_backup_archiver.c:4314 #, c-format msgid "entering main parallel loop" msgstr "기본 병렬 루프로 시작 중" -#: pg_backup_archiver.c:4063 +#: pg_backup_archiver.c:4325 #, c-format msgid "skipping item %d %s %s" msgstr "%d %s %s 항목을 건너뛰는 중" -#: pg_backup_archiver.c:4072 +#: pg_backup_archiver.c:4334 #, c-format msgid "launching item %d %s %s" msgstr "%d %s %s 항목을 시작하는 중" -#: pg_backup_archiver.c:4126 +#: pg_backup_archiver.c:4388 #, c-format msgid "finished main parallel loop" msgstr "기본 병렬 루프 마침" -#: pg_backup_archiver.c:4162 +#: pg_backup_archiver.c:4424 #, c-format msgid "processing missed item %d %s %s" msgstr "누락된 %d %s %s 항목 처리 중" -#: pg_backup_archiver.c:4767 +#: pg_backup_archiver.c:4966 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "\"%s\" 테이블을 만들 수 없어, 해당 자료는 복원되지 않을 것입니다." -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "잘못된 large object용 OID" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "파일 seek 작업하는 도중 오류가 발생했습니다: %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "%d 자료 블록에 잘못된 접근 위치가 있음" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "아카이브 검색하는 동안 알 수 없는 자료 블럭 형태(%d)를 발견함" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "" "could not find block ID %d in archive -- possibly due to out-of-order " @@ -1044,56 +1177,56 @@ msgstr "" "아카이브에서 블록 ID %d을(를) 찾지 못했습니다. 복원 요청이 잘못된 것 같습니" "다. 입력 파일을 검색할 수 없으므로 요청을 처리할 수 없습니다." -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "" "아카이브에서 블록 ID %d을(를) 찾을 수 없습니다. 아카이브가 손상된 것 같습니" "다." -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "자료를 읽는 동안 예상치 못한 ID (%d) 발견됨 -- 예상값 %d" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "아카이브 복원하는 중에, 알 수 없는 자료 블럭 형태 %d 를 발견함" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "아카이브 파일에서 검색 위치를 확인할 수 없음: %m" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "자료 파일을 닫을 수 없음: %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "입력 아카이브만 다시 열 수 있음" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "표준 입력을 이용한 병렬 복원 작업은 지원하지 않습니다" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "" "시작 위치를 임의로 지정할 수 없는 파일로는 병렬 복원 작업을 할 수 없습니다." -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "아카이브 파일에서 검색 위치를 설정할 수 없음: %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "압축기 사용" @@ -1103,12 +1236,12 @@ msgstr "압축기 사용" msgid "could not get server_version from libpq" msgstr "libpq에서 server_verion 값을 구할 수 없음" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1830 #, c-format msgid "aborting because of server version mismatch" msgstr "서버 버전이 일치하지 않아 중단하는 중" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1831 #, c-format msgid "server version: %s; %s version: %s" msgstr "서버 버전: %s; %s 버전: %s" @@ -1118,7 +1251,7 @@ msgstr "서버 버전: %s; %s 버전: %s" msgid "already connected to a database" msgstr "데이터베이스에 이미 접속해 있음" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 msgid "Password: " msgstr "암호: " @@ -1132,18 +1265,18 @@ msgstr "데이터베이스 접속을 할 수 없음" msgid "reconnection failed: %s" msgstr "재연결 실패: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 #, c-format msgid "query failed: %s" msgstr "쿼리 실패: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "Query was: %s" msgstr "사용한 쿼리: %s" @@ -1178,7 +1311,7 @@ msgstr "PQputCopyEnd에 의해서 오류가 반환되었음: %s" msgid "COPY failed for table \"%s\": %s" msgstr "\"%s\" 테이블을 위한 COPY 실패: %s" -#: pg_backup_db.c:521 pg_dump.c:2202 +#: pg_backup_db.c:521 pg_dump.c:2283 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "\"%s\" 테이블 COPY 작업 중 잘못된 부가 결과가 있음" @@ -1191,149 +1324,144 @@ msgstr "데이터베이스 트랜잭션을 시작할 수 없음" msgid "could not commit database transaction" msgstr "데이터베이스 트랜잭션을 commit 할 수 없음" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "자료가 저장될 디렉터리를 지정하지 않았음" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 닫을 수 없음: %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, c-format msgid "could not write to output file: %s" msgstr "출력 파일을 쓸 수 없음: %s" -#: pg_backup_directory.c:374 +#: pg_backup_directory.c:375 #, c-format msgid "could not close data file: %m" msgstr "자료 파일을 닫을 수 없음: %m" -#: pg_backup_directory.c:407 +#: pg_backup_directory.c:408 #, c-format msgid "could not close data file \"%s\": %m" msgstr "\"%s\" 자료 파일을 닫을 수 없음: %m" -#: pg_backup_directory.c:448 +#: pg_backup_directory.c:455 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "입력용 large object TOC 파일(\"%s\")을 열 수 없음: %m" -#: pg_backup_directory.c:459 +#: pg_backup_directory.c:466 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "large object TOC 파일(\"%s\")을 닫을 수 없음: \"%s\"" -#: pg_backup_directory.c:468 +#: pg_backup_directory.c:475 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "large object TOC 파일(\"%s\")을 닫을 수 없음" -#: pg_backup_directory.c:472 +#: pg_backup_directory.c:479 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "large object TOC 파일(\"%s\")을 닫을 수 없음: %m" -#: pg_backup_directory.c:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "LO 자료 파일을 닫을 수 없음: %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "LO TOC 파일에 쓸 수 없음: %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" msgstr "LO TOC 파일을 닫을 수 없음: %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "파일 이름이 너무 긺: \"%s\"" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "이 파일 형태는 읽을 수 없음" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "출력용 TOC 파일 \"%s\"을(를) 열 수 없음: %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format msgid "could not open TOC file for output: %m" msgstr "출력용 TOC 파일을 열 수 없음: %m" -#: pg_backup_tar.c:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "tar 출력 포멧에서 압축 기능을 지원하지 않음" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "입력용 TOC 파일(\"%s\")을 열 수 없음: %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format msgid "could not open TOC file for input: %m" msgstr "입력용 TOC 파일을 열 수 없음: %m" -#: pg_backup_tar.c:322 +#: pg_backup_tar.c:318 #, c-format msgid "could not find file \"%s\" in archive" msgstr "아카이브에서 \"%s\" 파일을 찾을 수 없음" -#: pg_backup_tar.c:382 +#: pg_backup_tar.c:378 #, c-format msgid "could not generate temporary file name: %m" msgstr "임시 파일 이름을 짓지 못했습니다: %m" -#: pg_backup_tar.c:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "COPY 구문 오류: \"%s\"" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "잘못된 large object OID: %u" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "임시 파일을 열 수 없음: %m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "실재 파일 길이(%lld)와 예상되는 값(%lld)이 다릅니다" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "tar 아카이브에서 \"%s\" 파일을 위한 헤더를 찾을 수 없음" -#: pg_backup_tar.c:1100 +#: pg_backup_tar.c:1115 #, c-format msgid "" "restoring data out of order is not supported in this archive format: \"%s\" " @@ -1342,13 +1470,13 @@ msgstr "" "순서를 넘어서는 자료 덤프 작업은 이 아카이브 포멧에서는 지원하지 않습니다: " "\"%s\" 요구되었지만, 이 아카이브 파일에서는 \"%s\" 전에 옵니다." -#: pg_backup_tar.c:1147 +#: pg_backup_tar.c:1162 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" msgstr[0] "불완전한 tar 헤더가 있음(%lu 바이트)" -#: pg_backup_tar.c:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "" "corrupt tar header found in %s (expected %d, computed %d) file position %llu" @@ -1359,10 +1487,10 @@ msgstr "%s 안에 손상된 tar 헤더 발견 (예상치 %d, 계산된 값 %d), msgid "unrecognized section name: \"%s\"" msgstr "알 수 없는 섹션 이름: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." @@ -1372,39 +1500,39 @@ msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." msgid "out of on_exit_nicely slots" msgstr "on_exit_nicely 슬롯 범위 벗어남" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인자를 지정했음 (시작: \"%s\")" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "-s/--schema-only 옵션과 -a/--data-only 옵션은 함께 사용할 수 없음" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "" "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "" "-s/--schema-only 옵션과 --include-foreign-data 옵션은 함께 사용할 수 없음" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "--include-foreign-data 옵션은 병렬 백업 작업에서 지원하지 않음" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "-c/--clean 옵션과 -a/--data-only 옵션은 함께 사용할 수 없음" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "--if-exists 옵션은 -c/--clean 옵션과 함께 사용해야 함" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "" "option --on-conflict-do-nothing requires option --inserts, --rows-per-" @@ -1413,47 +1541,47 @@ msgstr "" "--on-conflict-do-nothing 옵션은 --inserts, --rows-per-insert 또는 --column-" "inserts 옵션과 함께 사용해야 함" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "알 수 없는 압축 알고리즘: \"%s\"" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "잘못된 압축 명세: %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "\"%s\" 압축 옵션은 pg_dump에서 현재 지원하지 않음" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "병렬 백업은 디렉터리 기반 출력일 때만 사용할 수 있습니다." -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "마지막 내장 OID는 %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "조건에 맞는 스키마가 없습니다" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "조건에 맞는 테이블이 없습니다" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "조건에 맞는 확장 모듈이 없습니다" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1463,17 +1591,17 @@ msgstr "" "다른 형태의 파일로 덤프합니다.\n" "\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:635 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [옵션]... [DB이름]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:638 pg_restore.c:455 #, c-format msgid "" "\n" @@ -1482,12 +1610,12 @@ msgstr "" "\n" "일반 옵션들:\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=파일이름 출력 파일 또는 디렉터리 이름\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1496,22 +1624,22 @@ msgstr "" " -F, --format=c|d|t|p 출력 파일 형식(사용자 지정, 디렉터리, tar,\n" " 일반 텍스트(초기값))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=개수 덤프 작업을 병렬 처리 함\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:640 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose 작업 내역을 자세히 봄\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:641 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1520,26 +1648,31 @@ msgstr "" " -Z, --compress=METHOD[:DETAIL]\n" " 압축 지정\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:642 #, c-format msgid "" " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr "" " --lock-wait-timeout=초 테이블 잠금 시 지정한 초만큼 기다린 후 실패\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:670 #, c-format msgid "" " --no-sync do not wait for changes to be written safely " "to disk\n" msgstr " --no-sync fsync 작업 생략\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD 파일을 디스크에 동기화할 방법 지정\n" + +#: pg_dump.c:1108 pg_dumpall.c:643 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:644 #, c-format msgid "" "\n" @@ -1548,34 +1681,34 @@ msgstr "" "\n" "출력 내용을 다루는 옵션들:\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:645 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only 스키마 빼고 자료만 덤프\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects 큰 객체를 덤프에 포함\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (--large-objects 와 같음, 옛날 옵션)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects 큰 객체 빼고 덤프\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid "" " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr "" " --no-blobs (--no-large-objects와 같음, 옛날 옵션)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid "" " -c, --clean clean (drop) database objects before " @@ -1584,34 +1717,34 @@ msgstr "" " -c, --clean 다시 만들기 전에 데이터베이스 개체 지우기(삭" "제)\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, c-format msgid "" " -C, --create include commands to create database in dump\n" msgstr "" " -C, --create 데이터베이스 만드는 명령구문도 포함시킴\n" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATTERN 지정한 확장 모듈들만 덤프 함\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:647 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=인코딩 지정한 인코딩으로 자료를 덤프 함\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=PATTERN 지정한 SCHEMA들 자료만 덤프\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=PATTERN 지정한 SCHEMA들만 빼고 모두 덤프\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1620,12 +1753,12 @@ msgstr "" " -O, --no-owner 일반 텍스트 형식에서\n" " 개체 소유권 복원 건너뛰기\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:651 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only 자료구조(스키마)만 덤프\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, c-format msgid "" " -S, --superuser=NAME superuser user name to use in plain-text " @@ -1634,28 +1767,28 @@ msgstr "" " -S, --superuser=NAME 일반 텍스트 형식에서 사용할 슈퍼유저 사용자 이" "름\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=PATTERN 지정한 이름의 테이블들만 덤프\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATTERN 지정한 테이블들만 빼고 덤프\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:654 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr "" " -x, --no-privileges 접근 권한 (grant/revoke) 정보는 덤프 안 함\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:655 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade 업그레이드 유틸리티 전용\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:656 #, c-format msgid "" " --column-inserts dump data as INSERT commands with column " @@ -1663,7 +1796,7 @@ msgid "" msgstr "" " --column-inserts 칼럼 이름과 함께 INSERT 명령으로 자료 덤프\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:657 #, c-format msgid "" " --disable-dollar-quoting disable dollar quoting, use SQL standard " @@ -1671,13 +1804,13 @@ msgid "" msgstr "" " --disable-dollar-quoting $ 인용 구문 사용안함, SQL 표준 따옴표 사용\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:658 pg_restore.c:483 #, c-format msgid "" " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers 자료만 복원할 때 트리거 사용을 안함\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid "" " --enable-row-security enable row security (dump only content user " @@ -1687,7 +1820,12 @@ msgstr "" " --enable-row-security 로우 보안 활성화 (현재 작업자가 접근할 수\n" " 있는 자료만 덤프 함)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=PATTERN 지정한 확장 모듈은 덤프하지 않음\n" + +#: pg_dump.c:1136 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1699,13 +1837,13 @@ msgstr "" " 상속 하위, 파티션 하위 테이블을 포함하는\n" " 패턴의 테이블들은 빼고 덤프\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid "" " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=PATTERN 해당 테이블 자료는 덤프 안함\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1716,19 +1854,29 @@ msgstr "" " 상속 하위, 파티션 하위 테이블을 포함하는\n" " 패턴의 테이블들의 자료는 빼고 덤프\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:660 #, c-format msgid "" " --extra-float-digits=NUM override default setting for " "extra_float_digits\n" msgstr " --extra-float-digits=NUM 기본 extra_float_digits 값 바꿈\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid "" +" --filter=FILENAME include or exclude objects and data from " +"dump\n" +" based on expressions in FILENAME\n" +msgstr "" +" --filter=FILENAME 지정한 파일의 규칙대로 포함하거나 제외할\n" +" 객체를 반영하여 덤프\n" + +#: pg_dump.c:1146 pg_dumpall.c:662 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists 객체 삭제 시 IF EXISTS 구문 사용\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1739,60 +1887,60 @@ msgstr "" " 지정한 패턴과 일치하는 외부 서버의 외부\n" " 테이블 자료를 포함\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:663 #, c-format msgid "" " --inserts dump data as INSERT commands, rather than " "COPY\n" msgstr " --inserts COPY 대신 INSERT 명령으로 자료 덤프\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:664 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr "" " --load-via-partition-root 상위 테이블을 통해 하위 테이블을 로드함\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:665 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments 코멘트는 덤프 안함\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:666 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications 발행 정보는 덤프하지 않음\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:668 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels 보안 라벨 할당을 덤프 하지 않음\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:669 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions 구독 정보는 덤프하지 않음\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:671 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method 테이블 접근 방법은 덤프하지 않음\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:672 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces 테이블스페이스 할당을 덤프하지 않음\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:673 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression TOAST 압축 방법은 덤프하지 않음\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:674 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data 언로그드 테이블 자료는 덤프하지 않음\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:675 #, c-format msgid "" " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT " @@ -1801,14 +1949,14 @@ msgstr "" " --on-conflict-do-nothing INSERT 구문에 ON CONFLICT DO NOTHING 옵션 추" "가\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:676 #, c-format msgid "" " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr "" " --quote-all-identifiers 예약어가 아니여도 모든 식별자는 따옴표를 씀\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:677 #, c-format msgid "" " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" @@ -1816,7 +1964,7 @@ msgstr "" " --rows-per-insert=NROWS 한 INSERT 명령으로 입력할 로우 수; --inserts\n" " 옵션을 사용한 것으로 가정 함\n" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid "" " --section=SECTION dump named section (pre-data, data, or post-" @@ -1824,7 +1972,7 @@ msgid "" msgstr "" " --section=SECTION 해당 섹션(pre-data, data, post-data)만 덤프\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid "" " --serializable-deferrable wait until the dump can run without " @@ -1833,12 +1981,12 @@ msgstr "" " --serializable-deferrable 자료 정합성을 보장하기 위해 덤프 작업을\n" " 직렬화 가능한 트랜잭션으로 처리 함\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT 지정한 스냅샷을 덤프 함\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid "" " --strict-names require table and/or schema include patterns " @@ -1849,7 +1997,7 @@ msgstr "" "는\n" " 객체가 적어도 하나 이상 있어야 함\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1858,7 +2006,7 @@ msgstr "" " --table-and-children=PATTERN 해당 패턴의 상속 하위, 파티션 하위 테이블만\n" " 덤프\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:678 pg_restore.c:500 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1871,7 +2019,7 @@ msgstr "" "명령\n" " 대신 사용하여 소유권 설정\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:682 pg_restore.c:504 #, c-format msgid "" "\n" @@ -1880,45 +2028,45 @@ msgstr "" "\n" "연결 옵션들:\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAME 덤프할 데이터베이스\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:684 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME 접속할 데이터베이스 서버 또는 소켓 디렉터리\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:686 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT 데이터베이스 서버의 포트 번호\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:687 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME 연결할 데이터베이스 사용자\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:688 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password 암호 프롬프트 표시 안 함\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:689 pg_restore.c:509 #, c-format msgid "" " -W, --password force password prompt (should happen " "automatically)\n" msgstr " -W, --password 암호 입력 프롬프트 보임(자동으로 처리함)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:690 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLENAME 덤프 전에 SET ROLE 수행\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "" "\n" @@ -1931,423 +2079,430 @@ msgstr "" "사용합니다.\n" "\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:694 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "문제점 보고 주소 <%s>\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:695 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "클라이언트 인코딩 값이 잘못되었습니다: \"%s\"" -#: pg_dump.c:1303 +#: pg_dump.c:1352 #, c-format msgid "" "parallel dumps from standby servers are not supported by this server version" msgstr "대기 서버에서 병렬 덤프는 이 서버 버전에서 지원하지 않음" -#: pg_dump.c:1368 +#: pg_dump.c:1417 #, c-format msgid "invalid output format \"%s\" specified" msgstr "\"%s\" 값은 잘못된 출력 파일 형태입니다." -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1458 pg_dump.c:1514 pg_dump.c:1567 pg_dumpall.c:1467 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "적당하지 않은 qualified 이름 입니다 (너무 많은 점이 있네요): %s" -#: pg_dump.c:1417 +#: pg_dump.c:1466 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "\"%s\" 검색 조건에 만족하는 스키마가 없습니다" -#: pg_dump.c:1470 +#: pg_dump.c:1519 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "\"%s\" 검색 조건에 만족하는 확장 모듈이 없습니다" -#: pg_dump.c:1523 +#: pg_dump.c:1572 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "\"%s\" 검색 조건에 만족하는 외부 서버가 없습니다" -#: pg_dump.c:1594 +#: pg_dump.c:1643 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "" "적당하지 않은 릴레이션(relation) 이름 입니다 (너무 많은 점이 있네요): %s" -#: pg_dump.c:1616 +#: pg_dump.c:1665 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "\"%s\" 검색 조건에 만족하는 테이블이 없습니다" -#: pg_dump.c:1643 +#: pg_dump.c:1692 #, c-format msgid "You are currently not connected to a database." msgstr "현재 데이터베이스에 연결되어있지 않습니다." -#: pg_dump.c:1646 +#: pg_dump.c:1695 #, c-format msgid "cross-database references are not implemented: %s" msgstr "서로 다른 데이터베이스간의 참조는 구현되어있지 않습니다: %s" -#: pg_dump.c:2077 +#: pg_dump.c:2154 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "\"%s.%s\" 테이블의 내용 덤프 중" -#: pg_dump.c:2183 +#: pg_dump.c:2264 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "\"%s\" 테이블 내용을 덤프하면서 오류 발생: PQgetCopyData() 실패." -#: pg_dump.c:2184 pg_dump.c:2194 +#: pg_dump.c:2265 pg_dump.c:2275 #, c-format msgid "Error message from server: %s" msgstr "서버에서 보낸 오류 메시지: %s" -#: pg_dump.c:2185 pg_dump.c:2195 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Command was: %s" msgstr "사용된 명령: %s" -#: pg_dump.c:2193 +#: pg_dump.c:2274 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "\"%s\" 테이블 내용을 덤프하면서 오류 발생: PQgetResult() 실패." -#: pg_dump.c:2275 +#: pg_dump.c:2365 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "\"%s\" 테이블에서 잘못된 필드 수" -#: pg_dump.c:2973 +#: pg_dump.c:3067 #, c-format msgid "saving database definition" msgstr "데이터베이스 구성정보를 저장 중" -#: pg_dump.c:3078 +#: pg_dump.c:3176 #, c-format msgid "unrecognized locale provider: %s" msgstr "알 수 없는 로케일 제공자 이름: %s" -#: pg_dump.c:3429 +#: pg_dump.c:3537 #, c-format msgid "saving encoding = %s" msgstr "인코딩 = %s 저장 중" -#: pg_dump.c:3454 +#: pg_dump.c:3562 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "standard_conforming_strings = %s 저장 중" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "\"standard_conforming_strings = %s\" 저장 중" -#: pg_dump.c:3493 +#: pg_dump.c:3601 #, c-format msgid "could not parse result of current_schemas()" msgstr "current_schemas() 결과를 분석할 수 없음" -#: pg_dump.c:3512 +#: pg_dump.c:3620 #, c-format -msgid "saving search_path = %s" -msgstr "search_path = %s 저장 중" +msgid "saving \"search_path = %s\"" +msgstr "\"search_path = %s\" 저장 중" -#: pg_dump.c:3549 +#: pg_dump.c:3656 #, c-format msgid "reading large objects" msgstr "large object 읽는 중" -#: pg_dump.c:3687 +#: pg_dump.c:3877 #, c-format -msgid "saving large objects" -msgstr "large object들을 저장 중" +msgid "saving large objects \"%s\"" +msgstr "\"%s\" large object들을 저장 중" -#: pg_dump.c:3728 +#: pg_dump.c:3898 #, c-format msgid "error reading large object %u: %s" msgstr "%u large object 읽는 중 오류: %s" -#: pg_dump.c:3834 +#: pg_dump.c:4001 #, c-format msgid "reading row-level security policies" msgstr "로우 단위 보안 정책 읽는 중" -#: pg_dump.c:3975 +#: pg_dump.c:4142 #, c-format msgid "unexpected policy command type: %c" msgstr "예상치 못한 정책 명령 형태: %c" -#: pg_dump.c:4425 pg_dump.c:4760 pg_dump.c:11984 pg_dump.c:17894 -#: pg_dump.c:17896 pg_dump.c:18517 +#: pg_dump.c:4592 pg_dump.c:5150 pg_dump.c:12364 pg_dump.c:18249 +#: pg_dump.c:18251 pg_dump.c:18873 #, c-format msgid "could not parse %s array" msgstr "%s 배열을 분석할 수 없음" -#: pg_dump.c:4613 +#: pg_dump.c:4806 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "" "현재 사용자가 슈퍼유저가 아니기 때문에 서브스크립션들은 덤프하지 못했음" -#: pg_dump.c:5149 +#: pg_dump.c:5012 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "%u OID 구독이 없음" + +#: pg_dump.c:5019 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "안전 검사 실패, OID %u인 테이블 없음" + +#: pg_dump.c:5582 #, c-format msgid "could not find parent extension for %s %s" msgstr "%s %s 객체와 관련된 상위 확장 기능을 찾을 수 없음" -#: pg_dump.c:5294 +#: pg_dump.c:5727 #, c-format msgid "schema with OID %u does not exist" msgstr "OID %u 스키마 없음" -#: pg_dump.c:6776 pg_dump.c:17158 +#: pg_dump.c:7209 pg_dump.c:17620 #, c-format msgid "" "failed sanity check, parent table with OID %u of sequence with OID %u not " "found" msgstr "의존성 검사 실패, 부모 테이블 OID %u 없음. 해당 시퀀스 개체 OID %u" -#: pg_dump.c:6919 +#: pg_dump.c:7354 #, c-format msgid "" "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "완전성 검사 실패, OID %u인 객체가 pg_partitioned_table에 없음" -#: pg_dump.c:7150 pg_dump.c:7417 pg_dump.c:7888 pg_dump.c:8552 pg_dump.c:8671 -#: pg_dump.c:8819 +#: pg_dump.c:7585 pg_dump.c:7859 pg_dump.c:8306 pg_dump.c:8920 pg_dump.c:9042 +#: pg_dump.c:9190 #, c-format msgid "unrecognized table OID %u" msgstr "알 수 없는 테이블 OID %u" -#: pg_dump.c:7154 +#: pg_dump.c:7589 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "\"%s\" 테이블의 인덱스 자료를 알 수 없음" -#: pg_dump.c:7649 +#: pg_dump.c:8091 #, c-format msgid "" "failed sanity check, parent table with OID %u of pg_rewrite entry with OID " "%u not found" msgstr "의존성 검사 실패, 부모 테이블 OID %u 없음. 해당 pg_rewrite 개체 OID %u" -#: pg_dump.c:7940 -#, c-format -msgid "" -"query produced null referenced table name for foreign key trigger \"%s\" on " -"table \"%s\" (OID of table: %u)" -msgstr "" -"쿼리가 참조테이블 정보가 없는 \"%s\" 참조키 트리거를 \"%s\" (해당 OID: %u) 테" -"이블에서 만들었습니다." - -#: pg_dump.c:8556 +#: pg_dump.c:8924 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "\"%s\" 테이블의 알 수 없는 칼럼 자료" -#: pg_dump.c:8585 +#: pg_dump.c:8953 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "\"%s\" 테이블에 매겨져 있는 열 번호가 잘못되었습니다" -#: pg_dump.c:8633 +#: pg_dump.c:9004 #, c-format msgid "finding table default expressions" msgstr "default 표현식 찾는 중" -#: pg_dump.c:8675 +#: pg_dump.c:9046 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "적당하지 않는 adnum 값: %d, 해당 테이블 \"%s\"" -#: pg_dump.c:8769 +#: pg_dump.c:9140 #, c-format msgid "finding table check constraints" msgstr "테이블 체크 제약조건 찾는 중" -#: pg_dump.c:8823 +#: pg_dump.c:9194 #, 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개의 제약 조건이 \"%s\" 테이블에 있을 것으로 예상했으나 %d개를 찾음" -#: pg_dump.c:8827 +#: pg_dump.c:9198 #, c-format msgid "The system catalogs might be corrupted." msgstr "시스템 카탈로그가 손상되었는 것 같습니다." -#: pg_dump.c:9517 +#: pg_dump.c:9888 #, c-format msgid "role with OID %u does not exist" msgstr "%u OID 롤이 없음" -#: pg_dump.c:9629 pg_dump.c:9658 +#: pg_dump.c:10000 pg_dump.c:10029 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "지원하지 않는 pg_init_privs 항목: %u %u %d" -#: pg_dump.c:10479 +#: pg_dump.c:10576 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "\"%s\"large object의 메타정보가 없음" + +#: pg_dump.c:10859 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "\"%s\" 자료형의 typtype가 잘못 되어 있음" -#: pg_dump.c:12053 +#: pg_dump.c:12433 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "\"%s\" 함수의 provolatile 값이 잘못 되었습니다" -#: pg_dump.c:12103 pg_dump.c:13985 +#: pg_dump.c:12483 pg_dump.c:14379 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "\"%s\" 함수의 proparallel 값이 잘못 되었습니다" -#: pg_dump.c:12233 pg_dump.c:12339 pg_dump.c:12346 +#: pg_dump.c:12613 pg_dump.c:12719 pg_dump.c:12726 #, c-format msgid "could not find function definition for function with OID %u" msgstr "%u OID 함수에 대한 함수 정의를 찾을 수 없음" -#: pg_dump.c:12272 +#: pg_dump.c:12652 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "pg_cast.castfunc 또는 pg_cast.castmethod 필드에 잘못된 값이 있음" -#: pg_dump.c:12275 +#: pg_dump.c:12655 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "pg_cast.castmethod 필드에 잘못된 값이 있음" -#: pg_dump.c:12365 +#: pg_dump.c:12745 #, c-format msgid "" "bogus transform definition, at least one of trffromsql and trftosql should " "be nonzero" msgstr "잘못된 전송 정의, trffromsql 또는 trftosql 중 하나는 비어 있으면 안됨" -#: pg_dump.c:12382 +#: pg_dump.c:12762 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "pg_transform.trffromsql 필드에 잘못된 값이 있음" -#: pg_dump.c:12403 +#: pg_dump.c:12783 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "pg_transform.trftosql 필드에 잘못된 값이 있음" -#: pg_dump.c:12548 +#: pg_dump.c:12928 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "postfix 연산자는 더이상 지원하지 않습니다.(\"%s\" 연산자)" -#: pg_dump.c:12718 +#: pg_dump.c:13098 #, c-format msgid "could not find operator with OID %s" msgstr "%s OID의 연산자를 찾을 수 없음" -#: pg_dump.c:12786 +#: pg_dump.c:13166 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "\"%c\" 잘못된 자료형, 해당 접근 방법: \"%s\"" -#: pg_dump.c:13455 pg_dump.c:13514 +#: pg_dump.c:13840 pg_dump.c:13908 #, c-format msgid "unrecognized collation provider: %s" msgstr "알 수 없는 정렬규칙 제공자 이름: %s" -#: pg_dump.c:13464 pg_dump.c:13473 pg_dump.c:13483 pg_dump.c:13498 +#: pg_dump.c:13849 pg_dump.c:13856 pg_dump.c:13867 pg_dump.c:13877 +#: pg_dump.c:13892 #, c-format msgid "invalid collation \"%s\"" msgstr "잘못된 문자정렬규칙 \"%s\"" -#: pg_dump.c:13904 +#: pg_dump.c:14298 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "\"%s\" 집계 함수용 aggfinalmodify 값이 이상함" -#: pg_dump.c:13960 +#: pg_dump.c:14354 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "\"%s\" 집계 함수용 aggmfinalmodify 값이 이상함" -#: pg_dump.c:14677 +#: pg_dump.c:15071 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "기본 접근 권한에서 알 수 없는 객체형이 있음: %d" -#: pg_dump.c:14693 +#: pg_dump.c:15087 #, c-format msgid "could not parse default ACL list (%s)" msgstr "기본 ACL 목록 (%s)을 분석할 수 없음" -#: pg_dump.c:14775 +#: pg_dump.c:15171 #, c-format msgid "" "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "" "초기 ACL 목록 (%s) 또는 default (%s) 분석할 수 없음, 해당 객체: \"%s\" (%s)" -#: pg_dump.c:14800 +#: pg_dump.c:15196 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "ACL 목록 (%s) 또는 default (%s) 분석할 수 없음, 해당 객체: \"%s\" (%s)" -#: pg_dump.c:15341 +#: pg_dump.c:15739 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "\"%s\" 뷰 정의 정보가 없습니다." -#: pg_dump.c:15344 +#: pg_dump.c:15742 #, c-format msgid "" "query to obtain definition of view \"%s\" returned more than one definition" msgstr "\"%s\" 뷰 정의 정보가 하나 이상 있습니다." -#: pg_dump.c:15351 +#: pg_dump.c:15749 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "\"%s\" 뷰의 정의 내용이 비어있습니다." -#: pg_dump.c:15435 +#: pg_dump.c:15834 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS 옵션은 더이상 지원하지 않음 (\"%s\" 테이블)" -#: pg_dump.c:16359 +#: pg_dump.c:16821 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "잘못된 열 번호 %d, 해당 테이블 \"%s\"" -#: pg_dump.c:16437 +#: pg_dump.c:16899 #, c-format msgid "could not parse index statistic columns" msgstr "인덱스 통계정보 칼럼 분석 실패" -#: pg_dump.c:16439 +#: pg_dump.c:16901 #, c-format msgid "could not parse index statistic values" msgstr "인덱스 통계정보 값 분석 실패" -#: pg_dump.c:16441 +#: pg_dump.c:16903 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "인덱스 통계정보용 칼럼수와 값수가 일치하지 않음" -#: pg_dump.c:16657 +#: pg_dump.c:17118 #, c-format msgid "missing index for constraint \"%s\"" msgstr "\"%s\" 제약 조건을 위한 인덱스가 빠졌습니다" -#: pg_dump.c:16892 +#: pg_dump.c:17353 #, c-format msgid "unrecognized constraint type: %c" msgstr "알 수 없는 제약 조건 종류: %c" -#: pg_dump.c:16993 pg_dump.c:17222 +#: pg_dump.c:17454 pg_dump.c:17684 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "" @@ -2355,22 +2510,12 @@ msgid_plural "" msgstr[0] "" "\"%s\" 시퀀스의 데이터를 가져오기 위한 쿼리에서 %d개의 행 반환(1개 필요)" -#: pg_dump.c:17025 +#: pg_dump.c:17486 #, c-format msgid "unrecognized sequence type: %s" msgstr "알 수 없는 시퀀스 형태: %s" -#: pg_dump.c:17314 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "기대되지 않은 tgtype 값: %d" - -#: pg_dump.c:17386 -#, c-format -msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" -msgstr "잘못된 인수 문자열 (%s), 해당 트리거 \"%s\", 사용되는 테이블 \"%s\"" - -#: pg_dump.c:17655 +#: pg_dump.c:18001 #, c-format msgid "" "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows " @@ -2378,53 +2523,59 @@ msgid "" msgstr "" "\"%s\" 규칙(\"%s\" 테이블)을 가져오기 위한 쿼리 실패: 잘못된 행 수 반환" -#: pg_dump.c:17808 +#: pg_dump.c:18154 #, c-format msgid "could not find referenced extension %u" msgstr "%u 확장기능과 관련된 상위 확장 기능을 찾을 수 없음" -#: pg_dump.c:17898 +#: pg_dump.c:18253 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "확장 모듈용 환경설정 매개변수 수와 조건 수가 일치 하지 않음" -#: pg_dump.c:18030 +#: pg_dump.c:18385 #, c-format msgid "reading dependency data" msgstr "의존 관계 자료 읽는 중" -#: pg_dump.c:18116 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "%u %u 개체의 하위 관련 개체가 없음" -#: pg_dump.c:18127 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "%u %u 개체의 상위 관련 개체가 없음" -#: pg_dump_sort.c:422 +#: pg_dump.c:18907 pg_dump.c:18945 pg_dumpall.c:1962 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "%s 필터(대상 \"%s\")는 허용하지 않음" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "잘못된 dumpId %d" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "잘못된 의존성 %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "의존 관계를 식별 할 수 없음" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, 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] "다음 데이블 간 참조키가 서로 교차하고 있음:" -#: pg_dump_sort.c:1281 +#: pg_dump_sort.c:1214 #, c-format msgid "" "You might not be able to restore the dump without using --disable-triggers " @@ -2433,7 +2584,7 @@ msgstr "" "--disable-triggers 옵션으로 복원할 수 있습니다. 또는 임시로 제약 조건을 삭제" "하고 복원하세요." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1215 #, c-format msgid "" "Consider using a full dump instead of a --data-only dump to avoid this " @@ -2441,12 +2592,12 @@ msgid "" msgstr "" "이 문제를 피하려면, --data-only 덤프 대신에 모든 덤프를 사용하길 권합니다." -#: pg_dump_sort.c:1294 +#: pg_dump_sort.c:1227 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "다음 항목 간 의존 관계를 분석할 수 없음:" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " @@ -2455,46 +2606,46 @@ msgstr "" "\"%s\" 프로그램이 %s 작업에서 필요로 하지만, \"%s\" 디렉터리 안에 함께 있지 " "않습니다" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "\"%s\" 프로그램을 \"%s\" 작업 때문에 찾았지만, %s 버전과 같지 않습니다." -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "" -"option --exclude-database cannot be used together with -g/--globals-only, -" -"r/--roles-only, or -t/--tablespaces-only" +"option --exclude-database cannot be used together with -g/--globals-only, " +"-r/--roles-only, or -t/--tablespaces-only" msgstr "" "--exclude-database 옵션은 -g/--globals-only, -r/--roles-only, 또는 -t/--" "tablespaces-only 옵션과 함께 쓸 수 없음" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "-g/--globals-only 옵션과 -r/--roles-only 옵션은 함께 사용할 수 없음" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "" "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "" "-g/--globals-only 옵션과 -t/--tablespaces-only 옵션은 함께 사용할 수 없음" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "" "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "" "-r/--roles-only 옵션과 -t/--tablespaces-only 옵션은 함께 사용할 수 없음" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:474 pg_dumpall.c:1771 #, c-format msgid "could not connect to database \"%s\"" msgstr "\"%s\" 데이터베이스에 접속할 수 없음" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2503,7 +2654,7 @@ msgstr "" "\"postgres\" 또는 \"template1\" 데이터베이스에 연결할 수 없습니다.\n" "다른 데이터베이스를 지정하십시오." -#: pg_dumpall.c:629 +#: pg_dumpall.c:634 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2513,35 +2664,35 @@ msgstr "" "추출하는 프로그램입니다.\n" "\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:636 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [옵션]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:639 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=파일이름 출력 파일 이름\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:646 #, c-format msgid "" " -c, --clean clean (drop) databases before recreating\n" msgstr "" " -c, --clean 다시 만들기 전에 데이터베이스 지우기(삭제)\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:648 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr "" " -g, --globals-only 데이터베이스는 제외하고 글로벌 개체만 덤프\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:649 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner 개체 소유권 복원 건너뛰기\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:650 #, c-format msgid "" " -r, --roles-only dump only roles, no databases or tablespaces\n" @@ -2549,12 +2700,12 @@ msgstr "" " -r, --roles-only 데이터베이스나 테이블스페이스는 제외하고 역할" "만 덤프\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:652 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAME 덤프에 사용할 슈퍼유저 사용자 이름\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:653 #, c-format msgid "" " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" @@ -2562,7 +2713,7 @@ msgstr "" " -t, --tablespaces-only 데이터베이스나 역할은 제외하고 테이블스페이스" "만 덤프\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:659 #, c-format msgid "" " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" @@ -2571,20 +2722,27 @@ msgstr "" #: pg_dumpall.c:661 #, c-format +msgid "" +" --filter=FILENAME exclude databases based on expressions in " +"FILENAME\n" +msgstr " --filter=FILENAME 필터 조건이 정의 파일을 사용하여 덤프\n" + +#: pg_dumpall.c:667 +#, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords 롤용 비밀번호를 덤프하지 않음\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:683 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=접속문자열 서버 접속 문자열\n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:685 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAME 대체용 기본 데이터베이스\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:692 #, c-format msgid "" "\n" @@ -2598,99 +2756,111 @@ msgstr "" "출력에 쓰여집니다.\n" "\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:837 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "롤 이름이 \"pg_\"로 시작함, 무시함: (%s)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1059 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "\"%s\" 롤은 덤프할 수 있는 롤을 포함하고 있지 않습니다" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1194 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "ACL 목록 (%s)을 분석할 수 없음, 해당 매개변수 \"%s\"" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1321 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "테이블스페이스 용 ACL 목록 (%s)을 분석할 수 없음, 해당개체 \"%s\"" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1528 #, c-format msgid "excluding database \"%s\"" msgstr "\"%s\" 데이터베이스를 제외하는 중" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1532 #, c-format msgid "dumping database \"%s\"" msgstr "\"%s\" 데이터베이스 덤프 중" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1563 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "\"%s\" 데이터베이스에서 pg_dump 작업 중에 오류가 발생, 끝냅니다." -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1569 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "\"%s\" 출력 파일을 다시 열 수 없음: %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1613 #, c-format msgid "running \"%s\"" msgstr "\"%s\" 가동중" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1814 #, c-format msgid "could not get server version" msgstr "서버 버전을 알 수 없음" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1817 #, c-format msgid "could not parse server version \"%s\"" msgstr "\"%s\" 서버 버전을 분석할 수 없음" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1887 pg_dumpall.c:1910 #, c-format msgid "executing %s" msgstr "실행중: %s" -#: pg_restore.c:313 +#: pg_dumpall.c:1982 +msgid "unsupported filter object" +msgstr "지원하지 않는 필터 객체" + +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "-d/--dbname 옵션 또는 -f/--file 옵션 중 하나를 지정해야 함" -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "-d/--dbname 옵션과 -f/--file 옵션은 함께 사용할 수 없음" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "" +"options -1/--single-transaction and --transaction-size cannot be used " +"together" +msgstr "" +"-1/--single-transaction 옵션과 --transaction-size 옵션은 함께 사용할 수 없음" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "-C/--clean 옵션과 -1/--single-transaction 옵션은 함께 사용할 수 없음" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "--single-transaction 및 병렬 작업을 함께 지정할 수는 없음" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "" "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "" "알 수 없는 아카이브 형식: \"%s\"; 사용할 수 있는 값: \"c\", \"d\", \"t\"" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "복원작업에서의 오류들이 무시되었음: %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2700,47 +2870,47 @@ msgstr "" "그 자료를 일괄 입력합니다.\n" "\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [옵션]... [파일]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAME 접속할 데이터베이스 이름\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILENAME 출력 파일 이름 (표준 출력: -)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t 백업 파일 형식 (지정하지 않으면 자동분석)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list 자료의 요약된 목차를 보여줌\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose 자세한 정보 보여줌\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "" "\n" @@ -2749,33 +2919,33 @@ msgstr "" "\n" "리스토어 처리를 위한 옵션들:\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only 스키마는 빼고 자료만 입력함\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create 작업 대상 데이터베이스를 만듦\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr "" " -e, --exit-on-error 오류가 생기면 끝냄, 기본은 계속 진행함\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME 지정한 인덱스 만듦\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM 여러 병렬 작업을 사용하여 복원\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2784,27 +2954,27 @@ msgstr "" " -L, --use-list=FILENAME 출력을 선택하고 해당 순서를 지정하기 위해\n" " 이 파일의 목차 사용\n" -#: pg_restore.c:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME 해당 스키마의 개체들만 복원함\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAME 해당 스키마의 개체들은 복원 안함\n" -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAME(args) 지정한 함수 만듦\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only 자료구조(스키마)만 만듦\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, c-format msgid "" " -S, --superuser=NAME superuser user name to use for disabling " @@ -2813,40 +2983,48 @@ msgstr "" " -S, --superuser=NAME 트리거를 사용하지 않기 위해 사용할 슈퍼유저\n" " 사용자 이름\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid "" " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAME 복원할 객체 이름 (테이블, 뷰, 기타)\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME 지정한 트리거 만듦\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid "" " -x, --no-privileges skip restoration of access privileges (grant/" "revoke)\n" msgstr " -x, --no-privileges 접근 권한(grant/revoke) 지정 안함\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction 하나의 트랜잭션 작업으로 복원함\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security 로우 보안 활성화\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid "" +" --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr "" +" --filter=FILENAME 지정한 파일의 필터 조건으로 객체를 복원함\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments 코멘트는 복원하지 않음\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not " @@ -2856,32 +3034,32 @@ msgstr "" " --no-data-for-failed-tables 만들 수 없는 테이블에 대해서는 자료를 덤프하" "지 않음\n" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications 발행 정보는 복원 안함\n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels 보안 라벨을 복원하지 않음\n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions 구독 정보는 복원 안함\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method 테이블 접근 방법 복원 안함\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces 테이블스페이스 할당을 복원하지 않음\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, c-format msgid "" " --section=SECTION restore named section (pre-data, data, or " @@ -2890,12 +3068,17 @@ msgstr "" " --section=SECTION 지정한 섹션만 복원함\n" " 섹션 종류: pre-data, data, post-data\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr " --transaction-size=N N 개의 객체 다음에는 항상 commit\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME 복원 전에 SET ROLE 수행\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "" "\n" @@ -2908,7 +3091,7 @@ msgstr "" "기\n" "위해서 여러번 사용할 수 있습니다.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "" "\n" @@ -2919,6 +3102,22 @@ msgstr "" "사용할 입력 파일을 지정하지 않았다면, 표준 입력(stdin)을 사용합니다.\n" "\n" +#, c-format +#~ msgid "" +#~ "query produced null referenced table name for foreign key trigger \"%s\" " +#~ "on table \"%s\" (OID of table: %u)" +#~ msgstr "" +#~ "쿼리가 참조테이블 정보가 없는 \"%s\" 참조키 트리거를 \"%s\" (해당 OID: " +#~ "%u) 테이블에서 만들었습니다." + +#, c-format +#~ msgid "unexpected tgtype value: %d" +#~ msgstr "기대되지 않은 tgtype 값: %d" + +#, c-format +#~ msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" +#~ msgstr "잘못된 인수 문자열 (%s), 해당 트리거 \"%s\", 사용되는 테이블 \"%s\"" + #, c-format #~ msgid " %s" #~ msgstr " %s" diff --git a/src/bin/pg_dump/po/ru.po b/src/bin/pg_dump/po/ru.po index a0a5496656cd8..f0297f30d1455 100644 --- a/src/bin/pg_dump/po/ru.po +++ b/src/bin/pg_dump/po/ru.po @@ -5,13 +5,13 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2012. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2023-08-30 14:18+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-07 07:35+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -97,32 +97,47 @@ msgstr "для алгоритма сжатия \"%s\" нельзя задать msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "алгоритм сжатия \"%s\" не поддерживает режим большой дистанции" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "нехватка памяти" @@ -137,6 +152,49 @@ msgstr "нехватка памяти\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -165,7 +223,7 @@ msgstr "дочерний процесс завершён по сигналу %d: #: ../../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "дочерний процесс завершился с нераспознанным состоянием %d" +msgstr "дочерний процесс завершился с нераспознанным кодом состояния %d" #: ../../fe_utils/option_utils.c:69 #, c-format @@ -177,229 +235,252 @@ msgstr "неверное значение \"%s\" для параметра %s" msgid "%s must be in range %d..%d" msgstr "значение %s должно быть в диапазоне %d..%d" -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "чтение расширений" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "выявление членов расширений" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "чтение схем" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "чтение пользовательских таблиц" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "чтение пользовательских функций" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "чтение пользовательских типов" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "чтение процедурных языков" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "чтение пользовательских агрегатных функций" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "чтение пользовательских операторов" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "чтение пользовательских методов доступа" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "чтение пользовательских классов операторов" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "чтение пользовательских семейств операторов" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "чтение пользовательских анализаторов текстового поиска" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "чтение пользовательских шаблонов текстового поиска" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "чтение пользовательских словарей текстового поиска" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "чтение пользовательских конфигураций текстового поиска" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "чтение пользовательских оболочек сторонних данных" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "чтение пользовательских сторонних серверов" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "чтение прав по умолчанию" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "чтение пользовательских правил сортировки" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "чтение пользовательских преобразований" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "чтение приведений типов" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "чтение преобразований" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "чтение информации о наследовании таблиц" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "чтение событийных триггеров" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "поиск таблиц расширений" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "поиск связей наследования" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "чтение информации о столбцах интересующих таблиц" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "пометка наследованных столбцов в подтаблицах" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "чтение информации о секционировании" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "чтение индексов" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "пометка индексов в секционированных таблицах" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "чтение расширенной статистики" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "чтение ограничений" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "чтение триггеров" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "чтение правил перезаписи" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "чтение политик" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "чтение публикаций" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "чтение информации о таблицах, включённых в публикации" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "чтение информации о схемах, включённых в публикации" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "чтение подписок" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "чтение информации о таблицах, включённых в подписки" + +#: common.c:333 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "" "нарушение целостности: родительская таблица с OID %u для таблицы \"%s\" (OID " "%u) не найдена" -#: common.c:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "неверное число родителей (%d) для таблицы \"%s\"" -#: common.c:1049 +#: common.c:1098 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "не удалось разобрать числовой массив \"%s\": слишком много чисел" -#: common.c:1061 +#: common.c:1110 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "не удалось разобрать числовой массив \"%s\": неверный символ в числе" @@ -429,15 +510,20 @@ msgstr "не удалось распаковать данные: %s" msgid "could not close compression library: %s" msgstr "не удалось закрыть библиотеку сжатия: %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "не удалось прочитать входной файл: %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:374 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "не удалось прочитать входной файл: %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:372 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" msgstr "не удалось прочитать входной файл: конец файла" @@ -477,27 +563,74 @@ msgstr "не удалось завершить распаковку: %s" msgid "could not set compression parameter \"%s\": %s" msgstr "не удалось задать параметр сжатия \"%s\": %s" -#: compress_zstd.c:78 compress_zstd.c:231 compress_zstd.c:490 -#: compress_zstd.c:498 +#: compress_zstd.c:78 compress_zstd.c:232 compress_zstd.c:491 +#: compress_zstd.c:499 #, c-format msgid "could not initialize compression library" msgstr "не удалось инициализировать библиотеку сжатия" -#: compress_zstd.c:194 compress_zstd.c:308 +#: compress_zstd.c:195 compress_zstd.c:309 #, c-format msgid "could not decompress data: %s" msgstr "не удалось распаковать данные: %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "не удалось прочитать входной файл: %m" - -#: compress_zstd.c:501 +#: compress_zstd.c:502 #, c-format msgid "unhandled mode \"%s\"" msgstr "необрабатываемый режим \"%s\"" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "не удалось открыть файл фильтра \"%s\": %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "не удалось закрыть файл фильтра \"%s\": %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "" +"неверный формат в фильтре, прочитанном из стандартного ввода, в строке %d: %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "" +"неверный формат в фильтре, прочитанном из файла \"%s\", в строке %d: %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "не удалось прочитать файл фильтра \"%s\": %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "неожиданный конец файла" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "отсутствует шаблон имени объекта" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "отсутствует команда фильтра (ожидалась \"include\" или \"exclude\")" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "неверная команда фильтра (ожидалась \"include\" или \"exclude\")" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "отсутствует тип объекта фильтра" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "неподдерживаемый тип объекта фильтра: \"%.*s\"" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -581,112 +714,112 @@ msgstr "pgpipe: не удалось подключить сокет (код ош msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: не удалось принять соединение (код ошибки: %d)" -#: pg_backup_archiver.c:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "не удалось закрыть выходной файл: %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, c-format msgid "archive items not in correct section order" msgstr "в последовательности элементов архива нарушен порядок разделов" -#: pg_backup_archiver.c:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "неожиданный код раздела %d" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "" "параллельное восстановление не поддерживается с выбранным форматом архивного " "файла" -#: pg_backup_archiver.c:371 +#: pg_backup_archiver.c:356 #, 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:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "восстановить данные из сжатого архива нельзя (%s)" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "подключение к базе данных для восстановления" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "" "прямые подключения к базе данных не поддерживаются в архивах до версии 1.3" -#: pg_backup_archiver.c:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "подразумевается восстановление только данных" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "удаляется %s %s" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "не удалось определить, куда добавить IF EXISTS в оператор \"%s\"" -#: pg_backup_archiver.c:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "предупреждение из исходного файла: %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "создаётся %s \"%s.%s\"" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "создаётся %s \"%s\"" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "подключение к новой базе данных \"%s\"" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "обрабатывается %s" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "обрабатываются данные таблицы \"%s.%s\"" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "выполняется %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "отключаются триггеры таблицы %s" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "включаются триггеры таблицы %s" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, c-format msgid "" "internal error -- WriteData cannot be called outside the context of a " @@ -695,12 +828,12 @@ msgstr "" "внутренняя ошибка -- WriteData нельзя вызывать вне контекста процедуры " "DataDumper" -#: pg_backup_archiver.c:1287 +#: pg_backup_archiver.c:1379 #, c-format msgid "large-object output not supported in chosen format" msgstr "выбранный формат не поддерживает выгрузку больших объектов" -#: pg_backup_archiver.c:1345 +#: pg_backup_archiver.c:1442 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" @@ -708,55 +841,55 @@ msgstr[0] "восстановлен %d большой объект" msgstr[1] "восстановлено %d больших объекта" msgstr[2] "восстановлено %d больших объектов" -#: pg_backup_archiver.c:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "восстановление большого объекта с OID %u" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, c-format msgid "could not create large object %u: %s" msgstr "не удалось создать большой объект %u: %s" -#: pg_backup_archiver.c:1383 pg_dump.c:3740 +#: pg_backup_archiver.c:1486 pg_dump.c:3888 #, c-format msgid "could not open large object %u: %s" msgstr "не удалось открыть большой объект %u: %s" -#: pg_backup_archiver.c:1439 +#: pg_backup_archiver.c:1542 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "не удалось открыть файл оглавления \"%s\": %m" -#: pg_backup_archiver.c:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "строка проигнорирована: %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, c-format msgid "could not find entry for ID %d" msgstr "не найдена запись для ID %d" -#: pg_backup_archiver.c:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "не удалось закрыть файл оглавления: %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, c-format msgid "could not open output file \"%s\": %m" msgstr "не удалось открыть выходной файл \"%s\": %m" -#: pg_backup_archiver.c:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "не удалось открыть выходной файл: %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" @@ -764,216 +897,221 @@ msgstr[0] "записан %zu байт данных большого объек msgstr[1] "записано %zu байта данных большого объекта (результат = %d)" msgstr[2] "записано %zu байт данных большого объекта (результат = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "не удалось записать данные в большой объект: %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "при инициализации:" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "при обработке оглавления:" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "при завершении:" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "из записи оглавления %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "неверный dumpId" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "неверный dumpId таблицы в элементе TABLE DATA" -#: pg_backup_archiver.c:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "неожиданный флаг смещения данных: %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, c-format msgid "file offset in dump file is too large" msgstr "слишком большое смещение в файле выгрузки" -#: pg_backup_archiver.c:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "слишком длинное имя каталога: \"%s\"" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, 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:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "не удалось открыть входной файл \"%s\": %m" -#: pg_backup_archiver.c:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, c-format msgid "could not open input file: %m" msgstr "не удалось открыть входной файл: %m" -#: pg_backup_archiver.c:2164 +#: pg_backup_archiver.c:2267 #, c-format msgid "could not read input file: %m" msgstr "не удалось прочитать входной файл: %m" -#: pg_backup_archiver.c:2166 +#: pg_backup_archiver.c:2269 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "входной файл слишком короткий (прочитано байт: %lu, ожидалось: 5)" -#: pg_backup_archiver.c:2198 +#: pg_backup_archiver.c:2301 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "" "входной файл, видимо, имеет текстовый формат. Загрузите его с помощью psql." -#: pg_backup_archiver.c:2204 +#: pg_backup_archiver.c:2307 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "входной файл не похож на архив (возможно, слишком мал?)" -#: pg_backup_archiver.c:2210 +#: pg_backup_archiver.c:2313 #, c-format msgid "input file does not appear to be a valid archive" msgstr "входной файл не похож на архив" -#: pg_backup_archiver.c:2219 +#: pg_backup_archiver.c:2322 #, c-format msgid "could not close input file: %m" msgstr "не удалось закрыть входной файл: %m" -#: pg_backup_archiver.c:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "не удалось открыть stdout для добавления вывода: %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "неопознанный формат файла: \"%d\"" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4466 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4647 #, c-format msgid "finished item %d %s %s" msgstr "закончен объект %d %s %s" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4479 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4660 #, c-format msgid "worker process failed: exit code %d" msgstr "рабочий процесс завершился с кодом возврата %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "ID записи %d вне диапазона - возможно повреждено оглавление" -#: pg_backup_archiver.c:2628 +#: pg_backup_archiver.c:2736 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "восстановление таблиц со свойством WITH OIDS больше не поддерживается" -#: pg_backup_archiver.c:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "нераспознанная кодировка \"%s\"" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2823 #, c-format msgid "invalid ENCODING item: %s" msgstr "неверный элемент ENCODING: %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2841 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "неверный элемент STDSTRINGS: %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2866 #, c-format msgid "schema \"%s\" not found" msgstr "схема \"%s\" не найдена" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2873 #, c-format msgid "table \"%s\" not found" msgstr "таблица \"%s\" не найдена" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2880 #, c-format msgid "index \"%s\" not found" msgstr "индекс \"%s\" не найден" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2887 #, c-format msgid "function \"%s\" not found" msgstr "функция \"%s\" не найдена" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2894 #, c-format msgid "trigger \"%s\" not found" msgstr "триггер \"%s\" не найден" -#: pg_backup_archiver.c:3201 +#: pg_backup_archiver.c:3325 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "не удалось переключить пользователя сеанса на \"%s\": %s" -#: pg_backup_archiver.c:3333 +#: pg_backup_archiver.c:3457 +#, c-format +msgid "could not set \"search_path\" to \"%s\": %s" +msgstr "не удалось присвоить \"search_path\" значение \"%s\": %s" + +#: pg_backup_archiver.c:3518 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "не удалось присвоить search_path значение \"%s\": %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "не удалось задать для \"default_tablespace\" значение %s: %s" -#: pg_backup_archiver.c:3394 +#: pg_backup_archiver.c:3567 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "не удалось задать для default_tablespace значение %s: %s" +msgid "could not set \"default_table_access_method\": %s" +msgstr "не удалось задать \"default_table_access_method\": %s" -#: pg_backup_archiver.c:3443 +#: pg_backup_archiver.c:3616 #, c-format -msgid "could not set default_table_access_method: %s" -msgstr "не удалось задать default_table_access_method: %s" +msgid "could not alter table access method: %s" +msgstr "не удалось изменить табличный метод доступа: %s" -#: pg_backup_archiver.c:3548 +#: pg_backup_archiver.c:3717 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "неизвестно, как назначить владельца для объекта типа \"%s\"" -#: pg_backup_archiver.c:3770 +#: pg_backup_archiver.c:4004 #, c-format msgid "did not find magic string in file header" msgstr "в заголовке файла не найдена нужная сигнатура" -#: pg_backup_archiver.c:3784 +#: pg_backup_archiver.c:4018 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "неподдерживаемая версия (%d.%d) в заголовке файла" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:4023 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "несоответствие размера integer (%lu)" -#: pg_backup_archiver.c:3793 +#: pg_backup_archiver.c:4027 #, c-format msgid "" "archive was made on a machine with larger integers, some operations might " @@ -982,12 +1120,12 @@ msgstr "" "архив был сделан на компьютере большей разрядности -- возможен сбой " "некоторых операций" -#: pg_backup_archiver.c:3803 +#: pg_backup_archiver.c:4037 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "ожидаемый формат (%d) отличается от формата, указанного в файле (%d)" -#: pg_backup_archiver.c:3825 +#: pg_backup_archiver.c:4059 #, c-format msgid "" "archive is compressed, but this installation does not support compression " @@ -996,68 +1134,68 @@ msgstr "" "архив сжат, но установленная версия не поддерживает сжатие (%s) -- данные " "будут недоступны" -#: pg_backup_archiver.c:3861 +#: pg_backup_archiver.c:4095 #, c-format msgid "invalid creation date in header" msgstr "неверная дата создания в заголовке" -#: pg_backup_archiver.c:3995 +#: pg_backup_archiver.c:4229 #, c-format msgid "processing item %d %s %s" msgstr "обработка объекта %d %s %s" -#: pg_backup_archiver.c:4070 +#: pg_backup_archiver.c:4314 #, c-format msgid "entering main parallel loop" msgstr "вход в основной параллельный цикл" -#: pg_backup_archiver.c:4081 +#: pg_backup_archiver.c:4325 #, c-format msgid "skipping item %d %s %s" msgstr "объект %d %s %s пропускается" -#: pg_backup_archiver.c:4090 +#: pg_backup_archiver.c:4334 #, c-format msgid "launching item %d %s %s" msgstr "объект %d %s %s запускается" -#: pg_backup_archiver.c:4144 +#: pg_backup_archiver.c:4388 #, c-format msgid "finished main parallel loop" msgstr "основной параллельный цикл закончен" -#: pg_backup_archiver.c:4180 +#: pg_backup_archiver.c:4424 #, c-format msgid "processing missed item %d %s %s" msgstr "обработка пропущенного объекта %d %s %s" -#: pg_backup_archiver.c:4785 +#: pg_backup_archiver.c:4966 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "создать таблицу \"%s\" не удалось, её данные не будут восстановлены" -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "неверный OID большого объекта" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "ошибка при перемещении в файле: %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "в блоке данных %d задана неверная позиция" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "нераспознанный тип блока данных (%d) при поиске архива" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "" "could not find block ID %d in archive -- possibly due to out-of-order " @@ -1067,54 +1205,54 @@ msgstr "" "последовательного запроса восстановления, который нельзя обработать с " "файлом, не допускающим произвольный доступ" -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "не удалось найти в архиве блок с ID %d -- возможно, архив испорчен" -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "при чтении данных получен неожиданный ID блока (%d) -- ожидался: %d" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "нераспознанный тип блока данных %d при восстановлении архива" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "не удалось определить позицию в файле архива: %m" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "не удалось закрыть файл архива: %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "повторно открыть можно только входные файлы" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "параллельное восстановление из стандартного ввода не поддерживается" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "" "параллельное восстановление возможно только с файлом произвольного доступа" -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "не удалось задать текущую позицию в файле архива: %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "сжатие активно" @@ -1124,12 +1262,12 @@ msgstr "сжатие активно" msgid "could not get server_version from libpq" msgstr "не удалось получить версию сервера из libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1812 +#: pg_backup_db.c:53 pg_dumpall.c:1830 #, c-format msgid "aborting because of server version mismatch" msgstr "продолжение работы с другой версией сервера невозможно" -#: pg_backup_db.c:54 pg_dumpall.c:1813 +#: pg_backup_db.c:54 pg_dumpall.c:1831 #, c-format msgid "server version: %s; %s version: %s" msgstr "версия сервера: %s; версия %s: %s" @@ -1139,7 +1277,7 @@ msgstr "версия сервера: %s; версия %s: %s" msgid "already connected to a database" msgstr "подключение к базе данных уже установлено" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1659 pg_dumpall.c:1761 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 msgid "Password: " msgstr "Пароль: " @@ -1153,18 +1291,18 @@ msgstr "не удалось переподключиться к базе" msgid "reconnection failed: %s" msgstr "переподключиться не удалось: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1686 pg_dumpall.c:1770 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1875 pg_dumpall.c:1898 +#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 #, c-format msgid "query failed: %s" msgstr "ошибка при выполнении запроса: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1876 pg_dumpall.c:1899 +#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "Query was: %s" msgstr "Выполнялся запрос: %s" @@ -1202,7 +1340,7 @@ msgstr "ошибка в PQputCopyEnd: %s" msgid "COPY failed for table \"%s\": %s" msgstr "сбой команды COPY для таблицы \"%s\": %s" -#: pg_backup_db.c:521 pg_dump.c:2224 +#: pg_backup_db.c:521 pg_dump.c:2283 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "неожиданные лишние результаты получены при COPY для таблицы \"%s\"" @@ -1215,150 +1353,145 @@ msgstr "не удаётся начать транзакцию" msgid "could not commit database transaction" msgstr "не удалось зафиксировать транзакцию" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "выходной каталог не указан" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не удалось прочитать каталог \"%s\": %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не удалось создать каталог \"%s\": %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, c-format msgid "could not write to output file: %s" msgstr "не удалось записать в выходной файл: %s" -#: pg_backup_directory.c:374 +#: pg_backup_directory.c:375 #, c-format msgid "could not close data file: %m" msgstr "не удалось закрыть файл данных: %m" -#: pg_backup_directory.c:407 +#: pg_backup_directory.c:408 #, c-format msgid "could not close data file \"%s\": %m" msgstr "не удалось закрыть файл данных \"%s\": %m" -#: pg_backup_directory.c:448 +#: pg_backup_directory.c:455 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "" "не удалось открыть для чтения файл оглавления больших объектов \"%s\": %m" -#: pg_backup_directory.c:459 +#: pg_backup_directory.c:466 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "неверная строка в файле оглавления больших объектов \"%s\": \"%s\"" -#: pg_backup_directory.c:468 +#: pg_backup_directory.c:475 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "ошибка чтения файла оглавления больших объектов \"%s\"" -#: pg_backup_directory.c:472 +#: pg_backup_directory.c:479 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "не удалось закрыть файл оглавления больших объектов \"%s\": %m" -#: pg_backup_directory.c:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "не удалось закрыть файл данных LO: %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "не удалось записать в файл оглавления LO: %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" msgstr "не удалось закрыть файл оглавления LO: %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "слишком длинное имя файла: \"%s\"" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "этот формат нельзя прочитать" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "не удалось открыть для записи файл оглавления \"%s\": %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format msgid "could not open TOC file for output: %m" msgstr "не удалось открыть для записи файл оглавления: %m" -#: pg_backup_tar.c:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "формат архива tar не поддерживает сжатие" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "не удалось открыть для чтения файл оглавления \"%s\": %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format msgid "could not open TOC file for input: %m" msgstr "не удалось открыть для чтения файл оглавления: %m" -#: pg_backup_tar.c:322 +#: pg_backup_tar.c:318 #, c-format msgid "could not find file \"%s\" in archive" msgstr "не удалось найти файл \"%s\" в архиве" -#: pg_backup_tar.c:382 +#: pg_backup_tar.c:378 #, c-format msgid "could not generate temporary file name: %m" msgstr "не удалось получить имя для временного файла: %m" -#: pg_backup_tar.c:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "недопустимый синтаксис оператора COPY: \"%s\"" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "неверный OID для большого объекта (%u)" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "не удалось закрыть временный файл: %m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "действительная длина файла (%lld) не равна ожидаемой (%lld)" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "в архиве tar не найден заголовок для файла \"%s\"" -#: pg_backup_tar.c:1100 +#: pg_backup_tar.c:1115 #, c-format msgid "" "restoring data out of order is not supported in this archive format: \"%s\" " @@ -1368,7 +1501,7 @@ msgstr "" "поддерживается: требуется компонент \"%s\", но в файле архива прежде идёт " "\"%s\"." -#: pg_backup_tar.c:1147 +#: pg_backup_tar.c:1162 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" @@ -1376,7 +1509,7 @@ msgstr[0] "найден неполный заголовок tar (размер %l msgstr[1] "найден неполный заголовок tar (размер %lu байта)" msgstr[2] "найден неполный заголовок tar (размер %lu байт)" -#: pg_backup_tar.c:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "" "corrupt tar header found in %s (expected %d, computed %d) file position %llu" @@ -1389,10 +1522,10 @@ msgstr "" msgid "unrecognized section name: \"%s\"" msgstr "нераспознанное имя раздела: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." @@ -1402,41 +1535,41 @@ msgstr "Для дополнительной информации попробу msgid "out of on_exit_nicely slots" msgstr "превышен предел обработчиков штатного выхода" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "параметры -s/--schema-only и -a/--data-only исключают друг друга" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "" "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "" "параметры -s/--schema-only и --include-foreign-data исключают друг друга" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "" "параметр --include-foreign-data не поддерживается при копировании в " "параллельном режиме" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "параметры -c/--clean и -a/--data-only исключают друг друга" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "параметр --if-exists требует указания -c/--clean" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "" "option --on-conflict-do-nothing requires option --inserts, --rows-per-" @@ -1445,49 +1578,49 @@ msgstr "" "параметр --on-conflict-do-nothing требует указания --inserts, --rows-per-" "insert или --column-inserts" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "нераспознанный алгоритм сжатия: \"%s\"" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "неправильное указание сжатия: %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "pg_dump в настоящее время не поддерживает параметр сжатия \"%s\"" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "" "параллельное резервное копирование поддерживается только с форматом " "\"каталог\"" -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "последний системный OID: %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "соответствующие схемы не найдены" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "соответствующие таблицы не найдены" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "соответствующие расширения не найдены" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1496,17 +1629,17 @@ msgstr "" "%s сохраняет резервную копию БД в текстовом файле или другом виде.\n" "\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:635 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [ПАРАМЕТР]... [ИМЯ_БД]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:638 pg_restore.c:455 #, c-format msgid "" "\n" @@ -1515,12 +1648,12 @@ msgstr "" "\n" "Общие параметры:\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=ИМЯ имя выходного файла или каталога\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1530,7 +1663,7 @@ msgstr "" " (пользовательский | каталог | tar |\n" " текстовый (по умолчанию))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr "" @@ -1538,18 +1671,18 @@ msgstr "" "число\n" " заданий\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:640 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose режим подробных сообщений\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:641 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" # well-spelled: ИНФО -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1558,7 +1691,7 @@ msgstr "" " -Z, --compress=МЕТОД[:ДОП_ИНФО]\n" " выполнять сжатие как указано\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:642 #, c-format msgid "" " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" @@ -1566,7 +1699,7 @@ msgstr "" " --lock-wait-timeout=ТАЙМ-АУТ прервать операцию при тайм-ауте блокировки " "таблицы\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:670 #, c-format msgid "" " --no-sync do not wait for changes to be written safely " @@ -1575,12 +1708,17 @@ msgstr "" " --no-sync не ждать надёжного сохранения изменений на " "диске\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" + +#: pg_dump.c:1108 pg_dumpall.c:643 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:644 #, c-format msgid "" "\n" @@ -1589,35 +1727,35 @@ msgstr "" "\n" "Параметры, управляющие выводом:\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:645 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only выгрузить только данные, без схемы\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects выгрузить большие объекты\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr "" " --blobs (устаревшая альтернатива --large-objects)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects исключить из выгрузки большие объекты\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid "" " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr "" " --no-blobs (устаревшая альтернатива --no-large-objects)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid "" " -c, --clean clean (drop) database objects before " @@ -1626,7 +1764,7 @@ msgstr "" " -c, --clean очистить (удалить) объекты БД при " "восстановлении\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, c-format msgid "" " -C, --create include commands to create database in dump\n" @@ -1634,28 +1772,28 @@ msgstr "" " -C, --create добавить в копию команды создания базы " "данных\n" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr "" " -e, --extension=ШАБЛОН выгрузить только указанное расширение(я)\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:647 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=КОДИРОВКА выгружать данные в заданной кодировке\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=ШАБЛОН выгрузить только указанную схему(ы)\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=ШАБЛОН НЕ выгружать указанную схему(ы)\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1664,12 +1802,12 @@ msgstr "" " -O, --no-owner не восстанавливать владение объектами\n" " при использовании текстового формата\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:651 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only выгрузить только схему, без данных\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, c-format msgid "" " -S, --superuser=NAME superuser user name to use in plain-text " @@ -1678,27 +1816,27 @@ msgstr "" " -S, --superuser=ИМЯ имя пользователя, который будет задействован\n" " при восстановлении из текстового формата\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=ШАБЛОН выгрузить только указанную таблицу(ы)\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=ШАБЛОН НЕ выгружать указанную таблицу(ы)\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:654 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges не выгружать права (назначение/отзыв)\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:655 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade только для утилит обновления БД\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:656 #, c-format msgid "" " --column-inserts dump data as INSERT commands with column " @@ -1707,7 +1845,7 @@ msgstr "" " --column-inserts выгружать данные в виде INSERT с именами " "столбцов\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:657 #, c-format msgid "" " --disable-dollar-quoting disable dollar quoting, use SQL standard " @@ -1716,7 +1854,7 @@ msgstr "" " --disable-dollar-quoting отключить спецстроки с $, выводить строки\n" " по стандарту SQL\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:658 pg_restore.c:483 #, c-format msgid "" " --disable-triggers disable triggers during data-only restore\n" @@ -1724,7 +1862,7 @@ msgstr "" " --disable-triggers отключить триггеры при восстановлении\n" " только данных, без схемы\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid "" " --enable-row-security enable row security (dump only content user " @@ -1735,7 +1873,12 @@ msgstr "" "только\n" " те данные, которые доступны пользователю)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=ШАБЛОН НЕ выгружать указанное расширение(я)\n" + +#: pg_dump.c:1136 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1747,7 +1890,7 @@ msgstr "" " НЕ выгружать указанную таблицу(ы), а также\n" " её секции и дочерние таблицы\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid "" " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" @@ -1755,7 +1898,7 @@ msgstr "" " --exclude-table-data=ШАБЛОН НЕ выгружать данные указанной таблицы " "(таблиц)\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1767,7 +1910,7 @@ msgstr "" "(таблиц),\n" " а также её секций и дочерних таблиц\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:660 #, c-format msgid "" " --extra-float-digits=NUM override default setting for " @@ -1775,13 +1918,24 @@ msgid "" msgstr "" " --extra-float-digits=ЧИСЛО переопределить значение extra_float_digits\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid "" +" --filter=FILENAME include or exclude objects and data from " +"dump\n" +" based on expressions in FILENAME\n" +msgstr "" +" --filter=ИМЯ_ФАЙЛА включать или исключать объекты и данные из\n" +" дампа в соответствии с выражениями в этом " +"файле\n" + +#: pg_dump.c:1146 pg_dumpall.c:662 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr "" " --if-exists применять IF EXISTS при удалении объектов\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1792,7 +1946,7 @@ msgstr "" " включать в копию данные сторонних таблиц с\n" " серверов с именами, подпадающими под ШАБЛОН\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:663 #, c-format msgid "" " --inserts dump data as INSERT commands, rather than " @@ -1801,57 +1955,57 @@ msgstr "" " --inserts выгрузить данные в виде команд INSERT, не " "COPY\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:664 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr "" " --load-via-partition-root загружать секции через главную таблицу\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:665 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments не выгружать комментарии\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:666 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications не выгружать публикации\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:668 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr "" " --no-security-labels не выгружать назначения меток безопасности\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:669 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions не выгружать подписки\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:671 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method не выгружать табличные методы доступа\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:672 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr "" " --no-tablespaces не выгружать назначения табличных " "пространств\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:673 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression не выгружать методы сжатия TOAST\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:674 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr "" " --no-unlogged-table-data не выгружать данные нежурналируемых таблиц\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:675 #, c-format msgid "" " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT " @@ -1860,7 +2014,7 @@ msgstr "" " --on-conflict-do-nothing добавлять ON CONFLICT DO NOTHING в команды " "INSERT\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:676 #, c-format msgid "" " --quote-all-identifiers quote all identifiers, even if not key words\n" @@ -1868,7 +2022,7 @@ msgstr "" " --quote-all-identifiers заключать в кавычки все идентификаторы,\n" " а не только ключевые слова\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:677 #, c-format msgid "" " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" @@ -1876,7 +2030,7 @@ msgstr "" " --rows-per-insert=ЧИСЛО число строк в одном INSERT; подразумевает --" "inserts\n" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid "" " --section=SECTION dump named section (pre-data, data, or post-" @@ -1885,7 +2039,7 @@ msgstr "" " --section=РАЗДЕЛ выгрузить заданный раздел\n" " (pre-data, data или post-data)\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid "" " --serializable-deferrable wait until the dump can run without " @@ -1894,13 +2048,13 @@ msgstr "" " --serializable-deferrable дождаться момента для выгрузки данных без " "аномалий\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr "" " --snapshot=СНИМОК использовать при выгрузке заданный снимок\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid "" " --strict-names require table and/or schema include patterns " @@ -1913,7 +2067,7 @@ msgstr "" "минимум\n" " один объект\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1923,7 +2077,7 @@ msgstr "" "также\n" " её секции и дочерние таблицы\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:678 pg_restore.c:500 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1935,7 +2089,7 @@ msgstr "" " устанавливать владельца, используя команды\n" " SET SESSION AUTHORIZATION вместо ALTER OWNER\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:682 pg_restore.c:504 #, c-format msgid "" "\n" @@ -1944,33 +2098,34 @@ msgstr "" "\n" "Параметры подключения:\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=БД имя базы данных для выгрузки\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:684 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:686 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=ПОРТ номер порта сервера БД\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:687 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=ИМЯ имя пользователя баз данных\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:688 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:689 pg_restore.c:509 #, c-format msgid "" " -W, --password force password prompt (should happen " @@ -1978,12 +2133,12 @@ msgid "" msgstr "" " -W, --password запрашивать пароль всегда (обычно не требуется)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:690 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ИМЯ_РОЛИ выполнить SET ROLE перед выгрузкой\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "" "\n" @@ -1996,22 +2151,22 @@ msgstr "" "PGDATABASE.\n" "\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:694 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:695 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "указана неверная клиентская кодировка \"%s\"" -#: pg_dump.c:1303 +#: pg_dump.c:1352 #, c-format msgid "" "parallel dumps from standby servers are not supported by this server version" @@ -2019,160 +2174,170 @@ msgstr "" "выгрузка дампа в параллельном режиме с ведомых серверов не поддерживается " "данной версией сервера" -#: pg_dump.c:1368 +#: pg_dump.c:1417 #, c-format msgid "invalid output format \"%s\" specified" msgstr "указан неверный формат вывода: \"%s\"" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1452 +#: pg_dump.c:1458 pg_dump.c:1514 pg_dump.c:1567 pg_dumpall.c:1467 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" -#: pg_dump.c:1417 +#: pg_dump.c:1466 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "схемы, соответствующие шаблону \"%s\", не найдены" -#: pg_dump.c:1470 +#: pg_dump.c:1519 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "расширения, соответствующие шаблону \"%s\", не найдены" -#: pg_dump.c:1523 +#: pg_dump.c:1572 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "сторонние серверы, соответствующие шаблону \"%s\", не найдены" -#: pg_dump.c:1594 +#: pg_dump.c:1643 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неверное имя отношения (слишком много компонентов): %s" -#: pg_dump.c:1616 +#: pg_dump.c:1665 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "таблицы, соответствующие шаблону \"%s\", не найдены" -#: pg_dump.c:1643 +#: pg_dump.c:1692 #, c-format msgid "You are currently not connected to a database." msgstr "В данный момент вы не подключены к базе данных." -#: pg_dump.c:1646 +#: pg_dump.c:1695 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ссылки между базами не реализованы: %s" -#: pg_dump.c:2099 +#: pg_dump.c:2154 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "выгрузка содержимого таблицы \"%s.%s\"" -#: pg_dump.c:2205 +#: pg_dump.c:2264 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Ошибка выгрузки таблицы \"%s\": сбой в PQgetCopyData()." -#: pg_dump.c:2206 pg_dump.c:2216 +#: pg_dump.c:2265 pg_dump.c:2275 #, c-format msgid "Error message from server: %s" msgstr "Сообщение об ошибке с сервера: %s" # skip-rule: language-mix -#: pg_dump.c:2207 pg_dump.c:2217 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Command was: %s" msgstr "Выполнялась команда: %s" -#: pg_dump.c:2215 +#: pg_dump.c:2274 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Ошибка выгрузки таблицы \"%s\": сбой в PQgetResult()." -#: pg_dump.c:2297 +#: pg_dump.c:2365 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "из таблицы \"%s\" получено неверное количество полей" -#: pg_dump.c:2995 +#: pg_dump.c:3067 #, c-format msgid "saving database definition" msgstr "сохранение определения базы данных" -#: pg_dump.c:3100 +#: pg_dump.c:3176 #, c-format msgid "unrecognized locale provider: %s" msgstr "нераспознанный провайдер локали: %s" -#: pg_dump.c:3451 +#: pg_dump.c:3537 #, c-format msgid "saving encoding = %s" msgstr "сохранение кодировки (%s)" -#: pg_dump.c:3476 +#: pg_dump.c:3562 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "сохранение standard_conforming_strings (%s)" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "сохранение \"standard_conforming_strings = %s\"" -#: pg_dump.c:3515 +#: pg_dump.c:3601 #, c-format msgid "could not parse result of current_schemas()" msgstr "не удалось разобрать результат current_schemas()" -#: pg_dump.c:3534 +#: pg_dump.c:3620 #, c-format -msgid "saving search_path = %s" -msgstr "сохранение search_path = %s" +msgid "saving \"search_path = %s\"" +msgstr "сохранение \"search_path = %s\"" -#: pg_dump.c:3571 +#: pg_dump.c:3656 #, c-format msgid "reading large objects" msgstr "чтение больших объектов" -#: pg_dump.c:3709 +#: pg_dump.c:3877 #, c-format -msgid "saving large objects" -msgstr "сохранение больших объектов" +msgid "saving large objects \"%s\"" +msgstr "сохранение больших объектов \"%s\"" -#: pg_dump.c:3750 +#: pg_dump.c:3898 #, c-format msgid "error reading large object %u: %s" msgstr "ошибка чтения большого объекта %u: %s" -#: pg_dump.c:3856 +#: pg_dump.c:4001 #, c-format msgid "reading row-level security policies" msgstr "чтение политик защиты на уровне строк" -#: pg_dump.c:3997 +#: pg_dump.c:4142 #, c-format msgid "unexpected policy command type: %c" msgstr "нераспознанный тип команды в политике: %c" -#: pg_dump.c:4447 pg_dump.c:4791 pg_dump.c:12022 pg_dump.c:17932 -#: pg_dump.c:17934 pg_dump.c:18555 +#: pg_dump.c:4592 pg_dump.c:5150 pg_dump.c:12364 pg_dump.c:18249 +#: pg_dump.c:18251 pg_dump.c:18873 #, c-format msgid "could not parse %s array" msgstr "не удалось разобрать массив %s" -#: pg_dump.c:4636 +#: pg_dump.c:4806 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "" "подписки не выгружены, так как текущий пользователь не суперпользователь" -#: pg_dump.c:5183 +#: pg_dump.c:5012 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "подписка с OID %u не существует" + +#: pg_dump.c:5019 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "нарушение целостности: таблица с OID %u не найдена" + +#: pg_dump.c:5582 #, c-format msgid "could not find parent extension for %s %s" msgstr "не удалось найти родительское расширение для %s %s" -#: pg_dump.c:5328 +#: pg_dump.c:5727 #, c-format msgid "schema with OID %u does not exist" msgstr "схема с OID %u не существует" -#: pg_dump.c:6810 pg_dump.c:17196 +#: pg_dump.c:7209 pg_dump.c:17620 #, c-format msgid "" "failed sanity check, parent table with OID %u of sequence with OID %u not " @@ -2181,7 +2346,7 @@ msgstr "" "нарушение целостности: по OID %u не удалось найти родительскую таблицу " "последовательности с OID %u" -#: pg_dump.c:6953 +#: pg_dump.c:7354 #, c-format msgid "" "failed sanity check, table OID %u appearing in pg_partitioned_table not found" @@ -2189,18 +2354,18 @@ msgstr "" "нарушение целостности: таблица с OID %u, фигурирующим в " "pg_partitioned_table, не найдена" -#: pg_dump.c:7184 pg_dump.c:7455 pg_dump.c:7926 pg_dump.c:8590 pg_dump.c:8709 -#: pg_dump.c:8857 +#: pg_dump.c:7585 pg_dump.c:7859 pg_dump.c:8306 pg_dump.c:8920 pg_dump.c:9042 +#: pg_dump.c:9190 #, c-format msgid "unrecognized table OID %u" msgstr "нераспознанный OID таблицы %u" -#: pg_dump.c:7188 +#: pg_dump.c:7589 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "неожиданно получены данные индекса для таблицы \"%s\"" -#: pg_dump.c:7687 +#: pg_dump.c:8091 #, c-format msgid "" "failed sanity check, parent table with OID %u of pg_rewrite entry with OID " @@ -2209,41 +2374,32 @@ msgstr "" "нарушение целостности: по OID %u не удалось найти родительскую таблицу для " "записи pg_rewrite с OID %u" -#: pg_dump.c:7978 -#, 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)" - -#: pg_dump.c:8594 +#: pg_dump.c:8924 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "неожиданно получены данные столбцов для таблицы \"%s\"" -#: pg_dump.c:8623 +#: pg_dump.c:8953 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "неверная нумерация столбцов в таблице \"%s\"" -#: pg_dump.c:8671 +#: pg_dump.c:9004 #, c-format msgid "finding table default expressions" msgstr "поиск выражений по умолчанию для таблиц" -#: pg_dump.c:8713 +#: pg_dump.c:9046 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "неверное значение adnum (%d) в таблице \"%s\"" -#: pg_dump.c:8807 +#: pg_dump.c:9140 #, c-format msgid "finding table check constraints" msgstr "поиск ограничений-проверок для таблиц" -#: pg_dump.c:8861 +#: pg_dump.c:9194 #, 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" @@ -2254,54 +2410,59 @@ msgstr[1] "" msgstr[2] "" "ожидалось %d ограничений-проверок для таблицы \"%s\", но найдено: %d" -#: pg_dump.c:8865 +#: pg_dump.c:9198 #, c-format msgid "The system catalogs might be corrupted." msgstr "Возможно, повреждены системные каталоги." -#: pg_dump.c:9555 +#: pg_dump.c:9888 #, c-format msgid "role with OID %u does not exist" msgstr "роль с OID %u не существует" -#: pg_dump.c:9667 pg_dump.c:9696 +#: pg_dump.c:10000 pg_dump.c:10029 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "неподдерживаемая запись в pg_init_privs: %u %u %d" -#: pg_dump.c:10517 +#: pg_dump.c:10576 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "отсутствуют метаданные о больших объектах \"%s\"" + +#: pg_dump.c:10859 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "у типа данных \"%s\" по-видимому неправильный тип типа" # TO REVEIW -#: pg_dump.c:12091 +#: pg_dump.c:12433 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "недопустимое значение provolatile для функции \"%s\"" # TO REVEIW -#: pg_dump.c:12141 pg_dump.c:14023 +#: pg_dump.c:12483 pg_dump.c:14379 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "недопустимое значение proparallel для функции \"%s\"" -#: pg_dump.c:12271 pg_dump.c:12377 pg_dump.c:12384 +#: pg_dump.c:12613 pg_dump.c:12719 pg_dump.c:12726 #, c-format msgid "could not find function definition for function with OID %u" msgstr "не удалось найти определение функции для функции с OID %u" -#: pg_dump.c:12310 +#: pg_dump.c:12652 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castfunc или pg_cast.castmethod" -#: pg_dump.c:12313 +#: pg_dump.c:12655 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castmethod" -#: pg_dump.c:12403 +#: pg_dump.c:12745 #, c-format msgid "" "bogus transform definition, at least one of trffromsql and trftosql should " @@ -2310,62 +2471,63 @@ msgstr "" "неприемлемое определение преобразования (trffromsql или trftosql должно быть " "ненулевым)" -#: pg_dump.c:12420 +#: pg_dump.c:12762 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "неприемлемое значение в поле pg_transform.trffromsql" -#: pg_dump.c:12441 +#: pg_dump.c:12783 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "неприемлемое значение в поле pg_transform.trftosql" -#: pg_dump.c:12586 +#: pg_dump.c:12928 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "постфиксные операторы больше не поддерживаются (оператор \"%s\")" -#: pg_dump.c:12756 +#: pg_dump.c:13098 #, c-format msgid "could not find operator with OID %s" msgstr "оператор с OID %s не найден" -#: pg_dump.c:12824 +#: pg_dump.c:13166 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "неверный тип \"%c\" метода доступа \"%s\"" -#: pg_dump.c:13493 pg_dump.c:13552 +#: pg_dump.c:13840 pg_dump.c:13908 #, c-format msgid "unrecognized collation provider: %s" msgstr "нераспознанный провайдер правил сортировки: %s" -#: pg_dump.c:13502 pg_dump.c:13511 pg_dump.c:13521 pg_dump.c:13536 +#: pg_dump.c:13849 pg_dump.c:13856 pg_dump.c:13867 pg_dump.c:13877 +#: pg_dump.c:13892 #, c-format msgid "invalid collation \"%s\"" msgstr "неверное правило сортировки \"%s\"" -#: pg_dump.c:13942 +#: pg_dump.c:14298 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "нераспознанное значение aggfinalmodify для агрегата \"%s\"" -#: pg_dump.c:13998 +#: pg_dump.c:14354 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "нераспознанное значение aggmfinalmodify для агрегата \"%s\"" -#: pg_dump.c:14715 +#: pg_dump.c:15071 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "нераспознанный тип объекта в определении прав по умолчанию: %d" -#: pg_dump.c:14731 +#: pg_dump.c:15087 #, c-format msgid "could not parse default ACL list (%s)" msgstr "не удалось разобрать список прав по умолчанию (%s)" -#: pg_dump.c:14813 +#: pg_dump.c:15171 #, c-format msgid "" "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" @@ -2373,20 +2535,20 @@ msgstr "" "не удалось разобрать изначальный список ACL (%s) или ACL по умолчанию (%s) " "для объекта \"%s\" (%s)" -#: pg_dump.c:14838 +#: pg_dump.c:15196 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "" "не удалось разобрать список ACL (%s) или ACL по умолчанию (%s) для объекта " "\"%s\" (%s)" -#: pg_dump.c:15379 +#: pg_dump.c:15739 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "" "запрос на получение определения представления \"%s\" не возвратил данные" -#: pg_dump.c:15382 +#: pg_dump.c:15742 #, c-format msgid "" "query to obtain definition of view \"%s\" returned more than one definition" @@ -2394,49 +2556,49 @@ msgstr "" "запрос на получение определения представления \"%s\" возвратил несколько " "определений" -#: pg_dump.c:15389 +#: pg_dump.c:15749 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "определение представления \"%s\" пустое (длина равна нулю)" -#: pg_dump.c:15473 +#: pg_dump.c:15834 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "свойство WITH OIDS больше не поддерживается (таблица \"%s\")" -#: pg_dump.c:16397 +#: pg_dump.c:16821 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "неверный номер столбца %d для таблицы \"%s\"" -#: pg_dump.c:16475 +#: pg_dump.c:16899 #, c-format msgid "could not parse index statistic columns" msgstr "не удалось разобрать столбцы статистики в индексе" -#: pg_dump.c:16477 +#: pg_dump.c:16901 #, c-format msgid "could not parse index statistic values" msgstr "не удалось разобрать значения статистики в индексе" -#: pg_dump.c:16479 +#: pg_dump.c:16903 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "" "столбцы, задающие статистику индекса, не соответствуют значениям по " "количеству" -#: pg_dump.c:16695 +#: pg_dump.c:17118 #, c-format msgid "missing index for constraint \"%s\"" msgstr "отсутствует индекс для ограничения \"%s\"" -#: pg_dump.c:16930 +#: pg_dump.c:17353 #, c-format msgid "unrecognized constraint type: %c" msgstr "нераспознанный тип ограничения: %c" -#: pg_dump.c:17031 pg_dump.c:17260 +#: pg_dump.c:17454 pg_dump.c:17684 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "" @@ -2451,22 +2613,12 @@ msgstr[2] "" "запрос на получение данных последовательности \"%s\" вернул %d строк " "(ожидалась 1)" -#: pg_dump.c:17063 +#: pg_dump.c:17486 #, c-format msgid "unrecognized sequence type: %s" msgstr "нераспознанный тип последовательности: %s" -#: pg_dump.c:17352 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "неожиданное значение tgtype: %d" - -#: pg_dump.c:17424 -#, c-format -msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" -msgstr "неверная строка аргументов (%s) для триггера \"%s\" таблицы \"%s\"" - -#: pg_dump.c:17693 +#: pg_dump.c:18001 #, c-format msgid "" "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows " @@ -2475,47 +2627,53 @@ msgstr "" "запрос на получение правила \"%s\" для таблицы \"%s\" возвратил неверное " "число строк" -#: pg_dump.c:17846 +#: pg_dump.c:18154 #, c-format msgid "could not find referenced extension %u" msgstr "не удалось найти упомянутое расширение %u" -#: pg_dump.c:17936 +#: pg_dump.c:18253 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "конфигурации расширения не соответствуют условиям по количеству" -#: pg_dump.c:18068 +#: pg_dump.c:18385 #, c-format msgid "reading dependency data" msgstr "чтение информации о зависимостях" -#: pg_dump.c:18154 +#: pg_dump.c:18471 #, c-format msgid "no referencing object %u %u" msgstr "нет подчинённого объекта %u %u" -#: pg_dump.c:18165 +#: pg_dump.c:18482 #, c-format msgid "no referenced object %u %u" msgstr "нет вышестоящего объекта %u %u" -#: pg_dump_sort.c:422 +#: pg_dump.c:18907 pg_dump.c:18945 pg_dumpall.c:1962 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "фильтр %s для \"%s\" не допускается" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "неверный dumpId %d" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "неверная зависимость %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "не удалось определить цикл зависимостей" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" @@ -2523,7 +2681,7 @@ msgstr[0] "в следующей таблице зациклены ограни msgstr[1] "в следующих таблицах зациклены ограничения внешних ключей:" msgstr[2] "в следующих таблицах зациклены ограничения внешних ключей:" -#: pg_dump_sort.c:1281 +#: pg_dump_sort.c:1214 #, c-format msgid "" "You might not be able to restore the dump without using --disable-triggers " @@ -2532,7 +2690,7 @@ msgstr "" "Возможно, для восстановления базы потребуется использовать --disable-" "triggers или временно удалить ограничения." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1215 #, c-format msgid "" "Consider using a full dump instead of a --data-only dump to avoid this " @@ -2541,26 +2699,26 @@ msgstr "" "Во избежание этой проблемы, вероятно, стоит выгружать всю базу данных, а не " "только данные (--data-only)." -#: pg_dump_sort.c:1294 +#: pg_dump_sort.c:1227 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "не удалось разрешить цикл зависимостей для следующих объектов:" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " "\"%s\"" msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "программа \"%s\" найдена программой \"%s\", но её версия отличается от " "версии %s" -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "" "option --exclude-database cannot be used together with -g/--globals-only, -" @@ -2569,30 +2727,30 @@ msgstr "" "параметр --exclude-database несовместим с -g/--globals-only, -r/--roles-only " "и -t/--tablespaces-only" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "параметры -g/--globals-only и -r/--roles-only исключают друг друга" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "" "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "" "параметры -g/--globals-only и -t/--tablespaces-only исключают друг друга" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "" "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "параметры -r/--roles-only и -t/--tablespaces-only исключают друг друга" -#: pg_dumpall.c:469 pg_dumpall.c:1753 +#: pg_dumpall.c:474 pg_dumpall.c:1771 #, c-format msgid "could not connect to database \"%s\"" msgstr "не удалось подключиться к базе данных: \"%s\"" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2601,7 +2759,7 @@ msgstr "" "не удалось подключиться к базе данных \"postgres\" или \"template1\"\n" "Укажите другую базу данных." -#: pg_dumpall.c:629 +#: pg_dumpall.c:634 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2610,17 +2768,17 @@ msgstr "" "%s экспортирует всё содержимое кластера баз данных PostgreSQL в SQL-скрипт.\n" "\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:636 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [ПАРАМЕТР]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:639 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=ИМЯ_ФАЙЛА имя выходного файла\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:646 #, c-format msgid "" " -c, --clean clean (drop) databases before recreating\n" @@ -2628,18 +2786,18 @@ msgstr "" " -c, --clean очистить (удалить) базы данных перед\n" " восстановлением\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:648 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr "" " -g, --globals-only выгрузить только глобальные объекты, без баз\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:649 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner не восстанавливать владение объектами\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:650 #, c-format msgid "" " -r, --roles-only dump only roles, no databases or tablespaces\n" @@ -2647,13 +2805,13 @@ msgstr "" " -r, --roles-only выгрузить только роли, без баз данных\n" " и табличных пространств\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:652 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr "" " -S, --superuser=ИМЯ имя пользователя для выполнения выгрузки\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:653 #, c-format msgid "" " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" @@ -2661,7 +2819,7 @@ msgstr "" " -t, --tablespaces-only выгружать только табличные пространства,\n" " без баз данных и ролей\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:659 #, c-format msgid "" " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" @@ -2671,20 +2829,29 @@ msgstr "" #: pg_dumpall.c:661 #, c-format +msgid "" +" --filter=FILENAME exclude databases based on expressions in " +"FILENAME\n" +msgstr "" +" --filter=ИМЯ_ФАЙЛА исключать базы данных в соответствии с\n" +" выражениями в этом файле\n" + +#: pg_dumpall.c:667 +#, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords не выгружать пароли ролей\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:683 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=СТРОКА подключиться с данной строкой подключения\n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:685 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=ИМЯ_БД выбор другой базы данных по умолчанию\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:692 #, c-format msgid "" "\n" @@ -2698,102 +2865,114 @@ msgstr "" "вывод.\n" "\n" -#: pg_dumpall.c:831 +#: pg_dumpall.c:837 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "имя роли, начинающееся с \"pg_\", пропущено (%s)" -#: pg_dumpall.c:1053 +#: pg_dumpall.c:1059 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "не удалось найти подходящий порядок выгрузки для членов роли \"%s\"" -#: pg_dumpall.c:1188 +#: pg_dumpall.c:1194 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "не удалось разобрать список ACL (%s) для параметра \"%s\"" -#: pg_dumpall.c:1306 +#: pg_dumpall.c:1321 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "" "не удалось разобрать список управления доступом (%s) для табл. пространства " "\"%s\"" -#: pg_dumpall.c:1513 +#: pg_dumpall.c:1528 #, c-format msgid "excluding database \"%s\"" msgstr "база данных \"%s\" исключается" -#: pg_dumpall.c:1517 +#: pg_dumpall.c:1532 #, c-format msgid "dumping database \"%s\"" msgstr "выгрузка базы данных \"%s\"" -#: pg_dumpall.c:1548 +#: pg_dumpall.c:1563 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "ошибка при обработке базы \"%s\", pg_dump завершается" -#: pg_dumpall.c:1554 +#: pg_dumpall.c:1569 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "не удалось повторно открыть выходной файл \"%s\": %m" -#: pg_dumpall.c:1595 +#: pg_dumpall.c:1613 #, c-format msgid "running \"%s\"" msgstr "выполняется \"%s\"" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1814 #, c-format msgid "could not get server version" msgstr "не удалось узнать версию сервера" -#: pg_dumpall.c:1799 +#: pg_dumpall.c:1817 #, c-format msgid "could not parse server version \"%s\"" msgstr "не удалось разобрать строку версии сервера \"%s\"" -#: pg_dumpall.c:1869 pg_dumpall.c:1892 +#: pg_dumpall.c:1887 pg_dumpall.c:1910 #, c-format msgid "executing %s" msgstr "выполняется %s" +#: pg_dumpall.c:1982 +msgid "unsupported filter object" +msgstr "неподдерживаемый объект фильтра" + # TO REVEIW -#: pg_restore.c:313 +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "необходимо указать -d/--dbname или -f/--file" # TO REVEIW -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "параметры -d/--dbname и -f/--file исключают друг друга" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "" +"options -1/--single-transaction and --transaction-size cannot be used " +"together" +msgstr "" +"параметры -1/--single-transaction и --transaction-size исключают друг друга" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "параметры -C/--create и -1/--single-transaction исключают друг друга" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "параметр --single-transaction допускается только с одним заданием" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "" "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "нераспознанный формат архива \"%s\"; укажите \"c\", \"d\" или \"t\"" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "при восстановлении проигнорировано ошибок: %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2803,49 +2982,49 @@ msgstr "" "pg_dump.\n" "\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [ПАРАМЕТР]... [ФАЙЛ]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=БД подключиться к указанной базе данных\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr "" " -f, --file=ИМЯ_ФАЙЛА имя выходного файла (или - для вывода в stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr "" " -F, --format=c|d|t формат файла (должен определяться автоматически)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list вывести краткое оглавление архива\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose выводить подробные сообщения\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "" "\n" @@ -2854,35 +3033,35 @@ msgstr "" "\n" "Параметры, управляющие восстановлением:\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only восстановить только данные, без схемы\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create создать целевую базу данных\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr "" " -e, --exit-on-error выйти при ошибке (по умолчанию - продолжать)\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=ИМЯ восстановить указанный индекс\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr "" " -j, --jobs=ЧИСЛО распараллелить восстановление на указанное " "число заданий\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2891,13 +3070,13 @@ msgstr "" " -L, --use-list=ИМЯ_ФАЙЛА использовать оглавление из этого файла для\n" " чтения/упорядочивания данных\n" -#: pg_restore.c:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr "" " -n, --schema=ИМЯ восстановить объекты только в этой схеме\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr "" @@ -2905,17 +3084,17 @@ msgstr "" # skip-rule: no-space-before-parentheses # well-spelled: арг -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=ИМЯ(арг-ты) восстановить заданную функцию\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only восстановить только схему, без данных\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, c-format msgid "" " -S, --superuser=NAME superuser user name to use for disabling " @@ -2924,7 +3103,7 @@ msgstr "" " -S, --superuser=ИМЯ имя суперпользователя для отключения " "триггеров\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid "" " -t, --table=NAME restore named relation (table, view, etc.)\n" @@ -2932,12 +3111,12 @@ msgstr "" " -t, --table=ИМЯ восстановить заданное отношение (таблицу, " "представление и т. п.)\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=ИМЯ восстановить заданный триггер\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid "" " -x, --no-privileges skip restoration of access privileges (grant/" @@ -2946,23 +3125,32 @@ msgstr "" " -x, --no-privileges не восстанавливать права доступа\n" " (назначение/отзыв)\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr "" " -1, --single-transaction выполнить восстановление в одной транзакции\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security включить защиту на уровне строк\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid "" +" --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr "" +" --filter=ИМЯ_ФАЙЛА восстанавливать или пропускать объекты\n" +" в соответствии с выражениями в этом файле\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments не восстанавливать комментарии\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not " @@ -2972,35 +3160,35 @@ msgstr "" " --no-data-for-failed-tables не восстанавливать данные таблиц, которые\n" " не удалось создать\n" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications не восстанавливать публикации\n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels не восстанавливать метки безопасности\n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions не восстанавливать подписки\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr "" " --no-table-access-method не восстанавливать табличные методы доступа\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr "" " --no-tablespaces не восстанавливать назначения табл. " "пространств\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, c-format msgid "" " --section=SECTION restore named section (pre-data, data, or " @@ -3009,12 +3197,18 @@ msgstr "" " --section=РАЗДЕЛ восстановить заданный раздел\n" " (pre-data, data или post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr "" +" --transaction-size=N выполнять COMMIT после каждых N объектов\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ИМЯ_РОЛИ выполнить SET ROLE перед восстановлением\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "" "\n" @@ -3027,7 +3221,7 @@ msgstr "" "указывать\n" "несколько раз для выбора нескольких объектов.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "" "\n" @@ -3039,6 +3233,22 @@ msgstr "" "ввода.\n" "\n" +#, 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)" + +#, c-format +#~ msgid "unexpected tgtype value: %d" +#~ msgstr "неожиданное значение tgtype: %d" + +#, c-format +#~ msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" +#~ msgstr "неверная строка аргументов (%s) для триггера \"%s\" таблицы \"%s\"" + #, c-format #~ msgid "unrecognized collation provider '%c'" #~ msgstr "нераспознанный провайдер правил сортировки '%c'" @@ -3463,9 +3673,6 @@ msgstr "" #~ msgid "could not write to custom output routine\n" #~ msgstr "не удалось вывести данную в пользовательскую процедуру\n" -#~ msgid "unexpected end of file\n" -#~ msgstr "неожиданный конец файла\n" - #~ msgid "could not write byte: %s\n" #~ msgstr "не удалось записать байт: %s\n" diff --git a/src/bin/pg_dump/po/sv.po b/src/bin/pg_dump/po/sv.po index 2d86236c63129..8fbe8b3636b56 100644 --- a/src/bin/pg_dump/po/sv.po +++ b/src/bin/pg_dump/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-23 12:51+0000\n" -"PO-Revision-Date: 2023-08-23 15:31+0200\n" +"POT-Creation-Date: 2024-08-27 15:52+0000\n" +"PO-Revision-Date: 2024-08-27 18:32+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -88,32 +88,47 @@ msgstr "komprimeringsalgoritm \"%s\" stöder inte ett arbetarantal" msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "komprimeringsalgoritmen \"%s\" stöder inte långdistansläge" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "slut på minne" @@ -128,6 +143,49 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -168,227 +226,247 @@ msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" msgid "%s must be in range %d..%d" msgstr "%s måste vara i intervallet %d..%d" -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "läser utökningar" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "identifierar utökningsmedlemmar" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "läser scheman" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "läser användardefinierade tabeller" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "läser användardefinierade funktioner" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "läser användardefinierade typer" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "läser procedurspråk" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "läser användardefinierade aggregatfunktioner" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "läser användardefinierade operatorer" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "läser användardefinierade accessmetoder" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "läser användardefinierade operatorklasser" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "läser användardefinierade operator-familjer" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "läser användardefinierade textsöktolkare" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "läser användardefinierade textsökmallar" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "läser användardefinierade textsökordlistor" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "läser användardefinierade textsökkonfigurationer" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "läser användardefinierade främmande data-omvandlare" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "läser användardefinierade främmande servrar" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "läser standardrättigheter" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "läser användardefinierade jämförelser" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "läser användardefinierade konverteringar" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "läser typomvandlingar" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "läser transformer" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "läser information om arv av tabeller" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "läser händelsetriggrar" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "hittar utökningstabeller" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "hittar arvrelationer" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "läser kolumninfo flr intressanta tabeller" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "markerar ärvda kolumner i undertabeller" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "läser partitioneringsdata" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "läser index" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "flaggar index i partitionerade tabeller" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "läser utökad statistik" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "läser integritetsvillkor" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "läser triggrar" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "läser omskrivningsregler" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "läser policys" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "läser publiceringar" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "läser publiceringsmedlemskap för tabeller" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "läser publiceringsmedlemskap för scheman" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "läser prenumerationer" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "läser prenumerationsmedlemskap för tabeller" + +#: common.c:333 #, 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:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "ogiltigt antal (%d) föräldrar för tabell \"%s\"" -#: common.c:1049 +#: common.c:1098 #, 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:1061 +#: common.c:1110 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "kunde inte tolka numerisk array \"%s\": ogiltigt tecken i nummer" @@ -418,15 +496,20 @@ msgstr "kunde inte packa upp data: %s" msgid "could not close compression library: %s" msgstr "kunde inte stänga komprimeringsbiblioteket: %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "kunde inte läsa från infilen: %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:373 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "kunde inte läsa från infilen: %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" msgstr "kunde inte läsa från infilen: slut på filen" @@ -477,16 +560,61 @@ msgstr "kunde inte initierar komprimeringsbibliotek" msgid "could not decompress data: %s" msgstr "kunde inte dekomprimera data: %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "kunde inte läsa från infilen: %m" - #: compress_zstd.c:501 #, c-format msgid "unhandled mode \"%s\"" msgstr "kan inte hantera läget \"%s\"" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "kunde inte öppna filterfil \"%s\": %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "kunde inte stänga filterfil \"%s\": %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "ogiltigt format i filter som lästs från standard input på rad %d: %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "ogiltigt format i filter som lästs från fil \"%s\" på rad %d: %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "kunde inte läsa från filterfil \"%s\": %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "oväntat slut på fil" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "saknar mall för objektnamn" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "hittade inte filterkommandon (förväntade \"include\" eller \"exclude\")" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "ogiltigt filterkommando (förväntade \"include\" eller \"exclude\")" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "saknas typ på filterobjekt" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "typen för filterobjekt stöd ej: \"%.*s\"" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -567,512 +695,517 @@ msgstr "pgpipe: kunde itne ansluta till uttag (socket): felkod %d" msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: kunde inte acceptera anslutning: felkod %d" -#: pg_backup_archiver.c:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "kunde inte stänga utdatafilen: %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, c-format msgid "archive items not in correct section order" msgstr "arkivobjekten är inte i korrekt sektionsordning" -#: pg_backup_archiver.c:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "oväntad sektionskod %d" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, 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:371 +#: pg_backup_archiver.c:356 #, 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:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "kan inte återställa från komprimerat arkiv (%s)" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "kopplar upp mot databas för återställning" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, 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:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "implicerad återställning av enbart data" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "tar bort %s %s" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, 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:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "varning från orginaldumpfilen: %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "skapar %s \"%s.%s\"" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "skapar %s \"%s\"" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "kopplar upp mot ny databas \"%s\"" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "processar %s" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "processar data för tabell \"%s.%s\"" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "kör %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "stänger av trigger för %s" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "slår på trigger för %s" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, 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:1287 +#: pg_backup_archiver.c:1379 #, 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:1345 +#: pg_backup_archiver.c:1442 #, 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:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "återställer stort objekt med OID %u" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, c-format msgid "could not create large object %u: %s" msgstr "kunde inte skapa stort objekt %u: %s" -#: pg_backup_archiver.c:1383 pg_dump.c:3718 +#: pg_backup_archiver.c:1486 pg_dump.c:3888 #, c-format msgid "could not open large object %u: %s" msgstr "kunde inte öppna stort objekt %u: %s" -#: pg_backup_archiver.c:1439 +#: pg_backup_archiver.c:1542 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "kunde inte öppna TOC-filen \"%s\": %m" -#: pg_backup_archiver.c:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "rad ignorerad: %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, c-format msgid "could not find entry for ID %d" msgstr "kunde inte hitta en post för ID %d" -#: pg_backup_archiver.c:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "kunde inte stänga TOC-filen: %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, c-format msgid "could not open output file \"%s\": %m" msgstr "kunde inte öppna utdatafilen \"%s\": %m" -#: pg_backup_archiver.c:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "kunde inte öppna utdatafilen: %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" msgstr[0] "skrev %zu byte data av stort objekt (resultat = %d)" msgstr[1] "skrev %zu bytes data av stort objekt (resultat = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "kunde inte skriva till stort objekt: %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "vid INITIERING:" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "vid HANTERING AV TOC:" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "vid SLUTFÖRANDE:" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, 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:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "felaktigt dumpId" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "felaktig tabell-dumpId för TABLE DATA-objekt" -#: pg_backup_archiver.c:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "oväntad data-offset-flagga %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, c-format msgid "file offset in dump file is too large" msgstr "fil-offset i dumpfilen är för stort" -#: pg_backup_archiver.c:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "katalognamn för långt: \"%s\"" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, 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:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "kunde inte öppna indatafilen \"%s\": %m" -#: pg_backup_archiver.c:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, c-format msgid "could not open input file: %m" msgstr "kan inte öppna infil: %m" -#: pg_backup_archiver.c:2164 +#: pg_backup_archiver.c:2267 #, c-format msgid "could not read input file: %m" msgstr "kan inte läsa infilen: %m" -#: pg_backup_archiver.c:2166 +#: pg_backup_archiver.c:2269 #, 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:2198 +#: pg_backup_archiver.c:2301 #, 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:2204 +#: pg_backup_archiver.c:2307 #, 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:2210 +#: pg_backup_archiver.c:2313 #, 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:2219 +#: pg_backup_archiver.c:2322 #, c-format msgid "could not close input file: %m" msgstr "kunde inte stänga indatafilen: %m" -#: pg_backup_archiver.c:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "kunde inte öppna stdout för append: %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "känner inte igen filformat \"%d\"" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4448 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4647 #, c-format msgid "finished item %d %s %s" msgstr "klar med objekt %d %s %s" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4461 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4660 #, c-format msgid "worker process failed: exit code %d" msgstr "arbetsprocess misslyckades: felkod %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, 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:2628 +#: pg_backup_archiver.c:2736 #, 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:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "okänd teckenkodning \"%s\"" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2823 #, c-format msgid "invalid ENCODING item: %s" msgstr "ogiltigt ENCODING-val: %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2841 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "ogiltigt STDSTRINGS-val: %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2866 #, c-format msgid "schema \"%s\" not found" msgstr "schema \"%s\" hittades inte" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2873 #, c-format msgid "table \"%s\" not found" msgstr "tabell \"%s\" hittades inte" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2880 #, c-format msgid "index \"%s\" not found" msgstr "index \"%s\" hittades inte" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2887 #, c-format msgid "function \"%s\" not found" msgstr "funktion \"%s\" hittades inte" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2894 #, c-format msgid "trigger \"%s\" not found" msgstr "trigger \"%s\" hittades inte" -#: pg_backup_archiver.c:3183 +#: pg_backup_archiver.c:3325 #, 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:3315 +#: pg_backup_archiver.c:3457 +#, 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:3518 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "kunde inte sätta search_path till \"%s\": %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "kunde inte sätta \"default_tablespace\" till %s: %s" -#: pg_backup_archiver.c:3376 +#: pg_backup_archiver.c:3567 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "kunde inte sätta default_tablespace till %s: %s" +msgid "could not set \"default_table_access_method\": %s" +msgstr "kunde inte sätta \"default_table_access_method\": %s" -#: pg_backup_archiver.c:3425 +#: pg_backup_archiver.c:3616 #, c-format -msgid "could not set default_table_access_method: %s" -msgstr "kunde inte sätta default_table_access_method: %s" +msgid "could not alter table access method: %s" +msgstr "kunde inte ändra tabellaccessmetod: %s" -#: pg_backup_archiver.c:3530 +#: pg_backup_archiver.c:3717 #, 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:3752 +#: pg_backup_archiver.c:4004 #, 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:3766 +#: pg_backup_archiver.c:4018 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "ej supportad version (%d.%d) i filhuvudet" -#: pg_backup_archiver.c:3771 +#: pg_backup_archiver.c:4023 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "riktighetskontroll på heltalsstorlek (%lu) misslyckades" -#: pg_backup_archiver.c:3775 +#: pg_backup_archiver.c:4027 #, 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:3785 +#: pg_backup_archiver.c:4037 #, 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:3807 +#: pg_backup_archiver.c:4059 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "arkivet är komprimerat, men denna installation stödjer inte komprimering (%s) -- ingen data kommer kunna läsas" -#: pg_backup_archiver.c:3843 +#: pg_backup_archiver.c:4095 #, c-format msgid "invalid creation date in header" msgstr "ogiltig skapandedatum i huvud" -#: pg_backup_archiver.c:3977 +#: pg_backup_archiver.c:4229 #, c-format msgid "processing item %d %s %s" msgstr "processar objekt %d %s %s" -#: pg_backup_archiver.c:4052 +#: pg_backup_archiver.c:4314 #, c-format msgid "entering main parallel loop" msgstr "går in i parallella huvudloopen" -#: pg_backup_archiver.c:4063 +#: pg_backup_archiver.c:4325 #, c-format msgid "skipping item %d %s %s" msgstr "hoppar över objekt %d %s %s" -#: pg_backup_archiver.c:4072 +#: pg_backup_archiver.c:4334 #, c-format msgid "launching item %d %s %s" msgstr "startar objekt %d %s %s" -#: pg_backup_archiver.c:4126 +#: pg_backup_archiver.c:4388 #, c-format msgid "finished main parallel loop" msgstr "klar med parallella huvudloopen" -#: pg_backup_archiver.c:4162 +#: pg_backup_archiver.c:4424 #, c-format msgid "processing missed item %d %s %s" msgstr "processar saknat objekt %d %s %s" -#: pg_backup_archiver.c:4767 +#: pg_backup_archiver.c:4966 #, 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" -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "ogiltig OID för stort objekt" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "fel vid sökning: %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "datablock %d har fel sökposition" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "känner inte igen datablocktyp (%d) vid genomsökning av arkiv" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "kunde inte hitta block ID %d i arkiv -- kanske på grund av en återställningbegäran i oordning vilket inte kan hanteras då inputfilen inte är sökbar" -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "kunde inte hitta block ID %d i arkiv -- möjligen ett trasigt arkiv" -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "hittade oväntat block-ID (%d) vid läsning av data -- förväntade %d" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "ej igenkänd datablockstyp %d vid återställande av arkiv" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "kunde inte bestämma sökposition i arkivfil: %m" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "kan inte stänga arkivfilen: %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "kan inte återöppna indataarkiven" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "parallell återställning från standard in stöds inte" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "parallell återställning för en icke sökbar fil stöds inte" -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "kunde inte söka till rätt position i arkivfilen: %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "komprimerare aktiv" @@ -1082,12 +1215,12 @@ msgstr "komprimerare aktiv" msgid "could not get server_version from libpq" msgstr "kunde inte hämta serverversionen från libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1830 #, c-format msgid "aborting because of server version mismatch" msgstr "avbryter då serverversionerna i matchar" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1831 #, c-format msgid "server version: %s; %s version: %s" msgstr "server version: %s; %s version: %s" @@ -1097,7 +1230,7 @@ msgstr "server version: %s; %s version: %s" msgid "already connected to a database" msgstr "är redan uppkopplad mot en databas" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 msgid "Password: " msgstr "Lösenord: " @@ -1111,18 +1244,18 @@ msgstr "kunde inte ansluta till databasen" msgid "reconnection failed: %s" msgstr "återanslutning misslyckades: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 #, c-format msgid "query failed: %s" msgstr "fråga misslyckades: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "Query was: %s" msgstr "Frågan var: %s" @@ -1158,7 +1291,7 @@ msgstr "fel returnerat av PQputCopyEnd: %s" msgid "COPY failed for table \"%s\": %s" msgstr "COPY misslyckades för tabell \"%s\": %s" -#: pg_backup_db.c:521 pg_dump.c:2202 +#: pg_backup_db.c:521 pg_dump.c:2283 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "oväntade extraresultat under kopiering (COPY) av tabell \"%s\"" @@ -1171,161 +1304,156 @@ msgstr "kunde inte starta databastransaktionen" msgid "could not commit database transaction" msgstr "kunde inte genomföra databastransaktionen" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "ingen utdatakatalog angiven" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "kunde inte läsa katalog \"%s\": %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, c-format msgid "could not write to output file: %s" msgstr "kunde inte skriva till utdatafil: %s" -#: pg_backup_directory.c:374 +#: pg_backup_directory.c:375 #, c-format msgid "could not close data file: %m" msgstr "kan inte stänga datafil: %m" -#: pg_backup_directory.c:407 +#: pg_backup_directory.c:408 #, c-format msgid "could not close data file \"%s\": %m" msgstr "kan inte stänga datafil \"%s\": %m" -#: pg_backup_directory.c:448 +#: pg_backup_directory.c:455 #, 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:459 +#: pg_backup_directory.c:466 #, 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:468 +#: pg_backup_directory.c:475 #, 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:472 +#: pg_backup_directory.c:479 #, 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:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "kan inte stänga LO-datafil: %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "kunde inte skriva till TOC-fil för LO: %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" msgstr "kunde inte stänga TOC-fil för LO: %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "filnamnet är för långt: \"%s\"" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "detta format kan inte läsas" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "kunde inte öppna TOC-filen \"%s\" för utmatning: %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format msgid "could not open TOC file for output: %m" msgstr "kunde inte öppna TOC-filen för utmatning: %m" -#: pg_backup_tar.c:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "komprimering är stödjs inte av arkivformatet tar" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "kunde inte öppna TOC-fil \"%s\" för läsning: %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format msgid "could not open TOC file for input: %m" msgstr "kunde inte öppna TOC-fil för läsning: %m" -#: pg_backup_tar.c:322 +#: pg_backup_tar.c:318 #, c-format msgid "could not find file \"%s\" in archive" msgstr "kunde inte hitta fil \"%s\" i arkiv" -#: pg_backup_tar.c:382 +#: pg_backup_tar.c:378 #, c-format msgid "could not generate temporary file name: %m" msgstr "kunde inte generera temporärt filnamn: %m" -#: pg_backup_tar.c:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "oväntad COPY-satssyntax: \"%s\"" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "ogiltig OID för stort objekt (%u)" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "kunde inte stänga temporär fil: %m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "verklig fillängd (%lld) matchar inte det förväntade (%lld)" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, 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:1100 +#: pg_backup_tar.c:1115 #, 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:1147 +#: pg_backup_tar.c:1162 #, 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:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "trasigt tar-huvud hittat i %s (förväntade %d, beräknad %d) filposition %llu" @@ -1335,10 +1463,10 @@ msgstr "trasigt tar-huvud hittat i %s (förväntade %d, beräknad %d) filpositio msgid "unrecognized section name: \"%s\"" msgstr "okänt sektionsnamn: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." @@ -1348,82 +1476,82 @@ msgstr "Försök med \"%s --help\" för mer information." msgid "out of on_exit_nicely slots" msgstr "slut på on_exit_nicely-slottar" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "flaggorna \"bara schema\" (-s) och \"bara data\" (-a) kan inte användas tillsammans" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "flaggorna -s/--schema-only och --include-foreign-data kan inte användas tillsammans" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "flaggan --include-foreign-data stöds inte med parallell backup" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "flaggorna \"nollställ\" (-c) och \"bara data\" (-a) kan inte användas tillsammans" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "flaggan --if-exists kräver flaggan -c/--clean" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "flagga --on-conflict-do-nothing kräver --inserts, --rows-per-insert eller --column-inserts" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "okänd komprimeringsalgoritm: \"%s\"" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "ogiltig inställning för komprimering: %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "komprimeringsflaggan \"%s\" stöds inte än av pg_dump" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "parallell backup stöds bara med katalogformat" -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "sista inbyggda OID är %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "hittade inga matchande scheman" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "hittade inga matchande tabeller" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "hittade inga matchande utökningar" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "" "%s dumps a database as a text file or to other formats.\n" @@ -1432,17 +1560,17 @@ msgstr "" "%s dumpar en databas som en textfil eller i andra format.\n" "\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:635 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [FLAGGA]... [DBNAMN]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:638 pg_restore.c:455 #, c-format msgid "" "\n" @@ -1451,12 +1579,12 @@ msgstr "" "\n" "Allmänna flaggor:\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=FILENAME fil eller katalognamn för utdata\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid "" " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" @@ -1465,22 +1593,22 @@ msgstr "" " -F, --format=c|d|t|p utdatans filformat (egen (c), katalog (d), tar (t),\n" " ren text (p) (standard))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM använd så här många parellella job för att dumpa\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:640 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose visa mer information\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:641 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid "" " -Z, --compress=METHOD[:DETAIL]\n" @@ -1489,22 +1617,27 @@ msgstr "" " -Z, --compress=METOD[:DETALJ]\n" " komprimera som angivet\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:642 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=TIMEOUT misslyckas efter att ha väntat i TIMEOUT på tabellås\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:670 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync vänta inte på att ändingar säkert skrivits till disk\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" + +#: pg_dump.c:1108 pg_dumpall.c:643 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:644 #, c-format msgid "" "\n" @@ -1513,62 +1646,62 @@ msgstr "" "\n" "Flaggor som styr utmatning:\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:645 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only dumpa bara data, inte schema\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects inkludera stora objekt i dumpen\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (samma som --large-objects, obsolet)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -B, --no-large-objects exkludera stora objekt i dumpen\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (samma som --no-large-objects, obsolet)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean nollställ (drop) databasobjekt innan återskapande\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr " -C, --create inkludera kommandon för att skapa databasen i dumpen\n" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=MALL dumpa bara de angivna utökningarna\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:647 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=KODNING dumpa data i teckenkodning KODNING\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=MALL dumpa bara de angivna scheman\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=MALL dumpa INTE de angivna scheman\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid "" " -O, --no-owner skip restoration of object ownership in\n" @@ -1577,52 +1710,52 @@ msgstr "" " -O, --no-owner hoppa över återställande av objektägare i\n" " textformatdumpar\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:651 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only dumpa bara scheman, inte data\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME namn på superuser för textformatdumpar\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=MALL dumpa bara de angivna tabellerna\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=MALL dumpa INTE de angivna tabellerna\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:654 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges dumpa inte rättigheter (grant/revoke)\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:655 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade används bara av uppgraderingsverktyg\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:656 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr " --column-inserts dumpa data som INSERT med kolumnnamn\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:657 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr " --disable-dollar-quoting slå av dollar-citering, använd standard SQL-citering\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:658 pg_restore.c:483 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers slå av triggrar vid återställning av enbart data\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid "" " --enable-row-security enable row security (dump only content user has\n" @@ -1631,7 +1764,12 @@ msgstr "" " --enable-row-security slå på radsäkerhet (dumpa bara data användaren\n" " har rätt till)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=MALL dumpa INTE de angivna utökningarna\n" + +#: pg_dump.c:1136 #, c-format msgid "" " --exclude-table-and-children=PATTERN\n" @@ -1642,12 +1780,12 @@ msgstr "" " dumpa INTE angivna tabeller, inklusive\n" " barn och partitionstabeller\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=MALL dumpa INTE data för de angivna tabellerna\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid "" " --exclude-table-data-and-children=PATTERN\n" @@ -1658,17 +1796,27 @@ msgstr "" " dumpa INTE data för angivna tabeller,\n" " inklusive barn och partitionstabeller\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:660 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM övertrumfa standardinställningen för extra_float_digits\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid "" +" --filter=FILENAME include or exclude objects and data from dump\n" +" based on expressions in FILENAME\n" +msgstr "" +" --filter=FILENAMN inkludera eller exkludera objekt och data\n" +" från dump baserat på uttryck i FILNAMN\n" +"\n" + +#: pg_dump.c:1146 pg_dumpall.c:662 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists använd IF EXISTS när objekt droppas\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid "" " --include-foreign-data=PATTERN\n" @@ -1679,87 +1827,87 @@ msgstr "" " inkludera data i främmande tabeller från\n" " främmande servrar som matchar MALL\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:663 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts dumpa data som INSERT, istället för COPY\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:664 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root ladda partitioner via root-tabellen\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:665 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments dumpa inte kommentarer\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:666 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications dumpa inte publiceringar\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:668 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels dumpa inte tilldelning av säkerhetsetiketter\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:669 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions dumpa inte prenumereringar\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:671 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method dumpa inte tabellaccessmetoder\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:672 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces dumpa inte användning av tabellutymmen\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:673 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression dumpa inte komprimeringsmetoder för TOAST\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:674 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data dumpa inte ologgad tabelldata\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:675 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing addera ON CONFLICT DO NOTHING till INSERT-kommandon\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:676 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr " --quote-all-identifiers citera alla identifierar, även om de inte är nyckelord\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:677 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NRADER antal rader per INSERT; implicerar --inserts\n" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr " --section=SEKTION dumpa namngiven sektion (pre-data, data eller post-data)\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable wait until the dump can run without anomalies\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT använda namngivet snapshot för att dumpa\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid "" " --strict-names require table and/or schema include patterns to\n" @@ -1768,7 +1916,7 @@ msgstr "" " --strict-names kräv att mallar för tabeller och/eller scheman matchar\n" " minst en sak var\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid "" " --table-and-children=PATTERN dump only the specified table(s), including\n" @@ -1777,7 +1925,7 @@ msgstr "" " --table-and-children=MALL dumpa bara angivna tabell(er), inklusive\n" " barn och partitionstabeller\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:678 pg_restore.c:500 #, c-format msgid "" " --use-set-session-authorization\n" @@ -1788,7 +1936,7 @@ msgstr "" " använd kommandot SET SESSION AUTHORIZATION istället för\n" " kommandot ALTER OWNER för att sätta ägare\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:682 pg_restore.c:504 #, c-format msgid "" "\n" @@ -1797,42 +1945,42 @@ msgstr "" "\n" "Flaggor för anslutning:\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAMN databasens som skall dumpas\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:684 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=VÄRDNAMN databasens värdnamn eller socketkatalog\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:686 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT databasens värdport\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:687 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAMN anslut med datta användarnamn mot databasen\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:688 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga aldrig efter lösenord\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:689 pg_restore.c:509 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password fråga om lösenord (borde ske automatiskt)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:690 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLLNAMN gör SET ROLE innan dumpen\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "" "\n" @@ -1845,535 +1993,537 @@ msgstr "" "PGDATABASE att användas.\n" "\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:694 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapportera fel till <%s>.\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:695 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "ogiltig klientteckenkodning \"%s\" angiven" -#: pg_dump.c:1303 +#: pg_dump.c:1352 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "parallella dumpar från standby-server stöds inte av denna serverversion" -#: pg_dump.c:1368 +#: pg_dump.c:1417 #, c-format msgid "invalid output format \"%s\" specified" msgstr "ogiltigt utdataformat \"%s\" angivet" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1458 pg_dump.c:1514 pg_dump.c:1567 pg_dumpall.c:1467 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "ej korrekt kvalificerat namn (för många namn med punkt): %s" -#: pg_dump.c:1417 +#: pg_dump.c:1466 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "hittade inga matchande scheman för mallen \"%s\"" -#: pg_dump.c:1470 +#: pg_dump.c:1519 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "hittade inga matchande utökningar för mallen \"%s\"" -#: pg_dump.c:1523 +#: pg_dump.c:1572 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "hittade inga matchande främmande servrar för mallen \"%s\"" -#: pg_dump.c:1594 +#: pg_dump.c:1643 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ej korrekt relationsnamn (för många namn med punkt): %s" -#: pg_dump.c:1616 +#: pg_dump.c:1665 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "hittade inga matchande tabeller för mallen \"%s\"" -#: pg_dump.c:1643 +#: pg_dump.c:1692 #, c-format msgid "You are currently not connected to a database." msgstr "Du är för närvarande inte uppkopplad mot en databas." -#: pg_dump.c:1646 +#: pg_dump.c:1695 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referenser till andra databaser är inte implementerat: %s" -#: pg_dump.c:2077 +#: pg_dump.c:2154 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "dumpar innehållet i tabell \"%s.%s\"" -#: pg_dump.c:2183 +#: pg_dump.c:2264 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Dumpning av innehållet i tabellen \"%s\" misslyckades: PQendcopy() misslyckades." -#: pg_dump.c:2184 pg_dump.c:2194 +#: pg_dump.c:2265 pg_dump.c:2275 #, c-format msgid "Error message from server: %s" msgstr "Felmeddelandet från servern: %s" -#: pg_dump.c:2185 pg_dump.c:2195 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Command was: %s" msgstr "Kommandot var: %s" -#: pg_dump.c:2193 +#: pg_dump.c:2274 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Dumpning av innehållet i tabellen \"%s\" misslyckades: PQgetResult() misslyckades." -#: pg_dump.c:2275 +#: pg_dump.c:2365 #, 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:2973 +#: pg_dump.c:3067 #, c-format msgid "saving database definition" msgstr "sparar databasdefinition" -#: pg_dump.c:3078 +#: pg_dump.c:3176 #, c-format msgid "unrecognized locale provider: %s" msgstr "okänd lokalleverantör: %s" -#: pg_dump.c:3429 +#: pg_dump.c:3537 #, c-format msgid "saving encoding = %s" msgstr "sparar kodning = %s" -#: pg_dump.c:3454 +#: pg_dump.c:3562 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "sparar standard_conforming_strings = %s" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "sparar \"standard_conforming_strings = %s\"" -#: pg_dump.c:3493 +#: pg_dump.c:3601 #, c-format msgid "could not parse result of current_schemas()" msgstr "kunde inte parsa resultat från current_schemas()" -#: pg_dump.c:3512 +#: pg_dump.c:3620 #, c-format -msgid "saving search_path = %s" -msgstr "sparar search_path = %s" +msgid "saving \"search_path = %s\"" +msgstr "sparar \"search_path = %s\"" -#: pg_dump.c:3549 +#: pg_dump.c:3656 #, c-format msgid "reading large objects" msgstr "läser stora objekt" -#: pg_dump.c:3687 +#: pg_dump.c:3877 #, c-format -msgid "saving large objects" -msgstr "sparar stora objekt" +msgid "saving large objects \"%s\"" +msgstr "sparar stora objekt \"%s\"" -#: pg_dump.c:3728 +#: pg_dump.c:3898 #, c-format msgid "error reading large object %u: %s" msgstr "fel vid läsning av stort objekt %u: %s" -#: pg_dump.c:3834 +#: pg_dump.c:4001 #, c-format msgid "reading row-level security policies" msgstr "läser säkerhetspolicy på radnivå" -#: pg_dump.c:3975 +#: pg_dump.c:4142 #, c-format msgid "unexpected policy command type: %c" msgstr "oväntad kommandotyp för policy: %c" -#: pg_dump.c:4425 pg_dump.c:4760 pg_dump.c:11984 pg_dump.c:17894 -#: pg_dump.c:17896 pg_dump.c:18517 +#: pg_dump.c:4592 pg_dump.c:5150 pg_dump.c:12362 pg_dump.c:18246 +#: pg_dump.c:18248 pg_dump.c:18870 #, c-format msgid "could not parse %s array" msgstr "kunde inte parsa arrayen %s" -#: pg_dump.c:4613 +#: pg_dump.c:4806 #, 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 superuser" -#: pg_dump.c:5149 +#: pg_dump.c:5012 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "prenumeration med OID %u existerar inte" + +#: pg_dump.c:5019 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "misslyckades med riktighetskontroll, hittade inte tabell med OID %u" + +#: pg_dump.c:5582 #, 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:5294 +#: pg_dump.c:5727 #, c-format msgid "schema with OID %u does not exist" msgstr "schema med OID %u existerar inte" -#: pg_dump.c:6776 pg_dump.c:17158 +#: pg_dump.c:7209 pg_dump.c:17617 #, 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:6919 +#: pg_dump.c:7352 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "misslyckades med riktighetskontroll, hittade inte tabell med OID %u i pg_partitioned_table" -#: pg_dump.c:7150 pg_dump.c:7417 pg_dump.c:7888 pg_dump.c:8552 pg_dump.c:8671 -#: pg_dump.c:8819 +#: pg_dump.c:7583 pg_dump.c:7857 pg_dump.c:8304 pg_dump.c:8918 pg_dump.c:9040 +#: pg_dump.c:9188 #, c-format msgid "unrecognized table OID %u" msgstr "okänt tabell-OID %u" -#: pg_dump.c:7154 +#: pg_dump.c:7587 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "oväntat indexdata för tabell \"%s\"" -#: pg_dump.c:7649 +#: pg_dump.c:8089 #, 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:7940 -#, 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-trigger \"%s\" i tabell \"%s\" (OID för tabell : %u)" - -#: pg_dump.c:8556 +#: pg_dump.c:8922 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "oväntad kolumndata för tabell \"%s\"" -#: pg_dump.c:8585 +#: pg_dump.c:8951 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "ogiltigt kolumnnumrering i tabell \"%s\"" -#: pg_dump.c:8633 +#: pg_dump.c:9002 #, c-format msgid "finding table default expressions" msgstr "hittar tabellers default-uttryck" -#: pg_dump.c:8675 +#: pg_dump.c:9044 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "felaktigt adnum-värde %d för tabell \"%s\"" -#: pg_dump.c:8769 +#: pg_dump.c:9138 #, c-format msgid "finding table check constraints" msgstr "hittar tabellers check-villkor" -#: pg_dump.c:8823 +#: pg_dump.c:9192 #, 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:8827 +#: pg_dump.c:9196 #, c-format msgid "The system catalogs might be corrupted." msgstr "Systemkatalogerna kan vara trasiga." -#: pg_dump.c:9517 +#: pg_dump.c:9886 #, c-format msgid "role with OID %u does not exist" msgstr "roll med OID %u existerar inte" -#: pg_dump.c:9629 pg_dump.c:9658 +#: pg_dump.c:9998 pg_dump.c:10027 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "ogiltig pg_init_privs-post: %u %u %d" -#: pg_dump.c:10479 +#: pg_dump.c:10574 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "saknar metadata för stort objekt \"%s\"" + +#: pg_dump.c:10857 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "typtype för datatyp \"%s\" verkar vara ogiltig" -#: pg_dump.c:12053 +#: pg_dump.c:12431 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "okänt provolatile-värde för funktion \"%s\"" -#: pg_dump.c:12103 pg_dump.c:13985 +#: pg_dump.c:12481 pg_dump.c:14377 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "okänt proparallel-värde för funktion \"%s\"" -#: pg_dump.c:12233 pg_dump.c:12339 pg_dump.c:12346 +#: pg_dump.c:12611 pg_dump.c:12717 pg_dump.c:12724 #, 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:12272 +#: pg_dump.c:12650 #, 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:12275 +#: pg_dump.c:12653 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "felaktigt värde i fältet pg_cast.castmethod" -#: pg_dump.c:12365 +#: pg_dump.c:12743 #, 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:12382 +#: pg_dump.c:12760 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "felaktigt värde i fältet pg_transform.trffromsql" -#: pg_dump.c:12403 +#: pg_dump.c:12781 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "felaktigt värde i fältet pg_transform.trftosql" -#: pg_dump.c:12548 +#: pg_dump.c:12926 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "postfix-operatorer stöds inte längre (operator \"%s\")" -#: pg_dump.c:12718 +#: pg_dump.c:13096 #, c-format msgid "could not find operator with OID %s" msgstr "kunde inte hitta en operator med OID %s." -#: pg_dump.c:12786 +#: pg_dump.c:13164 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "ogiltig typ \"%c\" för accessmetod \"%s\"" -#: pg_dump.c:13455 +#: pg_dump.c:13838 pg_dump.c:13906 #, c-format msgid "unrecognized collation provider: %s" msgstr "okänd jämförelseleverantör: %s" -#: pg_dump.c:13464 pg_dump.c:13473 pg_dump.c:13483 pg_dump.c:13498 +#: pg_dump.c:13847 pg_dump.c:13854 pg_dump.c:13865 pg_dump.c:13875 +#: pg_dump.c:13890 #, c-format msgid "invalid collation \"%s\"" msgstr "ogiltig jämförelse \"%s\"" -#: pg_dump.c:13514 -#, c-format -msgid "unrecognized collation provider '%c'" -msgstr "okänd jämförelseleverantör: '%c'" - -#: pg_dump.c:13904 +#: pg_dump.c:14296 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "okänt aggfinalmodify-värde för aggregat \"%s\"" -#: pg_dump.c:13960 +#: pg_dump.c:14352 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "okänt aggmfinalmodify-värde för aggregat \"%s\"" -#: pg_dump.c:14677 +#: pg_dump.c:15069 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "okänd objekttyp i standardrättigheter: %d" -#: pg_dump.c:14693 +#: pg_dump.c:15085 #, c-format msgid "could not parse default ACL list (%s)" msgstr "kunde inte parsa standard-ACL-lista (%s)" -#: pg_dump.c:14775 +#: pg_dump.c:15169 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "kunde inte parsa initial ACL-lista (%s) eller default (%s) för objekt \"%s\" (%s)" -#: pg_dump.c:14800 +#: pg_dump.c:15194 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "kunde inte parsa ACL-lista (%s) eller default (%s) för objekt \"%s\" (%s)" -#: pg_dump.c:15341 +#: pg_dump.c:15737 #, 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:15344 +#: pg_dump.c:15740 #, 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:15351 +#: pg_dump.c:15747 #, 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:15435 +#: pg_dump.c:15832 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS stöds inte längre (tabell \"%s\")" -#: pg_dump.c:16359 +#: pg_dump.c:16819 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "ogiltigt kolumnnummer %d för tabell \"%s\"" -#: pg_dump.c:16437 +#: pg_dump.c:16897 #, c-format msgid "could not parse index statistic columns" msgstr "kunde inte parsa kolumn i indexstatistik" -#: pg_dump.c:16439 +#: pg_dump.c:16899 #, c-format msgid "could not parse index statistic values" msgstr "kunde inte parsa värden i indexstatistik" -#: pg_dump.c:16441 +#: pg_dump.c:16901 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "antal kolumner och värden stämmer inte i indexstatistik" -#: pg_dump.c:16657 +#: pg_dump.c:17116 #, c-format msgid "missing index for constraint \"%s\"" msgstr "saknar index för integritetsvillkor \"%s\"" -#: pg_dump.c:16892 +#: pg_dump.c:17351 #, c-format msgid "unrecognized constraint type: %c" msgstr "oväntad integritetsvillkorstyp: %c" -#: pg_dump.c:16993 pg_dump.c:17222 +#: pg_dump.c:17452 pg_dump.c:17681 #, 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:17025 +#: pg_dump.c:17484 #, c-format msgid "unrecognized sequence type: %s" msgstr "okänd sekvenstyp: %s" -#: pg_dump.c:17314 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "oväntat tgtype-värde: %d" - -#: pg_dump.c:17386 -#, c-format -msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" -msgstr "felaktig argumentsträng (%s) för trigger \"%s\" i tabell \"%s\"" - -#: pg_dump.c:17655 +#: pg_dump.c:17998 #, 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:17808 +#: pg_dump.c:18151 #, c-format msgid "could not find referenced extension %u" msgstr "kunde inte hitta refererad utökning %u" -#: pg_dump.c:17898 +#: pg_dump.c:18250 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "antal konfigurationer och villkor stämmer inte för utökning" -#: pg_dump.c:18030 +#: pg_dump.c:18382 #, c-format msgid "reading dependency data" msgstr "läser beroendedata" -#: pg_dump.c:18116 +#: pg_dump.c:18468 #, c-format msgid "no referencing object %u %u" msgstr "inget refererande objekt %u %u" -#: pg_dump.c:18127 +#: pg_dump.c:18479 #, c-format msgid "no referenced object %u %u" msgstr "inget refererat objekt %u %u" -#: pg_dump_sort.c:422 +#: pg_dump.c:18904 pg_dump.c:18942 pg_dumpall.c:1962 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "%s-filter för \"%s\" tillåts inte" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "ogiltigt dumpId %d" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "ogiltigt beroende %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "kunde inte fastställa beroendeloop" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, 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:1281 +#: pg_dump_sort.c:1214 #, 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:1282 +#: pg_dump_sort.c:1215 #, 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:1294 +#: pg_dump_sort.c:1227 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "kunde inte räta ut beroendeloopen för dessa saker:" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s" -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "flaggan --exclude-database kan inte användas tillsammans med -g/--globals-only, -r/--roles-only eller -t/--tablespaces-only" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "flaggorna \"bara gobala\" (-g) och \"bara roller\" (-r) kan inte användas tillsammans" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "flaggorna \"bara globala\" (-g) och \"bara tabellutrymmen\" (-t) kan inte användas tillsammans" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "flaggorna \"bara roller\" (-r) och \"bara tabellutrymmen\" (-t) kan inte användas tillsammans" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:474 pg_dumpall.c:1771 #, c-format msgid "could not connect to database \"%s\"" msgstr "kunde inte ansluta till databasen \"%s\"" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "" "could not connect to databases \"postgres\" or \"template1\"\n" @@ -2382,7 +2532,7 @@ msgstr "" "kunde inte ansluta till databasen \"postgres\" eller \"template1\"\n" "Ange en annan databas." -#: pg_dumpall.c:629 +#: pg_dumpall.c:634 #, c-format msgid "" "%s extracts a PostgreSQL database cluster into an SQL script file.\n" @@ -2391,67 +2541,72 @@ msgstr "" "%s extraherar ett PostgreSQL databaskluster till en SQL-scriptfil.\n" "\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:636 #, c-format msgid " %s [OPTION]...\n" msgstr " %s [FLAGGA]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:639 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=FILENAME utdatafilnamn\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:646 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean nollställ (drop) databaser innan återskapning\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:648 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr " -g, --globals-only dumpa bara globala objekt, inte databaser\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:649 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner återställ inte objektägare\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:650 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr " -r, --roles-only dumpa endast roller, inte databaser eller tabellutrymmen\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:652 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAMN namn på superuser för användning i dumpen\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:653 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr " -t, --tablespaces-only dumpa endasdt tabellutrymmen, inte databaser eller roller\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:659 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=MALL uteslut databaser vars namn matchar MALL\n" #: pg_dumpall.c:661 #, c-format +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr " --filter=FILENAMN exkludera databaser givet uttryck i FILENAMN\n" + +#: pg_dumpall.c:667 +#, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords dumpa inte lösenord för roller\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:683 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=ANSLSTR anslut med anslutningssträng\n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:685 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAMN alternativ standarddatabas\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:692 #, c-format msgid "" "\n" @@ -2463,97 +2618,106 @@ msgstr "" "Om -f/--file inte används så kommer SQL-skriptet skriva till standard ut.\n" "\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:837 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "rollnamn som startar med \"pg_\" hoppas över (%s)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1059 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "kunde inte hitta en korrekt dumpordning för medlemskap i rollen \"%s\"" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1194 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "kunde inte parsa ACL-listan (%s) för parameter \"%s\"" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1321 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "kunde inte tolka ACL-listan (%s) för tabellutrymme \"%s\"" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1528 #, c-format msgid "excluding database \"%s\"" msgstr "utesluter databas \"%s\"" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1532 #, c-format msgid "dumping database \"%s\"" msgstr "dumpar databas \"%s\"" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1563 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "pg_dump misslyckades med databas \"%s\", avslutar" -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1569 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "kunde inte öppna om utdatafilen \"%s\": %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1613 #, c-format msgid "running \"%s\"" msgstr "kör \"%s\"" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1814 #, c-format msgid "could not get server version" msgstr "kunde inte hämta serverversionen" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1817 #, c-format msgid "could not parse server version \"%s\"" msgstr "kunde inte tolka versionsträngen \"%s\"" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1887 pg_dumpall.c:1910 #, c-format msgid "executing %s" msgstr "kör: %s" -#: pg_restore.c:313 +#: pg_dumpall.c:1982 +msgid "unsupported filter object" +msgstr "filterobjektet stöds inte" + +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "en av flaggorna -d/--dbname och -f/--file måste anges" -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "flaggorna -d/--dbname och -f/--file kan inte användas ihop" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "options -1/--single-transaction and --transaction-size cannot be used together" +msgstr "flaggorna -1/--single-transaction och --transaction-size kan inte användas tillsammans" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "flaggorna -C/--create och -1/--single-transaction kan inte användas tillsammans" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "kan inte ange både --single-transaction och multipla job" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "okänt arkivformat \"%s\"; vänligen ange \"c\", \"d\" eller \"t\"" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "fel ignorerade vid återställande: %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "" "%s restores a PostgreSQL database from an archive created by pg_dump.\n" @@ -2562,47 +2726,47 @@ msgstr "" "%s återställer en PostgreSQL-databas från ett arkiv skapat av pg_dump.\n" "\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [FLAGGA]... [FIL]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAMN koppla upp med databasnamn\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILNAMN utdatafilnamn (- för stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t backupens filformat (bör ske automatiskt)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list skriv ut summerad TOC för arkivet\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose visa mer information\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "" "\n" @@ -2611,32 +2775,32 @@ msgstr "" "\n" "Flaggor som styr återställning:\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only återställ bara data, inte scheman\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create skapa måldatabasen\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error avsluta vid fel, standard är att fortsätta\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAMN återställ namngivet index\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM använda så här många parallella job för återställning\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid "" " -L, --use-list=FILENAME use table of contents from this file for\n" @@ -2645,62 +2809,71 @@ msgstr "" " -L, --use-list=FILNAMN använd innehållsförteckning från denna fil för\n" " att välja/sortera utdata\n" -#: pg_restore.c:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAMN återställ enbart objekt i detta schema\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAMN återställ inte objekt i detta schema\n" -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAMN(arg) återställ namngiven funktion\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only återställ bara scheman, inte data\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAMN namn på superuser för att slå av triggrar\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAMN återställ namngiven relation (tabell, vy, osv.)\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAMN återställ namngiven trigger\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges återställ inte åtkomsträttigheter (grant/revoke)\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction återställ i en enda transaktion\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security aktivera radsäkerhet\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid "" +" --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr "" +" --filter=FILENAMN återställ eller hoppa över objekt\n" +" baserat på uttryck i FILENAMN\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments återställ inte kommentarer\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid "" " --no-data-for-failed-tables do not restore data of tables that could not be\n" @@ -2709,42 +2882,47 @@ msgstr "" " --no-data-for-failed-tables återställ inte data för tabeller som\n" " inte kunde skapas\n" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications återställ inte publiceringar\n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels återställ inte säkerhetsetiketter\n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions återställ inte prenumerationer\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method återställ inte tabellaccessmetoder\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces återställ inte användning av tabellutymmen\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr " --section=SEKTION återställ namngiven sektion (pre-data, data eller post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr " --transaction-size=N gör commit efter var N:e objekt\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME gör SET ROLE innan återställning\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "" "\n" @@ -2755,7 +2933,7 @@ msgstr "" "Flaggorna -I, -n, -N, -P, -t, -T och --section kan kombineras och anges\n" "många gånger för att välja flera objekt.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "" "\n" @@ -2765,55 +2943,3 @@ msgstr "" "\n" "Om inget indatafilnamn är angivet, så kommer standard in att användas.\n" "\n" - -#, c-format -#~ msgid " %s" -#~ msgstr " %s" - -#, c-format -#~ msgid " -Z, --compress=0-9 compression level for compressed formats\n" -#~ msgstr " -Z, --compress=0-9 komprimeringsnivå för komprimerade format\n" - -#, 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)" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "kunde inte byta katalog till \"%s\": %m" - -#, c-format -#~ msgid "could not close blob data file: %m" -#~ msgstr "kan inte stänga blobbars datafil: %m" - -#, c-format -#~ msgid "could not close blobs TOC file: %m" -#~ msgstr "kunde inte stänga blobbars TOC-fil: %m" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "kunde inte läsa binär \"%s\"" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "kan inte läsa symbolisk länk \"%s\": %m" - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "ogiltig binär \"%s\"" - -#, c-format -#~ msgid "invalid compression code: %d" -#~ msgstr "ogiltig komprimeringskod: %d" - -#, c-format -#~ msgid "not built with zlib support" -#~ msgstr "ej byggt med zlib-stöd" - -#, c-format -#~ msgid "requested compression not available in this installation -- archive will be uncompressed" -#~ msgstr "efterfrågad komprimering finns inte i denna installation -- arkivet kommer sparas okomprimerat" diff --git a/src/bin/pg_dump/po/uk.po b/src/bin/pg_dump/po/uk.po index 7a6315d2d4fa9..f92561f2eb400 100644 --- a/src/bin/pg_dump/po/uk.po +++ b/src/bin/pg_dump/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:20+0000\n" -"PO-Revision-Date: 2023-12-19 15:37\n" +"POT-Creation-Date: 2024-09-23 10:51+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_dump.pot\n" -"X-Crowdin-File-ID: 945\n" +"X-Crowdin-File: /REL_17_STABLE/pg_dump.pot\n" +"X-Crowdin-File-ID: 986\n" #: ../../../src/common/logging.c:276 #, c-format @@ -89,32 +89,47 @@ msgstr "алгоритм стиснення \"%s\" не приймає кіль msgid "compression algorithm \"%s\" does not support long-distance mode" msgstr "алгоритм стиснення \"%s\" не підтримує режим довгої відстані" -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../../common/exec.c:412 parallel.c:1609 +#: ../../common/exec.c:382 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../../common/exec.c:424 parallel.c:1609 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 msgid "out of memory" msgstr "недостатньо пам'яті" @@ -129,6 +144,49 @@ msgstr "недостатньо пам'яті\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_backup_directory.c:182 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: ../../common/wait_error.c:55 #, c-format msgid "command not executable" @@ -169,227 +227,247 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" -#: common.c:132 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: common.c:135 #, c-format msgid "reading extensions" msgstr "читання розширень" -#: common.c:135 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "ідентифікація членів розширення" -#: common.c:138 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "читання схемів" -#: common.c:147 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "читання користувацьких таблиць" -#: common.c:152 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "читання користувацьких функцій" -#: common.c:156 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "читання користувацьких типів" -#: common.c:160 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "читання процедурних мов" -#: common.c:163 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "читання користувацьких агрегатних функцій" -#: common.c:166 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "читання користувацьких операторів" -#: common.c:169 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "читання користувацьких методів доступу" -#: common.c:172 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "читання користувацьких класів операторів" -#: common.c:175 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "читання користувацьких сімейств операторів" -#: common.c:178 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "читання користувацьких парсерів текстового пошуку" -#: common.c:181 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "читання користувацьких шаблонів текстового пошуку" -#: common.c:184 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "читання користувацьких словників текстового пошуку" -#: common.c:187 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "читання користувацьких конфігурацій текстового пошуку" -#: common.c:190 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "читання користувацьких джерел сторонніх даних" -#: common.c:193 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "читання користувацьких сторонніх серверів" -#: common.c:196 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "читання прав за замовчуванням" -#: common.c:199 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "читання користувацьких сортувань" -#: common.c:202 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "читання користувацьких перетворень" -#: common.c:205 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "читання типу приведення" -#: common.c:208 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "читання перетворень" -#: common.c:211 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "читання інформації про успадкування таблиці" -#: common.c:214 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "читання тригерів подій" -#: common.c:218 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "пошук таблиць розширень" -#: common.c:222 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "пошук відносин успадкування" -#: common.c:225 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "читання інформації про стовпці цікавлячої таблиці" -#: common.c:228 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "помітка успадкованих стовпців в підтаблицях" -#: common.c:231 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "читання даних секції" -#: common.c:234 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "читання індексів" -#: common.c:237 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "помітка індексів в секційних таблицях" -#: common.c:240 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "читання розширеної статистики" -#: common.c:243 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "читання обмежень" -#: common.c:246 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "читання тригерів" -#: common.c:249 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "читання правил перезаписування" -#: common.c:252 +#: common.c:255 #, c-format msgid "reading policies" msgstr "читання політик" -#: common.c:255 +#: common.c:258 #, c-format msgid "reading publications" msgstr "читання публікацій" -#: common.c:258 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "читання членства публікації для таблиць" -#: common.c:261 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "читання членства публікації для схем" -#: common.c:264 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "читання підписок" -#: common.c:327 +#: common.c:270 +#, c-format +msgid "reading subscription membership of tables" +msgstr "читання підписки членства таблиць" + +#: common.c:333 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "помилка перевірки, батьківський елемент ідентифікатора OID %u для таблиці \"%s\" (ідентифікатор OID %u) не знайдено" -#: common.c:369 +#: common.c:375 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "неприпустиме число батьківських елементів %d для таблиці \"%s\"" -#: common.c:1049 +#: common.c:1098 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "не вдалося проаналізувати числовий масив \"%s\": забагато чисел" -#: common.c:1061 +#: common.c:1110 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "не вдалося проаналізувати числовий масив \"%s\": неприпустимий характер числа" @@ -419,15 +497,20 @@ msgstr "не вдалося розпакувати дані: %s" msgid "could not close compression library: %s" msgstr "не вдалося закрити бібліотеку стиснення: %s" -#: compress_gzip.c:266 compress_gzip.c:295 compress_lz4.c:608 -#: compress_lz4.c:628 compress_lz4.c:647 compress_none.c:97 compress_none.c:140 +#: compress_gzip.c:266 compress_lz4.c:608 compress_lz4.c:628 compress_lz4.c:647 #, c-format msgid "could not read from input file: %s" msgstr "не вдалося прочитати з вхідного файлу: %s" -#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:142 -#: compress_zstd.c:371 pg_backup_custom.c:653 pg_backup_directory.c:558 -#: pg_backup_tar.c:725 pg_backup_tar.c:748 +#: compress_gzip.c:295 compress_none.c:97 compress_none.c:139 +#: compress_zstd.c:373 pg_backup_custom.c:651 +#, c-format +msgid "could not read from input file: %m" +msgstr "не вдалося прочитати з вхідного файлу: %m" + +#: compress_gzip.c:297 compress_lz4.c:630 compress_none.c:141 +#: compress_zstd.c:371 pg_backup_custom.c:649 pg_backup_directory.c:565 +#: pg_backup_tar.c:740 pg_backup_tar.c:763 #, c-format msgid "could not read from input file: end of file" msgstr "не вдалося прочитати з вхідного файлу: кінець файлу" @@ -478,16 +561,61 @@ msgstr "не вдалося ініціалізувати бібліотеку с msgid "could not decompress data: %s" msgstr "не вдалося розпакувати дані: %s" -#: compress_zstd.c:373 pg_backup_custom.c:655 -#, c-format -msgid "could not read from input file: %m" -msgstr "не вдалося прочитати з вхідного файлу: %m" - #: compress_zstd.c:501 #, c-format msgid "unhandled mode \"%s\"" msgstr "непідтримуваний режим \"%s\"" +#: filter.c:49 +#, c-format +msgid "could not open filter file \"%s\": %m" +msgstr "не вдалося відкрити файл фільтра \"%s\": %m" + +#: filter.c:72 +#, c-format +msgid "could not close filter file \"%s\": %m" +msgstr "не вдалося закрити файл фільтра \"%s\": %m" + +#: filter.c:165 +#, c-format +msgid "invalid format in filter read from standard input on line %d: %s" +msgstr "неприпустимий формат у фільтрі прочитаний з стандартного введення в рядку %d: %s" + +#: filter.c:168 +#, c-format +msgid "invalid format in filter read from file \"%s\" on line %d: %s" +msgstr "неприпустимий формат прочитанний у файлі \"%s\" в рядку %d: %s" + +#: filter.c:241 filter.c:468 +#, c-format +msgid "could not read from filter file \"%s\": %m" +msgstr "не вдалося прочитати з файлу фільтра %s: %m" + +#: filter.c:244 +msgid "unexpected end of file" +msgstr "несподіваний кінець файлу" + +#: filter.c:311 +msgid "missing object name pattern" +msgstr "відсутній шаблон назви об'єкта" + +#: filter.c:422 +msgid "no filter command found (expected \"include\" or \"exclude\")" +msgstr "не знайдено команди фільтрів (очікувалося \"include\" або \"exclude\")" + +#: filter.c:433 +msgid "invalid filter command (expected \"include\" or \"exclude\")" +msgstr "неприпустима команда фільтра (очікувалась \"include\" або \"exclude\")" + +#: filter.c:440 +msgid "missing filter object type" +msgstr "відсутній тип об'єкту фільтру" + +#: filter.c:447 +#, c-format +msgid "unsupported filter object type: \"%.*s\"" +msgstr "непідтримуваний тип об'єкта фільтру: \"%.*s\"" + #: parallel.c:251 #, c-format msgid "%s() failed: error code %d" @@ -565,117 +693,117 @@ msgstr "pgpipe: не вдалося зв'язатися з сокетом: ко msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: не вдалося прийняти зв'язок: код помилки %d" -#: pg_backup_archiver.c:276 pg_backup_archiver.c:1603 +#: pg_backup_archiver.c:261 pg_backup_archiver.c:1706 #, c-format msgid "could not close output file: %m" msgstr "не вдалося закрити вихідний файл: %m" -#: pg_backup_archiver.c:320 pg_backup_archiver.c:324 +#: pg_backup_archiver.c:305 pg_backup_archiver.c:309 #, c-format msgid "archive items not in correct section order" msgstr "елементи архіву в неправильному порядку" -#: pg_backup_archiver.c:330 +#: pg_backup_archiver.c:315 #, c-format msgid "unexpected section code %d" msgstr "неочікуваний код розділу %d" -#: pg_backup_archiver.c:367 +#: pg_backup_archiver.c:352 #, c-format msgid "parallel restore is not supported with this archive file format" msgstr "паралельне відновлення не підтримується з цим файлом архівного формату" -#: pg_backup_archiver.c:371 +#: pg_backup_archiver.c:356 #, c-format msgid "parallel restore is not supported with archives made by pre-8.0 pg_dump" msgstr "паралельне відновлення не підтримується з архівами, зробленими pre-8.0 pg_dump" -#: pg_backup_archiver.c:392 +#: pg_backup_archiver.c:377 #, c-format msgid "cannot restore from compressed archive (%s)" msgstr "не можна відновити зі стиснутого архіву (%s)" -#: pg_backup_archiver.c:412 +#: pg_backup_archiver.c:397 #, c-format msgid "connecting to database for restore" msgstr "підключення до бази даних для відновлення" -#: pg_backup_archiver.c:414 +#: pg_backup_archiver.c:399 #, c-format msgid "direct database connections are not supported in pre-1.3 archives" msgstr "прямі з'днання з базою даних не підтримуються в архівах у версіях до 1.3" -#: pg_backup_archiver.c:457 +#: pg_backup_archiver.c:442 #, c-format msgid "implied data-only restore" msgstr "мається на увазі відновлення лише даних" -#: pg_backup_archiver.c:523 +#: pg_backup_archiver.c:510 #, c-format msgid "dropping %s %s" msgstr "видалення %s %s" -#: pg_backup_archiver.c:623 +#: pg_backup_archiver.c:642 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "не вдалося знайти, куди вставити IF EXISTS в інструкції \"%s\"" -#: pg_backup_archiver.c:778 pg_backup_archiver.c:780 +#: pg_backup_archiver.c:828 pg_backup_archiver.c:830 #, c-format msgid "warning from original dump file: %s" msgstr "попередження з оригінального файлу дамп: %s" -#: pg_backup_archiver.c:795 +#: pg_backup_archiver.c:864 #, c-format msgid "creating %s \"%s.%s\"" msgstr "створення %s \"%s.%s\"" -#: pg_backup_archiver.c:798 +#: pg_backup_archiver.c:867 #, c-format msgid "creating %s \"%s\"" msgstr "створення %s \" \"%s\"" -#: pg_backup_archiver.c:848 +#: pg_backup_archiver.c:917 #, c-format msgid "connecting to new database \"%s\"" msgstr "підключення до нової бази даних \"%s\"" -#: pg_backup_archiver.c:875 +#: pg_backup_archiver.c:944 #, c-format msgid "processing %s" msgstr "обробка %s" -#: pg_backup_archiver.c:897 +#: pg_backup_archiver.c:966 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "обробка даних для таблиці \"%s.%s\"" -#: pg_backup_archiver.c:967 +#: pg_backup_archiver.c:1036 #, c-format msgid "executing %s %s" msgstr "виконання %s %s" -#: pg_backup_archiver.c:1008 +#: pg_backup_archiver.c:1096 #, c-format msgid "disabling triggers for %s" msgstr "вимкнення тригерів для %s" -#: pg_backup_archiver.c:1034 +#: pg_backup_archiver.c:1122 #, c-format msgid "enabling triggers for %s" msgstr "увімкнення тригерів для %s" -#: pg_backup_archiver.c:1099 +#: pg_backup_archiver.c:1187 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "внутрішня помилка - WriteData не може бути викликана поза контекстом підпрограми DataDumper " -#: pg_backup_archiver.c:1287 +#: pg_backup_archiver.c:1379 #, c-format msgid "large-object output not supported in chosen format" msgstr "вивід великих об'єктів не підтримується у вибраному форматі" -#: pg_backup_archiver.c:1345 +#: pg_backup_archiver.c:1442 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" @@ -684,55 +812,55 @@ msgstr[1] "відновлено %d великих об'єкти" msgstr[2] "відновлено %d великих об'єктів" msgstr[3] "відновлено %d великих об'єктів" -#: pg_backup_archiver.c:1366 pg_backup_tar.c:668 +#: pg_backup_archiver.c:1469 pg_backup_tar.c:683 #, c-format msgid "restoring large object with OID %u" msgstr "відновлення великого об'єкту з OID %u" -#: pg_backup_archiver.c:1378 +#: pg_backup_archiver.c:1481 #, c-format msgid "could not create large object %u: %s" msgstr "не вдалося створити великий об'єкт %u: %s" -#: pg_backup_archiver.c:1383 pg_dump.c:3720 +#: pg_backup_archiver.c:1486 pg_dump.c:3888 #, c-format msgid "could not open large object %u: %s" msgstr "не вдалося відкрити великий об'єкт %u: %s" -#: pg_backup_archiver.c:1439 +#: pg_backup_archiver.c:1542 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "не вдалося відкрити файл TOC \"%s\": %m" -#: pg_backup_archiver.c:1467 +#: pg_backup_archiver.c:1570 #, c-format msgid "line ignored: %s" msgstr "рядок проігноровано: %s" -#: pg_backup_archiver.c:1474 +#: pg_backup_archiver.c:1577 pg_backup_db.c:609 #, c-format msgid "could not find entry for ID %d" msgstr "не вдалося знайти введення для ID %d" -#: pg_backup_archiver.c:1497 pg_backup_directory.c:221 -#: pg_backup_directory.c:606 +#: pg_backup_archiver.c:1600 pg_backup_directory.c:219 +#: pg_backup_directory.c:613 #, c-format msgid "could not close TOC file: %m" msgstr "не вдалося закрити файл TOC: %m" -#: pg_backup_archiver.c:1584 pg_backup_custom.c:156 pg_backup_directory.c:332 -#: pg_backup_directory.c:593 pg_backup_directory.c:658 -#: pg_backup_directory.c:676 pg_dumpall.c:501 +#: pg_backup_archiver.c:1687 pg_backup_custom.c:152 pg_backup_directory.c:333 +#: pg_backup_directory.c:600 pg_backup_directory.c:666 +#: pg_backup_directory.c:684 pg_dumpall.c:506 #, c-format msgid "could not open output file \"%s\": %m" msgstr "не вдалося відкрити вихідний файл \"%s\": %m" -#: pg_backup_archiver.c:1586 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1689 pg_backup_custom.c:158 #, c-format msgid "could not open output file: %m" msgstr "не вдалося відкрити вихідний файл: %m" -#: pg_backup_archiver.c:1669 +#: pg_backup_archiver.c:1772 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" @@ -741,340 +869,345 @@ msgstr[1] "записано %zu байти даних великого об'єк msgstr[2] "записано %zu байтів даних великого об'єкта (результат = %d)" msgstr[3] "записано %zu байтів даних великого об'єкта (результат = %d)" -#: pg_backup_archiver.c:1675 +#: pg_backup_archiver.c:1778 #, c-format msgid "could not write to large object: %s" msgstr "не вдалося записати до великого об'єкту: %s" -#: pg_backup_archiver.c:1765 +#: pg_backup_archiver.c:1868 #, c-format msgid "while INITIALIZING:" msgstr "при ІНІЦІАЛІЗАЦІЇ:" -#: pg_backup_archiver.c:1770 +#: pg_backup_archiver.c:1873 #, c-format msgid "while PROCESSING TOC:" msgstr "при ОБРОБЦІ TOC:" -#: pg_backup_archiver.c:1775 +#: pg_backup_archiver.c:1878 #, c-format msgid "while FINALIZING:" msgstr "при ЗАВЕРШЕННІ:" -#: pg_backup_archiver.c:1780 +#: pg_backup_archiver.c:1883 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "зі входження до TOC %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1856 +#: pg_backup_archiver.c:1959 #, c-format msgid "bad dumpId" msgstr "невірний dumpId" -#: pg_backup_archiver.c:1877 +#: pg_backup_archiver.c:1980 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "невірна таблиця dumpId для елементу даних таблиці" -#: pg_backup_archiver.c:1969 +#: pg_backup_archiver.c:2072 #, c-format msgid "unexpected data offset flag %d" msgstr "неочікувана позначка зсуву даних %d" -#: pg_backup_archiver.c:1982 +#: pg_backup_archiver.c:2085 #, c-format msgid "file offset in dump file is too large" msgstr "зсув файлу у файлі дампу завеликий" -#: pg_backup_archiver.c:2093 +#: pg_backup_archiver.c:2196 #, c-format msgid "directory name too long: \"%s\"" msgstr "ім'я каталогу задовге: \"%s\"" -#: pg_backup_archiver.c:2143 +#: pg_backup_archiver.c:2246 #, 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:2151 pg_backup_custom.c:173 pg_backup_custom.c:816 -#: pg_backup_directory.c:206 pg_backup_directory.c:395 +#: pg_backup_archiver.c:2254 pg_backup_custom.c:169 pg_backup_custom.c:812 +#: pg_backup_directory.c:204 pg_backup_directory.c:396 #, c-format msgid "could not open input file \"%s\": %m" msgstr "не вдалося відкрити вхідний файл \"%s\": %m" -#: pg_backup_archiver.c:2158 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2261 pg_backup_custom.c:175 #, c-format msgid "could not open input file: %m" msgstr "не вдалося відкрити вхідний файл: %m" -#: pg_backup_archiver.c:2164 +#: pg_backup_archiver.c:2267 #, c-format msgid "could not read input file: %m" msgstr "не вдалося прочитати вхідний файл: %m" -#: pg_backup_archiver.c:2166 +#: pg_backup_archiver.c:2269 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "вхідний файл закороткий (прочитано %lu, очікувалось 5)" -#: pg_backup_archiver.c:2198 +#: pg_backup_archiver.c:2301 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "вхідний файл схожий на дамп текстового формату. Будь ласка, використайте psql." -#: pg_backup_archiver.c:2204 +#: pg_backup_archiver.c:2307 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "вхідний файл не схожий на архівний (закороткий?)" -#: pg_backup_archiver.c:2210 +#: pg_backup_archiver.c:2313 #, c-format msgid "input file does not appear to be a valid archive" msgstr "вхідний файл не схожий на архівний" -#: pg_backup_archiver.c:2219 +#: pg_backup_archiver.c:2322 #, c-format msgid "could not close input file: %m" msgstr "не вдалося закрити вхідний файл: %m" -#: pg_backup_archiver.c:2297 +#: pg_backup_archiver.c:2401 #, c-format msgid "could not open stdout for appending: %m" msgstr "не вдалося відкрити stdout для додавання: %m" -#: pg_backup_archiver.c:2342 +#: pg_backup_archiver.c:2446 #, c-format msgid "unrecognized file format \"%d\"" msgstr "нерозпізнаний формат файлу \"%d\"" -#: pg_backup_archiver.c:2423 pg_backup_archiver.c:4466 +#: pg_backup_archiver.c:2527 pg_backup_archiver.c:4647 #, c-format msgid "finished item %d %s %s" msgstr "завершений об'єкт %d %s %s" -#: pg_backup_archiver.c:2427 pg_backup_archiver.c:4479 +#: pg_backup_archiver.c:2531 pg_backup_archiver.c:4660 #, c-format msgid "worker process failed: exit code %d" msgstr "помилка при робочому процесі: код виходу %d" -#: pg_backup_archiver.c:2548 +#: pg_backup_archiver.c:2653 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "введення ідентифікатора %d поза діапазоном -- можливо, зміст пошкоджений" -#: pg_backup_archiver.c:2628 +#: pg_backup_archiver.c:2736 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "відновлення таблиць WITH OIDS більше не підтримується" -#: pg_backup_archiver.c:2710 +#: pg_backup_archiver.c:2818 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "нерозпізнане кодування \"%s\"" -#: pg_backup_archiver.c:2715 +#: pg_backup_archiver.c:2823 #, c-format msgid "invalid ENCODING item: %s" msgstr "невірний об'єкт КОДУВАННЯ: %s" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2841 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "невірний об'єкт STDSTRINGS: %s" -#: pg_backup_archiver.c:2758 +#: pg_backup_archiver.c:2866 #, c-format msgid "schema \"%s\" not found" msgstr "схему \"%s\" не знайдено" -#: pg_backup_archiver.c:2765 +#: pg_backup_archiver.c:2873 #, c-format msgid "table \"%s\" not found" msgstr "таблицю \"%s\" не знайдено" -#: pg_backup_archiver.c:2772 +#: pg_backup_archiver.c:2880 #, c-format msgid "index \"%s\" not found" msgstr "індекс \"%s\" не знайдено" -#: pg_backup_archiver.c:2779 +#: pg_backup_archiver.c:2887 #, c-format msgid "function \"%s\" not found" msgstr "функцію \"%s\" не знайдено" -#: pg_backup_archiver.c:2786 +#: pg_backup_archiver.c:2894 #, c-format msgid "trigger \"%s\" not found" msgstr "тригер \"%s\" не знайдено" -#: pg_backup_archiver.c:3201 +#: pg_backup_archiver.c:3325 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "не вдалося встановити користувача сеансу для \"%s\": %s" -#: pg_backup_archiver.c:3333 +#: pg_backup_archiver.c:3457 +#, c-format +msgid "could not set \"search_path\" to \"%s\": %s" +msgstr "не вдалося встановити \"search_path\" для \"%s\": %s" + +#: pg_backup_archiver.c:3518 #, c-format -msgid "could not set search_path to \"%s\": %s" -msgstr "не вдалося встановити search_path для \"%s\": %s" +msgid "could not set \"default_tablespace\" to %s: %s" +msgstr "не вдалося встановити \"default_tablespace\" для %s: %s" -#: pg_backup_archiver.c:3394 +#: pg_backup_archiver.c:3567 #, c-format -msgid "could not set default_tablespace to %s: %s" -msgstr "не вдалося встановити default_tablespace для %s: %s" +msgid "could not set \"default_table_access_method\": %s" +msgstr "не вдалося встановити \"default_table_access_method\" для: %s" -#: pg_backup_archiver.c:3443 +#: pg_backup_archiver.c:3616 #, c-format -msgid "could not set default_table_access_method: %s" -msgstr "не вдалося встановити default_table_access_method для : %s" +msgid "could not alter table access method: %s" +msgstr "не вдалося змінити метод доступу до таблиці: %s" -#: pg_backup_archiver.c:3548 +#: pg_backup_archiver.c:3717 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "невідомо, як встановити власника об'єкту типу \"%s\"" -#: pg_backup_archiver.c:3770 +#: pg_backup_archiver.c:4004 #, c-format msgid "did not find magic string in file header" msgstr "в заголовку файлу не знайдено магічного рядка" -#: pg_backup_archiver.c:3784 +#: pg_backup_archiver.c:4018 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "в заголовку непідтримувана версія (%d.%d)" -#: pg_backup_archiver.c:3789 +#: pg_backup_archiver.c:4023 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "перевірка на розмір цілого числа (%lu) не вдалася" -#: pg_backup_archiver.c:3793 +#: pg_backup_archiver.c:4027 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "архів зроблено на архітектурі з більшими цілими числами, деякі операції можуть не виконуватися" -#: pg_backup_archiver.c:3803 +#: pg_backup_archiver.c:4037 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "очікуваний формат (%d) відрізняється від знайденого формату у файлі (%d)" -#: pg_backup_archiver.c:3825 +#: pg_backup_archiver.c:4059 #, c-format msgid "archive is compressed, but this installation does not support compression (%s) -- no data will be available" msgstr "архів стиснено, але ця інсталяція не підтримує стискання (%s) -- дані не будуть доступними" -#: pg_backup_archiver.c:3861 +#: pg_backup_archiver.c:4095 #, c-format msgid "invalid creation date in header" msgstr "неприпустима дата створення у заголовку" -#: pg_backup_archiver.c:3995 +#: pg_backup_archiver.c:4229 #, c-format msgid "processing item %d %s %s" msgstr "обробка елементу %d %s %s" -#: pg_backup_archiver.c:4070 +#: pg_backup_archiver.c:4314 #, c-format msgid "entering main parallel loop" msgstr "введення головного паралельного циклу" -#: pg_backup_archiver.c:4081 +#: pg_backup_archiver.c:4325 #, c-format msgid "skipping item %d %s %s" msgstr "пропускається елемент %d %s %s " -#: pg_backup_archiver.c:4090 +#: pg_backup_archiver.c:4334 #, c-format msgid "launching item %d %s %s" msgstr "запуск елементу %d %s %s " -#: pg_backup_archiver.c:4144 +#: pg_backup_archiver.c:4388 #, c-format msgid "finished main parallel loop" msgstr "головний паралельний цикл завершився" -#: pg_backup_archiver.c:4180 +#: pg_backup_archiver.c:4424 #, c-format msgid "processing missed item %d %s %s" msgstr "обробка втраченого елементу %d %s %s" -#: pg_backup_archiver.c:4785 +#: pg_backup_archiver.c:4966 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "не вдалося створити таблицю \"%s\", дані не будуть відновлені" -#: pg_backup_custom.c:380 pg_backup_null.c:147 +#: pg_backup_custom.c:376 pg_backup_null.c:143 #, c-format msgid "invalid OID for large object" msgstr "неприпустимий ідентифікатор OID для великого об’єкту" -#: pg_backup_custom.c:445 pg_backup_custom.c:511 pg_backup_custom.c:640 -#: pg_backup_custom.c:874 pg_backup_tar.c:1014 pg_backup_tar.c:1019 +#: pg_backup_custom.c:441 pg_backup_custom.c:507 pg_backup_custom.c:636 +#: pg_backup_custom.c:870 pg_backup_tar.c:1029 pg_backup_tar.c:1034 #, c-format msgid "error during file seek: %m" msgstr "помилка під час пошуку файлу oobe. xml: %m" -#: pg_backup_custom.c:484 +#: pg_backup_custom.c:480 #, c-format msgid "data block %d has wrong seek position" msgstr "блок даних %d має неправильну позицію пошуку" -#: pg_backup_custom.c:501 +#: pg_backup_custom.c:497 #, c-format msgid "unrecognized data block type (%d) while searching archive" msgstr "нерозпізнаний тип блоку даних (%d) під час пошуку архіву" -#: pg_backup_custom.c:523 +#: pg_backup_custom.c:519 #, c-format msgid "could not find block ID %d in archive -- possibly due to out-of-order restore request, which cannot be handled due to non-seekable input file" msgstr "не вдалося зайти в архіві блок з ідентифікатором %d -- можливо, через непослідовність запиту відновлення, який не можна обробити через файл, що не допускає довільний вхід" -#: pg_backup_custom.c:528 +#: pg_backup_custom.c:524 #, c-format msgid "could not find block ID %d in archive -- possibly corrupt archive" msgstr "не вдалося знайти в архіві блок з ідентифікатором %d -- можливо, архів пошкоджений" -#: pg_backup_custom.c:535 +#: pg_backup_custom.c:531 #, c-format msgid "found unexpected block ID (%d) when reading data -- expected %d" msgstr "знайдено неочікуваний блок з ідентифікатором (%d) під час читання даних -- очікувалося %d" -#: pg_backup_custom.c:549 +#: pg_backup_custom.c:545 #, c-format msgid "unrecognized data block type %d while restoring archive" msgstr "нерозпізнаний тип блоку даних %d при відновленні архіву" -#: pg_backup_custom.c:755 pg_backup_custom.c:807 pg_backup_custom.c:952 -#: pg_backup_tar.c:1017 +#: pg_backup_custom.c:751 pg_backup_custom.c:803 pg_backup_custom.c:945 +#: pg_backup_tar.c:1032 #, c-format msgid "could not determine seek position in archive file: %m" msgstr "не вдалося визначити позицію пошуку у файлі архіву: %m" -#: pg_backup_custom.c:771 pg_backup_custom.c:811 +#: pg_backup_custom.c:767 pg_backup_custom.c:807 #, c-format msgid "could not close archive file: %m" msgstr "не вдалося закрити архівний файл: %m" -#: pg_backup_custom.c:794 +#: pg_backup_custom.c:790 #, c-format msgid "can only reopen input archives" msgstr "можливо повторно відкрити лише вхідні архіви" -#: pg_backup_custom.c:801 +#: pg_backup_custom.c:797 #, c-format msgid "parallel restore from standard input is not supported" msgstr "паралельне відновлення зі стандартного вводу не підтримується" -#: pg_backup_custom.c:803 +#: pg_backup_custom.c:799 #, c-format msgid "parallel restore from non-seekable file is not supported" msgstr "паралельне відновлення з файлу без вільного доступу не підтримується" -#: pg_backup_custom.c:819 +#: pg_backup_custom.c:815 #, c-format msgid "could not set seek position in archive file: %m" msgstr "не вдалося набрати позицію пошуку у файлі архіву: %m" -#: pg_backup_custom.c:898 +#: pg_backup_custom.c:894 #, c-format msgid "compressor active" msgstr "ущільнювач активний" @@ -1084,12 +1217,12 @@ msgstr "ущільнювач активний" msgid "could not get server_version from libpq" msgstr "не вдалося отримати версію серверу з libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1809 +#: pg_backup_db.c:53 pg_dumpall.c:1830 #, c-format msgid "aborting because of server version mismatch" msgstr "переривання через невідповідність версії серверу" -#: pg_backup_db.c:54 pg_dumpall.c:1810 +#: pg_backup_db.c:54 pg_dumpall.c:1831 #, c-format msgid "server version: %s; %s version: %s" msgstr "версія серверу: %s; версія %s: %s" @@ -1099,7 +1232,7 @@ msgstr "версія серверу: %s; версія %s: %s" msgid "already connected to a database" msgstr "вже під'єднано до бази даних" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1656 pg_dumpall.c:1758 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1677 pg_dumpall.c:1779 msgid "Password: " msgstr "Пароль: " @@ -1113,18 +1246,18 @@ msgstr "не вдалося зв'язатися з базою даних" msgid "reconnection failed: %s" msgstr "помилка повторного підключення: %s" -#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:756 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1683 pg_dumpall.c:1767 +#: pg_backup_db.c:190 pg_backup_db.c:264 pg_dump.c:788 pg_dump_sort.c:1213 +#: pg_dump_sort.c:1233 pg_dumpall.c:1704 pg_dumpall.c:1788 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:271 pg_dumpall.c:1872 pg_dumpall.c:1895 +#: pg_backup_db.c:271 pg_dumpall.c:1893 pg_dumpall.c:1916 #, c-format msgid "query failed: %s" msgstr "запит не вдався: %s" -#: pg_backup_db.c:273 pg_dumpall.c:1873 pg_dumpall.c:1896 +#: pg_backup_db.c:273 pg_dumpall.c:1894 pg_dumpall.c:1917 #, c-format msgid "Query was: %s" msgstr "Запит був: %s" @@ -1162,7 +1295,7 @@ msgstr "помилка повернулася від PQputCopyEnd: %s" msgid "COPY failed for table \"%s\": %s" msgstr "КОПІЮВАННЯ для таблиці \"%s\" не вдалося: %s" -#: pg_backup_db.c:521 pg_dump.c:2204 +#: pg_backup_db.c:521 pg_dump.c:2283 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "неочікувані зайві результати під час копіювання таблиці \"%s\"" @@ -1175,154 +1308,149 @@ msgstr "не вдалося почати транзакцію бази дани msgid "could not commit database transaction" msgstr "не вдалося затвердити транзакцію бази даних" -#: pg_backup_directory.c:155 +#: pg_backup_directory.c:153 #, c-format msgid "no output directory specified" msgstr "вихідний каталог не вказано" -#: pg_backup_directory.c:184 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не вдалося прочитати каталог \"%s\": %m" - -#: pg_backup_directory.c:188 +#: pg_backup_directory.c:186 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не вдалося закрити каталог \"%s\": %m" -#: pg_backup_directory.c:194 +#: pg_backup_directory.c:192 #, c-format msgid "could not create directory \"%s\": %m" msgstr "не вдалося створити каталог \"%s\": %m" -#: pg_backup_directory.c:356 pg_backup_directory.c:499 -#: pg_backup_directory.c:537 +#: pg_backup_directory.c:357 pg_backup_directory.c:506 +#: pg_backup_directory.c:544 #, c-format msgid "could not write to output file: %s" msgstr "не можливо записати у вихідний файл: %s" -#: pg_backup_directory.c:374 +#: pg_backup_directory.c:375 #, c-format msgid "could not close data file: %m" msgstr "не вдалося закрити файл даних: %m" -#: pg_backup_directory.c:407 +#: pg_backup_directory.c:408 #, c-format msgid "could not close data file \"%s\": %m" msgstr "не вдалося закрити файл даних \"%s\": %m" -#: pg_backup_directory.c:448 +#: pg_backup_directory.c:455 #, c-format msgid "could not open large object TOC file \"%s\" for input: %m" msgstr "не вдалося відкрити великий об'єкт файлу TOC \"%s\" для вводу: %m" -#: pg_backup_directory.c:459 +#: pg_backup_directory.c:466 #, c-format msgid "invalid line in large object TOC file \"%s\": \"%s\"" msgstr "невірна лінія у великому об'єкті файлу TOC \"%s\": \"%s\"" -#: pg_backup_directory.c:468 +#: pg_backup_directory.c:475 #, c-format msgid "error reading large object TOC file \"%s\"" msgstr "помилка читання великого об'єкту файлу TOC \"%s\"" -#: pg_backup_directory.c:472 +#: pg_backup_directory.c:479 #, c-format msgid "could not close large object TOC file \"%s\": %m" msgstr "не вдалося закрити великий об'єкт файлу TOC \"%s\" %m" -#: pg_backup_directory.c:694 +#: pg_backup_directory.c:702 #, c-format msgid "could not close LO data file: %m" msgstr "не вдалося закрити файл даних LO: %m" -#: pg_backup_directory.c:704 +#: pg_backup_directory.c:712 #, c-format msgid "could not write to LOs TOC file: %s" msgstr "не вдалося записати в файл LO TOC: %s" -#: pg_backup_directory.c:720 +#: pg_backup_directory.c:728 #, c-format msgid "could not close LOs TOC file: %m" msgstr "не вдалося закрити файл LO TOC: %m" -#: pg_backup_directory.c:739 +#: pg_backup_directory.c:747 #, c-format msgid "file name too long: \"%s\"" msgstr "ім'я файлу задовге: \"%s\"" -#: pg_backup_null.c:74 +#: pg_backup_null.c:70 #, c-format msgid "this format cannot be read" msgstr "цей формат не може бути прочитаним" -#: pg_backup_tar.c:172 +#: pg_backup_tar.c:168 #, c-format msgid "could not open TOC file \"%s\" for output: %m" msgstr "не вдалося відкрити файл TOC \"%s\" для виводу: %m" -#: pg_backup_tar.c:179 +#: pg_backup_tar.c:175 #, c-format msgid "could not open TOC file for output: %m" msgstr "не вдалося відкрити файл TOC для виводу: %m" -#: pg_backup_tar.c:198 pg_backup_tar.c:334 pg_backup_tar.c:389 -#: pg_backup_tar.c:405 pg_backup_tar.c:891 +#: pg_backup_tar.c:194 pg_backup_tar.c:330 pg_backup_tar.c:385 +#: pg_backup_tar.c:401 pg_backup_tar.c:906 #, c-format msgid "compression is not supported by tar archive format" msgstr "стиснення не підтримується форматом архіватора tar" -#: pg_backup_tar.c:206 +#: pg_backup_tar.c:202 #, c-format msgid "could not open TOC file \"%s\" for input: %m" msgstr "не вдалося відкрити файл TOC \"%s\" для вводу: %m" -#: pg_backup_tar.c:213 +#: pg_backup_tar.c:209 #, c-format msgid "could not open TOC file for input: %m" msgstr "не вдалося відкрити файл TOC для вводу: %m" -#: pg_backup_tar.c:322 +#: pg_backup_tar.c:318 #, c-format msgid "could not find file \"%s\" in archive" msgstr "не вдалося знайти файл \"%s\" в архіві" -#: pg_backup_tar.c:382 +#: pg_backup_tar.c:378 #, c-format msgid "could not generate temporary file name: %m" msgstr "не вдалося згенерувати тимчасове ім'я файлу: %m" -#: pg_backup_tar.c:623 +#: pg_backup_tar.c:619 #, c-format msgid "unexpected COPY statement syntax: \"%s\"" msgstr "неочікуваний синтаксис інструкції копіювання: \"%s\"" -#: pg_backup_tar.c:888 +#: pg_backup_tar.c:903 #, c-format msgid "invalid OID for large object (%u)" msgstr "неприпустимий ідентифікатор OID для великих об’єктів (%u)" -#: pg_backup_tar.c:1033 +#: pg_backup_tar.c:1048 #, c-format msgid "could not close temporary file: %m" msgstr "не вдалося закрити тимчасовий файл oobe. xml: %m" -#: pg_backup_tar.c:1036 +#: pg_backup_tar.c:1051 #, c-format msgid "actual file length (%lld) does not match expected (%lld)" msgstr "фактична довжина файлу (%lld) не відповідає очікуваній (%lld)" -#: pg_backup_tar.c:1082 pg_backup_tar.c:1113 +#: pg_backup_tar.c:1097 pg_backup_tar.c:1128 #, c-format msgid "could not find header for file \"%s\" in tar archive" msgstr "не вдалося знайти верхній колонтитул для файлу oobe. xml \"%s\" в архіві tar" -#: pg_backup_tar.c:1100 +#: pg_backup_tar.c:1115 #, 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 "відновлення даних поза замовленням не підтримується у цьому форматі архіву: вимагаєтсья \"%s\", але перед цим іде \"%s\" у файлі архіву." -#: pg_backup_tar.c:1147 +#: pg_backup_tar.c:1162 #, c-format msgid "incomplete tar header found (%lu byte)" msgid_plural "incomplete tar header found (%lu bytes)" @@ -1331,7 +1459,7 @@ msgstr[1] "знайдено незавершений tar-заголовок (%lu msgstr[2] "знайдено незавершений tar-заголовок (%lu байт)" msgstr[3] "знайдено незавершений tar-заголовок (%lu байт)" -#: pg_backup_tar.c:1186 +#: pg_backup_tar.c:1201 #, c-format msgid "corrupt tar header found in %s (expected %d, computed %d) file position %llu" msgstr "знайдено пошкоджений заголовок tar у %s (очікувалося %d, обчислено %d) позиції файлу %llu" @@ -1341,10 +1469,10 @@ msgstr "знайдено пошкоджений заголовок tar у %s (о msgid "unrecognized section name: \"%s\"" msgstr "нерозпізнане ім’я розділу: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:662 pg_dump.c:679 pg_dumpall.c:365 -#: pg_dumpall.c:375 pg_dumpall.c:383 pg_dumpall.c:391 pg_dumpall.c:398 -#: pg_dumpall.c:408 pg_dumpall.c:483 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:694 pg_dump.c:711 pg_dumpall.c:370 +#: pg_dumpall.c:380 pg_dumpall.c:388 pg_dumpall.c:396 pg_dumpall.c:403 +#: pg_dumpall.c:413 pg_dumpall.c:488 pg_restore.c:307 pg_restore.c:323 +#: pg_restore.c:337 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." @@ -1354,274 +1482,284 @@ msgstr "Спробуйте \"%s --help\" для додаткової інфор msgid "out of on_exit_nicely slots" msgstr "перевищено межу on_exit_nicely слотів" -#: pg_dump.c:677 pg_dumpall.c:373 pg_restore.c:305 +#: pg_dump.c:709 pg_dumpall.c:378 pg_restore.c:321 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_dump.c:696 pg_restore.c:328 +#: pg_dump.c:728 pg_restore.c:344 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "параметри -s/--schema-only і -a/--data-only не можуть використовуватись разом" -#: pg_dump.c:699 +#: pg_dump.c:731 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "параметри -s/--schema-only і --include-foreign-data не можуть використовуватись разом" -#: pg_dump.c:702 +#: pg_dump.c:734 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "параметр --include-foreign-data не підтримується з паралельним резервним копіюванням" -#: pg_dump.c:705 pg_restore.c:331 +#: pg_dump.c:737 pg_restore.c:347 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "параметри -c/--clean і -a/--data-only не можна використовувати разом" -#: pg_dump.c:708 pg_dumpall.c:403 pg_restore.c:356 +#: pg_dump.c:740 pg_dumpall.c:408 pg_restore.c:375 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "параметр --if-exists потребує параметр -c/--clean" -#: pg_dump.c:715 +#: pg_dump.c:747 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "параметр --on-conflict-do-nothing вимагає опції --inserts, --rows-per-insert або --column-inserts" -#: pg_dump.c:744 +#: pg_dump.c:776 #, c-format msgid "unrecognized compression algorithm: \"%s\"" msgstr "нерозпізнаний алгоритм стискання: \"%s\"" -#: pg_dump.c:751 +#: pg_dump.c:783 #, c-format msgid "invalid compression specification: %s" msgstr "неприпустима специфікація стискання: %s" -#: pg_dump.c:764 +#: pg_dump.c:796 #, c-format msgid "compression option \"%s\" is not currently supported by pg_dump" msgstr "параметр стиснення \"%s\" в даний час не підтримується pg_dump" -#: pg_dump.c:776 +#: pg_dump.c:808 #, c-format msgid "parallel backup only supported by the directory format" msgstr "паралельне резервне копіювання підтримується лише з форматом \"каталог\"" -#: pg_dump.c:822 +#: pg_dump.c:854 #, c-format msgid "last built-in OID is %u" msgstr "останній вбудований OID %u" -#: pg_dump.c:831 +#: pg_dump.c:863 #, c-format msgid "no matching schemas were found" msgstr "відповідних схем не знайдено" -#: pg_dump.c:848 +#: pg_dump.c:880 #, c-format msgid "no matching tables were found" msgstr "відповідних таблиць не знайдено" -#: pg_dump.c:876 +#: pg_dump.c:908 #, c-format msgid "no matching extensions were found" msgstr "не знайдено відповідних розширень" -#: pg_dump.c:1056 +#: pg_dump.c:1092 #, c-format msgid "%s dumps a database as a text file or to other formats.\n\n" msgstr "%s зберігає резервну копію бази даних в текстовому файлі або в інших форматах.\n\n" -#: pg_dump.c:1057 pg_dumpall.c:630 pg_restore.c:433 +#: pg_dump.c:1093 pg_dumpall.c:635 pg_restore.c:452 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_dump.c:1058 +#: pg_dump.c:1094 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: pg_dump.c:1060 pg_dumpall.c:633 pg_restore.c:436 +#: pg_dump.c:1096 pg_dumpall.c:638 pg_restore.c:455 #, c-format msgid "\n" "General options:\n" msgstr "\n" "Основні налаштування:\n" -#: pg_dump.c:1061 +#: pg_dump.c:1097 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=FILENAME ім'я файлу виводу або каталогу\n" -#: pg_dump.c:1062 +#: pg_dump.c:1098 #, c-format msgid " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" " plain text (default))\n" msgstr " -F, --format=c|d|t|p формат файлу виводу (спеціальний, каталог, tar,\n" " звичайний текст (за замовчуванням))\n" -#: pg_dump.c:1064 +#: pg_dump.c:1100 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM використовувати ці паралельні завдання для вивантаження\n" -#: pg_dump.c:1065 pg_dumpall.c:635 +#: pg_dump.c:1101 pg_dumpall.c:640 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose детальний режим\n" -#: pg_dump.c:1066 pg_dumpall.c:636 +#: pg_dump.c:1102 pg_dumpall.c:641 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_dump.c:1067 +#: pg_dump.c:1103 #, c-format msgid " -Z, --compress=METHOD[:DETAIL]\n" " compress as specified\n" msgstr " -Z, --compress=METHOD[:DETAIL]\n" " стискати як вказано\n" -#: pg_dump.c:1069 pg_dumpall.c:637 +#: pg_dump.c:1105 pg_dumpall.c:642 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=TIMEOUT помилка після очікування TIMEOUT для блокування таблиці\n" -#: pg_dump.c:1070 pg_dumpall.c:664 +#: pg_dump.c:1106 pg_dumpall.c:670 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync не чекати безпечного збереження змін на диск\n" -#: pg_dump.c:1071 pg_dumpall.c:638 +#: pg_dump.c:1107 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод для синхронізації файлів на диск\n" + +#: pg_dump.c:1108 pg_dumpall.c:643 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: pg_dump.c:1073 pg_dumpall.c:639 +#: pg_dump.c:1110 pg_dumpall.c:644 #, c-format msgid "\n" "Options controlling the output content:\n" msgstr "\n" "Параметри, що керують вихідним вмістом:\n" -#: pg_dump.c:1074 pg_dumpall.c:640 +#: pg_dump.c:1111 pg_dumpall.c:645 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only вивантажити лише дані, без схеми\n" -#: pg_dump.c:1075 +#: pg_dump.c:1112 #, c-format msgid " -b, --large-objects include large objects in dump\n" msgstr " -b, --large-objects включити у вивантаження великі об'єкти\n" -#: pg_dump.c:1076 +#: pg_dump.c:1113 #, c-format msgid " --blobs (same as --large-objects, deprecated)\n" msgstr " --blobs (те саме, що --large-objects, застарілий)\n" -#: pg_dump.c:1077 +#: pg_dump.c:1114 #, c-format msgid " -B, --no-large-objects exclude large objects in dump\n" msgstr " -b, --no-large-objects виключити з вивантаження великі об'єкти\n" -#: pg_dump.c:1078 +#: pg_dump.c:1115 #, c-format msgid " --no-blobs (same as --no-large-objects, deprecated)\n" msgstr " --no-blobs (те саме, що --no-large-objects, застарілий)\n" -#: pg_dump.c:1079 pg_restore.c:447 +#: pg_dump.c:1116 pg_restore.c:466 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean видалити об'єкти бази даних перед перед повторним створенням\n" -#: pg_dump.c:1080 +#: pg_dump.c:1117 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr " -C, --create включити у вивантаження команди для створення бази даних\n" -#: pg_dump.c:1081 +#: pg_dump.c:1118 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATTERN вивантажити лише вказане(і) розширення\n" -#: pg_dump.c:1082 pg_dumpall.c:642 +#: pg_dump.c:1119 pg_dumpall.c:647 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=ENCODING вивантажити дані в кодуванні ENCODING\n" -#: pg_dump.c:1083 +#: pg_dump.c:1120 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=PATTERN вивантажити лише вказану схему(и)\n" -#: pg_dump.c:1084 +#: pg_dump.c:1121 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=PATTERN НЕ вивантажувати вказану схему(и)\n" -#: pg_dump.c:1085 +#: pg_dump.c:1122 #, c-format msgid " -O, --no-owner skip restoration of object ownership in\n" " plain-text format\n" msgstr " -O, --no-owner пропускати відновлення володіння об'єктами\n" " при використанні текстового формату\n" -#: pg_dump.c:1087 pg_dumpall.c:646 +#: pg_dump.c:1124 pg_dumpall.c:651 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only вивантажити лише схему, без даних\n" -#: pg_dump.c:1088 +#: pg_dump.c:1125 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME ім'я користувача, яке буде використовуватись у звичайних текстових форматах\n" -#: pg_dump.c:1089 +#: pg_dump.c:1126 #, c-format msgid " -t, --table=PATTERN dump only the specified table(s)\n" msgstr " -t, --table=PATTERN вивантажити лише вказані таблиці\n" -#: pg_dump.c:1090 +#: pg_dump.c:1127 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATTERN НЕ вивантажувати вказані таблиці\n" -#: pg_dump.c:1091 pg_dumpall.c:649 +#: pg_dump.c:1128 pg_dumpall.c:654 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges не вивантажувати права (надання/відкликання)\n" -#: pg_dump.c:1092 pg_dumpall.c:650 +#: pg_dump.c:1129 pg_dumpall.c:655 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade для використання лише утилітами оновлення\n" -#: pg_dump.c:1093 pg_dumpall.c:651 +#: pg_dump.c:1130 pg_dumpall.c:656 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr " --column-inserts вивантажити дані у вигляді команд INSERT з іменами стовпців\n" -#: pg_dump.c:1094 pg_dumpall.c:652 +#: pg_dump.c:1131 pg_dumpall.c:657 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr " --disable-dollar-quoting вимкнути цінову пропозицію $, використовувати SQL стандартну цінову пропозицію\n" -#: pg_dump.c:1095 pg_dumpall.c:653 pg_restore.c:464 +#: pg_dump.c:1132 pg_dumpall.c:658 pg_restore.c:483 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers вимкнути тригери лише під час відновлення даних\n" -#: pg_dump.c:1096 +#: pg_dump.c:1133 #, c-format msgid " --enable-row-security enable row security (dump only content user has\n" " access to)\n" msgstr " --enable-row-security активувати захист на рівні рядків (вивантажити лише той вміст, до якого\n" " користувач має доступ)\n" -#: pg_dump.c:1098 +#: pg_dump.c:1135 +#, c-format +msgid " --exclude-extension=PATTERN do NOT dump the specified extension(s)\n" +msgstr " --exclude-extension=PATTERN НЕ вивантажувати вказане розширення\n" + +#: pg_dump.c:1136 #, c-format msgid " --exclude-table-and-children=PATTERN\n" " do NOT dump the specified table(s), including\n" @@ -1630,12 +1768,12 @@ msgstr " --exclude-table-and-children=PATTERN\n" " не вивантажувати зазначені таблиці, включно\n" " з дочірніми та секціонованими таблицями\n" -#: pg_dump.c:1101 +#: pg_dump.c:1139 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=PATTERN НЕ вивантажувати дані вказаних таблиць\n" -#: pg_dump.c:1102 +#: pg_dump.c:1140 #, c-format msgid " --exclude-table-data-and-children=PATTERN\n" " do NOT dump data for the specified table(s),\n" @@ -1644,17 +1782,24 @@ msgstr " --exclude-table-data-and-children=PATTERN\n" " не вивантажувати дані зазначених таблиць,\n" " включно з дочірніми та секціонованими таблицями\n" -#: pg_dump.c:1105 pg_dumpall.c:655 +#: pg_dump.c:1143 pg_dumpall.c:660 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM змінити параметр за замовчуванням для extra_float_digits\n" -#: pg_dump.c:1106 pg_dumpall.c:656 pg_restore.c:466 +#: pg_dump.c:1144 +#, c-format +msgid " --filter=FILENAME include or exclude objects and data from dump\n" +" based on expressions in FILENAME\n" +msgstr " --filter=FILENAME включати або виключати об'єкти та дані з дампу\n" +" на основі виразів у FILENAME\n" + +#: pg_dump.c:1146 pg_dumpall.c:662 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists використовувати IF EXISTS під час видалення об'єктів\n" -#: pg_dump.c:1107 +#: pg_dump.c:1147 #, c-format msgid " --include-foreign-data=PATTERN\n" " include data of foreign tables on foreign\n" @@ -1663,101 +1808,101 @@ msgstr " --include-foreign-data=ШАБЛОН\n" " включають дані підлеглих таблиць на підлеглих\n" " сервери, що відповідають ШАБЛОНУ\n" -#: pg_dump.c:1110 pg_dumpall.c:657 +#: pg_dump.c:1150 pg_dumpall.c:663 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts вивантажити дані у вигляді команд INSERT, не COPY\n" -#: pg_dump.c:1111 pg_dumpall.c:658 +#: pg_dump.c:1151 pg_dumpall.c:664 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root завантажувати секції через головну таблицю\n" -#: pg_dump.c:1112 pg_dumpall.c:659 +#: pg_dump.c:1152 pg_dumpall.c:665 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments не вивантажувати коментарі\n" -#: pg_dump.c:1113 pg_dumpall.c:660 +#: pg_dump.c:1153 pg_dumpall.c:666 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications не вивантажувати публікації\n" -#: pg_dump.c:1114 pg_dumpall.c:662 +#: pg_dump.c:1154 pg_dumpall.c:668 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels не вивантажувати завдання міток безпеки\n" -#: pg_dump.c:1115 pg_dumpall.c:663 +#: pg_dump.c:1155 pg_dumpall.c:669 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions не вивантажувати підписки\n" -#: pg_dump.c:1116 pg_dumpall.c:665 +#: pg_dump.c:1156 pg_dumpall.c:671 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method не вивантажувати табличні методи доступу\n" -#: pg_dump.c:1117 pg_dumpall.c:666 +#: pg_dump.c:1157 pg_dumpall.c:672 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces не вивантажувати призначення табличних просторів\n" -#: pg_dump.c:1118 pg_dumpall.c:667 +#: pg_dump.c:1158 pg_dumpall.c:673 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression не вивантажувати методи стиснення TOAST\n" -#: pg_dump.c:1119 pg_dumpall.c:668 +#: pg_dump.c:1159 pg_dumpall.c:674 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data не вивантажувати дані таблиць, які не журналюються\n" -#: pg_dump.c:1120 pg_dumpall.c:669 +#: pg_dump.c:1160 pg_dumpall.c:675 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing додавати ON CONFLICT DO NOTHING до команди INSERT\n" -#: pg_dump.c:1121 pg_dumpall.c:670 +#: pg_dump.c:1161 pg_dumpall.c:676 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr " --quote-all-identifiers укладати в лапки всі ідентифікатори, а не тільки ключові слова\n" -#: pg_dump.c:1122 pg_dumpall.c:671 +#: pg_dump.c:1162 pg_dumpall.c:677 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NROWS кількість рядків для INSERT; вимагає параметру --inserts\n" -#: pg_dump.c:1123 +#: pg_dump.c:1163 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr " --section=SECTION вивантажити вказану секцію (pre-data, data або post-data)\n" -#: pg_dump.c:1124 +#: pg_dump.c:1164 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable чекати коли вивантаження можна буде виконати без аномалій\n" -#: pg_dump.c:1125 +#: pg_dump.c:1165 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT використовувати під час вивантаження вказаний знімок\n" -#: pg_dump.c:1126 pg_restore.c:476 +#: pg_dump.c:1166 pg_restore.c:497 #, c-format msgid " --strict-names require table and/or schema include patterns to\n" " match at least one entity each\n" msgstr " --strict-names потребувати, щоб при вказівці шаблону включення\n" " таблиці і/або схеми йому відповідав мінімум один об'єкт\n" -#: pg_dump.c:1128 +#: pg_dump.c:1168 #, c-format msgid " --table-and-children=PATTERN dump only the specified table(s), including\n" " child and partition tables\n" msgstr " --table-and-children=PATTERN вивантажувати лише зазначені таблиці,\n" " включно з дочірніми та секціонованими таблицями\n" -#: pg_dump.c:1130 pg_dumpall.c:672 pg_restore.c:478 +#: pg_dump.c:1170 pg_dumpall.c:678 pg_restore.c:500 #, c-format msgid " --use-set-session-authorization\n" " use SET SESSION AUTHORIZATION commands instead of\n" @@ -1766,49 +1911,49 @@ msgstr " --use-set-session-authorization\n" " щоб встановити власника, використати команди SET SESSION AUTHORIZATION,\n" " замість команд ALTER OWNER\n" -#: pg_dump.c:1134 pg_dumpall.c:676 pg_restore.c:482 +#: pg_dump.c:1174 pg_dumpall.c:682 pg_restore.c:504 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: pg_dump.c:1135 +#: pg_dump.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAME ім'я бази даних для вивантаження\n" -#: pg_dump.c:1136 pg_dumpall.c:678 pg_restore.c:483 +#: pg_dump.c:1176 pg_dumpall.c:684 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хост серверу баз даних або каталог сокетів\n" -#: pg_dump.c:1137 pg_dumpall.c:680 pg_restore.c:484 +#: pg_dump.c:1177 pg_dumpall.c:686 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT номер порту сервера бази даних\n" -#: pg_dump.c:1138 pg_dumpall.c:681 pg_restore.c:485 +#: pg_dump.c:1178 pg_dumpall.c:687 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME підключатись як вказаний користувач бази даних\n" -#: pg_dump.c:1139 pg_dumpall.c:682 pg_restore.c:486 +#: pg_dump.c:1179 pg_dumpall.c:688 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: pg_dump.c:1140 pg_dumpall.c:683 pg_restore.c:487 +#: pg_dump.c:1180 pg_dumpall.c:689 pg_restore.c:509 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password запитувати пароль завжди (повинно траплятись автоматично)\n" -#: pg_dump.c:1141 pg_dumpall.c:684 +#: pg_dump.c:1181 pg_dumpall.c:690 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLENAME виконати SET ROLE до вивантаження\n" -#: pg_dump.c:1143 +#: pg_dump.c:1183 #, c-format msgid "\n" "If no database name is supplied, then the PGDATABASE environment\n" @@ -1816,234 +1961,239 @@ msgid "\n" msgstr "\n" "Якщо ім'я бази даних не вказано, тоді використовується значення змінної середовища PGDATABASE.\n\n" -#: pg_dump.c:1145 pg_dumpall.c:688 pg_restore.c:494 +#: pg_dump.c:1185 pg_dumpall.c:694 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Повідомляти про помилки на <%s>.\n" -#: pg_dump.c:1146 pg_dumpall.c:689 pg_restore.c:495 +#: pg_dump.c:1186 pg_dumpall.c:695 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_dump.c:1165 pg_dumpall.c:513 +#: pg_dump.c:1205 pg_dumpall.c:518 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "вказано неприпустиме клієнтське кодування \"%s\"" -#: pg_dump.c:1303 +#: pg_dump.c:1352 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "паралельні вивантаження для резервних серверів не підтримуються цією версію сервера" -#: pg_dump.c:1368 +#: pg_dump.c:1417 #, c-format msgid "invalid output format \"%s\" specified" msgstr "вказано неприпустимий формат виводу \"%s\"" -#: pg_dump.c:1409 pg_dump.c:1465 pg_dump.c:1518 pg_dumpall.c:1449 +#: pg_dump.c:1458 pg_dump.c:1514 pg_dump.c:1567 pg_dumpall.c:1467 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: pg_dump.c:1417 +#: pg_dump.c:1466 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "не знайдено відповідних схем для візерунку \"%s\"" -#: pg_dump.c:1470 +#: pg_dump.c:1519 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "не знайдено відповідних розширень для шаблону \"%s\"" -#: pg_dump.c:1523 +#: pg_dump.c:1572 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "не знайдено відповідних підлеглих серверів для шаблону \"%s\"" -#: pg_dump.c:1594 +#: pg_dump.c:1643 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: pg_dump.c:1616 +#: pg_dump.c:1665 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "не знайдено відповідних таблиць для візерунку\"%s\"" -#: pg_dump.c:1643 +#: pg_dump.c:1692 #, c-format msgid "You are currently not connected to a database." msgstr "На даний момент ви від'єднанні від бази даних." -#: pg_dump.c:1646 +#: pg_dump.c:1695 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: pg_dump.c:2079 +#: pg_dump.c:2154 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "вивантажування змісту таблиці \"%s.%s\"" -#: pg_dump.c:2185 +#: pg_dump.c:2264 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Помилка вивантажування змісту таблиці \"%s\": помилка в PQgetCopyData()." -#: pg_dump.c:2186 pg_dump.c:2196 +#: pg_dump.c:2265 pg_dump.c:2275 #, c-format msgid "Error message from server: %s" msgstr "Повідомлення про помилку від сервера: %s" -#: pg_dump.c:2187 pg_dump.c:2197 +#: pg_dump.c:2266 pg_dump.c:2276 #, c-format msgid "Command was: %s" msgstr "Команда була: %s" -#: pg_dump.c:2195 +#: pg_dump.c:2274 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Помилка вивантажування змісту таблиці \"%s\": помилка в PQgetResult(). " -#: pg_dump.c:2277 +#: pg_dump.c:2365 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "неправильна кількість полів отриманих з таблиці \"%s\"" -#: pg_dump.c:2975 +#: pg_dump.c:3067 #, c-format msgid "saving database definition" msgstr "збереження визначення бази даних" -#: pg_dump.c:3080 +#: pg_dump.c:3176 #, c-format msgid "unrecognized locale provider: %s" msgstr "нерозпізнаний постачальник локалів: %s" -#: pg_dump.c:3431 +#: pg_dump.c:3537 #, c-format msgid "saving encoding = %s" msgstr "збереження кодування = %s" -#: pg_dump.c:3456 +#: pg_dump.c:3562 #, c-format -msgid "saving standard_conforming_strings = %s" -msgstr "збереження standard_conforming_strings = %s" +msgid "saving \"standard_conforming_strings = %s\"" +msgstr "збереження \"standard_conforming_strings = %s\"" -#: pg_dump.c:3495 +#: pg_dump.c:3601 #, c-format msgid "could not parse result of current_schemas()" msgstr "не вдалося проаналізувати результат current_schemas()" -#: pg_dump.c:3514 +#: pg_dump.c:3620 #, c-format -msgid "saving search_path = %s" -msgstr "збереження search_path = %s" +msgid "saving \"search_path = %s\"" +msgstr "збереження \"search_path = %s\"" -#: pg_dump.c:3551 +#: pg_dump.c:3656 #, c-format msgid "reading large objects" msgstr "читання великих об’єктів" -#: pg_dump.c:3689 +#: pg_dump.c:3877 #, c-format -msgid "saving large objects" -msgstr "збереження великих об’єктів" +msgid "saving large objects \"%s\"" +msgstr "збереження великих об’єктів \"%s\"" -#: pg_dump.c:3730 +#: pg_dump.c:3898 #, c-format msgid "error reading large object %u: %s" msgstr "помилка читання великих об’єктів %u: %s" -#: pg_dump.c:3836 +#: pg_dump.c:4001 #, c-format msgid "reading row-level security policies" msgstr "читання політик безпеки на рівні рядків" -#: pg_dump.c:3977 +#: pg_dump.c:4142 #, c-format msgid "unexpected policy command type: %c" msgstr "неочікуваний тип команди в політиці: %c" -#: pg_dump.c:4427 pg_dump.c:4771 pg_dump.c:11998 pg_dump.c:17908 -#: pg_dump.c:17910 pg_dump.c:18531 +#: pg_dump.c:4592 pg_dump.c:5150 pg_dump.c:12362 pg_dump.c:18247 +#: pg_dump.c:18249 pg_dump.c:18871 #, c-format msgid "could not parse %s array" msgstr "не вдалося аналізувати масив %s" -#: pg_dump.c:4616 +#: pg_dump.c:4806 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "підписки не вивантажені через те, що чинний користувач не є суперкористувачем" -#: pg_dump.c:5163 +#: pg_dump.c:5012 +#, c-format +msgid "subscription with OID %u does not exist" +msgstr "підписки %u з OID не існує" + +#: pg_dump.c:5019 +#, c-format +msgid "failed sanity check, table with OID %u not found" +msgstr "помилка цілісності, таблиця з OID %u не знайдена" + +#: pg_dump.c:5582 #, c-format msgid "could not find parent extension for %s %s" msgstr "не вдалося знайти батьківський елемент для %s %s" -#: pg_dump.c:5308 +#: pg_dump.c:5727 #, c-format msgid "schema with OID %u does not exist" msgstr "схема з OID %u не існує" -#: pg_dump.c:6790 pg_dump.c:17172 +#: pg_dump.c:7209 pg_dump.c:17618 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "помилка цілісності, за OID %u не вдалося знайти батьківську таблицю послідовності з OID %u" -#: pg_dump.c:6933 +#: pg_dump.c:7352 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "помилка цілісності, OID %u не знайдено в таблиці pg_partitioned_table" -#: pg_dump.c:7164 pg_dump.c:7431 pg_dump.c:7902 pg_dump.c:8566 pg_dump.c:8685 -#: pg_dump.c:8833 +#: pg_dump.c:7583 pg_dump.c:7857 pg_dump.c:8304 pg_dump.c:8918 pg_dump.c:9040 +#: pg_dump.c:9188 #, c-format msgid "unrecognized table OID %u" msgstr "нерозпізнаний OID таблиці %u" -#: pg_dump.c:7168 +#: pg_dump.c:7587 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "неочікувані дані індексу для таблиці \"%s\"" -#: pg_dump.c:7663 +#: pg_dump.c:8089 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "помилка цілісності, за OID %u не вдалося знайти батьківську таблицю для запису pg_rewrite з OID %u" -#: pg_dump.c:7954 -#, c-format -msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" -msgstr "запит не повернув ім'я цільової таблиці для тригера зовнішнього ключа \"%s\" в таблиці \"%s\" (OID цільової таблиці: %u)" - -#: pg_dump.c:8570 +#: pg_dump.c:8922 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "неочікувані дані стовпця для таблиці \"%s\"" -#: pg_dump.c:8599 +#: pg_dump.c:8951 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "неприпустима нумерація стовпців у таблиці \"%s\"" -#: pg_dump.c:8647 +#: pg_dump.c:9002 #, c-format msgid "finding table default expressions" msgstr "пошук виразів за замовчуванням для таблиці" -#: pg_dump.c:8689 +#: pg_dump.c:9044 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "неприпустиме значення adnum %d для таблиці \"%s\"" -#: pg_dump.c:8783 +#: pg_dump.c:9138 #, c-format msgid "finding table check constraints" msgstr "пошук перевірочних обмежень таблиці" -#: pg_dump.c:8837 +#: pg_dump.c:9192 #, 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" @@ -2052,172 +2202,178 @@ msgstr[1] "очікувалось %d обмеження-перевірки дл msgstr[2] "очікувалось %d обмежень-перевірок для таблиці \"%s\", але знайдено %d" msgstr[3] "очікувалось %d обмежень-перевірок для таблиці \"%s\", але знайдено %d" -#: pg_dump.c:8841 +#: pg_dump.c:9196 #, c-format msgid "The system catalogs might be corrupted." msgstr "Системні каталоги можуть бути пошкоджені." -#: pg_dump.c:9531 +#: pg_dump.c:9886 #, c-format msgid "role with OID %u does not exist" msgstr "роль з OID %u не існує" -#: pg_dump.c:9643 pg_dump.c:9672 +#: pg_dump.c:9998 pg_dump.c:10027 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "непідтримуваний запис в pg_init_privs: %u %u %d" -#: pg_dump.c:10493 +#: pg_dump.c:10574 +#, c-format +msgid "missing metadata for large objects \"%s\"" +msgstr "відсутні метадані для великих об'єктів \"%s\"" + +#: pg_dump.c:10857 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "typtype типу даних \"%s\" має неприпустимий вигляд" -#: pg_dump.c:12067 +#: pg_dump.c:12431 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "нерозпізнане значення provolatile для функції \"%s\"" -#: pg_dump.c:12117 pg_dump.c:13999 +#: pg_dump.c:12481 pg_dump.c:14377 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "нерозпізнане значення proparallel для функції \"%s\"" -#: pg_dump.c:12247 pg_dump.c:12353 pg_dump.c:12360 +#: pg_dump.c:12611 pg_dump.c:12717 pg_dump.c:12724 #, c-format msgid "could not find function definition for function with OID %u" msgstr "не вдалося знайти визначення функції для функції з OID %u" -#: pg_dump.c:12286 +#: pg_dump.c:12650 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "неприпустиме значення в полі pg_cast.castfunc або pg_cast.castmethod" -#: pg_dump.c:12289 +#: pg_dump.c:12653 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "неприпустиме значення в полі pg_cast.castmethod" -#: pg_dump.c:12379 +#: pg_dump.c:12743 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "неприпустиме визначення перетворення, як мінімум одне з trffromsql і trftosql повинно бути ненульовим" -#: pg_dump.c:12396 +#: pg_dump.c:12760 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "неприпустиме значення в полі pg_transform.trffromsql" -#: pg_dump.c:12417 +#: pg_dump.c:12781 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "неприпустиме значення в полі pg_transform.trftosql" -#: pg_dump.c:12562 +#: pg_dump.c:12926 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "постфіксні оператори більше не підтримуються (оператор \"%s\")" -#: pg_dump.c:12732 +#: pg_dump.c:13096 #, c-format msgid "could not find operator with OID %s" msgstr "не вдалося знайти оператора з OID %s" -#: pg_dump.c:12800 +#: pg_dump.c:13164 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "неприпустимий тип \"%c\" методу доступу \"%s\"" -#: pg_dump.c:13469 pg_dump.c:13528 +#: pg_dump.c:13838 pg_dump.c:13906 #, c-format msgid "unrecognized collation provider: %s" msgstr "нерозпізнаний постачальник правил сортування: %s" -#: pg_dump.c:13478 pg_dump.c:13487 pg_dump.c:13497 pg_dump.c:13512 +#: pg_dump.c:13847 pg_dump.c:13854 pg_dump.c:13865 pg_dump.c:13875 +#: pg_dump.c:13890 #, c-format msgid "invalid collation \"%s\"" msgstr "неприпустиме правило сортування \"%s\"" -#: pg_dump.c:13918 +#: pg_dump.c:14296 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "нерозпізнане значення aggfinalmodify для агрегату \"%s\"" -#: pg_dump.c:13974 +#: pg_dump.c:14352 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "нерозпізнане значення aggmfinalmodify для агрегату \"%s\"" -#: pg_dump.c:14691 +#: pg_dump.c:15069 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "нерозпізнаний тип об’єкта у стандартному праві: %d" -#: pg_dump.c:14707 +#: pg_dump.c:15085 #, c-format msgid "could not parse default ACL list (%s)" msgstr "не вдалося проаналізувати стандартний ACL список (%s)" -#: pg_dump.c:14789 +#: pg_dump.c:15169 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "не вдалося аналізувати початковий список ACL (%s) або за замовченням (%s) для об'єкта \"%s\" (%s)" -#: pg_dump.c:14814 +#: pg_dump.c:15194 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "не вдалося аналізувати список ACL (%s) або за замовчуванням (%s) для об'єкту \"%s\" (%s)" -#: pg_dump.c:15355 +#: pg_dump.c:15737 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "запит на отримання визначення перегляду \"%s\" не повернув дані" -#: pg_dump.c:15358 +#: pg_dump.c:15740 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "запит на отримання визначення перегляду \"%s\" повернув більше, ніж одне визначення" -#: pg_dump.c:15365 +#: pg_dump.c:15747 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "визначення перегляду \"%s\" пусте (довжина нуль)" -#: pg_dump.c:15449 +#: pg_dump.c:15832 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS більше не підтримується (таблиця\"%s\")" -#: pg_dump.c:16373 +#: pg_dump.c:16819 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "неприпустиме число стовпців %d для таблиці \"%s\"" -#: pg_dump.c:16451 +#: pg_dump.c:16897 #, c-format msgid "could not parse index statistic columns" msgstr "не вдалося проаналізувати стовпці статистики індексів" -#: pg_dump.c:16453 +#: pg_dump.c:16899 #, c-format msgid "could not parse index statistic values" msgstr "не вдалося проаналізувати значення статистики індексів" -#: pg_dump.c:16455 +#: pg_dump.c:16901 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "невідповідна кількість стовпців і значень для статистики індексів" -#: pg_dump.c:16671 +#: pg_dump.c:17116 #, c-format msgid "missing index for constraint \"%s\"" msgstr "пропущено індекс для обмеження \"%s\"" -#: pg_dump.c:16906 +#: pg_dump.c:17351 #, c-format msgid "unrecognized constraint type: %c" msgstr "нерозпізнаний тип обмеження: %c" -#: pg_dump.c:17007 pg_dump.c:17236 +#: pg_dump.c:17452 pg_dump.c:17682 #, 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)" @@ -2226,67 +2382,63 @@ msgstr[1] "запит на отримання даних послідовнос msgstr[2] "запит на отримання даних послідовності \"%s\" повернув %d рядків (очікувалося 1)" msgstr[3] "запит на отримання даних послідовності \"%s\" повернув %d рядків (очікувалося 1)" -#: pg_dump.c:17039 +#: pg_dump.c:17484 #, c-format msgid "unrecognized sequence type: %s" msgstr "нерозпізнаний тип послідовності: %s" -#: pg_dump.c:17328 -#, c-format -msgid "unexpected tgtype value: %d" -msgstr "неочікуване значення tgtype: %d" - -#: pg_dump.c:17400 -#, c-format -msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" -msgstr "неприпустимий рядок аргументу (%s) для тригера \"%s\" у таблиці \"%s\"" - -#: pg_dump.c:17669 +#: pg_dump.c:17999 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "помилка запиту на отримання правила \"%s\" для таблиці \"%s\": повернено неправильне число рядків " -#: pg_dump.c:17822 +#: pg_dump.c:18152 #, c-format msgid "could not find referenced extension %u" msgstr "не вдалося знайти згадане розширення %u" -#: pg_dump.c:17912 +#: pg_dump.c:18251 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "невідповідна кількість конфігурацій і умов для розширення" -#: pg_dump.c:18044 +#: pg_dump.c:18383 #, c-format msgid "reading dependency data" msgstr "читання даних залежності" -#: pg_dump.c:18130 +#: pg_dump.c:18469 #, c-format msgid "no referencing object %u %u" msgstr "немає об’єкту посилання %u %u" -#: pg_dump.c:18141 +#: pg_dump.c:18480 #, c-format msgid "no referenced object %u %u" msgstr "немає посилання на об'єкт %u %u" -#: pg_dump_sort.c:422 +#: pg_dump.c:18905 pg_dump.c:18943 pg_dumpall.c:1962 pg_restore.c:551 +#: pg_restore.c:597 +#, c-format +msgid "%s filter for \"%s\" is not allowed" +msgstr "фільтр %s для \"%s\" не дозволений" + +#: pg_dump_sort.c:424 #, c-format msgid "invalid dumpId %d" msgstr "неприпустимий dumpId %d" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:430 #, c-format msgid "invalid dependency %d" msgstr "неприпустима залежність %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:594 #, c-format msgid "could not identify dependency loop" msgstr "не вдалося ідентифікувати цикл залежності" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1209 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" @@ -2295,129 +2447,134 @@ msgstr[1] "у наступних таблицях зациклені зовні msgstr[2] "у наступних таблицях зациклені зовнішні ключі:" msgstr[3] "у наступних таблицях зациклені зовнішні ключі:" -#: pg_dump_sort.c:1281 +#: pg_dump_sort.c:1214 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Ви не зможете відновити дамп без використання --disable-triggers або тимчасово розірвати обмеження." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1215 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Можливо, використання повного вивантажування замість --data-only вивантажування допоможе уникнути цієї проблеми." -#: pg_dump_sort.c:1294 +#: pg_dump_sort.c:1227 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "не вдалося вирішити цикл залежності серед цих елементів:" -#: pg_dumpall.c:230 +#: pg_dumpall.c:231 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"" -#: pg_dumpall.c:233 +#: pg_dumpall.c:234 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s" -#: pg_dumpall.c:382 +#: pg_dumpall.c:387 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "параметр --exclude-database не можна використовувати разом з -g/--globals-only, -r/--roles-only або -t/--tablespaces-only" -#: pg_dumpall.c:390 +#: pg_dumpall.c:395 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "параметри -g/--globals-only і -r/--roles-only не можна використовувати разом" -#: pg_dumpall.c:397 +#: pg_dumpall.c:402 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "параметри -g/--globals-only і -t/--tablespaces-only не можна використовувати разом" -#: pg_dumpall.c:407 +#: pg_dumpall.c:412 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "параметри -r/--roles-only і -t/--tablespaces-only не можна використовувати разом" -#: pg_dumpall.c:469 pg_dumpall.c:1750 +#: pg_dumpall.c:474 pg_dumpall.c:1771 #, c-format msgid "could not connect to database \"%s\"" msgstr "не вдалося зв'язатися з базою даних \"%s\"" -#: pg_dumpall.c:481 +#: pg_dumpall.c:486 #, c-format msgid "could not connect to databases \"postgres\" or \"template1\"\n" "Please specify an alternative database." msgstr "не вдалося зв'язатися з базами даних \"postgres\" або \"template1\"\n" "Будь ласка, вкажіть альтернативну базу даних." -#: pg_dumpall.c:629 +#: pg_dumpall.c:634 #, c-format msgid "%s extracts a PostgreSQL database cluster into an SQL script file.\n\n" msgstr "%s експортує кластер баз даних PostgreSQL до SQL-скрипту.\n\n" -#: pg_dumpall.c:631 +#: pg_dumpall.c:636 #, c-format msgid " %s [OPTION]...\n" msgstr " %s: [OPTION]...\n" -#: pg_dumpall.c:634 +#: pg_dumpall.c:639 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=FILENAME ім'я вихідного файлу\n" -#: pg_dumpall.c:641 +#: pg_dumpall.c:646 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean очистити (видалити) бази даних перед відтворенням\n" -#: pg_dumpall.c:643 +#: pg_dumpall.c:648 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr " -g, --globals-only вивантажувати лише глобальні об’єкти, не бази даних\n" -#: pg_dumpall.c:644 pg_restore.c:456 +#: pg_dumpall.c:649 pg_restore.c:475 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner пропускається відновлення форми власності об’єктом\n" -#: pg_dumpall.c:645 +#: pg_dumpall.c:650 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr " -r, --roles-only вивантажувати лише ролі, не бази даних або табличні простори\n" -#: pg_dumpall.c:647 +#: pg_dumpall.c:652 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAME ім'я суперкористувача для використання при вивантажуванні\n" -#: pg_dumpall.c:648 +#: pg_dumpall.c:653 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr " -t, --tablespaces-only вивантажувати лише табличні простори, не бази даних або ролі\n" -#: pg_dumpall.c:654 +#: pg_dumpall.c:659 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=PATTERN виключити бази даних, ім'я яких відповідає PATTERN\n" #: pg_dumpall.c:661 #, c-format +msgid " --filter=FILENAME exclude databases based on expressions in FILENAME\n" +msgstr " --filter=FILENAME виключити бази даних, на основі виразів у FILENAME\n" + +#: pg_dumpall.c:667 +#, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords не вивантажувати паролі для ролей\n" -#: pg_dumpall.c:677 +#: pg_dumpall.c:683 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CONNSTR підключення з використанням рядку підключення \n" -#: pg_dumpall.c:679 +#: pg_dumpall.c:685 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAME альтернативна база даних за замовчуванням\n" -#: pg_dumpall.c:686 +#: pg_dumpall.c:692 #, c-format msgid "\n" "If -f/--file is not used, then the SQL script will be written to the standard\n" @@ -2425,277 +2582,298 @@ msgid "\n" msgstr "\n" "Якщо -f/--file не використовується, тоді SQL- сценарій буде записаний до стандартного виводу.\n\n" -#: pg_dumpall.c:828 +#: pg_dumpall.c:837 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "пропущено ім’я ролі, що починається з \"pg_\" (%s)" -#: pg_dumpall.c:1050 +#: pg_dumpall.c:1059 #, c-format msgid "could not find a legal dump ordering for memberships in role \"%s\"" msgstr "не вдалося знайти правильний порядок вивантаження членства в ролі \"%s\"" -#: pg_dumpall.c:1185 +#: pg_dumpall.c:1194 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "не вдалося аналізувати список ACL (%s) для параметра \"%s\"" -#: pg_dumpall.c:1303 +#: pg_dumpall.c:1321 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "не вдалося аналізувати список ACL (%s) для табличного простору \"%s\"" -#: pg_dumpall.c:1510 +#: pg_dumpall.c:1528 #, c-format msgid "excluding database \"%s\"" msgstr "виключаємо базу даних \"%s\"" -#: pg_dumpall.c:1514 +#: pg_dumpall.c:1532 #, c-format msgid "dumping database \"%s\"" msgstr "вивантажуємо базу даних \"%s\"" -#: pg_dumpall.c:1545 +#: pg_dumpall.c:1563 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "помилка pg_dump для бази даних \"%s\", завершення роботи" -#: pg_dumpall.c:1551 +#: pg_dumpall.c:1569 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "не вдалося повторно відкрити файл виводу \"%s\": %m" -#: pg_dumpall.c:1592 +#: pg_dumpall.c:1613 #, c-format msgid "running \"%s\"" msgstr "виконується \"%s\"" -#: pg_dumpall.c:1793 +#: pg_dumpall.c:1814 #, c-format msgid "could not get server version" msgstr "не вдалося отримати версію серверу" -#: pg_dumpall.c:1796 +#: pg_dumpall.c:1817 #, c-format msgid "could not parse server version \"%s\"" msgstr "не вдалося аналізувати версію серверу \"%s\"" -#: pg_dumpall.c:1866 pg_dumpall.c:1889 +#: pg_dumpall.c:1887 pg_dumpall.c:1910 #, c-format msgid "executing %s" msgstr "виконується %s" -#: pg_restore.c:313 +#: pg_dumpall.c:1982 +msgid "unsupported filter object" +msgstr "непідтримуваний об'єкт фільтру" + +#: pg_restore.c:329 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "необхідно вказати один з -d/--dbname або -f/--file" -#: pg_restore.c:320 +#: pg_restore.c:336 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "параметри -d/--dbname і -f/--file не можуть використовуватись разом" -#: pg_restore.c:338 +#: pg_restore.c:350 +#, c-format +msgid "options -1/--single-transaction and --transaction-size cannot be used together" +msgstr "параметри -1/--single-transaction і --transaction-size не можуть використовуватись разом" + +#: pg_restore.c:357 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "параметри -C/--create і -1/--single-transaction не можуть використовуватись разом" -#: pg_restore.c:342 +#: pg_restore.c:361 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "параметр --single-transaction допускається лише з одним завданням" -#: pg_restore.c:380 +#: pg_restore.c:399 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "нерозпізнаний формат архіву \"%s\"; будь ласка, вкажіть \"c\", \"d\" або \"t\"" -#: pg_restore.c:419 +#: pg_restore.c:438 #, c-format msgid "errors ignored on restore: %d" msgstr "при відновленні проігноровано помилок: %d" -#: pg_restore.c:432 +#: pg_restore.c:451 #, c-format msgid "%s restores a PostgreSQL database from an archive created by pg_dump.\n\n" msgstr "%s відновлює базу даних PostgreSQL з архіву, створеного командою pg_dump.\n\n" -#: pg_restore.c:434 +#: pg_restore.c:453 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPTION]... [FILE]\n" -#: pg_restore.c:437 +#: pg_restore.c:456 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAME підключитись до вказаної бази даних\n" -#: pg_restore.c:438 +#: pg_restore.c:457 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILENAME ім'я файлу виводу (- для stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:458 #, c-format msgid " -F, --format=c|d|t backup file format (should be automatic)\n" msgstr " -F, --format=c|d|t формат файлу резервної копії (розпізнається автоматично)\n" -#: pg_restore.c:440 +#: pg_restore.c:459 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list вивести короткий зміст архіву\n" -#: pg_restore.c:441 +#: pg_restore.c:460 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose детальний режим\n" -#: pg_restore.c:442 +#: pg_restore.c:461 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_restore.c:443 +#: pg_restore.c:462 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: pg_restore.c:445 +#: pg_restore.c:464 #, c-format msgid "\n" "Options controlling the restore:\n" msgstr "\n" "Параметри, що керують відновленням:\n" -#: pg_restore.c:446 +#: pg_restore.c:465 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only відновити лише дані, без схеми\n" -#: pg_restore.c:448 +#: pg_restore.c:467 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create створити цільову базу даних\n" -#: pg_restore.c:449 +#: pg_restore.c:468 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error вийти при помилці, продовжувати за замовчуванням\n" -#: pg_restore.c:450 +#: pg_restore.c:469 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME відновити вказаний індекс\n" -#: pg_restore.c:451 +#: pg_restore.c:470 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM щоб виконати відновлення, використайте ці паралельні завдання\n" -#: pg_restore.c:452 +#: pg_restore.c:471 #, c-format msgid " -L, --use-list=FILENAME use table of contents from this file for\n" " selecting/ordering output\n" msgstr " -L, --use-list=FILENAME використовувати зміст з цього файлу для \n" " вибору/упорядкування даних\n" -#: pg_restore.c:454 +#: pg_restore.c:473 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME відновити об'єкти лише в цій схемі\n" -#: pg_restore.c:455 +#: pg_restore.c:474 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAME не відновлювати об'єкти в цій схемі\n" -#: pg_restore.c:457 +#: pg_restore.c:476 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAME(args) відновити вказану функцію\n" -#: pg_restore.c:458 +#: pg_restore.c:477 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only відновити лише схему, без даних\n" -#: pg_restore.c:459 +#: pg_restore.c:478 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAME ім'я суперкористувача для вимкнення тригерів\n" -#: pg_restore.c:460 +#: pg_restore.c:479 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAME відновити вказане відношення (таблицю, подання і т. д.)\n" -#: pg_restore.c:461 +#: pg_restore.c:480 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME відновити вказаний тригер\n" -#: pg_restore.c:462 +#: pg_restore.c:481 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges пропустити відновлення прав доступу (grant/revoke)\n" -#: pg_restore.c:463 +#: pg_restore.c:482 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction відновити в одній транзакції\n" -#: pg_restore.c:465 +#: pg_restore.c:484 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security активувати захист на рівні рядків\n" -#: pg_restore.c:467 +#: pg_restore.c:485 +#, c-format +msgid " --filter=FILENAME restore or skip objects based on expressions\n" +" in FILENAME\n" +msgstr " --filter=FILENAME відновлювати або пропускати об'єкти на основі виразів\n" +" у FILENAME\n" + +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments не відновлювати коментарі\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid " --no-data-for-failed-tables do not restore data of tables that could not be\n" " created\n" msgstr " --no-data-for-failed-tables не відновлювати дані таблиць, які не вдалося створити\n" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications не відновлювати публікації \n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels не відновлювати мітки безпеки \n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions не відновлювати підписки\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method не відновлювати табличний метод доступу\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces не відновлювати завдання табличного простору\n" -#: pg_restore.c:475 +#: pg_restore.c:496 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr " --section=SECTION відновлювати названий розділ (pre-data, data або post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:499 +#, c-format +msgid " --transaction-size=N commit after every N objects\n" +msgstr " --transaction-size=N затверджувати транзакцію після N об'єктів\n" + +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME виконати SET ROLE перед відновленням\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "\n" "The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n" @@ -2704,7 +2882,7 @@ msgstr "\n" "Параметри -I, -n, -N, -P, -t, -T, і --section можна групувати і вказувати\n" "декілька разів для вибору декількох об'єктів.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "\n" "If no input file name is supplied, then standard input is used.\n\n" diff --git a/src/bin/pg_dump/t/001_basic.pl b/src/bin/pg_dump/t/001_basic.pl index 37d893d5e6a5f..84ca25e17d636 100644 --- a/src/bin/pg_dump/t/001_basic.pl +++ b/src/bin/pg_dump/t/001_basic.pl @@ -237,6 +237,21 @@ 'pg_restore: options -C\/--create and -1\/--single-transaction cannot be used together' ); +command_fails_like( + [ 'pg_restore', '--exclude-database=foo', '--globals-only', '-d', 'xxx' ], + qr/\Qpg_restore: error: option --exclude-database cannot be used together with -g\/--globals-only\E/, + 'pg_restore: option --exclude-database cannot be used together with -g/--globals-only'); + +command_fails_like( + [ 'pg_restore', '--exclude-database=foo', '-d', 'xxx', 'dumpdir' ], + qr/\Qpg_restore: error: option --exclude-database can be used only when restoring an archive created by pg_dumpall\E/, + 'When option --exclude-database is used in pg_restore with dump of pg_dump'); + +command_fails_like( + [ 'pg_restore', '--globals-only', '-d', 'xxx', 'dumpdir' ], + qr/\Qpg_restore: error: option -g\/--globals-only can be used only when restoring an archive created by pg_dumpall\E/, + 'When option --globals-only is not used in pg_restore with dump of pg_dump'); + # also fails for -r and -t, but it seems pointless to add more tests for those. command_fails_like( [ 'pg_dumpall', '--exclude-database=foo', '--globals-only' ], @@ -244,4 +259,8 @@ 'pg_dumpall: option --exclude-database cannot be used together with -g/--globals-only' ); +command_fails_like( + [ 'pg_dumpall', '--format', 'x' ], + qr/\Qpg_dumpall: error: unrecognized archive format "x";\E/, + 'pg_dumpall: unrecognized archive format'); done_testing(); diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 576326daec733..cf34f71ea1196 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -744,8 +744,8 @@ schema_only_with_statistics => { dump_cmd => [ 'pg_dump', '--no-sync', - "--file=$tempdir/schema_only_with_statistics.sql", '--schema-only', - '--with-statistics', 'postgres', + "--file=$tempdir/schema_only_with_statistics.sql", + '--schema-only', '--with-statistics', 'postgres', ], }, no_schema => { @@ -1118,6 +1118,78 @@ }, }, + 'CONSTRAINT NOT NULL / NOT VALID' => { + create_sql => 'CREATE TABLE dump_test.test_table_nn ( + col1 int); + CREATE TABLE dump_test.test_table_nn_2 ( + col1 int NOT NULL); + CREATE TABLE dump_test.test_table_nn_chld1 ( + ) INHERITS (dump_test.test_table_nn); + CREATE TABLE dump_test.test_table_nn_chld2 ( + col1 int + ) INHERITS (dump_test.test_table_nn); + CREATE TABLE dump_test.test_table_nn_chld3 ( + ) INHERITS (dump_test.test_table_nn, dump_test.test_table_nn_2); + ALTER TABLE dump_test.test_table_nn ADD CONSTRAINT nn NOT NULL col1 NOT VALID; + ALTER TABLE dump_test.test_table_nn_chld1 VALIDATE CONSTRAINT nn; + ALTER TABLE dump_test.test_table_nn_chld2 VALIDATE CONSTRAINT nn;', + regexp => qr/^ + \QALTER TABLE dump_test.test_table_nn\E \n^\s+ + \QADD CONSTRAINT nn NOT NULL col1 NOT VALID;\E + /xm, + like => { + %full_runs, %dump_test_schema_runs, section_post_data => 1, + }, + unlike => { + exclude_dump_test_schema => 1, + only_dump_measurement => 1, + }, + }, + + 'CONSTRAINT NOT NULL / NOT VALID (child1)' => { + regexp => qr/^ + \QCREATE TABLE dump_test.test_table_nn_chld1 (\E\n + ^\s+\QCONSTRAINT nn NOT NULL col1\E$ + /xm, + like => { + %full_runs, %dump_test_schema_runs, section_pre_data => 1, + }, + unlike => { + exclude_dump_test_schema => 1, + only_dump_measurement => 1, + binary_upgrade => 1, + }, + }, + + 'CONSTRAINT NOT NULL / NOT VALID (child2)' => { + regexp => qr/^ + \QCREATE TABLE dump_test.test_table_nn_chld2 (\E\n + ^\s+\Qcol1 integer CONSTRAINT nn NOT NULL\E$ + /xm, + like => { + %full_runs, %dump_test_schema_runs, section_pre_data => 1, + }, + unlike => { + exclude_dump_test_schema => 1, + only_dump_measurement => 1, + }, + }, + + 'CONSTRAINT NOT NULL / NOT VALID (child3)' => { + regexp => qr/^ + \QCREATE TABLE dump_test.test_table_nn_chld3 (\E\n + ^\Q)\E$ + /xm, + like => { + %full_runs, %dump_test_schema_runs, section_pre_data => 1, + }, + unlike => { + exclude_dump_test_schema => 1, + only_dump_measurement => 1, + binary_upgrade => 1, + }, + }, + 'CONSTRAINT PRIMARY KEY / WITHOUT OVERLAPS' => { create_sql => 'CREATE TABLE dump_test.test_table_tpk ( col1 int4range, @@ -4762,13 +4834,13 @@ CREATE TABLE dump_test.has_stats AS SELECT g.g AS x, g.g / 2 AS y FROM generate_series(1,100) AS g(g); CREATE MATERIALIZED VIEW dump_test.has_stats_mv AS SELECT * FROM dump_test.has_stats; - CREATE INDEX dup_test_post_data_ix ON dump_test.has_stats(x, (x - 1)); + CREATE INDEX """dump_test""\'s post-data index" ON dump_test.has_stats(x, (x - 1)); ANALYZE dump_test.has_stats, dump_test.has_stats_mv;', regexp => qr/^ \QSELECT * FROM pg_catalog.pg_restore_relation_stats(\E\s+ 'version',\s'\d+'::integer,\s+ 'schemaname',\s'dump_test',\s+ - 'relname',\s'dup_test_post_data_ix',\s+ + 'relname',\s'"dump_test"''s\ post-data\ index',\s+ 'relpages',\s'\d+'::integer,\s+ 'reltuples',\s'\d+'::real,\s+ 'relallvisible',\s'\d+'::integer,\s+ @@ -4777,7 +4849,7 @@ \QSELECT * FROM pg_catalog.pg_restore_attribute_stats(\E\s+ 'version',\s'\d+'::integer,\s+ 'schemaname',\s'dump_test',\s+ - 'relname',\s'dup_test_post_data_ix',\s+ + 'relname',\s'"dump_test"''s\ post-data\ index',\s+ 'attnum',\s'2'::smallint,\s+ 'inherited',\s'f'::boolean,\s+ 'null_frac',\s'0'::real,\s+ diff --git a/src/bin/pg_dump/t/006_pg_dumpall.pl b/src/bin/pg_dump/t/006_pg_dumpall.pl new file mode 100644 index 0000000000000..5acd49f1559d2 --- /dev/null +++ b/src/bin/pg_dump/t/006_pg_dumpall.pl @@ -0,0 +1,391 @@ +# Copyright (c) 2021-2025, PostgreSQL Global Development Group + +use strict; +use warnings FATAL => 'all'; + +use PostgreSQL::Test::Cluster; +use PostgreSQL::Test::Utils; +use Test::More; + +my $tempdir = PostgreSQL::Test::Utils::tempdir; +my $run_db = 'postgres'; +my $sep = $windows_os ? "\\" : "/"; + +# Tablespace locations used by "restore_tablespace" test case. +my $tablespace1 = "${tempdir}${sep}tbl1"; +my $tablespace2 = "${tempdir}${sep}tbl2"; +mkdir($tablespace1) || die "mkdir $tablespace1 $!"; +mkdir($tablespace2) || die "mkdir $tablespace2 $!"; + +# Scape tablespace locations on Windows. +$tablespace1 = $windows_os ? ($tablespace1 =~ s/\\/\\\\/gr) : $tablespace1; +$tablespace2 = $windows_os ? ($tablespace2 =~ s/\\/\\\\/gr) : $tablespace2; + +# Where pg_dumpall will be executed. +my $node = PostgreSQL::Test::Cluster->new('node'); +$node->init; +$node->start; + + +############################################################### +# Definition of the pg_dumpall test cases to run. +# +# Each of these test cases are named and those names are used for fail +# reporting and also to save the dump and restore information needed for the +# test to assert. +# +# The "setup_sql" is a psql valid script that contains SQL commands to execute +# before of actually execute the tests. The setups are all executed before of +# any test execution. +# +# The "dump_cmd" and "restore_cmd" are the commands that will be executed. The +# "restore_cmd" must have the --file flag to save the restore output so that we +# can assert on it. +# +# The "like" and "unlike" is a regexp that is used to match the pg_restore +# output. It must have at least one of then filled per test cases but it also +# can have both. See "excluding_databases" test case for example. +my %pgdumpall_runs = ( + restore_roles => { + setup_sql => ' + CREATE ROLE dumpall WITH ENCRYPTED PASSWORD \'admin\' SUPERUSER; + CREATE ROLE dumpall2 WITH REPLICATION CONNECTION LIMIT 10;', + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--file' => "$tempdir/restore_roles", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'directory', + '--file' => "$tempdir/restore_roles.sql", + "$tempdir/restore_roles", + ], + like => qr/ + ^\s*\QCREATE ROLE dumpall;\E\s*\n + \s*\QALTER ROLE dumpall WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'SCRAM-SHA-256\E + [^']+';\s*\n + \s*\QCREATE ROLE dumpall2;\E + \s*\QALTER ROLE dumpall2 WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOLOGIN REPLICATION NOBYPASSRLS CONNECTION LIMIT 10;\E + /xm + }, + + restore_tablespace => { + setup_sql => " + CREATE ROLE tap; + CREATE TABLESPACE tbl1 OWNER tap LOCATION '$tablespace1'; + CREATE TABLESPACE tbl2 OWNER tap LOCATION '$tablespace2' WITH (seq_page_cost=1.0);", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--file' => "$tempdir/restore_tablespace", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'directory', + '--file' => "$tempdir/restore_tablespace.sql", + "$tempdir/restore_tablespace", + ], + # Match "E" as optional since it is added on LOCATION when running on + # Windows. + like => qr/^ + \n\QCREATE TABLESPACE tbl1 OWNER tap LOCATION \E(?:E)?\Q'$tablespace1';\E + \n\QCREATE TABLESPACE tbl2 OWNER tap LOCATION \E(?:E)?\Q'$tablespace2';\E + \n\QALTER TABLESPACE tbl2 SET (seq_page_cost=1.0);\E + /xm, + }, + + restore_grants => { + setup_sql => " + CREATE DATABASE tapgrantsdb; + CREATE SCHEMA private; + CREATE SEQUENCE serial START 101; + CREATE FUNCTION fn() RETURNS void AS \$\$ + BEGIN + END; + \$\$ LANGUAGE plpgsql; + CREATE ROLE super; + CREATE ROLE grant1; + CREATE ROLE grant2; + CREATE ROLE grant3; + CREATE ROLE grant4; + CREATE ROLE grant5; + CREATE ROLE grant6; + CREATE ROLE grant7; + CREATE ROLE grant8; + + CREATE TABLE t (id int); + INSERT INTO t VALUES (1), (2), (3), (4); + + GRANT SELECT ON TABLE t TO grant1; + GRANT INSERT ON TABLE t TO grant2; + GRANT ALL PRIVILEGES ON TABLE t to grant3; + GRANT CONNECT, CREATE ON DATABASE tapgrantsdb TO grant4; + GRANT USAGE, CREATE ON SCHEMA private TO grant5; + GRANT USAGE, SELECT, UPDATE ON SEQUENCE serial TO grant6; + GRANT super TO grant7; + GRANT EXECUTE ON FUNCTION fn() TO grant8; + ", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--file' => "$tempdir/restore_grants", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'directory', + '--file' => "$tempdir/restore_grants.sql", + "$tempdir/restore_grants", + ], + like => qr/^ + \n\QGRANT super TO grant7 WITH INHERIT TRUE GRANTED BY\E + (.*\n)* + \n\QGRANT ALL ON SCHEMA private TO grant5;\E + (.*\n)* + \n\QGRANT ALL ON FUNCTION public.fn() TO grant8;\E + (.*\n)* + \n\QGRANT ALL ON SEQUENCE public.serial TO grant6;\E + (.*\n)* + \n\QGRANT SELECT ON TABLE public.t TO grant1;\E + \n\QGRANT INSERT ON TABLE public.t TO grant2;\E + \n\QGRANT ALL ON TABLE public.t TO grant3;\E + (.*\n)* + \n\QGRANT CREATE,CONNECT ON DATABASE tapgrantsdb TO grant4;\E + /xm, + }, + + excluding_databases => { + setup_sql => 'CREATE DATABASE db1; + \c db1 + CREATE TABLE t1 (id int); + INSERT INTO t1 VALUES (1), (2), (3), (4); + CREATE TABLE t2 (id int); + INSERT INTO t2 VALUES (1), (2), (3), (4); + + CREATE DATABASE db2; + \c db2 + CREATE TABLE t3 (id int); + INSERT INTO t3 VALUES (1), (2), (3), (4); + CREATE TABLE t4 (id int); + INSERT INTO t4 VALUES (1), (2), (3), (4); + + CREATE DATABASE dbex3; + \c dbex3 + CREATE TABLE t5 (id int); + INSERT INTO t5 VALUES (1), (2), (3), (4); + CREATE TABLE t6 (id int); + INSERT INTO t6 VALUES (1), (2), (3), (4); + + CREATE DATABASE dbex4; + \c dbex4 + CREATE TABLE t7 (id int); + INSERT INTO t7 VALUES (1), (2), (3), (4); + CREATE TABLE t8 (id int); + INSERT INTO t8 VALUES (1), (2), (3), (4); + + CREATE DATABASE db5; + \c db5 + CREATE TABLE t9 (id int); + INSERT INTO t9 VALUES (1), (2), (3), (4); + CREATE TABLE t10 (id int); + INSERT INTO t10 VALUES (1), (2), (3), (4); + ', + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--file' => "$tempdir/excluding_databases", + '--exclude-database' => 'dbex*', + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'directory', + '--file' => "$tempdir/excluding_databases.sql", + '--exclude-database' => 'db5', + "$tempdir/excluding_databases", + ], + like => qr/^ + \n\QCREATE DATABASE db1\E + (.*\n)* + \n\QCREATE TABLE public.t1 (\E + (.*\n)* + \n\QCREATE TABLE public.t2 (\E + (.*\n)* + \n\QCREATE DATABASE db2\E + (.*\n)* + \n\QCREATE TABLE public.t3 (\E + (.*\n)* + \n\QCREATE TABLE public.t4 (/xm, + unlike => qr/^ + \n\QCREATE DATABASE db3\E + (.*\n)* + \n\QCREATE TABLE public.t5 (\E + (.*\n)* + \n\QCREATE TABLE public.t6 (\E + (.*\n)* + \n\QCREATE DATABASE db4\E + (.*\n)* + \n\QCREATE TABLE public.t7 (\E + (.*\n)* + \n\QCREATE TABLE public.t8 (\E + \n\QCREATE DATABASE db5\E + (.*\n)* + \n\QCREATE TABLE public.t9 (\E + (.*\n)* + \n\QCREATE TABLE public.t10 (\E + /xm, + }, + + format_directory => { + setup_sql => "CREATE TABLE format_directory(a int, b boolean, c text); + INSERT INTO format_directory VALUES (1, true, 'name1'), (2, false, 'name2');", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--file' => "$tempdir/format_directory", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'directory', + '--file' => "$tempdir/format_directory.sql", + "$tempdir/format_directory", + ], + like => qr/^\n\QCOPY public.format_directory (a, b, c) FROM stdin;/xm + }, + + format_tar => { + setup_sql => "CREATE TABLE format_tar(a int, b boolean, c text); + INSERT INTO format_tar VALUES (1, false, 'name3'), (2, true, 'name4');", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'tar', + '--file' => "$tempdir/format_tar", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'tar', + '--file' => "$tempdir/format_tar.sql", + "$tempdir/format_tar", + ], + like => qr/^\n\QCOPY public.format_tar (a, b, c) FROM stdin;/xm + }, + + format_custom => { + setup_sql => "CREATE TABLE format_custom(a int, b boolean, c text); + INSERT INTO format_custom VALUES (1, false, 'name5'), (2, true, 'name6');", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'custom', + '--file' => "$tempdir/format_custom", + ], + restore_cmd => [ + 'pg_restore', '-C', + '--format' => 'custom', + '--file' => "$tempdir/format_custom.sql", + "$tempdir/format_custom", + ], + like => qr/^ \n\QCOPY public.format_custom (a, b, c) FROM stdin;/xm + }, + + dump_globals_only => { + setup_sql => "CREATE TABLE format_dir(a int, b boolean, c text); + INSERT INTO format_dir VALUES (1, false, 'name5'), (2, true, 'name6');", + dump_cmd => [ + 'pg_dumpall', + '--format' => 'directory', + '--globals-only', + '--file' => "$tempdir/dump_globals_only", + ], + restore_cmd => [ + 'pg_restore', '-C', '--globals-only', + '--format' => 'directory', + '--file' => "$tempdir/dump_globals_only.sql", + "$tempdir/dump_globals_only", + ], + like => qr/ + ^\s*\QCREATE ROLE dumpall;\E\s*\n + /xm + }, ); + +# First execute the setup_sql +foreach my $run (sort keys %pgdumpall_runs) +{ + if ($pgdumpall_runs{$run}->{setup_sql}) + { + $node->safe_psql($run_db, $pgdumpall_runs{$run}->{setup_sql}); + } +} + +# Execute the tests +foreach my $run (sort keys %pgdumpall_runs) +{ + # Create a new target cluster to pg_restore each test case run so that we + # don't need to take care of the cleanup from the target cluster after each + # run. + my $target_node = PostgreSQL::Test::Cluster->new("target_$run"); + $target_node->init; + $target_node->start; + + # Dumpall from node cluster. + $node->command_ok(\@{ $pgdumpall_runs{$run}->{dump_cmd} }, + "$run: pg_dumpall runs"); + + # Restore the dump on "target_node" cluster. + my @restore_cmd = ( + @{ $pgdumpall_runs{$run}->{restore_cmd} }, + '--host', $target_node->host, '--port', $target_node->port); + + my ($stdout, $stderr) = run_command(\@restore_cmd); + + # pg_restore --file output file. + my $output_file = slurp_file("$tempdir/${run}.sql"); + + if (!($pgdumpall_runs{$run}->{like}) && !($pgdumpall_runs{$run}->{unlike})) + { + die "missing \"like\" or \"unlike\" in test \"$run\""; + } + + if ($pgdumpall_runs{$run}->{like}) + { + like($output_file, $pgdumpall_runs{$run}->{like}, "should dump $run"); + } + + if ($pgdumpall_runs{$run}->{unlike}) + { + unlike( + $output_file, + $pgdumpall_runs{$run}->{unlike}, + "should not dump $run"); + } +} + +# Some negative test case with dump of pg_dumpall and restore using pg_restore +# test case 1: when -C is not used in pg_restore with dump of pg_dumpall +$node->command_fails_like( + [ 'pg_restore', + "$tempdir/format_custom", + '--format' => 'custom', + '--file' => "$tempdir/error_test.sql", ], + qr/\Qpg_restore: error: -C\/--create option should be specified when restoring an archive created by pg_dumpall\E/, + 'When -C is not used in pg_restore with dump of pg_dumpall'); + +# test case 2: When --list option is used with dump of pg_dumpall +$node->command_fails_like( + [ 'pg_restore', + "$tempdir/format_custom", '-C', + '--format' => 'custom', '--list', + '--file' => "$tempdir/error_test.sql", ], + qr/\Qpg_restore: error: option -l\/--list cannot be used when restoring an archive created by pg_dumpall\E/, + 'When --list is used in pg_restore with dump of pg_dumpall'); + +# test case 3: When non-exist database is given with -d option +$node->command_fails_like( + [ 'pg_restore', + "$tempdir/format_custom", '-C', + '--format' => 'custom', + '-d' => 'dbpq', ], + qr/\Qpg_restore: error: could not connect to database "dbpq"\E/, + 'When non-existent database is given with -d option in pg_restore with dump of pg_dumpall'); + +$node->stop('fast'); + +done_testing(); diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c index 2ae3702efba18..e876f35f38ed4 100644 --- a/src/bin/pg_resetwal/pg_resetwal.c +++ b/src/bin/pg_resetwal/pg_resetwal.c @@ -1212,7 +1212,7 @@ usage(void) printf(_(" -O, --multixact-offset=OFFSET set next multitransaction offset\n")); printf(_(" -u, --oldest-transaction-id=XID set oldest transaction ID\n")); printf(_(" -x, --next-transaction-id=XID set next transaction ID\n")); - printf(_(" --char-signedness=OPTION set char signedness to \"signed\" or \"unsigned\"\n")); + printf(_(" --char-signedness=OPTION set char signedness to \"signed\" or \"unsigned\"\n")); printf(_(" --wal-segsize=SIZE size of WAL segments, in megabytes\n")); printf(_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT); diff --git a/src/bin/pg_resetwal/po/es.po b/src/bin/pg_resetwal/po/es.po index cc3e5666478cc..ed1ed5e5c86e2 100644 --- a/src/bin/pg_resetwal/po/es.po +++ b/src/bin/pg_resetwal/po/es.po @@ -4,16 +4,16 @@ # This file is distributed under the same license as the PostgreSQL package. # # Ivan Hernandez , 2003. -# Alvaro Herrera , 2004-2014 +# Alvaro Herrera , 2004-2014, 2024 # Jaime Casanova , 2005 # Martín Marqués , 2013-2014 # msgid "" msgstr "" -"Project-Id-Version: pg_resetwal (PostgreSQL) 16\n" +"Project-Id-Version: pg_resetwal (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-03 07:19+0000\n" -"PO-Revision-Date: 2023-10-03 16:16+0200\n" +"POT-Creation-Date: 2025-02-16 19:50+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -43,6 +43,107 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "no se pudo cerrar el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"posible discordancia en orden de bytes\n" +"El ordenamiento de bytes usado para almacenar el archivo pg_control puede no\n" +"coincidir con el usado por este programa. En tal caso los resultados de abajo\n" +"serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" +"directorio de datos." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "no se pudo escribir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -73,163 +174,168 @@ msgstr "no se pudo re-ejecutar con el token restringido: código de error %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "no se pudo obtener el código de salida del subproceso»: código de error %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "el valor «%s» no es válido para la opción %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s debe estar en el rango %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método de sync no reconocido: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "argumento no válido para la opción %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, c-format msgid "transaction ID epoch (-e) must not be -1" -msgstr "el «epoch» de ID de transacción (-e) no debe ser -1" +msgstr "el \"epoch\" de ID de transacción (-e) no debe ser -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:182 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "el ID de transacción más antiguo (-u) debe ser mayor o igual a %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:195 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "el ID de transacción (-x) debe ser mayor o igual a %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, c-format -msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" -msgstr "el ID de transacción (-c) debe ser 0 o bien mayor o igual a 2" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "el ID de transacción (-c) debe ser %u o bien mayor o igual a %u" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) no debe ser cero" -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "el ID de multitransacción (-m) no debe ser 0" -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "el ID de multitransacción más antiguo (-m) no debe ser 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:275 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "la posición de multitransacción (-O) no debe ser -1" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "el argumento de --wal-segsize debe ser un número" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "el argumento de %s debe ser una potencia de dos entre 1 y 1024" -#: pg_resetwal.c:298 -#, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "el argumento de --wal-segsize debe ser una potencia de dos entre 1 y 1024" - -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_resetwal.c:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "directorio de datos no especificado" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "no puede ser ejecutado con el usuario «root»" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Debe ejecutar %s con el superusuario de PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "no se pudo obtener los permisos del directorio «%s»: %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:357 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "no se pudo cambiar al directorio «%s»: %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "no se pudo abrir archivo «%s» para lectura: %m" - -#: pg_resetwal.c:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "el archivo candado «%s» existe" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "¿Hay un servidor corriendo? Si no, borre el archivo candado e inténtelo de nuevo." -#: pg_resetwal.c:467 +#: pg_resetwal.c:475 #, c-format -msgid "" -"\n" -"If these values seem acceptable, use -f to force reset.\n" -msgstr "" -"\n" -"Si estos valores parecen aceptables, use -f para forzar reinicio.\n" +msgid "not proceeding because control file values were guessed" +msgstr "no continuando porque los valores del archivo de control fueron asumidos" -#: pg_resetwal.c:479 +#: pg_resetwal.c:476 #, c-format -msgid "" -"The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" -msgstr "" -"El servidor de bases de datos no se apagó limpiamente.\n" -"Restablecer el WAL puede causar pérdida de datos.\n" -"Si quiere continuar de todas formas, use -f para forzar el restablecimiento.\n" +msgid "If these values seem acceptable, use -f to force reset." +msgstr "Si estos valores parecen aceptables, use -f para forzar reinicio." + +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "el directorio de destino no fue apagado limpiamente" + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "Reiniciar el \"write-ahead log\" puede causar pérdida de datos." + +#: pg_resetwal.c:487 +#, c-format +msgid "If you want to proceed anyway, use -f to force reset." +msgstr "Si quiere proceder de todas formas, use -f para forzar reinicio." -#: pg_resetwal.c:493 +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" -msgstr "«Write-ahead log» restablecido\n" +msgstr "\"Write-ahead log\" restablecido\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "archivo vacío inesperado «%s»" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "no se pudo leer el archivo «%s»: %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "el directorio de datos tiene la versión equivocada" -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "El archivo «%s» contiene «%s», que no es compatible con la versión «%s» de este programa." -#: pg_resetwal.c:569 +#: pg_resetwal.c:576 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -240,24 +346,24 @@ msgstr "" " touch %s\n" "y pruebe de nuevo." -#: pg_resetwal.c:597 +#: pg_resetwal.c:604 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "existe pg_control pero tiene un CRC no válido, proceda con precaución" -#: pg_resetwal.c:606 +#: pg_resetwal.c:613 #, 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 especifica un tamaño de segmento de WAL no válido (%d byte), proceda con precaución" msgstr[1] "pg_control especifica un tamaño de segmento de WAL no válido (%d bytes), proceda con precaución" -#: pg_resetwal.c:617 +#: pg_resetwal.c:624 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "existe pg_control pero está roto o tiene la versión equivocada; ignorándolo" -#: pg_resetwal.c:712 +#: pg_resetwal.c:719 #, c-format msgid "" "Guessed pg_control values:\n" @@ -266,7 +372,7 @@ msgstr "" "Valores de pg_control asumidos:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "" "Current pg_control values:\n" @@ -275,167 +381,167 @@ msgstr "" "Valores actuales de pg_control:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "Número de versión de pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "Número de versión de catálogo: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identificador de sistema: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "full_page_writes del checkpoint más reciente: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "off" msgstr "desactivado" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "activado" -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID del checkpoint más reciente: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId del checkpoint más reciente: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset del checkpoint más reciente: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "BD del oldestXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid del checkpoint más reciente: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "BD del oldestMultiXid del checkpt. más reciente: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid del último checkpoint: %u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid del último checkpoint: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Máximo alineamiento de datos: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "Tamaño del bloque de la base de datos: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Bloques por segmento de relación grande: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "Tamaño del bloque de WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Bytes por segmento WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Longitud máxima de identificadores: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Máximo número de columnas en un índice: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longitud máxima de un trozo TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Longitud máxima de un trozo de objeto grande: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "Tipo de almacenamiento hora/fecha: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "enteros de 64 bits" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Paso de parámetros float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "por referencia" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "por valor" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, c-format msgid "Data page checksum version: %u\n" msgstr "Versión de suma de verificación de datos: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:794 #, c-format msgid "" "\n" @@ -448,127 +554,149 @@ msgstr "" "Valores a cambiar:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "Primer segmento de log después de reiniciar: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "Base de datos del OldestMulti: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "Base de datos del OldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "Epoch del NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "no se pudo abrir el directorio «%s»: %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "no se pudo leer el directorio «%s»: %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "no se pudo borrar el archivo «%s»: %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "no se pudo escribir el archivo «%s»: %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "error de fsync: %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" "\n" msgstr "" -"%s restablece el WAL («write-ahead log») de PostgreSQL.\n" +"%s restablece el WAL (\"write-ahead log\") de PostgreSQL.\n" "\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 +#, c-format +msgid "Usage:\n" +msgstr "Empleo:\n" + +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [OPCIÓN]... DATADIR\n" + +#: pg_resetwal.c:1172 #, c-format msgid "" -"Usage:\n" -" %s [OPTION]... DATADIR\n" "\n" +"Options:\n" msgstr "" -"Uso:\n" -" %s [OPCIÓN]... DATADIR\n" "\n" +"Opciones:\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1173 #, c-format -msgid "Options:\n" -msgstr "Opciones:\n" +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]DATADIR directorio de datos\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1174 +#, c-format +msgid "" +" -f, --force force update to be done even after unclean shutdown or\n" +" if pg_control values had to be guessed\n" +msgstr "" +" -f, --force forzar que la actualización se haga incluso después\n" +" de un apagado no limpio o si los valores de pg_control\n" +" tuvieron que asumirse\n" + +#: pg_resetwal.c:1176 +#, c-format +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr " -n, --dry-run no actualiza, sólo muestra lo que se haría\n" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version mostrar información de versión, luego salir\n" + +#: pg_resetwal.c:1178 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help mostrar esta ayuda, luego salir\n" + +#: pg_resetwal.c:1180 +#, c-format +msgid "" +"\n" +"Options to override control file values:\n" +msgstr "" +"\n" +"Opciones para sobreescribir valores del archivo de control:\n" + +#: pg_resetwal.c:1181 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -576,87 +704,57 @@ msgid "" " commit timestamp (zero means no change)\n" msgstr "" " -c, --commit-timestamp-ids=XID,XID\n" -" definir la más antigua y la más nueva transacciones\n" -" que llevan timestamp de commit (cero significa no\n" -" cambiar)\n" +" definir la más antigua y la más nueva\n" +" transacciones que llevan timestamp de commit\n" +" (cero significa no cambiar)\n" -#: pg_resetwal.c:1133 -#, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR directorio de datos\n" - -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1184 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" -msgstr " -e, --epoch=XIDEPOCH asigna el siguiente «epoch» de ID de transacción\n" - -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force fuerza que la actualización sea hecha\n" +msgstr "" +" -e, --epoch=XIDEPOCH asigna el siguiente \"epoch\" de ID de\n" +" transacción\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr "" -" -l, --next-wal-file=ARCHIVOWAL\n" -" fuerza una ubicación inicial mínima para nuevo WAL\n" +" -l, --next-wal-file=ARCHIVOWAL fuerza una ubicación inicial mínima para\n" +" nuevo WAL\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr "" -" -m, --multixact-ids=MXID,MXID\n" -" asigna el siguiente ID de multitransacción y\n" -" el más antiguo\n" +" -m, --multixact-ids=MXID,MXID asigna el siguiente ID de multitransacción\n" +" y el más antiguo\n" -#: pg_resetwal.c:1138 -#, c-format -msgid " -n, --dry-run no update, just show what would be done\n" -msgstr " -n, --dry-run no actualiza, sólo muestra lo que se haría\n" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" -msgstr " -o, --next-oid=OID asigna el siguiente OID\n" +msgstr " -o, --next-oid=OID asigna el siguiente OID\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" -msgstr "" -" -O, --multixact-offset=OFFSET\n" -" asigna la siguiente posición de multitransacción\n" +msgstr " -O, --multixact-offset=OFFSET asigna la siguiente pos. de multitransacción\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1189 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" -msgstr "" -" -u, --oldest-transaction-id=XID\n" -" asigna el ID de transacción más antiguo\n" +msgstr " -u, --oldest-transaction-id=XID asigna el ID de transacción más antiguo\n" -#: pg_resetwal.c:1142 -#, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version mostrar información de versión y salir\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" -msgstr "" -" -x, --next-transaction-id=XID\n" -" asigna el siguiente ID de transacción\n" +msgstr " -x, --next-transaction-id=XID asigna el siguiente ID de transacción\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1191 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" -msgstr " --wal-segsize=TAMAÑO tamaño de segmentos de WAL, en megabytes\n" - -#: pg_resetwal.c:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help mostrar esta ayuda y salir\n" +msgstr " --wal-segsize=TAMAÑO tamaño de segmentos de WAL, en megabytes\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "" "\n" @@ -665,7 +763,7 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" diff --git a/src/bin/pg_resetwal/po/fr.po b/src/bin/pg_resetwal/po/fr.po index 9c02948062513..dac983a2a57ca 100644 --- a/src/bin/pg_resetwal/po/fr.po +++ b/src/bin/pg_resetwal/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-05 17:20+0000\n" -"PO-Revision-Date: 2023-09-05 22:02+0200\n" +"POT-Creation-Date: 2024-08-22 10:21+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -43,6 +43,107 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, c-format +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:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"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 de PostgreSQL\n" +"est incompatible avec ce répertoire des données." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "impossible d'écrire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -73,166 +174,168 @@ msgstr "n'a pas pu ré-exécuter le jeton restreint : code d'erreur %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "valeur « %s » invalide pour l'option %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s doit être compris entre %d et %d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "argument invalide pour l'option %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, 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:182 #, c-format 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:194 +#: pg_resetwal.c:195 #, 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:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, 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" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "l'identifiant de transaction (-c) doit être %u ou supérieur ou égal à %u" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "l'OID (-o) ne doit pas être 0" -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, 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:261 +#: pg_resetwal.c:262 #, 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:274 +#: pg_resetwal.c:275 #, 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:296 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "l'argument de --wal-segsize doit être un nombre" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "l'argument de %s doit être une puissance de 2 comprise entre 1 et 1024" -#: pg_resetwal.c:298 -#, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "l'argument de --wal-segsize doit être une puissance de 2 comprise entre 1 et 1024" - -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, 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:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "aucun répertoire de données indiqué" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "ne peut pas être exécuté par « root »" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, 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:347 +#: pg_resetwal.c:351 #, 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:353 +#: pg_resetwal.c:357 #, 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:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, 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:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "le fichier verrou « %s » existe" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, 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:467 +#: pg_resetwal.c:475 #, c-format -msgid "" -"\n" -"If these values seem acceptable, use -f to force reset.\n" -msgstr "" -"\n" -"Si ces valeurs semblent acceptables, utiliser -f pour forcer la\n" -"réinitialisation.\n" +msgid "not proceeding because control file values were guessed" +msgstr "ne continue pas car les valeurs du fichier de contrôle devraient être devinées" -#: pg_resetwal.c:479 +#: pg_resetwal.c:476 #, c-format -msgid "" -"The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" -msgstr "" -"Le serveur de bases de données n'a pas été arrêté proprement.\n" -"Ré-initialiser le journal des transactions peut occasionner des pertes de\n" -"données.\n" -"Pour continuer malgré tout, utiliser -f pour forcer la\n" -"réinitialisation.\n" +msgid "If these values seem acceptable, use -f to force reset." +msgstr "Si ces valeurs semblent acceptables, utiliser -f pour forcer la réinitialisation." + +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "le serveur de bases de données n'a pas été arrêté proprement" + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "Réinitialiser les journaux de transactions pourrait causer des pertes de données." -#: pg_resetwal.c:493 +#: pg_resetwal.c:487 +#, c-format +msgid "If you want to proceed anyway, use -f to force reset." +msgstr "Si vous voulez continuer malgré tout, utiliser -f pour forcer la réinitialisation." + +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" msgstr "Réinitialisation des journaux de transactions\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "fichier vide inattendu « %s »" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "n'a pas pu lire le fichier « %s » : %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "le répertoire des données a une mauvaise version" -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, 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:569 +#: pg_resetwal.c:576 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -243,24 +346,24 @@ msgstr "" " touch %s\n" "et réessayer." -#: pg_resetwal.c:597 +#: pg_resetwal.c:604 #, 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:606 +#: pg_resetwal.c:613 #, 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:617 +#: pg_resetwal.c:624 #, 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:712 +#: pg_resetwal.c:719 #, c-format msgid "" "Guessed pg_control values:\n" @@ -269,7 +372,7 @@ msgstr "" "Valeurs de pg_control devinées :\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "" "Current pg_control values:\n" @@ -278,167 +381,167 @@ msgstr "" "Valeurs actuelles de pg_control :\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "Numéro de version de pg_control : %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "Numéro de version du catalogue : %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identifiant du système de base de données : %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Dernier TimeLineID du point de contrôle : %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, 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:725 +#: pg_resetwal.c:732 msgid "off" msgstr "désactivé" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "activé" -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Dernier NextXID du point de contrôle : %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Dernier NextOID du point de contrôle : %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Dernier NextMultiXactId du point de contrôle : %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Dernier NextMultiOffset du point de contrôle : %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Dernier oldestXID du point de contrôle : %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, 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:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Dernier oldestActiveXID du point de contrôle : %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Dernier oldestMultiXid du point de contrôle : %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, 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:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Dernier oldestCommitTsXid du point de contrôle : %u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Dernier newestCommitTsXid du point de contrôle : %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Alignement maximal des données : %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "Taille du bloc de la base de données : %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Blocs par segment des relations volumineuses : %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "Taille de bloc du journal de transaction : %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Octets par segment du journal de transaction : %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Longueur maximale des identifiants : %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Nombre maximum de colonnes d'un index: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longueur maximale d'un morceau TOAST : %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Taille d'un morceau de Large Object : %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "Stockage du type date/heure : %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "entiers 64-bits" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Passage d'argument float8 : %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "par référence" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "par valeur" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, 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:787 +#: pg_resetwal.c:794 #, c-format msgid "" "\n" @@ -451,102 +554,82 @@ msgstr "" "Valeurs à changer :\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "Premier segment du journal après réinitialisation : %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID Epoch: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "n'a pas pu lire le répertoire « %s » : %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "n'a pas pu fermer le répertoire « %s » : %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "n'a pas pu supprimer le fichier « %s » : %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "impossible d'écrire le fichier « %s » : %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "erreur fsync : %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -555,23 +638,64 @@ msgstr "" "%s réinitialise le journal des transactions PostgreSQL.\n" "\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 +#, c-format +msgid "Usage:\n" +msgstr "Usage :\n" + +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [OPTION]... [RÉP_DONNÉES]\n" + +#: pg_resetwal.c:1172 #, c-format msgid "" -"Usage:\n" -" %s [OPTION]... DATADIR\n" "\n" +"Options:\n" msgstr "" -"Usage :\n" -" %s [OPTION]... RÉP_DONNÉES\n" "\n" +"Options :\n" + +#: pg_resetwal.c:1173 +#, c-format +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:1174 +#, c-format +msgid "" +" -f, --force force update to be done even after unclean shutdown or\n" +" if pg_control values had to be guessed\n" +msgstr " -i, --interactive force la mise à jour, y compris un arrêt pas propre ou si les valeurs de pg_control doivent être devinées\n" + +#: pg_resetwal.c:1176 +#, c-format +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr "" +" -n, --dry-run pas de mise à jour, affiche\n" +" simplement ce qui sera fait\n" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version puis quitte\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1178 #, c-format -msgid "Options:\n" -msgstr "Options :\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1180 +#, c-format +msgid "" +"\n" +"Options to override control file values:\n" +msgstr "" +"\n" +"Options contrôlant les valeurs du fichier de contrôle :\n" + +#: pg_resetwal.c:1181 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -583,86 +707,59 @@ msgstr "" " et la plus récente contenant les dates/heures\n" " de validation (zéro signifie aucun changement)\n" -#: pg_resetwal.c:1133 -#, c-format -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:1134 +#: pg_resetwal.c:1184 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr "" " -e, --epoch=XIDEPOCH configure la valeur epoch du prochain\n" " identifiant de transaction\n" -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force force la mise à jour\n" - -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr "" " -l, --next-wal-file=FICHIERWAL configure l'emplacement minimal de début\n" " des WAL du nouveau journal de transactions\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, c-format 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-transactions\n" -#: pg_resetwal.c:1138 -#, c-format -msgid " -n, --dry-run no update, just show what would be done\n" -msgstr "" -" -n, --dry-run pas de mise à jour, affiche\n" -" simplement ce qui sera fait\n" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID configure le prochain OID\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format 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:1141 +#: pg_resetwal.c:1189 #, c-format 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:1142 -#, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version affiche la version puis quitte\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, c-format 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:1144 +#: pg_resetwal.c:1191 #, c-format 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:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help affiche cette aide puis quitte\n" - -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "" "\n" @@ -671,167 +768,7 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid " (zero in either value means no change)\n" -#~ msgstr " (zéro dans l'une des deux valeurs signifie aucun changement)\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 afficherla version et quitte\n" - -#~ 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 et quitte\n" - -#~ 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 et quitte\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 " -x XID set next transaction ID\n" -#~ msgstr " -x XID fixe le prochain identifiant de transaction\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: argument of --wal-segsize must be a number\n" -#~ msgstr "%s : l'argument de --wal-segsize doit être un nombre\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 "%s: cannot be executed by \"root\"\n" -#~ msgstr "%s : ne peut pas être exécuté par « root »\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 change directory to \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu accéder au répertoire « %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 create pg_control file: %s\n" -#~ msgstr "%s : n'a pas pu créer le fichier pg_control : %s\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 delete file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu supprimer 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 "%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 open file \"%s\" for reading: %s\n" -#~ msgstr "%s : n'a pas pu ouvrir le fichier « %s » en lecture : %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 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 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 read directory \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le répertoire « %s » : %s\n" - -#~ msgid "%s: could not read file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu lire le fichier « %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: 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 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 write file \"%s\": %s\n" -#~ msgstr "%s : n'a pas pu écrire le fichier « %s » : %s\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 "%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: invalid argument for option -O\n" -#~ msgstr "%s : argument invalide pour l'option -O\n" - -#~ msgid "%s: invalid argument for option -l\n" -#~ msgstr "%s : argument invalide pour l'option -l\n" - -#~ msgid "%s: invalid argument for option -m\n" -#~ msgstr "%s : argument invalide pour l'option -m\n" - -#~ msgid "%s: invalid argument for option -o\n" -#~ msgstr "%s : argument invalide pour l'option -o\n" - -#~ msgid "%s: invalid argument for option -x\n" -#~ msgstr "%s : argument invalide pour l'option -x\n" - -#~ msgid "%s: no data directory specified\n" -#~ msgstr "%s : aucun répertoire de données indiqué\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 "Float4 argument passing: %s\n" -#~ msgstr "Passage d'argument float4 : %s\n" - -#~ msgid "Transaction log reset\n" -#~ msgstr "Réinitialisation du journal des transactions\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme : code d'erreur %lu" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "n'a pas pu charger la bibliothèque « %s » : code d'erreur %lu" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ msgid "floating-point numbers" -#~ msgstr "nombres à virgule flottante" - -#~ msgid "transaction ID (-x) must not be 0" -#~ msgstr "l'identifiant de la transaction (-x) ne doit pas être 0" diff --git a/src/bin/pg_resetwal/po/ja.po b/src/bin/pg_resetwal/po/ja.po index c229e1eb4ba26..e0cd4d5748cd1 100644 --- a/src/bin/pg_resetwal/po/ja.po +++ b/src/bin/pg_resetwal/po/ja.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_resetwal (PostgreSQL 17)\n" +"Project-Id-Version: pg_resetwal (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-11 09:39+0900\n" -"PO-Revision-Date: 2023-10-11 11:00+0900\n" +"POT-Creation-Date: 2025-03-31 09:53+0900\n" +"PO-Revision-Date: 2025-03-31 16:31+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -22,26 +22,126 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:389 pg_resetwal.c:547 +#: pg_resetwal.c:595 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:556 pg_resetwal.c:610 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ファイル\"%s\"をクローズできませんでした: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "バイトオーダが合っていません" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"バイトオーダが異なる可能性があります。\n" +"pg_controlファイルを格納するために使用するバイトオーダが本プログラムで使用\n" +"されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" +"PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 pg_resetwal.c:1158 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ファイル\"%s\"をオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1166 pg_resetwal.c:1178 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ファイル\"%s\"を書き出せませんでした: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ファイル\"%s\"をfsyncできませんでした: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "メモリ不足です\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "nullポインタは複製できません(内部エラー)\n" + +#: ../../common/file_utils.c:75 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" + +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ファイル\"%s\"のstatに失敗しました: %m" + +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "このビルドでは同期方式\"%s\"をサポートしていません" + +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_resetwal.c:952 pg_resetwal.c:1005 pg_resetwal.c:1040 pg_resetwal.c:1078 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" + +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 +#: pg_resetwal.c:978 pg_resetwal.c:1019 pg_resetwal.c:1057 pg_resetwal.c:1092 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" + +#: ../../common/file_utils.c:520 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -72,163 +172,168 @@ msgstr "制限付きトークンで再実行できませんでした: %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "サブプロセスの終了コードを入手できませんでした。: エラーコード %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "オプション%2$sに対する不正な値\"%1$s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%sは%d..%dの範囲になければなりません" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "認識できない同期方式: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:272 pg_resetwal.c:283 pg_resetwal.c:317 #, c-format msgid "invalid argument for option %s" msgstr "オプション%sの引数が不正です" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:306 pg_resetwal.c:319 -#: pg_resetwal.c:326 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:273 pg_resetwal.c:284 pg_resetwal.c:318 pg_resetwal.c:326 +#: pg_resetwal.c:339 pg_resetwal.c:346 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "トランザクションIDの基点(-e)は-1にはできません" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "最古のトランザクションID(-u)は%uもしくはそれ以上でなければなりません" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "トランザクションID(-x)は%uもしくはそれ以上でなければなりません" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either %u or greater than or equal to %u" msgstr "トランザクションID(-c)は%uまたは%u以上でなければなりません" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID(-o)は0にはできません" -#: pg_resetwal.c:254 +#: pg_resetwal.c:257 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "マルチトランザクションID(-m)は0にはできません" -#: pg_resetwal.c:261 +#: pg_resetwal.c:264 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "最古のマルチトランザクションID(-m)は0にはできません" -#: pg_resetwal.c:274 +#: pg_resetwal.c:277 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "マルチトランザクションオフセット(-O)は-1にはできません" -#: pg_resetwal.c:300 +#: pg_resetwal.c:303 #, c-format msgid "argument of %s must be a power of two between 1 and 1024" msgstr "%sの引数は1から1024までの間の2の累乗でなければなりません" -#: pg_resetwal.c:317 +#: pg_resetwal.c:337 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: pg_resetwal.c:325 +#: pg_resetwal.c:345 #, c-format msgid "no data directory specified" msgstr "データディレクトリが指定されていません" -#: pg_resetwal.c:339 +#: pg_resetwal.c:359 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\"では実行できません" -#: pg_resetwal.c:340 +#: pg_resetwal.c:360 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "PostgreSQLのスーパーユーザーで%sを実行しなければなりません" -#: pg_resetwal.c:350 +#: pg_resetwal.c:370 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を読み取れませんでした: %m" -#: pg_resetwal.c:356 +#: pg_resetwal.c:376 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "ディレクトリ\"%s\"に移動できませんでした: %m" -#: pg_resetwal.c:369 pg_resetwal.c:523 pg_resetwal.c:571 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" - -#: pg_resetwal.c:374 +#: pg_resetwal.c:394 #, c-format msgid "lock file \"%s\" exists" msgstr "ロックファイル\"%s\"が存在します" -#: pg_resetwal.c:375 +#: pg_resetwal.c:395 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "サーバーが稼動していませんか? そうでなければロックファイルを削除し再実行してください。" -#: pg_resetwal.c:474 +#: pg_resetwal.c:497 #, c-format msgid "not proceeding because control file values were guessed" msgstr "制御ファイルの値が推測値であるため、処理をここで終了します" -#: pg_resetwal.c:475 +#: pg_resetwal.c:498 #, c-format msgid "If these values seem acceptable, use -f to force reset." msgstr "この値を許容できる場合は、-fを使用して強制リセットしてください。" -#: pg_resetwal.c:484 +#: pg_resetwal.c:507 #, c-format msgid "database server was not shut down cleanly" msgstr "ターゲットサーバーはクリーンにシャットダウンされていません" -#: pg_resetwal.c:485 +#: pg_resetwal.c:508 #, c-format msgid "Resetting the write-ahead log might cause data to be lost." msgstr "先行書き込みロ(WAL)グをリセットすると、データが失われる可能性があります。" -#: pg_resetwal.c:486 +#: pg_resetwal.c:509 #, c-format msgid "If you want to proceed anyway, use -f to force reset." msgstr "とにかく続行したいという場合には、-f でリセットを強行できます。" -#: pg_resetwal.c:498 +#: pg_resetwal.c:522 #, c-format msgid "Write-ahead log reset\n" msgstr "先行書き込みログがリセットされました\n" -#: pg_resetwal.c:530 +#: pg_resetwal.c:554 #, c-format msgid "unexpected empty file \"%s\"" msgstr "想定外の空のファイル\"%s\"" -#: pg_resetwal.c:532 pg_resetwal.c:586 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" - -#: pg_resetwal.c:540 +#: pg_resetwal.c:564 #, c-format msgid "data directory is of wrong version" msgstr "データディレクトリのバージョンが違います" -#: pg_resetwal.c:541 +#: pg_resetwal.c:565 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "ファイル\"%s\"では\"%s\"となっています、これはこのプログラムのバージョン\"%s\"と互換性がありません" -#: pg_resetwal.c:574 +#: pg_resetwal.c:598 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -239,23 +344,23 @@ msgstr "" " touch %s\n" "の後に再実行してください。" -#: pg_resetwal.c:602 +#: pg_resetwal.c:626 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_controlがありましたが、CRCが不正でした; 注意して進めてください" -#: pg_resetwal.c:611 +#: pg_resetwal.c:635 #, 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にあるWALセグメントサイズ(%dバイト)は不正です; 注意して進めてください" -#: pg_resetwal.c:622 +#: pg_resetwal.c:646 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_controlがありましたが、破損あるいは間違ったバージョンです; 無視します" -#: pg_resetwal.c:717 +#: pg_resetwal.c:741 #, c-format msgid "" "Guessed pg_control values:\n" @@ -264,7 +369,7 @@ msgstr "" "pg_controlの推測値:\n" "\n" -#: pg_resetwal.c:719 +#: pg_resetwal.c:743 #, c-format msgid "" "Current pg_control values:\n" @@ -273,167 +378,180 @@ msgstr "" "現在のpg_controlの値:\n" "\n" -#: pg_resetwal.c:721 +#: pg_resetwal.c:745 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_controlバージョン番号: %u\n" -#: pg_resetwal.c:723 +#: pg_resetwal.c:747 #, c-format msgid "Catalog version number: %u\n" msgstr "カタログバージョン番号: %u\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:749 #, c-format -msgid "Database system identifier: %llu\n" -msgstr "データベースシステム識別子: %llu\n" +msgid "Database system identifier: %\n" +msgstr "データベースシステム識別子: %\n" -#: pg_resetwal.c:727 +#: pg_resetwal.c:751 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "最終チェックポイントの時系列ID: %u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:753 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "最終チェックポイントのfull_page_writes: %s\n" -#: pg_resetwal.c:730 +#: pg_resetwal.c:754 msgid "off" msgstr "オフ" -#: pg_resetwal.c:730 +#: pg_resetwal.c:754 msgid "on" msgstr "オン" -#: pg_resetwal.c:731 +#: pg_resetwal.c:755 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "最終チェックポイントのNextXID: %u:%u\n" -#: pg_resetwal.c:734 +#: pg_resetwal.c:758 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "最終チェックポイントのNextOID: %u\n" -#: pg_resetwal.c:736 +#: pg_resetwal.c:760 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "最終チェックポイントのNextMultiXactId: %u\n" -#: pg_resetwal.c:738 +#: pg_resetwal.c:762 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "最終チェックポイントのNextMultiOffset: %u\n" -#: pg_resetwal.c:740 +#: pg_resetwal.c:764 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "最終チェックポイントのoldestXID: %u\n" -#: pg_resetwal.c:742 +#: pg_resetwal.c:766 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "最終チェックポイントのoldestXIDのDB: %u\n" -#: pg_resetwal.c:744 +#: pg_resetwal.c:768 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "最終チェックポイントのoldestActiveXID: %u\n" -#: pg_resetwal.c:746 +#: pg_resetwal.c:770 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "最終チェックポイントのoldestMultiXid: %u\n" -#: pg_resetwal.c:748 +#: pg_resetwal.c:772 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "最終チェックポイントのoldestMultiのDB: %u\n" -#: pg_resetwal.c:750 +#: pg_resetwal.c:774 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "最終チェックポイントのoldestCommitTsXid: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:776 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "最終チェックポイントのnewestCommitTsXid: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:778 #, c-format msgid "Maximum data alignment: %u\n" msgstr "最大データアラインメント: %u\n" -#: pg_resetwal.c:757 +#: pg_resetwal.c:781 #, c-format msgid "Database block size: %u\n" msgstr "データベースのブロックサイズ: %u\n" -#: pg_resetwal.c:759 +#: pg_resetwal.c:783 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "大きなリレーションのセグメント毎のブロック数:%u\n" -#: pg_resetwal.c:761 +#: pg_resetwal.c:785 #, c-format msgid "WAL block size: %u\n" msgstr "WALのブロックサイズ: %u\n" -#: pg_resetwal.c:763 pg_resetwal.c:849 +#: pg_resetwal.c:787 pg_resetwal.c:875 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "WALセグメント当たりのバイト数: %u\n" -#: pg_resetwal.c:765 +#: pg_resetwal.c:789 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "識別子の最大長: %u\n" -#: pg_resetwal.c:767 +#: pg_resetwal.c:791 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "インデックス内の最大列数: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:793 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOASTチャンクの最大サイズ: %u\n" -#: pg_resetwal.c:771 +#: pg_resetwal.c:795 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "ラージオブジェクトチャンクのサイズ: %u\n" -#: pg_resetwal.c:774 +#: pg_resetwal.c:798 #, c-format msgid "Date/time type storage: %s\n" msgstr "日付/時刻型の格納方式: %s\n" -#: pg_resetwal.c:775 +#: pg_resetwal.c:799 msgid "64-bit integers" msgstr "64ビット整数" -#: pg_resetwal.c:776 +#: pg_resetwal.c:800 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8引数の渡し方: %s\n" -#: pg_resetwal.c:777 +#: pg_resetwal.c:801 msgid "by reference" msgstr "参照渡し" -#: pg_resetwal.c:777 +#: pg_resetwal.c:801 msgid "by value" msgstr "値渡し" -#: pg_resetwal.c:778 +#: pg_resetwal.c:802 #, c-format msgid "Data page checksum version: %u\n" msgstr "データベージチェックサムのバージョン: %u\n" -#: pg_resetwal.c:792 +#: pg_resetwal.c:804 +#, c-format +msgid "Default char data signedness: %s\n" +msgstr "デフォルトのchar型の符号あり/なし: %s\n" + +#: pg_resetwal.c:805 +msgid "signed" +msgstr "signed" + +#: pg_resetwal.c:805 +msgid "unsigned" +msgstr "unsigned" + +#: pg_resetwal.c:818 #, c-format msgid "" "\n" @@ -446,102 +564,82 @@ msgstr "" "変更される値:\n" "\n" -#: pg_resetwal.c:796 +#: pg_resetwal.c:822 #, c-format msgid "First log segment after reset: %s\n" msgstr "リセット後最初のWALセグメント: %s\n" -#: pg_resetwal.c:800 +#: pg_resetwal.c:826 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:802 +#: pg_resetwal.c:828 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:804 +#: pg_resetwal.c:830 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMultiのDB: %u\n" -#: pg_resetwal.c:810 +#: pg_resetwal.c:836 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:816 +#: pg_resetwal.c:842 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:822 +#: pg_resetwal.c:848 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:824 +#: pg_resetwal.c:850 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:826 +#: pg_resetwal.c:852 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXIDのDB: %u\n" -#: pg_resetwal.c:832 +#: pg_resetwal.c:858 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID基点: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:864 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:843 +#: pg_resetwal.c:869 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:926 pg_resetwal.c:979 pg_resetwal.c:1014 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" - -#: pg_resetwal.c:952 pg_resetwal.c:993 pg_resetwal.c:1031 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" - -#: pg_resetwal.c:955 pg_resetwal.c:996 pg_resetwal.c:1034 +#: pg_resetwal.c:981 pg_resetwal.c:1022 pg_resetwal.c:1060 pg_resetwal.c:1095 #, c-format msgid "could not close directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" -#: pg_resetwal.c:988 pg_resetwal.c:1026 +#: pg_resetwal.c:1014 pg_resetwal.c:1052 pg_resetwal.c:1087 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ファイル\"%s\"を削除できませんでした: %m" -#: pg_resetwal.c:1098 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "ファイル\"%s\"をオープンできませんでした: %m" - -#: pg_resetwal.c:1106 pg_resetwal.c:1118 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "ファイル\"%s\"を書き出せませんでした: %m" - -#: pg_resetwal.c:1123 +#: pg_resetwal.c:1183 #, c-format msgid "fsync error: %m" msgstr "fsyncエラー: %m" -#: pg_resetwal.c:1132 +#: pg_resetwal.c:1192 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -550,17 +648,17 @@ msgstr "" "%sはPostgreSQLの先行書き込みログをリセットします。\n" "\n" -#: pg_resetwal.c:1133 +#: pg_resetwal.c:1193 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1194 #, c-format msgid " %s [OPTION]... DATADIR\n" msgstr " %s [OPTION]... DATADIR\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1196 #, c-format msgid "" "\n" @@ -569,36 +667,36 @@ msgstr "" "\n" "オプション:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1197 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR データディレクトリ\n" -#: pg_resetwal.c:1138 +#: pg_resetwal.c:1198 #, c-format msgid "" " -f, --force force update to be done even after unclean shutdown or\n" " if pg_control values had to be guessed\n" msgstr "" -" -f, --force クリーンではないシャットダウンの後、もしくはpg_controlの値の推定が\n" -" 必要となった場合でも更新を強行する\n" +" -f, --force クリーンではないシャットダウンの後、もしくはpg_control\n" +" の値の推定が必要となった場合でも更新を強行する\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1200 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run 更新をせず、単に何が行なわれるかを表示\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1201 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1202 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1204 #, c-format msgid "" "\n" @@ -607,7 +705,7 @@ msgstr "" "\n" "制御ファイルの値を上書きするためのオプション:\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1205 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -618,47 +716,52 @@ msgstr "" " コミットタイムスタンプを持つ最古と最新の\n" " トランザクション(0は変更しないことを意味する)\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1208 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH 次のトランザクションIDの基点を設定\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1209 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFILE 新しいWALの最小開始ポイントを設定\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1210 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID 次および最古のマルチトランザクションIDを設定\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1211 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID 次のOIDを設定\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1212 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET 次のマルチトランザクションオフセットを設定\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1213 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID 最古のトランザクションIDを設定\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1214 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID 次のトランザクションIDを設定\n" -#: pg_resetwal.c:1155 +#: pg_resetwal.c:1215 +#, c-format +msgid " --char-signedness=OPTION set char signedness to \"signed\" or \"unsigned\"\n" +msgstr " --char-signedness=OPTION char型を符号付きまたは符号なしに設定する\n" + +#: pg_resetwal.c:1216 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE WALセグメントのサイズ、単位はメガバイト\n" -#: pg_resetwal.c:1157 +#: pg_resetwal.c:1218 #, c-format msgid "" "\n" @@ -667,7 +770,7 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_resetwal.c:1158 +#: pg_resetwal.c:1219 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" diff --git a/src/bin/pg_resetwal/po/ka.po b/src/bin/pg_resetwal/po/ka.po index 1452936366629..033dd63d4940c 100644 --- a/src/bin/pg_resetwal/po/ka.po +++ b/src/bin/pg_resetwal/po/ka.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_resetwal (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-26 10:51+0000\n" -"PO-Revision-Date: 2024-02-11 16:08+0100\n" +"POT-Creation-Date: 2025-05-02 22:20+0000\n" +"PO-Revision-Date: 2025-05-03 01:24+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,28 +16,127 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:389 pg_resetwal.c:547 +#: pg_resetwal.c:595 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:556 pg_resetwal.c:610 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ფაილის (%s) დახურვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "ბაიტების მიმდევრობა არ ემთხვევა" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"ბაიტების მიმდევრობის შესაძლო შეუსაბამობა pg_control ფაილის შესანახად გამოყენებული \n" +"ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" +"მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 pg_resetwal.c:1158 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1166 pg_resetwal.c:1178 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + +#: ../../common/file_utils.c:75 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" + +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" + +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_resetwal.c:952 pg_resetwal.c:1005 pg_resetwal.c:1040 pg_resetwal.c:1078 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 +#: pg_resetwal.c:978 pg_resetwal.c:1019 pg_resetwal.c:1057 pg_resetwal.c:1092 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/file_utils.c:520 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "გადარქმევის შეცდომა %s - %s: %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -78,173 +177,158 @@ msgstr "არასწორი მნიშვნელობა \"%s\" პა msgid "%s must be in range %d..%d" msgstr "%s არაა საზღვრებში %d-დან %d-მდე" -#: ../../fe_utils/option_utils.c:99 -#, c-format -msgid "this build does not support sync method \"%s\"" -msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" - #: ../../fe_utils/option_utils.c:106 #, c-format msgid "unrecognized sync method: %s" msgstr "უცნობი სინქრონიზაციის მეთოდი: \"%s\"" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:272 pg_resetwal.c:283 pg_resetwal.c:317 #, c-format msgid "invalid argument for option %s" msgstr "არასწორი არგუმენტი პარამეტრისთვის: %s" -#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 -#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 -#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 -#: pg_resetwal.c:327 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:273 pg_resetwal.c:284 pg_resetwal.c:318 pg_resetwal.c:326 +#: pg_resetwal.c:339 pg_resetwal.c:346 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_resetwal.c:169 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "ტრანზაქციის ID-ის ეპოქა (-e) -1 არ უნდა იყოს" -#: pg_resetwal.c:182 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "ძველი ტრანზაქციის ID (-u) %u-ზე მეტი ან ტოლი უნდა იყოს" -#: pg_resetwal.c:195 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "ტრანზაქციის ID (-x) %u_ზე მეტი ან ტოლი უნდა იყოს" -#: pg_resetwal.c:217 pg_resetwal.c:221 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either %u or greater than or equal to %u" msgstr "ტრანზაქციის ID (-c) ან %u უნდა იყოს, ან %u-ზე მეტი ან ტოლი" -#: pg_resetwal.c:234 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) 0 არ უნდა იყოს" -#: pg_resetwal.c:255 +#: pg_resetwal.c:257 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "მულტიტრანზაქციის ID (-m) 0 არ უნდა იყო" -#: pg_resetwal.c:262 +#: pg_resetwal.c:264 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "უძველესი მულტრანზაქციის ID (-m) 0 არ უნდა იყოს" -#: pg_resetwal.c:275 +#: pg_resetwal.c:277 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "მულიტრანზაქციის წანაცვლება (-O) -1 არ უნდა იყოს" -#: pg_resetwal.c:301 +#: pg_resetwal.c:303 #, c-format msgid "argument of %s must be a power of two between 1 and 1024" msgstr "%s-ის არგუმენტი 2-ის ხარისხი უნდა იყოს 1-1024 შუალედიდან" -#: pg_resetwal.c:318 +#: pg_resetwal.c:337 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_resetwal.c:326 +#: pg_resetwal.c:345 #, c-format msgid "no data directory specified" msgstr "მონაცემების საქაღალდე მითითებული არაა" -#: pg_resetwal.c:340 +#: pg_resetwal.c:359 #, c-format msgid "cannot be executed by \"root\"" msgstr "root-ით ვერ გაეშვება" -#: pg_resetwal.c:341 +#: pg_resetwal.c:360 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "%s PostgreSQL-ის ზემომხმარებლით უნდა გაუშვათ." -#: pg_resetwal.c:351 +#: pg_resetwal.c:370 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "საქაღალდის წვდომების წაკითხვა შეუძლებელია \"%s\": %m" -#: pg_resetwal.c:357 +#: pg_resetwal.c:376 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "საქაღალდის %s-ზე შეცვლის შეცდომა: %m" -#: pg_resetwal.c:370 pg_resetwal.c:525 pg_resetwal.c:573 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" - -#: pg_resetwal.c:375 +#: pg_resetwal.c:394 #, c-format msgid "lock file \"%s\" exists" msgstr "ბლოკის ფაილი არსებობს: %s" -#: pg_resetwal.c:376 +#: pg_resetwal.c:395 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "სერვერი გაშვებულია? თუ არა, წაშალეთ ბლოკის ფაილი და თავიდან სცადეთ." -#: pg_resetwal.c:475 +#: pg_resetwal.c:497 #, c-format msgid "not proceeding because control file values were guessed" msgstr "არ გავაგრძელებ, რადგან კონტროლი ფაილის მნიშვნელობებს ჩემით მივხვდი" -#: pg_resetwal.c:476 +#: pg_resetwal.c:498 #, c-format msgid "If these values seem acceptable, use -f to force reset." msgstr "თუ ეს მნიშვნელობები მისაღებია, ძალით ჩამოსაყრელად გამოიყენეთ -f ." -#: pg_resetwal.c:485 +#: pg_resetwal.c:507 #, c-format msgid "database server was not shut down cleanly" msgstr "მონაცემთა ბაზა წესების დაცვით არ გათიშულა" -#: pg_resetwal.c:486 +#: pg_resetwal.c:508 #, c-format msgid "Resetting the write-ahead log might cause data to be lost." msgstr "წინასწარ-ჩაწერადი ჟურნალის ჩამოყრამ, შეიძლება, მონაცემების დაკარგვა გამოიწვიოს." -#: pg_resetwal.c:487 +#: pg_resetwal.c:509 #, c-format msgid "If you want to proceed anyway, use -f to force reset." msgstr "თუ ეს მნიშვნელობები მისაღებია, ძალით ჩამოსაყრელად გამოიყენეთ -f ." -#: pg_resetwal.c:500 +#: pg_resetwal.c:522 #, c-format msgid "Write-ahead log reset\n" msgstr "წინასწარ-ჩაწერი ჟურნალის საწყის მნიშვნელობაზე დაბრუნება\n" -#: pg_resetwal.c:532 +#: pg_resetwal.c:554 #, c-format msgid "unexpected empty file \"%s\"" msgstr "მოულოდნელად ფაილი ცარიელია: \"%s\"" -#: pg_resetwal.c:534 pg_resetwal.c:588 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" - -#: pg_resetwal.c:542 +#: pg_resetwal.c:564 #, c-format msgid "data directory is of wrong version" msgstr "მონაცემების საქაღალდე არასწორ ვერსიას ეკუთვნის" -#: pg_resetwal.c:543 +#: pg_resetwal.c:565 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "ფაილი \"%s\" შეიცავს \"%s\"-ს, რომელიც ამ პროგრამის ვერსიასთან (%s) შეუთავსებელია." -#: pg_resetwal.c:576 +#: pg_resetwal.c:598 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -255,24 +339,24 @@ msgstr "" " touch %s\n" "და თავიდან სცადეთ." -#: pg_resetwal.c:604 +#: pg_resetwal.c:626 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control არსებობს, მაგრამ გააჩნია არასწორი CRC; ფრთხილად" -#: pg_resetwal.c:613 +#: pg_resetwal.c:635 #, 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 WAL-ის არასწორი სეგმენტის ზომას (%d ბაიტი) მიუთითებს; ფრთხილად" msgstr[1] "pg_control WAL-ის არასწორი სეგმენტის ზომას (%d ბაიტი) მიუთითებს; ფრთხილად" -#: pg_resetwal.c:624 +#: pg_resetwal.c:646 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control არსებობს, მაგრამ ან გაფუჭებულია, ან ძველი ვერსია; იგნორირებულია" -#: pg_resetwal.c:719 +#: pg_resetwal.c:741 #, c-format msgid "" "Guessed pg_control values:\n" @@ -281,7 +365,7 @@ msgstr "" "Pg_control გამოცნობილი მნიშვნელობები:\n" "\n" -#: pg_resetwal.c:721 +#: pg_resetwal.c:743 #, c-format msgid "" "Current pg_control values:\n" @@ -290,167 +374,180 @@ msgstr "" "Pg_control მიმდინარე მნიშვნელობები:\n" "\n" -#: pg_resetwal.c:723 +#: pg_resetwal.c:745 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control ვერსიის ნომერი: %u\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:747 #, c-format msgid "Catalog version number: %u\n" msgstr "კატალოგის ვერსიის ნომერი: %u\n" -#: pg_resetwal.c:727 +#: pg_resetwal.c:749 #, c-format -msgid "Database system identifier: %llu\n" -msgstr "ბაზის სისტემური იდენტიფიკატორი: %llu\n" +msgid "Database system identifier: %\n" +msgstr "ბაზის სისტემური იდენტიფიკატორი: %\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:751 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "უახლესი საკონტროლო წერტილისTimeLineID: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:753 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "უახლესი უკანასკნელი საკონტროლო წერტილის full_page_writes: %s\n" -#: pg_resetwal.c:732 +#: pg_resetwal.c:754 msgid "off" msgstr "გამორთული" -#: pg_resetwal.c:732 +#: pg_resetwal.c:754 msgid "on" msgstr "ჩართ" -#: pg_resetwal.c:733 +#: pg_resetwal.c:755 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "უახლესი საკონტროლო წერტილის NextXID: %u:%u\n" -#: pg_resetwal.c:736 +#: pg_resetwal.c:758 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextOID: %u\n" -#: pg_resetwal.c:738 +#: pg_resetwal.c:760 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextMultiXactId: %u\n" -#: pg_resetwal.c:740 +#: pg_resetwal.c:762 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "უახლესი საკონტროლო წერტილის NextMultiOffset: %u\n" -#: pg_resetwal.c:742 +#: pg_resetwal.c:764 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestXID: %u\n" -#: pg_resetwal.c:744 +#: pg_resetwal.c:766 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestXID's DB: %u\n" -#: pg_resetwal.c:746 +#: pg_resetwal.c:768 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestActiveXID: %u\n" -#: pg_resetwal.c:748 +#: pg_resetwal.c:770 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestMultiXid: %u\n" -#: pg_resetwal.c:750 +#: pg_resetwal.c:772 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "უახლესი საკონტროლო წერტილის oldestMulti's DB: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:774 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "უახლესი საკონტროლო წერტილის oldestCommitTsXid:%u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:776 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "უახლესი საკონტროლო წერტილის newestCommitTsXid:%u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:778 #, c-format msgid "Maximum data alignment: %u\n" msgstr "მონაცემების სწორების მაქსიმუმი: %u\n" -#: pg_resetwal.c:759 +#: pg_resetwal.c:781 #, c-format msgid "Database block size: %u\n" msgstr "ბაზის ბლოკის ზომა: %u\n" -#: pg_resetwal.c:761 +#: pg_resetwal.c:783 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "დიდი ურთიერთობის სეგმენტები თითოეულ ბლოკში: %u\n" -#: pg_resetwal.c:763 +#: pg_resetwal.c:785 #, c-format msgid "WAL block size: %u\n" msgstr "WAL ბლოკის ზომა: %u\n" -#: pg_resetwal.c:765 pg_resetwal.c:851 +#: pg_resetwal.c:787 pg_resetwal.c:875 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "ბაიტები თითოეულ WAL სეგმენტში: %u\n" -#: pg_resetwal.c:767 +#: pg_resetwal.c:789 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "იდენტიფიკატორების მაქსიმალური სიგრძე: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:791 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "ინდექსში სვეტების მაქსიმალური რაოდენობა: %u\n" -#: pg_resetwal.c:771 +#: pg_resetwal.c:793 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOAST ნაგლეჯის მაქსიმალური ზომა: %u\n" -#: pg_resetwal.c:773 +#: pg_resetwal.c:795 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "დიდი ობიექტის ნაგლეჯის ზომა: %u\n" -#: pg_resetwal.c:776 +#: pg_resetwal.c:798 #, c-format msgid "Date/time type storage: %s\n" msgstr "თარიღის ტიპის საცავი: %s\n" -#: pg_resetwal.c:777 +#: pg_resetwal.c:799 msgid "64-bit integers" msgstr "64-ბიტიანი მთელ რიცხვები" -#: pg_resetwal.c:778 +#: pg_resetwal.c:800 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8 არგუმენტის გადაცემა: %s\n" -#: pg_resetwal.c:779 +#: pg_resetwal.c:801 msgid "by reference" msgstr "ბმით" -#: pg_resetwal.c:779 +#: pg_resetwal.c:801 msgid "by value" msgstr "მნიშვნელობით" -#: pg_resetwal.c:780 +#: pg_resetwal.c:802 #, c-format msgid "Data page checksum version: %u\n" msgstr "მონაცემების გვერდის საკონტროლო ჯამის ვერსია: %u\n" -#: pg_resetwal.c:794 +#: pg_resetwal.c:804 +#, c-format +msgid "Default char data signedness: %s\n" +msgstr "ნაგულისხმევი სტრიქონის მონაცემების ნიშნიანობა: %s\n" + +#: pg_resetwal.c:805 +msgid "signed" +msgstr "ნიშნიანი" + +#: pg_resetwal.c:805 +msgid "unsigned" +msgstr "უნიშნო" + +#: pg_resetwal.c:818 #, c-format msgid "" "\n" @@ -463,102 +560,82 @@ msgstr "" "შესაცვლელი მნიშვნელობები:\n" "\n" -#: pg_resetwal.c:798 +#: pg_resetwal.c:822 #, c-format msgid "First log segment after reset: %s\n" msgstr "საწყის მნიშვნელობაზე დაბრუნების შემდეგ ჟურნალის პირველი სეგმენტი: %s\n" -#: pg_resetwal.c:802 +#: pg_resetwal.c:826 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:804 +#: pg_resetwal.c:828 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:806 +#: pg_resetwal.c:830 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:812 +#: pg_resetwal.c:836 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:818 +#: pg_resetwal.c:842 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:824 +#: pg_resetwal.c:848 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:826 +#: pg_resetwal.c:850 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:828 +#: pg_resetwal.c:852 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:834 +#: pg_resetwal.c:858 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID epoch: %u\n" -#: pg_resetwal.c:840 +#: pg_resetwal.c:864 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:845 +#: pg_resetwal.c:869 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" - -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" - -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 +#: pg_resetwal.c:981 pg_resetwal.c:1022 pg_resetwal.c:1060 pg_resetwal.c:1095 #, c-format msgid "could not close directory \"%s\": %m" msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 +#: pg_resetwal.c:1014 pg_resetwal.c:1052 pg_resetwal.c:1087 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ფაილის (\"%s\") წაშლის შეცდომა: %m" -#: pg_resetwal.c:1134 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" - -#: pg_resetwal.c:1142 pg_resetwal.c:1154 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" - -#: pg_resetwal.c:1159 +#: pg_resetwal.c:1183 #, c-format msgid "fsync error: %m" msgstr "fsync error: %m" -#: pg_resetwal.c:1168 +#: pg_resetwal.c:1192 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -567,17 +644,17 @@ msgstr "" "%s PostgreSQL-ის წინასწარ-ჩაწერად ჟურნალს საწყის მნიშვნელობაზე აბრუნებს.\n" "\n" -#: pg_resetwal.c:1169 +#: pg_resetwal.c:1193 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_resetwal.c:1170 +#: pg_resetwal.c:1194 #, c-format msgid " %s [OPTION]... DATADIR\n" msgstr " %s [პარამეტრი]... [მონაცემებისსაქაღალდე]\n" -#: pg_resetwal.c:1172 +#: pg_resetwal.c:1196 #, c-format msgid "" "\n" @@ -586,12 +663,12 @@ msgstr "" "\n" "პარამეტრები:\n" -#: pg_resetwal.c:1173 +#: pg_resetwal.c:1197 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR მონაცემების საქაღალდე\n" -#: pg_resetwal.c:1174 +#: pg_resetwal.c:1198 #, c-format msgid "" " -f, --force force update to be done even after unclean shutdown or\n" @@ -600,22 +677,22 @@ msgstr "" " -f, --force ნაძალადევი განახლების შესრულებას მას შემდეგაც კი, თუ პროცესი არასწორად გაითიშა,\n" " ან, თუ pg_control-ის მნიშვნელობების მიხვედრა მომიწია\n" -#: pg_resetwal.c:1176 +#: pg_resetwal.c:1200 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run განახლების გარეშე. უბრალოდ ნაჩვენები იქნება, რა მოხდებოდა\n" -#: pg_resetwal.c:1177 +#: pg_resetwal.c:1201 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_resetwal.c:1178 +#: pg_resetwal.c:1202 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_resetwal.c:1180 +#: pg_resetwal.c:1204 #, c-format msgid "" "\n" @@ -624,7 +701,7 @@ msgstr "" "\n" "პარამეტრები კონტროლის ფაილის მნიშვნელობის გადასაფარად:\n" -#: pg_resetwal.c:1181 +#: pg_resetwal.c:1205 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -635,47 +712,52 @@ msgstr "" " უახლესი და უძველესი ტრანზაქციების მითითება,\n" " დროის შტამპის მატარებლით(0 ნიშნავს, რომ არ შეიცვლება)\n" -#: pg_resetwal.c:1184 +#: pg_resetwal.c:1208 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH შემდეგი ტრანზაქციის ID-ის ეპოქსი დაყენება\n" -#: pg_resetwal.c:1185 +#: pg_resetwal.c:1209 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFILE ახალი WAL-ის მინიმალური საწყისი მდებარეობის დაყენება\n" -#: pg_resetwal.c:1186 +#: pg_resetwal.c:1210 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID შემდეგი და უძველესი მულტრანზაქციის ID-ების დაყენება\n" -#: pg_resetwal.c:1187 +#: pg_resetwal.c:1211 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID შემდეგი OID-ის დაყენება\n" -#: pg_resetwal.c:1188 +#: pg_resetwal.c:1212 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=წანაცვლება შემდეგი მულტიტრანზაქციის წანაცვლების დაყენება\n" -#: pg_resetwal.c:1189 +#: pg_resetwal.c:1213 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID უძველესი ტრანზაქციის ID-ის დაყენება\n" -#: pg_resetwal.c:1190 +#: pg_resetwal.c:1214 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID შემდეგი ტრანზაქციის ID-ის დაყენება\n" -#: pg_resetwal.c:1191 +#: pg_resetwal.c:1215 +#, c-format +msgid " --char-signedness=OPTION set char signedness to \"signed\" or \"unsigned\"\n" +msgstr " --char-signedness=OPTION სიმბოლოს ნიშნიანობის დაყენება \"signed\"-ზე, ან \"unsigned\"-ზე\n" + +#: pg_resetwal.c:1216 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=ზომა WAL სეგმენტების ზომა, მეგაბაიტებში\n" -#: pg_resetwal.c:1193 +#: pg_resetwal.c:1218 #, c-format msgid "" "\n" @@ -684,7 +766,7 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_resetwal.c:1194 +#: pg_resetwal.c:1219 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" diff --git a/src/bin/pg_resetwal/po/ko.po b/src/bin/pg_resetwal/po/ko.po index 64d8a8fb01b77..c27ba3a26276e 100644 --- a/src/bin/pg_resetwal/po/ko.po +++ b/src/bin/pg_resetwal/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_resetwal (PostgreSQL) 16\n" +"Project-Id-Version: pg_resetwal (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:50+0000\n" -"PO-Revision-Date: 2023-09-08 16:10+0900\n" +"POT-Creation-Date: 2025-01-17 04:50+0000\n" +"PO-Revision-Date: 2025-01-16 16:15+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -35,6 +35,108 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %d / %zu 읽었음" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "\"%s\" 파일을 닫을 수 없음: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 불일치" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"바이트 순서 일치하지 않는 문제\n" +"바이트 순서 정보는 pg_control 파일을 저장할 때 사용되는데,\n" +"이 파일의 바이트 순서 정보와 이 프로그램에서 사용하는 순서 정보가 다릅니다.\n" +"이럴 경우, 출력 결과가 바르지 않을 수 있고,\n" +"설치된 PostgreSQL 프로그램과 데이터 디렉터리가 호환되지 않을 수 있습니다." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "\"%s\" 파일 쓰기 실패: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일 상태 정보를 구할 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -65,166 +167,172 @@ msgstr "상속된 토큰으로 재실행할 수 없음: 오류 코드 %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "하위 프로세스의 종료 코드를 구할 수 없음: 오류 코드 %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값이 잘 못됨, 해당 옵션: %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 값의 허용 범위: %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "%s 옵션의 잘못된 인자" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "트랜잭션 ID epoch (-e) 값은 -1이 아니여야함" -#: pg_resetwal.c:181 +#: pg_resetwal.c:182 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "제일 오래된 트랜잭션 ID (-u)는 %u 보다 크거나 같아야 함" -#: pg_resetwal.c:194 +#: pg_resetwal.c:195 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "트랜잭션 ID (-x)는 %u 보다 크거나 같아야 함" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, c-format -msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" -msgstr "-c 옵션으로 지정한 트랜잭션 ID는 0이거나 2이상이어야 함" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "-c 옵션으로 지정한 트랜잭션 ID는 %u이거나 %u이상이어야 함" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) 값은 0이 아니여야함" -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "멀티트랜잭션 ID (-m) 값은 0이 아니여야함" -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "제일 오래된 멀티트랜잭션 ID (-m) 값은 0이 아니여야함" -#: pg_resetwal.c:274 +#: pg_resetwal.c:275 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "멀티트랜잭션 옵셋 (-O) 값은 -1이 아니여야함" -#: pg_resetwal.c:296 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "--wal-segsize 값은 숫자여야 합니다" - -#: pg_resetwal.c:298 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "--wal-segsize 값은 1부터 1024사이 2^n 값이어야 합니다" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "%s 값은 1부터 1024사이 2^n 값이어야 합니다" -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인수를 지정했습니다. (처음 \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "데이터 디렉터리를 지정하지 않았음" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\" 계정으로는 실행 할 수 없음" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "PostgreSQL superuser로 %s 프로그램을 실행하십시오." -#: pg_resetwal.c:347 +#: pg_resetwal.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "\"%s\" 디렉터리 읽기 권한 없음: %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:357 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "\"%s\" 이름의 디렉터리로 이동할 수 없습니다: %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" - -#: pg_resetwal.c:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "\"%s\" 잠금 파일이 있음" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "" "서버가 가동중인가요? 그렇지 않다면, 이 파일을 지우고 다시 시도하십시오." -#: pg_resetwal.c:467 +#: pg_resetwal.c:475 #, c-format -msgid "" -"\n" -"If these values seem acceptable, use -f to force reset.\n" -msgstr "" -"\n" -"이 설정값들이 타당하다고 판단되면, 강제로 갱신하려면, -f 옵션을 쓰세요.\n" +msgid "not proceeding because control file values were guessed" +msgstr "컨트롤 파일 값들이 추정되었기에 더 이상 진행하지 않습니다." -#: pg_resetwal.c:479 +#: pg_resetwal.c:476 #, c-format -msgid "" -"The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" +msgid "If these values seem acceptable, use -f to force reset." msgstr "" -"이 데이터베이스 서버는 정상적으로 중지되지 못했습니다.\n" -"트랜잭션 로그를 다시 설정하는 것은 자료 손실을 야기할 수 있습니다.\n" -"그럼에도 불구하고 진행하려면, -f 옵션을 사용해서 강제 설정을 하십시오.\n" +"이 설정값들이 타당하다고 판단되면, 강제로 갱신하려면, -f 옵션을 쓰세요." -#: pg_resetwal.c:493 +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "데이터베이스 서버가 깔끔하게 중지 되지 못했습니다." + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "미리 쓰기 로그를 리셋하면 자료를 잃어버릴 수 있습니다." + +#: pg_resetwal.c:487 +#, c-format +msgid "If you want to proceed anyway, use -f to force reset." +msgstr "이 설정값들로 강제로 갱신하려면, -f 옵션을 쓰세요." + +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" msgstr "트랜잭션 로그 재설정\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "\"%s\" 파일은 예상치 않게 비었음" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "\"%s\" 파일을 읽을 수 없음: %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "잘못된 버전의 데이터 디렉터리입니다." -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, c-format msgid "" "File \"%s\" contains \"%s\", which is not compatible with this program's " "version \"%s\"." msgstr "\"%s\" 파일 버전은 \"%s\", 이 프로그램 버전은 \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:576 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -235,12 +343,12 @@ msgstr "" "보십시오.\n" " touch %s" -#: pg_resetwal.c:597 +#: pg_resetwal.c:604 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control 파일이 있지만, CRC값이 잘못되었습니다; 경고와 함께 진행함" -#: pg_resetwal.c:606 +#: pg_resetwal.c:613 #, c-format msgid "" "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" @@ -251,12 +359,12 @@ msgstr[0] "" "pg_control 파일에 잘못된 WAL 조각 파일 크기(%d 바이트)가 지정됨; 경고와 함께 " "진행함" -#: pg_resetwal.c:617 +#: pg_resetwal.c:624 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control 파일이 있지만, 손상되었거나 버전을 알 수 없음; 무시함" -#: pg_resetwal.c:712 +#: pg_resetwal.c:719 #, c-format msgid "" "Guessed pg_control values:\n" @@ -265,7 +373,7 @@ msgstr "" "추측된 pg_control 설정값들:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "" "Current pg_control values:\n" @@ -274,167 +382,167 @@ msgstr "" "현재 pg_control 설정값들:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control 버전 번호: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "카탈로그 버전 번호: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "데이터베이스 시스템 식별자: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "마지막 체크포인트 TimeLineID: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "마지막 체크포인트 full_page_writes: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "off" msgstr "off" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "on" -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "마지막 체크포인트 NextXID: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "마지막 체크포인트 NextOID: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "마지막 체크포인트 NextMultiXactId: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "마지막 체크포인트 NextMultiOffset: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "마지막 체크포인트 제일 오래된 XID: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "마지막 체크포인트 제일 오래된 XID의 DB:%u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "마지막 체크포인트 제일 오래된 ActiveXID:%u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "마지막 체크포인트 제일 오래된 MultiXid:%u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "마지막 체크포인트 제일 오래된 MultiXid의 DB:%u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "마지막 체크포인트 제일 오래된 CommitTsXid:%u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "마지막 체크포인트 최신 CommitTsXid: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "최대 자료 정렬: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "데이터베이스 블록 크기: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "대형 릴레이션의 세그먼트당 블럭 갯수: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "WAL 블록 크기: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "WAL 세그먼트의 크기(byte): %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "식별자 최대 길이: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "인덱스에서 사용하는 최대 열 수: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOAST 청크의 최대 크기: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "대형객체 청크의 최대 크기: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "날짜/시간형 자료의 저장방식: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "64-비트 정수" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8 인수 전달: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "참조별" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "값별" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, c-format msgid "Data page checksum version: %u\n" msgstr "데이터 페이지 체크섬 버전: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:794 #, c-format msgid "" "\n" @@ -447,102 +555,82 @@ msgstr "" "변경될 값:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "리셋 뒤 첫 로그 세그먼트: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMultiXid의 DB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID의 DB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID epoch: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "제일 오래된 CommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "최근 CommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "\"%s\" 디렉터리 열 수 없음: %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 닫을 수 없음: %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "\"%s\" 파일을 지울 수 없음: %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "\"%s\" 파일 쓰기 실패: %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "fsync 오류: %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -551,23 +639,65 @@ msgstr "" "%s 프로그램은 PostgreSQL 트랜잭션 로그를 다시 설정합니다.\n" "\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 +#, c-format +msgid "Usage:\n" +msgstr "사용법:\n" + +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [옵션]... DATADIR\n" + +#: pg_resetwal.c:1172 #, c-format msgid "" -"Usage:\n" -" %s [OPTION]... DATADIR\n" "\n" +"Options:\n" msgstr "" -"사용법:\n" -" %s [옵션]... DATADIR\n" "\n" +"옵션들:\n" + +#: pg_resetwal.c:1173 +#, c-format +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]DATADIR 데이터 디렉터리\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1174 #, c-format -msgid "Options:\n" -msgstr "옵션들:\n" +msgid "" +" -f, --force force update to be done even after unclean shutdown " +"or\n" +" if pg_control values had to be guessed\n" +msgstr "" +" -f, --force 비정상적으로 종료되었거나 pg_control 값을 추측해야\n" +" 하는 경우에도 강제로 갱신함\n" + +#: pg_resetwal.c:1176 +#, c-format +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr " -n, --dry-run 갱신하지 않음, 컨트롤 값들을 보여주기만함\n" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version 버전 정보를 보여주고 마침\n" + +#: pg_resetwal.c:1178 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help 이 도움말을 표시하고 종료\n" + +#: pg_resetwal.c:1180 +#, c-format +msgid "" +"\n" +"Options to override control file values:\n" +msgstr "" +"\n" +"컨트롤 파일 값을 바꿀 옵션들:\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1181 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -580,22 +710,12 @@ msgstr "" "션\n" " ID 값 (0이면 바꾸지 않음)\n" -#: pg_resetwal.c:1133 -#, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR 데이터 디렉터리\n" - -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1184 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH 다음 트랙잭션 ID epoch 지정\n" -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force 강제로 갱신함\n" - -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, c-format msgid "" " -l, --next-wal-file=WALFILE set minimum starting location for new " @@ -604,58 +724,39 @@ msgstr "" " -l, --next-wal-file=WALFILE 새 트랜잭션 로그를 위한 WAL 최소 시작 위치" "를 강제로 지정\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, c-format msgid "" " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr "" " -m, --multixact-ids=MXID,MXID 다음 제일 오래된 멀티트랜잭션 ID 지정\n" -#: pg_resetwal.c:1138 -#, c-format -msgid "" -" -n, --dry-run no update, just show what would be done\n" -msgstr "" -" -n, --dry-run 갱신하지 않음, 컨트롤 값들을 보여주기만 " -"함\n" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID 다음 OID 지정\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET 다음 멀티트랜잭션 옵셋 지정\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1189 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID 제일 오래된 트랜잭션 ID 지정\n" -#: pg_resetwal.c:1142 -#, c-format -msgid "" -" -V, --version output version information, then exit\n" -msgstr " -V, --version 버전 정보를 보여주고 마침\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID 다음 트랜잭션 ID 지정\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1191 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE WAL 조각 파일 크기, MB 단위\n" -#: pg_resetwal.c:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help 이 도움말을 표시하고 종료\n" - -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "" "\n" @@ -664,7 +765,25 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" + +#, c-format +#~ msgid "argument of --wal-segsize must be a number" +#~ msgstr "--wal-segsize 값은 숫자여야 합니다" + +#, c-format +#~ msgid "" +#~ "The database server was not shut down cleanly.\n" +#~ "Resetting the write-ahead log might cause data to be lost.\n" +#~ "If you want to proceed anyway, use -f to force reset.\n" +#~ msgstr "" +#~ "이 데이터베이스 서버는 정상적으로 중지되지 못했습니다.\n" +#~ "트랜잭션 로그를 다시 설정하는 것은 자료 손실을 야기할 수 있습니다.\n" +#~ "그럼에도 불구하고 진행하려면, -f 옵션을 사용해서 강제 설정을 하십시오.\n" + +#, c-format +#~ msgid " -f, --force force update to be done\n" +#~ msgstr " -f, --force 강제로 갱신함\n" diff --git a/src/bin/pg_resetwal/po/ru.po b/src/bin/pg_resetwal/po/ru.po index 5f012f91f91b1..c26776baad267 100644 --- a/src/bin/pg_resetwal/po/ru.po +++ b/src/bin/pg_resetwal/po/ru.po @@ -5,13 +5,13 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2009. # Dmitriy Olshevskiy , 2014. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_resetxlog (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-11 15:31+0300\n" -"PO-Revision-Date: 2023-09-11 16:14+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-05 12:19+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -41,6 +41,107 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"возможно несоответствие порядка байт\n" +"Порядок байт в файле pg_control может не соответствовать используемому\n" +"этой программой. В этом случае результаты будут неверными и\n" +"установленный PostgreSQL будет несовместим с этим каталогом данных." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не удалось записать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -71,160 +172,170 @@ msgstr "не удалось перезапуститься с ограничен msgid "could not get exit code from subprocess: error code %lu" msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неверное значение \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "значение %s должно быть в диапазоне %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "недопустимый аргумент параметра %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "эпоха ID транзакции (-e) не должна быть равна -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:182 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "ID старейшей транзакции (-u) должен быть больше или равен %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:195 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "ID транзакции (-x) должен быть больше или равен %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, c-format -msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" -msgstr "ID транзакции (-c) должен быть равен 0, либо больше или равен 2" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "ID транзакции (-c) должен быть равен %u, либо больше или равен %u" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) не должен быть равен 0" -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "ID мультитранзакции (-m) не должен быть равен 0" -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "ID старейшей мультитранзакции (-m) не должен быть равен 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:275 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "смещение мультитранзакции (-O) не должно быть равно -1" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "аргументом --wal-segsize должно быть число" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "аргументом %s должна быть степень двух от 1 до 1024" -#: pg_resetwal.c:298 -#, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "аргументом --wal-segsize должна быть степень двух от 1 до 1024" - -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "программу не должен запускать root" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускать %s нужно от имени суперпользователя PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" -msgstr "не удалось считать права на каталог \"%s\": %m" +msgstr "не удалось прочитать права на каталог \"%s\": %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:357 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "не удалось открыть файл \"%s\" для чтения: %m" - -#: pg_resetwal.c:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "файл блокировки \"%s\" существует" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "" "Возможно, сервер запущен? Если нет, удалите этот файл и попробуйте снова." -#: pg_resetwal.c:467 +#: pg_resetwal.c:475 #, c-format -msgid "" -"\n" -"If these values seem acceptable, use -f to force reset.\n" +msgid "not proceeding because control file values were guessed" msgstr "" -"\n" -"Если эти значения приемлемы, выполните сброс принудительно, добавив ключ -" -"f.\n" +"выполнение прервано, так как значения из контрольного файла являются " +"предполагаемыми" -#: pg_resetwal.c:479 +#: pg_resetwal.c:476 #, c-format -msgid "" -"The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" +msgid "If these values seem acceptable, use -f to force reset." +msgstr "" +"Если эти значения всё же приемлемы, выполните сброс принудительно, добавив " +"ключ -f." + +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "сервер баз данных не был остановлен штатно" + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "Сброс журнала предзаписи может привести к потере данных." + +#: pg_resetwal.c:487 +#, c-format +msgid "If you want to proceed anyway, use -f to force reset." msgstr "" -"Сервер баз данных был остановлен некорректно.\n" -"Сброс журнала предзаписи может привести к потере данных.\n" -"Если вы хотите сбросить его, несмотря на это, добавьте ключ -f.\n" +"Если вы всё же хотите продолжить, выполните сброс принудительно, добавив " +"ключ -f." -#: pg_resetwal.c:493 +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" msgstr "Журнал предзаписи сброшен\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "файл \"%s\" оказался пустым" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не удалось прочитать файл \"%s\": %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "каталог данных имеет неверную версию" -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, c-format msgid "" "File \"%s\" contains \"%s\", which is not compatible with this program's " @@ -232,7 +343,7 @@ msgid "" msgstr "" "Файл \"%s\" содержит строку \"%s\", а ожидается версия программы \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:576 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -243,14 +354,14 @@ msgstr "" " touch %s\n" "и повторите попытку." -#: pg_resetwal.c:597 +#: pg_resetwal.c:604 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "" "pg_control существует, но его контрольная сумма неверна; продолжайте с " "осторожностью" -#: pg_resetwal.c:606 +#: pg_resetwal.c:613 #, c-format msgid "" "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" @@ -267,14 +378,14 @@ msgstr[2] "" "в pg_control указан некорректный размер сегмента WAL (%d Б); продолжайте с " "осторожностью" -#: pg_resetwal.c:617 +#: pg_resetwal.c:624 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "" "pg_control испорчен или имеет неизвестную либо недопустимую версию; " "игнорируется..." -#: pg_resetwal.c:712 +#: pg_resetwal.c:719 #, c-format msgid "" "Guessed pg_control values:\n" @@ -283,7 +394,7 @@ msgstr "" "Предполагаемые значения pg_control:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "" "Current pg_control values:\n" @@ -292,181 +403,181 @@ msgstr "" "Текущие значения pg_control:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "Номер версии pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версии каталога: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "Идентификатор системы баз данных: %llu\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Линия времени последней конт. точки: %u\n" # skip-rule: no-space-after-period -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Режим full_page_writes последней к.т: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "off" msgstr "выкл." -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "вкл." # skip-rule: capital-letter-first -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID последней конт. точки: %u:%u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "БД с oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID последней к. т.: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid последней конт. точки: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, 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:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid последней к. т.: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Макс. предел выравнивания данных: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "Размер блока БД: %u\n" # skip-rule: double-space -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоков в макс. сегменте отношений: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "Размер блока WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байт в сегменте WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальная длина идентификаторов: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Макс. число столбцов в индексе: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальный размер порции TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Размер порции большого объекта: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "Формат хранения даты/времени: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "64-битные целые" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргумента float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "по ссылке" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "по значению" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версия контрольных сумм страниц: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:794 #, c-format msgid "" "\n" @@ -479,102 +590,82 @@ msgstr "" "Значения, которые будут изменены:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "Первый сегмент журнала после сброса: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "БД с oldestMultiXid: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "БД с oldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "Эпоха NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не удалось открыть каталог \"%s\": %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не удалось прочитать каталог \"%s\": %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ошибка удаления файла \"%s\": %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "не удалось записать файл \"%s\": %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "ошибка синхронизации с ФС: %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -583,23 +674,69 @@ msgstr "" "%s сбрасывает журнал предзаписи PostgreSQL.\n" "\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 +#, c-format +msgid "Usage:\n" +msgstr "Использование:\n" + +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [ПАРАМЕТР]... КАТ_ДАННЫХ\n" + +#: pg_resetwal.c:1172 #, c-format msgid "" -"Usage:\n" -" %s [OPTION]... DATADIR\n" "\n" +"Options:\n" msgstr "" -"Использование:\n" -" %s [ПАРАМЕТР]... КАТ_ДАННЫХ\n" "\n" +"Параметры:\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1173 #, c-format -msgid "Options:\n" -msgstr "Параметры:\n" +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1174 +#, c-format +msgid "" +" -f, --force force update to be done even after unclean shutdown " +"or\n" +" if pg_control values had to be guessed\n" +msgstr "" +" -f, --force принудительно произвести изменения, даже в случае\n" +" недостоверных значений pg_control или после " +"нештатного\n" +" отключения сервера\n" + +#: pg_resetwal.c:1176 +#, c-format +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr "" +" -n, --dry-run показать, какие действия будут выполнены, но не\n" +" выполнять их\n" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" + +#: pg_resetwal.c:1178 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показать эту справку и выйти\n" + +#: pg_resetwal.c:1180 +#, c-format +msgid "" +"\n" +"Options to override control file values:\n" +msgstr "" +"\n" +"Параметры, переопределяющие значения из контрольного файла:\n" + +#: pg_resetwal.c:1181 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -611,24 +748,13 @@ msgstr "" " задать старейшую и новейшую транзакции,\n" " несущие метки времени (0 — не менять)\n" -#: pg_resetwal.c:1133 -#, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" - -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1184 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr "" " -e, --epoch=XIDEPOCH задать эпоху для ID следующей транзакции\n" -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr "" -" -f, --force принудительное выполнение операции\n" - -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, c-format msgid "" " -l, --next-wal-file=WALFILE set minimum starting location for new " @@ -637,7 +763,7 @@ msgstr "" " -l, --next-wal-file=ФАЙЛ_WAL задать минимальное начальное положение\n" " для нового WAL\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, c-format msgid "" " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" @@ -645,55 +771,35 @@ msgstr "" " -m, --multixact-ids=MXID,MXID задать ID следующей и старейшей\n" " мультитранзакции\n" -#: pg_resetwal.c:1138 -#, c-format -msgid "" -" -n, --dry-run no update, just show what would be done\n" -msgstr "" -" -n, --dry-run показать, какие действия будут " -"выполнены,\n" -" но не выполнять их\n" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID задать следующий OID\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr "" " -O, --multixact-offset=СМЕЩЕНИЕ задать смещение следующей " "мультитранзакции\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1189 #, 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:1142 -#, c-format -msgid "" -" -V, --version output version information, then exit\n" -msgstr " -V, --version показать версию и выйти\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID задать ID следующей транзакции\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1191 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr "" " --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" -#: pg_resetwal.c:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help показать эту справку и выйти\n" - -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "" "\n" @@ -702,11 +808,30 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" +#, c-format +#~ msgid "argument of --wal-segsize must be a number" +#~ msgstr "аргументом --wal-segsize должно быть число" + +#, c-format +#~ msgid "" +#~ "The database server was not shut down cleanly.\n" +#~ "Resetting the write-ahead log might cause data to be lost.\n" +#~ "If you want to proceed anyway, use -f to force reset.\n" +#~ msgstr "" +#~ "Сервер баз данных был остановлен некорректно.\n" +#~ "Сброс журнала предзаписи может привести к потере данных.\n" +#~ "Если вы хотите сбросить его, несмотря на это, добавьте ключ -f.\n" + +#, c-format +#~ msgid " -f, --force force update to be done\n" +#~ msgstr "" +#~ " -f, --force принудительное выполнение операции\n" + #, c-format #~ msgid "could not load library \"%s\": error code %lu" #~ msgstr "не удалось загрузить библиотеку \"%s\" (код ошибки: %lu)" diff --git a/src/bin/pg_resetwal/po/sv.po b/src/bin/pg_resetwal/po/sv.po index 7bf463e54b1b4..71529e5ebf276 100644 --- a/src/bin/pg_resetwal/po/sv.po +++ b/src/bin/pg_resetwal/po/sv.po @@ -1,14 +1,14 @@ # Swedish message translation file for resetxlog. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Peter Eisentraut , 2010. # Mats Erik Andersson , 2014. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-31 19:50+0000\n" -"PO-Revision-Date: 2023-08-31 22:00+0200\n" +"POT-Creation-Date: 2024-07-12 17:51+0000\n" +"PO-Revision-Date: 2024-07-12 23:47+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -37,6 +37,106 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, 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:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, 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:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "kunde inte stänga fil \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"möjligt fel i byteordning\n" +"Den byteordning som filen från pg_control lagrats med passar kanske\n" +"inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" +"och PostgreSQL-installationen vara inkompatibel med databaskatalogen." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "kunde inte skriva fil \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -67,164 +167,168 @@ msgstr "kunde inte köra igen med token för begränsad åtkomst: felkod %lu" msgid "could not get exit code from subprocess: error code %lu" msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s måste vara i intervallet %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "ogiltigt argument för flaggan %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, 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:182 #, c-format 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:194 +#: pg_resetwal.c:195 #, 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:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, 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" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "transaktions-ID (-c) måste antingen vara %u eller större än eller lika med %u" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) får inte vara 0." -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "Multitransaktions-ID (-m) får inte vara 0." -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "Äldsta multitransaktions-ID (-m) får inte vara 0." -#: pg_resetwal.c:274 +#: pg_resetwal.c:275 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "Multitransaktionsoffset (-O) får inte vara -1." -#: pg_resetwal.c:296 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "argumentet till --wal-segsize måste vara ett tal" - -#: pg_resetwal.c:298 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "argumentet till --wal-segsize måste vara en tvåpotens mellan 1 och 1024" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "argumentet till %s måste vara en tvåpotens mellan 1 och 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "kan inte köras av \"root\"" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Du måste köra %s som PostgreSQL:s superuser." -#: pg_resetwal.c:347 +#: pg_resetwal.c:351 #, 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:353 +#: pg_resetwal.c:357 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, 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:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "låsfil med namn \"%s\" finns redan" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, 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:467 +#: pg_resetwal.c:475 #, c-format -msgid "" -"\n" -"If these values seem acceptable, use -f to force reset.\n" -msgstr "" -"\n" -"Om dessa värden verkar godtagbara, använd då -f för att\n" -"framtvinga återställning.\n" +msgid "not proceeding because control file values were guessed" +msgstr "fortsätter inte eftersom kontrollfilens värden har gissats" -#: pg_resetwal.c:479 +#: pg_resetwal.c:476 #, c-format -msgid "" -"The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" -msgstr "" -"Databasservern stängdes inte av ordentligt. Att återställa\n" -"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" +msgid "If these values seem acceptable, use -f to force reset." +msgstr "Om dessa värden verkar godtagbara, använd då -f för att framtvinga återställning." + +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "databasservern stångdes inte ner utan fel" + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "Nollställa write-ahead-loggen kan göra att data förloras." + +#: pg_resetwal.c:487 +#, c-format +msgid "If you want to proceed anyway, use -f to force reset." +msgstr "Om du vill fortsätta ändå, använd -f för att framtvinga återställning." -#: pg_resetwal.c:493 +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" msgstr "Återställning av write-ahead-log\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "oväntad tom fil \"%s\"" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "kunde inte läsa fil \"%s\": %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "datakatalogen har fel version" -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, 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:569 +#: pg_resetwal.c:576 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -234,24 +338,24 @@ msgstr "" "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:597 +#: pg_resetwal.c:604 #, 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:606 +#: pg_resetwal.c:613 #, 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:617 +#: pg_resetwal.c:624 #, 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:712 +#: pg_resetwal.c:719 #, c-format msgid "" "Guessed pg_control values:\n" @@ -260,7 +364,7 @@ msgstr "" "Gissade värden för pg_control:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "" "Current pg_control values:\n" @@ -272,168 +376,168 @@ msgstr "" # 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:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "Versionsnummer för pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "Katalogversion: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "Databasens systemidentifierare: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Senaste kontrollpunktens full_page_writes: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "off" msgstr "av" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "på" -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID vid senaste kontrollpunkt: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, 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:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB för oldestMulti vid senaste kontrollpkt: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Maximal jämkning av data (alignment): %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "Databasens blockstorlek: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Block per segment i en stor relation: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "Blockstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Segmentstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Maximal längd för identifierare: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Maximalt antal kolonner i ett index: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Maximal storlek för en TOAST-enhet: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Storlek för large-object-enheter: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "Representation av dag och tid: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "64-bitars heltal" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Åtkomst till float8-argument: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "referens" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "värdeåtkomst" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, c-format msgid "Data page checksum version: %u\n" msgstr "Checksummaversion för datasidor: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:794 #, c-format msgid "" "\n" @@ -448,102 +552,82 @@ msgstr "" # November 26th, 2014: Insert additional spacing to fit # with the first translated text, which uses most characters. -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "Första loggsegment efter återställning: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "DB för OldestMulti: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "DB för OldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "Epoch för NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "kunde inte öppna katalog \"%s\": %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "kunde inte läsa katalog \"%s\": %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "kunde inte radera fil \"%s\": %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "kunde inte skriva fil \"%s\": %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "misslyckad fsync: %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -552,23 +636,62 @@ msgstr "" "%s återställer write-ahead-log för PostgreSQL.\n" "\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 +#, c-format +msgid "Usage:\n" +msgstr "Användning:\n" + +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [FLAGGA]... DATAKATALOG\n" + +#: pg_resetwal.c:1172 #, c-format msgid "" -"Usage:\n" -" %s [OPTION]... DATADIR\n" "\n" +"Options:\n" msgstr "" -"Användning:\n" -" %s [FLAGGA]... DATAKATALOG\n" "\n" +"Flaggor:\n" + +#: pg_resetwal.c:1173 +#, c-format +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]DATADIR datakatalog\n" + +#: pg_resetwal.c:1174 +#, c-format +msgid "" +" -f, --force force update to be done even after unclean shutdown or\n" +" if pg_control values had to be guessed\n" +msgstr "" +" -f, --force tvinga uppdatering även om servern inte stängts ner\n" +" korrekt eller om värden i pg_control har gissats\n" + +#: pg_resetwal.c:1176 +#, 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" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1178 #, c-format -msgid "Options:\n" -msgstr "Flaggor:\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1180 +#, c-format +msgid "" +"\n" +"Options to override control file values:\n" +msgstr "\nFlaggor som övertrumfar värden i kontrollfilen:\n" + +#: pg_resetwal.c:1181 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -580,72 +703,47 @@ msgstr "" " kan ha commit-tidstämpel (noll betyder\n" " ingen ändring)\n" -#: pg_resetwal.c:1133 -#, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR datakatalog\n" - -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1184 #, 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" -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force framtvinga uppdatering\n" - -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, 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" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, 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" -#: pg_resetwal.c:1138 -#, 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" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID sätt nästa OID\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET sätt nästa multitransaktionsoffset\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1189 #, c-format 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:1142 -#, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version visa versionsinformation, avsluta sedan\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, 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" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1191 #, c-format 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:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help visa denna hjälp, avsluta sedan\n" - -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "" "\n" @@ -654,15 +752,7 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "kan inte skapa token för begränsad åtkomst på denna plattorm: felkod %lu" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "kunde inte ladda länkbibliotek \"%s\": felkod %lu" diff --git a/src/bin/pg_resetwal/po/uk.po b/src/bin/pg_resetwal/po/uk.po index e761d7a0d3d9c..0b18f98387d88 100644 --- a/src/bin/pg_resetwal/po/uk.po +++ b/src/bin/pg_resetwal/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:19+0000\n" -"PO-Revision-Date: 2023-12-20 11:53\n" +"POT-Creation-Date: 2024-08-31 06:21+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_resetwal.pot\n" -"X-Crowdin-File-ID: 939\n" +"X-Crowdin-File: /REL_17_STABLE/pg_resetwal.pot\n" +"X-Crowdin-File-ID: 1010\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,6 +37,102 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../../common/controldata_utils.c:97 pg_resetwal.c:370 pg_resetwal.c:525 +#: pg_resetwal.c:573 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" + +#: ../../common/controldata_utils.c:110 pg_resetwal.c:534 pg_resetwal.c:588 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "неможливо закрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "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." +msgstr "можлива помилка у послідовності байтів.\n" +"Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 pg_resetwal.c:1134 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 pg_resetwal.c:1142 pg_resetwal.c:1154 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не вдалося записати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_resetwal.c:928 pg_resetwal.c:981 pg_resetwal.c:1016 pg_resetwal.c:1054 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 pg_resetwal.c:1068 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: ../../common/restricted_token.c:60 #, c-format msgid "could not open process token: error code %lu" @@ -67,159 +163,168 @@ msgstr "не вдалося перезапустити з обмеженим т msgid "could not get exit code from subprocess: error code %lu" msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неприпустиме значення \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s має бути в діапазоні %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 +#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 +#: pg_resetwal.c:270 pg_resetwal.c:281 #, c-format msgid "invalid argument for option %s" msgstr "неприпустимий аргумент для параметру %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:165 pg_resetwal.c:178 pg_resetwal.c:191 pg_resetwal.c:204 +#: pg_resetwal.c:211 pg_resetwal.c:230 pg_resetwal.c:243 pg_resetwal.c:251 +#: pg_resetwal.c:271 pg_resetwal.c:282 pg_resetwal.c:307 pg_resetwal.c:320 +#: pg_resetwal.c:327 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_resetwal.c:168 +#: pg_resetwal.c:169 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "епоха ID транзакції (-e) не повинна бути -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:182 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "найстаріший ID транзакції (-u) має бути більший або рівним %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:195 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "ID транзакції (-x) має бути більшим чи рівним %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:217 pg_resetwal.c:221 #, c-format -msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" -msgstr "ID транзакції (-c) повинен дорівнювати 0, бути більшим за або дорівнювати 2" +msgid "transaction ID (-c) must be either %u or greater than or equal to %u" +msgstr "ідентифікатор транзакції (-c) має бути або %u, або більше чи дорівнювати %u" -#: pg_resetwal.c:233 +#: pg_resetwal.c:234 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) не може бути 0" -#: pg_resetwal.c:254 +#: pg_resetwal.c:255 #, c-format msgid "multitransaction ID (-m) must not be 0" msgstr "ID мультитранзакції (-m) не повинен бути 0" -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "найстарший ID мультитранзакції (-m) не повинен бути 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:275 #, c-format msgid "multitransaction offset (-O) must not be -1" msgstr "зсув мультитранзакції (-O) не повинен бути -1" -#: pg_resetwal.c:296 -#, c-format -msgid "argument of --wal-segsize must be a number" -msgstr "аргумент --wal-segsize повинен бути числом" - -#: pg_resetwal.c:298 +#: pg_resetwal.c:301 #, c-format -msgid "argument of --wal-segsize must be a power of two between 1 and 1024" -msgstr "аргумент --wal-segsize повинен бути ступенем 2 між 1 і 1024" +msgid "argument of %s must be a power of two between 1 and 1024" +msgstr "аргумент %s має бути ступенем двійки в діапазоні від 1 до 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:318 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:326 #, c-format msgid "no data directory specified" msgstr "каталог даних не вказано" -#: pg_resetwal.c:336 +#: pg_resetwal.c:340 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\" не може це виконувати" -#: pg_resetwal.c:337 +#: pg_resetwal.c:341 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускати %s треба від суперкористувача PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:351 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:357 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не вдалося змінити каталог на \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "не вдалося відкрити файл \"%s\" для читання: %m" - -#: pg_resetwal.c:371 +#: pg_resetwal.c:375 #, c-format msgid "lock file \"%s\" exists" msgstr "файл блокування \"%s\" вже існує" -#: pg_resetwal.c:372 +#: pg_resetwal.c:376 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Чи запущений сервер? Якщо ні, видаліть файл блокування і спробуйте знову." -#: pg_resetwal.c:467 +#: pg_resetwal.c:475 #, c-format -msgid "\n" -"If these values seem acceptable, use -f to force reset.\n" -msgstr "\n" -"Якщо ці значення виглядають допустимими, використайте -f, щоб провести перевстановлення.\n" +msgid "not proceeding because control file values were guessed" +msgstr "не виконується, оскільки значення контрольного файлу були вгадані" + +#: pg_resetwal.c:476 +#, c-format +msgid "If these values seem acceptable, use -f to force reset." +msgstr "Якщо ці значення здаються прийнятними, використовуйте -f для примусового скидання." + +#: pg_resetwal.c:485 +#, c-format +msgid "database server was not shut down cleanly" +msgstr "сервер бази даних завершив роботу некоректно" + +#: pg_resetwal.c:486 +#, c-format +msgid "Resetting the write-ahead log might cause data to be lost." +msgstr "Скидання журналу попереднього запису може призвести до втрати даних." -#: pg_resetwal.c:479 +#: pg_resetwal.c:487 #, c-format -msgid "The database server was not shut down cleanly.\n" -"Resetting the write-ahead log might cause data to be lost.\n" -"If you want to proceed anyway, use -f to force reset.\n" -msgstr "Сервер баз даних був зупинений некоректно.\n" -"Очищення журналу передзапису може привести до втрати даних.\n" -"Якщо ви все одно хочете продовжити, використайте параметр -f.\n" +msgid "If you want to proceed anyway, use -f to force reset." +msgstr "Якщо ви все одно хочете продовжити, використовуйте -f для примусового скидання." -#: pg_resetwal.c:493 +#: pg_resetwal.c:500 #, c-format msgid "Write-ahead log reset\n" msgstr "Журнал передзапису скинуто\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:532 #, c-format msgid "unexpected empty file \"%s\"" msgstr "неочікуваний порожній файл \"%s\"" -#: pg_resetwal.c:527 pg_resetwal.c:581 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не вдалося прочитати файл \"%s\": %m" - -#: pg_resetwal.c:535 +#: pg_resetwal.c:542 #, c-format msgid "data directory is of wrong version" msgstr "каталог даних неправильної версії" -#: pg_resetwal.c:536 +#: pg_resetwal.c:543 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Файл \"%s\" містить \"%s\", який не сумісний з версією цієї програми \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:576 #, c-format msgid "If you are sure the data directory path is correct, execute\n" " touch %s\n" @@ -228,12 +333,12 @@ msgstr "Якщо Ви впевнені, що шлях каталогу дани " touch %s\n" "і спробуйте знову." -#: pg_resetwal.c:597 +#: pg_resetwal.c:604 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control існує, але має недопустимий CRC; продовжуйте з обережністю" -#: pg_resetwal.c:606 +#: pg_resetwal.c:613 #, 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" @@ -242,301 +347,320 @@ msgstr[1] "pg_control вказує неприпустимий розмір се msgstr[2] "pg_control вказує неприпустимий розмір сегмента WAL (%d байтів); продовжуйте з обережністю" msgstr[3] "pg_control вказує неприпустимий розмір сегмента WAL (%d байтів); продовжуйте з обережністю" -#: pg_resetwal.c:617 +#: pg_resetwal.c:624 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control існує, але зламаний або неправильної версії; ігнорується" -#: pg_resetwal.c:712 +#: pg_resetwal.c:719 #, c-format msgid "Guessed pg_control values:\n\n" msgstr "Припустимі значення pg_control:\n\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:721 #, c-format msgid "Current pg_control values:\n\n" msgstr "Поточні значення pg_control:\n\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:723 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control номер версії: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:725 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версії каталогу: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:727 #, c-format msgid "Database system identifier: %llu\n" msgstr "Системний ідентифікатор бази даних: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Останній TimeLineID контрольної точки: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Останній full_page_writes контрольної точки: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "off" msgstr "вимк" -#: pg_resetwal.c:725 +#: pg_resetwal.c:732 msgid "on" msgstr "увімк" -#: pg_resetwal.c:726 +#: pg_resetwal.c:733 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Останній NextXID контрольної точки: %u%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Останній NextOID контрольної точки: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Останній NextMultiXactId контрольної точки: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Останній NextMultiOffset контрольної точки: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Останній oldestXID контрольної точки: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "Остання DB останнього oldestXID контрольної точки: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Останній oldestActiveXID контрольної точки: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Останній oldestMultiXid контрольної точки: %u \n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "Остання DB останньої oldestMulti контрольної точки: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Останній oldestCommitTsXid контрольної точки:%u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:754 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Останній newestCommitTsXid контрольної точки: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:756 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Максимальне вирівнювання даних: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:759 #, c-format msgid "Database block size: %u\n" msgstr "Розмір блоку бази даних: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:761 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоків на сегмент великого відношення: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:763 #, c-format msgid "WAL block size: %u\n" msgstr "Pозмір блоку WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:765 pg_resetwal.c:851 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байтів на сегмент WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:767 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальна довжина ідентифікаторів: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:769 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Максимальна кількість стовпців в індексі: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:771 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальний розмір сегменту TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:773 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Розмір сегменту великих обїєктів: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:776 #, c-format msgid "Date/time type storage: %s\n" msgstr "Дата/час типу сховища: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:777 msgid "64-bit integers" msgstr "64-бітні цілі" -#: pg_resetwal.c:771 +#: pg_resetwal.c:778 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргументу Float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by reference" msgstr "за посиланням" -#: pg_resetwal.c:772 +#: pg_resetwal.c:779 msgid "by value" msgstr "за значенням" -#: pg_resetwal.c:773 +#: pg_resetwal.c:780 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версія контрольних сум сторінок даних: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:794 #, c-format msgid "\n\n" "Values to be changed:\n\n" msgstr "\n\n" "Значення, що потребують зміни:\n\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:798 #, c-format msgid "First log segment after reset: %s\n" msgstr "Перший сегмент журналу після скидання: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:802 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:804 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:806 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:812 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:818 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:824 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:834 #, c-format msgid "NextXID epoch: %u\n" msgstr "Епоха NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:840 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:845 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:921 pg_resetwal.c:974 pg_resetwal.c:1009 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не вдалося відкрити каталог \"%s\": %m" - -#: pg_resetwal.c:947 pg_resetwal.c:988 pg_resetwal.c:1026 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не вдалося прочитати каталог \"%s\": %m" - -#: pg_resetwal.c:950 pg_resetwal.c:991 pg_resetwal.c:1029 +#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 pg_resetwal.c:1071 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не вдалося закрити каталог \"%s\": %m" -#: pg_resetwal.c:983 pg_resetwal.c:1021 +#: pg_resetwal.c:990 pg_resetwal.c:1028 pg_resetwal.c:1063 #, c-format msgid "could not delete file \"%s\": %m" msgstr "не вдалося видалити файл \"%s\": %m" -#: pg_resetwal.c:1093 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" - -#: pg_resetwal.c:1101 pg_resetwal.c:1113 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "не вдалося записати файл \"%s\": %m" - -#: pg_resetwal.c:1118 +#: pg_resetwal.c:1159 #, c-format msgid "fsync error: %m" msgstr "помилка fsync: %m" -#: pg_resetwal.c:1127 +#: pg_resetwal.c:1168 #, c-format msgid "%s resets the PostgreSQL write-ahead log.\n\n" msgstr "%s скидає журнал передзапису PostgreSQL.\n\n" -#: pg_resetwal.c:1128 +#: pg_resetwal.c:1169 #, c-format msgid "Usage:\n" -" %s [OPTION]... DATADIR\n\n" msgstr "Використання:\n" -" %s [OPTION]... КАТАЛОГ_ДАНИХ\n\n" -#: pg_resetwal.c:1129 +#: pg_resetwal.c:1170 +#, c-format +msgid " %s [OPTION]... DATADIR\n" +msgstr " %s [OPTION]... DATADIR\n" + +#: pg_resetwal.c:1172 +#, c-format +msgid "\n" +"Options:\n" +msgstr "\n" +"Параметри:\n" + +#: pg_resetwal.c:1173 +#, c-format +msgid " [-D, --pgdata=]DATADIR data directory\n" +msgstr " [-D, --pgdata=]DATADIR каталог з даними\n" + +#: pg_resetwal.c:1174 +#, c-format +msgid " -f, --force force update to be done even after unclean shutdown or\n" +" if pg_control values had to be guessed\n" +msgstr " -f, --force змусити оновлення виконуватися навіть після нечистого вимкнення або\n" +" якщо значення pg_control потрібно було вгадувати\n" + +#: pg_resetwal.c:1176 +#, c-format +msgid " -n, --dry-run no update, just show what would be done\n" +msgstr " -n, --dry-run не оновлювати, просто показати, що було б зроблено\n" + +#: pg_resetwal.c:1177 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version вивести інформацію про версію і вийти\n" + +#: pg_resetwal.c:1178 #, c-format -msgid "Options:\n" -msgstr "Параметри:\n" +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показати цю довідку потім вийти\n" -#: pg_resetwal.c:1130 +#: pg_resetwal.c:1180 +#, c-format +msgid "\n" +"Options to override control file values:\n" +msgstr "\n" +"Опції для перевизначення значень контрольного файлу:\n" + +#: pg_resetwal.c:1181 #, c-format msgid " -c, --commit-timestamp-ids=XID,XID\n" " set oldest and newest transactions bearing\n" @@ -545,79 +669,54 @@ msgstr " -c, --commit-timestamp-ids=XID,XID\n" " встановити найстарішу та найновішу транзакції\n" " затвердити позначку часу (нуль означає залишити без змін)\n" -#: pg_resetwal.c:1133 -#, c-format -msgid " [-D, --pgdata=]DATADIR data directory\n" -msgstr " [-D, --pgdata=]DATADIR каталог даних\n" - -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1184 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH встановити наступну епоху ID транзакцій\n" -#: pg_resetwal.c:1135 -#, c-format -msgid " -f, --force force update to be done\n" -msgstr " -f, --force примусово виконати оновлення\n" - -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1185 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFILE задати мінімальне початкове розташування для нового WAL\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1186 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID задати ID наступної і найстарішої мультитранзакції\n" -#: pg_resetwal.c:1138 -#, c-format -msgid " -n, --dry-run no update, just show what would be done\n" -msgstr " -n, --dry-run без оновлень, просто показати, що буде зроблено\n" - -#: pg_resetwal.c:1139 +#: pg_resetwal.c:1187 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID задати наступний OID\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1188 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET задати зсув наступної мультитранзакції\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1189 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID задати ID найстарішої транзакції\n" -#: pg_resetwal.c:1142 -#, c-format -msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version вивести інформацію про версію і вийти\n" - -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1190 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID задати ID наступної транзакції\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1191 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE розмір сегментів WAL, у мегабайтах\n" -#: pg_resetwal.c:1145 -#, c-format -msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help показати цю довідку і вийти\n" - -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1193 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1194 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c index a28d1667d4c8c..c933871ca9fda 100644 --- a/src/bin/pg_rewind/filemap.c +++ b/src/bin/pg_rewind/filemap.c @@ -26,6 +26,7 @@ #include #include +#include "access/xlog_internal.h" #include "catalog/pg_tablespace_d.h" #include "common/file_utils.h" #include "common/hashfn_unstable.h" @@ -704,7 +705,7 @@ decide_file_action(file_entry_t *entry) * Don't touch the control file. It is handled specially, after copying * all the other files. */ - if (strcmp(path, "global/pg_control") == 0) + if (strcmp(path, XLOG_CONTROL_FILE) == 0) return FILE_ACTION_NONE; /* Skip macOS system files */ diff --git a/src/bin/pg_rewind/pg_rewind.c b/src/bin/pg_rewind/pg_rewind.c index 2c8b1a070077f..9d16c1e6b4757 100644 --- a/src/bin/pg_rewind/pg_rewind.c +++ b/src/bin/pg_rewind/pg_rewind.c @@ -328,7 +328,7 @@ main(int argc, char **argv) * need to make sure by themselves that the target cluster is in a clean * state. */ - buffer = slurpFile(datadir_target, "global/pg_control", &size); + buffer = slurpFile(datadir_target, XLOG_CONTROL_FILE, &size); digestControlFile(&ControlFile_target, buffer, size); pg_free(buffer); @@ -338,12 +338,12 @@ main(int argc, char **argv) { ensureCleanShutdown(argv[0]); - buffer = slurpFile(datadir_target, "global/pg_control", &size); + buffer = slurpFile(datadir_target, XLOG_CONTROL_FILE, &size); digestControlFile(&ControlFile_target, buffer, size); pg_free(buffer); } - buffer = source->fetch_file(source, "global/pg_control", &size); + buffer = source->fetch_file(source, XLOG_CONTROL_FILE, &size); digestControlFile(&ControlFile_source, buffer, size); pg_free(buffer); @@ -636,7 +636,7 @@ perform_rewind(filemap_t *filemap, rewind_source *source, * Fetch the control file from the source last. This ensures that the * minRecoveryPoint is up-to-date. */ - buffer = source->fetch_file(source, "global/pg_control", &size); + buffer = source->fetch_file(source, XLOG_CONTROL_FILE, &size); digestControlFile(&ControlFile_source_after, buffer, size); pg_free(buffer); diff --git a/src/bin/pg_rewind/po/de.po b/src/bin/pg_rewind/po/de.po index 887def960a642..6c1093dafe57b 100644 --- a/src/bin/pg_rewind/po/de.po +++ b/src/bin/pg_rewind/po/de.po @@ -1,13 +1,13 @@ # German message translation file for pg_rewind -# Copyright (C) 2015-2024 PostgreSQL Global Development Group +# Copyright (C) 2015-2025 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. # msgid "" msgstr "" -"Project-Id-Version: pg_rewind (PostgreSQL) 17\n" +"Project-Id-Version: pg_rewind (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 10:23+0000\n" -"PO-Revision-Date: 2024-06-16 19:04+0200\n" +"POT-Creation-Date: 2025-04-03 12:24+0000\n" +"PO-Revision-Date: 2025-04-03 16:19+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,22 +16,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -41,19 +41,19 @@ msgstr "Tipp: " msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 -#: local_source.c:163 parsexlog.c:350 +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:102 +#: local_source.c:161 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" -#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: local_source.c:121 local_source.c:172 +#: local_source.c:119 local_source.c:170 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" @@ -76,10 +76,10 @@ msgstr "" "diesem Fall wären die Ergebnisse unten falsch und die PostgreSQL-Installation\n" "wäre inkompatibel mit diesem Datenverzeichnis." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: parsexlog.c:312 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: parsexlog.c:333 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -89,8 +89,8 @@ msgstr "konnte Datei »%s« nicht öffnen: %m" msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" @@ -106,34 +106,34 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #: ../../fe_utils/archive.c:86 file_ops.c:417 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 file_ops.c:388 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 file_ops.c:462 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -218,29 +218,34 @@ msgstr "%s muss im Bereich %d..%d sein" msgid "unrecognized sync method: %s" msgstr "unbekannte Sync-Methode: %s" -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" -#: ../../fe_utils/recovery_gen.c:143 +#: ../../fe_utils/recovery_gen.c:144 #, c-format msgid "could not write to file \"%s\": %m" msgstr "konnte nicht in Datei »%s« schreiben: %m" -#: ../../fe_utils/recovery_gen.c:152 +#: ../../fe_utils/recovery_gen.c:153 #, c-format msgid "could not create file \"%s\": %m" msgstr "konnte Datei »%s« nicht erstellen: %m" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/recovery_gen.c:215 pg_rewind.c:311 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" @@ -320,177 +325,177 @@ msgstr "Ziel für symbolische Verknüpfung »%s« ist zu lang" msgid "could not close directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht schließen: %m" -#: filemap.c:235 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "Datendatei »%s« in der Quelle ist keine normale Datei" -#: filemap.c:240 filemap.c:273 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "doppelte Quelldatei »%s«" -#: filemap.c:328 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "unerwartete Seitenänderung für nicht normale Datei »%s«" -#: filemap.c:682 filemap.c:776 +#: filemap.c:743 filemap.c:845 #, c-format msgid "unknown file type for \"%s\"" msgstr "unbekannter Dateityp für »%s«" -#: filemap.c:709 +#: filemap.c:778 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "Datei »%s« hat unterschiedlichen Typ in Quelle und Ziel" -#: filemap.c:781 +#: filemap.c:850 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "konnte nicht entscheiden, was mit Datei »%s« zu tun ist" -#: libpq_source.c:131 +#: libpq_source.c:130 #, c-format msgid "could not clear \"search_path\": %s" msgstr "konnte »search_path« nicht auf leer setzen: %s" -#: libpq_source.c:142 +#: libpq_source.c:141 #, c-format msgid "\"full_page_writes\" must be enabled in the source server" msgstr "»full_page_writes« muss im Quell-Server eingeschaltet sein" -#: libpq_source.c:153 +#: libpq_source.c:152 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "konnte Anfrage zum Holen des Dateiinhalts nicht vorbereiten: %s" -#: libpq_source.c:172 +#: libpq_source.c:171 #, c-format msgid "error running query (%s) on source server: %s" msgstr "Fehler beim Ausführen einer Anfrage (%s) auf dem Quellserver: %s" -#: libpq_source.c:177 +#: libpq_source.c:176 #, c-format msgid "unexpected result set from query" msgstr "Anfrage ergab unerwartete Ergebnismenge" -#: libpq_source.c:199 +#: libpq_source.c:198 #, c-format msgid "error running query (%s) in source server: %s" msgstr "Fehler beim Ausführen einer Anfrage (%s) im Quellserver: %s" -#: libpq_source.c:220 +#: libpq_source.c:219 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "unbekanntes Ergebnis »%s« für aktuelle WAL-Einfügeposition" -#: libpq_source.c:271 +#: libpq_source.c:270 #, c-format msgid "could not fetch file list: %s" msgstr "konnte Dateiliste nicht holen: %s" -#: libpq_source.c:276 +#: libpq_source.c:275 #, c-format msgid "unexpected result set while fetching file list" msgstr "unerwartete Ergebnismenge beim Holen der Dateiliste" -#: libpq_source.c:477 +#: libpq_source.c:476 #, c-format msgid "could not send query: %s" msgstr "konnte Anfrage nicht senden: %s" -#: libpq_source.c:480 +#: libpq_source.c:479 #, c-format msgid "could not set libpq connection to single row mode" msgstr "konnte libpq-Verbindung nicht in den Einzelzeilenmodus setzen" -#: libpq_source.c:510 +#: libpq_source.c:509 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "unerwartetes Ergebnis beim Holen von fernen Dateien: %s" -#: libpq_source.c:515 +#: libpq_source.c:514 #, c-format msgid "received more data chunks than requested" msgstr "mehr Daten-Chunks erhalten als verlangt" -#: libpq_source.c:519 +#: libpq_source.c:518 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "unerwartete Ergebnismengengröße beim Holen von fernen Dateien" -#: libpq_source.c:525 +#: libpq_source.c:524 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "unerwartete Datentypen in Ergebnismenge beim Holen von fernen Dateien: %u %u %u" -#: libpq_source.c:533 +#: libpq_source.c:532 #, c-format msgid "unexpected result format while fetching remote files" msgstr "unerwartetes Ergebnisformat beim Holen von fernen Dateien" -#: libpq_source.c:539 +#: libpq_source.c:538 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "unerwartete NULL-Werte im Ergebnis beim Holen von fernen Dateien" -#: libpq_source.c:543 +#: libpq_source.c:542 #, c-format msgid "unexpected result length while fetching remote files" msgstr "unerwartete Ergebnislänge beim Holen von fernen Dateien" -#: libpq_source.c:576 +#: libpq_source.c:575 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "Daten für Datei »%s« erhalten, aber »%s« wurde verlangt" -#: libpq_source.c:580 +#: libpq_source.c:579 #, c-format -msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" -msgstr "Daten für Offset %lld von Datei »%s« erhalten, aber Offset %lld wurde verlangt" +msgid "received data at offset % of file \"%s\", when requested for offset %lld" +msgstr "Daten für Offset % von Datei »%s« erhalten, aber Offset %lld wurde verlangt" -#: libpq_source.c:592 +#: libpq_source.c:591 #, c-format msgid "received more than requested for file \"%s\"" msgstr "mehr als verlangt erhalten für Datei »%s«" -#: libpq_source.c:605 +#: libpq_source.c:604 #, c-format msgid "unexpected number of data chunks received" msgstr "unerwartete Anzahl Daten-Chunks erhalten" -#: libpq_source.c:648 +#: libpq_source.c:647 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "konnte ferne Datei »%s« nicht holen: %s" -#: libpq_source.c:653 +#: libpq_source.c:652 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "unerwartete Ergebnismenge beim Holen der fernen Datei »%s«" -#: local_source.c:90 local_source.c:142 +#: local_source.c:88 local_source.c:140 #, c-format msgid "could not open source file \"%s\": %m" msgstr "konnte Quelldatei »%s« nicht öffnen: %m" -#: local_source.c:117 +#: local_source.c:115 #, c-format msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "Größe der Quelldatei »%s« nebenläufig verändert: %d Bytes erwartet, %d kopiert" -#: local_source.c:146 +#: local_source.c:144 #, c-format msgid "could not seek in source file: %m" msgstr "konnte Positionszeiger in Quelldatei nicht setzen: %m" -#: local_source.c:165 +#: local_source.c:163 #, c-format msgid "unexpected EOF while reading file \"%s\"" msgstr "unerwartetes EOF beim Lesen der Datei »%s«" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "Speicher aufgebraucht beim Anlegen eines WAL-Leseprozessors" @@ -510,22 +515,22 @@ msgstr "konnte WAL-Eintrag bei %X/%X nicht lesen" 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:212 +#: parsexlog.c:214 #, 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:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "konnte vorangegangenen WAL-Eintrag bei %X/%X nicht finden" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "konnte Positionszeiger in Datei »%s« nicht setzen: %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WAL-Eintrag modifiziert eine Relation, aber Typ des Eintrags wurde nicht erkannt: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" @@ -705,11 +710,6 @@ msgstr "Sie müssen %s als PostgreSQL-Superuser ausführen." msgid "could not read permissions of directory \"%s\": %m" msgstr "konnte Zugriffsrechte von Verzeichnis »%s« nicht lesen: %m" -#: pg_rewind.c:311 -#, c-format -msgid "%s" -msgstr "%s" - #: pg_rewind.c:314 #, c-format msgid "connected to server" @@ -730,154 +730,154 @@ msgstr "Server divergierten bei WAL-Position %X/%X auf Zeitleiste %u" msgid "no rewind required" msgstr "kein Rückspulen nötig" -#: pg_rewind.c:460 +#: pg_rewind.c:464 #, 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:470 +#: pg_rewind.c:474 #, c-format msgid "reading source file list" msgstr "lese Quelldateiliste" -#: pg_rewind.c:474 +#: pg_rewind.c:478 #, c-format msgid "reading target file list" msgstr "lese Zieldateiliste" -#: pg_rewind.c:483 +#: pg_rewind.c:487 #, c-format msgid "reading WAL in target" msgstr "lese WAL im Ziel-Cluster" -#: pg_rewind.c:504 +#: pg_rewind.c:508 #, 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:522 +#: pg_rewind.c:526 #, c-format msgid "syncing target data directory" msgstr "synchronisiere Zieldatenverzeichnis" -#: pg_rewind.c:538 +#: pg_rewind.c:543 #, c-format msgid "Done!" msgstr "Fertig!" -#: pg_rewind.c:618 +#: pg_rewind.c:623 #, c-format msgid "no action decided for file \"%s\"" msgstr "keine Aktion bestimmt für Datei »%s«" -#: pg_rewind.c:650 +#: pg_rewind.c:655 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "Quellsystem wurde verändert, während pg_rewind lief" -#: pg_rewind.c:654 +#: pg_rewind.c:659 #, c-format msgid "creating backup label and updating control file" msgstr "erzeuge Backup-Label und aktualisiere Kontrolldatei" -#: pg_rewind.c:704 +#: pg_rewind.c:709 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "Quellsystem war in einem unerwarteten Zustand am Ende des Rückspulens" -#: pg_rewind.c:736 +#: pg_rewind.c:741 #, c-format msgid "source and target clusters are from different systems" msgstr "Quell- und Ziel-Cluster sind von verschiedenen Systemen" -#: pg_rewind.c:744 +#: pg_rewind.c:749 #, 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:754 +#: pg_rewind.c:759 #, 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:765 +#: pg_rewind.c:770 #, c-format msgid "target server must be shut down cleanly" msgstr "Zielserver muss sauber heruntergefahren worden sein" -#: pg_rewind.c:775 +#: pg_rewind.c:780 #, c-format msgid "source data directory must be shut down cleanly" msgstr "Quelldatenverzeichnis muss sauber heruntergefahren worden sein" -#: pg_rewind.c:822 +#: pg_rewind.c:827 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) kopiert" -#: pg_rewind.c:950 +#: pg_rewind.c:953 #, 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:991 +#: pg_rewind.c:994 #, c-format msgid "backup label buffer too small" msgstr "Puffer für Backup-Label ist zu klein" -#: pg_rewind.c:1014 +#: pg_rewind.c:1017 #, c-format msgid "unexpected control file CRC" msgstr "unerwartete CRC in Kontrolldatei" -#: pg_rewind.c:1026 +#: pg_rewind.c:1029 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "unerwartete Kontrolldateigröße %d, erwartet wurde %d" -#: pg_rewind.c:1036 +#: pg_rewind.c:1039 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "ungültige WAL-Segmentgröße in Kontrolldatei (%d Byte)" msgstr[1] "ungültige WAL-Segmentgröße in Kontrolldatei (%d Bytes)" -#: pg_rewind.c:1040 +#: pg_rewind.c:1043 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "Die WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein." -#: pg_rewind.c:1077 pg_rewind.c:1145 +#: pg_rewind.c:1080 pg_rewind.c:1148 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden" -#: pg_rewind.c:1080 pg_rewind.c:1148 +#: pg_rewind.c:1083 pg_rewind.c:1151 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s" -#: pg_rewind.c:1109 +#: pg_rewind.c:1112 #, c-format -msgid "unable to read restore_command from target cluster" -msgstr "konnte restore_command des Ziel-Clusters nicht lesen" +msgid "could not read \"restore_command\" from target cluster" +msgstr "konnte »restore_command« des Ziel-Clusters nicht lesen" -#: pg_rewind.c:1114 +#: pg_rewind.c:1117 #, c-format msgid "\"restore_command\" is not set in the target cluster" msgstr "»restore_command« ist im Ziel-Cluster nicht gesetzt" -#: pg_rewind.c:1152 +#: pg_rewind.c:1155 #, 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:1190 +#: pg_rewind.c:1193 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "postgres im Einzelbenutzermodus im Ziel-Cluster fehlgeschlagen" -#: pg_rewind.c:1191 +#: pg_rewind.c:1194 #, c-format msgid "Command was: %s" msgstr "Die Anweisung war: %s" @@ -917,157 +917,157 @@ msgstr "ungültige Daten in History-Datei" 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:619 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ungültiger Datensatz-Offset bei %X/%X: mindestens %u erwartet, %u erhalten" -#: xlogreader.c:628 +#: xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "Contrecord angefordert von %X/%X" -#: xlogreader.c:669 xlogreader.c:1134 +#: xlogreader.c:670 xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ungültige Datensatzlänge bei %X/%X: mindestens %u erwartet, %u erhalten" -#: xlogreader.c:758 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "keine Contrecord-Flag bei %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ungültige Contrecord-Länge %u (erwartet %lld) bei %X/%X" -#: xlogreader.c:1142 +#: xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ungültige Resource-Manager-ID %u bei %X/%X" -#: xlogreader.c:1155 xlogreader.c:1171 +#: xlogreader.c:1156 xlogreader.c:1172 #, 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:1209 +#: xlogreader.c:1210 #, 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:1243 +#: xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ungültige magische Zahl %04X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1258 xlogreader.c:1300 +#: xlogreader.c:1259 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ungültige Info-Bits %04X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1274 +#: xlogreader.c:1275 #, 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" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WAL-Datei ist von einem anderen Datenbanksystem: Datenbanksystemidentifikator in WAL-Datei ist %, Datenbanksystemidentifikator in pg_control ist %" -#: xlogreader.c:1282 +#: xlogreader.c:1283 #, 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:1288 +#: xlogreader.c:1289 #, 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:1320 +#: xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "unerwartete Pageaddr %X/%X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1346 +#: xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "Zeitleisten-ID %u außer der Reihe (nach %u) in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1749 +#: xlogreader.c:1759 #, 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:1773 +#: xlogreader.c:1783 #, 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:1780 +#: xlogreader.c:1790 #, 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:1816 +#: xlogreader.c:1826 #, 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:1832 +#: xlogreader.c:1842 #, 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:1846 +#: xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge %u bei %X/%X" -#: xlogreader.c:1861 +#: xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "weder BKPIMAGE_HAS_HOLE noch BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge ist %u bei %X/%X" -#: xlogreader.c:1877 +#: xlogreader.c:1887 #, 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:1889 +#: xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ungültige block_id %u bei %X/%X" -#: xlogreader.c:1956 +#: xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "Datensatz mit ungültiger Länge bei %X/%X" -#: xlogreader.c:1982 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "konnte Backup-Block mit ID %d nicht im WAL-Eintrag finden" -#: xlogreader.c:2066 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "konnte Abbild bei %X/%X mit ungültigem angegebenen Block %d nicht wiederherstellen" -#: xlogreader.c:2073 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "konnte Abbild mit ungültigem Zustand bei %X/%X nicht wiederherstellen, Block %d" -#: xlogreader.c:2100 xlogreader.c:2117 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit %s, nicht unterstützt von dieser Installation, Block %d" -#: xlogreader.c:2126 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit unbekannter Methode, Block %d" -#: xlogreader.c:2134 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "konnte Abbild bei %X/%X nicht dekomprimieren, Block %d" diff --git a/src/bin/pg_rewind/po/es.po b/src/bin/pg_rewind/po/es.po index af9a810c7c1d5..794c991edcdc3 100644 --- a/src/bin/pg_rewind/po/es.po +++ b/src/bin/pg_rewind/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_rewind (PostgreSQL) 16\n" +"Project-Id-Version: pg_rewind (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:22+0000\n" -"PO-Revision-Date: 2023-10-04 11:47+0200\n" +"POT-Creation-Date: 2025-02-16 19:52+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -41,6 +41,65 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" + +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:371 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "no se pudo cerrar el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "discordancia en orden de bytes" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"posible discordancia en orden de bytes\n" +"El ordenamiento de bytes usado para almacenar el archivo pg_control puede no\n" +"coincidir con el usado por este programa. En tal caso los resultados de abajo\n" +"serían erróneos, y la instalación de PostgreSQL sería incompatible con este\n" +"directorio de datos." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:333 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "no se pudo escribir el archivo «%s»: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -52,6 +111,38 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -107,43 +198,58 @@ msgstr "el archivo «%s» tiene tamaño inesperado: %lld en lugar de %lld" msgid "could not open file \"%s\" restored from archive: %m" msgstr "no se pudo abrir el archivo «%s» restaurado del archivo: %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "no se pudo hacer stat al archivo «%s»: %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "restore_command falló: %s" +msgid "\"restore_command\" failed: %s" +msgstr "«restore_command» falló: %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "no se pudo recuperar el archivo «%s» del archivo" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "memoria agotada" +msgid "invalid value \"%s\" for option %s" +msgstr "el valor «%s» no es válido para la opción %s" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" +msgid "%s must be in range %d..%d" +msgstr "%s debe estar en el rango %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "memoria agotada" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/recovery_gen.c:143 #, c-format msgid "could not write to file \"%s\": %m" msgstr "no se pudo escribir a archivo «%s»: %m" -#: ../../fe_utils/recovery_gen.c:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "no se pudo crear archivo «%s»: %m" +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -159,11 +265,6 @@ msgstr "no se pudo cerrar el archivo de destino «%s»: %m" msgid "could not seek in target file \"%s\": %m" msgstr "no se pudo posicionar en archivo de destino «%s»: %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "no se pudo escribir el archivo «%s»: %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -209,26 +310,6 @@ msgstr "no se pudo crear el link simbólico en «%s»: %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "no se pudo eliminar el enlace simbólico «%s»: %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "no se pudo abrir archivo «%s» para lectura: %m" - -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "no se pudo leer el archivo «%s»: %m" - -#: file_ops.c:344 parsexlog.c:352 -#, c-format -msgid "could not read file \"%s\": read %d of %zu" -msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "no se pudo abrir el directorio «%s»: %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -239,162 +320,157 @@ msgstr "no se pudo leer el enlace simbólico «%s»: %m" msgid "symbolic link \"%s\" target is too long" msgstr "la ruta «%s» del enlace simbólico es demasiado larga" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "no se pudo leer el directorio «%s»: %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: filemap.c:236 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "el archivo de datos «%s» en el origen no es un archivo regular" -#: filemap.c:241 filemap.c:274 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "archivo origen duplicado «%s»" -#: filemap.c:329 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "modificación de página inesperada para el archivo no regular «%s»" -#: filemap.c:679 filemap.c:773 +#: filemap.c:744 filemap.c:846 #, c-format msgid "unknown file type for \"%s\"" msgstr "tipo de archivo desconocido para «%s»" -#: filemap.c:706 +#: filemap.c:779 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "el archivo «%s» tiene un tipo diferente en el origen y en el destino" -#: filemap.c:778 +#: filemap.c:851 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "no se pudo decidir qué hacer con el archivo «%s»" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "no se pudo limpiar search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "no se pudo limpiar «search_path»: %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, c-format -msgid "full_page_writes must be enabled in the source server" -msgstr "full_page_writes debe estar activado en el servidor de origen" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "«full_page_writes» debe estar activado en el servidor de origen" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "no se pudo preparar sentencia para obtener el contenido del archivo: %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, c-format msgid "error running query (%s) on source server: %s" msgstr "error ejecutando consulta (%s) en el servidor de origen: %s" -#: libpq_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "conjunto de resultados inesperados de la consulta" -#: libpq_source.c:198 +#: libpq_source.c:199 #, c-format msgid "error running query (%s) in source server: %s" msgstr "error ejecutando consulta (%s) en el servidor de origen: %s" -#: libpq_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "resultado «%s» no reconocido para la ubicación de inserción WAL actual" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "no se pudo obtener el listado de archivos: %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "conjunto de resultados inesperado mientras se obtenía el listado de archivos" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "no se pudo enviar la consulta: %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "no se pudo establecer la coneción libpq a modo «single row»" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "resultados inesperados mientras se obtenían archivos remotos: %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "se recibieron más trozos de datos que los solicitados" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "tamaño del conjunto de resultados inesperado mientras se obtenían archivos remotos" -#: libpq_source.c:515 +#: libpq_source.c:525 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "tipos de dato inesperados en el conjunto de resultados mientras se obtenían archivos remotos: %u %u %u" -#: libpq_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "formato de resultados inesperado mientras se obtenían archivos remotos" -#: libpq_source.c:529 +#: libpq_source.c:539 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "valores nulos inesperados en el resultado mientras se obtenían archivos remotos" -#: libpq_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "largo del resultado inesperado mientras se obtenían los archivos remotos" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "se recibieron datos para el archivo «%s», cuando se solicitó para «%s»" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" msgstr "se recibieron datos en la posición %lld del archivo «%s», cuando se solicitó para la posición %lld" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "se recibió más de lo solicitado para el archivo «%s»" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "se recibió un número inesperado de trozos de datos" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "no se pudo obtener el archivo remoto «%s»: %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "conjunto de resultados inesperado mientras se obtenía el archivo remoto «%s»" @@ -409,11 +485,6 @@ msgstr "no se pudo abrir el archivo de origen «%s»: %m" msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "el tamaño del archivo de origen «%s» cambió concurrentemente: se esperaban %d bytes, se copiaron %d" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "no se pudo cerrar el archivo «%s»: %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -424,7 +495,7 @@ msgstr "no se pudo posicionar en archivo de origen: %m" msgid "unexpected EOF while reading file \"%s\"" msgstr "EOF inesperado mientras se leía el archivo «%s»" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "memoria agotada mientras se emplazaba un procesador de lectura de WAL" @@ -444,27 +515,27 @@ msgstr "no se pudo leer el registro WAL en %X/%X" msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "el puntero de término %X/%X no es un punto válido; se esperaba %X/%X" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "no se pudo encontrar el registro WAL anterior en %X/%X: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "no se pudo encontrar el registro WAL anterior en %X/%X" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "no se pudo posicionar (seek) el archivo «%s»: %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "el registro WAL modifica una relación, pero el tipo de registro no es reconocido: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "" "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" @@ -473,7 +544,7 @@ msgstr "" "%s resincroniza un cluster PostgreSQL con otra copia del cluster.\n" "\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "" "Usage:\n" @@ -484,53 +555,53 @@ msgstr "" " %s [OPCION]...\n" "\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "Opciones:\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format msgid "" -" -c, --restore-target-wal use restore_command in target configuration to\n" +" -c, --restore-target-wal use \"restore_command\" in target configuration to\n" " retrieve WAL files from archives\n" msgstr "" -" -c, --restore-target-wal utilizar restore_command de la configuración\n" +" -c, --restore-target-wal utilizar «restore_command» de la configuración\n" " de destino para obtener archivos WAL\n" -#: pg_rewind.c:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr " -D, --target-pgdata=DIRECTORIO directorio de datos existente a modificar\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid " --source-pgdata=DIRECTORY source data directory to synchronize with\n" msgstr " --source-pgdata=DIRECTORIO directorio de datos de origen a sincronizar\n" -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr " --source-server=CONN servidor de origen a sincronizar\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr " -n, --dry-run detener antes de modificar nada\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written\n" " safely to disk\n" msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress escribir mensajes de progreso\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid "" " -R, --write-recovery-conf write configuration for replication\n" @@ -539,7 +610,7 @@ msgstr "" " -R, --write-recovery-conf escribe configuración para replicación\n" " (requiere --source-server)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -548,29 +619,34 @@ msgstr "" " --config-file=ARCHIVO utilizar el archivo de configuración del servidor\n" " principal especificado al ejecutar el clúster de destino\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr " --debug escribir muchos mensajes de depuración\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, c-format msgid " --no-ensure-shutdown do not automatically fix unclean shutdown\n" msgstr "" " --no-ensure-shutdown no corregir automáticamente un apagado\n" " no-limpio\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir el método para sincr. archivos a disco\n" + +#: pg_rewind.c:113 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "" "\n" @@ -579,425 +655,420 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "no se especificó origen (--source-pgdata o --source-server)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "sólo uno de --source-pgdata o --source-server puede ser especificado" -#: pg_rewind.c:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "no se especificó directorio de datos de destino (--target-pgdata)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, c-format msgid "no source server information (--source-server) specified for --write-recovery-conf" msgstr "no se especificó información de servidor de origen (--source-server) para --write-recovery-conf" -#: pg_rewind.c:258 +#: pg_rewind.c:267 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_rewind.c:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "no puede ser ejecutado por «root»" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Debe ejecutar %s con el superusuario de PostgreSQL." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "no se pudo obtener los permisos del directorio «%s»: %m" -#: pg_rewind.c:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "conectado al servidor" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, c-format msgid "source and target cluster are on the same timeline" msgstr "el cluster de origen y destino están en el mismo timeline" -#: pg_rewind.c:387 +#: pg_rewind.c:396 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "servidores divergieron en la posición de WAL %X/%X en el timeline %u" -#: pg_rewind.c:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "no se requiere rebobinar" -#: pg_rewind.c:451 +#: pg_rewind.c:463 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "rebobinando desde el último checkpoint común en %X/%X en el timeline %u" -#: pg_rewind.c:461 +#: pg_rewind.c:473 #, c-format msgid "reading source file list" msgstr "leyendo la lista de archivos de origen" -#: pg_rewind.c:465 +#: pg_rewind.c:477 #, c-format msgid "reading target file list" msgstr "leyendo la lista de archivos de destino" -#: pg_rewind.c:474 +#: pg_rewind.c:486 #, c-format msgid "reading WAL in target" msgstr "leyendo WAL en destino" -#: pg_rewind.c:495 +#: pg_rewind.c:507 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "se necesitan copiar %lu MB (tamaño total de directorio de origen es %lu MB)" -#: pg_rewind.c:513 +#: pg_rewind.c:525 #, c-format msgid "syncing target data directory" msgstr "sincronizando directorio de datos de destino" -#: pg_rewind.c:529 +#: pg_rewind.c:541 #, c-format msgid "Done!" msgstr "¡Listo!" -#: pg_rewind.c:609 +#: pg_rewind.c:621 #, c-format msgid "no action decided for file \"%s\"" msgstr "no se decidió una acción para el archivo «%s»" -#: pg_rewind.c:641 +#: pg_rewind.c:653 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "el sistema origen fue modificado mientras pg_rewind estaba en ejecución" -#: pg_rewind.c:645 +#: pg_rewind.c:657 #, c-format msgid "creating backup label and updating control file" msgstr "creando etiqueta de respaldo y actualizando archivo de control" -#: pg_rewind.c:695 +#: pg_rewind.c:707 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "el sistema origen estaba en un estado inesperado al final del rebobinado" -#: pg_rewind.c:727 +#: pg_rewind.c:739 #, c-format msgid "source and target clusters are from different systems" msgstr "clusters de origen y destino son de sistemas diferentes" -#: pg_rewind.c:735 +#: pg_rewind.c:747 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "los clusters no son compatibles con esta versión de pg_rewind" -#: pg_rewind.c:745 +#: pg_rewind.c:757 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "el servidor de destino necesita tener sumas de verificación de datos o «wal_log_hints» activados" -#: pg_rewind.c:756 +#: pg_rewind.c:768 #, c-format msgid "target server must be shut down cleanly" msgstr "el directorio de destino debe estar apagado limpiamente" -#: pg_rewind.c:766 +#: pg_rewind.c:778 #, c-format msgid "source data directory must be shut down cleanly" msgstr "el directorio de origen debe estar apagado limpiamente" -#: pg_rewind.c:813 +#: pg_rewind.c:825 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) copiados" -#: pg_rewind.c:941 +#: pg_rewind.c:951 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "no se pudo encontrar un ancestro común en el timeline de los clusters de origen y destino" -#: pg_rewind.c:982 +#: pg_rewind.c:992 #, c-format msgid "backup label buffer too small" msgstr "el búfer del backup label es demasiado pequeño" -#: pg_rewind.c:1005 +#: pg_rewind.c:1015 #, c-format msgid "unexpected control file CRC" msgstr "CRC de archivo de control inesperado" -#: pg_rewind.c:1017 +#: pg_rewind.c:1027 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "tamaño del archivo de control %d inesperado, se esperaba %d" -#: pg_rewind.c:1026 +#: pg_rewind.c:1037 #, 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] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d byte" -msgstr[1] "El tamaño del segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero el archivo de control especifica %d bytes" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "tamaño de segmento de WAL no válido (%d byte) en archivo de control" +msgstr[1] "tamaño de segmento de WAL no válido (%d bytes) en archivo de control" -#: pg_rewind.c:1065 pg_rewind.c:1135 +#: pg_rewind.c:1041 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB." + +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "el programa «%s» es requerido por %s, pero no se encontró en el mismo directorio que «%s»" -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1081 pg_rewind.c:1149 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "el programa «%s» fue encontrado por «%s» pero no es de la misma versión que %s" -#: pg_rewind.c:1101 +#: pg_rewind.c:1110 +#, c-format +msgid "could not read restore_command from target cluster" +msgstr "no se pudo leer restore_command en el clúster de destino" + +#: pg_rewind.c:1115 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "restore_command no está definido en el clúster de destino" +msgid "\"restore_command\" is not set in the target cluster" +msgstr "«restore_command» no está definido en el clúster de destino" -#: pg_rewind.c:1142 +#: pg_rewind.c:1153 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "ejecutando «%s» en el servidor de destino para completar la recuperación de caídas" -#: pg_rewind.c:1180 +#: pg_rewind.c:1191 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "el modo «single-user» en el servidor de destino falló" -#: pg_rewind.c:1181 +#: pg_rewind.c:1192 #, c-format msgid "Command was: %s" msgstr "La orden era: % s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "error de sintaxis en archivo de historia: %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "Se esperaba un ID numérico de timeline." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "Se esperaba una ubicación de punto de cambio del «write-ahead log»." -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "datos no válidos en archivo de historia: %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "IDs de timeline deben ser una secuencia creciente." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "datos no válidos en archivo de historia" -#: timeline.c:109 +#: timeline.c:108 #, c-format msgid "Timeline IDs must be less than child timeline's ID." msgstr "IDs de timeline deben ser menores que el ID de timeline del hijo." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "desplazamiento de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord solicitado por %X/%X" -#: xlogreader.c:676 xlogreader.c:1123 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "largo de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "memoria agotada mientras se intentaba decodificar un registro de largo %u" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "largo de registro %u en %X/%X demasiado largo" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "no hay bandera de contrecord en %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "largo de contrecord %u no válido (se esperaba %lld) en %X/%X" -#: xlogreader.c:924 -#, c-format -msgid "missing contrecord at %X/%X" -msgstr "falta un contrecord en %X/%X" - -#: xlogreader.c:1131 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ID de gestor de recursos %u no válido en %X/%X" -#: xlogreader.c:1144 xlogreader.c:1160 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "registro con prev-link %X/%X incorrecto en %X/%X" -#: xlogreader.c:1196 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "suma de verificación de los datos del gestor de recursos incorrecta en el registro en %X/%X" -#: xlogreader.c:1230 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "número mágico %04X no válido en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1245 xlogreader.c:1287 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "info bits %04X no válidos en segment WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1261 +#: xlogreader.c:1274 #, 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 "archivo WAL es de un sistema de bases de datos distinto: identificador de sistema en archivo WAL es %llu, identificador en pg_control es %llu" -#: xlogreader.c:1269 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: tamaño de segmento incorrecto en cabecera de paǵina" -#: xlogreader.c:1275 +#: xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: XLOG_BLCKSZ incorrecto en cabecera de paǵina" -#: xlogreader.c:1307 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1333 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "ID de timeline %u fuera de secuencia (después de %u) en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1739 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u fuera de orden en %X/%X" -#: xlogreader.c:1763 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA está definido, pero no hay datos en %X/%X" -#: xlogreader.c:1770 +#: xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA no está definido, pero el largo de los datos es %u en %X/%X" -#: xlogreader.c:1806 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE está definido, pero posición del agujero es %u largo %u largo de imagen %u en %X/%X" -#: xlogreader.c:1822 +#: xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE no está definido, pero posición del agujero es %u largo %u en %X/%X" -#: xlogreader.c:1836 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED definido, pero largo de imagen de bloque es %u en %X/%X" -#: xlogreader.c:1851 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED están definidos, pero el largo de imagen de bloque es %u en %X/%X" -#: xlogreader.c:1867 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL está definido, pero no hay «rel» anterior en %X/%X " -#: xlogreader.c:1879 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u no válido en %X/%X" -#: xlogreader.c:1946 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "registro con largo no válido en %X/%X" -#: xlogreader.c:1972 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "no se pudo localizar un bloque de respaldo con ID %d en el registro WAL" -#: xlogreader.c:2056 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "no se pudo restaurar la imagen en %X/%X con bloque especificado %d no válido" -#: xlogreader.c:2063 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "no se pudo restaurar la imagen en %X/%X con estado no válido, bloque %d" -#: xlogreader.c:2090 xlogreader.c:2107 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "no se pudo restaurar la imagen en %X/%X comprimida con %s que no está soportado por esta instalación, bloque %d" -#: xlogreader.c:2116 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "no se pudo restaurar la imagen en %X/%X comprimida con un método desconocido, bloque %d" -#: xlogreader.c:2124 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "no se pudo descomprimir la imagen en %X/%X, bloque %d" diff --git a/src/bin/pg_rewind/po/fr.po b/src/bin/pg_rewind/po/fr.po index d83beaa830c0c..da4f2e145203e 100644 --- a/src/bin/pg_rewind/po/fr.po +++ b/src/bin/pg_rewind/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:21+0000\n" -"PO-Revision-Date: 2023-09-05 07:49+0200\n" +"POT-Creation-Date: 2024-08-29 17:53+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -41,6 +41,65 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, c-format +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:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:350 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#, 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:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "n'a pas pu fermer le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "différence de l'ordre des octets" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"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 de PostgreSQL\n" +"est incompatible avec ce répertoire des données." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:312 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "impossible d'écrire le fichier « %s » : %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -52,6 +111,38 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -107,43 +198,58 @@ msgstr "taille de fichier inattendu pour « %s » : %lld au lieu de %lld" msgid "could not open file \"%s\" restored from archive: %m" msgstr "n'a pas pu ouvrir le fichier « %s » à partir de l'archive : %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "n'a pas pu tester le fichier « %s » : %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "échec de la restore_command : %s" +msgid "\"restore_command\" failed: %s" +msgstr "échec de « restore_command » : %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "n'a pas pu restaurer le fichier « %s » à partir de l'archive" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "mémoire épuisée" +msgid "invalid value \"%s\" for option %s" +msgstr "valeur « %s » invalide pour l'option %s" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" +msgid "%s must be in range %d..%d" +msgstr "%s doit être compris entre %d et %d" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "mémoire épuisée" + +#: ../../fe_utils/recovery_gen.c:143 #, 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:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "n'a pas pu créer le fichier « %s » : %m" +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -159,11 +265,6 @@ msgstr "n'a pas pu fermer le fichier cible « %s » : %m" msgid "could not seek in target file \"%s\": %m" msgstr "n'a pas pu chercher dans le fichier cible « %s » : %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "impossible d'écrire le fichier « %s » : %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -182,7 +283,7 @@ msgstr "n'a pas pu supprimer le fichier « %s » : %m" #: file_ops.c:218 #, c-format msgid "could not open file \"%s\" for truncation: %m" -msgstr "n'a pas pu ouvrir le fichier « %s » pour le troncage : %m" +msgstr "n'a pas pu ouvrir le fichier « %s » pour le tronquage : %m" #: file_ops.c:222 #, c-format @@ -209,26 +310,6 @@ msgstr "n'a pas pu créer le lien symbolique à « %s » : %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "n'a pas pu supprimer le lien symbolique « %s » : %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -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:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "n'a pas pu lire le fichier « %s » : %m" - -#: file_ops.c:344 parsexlog.c:352 -#, 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" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -239,162 +320,157 @@ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" msgid "symbolic link \"%s\" target is too long" msgstr "la cible du lien symbolique « %s » est trop longue" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "n'a pas pu lire le répertoire « %s » : %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "n'a pas pu fermer le répertoire « %s » : %m" -#: filemap.c:236 +#: filemap.c:235 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "le fichier de données « %s » en source n'est pas un fichier standard" -#: filemap.c:241 filemap.c:274 +#: filemap.c:240 filemap.c:273 #, c-format msgid "duplicate source file \"%s\"" msgstr "fichier source « %s » dupliqué" -#: filemap.c:329 +#: filemap.c:328 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "modification inattendue de page pour le fichier non standard « %s »" -#: filemap.c:679 filemap.c:773 +#: filemap.c:682 filemap.c:776 #, c-format msgid "unknown file type for \"%s\"" msgstr "type de fichier inconnu pour « %s »" -#: filemap.c:706 +#: filemap.c:709 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "le fichier « %s » a un type différent pour la source et la cible" -#: filemap.c:778 +#: filemap.c:781 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "n'a pas pu décider que faire avec le fichier « %s » : %m" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "n'a pas pu effacer search_path : %s" +msgid "could not clear \"search_path\": %s" +msgstr "n'a pas pu effacer « search_path » : %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, c-format -msgid "full_page_writes must be enabled in the source server" -msgstr "full_page_writes doit être activé sur le serveur source" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "« full_page_writes » doit être activé sur le serveur source" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "n'a pas pu préparer l'instruction pour récupérer le contenu du fichier : %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, c-format msgid "error running query (%s) on source server: %s" msgstr "erreur lors de l'exécution de la requête (%s) sur le serveur source : %s" -#: libpq_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "ensemble de résultats inattendu provenant de la requête" -#: libpq_source.c:198 +#: libpq_source.c:199 #, c-format msgid "error running query (%s) in source server: %s" msgstr "erreur lors de l'exécution de la requête (%s) dans le serveur source : %s" -#: libpq_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "résultat non reconnu « %s » pour l'emplacement d'insertion actuel dans les WAL" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "n'a pas pu récupérer la liste des fichiers : %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "ensemble de résultats inattendu lors de la récupération de la liste des fichiers" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "n'a pas pu envoyer la requête : %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "n'a pas pu configurer la connexion libpq en mode ligne seule" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "résultat inattendu lors de la récupération des fichiers cibles : %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "a reçu plus de morceaux de données que demandé" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "taille inattendue de l'ensemble de résultats lors de la récupération des fichiers distants" -#: libpq_source.c:515 +#: libpq_source.c:525 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "types de données inattendus dans l'ensemble de résultats lors de la récupération des fichiers distants : %u %u %u" -#: libpq_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "format de résultat inattendu lors de la récupération des fichiers distants" -#: libpq_source.c:529 +#: libpq_source.c:539 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "valeurs NULL inattendues dans le résultat lors de la récupération des fichiers distants" -#: libpq_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "longueur de résultats inattendu lors de la récupération des fichiers distants" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "a reçu des données du fichier « %s » alors que « %s » était demandé" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" msgstr "a reçu des données au décalage %lld du fichier « %s » alors que le décalage %lld était demandé" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "a reçu plus que demandé pour le fichier « %s »" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "nombre de morceaux de données reçus inattendu" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "n'a pas pu récupérer le fichier distant « %s » : %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "ensemble de résultats inattendu lors de la récupération du fichier distant « %s »" @@ -409,11 +485,6 @@ msgstr "n'a pas pu ouvrir le fichier source « %s » : %m" msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "la taille du fichier source « %s » a changé : %d octets attendus, %d copiés" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "n'a pas pu fermer le fichier « %s » : %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -464,7 +535,7 @@ msgstr "n'a pas pu parcourir le fichier « %s » : %m" msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "l'enregistrement WAL modifie une relation mais le type d'enregistrement n'est pas reconnu : lsn : %X/%X, rmid : %d, rmgr : %s, info : %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "" "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" @@ -474,7 +545,7 @@ msgstr "" "l'instance.\n" "\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "" "Usage:\n" @@ -485,42 +556,42 @@ msgstr "" " %s [OPTION]...\n" "\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "Options :\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format msgid "" -" -c, --restore-target-wal use restore_command in target configuration to\n" +" -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\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:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr " -D, --target-pgdata=RÉPERTOIRE répertoire de données existant à modifier\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid " --source-pgdata=DIRECTORY source data directory to synchronize with\n" msgstr " --source-pgdata=RÉPERTOIRE répertoire des données source\n" -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr " --source-server=CHAÎNE serveur source pour la synchronisation\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr " -n, --dry-run arrête avant de modifier quoi que ce soit\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written\n" @@ -529,12 +600,12 @@ msgstr "" " -N, --nosync n'attend pas que les modifications soient\n" " proprement écrites sur disque\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress écrit les messages de progression\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid "" " -R, --write-recovery-conf write configuration for replication\n" @@ -543,7 +614,7 @@ msgstr "" " -R, --write-recovery-conf écrit la configuration pour la réplication\n" " (requiert --source-server)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -553,29 +624,34 @@ msgstr "" " du serveur principal lors de l'exécution de\n" " l'instance cible\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr " --debug écrit beaucoup de messages de débogage\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, 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\n" " propre\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: pg_rewind.c:113 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version, puis quitte\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide, puis quitte\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "" "\n" @@ -584,729 +660,424 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "aucune source indiquée (--source-pgdata ou --source-server)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, 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:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "aucun répertoire de données cible indiqué (--target-pgdata)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, 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:258 +#: pg_rewind.c:267 #, 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:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "ne peut pas être exécuté par « root »" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Vous devez exécuter %s en tant que super-utilisateur PostgreSQL." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, 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:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "connecté au serveur" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, 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:387 +#: pg_rewind.c:396 #, 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:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "pas de retour en arrière requis" -#: pg_rewind.c:451 +#: pg_rewind.c:460 #, 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:461 +#: pg_rewind.c:470 #, c-format msgid "reading source file list" msgstr "lecture de la liste des fichiers sources" -#: pg_rewind.c:465 +#: pg_rewind.c:474 #, c-format msgid "reading target file list" msgstr "lecture de la liste des fichiers cibles" -#: pg_rewind.c:474 +#: pg_rewind.c:483 #, c-format msgid "reading WAL in target" msgstr "lecture du WAL dans la cible" -#: pg_rewind.c:495 +#: pg_rewind.c:504 #, 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:513 +#: pg_rewind.c:522 #, c-format msgid "syncing target data directory" msgstr "synchronisation du répertoire des données cible" -#: pg_rewind.c:529 +#: pg_rewind.c:538 #, c-format msgid "Done!" msgstr "Terminé !" -#: pg_rewind.c:609 +#: pg_rewind.c:618 #, c-format msgid "no action decided for file \"%s\"" msgstr "aucune action décidée pour le fichier « %s »" -#: pg_rewind.c:641 +#: pg_rewind.c:650 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "le système source a été modifié alors que pg_rewind était en cours d'exécution" -#: pg_rewind.c:645 +#: pg_rewind.c:654 #, 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:695 +#: pg_rewind.c:704 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "le système source était dans un état inattendu en fin de rewind" -#: pg_rewind.c:727 +#: pg_rewind.c:736 #, 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:735 +#: pg_rewind.c:744 #, 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:745 +#: pg_rewind.c:754 #, 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:756 +#: pg_rewind.c:765 #, c-format msgid "target server must be shut down cleanly" msgstr "le serveur cible doit être arrêté proprement" -#: pg_rewind.c:766 +#: pg_rewind.c:775 #, 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:813 +#: pg_rewind.c:822 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s Ko (%d%%) copiés" -#: pg_rewind.c:941 +#: pg_rewind.c:948 #, 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:982 +#: pg_rewind.c:989 #, c-format msgid "backup label buffer too small" msgstr "tampon du label de sauvegarde trop petit" -#: pg_rewind.c:1005 +#: pg_rewind.c:1012 #, c-format msgid "unexpected control file CRC" msgstr "CRC inattendu pour le fichier de contrôle" -#: pg_rewind.c:1017 +#: pg_rewind.c:1024 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "taille %d inattendue du fichier de contrôle, %d attendu" -#: pg_rewind.c:1026 +#: pg_rewind.c:1034 +#, c-format +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "taille invalide du segment WAL dans le fichier de contrôle (%d octet)" +msgstr[1] "taille invalide du segment WAL dans le fichier de contrôle (%d octets)" + +#: pg_rewind.c:1038 #, 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" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go." -#: pg_rewind.c:1065 pg_rewind.c:1135 +#: pg_rewind.c:1075 pg_rewind.c:1143 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "le programme « %s » est nécessaire pour %s, mais n'a pas été trouvé dans le même répertoire que « %s »" -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "le programme « %s » a été trouvé par « %s » mais n'est pas de la même version que %s" -#: pg_rewind.c:1101 +#: pg_rewind.c:1107 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "restore_command n'est pas configuré sur l'instance cible" +msgid "could not read restore_command from target cluster" +msgstr "n'a pas pu lire restore_command à partir de l'instance cible" -#: pg_rewind.c:1142 +#: pg_rewind.c:1112 +#, 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:1150 #, 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:1180 +#: pg_rewind.c:1188 #, 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:1181 +#: pg_rewind.c:1189 #, c-format msgid "Command was: %s" msgstr "La commande était : %s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "erreur de syntaxe dans le fichier historique : %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "Attendait un identifiant timeline numérique." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "Attendait un emplacement de bascule de journal de transactions." -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "données invalides dans le fichier historique : %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "Les identifiants timeline doivent être en ordre croissant." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "données invalides dans le fichier historique" -#: timeline.c:109 +#: timeline.c:108 #, c-format msgid "Timeline IDs must be less than child timeline's ID." msgstr "" "Les identifiants timeline doivent être plus petits que les enfants des\n" "identifiants timeline." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "décalage invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "« contrecord » est requis par %X/%X" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "longueur invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "manque mémoire lors de la tentative de décodage d'un enregistrement de longueur %u" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "longueur trop importante de l'enregistrement %u à %X/%X" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "il n'existe pas de drapeau contrecord à %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "longueur %u invalide du contrecord (%lld attendu) à %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, 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:1192 +#: xlogreader.c:1209 #, 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:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "numéro magique invalide %04X dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "bits d'information %04X invalides dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, 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'une instance différente : 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:1265 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Le fichier WAL provient d'une instance différente : taille invalide du segment dans l'en-tête de page" -#: xlogreader.c:1271 +#: xlogreader.c:1288 #, 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" -#: xlogreader.c:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, LSN %X/%X, segment %u" -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u désordonné à %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, 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:1766 +#: xlogreader.c:1780 #, 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:1802 +#: xlogreader.c:1816 #, 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:1818 +#: xlogreader.c:1832 #, 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:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, 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:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u invalide à %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "enregistrement de longueur invalide à %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "n'a pas pu localiser le bloc de sauvegarde d'ID %d dans l'enregistrement WAL" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "n'a pas pu restaurer l'image à %X/%X avec le bloc invalide %d indiqué" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X avec un état invalide, bloc %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec %s, qui est non supporté par le serveur, bloc %d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec une méthode inconnue, bloc %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "n'a pas pu décompresser l'image à %X/%X, bloc %d" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid " block %u\n" -#~ msgstr " bloc %u\n" - -#, c-format -#~ msgid "\"%s\" is a symbolic link, but symbolic links are not supported on this platform" -#~ msgstr "« %s » est un lien symbolique mais les liens symboliques ne sont pas supportés sur cette plateforme" - -#~ msgid "\"%s\" is not a directory" -#~ msgstr "« %s » n'est pas un répertoire" - -#~ msgid "\"%s\" is not a regular file" -#~ msgstr "« %s » n'est pas un fichier standard" - -#~ msgid "\"%s\" is not a symbolic link" -#~ msgstr "« %s » n'est pas un lien symbolique" - -#~ 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 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 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 "%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 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 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 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: too many command-line arguments (first is \"%s\")\n" -#~ msgstr "%s : trop d'arguments en ligne de commande (le premier étant « %s »)\n" - -#~ msgid "Expected a numeric timeline ID.\n" -#~ msgstr "Attendait un identifiant numérique de ligne de temps.\n" - -#~ msgid "Expected a write-ahead log switchpoint location.\n" -#~ msgstr "Attendait un emplacement de bascule de journal de transactions.\n" - -#~ msgid "Failure, exiting\n" -#~ msgstr "Échec, sortie\n" - -#~ msgid "Source timeline history:\n" -#~ msgstr "Historique de la ligne de temps source :\n" - -#~ msgid "Target timeline history:\n" -#~ msgstr "Historique de la ligne de temps cible :\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 "" -#~ "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 "" -#~ "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 "" -#~ "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 "" -#~ "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 "" -#~ "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 "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" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\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 "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" - -#, 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" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "ne peut pas créer les jetons restreints sur cette plateforme : code d'erreur %lu" - -#, c-format -#~ msgid "cannot use restore_command with %%r placeholder" -#~ msgstr "ne peut pas utiliser restore_command avec le joker %%r" - -#~ msgid "could not close directory \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer le répertoire « %s » : %s\n" - -#~ msgid "could not close file \"%s\": %s\n" -#~ msgstr "n'a pas pu fermer 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 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" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "n'a pas pu charger la bibliothèque « %s » : code d'erreur %lu" - -#~ 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 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 "could not read symbolic link \"%s\": %s\n" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %s\n" - -#~ msgid "could not remove directory \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le répertoire « %s » : %s\n" - -#~ msgid "could not remove file \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le fichier « %s » : %s\n" - -#~ msgid "could not remove symbolic link \"%s\": %s\n" -#~ msgstr "n'a pas pu supprimer le lien symbolique « %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 send COPY data: %s" -#~ msgstr "n'a pas pu envoyer les données COPY : %s" - -#~ msgid "could not send end-of-COPY: %s" -#~ msgstr "n'a pas pu envoyer end-of-COPY : %s" - -#~ msgid "could not send file list: %s" -#~ msgstr "n'a pas pu envoyer la liste de fichiers : %s" - -#~ msgid "could not set up connection context: %s" -#~ msgstr "n'a pas pu initialiser le contexte de connexion : « %s »" - -#~ msgid "could not stat file \"%s\": %s\n" -#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" - -#~ msgid "could not truncate file \"%s\" to %u: %s\n" -#~ msgstr "n'a pas pu tronquer le fichier « %s » à %u : %s\n" - -#~ msgid "could not write file \"%s\": %s\n" -#~ msgstr "n'a pas pu écrire le fichier « %s » : %s\n" - -#~ msgid "entry \"%s\" excluded from source file list\n" -#~ msgstr "enregistrement « %s » exclus de la liste des fichiers sources\n" - -#~ msgid "entry \"%s\" excluded from target file list\n" -#~ msgstr "enregistrement « %s » exclus de la liste des fichiers cibles\n" - -#, c-format -#~ msgid "failed to locate backup block with ID %d in WAL record" -#~ msgstr "échec de localisation du bloc de sauvegarde d'ID %d dans l'enregistrement WAL" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ 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" - -#, c-format -#~ msgid "image at %X/%X compressed with %s not supported by build, block %d" -#~ msgstr "image à %X/%X compressé avec %s, non supporté, bloc %d" - -#, c-format -#~ msgid "image at %X/%X compressed with unknown method, block %d" -#~ msgstr "image à %X/%X compressé avec une méthode inconnue, bloc %d" - -#, c-format -#~ msgid "invalid compressed image at %X/%X, block %d" -#~ msgstr "image compressée invalide à %X/%X, bloc %d" - -#~ msgid "invalid contrecord length %u at %X/%X reading %X/%X, expected %u" -#~ msgstr "longueur %u invalide du contrecord à %X/%X en lisant %X/%X, attendait %u" - -#, c-format -#~ msgid "invalid control file" -#~ msgstr "fichier de contrôle invalide" - -#~ msgid "invalid data in history file: %s\n" -#~ msgstr "données invalides dans le fichier historique : %s\n" - -#, c-format -#~ msgid "invalid record offset at %X/%X" -#~ msgstr "décalage invalide de l'enregistrement %X/%X" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "contrecord manquant à %X/%X" - -#~ msgid "received data at offset " -#~ msgstr "a reçu des données au décalage " - -#~ 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 "source file list is empty" -#~ msgstr "la liste de fichiers sources est vide" - -#~ msgid "source server must not be in recovery mode" -#~ msgstr "le serveur source ne doit pas être en mode restauration" - -#~ msgid "symbolic link \"%s\" target is too long\n" -#~ msgstr "la cible du lien symbolique « %s » est trop long\n" - -#~ msgid "sync of target directory failed\n" -#~ msgstr "échec de la synchronisation du répertoire cible\n" - -#~ msgid "syntax error in history file: %s\n" -#~ msgstr "erreur de syntaxe dans le fichier historique : %s\n" - -#~ msgid "there is no contrecord flag at %X/%X reading %X/%X" -#~ msgstr "il n'existe pas de drapeau contrecord à %X/%X en lisant %X/%X" - -#~ msgid "unexpected result while sending file list: %s" -#~ msgstr "résultat inattendu lors de l'envoi de la liste de fichiers : %s" diff --git a/src/bin/pg_rewind/po/ja.po b/src/bin/pg_rewind/po/ja.po index 7f535641aed37..80cdf4e73bada 100644 --- a/src/bin/pg_rewind/po/ja.po +++ b/src/bin/pg_rewind/po/ja.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_rewind (PostgreSQL 17)\n" +"Project-Id-Version: pg_rewind (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:24+0900\n" -"PO-Revision-Date: 2024-06-14 11:29+0900\n" +"POT-Creation-Date: 2025-03-31 09:53+0900\n" +"PO-Revision-Date: 2025-03-31 16:34+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -20,22 +20,22 @@ msgstr "" "X-Generator: Poedit 1.8.13\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " @@ -45,19 +45,19 @@ msgstr "ヒント: " msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" -#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 -#: local_source.c:163 parsexlog.c:350 +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:102 +#: local_source.c:161 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" -#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: local_source.c:121 local_source.c:172 +#: local_source.c:119 local_source.c:170 #, c-format msgid "could not close file \"%s\": %m" msgstr "ファイル\"%s\"をクローズできませんでした: %m" @@ -79,10 +79,10 @@ msgstr "" "されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" "PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: parsexlog.c:312 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: parsexlog.c:333 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" @@ -92,8 +92,8 @@ msgstr "ファイル\"%s\"をオープンできませんでした: %m" msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" @@ -109,34 +109,34 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null ポインタを複製できません(内部エラー)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #: ../../fe_utils/archive.c:86 file_ops.c:417 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 file_ops.c:388 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 file_ops.c:462 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -221,29 +221,34 @@ msgstr "%sは%d..%dの範囲になければなりません" msgid "unrecognized sync method: %s" msgstr "認識できない同期方式: %s" -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 #, c-format msgid "out of memory" msgstr "メモリ不足です" -#: ../../fe_utils/recovery_gen.c:143 +#: ../../fe_utils/recovery_gen.c:144 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: ../../fe_utils/recovery_gen.c:152 +#: ../../fe_utils/recovery_gen.c:153 #, c-format msgid "could not create file \"%s\": %m" msgstr "ファイル\"%s\"を作成できませんでした: %m" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/recovery_gen.c:215 pg_rewind.c:311 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" @@ -323,177 +328,177 @@ msgstr "シンボリックリンク\"%s\"の参照先が長すぎます" msgid "could not close directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" -#: filemap.c:235 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "ソースのデータファイル\"%s\"は通常のファイルではありません" -#: filemap.c:240 filemap.c:273 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "ソースファイル\"%s\"が重複しています" -#: filemap.c:328 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "非通常ファイル\"%s\"に対する想定外のページの書き換えです" -#: filemap.c:682 filemap.c:776 +#: filemap.c:743 filemap.c:845 #, c-format msgid "unknown file type for \"%s\"" msgstr "\"%s\"に対する未知のファイルタイプ" -#: filemap.c:709 +#: filemap.c:778 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "ファイル\"%s\"はソースとターゲットとで異なるタイプです" -#: filemap.c:781 +#: filemap.c:850 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "ファイル\"%s\"の処理を決定できませんでした" -#: libpq_source.c:131 +#: libpq_source.c:130 #, c-format msgid "could not clear \"search_path\": %s" msgstr "\"search_path\"を消去できませんでした: %s" -#: libpq_source.c:142 +#: libpq_source.c:141 #, c-format msgid "\"full_page_writes\" must be enabled in the source server" msgstr "ソースサーバーでは\"full_pate_writes\"は有効でなければなりません" -#: libpq_source.c:153 +#: libpq_source.c:152 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "ファイル内容を取得するための文を準備できませんでした: %s" -#: libpq_source.c:172 +#: libpq_source.c:171 #, c-format msgid "error running query (%s) on source server: %s" msgstr "ソースサーバーで実行中のクエリ(%s)でエラー: %s" -#: libpq_source.c:177 +#: libpq_source.c:176 #, c-format msgid "unexpected result set from query" msgstr "クエリから想定外の結果セット" -#: libpq_source.c:199 +#: libpq_source.c:198 #, c-format msgid "error running query (%s) in source server: %s" msgstr "ソースサーバーの実行中のクエリ(%s)でエラー: %s" -#: libpq_source.c:220 +#: libpq_source.c:219 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "現在のWAL挿入位置として認識不可の結果\"%s\"" -#: libpq_source.c:271 +#: libpq_source.c:270 #, c-format msgid "could not fetch file list: %s" msgstr "ファイルリストをフェッチできませんでした: %s" -#: libpq_source.c:276 +#: libpq_source.c:275 #, c-format msgid "unexpected result set while fetching file list" msgstr "ファイルリストのフェッチ中に想定外の結果セット" -#: libpq_source.c:477 +#: libpq_source.c:476 #, c-format msgid "could not send query: %s" msgstr "クエリを送信できませんでした: %s" -#: libpq_source.c:480 +#: libpq_source.c:479 #, c-format msgid "could not set libpq connection to single row mode" msgstr "libpq接続を単一行モードに設定できませんでした" -#: libpq_source.c:510 +#: libpq_source.c:509 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "リモートファイルをフェッチ中に想定外の結果: %s" -#: libpq_source.c:515 +#: libpq_source.c:514 #, c-format msgid "received more data chunks than requested" msgstr "要求よりも多くのデータチャンクが到着しました" -#: libpq_source.c:519 +#: libpq_source.c:518 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "リモートファイルのフェッチ中に想定外の結果セットサイズ" -#: libpq_source.c:525 +#: libpq_source.c:524 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "リモートファイルのフェッチ中の結果セットに想定外のデータ型: %u %u %u" -#: libpq_source.c:533 +#: libpq_source.c:532 #, c-format msgid "unexpected result format while fetching remote files" msgstr "リモートファイルのフェッチ中に想定外の結果形式" -#: libpq_source.c:539 +#: libpq_source.c:538 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "リモートファイルのフェッチ中の結果に想定外のNULL値" -#: libpq_source.c:543 +#: libpq_source.c:542 #, c-format msgid "unexpected result length while fetching remote files" msgstr "リモートファイルのフェッチ中に想定外の結果の長さ" -#: libpq_source.c:576 +#: libpq_source.c:575 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "ファイル\"%s\"への要求に対してファイル\"%s\"のデータを受信しました" -#: libpq_source.c:580 +#: libpq_source.c:579 #, c-format -msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" -msgstr "ファイル\"%2$s\"のオフセット%3$lldへの要求に対してオフセット%1$lldのデータを受信しました" +msgid "received data at offset % of file \"%s\", when requested for offset %lld" +msgstr "ファイル\"%2$s\"のオフセット%3$lldへの要求しましたが、オフセット%1$のデータを受信しました" -#: libpq_source.c:592 +#: libpq_source.c:591 #, c-format msgid "received more than requested for file \"%s\"" msgstr "ファイル”%s\"に対して要求よりも多量のデータを受信しました" -#: libpq_source.c:605 +#: libpq_source.c:604 #, c-format msgid "unexpected number of data chunks received" msgstr "想定外の数のデータチャンクを受信しました" -#: libpq_source.c:648 +#: libpq_source.c:647 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "リモートファイル\"%s\"をフェッチできませんでした: %s" -#: libpq_source.c:653 +#: libpq_source.c:652 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "リモートファイル\"%s\"のフェッチ中に想定外の結果セット" -#: local_source.c:90 local_source.c:142 +#: local_source.c:88 local_source.c:140 #, c-format msgid "could not open source file \"%s\": %m" msgstr "ソースファイル\"%s\"をオープンすることができませんでした: %m" -#: local_source.c:117 +#: local_source.c:115 #, c-format msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "ファイル\"%s\"のサイズが同時に変更されました。%dバイトを期待していましたが、%dバイトコピーされました" -#: local_source.c:146 +#: local_source.c:144 #, c-format msgid "could not seek in source file: %m" msgstr "ソースファイルをシークすることができませんでした: %m" -#: local_source.c:165 +#: local_source.c:163 #, c-format msgid "unexpected EOF while reading file \"%s\"" msgstr "ファイル\"%s\"を読み込み中に想定外のEOF" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "WAL読み取り機構のメモリ割り当て中にメモリ不足" @@ -513,22 +518,22 @@ msgstr "%X/%XのWALレコードを読み取れませんでした" msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "終了点%X/%Xは妥当な終了点ではありません; %X/%Xを期待していました" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "%X/%Xの前のWALレコードが見つかりませんでした: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "%X/%Xの前のWALレコードが見つかりませんでした" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "ファイル\"%s\"をシークできませんでした: %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WALレコードはリレーションを更新しますが、レコードの型を認識できません: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" @@ -704,11 +709,6 @@ msgstr "PostgreSQLのスーパーユーザーで%sを実行しなければなり msgid "could not read permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を読み取れませんでした: %m" -#: pg_rewind.c:311 -#, c-format -msgid "%s" -msgstr "%s" - #: pg_rewind.c:314 #, c-format msgid "connected to server" @@ -729,153 +729,153 @@ msgstr "タイムライン%3$uのWAL位置%1$X/%2$Xで両サーバーが分岐 msgid "no rewind required" msgstr "巻き戻しは必要ありません" -#: pg_rewind.c:460 +#: pg_rewind.c:464 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "タイムライン%3$uの%1$X/%2$Xにある最新の共通チェックポイントから巻き戻しています" -#: pg_rewind.c:470 +#: pg_rewind.c:474 #, c-format msgid "reading source file list" msgstr "ソースファイルリストを読み込んでいます" -#: pg_rewind.c:474 +#: pg_rewind.c:478 #, c-format msgid "reading target file list" msgstr "ターゲットファイルリストを読み込んでいます" -#: pg_rewind.c:483 +#: pg_rewind.c:487 #, c-format msgid "reading WAL in target" msgstr "ターゲットでWALを読み込んでいます" -#: pg_rewind.c:504 +#: pg_rewind.c:508 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "%lu MBコピーする必要があります(ソースディレクトリの合計サイズは%lu MBです)" -#: pg_rewind.c:522 +#: pg_rewind.c:526 #, c-format msgid "syncing target data directory" msgstr "ターゲットデータディレクトリを同期しています" -#: pg_rewind.c:538 +#: pg_rewind.c:543 #, c-format msgid "Done!" msgstr "完了!" -#: pg_rewind.c:618 +#: pg_rewind.c:623 #, c-format msgid "no action decided for file \"%s\"" msgstr "ファイル\"%s\"に対するアクションが決定されていません" -#: pg_rewind.c:650 +#: pg_rewind.c:655 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "pg_rewindの実行中にソースシス7テムが更新されました" -#: pg_rewind.c:654 +#: pg_rewind.c:659 #, c-format msgid "creating backup label and updating control file" msgstr "backup labelを作成して制御ファイルを更新しています" -#: pg_rewind.c:704 +#: pg_rewind.c:709 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "巻き戻し完了時点のソースシステムが想定外の状態でした" -#: pg_rewind.c:736 +#: pg_rewind.c:741 #, c-format msgid "source and target clusters are from different systems" msgstr "ソースクラスタとターゲットクラスタは異なるシステムのものです" -#: pg_rewind.c:744 +#: pg_rewind.c:749 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "クラスタは、このバージョンのpg_rewindとの互換性がありません" -#: pg_rewind.c:754 +#: pg_rewind.c:759 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "ターゲットサーバーはデータチェックサムを利用している、または\"wal_log_hints = on\"である必要があります" -#: pg_rewind.c:765 +#: pg_rewind.c:770 #, c-format msgid "target server must be shut down cleanly" msgstr "ターゲットサーバーはきれいにシャットダウンされていなければなりません" -#: pg_rewind.c:775 +#: pg_rewind.c:780 #, c-format msgid "source data directory must be shut down cleanly" msgstr "ソースデータディレクトリはきれいにシャットダウンされていなければなりません" -#: pg_rewind.c:822 +#: pg_rewind.c:827 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) コピーしました" -#: pg_rewind.c:950 +#: pg_rewind.c:953 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "ソースクラスタとターゲットクラスタのタイムラインの共通の祖先を見つけられません" -#: pg_rewind.c:991 +#: pg_rewind.c:994 #, c-format msgid "backup label buffer too small" msgstr "バックアップラベルのバッファが小さすぎます" -#: pg_rewind.c:1014 +#: pg_rewind.c:1017 #, c-format msgid "unexpected control file CRC" msgstr "想定外の制御ファイルCRCです" -#: pg_rewind.c:1026 +#: pg_rewind.c:1029 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "想定外の制御ファイルのサイズ%d、想定は%d" -#: pg_rewind.c:1036 +#: pg_rewind.c:1039 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "制御ファイル中の不正なWALセグメントサイズ (%dバイト)" -#: pg_rewind.c:1040 +#: pg_rewind.c:1043 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WALセグメントサイズは1MBから1GBまでの間の2の累乗でなければなりません。" -#: pg_rewind.c:1077 pg_rewind.c:1145 +#: pg_rewind.c:1080 pg_rewind.c:1148 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "%2$sには\"%1$s\"プログラムが必要ですが、\"%3$s\"と同じディレクトリにありませんでした。" -#: pg_rewind.c:1080 pg_rewind.c:1148 +#: pg_rewind.c:1083 pg_rewind.c:1151 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした。" -#: pg_rewind.c:1109 +#: pg_rewind.c:1112 #, c-format -msgid "unable to read restore_command from target cluster" -msgstr "ターゲットクラスタからrestore_commandが読み取れません" +msgid "could not read \"restore_command\" from target cluster" +msgstr "ターゲットクラスタから\"restore_command\"が読み取れませんでした" -#: pg_rewind.c:1114 +#: pg_rewind.c:1117 #, c-format msgid "\"restore_command\" is not set in the target cluster" msgstr "ターゲットクラスタで\"restore_command\"が設定されていません" -#: pg_rewind.c:1152 +#: pg_rewind.c:1155 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "ターゲットサーバーに対して\"%s\"を実行してクラッシュリカバリを完了させます" -#: pg_rewind.c:1190 +#: pg_rewind.c:1193 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "ターゲットクラスタでのpostgresコマンドのシングルユーザーモード実行に失敗しました" -#: pg_rewind.c:1191 +#: pg_rewind.c:1194 #, c-format msgid "Command was: %s" msgstr "コマンド: %s" @@ -915,157 +915,157 @@ msgstr "履歴ファイル内の無効なデータ" msgid "Timeline IDs must be less than child timeline's ID." msgstr "タイムラインIDは子のタイムラインIDより小さくなければなりません。" -#: xlogreader.c:619 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "%X/%Xのレコードオフセットが無効です:最低でも%uを期待していましたが、実際は%uでした" -#: xlogreader.c:628 +#: xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%Xではcontrecordが必要です" -#: xlogreader.c:669 xlogreader.c:1134 +#: xlogreader.c:670 xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "%X/%Xのレコード長が無効です:最低でも%uを期待していましたが、実際は%uでした" -#: xlogreader.c:758 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%Xで contrecord フラグがありません" -#: xlogreader.c:771 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "%3$X/%4$Xの継続レコードの長さ%1$u(正しくは%2$lld)は不正です" -#: xlogreader.c:1142 +#: xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "%2$X/%3$XのリソースマネージャID %1$uが無効です" -#: xlogreader.c:1155 xlogreader.c:1171 +#: xlogreader.c:1156 xlogreader.c:1172 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "直前のリンク%1$X/%2$Xが不正なレコードが%3$X/%4$Xにあります" -#: xlogreader.c:1209 +#: xlogreader.c:1210 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "%X/%Xのレコード内のリソースマネージャデータのチェックサムが不正です" -#: xlogreader.c:1243 +#: xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%2$s、LSN %3$X/%4$X、オフセット%5$uで不正なマジックナンバー%1$04X" -#: xlogreader.c:1258 xlogreader.c:1300 +#: xlogreader.c:1259 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント %2$s、LSN %3$X/%4$X、オフセット%5$uで不正な情報ビット列%1$04X" -#: xlogreader.c:1274 +#: xlogreader.c:1275 #, 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ファイルは異なるデータベースシステム由来のものです: WALファイルのデータベースシステム識別子は %lluで、pg_control におけるデータベースシステム識別子は %lluです" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WALファイルは異なるデータベースシステム由来のものです: WALファイルのデータベースシステム識別子は %で、pg_control におけるデータベースシステム識別子は %です" -#: xlogreader.c:1282 +#: xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ファイルは異なるデータベースシステム由来のものです: ページヘッダーのセグメントサイズが正しくありません" -#: xlogreader.c:1288 +#: xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ファイルは異なるデータベースシステム由来のものです: ページヘッダーのXLOG_BLCKSZが正しくありません" -#: xlogreader.c:1320 +#: xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%3$s、LSN %4$X/%5$X、オフセット%6$uで想定外のページアドレス%1$X/%2$X" -#: xlogreader.c:1346 +#: xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "WALセグメント%3$s、LSN %4$X/%5$X、オフセット%6$uで異常な順序のタイムラインID %1$u(%2$uの後)" -#: xlogreader.c:1749 +#: xlogreader.c:1759 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %uが%X/%Xで無効です" -#: xlogreader.c:1773 +#: xlogreader.c:1783 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATAが設定されていますが、%X/%Xにデータがありません" -#: xlogreader.c:1780 +#: xlogreader.c:1790 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATAが設定されていませんが、%2$X/%3$Xのデータ長は%1$u" -#: xlogreader.c:1816 +#: xlogreader.c:1826 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEが設定されていますが、%4$X/%5$Xでホールオフセット%1$u、長さ%2$u、ブロックイメージ長%3$u" -#: xlogreader.c:1832 +#: xlogreader.c:1842 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEが設定されていませんが、%3$X/%4$Xにホールオフセット%1$u、長さ%2$u" -#: xlogreader.c:1846 +#: xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSEDが設定されていますが、%2$X/%3$Xにおいてブロックイメージ長が%1$uです" -#: xlogreader.c:1861 +#: xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEもBKPIMAGE_COMPRESSEDも設定されていませんが、%2$X/%3$Xにおいてブロックイメージ長が%1$uです" -#: xlogreader.c:1877 +#: xlogreader.c:1887 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_RELが設定されていますが、%X/%Xにおいて以前のリレーションがありません" -#: xlogreader.c:1889 +#: xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "%2$X/%3$Xにおけるblock_id %1$uが無効です" -#: xlogreader.c:1956 +#: xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "%X/%Xのレコードのサイズが無効です" -#: xlogreader.c:1982 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WALレコード中のID %dのバックアップブロックを特定できませんでした" -#: xlogreader.c:2066 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%Xで不正なブロック%dが指定されているためイメージが復元できませんでした" -#: xlogreader.c:2073 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "%X/%Xでブロック%dのイメージが不正な状態であるため復元できませんでした" -#: xlogreader.c:2100 xlogreader.c:2117 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%1$X/%2$Xで、ブロック%4$dがこのビルドでサポートされない圧縮方式%3$sで圧縮されているため復元できませんでした" -#: xlogreader.c:2126 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "%X/%Xでブロック%dのイメージが不明な方式で圧縮されているため復元できませんでした" -#: xlogreader.c:2134 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "%X/%Xのブロック%dが伸張できませんでした" diff --git a/src/bin/pg_rewind/po/ka.po b/src/bin/pg_rewind/po/ka.po index e5aff9132a060..5f0c442e81049 100644 --- a/src/bin/pg_rewind/po/ka.po +++ b/src/bin/pg_rewind/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_rewind (PostgreSQL) 17\n" +"Project-Id-Version: pg_rewind (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:23+0000\n" -"PO-Revision-Date: 2024-06-14 06:15+0200\n" +"POT-Creation-Date: 2025-03-29 21:24+0000\n" +"PO-Revision-Date: 2025-03-30 01:31+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,24 +16,24 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " @@ -43,19 +43,19 @@ msgstr "მინიშნება: " msgid "could not open file \"%s\" for reading: %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 -#: local_source.c:163 parsexlog.c:350 +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:102 +#: local_source.c:161 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: local_source.c:121 local_source.c:172 +#: local_source.c:119 local_source.c:170 #, c-format msgid "could not close file \"%s\": %m" msgstr "ფაილის (%s) დახურვის შეცდომა: %m" @@ -76,10 +76,10 @@ msgstr "" "ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" "მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." -#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 -#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 -#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 -#: parsexlog.c:312 +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:69 +#: ../../common/file_utils.c:370 ../../common/file_utils.c:428 +#: ../../common/file_utils.c:502 ../../fe_utils/recovery_gen.c:141 +#: parsexlog.c:333 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" @@ -89,8 +89,8 @@ msgstr "ფაილის (%s) გახსნის შეცდომა: %m" msgid "could not write file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 -#: ../../common/file_utils.c:488 +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:440 +#: ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" @@ -106,34 +106,34 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #: ../../fe_utils/archive.c:86 file_ops.c:417 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 file_ops.c:388 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 file_ops.c:462 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -218,29 +218,34 @@ msgstr "%s არაა საზღვრებში %d-დან %d-მდე msgid "unrecognized sync method: %s" msgstr "უცნობი სინქრონიზაციის მეთოდი: \"%s\"" -#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 -#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 -#: ../../fe_utils/recovery_gen.c:168 +#: ../../fe_utils/recovery_gen.c:40 ../../fe_utils/recovery_gen.c:51 +#: ../../fe_utils/recovery_gen.c:90 ../../fe_utils/recovery_gen.c:110 +#: ../../fe_utils/recovery_gen.c:169 ../../fe_utils/recovery_gen.c:230 #, c-format msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" -#: ../../fe_utils/recovery_gen.c:143 +#: ../../fe_utils/recovery_gen.c:144 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" -#: ../../fe_utils/recovery_gen.c:152 +#: ../../fe_utils/recovery_gen.c:153 #, c-format msgid "could not create file \"%s\": %m" msgstr "ფაილის (%s) შექმნის შეცდომა: %m" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/recovery_gen.c:215 pg_rewind.c:311 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" @@ -320,177 +325,177 @@ msgstr "%s: სიმბმული ძალიან გრძელია" msgid "could not close directory \"%s\": %m" msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" -#: filemap.c:235 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "წყაროში არსებული მონაცემების ფალი \"%s\" ჩვეულებრივი ფაილი არაა" -#: filemap.c:240 filemap.c:273 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "დუბლირებული საწყისი ფაილი : \"%s\"" -#: filemap.c:328 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "არაჩვეულებრივი ფაილის (%s) გვერდების მოულოდნელი ცვლილება" -#: filemap.c:682 filemap.c:776 +#: filemap.c:743 filemap.c:845 #, c-format msgid "unknown file type for \"%s\"" msgstr "ფაილის უცნობი ტიპი \"%s\"." -#: filemap.c:709 +#: filemap.c:778 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "ფაილი %s წყაროში და სამიზნეში სხვადასხვა ტიპისაა" -#: filemap.c:781 +#: filemap.c:850 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "ვერ გადავწყვიტე, ფაილს რა ვუყო: %s" -#: libpq_source.c:131 +#: libpq_source.c:130 #, c-format msgid "could not clear \"search_path\": %s" msgstr "\"search_path\"-ის გასუფთავების პრობლემა: %s" -#: libpq_source.c:142 +#: libpq_source.c:141 #, c-format msgid "\"full_page_writes\" must be enabled in the source server" msgstr "საწყის სერვერზე \"full_page_writes\"-ის ჩართვა აუცილებელია" -#: libpq_source.c:153 +#: libpq_source.c:152 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "შეცდომა ფაილის შემცველობის გამოსათხოველი ოპერაციების მომზადებისას: %s" -#: libpq_source.c:172 +#: libpq_source.c:171 #, c-format msgid "error running query (%s) on source server: %s" msgstr "შეცდომა სერვერზე (%2$s) მოთხოვნის (%1$s) შესრულებისას" -#: libpq_source.c:177 +#: libpq_source.c:176 #, c-format msgid "unexpected result set from query" msgstr "მოთხოვნის მოულოდნელი სედეგი" -#: libpq_source.c:199 +#: libpq_source.c:198 #, c-format msgid "error running query (%s) in source server: %s" msgstr "შეცდომა სერვერში (%2$s) მოთხოვნის (%1$s) შესრულებისას" -#: libpq_source.c:220 +#: libpq_source.c:219 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "უცნობი პასუხი მიმდინარე WAL ჩასმის მდებარეობისთვის: %s" -#: libpq_source.c:271 +#: libpq_source.c:270 #, c-format msgid "could not fetch file list: %s" msgstr "ფაილების სიის მიღების პრობლემა: %s" -#: libpq_source.c:276 +#: libpq_source.c:275 #, c-format msgid "unexpected result set while fetching file list" msgstr "მოულოდნელი პასუხი ფაილების სიის მიღებისას" -#: libpq_source.c:477 +#: libpq_source.c:476 #, c-format msgid "could not send query: %s" msgstr "მოთხოვნის გაგზავნის პრობლემა: %s" -#: libpq_source.c:480 +#: libpq_source.c:479 #, c-format msgid "could not set libpq connection to single row mode" msgstr "ერთმწკრივიან რეჟიმში libpq შეერთების დაყენება შეუძლებელია" -#: libpq_source.c:510 +#: libpq_source.c:509 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "დაშორებული ფაილების მიღების მოულოდნელი შედეგი: %s" -#: libpq_source.c:515 +#: libpq_source.c:514 #, c-format msgid "received more data chunks than requested" msgstr "მიღებულია მეტი ნაგლეჯი, ვიდრე მოვითხოვე" -#: libpq_source.c:519 +#: libpq_source.c:518 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "ფაილების გამოთხოვისას მიღებული შედეგების სეტის მოულოდნელი ზომა" -#: libpq_source.c:525 +#: libpq_source.c:524 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "მონაცემების მოულოდნელი ტიპები დაშორებული ფაილების გამოთხოვისას შედეგების სეტში: %u %u %u" -#: libpq_source.c:533 +#: libpq_source.c:532 #, c-format msgid "unexpected result format while fetching remote files" msgstr "დაშორებული ფაილების მიღებისას მიღებული ფორმატი მოულოდნელია" -#: libpq_source.c:539 +#: libpq_source.c:538 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "დაშორებული ფაილების მიღების შედეგი მოულოდნელ ნულოვან მნიშვნელობებს შეიცავს" -#: libpq_source.c:543 +#: libpq_source.c:542 #, c-format msgid "unexpected result length while fetching remote files" msgstr "დაშორებული ფაილის მიღებისას მიღებული შედეგის სიგრძე არასწორია" -#: libpq_source.c:576 +#: libpq_source.c:575 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "მიღებულია მონაცემები ფაილისთვის \"%s\", მაშინ, როცა მოვითხოვე \"%s\"" -#: libpq_source.c:580 +#: libpq_source.c:579 #, c-format -msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" -msgstr "მონაცემები მიღებულია წანაცვლებისთვის %lld ფაილში %s მაშინ, როცა მოთხოვნილი იყო წანაცვლებისთვის %lld" +msgid "received data at offset % of file \"%s\", when requested for offset %lld" +msgstr "მონაცემები მიღებულია წანაცვლებისთვის % ფაილში \"%s\" მაშინ, როცა მოთხოვნილი იყო წანაცვლებისთვის %lld" -#: libpq_source.c:592 +#: libpq_source.c:591 #, c-format msgid "received more than requested for file \"%s\"" msgstr "მიღებულია მეტი, ვიდრე მოთხოვნილია ფაილისთვის: %s" -#: libpq_source.c:605 +#: libpq_source.c:604 #, c-format msgid "unexpected number of data chunks received" msgstr "მონაცემების მიღებული ნაწილების რიცხვი არასწორია" -#: libpq_source.c:648 +#: libpq_source.c:647 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "დაშორებული ფაილის (%s) მიღების შეცდომა: %s" -#: libpq_source.c:653 +#: libpq_source.c:652 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "მოულოდნელი პასუხი დაშორებული ფაილის (%s) მიღებისას" -#: local_source.c:90 local_source.c:142 +#: local_source.c:88 local_source.c:140 #, c-format msgid "could not open source file \"%s\": %m" msgstr "წყაროს ფაილის \"%s\" გახსნის შეცდომა: %m" -#: local_source.c:117 +#: local_source.c:115 #, c-format msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "ფაილის (%s) ზომა პარალელურად შეიცვალა: მოველოდი %d ბაიტს. დაკოპირდა %d" -#: local_source.c:146 +#: local_source.c:144 #, c-format msgid "could not seek in source file: %m" msgstr "საწყის ფაილში გადახვევის პრობლემა: %m" -#: local_source.c:165 +#: local_source.c:163 #, c-format msgid "unexpected EOF while reading file \"%s\"" msgstr "მოულოდნელი EOF ფაილის კითხვისას: %s" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "არასაკმარისი მეხსიერება WAL-ის წამკითხავი პროცესორისთვის" @@ -510,22 +515,22 @@ msgstr "შეცდომა WAL ჩანაწერის კითხვი msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "ბოლოს მაჩვენებელი %X/%X არასწორი ბოლოს მაჩვენებელია. მოველოდი %X/%X" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "წინა WAL ჩანაწერის პოვნა შეუძლებელია მისამართზე %X/%X: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "წინა WAL ჩანაწერის პოვნა შეუძლებელია მისამართზე %X/%X" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "ფაილში (%s) გადახვევის პრობლემა: %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WAL ჩანაწერი ცვლის ურთიერთობას, მაგრამ ჩანაწერის ტიპი უცნობია: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" @@ -702,11 +707,6 @@ msgstr "%s PostgreSQL-ის ზემომხმარებლით უნ msgid "could not read permissions of directory \"%s\": %m" msgstr "საქაღალდის წვდომების წაკითხვა შეუძლებელია \"%s\": %m" -#: pg_rewind.c:311 -#, c-format -msgid "%s" -msgstr "%s" - #: pg_rewind.c:314 #, c-format msgid "connected to server" @@ -727,154 +727,154 @@ msgstr "სერვერი დაშორდა WAL-ს მდებარ msgid "no rewind required" msgstr "გადახვევა საჭირო არაა" -#: pg_rewind.c:460 +#: pg_rewind.c:464 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "გადახვევა ბოლო საერთო საკონტროლო წერტილიდან მისამართზე %X/%X დროის ხაზზე %u" -#: pg_rewind.c:470 +#: pg_rewind.c:474 #, c-format msgid "reading source file list" msgstr "ფაილების წყაროს სიის კითხვა" -#: pg_rewind.c:474 +#: pg_rewind.c:478 #, c-format msgid "reading target file list" msgstr "სამიზნის ფაილების სიის კითხვა" -#: pg_rewind.c:483 +#: pg_rewind.c:487 #, c-format msgid "reading WAL in target" msgstr "სამიზნეში მყოფი WAL-ის კითხვა" -#: pg_rewind.c:504 +#: pg_rewind.c:508 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "საჭიროა %lu მბ-ის კოპირება (საწყის საქაღალდის სრული ზომაა %lu მბ)" -#: pg_rewind.c:522 +#: pg_rewind.c:526 #, c-format msgid "syncing target data directory" msgstr "მონაცემების სამიზე საქაღალდის სინქრონიზაცია" -#: pg_rewind.c:538 +#: pg_rewind.c:543 #, c-format msgid "Done!" msgstr "შესრულებულია!" -#: pg_rewind.c:618 +#: pg_rewind.c:623 #, c-format msgid "no action decided for file \"%s\"" msgstr "ფაილისთვის %s ქმედება არჩეული არაა" -#: pg_rewind.c:650 +#: pg_rewind.c:655 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "საწყისი ფაილი შეიცვალა, სანამ pg_rewind იყო გაშვებული" -#: pg_rewind.c:654 +#: pg_rewind.c:659 #, c-format msgid "creating backup label and updating control file" msgstr "მარქაფის ჭდის შექმნა და საკონტროლო ფაილის განახლება" -#: pg_rewind.c:704 +#: pg_rewind.c:709 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "საწყისი სისტემა გადახვევისას გაურკვეველ მდგომარეობაში აღმოჩნდა" -#: pg_rewind.c:736 +#: pg_rewind.c:741 #, c-format msgid "source and target clusters are from different systems" msgstr "საწყისი და სამიზნე კლასტერები სხვადასახვა სისტემებიდანაა" -#: pg_rewind.c:744 +#: pg_rewind.c:749 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "კლასტერები pg_rewind-ის ამ ვერსიასთან შეუთავსებელია" -#: pg_rewind.c:754 +#: pg_rewind.c:759 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "სამზნე სერვერზე საჭიროა ან მონაცემების საკონტროლო ჯამების გამოყენება, ან \"wal_log_hints = on\"" -#: pg_rewind.c:765 +#: pg_rewind.c:770 #, c-format msgid "target server must be shut down cleanly" msgstr "სამიზნე ბაზა წესების დაცვით უნდა იყოს გამორთული" -#: pg_rewind.c:775 +#: pg_rewind.c:780 #, c-format msgid "source data directory must be shut down cleanly" msgstr "საწყისი ბაზა წესების დაცვით უნდა იყოს გამორთული" -#: pg_rewind.c:822 +#: pg_rewind.c:827 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s კბ (%d%%) დაკოპირდა" -#: pg_rewind.c:950 +#: pg_rewind.c:953 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "საწყისი და სამიზნე კლასტერების დროის ხაზის საერთო წინაპრის პოვნა შეუძლებელია" -#: pg_rewind.c:991 +#: pg_rewind.c:994 #, c-format msgid "backup label buffer too small" msgstr "მარქაფის ჭდის ბაფერი ძალიან პატარაა" -#: pg_rewind.c:1014 +#: pg_rewind.c:1017 #, c-format msgid "unexpected control file CRC" msgstr "კონტროლის ფაილის მოულოდნელი CRC" -#: pg_rewind.c:1026 +#: pg_rewind.c:1029 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "საკონტროლო ფაილის არასწორი სიგრძე: %d. უნდა იყოს: %d" -#: pg_rewind.c:1036 +#: pg_rewind.c:1039 #, c-format msgid "invalid WAL segment size in control file (%d byte)" msgid_plural "invalid WAL segment size in control file (%d bytes)" msgstr[0] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" msgstr[1] "არასწორი WAL სეგმენტის ზომა კონტროლის ფაილში (%d ბაიტი)" -#: pg_rewind.c:1040 +#: pg_rewind.c:1043 #, c-format msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." msgstr "WAL სეგმენტის ზომა ორის ხარისხი უნდა იყოს, შუალედიდან 1მბ-1გბ." -#: pg_rewind.c:1077 pg_rewind.c:1145 +#: pg_rewind.c:1080 pg_rewind.c:1148 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა" -#: pg_rewind.c:1080 pg_rewind.c:1148 +#: pg_rewind.c:1083 pg_rewind.c:1151 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s" -#: pg_rewind.c:1109 +#: pg_rewind.c:1112 #, c-format -msgid "unable to read restore_command from target cluster" -msgstr "სამიზნე კლასტერიდან restore_command-ის წაკითხვა შეუძლებელია" +msgid "could not read \"restore_command\" from target cluster" +msgstr "სამიზნე კლასტერიდან \"restore_command\"-ის წაკითხვა შეუძლებელია" -#: pg_rewind.c:1114 +#: pg_rewind.c:1117 #, c-format msgid "\"restore_command\" is not set in the target cluster" msgstr "სამიზნე კლასტერში \"restore_command\" დაყენებული არაა" -#: pg_rewind.c:1152 +#: pg_rewind.c:1155 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "ავარიიდან სრულად აღდგენისთვის სამიზნე სერვერზე %s-ის შესრულდება" -#: pg_rewind.c:1190 +#: pg_rewind.c:1193 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "სამიზნე კლასტერში postgres-ის ერთმომხმარებლიანი რეჟიმის შეცდომა" -#: pg_rewind.c:1191 +#: pg_rewind.c:1194 #, c-format msgid "Command was: %s" msgstr "ბრძანება იყო: %s" @@ -914,157 +914,157 @@ msgstr "არასწორი მონაცემები ისტორ msgid "Timeline IDs must be less than child timeline's ID." msgstr "დროის ხაზის ID-ები შვილეული დროის ხაზის ID-ზე ნაკლები უნდა იყოს." -#: xlogreader.c:619 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი წანაცვლება მისამართზე %X/%X: მინდოდა %u, მივიღე %u" -#: xlogreader.c:628 +#: xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord მოთხოვნილია %X/%X-ის მიერ" -#: xlogreader.c:669 xlogreader.c:1134 +#: xlogreader.c:670 xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი სიგრძე მისამართზე %X/%X: მოველოდი მინიმუმ %u, მივიღე %u" -#: xlogreader.c:758 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "contrecord ალამი მისამართზე %X/%X არ არსებობს" -#: xlogreader.c:771 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "contrecord -ის არასწორი სიგრძე %u (მოველოდი %lld) მისამართზე %X/%X" -#: xlogreader.c:1142 +#: xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "რესურსის მმართველის არასწორი ID %u მისამართზე %X/%X" -#: xlogreader.c:1155 xlogreader.c:1171 +#: xlogreader.c:1156 xlogreader.c:1172 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "ჩანაწერი არასწორი წინა ბმულით %X/%X მისამართზე %X/%X" -#: xlogreader.c:1209 +#: xlogreader.c:1210 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "რესურსის მმართველის მონაცემების არასწორი საკონტროლო რიცხვი ჩანაწერში მისამართზე %X/%X" -#: xlogreader.c:1243 +#: xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი მაგიური რიცხვი %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1258 xlogreader.c:1300 +#: xlogreader.c:1259 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი საინფორმაციო ბიტები %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1274 +#: xlogreader.c:1275 #, 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 ფაილი სხვა ბაზიდანაა: WAL ფაილის ბაზის იდენტიფიკატორია %llu, pg_control-ის ბაზის სისტემის იდენტიფიკატორი კი %llu" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WAL ფაილი სხვა ბაზიდანაა: WAL ფაილის ბაზის იდენტიფიკატორია %, pg_control-ის ბაზის სისტემის იდენტიფიკატორი კი %" -#: xlogreader.c:1282 +#: xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ფაილი სხვა ბაზის სიტემიდანაა: სეგმანტის არასწორი ზომა გვერდის თავსართში" -#: xlogreader.c:1288 +#: xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: გვერდის თავსართში მითითებული XLOG_BLKSZ არასწორია" -#: xlogreader.c:1320 +#: xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "მოულოდნელი pageaddr %X/%X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1346 +#: xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "მიმდევრობის-გარე დროის ხაზის ID %u (%u-ის შემდეგ) ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1749 +#: xlogreader.c:1759 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ურიგო block_id %u მისამართზე %X/%X" -#: xlogreader.c:1773 +#: xlogreader.c:1783 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA დაყენებულია, მაგრამ მონაცემები მისამართზე %X/%X არ არსებობს" -#: xlogreader.c:1780 +#: xlogreader.c:1790 #, 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:1816 +#: xlogreader.c:1826 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE დაყენებულია, მაგრამ ნახვრეტის წანაცვლება %u სიგრძე %u ბლოკის ასლის სიგრძე %u მისამართზე %X/%X" -#: xlogreader.c:1832 +#: xlogreader.c:1842 #, 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:1846 +#: xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED დაყენებულია, მაგრამ ბლოკის ასლის სიგრძეა %u მისამართზე %X/%X" -#: xlogreader.c:1861 +#: xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "არც BKPIMAGE_HAS_HOLE და არც BKPIMAGE_COMPRESSED დაყენებული არაა, მაგრამ ბლოკის ასლის სიგრძე %u-ა, მისამართზე %X/%X" -#: xlogreader.c:1877 +#: xlogreader.c:1887 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL დაყენებულია, მაგრამ წინა მნიშვნელობა მითითებული არაა მისამართზე %X/%X" -#: xlogreader.c:1889 +#: xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "არასწორი block_id %u %X/%X" -#: xlogreader.c:1956 +#: xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "ჩანაწერი არასწორი სიგრძით მისამართზე %X/%X" -#: xlogreader.c:1982 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "შეცდომა WAL ჩანაწერში მარქაფი ბლოკის, ID-ით %d, მოძებნისას" -#: xlogreader.c:2066 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X, როცა მითითებულია არასწორი ბლოკი %d" -#: xlogreader.c:2073 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X არასწორი მდგომარეობით, ბლოკი %d" -#: xlogreader.c:2100 xlogreader.c:2117 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%3$s მეთოდით შეკუმშული ასლის აღდგენა მისამართზე %1$X/%2$X, ბლოკი %4$d შეუძლებელია. მხარდაუჭერელია ამ აგების მიერ" -#: xlogreader.c:2126 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X, შეკუმშულია უცნობი მეთოდით, ბლოკი %d" -#: xlogreader.c:2134 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "შეუძლებელია ასლის გაშლა მისამართზე %X/%X, ბლოკი %d" diff --git a/src/bin/pg_rewind/po/ko.po b/src/bin/pg_rewind/po/ko.po index 4ca7e7106f81b..459bbd714014e 100644 --- a/src/bin/pg_rewind/po/ko.po +++ b/src/bin/pg_rewind/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_rewind (PostgreSQL) 16\n" +"Project-Id-Version: pg_rewind (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:52+0000\n" -"PO-Revision-Date: 2023-05-26 13:21+0900\n" +"POT-Creation-Date: 2025-01-17 04:53+0000\n" +"PO-Revision-Date: 2025-01-16 16:58+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -37,6 +37,66 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" + +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:371 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "\"%s\" 파일을 닫을 수 없음: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "바이트 순서 불일치" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"바이트 순서 일치하지 않는 문제\n" +"바이트 순서 정보는 pg_control 파일을 저장할 때 사용되는데,\n" +"이 파일의 바이트 순서 정보와 이 프로그램에서 사용하는 순서 정보가 다릅니다.\n" +"이럴 경우, 출력 결과가 바르지 않을 수 있고,\n" +"설치된 PostgreSQL 프로그램과 데이터 디렉터리가 호환되지 않을 수 있습니다." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:333 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "\"%s\" 파일 쓰기 실패: %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,6 +108,38 @@ msgstr "메모리 부족\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 복제할 수 없음(내부 오류)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위한 파일 시스템 동기화 실패: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -103,43 +195,58 @@ msgstr "\"%s\" 파일 크기가 이상함: %lld 로 비정상, 정상값 %lld" msgid "could not open file \"%s\" restored from archive: %m" msgstr "아카이브에서 \"%s\" 파일 복원 실패: %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "restore_command 실패: %s" +msgid "\"restore_command\" failed: %s" +msgstr "\"restore_command\" 실패: %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "아카이브에서 \"%s\" 파일 복원 실패" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "메모리 부족" +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값이 잘못됨, 해당 옵션: %s" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" +msgid "%s must be in range %d..%d" +msgstr "%s 값은 %d..%d 범위 안에 있어야 함" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "메모리 부족" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/recovery_gen.c:143 #, c-format msgid "could not write to file \"%s\": %m" msgstr "\"%s\" 파일 쓰기 실패: %m" -#: ../../fe_utils/recovery_gen.c:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "\"%s\" 파일을 만들 수 없음: %m" +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -155,11 +262,6 @@ msgstr "\"%s\" 대상 파일을 닫을 수 없음: %m" msgid "could not seek in target file \"%s\": %m" msgstr "\"%s\" 대상 파일에서 seek 작업을 할 수 없음: %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "\"%s\" 파일 쓰기 실패: %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -205,26 +307,6 @@ msgstr "\"%s\"에 대한 심볼릭 링크를 만들 수 없음: %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "\"%s\" 심벌릭 링크를 삭제할 수 없음: %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "\"%s\" 파일 일기 모드로 열기 실패: %m" - -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "\"%s\" 파일을 읽을 수 없음: %m" - -#: file_ops.c:344 parsexlog.c:352 -#, c-format -msgid "could not read file \"%s\": read %d of %zu" -msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %zu" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "\"%s\" 디렉터리 열 수 없음: %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -235,165 +317,160 @@ msgstr "\"%s\" 심볼릭 링크 파일을 읽을 수 없음: %m" msgid "symbolic link \"%s\" target is too long" msgstr "\"%s\" 심볼릭 링크의 대상이 너무 긺" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "\"%s\" 디렉터리를 닫을 수 없음: %m" -#: filemap.c:236 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "\"%s\" 자료 파일은 일반 파일이 아님" -#: filemap.c:241 filemap.c:274 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "\"%s\" 소스 파일을 두 번 지정했습니다" -#: filemap.c:329 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "\"%s\" 비일반 파일의 페이지 변경 정보가 잘못됨" -#: filemap.c:679 filemap.c:773 +#: filemap.c:744 filemap.c:846 #, c-format msgid "unknown file type for \"%s\"" msgstr "\"%s\" 파일 형식을 알 수 없음" -#: filemap.c:706 +#: filemap.c:779 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "\"%s\" 파일 형식이 소스와 타켓이 서로 다름" -#: filemap.c:778 +#: filemap.c:851 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "\"%s\" 파일로 뭘 해야할지 결정할 수 없음" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "search_path를 지울 수 없음: %s" +msgid "could not clear \"search_path\": %s" +msgstr "\"search_path\"를 지울 수 없음: %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, c-format -msgid "full_page_writes must be enabled in the source server" -msgstr "원본 서버는 full_page_writes 옵션으로 운영되어야 함" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "원본 서버는 \"full_page_writes\" 옵션으로 운영되어야 함" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "파일 내용을 뽑기 위한 구문을 준비할 수 없음: %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, c-format msgid "error running query (%s) on source server: %s" msgstr "원본 서버에서 쿼리 (%s) 실행 오류: %s" -#: libpq_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "쿼리 결과가 바르지 않음" -#: libpq_source.c:198 +#: libpq_source.c:199 #, c-format msgid "error running query (%s) in source server: %s" msgstr "원본에서에서 쿼리(%s) 실행 오류: %s" -#: libpq_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "현재 WAL 삽입 위치를 위한 결과가 잘못됨 : \"%s\"" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "파일 목록을 가져올 수 없음: %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "파일 목록을 가져온 결과가 잘못 됨" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "쿼리를 보낼 수 없음: %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "libpq 연결을 단일 로우 모드로 지정할 수 없음" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "원격 파일을 가져오는 도중 결과가 잘못됨: %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "용천 된 것보다 많은 데이터 청크를 받았음" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "원격 파일을 가져오는 도중 결과 집합의 크기가 잘못 됨" -#: libpq_source.c:515 +#: libpq_source.c:525 #, c-format msgid "" "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "원격 파일을 가져오는 도중 결과 집합의 자료형이 잘못 됨: %u %u %u" -#: libpq_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "원격 파일을 가져오는 중 예상치 못한 결과 형식 발견" -#: libpq_source.c:529 +#: libpq_source.c:539 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "원격 파일을 가져오는 도중 결과안에 null 값이 잘못됨" -#: libpq_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "원격 파일을 가져오는 도중 결과 길이가 잘못됨" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "\"%s\" 파일용 데이터를 받았음, \"%s\" 요청 처리용" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "" "received data at offset %lld of file \"%s\", when requested for offset %lld" msgstr "" "%lld 오프셋(해당파일: \"%s\")에 데이터를 받았음, %lld 오프셋 요청 처리용" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "\"%s\" 파일을 위한 보다 많은 요청을 받았음" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "데이터 청크 수신 숫자가 이상함" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "\"%s\" 원격 파일을 가져올 수 없음: %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "\"%s\" 원격파일을 가져오는 도중 결과 집합이 잘못 됨" @@ -409,11 +486,6 @@ msgid "" "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "\"%s\" 소스 파일 크기가 현재 변경 되었음: 기대값: %d, 실재값 %d" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "\"%s\" 파일을 닫을 수 없음: %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -424,7 +496,7 @@ msgstr "원본 파일에서 seek 작업을 할 수 없음: %m" msgid "unexpected EOF while reading file \"%s\"" msgstr "\"%s\" 파일을 읽는 중 예상치 못한 EOF" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "WAL 읽기 프로세서를 할당하는 중 메모리 부족" @@ -444,22 +516,22 @@ msgstr "%X/%X 위치에서 WAL 레코드를 읽을 수 없음" msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "%X/%X 끝 포인터는 바른값이 아님; 기대값: %X/%X" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "%X/%X 위치에서 이전 WAL 레코드를 찾을 수 없음: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "%X/%X 위치에서 이전 WAL 레코드를 찾을 수 없음" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "\"%s\" 파일에서 seek 작업을 할 수 없음: %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "" "WAL record modifies a relation, but record type is not recognized: lsn: %X/" @@ -468,7 +540,7 @@ msgstr "" "WAL 레코드가 릴레이션을 변경하려고 하지만, 레코드 형태가 바르지 않음: lsn: " "%X/%X, rmid: %d, rmgr: %s, info: %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "" "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" @@ -478,7 +550,7 @@ msgstr "" "니다.\n" "\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "" "Usage:\n" @@ -489,43 +561,43 @@ msgstr "" " %s [옵션]...\n" "\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "옵션들:\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format msgid "" -" -c, --restore-target-wal use restore_command in target configuration " -"to\n" +" -c, --restore-target-wal use \"restore_command\" in target " +"configuration to\n" " retrieve WAL files from archives\n" msgstr "" " -c, --restore-target-wal 아카이브에서 WAL 파일을 가져오기 위해\n" -" 대상 환경 설정 restore_command 사용\n" +" 대상 환경 설정 \"restore_command\" 사용\n" -#: pg_rewind.c:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr " -D, --target-pgdata=디렉터리 변경하려는 데이터 디렉터리\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid "" " --source-pgdata=DIRECTORY source data directory to synchronize with\n" msgstr " --source-pgdata=디렉터리 동기화 원본이 되는 데이터 디렉터리\n" -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr " --source-server=연결문자열 원본 서버 접속 정보\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr " -n, --dry-run 변경 작업 전에 멈춤(검사, 확인용)\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written\n" @@ -534,12 +606,12 @@ msgstr "" " -N, --no-sync 작업 완료 뒤 디스크 동기화 작업을 하지 않" "음\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress 진행 과정 메시지를 보여줌\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid "" " -R, --write-recovery-conf write configuration for replication\n" @@ -548,7 +620,7 @@ msgstr "" " -R, --write-recovery-conf 복제를 위한 환경 설정 함\n" " (--source-server 설정 필요함)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -557,30 +629,36 @@ msgstr "" " --config-file=파일이름 대상 클러스터를 실행할 때 사용할\n" " 서버 환경 설정 파일 지정\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr " --debug 디버그 메시지를 보여줌\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, c-format msgid "" " --no-ensure-shutdown do not automatically fix unclean shutdown\n" msgstr "" " --no-ensure-shutdown 비정상 종료 시 자동 뒷정리 작업 안함\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr "" +" --sync-method=METHOD 파일을 디스크에 동기화 하는 방법 지정\n" + +#: pg_rewind.c:113 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "" "\n" @@ -589,152 +667,152 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "" "원본을 지정하지 않았음 (--source-pgdata 또는 --source-server 옵션을 지정 해" "야 함)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "--source-pgdata 또는 --source-server 옵션 중 하나만 지정해야 함" -#: pg_rewind.c:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "대상 데이터 디렉토리가 지정되지 않았음 (--target-pgdata 옵션 사용)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, c-format msgid "" "no source server information (--source-server) specified for --write-" "recovery-conf" msgstr "--write-recovery-conf 용 원보 서버 정보(--source-server) 없음" -#: pg_rewind.c:258 +#: pg_rewind.c:267 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인수를 지정했습니다. (처음 \"%s\")" -#: pg_rewind.c:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\" 계정으로는 실행 할 수 없음" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "PostgreSQL superuser로 %s 프로그램을 실행하십시오." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "\"%s\" 디렉터리 읽기 권한 없음: %m" -#: pg_rewind.c:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "서버 접속 완료" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, c-format msgid "source and target cluster are on the same timeline" msgstr "원본과 대상 클러스터의 타임라인이 같음" -#: pg_rewind.c:387 +#: pg_rewind.c:396 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "서버 분기 WAL 위치: %X/%X, 타임라인 %u" -#: pg_rewind.c:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "되감을 필요 없음" -#: pg_rewind.c:451 +#: pg_rewind.c:463 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "재동기화 시작함, 마지막 체크포인트 위치 %X/%X, 타임라인 %u" -#: pg_rewind.c:461 +#: pg_rewind.c:473 #, c-format msgid "reading source file list" msgstr "원본 파일 목록 읽는 중" -#: pg_rewind.c:465 +#: pg_rewind.c:477 #, c-format msgid "reading target file list" msgstr "대상 파일 목록 읽는 중" -#: pg_rewind.c:474 +#: pg_rewind.c:486 #, c-format msgid "reading WAL in target" msgstr "대상 서버에서 WAL 읽는 중" -#: pg_rewind.c:495 +#: pg_rewind.c:507 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "복사를 위해서 %lu MB 필요함 (원본 디렉토리 전체 크기는 %lu MB)" -#: pg_rewind.c:513 +#: pg_rewind.c:525 #, c-format msgid "syncing target data directory" msgstr "대상 데이터 디렉터리 동기화 중" -#: pg_rewind.c:529 +#: pg_rewind.c:541 #, c-format msgid "Done!" msgstr "완료!" -#: pg_rewind.c:609 +#: pg_rewind.c:621 #, c-format msgid "no action decided for file \"%s\"" msgstr "%s 외부 테이블 접근 권한 없음" -#: pg_rewind.c:641 +#: pg_rewind.c:653 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "pg_rewind 실행 되고 있는 중에 원본 시스템이 변경 되었음" -#: pg_rewind.c:645 +#: pg_rewind.c:657 #, c-format msgid "creating backup label and updating control file" msgstr "백업 라벨을 만들고, 컨트롤 파일을 갱신 중" -#: pg_rewind.c:695 +#: pg_rewind.c:707 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "rewind 끝에 원본 시스템의 상태가 예상값과 다름" -#: pg_rewind.c:727 +#: pg_rewind.c:739 #, c-format msgid "source and target clusters are from different systems" msgstr "원본과 대상 클러스터가 서로 다른 시스템임" -#: pg_rewind.c:735 +#: pg_rewind.c:747 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "해당 클러스터는 이 pg_rewind 버전으로 작업할 수 없음" -#: pg_rewind.c:745 +#: pg_rewind.c:757 #, c-format msgid "" "target server needs to use either data checksums or \"wal_log_hints = on\"" @@ -742,55 +820,54 @@ msgstr "" "대상 서버의 데이터 클러스터가 데이터 체크섬 기능을 켰거나, \"wal_log_hints " "= on\" 설정이 되어야 함" -#: pg_rewind.c:756 +#: pg_rewind.c:768 #, c-format msgid "target server must be shut down cleanly" msgstr "대상 서버는 정상 종료되어야 함" -#: pg_rewind.c:766 +#: pg_rewind.c:778 #, c-format msgid "source data directory must be shut down cleanly" msgstr "원본 데이터 디렉토리는 정상적으로 종료되어야 함" -#: pg_rewind.c:813 +#: pg_rewind.c:825 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) 복사됨" -#: pg_rewind.c:941 +#: pg_rewind.c:951 #, c-format msgid "" "could not find common ancestor of the source and target cluster's timelines" msgstr "원본과 대상 서버의 공통된 상위 타임라인을 찾을 수 없음" -#: pg_rewind.c:982 +#: pg_rewind.c:992 #, c-format msgid "backup label buffer too small" msgstr "백업 라벨 버퍼가 너무 작음" -#: pg_rewind.c:1005 +#: pg_rewind.c:1015 #, c-format msgid "unexpected control file CRC" msgstr "컨트롤 파일 CRC 오류" -#: pg_rewind.c:1017 +#: pg_rewind.c:1027 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "컨트롤 파일의 크기가 %d 로 비정상, 정상값 %d" -#: pg_rewind.c:1026 +#: pg_rewind.c:1037 #, 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 조각 파일은 1MB부터 1GB 사이 2^n 크기여야 하지만, 컨트롤 파일에는 %d 바이" -"트로 지정되었음" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "컨트롤 파일 안에 잘못된 WAL 조각 크기 (%d 바이트)" + +#: pg_rewind.c:1041 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL 조각 파일은 1MB부터 1GB 사이 2^n 크기여야 함" -#: pg_rewind.c:1065 pg_rewind.c:1135 +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " @@ -799,129 +876,124 @@ msgstr "" "\"%s\" 프로그램이 %s 작업에서 필요합니다. 그런데, 이 파일이 \"%s\" 파일이 있" "는 디렉터리안에 없습니다." -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1081 pg_rewind.c:1149 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "\"%s\" 프로그램을 \"%s\" 작업 때문에 찾았지만 이 파일은 %s 프로그램의 버전과 " "다릅니다." -#: pg_rewind.c:1101 +#: pg_rewind.c:1110 +#, c-format +msgid "could not read restore_command from target cluster" +msgstr "대상 클러스터에 restore_command 설정을 읽을 수 없음" + +#: pg_rewind.c:1115 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "대상 클러스터에 restore_command 설정이 없음" +msgid "\"restore_command\" is not set in the target cluster" +msgstr "대상 클러스터에 \"restore_command\" 설정이 없음" -#: pg_rewind.c:1142 +#: pg_rewind.c:1153 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "대상 서버에서 비정상 종료 후 복구 작업을 위해 \"%s\" 실행 중" -#: pg_rewind.c:1180 +#: pg_rewind.c:1191 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "대상 클러스터를 단일 사용자 모드로 postgres 실행 실패" -#: pg_rewind.c:1181 +#: pg_rewind.c:1192 #, c-format msgid "Command was: %s" msgstr "사용된 명령: %s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "히스토리 파일에서 문법오류: %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "숫자 타임라인 ID가 필요합니다." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "트랜잭션 로그 전환 위치 값이 있어야 함" -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "작업내역 파일에 잘못된 자료가 있음: %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "타임라인 ID 값은 그 값이 증가하는 순번값이어야합니다." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "내역 파일에 잘못된 자료가 있음" -#: timeline.c:109 +#: timeline.c:108 #, c-format msgid "Timeline IDs must be less than child timeline's ID." msgstr "타임라인 ID는 하위 타임라인 ID보다 작아야 합니다." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 오프셋:위치 %X/%X, 기대값 %u, 실재값 %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%X에서 contrecord를 필요로 함" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 길이:위치 %X/%X, 기대값 %u, 실재값 %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "%u 길이의 레코드를 디코딩 하는 중 메모리 부족" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "너무 긴 길이(%u)의 레코드가 %X/%X에 있음" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%X 위치에 contrecord 플래그가 없음" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "잘못된 contrecord 길이 %u (기대값: %lld), 위치 %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "잘못된 자원 관리 ID %u, 위치: %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "레코드의 잘못된 프리링크 %X/%X, 해당 레코드 %X/%X" -#: xlogreader.c:1192 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "잘못된 자원관리자 데이터 체크섬, 위치: %X/%X 레코드" -#: xlogreader.c:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "%04X 매직 번호가 잘못됨, WAL 조각파일: %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 정보 비트 %04X, WAL 조각파일: %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -930,7 +1002,7 @@ msgstr "" "WAL 파일이 다른 시스템의 것입니다. WAL 파일의 시스템 식별자는 %llu, " "pg_control 의 식별자는 %llu" -#: xlogreader.c:1265 +#: xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -939,7 +1011,7 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더에 지정된 값이 잘" "못된 조각 크기임" -#: xlogreader.c:1271 +#: xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -948,12 +1020,12 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더의 XLOG_BLCKSZ 값" "이 바르지 않음" -#: xlogreader.c:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 페이지 주소 %X/%X, WAL 조각파일: %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -962,22 +1034,22 @@ msgstr "" "타임라인 범위 벗어남 %u (이전 번호 %u), WAL 조각파일: %s, LSN %X/%X, 오프셋 " "%u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "%u block_id는 범위를 벗어남, 위치 %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA 지정했지만, %X/%X 에 자료가 없음" -#: xlogreader.c:1766 +#: xlogreader.c:1780 #, 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:1802 +#: xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -986,19 +1058,19 @@ msgstr "" "BKPIMAGE_HAS_HOLE 설정이 되어 있지만, 옵셋: %u, 길이: %u, 블록 이미지 길이: " "%u, 대상: %X/%X" -#: xlogreader.c:1818 +#: xlogreader.c:1832 #, 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:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED 설정이 되어 있지만, 블록 이미지 길이: %u, 대상: %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -1007,37 +1079,37 @@ msgstr "" "BKPIMAGE_HAS_HOLE, BKPIMAGE_COMPRESSED 지정 안되어 있으나, 블록 이미지 길이" "는 %u, 대상: %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL 설정이 되어 있지만, %X/%X 에 이전 릴레이션 없음" -#: xlogreader.c:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "잘못된 block_id %u, 위치 %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "잘못된 레코드 길이, 위치 %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WAL 레코드에 %d ID 백업 블록이 없음" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%X 위치에 이미지 복원 실패(%d 블록이 바르지 않음)" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "%X/%X 에 잘못된 상태값으로 이미지 복원 실패, 블록 %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -1046,13 +1118,13 @@ msgstr "" "%X/%X 위치에 %s 압축된 이미지 복원 실패, 해당 엔진이 지원하지 않음, 해당블" "록: %d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "%X/%X 위치에 알수 없는 압축 방식의 이미지 복원 실패, 해당블록: %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "%X/%X 에서 이미 압축 풀기 실패, 블록 %d" @@ -1060,3 +1132,11 @@ msgstr "%X/%X 에서 이미 압축 풀기 실패, 블록 %d" #, c-format #~ msgid "missing contrecord at %X/%X" #~ msgstr "%X/%X 위치에 contrecord 없음" + +#, c-format +#~ msgid "out of memory while trying to decode a record of length %u" +#~ msgstr "%u 길이의 레코드를 디코딩 하는 중 메모리 부족" + +#, c-format +#~ msgid "record length %u at %X/%X too long" +#~ msgstr "너무 긴 길이(%u)의 레코드가 %X/%X에 있음" diff --git a/src/bin/pg_rewind/po/ru.po b/src/bin/pg_rewind/po/ru.po index 8a705d2d1f076..6f3d63dec583b 100644 --- a/src/bin/pg_rewind/po/ru.po +++ b/src/bin/pg_rewind/po/ru.po @@ -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, 2021, 2022, 2023. +# Alexander Lakhin , 2015-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2023-08-30 15:22+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-07 13:07+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -37,6 +37,65 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" + +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:371 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:373 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "не удалось закрыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "несоответствие порядка байт" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"возможно несоответствие порядка байт\n" +"Порядок байт в файле pg_control может не соответствовать используемому\n" +"этой программой. В этом случае результаты будут неверными и\n" +"установленный PostgreSQL будет несовместим с этим каталогом данных." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:333 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не удалось записать файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,6 +107,38 @@ msgstr "нехватка памяти\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -103,43 +194,61 @@ msgstr "неподходящий размер файла \"%s\": %lld вмест msgid "could not open file \"%s\" restored from archive: %m" msgstr "не удалось открыть файл \"%s\", восстановленный из архива: %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "не удалось получить информацию о файле \"%s\": %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "ошибка при выполнении restore_command: %s" +msgid "\"restore_command\" failed: %s" +msgstr "ошибка при выполнении \"restore_command\": %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "восстановить файл \"%s\" из архива не удалось" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "нехватка памяти" +msgid "invalid value \"%s\" for option %s" +msgstr "неверное значение \"%s\" для параметра %s" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" +msgid "%s must be in range %d..%d" +msgstr "значение %s должно быть в диапазоне %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "нехватка памяти" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/recovery_gen.c:143 #, c-format msgid "could not write to file \"%s\": %m" msgstr "не удалось записать в файл \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "не удалось создать файл \"%s\": %m" +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -155,11 +264,6 @@ msgstr "не удалось закрыть целевой файл \"%s\": %m" msgid "could not seek in target file \"%s\": %m" msgstr "не удалось переместиться в целевом файле \"%s\": %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "не удалось записать файл \"%s\": %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -205,26 +309,6 @@ msgstr "не удалось создать символическую ссылк msgid "could not remove symbolic link \"%s\": %m" msgstr "ошибка при удалении символической ссылки \"%s\": %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "не удалось открыть файл \"%s\" для чтения: %m" - -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не удалось прочитать файл \"%s\": %m" - -#: file_ops.c:344 parsexlog.c:352 -#, c-format -msgid "could not read file \"%s\": read %d of %zu" -msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %zu)" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не удалось открыть каталог \"%s\": %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -235,118 +319,113 @@ msgstr "не удалось прочитать символическую ссы msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь символической ссылки \"%s\" слишком длинный" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не удалось прочитать каталог \"%s\": %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: filemap.c:236 +#: filemap.c:297 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "файл данных \"%s\" в источнике не является обычным файлом" -#: filemap.c:241 filemap.c:274 +#: filemap.c:302 filemap.c:335 #, c-format msgid "duplicate source file \"%s\"" msgstr "повторный исходный файл \"%s\"" -#: filemap.c:329 +#: filemap.c:390 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "неожиданная модификация страницы для файла особого вида \"%s\"" -#: filemap.c:683 filemap.c:777 +#: filemap.c:744 filemap.c:846 #, c-format msgid "unknown file type for \"%s\"" msgstr "неизвестный тип файла \"%s\"" -#: filemap.c:710 +#: filemap.c:779 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "файл \"%s\" имеет разный тип в исходном и целевом кластере" -#: filemap.c:782 +#: filemap.c:851 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "не удалось определить, что делать с файлом \"%s\"" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "не удалось очистить search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "не удалось очистить \"search_path\": %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, c-format -msgid "full_page_writes must be enabled in the source server" -msgstr "на исходном сервере должен быть включён режим full_page_writes" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "на исходном сервере должен быть включён режим \"full_page_writes\"" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "не удалось подготовить оператор для извлечения содержимого файла: %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, c-format msgid "error running query (%s) on source server: %s" msgstr "ошибка выполнения запроса (%s) на исходном сервере: %s" -#: libpq_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "неожиданный результат запроса" -#: libpq_source.c:198 +#: libpq_source.c:199 #, c-format msgid "error running query (%s) in source server: %s" msgstr "ошибка выполнения запроса (%s) на исходном сервере: %s" -#: libpq_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "" "нераспознанный результат \"%s\" вместо текущей позиции добавления в WAL" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "не удалось получить список файлов: %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "неожиданный результат при получении списка файлов" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "не удалось отправить запрос: %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "не удалось перевести подключение libpq в однострочный режим" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "неожиданный результат при получении файлов с сервера: %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "получено больше сегментов данных, чем запрошено" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "неожиданный размер набора результатов при получении файлов с сервера" -#: libpq_source.c:515 +#: libpq_source.c:525 #, c-format msgid "" "unexpected data types in result set while fetching remote files: %u %u %u" @@ -354,27 +433,27 @@ msgstr "" "неожиданные типы данных в наборе результатов при получении файлов с сервера: " "%u %u %u" -#: libpq_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "неожиданный формат результата при получении файлов с сервера" -#: libpq_source.c:529 +#: libpq_source.c:539 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "неожиданные значения NULL в результате при получении файлов с сервера" -#: libpq_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "неожиданная длина результата при получении файлов с сервера" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "получены данные для файла \"%s\", а запрашивались данные для \"%s\"" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "" "received data at offset %lld of file \"%s\", when requested for offset %lld" @@ -382,22 +461,22 @@ msgstr "" "получены данные по смещению %lld в файле \"%s\", а запрашивались по смещению " "%lld" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "получено больше данных, чем запрошено для файла \"%s\"" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "получено неожиданное количество сегментов данных" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "не удалось получить с сервера файл \"%s\": %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "неожиданный набор результатов при получении файла \"%s\" с сервера" @@ -414,11 +493,6 @@ msgid "" msgstr "" "размер исходного файла \"%s\" изменился, ожидалось байт: %d, скопировано: %d" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "не удалось закрыть файл \"%s\": %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -429,7 +503,7 @@ msgstr "не удалось переместиться в исходном фа msgid "unexpected EOF while reading file \"%s\"" msgstr "неожиданный конец файла при чтении \"%s\"" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "не удалось выделить память для чтения WAL" @@ -450,22 +524,22 @@ msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "" "конечный указатель %X/%X неверно задаёт конечную точку; ожидается %X/%X" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "не удалось найти предыдущую запись WAL в позиции %X/%X: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "не удалось найти предыдущую запись WAL в позиции %X/%X" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "не удалось переместиться в файле \"%s\": %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "" "WAL record modifies a relation, but record type is not recognized: lsn: %X/" @@ -474,7 +548,7 @@ msgstr "" "Запись WAL модифицирует отношение, но тип записи не распознан: lsn: %X/%X, " "rmid: %d, rmgr: %s, info: %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "" "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" @@ -483,7 +557,7 @@ msgstr "" "%s синхронизирует кластер PostgreSQL с другой копией кластера.\n" "\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "" "Usage:\n" @@ -494,30 +568,31 @@ msgstr "" " %s [ПАРАМЕТР]...\n" "\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format msgid "" -" -c, --restore-target-wal use restore_command in target configuration " -"to\n" +" -c, --restore-target-wal use \"restore_command\" in target " +"configuration to\n" " retrieve WAL files from archives\n" msgstr "" " -c, --restore-target-wal использовать для получения файлов WAL из\n" -" архива команду restore_command из целевой\n" +" архивов команду \"restore_command\" из " +"целевой\n" " конфигурации\n" -#: pg_rewind.c:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr "" " -D, --target-pgdata=КАТАЛОГ существующий каталог, куда будут записаны " "данные\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid "" " --source-pgdata=DIRECTORY source data directory to synchronize with\n" @@ -526,21 +601,21 @@ msgstr "" "синхронизация\n" # well-spelled: ПОДКЛ -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr "" " --source-server=СТР_ПОДКЛ сервер, с которым будет проведена " "синхронизация\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr "" " -n, --dry-run остановиться до внесения каких-либо " "изменений\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written\n" @@ -549,12 +624,12 @@ msgstr "" " -N, --no-sync не ждать завершения сохранения данных на " "диске\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress выводить сообщения о ходе процесса\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid "" " -R, --write-recovery-conf write configuration for replication\n" @@ -563,7 +638,7 @@ msgstr "" " -R, --write-recovery-conf записать конфигурацию для репликации\n" " (требуется указание --source-server)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -573,13 +648,13 @@ msgstr "" " конфигурации сервера при запуске целевого\n" " кластера\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr "" " --debug выдавать множество отладочных сообщений\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, c-format msgid "" " --no-ensure-shutdown do not automatically fix unclean shutdown\n" @@ -587,18 +662,23 @@ msgstr "" " --no-ensure-shutdown не исправлять автоматически состояние,\n" " возникающее при нештатном отключении\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" + +#: pg_rewind.c:113 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "" "\n" @@ -607,33 +687,33 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "источник не указан (требуется --source-pgdata или --source-server)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "указать можно только --source-pgdata либо --source-server" -#: pg_rewind.c:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "целевой каталог данных не указан (--target-pgdata)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, c-format msgid "" "no source server information (--source-server) specified for --write-" @@ -642,119 +722,119 @@ msgstr "" "отсутствует информация об исходном сервере (--source-server) для --write-" "recovery-conf" -#: pg_rewind.c:258 +#: pg_rewind.c:267 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_rewind.c:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "программу не должен запускать root" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускать %s нужно от имени суперпользователя PostgreSQL." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, c-format msgid "could not read permissions of directory \"%s\": %m" -msgstr "не удалось считать права на каталог \"%s\": %m" +msgstr "не удалось прочитать права на каталог \"%s\": %m" -#: pg_rewind.c:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "подключение к серверу установлено" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, c-format msgid "source and target cluster are on the same timeline" msgstr "исходный и целевой кластер уже на одной линии времени" -#: pg_rewind.c:387 +#: pg_rewind.c:396 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "серверы разошлись в позиции WAL %X/%X на линии времени %u" -#: pg_rewind.c:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "перемотка не требуется" -#: pg_rewind.c:451 +#: pg_rewind.c:463 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "" "перемотка от последней общей контрольной точки в позиции %X/%X на линии " "времени %u" -#: pg_rewind.c:461 +#: pg_rewind.c:473 #, c-format msgid "reading source file list" msgstr "чтение списка исходных файлов" -#: pg_rewind.c:465 +#: pg_rewind.c:477 #, c-format msgid "reading target file list" msgstr "чтение списка целевых файлов" -#: pg_rewind.c:474 +#: pg_rewind.c:486 #, c-format msgid "reading WAL in target" msgstr "чтение WAL в целевом кластере" -#: pg_rewind.c:495 +#: pg_rewind.c:507 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "требуется скопировать %lu МБ (общий размер исходного каталога: %lu МБ)" -#: pg_rewind.c:513 +#: pg_rewind.c:525 #, c-format msgid "syncing target data directory" msgstr "синхронизация целевого каталога данных" -#: pg_rewind.c:529 +#: pg_rewind.c:541 #, c-format msgid "Done!" msgstr "Готово!" -#: pg_rewind.c:609 +#: pg_rewind.c:621 #, c-format msgid "no action decided for file \"%s\"" msgstr "действие не определено для файла \"%s\"" -#: pg_rewind.c:641 +#: pg_rewind.c:653 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "в исходной системе произошли изменения в процессе работы pg_rewind" -#: pg_rewind.c:645 +#: pg_rewind.c:657 #, c-format msgid "creating backup label and updating control file" msgstr "создание метки копии и модификация управляющего файла" -#: pg_rewind.c:695 +#: pg_rewind.c:707 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "исходная система оказалась в неожиданном состоянии после перемотки" -#: pg_rewind.c:727 +#: pg_rewind.c:739 #, c-format msgid "source and target clusters are from different systems" msgstr "исходный и целевой кластеры относятся к разным системам" -#: pg_rewind.c:735 +#: pg_rewind.c:747 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "кластеры несовместимы с этой версией pg_rewind" -#: pg_rewind.c:745 +#: pg_rewind.c:757 #, c-format msgid "" "target server needs to use either data checksums or \"wal_log_hints = on\"" @@ -762,191 +842,192 @@ msgstr "" "на целевом сервере должны быть контрольные суммы данных или \"wal_log_hints " "= on\"" -#: pg_rewind.c:756 +#: pg_rewind.c:768 #, c-format msgid "target server must be shut down cleanly" msgstr "целевой сервер должен быть выключен штатно" -#: pg_rewind.c:766 +#: pg_rewind.c:778 #, c-format msgid "source data directory must be shut down cleanly" msgstr "работа с исходным каталогом данных должна быть завершена штатно" -#: pg_rewind.c:813 +#: pg_rewind.c:825 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s КБ (%d%%) скопировано" -#: pg_rewind.c:941 +#: pg_rewind.c:951 #, c-format msgid "" "could not find common ancestor of the source and target cluster's timelines" msgstr "" "не удалось найти общего предка линий времени исходного и целевого кластеров" -#: pg_rewind.c:982 +#: pg_rewind.c:992 #, c-format msgid "backup label buffer too small" msgstr "буфер для метки копии слишком мал" -#: pg_rewind.c:1005 +#: pg_rewind.c:1015 #, c-format msgid "unexpected control file CRC" msgstr "неверная контрольная сумма управляющего файла" -#: pg_rewind.c:1017 +#: pg_rewind.c:1027 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "неверный размер управляющего файла (%d), ожидалось: %d" -#: pg_rewind.c:1026 +#: pg_rewind.c:1037 #, 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 должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" -msgstr[1] "" -"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" -msgstr[2] "" -"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в управляющем файле указано значение: %d" - -#: pg_rewind.c:1065 pg_rewind.c:1135 +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[1] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" +msgstr[2] "управляющий файл содержит неверный размер сегмента WAL (%d Б)" + +#: pg_rewind.c:1041 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "" +"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 ГБ." + +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "" "program \"%s\" is needed by %s but was not found in the same directory as " "\"%s\"" msgstr "программа \"%s\" нужна для %s, но она не найдена в каталоге \"%s\"" -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1081 pg_rewind.c:1149 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "" "программа \"%s\" найдена программой \"%s\", но её версия отличается от " "версии %s" -#: pg_rewind.c:1101 +#: pg_rewind.c:1110 +#, c-format +msgid "could not read restore_command from target cluster" +msgstr "не удалось прочитать параметр \"restore_command\" в целевом кластере" + +#: pg_rewind.c:1115 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "команда restore_command в целевом кластере не определена" +msgid "\"restore_command\" is not set in the target cluster" +msgstr "параметр \"restore_command\" в целевом кластере не определён" -#: pg_rewind.c:1142 +#: pg_rewind.c:1153 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "" "выполнение \"%s\" для восстановления согласованности на целевом сервере" -#: pg_rewind.c:1180 +#: pg_rewind.c:1191 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "" "не удалось запустить postgres в целевом кластере в однопользовательском " "режиме" -#: pg_rewind.c:1181 +#: pg_rewind.c:1192 #, c-format msgid "Command was: %s" msgstr "Выполнялась команда: %s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "синтаксическая ошибка в файле истории: %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "Ожидается числовой идентификатор линии времени." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "Ожидается положение точки переключения журнала предзаписи." -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "неверные данные в файле истории: %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "Идентификаторы линий времени должны возрастать." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "неверные данные в файле истории" -#: timeline.c:109 +#: timeline.c:108 #, c-format msgid "Timeline IDs must be less than child timeline's ID." msgstr "" "Идентификаторы линий времени должны быть меньше идентификатора линии-потомка." -#: xlogreader.c:621 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "" "неверное смещение записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: xlogreader.c:630 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение записи" -#: xlogreader.c:671 xlogreader.c:1136 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "" "неверная длина записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: xlogreader.c:760 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: xlogreader.c:773 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неверная длина contrecord: %u (ожидалась %lld) в позиции %X/%X" -#: xlogreader.c:1144 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера ресурсов %u в позиции %X/%X" -#: xlogreader.c:1157 xlogreader.c:1173 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запись с неверной ссылкой назад %X/%X в позиции %X/%X" -#: xlogreader.c:1211 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "некорректная контрольная сумма данных менеджера ресурсов в записи в позиции " "%X/%X" -#: xlogreader.c:1245 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверное магическое число %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1260 xlogreader.c:1302 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверные информационные биты %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1276 +#: xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -955,7 +1036,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД " "%llu, а идентификатор системы pg_control: %llu" -#: xlogreader.c:1284 +#: xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -964,7 +1045,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке " "страницы" -#: xlogreader.c:1290 +#: xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -973,12 +1054,12 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "страницы" -#: xlogreader.c:1322 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неожиданный pageaddr %X/%X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1348 +#: xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -987,23 +1068,23 @@ msgstr "" "нарушение последовательности ID линии времени %u (после %u) в сегменте WAL " "%s, LSN %X/%X, смещение %u" -#: xlogreader.c:1754 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X" -#: xlogreader.c:1778 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет" -#: xlogreader.c:1785 +#: xlogreader.c:1780 #, 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:1821 +#: xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -1012,21 +1093,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: xlogreader.c:1837 +#: xlogreader.c:1832 #, 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:1851 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED установлен, но длина образа блока равна %u в позиции %X/" "%X" -#: xlogreader.c:1866 +#: xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -1035,41 +1116,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не установлены, но длина образа " "блока равна %u в позиции %X/%X" -#: xlogreader.c:1882 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/" "%X" -#: xlogreader.c:1894 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: xlogreader.c:1961 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запись с неверной длиной в позиции %X/%X" -#: xlogreader.c:1987 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалось найти копию блока с ID %d в записи журнала WAL" -#: xlogreader.c:2071 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалось восстановить образ в позиции %X/%X с указанным неверным блоком %d" -#: xlogreader.c:2078 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалось восстановить образ в позиции %X/%X с неверным состоянием, блок %d" -#: xlogreader.c:2105 xlogreader.c:2122 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -1078,7 +1159,7 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый методом %s, который не " "поддерживается этой сборкой, блок %d" -#: xlogreader.c:2131 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -1086,7 +1167,7 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый неизвестным методом, " "блок %d" -#: xlogreader.c:2139 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалось развернуть образ в позиции %X/%X, блок %d" diff --git a/src/bin/pg_rewind/po/sv.po b/src/bin/pg_rewind/po/sv.po index 7826919eba45f..7894e029f203e 100644 --- a/src/bin/pg_rewind/po/sv.po +++ b/src/bin/pg_rewind/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-02 03:21+0000\n" -"PO-Revision-Date: 2023-09-05 09:02+0200\n" +"POT-Creation-Date: 2024-08-27 15:53+0000\n" +"PO-Revision-Date: 2024-08-27 18:32+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -37,6 +37,64 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, 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:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:350 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#, 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:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "kunde inte stänga fil \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "byte-ordning stämmer inte" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"möjligt fel i byteordning\n" +"Den byteordning som filen från pg_control lagrats med passar kanske\n" +"inte detta program. I så fall kan nedanstående resultat vara felaktiga\n" +"och PostgreSQL-installationen vara inkompatibel med databaskatalogen." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:312 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "kunde inte skriva fil \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,6 +106,38 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -103,43 +193,58 @@ msgstr "oväntad filstorlek på \"%s\": %lld istället för %lld" msgid "could not open file \"%s\" restored from archive: %m" msgstr "kunde inte öppna fil \"%s\" återställd från arkiv: %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "kunde inte göra stat() på fil \"%s\": %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "restore_command misslyckades: %s" +msgid "\"restore_command\" failed: %s" +msgstr "\"restore_command\" misslyckades: %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "kunde inte återställa fil \"%s\" från arkiv" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "slut på minne" +msgid "invalid value \"%s\" for option %s" +msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" +msgid "%s must be in range %d..%d" +msgstr "%s måste vara i intervallet %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "slut på minne" + +#: ../../fe_utils/recovery_gen.c:143 #, c-format msgid "could not write to file \"%s\": %m" msgstr "kunde inte skriva till fil \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "kunde inte skapa fil \"%s\": %m" +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -155,11 +260,6 @@ msgstr "kunde inte stänga målfil \"%s\": %m" msgid "could not seek in target file \"%s\": %m" msgstr "kunde inte söka i målfil \"%s\": %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "kunde inte skriva fil \"%s\": %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -205,26 +305,6 @@ msgstr "kunde inte skapa en symnbolisk länk vid \"%s\": %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "kan inte ta bort symbolisk länk \"%s\": %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "kunde inte öppna filen \"%s\" för läsning: %m" - -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "kunde inte läsa fil \"%s\": %m" - -#: file_ops.c:344 parsexlog.c:352 -#, c-format -msgid "could not read file \"%s\": read %d of %zu" -msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "kunde inte öppna katalog \"%s\": %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -235,162 +315,157 @@ msgstr "kan inte läsa symbolisk länk \"%s\": %m" msgid "symbolic link \"%s\" target is too long" msgstr "mål för symbolisk länk \"%s\" är för lång" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "kunde inte läsa katalog \"%s\": %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: filemap.c:236 +#: filemap.c:235 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "datafil \"%s\" i källan är inte en vanlig fil" -#: filemap.c:241 filemap.c:274 +#: filemap.c:240 filemap.c:273 #, c-format msgid "duplicate source file \"%s\"" msgstr "duplicerad källflagga \"%s\"" -#: filemap.c:329 +#: filemap.c:328 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "oväntad sidmodifiering för icke-regulär fil \"%s\"" -#: filemap.c:679 filemap.c:773 +#: filemap.c:682 filemap.c:776 #, c-format msgid "unknown file type for \"%s\"" msgstr "okänd filtyp på \"%s\"" -#: filemap.c:706 +#: filemap.c:709 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "filen \"%s\" har olika typ i källa och mål" -#: filemap.c:778 +#: filemap.c:781 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "kunde inte bestämma vad som skulle göras med filen \"%s\"" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "kunde inte nollställa search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "kunde inte nollställa \"search_path\": %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, 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" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "\"full_page_writes\" måste vara påslagen i källservern" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "kunde inte förbereda satsen för att hämta filinnehåll: %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, 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_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "oväntad resultatmängd från fråga" -#: libpq_source.c:198 +#: libpq_source.c:199 #, 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_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "oväntat resultat \"%s\" för nuvarande WAL-insättningsposition" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "kunde inte hämta fillista: %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "oväntad resultatmängd vid hämtning av fillista" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "kunde inte skicka fråga: %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "kunde inte sätta libpq-anslutning till enradsläge" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "oväntat resultat vid hämtning av extern fil: %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "tog emot fler datastycken än efterfrågat" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "oväntad resultatmängdstorlek vid hämtning av externa filer" -#: libpq_source.c:515 +#: libpq_source.c:525 #, 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_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "oväntat resultatformat vid hämtning av externa filer" -#: libpq_source.c:529 +#: libpq_source.c:539 #, 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_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "oväntad resultatlängd vid hämtning av externa filer" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "fick data för filen \"%s\", men efterfrågade för \"%s\"" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" msgstr "fick data från offset %lld i fil \"%s\", men efterfrågade offset %lld" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "tog emot mer än efterfrågat för filen \"%s\"" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "oväntat antal datastycken togs emot" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "kunde inte hämta extern fil \"%s\": %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "oväntat resultatmängd vid hämtning av extern fil \"%s\"" @@ -405,11 +480,6 @@ msgstr "kunde inte öppna källfil \"%s\": %m" msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "storleken på källfilen \"%s\" ändrades under körning: %d byte förväntades, %d kopierades" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "kunde inte stänga fil \"%s\": %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -460,7 +530,7 @@ msgstr "kunde inte söka (seek) i fil \"%s\": %m" msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WAL-post modifierar en relation, men posttypen känns inte igen: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "" "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n" @@ -469,7 +539,7 @@ msgstr "" "%s resynkroniserar ett PostgreSQL-kluster med en annan kopia av klustret.\n" "\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "" "Usage:\n" @@ -480,41 +550,41 @@ msgstr "" " %s [FLAGGA]...\n" "\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format msgid "" -" -c, --restore-target-wal use restore_command in target configuration to\n" +" -c, --restore-target-wal use \"restore_command\" in target configuration to\n" " retrieve WAL files from archives\n" msgstr "" -" -c, --restore-target-wal använd restore_command i målkonfigurationen\n" -" för att hämta WAL-filer från arkiv\n" +" -c, --restore-target-wal använd \"restore_command\" i målkonfigurationen\n" +" för att hämta WAL-filer från arkiven\n" -#: pg_rewind.c:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr " -D, --target-pgdata=KATALOG existerande datakatalog att modifiera\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid " --source-pgdata=DIRECTORY source data directory to synchronize with\n" msgstr " --source-pgdata=KATALOG källdatakatalog att synkronisera med\n" -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr " --source-server=ANSLSTR källserver att synkronisera med\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr " -n, --dry-run stoppa innan något modifieras\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid "" " -N, --no-sync do not wait for changes to be written\n" @@ -523,12 +593,12 @@ msgstr "" " -N, --no-sync vänta inte på att ändingar säkert\n" " skrivits till disk\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress skriv ut förloppmeddelanden\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid "" " -R, --write-recovery-conf write configuration for replication\n" @@ -537,7 +607,7 @@ msgstr "" " -R, --write-recovery-conf skriv konfiguration för replikering\n" " (kräver --source-server)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid "" " --config-file=FILENAME use specified main server configuration\n" @@ -546,27 +616,32 @@ msgstr "" " --config-file=FILNAMN använd angiven serverkonfiguration när\n" " målklustret körs\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr " --debug skriv ut en massa debugmeddelanden\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, c-format msgid " --no-ensure-shutdown do not automatically fix unclean shutdown\n" msgstr " --no-ensure-shutdown ingen automatisk hantering av trasig nedstängning\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" + +#: pg_rewind.c:113 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version skriv ut versioninformation och avsluta sedan\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp och avsluta sedan\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "" "\n" @@ -575,448 +650,420 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "ingen källa angavs (--source-pgdata eller --source-server)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, 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:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "ingen måldatakatalog angiven (--target-pgdata)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, 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:258 +#: pg_rewind.c:267 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_rewind.c:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "kan inte köras av \"root\"" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Du måste köra %s som PostgreSQL:s superuser." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, 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:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "ansluten till server" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, 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:387 +#: pg_rewind.c:396 #, 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:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "ingen rewind krävs" -#: pg_rewind.c:451 +#: pg_rewind.c:460 #, 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:461 +#: pg_rewind.c:470 #, c-format msgid "reading source file list" msgstr "läser källfillista" -#: pg_rewind.c:465 +#: pg_rewind.c:474 #, c-format msgid "reading target file list" msgstr "läser målfillista" -#: pg_rewind.c:474 +#: pg_rewind.c:483 #, c-format msgid "reading WAL in target" msgstr "läser WAL i målet" -#: pg_rewind.c:495 +#: pg_rewind.c:504 #, 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:513 +#: pg_rewind.c:522 #, c-format msgid "syncing target data directory" msgstr "synkar måldatakatalog" -#: pg_rewind.c:529 +#: pg_rewind.c:538 #, c-format msgid "Done!" msgstr "Klar!" -#: pg_rewind.c:609 +#: pg_rewind.c:618 #, c-format msgid "no action decided for file \"%s\"" msgstr "ingen åtgärd beslutades för filen \"%s\"" -#: pg_rewind.c:641 +#: pg_rewind.c:650 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "källsystemet ändrades samtidigt som pg_rewind kördes" -#: pg_rewind.c:645 +#: pg_rewind.c:654 #, c-format msgid "creating backup label and updating control file" msgstr "skapar backupetikett och uppdaterar kontrollfil" -#: pg_rewind.c:695 +#: pg_rewind.c:704 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "källsystemet var i ett oväntat tillstånd vid slutet av återspolningen" -#: pg_rewind.c:727 +#: pg_rewind.c:736 #, 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:735 +#: pg_rewind.c:744 #, 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:745 +#: pg_rewind.c:754 #, 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:756 +#: pg_rewind.c:765 #, c-format msgid "target server must be shut down cleanly" msgstr "målserver måste stängas ner utan fel" -#: pg_rewind.c:766 +#: pg_rewind.c:775 #, c-format msgid "source data directory must be shut down cleanly" msgstr "måldatakatalog måste stängas ner utan fel" -#: pg_rewind.c:813 +#: pg_rewind.c:822 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) kopierad" -#: pg_rewind.c:941 +#: pg_rewind.c:948 #, 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:982 +#: pg_rewind.c:989 #, c-format msgid "backup label buffer too small" msgstr "backupetikett-buffer för liten" -#: pg_rewind.c:1005 +#: pg_rewind.c:1012 #, c-format msgid "unexpected control file CRC" msgstr "oväntad kontrollfil-CRC" -#: pg_rewind.c:1017 +#: pg_rewind.c:1024 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "oväntad kontrollfilstorlek %d, förväntade %d" -#: pg_rewind.c:1026 +#: pg_rewind.c:1034 #, 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" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" +msgstr[1] "ogiltigt WAL-segmentstorlek i kontrollfil (%d byte)" -#: pg_rewind.c:1065 pg_rewind.c:1135 +#: pg_rewind.c:1038 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL-segmentstorleken måste vara en tvåpotens mellan 1 MB och 1 GB." + +#: pg_rewind.c:1075 pg_rewind.c:1143 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"" -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s" -#: pg_rewind.c:1101 +#: pg_rewind.c:1107 +#, c-format +msgid "could not read restore_command from target cluster" +msgstr "kunde inte läsa restore_command från målklustret" + +#: pg_rewind.c:1112 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "restore_command är inte satt i målklustret" +msgid "\"restore_command\" is not set in the target cluster" +msgstr "\"restore_command\" är inte satt i målklustret" -#: pg_rewind.c:1142 +#: pg_rewind.c:1150 #, 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:1180 +#: pg_rewind.c:1188 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "postgres enanvändarläge misslyckades i målklustret" -#: pg_rewind.c:1181 +#: pg_rewind.c:1189 #, c-format msgid "Command was: %s" msgstr "Kommandot var: %s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "syntaxfel i history-fil: %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "Förväntade ett numeriskt tidslinje-ID." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "Förväntade en write-ahead-logg:s switchpoint-position." -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "felaktig data i history-fil: %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "Tidslinje-ID måste komma i en stigande sekvens." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "ogiltig data i historikfil" -#: timeline.c:109 +#: timeline.c:108 #, c-format 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:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "slut på minne vid avkodning av post med längden %u" - -#: xlogreader.c:727 -#, 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:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ogiltig contrecord-längd %u (förväntade %lld) vid %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, 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:1192 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "felaktig resurshanterardatakontrollsumma i post vid %X/%X" -#: xlogreader.c:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "felaktigt magiskt nummer %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ogiltiga infobitar %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, 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:1265 +#: xlogreader.c:1282 #, 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:1271 +#: xlogreader.c:1288 #, 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:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "oväntad sidadress %X/%X i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "ej-i-sekvens för tidslinje-ID %u (efter %u) i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ej-i-sekvens block_id %u vid %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA är satt men ingen data inkluderad vid %X/%X" -#: xlogreader.c:1766 +#: xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA är ej satt men datalängden är %u vid %X/%X" -#: xlogreader.c:1802 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är satt men håloffset %u längd %u blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1818 +#: xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är inte satt men håloffset %u längd %u vid %X/%X" -#: xlogreader.c:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED är satt men blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_COMPRESSED är satt men blockavbildlängd är %u vid %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL är satt men ingen tidigare rel vid %X/%X" -#: xlogreader.c:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "kunde inte hitta backup-block med ID %d i WAL-post" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt block %d angivet" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt state, block %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med %s stöds inte av bygget, block %d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med okänd metod, block %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "kunde inte packa upp avbild vid %X/%X, block %d" - -#, c-format -#~ msgid "\"%s\" is a symbolic link, but symbolic links are not supported on this platform" -#~ msgstr "\"%s\" är en symbolisk länk men symboliska länkar stöds inte på denna plattform" - -#, c-format -#~ msgid "cannot create restricted tokens on this platform: error code %lu" -#~ msgstr "kan inte skapa token för begränsad åtkomst på denna plattorm: felkod %lu" - -#, c-format -#~ msgid "cannot use restore_command with %%r placeholder" -#~ msgstr "kan inte använda restore_command med %%r-platshållare" - -#, c-format -#~ msgid "could not load library \"%s\": error code %lu" -#~ msgstr "kunde inte ladda länkbibliotek \"%s\": felkod %lu" - -#, c-format -#~ msgid "invalid control file" -#~ msgstr "ogiltig kontrollfil" - -#, c-format -#~ msgid "invalid record offset at %X/%X" -#~ msgstr "ogiltig postoffset vid %X/%X" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "det finns ingen contrecord vid %X/%X" diff --git a/src/bin/pg_rewind/po/uk.po b/src/bin/pg_rewind/po/uk.po index 3f3b8ab2ee7d8..dfcc9ac3269e6 100644 --- a/src/bin/pg_rewind/po/uk.po +++ b/src/bin/pg_rewind/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:21+0000\n" -"PO-Revision-Date: 2023-12-20 12:10\n" +"POT-Creation-Date: 2024-08-31 06:23+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_rewind.pot\n" -"X-Crowdin-File-ID: 961\n" +"X-Crowdin-File: /REL_17_STABLE/pg_rewind.pot\n" +"X-Crowdin-File-ID: 1030\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,6 +37,60 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../../common/controldata_utils.c:97 file_ops.c:326 file_ops.c:330 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" + +#: ../../common/controldata_utils.c:110 file_ops.c:341 local_source.c:104 +#: local_source.c:163 parsexlog.c:350 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:119 file_ops.c:344 parsexlog.c:352 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: local_source.c:121 local_source.c:172 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "неможливо закрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "неправильний порядок байтів" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "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." +msgstr "можлива помилка у послідовності байтів.\n" +"Порядок байтів, що використовують для зберігання файлу pg_control, може не відповідати тому, який використовується цією програмою. У такому випадку результати нижче будуть неправильним, і інсталяція PostgreSQL буде несумісною з цим каталогом даних." + +#: ../../common/controldata_utils.c:230 ../../common/file_utils.c:70 +#: ../../common/file_utils.c:347 ../../common/file_utils.c:406 +#: ../../common/file_utils.c:480 ../../fe_utils/recovery_gen.c:140 +#: parsexlog.c:312 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/controldata_utils.c:249 file_ops.c:117 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "не вдалося записати файл \"%s\": %m" + +#: ../../common/controldata_utils.c:268 ../../common/file_utils.c:418 +#: ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,6 +102,38 @@ msgstr "недостатньо пам'яті\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../fe_utils/archive.c:86 file_ops.c:417 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 file_ops.c:388 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 file_ops.c:462 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: ../../common/percentrepl.c:79 ../../common/percentrepl.c:118 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" @@ -103,43 +189,58 @@ msgstr "неочікуваний розмір файлу для \"%s\": %lld з msgid "could not open file \"%s\" restored from archive: %m" msgstr "не вдалося відкрити файл \"%s\" відновлений з архіву: %m" -#: ../../fe_utils/archive.c:86 file_ops.c:417 -#, c-format -msgid "could not stat file \"%s\": %m" -msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" - #: ../../fe_utils/archive.c:98 #, c-format -msgid "restore_command failed: %s" -msgstr "помилка restore_command: %s" +msgid "\"restore_command\" failed: %s" +msgstr "помилка \"restore_command\": %s" #: ../../fe_utils/archive.c:105 #, c-format msgid "could not restore file \"%s\" from archive" msgstr "не вдалося відновити файл \"%s\" з архіву" -#: ../../fe_utils/recovery_gen.c:34 ../../fe_utils/recovery_gen.c:45 -#: ../../fe_utils/recovery_gen.c:70 ../../fe_utils/recovery_gen.c:90 -#: ../../fe_utils/recovery_gen.c:149 +#: ../../fe_utils/option_utils.c:69 #, c-format -msgid "out of memory" -msgstr "недостатньо пам'яті" +msgid "invalid value \"%s\" for option %s" +msgstr "неприпустиме значення \"%s\" для параметра %s" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/option_utils.c:76 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" +msgid "%s must be in range %d..%d" +msgstr "%s має бути в діапазоні %d..%d" -#: ../../fe_utils/recovery_gen.c:124 +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: ../../fe_utils/recovery_gen.c:39 ../../fe_utils/recovery_gen.c:50 +#: ../../fe_utils/recovery_gen.c:89 ../../fe_utils/recovery_gen.c:109 +#: ../../fe_utils/recovery_gen.c:168 +#, c-format +msgid "out of memory" +msgstr "недостатньо пам'яті" + +#: ../../fe_utils/recovery_gen.c:143 #, c-format msgid "could not write to file \"%s\": %m" msgstr "неможливо записати до файлу \"%s\": %m" -#: ../../fe_utils/recovery_gen.c:133 +#: ../../fe_utils/recovery_gen.c:152 #, c-format msgid "could not create file \"%s\": %m" msgstr "неможливо створити файл \"%s\": %m" +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + #: file_ops.c:67 #, c-format msgid "could not open target file \"%s\": %m" @@ -155,11 +256,6 @@ msgstr "не вдалося закрити цільовий файл \"%s\": %m" msgid "could not seek in target file \"%s\": %m" msgstr "не вдалося знайти в цільовому файлі \"%s\": %m" -#: file_ops.c:117 -#, c-format -msgid "could not write file \"%s\": %m" -msgstr "не вдалося записати файл \"%s\": %m" - #: file_ops.c:150 file_ops.c:177 #, c-format msgid "undefined file type for \"%s\"" @@ -205,26 +301,6 @@ msgstr "неможливо створити символічне посланн msgid "could not remove symbolic link \"%s\": %m" msgstr "не вдалося видалити символьне посилання \"%s\": %m" -#: file_ops.c:326 file_ops.c:330 -#, c-format -msgid "could not open file \"%s\" for reading: %m" -msgstr "не вдалося відкрити файл \"%s\" для читання: %m" - -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 -#, c-format -msgid "could not read file \"%s\": %m" -msgstr "не вдалося прочитати файл \"%s\": %m" - -#: file_ops.c:344 parsexlog.c:352 -#, c-format -msgid "could not read file \"%s\": read %d of %zu" -msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %zu" - -#: file_ops.c:388 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не вдалося відкрити каталог \"%s\": %m" - #: file_ops.c:441 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -235,162 +311,157 @@ msgstr "не можливо прочитати символічне послан msgid "symbolic link \"%s\" target is too long" msgstr "таргет символічного посилання \"%s\" задовгий" -#: file_ops.c:462 -#, c-format -msgid "could not read directory \"%s\": %m" -msgstr "не вдалося прочитати каталог \"%s\": %m" - #: file_ops.c:466 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не вдалося закрити каталог \"%s\": %m" -#: filemap.c:236 +#: filemap.c:235 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "файл даних \"%s\" в джерелі не є регулярним файлом" -#: filemap.c:241 filemap.c:274 +#: filemap.c:240 filemap.c:273 #, c-format msgid "duplicate source file \"%s\"" msgstr "дублікат вихідного файлу \"%s\"" -#: filemap.c:329 +#: filemap.c:328 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "неочікувана модифікація сторінки для нерегулярного файлу \"%s\"" -#: filemap.c:679 filemap.c:773 +#: filemap.c:682 filemap.c:776 #, c-format msgid "unknown file type for \"%s\"" msgstr "невідомий тип файлу для \"%s\"" -#: filemap.c:706 +#: filemap.c:709 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "файл \"%s\" має різні типи у джерелі та цілі" -#: filemap.c:778 +#: filemap.c:781 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "не вдалося вирішити, що робити з файлом \"%s\"" -#: libpq_source.c:130 +#: libpq_source.c:131 #, c-format -msgid "could not clear search_path: %s" -msgstr "не вдалося очистити search_path: %s" +msgid "could not clear \"search_path\": %s" +msgstr "не вдалося очистити \"search_path\": %s" -#: libpq_source.c:141 +#: libpq_source.c:142 #, c-format -msgid "full_page_writes must be enabled in the source server" -msgstr "на початковому сервері повинно бути увімкнено full_page_writes" +msgid "\"full_page_writes\" must be enabled in the source server" +msgstr "\"full_page_writes\" слід ввімкнути на вихідному сервері" -#: libpq_source.c:152 +#: libpq_source.c:153 #, c-format msgid "could not prepare statement to fetch file contents: %s" msgstr "не вдалося підготувати інструкцію щоб отримати вміст файлу: %s" -#: libpq_source.c:171 +#: libpq_source.c:172 #, c-format msgid "error running query (%s) on source server: %s" msgstr "помилка при виконанні запиту (%s) на вихідному сервері: %s" -#: libpq_source.c:176 +#: libpq_source.c:177 #, c-format msgid "unexpected result set from query" msgstr "неочікуваний результат запиту" -#: libpq_source.c:198 +#: libpq_source.c:199 #, c-format msgid "error running query (%s) in source server: %s" msgstr "помилка при виконанні запиту (%s) на початковому сервері: %s" -#: libpq_source.c:219 +#: libpq_source.c:220 #, c-format msgid "unrecognized result \"%s\" for current WAL insert location" msgstr "нерозпізнаний результат \"%s\" замість поточної добавленої позиції WAL" -#: libpq_source.c:270 +#: libpq_source.c:271 #, c-format msgid "could not fetch file list: %s" msgstr "не вдалося отримати список файлів: %s" -#: libpq_source.c:275 +#: libpq_source.c:276 #, c-format msgid "unexpected result set while fetching file list" msgstr "неочікуваний результат при отриманні списку файлів" -#: libpq_source.c:467 +#: libpq_source.c:477 #, c-format msgid "could not send query: %s" msgstr "не вдалося надіслати запит: %s" -#: libpq_source.c:470 +#: libpq_source.c:480 #, c-format msgid "could not set libpq connection to single row mode" msgstr "не вдалося встановити libpq з'єднання для однорядкового режиму" -#: libpq_source.c:500 +#: libpq_source.c:510 #, c-format msgid "unexpected result while fetching remote files: %s" msgstr "неочікуваний результат при отриманні віддалених файлів: %s" -#: libpq_source.c:505 +#: libpq_source.c:515 #, c-format msgid "received more data chunks than requested" msgstr "отримано більше фрагментів даних, ніж запитувалось" -#: libpq_source.c:509 +#: libpq_source.c:519 #, c-format msgid "unexpected result set size while fetching remote files" msgstr "неочікуваний розмір набору результатів при отриманні віддалених файлів" -#: libpq_source.c:515 +#: libpq_source.c:525 #, c-format msgid "unexpected data types in result set while fetching remote files: %u %u %u" msgstr "неочікувані типи даних в результаті при отриманні віддалених файлів: %u %u %u" -#: libpq_source.c:523 +#: libpq_source.c:533 #, c-format msgid "unexpected result format while fetching remote files" msgstr "неочікуваний формат результату при отриманні віддалених файлів" -#: libpq_source.c:529 +#: libpq_source.c:539 #, c-format msgid "unexpected null values in result while fetching remote files" msgstr "неочікувані нульові значення в результаті при отриманні віддалених файлів" -#: libpq_source.c:533 +#: libpq_source.c:543 #, c-format msgid "unexpected result length while fetching remote files" msgstr "неочікувана довжина результату при отриманні віддалених файлів" -#: libpq_source.c:566 +#: libpq_source.c:576 #, c-format msgid "received data for file \"%s\", when requested for \"%s\"" msgstr "отримані дані для файлу \"%s\", коли запитувалось для \"%s\"" -#: libpq_source.c:570 +#: libpq_source.c:580 #, c-format msgid "received data at offset %lld of file \"%s\", when requested for offset %lld" msgstr "отримано дані по зсуву %lld файлу \"%s\", коли запитувалось про зсув %lld" -#: libpq_source.c:582 +#: libpq_source.c:592 #, c-format msgid "received more than requested for file \"%s\"" msgstr "отримано більше, ніж запитувалось для файлу \"%s\"" -#: libpq_source.c:595 +#: libpq_source.c:605 #, c-format msgid "unexpected number of data chunks received" msgstr "отримано неочікувану кількість фрагментів даних" -#: libpq_source.c:638 +#: libpq_source.c:648 #, c-format msgid "could not fetch remote file \"%s\": %s" msgstr "не вдалося отримати віддалений файл \"%s\": %s" -#: libpq_source.c:643 +#: libpq_source.c:653 #, c-format msgid "unexpected result set while fetching remote file \"%s\"" msgstr "неочікуваний набір результатів при отриманні віддаленого файлу \"%s\"" @@ -405,11 +476,6 @@ msgstr "не вдалося відкрити вихідний файл \"%s\": % msgid "size of source file \"%s\" changed concurrently: %d bytes expected, %d copied" msgstr "розмір вихідного файлу \"%s\" паралельно змінився: очікувалося %d байт, %d скопійовано" -#: local_source.c:121 local_source.c:172 -#, c-format -msgid "could not close file \"%s\": %m" -msgstr "неможливо закрити файл \"%s\": %m" - #: local_source.c:146 #, c-format msgid "could not seek in source file: %m" @@ -460,508 +526,523 @@ msgstr "не вдалося знайти в файлі \"%s\": %m" msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WAL модифікує відношення, але тип запису не розпізнано: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" -#: pg_rewind.c:92 +#: pg_rewind.c:94 #, c-format msgid "%s resynchronizes a PostgreSQL cluster with another copy of the cluster.\n\n" msgstr "%s синхронізує кластер PostgreSQL з іншою копією кластеру.\n\n" -#: pg_rewind.c:93 +#: pg_rewind.c:95 #, c-format msgid "Usage:\n" " %s [OPTION]...\n\n" msgstr "Використання:\n" " %s [OPTION]...\n\n" -#: pg_rewind.c:94 +#: pg_rewind.c:96 #, c-format msgid "Options:\n" msgstr "Параметри:\n" -#: pg_rewind.c:95 +#: pg_rewind.c:97 #, c-format -msgid " -c, --restore-target-wal use restore_command in target configuration to\n" +msgid " -c, --restore-target-wal use \"restore_command\" in target configuration to\n" " retrieve WAL files from archives\n" -msgstr " -c, --restore-target-wal використовує restore_command в цільовій конфігурації, щоб\n" +msgstr " -c, --restore-target-wal використовує \"restore_command\" в цільовій конфігурації, щоб\n" " отримати файли WAL з архівів\n" -#: pg_rewind.c:97 +#: pg_rewind.c:99 #, c-format msgid " -D, --target-pgdata=DIRECTORY existing data directory to modify\n" msgstr " -D, --target-pgdata=DIRECTORY існуючий каталог для змін\n" -#: pg_rewind.c:98 +#: pg_rewind.c:100 #, c-format msgid " --source-pgdata=DIRECTORY source data directory to synchronize with\n" msgstr " --source-pgdata=DIRECTORY початковий каталог даних для синхронізації\n" -#: pg_rewind.c:99 +#: pg_rewind.c:101 #, c-format msgid " --source-server=CONNSTR source server to synchronize with\n" msgstr " --source-server=CONNSTR початковий сервер для синхронізації\n" -#: pg_rewind.c:100 +#: pg_rewind.c:102 #, c-format msgid " -n, --dry-run stop before modifying anything\n" msgstr " -n, --dry-run зупинитися до внесення будь-яких змін\n" -#: pg_rewind.c:101 +#: pg_rewind.c:103 #, c-format msgid " -N, --no-sync do not wait for changes to be written\n" " safely to disk\n" msgstr " -N, --no-sync не чекати поки зміни будуть записані на диск\n" -#: pg_rewind.c:103 +#: pg_rewind.c:105 #, c-format msgid " -P, --progress write progress messages\n" msgstr " -P, --progress повідомляти про хід процесу\n" -#: pg_rewind.c:104 +#: pg_rewind.c:106 #, c-format msgid " -R, --write-recovery-conf write configuration for replication\n" " (requires --source-server)\n" msgstr " -R, --write-recovery-conf записує конфігурацію для реплікації \n" " (потребує --source-server)\n" -#: pg_rewind.c:106 +#: pg_rewind.c:108 #, c-format msgid " --config-file=FILENAME use specified main server configuration\n" " file when running target cluster\n" msgstr " --config-file=FILENAME використовувати заданий основний файл конфігурації сервера\n" " при запуску цільового кластера\n" -#: pg_rewind.c:108 +#: pg_rewind.c:110 #, c-format msgid " --debug write a lot of debug messages\n" msgstr " --debug виводити багато налагоджувальних повідомлень\n" -#: pg_rewind.c:109 +#: pg_rewind.c:111 #, c-format msgid " --no-ensure-shutdown do not automatically fix unclean shutdown\n" msgstr " --no-ensure-shutdown не виправляти автоматично неочищене завершення роботи\n" -#: pg_rewind.c:110 +#: pg_rewind.c:112 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод синхронізації файлів на диск\n" + +#: pg_rewind.c:113 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_rewind.c:111 +#: pg_rewind.c:114 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати довідку, потім вийти\n" -#: pg_rewind.c:112 +#: pg_rewind.c:115 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_rewind.c:113 +#: pg_rewind.c:116 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_rewind.c:223 pg_rewind.c:231 pg_rewind.c:238 pg_rewind.c:245 -#: pg_rewind.c:252 pg_rewind.c:260 +#: pg_rewind.c:232 pg_rewind.c:240 pg_rewind.c:247 pg_rewind.c:254 +#: pg_rewind.c:261 pg_rewind.c:269 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_rewind.c:230 +#: pg_rewind.c:239 #, c-format msgid "no source specified (--source-pgdata or --source-server)" msgstr "джерело не вказано (--source-pgdata чи --source-server)" -#: pg_rewind.c:237 +#: pg_rewind.c:246 #, c-format msgid "only one of --source-pgdata or --source-server can be specified" msgstr "може бути вказано лише --source-pgdata чи --source-server" -#: pg_rewind.c:244 +#: pg_rewind.c:253 #, c-format msgid "no target data directory specified (--target-pgdata)" msgstr "не вказано жодного каталогу цільових даних (--target-pgdata)" -#: pg_rewind.c:251 +#: pg_rewind.c:260 #, c-format msgid "no source server information (--source-server) specified for --write-recovery-conf" msgstr "немає інформації про вихідний сервер (--source-server) вказаної для --write-recovery-conf" -#: pg_rewind.c:258 +#: pg_rewind.c:267 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_rewind.c:273 +#: pg_rewind.c:282 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\" не може це виконувати" -#: pg_rewind.c:274 +#: pg_rewind.c:283 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускати %s треба від суперкористувача PostgreSQL." -#: pg_rewind.c:284 +#: pg_rewind.c:293 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: pg_rewind.c:302 +#: pg_rewind.c:311 #, c-format msgid "%s" msgstr "%s" -#: pg_rewind.c:305 +#: pg_rewind.c:314 #, c-format msgid "connected to server" msgstr "під'єднано до серверу" -#: pg_rewind.c:366 +#: pg_rewind.c:375 #, c-format msgid "source and target cluster are on the same timeline" msgstr "початковий і цільовий кластери знаходяться на одній лінії часу" -#: pg_rewind.c:387 +#: pg_rewind.c:396 #, c-format msgid "servers diverged at WAL location %X/%X on timeline %u" msgstr "сервери розійшлись в позиції WAL %X/%X на лінії часу %u" -#: pg_rewind.c:442 +#: pg_rewind.c:451 #, c-format msgid "no rewind required" msgstr "перемотування не потрібне" -#: pg_rewind.c:451 +#: pg_rewind.c:460 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "перемотування від останньої спільної контрольної точки на %X/%X на лінії часу %u" -#: pg_rewind.c:461 +#: pg_rewind.c:470 #, c-format msgid "reading source file list" msgstr "читання списку файлів із джерела" -#: pg_rewind.c:465 +#: pg_rewind.c:474 #, c-format msgid "reading target file list" msgstr "читання списку цільових файлів" -#: pg_rewind.c:474 +#: pg_rewind.c:483 #, c-format msgid "reading WAL in target" msgstr "читання WAL у цілі" -#: pg_rewind.c:495 +#: pg_rewind.c:504 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "треба скопіювати %lu МБ (загальний розмір каталогу джерела становить %lu МБ)" -#: pg_rewind.c:513 +#: pg_rewind.c:522 #, c-format msgid "syncing target data directory" msgstr "синхронізація цільового каталогу даних" -#: pg_rewind.c:529 +#: pg_rewind.c:538 #, c-format msgid "Done!" msgstr "Готово!" -#: pg_rewind.c:609 +#: pg_rewind.c:618 #, c-format msgid "no action decided for file \"%s\"" msgstr "жодних дій щодо файлу \"%s\" не прийнято" -#: pg_rewind.c:641 +#: pg_rewind.c:650 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "вихідну систему було змінено під час роботи pg_rewind" -#: pg_rewind.c:645 +#: pg_rewind.c:654 #, c-format msgid "creating backup label and updating control file" msgstr "створення мітки резервного копіювання і оновлення контрольного файлу" -#: pg_rewind.c:695 +#: pg_rewind.c:704 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "вихідна система була в неочікуваному стані наприкінці перемотування" -#: pg_rewind.c:727 +#: pg_rewind.c:736 #, c-format msgid "source and target clusters are from different systems" msgstr "початковий і цільовий кластер належать до різних систем" -#: pg_rewind.c:735 +#: pg_rewind.c:744 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "кластери не сумісні з даною версією pg_rewind" -#: pg_rewind.c:745 +#: pg_rewind.c:754 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "цільовий сервер потребує використання контрольної суми даних або \"wal_log_hints = on\"" -#: pg_rewind.c:756 +#: pg_rewind.c:765 #, c-format msgid "target server must be shut down cleanly" msgstr "цільовий сервер повинен бути вимкненим штатно" -#: pg_rewind.c:766 +#: pg_rewind.c:775 #, c-format msgid "source data directory must be shut down cleanly" msgstr "робота з початковим каталогом даних повинна бути завершена штатно" -#: pg_rewind.c:813 +#: pg_rewind.c:822 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "скопійовано %*s/%s кБ (%d%%)" -#: pg_rewind.c:941 +#: pg_rewind.c:948 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "не вдалося знайти спільного предка ліній часу початкового та цільового кластерів" -#: pg_rewind.c:982 +#: pg_rewind.c:989 #, c-format msgid "backup label buffer too small" msgstr "буфер для мітки резервного копіювання замалий" -#: pg_rewind.c:1005 +#: pg_rewind.c:1012 #, c-format msgid "unexpected control file CRC" msgstr "неочікуваний контрольний файл CRC" -#: pg_rewind.c:1017 +#: pg_rewind.c:1024 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "неочікуваний розмір контрольного файлу %d, очікувалося %d" -#: pg_rewind.c:1026 +#: pg_rewind.c:1034 #, 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 повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[1] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[2] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -msgstr[3] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" +msgid "invalid WAL segment size in control file (%d byte)" +msgid_plural "invalid WAL segment size in control file (%d bytes)" +msgstr[0] "невірний розмір сегменту WAL у файлі керування (%d байт)" +msgstr[1] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[2] "невірний розмір сегмента WAL у файлі керування (%d байтів)" +msgstr[3] "невірний розмір сегмента WAL у файлі керування (%d байтів)" -#: pg_rewind.c:1065 pg_rewind.c:1135 +#: pg_rewind.c:1038 +#, c-format +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Розмір сегмента WAL повинен бути степенем двійки від 1 МБ до 1 ГБ." + +#: pg_rewind.c:1075 pg_rewind.c:1143 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"" -#: pg_rewind.c:1068 pg_rewind.c:1138 +#: pg_rewind.c:1078 pg_rewind.c:1146 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s" -#: pg_rewind.c:1101 +#: pg_rewind.c:1107 +#, c-format +msgid "could not read restore_command from target cluster" +msgstr "не вдалося прочитати \"restore_command\" з цільового кластеру" + +#: pg_rewind.c:1112 #, c-format -msgid "restore_command is not set in the target cluster" -msgstr "команда restore_command не встановлена в цільовому кластері" +msgid "\"restore_command\" is not set in the target cluster" +msgstr "команда \"restore_command\" не встановлена в цільовому кластері" -#: pg_rewind.c:1142 +#: pg_rewind.c:1150 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "виконання \"%s\" для цільового серверу, щоб завершити відновлення після аварійного завершення роботи" -#: pg_rewind.c:1180 +#: pg_rewind.c:1188 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "не вдалося ввімкнути однокористувацький режим postgres в цільовому кластері" -#: pg_rewind.c:1181 +#: pg_rewind.c:1189 #, c-format msgid "Command was: %s" msgstr "Команда була: %s" -#: timeline.c:75 timeline.c:81 +#: timeline.c:74 timeline.c:80 #, c-format msgid "syntax error in history file: %s" msgstr "синтаксична помилка у файлі історії: %s" -#: timeline.c:76 +#: timeline.c:75 #, c-format msgid "Expected a numeric timeline ID." msgstr "Очікується числовий ідентифікатор лінії часу." -#: timeline.c:82 +#: timeline.c:81 #, c-format msgid "Expected a write-ahead log switchpoint location." msgstr "Очікується положення точки випереджувального журналювання." -#: timeline.c:87 +#: timeline.c:86 #, c-format msgid "invalid data in history file: %s" msgstr "неприпустимі дані у файлу історії: %s" -#: timeline.c:88 +#: timeline.c:87 #, c-format msgid "Timeline IDs must be in increasing sequence." msgstr "Ідентифікатори ліній часу повинні збільшуватись." -#: timeline.c:108 +#: timeline.c:107 #, c-format msgid "invalid data in history file" msgstr "неприпустимі дані у файлі історії" -#: timeline.c:109 +#: timeline.c:108 #, c-format msgid "Timeline IDs must be less than child timeline's ID." msgstr "Ідентифікатори ліній часу повинні бути меншими від ідентифікатора дочірньої лінії." -#: xlogreader.c:621 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "неприпустиме зміщення запису в %X/%X: очікувалось хоча б %u, отримано %u" -#: xlogreader.c:630 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по зсуву %X/%X запитано продовження запису" -#: xlogreader.c:671 xlogreader.c:1136 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "неприпустима довжина запису %X/%X: очікувалась мінімум %u, отримано %u" -#: xlogreader.c:760 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає прапорця contrecord в позиції %X/%X" -#: xlogreader.c:773 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпустима довжина contrecord %u (очікувалось %lld) на %X/%X" -#: xlogreader.c:1144 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера ресурсів %u в %X/%X" -#: xlogreader.c:1157 xlogreader.c:1173 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запис з неправильним попереднім посиланням %X/%X на %X/%X" -#: xlogreader.c:1211 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна сума даних менеджера ресурсів у запису по зсуву %X/%X" -#: xlogreader.c:1245 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірне магічне число %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1260 xlogreader.c:1302 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірні інформаційні біти %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1276 +#: xlogreader.c:1274 #, 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 файл належить іншій системі баз даних: ідентифікатор системи баз даних де міститься WAL файл - %llu, а ідентифікатор системи баз даних pg_control - %llu" -#: xlogreader.c:1284 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний розмір сегменту в заголовку сторінки" -#: xlogreader.c:1290 +#: xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний XLOG_BLCKSZ в заголовку сторінки" -#: xlogreader.c:1322 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неочікуваний pageaddr %X/%X у сегменті WAL %s, LSN %X/%X, зміщення %u" -#: xlogreader.c:1348 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "порушення послідовності ID лінії часу %u (після %u) у сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1754 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: xlogreader.c:1778 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але немає даних в позиції %X/%X" -#: xlogreader.c:1785 +#: xlogreader.c:1780 #, 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:1821 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE встановлений, але для пропуску задані: зсув %u, довжина %u, при довжині образу блока %u в позиції %X/%X" -#: xlogreader.c:1837 +#: xlogreader.c:1832 #, 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:1851 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED встановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: xlogreader.c:1866 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ні BKPIMAGE_HAS_HOLE, ні BKPIMAGE_COMPRESSED не встановлені, але довжина образу блока дорівнює %u в позиції %X/%X" -#: xlogreader.c:1882 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL встановлений, але попереднє значення не задано в позиції %X/%X" -#: xlogreader.c:1894 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: xlogreader.c:1961 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запис з невірною довжиною на %X/%X" -#: xlogreader.c:1987 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не вдалося знайти блок резервної копії з ID %d у записі WAL" -#: xlogreader.c:2071 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "не вдалося відновити зображення %X/%X з недійсним вказаним блоком %d" -#: xlogreader.c:2078 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "не вдалося відновити зображення %X/%X з недійсним станом, блок %d" -#: xlogreader.c:2105 xlogreader.c:2122 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "не вдалося відновити зображення в %X/%X, стиснуте %s, не підтримується збіркою, блок %d" -#: xlogreader.c:2131 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "не вдалося відновити зображення %X/%X стиснуте з невідомим методом, блок %d" -#: xlogreader.c:2139 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не вдалося розпакувати зображення на %X/%X, блок %d" diff --git a/src/bin/pg_test_fsync/po/es.po b/src/bin/pg_test_fsync/po/es.po index b522bdd5b2043..dff84abf1237b 100644 --- a/src/bin/pg_test_fsync/po/es.po +++ b/src/bin/pg_test_fsync/po/es.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_test_fsync (PostgreSQL) 16\n" +"Project-Id-Version: pg_test_fsync (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:22+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:53+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -40,88 +40,99 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f ops/seg %6.0f usegs/op\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "no se pudo crear el thread para la alarma" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "Empleo: %s [-f ARCHIVO] [-s SEG-POR-PRUEBA]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "argumento no válido para la opción %s" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "%s debe estar en el rango %u..%u" -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" msgstr[0] "%u segundo por prueba\n" msgstr[1] "%u segundos por prueba\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "O_DIRECT tiene soporte en esta plataforma para open_datasync y open_sync.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "F_NOCACHE tiene soporte en esta plataforma para open_datasync y open_sync.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "Direct I/O no está soportado en esta plataforma.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:335 pg_test_fsync.c:357 -#: pg_test_fsync.c:381 pg_test_fsync.c:525 pg_test_fsync.c:537 -#: pg_test_fsync.c:553 pg_test_fsync.c:559 pg_test_fsync.c:581 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "no se pudo abrir el archivo de salida" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:344 -#: pg_test_fsync.c:366 pg_test_fsync.c:390 pg_test_fsync.c:429 -#: pg_test_fsync.c:488 pg_test_fsync.c:527 pg_test_fsync.c:555 -#: pg_test_fsync.c:586 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "escritura falló" -#: pg_test_fsync.c:253 pg_test_fsync.c:368 pg_test_fsync.c:392 -#: pg_test_fsync.c:529 pg_test_fsync.c:561 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "fsync falló" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "" "\n" @@ -130,7 +141,7 @@ msgstr "" "\n" "Comparar métodos de sincronización de archivos usando una escritura de %dkB:\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "" "\n" @@ -139,21 +150,21 @@ msgstr "" "\n" "Comparar métodos de sincronización de archivos usando dos escrituras de %dkB:\n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format -msgid "(in wal_sync_method preference order, except fdatasync is Linux's default)\n" -msgstr "(en orden de preferencia de wal_sync_method, excepto en Linux donde fdatasync es el predeterminado)\n" +msgid "(in \"wal_sync_method\" preference order, except fdatasync is Linux's default)\n" +msgstr "(en orden de preferencia de «wal_sync_method», excepto en Linux donde fdatasync es el predeterminado)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:409 pg_test_fsync.c:476 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "n/a*" -#: pg_test_fsync.c:325 pg_test_fsync.c:397 pg_test_fsync.c:435 -#: pg_test_fsync.c:494 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "n/a" -#: pg_test_fsync.c:440 +#: pg_test_fsync.c:446 #, c-format msgid "" "* This file system and its mount options do not support direct\n" @@ -162,7 +173,7 @@ msgstr "" "* Este sistema de archivos con sus opciones de montaje no soportan\n" " Direct I/O, e.g. ext4 en modo journal.\n" -#: pg_test_fsync.c:448 +#: pg_test_fsync.c:454 #, c-format msgid "" "\n" @@ -171,7 +182,7 @@ msgstr "" "\n" "Comparar open_sync con diferentes tamaños de escritura:\n" -#: pg_test_fsync.c:449 +#: pg_test_fsync.c:455 #, c-format msgid "" "(This is designed to compare the cost of writing 16kB in different write\n" @@ -180,27 +191,27 @@ msgstr "" "(Esto está diseñado para comparar el costo de escribir 16kB en diferentes\n" "tamaños de escrituras open_sync.)\n" -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr " 1 * 16kB escritura open_sync" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr " 2 * 8kB escrituras open_sync" -#: pg_test_fsync.c:454 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr " 4 * 4kB escrituras open_sync" -#: pg_test_fsync.c:455 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr " 8 * 2kB escrituras open_sync" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr "16 * 1kB escrituras open_sync" -#: pg_test_fsync.c:510 +#: pg_test_fsync.c:516 #, c-format msgid "" "\n" @@ -209,7 +220,7 @@ msgstr "" "\n" "Probar si se respeta fsync en un descriptor de archivo que no es de escritura:\n" -#: pg_test_fsync.c:511 +#: pg_test_fsync.c:517 #, c-format msgid "" "(If the times are similar, fsync() can sync data written on a different\n" @@ -218,7 +229,7 @@ msgstr "" "(Si los tiempos son similares, fsync() puede sincronizar datos escritos\n" "en un descriptor diferente.)\n" -#: pg_test_fsync.c:576 +#: pg_test_fsync.c:582 #, c-format msgid "" "\n" diff --git a/src/bin/pg_test_fsync/po/fr.po b/src/bin/pg_test_fsync/po/fr.po index dfedfe84e78a1..464f9c6968730 100644 --- a/src/bin/pg_test_fsync/po/fr.po +++ b/src/bin/pg_test_fsync/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-14 10:20+0000\n" -"PO-Revision-Date: 2022-05-14 17:17+0200\n" +"POT-Creation-Date: 2024-08-22 10:24+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,110 +19,121 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "erreur : " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "attention : " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "détail : " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "astuce : " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f ops/sec %6.0f usecs/op\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "n'a pas pu créer un thread pour l'alarme" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s : %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "Usage: %s [-f NOMFICHIER] [-s SECS-PAR-TEST]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "argument invalide pour l'option %s" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "%s doit être compris entre %u et %u" -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" msgstr[0] "%u seconde par test\n" msgstr[1] "%u secondes par test\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "O_DIRECT supporté sur cette plateforme pour open_datasync et open_sync.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "F_NOCACHE supporté sur cette plateforme pour open_datasync et open_sync.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "Direct I/O n'est pas supporté sur cette plateforme.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:336 pg_test_fsync.c:361 -#: pg_test_fsync.c:385 pg_test_fsync.c:529 pg_test_fsync.c:541 -#: pg_test_fsync.c:557 pg_test_fsync.c:563 pg_test_fsync.c:585 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "n'a pas pu ouvrir le fichier en sortie" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:345 -#: pg_test_fsync.c:370 pg_test_fsync.c:394 pg_test_fsync.c:433 -#: pg_test_fsync.c:492 pg_test_fsync.c:531 pg_test_fsync.c:559 -#: pg_test_fsync.c:590 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "échec en écriture" -#: pg_test_fsync.c:253 pg_test_fsync.c:372 pg_test_fsync.c:396 -#: pg_test_fsync.c:533 pg_test_fsync.c:565 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "échec de la synchronisation (fsync)" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "" "\n" @@ -131,7 +142,7 @@ msgstr "" "\n" "Comparer les méthodes de synchronisation de fichier en utilisant une écriture de %d Ko :\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "" "\n" @@ -140,21 +151,21 @@ msgstr "" "\n" "Comparer les méthodes de synchronisation de fichier sur disque en utilisant deux écritures de %d Ko :\n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format -msgid "(in wal_sync_method preference order, except fdatasync is Linux's default)\n" -msgstr "(dans l'ordre de préférence de wal_sync_method, sauf fdatasync qui est la valeur par défaut sous Linux)\n" +msgid "(in \"wal_sync_method\" preference order, except fdatasync is Linux's default)\n" +msgstr "(dans l'ordre de préférence de « wal_sync_method », sauf fdatasync qui est la valeur par défaut sous Linux)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:413 pg_test_fsync.c:480 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "n/a*" -#: pg_test_fsync.c:325 pg_test_fsync.c:351 pg_test_fsync.c:401 -#: pg_test_fsync.c:439 pg_test_fsync.c:498 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "n/a" -#: pg_test_fsync.c:444 +#: pg_test_fsync.c:446 #, c-format msgid "" "* This file system and its mount options do not support direct\n" @@ -163,7 +174,7 @@ msgstr "" "* Ce système de fichiers et ses options de montage ne supportent pas les\n" " I/O directes, par exemple ext4 en journalisé.\n" -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:454 #, c-format msgid "" "\n" @@ -172,7 +183,7 @@ msgstr "" "\n" "Comparer open_sync avec différentes tailles d'écriture :\n" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:455 #, c-format msgid "" "(This is designed to compare the cost of writing 16kB in different write\n" @@ -181,27 +192,27 @@ msgstr "" "(Ceci est conçu pour comparer le coût d'écriture de 16 Ko dans différentes tailles\n" "d'écritures open_sync.)\n" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr " 1 * 16 Ko, écriture avec open_sync" -#: pg_test_fsync.c:457 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr " 2 * 8 Ko, écriture avec open_sync" -#: pg_test_fsync.c:458 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr " 4 * 4 Ko, écriture avec open_sync" -#: pg_test_fsync.c:459 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr " 8 * 2 Ko, écriture avec open_sync" -#: pg_test_fsync.c:460 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr " 16 * 1 Ko, écriture avec open_sync" -#: pg_test_fsync.c:514 +#: pg_test_fsync.c:516 #, c-format msgid "" "\n" @@ -210,7 +221,7 @@ msgstr "" "\n" "Teste si fsync est honoré sur un descripteur de fichiers sans écriture :\n" -#: pg_test_fsync.c:515 +#: pg_test_fsync.c:517 #, c-format msgid "" "(If the times are similar, fsync() can sync data written on a different\n" @@ -219,7 +230,7 @@ msgstr "" "(Si les temps sont similaires, fsync() peut synchroniser sur disque les données écrites sur\n" "un descripteur différent.)\n" -#: pg_test_fsync.c:580 +#: pg_test_fsync.c:582 #, c-format msgid "" "\n" @@ -227,16 +238,3 @@ msgid "" msgstr "" "\n" "%d Ko d'écritures non synchronisées :\n" - -#~ msgid "%s: %s\n" -#~ msgstr "%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" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\n" - -#~ msgid "seek failed" -#~ msgstr "seek échoué" diff --git a/src/bin/pg_test_fsync/po/ka.po b/src/bin/pg_test_fsync/po/ka.po index 9efe6500a3ae3..7377b96f94c64 100644 --- a/src/bin/pg_test_fsync/po/ka.po +++ b/src/bin/pg_test_fsync/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_test_fsync (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-18 22:24+0000\n" +"POT-Creation-Date: 2024-07-01 03:54+0000\n" "PO-Revision-Date: 2024-05-19 07:15+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" @@ -38,6 +38,17 @@ msgstr "დეტალები: " msgid "hint: " msgstr "მინიშნება: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + #. translator: maintain alignment with NA_FORMAT #: pg_test_fsync.c:38 #, c-format diff --git a/src/bin/pg_test_fsync/po/ko.po b/src/bin/pg_test_fsync/po/ko.po index d26cbae756f2a..787414df1a533 100644 --- a/src/bin/pg_test_fsync/po/ko.po +++ b/src/bin/pg_test_fsync/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_test_fsync (PostgreSQL) 16\n" +"Project-Id-Version: pg_test_fsync (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:52+0000\n" -"PO-Revision-Date: 2023-05-30 12:39+0900\n" +"POT-Creation-Date: 2025-01-17 04:54+0000\n" +"PO-Revision-Date: 2025-01-16 11:05+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -37,89 +37,100 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f ops/sec %6.0f usecs/op\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "알람용 쓰레드를 만들 수 없음" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "사용법: %s [-f 파일이름] [-s 검사초]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "%s 옵션의 잘못된 인자" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "%s 값은 %u부터 %u까지 지정할 수 있습니다." -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인자를 지정했습니다. (처음 \"%s\")" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" msgstr[0] "검사 간격: %u초\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "" "이 플랫폼에서는 open_datasync, open_sync 에서 O_DIRECT 옵션을 지원함.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "" "이 플랫폼에서는 open_datasync, open_sync 에서 F_NOCACHE 옵션을 지원함.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "이 플랫폼은 direct I/O 기능을 지원하지 않음.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:335 pg_test_fsync.c:357 -#: pg_test_fsync.c:381 pg_test_fsync.c:525 pg_test_fsync.c:537 -#: pg_test_fsync.c:553 pg_test_fsync.c:559 pg_test_fsync.c:581 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "출력 파일을 열 수 없음" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:344 -#: pg_test_fsync.c:366 pg_test_fsync.c:390 pg_test_fsync.c:429 -#: pg_test_fsync.c:488 pg_test_fsync.c:527 pg_test_fsync.c:555 -#: pg_test_fsync.c:586 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "쓰기 실패" -#: pg_test_fsync.c:253 pg_test_fsync.c:368 pg_test_fsync.c:392 -#: pg_test_fsync.c:529 pg_test_fsync.c:561 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "fsync 실패" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "" "\n" @@ -128,7 +139,7 @@ msgstr "" "\n" "하나의 %dkB 쓰기에 대한 파일 싱크 방법 비교:\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "" "\n" @@ -137,24 +148,25 @@ msgstr "" "\n" "두개의 %dkB 쓰기에 대한 파일 싱크 방법 비교:\n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format msgid "" -"(in wal_sync_method preference order, except fdatasync is Linux's default)\n" +"(in \"wal_sync_method\" preference order, except fdatasync is Linux's " +"default)\n" msgstr "" -"(fdatasync가 리눅스 기본값이기에 제외하고, wal_sync_method 우선으로 처리 " +"(fdatasync가 리눅스 기본값이기에 제외하고, \"wal_sync_method\" 우선으로 처리 " "함)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:409 pg_test_fsync.c:476 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "n/a*" -#: pg_test_fsync.c:325 pg_test_fsync.c:397 pg_test_fsync.c:435 -#: pg_test_fsync.c:494 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "n/a" -#: pg_test_fsync.c:440 +#: pg_test_fsync.c:446 #, c-format msgid "" "* This file system and its mount options do not support direct\n" @@ -163,7 +175,7 @@ msgstr "" "* 이 파일 시스템과 마운트 옵션이 direct I/O 기능을 지원하지 않음\n" " 예: journaled mode에서 ext4\n" -#: pg_test_fsync.c:448 +#: pg_test_fsync.c:454 #, c-format msgid "" "\n" @@ -172,7 +184,7 @@ msgstr "" "\n" "서로 다른 쓰기량으로 open_sync 비교:\n" -#: pg_test_fsync.c:449 +#: pg_test_fsync.c:455 #, c-format msgid "" "(This is designed to compare the cost of writing 16kB in different write\n" @@ -180,27 +192,27 @@ msgid "" msgstr "" "(서로 다른 크기로 16kB를 쓰는데, open_sync 옵션을 사용할 때의 비용 비교)\n" -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr " 1 * 16kB open_sync 쓰기" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr " 2 * 8kB open_sync 쓰기" -#: pg_test_fsync.c:454 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr " 4 * 4kB open_sync 쓰기" -#: pg_test_fsync.c:455 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr " 8 * 2kB open_sync 쓰기" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr "16 * 1kB open_sync 쓰기" -#: pg_test_fsync.c:510 +#: pg_test_fsync.c:516 #, c-format msgid "" "\n" @@ -209,7 +221,7 @@ msgstr "" "\n" "쓰기 방지 파일에서 fsync 작동 여부 검사:\n" -#: pg_test_fsync.c:511 +#: pg_test_fsync.c:517 #, c-format msgid "" "(If the times are similar, fsync() can sync data written on a different\n" @@ -218,7 +230,7 @@ msgstr "" "(이 값이 비슷하다면, fsync() 호출로 여러 파일 상태에 대해서 sync를 사용\n" "할 수 있음.)\n" -#: pg_test_fsync.c:576 +#: pg_test_fsync.c:582 #, c-format msgid "" "\n" diff --git a/src/bin/pg_test_fsync/po/ru.po b/src/bin/pg_test_fsync/po/ru.po index 3ee354d1a9d09..c6fccd00352bf 100644 --- a/src/bin/pg_test_fsync/po/ru.po +++ b/src/bin/pg_test_fsync/po/ru.po @@ -1,13 +1,13 @@ # 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, 2021, 2022. +# Alexander Lakhin , 2017, 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pg_test_fsync (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2022-09-05 13:36+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 18:11+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -37,48 +37,59 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f оп/с %6.0f мкс/оп\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "не удалось создать поток для обработки сигналов" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "Использование: %s [-f ИМЯ_ФАЙЛА ] [-s ТЕСТ_СЕК]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "недопустимый аргумент параметра %s" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "значение %s должно быть в диапазоне %u..%u" -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" @@ -86,42 +97,42 @@ msgstr[0] "на тест отводится %u сек.\n" msgstr[1] "на тест отводится %u сек.\n" msgstr[2] "на тест отводится %u сек.\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "" "O_DIRECT на этой платформе не поддерживается для open_datasync и open_sync.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "" "F_NOCACHE на этой платформе поддерживается для open_datasync и open_sync.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "Прямой ввод/вывод не поддерживается на этой платформе.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:335 pg_test_fsync.c:357 -#: pg_test_fsync.c:381 pg_test_fsync.c:525 pg_test_fsync.c:537 -#: pg_test_fsync.c:553 pg_test_fsync.c:559 pg_test_fsync.c:581 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "не удалось открыть выходной файл" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:344 -#: pg_test_fsync.c:366 pg_test_fsync.c:390 pg_test_fsync.c:429 -#: pg_test_fsync.c:488 pg_test_fsync.c:527 pg_test_fsync.c:555 -#: pg_test_fsync.c:586 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "ошибка записи" -#: pg_test_fsync.c:253 pg_test_fsync.c:368 pg_test_fsync.c:392 -#: pg_test_fsync.c:529 pg_test_fsync.c:561 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "ошибка синхронизации с ФС" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "" "\n" @@ -130,7 +141,7 @@ msgstr "" "\n" "Сравнение методов синхронизации файлов при однократной записи %d КБ:\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "" "\n" @@ -139,24 +150,25 @@ msgstr "" "\n" "Сравнение методов синхронизации файлов при двухкратной записи %d КБ:\n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format msgid "" -"(in wal_sync_method preference order, except fdatasync is Linux's default)\n" +"(in \"wal_sync_method\" preference order, except fdatasync is Linux's " +"default)\n" msgstr "" -"(в порядке предпочтения для wal_sync_method, без учёта наибольшего " -"предпочтения fdatasync в Linux)\n" +"(в порядке предпочтения для \"wal_sync_method\", за исключением того, что в " +"Linux предпочитается fdatasync)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:409 pg_test_fsync.c:476 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "н/д*" -#: pg_test_fsync.c:325 pg_test_fsync.c:397 pg_test_fsync.c:435 -#: pg_test_fsync.c:494 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "н/д" -#: pg_test_fsync.c:440 +#: pg_test_fsync.c:446 #, c-format msgid "" "* This file system and its mount options do not support direct\n" @@ -165,7 +177,7 @@ msgstr "" "* Эта файловая система с текущими параметрами монтирования не поддерживает\n" " прямой ввод/вывод, как например, ext4 в режиме журналирования.\n" -#: pg_test_fsync.c:448 +#: pg_test_fsync.c:454 #, c-format msgid "" "\n" @@ -174,7 +186,7 @@ msgstr "" "\n" "Сравнение open_sync при различных объёмах записываемых данных:\n" -#: pg_test_fsync.c:449 +#: pg_test_fsync.c:455 #, c-format msgid "" "(This is designed to compare the cost of writing 16kB in different write\n" @@ -185,27 +197,27 @@ msgstr "" "записи с open_sync.)\n" # skip-rule: double-space -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr "запись с open_sync 1 * 16 КБ" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr "запись с open_sync 2 * 8 КБ" -#: pg_test_fsync.c:454 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr "запись с open_sync 4 * 4 КБ" -#: pg_test_fsync.c:455 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr "запись с open_sync 8 * 2 КБ" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr "запись с open_sync 16 * 1 КБ" -#: pg_test_fsync.c:510 +#: pg_test_fsync.c:516 #, c-format msgid "" "\n" @@ -215,7 +227,7 @@ msgstr "" "Проверка, производится ли fsync с указателем файла, открытого не для " "записи:\n" -#: pg_test_fsync.c:511 +#: pg_test_fsync.c:517 #, c-format msgid "" "(If the times are similar, fsync() can sync data written on a different\n" @@ -225,7 +237,7 @@ msgstr "" "данные,\n" "записанные через другой дескриптор.)\n" -#: pg_test_fsync.c:576 +#: pg_test_fsync.c:582 #, c-format msgid "" "\n" diff --git a/src/bin/pg_test_fsync/po/sv.po b/src/bin/pg_test_fsync/po/sv.po index 45f059e9db55d..3d03f5afe8c47 100644 --- a/src/bin/pg_test_fsync/po/sv.po +++ b/src/bin/pg_test_fsync/po/sv.po @@ -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, 2021, 2022. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-09 18:51+0000\n" -"PO-Revision-Date: 2022-05-09 21:44+0200\n" +"POT-Creation-Date: 2024-07-12 14:25+0000\n" +"PO-Revision-Date: 2024-07-12 19:06+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,108 +17,119 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "fel: " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "varning: " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "detalj: " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "tips: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f ops/sek %6.0f useks/op\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "kunde inte skapa alarmtråd" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "Användning: %s [-f FILENAMN] [-s SEK-PER-TEST]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "ogiltigt argument för flaggan %s" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "%s måste vara i intervallet %u..%u" -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" msgstr[0] "%u sekund per test\n" msgstr[1] "%u sekunder per test\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "O_DIRECT stöds på denna plattform för open_datasync och open_sync.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "F_NOCACHE stöds på denna plattform för open_datasync och open_sync.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "Direkt I/O stöds inte på denna plattform.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:336 pg_test_fsync.c:361 -#: pg_test_fsync.c:385 pg_test_fsync.c:529 pg_test_fsync.c:541 -#: pg_test_fsync.c:557 pg_test_fsync.c:563 pg_test_fsync.c:585 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "kunde inte öppna utdatafil" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:345 -#: pg_test_fsync.c:370 pg_test_fsync.c:394 pg_test_fsync.c:433 -#: pg_test_fsync.c:492 pg_test_fsync.c:531 pg_test_fsync.c:559 -#: pg_test_fsync.c:590 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "skrivning misslyckades" -#: pg_test_fsync.c:253 pg_test_fsync.c:372 pg_test_fsync.c:396 -#: pg_test_fsync.c:533 pg_test_fsync.c:565 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "fsync misslyckades" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "" "\n" @@ -127,7 +138,7 @@ msgstr "" "\n" "Jämför filsynkningsmetoder genom att använda en %dkB-skrivning:\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "" "\n" @@ -136,21 +147,21 @@ msgstr "" "\n" "Jämför filsynkningsmetoder genom att använda två %dkB-skrivningar:\n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format -msgid "(in wal_sync_method preference order, except fdatasync is Linux's default)\n" -msgstr "(i wal_sync_method inställningsordning, förutom att fdatasync är standard i Linux)\n" +msgid "(in \"wal_sync_method\" preference order, except fdatasync is Linux's default)\n" +msgstr "(i \"wal_sync_method\" inställningsordning, förutom att fdatasync är standard i Linux)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:413 pg_test_fsync.c:480 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "ej tillämpbar*" -#: pg_test_fsync.c:325 pg_test_fsync.c:351 pg_test_fsync.c:401 -#: pg_test_fsync.c:439 pg_test_fsync.c:498 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "ej tillämpbar" -#: pg_test_fsync.c:444 +#: pg_test_fsync.c:446 #, c-format msgid "" "* This file system and its mount options do not support direct\n" @@ -159,7 +170,7 @@ msgstr "" "* Detta filsystem och dess monteringsflaffor stöder inte\n" " direkt I/O, t.ex. ext4 i journalläge.\n" -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:454 #, c-format msgid "" "\n" @@ -168,7 +179,7 @@ msgstr "" "\n" "Jämför open_sync med olika skrivstorlekar:\n" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:455 #, c-format msgid "" "(This is designed to compare the cost of writing 16kB in different write\n" @@ -177,27 +188,27 @@ msgstr "" "(Detta är gjort för att jämföra kostnaden att skriva 16kB med olika\n" "open_sync skrivstorlekar.)\n" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr " 1 * 16kB open_sync skrivning" -#: pg_test_fsync.c:457 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr " 2 * 8kB open_sync skrivningar" -#: pg_test_fsync.c:458 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr " 4 * 4kB open_sync skrivningar" -#: pg_test_fsync.c:459 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr " 8 * 2kB open_sync skrivningar" -#: pg_test_fsync.c:460 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr "16 * 1kB open_sync skrivningar" -#: pg_test_fsync.c:514 +#: pg_test_fsync.c:516 #, c-format msgid "" "\n" @@ -206,7 +217,7 @@ msgstr "" "\n" "Testa om fsync på en icke skrivbar fildeskriptor respekteras:\n" -#: pg_test_fsync.c:515 +#: pg_test_fsync.c:517 #, c-format msgid "" "(If the times are similar, fsync() can sync data written on a different\n" @@ -215,7 +226,7 @@ msgstr "" "(Om tiderna är liknande, så kan fsync() synka data skriven på\n" "olika deskriptorer.)\n" -#: pg_test_fsync.c:580 +#: pg_test_fsync.c:582 #, c-format msgid "" "\n" @@ -223,7 +234,3 @@ msgid "" msgstr "" "\n" "Icke-synkade %dkB-skrivningar:\n" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Försök med \"%s --help\" för mer information.\n" diff --git a/src/bin/pg_test_fsync/po/uk.po b/src/bin/pg_test_fsync/po/uk.po index 00a789b1a426b..a633ea634bef1 100644 --- a/src/bin/pg_test_fsync/po/uk.po +++ b/src/bin/pg_test_fsync/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:51+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:24+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_test_fsync.pot\n" -"X-Crowdin-File-ID: 886\n" +"X-Crowdin-File: /REL_17_STABLE/pg_test_fsync.pot\n" +"X-Crowdin-File-ID: 1020\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,48 +37,59 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + #. translator: maintain alignment with NA_FORMAT -#: pg_test_fsync.c:32 +#: pg_test_fsync.c:38 #, c-format msgid "%13.3f ops/sec %6.0f usecs/op\n" msgstr "%13.3f оп/с %6.0f мкс/оп\n" -#: pg_test_fsync.c:50 +#: pg_test_fsync.c:56 #, c-format msgid "could not create thread for alarm" msgstr "не вдалося створити потік для сигналізації" -#: pg_test_fsync.c:95 +#: pg_test_fsync.c:101 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: pg_test_fsync.c:159 +#: pg_test_fsync.c:165 #, c-format msgid "Usage: %s [-f FILENAME] [-s SECS-PER-TEST]\n" msgstr "Використання: %s [-f FILENAME] [-s SECS-PER-TEST]\n" -#: pg_test_fsync.c:185 +#: pg_test_fsync.c:191 #, c-format msgid "invalid argument for option %s" msgstr "неприпустимий аргумент для параметру %s" -#: pg_test_fsync.c:186 pg_test_fsync.c:198 pg_test_fsync.c:207 +#: pg_test_fsync.c:192 pg_test_fsync.c:204 pg_test_fsync.c:213 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_test_fsync.c:192 +#: pg_test_fsync.c:198 #, c-format msgid "%s must be in range %u..%u" msgstr "%s має бути в діапазоні %u..%u" -#: pg_test_fsync.c:205 +#: pg_test_fsync.c:211 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_test_fsync.c:211 +#: pg_test_fsync.c:217 #, c-format msgid "%u second per test\n" msgid_plural "%u seconds per test\n" @@ -87,122 +98,122 @@ msgstr[1] "%u секунди на тест\n" msgstr[2] "%u секунд на тест\n" msgstr[3] "%u секунд на тест\n" -#: pg_test_fsync.c:216 +#: pg_test_fsync.c:222 #, c-format msgid "O_DIRECT supported on this platform for open_datasync and open_sync.\n" msgstr "O_DIRECT на цій платформі підтримується для open_datasync і open_sync.\n" -#: pg_test_fsync.c:218 +#: pg_test_fsync.c:224 #, c-format msgid "F_NOCACHE supported on this platform for open_datasync and open_sync.\n" msgstr "F_NOCACHE підтримується на цій платформі для open_datasync і open_sync.\n" -#: pg_test_fsync.c:220 +#: pg_test_fsync.c:226 #, c-format msgid "Direct I/O is not supported on this platform.\n" msgstr "Пряме введення/виведення не підтримується на цій платформі.\n" -#: pg_test_fsync.c:245 pg_test_fsync.c:336 pg_test_fsync.c:361 -#: pg_test_fsync.c:385 pg_test_fsync.c:529 pg_test_fsync.c:541 -#: pg_test_fsync.c:557 pg_test_fsync.c:563 pg_test_fsync.c:585 +#: pg_test_fsync.c:251 pg_test_fsync.c:341 pg_test_fsync.c:363 +#: pg_test_fsync.c:387 pg_test_fsync.c:531 pg_test_fsync.c:543 +#: pg_test_fsync.c:559 pg_test_fsync.c:565 pg_test_fsync.c:587 msgid "could not open output file" msgstr "неможливо відкрити файл виводу" -#: pg_test_fsync.c:249 pg_test_fsync.c:319 pg_test_fsync.c:345 -#: pg_test_fsync.c:370 pg_test_fsync.c:394 pg_test_fsync.c:433 -#: pg_test_fsync.c:492 pg_test_fsync.c:531 pg_test_fsync.c:559 -#: pg_test_fsync.c:590 +#: pg_test_fsync.c:255 pg_test_fsync.c:325 pg_test_fsync.c:350 +#: pg_test_fsync.c:372 pg_test_fsync.c:396 pg_test_fsync.c:435 +#: pg_test_fsync.c:494 pg_test_fsync.c:533 pg_test_fsync.c:561 +#: pg_test_fsync.c:592 msgid "write failed" msgstr "записування не вдалося" -#: pg_test_fsync.c:253 pg_test_fsync.c:372 pg_test_fsync.c:396 -#: pg_test_fsync.c:533 pg_test_fsync.c:565 +#: pg_test_fsync.c:259 pg_test_fsync.c:374 pg_test_fsync.c:398 +#: pg_test_fsync.c:535 pg_test_fsync.c:567 msgid "fsync failed" msgstr "помилка fsync" -#: pg_test_fsync.c:292 +#: pg_test_fsync.c:298 #, c-format msgid "\n" "Compare file sync methods using one %dkB write:\n" msgstr "\n" "Порівнювання методів синхронізації файлу, використовуючи один запис %dkB:\n" -#: pg_test_fsync.c:294 +#: pg_test_fsync.c:300 #, c-format msgid "\n" "Compare file sync methods using two %dkB writes:\n" msgstr "\n" "Порівнювання методів синхронізації файлу, використовуючи два записи %dkB: \n" -#: pg_test_fsync.c:295 +#: pg_test_fsync.c:301 #, c-format -msgid "(in wal_sync_method preference order, except fdatasync is Linux's default)\n" -msgstr "(в порядку переваги для wal_sync_method, окрім переваги fdatasync в Linux)\n" +msgid "(in \"wal_sync_method\" preference order, except fdatasync is Linux's default)\n" +msgstr "(в порядку переваги для \"wal_sync_method\", окрім fdatasync за замовчуванням в Linux)\n" -#: pg_test_fsync.c:306 pg_test_fsync.c:413 pg_test_fsync.c:480 +#: pg_test_fsync.c:312 pg_test_fsync.c:415 pg_test_fsync.c:482 msgid "n/a*" msgstr "н/д*" -#: pg_test_fsync.c:325 pg_test_fsync.c:351 pg_test_fsync.c:401 -#: pg_test_fsync.c:439 pg_test_fsync.c:498 +#: pg_test_fsync.c:331 pg_test_fsync.c:403 pg_test_fsync.c:441 +#: pg_test_fsync.c:500 msgid "n/a" msgstr "н/д" -#: pg_test_fsync.c:444 +#: pg_test_fsync.c:446 #, c-format msgid "* This file system and its mount options do not support direct\n" " I/O, e.g. ext4 in journaled mode.\n" msgstr "* Ця файлова система з поточними параметрами монтування не підтримує\n" " пряме введення/виведення, наприклад, ext4 в режимі журналювання.\n" -#: pg_test_fsync.c:452 +#: pg_test_fsync.c:454 #, c-format msgid "\n" "Compare open_sync with different write sizes:\n" msgstr "\n" "Порівняння open_sync з різними розмірами записування:\n" -#: pg_test_fsync.c:453 +#: pg_test_fsync.c:455 #, c-format msgid "(This is designed to compare the cost of writing 16kB in different write\n" "open_sync sizes.)\n" msgstr "(Це створено для порівняння вартості запису 16 КБ з різними розмірами\n" "записування open_sync.)\n" -#: pg_test_fsync.c:456 +#: pg_test_fsync.c:458 msgid " 1 * 16kB open_sync write" msgstr " запис з open_sync 1 * 16 КБ" -#: pg_test_fsync.c:457 +#: pg_test_fsync.c:459 msgid " 2 * 8kB open_sync writes" msgstr " запис з open_sync 2 * 8 КБ" -#: pg_test_fsync.c:458 +#: pg_test_fsync.c:460 msgid " 4 * 4kB open_sync writes" msgstr " запис з open_sync 4 * 4 КБ" -#: pg_test_fsync.c:459 +#: pg_test_fsync.c:461 msgid " 8 * 2kB open_sync writes" msgstr " запис з open_sync 8 * 2 КБ" -#: pg_test_fsync.c:460 +#: pg_test_fsync.c:462 msgid "16 * 1kB open_sync writes" msgstr "запис з open_sync 16 * 1 КБ" -#: pg_test_fsync.c:514 +#: pg_test_fsync.c:516 #, c-format msgid "\n" "Test if fsync on non-write file descriptor is honored:\n" msgstr "\n" "Перевірка, чи здійснюється fsync з дескриптором файлу, відкритого не для запису:\n" -#: pg_test_fsync.c:515 +#: pg_test_fsync.c:517 #, c-format msgid "(If the times are similar, fsync() can sync data written on a different\n" "descriptor.)\n" msgstr "(Якщо час однаковий, fsync() може синхронізувати дані, записані іншим дескриптором.)\n" -#: pg_test_fsync.c:580 +#: pg_test_fsync.c:582 #, c-format msgid "\n" "Non-sync'ed %dkB writes:\n" diff --git a/src/bin/pg_test_timing/po/es.po b/src/bin/pg_test_timing/po/es.po index 47cb27d9a0f69..c8de0f2c870c4 100644 --- a/src/bin/pg_test_timing/po/es.po +++ b/src/bin/pg_test_timing/po/es.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_test_timing (PostgreSQL) 16\n" +"Project-Id-Version: pg_test_timing (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:19+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:50+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -20,6 +20,17 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Poedit 2.4.2\n" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + #: pg_test_timing.c:59 #, c-format msgid "Usage: %s [-d DURATION]\n" diff --git a/src/bin/pg_test_timing/po/fr.po b/src/bin/pg_test_timing/po/fr.po index f97ebee84bdce..3be64c4b32ae5 100644 --- a/src/bin/pg_test_timing/po/fr.po +++ b/src/bin/pg_test_timing/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-08-22 10:20+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,18 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" #: pg_test_timing.c:59 #, c-format @@ -85,6 +96,3 @@ msgstr "nombre" #, c-format msgid "Histogram of timing durations:\n" msgstr "Histogramme des durées de chronométrage\n" - -#~ msgid "%s: duration must be a positive integer (duration is \"%d\")\n" -#~ msgstr "%s : la durée doit être un entier positif (la durée est « %d »)\n" diff --git a/src/bin/pg_test_timing/po/ka.po b/src/bin/pg_test_timing/po/ka.po index a472b6c8bd75e..6fb64047ee36c 100644 --- a/src/bin/pg_test_timing/po/ka.po +++ b/src/bin/pg_test_timing/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_test_timing (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-07-02 04:48+0000\n" +"POT-Creation-Date: 2024-07-01 03:51+0000\n" "PO-Revision-Date: 2022-07-04 11:40+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" @@ -18,6 +18,17 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1\n" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + #: pg_test_timing.c:59 #, c-format msgid "Usage: %s [-d DURATION]\n" diff --git a/src/bin/pg_test_timing/po/ko.po b/src/bin/pg_test_timing/po/ko.po index 1f1da785b3fe8..69ac14f128670 100644 --- a/src/bin/pg_test_timing/po/ko.po +++ b/src/bin/pg_test_timing/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_test_timing (PostgreSQL) 16\n" +"Project-Id-Version: pg_test_timing (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:50+0000\n" -"PO-Revision-Date: 2023-05-30 12:39+0900\n" +"POT-Creation-Date: 2025-01-17 04:50+0000\n" +"PO-Revision-Date: 2025-01-16 11:07+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,6 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + #: pg_test_timing.c:59 #, c-format msgid "Usage: %s [-d DURATION]\n" diff --git a/src/bin/pg_test_timing/po/ru.po b/src/bin/pg_test_timing/po/ru.po index c24e78df428b3..6fdaef839baae 100644 --- a/src/bin/pg_test_timing/po/ru.po +++ b/src/bin/pg_test_timing/po/ru.po @@ -1,13 +1,13 @@ # 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, 2021. +# Alexander Lakhin , 2017, 2021, 2024. msgid "" msgstr "" "Project-Id-Version: pg_test_timing (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 06:29+0300\n" -"PO-Revision-Date: 2021-09-04 12:18+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 19:59+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -17,6 +17,17 @@ msgstr "" "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/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + #: pg_test_timing.c:59 #, c-format msgid "Usage: %s [-d DURATION]\n" diff --git a/src/bin/pg_test_timing/po/sv.po b/src/bin/pg_test_timing/po/sv.po index 92c130dced6c3..d1fcae77547e8 100644 --- a/src/bin/pg_test_timing/po/sv.po +++ b/src/bin/pg_test_timing/po/sv.po @@ -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, 2021. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 14\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-11-06 17:16+0000\n" -"PO-Revision-Date: 2021-11-06 21:59+0100\n" +"POT-Creation-Date: 2024-07-12 14:21+0000\n" +"PO-Revision-Date: 2024-07-12 19:07+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,6 +17,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + #: pg_test_timing.c:59 #, c-format msgid "Usage: %s [-d DURATION]\n" diff --git a/src/bin/pg_test_timing/po/uk.po b/src/bin/pg_test_timing/po/uk.po index 53135933aa4bf..52837fbbda2c1 100644 --- a/src/bin/pg_test_timing/po/uk.po +++ b/src/bin/pg_test_timing/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:49+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:21+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,19 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pg_test_timing.pot\n" -"X-Crowdin-File-ID: 912\n" +"X-Crowdin-File: /REL_17_STABLE/pg_test_timing.pot\n" +"X-Crowdin-File-ID: 1002\n" + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" #: pg_test_timing.c:59 #, c-format diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c index 02d9146e5ed7b..940fc77fc2e8c 100644 --- a/src/bin/pg_upgrade/check.c +++ b/src/bin/pg_upgrade/check.c @@ -13,6 +13,7 @@ #include "catalog/pg_class_d.h" #include "fe_utils/string_utils.h" #include "pg_upgrade.h" +#include "common/unicode_version.h" static void check_new_cluster_is_empty(void); static void check_is_install_user(ClusterInfo *cluster); @@ -25,6 +26,7 @@ static void check_for_tables_with_oids(ClusterInfo *cluster); static void check_for_pg_role_prefix(ClusterInfo *cluster); static void check_for_new_tablespace_dir(void); static void check_for_user_defined_encoding_conversions(ClusterInfo *cluster); +static void check_for_unicode_update(ClusterInfo *cluster); static void check_new_cluster_logical_replication_slots(void); static void check_new_cluster_subscription_configuration(void); static void check_old_cluster_for_valid_slots(void); @@ -633,6 +635,12 @@ check_and_dump_old_cluster(void) check_for_data_types_usage(&old_cluster); + /* + * Unicode updates can affect some objects that use expressions with + * functions dependent on Unicode. + */ + check_for_unicode_update(&old_cluster); + /* * PG 14 changed the function signature of encoding conversion functions. * Conversions from older versions cannot be upgraded automatically @@ -806,9 +814,12 @@ output_completion_banner(char *deletion_script_file_name) } pg_log(PG_REPORT, - "Some optimizer statistics may not have been transferred by pg_upgrade.\n" - "Once you start the new server, consider running:\n" - " %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only", new_cluster.bindir, user_specification.data); + "Some statistics are not transferred by pg_upgrade.\n" + "Once you start the new server, consider running these two commands:\n" + " %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only\n" + " %s/vacuumdb %s--all --analyze-only", + new_cluster.bindir, user_specification.data, + new_cluster.bindir, user_specification.data); if (deletion_script_file_name) pg_log(PG_REPORT, @@ -1754,6 +1765,183 @@ check_for_user_defined_encoding_conversions(ClusterInfo *cluster) check_ok(); } +/* + * Callback function for processing results of query for + * check_for_unicode_update()'s UpgradeTask. If the query returned any rows + * (i.e., the check failed), write the details to the report file. + */ +static void +process_unicode_update(DbInfo *dbinfo, PGresult *res, void *arg) +{ + UpgradeTaskReport *report = (UpgradeTaskReport *) arg; + int ntups = PQntuples(res); + int i_reloid = PQfnumber(res, "reloid"); + int i_nspname = PQfnumber(res, "nspname"); + int i_relname = PQfnumber(res, "relname"); + + if (ntups == 0) + return; + + if (report->file == NULL && + (report->file = fopen_priv(report->path, "w")) == NULL) + pg_fatal("could not open file \"%s\": %m", report->path); + + fprintf(report->file, "In database: %s\n", dbinfo->db_name); + + for (int rowno = 0; rowno < ntups; rowno++) + fprintf(report->file, " (oid=%s) %s.%s\n", + PQgetvalue(res, rowno, i_reloid), + PQgetvalue(res, rowno, i_nspname), + PQgetvalue(res, rowno, i_relname)); +} + +/* + * Check if the Unicode version built into Postgres changed between the old + * cluster and the new cluster. + */ +static bool +unicode_version_changed(ClusterInfo *cluster) +{ + PGconn *conn_template1 = connectToServer(cluster, "template1"); + PGresult *res; + char *old_unicode_version; + bool unicode_updated; + + res = executeQueryOrDie(conn_template1, "SELECT unicode_version()"); + old_unicode_version = PQgetvalue(res, 0, 0); + unicode_updated = (strcmp(old_unicode_version, PG_UNICODE_VERSION) != 0); + + PQclear(res); + PQfinish(conn_template1); + + return unicode_updated; +} + +/* + * check_for_unicode_update() + * + * Check if the version of Unicode in the old server and the new server + * differ. If so, check for indexes, partitioned tables, or constraints that + * use expressions with functions dependent on Unicode behavior. + */ +static void +check_for_unicode_update(ClusterInfo *cluster) +{ + UpgradeTaskReport report; + UpgradeTask *task; + const char *query; + + /* + * The builtin provider did not exist prior to version 17. While there are + * still problems that could potentially be caught from earlier versions, + * such as an index on NORMALIZE(), we don't check for that here. + */ + if (GET_MAJOR_VERSION(cluster->major_version) < 1700) + return; + + prep_status("Checking for objects affected by Unicode update"); + + if (!unicode_version_changed(cluster)) + { + check_ok(); + return; + } + + report.file = NULL; + snprintf(report.path, sizeof(report.path), "%s/%s", + log_opts.basedir, + "unicode_dependent_rels.txt"); + + query = + /* collations that use built-in Unicode for character semantics */ + "WITH collations(collid) AS ( " + " SELECT oid FROM pg_collation " + " WHERE collprovider='b' AND colllocale IN ('C.UTF-8','PG_UNICODE_FAST') " + /* include default collation, if appropriate */ + " UNION " + " SELECT 'pg_catalog.default'::regcollation FROM pg_database " + " WHERE datname = current_database() AND " + " datlocprovider='b' AND datlocale IN ('C.UTF-8','PG_UNICODE_FAST') " + "), " + /* functions that use built-in Unicode */ + "functions(procid) AS ( " + " SELECT proc.oid FROM pg_proc proc " + " WHERE proname IN ('normalize','unicode_assigned','unicode_version','is_normalized') AND " + " pronamespace='pg_catalog'::regnamespace " + "), " + /* operators that use the input collation for character semantics */ + "coll_operators(operid, procid, collid) AS ( " + " SELECT oper.oid, oper.oprcode, collid FROM pg_operator oper, collations " + " WHERE oprname IN ('~', '~*', '!~', '!~*', '~~*', '!~~*') AND " + " oprnamespace='pg_catalog'::regnamespace AND " + " oprright='text'::regtype " + "), " + /* functions that use the input collation for character semantics */ + "coll_functions(procid, collid) AS ( " + " SELECT proc.oid, collid FROM pg_proc proc, collations " + " WHERE proname IN ('lower','initcap','upper') AND " + " pronamespace='pg_catalog'::regnamespace AND " + " proargtypes[0] = 'text'::regtype " + /* include functions behind the operators listed above */ + " UNION " + " SELECT procid, collid FROM coll_operators " + "), " + + /* + * Generate patterns to search a pg_node_tree for the above functions and + * operators. + */ + "patterns(p) AS ( " + " SELECT '{FUNCEXPR :funcid ' || procid::text || '[ }]' FROM functions " + " UNION " + " SELECT '{OPEXPR :opno ' || operid::text || ' (:\\w+ \\w+ )*' || " + " ':inputcollid ' || collid::text || '[ }]' FROM coll_operators " + " UNION " + " SELECT '{FUNCEXPR :funcid ' || procid::text || ' (:\\w+ \\w+ )*' || " + " ':inputcollid ' || collid::text || '[ }]' FROM coll_functions " + ") " + + /* + * Match the patterns against expressions used for relation contents. + */ + "SELECT reloid, relkind, nspname, relname " + " FROM ( " + " SELECT conrelid " + " FROM pg_constraint, patterns WHERE conbin::text ~ p " + " UNION " + " SELECT indexrelid " + " FROM pg_index, patterns WHERE indexprs::text ~ p OR indpred::text ~ p " + " UNION " + " SELECT partrelid " + " FROM pg_partitioned_table, patterns WHERE partexprs::text ~ p " + " UNION " + " SELECT ev_class " + " FROM pg_rewrite, pg_class, patterns " + " WHERE ev_class = pg_class.oid AND relkind = 'm' AND ev_action::text ~ p" + " ) s(reloid), pg_class c, pg_namespace n, pg_database d " + " WHERE s.reloid = c.oid AND c.relnamespace = n.oid AND " + " d.datname = current_database() AND " + " d.encoding = pg_char_to_encoding('UTF8');"; + + task = upgrade_task_create(); + upgrade_task_add_step(task, query, + process_unicode_update, + true, &report); + upgrade_task_run(task, cluster); + upgrade_task_free(task); + + if (report.file) + { + fclose(report.file); + report_status(PG_WARNING, "warning"); + pg_log(PG_WARNING, "Your installation contains relations that may be affected by a new version of Unicode.\n" + "A list of potentially-affected relations is in the file:\n" + " %s", report.path); + } + else + check_ok(); +} + /* * check_new_cluster_logical_replication_slots() * diff --git a/src/bin/pg_upgrade/controldata.c b/src/bin/pg_upgrade/controldata.c index 47ee27ec83549..90cef0864de7c 100644 --- a/src/bin/pg_upgrade/controldata.c +++ b/src/bin/pg_upgrade/controldata.c @@ -12,6 +12,7 @@ #include #include /* for CHAR_MIN */ +#include "access/xlog_internal.h" #include "common/string.h" #include "pg_upgrade.h" @@ -757,22 +758,24 @@ disable_old_cluster(transferMode transfer_mode) new_path[MAXPGPATH]; /* rename pg_control so old server cannot be accidentally started */ - prep_status("Adding \".old\" suffix to old global/pg_control"); + /* translator: %s is the file path of the control file */ + prep_status("Adding \".old\" suffix to old \"%s\"", XLOG_CONTROL_FILE); - snprintf(old_path, sizeof(old_path), "%s/global/pg_control", old_cluster.pgdata); - snprintf(new_path, sizeof(new_path), "%s/global/pg_control.old", old_cluster.pgdata); + snprintf(old_path, sizeof(old_path), "%s/%s", old_cluster.pgdata, XLOG_CONTROL_FILE); + snprintf(new_path, sizeof(new_path), "%s/%s.old", old_cluster.pgdata, XLOG_CONTROL_FILE); if (pg_mv_file(old_path, new_path) != 0) pg_fatal("could not rename file \"%s\" to \"%s\": %m", old_path, new_path); check_ok(); if (transfer_mode == TRANSFER_MODE_LINK) + /* translator: %s/%s is the file path of the control file */ pg_log(PG_REPORT, "\n" "If you want to start the old cluster, you will need to remove\n" - "the \".old\" suffix from %s/global/pg_control.old.\n" + "the \".old\" suffix from \"%s/%s.old\".\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" "started once the new cluster has been started.", - old_cluster.pgdata); + old_cluster.pgdata, XLOG_CONTROL_FILE); else if (transfer_mode == TRANSFER_MODE_SWAP) pg_log(PG_REPORT, "\n" "Because \"swap\" mode was used, the old cluster can no longer be\n" diff --git a/src/bin/pg_upgrade/nls.mk b/src/bin/pg_upgrade/nls.mk index db5aa18013b05..d4ae1a95eb5b0 100644 --- a/src/bin/pg_upgrade/nls.mk +++ b/src/bin/pg_upgrade/nls.mk @@ -13,6 +13,7 @@ GETTEXT_FILES = check.c \ relfilenumber.c \ server.c \ tablespace.c \ + task.c \ util.c \ version.c \ ../../common/fe_memutils.c \ diff --git a/src/bin/pg_upgrade/pg_upgrade.c b/src/bin/pg_upgrade/pg_upgrade.c index 9295e46aed3e1..536e49d26168b 100644 --- a/src/bin/pg_upgrade/pg_upgrade.c +++ b/src/bin/pg_upgrade/pg_upgrade.c @@ -32,6 +32,9 @@ * We control all assignments of pg_authid.oid for historical reasons (the * oids used to be stored in pg_largeobject_metadata, which is now copied via * SQL commands), that might change at some point in the future. + * + * We control all assignments of pg_database.oid because we want the directory + * names to match between the old and new cluster. */ @@ -441,7 +444,6 @@ set_locale_and_encoding(void) char *datcollate_literal; char *datctype_literal; char *datlocale_literal = NULL; - char *datlocale_src; DbLocaleInfo *locale = old_cluster.template0; prep_status("Setting locale and encoding for new cluster"); @@ -455,10 +457,13 @@ set_locale_and_encoding(void) datctype_literal = PQescapeLiteral(conn_new_template1, locale->db_ctype, strlen(locale->db_ctype)); - datlocale_src = locale->db_locale ? locale->db_locale : "NULL"; - datlocale_literal = PQescapeLiteral(conn_new_template1, - datlocale_src, - strlen(datlocale_src)); + + if (locale->db_locale) + datlocale_literal = PQescapeLiteral(conn_new_template1, + locale->db_locale, + strlen(locale->db_locale)); + else + datlocale_literal = "NULL"; /* update template0 in new cluster */ if (GET_MAJOR_VERSION(new_cluster.major_version) >= 1700) @@ -502,7 +507,8 @@ set_locale_and_encoding(void) PQfreemem(datcollate_literal); PQfreemem(datctype_literal); - PQfreemem(datlocale_literal); + if (locale->db_locale) + PQfreemem(datlocale_literal); PQfinish(conn_new_template1); @@ -993,11 +999,11 @@ create_logical_replication_slots(void) LogicalSlotInfo *slot_info = &slot_arr->slots[slotnum]; /* Constructs a query for creating logical replication slots */ - appendPQExpBuffer(query, - "SELECT * FROM " - "pg_catalog.pg_create_logical_replication_slot("); + appendPQExpBufferStr(query, + "SELECT * FROM " + "pg_catalog.pg_create_logical_replication_slot("); appendStringLiteralConn(query, slot_info->slotname, conn); - appendPQExpBuffer(query, ", "); + appendPQExpBufferStr(query, ", "); appendStringLiteralConn(query, slot_info->plugin, conn); appendPQExpBuffer(query, ", false, %s, %s);", diff --git a/src/bin/pg_upgrade/po/de.po b/src/bin/pg_upgrade/po/de.po index 6ba30754d318d..4a225c29f21cc 100644 --- a/src/bin/pg_upgrade/po/de.po +++ b/src/bin/pg_upgrade/po/de.po @@ -1,13 +1,13 @@ # German message translation file for pg_upgrade -# Copyright (C) 2024 PostgreSQL Global Development Group +# Copyright (C) 2025 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. # msgid "" msgstr "" -"Project-Id-Version: pg_upgrade (PostgreSQL) 17\n" +"Project-Id-Version: pg_upgrade (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-18 04:50+0000\n" -"PO-Revision-Date: 2024-06-19 10:24+0200\n" +"POT-Creation-Date: 2025-04-08 04:51+0000\n" +"PO-Revision-Date: 2025-04-08 08:44+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -45,12 +45,12 @@ msgstr "Benutzer existiert nicht" msgid "user name lookup failure: error code %lu" msgstr "Fehler beim Nachschlagen des Benutzernamens: Fehlercode %lu" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" @@ -229,34 +229,34 @@ msgstr "" "löschen oder in einen anderen Datentyp ändern und das Upgrade neu\n" "starten.\n" -#: check.c:345 +#: check.c:421 #, c-format -msgid "Checking for data type usage" -msgstr "Prüfe Verwendung von Datentypen" - -#: check.c:480 -#, c-format -msgid " failed check: %s" -msgstr " fehlgeschlagene Prüfung: %s" +msgid "failed check: %s" +msgstr "fehlgeschlagene Prüfung: %s" -#: check.c:483 +#: check.c:424 msgid "A list of the problem columns is in the file:" msgstr "Eine Liste der Problemspalten ist in der Datei:" -#: check.c:495 check.c:961 check.c:1134 check.c:1249 check.c:1343 check.c:1471 -#: check.c:1547 check.c:1611 check.c:1684 check.c:1866 check.c:1885 -#: check.c:1954 check.c:2006 file.c:378 file.c:415 function.c:189 option.c:493 -#: version.c:79 version.c:177 +#: check.c:430 check.c:1026 check.c:1177 check.c:1260 check.c:1349 check.c:1440 +#: check.c:1572 check.c:1657 check.c:1704 check.c:1784 check.c:2089 +#: check.c:2108 check.c:2154 check.c:2207 file.c:378 file.c:415 function.c:208 +#: option.c:519 version.c:79 version.c:162 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: check.c:522 +#: check.c:472 +#, c-format +msgid "Checking data type usage" +msgstr "Prüfe Verwendung von Datentypen" + +#: check.c:526 #, c-format msgid "Data type checks failed: %s" msgstr "Datentypprüfungen fehlgeschlagen: %s" -#: check.c:563 +#: check.c:575 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -265,7 +265,7 @@ msgstr "" "Führe Konsistenzprüfungen am alten laufenden Server durch\n" "---------------------------------------------------------" -#: check.c:569 +#: check.c:581 #, c-format msgid "" "Performing Consistency Checks\n" @@ -274,7 +274,13 @@ msgstr "" "Führe Konsistenzprüfungen durch\n" "-------------------------------" -#: check.c:716 +#: check.c:745 +#, fuzzy, c-format +#| msgid "This utility can only upgrade from PostgreSQL version %s and later." +msgid "Swap mode can only upgrade clusters from PostgreSQL version %s and later." +msgstr "Dieses Programm kann nur Upgrades von PostgreSQL Version %s oder später durchführen." + +#: check.c:768 #, c-format msgid "" "\n" @@ -283,7 +289,7 @@ msgstr "" "\n" "*Cluster sind kompatibel*" -#: check.c:724 +#: check.c:776 #, c-format msgid "" "\n" @@ -295,18 +301,19 @@ msgstr "" "neuen Cluster neu mit initdb initialisieren, bevor fortgesetzt\n" "werden kann." -#: check.c:765 +#: check.c:817 #, c-format msgid "" -"Optimizer statistics are not transferred by pg_upgrade.\n" +"Some optimizer statistics may not have been transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" -" %s/vacuumdb %s--all --analyze-in-stages" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only" msgstr "" -"Optimizer-Statistiken werden von pg_upgrade nicht übertragen. Wenn Sie\n" -"den neuen Server starten, sollte Sie diesen Befehl ausführen:\n" -" %s/vacuumdb %s--all --analyze-in-stages" +"Einige Optimizer-Statistiken wurden möglicherweise von pg_upgrade\n" +"nicht übertragen. Wenn Sie den neuen Server starten, sollte Sie diesen\n" +"Befehl ausführen:\n" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only" -#: check.c:771 +#: check.c:823 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -315,7 +322,7 @@ msgstr "" "Mit diesem Skript können die Dateien des alten Clusters gelöscht werden:\n" " %s" -#: check.c:776 +#: check.c:828 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -328,57 +335,63 @@ msgstr "" "Datenverzeichnis des neuen Clusters im alten Cluster-Verzeichnis\n" "liegen. Der Inhalt des alten Clusters muss von Hand gelöscht werden." -#: check.c:788 +#: check.c:840 #, c-format msgid "Checking cluster versions" msgstr "Prüfe Cluster-Versionen" -#: check.c:800 +#: check.c:852 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "Dieses Programm kann nur Upgrades von PostgreSQL Version %s oder später durchführen." -#: check.c:805 +#: check.c:857 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "Dieses Programm kann nur Upgrades auf PostgreSQL Version %s durchführen." -#: check.c:814 +#: check.c:866 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "Dieses Programm kann keine Downgrades auf ältere Hauptversionen von PostgreSQL durchführen." -#: check.c:819 +#: check.c:871 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "Die Daten- und Programmverzeichnisse des alten Clusters stammen von verschiedenen Hauptversionen." -#: check.c:822 +#: check.c:874 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "Die Daten- und Programmverzeichnisse des neuen Clusters stammen von verschiedenen Hauptversionen." -#: check.c:837 +#: check.c:885 +#, fuzzy, c-format +#| msgid "This utility can only upgrade from PostgreSQL version %s and later." +msgid "%s option cannot be used to upgrade from PostgreSQL %s and later." +msgstr "Dieses Programm kann nur Upgrades von PostgreSQL Version %s oder später durchführen." + +#: check.c:901 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "Wenn ein laufender Server geprüft wird, müssen die alte und die neue Portnummer verschieden sein." -#: check.c:857 +#: check.c:921 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "Datenbank »%s« im neuen Cluster ist nicht leer: Relation »%s.%s« gefunden" -#: check.c:880 +#: check.c:944 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Prüfe Tablespace-Verzeichnisse des neuen Clusters" -#: check.c:891 +#: check.c:955 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "Tablespace-Verzeichnis für neuen Cluster existiert bereits: »%s«" -#: check.c:924 +#: check.c:989 #, c-format msgid "" "\n" @@ -387,7 +400,7 @@ msgstr "" "\n" "WARNUNG: das neue Datenverzeichnis sollte nicht im alten Datenverzeichnis, d.h. %s, liegen" -#: check.c:948 +#: check.c:1013 #, c-format msgid "" "\n" @@ -396,93 +409,93 @@ msgstr "" "\n" "WARNUNG: benutzerdefinierte Tablespace-Pfade sollten nicht im Datenverzeichnis, d.h. %s, liegen" -#: check.c:958 +#: check.c:1023 #, c-format msgid "Creating script to delete old cluster" msgstr "Erzeuge Skript zum Löschen des alten Clusters" -#: check.c:1012 +#: check.c:1051 #, c-format msgid "could not add execute permission to file \"%s\": %m" msgstr "konnte Datei »%s« nicht ausführbar machen: %m" -#: check.c:1032 +#: check.c:1071 #, c-format msgid "Checking database user is the install user" msgstr "Prüfe ob der Datenbankbenutzer der Installationsbenutzer ist" -#: check.c:1048 +#: check.c:1087 #, c-format msgid "database user \"%s\" is not the install user" msgstr "Datenbankbenutzer »%s« ist nicht der Installationsbenutzer" -#: check.c:1059 +#: check.c:1098 #, c-format msgid "could not determine the number of users" msgstr "konnte die Anzahl der Benutzer nicht ermitteln" -#: check.c:1067 +#: check.c:1106 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "Nur der Installationsbenutzer darf im neuen Cluster definiert sein." -#: check.c:1096 +#: check.c:1136 #, c-format msgid "Checking database connection settings" msgstr "Prüfe Verbindungseinstellungen der Datenbank" -#: check.c:1122 +#: check.c:1164 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0 darf keine Verbindungen erlauben, d.h. ihr pg_database.datallowconn muss falsch sein" -#: check.c:1148 check.c:1268 check.c:1365 check.c:1490 check.c:1566 -#: check.c:1624 check.c:1704 check.c:1898 check.c:2023 function.c:210 +#: check.c:1191 check.c:1312 check.c:1408 check.c:1536 check.c:1612 +#: check.c:1670 check.c:1753 check.c:2121 check.c:2263 function.c:229 #, c-format msgid "fatal" msgstr "fatal" -#: check.c:1149 +#: check.c:1192 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" -"pg_database.datallowconn must be true. Your installation contains\n" -"non-template0 databases with their pg_database.datallowconn set to\n" -"false. Consider allowing connection for all non-template0 databases\n" -"or drop the databases which do not allow connections. A list of\n" -"databases with the problem is in the file:\n" +"pg_database.datallowconn must be true and pg_database.datconnlimit\n" +"must not be -2. Your installation contains non-template0 databases\n" +"which cannot be connected to. Consider allowing connection for all\n" +"non-template0 databases or drop the databases which do not allow\n" +"connections. A list of databases with the problem is in the file:\n" " %s" msgstr "" "Alle Datenbanken außer template0 müssen Verbindungen erlauben,\n" -"d.h. ihr pg_database.datallowconn muss wahr sein. Ihre Installation\n" -"enthält Datenbanken außer template0, deren pg_database.datallowconn\n" -"auf falsch gesetzt ist. Sie sollten Verbindungen für alle Datenbanken\n" -"außer template0 erlauben oder die Datenbanken, die keine Verbindungen\n" -"erlauben, löschen. Eine Liste der Datenbanken mit diesem Problem ist\n" -"in der Datei:\n" +"d.h. ihr pg_database.datallowconn muss wahr sein und\n" +"pg_database.datconnlimit darf nicht -2 sein. Ihre Installation enthält\n" +"Datenbanken außer template0, zu denen nicht verbunden werden kann.\n" +"Sie sollten Verbindungen für alle Datenbanken außer template0 erlauben\n" +"oder die Datenbanken, die keine Verbindungen erlauben, löschen. Eine\n" +"Liste der Datenbanken mit diesem Problem ist in der Datei:\n" " %s" -#: check.c:1174 +#: check.c:1217 #, c-format msgid "Checking for prepared transactions" msgstr "Prüfe auf vorbereitete Transaktionen" -#: check.c:1183 +#: check.c:1226 #, c-format msgid "The source cluster contains prepared transactions" msgstr "Der alte Cluster enthält vorbereitete Transaktionen" -#: check.c:1185 +#: check.c:1228 #, c-format msgid "The target cluster contains prepared transactions" msgstr "Der neue Cluster enthält vorbereitete Transaktionen" -#: check.c:1210 +#: check.c:1288 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Prüfe auf contrib/isn mit unpassender bigint-Übergabe" -#: check.c:1269 +#: check.c:1313 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -502,12 +515,12 @@ msgstr "" "der problematischen Funktionen ist in der Datei:\n" " %s" -#: check.c:1291 +#: check.c:1393 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Prüfe auf benutzerdefinierte Postfix-Operatoren" -#: check.c:1366 +#: check.c:1409 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -522,12 +535,12 @@ msgstr "" "Liste der benutzerdefinierten Postfixoperatoren ist in der Datei:\n" " %s" -#: check.c:1390 +#: check.c:1464 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Prüfe auf inkompatible polymorphische Funktionen" -#: check.c:1491 +#: check.c:1537 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -548,12 +561,12 @@ msgstr "" "Eine Liste der problematischen Objekte ist in der Datei:\n" " %s" -#: check.c:1515 +#: check.c:1597 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Prüfe auf Tabellen mit WITH OIDS" -#: check.c:1567 +#: check.c:1613 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -568,12 +581,12 @@ msgstr "" "Eine Liste der Tabellen mit dem Problem ist in der Datei:\n" " %s" -#: check.c:1594 +#: check.c:1640 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Prüfe auf Rollen, die mit »pg_« anfangen" -#: check.c:1625 +#: check.c:1671 #, c-format msgid "" "Your installation contains roles starting with \"pg_\".\n" @@ -588,12 +601,12 @@ msgstr "" "Eine Liste der Rollen, die mit »pg_« anfangen, ist in der Datei:\n" " %s" -#: check.c:1645 +#: check.c:1725 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "Prüfe auf benutzerdefinierte Kodierungsumwandlungen" -#: check.c:1705 +#: check.c:1754 #, c-format msgid "" "Your installation contains user-defined encoding conversions.\n" @@ -612,55 +625,73 @@ msgstr "" "in der Datei:\n" " %s" -#: check.c:1744 +#: check.c:1839 +#, c-format +msgid "Checking for objects affected by Unicode update" +msgstr "Prüfe auf vom Unicode-Update betroffene Objekte" + +#: check.c:1933 version.c:121 +#, c-format +msgid "warning" +msgstr "Warnung" + +#: check.c:1934 +#, c-format +msgid "" +"Your installation contains relations that may be affected by a new version of Unicode.\n" +"A list of potentially-affected relations is in the file:\n" +" %s" +msgstr "" + +#: check.c:1970 #, c-format msgid "Checking for new cluster logical replication slots" msgstr "Prüfe logische Replikations-Slots des neuen Clusters" -#: check.c:1752 +#: check.c:1978 #, c-format msgid "could not count the number of logical replication slots" msgstr "konnte Anzahl der logischen Replikations-Slots nicht zählen" -#: check.c:1757 +#: check.c:1983 #, c-format -msgid "Expected 0 logical replication slots but found %d." -msgstr "0 logische Replikations-Slots erwartet aber %d gefunden." +msgid "expected 0 logical replication slots but found %d" +msgstr "0 logische Replikations-Slots erwartet aber %d gefunden" -#: check.c:1767 check.c:1821 +#: check.c:1993 check.c:2044 #, c-format msgid "could not determine parameter settings on new cluster" msgstr "konnte Parametereinstellung im neuen Cluster nicht ermitteln" -#: check.c:1772 +#: check.c:1998 #, c-format -msgid "\"wal_level\" must be \"logical\", but is set to \"%s\"" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" msgstr "»wal_level« muss »logical« sein, aber es ist auf »%s« gesetzt" -#: check.c:1778 +#: check.c:2004 #, c-format msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" msgstr "»max_replication_slots« (%d) muss größer als oder gleich der Anzahl der logischen Replikations-Slots (%d) im alten Cluster sein" -#: check.c:1813 +#: check.c:2036 #, c-format msgid "Checking for new cluster configuration for subscriptions" msgstr "Prüfe Konfiguration für Subskriptionen im neuen Cluster" -#: check.c:1825 +#: check.c:2048 #, c-format -msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" -msgstr "»max_replication_slots« (%d) muss größer als oder gleich der Anzahl der Subskriptionen (%d) im alten Cluster sein" +msgid "\"max_active_replication_origins\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "»max_active_replication_origins« (%d) muss größer als oder gleich der Anzahl der Subskriptionen (%d) im alten Cluster sein" -#: check.c:1847 +#: check.c:2070 #, c-format msgid "Checking for valid logical replication slots" msgstr "Prüfe auf gültige logische Replikations-Slots" -#: check.c:1899 +#: check.c:2122 #, c-format msgid "" -"Your installation contains logical replication slots that can't be upgraded.\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" "You can remove invalid slots and/or consume the pending WAL for other slots,\n" "and then restart the upgrade.\n" "A list of the problematic slots is in the file:\n" @@ -673,12 +704,12 @@ msgstr "" "Eine Liste der problematischen Slots ist in der Datei:\n" " %s" -#: check.c:1923 +#: check.c:2182 #, c-format msgid "Checking for subscription state" msgstr "Prüfe Subskriptionszustand" -#: check.c:2024 +#: check.c:2264 #, c-format msgid "" "Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" @@ -693,184 +724,190 @@ msgstr "" "Subskriptionen ist in der Datei:\n" " %s" -#: controldata.c:129 controldata.c:199 +#: controldata.c:133 controldata.c:203 #, c-format msgid "could not get control data using %s: %m" msgstr "konnte Kontrolldaten mit %s nicht ermitteln: %m" -#: controldata.c:139 +#: controldata.c:143 #, c-format msgid "%d: database cluster state problem" msgstr "%d: Problem mit dem Zustand des Clusters" -#: controldata.c:158 +#: controldata.c:162 #, 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." msgstr "Der alte Cluster wurde im Wiederherstellungsmodus heruntergefahren. Um ihn zu aktualisieren, verwenden Sie »rsync« wie in der Dokumentation beschrieben oder fahren Sie ihn im Primärmodus herunter." -#: controldata.c:160 +#: controldata.c:164 #, 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." msgstr "Der neue Cluster wurde im Wiederherstellungsmodus heruntergefahren. Um ihn zu aktualisieren, verwenden Sie »rsync« wie in der Dokumentation beschrieben oder fahren Sie ihn im Primärmodus herunter." -#: controldata.c:165 +#: controldata.c:169 #, c-format msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "Der alte Cluster wurde nicht sauber heruntergefahren, gemeldeter Status: »%s«" -#: controldata.c:167 +#: controldata.c:171 #, c-format msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "Der neue Cluster wurde nicht sauber heruntergefahren, gemeldeter Status: »%s«" -#: controldata.c:175 controldata.c:507 +#: controldata.c:179 controldata.c:530 #, c-format msgid "could not get control data using %s: %s" msgstr "konnte Kontrolldaten mit %s nicht ermitteln: %s" -#: controldata.c:181 +#: controldata.c:185 #, c-format msgid "The source cluster lacks cluster state information:" msgstr "Im alten Cluster fehlen Cluster-Zustandsinformationen:" -#: controldata.c:183 +#: controldata.c:187 #, c-format msgid "The target cluster lacks cluster state information:" msgstr "Im neuen Cluster fehlen Cluster-Zustandsinformationen:" -#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 -#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 +#: controldata.c:217 dump.c:50 exec.c:118 pg_upgrade.c:603 pg_upgrade.c:643 +#: pg_upgrade.c:992 relfilenumber.c:610 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:220 +#: controldata.c:224 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d: Problem mit pg_resetwal" -#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 -#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 -#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 -#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 -#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 -#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 -#: controldata.c:486 controldata.c:497 +#: controldata.c:234 controldata.c:244 controldata.c:255 controldata.c:266 +#: controldata.c:277 controldata.c:296 controldata.c:307 controldata.c:318 +#: controldata.c:329 controldata.c:340 controldata.c:351 controldata.c:362 +#: controldata.c:365 controldata.c:369 controldata.c:379 controldata.c:391 +#: controldata.c:402 controldata.c:413 controldata.c:424 controldata.c:435 +#: controldata.c:446 controldata.c:457 controldata.c:468 controldata.c:479 +#: controldata.c:490 controldata.c:501 controldata.c:512 controldata.c:521 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d: Problem beim Ermitteln der Kontrolldaten" -#: controldata.c:578 +#: controldata.c:618 #, c-format msgid "The source cluster lacks some required control information:" msgstr "Im alten Cluster fehlen einige notwendige Kontrollinformationen:" -#: controldata.c:581 +#: controldata.c:621 #, c-format msgid "The target cluster lacks some required control information:" msgstr "Im neuen Cluster fehlen einige notwendige Kontrollinformationen:" -#: controldata.c:584 +#: controldata.c:624 #, c-format msgid " checkpoint next XID" msgstr " Checkpoint nächste XID" -#: controldata.c:587 +#: controldata.c:627 #, c-format msgid " latest checkpoint next OID" msgstr " NextOID des letzten Checkpoints" -#: controldata.c:590 +#: controldata.c:630 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " NextMultiXactId des letzten Checkpoints" -#: controldata.c:594 +#: controldata.c:634 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " oldestMultiXid des letzten Checkpoints" -#: controldata.c:597 +#: controldata.c:637 #, c-format msgid " latest checkpoint oldestXID" msgstr " oldestXID des letzten Checkpoints" -#: controldata.c:600 +#: controldata.c:640 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " NextMultiOffset des letzten Checkpoints" -#: controldata.c:603 +#: controldata.c:643 #, c-format msgid " first WAL segment after reset" msgstr " erstes WAL-Segment nach dem Reset" -#: controldata.c:606 +#: controldata.c:646 #, c-format msgid " float8 argument passing method" msgstr " Übergabe von Float8-Argumenten" -#: controldata.c:609 +#: controldata.c:649 #, c-format msgid " maximum alignment" msgstr " maximale Ausrichtung (Alignment)" -#: controldata.c:612 +#: controldata.c:652 #, c-format msgid " block size" msgstr " Blockgröße" -#: controldata.c:615 +#: controldata.c:655 #, c-format msgid " large relation segment size" msgstr " Segmentgröße für große Relationen" -#: controldata.c:618 +#: controldata.c:658 #, c-format msgid " WAL block size" msgstr " WAL-Blockgröße" -#: controldata.c:621 +#: controldata.c:661 #, c-format msgid " WAL segment size" msgstr " WAL-Segmentgröße" -#: controldata.c:624 +#: controldata.c:664 #, c-format msgid " maximum identifier length" msgstr " maximale Bezeichnerlänge" -#: controldata.c:627 +#: controldata.c:667 #, c-format msgid " maximum number of indexed columns" msgstr " maximale Anzahl indizierter Spalten" -#: controldata.c:630 +#: controldata.c:670 #, c-format msgid " maximum TOAST chunk size" msgstr " maximale TOAST-Chunk-Größe" -#: controldata.c:634 +#: controldata.c:674 #, c-format msgid " large-object chunk size" msgstr " Large-Object-Chunk-Größe" -#: controldata.c:637 +#: controldata.c:677 #, c-format msgid " dates/times are integers?" msgstr " Datum/Zeit sind Ganzzahlen?" -#: controldata.c:641 +#: controldata.c:681 #, c-format msgid " data checksum version" msgstr " Datenprüfsummenversion" -#: controldata.c:643 +#: controldata.c:685 +#, fuzzy, c-format +#| msgid " default collation: %s\n" +msgid " default char signedness" +msgstr " Standardsortierfolge: %s\n" + +#: controldata.c:687 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "Kann ohne die benötigten Kontrollinformationen nicht fortsetzen, Programm wird beendet" -#: controldata.c:658 +#: controldata.c:702 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -879,91 +916,106 @@ msgstr "" "altes und neues Alignment in pg_controldata ist ungültig oder stimmt nicht überein\n" "Wahrscheinlich ist ein Cluster eine 32-Bit-Installation und der andere 64-Bit" -#: controldata.c:662 +#: controldata.c:706 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "alte und neue Blockgrößen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:665 +#: controldata.c:709 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "alte und neue maximale Relationssegmentgrößen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:668 +#: controldata.c:712 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "alte und neue WAL-Blockgrößen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:671 +#: controldata.c:715 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "alte und neue WAL-Segmentgrößen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:674 +#: controldata.c:718 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "alte und neue maximale Bezeichnerlängen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:677 +#: controldata.c:721 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "alte und neue Maximalzahlen indizierter Spalten von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:680 +#: controldata.c:724 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "alte und neue maximale TOAST-Chunk-Größen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:685 +#: controldata.c:729 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "alte und neue Large-Object-Chunk-Größen von pg_controldata sind ungültig oder stimmen nicht überein" -#: controldata.c:688 +#: controldata.c:732 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "alte und neue Speicherung von Datums- und Zeittypen von pg_controldata ist ungültig oder stimmt nicht überein" -#: controldata.c:701 +#: controldata.c:745 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "der alte Cluster verwendet keine Datenprüfsummen, aber der neue verwendet sie" -#: controldata.c:704 +#: controldata.c:748 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "die alte Cluster verwendet Datenprüfsummen, aber der neue nicht" -#: controldata.c:706 +#: controldata.c:750 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "Prüfsummenversionen im alten und neuen Cluster stimmen nicht überein" -#: controldata.c:717 -#, c-format -msgid "Adding \".old\" suffix to old global/pg_control" +#: controldata.c:761 +#, fuzzy, c-format +#| msgid "Adding \".old\" suffix to old global/pg_control" +msgid "Adding \".old\" suffix to old " msgstr "Füge Endung ».old« an altes global/pg_control an" -#: controldata.c:722 +#: controldata.c:766 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" -#: controldata.c:726 +#: controldata.c:771 #, c-format msgid "" "\n" "If you want to start the old cluster, you will need to remove\n" -"the \".old\" suffix from %s/global/pg_control.old.\n" +"the \".old\" suffix from %s/%s.old.\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" "started once the new cluster has been started." msgstr "" "\n" "Wenn Sie den alten Cluster starten wollen, müssen Sie die Endung\n" -"».old« von %s/global/pg_control.old entfernen. Da der »link«-Modus\n" +"».old« von %s/%s.old entfernen. Da der »link«-Modus\n" "verwendet wurde, kann der alte Cluster nicht gefahrlos gestartet\n" "werden, nachdem der neue Cluster gestartet worden ist." +#: controldata.c:778 +#, c-format +msgid "" +"\n" +"Because \"swap\" mode was used, the old cluster can no longer be\n" +"safely started." +msgstr "" + +#: controldata.c:782 file.c:455 +#, fuzzy, c-format +#| msgid "unrecognized status code" +msgid "unrecognized transfer mode" +msgstr "nicht erkannter Statuscode" + #: dump.c:20 #, c-format msgid "Creating dump of global objects" @@ -994,7 +1046,7 @@ msgstr "konnte pg_ctl-Version nicht ermitteln von %s" msgid "command too long" msgstr "Befehl zu lang" -#: exec.c:160 pg_upgrade.c:311 +#: exec.c:160 pg_upgrade.c:312 #, c-format msgid "could not open log file \"%s\": %m" msgstr "konnte Logdatei »%s« nicht öffnen: %m" @@ -1031,7 +1083,7 @@ msgstr "" "Prüfen Sie die letzten Zeilen von »%s« für den\n" "wahrscheinlichen Grund für das Scheitern." -#: exec.c:218 pg_upgrade.c:321 +#: exec.c:218 pg_upgrade.c:322 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "konnte nicht in Logdatei »%s «schreiben: %m" @@ -1156,7 +1208,7 @@ msgstr "konnte Dateibereich nicht vom alten in das neue Datenverzeichnis kopiere msgid "copy_file_range not supported on this platform" msgstr "copy_file_range wird auf dieser Plattform nicht unterstützt" -#: file.c:447 +#: file.c:449 #, c-format msgid "" "could not create hard link between old and new data directories: %m\n" @@ -1165,22 +1217,31 @@ msgstr "" "konnte Hard-Link-Verknüpfung zwischen altem und neuen Datenverzeichnis nicht erzeugen: %m\n" "Im Link-Modus müssen das alte und das neue Datenverzeichnis im selben Dateisystem liegen." -#: function.c:154 +#: file.c:452 +#, c-format +msgid "" +"could not create hard link between old and new data directories: %m\n" +"In swap mode the old and new data directories must be on the same file system." +msgstr "" +"konnte Hard-Link-Verknüpfung zwischen altem und neuen Datenverzeichnis nicht erzeugen: %m\n" +"Im Swap-Modus müssen das alte und das neue Datenverzeichnis im selben Dateisystem liegen." + +#: function.c:173 #, c-format msgid "Checking for presence of required libraries" msgstr "Prüfe das Vorhandensein benötigter Bibliotheken" -#: function.c:190 +#: function.c:209 #, c-format msgid "could not load library \"%s\": %s" msgstr "konnte Bibliothek »%s« nicht laden: %s" -#: function.c:201 +#: function.c:220 #, c-format msgid "In database: %s\n" msgstr "In Datenbank: %s\n" -#: function.c:211 +#: function.c:230 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -1196,47 +1257,47 @@ msgstr "" "Datei:\n" " %s" -#: info.c:129 +#: info.c:131 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "Relationsnamen für OID %u in Datenbank »%s« stimmen nicht überein: alten Name »%s.%s«, neuer Name »%s.%s«" -#: info.c:149 +#: info.c:151 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "Alte und neue Tabellen in Datenbank »%s« konnten nicht gepaart werden" -#: info.c:230 +#: info.c:232 #, c-format msgid " which is an index on \"%s.%s\"" msgstr ", ein Index für »%s.%s«" -#: info.c:240 +#: info.c:242 #, c-format msgid " which is an index on OID %u" msgstr ", ein Index für OID %u" -#: info.c:252 +#: info.c:254 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr ", eine TOAST-Tabelle für »%s.%s«" -#: info.c:260 +#: info.c:262 #, c-format msgid " which is the TOAST table for OID %u" msgstr ", eine TOAST-Tabelle für OID %u" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "Keine Übereinstimmung gefunden im alten Cluster für neue Relation mit OID %u in Datenbank »%s«: %s" -#: info.c:267 +#: info.c:269 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "Keine Übereinstimmung gefunden im neuen Cluster für alte Relation mit OID %u in Datenbank »%s«: %s" -#: info.c:308 +#: info.c:325 #, c-format msgid "" "\n" @@ -1245,7 +1306,7 @@ msgstr "" "\n" "Quelldatenbanken:" -#: info.c:310 +#: info.c:327 #, c-format msgid "" "\n" @@ -1254,92 +1315,97 @@ msgstr "" "\n" "Zieldatenbanken:" -#: info.c:354 +#: info.c:371 #, c-format msgid "template0 not found" msgstr "template0 nicht gefunden" -#: info.c:842 +#: info.c:817 #, c-format msgid "Database: \"%s\"" msgstr "Datenbank: »%s«" -#: info.c:855 +#: info.c:830 #, c-format msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" msgstr "relname: »%s.%s«, reloid: %u, reltblspace: »%s«" -#: info.c:869 +#: info.c:844 #, c-format -msgid "Logical replication slots within the database:" +msgid "Logical replication slots in the database:" msgstr "Logische Replikations-Slots in der Datenbank:" -#: info.c:875 +#: info.c:850 #, c-format -msgid "slot_name: \"%s\", plugin: \"%s\", two_phase: %s" -msgstr "Slot-Name: »%s«, Plugin: »%s«, two_phase: %s" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "Slot-Name: »%s«, Ausgabe-Plugin: »%s«, two_phase: %s" -#: option.c:105 +#: option.c:110 #, c-format msgid "%s: cannot be run as root" msgstr "%s: kann nicht als root ausgeführt werden" -#: option.c:172 +#: option.c:177 #, c-format msgid "invalid old port number" msgstr "ungültige alte Portnummer" -#: option.c:177 +#: option.c:182 #, c-format msgid "invalid new port number" msgstr "ungültige neue Portnummer" -#: option.c:216 +#: option.c:230 +#, c-format +msgid "invalid argument for option %s" +msgstr "ungültiges Argument für Option %s" + +#: option.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n" -#: option.c:223 +#: option.c:245 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: option.c:229 +#: option.c:251 #, c-format msgid "Running in verbose mode" msgstr "Ausführung im Verbose-Modus" -#: option.c:247 +#: option.c:269 msgid "old cluster binaries reside" msgstr "die Programmdateien des alten Clusters liegen" -#: option.c:249 +#: option.c:271 msgid "new cluster binaries reside" msgstr "die Programmdateien des neuen Clusters liegen" -#: option.c:251 +#: option.c:273 msgid "old cluster data resides" msgstr "die Daten das alten Clusters liegen" -#: option.c:253 +#: option.c:275 msgid "new cluster data resides" msgstr "die Daten des neuen Clusters liegen" -#: option.c:255 +#: option.c:277 msgid "sockets will be created" msgstr "die Sockets erzeugt werden sollen" -#: option.c:272 option.c:374 +#: option.c:294 option.c:400 #, c-format msgid "could not determine current directory" msgstr "konnte aktuelles Verzeichnis nicht ermitteln" -#: option.c:275 +#: option.c:297 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "auf Windows kann pg_upgrade nicht von innerhalb des Cluster-Datenverzeichnisses ausgeführt werden" -#: option.c:284 +#: option.c:306 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1348,12 +1414,12 @@ msgstr "" "pg_upgrade aktualisiert einen PostgreSQL-Cluster auf eine neue Hauptversion.\n" "\n" -#: option.c:285 +#: option.c:307 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: option.c:286 +#: option.c:308 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1362,17 +1428,17 @@ msgstr "" " pg_upgrade [OPTION]...\n" "\n" -#: option.c:287 +#: option.c:309 #, c-format msgid "Options:\n" msgstr "Optionen:\n" -#: option.c:288 +#: option.c:310 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINVERZ Programmverzeichnis des alten Clusters\n" -#: option.c:289 +#: option.c:311 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1381,111 +1447,128 @@ msgstr "" " -B, --new-bindir=BINVERZ Programmverzeichnis des neuen Clusters\n" " (Standard: gleiches Verzeichnis wie pg_upgrade)\n" -#: option.c:291 +#: option.c:313 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check nur Cluster prüfen, keine Daten ändern\n" -#: option.c:292 +#: option.c:314 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATENVERZ Datenverzeichnis des alten Clusters\n" -#: option.c:293 +#: option.c:315 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATENVERZ Datenverzeichnis des neuen Clusters\n" -#: option.c:294 +#: option.c:316 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs=NUM Anzahl paralleler Prozesse oder Threads\n" -#: option.c:295 +#: option.c:317 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr " -k, --link Dateien in den neuen Cluster verknüpfen statt kopieren\n" -#: option.c:296 +#: option.c:318 #, 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" -#: option.c:297 +#: option.c:319 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=OPTIONEN Serveroptionen für den alten Cluster\n" -#: option.c:298 +#: option.c:320 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=OPTIONEN Serveroptionen für den neuen Cluster\n" -#: option.c:299 +#: option.c:321 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PORT Portnummer für den alten Cluster (Standard: %d)\n" -#: option.c:300 +#: option.c:322 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT Portnummer für den neuen Cluster (Standard: %d)\n" -#: option.c:301 +#: option.c:323 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain SQL- und Logdateien bei Erfolg aufheben\n" -#: option.c:302 +#: option.c:324 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr " -s, --socketdir=VERZ Verzeichnis für Socket (Standard: aktuelles Verz.)\n" -#: option.c:303 +#: option.c:325 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=NAME Cluster-Superuser (Standard: »%s«)\n" -#: option.c:304 +#: option.c:326 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose »Verbose«-Modus einschalten\n" -#: option.c:305 +#: option.c:327 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: option.c:306 +#: option.c:328 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr " --clone Dateien in den neuen Cluster klonen statt kopieren\n" -#: option.c:307 +#: option.c:329 #, c-format msgid " --copy copy files to new cluster (default)\n" msgstr " --copy Dateien in den neuen Cluster kopieren (Voreinstellung)\n" -#: option.c:308 +#: option.c:330 #, c-format msgid " --copy-file-range copy files to new cluster with copy_file_range\n" msgstr " --copy-file-range Dateien mit copy_file_range in den neuen Cluster kopieren\n" -#: option.c:309 +#: option.c:331 +#, c-format +msgid " --no-statistics do not import statistics from old cluster\n" +msgstr " --no-statistics Statistiken vom alten Cluster nicht importieren\n" + +#: option.c:332 +#, c-format +msgid "" +" --set-char-signedness=OPTION set new cluster char signedness to \"signed\" or\n" +" \"unsigned\"\n" +msgstr "" + +#: option.c:334 +#, c-format +msgid " --swap move data directories to new cluster\n" +msgstr " --swap Datenverzeichnisse in den neuen Cluster verschieben\n" + +#: option.c:335 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHODE Methode zum Synchronisieren von Dateien auf\n" " Festplatte setzen\n" -#: option.c:310 +#: option.c:336 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: option.c:311 +#: option.c:337 #, c-format msgid "" "\n" @@ -1500,7 +1583,7 @@ msgstr "" " den Postmaster für den alten Cluster anhalten\n" " den Postmaster für den neuen Cluster anhalten\n" -#: option.c:316 +#: option.c:342 #, c-format msgid "" "\n" @@ -1517,7 +1600,7 @@ msgstr "" " das »bin«-Verzeichnis der alten Version (-b BINVERZ)\n" " das »bin«-Verzeichnis der neuen Version (-B BINVERZ)\n" -#: option.c:322 +#: option.c:348 #, c-format msgid "" "\n" @@ -1530,7 +1613,7 @@ msgstr "" " pg_upgrade -d alterCluster/data -D neuerCluster/data -b alterCluster/bin -B neuerCluster/bin\n" "oder\n" -#: option.c:327 +#: option.c:353 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1545,7 +1628,7 @@ msgstr "" " $ export PGBINNEW=neuerCluster/bin\n" " $ pg_upgrade\n" -#: option.c:333 +#: option.c:359 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1560,7 +1643,7 @@ msgstr "" " C:\\> set PGBINNEW=neuerCluster/bin\n" " C:\\> pg_upgrade\n" -#: option.c:339 +#: option.c:365 #, c-format msgid "" "\n" @@ -1569,12 +1652,12 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: option.c:340 +#: option.c:366 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: option.c:380 +#: option.c:406 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1583,32 +1666,32 @@ msgstr "" "Sie müssen das Verzeichnis angeben, wo %s.\n" "Bitte verwenden Sie die Kommandzeilenoption %s oder die Umgebungsvariable %s." -#: option.c:433 +#: option.c:459 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Suche das tatsächliche Datenverzeichnis des alten Clusters" -#: option.c:435 +#: option.c:461 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Suche das tatsächliche Datenverzeichnis des neuen Clusters" -#: option.c:448 +#: option.c:474 #, c-format msgid "could not get data directory using %s: %m" msgstr "konnte Datenverzeichnis mit %s nicht ermitteln: %m" -#: option.c:452 +#: option.c:478 #, c-format msgid "could not get data directory using %s: %s" msgstr "konnte Datenverzeichnis mit %s nicht ermitteln: %s" -#: option.c:500 +#: option.c:526 #, c-format msgid "could not read line %d from file \"%s\": %m" msgstr "konnte Zeile %d aus Datei »%s« nicht lesen: %m" -#: option.c:517 +#: option.c:543 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "vom Benutzer angegebene Portnummer %hu wurde auf %hu korrigiert" @@ -1638,12 +1721,12 @@ msgstr "Kindprozess wurde abnormal beendet: Status %d" msgid "child worker exited abnormally: %m" msgstr "Kindprozess wurde abnormal beendet: %m" -#: pg_upgrade.c:115 +#: pg_upgrade.c:111 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "konnte Zugriffsrechte von Verzeichnis »%s« nicht lesen: %m" -#: pg_upgrade.c:147 +#: pg_upgrade.c:143 #, c-format msgid "" "\n" @@ -1654,17 +1737,17 @@ msgstr "" "Führe Upgrade durch\n" "-------------------" -#: pg_upgrade.c:192 +#: pg_upgrade.c:191 #, c-format msgid "Setting next OID for new cluster" msgstr "Setze nächste OID im neuen Cluster" -#: pg_upgrade.c:216 +#: pg_upgrade.c:215 #, c-format msgid "Sync data directory to disk" msgstr "Synchronisiere Datenverzeichnis auf Festplatte" -#: pg_upgrade.c:230 +#: pg_upgrade.c:231 #, c-format msgid "" "\n" @@ -1675,23 +1758,23 @@ msgstr "" "Upgrade abgeschlossen\n" "---------------------" -#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 -#: pg_upgrade.c:308 pg_upgrade.c:319 +#: pg_upgrade.c:264 pg_upgrade.c:277 pg_upgrade.c:284 pg_upgrade.c:291 +#: pg_upgrade.c:309 pg_upgrade.c:320 #, c-format msgid "directory path for new cluster is too long" msgstr "Verzeichnispfad für neuen Cluster ist zu lang" -#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#: pg_upgrade.c:298 pg_upgrade.c:300 pg_upgrade.c:302 pg_upgrade.c:304 #, c-format msgid "could not create directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" -#: pg_upgrade.c:352 +#: pg_upgrade.c:353 #, c-format msgid "%s: could not find own program executable" msgstr "%s: konnte eigene Programmdatei nicht finden" -#: pg_upgrade.c:378 +#: pg_upgrade.c:379 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1700,7 +1783,7 @@ msgstr "" "Es läuft scheinbar ein Postmaster für den alten Cluster.\n" "Bitte beenden Sie diesen Postmaster und versuchen Sie es erneut." -#: pg_upgrade.c:391 +#: pg_upgrade.c:392 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1709,141 +1792,209 @@ msgstr "" "Es läuft scheinbar ein Postmaster für den neuen Cluster.\n" "Bitte beenden Sie diesen Postmaster und versuchen Sie es erneut." -#: pg_upgrade.c:413 +#: pg_upgrade.c:418 +#, fuzzy, c-format +#| msgid "Setting locale and encoding for new cluster" +msgid "Setting the default char signedness for new cluster" +msgstr "Setze Locale und Kodierung für neuen Cluster" + +#: pg_upgrade.c:446 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "Setze Locale und Kodierung für neuen Cluster" -#: pg_upgrade.c:489 +#: pg_upgrade.c:524 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Analysiere alle Zeilen im neuen Cluster" -#: pg_upgrade.c:502 +#: pg_upgrade.c:537 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Friere alle Zeilen im neuen Cluster ein" -#: pg_upgrade.c:522 +#: pg_upgrade.c:557 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Stelle globale Objekte im neuen Cluster wieder her" -#: pg_upgrade.c:538 +#: pg_upgrade.c:574 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "Stelle Datenbankschemas im neuen Cluster wieder her" -#: pg_upgrade.c:662 +#: pg_upgrade.c:709 #, c-format msgid "Deleting files from new %s" msgstr "Lösche Dateien aus neuem %s" -#: pg_upgrade.c:666 +#: pg_upgrade.c:713 #, c-format msgid "could not delete directory \"%s\"" msgstr "konnte Verzeichnis »%s« nicht löschen" -#: pg_upgrade.c:685 +#: pg_upgrade.c:732 #, c-format msgid "Copying old %s to new server" msgstr "Kopiere altes %s zum neuen Server" -#: pg_upgrade.c:711 +#: pg_upgrade.c:758 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Setze älteste XID im neuen Cluster" -#: pg_upgrade.c:719 +#: pg_upgrade.c:766 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "Setze nächste Transaktions-ID und -epoche im neuen Cluster" -#: pg_upgrade.c:749 +#: pg_upgrade.c:796 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "Setze nächste Multixact-ID und nächstes Offset im neuen Cluster" -#: pg_upgrade.c:773 +#: pg_upgrade.c:820 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Setze älteste Multixact-ID im neuen Cluster" -#: pg_upgrade.c:793 +#: pg_upgrade.c:840 #, c-format msgid "Resetting WAL archives" msgstr "Setze WAL-Archive zurück" -#: pg_upgrade.c:836 +#: pg_upgrade.c:883 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Setze frozenxid und minmxid im neuen Cluster" -#: pg_upgrade.c:838 +#: pg_upgrade.c:885 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Setze minmxid im neuen Cluster" -#: pg_upgrade.c:929 +#: pg_upgrade.c:976 #, c-format msgid "Restoring logical replication slots in the new cluster" msgstr "Stelle logische Replikations-Slots im neuen Cluster wieder her" -#: relfilenumber.c:35 +#: relfilenumber.c:68 +#, fuzzy, c-format +#| msgid "could not fsync file \"%s\": %m" +msgid "could not synchronize file \"%s\": %m" +msgstr "konnte Datei »%s« nicht fsyncen: %m" + +#: relfilenumber.c:114 #, c-format msgid "Cloning user relation files" msgstr "Klone Benutzertabellendateien" -#: relfilenumber.c:38 +#: relfilenumber.c:117 #, c-format msgid "Copying user relation files" msgstr "Kopiere Benutzertabellendateien" -#: relfilenumber.c:41 +#: relfilenumber.c:120 #, c-format msgid "Copying user relation files with copy_file_range" msgstr "Kopiere Benutzertabellendateien mit copy_file_range" -#: relfilenumber.c:44 +#: relfilenumber.c:123 #, c-format msgid "Linking user relation files" msgstr "Verknüpfe Benutzertabellendateien" -#: relfilenumber.c:118 +#: relfilenumber.c:126 +#, fuzzy, c-format +#| msgid "syncing data directory" +msgid "Swapping data directories" +msgstr "synchronisiere Datenverzeichnis" + +#: relfilenumber.c:200 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "alte Datenbank »%s« nicht im neuen Cluster gefunden" -#: relfilenumber.c:221 +#: relfilenumber.c:287 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" + +#: relfilenumber.c:293 relfilenumber.c:297 +#, fuzzy, c-format +#| msgid "could not create directory \"%s\": %m" +msgid "could not create directory \"%s\"" +msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" + +#: relfilenumber.c:301 relfilenumber.c:305 +#, fuzzy, c-format +#| msgid "could not rename file \"%s\" to \"%s\": %m" +msgid "could not rename \"%s\" to \"%s\"" +msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" + +#: relfilenumber.c:375 relfilenumber.c:402 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" + +#: relfilenumber.c:393 relfilenumber.c:420 +#, fuzzy, c-format +#| msgid "could not rename file \"%s\" to \"%s\": %m" +msgid "could not rename \"%s\" to \"%s\": %m" +msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" + +#: relfilenumber.c:396 relfilenumber.c:434 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "konnte Verzeichnis »%s« nicht lesen: %m" + +#: relfilenumber.c:439 +#, fuzzy, c-format +#| msgid "could not close directory \"%s\": %m" +msgid "could not synchronize directory \"%s\": %m" +msgstr "konnte Verzeichnis »%s« nicht schließen: %m" + +#: relfilenumber.c:441 +#, fuzzy, c-format +#| msgid "could not create directory \"%s\": %m" +msgid "could not synchronize parent directory of \"%s\": %m" +msgstr "konnte Verzeichnis »%s« nicht erzeugen: %m" + +#: relfilenumber.c:598 #, c-format msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" msgstr "Fehler beim Prüfen auf Existenz der Datei für »%s.%s« (»%s« nach »%s«): %m" -#: relfilenumber.c:238 +#: relfilenumber.c:615 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "konvertiere »%s« nach »%s«" -#: relfilenumber.c:246 +#: relfilenumber.c:623 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "klone »%s« nach »%s«" -#: relfilenumber.c:251 +#: relfilenumber.c:628 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "kopiere »%s« nach »%s«" -#: relfilenumber.c:256 +#: relfilenumber.c:633 #, c-format msgid "copying \"%s\" to \"%s\" with copy_file_range" msgstr "kopiere »%s« nach »%s« mit copy_file_range" -#: relfilenumber.c:261 +#: relfilenumber.c:638 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "verknüpfe »%s« nach »%s«" +#: relfilenumber.c:644 +#, c-format +msgid "should never happen" +msgstr "" + #: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" @@ -1875,7 +2026,7 @@ msgstr "konnte Versionsdatei »%s« nicht öffnen: %m" msgid "could not parse version file \"%s\"" msgstr "konnte Versionsdatei »%s« nicht interpretieren" -#: server.c:310 +#: server.c:317 #, c-format msgid "" "\n" @@ -1884,7 +2035,7 @@ msgstr "" "\n" "%s" -#: server.c:314 +#: server.c:321 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1893,7 +2044,7 @@ msgstr "" "konnte nicht mit dem Postmaster für den alten Cluster verbinden, gestartet mit dem Befehl:\n" "%s" -#: server.c:318 +#: server.c:325 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1902,22 +2053,22 @@ msgstr "" "konnte nicht mit dem Postmaster für den neuen Cluster verbinden, gestartet mit dem Befehl:\n" "%s" -#: server.c:332 +#: server.c:339 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl konnte den Quellserver nicht starten, oder Verbindung fehlgeschlagen" -#: server.c:334 +#: server.c:341 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl konnte den Zielserver nicht starten, oder Verbindung fehlgeschlagen" -#: server.c:379 +#: server.c:386 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" -#: server.c:392 +#: server.c:399 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "libpq-Umgebungsvariable %s hat einen nicht lokalen Serverwert: %s" @@ -1966,11 +2117,6 @@ msgstr "ok" msgid "Checking for hash indexes" msgstr "Prüfe auf Hash-Indexe" -#: version.c:121 -#, c-format -msgid "warning" -msgstr "Warnung" - #: version.c:123 #, c-format msgid "" @@ -2006,17 +2152,17 @@ msgstr "" "ungültigen Indexe neu zu erzeugen. Bis dahin werden diese Indexe nicht\n" "verwendet werden." -#: version.c:153 +#: version.c:187 #, c-format msgid "Checking for extension updates" msgstr "Prüfe auf Aktualisierungen von Erweiterungen" -#: version.c:200 +#: version.c:201 #, c-format msgid "notice" msgstr "Hinweis" -#: version.c:201 +#: version.c:202 #, c-format msgid "" "\n" diff --git a/src/bin/pg_upgrade/po/es.po b/src/bin/pg_upgrade/po/es.po index b5f6055b2a48f..ea5213cd854ea 100644 --- a/src/bin/pg_upgrade/po/es.po +++ b/src/bin/pg_upgrade/po/es.po @@ -1,18 +1,18 @@ # spanish message translation file for pg_upgrade # -# Copyright (c) 2017-2021, PostgreSQL Global Development Group +# Copyright (c) 2017-2024, PostgreSQL Global Development Group # # This file is distributed under the same license as the PostgreSQL package. -# Álvaro Herrera , 2017. +# Álvaro Herrera , 2017, 2024. # Carlos Chapi , 2021. # msgid "" msgstr "" -"Project-Id-Version: pg_upgrade (PostgreSQL) 16\n" +"Project-Id-Version: pg_upgrade (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:19+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" -"Last-Translator: Carlos Chapi \n" +"POT-Creation-Date: 2025-02-16 19:49+0000\n" +"PO-Revision-Date: 2024-11-16 09:10+0100\n" +"Last-Translator: Álvaro Herrera \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" "MIME-Version: 1.0\n" @@ -20,7 +20,243 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: BlackCAT 1.1\n" -#: check.c:69 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "no se pudo obtener el código de salida del subproceso: código de error %lu" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "no se pudo buscar el ID de usuario efectivo %ld: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "el usuario no existe" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "fallo en la búsqueda de nombre de usuario: código de error %lu" + +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "Verificando tipos compuestos definidos por el sistema en tablas de usuario" + +#: check.c:118 +msgid "" +"Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene tipos compuestos definidos por el sistema en\n" +"tablas de usuario. Los OIDs de estos tipos no son estables entre diferentes\n" +"versiones de PostgreSQL, por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "Verificando datos de usuario de tipo «line» incompatible" + +#: check.c:137 +msgid "" +"Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo de dato «line» en tablas de usuario. Este\n" +"tipo de dato cambió su formato interno y de entrada/salida entre las\n" +"versiones de sus clústers antiguo y nuevo, por lo que este clúster no puede\n" +"actualmente ser actualizado. Puede eliminar las columnas problemáticas y\n" +"reiniciar la actualización.\n" + +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "Verificando tipos de datos reg* en datos de usuario" + +#: check.c:181 +msgid "" +"Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene uno de los tipos reg* en tablas de usuario. Estos tipos\n" +"de dato hacen referencia a OIDs de sistema que no son preservados por pg_upgrade,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "Verificando datos de usuario de tipo «aclitem» incompatible" + +#: check.c:198 +msgid "" +"Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «aclitem» en tablas de usuario.\n" +"El formato interno de «aclitem» cambió en PostgreSQL versión 16,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "Verificando columnas de usuario del tipo no válido «unknown»" + +#: check.c:222 +msgid "" +"Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «unknown» en tablas de usuario.\n" +"Este tipo ya no es permitido en tablas,\n" +"por lo que este clúster no puede ser actualizado. Puede\n" +"eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "Verificando columnas de usuario del tipo «sql_identifier»" + +#: check.c:244 +msgid "" +"Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo de dato «sql_identifier» en tablas de usuario.\n" +"El formato en disco para este tipo de dato ha cambiado, por lo que\n" +"este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "Verificando datos de usuario de tipo «jsonb» incompatible" + +#: check.c:260 +msgid "" +"Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «jsonb» en tablas de usuario.\n" +"El formato interno de «jsonb» cambió durante 9.4 beta,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "Verificando tipo de datos «abstime» eliminado en tablas de usuario" + +#: check.c:277 +msgid "" +"Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «abstime» en tablas de usuario.\n" +"El tipo «abstime» fue eliminado en la versión 12 de PostgreSQL,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas, o cambiarlas a otro\n" +"tipo de dato, y reiniciar la actualización.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "Verificando tipo de datos «reltime» eliminado en tablas de usuario" + +#: check.c:290 +msgid "" +"Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «reltime» en tablas de usuario.\n" +"El tipo «reltime» fue eliminado en la versión 12 de PostgreSQL,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas, o cambiarlas a otro\n" +"tipo de dato, y reiniciar la actualización.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "Verificando tipo de datos «tinterval» eliminado en tablas de usuario" + +#: check.c:303 +msgid "" +"Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Su instalación contiene el tipo «tinterval» en tablas de usuario.\n" +"El tipo «tinterval» fue eliminado en la versión 12 de PostgreSQL,\n" +"por lo que este clúster no puede ser actualizado.\n" +"Puede eliminar las columnas problemáticas, o cambiarlas a otro\n" +"tipo de dato, y reiniciar la actualización.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "Verificando el uso de tipos de datos" + +#: check.c:480 +#, c-format +msgid "failed check: %s" +msgstr "falló la comprobación: %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "Una lista de las columnas problemáticas está en el archivo:" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +# FIXME this should probably use plural msgfmt +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "Verificaciones de tipos de datos fallidas: %s" + +#: check.c:563 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -29,7 +265,7 @@ msgstr "" "Verificando Consistencia en Vivo en el Servidor Antiguo\n" "-------------------------------------------------------" -#: check.c:75 +#: check.c:569 #, c-format msgid "" "Performing Consistency Checks\n" @@ -38,7 +274,7 @@ msgstr "" "Verificando Consistencia\n" "------------------------" -#: check.c:221 +#: check.c:718 #, c-format msgid "" "\n" @@ -47,7 +283,7 @@ msgstr "" "\n" "*Los clústers son compatibles*" -#: check.c:229 +#: check.c:726 #, c-format msgid "" "\n" @@ -58,7 +294,7 @@ msgstr "" "Si pg_upgrade falla a partir de este punto, deberá re-ejecutar initdb\n" "en el clúster nuevo antes de continuar." -#: check.c:270 +#: check.c:767 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade.\n" @@ -69,7 +305,7 @@ msgstr "" "Una vez que inicie el servidor nuevo, considere ejecutar:\n" " %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:276 +#: check.c:773 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -78,7 +314,7 @@ msgstr "" "Ejecutando este script se borrarán los archivos de datos del servidor antiguo:\n" " %s" -#: check.c:281 +#: check.c:778 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -91,57 +327,57 @@ msgstr "" "o el directorio de datos del servidor nuevo. El contenido del servidor\n" "antiguo debe ser borrado manualmente." -#: check.c:293 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "Verificando las versiones de los clústers" -#: check.c:305 +#: check.c:802 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "Este programa sólo puede actualizar desde PostgreSQL versión %s y posterior." -#: check.c:310 +#: check.c:807 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "Este programa sólo puede actualizar a PostgreSQL versión %s." -#: check.c:319 +#: check.c:816 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "Este programa no puede usarse para volver a versiones anteriores de PostgreSQL." -#: check.c:324 +#: check.c:821 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "El directorio de datos antiguo y el directorio de binarios antiguo son de versiones diferentes." -#: check.c:327 +#: check.c:824 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "El directorio de datos nuevo y el directorio de binarios nuevo son de versiones diferentes." -#: check.c:342 +#: check.c:839 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "Al verificar servidores en caliente, los números de port antiguo y nuevo deben ser diferentes." -#: check.c:362 +#: check.c:859 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "La base de datos «%s» del clúster nuevo no está vacía: se encontró la relación «%s.%s»" -#: check.c:385 +#: check.c:882 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Verificando los directorios de tablespaces para el nuevo clúster" -#: check.c:396 +#: check.c:893 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "directorio de tablespace para el nuevo clúster ya existe: «%s»" -#: check.c:429 +#: check.c:926 #, c-format msgid "" "\n" @@ -151,7 +387,7 @@ msgstr "" "ADVERTENCIA: el directorio de datos nuevo no debería estar dentro del directorio antiguo,\n" "esto es, %s" -#: check.c:453 +#: check.c:950 #, c-format msgid "" "\n" @@ -160,61 +396,53 @@ msgstr "" "\n" "ADVERTENCIA: las ubicaciones de tablespaces definidos por el usuario no deberían estar dentro del directorio de datos, esto es, %s" -#: check.c:463 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "Creando un script para borrar el clúster antiguo" -#: check.c:466 check.c:639 check.c:755 check.c:850 check.c:979 check.c:1056 -#: check.c:1299 check.c:1373 file.c:339 function.c:163 option.c:476 -#: version.c:116 version.c:292 version.c:426 +#: check.c:1014 #, c-format -msgid "could not open file \"%s\": %s" -msgstr "no se pudo abrir el archivo «%s»: %s" +msgid "could not add execute permission to file \"%s\": %m" +msgstr "no se pudo agregar permisos de ejecución al archivo «%s»: %m" -#: check.c:517 -#, c-format -msgid "could not add execute permission to file \"%s\": %s" -msgstr "no se pudo agregar permisos de ejecución al archivo «%s»: %s" - -#: check.c:537 +#: check.c:1034 #, c-format msgid "Checking database user is the install user" msgstr "Verificando que el usuario de base de datos es el usuario de instalación" -#: check.c:553 +#: check.c:1050 #, c-format msgid "database user \"%s\" is not the install user" msgstr "el usuario de base de datos «%s» no es el usuario de instalación" -#: check.c:564 +#: check.c:1061 #, c-format msgid "could not determine the number of users" msgstr "no se pudo determinar el número de usuarios" -#: check.c:572 +#: check.c:1069 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "Sólo el usuario de instalación puede estar definido en el nuevo clúster." -#: check.c:601 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "Verificando los parámetros de conexión de bases de datos" -#: check.c:627 +#: check.c:1124 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0 no debe permitir conexiones, es decir su pg_database.datallowconn debe ser «false»" -#: check.c:654 check.c:775 check.c:873 check.c:999 check.c:1076 check.c:1135 -#: check.c:1196 check.c:1224 check.c:1254 check.c:1313 check.c:1394 -#: function.c:185 version.c:192 version.c:232 version.c:378 +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 #, c-format msgid "fatal" msgstr "fatal" -#: check.c:655 +#: check.c:1151 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" @@ -233,27 +461,27 @@ msgstr "" "conexión. Un listado de las bases de datos con el problema se encuentra en:\n" " %s" -#: check.c:680 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "Verificando transacciones preparadas" -#: check.c:689 +#: check.c:1185 #, c-format msgid "The source cluster contains prepared transactions" msgstr "El clúster de origen contiene transacciones preparadas" -#: check.c:691 +#: check.c:1187 #, c-format msgid "The target cluster contains prepared transactions" msgstr "El clúster de destino contiene transacciones preparadas" -#: check.c:716 +#: check.c:1212 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Verificando contrib/isn con discordancia en mecanismo de paso de bigint" -#: check.c:776 +#: check.c:1271 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -272,12 +500,12 @@ msgstr "" "Un listado de funciones problemáticas está en el archivo:\n" " %s" -#: check.c:798 +#: check.c:1293 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Verificando operadores postfix definidos por el usuario" -#: check.c:874 +#: check.c:1368 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -292,12 +520,12 @@ msgstr "" "Una lista de operadores postfix definidos por el usuario aparece en el archivo:\n" " %s" -#: check.c:898 +#: check.c:1392 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Verificando funciones polimórficas incompatibles" -#: check.c:1000 +#: check.c:1493 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -316,12 +544,12 @@ msgstr "" "«anycompatible». Una lista de los objetos problemáticos está en el archivo:\n" " %s" -#: check.c:1024 +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Verificando tablas WITH OIDS" -#: check.c:1077 +#: check.c:1569 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -336,149 +564,132 @@ msgstr "" "Una lista de tablas con este problema aparece en el archivo:\n" " %s" -#: check.c:1105 +#: check.c:1596 #, c-format -msgid "Checking for system-defined composite types in user tables" -msgstr "Verificando tipos compuestos definidos por el sistema en tablas de usuario" +msgid "Checking for roles starting with \"pg_\"" +msgstr "Verificando roles que empiecen con «pg_»" -#: check.c:1136 +#: check.c:1627 #, 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" +"Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" " %s" msgstr "" -"Su instalación contiene uno o varios tipos compuestos definidos por el sistema en\n" -"tablas de usuario. Los OIDs de estos tipos no son estables entre diferentes\n" -"versiones de PostgreSQL, por lo que este clúster no puede ser actualizado.\n" -"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" -"Un listado de las columnas problemáticas está en el archivo:\n" +"Su instalación contiene nombres de rol que comienzan con «pg_».\n" +"«pg_» es un prefijo reservado para roles de sistema. El clúster\n" +"no puede ser actualizado hasta que esos roles hayan sido renombrados.\n" +"Un listado de los roles que empiezan con «pg_» está en el archivo:\n" " %s" -#: check.c:1164 +#: check.c:1647 #, c-format -msgid "Checking for reg* data types in user tables" -msgstr "Verificando tipos de datos reg* en datos de usuario" +msgid "Checking for user-defined encoding conversions" +msgstr "Verificando conversiones de codificación definidas por el usuario" -#: check.c:1197 +#: check.c:1707 #, c-format msgid "" -"Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, 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" +"Your installation contains user-defined encoding conversions.\n" +"The conversion function parameters changed in PostgreSQL version 14\n" +"so this cluster cannot currently be upgraded. You can remove the\n" +"encoding conversions in the old cluster and restart the upgrade.\n" +"A list of user-defined encoding conversions is in the file:\n" " %s" msgstr "" -"Su instalación contiene uno de los tipos reg* en tablas de usuario. Estos tipos\n" -"de dato hacen referencia a OIDs de sistema que no son preservados por pg_upgrade,\n" -"por lo que este clúster no puede ser actualizado.\n" -"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" -"Un listado de las columnas problemáticas está en el archivo:\n" +"Su instalación contiene conversiones de codificación definidas por el usuario.\n" +"Los parámetros de la función de conversión cambiaron en PostgreSQL 14\n" +"por lo que este clúster no puede ser actualizado. Puede eliminar\n" +"las conversiones de codificación en el clúster antiguo y reiniciar la actualización.\n" +"Un listado de las conversiones de codificación definidas por el usuario está en el archivo:\n" " %s" -#: check.c:1218 +#: check.c:1746 #, c-format -#| msgid "Checking for incompatible aclitem data type in user tables" -msgid "Checking for incompatible \"aclitem\" data type in user tables" -msgstr "Verificando datos de usuario de tipo «aclitem» incompatible" +msgid "Checking for new cluster logical replication slots" +msgstr "Verificando slots de replicación lógica en el clúster nuevo" -#: check.c:1225 +#: check.c:1754 #, c-format -msgid "" -"Your installation contains the \"aclitem\" data type in user tables.\n" -"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" -"so this cluster cannot currently be upgraded. You can drop the\n" -"problem columns and restart the upgrade. A list of the problem\n" -"columns is in the file:\n" -" %s" -msgstr "" -"Su instalación contiene el tipo «jsonb» en tablas de usuario.\n" -"El formato interno de «jsonb» cambió durante 9.4 beta,\n" -"por lo que este clúster no puede ser actualizado.\n" -"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" -"Un listado de las columnas problemáticas está en el archivo:\n" -" %s" +msgid "could not count the number of logical replication slots" +msgstr "no se pudo contar el número de slots de replicación lógica" -#: check.c:1246 +#: check.c:1759 #, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "Verificando datos de usuario en tipo «jsonb» incompatible" +msgid "expected 0 logical replication slots but found %d" +msgstr "se esperaban 0 slots de replicación lógica pero se encontraron %d" -#: check.c:1255 +#: check.c:1769 check.c:1820 #, c-format -msgid "" -"Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"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" -msgstr "" -"Su instalación contiene el tipo «jsonb» en tablas de usuario.\n" -"El formato interno de «jsonb» cambió durante 9.4 beta,\n" -"por lo que este clúster no puede ser actualizado.\n" -"Puede eliminar las columnas problemáticas y reiniciar la actualización.\n" -"Un listado de las columnas problemáticas está en el archivo:\n" -" %s" +msgid "could not determine parameter settings on new cluster" +msgstr "no se pudo determinar el valor de los parámetros en el clúster nuevo" -#: check.c:1282 +#: check.c:1774 #, c-format -msgid "Checking for roles starting with \"pg_\"" -msgstr "Verificando roles que empiecen con «pg_»" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "«wal_level» debe ser «logical», pero está definido a «%s»" + +#: check.c:1780 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" +msgstr "«max_replicacion_slots» (%d) debe ser mayor o igual al número de slots de replicación lógica en el cluster antiguo (%d)" + +#: check.c:1812 +#, c-format +msgid "Checking for new cluster configuration for subscriptions" +msgstr "Verificando configuraciones del clúster nuevo para suscripciones" -#: check.c:1314 +#: check.c:1824 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "«max_replication_slots» (%d) debe ser mayor o igual al número de suscripciones en el clúster antiguo (%d)" + +#: check.c:1846 +#, c-format +msgid "Checking for valid logical replication slots" +msgstr "Verificando los slots de replicación lógica válidos" + +#: check.c:1898 #, c-format -#| msgid "" -#| "Your installation contains roles starting with \"pg_\".\n" -#| "\"pg_\" is a reserved prefix for system roles, the cluster\n" -#| "cannot be upgraded until these roles are renamed.\n" -#| "A list of roles starting with \"pg_\" is in the file:\n" -#| " %s" msgid "" -"Your installation contains roles starting with \"pg_\".\n" -"\"pg_\" is a reserved prefix for system roles. The cluster\n" -"cannot be upgraded until these roles are renamed.\n" -"A list of roles starting with \"pg_\" is in the file:\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" " %s" msgstr "" -"Su instalación contiene nombres de rol que comienzan con «pg_».\n" -"«pg_» es un prefijo reservado para roles de sistema. El clúster\n" -"no puede ser actualizado hasta que esos roles hayan sido renombrados.\n" -"Un listado de los roles que empiezan con «pg_» está en el archivo:\n" +"Su instalación contiene slots de replicación lógica que no pueden ser actualizados.\n" +"Puede eliminar slots inválidos y/o consumir el WAL pendiente en los otros slots,\n" +"y reiniciar la actualización.\n" +"Un listado de los slots problemáticos está en el archivo:\n" " %s" -#: check.c:1334 +#: check.c:1922 #, c-format -msgid "Checking for user-defined encoding conversions" -msgstr "Verificando conversiones de codificación definidas por el usuario" +msgid "Checking for subscription state" +msgstr "Verificando el estado de suscripción" -#: check.c:1395 +#: check.c:2023 #, c-format msgid "" -"Your installation contains user-defined encoding conversions.\n" -"The conversion function parameters changed in PostgreSQL version 14\n" -"so this cluster cannot currently be upgraded. You can remove the\n" -"encoding conversions in the old cluster and restart the upgrade.\n" -"A list of user-defined encoding conversions is in the file:\n" +"Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" " %s" msgstr "" -"Su instalación contiene conversiones de codificación definidas por el usuario.\n" -"Los parámetros de la función de conversión cambiaron en PostgreSQL 14\n" -"por lo que este clúster no puede ser actualizado. Puede eliminar\n" -"las conversiones de codificación en el clúster antiguo y reiniciar la actualización.\n" -"Un listado de las conversiones de codificación definidas por el usuario está en el archivo:\n" +"Su instalación contiene suscripciones sin origen o que tiene relaciones que no están en estado i (inicializar) o r (listo).\n" +"Puede permitir que la sincronización inicial termine para todas las relaciones y luego reiniciar la actualización.\n" +"Una lista de las suscripciones problemáticas está en el archivo:\n" " %s" -#: controldata.c:129 controldata.c:175 controldata.c:199 controldata.c:508 +#: controldata.c:129 controldata.c:199 #, c-format -msgid "could not get control data using %s: %s" -msgstr "no se pudo obtener datos de control usando %s: %s" +msgid "could not get control data using %s: %m" +msgstr "no se pudo obtener datos de control usando %s: %m" -#: controldata.c:140 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem" msgstr "%d: problema de estado del clúster" @@ -495,13 +706,18 @@ msgstr "El clúster de destino fue apagado mientras estaba en modo de recuperaci #: controldata.c:165 #, c-format -msgid "The source cluster was not shut down cleanly." -msgstr "El clúster de origen no fue apagado limpiamente." +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "El clúster de origen no fue apagado limpiamente, el estado fue reportado como: «%s»" #: controldata.c:167 #, c-format -msgid "The target cluster was not shut down cleanly." -msgstr "El clúster de destino no fue apagado limpiamente." +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "El clúster de destino no fue apagado limpiamente, el estado fue reportado como: «%s»" + +#: controldata.c:175 controldata.c:507 +#, c-format +msgid "could not get control data using %s: %s" +msgstr "no se pudo obtener datos de control usando %s: %s" #: controldata.c:181 #, c-format @@ -513,139 +729,139 @@ msgstr "Al clúster de origen le falta información de estado:" msgid "The target cluster lacks cluster state information:" msgstr "Al cluster de destino le falta información de estado:" -#: controldata.c:214 dump.c:50 exec.c:119 pg_upgrade.c:517 pg_upgrade.c:554 -#: relfilenumber.c:231 server.c:34 util.c:337 +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:221 +#: controldata.c:220 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d: problema en pg_resetwal" -#: controldata.c:231 controldata.c:241 controldata.c:252 controldata.c:263 -#: controldata.c:274 controldata.c:293 controldata.c:304 controldata.c:315 -#: controldata.c:326 controldata.c:337 controldata.c:348 controldata.c:359 -#: controldata.c:362 controldata.c:366 controldata.c:376 controldata.c:388 -#: controldata.c:399 controldata.c:410 controldata.c:421 controldata.c:432 -#: controldata.c:443 controldata.c:454 controldata.c:465 controldata.c:476 -#: controldata.c:487 controldata.c:498 +#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d: problema de extracción de controldata" -#: controldata.c:579 +#: controldata.c:578 #, c-format msgid "The source cluster lacks some required control information:" msgstr "Al clúster de origen le falta información de control requerida:" -#: controldata.c:582 +#: controldata.c:581 #, c-format msgid "The target cluster lacks some required control information:" msgstr "Al clúster de destino le falta información de control requerida:" -#: controldata.c:585 +#: controldata.c:584 #, c-format msgid " checkpoint next XID" msgstr " siguiente XID del último checkpoint" -#: controldata.c:588 +#: controldata.c:587 #, c-format msgid " latest checkpoint next OID" msgstr " siguiente OID del último checkpoint" -#: controldata.c:591 +#: controldata.c:590 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " siguiente MultiXactId del último checkpoint" -#: controldata.c:595 +#: controldata.c:594 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " MultiXactId más antiguo del último checkpoint" -#: controldata.c:598 +#: controldata.c:597 #, c-format msgid " latest checkpoint oldestXID" msgstr " XID más antiguo del último checkpoint" -#: controldata.c:601 +#: controldata.c:600 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " siguiente MultiXactOffset del siguiente checkpoint" -#: controldata.c:604 +#: controldata.c:603 #, c-format msgid " first WAL segment after reset" msgstr " primer segmento de WAL después del reinicio" -#: controldata.c:607 +#: controldata.c:606 #, c-format msgid " float8 argument passing method" msgstr " método de paso de argumentos float8" -#: controldata.c:610 +#: controldata.c:609 #, c-format msgid " maximum alignment" msgstr " alineamiento máximo" -#: controldata.c:613 +#: controldata.c:612 #, c-format msgid " block size" msgstr " tamaño de bloques" -#: controldata.c:616 +#: controldata.c:615 #, c-format msgid " large relation segment size" msgstr " tamaño de segmento de relación grande" -#: controldata.c:619 +#: controldata.c:618 #, c-format msgid " WAL block size" msgstr " tamaño de bloque de WAL" -#: controldata.c:622 +#: controldata.c:621 #, c-format msgid " WAL segment size" msgstr " tamaño de segmento de WAL" -#: controldata.c:625 +#: controldata.c:624 #, c-format msgid " maximum identifier length" msgstr " máximo largo de identificadores" -#: controldata.c:628 +#: controldata.c:627 #, c-format msgid " maximum number of indexed columns" msgstr " máximo número de columnas indexadas" -#: controldata.c:631 +#: controldata.c:630 #, c-format msgid " maximum TOAST chunk size" msgstr " tamaño máximo de trozos TOAST" -#: controldata.c:635 +#: controldata.c:634 #, c-format msgid " large-object chunk size" msgstr " tamaño de trozos de objetos grandes" -#: controldata.c:638 +#: controldata.c:637 #, c-format msgid " dates/times are integers?" msgstr " fechas/horas son enteros?" -#: controldata.c:642 +#: controldata.c:641 #, c-format msgid " data checksum version" msgstr " versión del checksum de datos" -#: controldata.c:644 +#: controldata.c:643 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "No se puede continuar sin la información de control requerida. Terminando" -#: controldata.c:659 +#: controldata.c:658 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -654,77 +870,77 @@ msgstr "" "Alineamientos de pg_controldata antiguo y nuevo no son válidos o no coinciden.\n" "Seguramente un clúster es 32-bit y el otro es 64-bit" -#: controldata.c:663 +#: controldata.c:662 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "Los tamaños de bloque antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:666 +#: controldata.c:665 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "El tamaño máximo de segmento de relación antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:669 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "El tamaño de bloques de WAL antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:672 +#: controldata.c:671 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "El tamaño de segmentos de WAL antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:675 +#: controldata.c:674 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "Los máximos largos de identificador antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:678 +#: controldata.c:677 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "La cantidad máxima de columnas indexadas antigua y nueva no son válidos o no coinciden" -#: controldata.c:681 +#: controldata.c:680 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "Los máximos de trozos TOAST antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:686 +#: controldata.c:685 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "Los tamaños de trozos de objetos grandes antiguo y nuevo no son válidos o no coinciden" -#: controldata.c:689 +#: controldata.c:688 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "Los tipos de almacenamiento de fecha/hora antiguo y nuevo no coinciden" -#: controldata.c:702 +#: controldata.c:701 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "El clúster antiguo no usa checksums de datos pero el nuevo sí" -#: controldata.c:705 +#: controldata.c:704 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "El clúster antiguo usa checksums de datos pero el nuevo no" -#: controldata.c:707 +#: controldata.c:706 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "Las versiones de checksum de datos antigua y nueva no coinciden" -#: controldata.c:718 +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Agregando el sufijo «.old» a global/pg_control" -#: controldata.c:723 +#: controldata.c:722 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" -#: controldata.c:727 +#: controldata.c:726 #, c-format msgid "" "\n" @@ -749,27 +965,32 @@ msgstr "Creando el volcado de objetos globales" msgid "Creating dump of database schemas" msgstr "Creando el volcado de esquemas de bases de datos" -#: exec.c:47 exec.c:52 +#: exec.c:47 +#, c-format +msgid "could not get pg_ctl version data using %s: %m" +msgstr "no se pudo obtener datos de versión de pg_ctl usando %s: %m" + +#: exec.c:51 #, c-format msgid "could not get pg_ctl version data using %s: %s" msgstr "no se pudo obtener datos de versión de pg_ctl usando %s: %s" -#: exec.c:56 +#: exec.c:55 #, c-format msgid "could not get pg_ctl version output from %s" msgstr "no se pudo obtener la salida de versión de pg_ctl de %s" -#: exec.c:113 exec.c:117 +#: exec.c:112 exec.c:116 #, c-format msgid "command too long" msgstr "orden demasiado larga" -#: exec.c:161 pg_upgrade.c:286 +#: exec.c:160 pg_upgrade.c:311 #, c-format msgid "could not open log file \"%s\": %m" msgstr "no se pudo abrir el archivo de registro «%s»: %m" -#: exec.c:193 +#: exec.c:192 #, c-format msgid "" "\n" @@ -778,12 +999,12 @@ msgstr "" "\n" "*falló*" -#: exec.c:196 +#: exec.c:195 #, c-format msgid "There were problems executing \"%s\"" msgstr "Hubo problemas ejecutando «%s»" -#: exec.c:199 +#: exec.c:198 #, c-format msgid "" "Consult the last few lines of \"%s\" or \"%s\" for\n" @@ -792,7 +1013,7 @@ msgstr "" "Consulte las últimas línea de «%s» o «%s» para\n" "saber la causa probable de la falla." -#: exec.c:204 +#: exec.c:203 #, c-format msgid "" "Consult the last few lines of \"%s\" for\n" @@ -801,141 +1022,156 @@ msgstr "" "Consulte las últimas líneas de «%s» para saber\n" "la causa probable de la falla." -#: exec.c:219 pg_upgrade.c:296 +#: exec.c:218 pg_upgrade.c:321 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "no se pudo escribir al archivo de log «%s»" -#: exec.c:245 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s" -msgstr "no se pudo abrir el archivo «%s» para lectura: %s" +msgid "could not open file \"%s\" for reading: %m" +msgstr "no se pudo abrir archivo «%s» para lectura: %m" -#: exec.c:272 +#: exec.c:270 #, c-format msgid "You must have read and write access in the current directory." msgstr "Debe tener privilegios de lectura y escritura en el directorio actual." -#: exec.c:325 exec.c:391 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s" -msgstr "la comprobación de «%s» falló: %s" +msgid "check for \"%s\" failed: %m" +msgstr "la comprobación de «%s» falló: %m" -#: exec.c:328 exec.c:394 +#: exec.c:326 exec.c:392 #, c-format msgid "\"%s\" is not a directory" msgstr "«%s» no es un directorio" -#: exec.c:441 -#, c-format -msgid "check for \"%s\" failed: %m" -msgstr "la comprobación de «%s» falló: %m" - -#: exec.c:446 +#: exec.c:444 #, c-format msgid "check for \"%s\" failed: cannot execute" msgstr "La comprobación de «%s» falló: no se puede ejecutar" -#: exec.c:456 +#: exec.c:454 #, c-format msgid "check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" msgstr "La comprobación de «%s» falló: versión incorrecta: se encontró «%s», se esperaba «%s»" -#: file.c:43 file.c:64 +#: file.c:44 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "error mientras se clonaba la relación «%s.%s» («%s» a «%s»): %s" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "error mientras se clonaba la relación «%s.%s» («%s» a «%s»): %m" + +#: file.c:51 +#, c-format +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "error mientras se clonaba la relación «%s.%s»: no se pudo abrir el archivo «%s»: %m" -#: file.c:50 +#: file.c:56 #, c-format -msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "error mientras se clonaba la relación «%s.%s»: no se pudo abrir el archivo «%s»: %s" +msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "error mientras se clonaba la relación «%s.%s»: no se pudo crear el archivo «%s»: %m" -#: file.c:55 +#: file.c:65 #, c-format -msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "error mientras se clonaba la relación «%s.%s»: no se pudo crear el archivo «%s»: %s" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "error mientras se clonaba la relación «%s.%s» («%s» a «%s»): %s" -#: file.c:90 file.c:193 +#: file.c:91 file.c:160 file.c:233 #, c-format -msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo leer el archivo «%s»: %s" +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo abrir el archivo «%s»: %m" -#: file.c:95 file.c:202 +#: file.c:96 file.c:165 file.c:242 #, c-format -msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo crear el archivo «%s»: %s" +msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo crear el archivo «%s»: %m" -#: file.c:109 file.c:226 +#: file.c:110 file.c:266 #, c-format -msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %s" -msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo leer el archivo «%s»: %s" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo leer el archivo «%s»: %m" -#: file.c:121 file.c:304 +#: file.c:122 file.c:344 #, c-format -msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %s" -msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo escribir el archivo «%s»: %s" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo escribir el archivo «%s»: %m" -#: file.c:135 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "error mientras se copiaba la relación «%s.%s» («%s» a «%s»): %s" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "error mientras se copiaba la relación «%s.%s» («%s» a «%s»): %m" -#: file.c:154 +#: file.c:172 #, c-format -msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "error mientras se creaba el link para la relación «%s.%s» («%s» a «%s»): %s" +msgid "error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo copiar el rango desde «%s» a «%s»: %m" -#: file.c:197 +#: file.c:194 #, c-format -msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %s" -msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo hacer stat a «%s»: %s" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "error mientras se creaba el link para la relación «%s.%s» («%s» a «%s»): %m" -#: file.c:229 +#: file.c:237 +#, c-format +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" +msgstr "error mientras se copiaba la relación «%s.%s»: no se pudo hacer stat a «%s»: %m" + +#: file.c:269 #, c-format msgid "error while copying relation \"%s.%s\": partial page found in file \"%s\"" msgstr "error mientras se copiaba la relación «%s.%s»: se encontró una página parcial en el archivo «%s»" -#: file.c:331 file.c:348 +#: file.c:371 file.c:387 #, c-format -msgid "could not clone file between old and new data directories: %s" -msgstr "no se pudo clonar el archivo entre los directorios viejo y nuevo: %s" +msgid "could not clone file between old and new data directories: %m" +msgstr "no se pudo clonar el archivo entre los directorios viejo y nuevo: %m" -#: file.c:344 +#: file.c:383 file.c:420 #, c-format -msgid "could not create file \"%s\": %s" -msgstr "no se pudo crear el archivo «%s»: %s" +msgid "could not create file \"%s\": %m" +msgstr "no se pudo crear archivo «%s»: %m" -#: file.c:355 +#: file.c:393 #, c-format msgid "file cloning not supported on this platform" msgstr "el clonado de archivos no está soportado en esta plataforma" -#: file.c:372 +#: file.c:424 +#, c-format +msgid "could not copy file range between old and new data directories: %m" +msgstr "no se pudo clonar el archivo entre los directorios viejo y nuevo: %m" + +#: file.c:430 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range no está soportado en esta plataforma" + +#: file.c:447 #, c-format msgid "" -"could not create hard link between old and new data directories: %s\n" +"could not create hard link between old and new data directories: %m\n" "In link mode the old and new data directories must be on the same file system." msgstr "" -"No se pudo crear un link duro entre los directorios de datos nuevo y antiguo: %s\n" +"No se pudo crear un link duro entre los directorios de datos nuevo y antiguo: %m\n" "En modo link los directorios de dato nuevo y antiguo deben estar en el mismo sistema de archivos." -#: function.c:128 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "Verificando la presencia de las bibliotecas requeridas" -#: function.c:165 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "no se pudo cargar la biblioteca «%s»: %s" -#: function.c:176 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "En la base de datos: %s\n" -#: function.c:186 +#: function.c:211 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -950,51 +1186,51 @@ msgstr "" "de las bibliotecas problemáticas está en el archivo:\n" " %s" -#: info.c:126 +#: info.c:128 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "Los nombres de relación para OID %u en la base de datos «%s» no coinciden: nombre antiguo «%s.%s», nombre nuevo «%s.%s»" -#: info.c:146 +#: info.c:148 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "No hubo coincidencia en las tablas nueva y antigua en la base de datos «%s»" -#: info.c:227 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " que es un índice en «%s.%s»" -#: info.c:237 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " que es un índice en el OID %u" -#: info.c:249 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " que es la tabla TOAST para «%s.%s»" -#: info.c:257 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " que es la tabla TOAST para el OID %u" -#: info.c:261 +#: info.c:263 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "" "No se encontró equivalente en el clúster antiguo para la relación nueva con OID %u\n" "en la base de datos «%s»: %s" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "" "No se encontró equivalente en el clúster nuevo para la antigua relación con OID %u\n" "en la base de datos «%s»: %s" -#: info.c:289 +#: info.c:300 #, c-format msgid "" "\n" @@ -1003,7 +1239,7 @@ msgstr "" "\n" "bases de datos de origen:" -#: info.c:291 +#: info.c:302 #, c-format msgid "" "\n" @@ -1012,94 +1248,104 @@ msgstr "" "\n" "bases de datos de destino:" -#: info.c:329 +#: info.c:346 #, c-format msgid "template0 not found" msgstr "template0 no encontrado" -#: info.c:645 +#: info.c:805 #, c-format -msgid "Database: %s" -msgstr "Base de datos: %s" +msgid "Database: \"%s\"" +msgstr "Base de datos: «%s»" -#: info.c:657 +#: info.c:818 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s" -msgstr "relname: %s.%s: reloid: %u reltblspace: %s" +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "relname: «%s.%s»: reloid: %u reltblspace: «%s»" -#: option.c:101 +#: info.c:832 +#, c-format +msgid "Logical replication slots in the database:" +msgstr "Slots de replicación lógica en la base de datos:" + +#: info.c:838 +#, c-format +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "nombre de slot: «%s», plugin de salida: «%s», two_phase: %s" + +#: option.c:105 #, c-format msgid "%s: cannot be run as root" msgstr "%s: no puede ejecutarse como root" -#: option.c:168 +#: option.c:172 #, c-format msgid "invalid old port number" msgstr "número de puerto antiguo no válido" -#: option.c:173 +#: option.c:177 #, c-format msgid "invalid new port number" msgstr "número de puerto nuevo no válido" -#: option.c:203 +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Pruebe «%s --help» para mayor información.\n" -#: option.c:210 +#: option.c:223 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: option.c:213 +#: option.c:229 #, c-format msgid "Running in verbose mode" msgstr "Ejecutando en modo verboso" -#: option.c:231 +#: option.c:247 msgid "old cluster binaries reside" msgstr "residen los binarios del clúster antiguo" -#: option.c:233 +#: option.c:249 msgid "new cluster binaries reside" msgstr "residen los binarios del clúster nuevo" -#: option.c:235 +#: option.c:251 msgid "old cluster data resides" msgstr "residen los datos del clúster antiguo" -#: option.c:237 +#: option.c:253 msgid "new cluster data resides" msgstr "residen los datos del clúster nuevo" -#: option.c:239 +#: option.c:255 msgid "sockets will be created" msgstr "se crearán los sockets" -#: option.c:256 option.c:356 +#: option.c:272 option.c:374 #, c-format msgid "could not determine current directory" msgstr "no se pudo identificar el directorio actual" -#: option.c:259 +#: option.c:275 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "no se puede ejecutar pg_upgrade desde dentro del directorio de datos del clúster nuevo en Windows" -#: option.c:268 +#: option.c:284 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" "\n" msgstr "pg_upgrade actualiza un clúster PostgreSQL a una versión «mayor» diferente.\n" -#: option.c:269 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: option.c:270 +#: option.c:286 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1108,17 +1354,17 @@ msgstr "" " pg_upgrade [OPCIÓN]...\n" "\n" -#: option.c:271 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "Opciones:\n" -#: option.c:272 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINDIR directorio de ejecutables del clúster antiguo\n" -#: option.c:273 +#: option.c:289 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1127,97 +1373,107 @@ msgstr "" " -B, --new-bindir=BINDIR directorio de ejecutables del clúster nuevo\n" " (por omisión el mismo directorio que pg_upgrade)\n" -#: option.c:275 +#: option.c:291 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check sólo verificar clústers, no cambiar datos\n" -#: option.c:276 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATADIR directorio de datos del clúster antiguo\n" -#: option.c:277 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATADIR directorio de datos del clúster nuevo\n" -#: option.c:278 +#: option.c:294 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs=NUM máximo de procesos paralelos para restaurar\n" -#: option.c:279 +#: option.c:295 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr " -k, --link enlazar (link) archivos en vez de copiarlos\n" -#: option.c:280 +#: option.c:296 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync no esperar que los cambios se sincronicen a disco\n" -#: option.c:281 +#: option.c:297 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=OPCIONES opciones a pasar al servidor antiguo\n" -#: option.c:282 +#: option.c:298 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=OPCIONES opciones a pasar al servidor nuevo\n" -#: option.c:283 +#: option.c:299 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PUERTO número de puerto del clúster antiguo (def. %d)\n" -#: option.c:284 +#: option.c:300 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PUERTO número de puerto del clúster nuevo (def. %d)\n" -#: option.c:285 +#: option.c:301 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain preservar archivos SQL y logs en caso de éxito\n" -#: option.c:286 +#: option.c:302 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr " -s, --socketdir=DIR directorio de sockets a usar (omisión: dir. actual)\n" -#: option.c:287 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=NOMBRE superusuario del clúster (def. «%s»)\n" -#: option.c:288 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose activar registro interno verboso\n" -#: option.c:289 +#: option.c:305 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: option.c:290 +#: option.c:306 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr " --clone clonar los archivos en vez de copiarlos\n" -#: option.c:291 +#: option.c:307 #, c-format msgid " --copy copy files to new cluster (default)\n" msgstr " --copy copiar los archivos al clúster nuevo (por omisión)\n" -#: option.c:292 +#: option.c:308 +#, c-format +msgid " --copy-file-range copy files to new cluster with copy_file_range\n" +msgstr " --copy-file-range copiar archivos usando copy_file_range\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=MÉTODO definir método de sincronizar archivos a disco\n" + +#: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: option.c:293 +#: option.c:311 #, c-format msgid "" "\n" @@ -1232,7 +1488,7 @@ msgstr "" " apagar el postmaster que atiende al clúster antiguo\n" " apagar el postmaster que atiende al clúster nuevo\n" -#: option.c:298 +#: option.c:316 #, c-format msgid "" "\n" @@ -1249,7 +1505,7 @@ msgstr "" " el directorio «bin» para la versión antigua (-b BINDIR)\n" " el directorio «bin» para la versión nueva (-B BINDIR)\n" -#: option.c:304 +#: option.c:322 #, c-format msgid "" "\n" @@ -1262,7 +1518,7 @@ msgstr "" " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n" "o\n" -#: option.c:309 +#: option.c:327 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1277,7 +1533,7 @@ msgstr "" " $ export PGBINNEW=clusterNuevo/bin\n" " $ pg_upgrade\n" -#: option.c:315 +#: option.c:333 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1292,7 +1548,7 @@ msgstr "" " C:\\> set PGBINNEW=clusterNuevo/bin\n" " C:\\> pg_upgrade\n" -#: option.c:321 +#: option.c:339 #, c-format msgid "" "\n" @@ -1301,12 +1557,12 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: option.c:322 +#: option.c:340 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: option.c:362 +#: option.c:380 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1315,45 +1571,50 @@ msgstr "" "Debe identificar el directorio donde %s.\n" "Por favor use la opción %s o la variable de ambiente %s." -#: option.c:415 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Buscando el directorio de datos real para el clúster de origen" -#: option.c:417 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Buscando el directorio de datos real para el clúster de destino" -#: option.c:430 option.c:435 +#: option.c:448 +#, c-format +msgid "could not get data directory using %s: %m" +msgstr "no se pudo obtener el directorio de datos usando %s: %m" + +#: option.c:452 #, c-format msgid "could not get data directory using %s: %s" msgstr "no se pudo obtener el directorio de datos usando %s: %s" -#: option.c:484 +#: option.c:500 #, c-format -msgid "could not read line %d from file \"%s\": %s" -msgstr "no se pudo leer la línea %d del archivo «%s»: %s" +msgid "could not read line %d from file \"%s\": %m" +msgstr "no se pudo leer la línea %d del archivo «%s»: %m" -#: option.c:501 +#: option.c:517 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "número de port entregado por el usuario %hu corregido a %hu" #: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker process: %s" -msgstr "no se pudo crear el proceso hijo: %s" +msgid "could not create worker process: %m" +msgstr "no se pudo crear el proceso hijo: %m" #: parallel.c:143 parallel.c:253 #, c-format -msgid "could not create worker thread: %s" -msgstr "no se pudo crear el thread: %s" +msgid "could not create worker thread: %m" +msgstr "no se pudo crear el thread trabajador: %m" #: parallel.c:294 #, c-format -msgid "%s() failed: %s" -msgstr "%s() falló: %s" +msgid "%s() failed: %m" +msgstr "%s() falló: %m" #: parallel.c:298 #, c-format @@ -1362,15 +1623,15 @@ msgstr "el proceso hijo terminó anormalmente: estado %d" #: parallel.c:313 #, c-format -msgid "child worker exited abnormally: %s" -msgstr "el thread terminó anormalmente: %s" +msgid "child worker exited abnormally: %m" +msgstr "el hijo trabajador terminó anormalmente: %m" -#: pg_upgrade.c:107 +#: pg_upgrade.c:115 #, c-format -msgid "could not read permissions of directory \"%s\": %s" -msgstr "no se pudo obtener los permisos del directorio «%s»: %s" +msgid "could not read permissions of directory \"%s\": %m" +msgstr "no se pudo obtener los permisos del directorio «%s»: %m" -#: pg_upgrade.c:139 +#: pg_upgrade.c:147 #, c-format msgid "" "\n" @@ -1381,17 +1642,17 @@ msgstr "" "Llevando a cabo el Upgrade\n" "--------------------------" -#: pg_upgrade.c:184 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "Seteando siguiente OID para el nuevo clúster" -#: pg_upgrade.c:193 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "Sincronizando directorio de datos a disco" -#: pg_upgrade.c:205 +#: pg_upgrade.c:230 #, c-format msgid "" "\n" @@ -1402,23 +1663,23 @@ msgstr "" "Actualización Completa\n" "----------------------" -#: pg_upgrade.c:238 pg_upgrade.c:251 pg_upgrade.c:258 pg_upgrade.c:265 -#: pg_upgrade.c:283 pg_upgrade.c:294 +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 #, c-format msgid "directory path for new cluster is too long" msgstr "nombre de directorio para el nuevo clúster es demasiado largo" -#: pg_upgrade.c:272 pg_upgrade.c:274 pg_upgrade.c:276 pg_upgrade.c:278 +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 #, c-format msgid "could not create directory \"%s\": %m" msgstr "no se pudo crear el directorio «%s»: %m" -#: pg_upgrade.c:327 +#: pg_upgrade.c:352 #, c-format msgid "%s: could not find own program executable" msgstr "%s: no se pudo encontrar el ejecutable propio" -#: pg_upgrade.c:353 +#: pg_upgrade.c:378 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1427,7 +1688,7 @@ msgstr "" "Parece haber un postmaster sirviendo el clúster antiguo.\n" "Por favor detenga ese postmaster e inténtelo nuevamente." -#: pg_upgrade.c:366 +#: pg_upgrade.c:391 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1436,81 +1697,86 @@ msgstr "" "Parece haber un postmaster sirviendo el clúster nuevo.\n" "Por favor detenga ese postmaster e inténtelo nuevamente." -#: pg_upgrade.c:388 +#: pg_upgrade.c:413 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "Estableciendo la configuración regional y codificación para el nuevo clúster" -#: pg_upgrade.c:450 +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Analizando todas las filas en el clúster nuevo" -#: pg_upgrade.c:463 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Congelando todas las filas en el nuevo clúster" -#: pg_upgrade.c:483 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Restaurando objetos globales en el nuevo clúster" -#: pg_upgrade.c:499 +#: pg_upgrade.c:538 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "Restaurando esquemas de bases de datos en el clúster nuevo" -#: pg_upgrade.c:605 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "Eliminando archivos del nuevo %s" -#: pg_upgrade.c:609 +#: pg_upgrade.c:666 #, c-format msgid "could not delete directory \"%s\"" msgstr "no se pudo eliminar directorio «%s»" -#: pg_upgrade.c:628 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "Copiando el %s antiguo al nuevo servidor" -#: pg_upgrade.c:654 +#: pg_upgrade.c:711 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Estableciendo XID más antiguo para el nuevo clúster" -#: pg_upgrade.c:662 +#: pg_upgrade.c:719 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "Seteando el ID de transacción y «época» siguientes en el nuevo clúster" -#: pg_upgrade.c:692 +#: pg_upgrade.c:749 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "Seteando el multixact ID y offset siguientes en el nuevo clúster" -#: pg_upgrade.c:716 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Seteando el multixact ID más antiguo en el nuevo clúster" -#: pg_upgrade.c:736 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "Reseteando los archivos de WAL" -#: pg_upgrade.c:779 +#: pg_upgrade.c:836 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Seteando contadores frozenxid y minmxid en el clúster nuevo" -#: pg_upgrade.c:781 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Seteando contador minmxid en el clúster nuevo" +#: pg_upgrade.c:929 +#, c-format +msgid "Restoring logical replication slots in the new cluster" +msgstr "Restaurando slots de replicación lógica en el nuevo clúster" + #: relfilenumber.c:35 #, c-format msgid "Cloning user relation files" @@ -1523,35 +1789,45 @@ msgstr "Copiando archivos de relaciones de usuario" #: relfilenumber.c:41 #, c-format +msgid "Copying user relation files with copy_file_range" +msgstr "Copiando archivos de relaciones de usuario con copy_file_range" + +#: relfilenumber.c:44 +#, c-format msgid "Linking user relation files" msgstr "Enlazando archivos de relaciones de usuario" -#: relfilenumber.c:115 +#: relfilenumber.c:118 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "la base de datos «%s» no se encontró en el clúster nuevo" -#: relfilenumber.c:218 +#: relfilenumber.c:221 #, c-format -msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "error mientras se comprobaba la existencia del archivo «%s.%s» («%s» a «%s»); %s" +msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "error mientras se comprobaba la existencia del archivo «%s.%s» («%s» a «%s»); %m" -#: relfilenumber.c:236 +#: relfilenumber.c:238 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "reescribiendo «%s» a «%s»" -#: relfilenumber.c:244 +#: relfilenumber.c:246 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "clonando «%s» a «%s»" -#: relfilenumber.c:249 +#: relfilenumber.c:251 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "copiando «%s» a «%s»" -#: relfilenumber.c:254 +#: relfilenumber.c:256 +#, c-format +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "copiando «%s» a «%s» con copy_file_range" + +#: relfilenumber.c:261 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "enlazando «%s» a «%s»" @@ -1587,7 +1863,7 @@ msgstr "no se pudo abrir el archivo de versión «%s»: %m" msgid "could not parse version file \"%s\"" msgstr "no se pudo interpretar el archivo de versión «%s»" -#: server.c:288 +#: server.c:310 #, c-format msgid "" "\n" @@ -1596,7 +1872,7 @@ msgstr "" "\n" "%s" -#: server.c:292 +#: server.c:314 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1605,7 +1881,7 @@ msgstr "" "no se pudo conectar al postmaster de origen iniciado con la orden:\n" "%s" -#: server.c:296 +#: server.c:318 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1614,22 +1890,22 @@ msgstr "" "no se pudo conectar al postmaster de destino iniciado con la orden:\n" "%s" -#: server.c:310 +#: server.c:332 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl no pudo iniciar el servidor de origen, o la conexión falló" -#: server.c:312 +#: server.c:334 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl no pudo iniciar el servidor de destino, o la conexión falló" -#: server.c:357 +#: server.c:379 #, c-format msgid "out of memory" msgstr "memoria agotada" -#: server.c:370 +#: server.c:392 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "la variable de ambiente libpq %s tiene un valor de servidor no-local: %s" @@ -1650,8 +1926,8 @@ msgstr "el directorio de tablespace «%s» no existe" #: tablespace.c:87 #, c-format -msgid "could not stat tablespace directory \"%s\": %s" -msgstr "no se pudo hace stat al directorio de tablespace «%s»: %s" +msgid "could not stat tablespace directory \"%s\": %m" +msgstr "no se pudo hace stat al directorio de tablespace «%s»: %m" #: tablespace.c:92 #, c-format @@ -1673,63 +1949,17 @@ msgstr "no se pudo acceder al directorio «%s»: %m" msgid "ok" msgstr "éxito" -#: version.c:184 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "Verificando datos de usuario de tipo «line» incompatible" - -#: version.c:193 -#, c-format -msgid "" -"Your installation contains the \"line\" data type in user tables.\n" -"This data type changed its internal and input/output format\n" -"between your old and new versions so this\n" -"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" -msgstr "" -"Su instalación contiene el tipo de dato «line» en tablas de usuario. Este\n" -"tipo de dato cambió su formato interno y de entrada/salida entre las\n" -"versiones de sus clústers antiguo y nuevo, por lo que este clúster no puede\n" -"actualmente ser actualizado. Puede eliminar las columnas problemáticas y\n" -"reiniciar la actualización. Un listado de las columnas problemáticas está\n" -"en el archivo:\n" -" %s" - -#: version.c:224 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "Verificando columnas de usuario del tipo no válido «unknown»" - -#: version.c:233 -#, c-format -msgid "" -"Your installation contains the \"unknown\" data type in user tables.\n" -"This data type is no longer allowed in tables, so this\n" -"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" -msgstr "" -"Su instalación contiene el tipo «unknown» en tablas de usuario.\n" -"Este tipo ya no es permitido en tablas,\n" -"por lo que este clúster no puede ser actualizado. Puede\n" -"eliminar las columnas problemáticas y reiniciar la actualización.\n" -"Un listado de las columnas problemáticas está en el archivo:\n" -" %s" - -#: version.c:257 +#: version.c:44 #, c-format msgid "Checking for hash indexes" msgstr "Verificando índices hash" -#: version.c:335 +#: version.c:121 #, c-format msgid "warning" msgstr "atención" -#: version.c:337 +#: version.c:123 #, c-format msgid "" "\n" @@ -1744,7 +1974,7 @@ msgstr "" "con la orden REINDEX. Después de la actualización, se le entregarán\n" "instrucciones de REINDEX." -#: version.c:343 +#: version.c:129 #, c-format msgid "" "\n" @@ -1763,39 +1993,17 @@ msgstr "" "cuando se ejecute en psql con el superusuario de la base de datos recreará\n" "los índices no válidos; hasta entonces, ninguno de esos índices será usado." -#: version.c:369 -#, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "Verificando columnas de usuario del tipo «sql_identifier»" - -#: version.c:379 -#, c-format -msgid "" -"Your installation contains the \"sql_identifier\" data type in user tables.\n" -"The on-disk format for this data type has changed, so this\n" -"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" -msgstr "" -"Su instalación contiene el tipo de dato «sql_identifier» en tablas de usuario.\n" -"El formato en disco para este tipo de dato ha cambiado, por lo que\n" -"este clúster no puede ser actualizado.\n" -"Puede eliminar las columnas problemáticas y reiniciar la actualización\n" -"Un listado de las columnas problemáticas está en el archivo:\n" -" %s" - -#: version.c:402 +#: version.c:153 #, c-format msgid "Checking for extension updates" msgstr "Verificando actualizaciones para extensiones" -#: version.c:450 +#: version.c:200 #, c-format msgid "notice" msgstr "aviso" -#: version.c:451 +#: version.c:201 #, c-format msgid "" "\n" diff --git a/src/bin/pg_upgrade/po/fr.po b/src/bin/pg_upgrade/po/fr.po index 94d1775115555..6117d1fb48d91 100644 --- a/src/bin/pg_upgrade/po/fr.po +++ b/src/bin/pg_upgrade/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:19+0000\n" -"PO-Revision-Date: 2023-07-30 10:37+0200\n" +"POT-Creation-Date: 2024-10-29 18:20+0000\n" +"PO-Revision-Date: 2024-10-30 07:41+0100\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,9 +19,244 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: check.c:69 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "n'a pas pu récupérer le code de statut du sous-processus : code d'erreur %lu" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "n'a pas pu trouver l'identifiant réel %ld de l'utilisateur : %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "l'utilisateur n'existe pas" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "Vérification des types composites définis par le système dans les tables utilisateurs" + +#: check.c:118 +msgid "" +"Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient des types composites définis par le système dans vos tables\n" +"utilisateurs. Les OID de ces types ne sont pas stables entre différentes versions\n" +"de PostgreSQL, donc cette instance ne peut pas être mise à jour actuellement. Vous pouvez\n" +"supprimer les colonnes problématiques, puis relancer la mise à jour.\n" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "Vérification des types de données line incompatibles" + +#: check.c:137 +msgid "" +"Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « line » dans vos tables utilisateurs.\n" +"Ce type de données a changé de format interne et en entrée/sortie entre vos ancienne\n" +"et nouvelle versions, donc cette instance ne peut pas être mise à jour\n" +"actuellement. Vous pouvez supprimer les colonnes problématiques et relancer la mise à jour.\n" + +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "Vérification des types de données reg* dans les tables utilisateurs" + +#: check.c:181 +msgid "" +"Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient un des types de données reg* dans vos tables\n" +"utilisateurs. Ces types de données référencent des OID système qui ne sont\n" +"pas préservés par pg_upgrade, donc cette instance ne peut pas être mise à\n" +"jour actuellement. Vous pouvez supprimer les colonnes problématiques et relancer\n" +"la mise à jour.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "Vérification des types de données « aclitem » incompatibles" + +#: check.c:198 +msgid "" +"Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient un type de données « aclitem » dans vos tables utilisateurs.\n" +"Le format interne de « aclitem » a changé lors du développement de la version 16, donc\n" +"cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer les\n" +"colonnes problématiques et relancer la mise à jour.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "Vérification des colonnes utilisateurs « unknown » invalides" + +#: check.c:222 +msgid "" +"Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « unknown » dans vos tables\n" +"utilisateurs. Ce type de données n'est plus autorisé dans les tables, donc\n" +"cette instance ne peut pas être mise à jour pour l'instant. Vous pouvez\n" +"supprimer les colonnes problématiques, puis relancer la mise à jour.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "Vérification des colonnes utilisateurs « sql_identifier » invalides" + +#: check.c:244 +msgid "" +"Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « sql_identifier » dans les tables\n" +"utilisateurs. Le format sur disque pour ce type de données a changé,\n" +"donc cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer\n" +"les colonnes problématiques, puis relancer la mise à jour.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "Vérification du type de données « json » incompatible dans les tables utilisateurs" + +#: check.c:260 +msgid "" +"Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "" +"Votre installation contient un type de données « jsonb » dans vos tables utilisateurs.\n" +"Le format interne de « jsonb » a changé lors du développement de la version 9.4 beta, donc\n" +"cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer les\n" +"colonnes problématiques et relancer la mise à jour.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "Vérification du type de données « abstime » supprimé dans les tables utilisateurs" + +#: check.c:277 +msgid "" +"Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « abstime » dans les tables utilisateurs.\n" +"Le type «abstime » a été supprimé dans PostgreSQL version 12,\n" +"donc cette instance ne peut pas être mise à jour pour l'instant. Vous pouvez\n" +"supprimer les colonnes problématiques ou les convertir en un autre type de données,\n" +"et relancer la mise à jour.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "Vérification du type de données « reltime » supprimé dans les tables utilisateurs" + +#: check.c:290 +msgid "" +"Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « reltime » dans les tables utilisateurs.\n" +"Le type «reltime » a été supprimé dans PostgreSQL version 12,\n" +"donc cette instance ne peut pas être mise à jour pour l'instant. Vous pouvez\n" +"supprimer les colonnes problématiques ou les convertir en un autre type de données,\n" +"et relancer la mise à jour.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "Vérification du type de données « tinterval » supprimé dans les tables utilisateurs" + +#: check.c:303 +msgid "" +"Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Votre installation contient le type de données « tinterval » dans les tables utilisateurs.\n" +"Le type « tinterval » a été supprimé dans PostgreSQL version 12,\n" +"donc cette instance ne peut pas être mise à jour pour l'instant. Vous pouvez\n" +"supprimer les colonnes problématiques ou les convertir en un autre type de données,\n" +"et relancer la mise à jour.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "Vérification de l'utilisation du type de données" + +#: check.c:480 +#, c-format +msgid "failed check: %s" +msgstr "vérification échouée : %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "Une liste des colonnes problématiques se trouve dans le fichier :" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "Échec de la vérification des types de données : %s" + +#: check.c:563 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -30,7 +265,7 @@ msgstr "" "Exécution de tests de cohérence sur l'ancien serveur\n" "----------------------------------------------------" -#: check.c:75 +#: check.c:569 #, c-format msgid "" "Performing Consistency Checks\n" @@ -39,7 +274,7 @@ msgstr "" "Exécution de tests de cohérence\n" "-------------------------------" -#: check.c:221 +#: check.c:718 #, c-format msgid "" "\n" @@ -48,7 +283,7 @@ msgstr "" "\n" "*Les instances sont compatibles*" -#: check.c:229 +#: check.c:726 #, c-format msgid "" "\n" @@ -59,7 +294,7 @@ msgstr "" "Si pg_upgrade échoue après cela, vous devez ré-exécuter initdb\n" "sur la nouvelle instance avant de continuer." -#: check.c:270 +#: check.c:767 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade.\n" @@ -70,7 +305,7 @@ msgstr "" "Une fois le nouveau serveur démarré, pensez à exécuter :\n" " %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:276 +#: check.c:773 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -79,7 +314,7 @@ msgstr "" "Exécuter ce script supprimera les fichiers de données de l'ancienne instance :\n" " %s" -#: check.c:281 +#: check.c:778 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -93,57 +328,57 @@ msgstr "" "de l'ancienne instance. Le contenu de l'ancienne instance doit être supprimé\n" "manuellement." -#: check.c:293 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "Vérification des versions des instances" -#: check.c:305 +#: check.c:802 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "Cet outil peut seulement mettre à jour les versions %s et ultérieures de PostgreSQL." -#: check.c:310 +#: check.c:807 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "Cet outil peut seulement mettre à jour vers la version %s de PostgreSQL." -#: check.c:319 +#: check.c:816 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "Cet outil ne peut pas être utilisé pour mettre à jour vers des versions majeures plus anciennes de PostgreSQL." -#: check.c:324 +#: check.c:821 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "Les répertoires des données de l'ancienne instance et des binaires sont de versions majeures différentes." -#: check.c:327 +#: check.c:824 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "Les répertoires des données de la nouvelle instance et des binaires sont de versions majeures différentes." -#: check.c:342 +#: check.c:839 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "Lors de la vérification d'un serveur en production, l'ancien numéro de port doit être différent du nouveau." -#: check.c:362 +#: check.c:859 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "La nouvelle instance « %s » n'est pas vide : relation « %s.%s » trouvée" -#: check.c:385 +#: check.c:882 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Vérification des répertoires de tablespace de la nouvelle instance" -#: check.c:396 +#: check.c:893 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "le répertoire du tablespace de la nouvelle instance existe déjà : « %s »" -#: check.c:429 +#: check.c:926 #, c-format msgid "" "\n" @@ -152,7 +387,7 @@ msgstr "" "\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" -#: check.c:453 +#: check.c:950 #, c-format msgid "" "\n" @@ -161,61 +396,53 @@ msgstr "" "\n" "AVERTISSEMENT : les emplacements des tablespaces utilisateurs ne doivent pas être à l'intérieur du répertoire de données, %s" -#: check.c:463 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "Création du script pour supprimer l'ancienne instance" -#: check.c:466 check.c:639 check.c:755 check.c:850 check.c:979 check.c:1056 -#: check.c:1299 check.c:1373 file.c:339 function.c:163 option.c:476 -#: version.c:116 version.c:292 version.c:426 +#: check.c:1014 #, c-format -msgid "could not open file \"%s\": %s" -msgstr "n'a pas pu ouvrir le fichier « %s » : %s" +msgid "could not add execute permission to file \"%s\": %m" +msgstr "n'a pas pu ajouter les droits d'exécution pour le fichier « %s » : %m" -#: check.c:517 -#, c-format -msgid "could not add execute permission to file \"%s\": %s" -msgstr "n'a pas pu ajouter les droits d'exécution pour le fichier « %s » : %s" - -#: check.c:537 +#: check.c:1034 #, 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:553 +#: check.c:1050 #, c-format msgid "database user \"%s\" is not the install user" msgstr "l'utilisateur de la base de données « %s » n'est pas l'utilisateur d'installation" -#: check.c:564 +#: check.c:1061 #, c-format msgid "could not determine the number of users" msgstr "n'a pas pu déterminer le nombre d'utilisateurs" -#: check.c:572 +#: check.c:1069 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "Seul l'utilisateur d'installation peut être défini dans la nouvelle instance." -#: check.c:601 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "Vérification des paramètres de connexion de la base de données" -#: check.c:627 +#: check.c:1124 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0 ne doit pas autoriser les connexions, ie pg_database.datallowconn doit valoir false" -#: check.c:654 check.c:775 check.c:873 check.c:999 check.c:1076 check.c:1135 -#: check.c:1196 check.c:1224 check.c:1254 check.c:1313 check.c:1394 -#: function.c:185 version.c:192 version.c:232 version.c:378 +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 #, c-format msgid "fatal" msgstr "fatal" -#: check.c:655 +#: check.c:1151 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" @@ -234,27 +461,27 @@ msgstr "" "le fichier :\n" " %s" -#: check.c:680 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "Vérification des transactions préparées" -#: check.c:689 +#: check.c:1185 #, c-format msgid "The source cluster contains prepared transactions" msgstr "L'instance source contient des transactions préparées" -#: check.c:691 +#: check.c:1187 #, c-format msgid "The target cluster contains prepared transactions" msgstr "L'instance cible contient des transactions préparées" -#: check.c:716 +#: check.c:1212 #, 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:776 +#: check.c:1271 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -275,12 +502,12 @@ msgstr "" "dans le fichier :\n" " %s" -#: check.c:798 +#: check.c:1293 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Vérification des opérateurs postfixes définis par les utilisateurs" -#: check.c:874 +#: check.c:1368 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -295,12 +522,12 @@ msgstr "" "Une liste des opérateurs postfixes définis par les utilisateurs se trouve dans le fichier :\n" " %s" -#: check.c:898 +#: check.c:1392 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Vérification des fonctions polymorphiques incompatibles" -#: check.c:1000 +#: check.c:1493 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -320,12 +547,12 @@ msgstr "" "des objets problématiques se trouve dans le fichier\n" " %s" -#: check.c:1024 +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Vérification des tables WITH OIDS" -#: check.c:1077 +#: check.c:1569 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -340,143 +567,133 @@ msgstr "" "Une liste des tables ayant ce problème se trouve dans le fichier :\n" " %s" -#: check.c:1105 +#: check.c:1596 #, c-format -msgid "Checking for system-defined composite types in user tables" -msgstr "Vérification des types composites définis par le système dans les tables utilisateurs" +msgid "Checking for roles starting with \"pg_\"" +msgstr "Vérification des rôles commençant avec « pg_ »" -#: check.c:1136 +#: check.c:1627 #, 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" +"Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" " %s" msgstr "" -"Votre installation contient des types composites définis par le système dans vos tables\n" -"utilisateurs. Les OID de ces types ne sont pas stables entre différentes versions majeures\n" -"de PostgreSQL, donc cette instance ne peut pas être mise à jour actuellement. Vous pouvez\n" -"supprimer les colonnes problématiques, puis relancer la mise à jour. Vous trouverez\n" -"une liste des colonnes problématiques dans le fichier :\n" +"Votre installation contient des rôles commençant par « pg_ ».\n" +"\"pg_\" est un préfixe réservé aux rôles systèmes. L'instance\n" +"ne peut pas être mise à jour tant que ces rôles ne sont pas renommés.\n" +"Une liste des rôles commençant par « pg_ » se trouve dans le fichier :\n" " %s" -#: check.c:1164 +#: check.c:1647 #, c-format -msgid "Checking for reg* data types in user tables" -msgstr "Vérification des types de données reg* dans les tables utilisateurs" +msgid "Checking for user-defined encoding conversions" +msgstr "Vérification des conversions d'encodage définies par les utilisateurs" -#: check.c:1197 +#: check.c:1707 #, c-format msgid "" -"Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, 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" +"Your installation contains user-defined encoding conversions.\n" +"The conversion function parameters changed in PostgreSQL version 14\n" +"so this cluster cannot currently be upgraded. You can remove the\n" +"encoding conversions in the old cluster and restart the upgrade.\n" +"A list of user-defined encoding conversions is in the file:\n" " %s" msgstr "" -"Votre installation contient un des types de données reg* dans vos tables\n" -"utilisateurs. Ces types de données référencent des OID système qui ne sont\n" -"pas préservés par pg_upgrade, donc cette instance ne peut pas être mise à\n" -"jour actuellement. Vous pouvez supprimer les colonnes problématiques et relancer\n" -"la mise à jour. Une liste des colonnes problématiques est disponible dans le\n" -"fichier :\n" +"Votre installation contient des conversions définies par un utilisateur.\n" +"Les paramètres des fonctions de conversion ont changé dans PostgreSQL version 14\n" +"donc cette instance ne peut pas être mise à jour actuellement. Vous devez supprimer\n" +"les conversions d'encodage de l'ancienne instance puis relancer la mise à jour.\n" +"Une liste des conversions d'encodage définies par l'utilisateur se trouve dans le fichier :\n" " %s" -#: check.c:1218 +#: check.c:1746 #, c-format -msgid "Checking for incompatible \"aclitem\" data type in user tables" -msgstr "Vérification du type de données aclitem incompatible dans les tables utilisateurs" +msgid "Checking for new cluster logical replication slots" +msgstr "Vérification des slots de réplication logique de la nouvelle instance" -#: check.c:1225 +#: check.c:1754 #, c-format -msgid "" -"Your installation contains the \"aclitem\" data type in user tables.\n" -"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" -"so this cluster cannot currently be upgraded. You can drop the\n" -"problem columns and restart the upgrade. A list of the problem\n" -"columns is in the file:\n" -" %s" -msgstr "" -"Votre installation contient un type de données « aclitem » dans vos tables utilisateurs.\n" -"Le format interne de « aclitem » a changé lors du développement de la version 16, donc\n" -"cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer les\n" -"colonnes problématiques et relancer la mise à jour. Une liste des colonnes problématiques\n" -"est disponible dans le fichier :\n" -" %s" +msgid "could not count the number of logical replication slots" +msgstr "n'a pas pu compter le nombre de slots de réplication logique" -#: check.c:1246 +#: check.c:1759 #, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "Vérification des types de données « jsonb » incompatibles" +msgid "expected 0 logical replication slots but found %d" +msgstr "attendait 0 slot de réplication logique mais en a trouvé %d" -#: check.c:1255 +#: check.c:1769 check.c:1820 #, c-format -msgid "" -"Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"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" -msgstr "" -"Votre installation contient un type de données « jsonb » dans vos tables utilisateurs.\n" -"Le format interne de « jsonb » a changé lors du développement de la version 9.4 beta, donc\n" -"cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer les\n" -"colonnes problématiques et relancer la mise à jour. Une liste des colonnes problématiques\n" -"est disponible dans le fichier :\n" -" %s" +msgid "could not determine parameter settings on new cluster" +msgstr "n'a pas pu déterminer la configuration sur la nouvelle instance" -#: check.c:1282 +#: check.c:1774 #, c-format -msgid "Checking for roles starting with \"pg_\"" -msgstr "Vérification des rôles commençant avec « pg_ »" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "« wal_level » doit être configuré à « logical » mais est configuré à « %s »" + +#: check.c:1780 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" +msgstr "« max_replication_slots » (%d) doit être supérieur ou égal au nombre de slots de réplication logique (%d) sur l'ancienne instance" + +#: check.c:1812 +#, c-format +msgid "Checking for new cluster configuration for subscriptions" +msgstr "Vérification de la configuration de la nouvelle instance pour les souscriptions" + +#: check.c:1824 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "« max_replication_slots » (%d) doit être supérieur ou égal au nombre de souscriptions (%d) sur l'ancienne instance" -#: check.c:1314 +#: check.c:1846 +#, c-format +msgid "Checking for valid logical replication slots" +msgstr "Vérification des slots de réplication logique valides" + +#: check.c:1898 #, c-format msgid "" -"Your installation contains roles starting with \"pg_\".\n" -"\"pg_\" is a reserved prefix for system roles. The cluster\n" -"cannot be upgraded until these roles are renamed.\n" -"A list of roles starting with \"pg_\" is in the file:\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" " %s" msgstr "" -"Votre installation contient des rôles commençant par « pg_ ».\n" -"\"pg_\" est un préfixe réservé aux rôles systèmes. L'instance\n" -"ne peut pas être mise à jour tant que ces rôles ne sont pas renommés.\n" -"Une liste des rôles commençant par « pg_ » se trouve dans le fichier :\n" +"Votre installation contient des slots de réplication logique qui ne peuvent pas\n" +"être mis à jour. Vous pouvez supprimer les slots invalides et/ou consommer le\n" +"WAL en attente pour les autres slots, puis relancer la mise à jour. Vous trouverez\n" +"une liste des slots problématiques dans le fichier :\n" " %s" -#: check.c:1334 +#: check.c:1922 #, c-format -msgid "Checking for user-defined encoding conversions" -msgstr "Vérification des conversions d'encodage définies par les utilisateurs" +msgid "Checking for subscription state" +msgstr "Vérification de l'état de souscription" -#: check.c:1395 +#: check.c:2023 #, c-format msgid "" -"Your installation contains user-defined encoding conversions.\n" -"The conversion function parameters changed in PostgreSQL version 14\n" -"so this cluster cannot currently be upgraded. You can remove the\n" -"encoding conversions in the old cluster and restart the upgrade.\n" -"A list of user-defined encoding conversions is in the file:\n" +"Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" " %s" msgstr "" -"Votre installation contient des conversions définies par un utilisateur.\n" -"Les paramètres des fonctions de conversion ont changé dans PostgreSQL version 14\n" -"donc cette instance ne peut pas être mise à jour actuellement. Vous devez supprimer\n" -"les conversions d'encodage de l'ancienne instance puis relancer la mise à jour.\n" -"Une liste des conversions d'encodage définies par l'utilisateur se trouve dans le fichier :\n" +"Votre installation contient des souscriptions sans origine ou ont des relations qui\n" +"ne sont ni dans l'état « initialize » ni dans l'état « ready ». Vous pouvez permettre la\n" +"réalisation de la synchronisation initiale pour toutes les relations, puis relancer la\n" +"mise à jour. Vous trouverez une liste des souscriptions problématiques dans le fichier :\n" " %s" -#: controldata.c:129 controldata.c:175 controldata.c:199 controldata.c:508 +#: controldata.c:129 controldata.c:199 #, c-format -msgid "could not get control data using %s: %s" -msgstr "n'a pas pu obtenir les données de contrôle en utilisant %s : %s" +msgid "could not get control data using %s: %m" +msgstr "n'a pas pu obtenir les données de contrôle en utilisant %s : %m" -#: controldata.c:140 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem" msgstr "%d : problème sur l'état de l'instance de la base de données" @@ -493,13 +710,18 @@ msgstr "L'instance cible a été arrêté alors qu'elle était en mode restaurat #: controldata.c:165 #, c-format -msgid "The source cluster was not shut down cleanly." -msgstr "L'instance source n'a pas été arrêtée proprement." +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "L'instance source n'a pas été arrêtée proprement, état reporté comme : « %s »" #: controldata.c:167 #, c-format -msgid "The target cluster was not shut down cleanly." -msgstr "L'instance cible n'a pas été arrêtée proprement." +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "L'instance cible n'a pas été arrêtée proprement, état reporté comme : « %s »" + +#: controldata.c:175 controldata.c:507 +#, c-format +msgid "could not get control data using %s: %s" +msgstr "n'a pas pu obtenir les données de contrôle en utilisant %s : %s" #: controldata.c:181 #, c-format @@ -511,139 +733,139 @@ msgstr "Il manque certaines informations d'état requises sur l'instance source msgid "The target cluster lacks cluster state information:" msgstr "Il manque certaines informations d'état requises sur l'instance cible :" -#: controldata.c:214 dump.c:50 exec.c:119 pg_upgrade.c:517 pg_upgrade.c:554 -#: relfilenumber.c:231 server.c:34 util.c:337 +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:221 +#: controldata.c:220 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d : problème avec pg_resetwal" -#: controldata.c:231 controldata.c:241 controldata.c:252 controldata.c:263 -#: controldata.c:274 controldata.c:293 controldata.c:304 controldata.c:315 -#: controldata.c:326 controldata.c:337 controldata.c:348 controldata.c:359 -#: controldata.c:362 controldata.c:366 controldata.c:376 controldata.c:388 -#: controldata.c:399 controldata.c:410 controldata.c:421 controldata.c:432 -#: controldata.c:443 controldata.c:454 controldata.c:465 controldata.c:476 -#: controldata.c:487 controldata.c:498 +#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d : problème de récupération des controldata" -#: controldata.c:579 +#: controldata.c:578 #, c-format msgid "The source cluster lacks some required control information:" msgstr "Il manque certaines informations de contrôle requises sur l'instance source :" -#: controldata.c:582 +#: controldata.c:581 #, c-format msgid "The target cluster lacks some required control information:" msgstr "Il manque certaines informations de contrôle requises sur l'instance cible :" -#: controldata.c:585 +#: controldata.c:584 #, c-format msgid " checkpoint next XID" msgstr " XID du prochain checkpoint" -#: controldata.c:588 +#: controldata.c:587 #, c-format msgid " latest checkpoint next OID" msgstr " prochain OID du dernier checkpoint" -#: controldata.c:591 +#: controldata.c:590 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " prochain MultiXactId du dernier checkpoint" -#: controldata.c:595 +#: controldata.c:594 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " plus ancien MultiXactId du dernier checkpoint" -#: controldata.c:598 +#: controldata.c:597 #, c-format msgid " latest checkpoint oldestXID" msgstr " oldestXID du dernier checkpoint" -#: controldata.c:601 +#: controldata.c:600 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " prochain MultiXactOffset du dernier checkpoint" -#: controldata.c:604 +#: controldata.c:603 #, c-format msgid " first WAL segment after reset" msgstr " premier segment WAL après réinitialisation" -#: controldata.c:607 +#: controldata.c:606 #, c-format msgid " float8 argument passing method" msgstr " méthode de passage de arguments float8" -#: controldata.c:610 +#: controldata.c:609 #, c-format msgid " maximum alignment" msgstr " alignement maximale" -#: controldata.c:613 +#: controldata.c:612 #, c-format msgid " block size" msgstr " taille de bloc" -#: controldata.c:616 +#: controldata.c:615 #, c-format msgid " large relation segment size" msgstr " taille de segment des relations" -#: controldata.c:619 +#: controldata.c:618 #, c-format msgid " WAL block size" msgstr " taille de bloc d'un WAL" -#: controldata.c:622 +#: controldata.c:621 #, c-format msgid " WAL segment size" msgstr " taille d'un segment WAL" -#: controldata.c:625 +#: controldata.c:624 #, c-format msgid " maximum identifier length" msgstr " longueur maximum d'un identifiant" -#: controldata.c:628 +#: controldata.c:627 #, c-format msgid " maximum number of indexed columns" msgstr " nombre maximum de colonnes indexées" -#: controldata.c:631 +#: controldata.c:630 #, c-format msgid " maximum TOAST chunk size" msgstr " taille maximale d'un morceau de TOAST" -#: controldata.c:635 +#: controldata.c:634 #, c-format msgid " large-object chunk size" msgstr " taille d'un morceau Large-Object" -#: controldata.c:638 +#: controldata.c:637 #, c-format msgid " dates/times are integers?" msgstr " les dates/heures sont-ils des integers?" -#: controldata.c:642 +#: controldata.c:641 #, c-format msgid " data checksum version" msgstr " version des sommes de contrôle des données" -#: controldata.c:644 +#: controldata.c:643 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "Ne peut pas continuer sans les informations de contrôle requises, en arrêt" -#: controldata.c:659 +#: controldata.c:658 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -652,77 +874,77 @@ msgstr "" "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." -#: controldata.c:663 +#: controldata.c:662 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "les tailles de bloc sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:666 +#: controldata.c:665 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "les tailles maximales de segment de relation sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:669 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "les tailles de bloc des WAL sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:672 +#: controldata.c:671 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "les tailles de segment de WAL sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:675 +#: controldata.c:674 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "les longueurs maximales des identifiants sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:678 +#: controldata.c:677 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "les nombres maximums de colonnes indexées sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:681 +#: controldata.c:680 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "les tailles maximales de morceaux des TOAST sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:686 +#: controldata.c:685 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "les tailles des morceaux de Large Objects sont invalides ou ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:689 +#: controldata.c:688 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "les types de stockage date/heure ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:702 +#: controldata.c:701 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "l'ancienne instance n'utilise pas les sommes de contrôle alors que la nouvelle les utilise" -#: controldata.c:705 +#: controldata.c:704 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "l'ancienne instance utilise les sommes de contrôle alors que la nouvelle ne les utilise pas" -#: controldata.c:707 +#: controldata.c:706 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "les versions des sommes de contrôle ne correspondent pas entre l'ancien et le nouveau pg_controldata." -#: controldata.c:718 +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Ajout du suffixe « .old » à l'ancien global/pg_control" -#: controldata.c:723 +#: controldata.c:722 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" -#: controldata.c:727 +#: controldata.c:726 #, c-format msgid "" "\n" @@ -748,27 +970,32 @@ msgstr "Création de la sauvegarde des objets globaux" msgid "Creating dump of database schemas" msgstr "Création de la sauvegarde des schémas des bases" -#: exec.c:47 exec.c:52 +#: exec.c:47 +#, c-format +msgid "could not get pg_ctl version data using %s: %m" +msgstr "n'a pas pu obtenir la version de pg_ctl en utilisant %s : %m" + +#: exec.c:51 #, c-format msgid "could not get pg_ctl version data using %s: %s" msgstr "n'a pas pu obtenir la version de pg_ctl en utilisant %s : %s" -#: exec.c:56 +#: exec.c:55 #, c-format msgid "could not get pg_ctl version output from %s" msgstr "n'a pas pu obtenir la version de pg_ctl à partir de %s" -#: exec.c:113 exec.c:117 +#: exec.c:112 exec.c:116 #, c-format msgid "command too long" msgstr "commande trop longue" -#: exec.c:161 pg_upgrade.c:286 +#: exec.c:160 pg_upgrade.c:311 #, c-format msgid "could not open log file \"%s\": %m" msgstr "n'a pas pu ouvrir le journal applicatif « %s » : %m" -#: exec.c:193 +#: exec.c:192 #, c-format msgid "" "\n" @@ -777,12 +1004,12 @@ msgstr "" "\n" "*échec*" -#: exec.c:196 +#: exec.c:195 #, c-format msgid "There were problems executing \"%s\"" msgstr "Il y a eu des problèmes lors de l'exécution de « %s »" -#: exec.c:199 +#: exec.c:198 #, c-format msgid "" "Consult the last few lines of \"%s\" or \"%s\" for\n" @@ -791,7 +1018,7 @@ msgstr "" "Consultez les dernières lignes de « %s » ou « %s » pour\n" "trouver la cause probable de l'échec." -#: exec.c:204 +#: exec.c:203 #, c-format msgid "" "Consult the last few lines of \"%s\" for\n" @@ -800,141 +1027,156 @@ msgstr "" "Consultez les dernières lignes de « %s » pour\n" "trouver la cause probable de l'échec." -#: exec.c:219 pg_upgrade.c:296 +#: exec.c:218 pg_upgrade.c:321 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "n'a pas pu écrire dans le fichier de traces « %s »" -#: exec.c:245 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s" -msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %s" +msgid "could not open file \"%s\" for reading: %m" +msgstr "n'a pas pu ouvrir le fichier « %s » pour une lecture : %m" -#: exec.c:272 +#: exec.c:270 #, c-format msgid "You must have read and write access in the current directory." msgstr "Vous devez avoir les droits de lecture et d'écriture dans le répertoire actuel." -#: exec.c:325 exec.c:391 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s" -msgstr "échec de la vérification de « %s » : %s" +msgid "check for \"%s\" failed: %m" +msgstr "échec de la vérification de « %s » : %m" -#: exec.c:328 exec.c:394 +#: exec.c:326 exec.c:392 #, c-format msgid "\"%s\" is not a directory" msgstr "« %s » n'est pas un répertoire" -#: exec.c:441 -#, c-format -msgid "check for \"%s\" failed: %m" -msgstr "échec de la vérification de « %s » : %m" - -#: exec.c:446 +#: exec.c:444 #, c-format msgid "check for \"%s\" failed: cannot execute" msgstr "échec de la vérification de « %s » : ne peut pas exécuter" -#: exec.c:456 +#: exec.c:454 #, c-format msgid "check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" msgstr "échec de la vérification de « %s » : version incorrecte : « %s » trouvée, « %s » attendue" -#: file.c:43 file.c:64 +#: file.c:44 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "erreur lors du clonage de la relation « %s.%s » (« %s » à « %s ») : %s" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "erreur lors du clonage de la relation « %s.%s » (« %s » à « %s ») : %m" -#: file.c:50 +#: file.c:51 #, c-format -msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "erreur lors du clonage de la relation « %s.%s » : n'a pas pu ouvrir le fichier « %s » : %s" +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "erreur lors du clonage de la relation « %s.%s » : n'a pas pu ouvrir le fichier « %s » : %m" + +#: file.c:56 +#, c-format +msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "erreur lors du clonage de la relation « %s.%s » : n'a pas pu créer le fichier « %s » : %m" + +#: file.c:65 +#, c-format +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "erreur lors du clonage de la relation « %s.%s » (« %s » à « %s ») : %s" -#: file.c:55 +#: file.c:91 file.c:160 file.c:233 #, c-format -msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "erreur lors du clonage de la relation « %s.%s » : n'a pas pu créer le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu ouvrir le fichier « %s » : %m" -#: file.c:90 file.c:193 +#: file.c:96 file.c:165 file.c:242 #, c-format -msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu ouvrir le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu créer le fichier « %s » : %m" -#: file.c:95 file.c:202 +#: file.c:110 file.c:266 #, c-format -msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu créer le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu lire le fichier « %s » : %m" -#: file.c:109 file.c:226 +#: file.c:122 file.c:344 #, c-format -msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %s" -msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu lire le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu écrire le fichier « %s » : %m" -#: file.c:121 file.c:304 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %s" -msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu écrire le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "erreur lors de la copie de la relation « %s.%s » (« %s » à « %s ») : %m" -#: file.c:135 +#: file.c:172 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "erreur lors de la copie de la relation « %s.%s » (« %s » à « %s ») : %s" +msgid "error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu exécuter copy_file_range du fichier « %s » au fichier « %s » : %m" -#: file.c:154 +#: file.c:194 #, c-format -msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "erreur lors de la création du lien pour la relation « %s.%s » (« %s » à « %s ») : %s" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "erreur lors de la création du lien pour la relation « %s.%s » (« %s » à « %s ») : %m" -#: file.c:197 +#: file.c:237 #, c-format -msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %s" -msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu tester le fichier « %s » : %s" +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" +msgstr "erreur lors de la copie de la relation « %s.%s » : n'a pas pu tester le fichier « %s » : %m" -#: file.c:229 +#: file.c:269 #, c-format msgid "error while copying relation \"%s.%s\": partial page found in file \"%s\"" msgstr "erreur lors de la copie de la relation « %s.%s » : page partielle trouvée dans le fichier « %s »" -#: file.c:331 file.c:348 +#: file.c:371 file.c:387 #, c-format -msgid "could not clone file between old and new data directories: %s" -msgstr "n'a pas pu cloner le fichier entre l'ancien et le nouveau répertoires : %s" +msgid "could not clone file between old and new data directories: %m" +msgstr "n'a pas pu cloner le fichier entre l'ancien et le nouveau répertoires de données : %m" -#: file.c:344 +#: file.c:383 file.c:420 #, c-format -msgid "could not create file \"%s\": %s" -msgstr "n'a pas pu créer le fichier « %s » : %s" +msgid "could not create file \"%s\": %m" +msgstr "n'a pas pu créer le fichier « %s » : %m" -#: file.c:355 +#: file.c:393 #, c-format msgid "file cloning not supported on this platform" msgstr "clonage de fichiers non supporté sur cette plateforme" -#: file.c:372 +#: file.c:424 +#, c-format +msgid "could not copy file range between old and new data directories: %m" +msgstr "n'a pas pu exécuter copy_file_range entre l'ancien et le nouveau répertoires de données : %m" + +#: file.c:430 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range non supporté sur cette plateforme" + +#: file.c:447 #, c-format msgid "" -"could not create hard link between old and new data directories: %s\n" +"could not create hard link between old and new data directories: %m\n" "In link mode the old and new data directories must be on the same file system." msgstr "" -"n'a pas pu créer le lien physique entre l'ancien et le nouveau répertoires de données : %s\n" +"n'a pas pu créer le lien physique entre l'ancien et le nouveau répertoires de données : %m\n" "Dans le mode lien, les ancien et nouveau répertoires de données doivent être sur le même système de fichiers." -#: function.c:128 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "Vérification de la présence des bibliothèques requises" -#: function.c:165 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "n'a pas pu charger la bibliothèque « %s » : %s" -#: function.c:176 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "Dans la base de données : %s\n" -#: function.c:186 +#: function.c:211 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -949,47 +1191,47 @@ msgstr "" "Une liste des bibliothèques problématiques est disponible dans le fichier :\n" " %s" -#: info.c:126 +#: info.c:128 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "Les noms de relation pour l'OID %u dans la base de données « %s » ne correspondent pas : ancien nom « %s.%s », nouveau nom « %s.%s »" -#: info.c:146 +#: info.c:148 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "Échec de correspondance des anciennes et nouvelles tables dans la base de données « %s »" -#: info.c:227 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " qui est un index sur \"%s.%s\"" -#: info.c:237 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " qui est un index sur l'OID %u" -#: info.c:249 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " qui est la table TOAST pour « %s.%s »" -#: info.c:257 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " qui est la table TOAST pour l'OID %u" -#: info.c:261 +#: info.c:263 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "Aucune correspondance trouvée dans l'ancienne instance pour la nouvelle relation d'OID %u dans la base de données « %s » : %s" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "Aucune correspondance trouvée dans la nouvelle instance pour la nouvelle relation d'OID %u dans la base de données « %s » : %s" -#: info.c:289 +#: info.c:300 #, c-format msgid "" "\n" @@ -998,7 +1240,7 @@ msgstr "" "\n" "bases de données sources :" -#: info.c:291 +#: info.c:302 #, c-format msgid "" "\n" @@ -1013,82 +1255,92 @@ msgstr "" # (errcode(ERRCODE_CASE_NOT_FOUND), # errmsg("case not found"), # errhint("CASE statement is missing ELSE part."))); -#: info.c:329 +#: info.c:346 #, c-format msgid "template0 not found" msgstr "template0 introuvable" -#: info.c:645 +#: info.c:805 #, c-format -msgid "Database: %s" -msgstr "Base de données : %s" +msgid "Database: \"%s\"" +msgstr "Base de données : « %s »" -#: info.c:657 +#: info.c:818 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s" -msgstr "relname : %s.%s : reloid : %u reltblspace : %s" +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "relname : « %s.%s », reloid : %u, reltblspace : « %s »" -#: option.c:101 +#: info.c:832 +#, c-format +msgid "Logical replication slots in the database:" +msgstr "Les slots de réplication logique dans la base de données :" + +#: info.c:838 +#, c-format +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "nom du slot « %s », plugin de sortie « %s », two_phase %s" + +#: option.c:105 #, c-format msgid "%s: cannot be run as root" msgstr "%s : ne peut pas être exécuté en tant que root" -#: option.c:168 +#: option.c:172 #, c-format msgid "invalid old port number" msgstr "ancien numéro de port invalide" -#: option.c:173 +#: option.c:177 #, c-format msgid "invalid new port number" msgstr "nouveau numéro de port invalide" -#: option.c:203 +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayez « %s --help » pour plus d'informations.\n" -#: option.c:210 +#: option.c:223 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: option.c:213 +#: option.c:229 #, c-format msgid "Running in verbose mode" msgstr "Exécution en mode verbeux" -#: option.c:231 +#: option.c:247 msgid "old cluster binaries reside" msgstr "les binaires de l'ancienne instance résident" -#: option.c:233 +#: option.c:249 msgid "new cluster binaries reside" msgstr "les binaires de la nouvelle instance résident" -#: option.c:235 +#: option.c:251 msgid "old cluster data resides" msgstr "les données de l'ancienne instance résident" -#: option.c:237 +#: option.c:253 msgid "new cluster data resides" msgstr "les données de la nouvelle instance résident" -#: option.c:239 +#: option.c:255 msgid "sockets will be created" msgstr "les sockets seront créés" -#: option.c:256 option.c:356 +#: option.c:272 option.c:374 #, c-format msgid "could not determine current directory" msgstr "n'a pas pu déterminer le répertoire courant" -#: option.c:259 +#: option.c:275 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "ne peut pas exécuter pg_upgrade depuis le répertoire de données de la nouvelle instance sur Windows" -#: option.c:268 +#: option.c:284 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1097,12 +1349,12 @@ msgstr "" "pg_upgrade met à jour une instance PostgreSQL vers une version majeure\n" "différente.\n" -#: option.c:269 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: option.c:270 +#: option.c:286 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1111,19 +1363,19 @@ msgstr "" " pg_upgrade [OPTION]...\n" "\n" -#: option.c:271 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "Options :\n" -#: option.c:272 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr "" " -b, --old-bindir=RÉP_BIN répertoire des exécutables de l'ancienne\n" " instance\n" -#: option.c:273 +#: option.c:289 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1133,121 +1385,131 @@ msgstr "" " instance (par défaut, le même répertoire que\n" " pg_upgrade)\n" -#: option.c:275 +#: option.c:291 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr "" " -c, --check vérifie seulement les instances, pas de\n" " modifications\n" -#: option.c:276 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=RÉP_DONNÉES répertoire des données de l'ancienne instance\n" -#: option.c:277 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=RÉP_DONNÉES répertoire des données de la nouvelle instance\n" -#: option.c:278 +#: option.c:294 #, 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 à\n" " utiliser\n" -#: option.c:279 +#: option.c:295 #, 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\n" " nouvelle instance\n" -#: option.c:280 +#: option.c:296 #, 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\n" " écrites sur disque\n" -#: option.c:281 +#: option.c:297 #, 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\n" " instance\n" -#: option.c:282 +#: option.c:298 #, 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\n" " instance\n" -#: option.c:283 +#: option.c:299 #, 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\n" " défaut %d)\n" -#: option.c:284 +#: option.c:300 #, 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\n" " défaut %d)\n" -#: option.c:285 +#: option.c:301 #, 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\n" " de succès\n" -#: option.c:286 +#: option.c:302 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr "" " -s, --socketdir=RÉP_SOCKET répertoire de la socket à utiliser (par défaut\n" " le répertoire courant)\n" -#: option.c:287 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr "" " -U, --username=NOM super-utilisateur de l'instance (par défaut\n" " « %s »)\n" -#: option.c:288 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose active des traces internes verbeuses\n" -#: option.c:289 +#: option.c:305 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version affiche la version, puis quitte\n" -#: option.c:290 +#: option.c:306 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr "" " --clone clone au lieu de copier les fichiers vers la\n" " nouvelle instance\n" -#: option.c:291 +#: option.c:307 #, c-format msgid " --copy copy files to new cluster (default)\n" -msgstr " --copy copie les fichiers vers la nouvelle instance (par défaut)\n" +msgstr " --copy copie les fichiers vers la nouvelle instance (par défaut)\n" -#: option.c:292 +#: option.c:308 +#, c-format +msgid " --copy-file-range copy files to new cluster with copy_file_range\n" +msgstr " --copy-file-range copie les fichiers vers la nouvelle instance avec copy_file_range\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHODE configure la méthode pour synchroniser les fichiers sur disque\n" + +#: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide, puis quitte\n" -#: option.c:293 +#: option.c:311 #, c-format msgid "" "\n" @@ -1263,7 +1525,7 @@ msgstr "" " arrêter le postmaster de la nouvelle instance\n" "\n" -#: option.c:298 +#: option.c:316 #, c-format msgid "" "\n" @@ -1280,7 +1542,7 @@ msgstr "" " le répertoire « bin » pour l'ancienne version (-b RÉP_BIN)\n" " le répertoire « bin » pour la nouvelle version (-B RÉP_BIN)\n" -#: option.c:304 +#: option.c:322 #, c-format msgid "" "\n" @@ -1293,7 +1555,7 @@ msgstr "" " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n" "ou\n" -#: option.c:309 +#: option.c:327 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1308,7 +1570,7 @@ msgstr "" " $ export PGBINNEW=newCluster/bin\n" " $ pg_upgrade\n" -#: option.c:315 +#: option.c:333 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1323,7 +1585,7 @@ msgstr "" " C:\\> set PGBINNEW=newCluster/bin\n" " C:\\> pg_upgrade\n" -#: option.c:321 +#: option.c:339 #, c-format msgid "" "\n" @@ -1332,12 +1594,12 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: option.c:322 +#: option.c:340 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: option.c:362 +#: option.c:380 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1346,45 +1608,50 @@ msgstr "" "Vous devez identifier le répertoire où le %s.\n" "Merci d'utiliser l'option en ligne de commande %s ou la variable d'environnement %s." -#: option.c:415 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Recherche du vrai répertoire des données pour l'instance source" -#: option.c:417 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Recherche du vrai répertoire des données pour l'instance cible" -#: option.c:430 option.c:435 +#: option.c:448 +#, c-format +msgid "could not get data directory using %s: %m" +msgstr "n'a pas pu obtenir le répertoire des données en utilisant %s : %m" + +#: option.c:452 #, c-format msgid "could not get data directory using %s: %s" msgstr "n'a pas pu obtenir le répertoire des données en utilisant %s : %s" -#: option.c:484 +#: option.c:500 #, c-format -msgid "could not read line %d from file \"%s\": %s" -msgstr "n'a pas pu lire la ligne %d du fichier « %s » : %s" +msgid "could not read line %d from file \"%s\": %m" +msgstr "n'a pas pu lire la ligne %d du fichier « %s » : %m" -#: option.c:501 +#: option.c:517 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "ancien numéro de port %hu fourni par l'utilisateur corrigé en %hu" #: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker process: %s" -msgstr "n'a pas pu créer le processus de travail : %s" +msgid "could not create worker process: %m" +msgstr "n'a pas pu créer le processus worker : %m" #: parallel.c:143 parallel.c:253 #, c-format -msgid "could not create worker thread: %s" -msgstr "n'a pas pu créer le fil de travail: %s" +msgid "could not create worker thread: %m" +msgstr "n'a pas pu créer le fil de travail: %m" #: parallel.c:294 #, c-format -msgid "%s() failed: %s" -msgstr "échec de %s() : %s" +msgid "%s() failed: %m" +msgstr "échec de %s() : %m" #: parallel.c:298 #, c-format @@ -1393,15 +1660,15 @@ msgstr "le processus fils a quitté anormalement : statut %d" #: parallel.c:313 #, c-format -msgid "child worker exited abnormally: %s" -msgstr "le processus fils a quitté anormalement : %s" +msgid "child worker exited abnormally: %m" +msgstr "le processus fils a quitté anormalement : %m" -#: pg_upgrade.c:107 +#: pg_upgrade.c:115 #, c-format -msgid "could not read permissions of directory \"%s\": %s" -msgstr "n'a pas pu lire les droits du répertoire « %s » : %s" +msgid "could not read permissions of directory \"%s\": %m" +msgstr "n'a pas pu lire les droits du répertoire « %s » : %m" -#: pg_upgrade.c:139 +#: pg_upgrade.c:147 #, c-format msgid "" "\n" @@ -1412,17 +1679,17 @@ msgstr "" "Réalisation de la mise à jour\n" "-----------------------------" -#: pg_upgrade.c:184 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "Configuration du prochain OID sur la nouvelle instance" -#: pg_upgrade.c:193 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "Synchronisation du répertoire des données sur disque" -#: pg_upgrade.c:205 +#: pg_upgrade.c:230 #, c-format msgid "" "\n" @@ -1433,23 +1700,23 @@ msgstr "" "Mise à jour terminée\n" "--------------------" -#: pg_upgrade.c:238 pg_upgrade.c:251 pg_upgrade.c:258 pg_upgrade.c:265 -#: pg_upgrade.c:283 pg_upgrade.c:294 +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 #, c-format msgid "directory path for new cluster is too long" msgstr "le chemin du répertoire pour la nouvelle instance est trop long" -#: pg_upgrade.c:272 pg_upgrade.c:274 pg_upgrade.c:276 pg_upgrade.c:278 +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 #, c-format msgid "could not create directory \"%s\": %m" msgstr "n'a pas pu créer le répertoire « %s » : %m" -#: pg_upgrade.c:327 +#: pg_upgrade.c:352 #, c-format msgid "%s: could not find own program executable" msgstr "%s : n'a pas pu trouver l'exécutable du programme" -#: pg_upgrade.c:353 +#: pg_upgrade.c:378 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1458,7 +1725,7 @@ msgstr "" "Il semble qu'un postmaster est démarré sur l'ancienne instance.\n" "Merci d'arrêter ce postmaster et d'essayer de nouveau." -#: pg_upgrade.c:366 +#: pg_upgrade.c:391 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1467,81 +1734,86 @@ msgstr "" "Il semble qu'un postmaster est démarré sur la nouvelle instance.\n" "Merci d'arrêter ce postmaster et d'essayer de nouveau." -#: pg_upgrade.c:388 +#: pg_upgrade.c:413 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "Configuration de la locale et de l'encodage pour la nouvelle instance" -#: pg_upgrade.c:450 +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Analyse de toutes les lignes dans la nouvelle instance" -#: pg_upgrade.c:463 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Gel de toutes les lignes dans la nouvelle instance" -#: pg_upgrade.c:483 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Restauration des objets globaux dans la nouvelle instance" -#: pg_upgrade.c:499 +#: pg_upgrade.c:538 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "Restauration des schémas des bases de données dans la nouvelle instance" -#: pg_upgrade.c:605 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "Suppression des fichiers à partir du nouveau %s" -#: pg_upgrade.c:609 +#: pg_upgrade.c:666 #, c-format msgid "could not delete directory \"%s\"" msgstr "n'a pas pu supprimer le répertoire « %s »" -#: pg_upgrade.c:628 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "Copie de l'ancien %s vers le nouveau serveur" -#: pg_upgrade.c:654 +#: pg_upgrade.c:711 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Configuration du plus ancien XID sur la nouvelle instance" -#: pg_upgrade.c:662 +#: pg_upgrade.c:719 #, 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:692 +#: pg_upgrade.c:749 #, 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:716 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Configuration du plus ancien identifiant multixact sur la nouvelle instance" -#: pg_upgrade.c:736 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "Réinitialisation des archives WAL" -#: pg_upgrade.c:779 +#: pg_upgrade.c:836 #, 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:781 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Configuration du compteur minmxid dans la nouvelle instance" +#: pg_upgrade.c:929 +#, c-format +msgid "Restoring logical replication slots in the new cluster" +msgstr "Restauration des slots de réplication logique dans la nouvelle instance" + #: relfilenumber.c:35 #, c-format msgid "Cloning user relation files" @@ -1554,35 +1826,45 @@ msgstr "Copie des fichiers des relations utilisateurs" #: relfilenumber.c:41 #, c-format +msgid "Copying user relation files with copy_file_range" +msgstr "Copie des fichiers des relations utilisateurs avec copy_file_range" + +#: relfilenumber.c:44 +#, c-format msgid "Linking user relation files" msgstr "Création des liens pour les fichiers des relations utilisateurs" -#: relfilenumber.c:115 +#: relfilenumber.c:118 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "ancienne base de données « %s » introuvable dans la nouvelle instance" -#: relfilenumber.c:218 +#: relfilenumber.c:221 #, c-format -msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "erreur lors de la vérification de l'existence du fichier « %s.%s » (« %s » vers « %s ») : %s" +msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "erreur lors de la vérification de l'existence du fichier « %s.%s » (« %s » vers « %s ») : %m" -#: relfilenumber.c:236 +#: relfilenumber.c:238 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "réécriture de « %s » en « %s »" -#: relfilenumber.c:244 +#: relfilenumber.c:246 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "clonage de « %s » en « %s »" -#: relfilenumber.c:249 +#: relfilenumber.c:251 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "copie de « %s » en « %s »" -#: relfilenumber.c:254 +#: relfilenumber.c:256 +#, c-format +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "copie de « %s » en « %s » avec copy_file_range" + +#: relfilenumber.c:261 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "lien de « %s » vers « %s »" @@ -1618,7 +1900,7 @@ msgstr "n'a pas pu ouvrir le fichier de version « %s » : %m" msgid "could not parse version file \"%s\"" msgstr "n'a pas pu analyser le fichier de version « %s »" -#: server.c:288 +#: server.c:310 #, c-format msgid "" "\n" @@ -1627,7 +1909,7 @@ msgstr "" "\n" "%s" -#: server.c:292 +#: server.c:314 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1636,7 +1918,7 @@ msgstr "" "n'a pas pu se connecter au postmaster source lancé avec la commande :\n" "%s" -#: server.c:296 +#: server.c:318 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1645,22 +1927,22 @@ msgstr "" "n'a pas pu se connecter au postmaster cible lancé avec la commande :\n" "%s" -#: server.c:310 +#: server.c:332 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl a échoué à démarrer le serveur source ou connexion échouée" -#: server.c:312 +#: server.c:334 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl a échoué à démarrer le serveur cible ou connexion échouée" -#: server.c:357 +#: server.c:379 #, c-format msgid "out of memory" msgstr "mémoire épuisée" -#: server.c:370 +#: server.c:392 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "la variable d'environnement libpq %s a une valeur serveur non locale : %s" @@ -1681,8 +1963,8 @@ msgstr "le répertoire « %s » du tablespace n'existe pas" #: tablespace.c:87 #, c-format -msgid "could not stat tablespace directory \"%s\": %s" -msgstr "n'a pas pu tester le répertoire « %s » du tablespace : %s" +msgid "could not stat tablespace directory \"%s\": %m" +msgstr "n'a pas pu tester le répertoire « %s » du tablespace : %m" #: tablespace.c:92 #, c-format @@ -1704,62 +1986,17 @@ msgstr "n'a pas pu accéder au répertoire « %s » : %m" msgid "ok" msgstr "ok" -#: version.c:184 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "Vérification des types de données line incompatibles" - -#: version.c:193 -#, c-format -msgid "" -"Your installation contains the \"line\" data type in user tables.\n" -"This data type changed its internal and input/output format\n" -"between your old and new versions so this\n" -"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" -msgstr "" -"Votre installation contient le type de données « line » dans vos tables utilisateurs.\n" -"Ce type de données a changé de format interne et en entrée/sortie entre vos ancienne\n" -"et nouvelle versions, donc cette instance ne peut pas être mise à jour\n" -"actuellement. Vous pouvez supprimer les colonnes problématiques et relancer la mise à jour.\n" -"Une liste des colonnes problématiques se trouve dans le fichier :\n" -" %s" - -#: version.c:224 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "Vérification des colonnes utilisateurs « unknown » invalides" - -#: version.c:233 -#, c-format -msgid "" -"Your installation contains the \"unknown\" data type in user tables.\n" -"This data type is no longer allowed in tables, so this\n" -"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" -msgstr "" -"Votre installation contient le type de données « unknown » dans vos tables\n" -"utilisateurs. Ce type de données n'est plus autorisé dans les tables, donc\n" -"cette instance ne peut pas être mise à jour pour l'instant. Vous pouvez\n" -"supprimer les colonnes problématiques, puis relancer la mise à jour. Vous trouverez\n" -"une liste des colonnes problématiques dans le fichier :\n" -" %s" - -#: version.c:257 +#: version.c:44 #, c-format msgid "Checking for hash indexes" msgstr "Vérification des index hash" -#: version.c:335 +#: version.c:121 #, c-format msgid "warning" msgstr "attention" -#: version.c:337 +#: version.c:123 #, c-format msgid "" "\n" @@ -1774,7 +2011,7 @@ msgstr "" "être recréés avec la commande REINDEX. Après la mise à jour, les instructions\n" "REINDEX vous seront données." -#: version.c:343 +#: version.c:129 #, c-format msgid "" "\n" @@ -1793,39 +2030,17 @@ msgstr "" "une fois exécuté par psql en tant que superutilisateur va recréer tous les\n" "index invalides. Avant cela, aucun de ces index ne sera utilisé." -#: version.c:369 -#, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "Vérification des colonnes utilisateurs « sql_identifier » invalides" - -#: version.c:379 -#, c-format -msgid "" -"Your installation contains the \"sql_identifier\" data type in user tables.\n" -"The on-disk format for this data type has changed, so this\n" -"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" -msgstr "" -"Votre installation contient le type de données « sql_identifier » dans les tables\n" -"utilisateurs. Le format sur disque pour ce type de données a changé,\n" -"donc cette instance ne peut pas être mise à jour actuellement. Vous pouvez supprimer\n" -"les colonnes problématiques, puis relancer la mise à jour.\n" -"Une liste des colonnes problématiques se trouve dans le fichier :\n" -" %s" - -#: version.c:402 +#: version.c:153 #, c-format msgid "Checking for extension updates" msgstr "Vérification des mises à jour d'extension" -#: version.c:450 +#: version.c:200 #, c-format msgid "notice" msgstr "notice" -#: version.c:451 +#: version.c:201 #, c-format msgid "" "\n" @@ -1841,295 +2056,3 @@ msgstr "" " %s\n" "une fois exécuté par psql par le superutilisateur mettre à jour\n" "ces extensions." - -#, c-format -#~ msgid "" -#~ "\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "\n" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#, c-format -#~ msgid "" -#~ "\n" -#~ "The old cluster has a \"plpython_call_handler\" function defined\n" -#~ "in the \"public\" schema which is a duplicate of the one defined\n" -#~ "in the \"pg_catalog\" schema. You can confirm this by executing\n" -#~ "in psql:\n" -#~ "\n" -#~ " \\df *.plpython_call_handler\n" -#~ "\n" -#~ "The \"public\" schema version of this function was created by a\n" -#~ "pre-8.1 install of plpython, and must be removed for pg_upgrade\n" -#~ "to complete because it references a now-obsolete \"plpython\"\n" -#~ "shared object file. You can remove the \"public\" schema version\n" -#~ "of this function by running the following command:\n" -#~ "\n" -#~ " DROP FUNCTION public.plpython_call_handler()\n" -#~ "\n" -#~ "in each affected database:\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "L'ancienne instance comprend une fonction « plpython_call_handler »\n" -#~ "définie dans le schéma « public » qui est un duplicat de celle définie\n" -#~ "dans le schéma « pg_catalog ». Vous pouvez confirmer cela en\n" -#~ "exécutant dans psql :\n" -#~ "\n" -#~ " \\df *.plpython_call_handler\n" -#~ "\n" -#~ "La version de cette fonction dans le schéma « public » a été créée\n" -#~ "par une installation de plpython antérieure à la version 8.1 et doit\n" -#~ "être supprimée pour que pg_upgrade puisse termine parce qu'elle\n" -#~ "référence un fichier objet partagé « plpython » maintenant obsolète.\n" -#~ "Vous pouvez supprimer la version de cette fonction dans le schéma\n" -#~ "« public » en exécutant la commande suivante :\n" -#~ "\n" -#~ " DROP FUNCTION public.plpython_call_handler()\n" -#~ "\n" -#~ "dans chaque base de données affectée :\n" -#~ "\n" - -#, c-format -#~ msgid "" -#~ "\n" -#~ "Your installation contains large objects. The new database has an\n" -#~ "additional large object permission table, so default permissions must be\n" -#~ "defined for all large objects. The file\n" -#~ " %s\n" -#~ "when executed by psql by the database superuser will set the default\n" -#~ "permissions.\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "Votre installation contient des Large Objects. La nouvelle base de données\n" -#~ "a une table de droit supplémentaire pour les Large Objects, donc les droits\n" -#~ "par défaut doivent être définies pour tous les Large Objects. Le fichier\n" -#~ " %s\n" -#~ "une fois exécuté par psql avec un superutilisateur définira les droits par\n" -#~ "défaut.\n" -#~ "\n" - -#, c-format -#~ msgid "" -#~ "\n" -#~ "Your installation contains large objects. The new database has an\n" -#~ "additional large object permission table. After upgrading, you will be\n" -#~ "given a command to populate the pg_largeobject_metadata table with\n" -#~ "default permissions.\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "Votre installation contient des Large Objects. La nouvelle base de données a une table de droit supplémentaire sur les Large Objects.\n" -#~ "Après la mise à jour, vous disposerez d'une commande pour peupler la table pg_largeobject_metadata avec les droits par défaut.\n" -#~ "\n" - -#~ msgid "" -#~ "\n" -#~ "connection to database failed: %s" -#~ msgstr "" -#~ "\n" -#~ "échec de la connexion à la base de données : %s" - -#, c-format -#~ msgid " " -#~ msgstr " " - -#, c-format -#~ msgid " %s\n" -#~ msgstr " %s\n" - -#~ msgid "" -#~ " --index-collation-versions-unknown\n" -#~ " mark text indexes as needing to be rebuilt\n" -#~ msgstr "" -#~ " --index-collation-versions-unknown\n" -#~ " marque les index de colonnes de type text comme nécessitant une reconstruction\n" - -#, c-format -#~ msgid "\"%s\" is not a directory\n" -#~ msgstr "« %s » n'est pas un répertoire\n" - -#, c-format -#~ msgid "%-*s\n" -#~ msgstr "%-*s\n" - -#, c-format -#~ msgid "%s\n" -#~ msgstr "%s\n" - -#~ msgid "%s is not a directory\n" -#~ msgstr "%s n'est pas un répertoire\n" - -#, c-format -#~ msgid "%s.%s: %u to %u\n" -#~ msgstr "%s.%s : %u vers %u\n" - -#~ msgid "----------------\n" -#~ msgstr "----------------\n" - -#~ msgid "------------------\n" -#~ msgstr "------------------\n" - -#~ msgid "-----------------------------\n" -#~ msgstr "-----------------------------\n" - -#~ msgid "------------------------------------------------\n" -#~ msgstr "------------------------------------------------\n" - -#, 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" - -#~ msgid "Cannot open file %s: %m\n" -#~ msgstr "Ne peut pas ouvrir le fichier %s : %m\n" - -#~ msgid "Cannot read line %d from %s: %m\n" -#~ msgstr "Ne peut pas lire la ligne %d à partir de %s : %m\n" - -#, c-format -#~ msgid "Checking for large objects" -#~ msgstr "Vérification des Large Objects" - -#~ msgid "Creating script to analyze new cluster" -#~ msgstr "Création d'un script pour analyser la nouvelle instance" - -#, c-format -#~ msgid "ICU locale values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -#~ msgstr "les valeurs de la locale ICU de la base de données « %s » ne correspondent pas : ancien « %s », nouveau « %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" -#~ 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" - -#, c-format -#~ msgid "Remove the problem functions from the old cluster to continue.\n" -#~ msgstr "Supprimez les fonctions problématiques de l'ancienne instance pour continuer.\n" - -#, 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" - -#, 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" - -#~ 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" - -#, c-format -#~ msgid "Unable to rename %s to %s.\n" -#~ msgstr "Incapable de renommer %s à %s.\n" - -#, 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" - -#~ 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" - -#, c-format -#~ msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -#~ msgstr "échec de la vérification de « %s » : ne peut pas exécuter (droit refusé)\n" - -#~ msgid "check for \"%s\" failed: cannot read file (permission denied)\n" -#~ msgstr "échec de la vérification de « %s » : ne peut pas lire le fichier (droit refusé)\n" - -#, c-format -#~ msgid "check for \"%s\" failed: not a regular file\n" -#~ msgstr "échec de la vérification de « %s » : pas un fichier régulier\n" - -#~ msgid "connection to database failed: %s" -#~ msgstr "échec de la connexion à la base de données : %s" - -#, c-format -#~ msgid "could not access directory \"%s\": %m\n" -#~ msgstr "n'a pas pu accéder au répertoire « %s » : %m\n" - -#, c-format -#~ msgid "could not create directory \"%s\": %m\n" -#~ msgstr "n'a pas pu créer le répertoire « %s » : %m\n" - -#~ msgid "" -#~ "could not load library \"%s\":\n" -#~ "%s\n" -#~ msgstr "" -#~ "n'a pas pu charger la biblothèque « %s »:\n" -#~ "%s\n" - -#, c-format -#~ msgid "could not open file \"%s\": %s\n" -#~ msgstr "n'a pas pu ouvrir le fichier « %s » : %s\n" - -#, c-format -#~ msgid "could not open log file \"%s\": %m\n" -#~ msgstr "n'a pas pu ouvrir le journal applicatif « %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" - -#, 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" - -#, 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" - -#, c-format -#~ msgid "failed to get the current locale\n" -#~ msgstr "a échoué pour obtenir la locale courante\n" - -#, c-format -#~ msgid "failed to restore old locale \"%s\"\n" -#~ msgstr "a échoué pour restaurer l'ancienne locale « %s »\n" - -#, 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" - -#, 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" - -#, c-format -#~ msgid "locale providers for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -#~ msgstr "les fournisseurs de locale pour la base de données « %s » ne correspondent pas : ancien « %s », nouveau « %s »\n" - -#, c-format -#~ msgid "mappings for database \"%s\":\n" -#~ msgstr "correspondances pour la base de données « %s » :\n" - -#, c-format -#~ msgid "out of memory\n" -#~ msgstr "mémoire épuisée\n" - -#, c-format -#~ msgid "too many command-line arguments (first is \"%s\")\n" -#~ msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)\n" - -#~ msgid "waitpid() failed: %s\n" -#~ msgstr "échec de waitpid() : %s\n" diff --git a/src/bin/pg_upgrade/po/ja.po b/src/bin/pg_upgrade/po/ja.po index 91f5bd9b843bf..0994211cdf4aa 100644 --- a/src/bin/pg_upgrade/po/ja.po +++ b/src/bin/pg_upgrade/po/ja.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_upgrade (PostgreSQL 17)\n" +"Project-Id-Version: pg_upgrade (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:24+0900\n" -"PO-Revision-Date: 2024-06-14 11:30+0900\n" +"POT-Creation-Date: 2025-04-14 09:41+0900\n" +"PO-Revision-Date: 2025-04-14 10:26+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -50,12 +50,12 @@ msgstr "ユーザーが存在しません" msgid "user name lookup failure: error code %lu" msgstr "ユーザー名の参照に失敗: エラーコード %lu" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" @@ -225,34 +225,34 @@ msgstr "" "このクラスタは現時点ではアップグレードできません。問題の列を削除するか、\n" "他のデータ型に変更した後にアップグレードを再実行できます。\n" -#: check.c:345 +#: check.c:421 #, c-format -msgid "Checking for data type usage" -msgstr "データ型の使用を確認しています" - -#: check.c:480 -#, c-format -msgid " failed check: %s" -msgstr " 問題を検出した項目: %s" +msgid "failed check: %s" +msgstr "問題を検出した項目: %s" -#: check.c:483 +#: check.c:424 msgid "A list of the problem columns is in the file:" msgstr "問題の列の一覧は以下のファイルにあります:" -#: check.c:495 check.c:961 check.c:1134 check.c:1249 check.c:1343 check.c:1471 -#: check.c:1547 check.c:1611 check.c:1684 check.c:1866 check.c:1885 -#: check.c:1954 check.c:2006 file.c:378 file.c:415 function.c:189 option.c:493 -#: version.c:79 version.c:177 +#: check.c:430 check.c:1026 check.c:1177 check.c:1260 check.c:1349 check.c:1440 +#: check.c:1572 check.c:1657 check.c:1704 check.c:1784 check.c:2089 +#: check.c:2108 check.c:2154 check.c:2207 file.c:378 file.c:415 function.c:208 +#: option.c:519 version.c:79 version.c:162 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: check.c:522 +#: check.c:472 +#, c-format +msgid "Checking data type usage" +msgstr "データ型の使用を確認しています" + +#: check.c:526 #, c-format msgid "Data type checks failed: %s" msgstr "問題を検出したデータ型確認項目: %s" -#: check.c:563 +#: check.c:575 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -261,7 +261,7 @@ msgstr "" "元の実行中サーバーの一貫性チェックを実行しています。\n" "--------------------------------------------------" -#: check.c:569 +#: check.c:581 #, c-format msgid "" "Performing Consistency Checks\n" @@ -270,7 +270,12 @@ msgstr "" "整合性チェックを実行しています。\n" "-----------------------------" -#: check.c:716 +#: check.c:745 +#, c-format +msgid "Swap mode can only upgrade clusters from PostgreSQL version %s and later." +msgstr "スワップモードはPostgreSQL %s以降のバージョンからのアップグレードのみ可能です。" + +#: check.c:768 #, c-format msgid "" "\n" @@ -279,7 +284,7 @@ msgstr "" "\n" "* クラスタは互換性があります *" -#: check.c:724 +#: check.c:776 #, c-format msgid "" "\n" @@ -290,18 +295,18 @@ msgstr "" "この後pg_upgradeが失敗した場合は、続ける前に新しいクラスタを\n" "initdbで再作成する必要があります。" -#: check.c:765 +#: check.c:817 #, c-format msgid "" -"Optimizer statistics are not transferred by pg_upgrade.\n" +"Some optimizer statistics may not have been transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" -" %s/vacuumdb %s--all --analyze-in-stages" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only" msgstr "" -"オプティマイザーの統計は、pg_upgrade では転送されません。そのため\n" -"新サーバーを起動した後、以下を行うことを検討してください。\n" -" %s/vacuumdb %s--all --analyze-in-stages" +"オプティマイザー統計の一部は pg_upgrade で転送されなかった可能性があります。\n" +"新しいサーバーを起動した後、次の操作を検討してください。\n" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only" -#: check.c:771 +#: check.c:823 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -310,7 +315,7 @@ msgstr "" "このスクリプトを実行すると、旧クラスタのデータファイルが削除されます:\n" " %s" -#: check.c:776 +#: check.c:828 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -323,57 +328,62 @@ msgstr "" "ファイルを削除するためのスクリプトを作成できませんでした。 古い\n" "クラスタの内容は手動で削除する必要があります。" -#: check.c:788 +#: check.c:840 #, c-format msgid "Checking cluster versions" msgstr "クラスタのバージョンを確認しています" -#: check.c:800 +#: check.c:852 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "このユーティリティではPostgreSQLバージョン%s以降のバージョンからのみアップグレードできます。" -#: check.c:805 +#: check.c:857 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "このユーティリティは、PostgreSQLバージョン%sにのみアップグレードできます。" -#: check.c:814 +#: check.c:866 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "このユーティリティは PostgreSQL の過去のメジャーバージョンにダウングレードする用途では使用できません。" -#: check.c:819 +#: check.c:871 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "旧クラスタのデータとバイナリのディレクトリは異なるメジャーバージョンのものです。" -#: check.c:822 +#: check.c:874 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "新クラスタのデータとバイナリのディレクトリは異なるメジャーバージョンのものです。" -#: check.c:837 +#: check.c:885 +#, c-format +msgid "%s option cannot be used to upgrade from PostgreSQL %s and later." +msgstr "PostgreSQL %s以降からのアップグレードでは %s オプションは使用できません。" + +#: check.c:901 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "稼働中のサーバーをチェックする場合、新旧のポート番号が異なっている必要があります。" -#: check.c:857 +#: check.c:921 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "新クラスタのデータベース\"%s\"が空ではありません: リレーション\"%s.%s\"が見つかりました" -#: check.c:880 +#: check.c:944 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "新しいクラスタのテーブル空間ディレクトリを確認しています" -#: check.c:891 +#: check.c:955 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "新しいクラスタのテーブル空間ディレクトリはすでに存在します: \"%s\"" -#: check.c:924 +#: check.c:989 #, c-format msgid "" "\n" @@ -382,7 +392,7 @@ msgstr "" "\n" "警告: 新データディレクトリが旧データディレクトリ、つまり %sの中にあってはなりません" -#: check.c:948 +#: check.c:1013 #, c-format msgid "" "\n" @@ -391,92 +401,92 @@ msgstr "" "\n" "警告: ユーザー定義テーブル空間の場所がデータディレクトリ、つまり %s の中にあってはなりません。" -#: check.c:958 +#: check.c:1023 #, c-format msgid "Creating script to delete old cluster" msgstr "旧クラスタを削除するスクリプトを作成しています" -#: check.c:1012 +#: check.c:1051 #, c-format msgid "could not add execute permission to file \"%s\": %m" msgstr "ファイル\"%s\"に実行権限を追加できませんでした: %m" -#: check.c:1032 +#: check.c:1071 #, c-format msgid "Checking database user is the install user" msgstr "データベースユーザーがインストールユーザーかどうかをチェックしています" -#: check.c:1048 +#: check.c:1087 #, c-format msgid "database user \"%s\" is not the install user" msgstr "データベースユーザー\"%s\"がインストールユーザーではありません" -#: check.c:1059 +#: check.c:1098 #, c-format msgid "could not determine the number of users" msgstr "ユーザー数を特定できませんでした" -#: check.c:1067 +#: check.c:1106 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "新クラスタ内で定義できるのはインストールユーザーのみです。" -#: check.c:1096 +#: check.c:1136 #, c-format msgid "Checking database connection settings" msgstr "データベース接続の設定を確認しています" -#: check.c:1122 +#: check.c:1164 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0 には接続を許可してはなりません。すなわち、pg_database.datallowconn は false である必要があります" -#: check.c:1148 check.c:1268 check.c:1365 check.c:1490 check.c:1566 -#: check.c:1624 check.c:1704 check.c:1898 check.c:2023 function.c:210 +#: check.c:1191 check.c:1312 check.c:1408 check.c:1536 check.c:1612 +#: check.c:1670 check.c:1753 check.c:2121 check.c:2263 function.c:229 #, c-format msgid "fatal" msgstr "致命的" -#: check.c:1149 +#: check.c:1192 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" -"pg_database.datallowconn must be true. Your installation contains\n" -"non-template0 databases with their pg_database.datallowconn set to\n" -"false. Consider allowing connection for all non-template0 databases\n" -"or drop the databases which do not allow connections. A list of\n" -"databases with the problem is in the file:\n" +"pg_database.datallowconn must be true and pg_database.datconnlimit\n" +"must not be -2. Your installation contains non-template0 databases\n" +"which cannot be connected to. Consider allowing connection for all\n" +"non-template0 databases or drop the databases which do not allow\n" +"connections. A list of databases with the problem is in the file:\n" " %s" msgstr "" "template0ではないすべてのデータベースは接続を許可しなければなりません、つまり\n" -"pg_database.datallowconnがtrueでなければなりません。このクラスタには\n" -"pg_database.datallowconnがfalseとなっているtemplate0以外のデータベースが\n" +"pg_database.datallowconnがtrue、そしてpg_database.datconnlimitが-2以外の\n" +"値でなければなりません。このクラスタには接続不可なtemplate0以外のデータベースが\n" "存在しています。template0以外のすべてのデータベースへの接続を許可するか、接続が\n" -"許可されないデータベースをすべて削除することを検討してください。問題のあるデータベースの\n" +"許可されないデータベースを削除することを検討してください。問題のあるデータベースの\n" "一覧が以下のファイルにあります:\n" " %s" -#: check.c:1174 +#: check.c:1217 #, c-format msgid "Checking for prepared transactions" msgstr "準備済みトランザクションをチェックしています" -#: check.c:1183 +#: check.c:1226 #, c-format msgid "The source cluster contains prepared transactions" msgstr "移行元クラスタに準備済みトランザクションがあります" -#: check.c:1185 +#: check.c:1228 #, c-format msgid "The target cluster contains prepared transactions" msgstr "移行先クラスタに準備済みトランザクションがあります" -#: check.c:1210 +#: check.c:1288 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "bigint を渡す際にミスマッチが発生する contrib/isn をチェックしています" -#: check.c:1269 +#: check.c:1313 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -496,12 +506,12 @@ msgstr "" "問題のある関数の一覧は以下のファイルにあります:\n" " %s" -#: check.c:1291 +#: check.c:1393 #, c-format msgid "Checking for user-defined postfix operators" msgstr "ユーザー定義の後置演算子を確認しています" -#: check.c:1366 +#: check.c:1409 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -516,12 +526,12 @@ msgstr "" "以下のファイルにユーザー定義後置演算子の一覧があります:\n" " %s" -#: check.c:1390 +#: check.c:1464 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "非互換の多態関数を確認しています" -#: check.c:1491 +#: check.c:1537 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -539,12 +549,12 @@ msgstr "" "問題となるオブジェクトの一覧は以下のファイルにあります:\n" " %s" -#: check.c:1515 +#: check.c:1597 #, c-format msgid "Checking for tables WITH OIDS" msgstr "WITH OIDS宣言されたテーブルをチェックしています" -#: check.c:1567 +#: check.c:1613 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -559,12 +569,12 @@ msgstr "" "以下のファイルにこの問題を抱えるテーブルの一覧があります:\n" " %s" -#: check.c:1594 +#: check.c:1640 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "'pg_' で始まるロールをチェックしています" -#: check.c:1625 +#: check.c:1671 #, c-format msgid "" "Your installation contains roles starting with \"pg_\".\n" @@ -580,12 +590,12 @@ msgstr "" "\"pg_\"で始まるロールの一覧は以下のファイルにあります:\n" " %s" -#: check.c:1645 +#: check.c:1725 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "ユーザー定義のエンコーディング変換を確認しています" -#: check.c:1705 +#: check.c:1754 #, c-format msgid "" "Your installation contains user-defined encoding conversions.\n" @@ -603,55 +613,76 @@ msgstr "" "ユーザー定義のエンコーディング変換の一覧は以下のファイルにあります:\n" " %s" -#: check.c:1744 +#: check.c:1839 +#, c-format +msgid "Checking for objects affected by Unicode update" +msgstr "Unicodeの更新によって影響を受けるオブジェクトを確認しています" + +#: check.c:1933 version.c:121 +#, c-format +msgid "warning" +msgstr "警告" + +#: check.c:1934 +#, c-format +msgid "" +"Your installation contains relations that may be affected by a new version of Unicode.\n" +"A list of potentially-affected relations is in the file:\n" +" %s" +msgstr "" +"このクラスタにはUnicodeの新しいバージョンの影響を受ける可能性があるリレーションが含まれています。\n" +"影響を受ける可能性があるリレーションの一覧は以下のファイルにあります:\n" +" %s" + +#: check.c:1970 #, c-format msgid "Checking for new cluster logical replication slots" msgstr "新しいクラスタの論理レプリケーションスロットを確認しています" -#: check.c:1752 +#: check.c:1978 #, c-format msgid "could not count the number of logical replication slots" msgstr "論理レプリケーションスロットの数を数えられませんでした" -#: check.c:1757 +#: check.c:1983 #, c-format -msgid "Expected 0 logical replication slots but found %d." -msgstr "物理レプリケーションスロット数は0であることを期待していましたが %d スロットありました。" +msgid "expected 0 logical replication slots but found %d" +msgstr "論理レプリケーションスロット数は0であることを期待していましたが、%d個ありました" -#: check.c:1767 check.c:1821 +#: check.c:1993 check.c:2044 #, c-format msgid "could not determine parameter settings on new cluster" msgstr "新クラスタ上のパラメータ設定を決定できませんでした" -#: check.c:1772 +#: check.c:1998 #, c-format -msgid "\"wal_level\" must be \"logical\", but is set to \"%s\"" -msgstr "\"wal_level\"は\"logical\"でなければなりませんが、\"%s\"に設定されています" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "\"wal_level\"は\"logical\"でなければなりませんが\"%s\"に設定されています" -#: check.c:1778 +#: check.c:2004 #, c-format msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" msgstr "\"max_replication_slots\" (%d) は旧クラスタにおける論理レプリケーションスロットの数(%d)以上でなければなりません" -#: check.c:1813 +#: check.c:2036 #, c-format msgid "Checking for new cluster configuration for subscriptions" msgstr "新しいクラスタの構成のサブスクリプションを確認しています" -#: check.c:1825 +#: check.c:2048 #, c-format -msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" -msgstr "\"max_replication_slots\" (%d) は旧クラスタにおけるサブスクリプションの数(%d)以上でなければなりません" +msgid "\"max_active_replication_origins\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "\"max_active_replication_origins\" (%d) は旧クラスタにおけるサブスクリプションの数(%d)以上でなければなりません" -#: check.c:1847 +#: check.c:2070 #, c-format msgid "Checking for valid logical replication slots" msgstr "有効な論理レプリケーションスロットを確認しています" -#: check.c:1899 +#: check.c:2122 #, c-format msgid "" -"Your installation contains logical replication slots that can't be upgraded.\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" "You can remove invalid slots and/or consume the pending WAL for other slots,\n" "and then restart the upgrade.\n" "A list of the problematic slots is in the file:\n" @@ -663,12 +694,12 @@ msgstr "" "問題のある列の一覧は、以下のファイルにあります: \n" " %s" -#: check.c:1923 +#: check.c:2182 #, c-format msgid "Checking for subscription state" msgstr "サブスクリプション状態を確認しています" -#: check.c:2024 +#: check.c:2264 #, c-format msgid "" "Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" @@ -682,184 +713,189 @@ msgstr "" "問題のあるサブスクリプションの一覧は、以下のファイルにあります: \n" " %s" -#: controldata.c:129 controldata.c:199 +#: controldata.c:133 controldata.c:203 #, c-format msgid "could not get control data using %s: %m" msgstr "%sで制御情報が取得できませんでした: %m" -#: controldata.c:139 +#: controldata.c:143 #, c-format msgid "%d: database cluster state problem" msgstr "%d: データベースクラスタの状態異常" -#: controldata.c:158 +#: controldata.c:162 #, 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." msgstr "移行元クラスタはリカバリモード中にシャットダウンされています。アップグレードをするにはドキュメントの通りに \"rsync\" を実行するか、プライマリとしてシャットダウンしてください。" -#: controldata.c:160 +#: controldata.c:164 #, 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." msgstr "移行先クラスタはリカバリモード中にシャットダウンされています。アップグレードをするにはドキュメントの通りに \"rsync\" を実行するか、プライマリとしてシャットダウンしてください。" -#: controldata.c:165 +#: controldata.c:169 #, c-format msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "移行元クラスタはクリーンにシャットダウンされていません、状態は以下のように報告されています: \"%s\"" -#: controldata.c:167 +#: controldata.c:171 #, c-format msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "移行先クラスタはクリーンにシャットダウンされていません、状態は以下のように報告されています: \"%s\"" -#: controldata.c:175 controldata.c:507 +#: controldata.c:179 controldata.c:530 #, c-format msgid "could not get control data using %s: %s" msgstr "%s で制御情報が取得できませんでした。: %s" -#: controldata.c:181 +#: controldata.c:185 #, c-format msgid "The source cluster lacks cluster state information:" msgstr "移行元クラスタにクラスタ状態情報がありません:" -#: controldata.c:183 +#: controldata.c:187 #, c-format msgid "The target cluster lacks cluster state information:" msgstr "移行先クラスタにクラスタ状態情報がありません:" -#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 -#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 +#: controldata.c:217 dump.c:50 exec.c:118 pg_upgrade.c:606 pg_upgrade.c:646 +#: pg_upgrade.c:995 relfilenumber.c:610 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:220 +#: controldata.c:224 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d: pg_resetwal で問題発生" -#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 -#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 -#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 -#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 -#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 -#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 -#: controldata.c:486 controldata.c:497 +#: controldata.c:234 controldata.c:244 controldata.c:255 controldata.c:266 +#: controldata.c:277 controldata.c:296 controldata.c:307 controldata.c:318 +#: controldata.c:329 controldata.c:340 controldata.c:351 controldata.c:362 +#: controldata.c:365 controldata.c:369 controldata.c:379 controldata.c:391 +#: controldata.c:402 controldata.c:413 controldata.c:424 controldata.c:435 +#: controldata.c:446 controldata.c:457 controldata.c:468 controldata.c:479 +#: controldata.c:490 controldata.c:501 controldata.c:512 controldata.c:521 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d: 制御情報の取得で問題発生" -#: controldata.c:578 +#: controldata.c:618 #, c-format msgid "The source cluster lacks some required control information:" msgstr "移行元クラスタに必要な制御情報の一部がありません:" -#: controldata.c:581 +#: controldata.c:621 #, c-format msgid "The target cluster lacks some required control information:" msgstr "移行先クラスタに必要な制御情報の一部がありません:" -#: controldata.c:584 +#: controldata.c:624 #, c-format msgid " checkpoint next XID" msgstr " チェックポイントにおける次のXID" -#: controldata.c:587 +#: controldata.c:627 #, c-format msgid " latest checkpoint next OID" msgstr " 最新のチェックポイントにおける次のOID" -#: controldata.c:590 +#: controldata.c:630 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " 最新のチェックポイントにおける次のMultiXactId" -#: controldata.c:594 +#: controldata.c:634 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " 最新のチェックポイントにおける最古のMultiXactId" -#: controldata.c:597 +#: controldata.c:637 #, c-format msgid " latest checkpoint oldestXID" msgstr " 最新のチェックポイントにおける最古のXID" -#: controldata.c:600 +#: controldata.c:640 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " 最新のチェックポイントにおける次のMultiXactOffset" -#: controldata.c:603 +#: controldata.c:643 #, c-format msgid " first WAL segment after reset" msgstr " リセット後の最初のWALセグメント" -#: controldata.c:606 +#: controldata.c:646 #, c-format msgid " float8 argument passing method" msgstr " float8引数の引き渡し方法" -#: controldata.c:609 +#: controldata.c:649 #, c-format msgid " maximum alignment" msgstr " 最大アラインメント" -#: controldata.c:612 +#: controldata.c:652 #, c-format msgid " block size" msgstr " ブロックサイズ" -#: controldata.c:615 +#: controldata.c:655 #, c-format msgid " large relation segment size" msgstr " 大きなリレーションセグメントのサイズ" -#: controldata.c:618 +#: controldata.c:658 #, c-format msgid " WAL block size" msgstr " WALのブロックサイズ" -#: controldata.c:621 +#: controldata.c:661 #, c-format msgid " WAL segment size" msgstr " WALのセグメントサイズ" -#: controldata.c:624 +#: controldata.c:664 #, c-format msgid " maximum identifier length" msgstr " 識別子の最大長" -#: controldata.c:627 +#: controldata.c:667 #, c-format msgid " maximum number of indexed columns" msgstr " インデックス対象カラムの最大数" -#: controldata.c:630 +#: controldata.c:670 #, c-format msgid " maximum TOAST chunk size" msgstr " 最大のTOASTチャンクサイズ" -#: controldata.c:634 +#: controldata.c:674 #, c-format msgid " large-object chunk size" msgstr " ラージオブジェクトのチャンクサイズ" -#: controldata.c:637 +#: controldata.c:677 #, c-format msgid " dates/times are integers?" msgstr " 日付/時間が整数?" -#: controldata.c:641 +#: controldata.c:681 #, c-format msgid " data checksum version" msgstr " データチェックサムのバージョン" -#: controldata.c:643 +#: controldata.c:685 +#, c-format +msgid " default char signedness" +msgstr " デフォルトのchar型の符号の有無" + +#: controldata.c:687 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "必要な制御情報がないので続行できません。終了します" -#: controldata.c:658 +#: controldata.c:702 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -868,91 +904,106 @@ msgstr "" "新旧のpg_controldataのアラインメントが不正であるかかまたは一致しません\n" "一方のクラスタが32ビットで、他方が64ビットである可能性が高いです" -#: controldata.c:662 +#: controldata.c:706 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "新旧の pg_controldata におけるブロックサイズが有効でないかまたは一致しません" -#: controldata.c:665 +#: controldata.c:709 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "新旧の pg_controldata におけるリレーションの最大セグメントサイズが有効でないか一致しません" -#: controldata.c:668 +#: controldata.c:712 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "新旧の pg_controldata における WAL ブロックサイズが有効でないか一致しません" -#: controldata.c:671 +#: controldata.c:715 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "新旧の pg_controldata におけるWALセグメントサイズが有効でないか一致しません" -#: controldata.c:674 +#: controldata.c:718 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "新旧の pg_controldata における識別子の最大長が有効でないか一致しません" -#: controldata.c:677 +#: controldata.c:721 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "新旧の pg_controldata におけるインデックス付き列の最大数が有効でないか一致しません" -#: controldata.c:680 +#: controldata.c:724 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "新旧の pg_controldata におけるTOASTチャンクサイズの最大値が有効でないか一致しません" -#: controldata.c:685 +#: controldata.c:729 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "新旧の pg_controldata におけるラージオブジェクトのチャンクサイズが有効でないかまたは一致しません" -#: controldata.c:688 +#: controldata.c:732 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "新旧の pg_controldata における日付/時刻型データの保存バイト数が一致しません" -#: controldata.c:701 +#: controldata.c:745 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "旧クラスタではデータチェックサムを使用していませんが、新クラスタでは使用しています" -#: controldata.c:704 +#: controldata.c:748 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "旧クラスタではデータチェックサムを使用していますが、新クラスタでは使用していません" -#: controldata.c:706 +#: controldata.c:750 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "新旧の pg_controldata 間でチェックサムのバージョンが一致しません" -#: controldata.c:717 +#: controldata.c:761 #, c-format -msgid "Adding \".old\" suffix to old global/pg_control" -msgstr "旧の global/pg_control に \".old\" サフィックスを追加しています" +msgid "Adding \".old\" suffix to old " +msgstr "古い global/pg_control に \".old\" サフィックスを追加しています" -#: controldata.c:722 +#: controldata.c:766 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" -#: controldata.c:726 +#: controldata.c:771 #, c-format msgid "" "\n" "If you want to start the old cluster, you will need to remove\n" -"the \".old\" suffix from %s/global/pg_control.old.\n" +"the \".old\" suffix from %s/%s.old.\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" "started once the new cluster has been started." msgstr "" "\n" -"旧クラスタを起動する場合、%s/global/pg_control.oldから\n" +"旧クラスタを起動する場合、%s/%s.oldから\n" "\".old\"拡張子を削除する必要があります。「リンク」モードが使われて\n" "いるため、一度新クラスタを起動してしまうと旧クラスタは安全に起動\n" "することができなくなります。" +#: controldata.c:778 +#, c-format +msgid "" +"\n" +"Because \"swap\" mode was used, the old cluster can no longer be\n" +"safely started." +msgstr "" +"\n" +"\"swap\"モードが使用されているため, 古いクラスタは今後安全に起動できません" + +#: controldata.c:782 file.c:455 +#, c-format +msgid "unrecognized transfer mode" +msgstr "識別できない転送モード" + #: dump.c:20 #, c-format msgid "Creating dump of global objects" @@ -983,7 +1034,7 @@ msgstr "%s からpg_ctlのバージョン出力を取得できませんでした msgid "command too long" msgstr "コマンドが長すぎます" -#: exec.c:160 pg_upgrade.c:311 +#: exec.c:160 pg_upgrade.c:315 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ロックファイル\"%s\"をオープンできませんでした: %m" @@ -1018,7 +1069,7 @@ msgid "" "the probable cause of the failure." msgstr "ありうる失敗の原因については、\"%s\"の最後の数行を参照してください。" -#: exec.c:218 pg_upgrade.c:321 +#: exec.c:218 pg_upgrade.c:325 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "ログファイル\"%s\"に書き込めませんでした: %m" @@ -1143,7 +1194,7 @@ msgstr "新旧ディレクトリ間のファイルの範囲コピーができま msgid "copy_file_range not supported on this platform" msgstr "このプラットフォームではcopy_file_rangeはサポートされません" -#: file.c:447 +#: file.c:449 #, c-format msgid "" "could not create hard link between old and new data directories: %m\n" @@ -1152,22 +1203,31 @@ msgstr "" "新旧のデータディレクトリ間でハードリンクを作成できませんでした: %m\n" "リンクモードでは、新旧のデータディレクトリが同じファイルシステム上にある必要があります。" -#: function.c:154 +#: file.c:452 +#, c-format +msgid "" +"could not create hard link between old and new data directories: %m\n" +"In swap mode the old and new data directories must be on the same file system." +msgstr "" +"新旧のデータディレクトリ間でハードリンクを作成できませんでした: %m\n" +"スワップモードでは、新旧のデータディレクトリが同じファイルシステム上にある必要があります。" + +#: function.c:173 #, c-format msgid "Checking for presence of required libraries" msgstr "必要なライブラリの有無を確認しています" -#: function.c:190 +#: function.c:209 #, c-format msgid "could not load library \"%s\": %s" msgstr "ライブラリ\"%s\"をロードできませんでした: %s" -#: function.c:201 +#: function.c:220 #, c-format msgid "In database: %s\n" msgstr "データベース: %s\n" -#: function.c:211 +#: function.c:230 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -1182,47 +1242,47 @@ msgstr "" "以下のファイルに入っています:\n" " %s" -#: info.c:129 +#: info.c:131 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "データベース\"%2$s\"で OID %1$u のリレーション名が一致しません: 元の名前 \"%3$s.%4$s\"、新しい名前 \"%5$s.%6$s\"" -#: info.c:149 +#: info.c:151 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "データベース\"%s\"で新旧のテーブルの照合に失敗しました" -#: info.c:230 +#: info.c:232 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " これは \"%s.%s\" 上のインデックスです" -#: info.c:240 +#: info.c:242 #, c-format msgid " which is an index on OID %u" msgstr " これは OID %u 上のインデックスです" -#: info.c:252 +#: info.c:254 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " これは \"%s.%s\" の TOAST テーブルです" -#: info.c:260 +#: info.c:262 #, c-format msgid " which is the TOAST table for OID %u" msgstr " これは OID %u の TOAST テーブルです" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "データベース\"%2$s\"でOID%1$uを持つ新リレーションに対応するリレーションが旧クラスタ内にありません: %3$s" -#: info.c:267 +#: info.c:269 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "データベース\"%2$s\"でOID %1$uを持つ旧リレーションに対応するリレーションが新クラスタ内にありません: %3$s" -#: info.c:308 +#: info.c:325 #, c-format msgid "" "\n" @@ -1231,7 +1291,7 @@ msgstr "" "\n" "移行元データベース:" -#: info.c:310 +#: info.c:327 #, c-format msgid "" "\n" @@ -1240,92 +1300,97 @@ msgstr "" "\n" "移行先データベース:" -#: info.c:354 +#: info.c:371 #, c-format msgid "template0 not found" msgstr "template0が見つかりません" -#: info.c:842 +#: info.c:817 #, c-format msgid "Database: \"%s\"" msgstr "データベース: \"%s\"" -#: info.c:855 +#: info.c:830 #, c-format msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" msgstr "relname: \"%s.%s\": reloid: %u reltblspace: \"%s\"" -#: info.c:869 +#: info.c:844 #, c-format -msgid "Logical replication slots within the database:" -msgstr "このデータベース内の論理レプリケーションスロット: " +msgid "Logical replication slots in the database:" +msgstr "このデータベースの論理レプリケーションスロット: " -#: info.c:875 +#: info.c:850 #, c-format -msgid "slot_name: \"%s\", plugin: \"%s\", two_phase: %s" -msgstr "slot_name: \"%s\", plugin: \"%s\", two_phase: %s" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "スロット名: \"%s\", 出力プラグイン: \"%s\", two_phase: %s" -#: option.c:105 +#: option.c:110 #, c-format msgid "%s: cannot be run as root" msgstr "%s: rootでは実行できません" -#: option.c:172 +#: option.c:177 #, c-format msgid "invalid old port number" msgstr "不正な旧ポート番号" -#: option.c:177 +#: option.c:182 #, c-format msgid "invalid new port number" msgstr "不正な新ポート番号" -#: option.c:216 +#: option.c:230 +#, c-format +msgid "invalid argument for option %s" +msgstr "オプション%sの引数が不正です" + +#: option.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "詳細は\"%s --help\"を参照してください。\n" -#: option.c:223 +#: option.c:245 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: option.c:229 +#: option.c:251 #, c-format msgid "Running in verbose mode" msgstr "詳細表示モードで実行しています" -#: option.c:247 +#: option.c:269 msgid "old cluster binaries reside" msgstr "旧クラスタのバイナリが置かれている" -#: option.c:249 +#: option.c:271 msgid "new cluster binaries reside" msgstr "新クラスタのバイナリが置かれている" -#: option.c:251 +#: option.c:273 msgid "old cluster data resides" msgstr "旧クラスタのデータが置かれている" -#: option.c:253 +#: option.c:275 msgid "new cluster data resides" msgstr "新クラスタのデータが置かれている" -#: option.c:255 +#: option.c:277 msgid "sockets will be created" msgstr "ソケットが作成される" -#: option.c:272 option.c:374 +#: option.c:294 option.c:400 #, c-format msgid "could not determine current directory" msgstr "カレントディレクトリを特定できませんでした" -#: option.c:275 +#: option.c:297 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "Windowsでは、新クラスタのデータディレクトリの中でpg_upgradeを実行することはできません" -#: option.c:284 +#: option.c:306 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1334,12 +1399,12 @@ msgstr "" "pg_upgradeは、PostgreSQLのクラスタを別のメジャーバージョンにアップグレードします。\n" "\n" -#: option.c:285 +#: option.c:307 #, c-format msgid "Usage:\n" msgstr "使い方:\n" -#: option.c:286 +#: option.c:308 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1348,17 +1413,17 @@ msgstr "" " pg_upgrade [オプション]...\n" "\n" -#: option.c:287 +#: option.c:309 #, c-format msgid "Options:\n" msgstr "オプション:\n" -#: option.c:288 +#: option.c:310 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINDIR 旧クラスタの実行ファイルディレクトリ\n" -#: option.c:289 +#: option.c:311 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1367,115 +1432,137 @@ msgstr "" " -B, --new-bindir=BINDIR 新クラスタの実行ファイルディレクトリ(デフォルト\n" " はpg_upgradeと同じディレクトリ)\n" -#: option.c:291 +#: option.c:313 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check クラスタのチェックのみ、データを一切変更しない\n" -#: option.c:292 +#: option.c:314 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATADIR 旧クラスタのデータディレクトリ\n" -#: option.c:293 +#: option.c:315 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATADIR 新クラスタのデータディレクトリ\n" -#: option.c:294 +#: option.c:316 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs 使用する同時実行プロセスまたはスレッドの数\n" -#: option.c:295 +#: option.c:317 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr "" " -k, --link 新クラスタにファイルをコピーする代わりに\n" " リンクする\n" -#: option.c:296 +#: option.c:318 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync 変更のディスクへの確実な書き出しを待機しない\n" -#: option.c:297 +#: option.c:319 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=OPTIONS サーバーに渡す旧クラスタのオプション\n" -#: option.c:298 +#: option.c:320 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=OPTIONS サーバーに渡す新クラスタのオプション\n" -#: option.c:299 +#: option.c:321 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PORT 旧クラスタのポート番号(デフォルト %d)\n" -#: option.c:300 +#: option.c:322 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT 新クラスタのポート番号(デフォルト %d)\n" -#: option.c:301 +#: option.c:323 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain SQLとログファイルを、成功後も消さずに残す\n" -#: option.c:302 +#: option.c:324 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr "" " -s, --socketdir=DIR 使用するソケットディレクトリ(デフォルトは\n" " カレントディレクトリ)\n" -#: option.c:303 +#: option.c:325 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=NAME クラスタのスーパーユーザー(デフォルト\"%s\")\n" -#: option.c:304 +#: option.c:326 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose 詳細な内部ログを有効化\n" -#: option.c:305 +#: option.c:327 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: option.c:306 +#: option.c:328 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr "" " --clone 新クラスタにファイルをコピーする代わりに\n" " クローンする\n" -#: option.c:307 +#: option.c:329 #, c-format msgid " --copy copy files to new cluster (default)\n" msgstr " --copy 新クラスタにファイルをコピーする(デフォルト)\n" -#: option.c:308 +#: option.c:330 #, c-format msgid " --copy-file-range copy files to new cluster with copy_file_range\n" -msgstr " --copy-file-range ファイルの新クラスタへのコピーをcopy_file_rangeで行う\n" +msgstr "" +" --copy-file-range ファイルの新クラスタへのコピーをcopy_file_range\n" +" で行う\n" -#: option.c:309 +#: option.c:331 +#, c-format +msgid " --no-statistics do not import statistics from old cluster\n" +msgstr " --no-statistics 旧クラスタから統計情報をインポートしない\n" + +#: option.c:332 +#, c-format +msgid "" +" --set-char-signedness=OPTION set new cluster char signedness to \"signed\" or\n" +" \"unsigned\"\n" +msgstr "" +" --set-char-signedness=オプション\n" +" 新しいクラスタでの、char型を符号付き(signed)\n" +" または符号なし(unsigned)を設定する\n" + +#: option.c:334 +#, c-format +msgid " --swap move data directories to new cluster\n" +msgstr " --swap 新クラスタにファイルを移動する\n" + +#: option.c:335 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr "" " --sync-method=METHOD ファイルをディスクに同期させる方法を指定\n" "\n" -#: option.c:310 +#: option.c:336 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: option.c:311 +#: option.c:337 #, c-format msgid "" "\n" @@ -1490,7 +1577,7 @@ msgstr "" " 旧クラスタのpostmasterをシャットダウンする\n" " 新クラスタのpostmasterをシャットダウンする\n" -#: option.c:316 +#: option.c:342 #, c-format msgid "" "\n" @@ -1507,7 +1594,7 @@ msgstr "" " 旧バージョンの\"bin\"ディレクトリ (-b BINDIR)\n" " 新バージョンの\"bin\"ディレクトリ(-B BINDIR)\n" -#: option.c:322 +#: option.c:348 #, c-format msgid "" "\n" @@ -1520,7 +1607,7 @@ msgstr "" " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n" "または\n" -#: option.c:327 +#: option.c:353 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1535,7 +1622,7 @@ msgstr "" " $ export PGBINNEW=newCluster/bin\n" " $ pg_upgrade\n" -#: option.c:333 +#: option.c:359 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1550,7 +1637,7 @@ msgstr "" " C:\\> set PGBINNEW=newCluster/bin\n" " C:\\> pg_upgrade\n" -#: option.c:339 +#: option.c:365 #, c-format msgid "" "\n" @@ -1559,12 +1646,12 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: option.c:340 +#: option.c:366 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: option.c:380 +#: option.c:406 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1573,32 +1660,32 @@ msgstr "" "%sディレクトリを指定する必要があります。\n" "コマンドラインオプション %s または環境変数 %s を使用してください。" -#: option.c:433 +#: option.c:459 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "移行元クラスタの実際のデータディレクトリを探しています" -#: option.c:435 +#: option.c:461 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "移行先クラスタの実際のデータディレクトリを探しています" -#: option.c:448 +#: option.c:474 #, c-format msgid "could not get data directory using %s: %m" msgstr "%sでデータディレクトリを取得できませんでした。: %m" -#: option.c:452 +#: option.c:478 #, c-format msgid "could not get data directory using %s: %s" msgstr "%s でデータディレクトリを取得できませんでした。: %s" -#: option.c:500 +#: option.c:526 #, c-format msgid "could not read line %d from file \"%s\": %m" msgstr "ファイル\"%2$s\"の%1$d行目を読み取れませんでした: %3$m" -#: option.c:517 +#: option.c:543 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "ユーザー指定の旧ポート番号%huは%huに訂正されました" @@ -1628,12 +1715,12 @@ msgstr "子プロセスが異常終了しました: ステータス %d" msgid "child worker exited abnormally: %m" msgstr "子ワーカーが異常終了しました: %m" -#: pg_upgrade.c:115 +#: pg_upgrade.c:114 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を読み取れませんでした: %m" -#: pg_upgrade.c:147 +#: pg_upgrade.c:146 #, c-format msgid "" "\n" @@ -1644,17 +1731,17 @@ msgstr "" "アップグレードを実行しています。\n" "------------------" -#: pg_upgrade.c:192 +#: pg_upgrade.c:194 #, c-format msgid "Setting next OID for new cluster" msgstr "新クラスタの、次の OID を設定しています" -#: pg_upgrade.c:216 +#: pg_upgrade.c:218 #, c-format msgid "Sync data directory to disk" msgstr "データディレクトリをディスクに同期します" -#: pg_upgrade.c:230 +#: pg_upgrade.c:234 #, c-format msgid "" "\n" @@ -1665,23 +1752,23 @@ msgstr "" "アップグレードが完了しました\n" "----------------" -#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 -#: pg_upgrade.c:308 pg_upgrade.c:319 +#: pg_upgrade.c:267 pg_upgrade.c:280 pg_upgrade.c:287 pg_upgrade.c:294 +#: pg_upgrade.c:312 pg_upgrade.c:323 #, c-format msgid "directory path for new cluster is too long" msgstr "新クラスタのディレクトリ・パスが長すぎます" -#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#: pg_upgrade.c:301 pg_upgrade.c:303 pg_upgrade.c:305 pg_upgrade.c:307 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" -#: pg_upgrade.c:352 +#: pg_upgrade.c:356 #, c-format msgid "%s: could not find own program executable" msgstr "%s: 自身の実行ファイルが見つかりませんでした" -#: pg_upgrade.c:378 +#: pg_upgrade.c:382 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1690,7 +1777,7 @@ msgstr "" "旧クラスタで稼働中のpostmasterがあるようです。\n" "そのpostmasterをシャットダウンしたのちにやり直してください。" -#: pg_upgrade.c:391 +#: pg_upgrade.c:395 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1699,141 +1786,201 @@ msgstr "" "新クラスタで稼働中のpostmasterがあるようです。\n" "そのpostmasterをシャットダウンしたのちやり直してください。" -#: pg_upgrade.c:413 +#: pg_upgrade.c:421 +#, c-format +msgid "Setting the default char signedness for new cluster" +msgstr "新クラスタの、デフォルトのchar型の符号の有無を設定しています" + +#: pg_upgrade.c:449 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "新クラスタの、ロケールとエンコーディングを設定しています" -#: pg_upgrade.c:489 +#: pg_upgrade.c:527 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "新クラスタ内のすべての行を分析しています" -#: pg_upgrade.c:502 +#: pg_upgrade.c:540 #, c-format msgid "Freezing all rows in the new cluster" msgstr "新クラスタ内のすべての行を凍結しています" -#: pg_upgrade.c:522 +#: pg_upgrade.c:560 #, c-format msgid "Restoring global objects in the new cluster" msgstr "新クラスタ内のグローバルオブジェクトを復元しています" -#: pg_upgrade.c:538 +#: pg_upgrade.c:577 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "新クラスタ内にデータベーススキーマを復元しています" -#: pg_upgrade.c:662 +#: pg_upgrade.c:712 #, c-format msgid "Deleting files from new %s" msgstr "新しい %s からファイルを削除しています" -#: pg_upgrade.c:666 +#: pg_upgrade.c:716 #, c-format msgid "could not delete directory \"%s\"" msgstr "ディレクトリ\"%s\"を削除できませんでした" -#: pg_upgrade.c:685 +#: pg_upgrade.c:735 #, c-format msgid "Copying old %s to new server" msgstr "旧の %s を新サーバーにコピーしています" -#: pg_upgrade.c:711 +#: pg_upgrade.c:761 #, c-format msgid "Setting oldest XID for new cluster" msgstr "新クラスタの、最古のXIDを設定しています" -#: pg_upgrade.c:719 +#: pg_upgrade.c:769 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "新クラスタの、次のトランザクションIDと基点を設定しています" -#: pg_upgrade.c:749 +#: pg_upgrade.c:799 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "新クラスタの、次のmultixact IDとオフセットを設定しています" -#: pg_upgrade.c:773 +#: pg_upgrade.c:823 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "新クラスタの最古のmultixact IDを設定しています" -#: pg_upgrade.c:793 +#: pg_upgrade.c:843 #, c-format msgid "Resetting WAL archives" msgstr "WAL アーカイブをリセットしています" -#: pg_upgrade.c:836 +#: pg_upgrade.c:886 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "新クラスタのfrozenxidとminmxidカウンタを設定しています" -#: pg_upgrade.c:838 +#: pg_upgrade.c:888 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "新クラスタのminmxidカウンタを設定しています" -#: pg_upgrade.c:929 +#: pg_upgrade.c:979 #, c-format msgid "Restoring logical replication slots in the new cluster" msgstr "新クラスタ内の論理レプリケーションスロットを復元しています" -#: relfilenumber.c:35 +#: relfilenumber.c:68 +#, c-format +msgid "could not synchronize file \"%s\": %m" +msgstr "ファイル\"%s\"を同期できませんでした: %m" + +#: relfilenumber.c:114 #, c-format msgid "Cloning user relation files" msgstr "ユーザーリレーションファイルをクローニングしています" -#: relfilenumber.c:38 +#: relfilenumber.c:117 #, c-format msgid "Copying user relation files" msgstr "ユーザーリレーションのファイルをコピーしています" -#: relfilenumber.c:41 +#: relfilenumber.c:120 #, c-format msgid "Copying user relation files with copy_file_range" msgstr "ユーザーリレーションのファイルをcopy_file_rangeを使ってコピーしています" -#: relfilenumber.c:44 +#: relfilenumber.c:123 #, c-format msgid "Linking user relation files" msgstr "ユーザーリレーションのファイルをリンクしています" -#: relfilenumber.c:118 +#: relfilenumber.c:126 +#, c-format +msgid "Swapping data directories" +msgstr "データディレクトリを交換しています" + +#: relfilenumber.c:200 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "新クラスタ内に旧データベース\"%s\"が見つかりません" -#: relfilenumber.c:221 +#: relfilenumber.c:287 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ファイル\"%s\"のstatに失敗しました: %m" + +#: relfilenumber.c:293 relfilenumber.c:297 +#, c-format +msgid "could not create directory \"%s\"" +msgstr "ディレクトリ\"%s\"を作成できませんでした" + +#: relfilenumber.c:301 relfilenumber.c:305 +#, c-format +msgid "could not rename \"%s\" to \"%s\"" +msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした" + +#: relfilenumber.c:375 relfilenumber.c:402 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" + +#: relfilenumber.c:393 relfilenumber.c:420 +#, c-format +msgid "could not rename \"%s\" to \"%s\": %m" +msgstr "\"%s\"の名前を\"%s\"に変更できませんでした: %m" + +#: relfilenumber.c:396 relfilenumber.c:434 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" + +#: relfilenumber.c:439 +#, c-format +msgid "could not synchronize directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"を同期できませんでした: %m" + +#: relfilenumber.c:441 +#, c-format +msgid "could not synchronize parent directory of \"%s\": %m" +msgstr "\"%s\"の親ディレクトリを同期できませんでした: %m" + +#: relfilenumber.c:598 #, c-format msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" msgstr "\"%s.%s\"ファイル (\"%s\"から\"%s\")の存在確認中のエラー: %m" -#: relfilenumber.c:238 +#: relfilenumber.c:615 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "\"%s\"を\"%s\"に書き換えています" -#: relfilenumber.c:246 +#: relfilenumber.c:623 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "\"%s\"から\"%s\"へクローンしています" -#: relfilenumber.c:251 +#: relfilenumber.c:628 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "\"%s\"を\"%s\"にコピーしています" -#: relfilenumber.c:256 +#: relfilenumber.c:633 #, c-format msgid "copying \"%s\" to \"%s\" with copy_file_range" msgstr "\"%s\"を\"%s\"にcopy_file_rangeを使ってコピーしています" -#: relfilenumber.c:261 +#: relfilenumber.c:638 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "\"%s\"から\"%s\"へリンクを作成しています" +#: relfilenumber.c:644 +#, c-format +msgid "should never happen" +msgstr "想定外のコードパス" + #: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" @@ -1865,7 +2012,7 @@ msgstr "バージョンファイル\"%s\"をオープンできませんでした msgid "could not parse version file \"%s\"" msgstr "バージョンファイル\"%s\"をパースできませんでした" -#: server.c:310 +#: server.c:317 #, c-format msgid "" "\n" @@ -1874,7 +2021,7 @@ msgstr "" "\n" "%s" -#: server.c:314 +#: server.c:321 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1883,7 +2030,7 @@ msgstr "" "以下のコマンドで起動した移行元postmasterに接続できませんでした:\n" "%s" -#: server.c:318 +#: server.c:325 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1892,22 +2039,22 @@ msgstr "" "以下のコマンドで起動した移行先postmasterに接続できませんでした:\n" "%s" -#: server.c:332 +#: server.c:339 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl が移行元サーバーの起動に失敗した、あるいは接続に失敗しました" -#: server.c:334 +#: server.c:341 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl が移行先サーバーの起動に失敗した、あるいは接続に失敗しました" -#: server.c:379 +#: server.c:386 #, c-format msgid "out of memory" msgstr "メモリ不足です" -#: server.c:392 +#: server.c:399 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "libpq の環境変数 %s で、ローカルでないサーバー値が設定されています: %s" @@ -1936,6 +2083,26 @@ msgstr "テーブル空間のディレクトリ\"%s\"をstatできませんで msgid "tablespace path \"%s\" is not a directory" msgstr "テーブル空間のパス\"%s\"がディレクトリではありません" +#: task.c:195 +#, c-format +msgid "failed to create connection with connection string: \"%s\"" +msgstr "次の接続文字列で接続できませんでした: \"%s\"" + +#: task.c:217 task.c:268 task.c:283 task.c:294 +#, c-format +msgid "connection failure: %s" +msgstr "接続失敗: %s" + +#: task.c:396 +#, c-format +msgid "invalid socket" +msgstr "不正なソケットです" + +#: task.c:405 +#, c-format +msgid "select() failed: %m" +msgstr "select() が失敗しました: %m" + #: util.c:53 util.c:56 util.c:139 util.c:170 util.c:172 #, c-format msgid "%-*s" @@ -1956,11 +2123,6 @@ msgstr "ok" msgid "Checking for hash indexes" msgstr "ハッシュインデックスをチェックしています" -#: version.c:121 -#, c-format -msgid "warning" -msgstr "警告" - #: version.c:123 #, c-format msgid "" @@ -1995,17 +2157,17 @@ msgstr "" "インデックスを再構築できます。\n" "それまでは、これらのインデックスは使用されません。" -#: version.c:153 +#: version.c:187 #, c-format msgid "Checking for extension updates" msgstr "機能拡張のアップデートを確認しています" -#: version.c:200 +#: version.c:201 #, c-format msgid "notice" msgstr "注意" -#: version.c:201 +#: version.c:202 #, c-format msgid "" "\n" diff --git a/src/bin/pg_upgrade/po/ka.po b/src/bin/pg_upgrade/po/ka.po index a9b1213aa764f..2160e67da18ef 100644 --- a/src/bin/pg_upgrade/po/ka.po +++ b/src/bin/pg_upgrade/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_upgrade (PostgreSQL) 17\n" +"Project-Id-Version: pg_upgrade (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:20+0000\n" -"PO-Revision-Date: 2024-06-14 06:15+0200\n" +"POT-Creation-Date: 2025-05-02 22:20+0000\n" +"PO-Revision-Date: 2025-05-03 01:23+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,7 +16,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 @@ -48,12 +48,12 @@ msgstr "მომხმარებელი არ არსებობს" msgid "user name lookup failure: error code %lu" msgstr "მომხარებლის სახელის ამოხსნის პრობლემა: შეცდომის კოდი: %lu" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" @@ -226,34 +226,34 @@ msgstr "" "შეუძლებელია შეგიძლიათ წაშალოთ პრობლემური სვეტები,\n" "ან შეცვალოთ მათი ტიპი და განახლება თავიდან გაუშვათ.\n" -#: check.c:345 +#: check.c:421 #, c-format -msgid "Checking for data type usage" -msgstr "მონაცემის ტიპის გამოყენების შემოწმება" - -#: check.c:480 -#, c-format -msgid " failed check: %s" -msgstr " ჩავარდა შემოწმება: %s" +msgid "failed check: %s" +msgstr "ჩავარდა შემოწმება: %s" -#: check.c:483 +#: check.c:424 msgid "A list of the problem columns is in the file:" msgstr "პრობლემური სვეტების სია არის ფაილში:" -#: check.c:495 check.c:961 check.c:1134 check.c:1249 check.c:1343 check.c:1471 -#: check.c:1547 check.c:1611 check.c:1684 check.c:1866 check.c:1885 -#: check.c:1954 check.c:2006 file.c:378 file.c:415 function.c:189 option.c:493 -#: version.c:79 version.c:177 +#: check.c:430 check.c:1029 check.c:1180 check.c:1263 check.c:1352 check.c:1443 +#: check.c:1575 check.c:1660 check.c:1707 check.c:1787 check.c:2092 +#: check.c:2111 check.c:2157 check.c:2210 file.c:378 file.c:415 function.c:208 +#: option.c:519 version.c:79 version.c:162 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: check.c:522 +#: check.c:472 +#, c-format +msgid "Checking data type usage" +msgstr "მონაცემის ტიპის გამოყენების შემოწმება" + +#: check.c:526 #, c-format msgid "Data type checks failed: %s" msgstr "მონაცემის ტიპის შემოწმებები ჩავარდა: %s" -#: check.c:563 +#: check.c:575 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -262,7 +262,7 @@ msgstr "" "თანმიმდევრულობის შემოწმების შესრულება ძველ ცოცხალ სერვერზე\n" "------------------------------------------------" -#: check.c:569 +#: check.c:581 #, c-format msgid "" "Performing Consistency Checks\n" @@ -271,7 +271,12 @@ msgstr "" "თანმიმდევრულობის შემოწმების ჩატარება\n" "-----------------------------" -#: check.c:716 +#: check.c:745 +#, c-format +msgid "Swap mode can only upgrade clusters from PostgreSQL version %s and later." +msgstr "რეჟიმის 'swap' გამოყენება კლასტერის ვერსიის ასაწევად შესაძლებელია PostgreSQL-ის ვერსიაში %s და შემდეგ." + +#: check.c:768 #, c-format msgid "" "\n" @@ -280,7 +285,7 @@ msgstr "" "\n" "*კლასტერები თავსებადია *" -#: check.c:724 +#: check.c:776 #, c-format msgid "" "\n" @@ -291,18 +296,20 @@ msgstr "" "თუ ამ წერტილის შემდეგ pg_upgrade ავარიულად დასრულდება, გაგრძელებამდე\n" "ახალი კლასტერის init-db-ის გაკეთება შეიძლება თავიდან მოგიწიოთ." -#: check.c:765 +#: check.c:817 #, c-format msgid "" -"Optimizer statistics are not transferred by pg_upgrade.\n" -"Once you start the new server, consider running:\n" -" %s/vacuumdb %s--all --analyze-in-stages" +"Some statistics are not transferred by pg_upgrade.\n" +"Once you start the new server, consider running these two commands:\n" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only\n" +" %s/vacuumdb %s--all --analyze-only" msgstr "" -"ოპტიმიზატორის სტატისტიკ-ის გადატანა pg_upgrade-ის მიერ არ ხდება.\n" -"როცა ახალ სერვერს გაუშვებთ, შეასრულეთ ბრძანება:\n" -" %s/vacuumdb %s--all --analyze-in-stages" +"ზოგიერთი სტატისტიკის გადატანა pg_upgrade-ის მიერ, შეიძლება, არ მოხდეს.\n" +"როცა ახალ სერვერს გაუშვებთ, შეასრულეთ ეს ორი ბრძანება:\n" +" %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only\n" +" %s/vacuumdb %s--all --analyze-only" -#: check.c:771 +#: check.c:826 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -311,7 +318,7 @@ msgstr "" "ამ სკრიპტის გაშვება ძველი კლასტერის მონაცემების ფაილებს წაშლის:\n" " %s" -#: check.c:776 +#: check.c:831 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -324,57 +331,62 @@ msgstr "" "ძველი კლასტერის მონაცემების წაშლის სკრიპტის შექმნა შეუძლებელია. ძველი კლასტერის\n" " შემცველობა ხელით უნდა წაშალოთ." -#: check.c:788 +#: check.c:843 #, c-format msgid "Checking cluster versions" msgstr "კლასტერის ვერსიების შემოწმება" -#: check.c:800 +#: check.c:855 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "ამ პროგრამას განახლება PostgreSQL-ის ვერსიის %s-დან და ზემოთ შეუძლია." -#: check.c:805 +#: check.c:860 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "ამ პროგრამას შეუძლია მხოლოდ PostgreSQL ვერსიაზე გადასვლა %s." -#: check.c:814 +#: check.c:869 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "ეს პროგრამა არ შეიძლება გამოყენებულ იქნას უფრო ძველი ძირითადი PostgreSQL ვერსიების ჩამოსაწევად." -#: check.c:819 +#: check.c:874 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "ძველი კლასტერის მონაცემები და გამშვები ფაილის საქაღალდეები სხვადასხვა ძირითადი ვერსიიდანაა." -#: check.c:822 +#: check.c:877 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "ახალი კლასტერის მონაცემებისა და გამშვები ფაილების საქაღალდეები სხვადასხვა ძირითად ვერსიებს მიეკუთვნება." -#: check.c:837 +#: check.c:888 +#, c-format +msgid "%s option cannot be used to upgrade from PostgreSQL %s and later." +msgstr "პარამეტრს %s ვერ გამოიყენებთ PostgreSQL %s-დან და უფრო ახლიდან განახლებისას." + +#: check.c:904 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "ცოცხალი სერვერის შემოწმებისას ძველი და ახალი პორტის ნომრები სხვადასხვა უნდა იყოს." -#: check.c:857 +#: check.c:924 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "ახალი კლასტერული მონაცემთა ბაზა \"%s\" ცარიელი არაა: ნაპოვნია ურთიერთობა \"%s.%s\"" -#: check.c:880 +#: check.c:947 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "ახალი კლასტერის ცხრილების სივრცის საქაღალდეების შემოწმება" -#: check.c:891 +#: check.c:958 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "ახალი კლასტერის ცხრილების სივრცის საქაღალდე უკვე არსებობს: \"%s\"" -#: check.c:924 +#: check.c:992 #, c-format msgid "" "\n" @@ -383,7 +395,7 @@ msgstr "" "\n" "გაფრთხილება: ახალი მონაცემების საქაღალდე ძველი მონაცემების საქაღალდის შიგნით არ უნდა იყოს. მაგ: %s" -#: check.c:948 +#: check.c:1016 #, c-format msgid "" "\n" @@ -392,92 +404,92 @@ msgstr "" "\n" "გაფრთხილება: მომხმარებლის მიერ აღწერილი ცხრილის სივრცეების მდებარეობები მონაცემების საქაღალდის შიგნით არ უნდა იყოს. მაგ: %s" -#: check.c:958 +#: check.c:1026 #, c-format msgid "Creating script to delete old cluster" msgstr "ძველი კლასტერის წასაშლელად სკრიპტის შექმნა" -#: check.c:1012 +#: check.c:1054 #, c-format msgid "could not add execute permission to file \"%s\": %m" msgstr "ფაილზე \"%s\" გაშვების წვდომის დამატების შეცდომა: %m" -#: check.c:1032 +#: check.c:1074 #, c-format msgid "Checking database user is the install user" msgstr "შემოწმება, დამყენებელი მომხმარებელი დაყენების მომხმარებელს თუ უდრის" -#: check.c:1048 +#: check.c:1090 #, c-format msgid "database user \"%s\" is not the install user" msgstr "მონაცემთა ბაზის მომხმარებელი \"%s\" არ არის დაყენების მომხმარებელი" -#: check.c:1059 +#: check.c:1101 #, c-format msgid "could not determine the number of users" msgstr "ვერ დადგინდა მომხმარებელთა რაოდენობა" -#: check.c:1067 +#: check.c:1109 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "ახალი კლასტერისთვის მხოლოდ დაყენების მომხმარებლის მითითებაა შესაძლებელი." -#: check.c:1096 +#: check.c:1139 #, c-format msgid "Checking database connection settings" msgstr "მონაცემთა ბაზის კავშირის პარამეტრების შემოწმება" -#: check.c:1122 +#: check.c:1167 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0-თან დაკავშირება შეუძლებელი უნდა იყოს. ანუ, მისი pg_database.datallowconn პარამეტრი false უნდა იყოს" -#: check.c:1148 check.c:1268 check.c:1365 check.c:1490 check.c:1566 -#: check.c:1624 check.c:1704 check.c:1898 check.c:2023 function.c:210 +#: check.c:1194 check.c:1315 check.c:1411 check.c:1539 check.c:1615 +#: check.c:1673 check.c:1756 check.c:2124 check.c:2266 function.c:229 #, c-format msgid "fatal" msgstr "ფატალური" -#: check.c:1149 +#: check.c:1195 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" -"pg_database.datallowconn must be true. Your installation contains\n" -"non-template0 databases with their pg_database.datallowconn set to\n" -"false. Consider allowing connection for all non-template0 databases\n" -"or drop the databases which do not allow connections. A list of\n" -"databases with the problem is in the file:\n" +"pg_database.datallowconn must be true and pg_database.datconnlimit\n" +"must not be -2. Your installation contains non-template0 databases\n" +"which cannot be connected to. Consider allowing connection for all\n" +"non-template0 databases or drop the databases which do not allow\n" +"connections. A list of databases with the problem is in the file:\n" " %s" msgstr "" -"ყველა არა-template0 ბაზაზე მიერთება შესაძლებელი უნდა იყოს, ანუ მათი\n" -"pg_database.datallowconn -ი true-ს უნდა უნდოდეს. თქვენი ვერსია შეიცავს\n" -"არა-template0 ბაზებს, რომლების pg_database.datallowconn -ი false-ზეა დაყენებული.\n" -"სასურველია დაუშვათ მიერთება ყველა არა-template0 ბაზაზე, ან\n" -"წაშალოთ ბაზები, რომლებზეც წვდომა არ არსებობს.\n" -"პრობლემური ბაზების სიის ნახვა შეგიძლიათ ფაილში:\n" -" %s" +"ყველა არა-template0 მონაცემთა ბაზა უნდა უშვებდეს მიერთებას, ანუ მათი\n" +"pg_database.datallowconn ჭეშმარიტი უნდა იყოს და pg_database.datconnlimit არ\n" +"უნდა იყოს -2. ბაზის თქვენი ვარიანტი შეიცავს არა-template0 მონაცემთა ბაზებს,\n" +"რომლებთანაც მიერთება შეუძლებელია. იფიქრეთ, რომ დაუშვათ მიერთება ყველა\n" +"არა-template0 მონაცემთა ბაზებთან, ან წაშალეთ ბაზები, რომლებიც არ უშვებენ კავშირს.\n" +"ამ პრობლემის მქონე მონაცემთა ბაზების შენახულია ფაილში:\n" +" %s" -#: check.c:1174 +#: check.c:1220 #, c-format msgid "Checking for prepared transactions" msgstr "მომზადებული ტრანზაქციების შემოწმება" -#: check.c:1183 +#: check.c:1229 #, c-format msgid "The source cluster contains prepared transactions" msgstr "საწყისი კლასტერი მომზადებულ ტრანზაქციებს შეიცავს" -#: check.c:1185 +#: check.c:1231 #, c-format msgid "The target cluster contains prepared transactions" msgstr "სამიზნე კლასტერი მომზადებულ ტრანზაქციებს შეიცავს" -#: check.c:1210 +#: check.c:1291 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "\"contrib/isn\"-ის bgint-passing-ის არ-დამთხვევაზე შემოწმება" -#: check.c:1269 +#: check.c:1316 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -494,12 +506,12 @@ msgstr "" ", განაახლოთ ბაზა და აღადგინოთ ფუნქციები. პრობლემური ფუნქციების სია შეგიძლიათ იხილოთ ფაილში:\n" " %s" -#: check.c:1291 +#: check.c:1396 #, c-format msgid "Checking for user-defined postfix operators" msgstr "მომხმარებლის მიერ აღწერილი postfix ოპერატორების არსებობის შემოწმება" -#: check.c:1366 +#: check.c:1412 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -514,12 +526,12 @@ msgstr "" "მომხმარებლის მიერ აღწერილი postfix ოპერატორების სიის ნახვა შეგიძლიათ ფაილში:\n" " %s" -#: check.c:1390 +#: check.c:1467 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "შეუთავსებელი პოლიმორფული ფუნქციების არსებობის შემოწმება" -#: check.c:1491 +#: check.c:1540 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -538,12 +550,12 @@ msgstr "" "ფაილში არსებული პრობლემური ობიექტები:\n" " %s" -#: check.c:1515 +#: check.c:1600 #, c-format msgid "Checking for tables WITH OIDS" msgstr "WITH OIDS ცხრილების შემოწმება" -#: check.c:1567 +#: check.c:1616 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -558,12 +570,12 @@ msgstr "" "ცხრილების სია, რომელსაც ეს პრობლემა გააჩნიათ, შეგიძლიათ იხილოთ ფაილში:\n" " %s" -#: check.c:1594 +#: check.c:1643 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "როლების შემოწმება, რომლებიც \"pg_\"-ით იწყება" -#: check.c:1625 +#: check.c:1674 #, c-format msgid "" "Your installation contains roles starting with \"pg_\".\n" @@ -578,12 +590,12 @@ msgstr "" "როლების სია, რომლებიც \"pg_\"-ით იწყებიან, შეგიძლიათ იპოვოთ ფაილში:\n" " %s" -#: check.c:1645 +#: check.c:1728 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "მომხმარებლის მიერ განსაზღვრული კოდირების კონვერტაციის შემოწმება" -#: check.c:1705 +#: check.c:1757 #, c-format msgid "" "Your installation contains user-defined encoding conversions.\n" @@ -599,55 +611,76 @@ msgstr "" "მომხმარებლის მიერ აღწერილი გადაყვანების ნახვა შეგიძლიათ ფაილში:\n" " %s" -#: check.c:1744 +#: check.c:1842 +#, c-format +msgid "Checking for objects affected by Unicode update" +msgstr "უნიკოდის განახლების გავლენის ქვეშ მოქცეული ობიექტების შემოწმება" + +#: check.c:1936 version.c:121 +#, c-format +msgid "warning" +msgstr "გაფრთხილება" + +#: check.c:1937 +#, c-format +msgid "" +"Your installation contains relations that may be affected by a new version of Unicode.\n" +"A list of potentially-affected relations is in the file:\n" +" %s" +msgstr "" +"პროგრამის თქვენი ვერსია შეიცავს ურთიერთობას, რომელზეც, შეიძლება, უნიკოდის ახალ ვერსიას ჰქონდეს გავლენა.\n" +"პოტენციურად გავლენის ქვეშ მოქცეული ურთიერთობები შენახულია ფაილში:\n" +" %s" + +#: check.c:1973 #, c-format msgid "Checking for new cluster logical replication slots" msgstr "ახალი კლასტერის ლოგიკური რეპლიკაციის სლოტების შემოწმება" -#: check.c:1752 +#: check.c:1981 #, c-format msgid "could not count the number of logical replication slots" msgstr "ლოგიკური რეპლიკაციის სლოტების რაოდენობის დათვლა შეუძლებელია" -#: check.c:1757 +#: check.c:1986 #, c-format -msgid "Expected 0 logical replication slots but found %d." -msgstr "მოველოდი 0 ლოგიკური რეპლიკაციის სლოტს. მივიღე %d." +msgid "expected 0 logical replication slots but found %d" +msgstr "მოველოდი 0 ლოგიკური რეპლიკაციის სლოტს, მაგრამ, მივიღე %d" -#: check.c:1767 check.c:1821 +#: check.c:1996 check.c:2047 #, c-format msgid "could not determine parameter settings on new cluster" msgstr "ახალ კლასტერზე პარამეტრის მნიშვნელობების დადგენა შეუძლებელია" -#: check.c:1772 +#: check.c:2001 #, c-format -msgid "\"wal_level\" must be \"logical\", but is set to \"%s\"" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" msgstr "\"wal_level\" უნდა იყოს \"logical\", მაგრამ მნიშვნელობაა \"%s\"" -#: check.c:1778 +#: check.c:2007 #, c-format msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" msgstr "\"max_replication_slots\" (%d) ძველი კლასტერის ლოგიკური რეპლიკაციების სლოტების რაოდენობაზე (%d) მეტი ან ტოლი უნდა იყოს" -#: check.c:1813 +#: check.c:2039 #, c-format msgid "Checking for new cluster configuration for subscriptions" msgstr "ახალი კლასტერის კონფიგურაციის გამოწერებზე შემოწმება" -#: check.c:1825 +#: check.c:2051 #, c-format -msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" -msgstr "\"max_replication_slots\" (%d) ძველი კლასტერის გამოწერების რაოდენობაზე (%d) მეტი ან ტოლი უნდა იყოს" +msgid "\"max_active_replication_origins\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "\"max_active_replication_origins\" (%d) ძველი კლასტერის გამოწერების რაოდენობაზე (%d) მეტი ან ტოლი უნდა იყოს" -#: check.c:1847 +#: check.c:2073 #, c-format msgid "Checking for valid logical replication slots" msgstr "სწორ ლოგიკური რეპლიკაციის სლოტებზე შემოწმება" -#: check.c:1899 +#: check.c:2125 #, c-format msgid "" -"Your installation contains logical replication slots that can't be upgraded.\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" "You can remove invalid slots and/or consume the pending WAL for other slots,\n" "and then restart the upgrade.\n" "A list of the problematic slots is in the file:\n" @@ -659,12 +692,12 @@ msgstr "" "პრობლემური სლოტების ნახვა შეგიძლიათ ფაილში:\n" " %s" -#: check.c:1923 +#: check.c:2185 #, c-format msgid "Checking for subscription state" msgstr "გამოწერის მდგომარეობის შემოწმება" -#: check.c:2024 +#: check.c:2267 #, c-format msgid "" "Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" @@ -677,184 +710,189 @@ msgstr "" "პრობლემური სვეტების ნახვა შეგიძლიათ ფაილში:\n" " %s" -#: controldata.c:129 controldata.c:199 +#: controldata.c:133 controldata.c:203 #, c-format msgid "could not get control data using %s: %m" msgstr "%s-ის გამოყენებით საკონტროლო მონაცემების მიღება შეუძლებელია: %m" -#: controldata.c:139 +#: controldata.c:143 #, c-format msgid "%d: database cluster state problem" msgstr "%d: ბაზის კლასტერის მდგომარეობის პრობლემა" -#: controldata.c:158 +#: controldata.c:162 #, 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." msgstr "საწყისი კლასტერი აღდგენის რეჟიმში იყო, როცა გაითიშა. განსაახლებლად გამოიყენეთ \"rsync\", როგორც ეს დოკუმენტაციაშია, ან გამორთეთ, როგორც ძირითადი." -#: controldata.c:160 +#: controldata.c:164 #, 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." msgstr "სამიზნე კლასტერი აღდგენის რეჟიმში იყო, როცა გაითიშა. განსაახლებლად, გამოიყენეთ \"rsync\", როგორც ეს დოკუმენტაციაშია, ან გამორთეთ, როგორც ძირითადი." -#: controldata.c:165 +#: controldata.c:169 #, c-format msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "წყარო კლასტერი წესების დაცვით არ გამორთულა. მიღებული მდგომარეობაა: \"%s\"" -#: controldata.c:167 +#: controldata.c:171 #, c-format msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" msgstr "სამიზნე კლასტერი წესების დაცვით არ გამორთულა. მიღებული მდგომარეობაა: \"%s\"" -#: controldata.c:175 controldata.c:507 +#: controldata.c:179 controldata.c:530 #, c-format msgid "could not get control data using %s: %s" msgstr "%s-სთვის საკონტროლო მონაცემების მიღების შეცდომა: %s" -#: controldata.c:181 +#: controldata.c:185 #, c-format msgid "The source cluster lacks cluster state information:" msgstr "საწყის კლასტერს მდგომარეობის ინფორმაცია არ გააჩნია:" -#: controldata.c:183 +#: controldata.c:187 #, c-format msgid "The target cluster lacks cluster state information:" msgstr "სამიზნე კლასტერს მდგომარეობის ინფორმაცია არ გააჩნია:" -#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 -#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 +#: controldata.c:217 dump.c:50 exec.c:118 pg_upgrade.c:606 pg_upgrade.c:646 +#: pg_upgrade.c:995 relfilenumber.c:610 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:220 +#: controldata.c:224 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d: pg_resetwal -ის პრობლემა" -#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 -#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 -#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 -#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 -#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 -#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 -#: controldata.c:486 controldata.c:497 +#: controldata.c:234 controldata.c:244 controldata.c:255 controldata.c:266 +#: controldata.c:277 controldata.c:296 controldata.c:307 controldata.c:318 +#: controldata.c:329 controldata.c:340 controldata.c:351 controldata.c:362 +#: controldata.c:365 controldata.c:369 controldata.c:379 controldata.c:391 +#: controldata.c:402 controldata.c:413 controldata.c:424 controldata.c:435 +#: controldata.c:446 controldata.c:457 controldata.c:468 controldata.c:479 +#: controldata.c:490 controldata.c:501 controldata.c:512 controldata.c:521 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d: controldata -ის მიღების შეცდომა" -#: controldata.c:578 +#: controldata.c:618 #, c-format msgid "The source cluster lacks some required control information:" msgstr "საწყის კლასტერს ზოგიერთი საჭირო კონტროლის ინფორმაცია არ გააჩნია:" -#: controldata.c:581 +#: controldata.c:621 #, c-format msgid "The target cluster lacks some required control information:" msgstr "სამიზნე კლასტერს ზოგიერთი საჭირო კონტროლის ინფორმაცია არ გააჩნია:" -#: controldata.c:584 +#: controldata.c:624 #, c-format msgid " checkpoint next XID" msgstr " საკონტროლო წერტილის შემდეგი XID" -#: controldata.c:587 +#: controldata.c:627 #, c-format msgid " latest checkpoint next OID" msgstr " უახლესი საკონტროლო წერტილის შემდეგი OID" -#: controldata.c:590 +#: controldata.c:630 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " უახლესი საკონტროლო წერტილის შემდეგი MultiXactId" -#: controldata.c:594 +#: controldata.c:634 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " უახლესი საკონტროლო წერტილის უძველესი MultiXactId" -#: controldata.c:597 +#: controldata.c:637 #, c-format msgid " latest checkpoint oldestXID" msgstr " უახლესი საკონტროლო წერტილის უძველესი XID" -#: controldata.c:600 +#: controldata.c:640 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " უახლესი საკონტროლო წერტილის შემდეგი MultiXactOffset" -#: controldata.c:603 +#: controldata.c:643 #, c-format msgid " first WAL segment after reset" msgstr " პირველი WAL სეგმენტი გადატვირთვის შემდეგ" -#: controldata.c:606 +#: controldata.c:646 #, c-format msgid " float8 argument passing method" msgstr " float8 არგუმენტი გავლის მეთოდი" -#: controldata.c:609 +#: controldata.c:649 #, c-format msgid " maximum alignment" msgstr " მაქსიმალური სწორება" -#: controldata.c:612 +#: controldata.c:652 #, c-format msgid " block size" msgstr " ბლოკის ზომა" -#: controldata.c:615 +#: controldata.c:655 #, c-format msgid " large relation segment size" msgstr " დიდი ურთიერთობის სეგმენტის ზომა" -#: controldata.c:618 +#: controldata.c:658 #, c-format msgid " WAL block size" msgstr " WAL ბლოკის ზომა" -#: controldata.c:621 +#: controldata.c:661 #, c-format msgid " WAL segment size" msgstr " WAL-ის სეგმენტის ზომა" -#: controldata.c:624 +#: controldata.c:664 #, c-format msgid " maximum identifier length" msgstr " იდენტიფიკატორის მაქსიმალური სიგრძე" -#: controldata.c:627 +#: controldata.c:667 #, c-format msgid " maximum number of indexed columns" msgstr " ინდექსირებული სვეტების მაქსიმალური რაოდენობა" -#: controldata.c:630 +#: controldata.c:670 #, c-format msgid " maximum TOAST chunk size" msgstr " TOAST ნაგლეჯის მაქსიმალური ზომა" -#: controldata.c:634 +#: controldata.c:674 #, c-format msgid " large-object chunk size" msgstr " დიდი ობიექტის ნაგლეჯის ზომა" -#: controldata.c:637 +#: controldata.c:677 #, c-format msgid " dates/times are integers?" msgstr " დროები და თარიღები მთელი რიცხვებია?" -#: controldata.c:641 +#: controldata.c:681 #, c-format msgid " data checksum version" msgstr " მონაცემების საკონტროლო ჯამის ვერსია" -#: controldata.c:643 +#: controldata.c:685 +#, c-format +msgid " default char signedness" +msgstr " ნაგულისხმევი სიმბოლოს ნიშნიანობა" + +#: controldata.c:687 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "ვერ გაგრძელდება საჭირო კონტროლის ინფორმაციის გარეშე, დასრულება" -#: controldata.c:658 +#: controldata.c:702 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -863,91 +901,109 @@ msgstr "" "ძველი და ახალი pg_controldata სწორებები ბათილია ან არ ემთხვევა\n" "სავარაუდოდ, ერთი კლასტერი 32-ბიტიანია, დანარჩენი კი 64" -#: controldata.c:662 +#: controldata.c:706 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata ბლოკის ზომები ბათილია ან არ ემთხვევა" -#: controldata.c:665 +#: controldata.c:709 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata მაქსიმალური ურთიერთობის სეგმენტის ზომები ბათილია ან არ ემთხვევა" -#: controldata.c:668 +#: controldata.c:712 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის WAL-ის ბლოკის ზომები არასწორია ან არ ემთხვევა" -#: controldata.c:671 +#: controldata.c:715 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის WAL-ის სეგმენტის ზომები არასწორია ან არ ემთხვევა" -#: controldata.c:674 +#: controldata.c:718 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის იდენტიფიკატორის მაქსიმალური სიგრძეები არასწორია ან არ ემთხვევა" -#: controldata.c:677 +#: controldata.c:721 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის მაქსიმალური ინდექსირებული სვეტები არასწორია ან არ ემთხვევა" -#: controldata.c:680 +#: controldata.c:724 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის TOAST-ის მაქსიმალური ნაგლეჯის ზომები არასწორია ან არ ემთხვევა" -#: controldata.c:685 +#: controldata.c:729 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "ძველი და ახალი pg_controldata-ის დიდი ობიექტის ნაგლეჯის ზომები არასწორია ან არ ემთხვევა" -#: controldata.c:688 +#: controldata.c:732 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "ძველი და ახალი pg_controldata-ის თარიღი/დროის შენახვის ტიპები არ ემთხვევა" -#: controldata.c:701 +#: controldata.c:745 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "ძველი კლასტერი არ იყენებს მონაცემთა შემოწმებას, მაგრამ ახალი აკეთებს" -#: controldata.c:704 +#: controldata.c:748 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "ძველი კლასტერი იყენებს მონაცემთა შემოწმებას, ახალი კი არა" -#: controldata.c:706 +#: controldata.c:750 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "ძველი და ახალი კლასტერების pg_controldata -ის საკონტროლო ჯამის ვერსიები არ ემთხვევა" -#: controldata.c:717 +#. translator: %s is the file path of the control file +#: controldata.c:762 #, c-format -msgid "Adding \".old\" suffix to old global/pg_control" -msgstr "ძველ გლობალურ/pg_control-ზე \".old\" სუფიქსის დამატება" +msgid "Adding \".old\" suffix to old \"%s\"" +msgstr "'.old\" სუფიქსის დამატება ძველ \"%s\"-ზე" -#: controldata.c:722 +#: controldata.c:767 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" -#: controldata.c:726 +#. translator: %s/%s is the file path of the control file +#: controldata.c:773 #, c-format msgid "" "\n" "If you want to start the old cluster, you will need to remove\n" -"the \".old\" suffix from %s/global/pg_control.old.\n" +"the \".old\" suffix from \"%s/%s.old\".\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" "started once the new cluster has been started." msgstr "" "\n" "თუ გნებავთ, გაუშვათ ძველი კლასტერი, საჭიროა\n" -"წაშალოთ .old სუფიქსი %s/global/pg_control.old-დან.\n" +"წაშალოთ .old სუფიქსი %s/%s.old-დან.\n" "იმის გამო, რომ გამოყენებული იყო \"ბმულის\" რეჟიმი, ძველი კლასტერის გაშვება მას შემდეგ, რაც\n" "ახალი სერვერი გაეშვა, ძველის გაშვება უსაფრთხო აღარაა." +#: controldata.c:780 +#, c-format +msgid "" +"\n" +"Because \"swap\" mode was used, the old cluster can no longer be\n" +"safely started." +msgstr "" +"\n" +"იმიტოს გამო, რომ გამოყენებული იყო რეჟიმი 'swap', ძველი კლასტერის გაშვება\n" +"უსაფრთხო აღარაა." + +#: controldata.c:784 file.c:455 +#, c-format +msgid "unrecognized transfer mode" +msgstr "უცნობი გადაცემის რეჟიმი" + #: dump.c:20 #, c-format msgid "Creating dump of global objects" @@ -978,7 +1034,7 @@ msgstr "%s გამოყენებით pg_ctl ვერსია ვერ msgid "command too long" msgstr "ბრძანება ძალიან გრძელია" -#: exec.c:160 pg_upgrade.c:311 +#: exec.c:160 pg_upgrade.c:315 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ჟურნალის ფაილის გახსნის შეცდომა \"%s\": %m" @@ -1015,7 +1071,7 @@ msgstr "" "ავარიის მიზეზის გამოსავლენად გადაავლეთ თვალი\n" "\"%s\"-ის ბოლო რამდენიმე ხაზს." -#: exec.c:218 pg_upgrade.c:321 +#: exec.c:218 pg_upgrade.c:325 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "ჟურნალის ფაილში (%s) ჩაწერის შეცდომა: %m" @@ -1140,7 +1196,7 @@ msgstr "მონაცემების ძველ და ახალ ს msgid "copy_file_range not supported on this platform" msgstr "ამ პლატფორმაზე copy_file_range მხარდაჭერილი არაა" -#: file.c:447 +#: file.c:449 #, c-format msgid "" "could not create hard link between old and new data directories: %m\n" @@ -1149,22 +1205,31 @@ msgstr "" "ძველი და ახალი მონაცემების საქაღალდეებს შუა მყარი ბმულის შექმნა შეუძლებელია: %m\n" "ბმულის რეჟიმში ძველი და ახალი მონაცემების საქაღალდეები ერთი და იგივე ფაილურ სისტემაზე უნდა იყოს." -#: function.c:154 +#: file.c:452 +#, c-format +msgid "" +"could not create hard link between old and new data directories: %m\n" +"In swap mode the old and new data directories must be on the same file system." +msgstr "" +"ძველი და ახალი მონაცემების საქაღალდეებს შუა მყარი ბმულის შექმნა შეუძლებელია: %m\n" +"რეჟიმში 'swap' ძველი და ახალი მონაცემების საქაღალდეები ერთი და იგივე ფაილურ სისტემაზე უნდა იყოს." + +#: function.c:173 #, c-format msgid "Checking for presence of required libraries" msgstr "საჭირო ბიბლიოთეკების არსებობის შემოწმება" -#: function.c:190 +#: function.c:209 #, c-format msgid "could not load library \"%s\": %s" msgstr "ბიბლიოთეკის (\"%s\") ჩატვირთვის შეცდომა: %s" -#: function.c:201 +#: function.c:220 #, c-format msgid "In database: %s\n" msgstr "მონაცემთა ბაზაში: %s\n" -#: function.c:211 +#: function.c:230 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -1179,47 +1244,47 @@ msgstr "" "პრობლემური ბიბლიოთეკების სიის ნახვა შეგიძლიათ ფაილში:\n" " %s" -#: info.c:129 +#: info.c:131 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "ურთიერთობის სახელები OID-ით %u ბაზაში \"%s\" არ ემთხვევა: ძველი სახელი \"%s.%s.\", ახალი კი \"%s.%s\"" -#: info.c:149 +#: info.c:151 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "შეცდომა ძველ და ახალ ცხრილებს შორის დამთხვევისას ბაზაში \"%s\"" -#: info.c:230 +#: info.c:232 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " რომელიც ინდექსია \"%s.%s\"" -#: info.c:240 +#: info.c:242 #, c-format msgid " which is an index on OID %u" msgstr " რაც არის ინდექსი OID-ზე %u" -#: info.c:252 +#: info.c:254 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " რომელიც TOAST ცხრილია \"%s.%s\"-სთვის" -#: info.c:260 +#: info.c:262 #, c-format msgid " which is the TOAST table for OID %u" msgstr " რომელიც TOAST ცხრილია %u-ე OID-სთვის" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "ძველ კლასტერში ახალი ურთიერთობისთვის OID -ით %u ბაზაში \"%s\" დამთხვევა ვერ ვიპოვე: %s" -#: info.c:267 +#: info.c:269 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "ახალ კლასტერში ძველი ურთიერთობისთვის OID -ით %u ბაზაში \"%s\" დამთხვევა ვერ ვიპოვე: %s" -#: info.c:308 +#: info.c:325 #, c-format msgid "" "\n" @@ -1228,7 +1293,7 @@ msgstr "" "\n" "საწყისი ბაზები:" -#: info.c:310 +#: info.c:327 #, c-format msgid "" "\n" @@ -1237,92 +1302,97 @@ msgstr "" "\n" "სამიზნე ბაზები:" -#: info.c:354 +#: info.c:371 #, c-format msgid "template0 not found" msgstr "template0 ნაპოვნი არაა" -#: info.c:842 +#: info.c:817 #, c-format msgid "Database: \"%s\"" msgstr "მონაცემთა ბაზაში: \"%s\"" -#: info.c:855 +#: info.c:830 #, c-format msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" msgstr "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" -#: info.c:869 +#: info.c:844 #, c-format -msgid "Logical replication slots within the database:" -msgstr "ლოგიკური რეპლიკაციის სლოტები მონაცემთა ბაზის შიგნით:" +msgid "Logical replication slots in the database:" +msgstr "ლოგიკური რეპლიკაციის სლოტები მონაცემთა ბაზაში:" -#: info.c:875 +#: info.c:850 #, c-format -msgid "slot_name: \"%s\", plugin: \"%s\", two_phase: %s" -msgstr "slot_name: \"%s\", plugin: \"%s\", two_phase: %s" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "სლოტი სახელი: \"%s\", გამოტანის დამატება: \"%s\", two_phase: %s" -#: option.c:105 +#: option.c:110 #, c-format msgid "%s: cannot be run as root" msgstr "%s: root-ით ვერ გაუშვებთ" -#: option.c:172 +#: option.c:177 #, c-format msgid "invalid old port number" msgstr "არასწორი ძველი პორტის ნომერი" -#: option.c:177 +#: option.c:182 #, c-format msgid "invalid new port number" msgstr "ახალი პორტის არასწორი ნომერი" -#: option.c:216 +#: option.c:230 +#, c-format +msgid "invalid argument for option %s" +msgstr "არასწორი არგუმენტი პარამეტრისთვის: %s" + +#: option.c:238 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'.\n" -#: option.c:223 +#: option.c:245 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: option.c:229 +#: option.c:251 #, c-format msgid "Running in verbose mode" msgstr "დამატებითი შეტყობინებების ჩართვა" -#: option.c:247 +#: option.c:269 msgid "old cluster binaries reside" msgstr "ძველი კლასტერის გამშვები ფაილები მდებარეობს" -#: option.c:249 +#: option.c:271 msgid "new cluster binaries reside" msgstr "ახალი კლასტერის გამშვები ფაილები მდებარეობს" -#: option.c:251 +#: option.c:273 msgid "old cluster data resides" msgstr "ძველი კლასტერის მონაცემები მდებარეობს" -#: option.c:253 +#: option.c:275 msgid "new cluster data resides" msgstr "ახალი კლასტერის მონაცემები მდებარეობს" -#: option.c:255 +#: option.c:277 msgid "sockets will be created" msgstr "სოკეტები შეიქმნება" -#: option.c:272 option.c:374 +#: option.c:294 option.c:400 #, c-format msgid "could not determine current directory" msgstr "მიმდინარე საქაღალდის იდენტიფიკაციის პრობლემა" -#: option.c:275 +#: option.c:297 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "pg_upgrade-ის გაშვება Windows-ზე ახალი კლასტერის მონაცემების საქაღალდიდან შეუძლებელია" -#: option.c:284 +#: option.c:306 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1331,12 +1401,12 @@ msgstr "" "pg_upgrade -ი PostgreSQL კლასტერს სხვა მთავარ ვერსიაზე განაახლებს.\n" "\n" -#: option.c:285 +#: option.c:307 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: option.c:286 +#: option.c:308 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1345,17 +1415,17 @@ msgstr "" " pg_upgrade [პარამეტრი]...\n" "\n" -#: option.c:287 +#: option.c:309 #, c-format msgid "Options:\n" msgstr "პარამეტრები:\n" -#: option.c:288 +#: option.c:310 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINDIR ძველი კლასტერის გამშვები ფაილების საქაღალდე\n" -#: option.c:289 +#: option.c:311 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1364,107 +1434,126 @@ msgstr "" " -B, --new-bindir=BINDIR ახალი კლასტერის გამშვები ფაილების საქაღალდე (ნაგულისხმები\n" " იგივე საქაღლდე, რაც pg_upgrade)\n" -#: option.c:291 +#: option.c:313 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check კლასტერების მხოლოდ შემოწმება. მონაცემები არ შეიცვლება\n" -#: option.c:292 +#: option.c:314 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATADIR ძველი კლასტერის მონაცემთა საქაღალდე\n" -#: option.c:293 +#: option.c:315 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATADIR ახალი კლასტერის მონაცემთა საქაღალდე\n" -#: option.c:294 +#: option.c:316 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs=NUM ერთდროულად გასაშვები პროცესების ან ნაკადების რიცხვი\n" -#: option.c:295 +#: option.c:317 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr " -k, --link ახალ კლასტერში ფაილების გადაბმა, კოპირების ნაცვლად\n" -#: option.c:296 +#: option.c:318 #, c-format msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" msgstr " -N, --no-sync არ დაველოდო ცვლილებების დისკზე უსაფრთხოდ ჩაწერას\n" -#: option.c:297 +#: option.c:319 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, -old-options=OPTIONS სერვერზე გადასაცემი ძველი კლასტერის პარამეტრები\n" -#: option.c:298 +#: option.c:320 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, -new-options=OPTIONS სერვერზე გადასაცემი ახალი კლასტერის პარამეტრები\n" -#: option.c:299 +#: option.c:321 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, -old-port=PORT ძველი კლასტერის პორტის ნომერი (ნაგულისხმები %d)\n" -#: option.c:300 +#: option.c:322 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT ახალი კლასტერის პორტის ნომერი (ნაგულისხმები %d)\n" -#: option.c:301 +#: option.c:323 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain SQL და ჟურნალის ფაილებს დატოვება წარმატების შემდეგ \n" -#: option.c:302 +#: option.c:324 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr " -s, --socketdir=DIR სოკეტის საქაღალდე (ნაგულისხმებია მიმდინარე.)\n" -#: option.c:303 +#: option.c:325 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=მომხმარებელი კლასტერის ზემომხმარებლის სახელი (ნაგულისხმები: \"%s\")\n" -#: option.c:304 +#: option.c:326 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose შიდა დამატებითი ჟურნალის ჩართვა\n" -#: option.c:305 +#: option.c:327 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის ჩვენება და გასვლა\n" -#: option.c:306 +#: option.c:328 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr " --clone ახალ კლასტერში ფაილების კლონირება კოპირების ნაცვლად \n" -#: option.c:307 +#: option.c:329 #, c-format msgid " --copy copy files to new cluster (default)\n" msgstr " --clone ახალ კლასტერში ფაილების კლონირება კოპირების ნაცვლად (ნაგულისხმები)\n" -#: option.c:308 +#: option.c:330 #, c-format msgid " --copy-file-range copy files to new cluster with copy_file_range\n" msgstr " --copy-file-range ფაილების კოპირება ახალ კლასტერში copy_file_range-ით\n" -#: option.c:309 +#: option.c:331 +#, c-format +msgid " --no-statistics do not import statistics from old cluster\n" +msgstr " --no-statistics ძველი კლასტერიდან სტატისტიკა შემოტანილი არ იქნება\n" + +#: option.c:332 +#, c-format +msgid "" +" --set-char-signedness=OPTION set new cluster char signedness to \"signed\" or\n" +" \"unsigned\"\n" +msgstr "" +" --set-char-signedness=OPTION ახალი კლასტერის სიმბოლოს ნიშნანობის დაყენება \"signed\"-ზე ან\n" +" \"unsigned\"-ზე\n" + +#: option.c:334 +#, c-format +msgid " --swap move data directories to new cluster\n" +msgstr " --swap მონაცემებთა საქაღალდეების გადატანა ახალ კლასტერში\n" + +#: option.c:335 #, c-format msgid " --sync-method=METHOD set method for syncing files to disk\n" msgstr " --sync-method=მეთოდი ფაილების დისკზე სინქრონიზაციის მეთოდის დაყენება\n" -#: option.c:310 +#: option.c:336 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: option.c:311 +#: option.c:337 #, c-format msgid "" "\n" @@ -1479,7 +1568,7 @@ msgstr "" " გამორთოთ postmaster სერვისი ძველ კლასტერზე\n" " გამორთოთ postmaster სერვისი ახალ კლასტერზე\n" -#: option.c:316 +#: option.c:342 #, c-format msgid "" "\n" @@ -1496,7 +1585,7 @@ msgstr "" " ძველი ვერსიის \"bin\" საქაღალდე (-b BINDIR)\n" " ახალი ვერსიის \"bin\" საქაღალდე (-B BINDIR)\n" -#: option.c:322 +#: option.c:348 #, c-format msgid "" "\n" @@ -1509,7 +1598,7 @@ msgstr "" " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B newCluster/bin\n" "ან\n" -#: option.c:327 +#: option.c:353 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1524,7 +1613,7 @@ msgstr "" " $ export PGBINNEW=newCluster/bin\n" " $ pg_upgrade\n" -#: option.c:333 +#: option.c:359 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1539,7 +1628,7 @@ msgstr "" " C:\\> set PGBINNEW=newCluster/bin\n" " C:\\> pg_upgrade\n" -#: option.c:339 +#: option.c:365 #, c-format msgid "" "\n" @@ -1548,12 +1637,12 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: option.c:340 +#: option.c:366 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: option.c:380 +#: option.c:406 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1562,32 +1651,32 @@ msgstr "" "%s-ის საქაღალდის იდენტიფიკაცია აუცილებელია.\n" "გამოიყენეთ ბრძანების სტრიქონის %s პარამეტრი ან გარემოს ცვლადი %s." -#: option.c:433 +#: option.c:459 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "საწყისი კლასტერის რეალური მონაცემთა საქაღალდის პოვნა" -#: option.c:435 +#: option.c:461 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "სამიზნე კლასტერის რეალური მონაცემთა საქაღალდის პოვნა" -#: option.c:448 +#: option.c:474 #, c-format msgid "could not get data directory using %s: %m" msgstr "ვერ მივიღე მონაცემთა საქაღალდე %s გამოყენებით: %m" -#: option.c:452 +#: option.c:478 #, c-format msgid "could not get data directory using %s: %s" msgstr "ვერ მივიღე მონაცემთა საქაღალდე %s გამოყენებით: %s" -#: option.c:500 +#: option.c:526 #, c-format msgid "could not read line %d from file \"%s\": %m" msgstr "ფაილიდან (%2$s) %1$d-ე ხაზის წაკითხვა შეუძლებელია: %3$m" -#: option.c:517 +#: option.c:543 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "მომხმარებლის მიერ მოწოდებული ძველი პორტის ნომერი %hu შესწორებულია %hu" @@ -1617,12 +1706,12 @@ msgstr "შვილი პროცესი არანორმალურ msgid "child worker exited abnormally: %m" msgstr "შვილი დამხმარე პროცესი არანორმალურად დასრულდა სტატუსით %m" -#: pg_upgrade.c:115 +#: pg_upgrade.c:114 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "საქაღალდის წვდომების წაკითხვა შეუძლებელია \"%s\": %m" -#: pg_upgrade.c:147 +#: pg_upgrade.c:146 #, c-format msgid "" "\n" @@ -1633,17 +1722,17 @@ msgstr "" "მიმდინარეობს განახლება\n" "------------------" -#: pg_upgrade.c:192 +#: pg_upgrade.c:194 #, c-format msgid "Setting next OID for new cluster" msgstr "ახალი კლასტერისთვის შემდეგი OID დაყენება" -#: pg_upgrade.c:216 +#: pg_upgrade.c:218 #, c-format msgid "Sync data directory to disk" msgstr "მონაცემების საქაღალდის დისკთან სინქრონიზაცია" -#: pg_upgrade.c:230 +#: pg_upgrade.c:234 #, c-format msgid "" "\n" @@ -1654,23 +1743,23 @@ msgstr "" "განახლება დასრულებულია\n" "----------------" -#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 -#: pg_upgrade.c:308 pg_upgrade.c:319 +#: pg_upgrade.c:267 pg_upgrade.c:280 pg_upgrade.c:287 pg_upgrade.c:294 +#: pg_upgrade.c:312 pg_upgrade.c:323 #, c-format msgid "directory path for new cluster is too long" msgstr "ახალი კლასტერის საქაღალდის ბილიკი ძალიან გრძელია" -#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#: pg_upgrade.c:301 pg_upgrade.c:303 pg_upgrade.c:305 pg_upgrade.c:307 #, c-format msgid "could not create directory \"%s\": %m" msgstr "საქაღალდის (%s) შექმნის შეცდომა: %m" -#: pg_upgrade.c:352 +#: pg_upgrade.c:356 #, c-format msgid "%s: could not find own program executable" msgstr "%s: საკუთარი პროგრამის გამშვები ფაილის პოვნა შეუძლებელია" -#: pg_upgrade.c:378 +#: pg_upgrade.c:382 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1679,7 +1768,7 @@ msgstr "" "როგორც ჩანს, ძველ კლასტერს postmaster ჯერ კიდევ ემსახურება.\n" "გამორთეთ postmaster და თავიდან სცადეთ." -#: pg_upgrade.c:391 +#: pg_upgrade.c:395 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1688,141 +1777,201 @@ msgstr "" "როგორც ჩანს, ახალ კლასტერს postmaster ემსახურება.\n" "გამორთეთ postmaster და თავიდან სცადეთ." -#: pg_upgrade.c:413 +#: pg_upgrade.c:421 +#, c-format +msgid "Setting the default char signedness for new cluster" +msgstr "ნაგულისხმევი სიმბოლოს ნიშნიანობის დაყენება ახალი კლასტერისთვის" + +#: pg_upgrade.c:449 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "ახალი კლასტერის ლოკალის და კოდირების დაყენება" -#: pg_upgrade.c:489 +#: pg_upgrade.c:527 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "ახალ კლასტერში ყველა მწკრივის ანალიზი" -#: pg_upgrade.c:502 +#: pg_upgrade.c:540 #, c-format msgid "Freezing all rows in the new cluster" msgstr "ახალ კლასტერში ყველა მწკრივის გაყინვა" -#: pg_upgrade.c:522 +#: pg_upgrade.c:560 #, c-format msgid "Restoring global objects in the new cluster" msgstr "ახალი კლასტერში გლობალური ობიექტების აღდგენა" -#: pg_upgrade.c:538 +#: pg_upgrade.c:577 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "ახალ კლასტერში ბაზის სქემების აღდგენა" -#: pg_upgrade.c:662 +#: pg_upgrade.c:712 #, c-format msgid "Deleting files from new %s" msgstr "ფაილების წაშლა ახალი %s-დან" -#: pg_upgrade.c:666 +#: pg_upgrade.c:716 #, c-format msgid "could not delete directory \"%s\"" msgstr "საქაღალდის (\"%s\") წაშლის შეცდომა" -#: pg_upgrade.c:685 +#: pg_upgrade.c:735 #, c-format msgid "Copying old %s to new server" msgstr "ძველი %s -ის კოპირება ახალ სერვერზე" -#: pg_upgrade.c:711 +#: pg_upgrade.c:761 #, c-format msgid "Setting oldest XID for new cluster" msgstr "უძველესი XID დაყენება ახალი კლასტერისთვის" -#: pg_upgrade.c:719 +#: pg_upgrade.c:769 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "ახალი კლასტერისთვის შემდეგი ტრანზაქციის ეპოქისა და ID-ის დაყენება" -#: pg_upgrade.c:749 +#: pg_upgrade.c:799 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "ახალი კლასტერისთვის შემდეგი მულტიტრანზაქციის წანაცვლებისა და ID-ის დაყენება" -#: pg_upgrade.c:773 +#: pg_upgrade.c:823 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "ახალ კლასტერში უძველესი მულტიტრანზაქციის ID-ის დაყენება" -#: pg_upgrade.c:793 +#: pg_upgrade.c:843 #, c-format msgid "Resetting WAL archives" msgstr "WAL არქივების გადატვირთვა" -#: pg_upgrade.c:836 +#: pg_upgrade.c:886 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "ახალ კლასტერში frozenxid და minmxid მთვლელების დაყენება" -#: pg_upgrade.c:838 +#: pg_upgrade.c:888 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "ახალ კლასტერში minmxid მთვლელის დაყენება" -#: pg_upgrade.c:929 +#: pg_upgrade.c:979 #, c-format msgid "Restoring logical replication slots in the new cluster" msgstr "ახალი კლასტერში ლოგიკური რეპლიკაციის სლოტების აღდგენა" -#: relfilenumber.c:35 +#: relfilenumber.c:68 +#, c-format +msgid "could not synchronize file \"%s\": %m" +msgstr "ფაილის (%s) სინქრონიზაციის შეცდომა: %m" + +#: relfilenumber.c:114 #, c-format msgid "Cloning user relation files" msgstr "მომხმარებლის ურთიერთობის ფაილების კლონირება" -#: relfilenumber.c:38 +#: relfilenumber.c:117 #, c-format msgid "Copying user relation files" msgstr "მომხმარებლის ურთიერთობის ფაილების კოპირება" -#: relfilenumber.c:41 +#: relfilenumber.c:120 #, c-format msgid "Copying user relation files with copy_file_range" msgstr "მომხმარებლის ურთიერთობის ფაილების კოპირება copy_file_range-ით" -#: relfilenumber.c:44 +#: relfilenumber.c:123 #, c-format msgid "Linking user relation files" msgstr "მომხმარებლის ურთიერთობის ფაილების გადაბმა" -#: relfilenumber.c:118 +#: relfilenumber.c:126 +#, c-format +msgid "Swapping data directories" +msgstr "მონაცემების საქაღალდის შეცვლა" + +#: relfilenumber.c:200 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "ძველი მონაცემთა ბაზა \"%s\" ახალ კლასტერში არ არის ნაპოვნი" -#: relfilenumber.c:221 +#: relfilenumber.c:287 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: relfilenumber.c:293 relfilenumber.c:297 +#, c-format +msgid "could not create directory \"%s\"" +msgstr "საქაღალდის (%s) შექმნის შეცდომა" + +#: relfilenumber.c:301 relfilenumber.c:305 +#, c-format +msgid "could not rename \"%s\" to \"%s\"" +msgstr "სახელის გადარქმევის შეცდომა \"%s\"-დან \"%s\"-ზე" + +#: relfilenumber.c:375 relfilenumber.c:402 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: relfilenumber.c:393 relfilenumber.c:420 +#, c-format +msgid "could not rename \"%s\" to \"%s\": %m" +msgstr "სახელის გადარქმევის შეცდომა \"%s\"-დან \"%s\"-ზე: %m" + +#: relfilenumber.c:396 relfilenumber.c:434 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: relfilenumber.c:439 +#, c-format +msgid "could not synchronize directory \"%s\": %m" +msgstr "საქაღალდის \"%s\" სინქრონიზაცია შეუძლებელია: %m" + +#: relfilenumber.c:441 +#, c-format +msgid "could not synchronize parent directory of \"%s\": %m" +msgstr "\"%s\"-ის მშობელი საქაღალდის სინქრონიზაცია შეუძლებელია: %m" + +#: relfilenumber.c:598 #, c-format msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" msgstr "შეცდომა ფაილის არსებობის შემოწმებისას \"%s.%s\" (\"%s\" \"%s\"): %m" -#: relfilenumber.c:238 +#: relfilenumber.c:615 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "გადაწერა \"%s\"-დან \"%s\"-მდე" -#: relfilenumber.c:246 +#: relfilenumber.c:623 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "კლონირება \"%s\"-დან \"%s\"-მდე" -#: relfilenumber.c:251 +#: relfilenumber.c:628 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "კოპირება \"%s\"-დან \"%s\"-მდე" -#: relfilenumber.c:256 +#: relfilenumber.c:633 #, c-format msgid "copying \"%s\" to \"%s\" with copy_file_range" msgstr "კოპირება \"%s\"-დან \"%s\"-მდე copy_file_range-ით" -#: relfilenumber.c:261 +#: relfilenumber.c:638 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "ბმა \"%s\"-დან \"%s\"-მდე" +#: relfilenumber.c:644 +#, c-format +msgid "should never happen" +msgstr "არასდროს უნდა მომხდარიყო" + #: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" @@ -1854,7 +2003,7 @@ msgstr "ვერსიის ფაილის გახსნის შეც msgid "could not parse version file \"%s\"" msgstr "ვერსიის ფაილის დამუშავების შეცდომა \"%s\"" -#: server.c:310 +#: server.c:317 #, c-format msgid "" "\n" @@ -1863,7 +2012,7 @@ msgstr "" "\n" "%s" -#: server.c:314 +#: server.c:321 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1872,7 +2021,7 @@ msgstr "" "ვერ ვუკავშირდები საწყის postmaster-ს, რომელიც შემდეგი ბრძანებით გაეშვა:\n" "%s" -#: server.c:318 +#: server.c:325 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1881,22 +2030,22 @@ msgstr "" "ვერ ვუკავშირდები სამიზნე postmaster-ს, რომელიც შემდეგი ბრძანებით გაეშვა:\n" "%s" -#: server.c:332 +#: server.c:339 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl-ის შეცდომა საწყისი სერვერის გაშვებისას ან შეერთების შეცდომა" -#: server.c:334 +#: server.c:341 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl-ის შეცდომა სამიზნე სერვერის გაშვებისას ან შეერთების შეცდომა" -#: server.c:379 +#: server.c:386 #, c-format msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" -#: server.c:392 +#: server.c:399 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "libpq-ის გარემოს ცვლად %s-ს არალოკალური სერვერის მნიშვნელობა: %s გააჩნია" @@ -1925,6 +2074,26 @@ msgstr "ცხრილების სივრცის საქაღალ msgid "tablespace path \"%s\" is not a directory" msgstr "ცხრილების სივრცის ბილიკი %s საქაღალდეს არ წარმოადგენს" +#: task.c:195 +#, c-format +msgid "failed to create connection with connection string: \"%s\"" +msgstr "ჩავარდა მიერთების შექმნა მიერთების სტრიქონით: \"%s\"" + +#: task.c:217 task.c:268 task.c:283 task.c:294 +#, c-format +msgid "connection failure: %s" +msgstr "მიერთების შეცდომა: %s" + +#: task.c:396 +#, c-format +msgid "invalid socket" +msgstr "არასწორი სოკეტი" + +#: task.c:405 +#, c-format +msgid "select() failed: %m" +msgstr "select() ჩავარდა: %m" + #: util.c:53 util.c:56 util.c:139 util.c:170 util.c:172 #, c-format msgid "%-*s" @@ -1945,11 +2114,6 @@ msgstr "დიახ" msgid "Checking for hash indexes" msgstr "ჰეშის ინდექსების შემოწმება" -#: version.c:121 -#, c-format -msgid "warning" -msgstr "გაფრთხილება" - #: version.c:123 #, c-format msgid "" @@ -1984,17 +2148,17 @@ msgstr "" ", შესრულებული psql-ით მონაცემთა ბაზის ზემომხმარებლის მიერ, თავიდან შექნის ყველა\n" "არასწორ ინდექსს. მანამდე კი, ამ ინდექსებიდან არც ერთი გამოყენებული არ იქნება." -#: version.c:153 +#: version.c:187 #, c-format msgid "Checking for extension updates" msgstr "გაფართოების განახლებების შემოწმება" -#: version.c:200 +#: version.c:201 #, c-format msgid "notice" msgstr "გაფრთხილება" -#: version.c:201 +#: version.c:202 #, c-format msgid "" "\n" diff --git a/src/bin/pg_upgrade/po/ko.po b/src/bin/pg_upgrade/po/ko.po index 5fa498a22035a..800eb1a2f0fea 100644 --- a/src/bin/pg_upgrade/po/ko.po +++ b/src/bin/pg_upgrade/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_upgrade (PostgreSQL) 13\n" +"Project-Id-Version: pg_upgrade (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-10-05 20:45+0000\n" -"PO-Revision-Date: 2020-10-06 14:02+0900\n" +"POT-Creation-Date: 2025-01-17 04:50+0000\n" +"PO-Revision-Date: 2025-01-17 15:47+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,286 +17,477 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: check.c:66 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "하위 프로세스의 종료 코드를 못 받았음: 오류 코드 %lu" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "%ld 사용자 ID에 대한 사용자를 찾지 못함: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "사용자 없음" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "사용자 이름 찾기 실패: 오류 코드 %lu" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "사용자가 만든 테이블에 내장 복합 자료형을 쓰는지 확인 중" + +#: check.c:118 +msgid "" +"Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"해당 데이터베이스 사용자가 만든 테이블에서 내장 복합 자료형을 사용하고 있습니" +"다.\n" +"이 자료형의 OID 값이 PostgreSQL 버전별로 다를 수 있어,\n" +"업그레이드 할 수 없습니다. 해당 칼럼을 삭제한 뒤 다시 업그레이드하세요.\n" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "\"line\" 자료형 호환성 확인 중" + +#: check.c:137 +msgid "" +"Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"해당 데이터베이스에서 \"line\" 자료형을 사용하는 테이블이 있습니다.\n" +"이 자료형의 입출력 방식이 옛 버전과 새 버전에서 서로 호환하지 않습니다.\n" +"먼저 이 자료형을 사용하는 테이블을 삭제 후 업그레이드 작업을 하세요.\n" + +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "사용자가 만든 테이블에 reg* 자료형을 쓰는지 확인 중" + +#: check.c:181 +msgid "" +"Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"옛 서버에서 사용자가 만든 테이블에서 reg* 자료형을 사용하고 있습니다.\n" +"이 자료형들은 pg_upgrade 명령으로 내정된 시스템 OID를 사용하지 못할 수\n" +"있습니다. 그래서 업그레이드 작업을 진행할 수 없습니다.\n" +"사용하고 있는 칼럼을 지우고 업그레이드 작업을 다시 시도하세요.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "\"aclitem\" 자료형 호환성 확인 중" + +#: check.c:198 +msgid "" +"Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"사용자 테이블에서 \"jsonb\" 자료형을 사용하고 있습니다.\n" +"9.4 베타 비전 이후 \"jsonb\" 내부 자료 구조가 바뀌었습니다.\n" +"그래서, 업그레이드 작업이 불가능합니다.\n" +"해당 칼럼들을 지우고 업그레이드 작업을 진행하세요.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "잘못된 \"unknown\" 사용자 칼럼을 확인 중" + +#: check.c:222 +msgid "" +"Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "" +"해당 데이터베이스에서 사용자 테이블에서 \"unknown\" 자료형을 사용하고 있습니" +"다.\n" +"이 자료형은 더 이상 사용할 수 없습니다. 이 문제를 옛 버전에서 먼저 정리하고\n" +"업그레이드 작업을 진행하세요.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "잘못된 \"sql_identifier\" 사용자 칼럼을 확인 중" + +#: check.c:244 +msgid "" +"Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "" +"사용자 테이블 또는 인덱스에 \"sql_identifier\" 자료형을 사용하고\n" +"있습니다. 이 자료형의 저장 양식이 바뀌었기에, 업그레이드 할 수\n" +"없습니다. 해당 테이블의 칼럼을 지우고 다시 업그레이드 하십시오.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "사용자 테이블에서 \"jsonb\" 자료형 호환성 검사 중" + +#: check.c:260 +msgid "" +"Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "" +"사용자 테이블에서 \"jsonb\" 자료형을 사용하고 있습니다.\n" +"9.4 베타 비전 이후 \"jsonb\" 내부 자료 구조가 바뀌었습니다.\n" +"그래서, 업그레이드 작업이 불가능합니다.\n" +"해당 칼럼들을 지우고 업그레이드 작업을 진행하세요.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "사용자가 만든 테이블에 \"abstime\" 자료형을 쓰는지 확인 중" + +#: check.c:277 +msgid "" +"Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"사용자 테이블에서 \"abstime\" 자료형을 사용하고 있습니다.\n" +"12 비전 이후 \"abstime\" 자료형을 지원하지 않습니다.\n" +"그래서, 업그레이드 작업이 불가능합니다.\n" +"해당 칼럼들을 지우거나, 다른 자료형으로 바꾼 뒤,\n" +"업그레이드 작업을 진행하세요.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "사용자가 만든 테이블에 \"reltime\" 자료형을 쓰는지 확인 중" + +#: check.c:290 +msgid "" +"Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"사용자 테이블에서 \"reltime\" 자료형을 사용하고 있습니다.\n" +"12 비전 이후 \"reltime\" 자료형을 지원하지 않습니다.\n" +"그래서, 업그레이드 작업이 불가능합니다.\n" +"해당 칼럼들을 지우거나, 다른 자료형으로 바꾼 뒤,\n" +"업그레이드 작업을 진행하세요.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "사용자가 만든 테이블에 \"tinterval\" 자료형을 쓰는지 확인 중" + +#: check.c:303 +msgid "" +"Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"사용자 테이블에서 \"tinterval\" 자료형을 사용하고 있습니다.\n" +"12 비전 이후 \"tinterval\" 자료형을 지원하지 않습니다.\n" +"그래서, 업그레이드 작업이 불가능합니다.\n" +"해당 칼럼들을 지우거나, 다른 자료형으로 바꾼 뒤,\n" +"업그레이드 작업을 진행하세요.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "자료형 사용 현황 검사 중" + +#: check.c:480 +#, c-format +msgid "failed check: %s" +msgstr "검사 실패: %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "문제 칼럼 목록을 다음 파일 안에 있습니다:" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "자료형 검사 실패: %s" + +#: check.c:563 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" -"------------------------------------------------\n" +"------------------------------------------------" msgstr "" "옛 운영 서버에서 일관성 검사를 진행합니다.\n" -"------------------------------------------\n" +"------------------------------------------" -#: check.c:72 +#: check.c:569 #, c-format msgid "" "Performing Consistency Checks\n" -"-----------------------------\n" +"-----------------------------" msgstr "" "일관성 검사 수행중\n" -"------------------\n" +"------------------" -#: check.c:190 +#: check.c:718 #, c-format msgid "" "\n" -"*Clusters are compatible*\n" +"*Clusters are compatible*" msgstr "" "\n" -"*클러스터 호환성*\n" +"*클러스터 호환성*" -#: check.c:196 +#: check.c:726 #, c-format msgid "" "\n" "If pg_upgrade fails after this point, you must re-initdb the\n" -"new cluster before continuing.\n" +"new cluster before continuing." msgstr "" "\n" "여기서 pg_upgrade 작업을 실패한다면, 재시도 하기 전에 먼저\n" -"새 클러스터를 처음부터 다시 만들어 진행해야 합니다.\n" +"새 클러스터를 처음부터 다시 만들어 진행해야 합니다." -#: check.c:232 +#: check.c:767 #, c-format msgid "" -"Optimizer statistics are not transferred by pg_upgrade so,\n" -"once you start the new server, consider running:\n" -" %s\n" -"\n" +"Optimizer statistics are not transferred by pg_upgrade.\n" +"Once you start the new server, consider running:\n" +" %s/vacuumdb %s--all --analyze-in-stages" msgstr "" "pg_upgrade 작업에서는 최적화기를 위한 통계 정보까지 업그레이드\n" "하지는 않습니다. 새 서버가 실행 될 때, 다음 명령을 수행하길 권합니다:\n" -" %s\n" -"\n" +" %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:237 -#, c-format -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 "" -"pg_upgrade 작업으로는 통계 정보와 빈 공간 정보는 업그레이드 되지\n" -"않습니다. 새 서버가 실행 될 때, 다음 명령을 수행하길 권합니다:\n" -" %s\n" -"\n" - -#: check.c:244 +#: check.c:773 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" -" %s\n" +" %s" msgstr "" "아래 스크립트를 실행하면, 옛 클러스터 자료를 지울 것입니다:\n" -" %s\n" +" %s" -#: check.c:249 +#: check.c:778 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" "because user-defined tablespaces or the new cluster's data directory\n" "exist in the old cluster directory. The old cluster's contents must\n" -"be deleted manually.\n" +"be deleted manually." msgstr "" "옛 클러스터 자료 파일을 지우는 스크립트를 만들지 못했습니다.\n" "사용자 정의 테이블스페이스나, 새 클러스터가 옛 클러스터 안에\n" -"있기 때문입니다. 옛 클러스터 자료는 직접 찾아서 지우세요.\n" +"있기 때문입니다. 옛 클러스터 자료는 직접 찾아서 지우세요." -#: check.c:259 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "클러스터 버전 검사 중" -#: check.c:271 +#: check.c:802 #, c-format -msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" -msgstr "이 도구는 PostgreSQL 8.4 이상 버전에서 사용할 수 있습니다.\n" +msgid "This utility can only upgrade from PostgreSQL version %s and later." +msgstr "이 도구는 PostgreSQL %s 과 그 이상 버전에서 사용할 수 있습니다." -#: check.c:275 +#: check.c:807 #, c-format -msgid "This utility can only upgrade to PostgreSQL version %s.\n" -msgstr "이 도구는 PostgreSQL %s 버전으로만 업그레이드 할 수 있습니다.\n" +msgid "This utility can only upgrade to PostgreSQL version %s." +msgstr "이 도구는 PostgreSQL %s 버전으로만 업그레이드 할 수 있습니다." -#: check.c:284 +#: check.c:816 #, c-format msgid "" -"This utility cannot be used to downgrade to older major PostgreSQL " -"versions.\n" +"This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "" "이 도구는 더 낮은 메이져 PostgreSQL 버전으로 다운그레이드하는데 사용할 수 없" -"습니다.\n" +"습니다." -#: check.c:289 +#: check.c:821 #, c-format msgid "" -"Old cluster data and binary directories are from different major versions.\n" -msgstr "옛 클러스터 자료와 실행파일 디렉터리가 서로 메이져 버전이 다릅니다.\n" +"Old cluster data and binary directories are from different major versions." +msgstr "옛 클러스터 자료와 실행파일 디렉터리가 서로 메이져 버전이 다릅니다." -#: check.c:292 +#: check.c:824 #, c-format msgid "" -"New cluster data and binary directories are from different major versions.\n" -msgstr "새 클러스터 자료와 실행파일 디렉터리가 서로 메이져 버전이 다릅니다.\n" +"New cluster data and binary directories are from different major versions." +msgstr "새 클러스터 자료와 실행파일 디렉터리가 서로 메이져 버전이 다릅니다." -#: check.c:309 +#: check.c:839 #, c-format msgid "" -"When checking a pre-PG 9.1 live old server, you must specify the old " -"server's port number.\n" +"When checking a live server, the old and new port numbers must be different." msgstr "" -"옛 서버가 9.1 버전 이전 이라면 옛 서버의 포트를 반드시 지정해야 합니다.\n" +"운영 서버 검사를 할 때는, 옛 서버, 새 서버의 포트를 다르게 지정해야 합니다." -#: check.c:313 +#: check.c:859 #, c-format -msgid "" -"When checking a live server, the old and new port numbers must be " -"different.\n" +msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "" -"운영 서버 검사를 할 때는, 옛 서버, 새 서버의 포트를 다르게 지정해야 합니다.\n" +"\"%s\" 새 데이터베이스 클러스터가 비어있지 않음: \"%s.%s\" 릴레이션을 찾았음" -#: check.c:328 +#: check.c:882 #, c-format -msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"\"%s\" 데이터베이스의 인코딩이 서로 다릅니다: 옛 서버 \"%s\", 새 서버 \"%s" -"\"\n" +msgid "Checking for new cluster tablespace directories" +msgstr "새 클러스터 테이블스페이스 디렉터리 검사 중" -#: check.c:333 +#: check.c:893 #, c-format -msgid "" -"lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"\"%s\" 데이터베이스의 lc_collate 값이 서로 다릅니다: 옛 서버 \"%s\", 새 서버 " -"\"%s\"\n" +msgid "new cluster tablespace directory already exists: \"%s\"" +msgstr "새 클러스터 테이블스페이스 디렉터리가 이미 있음: \"%s\"" -#: check.c:336 -#, c-format -msgid "" -"lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"\"%s\" 데이터베이스의 lc_ctype 값이 서로 다릅니다: 옛 서버 \"%s\", 새 서버 " -"\"%s\"\n" - -#: check.c:409 -#, c-format -msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" -msgstr "" -"\"%s\" 새 데이터베이스 클러스터가 비어있지 않습니다.\n" -" -- \"%s.%s\" 릴레이션을 찾았음\n" - -#: check.c:458 -#, c-format -msgid "Creating script to analyze new cluster" -msgstr "새 클러스터 통계정보 수집 스크립트를 만듭니다" - -#: check.c:472 check.c:600 check.c:864 check.c:943 check.c:1053 check.c:1144 -#: file.c:336 function.c:240 option.c:497 version.c:54 version.c:199 -#: version.c:341 -#, c-format -msgid "could not open file \"%s\": %s\n" -msgstr "\"%s\" 파일을 열 수 없음: %s\n" - -#: check.c:527 check.c:656 -#, c-format -msgid "could not add execute permission to file \"%s\": %s\n" -msgstr "\"%s\" 파일에 실행 권한을 추가 할 수 없음: %s\n" - -#: check.c:563 +#: check.c:926 #, c-format msgid "" "\n" -"WARNING: new data directory should not be inside the old data directory, e." -"g. %s\n" +"WARNING: new data directory should not be inside the old data directory, " +"i.e. %s" msgstr "" "\n" -"경고: 새 데이터 디렉터리는 옛 데이터 디렉터리 안에 둘 수 없습니다, 예: %s\n" +"경고: 새 데이터 디렉터리는 옛 데이터 디렉터리 안에 둘 수 없습니다, 예: %s" -#: check.c:587 +#: check.c:950 #, c-format msgid "" "\n" "WARNING: user-defined tablespace locations should not be inside the data " -"directory, e.g. %s\n" +"directory, i.e. %s" msgstr "" "\n" "경고: 사용자 정의 테이블스페이스 위치를 데이터 디렉터리 안에 둘 수 없습니다, " -"예: %s\n" +"예: %s" -#: check.c:597 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "옛 클러스터를 지우는 스크립트를 만듭니다" -#: check.c:676 +#: check.c:1014 +#, c-format +msgid "could not add execute permission to file \"%s\": %m" +msgstr "\"%s\" 파일에 실행 권한을 추가 할 수 없음: %m" + +#: check.c:1034 #, c-format msgid "Checking database user is the install user" msgstr "데이터베이스 사용자가 설치 작업을 한 사용자인지 확인합니다" -#: check.c:692 +#: check.c:1050 #, c-format -msgid "database user \"%s\" is not the install user\n" -msgstr "\"%s\" 데이터베이스 사용자는 설치 작업을 한 사용자가 아닙니다\n" +msgid "database user \"%s\" is not the install user" +msgstr "\"%s\" 데이터베이스 사용자는 설치 작업을 한 사용자가 아닙니다" -#: check.c:703 +#: check.c:1061 #, c-format -msgid "could not determine the number of users\n" -msgstr "사용자 수를 확인할 수 없음\n" +msgid "could not determine the number of users" +msgstr "사용자 수를 확인할 수 없음" -#: check.c:711 +#: check.c:1069 #, c-format -msgid "Only the install user can be defined in the new cluster.\n" -msgstr "새 클러스터에서만 설치 사용 사용자가 정의될 수 있음\n" +msgid "Only the install user can be defined in the new cluster." +msgstr "새 클러스터에서만 설치 사용 사용자가 정의될 수 있음" -#: check.c:731 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "데이터베이스 연결 설정을 확인 중" -#: check.c:753 +#: check.c:1124 #, c-format msgid "" "template0 must not allow connections, i.e. its pg_database.datallowconn must " -"be false\n" +"be false" msgstr "" "template0 데이터베이스 접속을 금지해야 합니다. 예: 해당 데이터베이스의 " -"pg_database.datallowconn 값이 false여야 합니다.\n" +"pg_database.datallowconn 값이 false여야 합니다." + +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 +#, c-format +msgid "fatal" +msgstr "치명적 오류" -#: check.c:763 +#: check.c:1151 #, c-format msgid "" -"All non-template0 databases must allow connections, i.e. their pg_database." -"datallowconn must be true\n" +"All non-template0 databases must allow connections, i.e. their\n" +"pg_database.datallowconn must be true. Your installation contains\n" +"non-template0 databases with their pg_database.datallowconn set to\n" +"false. Consider allowing connection for all non-template0 databases\n" +"or drop the databases which do not allow connections. A list of\n" +"databases with the problem is in the file:\n" +" %s" msgstr "" -"template0 데이터베이스를 제외한 다른 모든 데이터베이스는 접속이 가능해야합니" -"다. 예: 그들의 pg_database.datallowconn 값은 true여야 합니다.\n" +"template0이 아닌 모든 데이터베이스는 연결을 허용해야하며, 즉 \n" +"pg_database.datallowconn 값이 true여야합니다. 설치된 데이터베이스\n" +"중 pg_database.datallowconn 값이 false로 설정된 template0이 아닌\n" +"데이터베이스가 있습니다. template0이 아닌 데이터베이스의 모든 연결을\n" +"허용하거나 연결을 허용하지 않는 데이터베이스를 삭제하는 것이 좋습니다.\n" +"문제가 있는 데이터베이스 목록은 다음 파일에 기록해 두었습니다:\n" +" %s" -#: check.c:788 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "미리 준비된 트랜잭션을 확인 중" -#: check.c:797 +#: check.c:1185 #, c-format -msgid "The source cluster contains prepared transactions\n" -msgstr "옛 클러스터에 미리 준비된 트랜잭션이 있음\n" +msgid "The source cluster contains prepared transactions" +msgstr "옛 클러스터에 미리 준비된 트랜잭션이 있음" -#: check.c:799 +#: check.c:1187 #, c-format -msgid "The target cluster contains prepared transactions\n" -msgstr "새 클러스터에 미리 준비된 트랜잭션이 있음\n" +msgid "The target cluster contains prepared transactions" +msgstr "새 클러스터에 미리 준비된 트랜잭션이 있음" -#: check.c:825 +#: check.c:1212 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "contrib/isn 모듈의 bigint 처리가 서로 같은지 확인 중" -#: check.c:886 check.c:965 check.c:1076 check.c:1167 function.c:262 -#: version.c:245 version.c:282 version.c:425 -#, c-format -msgid "fatal\n" -msgstr "치명적 오류\n" - -#: check.c:887 +#: check.c:1271 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -305,444 +496,547 @@ msgid "" "manually dump databases in the old cluster that use \"contrib/isn\"\n" "facilities, drop them, perform the upgrade, and then restore them. A\n" "list of the problem functions is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "설치되어 있는 \"contrib/isn\" 모듈은 bigint 자료형을 사용합니다.\n" "이 bigint 자료형의 처리 방식이 새 버전과 옛 버전 사이 호환성이 없어,\n" "이 클러스터 업그레이드를 할 수 없습니다. 먼저 수동으로 데이터베이스를 \n" "덤프하고, 해당 모듈을 삭제하고, 업그레이드 한 뒤 다시 덤프 파일을 이용해\n" "복원할 수 있습니다. 문제가 있는 함수는 아래 파일 안에 있습니다:\n" -" %s\n" -"\n" +" %s" + +#: check.c:1293 +#, c-format +msgid "Checking for user-defined postfix operators" +msgstr "사용자 정의 postfix 연산자를 검사 중" + +#: check.c:1368 +#, c-format +msgid "" +"Your installation contains user-defined postfix operators, which are not\n" +"supported anymore. Consider dropping the postfix operators and replacing\n" +"them with prefix operators or function calls.\n" +"A list of user-defined postfix operators is in the file:\n" +" %s" +msgstr "" +"더 이상 사용자 정의 postfix 연산자를 지원하지 않습니다.\n" +"해당 연산자를 지우고, prefix 연산자로 바꾸거나, 함수 호출\n" +"방식으로 바꾸는 것을 고려해 보십시오.\n" +"관련 사용자 정의 postfix 연산자 목록은 아래 파일 안에 있습니다:\n" +" %s" + +#: check.c:1392 +#, c-format +msgid "Checking for incompatible polymorphic functions" +msgstr "불완전한 다형 함수를 확인합니다" -#: check.c:911 +#: check.c:1493 +#, c-format +msgid "" +"Your installation contains user-defined objects that refer to internal\n" +"polymorphic functions with arguments of type \"anyarray\" or " +"\"anyelement\".\n" +"These user-defined objects must be dropped before upgrading and restored\n" +"afterwards, changing them to refer to the new corresponding functions with\n" +"arguments of type \"anycompatiblearray\" and \"anycompatible\".\n" +"A list of the problematic objects is in the file:\n" +" %s" +msgstr "" +"이 서버에는 \"anyarray\" 또는 \"anyelement\" 유형의 인수를 사용하는 \n" +"내부 다형 함수를 참조하는 사용자 정의 객체가 있습니다. \n" +"이러한 사용자 정의 객체는 업그레이드하기 전에 삭제하고, \n" +"\"anycompatiblearray\" 또는 \"anycompatible\" 유형의 새로운 대응 함수를\n" +"참조하도록 변경한 후 다시 복원해야합니다. 문제가 있는 객체 목록은\n" +"다음 파일 안에 있습니다:\n" +" %s" + +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "WITH OIDS 옵션 있는 테이블 확인 중" -#: check.c:966 +#: check.c:1569 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" "supported anymore. Consider removing the oid column using\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "A list of tables with the problem is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "더 이상 WITH OIDS 옵션을 사용하는 테이블을 지원하지 않습니다.\n" "먼저 oid 칼럼이 있는 기존 테이블을 대상으로 다음 명령을 실행해서\n" "이 옵션을 뺄 것을 고려해 보십시오.\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "관련 테이블 목록은 아래 파일 안에 있습니다:\n" -" %s\n" -"\n" +" %s" -#: check.c:996 +#: check.c:1596 #, c-format -msgid "Checking for reg* data types in user tables" -msgstr "사용자가 만든 테이블에 reg* 자료형을 쓰는지 확인 중" +msgid "Checking for roles starting with \"pg_\"" +msgstr "\"pg_\"로 시작하는 롤 확인 중" -#: check.c:1077 +#: check.c:1627 #, c-format msgid "" -"Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" -"remove the problem tables and restart the upgrade. A list of the\n" -"problem columns is in the file:\n" -" %s\n" -"\n" +"Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" +" %s" msgstr "" -"옛 서버에서 사용자가 만든 테이블에서 reg* 자료형을 사용하고 있습니다.\n" -"이 자료형들은 pg_upgrade 명령으로 내정된 시스템 OID를 사용하지 못할 수\n" -"있습니다. 그래서 업그레이드 작업을 진행할 수 없습니다.\n" -"사용하고 있는 테이블들을 지우고 업그레이드 작업을 다시 시도하세요.\n" -"이런 자료형을 사용하는 칼럼들은 아래 파일 안에 있습니다:\n" -" %s\n" -"\n" +"기존 데이터베이스에 사용자가 만든 \"pg_\"로 시작하는 롤이\n" +"있습니다. \"pg_\"는 시스템 롤로 예약된 접두어입니다.\n" +"이 롤들을 다른 이름으로 바꿔야 업그레이드가 가능합니다.\n" +"\"pg_\"로 시작하는 롤 이름 목록은 다음 파일에 있습니다:\n" +" %s" -#: check.c:1102 +#: check.c:1647 #, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "\"jsonb\" 자료형 호환성 확인 중" +msgid "Checking for user-defined encoding conversions" +msgstr "사용자 정의 인코딩 변환규칙을 검사 중" -#: check.c:1168 +#: check.c:1707 #, c-format msgid "" -"Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"cluster cannot currently be upgraded. You can remove the problem\n" -"tables and restart the upgrade. A list of the problem columns is\n" -"in the file:\n" -" %s\n" -"\n" +"Your installation contains user-defined encoding conversions.\n" +"The conversion function parameters changed in PostgreSQL version 14\n" +"so this cluster cannot currently be upgraded. You can remove the\n" +"encoding conversions in the old cluster and restart the upgrade.\n" +"A list of user-defined encoding conversions is in the file:\n" +" %s" msgstr "" -"사용자 테이블에서 \"jsonb\" 자료형을 사용하고 있습니다.\n" -"9.4 베타 비전 이후 JSONB 내부 자료 구조가 바뀌었습니다.\n" +"사용자 정의 인코딩 변환 규칙용 변환 함수 매개 변수가\n" +"PostgreSQL 14 비전 이후 바뀌었습니다.\n" "그래서, 업그레이드 작업이 불가능합니다.\n" -"해당 테이블들을 지우고 업그레이드 작업을 진행하세요\n" -"해당 자료형을 칼럼들은 아래 파일 안에 있습니다:\n" -" %s\n" -"\n" +"먼저 이런 변환 규칙을 옛 서버에서 지우고 다시 시도하세요.\n" +"해당 변환 규칙 목록은 아래 파일 안에 있습니다:\n" +" %s" -#: check.c:1190 +#: check.c:1746 #, c-format -msgid "Checking for roles starting with \"pg_\"" -msgstr "\"pg_\"로 시작하는 롤 확인 중" +msgid "Checking for new cluster logical replication slots" +msgstr "새 클러스터 논리 복제 슬롯 검사 중" + +#: check.c:1754 +#, c-format +msgid "could not count the number of logical replication slots" +msgstr "논리 복제 슬롯 개수를 파악할 수 없음" + +#: check.c:1759 +#, c-format +msgid "expected 0 logical replication slots but found %d" +msgstr "논리 복제 슬롯이 없다고 판단했는데, %d개 발견 됨" + +#: check.c:1769 check.c:1820 +#, c-format +msgid "could not determine parameter settings on new cluster" +msgstr "새 클러스터용 매개변수 설정을 조사 할 수 없음" + +#: check.c:1774 +#, c-format +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "\"wal_level\" 설정값은 \"logical\"이어야 하는데, \"%s\"임" -#: check.c:1200 +#: check.c:1780 #, c-format -msgid "The source cluster contains roles starting with \"pg_\"\n" -msgstr "옛 클러스터에 \"pg_\" 시작하는 롤이 있습니다.\n" +msgid "" +"\"max_replication_slots\" (%d) must be greater than or equal to the number " +"of logical replication slots (%d) on the old cluster" +msgstr "" +"\"max_replication_slots\" 설정값(%d)이 옛 클러스터 논리 복제 슬롯 수(%d)와 같" +"거나 커야 함" -#: check.c:1202 +#: check.c:1812 #, c-format -msgid "The target cluster contains roles starting with \"pg_\"\n" -msgstr "새 클러스터에 \"pg_\"로 시작하는 롤이 있습니다.\n" +msgid "Checking for new cluster configuration for subscriptions" +msgstr "구독을 위한 새 클러스터 환경 설정을 검사 중" -#: check.c:1228 +#: check.c:1824 #, c-format -msgid "failed to get the current locale\n" -msgstr "현재 로케일을 확인 할 수 없음\n" +msgid "" +"\"max_replication_slots\" (%d) must be greater than or equal to the number " +"of subscriptions (%d) on the old cluster" +msgstr "" +"\"max_replication_slots\" 설정값(%d)이 옛 클러스터 구독 수(%d)와 같거나 커야 " +"함" -#: check.c:1237 +#: check.c:1846 #, c-format -msgid "failed to get system locale name for \"%s\"\n" -msgstr "\"%s\"용 시스템 로케일 이름을 알 수 없음\n" +msgid "Checking for valid logical replication slots" +msgstr "논리 복제 슬롯 유효성 검사 중" -#: check.c:1243 +#: check.c:1898 #, c-format -msgid "failed to restore old locale \"%s\"\n" -msgstr "\"%s\" 옛 로케일을 복원할 수 없음\n" +msgid "" +"Your installation contains logical replication slots that cannot be " +"upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other " +"slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" +" %s" +msgstr "" +"옛 클러스터에 업그레이드 할 수 없는 논리 복제 슬롯이 있습니다.\n" +"필요 없는 슬롯을 지우거나 지연된 WAL 소비를 한 뒤에,\n" +"업그레이드 작업을 진행하세요.\n" +"해당 문제의 슬롯 목록은 다음 파일 안에 있습니다:\n" +" %s" + +#: check.c:1922 +#, c-format +msgid "Checking for subscription state" +msgstr "구독 상태 검사 중" + +#: check.c:2023 +#, c-format +msgid "" +"Your installation contains subscriptions without origin or having relations " +"not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart " +"the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" +" %s" +msgstr "" +"오리진 없는 구독이 있거나, i(초기화), r(준비) 상태가 아닌 릴레이션을 포함하" +"는 구독이 있습니다.\n" +"구독의 자료 일관성을 모두 맞춘 다음 업그레이드 작업을 진행하세요.\n" +"해당 문제의 구독 목록은 다음 파일 안에 있습니다:\n" +" %s" -#: controldata.c:127 controldata.c:195 +#: controldata.c:129 controldata.c:199 #, c-format -msgid "could not get control data using %s: %s\n" -msgstr "%s 사용하는 컨트롤 자료를 구할 수 없음: %s\n" +msgid "could not get control data using %s: %m" +msgstr "%s 사용하는 컨트롤 자료를 구할 수 없음: %m" -#: controldata.c:138 +#: controldata.c:139 #, c-format -msgid "%d: database cluster state problem\n" -msgstr "%d: 데이터베이스 클러스터 상태 문제\n" +msgid "%d: database cluster state problem" +msgstr "%d: 데이터베이스 클러스터 상태 문제" -#: controldata.c:156 +#: controldata.c:158 #, 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" +"\"rsync\" as documented or shut it down as a primary." msgstr "" "원본 클러스터는 복구 모드(대기 서버 모드나, 복구 중) 상태에서 중지 되었습니" "다. 업그레이드 하려면, 문서에 언급한 것 처럼 \"rsync\"를 사용하든가, 그 서버" -"를 운영 서버 모드로 바꾼 뒤 중지하고 작업하십시오.\n" +"를 운영 서버 모드로 바꾼 뒤 중지하고 작업하십시오." -#: controldata.c:158 +#: controldata.c:160 #, 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" +"\"rsync\" as documented or shut it down as a primary." msgstr "" "대상 클러스터는 복구 모드(대기 서버 모드나, 복구 중) 상태에서 중지 되었습니" "다. 업그레이드 하려면, 문서에 언급한 것 처럼 \"rsync\"를 사용하든가, 그 서버" -"를 운영 서버 모드로 바꾼 뒤 중지하고 작업하십시오.\n" +"를 운영 서버 모드로 바꾼 뒤 중지하고 작업하십시오." -#: controldata.c:163 +#: controldata.c:165 #, c-format -msgid "The source cluster was not shut down cleanly.\n" -msgstr "원본 클러스터는 정상적으로 종료되어야 함\n" +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "원본 클러스터는 정상적으로 종료되어야 함, 종료 상태값: \"%s\"" -#: controldata.c:165 +#: controldata.c:167 #, c-format -msgid "The target cluster was not shut down cleanly.\n" -msgstr "대상 클러스터는 정상 종료되어야 함\n" +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "대상 클러스터는 정상 종료되어야 함, 종료 상태값: \"%s\"" -#: controldata.c:176 +#: controldata.c:175 controldata.c:507 #, c-format -msgid "The source cluster lacks cluster state information:\n" -msgstr "원본 클러스터에 클러스터 상태 정보가 없음:\n" +msgid "could not get control data using %s: %s" +msgstr "%s 사용하는 컨트롤 자료를 구할 수 없음: %s" -#: controldata.c:178 +#: controldata.c:181 #, c-format -msgid "The target cluster lacks cluster state information:\n" -msgstr "대상 클러스터에 클러스터 상태 정보가 없음:\n" +msgid "The source cluster lacks cluster state information:" +msgstr "원본 클러스터에 클러스터 상태 정보가 없음:" -#: controldata.c:208 dump.c:49 pg_upgrade.c:339 pg_upgrade.c:375 -#: relfilenode.c:247 util.c:79 +#: controldata.c:183 +#, c-format +msgid "The target cluster lacks cluster state information:" +msgstr "대상 클러스터에 클러스터 상태 정보가 없음:" + +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:215 +#: controldata.c:220 #, c-format -msgid "%d: pg_resetwal problem\n" -msgstr "%d: pg_resetwal 문제\n" +msgid "%d: pg_resetwal problem" +msgstr "%d: pg_resetwal 문제" -#: 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:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 #, c-format -msgid "%d: controldata retrieval problem\n" -msgstr "%d: controldata 복원 문제\n" +msgid "%d: controldata retrieval problem" +msgstr "%d: controldata 복원 문제" -#: controldata.c:546 +#: controldata.c:578 #, c-format -msgid "The source cluster lacks some required control information:\n" -msgstr "옛 클러스터에 필요한 컨트롤 정보가 몇몇 빠져있음:\n" +msgid "The source cluster lacks some required control information:" +msgstr "옛 클러스터에 필요한 컨트롤 정보가 몇몇 빠져있음:" -#: controldata.c:549 +#: controldata.c:581 #, c-format -msgid "The target cluster lacks some required control information:\n" -msgstr "새 클러스터에 필요한 컨트롤 정보가 몇몇 빠져있음:\n" +msgid "The target cluster lacks some required control information:" +msgstr "새 클러스터에 필요한 컨트롤 정보가 몇몇 빠져있음:" -#: controldata.c:552 +#: controldata.c:584 #, c-format -msgid " checkpoint next XID\n" -msgstr " 체크포인트 다음 XID\n" +msgid " checkpoint next XID" +msgstr " 체크포인트 다음 XID" -#: controldata.c:555 +#: controldata.c:587 #, c-format -msgid " latest checkpoint next OID\n" -msgstr " 마지막 체크포인트 다음 OID\n" +msgid " latest checkpoint next OID" +msgstr " 마지막 체크포인트 다음 OID" -#: controldata.c:558 +#: controldata.c:590 #, c-format -msgid " latest checkpoint next MultiXactId\n" -msgstr " 마지막 체크포인트 다음 MultiXactId\n" +msgid " latest checkpoint next MultiXactId" +msgstr " 마지막 체크포인트 다음 MultiXactId" -#: controldata.c:562 +#: controldata.c:594 #, c-format -msgid " latest checkpoint oldest MultiXactId\n" -msgstr " 마지막 체크포인트 제일 오래된 MultiXactId\n" +msgid " latest checkpoint oldest MultiXactId" +msgstr " 마지막 체크포인트 제일 오래된 MultiXactId" -#: controldata.c:565 +#: controldata.c:597 #, c-format -msgid " latest checkpoint next MultiXactOffset\n" -msgstr " 마지막 체크포인트 다음 MultiXactOffset\n" +msgid " latest checkpoint oldestXID" +msgstr " 마지막 체크포인트 제일 오래된 XID" -#: controldata.c:568 +#: controldata.c:600 #, c-format -msgid " first WAL segment after reset\n" -msgstr " 리셋 뒤 첫 WAL 조각\n" +msgid " latest checkpoint next MultiXactOffset" +msgstr " 마지막 체크포인트 다음 MultiXactOffset" -#: controldata.c:571 +#: controldata.c:603 #, c-format -msgid " float8 argument passing method\n" -msgstr " float8 인자 처리 방식\n" +msgid " first WAL segment after reset" +msgstr " 리셋 뒤 첫 WAL 조각" -#: controldata.c:574 +#: controldata.c:606 #, c-format -msgid " maximum alignment\n" -msgstr " 최대 정렬\n" +msgid " float8 argument passing method" +msgstr " float8 인자 처리 방식" -#: controldata.c:577 +#: controldata.c:609 #, c-format -msgid " block size\n" -msgstr " 블록 크기\n" +msgid " maximum alignment" +msgstr " 최대 정렬" -#: controldata.c:580 +#: controldata.c:612 #, c-format -msgid " large relation segment size\n" -msgstr " 대형 릴레이션 조각 크기\n" +msgid " block size" +msgstr " 블록 크기" -#: controldata.c:583 +#: controldata.c:615 #, c-format -msgid " WAL block size\n" -msgstr " WAL 블록 크기\n" +msgid " large relation segment size" +msgstr " 대형 릴레이션 조각 크기" -#: controldata.c:586 +#: controldata.c:618 #, c-format -msgid " WAL segment size\n" -msgstr " WAL 조각 크기\n" +msgid " WAL block size" +msgstr " WAL 블록 크기" -#: controldata.c:589 +#: controldata.c:621 #, c-format -msgid " maximum identifier length\n" -msgstr " 최대 식별자 길이\n" +msgid " WAL segment size" +msgstr " WAL 조각 크기" -#: controldata.c:592 +#: controldata.c:624 #, c-format -msgid " maximum number of indexed columns\n" -msgstr " 최대 인덱스 칼럼 수\n" +msgid " maximum identifier length" +msgstr " 최대 식별자 길이" -#: controldata.c:595 +#: controldata.c:627 #, c-format -msgid " maximum TOAST chunk size\n" -msgstr " 최대 토스트 조각 크기\n" +msgid " maximum number of indexed columns" +msgstr " 최대 인덱스 칼럼 수" -#: controldata.c:599 +#: controldata.c:630 #, c-format -msgid " large-object chunk size\n" -msgstr " 대형 객체 조각 크기\n" +msgid " maximum TOAST chunk size" +msgstr " 최대 토스트 조각 크기" -#: controldata.c:602 +#: controldata.c:634 #, c-format -msgid " dates/times are integers?\n" -msgstr " date/time 자료형을 정수로?\n" +msgid " large-object chunk size" +msgstr " 대형 객체 조각 크기" -#: controldata.c:606 +#: controldata.c:637 #, c-format -msgid " data checksum version\n" -msgstr " 자료 체크섬 버전\n" +msgid " dates/times are integers?" +msgstr " date/time 자료형을 정수로?" -#: controldata.c:608 +#: controldata.c:641 #, c-format -msgid "Cannot continue without required control information, terminating\n" -msgstr "필요한 컨트롤 정보 없이는 진행할 수 없음, 중지 함\n" +msgid " data checksum version" +msgstr " 자료 체크섬 버전" -#: controldata.c:623 +#: controldata.c:643 +#, c-format +msgid "Cannot continue without required control information, terminating" +msgstr "필요한 컨트롤 정보 없이는 진행할 수 없음, 중지 함" + +#: controldata.c:658 #, c-format msgid "" -"old and new pg_controldata alignments are invalid or do not match\n" -"Likely one cluster is a 32-bit install, the other 64-bit\n" +"old and new pg_controldata alignments are invalid or do not match.\n" +"Likely one cluster is a 32-bit install, the other 64-bit" msgstr "" "클러스터간 pg_controldata 정렬이 서로 다릅니다.\n" -"하나는 32비트고, 하나는 64비트인 경우 같습니다\n" +"하나는 32비트고, 하나는 64비트인 경우 같습니다." -#: controldata.c:627 +#: controldata.c:662 #, c-format -msgid "old and new pg_controldata block sizes are invalid or do not match\n" -msgstr "클러스터간 pg_controldata 블록 크기가 서로 다릅니다.\n" +msgid "old and new pg_controldata block sizes are invalid or do not match" +msgstr "클러스터간 pg_controldata 블록 크기가 서로 다릅니다." -#: controldata.c:630 +#: controldata.c:665 #, c-format msgid "" "old and new pg_controldata maximum relation segment sizes are invalid or do " -"not match\n" -msgstr "클러스터간 pg_controldata 최대 릴레이션 조각 크가가 서로 다릅니다.\n" +"not match" +msgstr "클러스터간 pg_controldata 최대 릴레이션 조각 크가가 서로 다릅니다." -#: controldata.c:633 +#: controldata.c:668 #, c-format -msgid "" -"old and new pg_controldata WAL block sizes are invalid or do not match\n" -msgstr "클러스터간 pg_controldata WAL 블록 크기가 서로 다릅니다.\n" +msgid "old and new pg_controldata WAL block sizes are invalid or do not match" +msgstr "클러스터간 pg_controldata WAL 블록 크기가 서로 다릅니다." -#: controldata.c:636 +#: controldata.c:671 #, c-format msgid "" -"old and new pg_controldata WAL segment sizes are invalid or do not match\n" -msgstr "클러스터간 pg_controldata WAL 조각 크기가 서로 다릅니다.\n" +"old and new pg_controldata WAL segment sizes are invalid or do not match" +msgstr "클러스터간 pg_controldata WAL 조각 크기가 서로 다릅니다." -#: controldata.c:639 +#: controldata.c:674 #, c-format msgid "" "old and new pg_controldata maximum identifier lengths are invalid or do not " -"match\n" -msgstr "클러스터간 pg_controldata 최대 식별자 길이가 서로 다릅니다.\n" +"match" +msgstr "클러스터간 pg_controldata 최대 식별자 길이가 서로 다릅니다." -#: controldata.c:642 +#: controldata.c:677 #, c-format msgid "" "old and new pg_controldata maximum indexed columns are invalid or do not " -"match\n" -msgstr "클러스터간 pg_controldata 최대 인덱스 칼럼수가 서로 다릅니다.\n" +"match" +msgstr "클러스터간 pg_controldata 최대 인덱스 칼럼수가 서로 다릅니다." -#: controldata.c:645 +#: controldata.c:680 #, c-format msgid "" "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not " -"match\n" -msgstr "클러스터간 pg_controldata 최대 토스트 조각 크기가 서로 다릅니다.\n" +"match" +msgstr "클러스터간 pg_controldata 최대 토스트 조각 크기가 서로 다릅니다." -#: controldata.c:650 +#: controldata.c:685 #, c-format msgid "" "old and new pg_controldata large-object chunk sizes are invalid or do not " -"match\n" -msgstr "클러스터간 pg_controldata 대형 객체 조각 크기가 서로 다릅니다.\n" +"match" +msgstr "클러스터간 pg_controldata 대형 객체 조각 크기가 서로 다릅니다." -#: controldata.c:653 +#: controldata.c:688 #, c-format -msgid "old and new pg_controldata date/time storage types do not match\n" -msgstr "클러스터간 pg_controldata date/time 저장 크기가 서로 다릅니다.\n" +msgid "old and new pg_controldata date/time storage types do not match" +msgstr "클러스터간 pg_controldata date/time 저장 크기가 서로 다릅니다." -#: controldata.c:666 +#: controldata.c:701 #, c-format -msgid "old cluster does not use data checksums but the new one does\n" +msgid "old cluster does not use data checksums but the new one does" msgstr "" "옛 클러스터는 데이터 체크섬 기능을 사용하지 않고, 새 클러스터는 사용하고 있습" -"니다.\n" +"니다." -#: controldata.c:669 +#: controldata.c:704 #, c-format -msgid "old cluster uses data checksums but the new one does not\n" +msgid "old cluster uses data checksums but the new one does not" msgstr "" "옛 클러스터는 데이터 체크섬 기능을 사용하고, 새 클러스터는 사용하고 있지 않습" -"니다.\n" +"니다." -#: controldata.c:671 +#: controldata.c:706 #, c-format -msgid "old and new cluster pg_controldata checksum versions do not match\n" -msgstr "클러스터간 pg_controldata 체크섬 버전이 서로 다릅니다.\n" +msgid "old and new cluster pg_controldata checksum versions do not match" +msgstr "클러스터간 pg_controldata 체크섬 버전이 서로 다릅니다." -#: controldata.c:682 +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "옛 global/pg_control 파일에 \".old\" 이름을 덧붙입니다." -#: controldata.c:687 +#: controldata.c:722 #, c-format -msgid "Unable to rename %s to %s.\n" -msgstr "%s 이름을 %s 이름으로 바꿀 수 없음.\n" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" -#: controldata.c:690 +#: controldata.c:726 #, c-format msgid "" "\n" "If you want to start the old cluster, you will need to remove\n" "the \".old\" suffix from %s/global/pg_control.old.\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" -"started once the new cluster has been started.\n" -"\n" +"started once the new cluster has been started." msgstr "" "\n" "옛 버전으로 옛 클러스터를 사용해서 서버를 실행하려면,\n" "%s/global/pg_control.old 파일의 이름을 \".old\" 빼고 바꾸어\n" "사용해야합니다. 업그레이드를 \"link\" 모드로 했기 때문에,\n" "한번이라도 새 버전의 서버가 이 클러스터를 이용해서 실행되었다면,\n" -"이 파일이 더 이상 안전하지 않기 때문입니다.\n" -"\n" +"이 파일이 더 이상 안전하지 않기 때문입니다." #: dump.c:20 #, c-format msgid "Creating dump of global objects" msgstr "전역 객체 덤프를 만듭니다" -#: dump.c:31 +#: dump.c:32 #, c-format -msgid "Creating dump of database schemas\n" -msgstr "데이터베이스 스키마 덤프를 만듭니다\n" +msgid "Creating dump of database schemas" +msgstr "데이터베이스 스키마 덤프를 만듭니다" -#: exec.c:44 +#: exec.c:47 #, c-format -msgid "could not get pg_ctl version data using %s: %s\n" -msgstr "%s 명령을 사용해서 pg_ctl 버전 자료를 구할 수 없음: %s\n" +msgid "could not get pg_ctl version data using %s: %m" +msgstr "%s 명령을 사용해서 pg_ctl 버전 자료를 구할 수 없음: %m" -#: exec.c:50 +#: exec.c:51 #, c-format -msgid "could not get pg_ctl version output from %s\n" -msgstr "%s에서 pg_ctl 버전을 알 수 없음\n" +msgid "could not get pg_ctl version data using %s: %s" +msgstr "%s 명령을 사용해서 pg_ctl 버전 자료를 구할 수 없음: %s" -#: exec.c:104 exec.c:108 +#: exec.c:55 #, c-format -msgid "command too long\n" -msgstr "명령이 너무 긺\n" +msgid "could not get pg_ctl version output from %s" +msgstr "%s에서 pg_ctl 버전을 알 수 없음" -#: exec.c:110 util.c:37 util.c:225 +#: exec.c:112 exec.c:116 #, c-format -msgid "%s\n" -msgstr "%s\n" +msgid "command too long" +msgstr "명령이 너무 긺" -#: exec.c:149 option.c:217 +#: exec.c:160 pg_upgrade.c:311 #, c-format -msgid "could not open log file \"%s\": %m\n" -msgstr "\"%s\" 로그 파일을 열 수 없음: %m\n" +msgid "could not open log file \"%s\": %m" +msgstr "\"%s\" 로그 파일을 열 수 없음: %m" -#: exec.c:178 +#: exec.c:192 #, c-format msgid "" "\n" @@ -751,414 +1045,371 @@ msgstr "" "\n" "*실패*" -#: exec.c:181 +#: exec.c:195 #, c-format -msgid "There were problems executing \"%s\"\n" -msgstr "\"%s\" 실행에서 문제 발생\n" +msgid "There were problems executing \"%s\"" +msgstr "\"%s\" 실행에서 문제 발생" -#: exec.c:184 +#: exec.c:198 #, c-format msgid "" "Consult the last few lines of \"%s\" or \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "" "\"%s\" 또는 \"%s\" 파일의 마지막 부분을 살펴보면\n" -"이 문제를 풀 실마리가 보일 것입니다.\n" +"이 문제를 풀 실마리가 보일 것입니다." -#: exec.c:189 +#: exec.c:203 #, c-format msgid "" "Consult the last few lines of \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "" "\"%s\" 파일의 마지막 부분을 살펴보면\n" -"이 문제를 풀 실마리가 보일 것입니다.\n" +"이 문제를 풀 실마리가 보일 것입니다." -#: exec.c:204 option.c:226 +#: exec.c:218 pg_upgrade.c:321 #, c-format -msgid "could not write to log file \"%s\": %m\n" -msgstr "\"%s\" 로그 파일을 쓸 수 없음: %m\n" +msgid "could not write to log file \"%s\": %m" +msgstr "\"%s\" 로그 파일을 쓸 수 없음: %m" -#: exec.c:230 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s\n" -msgstr "\"%s\" 파일을 읽기 위해 열 수 없습니다: %s\n" +msgid "could not open file \"%s\" for reading: %m" +msgstr "\"%s\" 파일을 읽기 위해 열 수 없습니다: %m" -#: exec.c:257 +#: exec.c:270 #, c-format -msgid "You must have read and write access in the current directory.\n" -msgstr "현재 디렉터리의 읽기 쓰기 권한을 부여하세요.\n" +msgid "You must have read and write access in the current directory." +msgstr "현재 디렉터리의 읽기 쓰기 권한을 부여하세요." -#: exec.c:310 exec.c:372 exec.c:436 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s\n" -msgstr "\"%s\" 검사 실패: %s\n" +msgid "check for \"%s\" failed: %m" +msgstr "\"%s\" 검사 실패: %m" -#: exec.c:313 exec.c:375 +#: exec.c:326 exec.c:392 #, c-format -msgid "\"%s\" is not a directory\n" -msgstr "\"%s\" 파일은 디렉터리가 아닙니다.\n" +msgid "\"%s\" is not a directory" +msgstr "\"%s\" 파일은 디렉터리가 아닙니다." -#: exec.c:439 +#: exec.c:444 #, c-format -msgid "check for \"%s\" failed: not a regular file\n" -msgstr "\"%s\" 검사 실패: 일반 파일이 아닙니다\n" +msgid "check for \"%s\" failed: cannot execute" +msgstr "\"%s\" 검사 실패: 실행할 수 없음" -#: exec.c:451 +#: exec.c:454 #, c-format -msgid "check for \"%s\" failed: cannot read file (permission denied)\n" -msgstr "\"%s\" 검사 실패: 해당 파일을 읽을 수 없음 (접근 권한 없음)\n" +msgid "" +"check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" +msgstr "\"%s\" 검사 실패: 잘못된 버전: 현재 \"%s\", 기대값 \"%s\"" -#: exec.c:459 +#: file.c:44 #, c-format -msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -msgstr "\"%s\" 검사 실패: 실행할 수 없음 (접근 권한 없음)\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 클론 중 오류: %m" -#: file.c:43 file.c:61 +#: file.c:51 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 클론 중 오류: %s\n" +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 클론 중 오류: \"%s\" 파일을 열 수 없음: %m" -#: file.c:50 +#: file.c:56 #, c-format msgid "" -"error while cloning relation \"%s.%s\": could not open file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 클론 중 오류: \"%s\" 파일을 열 수 없음: %s\n" +"error while cloning relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 클론 중 오류: \"%s\" 파일을 만들 수 없음: %m" -#: file.c:55 +#: file.c:65 #, c-format -msgid "" -"error while cloning relation \"%s.%s\": could not create file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 클론 중 오류: \"%s\" 파일을 만들 수 없음: %s\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 클론 중 오류: %s" -#: file.c:87 file.c:190 +#: file.c:91 file.c:160 file.c:233 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not open file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 열 수 없음: %s\n" +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 열 수 없음: %m" -#: file.c:92 file.c:199 +#: file.c:96 file.c:165 file.c:242 #, c-format msgid "" -"error while copying relation \"%s.%s\": could not create file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 만들 수 없음: %s\n" +"error while copying relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 만들 수 없음: %m" -#: file.c:106 file.c:223 +#: file.c:110 file.c:266 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not read file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 읽을 수 없음: %s\n" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 읽을 수 없음: %m" -#: file.c:118 file.c:301 +#: file.c:122 file.c:344 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not write file \"%s\": %s\n" -msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 쓸 수 없음: %s\n" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일을 쓸 수 없음: %m" -#: file.c:132 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 복사 중 오류: %s\n" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 복사 중 오류: %m" -#: file.c:151 +#: file.c:172 #, c-format msgid "" -"error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 링크 만드는 중 오류: %s\n" +"error while copying relation \"%s.%s\": could not copy file range from " +"\"%s\" to \"%s\": %m" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: 실패 복사 범위: \"%s\" - \"%s\": %m" #: file.c:194 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not stat file \"%s\": %s\n" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "\"%s.%s\" (\"%s\" / \"%s\") 릴레이션 링크 만드는 중 오류: %m" + +#: file.c:237 +#, c-format +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" msgstr "" -"\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일 상태 정보를 알 수 없음: %s\n" +"\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일 상태 정보를 알 수 없음: %m" -#: file.c:226 +#: file.c:269 #, c-format msgid "" -"error while copying relation \"%s.%s\": partial page found in file \"%s\"\n" -msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일에 페이지가 손상되었음\n" +"error while copying relation \"%s.%s\": partial page found in file \"%s\"" +msgstr "\"%s.%s\" 릴레이션 복사 중 오류: \"%s\" 파일에 페이지가 손상되었음" -#: file.c:328 file.c:345 +#: file.c:371 file.c:387 #, c-format -msgid "could not clone file between old and new data directories: %s\n" -msgstr "옛 데이터 디렉터리와 새 데이터 디렉터리 사이 파일 클론 실패: %s\n" +msgid "could not clone file between old and new data directories: %m" +msgstr "옛 데이터 디렉터리와 새 데이터 디렉터리 사이 파일 클론 실패: %m" -#: file.c:341 +#: file.c:383 file.c:420 #, c-format -msgid "could not create file \"%s\": %s\n" -msgstr "\"%s\" 파일을 만들 수 없음: %s\n" +msgid "could not create file \"%s\": %m" +msgstr "\"%s\" 파일을 만들 수 없음: %m" -#: file.c:352 +#: file.c:393 #, c-format -msgid "file cloning not supported on this platform\n" -msgstr "이 운영체제는 파일 클론 기능을 제공하지 않습니다.\n" +msgid "file cloning not supported on this platform" +msgstr "이 운영체제는 파일 클론 기능을 제공하지 않습니다." -#: file.c:369 +#: file.c:424 #, c-format -msgid "" -"could not create hard link between old and new data directories: %s\n" -"In link mode the old and new data directories must be on the same file " -"system.\n" -msgstr "" -"데이터 디렉터리간 하드 링크를 만들 수 없음: %s\n" -"하드 링크를 사용하려면, 두 디렉터리가 같은 시스템 볼륨 안에 있어야 합니다.\n" +msgid "could not copy file range between old and new data directories: %m" +msgstr "옛 데이터 디렉터리와 새 데이터 디렉터리 사이 파일 클론 실패: %m" -#: function.c:114 +#: file.c:430 #, c-format -msgid "" -"\n" -"The old cluster has a \"plpython_call_handler\" function defined\n" -"in the \"public\" schema which is a duplicate of the one defined\n" -"in the \"pg_catalog\" schema. You can confirm this by executing\n" -"in psql:\n" -"\n" -" \\df *.plpython_call_handler\n" -"\n" -"The \"public\" schema version of this function was created by a\n" -"pre-8.1 install of plpython, and must be removed for pg_upgrade\n" -"to complete because it references a now-obsolete \"plpython\"\n" -"shared object file. You can remove the \"public\" schema version\n" -"of this function by running the following command:\n" -"\n" -" DROP FUNCTION public.plpython_call_handler()\n" -"\n" -"in each affected database:\n" -"\n" -msgstr "" -"\n" -"옛 클러스터는 \"plpython_call_handler\" 함수가 \"public\" 스키마 안에\n" -"정의 되어있습니다. 이 함수는 \"pg_catalog\" 스키마 안에 있어야합니다.\n" -"psql에서 다음 명령으로 이 함수의 위치를 살펴 볼 수 있습니다:\n" -"\n" -" \\df *.plpython_call_handler\n" -"\n" -"\"public\" 스키마 안에 이 함수가 있는 경우는 8.1 버전 이전 버전이었습니다.\n" -"업그레이드 작업을 정상적으로 마치려면, 먼저 \"plpython\" 관련 객체들을 먼저\n" -"모두 지우고, 새 버전용 모듈을 설치해서 사용해야 합니다.\n" -"이 삭제 작업은 다음과 같이 진행합니다:\n" -"\n" -" DROP FUNCTION public.plpython_call_handler()\n" -"\n" -"이 작업은 관련 모든 데이터베이스 단위로 진행되어야 합니다.\n" -"\n" +msgid "copy_file_range not supported on this platform" +msgstr "이 운영체제는 copy_file_range 기능을 제공하지 않습니다." -#: function.c:132 +#: file.c:447 #, c-format -msgid " %s\n" -msgstr " %s\n" - -#: function.c:142 -#, c-format -msgid "Remove the problem functions from the old cluster to continue.\n" -msgstr "옛 클러스터에서 문제가 있는 함수들을 삭제하고 진행하세요.\n" +msgid "" +"could not create hard link between old and new data directories: %m\n" +"In link mode the old and new data directories must be on the same file " +"system." +msgstr "" +"데이터 디렉터리간 하드 링크를 만들 수 없음: %m\n" +"하드 링크를 사용하려면, 두 디렉터리가 같은 시스템 볼륨 안에 있어야 합니다." -#: function.c:189 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "필요한 라이브러리 확인 중" -#: function.c:242 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "\"%s\" 라이브러리 로드 실패: %s" -#: function.c:253 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "데이터베이스: %s\n" -#: function.c:263 +#: function.c:211 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" "new installation. You can add these libraries to the new installation,\n" "or remove the functions using them from the old installation. A list of\n" "problem libraries is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "옛 버전에는 있고, 새 버전에는 없는 라이브러리들이 있습니다. 새 버전에\n" "해당 라이브러리들을 설치하거나, 옛 버전에서 해당 라이브러리를 삭제하고,\n" "업그레이드 작업을 해야합니다. 문제가 있는 라이브러리들은 다음과 같습니다:\n" -" %s\n" -"\n" +" %s" -#: info.c:131 +#: info.c:128 #, c-format msgid "" -"Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s" -"\", new name \"%s.%s\"\n" +"Relation names for OID %u in database \"%s\" do not match: old name \"%s." +"%s\", new name \"%s.%s\"" msgstr "" "%u OID에 대한 \"%s\" 데이터베이스 이름이 서로 다릅니다: 옛 이름: \"%s.%s\", " -"새 이름: \"%s.%s\"\n" +"새 이름: \"%s.%s\"" -#: info.c:151 +#: info.c:148 #, c-format -msgid "Failed to match up old and new tables in database \"%s\"\n" -msgstr "\"%s\" 데이터베이스 내 테이블 이름이 서로 다릅니다:\n" +msgid "Failed to match up old and new tables in database \"%s\"" +msgstr "\"%s\" 데이터베이스 내 테이블 이름이 서로 다릅니다" -#: info.c:240 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " 해당 인덱스: \"%s.%s\"" -#: info.c:250 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " 해당 인덱스의 OID: %u" -#: info.c:262 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " \"%s.%s\" 객체의 토스트 테이블" -#: info.c:270 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " 해당 토스트 베이블의 OID: %u" -#: info.c:274 +#: info.c:263 #, c-format msgid "" -"No match found in old cluster for new relation with OID %u in database \"%s" -"\": %s\n" +"No match found in old cluster for new relation with OID %u in database " +"\"%s\": %s" msgstr "" -"새 클러스터의 %u OID (해당 데이터베이스: \"%s\")가 옛 클러스터에 없음: %s\n" +"새 클러스터의 %u OID (해당 데이터베이스: \"%s\")가 옛 클러스터에 없음: %s" -#: info.c:277 +#: info.c:266 #, c-format msgid "" -"No match found in new cluster for old relation with OID %u in database \"%s" -"\": %s\n" +"No match found in new cluster for old relation with OID %u in database " +"\"%s\": %s" msgstr "" -"옛 클러스터의 %u OID (해당 데이터베이스: \"%s\")가 새 클러스터에 없음: %s\n" +"옛 클러스터의 %u OID (해당 데이터베이스: \"%s\")가 새 클러스터에 없음: %s" -#: info.c:289 -#, c-format -msgid "mappings for database \"%s\":\n" -msgstr "\"%s\" 데이터베이스 맵핑 중:\n" - -#: info.c:292 -#, c-format -msgid "%s.%s: %u to %u\n" -msgstr "%s.%s: %u / %u\n" - -#: info.c:297 info.c:633 +#: info.c:300 #, c-format msgid "" "\n" -"\n" +"source databases:" msgstr "" "\n" -"\n" +"원본 데이터베이스:" -#: info.c:322 +#: info.c:302 #, c-format msgid "" "\n" -"source databases:\n" +"target databases:" msgstr "" "\n" -"원본 데이터베이스:\n" +"대상 데이터베이스:" -#: info.c:324 +#: info.c:346 #, c-format -msgid "" -"\n" -"target databases:\n" -msgstr "" -"\n" -"대상 데이터베이스:\n" +msgid "template0 not found" +msgstr "template0 찾을 수 없음" -#: info.c:631 +#: info.c:805 #, c-format -msgid "Database: %s\n" -msgstr "데이터베이스: %s\n" +msgid "Database: \"%s\"" +msgstr "데이터베이스: \"%s\"" + +#: info.c:818 +#, c-format +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "relname: \"%s.%s\": reloid: %u reltblspace: \"%s\"" -#: info.c:644 +#: info.c:832 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s\n" -msgstr "relname: %s.%s: reloid: %u reltblspace: %s\n" +msgid "Logical replication slots in the database:" +msgstr "해당 데이터베이스 안에 있는 논리 복제 슬롯들:" -#: option.c:102 +#: info.c:838 #, c-format -msgid "%s: cannot be run as root\n" -msgstr "%s: root 권한으로 실행할 수 없음\n" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "슬롯 이름: \"%s\", 출력 플러그인: \"%s\", two_phase: %s" -#: option.c:170 +#: option.c:105 #, c-format -msgid "invalid old port number\n" -msgstr "잘못된 옛 포트 번호\n" +msgid "%s: cannot be run as root" +msgstr "%s: root 권한으로 실행할 수 없음" -#: option.c:175 +#: option.c:172 #, c-format -msgid "invalid new port number\n" -msgstr "잘못된 새 포트 번호\n" +msgid "invalid old port number" +msgstr "잘못된 옛 포트 번호" -#: option.c:207 +#: option.c:177 +#, c-format +msgid "invalid new port number" +msgstr "잘못된 새 포트 번호" + +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "보다 자세한 사용법은 \"%s --help\" 명령을 이용하세요.\n" -#: option.c:214 +#: option.c:223 #, c-format -msgid "too many command-line arguments (first is \"%s\")\n" -msgstr "너무 많은 명령행 인자를 지정 했음 (시작: \"%s\")\n" +msgid "too many command-line arguments (first is \"%s\")" +msgstr "너무 많은 명령행 인자를 지정 했음 (시작: \"%s\")" -#: option.c:220 +#: option.c:229 #, c-format -msgid "Running in verbose mode\n" -msgstr "작업 내역을 자세히 봄\n" +msgid "Running in verbose mode" +msgstr "작업 내역을 자세히 봄" -#: option.c:251 +#: option.c:247 msgid "old cluster binaries reside" msgstr "옛 클러스터 실행파일 위치" -#: option.c:253 +#: option.c:249 msgid "new cluster binaries reside" msgstr "새 클러스터 실팽파일 위치" -#: option.c:255 +#: option.c:251 msgid "old cluster data resides" msgstr "옛 클러스터 자료 위치" -#: option.c:257 +#: option.c:253 msgid "new cluster data resides" msgstr "새 클러스터 자료 위치" -#: option.c:259 +#: option.c:255 msgid "sockets will be created" msgstr "소켓 파일 만들 위치" -#: option.c:276 option.c:374 +#: option.c:272 option.c:374 #, c-format -msgid "could not determine current directory\n" -msgstr "현재 디렉터리 위치를 알 수 없음\n" +msgid "could not determine current directory" +msgstr "현재 디렉터리 위치를 알 수 없음" -#: option.c:279 +#: option.c:275 #, c-format msgid "" -"cannot run pg_upgrade from inside the new cluster data directory on Windows\n" +"cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "" "윈도우즈 환경에서는 pg_upgrade 명령은 새 클러스터 데이터 디렉터리 안에서는 실" -"행할 수 없음\n" +"행할 수 없음" -#: option.c:288 +#: option.c:284 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" "\n" msgstr "" -"새 데이터 클러스터 버전과 pg_upgrade 버전의 메이저 버전이 서로 다릅니다.\n" +"pg_upgrade는 다른 메이저 버전으로 PostgreSQL 클러스터를 업그레이드합니다.\n" "\n" -#: option.c:289 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: option.c:290 +#: option.c:286 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1167,17 +1418,17 @@ msgstr "" " pg_upgrade [옵션]...\n" "\n" -#: option.c:291 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "옵션:\n" -#: option.c:292 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINDIR 옛 클러스터 실행 파일의 디렉터리\n" -#: option.c:293 +#: option.c:289 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1186,23 +1437,23 @@ msgstr "" " -B, --new-bindir=BINDIR 새 클러스터 실행 파일의 디렉터리 (기본값:\n" " pg_upgrade가 있는 디렉터리)\n" -#: option.c:295 +#: option.c:291 #, c-format msgid "" " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check 실 작업 없이, 그냥 검사만\n" -#: option.c:296 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATADIR 옛 클러스터 데이터 디렉터리\n" -#: option.c:297 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATADIR 새 클러스터 데이터 디렉터리\n" -#: option.c:298 +#: option.c:294 #, c-format msgid "" " -j, --jobs=NUM number of simultaneous processes or threads " @@ -1210,7 +1461,7 @@ msgid "" msgstr "" " -j, --jobs=NUM 동시에 작업할 프로세스 또는 쓰레드 수\n" -#: option.c:299 +#: option.c:295 #, c-format msgid "" " -k, --link link instead of copying files to new " @@ -1218,36 +1469,44 @@ msgid "" msgstr "" " -k, --link 새 클러스터 구축을 복사 대신 링크 사용\n" -#: option.c:300 +#: option.c:296 +#, c-format +msgid "" +" -N, --no-sync do not wait for changes to be written safely " +"to disk\n" +msgstr "" +" -N, --no-sync 작업 완료 뒤 디스크 동기화 작업을 하지 않음\n" + +#: option.c:297 #, c-format msgid "" " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=옵션 옛 서버에서 사용할 서버 옵션들\n" -#: option.c:301 +#: option.c:298 #, c-format msgid "" " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=옵션 새 서버에서 사용할 서버 옵션들\n" -#: option.c:302 +#: option.c:299 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PORT 옛 클러스터 포트 번호 (기본값 %d)\n" -#: option.c:303 +#: option.c:300 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT 새 클러스터 포트 번호 (기본값 %d)\n" -#: option.c:304 +#: option.c:301 #, c-format msgid "" " -r, --retain retain SQL and log files after success\n" msgstr "" " -r, --retain 작업 완료 후 사용했던 SQL과 로그 파일 남김\n" -#: option.c:305 +#: option.c:302 #, c-format msgid "" " -s, --socketdir=DIR socket directory to use (default current " @@ -1256,23 +1515,23 @@ msgstr "" " -s, --socketdir=DIR 사용할 소켓 디렉터리 (기본값: 현재 디렉터" "리)\n" -#: option.c:306 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=이름 클러스터 슈퍼유저 (기본값 \"%s\")\n" -#: option.c:307 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose 작업 내역을 자세히 남김\n" -#: option.c:308 +#: option.c:305 #, c-format msgid "" " -V, --version display version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: option.c:309 +#: option.c:306 #, c-format msgid "" " --clone clone instead of copying files to new " @@ -1280,6 +1539,24 @@ msgid "" msgstr "" " --clone 새 클러스터 구축을 복사 대신 클론 사용\n" +#: option.c:307 +#, c-format +msgid " --copy copy files to new cluster (default)\n" +msgstr " --copy 새 클러스터로 파일 복사 (기본값)\n" + +#: option.c:308 +#, c-format +msgid "" +" --copy-file-range copy files to new cluster with " +"copy_file_range\n" +msgstr " --copy-file-range copy_file_range 기능을 이용해서 복사\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr "" +" --sync-method=METHOD 파일을 디스크에 동기화 하는 방법 지정\n" + #: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" @@ -1330,7 +1607,7 @@ msgstr "" "사용예:\n" " pg_upgrade -d oldCluster/data -D newCluster/data -b oldCluster/bin -B " "newCluster/bin\n" -"or\n" +"또는\n" #: option.c:327 #, c-format @@ -1380,248 +1657,284 @@ msgstr "%s 홈페이지: <%s>\n" #, c-format msgid "" "You must identify the directory where the %s.\n" -"Please use the %s command-line option or the %s environment variable.\n" +"Please use the %s command-line option or the %s environment variable." msgstr "" "%s 위치의 디렉터리를 알고 있어야 함.\n" -"%s 명령행 옵션이나, %s 환경 변수를 사용하세요.\n" +"%s 명령행 옵션이나, %s 환경 변수를 사용하세요." -#: option.c:432 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "원본 클러스터용 실 데이터 디렉터리를 찾는 중" -#: option.c:434 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "대상 클러스터용 실 데이터 디렉터리를 찾는 중" -#: option.c:446 +#: option.c:448 +#, c-format +msgid "could not get data directory using %s: %m" +msgstr "%s 지정한 데이터 디렉터리를 찾을 수 없음: %m" + +#: option.c:452 #, c-format -msgid "could not get data directory using %s: %s\n" -msgstr "%s 지정한 데이터 디렉터리를 찾을 수 없음: %s\n" +msgid "could not get data directory using %s: %s" +msgstr "%s 지정한 데이터 디렉터리를 찾을 수 없음: %s" -#: option.c:505 +#: option.c:500 #, c-format -msgid "could not read line %d from file \"%s\": %s\n" -msgstr "%d 번째 줄을 \"%s\" 파일에서 읽을 수 없음: %s\n" +msgid "could not read line %d from file \"%s\": %m" +msgstr "%d 번째 줄을 \"%s\" 파일에서 읽을 수 없음: %m" -#: option.c:522 +#: option.c:517 #, c-format -msgid "user-supplied old port number %hu corrected to %hu\n" -msgstr "지정한 %hu 옛 포트 번호를 %hu 번호로 바꿈\n" +msgid "user-supplied old port number %hu corrected to %hu" +msgstr "지정한 %hu 옛 포트 번호를 %hu 번호로 바꿈" -#: parallel.c:127 parallel.c:238 +#: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker process: %s\n" -msgstr "작업용 프로세스를 만들 수 없음: %s\n" +msgid "could not create worker process: %m" +msgstr "작업용 프로세스를 만들 수 없음: %m" -#: parallel.c:146 parallel.c:259 +#: parallel.c:143 parallel.c:253 #, c-format -msgid "could not create worker thread: %s\n" -msgstr "작업용 쓰레드를 만들 수 없음: %s\n" +msgid "could not create worker thread: %m" +msgstr "작업용 쓰레드를 만들 수 없음: %m" -#: parallel.c:300 +#: parallel.c:294 #, c-format -msgid "waitpid() failed: %s\n" -msgstr "waitpid() 실패: %s\n" +msgid "%s() failed: %m" +msgstr "%s() 실패: %m" -#: parallel.c:304 +#: parallel.c:298 #, c-format -msgid "child process exited abnormally: status %d\n" -msgstr "하위 작업자가 비정상 종료됨: 상태값 %d\n" +msgid "child process exited abnormally: status %d" +msgstr "하위 작업자가 비정상 종료됨: 상태값 %d" -#: parallel.c:319 +#: parallel.c:313 #, c-format -msgid "child worker exited abnormally: %s\n" -msgstr "하위 작업자가 비정상 종료됨: %s\n" +msgid "child worker exited abnormally: %m" +msgstr "하위 작업자가 비정상 종료됨: %m" -#: pg_upgrade.c:108 +#: pg_upgrade.c:115 #, c-format -msgid "could not read permissions of directory \"%s\": %s\n" -msgstr "\"%s\" 디렉터리 읽기 권한 없음: %s\n" +msgid "could not read permissions of directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 접근권한을 읽을 수 없음: %m" -#: pg_upgrade.c:123 +#: pg_upgrade.c:147 #, c-format msgid "" "\n" "Performing Upgrade\n" -"------------------\n" +"------------------" msgstr "" "\n" "업그레이드 진행 중\n" -"------------------\n" +"------------------" -#: pg_upgrade.c:166 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "새 클러스터용 다음 OID 설정 중" -#: pg_upgrade.c:173 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "데이터 디렉터리 fsync 작업 중" -#: pg_upgrade.c:185 +#: pg_upgrade.c:230 #, c-format msgid "" "\n" "Upgrade Complete\n" -"----------------\n" +"----------------" msgstr "" "\n" -"업그레이드 완료\n" -"---------------\n" +"업그레이드 마침\n" +"---------------" + +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 +#, c-format +msgid "directory path for new cluster is too long" +msgstr "새 클러스터용 디렉터리 이름이 너무 김" + +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 만들 수 없음: %m" -#: pg_upgrade.c:220 +#: pg_upgrade.c:352 #, c-format -msgid "%s: could not find own program executable\n" -msgstr "%s: 실행할 프로그램을 찾을 수 없습니다.\n" +msgid "%s: could not find own program executable" +msgstr "%s: 실행할 프로그램을 찾을 수 없습니다." -#: pg_upgrade.c:246 +#: pg_upgrade.c:378 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "" "옛 서버가 현재 운영 되고 있습니다.\n" -"먼저 서버를 중지하고 진행하세요.\n" +"먼저 서버를 중지하고 진행하세요." -#: pg_upgrade.c:259 +#: pg_upgrade.c:391 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "" "새 서버가 현재 운영 되고 있습니다.\n" -"먼저 서버를 중지하고 진행하세요.\n" +"먼저 서버를 중지하고 진행하세요." -#: pg_upgrade.c:273 +#: pg_upgrade.c:413 +#, c-format +msgid "Setting locale and encoding for new cluster" +msgstr "새 클러스터용 로케일과 인코딩 설정 중" + +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "새 클러스터의 모든 로우에 대해서 통계 정보 수집 중" -#: pg_upgrade.c:286 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "새 클러스터의 모든 로우에 대해서 영구 격리(freeze) 중" -#: pg_upgrade.c:306 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "새 클러스터에 전역 객체를 복원 중" -#: pg_upgrade.c:321 +#: pg_upgrade.c:538 #, c-format -msgid "Restoring database schemas in the new cluster\n" -msgstr "새 클러스터에 데이터베이스 스키마 복원 중\n" +msgid "Restoring database schemas in the new cluster" +msgstr "새 클러스터에 데이터베이스 스키마 복원 중" -#: pg_upgrade.c:425 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "새 %s에서 파일 지우는 중" -#: pg_upgrade.c:429 +#: pg_upgrade.c:666 #, c-format -msgid "could not delete directory \"%s\"\n" -msgstr "\"%s\" 디렉터리를 삭제 할 수 없음\n" +msgid "could not delete directory \"%s\"" +msgstr "\"%s\" 디렉터리를 삭제 할 수 없음" -#: pg_upgrade.c:448 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "옛 %s 객체를 새 서버로 복사 중" -#: pg_upgrade.c:475 +#: pg_upgrade.c:711 +#, c-format +msgid "Setting oldest XID for new cluster" +msgstr "새 클러스터용 제일 오래된 XID 설정 중" + +#: pg_upgrade.c:719 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "새 클러스터용 다음 트랜잭션 ID와 epoch 값 설정 중" -#: pg_upgrade.c:505 +#: pg_upgrade.c:749 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "새 클러스터용 다음 멀티 트랜잭션 ID와 위치 값 설정 중" -#: pg_upgrade.c:529 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "새 클러스터용 제일 오래된 멀티 트랜잭션 ID 설정 중" -#: pg_upgrade.c:549 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "WAL 아카이브 재설정 중" -#: pg_upgrade.c:592 +#: pg_upgrade.c:836 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "새 클러스터에서 frozenxid, minmxid 값 설정 중" -#: pg_upgrade.c:594 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "새 클러스터에서 minmxid 값 설정 중" -#: relfilenode.c:35 +#: pg_upgrade.c:929 #, c-format -msgid "Cloning user relation files\n" -msgstr "사용자 릴레이션 파일 클론 중\n" +msgid "Restoring logical replication slots in the new cluster" +msgstr "새 클러스터에 논리 복제 슬롯을 복원 중" -#: relfilenode.c:38 +#: relfilenumber.c:35 #, c-format -msgid "Copying user relation files\n" -msgstr "사용자 릴레이션 파일 복사 중\n" +msgid "Cloning user relation files" +msgstr "사용자 릴레이션 파일 클론 중" -#: relfilenode.c:41 +#: relfilenumber.c:38 #, c-format -msgid "Linking user relation files\n" -msgstr "사용자 릴레이션 파일 링크 중\n" +msgid "Copying user relation files" +msgstr "사용자 릴레이션 파일 복사 중" -#: relfilenode.c:115 +#: relfilenumber.c:41 #, c-format -msgid "old database \"%s\" not found in the new cluster\n" -msgstr "\"%s\" 이름의 옛 데이터베이스를 새 클러스터에서 찾을 수 없음\n" +msgid "Copying user relation files with copy_file_range" +msgstr "사용자 릴레이션 파일을 copy_file_range 기능으로 복사 중" -#: relfilenode.c:234 +#: relfilenumber.c:44 +#, c-format +msgid "Linking user relation files" +msgstr "사용자 릴레이션 파일 링크 중" + +#: relfilenumber.c:118 +#, c-format +msgid "old database \"%s\" not found in the new cluster" +msgstr "\"%s\" 이름의 옛 데이터베이스를 새 클러스터에서 찾을 수 없음" + +#: relfilenumber.c:221 #, c-format msgid "" -"error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "\"%s.%s\" (\"%s\" / \"%s\") 파일이 있는지 확인 도중 오류 발생: %s\n" +"error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "\"%s.%s\" (\"%s\" / \"%s\") 파일이 있는지 확인 도중 오류 발생: %m" -#: relfilenode.c:252 +#: relfilenumber.c:238 #, c-format -msgid "rewriting \"%s\" to \"%s\"\n" -msgstr "\"%s\" 객체를 \"%s\" 객체로 다시 쓰는 중\n" +msgid "rewriting \"%s\" to \"%s\"" +msgstr "\"%s\" 객체를 \"%s\" 객체로 다시 쓰는 중" -#: relfilenode.c:260 +#: relfilenumber.c:246 #, c-format -msgid "cloning \"%s\" to \"%s\"\n" -msgstr "\"%s\" 객체를 \"%s\" 객체로 클론 중\n" +msgid "cloning \"%s\" to \"%s\"" +msgstr "\"%s\" 객체를 \"%s\" 객체로 클론 중" -#: relfilenode.c:265 +#: relfilenumber.c:251 #, c-format -msgid "copying \"%s\" to \"%s\"\n" -msgstr "\"%s\" 객체를 \"%s\" 객체로 복사 중\n" +msgid "copying \"%s\" to \"%s\"" +msgstr "\"%s\" 객체를 \"%s\" 객체로 복사 중" -#: relfilenode.c:270 +#: relfilenumber.c:256 #, c-format -msgid "linking \"%s\" to \"%s\"\n" -msgstr "\"%s\" 객체를 \"%s\" 객체로 링크 중\n" +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "\"%s\" 객체를 \"%s\" 객체로 copy_file_range 기능으로 복사 중" -#: server.c:33 +#: relfilenumber.c:261 #, c-format -msgid "connection to database failed: %s" -msgstr "데이터베이스 연결 실패: %s" +msgid "linking \"%s\" to \"%s\"" +msgstr "\"%s\" 객체를 \"%s\" 객체로 링크 중" -#: server.c:39 server.c:141 util.c:135 util.c:165 +#: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" msgstr "실패, 종료함\n" -#: server.c:131 +#: server.c:133 #, c-format -msgid "executing: %s\n" -msgstr "실행중: %s\n" +msgid "executing: %s" +msgstr "실행중: %s" -#: server.c:137 +#: server.c:139 #, c-format msgid "" "SQL command failed\n" @@ -1632,218 +1945,128 @@ msgstr "" "%s\n" "%s" -#: server.c:167 +#: server.c:169 #, c-format -msgid "could not open version file \"%s\": %m\n" -msgstr "\"%s\" 버전 파일 열기 실패: %m\n" +msgid "could not open version file \"%s\": %m" +msgstr "\"%s\" 버전 파일 열기 실패: %m" -#: server.c:171 +#: server.c:173 #, c-format -msgid "could not parse version file \"%s\"\n" -msgstr "\"%s\" 버전 파일 구문 분석 실패\n" +msgid "could not parse version file \"%s\"" +msgstr "\"%s\" 버전 파일 구문 분석 실패" -#: server.c:297 +#: server.c:310 #, c-format msgid "" "\n" -"connection to database failed: %s" +"%s" msgstr "" "\n" -"데이터베이스 연결 실패: %s" +"%s" -#: server.c:302 +#: server.c:314 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" -"%s\n" +"%s" msgstr "" "다음 명령으로 실행된 원본 서버로 접속할 수 없음:\n" -"%s\n" +"%s" -#: server.c:306 +#: server.c:318 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" -"%s\n" +"%s" msgstr "" "다음 명령으로 실행된 대상 서버로 접속할 수 없음:\n" -"%s\n" +"%s" -#: server.c:320 +#: server.c:332 #, c-format -msgid "pg_ctl failed to start the source server, or connection failed\n" -msgstr "원본 서버를 실행하는 pg_ctl 작업 실패, 또는 연결 실패\n" +msgid "pg_ctl failed to start the source server, or connection failed" +msgstr "원본 서버를 실행하는 pg_ctl 작업 실패, 또는 연결 실패" -#: server.c:322 +#: server.c:334 #, c-format -msgid "pg_ctl failed to start the target server, or connection failed\n" -msgstr "대상 서버를 실행하는 pg_ctl 작업 실패, 또는 연결 실패\n" +msgid "pg_ctl failed to start the target server, or connection failed" +msgstr "대상 서버를 실행하는 pg_ctl 작업 실패, 또는 연결 실패" -#: server.c:367 +#: server.c:379 #, c-format -msgid "out of memory\n" -msgstr "메모리 부족\n" +msgid "out of memory" +msgstr "메모리 부족" -#: server.c:380 +#: server.c:392 #, c-format -msgid "libpq environment variable %s has a non-local server value: %s\n" -msgstr "%s libpq 환경 변수가 로컬 서버 값이 아님: %s\n" +msgid "libpq environment variable %s has a non-local server value: %s" +msgstr "%s libpq 환경 변수가 로컬 서버 값이 아님: %s" #: tablespace.c:28 #, c-format msgid "" "Cannot upgrade to/from the same system catalog version when\n" -"using tablespaces.\n" +"using tablespaces." msgstr "" "사용자 정의 테이블스페이스를 사용하는 경우 같은 시스템 카탈로그 버전으로\n" -"업그레이드 작업을 진행할 수 없습니다.\n" +"업그레이드 작업을 진행할 수 없습니다." -#: tablespace.c:86 +#: tablespace.c:83 #, c-format -msgid "tablespace directory \"%s\" does not exist\n" -msgstr "\"%s\" 이름의 테이블스페이스 디렉터리가 없음\n" +msgid "tablespace directory \"%s\" does not exist" +msgstr "\"%s\" 이름의 테이블스페이스 디렉터리가 없음" -#: tablespace.c:90 +#: tablespace.c:87 #, c-format -msgid "could not stat tablespace directory \"%s\": %s\n" -msgstr "\"%s\" 테이블스페이스 디렉터리의 상태 정보를 구할 수 없음: %s\n" +msgid "could not stat tablespace directory \"%s\": %m" +msgstr "\"%s\" 테이블스페이스 디렉터리의 상태 정보를 구할 수 없음: %m" -#: tablespace.c:95 +#: tablespace.c:92 #, c-format -msgid "tablespace path \"%s\" is not a directory\n" -msgstr "\"%s\" 테이블스페이스 경로는 디렉터리가 아님\n" +msgid "tablespace path \"%s\" is not a directory" +msgstr "\"%s\" 테이블스페이스 경로는 디렉터리가 아님" -#: util.c:49 -#, c-format -msgid " " -msgstr " " - -#: util.c:82 +#: util.c:53 util.c:56 util.c:139 util.c:170 util.c:172 #, c-format msgid "%-*s" msgstr "%-*s" -#: util.c:174 +#: util.c:107 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 액세스할 수 없습니다: %m" + +#: util.c:287 #, c-format msgid "ok" msgstr "ok" -#: version.c:29 +#: version.c:44 #, c-format -msgid "Checking for large objects" -msgstr "대형 객체 확인 중" +msgid "Checking for hash indexes" +msgstr "해쉬 인덱스 확인 중" -#: version.c:77 version.c:384 +#: version.c:121 #, c-format msgid "warning" msgstr "경고" -#: version.c:79 -#, c-format -msgid "" -"\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table. After upgrading, you will be\n" -"given a command to populate the pg_largeobject_metadata table with\n" -"default permissions.\n" -"\n" -msgstr "" -"\n" -"이 데이터베이스는 대형 객체를 사용하고 있습니다. 새 데이터베이스에서는\n" -"이들의 접근 권한 제어를 위해 추가적인 테이블을 사용합니다. 업그레이드 후\n" -"이 객체들의 접근 권한은 pg_largeobject_metadata 테이블에 기본값으로 지정됩니" -"다.\n" -"\n" - -#: version.c:85 -#, c-format -msgid "" -"\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table, so default permissions must be\n" -"defined for all large objects. The file\n" -" %s\n" -"when executed by psql by the database superuser will set the default\n" -"permissions.\n" -"\n" -msgstr "" -"\n" -"이 데이터베이스는 대형 객체를 사용하고 있습니다. 새 데이터베이스에서는\n" -"이들의 접근 권한 제어를 위해 추가적인 테이블을 사용합니다. 그래서\n" -"이들의 접근 권한을 기본값으로 설정하려면,\n" -" %s\n" -"파일을 새 서버가 실행 되었을 때 슈퍼유저 권한으로 psql 명령으로\n" -"실행 하세요.\n" -"\n" - -#: version.c:239 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "\"line\" 자료형 호환성 확인 중" - -#: version.c:246 -#, c-format -msgid "" -"Your installation contains the \"line\" data type in user tables. This\n" -"data type changed its internal and input/output format between your old\n" -"and new clusters so this cluster cannot currently be upgraded. You can\n" -"remove the problem tables and restart the upgrade. A list of the problem\n" -"columns is in the file:\n" -" %s\n" -"\n" -msgstr "" -"해당 데이터베이스에서 \"line\" 자료형을 사용하는 칼럼이 있습니다.\n" -"이 자료형의 입출력 방식이 옛 버전과 새 버전에서 서로 호환하지 않습니다.\n" -"먼저 이 자료형을 사용하는 테이블을 삭제 후 업그레이드 작업을 하고,\n" -"수동으로 복원 작업을 해야 합니다. 해당 파일들은 다음과 같습니다:\n" -" %s\n" -"\n" - -#: version.c:276 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "잘못된 \"unknown\" 사용자 칼럼을 확인 중" - -#: version.c:283 -#, c-format -msgid "" -"Your installation contains the \"unknown\" data type in user tables. This\n" -"data type is no longer allowed in tables, so this cluster cannot currently\n" -"be upgraded. You can remove the problem tables and restart the upgrade.\n" -"A list of the problem columns is in the file:\n" -" %s\n" -"\n" -msgstr "" -"해당 데이터베이스에서 사용자 테이블에서 \"unknown\" 자료형을 사용하고 있습니" -"다.\n" -"이 자료형은 더 이상 사용할 수 없습니다. 이 문제를 옛 버전에서 먼저 정리하고\n" -"업그레이드 작업을 진행하세요. 해당 파일은 다음과 같습니다:\n" -" %s\n" -"\n" - -#: version.c:306 -#, c-format -msgid "Checking for hash indexes" -msgstr "해쉬 인덱스 확인 중" - -#: version.c:386 +#: version.c:123 #, c-format msgid "" "\n" "Your installation contains hash indexes. These indexes have different\n" "internal formats between your old and new clusters, so they must be\n" "reindexed with the REINDEX command. After upgrading, you will be given\n" -"REINDEX instructions.\n" -"\n" +"REINDEX instructions." msgstr "" "\n" "해당 데이터베이스에서 해쉬 인덱스를 사용하고 있습니다. 해쉬 인덱스 자료구조" "가\n" "새 버전에서 호환되지 않습니다. 업그레이드 후에 해당 인덱스들을\n" -"REINDEX 명령으로 다시 만들어야 합니다.\n" -"\n" +"REINDEX 명령으로 다시 만들어야 합니다." -#: version.c:392 +#: version.c:129 #, c-format msgid "" "\n" @@ -1852,8 +2075,7 @@ msgid "" "reindexed with the REINDEX command. The file\n" " %s\n" "when executed by psql by the database superuser will recreate all invalid\n" -"indexes; until then, none of these indexes will be used.\n" -"\n" +"indexes; until then, none of these indexes will be used." msgstr "" "\n" "해당 데이터베이스에서 해쉬 인덱스를 사용하고 있습니다. 해쉬 인덱스 자료구조" @@ -1861,29 +2083,35 @@ msgstr "" "새 버전에서 호환되지 않습니다. 업그레이드 후 다음 파일을\n" "슈퍼유저 권한으로 실행한 psql에서 실행해서, REINDEX 작업을 진행하세요:\n" " %s\n" -"이 작업이 있기 전까지는 해당 인덱스는 invalid 상태로 사용할 수 없게 됩니다.\n" -"\n" +"이 작업이 있기 전까지는 해당 인덱스는 invalid 상태로 사용할 수 없게 됩니다." -#: version.c:418 +#: version.c:153 #, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "잘못된 \"sql_identifier\" 사용자 칼럼을 확인 중" +msgid "Checking for extension updates" +msgstr "확장 모듈 업데이트 확인 중" + +#: version.c:200 +#, c-format +msgid "notice" +msgstr "알림" -#: version.c:426 +#: version.c:201 #, c-format msgid "" -"Your installation contains the \"sql_identifier\" data type in user tables\n" -"and/or indexes. The on-disk format for this data type has changed, so this\n" -"cluster cannot currently be upgraded. You can remove the problem tables or\n" -"change the data type to \"name\" and restart the upgrade.\n" -"A list of the problem columns is in the file:\n" -" %s\n" "\n" -msgstr "" -"사용자 테이블 또는/이나 인덱스에 \"sql_identifier\" 자료형을 사용하고\n" -"있습니다. 이 자료형의 저장 양식이 바뀌었기에, 이 클러스터는 업그레이드\n" -"되어야합니다. 해당 테이블을 지우거나, 해당 칼럼의 자료형을 \"name\" 형으로\n" -"바꾸고, 서버를 재실행 한 뒤 업그레이드 하십시오.\n" -"문제의 칼럼이 있는 파일들은 다음과 같습니다:\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." +msgstr "" "\n" +"해당 서버에는 업데이트 해야하는 확장 모듈이 있습니다.\n" +"이 작업은 ALTER EXTENSION 명령으로 할 수 있으며, 작업 명령은\n" +" %s\n" +"파일 안에 있습니다. 데이터베이스 슈퍼유저로 psql로 접속해서\n" +"이 파일 안에 있는 명령을 수행하면 확장 모듈을 업데이트 할 수 있습니다." + +#, c-format +#~ msgid "Checking for incompatible \"jsonb\" data type" +#~ msgstr "\"jsonb\" 자료형 호환성 확인 중" diff --git a/src/bin/pg_upgrade/po/ru.po b/src/bin/pg_upgrade/po/ru.po index e26ade17a167f..71fa979972e85 100644 --- a/src/bin/pg_upgrade/po/ru.po +++ b/src/bin/pg_upgrade/po/ru.po @@ -1,306 +1,532 @@ # 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, 2021, 2022. +# Alexander Lakhin , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # 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: 2021-08-14 06:29+0300\n" -"PO-Revision-Date: 2022-01-19 16:26+0300\n" +"POT-Creation-Date: 2024-11-02 08:21+0300\n" +"PO-Revision-Date: 2024-11-02 08:31+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"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" +"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:70 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "пользователь не существует" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "распознать имя пользователя не удалось (код ошибки: %lu)" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "Проверка системных составных типов в пользовательских таблицах" + +#: check.c:118 +msgid "" +"Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют системные составные\n" +"типы. OID таких типов могут различаться в разных версиях PostgreSQL, поэтому " +"в\n" +"настоящем состоянии обновить кластер невозможно. Вы можете удалить " +"проблемные\n" +"столбцы и перезапустить обновление.\n" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "Проверка несовместимого типа данных \"line\"" + +#: check.c:137 +msgid "" +"Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"line\".\n" +"В старом кластере внутренний формат и формат ввода/вывода этого типа " +"отличается\n" +"от нового, поэтому в настоящем состоянии обновить кластер невозможно. Вы " +"можете\n" +"удалить проблемные столбцы и перезапустить обновление.\n" + +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "Проверка типов данных reg* в пользовательских таблицах" + +#: check.c:181 +msgid "" +"Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы содержат один из типов reg*.\n" +"Эти типы данных ссылаются на системные OID, которые не сохраняются утилитой\n" +"pg_upgrade, так что обновление кластера в текущем состоянии невозможно. Вы\n" +"можете удалить проблемные столбцы и перезапустить обновление.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "Проверка несовместимого типа данных \"aclitem\"" + +#: check.c:198 +msgid "" +"Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"aclitem\".\n" +"Внутренний формат \"aclitem\" изменился в PostgreSQL версии 16, поэтому " +"обновить\n" +"кластер в текущем состоянии невозможно. Вы можете удалить проблемные столбцы " +"и\n" +"перезапустить обновление.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "Проверка неправильных пользовательских столбцов типа \"unknown\"" + +#: check.c:222 +msgid "" +"Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"unknown\".\n" +"Теперь использование этого типа данных в таблицах не допускается, поэтому\n" +"в настоящем состоянии обновить кластер невозможно. Вы можете удалить " +"проблемные\n" +"столбцы и перезапустить обновление.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "" +"Проверка неправильных пользовательских столбцов типа \"sql_identifier\"" + +#: check.c:244 +msgid "" +"Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных\n" +"\"sql_identifier\". Формат хранения таких данных на диске поменялся,\n" +"поэтому обновить данный кластер невозможно. Вы можете удалить проблемные\n" +"столбцы и перезапустить обновление.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "" +"Проверка несовместимого типа данных \"jsonb\" в пользовательских таблицах" + +#: check.c:260 +msgid "" +"Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "" +"В вашей инсталляции таблицы используют тип данных \"jsonb\".\n" +"Внутренний формат \"jsonb\" изменился в версии 9.4 beta, поэтому обновить\n" +"кластер в текущем состоянии невозможно. Вы можете удалить проблемные столбцы " +"и\n" +"перезапустить обновление.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "" +"Проверка удалённого типа данных \"abstime\" в пользовательских таблицах" + +#: check.c:277 +msgid "" +"Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"abstime\".\n" +"Тип \"abstime\" был удалён в PostgreSQL версии 12, поэтому обновить кластер " +"в\n" +"текущем состоянии невозможно. Вы можете удалить проблемные столбцы или " +"поменять\n" +"их тип на другой, а затем перезапустить обновление.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "" +"Проверка удалённого типа данных \"reltime\" в пользовательских таблицах" + +#: check.c:290 +msgid "" +"Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"reltime\".\n" +"Тип \"reltime\" был удалён в PostgreSQL версии 12, поэтому обновить кластер " +"в\n" +"текущем состоянии невозможно. Вы можете удалить проблемные столбцы или " +"поменять\n" +"их тип на другой, а затем перезапустить обновление.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "" +"Проверка удалённого типа данных \"tinterval\" в пользовательских таблицах" + +#: check.c:303 +msgid "" +"Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"В вашей инсталляции пользовательские таблицы используют тип данных " +"\"tinterval\".\n" +"Тип \"tinterval\" был удалён в PostgreSQL версии 12, поэтому обновить " +"кластер в\n" +"текущем состоянии невозможно. Вы можете удалить проблемные столбцы или " +"поменять\n" +"их тип на другой, а затем перезапустить обновление.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "Проверка использования типов данных" + +#: check.c:480 +#, c-format +msgid "failed check: %s" +msgstr "не пройдена проверка: %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "Список проблемных столбцов приведён в файле:" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "Проверки типов данных не пройдены: %s" + +#: check.c:563 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" -"------------------------------------------------\n" +"------------------------------------------------" msgstr "" "Проверка целостности на старом работающем сервере\n" -"-------------------------------------------------\n" +"-------------------------------------------------" -#: check.c:76 +#: check.c:569 #, c-format msgid "" "Performing Consistency Checks\n" -"-----------------------------\n" +"-----------------------------" msgstr "" "Проведение проверок целостности\n" -"-------------------------------\n" +"-------------------------------" -#: check.c:213 +#: check.c:718 #, c-format msgid "" "\n" -"*Clusters are compatible*\n" +"*Clusters are compatible*" msgstr "" "\n" -"*Кластеры совместимы*\n" +"*Кластеры совместимы*" -#: check.c:219 +#: check.c:726 #, c-format msgid "" "\n" "If pg_upgrade fails after this point, you must re-initdb the\n" -"new cluster before continuing.\n" +"new cluster before continuing." msgstr "" "\n" "Если работа pg_upgrade после этого прервётся, вы должны заново выполнить " "initdb\n" -"для нового кластера, чтобы продолжить.\n" +"для нового кластера, чтобы продолжить." -#: check.c:264 +#: check.c:767 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" -" %s/vacuumdb %s--all --analyze-in-stages\n" -"\n" +" %s/vacuumdb %s--all --analyze-in-stages" msgstr "" "Статистика оптимизатора утилитой pg_upgrade не переносится.\n" "Запустив новый сервер, имеет смысл выполнить:\n" -" %s/vacuumdb %s--all --analyze-in-stages\n" -"\n" +" %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:270 +#: check.c:773 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" -" %s\n" +" %s" msgstr "" "При запуске этого скрипта будут удалены файлы данных старого кластера:\n" -" %s\n" +" %s" -#: check.c:275 +#: check.c:778 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" "because user-defined tablespaces or the new cluster's data directory\n" "exist in the old cluster directory. The old cluster's contents must\n" -"be deleted manually.\n" +"be deleted manually." msgstr "" "Не удалось создать скрипт для удаления файлов данных старого кластера,\n" "так как каталог старого кластера содержит пользовательские табличные\n" "пространства или каталог данных нового кластера.\n" -"Содержимое старого кластера нужно будет удалить вручную.\n" +"Содержимое старого кластера нужно будет удалить вручную." -#: check.c:287 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "Проверка версий кластеров" -#: check.c:299 +#: check.c:802 #, c-format -msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" +msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "" -"Эта утилита может производить обновление только с версии PostgreSQL 8.4 и " -"новее.\n" +"Эта утилита может производить обновление только с версии PostgreSQL %s и " +"новее." -#: check.c:303 +#: check.c:807 #, c-format -msgid "This utility can only upgrade to PostgreSQL version %s.\n" -msgstr "Эта утилита может только повышать версию PostgreSQL до %s.\n" +msgid "This utility can only upgrade to PostgreSQL version %s." +msgstr "Эта утилита может повышать версию PostgreSQL только до %s." -#: check.c:312 +#: check.c:816 #, c-format msgid "" -"This utility cannot be used to downgrade to older major PostgreSQL " -"versions.\n" +"This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "" "Эта утилита не может понижать версию до более старой основной версии " -"PostgreSQL.\n" +"PostgreSQL." -#: check.c:317 +#: check.c:821 #, c-format msgid "" -"Old cluster data and binary directories are from different major versions.\n" +"Old cluster data and binary directories are from different major versions." msgstr "" "Каталоги данных и исполняемых файлов старого кластера относятся к разным " -"основным версиям.\n" +"основным версиям." -#: check.c:320 +#: check.c:824 #, c-format msgid "" -"New cluster data and binary directories are from different major versions.\n" +"New cluster data and binary directories are from different major versions." msgstr "" "Каталоги данных и исполняемых файлов нового кластера относятся к разным " -"основным версиям.\n" - -#: check.c:337 -#, c-format -msgid "" -"When checking a pre-PG 9.1 live old server, you must specify the old " -"server's port number.\n" -msgstr "" -"Для проверки старого работающего сервера версии до 9.1 необходимо указать " -"номер порта этого сервера.\n" +"основным версиям." -#: check.c:341 +#: check.c:839 #, c-format msgid "" -"When checking a live server, the old and new port numbers must be " -"different.\n" +"When checking a live server, the old and new port numbers must be different." msgstr "" "Для проверки работающего сервера новый номер порта должен отличаться от " -"старого.\n" - -#: check.c:356 -#, c-format -msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"кодировки в базе данных \"%s\" различаются: старая - \"%s\", новая - \"%s" -"\"\n" - -#: check.c:361 -#, c-format -msgid "" -"lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"значения lc_collate в базе данных \"%s\" различаются: старое - \"%s\", " -"новое - \"%s\"\n" - -#: check.c:364 -#, c-format -msgid "" -"lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "" -"значения lc_ctype в базе данных \"%s\" различаются: старое - \"%s\", новое " -"- \"%s\"\n" +"старого." -#: check.c:437 +#: check.c:859 #, c-format -msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" +msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "" -"Новая база данных кластера \"%s\" не пустая: найдено отношение \"%s.%s\"\n" +"Новая база данных кластера \"%s\" не пустая: найдено отношение \"%s.%s\"" -#: check.c:494 +#: check.c:882 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Проверка каталогов табличных пространств в новом кластере" -#: check.c:505 +#: check.c:893 #, c-format -msgid "new cluster tablespace directory already exists: \"%s\"\n" +msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "" -"каталог табличного пространства в новом кластере уже существует: \"%s\"\n" +"каталог табличного пространства в новом кластере уже существует: \"%s\"" -#: check.c:538 +#: check.c:926 #, c-format msgid "" "\n" -"WARNING: new data directory should not be inside the old data directory, e." -"g. %s\n" +"WARNING: new data directory should not be inside the old data directory, i." +"e. %s" msgstr "" "\n" "ПРЕДУПРЕЖДЕНИЕ: новый каталог данных не должен располагаться внутри старого " -"каталога данных, то есть, в %s\n" +"каталога данных, то есть, в %s" -#: check.c:562 +#: check.c:950 #, c-format msgid "" "\n" "WARNING: user-defined tablespace locations should not be inside the data " -"directory, e.g. %s\n" +"directory, i.e. %s" msgstr "" "\n" "ПРЕДУПРЕЖДЕНИЕ: пользовательские табличные пространства не должны " -"располагаться внутри каталога данных, то есть, в %s\n" +"располагаться внутри каталога данных, то есть, в %s" -#: check.c:572 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "Создание скрипта для удаления старого кластера" -#: check.c:575 check.c:839 check.c:937 check.c:1016 check.c:1278 file.c:336 -#: function.c:240 option.c:497 version.c:54 version.c:204 version.c:376 -#: version.c:511 +#: check.c:1014 #, c-format -msgid "could not open file \"%s\": %s\n" -msgstr "не удалось открыть файл \"%s\": %s\n" +msgid "could not add execute permission to file \"%s\": %m" +msgstr "не удалось добавить право выполнения для файла \"%s\": %m" -#: check.c:631 -#, c-format -msgid "could not add execute permission to file \"%s\": %s\n" -msgstr "не удалось добавить право выполнения для файла \"%s\": %s\n" - -#: check.c:651 +#: check.c:1034 #, c-format msgid "Checking database user is the install user" msgstr "Проверка, является ли пользователь БД стартовым пользователем" -#: check.c:667 +#: check.c:1050 #, c-format -msgid "database user \"%s\" is not the install user\n" -msgstr "пользователь БД \"%s\" не является стартовым пользователем\n" +msgid "database user \"%s\" is not the install user" +msgstr "пользователь БД \"%s\" не является стартовым пользователем" -#: check.c:678 +#: check.c:1061 #, c-format -msgid "could not determine the number of users\n" -msgstr "не удалось определить количество пользователей\n" +msgid "could not determine the number of users" +msgstr "не удалось определить количество пользователей" -#: check.c:686 +#: check.c:1069 #, c-format -msgid "Only the install user can be defined in the new cluster.\n" -msgstr "В новом кластере может быть определён только стартовый пользователь.\n" +msgid "Only the install user can be defined in the new cluster." +msgstr "В новом кластере может быть определён только стартовый пользователь." -#: check.c:706 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "Проверка параметров подключения к базе данных" -#: check.c:728 +#: check.c:1124 #, c-format msgid "" "template0 must not allow connections, i.e. its pg_database.datallowconn must " -"be false\n" +"be false" msgstr "" -"База template0 не должна допускать подключения, то есть её свойство " -"pg_database.datallowconn должно быть false\n" +"база template0 не должна допускать подключения, то есть её свойство " +"pg_database.datallowconn должно быть false" + +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 +#, c-format +msgid "fatal" +msgstr "сбой" -#: check.c:738 +#: check.c:1151 #, c-format msgid "" -"All non-template0 databases must allow connections, i.e. their pg_database." -"datallowconn must be true\n" +"All non-template0 databases must allow connections, i.e. their\n" +"pg_database.datallowconn must be true. Your installation contains\n" +"non-template0 databases with their pg_database.datallowconn set to\n" +"false. Consider allowing connection for all non-template0 databases\n" +"or drop the databases which do not allow connections. A list of\n" +"databases with the problem is in the file:\n" +" %s" msgstr "" "Все базы, кроме template0, должны допускать подключения, то есть их свойство " -"pg_database.datallowconn должно быть true\n" +"pg_database.datallowconn должно быть true. В вашей инсталляции содержатся\n" +"базы (не считая template0), у которых pg_database.datallowconn — false.\n" +"Имеет смысл разрешить подключения для всех баз данных, кроме template0,\n" +"или удалить базы, к которым нельзя подключаться. Список баз данных\n" +"с этой проблемой содержится в файле:\n" +" %s" -#: check.c:763 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "Проверка наличия подготовленных транзакций" -#: check.c:772 +#: check.c:1185 #, c-format -msgid "The source cluster contains prepared transactions\n" -msgstr "Исходный кластер содержит подготовленные транзакции\n" +msgid "The source cluster contains prepared transactions" +msgstr "Исходный кластер содержит подготовленные транзакции" -#: check.c:774 +#: check.c:1187 #, c-format -msgid "The target cluster contains prepared transactions\n" -msgstr "Целевой кластер содержит подготовленные транзакции\n" +msgid "The target cluster contains prepared transactions" +msgstr "Целевой кластер содержит подготовленные транзакции" -#: check.c:800 +#: check.c:1212 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Проверка несоответствия при передаче bigint в contrib/isn" -#: check.c:861 check.c:962 check.c:1038 check.c:1095 check.c:1154 check.c:1183 -#: check.c:1301 function.c:262 version.c:278 version.c:316 version.c:460 -#, c-format -msgid "fatal\n" -msgstr "сбой\n" - -#: check.c:862 +#: check.c:1271 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -309,8 +535,7 @@ msgid "" "manually dump databases in the old cluster that use \"contrib/isn\"\n" "facilities, drop them, perform the upgrade, and then restore them. A\n" "list of the problem functions is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "В вашей инсталляции имеются функции \"contrib/isn\", задействующие тип " "biging.\n" @@ -321,537 +546,569 @@ msgstr "" "или удалить \"contrib/isn\" из старого кластера и перезапустить обновление. " "Список\n" "проблемных функций приведён в файле:\n" -" %s\n" -"\n" +" %s" -#: check.c:885 +#: check.c:1293 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Проверка пользовательских постфиксных операторов" -#: check.c:963 +#: check.c:1368 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" "supported anymore. Consider dropping the postfix operators and replacing\n" "them with prefix operators or function calls.\n" "A list of user-defined postfix operators is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "В вашей инсталляции содержатся пользовательские постфиксные операторы, " "которые\n" "теперь не поддерживаются. Их следует удалить и использовать вместо них\n" "префиксные операторы или функции.\n" "Список пользовательских постфиксных операторов приведён в файле:\n" -" %s\n" -"\n" +" %s" -#: check.c:984 +#: check.c:1392 +#, c-format +msgid "Checking for incompatible polymorphic functions" +msgstr "Проверка несовместимых полиморфных функций" + +#: check.c:1493 +#, c-format +msgid "" +"Your installation contains user-defined objects that refer to internal\n" +"polymorphic functions with arguments of type \"anyarray\" or " +"\"anyelement\".\n" +"These user-defined objects must be dropped before upgrading and restored\n" +"afterwards, changing them to refer to the new corresponding functions with\n" +"arguments of type \"anycompatiblearray\" and \"anycompatible\".\n" +"A list of the problematic objects is in the file:\n" +" %s" +msgstr "" +"В вашей инсталляции содержатся пользовательские объекты, обращающиеся\n" +"к внутренним полиморфным функциям с аргументами типа \"anyarray\" или " +"\"anyelement\".\n" +"Такие объекты необходимо удалить перед процедурой обновления и восстановить\n" +"после, изменив их так, чтобы они обращались к новым аналогичным функциям\n" +"с аргументами типа \"anycompatiblearray\" и \"anycompatible\".\n" +"Список проблемных объектов приведён в файле:\n" +" %s" + +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Проверка таблиц со свойством WITH OIDS" -#: check.c:1039 +#: check.c:1569 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" "supported anymore. Consider removing the oid column using\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "A list of tables with the problem is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "В вашей инсталляции содержатся таблицы со свойством WITH OIDS, которое " "теперь\n" "не поддерживается. Отказаться от использования столбцов oid можно так:\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "Список проблемных таблиц приведён в файле:\n" -" %s\n" -"\n" +" %s" -#: check.c:1067 +#: check.c:1596 #, c-format -msgid "Checking for system-defined composite types in user tables" -msgstr "Проверка системных составных типов в пользовательских таблицах" +msgid "Checking for roles starting with \"pg_\"" +msgstr "Проверка ролей с именами, начинающимися с \"pg_\"" -#: check.c:1096 +#: check.c:1627 #, 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" +"Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" +" %s" msgstr "" -"В вашей инсталляции пользовательские таблицы используют системные составные " -"типы.\n" -"OID таких типов могут различаться в разных версиях PostgreSQL, в настоящем\n" -"состоянии обновить кластер невозможно. Вы можете удалить проблемные столбцы\n" -"и перезапустить обновление. Список проблемных столбцов приведён в файле:\n" -" %s\n" -"\n" +"В вашей инсталляции имеются роли с именами, начинающимися с \"pg_\".\n" +"Префикс \"pg_\" зарезервирован для системных ролей. Пока эти роли\n" +"не будут переименованы, обновить кластер невозможно.\n" +"Список ролей с префиксом \"pg_\" приведён в файле:\n" +" %s" -#: check.c:1124 +#: check.c:1647 #, c-format -msgid "Checking for reg* data types in user tables" -msgstr "Проверка типов данных reg* в пользовательских таблицах" +msgid "Checking for user-defined encoding conversions" +msgstr "Проверка пользовательских перекодировок" -#: check.c:1155 +#: check.c:1707 #, c-format msgid "" -"Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, 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" +"Your installation contains user-defined encoding conversions.\n" +"The conversion function parameters changed in PostgreSQL version 14\n" +"so this cluster cannot currently be upgraded. You can remove the\n" +"encoding conversions in the old cluster and restart the upgrade.\n" +"A list of user-defined encoding conversions is in the file:\n" +" %s" msgstr "" -"В вашей инсталляции пользовательские таблицы содержат один из типов reg*.\n" -"Эти типы данных ссылаются на системные OID, которые не сохраняются утилитой\n" -"pg_upgrade, так что обновление кластера в текущем состоянии невозможно. Вы\n" -"можете удалить проблемные столбцы и перезапустить обновление. Список " -"проблемных\n" -"столбцов приведён в файле:\n" -" %s\n" -"\n" +"В вашей инсталляции имеются пользовательские перекодировки.\n" +"У функций перекодировок в PostgreSQL 14 поменялись параметры, поэтому\n" +"в настоящем состоянии обновить кластер невозможно. Вы можете удалить\n" +"перекодировки в старом кластере и перезапустить обновление.\n" +"Список пользовательских перекодировок приведён в файле:\n" +" %s" -#: check.c:1177 +#: check.c:1746 #, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "Проверка несовместимого типа данных \"jsonb\"" +msgid "Checking for new cluster logical replication slots" +msgstr "Проверка слотов логической репликации в новом кластере" -#: check.c:1184 +#: check.c:1754 #, c-format -msgid "" -"Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"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 "" -"В вашей инсталляции таблицы используют тип данных jsonb.\n" -"Внутренний формат \"jsonb\" изменился в версии 9.4 beta, поэтому обновить " -"кластер\n" -"в текущем состоянии невозможно. Вы можете удалить проблемные столбцы и\n" -"перезапустить обновление. Список проблемных столбцов приведён в файле:\n" -" %s\n" -"\n" +msgid "could not count the number of logical replication slots" +msgstr "не удалось получить количество слотов логической репликации" -#: check.c:1206 +#: check.c:1759 #, c-format -msgid "Checking for roles starting with \"pg_\"" -msgstr "Проверка ролей с именами, начинающимися с \"pg_\"" +msgid "expected 0 logical replication slots but found %d" +msgstr "обнаружено слотов логической репликации: %d, тогда как ожидалось 0" -#: check.c:1216 +#: check.c:1769 check.c:1820 #, c-format -msgid "The source cluster contains roles starting with \"pg_\"\n" -msgstr "В исходном кластере есть роли, имена которых начинаются с \"pg_\"\n" +msgid "could not determine parameter settings on new cluster" +msgstr "не удалось получить значения параметров в новом кластере" -#: check.c:1218 +#: check.c:1774 #, c-format -msgid "The target cluster contains roles starting with \"pg_\"\n" -msgstr "В целевом кластере есть роли, имена которых начинаются с \"pg_\"\n" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "\"wal_level\" должен иметь значение \"logical\", а имеет \"%s\"" -#: check.c:1239 +#: check.c:1780 #, c-format -msgid "Checking for user-defined encoding conversions" -msgstr "Проверка пользовательских перекодировок" +msgid "" +"\"max_replication_slots\" (%d) must be greater than or equal to the number " +"of logical replication slots (%d) on the old cluster" +msgstr "" +"значение \"max_replication_slots\" (%d) должно быть больше или равно числу " +"слотов логической репликации (%d) в старом кластере" -#: check.c:1302 +#: check.c:1812 +#, c-format +msgid "Checking for new cluster configuration for subscriptions" +msgstr "Проверка конфигурации нового кластера для использования подписок" + +#: check.c:1824 #, c-format msgid "" -"Your installation contains user-defined encoding conversions.\n" -"The conversion function parameters changed in PostgreSQL version 14\n" -"so this cluster cannot currently be upgraded. You can remove the\n" -"encoding conversions in the old cluster and restart the upgrade.\n" -"A list of user-defined encoding conversions is in the file:\n" -" %s\n" -"\n" +"\"max_replication_slots\" (%d) must be greater than or equal to the number " +"of subscriptions (%d) on the old cluster" msgstr "" -"В вашей инсталляции имеются пользовательские перекодировки.\n" -"У функций перекодировок в PostgreSQL 14 поменялись параметры, поэтому\n" -"в настоящем состоянии обновить кластер невозможно. Вы можете удалить\n" -"перекодировки в старом кластере и перезапустить обновление.\n" -"Список пользовательских перекодировок приведён в файле:\n" -" %s\n" -"\n" +"значение \"max_replication_slots\" (%d) должно быть больше или равно числу " +"подписок (%d) в старом кластере" -#: check.c:1329 +#: check.c:1846 #, c-format -msgid "failed to get the current locale\n" -msgstr "не удалось получить текущую локаль\n" +msgid "Checking for valid logical replication slots" +msgstr "Проверка корректности слотов логической репликации" -#: check.c:1338 +#: check.c:1898 #, c-format -msgid "failed to get system locale name for \"%s\"\n" -msgstr "не удалось получить системное имя локали для \"%s\"\n" +msgid "" +"Your installation contains logical replication slots that cannot be " +"upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other " +"slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" +" %s" +msgstr "" +"В вашей инсталляции используются слоты логической репликации, которые " +"нельзя\n" +"обновить. Вы можете удалить неподходящие слоты и/или добиться, чтобы другие\n" +"слоты прочитали ожидающий обработки WAL, а затем перезапустить обновление.\n" +"Список проблемных слотов приведён в файле:\n" +" %s" -#: check.c:1344 +#: check.c:1922 #, c-format -msgid "failed to restore old locale \"%s\"\n" -msgstr "не удалось восстановить старую локаль \"%s\"\n" +msgid "Checking for subscription state" +msgstr "Проверка состояния подписок" -#: controldata.c:128 controldata.c:196 +#: check.c:2023 #, c-format -msgid "could not get control data using %s: %s\n" -msgstr "не удалось получить управляющие данные, выполнив %s: %s\n" +msgid "" +"Your installation contains subscriptions without origin or having relations " +"not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart " +"the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" +" %s" +msgstr "" +"В вашей инсталляции имеются подписки с отсутствующим источником или с\n" +"отношениями, находящимися не в состоянии i (инициализировано) или r " +"(готово).\n" +"Вы можете добиться завершения начальной синхронизации для всех отношений, а\n" +"затем перезапустить обновление.\n" +"Список проблемных подписок приведён в файле:\n" +" %s" + +#: controldata.c:129 controldata.c:199 +#, c-format +msgid "could not get control data using %s: %m" +msgstr "не удалось получить управляющие данные, выполнив %s: %m" #: controldata.c:139 #, c-format -msgid "%d: database cluster state problem\n" -msgstr "%d: недопустимое состояние кластера баз данных\n" +msgid "%d: database cluster state problem" +msgstr "%d: недопустимое состояние кластера баз данных" -#: controldata.c:157 +#: controldata.c:158 #, 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" +"\"rsync\" as documented or shut it down as a primary." msgstr "" "Исходный кластер был отключён в режиме восстановления. Чтобы произвести " "обновление, используйте документированный способ с rsync или отключите его в " -"режиме главного сервера.\n" +"режиме главного сервера." -#: controldata.c:159 +#: controldata.c:160 #, 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" +"\"rsync\" as documented or shut it down as a primary." msgstr "" "Целевой кластер был отключён в режиме восстановления. Чтобы произвести " "обновление, используйте документированный способ с rsync или отключите его в " -"режиме главного сервера.\n" +"режиме главного сервера." -#: controldata.c:164 +#: controldata.c:165 #, c-format -msgid "The source cluster was not shut down cleanly.\n" -msgstr "Исходный кластер не был отключён штатным образом.\n" - -#: controldata.c:166 -#, c-format -msgid "The target cluster was not shut down cleanly.\n" -msgstr "Целевой кластер не был отключён штатным образом.\n" +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "" +"Исходный кластер не был отключён штатным образом, записанное состояние: " +"\"%s\"" -#: controldata.c:177 +#: controldata.c:167 #, c-format -msgid "The source cluster lacks cluster state information:\n" -msgstr "В исходном кластере не хватает информации о состоянии кластера:\n" +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "" +"Целевой кластер не был отключён штатным образом, записанное состояние: \"%s\"" -#: controldata.c:179 +#: controldata.c:175 controldata.c:507 #, c-format -msgid "The target cluster lacks cluster state information:\n" -msgstr "В целевом кластере не хватает информации о состоянии кластера:\n" +msgid "could not get control data using %s: %s" +msgstr "не удалось получить управляющие данные, выполнив %s: %s" -#: controldata.c:209 dump.c:49 pg_upgrade.c:335 pg_upgrade.c:371 -#: relfilenode.c:243 server.c:33 util.c:79 +#: controldata.c:181 #, c-format -msgid "%s" -msgstr "%s" +msgid "The source cluster lacks cluster state information:" +msgstr "В исходном кластере не хватает информации о состоянии кластера:" -#: controldata.c:216 +#: controldata.c:183 #, c-format -msgid "%d: pg_resetwal problem\n" -msgstr "%d: проблема с выводом pg_resetwal\n" +msgid "The target cluster lacks cluster state information:" +msgstr "В целевом кластере не хватает информации о состоянии кластера:" -#: 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 +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 #, c-format -msgid "%d: controldata retrieval problem\n" -msgstr "%d: проблема с получением управляющих данных\n" +msgid "%s" +msgstr "%s" -#: controldata.c:572 +#: controldata.c:220 #, c-format -msgid "The source cluster lacks some required control information:\n" -msgstr "В исходном кластере не хватает необходимой управляющей информации:\n" +msgid "%d: pg_resetwal problem" +msgstr "%d: проблема с выводом pg_resetwal" -#: controldata.c:575 +#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 #, c-format -msgid "The target cluster lacks some required control information:\n" -msgstr "В целевом кластере не хватает необходимой управляющей информации:\n" +msgid "%d: controldata retrieval problem" +msgstr "%d: проблема с получением управляющих данных" -# skip-rule: capital-letter-first #: controldata.c:578 #, c-format -msgid " checkpoint next XID\n" -msgstr " следующий XID последней конт. точки\n" +msgid "The source cluster lacks some required control information:" +msgstr "В исходном кластере не хватает необходимой управляющей информации:" -# skip-rule: capital-letter-first #: controldata.c:581 #, c-format -msgid " latest checkpoint next OID\n" -msgstr " следующий OID последней конт. точки\n" +msgid "The target cluster lacks some required control information:" +msgstr "В целевом кластере не хватает необходимой управляющей информации:" # skip-rule: capital-letter-first #: controldata.c:584 #, c-format -msgid " latest checkpoint next MultiXactId\n" -msgstr " следующий MultiXactId последней конт. точки\n" +msgid " checkpoint next XID" +msgstr " следующий XID конт. точки" # skip-rule: capital-letter-first -#: controldata.c:588 +#: controldata.c:587 #, c-format -msgid " latest checkpoint oldest MultiXactId\n" -msgstr " старейший MultiXactId последней конт. точки\n" +msgid " latest checkpoint next OID" +msgstr " следующий OID последней конт. точки" # skip-rule: capital-letter-first -#: controldata.c:591 +#: controldata.c:590 #, c-format -msgid " latest checkpoint oldestXID\n" -msgstr " oldestXID последней конт. точки\n" +msgid " latest checkpoint next MultiXactId" +msgstr " следующий MultiXactId последней конт. точки" # skip-rule: capital-letter-first #: controldata.c:594 #, c-format -msgid " latest checkpoint next MultiXactOffset\n" -msgstr " следующий MultiXactOffset последней конт. точки\n" +msgid " latest checkpoint oldest MultiXactId" +msgstr " старейший MultiXactId последней конт. точки" +# skip-rule: capital-letter-first #: controldata.c:597 #, c-format -msgid " first WAL segment after reset\n" -msgstr " первый сегмент WAL после сброса\n" +msgid " latest checkpoint oldestXID" +msgstr " oldestXID последней конт. точки" +# skip-rule: capital-letter-first #: controldata.c:600 #, c-format -msgid " float8 argument passing method\n" -msgstr " метод передачи аргумента float8\n" +msgid " latest checkpoint next MultiXactOffset" +msgstr " следующий MultiXactOffset последней конт. точки" #: controldata.c:603 #, c-format -msgid " maximum alignment\n" -msgstr " максимальное выравнивание\n" +msgid " first WAL segment after reset" +msgstr " первый сегмент WAL после сброса" #: controldata.c:606 #, c-format -msgid " block size\n" -msgstr " размер блока\n" +msgid " float8 argument passing method" +msgstr " метод передачи аргумента float8" #: controldata.c:609 #, c-format -msgid " large relation segment size\n" -msgstr " размер сегмента большого отношения\n" +msgid " maximum alignment" +msgstr " максимальное выравнивание" #: controldata.c:612 #, c-format -msgid " WAL block size\n" -msgstr " размер блока WAL\n" +msgid " block size" +msgstr " размер блока" #: controldata.c:615 #, c-format -msgid " WAL segment size\n" -msgstr " размер сегмента WAL\n" +msgid " large relation segment size" +msgstr " размер сегмента большого отношения" #: controldata.c:618 #, c-format -msgid " maximum identifier length\n" -msgstr " максимальная длина идентификатора\n" +msgid " WAL block size" +msgstr " размер блока WAL" #: controldata.c:621 #, c-format -msgid " maximum number of indexed columns\n" -msgstr " максимальное число столбцов в индексе\n" +msgid " WAL segment size" +msgstr " размер сегмента WAL" #: controldata.c:624 #, c-format -msgid " maximum TOAST chunk size\n" -msgstr " максимальный размер порции TOAST\n" +msgid " maximum identifier length" +msgstr " максимальная длина идентификатора" -#: controldata.c:628 +#: controldata.c:627 #, c-format -msgid " large-object chunk size\n" -msgstr " размер порции большого объекта\n" +msgid " maximum number of indexed columns" +msgstr " максимальное число столбцов в индексе" -#: controldata.c:631 +#: controldata.c:630 #, c-format -msgid " dates/times are integers?\n" -msgstr " дата/время представлены целыми числами?\n" +msgid " maximum TOAST chunk size" +msgstr " максимальный размер порции TOAST" -#: controldata.c:635 +#: controldata.c:634 #, c-format -msgid " data checksum version\n" -msgstr " версия контрольных сумм данных\n" +msgid " large-object chunk size" +msgstr " размер порции большого объекта" #: controldata.c:637 #, c-format -msgid "Cannot continue without required control information, terminating\n" +msgid " dates/times are integers?" +msgstr " дата/время представлены целыми числами?" + +#: controldata.c:641 +#, c-format +msgid " data checksum version" +msgstr " версия контрольных сумм данных" + +#: controldata.c:643 +#, c-format +msgid "Cannot continue without required control information, terminating" msgstr "" -"Нет необходимой управляющей информации для продолжения, работа прерывается\n" +"Нет необходимой управляющей информации для продолжения, работа прерывается" -#: controldata.c:652 +#: controldata.c:658 #, c-format msgid "" -"old and new pg_controldata alignments are invalid or do not match\n" -"Likely one cluster is a 32-bit install, the other 64-bit\n" +"old and new pg_controldata alignments are invalid or do not match.\n" +"Likely one cluster is a 32-bit install, the other 64-bit" msgstr "" "старое и новое выравнивание в pg_controldata различаются или некорректны\n" -"Вероятно, один кластер установлен в 32-битной системе, а другой ~ в 64-" -"битной\n" +"Вероятно, один кластер установлен в 32-битной системе, а другой ~ в 64-битной" -#: controldata.c:656 +#: controldata.c:662 #, c-format -msgid "old and new pg_controldata block sizes are invalid or do not match\n" +msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "" -"старый и новый размер блоков в pg_controldata различаются или некорректны\n" +"старый и новый размер блоков в pg_controldata различаются или некорректны" -#: controldata.c:659 +#: controldata.c:665 #, c-format msgid "" "old and new pg_controldata maximum relation segment sizes are invalid or do " -"not match\n" +"not match" msgstr "" "старый и новый максимальный размер сегментов отношений в pg_controldata " -"различаются или некорректны\n" +"различаются или некорректны" -#: controldata.c:662 +#: controldata.c:668 #, c-format -msgid "" -"old and new pg_controldata WAL block sizes are invalid or do not match\n" +msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "" -"старый и новый размер блоков WAL в pg_controldata различаются или " -"некорректны\n" +"старый и новый размер блоков WAL в pg_controldata различаются или некорректны" -#: controldata.c:665 +#: controldata.c:671 #, c-format msgid "" -"old and new pg_controldata WAL segment sizes are invalid or do not match\n" +"old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "" "старый и новый размер сегментов WAL в pg_controldata различаются или " -"некорректны\n" +"некорректны" -#: controldata.c:668 +#: controldata.c:674 #, c-format msgid "" "old and new pg_controldata maximum identifier lengths are invalid or do not " -"match\n" +"match" msgstr "" "старая и новая максимальная длина идентификаторов в pg_controldata " -"различаются или некорректны\n" +"различаются или некорректны" -#: controldata.c:671 +#: controldata.c:677 #, c-format msgid "" "old and new pg_controldata maximum indexed columns are invalid or do not " -"match\n" +"match" msgstr "" "старый и новый максимум числа столбцов, составляющих индексы, в " -"pg_controldata различаются или некорректны\n" +"pg_controldata различаются или некорректны" -#: controldata.c:674 +#: controldata.c:680 #, c-format msgid "" "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not " -"match\n" +"match" msgstr "" "старый и новый максимальный размер порции TOAST в pg_controldata различаются " -"или некорректны\n" +"или некорректны" -#: controldata.c:679 +#: controldata.c:685 #, c-format msgid "" "old and new pg_controldata large-object chunk sizes are invalid or do not " -"match\n" +"match" msgstr "" -"старый и новый размер порции большого объекта различаются или некорректны\n" +"старый и новый размер порции большого объекта различаются или некорректны" -#: controldata.c:682 +#: controldata.c:688 #, c-format -msgid "old and new pg_controldata date/time storage types do not match\n" +msgid "old and new pg_controldata date/time storage types do not match" msgstr "" "старый и новый тип хранения даты/времени в pg_controldata различаются или " -"некорректны\n" +"некорректны" -#: controldata.c:695 +#: controldata.c:701 #, c-format -msgid "old cluster does not use data checksums but the new one does\n" +msgid "old cluster does not use data checksums but the new one does" msgstr "" "в старом кластере не применялись контрольные суммы данных, но в новом они " -"есть\n" +"есть" -#: controldata.c:698 +#: controldata.c:704 #, c-format -msgid "old cluster uses data checksums but the new one does not\n" +msgid "old cluster uses data checksums but the new one does not" msgstr "" -"в старом кластере применялись контрольные суммы данных, но в новом их нет\n" +"в старом кластере применялись контрольные суммы данных, но в новом их нет" -#: controldata.c:700 +#: controldata.c:706 #, c-format -msgid "old and new cluster pg_controldata checksum versions do not match\n" +msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "" -"старая и новая версия контрольных сумм кластера в pg_controldata " -"различаются\n" +"старая и новая версия контрольных сумм кластера в pg_controldata различаются" -#: controldata.c:711 +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Добавление расширения \".old\" к старому файлу global/pg_control" -#: controldata.c:716 +#: controldata.c:722 #, c-format -msgid "Unable to rename %s to %s.\n" -msgstr "Не удалось переименовать %s в %s.\n" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" -#: controldata.c:719 +#: controldata.c:726 #, c-format msgid "" "\n" "If you want to start the old cluster, you will need to remove\n" "the \".old\" suffix from %s/global/pg_control.old.\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" -"started once the new cluster has been started.\n" -"\n" +"started once the new cluster has been started." msgstr "" "\n" "Если вы захотите запустить старый кластер, вам нужно будет убрать\n" "расширение \".old\" у файла %s/global/pg_control.old.\n" "Так как применялся режим \"ссылок\", работа старого кластера\n" -"после того, как будет запущен новый, не гарантируется.\n" -"\n" +"после того, как будет запущен новый, не гарантируется." #: dump.c:20 #, c-format msgid "Creating dump of global objects" msgstr "Формирование выгрузки глобальных объектов" -#: dump.c:31 +#: dump.c:32 #, c-format -msgid "Creating dump of database schemas\n" -msgstr "Формирование выгрузки схем базы данных\n" +msgid "Creating dump of database schemas" +msgstr "Формирование выгрузки схем базы данных" -#: exec.c:45 +#: exec.c:47 #, c-format -msgid "could not get pg_ctl version data using %s: %s\n" -msgstr "не удалось получить данные версии pg_ctl, выполнив %s: %s\n" +msgid "could not get pg_ctl version data using %s: %m" +msgstr "не удалось получить данные версии pg_ctl, выполнив %s: %m" #: exec.c:51 #, c-format -msgid "could not get pg_ctl version output from %s\n" -msgstr "не удалось получить версию pg_ctl из результата %s\n" +msgid "could not get pg_ctl version data using %s: %s" +msgstr "не удалось получить данные версии pg_ctl, выполнив %s: %s" -#: exec.c:105 exec.c:109 +#: exec.c:55 #, c-format -msgid "command too long\n" -msgstr "команда слишком длинная\n" +msgid "could not get pg_ctl version output from %s" +msgstr "не удалось получить версию pg_ctl из результата %s" -#: exec.c:111 util.c:37 util.c:225 +#: exec.c:112 exec.c:116 #, c-format -msgid "%s\n" -msgstr "%s\n" +msgid "command too long" +msgstr "команда слишком длинная" -#: exec.c:150 option.c:217 +#: exec.c:160 pg_upgrade.c:311 #, c-format -msgid "could not open log file \"%s\": %m\n" -msgstr "не удалось открыть файл протокола \"%s\": %m\n" +msgid "could not open log file \"%s\": %m" +msgstr "не удалось открыть файл протокола \"%s\": %m" -#: exec.c:179 +#: exec.c:192 #, c-format msgid "" "\n" @@ -860,432 +1117,382 @@ msgstr "" "\n" "*ошибка*" -#: exec.c:182 +#: exec.c:195 #, c-format -msgid "There were problems executing \"%s\"\n" -msgstr "При выполнении \"%s\" возникли проблемы\n" +msgid "There were problems executing \"%s\"" +msgstr "При выполнении \"%s\" возникли проблемы" -#: exec.c:185 +#: exec.c:198 #, c-format msgid "" "Consult the last few lines of \"%s\" or \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "" "Чтобы понять причину ошибки, просмотрите последние несколько строк\n" -"файла \"%s\" или \"%s\".\n" +"файла \"%s\" или \"%s\"." -#: exec.c:190 +#: exec.c:203 #, c-format msgid "" "Consult the last few lines of \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "" "Чтобы понять причину ошибки, просмотрите последние несколько строк\n" -"файла \"%s\".\n" +"файла \"%s\"." -#: exec.c:205 option.c:226 +#: exec.c:218 pg_upgrade.c:321 #, c-format -msgid "could not write to log file \"%s\": %m\n" -msgstr "не удалось записать в файл протокола \"%s\": %m\n" +msgid "could not write to log file \"%s\": %m" +msgstr "не удалось записать в файл протокола \"%s\": %m" -#: exec.c:231 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s\n" -msgstr "не удалось открыть файл \"%s\" для чтения: %s\n" +msgid "could not open file \"%s\" for reading: %m" +msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: exec.c:258 +#: exec.c:270 #, c-format -msgid "You must have read and write access in the current directory.\n" -msgstr "У вас должны быть права на чтение и запись в текущем каталоге.\n" +msgid "You must have read and write access in the current directory." +msgstr "У вас должны быть права на чтение и запись в текущем каталоге." -#: exec.c:311 exec.c:377 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s\n" -msgstr "проверка существования \"%s\" не пройдена: %s\n" +msgid "check for \"%s\" failed: %m" +msgstr "файл \"%s\" не прошёл проверку: %m" -#: exec.c:314 exec.c:380 +#: exec.c:326 exec.c:392 #, c-format -msgid "\"%s\" is not a directory\n" -msgstr "\"%s\" не является каталогом\n" +msgid "\"%s\" is not a directory" +msgstr "\"%s\" не является каталогом" -#: exec.c:430 +#: exec.c:444 #, c-format -msgid "check for \"%s\" failed: not a regular file\n" -msgstr "программа \"%s\" не прошла проверку: это не обычный файл\n" +msgid "check for \"%s\" failed: cannot execute" +msgstr "программа \"%s\" не прошла проверку: ошибка выполнения" -#: exec.c:433 -#, c-format -msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -msgstr "программа \"%s\" не прошла проверку: ошибка выполнения (нет доступа)\n" - -#: exec.c:439 -#, c-format -msgid "check for \"%s\" failed: cannot execute\n" -msgstr "программа \"%s\" не прошла проверку: ошибка выполнения\n" - -#: exec.c:449 +#: exec.c:454 #, c-format msgid "" -"check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"\n" +"check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" msgstr "" "программа \"%s\" не прошла проверку: получена некорректная версия \"%s\", " -"ожидалась \"%s\"\n" +"ожидалась \"%s\"" -#: file.c:43 file.c:61 +#: file.c:44 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "ошибка при клонировании отношения \"%s.%s\" (из \"%s\" в \"%s\"): %s\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "ошибка при клонировании отношения \"%s.%s\" (из \"%s\" в \"%s\"): %m" -#: file.c:50 +#: file.c:51 #, c-format -msgid "" -"error while cloning relation \"%s.%s\": could not open file \"%s\": %s\n" +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" msgstr "" "ошибка при клонировании отношения \"%s.%s\": не удалось открыть файл \"%s\": " -"%s\n" +"%m" -#: file.c:55 +#: file.c:56 #, c-format msgid "" -"error while cloning relation \"%s.%s\": could not create file \"%s\": %s\n" +"error while cloning relation \"%s.%s\": could not create file \"%s\": %m" msgstr "" "ошибка при клонировании отношения \"%s.%s\": не удалось создать файл \"%s\": " -"%s\n" +"%m" -#: file.c:87 file.c:190 +#: file.c:65 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not open file \"%s\": %s\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "ошибка при клонировании отношения \"%s.%s\" (из \"%s\" в \"%s\"): %s" + +#: file.c:91 file.c:160 file.c:233 +#, c-format +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" msgstr "" "ошибка при копировании отношения \"%s.%s\": не удалось открыть файл \"%s\": " -"%s\n" +"%m" -#: file.c:92 file.c:199 +#: file.c:96 file.c:165 file.c:242 #, c-format msgid "" -"error while copying relation \"%s.%s\": could not create file \"%s\": %s\n" +"error while copying relation \"%s.%s\": could not create file \"%s\": %m" msgstr "" "ошибка при копировании отношения \"%s.%s\": не удалось создать файл \"%s\": " -"%s\n" +"%m" -#: file.c:106 file.c:223 +#: file.c:110 file.c:266 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not read file \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" msgstr "" -"ошибка при копировании отношения \"%s.%s\": не удалось прочитать файл \"%s" -"\": %s\n" +"ошибка при копировании отношения \"%s.%s\": не удалось прочитать файл " +"\"%s\": %m" -#: file.c:118 file.c:301 +#: file.c:122 file.c:344 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not write file \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" msgstr "" -"ошибка при копировании отношения \"%s.%s\": не удалось записать в файл \"%s" -"\": %s\n" +"ошибка при копировании отношения \"%s.%s\": не удалось записать файл \"%s\": " +"%m" -#: file.c:132 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "ошибка при копировании отношения \"%s.%s\" (из \"%s\" в \"%s\"): %s\n" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "ошибка при копировании отношения \"%s.%s\" (из \"%s\" в \"%s\"): %m" -#: file.c:151 +#: file.c:172 #, c-format msgid "" -"error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" +"error while copying relation \"%s.%s\": could not copy file range from " +"\"%s\" to \"%s\": %m" msgstr "" -"ошибка при создании ссылки для отношения \"%s.%s\" (из \"%s\" в \"%s\"): %s\n" +"ошибка при копировании отношения \"%s.%s\": не удалось скопировать фрагмент " +"файла \"%s\" в \"%s\": %m" #: file.c:194 #, c-format -msgid "" -"error while copying relation \"%s.%s\": could not stat file \"%s\": %s\n" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "" +"ошибка при создании ссылки для отношения \"%s.%s\" (из \"%s\" в \"%s\"): %m" + +#: file.c:237 +#, c-format +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" msgstr "" "ошибка при копировании отношения \"%s.%s\": не удалось получить информацию о " -"файле \"%s\": %s\n" +"файле \"%s\": %m" -#: file.c:226 +#: file.c:269 #, c-format msgid "" -"error while copying relation \"%s.%s\": partial page found in file \"%s\"\n" +"error while copying relation \"%s.%s\": partial page found in file \"%s\"" msgstr "" "ошибка при копировании отношения \"%s.%s\": в файле \"%s\" обнаружена " -"неполная страница\n" +"неполная страница" -#: file.c:328 file.c:345 +#: file.c:371 file.c:387 #, c-format -msgid "could not clone file between old and new data directories: %s\n" -msgstr "не удалось клонировать файл из старого каталога данных в новый: %s\n" +msgid "could not clone file between old and new data directories: %m" +msgstr "не удалось клонировать файл из старого каталога данных в новый: %m" -#: file.c:341 +#: file.c:383 file.c:420 #, c-format -msgid "could not create file \"%s\": %s\n" -msgstr "не удалось создать файл \"%s\": %s\n" +msgid "could not create file \"%s\": %m" +msgstr "не удалось создать файл \"%s\": %m" -#: file.c:352 +#: file.c:393 #, c-format -msgid "file cloning not supported on this platform\n" -msgstr "клонирование файлов не поддерживается в этой ОС\n" +msgid "file cloning not supported on this platform" +msgstr "клонирование файлов не поддерживается в этой ОС" -#: file.c:369 +#: file.c:424 #, c-format -msgid "" -"could not create hard link between old and new data directories: %s\n" -"In link mode the old and new data directories must be on the same file " -"system.\n" +msgid "could not copy file range between old and new data directories: %m" msgstr "" -"не удалось создать жёсткую ссылку между старым и новым каталогами данных: " -"%s\n" -"В режиме \"ссылок\" старый и новый каталоги данных должны находиться в одной " -"файловой системе.\n" - -#: function.c:114 -#, c-format -msgid "" -"\n" -"The old cluster has a \"plpython_call_handler\" function defined\n" -"in the \"public\" schema which is a duplicate of the one defined\n" -"in the \"pg_catalog\" schema. You can confirm this by executing\n" -"in psql:\n" -"\n" -" \\df *.plpython_call_handler\n" -"\n" -"The \"public\" schema version of this function was created by a\n" -"pre-8.1 install of plpython, and must be removed for pg_upgrade\n" -"to complete because it references a now-obsolete \"plpython\"\n" -"shared object file. You can remove the \"public\" schema version\n" -"of this function by running the following command:\n" -"\n" -" DROP FUNCTION public.plpython_call_handler()\n" -"\n" -"in each affected database:\n" -"\n" -msgstr "" -"\n" -"В старом кластере имеется функция \"plpython_call_handler\",\n" -"определённая в схеме \"public\", представляющая собой копию функции,\n" -"определённой в схеме \"pg_catalog\". Вы можете убедиться в этом,\n" -"выполнив в psql:\n" -"\n" -" \\df *.plpython_call_handler\n" -"\n" -"Версия этой функции в схеме \"public\" была создана инсталляцией\n" -"plpython версии до 8.1 и должна быть удалена для завершения процедуры\n" -"pg_upgrade, так как она ссылается на ставший устаревшим\n" -"разделяемый объектный файл \"plpython\". Вы можете удалить версию этой " -"функции\n" -"из схемы \"public\", выполнив следующую команду:\n" -"\n" -" DROP FUNCTION public.plpython_call_handler()\n" -"\n" -"в каждой затронутой базе данных:\n" -"\n" +"не удалось скопировать фрагмент файла из старого каталога данных в новый: %m" -#: function.c:132 +#: file.c:430 #, c-format -msgid " %s\n" -msgstr " %s\n" +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range не поддерживается в этой ОС" -#: function.c:142 +#: file.c:447 #, c-format -msgid "Remove the problem functions from the old cluster to continue.\n" -msgstr "Удалите проблемные функции из старого кластера для продолжения.\n" +msgid "" +"could not create hard link between old and new data directories: %m\n" +"In link mode the old and new data directories must be on the same file " +"system." +msgstr "" +"не удалось создать жёсткую ссылку между старым и новым каталогами данных: " +"%m\n" +"В режиме \"ссылок\" старый и новый каталоги данных должны находиться в одной " +"файловой системе." -#: function.c:189 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "Проверка наличия требуемых библиотек" -#: function.c:242 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "загрузить библиотеку \"%s\" не удалось: %s" -#: function.c:253 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "В базе данных: %s\n" -#: function.c:263 +#: function.c:211 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" "new installation. You can add these libraries to the new installation,\n" "or remove the functions using them from the old installation. A list of\n" "problem libraries is in the file:\n" -" %s\n" -"\n" +" %s" msgstr "" "В вашей инсталляции есть ссылки на загружаемые библиотеки, отсутствующие\n" "в новой инсталляции. Вы можете добавить эти библиотеки в новую инсталляцию\n" "или удалить функции, использующие их, из старой. Список проблемных\n" "библиотек приведён в файле:\n" -" %s\n" -"\n" +" %s" -#: info.c:131 +#: info.c:128 #, c-format msgid "" -"Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s" -"\", new name \"%s.%s\"\n" +"Relation names for OID %u in database \"%s\" do not match: old name \"%s." +"%s\", new name \"%s.%s\"" msgstr "" "Имена отношения с OID %u в базе данных \"%s\" различаются: старое имя - \"%s." -"%s\", новое - \"%s.%s\"\n" +"%s\", новое - \"%s.%s\"" -#: info.c:151 +#: info.c:148 #, c-format -msgid "Failed to match up old and new tables in database \"%s\"\n" -msgstr "Не удалось сопоставить старые таблицы с новыми в базе данных \"%s\"\n" +msgid "Failed to match up old and new tables in database \"%s\"" +msgstr "Не удалось сопоставить старые таблицы с новыми в базе данных \"%s\"" -#: info.c:240 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " это индекс в \"%s.%s\"" -#: info.c:250 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " это индекс в отношении с OID %u" -#: info.c:262 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " это TOAST-таблица для \"%s.%s\"" -#: info.c:270 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " это TOAST-таблица для отношения с OID %u" -#: info.c:274 +#: info.c:263 #, c-format msgid "" -"No match found in old cluster for new relation with OID %u in database \"%s" -"\": %s\n" +"No match found in old cluster for new relation with OID %u in database " +"\"%s\": %s" msgstr "" "В старом кластере не нашлось соответствия для нового отношения с OID %u в " -"базе данных \"%s\": %s\n" +"базе данных \"%s\": %s" -#: info.c:277 +#: info.c:266 #, c-format msgid "" -"No match found in new cluster for old relation with OID %u in database \"%s" -"\": %s\n" +"No match found in new cluster for old relation with OID %u in database " +"\"%s\": %s" msgstr "" "В новом кластере не нашлось соответствия для старого отношения с OID %u в " -"базе данных \"%s\": %s\n" - -#: info.c:289 -#, c-format -msgid "mappings for database \"%s\":\n" -msgstr "отображения для базы данных \"%s\":\n" - -#: info.c:292 -#, c-format -msgid "%s.%s: %u to %u\n" -msgstr "%s.%s: %u в %u\n" +"базе данных \"%s\": %s" -#: info.c:297 info.c:633 +#: info.c:300 #, c-format msgid "" "\n" -"\n" +"source databases:" msgstr "" "\n" -"\n" +"исходные базы данных:" -#: info.c:322 +#: info.c:302 #, c-format msgid "" "\n" -"source databases:\n" +"target databases:" msgstr "" "\n" -"исходные базы данных:\n" +"целевые базы данных:" -#: info.c:324 +#: info.c:346 #, c-format -msgid "" -"\n" -"target databases:\n" -msgstr "" -"\n" -"целевые базы данных:\n" +msgid "template0 not found" +msgstr "база template0 не найдена" + +#: info.c:805 +#, c-format +msgid "Database: \"%s\"" +msgstr "База данных: \"%s\"" -#: info.c:631 +#: info.c:818 #, c-format -msgid "Database: %s\n" -msgstr "База данных: %s\n" +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "имя_отношения: \"%s.%s\", oid_отношения: %u, табл_пространство: %s\"" -#: info.c:644 +#: info.c:832 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s\n" -msgstr "имя_отношения: %s.%s: oid_отношения: %u табл_пространство: %s\n" +msgid "Logical replication slots in the database:" +msgstr "Слоты логической репликации в базе данных:" -#: option.c:102 +#: info.c:838 #, c-format -msgid "%s: cannot be run as root\n" -msgstr "%s: программу не должен запускать root\n" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "слот: \"%s\", модуль вывода: \"%s\", двухфазный: %s" -#: option.c:170 +#: option.c:105 #, c-format -msgid "invalid old port number\n" -msgstr "неверный старый номер порта\n" +msgid "%s: cannot be run as root" +msgstr "%s: программу не должен запускать root" -#: option.c:175 +#: option.c:172 #, c-format -msgid "invalid new port number\n" -msgstr "неверный новый номер порта\n" +msgid "invalid old port number" +msgstr "неверный старый номер порта" -#: option.c:207 +#: option.c:177 +#, c-format +msgid "invalid new port number" +msgstr "неверный новый номер порта" + +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Для дополнительной информации попробуйте \"%s --help\".\n" -#: option.c:214 +#: option.c:223 #, c-format -msgid "too many command-line arguments (first is \"%s\")\n" -msgstr "слишком много аргументов командной строки (первый: \"%s\")\n" +msgid "too many command-line arguments (first is \"%s\")" +msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: option.c:220 +#: option.c:229 #, c-format -msgid "Running in verbose mode\n" -msgstr "Программа запущена в режиме подробных сообщений\n" +msgid "Running in verbose mode" +msgstr "Программа запущена в режиме подробных сообщений" -#: option.c:251 +#: option.c:247 msgid "old cluster binaries reside" msgstr "расположение исполняемых файлов старого кластера" -#: option.c:253 +#: option.c:249 msgid "new cluster binaries reside" msgstr "расположение исполняемых файлов нового кластера" -#: option.c:255 +#: option.c:251 msgid "old cluster data resides" msgstr "расположение данных старого кластера" -#: option.c:257 +#: option.c:253 msgid "new cluster data resides" msgstr "расположение данных нового кластера" -#: option.c:259 +#: option.c:255 msgid "sockets will be created" msgstr "расположение сокетов" -#: option.c:276 option.c:374 +#: option.c:272 option.c:374 #, c-format -msgid "could not determine current directory\n" -msgstr "не удалось определить текущий каталог\n" +msgid "could not determine current directory" +msgstr "не удалось определить текущий каталог" -#: option.c:279 +#: option.c:275 #, c-format msgid "" -"cannot run pg_upgrade from inside the new cluster data directory on Windows\n" +"cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "" -"в Windows нельзя запустить pg_upgrade внутри каталога данных нового " -"кластера\n" +"в Windows нельзя запустить pg_upgrade внутри каталога данных нового кластера" -#: option.c:288 +#: option.c:284 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1294,12 +1501,12 @@ msgstr "" "pg_upgrade обновляет кластер PostgreSQL до другой основной версии.\n" "\n" -#: option.c:289 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: option.c:290 +#: option.c:286 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1308,18 +1515,18 @@ msgstr "" " pg_upgrade [ПАРАМЕТР]...\n" "\n" -#: option.c:291 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: option.c:292 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr "" " -b, --old-bindir=КАТ_BIN каталог исполняемых файлов старого кластера\n" -#: option.c:293 +#: option.c:289 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1328,7 +1535,7 @@ msgstr "" " -B, --new-bindir=КАТ_BIN каталог исполняемых файлов нового кластера\n" " (по умолчанию каталог программы pg_upgrade)\n" -#: option.c:295 +#: option.c:291 #, c-format msgid "" " -c, --check check clusters only, don't change any data\n" @@ -1336,17 +1543,17 @@ msgstr "" " -c, --check только проверить кластеры, не меняя никакие " "данные\n" -#: option.c:296 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" -msgstr " -d, --old-datadir=КАТ_DATA каталог данных старого кластера\n" +msgstr " -d, --old-datadir=КАТ_ДАННЫХ каталог данных старого кластера\n" -#: option.c:297 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" -msgstr " -D, --new-datadir=КАТ_DATA каталог данных нового кластера\n" +msgstr " -D, --new-datadir=КАТ_ДАННЫХ каталог данных нового кластера\n" -#: option.c:298 +#: option.c:294 #, c-format msgid "" " -j, --jobs=NUM number of simultaneous processes or threads " @@ -1356,7 +1563,7 @@ msgstr "" "или\n" " потоков\n" -#: option.c:299 +#: option.c:295 #, c-format msgid "" " -k, --link link instead of copying files to new " @@ -1366,7 +1573,16 @@ msgstr "" "файлов\n" " в новый кластер\n" -#: option.c:300 +#: option.c:296 +#, c-format +msgid "" +" -N, --no-sync do not wait for changes to be written safely " +"to disk\n" +msgstr "" +" -N, --no-sync не ждать завершения сохранения данных на " +"диске\n" + +#: option.c:297 #, c-format msgid "" " -o, --old-options=OPTIONS old cluster options to pass to the server\n" @@ -1374,7 +1590,7 @@ msgstr "" " -o, --old-options=ПАРАМЕТРЫ параметры старого кластера, передаваемые " "серверу\n" -#: option.c:301 +#: option.c:298 #, c-format msgid "" " -O, --new-options=OPTIONS new cluster options to pass to the server\n" @@ -1382,21 +1598,21 @@ msgstr "" " -O, --new-options=ПАРАМЕТРЫ параметры нового кластера, передаваемые " "серверу\n" -#: option.c:302 +#: option.c:299 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr "" " -p, --old-port=ПОРТ номер порта старого кластера (по умолчанию " "%d)\n" -#: option.c:303 +#: option.c:300 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr "" " -P, --new-port=ПОРТ номер порта нового кластера (по умолчанию " "%d)\n" -#: option.c:304 +#: option.c:301 #, c-format msgid "" " -r, --retain retain SQL and log files after success\n" @@ -1404,7 +1620,7 @@ msgstr "" " -r, --retain сохранить файлы журналов и SQL в случае " "успеха\n" -#: option.c:305 +#: option.c:302 #, c-format msgid "" " -s, --socketdir=DIR socket directory to use (default current " @@ -1412,27 +1628,27 @@ msgid "" msgstr "" " -s, --socketdir=КАТАЛОГ каталог сокетов (по умолчанию текущий)\n" -#: option.c:306 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr "" -" -U, --username=ИМЯ суперпользователь кластера (по умолчанию \"%s" -"\")\n" +" -U, --username=ИМЯ суперпользователь кластера (по умолчанию " +"\"%s\")\n" -#: option.c:307 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr "" " -v, --verbose включить вывод подробных внутренних " "сообщений\n" -#: option.c:308 +#: option.c:305 #, c-format msgid "" " -V, --version display version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: option.c:309 +#: option.c:306 #, c-format msgid "" " --clone clone instead of copying files to new " @@ -1441,6 +1657,27 @@ msgstr "" " --clone клонировать, а не копировать файлы в новый " "кластер\n" +#: option.c:307 +#, c-format +msgid " --copy copy files to new cluster (default)\n" +msgstr "" +" --copy копировать файлы в новый кластер (по " +"умолчанию)\n" + +#: option.c:308 +#, c-format +msgid "" +" --copy-file-range copy files to new cluster with " +"copy_file_range\n" +msgstr "" +" --copy-file-range копировать файлы в новый кластер, используя\n" +" функцию copy_file_range\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=МЕТОД метод синхронизации файлов с ФС\n" + #: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" @@ -1541,254 +1778,291 @@ msgstr "Домашняя страница %s: <%s>\n" #, c-format msgid "" "You must identify the directory where the %s.\n" -"Please use the %s command-line option or the %s environment variable.\n" +"Please use the %s command-line option or the %s environment variable." msgstr "" "Вы должны указать каталог, где находится %s.\n" "Воспользуйтесь для этого ключом командной строки %s или переменной окружения " -"%s.\n" +"%s." -#: option.c:432 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Поиск фактического каталога данных для исходного кластера" -#: option.c:434 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Поиск фактического каталога данных для целевого кластера" -#: option.c:446 +#: option.c:448 #, c-format -msgid "could not get data directory using %s: %s\n" -msgstr "не удалось получить каталог данных, выполнив %s: %s\n" +msgid "could not get data directory using %s: %m" +msgstr "не удалось получить каталог данных, выполнив %s: %m" -#: option.c:505 +#: option.c:452 #, c-format -msgid "could not read line %d from file \"%s\": %s\n" -msgstr "не удалось прочитать строку %d из файла \"%s\": %s\n" +msgid "could not get data directory using %s: %s" +msgstr "не удалось получить каталог данных, выполнив %s: %s" -#: option.c:522 +#: option.c:500 #, c-format -msgid "user-supplied old port number %hu corrected to %hu\n" -msgstr "заданный пользователем старый номер порта %hu изменён на %hu\n" +msgid "could not read line %d from file \"%s\": %m" +msgstr "не удалось прочитать строку %d из файла \"%s\": %m" -#: parallel.c:127 parallel.c:238 +#: option.c:517 #, c-format -msgid "could not create worker process: %s\n" -msgstr "не удалось создать рабочий процесс: %s\n" +msgid "user-supplied old port number %hu corrected to %hu" +msgstr "заданный пользователем старый номер порта %hu изменён на %hu" -#: parallel.c:146 parallel.c:259 +#: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker thread: %s\n" -msgstr "не удалось создать рабочий поток: %s\n" +msgid "could not create worker process: %m" +msgstr "не удалось создать рабочий процесс: %m" -#: parallel.c:300 +#: parallel.c:143 parallel.c:253 #, c-format -msgid "%s() failed: %s\n" -msgstr "ошибка в %s(): %s\n" +msgid "could not create worker thread: %m" +msgstr "не удалось создать рабочий поток: %m" -#: parallel.c:304 +#: parallel.c:294 #, c-format -msgid "child process exited abnormally: status %d\n" -msgstr "дочерний процесс завершился нештатно с ошибкой %d\n" +msgid "%s() failed: %m" +msgstr "ошибка в %s(): %m" -#: parallel.c:319 +#: parallel.c:298 #, c-format -msgid "child worker exited abnormally: %s\n" -msgstr "дочерний процесс завершился аварийно: %s\n" +msgid "child process exited abnormally: status %d" +msgstr "дочерний процесс завершился нештатно с ошибкой %d" -#: pg_upgrade.c:107 +#: parallel.c:313 #, c-format -msgid "could not read permissions of directory \"%s\": %s\n" -msgstr "не удалось считать права на каталог \"%s\": %s\n" +msgid "child worker exited abnormally: %m" +msgstr "дочерний процесс завершился аварийно: %m" -#: pg_upgrade.c:122 +#: pg_upgrade.c:115 +#, c-format +msgid "could not read permissions of directory \"%s\": %m" +msgstr "не удалось прочитать права на каталог \"%s\": %m" + +#: pg_upgrade.c:147 #, c-format msgid "" "\n" "Performing Upgrade\n" -"------------------\n" +"------------------" msgstr "" "\n" "Выполнение обновления\n" -"---------------------\n" +"---------------------" -#: pg_upgrade.c:165 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "Установка следующего OID для нового кластера" -#: pg_upgrade.c:172 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "Синхронизация каталога данных с ФС" -#: pg_upgrade.c:183 +#: pg_upgrade.c:230 #, c-format msgid "" "\n" "Upgrade Complete\n" -"----------------\n" +"----------------" msgstr "" "\n" "Обновление завершено\n" -"--------------------\n" +"--------------------" -#: pg_upgrade.c:216 +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 +#, c-format +msgid "directory path for new cluster is too long" +msgstr "путь к каталогу данных нового кластера слишком длинный" + +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "не удалось создать каталог \"%s\": %m" + +#: pg_upgrade.c:352 #, c-format -msgid "%s: could not find own program executable\n" -msgstr "%s: не удалось найти свой исполняемый файл\n" +msgid "%s: could not find own program executable" +msgstr "%s: не удалось найти свой исполняемый файл" -#: pg_upgrade.c:242 +#: pg_upgrade.c:378 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "" "Видимо, запущен процесс postmaster, обслуживающий старый кластер.\n" -"Остановите его и попробуйте ещё раз.\n" +"Остановите его и попробуйте ещё раз." -#: pg_upgrade.c:255 +#: pg_upgrade.c:391 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "" "Видимо, запущен процесс postmaster, обслуживающий новый кластер.\n" -"Остановите его и попробуйте ещё раз.\n" +"Остановите его и попробуйте ещё раз." -#: pg_upgrade.c:269 +#: pg_upgrade.c:413 +#, c-format +msgid "Setting locale and encoding for new cluster" +msgstr "Установка локали и кодировки для нового кластера" + +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Анализ всех строк в новом кластере" -#: pg_upgrade.c:282 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Замораживание всех строк в новом кластере" -#: pg_upgrade.c:302 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Восстановление глобальных объектов в новом кластере" -#: pg_upgrade.c:317 +#: pg_upgrade.c:538 #, c-format -msgid "Restoring database schemas in the new cluster\n" -msgstr "Восстановление схем баз данных в новом кластере\n" +msgid "Restoring database schemas in the new cluster" +msgstr "Восстановление схем баз данных в новом кластере" -#: pg_upgrade.c:421 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "Удаление файлов из нового каталога %s" -#: pg_upgrade.c:425 +#: pg_upgrade.c:666 #, c-format -msgid "could not delete directory \"%s\"\n" -msgstr "ошибка при удалении каталога \"%s\"\n" +msgid "could not delete directory \"%s\"" +msgstr "ошибка при удалении каталога \"%s\"" -#: pg_upgrade.c:444 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "Копирование старого каталога %s на новый сервер" -#: pg_upgrade.c:470 +#: pg_upgrade.c:711 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Установка старейшего OID для нового кластера" -#: pg_upgrade.c:478 +#: pg_upgrade.c:719 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "" "Установка следующего идентификатора транзакции и эпохи для нового кластера" -#: pg_upgrade.c:508 +#: pg_upgrade.c:749 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "" "Установка следующего идентификатора и смещения мультитранзакции для нового " "кластера" -#: pg_upgrade.c:532 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Установка старейшего идентификатора мультитранзакции в новом кластере" -#: pg_upgrade.c:552 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "Сброс архивов WAL" -#: pg_upgrade.c:595 +#: pg_upgrade.c:836 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Установка счётчиков frozenxid и minmxid в новом кластере" -#: pg_upgrade.c:597 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Установка счётчика minmxid в новом кластере" -#: relfilenode.c:35 +#: pg_upgrade.c:929 +#, c-format +msgid "Restoring logical replication slots in the new cluster" +msgstr "Восстановление слотов логической репликации в новом кластере" + +#: relfilenumber.c:35 #, c-format -msgid "Cloning user relation files\n" -msgstr "Клонирование файлов пользовательских отношений\n" +msgid "Cloning user relation files" +msgstr "Клонирование файлов пользовательских отношений" -#: relfilenode.c:38 +#: relfilenumber.c:38 #, c-format -msgid "Copying user relation files\n" -msgstr "Копирование файлов пользовательских отношений\n" +msgid "Copying user relation files" +msgstr "Копирование файлов пользовательских отношений" -#: relfilenode.c:41 +#: relfilenumber.c:41 #, c-format -msgid "Linking user relation files\n" -msgstr "Подключение файлов пользовательских отношений ссылками\n" +msgid "Copying user relation files with copy_file_range" +msgstr "" +"Копирование файлов пользовательских отношений с помощью copy_file_range" + +#: relfilenumber.c:44 +#, c-format +msgid "Linking user relation files" +msgstr "Подключение файлов пользовательских отношений ссылками" -#: relfilenode.c:115 +#: relfilenumber.c:118 #, c-format -msgid "old database \"%s\" not found in the new cluster\n" -msgstr "старая база данных \"%s\" не найдена в новом кластере\n" +msgid "old database \"%s\" not found in the new cluster" +msgstr "старая база данных \"%s\" не найдена в новом кластере" -#: relfilenode.c:230 +#: relfilenumber.c:221 #, c-format msgid "" -"error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s\n" +"error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" msgstr "" -"ошибка при проверке существования файла отношения \"%s.%s\" (перенос \"%s\" " -"в \"%s\"): %s\n" +"ошибка при проверке существования файла \"%s.%s\" (перенос \"%s\" в \"%s\"): " +"%m" + +#: relfilenumber.c:238 +#, c-format +msgid "rewriting \"%s\" to \"%s\"" +msgstr "переписывание \"%s\" в \"%s\"" -#: relfilenode.c:248 +#: relfilenumber.c:246 #, c-format -msgid "rewriting \"%s\" to \"%s\"\n" -msgstr "переписывание \"%s\" в \"%s\"\n" +msgid "cloning \"%s\" to \"%s\"" +msgstr "клонирование \"%s\" в \"%s\"" -#: relfilenode.c:256 +#: relfilenumber.c:251 #, c-format -msgid "cloning \"%s\" to \"%s\"\n" -msgstr "клонирование \"%s\" в \"%s\"\n" +msgid "copying \"%s\" to \"%s\"" +msgstr "копирование \"%s\" в \"%s\"" -#: relfilenode.c:261 +#: relfilenumber.c:256 #, c-format -msgid "copying \"%s\" to \"%s\"\n" -msgstr "копирование \"%s\" в \"%s\"\n" +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "копирование \"%s\" в \"%s\" с помощью copy_file_range" -#: relfilenode.c:266 +#: relfilenumber.c:261 #, c-format -msgid "linking \"%s\" to \"%s\"\n" -msgstr "создание ссылки на \"%s\" в \"%s\"\n" +msgid "linking \"%s\" to \"%s\"" +msgstr "создание ссылки на \"%s\" в \"%s\"" -#: server.c:38 server.c:142 util.c:135 util.c:165 +#: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" msgstr "Ошибка, выполняется выход\n" -#: server.c:132 +#: server.c:133 #, c-format -msgid "executing: %s\n" -msgstr "выполняется: %s\n" +msgid "executing: %s" +msgstr "выполняется: %s" -#: server.c:138 +#: server.c:139 #, c-format msgid "" "SQL command failed\n" @@ -1799,17 +2073,17 @@ msgstr "" "%s\n" "%s" -#: server.c:168 +#: server.c:169 #, c-format -msgid "could not open version file \"%s\": %m\n" -msgstr "не удалось открыть файл с версией \"%s\": %m\n" +msgid "could not open version file \"%s\": %m" +msgstr "не удалось открыть файл с версией \"%s\": %m" -#: server.c:172 +#: server.c:173 #, c-format -msgid "could not parse version file \"%s\"\n" -msgstr "не удалось разобрать файл с версией \"%s\"\n" +msgid "could not parse version file \"%s\"" +msgstr "не удалось разобрать файл с версией \"%s\"" -#: server.c:298 +#: server.c:310 #, c-format msgid "" "\n" @@ -1818,217 +2092,117 @@ msgstr "" "\n" "%s" -#: server.c:302 +#: server.c:314 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" -"%s\n" +"%s" msgstr "" "не удалось подключиться к главному процессу исходного сервера, запущенному " "командой:\n" -"%s\n" +"%s" -#: server.c:306 +#: server.c:318 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" -"%s\n" +"%s" msgstr "" "не удалось подключиться к главному процессу целевого сервера, запущенному " "командой:\n" -"%s\n" +"%s" -#: server.c:320 +#: server.c:332 #, c-format -msgid "pg_ctl failed to start the source server, or connection failed\n" +msgid "pg_ctl failed to start the source server, or connection failed" msgstr "" "программа pg_ctl не смогла запустить исходный сервер, либо к нему не удалось " -"подключиться\n" +"подключиться" -#: server.c:322 +#: server.c:334 #, c-format -msgid "pg_ctl failed to start the target server, or connection failed\n" +msgid "pg_ctl failed to start the target server, or connection failed" msgstr "" "программа pg_ctl не смогла запустить целевой сервер, либо к нему не удалось " -"подключиться\n" +"подключиться" -#: server.c:367 +#: server.c:379 #, c-format -msgid "out of memory\n" -msgstr "нехватка памяти\n" +msgid "out of memory" +msgstr "нехватка памяти" -#: server.c:380 +#: server.c:392 #, c-format -msgid "libpq environment variable %s has a non-local server value: %s\n" -msgstr "в переменной окружения для libpq %s задано не локальное значение: %s\n" +msgid "libpq environment variable %s has a non-local server value: %s" +msgstr "" +"в переменной окружения %s для libpq указан адрес не локального сервера: %s" #: tablespace.c:28 #, c-format msgid "" "Cannot upgrade to/from the same system catalog version when\n" -"using tablespaces.\n" +"using tablespaces." msgstr "" "Обновление в рамках одной версии системного каталога невозможно,\n" -"если используются табличные пространства.\n" +"если используются табличные пространства." -#: tablespace.c:86 +#: tablespace.c:83 #, c-format -msgid "tablespace directory \"%s\" does not exist\n" -msgstr "каталог табличного пространства \"%s\" не существует\n" +msgid "tablespace directory \"%s\" does not exist" +msgstr "каталог табличного пространства \"%s\" не существует" -#: tablespace.c:90 +#: tablespace.c:87 #, c-format -msgid "could not stat tablespace directory \"%s\": %s\n" +msgid "could not stat tablespace directory \"%s\": %m" msgstr "" -"не удалось получить информацию о каталоге табличного пространства \"%s\": " -"%s\n" - -#: tablespace.c:95 -#, c-format -msgid "tablespace path \"%s\" is not a directory\n" -msgstr "путь табличного пространства \"%s\" не указывает на каталог\n" +"не удалось получить информацию о каталоге табличного пространства \"%s\": %m" -#: util.c:49 +#: tablespace.c:92 #, c-format -msgid " " -msgstr " " +msgid "tablespace path \"%s\" is not a directory" +msgstr "путь табличного пространства \"%s\" не указывает на каталог" -#: util.c:82 +#: util.c:53 util.c:56 util.c:139 util.c:170 util.c:172 #, c-format msgid "%-*s" msgstr "%-*s" -#: util.c:174 +#: util.c:107 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" + +#: util.c:287 #, c-format msgid "ok" msgstr "ок" -#: version.c:29 +#: version.c:44 #, c-format -msgid "Checking for large objects" -msgstr "Проверка больших объектов" +msgid "Checking for hash indexes" +msgstr "Проверка хеш-индексов" -#: version.c:77 version.c:419 +#: version.c:121 #, c-format msgid "warning" msgstr "предупреждение" -#: version.c:79 -#, c-format -msgid "" -"\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table. After upgrading, you will be\n" -"given a command to populate the pg_largeobject_metadata table with\n" -"default permissions.\n" -"\n" -msgstr "" -"\n" -"В вашей инсталляции используются большие объекты. В новой базе данных\n" -"имеется дополнительная таблица с правами для больших объектов. После " -"обновления\n" -"вам будет представлена команда для наполнения таблицы прав\n" -"pg_largeobject_metadata правами по умолчанию.\n" -"\n" - -#: version.c:85 -#, c-format -msgid "" -"\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table, so default permissions must be\n" -"defined for all large objects. The file\n" -" %s\n" -"when executed by psql by the database superuser will set the default\n" -"permissions.\n" -"\n" -msgstr "" -"\n" -"В вашей инсталляции используются большие объекты. В новой базе данных\n" -"имеется дополнительная таблица с правами для больших объектов, поэтому\n" -"для всех больших объектов должны определяться права по умолчанию. Скрипт\n" -" %s\n" -"будучи выполненным администратором БД в psql, установит нужные права\n" -"по умолчанию.\n" -"\n" - -#: version.c:272 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "Проверка несовместимого типа данных \"line\"" - -#: version.c:279 -#, c-format -msgid "" -"Your installation contains the \"line\" data type in user tables.\n" -"This data type changed its internal and input/output format\n" -"between your old and new versions so this\n" -"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 "" -"В вашей инсталляции пользовательские таблицы используют тип данных \"line" -"\".\n" -"В старом кластере внутренний формат и формат ввода/вывода этого типа " -"отличается\n" -"от нового, поэтому в настоящем состоянии обновить кластер невозможно. Вы " -"можете\n" -"удалить проблемные столбцы и перезапустить обновление. Список проблемных\n" -"столбцов приведён в файле:\n" -" %s\n" -"\n" - -#: version.c:310 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "Проверка неправильных пользовательских столбцов типа \"unknown\"" - -#: version.c:317 -#, c-format -msgid "" -"Your installation contains the \"unknown\" data type in user tables.\n" -"This data type is no longer allowed in tables, so this\n" -"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 "" -"В вашей инсталляции пользовательские таблицы используют тип данных \"unknown" -"\".\n" -"Теперь использование этого типа данных в таблицах не допускается, поэтому\n" -"в настоящем состоянии обновить кластер невозможно. Вы можете удалить " -"проблемные\n" -"столбцы и перезапустить обновление. Список проблемных столбцов приведён в " -"файле:\n" -" %s\n" -"\n" - -#: version.c:341 -#, c-format -msgid "Checking for hash indexes" -msgstr "Проверка хеш-индексов" - -#: version.c:421 +#: version.c:123 #, c-format msgid "" "\n" "Your installation contains hash indexes. These indexes have different\n" "internal formats between your old and new clusters, so they must be\n" "reindexed with the REINDEX command. After upgrading, you will be given\n" -"REINDEX instructions.\n" -"\n" +"REINDEX instructions." msgstr "" "\n" "В вашей инсталляции используются хеш-индексы. Эти индексы имеют разные\n" "внутренние форматы в старом и новом кластерах, поэтому их необходимо\n" "перестроить с помощью команды REINDEX. По завершении обновления вы получите\n" -"инструкции по выполнению REINDEX.\n" -"\n" +"инструкции по выполнению REINDEX." -#: version.c:427 +#: version.c:129 #, c-format msgid "" "\n" @@ -2037,8 +2211,7 @@ msgid "" "reindexed with the REINDEX command. The file\n" " %s\n" "when executed by psql by the database superuser will recreate all invalid\n" -"indexes; until then, none of these indexes will be used.\n" -"\n" +"indexes; until then, none of these indexes will be used." msgstr "" "\n" "В вашей инсталляции используются хеш-индексы. Эти индексы имеют разные\n" @@ -2046,45 +2219,19 @@ msgstr "" "перестроить с помощью команды REINDEX. Скрипт\n" " %s\n" "будучи выполненным администратором БД в psql, пересоздаст все неправильные\n" -"индексы; до этого никакие хеш-индексы не будут использоваться.\n" -"\n" - -#: version.c:453 -#, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "" -"Проверка неправильных пользовательских столбцов типа \"sql_identifier\"" - -#: version.c:461 -#, c-format -msgid "" -"Your installation contains the \"sql_identifier\" data type in user tables.\n" -"The on-disk format for this data type has changed, so this\n" -"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" -"\"sql_identifier\". Формат хранения таких данных на диске поменялся,\n" -"поэтому обновить данный кластер невозможно. Вы можете удалить проблемные\n" -"столбцы и перезапустить обновление.\n" -"Список проблемных столбцов приведён в файле:\n" -" %s\n" -"\n" +"индексы; до этого никакие хеш-индексы не будут использоваться." -#: version.c:485 +#: version.c:153 #, c-format msgid "Checking for extension updates" msgstr "Проверка обновлённых расширений" -#: version.c:537 +#: version.c:200 #, c-format msgid "notice" msgstr "замечание" -#: version.c:538 +#: version.c:201 #, c-format msgid "" "\n" @@ -2092,16 +2239,210 @@ msgid "" "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" +"these extensions." msgstr "" "\n" "В вашей инсталляции есть расширения, которые надо обновить\n" "командой ALTER EXTENSION. Скрипт\n" " %s\n" "будучи выполненным администратором БД в psql, обновит все\n" -"эти расширения.\n" -"\n" +"эти расширения." + +#, c-format +#~ msgid "Checking for incompatible \"jsonb\" data type" +#~ msgstr "Проверка несовместимого типа данных \"jsonb\"" + +#, c-format +#~ msgid "" +#~ "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" +#~ msgstr "" +#~ "кодировки в базе данных \"%s\" различаются: старая - \"%s\", новая - " +#~ "\"%s\"\n" + +#, c-format +#~ msgid "" +#~ "lc_collate values for database \"%s\" do not match: old \"%s\", new " +#~ "\"%s\"\n" +#~ msgstr "" +#~ "значения lc_collate в базе данных \"%s\" различаются: старое - \"%s\", " +#~ "новое - \"%s\"\n" + +#, c-format +#~ msgid "" +#~ "lc_ctype values for database \"%s\" do not match: old \"%s\", new " +#~ "\"%s\"\n" +#~ msgstr "" +#~ "значения lc_ctype в базе данных \"%s\" различаются: старое - \"%s\", " +#~ "новое - \"%s\"\n" + +#, c-format +#~ msgid "" +#~ "locale providers for database \"%s\" do not match: old \"%s\", new " +#~ "\"%s\"\n" +#~ msgstr "" +#~ "провайдеры локали в базе данных \"%s\" различаются: старый - \"%s\", " +#~ "новый - \"%s\"\n" + +#, c-format +#~ msgid "" +#~ "ICU locale values for database \"%s\" do not match: old \"%s\", new " +#~ "\"%s\"\n" +#~ msgstr "" +#~ "значения локали ICU для базы данных \"%s\" различаются: старое - \"%s\", " +#~ "новое - \"%s\"\n" + +#, c-format +#~ msgid "The source cluster contains roles starting with \"pg_\"\n" +#~ msgstr "В исходном кластере есть роли, имена которых начинаются с \"pg_\"\n" + +#, c-format +#~ msgid "The target cluster contains roles starting with \"pg_\"\n" +#~ msgstr "В целевом кластере есть роли, имена которых начинаются с \"pg_\"\n" + +#, c-format +#~ msgid "failed to get the current locale\n" +#~ msgstr "не удалось получить текущую локаль\n" + +#, c-format +#~ msgid "failed to get system locale name for \"%s\"\n" +#~ msgstr "не удалось получить системное имя локали для \"%s\"\n" + +#, c-format +#~ msgid "failed to restore old locale \"%s\"\n" +#~ msgstr "не удалось восстановить старую локаль \"%s\"\n" + +#, c-format +#~ msgid "Unable to rename %s to %s.\n" +#~ msgstr "Не удалось переименовать %s в %s.\n" + +#, c-format +#~ msgid "%s\n" +#~ msgstr "%s\n" + +#, c-format +#~ msgid "check for \"%s\" failed: not a regular file\n" +#~ msgstr "программа \"%s\" не прошла проверку: это не обычный файл\n" + +#, c-format +#~ msgid "check for \"%s\" failed: cannot execute (permission denied)\n" +#~ msgstr "" +#~ "программа \"%s\" не прошла проверку: ошибка выполнения (нет доступа)\n" + +#, c-format +#~ msgid "" +#~ "\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "\n" + +#, c-format +#~ msgid "%-*s\n" +#~ msgstr "%-*s\n" + +#~ msgid "" +#~ "When checking a pre-PG 9.1 live old server, you must specify the old " +#~ "server's port number.\n" +#~ msgstr "" +#~ "Для проверки старого работающего сервера версии до 9.1 необходимо указать " +#~ "номер порта этого сервера.\n" + +#~ msgid "" +#~ "All non-template0 databases must allow connections, i.e. their " +#~ "pg_database.datallowconn must be true\n" +#~ msgstr "" +#~ "Все базы, кроме template0, должны допускать подключения, то есть их " +#~ "свойство pg_database.datallowconn должно быть true\n" + +#~ msgid "" +#~ "\n" +#~ "The old cluster has a \"plpython_call_handler\" function defined\n" +#~ "in the \"public\" schema which is a duplicate of the one defined\n" +#~ "in the \"pg_catalog\" schema. You can confirm this by executing\n" +#~ "in psql:\n" +#~ "\n" +#~ " \\df *.plpython_call_handler\n" +#~ "\n" +#~ "The \"public\" schema version of this function was created by a\n" +#~ "pre-8.1 install of plpython, and must be removed for pg_upgrade\n" +#~ "to complete because it references a now-obsolete \"plpython\"\n" +#~ "shared object file. You can remove the \"public\" schema version\n" +#~ "of this function by running the following command:\n" +#~ "\n" +#~ " DROP FUNCTION public.plpython_call_handler()\n" +#~ "\n" +#~ "in each affected database:\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "В старом кластере имеется функция \"plpython_call_handler\",\n" +#~ "определённая в схеме \"public\", представляющая собой копию функции,\n" +#~ "определённой в схеме \"pg_catalog\". Вы можете убедиться в этом,\n" +#~ "выполнив в psql:\n" +#~ "\n" +#~ " \\df *.plpython_call_handler\n" +#~ "\n" +#~ "Версия этой функции в схеме \"public\" была создана инсталляцией\n" +#~ "plpython версии до 8.1 и должна быть удалена для завершения процедуры\n" +#~ "pg_upgrade, так как она ссылается на ставший устаревшим\n" +#~ "разделяемый объектный файл \"plpython\". Вы можете удалить версию этой " +#~ "функции\n" +#~ "из схемы \"public\", выполнив следующую команду:\n" +#~ "\n" +#~ " DROP FUNCTION public.plpython_call_handler()\n" +#~ "\n" +#~ "в каждой затронутой базе данных:\n" +#~ "\n" + +#~ msgid " %s\n" +#~ msgstr " %s\n" + +#~ msgid "Remove the problem functions from the old cluster to continue.\n" +#~ msgstr "Удалите проблемные функции из старого кластера для продолжения.\n" + +#~ msgid "mappings for database \"%s\":\n" +#~ msgstr "отображения для базы данных \"%s\":\n" + +#~ msgid "%s.%s: %u to %u\n" +#~ msgstr "%s.%s: %u в %u\n" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "" +#~ "\n" +#~ "Your installation contains large objects. The new database has an\n" +#~ "additional large object permission table. After upgrading, you will be\n" +#~ "given a command to populate the pg_largeobject_metadata table with\n" +#~ "default permissions.\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "В вашей инсталляции используются большие объекты. В новой базе данных\n" +#~ "имеется дополнительная таблица с правами для больших объектов. После " +#~ "обновления\n" +#~ "вам будет представлена команда для наполнения таблицы прав\n" +#~ "pg_largeobject_metadata правами по умолчанию.\n" +#~ "\n" + +#~ msgid "" +#~ "\n" +#~ "Your installation contains large objects. The new database has an\n" +#~ "additional large object permission table, so default permissions must be\n" +#~ "defined for all large objects. The file\n" +#~ " %s\n" +#~ "when executed by psql by the database superuser will set the default\n" +#~ "permissions.\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "В вашей инсталляции используются большие объекты. В новой базе данных\n" +#~ "имеется дополнительная таблица с правами для больших объектов, поэтому\n" +#~ "для всех больших объектов должны определяться права по умолчанию. Скрипт\n" +#~ " %s\n" +#~ "будучи выполненным администратором БД в psql, установит нужные права\n" +#~ "по умолчанию.\n" +#~ "\n" #~ msgid "Creating script to analyze new cluster" #~ msgstr "Создание скрипта для анализа нового кластера" diff --git a/src/bin/pg_upgrade/po/sv.po b/src/bin/pg_upgrade/po/sv.po index c8dbe9e9d9078..51ad41bff555c 100644 --- a/src/bin/pg_upgrade/po/sv.po +++ b/src/bin/pg_upgrade/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-02 03:18+0000\n" -"PO-Revision-Date: 2023-08-02 12:02+0200\n" +"POT-Creation-Date: 2025-02-12 13:50+0000\n" +"PO-Revision-Date: 2025-02-12 20:38+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,7 +17,239 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: check.c:69 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" + +#: ../../common/username.c:43 +#, c-format +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 +msgid "user does not exist" +msgstr "användaren finns inte" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "misslyckad sökning efter användarnamn: felkod %lu" + +#: ../../fe_utils/string_utils.c:608 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:781 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "Letar i användartabeller efter systemdefinierade typer av sorten \"composite\"" + +#: check.c:118 +msgid "" +"Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\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" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "Letar efter inkompatibel \"line\"-datatyp" + +#: check.c:137 +msgid "" +"Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"line\" i användartabeller. Denna\n" +"datatype har ändrat sitt interna format samt sitt in/ut-format mellan din\n" +"gamla och nya version så detta kluster kan för närvarande inte uppgraderas.\n" +"Du kan radera problemkolumnerna och återstarta uppgraderingen.\n" + +# FIXME: is this msgid correct? +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "Letar efter reg*-datatyper i användartabeller" + +#: check.c:181 +msgid "" +"Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "" +"Din installation använder en av reg*-datatyperna i en användartabell.\n" +"Dessa datatyper refererar system-OID:er som inte bevaras av pg_upgrade\n" +"så detta kluster kan för närvarande inte uppgraderas. Du kan ta bort\n" +"problemkolumnerna och starta om uppgraderingen.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "Letar efter inkompatibel datatype \"aclitem\"" + +#: check.c:198 +msgid "" +"Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"aclitem\" i användartabeller.\n" +"Interna formatet för \"aclitem\" ändrades i PostgreSQL 16 så detta kluster\n" +"kan för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna\n" +"och starta om uppgraderingen.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "Letar efter ogiltiga användarkolumner av typen \"unknown\"" + +#: check.c:222 +msgid "" +"Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"unknown\" i användartabeller.\n" +"Denna datatyp tillåts inte längre i tabeller så detta kluster kan\n" +"för närvarande inte uppgraderas. Du kan radera problemkolumnerna och\n" +"återstarta uppgraderingen.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "Letar efter ogiltiga användarkolumner av typen \"sql_identifier\"" + +#: check.c:244 +msgid "" +"Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"sql_identifier\" i användartabeller.\n" +"Formatet på disk för denna datatyp har ändrats så detta kluster kan för\n" +"närvarande inte uppgraderas. Du kan radera problemkolumnerna och\n" +"återstarta uppgraderingen.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "Letar efter inkompatibel datatyp \"jsonb\"-datatyp i användartabeller" + +#: check.c:260 +msgid "" +"Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"jsonb\" i användartabeller.\n" +"Interna formatet för \"jsonb\" ändrades under 9.4-betan så detta kluster kan\n" +"för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna och\n" +"starta om uppgraderingen.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "Letar efter borttagen datatype \"abstime\" i användartabeller" + +#: check.c:277 +msgid "" +"Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"abstime\" i användartabeller.\n" +"Datatypen \"abstime\" togs bort i PostgreSQL version 12 så detta kluster\n" +"kan för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna\n" +"eller ändra dem till en annan datatype och starta om uppgraderingen.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "Letar efter borttagen datatype \"reltime\" i användartabeller" + +#: check.c:290 +msgid "" +"Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"reltime\" i användartabeller.\n" +"Datatypen \"reltime\" togs bort i PostgreSQL version 12 så detta kluster\n" +"kan för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna\n" +"eller ändra dem till en annan datatype och starta om uppgraderingen.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "Letar efter borttagen datatype \"tinterval\" i användartabeller" + +#: check.c:303 +msgid "" +"Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "" +"Din installation innehåller datatypen \"tinterval\" i användartabeller.\n" +"Datatypen \"tinterval\" togs bort i PostgreSQL version 12 så detta kluster\n" +"kan för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna\n" +"eller ändra dem till en annan datatype och starta om uppgraderingen.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "Letar efter användning av datatyp" + +#: check.c:480 +#, c-format +msgid "failed check: %s" +msgstr "misslyckad kontroll: %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "En lista med problemkolumner finns i filen:" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "Kontroll av datatyper misslyckades: %s" + +#: check.c:563 #, c-format msgid "" "Performing Consistency Checks on Old Live Server\n" @@ -26,7 +258,7 @@ msgstr "" "Utför konsistenskontroller på gamla live-servern\n" "------------------------------------------------" -#: check.c:75 +#: check.c:569 #, c-format msgid "" "Performing Consistency Checks\n" @@ -35,14 +267,16 @@ msgstr "" "Utför konsistenskontroller\n" "--------------------------" -#: check.c:221 +#: check.c:718 #, c-format msgid "" "\n" "*Clusters are compatible*" -msgstr "\n*Klustren är kompatibla*" +msgstr "" +"\n" +"*Klustren är kompatibla*" -#: check.c:229 +#: check.c:726 #, c-format msgid "" "\n" @@ -53,7 +287,7 @@ msgstr "" "Om pg_upgrade misslyckas efter denna punkt så måste du\n" "köra om initdb på nya klustret innan du fortsätter." -#: check.c:270 +#: check.c:767 #, c-format msgid "" "Optimizer statistics are not transferred by pg_upgrade.\n" @@ -64,7 +298,7 @@ msgstr "" "När du startar nya servern så vill du nog köra:\n" " %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:276 +#: check.c:773 #, c-format msgid "" "Running this script will delete the old cluster's data files:\n" @@ -73,7 +307,7 @@ msgstr "" "När detta skript körs så raderas gamla klustrets datafiler:\n" " %s" -#: check.c:281 +#: check.c:778 #, c-format msgid "" "Could not create a script to delete the old cluster's data files\n" @@ -86,125 +320,121 @@ msgstr "" "ligger i gamla klusterkatalogen. Det gamla klustrets innehåll\n" "måste raderas för hand." -#: check.c:293 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "Kontrollerar klustrets versioner" -#: check.c:305 +#: check.c:802 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later." msgstr "Detta verktyg kan bara uppgradera från PostgreSQL version %s eller senare." -#: check.c:310 +#: check.c:807 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s." msgstr "Detta verktyg kan bara uppgradera till PostgreSQL version %s." -#: check.c:319 +#: check.c:816 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." msgstr "Detta verktyg kan inte användas för att nergradera till äldre major-versioner av PostgreSQL." -#: check.c:324 +#: check.c:821 #, c-format msgid "Old cluster data and binary directories are from different major versions." msgstr "Gammal klusterdata och binära kataloger är från olika major-versioner." -#: check.c:327 +#: check.c:824 #, c-format msgid "New cluster data and binary directories are from different major versions." msgstr "Nya klusterdata och binära kataloger är från olika major-versioner." -#: check.c:342 +#: check.c:839 #, c-format msgid "When checking a live server, the old and new port numbers must be different." msgstr "Vid kontroll av en live-server så måste gamla och nya portnumren vara olika." -#: check.c:362 +#: check.c:859 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" msgstr "Nya databasklustret \"%s\" är inte tomt: hittade relation \"%s.%s\"" -#: check.c:385 +#: check.c:882 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Letar efter nya tablespace-kataloger i klustret" -#: check.c:396 +#: check.c:893 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"" msgstr "i klustret finns redan ny tablespace-katalog: \"%s\"" -#: check.c:429 +#: check.c:926 #, c-format msgid "" "\n" "WARNING: new data directory should not be inside the old data directory, i.e. %s" -msgstr "\nVARNING: nya datakatalogen skall inte ligga inuti den gamla datakatalogen, dvs. %s" +msgstr "" +"\n" +"VARNING: nya datakatalogen skall inte ligga inuti den gamla datakatalogen, dvs. %s" -#: check.c:453 +#: check.c:950 #, c-format msgid "" "\n" "WARNING: user-defined tablespace locations should not be inside the data directory, i.e. %s" -msgstr "\nVARNING: användardefinierade tabellutrymmens plats skall inte vara i datakatalogen, dvs. %s" +msgstr "" +"\n" +"VARNING: användardefinierade tabellutrymmens plats skall inte vara i datakatalogen, dvs. %s" -#: check.c:463 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "Skapar skript för att radera gamla klustret" -#: check.c:466 check.c:639 check.c:755 check.c:850 check.c:979 check.c:1056 -#: check.c:1299 check.c:1373 file.c:339 function.c:163 option.c:476 -#: version.c:116 version.c:292 version.c:426 -#, c-format -msgid "could not open file \"%s\": %s" -msgstr "kunde inte öppna fil \"%s\": %s" - -#: check.c:517 +#: check.c:1014 #, c-format -msgid "could not add execute permission to file \"%s\": %s" -msgstr "kan inte sätta rättigheten \"körbar\" på filen \"%s\": %s" +msgid "could not add execute permission to file \"%s\": %m" +msgstr "kunde inte lägga till rättigheten \"körbar\" på filen \"%s\": %m" -#: check.c:537 +#: check.c:1034 #, c-format msgid "Checking database user is the install user" msgstr "Kontrollerar att databasanvändaren är installationsanvändaren" -#: check.c:553 +#: check.c:1050 #, c-format msgid "database user \"%s\" is not the install user" msgstr "databasanvändare \"%s\" är inte installationsanvändaren" -#: check.c:564 +#: check.c:1061 #, c-format msgid "could not determine the number of users" msgstr "kunde inte bestämma antalet användare" -#: check.c:572 +#: check.c:1069 #, c-format msgid "Only the install user can be defined in the new cluster." msgstr "Bara installationsanvändaren får finnas i nya klustret." -#: check.c:601 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "Kontrollerar databasens anslutningsinställningar" -#: check.c:627 +#: check.c:1124 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" msgstr "template0 får inte tillåta anslutningar, dvs dess pg_database.datallowconn måste vara false" -#: check.c:654 check.c:775 check.c:873 check.c:999 check.c:1076 check.c:1135 -#: check.c:1196 check.c:1224 check.c:1254 check.c:1313 check.c:1394 -#: function.c:185 version.c:192 version.c:232 version.c:378 +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 #, c-format msgid "fatal" msgstr "fatalt" -#: check.c:655 +#: check.c:1151 #, c-format msgid "" "All non-template0 databases must allow connections, i.e. their\n" @@ -223,27 +453,27 @@ msgstr "" "problemdatabaser finns i filen:\n" " %s" -#: check.c:680 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "Letar efter förberedda transaktioner" -#: check.c:689 +#: check.c:1185 #, c-format msgid "The source cluster contains prepared transactions" msgstr "Källklustret innehåller förberedda transaktioner" -#: check.c:691 +#: check.c:1187 #, c-format msgid "The target cluster contains prepared transactions" msgstr "Målklustret innehåller förberedda transaktioner" -#: check.c:716 +#: check.c:1212 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Letar efter contrib/isn med bigint-anropsfel" -#: check.c:776 +#: check.c:1271 #, c-format msgid "" "Your installation contains \"contrib/isn\" functions which rely on the\n" @@ -262,12 +492,12 @@ msgstr "" "En lista med problemfunktionerna finns i filen:\n" " %s" -#: check.c:798 +#: check.c:1293 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Letar efter användardefinierade postfix-operatorer" -#: check.c:874 +#: check.c:1368 #, c-format msgid "" "Your installation contains user-defined postfix operators, which are not\n" @@ -282,12 +512,12 @@ msgstr "" "En lista med användardefinierade postfix-operatorer finns i filen:\n" " %s" -#: check.c:898 +#: check.c:1392 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Letar efter inkompatibla polymorfa funktioner" -#: check.c:1000 +#: check.c:1493 #, c-format msgid "" "Your installation contains user-defined objects that refer to internal\n" @@ -308,12 +538,12 @@ msgstr "" "En lista med problemobjekten finns i filen:\n" " %s" -#: check.c:1024 +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Letar efter tabeller med WITH OIDS" -#: check.c:1077 +#: check.c:1569 #, c-format msgid "" "Your installation contains tables declared WITH OIDS, which is not\n" @@ -328,146 +558,134 @@ msgstr "" "En lista över tabeller med detta problem finns i filen:\n" " %s" -# FIXME: is this msgid correct? -#: check.c:1105 +#: check.c:1596 #, c-format -msgid "Checking for system-defined composite types in user tables" -msgstr "Letar i användartabeller efter systemdefinierade typer av sorten \"composite\"" +msgid "Checking for roles starting with \"pg_\"" +msgstr "Letar efter roller som startar med \"pg_\"" -#: check.c:1136 +#: check.c:1627 #, 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" +"Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" " %s" 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" +"Din installation innehåller roller som startar på \"pg_\".\n" +"\"pg_\" är ett reserverat prefix för systemroller. Klustret\n" +"kan inte uppgraderas innan dessa roller har bytt namn.\n" +"En lista med rollerna som startar på \"pg_\" finns i denna fil:\n" " %s" -# FIXME: is this msgid correct? -#: check.c:1164 +#: check.c:1647 #, c-format -msgid "Checking for reg* data types in user tables" -msgstr "Letar efter reg*-datatyper i användartabeller" +msgid "Checking for user-defined encoding conversions" +msgstr "Letar efter användardefinierade teckenkodkonverteringar" -#: check.c:1197 +#: check.c:1707 #, c-format msgid "" -"Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, 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" +"Your installation contains user-defined encoding conversions.\n" +"The conversion function parameters changed in PostgreSQL version 14\n" +"so this cluster cannot currently be upgraded. You can remove the\n" +"encoding conversions in the old cluster and restart the upgrade.\n" +"A list of user-defined encoding conversions is in the file:\n" " %s" msgstr "" -"Din installation använder en av reg*-datatyperna i en användartabell.\n" -"Dessa datatyper refererar system-OID:er som inte bevaras av pg_upgrade\n" -"så detta kluster kan för närvarande inte uppgraderas. Du kan ta bort\n" -"problemkolumnerna och starta om uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" +"Din installation innehåller användardefinierade teckenkodkonverteringar.\n" +"Parametrar till konverteringsfunktioner ändrades i PostgreSQL 14 så\n" +"detta kluster kan för närvarande inte uppgraderas. Du kan ta bort\n" +"teckenkodkonverteringarna i gamla klustret och starta om uppgraderingen.\n" +"En lista med användardefinierade teckenkodkonverteringar finns i filen:\n" " %s" -# FIXME: is this msgid correct? -#: check.c:1218 +#: check.c:1746 #, c-format -msgid "Checking for incompatible \"aclitem\" data type in user tables" -msgstr "Letar efter inkompatibel \"aclitem\"-datatyp i användartabeller" +msgid "Checking for new cluster logical replication slots" +msgstr "Letar efter replikeringsslottar i nya klustret" -#: check.c:1225 +#: check.c:1754 #, c-format -msgid "" -"Your installation contains the \"aclitem\" data type in user tables.\n" -"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" -"so this cluster cannot currently be upgraded. You can drop the\n" -"problem columns and restart the upgrade. A list of the problem\n" -"columns is in the file:\n" -" %s" -msgstr "" -"Din installation innehåller \"aclitem\"-datatypen i användartabeller.\n" -"Interna formatet för \"aclitem\" ändrades i PostgreSQL 16 så detta kluster\n" -"kan för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna\n" -"och starta om uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" -" %s" +msgid "could not count the number of logical replication slots" +msgstr "kunde inte räkna antalet logiska replikeringsslottar" -# FIXME: is this msgid correct? -#: check.c:1246 +#: check.c:1759 #, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "Letar efter inkompatibel \"jsonb\"-datatyp" +msgid "expected 0 logical replication slots but found %d" +msgstr "förväntade 0 logiska replikeringsslottar men hittade %d." -#: check.c:1255 +#: check.c:1769 check.c:1820 #, c-format -msgid "" -"Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"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" -msgstr "" -"Din installation innehåller \"jsonb\"-datatypen i användartabeller.\n" -"Interna formatet för \"jsonb\" ändrades under 9.4-betan så detta kluster kan\n" -"för närvarande inte uppgraderas. Du kan ta bort problemkolumnerna och\n" -"starta om uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" -" %s" +msgid "could not determine parameter settings on new cluster" +msgstr "kunde inte plocka fram inställningar i det nya klustret" -#: check.c:1282 +#: check.c:1774 #, c-format -msgid "Checking for roles starting with \"pg_\"" -msgstr "Letar efter roller som startar med \"pg_\"" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "\"wal_level\" måste vara satt till \"logical\" men är satt som \"%s\"" + +#: check.c:1780 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" +msgstr "\"max_replication_slots\" (%d) måste vara större än eller lika med antalet logiska replikeringsslottar (%d) i gamla klustret" + +#: check.c:1812 +#, c-format +msgid "Checking for new cluster configuration for subscriptions" +msgstr "Letar efter konfiguration för prenumerationer i nya klustret" -#: check.c:1314 +#: check.c:1824 +#, c-format +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "\"max_replication_slots\" (%d) måste vara större än eller lika med antaler prenumerationer (%d) i gamla klustret" + +#: check.c:1846 +#, c-format +msgid "Checking for valid logical replication slots" +msgstr "Letar efter giltiga logiska replikeringsslottar" + +#: check.c:1898 #, c-format msgid "" -"Your installation contains roles starting with \"pg_\".\n" -"\"pg_\" is a reserved prefix for system roles. The cluster\n" -"cannot be upgraded until these roles are renamed.\n" -"A list of roles starting with \"pg_\" is in the file:\n" +"Your installation contains logical replication slots that cannot be upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" " %s" msgstr "" -"Din installation innehåller roller som startar på \"pg_\".\n" -"\"pg_\" är ett reserverat prefix för systemroller. Klustret\n" -"kan inte uppgraderas innan dessa roller har bytt namn.\n" -"En lista med rollerna som startar på \"pg_\" finns i denna fil:\n" +"Din installation innehåller logiska replikeringsslottar som inte\n" +"kan uppgraderas. Du kan ta bort ogiltiga slottar och/eller konsumera\n" +"köad WAL för andra slottar och sedan återstarta uppgraderingen.\n" +"En lista med problemkolumner finns i filen:\n" " %s" -#: check.c:1334 +#: check.c:1922 #, c-format -msgid "Checking for user-defined encoding conversions" -msgstr "Letar efter användardefinierade teckenkodkonverteringar" +msgid "Checking for subscription state" +msgstr "Kontrollerar läget för prenumerationer" -#: check.c:1395 +#: check.c:2023 #, c-format msgid "" -"Your installation contains user-defined encoding conversions.\n" -"The conversion function parameters changed in PostgreSQL version 14\n" -"so this cluster cannot currently be upgraded. You can remove the\n" -"encoding conversions in the old cluster and restart the upgrade.\n" -"A list of user-defined encoding conversions is in the file:\n" +"Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" " %s" msgstr "" -"Din installation innehåller användardefinierade teckenkodkonverteringar.\n" -"Parametrar till konverteringsfunktioner ändrades i PostgreSQL 14 så\n" -"detta kluster kan för närvarande inte uppgraderas. Du kan ta bort\n" -"teckenkodkonverteringarna i gamla klustret och starta om uppgraderingen.\n" -"En lista med användardefinierade teckenkodkonverteringar finns i filen:\n" +"Din installation innehåller prenumerationer utan origin eller har\n" +"relationer som inte är i läget i (initialize) eller r (ready).\n" +"Du kan låta den initiala synken gå klart för alla relationer och\n" +"sedan återuppta uppgraderingen.\n" +"En lista med problemkolumner finns i filen:\n" " %s" -#: controldata.c:129 controldata.c:175 controldata.c:199 controldata.c:508 +#: controldata.c:129 controldata.c:199 #, c-format -msgid "could not get control data using %s: %s" -msgstr "kunde inte hämta kontrolldata med %s: %s" +msgid "could not get control data using %s: %m" +msgstr "kunde inte hämta kontrolldata med %s: %m" -#: controldata.c:140 +#: controldata.c:139 #, c-format msgid "%d: database cluster state problem" msgstr "%d: state-problem för databaskluster" @@ -484,13 +702,18 @@ msgstr "Målklustret stängdes ner när det var i återställningsläge. För at #: controldata.c:165 #, c-format -msgid "The source cluster was not shut down cleanly." -msgstr "Källklustret har inte stängts ner på ett korrekt sätt." +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "Källklustret har inte stängts ner på ett korrekt sätt, dess tillstånd rapporteras som: \"%s\"" #: controldata.c:167 #, c-format -msgid "The target cluster was not shut down cleanly." -msgstr "Målklustret har inte stängts ner på ett korrekt sätt." +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "Målklustret har inte stängts ner på ett korrekt sätt, dess tillstånd rapporteras som: \"%s\"." + +#: controldata.c:175 controldata.c:507 +#, c-format +msgid "could not get control data using %s: %s" +msgstr "kunde inte hämta kontrolldata med %s: %s" #: controldata.c:181 #, c-format @@ -502,139 +725,139 @@ msgstr "Källklustret saknar information om kluster-state:" msgid "The target cluster lacks cluster state information:" msgstr "Målklustret saknar information om kluster-state:" -#: controldata.c:214 dump.c:50 exec.c:119 pg_upgrade.c:517 pg_upgrade.c:554 -#: relfilenumber.c:231 server.c:34 util.c:337 +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 #, c-format msgid "%s" msgstr "%s" -#: controldata.c:221 +#: controldata.c:220 #, c-format msgid "%d: pg_resetwal problem" msgstr "%d: pg_resetwal-problem" -#: controldata.c:231 controldata.c:241 controldata.c:252 controldata.c:263 -#: controldata.c:274 controldata.c:293 controldata.c:304 controldata.c:315 -#: controldata.c:326 controldata.c:337 controldata.c:348 controldata.c:359 -#: controldata.c:362 controldata.c:366 controldata.c:376 controldata.c:388 -#: controldata.c:399 controldata.c:410 controldata.c:421 controldata.c:432 -#: controldata.c:443 controldata.c:454 controldata.c:465 controldata.c:476 -#: controldata.c:487 controldata.c:498 +#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 #, c-format msgid "%d: controldata retrieval problem" msgstr "%d: problem vid hämtning av kontrolldata" -#: controldata.c:579 +#: controldata.c:578 #, c-format msgid "The source cluster lacks some required control information:" msgstr "Källklustret saknar lite kontrolldata som krävs:" -#: controldata.c:582 +#: controldata.c:581 #, c-format msgid "The target cluster lacks some required control information:" msgstr "Målklustret saknar lite kontrolldata som krävs:" -#: controldata.c:585 +#: controldata.c:584 #, c-format msgid " checkpoint next XID" msgstr " checkpoint nästa-XID" -#: controldata.c:588 +#: controldata.c:587 #, c-format msgid " latest checkpoint next OID" msgstr " senaste checkpoint nästa-OID" -#: controldata.c:591 +#: controldata.c:590 #, c-format msgid " latest checkpoint next MultiXactId" msgstr " senaster checkpoint nästa-MultiXactId" -#: controldata.c:595 +#: controldata.c:594 #, c-format msgid " latest checkpoint oldest MultiXactId" msgstr " senaste checkpoint äldsta-MultiXactId" -#: controldata.c:598 +#: controldata.c:597 #, c-format msgid " latest checkpoint oldestXID" msgstr " senaste checkpoint äldsta-XID" -#: controldata.c:601 +#: controldata.c:600 #, c-format msgid " latest checkpoint next MultiXactOffset" msgstr " senaste checkpoint nästa-MultiXactOffset" -#: controldata.c:604 +#: controldata.c:603 #, c-format msgid " first WAL segment after reset" msgstr " första WAL-segmentet efter reset" -#: controldata.c:607 +#: controldata.c:606 #, c-format msgid " float8 argument passing method" msgstr " float8 argumentöverföringsmetod" -#: controldata.c:610 +#: controldata.c:609 #, c-format msgid " maximum alignment" msgstr " maximal alignment" -#: controldata.c:613 +#: controldata.c:612 #, c-format msgid " block size" msgstr " blockstorlek" -#: controldata.c:616 +#: controldata.c:615 #, c-format msgid " large relation segment size" msgstr " stora relationers segmentstorlek" -#: controldata.c:619 +#: controldata.c:618 #, c-format msgid " WAL block size" msgstr " WAL-blockstorlek" -#: controldata.c:622 +#: controldata.c:621 #, c-format msgid " WAL segment size" msgstr " WAL-segmentstorlek" -#: controldata.c:625 +#: controldata.c:624 #, c-format msgid " maximum identifier length" msgstr " maximal identifierarlängd" -#: controldata.c:628 +#: controldata.c:627 #, c-format msgid " maximum number of indexed columns" msgstr " maximalt antal indexerade kolumner" -#: controldata.c:631 +#: controldata.c:630 #, c-format msgid " maximum TOAST chunk size" msgstr " maximal TOAST-chunkstorlek" -#: controldata.c:635 +#: controldata.c:634 #, c-format msgid " large-object chunk size" msgstr " stora-objekt chunkstorlek" -#: controldata.c:638 +#: controldata.c:637 #, c-format msgid " dates/times are integers?" msgstr " datum/tid är heltal?" -#: controldata.c:642 +#: controldata.c:641 #, c-format msgid " data checksum version" msgstr " datachecksumversion" -#: controldata.c:644 +#: controldata.c:643 #, c-format msgid "Cannot continue without required control information, terminating" msgstr "Kan inte fortsätta utan kontrollinformation som krävs, avslutar" -#: controldata.c:659 +#: controldata.c:658 #, c-format msgid "" "old and new pg_controldata alignments are invalid or do not match.\n" @@ -643,77 +866,77 @@ msgstr "" "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" -#: controldata.c:663 +#: controldata.c:662 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match" msgstr "gamla och nya pg_controldata-blockstorlekar är ogiltiga eller matchar inte" -#: controldata.c:666 +#: controldata.c:665 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" msgstr "gamla och nya pg_controldata maximala relationssegmentstorlekar är ogiltiga eller matchar inte" -#: controldata.c:669 +#: controldata.c:668 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match" msgstr "gamla och nya pg_controldata WAL-blockstorlekar är ogiltiga eller matchar inte" -#: controldata.c:672 +#: controldata.c:671 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" msgstr "gamla och nya pg_controldata WAL-segmentstorlekar är ogiltiga eller matchar inte" -#: controldata.c:675 +#: controldata.c:674 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" msgstr "gamla och nya pg_controldata maximal identifierarlängder är ogiltiga eller matchar inte" -#: controldata.c:678 +#: controldata.c:677 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" msgstr "gamla och nya pg_controldata maximalt indexerade kolumner ogiltiga eller matchar inte" -#: controldata.c:681 +#: controldata.c:680 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" msgstr "gamla och nya pg_controldata maximal TOAST-chunkstorlek ogiltiga eller matchar inte" -#: controldata.c:686 +#: controldata.c:685 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" msgstr "gamla och nya pg_controldata stora-objekt-chunkstorlekar är ogiltiga eller matchar inte" -#: controldata.c:689 +#: controldata.c:688 #, c-format msgid "old and new pg_controldata date/time storage types do not match" msgstr "gamla och nya pg_controldata datum/tid-lagringstyper matchar inte" -#: controldata.c:702 +#: controldata.c:701 #, c-format msgid "old cluster does not use data checksums but the new one does" msgstr "gamla klustret använder inte datachecksummor men nya gör det" -#: controldata.c:705 +#: controldata.c:704 #, c-format msgid "old cluster uses data checksums but the new one does not" msgstr "gamla klustret använder datachecksummor men nya gör inte det" -#: controldata.c:707 +#: controldata.c:706 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match" msgstr "gamla och nya klustrets pg_controldata checksumversioner matchar inte" -#: controldata.c:718 +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Lägger till \".old\"-suffix till gamla global/pg_control" -#: controldata.c:723 +#: controldata.c:722 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" -#: controldata.c:727 +#: controldata.c:726 #, c-format msgid "" "\n" @@ -738,27 +961,32 @@ msgstr "Skapar dump med globala objekt" msgid "Creating dump of database schemas" msgstr "Skapar dump innehållande databasscheman" -#: exec.c:47 exec.c:52 +#: exec.c:47 +#, c-format +msgid "could not get pg_ctl version data using %s: %m" +msgstr "kunde inte hämta pg_ctl versionsdata med %s: %m" + +#: exec.c:51 #, c-format msgid "could not get pg_ctl version data using %s: %s" msgstr "kunde inte hämta pg_ctl versionsdata med %s: %s" -#: exec.c:56 +#: exec.c:55 #, c-format msgid "could not get pg_ctl version output from %s" msgstr "kunde inte läsa versionutdata för pg_ctl från %s" -#: exec.c:113 exec.c:117 +#: exec.c:112 exec.c:116 #, c-format msgid "command too long" msgstr "kommandot för långt" -#: exec.c:161 pg_upgrade.c:286 +#: exec.c:160 pg_upgrade.c:311 #, c-format msgid "could not open log file \"%s\": %m" msgstr "kunde inte öppna loggfil \"%s\": %m" -#: exec.c:193 +#: exec.c:192 #, c-format msgid "" "\n" @@ -767,12 +995,12 @@ msgstr "" "\n" "*misslyckande*" -#: exec.c:196 +#: exec.c:195 #, c-format msgid "There were problems executing \"%s\"" msgstr "Det var problem med att köra \"%s\"" -#: exec.c:199 +#: exec.c:198 #, c-format msgid "" "Consult the last few lines of \"%s\" or \"%s\" for\n" @@ -781,7 +1009,7 @@ msgstr "" "Se de sista raderna i \"%s\" eller \"%s\" för\n" "en trolig orsak till misslyckandet." -#: exec.c:204 +#: exec.c:203 #, c-format msgid "" "Consult the last few lines of \"%s\" for\n" @@ -790,141 +1018,156 @@ msgstr "" "Se de sista raderna i \"%s\" för\n" "en trolig orsak till misslyckandet." -#: exec.c:219 pg_upgrade.c:296 +#: exec.c:218 pg_upgrade.c:321 #, c-format msgid "could not write to log file \"%s\": %m" msgstr "kunde inte skriva till loggfil \"%s\": %m" -#: exec.c:245 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s" -msgstr "kunde inte öppna fil \"%s\" för läsning: %s" +msgid "could not open file \"%s\" for reading: %m" +msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: exec.c:272 +#: exec.c:270 #, c-format msgid "You must have read and write access in the current directory." msgstr "Du måste ha läs och skrivrättigheter till den aktuella katalogen." -#: exec.c:325 exec.c:391 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s" -msgstr "kontroll av \"%s\" misslyckades: %s" +msgid "check for \"%s\" failed: %m" +msgstr "kontroll av \"%s\" misslyckades: %m" -#: exec.c:328 exec.c:394 +#: exec.c:326 exec.c:392 #, c-format msgid "\"%s\" is not a directory" msgstr "\"%s\" är inte en katalog" -#: exec.c:441 -#, c-format -msgid "check for \"%s\" failed: %m" -msgstr "kontroll av \"%s\" misslyckades: %m" - -#: exec.c:446 +#: exec.c:444 #, c-format msgid "check for \"%s\" failed: cannot execute" msgstr "kontroll av \"%s\" misslyckades: kan inte exekvera" -#: exec.c:456 +#: exec.c:454 #, c-format msgid "check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" msgstr "kontroll av \"%s\" misslyckades: hittade felaktig version \"%s\", förväntade \"%s\"" -#: file.c:43 file.c:64 +#: file.c:44 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "fel vid kloning av relation \"%s.%s\" (\"%s\" till \"%s\"): %s" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "fel vid kloning av relation \"%s.%s\" (\"%s\" till \"%s\"): %m" -#: file.c:50 +#: file.c:51 #, c-format -msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "fel vid kloning av relation \"%s.%s\": kunde inte öppna filen \"%s\": %s" +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "fel vid kloning av relation \"%s.%s\": kunde inte öppna filen \"%s\": %m" -#: file.c:55 +#: file.c:56 #, c-format -msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "fel vid kloning av relation \"%s.%s\": kunde inte skapa filen \"%s\": %s" +msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "fel vid kloning av relation \"%s.%s\": kunde inte skapa filen \"%s\": %m" + +#: file.c:65 +#, c-format +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "fel vid kloning av relation \"%s.%s\" (\"%s\" till \"%s\"): %s" -#: file.c:90 file.c:193 +#: file.c:91 file.c:160 file.c:233 #, c-format -msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %s" -msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte öppna filen \"%s\": %s" +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte öppna filen \"%s\": %m" -#: file.c:95 file.c:202 +#: file.c:96 file.c:165 file.c:242 #, c-format -msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %s" -msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte skapa filen \"%s\": %s" +msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte skapa filen \"%s\": %m" -#: file.c:109 file.c:226 +#: file.c:110 file.c:266 #, c-format -msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %s" -msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte läsa filen \"%s\": %s" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte läsa filen \"%s\": %m" -#: file.c:121 file.c:304 +#: file.c:122 file.c:344 #, c-format -msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %s" -msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte skriva filen \"%s\": %s" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte skriva filen \"%s\": %m" -#: file.c:135 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "fel vid kopiering av relation \"%s.%s\" (\"%s\" till \"%s\"): %s" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "fel vid kopiering av relation \"%s.%s\" (\"%s\" till \"%s\"): %m" -#: file.c:154 +#: file.c:172 #, c-format -msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "fel vid skapande av länk för relation \"%s.%s\" (\"%s\" till \"%s\"): %s" +msgid "error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte kopiera filintervall från \"%s\" till \"%s\": %m" -#: file.c:197 +#: file.c:194 #, c-format -msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %s" -msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte göra stat på file \"%s\": %s" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "fel vid skapande av länk för relation \"%s.%s\" (\"%s\" till \"%s\"): %m" -#: file.c:229 +#: file.c:237 +#, c-format +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" +msgstr "fel vid kopiering av relation \"%s.%s\": kunde inte göra stat på file \"%s\": %m" + +#: file.c:269 #, c-format msgid "error while copying relation \"%s.%s\": partial page found in file \"%s\"" msgstr "fel vid kopiering av relation \"%s.%s\": partiell sida hittad i fil \"%s\"" -#: file.c:331 file.c:348 +#: file.c:371 file.c:387 #, c-format -msgid "could not clone file between old and new data directories: %s" -msgstr "kunde inte klona fil mellan gamla och nya datakatalogen: %s" +msgid "could not clone file between old and new data directories: %m" +msgstr "kunde inte klona fil mellan gamla och nya datakatalogen: %m" -#: file.c:344 +#: file.c:383 file.c:420 #, c-format -msgid "could not create file \"%s\": %s" -msgstr "kan inte skapa fil \"%s\": %s" +msgid "could not create file \"%s\": %m" +msgstr "kunde inte skapa fil \"%s\": %m" -#: file.c:355 +#: file.c:393 #, c-format msgid "file cloning not supported on this platform" msgstr "filkloning stöds inte på denna plattform" -#: file.c:372 +#: file.c:424 +#, c-format +msgid "could not copy file range between old and new data directories: %m" +msgstr "kunde inte kopiera filintervall mellan gamla och nya datakatalogerna: %m" + +#: file.c:430 +#, c-format +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range stöds inte på denna plattform" + +#: file.c:447 #, c-format msgid "" -"could not create hard link between old and new data directories: %s\n" +"could not create hard link between old and new data directories: %m\n" "In link mode the old and new data directories must be on the same file system." msgstr "" -"kunde inte skapa hård länk mellan gamla och nya datakatalogerna: %s\n" +"kunde inte skapa hård länk mellan gamla och nya datakatalogerna: %m\n" "I länk-läge måste gamla och nya datakatalogerna vara i samma filsystem." -#: function.c:128 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "Kontrollerar att krävda länkbibliotek finns" -#: function.c:165 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "kunde inte ladda länkbibliotek \"%s\": %s" -#: function.c:176 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "I databas: %s\n" -#: function.c:186 +#: function.c:211 #, c-format msgid "" "Your installation references loadable libraries that are missing from the\n" @@ -939,137 +1182,151 @@ msgstr "" "med problembiblioteken finns i filen:\n" " %s" -#: info.c:126 +#: info.c:128 #, c-format msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" msgstr "Relationsname för OID %u i databas \"%s\" matchar inte: gammalt namn \"%s.%s\", nytt namn \"%s.%s\"" -#: info.c:146 +#: info.c:148 #, c-format msgid "Failed to match up old and new tables in database \"%s\"" msgstr "Misslyckades med att matcha ihop gamla och nya tabeller i databas \"%s\"" -#: info.c:227 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " vilket är ett index för \"%s.%s\"" -#: info.c:237 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " vilket är ett index för OID %u" -#: info.c:249 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " vilket är TOAST-tabellen för \"%s.%s\"" -#: info.c:257 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " vilket är TOAST-tabellen för OID %u" -#: info.c:261 +#: info.c:263 #, c-format msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" msgstr "Ingen träff hittad i gamla klustret för ny relation med OID %u i databas \"%s\": %s" -#: info.c:264 +#: info.c:266 #, c-format msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" msgstr "Ingen träff hittad i nya klustret för gammal relation med OID %u i databas \"%s\": %s" -#: info.c:289 +#: info.c:300 #, c-format msgid "" "\n" "source databases:" -msgstr "\nkälldatabaser:" +msgstr "" +"\n" +"källdatabaser:" -#: info.c:291 +#: info.c:302 #, c-format msgid "" "\n" "target databases:" -msgstr "\nmåldatabaser:" +msgstr "" +"\n" +"måldatabaser:" -#: info.c:329 +#: info.c:346 #, c-format msgid "template0 not found" msgstr "hittade inte template0" -#: info.c:645 +#: info.c:805 #, c-format -msgid "Database: %s" -msgstr "Databas: %s" +msgid "Database: \"%s\"" +msgstr "Databas: \"%s\"" -#: info.c:657 +#: info.c:818 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s" -msgstr "relnamn: %s.%s: reloid: %u reltblutrymme: %s" +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "relnamn: \"%s.%s\": reloid: %u reltblutrymme: \"%s\"" -#: option.c:101 +#: info.c:832 +#, c-format +msgid "Logical replication slots in the database:" +msgstr "Logiska replikeringsslottar i databasen:" + +#: info.c:838 +#, c-format +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "slot_name \"%s\", utdata-plugin \"%s\", two_phase \"%s\"" + +#: option.c:105 #, c-format msgid "%s: cannot be run as root" msgstr "%s: kan inte köras som root" -#: option.c:168 +#: option.c:172 #, c-format msgid "invalid old port number" msgstr "ogiltigt gammalt portnummer" -#: option.c:173 +#: option.c:177 #, c-format msgid "invalid new port number" msgstr "ogiltigt nytt portnummer" -#: option.c:203 +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: option.c:210 +#: option.c:223 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: option.c:213 +#: option.c:229 #, c-format msgid "Running in verbose mode" msgstr "Kör i utförligt läge" # FIXME: the source code need to be fixed here. it paste words together -#: option.c:231 +#: option.c:247 msgid "old cluster binaries reside" msgstr "gamla klusterbinärer är i" -#: option.c:233 +#: option.c:249 msgid "new cluster binaries reside" msgstr "nya klusterbinärer är i" -#: option.c:235 +#: option.c:251 msgid "old cluster data resides" msgstr "gamla klusterdatan är i" -#: option.c:237 +#: option.c:253 msgid "new cluster data resides" msgstr "nya klusterdatan är i" -#: option.c:239 +#: option.c:255 msgid "sockets will be created" msgstr "uttag kommer skapas" -#: option.c:256 option.c:356 +#: option.c:272 option.c:374 #, c-format msgid "could not determine current directory" msgstr "kunde inte bestämma aktuell katalog" -#: option.c:259 +#: option.c:275 #, c-format msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" msgstr "kan inte köra pg_upgrade inifrån nya klusterdatakatalogen i Windows" -#: option.c:268 +#: option.c:284 #, c-format msgid "" "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n" @@ -1078,12 +1335,12 @@ msgstr "" "pg_upgrade uppgraderar ett PostgreSQL-kluster till en annan major-version.\n" "\n" -#: option.c:269 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: option.c:270 +#: option.c:286 #, c-format msgid "" " pg_upgrade [OPTION]...\n" @@ -1092,17 +1349,17 @@ msgstr "" " pg_upgrade [FLAGGA]...\n" "\n" -#: option.c:271 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: option.c:272 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINKAT gamla klustrets katalog för körbara filer\n" -#: option.c:273 +#: option.c:289 #, c-format msgid "" " -B, --new-bindir=BINDIR new cluster executable directory (default\n" @@ -1111,97 +1368,107 @@ msgstr "" " -B, --new-bindir=BINKAT nya klustrets katalog för körbara filer\n" " (standard är samma som för pg_upgrade)\n" -#: option.c:275 +#: option.c:291 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check testa klustren bara, ändra ingen data\n" -#: option.c:276 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATAKAT gamla klustrets datakatalog\n" -#: option.c:277 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATAKAT nya klustrets datakatalog\n" -#: option.c:278 +#: option.c:294 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs=NUM antal samtidiga processer eller trådar att använda\n" -#: option.c:279 +#: option.c:295 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr " -k, --link länka istället för att kopiera filer till nya klustret\n" -#: option.c:280 +#: option.c:296 #, 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 ändingar säkert skrivits till disk\n" -#: option.c:281 +#: option.c:297 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=FLAGGOR serverflaggor för gamla klustret\n" -#: option.c:282 +#: option.c:298 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=FLAGGOR serverflaggor för nya klustret\n" -#: option.c:283 +#: option.c:299 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PORT gamla klustrets portnummer (standard %d)\n" -#: option.c:284 +#: option.c:300 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT nya klustrets portnummer (standard %d)\n" -#: option.c:285 +#: option.c:301 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain behåll SQL och loggfiler efter lyckad uppgradering\n" -#: option.c:286 +#: option.c:302 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr " -s, --socketdir=KAT uttagskatalog (standard är aktuell katalog.)\n" -#: option.c:287 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=NAMN klustrets superuser (standard \"%s\")\n" -#: option.c:288 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose slå på utförligt intern loggning\n" -#: option.c:289 +#: option.c:305 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: option.c:290 +#: option.c:306 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr " -clone klona istället för att kopiera filer till nya klustret\n" -#: option.c:291 +#: option.c:307 #, c-format msgid " --copy copy files to new cluster (default)\n" msgstr " --copy kopiera filer till nya klustret (standard)\n" -#: option.c:292 +#: option.c:308 +#, c-format +msgid " --copy-file-range copy files to new cluster with copy_file_range\n" +msgstr " --copy-file-range kopiera filer till nya klustret med copy_file_range\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METOD sätt synkmetod för att synka filer till disk\n" + +#: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denns hjälp, avsluta sedan\n" -#: option.c:293 +#: option.c:311 #, c-format msgid "" "\n" @@ -1216,7 +1483,7 @@ msgstr "" " stänga ner den postmaster som hanterar gamla klustret\n" " stänga ner den postmaster som hanterar nya klustret\n" -#: option.c:298 +#: option.c:316 #, c-format msgid "" "\n" @@ -1233,7 +1500,7 @@ msgstr "" " \"bin\"-katalogen för gamla versionen (-b BINKAT)\n" " \"bin\"-katalogen för nya versionen (-B BINKAT)\n" -#: option.c:304 +#: option.c:322 #, c-format msgid "" "\n" @@ -1246,7 +1513,7 @@ msgstr "" " pg_upgrade -d gammaltKluster/data -D nyttKluster/data -b gammaltKluster/bin -B nyttKluster/bin\n" "eller\n" -#: option.c:309 +#: option.c:327 #, c-format msgid "" " $ export PGDATAOLD=oldCluster/data\n" @@ -1261,7 +1528,7 @@ msgstr "" " $ export PGBINNEW=nyttKluster/bin\n" " $ pg_upgrade\n" -#: option.c:315 +#: option.c:333 #, c-format msgid "" " C:\\> set PGDATAOLD=oldCluster/data\n" @@ -1276,7 +1543,7 @@ msgstr "" " C:\\> set PGBINNEW=nyttKluster/bin\n" " C:\\> pg_upgrade\n" -#: option.c:321 +#: option.c:339 #, c-format msgid "" "\n" @@ -1285,12 +1552,12 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: option.c:322 +#: option.c:340 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: option.c:362 +#: option.c:380 #, c-format msgid "" "You must identify the directory where the %s.\n" @@ -1299,45 +1566,50 @@ msgstr "" "Du måste identifiera katalogen där %s.\n" "Använd kommandoradsflaggan %s eller omgivningsvariabeln %s." -#: option.c:415 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Letar efter den riktiga datakatalogen i källklustret" -#: option.c:417 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Letar efter den riktiga datakatalogen för målklustret" -#: option.c:430 option.c:435 +#: option.c:448 +#, c-format +msgid "could not get data directory using %s: %m" +msgstr "kunde inte hämta datakatalogen med %s: %m" + +#: option.c:452 #, c-format msgid "could not get data directory using %s: %s" msgstr "kunde inte hämta datakatalogen med %s: %s" -#: option.c:484 +#: option.c:500 #, c-format -msgid "could not read line %d from file \"%s\": %s" -msgstr "kunde inte läsa rad %d från fil \"%s\": %s" +msgid "could not read line %d from file \"%s\": %m" +msgstr "kunde inte läsa rad %d från fil \"%s\": %m" -#: option.c:501 +#: option.c:517 #, c-format msgid "user-supplied old port number %hu corrected to %hu" msgstr "användarangivet gammalt portnummer %hu korrigerat till %hu" #: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker process: %s" -msgstr "kunde inte skapa arbetsprocess: %s" +msgid "could not create worker process: %m" +msgstr "kunde inte skapa arbetsprocess: %m" #: parallel.c:143 parallel.c:253 #, c-format -msgid "could not create worker thread: %s" -msgstr "kunde inte skapa arbetstråd: %s" +msgid "could not create worker thread: %m" +msgstr "kunde inte skapa arbetstråd: %m" #: parallel.c:294 #, c-format -msgid "%s() failed: %s" -msgstr "%s() misslyckades: %s" +msgid "%s() failed: %m" +msgstr "%s() misslyckades: %m" #: parallel.c:298 #, c-format @@ -1346,15 +1618,15 @@ msgstr "barnprocess avslutade felaktigt: status %d" #: parallel.c:313 #, c-format -msgid "child worker exited abnormally: %s" -msgstr "barnprocess avslutade felaktigt: %s" +msgid "child worker exited abnormally: %m" +msgstr "barnprocess avslutade felaktigt: %m" -#: pg_upgrade.c:107 +#: pg_upgrade.c:115 #, c-format -msgid "could not read permissions of directory \"%s\": %s" -msgstr "kunde inte läsa rättigheter på katalog \"%s\": %s" +msgid "could not read permissions of directory \"%s\": %m" +msgstr "kunde inte läsa rättigheter på katalog \"%s\": %m" -#: pg_upgrade.c:139 +#: pg_upgrade.c:147 #, c-format msgid "" "\n" @@ -1365,17 +1637,17 @@ msgstr "" "Utför uppgradering\n" "------------------" -#: pg_upgrade.c:184 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "Sätter nästa OID för nya klustret" -#: pg_upgrade.c:193 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "Synkar datakatalog till disk" -#: pg_upgrade.c:205 +#: pg_upgrade.c:230 #, c-format msgid "" "\n" @@ -1386,23 +1658,23 @@ msgstr "" "Uppgradering klar\n" "-----------------" -#: pg_upgrade.c:238 pg_upgrade.c:251 pg_upgrade.c:258 pg_upgrade.c:265 -#: pg_upgrade.c:283 pg_upgrade.c:294 +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 #, c-format msgid "directory path for new cluster is too long" msgstr "katalogsökväg för nytt kluster är för lång" -#: pg_upgrade.c:272 pg_upgrade.c:274 pg_upgrade.c:276 pg_upgrade.c:278 +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 #, c-format msgid "could not create directory \"%s\": %m" msgstr "kunde inte skapa katalog \"%s\": %m" -#: pg_upgrade.c:327 +#: pg_upgrade.c:352 #, c-format msgid "%s: could not find own program executable" msgstr "%s: kunde inte hitta det egna programmets körbara fil" -#: pg_upgrade.c:353 +#: pg_upgrade.c:378 #, c-format msgid "" "There seems to be a postmaster servicing the old cluster.\n" @@ -1411,7 +1683,7 @@ msgstr "" "Det verkar vara en postmaster igång som hanterar gamla klustret.\n" "Stänga ner den postmastern och försök igen." -#: pg_upgrade.c:366 +#: pg_upgrade.c:391 #, c-format msgid "" "There seems to be a postmaster servicing the new cluster.\n" @@ -1420,81 +1692,86 @@ msgstr "" "Det verkar vara en postmaster igång som hanterar nya klustret.\n" "Stänga ner den postmastern och försök igen." -#: pg_upgrade.c:388 +#: pg_upgrade.c:413 #, c-format msgid "Setting locale and encoding for new cluster" msgstr "Sätter lokal och teckenkodning för nya klustret" -#: pg_upgrade.c:450 +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Analyserar alla rader i nya klustret" -#: pg_upgrade.c:463 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Fryser alla rader i nya klustret" -#: pg_upgrade.c:483 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Återställer globala objekt i nya klustret" -#: pg_upgrade.c:499 +#: pg_upgrade.c:538 #, c-format msgid "Restoring database schemas in the new cluster" msgstr "Återställer databasscheman i nya klustret" -#: pg_upgrade.c:605 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "Raderar filer från ny %s" -#: pg_upgrade.c:609 +#: pg_upgrade.c:666 #, c-format msgid "could not delete directory \"%s\"" msgstr "kunde inte ta bort katalog \"%s\"" -#: pg_upgrade.c:628 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "Kopierar gammal %s till ny server" -#: pg_upgrade.c:654 +#: pg_upgrade.c:711 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Sätter äldsta XID för nya klustret" -#: pg_upgrade.c:662 +#: pg_upgrade.c:719 #, 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:692 +#: pg_upgrade.c:749 #, 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:716 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Sätter äldsta multixact-ID i nytt kluster" -#: pg_upgrade.c:736 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "Resettar WAL-arkiv" -#: pg_upgrade.c:779 +#: pg_upgrade.c:836 #, 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:781 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Sätter räknarenm minmxid för nytt kluster" +#: pg_upgrade.c:929 +#, c-format +msgid "Restoring logical replication slots in the new cluster" +msgstr "Återställer logiska replikeringsslottar i nya klustret" + #: relfilenumber.c:35 #, c-format msgid "Cloning user relation files" @@ -1507,35 +1784,45 @@ msgstr "Kopierar användarens relationsfiler" #: relfilenumber.c:41 #, c-format +msgid "Copying user relation files with copy_file_range" +msgstr "Kopierar användarens relationsfiler med copy_file_range" + +#: relfilenumber.c:44 +#, c-format msgid "Linking user relation files" msgstr "Länkar användarens relationsfiler" -#: relfilenumber.c:115 +#: relfilenumber.c:118 #, c-format msgid "old database \"%s\" not found in the new cluster" msgstr "gamla databasen \"%s\" kan inte hittas i nya klustret" -#: relfilenumber.c:218 +#: relfilenumber.c:221 #, c-format -msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s" -msgstr "fel vid kontroll av filexistens \"%s.%s\" (\"%s\" till \"%s\"): %s" +msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "fel vid kontroll av filexistens \"%s.%s\" (\"%s\" till \"%s\"): %m" -#: relfilenumber.c:236 +#: relfilenumber.c:238 #, c-format msgid "rewriting \"%s\" to \"%s\"" msgstr "skriver om \"%s\" till \"%s\"" -#: relfilenumber.c:244 +#: relfilenumber.c:246 #, c-format msgid "cloning \"%s\" to \"%s\"" msgstr "klonar \"%s\" till \"%s\"" -#: relfilenumber.c:249 +#: relfilenumber.c:251 #, c-format msgid "copying \"%s\" to \"%s\"" msgstr "kopierar \"%s\" till \"%s\"" -#: relfilenumber.c:254 +#: relfilenumber.c:256 +#, c-format +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "kopierar \"%s\" till \"%s\" med copy_file_range" + +#: relfilenumber.c:261 #, c-format msgid "linking \"%s\" to \"%s\"" msgstr "länkar \"%s\" till \"%s\"" @@ -1571,7 +1858,7 @@ msgstr "kunde inte öppna versionsfil \"%s\": %m" msgid "could not parse version file \"%s\"" msgstr "kunde inte tolka versionsfil \"%s\"" -#: server.c:288 +#: server.c:310 #, c-format msgid "" "\n" @@ -1580,7 +1867,7 @@ msgstr "" "\n" "%s" -#: server.c:292 +#: server.c:314 #, c-format msgid "" "could not connect to source postmaster started with the command:\n" @@ -1589,7 +1876,7 @@ msgstr "" "kunde inte ansluta till käll-postmaster som startats med kommandot:\n" "%s" -#: server.c:296 +#: server.c:318 #, c-format msgid "" "could not connect to target postmaster started with the command:\n" @@ -1598,22 +1885,22 @@ msgstr "" "kunde inte ansluta till mål-postmaster som startats med kommandot:\n" "%s" -#: server.c:310 +#: server.c:332 #, c-format msgid "pg_ctl failed to start the source server, or connection failed" msgstr "pg_ctl misslyckades att start källservern eller så misslyckades anslutningen" -#: server.c:312 +#: server.c:334 #, c-format msgid "pg_ctl failed to start the target server, or connection failed" msgstr "pg_ctl misslyckades att start målservern eller så misslyckades anslutningen" -#: server.c:357 +#: server.c:379 #, c-format msgid "out of memory" msgstr "slut på minne" -#: server.c:370 +#: server.c:392 #, c-format msgid "libpq environment variable %s has a non-local server value: %s" msgstr "libpq:s omgivningsvariabel %s har ett icke-lokalt servervärde: %s" @@ -1634,8 +1921,8 @@ msgstr "tablespace-katalogen \"%s\" finns inte" #: tablespace.c:87 #, c-format -msgid "could not stat tablespace directory \"%s\": %s" -msgstr "kunde inte göra stat på tablespace-katalog \"%s\": %s" +msgid "could not stat tablespace directory \"%s\": %m" +msgstr "kunde inte göra stat på tablespace-katalog \"%s\": %m" #: tablespace.c:92 #, c-format @@ -1657,63 +1944,17 @@ msgstr "kunde inte komma åt katalog \"%s\": %m" msgid "ok" msgstr "ok" -# FIXME: is this msgid correct? -#: version.c:184 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "Letar efter inkompatibel \"line\"-datatyp" - -#: version.c:193 -#, c-format -msgid "" -"Your installation contains the \"line\" data type in user tables.\n" -"This data type changed its internal and input/output format\n" -"between your old and new versions so this\n" -"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" -msgstr "" -"Din installation innehåller datatypen \"line\" i användartabeller. Denna\n" -"datatype har ändrat sitt interna format samt sitt in/ut-format mellan din\n" -"gamla och nya version så detta kluster kan för närvarande inte uppgraderas.\n" -"Du kan radera problemkolumnerna och återstarta uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" -" %s" - -#: version.c:224 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "Letar efter ogiltiga användarkolumner av typen \"unknown\"" - -#: version.c:233 -#, c-format -msgid "" -"Your installation contains the \"unknown\" data type in user tables.\n" -"This data type is no longer allowed in tables, so this\n" -"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" -msgstr "" -"Din installation innehåller datatypen \"unknown\" i användartabeller.\n" -"Denna datatyp tillåts inte längre i tabeller så detta kluster kan\n" -"för närvarande inte uppgraderas. Du kan radera problemkolumnerna och\n" -"återstarta uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" -" %s" - -#: version.c:257 +#: version.c:44 #, c-format msgid "Checking for hash indexes" msgstr "Letar efter hash-index" -#: version.c:335 +#: version.c:121 #, c-format msgid "warning" msgstr "varning" -#: version.c:337 +#: version.c:123 #, c-format msgid "" "\n" @@ -1728,7 +1969,7 @@ msgstr "" "kommandot REINDEX. Efter uppgraderingen så kommer du få\n" "REINDEX-instruktioner." -#: version.c:343 +#: version.c:129 #, c-format msgid "" "\n" @@ -1747,39 +1988,17 @@ msgstr "" "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." -#: version.c:369 -#, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "Letar efter ogiltiga användarkolumner av typen \"sql_identifier\"" - -#: version.c:379 -#, c-format -msgid "" -"Your installation contains the \"sql_identifier\" data type in user tables.\n" -"The on-disk format for this data type has changed, so this\n" -"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" -msgstr "" -"Din installation innehåller datatypen \"sql_identifier\" i användartabeller.\n" -"Formatet på disk för denna datatyp har ändrats så detta kluster kan för\n" -"närvarande inte uppgraderas. Du kan radera problemkolumnerna och\n" -"återstarta uppgraderingen.\n" -"En lista med problemkolumner finns i filen:\n" -" %s" - -#: version.c:402 +#: version.c:153 #, c-format msgid "Checking for extension updates" msgstr "Letar efter uppdatering av utökningar" -#: version.c:450 +#: version.c:200 #, c-format msgid "notice" msgstr "notis" -#: version.c:451 +#: version.c:201 #, c-format msgid "" "\n" @@ -1795,99 +2014,3 @@ msgstr "" " %s\n" "kan köras med psql av databasens superuser och kommer uppdatera\n" "dessa utökningar." - -#, c-format -#~ msgid "" -#~ "\n" -#~ "\n" -#~ msgstr "" -#~ "\n" -#~ "\n" - -#, c-format -#~ msgid "%-*s\n" -#~ msgstr "%-*s\n" - -#, c-format -#~ msgid "%s\n" -#~ msgstr "%s\n" - -#, c-format -#~ msgid "%s() failed: %s\n" -#~ msgstr "%s() misslyckades: %s\n" - -#, c-format -#~ msgid "ICU locale values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -#~ msgstr "inställning av ICU-lokal för databasen \"%s\" matchar inte: gammal \"%s\", ny \"%s\"\n" - -#, c-format -#~ msgid "The source cluster contains roles starting with \"pg_\"\n" -#~ msgstr "Källklustret innehåller roller som startar med \"pg_\"\n" - -#, c-format -#~ msgid "The target cluster contains roles starting with \"pg_\"\n" -#~ msgstr "Målklustret innehåller roller som startar med \"pg_\"\n" - -#, c-format -#~ msgid "Unable to rename %s to %s.\n" -#~ msgstr "Kan inte byta namn på %s till %s.\n" - -#, c-format -#~ msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -#~ msgstr "kontroll av \"%s\" misslyckades: kan inte exekvera (rättighet saknas)\n" - -#, c-format -#~ msgid "check for \"%s\" failed: not a regular file\n" -#~ msgstr "kontroll av \"%s\" misslyckades: inte en vanlig fil\n" - -#, c-format -#~ msgid "could not access directory \"%s\": %m\n" -#~ msgstr "kunde inte komma åt katalog \"%s\": %m\n" - -#, c-format -#~ msgid "could not create directory \"%s\": %m\n" -#~ msgstr "kunde inte skapa katalog \"%s\": %m\n" - -#, c-format -#~ msgid "could not open file \"%s\": %s\n" -#~ msgstr "kan inte öppna fil \"%s\": %s\n" - -#, c-format -#~ msgid "could not open log file \"%s\": %m\n" -#~ msgstr "kunde inte öppna loggfil \"%s\": %m\n" - -#, 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" - -#, c-format -#~ msgid "failed to get system locale name for \"%s\"\n" -#~ msgstr "misslyckades med att hämta systemlokalnamn för \"%s\"\n" - -#, c-format -#~ msgid "failed to get the current locale\n" -#~ msgstr "misslyckades med att hämta aktuell lokal\n" - -#, c-format -#~ msgid "failed to restore old locale \"%s\"\n" -#~ msgstr "misslyckades med att återställa gamla lokalen \"%s\"\n" - -#, 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" - -#, 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" - -#, c-format -#~ msgid "locale providers for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -#~ msgstr "localleverantörer för databasen \"%s\" matchar inte: gammal \"%s\", ny \"%s\"\n" - -#, c-format -#~ msgid "out of memory\n" -#~ msgstr "slut på minne\n" - -#, c-format -#~ msgid "too many command-line arguments (first is \"%s\")\n" -#~ msgstr "för många kommandoradsargument (första är \"%s\")\n" diff --git a/src/bin/pg_upgrade/po/uk.po b/src/bin/pg_upgrade/po/uk.po index dc300e50bc4e0..4a0ec9a1eda8c 100644 --- a/src/bin/pg_upgrade/po/uk.po +++ b/src/bin/pg_upgrade/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-17 08:46+0000\n" -"PO-Revision-Date: 2021-08-17 11:18\n" +"POT-Creation-Date: 2024-08-31 06:20+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,229 +14,425 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_14_DEV/pg_upgrade.pot\n" -"X-Crowdin-File-ID: 778\n" +"X-Crowdin-File: /REL_17_STABLE/pg_upgrade.pot\n" +"X-Crowdin-File-ID: 1028\n" -#: check.c:70 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/restricted_token.c:168 +#, c-format +msgid "could not get exit code from subprocess: error code %lu" +msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" + +#: ../../common/username.c:43 +#, c-format +msgid "could not look up effective user ID %ld: %s" +msgstr "не можу знайти користувача з ефективним ID %ld: %s" + +#: ../../common/username.c:45 +msgid "user does not exist" +msgstr "користувача не існує" + +#: ../../common/username.c:60 +#, c-format +msgid "user name lookup failure: error code %lu" +msgstr "невдала підстановка імені користувача: код помилки %lu" + +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: check.c:111 +msgid "Checking for system-defined composite types in user tables" +msgstr "Перевірка складених типів визначених системою у таблицях користувача" + +#: check.c:118 +msgid "Your installation contains system-defined composite types in user tables.\n" +"These type OIDs are not stable across PostgreSQL versions,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить системно визначені складені типи у таблицях користувачів.\n" +"OID цих типів не стабільні між версіями PostgreSQL, тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:132 +msgid "Checking for incompatible \"line\" data type" +msgstr "Перевірка несумісного типу даних \"line\"" + +#: check.c:137 +msgid "Your installation contains the \"line\" data type in user tables.\n" +"This data type changed its internal and input/output format\n" +"between your old and new versions so this\n" +"cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить тип даних \"line\" в таблицях користувача.\n" +"Внутрішній формат та формат вводу/виводу цього типу даних змінено між вашою старою та новими версіями,\n" +"тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:154 +msgid "Checking for reg* data types in user tables" +msgstr "Перевірка типів даних reg* в користувацьких таблицях" + +#: check.c:181 +msgid "Your installation contains one of the reg* data types in user tables.\n" +"These data types reference system OIDs that are not preserved by\n" +"pg_upgrade, so this cluster cannot currently be upgraded. You can\n" +"drop the problem columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить один з типів даних reg* у таблицях користувача.\n" +"Ці типи даних посилаються на OID системи, які не зберігаються за допомогою pg_upgrade, тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:193 +msgid "Checking for incompatible \"aclitem\" data type" +msgstr "Перевірка несумісного типу даних \"aclitem\"" + +#: check.c:198 +msgid "Your installation contains the \"aclitem\" data type in user tables.\n" +"The internal format of \"aclitem\" changed in PostgreSQL version 16\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить тип даних \"aclitem\" у таблицях користувача. Внутрішній формат \"aclitem\" змінено під час версії 16,\n" +"тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:217 +msgid "Checking for invalid \"unknown\" user columns" +msgstr "Перевірка неприпустимих користувацьких стовпців \"unknown\"" + +#: check.c:222 +msgid "Your installation contains the \"unknown\" data type in user tables.\n" +"This data type is no longer allowed in tables, so this cluster\n" +"cannot currently be upgraded. You can drop the problem columns\n" +"and restart the upgrade.\n" +msgstr "Ваша інсталяція містить \"unknown\" тип даних у таблицях користувача.\n" +"Цей тип даних більше не допускається в таблицях,\n" +"тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:239 +msgid "Checking for invalid \"sql_identifier\" user columns" +msgstr "Перевірка неприпустимих користувацьких стовпців \"sql_identifier\"" + +#: check.c:244 +msgid "Your installation contains the \"sql_identifier\" data type in user tables.\n" +"The on-disk format for this data type has changed, so this\n" +"cluster cannot currently be upgraded. You can drop the problem\n" +"columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить \"sql_identifier\" тип даних у таблицях користувача.\n" +"Формат зберігання для цього типу даних змінено,\n" +"тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:255 +msgid "Checking for incompatible \"jsonb\" data type in user tables" +msgstr "Перевірка несумісного типу даних \"jsonb\" в користувацьких таблицях" + +#: check.c:260 +msgid "Your installation contains the \"jsonb\" data type in user tables.\n" +"The internal format of \"jsonb\" changed during 9.4 beta so this\n" +"cluster cannot currently be upgraded. You can drop the problem \n" +"columns and restart the upgrade.\n" +msgstr "Ваша інсталяція містить тип даних \"jsonb\" у таблицях користувача.\n" +"Внутрішній формат \"jsonb\" змінено під час версії 9.4 beta,\n" +"тому цей кластер наразі не може бути оновлений.\n" +"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" + +#: check.c:272 +msgid "Checking for removed \"abstime\" data type in user tables" +msgstr "Перевірка видаленого типу даних \"abstime\" в користувацьких таблицях" + +#: check.c:277 +msgid "Your installation contains the \"abstime\" data type in user tables.\n" +"The \"abstime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "Користувацькі таблиці у вашій інсталяції містять тип даних \"abstime\".\n" +"Тип \"abstime\" був видалений з версії PostgreSQL 12, тому цей кластер \n" +"наразі не може бути оновлений. Ви можете видалите проблемні \n" +"стовпці або змінити їх на інший тип даних, і перезапустити\n" +"оновлення.\n" + +#: check.c:285 +msgid "Checking for removed \"reltime\" data type in user tables" +msgstr "Перевірка видаленого типу даних \"reltime\" в користувацьких таблицях" + +#: check.c:290 +msgid "Your installation contains the \"reltime\" data type in user tables.\n" +"The \"reltime\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "Користувацькі таблиці у вашій інсталяції містять тип даних \"reltime\".\n" +"Тип \"reltime\" був видалений з версії PostgreSQL 12, тому цей кластер \n" +"наразі не може бути оновлений. Ви можете видалите проблемні \n" +"стовпці або змінити їх на інший тип даних, і перезапустити\n" +"оновлення.\n" + +#: check.c:298 +msgid "Checking for removed \"tinterval\" data type in user tables" +msgstr "Перевірка видаленого типу даних \"tinterval\" в користувацьких таблицях" + +#: check.c:303 +msgid "Your installation contains the \"tinterval\" data type in user tables.\n" +"The \"tinterval\" type has been removed in PostgreSQL version 12,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade.\n" +msgstr "Користувацькі таблиці у вашій інсталяції містять тип даних \"tinterval\".\n" +"Тип \"tinterval\" був видалений з версії PostgreSQL 12, тому цей кластер \n" +"наразі не може бути оновлений. Ви можете видалите проблемні \n" +"стовпці або змінити їх на інший тип даних, і перезапустити\n" +"оновлення.\n" + +#: check.c:345 +#, c-format +msgid "Checking data type usage" +msgstr "Перевірка використання типів даних" + +#: check.c:480 +#, c-format +msgid " failed check: %s" +msgstr " помилка перевірки: %s" + +#: check.c:483 +msgid "A list of the problem columns is in the file:" +msgstr "Список проблемних стовпців знаходиться у файлі:" + +#: check.c:495 check.c:963 check.c:1136 check.c:1251 check.c:1345 check.c:1473 +#: check.c:1549 check.c:1613 check.c:1686 check.c:1865 check.c:1884 +#: check.c:1953 check.c:2005 file.c:378 file.c:415 function.c:189 option.c:493 +#: version.c:79 version.c:177 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: check.c:522 +#, c-format +msgid "Data type checks failed: %s" +msgstr "Помилка перевірки типів даних: %s" + +#: check.c:563 #, c-format msgid "Performing Consistency Checks on Old Live Server\n" -"------------------------------------------------\n" +"------------------------------------------------" msgstr "Перевірка цілістності на старому працюючому сервері\n" -"------------------------------------------------\n" +"------------------------------------------------" -#: check.c:76 +#: check.c:569 #, c-format msgid "Performing Consistency Checks\n" -"-----------------------------\n" +"-----------------------------" msgstr "Проведення перевірок цілістності\n" -"-----------------------------\n" +"-----------------------------" -#: check.c:213 +#: check.c:718 #, c-format msgid "\n" -"*Clusters are compatible*\n" +"*Clusters are compatible*" msgstr "\n" -"*Кластери сумісні*\n" +"*Кластери сумісні*" -#: check.c:219 +#: check.c:726 #, c-format msgid "\n" "If pg_upgrade fails after this point, you must re-initdb the\n" -"new cluster before continuing.\n" +"new cluster before continuing." msgstr "\n" "Якщо робота pg_upgrade після цієї точки перерветься, вам потрібно буде заново виконати initdb \n" -"для нового кластера, перед продовженням.\n" +"для нового кластера, перед продовженням." -#: check.c:264 +#: check.c:767 #, c-format msgid "Optimizer statistics are not transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" -" %s/vacuumdb %s--all --analyze-in-stages\n\n" +" %s/vacuumdb %s--all --analyze-in-stages" msgstr "Статистика оптимізатора не передається за допомогою pg_upgrade.\n" -"Після запуску нового серверу, розгляньте можливість запуску:\n" -" %s/vacuumdb %s--all --analyze-in-stages\n\n" +"Після запуску нового серверу розгляньте можливість запуску:\n" +" %s/vacuumdb %s--all --analyze-in-stages" -#: check.c:270 +#: check.c:773 #, c-format msgid "Running this script will delete the old cluster's data files:\n" -" %s\n" +" %s" msgstr "При запуску цього скрипту файли даних старого кластера будуть видалені:\n" -" %s\n" +" %s" -#: check.c:275 +#: check.c:778 #, c-format msgid "Could not create a script to delete the old cluster's data files\n" "because user-defined tablespaces or the new cluster's data directory\n" "exist in the old cluster directory. The old cluster's contents must\n" -"be deleted manually.\n" +"be deleted manually." msgstr "Не вдалося створити скрипт для видалення файлів даних старого кластеру,\n" "тому що каталог даних старого кластера містить користувацькі табличні\n" "простори або каталог даних нового кластера. Вміст старого кластера\n" -"треба буде видалити вручну.\n" +"треба буде видалити вручну." -#: check.c:287 +#: check.c:790 #, c-format msgid "Checking cluster versions" msgstr "Перевірка версій кластерів" -#: check.c:299 -#, c-format -msgid "This utility can only upgrade from PostgreSQL version 8.4 and later.\n" -msgstr "Ця утиліта може виконувати оновлення тільки з версії PostgreSQL 8.4 і новіше.\n" - -#: check.c:303 +#: check.c:802 #, c-format -msgid "This utility can only upgrade to PostgreSQL version %s.\n" -msgstr "Ця утиліта може тільки підвищувати версію PostgreSQL до %s.\n" +msgid "This utility can only upgrade from PostgreSQL version %s and later." +msgstr "Ця утиліта може виконувати оновлення тільки з версії PostgreSQL %s і новіше." -#: check.c:312 +#: check.c:807 #, c-format -msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n" -msgstr "Ця утиліта не може не може використовуватись щоб понижувати версію до більш старих основних версій PostgreSQL.\n" +msgid "This utility can only upgrade to PostgreSQL version %s." +msgstr "Ця утиліта може тільки підвищувати версію PostgreSQL до версії %s." -#: check.c:317 +#: check.c:816 #, c-format -msgid "Old cluster data and binary directories are from different major versions.\n" -msgstr "Каталог даних і двійковий каталог старого кластера з різних основних версій.\n" +msgid "This utility cannot be used to downgrade to older major PostgreSQL versions." +msgstr "Ця утиліта не може використовуватись для пониження версії до більш старих основних версій PostgreSQL." -#: check.c:320 +#: check.c:821 #, c-format -msgid "New cluster data and binary directories are from different major versions.\n" -msgstr "Каталог даних і двійковий каталог нового кластера з різних основних версій.\n" +msgid "Old cluster data and binary directories are from different major versions." +msgstr "Каталог даних і двійковий каталог старого кластера з різних основних версій." -#: check.c:337 +#: check.c:824 #, c-format -msgid "When checking a pre-PG 9.1 live old server, you must specify the old server's port number.\n" -msgstr "Для перевірки старого працюючого сервера до версії 9.1, вам необхідно вказати номер порта цього сервера.\n" +msgid "New cluster data and binary directories are from different major versions." +msgstr "Каталог даних нового кластера і двійковий каталог з різних основних версій." -#: check.c:341 +#: check.c:839 #, c-format -msgid "When checking a live server, the old and new port numbers must be different.\n" -msgstr "Для перевірки працюючого сервера, старий і новий номер порта повинні бути різними.\n" +msgid "When checking a live server, the old and new port numbers must be different." +msgstr "Для перевірки працюючого сервера, старий і новий номер порта повинні бути різними." -#: check.c:356 +#: check.c:859 #, c-format -msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "кодування для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n" +msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"" +msgstr "Новий кластер бази даних \"%s\" не порожній: знайдено відношення \"%s.%s\"" -#: check.c:361 -#, c-format -msgid "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "значення lc_collate для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n" - -#: check.c:364 -#, c-format -msgid "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" -msgstr "значення lc_ctype для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n" - -#: check.c:437 -#, c-format -msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" -msgstr "Новий кластер бази даних \"%s\" не порожній: знайдено відношення \"%s.%s\"\n" - -#: check.c:494 +#: check.c:882 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Перевірка каталогів табличних просторів кластера" -#: check.c:505 +#: check.c:893 #, c-format -msgid "new cluster tablespace directory already exists: \"%s\"\n" -msgstr "каталог нового кластерного табличного простору вже існує: \"%s\"\n" +msgid "new cluster tablespace directory already exists: \"%s\"" +msgstr "каталог нового кластерного табличного простору вже існує: \"%s\"" -#: check.c:538 +#: check.c:926 #, c-format msgid "\n" -"WARNING: new data directory should not be inside the old data directory, e.g. %s\n" +"WARNING: new data directory should not be inside the old data directory, i.e. %s" msgstr "\n" -"ПОПЕРЕДЖЕННЯ: новий каталог даних не повинен бути всередині старого каталогу даних, наприклад %s\n" +"ПОПЕРЕДЖЕННЯ: новий каталог даних не повинен бути всередині старого каталогу даних, наприклад %s" -#: check.c:562 +#: check.c:950 #, c-format msgid "\n" -"WARNING: user-defined tablespace locations should not be inside the data directory, e.g. %s\n" +"WARNING: user-defined tablespace locations should not be inside the data directory, i.e. %s" msgstr "\n" -"ПОПЕРЕДЖЕННЯ: користувацькі розташування табличних просторів не повинні бути всередині каталогу даних, наприклад %s\n" +"ПОПЕРЕДЖЕННЯ: користувацькі розташування табличних просторів не повинні бути всередині каталогу даних, наприклад %s" -#: check.c:572 +#: check.c:960 #, c-format msgid "Creating script to delete old cluster" msgstr "Створення скрипту для видалення старого кластеру" -#: check.c:575 check.c:839 check.c:937 check.c:1016 check.c:1278 file.c:336 -#: function.c:240 option.c:497 version.c:54 version.c:204 version.c:376 -#: version.c:511 -#, c-format -msgid "could not open file \"%s\": %s\n" -msgstr "не вдалося відкрити файл \"%s\": %s\n" - -#: check.c:631 +#: check.c:1014 #, c-format -msgid "could not add execute permission to file \"%s\": %s\n" -msgstr "не вдалося додати право виконання для файлу \"%s\": %s\n" +msgid "could not add execute permission to file \"%s\": %m" +msgstr "не вдалося додати право виконання для файлу \"%s\": %m" -#: check.c:651 +#: check.c:1034 #, c-format msgid "Checking database user is the install user" msgstr "Перевірка, чи є користувач бази даних стартовим користувачем" -#: check.c:667 +#: check.c:1050 #, c-format -msgid "database user \"%s\" is not the install user\n" -msgstr "користувач бази даних \"%s\" не є стартовим користувачем\n" +msgid "database user \"%s\" is not the install user" +msgstr "користувач бази даних \"%s\" не є стартовим користувачем" -#: check.c:678 +#: check.c:1061 #, c-format -msgid "could not determine the number of users\n" -msgstr "не вдалося визначити кількість користувачів\n" +msgid "could not determine the number of users" +msgstr "не вдалося визначити кількість користувачів" -#: check.c:686 +#: check.c:1069 #, c-format -msgid "Only the install user can be defined in the new cluster.\n" -msgstr "В новому кластері може бути визначеним тільки стартовий користувач.\n" +msgid "Only the install user can be defined in the new cluster." +msgstr "В новому кластері може бути визначеним тільки стартовий користувач." -#: check.c:706 +#: check.c:1098 #, c-format msgid "Checking database connection settings" msgstr "Перевірка параметрів підключення до бази даних" -#: check.c:728 +#: check.c:1124 +#, c-format +msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false" +msgstr "template0 не повинна дозволяти підключення, тобто pg_database.datallowconn повинно бути false" + +#: check.c:1150 check.c:1270 check.c:1367 check.c:1492 check.c:1568 +#: check.c:1626 check.c:1706 check.c:1897 check.c:2022 function.c:210 #, c-format -msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false\n" -msgstr "template0 не повинна дозволяти підключення, тобто pg_database.datallowconn повинно бути false\n" +msgid "fatal" +msgstr "збій" -#: check.c:738 +#: check.c:1151 #, c-format -msgid "All non-template0 databases must allow connections, i.e. their pg_database.datallowconn must be true\n" -msgstr "Всі бази даних, окрім template0, повинні дозволяти підключення, тобто pg_database.datallowconn повинно бути true\n" +msgid "All non-template0 databases must allow connections, i.e. their\n" +"pg_database.datallowconn must be true. Your installation contains\n" +"non-template0 databases with their pg_database.datallowconn set to\n" +"false. Consider allowing connection for all non-template0 databases\n" +"or drop the databases which do not allow connections. A list of\n" +"databases with the problem is in the file:\n" +" %s" +msgstr "Всі бази даних, окрім template0, повинні дозволяти підключення, тобто\n" +"pg_database.datallowconn повинно бути true. Ваша інсталяція містить\n" +"бази даних окрім template0 значення pg_database.datallowconn яких дорівнює \n" +"false. Розгляньте можливість надати дозвіл на з’єднання для всіх баз даних, \n" +"які не є шаблоном, або видалити баз даних, які не дозволяють з’єднання. \n" +"Список баз даних з проблемою знаходиться у файлі:\n" +" %s" -#: check.c:763 +#: check.c:1176 #, c-format msgid "Checking for prepared transactions" msgstr "Перевірка підготовлених транзакцій" -#: check.c:772 +#: check.c:1185 #, c-format -msgid "The source cluster contains prepared transactions\n" -msgstr "Початковий кластер містить підготовлені транзакції\n" +msgid "The source cluster contains prepared transactions" +msgstr "Початковий кластер містить підготовлені транзакції" -#: check.c:774 +#: check.c:1187 #, c-format -msgid "The target cluster contains prepared transactions\n" -msgstr "Цільовий кластер містить підготовлені транзакції\n" +msgid "The target cluster contains prepared transactions" +msgstr "Цільовий кластер містить підготовлені транзакції" -#: check.c:800 +#: check.c:1212 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Перевірка невідповідності при передаванні bigint в contrib/isn" -#: check.c:861 check.c:962 check.c:1038 check.c:1095 check.c:1154 check.c:1183 -#: check.c:1301 function.c:262 version.c:278 version.c:316 version.c:460 -#, c-format -msgid "fatal\n" -msgstr "збій\n" - -#: check.c:862 +#: check.c:1271 #, c-format msgid "Your installation contains \"contrib/isn\" functions which rely on the\n" "bigint data type. Your old and new clusters pass bigint values\n" @@ -244,909 +440,932 @@ msgid "Your installation contains \"contrib/isn\" functions which rely on the\n" "manually dump databases in the old cluster that use \"contrib/isn\"\n" "facilities, drop them, perform the upgrade, and then restore them. A\n" "list of the problem functions is in the file:\n" -" %s\n\n" +" %s" msgstr "Ваша інсталяція містить функції \"contrib/isn\", що використовують тип даних bigint. Старі та нові кластери передають значення bigint по-різному, тому цей кластер наразі неможливо оновити. Ви можете вручну вивантажити бази даних зі старого кластеру, що використовує засоби \"contrib/isn\", видалити їх, виконати оновлення, а потім відновити їх. Список проблемних функцій подано у файлі:\n" -" %s\n\n" +" %s" -#: check.c:885 +#: check.c:1293 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Перевірка постфіксних операторів визначених користувачем" -#: check.c:963 +#: check.c:1368 #, c-format msgid "Your installation contains user-defined postfix operators, which are not\n" "supported anymore. Consider dropping the postfix operators and replacing\n" "them with prefix operators or function calls.\n" "A list of user-defined postfix operators is in the file:\n" -" %s\n\n" +" %s" msgstr "Ваша інсталяція містить користувацькі постфіксні оператори, що більше не підтримуються.\n" "Розгляньте можливість видалення постфіксних операторів та заміни їх на префіксні оператори або виклики функцій.\n" "Список користувацьких постфіксних операторів знаходиться у файлі:\n" -" %s\n\n" +" %s" -#: check.c:984 +#: check.c:1392 +#, c-format +msgid "Checking for incompatible polymorphic functions" +msgstr "Перевірка несумісних поліморфних функцій" + +#: check.c:1493 +#, c-format +msgid "Your installation contains user-defined objects that refer to internal\n" +"polymorphic functions with arguments of type \"anyarray\" or \"anyelement\".\n" +"These user-defined objects must be dropped before upgrading and restored\n" +"afterwards, changing them to refer to the new corresponding functions with\n" +"arguments of type \"anycompatiblearray\" and \"anycompatible\".\n" +"A list of the problematic objects is in the file:\n" +" %s" +msgstr "У вашій інсталяції містяться користувацькі об'єкти, які посилаються на внутрішні\n" +"поліморфні функції з аргументами типу \"anyarray\" або \"anyelement\".\n" +"Ці користувацькі об'єкти повинні бути видалені перед оновленням і відновлені\n" +"після цього, змінивши їх посилання на нові відповідні функції з\n" +"аргументами типу \"anycompatiblearray\" і \"anycompatible\".\n" +"Список проблемних об'єктів знаходиться у файлі:\n" +" %s" + +#: check.c:1517 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Перевірка таблиць WITH OIDS" -#: check.c:1039 +#: check.c:1569 #, c-format msgid "Your installation contains tables declared WITH OIDS, which is not\n" "supported anymore. Consider removing the oid column using\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "A list of tables with the problem is in the file:\n" -" %s\n\n" +" %s" msgstr "Ваша інсталяція містить таблиці, створені як WITH OIDS, що більше не підтримуються. Розгляньте видалення стовпців, що містять oid за допомогою\n" " ALTER TABLE ... SET WITHOUT OIDS;\n" "Список проблемних таблиць подано у файлі:\n" -" %s\n\n" - -#: check.c:1067 -#, c-format -msgid "Checking for system-defined composite types in user tables" -msgstr "Перевірка складених типів визначених системою у таблицях користувача" - -#: check.c:1096 -#, 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:1124 -#, c-format -msgid "Checking for reg* data types in user tables" -msgstr "Перевірка типів даних reg* в користувацьких таблицях" +" %s" -#: check.c:1155 -#, c-format -msgid "Your installation contains one of the reg* data types in user tables.\n" -"These data types reference system OIDs that are not preserved by\n" -"pg_upgrade, 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 "Ваша інсталяція містить один з типів даних reg* у таблицях користувача.\n" -"Ці типи даних посилаються на OID системи, які не зберігаються за допомогою pg_upgrade, тому цей кластер наразі не може бути оновлений.\n" -"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" -"Список проблемних стовпців знаходиться у файлі:\n" -" %s\n\n" - -#: check.c:1177 -#, c-format -msgid "Checking for incompatible \"jsonb\" data type" -msgstr "Перевірка несумісного типу даних \"jsonb\"" - -#: check.c:1184 -#, c-format -msgid "Your installation contains the \"jsonb\" data type in user tables.\n" -"The internal format of \"jsonb\" changed during 9.4 beta so this\n" -"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 "Ваша інсталяція містить тип даних \"jsonb\" у таблицях користувача.\n" -"Внутрішній формат \"jsonb\" змінено під час версії 9.4 beta,\n" -"тому цей кластер наразі не може бути оновлений.\n" -"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" -"Список проблемних стовпців знаходиться у файлі:\n" -" %s\n\n" - -#: check.c:1206 +#: check.c:1596 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Перевірка ролей, які починаються з \"pg_\"" -#: check.c:1216 +#: check.c:1627 #, c-format -msgid "The source cluster contains roles starting with \"pg_\"\n" -msgstr "Початковий кластер містить ролі, які починаються з \"pg_\"\n" +msgid "Your installation contains roles starting with \"pg_\".\n" +"\"pg_\" is a reserved prefix for system roles. The cluster\n" +"cannot be upgraded until these roles are renamed.\n" +"A list of roles starting with \"pg_\" is in the file:\n" +" %s" +msgstr "Ваша інсталяція містить ролі, які починаються з \"pg_\".\n" +"\"pg_\" є зарезервованим префіксом для системних ролей. Кластер\n" +"не може бути оновлений, поки ці ролі не будуть перейменовані.\n" +"Список ролей, які починаються з \"pg_\" у файлі:\n" +" %s" -#: check.c:1218 -#, c-format -msgid "The target cluster contains roles starting with \"pg_\"\n" -msgstr "Цільовий кластер містить ролі, які починаються з \"pg_\"\n" - -#: check.c:1239 +#: check.c:1647 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "Перевірка користувацьких перетворення кодувань" -#: check.c:1302 +#: check.c:1707 #, c-format msgid "Your installation contains user-defined encoding conversions.\n" "The conversion function parameters changed in PostgreSQL version 14\n" "so this cluster cannot currently be upgraded. You can remove the\n" "encoding conversions in the old cluster and restart the upgrade.\n" "A list of user-defined encoding conversions is in the file:\n" -" %s\n\n" +" %s" msgstr "Ваша інсталяція містить користувацькі перетворення кодувань.\n" "Параметри функції перетворення змінено у версії PostgreSQL 14,\n" "тому цей кластер наразі не може бути оновлений.\n" "Ви можете видалити перетворення кодувань в старому кластері та перезапустити оновлення.\n" "Список перетворень кодувань знаходиться у файлі:\n" -" %s\n\n" +" %s" -#: check.c:1329 +#: check.c:1746 #, c-format -msgid "failed to get the current locale\n" -msgstr "не вдалося отримати поточну локаль\n" +msgid "Checking for new cluster logical replication slots" +msgstr "Перевірка наявності нових слотів логічної реплікації кластера" -#: check.c:1338 +#: check.c:1754 #, c-format -msgid "failed to get system locale name for \"%s\"\n" -msgstr "не вдалося отримати системне ім'я локалі для \"%s\"\n" +msgid "could not count the number of logical replication slots" +msgstr "не вдалося порахувати кількість слотів логічної реплікації" -#: check.c:1344 +#: check.c:1759 #, c-format -msgid "failed to restore old locale \"%s\"\n" -msgstr "не вдалося відновити стару локаль \"%s\"\n" +msgid "expected 0 logical replication slots but found %d" +msgstr "очікувалося 0 слотів логічної реплікації, але знайдено %d" -#: controldata.c:128 controldata.c:196 +#: check.c:1769 check.c:1820 #, c-format -msgid "could not get control data using %s: %s\n" -msgstr "не вдалося отримати контрольні дані за допомогою %s: %s\n" +msgid "could not determine parameter settings on new cluster" +msgstr "не вдалося визначити налаштування параметрів на новому кластері" -#: controldata.c:139 +#: check.c:1774 #, c-format -msgid "%d: database cluster state problem\n" -msgstr "%d: неприпустимий стан кластера баз даних\n" +msgid "\"wal_level\" must be \"logical\" but is set to \"%s\"" +msgstr "\"wal_level\" має бути \"logical\", але встановлено значення \"%s\"" -#: controldata.c:157 +#: check.c:1780 #, 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 "Початковий кластер завершив роботу в режимі відновлення. Щоб виконати оновлення, використайте документований спосіб з \"rsync\" або вимкніть його в режимі головного сервера.\n" +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of logical replication slots (%d) on the old cluster" +msgstr "\"max_replication_slots\" (%d) має бути більше або дорівнювати кількості слотів логічної реплікації (%d) на старому кластері" -#: controldata.c:159 +#: check.c:1812 #, 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 "Цільовий кластер завершив роботу в режимі відновлення. Щоб виконати оновлення, використайте документований спосіб з \"rsync\" або вимкніть його в режимі головного сервера.\n" +msgid "Checking for new cluster configuration for subscriptions" +msgstr "Перевірка нової конфігурації кластера для підписок" -#: controldata.c:164 +#: check.c:1824 #, c-format -msgid "The source cluster was not shut down cleanly.\n" -msgstr "Початковий кластер завершив роботу некоректно.\n" +msgid "\"max_replication_slots\" (%d) must be greater than or equal to the number of subscriptions (%d) on the old cluster" +msgstr "\"max_replication_slots\" (%d) має бути більше або дорівнювати кількості підписок (%d) на старому кластері" -#: controldata.c:166 +#: check.c:1846 #, c-format -msgid "The target cluster was not shut down cleanly.\n" -msgstr "Цільовий кластер завершив роботу некоректно.\n" +msgid "Checking for valid logical replication slots" +msgstr "Перевірка дійсних слотів логічної реплікації" -#: controldata.c:177 +#: check.c:1898 #, c-format -msgid "The source cluster lacks cluster state information:\n" -msgstr "В початковому кластері відсутня інформація про стан кластеру:\n" +msgid "Your installation contains logical replication slots that cannot be upgraded.\n" +"You can remove invalid slots and/or consume the pending WAL for other slots,\n" +"and then restart the upgrade.\n" +"A list of the problematic slots is in the file:\n" +" %s" +msgstr "Ваша інсталяція містить слоти логічної реплікації, які не можуть бути оновлені.\n" +"Ви можете видалити недійсні слоти та/або використати відкладений WAL для інших слотів,\n" +"і потім перезавантажити оновлення.\n" +"Список проблемних слотів знаходиться у файлі:\n" +" %s" -#: controldata.c:179 +#: check.c:1922 #, c-format -msgid "The target cluster lacks cluster state information:\n" -msgstr "В цільовому кластері відсутня інформація про стан кластеру:\n" +msgid "Checking for subscription state" +msgstr "Перевірка стану підписки" -#: controldata.c:209 dump.c:49 pg_upgrade.c:335 pg_upgrade.c:371 -#: relfilenode.c:243 server.c:33 util.c:79 +#: check.c:2023 #, c-format -msgid "%s" -msgstr "%s" +msgid "Your installation contains subscriptions without origin or having relations not in i (initialize) or r (ready) state.\n" +"You can allow the initial sync to finish for all relations and then restart the upgrade.\n" +"A list of the problematic subscriptions is in the file:\n" +" %s" +msgstr "У вашій інсталяції є підписки, які не мають походження або мають зв'язки, що не перебувають у стані i (ініціалізація) або r (готовність).\n" +"Ви можете дозволити початковій синхронізації завершитися для всіх зв'язків, а потім перезапустити оновлення.\n" +"Список проблемних підписок знаходиться у файлі:\n" +" %s" + +#: controldata.c:129 controldata.c:199 +#, c-format +msgid "could not get control data using %s: %m" +msgstr "не вдалося отримати контрольні дані за допомогою %s: %m" + +#: controldata.c:139 +#, c-format +msgid "%d: database cluster state problem" +msgstr "%d: неприпустимий стан кластера баз даних" -#: controldata.c:216 +#: controldata.c:158 #, c-format -msgid "%d: pg_resetwal problem\n" -msgstr "%d: проблема pg_resetwal\n" +msgid "The source cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary." +msgstr "Початковий кластер завершив роботу в режимі відновлення. Щоб виконати оновлення, використайте документований спосіб з \"rsync\" або вимкніть його в режимі головного серверу." -#: 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 +#: controldata.c:160 #, c-format -msgid "%d: controldata retrieval problem\n" -msgstr "%d: проблема з отриманням контрольних даних\n" +msgid "The target cluster was shut down while in recovery mode. To upgrade, use \"rsync\" as documented or shut it down as a primary." +msgstr "Цільовий кластер завершив роботу в режимі відновлення. Щоб виконати оновлення, використайте документований спосіб з \"rsync\" або вимкніть його в режимі головного серверу." -#: controldata.c:572 +#: controldata.c:165 #, c-format -msgid "The source cluster lacks some required control information:\n" -msgstr "У початковому кластері відсутня необхідна контрольна інформація:\n" +msgid "The source cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "Кластер джерел не був вимкнений повністю, про що повідомлялося у звітах стану: \"%s\"" -#: controldata.c:575 +#: controldata.c:167 #, c-format -msgid "The target cluster lacks some required control information:\n" -msgstr "У цільовому кластері відсутня необхідна контрольна інформація:\n" +msgid "The target cluster was not shut down cleanly, state reported as: \"%s\"" +msgstr "Цільовий кластер не був закритий \"чисто\", про що повідомив стан: \"%s\"" + +#: controldata.c:175 controldata.c:507 +#, c-format +msgid "could not get control data using %s: %s" +msgstr "не вдалося отримати контрольні дані за допомогою %s: %s" + +#: controldata.c:181 +#, c-format +msgid "The source cluster lacks cluster state information:" +msgstr "В початковому кластері відсутня інформація про стан кластера:" + +#: controldata.c:183 +#, c-format +msgid "The target cluster lacks cluster state information:" +msgstr "В цільовому кластері відсутня інформація про стан кластера:" + +#: controldata.c:213 dump.c:50 exec.c:118 pg_upgrade.c:556 pg_upgrade.c:596 +#: pg_upgrade.c:945 relfilenumber.c:233 server.c:34 util.c:337 +#, c-format +msgid "%s" +msgstr "%s" + +#: controldata.c:220 +#, c-format +msgid "%d: pg_resetwal problem" +msgstr "%d: проблема pg_resetwal" + +#: controldata.c:230 controldata.c:240 controldata.c:251 controldata.c:262 +#: controldata.c:273 controldata.c:292 controldata.c:303 controldata.c:314 +#: controldata.c:325 controldata.c:336 controldata.c:347 controldata.c:358 +#: controldata.c:361 controldata.c:365 controldata.c:375 controldata.c:387 +#: controldata.c:398 controldata.c:409 controldata.c:420 controldata.c:431 +#: controldata.c:442 controldata.c:453 controldata.c:464 controldata.c:475 +#: controldata.c:486 controldata.c:497 +#, c-format +msgid "%d: controldata retrieval problem" +msgstr "%d: проблема з отриманням контрольних даних" #: controldata.c:578 #, c-format -msgid " checkpoint next XID\n" -msgstr " наступний XID контрольної точки\n" +msgid "The source cluster lacks some required control information:" +msgstr "У початковому кластері відсутня необхідна контрольна інформація:" #: controldata.c:581 #, c-format -msgid " latest checkpoint next OID\n" -msgstr " наступний OID останньої контрольної точки\n" +msgid "The target cluster lacks some required control information:" +msgstr "У цільовому кластері відсутня необхідна контрольна інформація:" #: controldata.c:584 #, c-format -msgid " latest checkpoint next MultiXactId\n" -msgstr " наступний MultiXactId останньої контрольної точки\n" +msgid " checkpoint next XID" +msgstr " наступний XID контрольної точки" -#: controldata.c:588 +#: controldata.c:587 #, c-format -msgid " latest checkpoint oldest MultiXactId\n" -msgstr " найстарший MultiXactId останньої контрольної точки\n" +msgid " latest checkpoint next OID" +msgstr " наступний OID останньої контрольної точки" -#: controldata.c:591 +#: controldata.c:590 #, c-format -msgid " latest checkpoint oldestXID\n" -msgstr " найстарший oldestXID останньої контрольної точки\n" +msgid " latest checkpoint next MultiXactId" +msgstr " наступний MultiXactId останньої контрольної точки" #: controldata.c:594 #, c-format -msgid " latest checkpoint next MultiXactOffset\n" -msgstr " наступний MultiXactOffset останньої контрольної точки\n" +msgid " latest checkpoint oldest MultiXactId" +msgstr " найстарший MultiXactId останньої контрольної точки" #: controldata.c:597 #, c-format -msgid " first WAL segment after reset\n" -msgstr " перший сегмет WAL після скидання\n" +msgid " latest checkpoint oldestXID" +msgstr " найстарший oldestXID останньої контрольної точки" #: controldata.c:600 #, c-format -msgid " float8 argument passing method\n" -msgstr " метод передачі аргументу float8\n" +msgid " latest checkpoint next MultiXactOffset" +msgstr " наступний MultiXactOffset останньої контрольної точки" #: controldata.c:603 #, c-format -msgid " maximum alignment\n" -msgstr " максимальне вирівнювання\n" +msgid " first WAL segment after reset" +msgstr " перший сегмет WAL після скидання" #: controldata.c:606 #, c-format -msgid " block size\n" -msgstr " розмір блоку\n" +msgid " float8 argument passing method" +msgstr " метод передачі аргументу float8" #: controldata.c:609 #, c-format -msgid " large relation segment size\n" -msgstr " розмір сегменту великого відношення\n" +msgid " maximum alignment" +msgstr " максимальне вирівнювання" #: controldata.c:612 #, c-format -msgid " WAL block size\n" -msgstr " розмір блоку WAL\n" +msgid " block size" +msgstr " розмір блоку" #: controldata.c:615 #, c-format -msgid " WAL segment size\n" -msgstr " розмір сегменту WAL\n" +msgid " large relation segment size" +msgstr " розмір сегменту великого відношення" #: controldata.c:618 #, c-format -msgid " maximum identifier length\n" -msgstr " максимальна довжина ідентифікатора\n" +msgid " WAL block size" +msgstr " розмір блоку WAL" #: controldata.c:621 #, c-format -msgid " maximum number of indexed columns\n" -msgstr " максимальна кількість індексованих стовпців\n" +msgid " WAL segment size" +msgstr " розмір сегменту WAL" #: controldata.c:624 #, c-format -msgid " maximum TOAST chunk size\n" -msgstr " максимальний розмір порції TOAST\n" +msgid " maximum identifier length" +msgstr " максимальна довжина ідентифікатора" -#: controldata.c:628 +#: controldata.c:627 #, c-format -msgid " large-object chunk size\n" -msgstr " розмір порції великого об'єкту\n" +msgid " maximum number of indexed columns" +msgstr " максимальна кількість індексованих стовпців" -#: controldata.c:631 +#: controldata.c:630 #, c-format -msgid " dates/times are integers?\n" -msgstr " дата/час представлені цілими числами?\n" +msgid " maximum TOAST chunk size" +msgstr " максимальний розмір порції TOAST" -#: controldata.c:635 +#: controldata.c:634 #, c-format -msgid " data checksum version\n" -msgstr " версія контрольних сум даних\n" +msgid " large-object chunk size" +msgstr " розмір порції великого об'єкту" #: controldata.c:637 #, c-format -msgid "Cannot continue without required control information, terminating\n" -msgstr "Не можна продовжити без необхідної контрольної інформації, завершення\n" +msgid " dates/times are integers?" +msgstr " дата/час представлені цілими числами?" -#: controldata.c:652 +#: controldata.c:641 #, c-format -msgid "old and new pg_controldata alignments are invalid or do not match\n" -"Likely one cluster is a 32-bit install, the other 64-bit\n" -msgstr "старе і нове вирівнювання в pg_controldata неприпустимі або не збігаються\n" -"Ймовірно, один кластер встановлений у 32-бітній системі, а інший - у 64-бітній\n" +msgid " data checksum version" +msgstr " версія контрольних сум даних" -#: controldata.c:656 +#: controldata.c:643 #, c-format -msgid "old and new pg_controldata block sizes are invalid or do not match\n" -msgstr "старий і новий розмір блоків в pg_controldata неприпустимі або не збігаються\n" +msgid "Cannot continue without required control information, terminating" +msgstr "Не можна продовжити без необхідної контрольної інформації, завершення" -#: controldata.c:659 +#: controldata.c:658 #, c-format -msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match\n" -msgstr "старий і новий максимальний розмір сегментів відношень в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata alignments are invalid or do not match.\n" +"Likely one cluster is a 32-bit install, the other 64-bit" +msgstr "старе і нове вирівнювання в pg_controldata неприпустимі або не збігаються\n" +"Ймовірно, один кластер встановлений у 32-бітній системі, а інший - у 64-бітній" #: controldata.c:662 #, c-format -msgid "old and new pg_controldata WAL block sizes are invalid or do not match\n" -msgstr "старий і новий розмір блоків WAL в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata block sizes are invalid or do not match" +msgstr "старий і новий розмір блоків в pg_controldata неприпустимі або не збігаються" #: controldata.c:665 #, c-format -msgid "old and new pg_controldata WAL segment sizes are invalid or do not match\n" -msgstr "старий і новий розмір сегментів WAL в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match" +msgstr "старий і новий максимальний розмір сегментів відношень в pg_controldata неприпустимі або не збігаються" #: controldata.c:668 #, c-format -msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match\n" -msgstr "стара і нова максимальна довжина ідентифікаторів в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata WAL block sizes are invalid or do not match" +msgstr "старий і новий розмір блоків WAL в pg_controldata неприпустимі або не збігаються" #: controldata.c:671 #, c-format -msgid "old and new pg_controldata maximum indexed columns are invalid or do not match\n" -msgstr "стара і нова максимальна кількість індексованих стовпців в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata WAL segment sizes are invalid or do not match" +msgstr "старий і новий розмір сегментів WAL в pg_controldata неприпустимі або не збігаються" #: controldata.c:674 #, c-format -msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match\n" -msgstr "старий і новий максимальний розмір порції TOAST в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match" +msgstr "стара і нова максимальна довжина ідентифікаторів в pg_controldata неприпустимі або не збігаються" -#: controldata.c:679 +#: controldata.c:677 #, c-format -msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match\n" -msgstr "старий і новий розмір порції великого об'єкту в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata maximum indexed columns are invalid or do not match" +msgstr "стара і нова максимальна кількість індексованих стовпців в pg_controldata неприпустимі або не збігаються" -#: controldata.c:682 +#: controldata.c:680 #, c-format -msgid "old and new pg_controldata date/time storage types do not match\n" -msgstr "старий і новий тип сховища дати/часу в pg_controldata неприпустимі або не збігаються\n" +msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match" +msgstr "старий і новий максимальний розмір порції TOAST в pg_controldata неприпустимі або не збігаються" -#: controldata.c:695 +#: controldata.c:685 #, c-format -msgid "old cluster does not use data checksums but the new one does\n" -msgstr "старий кластер не використовує контрольні суми даних, але новий використовує\n" +msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match" +msgstr "старий і новий розмір порції великого об'єкту в pg_controldata неприпустимі або не збігаються" -#: controldata.c:698 +#: controldata.c:688 #, c-format -msgid "old cluster uses data checksums but the new one does not\n" -msgstr "старий кластер використовує контрольні суми даних, але новий не використовує\n" +msgid "old and new pg_controldata date/time storage types do not match" +msgstr "старий і новий тип сховища дати/часу в pg_controldata неприпустимі або не збігаються" -#: controldata.c:700 +#: controldata.c:701 #, c-format -msgid "old and new cluster pg_controldata checksum versions do not match\n" -msgstr "стара і нова версія контрольних сум кластера в pg_controldata не збігаються\n" +msgid "old cluster does not use data checksums but the new one does" +msgstr "старий кластер не використовує контрольні суми даних, але новий використовує" -#: controldata.c:711 +#: controldata.c:704 +#, c-format +msgid "old cluster uses data checksums but the new one does not" +msgstr "старий кластер використовує контрольні суми даних, але новий не використовує" + +#: controldata.c:706 +#, c-format +msgid "old and new cluster pg_controldata checksum versions do not match" +msgstr "стара і нова версія контрольних сум кластера в pg_controldata не збігаються" + +#: controldata.c:717 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Додавання суфікса \".old\" до старого файла global/pg_control" -#: controldata.c:716 +#: controldata.c:722 #, c-format -msgid "Unable to rename %s to %s.\n" -msgstr "Не вдалося перейменувати %s на %s.\n" +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" -#: controldata.c:719 +#: controldata.c:726 #, c-format msgid "\n" "If you want to start the old cluster, you will need to remove\n" "the \".old\" suffix from %s/global/pg_control.old.\n" "Because \"link\" mode was used, the old cluster cannot be safely\n" -"started once the new cluster has been started.\n\n" +"started once the new cluster has been started." msgstr "\n" "Якщо ви хочете запустити старий кластер, вам необхідно видалити\n" "суфікс \".old\" з файлу %s/global/pg_control.old. Через використання\n" "режиму \"link\" робота старого кластера після запуску нового може бути\n" -"небезпечна.\n\n" +"небезпечна." #: dump.c:20 #, c-format msgid "Creating dump of global objects" msgstr "Створення вивантаження глобальних об'єктів" -#: dump.c:31 +#: dump.c:32 #, c-format -msgid "Creating dump of database schemas\n" -msgstr "Створення вивантаження схем бази даних\n" +msgid "Creating dump of database schemas" +msgstr "Створення дампу схем бази даних" -#: exec.c:45 +#: exec.c:47 #, c-format -msgid "could not get pg_ctl version data using %s: %s\n" -msgstr "не вдалося отримати дані версії pg_ctl, виконавши %s: %s\n" +msgid "could not get pg_ctl version data using %s: %m" +msgstr "не вдалося отримати дані версії pg_ctl, виконавши %s: %m" #: exec.c:51 #, c-format -msgid "could not get pg_ctl version output from %s\n" -msgstr "не вдалося отримати версію pg_ctl з результату %s\n" +msgid "could not get pg_ctl version data using %s: %s" +msgstr "не вдалося отримати дані версії pg_ctl, виконавши %s: %s" -#: exec.c:105 exec.c:109 +#: exec.c:55 #, c-format -msgid "command too long\n" -msgstr "команда занадто довга\n" +msgid "could not get pg_ctl version output from %s" +msgstr "не вдалося отримати версію pg_ctl з результату %s" -#: exec.c:111 util.c:37 util.c:225 +#: exec.c:112 exec.c:116 #, c-format -msgid "%s\n" -msgstr "%s\n" +msgid "command too long" +msgstr "команда занадто довга" -#: exec.c:150 option.c:217 +#: exec.c:160 pg_upgrade.c:311 #, c-format -msgid "could not open log file \"%s\": %m\n" -msgstr "не вдалося відкрити файл журналу \"%s\": %m\n" +msgid "could not open log file \"%s\": %m" +msgstr "не вдалося відкрити файл журналу \"%s\": %m" -#: exec.c:179 +#: exec.c:192 #, c-format msgid "\n" "*failure*" msgstr "\n" "*неполадка*" -#: exec.c:182 +#: exec.c:195 #, c-format -msgid "There were problems executing \"%s\"\n" -msgstr "Під час виконання \"%s\" виникли проблеми\n" +msgid "There were problems executing \"%s\"" +msgstr "Під час виконання \"%s\" виникли проблеми" -#: exec.c:185 +#: exec.c:198 #, c-format msgid "Consult the last few lines of \"%s\" or \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "Щоб зрозуміти причину неполадки, зверніться до декількох останніх рядків\n" -"файлу \"%s\" або \"%s\".\n" +"файлу \"%s\" або \"%s\"." -#: exec.c:190 +#: exec.c:203 #, c-format msgid "Consult the last few lines of \"%s\" for\n" -"the probable cause of the failure.\n" +"the probable cause of the failure." msgstr "Щоб зрозуміти причину неполадки, зверніться до декількох останніх рядків\n" -"файлу \"%s\".\n" +"файлу \"%s\"." -#: exec.c:205 option.c:226 +#: exec.c:218 pg_upgrade.c:321 #, c-format -msgid "could not write to log file \"%s\": %m\n" -msgstr "не вдалося записати до файлу журналу \"%s\": %m\n" +msgid "could not write to log file \"%s\": %m" +msgstr "не вдалося записати до файлу журналу \"%s\": %m" -#: exec.c:231 +#: exec.c:244 #, c-format -msgid "could not open file \"%s\" for reading: %s\n" -msgstr "не вдалося відкрити файл \"%s\" для читання: %s\n" +msgid "could not open file \"%s\" for reading: %m" +msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: exec.c:258 +#: exec.c:270 #, c-format -msgid "You must have read and write access in the current directory.\n" -msgstr "Ви повинні мати права на читання і запис в поточному каталозі.\n" +msgid "You must have read and write access in the current directory." +msgstr "Ви повинні мати права на читання і запис в поточному каталозі." -#: exec.c:311 exec.c:377 +#: exec.c:323 exec.c:389 exec.c:439 #, c-format -msgid "check for \"%s\" failed: %s\n" -msgstr "перевірка \"%s\" провалена: %s\n" +msgid "check for \"%s\" failed: %m" +msgstr "перевірка \"%s\" провалена: %m" -#: exec.c:314 exec.c:380 +#: exec.c:326 exec.c:392 #, c-format -msgid "\"%s\" is not a directory\n" -msgstr "\"%s\" не є каталогом\n" +msgid "\"%s\" is not a directory" +msgstr "\"%s\" не є каталогом" -#: exec.c:430 +#: exec.c:444 #, c-format -msgid "check for \"%s\" failed: not a regular file\n" -msgstr "перевірка \"%s\" провалена: це не звичайний файл\n" +msgid "check for \"%s\" failed: cannot execute" +msgstr "помилка перевірки \"%s\": не можна виконати" -#: exec.c:433 +#: exec.c:454 #, c-format -msgid "check for \"%s\" failed: cannot execute (permission denied)\n" -msgstr "перевірка \"%s\" провалена: виконання неможливе (немає доступу)\n" +msgid "check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"" +msgstr "помилка перевірки \"%s\": неправильна версія: знайдено \"%s\", очікувалось \"%s\"" -#: exec.c:439 +#: file.c:44 #, c-format -msgid "check for \"%s\" failed: cannot execute\n" -msgstr "помилка перевірки \"%s\": не можна виконати\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "помилка при клонуванні відношення \"%s.%s\" (\"%s\" до \"%s\"): %m" -#: exec.c:449 +#: file.c:51 #, c-format -msgid "check for \"%s\" failed: incorrect version: found \"%s\", expected \"%s\"\n" -msgstr "помилка перевірки \"%s\": неправильна версія: знайдено \"%s\", очікувалось \"%s\"\n" +msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "помилка при клонуванні відношення \"%s.%s\": не вдалося відкрити файл \"%s\": %m" -#: file.c:43 file.c:61 +#: file.c:56 #, c-format -msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "помилка при клонуванні відношення \"%s.%s\" (\"%s\" до \"%s\"): %s\n" +msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "помилка при клонуванні відношення \"%s.%s\": не вдалося створити файл \"%s\": %m" -#: file.c:50 +#: file.c:65 #, c-format -msgid "error while cloning relation \"%s.%s\": could not open file \"%s\": %s\n" -msgstr "помилка при клонуванні відношення \"%s.%s\": не вдалося відкрити файл \"%s\": %s\n" +msgid "error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s" +msgstr "помилка при клонуванні відношення \"%s.%s\" (\"%s\" до \"%s\"): %s" -#: file.c:55 +#: file.c:91 file.c:160 file.c:233 #, c-format -msgid "error while cloning relation \"%s.%s\": could not create file \"%s\": %s\n" -msgstr "помилка при клонуванні відношення \"%s.%s\": не вдалося створити файл \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося відкрити файл \"%s\": %m" -#: file.c:87 file.c:190 +#: file.c:96 file.c:165 file.c:242 #, c-format -msgid "error while copying relation \"%s.%s\": could not open file \"%s\": %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося відкрити файл \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося створити файл \"%s\": %m" -#: file.c:92 file.c:199 +#: file.c:110 file.c:266 #, c-format -msgid "error while copying relation \"%s.%s\": could not create file \"%s\": %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося створити файл \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося прочитати файл \"%s\": %m" -#: file.c:106 file.c:223 +#: file.c:122 file.c:344 #, c-format -msgid "error while copying relation \"%s.%s\": could not read file \"%s\": %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося прочитати файл \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося записати до файлу \"%s\": %m" -#: file.c:118 file.c:301 +#: file.c:136 #, c-format -msgid "error while copying relation \"%s.%s\": could not write file \"%s\": %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося записати до файлу \"%s\": %s\n" +msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "помилка під час копіювання відношення \"%s.%s\" ( з \"%s\" в \"%s\"): %m" -#: file.c:132 +#: file.c:172 #, c-format -msgid "error while copying relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\" ( з \"%s\" в \"%s\"): %s\n" - -#: file.c:151 -#, c-format -msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "помилка під час створення посилання для відношення \"%s.%s\" ( з \"%s\" в \"%s\"): %s\n" +msgid "error while copying relation \"%s.%s\": could not copy file range from \"%s\" to \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося скопіювати діапазон файлу з \"%s\" до \"%s\": %m" #: file.c:194 #, c-format -msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %s\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося отримати стан файлу \"%s\": %s\n" +msgid "error while creating link for relation \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "помилка під час створення посилання для відношення \"%s.%s\" ( з \"%s\" в \"%s\"): %m" -#: file.c:226 +#: file.c:237 #, c-format -msgid "error while copying relation \"%s.%s\": partial page found in file \"%s\"\n" -msgstr "помилка під час копіювання відношення \"%s.%s\": у файлі \"%s\" знайдена часткова сторінка\n" +msgid "error while copying relation \"%s.%s\": could not stat file \"%s\": %m" +msgstr "помилка під час копіювання відношення \"%s.%s\": не вдалося отримати стан файлу \"%s\": %m" -#: file.c:328 file.c:345 +#: file.c:269 #, c-format -msgid "could not clone file between old and new data directories: %s\n" -msgstr "не вдалося клонувати файл між старим і новим каталогами даних: %s\n" +msgid "error while copying relation \"%s.%s\": partial page found in file \"%s\"" +msgstr "помилка під час копіювання відношення \"%s.%s\": у файлі \"%s\" знайдена часткова сторінка" -#: file.c:341 +#: file.c:371 file.c:387 #, c-format -msgid "could not create file \"%s\": %s\n" -msgstr "не можливо створити файл \"%s\": %s\n" +msgid "could not clone file between old and new data directories: %m" +msgstr "не вдалося клонувати файл між старим і новим каталогами даних: %m" -#: file.c:352 +#: file.c:383 file.c:420 #, c-format -msgid "file cloning not supported on this platform\n" -msgstr "клонування файлів не підтримується на цій платформі\n" +msgid "could not create file \"%s\": %m" +msgstr "неможливо створити файл \"%s\": %m" -#: file.c:369 +#: file.c:393 #, c-format -msgid "could not create hard link between old and new data directories: %s\n" -"In link mode the old and new data directories must be on the same file system.\n" -msgstr "не вдалося створити жорстке посилання між старим і новим каталогами даних: %s\n" -"В режимі посилань старий і новий каталоги даних повинні знаходитись в одній файловій системі.\n" +msgid "file cloning not supported on this platform" +msgstr "клонування файлів не підтримується на цій платформі" -#: function.c:114 +#: file.c:424 #, c-format -msgid "\n" -"The old cluster has a \"plpython_call_handler\" function defined\n" -"in the \"public\" schema which is a duplicate of the one defined\n" -"in the \"pg_catalog\" schema. You can confirm this by executing\n" -"in psql:\n\n" -" \\df *.plpython_call_handler\n\n" -"The \"public\" schema version of this function was created by a\n" -"pre-8.1 install of plpython, and must be removed for pg_upgrade\n" -"to complete because it references a now-obsolete \"plpython\"\n" -"shared object file. You can remove the \"public\" schema version\n" -"of this function by running the following command:\n\n" -" DROP FUNCTION public.plpython_call_handler()\n\n" -"in each affected database:\n\n" -msgstr "\n" -"Старий кластер має функцію \"plpython_call_handler\", визначену в схемі\n" -"\"public\", яка є дублікатом функції, визначеної в схемі \"pg_catalog\". Ви\n" -"можете переконатися в цьому, виконавши в psql:\n\n" -" \\df *.plpython_call_handler\n\n" -"Версія цієї функції в схемі \"public\" була створена встановленням plpython \n" -"версії до 8.1 і повинна бути видалена до завершення процедури pg_upgrade,\n" -"адже вона посилається на застарілий спільний об'єктний файл \"plpython\". Ви\n" -"можете видалити версію цієї функції зі схеми \"public\", виконавши наступну\n" -"команду:\n\n" -" DROP FUNCTION public.plpython_call_handler()\n\n" -"у кожній базі даних, якої це стосується:\n\n" +msgid "could not copy file range between old and new data directories: %m" +msgstr "не вдалося скопіювати діапазон файлу між старим і новим каталогами даних: %m" -#: function.c:132 +#: file.c:430 #, c-format -msgid " %s\n" -msgstr " %s\n" +msgid "copy_file_range not supported on this platform" +msgstr "copy_file_range не підтримується на цій платформі" -#: function.c:142 +#: file.c:447 #, c-format -msgid "Remove the problem functions from the old cluster to continue.\n" -msgstr "Видаліть проблемні функції старого кластера для продовження.\n" +msgid "could not create hard link between old and new data directories: %m\n" +"In link mode the old and new data directories must be on the same file system." +msgstr "не вдалося створити жорстке посилання між старим і новим каталогами даних: %m\n" +"В режимі посилань старий і новий каталоги даних повинні знаходитись в одній файловій системі." -#: function.c:189 +#: function.c:154 #, c-format msgid "Checking for presence of required libraries" msgstr "Перевірка наявності необхідних бібліотек" -#: function.c:242 +#: function.c:190 #, c-format msgid "could not load library \"%s\": %s" msgstr "не вдалося завантажити бібліотеку \"%s\": %s" -#: function.c:253 +#: function.c:201 #, c-format msgid "In database: %s\n" msgstr "У базі даних: %s\n" -#: function.c:263 +#: function.c:211 #, c-format msgid "Your installation references loadable libraries that are missing from the\n" "new installation. You can add these libraries to the new installation,\n" "or remove the functions using them from the old installation. A list of\n" "problem libraries is in the file:\n" -" %s\n\n" +" %s" msgstr "У вашій інсталяції є посилання на завантажувані бібліотеки, що \n" "відсутні в новій інсталяції. Ви можете додати ці бібліотеки до нової інсталяції\n" "або видалити функції, які використовують їх зі старої інсталяції. Список\n" "проблемних бібліотек подано у файлі:\n" -" %s\n\n" +" %s" -#: info.c:131 +#: info.c:128 #, c-format -msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"\n" -msgstr "Імена відношень з OID %u в базі даних \"%s\" не збігаються: старе ім'я \"%s.%s\", нове ім'я \"%s.%s\"\n" +msgid "Relation names for OID %u in database \"%s\" do not match: old name \"%s.%s\", new name \"%s.%s\"" +msgstr "Імена відношень з OID %u в базі даних \"%s\" не збігаються: старе ім'я \"%s.%s\", нове ім'я \"%s.%s\"" -#: info.c:151 +#: info.c:148 #, c-format -msgid "Failed to match up old and new tables in database \"%s\"\n" -msgstr "Не вдалося зіставити старі таблиці з новими в базі даних \"%s\"\n" +msgid "Failed to match up old and new tables in database \"%s\"" +msgstr "Не вдалося зіставити старі таблиці з новими в базі даних \"%s\"" -#: info.c:240 +#: info.c:229 #, c-format msgid " which is an index on \"%s.%s\"" msgstr " це індекс в \"%s.%s\"" -#: info.c:250 +#: info.c:239 #, c-format msgid " which is an index on OID %u" msgstr " це індекс у відношенні з OID %u" -#: info.c:262 +#: info.c:251 #, c-format msgid " which is the TOAST table for \"%s.%s\"" msgstr " це TOAST-таблиця для \"%s.%s\"" -#: info.c:270 +#: info.c:259 #, c-format msgid " which is the TOAST table for OID %u" msgstr " це TOAST-таблиця для відношення з OID %u" -#: info.c:274 +#: info.c:263 #, c-format -msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s\n" -msgstr "У старому кластері не знайдено відповідності для нового відношення з OID %u в базі даних %s\": %s\n" +msgid "No match found in old cluster for new relation with OID %u in database \"%s\": %s" +msgstr "У старому кластері не знайдено відповідності для нового відношення з OID %u в базі даних %s\": %s" -#: info.c:277 +#: info.c:266 #, c-format -msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s\n" -msgstr "У новому кластері не знайдено відповідності для старого відношення з OID %u в базі даних \"%s\": %s\n" +msgid "No match found in new cluster for old relation with OID %u in database \"%s\": %s" +msgstr "У новому кластері не знайдено відповідності для старого відношення з OID %u в базі даних \"%s\": %s" -#: info.c:289 +#: info.c:300 #, c-format -msgid "mappings for database \"%s\":\n" -msgstr "відображення для бази даних \"%s\":\n" +msgid "\n" +"source databases:" +msgstr "\n" +"вихідні бази даних:" -#: info.c:292 +#: info.c:302 #, c-format -msgid "%s.%s: %u to %u\n" -msgstr "%s.%s: %u в %u\n" +msgid "\n" +"target databases:" +msgstr "\n" +"цільові бази даних:" -#: info.c:297 info.c:633 +#: info.c:346 #, c-format -msgid "\n\n" -msgstr "\n\n" +msgid "template0 not found" +msgstr "template0 не знайдено" -#: info.c:322 +#: info.c:805 #, c-format -msgid "\n" -"source databases:\n" -msgstr "\n" -"вихідні бази даних:\n" +msgid "Database: \"%s\"" +msgstr "База даних: %s\"" -#: info.c:324 +#: info.c:818 #, c-format -msgid "\n" -"target databases:\n" -msgstr "\n" -"цільові бази даних:\n" +msgid "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" +msgstr "relname: \"%s.%s\", reloid: %u, reltblspace: \"%s\"" -#: info.c:631 +#: info.c:832 #, c-format -msgid "Database: %s\n" -msgstr "База даних: %s\n" +msgid "Logical replication slots in the database:" +msgstr "Логічні слоти реплікації в базі даних:" -#: info.c:644 +#: info.c:838 #, c-format -msgid "relname: %s.%s: reloid: %u reltblspace: %s\n" -msgstr "ім'я_відношення: %s.%s: oid_відношення: %u табл_простір: %s\n" +msgid "slot name: \"%s\", output plugin: \"%s\", two_phase: %s" +msgstr "назва слоту: \"%s\", плагін виводу: \"%s\", two_phase: %s" -#: option.c:102 +#: option.c:105 #, c-format -msgid "%s: cannot be run as root\n" -msgstr "%s: не може виконуватись як root\n" +msgid "%s: cannot be run as root" +msgstr "%s: не можна запустити як root" -#: option.c:170 +#: option.c:172 #, c-format -msgid "invalid old port number\n" -msgstr "неприпустимий старий номер порту\n" +msgid "invalid old port number" +msgstr "неприпустимий старий номер порту" -#: option.c:175 +#: option.c:177 #, c-format -msgid "invalid new port number\n" -msgstr "неприпустимий новий номер порту\n" +msgid "invalid new port number" +msgstr "неприпустимий новий номер порту" -#: option.c:207 +#: option.c:216 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n" -#: option.c:214 +#: option.c:223 #, c-format -msgid "too many command-line arguments (first is \"%s\")\n" -msgstr "забагато аргументів у командному рядку (перший \"%s\")\n" +msgid "too many command-line arguments (first is \"%s\")" +msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: option.c:220 +#: option.c:229 #, c-format -msgid "Running in verbose mode\n" -msgstr "Виконується в детальному режимі\n" +msgid "Running in verbose mode" +msgstr "Виконується в детальному режимі" -#: option.c:251 +#: option.c:247 msgid "old cluster binaries reside" msgstr "розташування двійкових даних старого кластера" -#: option.c:253 +#: option.c:249 msgid "new cluster binaries reside" msgstr "розташування двійкових даних нового кластера" -#: option.c:255 +#: option.c:251 msgid "old cluster data resides" msgstr "розташування даних старого кластера" -#: option.c:257 +#: option.c:253 msgid "new cluster data resides" msgstr "розташування даних нового кластера" -#: option.c:259 +#: option.c:255 msgid "sockets will be created" msgstr "сокети будуть створені" -#: option.c:276 option.c:374 +#: option.c:272 option.c:374 #, c-format -msgid "could not determine current directory\n" -msgstr "не вдалося визначити поточний каталог\n" +msgid "could not determine current directory" +msgstr "не вдалося визначити поточний каталог" -#: option.c:279 +#: option.c:275 #, c-format -msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows\n" -msgstr "у Windows не можна виконати pg_upgrade всередині каталогу даних нового кластера\n" +msgid "cannot run pg_upgrade from inside the new cluster data directory on Windows" +msgstr "у Windows не можна виконати pg_upgrade всередині каталогу даних нового кластера" -#: option.c:288 +#: option.c:284 #, c-format msgid "pg_upgrade upgrades a PostgreSQL cluster to a different major version.\n\n" msgstr "pg_upgrade оновлює кластер PostgreSQL до іншої основної версії.\n\n" -#: option.c:289 +#: option.c:285 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: option.c:290 +#: option.c:286 #, c-format msgid " pg_upgrade [OPTION]...\n\n" msgstr " pg_upgrade [OPTION]...\n\n" -#: option.c:291 +#: option.c:287 #, c-format msgid "Options:\n" msgstr "Параметри:\n" -#: option.c:292 +#: option.c:288 #, c-format msgid " -b, --old-bindir=BINDIR old cluster executable directory\n" msgstr " -b, --old-bindir=BINDIR каталог виконуваних файлів старого кластера\n" -#: option.c:293 +#: option.c:289 #, c-format msgid " -B, --new-bindir=BINDIR new cluster executable directory (default\n" " same directory as pg_upgrade)\n" msgstr " -B, --new-bindir=BINDIR каталог виконуваних файлів нового кластера (за замовчуванням\n" " той самий каталог, що і pg_upgrade)\n" -#: option.c:295 +#: option.c:291 #, c-format msgid " -c, --check check clusters only, don't change any data\n" msgstr " -c, --check тільки перевірити кластери, не змінювати ніякі дані\n" -#: option.c:296 +#: option.c:292 #, c-format msgid " -d, --old-datadir=DATADIR old cluster data directory\n" msgstr " -d, --old-datadir=DATADIR каталог даних старого кластера\n" -#: option.c:297 +#: option.c:293 #, c-format msgid " -D, --new-datadir=DATADIR new cluster data directory\n" msgstr " -D, --new-datadir=DATADIR каталог даних нового кластера\n" -#: option.c:298 +#: option.c:294 #, c-format msgid " -j, --jobs=NUM number of simultaneous processes or threads to use\n" msgstr " -j, --jobs=NUM число одночасних процесів або потоків для використання\n" -#: option.c:299 +#: option.c:295 #, c-format msgid " -k, --link link instead of copying files to new cluster\n" msgstr " -k, --link встановлювати посилання замість копіювання файлів до нового кластера\n" -#: option.c:300 +#: option.c:296 +#, c-format +msgid " -N, --no-sync do not wait for changes to be written safely to disk\n" +msgstr " -N, --no-sync не чекати завершення збереження змін на диску\n" + +#: option.c:297 #, c-format msgid " -o, --old-options=OPTIONS old cluster options to pass to the server\n" msgstr " -o, --old-options=OPTIONS параметри старого кластера, які передаються серверу\n" -#: option.c:301 +#: option.c:298 #, c-format msgid " -O, --new-options=OPTIONS new cluster options to pass to the server\n" msgstr " -O, --new-options=OPTIONS параметри нового кластера, які передаються серверу\n" -#: option.c:302 +#: option.c:299 #, c-format msgid " -p, --old-port=PORT old cluster port number (default %d)\n" msgstr " -p, --old-port=PORT номер порту старого кластера (за замовчуванням %d)\n" -#: option.c:303 +#: option.c:300 #, c-format msgid " -P, --new-port=PORT new cluster port number (default %d)\n" msgstr " -P, --new-port=PORT номер порту нового кластера (за замовчуванням %d)\n" -#: option.c:304 +#: option.c:301 #, c-format msgid " -r, --retain retain SQL and log files after success\n" msgstr " -r, --retain зберегти файли журналів і SQL після успішного завершення\n" -#: option.c:305 +#: option.c:302 #, c-format msgid " -s, --socketdir=DIR socket directory to use (default current dir.)\n" msgstr " -s, --socketdir=DIR директорія сокету для використання (за замовчування поточна директорія)\n" -#: option.c:306 +#: option.c:303 #, c-format msgid " -U, --username=NAME cluster superuser (default \"%s\")\n" msgstr " -U, --username=NAME суперкористувач кластера (за замовчуванням \"%s\")\n" -#: option.c:307 +#: option.c:304 #, c-format msgid " -v, --verbose enable verbose internal logging\n" msgstr " -v, --verbose активувати виведення детальних внутрішніх повідомлень\n" -#: option.c:308 +#: option.c:305 #, c-format msgid " -V, --version display version information, then exit\n" msgstr " -V, --version відобразити інформацію про версію, потім вийти\n" -#: option.c:309 +#: option.c:306 #, c-format msgid " --clone clone instead of copying files to new cluster\n" msgstr " --clone клонувати замість копіювання файлів до нового кластера\n" +#: option.c:307 +#, c-format +msgid " --copy copy files to new cluster (default)\n" +msgstr " --copy копіювати файли до нового кластеру (за замовчуванням)\n" + +#: option.c:308 +#, c-format +msgid " --copy-file-range copy files to new cluster with copy_file_range\n" +msgstr " --copy-file-range копіювати файли в новий кластер за допомогою copy_file_range\n" + +#: option.c:309 +#, c-format +msgid " --sync-method=METHOD set method for syncing files to disk\n" +msgstr " --sync-method=METHOD встановити метод синхронізації файлів на диск\n" + #: option.c:310 #, c-format msgid " -?, --help show this help, then exit\n" @@ -1232,238 +1451,274 @@ msgstr "Домашня сторінка %s: <%s>\n" #: option.c:380 #, c-format msgid "You must identify the directory where the %s.\n" -"Please use the %s command-line option or the %s environment variable.\n" +"Please use the %s command-line option or the %s environment variable." msgstr "Ви повинні визначити каталог, де знаходиться %s.\n" -"Будь ласка, використайте параметр командного рядка %s або змінну середовища %s.\n" +"Будь ласка, використайте параметр командного рядка %s або змінну середовища %s." -#: option.c:432 +#: option.c:433 #, c-format msgid "Finding the real data directory for the source cluster" msgstr "Пошук дійсного каталогу даних для початкового кластера" -#: option.c:434 +#: option.c:435 #, c-format msgid "Finding the real data directory for the target cluster" msgstr "Пошук дійсного каталогу даних для цільового кластера" -#: option.c:446 +#: option.c:448 +#, c-format +msgid "could not get data directory using %s: %m" +msgstr "не вдалося отримати каталог даних, виконавши %s: %m" + +#: option.c:452 #, c-format -msgid "could not get data directory using %s: %s\n" -msgstr "не вдалося отримати каталог даних, виконавши %s: %s\n" +msgid "could not get data directory using %s: %s" +msgstr "не вдалося отримати каталог даних, виконавши %s: %s" -#: option.c:505 +#: option.c:500 #, c-format -msgid "could not read line %d from file \"%s\": %s\n" -msgstr "не вдалося прочитати рядок %d з файлу \"%s\": %s\n" +msgid "could not read line %d from file \"%s\": %m" +msgstr "не вдалося прочитати рядок %d з файлу \"%s\": %m" -#: option.c:522 +#: option.c:517 #, c-format -msgid "user-supplied old port number %hu corrected to %hu\n" -msgstr "вказаний користувачем старий номер порту %hu змінений на %hu\n" +msgid "user-supplied old port number %hu corrected to %hu" +msgstr "вказаний користувачем старий номер порту %hu змінений на %hu" -#: parallel.c:127 parallel.c:238 +#: parallel.c:127 parallel.c:235 #, c-format -msgid "could not create worker process: %s\n" -msgstr "не вдалося створити робочий процес: %s\n" +msgid "could not create worker process: %m" +msgstr "не вдалося створити робочий процес: %m" -#: parallel.c:146 parallel.c:259 +#: parallel.c:143 parallel.c:253 #, c-format -msgid "could not create worker thread: %s\n" -msgstr "не вдалося створити робочий потік: %s\n" +msgid "could not create worker thread: %m" +msgstr "не вдалося створити робочий потік: %m" -#: parallel.c:300 +#: parallel.c:294 #, c-format -msgid "%s() failed: %s\n" -msgstr "%s() помилка: %s\n" +msgid "%s() failed: %m" +msgstr "%s() помилка: %m" -#: parallel.c:304 +#: parallel.c:298 #, c-format -msgid "child process exited abnormally: status %d\n" -msgstr "дочірній процес завершився ненормально: статус %d\n" +msgid "child process exited abnormally: status %d" +msgstr "дочірній процес завершився ненормально: статус %d" -#: parallel.c:319 +#: parallel.c:313 #, c-format -msgid "child worker exited abnormally: %s\n" -msgstr "дочірній процес завершився аварійно: %s\n" +msgid "child worker exited abnormally: %m" +msgstr "дочірній процес завершився аварійно: %m" -#: pg_upgrade.c:107 +#: pg_upgrade.c:115 #, c-format -msgid "could not read permissions of directory \"%s\": %s\n" -msgstr "не вдалося прочитати права на каталог \"%s\": %s\n" +msgid "could not read permissions of directory \"%s\": %m" +msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: pg_upgrade.c:122 +#: pg_upgrade.c:147 #, c-format msgid "\n" "Performing Upgrade\n" -"------------------\n" +"------------------" msgstr "\n" "Виконання оновлення\n" -"------------------\n" +"------------------" -#: pg_upgrade.c:165 +#: pg_upgrade.c:192 #, c-format msgid "Setting next OID for new cluster" msgstr "Встановлення наступного OID для нового кластера" -#: pg_upgrade.c:172 +#: pg_upgrade.c:216 #, c-format msgid "Sync data directory to disk" msgstr "Синхронізація каталогу даних на диск" -#: pg_upgrade.c:183 +#: pg_upgrade.c:230 #, c-format msgid "\n" "Upgrade Complete\n" -"----------------\n" +"----------------" msgstr "\n" "Оновлення завершено\n" -"----------------\n" +"----------------" -#: pg_upgrade.c:216 +#: pg_upgrade.c:263 pg_upgrade.c:276 pg_upgrade.c:283 pg_upgrade.c:290 +#: pg_upgrade.c:308 pg_upgrade.c:319 +#, c-format +msgid "directory path for new cluster is too long" +msgstr "шлях каталогу для нового кластеру занадто довгий" + +#: pg_upgrade.c:297 pg_upgrade.c:299 pg_upgrade.c:301 pg_upgrade.c:303 +#, c-format +msgid "could not create directory \"%s\": %m" +msgstr "не вдалося створити каталог \"%s\": %m" + +#: pg_upgrade.c:352 #, c-format -msgid "%s: could not find own program executable\n" -msgstr "%s: не вдалося знайти ехе файл власної програми\n" +msgid "%s: could not find own program executable" +msgstr "%s: не вдалося знайти файл виконання власної програми" -#: pg_upgrade.c:242 +#: pg_upgrade.c:378 #, c-format msgid "There seems to be a postmaster servicing the old cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "Мабуть, запущений процес postmaster, який обслуговує старий кластер.\n" -"Будь ласка, завершіть роботу процесу і спробуйте знову.\n" +"Будь ласка, завершіть роботу процесу і спробуйте знову." -#: pg_upgrade.c:255 +#: pg_upgrade.c:391 #, c-format msgid "There seems to be a postmaster servicing the new cluster.\n" -"Please shutdown that postmaster and try again.\n" +"Please shutdown that postmaster and try again." msgstr "Мабуть, запущений процес postmaster, який обслуговує новий кластер.\n" -"Будь ласка, завершіть роботу процесу і спробуйте знову.\n" +"Будь ласка, завершіть роботу процесу і спробуйте знову." + +#: pg_upgrade.c:413 +#, c-format +msgid "Setting locale and encoding for new cluster" +msgstr "Установка локалі та кодування для нового кластеру" -#: pg_upgrade.c:269 +#: pg_upgrade.c:489 #, c-format msgid "Analyzing all rows in the new cluster" msgstr "Аналіз всіх рядків у новому кластері" -#: pg_upgrade.c:282 +#: pg_upgrade.c:502 #, c-format msgid "Freezing all rows in the new cluster" msgstr "Закріплення всіх рядків у новому кластері" -#: pg_upgrade.c:302 +#: pg_upgrade.c:522 #, c-format msgid "Restoring global objects in the new cluster" msgstr "Відновлення глобальних об'єктів у новому кластері" -#: pg_upgrade.c:317 +#: pg_upgrade.c:538 #, c-format -msgid "Restoring database schemas in the new cluster\n" -msgstr "Відновлення схем баз даних у новому кластері\n" +msgid "Restoring database schemas in the new cluster" +msgstr "Відновлення схем баз даних у новому кластері" -#: pg_upgrade.c:421 +#: pg_upgrade.c:662 #, c-format msgid "Deleting files from new %s" msgstr "Видалення файлів з нового %s" -#: pg_upgrade.c:425 +#: pg_upgrade.c:666 #, c-format -msgid "could not delete directory \"%s\"\n" -msgstr "не вдалося видалити каталог \"%s\"\n" +msgid "could not delete directory \"%s\"" +msgstr "не вдалося видалити каталог \"%s\"" -#: pg_upgrade.c:444 +#: pg_upgrade.c:685 #, c-format msgid "Copying old %s to new server" msgstr "Копіювання старого %s до нового серверу" -#: pg_upgrade.c:470 +#: pg_upgrade.c:711 #, c-format msgid "Setting oldest XID for new cluster" msgstr "Встановлення найстарішого XID для нового кластеру" -#: pg_upgrade.c:478 +#: pg_upgrade.c:719 #, c-format msgid "Setting next transaction ID and epoch for new cluster" msgstr "Установка наступного ID транзакції й епохи для нового кластера" -#: pg_upgrade.c:508 +#: pg_upgrade.c:749 #, c-format msgid "Setting next multixact ID and offset for new cluster" msgstr "Установка наступного ID і зсуву мультитранзакції для нового кластера" -#: pg_upgrade.c:532 +#: pg_upgrade.c:773 #, c-format msgid "Setting oldest multixact ID in new cluster" msgstr "Установка найстаршого ID мультитранзакції в новому кластері" -#: pg_upgrade.c:552 +#: pg_upgrade.c:793 #, c-format msgid "Resetting WAL archives" msgstr "Скидання архівів WAL" -#: pg_upgrade.c:595 +#: pg_upgrade.c:836 #, c-format msgid "Setting frozenxid and minmxid counters in new cluster" msgstr "Установка лічильників frozenxid і minmxid у новому кластері" -#: pg_upgrade.c:597 +#: pg_upgrade.c:838 #, c-format msgid "Setting minmxid counter in new cluster" msgstr "Установка лічильника minmxid у новому кластері" -#: relfilenode.c:35 +#: pg_upgrade.c:929 #, c-format -msgid "Cloning user relation files\n" -msgstr "Клонування файлів користувацьких відношень\n" +msgid "Restoring logical replication slots in the new cluster" +msgstr "Відновлення слотів логічної реплікації в новому кластері" -#: relfilenode.c:38 +#: relfilenumber.c:35 #, c-format -msgid "Copying user relation files\n" -msgstr "Копіювання файлів користувацьких відношень\n" +msgid "Cloning user relation files" +msgstr "Клонування файлів користувацьких відношень" -#: relfilenode.c:41 +#: relfilenumber.c:38 #, c-format -msgid "Linking user relation files\n" -msgstr "Підключення файлів користувацьких відношень посиланнями\n" +msgid "Copying user relation files" +msgstr "Копіювання файлів користувацьких відношень" -#: relfilenode.c:115 +#: relfilenumber.c:41 #, c-format -msgid "old database \"%s\" not found in the new cluster\n" -msgstr "стара база даних \"%s\" не знайдена в новому кластері\n" +msgid "Copying user relation files with copy_file_range" +msgstr "Копіювання файлів користувацьких відношень за допомогою copy_file_range" -#: relfilenode.c:230 +#: relfilenumber.c:44 #, c-format -msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %s\n" -msgstr "помилка під час перевірки існування файлу \"%s.%s\" (з \"%s\" в \"%s\"): %s\n" +msgid "Linking user relation files" +msgstr "Приєднання файлів користувацьких відношень" -#: relfilenode.c:248 +#: relfilenumber.c:118 #, c-format -msgid "rewriting \"%s\" to \"%s\"\n" -msgstr "перезаписування \"%s\" в \"%s\"\n" +msgid "old database \"%s\" not found in the new cluster" +msgstr "стара база даних \"%s\" не знайдена в новому кластері" -#: relfilenode.c:256 +#: relfilenumber.c:221 #, c-format -msgid "cloning \"%s\" to \"%s\"\n" -msgstr "клонування \"%s\" до \"%s\"\n" +msgid "error while checking for file existence \"%s.%s\" (\"%s\" to \"%s\"): %m" +msgstr "помилка під час перевірки існування файлу \"%s.%s\" (з \"%s\" в \"%s\"): %m" -#: relfilenode.c:261 +#: relfilenumber.c:238 #, c-format -msgid "copying \"%s\" to \"%s\"\n" -msgstr "копіювання \"%s\" в \"%s\"\n" +msgid "rewriting \"%s\" to \"%s\"" +msgstr "переписування \"%s\" на \"%s\"" -#: relfilenode.c:266 +#: relfilenumber.c:246 #, c-format -msgid "linking \"%s\" to \"%s\"\n" -msgstr "створення посилання на \"%s\" в \"%s\"\n" +msgid "cloning \"%s\" to \"%s\"" +msgstr "клонування \"%s\" до \"%s\"" -#: server.c:38 server.c:142 util.c:135 util.c:165 +#: relfilenumber.c:251 +#, c-format +msgid "copying \"%s\" to \"%s\"" +msgstr "копіювання \"%s\" в \"%s\"" + +#: relfilenumber.c:256 +#, c-format +msgid "copying \"%s\" to \"%s\" with copy_file_range" +msgstr "" + +#: relfilenumber.c:261 +#, c-format +msgid "linking \"%s\" to \"%s\"" +msgstr "створення посилання на \"%s\" в \"%s\"" + +#: server.c:39 server.c:143 util.c:248 util.c:278 #, c-format msgid "Failure, exiting\n" msgstr "Помилка, вихід\n" -#: server.c:132 +#: server.c:133 #, c-format -msgid "executing: %s\n" -msgstr "виконується: %s\n" +msgid "executing: %s" +msgstr "виконується: %s" -#: server.c:138 +#: server.c:139 #, c-format msgid "SQL command failed\n" "%s\n" @@ -1472,192 +1727,117 @@ msgstr "Помилка SQL-команди\n" "%s\n" "%s" -#: server.c:168 +#: server.c:169 #, c-format -msgid "could not open version file \"%s\": %m\n" -msgstr "не вдалося відкрити файл версії \"%s\": %m\n" +msgid "could not open version file \"%s\": %m" +msgstr "не вдалося відкрити файл версії \"%s\": %m" -#: server.c:172 +#: server.c:173 #, c-format -msgid "could not parse version file \"%s\"\n" -msgstr "не вдалося проаналізувати файл версії \"%s\"\n" +msgid "could not parse version file \"%s\"" +msgstr "не вдалося проаналізувати файл версії \"%s\"" -#: server.c:298 +#: server.c:310 #, c-format msgid "\n" "%s" msgstr "\n" "%s" -#: server.c:302 +#: server.c:314 #, c-format msgid "could not connect to source postmaster started with the command:\n" -"%s\n" +"%s" msgstr "не вдалося підключитися до початкового процесу postmaster, запущеного командою:\n" -"%s\n" +"%s" -#: server.c:306 +#: server.c:318 #, c-format msgid "could not connect to target postmaster started with the command:\n" -"%s\n" +"%s" msgstr "не вдалося підключитися до цільового процесу postmaster, запущеного командою:\n" -"%s\n" +"%s" -#: server.c:320 +#: server.c:332 #, c-format -msgid "pg_ctl failed to start the source server, or connection failed\n" -msgstr "pg_ctl не зміг запустити початковий сервер або сталася помилка підключення\n" +msgid "pg_ctl failed to start the source server, or connection failed" +msgstr "pg_ctl не зміг запустити початковий сервер або сталася помилка підключення" -#: server.c:322 +#: server.c:334 #, c-format -msgid "pg_ctl failed to start the target server, or connection failed\n" -msgstr "pg_ctl не зміг запустити цільовий сервер або сталася помилка підключення\n" +msgid "pg_ctl failed to start the target server, or connection failed" +msgstr "pg_ctl не зміг запустити цільовий сервер або сталася помилка підключення" -#: server.c:367 +#: server.c:379 #, c-format -msgid "out of memory\n" -msgstr "недостатньо пам'яті\n" +msgid "out of memory" +msgstr "недостатньо пам'яті" -#: server.c:380 +#: server.c:392 #, c-format -msgid "libpq environment variable %s has a non-local server value: %s\n" -msgstr "у змінній середовища для libpq %s задано не локальне значення: %s\n" +msgid "libpq environment variable %s has a non-local server value: %s" +msgstr "у змінній середовища для libpq %s задано не локальне значення: %s" #: tablespace.c:28 #, c-format msgid "Cannot upgrade to/from the same system catalog version when\n" -"using tablespaces.\n" +"using tablespaces." msgstr "Оновлення в межах однієї версії системного каталогу неможливе,\n" -"якщо використовуються табличні простори.\n" - -#: tablespace.c:86 -#, c-format -msgid "tablespace directory \"%s\" does not exist\n" -msgstr "каталог табличного простору \"%s\" не існує\n" +"якщо використовуються табличні простори." -#: tablespace.c:90 +#: tablespace.c:83 #, c-format -msgid "could not stat tablespace directory \"%s\": %s\n" -msgstr "не вдалося отримати стан каталогу табличного простору \"%s\": %s\n" +msgid "tablespace directory \"%s\" does not exist" +msgstr "каталог табличного простору \"%s\" не існує" -#: tablespace.c:95 +#: tablespace.c:87 #, c-format -msgid "tablespace path \"%s\" is not a directory\n" -msgstr "шлях табличного простору \"%s\" не вказує на каталог\n" +msgid "could not stat tablespace directory \"%s\": %m" +msgstr "" -#: util.c:49 +#: tablespace.c:92 #, c-format -msgid " " -msgstr " " +msgid "tablespace path \"%s\" is not a directory" +msgstr "шлях табличного простору \"%s\" не вказує на каталог" -#: util.c:82 +#: util.c:53 util.c:56 util.c:139 util.c:170 util.c:172 #, c-format msgid "%-*s" msgstr "%-*s" -#: util.c:174 +#: util.c:107 +#, c-format +msgid "could not access directory \"%s\": %m" +msgstr "немає доступу до каталогу \"%s\": %m" + +#: util.c:287 #, c-format msgid "ok" msgstr "ok" -#: version.c:29 +#: version.c:44 #, c-format -msgid "Checking for large objects" -msgstr "Перевірка великих об'єктів" +msgid "Checking for hash indexes" +msgstr "Перевірка геш-індексів" -#: version.c:77 version.c:419 +#: version.c:121 #, c-format msgid "warning" msgstr "попередження" -#: version.c:79 -#, c-format -msgid "\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table. After upgrading, you will be\n" -"given a command to populate the pg_largeobject_metadata table with\n" -"default permissions.\n\n" -msgstr "\n" -"Ваша інсталяція містить великі об'єкти. Нова база даних має\n" -"додаткову таблицю з правами для великих об'єктів. Після оновлення ви отримаєте команду для заповнення таблиці pg_largeobject_metadata \n" -"з правами за замовчуванням.\n\n" - -#: version.c:85 -#, c-format -msgid "\n" -"Your installation contains large objects. The new database has an\n" -"additional large object permission table, so default permissions must be\n" -"defined for all large objects. The file\n" -" %s\n" -"when executed by psql by the database superuser will set the default\n" -"permissions.\n\n" -msgstr "\n" -"Ваша інсталяція містить великі об'єкти. Нова база даних має\n" -"додаткову таблицю з правами для великих об'єктів, тож для всіх\n" -"великих об'єктів повинні визначатись права за замовчуванням. Файл\n" -" %s\n" -"дозволяє встановити такі права (він призначений для виконання в psql\n" -"суперкористувачем бази даних).\n\n" - -#: version.c:272 -#, c-format -msgid "Checking for incompatible \"line\" data type" -msgstr "Перевірка несумісного типу даних \"line\"" - -#: version.c:279 -#, c-format -msgid "Your installation contains the \"line\" data type in user tables.\n" -"This data type changed its internal and input/output format\n" -"between your old and new versions so this\n" -"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 "Ваша інсталяція містить тип даних \"line\" в таблицях користувача.\n" -"Внутрішній формат та формат вводу/виводу цього типу даних змінено між вашою старою та новими версіями,\n" -"тому цей кластер наразі не може бути оновлений.\n" -"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" -"Список проблемних стовпців знаходиться у файлі:\n" -" %s\n\n" - -#: version.c:310 -#, c-format -msgid "Checking for invalid \"unknown\" user columns" -msgstr "Перевірка неприпустимих користувацьких стовпців \"unknown\"" - -#: version.c:317 -#, c-format -msgid "Your installation contains the \"unknown\" data type in user tables.\n" -"This data type is no longer allowed in tables, so this\n" -"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 "Ваша інсталяція містить \"unknown\" тип даних у таблицях користувача.\n" -"Цей тип даних більше не допускається в таблицях,\n" -"тому цей кластер наразі не може бути оновлений.\n" -"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" -"Список проблемних стовпців знаходиться у файлі:\n" -" %s\n\n" - -#: version.c:341 -#, c-format -msgid "Checking for hash indexes" -msgstr "Перевірка геш-індексів" - -#: version.c:421 +#: version.c:123 #, c-format msgid "\n" "Your installation contains hash indexes. These indexes have different\n" "internal formats between your old and new clusters, so they must be\n" "reindexed with the REINDEX command. After upgrading, you will be given\n" -"REINDEX instructions.\n\n" +"REINDEX instructions." msgstr "\n" "Ваша інсталяція містить геш-індекси. Ці індекси мають різні внутрішні\n" "формати в старому і новому кластерах, тож їх потрібно повторно індексувати\n" -"за допомогою команди REINDEX. Після оновлення вам буде надано інструкції REINDEX.\n\n" +"за допомогою команди REINDEX. Після оновлення вам буде надано інструкції REINDEX." -#: version.c:427 +#: version.c:129 #, c-format msgid "\n" "Your installation contains hash indexes. These indexes have different\n" @@ -1665,57 +1845,37 @@ msgid "\n" "reindexed with the REINDEX command. The file\n" " %s\n" "when executed by psql by the database superuser will recreate all invalid\n" -"indexes; until then, none of these indexes will be used.\n\n" +"indexes; until then, none of these indexes will be used." msgstr "\n" "Ваша інсталяція містить геш-індекси. Ці індекси мають різні внутрішні\n" "формати в старому і новому кластерах, тож їх потрібно повторно індексувати\n" "за допомогою команди REINDEX. Файл\n" " %s\n" "після виконання суперкористувачем бази даних в psql, повторно створить\n" -"всі неприпустимі індекси; до цього ніякі геш-індекси не будуть використовуватись.\n\n" - -#: version.c:453 -#, c-format -msgid "Checking for invalid \"sql_identifier\" user columns" -msgstr "Перевірка неприпустимих користувацьких стовпців \"sql_identifier\"" - -#: version.c:461 -#, c-format -msgid "Your installation contains the \"sql_identifier\" data type in user tables.\n" -"The on-disk format for this data type has changed, so this\n" -"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 "Ваша інсталяція містить \"sql_identifier\" тип даних у таблицях користувача.\n" -"Формат зберігання для цього типу даних змінено,\n" -"тому цей кластер наразі не може бути оновлений.\n" -"Ви можете видалити проблемні стовпці та перезапустити оновлення.\n" -"Список проблемних стовпців знаходиться у файлі:\n" -" %s\n\n" +"всі неприпустимі індекси; до цього ніякі геш-індекси не будуть використовуватись." -#: version.c:485 +#: version.c:153 #, c-format msgid "Checking for extension updates" msgstr "Перевірка оновлень розширення" -#: version.c:537 +#: version.c:200 #, c-format msgid "notice" msgstr "повідомлення" -#: version.c:538 +#: version.c:201 #, 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" +"these extensions." msgstr "\n" "Ваша інсталяція містить розширення, які потрібно оновити\n" -"командою ALTER EXTENSION . Файл\n" +"командою ALTER EXTENSION. Файл\n" " %s,\n" "коли виконується суперкористувачем бази даних за допомогою\n" -"psql, оновить ці розширення.\n\n" +"psql, оновить ці розширення." diff --git a/src/bin/pg_upgrade/relfilenumber.c b/src/bin/pg_upgrade/relfilenumber.c index aa205aec51d3c..2959c07f0b8d1 100644 --- a/src/bin/pg_upgrade/relfilenumber.c +++ b/src/bin/pg_upgrade/relfilenumber.c @@ -36,7 +36,7 @@ static void transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_ * * // be sure to sync any remaining files in the queue * sync_queue_sync_all(); - * synq_queue_destroy(); + * sync_queue_destroy(); */ #define SYNC_QUEUE_MAX_LEN (1024) @@ -424,8 +424,8 @@ swap_catalog_files(FileNameMap *maps, int size, const char *old_catalog_dir, * stage of pg_upgrade in swap mode, so we need to synchronize them * ourselves. We only do this for the catalog files because they were * created during pg_restore with fsync=off. We assume that the user - * data files files were properly persisted to disk when the user last - * shut it down. + * data files were properly persisted to disk when the user last shut + * it down. */ if (user_opts.do_sync) sync_queue_push(dest); diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 7494614ee64ca..7d82593879d57 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -72,7 +72,7 @@ sub filter_dump # adjust_child_columns is passed to adjust_regress_dumpfile() which actually # adjusts the dump output. # -# The name of the file containting adjusted dump is returned. +# The name of the file containing adjusted dump is returned. sub get_dump_for_comparison { my ($node, $db, $file_prefix, $adjust_child_columns) = @_; @@ -83,10 +83,9 @@ sub get_dump_for_comparison open(my $dh, '>', $dump_adjusted) || die "could not open $dump_adjusted for writing $!"; - # Don't dump statistics, because there are still some bugs. $node->run_log( [ - 'pg_dump', '--no-sync', '--no-statistics', + 'pg_dump', '--no-sync', '-d' => $node->connstr($db), '-f' => $dumpfile ]); @@ -128,7 +127,7 @@ sub get_dump_for_comparison PostgreSQL::Test::Cluster->new('old_node', install_path => $ENV{oldinstall}); -my %node_params = (); +my %old_node_params = (); # To increase coverage of non-standard segment size and group access without # increasing test runtime, run these tests with a custom setting. @@ -194,34 +193,37 @@ sub get_dump_for_comparison my %encodings = ('UTF-8' => 6, 'SQL_ASCII' => 0); my $original_encoding = $encodings{$original_enc_name}; -my @initdb_params = @custom_opts; +my @old_initdb_params = @custom_opts; -push @initdb_params, ('--encoding', $original_enc_name); -push @initdb_params, ('--lc-collate', $original_datcollate); -push @initdb_params, ('--lc-ctype', $original_datctype); +push @old_initdb_params, ('--encoding', $original_enc_name); +push @old_initdb_params, ('--lc-collate', $original_datcollate); +push @old_initdb_params, ('--lc-ctype', $original_datctype); # add --locale-provider, if supported my %provider_name = ('b' => 'builtin', 'i' => 'icu', 'c' => 'libc'); if ($oldnode->pg_version >= 15) { - push @initdb_params, + push @old_initdb_params, ('--locale-provider', $provider_name{$original_provider}); if ($original_provider eq 'b') { - push @initdb_params, ('--builtin-locale', $original_datlocale); + push @old_initdb_params, ('--builtin-locale', $original_datlocale); } elsif ($original_provider eq 'i') { - push @initdb_params, ('--icu-locale', $original_datlocale); + push @old_initdb_params, ('--icu-locale', $original_datlocale); } } # Since checksums are now enabled by default, and weren't before 18, # pass '-k' to initdb on old versions so that upgrades work. -push @initdb_params, '-k' if $oldnode->pg_version < 18; +push @old_initdb_params, '-k' if $oldnode->pg_version < 18; -$node_params{extra} = \@initdb_params; -$oldnode->init(%node_params); +$old_node_params{extra} = \@old_initdb_params; +$oldnode->init(%old_node_params); +# Override log_statement=all set by Cluster.pm. This avoids large amounts +# of log traffic that slow this test down even more when run under valgrind. +$oldnode->append_conf('postgresql.conf', 'log_statement = none'); $oldnode->start; my $result; @@ -301,74 +303,20 @@ sub get_dump_for_comparison is($rc, 0, 'regression tests pass'); } -# Test that dump/restore of the regression database roundtrips cleanly. This -# doesn't work well when the nodes are different versions, so skip it in that -# case. Note that this isn't a pg_restore test, but it's convenient to do it -# here because we've gone to the trouble of creating the regression database. -# -# Do this while the old cluster is running before it is shut down by the -# upgrade test. -SKIP: -{ - my $dstnode = PostgreSQL::Test::Cluster->new('dst_node'); - - skip "different Postgres versions" - if ($oldnode->pg_version != $dstnode->pg_version); - skip "source node not using default install" - if (defined $oldnode->install_path); - - # Dump the original database for comparison later. - my $src_dump = - get_dump_for_comparison($oldnode, 'regression', 'src_dump', 1); - - # Setup destination database cluster - $dstnode->init(%node_params); - # Stabilize stats for comparison. - $dstnode->append_conf('postgresql.conf', 'autovacuum = off'); - $dstnode->start; - - my $dump_file = "$tempdir/regression.dump"; - - # Use --create in dump and restore commands so that the restored - # database has the same configurable variable settings as the original - # database so that the dumps taken from both databases taken do not - # differ because of locale changes. Additionally this provides test - # coverage for --create option. - # - # Use directory format so that we can use parallel dump/restore. - $oldnode->command_ok( - [ - 'pg_dump', '-Fd', '-j2', '--no-sync', - '-d' => $oldnode->connstr('regression'), - '--create', '-f' => $dump_file - ], - 'pg_dump on source instance'); - - $dstnode->command_ok( - [ 'pg_restore', '--create', '-j2', '-d' => 'postgres', $dump_file ], - 'pg_restore to destination instance'); - - my $dst_dump = - get_dump_for_comparison($dstnode, 'regression', 'dest_dump', 0); - - compare_files($src_dump, $dst_dump, - 'dump outputs from original and restored regression databases match'); -} - # Initialize a new node for the upgrade. my $newnode = PostgreSQL::Test::Cluster->new('new_node'); -# Reset to original parameters. -@initdb_params = @custom_opts; - # The new cluster will be initialized with different locale settings, # but these settings will be overwritten with those of the original # cluster. -push @initdb_params, ('--encoding', 'SQL_ASCII'); -push @initdb_params, ('--locale-provider', 'libc'); - -$node_params{extra} = \@initdb_params; -$newnode->init(%node_params); +my %new_node_params = %old_node_params; +my @new_initdb_params = @custom_opts; +push @new_initdb_params, ('--encoding', 'SQL_ASCII'); +push @new_initdb_params, ('--locale-provider', 'libc'); +$new_node_params{extra} = \@new_initdb_params; +$newnode->init(%new_node_params); +# Avoid unnecessary log noise +$newnode->append_conf('postgresql.conf', 'log_statement = none'); # Stabilize stats for comparison. $newnode->append_conf('postgresql.conf', 'autovacuum = off'); @@ -410,10 +358,68 @@ sub get_dump_for_comparison } } -# Stabilize stats before pg_dumpall. +# Stabilize stats before pg_dump / pg_dumpall. Doing it after initializing +# the new node gives enough time for autovacuum to update statistics on the +# old node. $oldnode->append_conf('postgresql.conf', 'autovacuum = off'); $oldnode->restart; +# Test that dump/restore of the regression database roundtrips cleanly. This +# doesn't work well when the nodes are different versions, so skip it in that +# case. Note that this isn't a pg_upgrade test, but it's convenient to do it +# here because we've gone to the trouble of creating the regression database. +# +# Do this while the old cluster is running before it is shut down by the +# upgrade test but after turning its autovacuum off for stable statistics. +SKIP: +{ + my $dstnode = PostgreSQL::Test::Cluster->new('dst_node'); + + skip "different Postgres versions" + if ($oldnode->pg_version != $dstnode->pg_version); + skip "source node not using default install" + if (defined $oldnode->install_path); + + # Setup destination database cluster with the same configuration as the + # source cluster to avoid any differences between dumps taken from both the + # clusters caused by differences in their configurations. + $dstnode->init(%old_node_params); + # Avoid unnecessary log noise + $dstnode->append_conf('postgresql.conf', 'log_statement = none'); + # Stabilize stats for comparison. + $dstnode->append_conf('postgresql.conf', 'autovacuum = off'); + $dstnode->start; + + # Use --create in dump and restore commands so that the restored + # database has the same configurable variable settings as the original + # database so that the dumps taken from both databases taken do not + # differ because of locale changes. Additionally this provides test + # coverage for --create option. + # + # Use directory format so that we can use parallel dump/restore. + my $dump_file = "$tempdir/regression.dump"; + $oldnode->command_ok( + [ + 'pg_dump', '-Fd', '-j2', '--no-sync', + '-d' => $oldnode->connstr('regression'), + '--create', '-f' => $dump_file + ], + 'pg_dump on source instance'); + + $dstnode->command_ok( + [ 'pg_restore', '--create', '-j2', '-d' => 'postgres', $dump_file ], + 'pg_restore to destination instance'); + + # Dump original and restored database for comparison. + my $src_dump = + get_dump_for_comparison($oldnode, 'regression', 'src_dump', 1); + my $dst_dump = + get_dump_for_comparison($dstnode, 'regression', 'dest_dump', 0); + + compare_files($src_dump, $dst_dump, + 'dump outputs from original and restored regression databases match'); +} + # Take a dump before performing the upgrade as a base comparison. Note # that we need to use pg_dumpall from the new node here. my @dump_command = ( diff --git a/src/bin/pg_upgrade/t/006_transfer_modes.pl b/src/bin/pg_upgrade/t/006_transfer_modes.pl index 34fddbcdab57b..550a63fdf7d47 100644 --- a/src/bin/pg_upgrade/t/006_transfer_modes.pl +++ b/src/bin/pg_upgrade/t/006_transfer_modes.pl @@ -102,6 +102,11 @@ sub test_mode $new->clean_node(); } +# Run pg_upgrade in tmp_check to avoid leaving files like +# delete_old_cluster.{sh,bat} in the source directory for VPATH and meson +# builds. +chdir ${PostgreSQL::Test::Utils::tmp_check}; + test_mode('--clone'); test_mode('--copy'); test_mode('--copy-file-range'); diff --git a/src/bin/pg_verifybackup/astreamer_verify.c b/src/bin/pg_verifybackup/astreamer_verify.c index 079c3970410ab..33cf67670a70d 100644 --- a/src/bin/pg_verifybackup/astreamer_verify.c +++ b/src/bin/pg_verifybackup/astreamer_verify.c @@ -14,6 +14,7 @@ #include "postgres_fe.h" +#include "access/xlog_internal.h" #include "catalog/pg_control.h" #include "pg_verifybackup.h" @@ -126,7 +127,7 @@ astreamer_verify_content(astreamer *streamer, astreamer_member *member, default: /* Shouldn't happen. */ - pg_fatal("unexpected state while parsing tar file"); + pg_fatal("unexpected state while parsing tar archive"); } } @@ -194,7 +195,7 @@ member_verify_header(astreamer *streamer, astreamer_member *member) if (m == NULL) { report_backup_error(mystreamer->context, - "\"%s\" is present in \"%s\" but not in the manifest", + "file \"%s\" is present in archive \"%s\" but not in the manifest", member->pathname, mystreamer->archive_name); return; } @@ -207,7 +208,7 @@ member_verify_header(astreamer *streamer, astreamer_member *member) if (m->size != member->size) { report_backup_error(mystreamer->context, - "\"%s\" has size %llu in \"%s\" but size %" PRIu64 " in the manifest", + "file \"%s\" has size %llu in archive \"%s\" but size %" PRIu64 " in the manifest", member->pathname, (unsigned long long) member->size, mystreamer->archive_name, @@ -225,7 +226,7 @@ member_verify_header(astreamer *streamer, astreamer_member *member) (!mystreamer->context->skip_checksums && should_verify_checksum(m)); mystreamer->verify_control_data = mystreamer->context->manifest->version != 1 && - !m->bad && strcmp(m->pathname, "global/pg_control") == 0; + !m->bad && strcmp(m->pathname, XLOG_CONTROL_FILE) == 0; /* If we're going to verify the checksum, initial a checksum context. */ if (mystreamer->verify_checksum && @@ -296,7 +297,7 @@ member_verify_checksum(astreamer *streamer) if (mystreamer->checksum_bytes != m->size) { report_backup_error(mystreamer->context, - "file \"%s\" in \"%s\" should contain %" PRIu64 " bytes, but read %" PRIu64 " bytes", + "file \"%s\" in archive \"%s\" should contain %" PRIu64 " bytes, but %" PRIu64 " bytes were read", m->pathname, mystreamer->archive_name, m->size, mystreamer->checksum_bytes); @@ -316,12 +317,12 @@ member_verify_checksum(astreamer *streamer) /* And check it against the manifest. */ if (checksumlen != m->checksum_length) report_backup_error(mystreamer->context, - "file \"%s\" in \"%s\" has checksum of length %d, but expected %d", + "file \"%s\" in archive \"%s\" has checksum of length %d, but expected %d", m->pathname, mystreamer->archive_name, m->checksum_length, checksumlen); else if (memcmp(checksumbuf, m->checksum_payload, checksumlen) != 0) report_backup_error(mystreamer->context, - "checksum mismatch for file \"%s\" in \"%s\"", + "checksum mismatch for file \"%s\" in archive \"%s\"", m->pathname, mystreamer->archive_name); } @@ -370,7 +371,7 @@ member_verify_control_data(astreamer *streamer) pg_crc32c crc; /* Should be here only for control file */ - Assert(strcmp(mystreamer->mfile->pathname, "global/pg_control") == 0); + Assert(strcmp(mystreamer->mfile->pathname, XLOG_CONTROL_FILE) == 0); Assert(mystreamer->verify_control_data); /* diff --git a/src/bin/pg_verifybackup/nls.mk b/src/bin/pg_verifybackup/nls.mk index 6ad078350f607..2dfe7eb22c6d2 100644 --- a/src/bin/pg_verifybackup/nls.mk +++ b/src/bin/pg_verifybackup/nls.mk @@ -1,13 +1,18 @@ # src/bin/pg_verifybackup/nls.mk CATALOG_NAME = pg_verifybackup GETTEXT_FILES = $(FRONTEND_COMMON_GETTEXT_FILES) \ + astreamer_verify.c \ pg_verifybackup.c \ ../../common/controldata_utils.c \ ../../common/cryptohash.c \ ../../common/cryptohash_openssl.c \ ../../common/fe_memutils.c \ ../../common/jsonapi.c \ - ../../common/parse_manifest.c + ../../common/parse_manifest.c \ + ../../fe_utils/astreamer_gzip.c \ + ../../fe_utils/astreamer_lz4.c \ + ../../fe_utils/astreamer_tar.c \ + ../../fe_utils/astreamer_zstd.c GETTEXT_TRIGGERS = $(FRONTEND_COMMON_GETTEXT_TRIGGERS) \ json_token_error:2 \ json_manifest_parse_failure:2 \ diff --git a/src/bin/pg_verifybackup/pg_verifybackup.c b/src/bin/pg_verifybackup/pg_verifybackup.c index 383668a8b6a50..48994ef9bc6fc 100644 --- a/src/bin/pg_verifybackup/pg_verifybackup.c +++ b/src/bin/pg_verifybackup/pg_verifybackup.c @@ -15,14 +15,15 @@ #include #include +#include #include #include +#include "access/xlog_internal.h" #include "common/logging.h" #include "common/parse_manifest.h" #include "fe_utils/simple_list.h" #include "getopt_long.h" -#include "limits.h" #include "pg_verifybackup.h" #include "pgtime.h" @@ -337,7 +338,7 @@ main(int argc, char **argv) if (!no_parse_wal && context.format == 't') { pg_log_error("pg_waldump cannot read tar files"); - pg_log_error_hint("You must use -n or --no-parse-wal when verifying a tar-format backup."); + pg_log_error_hint("You must use -n/--no-parse-wal when verifying a tar-format backup."); exit(1); } @@ -693,11 +694,11 @@ verify_plain_backup_file(verifier_context *context, char *relpath, return; } - /* If it's not a directory, it should be a plain file. */ + /* If it's not a directory, it should be a regular file. */ if (!S_ISREG(sb.st_mode)) { report_backup_error(context, - "\"%s\" is not a file or directory", + "\"%s\" is not a regular file or directory", relpath); return; } @@ -730,7 +731,7 @@ verify_plain_backup_file(verifier_context *context, char *relpath, * version 1. */ if (context->manifest->version != 1 && - strcmp(relpath, "global/pg_control") == 0) + strcmp(relpath, XLOG_CONTROL_FILE) == 0) verify_control_file(fullpath, context->manifest->system_identifier); /* Update statistics for progress report, if necessary */ @@ -898,11 +899,11 @@ precheck_tar_backup_file(verifier_context *context, char *relpath, return; } - /* In a tar format backup, we expect only plain files. */ + /* In a tar format backup, we expect only regular files. */ if (!S_ISREG(sb.st_mode)) { report_backup_error(context, - "\"%s\" is not a plain file", + "file \"%s\" is not a regular file", relpath); return; } diff --git a/src/bin/pg_verifybackup/po/de.po b/src/bin/pg_verifybackup/po/de.po index 7cc195ecc94a5..a9e24931100c0 100644 --- a/src/bin/pg_verifybackup/po/de.po +++ b/src/bin/pg_verifybackup/po/de.po @@ -1,13 +1,13 @@ # German message translation file for pg_verifybackup -# Copyright (C) 2020-2024 PostgreSQL Global Development Group +# Copyright (C) 2020-2025 PostgreSQL Global Development Group # This file is distributed under the same license as the pg_verifybackup (PostgreSQL) package. # msgid "" msgstr "" -"Project-Id-Version: pg_verifybackup (PostgreSQL) 17\n" +"Project-Id-Version: pg_verifybackup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 07:48+0000\n" -"PO-Revision-Date: 2024-05-24 15:40+0200\n" +"POT-Creation-Date: 2025-04-29 14:48+0000\n" +"PO-Revision-Date: 2025-04-29 18:57+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -15,22 +15,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -40,8 +40,8 @@ msgstr "Tipp: " msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: ../../common/controldata_utils.c:110 pg_verifybackup.c:438 -#: pg_verifybackup.c:476 pg_verifybackup.c:896 +#: ../../common/controldata_utils.c:110 pg_verifybackup.c:440 +#: pg_verifybackup.c:478 pg_verifybackup.c:1025 pg_verifybackup.c:1144 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" @@ -52,7 +52,7 @@ msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 -#: pg_verifybackup.c:902 +#: pg_verifybackup.c:1030 pg_verifybackup.c:1150 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" @@ -75,8 +75,8 @@ msgstr "" "diesem Fall wären die Ergebnisse unten falsch und die PostgreSQL-Installation\n" "wäre inkompatibel mit diesem Datenverzeichnis." -#: ../../common/controldata_utils.c:230 pg_verifybackup.c:406 -#: pg_verifybackup.c:865 +#: ../../common/controldata_utils.c:230 pg_verifybackup.c:408 +#: pg_verifybackup.c:1005 pg_verifybackup.c:1113 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" @@ -92,7 +92,8 @@ msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" #: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -121,405 +122,603 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/jsonapi.c:2121 +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "Parser mit rekursivem Abstieg kann inkrementellen Lexer nicht benutzen." -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "Inkrementeller Parser benötigt inkrementellen Lexer." -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSON zu tief geschachtelt, maximale erlaubte Tiefe ist 6400." -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "Escape-Sequenz »\\%.*s« ist nicht gültig." -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Zeichen mit Wert 0x%02x muss escapt werden." -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "Ende der Eingabe erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "Array-Element oder »]« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "»,« oder »]« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "»:« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "JSON-Wert erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "Die Eingabezeichenkette endete unerwartet." -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "Zeichenkette oder »}« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "»,« oder »}« erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "Zeichenkette erwartet, aber »%.*s« gefunden." -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "Token »%.*s« ist ungültig." -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 kann nicht in »text« umgewandelt werden." -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "Nach »\\u« müssen vier Hexadezimalziffern folgen." -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Unicode-Escape-Werte können nicht für Code-Punkt-Werte über 007F verwendet werden, wenn die Kodierung nicht UTF8 ist." -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Unicode-Escape-Wert konnte nicht in die Serverkodierung %s umgewandelt werden." -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicode-High-Surrogate darf nicht auf ein High-Surrogate folgen." -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicode-Low-Surrogate muss auf ein High-Surrogate folgen." -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "Speicher aufgebraucht beim Konstruieren der Fehlerbeschreibung" + +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht initialisieren" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "Manifest endete unerwartet" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht aktualisieren" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "unerwarteter Objektstart" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "unerwartetes Objektende" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "unerwarteter Array-Start" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "unerwartetes Array-Ende" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "unerwartete Versionskennzeichnung" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "unbekanntes Feld auf oberster Ebene" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "unerwartetes Feld für Datei" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "unerwartetes Feld für WAL-Bereich" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "unbekanntes Feld für Objekt" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "unerwarteter Skalar" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "Manifestversion ist keine ganze Zahl" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "unerwartete Manifestversion" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" msgstr "Systemidentifikator im Manifest ist keine ganze Zahl" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "fehlender Pfadname" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "sowohl Pfadname als auch kodierter Pfadname angegeben" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "Größenangabe fehlt" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "Prüfsumme ohne Algorithmus" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "konnte Dateinamen nicht dekodieren" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "Dateigröße ist keine ganze Zahl" -#: ../../common/parse_manifest.c:700 +#: ../../common/parse_manifest.c:699 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "unbekannter Prüfsummenalgorithmus: »%s«" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "ungültige Prüfsumme für Datei »%s«: »%s«" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "Zeitleiste fehlt" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "Start-LSN fehlt" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "End-LSN fehlt" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "Zeitleiste ist keine ganze Zahl" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "konnte Start-LSN nicht parsen" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "konnte End-LSN nicht parsen" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "mindestens 2 Zeilen erwartet" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "letzte Zeile nicht durch Newline abgeschlossen" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "konnte Prüfsumme des Manifests nicht abschließen" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "Manifest hat keine Prüfsumme" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "ungültige Manifestprüfsumme: »%s«" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "Manifestprüfsumme stimmt nicht überein" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "konnte Backup-Manifest nicht parsen: %s" -#: pg_verifybackup.c:277 pg_verifybackup.c:286 pg_verifybackup.c:297 +#: ../../fe_utils/astreamer_gzip.c:115 +#, c-format +msgid "could not create compressed file \"%s\": %m" +msgstr "konnte komprimierte Datei »%s« nicht erzeugen: %m" + +#: ../../fe_utils/astreamer_gzip.c:127 +#, c-format +msgid "could not duplicate stdout: %m" +msgstr "konnte Standardausgabe nicht duplizieren: %m" + +#: ../../fe_utils/astreamer_gzip.c:131 +#, c-format +msgid "could not open output file: %m" +msgstr "konnte Ausgabedatei nicht öffnen: %m" + +#: ../../fe_utils/astreamer_gzip.c:135 +#, c-format +msgid "could not set compression level %d: %s" +msgstr "konnte Komprimierungsniveau %d nicht setzen: %s" + +#: ../../fe_utils/astreamer_gzip.c:140 ../../fe_utils/astreamer_gzip.c:273 +#: ../../fe_utils/astreamer_lz4.c:102 ../../fe_utils/astreamer_lz4.c:300 +#: ../../fe_utils/astreamer_zstd.c:133 ../../fe_utils/astreamer_zstd.c:288 +#, c-format +msgid "this build does not support compression with %s" +msgstr "diese Installation unterstützt keine Komprimierung mit %s" + +#: ../../fe_utils/astreamer_gzip.c:167 +#, c-format +msgid "could not write to compressed file \"%s\": %s" +msgstr "konnte nicht in komprimierte Datei »%s« schreiben: %s" + +#: ../../fe_utils/astreamer_gzip.c:191 +#, c-format +msgid "could not close compressed file \"%s\": %m" +msgstr "konnte komprimierte Datei »%s« nicht schließen: %m" + +#: ../../fe_utils/astreamer_gzip.c:269 +#, c-format +msgid "could not initialize compression library" +msgstr "konnte Komprimierungsbibliothek nicht initialisieren" + +#: ../../fe_utils/astreamer_gzip.c:320 ../../fe_utils/astreamer_lz4.c:356 +#: ../../fe_utils/astreamer_zstd.c:333 +#, c-format +msgid "could not decompress data: %s" +msgstr "konnte Daten nicht dekomprimieren: %s" + +#: ../../fe_utils/astreamer_lz4.c:97 +#, c-format +msgid "could not create lz4 compression context: %s" +msgstr "konnte lz4-Komprimierungskontext nicht erzeugen: %s" + +#: ../../fe_utils/astreamer_lz4.c:142 +#, c-format +msgid "could not write lz4 header: %s" +msgstr "konnte lz4-Header nicht schreiben: %s" + +#: ../../fe_utils/astreamer_lz4.c:191 ../../fe_utils/astreamer_zstd.c:185 +#: ../../fe_utils/astreamer_zstd.c:227 +#, c-format +msgid "could not compress data: %s" +msgstr "konnte Daten nicht komprimieren: %s" + +#: ../../fe_utils/astreamer_lz4.c:243 +#, c-format +msgid "could not end lz4 compression: %s" +msgstr "konnte lz4-Komprimierung nicht beenden: %s" + +#: ../../fe_utils/astreamer_lz4.c:295 +#, c-format +msgid "could not initialize compression library: %s" +msgstr "konnte Komprimierungsbibliothek nicht initialisieren: %s" + +#: ../../fe_utils/astreamer_tar.c:244 +#, c-format +msgid "tar file trailer exceeds 2 blocks" +msgstr "Tar-Datei-Trailer überschreitet 2 Blöcke" + +#: ../../fe_utils/astreamer_tar.c:249 astreamer_verify.c:130 +#, c-format +msgid "unexpected state while parsing tar archive" +msgstr "unerwarteter Zustand beim Parsen des Tar-Archivs" + +#: ../../fe_utils/astreamer_tar.c:292 +#, c-format +msgid "tar member has empty name" +msgstr "Tar-Mitglied hat leeren Namen" + +#: ../../fe_utils/astreamer_tar.c:326 +#, c-format +msgid "COPY stream ended before last file was finished" +msgstr "COPY-Strom endete vor dem Ende der letzten Datei" + +#: ../../fe_utils/astreamer_zstd.c:89 +#, c-format +msgid "could not create zstd compression context" +msgstr "konnte zstd-Komprimierungskontext nicht erzeugen" + +#: ../../fe_utils/astreamer_zstd.c:95 +#, c-format +msgid "could not set zstd compression level to %d: %s" +msgstr "konnte zstd-Komprimierungsniveau nicht auf %d setzen: %s" + +#: ../../fe_utils/astreamer_zstd.c:109 +#, c-format +msgid "could not set compression worker count to %d: %s" +msgstr "konnte Komprimierungs-Worker-Anzahl nicht auf %d setzen: %s" + +#: ../../fe_utils/astreamer_zstd.c:120 +#, c-format +msgid "could not enable long-distance mode: %s" +msgstr "konnte Long-Distance-Modus nicht einschalten: %s" + +#: ../../fe_utils/astreamer_zstd.c:279 +#, c-format +msgid "could not create zstd decompression context" +msgstr "konnte zstd-Dekomprimierungskontext nicht erzeugen" + +#: astreamer_verify.c:198 +#, c-format +msgid "file \"%s\" is present in archive \"%s\" but not in the manifest" +msgstr "Datei »%s« ist im Archiv »%s« vorhanden, aber nicht im Manifest" + +#: astreamer_verify.c:211 +#, c-format +msgid "file \"%s\" has size %llu in archive \"%s\" but size % in the manifest" +msgstr "Datei »%s« hat Größe %llu im Archiv »%s« aber Größe % im Manifest" + +#: astreamer_verify.c:236 +#, c-format +msgid "%s: could not initialize checksum of file \"%s\"" +msgstr "%s: konnte Prüfsumme der Datei »%s« nicht initialisieren" + +#: astreamer_verify.c:274 pg_verifybackup.c:1133 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "konnte Prüfsumme der Datei »%s« nicht aktualisieren" + +#: astreamer_verify.c:300 +#, c-format +msgid "file \"%s\" in archive \"%s\" should contain % bytes, but % bytes were read" +msgstr "Datei »%s« in Archiv »%s« sollte % Bytes enthalten, aber % Bytes wurden gelesen" + +#: astreamer_verify.c:312 pg_verifybackup.c:1179 +#, c-format +msgid "could not finalize checksum of file \"%s\"" +msgstr "konnte Prüfsumme der Datei »%s« nicht abschließen" + +#: astreamer_verify.c:320 +#, c-format +msgid "file \"%s\" in archive \"%s\" has checksum of length %d, but expected %d" +msgstr "Datei »%s« in Archiv »%s« hat Prüfsumme mit Länge %d, aber %d wurde erwartet" + +#: astreamer_verify.c:325 +#, c-format +msgid "checksum mismatch for file \"%s\" in archive \"%s\"" +msgstr "Prüfsumme stimmt nicht überein für Datei »%s« in Archiv »%s«" + +#: astreamer_verify.c:387 +#, c-format +msgid "unexpected control file size %d, expected %d" +msgstr "unerwartete Kontrolldateigröße %d, erwartet wurde %d" + +#: astreamer_verify.c:399 +#, c-format +msgid "%s: %s: CRC is incorrect" +msgstr "%s: %s: CRC ist falsch" + +#: astreamer_verify.c:405 +#, c-format +msgid "%s: %s: unexpected control file version" +msgstr "%s: %s: unerwartete Kontrolldateiversion" + +#: astreamer_verify.c:412 +#, c-format +msgid "%s: %s: manifest system identifier is %, but control file has %" +msgstr "%s: %s: Systemidentifikator im Manifest ist %, aber Kontrolldatei hat %" + +#: pg_verifybackup.c:208 +#, c-format +msgid "invalid backup format \"%s\", must be \"plain\" or \"tar\"" +msgstr "ungültiges Backup-Format »%s«, muss »plain« oder »tar« sein" + +#: pg_verifybackup.c:229 pg_verifybackup.c:238 pg_verifybackup.c:249 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_verifybackup.c:285 +#: pg_verifybackup.c:237 #, c-format msgid "no backup directory specified" msgstr "kein Backup-Verzeichnis angegeben" -#: pg_verifybackup.c:295 +#: pg_verifybackup.c:247 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_verifybackup.c:303 +#: pg_verifybackup.c:255 #, c-format msgid "cannot specify both %s and %s" msgstr "%s und %s können nicht beide angegeben werden" -#: pg_verifybackup.c:323 +#: pg_verifybackup.c:275 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "Programm »%s« wird von %s benötigt, aber wurde nicht im selben Verzeichnis wie »%s« gefunden" -#: pg_verifybackup.c:326 +#: pg_verifybackup.c:278 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "Programm »%s« wurde von »%s« gefunden, aber es hatte nicht die gleiche Version wie %s" -#: pg_verifybackup.c:381 +#: pg_verifybackup.c:304 pg_verifybackup.c:625 #, c-format -msgid "backup successfully verified\n" -msgstr "Backup erfolgreich überprüft\n" +msgid "could not open directory \"%s\": %m" +msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: pg_verifybackup.c:410 +#: pg_verifybackup.c:323 pg_verifybackup.c:412 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: pg_verifybackup.c:440 +#: pg_verifybackup.c:340 +#, c-format +msgid "pg_waldump cannot read tar files" +msgstr "pg_waldump kann keine Tar-Dateien lesen" + +#: pg_verifybackup.c:341 +#, c-format +msgid "You must use -n/--no-parse-wal when verifying a tar-format backup." +msgstr "Sie müssen -n/--no-parse-wal verwenden, wenn ein Backup im Tar-Format überprüft wird." + +#: pg_verifybackup.c:383 +#, c-format +msgid "backup successfully verified\n" +msgstr "Backup erfolgreich überprüft\n" + +#: pg_verifybackup.c:442 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "konnte Datei »%s« nicht lesen: %d von %lld gelesen" -#: pg_verifybackup.c:478 +#: pg_verifybackup.c:480 #, c-format msgid "could not read file \"%s\": read %lld of %lld" msgstr "konnte Datei »%s« nicht lesen: %lld von %lld gelesen" -#: pg_verifybackup.c:561 +#: pg_verifybackup.c:563 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "doppelter Pfadname im Backup-Manifest: »%s«" -#: pg_verifybackup.c:624 pg_verifybackup.c:631 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" - -#: pg_verifybackup.c:663 +#: pg_verifybackup.c:657 pg_verifybackup.c:827 #, c-format msgid "could not close directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht schließen: %m" -#: pg_verifybackup.c:683 +#: pg_verifybackup.c:678 pg_verifybackup.c:897 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "konnte »stat« für Datei oder Verzeichnis »%s« nicht ausführen: %m" -#: pg_verifybackup.c:706 +#: pg_verifybackup.c:701 #, c-format -msgid "\"%s\" is not a file or directory" -msgstr "»%s« ist keine Datei und kein Verzeichnis" +msgid "\"%s\" is not a regular file or directory" +msgstr "»%s« ist keine normale Datei und kein Verzeichnis" -#: pg_verifybackup.c:716 +#: pg_verifybackup.c:711 #, c-format msgid "\"%s\" is present on disk but not in the manifest" msgstr "»%s« ist auf der Festplatte vorhanden, aber nicht im Manifest" -#: pg_verifybackup.c:728 +#: pg_verifybackup.c:723 #, c-format -msgid "\"%s\" has size %lld on disk but size %zu in the manifest" -msgstr "»%s« hat Größe %lld auf Festplatte aber Größe %zu im Manifest" +msgid "\"%s\" has size %llu on disk but size %llu in the manifest" +msgstr "»%s« hat Größe %llu auf Festplatte aber Größe %llu im Manifest" -#: pg_verifybackup.c:768 +#: pg_verifybackup.c:765 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRC ist falsch" -#: pg_verifybackup.c:772 +#: pg_verifybackup.c:769 #, c-format msgid "%s: unexpected control file version" msgstr "%s: unerwartete Kontrolldateiversion" -#: pg_verifybackup.c:777 +#: pg_verifybackup.c:774 #, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: Systemidentifikator im Manifest ist %llu, aber Kontrolldatei hat %llu" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: Systemidentifikator im Manifest ist %, aber Kontrolldatei hat %" -#: pg_verifybackup.c:801 +#: pg_verifybackup.c:906 #, c-format -msgid "\"%s\" is present in the manifest but not on disk" -msgstr "»%s« steht im Manifest, ist aber nicht auf der Festplatte vorhanden" +msgid "file \"%s\" is not a regular file" +msgstr "Datei »%s« ist keine normale Datei" -#: pg_verifybackup.c:873 +#: pg_verifybackup.c:936 pg_verifybackup.c:957 #, c-format -msgid "could not initialize checksum of file \"%s\"" -msgstr "konnte Prüfsumme der Datei »%s« nicht initialisieren" +msgid "file \"%s\" is not expected in a tar format backup" +msgstr "Datei »%s« wird in einem Backup im Tar-Format nicht erwartet" -#: pg_verifybackup.c:885 +#: pg_verifybackup.c:1049 #, c-format -msgid "could not update checksum of file \"%s\"" -msgstr "konnte Prüfsumme der Datei »%s« nicht aktualisieren" +msgid "\"%s\" is present in the manifest but not on disk" +msgstr "»%s« steht im Manifest, ist aber nicht auf der Festplatte vorhanden" -#: pg_verifybackup.c:921 +#: pg_verifybackup.c:1121 #, c-format -msgid "file \"%s\" should contain %zu bytes, but read %zu bytes" -msgstr "Datei »%s« sollte %zu Bytes enthalten, aber %zu Bytes wurden gelesen" +msgid "could not initialize checksum of file \"%s\"" +msgstr "konnte Prüfsumme der Datei »%s« nicht initialisieren" -#: pg_verifybackup.c:931 +#: pg_verifybackup.c:1169 #, c-format -msgid "could not finalize checksum of file \"%s\"" -msgstr "konnte Prüfsumme der Datei »%s« nicht abschließen" +msgid "file \"%s\" should contain % bytes, but read %" +msgstr "Datei »%s« sollte % Bytes enthalten, aber % Bytes wurden gelesen" -#: pg_verifybackup.c:939 +#: pg_verifybackup.c:1187 #, c-format msgid "file \"%s\" has checksum of length %d, but expected %d" msgstr "Datei »%s« hat Prüfsumme mit Länge %d, aber %d wurde erwartet" -#: pg_verifybackup.c:943 +#: pg_verifybackup.c:1191 #, c-format msgid "checksum mismatch for file \"%s\"" msgstr "Prüfsumme stimmt nicht überein für Datei »%s«" -#: pg_verifybackup.c:969 +#: pg_verifybackup.c:1217 #, c-format msgid "WAL parsing failed for timeline %u" msgstr "Parsen des WAL fehlgeschlagen für Zeitleiste %u" -#: pg_verifybackup.c:1072 +#: pg_verifybackup.c:1351 #, c-format msgid "%*s/%s kB (%d%%) verified" msgstr "%*s/%s kB (%d%%) überprüft" -#: pg_verifybackup.c:1089 +#: pg_verifybackup.c:1368 #, c-format msgid "" "%s verifies a backup against the backup manifest.\n" @@ -528,7 +727,7 @@ msgstr "" "%s überprüft ein Backup anhand eines Backup-Manifests.\n" "\n" -#: pg_verifybackup.c:1090 +#: pg_verifybackup.c:1369 #, c-format msgid "" "Usage:\n" @@ -539,62 +738,67 @@ msgstr "" " %s [OPTION]... BACKUPVERZ\n" "\n" -#: pg_verifybackup.c:1091 +#: pg_verifybackup.c:1370 #, c-format msgid "Options:\n" msgstr "Optionen:\n" -#: pg_verifybackup.c:1092 +#: pg_verifybackup.c:1371 #, c-format msgid " -e, --exit-on-error exit immediately on error\n" msgstr " -e, --exit-on-error bei Fehler sofort beenden\n" -#: pg_verifybackup.c:1093 +#: pg_verifybackup.c:1372 +#, c-format +msgid " -F, --format=p|t backup format (plain, tar)\n" +msgstr " -F, --format=p|t Backup-Format (plain, tar)\n" + +#: pg_verifybackup.c:1373 #, c-format msgid " -i, --ignore=RELATIVE_PATH ignore indicated path\n" msgstr " -i, --ignore=REL-PFAD angegebenen Pfad ignorieren\n" -#: pg_verifybackup.c:1094 +#: pg_verifybackup.c:1374 #, c-format msgid " -m, --manifest-path=PATH use specified path for manifest\n" msgstr " -m, --manifest-path=PFAD angegebenen Pfad für Manifest verwenden\n" -#: pg_verifybackup.c:1095 +#: pg_verifybackup.c:1375 #, c-format msgid " -n, --no-parse-wal do not try to parse WAL files\n" msgstr " -n, --no-parse-wal nicht versuchen WAL-Dateien zu parsen\n" -#: pg_verifybackup.c:1096 +#: pg_verifybackup.c:1376 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress Fortschrittsinformationen zeigen\n" -#: pg_verifybackup.c:1097 +#: pg_verifybackup.c:1377 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet keine Ausgabe, außer Fehler\n" -#: pg_verifybackup.c:1098 +#: pg_verifybackup.c:1378 #, c-format msgid " -s, --skip-checksums skip checksum verification\n" msgstr " -s, --skip-checksums Überprüfung der Prüfsummen überspringen\n" -#: pg_verifybackup.c:1099 +#: pg_verifybackup.c:1379 #, c-format msgid " -w, --wal-directory=PATH use specified path for WAL files\n" msgstr " -w, --wal-directory=PFAD angegebenen Pfad für WAL-Dateien verwenden\n" -#: pg_verifybackup.c:1100 +#: pg_verifybackup.c:1380 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_verifybackup.c:1101 +#: pg_verifybackup.c:1381 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_verifybackup.c:1102 +#: pg_verifybackup.c:1382 #, c-format msgid "" "\n" @@ -603,7 +807,7 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_verifybackup.c:1103 +#: pg_verifybackup.c:1383 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" diff --git a/src/bin/pg_verifybackup/po/ja.po b/src/bin/pg_verifybackup/po/ja.po index 3466239c57da7..c910fb236cc6b 100644 --- a/src/bin/pg_verifybackup/po/ja.po +++ b/src/bin/pg_verifybackup/po/ja.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_verifybackup (PostgreSQL 17)\n" +"Project-Id-Version: pg_verifybackup (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-24 10:24+0900\n" -"PO-Revision-Date: 2024-05-24 10:47+0900\n" +"POT-Creation-Date: 2025-04-14 09:42+0900\n" +"PO-Revision-Date: 2025-04-14 10:32+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -17,26 +17,101 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ファイル\"%s\"を読み込み用にオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:110 pg_verifybackup.c:440 +#: pg_verifybackup.c:478 pg_verifybackup.c:1025 pg_verifybackup.c:1144 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: pg_verifybackup.c:1030 pg_verifybackup.c:1150 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ファイル\"%s\"をクローズできませんでした: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "バイトオーダが合っていません" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"バイトオーダが異なる可能性があります。\n" +"pg_controlファイルを格納するために使用するバイトオーダが本プログラムで使用\n" +"されるものと一致しないようです。この場合以下の結果は不正確になります。また、\n" +"PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" + +#: ../../common/controldata_utils.c:230 pg_verifybackup.c:408 +#: pg_verifybackup.c:1005 pg_verifybackup.c:1113 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ファイル\"%s\"をオープンできませんでした: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ファイル\"%s\"を書き出せませんでした: %m" + +#: ../../common/controldata_utils.c:268 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ファイル\"%s\"をfsyncできませんでした: %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "メモリ不足です" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "成功" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "出力先バッファが小さすぎます" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "OpenSSLのエラー" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -48,425 +123,489 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null ポインタを複製できません (内部エラー)\n" -#: ../../common/jsonapi.c:2121 +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "再帰降下パーサーは差分字句解析器を使用できません。" -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "差分パーサーは差分字句解析器を必要とします。" -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSONのネストが深すぎます、可能な最大の深さは6400です。" -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "エスケープシーケンス\"\\%.*s\"は不正です。" -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "0x%02x値を持つ文字はエスケープしなければなりません" -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "入力の終端を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "配列要素または\"]\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "\",\"または\"]\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "\":\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "JSON値を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "入力文字列が予期せず終了しました。" -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "文字列または\"}\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "\",\"または\"}\"を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "文字列を想定していましたが、\"\\%.*s\"でした。" -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "トークン\"\\%.*s\"は不正です。" -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 はテキストに変換できません。" -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\"の後には16進数の4桁が続かなければなりません。" -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "エンコーディングがUTF-8ではない場合、コードポイントの値が 007F 以上についてはUnicodeエスケープの値は使用できません。" -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "Unicodeエスケープの値がサーバーエンコーディング%sに変換できませんでした。" -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Unicodeのハイサロゲートはハイサロゲートに続いてはいけません。" -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "Unicodeのローサロゲートはハイサロゲートに続かなければなりません。" -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 -#, c-format -msgid "out of memory" -msgstr "メモリ不足です" +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "エラー記述の構築中にメモリ不足" -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "目録のチェックサムの初期化ができませんでした" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "目録が予期せず終了しました。" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "目録のチェックサムの更新ができませんでした" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "予期しないオブジェクトの開始" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "予期しないオブジェクトの終わり" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "予期しない配列の開始" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "予期しない配列の終わり" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "バージョン指示子を想定していました" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "認識できないトップレベルフィールド" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "予期しないファイルフィールド" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "予期しないWAL範囲フィールド" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "予期しないオブジェクトフィールド" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "予期しないスカラー" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "目録バージョンが整数ではありません" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "予期しない目録バージョン" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" -msgstr "目録のシステム識別子が整数ではありません" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "目録中のシステム識別子が整数ではありません" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "パス名がありません" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "パス名とエンコードされたパス名の両方" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "サイズがありません" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "アルゴリズムなしのチェックサム" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ファイル名をデコードできませんでした" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ファイルサイズが整数ではありません" -#: ../../common/parse_manifest.c:700 +#: ../../common/parse_manifest.c:699 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "認識できないチェックサムアルゴリズム: \"%s\"" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "\"%s\" ファイルのチェックサムが無効: \"%s\"" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "タイムラインがありません" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "開始LSNがありません" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "終了LSNがありません" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "タイムラインが整数ではありません" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "開始LSNをパースできませんでした" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "終了LSNをパースできませんでした" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "少なくとも2行が必要です" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "最後の行が改行で終わっていません" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "目録のチェックサムの完了ができませんでした" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "目録にチェックサムがありません" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "無効な目録チェックサム: \"%s\"" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "目録チェックサムの不一致" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "バックアップ目録をパースできませんでした: %s" -#: pg_verifybackup.c:277 pg_verifybackup.c:286 pg_verifybackup.c:297 +#: astreamer_verify.c:130 +#, c-format +msgid "unexpected state while parsing tar file" +msgstr "tarファイルのパース中に想定外の状態" + +#: astreamer_verify.c:198 +#, c-format +msgid "\"%s\" is present in \"%s\" but not in the manifest" +msgstr "\"%s\"は\"%s\"には存在しますが、目録には存在しません" + +#: astreamer_verify.c:211 +#, c-format +msgid "\"%s\" has size %llu in \"%s\" but size % in the manifest" +msgstr "\"%1$s\"は\"%3$s\"内でのサイズは%2$lluですが、目録上は%4$となっています" + +#: astreamer_verify.c:236 +#, c-format +msgid "%s: could not initialize checksum of file \"%s\"" +msgstr "%s: ファイル\"%s\"のチェックサムの初期化ができませんでした" + +#: astreamer_verify.c:274 pg_verifybackup.c:1133 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "ファイル\"%s\"のチェックサムの更新ができませんでした" + +#: astreamer_verify.c:300 +#, c-format +msgid "file \"%s\" in \"%s\" should contain % bytes, but read % bytes" +msgstr "ファイル\"%s\"は\"%s\"内では%バイトを含んでいるはずですが、%バイトしか読み込まれませんでした" + +#: astreamer_verify.c:312 pg_verifybackup.c:1179 +#, c-format +msgid "could not finalize checksum of file \"%s\"" +msgstr "ファイル\"%s\"のチェックサムの完了ができませんでした" + +#: astreamer_verify.c:320 +#, c-format +msgid "file \"%s\" in \"%s\" has checksum of length %d, but expected %d" +msgstr "ファイル\"%s\"の\"%s\"内でのチェックサムの長さは%dですが、期待している長さは%dです" + +#: astreamer_verify.c:325 +#, c-format +msgid "checksum mismatch for file \"%s\" in \"%s\"" +msgstr "\"%s\"内のファイル\"%s\"のチェックサムが一致しません" + +#: astreamer_verify.c:387 +#, c-format +msgid "unexpected control file size %d, expected %d" +msgstr "想定外の制御ファイルのサイズ%d、想定は%d" + +#: astreamer_verify.c:399 +#, c-format +msgid "%s: %s: CRC is incorrect" +msgstr "%s: %s: CRCが正しくありません" + +#: astreamer_verify.c:405 +#, c-format +msgid "%s: %s: unexpected control file version" +msgstr "%s: %s: 予期しない制御ファイルバージョン" + +#: astreamer_verify.c:412 +#, c-format +msgid "%s: %s: manifest system identifier is %, but control file has %" +msgstr "%s: %s: 目録のシステム識別子が%ですが、制御ファイルでは%です" + +#: pg_verifybackup.c:208 +#, c-format +msgid "invalid backup format \"%s\", must be \"plain\" or \"tar\"" +msgstr "不正なバックアップフォーマット\"%s\"、\"plain\"か\"tar\"でなければなりません" + +#: pg_verifybackup.c:229 pg_verifybackup.c:238 pg_verifybackup.c:249 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_verifybackup.c:285 +#: pg_verifybackup.c:237 #, c-format msgid "no backup directory specified" msgstr "バックアップディレクトリが指定されていません" -#: pg_verifybackup.c:295 +#: pg_verifybackup.c:247 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: pg_verifybackup.c:303 +#: pg_verifybackup.c:255 #, c-format msgid "cannot specify both %s and %s" msgstr "%sと%sの両方を同時には指定できません" -#: pg_verifybackup.c:323 +#: pg_verifybackup.c:275 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "%2$sにはプログラム\"%1$s\"が必要ですが、\"%3$s\"と同じディレクトリにありませんでした" -#: pg_verifybackup.c:326 +#: pg_verifybackup.c:278 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "\"%2$s\"がプログラム\"%1$s\"を見つけましたが、これは%3$sと同じバージョンではありませんでした" -#: pg_verifybackup.c:381 +#: pg_verifybackup.c:304 pg_verifybackup.c:625 #, c-format -msgid "backup successfully verified\n" -msgstr "バックアップが正常に検証されました\n" - -#: pg_verifybackup.c:406 pg_verifybackup.c:865 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "ファイル\"%s\"をオープンできませんでした: %m" +msgid "could not open directory \"%s\": %m" +msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: pg_verifybackup.c:410 +#: pg_verifybackup.c:323 pg_verifybackup.c:412 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: pg_verifybackup.c:438 pg_verifybackup.c:476 pg_verifybackup.c:896 +#: pg_verifybackup.c:340 #, c-format -msgid "could not read file \"%s\": %m" -msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" +msgid "pg_waldump cannot read tar files" +msgstr "pg_waldumpはtarファイルを読めません" + +#: pg_verifybackup.c:341 +#, c-format +msgid "You must use -n or --no-parse-wal when verifying a tar-format backup." +msgstr "tarフォーマットのバックアップを検証するときには -n または --no-parse-wal を使う必要があります。" -#: pg_verifybackup.c:440 +#: pg_verifybackup.c:383 +#, c-format +msgid "backup successfully verified\n" +msgstr "バックアップが正常に検証されました\n" + +#: pg_verifybackup.c:442 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイトのうち%2$dバイトを読み込みました" -#: pg_verifybackup.c:478 +#: pg_verifybackup.c:480 #, c-format msgid "could not read file \"%s\": read %lld of %lld" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$lldバイトのうち%2$lldバイトを読み込みました" -#: pg_verifybackup.c:561 +#: pg_verifybackup.c:563 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "バックアップ目録内の重複パス名: \"%s\"" -#: pg_verifybackup.c:624 pg_verifybackup.c:631 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" - -#: pg_verifybackup.c:663 +#: pg_verifybackup.c:657 pg_verifybackup.c:827 #, c-format msgid "could not close directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" -#: pg_verifybackup.c:683 +#: pg_verifybackup.c:678 pg_verifybackup.c:897 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "\"%s\"というファイルまたはディレクトリの情報を取得できませんでした: %m" -#: pg_verifybackup.c:706 +#: pg_verifybackup.c:701 #, c-format msgid "\"%s\" is not a file or directory" msgstr "\"%s\"はファイルまたはディレクトリではありません" -#: pg_verifybackup.c:716 +#: pg_verifybackup.c:711 #, c-format msgid "\"%s\" is present on disk but not in the manifest" msgstr "\"%s\"はディスクに存在しますが、目録には存在しません" -#: pg_verifybackup.c:728 +#: pg_verifybackup.c:723 #, c-format -msgid "\"%s\" has size %lld on disk but size %zu in the manifest" -msgstr "\"%s\"はディスク上でのサイズは%lldですが、目録上は%zuとなっています" +msgid "\"%s\" has size %llu on disk but size %llu in the manifest" +msgstr "\"%s\"はディスク上でのサイズは%lluですが、目録上は%lluとなっています" -#: pg_verifybackup.c:768 +#: pg_verifybackup.c:765 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRCが正しくありません" -#: pg_verifybackup.c:772 +#: pg_verifybackup.c:769 #, c-format msgid "%s: unexpected control file version" msgstr "%s: 予期しない制御ファイルバージョン" -#: pg_verifybackup.c:777 -#, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: 目録のシステム識別子が%lluですが、制御ファイルでは%lluです" - -#: pg_verifybackup.c:801 +#: pg_verifybackup.c:774 #, c-format -msgid "\"%s\" is present in the manifest but not on disk" -msgstr "\"%s\"は目録には存在しますが、ディスクには存在しません" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: 目録のシステム識別子が%ですが、制御ファイルでは%です" -#: pg_verifybackup.c:873 +#: pg_verifybackup.c:906 #, c-format -msgid "could not initialize checksum of file \"%s\"" -msgstr "ファイル\"%s\"のチェックサムの初期化ができませんでした" +msgid "\"%s\" is not a plain file" +msgstr "\"%s\"は通常ファイルではありません" -#: pg_verifybackup.c:885 +#: pg_verifybackup.c:936 pg_verifybackup.c:957 #, c-format -msgid "could not update checksum of file \"%s\"" -msgstr "ファイル\"%s\"のチェックサムの更新ができませんでした" +msgid "file \"%s\" is not expected in a tar format backup" +msgstr "tar形式のバックアップではファイル\"%s\"は想定外です" -#: pg_verifybackup.c:902 +#: pg_verifybackup.c:1049 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "ファイル\"%s\"をクローズできませんでした: %m" +msgid "\"%s\" is present in the manifest but not on disk" +msgstr "\"%s\"は目録には存在しますが、ディスクには存在しません" -#: pg_verifybackup.c:921 +#: pg_verifybackup.c:1121 #, c-format -msgid "file \"%s\" should contain %zu bytes, but read %zu bytes" -msgstr "file\"%s\"は%zuバイトを含む必要がありますが、%zuバイトが読み込まれました" +msgid "could not initialize checksum of file \"%s\"" +msgstr "ファイル\"%s\"のチェックサムの初期化ができませんでした" -#: pg_verifybackup.c:931 +#: pg_verifybackup.c:1169 #, c-format -msgid "could not finalize checksum of file \"%s\"" -msgstr "ファイル\"%s\"のチェックサムの完了ができませんでした" +msgid "file \"%s\" should contain % bytes, but read %" +msgstr "ファイル\"%s\"は%バイトを含んでいるはずですが、%バイトしか読み込まれませんでした" -#: pg_verifybackup.c:939 +#: pg_verifybackup.c:1187 #, c-format msgid "file \"%s\" has checksum of length %d, but expected %d" msgstr "ファイル\"%s\"のチェックサムの長さは%dですが、予期されるのは%dです" -#: pg_verifybackup.c:943 +#: pg_verifybackup.c:1191 #, c-format msgid "checksum mismatch for file \"%s\"" msgstr "ファイル\"%s\"のチェックサムが一致しません" -#: pg_verifybackup.c:969 +#: pg_verifybackup.c:1217 #, c-format msgid "WAL parsing failed for timeline %u" msgstr "タイムライン%uのWALのパースに失敗しました" -#: pg_verifybackup.c:1072 +#: pg_verifybackup.c:1351 #, c-format msgid "%*s/%s kB (%d%%) verified" msgstr "%*s/%s kB (%d%%) 検証しました" -#: pg_verifybackup.c:1089 +#: pg_verifybackup.c:1368 #, c-format msgid "" "%s verifies a backup against the backup manifest.\n" @@ -475,7 +614,7 @@ msgstr "" "%sはバックアップ目録に対してバックアップを検証します。\n" "\n" -#: pg_verifybackup.c:1090 +#: pg_verifybackup.c:1369 #, c-format msgid "" "Usage:\n" @@ -486,62 +625,67 @@ msgstr "" " %s [オプション]... BACKUPDIR\n" "\n" -#: pg_verifybackup.c:1091 +#: pg_verifybackup.c:1370 #, c-format msgid "Options:\n" msgstr "オプション:\n" -#: pg_verifybackup.c:1092 +#: pg_verifybackup.c:1371 #, c-format msgid " -e, --exit-on-error exit immediately on error\n" msgstr " -e, --exit-on-error エラー時に直ちに終了する\n" -#: pg_verifybackup.c:1093 +#: pg_verifybackup.c:1372 +#, c-format +msgid " -F, --format=p|t backup format (plain, tar)\n" +msgstr " -F, --format=p|t 出力フォーマット(plain, tar)\n" + +#: pg_verifybackup.c:1373 #, c-format msgid " -i, --ignore=RELATIVE_PATH ignore indicated path\n" msgstr " -i, --ignore=RELATIVE_PATH 指示されたパスを無視\n" -#: pg_verifybackup.c:1094 +#: pg_verifybackup.c:1374 #, c-format msgid " -m, --manifest-path=PATH use specified path for manifest\n" msgstr " -m, --manifest-path=PATH 目録として指定したパスを使用する\n" -#: pg_verifybackup.c:1095 +#: pg_verifybackup.c:1375 #, 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:1096 +#: pg_verifybackup.c:1376 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress 進行状況を表示\n" -#: pg_verifybackup.c:1097 +#: pg_verifybackup.c:1377 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet エラー以外何も出力しない\n" -#: pg_verifybackup.c:1098 +#: pg_verifybackup.c:1378 #, c-format msgid " -s, --skip-checksums skip checksum verification\n" msgstr " -s, --skip-checksums チェックサム検証をスキップ\n" -#: pg_verifybackup.c:1099 +#: pg_verifybackup.c:1379 #, c-format msgid " -w, --wal-directory=PATH use specified path for WAL files\n" msgstr " -w, --wal-directory=PATH WALファイルに指定したパスを使用する\n" -#: pg_verifybackup.c:1100 +#: pg_verifybackup.c:1380 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_verifybackup.c:1101 +#: pg_verifybackup.c:1381 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_verifybackup.c:1102 +#: pg_verifybackup.c:1382 #, c-format msgid "" "\n" @@ -550,7 +694,7 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_verifybackup.c:1103 +#: pg_verifybackup.c:1383 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" diff --git a/src/bin/pg_verifybackup/po/ka.po b/src/bin/pg_verifybackup/po/ka.po index b787426b173f0..982751984c784 100644 --- a/src/bin/pg_verifybackup/po/ka.po +++ b/src/bin/pg_verifybackup/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_verifybackup (PostgreSQL) 16\n" +"Project-Id-Version: pg_verifybackup (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-04 22:18+0000\n" -"PO-Revision-Date: 2024-06-05 01:39+0200\n" +"POT-Creation-Date: 2025-05-02 22:18+0000\n" +"PO-Revision-Date: 2025-05-03 01:22+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,28 +16,102 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " +#: ../../common/controldata_utils.c:97 +#, c-format +msgid "could not open file \"%s\" for reading: %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:110 pg_verifybackup.c:440 +#: pg_verifybackup.c:478 pg_verifybackup.c:1025 pg_verifybackup.c:1144 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:119 +#, c-format +msgid "could not read file \"%s\": read %d of %zu" +msgstr "\"%s\"-ის წაკითხვის შეცდომა: წაკითხულია %d %zu-დან" + +#: ../../common/controldata_utils.c:132 ../../common/controldata_utils.c:280 +#: pg_verifybackup.c:1030 pg_verifybackup.c:1150 +#, c-format +msgid "could not close file \"%s\": %m" +msgstr "ფაილის (%s) დახურვის შეცდომა: %m" + +#: ../../common/controldata_utils.c:168 +msgid "byte ordering mismatch" +msgstr "ბაიტების მიმდევრობა არ ემთხვევა" + +#: ../../common/controldata_utils.c:170 +#, c-format +msgid "" +"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." +msgstr "" +"ბაიტების მიმდევრობის შესაძლო შეუსაბამობა pg_control ფაილის შესანახად გამოყენებული \n" +"ბაიტების მიმდევრობა შესაძლოა არ ემთხვეოდეს ამ პროგრამის მიერ გამოყენებულს. ამ შემთხვევაში ქვემოთ \n" +"მოცემული შედეგები არასწორი იქნება და PostgreSQL ეს აგება ამ მონაცემთა საქაღალდესთან შეუთავსებელი იქნება." + +#: ../../common/controldata_utils.c:230 pg_verifybackup.c:408 +#: pg_verifybackup.c:1005 pg_verifybackup.c:1113 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/controldata_utils.c:249 +#, c-format +msgid "could not write file \"%s\": %m" +msgstr "ფაილში (%s) ჩაწერის შეცდომა: %m" + +#: ../../common/controldata_utils.c:268 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/cryptohash.c:261 ../../common/cryptohash_openssl.c:356 +#: ../../common/jsonapi.c:2407 ../../common/parse_manifest.c:157 +#: ../../common/parse_manifest.c:852 +#, c-format +msgid "out of memory" +msgstr "არასაკმარისი მეხსიერება" + +#: ../../common/cryptohash.c:266 ../../common/cryptohash.c:272 +#: ../../common/cryptohash_openssl.c:368 ../../common/cryptohash_openssl.c:376 +msgid "success" +msgstr "წარმატება" + +#: ../../common/cryptohash.c:268 ../../common/cryptohash_openssl.c:370 +msgid "destination buffer too small" +msgstr "სამიზნე ბუფერი ძალიან პატარაა" + +#: ../../common/cryptohash_openssl.c:372 +msgid "OpenSSL failure" +msgstr "OpenSSL -ის სეცდომა" + #: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 #: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format @@ -49,432 +123,610 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/jsonapi.c:2121 +#: ../../common/jsonapi.c:2432 msgid "Recursive descent parser cannot use incremental lexer." msgstr "რეკურსიულ დაღმავალ დამმუშავებელს ინკრემენტული lexer-ის გამოყენება არ შეუძლია." -#: ../../common/jsonapi.c:2123 +#: ../../common/jsonapi.c:2434 msgid "Incremental parser requires incremental lexer." msgstr "ინკრემენტულ დამმუშავებელს ინკრემენტული lexer სჭირდება." -#: ../../common/jsonapi.c:2125 +#: ../../common/jsonapi.c:2436 msgid "JSON nested too deep, maximum permitted depth is 6400." msgstr "JSON მეტისმეტად ღრმადაა ერთმანეთში ჩალაგებული. მაქსიმალური დასაშვები სიღრმეა 6400." -#: ../../common/jsonapi.c:2127 +#: ../../common/jsonapi.c:2438 #, c-format msgid "Escape sequence \"\\%.*s\" is invalid." msgstr "სპეციალური მიმდევრობა \"\\%.*s\" არასწორია." -#: ../../common/jsonapi.c:2131 +#: ../../common/jsonapi.c:2442 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "სიმბოლო კოდით 0x%02x აუცილებლად ეკრანირებული უნდა იყოს." -#: ../../common/jsonapi.c:2135 +#: ../../common/jsonapi.c:2446 #, c-format msgid "Expected end of input, but found \"%.*s\"." msgstr "მოველოდი შეყვანის დასასრულს, მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2138 +#: ../../common/jsonapi.c:2449 #, c-format msgid "Expected array element or \"]\", but found \"%.*s\"." msgstr "მოველოდი მასივის ელემენტს ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2141 +#: ../../common/jsonapi.c:2452 #, c-format msgid "Expected \",\" or \"]\", but found \"%.*s\"." msgstr "მოველოდი \",\" ან \"]\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2144 +#: ../../common/jsonapi.c:2455 #, c-format msgid "Expected \":\", but found \"%.*s\"." msgstr "მოველოდი \":\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2147 +#: ../../common/jsonapi.c:2458 #, c-format msgid "Expected JSON value, but found \"%.*s\"." msgstr "მოველოდი JSON მნიშვნელობას. მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2150 +#: ../../common/jsonapi.c:2461 msgid "The input string ended unexpectedly." msgstr "შეყვანის სტრიქონი მოულოდნელად დასრულდა." -#: ../../common/jsonapi.c:2152 +#: ../../common/jsonapi.c:2463 #, c-format msgid "Expected string or \"}\", but found \"%.*s\"." msgstr "მოველოდი სტრიქონს ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2155 +#: ../../common/jsonapi.c:2466 #, c-format msgid "Expected \",\" or \"}\", but found \"%.*s\"." msgstr "მოველოდი \",\", ან \"}\", მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2158 +#: ../../common/jsonapi.c:2469 #, c-format msgid "Expected string, but found \"%.*s\"." msgstr "მოველოდი სტრიქონს, მაგრამ მივიღე \"%.*s\"." -#: ../../common/jsonapi.c:2161 +#: ../../common/jsonapi.c:2472 #, c-format msgid "Token \"%.*s\" is invalid." msgstr "კოდი \"%.*s\" არასწორია." -#: ../../common/jsonapi.c:2164 +#: ../../common/jsonapi.c:2478 msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 ტექსტად ვერ გარდაიქმნება." -#: ../../common/jsonapi.c:2166 +#: ../../common/jsonapi.c:2480 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "\"\\u\" ს თექვსმეტობითი ციფრები უნდა მოჰყვებოდეს." -#: ../../common/jsonapi.c:2169 +#: ../../common/jsonapi.c:2483 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "უნიკოდის სპეციალური კოდების გამოყენება კოდის წერტილის მნიშვნელობებად 007F-ის ზემოთ შეუძლებელია, თუ კოდირება UTF-8 არაა." -#: ../../common/jsonapi.c:2178 +#: ../../common/jsonapi.c:2492 #, c-format msgid "Unicode escape value could not be translated to the server's encoding %s." msgstr "უნიკოდის სპეციალური სიმბოლოს მნიშვნელობის თარგმნა სერვერის კოდირებაში %s შეუძლებელია." -#: ../../common/jsonapi.c:2185 +#: ../../common/jsonapi.c:2499 msgid "Unicode high surrogate must not follow a high surrogate." msgstr "უნიკოდის მაღალ სუროგატს მაღალი სუროგატი არ უნდა მოსდევდეს." -#: ../../common/jsonapi.c:2187 +#: ../../common/jsonapi.c:2501 msgid "Unicode low surrogate must follow a high surrogate." msgstr "უნიკოდის დაბალი სუროგატი მაღალ სუროგატს უნდა მისდევდეს." -#: ../../common/parse_manifest.c:157 ../../common/parse_manifest.c:853 -#, c-format -msgid "out of memory" -msgstr "არასაკმარისი მეხსიერება" +#: ../../common/jsonapi.c:2523 +msgid "out of memory while constructing error description" +msgstr "არასაკმარისი მეხსიერება შეცდომის აღწერის აგებისას" -#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:855 +#: ../../common/parse_manifest.c:159 ../../common/parse_manifest.c:854 #, c-format msgid "could not initialize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის ინიციალიზაციის შეცდომა" -#: ../../common/parse_manifest.c:204 ../../common/parse_manifest.c:261 +#: ../../common/parse_manifest.c:203 ../../common/parse_manifest.c:260 msgid "manifest ended unexpectedly" msgstr "მანიფესტი მოულოდნელად დასრულდა" -#: ../../common/parse_manifest.c:210 ../../common/parse_manifest.c:862 +#: ../../common/parse_manifest.c:209 ../../common/parse_manifest.c:861 #, c-format msgid "could not update checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის განახლების შეცდომა" -#: ../../common/parse_manifest.c:302 +#: ../../common/parse_manifest.c:301 msgid "unexpected object start" msgstr "ობიექტის მოულოდნელი დასაწყისი" -#: ../../common/parse_manifest.c:337 +#: ../../common/parse_manifest.c:336 msgid "unexpected object end" msgstr "ობიექტის მოულოდნელი დასასრული" -#: ../../common/parse_manifest.c:366 +#: ../../common/parse_manifest.c:365 msgid "unexpected array start" msgstr "მასივის მოულოდნელი დასაწყისი" -#: ../../common/parse_manifest.c:391 +#: ../../common/parse_manifest.c:390 msgid "unexpected array end" msgstr "მასივის მოულოდნელი დასასრული" -#: ../../common/parse_manifest.c:418 +#: ../../common/parse_manifest.c:417 msgid "expected version indicator" msgstr "მოსალოდნელი ვერსიის მაჩვენებელი" -#: ../../common/parse_manifest.c:454 +#: ../../common/parse_manifest.c:453 msgid "unrecognized top-level field" msgstr "უცნობი ველი ზედა დონეზე" -#: ../../common/parse_manifest.c:473 +#: ../../common/parse_manifest.c:472 msgid "unexpected file field" msgstr "მოულოდნელი ველი ფაილისთვის" -#: ../../common/parse_manifest.c:487 +#: ../../common/parse_manifest.c:486 msgid "unexpected WAL range field" msgstr "მოულოდნელი ველი WAL-ის დიაპაზონისთვის" -#: ../../common/parse_manifest.c:493 +#: ../../common/parse_manifest.c:492 msgid "unexpected object field" msgstr "ობიექტის მოულოდნელი ველი" -#: ../../common/parse_manifest.c:583 +#: ../../common/parse_manifest.c:582 msgid "unexpected scalar" msgstr "მოულოდნელი სკალარი" -#: ../../common/parse_manifest.c:609 +#: ../../common/parse_manifest.c:608 msgid "manifest version not an integer" msgstr "მანიფესტის ვერსია მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:613 +#: ../../common/parse_manifest.c:612 msgid "unexpected manifest version" msgstr "მანიფესტის მოულოდნელი ვერსია" -#: ../../common/parse_manifest.c:637 -msgid "manifest system identifier not an integer" -msgstr "მანიფესტის სისტემის იდენფიტიკატორი მთელი რიცხვი არაა" +#: ../../common/parse_manifest.c:636 +msgid "system identifier in manifest not an integer" +msgstr "სისტემის იდენფიტიკატორი მანიფესტში მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:662 +#: ../../common/parse_manifest.c:661 msgid "missing path name" msgstr "აკლია ბილიკის სახელი" -#: ../../common/parse_manifest.c:665 +#: ../../common/parse_manifest.c:664 msgid "both path name and encoded path name" msgstr "ორივე, ბილიკის სახელი და ბილიკის კოდირებული სახელი" -#: ../../common/parse_manifest.c:667 +#: ../../common/parse_manifest.c:666 msgid "missing size" msgstr "ზომა აკლია" -#: ../../common/parse_manifest.c:670 +#: ../../common/parse_manifest.c:669 msgid "checksum without algorithm" msgstr "საკონტროლო ჯამი ალგორითმის გარეშე" -#: ../../common/parse_manifest.c:684 +#: ../../common/parse_manifest.c:683 msgid "could not decode file name" msgstr "ფაილის სახელის გაშიფვრის შეცდომა" -#: ../../common/parse_manifest.c:694 +#: ../../common/parse_manifest.c:693 msgid "file size is not an integer" msgstr "ფაილის ზომა მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:700 +#: ../../common/parse_manifest.c:699 #, c-format msgid "unrecognized checksum algorithm: \"%s\"" msgstr "საკონტროლო ჯამის უცნობი ალგორითმი: \"%s\"" -#: ../../common/parse_manifest.c:719 +#: ../../common/parse_manifest.c:718 #, c-format msgid "invalid checksum for file \"%s\": \"%s\"" msgstr "არასწორი საკონტროლო ჯამი ფაილისთვის \"%s\": \"%s\"" -#: ../../common/parse_manifest.c:762 +#: ../../common/parse_manifest.c:761 msgid "missing timeline" msgstr "აკლია დროის ხაზი" -#: ../../common/parse_manifest.c:764 +#: ../../common/parse_manifest.c:763 msgid "missing start LSN" msgstr "აკლია საწყისი LSN" -#: ../../common/parse_manifest.c:766 +#: ../../common/parse_manifest.c:765 msgid "missing end LSN" msgstr "აკლია დასასრულის LSN" -#: ../../common/parse_manifest.c:772 +#: ../../common/parse_manifest.c:771 msgid "timeline is not an integer" msgstr "დროის ხაზი მთელი რიცხვი არაა" -#: ../../common/parse_manifest.c:775 +#: ../../common/parse_manifest.c:774 msgid "could not parse start LSN" msgstr "საწყისი LSN-ის დამუშავების შეცდომა" -#: ../../common/parse_manifest.c:778 +#: ../../common/parse_manifest.c:777 msgid "could not parse end LSN" msgstr "საბოლოო LSN-ის დამუშავების შეცდომა" -#: ../../common/parse_manifest.c:843 +#: ../../common/parse_manifest.c:842 msgid "expected at least 2 lines" msgstr "ველოდებოდი სულ ცოტა 2 ხაზს" -#: ../../common/parse_manifest.c:846 +#: ../../common/parse_manifest.c:845 msgid "last line not newline-terminated" msgstr "ბოლო ხაზი ხაზის გადატანით არ სრულდება" -#: ../../common/parse_manifest.c:865 +#: ../../common/parse_manifest.c:864 #, c-format msgid "could not finalize checksum of manifest" msgstr "მანიფესტის საკონტროლო ჯამის დასრულების შეცდომა" -#: ../../common/parse_manifest.c:869 +#: ../../common/parse_manifest.c:868 #, c-format msgid "manifest has no checksum" msgstr "მანიფესტის საკონტროლო ჯამი არ გააჩნია" -#: ../../common/parse_manifest.c:873 +#: ../../common/parse_manifest.c:872 #, c-format msgid "invalid manifest checksum: \"%s\"" msgstr "მანიფესტის საკონტროლო ჯამის არასწორია: %s" -#: ../../common/parse_manifest.c:877 +#: ../../common/parse_manifest.c:876 #, c-format msgid "manifest checksum mismatch" msgstr "მანიფესტის საკონტროლო ჯამი არ ემთხვევა" -#: ../../common/parse_manifest.c:892 +#: ../../common/parse_manifest.c:891 #, c-format msgid "could not parse backup manifest: %s" msgstr "მარქაფის მანიფესტის დამუშავების შეცრომა: %s" -#: pg_verifybackup.c:277 pg_verifybackup.c:286 pg_verifybackup.c:297 +#: ../../fe_utils/astreamer_gzip.c:115 +#, c-format +msgid "could not create compressed file \"%s\": %m" +msgstr "ვერ შექმნა შეკუმშული ფაილი \"%s\": %m" + +#: ../../fe_utils/astreamer_gzip.c:127 +#, c-format +msgid "could not duplicate stdout: %m" +msgstr "stdout-ის დუბლირების შეცდომა: %m" + +#: ../../fe_utils/astreamer_gzip.c:131 +#, c-format +msgid "could not open output file: %m" +msgstr "გამოტანის ფაილის გახსნის შეცდომა: %m" + +#: ../../fe_utils/astreamer_gzip.c:135 +#, c-format +msgid "could not set compression level %d: %s" +msgstr "შეკუმშვის დონის დაყენების შეცდომა %d: %s" + +#: ../../fe_utils/astreamer_gzip.c:140 ../../fe_utils/astreamer_gzip.c:273 +#: ../../fe_utils/astreamer_lz4.c:102 ../../fe_utils/astreamer_lz4.c:300 +#: ../../fe_utils/astreamer_zstd.c:133 ../../fe_utils/astreamer_zstd.c:288 +#, c-format +msgid "this build does not support compression with %s" +msgstr "ამ აგებაში %s-ით შეკუმშვის მხარდაჭრა არ არსებობს" + +#: ../../fe_utils/astreamer_gzip.c:167 +#, c-format +msgid "could not write to compressed file \"%s\": %s" +msgstr "შეკუმშული ფაილში (\"%s\") ჩაწერის შეცდომა: %s" + +#: ../../fe_utils/astreamer_gzip.c:191 +#, c-format +msgid "could not close compressed file \"%s\": %m" +msgstr "შეკუმშული ფაილის (\"%s\") დახურვის შეცდომა: %m" + +#: ../../fe_utils/astreamer_gzip.c:269 +#, c-format +msgid "could not initialize compression library" +msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზაციის შეცდომა" + +#: ../../fe_utils/astreamer_gzip.c:320 ../../fe_utils/astreamer_lz4.c:356 +#: ../../fe_utils/astreamer_zstd.c:333 +#, c-format +msgid "could not decompress data: %s" +msgstr "მონაცემების გაშლის შეცდომა: %s" + +#: ../../fe_utils/astreamer_lz4.c:97 +#, c-format +msgid "could not create lz4 compression context: %s" +msgstr "lz4 შეკუმშვის კონტექსტის შექმნის შეცდომა: %s" + +#: ../../fe_utils/astreamer_lz4.c:142 +#, c-format +msgid "could not write lz4 header: %s" +msgstr "lz4 თავსართის ჩაწერის შეცდოა: %s" + +#: ../../fe_utils/astreamer_lz4.c:191 ../../fe_utils/astreamer_zstd.c:185 +#: ../../fe_utils/astreamer_zstd.c:227 +#, c-format +msgid "could not compress data: %s" +msgstr "მონაცემების შეკუმშვა შეუძლებელია: %s" + +#: ../../fe_utils/astreamer_lz4.c:243 +#, c-format +msgid "could not end lz4 compression: %s" +msgstr "lz4 შეკუმშვის დასრულების შეცდომა: %s" + +#: ../../fe_utils/astreamer_lz4.c:295 +#, c-format +msgid "could not initialize compression library: %s" +msgstr "შეკუმშვის ბიბლიოთეკის ინიციალიზება ვერ მოხერხდა: %s" + +#: ../../fe_utils/astreamer_tar.c:244 +#, c-format +msgid "tar file trailer exceeds 2 blocks" +msgstr "tar ფაილის ბოლოსართი 2 ბლოკს სცდება" + +#: ../../fe_utils/astreamer_tar.c:249 astreamer_verify.c:130 +#, c-format +msgid "unexpected state while parsing tar archive" +msgstr "მოულოდნელი მდგომარეობა tar არქივის დამუშავებისას" + +#: ../../fe_utils/astreamer_tar.c:292 +#, c-format +msgid "tar member has empty name" +msgstr "tar-ის წევრს ცარიელი სახელი აქვს" + +#: ../../fe_utils/astreamer_tar.c:326 +#, c-format +msgid "COPY stream ended before last file was finished" +msgstr "COPY-ის ნაკადი ბოლო ფაილის დასრულებამდე დასრულდა" + +#: ../../fe_utils/astreamer_zstd.c:89 +#, c-format +msgid "could not create zstd compression context" +msgstr "zstd შეკუმშვის კონტექსტის შექმნის შეცდომა" + +#: ../../fe_utils/astreamer_zstd.c:95 +#, c-format +msgid "could not set zstd compression level to %d: %s" +msgstr "zstd შეკუმშვის დონის %d-ზე დაყენების შეცდომა: %s" + +#: ../../fe_utils/astreamer_zstd.c:109 +#, c-format +msgid "could not set compression worker count to %d: %s" +msgstr "შეკუმშვის დამხმარე პროცესების რიცხვის %d-ზე დაყენების შეცდომა: %s" + +#: ../../fe_utils/astreamer_zstd.c:120 +#, c-format +msgid "could not enable long-distance mode: %s" +msgstr "long-distance რეჟიმი ვერ ჩავრთე: %s" + +#: ../../fe_utils/astreamer_zstd.c:279 +#, c-format +msgid "could not create zstd decompression context" +msgstr "zstd გაშლის კონტექსტის შექმნის შეცდომა" + +#: astreamer_verify.c:198 +#, c-format +msgid "file \"%s\" is present in archive \"%s\" but not in the manifest" +msgstr "ფაილი \"%s\" არსებობს არქივში \"%s\", მაგრამ არა მანიფესტში" + +#: astreamer_verify.c:211 +#, c-format +msgid "file \"%s\" has size %llu in archive \"%s\" but size % in the manifest" +msgstr "ფაილის \"%s\" ზომაა %llu არქივში \"%s\", მაგრამ მანიფესტში მითითებული ზომაა %" + +#: astreamer_verify.c:236 +#, c-format +msgid "%s: could not initialize checksum of file \"%s\"" +msgstr "%s: ფაილის (\"%s\") საკონტროლო ჯამის ინიციალიზაციის შეცდომა" + +#: astreamer_verify.c:274 pg_verifybackup.c:1133 +#, c-format +msgid "could not update checksum of file \"%s\"" +msgstr "ფაილის (\"%s\") საკონტროლო ჯამის განახლების შეცდომა" + +#: astreamer_verify.c:300 +#, c-format +msgid "file \"%s\" in archive \"%s\" should contain % bytes, but % bytes were read" +msgstr "ფაილი \"%s\" არქივში \"%s\" უნდა შეიცავდეს % ბაიტს მაგრამ წაკითხულია % ბაიტი" + +#: astreamer_verify.c:312 pg_verifybackup.c:1179 +#, c-format +msgid "could not finalize checksum of file \"%s\"" +msgstr "ფაილის (\"%s\") საკონტროლო ჯამის დასრულების შეცდომა" + +#: astreamer_verify.c:320 +#, c-format +msgid "file \"%s\" in archive \"%s\" has checksum of length %d, but expected %d" +msgstr "ფაილის \"%s\" არქივში \"%s\" საკონტროლო ჯამის სიგრძეა %d, მოველოდით სიგრძეს %d" + +#: astreamer_verify.c:325 +#, c-format +msgid "checksum mismatch for file \"%s\" in archive \"%s\"" +msgstr "არასწორი საკონტროლო ჯამი ფაილისთვის \"%s\" არქივში \"%s\"" + +#: astreamer_verify.c:387 +#, c-format +msgid "unexpected control file size %d, expected %d" +msgstr "საკონტროლო ფაილის არასწორი სიგრძე: %d. უნდა იყოს: %d" + +#: astreamer_verify.c:399 +#, c-format +msgid "%s: %s: CRC is incorrect" +msgstr "%s: %s: CRC არასწორია" + +#: astreamer_verify.c:405 +#, c-format +msgid "%s: %s: unexpected control file version" +msgstr "%s: %s: მოულოდნელი საკონტროლო ფაილის ვერსია" + +#: astreamer_verify.c:412 +#, c-format +msgid "%s: %s: manifest system identifier is %, but control file has %" +msgstr "%s: %s: მანიფესტის სისტემური იდენტიფიკატორია %, მაგრამ კონტროლის ფაილი შეიცავს %-ს" + +#: pg_verifybackup.c:208 +#, c-format +msgid "invalid backup format \"%s\", must be \"plain\" or \"tar\"" +msgstr "მარქაფის არასწორი ფორმატი \"%s\". უნდა იყოს: \"plain\" ან \"tar\"" + +#: pg_verifybackup.c:229 pg_verifybackup.c:238 pg_verifybackup.c:249 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: pg_verifybackup.c:285 +#: pg_verifybackup.c:237 #, c-format msgid "no backup directory specified" msgstr "მარქაფის საქაღალდე მითითებული არაა" -#: pg_verifybackup.c:295 +#: pg_verifybackup.c:247 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_verifybackup.c:303 +#: pg_verifybackup.c:255 #, c-format msgid "cannot specify both %s and %s" msgstr "ორივე, %s და %s ერთად მითითება შეუძლებელია" -#: pg_verifybackup.c:323 +#: pg_verifybackup.c:275 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "პროგრამა \"%s\" სჭირდება \"%s\"-ს, მაგრამ იგივე საქაღალდეში, სადაც \"%s\", ნაპოვნი არაა" -#: pg_verifybackup.c:326 +#: pg_verifybackup.c:278 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "პროგრამა „%s“ ნაპოვნია „%s“-ის მიერ, მაგრამ ვერსია, იგივეა არაა, რაც %s" -#: pg_verifybackup.c:381 -#, c-format -msgid "backup successfully verified\n" -msgstr "მარქაფი წარმატებით შემოწმდა\n" - -#: pg_verifybackup.c:406 pg_verifybackup.c:865 +#: pg_verifybackup.c:304 pg_verifybackup.c:625 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: pg_verifybackup.c:410 +#: pg_verifybackup.c:323 pg_verifybackup.c:412 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: pg_verifybackup.c:438 pg_verifybackup.c:476 pg_verifybackup.c:896 +#: pg_verifybackup.c:340 #, c-format -msgid "could not read file \"%s\": %m" -msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" +msgid "pg_waldump cannot read tar files" +msgstr "pg_waldump-ს tar ფაილების წაკითხვა არ შეუძლია" + +#: pg_verifybackup.c:341 +#, c-format +msgid "You must use -n/--no-parse-wal when verifying a tar-format backup." +msgstr "Tar-ის ფორმატში არსებული მარქაფების გადამოწმებისას უნდა გამოიყენოთ პარამეტრი -n ან --no-parse-wal." -#: pg_verifybackup.c:440 +#: pg_verifybackup.c:383 +#, c-format +msgid "backup successfully verified\n" +msgstr "მარქაფი წარმატებით შემოწმდა\n" + +#: pg_verifybackup.c:442 #, c-format msgid "could not read file \"%s\": read %d of %lld" msgstr "ფაილის \"%s\" წაკითხვა შეუძლებელია: წაკითხულია %d %lld-დან" -#: pg_verifybackup.c:478 +#: pg_verifybackup.c:480 #, c-format msgid "could not read file \"%s\": read %lld of %lld" msgstr "ფაილის \"%s\" წაკითხვა შეუძლებელია: წაკითხულია %lld %lld-დან" -#: pg_verifybackup.c:561 +#: pg_verifybackup.c:563 #, c-format msgid "duplicate path name in backup manifest: \"%s\"" msgstr "მარქაფს მანიფესტში მითითებული ბილიკის სახელი დუბლირებულია: %s" -#: pg_verifybackup.c:624 pg_verifybackup.c:631 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" - -#: pg_verifybackup.c:663 +#: pg_verifybackup.c:657 pg_verifybackup.c:827 #, c-format msgid "could not close directory \"%s\": %m" msgstr "საქაღალდის %s-ზე დახურვის შეცდომა: %m" -#: pg_verifybackup.c:683 +#: pg_verifybackup.c:678 pg_verifybackup.c:897 #, c-format msgid "could not stat file or directory \"%s\": %m" msgstr "ფაილის ან საქაღალდის \"%s\" პოვნა შეუძლებელია: %m" -#: pg_verifybackup.c:706 +#: pg_verifybackup.c:701 #, c-format -msgid "\"%s\" is not a file or directory" -msgstr "\"%s\" არც ფაილია, არც საქაღალდე" +msgid "\"%s\" is not a regular file or directory" +msgstr "\"%s\" არც ჩვეულებრივი ფაილია, არც საქაღალდე" -#: pg_verifybackup.c:716 +#: pg_verifybackup.c:711 #, c-format msgid "\"%s\" is present on disk but not in the manifest" msgstr "\"%s\" დისკზე არსებობს, მაგრამ არა მანიფესტში" -#: pg_verifybackup.c:728 +#: pg_verifybackup.c:723 #, c-format -msgid "\"%s\" has size %lld on disk but size %zu in the manifest" -msgstr "დისკზე \"%s\"-ის ზომაა %lld, მაგრამ მანიფესტში მითითებული ზომაა %zu" +msgid "\"%s\" has size %llu on disk but size %llu in the manifest" +msgstr "დისკზე \"%s\"-ის ზომაა %llu, მაგრამ მანიფესტში მითითებული ზომაა %llu" -#: pg_verifybackup.c:768 +#: pg_verifybackup.c:765 #, c-format msgid "%s: CRC is incorrect" msgstr "%s: CRC არასწორია" -#: pg_verifybackup.c:772 +#: pg_verifybackup.c:769 #, c-format msgid "%s: unexpected control file version" msgstr "%s: მოულოდნელი საკონტროლო ფაილის ვერსია" -#: pg_verifybackup.c:777 -#, c-format -msgid "%s: manifest system identifier is %llu, but control file has %llu" -msgstr "%s: მანიფესტის სისტემის იდენტიფიკატორია %llu, მაგრამ კონტროლის ფაილი შეიცავს %llu" - -#: pg_verifybackup.c:801 +#: pg_verifybackup.c:774 #, c-format -msgid "\"%s\" is present in the manifest but not on disk" -msgstr "\"%s\" არსებობს მანიფესტში, მაგრამ არა დისკზე" +msgid "%s: manifest system identifier is %, but control file has %" +msgstr "%s: მანიფესტის სისტემის იდენტიფიკატორია %, მაგრამ კონტროლის ფაილი შეიცავს %-ს" -#: pg_verifybackup.c:873 +#: pg_verifybackup.c:906 #, c-format -msgid "could not initialize checksum of file \"%s\"" -msgstr "ფაილის (\"%s\") საკონტროლო ჯამის ინიციალიზაციის შეცდომა" +msgid "file \"%s\" is not a regular file" +msgstr "ფაილ \"%s\" ჩვეულებრივი ფაილი არაა" -#: pg_verifybackup.c:885 +#: pg_verifybackup.c:936 pg_verifybackup.c:957 #, c-format -msgid "could not update checksum of file \"%s\"" -msgstr "ფაილის (\"%s\") საკონტროლო ჯამის განახლების შეცდომა" +msgid "file \"%s\" is not expected in a tar format backup" +msgstr "ფაილი \"%s\" მოულოდნელია tar ფორმატის მარქაფში" -#: pg_verifybackup.c:902 +#: pg_verifybackup.c:1049 #, c-format -msgid "could not close file \"%s\": %m" -msgstr "ფაილის (%s) დახურვის შეცდომა: %m" +msgid "\"%s\" is present in the manifest but not on disk" +msgstr "\"%s\" არსებობს მანიფესტში, მაგრამ არა დისკზე" -#: pg_verifybackup.c:921 +#: pg_verifybackup.c:1121 #, c-format -msgid "file \"%s\" should contain %zu bytes, but read %zu bytes" -msgstr "ფაილი \"%s\" უნდა შეიცავდეს %zu ბაიტს მაგრამ წაკითხულია %zu ბაიტი" +msgid "could not initialize checksum of file \"%s\"" +msgstr "ფაილის (\"%s\") საკონტროლო ჯამის ინიციალიზაციის შეცდომა" -#: pg_verifybackup.c:931 +#: pg_verifybackup.c:1169 #, c-format -msgid "could not finalize checksum of file \"%s\"" -msgstr "ფაილის (\"%s\") საკონტროლო ჯამის დასრულების შეცდომა" +msgid "file \"%s\" should contain % bytes, but read %" +msgstr "ფაილი \"%s\" უნდა შეიცავდეს % ბაიტს მაგრამ წაკითხულია % ბაიტი" -#: pg_verifybackup.c:939 +#: pg_verifybackup.c:1187 #, c-format msgid "file \"%s\" has checksum of length %d, but expected %d" msgstr "ფაილის \"%s\" საკონტროლო ჯამის სიგრძეა %d, მოველოდით %d" -#: pg_verifybackup.c:943 +#: pg_verifybackup.c:1191 #, c-format msgid "checksum mismatch for file \"%s\"" msgstr "არასწორი საკონტროლო ჯამი ფაილისთვის \"%s\"" -#: pg_verifybackup.c:969 +#: pg_verifybackup.c:1217 #, c-format msgid "WAL parsing failed for timeline %u" msgstr "WAL-ის დამუშავების შეცდომა დროის ხაზისთვის %u" -#: pg_verifybackup.c:1072 +#: pg_verifybackup.c:1351 #, c-format msgid "%*s/%s kB (%d%%) verified" msgstr "%*s/%s კბ (%d%%) გადამოწმდა" -#: pg_verifybackup.c:1089 +#: pg_verifybackup.c:1368 #, c-format msgid "" "%s verifies a backup against the backup manifest.\n" "\n" msgstr "%s მარქაფს მის მანიფესტს შეადარებს\n" -#: pg_verifybackup.c:1090 +#: pg_verifybackup.c:1369 #, c-format msgid "" "Usage:\n" @@ -485,62 +737,67 @@ msgstr "" " %s [პარამეტრი]... მარქაფისსაქაღალდე\n" "\n" -#: pg_verifybackup.c:1091 +#: pg_verifybackup.c:1370 #, c-format msgid "Options:\n" msgstr "პარამეტრები:\n" -#: pg_verifybackup.c:1092 +#: pg_verifybackup.c:1371 #, c-format msgid " -e, --exit-on-error exit immediately on error\n" msgstr " -e, --exit-on-error დაუყოვნებლივი გამოსვლა შეცდომის შემთხვევაში\n" -#: pg_verifybackup.c:1093 +#: pg_verifybackup.c:1372 +#, c-format +msgid " -F, --format=p|t backup format (plain, tar)\n" +msgstr " -F, --format=p|t მარქაფის ფორმატი (plain, tar)\n" + +#: pg_verifybackup.c:1373 #, c-format msgid " -i, --ignore=RELATIVE_PATH ignore indicated path\n" msgstr " -i, --ignore=შედარებითი_ბილიკ ბითითებული ბილიკის იგნორი\n" -#: pg_verifybackup.c:1094 +#: pg_verifybackup.c:1374 #, c-format msgid " -m, --manifest-path=PATH use specified path for manifest\n" msgstr " -m, --manifest-path=ბილიკი მანიფესტისთვის მითითებული ბილიკის გამოყენება\n" -#: pg_verifybackup.c:1095 +#: pg_verifybackup.c:1375 #, 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:1096 +#: pg_verifybackup.c:1376 #, c-format msgid " -P, --progress show progress information\n" msgstr " -P, --progress მიმდინარეობის ინფორმაციის ჩვენება\n" -#: pg_verifybackup.c:1097 +#: pg_verifybackup.c:1377 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet შეცდომების გარდა ეკრანზე არაფერი გამოჩნდება\n" -#: pg_verifybackup.c:1098 +#: pg_verifybackup.c:1378 #, c-format msgid " -s, --skip-checksums skip checksum verification\n" msgstr " -s, --skip-checksums საკონტროლო ჯამების შემოწმების გამოტოვება\n" -#: pg_verifybackup.c:1099 +#: pg_verifybackup.c:1379 #, c-format msgid " -w, --wal-directory=PATH use specified path for WAL files\n" msgstr " -w, --wal-directory=ბილიკი WAL ფაილებისთვის მითითებული ბილიკის გამოყენება\n" -#: pg_verifybackup.c:1100 +#: pg_verifybackup.c:1380 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: pg_verifybackup.c:1101 +#: pg_verifybackup.c:1381 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_verifybackup.c:1102 +#: pg_verifybackup.c:1382 #, c-format msgid "" "\n" @@ -549,14 +806,22 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_verifybackup.c:1103 +#: pg_verifybackup.c:1383 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" +#, c-format +#~ msgid "\"%s\" is not a plain file" +#~ msgstr "\"%s\" უბრალო ფაილი არაა" + #~ msgid "parsing failed" #~ msgstr "დამუშავების შეცდომა" #, c-format #~ msgid "unexpected json parse error type: %d" #~ msgstr "მოულოდნელი json-ის დამუშავების შეცდომის ტიპი: %d" + +#, c-format +#~ msgid "unexpected state while parsing tar file" +#~ msgstr "მოულოდნელი მდგომარეობა tar არქივის დამუშავებისას" diff --git a/src/bin/pg_verifybackup/t/003_corruption.pl b/src/bin/pg_verifybackup/t/003_corruption.pl index 84f23b8bc3d1a..1dd60f709cf66 100644 --- a/src/bin/pg_verifybackup/t/003_corruption.pl +++ b/src/bin/pg_verifybackup/t/003_corruption.pl @@ -37,37 +37,37 @@ 'name' => 'extra_file', 'mutilate' => \&mutilate_extra_file, 'fails_like' => - qr/extra_file.*present (on disk|in "[^"]+") but not in the manifest/ + qr/extra_file.*present (on disk|in archive "[^"]+") but not in the manifest/ }, { 'name' => 'extra_tablespace_file', 'mutilate' => \&mutilate_extra_tablespace_file, 'fails_like' => - qr/extra_ts_file.*present (on disk|in "[^"]+") but not in the manifest/ + qr/extra_ts_file.*present (on disk|in archive "[^"]+") but not in the manifest/ }, { 'name' => 'missing_file', 'mutilate' => \&mutilate_missing_file, 'fails_like' => - qr/pg_xact\/0000.*present in the manifest but not (on disk|in "[^"]+")/ + qr/pg_xact\/0000.*present in the manifest but not (on disk|in archive "[^"]+")/ }, { 'name' => 'missing_tablespace', 'mutilate' => \&mutilate_missing_tablespace, 'fails_like' => - qr/pg_tblspc.*present in the manifest but not (on disk|in "[^"]+")/ + qr/pg_tblspc.*present in the manifest but not (on disk|in archive "[^"]+")/ }, { 'name' => 'append_to_file', 'mutilate' => \&mutilate_append_to_file, 'fails_like' => - qr/has size \d+ (on disk|in "[^"]+") but size \d+ in the manifest/ + qr/has size \d+ (on disk|in archive "[^"]+") but size \d+ in the manifest/ }, { 'name' => 'truncate_file', 'mutilate' => \&mutilate_truncate_file, 'fails_like' => - qr/has size 0 (on disk|in "[^"]+") but size \d+ in the manifest/ + qr/has size 0 (on disk|in archive "[^"]+") but size \d+ in the manifest/ }, { 'name' => 'replace_file', diff --git a/src/bin/pg_verifybackup/t/004_options.pl b/src/bin/pg_verifybackup/t/004_options.pl index 8c83dc7189ec3..3cdbe816862e1 100644 --- a/src/bin/pg_verifybackup/t/004_options.pl +++ b/src/bin/pg_verifybackup/t/004_options.pl @@ -53,7 +53,7 @@ '--no-parse-wal', $backup_path ], - qr("pg_multixact" is not a plain file), + qr("pg_multixact" is not a regular file), "does not verify with --format=tar --no-parse-wal"); # Test invalid options diff --git a/src/bin/pg_waldump/po/de.po b/src/bin/pg_waldump/po/de.po index 05af08b503ce6..8c5487e6487f4 100644 --- a/src/bin/pg_waldump/po/de.po +++ b/src/bin/pg_waldump/po/de.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 07:49+0000\n" -"PO-Revision-Date: 2024-03-26 11:07+0100\n" +"POT-Creation-Date: 2025-04-03 12:20+0000\n" +"PO-Revision-Date: 2025-04-03 16:18+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,22 +16,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -47,45 +47,45 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 pg_waldump.c:199 #: pg_waldump.c:532 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #: pg_waldump.c:1104 pg_waldump.c:1127 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -452,157 +452,157 @@ msgstr "Fehler in WAL-Eintrag bei %X/%X: %s" msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: xlogreader.c:619 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ungültiger Datensatz-Offset bei %X/%X: mindestens %u erwartet, %u erhalten" -#: xlogreader.c:628 +#: xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "Contrecord angefordert von %X/%X" -#: xlogreader.c:669 xlogreader.c:1134 +#: xlogreader.c:670 xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ungültige Datensatzlänge bei %X/%X: mindestens %u erwartet, %u erhalten" -#: xlogreader.c:758 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "keine Contrecord-Flag bei %X/%X" -#: xlogreader.c:771 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ungültige Contrecord-Länge %u (erwartet %lld) bei %X/%X" -#: xlogreader.c:1142 +#: xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ungültige Resource-Manager-ID %u bei %X/%X" -#: xlogreader.c:1155 xlogreader.c:1171 +#: xlogreader.c:1156 xlogreader.c:1172 #, 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:1209 +#: xlogreader.c:1210 #, 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:1243 +#: xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ungültige magische Zahl %04X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1258 xlogreader.c:1300 +#: xlogreader.c:1259 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ungültige Info-Bits %04X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1274 +#: xlogreader.c:1275 #, 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" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WAL-Datei ist von einem anderen Datenbanksystem: Datenbanksystemidentifikator in WAL-Datei ist %, Datenbanksystemidentifikator in pg_control ist %" -#: xlogreader.c:1282 +#: xlogreader.c:1283 #, 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:1288 +#: xlogreader.c:1289 #, 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:1320 +#: xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "unerwartete Pageaddr %X/%X in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1346 +#: xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "Zeitleisten-ID %u außer der Reihe (nach %u) in WAL-Segment %s, LSN %X/%X, Offset %u" -#: xlogreader.c:1749 +#: xlogreader.c:1759 #, 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:1773 +#: xlogreader.c:1783 #, 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:1780 +#: xlogreader.c:1790 #, 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:1816 +#: xlogreader.c:1826 #, 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:1832 +#: xlogreader.c:1842 #, 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:1846 +#: xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge %u bei %X/%X" -#: xlogreader.c:1861 +#: xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "weder BKPIMAGE_HAS_HOLE noch BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge ist %u bei %X/%X" -#: xlogreader.c:1877 +#: xlogreader.c:1887 #, 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:1889 +#: xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ungültige block_id %u bei %X/%X" -#: xlogreader.c:1956 +#: xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "Datensatz mit ungültiger Länge bei %X/%X" -#: xlogreader.c:1982 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "konnte Backup-Block mit ID %d nicht im WAL-Eintrag finden" -#: xlogreader.c:2066 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "konnte Abbild bei %X/%X mit ungültigem angegebenen Block %d nicht wiederherstellen" -#: xlogreader.c:2073 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "konnte Abbild mit ungültigem Zustand bei %X/%X nicht wiederherstellen, Block %d" -#: xlogreader.c:2100 xlogreader.c:2117 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit %s, nicht unterstützt von dieser Installation, Block %d" -#: xlogreader.c:2126 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit unbekannter Methode, Block %d" -#: xlogreader.c:2134 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "konnte Abbild bei %X/%X nicht dekomprimieren, Block %d" diff --git a/src/bin/pg_waldump/po/es.po b/src/bin/pg_waldump/po/es.po index 67a0cf3e2b0f5..18864a7bcd4a6 100644 --- a/src/bin/pg_waldump/po/es.po +++ b/src/bin/pg_waldump/po/es.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_waldump (PostgreSQL) 16\n" +"Project-Id-Version: pg_waldump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:18+0000\n" -"PO-Revision-Date: 2023-09-05 07:35+0200\n" +"POT-Creation-Date: 2025-02-16 19:48+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -40,6 +40,60 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -55,74 +109,74 @@ msgstr "el directorio «%s» existe pero no está vacío" msgid "could not access directory \"%s\": %m" msgstr "no se pudo acceder al directorio «%s»: %m" -#: pg_waldump.c:199 pg_waldump.c:527 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "no se pudo abrir el archivo «%s»: %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "el archivo WAL «%s» especifica un tamaño de segmento de WAL no válido (%d byte)" +msgstr[1] "el archivo WAL «%s» especifica un tamaño de segmento de WAL no válido (%d bytes)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d byte" -msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d bytes" -msgstr[0] "el tamaño de segmento WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero la cabecera del archivo WAL «%s» especifica %d byte" -msgstr[1] "el tamaño de segmento WAL debe ser una potencia de dos entre 1 MB y 1 GB, pero la cabecera del archivo WAL «%s» especifica %d bytes" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "El tamaño de segmento de WAL debe ser una potencia de dos entre 1 MB y 1 GB." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "no se pudo leer el archivo «%s»: %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "no se pudo leer el archivo «%s»: leídos %d de %d" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "no se pudo ubicar el archivo WAL «%s»" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "no se pudo encontrar ningún archivo WAL" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "no se pudo encontrar el archivo «%s»: %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" +msgid "could not read from file \"%s\", offset %d: %m" msgstr "no se pudo leer desde el archivo «%s» en la posición %d: %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" -msgstr "no se pudo leer del archivo %s, posición %d: leídos %d de %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" +msgstr "no se pudo leer del archivo «%s», posición %d: leídos %d de %d" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "número de “fork” no válido: %u" -#: pg_waldump.c:530 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "no se pudo escribir el archivo «%s»: %m" -#: pg_waldump.c:533 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "no se pudo cerrar el archivo «%s»: %m" -#: pg_waldump.c:753 +#: pg_waldump.c:758 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" @@ -131,17 +185,17 @@ msgstr "" "%s decodifica y muestra segmentos de WAL de PostgreSQL para depuración.\n" "\n" -#: pg_waldump.c:755 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: pg_waldump.c:756 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [OPCIÓN]... [SEGINICIAL [SEGFINAL]]\n" -#: pg_waldump.c:757 +#: pg_waldump.c:762 #, c-format msgid "" "\n" @@ -150,29 +204,29 @@ msgstr "" "\n" "Opciones:\n" -#: pg_waldump.c:758 +#: pg_waldump.c:763 #, c-format msgid " -b, --bkp-details output detailed information about backup blocks\n" msgstr " -b, --bkp-details mostrar información detallada sobre bloques de respaldo\n" -#: pg_waldump.c:759 +#: pg_waldump.c:764 #, c-format msgid " -B, --block=N with --relation, only show records that modify block N\n" msgstr "" " -B, --block=N con --relation, sólo mostrar registros que modifican\n" " el bloque N\n" -#: pg_waldump.c:760 +#: pg_waldump.c:765 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr " -e, --end=RECPTR detener la lectura del WAL en la posición RECPTR\n" -#: pg_waldump.c:761 +#: pg_waldump.c:766 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr " -f, --follow seguir reintentando después de alcanzar el final del WAL\n" -#: pg_waldump.c:762 +#: pg_waldump.c:767 #, c-format msgid "" " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" @@ -181,12 +235,12 @@ msgstr "" " -F, --form=FORK sólo mostrar registros que modifican bloques en el\n" " «fork» FORK; nombres válidos son main, fsm, vm, init\n" -#: pg_waldump.c:764 +#: pg_waldump.c:769 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N número de registros a mostrar\n" -#: pg_waldump.c:765 +#: pg_waldump.c:770 #, c-format msgid "" " -p, --path=PATH directory in which to find WAL segment files or a\n" @@ -197,12 +251,12 @@ msgstr "" " contenga un directorio ./pg_wal con dichos archivos\n" " (por omisión: directorio actual, ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:768 +#: pg_waldump.c:773 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet no escribir ningún mensaje, excepto errores\n" -#: pg_waldump.c:769 +#: pg_waldump.c:774 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager RMGR;\n" @@ -211,17 +265,17 @@ msgstr "" " -r, --rmgr=GREC sólo mostrar registros generados por el gestor de\n" " recursos GREC; use --rmgr=list para listar nombres válidos\n" -#: pg_waldump.c:771 +#: pg_waldump.c:776 #, c-format msgid " -R, --relation=T/D/R only show records that modify blocks in relation T/D/R\n" msgstr " -R, --relation=T/D/R sólo mostrar registros que modifican bloques en relación T/D/R\n" -#: pg_waldump.c:772 +#: pg_waldump.c:777 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr " -s, --start=RECPTR empezar a leer el WAL en la posición RECPTR\n" -#: pg_waldump.c:773 +#: pg_waldump.c:778 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read WAL records\n" @@ -230,22 +284,22 @@ msgstr "" " -t, --timeline=TLI “timeline” del cual leer registros WAL\n" " (por omisión: 1 o el valor usado en SEGINICIAL)\n" -#: pg_waldump.c:775 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión, luego salir\n" -#: pg_waldump.c:776 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr " -w, --fullpage sólo mostrar registros con escrituras de página completa\n" -#: pg_waldump.c:777 +#: pg_waldump.c:782 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr " -x, --xid=XID sólo mostrar registros con el id de transacción XID\n" -#: pg_waldump.c:778 +#: pg_waldump.c:783 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -254,17 +308,17 @@ msgstr "" " -z, --stats[=registro] mostrar estadísticas en lugar de registros\n" " (opcionalmente, mostrar estadísticas por registro)\n" -#: pg_waldump.c:780 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr " --save-fullpage=DIR guardar imágenes de página completa en DIR\n" -#: pg_waldump.c:781 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda, luego salir\n" -#: pg_waldump.c:782 +#: pg_waldump.c:787 #, c-format msgid "" "\n" @@ -273,304 +327,284 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_waldump.c:783 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: pg_waldump.c:879 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "no se especificó ningún argumento" -#: pg_waldump.c:895 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "número de bloque no válido: «%s»" -#: pg_waldump.c:904 pg_waldump.c:1002 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "ubicación de WAL no válida: «%s»" -#: pg_waldump.c:917 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "nombre de «fork» no válido: «%s»" -#: pg_waldump.c:925 pg_waldump.c:1028 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "el valor «%s» no es válido para la opción «%s»" -#: pg_waldump.c:956 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "el gestor de recursos personalizado «%s» no existe" -#: pg_waldump.c:977 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "el gestor de recursos «%s» no existe" -#: pg_waldump.c:992 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "especificación de relación no válida: «%s»" -#: pg_waldump.c:993 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "Se esperaba «OID de tablespace/OID de base de datos/filenode de relación»." -#: pg_waldump.c:1035 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "%s debe estar en el rango %u..%u" -#: pg_waldump.c:1050 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "especificación de ID de transacción no válida: «%s»" -#: pg_waldump.c:1065 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "valor no reconocido para la opción %s: %s" -#: pg_waldump.c:1082 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "la opción %s requiere que se especifique la opción %s" -#: pg_waldump.c:1089 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_waldump.c:1099 pg_waldump.c:1122 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "no se pudo abrir el directorio «%s»: %m" - -#: pg_waldump.c:1128 pg_waldump.c:1158 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "no se pudo abrir el archivo «%s»" -#: pg_waldump.c:1138 +#: pg_waldump.c:1143 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "la posición inicial de WAL %X/%X no está en el archivo «%s»" -#: pg_waldump.c:1165 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "SEGFINAL %s está antes del SEGINICIAL %s" -#: pg_waldump.c:1180 +#: pg_waldump.c:1185 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "la posición final de WAL %X/%X no está en el archivo «%s»" -#: pg_waldump.c:1192 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "no se especificó posición inicial de WAL" -#: pg_waldump.c:1206 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "se agotó la memoria mientras se emplazaba un procesador de lectura de WAL" -#: pg_waldump.c:1212 +#: pg_waldump.c:1217 #, c-format msgid "could not find a valid record after %X/%X" msgstr "no se pudo encontrar un registro válido después de %X/%X" -#: pg_waldump.c:1222 +#: pg_waldump.c:1227 #, 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] "el primer registro está ubicado después de %X/%X, en %X/%X, saltándose %u byte\n" -msgstr[1] "el primer registro está ubicado después de %X/%X, en %X/%X, saltándose %u bytes\n" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" +msgstr[0] "el primer registro está ubicado después de %X/%X, en %X/%X, saltándose %u byte" +msgstr[1] "el primer registro está ubicado después de %X/%X, en %X/%X, saltándose %u bytes" -#: pg_waldump.c:1307 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "error en registro de WAL en %X/%X: %s" -#: pg_waldump.c:1316 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "desplazamiento de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord solicitado por %X/%X" -#: xlogreader.c:676 xlogreader.c:1123 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "largo de registro no válido en %X/%X: se esperaba al menos %u, se obtuvo %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "memoria agotada mientras se intentaba decodificar un registro de largo %u" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "largo de registro %u en %X/%X demasiado largo" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "no hay bandera de contrecord en %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "largo de contrecord %u no válido (se esperaba %lld) en %X/%X" -#: xlogreader.c:924 -#, c-format -msgid "missing contrecord at %X/%X" -msgstr "falta contrecord en %X/%X" - -#: xlogreader.c:1131 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ID de gestor de recursos %u no válido en %X/%X" -#: xlogreader.c:1144 xlogreader.c:1160 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "registro con prev-link %X/%X incorrecto en %X/%X" -#: xlogreader.c:1196 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "suma de verificación de los datos del gestor de recursos incorrecta en el registro en %X/%X" -#: xlogreader.c:1230 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "número mágico %04X no válido en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1245 xlogreader.c:1287 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "info bits %04X no válidos en segment WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1261 +#: xlogreader.c:1274 #, 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 "archivo WAL es de un sistema de bases de datos distinto: identificador de sistema en archivo WAL es %llu, identificador en pg_control es %llu" -#: xlogreader.c:1269 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: tamaño de segmento incorrecto en cabecera de paǵina" -#: xlogreader.c:1275 +#: xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "archivo WAL es de un sistema de bases de datos distinto: XLOG_BLCKSZ incorrecto en cabecera de paǵina" -#: xlogreader.c:1307 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inesperado en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1333 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "ID de timeline %u fuera de secuencia (después de %u) en segmento WAL %s, LSN %X/%X, posición %u" -#: xlogreader.c:1739 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u fuera de orden en %X/%X" -#: xlogreader.c:1763 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA está definido, pero no hay datos en %X/%X" -#: xlogreader.c:1770 +#: xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA no está definido, pero el largo de los datos es %u en %X/%X" -#: xlogreader.c:1806 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE está definido, pero posición del agujero es %u largo %u largo de imagen %u en %X/%X" -#: xlogreader.c:1822 +#: xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE no está definido, pero posición del agujero es %u largo %u en %X/%X" -#: xlogreader.c:1836 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED definido, pero largo de imagen de bloque es %u en %X/%X" -#: xlogreader.c:1851 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED están definidos, pero el largo de imagen de bloque es %u en %X/%X" -#: xlogreader.c:1867 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL está definido, pero no hay «rel» anterior en %X/%X " -#: xlogreader.c:1879 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u no válido en %X/%X" -#: xlogreader.c:1946 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "registro con largo no válido en %X/%X" -#: xlogreader.c:1972 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "no se pudo localizar un bloque de respaldo con ID %d en el registro WAL" -#: xlogreader.c:2056 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" -msgstr "no se pudo restaurar imagen en %X/%X con bloque especificado %d no válido" +msgstr "no se pudo restaurar la imagen en %X/%X con bloque especificado %d no válido" -#: xlogreader.c:2063 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" -msgstr "no se pudo restaurar imagen en %X/%X con estado no válido, bloque %d" +msgstr "no se pudo restaurar la imagen en %X/%X con estado no válido, bloque %d" -#: xlogreader.c:2090 xlogreader.c:2107 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" -msgstr "no se pudo restaurar imagen en %X/%X comprimida con %s no soportado por esta instalación, bloque %d" +msgstr "no se pudo restaurar la imagen en %X/%X comprimida con %s que no está soportado por esta instalación, bloque %d" -#: xlogreader.c:2116 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" -msgstr "no se pudo restaurar imagen en %X/%X comprimida método desconocido, bloque %d" +msgstr "no se pudo restaurar la imagen en %X/%X comprimida con un método desconocido, bloque %d" -#: xlogreader.c:2124 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" -msgstr "no se pudo descomprimir imagen en %X/%X, bloque %d" +msgstr "no se pudo descomprimir la imagen en %X/%X, bloque %d" diff --git a/src/bin/pg_waldump/po/fr.po b/src/bin/pg_waldump/po/fr.po index b5cb1c6a017c0..f127e5e7aabe5 100644 --- a/src/bin/pg_waldump/po/fr.po +++ b/src/bin/pg_waldump/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:18+0000\n" -"PO-Revision-Date: 2023-09-05 07:50+0200\n" +"POT-Creation-Date: 2024-08-22 10:19+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -41,6 +41,60 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -56,74 +110,74 @@ msgstr "le répertoire « %s » existe mais n'est pas vide" msgid "could not access directory \"%s\": %m" msgstr "n'a pas pu accéder au répertoire « %s » : %m" -#: pg_waldump.c:199 pg_waldump.c:528 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "n'a pas pu ouvrir le fichier « %s » : %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "taille invalide du segment WAL dans le fichier WAL « %s » (%d octet)" +msgstr[1] "taille invalide du segment WAL dans le fichier WAL « %s » (%d octets)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d byte" -msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d bytes" -msgstr[0] "La taille du segment WAL doit être une puissance de deux entre 1 Mo et 1 Go, mais l'en-tête du fichier WAL « %s » indique %d octet" -msgstr[1] "La taille du segment WAL doit être une puissance de deux entre 1 Mo et 1 Go, mais l'en-tête du fichier WAL « %s » indique %d octets" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "La taille du segment WAL doit être une puissance de deux comprise entre 1 Mo et 1 Go." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "n'a pas pu lire le fichier « %s » : %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "n'a pas pu lire le fichier « %s » : a lu %d sur %d" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "n'a pas pu trouver le fichier WAL « %s »" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "n'a pas pu trouver un seul fichier WAL" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "n'a pas pu trouver le fichier « %s » : %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" -msgstr "n'a pas pu lire à partir du fichier %s, décalage %d : %m" +msgid "could not read from file \"%s\", offset %d: %m" +msgstr "n'a pas pu lire à partir du fichier « %s », décalage %d : %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" -msgstr "n'a pas pu lire à partir du fichier %s, décalage %d : %d lu sur %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" +msgstr "n'a pas pu lire à partir du fichier « %s », décalage %d : %d lu sur %d" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "numéro du fork invalide : %u" -#: pg_waldump.c:531 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "impossible d'écrire le fichier « %s » : %m" -#: pg_waldump.c:534 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "n'a pas pu fermer le fichier « %s » : %m" -#: pg_waldump.c:754 +#: pg_waldump.c:758 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" @@ -133,17 +187,17 @@ msgstr "" "débogage.\n" "\n" -#: pg_waldump.c:756 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: pg_waldump.c:757 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [OPTION]... [SEG_DEBUT [SEG_FIN]]\n" -#: pg_waldump.c:758 +#: pg_waldump.c:762 #, c-format msgid "" "\n" @@ -152,35 +206,35 @@ msgstr "" "\n" "Options :\n" -#: pg_waldump.c:759 +#: pg_waldump.c:763 #, 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\n" " blocs de sauvegarde\n" -#: pg_waldump.c:760 +#: pg_waldump.c:764 #, c-format msgid " -B, --block=N with --relation, only show records that modify block N\n" msgstr "" " -B, --block=N avec --relation, affiche seulement les enregistrements\n" " qui modifient le bloc N\n" -#: pg_waldump.c:761 +#: pg_waldump.c:765 #, 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 à\n" " l'emplacement RECPTR\n" -#: pg_waldump.c:762 +#: pg_waldump.c:766 #, 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\n" " de transactions\n" -#: pg_waldump.c:763 +#: pg_waldump.c:767 #, c-format msgid "" " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" @@ -190,12 +244,12 @@ msgstr "" " des blocs dans le fork FORK ;\n" " les noms valides sont main, fsm, vm, init\n" -#: pg_waldump.c:765 +#: pg_waldump.c:769 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N nombre d'enregistrements à afficher\n" -#: pg_waldump.c:766 +#: pg_waldump.c:770 #, c-format msgid "" " -p, --path=PATH directory in which to find WAL segment files or a\n" @@ -208,12 +262,12 @@ msgstr "" " défaut : répertoire courant, ./pg_wal,\n" " $PGDATA/pg_wal)\n" -#: pg_waldump.c:769 +#: pg_waldump.c:773 #, 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" -#: pg_waldump.c:770 +#: pg_waldump.c:774 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager RMGR;\n" @@ -224,21 +278,21 @@ msgstr "" " --rmgr=list pour avoir une liste des noms valides\n" " de gestionnaires de ressources\n" -#: pg_waldump.c:772 +#: pg_waldump.c:776 #, c-format msgid " -R, --relation=T/D/R only show records that modify blocks in relation T/D/R\n" msgstr "" " -R, --relation=T/D/R affiche seulement les enregistrements qui modifient\n" " les blocs de la relation T/D/R\n" -#: pg_waldump.c:773 +#: pg_waldump.c:777 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr "" " -s, --start=RECPTR commence à lire à l'emplacement RECPTR des\n" " journaux de transactions\n" -#: pg_waldump.c:774 +#: pg_waldump.c:778 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read WAL records\n" @@ -248,26 +302,26 @@ msgstr "" " enregistrements des journaux (par défaut : 1 ou\n" " la valeur utilisée dans SEG_DÉBUT)\n" -#: pg_waldump.c:776 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: pg_waldump.c:777 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr "" " -w, --fullpage affiche seulement les enregistrements avec\n" " un bloc complet (FPW)\n" -#: pg_waldump.c:778 +#: pg_waldump.c:782 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr "" " -x, --xid=XID affiche seulement des enregistrements avec\n" " l'identifiant de transaction XID\n" -#: pg_waldump.c:779 +#: pg_waldump.c:783 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -277,17 +331,17 @@ msgstr "" " d'enregistrements (en option, affiche des\n" " statistiques par enregistrement)\n" -#: pg_waldump.c:781 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr " --save-fullpage=RÉP sauvegarde les images complètes dans RÉP\n" -#: pg_waldump.c:782 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: pg_waldump.c:783 +#: pg_waldump.c:787 #, c-format msgid "" "\n" @@ -296,398 +350,286 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: pg_waldump.c:784 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: pg_waldump.c:880 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "aucun argument spécifié" -#: pg_waldump.c:896 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "numéro de bloc invalide : « %s »" -#: pg_waldump.c:905 pg_waldump.c:1003 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "emplacement WAL invalide : « %s »" -#: pg_waldump.c:918 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "nom du fork invalide : « %s »" -#: pg_waldump.c:926 pg_waldump.c:1029 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "valeur « %s » invalide pour l'option %s" -#: pg_waldump.c:957 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "le gestionnaire de ressources personnalisé « %s » n'existe pas" -#: pg_waldump.c:978 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "le gestionnaire de ressources « %s » n'existe pas" -#: pg_waldump.c:993 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "spécification de relation invalide : « %s »" -#: pg_waldump.c:994 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "Attendait « OID tablespace/OID base/filenode relation »." -#: pg_waldump.c:1036 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "%s doit être compris entre %u et %u" -#: pg_waldump.c:1051 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "spécification d'identifiant de transaction invalide : « %s »" -#: pg_waldump.c:1066 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "valeur non reconnue pour l'option %s : %s" -#: pg_waldump.c:1083 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "l'option %s requiert la spécification de l'option %s" -#: pg_waldump.c:1090 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: pg_waldump.c:1100 pg_waldump.c:1123 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" - -#: pg_waldump.c:1129 pg_waldump.c:1159 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "n'a pas pu ouvrir le fichier « %s »" -#: pg_waldump.c:1139 +#: pg_waldump.c:1143 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "l'emplacement de début des journaux de transactions %X/%X n'est pas à l'intérieur du fichier « %s »" -#: pg_waldump.c:1166 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "SEG_FIN %s est avant SEG_DÉBUT %s" -#: pg_waldump.c:1181 +#: pg_waldump.c:1185 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "l'emplacement de fin des journaux de transactions %X/%X n'est pas à l'intérieur du fichier « %s »" -#: pg_waldump.c:1193 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "pas d'emplacement donné de début du journal de transactions" -#: pg_waldump.c:1207 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "plus de mémoire lors de l'allocation d'un processeur de lecture de journaux de transactions" -#: pg_waldump.c:1213 +#: pg_waldump.c:1217 #, c-format msgid "could not find a valid record after %X/%X" msgstr "n'a pas pu trouver un enregistrement valide après %X/%X" -#: pg_waldump.c:1223 +#: pg_waldump.c:1227 #, 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] "le premier enregistrement se trouve après %X/%X, à %X/%X, ignore %u octet\n" -msgstr[1] "le premier enregistrement se trouve après %X/%X, à %X/%X, ignore %u octets\n" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" +msgstr[0] "le premier enregistrement se trouve après %X/%X, à %X/%X, ignore %u octet" +msgstr[1] "le premier enregistrement se trouve après %X/%X, à %X/%X, ignore %u octets" -#: pg_waldump.c:1308 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "erreur dans l'enregistrement des journaux de transactions à %X/%X : %s" -#: pg_waldump.c:1317 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "décalage invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "« contrecord » est requis par %X/%X" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "longueur invalide de l'enregistrement à %X/%X : attendait au moins %u, a eu %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "manque mémoire lors de la tentative de décodage d'un enregistrement de longueur %u" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "longueur trop importante de l'enregistrement %u à %X/%X" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "il n'existe pas de drapeau contrecord à %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "longueur %u invalide du contrecord (%lld attendu) à %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "identifiant du gestionnaire de ressources invalide %u à %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, 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:1192 +#: xlogreader.c:1209 #, 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:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "numéro magique invalide %04X dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "bits d'information %04X invalides dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, 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'une instance différente : 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:1265 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Le fichier WAL provient d'une instance différente : taille invalide du segment dans l'en-tête de page" -#: xlogreader.c:1271 +#: xlogreader.c:1288 #, 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" -#: xlogreader.c:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "pageaddr %X/%X inattendue dans le journal de transactions %s, LSN %X/%X, segment %u" -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "identifiant timeline %u hors de la séquence (après %u) dans le segment WAL %s, LSN %X/%X, décalage %u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u désordonné à %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, 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:1766 +#: xlogreader.c:1780 #, 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:1802 +#: xlogreader.c:1816 #, 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:1818 +#: xlogreader.c:1832 #, 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:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ni BKPIMAGE_HAS_HOLE ni BKPIMAGE_COMPRESSED configuré, mais la longueur de l'image du bloc est %u à %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, 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:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "block_id %u invalide à %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "enregistrement de longueur invalide à %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "n'a pas pu localiser le bloc de sauvegarde d'ID %d dans l'enregistrement WAL" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "n'a pas pu restaurer l'image à %X/%X avec le bloc invalide %d indiqué" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X avec un état invalide, bloc %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec %s, qui est non supporté par le serveur, bloc %d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "n'a pas pu restaurer l'image à %X/%X compressé avec une méthode inconnue, bloc %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "n'a pas pu décompresser l'image à %X/%X, bloc %d" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid "%s: FATAL: " -#~ msgstr "%s : FATAL : " - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\n" - -#~ msgid "cannot open directory \"%s\": %s" -#~ msgstr "ne peut pas ouvrir le répertoire « %s » : %s" - -#~ msgid "could not open directory \"%s\": %s" -#~ msgstr "n'a pas pu ouvrir le répertoire « %s » : %s" - -#~ msgid "could not open file \"%s\": %s" -#~ msgstr "n'a pas pu ouvrir le fichier « %s » : %s" - -#, c-format -#~ msgid "could not parse \"%s\" as a transaction ID" -#~ msgstr "n'a pas pu analyser « %s » comme un identifiant de transaction" - -#, c-format -#~ msgid "could not parse end WAL location \"%s\"" -#~ msgstr "n'a pas pu analyser l'emplacement de fin du journal de transactions « %s »" - -#, c-format -#~ msgid "could not parse fork \"%s\"" -#~ msgstr "n'a pas pu analyser le fork « %s »" - -#, c-format -#~ msgid "could not parse limit \"%s\"" -#~ msgstr "n'a pas pu analyser la limite « %s »" - -#, c-format -#~ msgid "could not parse start WAL location \"%s\"" -#~ msgstr "n'a pas pu analyser l'emplacement de début du journal de transactions « %s »" - -#, c-format -#~ msgid "could not parse timeline \"%s\"" -#~ msgstr "n'a pas pu analyser la timeline « %s »" - -#, c-format -#~ msgid "could not parse valid block number \"%s\"" -#~ msgstr "n'a pas pu analyser le numéro de bloc valide « %s »" - -#~ msgid "could not read file \"%s\": %s" -#~ msgstr "n'a pas pu lire le fichier « %s » : %s" - -#, 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" - -#~ msgid "could not read from log file %s, offset %u, length %d: %s" -#~ msgstr "n'a pas pu lire à partir du segment %s du journal de transactions, décalage %u, longueur %d : %s" - -#~ msgid "could not seek in log file %s to offset %u: %s" -#~ msgstr "n'a pas pu se déplacer dans le fichier de transactions %s au décalage %u : %s" - -#~ msgid "could not seek in log segment %s to offset %u: %s" -#~ msgstr "n'a pas pu rechercher dans le segment %s du journal de transactions au décalage %u : %s" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#, c-format -#~ msgid "invalid record offset at %X/%X" -#~ msgstr "décalage invalide de l'enregistrement %X/%X" - -#, c-format -#~ msgid "invalid timeline specification: \"%s\"" -#~ msgstr "spécification de timeline invalide : « %s »" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "contrecord manquant à %X/%X" - -#~ msgid "not enough data in file \"%s\"" -#~ msgstr "données insuffisantes dans le fichier « %s »" - -#, c-format -#~ msgid "out of memory" -#~ msgstr "mémoire épuisée" - -#~ msgid "path \"%s\" could not be opened: %s" -#~ msgstr "le chemin « %s » n'a pas pu être ouvert : %s" - -#, c-format -#~ msgid "unrecognized argument to --stats: %s" -#~ msgstr "argument non reconnu pour --stats : %s" diff --git a/src/bin/pg_waldump/po/ka.po b/src/bin/pg_waldump/po/ka.po index 7b605d657b894..5a73cda44f76c 100644 --- a/src/bin/pg_waldump/po/ka.po +++ b/src/bin/pg_waldump/po/ka.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-11 09:48+0000\n" -"PO-Revision-Date: 2024-02-11 16:23+0100\n" +"POT-Creation-Date: 2025-03-29 21:20+0000\n" +"PO-Revision-Date: 2025-03-30 01:31+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,28 +16,82 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "გაფრთხილება: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" + +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "ფაილის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:75 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" + +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" + +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/file_utils.c:520 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "გადარქმევის შეცდომა %s - %s: %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -53,11 +107,6 @@ msgstr "საქაღალდე \"%s\" არსებობს, მაგ msgid "could not access directory \"%s\": %m" msgstr "საქაღალდის (%s) წვდომის შეცდომა: %m" -#: pg_waldump.c:199 pg_waldump.c:532 -#, c-format -msgid "could not open file \"%s\": %m" -msgstr "ფაილის (%s) გახსნის შეცდომა: %m" - #: pg_waldump.c:256 #, c-format msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" @@ -349,11 +398,6 @@ msgstr "პარამეტრს %s თავის მხრივ სჭი msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: pg_waldump.c:1104 pg_waldump.c:1127 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" - #: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" @@ -406,157 +450,157 @@ msgstr "შეცდომა WAL ჩანაწერში %X/%X: %s" msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: xlogreader.c:621 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი წანაცვლება მისამართზე %X/%X: მოველოდი მინიმუმ %u, მივიღე %u" -#: xlogreader.c:630 +#: xlogreader.c:629 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord მოთხოვნილია %X/%X-ის მიერ" -#: xlogreader.c:671 xlogreader.c:1136 +#: xlogreader.c:670 xlogreader.c:1135 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ჩანაწერის არასწორი სიგრძე მისამართზე %X/%X: მოველოდი მინიმუმ %u, მივიღე %u" -#: xlogreader.c:760 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "contrecord ალამი მისამართზე %X/%X არ არსებობს" -#: xlogreader.c:773 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "contrecord -ის არასწორი სიგრძე %u (მოველოდი %lld) მისამართზე %X/%X" -#: xlogreader.c:1144 +#: xlogreader.c:1143 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "რესურსის მმართველის არასწორი ID %u მისამართზე %X/%X" -#: xlogreader.c:1157 xlogreader.c:1173 +#: xlogreader.c:1156 xlogreader.c:1172 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "ჩანაწერი არასწორი წინა ბმულით %X/%X მისამართზე %X/%X" -#: xlogreader.c:1211 +#: xlogreader.c:1210 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "რესურსის მმართველის მონაცემების არასწორი საკონტროლო რიცხვი ჩანაწერში მისამართზე %X/%X" -#: xlogreader.c:1245 +#: xlogreader.c:1244 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი მაგიური რიცხვი %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1260 xlogreader.c:1302 +#: xlogreader.c:1259 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "არასწორი საინფორმაციო ბიტები %04X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1276 +#: xlogreader.c:1275 #, 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 ფაილი სხვა ბაზიდანაა: WAL ფაილის ბაზის იდენტიფიკატორია %llu, pg_control-ის ბაზის სისტემის იდენტიფიკატორი კი %llu" +msgid "WAL file is from different database system: WAL file database system identifier is %, pg_control database system identifier is %" +msgstr "WAL ფაილი სხვა ბაზიდანაა: WAL ფაილის ბაზის იდენტიფიკატორია %, pg_control-ის ბაზის სისტემის იდენტიფიკატორი კი %" -#: xlogreader.c:1284 +#: xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ფაილი სხვა ბაზის სიტემიდანაა: სეგმანტის არასწორი ზომა გვერდის თავსართში" -#: xlogreader.c:1290 +#: xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ფაილი სხვა მონაცემთა ბაზის სისტემიდანაა: გვერდის თავსართში მითითებული XLOG_BLKSZ არასწორია" -#: xlogreader.c:1322 +#: xlogreader.c:1321 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "მოულოდნელი pageaddr %X/%X ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1348 +#: xlogreader.c:1347 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "მიმდევრობის-გარე დროის ხაზის ID %u (%u-ის შემდეგ) ჟურნალის სეგმენტში %s, LSN %X/%X, წანაცვლება %u" -#: xlogreader.c:1754 +#: xlogreader.c:1759 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ურიგო block_id %u მისამართზე %X/%X" -#: xlogreader.c:1778 +#: xlogreader.c:1783 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA დაყენებულია, მაგრამ მონაცემები მისამართზე %X/%X არ არსებობს" -#: xlogreader.c:1785 +#: xlogreader.c:1790 #, 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:1821 +#: xlogreader.c:1826 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE დაყენებულია, მაგრამ ნახვრეტის წანაცვლება %u სიგრძე %u ბლოკის ასლის სიგრძე %u მისამართზე %X/%X" -#: xlogreader.c:1837 +#: xlogreader.c:1842 #, 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:1851 +#: xlogreader.c:1856 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED დაყენებულია, მაგრამ ბლოკის ასლის სიგრძეა %u მისამართზე %X/%X" -#: xlogreader.c:1866 +#: xlogreader.c:1871 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "არც BKPIMAGE_HAS_HOLE და არც BKPIMAGE_COMPRESSED დაყენებული არაა, მაგრამ ბლოკის ასლის სიგრძე %u-ა, მისამართზე %X/%X" -#: xlogreader.c:1882 +#: xlogreader.c:1887 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL დაყენებულია, მაგრამ წინა მნიშვნელობა მითითებული არაა მისამართზე %X/%X" -#: xlogreader.c:1894 +#: xlogreader.c:1899 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "არასწორი block_id %u %X/%X" -#: xlogreader.c:1961 +#: xlogreader.c:1966 #, c-format msgid "record with invalid length at %X/%X" msgstr "ჩანაწერი არასწორი სიგრძით მისამართზე %X/%X" -#: xlogreader.c:1987 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "შეცდომა WAL ჩანაწერში მარქაფი ბლოკის, ID-ით %d, მოძებნისას" -#: xlogreader.c:2071 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X, როცა მითითებულია არასწორი ბლოკი %d" -#: xlogreader.c:2078 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X არასწორი მდგომარეობით, ბლოკი %d" -#: xlogreader.c:2105 xlogreader.c:2122 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%3$s მეთოდით შეკუმშული ასლის აღდგენა მისამართზე %1$X/%2$X, ბლოკი %4$d შეუძლებელია. მხარდაუჭერელია ამ აგების მიერ" -#: xlogreader.c:2131 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "შეუძლებელია ასლის აღდგენა მისამართზე %X/%X, შეკუმშულია უცნობი მეთოდით, ბლოკი %d" -#: xlogreader.c:2139 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "შეუძლებელია ასლის გაშლა მისამართზე %X/%X, ბლოკი %d" diff --git a/src/bin/pg_waldump/po/ko.po b/src/bin/pg_waldump/po/ko.po index 3594b9bc3ceba..25e4c0cfe2c95 100644 --- a/src/bin/pg_waldump/po/ko.po +++ b/src/bin/pg_waldump/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pg_waldump (PostgreSQL) 16\n" +"Project-Id-Version: pg_waldump (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:48+0000\n" -"PO-Revision-Date: 2023-05-26 13:22+0900\n" +"POT-Creation-Date: 2025-01-17 04:48+0000\n" +"PO-Revision-Date: 2025-01-16 14:06+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -37,6 +37,60 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "널 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위해 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일 상태 값을 구할 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -52,96 +106,90 @@ msgstr "\"%s\" 디렉터리가 있지만, 비어있지 않음" msgid "could not access directory \"%s\": %m" msgstr "\"%s\" 디렉터리에 접근 할 수 없음: %m" -#: pg_waldump.c:199 pg_waldump.c:528 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "\"%s\" 파일을 열 수 없음: %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "\"%s\" WAL 파일 안에 잘못된 WAL 조각 크기 (%d 바이트)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "" -"WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL " -"file \"%s\" header specifies %d byte" -msgid_plural "" -"WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL " -"file \"%s\" header specifies %d bytes" -msgstr[0] "" -"WAL 조각 파일 크기는 1MB에서 1GB사이 2^n 이어야하지만, \"%s\" WAL 파일 헤더에" -"는 %d 바이트로 지정되어있습니다" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL 조각 파일 크기는 1MB에서 1GB사이 2^n 이어야 합니다." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "\"%s\" 파일을 읽을 수 없음: %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "\"%s\" 파일을 읽을 수 없음: %d 읽음, 전체 %d" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "\"%s\" WAL 파일 찾기 실패" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "어떤 WAL 파일도 찾을 수 없음" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "\"%s\" 파일을 찾을 수 없음: %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" +msgid "could not read from file \"%s\", offset %d: %m" msgstr "\"%s\" 파일에서 %d 위치를 읽을 수 없음: %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" msgstr "%s 파일에서 %d 위치에서 읽기 실패: %d 읽음, 전체 %d" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "잘못된 포크 번호: %u" -#: pg_waldump.c:531 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "\"%s\" 파일을 쓸 수 없음: %m" -#: pg_waldump.c:534 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "\"%s\" 파일을 닫을 수 없음: %m" -#: pg_waldump.c:754 +#: pg_waldump.c:758 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" "\n" msgstr "%s 명령은 디버깅을 위해 PostgreSQL 미리 쓰기 로그(WAL)를 분석합니다.\n" -#: pg_waldump.c:756 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: pg_waldump.c:757 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [옵션]... [시작파일 [마침파일]]\n" -#: pg_waldump.c:758 +#: pg_waldump.c:762 #, c-format msgid "" "\n" @@ -150,13 +198,13 @@ msgstr "" "\n" "옵션들:\n" -#: pg_waldump.c:759 +#: pg_waldump.c:763 #, c-format msgid "" " -b, --bkp-details output detailed information about backup blocks\n" msgstr " -b, --bkp-details 백업 블록에 대한 자세한 정보도 출력함\n" -#: pg_waldump.c:760 +#: pg_waldump.c:764 #, c-format msgid "" " -B, --block=N with --relation, only show records that modify " @@ -165,17 +213,17 @@ msgstr "" " -B, --block=N --relation 옵션과 함께, 변경된 N번 블록의 레코드만" "봄\n" -#: pg_waldump.c:761 +#: pg_waldump.c:765 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr " -e, --end=RECPTR RECPTR WAL 위치에서 읽기 멈춤\n" -#: pg_waldump.c:762 +#: pg_waldump.c:766 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr " -f, --follow WAL 끝까지 읽은 뒤에도 계속 진행함\n" -#: pg_waldump.c:763 +#: pg_waldump.c:767 #, c-format msgid "" " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" @@ -184,12 +232,12 @@ msgstr "" " -F, --fork=FORK 지정한 FORK 종류 포크의 변경 블록의 레코드만\n" " 사용가능한 포크: main, fsm, vm, init\n" -#: pg_waldump.c:765 +#: pg_waldump.c:769 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N 출력할 레코드 수\n" -#: pg_waldump.c:766 +#: pg_waldump.c:770 #, c-format msgid "" " -p, --path=PATH directory in which to find WAL segment files or a\n" @@ -201,12 +249,12 @@ msgstr "" " ./pg_wal 디렉터리가 있는 디렉터리 지정\n" " (기본값: 현재 디렉터리, ./pg_wal, PGDATA/pg_wal)\n" -#: pg_waldump.c:769 +#: pg_waldump.c:773 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet 오류를 빼고 나머지는 아무 것도 안 보여줌\n" -#: pg_waldump.c:770 +#: pg_waldump.c:774 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager " @@ -217,7 +265,7 @@ msgstr "" " -r, --rmgr=RMGR 리소스 관리자 RMGR에서 만든 레코드만 출력함\n" " 리소스 관리자 이들을 --rmgr=list 로 봄\n" -#: pg_waldump.c:772 +#: pg_waldump.c:776 #, c-format msgid "" " -R, --relation=T/D/R only show records that modify blocks in relation T/" @@ -225,12 +273,12 @@ msgid "" msgstr "" " -R, --relation=T/D/R T/D/R 릴레이션에서 변경 블록 레코드만 보여줌\n" -#: pg_waldump.c:773 +#: pg_waldump.c:777 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr " -s, --start=RECPTR WAL RECPTR 위치에서 읽기 시작\n" -#: pg_waldump.c:774 +#: pg_waldump.c:778 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read WAL records\n" @@ -239,22 +287,22 @@ msgstr "" " -t, --timeline=TLI WAL 레코드를 시작할 타임라인 번호\n" " (기본값: 1 또는 STARTSEG에 사용된 값)\n" -#: pg_waldump.c:776 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보 보여주고 마침\n" -#: pg_waldump.c:777 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr " -w, --fullpage full page write 레코드만 보여줌\n" -#: pg_waldump.c:778 +#: pg_waldump.c:782 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr " -x, --xid=XID 트랜잭션 XID 레코드만 출력\n" -#: pg_waldump.c:779 +#: pg_waldump.c:783 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -263,17 +311,17 @@ msgstr "" " -z, --stats[=record] 레크드 통계 정보를 보여줌\n" " (추가로, 레코드당 통계정보를 출력)\n" -#: pg_waldump.c:781 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr " --save-fullpage=DIR DIR에 전체 페이지 이미지 저장\n" -#: pg_waldump.c:782 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: pg_waldump.c:783 +#: pg_waldump.c:787 #, c-format msgid "" "\n" @@ -282,198 +330,183 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: pg_waldump.c:784 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: pg_waldump.c:880 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "인자를 지정하세요" -#: pg_waldump.c:896 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "잘못된 블록 번호: \"%s\"" -#: pg_waldump.c:905 pg_waldump.c:1003 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "잘못된 WAL 위치: \"%s\"" -#: pg_waldump.c:918 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "잘못된 포크 이름: \"%s\"" -#: pg_waldump.c:926 pg_waldump.c:1029 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "\"%s\" 값은 %s 옵션 값으로 유효하지 않음" -#: pg_waldump.c:957 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "\"%s\" 이름의 사용자 정의 리소스 관리자가 없음" -#: pg_waldump.c:978 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "\"%s\" 이름의 리소스 관리자가 없음" -#: pg_waldump.c:993 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "잘못된 릴레이션 양식: \"%s\"" -#: pg_waldump.c:994 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "\"테이블스페이스OID/데이터베이스OID/릴레이션 filenode\" 양식을 기대함" -#: pg_waldump.c:1036 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "%s 값은 %u부터 %u까지만 허용함" -#: pg_waldump.c:1051 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "잘못된 트랜잭션 ID 양식: \"%s\"" -#: pg_waldump.c:1066 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "%s 옵션에 대한 알 수 없는 값: %s" -#: pg_waldump.c:1083 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "%s 옵션은 %s 옵션 설정이 필요합니다." -#: pg_waldump.c:1090 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "너무 많은 명령행 인수를 지정했습니다. (처음 \"%s\")" -#: pg_waldump.c:1100 pg_waldump.c:1123 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "\"%s\" 디렉터리 열 수 없음: %m" - -#: pg_waldump.c:1129 pg_waldump.c:1159 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "\"%s\" 파일을 열 수 없음" -#: pg_waldump.c:1139 +#: pg_waldump.c:1143 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "%X/%X WAL 시작 위치가 \"%s\" 파일에 없음" -#: pg_waldump.c:1166 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "%s ENDSEG가 %s STARTSEG 앞에 있음" -#: pg_waldump.c:1181 +#: pg_waldump.c:1185 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "%X/%X WAL 끝 위치가 \"%s\" 파일에 없음" -#: pg_waldump.c:1193 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "입력한 WAL 위치에서 시작할 수 없음" -#: pg_waldump.c:1207 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "WAL 읽기 프로세서를 할당하는 중에 메모리 부족 발생" -#: pg_waldump.c:1213 +#: pg_waldump.c:1217 #, c-format msgid "could not find a valid record after %X/%X" msgstr "%X/%X 위치 뒤에 올바른 레코드가 없음" -#: pg_waldump.c:1223 +#: pg_waldump.c:1227 #, 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] "첫 레코드가 %X/%X 뒤에 있고, (%X/%X), %u 바이트 건너 뜀\n" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" +msgstr[0] "첫 레코드가 %X/%X 뒤에 있고, (%X/%X), %u 바이트 건너 뜀" -#: pg_waldump.c:1308 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "%X/%X 위치에서 WAL 레코드 오류: %s" -#: pg_waldump.c:1317 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 오프셋: 위치 %X/%X, 기대값 %u, 실재값 %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%X에서 contrecord를 필요로 함" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "잘못된 레코드 길이: 위치 %X/%X, 기대값 %u, 실재값 %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "%u 길이 레코드를 디코드 작업을 위한 메모리가 부족함" - -#: xlogreader.c:727 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "너무 긴 길이(%u)의 레코드가 %X/%X에 있음" - -#: xlogreader.c:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%X 위치에 contrecord 플래그가 없음" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "잘못된 contrecord 길이 %u (기대값: %lld), 위치 %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "잘못된 자원 관리 ID %u, 위치: %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "레코드의 잘못된 프리링크 %X/%X, 해당 레코드 %X/%X" -#: xlogreader.c:1192 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "잘못된 자원관리자 데이터 체크섬, 위치: %X/%X 레코드" -#: xlogreader.c:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "%04X 매직 번호가 잘못됨, WAL 조각 파일 %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 정보 비트 %04X, WAL 조각 파일 %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -482,7 +515,7 @@ msgstr "" "WAL 파일이 다른 시스템의 것입니다. WAL 파일의 시스템 식별자는 %llu, " "pg_control 의 식별자는 %llu" -#: xlogreader.c:1265 +#: xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -491,7 +524,7 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더에 지정된 값이 잘" "못된 조각 크기임" -#: xlogreader.c:1271 +#: xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -500,12 +533,12 @@ msgstr "" "WAL 파일이 다른 데이터베이스 시스템의 것입니다: 페이지 헤더의 XLOG_BLCKSZ 값" "이 바르지 않음" -#: xlogreader.c:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "잘못된 페이지 주소 %X/%X, WAL 조각 파일 %s, LSN %X/%X, 오프셋 %u" -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -514,22 +547,22 @@ msgstr "" "타임라인 범위 벗어남 %u (이전 번호 %u), WAL 조각 파일 %s, LSN %X/%X, 오프셋 " "%u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "%u block_id는 범위를 벗어남, 위치 %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA 지정했지만, %X/%X 에 자료가 없음" -#: xlogreader.c:1766 +#: xlogreader.c:1780 #, 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:1802 +#: xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -538,19 +571,19 @@ msgstr "" "BKPIMAGE_HAS_HOLE 설정이 되어 있지만, 옵셋: %u, 길이: %u, 블록 이미지 길이: " "%u, 대상: %X/%X" -#: xlogreader.c:1818 +#: xlogreader.c:1832 #, 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:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED 설정이 되어 있지만, 블록 이미지 길이: %u, 대상: %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -559,37 +592,37 @@ msgstr "" "BKPIMAGE_HAS_HOLE, BKPIMAGE_COMPRESSED 지정 안되어 있으나, 블록 이미지 길이" "는 %u, 대상: %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL 설정이 되어 있지만, %X/%X 에 이전 릴레이션 없음" -#: xlogreader.c:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "잘못된 block_id %u, 위치 %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "잘못된 레코드 길이, 위치 %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WAL 레코드에서 %d ID의 백업 블록 위치를 바르게 잡을 수 없음" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%X 위치에 이미지를 복원할 수 없음, 해당 %d 블록이 깨졌음" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "이미지 복원 실패, 잘못된 상태의 압축 이미지, 위치 %X/%X, 블록 %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -598,14 +631,14 @@ msgstr "" "%X/%X 압축 위치에 이미지 복원할 수 없음, %s 압축을 지원하지 않음, 해당 블록: " "%d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "" "%X/%X 압축 위치에 이미지 복원할 수 없음, 알 수 없은 방법, 해당 블록: %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "압축 이미지 풀기 실패, 위치 %X/%X, 블록 %d" @@ -613,3 +646,11 @@ msgstr "압축 이미지 풀기 실패, 위치 %X/%X, 블록 %d" #, c-format #~ msgid "missing contrecord at %X/%X" #~ msgstr "%X/%X 위치에 contrecord 없음" + +#, c-format +#~ msgid "out of memory while trying to decode a record of length %u" +#~ msgstr "%u 길이 레코드를 디코드 작업을 위한 메모리가 부족함" + +#, c-format +#~ msgid "record length %u at %X/%X too long" +#~ msgstr "너무 긴 길이(%u)의 레코드가 %X/%X에 있음" diff --git a/src/bin/pg_waldump/po/ru.po b/src/bin/pg_waldump/po/ru.po index 4a2754d7ea93b..bafe5a3233c66 100644 --- a/src/bin/pg_waldump/po/ru.po +++ b/src/bin/pg_waldump/po/ru.po @@ -1,13 +1,13 @@ # Russian 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. -# Alexander Lakhin , 2017, 2018, 2019, 2020, 2022, 2023. +# Alexander Lakhin , 2017, 2018, 2019, 2020, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-02 18:10+0300\n" -"PO-Revision-Date: 2023-08-30 15:41+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-07 08:59+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -37,6 +37,60 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -50,88 +104,79 @@ msgstr "каталог \"%s\" существует, но он не пуст" #: pg_waldump.c:150 #, c-format msgid "could not access directory \"%s\": %m" -msgstr "ошибка доступа к каталогу \"%s\": %m" +msgstr "ошибка при обращении к каталогу \"%s\": %m" -#: pg_waldump.c:199 pg_waldump.c:528 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не удалось открыть файл \"%s\": %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "WAL-файл \"%s\" содержит неверный размер сегмента WAL (%d Б)" +msgstr[1] "WAL-файл \"%s\" содержит неверный размер сегмента WAL (%d Б)" +msgstr[2] "WAL-файл \"%s\" содержит неверный размер сегмента WAL (%d Б)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "" -"WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL " -"file \"%s\" header specifies %d byte" -msgid_plural "" -"WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL " -"file \"%s\" header specifies %d bytes" -msgstr[0] "" -"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в заголовке файла WAL \"%s\" указано значение: %d" -msgstr[1] "" -"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в заголовке файла WAL \"%s\" указано значение: %d" -msgstr[2] "" -"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 " -"ГБ, но в заголовке файла WAL \"%s\" указано значение: %d" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "" +"Размер сегмента WAL должен задаваться степенью 2 в интервале от 1 МБ до 1 ГБ." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "не удалось прочитать файл \"%s\" (прочитано байт: %d из %d)" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "не удалось найти файл WAL \"%s\"" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "не удалось найти ни одного файла WAL" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "не удалось найти файл \"%s\": %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" -msgstr "не удалось прочитать из файла %s по смещению %d: %m" +msgid "could not read from file \"%s\", offset %d: %m" +msgstr "не удалось прочитать файл \"%s\" по смещению %d: %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" msgstr "" -"не удалось прочитать из файла %s по смещению %d (прочитано байт: %d из %d)" +"не удалось прочитать файл \"%s\" по смещению %d (прочитано байт: %d из %d)" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "неверный номер слоя: %u" -#: pg_waldump.c:531 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: pg_waldump.c:534 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалось закрыть файл \"%s\": %m" -#: pg_waldump.c:754 +#: pg_waldump.c:758 #, c-format msgid "" "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n" @@ -140,17 +185,17 @@ msgstr "" "%s декодирует и показывает журналы предзаписи PostgreSQL для целей отладки.\n" "\n" -#: pg_waldump.c:756 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: pg_waldump.c:757 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [ПАРАМЕТР]... [НАЧАЛЬНЫЙ_СЕГМЕНТ [КОНЕЧНЫЙ_СЕГМЕНТ]]\n" -#: pg_waldump.c:758 +#: pg_waldump.c:762 #, c-format msgid "" "\n" @@ -159,14 +204,14 @@ msgstr "" "\n" "Параметры:\n" -#: pg_waldump.c:759 +#: pg_waldump.c:763 #, c-format msgid "" " -b, --bkp-details output detailed information about backup blocks\n" msgstr "" " -b, --bkp-details вывести подробную информацию о копиях страниц\n" -#: pg_waldump.c:760 +#: pg_waldump.c:764 #, c-format msgid "" " -B, --block=N with --relation, only show records that modify " @@ -176,20 +221,20 @@ msgstr "" " записи, в которых меняется блок N\n" # well-spelled: ПОЗЗАП -#: pg_waldump.c:761 +#: pg_waldump.c:765 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr "" " -e, --end=ПОЗЗАП прекратить чтение в заданной позиции записи в WAL\n" -#: pg_waldump.c:762 +#: pg_waldump.c:766 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr "" " -f, --follow повторять попытки чтения по достижении конца WAL\n" # well-spelled: МНГР -#: pg_waldump.c:763 +#: pg_waldump.c:767 #, c-format msgid "" " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" @@ -199,13 +244,13 @@ msgstr "" "СЛОЕ\n" " с именем из списка: main, fsm, vm, init\n" -#: pg_waldump.c:765 +#: pg_waldump.c:769 #, 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:766 +#: pg_waldump.c:770 #, c-format msgid "" " -p, --path=PATH directory in which to find WAL segment files or a\n" @@ -219,13 +264,13 @@ msgstr "" " (по умолчанию: текущий каталог,\n" " ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:769 +#: pg_waldump.c:773 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet не выводить никаких сообщений, кроме ошибок\n" # well-spelled: МНГР -#: pg_waldump.c:770 +#: pg_waldump.c:774 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager " @@ -237,7 +282,7 @@ msgstr "" " для просмотра списка доступных менеджеров ресурсов\n" " укажите --rmgr=list\n" -#: pg_waldump.c:772 +#: pg_waldump.c:776 #, c-format msgid "" " -R, --relation=T/D/R only show records that modify blocks in relation T/" @@ -247,14 +292,14 @@ msgstr "" " в отношении T/D/R\n" # well-spelled: ПОЗЗАП -#: pg_waldump.c:773 +#: pg_waldump.c:777 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr "" " -s, --start=ПОЗЗАП начать чтение с заданной позиции записи в WAL\n" # well-spelled: ЛВР -#: pg_waldump.c:774 +#: pg_waldump.c:778 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read WAL records\n" @@ -265,25 +310,25 @@ msgstr "" "аргументом\n" " НАЧАЛЬНЫЙ_СЕГМЕНТ)\n" -#: pg_waldump.c:776 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_waldump.c:777 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr "" " -w, --fullpage выводить только записи, содержащие полные страницы\n" -#: pg_waldump.c:778 +#: pg_waldump.c:782 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr "" " -x, --xid=XID выводить только записи с заданным\n" " идентификатором транзакции\n" -#: pg_waldump.c:779 +#: pg_waldump.c:783 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -292,19 +337,19 @@ msgstr "" " -z, --stats[=record] показывать статистику вместо записей\n" " (также возможно получить статистику по записям)\n" -#: pg_waldump.c:781 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr "" " --save-fullpage=ПУТЬ записывать полные образы страниц в заданный " "каталог\n" -#: pg_waldump.c:782 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_waldump.c:783 +#: pg_waldump.c:787 #, c-format msgid "" "\n" @@ -313,200 +358,195 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_waldump.c:784 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: pg_waldump.c:880 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "аргументы не указаны" -#: pg_waldump.c:896 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "неверный номер блока: \"%s\"" -#: pg_waldump.c:905 pg_waldump.c:1003 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "неверная позиция в WAL: \"%s\"" -#: pg_waldump.c:918 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "неверное имя слоя: \"%s\"" -#: pg_waldump.c:926 pg_waldump.c:1029 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "неверное значение \"%s\" для параметра %s" -#: pg_waldump.c:957 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "пользовательский менеджер ресурсов \"%s\" не существует" -#: pg_waldump.c:978 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "менеджер ресурсов \"%s\" не существует" -#: pg_waldump.c:993 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "неверное указание отношения: \"%s\"" -#: pg_waldump.c:994 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "" "Ожидается \"OID табл. пространства/OID базы данных/файловый узел отношения\"." -#: pg_waldump.c:1036 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "значение %s должно быть в диапазоне %u..%u" -#: pg_waldump.c:1051 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "неверное указание ID транзакции: \"%s\"" -#: pg_waldump.c:1066 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "нераспознанное значение параметра %s: %s" -#: pg_waldump.c:1083 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "параметр %s требует указания параметра %s" -#: pg_waldump.c:1090 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_waldump.c:1100 pg_waldump.c:1123 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не удалось открыть каталог \"%s\": %m" - -#: pg_waldump.c:1129 pg_waldump.c:1159 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "не удалось открыть файл \"%s\"" -#: pg_waldump.c:1139 +#: pg_waldump.c:1143 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "начальная позиция в WAL %X/%X находится не в файле \"%s\"" -#: pg_waldump.c:1166 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "КОНЕЧНЫЙ_СЕГМЕНТ %s меньше, чем НАЧАЛЬНЫЙ_СЕГМЕНТ %s" -#: pg_waldump.c:1181 +#: pg_waldump.c:1185 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "конечная позиция в WAL %X/%X находится не в файле \"%s\"" -#: pg_waldump.c:1193 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "начальная позиция в WAL не задана" -#: pg_waldump.c:1207 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "не удалось выделить память для чтения WAL" -#: pg_waldump.c:1213 +#: pg_waldump.c:1217 #, c-format msgid "could not find a valid record after %X/%X" -msgstr "не удалось найти действительную запись после позиции %X/%X" +msgstr "не удалось найти корректную запись после %X/%X" -#: pg_waldump.c:1223 +#: pg_waldump.c:1227 #, 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" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" msgstr[0] "" -"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б\n" +"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б" msgstr[1] "" -"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б\n" +"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б" msgstr[2] "" -"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б\n" +"первая запись обнаружена после %X/%X, в позиции %X/%X, пропускается %u Б" -#: pg_waldump.c:1308 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "ошибка в записи WAL в позиции %X/%X: %s" -#: pg_waldump.c:1317 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: xlogreader.c:621 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "" "неверное смещение записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: xlogreader.c:630 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение записи" -#: xlogreader.c:671 xlogreader.c:1136 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "" "неверная длина записи в позиции %X/%X: ожидалось минимум %u, получено %u" -#: xlogreader.c:760 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: xlogreader.c:773 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неверная длина contrecord: %u (ожидалась %lld) в позиции %X/%X" -#: xlogreader.c:1144 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера ресурсов %u в позиции %X/%X" -#: xlogreader.c:1157 xlogreader.c:1173 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запись с неверной ссылкой назад %X/%X в позиции %X/%X" -#: xlogreader.c:1211 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "некорректная контрольная сумма данных менеджера ресурсов в записи в позиции " "%X/%X" -#: xlogreader.c:1245 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверное магическое число %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1260 xlogreader.c:1302 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "" "неверные информационные биты %04X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1276 +#: xlogreader.c:1274 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -515,7 +555,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор системы БД " "%llu, а идентификатор системы pg_control: %llu" -#: xlogreader.c:1284 +#: xlogreader.c:1282 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -524,7 +564,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер сегмента в заголовке " "страницы" -#: xlogreader.c:1290 +#: xlogreader.c:1288 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -533,12 +573,12 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "страницы" -#: xlogreader.c:1322 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неожиданный pageaddr %X/%X в сегменте WAL %s, LSN %X/%X, смещение %u" -#: xlogreader.c:1348 +#: xlogreader.c:1346 #, c-format msgid "" "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, " @@ -547,23 +587,23 @@ msgstr "" "нарушение последовательности ID линии времени %u (после %u) в сегменте WAL " "%s, LSN %X/%X, смещение %u" -#: xlogreader.c:1754 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порядку в позиции %X/%X" -#: xlogreader.c:1778 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA установлен, но данных в позиции %X/%X нет" -#: xlogreader.c:1785 +#: xlogreader.c:1780 #, 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:1821 +#: xlogreader.c:1816 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -572,21 +612,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE установлен, но для пропуска заданы смещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: xlogreader.c:1837 +#: xlogreader.c:1832 #, 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:1851 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED установлен, но длина образа блока равна %u в позиции %X/" "%X" -#: xlogreader.c:1866 +#: xlogreader.c:1861 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -595,41 +635,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не установлены, но длина образа " "блока равна %u в позиции %X/%X" -#: xlogreader.c:1882 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL установлен, но предыдущее значение не задано в позиции %X/" "%X" -#: xlogreader.c:1894 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: xlogreader.c:1961 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запись с неверной длиной в позиции %X/%X" -#: xlogreader.c:1987 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалось найти копию блока с ID %d в записи журнала WAL" -#: xlogreader.c:2071 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалось восстановить образ в позиции %X/%X с указанным неверным блоком %d" -#: xlogreader.c:2078 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалось восстановить образ в позиции %X/%X с неверным состоянием, блок %d" -#: xlogreader.c:2105 xlogreader.c:2122 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -638,7 +678,7 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый методом %s, который не " "поддерживается этой сборкой, блок %d" -#: xlogreader.c:2131 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -646,7 +686,7 @@ msgstr "" "не удалось восстановить образ в позиции %X/%X, сжатый неизвестным методом, " "блок %d" -#: xlogreader.c:2139 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалось развернуть образ в позиции %X/%X, блок %d" @@ -702,8 +742,5 @@ msgstr "не удалось развернуть образ в позиции %X #~ msgid "not enough data in file \"%s\"" #~ msgstr "недостаточно данных в файле \"%s\"" -#~ msgid "out of memory" -#~ msgstr "нехватка памяти" - #~ msgid "path \"%s\" could not be opened: %s" #~ msgstr "не удалось открыть путь \"%s\": %s" diff --git a/src/bin/pg_waldump/po/sv.po b/src/bin/pg_waldump/po/sv.po index 4fd2ceb7b037a..24173636e1a90 100644 --- a/src/bin/pg_waldump/po/sv.po +++ b/src/bin/pg_waldump/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-02 03:17+0000\n" -"PO-Revision-Date: 2023-08-30 08:59+0200\n" +"POT-Creation-Date: 2024-07-12 14:19+0000\n" +"PO-Revision-Date: 2024-07-12 19:11+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -37,6 +37,60 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -52,91 +106,91 @@ msgstr "katalogen \"%s\" existerar men är inte tom" msgid "could not access directory \"%s\": %m" msgstr "kunde inte komma åt katalog \"%s\": %m" -#: pg_waldump.c:199 pg_waldump.c:528 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "kunde inte öppna fil \"%s\": %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "ogiltigt WAL-segmentstorlek i WAL-fil \"%s\" (%d byte)" +msgstr[1] "ogiltigt WAL-segmentstorlek i WAL-fil \"%s\" (%d byte)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d byte" -msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d bytes" -msgstr[0] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men headern i WAL-filen \"%s\" anger %d byte" -msgstr[1] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men headern i WAL-filen \"%s\" anger %d byte" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "WAL-segmentstorleken måste vara en tvåpotens mellan 1 MB och 1 GB." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "kunde inte läsa fil \"%s\": läste %d av %d" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "kunde inte lokalisera WAL-fil \"%s\"" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "kunde inte hitta några WAL-filer" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "kunde inte hitta filen \"%s\": %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" -msgstr "Kunde inte läsa från fil %s på offset %d: %m" +msgid "could not read from file \"%s\", offset %d: %m" +msgstr "Kunde inte läsa från fil \"%s\", offset %d: %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" -msgstr "kunde inte läsa från fil %s, offset %d, läste %d av %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" +msgstr "kunde inte läsa från fil \"%s\", offset %d, läste %d av %d" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "ogiltigt fork-nummer: %u" -#: pg_waldump.c:531 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: pg_waldump.c:534 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "kunde inte stänga fil \"%s\": %m" -#: pg_waldump.c:754 +#: pg_waldump.c:758 #, 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:756 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: pg_waldump.c:757 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [FLAGGA]... [STARTSEG [SLUTSEG]]\n" -#: pg_waldump.c:758 +#: pg_waldump.c:762 #, c-format msgid "" "\n" @@ -145,29 +199,29 @@ msgstr "" "\n" "Flaggor:\n" -#: pg_waldump.c:759 +#: pg_waldump.c:763 #, 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:760 +#: pg_waldump.c:764 #, c-format msgid " -B, --block=N with --relation, only show records that modify block N\n" msgstr "" " -B, --block=N tillsammans med --relation, visa bara poster som\n" " modifierar block N\n" -#: pg_waldump.c:761 +#: pg_waldump.c:765 #, 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:762 +#: pg_waldump.c:766 #, 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:763 +#: pg_waldump.c:767 #, c-format msgid "" " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" @@ -176,12 +230,12 @@ msgstr "" " -F, --fork=GREN visa bara poster som modifierar block i grenen GREN\n" " gilriga namn är main, fsm, vm och init\n" -#: pg_waldump.c:765 +#: pg_waldump.c:769 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N antal poster att visa\n" -#: pg_waldump.c:766 +#: pg_waldump.c:770 #, c-format msgid "" " -p, --path=PATH directory in which to find WAL segment files or a\n" @@ -192,12 +246,12 @@ msgstr "" " katalog med en ./pg_wal som innehåller sådana filer\n" " (standard: aktuell katalog, ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:769 +#: pg_waldump.c:773 #, 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:770 +#: pg_waldump.c:774 #, c-format msgid "" " -r, --rmgr=RMGR only show records generated by resource manager RMGR;\n" @@ -206,19 +260,19 @@ msgstr "" " -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:772 +#: pg_waldump.c:776 #, c-format msgid " -R, --relation=T/D/R only show records that modify blocks in relation T/D/R\n" msgstr "" " -R, --relation=T/D/R visa bara poster som modifierar block i\n" " relationen T/D/R\n" -#: pg_waldump.c:773 +#: pg_waldump.c:777 #, 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:774 +#: pg_waldump.c:778 #, c-format msgid "" " -t, --timeline=TLI timeline from which to read WAL records\n" @@ -227,22 +281,22 @@ msgstr "" " -t, --timeline=TLI tidslinje från vilken vi läser WAL-poster\n" " (standard: 1 eller värdet som används i STARTSEG)\n" -#: pg_waldump.c:776 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_waldump.c:777 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr " -w, --fullpage visa bara poster som skrivit hela sidor\n" -#: pg_waldump.c:778 +#: pg_waldump.c:782 #, 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:779 +#: pg_waldump.c:783 #, c-format msgid "" " -z, --stats[=record] show statistics instead of records\n" @@ -251,17 +305,17 @@ msgstr "" " -z, --stats[=post] visa statistik istället för poster\n" " (alternativt, visa statistik per post)\n" -#: pg_waldump.c:781 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr " --save-fullpage=KAT spara kopia av hela sidor till KAT\n" -#: pg_waldump.c:782 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa den här hjälpen, avsluta sedan\n" -#: pg_waldump.c:783 +#: pg_waldump.c:787 #, c-format msgid "" "\n" @@ -270,312 +324,285 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_waldump.c:784 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: pg_waldump.c:880 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "inga argument angivna" -#: pg_waldump.c:896 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "ogiltigt portnummer \"%s\"" -#: pg_waldump.c:905 pg_waldump.c:1003 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "ogiltig WAL-position: \"%s\"" -#: pg_waldump.c:918 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "ogiltigt fork-namn: \"%s\"" -#: pg_waldump.c:926 pg_waldump.c:1029 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" -#: pg_waldump.c:957 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "egendefinierad resurshanterare \"%s\" finns inte" -#: pg_waldump.c:978 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "resurshanterare \"%s\" finns inte" -#: pg_waldump.c:993 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "ogiltig inställning av relation: \"%s\"" -#: pg_waldump.c:994 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "Skall vara en av \"OID för tabellutrymme/OID för databas/relations filnod\"." -#: pg_waldump.c:1036 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "%s måste vara i intervallet %u..%u" -#: pg_waldump.c:1051 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "ogiltig inställning av transaktions-ID: %s" -#: pg_waldump.c:1066 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "okänt värde för flaggan %s: %s" -#: pg_waldump.c:1083 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "flaggan %s kräver att flaggan %s också anges" -#: pg_waldump.c:1090 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_waldump.c:1100 pg_waldump.c:1123 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "kunde inte öppna katalog \"%s\": %m" - -#: pg_waldump.c:1129 pg_waldump.c:1159 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "kunde inte öppna filen \"%s\"" -#: pg_waldump.c:1139 +#: pg_waldump.c:1143 #, 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:1166 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "SLUTSEG %s är före STARTSEG %s" -#: pg_waldump.c:1181 +#: pg_waldump.c:1185 #, 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:1193 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "ingen start-WAL-position angiven" -#: pg_waldump.c:1207 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "slut på minne vid allokering av en WAL-läs-processor" -#: pg_waldump.c:1213 +#: pg_waldump.c:1217 #, 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:1223 +#: pg_waldump.c:1227 #, 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" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" +msgstr[0] "första posten är efter %X/%X, vid %X/%X, hoppar över %u byte" +msgstr[1] "första posten är efter %X/%X, vid %X/%X, hoppar över %u byte" -#: pg_waldump.c:1308 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "fel i WAL-post vid %X/%X: %s" -#: pg_waldump.c:1317 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: xlogreader.c:626 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "ogiltig postoffset vid %X/%X: förväntade minst %u, fick %u" -#: xlogreader.c:635 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: xlogreader.c:676 xlogreader.c:1119 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade minst %u, fick %u" -#: xlogreader.c:705 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "slut på minne vid avkodning av post med längden %u" - -#: xlogreader.c:727 -#, 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:776 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: xlogreader.c:789 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ogiltig contrecord-längd %u (förväntade %lld) vid %X/%X" -#: xlogreader.c:1127 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: xlogreader.c:1140 xlogreader.c:1156 +#: xlogreader.c:1155 xlogreader.c:1171 #, 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:1192 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "felaktig resurshanterardatakontrollsumma i post vid %X/%X" -#: xlogreader.c:1226 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "felaktigt magiskt nummer %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1241 xlogreader.c:1283 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "ogiltiga infobitar %04X i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1257 +#: xlogreader.c:1274 #, 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:1265 +#: xlogreader.c:1282 #, 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:1271 +#: xlogreader.c:1288 #, 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:1303 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "oväntad sidadress %X/%X i WAL-segment %s, LSN %X/%X, offset %u" # FIXME -#: xlogreader.c:1329 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "\"ej i sekvens\"-fel på tidslinje-ID %u (efter %u) i WAL-segment %s, LSN %X/%X, offset %u" -#: xlogreader.c:1735 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "\"ej i sekvens\"-block_id %u vid %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA är satt men ingen data inkluderad vid %X/%X" -#: xlogreader.c:1766 +#: xlogreader.c:1780 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA är ej satt men datalängden är %u vid %X/%X" -#: xlogreader.c:1802 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är satt men håloffset %u längd %u blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1818 +#: xlogreader.c:1832 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE är inte satt men håloffset %u längd %u vid %X/%X" -#: xlogreader.c:1832 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED är satt men blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_COMPRESSED är satt men blockavbildlängd är %u vid %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL är satt men ingen tidigare rel vid %X/%X" -#: xlogreader.c:1875 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: xlogreader.c:1968 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "kunde inte hitta backup-block med ID %d i WAL-post" -#: xlogreader.c:2052 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt block %d angivet" -#: xlogreader.c:2059 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt state, block %d" -#: xlogreader.c:2086 xlogreader.c:2103 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med %s stöds inte av bygget, block %d" -#: xlogreader.c:2112 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med okänd metod, block %d" -#: xlogreader.c:2120 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "kunde inte packa upp avbild vid %X/%X, block %d" - -#, c-format -#~ msgid "invalid record offset at %X/%X" -#~ msgstr "ogiltig postoffset vid %X/%X" - -#, c-format -#~ msgid "invalid timeline specification: \"%s\"" -#~ msgstr "ogiltig inställning av tidslinje: %s" - -#, c-format -#~ msgid "missing contrecord at %X/%X" -#~ msgstr "det saknas en contrecord vid %X/%X" diff --git a/src/bin/pg_waldump/po/uk.po b/src/bin/pg_waldump/po/uk.po index 00373f44fd463..09da6eebce3ec 100644 --- a/src/bin/pg_waldump/po/uk.po +++ b/src/bin/pg_waldump/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-09 18:17+0000\n" -"PO-Revision-Date: 2024-02-11 16:35\n" +"POT-Creation-Date: 2024-08-31 06:19+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pg_waldump.pot\n" -"X-Crowdin-File-ID: 979\n" +"X-Crowdin-File: /REL_17_STABLE/pg_waldump.pot\n" +"X-Crowdin-File-ID: 984\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,6 +37,60 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 pg_waldump.c:199 +#: pg_waldump.c:532 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: pg_waldump.c:1104 pg_waldump.c:1127 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: pg_waldump.c:137 #, c-format msgid "could not create directory \"%s\": %m" @@ -52,130 +106,130 @@ msgstr "каталог \"%s\" існує, але він не порожній" msgid "could not access directory \"%s\": %m" msgstr "немає доступу до каталогу \"%s\": %m" -#: pg_waldump.c:199 pg_waldump.c:528 +#: pg_waldump.c:256 #, c-format -msgid "could not open file \"%s\": %m" -msgstr "не можливо відкрити файл \"%s\": %m" +msgid "invalid WAL segment size in WAL file \"%s\" (%d byte)" +msgid_plural "invalid WAL segment size in WAL file \"%s\" (%d bytes)" +msgstr[0] "невірний розмір сегмента WAL у файлі WAL \"%s\" (%d байт)" +msgstr[1] "невірний розмір сегмента WAL у файлі WAL \"%s\" (%d байт)" +msgstr[2] "невірний розмір сегмента WAL у файлі WAL \"%s\" (%d байт)" +msgstr[3] "невірний розмір сегмента WAL у файлі WAL \"%s\" (%d байт)" -#: pg_waldump.c:255 +#: pg_waldump.c:260 #, c-format -msgid "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d byte" -msgid_plural "WAL segment size must be a power of two between 1 MB and 1 GB, but the WAL file \"%s\" header specifies %d bytes" -msgstr[0] "Розмір сегмента WAL повинен задаватись ступенем двійки в інтервалі між 1 MB і 1 GB, але у заголовку файлу WAL \"%s\" вказано %d байт" -msgstr[1] "Розмір сегмента WAL повинен задаватись ступенем двійки в інтервалі між 1 MB і 1 GB, але у заголовку файлу WAL \"%s\" вказано %d байти" -msgstr[2] "Розмір сегмента WAL повинен задаватись ступенем двійки в інтервалі між 1 MB і 1 GB, але у заголовку файлу WAL \"%s\" вказано %d байтів" -msgstr[3] "Розмір сегмента WAL повинен задаватись ступенем двійки в інтервалі між 1 MB і 1 GB, але у заголовку файлу WAL \"%s\" вказано %d байтів" +msgid "The WAL segment size must be a power of two between 1 MB and 1 GB." +msgstr "Розмір сегмента WAL повинен бути степенем двійки від 1 МБ до 1 ГБ." -#: pg_waldump.c:261 +#: pg_waldump.c:265 #, c-format msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" -#: pg_waldump.c:264 +#: pg_waldump.c:268 #, c-format msgid "could not read file \"%s\": read %d of %d" msgstr "не вдалося прочитати файл \"%s\": прочитано %d з %d" -#: pg_waldump.c:325 +#: pg_waldump.c:329 #, c-format msgid "could not locate WAL file \"%s\"" msgstr "не вдалося знайти WAL файл \"%s\"" -#: pg_waldump.c:327 +#: pg_waldump.c:331 #, c-format msgid "could not find any WAL file" msgstr "не вдалося знайти жодного WAL файлу" -#: pg_waldump.c:368 +#: pg_waldump.c:372 #, c-format msgid "could not find file \"%s\": %m" msgstr "не вдалося знайти файл \"%s\": %m" -#: pg_waldump.c:417 +#: pg_waldump.c:421 #, c-format -msgid "could not read from file %s, offset %d: %m" -msgstr "не вдалося прочитати файл %s, зсув %d: %m" +msgid "could not read from file \"%s\", offset %d: %m" +msgstr "не вдалося прочитати з файлу \"%s\", зсув %d: %m" -#: pg_waldump.c:421 +#: pg_waldump.c:425 #, c-format -msgid "could not read from file %s, offset %d: read %d of %d" -msgstr "не вдалося прочитати з файлу %s, зсув %d: прочитано %d з %d" +msgid "could not read from file \"%s\", offset %d: read %d of %d" +msgstr "не вдалося прочитати з файлу \"%s\", зсув %d: прочитано %d з %d" -#: pg_waldump.c:511 +#: pg_waldump.c:515 #, c-format msgid "%s" msgstr "%s" -#: pg_waldump.c:519 +#: pg_waldump.c:523 #, c-format msgid "invalid fork number: %u" msgstr "неприпустимий номер форку: %u" -#: pg_waldump.c:531 +#: pg_waldump.c:535 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: pg_waldump.c:534 +#: pg_waldump.c:538 #, c-format msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: pg_waldump.c:754 +#: pg_waldump.c:758 #, c-format msgid "%s decodes and displays PostgreSQL write-ahead logs for debugging.\n\n" msgstr "%s декодує і відображає журнали попереднього запису PostgreSQL для налагодження.\n\n" -#: pg_waldump.c:756 +#: pg_waldump.c:760 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_waldump.c:757 +#: pg_waldump.c:761 #, c-format msgid " %s [OPTION]... [STARTSEG [ENDSEG]]\n" msgstr " %s [OPTION]...[STARTSEG [ENDSEG]]\n" -#: pg_waldump.c:758 +#: pg_waldump.c:762 #, c-format msgid "\n" "Options:\n" msgstr "\n" "Параметри:\n" -#: pg_waldump.c:759 +#: pg_waldump.c:763 #, c-format msgid " -b, --bkp-details output detailed information about backup blocks\n" msgstr " -b, --bkp-details виводити детальну інформацію про блоки резервних копій\n" -#: pg_waldump.c:760 +#: pg_waldump.c:764 #, c-format msgid " -B, --block=N with --relation, only show records that modify block N\n" msgstr " -B, --block=N з --relation, лише показати записи, які змінюють блок N\n" -#: pg_waldump.c:761 +#: pg_waldump.c:765 #, c-format msgid " -e, --end=RECPTR stop reading at WAL location RECPTR\n" msgstr " -e, --end=RECPTR зупинити читання WAL з місця RECPTR\n" -#: pg_waldump.c:762 +#: pg_waldump.c:766 #, c-format msgid " -f, --follow keep retrying after reaching end of WAL\n" msgstr " -f, --follow повторювати спроби після досягнення кінця WAL\n" -#: pg_waldump.c:763 +#: pg_waldump.c:767 #, c-format msgid " -F, --fork=FORK only show records that modify blocks in fork FORK;\n" " valid names are main, fsm, vm, init\n" msgstr " -F, --fork=FORK показати лише записи, які змінюють блоки в форці FORK;\n" " дійсні імена: main, fsm, vm, init\n" -#: pg_waldump.c:765 +#: pg_waldump.c:769 #, c-format msgid " -n, --limit=N number of records to display\n" msgstr " -n, --limit=N число записів для відображення\n" -#: pg_waldump.c:766 +#: pg_waldump.c:770 #, c-format msgid " -p, --path=PATH directory in which to find WAL segment files or a\n" " directory with a ./pg_wal that contains such files\n" @@ -184,358 +238,353 @@ msgstr " -p, --path=PATH каталог, у якому шукати фа " або каталог з ./pg_wal, що містить такі файли\n" " (за замовчуванням: чинний каталог, ./pg_wal, $PGDATA/pg_wal)\n" -#: pg_waldump.c:769 +#: pg_waldump.c:773 #, c-format msgid " -q, --quiet do not print any output, except for errors\n" msgstr " -q, --quiet не друкувати жодного виводу, окрім помилок\n" -#: pg_waldump.c:770 +#: pg_waldump.c:774 #, c-format msgid " -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 відображати записи, згенеровані лише ресурсним менеджером RMGR;\n" " використовувати --rmgr=list для перегляду списку припустимих імен ресурсного менеджера\n" -#: pg_waldump.c:772 +#: pg_waldump.c:776 #, c-format msgid " -R, --relation=T/D/R only show records that modify blocks in relation T/D/R\n" msgstr " -R, --relation=T/D/R відобразити тільки записи, які змінюють блоки у відношенні T/D/R\n" -#: pg_waldump.c:773 +#: pg_waldump.c:777 #, c-format msgid " -s, --start=RECPTR start reading at WAL location RECPTR\n" msgstr " -s, --start=RECPTR почати читання WAL з місця RECPTR\n" -#: pg_waldump.c:774 +#: pg_waldump.c:778 #, c-format msgid " -t, --timeline=TLI timeline from which to read WAL records\n" " (default: 1 or the value used in STARTSEG)\n" msgstr " -t, --timeline=TLI часова шкала, WAL-записи якої будуть прочитані\n" " (за замовчуванням: 1 або значення, що використовується у STARTSEG)\n" -#: pg_waldump.c:776 +#: pg_waldump.c:780 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_waldump.c:777 +#: pg_waldump.c:781 #, c-format msgid " -w, --fullpage only show records with a full page write\n" msgstr " -w, --fullpage показувати записи лише з повним записом на сторінці\n" -#: pg_waldump.c:778 +#: pg_waldump.c:782 #, c-format msgid " -x, --xid=XID only show records with transaction ID XID\n" msgstr " -x, --xid=XID показати записи лише з ідентифікатором транзакцій XID\n" -#: pg_waldump.c:779 +#: pg_waldump.c:783 #, c-format msgid " -z, --stats[=record] show statistics instead of records\n" " (optionally, show per-record statistics)\n" msgstr " -z, --stats[=record] показати статистику замість записів (необов'язково, відобразити щорядкову статистику)\n" -#: pg_waldump.c:781 +#: pg_waldump.c:785 #, c-format msgid " --save-fullpage=DIR save full page images to DIR\n" msgstr " --save-fullpage=DIR зберігати повні зображення сторінок в DIR\n" -#: pg_waldump.c:782 +#: pg_waldump.c:786 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку потім вийти\n" -#: pg_waldump.c:783 +#: pg_waldump.c:787 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_waldump.c:784 +#: pg_waldump.c:788 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_waldump.c:880 +#: pg_waldump.c:884 #, c-format msgid "no arguments specified" msgstr "не вказано аргументів" -#: pg_waldump.c:896 +#: pg_waldump.c:900 #, c-format msgid "invalid block number: \"%s\"" msgstr "неприпустимий номер блоку: \"%s\"" -#: pg_waldump.c:905 pg_waldump.c:1003 +#: pg_waldump.c:909 pg_waldump.c:1007 #, c-format msgid "invalid WAL location: \"%s\"" msgstr "неприпустиме розташування WAL: \"%s\"" -#: pg_waldump.c:918 +#: pg_waldump.c:922 #, c-format msgid "invalid fork name: \"%s\"" msgstr "неприпустиме ім'я форку: \"%s\"" -#: pg_waldump.c:926 pg_waldump.c:1029 +#: pg_waldump.c:930 pg_waldump.c:1033 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "неприпустиме значення \"%s\" для параметра %s" -#: pg_waldump.c:957 +#: pg_waldump.c:961 #, c-format msgid "custom resource manager \"%s\" does not exist" msgstr "користувацький менеджер ресурсів \"%s\" не існує" -#: pg_waldump.c:978 +#: pg_waldump.c:982 #, c-format msgid "resource manager \"%s\" does not exist" msgstr "менеджер ресурсів \"%s\" не існує" -#: pg_waldump.c:993 +#: pg_waldump.c:997 #, c-format msgid "invalid relation specification: \"%s\"" msgstr "неприпустима специфікація відношення: \"%s\"" -#: pg_waldump.c:994 +#: pg_waldump.c:998 #, c-format msgid "Expecting \"tablespace OID/database OID/relation filenode\"." msgstr "Очікуємо \"tablespace OID/database OID/relation filenode\"." -#: pg_waldump.c:1036 +#: pg_waldump.c:1040 #, c-format msgid "%s must be in range %u..%u" msgstr "%s має бути в діапазоні %u..%u" -#: pg_waldump.c:1051 +#: pg_waldump.c:1055 #, c-format msgid "invalid transaction ID specification: \"%s\"" msgstr "неприпустима специфікація ідентифікатора транзакції: \"%s\"" -#: pg_waldump.c:1066 +#: pg_waldump.c:1070 #, c-format msgid "unrecognized value for option %s: %s" msgstr "нерозпізнане значення параметра %s: %s" -#: pg_waldump.c:1083 +#: pg_waldump.c:1087 #, c-format msgid "option %s requires option %s to be specified" msgstr "параметр %s вимагає використання параметру %s" -#: pg_waldump.c:1090 +#: pg_waldump.c:1094 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_waldump.c:1100 pg_waldump.c:1123 -#, c-format -msgid "could not open directory \"%s\": %m" -msgstr "не вдалося відкрити каталог \"%s\": %m" - -#: pg_waldump.c:1129 pg_waldump.c:1159 +#: pg_waldump.c:1133 pg_waldump.c:1163 #, c-format msgid "could not open file \"%s\"" msgstr "не вдалося відкрити файл \"%s\"" -#: pg_waldump.c:1139 +#: pg_waldump.c:1143 #, c-format msgid "start WAL location %X/%X is not inside file \"%s\"" msgstr "початкове розташування WAL %X/%X не всередині файлу \"%s\"" -#: pg_waldump.c:1166 +#: pg_waldump.c:1170 #, c-format msgid "ENDSEG %s is before STARTSEG %s" msgstr "ENDSEG %s перед STARTSEG %s" -#: pg_waldump.c:1181 +#: pg_waldump.c:1185 #, c-format msgid "end WAL location %X/%X is not inside file \"%s\"" msgstr "кінцеве розташування WAL %X/%X не всередині файлу \"%s\"" -#: pg_waldump.c:1193 +#: pg_waldump.c:1197 #, c-format msgid "no start WAL location given" msgstr "не задано початкове розташування WAL" -#: pg_waldump.c:1207 +#: pg_waldump.c:1211 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "недостатньо пам'яті під час виділення обробника читання WAL" -#: pg_waldump.c:1213 +#: pg_waldump.c:1217 #, c-format msgid "could not find a valid record after %X/%X" msgstr "не вдалося знайти припустимий запис після %X/%X" -#: pg_waldump.c:1223 +#: pg_waldump.c:1227 #, 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] "перший запис після %X/%X, у %X/%X, пропускається %u байт\n" -msgstr[1] "перший запис після %X/%X, у %X/%X, пропускається %u байти\n" -msgstr[2] "перший запис після %X/%X, у %X/%X, пропускається %u байтів\n" -msgstr[3] "перший запис після %X/%X, у %X/%X, пропускається %u байти\n" +msgid "first record is after %X/%X, at %X/%X, skipping over %u byte" +msgid_plural "first record is after %X/%X, at %X/%X, skipping over %u bytes" +msgstr[0] "перший запис після %X/%X, за адресою %X/%X, пропускаючи байт %u" +msgstr[1] "перший запис після %X/%X, за адресою %X/%X, пропускаючи %u байти" +msgstr[2] "перший запис після %X/%X, за адресою %X/%X, пропускаючи %u байти" +msgstr[3] "перший запис після %X/%X, за адресою %X/%X, пропускаючи %u байти" -#: pg_waldump.c:1308 +#: pg_waldump.c:1312 #, c-format msgid "error in WAL record at %X/%X: %s" msgstr "помилка у записі WAL у %X/%X: %s" -#: pg_waldump.c:1317 +#: pg_waldump.c:1321 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: xlogreader.c:621 +#: xlogreader.c:619 #, c-format msgid "invalid record offset at %X/%X: expected at least %u, got %u" msgstr "неприпустиме зміщення запису в %X/%X: очікувалось хоча б %u, отримано %u" -#: xlogreader.c:630 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по зсуву %X/%X запитано продовження запису" -#: xlogreader.c:671 xlogreader.c:1136 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: expected at least %u, got %u" msgstr "неприпустима довжина запису %X/%X: очікувалась мінімум %u, отримано %u" -#: xlogreader.c:760 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає прапорця contrecord в позиції %X/%X" -#: xlogreader.c:773 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпустима довжина contrecord %u (очікувалось %lld) на %X/%X" -#: xlogreader.c:1144 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера ресурсів %u в %X/%X" -#: xlogreader.c:1157 xlogreader.c:1173 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запис з неправильним попереднім посиланням %X/%X на %X/%X" -#: xlogreader.c:1211 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна сума даних менеджера ресурсів у запису по зсуву %X/%X" -#: xlogreader.c:1245 +#: xlogreader.c:1243 #, c-format msgid "invalid magic number %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірне магічне число %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1260 xlogreader.c:1302 +#: xlogreader.c:1258 xlogreader.c:1300 #, c-format msgid "invalid info bits %04X in WAL segment %s, LSN %X/%X, offset %u" msgstr "невірні інформаційні біти %04X в сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1276 +#: xlogreader.c:1274 #, 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 файл належить іншій системі баз даних: ідентифікатор системи баз даних де міститься WAL файл - %llu, а ідентифікатор системи баз даних pg_control - %llu" -#: xlogreader.c:1284 +#: xlogreader.c:1282 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний розмір сегменту в заголовку сторінки" -#: xlogreader.c:1290 +#: xlogreader.c:1288 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний XLOG_BLCKSZ в заголовку сторінки" -#: xlogreader.c:1322 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in WAL segment %s, LSN %X/%X, offset %u" msgstr "неочікуваний pageaddr %X/%X у сегменті WAL %s, LSN %X/%X, зміщення %u" -#: xlogreader.c:1348 +#: xlogreader.c:1346 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in WAL segment %s, LSN %X/%X, offset %u" msgstr "порушення послідовності ID лінії часу %u (після %u) у сегменті WAL %s, LSN %X/%X, зсув %u" -#: xlogreader.c:1754 +#: xlogreader.c:1749 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: xlogreader.c:1778 +#: xlogreader.c:1773 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але немає даних в позиції %X/%X" -#: xlogreader.c:1785 +#: xlogreader.c:1780 #, 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:1821 +#: xlogreader.c:1816 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE встановлений, але для пропуску задані: зсув %u, довжина %u, при довжині образу блока %u в позиції %X/%X" -#: xlogreader.c:1837 +#: xlogreader.c:1832 #, 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:1851 +#: xlogreader.c:1846 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED встановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: xlogreader.c:1866 +#: xlogreader.c:1861 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ні BKPIMAGE_HAS_HOLE, ні BKPIMAGE_COMPRESSED не встановлені, але довжина образу блока дорівнює %u в позиції %X/%X" -#: xlogreader.c:1882 +#: xlogreader.c:1877 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL встановлений, але попереднє значення не задано в позиції %X/%X" -#: xlogreader.c:1894 +#: xlogreader.c:1889 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: xlogreader.c:1961 +#: xlogreader.c:1956 #, c-format msgid "record with invalid length at %X/%X" msgstr "запис з невірною довжиною на %X/%X" -#: xlogreader.c:1987 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не вдалося знайти блок резервної копії з ID %d у записі WAL" -#: xlogreader.c:2071 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "не вдалося відновити зображення %X/%X з недійсним вказаним блоком %d" -#: xlogreader.c:2078 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "не вдалося відновити зображення %X/%X з недійсним станом, блок %d" -#: xlogreader.c:2105 xlogreader.c:2122 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "не вдалося відновити зображення в %X/%X, стиснуте %s, не підтримується збіркою, блок %d" -#: xlogreader.c:2131 +#: xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "не вдалося відновити зображення %X/%X стиснуте з невідомим методом, блок %d" -#: xlogreader.c:2139 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не вдалося розпакувати зображення на %X/%X, блок %d" diff --git a/src/bin/pg_walsummary/po/LINGUAS b/src/bin/pg_walsummary/po/LINGUAS index c675cfe1c72a6..a6af4f7c83594 100644 --- a/src/bin/pg_walsummary/po/LINGUAS +++ b/src/bin/pg_walsummary/po/LINGUAS @@ -1 +1 @@ -de ja ka +de es fr ja ka ko ru sv uk diff --git a/src/bin/pg_walsummary/po/es.po b/src/bin/pg_walsummary/po/es.po new file mode 100644 index 0000000000000..7584da24ef575 --- /dev/null +++ b/src/bin/pg_walsummary/po/es.po @@ -0,0 +1,187 @@ +# Spanish translation file for pg_walsummary +# +# Copyright (c) 2024, PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# +# Alvaro Herrera , 2024 +# +msgid "" +msgstr "" +"Project-Id-Version: pg_walsummary (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-11-16 05:23+0000\n" +"PO-Revision-Date: 2024-08-01 12:41-0400\n" +"Last-Translator: Álvaor Herrera \n" +"Language-Team: PgSQL-es-Ayuda \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Vim\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "error: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "precaución: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "detalle: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "consejo: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "memoria agotada\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "no se puede duplicar un puntero nulo (error interno)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "el valor «%s» no es válido para la opción %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s debe estar en el rango %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Pruebe «%s --help» para mayor información." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "no se especificaron archivos de entrada" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "no se pudo leer el archivo «%s»: %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "" +"%s prints the contents of a WAL summary file.\n" +"\n" +msgstr "" +"%s imprime el contenido de un archivo de resumen de WAL.\n" +"\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "Empleo:\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [OPCIÓN]... ARCHIVO...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opciones:\n" + +#: pg_walsummary.c:271 +#, c-format +msgid " -i, --individual list block numbers individually, not as ranges\n" +msgstr " -i, --individual listar números de bloque individualmente, no como rangos\n" + +#: pg_walsummary.c:272 +#, c-format +msgid " -q, --quiet don't print anything, just parse the files\n" +msgstr " -q, --quiet no escribir nada, sólo procesar los archivos\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version mostrar información de version y salir\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help mostrar esta ayuda y salir\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Reporte errores a <%s>.\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Sitio web de %s: <%s>\n" diff --git a/src/bin/pg_walsummary/po/fr.po b/src/bin/pg_walsummary/po/fr.po new file mode 100644 index 0000000000000..cdedfd51bdf22 --- /dev/null +++ b/src/bin/pg_walsummary/po/fr.po @@ -0,0 +1,185 @@ +# LANGUAGE message translation file for pg_walsummary +# Copyright (C) 2024 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_walsummary (PostgreSQL) package. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-08-23 10:22+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" +"Last-Translator: Guillaume Lelarge \n" +"Language-Team: French \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 3.5\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "erreur : " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "attention : " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "détail : " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "astuce : " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "mémoire épuisée\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "valeur « %s » invalide pour l'option %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s doit être compris entre %d et %d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Essayez « %s --help » pour plus d'informations." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "aucun fichier spécifié en entrée" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "n'a pas pu lire le fichier « %s » : %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "" +"%s prints the contents of a WAL summary file.\n" +"\n" +msgstr "" +"%s affiche le contenu d'un fichier de résumé de WAL.\n" +"\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "Usage :\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [OPTION]... FICHIER...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Options :\n" + +#: pg_walsummary.c:271 +#, c-format +msgid " -i, --individual list block numbers individually, not as ranges\n" +msgstr " -i, --individual liste les numéros de bloc individuellement, pas sous la forme d'intervalles\n" + +#: pg_walsummary.c:272 +#, c-format +msgid " -q, --quiet don't print anything, just parse the files\n" +msgstr " -q, --quiet n'affiche rien, analyse uniquement les fichiers\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version affiche la version puis quitte\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help affiche cette aide puis quitte\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Rapporter les bogues à <%s>.\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Page d'accueil de %s : <%s>\n" diff --git a/src/bin/pg_walsummary/po/ka.po b/src/bin/pg_walsummary/po/ka.po index 0552b378d6cec..90157c57b0e65 100644 --- a/src/bin/pg_walsummary/po/ka.po +++ b/src/bin/pg_walsummary/po/ka.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_walsummary (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-02-11 23:52+0000\n" -"PO-Revision-Date: 2024-02-12 04:18+0100\n" +"POT-Creation-Date: 2024-06-24 21:54+0000\n" +"PO-Revision-Date: 2024-06-25 05:47+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: \n" "Language: ka\n" @@ -37,27 +37,91 @@ msgstr "დეტალები: " msgid "hint: " msgstr "მინიშნება: " -#: pg_walsummary.c:85 pg_walsummary.c:93 +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 #, c-format -msgid "Try \"%s --help\" for more information." -msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." +msgid "out of memory\n" +msgstr "არასაკმარისი მეხსიერება\n" -#: pg_walsummary.c:92 +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 #, c-format -msgid "%s: no input files specified" -msgstr "%s: შეყვანის ფაილები მითითებული არაა" +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: pg_walsummary.c:107 +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: pg_walsummary.c:255 +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "ფაილი \"%s\" არ არსებობს: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "გადარქმევის შეცდომა %s - %s: %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "არასწორი მნიშვნელობა \"%s\" პარამეტრისთვის %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s არაა საზღვრებში %d-დან %d-მდე" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "უცნობი სინქრონიზაციის მეთოდი: \"%s\"" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "შეყვანის ფაილები მითითებული არაა" + +#: pg_walsummary.c:252 #, c-format msgid "could not read file \"%s\": %m" msgstr "ფაილის (%s) წაკითხვის შეცდომა: %m" -#: pg_walsummary.c:270 +#: pg_walsummary.c:267 #, c-format msgid "" "%s prints the contents of a WAL summary file.\n" @@ -66,17 +130,17 @@ msgstr "" "%s WAL შეჯამების ფაილის შემცველობას გამოიტანს.\n" "\n" -#: pg_walsummary.c:271 +#: pg_walsummary.c:268 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: pg_walsummary.c:272 +#: pg_walsummary.c:269 #, c-format msgid " %s [OPTION]... FILE...\n" msgstr " %s [პარამეტრი]... ფაილი...\n" -#: pg_walsummary.c:273 +#: pg_walsummary.c:270 #, c-format msgid "" "\n" @@ -85,22 +149,27 @@ msgstr "" "\n" "პარამეტრები:\n" -#: pg_walsummary.c:274 +#: pg_walsummary.c:271 #, c-format msgid " -i, --individual list block numbers individually, not as ranges\n" msgstr " -i, --individual ბლოკის ნომრების ცალ-ცალკე გამოტანა, შუალედების მაგიერ\n" -#: pg_walsummary.c:275 +#: pg_walsummary.c:272 #, c-format msgid " -q, --quiet don't print anything, just parse the files\n" msgstr " -q, --quiet ეკრანზე არაფერი გამოიტანო. უბრალოდ, ფაილები დაამუშავე\n" -#: pg_walsummary.c:276 +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" + +#: pg_walsummary.c:274 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: pg_walsummary.c:278 +#: pg_walsummary.c:276 #, c-format msgid "" "\n" @@ -109,7 +178,7 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: pg_walsummary.c:279 +#: pg_walsummary.c:277 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" diff --git a/src/bin/pg_walsummary/po/ko.po b/src/bin/pg_walsummary/po/ko.po new file mode 100644 index 0000000000000..fdd116411d8fa --- /dev/null +++ b/src/bin/pg_walsummary/po/ko.po @@ -0,0 +1,187 @@ +# Korean message translation file for pg_combinebackup +# Copyright (C) 2025 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_combinebackup (PostgreSQL) package. +# Ioseph Kim , 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: pg_walsummary (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2025-01-17 04:53+0000\n" +"PO-Revision-Date: 2025-01-16 14:00+0900\n" +"Last-Translator: Ioseph Kim \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "오류: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "경고: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "상세정보: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "힌트: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "메모리 부족\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "null 포인터를 중복할 수 없음 (내부 오류)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일 대상으로 파일 시스템 동기화를 할 수 없습니다: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일의 상태값을 알 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일 fsync 실패: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "\"%s\" 값은 %s 옵션의 값으로 적당하지 않음" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s 값은 %d부터 %d까지만 허용합니다" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "입력 파일을 지정하지 않았음" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "\"%s\" 파일을 읽을 수 없음: %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "" +"%s prints the contents of a WAL summary file.\n" +"\n" +msgstr "" +"%s 프로그램은 WAL 요약 파일의 내용을 보여줍니다.\n" +"\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "사용법:\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [OPTION]... 파일...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"옵션들:\n" + +#: pg_walsummary.c:271 +#, c-format +msgid "" +" -i, --individual list block numbers individually, not as ranges\n" +msgstr "" +" -i, --individual 블록 번호를 범위로 보여주지 않고, 각각 나일함\n" + +#: pg_walsummary.c:272 +#, c-format +msgid "" +" -q, --quiet don't print anything, just parse the files\n" +msgstr "" +" -q, --quiet 어떤 정보도 보여주지 않고, 그냥 분석만 함\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version 버전 정보를 보여주고 마침\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help 이 도움말을 보여주고 마침\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"문제점 보고 주소: <%s>\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "%s 홈페이지: <%s>\n" diff --git a/src/bin/pg_walsummary/po/ru.po b/src/bin/pg_walsummary/po/ru.po new file mode 100644 index 0000000000000..1dcd7aaf72aec --- /dev/null +++ b/src/bin/pg_walsummary/po/ru.po @@ -0,0 +1,187 @@ +# Alexander Lakhin , 2024. +msgid "" +msgstr "" +"Project-Id-Version: pg_walsummary (PostgreSQL) 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-09-02 09:31+0300\n" +"PO-Revision-Date: 2024-09-05 14:47+0300\n" +"Last-Translator: Alexander Lakhin \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"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" +"X-Generator: Lokalize 21.12.3\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "ошибка: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "предупреждение: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "подробности: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "подсказка: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "нехватка памяти\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неверное значение \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "значение %s должно быть в диапазоне %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Для дополнительной информации попробуйте \"%s --help\"." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "нет входных файлов" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не удалось прочитать файл \"%s\": %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "" +"%s prints the contents of a WAL summary file.\n" +"\n" +msgstr "" +"%s выводит содержимое файла обобщения WAL.\n" +"\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "Использование:\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [ПАРАМЕТР]... [ФАЙЛ]...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Параметры:\n" + +#: pg_walsummary.c:271 +#, c-format +msgid "" +" -i, --individual list block numbers individually, not as ranges\n" +msgstr "" +" -i, --individual выводить номера блоков по одному, не " +"диапазонами\n" + +#: pg_walsummary.c:272 +#, c-format +msgid "" +" -q, --quiet don't print anything, just parse the files\n" +msgstr "" +" -q, --quiet не выводить ничего, только разобрать файлы\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version показать версию и выйти\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показать эту справку и выйти\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Об ошибках сообщайте по адресу <%s>.\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Домашняя страница %s: <%s>\n" diff --git a/src/bin/pg_walsummary/po/sv.po b/src/bin/pg_walsummary/po/sv.po new file mode 100644 index 0000000000000..14e987f3aafe2 --- /dev/null +++ b/src/bin/pg_walsummary/po/sv.po @@ -0,0 +1,181 @@ +# Swedish message translation file for pg_walsummary +# Copyright (C) 2024 PostgreSQL Global Development Group +# This file is distributed under the same license as the pg_walsummary (PostgreSQL) package. +# Dennis Björklund , 2024. +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 17\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-07-12 17:54+0000\n" +"PO-Revision-Date: 2024-07-12 23:39+0200\n" +"Last-Translator: Dennis Björklund \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "fel: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "varning: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "detalj: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "tips: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "slut på minne\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "kan inte duplicera null-pekare (internt fel)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s måste vara i intervallet %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Försök med \"%s --help\" för mer information." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "inga inputfiler angivna" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "kunde inte läsa fil \"%s\": %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "" +"%s prints the contents of a WAL summary file.\n" +"\n" +msgstr "%s skriver ut innehållet av WAL-summeringsfilen.\n\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "Användning:\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [FLAGGA]... FIL...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Flaggor:\n" + +#: pg_walsummary.c:271 +#, c-format +msgid " -i, --individual list block numbers individually, not as ranges\n" +msgstr " -i, --individual lista blocknummer individuellt, inte som intervall\n" + +#: pg_walsummary.c:272 +#, c-format +msgid " -q, --quiet don't print anything, just parse the files\n" +msgstr " -q, --quiet skriv ingenting, bara parsa filerna\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version visa versionsinformation, avsluta sedan\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help visa denna hjälp, avsluta sedan\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"\n" +"Rapportera fel till <%s>.\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "hemsida för %s: <%s>\n" diff --git a/src/bin/pg_walsummary/po/uk.po b/src/bin/pg_walsummary/po/uk.po new file mode 100644 index 0000000000000..523b46a7f12e8 --- /dev/null +++ b/src/bin/pg_walsummary/po/uk.po @@ -0,0 +1,177 @@ +msgid "" +msgstr "" +"Project-Id-Version: postgresql\n" +"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" +"POT-Creation-Date: 2024-08-31 06:24+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" +"Last-Translator: \n" +"Language-Team: Ukrainian\n" +"Language: uk_UA\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: postgresql\n" +"X-Crowdin-Project-ID: 324573\n" +"X-Crowdin-Language: uk\n" +"X-Crowdin-File: /REL_17_STABLE/pg_walsummary.pot\n" +"X-Crowdin-File-ID: 992\n" + +#: ../../../src/common/logging.c:276 +#, c-format +msgid "error: " +msgstr "помилка: " + +#: ../../../src/common/logging.c:283 +#, c-format +msgid "warning: " +msgstr "попередження: " + +#: ../../../src/common/logging.c:294 +#, c-format +msgid "detail: " +msgstr "деталі: " + +#: ../../../src/common/logging.c:301 +#, c-format +msgid "hint: " +msgstr "підказка: " + +#: ../../common/fe_memutils.c:35 ../../common/fe_memutils.c:75 +#: ../../common/fe_memutils.c:98 ../../common/fe_memutils.c:161 +#, c-format +msgid "out of memory\n" +msgstr "недостатньо пам'яті\n" + +#: ../../common/fe_memutils.c:92 ../../common/fe_memutils.c:153 +#, c-format +msgid "cannot duplicate null pointer (internal error)\n" +msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" + +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: pg_walsummary.c:109 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + +#: ../../fe_utils/option_utils.c:69 +#, c-format +msgid "invalid value \"%s\" for option %s" +msgstr "неприпустиме значення \"%s\" для параметра %s" + +#: ../../fe_utils/option_utils.c:76 +#, c-format +msgid "%s must be in range %d..%d" +msgstr "%s має бути в діапазоні %d..%d" + +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + +#: pg_walsummary.c:87 pg_walsummary.c:95 +#, c-format +msgid "Try \"%s --help\" for more information." +msgstr "Спробуйте \"%s --help\" для додаткової інформації." + +#: pg_walsummary.c:94 +#, c-format +msgid "no input files specified" +msgstr "не вказано вхідні файли" + +#: pg_walsummary.c:252 +#, c-format +msgid "could not read file \"%s\": %m" +msgstr "не вдалося прочитати файл \"%s\": %m" + +#: pg_walsummary.c:267 +#, c-format +msgid "%s prints the contents of a WAL summary file.\n\n" +msgstr "%s друкує вміст файлу зведення WAL.\n\n" + +#: pg_walsummary.c:268 +#, c-format +msgid "Usage:\n" +msgstr "Використання:\n" + +#: pg_walsummary.c:269 +#, c-format +msgid " %s [OPTION]... FILE...\n" +msgstr " %s [OPTION]... FILE...\n" + +#: pg_walsummary.c:270 +#, c-format +msgid "\n" +"Options:\n" +msgstr "\n" +"Параметри:\n" + +#: pg_walsummary.c:271 +#, c-format +msgid " -i, --individual list block numbers individually, not as ranges\n" +msgstr " -i, --individual вивести номера блоків індивідуально, не як діапазони\n" + +#: pg_walsummary.c:272 +#, c-format +msgid " -q, --quiet don't print anything, just parse the files\n" +msgstr " -q, --quiet не друкувати нічого, просто розібрати файли\n" + +#: pg_walsummary.c:273 +#, c-format +msgid " -V, --version output version information, then exit\n" +msgstr " -V, --version вивести інформацію про версію і вийти\n" + +#: pg_walsummary.c:274 +#, c-format +msgid " -?, --help show this help, then exit\n" +msgstr " -?, --help показати цю довідку, потім вийти\n" + +#: pg_walsummary.c:276 +#, c-format +msgid "\n" +"Report bugs to <%s>.\n" +msgstr "\n" +"Повідомляти про помилки на <%s>.\n" + +#: pg_walsummary.c:277 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "Домашня сторінка %s: <%s>\n" + diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index a8a13c2b88bc7..81a5ba844ba0f 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -1922,7 +1922,7 @@ exec_command_getresults(PsqlScanState scan_state, bool active_branch) if (num_results < 0) { pg_log_error("\\getresults: invalid number of requested results"); - return PSQL_CMD_SKIP_LINE; + return PSQL_CMD_ERROR; } pset.requested_results = num_results; } diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 5249336bcf2aa..3e4e444f3fd93 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -1404,7 +1404,7 @@ DescribeQuery(const char *query, double *elapsed_msec) char *escname; if (i > 0) - appendPQExpBufferStr(&buf, ","); + appendPQExpBufferChar(&buf, ','); name = PQfname(result, i); escname = PQescapeLiteral(pset.db, name, strlen(name)); @@ -1459,7 +1459,7 @@ DescribeQuery(const char *query, double *elapsed_msec) * * If a synchronisation point is found, we can stop discarding results as * the pipeline will switch back to a clean state. If no synchronisation - * point is available, we need to stop when ther are no more pending + * point is available, we need to stop when there are no more pending * results, otherwise, calling PQgetResult() would block. */ static PGresult * @@ -1478,6 +1478,23 @@ discardAbortedPipelineResults(void) */ return res; } + else if (res != NULL && result_status == PGRES_FATAL_ERROR) + { + /* + * Found a FATAL error sent by the backend, and we cannot recover + * from this state. Instead, return the last result and let the + * outer loop handle it. + */ + PGresult *fatal_res PG_USED_FOR_ASSERTS_ONLY; + + /* + * Fetch result to consume the end of the current query being + * processed. + */ + fatal_res = PQgetResult(pset.db); + Assert(fatal_res == NULL); + return res; + } else if (res == NULL) { /* A query was processed, decrement the counters */ diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index bf565afcc4ef3..1d08268393e3c 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -1222,7 +1222,9 @@ listDefaultACLs(const char *pattern) printfPQExpBuffer(&buf, "SELECT pg_catalog.pg_get_userbyid(d.defaclrole) AS \"%s\",\n" " n.nspname AS \"%s\",\n" - " CASE d.defaclobjtype WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' END AS \"%s\",\n" + " CASE d.defaclobjtype " + " WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s'" + " WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' END AS \"%s\",\n" " ", gettext_noop("Owner"), gettext_noop("Schema"), @@ -1236,6 +1238,8 @@ listDefaultACLs(const char *pattern) gettext_noop("type"), DEFACLOBJ_NAMESPACE, gettext_noop("schema"), + DEFACLOBJ_LARGEOBJECT, + gettext_noop("large object"), gettext_noop("Type")); printACLColumn(&buf, "d.defaclacl"); @@ -2550,136 +2554,124 @@ describeOneTableDetails(const char *schemaname, PQclear(result); } - /* - * Print foreign-key constraints (there are none if no triggers, - * except if the table is partitioned, in which case the triggers - * appear in the partitions) - */ - if (tableinfo.hastriggers || - tableinfo.relkind == RELKIND_PARTITIONED_TABLE) + /* Print foreign-key constraints */ + if (pset.sversion >= 120000 && + (tableinfo.ispartition || tableinfo.relkind == RELKIND_PARTITIONED_TABLE)) { - if (pset.sversion >= 120000 && - (tableinfo.ispartition || tableinfo.relkind == RELKIND_PARTITIONED_TABLE)) - { - /* - * Put the constraints defined in this table first, followed - * by the constraints defined in ancestor partitioned tables. - */ - printfPQExpBuffer(&buf, - "SELECT conrelid = '%s'::pg_catalog.regclass AS sametable,\n" - " conname,\n" - " pg_catalog.pg_get_constraintdef(oid, true) AS condef,\n" - " conrelid::pg_catalog.regclass AS ontable\n" - " FROM pg_catalog.pg_constraint,\n" - " pg_catalog.pg_partition_ancestors('%s')\n" - " WHERE conrelid = relid AND contype = " CppAsString2(CONSTRAINT_FOREIGN) " AND conparentid = 0\n" - "ORDER BY sametable DESC, conname;", - oid, oid); - } - else - { - printfPQExpBuffer(&buf, - "SELECT true as sametable, conname,\n" - " pg_catalog.pg_get_constraintdef(r.oid, true) as condef,\n" - " conrelid::pg_catalog.regclass AS ontable\n" - "FROM pg_catalog.pg_constraint r\n" - "WHERE r.conrelid = '%s' AND r.contype = " CppAsString2(CONSTRAINT_FOREIGN) "\n", - oid); - - if (pset.sversion >= 120000) - appendPQExpBufferStr(&buf, " AND conparentid = 0\n"); - appendPQExpBufferStr(&buf, "ORDER BY conname"); - } + /* + * Put the constraints defined in this table first, followed by + * the constraints defined in ancestor partitioned tables. + */ + printfPQExpBuffer(&buf, + "SELECT conrelid = '%s'::pg_catalog.regclass AS sametable,\n" + " conname,\n" + " pg_catalog.pg_get_constraintdef(oid, true) AS condef,\n" + " conrelid::pg_catalog.regclass AS ontable\n" + " FROM pg_catalog.pg_constraint,\n" + " pg_catalog.pg_partition_ancestors('%s')\n" + " WHERE conrelid = relid AND contype = " CppAsString2(CONSTRAINT_FOREIGN) " AND conparentid = 0\n" + "ORDER BY sametable DESC, conname;", + oid, oid); + } + else + { + printfPQExpBuffer(&buf, + "SELECT true as sametable, conname,\n" + " pg_catalog.pg_get_constraintdef(r.oid, true) as condef,\n" + " conrelid::pg_catalog.regclass AS ontable\n" + "FROM pg_catalog.pg_constraint r\n" + "WHERE r.conrelid = '%s' AND r.contype = " CppAsString2(CONSTRAINT_FOREIGN) "\n", + oid); - result = PSQLexec(buf.data); - if (!result) - goto error_return; - else - tuples = PQntuples(result); + if (pset.sversion >= 120000) + appendPQExpBufferStr(&buf, " AND conparentid = 0\n"); + appendPQExpBufferStr(&buf, "ORDER BY conname"); + } - if (tuples > 0) - { - int i_sametable = PQfnumber(result, "sametable"), - i_conname = PQfnumber(result, "conname"), - i_condef = PQfnumber(result, "condef"), - i_ontable = PQfnumber(result, "ontable"); + result = PSQLexec(buf.data); + if (!result) + goto error_return; + else + tuples = PQntuples(result); - printTableAddFooter(&cont, _("Foreign-key constraints:")); - for (i = 0; i < tuples; i++) - { - /* - * Print untranslated constraint name and definition. Use - * a "TABLE tab" prefix when the constraint is defined in - * a parent partitioned table. - */ - if (strcmp(PQgetvalue(result, i, i_sametable), "f") == 0) - printfPQExpBuffer(&buf, " TABLE \"%s\" CONSTRAINT \"%s\" %s", - PQgetvalue(result, i, i_ontable), - PQgetvalue(result, i, i_conname), - PQgetvalue(result, i, i_condef)); - else - printfPQExpBuffer(&buf, " \"%s\" %s", - PQgetvalue(result, i, i_conname), - PQgetvalue(result, i, i_condef)); + if (tuples > 0) + { + int i_sametable = PQfnumber(result, "sametable"), + i_conname = PQfnumber(result, "conname"), + i_condef = PQfnumber(result, "condef"), + i_ontable = PQfnumber(result, "ontable"); - printTableAddFooter(&cont, buf.data); - } + printTableAddFooter(&cont, _("Foreign-key constraints:")); + for (i = 0; i < tuples; i++) + { + /* + * Print untranslated constraint name and definition. Use a + * "TABLE tab" prefix when the constraint is defined in a + * parent partitioned table. + */ + if (strcmp(PQgetvalue(result, i, i_sametable), "f") == 0) + printfPQExpBuffer(&buf, " TABLE \"%s\" CONSTRAINT \"%s\" %s", + PQgetvalue(result, i, i_ontable), + PQgetvalue(result, i, i_conname), + PQgetvalue(result, i, i_condef)); + else + printfPQExpBuffer(&buf, " \"%s\" %s", + PQgetvalue(result, i, i_conname), + PQgetvalue(result, i, i_condef)); + + printTableAddFooter(&cont, buf.data); } - PQclear(result); } + PQclear(result); /* print incoming foreign-key references */ - if (tableinfo.hastriggers || - tableinfo.relkind == RELKIND_PARTITIONED_TABLE) + if (pset.sversion >= 120000) { - if (pset.sversion >= 120000) - { - printfPQExpBuffer(&buf, - "SELECT conname, conrelid::pg_catalog.regclass AS ontable,\n" - " pg_catalog.pg_get_constraintdef(oid, true) AS condef\n" - " FROM pg_catalog.pg_constraint c\n" - " WHERE confrelid IN (SELECT pg_catalog.pg_partition_ancestors('%s')\n" - " UNION ALL VALUES ('%s'::pg_catalog.regclass))\n" - " AND contype = " CppAsString2(CONSTRAINT_FOREIGN) " AND conparentid = 0\n" - "ORDER BY conname;", - oid, oid); - } - else - { - printfPQExpBuffer(&buf, - "SELECT conname, conrelid::pg_catalog.regclass AS ontable,\n" - " pg_catalog.pg_get_constraintdef(oid, true) AS condef\n" - " FROM pg_catalog.pg_constraint\n" - " WHERE confrelid = %s AND contype = " CppAsString2(CONSTRAINT_FOREIGN) "\n" - "ORDER BY conname;", - oid); - } + printfPQExpBuffer(&buf, + "SELECT conname, conrelid::pg_catalog.regclass AS ontable,\n" + " pg_catalog.pg_get_constraintdef(oid, true) AS condef\n" + " FROM pg_catalog.pg_constraint c\n" + " WHERE confrelid IN (SELECT pg_catalog.pg_partition_ancestors('%s')\n" + " UNION ALL VALUES ('%s'::pg_catalog.regclass))\n" + " AND contype = " CppAsString2(CONSTRAINT_FOREIGN) " AND conparentid = 0\n" + "ORDER BY conname;", + oid, oid); + } + else + { + printfPQExpBuffer(&buf, + "SELECT conname, conrelid::pg_catalog.regclass AS ontable,\n" + " pg_catalog.pg_get_constraintdef(oid, true) AS condef\n" + " FROM pg_catalog.pg_constraint\n" + " WHERE confrelid = %s AND contype = " CppAsString2(CONSTRAINT_FOREIGN) "\n" + "ORDER BY conname;", + oid); + } - result = PSQLexec(buf.data); - if (!result) - goto error_return; - else - tuples = PQntuples(result); + result = PSQLexec(buf.data); + if (!result) + goto error_return; + else + tuples = PQntuples(result); - if (tuples > 0) - { - int i_conname = PQfnumber(result, "conname"), - i_ontable = PQfnumber(result, "ontable"), - i_condef = PQfnumber(result, "condef"); + if (tuples > 0) + { + int i_conname = PQfnumber(result, "conname"), + i_ontable = PQfnumber(result, "ontable"), + i_condef = PQfnumber(result, "condef"); - printTableAddFooter(&cont, _("Referenced by:")); - for (i = 0; i < tuples; i++) - { - printfPQExpBuffer(&buf, " TABLE \"%s\" CONSTRAINT \"%s\" %s", - PQgetvalue(result, i, i_ontable), - PQgetvalue(result, i, i_conname), - PQgetvalue(result, i, i_condef)); + printTableAddFooter(&cont, _("Referenced by:")); + for (i = 0; i < tuples; i++) + { + printfPQExpBuffer(&buf, " TABLE \"%s\" CONSTRAINT \"%s\" %s", + PQgetvalue(result, i, i_ontable), + PQgetvalue(result, i, i_conname), + PQgetvalue(result, i, i_condef)); - printTableAddFooter(&cont, buf.data); - } + printTableAddFooter(&cont, buf.data); } - PQclear(result); } + PQclear(result); /* print any row-level policies */ if (pset.sversion >= 90500) @@ -3114,7 +3106,8 @@ describeOneTableDetails(const char *schemaname, { printfPQExpBuffer(&buf, "SELECT c.conname, a.attname, c.connoinherit,\n" - " c.conislocal, c.coninhcount <> 0\n" + " c.conislocal, c.coninhcount <> 0,\n" + " c.convalidated\n" "FROM pg_catalog.pg_constraint c JOIN\n" " pg_catalog.pg_attribute a ON\n" " (a.attrelid = c.conrelid AND a.attnum = c.conkey[1])\n" @@ -3137,14 +3130,16 @@ describeOneTableDetails(const char *schemaname, { bool islocal = PQgetvalue(result, i, 3)[0] == 't'; bool inherited = PQgetvalue(result, i, 4)[0] == 't'; + bool validated = PQgetvalue(result, i, 5)[0] == 't'; - printfPQExpBuffer(&buf, " \"%s\" NOT NULL \"%s\"%s", + printfPQExpBuffer(&buf, " \"%s\" NOT NULL \"%s\"%s%s", PQgetvalue(result, i, 0), PQgetvalue(result, i, 1), PQgetvalue(result, i, 2)[0] == 't' ? " NO INHERIT" : islocal && inherited ? _(" (local, inherited)") : - inherited ? _(" (inherited)") : ""); + inherited ? _(" (inherited)") : "", + !validated ? " NOT VALID" : ""); printTableAddFooter(&cont, buf.data); } diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index fe96e3e1de99e..403b51325a72c 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -161,29 +161,16 @@ slashUsage(unsigned short int pager) initPQExpBuffer(&buf); HELP0("General\n"); - HELP0(" \\bind [PARAM]... set query parameters\n"); - HELP0(" \\bind_named STMT_NAME [PARAM]...\n" - " set query parameters for an existing prepared statement\n"); - HELP0(" \\close STMT_NAME close an existing prepared statement\n"); HELP0(" \\copyright show PostgreSQL usage and distribution terms\n"); HELP0(" \\crosstabview [COLUMNS] execute query and display result in crosstab\n"); - HELP0(" \\endpipeline exit pipeline mode\n"); HELP0(" \\errverbose show most recent error message at maximum verbosity\n"); - HELP0(" \\flush push unsent data to the server\n"); - HELP0(" \\flushrequest send a flushrequest command\n"); HELP0(" \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n"); HELP0(" \\gdesc describe result of query, without executing it\n"); - HELP0(" \\getresults [NUM_RES] read NUM_RES pending results. All pending results are\n" - " read if no argument is provided\n"); HELP0(" \\gexec execute query, then execute each value in its result\n"); HELP0(" \\gset [PREFIX] execute query and store result in psql variables\n"); HELP0(" \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n"); - HELP0(" \\parse STMT_NAME create a prepared statement\n"); HELP0(" \\q quit psql\n"); - HELP0(" \\sendpipeline send an extended query to an ongoing pipeline\n"); - HELP0(" \\startpipeline enter pipeline mode\n"); - HELP0(" \\syncpipeline add a synchronisation point to an ongoing pipeline\n"); HELP0(" \\watch [[i=]SEC] [c=N] [m=MIN]\n" " execute query every SEC seconds, up to N times,\n" " stop if less than MIN rows are returned\n"); @@ -337,6 +324,22 @@ slashUsage(unsigned short int pager) HELP0(" \\prompt [TEXT] NAME prompt user to set internal variable\n"); HELP0(" \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n"); HELP0(" \\unset NAME unset (delete) internal variable\n"); + HELP0("\n"); + + HELP0("Extended Query Protocol\n"); + HELP0(" \\bind [PARAM]... set query parameters\n"); + HELP0(" \\bind_named STMT_NAME [PARAM]...\n" + " set query parameters for an existing prepared statement\n"); + HELP0(" \\close STMT_NAME close an existing prepared statement\n"); + HELP0(" \\endpipeline exit pipeline mode\n"); + HELP0(" \\flush flush output data to the server\n"); + HELP0(" \\flushrequest send request to the server to flush its output buffer\n"); + HELP0(" \\getresults [NUM_RES] read NUM_RES pending results. All pending results are\n" + " read if no argument is provided\n"); + HELP0(" \\parse STMT_NAME create a prepared statement\n"); + HELP0(" \\sendpipeline send an extended query to an ongoing pipeline\n"); + HELP0(" \\startpipeline enter pipeline mode\n"); + HELP0(" \\syncpipeline add a synchronisation point to an ongoing pipeline\n"); /* Now we can count the lines. */ nlcount = 0; @@ -461,7 +464,7 @@ helpVariables(unsigned short int pager) " VERSION_NUM\n" " psql's version (in verbose string, short string, or numeric format)\n"); HELP0(" WATCH_INTERVAL\n" - " number of seconds \\watch by default waits between executing the query buffer\n"); + " if set to a number, overrides the default two second \\watch interval\n"); HELP0("\nDisplay settings:\n"); HELP0("Usage:\n"); diff --git a/src/bin/psql/po/cs.po b/src/bin/psql/po/cs.po index e50d301a2fff1..9b8240cb9bbc4 100644 --- a/src/bin/psql/po/cs.po +++ b/src/bin/psql/po/cs.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: psql-cs (PostgreSQL 9.3)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2020-10-31 16:14+0000\n" -"PO-Revision-Date: 2023-09-05 09:51+0200\n" +"PO-Revision-Date: 2024-06-26 09:15+0200\n" "Last-Translator: Tomas Vondra \n" "Language-Team: Czech \n" "Language: cs\n" @@ -2421,7 +2421,6 @@ msgstr "" " -v, --set=, --variable=JMÉNO=HODNOTA\n" " nastaví psql proměnnou JMÉNO na HODNOTA\n" " (e.g., -v ON_ERROR_STOP=1)\n" -"\n" #: help.c:89 #, c-format @@ -2799,7 +2798,7 @@ msgstr " \\copy ... provede SQL COPY s tokem dat na klienta\n" #, c-format msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr "" -" \\echo [-n] [ŘETĚZEC] vypsání textu na standardní výstup (-n pro potlačení\n" +" \\echo [-n] [ŘETĚZEC] vypsání textu na standardní výstup (-n pro potlačení\n" " nového řádku)\n" #: help.c:211 diff --git a/src/bin/psql/po/de.po b/src/bin/psql/po/de.po index 195c027d79cf2..78747ffc1a065 100644 --- a/src/bin/psql/po/de.po +++ b/src/bin/psql/po/de.po @@ -1,14 +1,14 @@ # German message translation file for psql -# Peter Eisentraut , 2001 - 2024. +# Peter Eisentraut , 2001 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 10:18+0000\n" -"PO-Revision-Date: 2024-06-16 19:02+0200\n" +"POT-Creation-Date: 2025-04-27 00:48+0000\n" +"PO-Revision-Date: 2025-04-27 16:04+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -17,22 +17,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -57,28 +57,28 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "konnte Pfad »%s« nicht in absolute Form auflösen: %m" -#: ../../common/exec.c:382 copy.c:326 +#: ../../common/exec.c:363 copy.c:326 #, c-format msgid "could not execute command \"%s\": %m" msgstr "konnte Befehl »%s« nicht ausführen: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "konnte nicht von Befehl »%s« lesen: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "Befehl »%s« gab keine Daten zurück" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s() fehlgeschlagen: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 -#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 +#: command.c:1636 command.c:3985 command.c:4034 command.c:4159 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -100,7 +100,7 @@ msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" msgid "could not look up effective user ID %ld: %s" msgstr "konnte effektive Benutzer-ID %ld nicht nachschlagen: %s" -#: ../../common/username.c:45 command.c:616 +#: ../../common/username.c:45 command.c:700 msgid "user does not exist" msgstr "Benutzer existiert nicht" @@ -161,8 +161,8 @@ msgstr "Unterbrochen\n" #: ../../fe_utils/print.c:3188 #, c-format -msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" -msgstr "Kann Tabelleninhalt nicht ausgeben: Anzahl der Zellen %lld ist gleich oder überschreitet Maximum %lld.\n" +msgid "Cannot print table contents: number of cells % is equal to or exceeds maximum %zu.\n" +msgstr "Kann Tabelleninhalt nicht ausgeben: Anzahl der Zellen % ist gleich oder überschreitet Maximum %zu.\n" #: ../../fe_utils/print.c:3229 #, c-format @@ -171,325 +171,434 @@ msgstr "Kann keinen weiteren Spaltenkopf zur Tabelle hinzufügen: Spaltenzahl %d #: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" -msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %lld überschritten.\n" +msgid "Cannot add cell to table content: total cell count of % exceeded.\n" +msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl % überschritten.\n" #: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "ungültiges Ausgabeformat (interner Fehler): %d" -#: ../../fe_utils/psqlscan.l:718 +#: ../../fe_utils/psqlscan.l:723 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "rekursive Auswertung der Variable »%s« wird ausgelassen" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" -#: ../../port/user.c:43 ../../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "konnte lokale Benutzer-ID %d nicht nachschlagen: %s" - -#: ../../port/user.c:48 ../../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "lokaler Benutzer mit ID %d existiert nicht" - -#: command.c:235 +#: command.c:245 #, c-format msgid "invalid command \\%s" msgstr "ungültige Anweisung \\%s" -#: command.c:237 +#: command.c:247 #, c-format msgid "Try \\? for help." msgstr "Versuchen Sie \\? für Hilfe." -#: command.c:255 +#: command.c:265 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: überflüssiges Argument »%s« ignoriert" -#: command.c:307 +#: command.c:317 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "Befehl \\%s ignoriert; verwenden Sie \\endif oder Strg-C um den aktuellen \\if-Block zu beenden" -#: command.c:614 +#: command.c:552 command.c:747 command.c:1882 command.c:2050 command.c:2363 +#: command.c:2377 command.c:2409 command.c:2498 command.c:2611 command.c:2889 +#: command.c:3151 command.c:3191 +#, c-format +msgid "\\%s: missing required argument" +msgstr "\\%s: notwendiges Argument fehlt" + +#: command.c:698 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "konnte Home-Verzeichnis für Benutzer-ID %ld nicht ermitteln: %s" -#: command.c:633 +#: command.c:717 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: konnte nicht in das Verzeichnis »%s« wechseln: %m" -#: command.c:657 +#: command.c:789 #, c-format msgid "You are currently not connected to a database.\n" msgstr "Sie sind gegenwärtig nicht mit einer Datenbank verbunden.\n" -#: command.c:667 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" -msgstr "Sie sind verbunden mit der Datenbank »%s« als Benutzer »%s« auf Adresse »%s« auf Port »%s«.\n" +#: command.c:815 +msgid "Connection Information" +msgstr "Verbindungsinformationen" -#: command.c:670 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" -msgstr "Sie sind verbunden mit der Datenbank »%s« als Benutzer »%s« via Socket in »%s« auf Port »%s«.\n" +#: command.c:816 describe.c:4721 +msgid "Parameter" +msgstr "Parameter" -#: command.c:676 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" -msgstr "Sie sind verbunden mit der Datenbank »%s« als Benutzer »%s« auf Host »%s« (Adresse »%s«) auf Port »%s«.\n" +#: command.c:817 describe.c:4722 +msgid "Value" +msgstr "Wert" -#: command.c:679 -#, c-format -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:820 describe.c:3873 +msgid "Database" +msgstr "Datenbank" + +#: command.c:824 +msgid "Client User" +msgstr "Client-Benutzer" + +#: command.c:833 command.c:848 +msgid "Host Address" +msgstr "Hostadresse" + +#: command.c:838 +msgid "Socket Directory" +msgstr "Socket-Verzeichnis" + +#: command.c:844 +msgid "Host" +msgstr "Host" + +#: command.c:854 +msgid "Server Port" +msgstr "Serverport" + +#: command.c:858 describe.c:246 describe.c:3614 describe.c:3954 +msgid "Options" +msgstr "Optionen" + +#: command.c:862 +msgid "Protocol Version" +msgstr "Protokollversion" + +#: command.c:866 +msgid "Password Used" +msgstr "Passwort verwendet" + +#: command.c:867 command.c:871 command.c:879 command.c:912 +msgid "false" +msgstr "falsch" + +#: command.c:867 command.c:871 command.c:879 command.c:912 +msgid "true" +msgstr "wahr" + +#: command.c:870 +#, fuzzy +#| msgid "GSSAPI authentication not supported" +msgid "GSSAPI Authenticated" +msgstr "Authentifizierung mit GSSAPI nicht unterstützt" + +#: command.c:874 +msgid "Backend PID" +msgstr "Backend-PID" -#: command.c:1069 command.c:1170 command.c:2675 +#: command.c:878 +msgid "TLS Connection" +msgstr "TLS-Verbindung" + +#: command.c:898 +msgid "TLS Library" +msgstr "TLS-Bibliothek" + +#: command.c:899 command.c:902 command.c:905 command.c:908 command.c:920 +#: command.c:924 command.c:4423 command.c:4424 +msgid "unknown" +msgstr "unbekannt" + +#: command.c:901 +msgid "TLS Protocol" +msgstr "TLS-Protokoll" + +#: command.c:904 +msgid "TLS Key Bits" +msgstr "TLS-Schlüssel-Bits" + +#: command.c:907 +msgid "TLS Cipher" +msgstr "TLS-Verschlüsselungsmethode" + +#: command.c:910 +msgid "TLS Compression" +msgstr "TLS-Komprimierung" + +#: command.c:914 +msgid "ALPN" +msgstr "ALPN" + +#: command.c:915 command.c:4426 +msgid "none" +msgstr "keine" + +#: command.c:1332 command.c:1433 command.c:3184 #, c-format msgid "no query buffer" msgstr "kein Anfragepuffer" -#: command.c:1102 command.c:5771 +#: command.c:1365 command.c:6307 #, c-format msgid "invalid line number: %s" msgstr "ungültige Zeilennummer: %s" -#: command.c:1248 +#: command.c:1511 msgid "No changes" msgstr "keine Änderungen" -#: command.c:1333 +#: command.c:1596 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: ungültiger Kodierungsname oder Umwandlungsprozedur nicht gefunden" -#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5877 -#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 -#: common.c:1228 common.c:1347 common.c:1385 common.c:1482 common.c:1548 -#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 -#: startup.c:304 +#: command.c:1632 command.c:2572 command.c:3981 command.c:4179 command.c:6413 +#: common.c:233 common.c:282 common.c:455 common.c:1178 common.c:1196 +#: common.c:1264 common.c:1376 common.c:1414 common.c:1705 common.c:1785 +#: copy.c:486 copy.c:731 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:309 #, c-format msgid "%s" msgstr "%s" -#: command.c:1375 +#: command.c:1639 msgid "There is no previous error." msgstr "Es gibt keinen vorangegangenen Fehler." -#: command.c:1488 +#: command.c:1742 +#, c-format +msgid "\\%s not allowed in pipeline mode" +msgstr "\\%s im Pipeline-Modus nicht erlaubt" + +#: command.c:1798 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: rechte Klammer fehlt" -#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 -#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 +#: command.c:1924 #, c-format -msgid "\\%s: missing required argument" -msgstr "\\%s: notwendiges Argument fehlt" +msgid "\\getresults: invalid number of requested results" +msgstr "" + +#: command.c:1949 +#, c-format +msgid "\\gexec not allowed in pipeline mode" +msgstr "\\gexec im Pipeline-Modus nicht erlaubt" -#: command.c:1822 +#: command.c:1975 +#, c-format +msgid "\\gset not allowed in pipeline mode" +msgstr "\\gset im Pipeline-Modus nicht erlaubt" + +#: command.c:2181 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: kann nicht nach \\else kommen" -#: command.c:1827 +#: command.c:2186 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: kein passendes \\if" -#: command.c:1891 +#: command.c:2250 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: kann nicht nach \\else kommen" -#: command.c:1896 +#: command.c:2255 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: kein passendes \\if" -#: command.c:1936 +#: command.c:2295 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: kein passendes \\if" -#: command.c:2092 +#: command.c:2473 msgid "Query buffer is empty." msgstr "Anfragepuffer ist leer." -#: command.c:2135 +#: command.c:2550 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Neues Passwort für Benutzer »%s« eingeben: " -#: command.c:2139 +#: command.c:2554 msgid "Enter it again: " msgstr "Geben Sie es noch einmal ein: " -#: command.c:2148 +#: command.c:2563 #, c-format msgid "Passwords didn't match." msgstr "Passwörter stimmten nicht überein." -#: command.c:2231 +#: command.c:2646 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: konnte Wert für Variable nicht lesen" -#: command.c:2333 +#: command.c:2748 msgid "Query buffer reset (cleared)." msgstr "Anfragepuffer wurde gelöscht." -#: command.c:2355 +#: command.c:2770 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Befehlsgeschichte in Datei »%s« geschrieben.\n" -#: command.c:2442 +#: command.c:2800 +#, c-format +msgid "\\sendpipeline must be used after \\bind or \\bind_named" +msgstr "\\sendpipeline muss nach \\bind oder \\bind_named verwendet werden" + +#: command.c:2807 +#, c-format +msgid "\\sendpipeline not allowed outside of pipeline mode" +msgstr "\\sendpipeline ist außerhalb des Pipeline-Modus nicht erlaubt" + +#: command.c:2894 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: Name der Umgebungsvariable darf kein »=« enthalten" -#: command.c:2490 +#: command.c:2942 #, c-format msgid "function name is required" msgstr "Funktionsname wird benötigt" -#: command.c:2492 +#: command.c:2944 #, c-format msgid "view name is required" msgstr "Sichtname wird benötigt" -#: command.c:2614 +#: command.c:3123 msgid "Timing is on." msgstr "Zeitmessung ist an." -#: command.c:2616 +#: command.c:3125 msgid "Timing is off." msgstr "Zeitmessung ist aus." -#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 -#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 -#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 -#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 +#: command.c:3211 command.c:3249 command.c:4694 command.c:4697 command.c:4700 +#: command.c:4706 command.c:4708 command.c:4734 command.c:4744 command.c:4756 +#: command.c:4770 command.c:4797 command.c:4855 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:797 psqlscanslash.l:809 psqlscanslash.l:827 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2729 copy.c:388 +#: command.c:3238 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2801 command.c:2867 +#: command.c:3287 +#, c-format +msgid "\\watch not allowed in pipeline mode" +msgstr "\\watch im Pipeline-Modus nicht erlaubt" + +#: command.c:3319 command.c:3385 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: Intervallwert mehrmals angegeben" -#: command.c:2811 command.c:2877 +#: command.c:3329 command.c:3395 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: falscher Intervallwert »%s«" -#: command.c:2821 +#: command.c:3339 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: Wiederholungszahl mehrmals angegeben" -#: command.c:2831 +#: command.c:3349 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: falsche Wiederholungszahl »%s«" -#: command.c:2841 +#: command.c:3359 #, c-format msgid "\\watch: minimum row count specified more than once" msgstr "\\watch: Mindestzeilenzahl mehrmals angegeben" -#: command.c:2851 +#: command.c:3369 #, c-format msgid "\\watch: incorrect minimum row count \"%s\"" msgstr "\\watch: falsche Mindestzeilenzahl »%s«" -#: command.c:2858 +#: command.c:3376 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: unbekannter Parameter »%s«" -#: command.c:3255 startup.c:243 startup.c:293 +#: command.c:3782 startup.c:248 startup.c:298 msgid "Password: " msgstr "Passwort: " -#: command.c:3260 startup.c:290 +#: command.c:3787 startup.c:295 #, c-format msgid "Password for user %s: " msgstr "Passwort für Benutzer %s: " -#: command.c:3316 +#: command.c:3843 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "Geben Sie Benutzer, Host oder Port nicht separat an, wenn eine Verbindungsangabe verwendet wird" -#: command.c:3351 +#: command.c:3878 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "Es gibt keine Verbindung, von der die Parameter verwendet werden können" -#: command.c:3658 +#: command.c:4185 #, c-format msgid "Previous connection kept" msgstr "Vorherige Verbindung wurde behalten" -#: command.c:3664 +#: command.c:4191 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3720 +#: command.c:4247 #, 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:3723 +#: command.c:4250 #, 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:3729 +#: command.c:4256 #, 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:3732 +#: command.c:4259 #, 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:3737 +#: command.c:4264 #, 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:3843 +#: command.c:4370 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, Server %s)\n" -#: command.c:3856 +#: command.c:4383 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -498,33 +607,25 @@ msgstr "" "WARNUNG: %s-Hauptversion %s, Server-Hauptversion %s.\n" " Einige Features von psql werden eventuell nicht funktionieren.\n" -#: command.c:3895 +#: command.c:4422 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" msgstr "SSL-Verbindung (Protokoll: %s, Verschlüsselungsmethode: %s, Komprimierung: %s, ALPN: %s)\n" -#: command.c:3896 command.c:3897 -msgid "unknown" -msgstr "unbekannt" - -#: command.c:3898 help.c:42 +#: command.c:4425 help.c:39 msgid "off" msgstr "aus" -#: command.c:3898 help.c:42 +#: command.c:4425 help.c:39 msgid "on" msgstr "an" -#: command.c:3899 -msgid "none" -msgstr "keine" - -#: command.c:3913 +#: command.c:4440 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "GSSAPI-verschlüsselte Verbindung\n" -#: command.c:3933 +#: command.c:4460 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -536,284 +637,284 @@ msgstr "" " richtig. Einzelheiten finden Sie auf der psql-Handbuchseite unter\n" " »Notes for Windows users«.\n" -#: command.c:4038 +#: command.c:4569 #, 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:4068 +#: command.c:4599 #, c-format msgid "could not start editor \"%s\"" msgstr "konnte Editor »%s« nicht starten" -#: command.c:4070 +#: command.c:4601 #, c-format msgid "could not start /bin/sh" msgstr "konnte /bin/sh nicht starten" -#: command.c:4120 +#: command.c:4651 #, c-format msgid "could not locate temporary directory: %s" msgstr "konnte temporäres Verzeichnis nicht finden: %s" -#: command.c:4147 +#: command.c:4678 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "konnte temporäre Datei »%s« nicht öffnen: %m" -#: command.c:4483 +#: command.c:5014 #, 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:4503 +#: command.c:5034 #, 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:4522 +#: command.c:5053 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: zulässige Linienstile sind ascii, old-ascii, unicode" -#: command.c:4537 +#: command.c:5068 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: zulässige Unicode-Rahmnenlinienstile sind single, double" -#: command.c:4552 +#: command.c:5083 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: zulässige Unicode-Spaltenlinienstile sind single, double" -#: command.c:4567 +#: command.c:5098 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: zulässige Unicode-Kopflinienstile sind single, double" -#: command.c:4619 +#: command.c:5150 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: zulässige Werte für xheader_width sind »%s« (Standard), »%s«, »%s« oder eine Zahl, die die genaue Breite angibt" -#: command.c:4636 +#: command.c:5167 #, 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:4641 +#: command.c:5172 #, 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:4779 command.c:4980 +#: command.c:5310 command.c:5511 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: unbekannte Option: %s" -#: command.c:4799 +#: command.c:5330 #, c-format msgid "Border style is %d.\n" msgstr "Rahmenstil ist %d.\n" -#: command.c:4805 +#: command.c:5336 #, c-format msgid "Target width is unset.\n" msgstr "Zielbreite ist nicht gesetzt.\n" -#: command.c:4807 +#: command.c:5338 #, c-format msgid "Target width is %d.\n" msgstr "Zielbreite ist %d.\n" -#: command.c:4814 +#: command.c:5345 #, c-format msgid "Expanded display is on.\n" msgstr "Erweiterte Anzeige ist an.\n" -#: command.c:4816 +#: command.c:5347 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Erweiterte Anzeige wird automatisch verwendet.\n" -#: command.c:4818 +#: command.c:5349 #, c-format msgid "Expanded display is off.\n" msgstr "Erweiterte Anzeige ist aus.\n" -#: command.c:4825 command.c:4827 command.c:4829 +#: command.c:5356 command.c:5358 command.c:5360 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "Erweiterte Kopfzeilenbreite ist »%s«.\n" -#: command.c:4831 +#: command.c:5362 #, c-format msgid "Expanded header width is %d.\n" msgstr "Erweiterte Kopfzeilenbreite ist %d.\n" -#: command.c:4837 +#: command.c:5368 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Feldtrennzeichen für CSV ist »%s«.\n" -#: command.c:4845 command.c:4853 +#: command.c:5376 command.c:5384 #, c-format msgid "Field separator is zero byte.\n" msgstr "Feldtrennzeichen ist ein Null-Byte.\n" -#: command.c:4847 +#: command.c:5378 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Feldtrennzeichen ist »%s«.\n" -#: command.c:4860 +#: command.c:5391 #, c-format msgid "Default footer is on.\n" msgstr "Standardfußzeile ist an.\n" -#: command.c:4862 +#: command.c:5393 #, c-format msgid "Default footer is off.\n" msgstr "Standardfußzeile ist aus.\n" -#: command.c:4868 +#: command.c:5399 #, c-format msgid "Output format is %s.\n" msgstr "Ausgabeformat ist »%s«.\n" -#: command.c:4874 +#: command.c:5405 #, c-format msgid "Line style is %s.\n" msgstr "Linienstil ist %s.\n" -#: command.c:4881 +#: command.c:5412 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null-Anzeige ist »%s«.\n" -#: command.c:4889 +#: command.c:5420 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Lokalisiertes Format für numerische Daten ist an.\n" -#: command.c:4891 +#: command.c:5422 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Lokalisiertes Format für numerische Daten ist aus.\n" -#: command.c:4898 +#: command.c:5429 #, c-format msgid "Pager is used for long output.\n" msgstr "Pager wird für lange Ausgaben verwendet.\n" -#: command.c:4900 +#: command.c:5431 #, c-format msgid "Pager is always used.\n" msgstr "Pager wird immer verwendet.\n" -#: command.c:4902 +#: command.c:5433 #, c-format msgid "Pager usage is off.\n" msgstr "Pager-Verwendung ist aus.\n" -#: command.c:4908 +#: command.c:5439 #, 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:4918 command.c:4928 +#: command.c:5449 command.c:5459 #, c-format msgid "Record separator is zero byte.\n" msgstr "Satztrennzeichen ist ein Null-Byte.\n" -#: command.c:4920 +#: command.c:5451 #, c-format msgid "Record separator is .\n" msgstr "Satztrennzeichen ist .\n" -#: command.c:4922 +#: command.c:5453 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Satztrennzeichen ist »%s«.\n" -#: command.c:4935 +#: command.c:5466 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Tabellenattribute sind »%s«.\n" -#: command.c:4938 +#: command.c:5469 #, c-format msgid "Table attributes unset.\n" msgstr "Tabellenattribute sind nicht gesetzt.\n" -#: command.c:4945 +#: command.c:5476 #, c-format msgid "Title is \"%s\".\n" msgstr "Titel ist »%s«.\n" -#: command.c:4947 +#: command.c:5478 #, c-format msgid "Title is unset.\n" msgstr "Titel ist nicht gesetzt.\n" -#: command.c:4954 +#: command.c:5485 #, c-format msgid "Tuples only is on.\n" msgstr "Nur Datenzeilen ist an.\n" -#: command.c:4956 +#: command.c:5487 #, c-format msgid "Tuples only is off.\n" msgstr "Nur Datenzeilen ist aus.\n" -#: command.c:4962 +#: command.c:5493 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Unicode-Rahmenlinienstil ist »%s«.\n" -#: command.c:4968 +#: command.c:5499 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Unicode-Spaltenlinienstil ist »%s«.\n" -#: command.c:4974 +#: command.c:5505 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Unicode-Kopflinienstil ist »%s«.\n" -#: command.c:5223 +#: command.c:5754 #, c-format msgid "\\!: failed" msgstr "\\!: fehlgeschlagen" -#: command.c:5257 +#: command.c:5792 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch kann nicht mit einer leeren Anfrage verwendet werden" -#: command.c:5289 +#: command.c:5824 #, c-format msgid "could not set timer: %m" msgstr "konnte Timer nicht setzen: %m" -#: command.c:5358 +#: command.c:5893 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (alle %gs)\n" -#: command.c:5361 +#: command.c:5896 #, c-format msgid "%s (every %gs)\n" msgstr "%s (alle %gs)\n" -#: command.c:5424 +#: command.c:5960 #, c-format msgid "could not wait for signals: %m" msgstr "konnte nicht auf Signale warten: %m" -#: command.c:5480 command.c:5487 common.c:632 common.c:639 common.c:1123 +#: command.c:6016 command.c:6023 common.c:667 common.c:674 common.c:1159 #, c-format msgid "" "/******** QUERY *********/\n" @@ -826,107 +927,107 @@ msgstr "" "/************************/\n" "\n" -#: command.c:5666 +#: command.c:6202 #, c-format msgid "\"%s.%s\" is not a view" msgstr "»%s.%s« ist keine Sicht" -#: command.c:5682 +#: command.c:6218 #, c-format msgid "could not parse reloptions array" msgstr "konnte reloptions-Array nicht interpretieren" -#: common.c:206 +#: common.c:218 #, c-format msgid "cannot escape without active connection" msgstr "Escape kann nicht ohne aktive Verbindung ausgeführt werden" -#: common.c:247 +#: common.c:259 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«" -#: common.c:351 +#: common.c:363 #, c-format msgid "connection to server was lost" msgstr "Verbindung zum Server wurde verloren" -#: common.c:355 +#: common.c:367 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "Die Verbindung zum Server wurde verloren. Versuche Reset: " -#: common.c:360 +#: common.c:373 #, c-format msgid "Failed.\n" msgstr "Fehlgeschlagen.\n" -#: common.c:377 +#: common.c:390 #, c-format msgid "Succeeded.\n" msgstr "Erfolgreich.\n" -#: common.c:430 common.c:1061 +#: common.c:445 common.c:1097 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "unerwarteter PQresultStatus: %d" -#: common.c:571 +#: common.c:606 #, c-format msgid "Time: %.3f ms\n" msgstr "Zeit: %.3f ms\n" -#: common.c:586 +#: common.c:621 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Zeit: %.3f ms (%02d:%06.3f)\n" -#: common.c:595 +#: common.c:630 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Zeit: %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:602 +#: common.c:637 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Zeit: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:626 common.c:683 common.c:1094 describe.c:6192 +#: common.c:661 common.c:718 common.c:1130 describe.c:6370 #, c-format msgid "You are currently not connected to a database." msgstr "Sie sind gegenwärtig nicht mit einer Datenbank verbunden." -#: common.c:714 +#: common.c:749 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "Asynchrone Benachrichtigung »%s« mit Daten »%s« vom Serverprozess mit PID %d empfangen.\n" -#: common.c:717 +#: common.c:752 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "Asynchrone Benachrichtigung »%s« vom Serverprozess mit PID %d empfangen.\n" -#: common.c:748 +#: common.c:783 #, c-format msgid "could not print result table: %m" msgstr "konnte Ergebnistabelle nicht ausgeben: %m" -#: common.c:768 +#: common.c:803 #, c-format msgid "no rows returned for \\gset" msgstr "keine Zeilen für \\gset zurückgegeben" -#: common.c:773 +#: common.c:808 #, c-format msgid "more than one row returned for \\gset" msgstr "mehr als eine Zeile für \\gset zurückgegeben" -#: common.c:791 +#: common.c:826 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "Versuch von \\gset in besonders behandelte Variable »%s« ignoriert" -#: common.c:1103 +#: common.c:1139 #, c-format msgid "" "/**(Single step mode: verify command)******************************************/\n" @@ -937,37 +1038,47 @@ msgstr "" "%s\n" "/**(Drücken Sie die Eingabetaste um fortzufahren oder »x« um abzubrechen)******/\n" -#: common.c:1180 +#: common.c:1216 #, c-format msgid "STATEMENT: %s" msgstr "ANWEISUNG: %s" -#: common.c:1216 +#: common.c:1252 #, c-format msgid "unexpected transaction status (%d)" msgstr "unerwarteter Transaktionsstatus (%d)" -#: common.c:1369 describe.c:2025 +#: common.c:1398 describe.c:2063 msgid "Column" msgstr "Spalte" -#: common.c:1370 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 -#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 -#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 -#: describe.c:5829 +#: common.c:1399 describe.c:176 describe.c:362 describe.c:380 describe.c:1081 +#: describe.c:1243 describe.c:1773 describe.c:1797 describe.c:2064 +#: describe.c:4057 describe.c:4321 describe.c:4568 describe.c:4728 +#: describe.c:6004 msgid "Type" msgstr "Typ" -#: common.c:1419 +#: common.c:1448 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "Der Befehl hat kein Ergebnis oder das Ergebnis hat keine Spalten.\n" -#: common.c:1511 +#: common.c:1670 +#, c-format +msgid "No pending results to get" +msgstr "" + +#: common.c:1748 #, c-format msgid "fetching results in chunked mode failed" msgstr "Empfangen der Ergebnisse im Chunked-Modus fehlgeschlagen" +#: common.c:1797 +#, c-format +msgid "Pipeline aborted, command did not run" +msgstr "" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -1020,11 +1131,11 @@ msgstr "" "Geben Sie die zu kopierenden Daten ein, gefolgt von einem Zeilenende.\n" "Beenden Sie mit einem Backslash und einem Punkt alleine auf einer Zeile, oder einem EOF-Signal." -#: copy.c:684 +#: copy.c:693 msgid "aborted because of read failure" msgstr "abgebrochen wegen Lesenfehlers" -#: copy.c:718 +#: copy.c:727 msgid "trying to exit copy mode" msgstr "versuche, den COPY-Modus zu verlassen" @@ -1073,1162 +1184,1256 @@ msgstr "\\crosstabview: zweideutiger Spaltenname: »%s«" msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: Spaltenname nicht gefunden: »%s«" -#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 -#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 -#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 -#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 -#: describe.c:5542 describe.c:5941 describe.c:6018 +#: describe.c:94 describe.c:342 describe.c:649 describe.c:826 describe.c:1073 +#: describe.c:1230 describe.c:1306 describe.c:4046 describe.c:4308 +#: describe.c:4566 describe.c:4647 describe.c:4879 describe.c:5091 +#: describe.c:5340 describe.c:5581 describe.c:5650 describe.c:5661 +#: describe.c:5717 describe.c:6116 describe.c:6196 msgid "Schema" msgstr "Schema" -#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 -#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 -#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 -#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 -#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 -#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 -#: describe.c:6016 describe.c:6243 describe.c:6551 +#: describe.c:95 describe.c:173 describe.c:234 describe.c:343 describe.c:650 +#: describe.c:827 describe.c:958 describe.c:1074 describe.c:1307 +#: describe.c:4047 describe.c:4309 describe.c:4483 describe.c:4567 +#: describe.c:4648 describe.c:4809 describe.c:4880 describe.c:5092 +#: describe.c:5213 describe.c:5341 describe.c:5582 describe.c:5651 +#: describe.c:5662 describe.c:5718 describe.c:5915 describe.c:5985 +#: describe.c:6193 describe.c:6421 describe.c:6767 msgid "Name" msgstr "Name" -#: describe.c:89 describe.c:348 describe.c:366 +#: describe.c:96 describe.c:355 describe.c:373 msgid "Result data type" msgstr "Ergebnisdatentyp" -#: describe.c:90 describe.c:349 describe.c:367 +#: describe.c:97 describe.c:356 describe.c:374 msgid "Argument data types" msgstr "Argumentdatentypen" -#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 -#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 -#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 -#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 -#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 -#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 -#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 -#: describe.c:6019 describe.c:7078 +#: describe.c:105 describe.c:112 describe.c:184 describe.c:248 describe.c:432 +#: describe.c:681 describe.c:846 describe.c:1010 describe.c:1309 +#: describe.c:2084 describe.c:3773 describe.c:4105 describe.c:4362 +#: describe.c:4507 describe.c:4580 describe.c:4657 describe.c:4822 +#: describe.c:5004 describe.c:5150 describe.c:5222 describe.c:5342 +#: describe.c:5492 describe.c:5533 describe.c:5598 describe.c:5654 +#: describe.c:5663 describe.c:5719 describe.c:5933 describe.c:6007 +#: describe.c:6130 describe.c:6197 describe.c:7303 msgid "Description" msgstr "Beschreibung" -#: describe.c:127 +#: describe.c:134 msgid "List of aggregate functions" msgstr "Liste der Aggregatfunktionen" -#: describe.c:152 +#: describe.c:159 #, c-format msgid "The server (version %s) does not support access methods." msgstr "Der Server (Version %s) unterstützt keine Zugriffsmethoden." -#: describe.c:167 +#: describe.c:174 msgid "Index" msgstr "Index" -#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 +#: describe.c:175 describe.c:4065 describe.c:4334 describe.c:6117 msgid "Table" msgstr "Tabelle" -#: describe.c:176 describe.c:5742 +#: describe.c:183 describe.c:5917 msgid "Handler" msgstr "Handler" -#: describe.c:199 +#: describe.c:206 msgid "List of access methods" msgstr "Liste der Zugriffsmethoden" -#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 -#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 -#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 -#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 -#: describe.c:7066 +#: describe.c:235 describe.c:415 describe.c:674 describe.c:959 describe.c:1229 +#: describe.c:4058 describe.c:4310 describe.c:4484 describe.c:4811 +#: describe.c:5214 describe.c:5916 describe.c:5986 describe.c:6422 +#: describe.c:6643 describe.c:6768 describe.c:6938 describe.c:7023 +#: describe.c:7291 msgid "Owner" msgstr "Eigentümer" -#: describe.c:229 +#: describe.c:236 msgid "Location" msgstr "Pfad" -#: describe.c:239 describe.c:3517 describe.c:3857 -msgid "Options" -msgstr "Optionen" - -#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 +#: describe.c:247 describe.c:672 describe.c:1008 describe.c:4104 msgid "Size" msgstr "Größe" -#: describe.c:263 +#: describe.c:270 msgid "List of tablespaces" msgstr "Liste der Tablespaces" -#: describe.c:308 +#: describe.c:315 #, c-format -msgid "\\df only takes [anptwS+] as options" -msgstr "\\df akzeptiert nur [anptwS+] als Optionen" +msgid "\\df only takes [anptwSx+] as options" +msgstr "\\df akzeptiert nur [anptwSx+] als Optionen" -#: describe.c:316 +#: describe.c:323 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df akzeptiert die Option »%c« nicht mit Serverversion %s" #. translator: "agg" is short for "aggregate" -#: describe.c:351 describe.c:369 +#: describe.c:358 describe.c:376 msgid "agg" msgstr "Agg" -#: describe.c:352 describe.c:370 +#: describe.c:359 describe.c:377 msgid "window" msgstr "Fenster" -#: describe.c:353 +#: describe.c:360 msgid "proc" msgstr "Proz" -#: describe.c:354 describe.c:372 +#: describe.c:361 describe.c:379 msgid "func" msgstr "Funk" -#: describe.c:371 describe.c:1397 +#: describe.c:378 describe.c:1439 msgid "trigger" msgstr "Trigger" -#: describe.c:383 +#: describe.c:393 msgid "immutable" msgstr "unveränderlich" -#: describe.c:384 +#: describe.c:394 msgid "stable" msgstr "stabil" -#: describe.c:385 +#: describe.c:395 msgid "volatile" msgstr "volatil" -#: describe.c:386 +#: describe.c:396 msgid "Volatility" msgstr "Volatilität" -#: describe.c:394 +#: describe.c:407 msgid "restricted" msgstr "beschränkt" -#: describe.c:395 +#: describe.c:408 msgid "safe" msgstr "sicher" -#: describe.c:396 +#: describe.c:409 msgid "unsafe" msgstr "unsicher" -#: describe.c:397 +#: describe.c:410 msgid "Parallel" msgstr "Parallel" -#: describe.c:402 +#: describe.c:416 msgid "definer" msgstr "definer" -#: describe.c:403 +#: describe.c:417 msgid "invoker" msgstr "invoker" -#: describe.c:404 +#: describe.c:418 msgid "Security" msgstr "Sicherheit" -#: describe.c:409 +#: describe.c:419 describe.c:837 describe.c:1778 describe.c:1802 +#: describe.c:1931 describe.c:4651 describe.c:4992 describe.c:5001 +#: describe.c:5139 describe.c:5144 describe.c:6926 describe.c:7125 +msgid "yes" +msgstr "ja" + +#: describe.c:420 describe.c:838 describe.c:1779 describe.c:1803 +#: describe.c:1932 describe.c:4651 describe.c:4989 describe.c:5002 +#: describe.c:5139 describe.c:6927 describe.c:7126 +msgid "no" +msgstr "nein" + +#: describe.c:421 describe.c:839 describe.c:5003 describe.c:7127 +msgid "Leakproof?" +msgstr "" + +#: describe.c:426 msgid "Language" msgstr "Sprache" -#: describe.c:412 describe.c:648 +#: describe.c:429 describe.c:671 msgid "Internal name" msgstr "Interner Name" -#: describe.c:585 +#: describe.c:608 msgid "List of functions" msgstr "Liste der Funktionen" -#: describe.c:650 +#: describe.c:673 msgid "Elements" msgstr "Elemente" -#: describe.c:701 +#: describe.c:724 msgid "List of data types" msgstr "Liste der Datentypen" -#: describe.c:804 +#: describe.c:828 msgid "Left arg type" msgstr "Linker Typ" -#: describe.c:805 +#: describe.c:829 msgid "Right arg type" msgstr "Rechter Typ" -#: describe.c:806 +#: describe.c:830 msgid "Result type" msgstr "Ergebnistyp" -#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 -#: describe.c:6996 describe.c:7000 +#: describe.c:836 describe.c:4817 describe.c:4981 describe.c:5491 +#: describe.c:7221 describe.c:7225 msgid "Function" msgstr "Funktion" -#: describe.c:891 +#: describe.c:923 msgid "List of operators" msgstr "Liste der Operatoren" -#: describe.c:926 +#: describe.c:960 msgid "Encoding" msgstr "Kodierung" -#: describe.c:930 describe.c:934 +#: describe.c:968 describe.c:972 msgid "Locale Provider" msgstr "Locale-Provider" -#: describe.c:938 describe.c:4936 +#: describe.c:976 describe.c:5111 msgid "Collate" msgstr "Sortierfolge" -#: describe.c:939 describe.c:4937 +#: describe.c:977 describe.c:5112 msgid "Ctype" msgstr "Zeichentyp" -#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 -#: describe.c:4950 +#: describe.c:981 describe.c:985 describe.c:989 describe.c:5117 describe.c:5121 +#: describe.c:5125 msgid "Locale" msgstr "Locale" -#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 +#: describe.c:993 describe.c:997 describe.c:5130 describe.c:5134 msgid "ICU Rules" msgstr "ICU-Regeln" -#: describe.c:971 +#: describe.c:1009 msgid "Tablespace" msgstr "Tablespace" -#: describe.c:996 +#: describe.c:1034 msgid "List of databases" msgstr "Liste der Datenbanken" -#: describe.c:1037 describe.c:1192 describe.c:3947 +#: describe.c:1075 describe.c:1232 describe.c:4048 msgid "table" msgstr "Tabelle" -#: describe.c:1038 describe.c:3948 +#: describe.c:1076 describe.c:4049 msgid "view" msgstr "Sicht" -#: describe.c:1039 describe.c:3949 +#: describe.c:1077 describe.c:4050 msgid "materialized view" msgstr "materialisierte Sicht" -#: describe.c:1040 describe.c:1194 describe.c:3951 +#: describe.c:1078 describe.c:1234 describe.c:4052 msgid "sequence" msgstr "Sequenz" -#: describe.c:1041 describe.c:3953 +#: describe.c:1079 describe.c:4054 msgid "foreign table" msgstr "Fremdtabelle" -#: describe.c:1042 describe.c:3954 describe.c:4165 +#: describe.c:1080 describe.c:4055 describe.c:4319 msgid "partitioned table" msgstr "partitionierte Tabelle" -#: describe.c:1058 +#: describe.c:1096 msgid "Column privileges" msgstr "Spaltenprivilegien" -#: describe.c:1089 describe.c:1123 +#: describe.c:1127 describe.c:1161 msgid "Policies" msgstr "Policys" -#: describe.c:1151 describe.c:4570 describe.c:6667 +#: describe.c:1189 describe.c:4734 describe.c:6883 msgid "Access privileges" msgstr "Zugriffsprivilegien" -#: describe.c:1196 +#: describe.c:1236 msgid "function" msgstr "Funktion" -#: describe.c:1198 +#: describe.c:1238 msgid "type" msgstr "Typ" -#: describe.c:1200 +#: describe.c:1240 msgid "schema" msgstr "Schema" -#: describe.c:1222 +#: describe.c:1242 +msgid "large object" +msgstr "Large Object" + +#: describe.c:1264 msgid "Default access privileges" msgstr "Vorgegebene Zugriffsprivilegien" -#: describe.c:1266 +#: describe.c:1308 msgid "Object" msgstr "Objekt" -#: describe.c:1280 +#: describe.c:1322 msgid "table constraint" msgstr "Tabellen-Constraint" -#: describe.c:1304 +#: describe.c:1346 msgid "domain constraint" msgstr "Domänen-Constraint" -#: describe.c:1328 +#: describe.c:1370 msgid "operator class" msgstr "Operatorklasse" -#: describe.c:1352 +#: describe.c:1394 msgid "operator family" msgstr "Operatorfamilie" -#: describe.c:1375 +#: describe.c:1417 msgid "rule" msgstr "Rule" -#: describe.c:1420 +#: describe.c:1462 msgid "Object descriptions" msgstr "Objektbeschreibungen" -#: describe.c:1485 describe.c:4072 +#: describe.c:1527 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Keine Relation namens »%s« gefunden" -#: describe.c:1488 describe.c:4075 +#: describe.c:1530 describe.c:4206 #, c-format msgid "Did not find any relations." msgstr "Keine Relationen gefunden" -#: describe.c:1684 +#: describe.c:1726 #, c-format msgid "Did not find any relation with OID %s." msgstr "Keine Relation mit OID %s gefunden" -#: describe.c:1732 describe.c:1756 +#: describe.c:1774 describe.c:1798 msgid "Start" msgstr "Start" -#: describe.c:1733 describe.c:1757 +#: describe.c:1775 describe.c:1799 msgid "Minimum" msgstr "Minimum" -#: describe.c:1734 describe.c:1758 +#: describe.c:1776 describe.c:1800 msgid "Maximum" msgstr "Maximum" -#: describe.c:1735 describe.c:1759 +#: describe.c:1777 describe.c:1801 msgid "Increment" msgstr "Inkrement" -#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 -#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 -msgid "yes" -msgstr "ja" - -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 -#: describe.c:4825 describe.c:4964 describe.c:6711 -msgid "no" -msgstr "nein" - -#: describe.c:1738 describe.c:1762 +#: describe.c:1780 describe.c:1804 msgid "Cycles?" msgstr "Zyklisch?" -#: describe.c:1739 describe.c:1763 +#: describe.c:1781 describe.c:1805 msgid "Cache" msgstr "Cache" -#: describe.c:1804 +#: describe.c:1846 #, c-format msgid "Owned by: %s" msgstr "Eigentümer: %s" -#: describe.c:1808 +#: describe.c:1850 #, c-format msgid "Sequence for identity column: %s" msgstr "Sequenz für Identitätsspalte: %s" -#: describe.c:1816 +#: describe.c:1858 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Ungeloggte Sequenz »%s.%s«" -#: describe.c:1819 +#: describe.c:1861 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Sequenz »%s.%s«" -#: describe.c:1962 +#: describe.c:2004 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Ungeloggte Tabelle »%s.%s«" -#: describe.c:1965 +#: describe.c:2007 #, c-format msgid "Table \"%s.%s\"" msgstr "Tabelle »%s.%s«" -#: describe.c:1969 +#: describe.c:2011 #, c-format msgid "View \"%s.%s\"" msgstr "Sicht »%s.%s«" -#: describe.c:1974 -#, c-format -msgid "Unlogged materialized view \"%s.%s\"" -msgstr "Ungeloggte materialisierte Sicht »%s.%s«" - -#: describe.c:1977 +#: describe.c:2015 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Materialisierte Sicht »%s.%s«" -#: describe.c:1982 +#: describe.c:2020 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Ungeloggter Index »%s.%s«" -#: describe.c:1985 +#: describe.c:2023 #, c-format msgid "Index \"%s.%s\"" msgstr "Index »%s.%s«" -#: describe.c:1990 +#: describe.c:2028 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Ungeloggter partitionierter Index »%s.%s«" -#: describe.c:1993 +#: describe.c:2031 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Partitionierter Index »%s.%s«" -#: describe.c:1997 +#: describe.c:2035 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "TOAST-Tabelle »%s.%s«" -#: describe.c:2001 +#: describe.c:2039 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Zusammengesetzter Typ »%s.%s«" -#: describe.c:2005 +#: describe.c:2043 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Fremdtabelle »%s.%s«" -#: describe.c:2010 +#: describe.c:2048 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Ungeloggte partitionierte Tabelle »%s.%s«" -#: describe.c:2013 +#: describe.c:2051 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Partitionierte Tabelle »%s.%s«" -#: describe.c:2029 describe.c:4405 +#: describe.c:2067 describe.c:4569 msgid "Collation" msgstr "Sortierfolge" -#: describe.c:2030 describe.c:4406 +#: describe.c:2068 describe.c:4570 msgid "Nullable" msgstr "NULL erlaubt?" -#: describe.c:2031 describe.c:4407 +#: describe.c:2069 describe.c:4571 msgid "Default" msgstr "Vorgabewert" -#: describe.c:2034 +#: describe.c:2072 msgid "Key?" msgstr "Schlüssel?" -#: describe.c:2036 describe.c:4723 describe.c:4734 +#: describe.c:2074 describe.c:4887 describe.c:4898 msgid "Definition" msgstr "Definition" -#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 -#: describe.c:5954 +#: describe.c:2076 describe.c:5932 describe.c:6006 describe.c:6071 +#: describe.c:6129 msgid "FDW options" msgstr "FDW-Optionen" -#: describe.c:2040 +#: describe.c:2078 msgid "Storage" msgstr "Speicherung" -#: describe.c:2042 +#: describe.c:2080 msgid "Compression" msgstr "Kompression" -#: describe.c:2044 +#: describe.c:2082 msgid "Stats target" msgstr "Statistikziel" -#: describe.c:2180 +#: describe.c:2224 #, c-format msgid "Partition of: %s %s%s" msgstr "Partition von: %s %s%s" -#: describe.c:2193 +#: describe.c:2237 msgid "No partition constraint" msgstr "Kein Partitions-Constraint" -#: describe.c:2195 +#: describe.c:2239 #, c-format msgid "Partition constraint: %s" msgstr "Partitions-Constraint: %s" -#: describe.c:2219 +#: describe.c:2263 #, c-format msgid "Partition key: %s" msgstr "Partitionsschlüssel: %s" -#: describe.c:2245 +#: describe.c:2289 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Gehört zu Tabelle: »%s.%s«" -#: describe.c:2314 +#: describe.c:2362 msgid "primary key, " msgstr "Primärschlüssel, " -#: describe.c:2317 +#: describe.c:2365 msgid "unique" msgstr "unique" -#: describe.c:2319 +#: describe.c:2367 msgid " nulls not distinct" msgstr " nulls not distinct" -#: describe.c:2320 +#: describe.c:2368 msgid ", " msgstr ", " -#: describe.c:2327 +#: describe.c:2375 #, c-format msgid "for table \"%s.%s\"" msgstr "für Tabelle »%s.%s«" -#: describe.c:2331 +#: describe.c:2379 #, c-format msgid ", predicate (%s)" msgstr ", Prädikat (%s)" -#: describe.c:2334 +#: describe.c:2382 msgid ", clustered" msgstr ", geclustert" -#: describe.c:2337 +#: describe.c:2385 msgid ", invalid" msgstr ", ungültig" -#: describe.c:2340 +#: describe.c:2388 msgid ", deferrable" msgstr ", DEFERRABLE" -#: describe.c:2343 +#: describe.c:2391 msgid ", initially deferred" msgstr ", INITIALLY DEFERRED" -#: describe.c:2346 +#: describe.c:2394 msgid ", replica identity" msgstr ", Replika-Identität" -#: describe.c:2400 +#: describe.c:2455 msgid "Indexes:" msgstr "Indexe:" -#: describe.c:2483 +#: describe.c:2543 msgid "Check constraints:" msgstr "Check-Constraints:" -#: describe.c:2551 +#: describe.c:2604 msgid "Foreign-key constraints:" msgstr "Fremdschlüssel-Constraints:" -#: describe.c:2614 +#: describe.c:2663 msgid "Referenced by:" msgstr "Fremdschlüsselverweise von:" -#: describe.c:2664 +#: describe.c:2712 msgid "Policies:" msgstr "Policys:" -#: describe.c:2667 +#: describe.c:2715 msgid "Policies (forced row security enabled):" msgstr "Policys (Sicherheit auf Zeilenebene erzwungen):" -#: describe.c:2670 +#: describe.c:2718 msgid "Policies (row security enabled): (none)" msgstr "Policys (Sicherheit auf Zeilenebene eingeschaltet): (keine)" -#: describe.c:2673 +#: describe.c:2721 msgid "Policies (forced row security enabled): (none)" msgstr "Policys (Sicherheit auf Zeilenebene erzwungen): (keine)" -#: describe.c:2676 +#: describe.c:2724 msgid "Policies (row security disabled):" msgstr "Policys (Sicherheit auf Zeilenebene ausgeschaltet):" -#: describe.c:2736 describe.c:2841 +#: describe.c:2784 describe.c:2889 msgid "Statistics objects:" msgstr "Statistikobjekte:" -#: describe.c:2943 describe.c:3096 +#: describe.c:2991 describe.c:3191 msgid "Rules:" msgstr "Regeln:" -#: describe.c:2946 +#: describe.c:2994 msgid "Disabled rules:" msgstr "Abgeschaltete Regeln:" -#: describe.c:2949 +#: describe.c:2997 msgid "Rules firing always:" msgstr "Regeln, die immer aktiv werden:" -#: describe.c:2952 +#: describe.c:3000 msgid "Rules firing on replica only:" msgstr "Regeln, die nur im Replikat aktiv werden:" -#: describe.c:3031 describe.c:5100 +#: describe.c:3079 describe.c:5275 msgid "Publications:" msgstr "Publikationen:" -#: describe.c:3079 +#: describe.c:3126 +msgid "Not-null constraints:" +msgstr "Not-Null-Constraints:" + +#: describe.c:3140 +#, fuzzy +#| msgid "No inheritance" +msgid " (local, inherited)" +msgstr "keine Vererbung" + +#: describe.c:3141 +#, fuzzy +#| msgid "No inheritance" +msgid " (inherited)" +msgstr "keine Vererbung" + +#: describe.c:3174 msgid "View definition:" msgstr "Sichtdefinition:" -#: describe.c:3242 +#: describe.c:3337 msgid "Triggers:" msgstr "Trigger:" -#: describe.c:3245 +#: describe.c:3340 msgid "Disabled user triggers:" msgstr "Abgeschaltete Benutzer-Trigger:" -#: describe.c:3248 +#: describe.c:3343 msgid "Disabled internal triggers:" msgstr "Abgeschaltete interne Trigger:" -#: describe.c:3251 +#: describe.c:3346 msgid "Triggers firing always:" msgstr "Trigger, die immer aktiv werden:" -#: describe.c:3254 +#: describe.c:3349 msgid "Triggers firing on replica only:" msgstr "Trigger, die nur im Replikat aktiv werden:" -#: describe.c:3325 +#: describe.c:3420 #, c-format msgid "Server: %s" msgstr "Server: %s" -#: describe.c:3333 +#: describe.c:3428 #, c-format msgid "FDW options: (%s)" msgstr "FDW-Optionen: (%s)" -#: describe.c:3354 +#: describe.c:3449 msgid "Inherits" msgstr "Erbt von" -#: describe.c:3419 +#: describe.c:3514 #, c-format msgid "Number of partitions: %d" msgstr "Anzahl Partitionen: %d" -#: describe.c:3428 +#: describe.c:3523 #, c-format msgid "Number of partitions: %d (Use \\d+ to list them.)" msgstr "Anzahl Partitionen: %d (Mit \\d+ alle anzeigen.)" -#: describe.c:3430 +#: describe.c:3525 #, c-format msgid "Number of child tables: %d (Use \\d+ to list them.)" msgstr "Anzahl Kindtabellen: %d (Mit \\d+ alle anzeigen.)" -#: describe.c:3437 +#: describe.c:3532 msgid "Child tables" msgstr "Kindtabellen" -#: describe.c:3437 +#: describe.c:3532 msgid "Partitions" msgstr "Partitionen" -#: describe.c:3470 +#: describe.c:3565 #, c-format msgid "Typed table of type: %s" msgstr "Getypte Tabelle vom Typ: %s" -#: describe.c:3486 +#: describe.c:3583 msgid "Replica Identity" msgstr "Replika-Identität" -#: describe.c:3499 +#: describe.c:3596 msgid "Has OIDs: yes" msgstr "Hat OIDs: ja" -#: describe.c:3508 +#: describe.c:3605 #, c-format msgid "Access method: %s" msgstr "Zugriffsmethode: %s" -#: describe.c:3585 +#: describe.c:3682 #, 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:3597 +#: describe.c:3694 #, c-format msgid ", tablespace \"%s\"" msgstr ", Tablespace »%s«" -#: describe.c:3670 +#: describe.c:3767 msgid "List of roles" msgstr "Liste der Rollen" -#: describe.c:3672 describe.c:3840 +#: describe.c:3769 describe.c:3937 msgid "Role name" msgstr "Rollenname" -#: describe.c:3673 +#: describe.c:3770 msgid "Attributes" msgstr "Attribute" -#: describe.c:3684 +#: describe.c:3781 msgid "Superuser" msgstr "Superuser" -#: describe.c:3687 +#: describe.c:3784 msgid "No inheritance" msgstr "keine Vererbung" -#: describe.c:3690 +#: describe.c:3787 msgid "Create role" msgstr "Rolle erzeugen" -#: describe.c:3693 +#: describe.c:3790 msgid "Create DB" msgstr "DB erzeugen" -#: describe.c:3696 +#: describe.c:3793 msgid "Cannot login" msgstr "kann nicht einloggen" -#: describe.c:3699 +#: describe.c:3796 msgid "Replication" msgstr "Replikation" -#: describe.c:3703 +#: describe.c:3800 msgid "Bypass RLS" msgstr "Bypass RLS" -#: describe.c:3712 +#: describe.c:3809 msgid "No connections" msgstr "keine Verbindungen" -#: describe.c:3714 +#: describe.c:3811 #, c-format msgid "%d connection" msgid_plural "%d connections" msgstr[0] "%d Verbindung" msgstr[1] "%d Verbindungen" -#: describe.c:3724 +#: describe.c:3821 msgid "Password valid until " msgstr "Passwort gültig bis " -#: describe.c:3775 +#: describe.c:3872 msgid "Role" msgstr "Rolle" -#: describe.c:3776 -msgid "Database" -msgstr "Datenbank" - -#: describe.c:3777 +#: describe.c:3874 msgid "Settings" msgstr "Einstellung" -#: describe.c:3801 +#: describe.c:3898 #, 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:3804 +#: describe.c:3901 #, c-format msgid "Did not find any settings for role \"%s\"." msgstr "Keine Einstellungen für Rolle »%s« gefunden" -#: describe.c:3807 +#: describe.c:3904 #, c-format msgid "Did not find any settings." msgstr "Keine Einstellungen gefunden" -#: describe.c:3811 +#: describe.c:3908 msgid "List of settings" msgstr "Liste der Einstellungen" -#: describe.c:3841 +#: describe.c:3938 msgid "Member of" msgstr "Mitglied von" -#: describe.c:3858 +#: describe.c:3955 msgid "Grantor" msgstr "Grantor" -#: describe.c:3884 +#: describe.c:3981 msgid "List of role grants" msgstr "Liste der Rollen-Grants" -#: describe.c:3950 +#: describe.c:4051 msgid "index" msgstr "Index" -#: describe.c:3952 +#: describe.c:4053 msgid "TOAST table" msgstr "TOAST-Tabelle" -#: describe.c:3955 describe.c:4166 +#: describe.c:4056 describe.c:4320 msgid "partitioned index" msgstr "partitionierter Index" -#: describe.c:3975 +#: describe.c:4080 msgid "permanent" msgstr "permanent" -#: describe.c:3976 +#: describe.c:4081 msgid "temporary" msgstr "temporär" -#: describe.c:3977 +#: describe.c:4082 msgid "unlogged" msgstr "ungeloggt" -#: describe.c:3978 +#: describe.c:4083 msgid "Persistence" msgstr "Persistenz" -#: describe.c:3994 +#: describe.c:4099 describe.c:4343 msgid "Access method" msgstr "Zugriffsmethode" -#: describe.c:4079 +#: describe.c:4179 +#, c-format +msgid "Did not find any relations named \"%s\"." +msgstr "Keine Relationen namens »%s« gefunden" + +#: describe.c:4182 +#, c-format +msgid "Did not find any tables named \"%s\"." +msgstr "Keine Tabellen namens »%s« gefunden" + +#: describe.c:4185 +#, c-format +msgid "Did not find any indexes named \"%s\"." +msgstr "Keine Indexe namens »%s« gefunden" + +#: describe.c:4188 +#, c-format +msgid "Did not find any views named \"%s\"." +msgstr "Keine Sichten namens »%s« gefunden" + +#: describe.c:4191 +#, c-format +msgid "Did not find any materialized views named \"%s\"." +msgstr "Keine materialisierten Sichten namens »%s« gefunden" + +#: describe.c:4194 +#, c-format +msgid "Did not find any sequences named \"%s\"." +msgstr "Keine Sequenzen namens »%s« gefunden" + +#: describe.c:4197 +#, c-format +msgid "Did not find any foreign tables named \"%s\"." +msgstr "Keine Fremdtabellen namens »%s« gefunden" + +#: describe.c:4208 +#, c-format +msgid "Did not find any tables." +msgstr "Keine Tabellen gefunden" + +#: describe.c:4210 +#, c-format +msgid "Did not find any indexes." +msgstr "Keine Indexe gefunden" + +#: describe.c:4212 +#, c-format +msgid "Did not find any views." +msgstr "Keine Sichten gefunden" + +#: describe.c:4214 +#, c-format +msgid "Did not find any materialized views." +msgstr "Keine materialisierten Sichten gefunden" + +#: describe.c:4216 +#, c-format +msgid "Did not find any sequences." +msgstr "Keine Sequenzen gefunden" + +#: describe.c:4218 +#, c-format +msgid "Did not find any foreign tables." +msgstr "Keine Fremdtabellen gefunden" + +#: describe.c:4226 msgid "List of relations" msgstr "Liste der Relationen" -#: describe.c:4127 +#: describe.c:4227 +msgid "List of tables" +msgstr "Liste der Tabellen" + +#: describe.c:4228 +msgid "List of indexes" +msgstr "Liste der Indexe" + +#: describe.c:4229 +msgid "List of views" +msgstr "Liste der Sichten" + +#: describe.c:4230 +msgid "List of materialized views" +msgstr "Liste der materialisierten Sichten" + +#: describe.c:4231 +msgid "List of sequences" +msgstr "Liste der Sequenzen" + +#: describe.c:4232 describe.c:6162 +msgid "List of foreign tables" +msgstr "Liste der Fremdtabellen" + +#: describe.c:4281 #, 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:4138 +#: describe.c:4292 msgid "List of partitioned indexes" msgstr "Liste partitionierter Indexe" -#: describe.c:4140 +#: describe.c:4294 msgid "List of partitioned tables" msgstr "Liste partitionierte Tabellen" -#: describe.c:4144 +#: describe.c:4298 msgid "List of partitioned relations" msgstr "Liste partitionierter Relationen" -#: describe.c:4175 +#: describe.c:4329 msgid "Parent name" msgstr "Elternname" -#: describe.c:4188 +#: describe.c:4349 msgid "Leaf partition size" msgstr "Größe Leaf-Partition" -#: describe.c:4191 describe.c:4197 +#: describe.c:4352 describe.c:4358 msgid "Total size" msgstr "Gesamtgröße" -#: describe.c:4321 +#: describe.c:4485 msgid "Trusted" msgstr "Vertraut" -#: describe.c:4330 +#: describe.c:4494 msgid "Internal language" msgstr "Interne Sprache" -#: describe.c:4331 +#: describe.c:4495 msgid "Call handler" msgstr "Call-Handler" -#: describe.c:4332 describe.c:5743 +#: describe.c:4496 describe.c:5918 msgid "Validator" msgstr "Validator" -#: describe.c:4333 +#: describe.c:4497 msgid "Inline handler" msgstr "Inline-Handler" -#: describe.c:4367 +#: describe.c:4531 msgid "List of languages" msgstr "Liste der Sprachen" -#: describe.c:4408 +#: describe.c:4572 msgid "Check" msgstr "Check" -#: describe.c:4451 +#: describe.c:4615 msgid "List of domains" msgstr "Liste der Domänen" -#: describe.c:4485 +#: describe.c:4649 msgid "Source" msgstr "Quelle" -#: describe.c:4486 +#: describe.c:4650 msgid "Destination" msgstr "Ziel" -#: describe.c:4488 describe.c:6712 +#: describe.c:4652 describe.c:6928 msgid "Default?" msgstr "Standard?" -#: describe.c:4529 +#: describe.c:4693 msgid "List of conversions" msgstr "Liste der Konversionen" -#: describe.c:4557 -msgid "Parameter" -msgstr "Parameter" - -#: describe.c:4558 -msgid "Value" -msgstr "Wert" - -#: describe.c:4565 +#: describe.c:4729 msgid "Context" msgstr "Kontext" -#: describe.c:4597 +#: describe.c:4761 msgid "List of configuration parameters" msgstr "Liste der Konfigurationsparameter" -#: describe.c:4599 +#: describe.c:4763 msgid "List of non-default configuration parameters" msgstr "Liste der veränderten Konfigurationsparameter" -#: describe.c:4626 +#: describe.c:4790 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "Der Server (Version %s) unterstützt keine Ereignistrigger." -#: describe.c:4646 +#: describe.c:4810 msgid "Event" msgstr "Ereignis" -#: describe.c:4648 +#: describe.c:4812 msgid "enabled" msgstr "eingeschaltet" -#: describe.c:4649 +#: describe.c:4813 msgid "replica" msgstr "Replika" -#: describe.c:4650 +#: describe.c:4814 msgid "always" msgstr "immer" -#: describe.c:4651 +#: describe.c:4815 msgid "disabled" msgstr "ausgeschaltet" -#: describe.c:4652 describe.c:6553 +#: describe.c:4816 describe.c:6769 msgid "Enabled" msgstr "Eingeschaltet" -#: describe.c:4654 +#: describe.c:4818 msgid "Tags" msgstr "Tags" -#: describe.c:4677 +#: describe.c:4841 msgid "List of event triggers" msgstr "Liste der Ereignistrigger" -#: describe.c:4704 +#: describe.c:4868 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "Der Server (Version %s) unterstützt keine erweiterten Statistiken." -#: describe.c:4741 +#: describe.c:4905 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4742 +#: describe.c:4906 msgid "Dependencies" msgstr "Abhängigkeiten" -#: describe.c:4752 +#: describe.c:4916 msgid "MCV" msgstr "MCV" -#: describe.c:4775 +#: describe.c:4939 msgid "List of extended statistics" msgstr "Liste der erweiterten Statistiken" -#: describe.c:4802 +#: describe.c:4966 msgid "Source type" msgstr "Quelltyp" -#: describe.c:4803 +#: describe.c:4967 msgid "Target type" msgstr "Zieltyp" -#: describe.c:4827 +#: describe.c:4991 msgid "in assignment" msgstr "in Zuweisung" -#: describe.c:4829 +#: describe.c:4993 msgid "Implicit?" msgstr "Implizit?" -#: describe.c:4887 +#: describe.c:5057 msgid "List of casts" msgstr "Liste der Typumwandlungen" -#: describe.c:4927 describe.c:4931 +#: describe.c:5102 describe.c:5106 msgid "Provider" msgstr "Provider" -#: describe.c:4965 describe.c:4970 +#: describe.c:5140 describe.c:5145 msgid "Deterministic?" msgstr "Deterministisch?" -#: describe.c:5009 +#: describe.c:5184 msgid "List of collations" msgstr "Liste der Sortierfolgen" -#: describe.c:5070 +#: describe.c:5245 msgid "List of schemas" msgstr "Liste der Schemas" -#: describe.c:5186 +#: describe.c:5361 msgid "List of text search parsers" msgstr "Liste der Textsucheparser" -#: describe.c:5236 +#: describe.c:5411 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Kein Textsucheparser namens »%s« gefunden" -#: describe.c:5239 +#: describe.c:5414 #, c-format msgid "Did not find any text search parsers." msgstr "Keine Textsucheparser gefunden" -#: describe.c:5314 +#: describe.c:5489 msgid "Start parse" msgstr "Parsen starten" -#: describe.c:5315 +#: describe.c:5490 msgid "Method" msgstr "Methode" -#: describe.c:5319 +#: describe.c:5494 msgid "Get next token" msgstr "Nächstes Token lesen" -#: describe.c:5321 +#: describe.c:5496 msgid "End parse" msgstr "Parsen beenden" -#: describe.c:5323 +#: describe.c:5498 msgid "Get headline" msgstr "Überschrift ermitteln" -#: describe.c:5325 +#: describe.c:5500 msgid "Get token types" msgstr "Tokentypen ermitteln" -#: describe.c:5335 +#: describe.c:5510 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Textsucheparser »%s.%s«" -#: describe.c:5338 +#: describe.c:5513 #, c-format msgid "Text search parser \"%s\"" msgstr "Textsucheparser »%s«" -#: describe.c:5357 +#: describe.c:5532 msgid "Token name" msgstr "Tokenname" -#: describe.c:5370 +#: describe.c:5545 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Tokentypen für Parser »%s.%s«" -#: describe.c:5373 +#: describe.c:5548 #, c-format msgid "Token types for parser \"%s\"" msgstr "Tokentypen für Parser »%s«" -#: describe.c:5417 +#: describe.c:5592 msgid "Template" msgstr "Vorlage" -#: describe.c:5418 +#: describe.c:5593 msgid "Init options" msgstr "Initialisierungsoptionen" -#: describe.c:5444 +#: describe.c:5619 msgid "List of text search dictionaries" msgstr "Liste der Textsuchewörterbücher" -#: describe.c:5477 +#: describe.c:5652 msgid "Init" msgstr "Init" -#: describe.c:5478 +#: describe.c:5653 msgid "Lexize" msgstr "Lexize" -#: describe.c:5509 +#: describe.c:5684 msgid "List of text search templates" msgstr "Liste der Textsuchevorlagen" -#: describe.c:5563 +#: describe.c:5738 msgid "List of text search configurations" msgstr "Liste der Textsuchekonfigurationen" -#: describe.c:5614 +#: describe.c:5789 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Keine Textsuchekonfiguration namens »%s« gefunden" -#: describe.c:5617 +#: describe.c:5792 #, c-format msgid "Did not find any text search configurations." msgstr "Keine Textsuchekonfigurationen gefunden" -#: describe.c:5683 +#: describe.c:5858 msgid "Token" msgstr "Token" -#: describe.c:5684 +#: describe.c:5859 msgid "Dictionaries" msgstr "Wörterbücher" -#: describe.c:5695 +#: describe.c:5870 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Textsuchekonfiguration »%s.%s«" -#: describe.c:5698 +#: describe.c:5873 #, c-format msgid "Text search configuration \"%s\"" msgstr "Textsuchekonfiguration »%s«" -#: describe.c:5702 +#: describe.c:5877 #, c-format msgid "" "\n" @@ -2237,7 +2442,7 @@ msgstr "" "\n" "Parser: »%s.%s«" -#: describe.c:5705 +#: describe.c:5880 #, c-format msgid "" "\n" @@ -2246,273 +2451,279 @@ msgstr "" "\n" "Parser: »%s«" -#: describe.c:5784 +#: describe.c:5959 msgid "List of foreign-data wrappers" msgstr "Liste der Fremddaten-Wrapper" -#: describe.c:5812 +#: describe.c:5987 msgid "Foreign-data wrapper" msgstr "Fremddaten-Wrapper" -#: describe.c:5830 describe.c:6017 +#: describe.c:6005 describe.c:6194 msgid "Version" msgstr "Version" -#: describe.c:5860 +#: describe.c:6035 msgid "List of foreign servers" msgstr "Liste der Fremdserver" -#: describe.c:5885 describe.c:5943 +#: describe.c:6060 describe.c:6118 msgid "Server" msgstr "Server" -#: describe.c:5886 +#: describe.c:6061 msgid "User name" msgstr "Benutzername" -#: describe.c:5915 +#: describe.c:6090 msgid "List of user mappings" msgstr "Liste der Benutzerabbildungen" -#: describe.c:5987 -msgid "List of foreign tables" -msgstr "Liste der Fremdtabellen" +#: describe.c:6195 +#, fuzzy +#| msgid "Default footer is on.\n" +msgid "Default version" +msgstr "Standardfußzeile ist an.\n" -#: describe.c:6038 +#: describe.c:6216 msgid "List of installed extensions" msgstr "Liste der installierten Erweiterungen" -#: describe.c:6086 +#: describe.c:6264 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Keine Erweiterung namens »%s« gefunden" -#: describe.c:6089 +#: describe.c:6267 #, c-format msgid "Did not find any extensions." msgstr "Keine Erweiterungen gefunden" -#: describe.c:6133 +#: describe.c:6311 msgid "Object description" msgstr "Objektbeschreibung" -#: describe.c:6142 +#: describe.c:6320 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objekte in Erweiterung »%s«" -#: describe.c:6183 +#: describe.c:6361 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "falscher qualifizierter Name (zu viele Namensteile): %s" -#: describe.c:6197 +#: describe.c:6375 #, c-format msgid "cross-database references are not implemented: %s" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: %s" -#: describe.c:6228 describe.c:6354 +#: describe.c:6406 describe.c:6542 #, c-format msgid "The server (version %s) does not support publications." msgstr "Der Server (Version %s) unterstützt keine Publikationen." -#: describe.c:6245 describe.c:6432 +#: describe.c:6423 describe.c:6644 msgid "All tables" msgstr "Alle Tabellen" -#: describe.c:6246 describe.c:6433 +#: describe.c:6424 describe.c:6645 msgid "Inserts" msgstr "Inserts" -#: describe.c:6247 describe.c:6434 +#: describe.c:6425 describe.c:6646 msgid "Updates" msgstr "Updates" -#: describe.c:6248 describe.c:6435 +#: describe.c:6426 describe.c:6647 msgid "Deletes" msgstr "Deletes" -#: describe.c:6252 describe.c:6437 +#: describe.c:6430 describe.c:6649 msgid "Truncates" msgstr "Truncates" -#: describe.c:6256 describe.c:6439 +#: describe.c:6439 describe.c:6573 describe.c:6651 +msgid "Generated columns" +msgstr "Generierte Spalten" + +#: describe.c:6443 describe.c:6653 msgid "Via root" msgstr "Über Wurzel" -#: describe.c:6277 +#: describe.c:6464 msgid "List of publications" msgstr "Liste der Publikationen" -#: describe.c:6401 +#: describe.c:6611 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Keine Publikation namens »%s« gefunden" -#: describe.c:6404 +#: describe.c:6614 #, c-format msgid "Did not find any publications." msgstr "Keine Publikationen gefunden" -#: describe.c:6428 +#: describe.c:6640 #, c-format msgid "Publication %s" msgstr "Publikation %s" -#: describe.c:6481 +#: describe.c:6697 msgid "Tables:" msgstr "Tabellen:" -#: describe.c:6493 +#: describe.c:6709 msgid "Tables from schemas:" msgstr "Tabellen aus Schemas:" -#: describe.c:6538 +#: describe.c:6754 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Der Server (Version %s) unterstützt keine Subskriptionen." -#: describe.c:6554 +#: describe.c:6770 msgid "Publication" msgstr "Publikation" -#: describe.c:6563 +#: describe.c:6779 msgid "Binary" msgstr "Binär" -#: describe.c:6572 describe.c:6576 +#: describe.c:6788 describe.c:6792 msgid "Streaming" msgstr "Streaming" -#: describe.c:6584 +#: describe.c:6800 msgid "Two-phase commit" msgstr "Two-Phase-Commit" -#: describe.c:6585 +#: describe.c:6801 msgid "Disable on error" msgstr "Bei Fehler abschalten" -#: describe.c:6592 +#: describe.c:6808 msgid "Origin" msgstr "Herkunft" -#: describe.c:6593 +#: describe.c:6809 msgid "Password required" msgstr "Passwort nötig" -#: describe.c:6594 +#: describe.c:6810 msgid "Run as owner?" msgstr "Als Eigentümer ausführen?" -#: describe.c:6599 +#: describe.c:6815 msgid "Failover" msgstr "Failover" -#: describe.c:6604 +#: describe.c:6820 msgid "Synchronous commit" msgstr "Synchroner Commit" -#: describe.c:6605 +#: describe.c:6821 msgid "Conninfo" msgstr "Verbindungsinfo" -#: describe.c:6611 +#: describe.c:6827 msgid "Skip LSN" msgstr "Skip-LSN" -#: describe.c:6637 +#: describe.c:6853 msgid "List of subscriptions" msgstr "Liste der Subskriptionen" -#: describe.c:6666 +#: describe.c:6882 msgid "(none)" msgstr "(keine)" -#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 +#: describe.c:6922 describe.c:7017 describe.c:7109 describe.c:7212 msgid "AM" msgstr "AM" -#: describe.c:6707 +#: describe.c:6923 msgid "Input type" msgstr "Eingabetyp" -#: describe.c:6708 +#: describe.c:6924 msgid "Storage type" msgstr "Storage-Typ" -#: describe.c:6709 +#: describe.c:6925 msgid "Operator class" msgstr "Operatorklasse" -#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 +#: describe.c:6937 describe.c:7018 describe.c:7110 describe.c:7213 msgid "Operator family" msgstr "Operatorfamilie" -#: describe.c:6756 +#: describe.c:6972 msgid "List of operator classes" msgstr "Liste der Operatorklassen" -#: describe.c:6803 +#: describe.c:7019 msgid "Applicable types" msgstr "Passende Typen" -#: describe.c:6844 +#: describe.c:7060 msgid "List of operator families" msgstr "Liste der Operatorfamilien" -#: describe.c:6895 +#: describe.c:7111 msgid "Operator" msgstr "Operator" -#: describe.c:6896 +#: describe.c:7112 msgid "Strategy" msgstr "Strategie" -#: describe.c:6897 +#: describe.c:7113 msgid "ordering" msgstr "Sortieren" -#: describe.c:6898 +#: describe.c:7114 msgid "search" msgstr "Suchen" -#: describe.c:6899 +#: describe.c:7115 msgid "Purpose" msgstr "Zweck" -#: describe.c:6904 +#: describe.c:7124 msgid "Sort opfamily" msgstr "Sortier-Opfamilie" -#: describe.c:6942 +#: describe.c:7167 msgid "List of operators of operator families" msgstr "Liste der Operatoren in Operatorfamilien" -#: describe.c:6989 +#: describe.c:7214 msgid "Registered left type" msgstr "Registrierter linker Typ" -#: describe.c:6990 +#: describe.c:7215 msgid "Registered right type" msgstr "Registrierter rechter Typ" -#: describe.c:6991 +#: describe.c:7216 msgid "Number" msgstr "Nummer" -#: describe.c:7034 +#: describe.c:7259 msgid "List of support functions of operator families" msgstr "Liste der Unterstützungsfunktionen in Operatorfamilien" -#: describe.c:7065 +#: describe.c:7290 msgid "ID" msgstr "ID" -#: describe.c:7085 +#: describe.c:7310 msgid "Large objects" msgstr "Large Objects" -#: help.c:63 +#: help.c:60 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2520,11 +2731,11 @@ msgstr "" "psql ist das interaktive PostgreSQL-Terminal.\n" "\n" -#: help.c:64 help.c:372 help.c:456 help.c:499 +#: help.c:61 help.c:384 help.c:470 help.c:516 msgid "Usage:\n" msgstr "Aufruf:\n" -#: help.c:65 +#: help.c:62 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2532,27 +2743,27 @@ msgstr "" " psql [OPTION]... [DBNAME [BENUTZERNAME]]\n" "\n" -#: help.c:67 +#: help.c:64 msgid "General options:\n" msgstr "Allgemeine Optionen:\n" -#: help.c:68 +#: help.c:65 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr " -c, --command=ANWEISUNG einzelne Anweisung ausführen und beenden\n" -#: help.c:69 +#: help.c:66 msgid " -d, --dbname=DBNAME database name to connect to\n" msgstr " -d, --dbname=DBNAME Datenbank, mit der verbunden werden soll\n" -#: help.c:70 +#: help.c:67 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=DATEINAME Anweisungen aus Datei ausführen und danach beenden\n" -#: help.c:71 +#: help.c:68 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list verfügbare Datenbanken auflisten und beenden\n" -#: help.c:72 +#: help.c:69 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2562,15 +2773,15 @@ msgstr "" " psql-Variable NAME auf WERT setzen\n" " (z.B. -v ON_ERROR_STOP=1)\n" -#: help.c:75 +#: help.c:72 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: help.c:76 +#: help.c:73 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc Startdatei (~/.psqlrc) nicht lesen\n" -#: help.c:77 +#: help.c:74 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" @@ -2579,19 +2790,19 @@ msgstr "" " als eine einzige Transaktion ausführen (wenn nicht\n" " interaktiv)\n" -#: help.c:79 +#: help.c:76 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=options] diese Hilfe anzeigen, dann beenden\n" -#: help.c:80 +#: help.c:77 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands Backslash-Befehle auflisten, dann beenden\n" -#: help.c:81 +#: help.c:78 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables besondere Variablen auflisten, dann beenden\n" -#: help.c:83 +#: help.c:80 msgid "" "\n" "Input and output options:\n" @@ -2599,51 +2810,51 @@ msgstr "" "\n" "Eingabe- und Ausgabeoptionen:\n" -#: help.c:84 +#: help.c:81 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all Skript-Inhalt wiedergeben\n" -#: help.c:85 +#: help.c:82 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors fehlgeschlagene Anweisungen wiedergeben\n" -#: help.c:86 +#: help.c:83 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries an den Server geschickte Anweisungen zeigen\n" -#: help.c:87 +#: help.c:84 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden von internen Anweisungen erzeugte Anfragen zeigen\n" -#: help.c:88 +#: help.c:85 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr "" " -L, --log-file=DATEINAME\n" " Sitzungslog in Datei senden\n" -#: help.c:89 +#: help.c:86 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr " -n, --no-readline erweiterte Zeilenbearbeitung (Readline) ausschalten\n" -#: help.c:90 +#: help.c:87 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=DATEINAME Anfrageergebnisse in Datei (oder |Pipe) senden\n" -#: help.c:91 +#: help.c:88 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr "" " -q, --quiet stille Ausführung (keine Mitteilungen, nur\n" " Anfrageergebnisse)\n" -#: help.c:92 +#: help.c:89 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step Einzelschrittmodus (jede Anfrage bestätigen)\n" -#: help.c:93 +#: help.c:90 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr " -S, --single-line Einzelzeilenmodus (Zeilenende beendet SQL-Anweisung)\n" -#: help.c:95 +#: help.c:92 msgid "" "\n" "Output format options:\n" @@ -2651,15 +2862,15 @@ msgstr "" "\n" "Ausgabeformatoptionen:\n" -#: help.c:96 +#: help.c:93 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align unausgerichteter Tabellenausgabemodus\n" -#: help.c:97 +#: help.c:94 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv Tabellenausgabemodus CSV (Comma-Separated Values)\n" -#: help.c:98 +#: help.c:95 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2669,17 +2880,17 @@ msgstr "" " Feldtrennzeichen für unausgerichteten Ausgabemodus\n" " (Standard: »%s«)\n" -#: help.c:101 +#: help.c:98 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html HTML-Tabellenausgabemodus\n" -#: help.c:102 +#: help.c:99 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr "" " -P, --pset=VAR[=ARG] Ausgabeoption VAR auf ARG setzen (siehe\n" " \\pset-Anweisung)\n" -#: help.c:103 +#: help.c:100 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" @@ -2688,19 +2899,19 @@ msgstr "" " Satztrennzeichen für unausgerichteten Ausgabemodus\n" " (Standard: Newline)\n" -#: help.c:105 +#: help.c:102 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only nur Datenzeilen ausgeben\n" -#: help.c:106 +#: help.c:103 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr " -T, --table-attr=TEXT HTML »table«-Tag-Attribute setzen (z.B. width, border)\n" -#: help.c:107 +#: help.c:104 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded erweiterte Tabellenausgabe einschalten\n" -#: help.c:108 +#: help.c:105 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" @@ -2709,7 +2920,7 @@ msgstr "" " Feldtrennzeichen für unausgerichteten Ausgabemodus auf\n" " Null-Byte setzen\n" -#: help.c:110 +#: help.c:107 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" @@ -2718,7 +2929,7 @@ msgstr "" " Satztrennzeichen für unausgerichteten Ausgabemodus auf\n" " Null-Byte setzen\n" -#: help.c:113 +#: help.c:110 msgid "" "\n" "Connection options:\n" @@ -2726,27 +2937,27 @@ msgstr "" "\n" "Verbindungsoptionen:\n" -#: help.c:114 +#: help.c:111 msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME Name des Datenbankservers oder Socket-Verzeichnis\n" -#: help.c:115 +#: help.c:112 msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT Port des Datenbankservers\n" -#: help.c:116 +#: help.c:113 msgid " -U, --username=USERNAME database user name\n" msgstr " -U, --username=NAME Datenbank-Benutzername\n" -#: help.c:117 +#: help.c:114 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: help.c:118 +#: help.c:115 msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password nach Passwort fragen (sollte automatisch geschehen)\n" -#: help.c:120 +#: help.c:117 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" @@ -2760,39 +2971,35 @@ msgstr "" "Abschnitt der PostgreSQL-Dokumentation.\n" "\n" -#: help.c:123 +#: help.c:120 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Berichten Sie Fehler an <%s>.\n" -#: help.c:124 +#: help.c:121 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: help.c:166 +#: help.c:163 msgid "General\n" msgstr "Allgemein\n" -#: help.c:167 -msgid " \\bind [PARAM]... set query parameters\n" -msgstr " \\bind [PARAM]... Anfrageparameter setzen\n" - -#: help.c:168 +#: help.c:164 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright PostgreSQL-Urheberrechtsinformationen zeigen\n" -#: help.c:169 +#: help.c:165 msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr "" " \\crosstabview [SPALTEN] Anfrage ausführen und Ergebnis als Kreuztabelle\n" " anzeigen\n" -#: help.c:170 +#: help.c:166 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose letzte Fehlermeldung mit vollen Details anzeigen\n" -#: help.c:171 +#: help.c:167 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2800,31 +3007,31 @@ msgstr "" " \\g [(OPT)] [DATEI] SQL-Anweisung ausführen (und Ergebnis in Datei oder\n" " |Pipe schreiben); \\g ohne Argumente entspricht Semikolon\n" -#: help.c:173 +#: help.c:169 msgid " \\gdesc describe result of query, without executing it\n" msgstr " \\gdesc Ergebnis der Anfrage beschreiben ohne sie auszuführen\n" -#: help.c:174 +#: help.c:170 msgid " \\gexec execute query, then execute each value in its result\n" msgstr "" " \\gexec Anfrage ausführen, dann jeden Ergebniswert als\n" " Anweisung ausführen\n" -#: help.c:175 +#: help.c:171 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr "" " \\gset [PREFIX] SQL-Anweisung ausführen und Ergebnis in psql-Variablen\n" " ablegen\n" -#: help.c:176 +#: help.c:172 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr " \\gx [(OPT)] [DATEI] wie \\g, aber mit erweitertem Ausgabemodus\n" -#: help.c:177 +#: help.c:173 msgid " \\q quit psql\n" msgstr " \\q psql beenden\n" -#: help.c:178 +#: help.c:174 msgid "" " \\watch [[i=]SEC] [c=N] [m=MIN]\n" " execute query every SEC seconds, up to N times,\n" @@ -2834,356 +3041,358 @@ msgstr "" " Anfrage alle SEK Sekunden ausführen, bis zu N Mal,\n" " aufhören wenn weniger als MIN Zeilen zurückgegeben werden\n" -#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 -#: help.c:303 help.c:316 help.c:325 +#: help.c:177 help.c:185 help.c:197 help.c:207 help.c:214 help.c:271 help.c:279 +#: help.c:299 help.c:312 help.c:321 help.c:327 msgid "\n" msgstr "\n" -#: help.c:183 +#: help.c:179 msgid "Help\n" msgstr "Hilfe\n" -#: help.c:185 +#: help.c:181 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] Hilfe über Backslash-Befehle anzeigen\n" -#: help.c:186 +#: help.c:182 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options Hilfe über psql-Kommandozeilenoptionen anzeigen\n" -#: help.c:187 +#: help.c:183 msgid " \\? variables show help on special variables\n" msgstr " \\? variables Hilfe über besondere Variablen anzeigen\n" -#: help.c:188 +#: help.c:184 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr " \\h [NAME] Syntaxhilfe über SQL-Anweisung, * für alle Anweisungen\n" -#: help.c:191 +#: help.c:187 msgid "Query Buffer\n" msgstr "Anfragepuffer\n" -#: help.c:192 +#: help.c:188 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr " \\e [DATEI] [ZEILE] Anfragepuffer (oder Datei) mit externem Editor bearbeiten\n" -#: help.c:193 +#: help.c:189 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [FUNKNAME [ZEILE]] Funktionsdefinition mit externem Editor bearbeiten\n" -#: help.c:194 +#: help.c:190 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [SICHTNAME [ZEILE]] Sichtdefinition mit externem Editor bearbeiten\n" -#: help.c:195 +#: help.c:191 msgid " \\p show the contents of the query buffer\n" msgstr " \\p aktuellen Inhalt der Anfragepuffers zeigen\n" -#: help.c:196 +#: help.c:192 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r Anfragepuffer löschen\n" -#: help.c:198 +#: help.c:194 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [DATEI] Befehlsgeschichte ausgeben oder in Datei schreiben\n" -#: help.c:200 +#: help.c:196 msgid " \\w FILE write query buffer to file\n" msgstr " \\w DATEI Anfragepuffer in Datei schreiben\n" -#: help.c:203 +#: help.c:199 msgid "Input/Output\n" msgstr "Eingabe/Ausgabe\n" -#: help.c:204 +#: help.c:200 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr " \\copy ... SQL COPY mit Datenstrom auf Client-Host ausführen\n" -#: help.c:205 +#: help.c:201 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [TEXT] Text auf Standardausgabe schreiben (-n für ohne Newline)\n" -#: help.c:206 +#: help.c:202 msgid " \\i FILE execute commands from file\n" msgstr " \\i DATEI Befehle aus Datei ausführen\n" -#: help.c:207 +#: help.c:203 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr " \\ir DATEI wie \\i, aber relativ zum Ort des aktuellen Skripts\n" -#: help.c:208 +#: help.c:204 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [DATEI] alle Anfrageergebnisse in Datei oder |Pipe schreiben\n" -#: help.c:209 +#: help.c:205 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr "" " \\qecho [-n] [TEXT] Text auf Ausgabestrom für \\o schreiben (-n für ohne\n" " Newline)\n" -#: help.c:210 +#: help.c:206 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr "" " \\warn [-n] [TEXT] Text auf Standardfehlerausgabe schreiben (-n für ohne\n" " Newline)\n" -#: help.c:213 +#: help.c:209 msgid "Conditional\n" msgstr "Bedingte Anweisungen\n" -#: help.c:214 +#: help.c:210 msgid " \\if EXPR begin conditional block\n" msgstr " \\if AUSDRUCK Beginn einer bedingten Anweisung\n" -#: help.c:215 +#: help.c:211 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif AUSDRUCK Alternative in aktueller bedingter Anweisung\n" -#: help.c:216 +#: help.c:212 msgid " \\else final alternative within current conditional block\n" msgstr " \\else letzte Alternative in aktueller bedingter Anweisung\n" -#: help.c:217 +#: help.c:213 msgid " \\endif end conditional block\n" msgstr " \\endif Ende einer bedingten Anweisung\n" -#: help.c:220 +#: help.c:216 msgid "Informational\n" msgstr "Informationen\n" +#: help.c:217 +msgid " (options: S = show system objects, x = expanded mode, + = additional detail)\n" +msgstr " (Optionen: S = Systemobjekte zeigen, x = erweiterte Ausgabe, + = mehr Details)\n" + +#: help.c:218 +msgid " \\d[Sx+] list tables, views, and sequences\n" +msgstr " \\d[Sx+] Tabellen, Sichten und Sequenzen auflisten\n" + +#: help.c:219 +msgid " \\d[S+] NAME describe table, view, sequence, or index\n" +msgstr " \\d[S+] NAME Tabelle, Sicht, Sequenz oder Index beschreiben\n" + +#: help.c:220 +msgid " \\da[Sx] [PATTERN] list aggregates\n" +msgstr " \\da[Sx] [MUSTER] Aggregatfunktionen auflisten\n" + #: help.c:221 -msgid " (options: S = show system objects, + = additional detail)\n" -msgstr " (Optionen: S = Systemobjekte zeigen, + = zusätzliche Details zeigen)\n" +msgid " \\dA[x+] [PATTERN] list access methods\n" +msgstr " \\dA[x+] [MUSTER] Zugriffsmethoden auflisten\n" #: help.c:222 -msgid " \\d[S+] list tables, views, and sequences\n" -msgstr " \\d[S+] Tabellen, Sichten und Sequenzen auflisten\n" +msgid " \\dAc[x+] [AMPTRN [TYPEPTRN]] list operator classes\n" +msgstr " \\dAc[x+] [AMMUST [TYPMUST]] Operatorklassen auflisten\n" #: help.c:223 -msgid " \\d[S+] NAME describe table, view, sequence, or index\n" -msgstr " \\d[S+] NAME Tabelle, Sicht, Sequenz oder Index beschreiben\n" +msgid " \\dAf[x+] [AMPTRN [TYPEPTRN]] list operator families\n" +msgstr " \\dAf[x+] [AMMUST [TYPMUST]] Operatorfamilien auflisten\n" #: help.c:224 -msgid " \\da[S] [PATTERN] list aggregates\n" -msgstr " \\da[S] [MUSTER] Aggregatfunktionen auflisten\n" +msgid " \\dAo[x+] [AMPTRN [OPFPTRN]] list operators of operator families\n" +msgstr " \\dAo[x+] [AMMUST [OPFMUST]] Operatoren in Operatorfamilien auflisten\n" #: help.c:225 -msgid " \\dA[+] [PATTERN] list access methods\n" -msgstr " \\dA[+] [MUSTER] Zugriffsmethoden auflisten\n" +msgid " \\dAp[x+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" +msgstr " \\dAp[x+] [AMMUST [OPFMUST]] Unterst.funktionen in Operatorfamilien auflisten\n" #: help.c:226 -msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" -msgstr " \\dAc[+] [AMMUST [TYPMUST]] Operatorklassen auflisten\n" +msgid " \\db[x+] [PATTERN] list tablespaces\n" +msgstr " \\db[x+] [MUSTER] Tablespaces auflisten\n" #: help.c:227 -msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" -msgstr " \\dAf[+] [AMMUST [TYPMUST]] Operatorfamilien auflisten\n" +msgid " \\dc[Sx+] [PATTERN] list conversions\n" +msgstr " \\dc[Sx+] [MUSTER] Konversionen auflisten\n" #: help.c:228 -msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" -msgstr " \\dAo[+] [AMMUST [OPFMUST]] Operatoren in Operatorfamilien auflisten\n" +msgid " \\dconfig[x+] [PATTERN] list configuration parameters\n" +msgstr " \\dconfig[x+] [MUSTER] Konfigurationsparameter auflisten\n" #: help.c:229 -msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" -msgstr " \\dAp[+] [AMMUST [OPFMUST]] Unterst.funktionen in Operatorfamilien auflisten\n" +msgid " \\dC[x+] [PATTERN] list casts\n" +msgstr " \\dC[x+] [MUSTER] Typumwandlungen (Casts) auflisten\n" #: help.c:230 -msgid " \\db[+] [PATTERN] list tablespaces\n" -msgstr " \\db[+] [MUSTER] Tablespaces auflisten\n" +msgid " \\dd[Sx] [PATTERN] show object descriptions not displayed elsewhere\n" +msgstr "" +" \\dd[Sx] [MUSTER] Objektbeschreibungen zeigen, die nirgendwo anders\n" +" erscheinen\n" #: help.c:231 -msgid " \\dc[S+] [PATTERN] list conversions\n" -msgstr " \\dc[S+] [MUSTER] Konversionen auflisten\n" +msgid " \\dD[Sx+] [PATTERN] list domains\n" +msgstr " \\dD[Sx+] [MUSTER] Domänen auflisten\n" #: help.c:232 -msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" -msgstr " \\dconfig[+] [MUSTER] Konfigurationsparameter auflisten\n" +msgid " \\ddp[x] [PATTERN] list default privileges\n" +msgstr " \\ddp[x] [MUSTER] Vorgabeprivilegien auflisten\n" #: help.c:233 -msgid " \\dC[+] [PATTERN] list casts\n" -msgstr " \\dC[+] [MUSTER] Typumwandlungen (Casts) auflisten\n" +msgid " \\dE[Sx+] [PATTERN] list foreign tables\n" +msgstr " \\dE[Sx+] [MUSTER] Fremdtabellen auflisten\n" #: help.c:234 -msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" -msgstr "" -" \\dd[S] [MUSTER] Objektbeschreibungen zeigen, die nirgendwo anders\n" -" erscheinen\n" +msgid " \\des[x+] [PATTERN] list foreign servers\n" +msgstr " \\des[x+] [MUSTER] Fremdserver auflisten\n" #: help.c:235 -msgid " \\dD[S+] [PATTERN] list domains\n" -msgstr " \\dD[S+] [MUSTER] Domänen auflisten\n" +msgid " \\det[x+] [PATTERN] list foreign tables\n" +msgstr " \\det[x+] [MUSTER] Fremdtabellen auflisten\n" #: help.c:236 -msgid " \\ddp [PATTERN] list default privileges\n" -msgstr " \\ddp [MUSTER] Vorgabeprivilegien auflisten\n" +msgid " \\deu[x+] [PATTERN] list user mappings\n" +msgstr " \\deu[x+] [MUSTER] Benutzerabbildungen auflisten\n" #: help.c:237 -msgid " \\dE[S+] [PATTERN] list foreign tables\n" -msgstr " \\dE[S+] [MUSTER] Fremdtabellen auflisten\n" +msgid " \\dew[x+] [PATTERN] list foreign-data wrappers\n" +msgstr " \\dew[x+] [MUSTER] Fremddaten-Wrapper auflisten\n" #: help.c:238 -msgid " \\des[+] [PATTERN] list foreign servers\n" -msgstr " \\des[+] [MUSTER] Fremdserver auflisten\n" - -#: help.c:239 -msgid " \\det[+] [PATTERN] list foreign tables\n" -msgstr " \\det[+] [MUSTER] Fremdtabellen auflisten\n" +msgid "" +" \\df[anptw][Sx+] [FUNCPTRN [TYPEPTRN ...]]\n" +" list [only agg/normal/procedure/trigger/window] functions\n" +msgstr "" +" \\df[anptw][Sx+] [FUNKMUSTR [TYPMUSTR ...]]\n" +" Funktionen [nur Agg/normale/Proz/Trigger/Fenster] auflisten\n" #: help.c:240 -msgid " \\deu[+] [PATTERN] list user mappings\n" -msgstr " \\deu[+] [MUSTER] Benutzerabbildungen auflisten\n" +msgid " \\dF[x+] [PATTERN] list text search configurations\n" +msgstr " \\dF[x+] [MUSTER] Textsuchekonfigurationen auflisten\n" #: help.c:241 -msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" -msgstr " \\dew[+] [MUSTER] Fremddaten-Wrapper auflisten\n" +msgid " \\dFd[x+] [PATTERN] list text search dictionaries\n" +msgstr " \\dFd[x+] [MUSTER] Textsuchewörterbücher auflisten\n" #: help.c:242 -msgid "" -" \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" -" list [only agg/normal/procedure/trigger/window] functions\n" -msgstr "" -" \\df[anptw][S+] [FUNKMUSTR [TYPMUSTR ...]]\n" -" Funktionen [nur Agg/normale/Proz/Trigger/Fenster] auflisten\n" +msgid " \\dFp[x+] [PATTERN] list text search parsers\n" +msgstr " \\dFp[x+] [MUSTER] Textsucheparser auflisten\n" + +#: help.c:243 +msgid " \\dFt[x+] [PATTERN] list text search templates\n" +msgstr " \\dFt[x+] [MUSTER] Textsuchevorlagen auflisten\n" #: help.c:244 -msgid " \\dF[+] [PATTERN] list text search configurations\n" -msgstr " \\dF[+] [MUSTER] Textsuchekonfigurationen auflisten\n" +msgid " \\dg[Sx+] [PATTERN] list roles\n" +msgstr " \\dg[Sx+] [MUSTER] Rollen auflisten\n" #: help.c:245 -msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" -msgstr " \\dFd[+] [MUSTER] Textsuchewörterbücher auflisten\n" +msgid " \\di[Sx+] [PATTERN] list indexes\n" +msgstr " \\di[Sx+] [MUSTER] Indexe auflisten\n" #: help.c:246 -msgid " \\dFp[+] [PATTERN] list text search parsers\n" -msgstr " \\dFp[+] [MUSTER] Textsucheparser auflisten\n" +msgid " \\dl[x+] list large objects, same as \\lo_list\n" +msgstr " \\dl[x+] Large Objects auflisten, wie \\lo_list\n" #: help.c:247 -msgid " \\dFt[+] [PATTERN] list text search templates\n" -msgstr " \\dFt[+] [MUSTER] Textsuchevorlagen auflisten\n" +msgid " \\dL[Sx+] [PATTERN] list procedural languages\n" +msgstr " \\dL[Sx+] [MUSTER] prozedurale Sprachen auflisten\n" #: help.c:248 -msgid " \\dg[S+] [PATTERN] list roles\n" -msgstr " \\dg[S+] [MUSTER] Rollen auflisten\n" +msgid " \\dm[Sx+] [PATTERN] list materialized views\n" +msgstr " \\dm[Sx+] [MUSTER] materialisierte Sichten auflisten\n" #: help.c:249 -msgid " \\di[S+] [PATTERN] list indexes\n" -msgstr " \\di[S+] [MUSTER] Indexe auflisten\n" +msgid " \\dn[Sx+] [PATTERN] list schemas\n" +msgstr " \\dn[Sx+] [MUSTER] Schemas auflisten\n" #: help.c:250 -msgid " \\dl[+] list large objects, same as \\lo_list\n" -msgstr " \\dl[+] Large Objects auflisten, wie \\lo_list\n" - -#: help.c:251 -msgid " \\dL[S+] [PATTERN] list procedural languages\n" -msgstr " \\dL[S+] [MUSTER] prozedurale Sprachen auflisten\n" +msgid "" +" \\do[Sx+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" +" list operators\n" +msgstr "" +" \\do[Sx+] [OPMUST [TYPMUST [TYPMUST]]]\n" +" Operatoren auflisten\n" #: help.c:252 -msgid " \\dm[S+] [PATTERN] list materialized views\n" -msgstr " \\dm[S+] [MUSTER] materialisierte Sichten auflisten\n" +msgid " \\dO[Sx+] [PATTERN] list collations\n" +msgstr " \\dO[Sx+] [MUSTER] Sortierfolgen auflisten\n" #: help.c:253 -msgid " \\dn[S+] [PATTERN] list schemas\n" -msgstr " \\dn[S+] [MUSTER] Schemas auflisten\n" +msgid " \\dp[Sx] [PATTERN] list table, view, and sequence access privileges\n" +msgstr "" +" \\dp[Sx] [MUSTER] Zugriffsprivilegien für Tabellen, Sichten und\n" +" Sequenzen auflisten\n" #: help.c:254 -msgid "" -" \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" -" list operators\n" +msgid " \\dP[itnx+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr "" -" \\do[S+] [OPMUST [TYPMUST [TYPMUST]]]\n" -" Operatoren auflisten\n" +" \\dP[itnx+] [MUSTER] partitionierte Relationen [nur Indexe/Tabellen]\n" +" auflisten [n=geschachtelt]\n" + +#: help.c:255 +msgid " \\drds[x] [ROLEPTRN [DBPTRN]] list per-database role settings\n" +msgstr "" +" \\drds[x] [ROLLMUST [DBMUST]]\n" +" datenbankspezifische Rolleneinstellungen auflisten\n" #: help.c:256 -msgid " \\dO[S+] [PATTERN] list collations\n" -msgstr " \\dO[S+] [MUSTER] Sortierfolgen auflisten\n" +msgid " \\drg[Sx] [PATTERN] list role grants\n" +msgstr " \\drg[Sx] [MUSTER] Rollen-Grants auflisten\n" #: help.c:257 -msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" -msgstr "" -" \\dp[S] [MUSTER] Zugriffsprivilegien für Tabellen, Sichten und\n" -" Sequenzen auflisten\n" +msgid " \\dRp[x+] [PATTERN] list replication publications\n" +msgstr " \\dRp[x+] [MUSTER] Replikationspublikationen auflisten\n" #: help.c:258 -msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" -msgstr "" -" \\dP[itn+] [MUSTER] partitionierte Relationen [nur Indexe/Tabellen]\n" -" auflisten [n=geschachtelt]\n" +msgid " \\dRs[x+] [PATTERN] list replication subscriptions\n" +msgstr " \\dRs[x+] [MUSTER] Replikationssubskriptionen auflisten\n" #: help.c:259 -msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" -msgstr " \\drds [ROLLMUST [DBMUST]] datenbankspezifische Rolleneinstellungen auflisten\n" +msgid " \\ds[Sx+] [PATTERN] list sequences\n" +msgstr " \\ds[Sx+] [MUSTER] Sequenzen auflisten\n" #: help.c:260 -msgid " \\drg[S] [PATTERN] list role grants\n" -msgstr " \\drg[S] [MUSTER] Rollen-Grants auflisten\n" +msgid " \\dt[Sx+] [PATTERN] list tables\n" +msgstr " \\dt[Sx+] [MUSTER] Tabellen auflisten\n" #: help.c:261 -msgid " \\dRp[+] [PATTERN] list replication publications\n" -msgstr " \\dRp[+] [MUSTER] Replikationspublikationen auflisten\n" +msgid " \\dT[Sx+] [PATTERN] list data types\n" +msgstr " \\dT[Sx+] [MUSTER] Datentypen auflisten\n" #: help.c:262 -msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" -msgstr " \\dRs[+] [MUSTER] Replikationssubskriptionen auflisten\n" +msgid " \\du[Sx+] [PATTERN] list roles\n" +msgstr " \\du[Sx+] [MUSTER] Rollen auflisten\n" #: help.c:263 -msgid " \\ds[S+] [PATTERN] list sequences\n" -msgstr " \\ds[S+] [MUSTER] Sequenzen auflisten\n" +msgid " \\dv[Sx+] [PATTERN] list views\n" +msgstr " \\dv[Sx+] [MUSTER] Sichten auflisten\n" #: help.c:264 -msgid " \\dt[S+] [PATTERN] list tables\n" -msgstr " \\dt[S+] [MUSTER] Tabellen auflisten\n" +msgid " \\dx[x+] [PATTERN] list extensions\n" +msgstr " \\dx[x+] [MUSTER] Erweiterungen auflisten\n" #: help.c:265 -msgid " \\dT[S+] [PATTERN] list data types\n" -msgstr " \\dT[S+] [MUSTER] Datentypen auflisten\n" +msgid " \\dX[x] [PATTERN] list extended statistics\n" +msgstr " \\dX[x] [MUSTER] erweiterte Statistiken auflisten\n" #: help.c:266 -msgid " \\du[S+] [PATTERN] list roles\n" -msgstr " \\du[S+] [MUSTER] Rollen auflisten\n" +msgid " \\dy[x+] [PATTERN] list event triggers\n" +msgstr " \\dy[x+] [MUSTER] Ereignistrigger auflisten\n" #: help.c:267 -msgid " \\dv[S+] [PATTERN] list views\n" -msgstr " \\dv[S+] [MUSTER] Sichten auflisten\n" +msgid " \\l[x+] [PATTERN] list databases\n" +msgstr " \\l[x+] [MUSTER] Datenbanken auflisten\n" #: help.c:268 -msgid " \\dx[+] [PATTERN] list extensions\n" -msgstr " \\dx[+] [MUSTER] Erweiterungen auflisten\n" +msgid " \\sf[+] FUNCNAME show a function's definition\n" +msgstr " \\sf[+] FUNKNAME Funktionsdefinition zeigen\n" #: help.c:269 -msgid " \\dX [PATTERN] list extended statistics\n" -msgstr " \\dX [MUSTER] erweiterte Statistiken auflisten\n" +msgid " \\sv[+] VIEWNAME show a view's definition\n" +msgstr " \\sv[+] SICHTNAME Sichtdefinition zeigen\n" #: help.c:270 -msgid " \\dy[+] [PATTERN] list event triggers\n" -msgstr " \\dy[+] [MUSTER] Ereignistrigger auflisten\n" - -#: help.c:271 -msgid " \\l[+] [PATTERN] list databases\n" -msgstr " \\l[+] [MUSTER] Datenbanken auflisten\n" - -#: help.c:272 -msgid " \\sf[+] FUNCNAME show a function's definition\n" -msgstr " \\sf[+] FUNKNAME Funktionsdefinition zeigen\n" +msgid " \\z[Sx] [PATTERN] same as \\dp\n" +msgstr " \\z[Sx] [MUSTER] äquivalent zu \\dp\n" #: help.c:273 -msgid " \\sv[+] VIEWNAME show a view's definition\n" -msgstr " \\sv[+] SICHTNAME Sichtdefinition zeigen\n" - -#: help.c:274 -msgid " \\z[S] [PATTERN] same as \\dp\n" -msgstr " \\z[S] [MUSTER] äquivalent zu \\dp\n" - -#: help.c:277 msgid "Large Objects\n" msgstr "Large Objects\n" -#: help.c:278 +#: help.c:274 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr "" " \\lo_export LOBOID DATEI\n" " Large Object in Datei schreiben\n" -#: help.c:279 +#: help.c:275 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3191,38 +3400,38 @@ msgstr "" " \\lo_import DATEI [KOMMENTAR]\n" " Large Object aus Datei lesen\n" -#: help.c:281 -msgid " \\lo_list[+] list large objects\n" -msgstr " \\lo_list[+] Large Objects auflisten\n" +#: help.c:277 +msgid " \\lo_list[x+] list large objects\n" +msgstr " \\lo_list[x+] Large Objects auflisten\n" -#: help.c:282 +#: help.c:278 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID Large Object löschen\n" -#: help.c:285 +#: help.c:281 msgid "Formatting\n" msgstr "Formatierung\n" -#: help.c:286 +#: help.c:282 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr "" " \\a zwischen unausgerichtetem und ausgerichtetem Ausgabemodus\n" " umschalten\n" -#: help.c:287 +#: help.c:283 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [TEXT] Tabellentitel setzen oder löschen\n" -#: help.c:288 +#: help.c:284 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr " \\f [ZEICHEN] Feldtrennzeichen zeigen oder setzen\n" -#: help.c:289 +#: help.c:285 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H HTML-Ausgabemodus umschalten (gegenwärtig %s)\n" -#: help.c:291 +#: help.c:287 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3230,7 +3439,7 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [NAME [WERT]] Tabellenausgabeoption setzen\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3238,31 +3447,31 @@ msgstr "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:298 +#: help.c:294 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] nur Datenzeilen zeigen (gegenwärtig %s)\n" -#: help.c:300 +#: help.c:296 msgid " \\T [STRING] set HTML tag attributes, or unset if none\n" msgstr " \\T [TEXT] HTML
-Tag-Attribute setzen oder löschen\n" -#: help.c:301 +#: help.c:297 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] erweiterte Ausgabe umschalten (gegenwärtig %s)\n" -#: help.c:302 +#: help.c:298 msgid "auto" msgstr "auto" -#: help.c:305 +#: help.c:301 msgid "Connection\n" msgstr "Verbindung\n" -#: help.c:307 +#: help.c:303 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3271,7 +3480,7 @@ msgstr "" " \\c[onnect] {[DBNAME|- BENUTZER|- HOST|- PORT|-] | conninfo}\n" " mit neuer Datenbank verbinden (aktuell »%s«)\n" -#: help.c:311 +#: help.c:307 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3279,62 +3488,120 @@ msgstr "" " \\c[onnect] {[DBNAME|- BENUTZER|- HOST|- PORT|-] | conninfo}\n" " mit neuer Datenbank verbinden (aktuell keine Verbindung)\n" -#: help.c:313 +#: help.c:309 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo Informationen über aktuelle Verbindung anzeigen\n" -#: help.c:314 +#: help.c:310 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [KODIERUNG] Client-Kodierung zeigen oder setzen\n" -#: help.c:315 +#: help.c:311 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr "" " \\password [BENUTZERNAME]\n" " sicheres Ändern eines Benutzerpasswortes\n" -#: help.c:318 +#: help.c:314 msgid "Operating System\n" msgstr "Betriebssystem\n" -#: help.c:319 +#: help.c:315 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [VERZ] Arbeitsverzeichnis wechseln\n" -#: help.c:320 +#: help.c:316 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVVAR Umgebungsvariable auslesen\n" -#: help.c:321 +#: help.c:317 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NAME [WERT] Umgebungsvariable setzen oder löschen\n" -#: help.c:322 +#: help.c:318 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] Zeitmessung umschalten (gegenwärtig %s)\n" -#: help.c:324 +#: help.c:320 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr " \\! [BEFEHL] Befehl in Shell ausführen oder interaktive Shell starten\n" -#: help.c:327 +#: help.c:323 msgid "Variables\n" msgstr "Variablen\n" -#: help.c:328 +#: help.c:324 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [TEXT] NAME interne Variable vom Benutzer abfragen\n" -#: help.c:329 +#: help.c:325 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr " \\set [NAME [WERT]] interne Variable setzen, oder alle anzeigen\n" -#: help.c:330 +#: help.c:326 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NAME interne Variable löschen\n" -#: help.c:369 +#: help.c:329 +msgid "Extended Query Protocol\n" +msgstr "" + +#: help.c:330 +msgid " \\bind [PARAM]... set query parameters\n" +msgstr " \\bind [PARAM]... Anfrageparameter setzen\n" + +#: help.c:331 +msgid "" +" \\bind_named STMT_NAME [PARAM]...\n" +" set query parameters for an existing prepared statement\n" +msgstr "" + +#: help.c:333 +msgid " \\close STMT_NAME close an existing prepared statement\n" +msgstr "" + +#: help.c:334 +msgid " \\endpipeline exit pipeline mode\n" +msgstr " \\endpipeline Pipeline-Modus beenden\n" + +#: help.c:335 +#, fuzzy +#| msgid " -e, --echo show the commands being sent to the server\n" +msgid " \\flush flush output data to the server\n" +msgstr "" +" -e, --echo zeige die Befehle, die an den Server\n" +" gesendet werden\n" + +#: help.c:336 +msgid " \\flushrequest send request to the server to flush its output buffer\n" +msgstr "" + +#: help.c:337 +msgid "" +" \\getresults [NUM_RES] read NUM_RES pending results. All pending results are\n" +" read if no argument is provided\n" +msgstr "" + +#: help.c:339 +#, fuzzy +#| msgid "deallocate a prepared statement" +msgid " \\parse STMT_NAME create a prepared statement\n" +msgstr "gibt einen vorbereiteten Befehl frei" + +#: help.c:340 +msgid " \\sendpipeline send an extended query to an ongoing pipeline\n" +msgstr "" + +#: help.c:341 +msgid " \\startpipeline enter pipeline mode\n" +msgstr " \\startpipeline Pipeline-Modus beginnen\n" + +#: help.c:342 +msgid " \\syncpipeline add a synchronisation point to an ongoing pipeline\n" +msgstr "" + +#: help.c:381 msgid "" "List of specially treated variables\n" "\n" @@ -3342,11 +3609,11 @@ msgstr "" "Liste besonderer Variablen\n" "\n" -#: help.c:371 +#: help.c:383 msgid "psql variables:\n" msgstr "psql-Variablen:\n" -#: help.c:373 +#: help.c:385 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3356,7 +3623,7 @@ msgstr "" " oder \\set NAME WERT innerhalb von psql\n" "\n" -#: help.c:375 +#: help.c:387 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3364,7 +3631,7 @@ msgstr "" " AUTOCOMMIT\n" " wenn gesetzt werden alle erfolgreichen SQL-Befehle automatisch committet\n" -#: help.c:377 +#: help.c:389 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3374,7 +3641,7 @@ msgstr "" " bestimmt, ob SQL-Schlüsselwörter in Groß- oder Kleinschreibung\n" " vervollständigt werden [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:380 +#: help.c:392 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3382,7 +3649,7 @@ msgstr "" " DBNAME\n" " Name der aktuellen Datenbank\n" -#: help.c:382 +#: help.c:394 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3392,7 +3659,7 @@ msgstr "" " kontrolliert, welche Eingaben auf die Standardausgabe geschrieben werden\n" " [all, errors, none, queries]\n" -#: help.c:385 +#: help.c:397 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3402,7 +3669,7 @@ msgstr "" " wenn gesetzt, interne Anfragen, die von Backslash-Befehlen ausgeführt werden,\n" " anzeigen; wenn auf »noexec« gesetzt, nur anzeigen, nicht ausführen\n" -#: help.c:388 +#: help.c:400 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3410,7 +3677,7 @@ msgstr "" " ENCODING\n" " aktuelle Zeichensatzkodierung des Clients\n" -#: help.c:390 +#: help.c:402 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3418,7 +3685,7 @@ msgstr "" " ERROR\n" " »true« wenn die letzte Anfrage fehlgeschlagen ist, sonst »false«\n" -#: help.c:392 +#: help.c:404 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" @@ -3426,7 +3693,7 @@ msgstr "" " FETCH_COUNT\n" " Anzahl auf einmal zu holender und anzuzeigender Zeilen (0 = unbegrenzt)\n" -#: help.c:394 +#: help.c:406 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3434,7 +3701,7 @@ msgstr "" " HIDE_TABLEAM\n" " wenn gesetzt werden Tabellenzugriffsmethoden nicht angezeigt\n" -#: help.c:396 +#: help.c:408 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3442,7 +3709,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " wenn gesetzt werden Kompressionsmethoden nicht angezeigt\n" -#: help.c:398 +#: help.c:410 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3450,7 +3717,7 @@ msgstr "" " HISTCONTROL\n" " kontrolliert Befehlsgeschichte [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:400 +#: help.c:412 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3458,7 +3725,7 @@ msgstr "" " HISTFILE\n" " Dateiname für die Befehlsgeschichte\n" -#: help.c:402 +#: help.c:414 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3466,7 +3733,7 @@ msgstr "" " HISTSIZE\n" " maximale Anzahl der in der Befehlsgeschichte zu speichernden Befehle\n" -#: help.c:404 +#: help.c:416 msgid "" " HOST\n" " the currently connected database server host\n" @@ -3474,7 +3741,7 @@ msgstr "" " HOST\n" " der aktuell verbundene Datenbankserverhost\n" -#: help.c:406 +#: help.c:418 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3482,7 +3749,7 @@ msgstr "" " IGNOREEOF\n" " Anzahl benötigter EOFs um eine interaktive Sitzung zu beenden\n" -#: help.c:408 +#: help.c:420 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3490,7 +3757,7 @@ msgstr "" " LASTOID\n" " Wert der zuletzt beinträchtigten OID\n" -#: help.c:410 +#: help.c:422 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3501,7 +3768,7 @@ msgstr "" " Fehlermeldung und SQLSTATE des letzten Fehlers, oder leer und »000000« wenn\n" " kein Fehler\n" -#: help.c:413 +#: help.c:425 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3510,7 +3777,7 @@ msgstr "" " wenn gesetzt beendet ein Fehler die Transaktion nicht (verwendet implizite\n" " Sicherungspunkte)\n" -#: help.c:415 +#: help.c:427 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3518,7 +3785,7 @@ msgstr "" " ON_ERROR_STOP\n" " Skriptausführung bei Fehler beenden\n" -#: help.c:417 +#: help.c:429 msgid "" " PORT\n" " server port of the current connection\n" @@ -3526,7 +3793,7 @@ msgstr "" " PORT\n" " Serverport der aktuellen Verbindung\n" -#: help.c:419 +#: help.c:431 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3534,7 +3801,7 @@ msgstr "" " PROMPT1\n" " der normale psql-Prompt\n" -#: help.c:421 +#: help.c:433 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" @@ -3542,7 +3809,7 @@ msgstr "" " PROMPT2\n" " der Prompt, wenn eine Anweisung von der vorherigen Zeile fortgesetzt wird\n" -#: help.c:423 +#: help.c:435 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3550,7 +3817,7 @@ msgstr "" " PROMPT3\n" " der Prompt während COPY ... FROM STDIN\n" -#: help.c:425 +#: help.c:437 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3558,7 +3825,7 @@ msgstr "" " QUIET\n" " stille Ausführung (wie Option -q)\n" -#: help.c:427 +#: help.c:439 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3566,7 +3833,7 @@ msgstr "" " ROW_COUNT\n" " Anzahl der von der letzten Anfrage beeinträchtigten Zeilen, oder 0\n" -#: help.c:429 +#: help.c:441 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3576,7 +3843,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " Serverversion (kurze Zeichenkette oder numerisches Format)\n" -#: help.c:432 +#: help.c:444 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3584,7 +3851,7 @@ msgstr "" " SHELL_ERROR\n" " »true« wenn der letzte Shell-Befehl fehlgeschlagen ist, sonst »false«\n" -#: help.c:434 +#: help.c:446 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3592,7 +3859,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " Statuscode des letzten Shell-Befehls\n" -#: help.c:436 +#: help.c:448 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3600,7 +3867,7 @@ msgstr "" " SHOW_ALL_RESULTS\n" " alle Ergebnisse einer kombinierten Anfrage (\\;) anzeigen statt nur das letzte\n" -#: help.c:438 +#: help.c:450 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3609,7 +3876,7 @@ msgstr "" " kontrolliert die Anzeige von Kontextinformationen in Meldungen\n" " [never, errors, always]\n" -#: help.c:440 +#: help.c:452 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3617,7 +3884,7 @@ msgstr "" " SINGLELINE\n" " wenn gesetzt beendet Zeilenende die SQL-Anweisung (wie Option -S)\n" -#: help.c:442 +#: help.c:454 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3625,7 +3892,7 @@ msgstr "" " SINGLESTEP\n" " Einzelschrittmodus (wie Option -s)\n" -#: help.c:444 +#: help.c:456 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3633,7 +3900,7 @@ msgstr "" " SQLSTATE\n" " SQLSTATE der letzten Anfrage, oder »00000« wenn kein Fehler\n" -#: help.c:446 +#: help.c:458 msgid "" " USER\n" " the currently connected database user\n" @@ -3641,7 +3908,7 @@ msgstr "" " USER\n" " der aktuell verbundene Datenbankbenutzer\n" -#: help.c:448 +#: help.c:460 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3650,7 +3917,7 @@ msgstr "" " kontrolliert wieviele Details in Fehlermeldungen enthalten sind\n" " [default, verbose, terse, sqlstate]\n" -#: help.c:450 +#: help.c:462 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3662,7 +3929,13 @@ msgstr "" " VERSION_NUM\n" " Version von psql (lange Zeichenkette, kurze Zeichenkette oder numerisch)\n" -#: help.c:455 +#: help.c:466 +msgid "" +" WATCH_INTERVAL\n" +" if set to a number, overrides the default two second \\watch interval\n" +msgstr "" + +#: help.c:469 msgid "" "\n" "Display settings:\n" @@ -3670,7 +3943,7 @@ msgstr "" "\n" "Anzeigeeinstellungen:\n" -#: help.c:457 +#: help.c:471 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3680,7 +3953,7 @@ msgstr "" " oder \\pset NAME [WERT] innerhalb von psql\n" "\n" -#: help.c:459 +#: help.c:473 msgid "" " border\n" " border style (number)\n" @@ -3688,7 +3961,7 @@ msgstr "" " border\n" " Rahmenstil (Zahl)\n" -#: help.c:461 +#: help.c:475 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3696,7 +3969,7 @@ msgstr "" " columns\n" " Zielbreite für das Format »wrapped«\n" -#: help.c:463 +#: help.c:477 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" @@ -3704,7 +3977,7 @@ msgstr "" " expanded (oder x)\n" " erweiterte Ausgabe [on, off, auto]\n" -#: help.c:465 +#: help.c:479 #, c-format msgid "" " fieldsep\n" @@ -3713,7 +3986,7 @@ msgstr "" " fieldsep\n" " Feldtrennzeichen für unausgerichteten Ausgabemodus (Standard »%s«)\n" -#: help.c:468 +#: help.c:482 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3721,7 +3994,7 @@ msgstr "" " fieldsep_zero\n" " Feldtrennzeichen für unausgerichteten Ausgabemodus auf Null-Byte setzen\n" -#: help.c:470 +#: help.c:484 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3729,7 +4002,7 @@ msgstr "" " footer\n" " Tabellenfußzeile ein- oder auschalten [on, off]\n" -#: help.c:472 +#: help.c:486 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3737,7 +4010,7 @@ msgstr "" " format\n" " Ausgabeformat setzen [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:474 +#: help.c:488 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3745,7 +4018,7 @@ msgstr "" " linestyle\n" " Rahmenlinienstil setzen [ascii, old-ascii, unicode]\n" -#: help.c:476 +#: help.c:490 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3753,7 +4026,7 @@ msgstr "" " null\n" " setzt die Zeichenkette, die anstelle eines NULL-Wertes ausgegeben wird\n" -#: help.c:478 +#: help.c:492 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3762,7 +4035,7 @@ msgstr "" " Verwendung eines Locale-spezifischen Zeichens zur Trennung von Zifferngruppen\n" " einschalten [on, off]\n" -#: help.c:480 +#: help.c:494 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3770,7 +4043,7 @@ msgstr "" " pager\n" " kontrolliert Verwendung eines externen Pager-Programms [yes, no, always]\n" -#: help.c:482 +#: help.c:496 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3778,7 +4051,7 @@ msgstr "" " recordsep\n" " Satztrennzeichen für unausgerichteten Ausgabemodus\n" -#: help.c:484 +#: help.c:498 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3786,7 +4059,7 @@ msgstr "" " recordsep_zero\n" " Satztrennzeichen für unausgerichteten Ausgabemodus auf Null-Byte setzen\n" -#: help.c:486 +#: help.c:500 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3796,7 +4069,7 @@ msgstr "" " Attribute für das »table«-Tag im Format »html« oder proportionale\n" " Spaltenbreite für links ausgerichtete Datentypen im Format »latex-longtable«\n" -#: help.c:489 +#: help.c:503 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3804,7 +4077,7 @@ msgstr "" " title\n" " setzt den Titel darauffolgend ausgegebener Tabellen\n" -#: help.c:491 +#: help.c:505 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3812,7 +4085,7 @@ msgstr "" " tuples_only\n" " wenn gesetzt werden nur die eigentlichen Tabellendaten gezeigt\n" -#: help.c:493 +#: help.c:507 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3824,7 +4097,17 @@ msgstr "" " unicode_header_linestyle\n" " setzt den Stil für Unicode-Linien [single, double]\n" -#: help.c:498 +#: help.c:511 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" setzt die maximale Breite der Kopfzeile für die erweiterte Ausgabe\n" +" [full, column, page, ganze Zahl]\n" + +#: help.c:515 msgid "" "\n" "Environment variables:\n" @@ -3832,7 +4115,7 @@ msgstr "" "\n" "Umgebungsvariablen:\n" -#: help.c:502 +#: help.c:519 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3842,7 +4125,7 @@ msgstr "" " oder \\setenv NAME [WERT] innerhalb von psql\n" "\n" -#: help.c:504 +#: help.c:521 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3854,7 +4137,7 @@ msgstr "" " oder \\setenv NAME [WERT] innerhalb von psql\n" "\n" -#: help.c:507 +#: help.c:524 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3862,7 +4145,7 @@ msgstr "" " COLUMNS\n" " Anzahl Spalten im Format »wrapped«\n" -#: help.c:509 +#: help.c:526 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3870,7 +4153,7 @@ msgstr "" " PGAPPNAME\n" " wie Verbindungsparameter »application_name«\n" -#: help.c:511 +#: help.c:528 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3878,7 +4161,7 @@ msgstr "" " PGDATABASE\n" " wie Verbindungsparameter »dbname«\n" -#: help.c:513 +#: help.c:530 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3886,7 +4169,7 @@ msgstr "" " PGHOST\n" " wie Verbindungsparameter »host«\n" -#: help.c:515 +#: help.c:532 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3894,7 +4177,7 @@ msgstr "" " PGPASSFILE\n" " Name der Passwortdatei\n" -#: help.c:517 +#: help.c:534 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3902,7 +4185,7 @@ msgstr "" " PGPASSWORD\n" " Verbindungspasswort (nicht empfohlen)\n" -#: help.c:519 +#: help.c:536 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3910,7 +4193,7 @@ msgstr "" " PGPORT\n" " wie Verbindungsparameter »port«\n" -#: help.c:521 +#: help.c:538 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3918,7 +4201,7 @@ msgstr "" " PGUSER\n" " wie Verbindungsparameter »user«\n" -#: help.c:523 +#: help.c:540 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3926,7 +4209,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " Editor für Befehle \\e, \\ef und \\ev\n" -#: help.c:525 +#: help.c:542 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3934,7 +4217,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " wie die Zeilennummer beim Aufruf des Editors angegeben wird\n" -#: help.c:527 +#: help.c:544 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -3942,7 +4225,7 @@ msgstr "" " PSQL_HISTORY\n" " alternativer Pfad für History-Datei\n" -#: help.c:529 +#: help.c:546 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -3950,7 +4233,7 @@ msgstr "" " PSQL_PAGER, PAGER\n" " Name des externen Pager-Programms\n" -#: help.c:532 +#: help.c:549 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -3958,7 +4241,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " Name des externen Pager-Programms für \\watch\n" -#: help.c:535 +#: help.c:552 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -3966,7 +4249,7 @@ msgstr "" " PSQLRC\n" " alternativer Pfad für .psqlrc-Datei des Benutzers\n" -#: help.c:537 +#: help.c:554 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -3974,7 +4257,7 @@ msgstr "" " SHELL\n" " Shell für den Befehl \\!\n" -#: help.c:539 +#: help.c:556 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -3982,11 +4265,11 @@ msgstr "" " TMPDIR\n" " Verzeichnis für temporäre Dateien\n" -#: help.c:599 +#: help.c:616 msgid "Available help:\n" msgstr "Verfügbare Hilfe:\n" -#: help.c:694 +#: help.c:711 #, c-format msgid "" "Command: %s\n" @@ -4005,7 +4288,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:717 +#: help.c:734 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4112,12 +4395,12 @@ msgstr "Anfrage ignoriert; verwenden Sie \\endif oder Strg-C um den aktuellen \\ msgid "reached EOF without finding closing \\endif(s)" msgstr "Dateiende erreicht, aber schließendes \\endif fehlt" -#: psqlscanslash.l:642 +#: psqlscanslash.l:633 #, c-format msgid "unterminated quoted string" msgstr "Zeichenkette in Anführungszeichen nicht abgeschlossen" -#: psqlscanslash.l:842 +#: psqlscanslash.l:834 #, c-format msgid "%s: out of memory" msgstr "%s: Speicher aufgebraucht" @@ -4125,2470 +4408,2477 @@ msgstr "%s: Speicher aufgebraucht" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:240 -#: sql_help.c:242 sql_help.c:243 sql_help.c:245 sql_help.c:247 sql_help.c:250 -#: sql_help.c:252 sql_help.c:254 sql_help.c:256 sql_help.c:268 sql_help.c:269 -#: sql_help.c:270 sql_help.c:272 sql_help.c:321 sql_help.c:323 sql_help.c:325 -#: sql_help.c:327 sql_help.c:396 sql_help.c:401 sql_help.c:403 sql_help.c:445 -#: sql_help.c:447 sql_help.c:450 sql_help.c:452 sql_help.c:521 sql_help.c:526 -#: sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:595 sql_help.c:597 -#: sql_help.c:599 sql_help.c:601 sql_help.c:603 sql_help.c:606 sql_help.c:608 -#: sql_help.c:611 sql_help.c:622 sql_help.c:624 sql_help.c:668 sql_help.c:670 -#: sql_help.c:672 sql_help.c:675 sql_help.c:677 sql_help.c:679 sql_help.c:720 -#: sql_help.c:724 sql_help.c:728 sql_help.c:749 sql_help.c:752 sql_help.c:755 -#: sql_help.c:784 sql_help.c:796 sql_help.c:804 sql_help.c:807 sql_help.c:810 -#: sql_help.c:825 sql_help.c:828 sql_help.c:857 sql_help.c:862 sql_help.c:867 -#: sql_help.c:872 sql_help.c:877 sql_help.c:904 sql_help.c:906 sql_help.c:908 -#: sql_help.c:910 sql_help.c:913 sql_help.c:915 sql_help.c:962 sql_help.c:1007 -#: sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 -#: sql_help.c:1046 sql_help.c:1057 sql_help.c:1059 sql_help.c:1079 -#: sql_help.c:1089 sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 -#: sql_help.c:1106 sql_help.c:1110 sql_help.c:1112 sql_help.c:1124 -#: sql_help.c:1126 sql_help.c:1128 sql_help.c:1130 sql_help.c:1149 -#: sql_help.c:1151 sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1167 sql_help.c:1168 sql_help.c:1171 -#: sql_help.c:1174 sql_help.c:1176 sql_help.c:1323 sql_help.c:1325 -#: sql_help.c:1328 sql_help.c:1331 sql_help.c:1333 sql_help.c:1335 -#: sql_help.c:1338 sql_help.c:1341 sql_help.c:1343 sql_help.c:1349 -#: sql_help.c:1473 sql_help.c:1475 sql_help.c:1477 sql_help.c:1480 -#: sql_help.c:1501 sql_help.c:1504 sql_help.c:1507 sql_help.c:1510 -#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1518 sql_help.c:1520 -#: sql_help.c:1534 sql_help.c:1537 sql_help.c:1539 sql_help.c:1541 -#: sql_help.c:1551 sql_help.c:1553 sql_help.c:1563 sql_help.c:1565 -#: sql_help.c:1575 sql_help.c:1578 sql_help.c:1601 sql_help.c:1603 -#: sql_help.c:1605 sql_help.c:1607 sql_help.c:1610 sql_help.c:1612 -#: sql_help.c:1615 sql_help.c:1618 sql_help.c:1669 sql_help.c:1712 -#: sql_help.c:1715 sql_help.c:1717 sql_help.c:1719 sql_help.c:1722 -#: sql_help.c:1724 sql_help.c:1726 sql_help.c:1729 sql_help.c:1779 -#: sql_help.c:1795 sql_help.c:2028 sql_help.c:2097 sql_help.c:2116 -#: sql_help.c:2129 sql_help.c:2187 sql_help.c:2195 sql_help.c:2205 -#: sql_help.c:2233 sql_help.c:2266 sql_help.c:2284 sql_help.c:2312 -#: sql_help.c:2423 sql_help.c:2469 sql_help.c:2494 sql_help.c:2517 -#: sql_help.c:2521 sql_help.c:2555 sql_help.c:2575 sql_help.c:2597 -#: sql_help.c:2611 sql_help.c:2632 sql_help.c:2661 sql_help.c:2694 -#: sql_help.c:2717 sql_help.c:2764 sql_help.c:3062 sql_help.c:3075 -#: sql_help.c:3092 sql_help.c:3108 sql_help.c:3148 sql_help.c:3202 -#: sql_help.c:3206 sql_help.c:3208 sql_help.c:3215 sql_help.c:3234 -#: sql_help.c:3261 sql_help.c:3296 sql_help.c:3308 sql_help.c:3317 -#: sql_help.c:3361 sql_help.c:3375 sql_help.c:3403 sql_help.c:3411 -#: sql_help.c:3423 sql_help.c:3433 sql_help.c:3441 sql_help.c:3449 -#: sql_help.c:3457 sql_help.c:3465 sql_help.c:3474 sql_help.c:3485 -#: sql_help.c:3493 sql_help.c:3501 sql_help.c:3509 sql_help.c:3517 -#: sql_help.c:3527 sql_help.c:3536 sql_help.c:3545 sql_help.c:3553 -#: sql_help.c:3563 sql_help.c:3574 sql_help.c:3582 sql_help.c:3591 -#: sql_help.c:3602 sql_help.c:3611 sql_help.c:3619 sql_help.c:3627 -#: sql_help.c:3635 sql_help.c:3643 sql_help.c:3651 sql_help.c:3659 -#: sql_help.c:3667 sql_help.c:3675 sql_help.c:3683 sql_help.c:3691 -#: sql_help.c:3708 sql_help.c:3717 sql_help.c:3725 sql_help.c:3742 -#: sql_help.c:3757 sql_help.c:4070 sql_help.c:4191 sql_help.c:4220 -#: sql_help.c:4236 sql_help.c:4238 sql_help.c:4742 sql_help.c:4790 -#: sql_help.c:4949 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:259 +#: sql_help.c:261 sql_help.c:262 sql_help.c:264 sql_help.c:266 sql_help.c:269 +#: sql_help.c:271 sql_help.c:273 sql_help.c:275 sql_help.c:290 sql_help.c:291 +#: sql_help.c:292 sql_help.c:294 sql_help.c:343 sql_help.c:345 sql_help.c:347 +#: sql_help.c:349 sql_help.c:418 sql_help.c:423 sql_help.c:425 sql_help.c:467 +#: sql_help.c:469 sql_help.c:472 sql_help.c:474 sql_help.c:543 sql_help.c:548 +#: sql_help.c:553 sql_help.c:558 sql_help.c:563 sql_help.c:617 sql_help.c:619 +#: sql_help.c:621 sql_help.c:623 sql_help.c:625 sql_help.c:628 sql_help.c:630 +#: sql_help.c:633 sql_help.c:644 sql_help.c:646 sql_help.c:690 sql_help.c:692 +#: sql_help.c:694 sql_help.c:697 sql_help.c:699 sql_help.c:701 sql_help.c:742 +#: sql_help.c:746 sql_help.c:750 sql_help.c:771 sql_help.c:774 sql_help.c:777 +#: sql_help.c:806 sql_help.c:818 sql_help.c:826 sql_help.c:829 sql_help.c:832 +#: sql_help.c:847 sql_help.c:850 sql_help.c:879 sql_help.c:884 sql_help.c:889 +#: sql_help.c:894 sql_help.c:899 sql_help.c:926 sql_help.c:928 sql_help.c:930 +#: sql_help.c:932 sql_help.c:935 sql_help.c:937 sql_help.c:984 sql_help.c:1029 +#: sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 sql_help.c:1049 +#: sql_help.c:1068 sql_help.c:1079 sql_help.c:1081 sql_help.c:1102 +#: sql_help.c:1112 sql_help.c:1113 sql_help.c:1115 sql_help.c:1117 +#: sql_help.c:1129 sql_help.c:1133 sql_help.c:1135 sql_help.c:1147 +#: sql_help.c:1149 sql_help.c:1151 sql_help.c:1153 sql_help.c:1172 +#: sql_help.c:1174 sql_help.c:1178 sql_help.c:1182 sql_help.c:1186 +#: sql_help.c:1189 sql_help.c:1190 sql_help.c:1191 sql_help.c:1194 +#: sql_help.c:1197 sql_help.c:1199 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1351 sql_help.c:1353 +#: sql_help.c:1356 sql_help.c:1359 sql_help.c:1487 sql_help.c:1489 +#: sql_help.c:1491 sql_help.c:1494 sql_help.c:1515 sql_help.c:1518 +#: sql_help.c:1521 sql_help.c:1524 sql_help.c:1528 sql_help.c:1530 +#: sql_help.c:1532 sql_help.c:1534 sql_help.c:1548 sql_help.c:1551 +#: sql_help.c:1553 sql_help.c:1555 sql_help.c:1565 sql_help.c:1567 +#: sql_help.c:1577 sql_help.c:1579 sql_help.c:1589 sql_help.c:1592 +#: sql_help.c:1615 sql_help.c:1617 sql_help.c:1619 sql_help.c:1621 +#: sql_help.c:1624 sql_help.c:1626 sql_help.c:1629 sql_help.c:1632 +#: sql_help.c:1683 sql_help.c:1726 sql_help.c:1729 sql_help.c:1731 +#: sql_help.c:1733 sql_help.c:1736 sql_help.c:1738 sql_help.c:1740 +#: sql_help.c:1743 sql_help.c:1793 sql_help.c:1809 sql_help.c:2044 +#: sql_help.c:2113 sql_help.c:2132 sql_help.c:2145 sql_help.c:2203 +#: sql_help.c:2211 sql_help.c:2221 sql_help.c:2249 sql_help.c:2282 +#: sql_help.c:2300 sql_help.c:2328 sql_help.c:2451 sql_help.c:2497 +#: sql_help.c:2522 sql_help.c:2545 sql_help.c:2549 sql_help.c:2583 +#: sql_help.c:2603 sql_help.c:2625 sql_help.c:2639 sql_help.c:2660 +#: sql_help.c:2689 sql_help.c:2722 sql_help.c:2745 sql_help.c:2794 +#: sql_help.c:3098 sql_help.c:3111 sql_help.c:3128 sql_help.c:3144 +#: sql_help.c:3184 sql_help.c:3238 sql_help.c:3242 sql_help.c:3244 +#: sql_help.c:3251 sql_help.c:3270 sql_help.c:3297 sql_help.c:3332 +#: sql_help.c:3344 sql_help.c:3353 sql_help.c:3399 sql_help.c:3413 +#: sql_help.c:3441 sql_help.c:3449 sql_help.c:3461 sql_help.c:3471 +#: sql_help.c:3479 sql_help.c:3487 sql_help.c:3495 sql_help.c:3503 +#: sql_help.c:3512 sql_help.c:3523 sql_help.c:3531 sql_help.c:3539 +#: sql_help.c:3547 sql_help.c:3555 sql_help.c:3565 sql_help.c:3574 +#: sql_help.c:3583 sql_help.c:3591 sql_help.c:3601 sql_help.c:3612 +#: sql_help.c:3620 sql_help.c:3629 sql_help.c:3640 sql_help.c:3649 +#: sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 sql_help.c:3681 +#: sql_help.c:3689 sql_help.c:3697 sql_help.c:3705 sql_help.c:3713 +#: sql_help.c:3721 sql_help.c:3729 sql_help.c:3746 sql_help.c:3755 +#: sql_help.c:3763 sql_help.c:3780 sql_help.c:3795 sql_help.c:4110 +#: sql_help.c:4233 sql_help.c:4262 sql_help.c:4278 sql_help.c:4280 +#: sql_help.c:4784 sql_help.c:4832 sql_help.c:4991 msgid "name" msgstr "Name" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:332 sql_help.c:1872 -#: sql_help.c:3376 sql_help.c:4509 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:354 sql_help.c:1886 +#: sql_help.c:3414 sql_help.c:4551 msgid "aggregate_signature" msgstr "Aggregatsignatur" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:255 -#: sql_help.c:273 sql_help.c:404 sql_help.c:451 sql_help.c:530 sql_help.c:578 -#: sql_help.c:596 sql_help.c:623 sql_help.c:676 sql_help.c:751 sql_help.c:806 -#: sql_help.c:827 sql_help.c:866 sql_help.c:916 sql_help.c:963 sql_help.c:1016 -#: sql_help.c:1048 sql_help.c:1058 sql_help.c:1093 sql_help.c:1113 -#: sql_help.c:1127 sql_help.c:1177 sql_help.c:1332 sql_help.c:1474 -#: sql_help.c:1517 sql_help.c:1538 sql_help.c:1552 sql_help.c:1564 -#: sql_help.c:1577 sql_help.c:1604 sql_help.c:1670 sql_help.c:1723 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:274 +#: sql_help.c:295 sql_help.c:426 sql_help.c:473 sql_help.c:552 sql_help.c:600 +#: sql_help.c:618 sql_help.c:645 sql_help.c:698 sql_help.c:773 sql_help.c:828 +#: sql_help.c:849 sql_help.c:888 sql_help.c:938 sql_help.c:985 sql_help.c:1038 +#: sql_help.c:1070 sql_help.c:1080 sql_help.c:1116 sql_help.c:1136 +#: sql_help.c:1150 sql_help.c:1200 sql_help.c:1350 sql_help.c:1488 +#: sql_help.c:1531 sql_help.c:1552 sql_help.c:1566 sql_help.c:1578 +#: sql_help.c:1591 sql_help.c:1618 sql_help.c:1684 sql_help.c:1737 msgid "new_name" msgstr "neuer_Name" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:487 sql_help.c:535 sql_help.c:625 -#: sql_help.c:634 sql_help.c:699 sql_help.c:723 sql_help.c:754 sql_help.c:809 -#: sql_help.c:871 sql_help.c:914 sql_help.c:1021 sql_help.c:1060 -#: sql_help.c:1091 sql_help.c:1111 sql_help.c:1125 sql_help.c:1175 -#: sql_help.c:1408 sql_help.c:1476 sql_help.c:1519 sql_help.c:1540 -#: sql_help.c:1602 sql_help.c:1718 sql_help.c:3048 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:272 +#: sql_help.c:293 sql_help.c:424 sql_help.c:509 sql_help.c:557 sql_help.c:647 +#: sql_help.c:656 sql_help.c:721 sql_help.c:745 sql_help.c:776 sql_help.c:831 +#: sql_help.c:893 sql_help.c:936 sql_help.c:1043 sql_help.c:1082 +#: sql_help.c:1114 sql_help.c:1134 sql_help.c:1148 sql_help.c:1198 +#: sql_help.c:1417 sql_help.c:1490 sql_help.c:1533 sql_help.c:1554 +#: sql_help.c:1616 sql_help.c:1732 sql_help.c:3084 msgid "new_owner" msgstr "neuer_Eigentümer" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:257 sql_help.c:324 -#: sql_help.c:453 sql_help.c:540 sql_help.c:678 sql_help.c:727 sql_help.c:757 -#: sql_help.c:812 sql_help.c:876 sql_help.c:1026 sql_help.c:1095 -#: sql_help.c:1129 sql_help.c:1334 sql_help.c:1521 sql_help.c:1542 -#: sql_help.c:1554 sql_help.c:1566 sql_help.c:1606 sql_help.c:1725 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:276 sql_help.c:346 +#: sql_help.c:475 sql_help.c:562 sql_help.c:700 sql_help.c:749 sql_help.c:779 +#: sql_help.c:834 sql_help.c:898 sql_help.c:1048 sql_help.c:1118 +#: sql_help.c:1152 sql_help.c:1352 sql_help.c:1535 sql_help.c:1556 +#: sql_help.c:1568 sql_help.c:1580 sql_help.c:1620 sql_help.c:1739 msgid "new_schema" msgstr "neues_Schema" -#: sql_help.c:44 sql_help.c:1936 sql_help.c:3377 sql_help.c:4538 +#: sql_help.c:44 sql_help.c:1950 sql_help.c:3415 sql_help.c:4580 msgid "where aggregate_signature is:" msgstr "wobei Aggregatsignatur Folgendes ist:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:858 -#: sql_help.c:863 sql_help.c:868 sql_help.c:873 sql_help.c:878 sql_help.c:1008 -#: sql_help.c:1013 sql_help.c:1018 sql_help.c:1023 sql_help.c:1028 -#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 -#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2098 sql_help.c:2117 -#: sql_help.c:2120 sql_help.c:2424 sql_help.c:2633 sql_help.c:3378 -#: sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 sql_help.c:3564 -#: sql_help.c:3592 sql_help.c:3945 sql_help.c:4408 sql_help.c:4515 -#: sql_help.c:4522 sql_help.c:4528 sql_help.c:4539 sql_help.c:4542 -#: sql_help.c:4545 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:364 sql_help.c:377 +#: sql_help.c:381 sql_help.c:397 sql_help.c:400 sql_help.c:403 sql_help.c:544 +#: sql_help.c:549 sql_help.c:554 sql_help.c:559 sql_help.c:564 sql_help.c:880 +#: sql_help.c:885 sql_help.c:890 sql_help.c:895 sql_help.c:900 sql_help.c:1030 +#: sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 sql_help.c:1050 +#: sql_help.c:1904 sql_help.c:1921 sql_help.c:1927 sql_help.c:1951 +#: sql_help.c:1954 sql_help.c:1957 sql_help.c:2114 sql_help.c:2133 +#: sql_help.c:2136 sql_help.c:2452 sql_help.c:2661 sql_help.c:3416 +#: sql_help.c:3419 sql_help.c:3422 sql_help.c:3513 sql_help.c:3602 +#: sql_help.c:3630 sql_help.c:3983 sql_help.c:4450 sql_help.c:4557 +#: sql_help.c:4564 sql_help.c:4570 sql_help.c:4581 sql_help.c:4584 +#: sql_help.c:4587 msgid "argmode" msgstr "Argmodus" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:343 sql_help.c:356 -#: sql_help.c:360 sql_help.c:376 sql_help.c:379 sql_help.c:382 sql_help.c:523 -#: sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:543 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:874 sql_help.c:879 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 -#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2099 sql_help.c:2118 -#: sql_help.c:2121 sql_help.c:2425 sql_help.c:2634 sql_help.c:3379 -#: sql_help.c:3382 sql_help.c:3385 sql_help.c:3476 sql_help.c:3565 -#: sql_help.c:3593 sql_help.c:4516 sql_help.c:4523 sql_help.c:4529 -#: sql_help.c:4540 sql_help.c:4543 sql_help.c:4546 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:365 sql_help.c:378 +#: sql_help.c:382 sql_help.c:398 sql_help.c:401 sql_help.c:404 sql_help.c:545 +#: sql_help.c:550 sql_help.c:555 sql_help.c:560 sql_help.c:565 sql_help.c:881 +#: sql_help.c:886 sql_help.c:891 sql_help.c:896 sql_help.c:901 sql_help.c:1031 +#: sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 sql_help.c:1051 +#: sql_help.c:1905 sql_help.c:1922 sql_help.c:1928 sql_help.c:1952 +#: sql_help.c:1955 sql_help.c:1958 sql_help.c:2115 sql_help.c:2134 +#: sql_help.c:2137 sql_help.c:2453 sql_help.c:2662 sql_help.c:3417 +#: sql_help.c:3420 sql_help.c:3423 sql_help.c:3514 sql_help.c:3603 +#: sql_help.c:3631 sql_help.c:4558 sql_help.c:4565 sql_help.c:4571 +#: sql_help.c:4582 sql_help.c:4585 sql_help.c:4588 msgid "argname" msgstr "Argname" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:344 sql_help.c:357 -#: sql_help.c:361 sql_help.c:377 sql_help.c:380 sql_help.c:383 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:544 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 -#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2426 sql_help.c:2635 -#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3386 sql_help.c:3477 -#: sql_help.c:3566 sql_help.c:3594 sql_help.c:4517 sql_help.c:4524 -#: sql_help.c:4530 sql_help.c:4541 sql_help.c:4544 sql_help.c:4547 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:366 sql_help.c:379 +#: sql_help.c:383 sql_help.c:399 sql_help.c:402 sql_help.c:405 sql_help.c:546 +#: sql_help.c:551 sql_help.c:556 sql_help.c:561 sql_help.c:566 sql_help.c:882 +#: sql_help.c:887 sql_help.c:892 sql_help.c:897 sql_help.c:902 sql_help.c:1032 +#: sql_help.c:1037 sql_help.c:1042 sql_help.c:1047 sql_help.c:1052 +#: sql_help.c:1906 sql_help.c:1923 sql_help.c:1929 sql_help.c:1953 +#: sql_help.c:1956 sql_help.c:1959 sql_help.c:2454 sql_help.c:2663 +#: sql_help.c:3418 sql_help.c:3421 sql_help.c:3424 sql_help.c:3515 +#: sql_help.c:3604 sql_help.c:3632 sql_help.c:4559 sql_help.c:4566 +#: sql_help.c:4572 sql_help.c:4583 sql_help.c:4586 sql_help.c:4589 msgid "argtype" msgstr "Argtyp" -#: sql_help.c:114 sql_help.c:399 sql_help.c:476 sql_help.c:488 sql_help.c:957 -#: sql_help.c:1108 sql_help.c:1535 sql_help.c:1664 sql_help.c:1696 -#: sql_help.c:1748 sql_help.c:1807 sql_help.c:1996 sql_help.c:2003 -#: sql_help.c:2315 sql_help.c:2365 sql_help.c:2372 sql_help.c:2381 -#: sql_help.c:2470 sql_help.c:2695 sql_help.c:2786 sql_help.c:3077 -#: sql_help.c:3262 sql_help.c:3284 sql_help.c:3424 sql_help.c:3781 -#: sql_help.c:3989 sql_help.c:4235 sql_help.c:4237 sql_help.c:5015 +#: sql_help.c:114 sql_help.c:421 sql_help.c:498 sql_help.c:510 sql_help.c:979 +#: sql_help.c:1131 sql_help.c:1549 sql_help.c:1678 sql_help.c:1710 +#: sql_help.c:1762 sql_help.c:1821 sql_help.c:2011 sql_help.c:2018 +#: sql_help.c:2331 sql_help.c:2389 sql_help.c:2398 sql_help.c:2407 +#: sql_help.c:2498 sql_help.c:2723 sql_help.c:2816 sql_help.c:3113 +#: sql_help.c:3298 sql_help.c:3320 sql_help.c:3462 sql_help.c:3819 +#: sql_help.c:4027 sql_help.c:4277 sql_help.c:4279 sql_help.c:5059 msgid "option" msgstr "Option" -#: sql_help.c:115 sql_help.c:958 sql_help.c:1665 sql_help.c:2471 -#: sql_help.c:2696 sql_help.c:3263 sql_help.c:3425 +#: sql_help.c:115 sql_help.c:980 sql_help.c:1679 sql_help.c:2499 +#: sql_help.c:2724 sql_help.c:3299 sql_help.c:3463 msgid "where option can be:" msgstr "wobei Option Folgendes sein kann:" -#: sql_help.c:116 sql_help.c:2247 +#: sql_help.c:116 sql_help.c:2263 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:117 sql_help.c:959 sql_help.c:1666 sql_help.c:2248 -#: sql_help.c:2472 sql_help.c:2697 sql_help.c:3264 +#: sql_help.c:117 sql_help.c:981 sql_help.c:1680 sql_help.c:2264 +#: sql_help.c:2500 sql_help.c:2725 sql_help.c:3300 msgid "connlimit" msgstr "Verbindungslimit" -#: sql_help.c:118 sql_help.c:2249 +#: sql_help.c:118 sql_help.c:2265 msgid "istemplate" msgstr "istemplate" -#: sql_help.c:124 sql_help.c:613 sql_help.c:681 sql_help.c:695 sql_help.c:1337 -#: sql_help.c:1401 sql_help.c:4241 +#: sql_help.c:124 sql_help.c:635 sql_help.c:703 sql_help.c:717 sql_help.c:1355 +#: sql_help.c:1410 sql_help.c:4283 msgid "new_tablespace" msgstr "neuer_Tablespace" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:550 sql_help.c:552 -#: sql_help.c:553 sql_help.c:883 sql_help.c:885 sql_help.c:886 sql_help.c:966 -#: sql_help.c:970 sql_help.c:973 sql_help.c:1035 sql_help.c:1037 -#: sql_help.c:1038 sql_help.c:1188 sql_help.c:1190 sql_help.c:1673 -#: sql_help.c:1677 sql_help.c:1680 sql_help.c:2436 sql_help.c:2639 -#: sql_help.c:3957 sql_help.c:4259 sql_help.c:4420 sql_help.c:4730 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:572 sql_help.c:574 +#: sql_help.c:575 sql_help.c:905 sql_help.c:907 sql_help.c:908 sql_help.c:988 +#: sql_help.c:992 sql_help.c:995 sql_help.c:1057 sql_help.c:1059 +#: sql_help.c:1060 sql_help.c:1211 sql_help.c:1213 sql_help.c:1687 +#: sql_help.c:1691 sql_help.c:1694 sql_help.c:2464 sql_help.c:2667 +#: sql_help.c:3995 sql_help.c:4301 sql_help.c:4462 sql_help.c:4772 msgid "configuration_parameter" msgstr "Konfigurationsparameter" -#: sql_help.c:128 sql_help.c:400 sql_help.c:471 sql_help.c:477 sql_help.c:489 -#: sql_help.c:551 sql_help.c:605 sql_help.c:687 sql_help.c:697 sql_help.c:884 -#: sql_help.c:912 sql_help.c:967 sql_help.c:1036 sql_help.c:1109 -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:1165 -#: sql_help.c:1170 sql_help.c:1173 sql_help.c:1189 sql_help.c:1380 -#: sql_help.c:1403 sql_help.c:1451 sql_help.c:1459 sql_help.c:1479 -#: sql_help.c:1536 sql_help.c:1620 sql_help.c:1674 sql_help.c:1697 -#: sql_help.c:2316 sql_help.c:2366 sql_help.c:2373 sql_help.c:2382 -#: sql_help.c:2437 sql_help.c:2438 sql_help.c:2502 sql_help.c:2505 -#: sql_help.c:2539 sql_help.c:2640 sql_help.c:2641 sql_help.c:2664 -#: sql_help.c:2787 sql_help.c:2826 sql_help.c:2936 sql_help.c:2949 -#: sql_help.c:2963 sql_help.c:3004 sql_help.c:3012 sql_help.c:3034 -#: sql_help.c:3051 sql_help.c:3078 sql_help.c:3285 sql_help.c:3990 -#: sql_help.c:4731 sql_help.c:4732 sql_help.c:4733 sql_help.c:4734 +#: sql_help.c:128 sql_help.c:422 sql_help.c:493 sql_help.c:499 sql_help.c:511 +#: sql_help.c:573 sql_help.c:627 sql_help.c:709 sql_help.c:719 sql_help.c:906 +#: sql_help.c:934 sql_help.c:989 sql_help.c:1058 sql_help.c:1132 +#: sql_help.c:1177 sql_help.c:1181 sql_help.c:1185 sql_help.c:1188 +#: sql_help.c:1193 sql_help.c:1196 sql_help.c:1212 sql_help.c:1388 +#: sql_help.c:1412 sql_help.c:1465 sql_help.c:1473 sql_help.c:1493 +#: sql_help.c:1550 sql_help.c:1634 sql_help.c:1688 sql_help.c:1711 +#: sql_help.c:2332 sql_help.c:2390 sql_help.c:2399 sql_help.c:2408 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2530 sql_help.c:2533 +#: sql_help.c:2567 sql_help.c:2668 sql_help.c:2669 sql_help.c:2692 +#: sql_help.c:2817 sql_help.c:2856 sql_help.c:2967 sql_help.c:2980 +#: sql_help.c:2994 sql_help.c:3040 sql_help.c:3048 sql_help.c:3070 +#: sql_help.c:3087 sql_help.c:3114 sql_help.c:3321 sql_help.c:4028 +#: sql_help.c:4773 sql_help.c:4774 sql_help.c:4775 sql_help.c:4776 msgid "value" msgstr "Wert" -#: sql_help.c:202 +#: sql_help.c:214 msgid "target_role" msgstr "Zielrolle" -#: sql_help.c:203 sql_help.c:921 sql_help.c:2300 sql_help.c:2669 -#: sql_help.c:2742 sql_help.c:2747 sql_help.c:3920 sql_help.c:3929 -#: sql_help.c:3948 sql_help.c:3960 sql_help.c:4383 sql_help.c:4392 -#: sql_help.c:4411 sql_help.c:4423 +#: sql_help.c:215 sql_help.c:943 sql_help.c:2316 sql_help.c:2697 +#: sql_help.c:2770 sql_help.c:2775 sql_help.c:3958 sql_help.c:3967 +#: sql_help.c:3986 sql_help.c:3998 sql_help.c:4425 sql_help.c:4434 +#: sql_help.c:4453 sql_help.c:4465 msgid "schema_name" msgstr "Schemaname" -#: sql_help.c:204 +#: sql_help.c:216 msgid "abbreviated_grant_or_revoke" msgstr "abgekürztes_Grant_oder_Revoke" -#: sql_help.c:205 +#: sql_help.c:217 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "wobei abgekürztes_Grant_oder_Revoke Folgendes sein kann:" -#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 -#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:576 sql_help.c:612 sql_help.c:680 sql_help.c:830 sql_help.c:977 -#: sql_help.c:1336 sql_help.c:1684 sql_help.c:2475 sql_help.c:2476 -#: sql_help.c:2477 sql_help.c:2478 sql_help.c:2479 sql_help.c:2613 -#: sql_help.c:2700 sql_help.c:2701 sql_help.c:2702 sql_help.c:3267 -#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3270 sql_help.c:3271 -#: sql_help.c:3969 sql_help.c:3973 sql_help.c:4432 sql_help.c:4436 -#: sql_help.c:4752 +#: sql_help.c:218 sql_help.c:219 sql_help.c:220 sql_help.c:221 sql_help.c:222 +#: sql_help.c:223 sql_help.c:224 sql_help.c:225 sql_help.c:226 sql_help.c:227 +#: sql_help.c:228 sql_help.c:229 sql_help.c:598 sql_help.c:634 sql_help.c:702 +#: sql_help.c:852 sql_help.c:999 sql_help.c:1354 sql_help.c:1698 +#: sql_help.c:2503 sql_help.c:2504 sql_help.c:2505 sql_help.c:2506 +#: sql_help.c:2507 sql_help.c:2641 sql_help.c:2728 sql_help.c:2729 +#: sql_help.c:2730 sql_help.c:3303 sql_help.c:3304 sql_help.c:3305 +#: sql_help.c:3306 sql_help.c:3307 sql_help.c:4007 sql_help.c:4011 +#: sql_help.c:4474 sql_help.c:4478 sql_help.c:4794 msgid "role_name" msgstr "Rollenname" -#: sql_help.c:241 sql_help.c:464 sql_help.c:920 sql_help.c:1362 sql_help.c:1364 -#: sql_help.c:1368 sql_help.c:1418 sql_help.c:1430 sql_help.c:1455 -#: sql_help.c:1714 sql_help.c:2269 sql_help.c:2273 sql_help.c:2385 -#: sql_help.c:2390 sql_help.c:2498 sql_help.c:2668 sql_help.c:2803 -#: sql_help.c:2808 sql_help.c:2810 sql_help.c:2931 sql_help.c:2944 -#: sql_help.c:2958 sql_help.c:2967 sql_help.c:2979 sql_help.c:3008 -#: sql_help.c:4021 sql_help.c:4036 sql_help.c:4038 sql_help.c:4134 -#: sql_help.c:4137 sql_help.c:4139 sql_help.c:4602 sql_help.c:4603 -#: sql_help.c:4612 sql_help.c:4659 sql_help.c:4660 sql_help.c:4661 -#: sql_help.c:4662 sql_help.c:4663 sql_help.c:4664 sql_help.c:4705 -#: sql_help.c:4706 sql_help.c:4711 sql_help.c:4716 sql_help.c:4860 -#: sql_help.c:4861 sql_help.c:4870 sql_help.c:4917 sql_help.c:4918 -#: sql_help.c:4919 sql_help.c:4920 sql_help.c:4921 sql_help.c:4922 -#: sql_help.c:4977 sql_help.c:4979 sql_help.c:5045 sql_help.c:5105 -#: sql_help.c:5106 sql_help.c:5115 sql_help.c:5162 sql_help.c:5163 -#: sql_help.c:5164 sql_help.c:5165 sql_help.c:5166 sql_help.c:5167 +#: sql_help.c:260 sql_help.c:279 sql_help.c:486 sql_help.c:942 sql_help.c:1370 +#: sql_help.c:1372 sql_help.c:1376 sql_help.c:1427 sql_help.c:1439 +#: sql_help.c:1469 sql_help.c:1728 sql_help.c:2285 sql_help.c:2289 +#: sql_help.c:2411 sql_help.c:2417 sql_help.c:2526 sql_help.c:2696 +#: sql_help.c:2833 sql_help.c:2838 sql_help.c:2840 sql_help.c:2962 +#: sql_help.c:2975 sql_help.c:2989 sql_help.c:2998 sql_help.c:3010 +#: sql_help.c:3044 sql_help.c:4060 sql_help.c:4076 sql_help.c:4078 +#: sql_help.c:4176 sql_help.c:4179 sql_help.c:4181 sql_help.c:4644 +#: sql_help.c:4645 sql_help.c:4654 sql_help.c:4701 sql_help.c:4702 +#: sql_help.c:4703 sql_help.c:4704 sql_help.c:4705 sql_help.c:4706 +#: sql_help.c:4747 sql_help.c:4748 sql_help.c:4753 sql_help.c:4758 +#: sql_help.c:4902 sql_help.c:4903 sql_help.c:4912 sql_help.c:4959 +#: sql_help.c:4960 sql_help.c:4961 sql_help.c:4962 sql_help.c:4963 +#: sql_help.c:4964 sql_help.c:5020 sql_help.c:5022 sql_help.c:5089 +#: sql_help.c:5149 sql_help.c:5150 sql_help.c:5159 sql_help.c:5206 +#: sql_help.c:5207 sql_help.c:5208 sql_help.c:5209 sql_help.c:5210 +#: sql_help.c:5211 msgid "expression" msgstr "Ausdruck" -#: sql_help.c:244 sql_help.c:2270 +#: sql_help.c:263 sql_help.c:2286 msgid "domain_constraint" msgstr "Domänen-Constraint" -#: sql_help.c:246 sql_help.c:248 sql_help.c:251 sql_help.c:479 sql_help.c:480 -#: sql_help.c:1329 sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 -#: sql_help.c:1417 sql_help.c:1429 sql_help.c:1446 sql_help.c:1878 -#: sql_help.c:1880 sql_help.c:2272 sql_help.c:2384 sql_help.c:2389 -#: sql_help.c:2966 sql_help.c:2978 sql_help.c:4033 +#: sql_help.c:265 sql_help.c:267 sql_help.c:270 sql_help.c:278 sql_help.c:501 +#: sql_help.c:502 sql_help.c:1347 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:1398 sql_help.c:1399 sql_help.c:1426 sql_help.c:1438 +#: sql_help.c:1460 sql_help.c:1892 sql_help.c:1894 sql_help.c:2288 +#: sql_help.c:2410 sql_help.c:2415 sql_help.c:2997 sql_help.c:3009 +#: sql_help.c:4073 msgid "constraint_name" msgstr "Constraint-Name" -#: sql_help.c:249 sql_help.c:1330 +#: sql_help.c:268 sql_help.c:1348 msgid "new_constraint_name" msgstr "neuer_Constraint-Name" -#: sql_help.c:322 sql_help.c:1107 +#: sql_help.c:277 sql_help.c:2287 +msgid "where domain_constraint is:" +msgstr "wobei Domänen-Constraint Folgendes ist:" + +#: sql_help.c:344 sql_help.c:1130 msgid "new_version" msgstr "neue_Version" -#: sql_help.c:326 sql_help.c:328 +#: sql_help.c:348 sql_help.c:350 msgid "member_object" msgstr "Elementobjekt" -#: sql_help.c:329 +#: sql_help.c:351 msgid "where member_object is:" msgstr "wobei Elementobjekt Folgendes ist:" -#: sql_help.c:330 sql_help.c:335 sql_help.c:336 sql_help.c:337 sql_help.c:338 -#: sql_help.c:339 sql_help.c:340 sql_help.c:345 sql_help.c:349 sql_help.c:351 -#: sql_help.c:353 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:365 -#: sql_help.c:366 sql_help.c:367 sql_help.c:368 sql_help.c:369 sql_help.c:372 -#: sql_help.c:373 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 -#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 -#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 -#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 -#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 -#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4505 sql_help.c:4510 -#: sql_help.c:4511 sql_help.c:4512 sql_help.c:4513 sql_help.c:4519 -#: sql_help.c:4520 sql_help.c:4525 sql_help.c:4526 sql_help.c:4531 -#: sql_help.c:4532 sql_help.c:4533 sql_help.c:4534 sql_help.c:4535 -#: sql_help.c:4536 +#: sql_help.c:352 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:367 sql_help.c:371 sql_help.c:373 +#: sql_help.c:375 sql_help.c:384 sql_help.c:385 sql_help.c:386 sql_help.c:387 +#: sql_help.c:388 sql_help.c:389 sql_help.c:390 sql_help.c:391 sql_help.c:394 +#: sql_help.c:395 sql_help.c:1884 sql_help.c:1889 sql_help.c:1896 +#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 +#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1907 sql_help.c:1909 +#: sql_help.c:1913 sql_help.c:1915 sql_help.c:1919 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1932 sql_help.c:1933 sql_help.c:1934 +#: sql_help.c:1935 sql_help.c:1936 sql_help.c:1937 sql_help.c:1938 +#: sql_help.c:1939 sql_help.c:1940 sql_help.c:1941 sql_help.c:1942 +#: sql_help.c:1947 sql_help.c:1948 sql_help.c:4547 sql_help.c:4552 +#: sql_help.c:4553 sql_help.c:4554 sql_help.c:4555 sql_help.c:4561 +#: sql_help.c:4562 sql_help.c:4567 sql_help.c:4568 sql_help.c:4573 +#: sql_help.c:4574 sql_help.c:4575 sql_help.c:4576 sql_help.c:4577 +#: sql_help.c:4578 msgid "object_name" msgstr "Objektname" -#: sql_help.c:331 sql_help.c:1871 sql_help.c:4508 +#: sql_help.c:353 sql_help.c:1885 sql_help.c:4550 msgid "aggregate_name" msgstr "Aggregatname" -#: sql_help.c:333 sql_help.c:1873 sql_help.c:2163 sql_help.c:2167 -#: sql_help.c:2169 sql_help.c:3394 +#: sql_help.c:355 sql_help.c:1887 sql_help.c:2179 sql_help.c:2183 +#: sql_help.c:2185 sql_help.c:3432 msgid "source_type" msgstr "Quelltyp" -#: sql_help.c:334 sql_help.c:1874 sql_help.c:2164 sql_help.c:2168 -#: sql_help.c:2170 sql_help.c:3395 +#: sql_help.c:356 sql_help.c:1888 sql_help.c:2180 sql_help.c:2184 +#: sql_help.c:2186 sql_help.c:3433 msgid "target_type" msgstr "Zieltyp" -#: sql_help.c:341 sql_help.c:794 sql_help.c:1889 sql_help.c:2165 -#: sql_help.c:2208 sql_help.c:2288 sql_help.c:2556 sql_help.c:2587 -#: sql_help.c:3154 sql_help.c:4407 sql_help.c:4514 sql_help.c:4631 -#: sql_help.c:4635 sql_help.c:4639 sql_help.c:4642 sql_help.c:4889 -#: sql_help.c:4893 sql_help.c:4897 sql_help.c:4900 sql_help.c:5134 -#: sql_help.c:5138 sql_help.c:5142 sql_help.c:5145 +#: sql_help.c:363 sql_help.c:816 sql_help.c:1903 sql_help.c:2181 +#: sql_help.c:2224 sql_help.c:2304 sql_help.c:2584 sql_help.c:2615 +#: sql_help.c:3190 sql_help.c:4449 sql_help.c:4556 sql_help.c:4673 +#: sql_help.c:4677 sql_help.c:4681 sql_help.c:4684 sql_help.c:4931 +#: sql_help.c:4935 sql_help.c:4939 sql_help.c:4942 sql_help.c:5178 +#: sql_help.c:5182 sql_help.c:5186 sql_help.c:5189 msgid "function_name" msgstr "Funktionsname" -#: sql_help.c:346 sql_help.c:787 sql_help.c:1896 sql_help.c:2580 +#: sql_help.c:368 sql_help.c:809 sql_help.c:1910 sql_help.c:2608 msgid "operator_name" msgstr "Operatorname" -#: sql_help.c:347 sql_help.c:721 sql_help.c:725 sql_help.c:729 sql_help.c:1897 -#: sql_help.c:2557 sql_help.c:3518 +#: sql_help.c:369 sql_help.c:743 sql_help.c:747 sql_help.c:751 sql_help.c:1911 +#: sql_help.c:2585 sql_help.c:3556 msgid "left_type" msgstr "linker_Typ" -#: sql_help.c:348 sql_help.c:722 sql_help.c:726 sql_help.c:730 sql_help.c:1898 -#: sql_help.c:2558 sql_help.c:3519 +#: sql_help.c:370 sql_help.c:744 sql_help.c:748 sql_help.c:752 sql_help.c:1912 +#: sql_help.c:2586 sql_help.c:3557 msgid "right_type" msgstr "rechter_Typ" -#: sql_help.c:350 sql_help.c:352 sql_help.c:750 sql_help.c:753 sql_help.c:756 -#: sql_help.c:785 sql_help.c:797 sql_help.c:805 sql_help.c:808 sql_help.c:811 -#: sql_help.c:1435 sql_help.c:1900 sql_help.c:1902 sql_help.c:2577 -#: sql_help.c:2598 sql_help.c:2984 sql_help.c:3528 sql_help.c:3537 +#: sql_help.c:372 sql_help.c:374 sql_help.c:772 sql_help.c:775 sql_help.c:778 +#: sql_help.c:807 sql_help.c:819 sql_help.c:827 sql_help.c:830 sql_help.c:833 +#: sql_help.c:1447 sql_help.c:1914 sql_help.c:1916 sql_help.c:2605 +#: sql_help.c:2626 sql_help.c:3018 sql_help.c:3566 sql_help.c:3575 msgid "index_method" msgstr "Indexmethode" -#: sql_help.c:354 sql_help.c:1906 sql_help.c:4521 +#: sql_help.c:376 sql_help.c:1920 sql_help.c:4563 msgid "procedure_name" msgstr "Prozedurname" -#: sql_help.c:358 sql_help.c:1912 sql_help.c:3944 sql_help.c:4527 +#: sql_help.c:380 sql_help.c:1926 sql_help.c:3982 sql_help.c:4569 msgid "routine_name" msgstr "Routinenname" -#: sql_help.c:370 sql_help.c:1407 sql_help.c:1929 sql_help.c:2432 -#: sql_help.c:2638 sql_help.c:2939 sql_help.c:3121 sql_help.c:3699 -#: sql_help.c:3966 sql_help.c:4429 +#: sql_help.c:392 sql_help.c:1416 sql_help.c:1943 sql_help.c:2460 +#: sql_help.c:2666 sql_help.c:2970 sql_help.c:3157 sql_help.c:3737 +#: sql_help.c:4004 sql_help.c:4471 msgid "type_name" msgstr "Typname" -#: sql_help.c:371 sql_help.c:1930 sql_help.c:2431 sql_help.c:2637 -#: sql_help.c:3122 sql_help.c:3352 sql_help.c:3700 sql_help.c:3951 -#: sql_help.c:4414 +#: sql_help.c:393 sql_help.c:1944 sql_help.c:2459 sql_help.c:2665 +#: sql_help.c:3158 sql_help.c:3390 sql_help.c:3738 sql_help.c:3989 +#: sql_help.c:4456 msgid "lang_name" msgstr "Sprachname" -#: sql_help.c:374 +#: sql_help.c:396 msgid "and aggregate_signature is:" msgstr "und Aggregatsignatur Folgendes ist:" -#: sql_help.c:397 sql_help.c:2030 sql_help.c:2313 +#: sql_help.c:419 sql_help.c:2046 sql_help.c:2329 msgid "handler_function" msgstr "Handler-Funktion" -#: sql_help.c:398 sql_help.c:2314 +#: sql_help.c:420 sql_help.c:2330 msgid "validator_function" msgstr "Validator-Funktion" -#: sql_help.c:446 sql_help.c:525 sql_help.c:669 sql_help.c:861 sql_help.c:1011 -#: sql_help.c:1324 sql_help.c:1611 +#: sql_help.c:468 sql_help.c:547 sql_help.c:691 sql_help.c:883 sql_help.c:1033 +#: sql_help.c:1342 sql_help.c:1625 msgid "action" msgstr "Aktion" -#: sql_help.c:448 sql_help.c:455 sql_help.c:459 sql_help.c:460 sql_help.c:463 -#: sql_help.c:465 sql_help.c:466 sql_help.c:467 sql_help.c:469 sql_help.c:472 -#: sql_help.c:474 sql_help.c:475 sql_help.c:673 sql_help.c:683 sql_help.c:685 -#: sql_help.c:688 sql_help.c:690 sql_help.c:691 sql_help.c:919 sql_help.c:1088 -#: sql_help.c:1326 sql_help.c:1354 sql_help.c:1358 sql_help.c:1359 -#: sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 -#: sql_help.c:1369 sql_help.c:1370 sql_help.c:1372 sql_help.c:1375 -#: sql_help.c:1376 sql_help.c:1378 sql_help.c:1381 sql_help.c:1383 -#: sql_help.c:1384 sql_help.c:1431 sql_help.c:1433 sql_help.c:1440 -#: sql_help.c:1449 sql_help.c:1454 sql_help.c:1461 sql_help.c:1462 -#: sql_help.c:1713 sql_help.c:1716 sql_help.c:1720 sql_help.c:1756 -#: sql_help.c:1877 sql_help.c:1993 sql_help.c:1999 sql_help.c:2013 -#: sql_help.c:2014 sql_help.c:2015 sql_help.c:2363 sql_help.c:2376 -#: sql_help.c:2429 sql_help.c:2497 sql_help.c:2503 sql_help.c:2536 -#: sql_help.c:2667 sql_help.c:2772 sql_help.c:2807 sql_help.c:2809 -#: sql_help.c:2921 sql_help.c:2930 sql_help.c:2940 sql_help.c:2943 -#: sql_help.c:2953 sql_help.c:2957 sql_help.c:2980 sql_help.c:2982 -#: sql_help.c:2989 sql_help.c:3002 sql_help.c:3007 sql_help.c:3014 -#: sql_help.c:3015 sql_help.c:3031 sql_help.c:3157 sql_help.c:3297 -#: sql_help.c:3923 sql_help.c:3924 sql_help.c:4020 sql_help.c:4035 -#: sql_help.c:4037 sql_help.c:4039 sql_help.c:4133 sql_help.c:4136 -#: sql_help.c:4138 sql_help.c:4140 sql_help.c:4386 sql_help.c:4387 -#: sql_help.c:4507 sql_help.c:4668 sql_help.c:4675 sql_help.c:4677 -#: sql_help.c:4926 sql_help.c:4933 sql_help.c:4935 sql_help.c:4976 -#: sql_help.c:4978 sql_help.c:4980 sql_help.c:5033 sql_help.c:5171 -#: sql_help.c:5178 sql_help.c:5180 +#: sql_help.c:470 sql_help.c:477 sql_help.c:481 sql_help.c:482 sql_help.c:485 +#: sql_help.c:487 sql_help.c:488 sql_help.c:489 sql_help.c:491 sql_help.c:494 +#: sql_help.c:496 sql_help.c:497 sql_help.c:695 sql_help.c:705 sql_help.c:707 +#: sql_help.c:710 sql_help.c:712 sql_help.c:713 sql_help.c:941 sql_help.c:1111 +#: sql_help.c:1344 sql_help.c:1362 sql_help.c:1366 sql_help.c:1367 +#: sql_help.c:1371 sql_help.c:1373 sql_help.c:1374 sql_help.c:1375 +#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1380 sql_help.c:1383 +#: sql_help.c:1384 sql_help.c:1386 sql_help.c:1389 sql_help.c:1391 +#: sql_help.c:1392 sql_help.c:1440 sql_help.c:1441 sql_help.c:1442 +#: sql_help.c:1444 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1463 sql_help.c:1468 sql_help.c:1475 sql_help.c:1476 +#: sql_help.c:1727 sql_help.c:1730 sql_help.c:1734 sql_help.c:1770 +#: sql_help.c:1891 sql_help.c:2008 sql_help.c:2014 sql_help.c:2028 +#: sql_help.c:2029 sql_help.c:2030 sql_help.c:2387 sql_help.c:2402 +#: sql_help.c:2416 sql_help.c:2457 sql_help.c:2525 sql_help.c:2531 +#: sql_help.c:2564 sql_help.c:2695 sql_help.c:2802 sql_help.c:2837 +#: sql_help.c:2839 sql_help.c:2952 sql_help.c:2961 sql_help.c:2971 +#: sql_help.c:2974 sql_help.c:2984 sql_help.c:2988 sql_help.c:3011 +#: sql_help.c:3012 sql_help.c:3013 sql_help.c:3015 sql_help.c:3016 +#: sql_help.c:3023 sql_help.c:3024 sql_help.c:3038 sql_help.c:3043 +#: sql_help.c:3050 sql_help.c:3051 sql_help.c:3067 sql_help.c:3193 +#: sql_help.c:3333 sql_help.c:3961 sql_help.c:3962 sql_help.c:4059 +#: sql_help.c:4075 sql_help.c:4077 sql_help.c:4079 sql_help.c:4175 +#: sql_help.c:4178 sql_help.c:4180 sql_help.c:4182 sql_help.c:4428 +#: sql_help.c:4429 sql_help.c:4549 sql_help.c:4710 sql_help.c:4717 +#: sql_help.c:4719 sql_help.c:4968 sql_help.c:4975 sql_help.c:4977 +#: sql_help.c:5019 sql_help.c:5021 sql_help.c:5023 sql_help.c:5077 +#: sql_help.c:5215 sql_help.c:5222 sql_help.c:5224 msgid "column_name" msgstr "Spaltenname" -#: sql_help.c:449 sql_help.c:674 sql_help.c:1327 sql_help.c:1721 +#: sql_help.c:471 sql_help.c:696 sql_help.c:1345 sql_help.c:1735 msgid "new_column_name" msgstr "neuer_Spaltenname" -#: sql_help.c:454 sql_help.c:546 sql_help.c:682 sql_help.c:882 sql_help.c:1032 -#: sql_help.c:1353 sql_help.c:1621 +#: sql_help.c:476 sql_help.c:568 sql_help.c:704 sql_help.c:904 sql_help.c:1054 +#: sql_help.c:1361 sql_help.c:1635 msgid "where action is one of:" msgstr "wobei Aktion Folgendes sein kann:" -#: sql_help.c:456 sql_help.c:461 sql_help.c:1080 sql_help.c:1355 -#: sql_help.c:1360 sql_help.c:1623 sql_help.c:1627 sql_help.c:2267 -#: sql_help.c:2364 sql_help.c:2576 sql_help.c:2765 sql_help.c:2922 -#: sql_help.c:3204 sql_help.c:4192 +#: sql_help.c:478 sql_help.c:483 sql_help.c:1103 sql_help.c:1363 +#: sql_help.c:1368 sql_help.c:1637 sql_help.c:1641 sql_help.c:2283 +#: sql_help.c:2388 sql_help.c:2604 sql_help.c:2795 sql_help.c:2953 +#: sql_help.c:3240 sql_help.c:4234 msgid "data_type" msgstr "Datentyp" -#: sql_help.c:457 sql_help.c:462 sql_help.c:1356 sql_help.c:1361 -#: sql_help.c:1456 sql_help.c:1624 sql_help.c:1628 sql_help.c:2268 -#: sql_help.c:2367 sql_help.c:2499 sql_help.c:2924 sql_help.c:2932 -#: sql_help.c:2945 sql_help.c:2959 sql_help.c:3009 sql_help.c:3205 -#: sql_help.c:3211 sql_help.c:4030 +#: sql_help.c:479 sql_help.c:484 sql_help.c:1364 sql_help.c:1369 +#: sql_help.c:1470 sql_help.c:1638 sql_help.c:1642 sql_help.c:2284 +#: sql_help.c:2391 sql_help.c:2527 sql_help.c:2955 sql_help.c:2963 +#: sql_help.c:2976 sql_help.c:2990 sql_help.c:3045 sql_help.c:3241 +#: sql_help.c:3247 sql_help.c:4070 msgid "collation" msgstr "Sortierfolge" -#: sql_help.c:458 sql_help.c:1357 sql_help.c:2368 sql_help.c:2377 -#: sql_help.c:2925 sql_help.c:2941 sql_help.c:2954 +#: sql_help.c:480 sql_help.c:1365 sql_help.c:2392 sql_help.c:2403 +#: sql_help.c:2956 sql_help.c:2972 sql_help.c:2985 msgid "column_constraint" msgstr "Spalten-Constraint" -#: sql_help.c:468 sql_help.c:610 sql_help.c:684 sql_help.c:1377 sql_help.c:5027 +#: sql_help.c:490 sql_help.c:632 sql_help.c:706 sql_help.c:1385 sql_help.c:5071 msgid "integer" msgstr "ganze_Zahl" -#: sql_help.c:470 sql_help.c:473 sql_help.c:686 sql_help.c:689 sql_help.c:1379 -#: sql_help.c:1382 +#: sql_help.c:492 sql_help.c:495 sql_help.c:708 sql_help.c:711 sql_help.c:1387 +#: sql_help.c:1390 msgid "attribute_option" msgstr "Attributoption" -#: sql_help.c:478 sql_help.c:1386 sql_help.c:2369 sql_help.c:2378 -#: sql_help.c:2926 sql_help.c:2942 sql_help.c:2955 +#: sql_help.c:500 sql_help.c:1394 sql_help.c:2393 sql_help.c:2404 +#: sql_help.c:2957 sql_help.c:2973 sql_help.c:2986 msgid "table_constraint" msgstr "Tabellen-Constraint" -#: sql_help.c:481 sql_help.c:482 sql_help.c:483 sql_help.c:484 sql_help.c:1391 -#: sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 sql_help.c:1931 +#: sql_help.c:503 sql_help.c:504 sql_help.c:505 sql_help.c:506 sql_help.c:1400 +#: sql_help.c:1401 sql_help.c:1402 sql_help.c:1403 sql_help.c:1945 msgid "trigger_name" msgstr "Triggername" -#: sql_help.c:485 sql_help.c:486 sql_help.c:1405 sql_help.c:1406 -#: sql_help.c:2370 sql_help.c:2375 sql_help.c:2929 sql_help.c:2952 +#: sql_help.c:507 sql_help.c:508 sql_help.c:1414 sql_help.c:1415 +#: sql_help.c:2396 sql_help.c:2401 sql_help.c:2960 sql_help.c:2983 msgid "parent_table" msgstr "Elterntabelle" -#: sql_help.c:545 sql_help.c:602 sql_help.c:671 sql_help.c:881 sql_help.c:1031 -#: sql_help.c:1580 sql_help.c:2299 +#: sql_help.c:567 sql_help.c:624 sql_help.c:693 sql_help.c:903 sql_help.c:1053 +#: sql_help.c:1594 sql_help.c:2315 msgid "extension_name" msgstr "Erweiterungsname" -#: sql_help.c:547 sql_help.c:1033 sql_help.c:2433 +#: sql_help.c:569 sql_help.c:1055 sql_help.c:2461 msgid "execution_cost" msgstr "Ausführungskosten" -#: sql_help.c:548 sql_help.c:1034 sql_help.c:2434 +#: sql_help.c:570 sql_help.c:1056 sql_help.c:2462 msgid "result_rows" msgstr "Ergebniszeilen" -#: sql_help.c:549 sql_help.c:2435 +#: sql_help.c:571 sql_help.c:2463 msgid "support_function" msgstr "Support-Funktion" -#: sql_help.c:571 sql_help.c:573 sql_help.c:956 sql_help.c:964 sql_help.c:968 -#: sql_help.c:971 sql_help.c:974 sql_help.c:1663 sql_help.c:1671 -#: sql_help.c:1675 sql_help.c:1678 sql_help.c:1681 sql_help.c:2743 -#: sql_help.c:2745 sql_help.c:2748 sql_help.c:2749 sql_help.c:3921 -#: sql_help.c:3922 sql_help.c:3926 sql_help.c:3927 sql_help.c:3930 -#: sql_help.c:3931 sql_help.c:3933 sql_help.c:3934 sql_help.c:3936 -#: sql_help.c:3937 sql_help.c:3939 sql_help.c:3940 sql_help.c:3942 -#: sql_help.c:3943 sql_help.c:3949 sql_help.c:3950 sql_help.c:3952 -#: sql_help.c:3953 sql_help.c:3955 sql_help.c:3956 sql_help.c:3958 -#: sql_help.c:3959 sql_help.c:3961 sql_help.c:3962 sql_help.c:3964 -#: sql_help.c:3965 sql_help.c:3967 sql_help.c:3968 sql_help.c:3970 -#: sql_help.c:3971 sql_help.c:4384 sql_help.c:4385 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4393 sql_help.c:4394 sql_help.c:4396 -#: sql_help.c:4397 sql_help.c:4399 sql_help.c:4400 sql_help.c:4402 -#: sql_help.c:4403 sql_help.c:4405 sql_help.c:4406 sql_help.c:4412 -#: sql_help.c:4413 sql_help.c:4415 sql_help.c:4416 sql_help.c:4418 -#: sql_help.c:4419 sql_help.c:4421 sql_help.c:4422 sql_help.c:4424 -#: sql_help.c:4425 sql_help.c:4427 sql_help.c:4428 sql_help.c:4430 -#: sql_help.c:4431 sql_help.c:4433 sql_help.c:4434 +#: sql_help.c:593 sql_help.c:595 sql_help.c:978 sql_help.c:986 sql_help.c:990 +#: sql_help.c:993 sql_help.c:996 sql_help.c:1677 sql_help.c:1685 +#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1695 sql_help.c:2771 +#: sql_help.c:2773 sql_help.c:2776 sql_help.c:2777 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:3965 sql_help.c:3968 +#: sql_help.c:3969 sql_help.c:3971 sql_help.c:3972 sql_help.c:3974 +#: sql_help.c:3975 sql_help.c:3977 sql_help.c:3978 sql_help.c:3980 +#: sql_help.c:3981 sql_help.c:3987 sql_help.c:3988 sql_help.c:3990 +#: sql_help.c:3991 sql_help.c:3993 sql_help.c:3994 sql_help.c:3996 +#: sql_help.c:3997 sql_help.c:3999 sql_help.c:4000 sql_help.c:4002 +#: sql_help.c:4003 sql_help.c:4005 sql_help.c:4006 sql_help.c:4008 +#: sql_help.c:4009 sql_help.c:4426 sql_help.c:4427 sql_help.c:4431 +#: sql_help.c:4432 sql_help.c:4435 sql_help.c:4436 sql_help.c:4438 +#: sql_help.c:4439 sql_help.c:4441 sql_help.c:4442 sql_help.c:4444 +#: sql_help.c:4445 sql_help.c:4447 sql_help.c:4448 sql_help.c:4454 +#: sql_help.c:4455 sql_help.c:4457 sql_help.c:4458 sql_help.c:4460 +#: sql_help.c:4461 sql_help.c:4463 sql_help.c:4464 sql_help.c:4466 +#: sql_help.c:4467 sql_help.c:4469 sql_help.c:4470 sql_help.c:4472 +#: sql_help.c:4473 sql_help.c:4475 sql_help.c:4476 msgid "role_specification" msgstr "Rollenangabe" -#: sql_help.c:572 sql_help.c:574 sql_help.c:1694 sql_help.c:2234 -#: sql_help.c:2751 sql_help.c:3282 sql_help.c:3733 sql_help.c:4762 +#: sql_help.c:594 sql_help.c:596 sql_help.c:1708 sql_help.c:2250 +#: sql_help.c:2779 sql_help.c:3318 sql_help.c:3771 sql_help.c:4804 msgid "user_name" msgstr "Benutzername" -#: sql_help.c:575 sql_help.c:976 sql_help.c:1683 sql_help.c:2750 -#: sql_help.c:3972 sql_help.c:4435 +#: sql_help.c:597 sql_help.c:998 sql_help.c:1697 sql_help.c:2778 +#: sql_help.c:4010 sql_help.c:4477 msgid "where role_specification can be:" msgstr "wobei Rollenangabe Folgendes sein kann:" -#: sql_help.c:577 +#: sql_help.c:599 msgid "group_name" msgstr "Gruppenname" -#: sql_help.c:598 sql_help.c:1452 sql_help.c:2246 sql_help.c:2506 -#: sql_help.c:2540 sql_help.c:2937 sql_help.c:2950 sql_help.c:2964 -#: sql_help.c:3005 sql_help.c:3035 sql_help.c:3047 sql_help.c:3963 -#: sql_help.c:4426 +#: sql_help.c:620 sql_help.c:1466 sql_help.c:2262 sql_help.c:2534 +#: sql_help.c:2568 sql_help.c:2968 sql_help.c:2981 sql_help.c:2995 +#: sql_help.c:3041 sql_help.c:3071 sql_help.c:3083 sql_help.c:4001 +#: sql_help.c:4468 msgid "tablespace_name" msgstr "Tablespace-Name" -#: sql_help.c:600 sql_help.c:693 sql_help.c:1399 sql_help.c:1409 -#: sql_help.c:1447 sql_help.c:1809 +#: sql_help.c:622 sql_help.c:715 sql_help.c:1408 sql_help.c:1418 +#: sql_help.c:1461 sql_help.c:1823 msgid "index_name" msgstr "Indexname" -#: sql_help.c:604 sql_help.c:607 sql_help.c:696 sql_help.c:698 sql_help.c:1402 -#: sql_help.c:1404 sql_help.c:1450 sql_help.c:2504 sql_help.c:2538 -#: sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 sql_help.c:3003 -#: sql_help.c:3033 +#: sql_help.c:626 sql_help.c:629 sql_help.c:718 sql_help.c:720 sql_help.c:1411 +#: sql_help.c:1413 sql_help.c:1464 sql_help.c:2532 sql_help.c:2566 +#: sql_help.c:2966 sql_help.c:2979 sql_help.c:2993 sql_help.c:3039 +#: sql_help.c:3069 msgid "storage_parameter" msgstr "Storage-Parameter" -#: sql_help.c:609 +#: sql_help.c:631 msgid "column_number" msgstr "Spaltennummer" -#: sql_help.c:633 sql_help.c:1894 sql_help.c:4518 +#: sql_help.c:655 sql_help.c:1908 sql_help.c:4560 msgid "large_object_oid" msgstr "Large-Object-OID" -#: sql_help.c:692 sql_help.c:1385 sql_help.c:2923 +#: sql_help.c:714 sql_help.c:1393 sql_help.c:2954 msgid "compression_method" msgstr "Kompressionsmethode" -#: sql_help.c:694 sql_help.c:1400 +#: sql_help.c:716 sql_help.c:1409 msgid "new_access_method" msgstr "neue_Zugriffsmethode" -#: sql_help.c:731 sql_help.c:2561 +#: sql_help.c:753 sql_help.c:2589 msgid "res_proc" msgstr "Res-Funktion" -#: sql_help.c:732 sql_help.c:2562 +#: sql_help.c:754 sql_help.c:2590 msgid "join_proc" msgstr "Join-Funktion" -#: sql_help.c:733 sql_help.c:2559 +#: sql_help.c:755 sql_help.c:2587 msgid "com_op" msgstr "Kommutator-Op" -#: sql_help.c:734 sql_help.c:2560 +#: sql_help.c:756 sql_help.c:2588 msgid "neg_op" msgstr "Umkehrungs-Op" -#: sql_help.c:786 sql_help.c:798 sql_help.c:2579 +#: sql_help.c:808 sql_help.c:820 sql_help.c:2607 msgid "strategy_number" msgstr "Strategienummer" -#: sql_help.c:788 sql_help.c:789 sql_help.c:792 sql_help.c:793 sql_help.c:799 -#: sql_help.c:800 sql_help.c:802 sql_help.c:803 sql_help.c:2581 sql_help.c:2582 -#: sql_help.c:2585 sql_help.c:2586 +#: sql_help.c:810 sql_help.c:811 sql_help.c:814 sql_help.c:815 sql_help.c:821 +#: sql_help.c:822 sql_help.c:824 sql_help.c:825 sql_help.c:2609 sql_help.c:2610 +#: sql_help.c:2613 sql_help.c:2614 msgid "op_type" msgstr "Optyp" -#: sql_help.c:790 sql_help.c:2583 +#: sql_help.c:812 sql_help.c:2611 msgid "sort_family_name" msgstr "Sortierfamilienname" -#: sql_help.c:791 sql_help.c:801 sql_help.c:2584 +#: sql_help.c:813 sql_help.c:823 sql_help.c:2612 msgid "support_number" msgstr "Unterst-Nummer" -#: sql_help.c:795 sql_help.c:2166 sql_help.c:2588 sql_help.c:3124 -#: sql_help.c:3126 +#: sql_help.c:817 sql_help.c:2182 sql_help.c:2616 sql_help.c:3160 +#: sql_help.c:3162 msgid "argument_type" msgstr "Argumenttyp" -#: sql_help.c:826 sql_help.c:829 sql_help.c:918 sql_help.c:1047 sql_help.c:1087 -#: sql_help.c:1576 sql_help.c:1579 sql_help.c:1755 sql_help.c:1808 -#: sql_help.c:1879 sql_help.c:1904 sql_help.c:1917 sql_help.c:1932 -#: sql_help.c:1992 sql_help.c:1998 sql_help.c:2362 sql_help.c:2374 -#: sql_help.c:2495 sql_help.c:2535 sql_help.c:2612 sql_help.c:2666 -#: sql_help.c:2719 sql_help.c:2771 sql_help.c:2804 sql_help.c:2811 -#: sql_help.c:2920 sql_help.c:2938 sql_help.c:2951 sql_help.c:3030 -#: sql_help.c:3150 sql_help.c:3331 sql_help.c:3554 sql_help.c:3603 -#: sql_help.c:3709 sql_help.c:3919 sql_help.c:3925 sql_help.c:3986 -#: sql_help.c:4018 sql_help.c:4382 sql_help.c:4388 sql_help.c:4506 -#: sql_help.c:4619 sql_help.c:4682 sql_help.c:4721 sql_help.c:4877 -#: sql_help.c:4940 sql_help.c:4974 sql_help.c:5032 sql_help.c:5122 -#: sql_help.c:5185 +#: sql_help.c:848 sql_help.c:851 sql_help.c:940 sql_help.c:1069 sql_help.c:1110 +#: sql_help.c:1590 sql_help.c:1593 sql_help.c:1769 sql_help.c:1822 +#: sql_help.c:1893 sql_help.c:1918 sql_help.c:1931 sql_help.c:1946 +#: sql_help.c:2007 sql_help.c:2013 sql_help.c:2386 sql_help.c:2400 +#: sql_help.c:2523 sql_help.c:2563 sql_help.c:2640 sql_help.c:2694 +#: sql_help.c:2747 sql_help.c:2801 sql_help.c:2834 sql_help.c:2841 +#: sql_help.c:2951 sql_help.c:2969 sql_help.c:2982 sql_help.c:3066 +#: sql_help.c:3186 sql_help.c:3368 sql_help.c:3592 sql_help.c:3641 +#: sql_help.c:3747 sql_help.c:3957 sql_help.c:3963 sql_help.c:4024 +#: sql_help.c:4057 sql_help.c:4424 sql_help.c:4430 sql_help.c:4548 +#: sql_help.c:4661 sql_help.c:4724 sql_help.c:4763 sql_help.c:4919 +#: sql_help.c:4982 sql_help.c:5017 sql_help.c:5076 sql_help.c:5166 +#: sql_help.c:5229 msgid "table_name" msgstr "Tabellenname" -#: sql_help.c:831 sql_help.c:2614 +#: sql_help.c:853 sql_help.c:2642 msgid "using_expression" msgstr "Using-Ausdruck" -#: sql_help.c:832 sql_help.c:2615 +#: sql_help.c:854 sql_help.c:2643 msgid "check_expression" msgstr "Check-Ausdruck" -#: sql_help.c:905 sql_help.c:907 sql_help.c:909 sql_help.c:2662 +#: sql_help.c:927 sql_help.c:929 sql_help.c:931 sql_help.c:2690 msgid "publication_object" msgstr "Publikationsobjekt" -#: sql_help.c:911 sql_help.c:2663 +#: sql_help.c:933 sql_help.c:2691 msgid "publication_parameter" msgstr "Publikationsparameter" -#: sql_help.c:917 sql_help.c:2665 +#: sql_help.c:939 sql_help.c:2693 msgid "where publication_object is one of:" msgstr "wobei Publikationsobjekt Folgendes sein kann:" -#: sql_help.c:960 sql_help.c:1667 sql_help.c:2473 sql_help.c:2698 -#: sql_help.c:3265 +#: sql_help.c:982 sql_help.c:1681 sql_help.c:2501 sql_help.c:2726 +#: sql_help.c:3301 msgid "password" msgstr "Passwort" -#: sql_help.c:961 sql_help.c:1668 sql_help.c:2474 sql_help.c:2699 -#: sql_help.c:3266 +#: sql_help.c:983 sql_help.c:1682 sql_help.c:2502 sql_help.c:2727 +#: sql_help.c:3302 msgid "timestamp" msgstr "Zeit" -#: sql_help.c:965 sql_help.c:969 sql_help.c:972 sql_help.c:975 sql_help.c:1672 -#: sql_help.c:1676 sql_help.c:1679 sql_help.c:1682 sql_help.c:3932 -#: sql_help.c:4395 +#: sql_help.c:987 sql_help.c:991 sql_help.c:994 sql_help.c:997 sql_help.c:1686 +#: sql_help.c:1690 sql_help.c:1693 sql_help.c:1696 sql_help.c:3970 +#: sql_help.c:4437 msgid "database_name" msgstr "Datenbankname" -#: sql_help.c:1081 sql_help.c:2766 +#: sql_help.c:1104 sql_help.c:2796 msgid "increment" msgstr "Inkrement" -#: sql_help.c:1082 sql_help.c:2767 +#: sql_help.c:1105 sql_help.c:2797 msgid "minvalue" msgstr "Minwert" -#: sql_help.c:1083 sql_help.c:2768 +#: sql_help.c:1106 sql_help.c:2798 msgid "maxvalue" msgstr "Maxwert" -#: sql_help.c:1084 sql_help.c:2769 sql_help.c:4615 sql_help.c:4719 -#: sql_help.c:4873 sql_help.c:5049 sql_help.c:5118 +#: sql_help.c:1107 sql_help.c:2799 sql_help.c:4657 sql_help.c:4761 +#: sql_help.c:4915 sql_help.c:5093 sql_help.c:5162 msgid "start" msgstr "Start" -#: sql_help.c:1085 sql_help.c:1374 +#: sql_help.c:1108 sql_help.c:1382 msgid "restart" msgstr "Restart" -#: sql_help.c:1086 sql_help.c:2770 +#: sql_help.c:1109 sql_help.c:2800 msgid "cache" msgstr "Cache" -#: sql_help.c:1131 +#: sql_help.c:1154 msgid "new_target" msgstr "neues_Ziel" -#: sql_help.c:1150 sql_help.c:2823 +#: sql_help.c:1173 sql_help.c:2853 msgid "conninfo" msgstr "Verbindungsinfo" -#: sql_help.c:1152 sql_help.c:1156 sql_help.c:1160 sql_help.c:2824 +#: sql_help.c:1175 sql_help.c:1179 sql_help.c:1183 sql_help.c:2854 msgid "publication_name" msgstr "Publikationsname" -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 +#: sql_help.c:1176 sql_help.c:1180 sql_help.c:1184 msgid "publication_option" msgstr "Publikationsoption" -#: sql_help.c:1164 +#: sql_help.c:1187 msgid "refresh_option" msgstr "Refresh-Option" -#: sql_help.c:1169 sql_help.c:2825 +#: sql_help.c:1192 sql_help.c:2855 msgid "subscription_parameter" msgstr "Subskriptionsparameter" -#: sql_help.c:1172 +#: sql_help.c:1195 msgid "skip_option" msgstr "Skip-Option" -#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1344 sql_help.c:1352 +#: sql_help.c:1357 sql_help.c:1360 msgid "partition_name" msgstr "Partitionsname" -#: sql_help.c:1340 sql_help.c:1346 sql_help.c:1348 sql_help.c:2379 -#: sql_help.c:2956 +#: sql_help.c:1358 sql_help.c:2405 sql_help.c:2987 msgid "partition_bound_spec" msgstr "Partitionsbegrenzungsangabe" -#: sql_help.c:1345 sql_help.c:1350 -msgid "partition_name1" -msgstr "Partitionsname1" - -#: sql_help.c:1347 sql_help.c:1351 -msgid "partition_name2" -msgstr "Partitionsname2" - -#: sql_help.c:1371 sql_help.c:1421 sql_help.c:2970 +#: sql_help.c:1379 sql_help.c:1430 sql_help.c:3001 msgid "sequence_options" msgstr "Sequenzoptionen" -#: sql_help.c:1373 +#: sql_help.c:1381 msgid "sequence_option" msgstr "Sequenzoption" -#: sql_help.c:1387 +#: sql_help.c:1395 msgid "table_constraint_using_index" msgstr "Tabellen-Constraint-für-Index" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1397 sql_help.c:1398 +#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1406 sql_help.c:1407 msgid "rewrite_rule_name" msgstr "Regelname" -#: sql_help.c:1410 sql_help.c:2391 sql_help.c:2995 +#: sql_help.c:1419 sql_help.c:2419 sql_help.c:3031 msgid "and partition_bound_spec is:" msgstr "und Partitionsbegrenzungsangabe Folgendes ist:" -#: sql_help.c:1411 sql_help.c:1412 sql_help.c:1413 sql_help.c:2392 -#: sql_help.c:2393 sql_help.c:2394 sql_help.c:2996 sql_help.c:2997 -#: sql_help.c:2998 +#: sql_help.c:1420 sql_help.c:1421 sql_help.c:1422 sql_help.c:2420 +#: sql_help.c:2421 sql_help.c:2422 sql_help.c:3032 sql_help.c:3033 +#: sql_help.c:3034 msgid "partition_bound_expr" msgstr "Partitionsbegrenzungsausdruck" -#: sql_help.c:1414 sql_help.c:1415 sql_help.c:2395 sql_help.c:2396 -#: sql_help.c:2999 sql_help.c:3000 +#: sql_help.c:1423 sql_help.c:1424 sql_help.c:2423 sql_help.c:2424 +#: sql_help.c:3035 sql_help.c:3036 msgid "numeric_literal" msgstr "numerische_Konstante" -#: sql_help.c:1416 +#: sql_help.c:1425 msgid "and column_constraint is:" msgstr "und Spalten-Constraint Folgendes ist:" -#: sql_help.c:1419 sql_help.c:2386 sql_help.c:2427 sql_help.c:2636 -#: sql_help.c:2968 +#: sql_help.c:1428 sql_help.c:2412 sql_help.c:2455 sql_help.c:2664 +#: sql_help.c:2999 msgid "default_expr" msgstr "Vorgabeausdruck" -#: sql_help.c:1420 sql_help.c:2387 sql_help.c:2969 +#: sql_help.c:1429 sql_help.c:2413 sql_help.c:3000 msgid "generation_expr" msgstr "Generierungsausdruck" -#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1432 sql_help.c:1434 -#: sql_help.c:1438 sql_help.c:2971 sql_help.c:2972 sql_help.c:2981 -#: sql_help.c:2983 sql_help.c:2987 +#: sql_help.c:1431 sql_help.c:1432 sql_help.c:1443 sql_help.c:1446 +#: sql_help.c:1450 sql_help.c:3002 sql_help.c:3003 sql_help.c:3014 +#: sql_help.c:3017 sql_help.c:3021 msgid "index_parameters" msgstr "Indexparameter" -#: sql_help.c:1424 sql_help.c:1441 sql_help.c:2973 sql_help.c:2990 +#: sql_help.c:1433 sql_help.c:1454 sql_help.c:3004 sql_help.c:3025 msgid "reftable" msgstr "Reftabelle" -#: sql_help.c:1425 sql_help.c:1442 sql_help.c:2974 sql_help.c:2991 +#: sql_help.c:1434 sql_help.c:1455 sql_help.c:1456 sql_help.c:3005 +#: sql_help.c:3026 sql_help.c:3027 msgid "refcolumn" msgstr "Refspalte" -#: sql_help.c:1426 sql_help.c:1427 sql_help.c:1443 sql_help.c:1444 -#: sql_help.c:2975 sql_help.c:2976 sql_help.c:2992 sql_help.c:2993 +#: sql_help.c:1435 sql_help.c:1436 sql_help.c:1457 sql_help.c:1458 +#: sql_help.c:3006 sql_help.c:3007 sql_help.c:3028 sql_help.c:3029 msgid "referential_action" msgstr "Fremdschlüsselaktion" -#: sql_help.c:1428 sql_help.c:2388 sql_help.c:2977 +#: sql_help.c:1437 sql_help.c:2414 sql_help.c:3008 msgid "and table_constraint is:" msgstr "und Tabellen-Constraint Folgendes ist:" -#: sql_help.c:1436 sql_help.c:2985 +#: sql_help.c:1448 sql_help.c:3019 msgid "exclude_element" msgstr "Exclude-Element" -#: sql_help.c:1437 sql_help.c:2986 sql_help.c:4613 sql_help.c:4717 -#: sql_help.c:4871 sql_help.c:5047 sql_help.c:5116 +#: sql_help.c:1449 sql_help.c:3020 sql_help.c:4655 sql_help.c:4759 +#: sql_help.c:4913 sql_help.c:5091 sql_help.c:5160 msgid "operator" msgstr "Operator" -#: sql_help.c:1439 sql_help.c:2507 sql_help.c:2988 +#: sql_help.c:1451 sql_help.c:2535 sql_help.c:3022 msgid "predicate" msgstr "Prädikat" -#: sql_help.c:1445 +#: sql_help.c:1459 msgid "and table_constraint_using_index is:" msgstr "und Tabellen-Constraint-für-Index Folgendes ist:" -#: sql_help.c:1448 sql_help.c:3001 +#: sql_help.c:1462 sql_help.c:3037 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "Indexparameter bei UNIQUE-, PRIMARY KEY- und EXCLUDE-Constraints sind:" -#: sql_help.c:1453 sql_help.c:3006 +#: sql_help.c:1467 sql_help.c:3042 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "Exclude-Element in einem EXCLUDE-Constraint ist:" -#: sql_help.c:1457 sql_help.c:2500 sql_help.c:2933 sql_help.c:2946 -#: sql_help.c:2960 sql_help.c:3010 sql_help.c:4031 +#: sql_help.c:1471 sql_help.c:2528 sql_help.c:2964 sql_help.c:2977 +#: sql_help.c:2991 sql_help.c:3046 sql_help.c:4071 msgid "opclass" msgstr "Opklasse" -#: sql_help.c:1458 sql_help.c:2501 sql_help.c:3011 +#: sql_help.c:1472 sql_help.c:2529 sql_help.c:3047 msgid "opclass_parameter" msgstr "Opklassen-Parameter" -#: sql_help.c:1460 sql_help.c:3013 +#: sql_help.c:1474 sql_help.c:3049 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "Fremdschlüsselaktion in FOREIGN KEY/REFERENCES ist:" -#: sql_help.c:1478 sql_help.c:1481 sql_help.c:3050 +#: sql_help.c:1492 sql_help.c:1495 sql_help.c:3086 msgid "tablespace_option" msgstr "Tablespace-Option" -#: sql_help.c:1502 sql_help.c:1505 sql_help.c:1511 sql_help.c:1515 +#: sql_help.c:1516 sql_help.c:1519 sql_help.c:1525 sql_help.c:1529 msgid "token_type" msgstr "Tokentyp" -#: sql_help.c:1503 sql_help.c:1506 +#: sql_help.c:1517 sql_help.c:1520 msgid "dictionary_name" msgstr "Wörterbuchname" -#: sql_help.c:1508 sql_help.c:1512 +#: sql_help.c:1522 sql_help.c:1526 msgid "old_dictionary" msgstr "altes_Wörterbuch" -#: sql_help.c:1509 sql_help.c:1513 +#: sql_help.c:1523 sql_help.c:1527 msgid "new_dictionary" msgstr "neues_Wörterbuch" -#: sql_help.c:1608 sql_help.c:1622 sql_help.c:1625 sql_help.c:1626 -#: sql_help.c:3203 +#: sql_help.c:1622 sql_help.c:1636 sql_help.c:1639 sql_help.c:1640 +#: sql_help.c:3239 msgid "attribute_name" msgstr "Attributname" -#: sql_help.c:1609 +#: sql_help.c:1623 msgid "new_attribute_name" msgstr "neuer_Attributname" -#: sql_help.c:1613 sql_help.c:1617 +#: sql_help.c:1627 sql_help.c:1631 msgid "new_enum_value" msgstr "neuer_Enum-Wert" -#: sql_help.c:1614 +#: sql_help.c:1628 msgid "neighbor_enum_value" msgstr "Nachbar-Enum-Wert" -#: sql_help.c:1616 +#: sql_help.c:1630 msgid "existing_enum_value" msgstr "existierender_Enum-Wert" -#: sql_help.c:1619 +#: sql_help.c:1633 msgid "property" msgstr "Eigenschaft" -#: sql_help.c:1695 sql_help.c:2371 sql_help.c:2380 sql_help.c:2782 -#: sql_help.c:3283 sql_help.c:3734 sql_help.c:3941 sql_help.c:3987 -#: sql_help.c:4404 +#: sql_help.c:1709 sql_help.c:2397 sql_help.c:2406 sql_help.c:2812 +#: sql_help.c:3319 sql_help.c:3772 sql_help.c:3979 sql_help.c:4025 +#: sql_help.c:4446 msgid "server_name" msgstr "Servername" -#: sql_help.c:1727 sql_help.c:1730 sql_help.c:3298 +#: sql_help.c:1741 sql_help.c:1744 sql_help.c:3334 msgid "view_option_name" msgstr "Sichtoptionsname" -#: sql_help.c:1728 sql_help.c:3299 +#: sql_help.c:1742 sql_help.c:3335 msgid "view_option_value" msgstr "Sichtoptionswert" -#: sql_help.c:1749 sql_help.c:5016 +#: sql_help.c:1763 sql_help.c:5060 msgid "table_and_columns" msgstr "Tabelle-und-Spalten" -#: sql_help.c:1750 sql_help.c:1810 sql_help.c:2004 sql_help.c:3783 -#: sql_help.c:4239 sql_help.c:5017 +#: sql_help.c:1764 sql_help.c:1824 sql_help.c:2019 sql_help.c:3821 +#: sql_help.c:4281 sql_help.c:5061 msgid "where option can be one of:" msgstr "wobei Option eine der folgenden sein kann:" -#: sql_help.c:1751 sql_help.c:1752 sql_help.c:1811 sql_help.c:2006 -#: sql_help.c:2010 sql_help.c:2192 sql_help.c:3784 sql_help.c:3785 -#: sql_help.c:3786 sql_help.c:3787 sql_help.c:3788 sql_help.c:3789 -#: sql_help.c:3790 sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 -#: sql_help.c:4240 sql_help.c:4242 sql_help.c:5018 sql_help.c:5019 -#: sql_help.c:5020 sql_help.c:5021 sql_help.c:5022 sql_help.c:5023 -#: sql_help.c:5024 sql_help.c:5025 sql_help.c:5026 sql_help.c:5028 -#: sql_help.c:5029 +#: sql_help.c:1765 sql_help.c:1766 sql_help.c:1825 sql_help.c:2021 +#: sql_help.c:2025 sql_help.c:2208 sql_help.c:3822 sql_help.c:3823 +#: sql_help.c:3824 sql_help.c:3825 sql_help.c:3826 sql_help.c:3827 +#: sql_help.c:3828 sql_help.c:3829 sql_help.c:3830 sql_help.c:3831 +#: sql_help.c:4282 sql_help.c:4284 sql_help.c:5062 sql_help.c:5063 +#: sql_help.c:5064 sql_help.c:5065 sql_help.c:5066 sql_help.c:5067 +#: sql_help.c:5068 sql_help.c:5069 sql_help.c:5070 sql_help.c:5072 +#: sql_help.c:5073 msgid "boolean" msgstr "boolean" -#: sql_help.c:1753 sql_help.c:5030 +#: sql_help.c:1767 sql_help.c:5074 msgid "size" msgstr "Größe" -#: sql_help.c:1754 sql_help.c:5031 +#: sql_help.c:1768 sql_help.c:5075 msgid "and table_and_columns is:" msgstr "und Tabelle-und-Spalten Folgendes ist:" -#: sql_help.c:1770 sql_help.c:4778 sql_help.c:4780 sql_help.c:4804 +#: sql_help.c:1784 sql_help.c:4820 sql_help.c:4822 sql_help.c:4846 msgid "transaction_mode" msgstr "Transaktionsmodus" -#: sql_help.c:1771 sql_help.c:4781 sql_help.c:4805 +#: sql_help.c:1785 sql_help.c:4823 sql_help.c:4847 msgid "where transaction_mode is one of:" msgstr "wobei Transaktionsmodus Folgendes sein kann:" -#: sql_help.c:1780 sql_help.c:4623 sql_help.c:4632 sql_help.c:4636 -#: sql_help.c:4640 sql_help.c:4643 sql_help.c:4881 sql_help.c:4890 -#: sql_help.c:4894 sql_help.c:4898 sql_help.c:4901 sql_help.c:5126 -#: sql_help.c:5135 sql_help.c:5139 sql_help.c:5143 sql_help.c:5146 +#: sql_help.c:1794 sql_help.c:4665 sql_help.c:4674 sql_help.c:4678 +#: sql_help.c:4682 sql_help.c:4685 sql_help.c:4923 sql_help.c:4932 +#: sql_help.c:4936 sql_help.c:4940 sql_help.c:4943 sql_help.c:5170 +#: sql_help.c:5179 sql_help.c:5183 sql_help.c:5187 sql_help.c:5190 msgid "argument" msgstr "Argument" -#: sql_help.c:1876 +#: sql_help.c:1890 msgid "relation_name" msgstr "Relationsname" -#: sql_help.c:1881 sql_help.c:3935 sql_help.c:4398 +#: sql_help.c:1895 sql_help.c:3973 sql_help.c:4440 msgid "domain_name" msgstr "Domänenname" -#: sql_help.c:1903 +#: sql_help.c:1917 msgid "policy_name" msgstr "Policy-Name" -#: sql_help.c:1916 +#: sql_help.c:1930 msgid "rule_name" msgstr "Regelname" -#: sql_help.c:1935 sql_help.c:4537 +#: sql_help.c:1949 sql_help.c:4579 msgid "string_literal" msgstr "Zeichenkettenkonstante" -#: sql_help.c:1960 sql_help.c:4201 sql_help.c:4451 +#: sql_help.c:1974 sql_help.c:4243 sql_help.c:4493 msgid "transaction_id" msgstr "Transaktions-ID" -#: sql_help.c:1994 sql_help.c:2001 sql_help.c:4057 +#: sql_help.c:2009 sql_help.c:2016 sql_help.c:4097 msgid "filename" msgstr "Dateiname" -#: sql_help.c:1995 sql_help.c:2002 sql_help.c:2721 sql_help.c:2722 -#: sql_help.c:2723 +#: sql_help.c:2010 sql_help.c:2017 sql_help.c:2749 sql_help.c:2750 +#: sql_help.c:2751 msgid "command" msgstr "Befehl" -#: sql_help.c:1997 sql_help.c:2720 sql_help.c:3153 sql_help.c:3334 -#: sql_help.c:4041 sql_help.c:4124 sql_help.c:4127 sql_help.c:4130 -#: sql_help.c:4606 sql_help.c:4608 sql_help.c:4710 sql_help.c:4712 -#: sql_help.c:4864 sql_help.c:4866 sql_help.c:4983 sql_help.c:5109 -#: sql_help.c:5111 +#: sql_help.c:2012 sql_help.c:2748 sql_help.c:3189 sql_help.c:3371 +#: sql_help.c:4081 sql_help.c:4166 sql_help.c:4169 sql_help.c:4172 +#: sql_help.c:4648 sql_help.c:4650 sql_help.c:4752 sql_help.c:4754 +#: sql_help.c:4906 sql_help.c:4908 sql_help.c:5026 sql_help.c:5153 +#: sql_help.c:5155 msgid "condition" msgstr "Bedingung" -#: sql_help.c:2000 sql_help.c:2541 sql_help.c:3036 sql_help.c:3300 -#: sql_help.c:3318 sql_help.c:4022 +#: sql_help.c:2015 sql_help.c:2569 sql_help.c:3072 sql_help.c:3336 +#: sql_help.c:3354 sql_help.c:4061 msgid "query" msgstr "Anfrage" -#: sql_help.c:2005 +#: sql_help.c:2020 msgid "format_name" msgstr "Formatname" -#: sql_help.c:2007 +#: sql_help.c:2022 msgid "delimiter_character" msgstr "Trennzeichen" -#: sql_help.c:2008 +#: sql_help.c:2023 msgid "null_string" msgstr "Null-Zeichenkette" -#: sql_help.c:2009 +#: sql_help.c:2024 msgid "default_string" msgstr "Vorgabewert-Zeichenkette" -#: sql_help.c:2011 +#: sql_help.c:2026 msgid "quote_character" msgstr "Quote-Zeichen" -#: sql_help.c:2012 +#: sql_help.c:2027 msgid "escape_character" msgstr "Escape-Zeichen" -#: sql_help.c:2016 +#: sql_help.c:2031 msgid "error_action" msgstr "Fehleraktion" -#: sql_help.c:2017 +#: sql_help.c:2032 +#, fuzzy +#| msgid "syntax error" +msgid "maxerror" +msgstr "Syntaxfehler" + +#: sql_help.c:2033 msgid "encoding_name" msgstr "Kodierungsname" -#: sql_help.c:2018 +#: sql_help.c:2034 msgid "verbosity" msgstr "Verbose-Modus" -#: sql_help.c:2029 +#: sql_help.c:2045 msgid "access_method_type" msgstr "Zugriffsmethodentyp" -#: sql_help.c:2100 sql_help.c:2119 sql_help.c:2122 +#: sql_help.c:2116 sql_help.c:2135 sql_help.c:2138 msgid "arg_data_type" msgstr "Arg-Datentyp" -#: sql_help.c:2101 sql_help.c:2123 sql_help.c:2131 +#: sql_help.c:2117 sql_help.c:2139 sql_help.c:2147 msgid "sfunc" msgstr "Übergangsfunktion" -#: sql_help.c:2102 sql_help.c:2124 sql_help.c:2132 +#: sql_help.c:2118 sql_help.c:2140 sql_help.c:2148 msgid "state_data_type" msgstr "Zustandsdatentyp" -#: sql_help.c:2103 sql_help.c:2125 sql_help.c:2133 +#: sql_help.c:2119 sql_help.c:2141 sql_help.c:2149 msgid "state_data_size" msgstr "Zustandsdatengröße" -#: sql_help.c:2104 sql_help.c:2126 sql_help.c:2134 +#: sql_help.c:2120 sql_help.c:2142 sql_help.c:2150 msgid "ffunc" msgstr "Abschlussfunktion" -#: sql_help.c:2105 sql_help.c:2135 +#: sql_help.c:2121 sql_help.c:2151 msgid "combinefunc" msgstr "Combine-Funktion" -#: sql_help.c:2106 sql_help.c:2136 +#: sql_help.c:2122 sql_help.c:2152 msgid "serialfunc" msgstr "Serialisierungsfunktion" -#: sql_help.c:2107 sql_help.c:2137 +#: sql_help.c:2123 sql_help.c:2153 msgid "deserialfunc" msgstr "Deserialisierungsfunktion" -#: sql_help.c:2108 sql_help.c:2127 sql_help.c:2138 +#: sql_help.c:2124 sql_help.c:2143 sql_help.c:2154 msgid "initial_condition" msgstr "Anfangswert" -#: sql_help.c:2109 sql_help.c:2139 +#: sql_help.c:2125 sql_help.c:2155 msgid "msfunc" msgstr "Moving-Übergangsfunktion" -#: sql_help.c:2110 sql_help.c:2140 +#: sql_help.c:2126 sql_help.c:2156 msgid "minvfunc" msgstr "Moving-Inversfunktion" -#: sql_help.c:2111 sql_help.c:2141 +#: sql_help.c:2127 sql_help.c:2157 msgid "mstate_data_type" msgstr "Moving-Zustandsdatentyp" -#: sql_help.c:2112 sql_help.c:2142 +#: sql_help.c:2128 sql_help.c:2158 msgid "mstate_data_size" msgstr "Moving-Zustandsdatengröße" -#: sql_help.c:2113 sql_help.c:2143 +#: sql_help.c:2129 sql_help.c:2159 msgid "mffunc" msgstr "Moving-Abschlussfunktion" -#: sql_help.c:2114 sql_help.c:2144 +#: sql_help.c:2130 sql_help.c:2160 msgid "minitial_condition" msgstr "Moving-Anfangswert" -#: sql_help.c:2115 sql_help.c:2145 +#: sql_help.c:2131 sql_help.c:2161 msgid "sort_operator" msgstr "Sortieroperator" -#: sql_help.c:2128 +#: sql_help.c:2144 msgid "or the old syntax" msgstr "oder die alte Syntax" -#: sql_help.c:2130 +#: sql_help.c:2146 msgid "base_type" msgstr "Basistyp" -#: sql_help.c:2188 sql_help.c:2238 +#: sql_help.c:2204 sql_help.c:2254 msgid "locale" msgstr "Locale" -#: sql_help.c:2189 sql_help.c:2239 +#: sql_help.c:2205 sql_help.c:2255 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2190 sql_help.c:2240 +#: sql_help.c:2206 sql_help.c:2256 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2191 sql_help.c:4504 +#: sql_help.c:2207 sql_help.c:4546 msgid "provider" msgstr "Provider" -#: sql_help.c:2193 +#: sql_help.c:2209 msgid "rules" msgstr "Regeln" -#: sql_help.c:2194 sql_help.c:2301 +#: sql_help.c:2210 sql_help.c:2317 msgid "version" msgstr "Version" -#: sql_help.c:2196 +#: sql_help.c:2212 msgid "existing_collation" msgstr "existierende_Sortierfolge" -#: sql_help.c:2206 +#: sql_help.c:2222 msgid "source_encoding" msgstr "Quellkodierung" -#: sql_help.c:2207 +#: sql_help.c:2223 msgid "dest_encoding" msgstr "Zielkodierung" -#: sql_help.c:2235 sql_help.c:3076 +#: sql_help.c:2251 sql_help.c:3112 msgid "template" msgstr "Vorlage" -#: sql_help.c:2236 +#: sql_help.c:2252 msgid "encoding" msgstr "Kodierung" -#: sql_help.c:2237 +#: sql_help.c:2253 msgid "strategy" msgstr "Strategie" -#: sql_help.c:2241 +#: sql_help.c:2257 msgid "builtin_locale" msgstr "Builtin-Locale" -#: sql_help.c:2242 +#: sql_help.c:2258 msgid "icu_locale" msgstr "ICU-Locale" -#: sql_help.c:2243 +#: sql_help.c:2259 msgid "icu_rules" msgstr "ICU-Regeln" -#: sql_help.c:2244 +#: sql_help.c:2260 msgid "locale_provider" msgstr "Locale-Provider" -#: sql_help.c:2245 +#: sql_help.c:2261 msgid "collation_version" msgstr "Sortierfolgenversion" -#: sql_help.c:2250 +#: sql_help.c:2266 msgid "oid" msgstr "OID" -#: sql_help.c:2271 -msgid "where domain_constraint is:" -msgstr "wobei Domänen-Constraint Folgendes ist:" - -#: sql_help.c:2285 sql_help.c:2718 sql_help.c:3149 +#: sql_help.c:2301 sql_help.c:2746 sql_help.c:3185 msgid "event" msgstr "Ereignis" -#: sql_help.c:2286 +#: sql_help.c:2302 msgid "filter_variable" msgstr "Filtervariable" -#: sql_help.c:2287 +#: sql_help.c:2303 msgid "filter_value" msgstr "Filterwert" -#: sql_help.c:2383 sql_help.c:2965 +#: sql_help.c:2394 sql_help.c:2958 +msgid "source_table" +msgstr "Quelltabelle" + +#: sql_help.c:2395 sql_help.c:2959 +msgid "like_option" +msgstr "Like-Option" + +#: sql_help.c:2409 sql_help.c:2996 msgid "where column_constraint is:" msgstr "wobei Spalten-Constraint Folgendes ist:" -#: sql_help.c:2428 +#: sql_help.c:2418 sql_help.c:3030 +msgid "and like_option is:" +msgstr "und Like-Option Folgendes ist:" + +#: sql_help.c:2456 msgid "rettype" msgstr "Rückgabetyp" -#: sql_help.c:2430 +#: sql_help.c:2458 msgid "column_type" msgstr "Spaltentyp" -#: sql_help.c:2439 sql_help.c:2642 +#: sql_help.c:2467 sql_help.c:2670 msgid "definition" msgstr "Definition" -#: sql_help.c:2440 sql_help.c:2643 +#: sql_help.c:2468 sql_help.c:2671 msgid "obj_file" msgstr "Objektdatei" -#: sql_help.c:2441 sql_help.c:2644 +#: sql_help.c:2469 sql_help.c:2672 msgid "link_symbol" msgstr "Linksymbol" -#: sql_help.c:2442 sql_help.c:2645 +#: sql_help.c:2470 sql_help.c:2673 msgid "sql_body" msgstr "SQL-Rumpf" -#: sql_help.c:2480 sql_help.c:2703 sql_help.c:3272 +#: sql_help.c:2508 sql_help.c:2731 sql_help.c:3308 msgid "uid" msgstr "Uid" -#: sql_help.c:2496 sql_help.c:2537 sql_help.c:2934 sql_help.c:2947 -#: sql_help.c:2961 sql_help.c:3032 +#: sql_help.c:2524 sql_help.c:2565 sql_help.c:2965 sql_help.c:2978 +#: sql_help.c:2992 sql_help.c:3068 msgid "method" msgstr "Methode" -#: sql_help.c:2518 +#: sql_help.c:2546 msgid "call_handler" msgstr "Handler" -#: sql_help.c:2519 +#: sql_help.c:2547 msgid "inline_handler" msgstr "Inline-Handler" -#: sql_help.c:2520 +#: sql_help.c:2548 msgid "valfunction" msgstr "Valfunktion" -#: sql_help.c:2578 +#: sql_help.c:2606 msgid "family_name" msgstr "Familienname" -#: sql_help.c:2589 +#: sql_help.c:2617 msgid "storage_type" msgstr "Storage-Typ" -#: sql_help.c:2724 sql_help.c:3156 +#: sql_help.c:2752 sql_help.c:3192 msgid "where event can be one of:" msgstr "wobei Ereignis eins der folgenden sein kann:" -#: sql_help.c:2744 sql_help.c:2746 +#: sql_help.c:2772 sql_help.c:2774 msgid "schema_element" msgstr "Schemaelement" -#: sql_help.c:2783 +#: sql_help.c:2813 msgid "server_type" msgstr "Servertyp" -#: sql_help.c:2784 +#: sql_help.c:2814 msgid "server_version" msgstr "Serverversion" -#: sql_help.c:2785 sql_help.c:3938 sql_help.c:4401 +#: sql_help.c:2815 sql_help.c:3976 sql_help.c:4443 msgid "fdw_name" msgstr "FDW-Name" -#: sql_help.c:2802 sql_help.c:2805 +#: sql_help.c:2832 sql_help.c:2835 msgid "statistics_name" msgstr "Statistikname" -#: sql_help.c:2806 +#: sql_help.c:2836 msgid "statistics_kind" msgstr "Statistikart" -#: sql_help.c:2822 +#: sql_help.c:2852 msgid "subscription_name" msgstr "Subskriptionsname" -#: sql_help.c:2927 -msgid "source_table" -msgstr "Quelltabelle" - -#: sql_help.c:2928 -msgid "like_option" -msgstr "Like-Option" - -#: sql_help.c:2994 -msgid "and like_option is:" -msgstr "und Like-Option Folgendes ist:" - -#: sql_help.c:3049 +#: sql_help.c:3085 msgid "directory" msgstr "Verzeichnis" -#: sql_help.c:3063 +#: sql_help.c:3099 msgid "parser_name" msgstr "Parser-Name" -#: sql_help.c:3064 +#: sql_help.c:3100 msgid "source_config" msgstr "Quellkonfig" -#: sql_help.c:3093 +#: sql_help.c:3129 msgid "start_function" msgstr "Startfunktion" -#: sql_help.c:3094 +#: sql_help.c:3130 msgid "gettoken_function" msgstr "Gettext-Funktion" -#: sql_help.c:3095 +#: sql_help.c:3131 msgid "end_function" msgstr "Endfunktion" -#: sql_help.c:3096 +#: sql_help.c:3132 msgid "lextypes_function" msgstr "Lextypenfunktion" -#: sql_help.c:3097 +#: sql_help.c:3133 msgid "headline_function" msgstr "Headline-Funktion" -#: sql_help.c:3109 +#: sql_help.c:3145 msgid "init_function" msgstr "Init-Funktion" -#: sql_help.c:3110 +#: sql_help.c:3146 msgid "lexize_function" msgstr "Lexize-Funktion" -#: sql_help.c:3123 +#: sql_help.c:3159 msgid "from_sql_function_name" msgstr "From-SQL-Funktionsname" -#: sql_help.c:3125 +#: sql_help.c:3161 msgid "to_sql_function_name" msgstr "To-SQL-Funktionsname" -#: sql_help.c:3151 +#: sql_help.c:3187 msgid "referenced_table_name" msgstr "verwiesener_Tabellenname" -#: sql_help.c:3152 +#: sql_help.c:3188 msgid "transition_relation_name" msgstr "Übergangsrelationsname" -#: sql_help.c:3155 +#: sql_help.c:3191 msgid "arguments" msgstr "Argumente" -#: sql_help.c:3207 +#: sql_help.c:3243 msgid "label" msgstr "Label" -#: sql_help.c:3209 +#: sql_help.c:3245 msgid "subtype" msgstr "Untertyp" -#: sql_help.c:3210 +#: sql_help.c:3246 msgid "subtype_operator_class" msgstr "Untertyp-Operatorklasse" -#: sql_help.c:3212 +#: sql_help.c:3248 msgid "canonical_function" msgstr "Canonical-Funktion" -#: sql_help.c:3213 +#: sql_help.c:3249 msgid "subtype_diff_function" msgstr "Untertyp-Diff-Funktion" -#: sql_help.c:3214 +#: sql_help.c:3250 msgid "multirange_type_name" msgstr "Multirange-Typname" -#: sql_help.c:3216 +#: sql_help.c:3252 msgid "input_function" msgstr "Eingabefunktion" -#: sql_help.c:3217 +#: sql_help.c:3253 msgid "output_function" msgstr "Ausgabefunktion" -#: sql_help.c:3218 +#: sql_help.c:3254 msgid "receive_function" msgstr "Empfangsfunktion" -#: sql_help.c:3219 +#: sql_help.c:3255 msgid "send_function" msgstr "Sendefunktion" -#: sql_help.c:3220 +#: sql_help.c:3256 msgid "type_modifier_input_function" msgstr "Typmod-Eingabefunktion" -#: sql_help.c:3221 +#: sql_help.c:3257 msgid "type_modifier_output_function" msgstr "Typmod-Ausgabefunktion" -#: sql_help.c:3222 +#: sql_help.c:3258 msgid "analyze_function" msgstr "Analyze-Funktion" -#: sql_help.c:3223 +#: sql_help.c:3259 msgid "subscript_function" msgstr "Subscript-Funktion" -#: sql_help.c:3224 +#: sql_help.c:3260 msgid "internallength" msgstr "interne_Länge" -#: sql_help.c:3225 +#: sql_help.c:3261 msgid "alignment" msgstr "Ausrichtung" -#: sql_help.c:3226 +#: sql_help.c:3262 msgid "storage" msgstr "Speicherung" -#: sql_help.c:3227 +#: sql_help.c:3263 msgid "like_type" msgstr "wie_Typ" -#: sql_help.c:3228 +#: sql_help.c:3264 msgid "category" msgstr "Kategorie" -#: sql_help.c:3229 +#: sql_help.c:3265 msgid "preferred" msgstr "bevorzugt" -#: sql_help.c:3230 +#: sql_help.c:3266 msgid "default" msgstr "Vorgabewert" -#: sql_help.c:3231 +#: sql_help.c:3267 msgid "element" msgstr "Element" -#: sql_help.c:3232 +#: sql_help.c:3268 msgid "delimiter" msgstr "Trennzeichen" -#: sql_help.c:3233 +#: sql_help.c:3269 msgid "collatable" msgstr "sortierbar" -#: sql_help.c:3330 sql_help.c:4017 sql_help.c:4111 sql_help.c:4601 -#: sql_help.c:4704 sql_help.c:4859 sql_help.c:4973 sql_help.c:5104 +#: sql_help.c:3367 sql_help.c:4056 sql_help.c:4152 sql_help.c:4643 +#: sql_help.c:4746 sql_help.c:4901 sql_help.c:5016 sql_help.c:5148 msgid "with_query" msgstr "With-Anfrage" -#: sql_help.c:3332 sql_help.c:4019 sql_help.c:4620 sql_help.c:4626 -#: sql_help.c:4629 sql_help.c:4633 sql_help.c:4637 sql_help.c:4645 -#: sql_help.c:4878 sql_help.c:4884 sql_help.c:4887 sql_help.c:4891 -#: sql_help.c:4895 sql_help.c:4903 sql_help.c:4975 sql_help.c:5123 -#: sql_help.c:5129 sql_help.c:5132 sql_help.c:5136 sql_help.c:5140 -#: sql_help.c:5148 +#: sql_help.c:3369 sql_help.c:4058 sql_help.c:4662 sql_help.c:4668 +#: sql_help.c:4671 sql_help.c:4675 sql_help.c:4679 sql_help.c:4687 +#: sql_help.c:4920 sql_help.c:4926 sql_help.c:4929 sql_help.c:4933 +#: sql_help.c:4937 sql_help.c:4945 sql_help.c:5018 sql_help.c:5167 +#: sql_help.c:5173 sql_help.c:5176 sql_help.c:5180 sql_help.c:5184 +#: sql_help.c:5192 msgid "alias" msgstr "Alias" -#: sql_help.c:3333 sql_help.c:4605 sql_help.c:4647 sql_help.c:4649 -#: sql_help.c:4653 sql_help.c:4655 sql_help.c:4656 sql_help.c:4657 -#: sql_help.c:4709 sql_help.c:4863 sql_help.c:4905 sql_help.c:4907 -#: sql_help.c:4911 sql_help.c:4913 sql_help.c:4914 sql_help.c:4915 -#: sql_help.c:4982 sql_help.c:5108 sql_help.c:5150 sql_help.c:5152 -#: sql_help.c:5156 sql_help.c:5158 sql_help.c:5159 sql_help.c:5160 +#: sql_help.c:3370 sql_help.c:4647 sql_help.c:4689 sql_help.c:4691 +#: sql_help.c:4695 sql_help.c:4697 sql_help.c:4698 sql_help.c:4699 +#: sql_help.c:4751 sql_help.c:4905 sql_help.c:4947 sql_help.c:4949 +#: sql_help.c:4953 sql_help.c:4955 sql_help.c:4956 sql_help.c:4957 +#: sql_help.c:5025 sql_help.c:5152 sql_help.c:5194 sql_help.c:5196 +#: sql_help.c:5200 sql_help.c:5202 sql_help.c:5203 sql_help.c:5204 msgid "from_item" msgstr "From-Element" -#: sql_help.c:3335 sql_help.c:3819 sql_help.c:4168 sql_help.c:4984 +#: sql_help.c:3372 sql_help.c:3857 sql_help.c:4210 sql_help.c:5027 msgid "cursor_name" msgstr "Cursor-Name" -#: sql_help.c:3336 sql_help.c:4025 sql_help.c:4117 sql_help.c:4985 +#: sql_help.c:3373 sql_help.c:4064 sql_help.c:4158 sql_help.c:5028 +#, fuzzy +#| msgid "output_name" +msgid "output_alias" +msgstr "Ausgabename" + +#: sql_help.c:3374 sql_help.c:4065 sql_help.c:4159 sql_help.c:5029 msgid "output_expression" msgstr "Ausgabeausdruck" -#: sql_help.c:3337 sql_help.c:4026 sql_help.c:4118 sql_help.c:4604 -#: sql_help.c:4707 sql_help.c:4862 sql_help.c:4986 sql_help.c:5107 +#: sql_help.c:3375 sql_help.c:4066 sql_help.c:4160 sql_help.c:4646 +#: sql_help.c:4749 sql_help.c:4904 sql_help.c:5030 sql_help.c:5151 msgid "output_name" msgstr "Ausgabename" -#: sql_help.c:3353 +#: sql_help.c:3391 msgid "code" msgstr "Code" -#: sql_help.c:3758 +#: sql_help.c:3796 msgid "parameter" msgstr "Parameter" -#: sql_help.c:3782 sql_help.c:4193 +#: sql_help.c:3820 sql_help.c:4235 msgid "statement" msgstr "Anweisung" -#: sql_help.c:3818 sql_help.c:4167 +#: sql_help.c:3856 sql_help.c:4209 msgid "direction" msgstr "Richtung" -#: sql_help.c:3820 sql_help.c:4169 +#: sql_help.c:3858 sql_help.c:4211 msgid "where direction can be one of:" msgstr "wobei Richtung eine der folgenden sein kann:" -#: sql_help.c:3821 sql_help.c:3822 sql_help.c:3823 sql_help.c:3824 -#: sql_help.c:3825 sql_help.c:4170 sql_help.c:4171 sql_help.c:4172 -#: sql_help.c:4173 sql_help.c:4174 sql_help.c:4614 sql_help.c:4616 -#: sql_help.c:4718 sql_help.c:4720 sql_help.c:4872 sql_help.c:4874 -#: sql_help.c:5048 sql_help.c:5050 sql_help.c:5117 sql_help.c:5119 +#: sql_help.c:3859 sql_help.c:3860 sql_help.c:3861 sql_help.c:3862 +#: sql_help.c:3863 sql_help.c:4212 sql_help.c:4213 sql_help.c:4214 +#: sql_help.c:4215 sql_help.c:4216 sql_help.c:4656 sql_help.c:4658 +#: sql_help.c:4760 sql_help.c:4762 sql_help.c:4914 sql_help.c:4916 +#: sql_help.c:5092 sql_help.c:5094 sql_help.c:5161 sql_help.c:5163 msgid "count" msgstr "Anzahl" -#: sql_help.c:3928 sql_help.c:4391 +#: sql_help.c:3966 sql_help.c:4433 msgid "sequence_name" msgstr "Sequenzname" -#: sql_help.c:3946 sql_help.c:4409 +#: sql_help.c:3984 sql_help.c:4451 msgid "arg_name" msgstr "Argname" -#: sql_help.c:3947 sql_help.c:4410 +#: sql_help.c:3985 sql_help.c:4452 msgid "arg_type" msgstr "Argtyp" -#: sql_help.c:3954 sql_help.c:4417 +#: sql_help.c:3992 sql_help.c:4459 msgid "loid" msgstr "Large-Object-OID" -#: sql_help.c:3985 +#: sql_help.c:4023 msgid "remote_schema" msgstr "fernes_Schema" -#: sql_help.c:3988 +#: sql_help.c:4026 msgid "local_schema" msgstr "lokales_Schema" -#: sql_help.c:4023 +#: sql_help.c:4062 msgid "conflict_target" msgstr "Konfliktziel" -#: sql_help.c:4024 +#: sql_help.c:4063 msgid "conflict_action" msgstr "Konfliktaktion" -#: sql_help.c:4027 +#: sql_help.c:4067 msgid "where conflict_target can be one of:" msgstr "wobei Konfliktziel Folgendes sein kann:" -#: sql_help.c:4028 +#: sql_help.c:4068 msgid "index_column_name" msgstr "Indexspaltenname" -#: sql_help.c:4029 +#: sql_help.c:4069 msgid "index_expression" msgstr "Indexausdruck" -#: sql_help.c:4032 +#: sql_help.c:4072 msgid "index_predicate" msgstr "Indexprädikat" -#: sql_help.c:4034 +#: sql_help.c:4074 msgid "and conflict_action is one of:" msgstr "und Konfliktaktion Folgendes sein kann:" -#: sql_help.c:4040 sql_help.c:4141 sql_help.c:4981 +#: sql_help.c:4080 sql_help.c:4183 sql_help.c:5024 msgid "sub-SELECT" msgstr "Sub-SELECT" -#: sql_help.c:4049 sql_help.c:4182 sql_help.c:4957 +#: sql_help.c:4089 sql_help.c:4224 sql_help.c:4999 msgid "channel" msgstr "Kanal" -#: sql_help.c:4071 +#: sql_help.c:4111 msgid "lockmode" msgstr "Sperrmodus" -#: sql_help.c:4072 +#: sql_help.c:4112 msgid "where lockmode is one of:" msgstr "wobei Sperrmodus Folgendes sein kann:" -#: sql_help.c:4112 +#: sql_help.c:4153 msgid "target_table_name" msgstr "Zieltabellenname" -#: sql_help.c:4113 +#: sql_help.c:4154 msgid "target_alias" msgstr "Zielalias" -#: sql_help.c:4114 +#: sql_help.c:4155 msgid "data_source" msgstr "Datenquelle" -#: sql_help.c:4115 sql_help.c:4650 sql_help.c:4908 sql_help.c:5153 +#: sql_help.c:4156 sql_help.c:4692 sql_help.c:4950 sql_help.c:5197 msgid "join_condition" msgstr "Verbundbedingung" -#: sql_help.c:4116 +#: sql_help.c:4157 msgid "when_clause" msgstr "When-Klausel" -#: sql_help.c:4119 +#: sql_help.c:4161 msgid "where data_source is:" msgstr "wobei Datenquelle Folgendes ist:" -#: sql_help.c:4120 +#: sql_help.c:4162 msgid "source_table_name" msgstr "Quelltabellenname" -#: sql_help.c:4121 +#: sql_help.c:4163 msgid "source_query" msgstr "Quellanfrage" -#: sql_help.c:4122 +#: sql_help.c:4164 msgid "source_alias" msgstr "Quellalias" -#: sql_help.c:4123 +#: sql_help.c:4165 msgid "and when_clause is:" msgstr "und When-Klausel Folgendes ist:" -#: sql_help.c:4125 sql_help.c:4128 +#: sql_help.c:4167 sql_help.c:4170 msgid "merge_update" msgstr "Merge-Update" -#: sql_help.c:4126 sql_help.c:4129 +#: sql_help.c:4168 sql_help.c:4171 msgid "merge_delete" msgstr "Merge-Delete" -#: sql_help.c:4131 +#: sql_help.c:4173 msgid "merge_insert" msgstr "Merge-Insert" -#: sql_help.c:4132 +#: sql_help.c:4174 msgid "and merge_insert is:" msgstr "und Merge-Insert Folgendes ist:" -#: sql_help.c:4135 +#: sql_help.c:4177 msgid "and merge_update is:" msgstr "und Merge-Update Folgendes ist:" -#: sql_help.c:4142 +#: sql_help.c:4184 msgid "and merge_delete is:" msgstr "und Merge-Delete Folgendes ist:" -#: sql_help.c:4183 +#: sql_help.c:4225 msgid "payload" msgstr "Payload" -#: sql_help.c:4210 +#: sql_help.c:4252 msgid "old_role" msgstr "alte_Rolle" -#: sql_help.c:4211 +#: sql_help.c:4253 msgid "new_role" msgstr "neue_Rolle" -#: sql_help.c:4250 sql_help.c:4459 sql_help.c:4467 +#: sql_help.c:4292 sql_help.c:4501 sql_help.c:4509 msgid "savepoint_name" msgstr "Sicherungspunktsname" -#: sql_help.c:4607 sql_help.c:4665 sql_help.c:4865 sql_help.c:4923 -#: sql_help.c:5110 sql_help.c:5168 +#: sql_help.c:4649 sql_help.c:4707 sql_help.c:4907 sql_help.c:4965 +#: sql_help.c:5154 sql_help.c:5212 msgid "grouping_element" msgstr "Gruppierelement" -#: sql_help.c:4609 sql_help.c:4713 sql_help.c:4867 sql_help.c:5112 +#: sql_help.c:4651 sql_help.c:4755 sql_help.c:4909 sql_help.c:5156 msgid "window_name" msgstr "Fenstername" -#: sql_help.c:4610 sql_help.c:4714 sql_help.c:4868 sql_help.c:5113 +#: sql_help.c:4652 sql_help.c:4756 sql_help.c:4910 sql_help.c:5157 msgid "window_definition" msgstr "Fensterdefinition" -#: sql_help.c:4611 sql_help.c:4625 sql_help.c:4669 sql_help.c:4715 -#: sql_help.c:4869 sql_help.c:4883 sql_help.c:4927 sql_help.c:5114 -#: sql_help.c:5128 sql_help.c:5172 +#: sql_help.c:4653 sql_help.c:4667 sql_help.c:4711 sql_help.c:4757 +#: sql_help.c:4911 sql_help.c:4925 sql_help.c:4969 sql_help.c:5158 +#: sql_help.c:5172 sql_help.c:5216 msgid "select" msgstr "Select" -#: sql_help.c:4617 sql_help.c:4875 sql_help.c:5120 +#: sql_help.c:4659 sql_help.c:4917 sql_help.c:5164 msgid "from_reference" msgstr "From-Referenz" -#: sql_help.c:4618 sql_help.c:4876 sql_help.c:5121 +#: sql_help.c:4660 sql_help.c:4918 sql_help.c:5165 msgid "where from_item can be one of:" msgstr "wobei From-Element Folgendes sein kann:" -#: sql_help.c:4621 sql_help.c:4627 sql_help.c:4630 sql_help.c:4634 -#: sql_help.c:4646 sql_help.c:4879 sql_help.c:4885 sql_help.c:4888 -#: sql_help.c:4892 sql_help.c:4904 sql_help.c:5124 sql_help.c:5130 -#: sql_help.c:5133 sql_help.c:5137 sql_help.c:5149 +#: sql_help.c:4663 sql_help.c:4669 sql_help.c:4672 sql_help.c:4676 +#: sql_help.c:4688 sql_help.c:4921 sql_help.c:4927 sql_help.c:4930 +#: sql_help.c:4934 sql_help.c:4946 sql_help.c:5168 sql_help.c:5174 +#: sql_help.c:5177 sql_help.c:5181 sql_help.c:5193 msgid "column_alias" msgstr "Spaltenalias" -#: sql_help.c:4622 sql_help.c:4880 sql_help.c:5125 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5169 msgid "sampling_method" msgstr "Stichprobenmethode" -#: sql_help.c:4624 sql_help.c:4882 sql_help.c:5127 +#: sql_help.c:4666 sql_help.c:4924 sql_help.c:5171 msgid "seed" msgstr "Startwert" -#: sql_help.c:4628 sql_help.c:4667 sql_help.c:4886 sql_help.c:4925 -#: sql_help.c:5131 sql_help.c:5170 +#: sql_help.c:4670 sql_help.c:4709 sql_help.c:4928 sql_help.c:4967 +#: sql_help.c:5175 sql_help.c:5214 msgid "with_query_name" msgstr "With-Anfragename" -#: sql_help.c:4638 sql_help.c:4641 sql_help.c:4644 sql_help.c:4896 -#: sql_help.c:4899 sql_help.c:4902 sql_help.c:5141 sql_help.c:5144 -#: sql_help.c:5147 +#: sql_help.c:4680 sql_help.c:4683 sql_help.c:4686 sql_help.c:4938 +#: sql_help.c:4941 sql_help.c:4944 sql_help.c:5185 sql_help.c:5188 +#: sql_help.c:5191 msgid "column_definition" msgstr "Spaltendefinition" -#: sql_help.c:4648 sql_help.c:4654 sql_help.c:4906 sql_help.c:4912 -#: sql_help.c:5151 sql_help.c:5157 +#: sql_help.c:4690 sql_help.c:4696 sql_help.c:4948 sql_help.c:4954 +#: sql_help.c:5195 sql_help.c:5201 msgid "join_type" msgstr "Verbundtyp" -#: sql_help.c:4651 sql_help.c:4909 sql_help.c:5154 +#: sql_help.c:4693 sql_help.c:4951 sql_help.c:5198 msgid "join_column" msgstr "Verbundspalte" -#: sql_help.c:4652 sql_help.c:4910 sql_help.c:5155 +#: sql_help.c:4694 sql_help.c:4952 sql_help.c:5199 msgid "join_using_alias" msgstr "Join-Using-Alias" -#: sql_help.c:4658 sql_help.c:4916 sql_help.c:5161 +#: sql_help.c:4700 sql_help.c:4958 sql_help.c:5205 msgid "and grouping_element can be one of:" msgstr "und Gruppierelement eins der folgenden sein kann:" -#: sql_help.c:4666 sql_help.c:4924 sql_help.c:5169 +#: sql_help.c:4708 sql_help.c:4966 sql_help.c:5213 msgid "and with_query is:" msgstr "und With-Anfrage ist:" -#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 +#: sql_help.c:4712 sql_help.c:4970 sql_help.c:5217 msgid "values" msgstr "values" -#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 +#: sql_help.c:4713 sql_help.c:4971 sql_help.c:5218 msgid "insert" msgstr "insert" -#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 +#: sql_help.c:4714 sql_help.c:4972 sql_help.c:5219 msgid "update" msgstr "update" -#: sql_help.c:4673 sql_help.c:4931 sql_help.c:5176 +#: sql_help.c:4715 sql_help.c:4973 sql_help.c:5220 msgid "delete" msgstr "delete" -#: sql_help.c:4674 sql_help.c:4932 sql_help.c:5177 +#: sql_help.c:4716 sql_help.c:4974 sql_help.c:5221 msgid "merge" msgstr "merge" -#: sql_help.c:4676 sql_help.c:4934 sql_help.c:5179 +#: sql_help.c:4718 sql_help.c:4976 sql_help.c:5223 msgid "search_seq_col_name" msgstr "Search-Seq-Spaltenname" -#: sql_help.c:4678 sql_help.c:4936 sql_help.c:5181 +#: sql_help.c:4720 sql_help.c:4978 sql_help.c:5225 msgid "cycle_mark_col_name" msgstr "Cycle-Mark-Spaltenname" -#: sql_help.c:4679 sql_help.c:4937 sql_help.c:5182 +#: sql_help.c:4721 sql_help.c:4979 sql_help.c:5226 msgid "cycle_mark_value" msgstr "Cycle-Mark-Wert" -#: sql_help.c:4680 sql_help.c:4938 sql_help.c:5183 +#: sql_help.c:4722 sql_help.c:4980 sql_help.c:5227 msgid "cycle_mark_default" msgstr "Cycle-Mark-Standard" -#: sql_help.c:4681 sql_help.c:4939 sql_help.c:5184 +#: sql_help.c:4723 sql_help.c:4981 sql_help.c:5228 msgid "cycle_path_col_name" msgstr "Cycle-Pfad-Spaltenname" -#: sql_help.c:4708 +#: sql_help.c:4750 msgid "new_table" msgstr "neue_Tabelle" -#: sql_help.c:4779 +#: sql_help.c:4821 msgid "snapshot_id" msgstr "Snapshot-ID" -#: sql_help.c:5046 +#: sql_help.c:5090 msgid "sort_expression" msgstr "Sortierausdruck" -#: sql_help.c:5191 sql_help.c:6175 +#: sql_help.c:5235 sql_help.c:6219 msgid "abort the current transaction" msgstr "bricht die aktuelle Transaktion ab" -#: sql_help.c:5197 +#: sql_help.c:5241 msgid "change the definition of an aggregate function" msgstr "ändert die Definition einer Aggregatfunktion" -#: sql_help.c:5203 +#: sql_help.c:5247 msgid "change the definition of a collation" msgstr "ändert die Definition einer Sortierfolge" -#: sql_help.c:5209 +#: sql_help.c:5253 msgid "change the definition of a conversion" msgstr "ändert die Definition einer Zeichensatzkonversion" -#: sql_help.c:5215 +#: sql_help.c:5259 msgid "change a database" msgstr "ändert eine Datenbank" -#: sql_help.c:5221 +#: sql_help.c:5265 msgid "define default access privileges" msgstr "definiert vorgegebene Zugriffsprivilegien" -#: sql_help.c:5227 +#: sql_help.c:5271 msgid "change the definition of a domain" msgstr "ändert die Definition einer Domäne" -#: sql_help.c:5233 +#: sql_help.c:5277 msgid "change the definition of an event trigger" msgstr "ändert die Definition eines Ereignistriggers" -#: sql_help.c:5239 +#: sql_help.c:5283 msgid "change the definition of an extension" msgstr "ändert die Definition einer Erweiterung" -#: sql_help.c:5245 +#: sql_help.c:5289 msgid "change the definition of a foreign-data wrapper" msgstr "ändert die Definition eines Fremddaten-Wrappers" -#: sql_help.c:5251 +#: sql_help.c:5295 msgid "change the definition of a foreign table" msgstr "ändert die Definition einer Fremdtabelle" -#: sql_help.c:5257 +#: sql_help.c:5301 msgid "change the definition of a function" msgstr "ändert die Definition einer Funktion" -#: sql_help.c:5263 +#: sql_help.c:5307 msgid "change role name or membership" msgstr "ändert Rollenname oder -mitglieder" -#: sql_help.c:5269 +#: sql_help.c:5313 msgid "change the definition of an index" msgstr "ändert die Definition eines Index" -#: sql_help.c:5275 +#: sql_help.c:5319 msgid "change the definition of a procedural language" msgstr "ändert die Definition einer prozeduralen Sprache" -#: sql_help.c:5281 +#: sql_help.c:5325 msgid "change the definition of a large object" msgstr "ändert die Definition eines Large Object" -#: sql_help.c:5287 +#: sql_help.c:5331 msgid "change the definition of a materialized view" msgstr "ändert die Definition einer materialisierten Sicht" -#: sql_help.c:5293 +#: sql_help.c:5337 msgid "change the definition of an operator" msgstr "ändert die Definition eines Operators" -#: sql_help.c:5299 +#: sql_help.c:5343 msgid "change the definition of an operator class" msgstr "ändert die Definition einer Operatorklasse" -#: sql_help.c:5305 +#: sql_help.c:5349 msgid "change the definition of an operator family" msgstr "ändert die Definition einer Operatorfamilie" -#: sql_help.c:5311 +#: sql_help.c:5355 msgid "change the definition of a row-level security policy" msgstr "ändert die Definition einer Policy für Sicherheit auf Zeilenebene" -#: sql_help.c:5317 +#: sql_help.c:5361 msgid "change the definition of a procedure" msgstr "ändert die Definition einer Prozedur" -#: sql_help.c:5323 +#: sql_help.c:5367 msgid "change the definition of a publication" msgstr "ändert die Definition einer Publikation" -#: sql_help.c:5329 sql_help.c:5431 +#: sql_help.c:5373 sql_help.c:5475 msgid "change a database role" msgstr "ändert eine Datenbankrolle" -#: sql_help.c:5335 +#: sql_help.c:5379 msgid "change the definition of a routine" msgstr "ändert die Definition einer Routine" -#: sql_help.c:5341 +#: sql_help.c:5385 msgid "change the definition of a rule" msgstr "ändert die Definition einer Regel" -#: sql_help.c:5347 +#: sql_help.c:5391 msgid "change the definition of a schema" msgstr "ändert die Definition eines Schemas" -#: sql_help.c:5353 +#: sql_help.c:5397 msgid "change the definition of a sequence generator" msgstr "ändert die Definition eines Sequenzgenerators" -#: sql_help.c:5359 +#: sql_help.c:5403 msgid "change the definition of a foreign server" msgstr "ändert die Definition eines Fremdservers" -#: sql_help.c:5365 +#: sql_help.c:5409 msgid "change the definition of an extended statistics object" msgstr "ändert die Definition eines erweiterten Statistikobjekts" -#: sql_help.c:5371 +#: sql_help.c:5415 msgid "change the definition of a subscription" msgstr "ändert die Definition einer Subskription" -#: sql_help.c:5377 +#: sql_help.c:5421 msgid "change a server configuration parameter" msgstr "ändert einen Server-Konfigurationsparameter" -#: sql_help.c:5383 +#: sql_help.c:5427 msgid "change the definition of a table" msgstr "ändert die Definition einer Tabelle" -#: sql_help.c:5389 +#: sql_help.c:5433 msgid "change the definition of a tablespace" msgstr "ändert die Definition eines Tablespace" -#: sql_help.c:5395 +#: sql_help.c:5439 msgid "change the definition of a text search configuration" msgstr "ändert die Definition einer Textsuchekonfiguration" -#: sql_help.c:5401 +#: sql_help.c:5445 msgid "change the definition of a text search dictionary" msgstr "ändert die Definition eines Textsuchewörterbuchs" -#: sql_help.c:5407 +#: sql_help.c:5451 msgid "change the definition of a text search parser" msgstr "ändert die Definition eines Textsucheparsers" -#: sql_help.c:5413 +#: sql_help.c:5457 msgid "change the definition of a text search template" msgstr "ändert die Definition einer Textsuchevorlage" -#: sql_help.c:5419 +#: sql_help.c:5463 msgid "change the definition of a trigger" msgstr "ändert die Definition eines Triggers" -#: sql_help.c:5425 +#: sql_help.c:5469 msgid "change the definition of a type" msgstr "ändert die Definition eines Typs" -#: sql_help.c:5437 +#: sql_help.c:5481 msgid "change the definition of a user mapping" msgstr "ändert die Definition einer Benutzerabbildung" -#: sql_help.c:5443 +#: sql_help.c:5487 msgid "change the definition of a view" msgstr "ändert die Definition einer Sicht" -#: sql_help.c:5449 +#: sql_help.c:5493 msgid "collect statistics about a database" msgstr "sammelt Statistiken über eine Datenbank" -#: sql_help.c:5455 sql_help.c:6253 +#: sql_help.c:5499 sql_help.c:6297 msgid "start a transaction block" msgstr "startet einen Transaktionsblock" -#: sql_help.c:5461 +#: sql_help.c:5505 msgid "invoke a procedure" msgstr "ruft eine Prozedur auf" -#: sql_help.c:5467 +#: sql_help.c:5511 msgid "force a write-ahead log checkpoint" msgstr "erzwingt einen Checkpoint im Write-Ahead-Log" -#: sql_help.c:5473 +#: sql_help.c:5517 msgid "close a cursor" msgstr "schließt einen Cursor" -#: sql_help.c:5479 +#: sql_help.c:5523 msgid "cluster a table according to an index" msgstr "clustert eine Tabelle nach einem Index" -#: sql_help.c:5485 +#: sql_help.c:5529 msgid "define or change the comment of an object" msgstr "definiert oder ändert den Kommentar eines Objektes" -#: sql_help.c:5491 sql_help.c:6049 +#: sql_help.c:5535 sql_help.c:6093 msgid "commit the current transaction" msgstr "schließt die aktuelle Transaktion ab" -#: sql_help.c:5497 +#: sql_help.c:5541 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:5503 +#: sql_help.c:5547 msgid "copy data between a file and a table" msgstr "kopiert Daten zwischen einer Datei und einer Tabelle" -#: sql_help.c:5509 +#: sql_help.c:5553 msgid "define a new access method" msgstr "definiert eine neue Zugriffsmethode" -#: sql_help.c:5515 +#: sql_help.c:5559 msgid "define a new aggregate function" msgstr "definiert eine neue Aggregatfunktion" -#: sql_help.c:5521 +#: sql_help.c:5565 msgid "define a new cast" msgstr "definiert eine neue Typumwandlung" -#: sql_help.c:5527 +#: sql_help.c:5571 msgid "define a new collation" msgstr "definiert eine neue Sortierfolge" -#: sql_help.c:5533 +#: sql_help.c:5577 msgid "define a new encoding conversion" msgstr "definiert eine neue Kodierungskonversion" -#: sql_help.c:5539 +#: sql_help.c:5583 msgid "create a new database" msgstr "erzeugt eine neue Datenbank" -#: sql_help.c:5545 +#: sql_help.c:5589 msgid "define a new domain" msgstr "definiert eine neue Domäne" -#: sql_help.c:5551 +#: sql_help.c:5595 msgid "define a new event trigger" msgstr "definiert einen neuen Ereignistrigger" -#: sql_help.c:5557 +#: sql_help.c:5601 msgid "install an extension" msgstr "installiert eine Erweiterung" -#: sql_help.c:5563 +#: sql_help.c:5607 msgid "define a new foreign-data wrapper" msgstr "definiert einen neuen Fremddaten-Wrapper" -#: sql_help.c:5569 +#: sql_help.c:5613 msgid "define a new foreign table" msgstr "definiert eine neue Fremdtabelle" -#: sql_help.c:5575 +#: sql_help.c:5619 msgid "define a new function" msgstr "definiert eine neue Funktion" -#: sql_help.c:5581 sql_help.c:5641 sql_help.c:5743 +#: sql_help.c:5625 sql_help.c:5685 sql_help.c:5787 msgid "define a new database role" msgstr "definiert eine neue Datenbankrolle" -#: sql_help.c:5587 +#: sql_help.c:5631 msgid "define a new index" msgstr "definiert einen neuen Index" -#: sql_help.c:5593 +#: sql_help.c:5637 msgid "define a new procedural language" msgstr "definiert eine neue prozedurale Sprache" -#: sql_help.c:5599 +#: sql_help.c:5643 msgid "define a new materialized view" msgstr "definiert eine neue materialisierte Sicht" -#: sql_help.c:5605 +#: sql_help.c:5649 msgid "define a new operator" msgstr "definiert einen neuen Operator" -#: sql_help.c:5611 +#: sql_help.c:5655 msgid "define a new operator class" msgstr "definiert eine neue Operatorklasse" -#: sql_help.c:5617 +#: sql_help.c:5661 msgid "define a new operator family" msgstr "definiert eine neue Operatorfamilie" -#: sql_help.c:5623 +#: sql_help.c:5667 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:5629 +#: sql_help.c:5673 msgid "define a new procedure" msgstr "definiert eine neue Prozedur" -#: sql_help.c:5635 +#: sql_help.c:5679 msgid "define a new publication" msgstr "definiert eine neue Publikation" -#: sql_help.c:5647 +#: sql_help.c:5691 msgid "define a new rewrite rule" msgstr "definiert eine neue Umschreiberegel" -#: sql_help.c:5653 +#: sql_help.c:5697 msgid "define a new schema" msgstr "definiert ein neues Schema" -#: sql_help.c:5659 +#: sql_help.c:5703 msgid "define a new sequence generator" msgstr "definiert einen neuen Sequenzgenerator" -#: sql_help.c:5665 +#: sql_help.c:5709 msgid "define a new foreign server" msgstr "definiert einen neuen Fremdserver" -#: sql_help.c:5671 +#: sql_help.c:5715 msgid "define extended statistics" msgstr "definiert erweiterte Statistiken" -#: sql_help.c:5677 +#: sql_help.c:5721 msgid "define a new subscription" msgstr "definiert eine neue Subskription" -#: sql_help.c:5683 +#: sql_help.c:5727 msgid "define a new table" msgstr "definiert eine neue Tabelle" -#: sql_help.c:5689 sql_help.c:6211 +#: sql_help.c:5733 sql_help.c:6255 msgid "define a new table from the results of a query" msgstr "definiert eine neue Tabelle aus den Ergebnissen einer Anfrage" -#: sql_help.c:5695 +#: sql_help.c:5739 msgid "define a new tablespace" msgstr "definiert einen neuen Tablespace" -#: sql_help.c:5701 +#: sql_help.c:5745 msgid "define a new text search configuration" msgstr "definiert eine neue Textsuchekonfiguration" -#: sql_help.c:5707 +#: sql_help.c:5751 msgid "define a new text search dictionary" msgstr "definiert ein neues Textsuchewörterbuch" -#: sql_help.c:5713 +#: sql_help.c:5757 msgid "define a new text search parser" msgstr "definiert einen neuen Textsucheparser" -#: sql_help.c:5719 +#: sql_help.c:5763 msgid "define a new text search template" msgstr "definiert eine neue Textsuchevorlage" -#: sql_help.c:5725 +#: sql_help.c:5769 msgid "define a new transform" msgstr "definiert eine neue Transformation" -#: sql_help.c:5731 +#: sql_help.c:5775 msgid "define a new trigger" msgstr "definiert einen neuen Trigger" -#: sql_help.c:5737 +#: sql_help.c:5781 msgid "define a new data type" msgstr "definiert einen neuen Datentyp" -#: sql_help.c:5749 +#: sql_help.c:5793 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:5755 +#: sql_help.c:5799 msgid "define a new view" msgstr "definiert eine neue Sicht" -#: sql_help.c:5761 +#: sql_help.c:5805 msgid "deallocate a prepared statement" msgstr "gibt einen vorbereiteten Befehl frei" -#: sql_help.c:5767 +#: sql_help.c:5811 msgid "define a cursor" msgstr "definiert einen Cursor" -#: sql_help.c:5773 +#: sql_help.c:5817 msgid "delete rows of a table" msgstr "löscht Zeilen einer Tabelle" -#: sql_help.c:5779 +#: sql_help.c:5823 msgid "discard session state" msgstr "verwirft den Sitzungszustand" -#: sql_help.c:5785 +#: sql_help.c:5829 msgid "execute an anonymous code block" msgstr "führt einen anonymen Codeblock aus" -#: sql_help.c:5791 +#: sql_help.c:5835 msgid "remove an access method" msgstr "entfernt eine Zugriffsmethode" -#: sql_help.c:5797 +#: sql_help.c:5841 msgid "remove an aggregate function" msgstr "entfernt eine Aggregatfunktion" -#: sql_help.c:5803 +#: sql_help.c:5847 msgid "remove a cast" msgstr "entfernt eine Typumwandlung" -#: sql_help.c:5809 +#: sql_help.c:5853 msgid "remove a collation" msgstr "entfernt eine Sortierfolge" -#: sql_help.c:5815 +#: sql_help.c:5859 msgid "remove a conversion" msgstr "entfernt eine Zeichensatzkonversion" -#: sql_help.c:5821 +#: sql_help.c:5865 msgid "remove a database" msgstr "entfernt eine Datenbank" -#: sql_help.c:5827 +#: sql_help.c:5871 msgid "remove a domain" msgstr "entfernt eine Domäne" -#: sql_help.c:5833 +#: sql_help.c:5877 msgid "remove an event trigger" msgstr "entfernt einen Ereignistrigger" -#: sql_help.c:5839 +#: sql_help.c:5883 msgid "remove an extension" msgstr "entfernt eine Erweiterung" -#: sql_help.c:5845 +#: sql_help.c:5889 msgid "remove a foreign-data wrapper" msgstr "entfernt einen Fremddaten-Wrapper" -#: sql_help.c:5851 +#: sql_help.c:5895 msgid "remove a foreign table" msgstr "entfernt eine Fremdtabelle" -#: sql_help.c:5857 +#: sql_help.c:5901 msgid "remove a function" msgstr "entfernt eine Funktion" -#: sql_help.c:5863 sql_help.c:5929 sql_help.c:6031 +#: sql_help.c:5907 sql_help.c:5973 sql_help.c:6075 msgid "remove a database role" msgstr "entfernt eine Datenbankrolle" -#: sql_help.c:5869 +#: sql_help.c:5913 msgid "remove an index" msgstr "entfernt einen Index" -#: sql_help.c:5875 +#: sql_help.c:5919 msgid "remove a procedural language" msgstr "entfernt eine prozedurale Sprache" -#: sql_help.c:5881 +#: sql_help.c:5925 msgid "remove a materialized view" msgstr "entfernt eine materialisierte Sicht" -#: sql_help.c:5887 +#: sql_help.c:5931 msgid "remove an operator" msgstr "entfernt einen Operator" -#: sql_help.c:5893 +#: sql_help.c:5937 msgid "remove an operator class" msgstr "entfernt eine Operatorklasse" -#: sql_help.c:5899 +#: sql_help.c:5943 msgid "remove an operator family" msgstr "entfernt eine Operatorfamilie" -#: sql_help.c:5905 +#: sql_help.c:5949 msgid "remove database objects owned by a database role" msgstr "entfernt die einer Datenbankrolle gehörenden Datenbankobjekte" -#: sql_help.c:5911 +#: sql_help.c:5955 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:5917 +#: sql_help.c:5961 msgid "remove a procedure" msgstr "entfernt eine Prozedur" -#: sql_help.c:5923 +#: sql_help.c:5967 msgid "remove a publication" msgstr "entfernt eine Publikation" -#: sql_help.c:5935 +#: sql_help.c:5979 msgid "remove a routine" msgstr "entfernt eine Routine" -#: sql_help.c:5941 +#: sql_help.c:5985 msgid "remove a rewrite rule" msgstr "entfernt eine Umschreiberegel" -#: sql_help.c:5947 +#: sql_help.c:5991 msgid "remove a schema" msgstr "entfernt ein Schema" -#: sql_help.c:5953 +#: sql_help.c:5997 msgid "remove a sequence" msgstr "entfernt eine Sequenz" -#: sql_help.c:5959 +#: sql_help.c:6003 msgid "remove a foreign server descriptor" msgstr "entfernt einen Fremdserverdeskriptor" -#: sql_help.c:5965 +#: sql_help.c:6009 msgid "remove extended statistics" msgstr "entfernt erweiterte Statistiken" -#: sql_help.c:5971 +#: sql_help.c:6015 msgid "remove a subscription" msgstr "entfernt eine Subskription" -#: sql_help.c:5977 +#: sql_help.c:6021 msgid "remove a table" msgstr "entfernt eine Tabelle" -#: sql_help.c:5983 +#: sql_help.c:6027 msgid "remove a tablespace" msgstr "entfernt einen Tablespace" -#: sql_help.c:5989 +#: sql_help.c:6033 msgid "remove a text search configuration" msgstr "entfernt eine Textsuchekonfiguration" -#: sql_help.c:5995 +#: sql_help.c:6039 msgid "remove a text search dictionary" msgstr "entfernt ein Textsuchewörterbuch" -#: sql_help.c:6001 +#: sql_help.c:6045 msgid "remove a text search parser" msgstr "entfernt einen Textsucheparser" -#: sql_help.c:6007 +#: sql_help.c:6051 msgid "remove a text search template" msgstr "entfernt eine Textsuchevorlage" -#: sql_help.c:6013 +#: sql_help.c:6057 msgid "remove a transform" msgstr "entfernt eine Transformation" -#: sql_help.c:6019 +#: sql_help.c:6063 msgid "remove a trigger" msgstr "entfernt einen Trigger" -#: sql_help.c:6025 +#: sql_help.c:6069 msgid "remove a data type" msgstr "entfernt einen Datentyp" -#: sql_help.c:6037 +#: sql_help.c:6081 msgid "remove a user mapping for a foreign server" msgstr "entfernt eine Benutzerabbildung für einen Fremdserver" -#: sql_help.c:6043 +#: sql_help.c:6087 msgid "remove a view" msgstr "entfernt eine Sicht" -#: sql_help.c:6055 +#: sql_help.c:6099 msgid "execute a prepared statement" msgstr "führt einen vorbereiteten Befehl aus" -#: sql_help.c:6061 +#: sql_help.c:6105 msgid "show the execution plan of a statement" msgstr "zeigt den Ausführungsplan eines Befehls" -#: sql_help.c:6067 +#: sql_help.c:6111 msgid "retrieve rows from a query using a cursor" msgstr "liest Zeilen aus einer Anfrage mit einem Cursor" -#: sql_help.c:6073 +#: sql_help.c:6117 msgid "define access privileges" msgstr "definiert Zugriffsprivilegien" -#: sql_help.c:6079 +#: sql_help.c:6123 msgid "import table definitions from a foreign server" msgstr "importiert Tabellendefinitionen von einem Fremdserver" -#: sql_help.c:6085 +#: sql_help.c:6129 msgid "create new rows in a table" msgstr "erzeugt neue Zeilen in einer Tabelle" -#: sql_help.c:6091 +#: sql_help.c:6135 msgid "listen for a notification" msgstr "hört auf eine Benachrichtigung" -#: sql_help.c:6097 +#: sql_help.c:6141 msgid "load a shared library file" msgstr "lädt eine dynamische Bibliotheksdatei" -#: sql_help.c:6103 +#: sql_help.c:6147 msgid "lock a table" msgstr "sperrt eine Tabelle" -#: sql_help.c:6109 +#: sql_help.c:6153 msgid "conditionally insert, update, or delete rows of a table" msgstr "fügt Zeilen in eine Tabelle ein oder ändert oder löscht Zeilen einer Tabelle, abhängig von Bedingungen" -#: sql_help.c:6115 +#: sql_help.c:6159 msgid "position a cursor" msgstr "positioniert einen Cursor" -#: sql_help.c:6121 +#: sql_help.c:6165 msgid "generate a notification" msgstr "erzeugt eine Benachrichtigung" -#: sql_help.c:6127 +#: sql_help.c:6171 msgid "prepare a statement for execution" msgstr "bereitet einen Befehl zur Ausführung vor" -#: sql_help.c:6133 +#: sql_help.c:6177 msgid "prepare the current transaction for two-phase commit" msgstr "bereitet die aktuelle Transaktion für Two-Phase-Commit vor" -#: sql_help.c:6139 +#: sql_help.c:6183 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:6145 +#: sql_help.c:6189 msgid "replace the contents of a materialized view" msgstr "ersetzt den Inhalt einer materialisierten Sicht" -#: sql_help.c:6151 +#: sql_help.c:6195 msgid "rebuild indexes" msgstr "baut Indexe neu" -#: sql_help.c:6157 +#: sql_help.c:6201 msgid "release a previously defined savepoint" msgstr "gibt einen zuvor definierten Sicherungspunkt frei" -#: sql_help.c:6163 +#: sql_help.c:6207 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:6169 +#: sql_help.c:6213 msgid "remove access privileges" msgstr "entfernt Zugriffsprivilegien" -#: sql_help.c:6181 +#: sql_help.c:6225 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:6187 +#: sql_help.c:6231 msgid "roll back to a savepoint" msgstr "rollt eine Transaktion bis zu einem Sicherungspunkt zurück" -#: sql_help.c:6193 +#: sql_help.c:6237 msgid "define a new savepoint within the current transaction" msgstr "definiert einen neuen Sicherungspunkt in der aktuellen Transaktion" -#: sql_help.c:6199 +#: sql_help.c:6243 msgid "define or change a security label applied to an object" msgstr "definiert oder ändert ein Security-Label eines Objektes" -#: sql_help.c:6205 sql_help.c:6259 sql_help.c:6295 +#: sql_help.c:6249 sql_help.c:6303 sql_help.c:6339 msgid "retrieve rows from a table or view" msgstr "liest Zeilen aus einer Tabelle oder Sicht" -#: sql_help.c:6217 +#: sql_help.c:6261 msgid "change a run-time parameter" msgstr "ändert einen Konfigurationsparameter" -#: sql_help.c:6223 +#: sql_help.c:6267 msgid "set constraint check timing for the current transaction" msgstr "setzt die Zeitsteuerung für Check-Constraints in der aktuellen Transaktion" -#: sql_help.c:6229 +#: sql_help.c:6273 msgid "set the current user identifier of the current session" msgstr "setzt den aktuellen Benutzernamen der aktuellen Sitzung" -#: sql_help.c:6235 +#: sql_help.c:6279 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:6241 +#: sql_help.c:6285 msgid "set the characteristics of the current transaction" msgstr "setzt die Charakteristika der aktuellen Transaktion" -#: sql_help.c:6247 +#: sql_help.c:6291 msgid "show the value of a run-time parameter" msgstr "zeigt den Wert eines Konfigurationsparameters" -#: sql_help.c:6265 +#: sql_help.c:6309 msgid "empty a table or set of tables" msgstr "leert eine oder mehrere Tabellen" -#: sql_help.c:6271 +#: sql_help.c:6315 msgid "stop listening for a notification" msgstr "beendet das Hören auf eine Benachrichtigung" -#: sql_help.c:6277 +#: sql_help.c:6321 msgid "update rows of a table" msgstr "aktualisiert Zeilen einer Tabelle" -#: sql_help.c:6283 +#: sql_help.c:6327 msgid "garbage-collect and optionally analyze a database" msgstr "säubert und analysiert eine Datenbank" -#: sql_help.c:6289 +#: sql_help.c:6333 msgid "compute a set of rows" msgstr "berechnet eine Zeilenmenge" -#: startup.c:220 +#: startup.c:225 #, c-format msgid "-1 can only be used in non-interactive mode" msgstr "-1 kann nur im nicht interaktiven Modus verwendet werden" -#: startup.c:343 +#: startup.c:348 #, c-format msgid "could not open log file \"%s\": %m" msgstr "konnte Logdatei »%s« nicht öffnen: %m" -#: startup.c:460 +#: startup.c:465 #, c-format msgid "" "Type \"help\" for help.\n" @@ -6597,27 +6887,27 @@ msgstr "" "Geben Sie »help« für Hilfe ein.\n" "\n" -#: startup.c:612 +#: startup.c:617 #, c-format msgid "could not set printing parameter \"%s\"" msgstr "konnte Ausgabeparameter »%s« nicht setzen" -#: startup.c:719 +#: startup.c:724 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: startup.c:735 +#: startup.c:740 #, c-format msgid "extra command-line argument \"%s\" ignored" msgstr "überflüssiges Kommandozeilenargument »%s« ignoriert" -#: startup.c:783 +#: startup.c:788 #, c-format msgid "could not find own program executable" msgstr "konnte eigene Programmdatei nicht finden" -#: tab-complete.c:6230 +#: tab-complete.in.c:6606 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6628,22 +6918,47 @@ msgstr "" "Anfrage war:\n" "%s" -#: variables.c:139 +#: variables.c:141 #, c-format msgid "unrecognized value \"%s\" for \"%s\": Boolean expected" msgstr "unbekannter Wert »%s« für »%s«: Boole'scher Wert erwartet" -#: variables.c:176 +#: variables.c:178 #, c-format msgid "invalid value \"%s\" for \"%s\": integer expected" msgstr "ungültiger Wert »%s« für »%s«: ganze Zahl erwartet" -#: variables.c:224 +#: variables.c:207 +#, c-format +msgid "invalid input syntax for \"%s\"" +msgstr "ungültige Eingabesyntax für »%s«" + +#: variables.c:218 +#, c-format +msgid "invalid value \"%s\" for \"%s\": must be greater than %.2f" +msgstr "ungültiger Wert »%s« für »%s«: muss größer als %.2f sein" + +#: variables.c:225 +#, c-format +msgid "invalid value \"%s\" for \"%s\": must be less than %.2f" +msgstr "ungültiger Wert »%s« für »%s«: muss kleiner als %.2f sein" + +#: variables.c:241 +#, c-format +msgid "\"%s\" is out of range for \"%s\"" +msgstr "»%s« ist außerhalb des gültigen Bereichs für »%s«" + +#: variables.c:247 +#, c-format +msgid "invalid value \"%s\" for \"%s\"" +msgstr "ungültiger Wert »%s« für »%s«" + +#: variables.c:294 #, c-format msgid "invalid variable name: \"%s\"" msgstr "ungültiger Variablenname: »%s«" -#: variables.c:418 +#: variables.c:488 #, c-format msgid "" "unrecognized value \"%s\" for \"%s\"\n" diff --git a/src/bin/psql/po/el.po b/src/bin/psql/po/el.po index 9e4179afa6640..2fe4db9eec06b 100644 --- a/src/bin/psql/po/el.po +++ b/src/bin/psql/po/el.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: psql (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2023-08-15 13:47+0000\n" -"PO-Revision-Date: 2023-08-16 11:55+0200\n" +"PO-Revision-Date: 2024-06-26 08:48+0200\n" "Last-Translator: Georgios Kokolatos \n" "Language-Team: \n" "Language: el\n" @@ -3312,7 +3312,6 @@ msgstr "" " ECHO\n" " ελέγχει ποία είσοδος γράφεται στην τυπική έξοδο\n" " [all, errors, none, queries]\n" -"\n" #: help.c:408 msgid "" @@ -3494,7 +3493,7 @@ msgid "" msgstr "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" -" έκδοση διακομιστή (σε σύντομη συμβολοσειρά ή αριθμητική μορφή)\n" +" έκδοση διακομιστή (σε σύντομη συμβολοσειρά ή αριθμητική μορφή)\n" #: help.c:455 msgid "" @@ -3542,7 +3541,7 @@ msgid "" " single-step mode (same as -s option)\n" msgstr "" " SINGLESTEP\n" -" λειτουργία μονού-βήματος(όμοια με την επιλογή -s)\n" +" λειτουργία μονού-βήματος(όμοια με την επιλογή -s)\n" #: help.c:467 msgid "" diff --git a/src/bin/psql/po/es.po b/src/bin/psql/po/es.po index 9070c6c90b124..bc110c4dcad6f 100644 --- a/src/bin/psql/po/es.po +++ b/src/bin/psql/po/es.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: psql (PostgreSQL) 16\n" +"Project-Id-Version: psql (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-03 07:17+0000\n" -"PO-Revision-Date: 2023-10-04 11:48+0200\n" +"POT-Creation-Date: 2025-02-16 19:47+0000\n" +"PO-Revision-Date: 2024-12-07 09:06+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -43,33 +43,48 @@ msgstr "detalle: " msgid "hint: " msgstr "consejo: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binario «%s» no válido: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "no se pudo leer el binario «%s»: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "no se pudo encontrar un «%s» para ejecutar" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "no se pudo resolver la ruta «%s» a forma absoluta: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "no se pudo ejecutar la orden «%s»: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "no se pudo leer desde la orden «%s»: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "la orden «%s» no retornó datos" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() falló: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1373 command.c:3459 command.c:3508 command.c:3633 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -91,7 +106,7 @@ msgstr "no se puede duplicar un puntero nulo (error interno)\n" msgid "could not look up effective user ID %ld: %s" msgstr "no se pudo buscar el ID de usuario efectivo %ld: %s" -#: ../../common/username.c:45 command.c:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "el usuario no existe" @@ -130,11 +145,11 @@ msgstr "el proceso hijo fue terminado por una señal %d: %s" msgid "child process exited with unrecognized status %d" msgstr "el proceso hijo terminó con código no reconocido %d" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Petición de cancelación enviada\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "No se pudo enviar la petición de cancelación: %s" @@ -150,312 +165,337 @@ msgstr[1] "(%lu filas)" msgid "Interrupted\n" msgstr "Interrumpido\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "No se puede imprimir el contenido de la tabla: el número de celdas %lld es igual o mayor al máximo %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "No se puede agregar un encabezado al contenido de la tabla: la cantidad de columnas de %d ha sido excedida.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "No se puede agregar una celda al contenido de la tabla: la cantidad de celdas de %d ha sido excedida.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "No se puede agregar una celda al contenido de la tabla: la cantidad de celdas de %lld ha sido excedida.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "formato de salida no válido (error interno): %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "saltando expansión recursiva de la variable «%s»" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "no se pudo buscar el usuario local de ID %d: %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "no existe un usuario local con ID %d" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "orden \\%s no válida" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "Digite \\? para obtener ayuda." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: argumento extra «%s» ignorado" -#: command.c:306 +#: command.c:307 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "orden \\%s ignorada: use \\endif o Ctrl-C para salir del bloque \\if actual" -#: command.c:611 +#: command.c:614 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "no se pudo obtener directorio home para el usuario de ID %ld: %s" -#: command.c:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: no se pudo cambiar directorio a «%s»: %m" -#: command.c:654 +#: command.c:657 #, c-format msgid "You are currently not connected to a database.\n" msgstr "No está conectado a una base de datos.\n" -#: command.c:664 +#: command.c:667 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Está conectado a la base de datos «%s» como el usuario «%s» en la dirección «%s» port «%s».\n" -#: command.c:667 +#: command.c:670 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Está conectado a la base de datos «%s» como el usuario «%s» a través del socket en «%s» port «%s».\n" -#: command.c:673 +#: command.c:676 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Está conectado a la base de datos «%s» como el usuario «%s» en el servidor «%s» (dirección «%s») port «%s».\n" -#: command.c:676 +#: command.c:679 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Está conectado a la base de datos «%s» como el usuario «%s» en el servidor «%s» port «%s».\n" -#: command.c:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2676 #, c-format msgid "no query buffer" msgstr "no hay búfer de consulta" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5779 #, c-format msgid "invalid line number: %s" msgstr "número de línea no válido: %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "Sin cambios" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: nombre de codificación no válido o procedimiento de conversión no encontrado" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:720 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1369 command.c:2158 command.c:3455 command.c:3653 command.c:5885 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1376 msgid "There is no previous error." msgstr "No hay error anterior." -#: command.c:1470 +#: command.c:1489 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: falta el paréntesis derecho" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1573 command.c:1692 command.c:1996 command.c:2010 command.c:2029 +#: command.c:2197 command.c:2438 command.c:2643 command.c:2683 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: falta argumento requerido" -#: command.c:1815 +#: command.c:1823 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: no puede ocurrir después de \\else" -#: command.c:1820 +#: command.c:1828 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: no hay un \\if coincidente" -#: command.c:1884 +#: command.c:1892 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: no puede ocurrir después de \\else" -#: command.c:1889 +#: command.c:1897 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: no hay un \\if coincidente" -#: command.c:1929 +#: command.c:1937 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: no hay un \\if coincidente" -#: command.c:2085 +#: command.c:2093 msgid "Query buffer is empty." msgstr "El búfer de consulta está vacío." -#: command.c:2128 +#: command.c:2136 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Ingrese nueva contraseña para usuario «%s»: " -#: command.c:2132 +#: command.c:2140 msgid "Enter it again: " msgstr "Ingrésela nuevamente: " -#: command.c:2141 +#: command.c:2149 #, c-format msgid "Passwords didn't match." msgstr "Las contraseñas no coinciden." -#: command.c:2238 +#: command.c:2232 #, c-format msgid "\\%s: could not read value for variable" msgstr "%s: no se pudo leer el valor para la variable" -#: command.c:2340 +#: command.c:2334 msgid "Query buffer reset (cleared)." msgstr "El búfer de consulta ha sido reiniciado (limpiado)." -#: command.c:2362 +#: command.c:2356 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Se escribió la historia en el archivo «%s».\n" -#: command.c:2449 +#: command.c:2443 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: el nombre de variable de ambiente no debe contener «=»" -#: command.c:2497 +#: command.c:2491 #, c-format msgid "function name is required" msgstr "el nombre de la función es requerido" -#: command.c:2499 +#: command.c:2493 #, c-format msgid "view name is required" msgstr "el nombre de la vista es requerido" -#: command.c:2621 +#: command.c:2615 msgid "Timing is on." msgstr "El despliegue de duración está activado." -#: command.c:2623 +#: command.c:2617 msgid "Timing is off." msgstr "El despliegue de duración está desactivado." -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2703 command.c:2741 command.c:4166 command.c:4169 command.c:4172 +#: command.c:4178 command.c:4180 command.c:4206 command.c:4216 command.c:4228 +#: command.c:4242 command.c:4269 command.c:4327 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2736 copy.c:388 +#: command.c:2730 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2806 command.c:2852 +#: command.c:2802 command.c:2868 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: valor de intervalo ese especifica más de una vez" -#: command.c:2816 command.c:2862 +#: command.c:2812 command.c:2878 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: valor de intervalo incorrecto «%s»" -#: command.c:2826 +#: command.c:2822 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: cantidad de iteraciones se especifica más de una vez" -#: command.c:2836 +#: command.c:2832 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: cantidad de iteraciones incorrecta «%s»" -#: command.c:2843 +#: command.c:2842 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: mínima cantidad de filas se especifica más de una vez" + +#: command.c:2852 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch: cantidad mínima de filas incorrecta «%s»" + +#: command.c:2859 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: parámetro «%s» no reconocido" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3256 startup.c:243 startup.c:293 msgid "Password: " msgstr "Contraseña: " -#: command.c:3241 startup.c:290 +#: command.c:3261 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Contraseña para usuario %s: " -#: command.c:3297 +#: command.c:3317 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "No proporcione usuario, host o puerto de forma separada al usar una cadena de conexión" -#: command.c:3332 +#: command.c:3352 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "No existe una conexión de base de datos para poder reusar sus parámetros" -#: command.c:3638 +#: command.c:3659 #, c-format msgid "Previous connection kept" msgstr "Se ha mantenido la conexión anterior" -#: command.c:3644 +#: command.c:3665 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3700 +#: command.c:3721 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Ahora está conectado a la base de datos «%s» como el usuario «%s» en la dirección «%s» port «%s».\n" -#: command.c:3703 +#: command.c:3724 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Ahora está conectado a la base de datos «%s» como el usuario «%s» a través del socket en «%s» port «%s».\n" -#: command.c:3709 +#: command.c:3730 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Ahora está conectado a la base de datos «%s» como el usuario «%s» en el servidor «%s» (dirección «%s») port «%s».\n" -#: command.c:3712 +#: command.c:3733 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Ahora está conectado a la base de datos «%s» como el usuario «%s» en el servidor «%s» port «%s».\n" -#: command.c:3717 +#: command.c:3738 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Ahora está conectado a la base de datos «%s» con el usuario «%s».\n" -#: command.c:3757 +#: command.c:3844 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, servidor %s)\n" -#: command.c:3770 +#: command.c:3857 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -464,29 +504,33 @@ msgstr "" "ADVERTENCIA: %s versión mayor %s, servidor versión mayor %s.\n" " Algunas características de psql podrían no funcionar.\n" -#: command.c:3807 +#: command.c:3896 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "Conexión SSL (protocolo: %s, cifrado: %s, compresión: %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "Conexión SSL (protocolo: %s, cifrado: %s, compresión: %s, ALPN: %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3897 command.c:3898 msgid "unknown" msgstr "desconocido" -#: command.c:3810 help.c:42 +#: command.c:3899 help.c:42 msgid "off" msgstr "desactivado" -#: command.c:3810 help.c:42 +#: command.c:3899 help.c:42 msgid "on" msgstr "activado" -#: command.c:3824 +#: command.c:3900 +msgid "none" +msgstr "ninguno" + +#: command.c:3914 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "Conexión Cifrada GSSAPI\n" -#: command.c:3844 +#: command.c:3934 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -499,433 +543,438 @@ msgstr "" " Vea la página de referencia de psql «Notes for Windows users»\n" " para obtener más detalles.\n" -#: command.c:3949 +#: command.c:4041 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "la variable de ambiente PSQL_EDITOR_LINENUMBER_SWITCH debe estar definida para poder especificar un número de línea" -#: command.c:3979 +#: command.c:4071 #, c-format msgid "could not start editor \"%s\"" msgstr "no se pudo iniciar el editor «%s»" -#: command.c:3981 +#: command.c:4073 #, c-format msgid "could not start /bin/sh" msgstr "no se pudo iniciar /bin/sh" -#: command.c:4031 +#: command.c:4123 #, c-format msgid "could not locate temporary directory: %s" msgstr "no se pudo ubicar el directorio temporal: %s" -#: command.c:4058 +#: command.c:4150 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "no se pudo abrir archivo temporal «%s»: %m" -#: command.c:4394 +#: command.c:4486 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: abreviación ambigua «%s» coincide tanto con «%s» como con «%s»" -#: command.c:4414 +#: command.c:4506 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: formatos permitidos son aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4433 +#: command.c:4525 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: estilos de línea permitidos son ascii, old-ascii, unicode" -#: command.c:4448 +#: command.c:4540 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: estilos de línea Unicode de borde permitidos son single, double" -#: command.c:4463 +#: command.c:4555 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: estilos de línea Unicode de columna permitidos son single, double" -#: command.c:4478 +#: command.c:4570 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: estilos de línea Unicode de encabezado permitidos son single, double" -#: command.c:4530 +#: command.c:4622 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: los valores permitidos de xheader_width son «%s» (por omisión), «%s», «%s», o un número que indica el ancho exacto" -#: command.c:4547 +#: command.c:4639 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep debe ser un carácter de un solo byte" -#: command.c:4552 +#: command.c:4644 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldset ni puede ser una comilla doble, un salto de línea, o un retorno de carro" -#: command.c:4690 command.c:4891 +#: command.c:4782 command.c:4983 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: opción desconocida: %s" -#: command.c:4710 +#: command.c:4802 #, c-format msgid "Border style is %d.\n" msgstr "El estilo de borde es %d.\n" -#: command.c:4716 +#: command.c:4808 #, c-format msgid "Target width is unset.\n" msgstr "El ancho no está definido.\n" -#: command.c:4718 +#: command.c:4810 #, c-format msgid "Target width is %d.\n" msgstr "El ancho es %d.\n" -#: command.c:4725 +#: command.c:4817 #, c-format msgid "Expanded display is on.\n" msgstr "Se ha activado el despliegue expandido.\n" -#: command.c:4727 +#: command.c:4819 #, c-format msgid "Expanded display is used automatically.\n" msgstr "El despliegue expandido se usa automáticamente.\n" -#: command.c:4729 +#: command.c:4821 #, c-format msgid "Expanded display is off.\n" msgstr "Se ha desactivado el despliegue expandido.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4828 command.c:4830 command.c:4832 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "El ancho del encabezado expandido es '%s'.\n" -#: command.c:4742 +#: command.c:4834 #, c-format msgid "Expanded header width is %d.\n" msgstr "El ancho de encabezado expandido es %d.\n" -#: command.c:4748 +#: command.c:4840 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "El separador de campos para CSV es «%s».\n" -#: command.c:4756 command.c:4764 +#: command.c:4848 command.c:4856 #, c-format msgid "Field separator is zero byte.\n" msgstr "El separador de campos es el byte cero.\n" -#: command.c:4758 +#: command.c:4850 #, c-format msgid "Field separator is \"%s\".\n" msgstr "El separador de campos es «%s».\n" -#: command.c:4771 +#: command.c:4863 #, c-format msgid "Default footer is on.\n" msgstr "El pie por omisión está activo.\n" -#: command.c:4773 +#: command.c:4865 #, c-format msgid "Default footer is off.\n" msgstr "El pie de página por omisión está desactivado.\n" -#: command.c:4779 +#: command.c:4871 #, c-format msgid "Output format is %s.\n" msgstr "El formato de salida es %s.\n" -#: command.c:4785 +#: command.c:4877 #, c-format msgid "Line style is %s.\n" msgstr "El estilo de línea es %s.\n" -#: command.c:4792 +#: command.c:4884 #, c-format msgid "Null display is \"%s\".\n" msgstr "Despliegue de nulos es «%s».\n" -#: command.c:4800 +#: command.c:4892 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "La salida numérica ajustada localmente está habilitada.\n" -#: command.c:4802 +#: command.c:4894 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "La salida numérica ajustada localmente está deshabilitada.\n" -#: command.c:4809 +#: command.c:4901 #, c-format msgid "Pager is used for long output.\n" msgstr "El paginador se usará para salida larga.\n" -#: command.c:4811 +#: command.c:4903 #, c-format msgid "Pager is always used.\n" msgstr "El paginador se usará siempre.\n" -#: command.c:4813 +#: command.c:4905 #, c-format msgid "Pager usage is off.\n" msgstr "El paginador no se usará.\n" -#: command.c:4819 +#: command.c:4911 #, 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] "El paginador no se usará para menos de %d línea.\n" msgstr[1] "El paginador no se usará para menos de %d líneas.\n" -#: command.c:4829 command.c:4839 +#: command.c:4921 command.c:4931 #, c-format msgid "Record separator is zero byte.\n" msgstr "El separador de filas es el byte cero.\n" -#: command.c:4831 +#: command.c:4923 #, c-format msgid "Record separator is .\n" msgstr "El separador de filas es .\n" -#: command.c:4833 +#: command.c:4925 #, c-format msgid "Record separator is \"%s\".\n" msgstr "El separador de filas es «%s».\n" -#: command.c:4846 +#: command.c:4938 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Los atributos de tabla son «%s».\n" -#: command.c:4849 +#: command.c:4941 #, c-format msgid "Table attributes unset.\n" msgstr "Los atributos de tabla han sido indefinidos.\n" -#: command.c:4856 +#: command.c:4948 #, c-format msgid "Title is \"%s\".\n" msgstr "El título es «%s».\n" -#: command.c:4858 +#: command.c:4950 #, c-format msgid "Title is unset.\n" msgstr "El título ha sido indefinido.\n" -#: command.c:4865 +#: command.c:4957 #, c-format msgid "Tuples only is on.\n" msgstr "Mostrar sólo filas está activado.\n" -#: command.c:4867 +#: command.c:4959 #, c-format msgid "Tuples only is off.\n" msgstr "Mostrar sólo filas está desactivado.\n" -#: command.c:4873 +#: command.c:4965 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "El estilo Unicode de borde es «%s».\n" -#: command.c:4879 +#: command.c:4971 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "El estilo de línea Unicode de columna es «%s».\n" -#: command.c:4885 +#: command.c:4977 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "El estilo de línea Unicode de encabezado es «%s».\n" -#: command.c:5134 +#: command.c:5226 #, c-format msgid "\\!: failed" msgstr "\\!: falló" -#: command.c:5168 +#: command.c:5264 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch no puede ser usado con una consulta vacía" -#: command.c:5200 +#: command.c:5296 #, c-format msgid "could not set timer: %m" msgstr "no se pudo establecer un temporizador: %m" -#: command.c:5269 +#: command.c:5365 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (cada %gs)\n" -#: command.c:5272 +#: command.c:5368 #, c-format msgid "%s (every %gs)\n" msgstr "%s (cada %gs)\n" -#: command.c:5340 +#: command.c:5432 #, c-format msgid "could not wait for signals: %m" msgstr "no se pudo esperar señales: %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5488 command.c:5495 common.c:632 common.c:639 common.c:1123 #, c-format msgid "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" msgstr "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" -#: command.c:5584 +#: command.c:5674 #, c-format msgid "\"%s.%s\" is not a view" msgstr "«%s.%s» no es una vista" -#: command.c:5600 +#: command.c:5690 #, c-format msgid "could not parse reloptions array" msgstr "no se pudo interpretar el array reloptions" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "no se puede escapar sin una conexión activa" -#: common.c:208 +#: common.c:247 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»" -#: common.c:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "se ha perdido la conexión al servidor" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "La conexión al servidor se ha perdido. Intentando reiniciar: " -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "Falló.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "Con éxito.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "PQresultStatus no esperado: %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "Duración: %.3f ms\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Duración: %.3f ms (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Duración: %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Duración: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, c-format msgid "You are currently not connected to a database." msgstr "No está conectado a una base de datos." -#: common.c:674 +#: common.c:714 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "Notificación asíncrona «%s» con carga «%s» recibida del proceso de servidor con PID %d.\n" -#: common.c:677 +#: common.c:717 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "Notificación asíncrona «%s» recibida del proceso de servidor con PID %d.\n" -#: common.c:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "no se pudo mostrar la tabla de resultados: %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "\\gset no retornó renglón alguno" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "\\gset retornó más de un renglón" -#: common.c:751 +#: common.c:791 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "se ignoró intentó de hacer \\gset a variable con tratamiento especial «%s»" -#: common.c:1063 +#: common.c:1103 #, c-format msgid "" -"***(Single step mode: verify command)*******************************************\n" +"/**(Single step mode: verify command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to cancel)********************\n" +"/**(press return to proceed or enter x and return to cancel)*******************/\n" msgstr "" -"***(Modo paso a paso: verifique la orden)****************************************\n" +"/**(Modo paso a paso: verifique la orden)**************************************/\n" "%s\n" -"***(presione enter para continuar, o x y enter para cancelar)*******************\n" +"/**(presione enter para continuar, o x y enter para cancelar)******************/\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "SENTENCIA: %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "estado de transacción inesperado (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "Columna" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "Tipo" -#: common.c:1385 +#: common.c:1412 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "La orden no tiene resultado, o el resultado no tiene columnas.\n" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "la obtención de resultados en modo trozado falló" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -941,11 +990,6 @@ msgstr "\\copy: error de procesamiento en «%s»" msgid "\\copy: parse error at end of line" msgstr "\\copy: error de procesamiento al final de la línea" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "no se pudo ejecutar la orden «%s»: %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -983,338 +1027,339 @@ msgstr "" "Ingrese los datos a ser copiados seguidos de un fin de línea.\n" "Termine con un backslash y un punto, o una señal EOF." -#: copy.c:682 +#: copy.c:684 msgid "aborted because of read failure" msgstr "se abortó por un error de lectura" -#: copy.c:716 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "tratando de salir del modo copy" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview: la sentencia no produjo un conjunto de resultados" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview: la consulta debe retornar al menos tres columnas" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "\\crosstabview: vertical and horizontal headers must be different columns" msgstr "\\crosstabview: los encabezados verticales y horizontales deben ser columnas distintas" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "\\crosstabview: data column must be specified when query returns more than three columns" msgstr "\\crosstabview: la columna de datos debe ser especificada cuando la consulta retorna más de tres columnas" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview: se superó el número máximo de columnas (%d)" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"" msgstr "\\crosstabview: el resultado de la consulta contiene múltiples valores para la fila «%s», columna «%s»" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview: el número de columna %d está fuera del rango 1..%d" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview: nombre de columna «%s» ambiguo" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: nombre de columna «%s» no encontrado" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "Esquema" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "Nombre" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "Tipo de dato de salida" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "Tipos de datos de argumentos" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "Descripción" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "Listado de funciones de agregación" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "El servidor (versión %s) no soporta métodos de acceso." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "Indice" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "Tabla" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "Manejador" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "Lista de métodos de acceso" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "Dueño" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "Ubicación" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "Opciones" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "Tamaño" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "Listado de tablespaces" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df sólo acepta las opciones [antpwS+]" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df no acepta la opción «%c» en un servidor versión %s" #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "agg" -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "ventana" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "proc" -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "func" -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "disparador" -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "inmutable" -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "estable" -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "volátil" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "Volatilidad" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "restringida" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "segura" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "insegura" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "Paralelismo" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "definidor" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "invocador" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "Seguridad" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "Lenguaje" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "Nombre interno" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "Listado de funciones" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "Elementos" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "Listado de tipos de dato" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "Tipo arg izq" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "Tipo arg der" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "Tipo resultado" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "Función" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "Listado de operadores" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "Codificación" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "Proveedor de locale" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "Collate" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "Ctype" -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "configuración ICU" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "Configuración regional" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "Reglas ICU:" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "Tablespace" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "Listado de base de datos" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "tabla" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "vista" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "vista materializada" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "secuencia" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "tabla foránea" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "tabla particionada" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "Privilegios de acceso a columnas" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "Políticas" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "Privilegios" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "función" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "tipo" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "esquema" @@ -1346,293 +1391,293 @@ msgstr "familia de operadores" msgid "rule" msgstr "regla" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "Descripciones de objetos" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "No se encontró relación llamada «%s»." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "No se encontró ninguna relación." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "No se encontró relación con OID %s." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "Inicio" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "Mínimo" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "Máximo" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "Incremento" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "sí" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "no" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "¿Cicla?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "Cache" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "Asociada a: %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "Secuencia para columna identidad: %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Secuencia unlogged «%s.%s»" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Secuencia «%s.%s»" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Tabla unlogged «%s.%s»" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "Tabla «%s.%s»" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "Vista «%s.%s»" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "Vista materializada unlogged «%s.%s»" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Vista materializada \"%s.%s\"" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Índice unlogged «%s.%s»" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "Índice «%s.%s»" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Índice particionado unlogged «%s.%s»" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Índice particionado «%s.%s»" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "Tabla TOAST «%s.%s»" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Tipo compuesto «%s.%s»" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Tabla foránea «%s.%s»" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Tabla unlogged particionada «%s.%s»" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Tabla particionada «%s.%s»" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "Ordenamiento" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "Nulable" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "Por omisión" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "¿Llave?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "Definición" -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "Opciones de FDW" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "Almacenamiento" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "Compresión" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "Estadísticas" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "Partición de: %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "Sin restricción de partición" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "Restricción de partición: %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "Llave de partición: %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Tabla dueña: «%s.%s»" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "llave primaria, " -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "único" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " nulls no distintos" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr ", " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "de tabla «%s.%s»" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", predicado (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", clustered" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", no válido" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", postergable" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", inicialmente postergada" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", identidad de replicación" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "Índices:" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "Restricciones CHECK:" -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "Restricciones de llave foránea:" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "Referenciada por:" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "Políticas:" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "Políticas (seguridad de registros forzada):" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "Políticas (seguridad de filas activa): (ninguna)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "Políticas (seguridad de filas forzada): (ninguna)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "Políticas (seguridad de filas inactiva):" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "Objetos de estadísticas:" @@ -1652,7 +1697,7 @@ msgstr "Reglas que se activan siempre:" msgid "Rules firing on replica only:" msgstr "Reglas que se activan sólo en las réplicas:" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "Publicaciones:" @@ -1751,7 +1796,7 @@ msgstr ", tablespace «%s»" msgid "List of roles" msgstr "Lista de roles" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "Nombre de rol" @@ -1829,368 +1874,368 @@ msgstr "No se encontró ningún parámetro para el rol «%s»." msgid "Did not find any settings." msgstr "No se encontró ningún parámetro." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "Listado de parámetros" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "Miembro de" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "Otorgador" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "Lista de roles otorgados" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "índice" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "Tabla TOAST" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "índice particionado" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "permanente" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "temporal" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "unlogged" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "Persistencia" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "Método de acceso" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "Listado de relaciones" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "El servidor (versión %s) no soporta particionamiento declarativo de tablas." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "Listado de índices particionados" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "Listado de tablas particionadas" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "Listado de relaciones particionadas" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "Nombre del padre" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "Tamaño de particiones hoja" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "Tamaño total" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "Confiable" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "Lenguaje interno" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "Manejador de llamada" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "Validador" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "Manejador en línea" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "Lista de lenguajes" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "Check" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "Listado de dominios" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "Fuente" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "Destino" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "Por omisión?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "Listado de conversiones" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "Parámetro" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "Valor" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "Contexto" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "Listado de parámetro de configuración" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "Listado de parámetros de configuración no-default" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "El servidor (versión %s) no soporta triggers por eventos." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "Evento" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "activo" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "réplica" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "siempre" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "inactivo" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "Activo" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "Etiquetas" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "Listado de disparadores por eventos" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "El servidor (versión %s) no soporta estadísticas extendidas." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Dependencias" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "Lista de estadísticas extendidas" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Tipo fuente" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Tipo destino" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "en asignación" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Implícito?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "Listado de conversiones de tipo (casts)" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "Proveedor" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "¿Determinístico?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "Listado de ordenamientos" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "Listado de esquemas" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "Listado de analizadores de búsqueda en texto" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "No se encontró ningún analizador de búsqueda en texto llamado «%s»." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "No se encontró ningún analizador de búsqueda en texto." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "Inicio de parse" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "Método" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "Obtener siguiente elemento" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "Fin de parse" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "Obtener encabezado" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "Obtener tipos de elemento" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Analizador de búsqueda en texto «%s.%s»" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "Analizador de búsqueda en texto «%s»" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "Nombre de elemento" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Tipos de elemento para el analizador «%s.%s»" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "Tipos de elemento para el analizador «%s»" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "Plantilla" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "Opciones de inicialización" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "Listado de diccionarios de búsqueda en texto" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "Inicializador" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Fn. análisis léx." -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "Listado de plantillas de búsqueda en texto" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "Listado de configuraciones de búsqueda en texto" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "No se encontró una configuración de búsqueda en texto llamada «%s»." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "No se encontró una configuración de búsqueda en texto." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "Elemento" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "Diccionarios" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Configuración de búsqueda en texto «%s.%s»" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "Configuración de búsqueda en texto «%s»" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "" "\n" @@ -2199,7 +2244,7 @@ msgstr "" "\n" "Analizador: «%s.%s»" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "" "\n" @@ -2208,265 +2253,273 @@ msgstr "" "\n" "Analizador: «%s»" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "Listado de conectores de datos externos" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "Conectores de datos externos" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "Versión" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "Listado de servidores foráneos" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "Servidor" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "Nombre de usuario" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "Listado de mapeos de usuario" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "Listado de tablas foráneas" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "Listado de extensiones instaladas" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "No se encontró extensión llamada «%s»." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "No se encontró ninguna extensión." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "Descripción de objeto" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objetos en extensión «%s»" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "el nombre no es válido (demasiados puntos): %s" -#: describe.c:6219 +#: describe.c:6197 #, c-format msgid "cross-database references are not implemented: %s" msgstr "no están implementadas las referencias entre bases de datos: %s" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "El servidor (versión %s) no soporta publicaciones." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "Todas las tablas" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Inserts" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Updates" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Deletes" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Truncates" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Via root" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "Listado de publicaciones" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "No se encontró publicación llamada «%s»." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "No se encontró ninguna publicación." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "Publicación %s" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "Tablas:" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "Tablas de esquemas:" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "El servidor (versión %s) no soporta suscripciones." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "Publicación" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "Binario" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "De flujo" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "Commit 2-fases" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "Desactivar en error" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "Origen" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "Contraseña requerida" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "¿Ejec. como dueño?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "“Failover”" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "Commit síncrono" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "Conninfo" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "Saltar LSN" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "Listado de suscripciones" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(ninguno)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "AM" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "Tipo de entrada" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "Tipo de almacenamiento" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "Clase de operador" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "Familia de operadores" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "Listado de clases de operador" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Tipos aplicables" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "Listado de familias de operadores" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "Operador" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "Estrategia" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "ordenamiento" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "búsqueda" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "Propósito" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "familia de ops de ordenamiento" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "Lista de operadores de familias de operadores" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "Tipo de dato izquierdo registrado" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "Tipo de dato derecho registrado" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "Número" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "Listado de funciones de la familia de operadores %s" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "Objetos grandes" -#: help.c:75 +#: help.c:63 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2474,11 +2527,11 @@ msgstr "" "psql es el terminal interactivo de PostgreSQL.\n" "\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:502 msgid "Usage:\n" msgstr "Empleo:\n" -#: help.c:77 +#: help.c:65 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2486,30 +2539,27 @@ msgstr "" " psql [OPCIONES]... [BASE-DE-DATOS [USUARIO]]\n" "\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "Opciones generales:\n" -#: help.c:84 +#: help.c:68 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr " -c, --command=ORDEN ejecutar sólo una orden (SQL o interna) y salir\n" -#: help.c:85 -#, c-format -msgid " -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr "" -" -d, --dbname=NOMBRE nombre de base de datos a conectarse\n" -" (por omisión: «%s»)\n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=BASE base de datos a la cual conectarse\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=ARCHIVO ejecutar órdenes desde archivo, luego salir\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list listar bases de datos, luego salir\n" -#: help.c:89 +#: help.c:72 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2519,15 +2569,15 @@ msgstr "" " definir variable de psql NOMBRE a VALOR\n" " (p.ej. -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión, luego salir\n" -#: help.c:93 +#: help.c:76 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc no leer archivo de configuración (~/.psqlrc)\n" -#: help.c:94 +#: help.c:77 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" @@ -2535,19 +2585,19 @@ msgstr "" " -1 («uno»), --single-transaction\n" " ejecuta órdenes en una única transacción\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=opcs] mostrar esta ayuda, luego salir\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands listar órdenes backslash, luego salir\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables listar variables especiales, luego salir\n" -#: help.c:100 +#: help.c:83 msgid "" "\n" "Input and output options:\n" @@ -2555,47 +2605,47 @@ msgstr "" "\n" "Opciones de entrada y salida:\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all mostrar las órdenes del script\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors mostrar órdenes fallidas\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries mostrar órdenes enviadas al servidor\n" -#: help.c:104 +#: help.c:87 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden mostrar consultas generadas por órdenes internas\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=ARCH envía el registro de la sesión a un archivo\n" -#: help.c:106 +#: help.c:89 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr " -n, --no-readline deshabilitar edición de línea de órdenes (readline)\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=ARCHIVO enviar resultados de consultas a archivo (u |orden)\n" -#: help.c:108 +#: help.c:91 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr " -q, --quiet modo silencioso (sin mensajes, sólo resultados)\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step modo paso a paso (confirmar cada consulta)\n" -#: help.c:110 +#: help.c:93 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr " -S, --single-line modo de líneas (fin de línea termina la orden SQL)\n" -#: help.c:112 +#: help.c:95 msgid "" "\n" "Output format options:\n" @@ -2603,15 +2653,15 @@ msgstr "" "\n" "Opciones de formato de salida:\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align modo de salida desalineado\n" -#: help.c:114 +#: help.c:97 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv modo de salida de tabla CSV (valores separados por comas)\n" -#: help.c:115 +#: help.c:98 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2620,15 +2670,15 @@ msgstr "" " -F, --field-separator=CADENA separador de campos para salida desalineada\n" " (por omisión: «%s»)\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html modo de salida en tablas HTML\n" -#: help.c:119 +#: help.c:102 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr " -P, --pset=VAR[=ARG] definir opción de impresión VAR en ARG (ver orden \\pset)\n" -#: help.c:120 +#: help.c:103 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" @@ -2636,21 +2686,21 @@ msgstr "" " -R, --record-separator=CADENA separador de registros para salida desalineada\n" " (por omisión: salto de línea)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only sólo muestra registros\n" -#: help.c:123 +#: help.c:106 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr "" " -T, --table-attr=TEXTO\n" " definir atributos de marcas de tabla HTML (ancho, borde)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded activar modo expandido de salida de tablas\n" -#: help.c:125 +#: help.c:108 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" @@ -2658,7 +2708,7 @@ msgstr "" " -z, --field-separator-zero\n" " definir separador de campos para salida desalineada al byte cero\n" -#: help.c:127 +#: help.c:110 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" @@ -2666,7 +2716,7 @@ msgstr "" " -0, --record-separator-zero\n" " definir separador de filas para salida desalineada al byte cero\n" -#: help.c:130 +#: help.c:113 msgid "" "\n" "Connection options:\n" @@ -2674,40 +2724,31 @@ msgstr "" "\n" "Opciones de conexión:\n" -#: help.c:133 -#, c-format -msgid " -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=NOMBRE nombre del anfitrión o directorio de socket\n" -" (por omisión: «%s»)\n" - -#: help.c:134 -msgid "local socket" -msgstr "socket local" +" -h, --host=ANFITRIÓN anfitrión de la base de datos o\n" +" directorio del enchufe (socket)\n" -#: help.c:137 -#, c-format -msgid " -p, --port=PORT database server port (default: \"%s\")\n" -msgstr " -p, --port=PUERTO puerto del servidor (por omisión: «%s»)\n" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=PUERTO puerto del servidor\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr "" -" -U, --username=NOMBRE\n" -" nombre de usuario (por omisión: «%s»)\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=USUARIO nombre usuario de la base de datos\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir contraseña\n" -#: help.c:143 +#: help.c:118 msgid " -W, --password force password prompt (should happen automatically)\n" msgstr "" " -W, --password forzar petición de contraseña\n" " (debería ser automático)\n" -#: help.c:145 +#: help.c:120 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" @@ -2721,41 +2762,41 @@ msgstr "" "en la documentación de PostgreSQL.\n" "\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Reporte de errores a <%s>.\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "General\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr "" " \\bind [PARAM]...\n" " definir parámetros de consulta\n" -#: help.c:193 +#: help.c:168 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright mostrar términos de uso y distribución de PostgreSQL\n" -#: help.c:194 +#: help.c:169 msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr "" " \\crosstabview [COLUMNAS]\n" " ejecutar la consulta y desplegar en «crosstab»\n" -#: help.c:195 +#: help.c:170 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose mostrar error más reciente en máxima verbosidad\n" -#: help.c:196 +#: help.c:171 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2764,242 +2805,248 @@ msgstr "" " ejecuta la consulta (y envía el resultado a un fichero o |pipe);\n" " \\g sin argumentos es equivalente a un punto y coma\n" -#: help.c:198 +#: help.c:173 msgid " \\gdesc describe result of query, without executing it\n" msgstr " \\gdesc describir resultado de la consulta, sin ejecutarla\n" -#: help.c:199 +#: help.c:174 msgid " \\gexec execute query, then execute each value in its result\n" msgstr " \\gexec ejecutar la consulta, luego ejecuta cada valor del resultado\n" -#: help.c:200 +#: help.c:175 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr "" " \\gset [PREFIJO] ejecutar la consulta y almacenar el resultado en variables\n" " de psql\n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr "" " \\gx [(OPTIONS)] [FILE]\n" " como \\g, pero fuerza el modo de salida expandido\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q salir de psql\n" -#: help.c:203 -msgid " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" -msgstr " \\watch [[i=]SEG] [c=N] ejecute consulta cada SEG segundos, hasta N veces\n" +#: help.c:178 +msgid "" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" +msgstr "" +" \\watch [[i=]SEG] [c=N] [m=MIN]\n" +" ejecutar consulta cada SEG segundos, hasta N veces,\n" +" deteniéndose si menos de MIN registros son devueltos\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "Ayuda\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] desplegar ayuda sobre las órdenes backslash\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options desplegar ayuda sobre opciones de línea de órdenes\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables desplegar ayuda sobre variables especiales\n" -#: help.c:211 +#: help.c:188 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr "" " \\h [NOMBRE] mostrar ayuda de sintaxis de órdenes SQL;\n" " use «*» para todas las órdenes\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "Búfer de consulta\n" -#: help.c:215 +#: help.c:192 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr "" " \\e [ARCHIVO] [LÍNEA]\n" " editar el búfer de consulta (o archivo) con editor externo\n" -#: help.c:216 +#: help.c:193 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr "" " \\ef [NOMBRE-FUNCIÓN [LÍNEA]]\n" " editar una función con editor externo\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr "" " \\ev [NOMBRE-VISTA [LÍNEA]]\n" " editar definición de una vista con editor externo\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p mostrar el contenido del búfer de consulta\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r reiniciar (limpiar) el búfer de consulta\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [ARCHIVO] mostrar historial de órdenes o guardarlo en archivo\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr " \\w ARCHIVO escribir búfer de consulta a archivo\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "" "Entrada/Salida\n" " (con -n, donde existe, se omite el salto de línea final)\n" -#: help.c:227 +#: help.c:204 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr " \\copy ... ejecutar orden SQL COPY con flujo de datos al cliente\n" -#: help.c:228 +#: help.c:205 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [STRING] escribe la cadena en la salida estándar\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i ARCHIVO ejecutar órdenes desde archivo\n" -#: help.c:230 +#: help.c:207 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr " \\ir ARCHIVO como \\i, pero relativo a la ubicación del script actual\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [ARCHIVO] enviar resultados de consultas a archivo u |orden\n" -#: help.c:232 +#: help.c:209 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr " \\qecho [-n] [STRING] escribe la cadena hacia flujo de salida \\o\n" -#: help.c:233 +#: help.c:210 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [STRING] escribe la cadena a la salida de error estándar\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "Condicional\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPRESIÓN inicia bloque condicional\n" -#: help.c:238 +#: help.c:215 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR alternativa dentro del bloque condicional actual\n" -#: help.c:239 +#: help.c:216 msgid " \\else final alternative within current conditional block\n" msgstr " \\else alternativa final dentro del bloque condicional actual\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif termina el bloque condicional\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "Informativo\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (opciones: S = desplegar objetos de sistema, + = agregar más detalle)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] listar tablas, vistas y secuencias\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr " \\d[S+] NOMBRE describir tabla, índice, secuencia o vista\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [PATRÓN] listar funciones de agregación\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [PATRÓN] listar métodos de acceso\n" -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] listar las clases de operadores\n" -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] listar las familias de operadores\n" -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] listar los operadores de la familia de operadores\n" -#: help.c:252 +#: help.c:229 msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] enumera las funciones de la familia de operadores\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [PATRÓN] listar tablespaces\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [PATRÓN] listar conversiones\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [PATRÓN] listar parámetros de configuración\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [PATRÓN] listar conversiones de tipo (casts)\n" -#: help.c:257 +#: help.c:234 msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr " \\dd[S] [PATRÓN] listar comentarios de objetos que no aparecen en otra parte\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [PATRÓN] listar dominios\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [PATRÓN] listar privilegios por omisión\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATRÓN] listar tablas foráneas\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [PATRÓN] listar servidores foráneos\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\det[+] [PATRÓN] listar tablas foráneas\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [PATRÓN] listar mapeos de usuario\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [PATRÓN] listar conectores de datos externos\n" -#: help.c:265 +#: help.c:242 msgid "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] functions\n" @@ -3007,47 +3054,47 @@ msgstr "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " listar funciones [sólo ag./normal/proc./trigger/ventana]\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [PATRÓN] listar configuraciones de búsqueda en texto\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [PATRÓN] listar diccionarios de búsqueda en texto\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [PATRÓN] listar analizadores (parsers) de búsq. en texto\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [PATRÓN] listar plantillas de búsqueda en texto\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [PATRÓN] listar roles\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [PATRÓN] listar índices\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] listar objetos grandes, lo mismo que \\lo_list\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [PATRÓN] listar lenguajes procedurales\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [PATRÓN] listar vistas materializadas\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [PATRÓN] listar esquemas\n" -#: help.c:277 +#: help.c:254 msgid "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" @@ -3055,93 +3102,93 @@ msgstr "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " listar operadores\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S] [PATRÓN] listar ordenamientos (collations)\n" -#: help.c:280 +#: help.c:257 msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr " \\dp[S] [PATRÓN] listar privilegios de acceso a tablas, vistas y secuencias\n" -#: help.c:281 +#: help.c:258 msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr " \\dP[tin+] [PATRÓN] listar relaciones particionadas (sólo tablas/índices) [n=anidadas]\n" -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr "" " \\drds [PATRÓN_ROL [PATRÓN_BASE]]\n" " listar parámetros de rol por base de datos\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\drg[S] [PATRÓN] listar roles\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [PATRÓN] listar publicaciones de replicación\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [PATRÓN] listar suscripciones de replicación\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [PATRÓN] listar secuencias\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [PATRÓN] listar tablas\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [PATRÓN] listar tipos de dato\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [PATRÓN] listar roles\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [PATRÓN] listar vistas\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [PATRÓN] listar extensiones\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [PATRÓN] listar estadísticas extendidas\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [PATRÓN] listar disparadores por eventos\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [PATRÓN] listar bases de datos\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] FUNCIÓN mostrar la definición de una función\n" -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] VISTA mostrar la definición de una vista\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [PATRÓN] lo mismo que \\dp\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "Objetos Grandes\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export LOBOID ARCHIVO escribir objeto grande a archivo\n" -#: help.c:302 +#: help.c:279 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3149,38 +3196,38 @@ msgstr "" " \\lo_import ARCHIVO [COMENTARIO]\n" " leer objeto grande desde archivo\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] listar objetos grandes\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID borrar un objeto grande\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "Formato\n" -#: help.c:309 +#: help.c:286 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr " \\a cambiar entre modo de salida alineado y sin alinear\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [CADENA] definir título de tabla, o indefinir si es vacío\n" -#: help.c:311 +#: help.c:288 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr "" " \\f [CADENA] mostrar o definir separador de campos para\n" " modo de salida sin alinear\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H cambiar modo de salida HTML (actualmente %s)\n" -#: help.c:314 +#: help.c:291 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3188,38 +3235,38 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [NOMBRE [VALOR]] define opción de tabla de salida\n" " (border|columns|csv_fieldsep|expanded|fieldsep|fieldsep_zero|\n" " footer|format|linestyle|null|numericlocale|pager|\n" " pager_min_lines|recordsep|recordsep_zero|tableattr|title|\n" " tuples_only|unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] mostrar sólo filas (actualmente %s)\n" -#: help.c:323 +#: help.c:300 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr " \\T [CADENA] definir atributos HTML de
, o indefinir si es vacío\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] cambiar modo expandido (actualmente %s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "auto" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "Conexiones\n" -#: help.c:330 +#: help.c:307 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3228,7 +3275,7 @@ msgstr "" " \\c[onnect] [BASE-DE-DATOS|- USUARIO|- ANFITRIÓN|- PUERTO|- | conninfo]\n" " conectar a una nueva base de datos (actual: «%s»)\n" -#: help.c:334 +#: help.c:311 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3236,72 +3283,72 @@ msgstr "" " \\c[onnect] [BASE-DE-DATOS|- USUARIO|- ANFITRIÓN|- PUERTO|- | conninfo]\n" " conectar a una nueva base de datos (no hay conexión actual)\n" -#: help.c:336 +#: help.c:313 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo despliega la información sobre la conexión actual\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr "" " \\encoding [CODIFICACIÓN]\n" " mostrar o definir codificación del cliente\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr "" " \\password [USUARIO]\n" " cambiar la contraseña para un usuario en forma segura\n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "Sistema Operativo\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [DIR] cambiar el directorio de trabajo actual\n" -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVVAR obtener variable de ambiente\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr "" " \\setenv NOMBRE [VALOR]\n" " definir o indefinir variable de ambiente\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr "" " \\timing [on|off] mostrar tiempo de ejecución de órdenes\n" " (actualmente %s)\n" -#: help.c:347 +#: help.c:324 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr "" " \\! [ORDEN] ejecutar orden en intérprete de órdenes (shell),\n" " o iniciar intérprete interactivo\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "Variables\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [TEXTO] NOMBRE preguntar al usuario el valor de la variable\n" -#: help.c:352 +#: help.c:329 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr "" " \\set [NOMBRE [VALOR]] definir variables internas,\n" " listar todas si no se dan parámetros\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NOMBRE indefinir (eliminar) variable interna\n" -#: help.c:392 +#: help.c:369 msgid "" "List of specially treated variables\n" "\n" @@ -3309,11 +3356,11 @@ msgstr "" "Lista de variables con tratamiento especial\n" "\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "variables psql:\n" -#: help.c:396 +#: help.c:373 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3322,7 +3369,7 @@ msgstr "" " psql --set=NOMBRE=VALOR\n" " o \\set NOMBRE VALOR dentro de psql\n" -#: help.c:398 +#: help.c:375 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3330,7 +3377,7 @@ msgstr "" " AUTOCOMMIT si está definida, órdenes SQL exitosas se comprometen\n" " automáticamente\n" -#: help.c:400 +#: help.c:377 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3339,13 +3386,13 @@ msgstr "" " COMP_KEYWORD_CASE determina si usar mayúsculas al completar palabras SQL\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:403 +#: help.c:380 msgid "" " DBNAME\n" " the currently connected database name\n" msgstr " DBNAME la base de datos actualmente conectada\n" -#: help.c:405 +#: help.c:382 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3354,7 +3401,7 @@ msgstr "" " ECHO controla qué entrada se escribe a la salida estándar\n" " [all, errors, none, queries]\n" -#: help.c:408 +#: help.c:385 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3363,13 +3410,13 @@ msgstr "" " ECHO_HIDDEN muestra consultas internas usadas por órdenes backslash\n" " con «noexec» sólo las muestra sin ejecutarlas\n" -#: help.c:411 +#: help.c:388 msgid "" " ENCODING\n" " current client character set encoding\n" msgstr " ENCODING codificación actual del cliente\n" -#: help.c:413 +#: help.c:390 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3377,7 +3424,7 @@ msgstr "" " ERROR\n" " «true» si la última consulta falló; si no, «false»\n" -#: help.c:415 +#: help.c:392 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" @@ -3385,7 +3432,7 @@ msgstr "" " FETCH_COUNT número de filas del resultado que extraer y mostrar cada vez\n" " (por omisión: 0=sin límite)\n" -#: help.c:417 +#: help.c:394 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3393,7 +3440,7 @@ msgstr "" " HIDE_TABLEAM\n" " ocultar métodos de acceso de tabla\n" -#: help.c:419 +#: help.c:396 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3401,7 +3448,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " ocultar métodos de compresión\n" -#: help.c:421 +#: help.c:398 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3409,25 +3456,25 @@ msgstr "" " HISTCONTROL controla la lista de historia de órdenes\n" " [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:423 +#: help.c:400 msgid "" " HISTFILE\n" " file name used to store the command history\n" msgstr " HISTFILE nombre de archivo para almacenar historia de órdenes\n" -#: help.c:425 +#: help.c:402 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" msgstr " HISTSIZE número de órdenes a guardar en la historia de órdenes\n" -#: help.c:427 +#: help.c:404 msgid "" " HOST\n" " the currently connected database server host\n" msgstr " HOST el servidor actualmente conectado\n" -#: help.c:429 +#: help.c:406 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3435,13 +3482,13 @@ msgstr "" " IGNOREEOF si no está definida, enviar un EOF a sesión interactiva\n" " termina la aplicación\n" -#: help.c:431 +#: help.c:408 msgid "" " LASTOID\n" " value of the last affected OID\n" msgstr " LASTOID el valor del último OID afectado\n" -#: help.c:433 +#: help.c:410 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3452,7 +3499,7 @@ msgstr "" " mensaje y SQLSTATE del último error, o cadena vacía y\n" " «00000» si no hubo\n" -#: help.c:436 +#: help.c:413 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3460,25 +3507,25 @@ msgstr "" " ON_ERROR_ROLLBACK si está definido, un error no aborta la transacción\n" " (usa «savepoints» implícitos)\n" -#: help.c:438 +#: help.c:415 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" msgstr " ON_ERROR_STOP detiene ejecución por lotes al ocurrir un error\n" -#: help.c:440 +#: help.c:417 msgid "" " PORT\n" " server port of the current connection\n" msgstr " PORT puerto del servidor de la conexión actual\n" -#: help.c:442 +#: help.c:419 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" msgstr " PROMPT1 especifica el prompt estándar de psql\n" -#: help.c:444 +#: help.c:421 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" @@ -3486,19 +3533,19 @@ msgstr "" " PROMPT2 especifica el prompt usado cuando una sentencia continúa\n" " de una línea anterior\n" -#: help.c:446 +#: help.c:423 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" msgstr " PROMPT3 especifica el prompt usado durante COPY ... FROM STDIN\n" -#: help.c:448 +#: help.c:425 msgid "" " QUIET\n" " run quietly (same as -q option)\n" msgstr " QUIET ejecuta silenciosamente (igual que -q)\n" -#: help.c:450 +#: help.c:427 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3506,7 +3553,7 @@ msgstr "" " ROW_COUNT número de tuplas retornadas o afectadas por última\n" " consulta, o 0\n" -#: help.c:452 +#: help.c:429 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3516,7 +3563,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " versión del servidor (cadena corta o numérica)\n" -#: help.c:455 +#: help.c:432 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3524,7 +3571,7 @@ msgstr "" " SHELL_ERROR\n" " «true» si la última orden de shell falló, «false» si tuvo éxito\n" -#: help.c:457 +#: help.c:434 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3532,7 +3579,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " estado de salida de la última orden de shell\n" -#: help.c:459 +#: help.c:436 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3541,7 +3588,7 @@ msgstr "" " mostrar todos los resultados de una consulta combinada (\\;) en lugar\n" " de sólo mostrar el último\n" -#: help.c:461 +#: help.c:438 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3549,31 +3596,31 @@ msgstr "" " SHOW_CONTEXT controla el despliegue de campos de contexto de mensaje\n" " [never, errors, always]\n" -#: help.c:463 +#: help.c:440 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" msgstr " SINGLELINE fin de línea termina modo de órdenes SQL (igual que -S)\n" -#: help.c:465 +#: help.c:442 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" msgstr " SINGLESTEP modo paso a paso (igual que -s)\n" -#: help.c:467 +#: help.c:444 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" msgstr " SQLSTATE SQLSTATE de la última consulta, o «00000» si no hubo error\n" -#: help.c:469 +#: help.c:446 msgid "" " USER\n" " the currently connected database user\n" msgstr " USER el usuario actualmente conectado\n" -#: help.c:471 +#: help.c:448 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3581,7 +3628,7 @@ msgstr "" " VERBOSITY controla la verbosidad de errores [default, verbose,\n" " terse, sqlstate]\n" -#: help.c:473 +#: help.c:450 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3593,7 +3640,7 @@ msgstr "" " VERSION_NUM\n" " versión de psql (cadena verbosa, corta o numérica)\n" -#: help.c:478 +#: help.c:455 msgid "" "\n" "Display settings:\n" @@ -3601,7 +3648,7 @@ msgstr "" "\n" "Parámetros de despliegue:\n" -#: help.c:480 +#: help.c:457 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3611,25 +3658,25 @@ msgstr "" " o \\pset NOMBRE [VALOR] dentro de psql\n" "\n" -#: help.c:482 +#: help.c:459 msgid "" " border\n" " border style (number)\n" msgstr " border estilo de borde (número)\n" -#: help.c:484 +#: help.c:461 msgid "" " columns\n" " target width for the wrapped format\n" msgstr " columns define el ancho para formato «wrapped»\n" -#: help.c:486 +#: help.c:463 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" msgstr " expanded (o x) salida expandida [on, off, auto]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid "" " fieldsep\n" @@ -3638,37 +3685,37 @@ msgstr "" " fieldsep separador de campos para formato «unaligned»\n" " (por omisión: «%s»)\n" -#: help.c:491 +#: help.c:468 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" msgstr " fieldsep_zero separador de campos en «unaligned» es byte cero\n" -#: help.c:493 +#: help.c:470 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" msgstr " footer activa o desactiva el pie de tabla [on, off]\n" -#: help.c:495 +#: help.c:472 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" msgstr " format define el formato de salida [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" msgstr " linestyle define el estilo de dibujo de líneas [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid "" " null\n" " set the string to be printed in place of a null value\n" msgstr " null define la cadena a imprimirse para valores null\n" -#: help.c:501 +#: help.c:478 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3676,26 +3723,26 @@ msgstr "" " numericlocale activa despliegue de carácter específico del lenguaje para\n" " separar grupos de dígitos\n" -#: help.c:503 +#: help.c:480 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" msgstr " pager controla cuándo se usará un paginador externo [yes, no, always]\n" -#: help.c:505 +#: help.c:482 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" msgstr " recordsep separador de registros (líneas) para formato «unaligned»\n" -#: help.c:507 +#: help.c:484 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" msgstr " recordsep_zero separador de registros en «unaligned» es byte cero\n" # XXX WTF does this mean? -#: help.c:509 +#: help.c:486 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3705,19 +3752,19 @@ msgstr "" " o ancho proporcional de columnas alineadas a la izquierda\n" " en formato «latex-longtable»\n" -#: help.c:512 +#: help.c:489 msgid "" " title\n" " set the table title for subsequently printed tables\n" msgstr " title define el título de tablas\n" -#: help.c:514 +#: help.c:491 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" msgstr " tuples_only si está definido, sólo los datos de la tabla se muestran\n" -#: help.c:516 +#: help.c:493 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3729,7 +3776,17 @@ msgstr "" " unicode_header_linestyle\n" " define el estilo de líneas Unicode [single, double]\n" -#: help.c:521 +#: help.c:497 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" define el ancho máximo del encabezado para el formato expandido\n" +" [full, column, page, valor entero]\n" + +#: help.c:501 msgid "" "\n" "Environment variables:\n" @@ -3737,7 +3794,7 @@ msgstr "" "\n" "Variables de ambiente:\n" -#: help.c:525 +#: help.c:505 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3746,7 +3803,7 @@ msgstr "" " NOMBRE=VALOR [NOMBRE=VALOR] psql ...\n" " o \\setenv NOMBRE [VALOR] dentro de psql\n" -#: help.c:527 +#: help.c:507 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3757,55 +3814,55 @@ msgstr "" " psql ...\n" " o \\setenv NOMBRE [VALOR] dentro de psql\n" -#: help.c:530 +#: help.c:510 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" msgstr " COLUMNS número de columnas para formato «wrapped»\n" -#: help.c:532 +#: help.c:512 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" msgstr " PGAPPNAME igual que el parámetro de conexión application_name\n" -#: help.c:534 +#: help.c:514 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" msgstr " PGDATABASE igual que el parámetro de conexión dbname\n" -#: help.c:536 +#: help.c:516 msgid "" " PGHOST\n" " same as the host connection parameter\n" msgstr " PGHOST igual que el parámetro de conexión host\n" -#: help.c:538 +#: help.c:518 msgid "" " PGPASSFILE\n" " password file name\n" msgstr " PGPASSFILE nombre de archivo de contraseñas\n" -#: help.c:540 +#: help.c:520 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" msgstr " PGPASSWORD contraseña de la conexión (no recomendado)\n" -#: help.c:542 +#: help.c:522 msgid "" " PGPORT\n" " same as the port connection parameter\n" msgstr " PGPORT igual que el parámetro de conexión port\n" -#: help.c:544 +#: help.c:524 msgid "" " PGUSER\n" " same as the user connection parameter\n" msgstr " PGUSER igual que el parámetro de conexión user\n" -#: help.c:546 +#: help.c:526 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3813,7 +3870,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor usado por órdenes \\e, \\ef, y \\ev\n" -#: help.c:548 +#: help.c:528 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3821,47 +3878,47 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARGS\n" " cómo especificar número de línea al invocar al editor\n" -#: help.c:550 +#: help.c:530 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" msgstr " PSQL_HISTORY ubicación alternativa del archivo de historia de órdenes\n" -#: help.c:552 +#: help.c:532 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" msgstr " PSQL_PAGER, PAGER nombre de programa paginador externo\n" -#: help.c:555 +#: help.c:535 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" msgstr " PSQL_WATCH_PAGER paginador externo para usar con \\watch\n" -#: help.c:558 +#: help.c:538 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" msgstr " PSQLRC ubicación alternativa para el archivo .psqlrc del usuario\n" -#: help.c:560 +#: help.c:540 msgid "" " SHELL\n" " shell used by the \\! command\n" msgstr " SHELL intérprete usado por la orden \\!\n" -#: help.c:562 +#: help.c:542 msgid "" " TMPDIR\n" " directory for temporary files\n" msgstr " TMPDIR directorio para archivos temporales\n" -#: help.c:622 +#: help.c:602 msgid "Available help:\n" msgstr "Ayuda disponible:\n" -#: help.c:717 +#: help.c:697 #, c-format msgid "" "Command: %s\n" @@ -3880,7 +3937,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:740 +#: help.c:720 #, c-format msgid "" "No help available for \"%s\".\n" @@ -3889,17 +3946,17 @@ msgstr "" "No hay ayuda disponible para «%s».\n" "Pruebe \\h sin argumentos para mostrar los elementos de ayuda disponibles.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "no se pudo leer el archivo de entrada: %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "no se pudo guardar historial a archivo «%s»: %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "el historial de órdenes no está soportado en esta instalación" @@ -3986,12 +4043,12 @@ msgstr "consulta ignorada; use \\endif o Ctrl-C para salir del bloque \\if actua msgid "reached EOF without finding closing \\endif(s)" msgstr "se alcanzó EOF sin encontrar el/los \\endif de cierre" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "una cadena de caracteres entre comillas está inconclusa" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s: memoria agotada" @@ -3999,2429 +4056,2449 @@ msgstr "%s: memoria agotada" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1308 sql_help.c:1310 -#: sql_help.c:1313 sql_help.c:1316 sql_help.c:1318 sql_help.c:1320 -#: sql_help.c:1323 sql_help.c:1326 sql_help.c:1443 sql_help.c:1445 -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:1471 sql_help.c:1474 -#: sql_help.c:1477 sql_help.c:1480 sql_help.c:1484 sql_help.c:1486 -#: sql_help.c:1488 sql_help.c:1490 sql_help.c:1504 sql_help.c:1507 -#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1521 sql_help.c:1523 -#: sql_help.c:1533 sql_help.c:1535 sql_help.c:1545 sql_help.c:1548 -#: sql_help.c:1571 sql_help.c:1573 sql_help.c:1575 sql_help.c:1577 -#: sql_help.c:1580 sql_help.c:1582 sql_help.c:1585 sql_help.c:1588 -#: sql_help.c:1639 sql_help.c:1682 sql_help.c:1685 sql_help.c:1687 -#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1694 sql_help.c:1696 -#: sql_help.c:1699 sql_help.c:1751 sql_help.c:1767 sql_help.c:2000 -#: sql_help.c:2069 sql_help.c:2088 sql_help.c:2101 sql_help.c:2159 -#: sql_help.c:2167 sql_help.c:2177 sql_help.c:2204 sql_help.c:2236 -#: sql_help.c:2254 sql_help.c:2282 sql_help.c:2393 sql_help.c:2439 -#: sql_help.c:2464 sql_help.c:2487 sql_help.c:2491 sql_help.c:2525 -#: sql_help.c:2545 sql_help.c:2567 sql_help.c:2581 sql_help.c:2602 -#: sql_help.c:2631 sql_help.c:2666 sql_help.c:2691 sql_help.c:2738 -#: sql_help.c:3033 sql_help.c:3046 sql_help.c:3063 sql_help.c:3079 -#: sql_help.c:3119 sql_help.c:3173 sql_help.c:3177 sql_help.c:3179 -#: sql_help.c:3186 sql_help.c:3205 sql_help.c:3232 sql_help.c:3267 -#: sql_help.c:3279 sql_help.c:3288 sql_help.c:3332 sql_help.c:3346 -#: sql_help.c:3374 sql_help.c:3382 sql_help.c:3394 sql_help.c:3404 -#: sql_help.c:3412 sql_help.c:3420 sql_help.c:3428 sql_help.c:3436 -#: sql_help.c:3445 sql_help.c:3456 sql_help.c:3464 sql_help.c:3472 -#: sql_help.c:3480 sql_help.c:3488 sql_help.c:3498 sql_help.c:3507 -#: sql_help.c:3516 sql_help.c:3524 sql_help.c:3534 sql_help.c:3545 -#: sql_help.c:3553 sql_help.c:3562 sql_help.c:3573 sql_help.c:3582 -#: sql_help.c:3590 sql_help.c:3598 sql_help.c:3606 sql_help.c:3614 -#: sql_help.c:3622 sql_help.c:3630 sql_help.c:3638 sql_help.c:3646 -#: sql_help.c:3654 sql_help.c:3662 sql_help.c:3679 sql_help.c:3688 -#: sql_help.c:3696 sql_help.c:3713 sql_help.c:3728 sql_help.c:4040 -#: sql_help.c:4150 sql_help.c:4179 sql_help.c:4195 sql_help.c:4197 -#: sql_help.c:4700 sql_help.c:4748 sql_help.c:4906 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:245 +#: sql_help.c:247 sql_help.c:248 sql_help.c:250 sql_help.c:252 sql_help.c:255 +#: sql_help.c:257 sql_help.c:259 sql_help.c:261 sql_help.c:276 sql_help.c:277 +#: sql_help.c:278 sql_help.c:280 sql_help.c:329 sql_help.c:331 sql_help.c:333 +#: sql_help.c:335 sql_help.c:404 sql_help.c:409 sql_help.c:411 sql_help.c:453 +#: sql_help.c:455 sql_help.c:458 sql_help.c:460 sql_help.c:529 sql_help.c:534 +#: sql_help.c:539 sql_help.c:544 sql_help.c:549 sql_help.c:603 sql_help.c:605 +#: sql_help.c:607 sql_help.c:609 sql_help.c:611 sql_help.c:614 sql_help.c:616 +#: sql_help.c:619 sql_help.c:630 sql_help.c:632 sql_help.c:676 sql_help.c:678 +#: sql_help.c:680 sql_help.c:683 sql_help.c:685 sql_help.c:687 sql_help.c:728 +#: sql_help.c:732 sql_help.c:736 sql_help.c:757 sql_help.c:760 sql_help.c:763 +#: sql_help.c:792 sql_help.c:804 sql_help.c:812 sql_help.c:815 sql_help.c:818 +#: sql_help.c:833 sql_help.c:836 sql_help.c:865 sql_help.c:870 sql_help.c:875 +#: sql_help.c:880 sql_help.c:885 sql_help.c:912 sql_help.c:914 sql_help.c:916 +#: sql_help.c:918 sql_help.c:921 sql_help.c:923 sql_help.c:970 sql_help.c:1015 +#: sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 sql_help.c:1035 +#: sql_help.c:1054 sql_help.c:1065 sql_help.c:1067 sql_help.c:1087 +#: sql_help.c:1097 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102 +#: sql_help.c:1114 sql_help.c:1118 sql_help.c:1120 sql_help.c:1132 +#: sql_help.c:1134 sql_help.c:1136 sql_help.c:1138 sql_help.c:1157 +#: sql_help.c:1159 sql_help.c:1163 sql_help.c:1167 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1175 sql_help.c:1176 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1184 sql_help.c:1324 sql_help.c:1326 +#: sql_help.c:1329 sql_help.c:1332 sql_help.c:1334 sql_help.c:1336 +#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1464 sql_help.c:1466 +#: sql_help.c:1468 sql_help.c:1471 sql_help.c:1492 sql_help.c:1495 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1505 sql_help.c:1507 +#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1525 sql_help.c:1528 +#: sql_help.c:1530 sql_help.c:1532 sql_help.c:1542 sql_help.c:1544 +#: sql_help.c:1554 sql_help.c:1556 sql_help.c:1566 sql_help.c:1569 +#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1596 sql_help.c:1598 +#: sql_help.c:1601 sql_help.c:1603 sql_help.c:1606 sql_help.c:1609 +#: sql_help.c:1660 sql_help.c:1703 sql_help.c:1706 sql_help.c:1708 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:1715 sql_help.c:1717 +#: sql_help.c:1720 sql_help.c:1770 sql_help.c:1786 sql_help.c:2019 +#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2120 sql_help.c:2178 +#: sql_help.c:2186 sql_help.c:2196 sql_help.c:2224 sql_help.c:2257 +#: sql_help.c:2275 sql_help.c:2303 sql_help.c:2414 sql_help.c:2460 +#: sql_help.c:2485 sql_help.c:2508 sql_help.c:2512 sql_help.c:2546 +#: sql_help.c:2566 sql_help.c:2588 sql_help.c:2602 sql_help.c:2623 +#: sql_help.c:2652 sql_help.c:2685 sql_help.c:2708 sql_help.c:2755 +#: sql_help.c:3053 sql_help.c:3066 sql_help.c:3083 sql_help.c:3099 +#: sql_help.c:3139 sql_help.c:3193 sql_help.c:3197 sql_help.c:3199 +#: sql_help.c:3206 sql_help.c:3225 sql_help.c:3252 sql_help.c:3287 +#: sql_help.c:3299 sql_help.c:3308 sql_help.c:3352 sql_help.c:3366 +#: sql_help.c:3394 sql_help.c:3402 sql_help.c:3414 sql_help.c:3424 +#: sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 sql_help.c:3456 +#: sql_help.c:3465 sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 +#: sql_help.c:3500 sql_help.c:3508 sql_help.c:3518 sql_help.c:3527 +#: sql_help.c:3536 sql_help.c:3544 sql_help.c:3554 sql_help.c:3565 +#: sql_help.c:3573 sql_help.c:3582 sql_help.c:3593 sql_help.c:3602 +#: sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 sql_help.c:3634 +#: sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 sql_help.c:3666 +#: sql_help.c:3674 sql_help.c:3682 sql_help.c:3699 sql_help.c:3708 +#: sql_help.c:3716 sql_help.c:3733 sql_help.c:3748 sql_help.c:4061 +#: sql_help.c:4182 sql_help.c:4211 sql_help.c:4227 sql_help.c:4229 +#: sql_help.c:4733 sql_help.c:4781 sql_help.c:4940 msgid "name" msgstr "nombre" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1848 -#: sql_help.c:3347 sql_help.c:4468 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1863 +#: sql_help.c:3367 sql_help.c:4500 msgid "aggregate_signature" msgstr "signatura_func_agregación" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1317 sql_help.c:1444 -#: sql_help.c:1487 sql_help.c:1508 sql_help.c:1522 sql_help.c:1534 -#: sql_help.c:1547 sql_help.c:1574 sql_help.c:1640 sql_help.c:1693 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 +#: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 +#: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:759 sql_help.c:814 +#: sql_help.c:835 sql_help.c:874 sql_help.c:924 sql_help.c:971 sql_help.c:1024 +#: sql_help.c:1056 sql_help.c:1066 sql_help.c:1101 sql_help.c:1121 +#: sql_help.c:1135 sql_help.c:1185 sql_help.c:1333 sql_help.c:1465 +#: sql_help.c:1508 sql_help.c:1529 sql_help.c:1543 sql_help.c:1555 +#: sql_help.c:1568 sql_help.c:1595 sql_help.c:1661 sql_help.c:1714 msgid "new_name" msgstr "nuevo_nombre" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1381 sql_help.c:1446 sql_help.c:1489 sql_help.c:1510 -#: sql_help.c:1572 sql_help.c:1688 sql_help.c:3019 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 +#: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 +#: sql_help.c:642 sql_help.c:707 sql_help.c:731 sql_help.c:762 sql_help.c:817 +#: sql_help.c:879 sql_help.c:922 sql_help.c:1029 sql_help.c:1068 +#: sql_help.c:1099 sql_help.c:1119 sql_help.c:1133 sql_help.c:1183 +#: sql_help.c:1399 sql_help.c:1467 sql_help.c:1510 sql_help.c:1531 +#: sql_help.c:1593 sql_help.c:1709 sql_help.c:3039 msgid "new_owner" msgstr "nuevo_dueño" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1319 sql_help.c:1491 sql_help.c:1512 -#: sql_help.c:1524 sql_help.c:1536 sql_help.c:1576 sql_help.c:1695 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 +#: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:735 sql_help.c:765 +#: sql_help.c:820 sql_help.c:884 sql_help.c:1034 sql_help.c:1103 +#: sql_help.c:1137 sql_help.c:1335 sql_help.c:1512 sql_help.c:1533 +#: sql_help.c:1545 sql_help.c:1557 sql_help.c:1597 sql_help.c:1716 msgid "new_schema" msgstr "nuevo_esquema" -#: sql_help.c:44 sql_help.c:1912 sql_help.c:3348 sql_help.c:4497 +#: sql_help.c:44 sql_help.c:1927 sql_help.c:3368 sql_help.c:4529 msgid "where aggregate_signature is:" msgstr "donde signatura_func_agregación es:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:3915 sql_help.c:4367 sql_help.c:4474 -#: sql_help.c:4481 sql_help.c:4487 sql_help.c:4498 sql_help.c:4501 -#: sql_help.c:4504 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 +#: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 +#: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:866 +#: sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:886 sql_help.c:1016 +#: sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 sql_help.c:1036 +#: sql_help.c:1881 sql_help.c:1898 sql_help.c:1904 sql_help.c:1928 +#: sql_help.c:1931 sql_help.c:1934 sql_help.c:2089 sql_help.c:2108 +#: sql_help.c:2111 sql_help.c:2415 sql_help.c:2624 sql_help.c:3369 +#: sql_help.c:3372 sql_help.c:3375 sql_help.c:3466 sql_help.c:3555 +#: sql_help.c:3583 sql_help.c:3936 sql_help.c:4399 sql_help.c:4506 +#: sql_help.c:4513 sql_help.c:4519 sql_help.c:4530 sql_help.c:4533 +#: sql_help.c:4536 msgid "argmode" msgstr "modo_arg" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2071 sql_help.c:2090 -#: sql_help.c:2093 sql_help.c:2395 sql_help.c:2604 sql_help.c:3350 -#: sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 sql_help.c:3536 -#: sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 sql_help.c:4488 -#: sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 +#: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 +#: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:887 sql_help.c:1017 +#: sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 sql_help.c:1037 +#: sql_help.c:1882 sql_help.c:1899 sql_help.c:1905 sql_help.c:1929 +#: sql_help.c:1932 sql_help.c:1935 sql_help.c:2090 sql_help.c:2109 +#: sql_help.c:2112 sql_help.c:2416 sql_help.c:2625 sql_help.c:3370 +#: sql_help.c:3373 sql_help.c:3376 sql_help.c:3467 sql_help.c:3556 +#: sql_help.c:3584 sql_help.c:4507 sql_help.c:4514 sql_help.c:4520 +#: sql_help.c:4531 sql_help.c:4534 sql_help.c:4537 msgid "argname" msgstr "nombre_arg" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1868 sql_help.c:1885 sql_help.c:1891 sql_help.c:1915 -#: sql_help.c:1918 sql_help.c:1921 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3357 sql_help.c:3448 -#: sql_help.c:3537 sql_help.c:3565 sql_help.c:4476 sql_help.c:4483 -#: sql_help.c:4489 sql_help.c:4500 sql_help.c:4503 sql_help.c:4506 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 +#: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 +#: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:868 +#: sql_help.c:873 sql_help.c:878 sql_help.c:883 sql_help.c:888 sql_help.c:1018 +#: sql_help.c:1023 sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 +#: sql_help.c:1883 sql_help.c:1900 sql_help.c:1906 sql_help.c:1930 +#: sql_help.c:1933 sql_help.c:1936 sql_help.c:2417 sql_help.c:2626 +#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3377 sql_help.c:3468 +#: sql_help.c:3557 sql_help.c:3585 sql_help.c:4508 sql_help.c:4515 +#: sql_help.c:4521 sql_help.c:4532 sql_help.c:4535 sql_help.c:4538 msgid "argtype" msgstr "tipo_arg" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1505 sql_help.c:1634 sql_help.c:1666 -#: sql_help.c:1719 sql_help.c:1783 sql_help.c:1970 sql_help.c:1977 -#: sql_help.c:2285 sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2440 sql_help.c:2667 sql_help.c:2760 sql_help.c:3048 -#: sql_help.c:3233 sql_help.c:3255 sql_help.c:3395 sql_help.c:3751 -#: sql_help.c:3959 sql_help.c:4194 sql_help.c:4196 sql_help.c:4973 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:965 +#: sql_help.c:1116 sql_help.c:1526 sql_help.c:1655 sql_help.c:1687 +#: sql_help.c:1739 sql_help.c:1798 sql_help.c:1987 sql_help.c:1994 +#: sql_help.c:2306 sql_help.c:2356 sql_help.c:2363 sql_help.c:2372 +#: sql_help.c:2461 sql_help.c:2686 sql_help.c:2777 sql_help.c:3068 +#: sql_help.c:3253 sql_help.c:3275 sql_help.c:3415 sql_help.c:3772 +#: sql_help.c:3980 sql_help.c:4226 sql_help.c:4228 sql_help.c:5006 msgid "option" msgstr "opción" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1635 sql_help.c:2441 -#: sql_help.c:2668 sql_help.c:3234 sql_help.c:3396 +#: sql_help.c:115 sql_help.c:966 sql_help.c:1656 sql_help.c:2462 +#: sql_help.c:2687 sql_help.c:3254 sql_help.c:3416 msgid "where option can be:" msgstr "donde opción puede ser:" -#: sql_help.c:116 sql_help.c:2217 +#: sql_help.c:116 sql_help.c:2238 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1636 sql_help.c:2218 -#: sql_help.c:2442 sql_help.c:2669 sql_help.c:3235 +#: sql_help.c:117 sql_help.c:967 sql_help.c:1657 sql_help.c:2239 +#: sql_help.c:2463 sql_help.c:2688 sql_help.c:3255 msgid "connlimit" msgstr "límite_conexiones" -#: sql_help.c:118 sql_help.c:2219 +#: sql_help.c:118 sql_help.c:2240 msgid "istemplate" msgstr "esplantilla" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1322 -#: sql_help.c:1374 sql_help.c:4200 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1338 +#: sql_help.c:1392 sql_help.c:4232 msgid "new_tablespace" msgstr "nuevo_tablespace" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1183 sql_help.c:1643 -#: sql_help.c:1647 sql_help.c:1650 sql_help.c:2406 sql_help.c:2609 -#: sql_help.c:3927 sql_help.c:4218 sql_help.c:4379 sql_help.c:4688 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 +#: sql_help.c:561 sql_help.c:891 sql_help.c:893 sql_help.c:894 sql_help.c:974 +#: sql_help.c:978 sql_help.c:981 sql_help.c:1043 sql_help.c:1045 +#: sql_help.c:1046 sql_help.c:1196 sql_help.c:1198 sql_help.c:1664 +#: sql_help.c:1668 sql_help.c:1671 sql_help.c:2427 sql_help.c:2630 +#: sql_help.c:3948 sql_help.c:4250 sql_help.c:4411 sql_help.c:4721 msgid "configuration_parameter" msgstr "parámetro_de_configuración" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1182 -#: sql_help.c:1353 sql_help.c:1376 sql_help.c:1424 sql_help.c:1449 -#: sql_help.c:1506 sql_help.c:1590 sql_help.c:1644 sql_help.c:1667 -#: sql_help.c:2286 sql_help.c:2336 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2407 sql_help.c:2408 sql_help.c:2472 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2610 sql_help.c:2611 sql_help.c:2634 -#: sql_help.c:2761 sql_help.c:2800 sql_help.c:2910 sql_help.c:2923 -#: sql_help.c:2937 sql_help.c:2978 sql_help.c:3005 sql_help.c:3022 -#: sql_help.c:3049 sql_help.c:3256 sql_help.c:3960 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 sql_help.c:4692 +#: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 +#: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:892 +#: sql_help.c:920 sql_help.c:975 sql_help.c:1044 sql_help.c:1117 +#: sql_help.c:1162 sql_help.c:1166 sql_help.c:1170 sql_help.c:1173 +#: sql_help.c:1178 sql_help.c:1181 sql_help.c:1197 sql_help.c:1371 +#: sql_help.c:1394 sql_help.c:1442 sql_help.c:1450 sql_help.c:1470 +#: sql_help.c:1527 sql_help.c:1611 sql_help.c:1665 sql_help.c:1688 +#: sql_help.c:2307 sql_help.c:2357 sql_help.c:2364 sql_help.c:2373 +#: sql_help.c:2428 sql_help.c:2429 sql_help.c:2493 sql_help.c:2496 +#: sql_help.c:2530 sql_help.c:2631 sql_help.c:2632 sql_help.c:2655 +#: sql_help.c:2778 sql_help.c:2817 sql_help.c:2927 sql_help.c:2940 +#: sql_help.c:2954 sql_help.c:2995 sql_help.c:3003 sql_help.c:3025 +#: sql_help.c:3042 sql_help.c:3069 sql_help.c:3276 sql_help.c:3981 +#: sql_help.c:4722 sql_help.c:4723 sql_help.c:4724 sql_help.c:4725 msgid "value" msgstr "valor" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "rol_destino" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2270 sql_help.c:2639 -#: sql_help.c:2716 sql_help.c:2721 sql_help.c:3890 sql_help.c:3899 -#: sql_help.c:3918 sql_help.c:3930 sql_help.c:4342 sql_help.c:4351 -#: sql_help.c:4370 sql_help.c:4382 +#: sql_help.c:203 sql_help.c:929 sql_help.c:2291 sql_help.c:2660 +#: sql_help.c:2733 sql_help.c:2738 sql_help.c:3911 sql_help.c:3920 +#: sql_help.c:3939 sql_help.c:3951 sql_help.c:4374 sql_help.c:4383 +#: sql_help.c:4402 sql_help.c:4414 msgid "schema_name" msgstr "nombre_de_esquema" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "grant_o_revoke_abreviado" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "donde grant_o_revoke_abreviado es uno de:" -#: 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:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1321 sql_help.c:1654 sql_help.c:2445 sql_help.c:2446 -#: sql_help.c:2447 sql_help.c:2448 sql_help.c:2449 sql_help.c:2583 -#: sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 sql_help.c:2675 -#: sql_help.c:2676 sql_help.c:3238 sql_help.c:3239 sql_help.c:3240 -#: sql_help.c:3241 sql_help.c:3242 sql_help.c:3939 sql_help.c:3943 -#: sql_help.c:4391 sql_help.c:4395 sql_help.c:4710 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:838 sql_help.c:985 +#: sql_help.c:1337 sql_help.c:1675 sql_help.c:2466 sql_help.c:2467 +#: sql_help.c:2468 sql_help.c:2469 sql_help.c:2470 sql_help.c:2604 +#: sql_help.c:2691 sql_help.c:2692 sql_help.c:2693 sql_help.c:3258 +#: sql_help.c:3259 sql_help.c:3260 sql_help.c:3261 sql_help.c:3262 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:4423 sql_help.c:4427 +#: sql_help.c:4743 msgid "role_name" msgstr "nombre_de_rol" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1337 sql_help.c:1339 -#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1428 sql_help.c:1684 -#: sql_help.c:2239 sql_help.c:2243 sql_help.c:2355 sql_help.c:2360 -#: sql_help.c:2468 sql_help.c:2638 sql_help.c:2777 sql_help.c:2782 -#: sql_help.c:2784 sql_help.c:2905 sql_help.c:2918 sql_help.c:2932 -#: sql_help.c:2941 sql_help.c:2953 sql_help.c:2982 sql_help.c:3991 -#: sql_help.c:4006 sql_help.c:4008 sql_help.c:4095 sql_help.c:4098 -#: sql_help.c:4100 sql_help.c:4561 sql_help.c:4562 sql_help.c:4571 -#: sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 sql_help.c:4621 -#: sql_help.c:4622 sql_help.c:4623 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4669 sql_help.c:4674 sql_help.c:4818 sql_help.c:4819 -#: sql_help.c:4828 sql_help.c:4875 sql_help.c:4876 sql_help.c:4877 -#: sql_help.c:4878 sql_help.c:4879 sql_help.c:4880 sql_help.c:4934 -#: sql_help.c:4936 sql_help.c:5004 sql_help.c:5064 sql_help.c:5065 -#: sql_help.c:5074 sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 -#: sql_help.c:5124 sql_help.c:5125 sql_help.c:5126 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:928 sql_help.c:1353 +#: sql_help.c:1355 sql_help.c:1359 sql_help.c:1409 sql_help.c:1421 +#: sql_help.c:1446 sql_help.c:1705 sql_help.c:2260 sql_help.c:2264 +#: sql_help.c:2376 sql_help.c:2381 sql_help.c:2489 sql_help.c:2659 +#: sql_help.c:2794 sql_help.c:2799 sql_help.c:2801 sql_help.c:2922 +#: sql_help.c:2935 sql_help.c:2949 sql_help.c:2958 sql_help.c:2970 +#: sql_help.c:2999 sql_help.c:4012 sql_help.c:4027 sql_help.c:4029 +#: sql_help.c:4125 sql_help.c:4128 sql_help.c:4130 sql_help.c:4593 +#: sql_help.c:4594 sql_help.c:4603 sql_help.c:4650 sql_help.c:4651 +#: sql_help.c:4652 sql_help.c:4653 sql_help.c:4654 sql_help.c:4655 +#: sql_help.c:4696 sql_help.c:4697 sql_help.c:4702 sql_help.c:4707 +#: sql_help.c:4851 sql_help.c:4852 sql_help.c:4861 sql_help.c:4908 +#: sql_help.c:4909 sql_help.c:4910 sql_help.c:4911 sql_help.c:4912 +#: sql_help.c:4913 sql_help.c:4968 sql_help.c:4970 sql_help.c:5036 +#: sql_help.c:5096 sql_help.c:5097 sql_help.c:5106 sql_help.c:5153 +#: sql_help.c:5154 sql_help.c:5155 sql_help.c:5156 sql_help.c:5157 +#: sql_help.c:5158 msgid "expression" msgstr "expresión" -#: sql_help.c:242 +#: sql_help.c:249 sql_help.c:2261 msgid "domain_constraint" msgstr "restricción_de_dominio" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1314 sql_help.c:1361 sql_help.c:1362 sql_help.c:1363 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1419 sql_help.c:1854 -#: sql_help.c:1856 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:4003 +#: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 +#: sql_help.c:488 sql_help.c:1330 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1381 sql_help.c:1408 sql_help.c:1420 sql_help.c:1437 +#: sql_help.c:1869 sql_help.c:1871 sql_help.c:2263 sql_help.c:2375 +#: sql_help.c:2380 sql_help.c:2957 sql_help.c:2969 sql_help.c:4024 msgid "constraint_name" msgstr "nombre_restricción" -#: sql_help.c:247 sql_help.c:1315 +#: sql_help.c:254 sql_help.c:1331 msgid "new_constraint_name" msgstr "nuevo_nombre_restricción" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:263 sql_help.c:2262 +msgid "where domain_constraint is:" +msgstr "donde restricción_de_dominio es:" + +#: sql_help.c:330 sql_help.c:1115 msgid "new_version" msgstr "nueva_versión" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:334 sql_help.c:336 msgid "member_object" msgstr "objeto_miembro" -#: sql_help.c:327 +#: sql_help.c:337 msgid "where member_object is:" msgstr "dondo objeto_miembro es:" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1846 sql_help.c:1851 sql_help.c:1858 -#: sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 sql_help.c:1862 -#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1869 sql_help.c:1871 -#: sql_help.c:1875 sql_help.c:1877 sql_help.c:1881 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1894 sql_help.c:1895 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 -#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 -#: sql_help.c:1909 sql_help.c:1910 sql_help.c:4464 sql_help.c:4469 -#: sql_help.c:4470 sql_help.c:4471 sql_help.c:4472 sql_help.c:4478 -#: sql_help.c:4479 sql_help.c:4484 sql_help.c:4485 sql_help.c:4490 -#: sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 sql_help.c:4494 -#: sql_help.c:4495 +#: sql_help.c:338 sql_help.c:343 sql_help.c:344 sql_help.c:345 sql_help.c:346 +#: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 +#: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 +#: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 +#: sql_help.c:381 sql_help.c:1861 sql_help.c:1866 sql_help.c:1873 +#: sql_help.c:1874 sql_help.c:1875 sql_help.c:1876 sql_help.c:1877 +#: sql_help.c:1878 sql_help.c:1879 sql_help.c:1884 sql_help.c:1886 +#: sql_help.c:1890 sql_help.c:1892 sql_help.c:1896 sql_help.c:1901 +#: sql_help.c:1902 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 sql_help.c:1915 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:1918 sql_help.c:1919 +#: sql_help.c:1924 sql_help.c:1925 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4510 +#: sql_help.c:4511 sql_help.c:4516 sql_help.c:4517 sql_help.c:4522 +#: sql_help.c:4523 sql_help.c:4524 sql_help.c:4525 sql_help.c:4526 +#: sql_help.c:4527 msgid "object_name" msgstr "nombre_de_objeto" -#: sql_help.c:329 sql_help.c:1847 sql_help.c:4467 +#: sql_help.c:339 sql_help.c:1862 sql_help.c:4499 msgid "aggregate_name" msgstr "nombre_función_agregación" -#: sql_help.c:331 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:341 sql_help.c:1864 sql_help.c:2154 sql_help.c:2158 +#: sql_help.c:2160 sql_help.c:3385 msgid "source_type" msgstr "tipo_fuente" -#: sql_help.c:332 sql_help.c:1850 sql_help.c:2136 sql_help.c:2140 -#: sql_help.c:2142 sql_help.c:3366 +#: sql_help.c:342 sql_help.c:1865 sql_help.c:2155 sql_help.c:2159 +#: sql_help.c:2161 sql_help.c:3386 msgid "target_type" msgstr "tipo_destino" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1865 sql_help.c:2137 -#: sql_help.c:2180 sql_help.c:2258 sql_help.c:2526 sql_help.c:2557 -#: sql_help.c:3125 sql_help.c:4366 sql_help.c:4473 sql_help.c:4590 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4601 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5093 -#: sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:349 sql_help.c:802 sql_help.c:1880 sql_help.c:2156 +#: sql_help.c:2199 sql_help.c:2279 sql_help.c:2547 sql_help.c:2578 +#: sql_help.c:3145 sql_help.c:4398 sql_help.c:4505 sql_help.c:4622 +#: sql_help.c:4626 sql_help.c:4630 sql_help.c:4633 sql_help.c:4880 +#: sql_help.c:4884 sql_help.c:4888 sql_help.c:4891 sql_help.c:5125 +#: sql_help.c:5129 sql_help.c:5133 sql_help.c:5136 msgid "function_name" msgstr "nombre_de_función" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1872 sql_help.c:2550 +#: sql_help.c:354 sql_help.c:795 sql_help.c:1887 sql_help.c:2571 msgid "operator_name" msgstr "nombre_operador" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:355 sql_help.c:729 sql_help.c:733 sql_help.c:737 sql_help.c:1888 +#: sql_help.c:2548 sql_help.c:3509 msgid "left_type" msgstr "tipo_izq" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1874 -#: sql_help.c:2528 sql_help.c:3490 +#: sql_help.c:356 sql_help.c:730 sql_help.c:734 sql_help.c:738 sql_help.c:1889 +#: sql_help.c:2549 sql_help.c:3510 msgid "right_type" msgstr "tipo_der" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1408 sql_help.c:1876 sql_help.c:1878 sql_help.c:2547 -#: sql_help.c:2568 sql_help.c:2958 sql_help.c:3499 sql_help.c:3508 +#: sql_help.c:358 sql_help.c:360 sql_help.c:758 sql_help.c:761 sql_help.c:764 +#: sql_help.c:793 sql_help.c:805 sql_help.c:813 sql_help.c:816 sql_help.c:819 +#: sql_help.c:1426 sql_help.c:1891 sql_help.c:1893 sql_help.c:2568 +#: sql_help.c:2589 sql_help.c:2975 sql_help.c:3519 sql_help.c:3528 msgid "index_method" msgstr "método_de_índice" -#: sql_help.c:352 sql_help.c:1882 sql_help.c:4480 +#: sql_help.c:362 sql_help.c:1897 sql_help.c:4512 msgid "procedure_name" msgstr "nombre_de_procedimiento" -#: sql_help.c:356 sql_help.c:1888 sql_help.c:3914 sql_help.c:4486 +#: sql_help.c:366 sql_help.c:1903 sql_help.c:3935 sql_help.c:4518 msgid "routine_name" msgstr "nombre_de_rutina" -#: sql_help.c:368 sql_help.c:1380 sql_help.c:1905 sql_help.c:2402 -#: sql_help.c:2608 sql_help.c:2913 sql_help.c:3092 sql_help.c:3670 -#: sql_help.c:3936 sql_help.c:4388 +#: sql_help.c:378 sql_help.c:1398 sql_help.c:1920 sql_help.c:2423 +#: sql_help.c:2629 sql_help.c:2930 sql_help.c:3112 sql_help.c:3690 +#: sql_help.c:3957 sql_help.c:4420 msgid "type_name" msgstr "nombre_de_tipo" -#: sql_help.c:369 sql_help.c:1906 sql_help.c:2401 sql_help.c:2607 -#: sql_help.c:3093 sql_help.c:3323 sql_help.c:3671 sql_help.c:3921 -#: sql_help.c:4373 +#: sql_help.c:379 sql_help.c:1921 sql_help.c:2422 sql_help.c:2628 +#: sql_help.c:3113 sql_help.c:3343 sql_help.c:3691 sql_help.c:3942 +#: sql_help.c:4405 msgid "lang_name" msgstr "nombre_lenguaje" -#: sql_help.c:372 +#: sql_help.c:382 msgid "and aggregate_signature is:" msgstr "y signatura_func_agregación es:" -#: sql_help.c:395 sql_help.c:2002 sql_help.c:2283 +#: sql_help.c:405 sql_help.c:2021 sql_help.c:2304 msgid "handler_function" msgstr "función_manejadora" -#: sql_help.c:396 sql_help.c:2284 +#: sql_help.c:406 sql_help.c:2305 msgid "validator_function" msgstr "función_validadora" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1309 sql_help.c:1581 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:869 sql_help.c:1019 +#: sql_help.c:1325 sql_help.c:1602 msgid "action" msgstr "acción" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1311 sql_help.c:1329 sql_help.c:1333 sql_help.c:1334 -#: sql_help.c:1338 sql_help.c:1340 sql_help.c:1341 sql_help.c:1342 -#: sql_help.c:1343 sql_help.c:1345 sql_help.c:1348 sql_help.c:1349 -#: sql_help.c:1351 sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 -#: sql_help.c:1404 sql_help.c:1406 sql_help.c:1413 sql_help.c:1422 -#: sql_help.c:1427 sql_help.c:1431 sql_help.c:1432 sql_help.c:1683 -#: sql_help.c:1686 sql_help.c:1690 sql_help.c:1728 sql_help.c:1853 -#: sql_help.c:1967 sql_help.c:1973 sql_help.c:1987 sql_help.c:1988 -#: sql_help.c:1989 sql_help.c:2333 sql_help.c:2346 sql_help.c:2399 -#: sql_help.c:2467 sql_help.c:2473 sql_help.c:2506 sql_help.c:2637 -#: sql_help.c:2746 sql_help.c:2781 sql_help.c:2783 sql_help.c:2895 -#: sql_help.c:2904 sql_help.c:2914 sql_help.c:2917 sql_help.c:2927 -#: sql_help.c:2931 sql_help.c:2954 sql_help.c:2956 sql_help.c:2963 -#: sql_help.c:2976 sql_help.c:2981 sql_help.c:2985 sql_help.c:2986 -#: sql_help.c:3002 sql_help.c:3128 sql_help.c:3268 sql_help.c:3893 -#: sql_help.c:3894 sql_help.c:3990 sql_help.c:4005 sql_help.c:4007 -#: sql_help.c:4009 sql_help.c:4094 sql_help.c:4097 sql_help.c:4099 -#: sql_help.c:4345 sql_help.c:4346 sql_help.c:4466 sql_help.c:4627 -#: sql_help.c:4633 sql_help.c:4635 sql_help.c:4884 sql_help.c:4890 -#: sql_help.c:4892 sql_help.c:4933 sql_help.c:4935 sql_help.c:4937 -#: sql_help.c:4992 sql_help.c:5130 sql_help.c:5136 sql_help.c:5138 +#: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 +#: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 +#: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:927 sql_help.c:1096 +#: sql_help.c:1327 sql_help.c:1345 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1360 sql_help.c:1361 sql_help.c:1363 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1369 sql_help.c:1372 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1422 sql_help.c:1424 sql_help.c:1431 +#: sql_help.c:1440 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1704 sql_help.c:1707 sql_help.c:1711 sql_help.c:1747 +#: sql_help.c:1868 sql_help.c:1984 sql_help.c:1990 sql_help.c:2004 +#: sql_help.c:2005 sql_help.c:2006 sql_help.c:2354 sql_help.c:2367 +#: sql_help.c:2420 sql_help.c:2488 sql_help.c:2494 sql_help.c:2527 +#: sql_help.c:2658 sql_help.c:2763 sql_help.c:2798 sql_help.c:2800 +#: sql_help.c:2912 sql_help.c:2921 sql_help.c:2931 sql_help.c:2934 +#: sql_help.c:2944 sql_help.c:2948 sql_help.c:2971 sql_help.c:2973 +#: sql_help.c:2980 sql_help.c:2993 sql_help.c:2998 sql_help.c:3005 +#: sql_help.c:3006 sql_help.c:3022 sql_help.c:3148 sql_help.c:3288 +#: sql_help.c:3914 sql_help.c:3915 sql_help.c:4011 sql_help.c:4026 +#: sql_help.c:4028 sql_help.c:4030 sql_help.c:4124 sql_help.c:4127 +#: sql_help.c:4129 sql_help.c:4131 sql_help.c:4377 sql_help.c:4378 +#: sql_help.c:4498 sql_help.c:4659 sql_help.c:4666 sql_help.c:4668 +#: sql_help.c:4917 sql_help.c:4924 sql_help.c:4926 sql_help.c:4967 +#: sql_help.c:4969 sql_help.c:4971 sql_help.c:5024 sql_help.c:5162 +#: sql_help.c:5169 sql_help.c:5171 msgid "column_name" msgstr "nombre_de_columna" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1312 sql_help.c:1691 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1328 sql_help.c:1712 msgid "new_column_name" msgstr "nuevo_nombre_de_columna" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1328 sql_help.c:1591 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:890 sql_help.c:1040 +#: sql_help.c:1344 sql_help.c:1612 msgid "where action is one of:" msgstr "donde acción es una de:" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1330 -#: sql_help.c:1335 sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 -#: sql_help.c:2334 sql_help.c:2546 sql_help.c:2739 sql_help.c:2896 -#: sql_help.c:3175 sql_help.c:4151 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1088 sql_help.c:1346 +#: sql_help.c:1351 sql_help.c:1614 sql_help.c:1618 sql_help.c:2258 +#: sql_help.c:2355 sql_help.c:2567 sql_help.c:2756 sql_help.c:2913 +#: sql_help.c:3195 sql_help.c:4183 msgid "data_type" msgstr "tipo_de_dato" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1331 sql_help.c:1336 -#: sql_help.c:1594 sql_help.c:1598 sql_help.c:2238 sql_help.c:2337 -#: sql_help.c:2469 sql_help.c:2898 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:3176 sql_help.c:3182 sql_help.c:4000 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1347 sql_help.c:1352 +#: sql_help.c:1447 sql_help.c:1615 sql_help.c:1619 sql_help.c:2259 +#: sql_help.c:2358 sql_help.c:2490 sql_help.c:2915 sql_help.c:2923 +#: sql_help.c:2936 sql_help.c:2950 sql_help.c:3000 sql_help.c:3196 +#: sql_help.c:3202 sql_help.c:4021 msgid "collation" msgstr "ordenamiento" -#: sql_help.c:456 sql_help.c:1332 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:466 sql_help.c:1348 sql_help.c:2359 sql_help.c:2368 +#: sql_help.c:2916 sql_help.c:2932 sql_help.c:2945 msgid "column_constraint" msgstr "restricción_de_columna" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1350 sql_help.c:4986 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1368 sql_help.c:5018 msgid "integer" msgstr "entero" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1352 -#: sql_help.c:1355 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1370 +#: sql_help.c:1373 msgid "attribute_option" msgstr "opción_de_atributo" -#: sql_help.c:476 sql_help.c:1359 sql_help.c:2339 sql_help.c:2348 -#: sql_help.c:2900 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:486 sql_help.c:1377 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2917 sql_help.c:2933 sql_help.c:2946 msgid "table_constraint" msgstr "restricción_de_tabla" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1364 -#: sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 sql_help.c:1907 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1382 +#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:1922 msgid "trigger_name" msgstr "nombre_disparador" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1378 sql_help.c:1379 -#: sql_help.c:2340 sql_help.c:2345 sql_help.c:2903 sql_help.c:2926 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:2361 sql_help.c:2366 sql_help.c:2920 sql_help.c:2943 msgid "parent_table" msgstr "tabla_padre" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1550 sql_help.c:2269 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:889 sql_help.c:1039 +#: sql_help.c:1571 sql_help.c:2290 msgid "extension_name" msgstr "nombre_de_extensión" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2403 +#: sql_help.c:555 sql_help.c:1041 sql_help.c:2424 msgid "execution_cost" msgstr "costo_de_ejecución" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2404 +#: sql_help.c:556 sql_help.c:1042 sql_help.c:2425 msgid "result_rows" msgstr "núm_de_filas" -#: sql_help.c:547 sql_help.c:2405 +#: sql_help.c:557 sql_help.c:2426 msgid "support_function" msgstr "función_de_soporte" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1633 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:2717 -#: sql_help.c:2719 sql_help.c:2722 sql_help.c:2723 sql_help.c:3891 -#: sql_help.c:3892 sql_help.c:3896 sql_help.c:3897 sql_help.c:3900 -#: sql_help.c:3901 sql_help.c:3903 sql_help.c:3904 sql_help.c:3906 -#: sql_help.c:3907 sql_help.c:3909 sql_help.c:3910 sql_help.c:3912 -#: sql_help.c:3913 sql_help.c:3919 sql_help.c:3920 sql_help.c:3922 -#: sql_help.c:3923 sql_help.c:3925 sql_help.c:3926 sql_help.c:3928 -#: sql_help.c:3929 sql_help.c:3931 sql_help.c:3932 sql_help.c:3934 -#: sql_help.c:3935 sql_help.c:3937 sql_help.c:3938 sql_help.c:3940 -#: sql_help.c:3941 sql_help.c:4343 sql_help.c:4344 sql_help.c:4348 -#: sql_help.c:4349 sql_help.c:4352 sql_help.c:4353 sql_help.c:4355 -#: sql_help.c:4356 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4374 sql_help.c:4375 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 +#: sql_help.c:579 sql_help.c:581 sql_help.c:964 sql_help.c:972 sql_help.c:976 +#: sql_help.c:979 sql_help.c:982 sql_help.c:1654 sql_help.c:1662 +#: sql_help.c:1666 sql_help.c:1669 sql_help.c:1672 sql_help.c:2734 +#: sql_help.c:2736 sql_help.c:2739 sql_help.c:2740 sql_help.c:3912 +#: sql_help.c:3913 sql_help.c:3917 sql_help.c:3918 sql_help.c:3921 +#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 +#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 +#: sql_help.c:3934 sql_help.c:3940 sql_help.c:3941 sql_help.c:3943 +#: sql_help.c:3944 sql_help.c:3946 sql_help.c:3947 sql_help.c:3949 +#: sql_help.c:3950 sql_help.c:3952 sql_help.c:3953 sql_help.c:3955 +#: sql_help.c:3956 sql_help.c:3958 sql_help.c:3959 sql_help.c:3961 +#: sql_help.c:3962 sql_help.c:4375 sql_help.c:4376 sql_help.c:4380 +#: sql_help.c:4381 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4393 +#: sql_help.c:4394 sql_help.c:4396 sql_help.c:4397 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 sql_help.c:4421 +#: sql_help.c:4422 sql_help.c:4424 sql_help.c:4425 msgid "role_specification" msgstr "especificación_de_rol" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1664 sql_help.c:2205 -#: sql_help.c:2725 sql_help.c:3253 sql_help.c:3704 sql_help.c:4720 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1685 sql_help.c:2225 +#: sql_help.c:2742 sql_help.c:3273 sql_help.c:3724 sql_help.c:4753 msgid "user_name" msgstr "nombre_de_usuario" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1653 sql_help.c:2724 -#: sql_help.c:3942 sql_help.c:4394 +#: sql_help.c:583 sql_help.c:984 sql_help.c:1674 sql_help.c:2741 +#: sql_help.c:3963 sql_help.c:4426 msgid "where role_specification can be:" msgstr "donde especificación_de_rol puede ser:" -#: sql_help.c:575 +#: sql_help.c:585 msgid "group_name" msgstr "nombre_de_grupo" -#: sql_help.c:596 sql_help.c:1425 sql_help.c:2216 sql_help.c:2476 -#: sql_help.c:2510 sql_help.c:2911 sql_help.c:2924 sql_help.c:2938 -#: sql_help.c:2979 sql_help.c:3006 sql_help.c:3018 sql_help.c:3933 -#: sql_help.c:4385 +#: sql_help.c:606 sql_help.c:1443 sql_help.c:2237 sql_help.c:2497 +#: sql_help.c:2531 sql_help.c:2928 sql_help.c:2941 sql_help.c:2955 +#: sql_help.c:2996 sql_help.c:3026 sql_help.c:3038 sql_help.c:3954 +#: sql_help.c:4417 msgid "tablespace_name" msgstr "nombre_de_tablespace" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1372 sql_help.c:1382 -#: sql_help.c:1420 sql_help.c:1782 sql_help.c:1785 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1390 sql_help.c:1400 +#: sql_help.c:1438 sql_help.c:1800 msgid "index_name" msgstr "nombre_índice" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1375 -#: sql_help.c:1377 sql_help.c:1423 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 sql_help.c:2977 -#: sql_help.c:3004 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1393 +#: sql_help.c:1395 sql_help.c:1441 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2926 sql_help.c:2939 sql_help.c:2953 sql_help.c:2994 +#: sql_help.c:3024 msgid "storage_parameter" msgstr "parámetro_de_almacenamiento" -#: sql_help.c:607 +#: sql_help.c:617 msgid "column_number" msgstr "número_de_columna" -#: sql_help.c:631 sql_help.c:1870 sql_help.c:4477 +#: sql_help.c:641 sql_help.c:1885 sql_help.c:4509 msgid "large_object_oid" msgstr "oid_de_objeto_grande" -#: sql_help.c:690 sql_help.c:1358 sql_help.c:2897 +#: sql_help.c:700 sql_help.c:1376 sql_help.c:2914 msgid "compression_method" msgstr "método_de_compresión" -#: sql_help.c:692 sql_help.c:1373 +#: sql_help.c:702 sql_help.c:1391 msgid "new_access_method" msgstr "nuevo_método_de_acceso" -#: sql_help.c:725 sql_help.c:2531 +#: sql_help.c:739 sql_help.c:2552 msgid "res_proc" msgstr "proc_res" -#: sql_help.c:726 sql_help.c:2532 +#: sql_help.c:740 sql_help.c:2553 msgid "join_proc" msgstr "proc_join" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2549 +#: sql_help.c:741 sql_help.c:2550 +msgid "com_op" +msgstr "op_conm" + +#: sql_help.c:742 sql_help.c:2551 +msgid "neg_op" +msgstr "op_neg" + +#: sql_help.c:794 sql_help.c:806 sql_help.c:2570 msgid "strategy_number" msgstr "número_de_estrategia" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2551 sql_help.c:2552 -#: sql_help.c:2555 sql_help.c:2556 +#: sql_help.c:796 sql_help.c:797 sql_help.c:800 sql_help.c:801 sql_help.c:807 +#: sql_help.c:808 sql_help.c:810 sql_help.c:811 sql_help.c:2572 sql_help.c:2573 +#: sql_help.c:2576 sql_help.c:2577 msgid "op_type" msgstr "tipo_op" -#: sql_help.c:782 sql_help.c:2553 +#: sql_help.c:798 sql_help.c:2574 msgid "sort_family_name" msgstr "nombre_familia_ordenamiento" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2554 +#: sql_help.c:799 sql_help.c:809 sql_help.c:2575 msgid "support_number" msgstr "número_de_soporte" -#: sql_help.c:787 sql_help.c:2138 sql_help.c:2558 sql_help.c:3095 -#: sql_help.c:3097 +#: sql_help.c:803 sql_help.c:2157 sql_help.c:2579 sql_help.c:3115 +#: sql_help.c:3117 msgid "argument_type" msgstr "tipo_argumento" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1546 sql_help.c:1549 sql_help.c:1727 sql_help.c:1781 -#: sql_help.c:1784 sql_help.c:1855 sql_help.c:1880 sql_help.c:1893 -#: sql_help.c:1908 sql_help.c:1966 sql_help.c:1972 sql_help.c:2332 -#: sql_help.c:2344 sql_help.c:2465 sql_help.c:2505 sql_help.c:2582 -#: sql_help.c:2636 sql_help.c:2693 sql_help.c:2745 sql_help.c:2778 -#: sql_help.c:2785 sql_help.c:2894 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:3001 sql_help.c:3121 sql_help.c:3302 sql_help.c:3525 -#: sql_help.c:3574 sql_help.c:3680 sql_help.c:3889 sql_help.c:3895 -#: sql_help.c:3956 sql_help.c:3988 sql_help.c:4341 sql_help.c:4347 -#: sql_help.c:4465 sql_help.c:4576 sql_help.c:4578 sql_help.c:4640 -#: sql_help.c:4679 sql_help.c:4833 sql_help.c:4835 sql_help.c:4897 -#: sql_help.c:4931 sql_help.c:4991 sql_help.c:5079 sql_help.c:5081 -#: sql_help.c:5143 +#: sql_help.c:834 sql_help.c:837 sql_help.c:926 sql_help.c:1055 sql_help.c:1095 +#: sql_help.c:1567 sql_help.c:1570 sql_help.c:1746 sql_help.c:1799 +#: sql_help.c:1870 sql_help.c:1895 sql_help.c:1908 sql_help.c:1923 +#: sql_help.c:1983 sql_help.c:1989 sql_help.c:2353 sql_help.c:2365 +#: sql_help.c:2486 sql_help.c:2526 sql_help.c:2603 sql_help.c:2657 +#: sql_help.c:2710 sql_help.c:2762 sql_help.c:2795 sql_help.c:2802 +#: sql_help.c:2911 sql_help.c:2929 sql_help.c:2942 sql_help.c:3021 +#: sql_help.c:3141 sql_help.c:3322 sql_help.c:3545 sql_help.c:3594 +#: sql_help.c:3700 sql_help.c:3910 sql_help.c:3916 sql_help.c:3977 +#: sql_help.c:4009 sql_help.c:4373 sql_help.c:4379 sql_help.c:4497 +#: sql_help.c:4610 sql_help.c:4673 sql_help.c:4712 sql_help.c:4868 +#: sql_help.c:4931 sql_help.c:4965 sql_help.c:5023 sql_help.c:5113 +#: sql_help.c:5176 msgid "table_name" msgstr "nombre_de_tabla" -#: sql_help.c:823 sql_help.c:2584 +#: sql_help.c:839 sql_help.c:2605 msgid "using_expression" msgstr "expresión_using" -#: sql_help.c:824 sql_help.c:2585 +#: sql_help.c:840 sql_help.c:2606 msgid "check_expression" msgstr "expresión_check" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2632 +#: sql_help.c:913 sql_help.c:915 sql_help.c:917 sql_help.c:2653 msgid "publication_object" msgstr "objeto_de_publicación" -#: sql_help.c:903 sql_help.c:2633 +#: sql_help.c:919 sql_help.c:2654 msgid "publication_parameter" msgstr "parámetro_de_publicación" -#: sql_help.c:909 sql_help.c:2635 +#: sql_help.c:925 sql_help.c:2656 msgid "where publication_object is one of:" msgstr "donde objeto_de_publicación es uno de:" -#: sql_help.c:952 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:968 sql_help.c:1658 sql_help.c:2464 sql_help.c:2689 +#: sql_help.c:3256 msgid "password" msgstr "contraseña" -#: sql_help.c:953 sql_help.c:1638 sql_help.c:2444 sql_help.c:2671 -#: sql_help.c:3237 +#: sql_help.c:969 sql_help.c:1659 sql_help.c:2465 sql_help.c:2690 +#: sql_help.c:3257 msgid "timestamp" msgstr "fecha_hora" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:1652 sql_help.c:3902 -#: sql_help.c:4354 +#: sql_help.c:973 sql_help.c:977 sql_help.c:980 sql_help.c:983 sql_help.c:1663 +#: sql_help.c:1667 sql_help.c:1670 sql_help.c:1673 sql_help.c:3923 +#: sql_help.c:4386 msgid "database_name" msgstr "nombre_de_base_de_datos" -#: sql_help.c:1073 sql_help.c:2740 +#: sql_help.c:1089 sql_help.c:2757 msgid "increment" msgstr "incremento" -#: sql_help.c:1074 sql_help.c:2741 +#: sql_help.c:1090 sql_help.c:2758 msgid "minvalue" msgstr "valormin" -#: sql_help.c:1075 sql_help.c:2742 +#: sql_help.c:1091 sql_help.c:2759 msgid "maxvalue" msgstr "valormax" -#: sql_help.c:1076 sql_help.c:2743 sql_help.c:4574 sql_help.c:4677 -#: sql_help.c:4831 sql_help.c:5008 sql_help.c:5077 +#: sql_help.c:1092 sql_help.c:2760 sql_help.c:4606 sql_help.c:4710 +#: sql_help.c:4864 sql_help.c:5040 sql_help.c:5109 msgid "start" msgstr "inicio" -#: sql_help.c:1077 sql_help.c:1347 +#: sql_help.c:1093 sql_help.c:1365 msgid "restart" msgstr "reinicio" -#: sql_help.c:1078 sql_help.c:2744 +#: sql_help.c:1094 sql_help.c:2761 msgid "cache" msgstr "cache" -#: sql_help.c:1123 +#: sql_help.c:1139 msgid "new_target" msgstr "nuevo_valor" -#: sql_help.c:1142 sql_help.c:2797 +#: sql_help.c:1158 sql_help.c:2814 msgid "conninfo" msgstr "conninfo" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2798 +#: sql_help.c:1160 sql_help.c:1164 sql_help.c:1168 sql_help.c:2815 msgid "publication_name" msgstr "nombre_de_publicación" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1161 sql_help.c:1165 sql_help.c:1169 msgid "publication_option" msgstr "opción_de_publicación" -#: sql_help.c:1156 +#: sql_help.c:1172 msgid "refresh_option" msgstr "opción_refresh" -#: sql_help.c:1161 sql_help.c:2799 +#: sql_help.c:1177 sql_help.c:2816 msgid "subscription_parameter" msgstr "parámetro_de_suscripción" -#: sql_help.c:1164 +#: sql_help.c:1180 msgid "skip_option" msgstr "opción_skip" -#: sql_help.c:1324 sql_help.c:1327 +#: sql_help.c:1340 sql_help.c:1343 msgid "partition_name" msgstr "nombre_de_partición" -#: sql_help.c:1325 sql_help.c:2349 sql_help.c:2930 +#: sql_help.c:1341 sql_help.c:2370 sql_help.c:2947 msgid "partition_bound_spec" msgstr "borde_de_partición" -#: sql_help.c:1344 sql_help.c:1394 sql_help.c:2944 +#: sql_help.c:1362 sql_help.c:1412 sql_help.c:2961 msgid "sequence_options" msgstr "opciones_de_secuencia" -#: sql_help.c:1346 +#: sql_help.c:1364 msgid "sequence_option" msgstr "opción_de_secuencia" -#: sql_help.c:1360 +#: sql_help.c:1378 msgid "table_constraint_using_index" msgstr "restricción_de_tabla_con_índice" -#: sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 +#: sql_help.c:1386 sql_help.c:1387 sql_help.c:1388 sql_help.c:1389 msgid "rewrite_rule_name" msgstr "nombre_regla_de_reescritura" -#: sql_help.c:1383 sql_help.c:2361 sql_help.c:2969 +#: sql_help.c:1401 sql_help.c:2382 sql_help.c:2986 msgid "and partition_bound_spec is:" msgstr "y borde_de_partición es:" -#: sql_help.c:1384 sql_help.c:1385 sql_help.c:1386 sql_help.c:2362 -#: sql_help.c:2363 sql_help.c:2364 sql_help.c:2970 sql_help.c:2971 -#: sql_help.c:2972 +#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1404 sql_help.c:2383 +#: sql_help.c:2384 sql_help.c:2385 sql_help.c:2987 sql_help.c:2988 +#: sql_help.c:2989 msgid "partition_bound_expr" msgstr "expresión_de_borde_de_partición" -#: sql_help.c:1387 sql_help.c:1388 sql_help.c:2365 sql_help.c:2366 -#: sql_help.c:2973 sql_help.c:2974 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:2386 sql_help.c:2387 +#: sql_help.c:2990 sql_help.c:2991 msgid "numeric_literal" msgstr "literal_numérico" -#: sql_help.c:1389 +#: sql_help.c:1407 msgid "and column_constraint is:" msgstr "donde restricción_de_columna es:" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2397 sql_help.c:2606 -#: sql_help.c:2942 +#: sql_help.c:1410 sql_help.c:2377 sql_help.c:2418 sql_help.c:2627 +#: sql_help.c:2959 msgid "default_expr" msgstr "expr_por_omisión" -#: sql_help.c:1393 sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:1411 sql_help.c:2378 sql_help.c:2960 msgid "generation_expr" msgstr "expr_de_generación" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1405 sql_help.c:1407 -#: sql_help.c:1411 sql_help.c:2945 sql_help.c:2946 sql_help.c:2955 -#: sql_help.c:2957 sql_help.c:2961 +#: sql_help.c:1413 sql_help.c:1414 sql_help.c:1423 sql_help.c:1425 +#: sql_help.c:1429 sql_help.c:2962 sql_help.c:2963 sql_help.c:2972 +#: sql_help.c:2974 sql_help.c:2978 msgid "index_parameters" msgstr "parámetros_de_índice" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1415 sql_help.c:1432 sql_help.c:2964 sql_help.c:2981 msgid "reftable" msgstr "tabla_ref" -#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2948 sql_help.c:2965 +#: sql_help.c:1416 sql_help.c:1433 sql_help.c:2965 sql_help.c:2982 msgid "refcolumn" msgstr "columna_ref" -#: sql_help.c:1399 sql_help.c:1400 sql_help.c:1416 sql_help.c:1417 -#: sql_help.c:2949 sql_help.c:2950 sql_help.c:2966 sql_help.c:2967 +#: sql_help.c:1417 sql_help.c:1418 sql_help.c:1434 sql_help.c:1435 +#: sql_help.c:2966 sql_help.c:2967 sql_help.c:2983 sql_help.c:2984 msgid "referential_action" msgstr "acción_referencial" -#: sql_help.c:1401 sql_help.c:2358 sql_help.c:2951 +#: sql_help.c:1419 sql_help.c:2379 sql_help.c:2968 msgid "and table_constraint is:" msgstr "y restricción_de_tabla es:" -#: sql_help.c:1409 sql_help.c:2959 +#: sql_help.c:1427 sql_help.c:2976 msgid "exclude_element" msgstr "elemento_de_exclusión" -#: sql_help.c:1410 sql_help.c:2960 sql_help.c:4572 sql_help.c:4675 -#: sql_help.c:4829 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1428 sql_help.c:2977 sql_help.c:4604 sql_help.c:4708 +#: sql_help.c:4862 sql_help.c:5038 sql_help.c:5107 msgid "operator" msgstr "operador" -#: sql_help.c:1412 sql_help.c:2477 sql_help.c:2962 +#: sql_help.c:1430 sql_help.c:2498 sql_help.c:2979 msgid "predicate" msgstr "predicado" -#: sql_help.c:1418 +#: sql_help.c:1436 msgid "and table_constraint_using_index is:" msgstr "y restricción_de_tabla_con_índice es:" -#: sql_help.c:1421 sql_help.c:2975 +#: sql_help.c:1439 sql_help.c:2992 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "parámetros_de_índice en UNIQUE, PRIMARY KEY y EXCLUDE son:" -#: sql_help.c:1426 sql_help.c:2980 +#: sql_help.c:1444 sql_help.c:2997 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "elemento_de_exclusión en una restricción EXCLUDE es:" -#: sql_help.c:1429 sql_help.c:2470 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:2983 sql_help.c:4001 +#: sql_help.c:1448 sql_help.c:2491 sql_help.c:2924 sql_help.c:2937 +#: sql_help.c:2951 sql_help.c:3001 sql_help.c:4022 msgid "opclass" msgstr "clase_de_ops" -#: sql_help.c:1430 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:2492 sql_help.c:3002 +msgid "opclass_parameter" +msgstr "parámetro_opclass" + +#: sql_help.c:1451 sql_help.c:3004 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "acción_referencial en una restricción FOREIGN KEY/REFERENCES es:" -#: sql_help.c:1448 sql_help.c:1451 sql_help.c:3021 +#: sql_help.c:1469 sql_help.c:1472 sql_help.c:3041 msgid "tablespace_option" msgstr "opción_de_tablespace" -#: sql_help.c:1472 sql_help.c:1475 sql_help.c:1481 sql_help.c:1485 +#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1502 sql_help.c:1506 msgid "token_type" msgstr "tipo_de_token" -#: sql_help.c:1473 sql_help.c:1476 +#: sql_help.c:1494 sql_help.c:1497 msgid "dictionary_name" msgstr "nombre_diccionario" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1499 sql_help.c:1503 msgid "old_dictionary" msgstr "diccionario_antiguo" -#: sql_help.c:1479 sql_help.c:1483 +#: sql_help.c:1500 sql_help.c:1504 msgid "new_dictionary" msgstr "diccionario_nuevo" -#: sql_help.c:1578 sql_help.c:1592 sql_help.c:1595 sql_help.c:1596 -#: sql_help.c:3174 +#: sql_help.c:1599 sql_help.c:1613 sql_help.c:1616 sql_help.c:1617 +#: sql_help.c:3194 msgid "attribute_name" msgstr "nombre_atributo" -#: sql_help.c:1579 +#: sql_help.c:1600 msgid "new_attribute_name" msgstr "nuevo_nombre_atributo" -#: sql_help.c:1583 sql_help.c:1587 +#: sql_help.c:1604 sql_help.c:1608 msgid "new_enum_value" msgstr "nuevo_valor_enum" -#: sql_help.c:1584 +#: sql_help.c:1605 msgid "neighbor_enum_value" msgstr "valor_enum_vecino" -#: sql_help.c:1586 +#: sql_help.c:1607 msgid "existing_enum_value" msgstr "valor_enum_existente" -#: sql_help.c:1589 +#: sql_help.c:1610 msgid "property" msgstr "propiedad" -#: sql_help.c:1665 sql_help.c:2341 sql_help.c:2350 sql_help.c:2756 -#: sql_help.c:3254 sql_help.c:3705 sql_help.c:3911 sql_help.c:3957 -#: sql_help.c:4363 +#: sql_help.c:1686 sql_help.c:2362 sql_help.c:2371 sql_help.c:2773 +#: sql_help.c:3274 sql_help.c:3725 sql_help.c:3932 sql_help.c:3978 +#: sql_help.c:4395 msgid "server_name" msgstr "nombre_de_servidor" -#: sql_help.c:1697 sql_help.c:1700 sql_help.c:3269 +#: sql_help.c:1718 sql_help.c:1721 sql_help.c:3289 msgid "view_option_name" msgstr "nombre_opción_de_vista" -#: sql_help.c:1698 sql_help.c:3270 +#: sql_help.c:1719 sql_help.c:3290 msgid "view_option_value" msgstr "valor_opción_de_vista" -#: sql_help.c:1720 sql_help.c:1721 sql_help.c:4974 sql_help.c:4975 +#: sql_help.c:1740 sql_help.c:5007 msgid "table_and_columns" msgstr "tabla_y_columnas" -#: sql_help.c:1722 sql_help.c:1786 sql_help.c:1978 sql_help.c:3754 -#: sql_help.c:4198 sql_help.c:4976 +#: sql_help.c:1741 sql_help.c:1801 sql_help.c:1995 sql_help.c:3774 +#: sql_help.c:4230 sql_help.c:5008 msgid "where option can be one of:" msgstr "donde opción puede ser una de:" -#: sql_help.c:1723 sql_help.c:1724 sql_help.c:1787 sql_help.c:1980 -#: sql_help.c:1984 sql_help.c:2164 sql_help.c:3755 sql_help.c:3756 -#: sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 sql_help.c:3760 -#: sql_help.c:3761 sql_help.c:3762 sql_help.c:3763 sql_help.c:4199 -#: sql_help.c:4201 sql_help.c:4977 sql_help.c:4978 sql_help.c:4979 -#: sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 sql_help.c:4983 -#: sql_help.c:4984 sql_help.c:4985 sql_help.c:4987 sql_help.c:4988 +#: sql_help.c:1742 sql_help.c:1743 sql_help.c:1802 sql_help.c:1997 +#: sql_help.c:2001 sql_help.c:2183 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:3777 sql_help.c:3778 sql_help.c:3779 sql_help.c:3780 +#: sql_help.c:3781 sql_help.c:3782 sql_help.c:3783 sql_help.c:3784 +#: sql_help.c:4231 sql_help.c:4233 sql_help.c:5009 sql_help.c:5010 +#: sql_help.c:5011 sql_help.c:5012 sql_help.c:5013 sql_help.c:5014 +#: sql_help.c:5015 sql_help.c:5016 sql_help.c:5017 sql_help.c:5019 +#: sql_help.c:5020 msgid "boolean" msgstr "booleano" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1744 sql_help.c:5021 msgid "size" msgstr "tamaño" -#: sql_help.c:1726 sql_help.c:4990 +#: sql_help.c:1745 sql_help.c:5022 msgid "and table_and_columns is:" msgstr "y tabla_y_columnas es:" -#: sql_help.c:1742 sql_help.c:4736 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1761 sql_help.c:4769 sql_help.c:4771 sql_help.c:4795 msgid "transaction_mode" msgstr "modo_de_transacción" -#: sql_help.c:1743 sql_help.c:4739 sql_help.c:4763 +#: sql_help.c:1762 sql_help.c:4772 sql_help.c:4796 msgid "where transaction_mode is one of:" msgstr "donde modo_de_transacción es uno de:" -#: sql_help.c:1752 sql_help.c:4582 sql_help.c:4591 sql_help.c:4595 -#: sql_help.c:4599 sql_help.c:4602 sql_help.c:4839 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4856 sql_help.c:4859 sql_help.c:5085 -#: sql_help.c:5094 sql_help.c:5098 sql_help.c:5102 sql_help.c:5105 +#: sql_help.c:1771 sql_help.c:4614 sql_help.c:4623 sql_help.c:4627 +#: sql_help.c:4631 sql_help.c:4634 sql_help.c:4872 sql_help.c:4881 +#: sql_help.c:4885 sql_help.c:4889 sql_help.c:4892 sql_help.c:5117 +#: sql_help.c:5126 sql_help.c:5130 sql_help.c:5134 sql_help.c:5137 msgid "argument" msgstr "argumento" -#: sql_help.c:1852 +#: sql_help.c:1867 msgid "relation_name" msgstr "nombre_relación" -#: sql_help.c:1857 sql_help.c:3905 sql_help.c:4357 +#: sql_help.c:1872 sql_help.c:3926 sql_help.c:4389 msgid "domain_name" msgstr "nombre_de_dominio" -#: sql_help.c:1879 +#: sql_help.c:1894 msgid "policy_name" msgstr "nombre_de_política" -#: sql_help.c:1892 +#: sql_help.c:1907 msgid "rule_name" msgstr "nombre_regla" -#: sql_help.c:1911 sql_help.c:4496 +#: sql_help.c:1926 sql_help.c:4528 msgid "string_literal" msgstr "literal_de_cadena" -#: sql_help.c:1936 sql_help.c:4160 sql_help.c:4410 +#: sql_help.c:1951 sql_help.c:4192 sql_help.c:4442 msgid "transaction_id" msgstr "id_de_transacción" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:4027 +#: sql_help.c:1985 sql_help.c:1992 sql_help.c:4048 msgid "filename" msgstr "nombre_de_archivo" -#: sql_help.c:1969 sql_help.c:1976 sql_help.c:2695 sql_help.c:2696 -#: sql_help.c:2697 +#: sql_help.c:1986 sql_help.c:1993 sql_help.c:2712 sql_help.c:2713 +#: sql_help.c:2714 msgid "command" msgstr "orden" -#: sql_help.c:1971 sql_help.c:2694 sql_help.c:3124 sql_help.c:3305 -#: sql_help.c:4011 sql_help.c:4088 sql_help.c:4091 sql_help.c:4565 -#: sql_help.c:4567 sql_help.c:4668 sql_help.c:4670 sql_help.c:4822 -#: sql_help.c:4824 sql_help.c:4940 sql_help.c:5068 sql_help.c:5070 +#: sql_help.c:1988 sql_help.c:2711 sql_help.c:3144 sql_help.c:3325 +#: sql_help.c:4032 sql_help.c:4115 sql_help.c:4118 sql_help.c:4121 +#: sql_help.c:4597 sql_help.c:4599 sql_help.c:4701 sql_help.c:4703 +#: sql_help.c:4855 sql_help.c:4857 sql_help.c:4974 sql_help.c:5100 +#: sql_help.c:5102 msgid "condition" msgstr "condición" -#: sql_help.c:1974 sql_help.c:2511 sql_help.c:3007 sql_help.c:3271 -#: sql_help.c:3289 sql_help.c:3992 +#: sql_help.c:1991 sql_help.c:2532 sql_help.c:3027 sql_help.c:3291 +#: sql_help.c:3309 sql_help.c:4013 msgid "query" msgstr "consulta" -#: sql_help.c:1979 +#: sql_help.c:1996 msgid "format_name" msgstr "nombre_de_formato" -#: sql_help.c:1981 +#: sql_help.c:1998 msgid "delimiter_character" msgstr "carácter_delimitador" -#: sql_help.c:1982 +#: sql_help.c:1999 msgid "null_string" msgstr "cadena_null" -#: sql_help.c:1983 +#: sql_help.c:2000 msgid "default_string" msgstr "cadena_por_omisión" -#: sql_help.c:1985 +#: sql_help.c:2002 msgid "quote_character" msgstr "carácter_de_comilla" -#: sql_help.c:1986 +#: sql_help.c:2003 msgid "escape_character" msgstr "carácter_de_escape" -#: sql_help.c:1990 +#: sql_help.c:2007 +msgid "error_action" +msgstr "acción_en_error" + +#: sql_help.c:2008 msgid "encoding_name" msgstr "nombre_codificación" -#: sql_help.c:2001 +#: sql_help.c:2009 +msgid "verbosity" +msgstr "verbosidad" + +#: sql_help.c:2020 msgid "access_method_type" msgstr "tipo_de_método_de_acceso" -#: sql_help.c:2072 sql_help.c:2091 sql_help.c:2094 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2113 msgid "arg_data_type" msgstr "tipo_de_dato_arg" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2092 sql_help.c:2114 sql_help.c:2122 msgid "sfunc" msgstr "func_transición" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2093 sql_help.c:2115 sql_help.c:2123 msgid "state_data_type" msgstr "tipo_de_dato_de_estado" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2094 sql_help.c:2116 sql_help.c:2124 msgid "state_data_size" msgstr "tamaño_de_dato_de_estado" -#: sql_help.c:2076 sql_help.c:2098 sql_help.c:2106 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "ffunc" msgstr "func_final" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2096 sql_help.c:2126 msgid "combinefunc" msgstr "func_combinación" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2097 sql_help.c:2127 msgid "serialfunc" msgstr "func_serial" -#: sql_help.c:2079 sql_help.c:2109 +#: sql_help.c:2098 sql_help.c:2128 msgid "deserialfunc" msgstr "func_deserial" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2110 +#: sql_help.c:2099 sql_help.c:2118 sql_help.c:2129 msgid "initial_condition" msgstr "condición_inicial" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2100 sql_help.c:2130 msgid "msfunc" msgstr "func_transición_m" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2101 sql_help.c:2131 msgid "minvfunc" msgstr "func_inv_m" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2102 sql_help.c:2132 msgid "mstate_data_type" msgstr "tipo_de_dato_de_estado_m" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2103 sql_help.c:2133 msgid "mstate_data_size" msgstr "tamaño_de_dato_de_estado_m" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2104 sql_help.c:2134 msgid "mffunc" msgstr "func_final_m" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2105 sql_help.c:2135 msgid "minitial_condition" msgstr "condición_inicial_m" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2106 sql_help.c:2136 msgid "sort_operator" msgstr "operador_de_ordenamiento" -#: sql_help.c:2100 +#: sql_help.c:2119 msgid "or the old syntax" msgstr "o la sintaxis antigua" -#: sql_help.c:2102 +#: sql_help.c:2121 msgid "base_type" msgstr "tipo_base" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2179 sql_help.c:2229 msgid "locale" msgstr "configuración regional" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2180 sql_help.c:2230 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2162 sql_help.c:2211 +#: sql_help.c:2181 sql_help.c:2231 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2163 sql_help.c:4463 +#: sql_help.c:2182 sql_help.c:4495 msgid "provider" msgstr "proveedor" -#: sql_help.c:2165 +#: sql_help.c:2184 msgid "rules" msgstr "reglas" -#: sql_help.c:2166 sql_help.c:2271 +#: sql_help.c:2185 sql_help.c:2292 msgid "version" msgstr "versión" -#: sql_help.c:2168 +#: sql_help.c:2187 msgid "existing_collation" msgstr "ordenamiento_existente" -#: sql_help.c:2178 +#: sql_help.c:2197 msgid "source_encoding" msgstr "codificación_origen" -#: sql_help.c:2179 +#: sql_help.c:2198 msgid "dest_encoding" msgstr "codificación_destino" -#: sql_help.c:2206 sql_help.c:3047 +#: sql_help.c:2226 sql_help.c:3067 msgid "template" msgstr "plantilla" -#: sql_help.c:2207 +#: sql_help.c:2227 msgid "encoding" msgstr "codificación" -#: sql_help.c:2208 +#: sql_help.c:2228 msgid "strategy" msgstr "estrategia" -#: sql_help.c:2212 +#: sql_help.c:2232 +msgid "builtin_locale" +msgstr "locale_builtin" + +#: sql_help.c:2233 msgid "icu_locale" msgstr "locale_icu" -#: sql_help.c:2213 +#: sql_help.c:2234 msgid "icu_rules" msgstr "reglas_icu" -#: sql_help.c:2214 +#: sql_help.c:2235 msgid "locale_provider" msgstr "proveedor_locale" -#: sql_help.c:2215 +#: sql_help.c:2236 msgid "collation_version" msgstr "versión_ordenamiento" -#: sql_help.c:2220 +#: sql_help.c:2241 msgid "oid" msgstr "oid" -#: sql_help.c:2240 -msgid "constraint" -msgstr "restricción" - -#: sql_help.c:2241 -msgid "where constraint is:" -msgstr "donde restricción es:" - -#: sql_help.c:2255 sql_help.c:2692 sql_help.c:3120 +#: sql_help.c:2276 sql_help.c:2709 sql_help.c:3140 msgid "event" msgstr "evento" -#: sql_help.c:2256 +#: sql_help.c:2277 msgid "filter_variable" msgstr "variable_de_filtrado" -#: sql_help.c:2257 +#: sql_help.c:2278 msgid "filter_value" msgstr "valor_de_filtrado" -#: sql_help.c:2353 sql_help.c:2939 +#: sql_help.c:2374 sql_help.c:2956 msgid "where column_constraint is:" msgstr "donde restricción_de_columna es:" -#: sql_help.c:2398 +#: sql_help.c:2419 msgid "rettype" msgstr "tipo_ret" -#: sql_help.c:2400 +#: sql_help.c:2421 msgid "column_type" msgstr "tipo_columna" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2430 sql_help.c:2633 msgid "definition" msgstr "definición" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2431 sql_help.c:2634 msgid "obj_file" msgstr "archivo_obj" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2432 sql_help.c:2635 msgid "link_symbol" msgstr "símbolo_enlace" -#: sql_help.c:2412 sql_help.c:2615 +#: sql_help.c:2433 sql_help.c:2636 msgid "sql_body" msgstr "contenido_sql" -#: sql_help.c:2450 sql_help.c:2677 sql_help.c:3243 +#: sql_help.c:2471 sql_help.c:2694 sql_help.c:3263 msgid "uid" msgstr "uid" -#: sql_help.c:2466 sql_help.c:2507 sql_help.c:2908 sql_help.c:2921 -#: sql_help.c:2935 sql_help.c:3003 +#: sql_help.c:2487 sql_help.c:2528 sql_help.c:2925 sql_help.c:2938 +#: sql_help.c:2952 sql_help.c:3023 msgid "method" msgstr "método" -#: sql_help.c:2471 -msgid "opclass_parameter" -msgstr "parámetro_opclass" - -#: sql_help.c:2488 +#: sql_help.c:2509 msgid "call_handler" msgstr "manejador_de_llamada" -#: sql_help.c:2489 +#: sql_help.c:2510 msgid "inline_handler" msgstr "manejador_en_línea" -#: sql_help.c:2490 +#: sql_help.c:2511 msgid "valfunction" msgstr "función_val" -#: sql_help.c:2529 -msgid "com_op" -msgstr "op_conm" - -#: sql_help.c:2530 -msgid "neg_op" -msgstr "op_neg" - -#: sql_help.c:2548 +#: sql_help.c:2569 msgid "family_name" msgstr "nombre_familia" -#: sql_help.c:2559 +#: sql_help.c:2580 msgid "storage_type" msgstr "tipo_almacenamiento" -#: sql_help.c:2698 sql_help.c:3127 +#: sql_help.c:2715 sql_help.c:3147 msgid "where event can be one of:" msgstr "donde evento puede ser una de:" -#: sql_help.c:2718 sql_help.c:2720 +#: sql_help.c:2735 sql_help.c:2737 msgid "schema_element" msgstr "elemento_de_esquema" -#: sql_help.c:2757 +#: sql_help.c:2774 msgid "server_type" msgstr "tipo_de_servidor" -#: sql_help.c:2758 +#: sql_help.c:2775 msgid "server_version" msgstr "versión_de_servidor" -#: sql_help.c:2759 sql_help.c:3908 sql_help.c:4360 +#: sql_help.c:2776 sql_help.c:3929 sql_help.c:4392 msgid "fdw_name" msgstr "nombre_fdw" -#: sql_help.c:2776 sql_help.c:2779 +#: sql_help.c:2793 sql_help.c:2796 msgid "statistics_name" msgstr "nombre_de_estadística" -#: sql_help.c:2780 +#: sql_help.c:2797 msgid "statistics_kind" msgstr "tipo_de_estadística" -#: sql_help.c:2796 +#: sql_help.c:2813 msgid "subscription_name" msgstr "nombre_de_suscripción" -#: sql_help.c:2901 +#: sql_help.c:2918 msgid "source_table" msgstr "tabla_origen" -#: sql_help.c:2902 +#: sql_help.c:2919 msgid "like_option" msgstr "opción_de_like" -#: sql_help.c:2968 +#: sql_help.c:2985 msgid "and like_option is:" msgstr "y opción_de_like es:" -#: sql_help.c:3020 +#: sql_help.c:3040 msgid "directory" msgstr "directorio" -#: sql_help.c:3034 +#: sql_help.c:3054 msgid "parser_name" msgstr "nombre_de_parser" -#: sql_help.c:3035 +#: sql_help.c:3055 msgid "source_config" msgstr "config_origen" -#: sql_help.c:3064 +#: sql_help.c:3084 msgid "start_function" msgstr "función_inicio" -#: sql_help.c:3065 +#: sql_help.c:3085 msgid "gettoken_function" msgstr "función_gettoken" -#: sql_help.c:3066 +#: sql_help.c:3086 msgid "end_function" msgstr "función_fin" -#: sql_help.c:3067 +#: sql_help.c:3087 msgid "lextypes_function" msgstr "función_lextypes" -#: sql_help.c:3068 +#: sql_help.c:3088 msgid "headline_function" msgstr "función_headline" -#: sql_help.c:3080 +#: sql_help.c:3100 msgid "init_function" msgstr "función_init" -#: sql_help.c:3081 +#: sql_help.c:3101 msgid "lexize_function" msgstr "función_lexize" -#: sql_help.c:3094 +#: sql_help.c:3114 msgid "from_sql_function_name" msgstr "nombre_de_función_from" -#: sql_help.c:3096 +#: sql_help.c:3116 msgid "to_sql_function_name" msgstr "nombre_de_función_to" -#: sql_help.c:3122 +#: sql_help.c:3142 msgid "referenced_table_name" msgstr "nombre_tabla_referenciada" -#: sql_help.c:3123 +#: sql_help.c:3143 msgid "transition_relation_name" msgstr "nombre_de_relación_de_transición" -#: sql_help.c:3126 +#: sql_help.c:3146 msgid "arguments" msgstr "argumentos" -#: sql_help.c:3178 +#: sql_help.c:3198 msgid "label" msgstr "etiqueta" -#: sql_help.c:3180 +#: sql_help.c:3200 msgid "subtype" msgstr "subtipo" -#: sql_help.c:3181 +#: sql_help.c:3201 msgid "subtype_operator_class" msgstr "clase_de_operador_del_subtipo" -#: sql_help.c:3183 +#: sql_help.c:3203 msgid "canonical_function" msgstr "función_canónica" -#: sql_help.c:3184 +#: sql_help.c:3204 msgid "subtype_diff_function" msgstr "función_diff_del_subtipo" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "multirange_type_name" msgstr "nombre_de_tipo_de_multirango" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "input_function" msgstr "función_entrada" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "output_function" msgstr "función_salida" -#: sql_help.c:3189 +#: sql_help.c:3209 msgid "receive_function" msgstr "función_receive" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "send_function" msgstr "función_send" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "type_modifier_input_function" msgstr "función_entrada_del_modificador_de_tipo" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "type_modifier_output_function" msgstr "función_salida_del_modificador_de_tipo" -#: sql_help.c:3193 +#: sql_help.c:3213 msgid "analyze_function" msgstr "función_analyze" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "subscript_function" msgstr "función_de_subíndice" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "internallength" msgstr "largo_interno" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "alignment" msgstr "alineamiento" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "storage" msgstr "almacenamiento" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "like_type" msgstr "como_tipo" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "category" msgstr "categoría" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "preferred" msgstr "preferido" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "default" msgstr "valor_por_omisión" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "element" msgstr "elemento" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "delimiter" msgstr "delimitador" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "collatable" msgstr "ordenable" -#: sql_help.c:3301 sql_help.c:3987 sql_help.c:4077 sql_help.c:4560 -#: sql_help.c:4662 sql_help.c:4817 sql_help.c:4930 sql_help.c:5063 +#: sql_help.c:3321 sql_help.c:4008 sql_help.c:4102 sql_help.c:4592 +#: sql_help.c:4695 sql_help.c:4850 sql_help.c:4964 sql_help.c:5095 msgid "with_query" msgstr "consulta_with" -#: sql_help.c:3303 sql_help.c:3989 sql_help.c:4579 sql_help.c:4585 -#: sql_help.c:4588 sql_help.c:4592 sql_help.c:4596 sql_help.c:4604 -#: sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 sql_help.c:4849 -#: sql_help.c:4853 sql_help.c:4861 sql_help.c:4932 sql_help.c:5082 -#: sql_help.c:5088 sql_help.c:5091 sql_help.c:5095 sql_help.c:5099 -#: sql_help.c:5107 +#: sql_help.c:3323 sql_help.c:4010 sql_help.c:4611 sql_help.c:4617 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4628 sql_help.c:4636 +#: sql_help.c:4869 sql_help.c:4875 sql_help.c:4878 sql_help.c:4882 +#: sql_help.c:4886 sql_help.c:4894 sql_help.c:4966 sql_help.c:5114 +#: sql_help.c:5120 sql_help.c:5123 sql_help.c:5127 sql_help.c:5131 +#: sql_help.c:5139 msgid "alias" msgstr "alias" -#: sql_help.c:3304 sql_help.c:4564 sql_help.c:4606 sql_help.c:4608 -#: sql_help.c:4612 sql_help.c:4614 sql_help.c:4615 sql_help.c:4616 -#: sql_help.c:4667 sql_help.c:4821 sql_help.c:4863 sql_help.c:4865 -#: sql_help.c:4869 sql_help.c:4871 sql_help.c:4872 sql_help.c:4873 -#: sql_help.c:4939 sql_help.c:5067 sql_help.c:5109 sql_help.c:5111 -#: sql_help.c:5115 sql_help.c:5117 sql_help.c:5118 sql_help.c:5119 +#: sql_help.c:3324 sql_help.c:4596 sql_help.c:4638 sql_help.c:4640 +#: sql_help.c:4644 sql_help.c:4646 sql_help.c:4647 sql_help.c:4648 +#: sql_help.c:4700 sql_help.c:4854 sql_help.c:4896 sql_help.c:4898 +#: sql_help.c:4902 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4973 sql_help.c:5099 sql_help.c:5141 sql_help.c:5143 +#: sql_help.c:5147 sql_help.c:5149 sql_help.c:5150 sql_help.c:5151 msgid "from_item" msgstr "item_de_from" -#: sql_help.c:3306 sql_help.c:3789 sql_help.c:4127 sql_help.c:4941 +#: sql_help.c:3326 sql_help.c:3810 sql_help.c:4159 sql_help.c:4975 msgid "cursor_name" msgstr "nombre_de_cursor" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4942 +#: sql_help.c:3327 sql_help.c:4016 sql_help.c:4108 sql_help.c:4976 msgid "output_expression" msgstr "expresión_de_salida" -#: sql_help.c:3308 sql_help.c:3996 sql_help.c:4563 sql_help.c:4665 -#: sql_help.c:4820 sql_help.c:4943 sql_help.c:5066 +#: sql_help.c:3328 sql_help.c:4017 sql_help.c:4109 sql_help.c:4595 +#: sql_help.c:4698 sql_help.c:4853 sql_help.c:4977 sql_help.c:5098 msgid "output_name" msgstr "nombre_de_salida" -#: sql_help.c:3324 +#: sql_help.c:3344 msgid "code" msgstr "código" -#: sql_help.c:3729 +#: sql_help.c:3749 msgid "parameter" msgstr "parámetro" -#: sql_help.c:3752 sql_help.c:3753 sql_help.c:4152 +#: sql_help.c:3773 sql_help.c:4184 msgid "statement" msgstr "sentencia" -#: sql_help.c:3788 sql_help.c:4126 +#: sql_help.c:3809 sql_help.c:4158 msgid "direction" msgstr "dirección" -#: sql_help.c:3790 sql_help.c:4128 +#: sql_help.c:3811 sql_help.c:4160 msgid "where direction can be one of:" msgstr "donde dirección puede ser una de:" -#: sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 sql_help.c:3794 -#: sql_help.c:3795 sql_help.c:4129 sql_help.c:4130 sql_help.c:4131 -#: sql_help.c:4132 sql_help.c:4133 sql_help.c:4573 sql_help.c:4575 -#: sql_help.c:4676 sql_help.c:4678 sql_help.c:4830 sql_help.c:4832 -#: sql_help.c:5007 sql_help.c:5009 sql_help.c:5076 sql_help.c:5078 +#: sql_help.c:3812 sql_help.c:3813 sql_help.c:3814 sql_help.c:3815 +#: sql_help.c:3816 sql_help.c:4161 sql_help.c:4162 sql_help.c:4163 +#: sql_help.c:4164 sql_help.c:4165 sql_help.c:4605 sql_help.c:4607 +#: sql_help.c:4709 sql_help.c:4711 sql_help.c:4863 sql_help.c:4865 +#: sql_help.c:5039 sql_help.c:5041 sql_help.c:5108 sql_help.c:5110 msgid "count" msgstr "cantidad" -#: sql_help.c:3898 sql_help.c:4350 +#: sql_help.c:3919 sql_help.c:4382 msgid "sequence_name" msgstr "nombre_secuencia" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3937 sql_help.c:4400 msgid "arg_name" msgstr "nombre_arg" -#: sql_help.c:3917 sql_help.c:4369 +#: sql_help.c:3938 sql_help.c:4401 msgid "arg_type" msgstr "tipo_arg" -#: sql_help.c:3924 sql_help.c:4376 +#: sql_help.c:3945 sql_help.c:4408 msgid "loid" msgstr "loid" -#: sql_help.c:3955 +#: sql_help.c:3976 msgid "remote_schema" msgstr "esquema_remoto" -#: sql_help.c:3958 +#: sql_help.c:3979 msgid "local_schema" msgstr "esquema_local" -#: sql_help.c:3993 +#: sql_help.c:4014 msgid "conflict_target" msgstr "destino_de_conflict" -#: sql_help.c:3994 +#: sql_help.c:4015 msgid "conflict_action" msgstr "acción_de_conflict" -#: sql_help.c:3997 +#: sql_help.c:4018 msgid "where conflict_target can be one of:" msgstr "donde destino_de_conflict puede ser uno de:" -#: sql_help.c:3998 +#: sql_help.c:4019 msgid "index_column_name" msgstr "nombre_de_columna_de_índice" -#: sql_help.c:3999 +#: sql_help.c:4020 msgid "index_expression" msgstr "expresión_de_índice" -#: sql_help.c:4002 +#: sql_help.c:4023 msgid "index_predicate" msgstr "predicado_de_índice" -#: sql_help.c:4004 +#: sql_help.c:4025 msgid "and conflict_action is one of:" msgstr "donde acción_de_conflict es una de:" -#: sql_help.c:4010 sql_help.c:4938 +#: sql_help.c:4031 sql_help.c:4132 sql_help.c:4972 msgid "sub-SELECT" msgstr "sub-SELECT" -#: sql_help.c:4019 sql_help.c:4141 sql_help.c:4914 +#: sql_help.c:4040 sql_help.c:4173 sql_help.c:4948 msgid "channel" msgstr "canal" -#: sql_help.c:4041 +#: sql_help.c:4062 msgid "lockmode" msgstr "modo_bloqueo" -#: sql_help.c:4042 +#: sql_help.c:4063 msgid "where lockmode is one of:" msgstr "donde modo_bloqueo es uno de:" -#: sql_help.c:4078 +#: sql_help.c:4103 msgid "target_table_name" msgstr "nombre_de_tabla_destino" -#: sql_help.c:4079 +#: sql_help.c:4104 msgid "target_alias" msgstr "alias_de_destino" -#: sql_help.c:4080 +#: sql_help.c:4105 msgid "data_source" msgstr "origin_de_datos" -#: sql_help.c:4081 sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4106 sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "join_condition" msgstr "condición_de_join" -#: sql_help.c:4082 +#: sql_help.c:4107 msgid "when_clause" msgstr "cláusula_when" -#: sql_help.c:4083 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "donde origen_de_datos es:" -#: sql_help.c:4084 +#: sql_help.c:4111 msgid "source_table_name" msgstr "nombre_tabla_origen" -#: sql_help.c:4085 +#: sql_help.c:4112 msgid "source_query" msgstr "consulta_origen" -#: sql_help.c:4086 +#: sql_help.c:4113 msgid "source_alias" msgstr "alias_origen" -#: sql_help.c:4087 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "y cláusula_when es:" -#: sql_help.c:4089 +#: sql_help.c:4116 sql_help.c:4119 msgid "merge_update" msgstr "update_de_merge" -#: sql_help.c:4090 +#: sql_help.c:4117 sql_help.c:4120 msgid "merge_delete" msgstr "delete_de_merge" -#: sql_help.c:4092 +#: sql_help.c:4122 msgid "merge_insert" msgstr "insert_de_merge" -#: sql_help.c:4093 +#: sql_help.c:4123 msgid "and merge_insert is:" msgstr "y insert_de_merge es:" -#: sql_help.c:4096 +#: sql_help.c:4126 msgid "and merge_update is:" msgstr "y update_de_merge es:" -#: sql_help.c:4101 +#: sql_help.c:4133 msgid "and merge_delete is:" msgstr "y delete_de_merge es:" -#: sql_help.c:4142 +#: sql_help.c:4174 msgid "payload" msgstr "carga" -#: sql_help.c:4169 +#: sql_help.c:4201 msgid "old_role" msgstr "rol_antiguo" -#: sql_help.c:4170 +#: sql_help.c:4202 msgid "new_role" msgstr "rol_nuevo" -#: sql_help.c:4209 sql_help.c:4418 sql_help.c:4426 +#: sql_help.c:4241 sql_help.c:4450 sql_help.c:4458 msgid "savepoint_name" msgstr "nombre_de_savepoint" -#: sql_help.c:4566 sql_help.c:4624 sql_help.c:4823 sql_help.c:4881 -#: sql_help.c:5069 sql_help.c:5127 +#: sql_help.c:4598 sql_help.c:4656 sql_help.c:4856 sql_help.c:4914 +#: sql_help.c:5101 sql_help.c:5159 msgid "grouping_element" msgstr "elemento_agrupante" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4600 sql_help.c:4704 sql_help.c:4858 sql_help.c:5103 msgid "window_name" msgstr "nombre_de_ventana" -#: sql_help.c:4569 sql_help.c:4672 sql_help.c:4826 sql_help.c:5072 +#: sql_help.c:4601 sql_help.c:4705 sql_help.c:4859 sql_help.c:5104 msgid "window_definition" msgstr "definición_de_ventana" -#: sql_help.c:4570 sql_help.c:4584 sql_help.c:4628 sql_help.c:4673 -#: sql_help.c:4827 sql_help.c:4841 sql_help.c:4885 sql_help.c:5073 -#: sql_help.c:5087 sql_help.c:5131 +#: sql_help.c:4602 sql_help.c:4616 sql_help.c:4660 sql_help.c:4706 +#: sql_help.c:4860 sql_help.c:4874 sql_help.c:4918 sql_help.c:5105 +#: sql_help.c:5119 sql_help.c:5163 msgid "select" msgstr "select" -#: sql_help.c:4577 sql_help.c:4834 sql_help.c:5080 +#: sql_help.c:4608 sql_help.c:4866 sql_help.c:5111 +msgid "from_reference" +msgstr "referencia_en_from" + +#: sql_help.c:4609 sql_help.c:4867 sql_help.c:5112 msgid "where from_item can be one of:" msgstr "donde item_de_from puede ser uno de:" -#: sql_help.c:4580 sql_help.c:4586 sql_help.c:4589 sql_help.c:4593 -#: sql_help.c:4605 sql_help.c:4837 sql_help.c:4843 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4862 sql_help.c:5083 sql_help.c:5089 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5108 +#: sql_help.c:4612 sql_help.c:4618 sql_help.c:4621 sql_help.c:4625 +#: sql_help.c:4637 sql_help.c:4870 sql_help.c:4876 sql_help.c:4879 +#: sql_help.c:4883 sql_help.c:4895 sql_help.c:5115 sql_help.c:5121 +#: sql_help.c:5124 sql_help.c:5128 sql_help.c:5140 msgid "column_alias" msgstr "alias_de_columna" -#: sql_help.c:4581 sql_help.c:4838 sql_help.c:5084 +#: sql_help.c:4613 sql_help.c:4871 sql_help.c:5116 msgid "sampling_method" msgstr "método_de_sampleo" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5086 +#: sql_help.c:4615 sql_help.c:4873 sql_help.c:5118 msgid "seed" msgstr "semilla" -#: sql_help.c:4587 sql_help.c:4626 sql_help.c:4844 sql_help.c:4883 -#: sql_help.c:5090 sql_help.c:5129 +#: sql_help.c:4619 sql_help.c:4658 sql_help.c:4877 sql_help.c:4916 +#: sql_help.c:5122 sql_help.c:5161 msgid "with_query_name" msgstr "nombre_consulta_with" -#: sql_help.c:4597 sql_help.c:4600 sql_help.c:4603 sql_help.c:4854 -#: sql_help.c:4857 sql_help.c:4860 sql_help.c:5100 sql_help.c:5103 -#: sql_help.c:5106 +#: sql_help.c:4629 sql_help.c:4632 sql_help.c:4635 sql_help.c:4887 +#: sql_help.c:4890 sql_help.c:4893 sql_help.c:5132 sql_help.c:5135 +#: sql_help.c:5138 msgid "column_definition" msgstr "definición_de_columna" -#: sql_help.c:4607 sql_help.c:4613 sql_help.c:4864 sql_help.c:4870 -#: sql_help.c:5110 sql_help.c:5116 +#: sql_help.c:4639 sql_help.c:4645 sql_help.c:4897 sql_help.c:4903 +#: sql_help.c:5142 sql_help.c:5148 msgid "join_type" msgstr "tipo_de_join" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4642 sql_help.c:4900 sql_help.c:5145 msgid "join_column" msgstr "columna_de_join" -#: sql_help.c:4611 sql_help.c:4868 sql_help.c:5114 +#: sql_help.c:4643 sql_help.c:4901 sql_help.c:5146 msgid "join_using_alias" msgstr "join_con_alias" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5120 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and grouping_element can be one of:" msgstr "donde elemento_agrupante puede ser una de:" -#: sql_help.c:4625 sql_help.c:4882 sql_help.c:5128 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 msgid "and with_query is:" msgstr "y consulta_with es:" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "values" msgstr "valores" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "insert" msgstr "insert" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "update" msgstr "update" -#: sql_help.c:4632 sql_help.c:4889 sql_help.c:5135 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "delete" msgstr "delete" -#: sql_help.c:4634 sql_help.c:4891 sql_help.c:5137 +#: sql_help.c:4665 sql_help.c:4923 sql_help.c:5168 +msgid "merge" +msgstr "merge" + +#: sql_help.c:4667 sql_help.c:4925 sql_help.c:5170 msgid "search_seq_col_name" msgstr "nombre_col_para_sec_de_búsqueda" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4669 sql_help.c:4927 sql_help.c:5172 msgid "cycle_mark_col_name" msgstr "nombre_col_para_marca_de_ciclo" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 msgid "cycle_mark_value" msgstr "valor_marca_de_ciclo" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 msgid "cycle_mark_default" msgstr "valor_predet_marca_de_ciclo" -#: sql_help.c:4639 sql_help.c:4896 sql_help.c:5142 +#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 msgid "cycle_path_col_name" msgstr "nombre_col_para_ruta_de_ciclo" -#: sql_help.c:4666 +#: sql_help.c:4699 msgid "new_table" msgstr "nueva_tabla" -#: sql_help.c:4737 +#: sql_help.c:4770 msgid "snapshot_id" msgstr "id_de_snapshot" -#: sql_help.c:5005 +#: sql_help.c:5037 msgid "sort_expression" msgstr "expresión_orden" -#: sql_help.c:5149 sql_help.c:6133 +#: sql_help.c:5182 sql_help.c:6166 msgid "abort the current transaction" msgstr "aborta la transacción en curso" -#: sql_help.c:5155 +#: sql_help.c:5188 msgid "change the definition of an aggregate function" msgstr "cambia la definición de una función de agregación" -#: sql_help.c:5161 +#: sql_help.c:5194 msgid "change the definition of a collation" msgstr "cambia la definición de un ordenamiento" -#: sql_help.c:5167 +#: sql_help.c:5200 msgid "change the definition of a conversion" msgstr "cambia la definición de una conversión" -#: sql_help.c:5173 +#: sql_help.c:5206 msgid "change a database" msgstr "cambia una base de datos" -#: sql_help.c:5179 +#: sql_help.c:5212 msgid "define default access privileges" msgstr "define privilegios de acceso por omisión" -#: sql_help.c:5185 +#: sql_help.c:5218 msgid "change the definition of a domain" msgstr "cambia la definición de un dominio" -#: sql_help.c:5191 +#: sql_help.c:5224 msgid "change the definition of an event trigger" msgstr "cambia la definición de un disparador por evento" -#: sql_help.c:5197 +#: sql_help.c:5230 msgid "change the definition of an extension" msgstr "cambia la definición de una extensión" -#: sql_help.c:5203 +#: sql_help.c:5236 msgid "change the definition of a foreign-data wrapper" msgstr "cambia la definición de un conector de datos externos" -#: sql_help.c:5209 +#: sql_help.c:5242 msgid "change the definition of a foreign table" msgstr "cambia la definición de una tabla foránea" -#: sql_help.c:5215 +#: sql_help.c:5248 msgid "change the definition of a function" msgstr "cambia la definición de una función" -#: sql_help.c:5221 +#: sql_help.c:5254 msgid "change role name or membership" msgstr "cambiar nombre del rol o membresía" -#: sql_help.c:5227 +#: sql_help.c:5260 msgid "change the definition of an index" msgstr "cambia la definición de un índice" -#: sql_help.c:5233 +#: sql_help.c:5266 msgid "change the definition of a procedural language" msgstr "cambia la definición de un lenguaje procedural" -#: sql_help.c:5239 +#: sql_help.c:5272 msgid "change the definition of a large object" msgstr "cambia la definición de un objeto grande" -#: sql_help.c:5245 +#: sql_help.c:5278 msgid "change the definition of a materialized view" msgstr "cambia la definición de una vista materializada" -#: sql_help.c:5251 +#: sql_help.c:5284 msgid "change the definition of an operator" msgstr "cambia la definición de un operador" -#: sql_help.c:5257 +#: sql_help.c:5290 msgid "change the definition of an operator class" msgstr "cambia la definición de una clase de operadores" -#: sql_help.c:5263 +#: sql_help.c:5296 msgid "change the definition of an operator family" msgstr "cambia la definición de una familia de operadores" -#: sql_help.c:5269 +#: sql_help.c:5302 msgid "change the definition of a row-level security policy" msgstr "cambia la definición de una política de seguridad a nivel de registros" -#: sql_help.c:5275 +#: sql_help.c:5308 msgid "change the definition of a procedure" msgstr "cambia la definición de un procedimiento" -#: sql_help.c:5281 +#: sql_help.c:5314 msgid "change the definition of a publication" msgstr "cambia la definición de una publicación" -#: sql_help.c:5287 sql_help.c:5389 +#: sql_help.c:5320 sql_help.c:5422 msgid "change a database role" msgstr "cambia un rol de la base de datos" -#: sql_help.c:5293 +#: sql_help.c:5326 msgid "change the definition of a routine" msgstr "cambia la definición de una rutina" -#: sql_help.c:5299 +#: sql_help.c:5332 msgid "change the definition of a rule" msgstr "cambia la definición de una regla" -#: sql_help.c:5305 +#: sql_help.c:5338 msgid "change the definition of a schema" msgstr "cambia la definición de un esquema" -#: sql_help.c:5311 +#: sql_help.c:5344 msgid "change the definition of a sequence generator" msgstr "cambia la definición de un generador secuencial" -#: sql_help.c:5317 +#: sql_help.c:5350 msgid "change the definition of a foreign server" msgstr "cambia la definición de un servidor foráneo" -#: sql_help.c:5323 +#: sql_help.c:5356 msgid "change the definition of an extended statistics object" msgstr "cambia la definición de un objeto de estadísticas extendidas" -#: sql_help.c:5329 +#: sql_help.c:5362 msgid "change the definition of a subscription" msgstr "cambia la definición de una suscripción" -#: sql_help.c:5335 +#: sql_help.c:5368 msgid "change a server configuration parameter" msgstr "cambia un parámetro de configuración del servidor" -#: sql_help.c:5341 +#: sql_help.c:5374 msgid "change the definition of a table" msgstr "cambia la definición de una tabla" -#: sql_help.c:5347 +#: sql_help.c:5380 msgid "change the definition of a tablespace" msgstr "cambia la definición de un tablespace" -#: sql_help.c:5353 +#: sql_help.c:5386 msgid "change the definition of a text search configuration" msgstr "cambia la definición de una configuración de búsqueda en texto" -#: sql_help.c:5359 +#: sql_help.c:5392 msgid "change the definition of a text search dictionary" msgstr "cambia la definición de un diccionario de búsqueda en texto" -#: sql_help.c:5365 +#: sql_help.c:5398 msgid "change the definition of a text search parser" msgstr "cambia la definición de un analizador de búsqueda en texto" -#: sql_help.c:5371 +#: sql_help.c:5404 msgid "change the definition of a text search template" msgstr "cambia la definición de una plantilla de búsqueda en texto" -#: sql_help.c:5377 +#: sql_help.c:5410 msgid "change the definition of a trigger" msgstr "cambia la definición de un disparador" -#: sql_help.c:5383 +#: sql_help.c:5416 msgid "change the definition of a type" msgstr "cambia la definición de un tipo" -#: sql_help.c:5395 +#: sql_help.c:5428 msgid "change the definition of a user mapping" msgstr "cambia la definición de un mapeo de usuario" -#: sql_help.c:5401 +#: sql_help.c:5434 msgid "change the definition of a view" msgstr "cambia la definición de una vista" -#: sql_help.c:5407 +#: sql_help.c:5440 msgid "collect statistics about a database" msgstr "recolecta estadísticas sobre una base de datos" -#: sql_help.c:5413 sql_help.c:6211 +#: sql_help.c:5446 sql_help.c:6244 msgid "start a transaction block" msgstr "inicia un bloque de transacción" -#: sql_help.c:5419 +#: sql_help.c:5452 msgid "invoke a procedure" msgstr "invocar un procedimiento" -#: sql_help.c:5425 +#: sql_help.c:5458 msgid "force a write-ahead log checkpoint" msgstr "fuerza un checkpoint de wal" -#: sql_help.c:5431 +#: sql_help.c:5464 msgid "close a cursor" msgstr "cierra un cursor" -#: sql_help.c:5437 +#: sql_help.c:5470 msgid "cluster a table according to an index" msgstr "reordena una tabla siguiendo un índice" -#: sql_help.c:5443 +#: sql_help.c:5476 msgid "define or change the comment of an object" msgstr "define o cambia un comentario sobre un objeto" -#: sql_help.c:5449 sql_help.c:6007 +#: sql_help.c:5482 sql_help.c:6040 msgid "commit the current transaction" msgstr "compromete la transacción en curso" -#: sql_help.c:5455 +#: sql_help.c:5488 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "confirma una transacción que fue preparada para two-phase commit" -#: sql_help.c:5461 +#: sql_help.c:5494 msgid "copy data between a file and a table" msgstr "copia datos entre un archivo y una tabla" -#: sql_help.c:5467 +#: sql_help.c:5500 msgid "define a new access method" msgstr "define un nuevo método de acceso" -#: sql_help.c:5473 +#: sql_help.c:5506 msgid "define a new aggregate function" msgstr "define una nueva función de agregación" -#: sql_help.c:5479 +#: sql_help.c:5512 msgid "define a new cast" msgstr "define una nueva conversión de tipo" -#: sql_help.c:5485 +#: sql_help.c:5518 msgid "define a new collation" msgstr "define un nuevo ordenamiento" -#: sql_help.c:5491 +#: sql_help.c:5524 msgid "define a new encoding conversion" msgstr "define una nueva conversión de codificación" -#: sql_help.c:5497 +#: sql_help.c:5530 msgid "create a new database" msgstr "crea una nueva base de datos" -#: sql_help.c:5503 +#: sql_help.c:5536 msgid "define a new domain" msgstr "define un nuevo dominio" -#: sql_help.c:5509 +#: sql_help.c:5542 msgid "define a new event trigger" msgstr "define un nuevo disparador por evento" -#: sql_help.c:5515 +#: sql_help.c:5548 msgid "install an extension" msgstr "instala una extensión" -#: sql_help.c:5521 +#: sql_help.c:5554 msgid "define a new foreign-data wrapper" msgstr "define un nuevo conector de datos externos" -#: sql_help.c:5527 +#: sql_help.c:5560 msgid "define a new foreign table" msgstr "define una nueva tabla foránea" -#: sql_help.c:5533 +#: sql_help.c:5566 msgid "define a new function" msgstr "define una nueva función" -#: sql_help.c:5539 sql_help.c:5599 sql_help.c:5701 +#: sql_help.c:5572 sql_help.c:5632 sql_help.c:5734 msgid "define a new database role" msgstr "define un nuevo rol de la base de datos" -#: sql_help.c:5545 +#: sql_help.c:5578 msgid "define a new index" msgstr "define un nuevo índice" -#: sql_help.c:5551 +#: sql_help.c:5584 msgid "define a new procedural language" msgstr "define un nuevo lenguaje procedural" -#: sql_help.c:5557 +#: sql_help.c:5590 msgid "define a new materialized view" msgstr "define una nueva vista materializada" -#: sql_help.c:5563 +#: sql_help.c:5596 msgid "define a new operator" msgstr "define un nuevo operador" -#: sql_help.c:5569 +#: sql_help.c:5602 msgid "define a new operator class" msgstr "define una nueva clase de operadores" -#: sql_help.c:5575 +#: sql_help.c:5608 msgid "define a new operator family" msgstr "define una nueva familia de operadores" -#: sql_help.c:5581 +#: sql_help.c:5614 msgid "define a new row-level security policy for a table" msgstr "define una nueva política de seguridad a nivel de registros para una tabla" -#: sql_help.c:5587 +#: sql_help.c:5620 msgid "define a new procedure" msgstr "define un nuevo procedimiento" -#: sql_help.c:5593 +#: sql_help.c:5626 msgid "define a new publication" msgstr "define una nueva publicación" -#: sql_help.c:5605 +#: sql_help.c:5638 msgid "define a new rewrite rule" msgstr "define una nueva regla de reescritura" -#: sql_help.c:5611 +#: sql_help.c:5644 msgid "define a new schema" msgstr "define un nuevo esquema" -#: sql_help.c:5617 +#: sql_help.c:5650 msgid "define a new sequence generator" msgstr "define un nuevo generador secuencial" -#: sql_help.c:5623 +#: sql_help.c:5656 msgid "define a new foreign server" msgstr "define un nuevo servidor foráneo" -#: sql_help.c:5629 +#: sql_help.c:5662 msgid "define extended statistics" msgstr "define estadísticas extendidas" -#: sql_help.c:5635 +#: sql_help.c:5668 msgid "define a new subscription" msgstr "define una nueva suscripción" -#: sql_help.c:5641 +#: sql_help.c:5674 msgid "define a new table" msgstr "define una nueva tabla" -#: sql_help.c:5647 sql_help.c:6169 +#: sql_help.c:5680 sql_help.c:6202 msgid "define a new table from the results of a query" msgstr "crea una nueva tabla usando los resultados de una consulta" -#: sql_help.c:5653 +#: sql_help.c:5686 msgid "define a new tablespace" msgstr "define un nuevo tablespace" -#: sql_help.c:5659 +#: sql_help.c:5692 msgid "define a new text search configuration" msgstr "define una nueva configuración de búsqueda en texto" -#: sql_help.c:5665 +#: sql_help.c:5698 msgid "define a new text search dictionary" msgstr "define un nuevo diccionario de búsqueda en texto" -#: sql_help.c:5671 +#: sql_help.c:5704 msgid "define a new text search parser" msgstr "define un nuevo analizador de búsqueda en texto" -#: sql_help.c:5677 +#: sql_help.c:5710 msgid "define a new text search template" msgstr "define una nueva plantilla de búsqueda en texto" -#: sql_help.c:5683 +#: sql_help.c:5716 msgid "define a new transform" msgstr "define una nueva transformación" -#: sql_help.c:5689 +#: sql_help.c:5722 msgid "define a new trigger" msgstr "define un nuevo disparador" -#: sql_help.c:5695 +#: sql_help.c:5728 msgid "define a new data type" msgstr "define un nuevo tipo de datos" -#: sql_help.c:5707 +#: sql_help.c:5740 msgid "define a new mapping of a user to a foreign server" msgstr "define un nuevo mapa de usuario a servidor foráneo" -#: sql_help.c:5713 +#: sql_help.c:5746 msgid "define a new view" msgstr "define una nueva vista" -#: sql_help.c:5719 +#: sql_help.c:5752 msgid "deallocate a prepared statement" msgstr "elimina una sentencia preparada" -#: sql_help.c:5725 +#: sql_help.c:5758 msgid "define a cursor" msgstr "define un nuevo cursor" -#: sql_help.c:5731 +#: sql_help.c:5764 msgid "delete rows of a table" msgstr "elimina filas de una tabla" -#: sql_help.c:5737 +#: sql_help.c:5770 msgid "discard session state" msgstr "descartar datos de la sesión" -#: sql_help.c:5743 +#: sql_help.c:5776 msgid "execute an anonymous code block" msgstr "ejecutar un bloque anónimo de código" -#: sql_help.c:5749 +#: sql_help.c:5782 msgid "remove an access method" msgstr "elimina un método de acceso" -#: sql_help.c:5755 +#: sql_help.c:5788 msgid "remove an aggregate function" msgstr "elimina una función de agregación" -#: sql_help.c:5761 +#: sql_help.c:5794 msgid "remove a cast" msgstr "elimina una conversión de tipo" -#: sql_help.c:5767 +#: sql_help.c:5800 msgid "remove a collation" msgstr "elimina un ordenamiento" -#: sql_help.c:5773 +#: sql_help.c:5806 msgid "remove a conversion" msgstr "elimina una conversión de codificación" -#: sql_help.c:5779 +#: sql_help.c:5812 msgid "remove a database" msgstr "elimina una base de datos" -#: sql_help.c:5785 +#: sql_help.c:5818 msgid "remove a domain" msgstr "elimina un dominio" -#: sql_help.c:5791 +#: sql_help.c:5824 msgid "remove an event trigger" msgstr "elimina un disparador por evento" -#: sql_help.c:5797 +#: sql_help.c:5830 msgid "remove an extension" msgstr "elimina una extensión" -#: sql_help.c:5803 +#: sql_help.c:5836 msgid "remove a foreign-data wrapper" msgstr "elimina un conector de datos externos" -#: sql_help.c:5809 +#: sql_help.c:5842 msgid "remove a foreign table" msgstr "elimina una tabla foránea" -#: sql_help.c:5815 +#: sql_help.c:5848 msgid "remove a function" msgstr "elimina una función" -#: sql_help.c:5821 sql_help.c:5887 sql_help.c:5989 +#: sql_help.c:5854 sql_help.c:5920 sql_help.c:6022 msgid "remove a database role" msgstr "elimina un rol de base de datos" -#: sql_help.c:5827 +#: sql_help.c:5860 msgid "remove an index" msgstr "elimina un índice" -#: sql_help.c:5833 +#: sql_help.c:5866 msgid "remove a procedural language" msgstr "elimina un lenguaje procedural" -#: sql_help.c:5839 +#: sql_help.c:5872 msgid "remove a materialized view" msgstr "elimina una vista materializada" -#: sql_help.c:5845 +#: sql_help.c:5878 msgid "remove an operator" msgstr "elimina un operador" -#: sql_help.c:5851 +#: sql_help.c:5884 msgid "remove an operator class" msgstr "elimina una clase de operadores" -#: sql_help.c:5857 +#: sql_help.c:5890 msgid "remove an operator family" msgstr "elimina una familia de operadores" -#: sql_help.c:5863 +#: sql_help.c:5896 msgid "remove database objects owned by a database role" msgstr "elimina objetos de propiedad de un rol de la base de datos" -#: sql_help.c:5869 +#: sql_help.c:5902 msgid "remove a row-level security policy from a table" msgstr "elimina una política de seguridad a nivel de registros de una tabla" -#: sql_help.c:5875 +#: sql_help.c:5908 msgid "remove a procedure" msgstr "elimina un procedimiento" -#: sql_help.c:5881 +#: sql_help.c:5914 msgid "remove a publication" msgstr "elimina una publicación" -#: sql_help.c:5893 +#: sql_help.c:5926 msgid "remove a routine" msgstr "elimina una rutina" -#: sql_help.c:5899 +#: sql_help.c:5932 msgid "remove a rewrite rule" msgstr "elimina una regla de reescritura" -#: sql_help.c:5905 +#: sql_help.c:5938 msgid "remove a schema" msgstr "elimina un esquema" -#: sql_help.c:5911 +#: sql_help.c:5944 msgid "remove a sequence" msgstr "elimina un generador secuencial" -#: sql_help.c:5917 +#: sql_help.c:5950 msgid "remove a foreign server descriptor" msgstr "elimina un descriptor de servidor foráneo" -#: sql_help.c:5923 +#: sql_help.c:5956 msgid "remove extended statistics" msgstr "elimina estadísticas extendidas" -#: sql_help.c:5929 +#: sql_help.c:5962 msgid "remove a subscription" msgstr "elimina una suscripción" -#: sql_help.c:5935 +#: sql_help.c:5968 msgid "remove a table" msgstr "elimina una tabla" -#: sql_help.c:5941 +#: sql_help.c:5974 msgid "remove a tablespace" msgstr "elimina un tablespace" -#: sql_help.c:5947 +#: sql_help.c:5980 msgid "remove a text search configuration" msgstr "elimina una configuración de búsqueda en texto" -#: sql_help.c:5953 +#: sql_help.c:5986 msgid "remove a text search dictionary" msgstr "elimina un diccionario de búsqueda en texto" -#: sql_help.c:5959 +#: sql_help.c:5992 msgid "remove a text search parser" msgstr "elimina un analizador de búsqueda en texto" -#: sql_help.c:5965 +#: sql_help.c:5998 msgid "remove a text search template" msgstr "elimina una plantilla de búsqueda en texto" -#: sql_help.c:5971 +#: sql_help.c:6004 msgid "remove a transform" msgstr "elimina una transformación" -#: sql_help.c:5977 +#: sql_help.c:6010 msgid "remove a trigger" msgstr "elimina un disparador" -#: sql_help.c:5983 +#: sql_help.c:6016 msgid "remove a data type" msgstr "elimina un tipo de datos" -#: sql_help.c:5995 +#: sql_help.c:6028 msgid "remove a user mapping for a foreign server" msgstr "elimina un mapeo de usuario para un servidor remoto" -#: sql_help.c:6001 +#: sql_help.c:6034 msgid "remove a view" msgstr "elimina una vista" -#: sql_help.c:6013 +#: sql_help.c:6046 msgid "execute a prepared statement" msgstr "ejecuta una sentencia preparada" -#: sql_help.c:6019 +#: sql_help.c:6052 msgid "show the execution plan of a statement" msgstr "muestra el plan de ejecución de una sentencia" -#: sql_help.c:6025 +#: sql_help.c:6058 msgid "retrieve rows from a query using a cursor" msgstr "recupera filas de una consulta usando un cursor" -#: sql_help.c:6031 +#: sql_help.c:6064 msgid "define access privileges" msgstr "define privilegios de acceso" -#: sql_help.c:6037 +#: sql_help.c:6070 msgid "import table definitions from a foreign server" msgstr "importa definiciones de tablas desde un servidor foráneo" -#: sql_help.c:6043 +#: sql_help.c:6076 msgid "create new rows in a table" msgstr "crea nuevas filas en una tabla" -#: sql_help.c:6049 +#: sql_help.c:6082 msgid "listen for a notification" msgstr "escucha notificaciones" -#: sql_help.c:6055 +#: sql_help.c:6088 msgid "load a shared library file" msgstr "carga un archivo de biblioteca compartida" -#: sql_help.c:6061 +#: sql_help.c:6094 msgid "lock a table" msgstr "bloquea una tabla" -#: sql_help.c:6067 +#: sql_help.c:6100 msgid "conditionally insert, update, or delete rows of a table" msgstr "condicionalmente inserta, actualiza o elimina filas de una tabla" -#: sql_help.c:6073 +#: sql_help.c:6106 msgid "position a cursor" msgstr "reposiciona un cursor" -#: sql_help.c:6079 +#: sql_help.c:6112 msgid "generate a notification" msgstr "genera una notificación" -#: sql_help.c:6085 +#: sql_help.c:6118 msgid "prepare a statement for execution" msgstr "prepara una sentencia para ejecución" -#: sql_help.c:6091 +#: sql_help.c:6124 msgid "prepare the current transaction for two-phase commit" msgstr "prepara la transacción actual para two-phase commit" -#: sql_help.c:6097 +#: sql_help.c:6130 msgid "change the ownership of database objects owned by a database role" msgstr "cambia de dueño a los objetos de propiedad de un rol de la base de datos" -#: sql_help.c:6103 +#: sql_help.c:6136 msgid "replace the contents of a materialized view" msgstr "reemplaza los contenidos de una vista materializada" -#: sql_help.c:6109 +#: sql_help.c:6142 msgid "rebuild indexes" msgstr "reconstruye índices" -#: sql_help.c:6115 +#: sql_help.c:6148 msgid "release a previously defined savepoint" msgstr "libera un “savepoint” definido previamente" -#: sql_help.c:6121 +#: sql_help.c:6154 msgid "restore the value of a run-time parameter to the default value" msgstr "restaura el valor de un parámetro de configuración al valor inicial" -#: sql_help.c:6127 +#: sql_help.c:6160 msgid "remove access privileges" msgstr "revoca privilegios de acceso" -#: sql_help.c:6139 +#: sql_help.c:6172 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "cancela una transacción que fue previamente preparada para two-phase commit" -#: sql_help.c:6145 +#: sql_help.c:6178 msgid "roll back to a savepoint" msgstr "descartar hacia un “savepoint”" -#: sql_help.c:6151 +#: sql_help.c:6184 msgid "define a new savepoint within the current transaction" msgstr "define un nuevo ”savepoint” en la transacción en curso" -#: sql_help.c:6157 +#: sql_help.c:6190 msgid "define or change a security label applied to an object" msgstr "define o cambia una etiqueta de seguridad sobre un objeto" -#: sql_help.c:6163 sql_help.c:6217 sql_help.c:6253 +#: sql_help.c:6196 sql_help.c:6250 sql_help.c:6286 msgid "retrieve rows from a table or view" msgstr "recupera filas desde una tabla o vista" -#: sql_help.c:6175 +#: sql_help.c:6208 msgid "change a run-time parameter" msgstr "cambia un parámetro de configuración" -#: sql_help.c:6181 +#: sql_help.c:6214 msgid "set constraint check timing for the current transaction" msgstr "define el modo de verificación de las restricciones de la transacción en curso" -#: sql_help.c:6187 +#: sql_help.c:6220 msgid "set the current user identifier of the current session" msgstr "define el identificador de usuario actual de la sesión actual" -#: sql_help.c:6193 +#: sql_help.c:6226 msgid "set the session user identifier and the current user identifier of the current session" msgstr "" "define el identificador del usuario de sesión y el identificador\n" "del usuario actual de la sesión en curso" -#: sql_help.c:6199 +#: sql_help.c:6232 msgid "set the characteristics of the current transaction" msgstr "define las características de la transacción en curso" -#: sql_help.c:6205 +#: sql_help.c:6238 msgid "show the value of a run-time parameter" msgstr "muestra el valor de un parámetro de configuración" -#: sql_help.c:6223 +#: sql_help.c:6256 msgid "empty a table or set of tables" msgstr "vacía una tabla o conjunto de tablas" -#: sql_help.c:6229 +#: sql_help.c:6262 msgid "stop listening for a notification" msgstr "deja de escuchar una notificación" -#: sql_help.c:6235 +#: sql_help.c:6268 msgid "update rows of a table" msgstr "actualiza filas de una tabla" -#: sql_help.c:6241 +#: sql_help.c:6274 msgid "garbage-collect and optionally analyze a database" msgstr "recolecta basura y opcionalmente estadísticas sobre una base de datos" -#: sql_help.c:6247 +#: sql_help.c:6280 msgid "compute a set of rows" msgstr "calcula un conjunto de registros" @@ -6464,7 +6541,7 @@ msgstr "se ignoró argumento extra «%s» en línea de órdenes" msgid "could not find own program executable" msgstr "no se pudo encontrar el ejecutable propio" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "" "tab completion query failed: %s\n" diff --git a/src/bin/psql/po/fr.po b/src/bin/psql/po/fr.po index 676d05a031a0f..1d5fb8c7b6ccc 100644 --- a/src/bin/psql/po/fr.po +++ b/src/bin/psql/po/fr.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-07-29 09:17+0000\n" -"PO-Revision-Date: 2023-09-05 09:52+0200\n" +"POT-Creation-Date: 2025-02-05 00:48+0000\n" +"PO-Revision-Date: 2025-02-05 09:06+0100\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -20,7 +20,7 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -42,33 +42,48 @@ msgstr "détail : " msgid "hint: " msgstr "astuce : " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "binaire « %s » invalide : %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "n'a pas pu lire le binaire « %s » : %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "n'a pas pu trouver un « %s » à exécuter" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "n'a pas pu résoudre le chemin « %s » en sa forme absolue : %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "n'a pas pu exécuter la commande « %s » : %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "n'a pas pu lire à partir de la commande « %s » : %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "aucune donnée n'a été renvoyée par la commande « %s »" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "échec de %s() : %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -90,7 +105,7 @@ msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" msgid "could not look up effective user ID %ld: %s" msgstr "n'a pas pu trouver l'identifiant réel %ld de l'utilisateur : %s" -#: ../../common/username.c:45 command.c:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "l'utilisateur n'existe pas" @@ -129,11 +144,11 @@ msgstr "le processus fils a été terminé par le signal %d : %s" msgid "child process exited with unrecognized status %d" msgstr "le processus fils a quitté avec un statut %d non reconnu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Requête d'annulation envoyée\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "N'a pas pu envoyer la requête d'annulation : " @@ -149,316 +164,341 @@ msgstr[1] "(%lu lignes)" msgid "Interrupted\n" msgstr "Interrompu\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Ne peut pas afficher le contenu de la table : le nombre de cellules %lld est égal à ou dépasse le maximum %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" "Ne peut pas ajouter l'en-tête au contenu de la table : le nombre de colonnes\n" "%d est dépassé.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" msgstr "" "Ne peut pas ajouter une cellule au contenu de la table : le nombre total des\n" -"cellules %d est dépassé.\n" +"cellules %lld est dépassé.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "format de sortie invalide (erreur interne) : %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "ignore l'expansion récursive de la variable « %s »" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "n'a pas pu rechercher l'identifiant de l'utilisateur local %d : %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "l'utilisateur local dont l'identifiant est %d n'existe pas" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "commande \\%s invalide" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "Essayez \\? pour l'aide." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s : argument « %s » supplémentaire ignoré" -#: command.c:306 +#: command.c:307 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "commande \\%s ignorée ; utilisez \\endif ou Ctrl-C pour quitter le bloc \\if courant" -#: command.c:611 +#: command.c:614 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "n'a pas pu obtenir le répertoire principal pour l'identifiant d'utilisateur %ld : %s" -#: command.c:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s : n'a pas pu accéder au répertoire « %s » : %m" -#: command.c:654 +#: command.c:657 #, c-format msgid "You are currently not connected to a database.\n" msgstr "Vous n'êtes pas connecté à une base de données.\n" -#: command.c:664 +#: command.c:667 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Vous êtes connecté à la base de données « %s » en tant qu'utilisateur « %s » à l'adresse « %s » via le port « %s ».\n" -#: command.c:667 +#: command.c:670 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Vous êtes connecté à la base de données « %s » en tant qu'utilisateur « %s » via le socket dans « %s » via le port « %s ».\n" -#: command.c:673 +#: command.c:676 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%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 » (adresse « %s ») via le port « %s ».\n" -#: command.c:676 +#: command.c:679 #, c-format 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:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2675 #, c-format msgid "no query buffer" msgstr "aucun tampon de requête" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5776 #, c-format msgid "invalid line number: %s" msgstr "numéro de ligne invalide : %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "Aucun changement" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s : nom d'encodage invalide ou procédure de conversion introuvable" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:720 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5882 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1375 msgid "There is no previous error." msgstr "Il n'y a pas d'erreur précédente." -#: command.c:1470 +#: command.c:1488 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: parenthèse droite manquante" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 +#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s : argument requis manquant" -#: command.c:1815 +#: command.c:1822 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif : ne peut pas survenir après \\else" -#: command.c:1820 +#: command.c:1827 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif : pas de \\if correspondant" -#: command.c:1884 +#: command.c:1891 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else : ne peut pas survenir après \\else" -#: command.c:1889 +#: command.c:1896 #, c-format msgid "\\else: no matching \\if" msgstr "\\else : pas de \\if correspondant" -#: command.c:1929 +#: command.c:1936 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif : pas de \\if correspondant" -#: command.c:2085 +#: command.c:2092 msgid "Query buffer is empty." msgstr "Le tampon de requête est vide." -#: command.c:2128 +#: command.c:2135 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Saisir le nouveau mot de passe de l'utilisateur « %s » : " -#: command.c:2132 +#: command.c:2139 msgid "Enter it again: " msgstr "Saisir le mot de passe à nouveau : " -#: command.c:2141 +#: command.c:2148 #, c-format msgid "Passwords didn't match." msgstr "Les mots de passe ne sont pas identiques." -#: command.c:2238 +#: command.c:2231 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s : n'a pas pu lire la valeur pour la variable" -#: command.c:2340 +#: command.c:2333 msgid "Query buffer reset (cleared)." msgstr "Le tampon de requête a été effacé." -#: command.c:2362 +#: command.c:2355 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Historique sauvegardé dans le fichier « %s ».\n" -#: command.c:2449 +#: command.c:2442 #, 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:2497 +#: command.c:2490 #, c-format msgid "function name is required" msgstr "le nom de la fonction est requis" -#: command.c:2499 +#: command.c:2492 #, c-format msgid "view name is required" msgstr "le nom de la vue est requis" -#: command.c:2621 +#: command.c:2614 msgid "Timing is on." msgstr "Chronométrage activé." -#: command.c:2623 +#: command.c:2616 msgid "Timing is off." msgstr "Chronométrage désactivé." -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 +#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 +#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s : %m" -#: command.c:2736 copy.c:388 +#: command.c:2729 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s : %s" -#: command.c:2806 command.c:2852 +#: command.c:2801 command.c:2867 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch : la valeur d'intervalle est spécifiée plus d'une fois" -#: command.c:2816 command.c:2862 +#: command.c:2811 command.c:2877 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch : valeur d'intervalle incorrecte « %s »" -#: command.c:2826 +#: command.c:2821 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: le nombre d'itération est spécifié plus d'une fois" -#: command.c:2836 +#: command.c:2831 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch : nombre d'itération incorrect « %s »" -#: command.c:2843 +#: command.c:2841 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: nombre de lignes minimum spécifié plus d'une fois" + +#: command.c:2851 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch : nombre de lignes minimum incorrect « %s »" + +#: command.c:2858 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch : paramètre « %s » non reconnu" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3255 startup.c:243 startup.c:293 msgid "Password: " msgstr "Mot de passe : " -#: command.c:3241 startup.c:290 +#: command.c:3260 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Mot de passe pour l'utilisateur %s : " -#: command.c:3297 +#: command.c:3316 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "Ne pas donner utilisateur, hôte ou port lors de l'utilisation d'une chaîne de connexion" -#: command.c:3332 +#: command.c:3351 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "Aucune connexion de base existante pour réutiliser ses paramètres" -#: command.c:3638 +#: command.c:3658 #, c-format msgid "Previous connection kept" msgstr "Connexion précédente conservée" -#: command.c:3644 +#: command.c:3664 #, c-format msgid "\\connect: %s" msgstr "\\connect : %s" -#: command.c:3700 +#: command.c:3720 #, 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:3703 +#: command.c:3723 #, 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:3709 +#: command.c:3729 #, 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:3712 +#: command.c:3732 #, 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:3717 +#: command.c:3737 #, 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:3757 +#: command.c:3843 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, serveur %s)\n" -#: command.c:3770 +#: command.c:3856 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -467,29 +507,33 @@ msgstr "" "ATTENTION : %s version majeure %s, version majeure du serveur %s.\n" " Certaines fonctionnalités de psql pourraient ne pas fonctionner.\n" -#: command.c:3807 +#: command.c:3895 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "Connexion SSL (protocole : %s, chiffrement : %s, compression : %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "Connexion SSL (protocole : %s, chiffrement : %s, compression : %s, ALPN : %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3896 command.c:3897 msgid "unknown" msgstr "inconnu" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "off" msgstr "désactivé" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "on" msgstr "activé" -#: command.c:3824 +#: command.c:3899 +msgid "none" +msgstr "aucun" + +#: command.c:3913 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "connexion chiffrée avec GSSAPI\n" -#: command.c:3844 +#: command.c:3933 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -501,289 +545,289 @@ msgstr "" " Voir la section « Notes aux utilisateurs de Windows » de la page\n" " référence de psql pour les détails.\n" -#: command.c:3949 +#: command.c:4038 #, 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:3979 +#: command.c:4068 #, c-format msgid "could not start editor \"%s\"" msgstr "n'a pas pu exécuter l'éditeur « %s »" -#: command.c:3981 +#: command.c:4070 #, c-format msgid "could not start /bin/sh" msgstr "n'a pas pu exécuter /bin/sh" -#: command.c:4031 +#: command.c:4120 #, c-format msgid "could not locate temporary directory: %s" msgstr "n'a pas pu localiser le répertoire temporaire : %s" -#: command.c:4058 +#: command.c:4147 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "n'a pas pu ouvrir le fichier temporaire « %s » : %m" -#: command.c:4394 +#: command.c:4483 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" -msgstr "\\pset: abréviation ambigüe : « %s » correspond à « %s » comme à « %s »" +msgstr "\\pset: abréviation ambiguë : « %s » correspond à « %s » comme à « %s »" -#: command.c:4414 +#: command.c:4503 #, 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:4433 +#: command.c:4522 #, 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:4448 +#: command.c:4537 #, 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:4463 +#: command.c:4552 #, 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:4478 +#: command.c:4567 #, 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:4530 +#: command.c:4619 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: les valeurs acceptées pour xheader_width sont « %s » (par défaut), « %s », « %s » ou un nombre indiquant la largeur exacte" -#: command.c:4547 +#: command.c:4636 #, 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:4552 +#: command.c:4641 #, 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:4690 command.c:4891 +#: command.c:4779 command.c:4980 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset : option inconnue : %s" -#: command.c:4710 +#: command.c:4799 #, c-format msgid "Border style is %d.\n" msgstr "Le style de bordure est %d.\n" -#: command.c:4716 +#: command.c:4805 #, c-format msgid "Target width is unset.\n" msgstr "La largeur cible n'est pas configuré.\n" -#: command.c:4718 +#: command.c:4807 #, c-format msgid "Target width is %d.\n" msgstr "La largeur cible est %d.\n" -#: command.c:4725 +#: command.c:4814 #, c-format msgid "Expanded display is on.\n" msgstr "Affichage étendu activé.\n" -#: command.c:4727 +#: command.c:4816 #, c-format msgid "Expanded display is used automatically.\n" msgstr "L'affichage étendu est utilisé automatiquement.\n" -#: command.c:4729 +#: command.c:4818 #, c-format msgid "Expanded display is off.\n" msgstr "Affichage étendu désactivé.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4825 command.c:4827 command.c:4829 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "La largeur étendue de l'entête est « %s ».\n" -#: command.c:4742 +#: command.c:4831 #, c-format msgid "Expanded header width is %d.\n" msgstr "La largeur étendue de l'entête est %d.\n" -#: command.c:4748 +#: command.c:4837 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Le séparateur de champs pour un CSV est « %s ».\n" -#: command.c:4756 command.c:4764 +#: command.c:4845 command.c:4853 #, c-format msgid "Field separator is zero byte.\n" msgstr "Le séparateur de champs est l'octet zéro.\n" -#: command.c:4758 +#: command.c:4847 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Le séparateur de champs est « %s ».\n" -#: command.c:4771 +#: command.c:4860 #, c-format msgid "Default footer is on.\n" msgstr "Le bas de page pas défaut est activé.\n" -#: command.c:4773 +#: command.c:4862 #, c-format msgid "Default footer is off.\n" msgstr "Le bas de page par défaut est désactivé.\n" -#: command.c:4779 +#: command.c:4868 #, c-format msgid "Output format is %s.\n" msgstr "Le format de sortie est %s.\n" -#: command.c:4785 +#: command.c:4874 #, c-format msgid "Line style is %s.\n" msgstr "Le style de ligne est %s.\n" -#: command.c:4792 +#: command.c:4881 #, c-format msgid "Null display is \"%s\".\n" msgstr "L'affichage de null est « %s ».\n" -#: command.c:4800 +#: command.c:4889 #, 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:4802 +#: command.c:4891 #, 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:4809 +#: command.c:4898 #, c-format msgid "Pager is used for long output.\n" msgstr "Le paginateur est utilisé pour les affichages longs.\n" -#: command.c:4811 +#: command.c:4900 #, c-format msgid "Pager is always used.\n" msgstr "Le paginateur est toujours utilisé.\n" -#: command.c:4813 +#: command.c:4902 #, c-format msgid "Pager usage is off.\n" msgstr "L'utilisation du paginateur est désactivé.\n" -#: command.c:4819 +#: command.c:4908 #, 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:4829 command.c:4839 +#: command.c:4918 command.c:4928 #, c-format msgid "Record separator is zero byte.\n" msgstr "Le séparateur d'enregistrements est l'octet zéro.\n" -#: command.c:4831 +#: command.c:4920 #, c-format msgid "Record separator is .\n" msgstr "Le séparateur d'enregistrement est .\n" -#: command.c:4833 +#: command.c:4922 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Le séparateur d'enregistrements est « %s ».\n" -#: command.c:4846 +#: command.c:4935 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Les attributs de la table sont « %s ».\n" -#: command.c:4849 +#: command.c:4938 #, c-format msgid "Table attributes unset.\n" msgstr "Les attributs de la table ne sont pas définis.\n" -#: command.c:4856 +#: command.c:4945 #, c-format msgid "Title is \"%s\".\n" msgstr "Le titre est « %s ».\n" -#: command.c:4858 +#: command.c:4947 #, c-format msgid "Title is unset.\n" msgstr "Le titre n'est pas défini.\n" -#: command.c:4865 +#: command.c:4954 #, c-format msgid "Tuples only is on.\n" msgstr "L'affichage des tuples seuls est activé.\n" -#: command.c:4867 +#: command.c:4956 #, c-format msgid "Tuples only is off.\n" msgstr "L'affichage des tuples seuls est désactivé.\n" -#: command.c:4873 +#: command.c:4962 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Le style de bordure Unicode est « %s ».\n" -#: command.c:4879 +#: command.c:4968 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Le style de ligne Unicode est « %s ».\n" -#: command.c:4885 +#: command.c:4974 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Le style d'en-tête Unicode est « %s ».\n" -#: command.c:5134 +#: command.c:5223 #, c-format msgid "\\!: failed" msgstr "\\! : échec" -#: command.c:5168 +#: command.c:5261 #, 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:5200 +#: command.c:5293 #, c-format msgid "could not set timer: %m" msgstr "n'a pas pu configurer le chronomètre : %m" -#: command.c:5269 +#: command.c:5362 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (chaque %gs)\n" -#: command.c:5272 +#: command.c:5365 #, c-format msgid "%s (every %gs)\n" msgstr "%s (chaque %gs)\n" -#: command.c:5340 +#: command.c:5429 #, c-format msgid "could not wait for signals: %m" msgstr "n'a pas pu attendre le signal : %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5485 command.c:5492 common.c:632 common.c:639 common.c:1123 #, c-format msgid "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" msgstr "" "******** REQUÊTE *********\n" @@ -791,147 +835,152 @@ msgstr "" "**************************\n" "\n" -#: command.c:5584 +#: command.c:5671 #, c-format msgid "\"%s.%s\" is not a view" msgstr "« %s.%s » n'est pas une vue" -#: command.c:5600 +#: command.c:5687 #, c-format msgid "could not parse reloptions array" msgstr "n'a pas pu analyser le tableau reloptions" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "ne peut mettre entre guillemets sans connexion active" -#: common.c:208 +#: common.c:247 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »" -#: common.c:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "la connexion au serveur a été perdue" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "La connexion au serveur a été perdue. Tentative de réinitialisation : " -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "Échec.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "Succès.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "PQresultStatus inattendu : %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "Temps : %.3f ms\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Durée : %.3f ms (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Durée : %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Durée : %.3f ms (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, c-format msgid "You are currently not connected to a database." msgstr "Vous n'êtes pas connecté à une base de données." -#: common.c:674 +#: common.c:714 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "" "Notification asynchrone « %s » reçue avec le contenu « %s » en provenance du\n" "processus serveur de PID %d.\n" -#: common.c:677 +#: common.c:717 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "" "Notification asynchrone « %s » reçue en provenance du processus serveur de\n" "PID %d.\n" -#: common.c:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "n'a pas pu imprimer la table résultante : %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "aucune ligne retournée pour \\gset" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "plus d'une ligne retournée pour \\gset" -#: common.c:751 +#: common.c:791 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "tentative ignorée d'utilisation de \\gset dans une variable traitée spécialement « %s »" -#: common.c:1063 +#: common.c:1103 #, c-format msgid "" -"***(Single step mode: verify command)*******************************************\n" +"/**(Single step mode: verify command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to cancel)********************\n" +"/**(press return to proceed or enter x and return to cancel)*******************/\n" msgstr "" "***(Mode étape par étape: vérifiez la commande)*********************************\n" "%s\n" "***(appuyez sur entrée pour l'exécuter ou tapez x puis entrée pour annuler)***\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "INSTRUCTION : %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "état de la transaction inattendu (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "Colonne" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "Type" -#: common.c:1385 +#: common.c:1412 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "La commande n'a pas de résultats ou le résultat n'a pas de colonnes.\n" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "échec de la récupération des résultats en mode par morceau" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -947,11 +996,6 @@ msgstr "\\copy : erreur d'analyse sur « %s »" msgid "\\copy: parse error at end of line" msgstr "\\copy : erreur d'analyse à la fin de la ligne" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "n'a pas pu exécuter la commande « %s » : %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -989,338 +1033,339 @@ msgstr "" "Saisissez les données à copier suivies d'un saut de ligne.\n" "Terminez avec un antislash et un point seuls sur une ligne ou un signal EOF." -#: copy.c:682 +#: copy.c:684 msgid "aborted because of read failure" msgstr "annulé du fait d'une erreur de lecture" -#: copy.c:716 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "tente de sortir du mode copy" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview : la commande n'a pas retourné d'ensemble de résultats" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview : la requête doit renvoyer au moins trois colonnes" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "\\crosstabview: vertical and horizontal headers must be different columns" msgstr "\\crosstabview : les en-têtes horizontales et verticales doivent être des colonnes différentes" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "\\crosstabview: data column must be specified when query returns more than three columns" msgstr "\\crosstabview : la colonne de données doit être spécifiée quand la requête retourne plus de trois colonnes" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview : nombre maximum de colonnes (%d) dépassé" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"" msgstr "\\crosstabview : le résultat de la requête contient plusieurs valeurs de données pour la ligne « %s », colonne « %s »" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview : le numéro de colonne %d est en dehors des limites 1..%d" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview : nom de colonne ambigu : « %s »" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview : nom de colonne non trouvé : « %s »" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "Schéma" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "Nom" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "Type de données du résultat" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "Type de données des paramètres" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "Description" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "Liste des fonctions d'agrégation" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "Le serveur (version %s) ne supporte pas les méthodes d'accès." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "Index" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "Table" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "Gestionnaire" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "Liste des méthodes d'accès" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "Propriétaire" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "Emplacement" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "Options" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "Taille" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "Liste des tablespaces" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df ne prend que [anptwS+] comme options" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df ne prend pas d'option « %c » pour un serveur en version %s" #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "agg" -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "window" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "proc" -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "func" -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "trigger" -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "immutable" -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "stable" -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "volatile" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "Volatibilité" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "restricted" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "safe" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "unsafe" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "Parallèle" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "definer" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "invoker" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "Sécurité" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "Langage" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "Nom interne" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "Liste des fonctions" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "Éléments" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "Liste des types de données" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "Type de l'arg. gauche" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "Type de l'arg. droit" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "Type du résultat" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "Fonction" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "Liste des opérateurs" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "Encodage" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "Fournisseur de locale" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "Collationnement" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "Type caract." -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "Locale ICU" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "Locale" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "Règles ICU :" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "Tablespace" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "Liste des bases de données" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "table" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "vue" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "vue matérialisée" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "séquence" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "table distante" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "table partitionnée" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "Droits d'accès à la colonne" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "Politiques" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "Droits d'accès" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "fonction" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "type" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "schéma" @@ -1352,293 +1397,293 @@ msgstr "famille d'opérateur" msgid "rule" msgstr "règle" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "Descriptions des objets" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Aucune relation nommée « %s » n'a été trouvée." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "Aucune relation n'a été trouvée." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "Aucune relation avec l'OID « %s » n'a été trouvée." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "Début" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "Minimum" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "Maximum" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "Incrément" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "oui" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "non" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "Cycles ?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "Cache" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "Propriétaire : %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "Séquence pour la colonne d'identité : %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Séquence non journalisée « %s.%s »" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Séquence « %s.%s »" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Table non tracée « %s.%s »" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "Table « %s.%s »" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "Vue « %s.%s »" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "Vue matérialisée non journalisée « %s.%s »" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Vue matérialisée « %s.%s »" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Index non tracé « %s.%s »" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "Index « %s.%s »" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Index partitionné non journalisé « %s.%s »" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Index partitionné « %s.%s »" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "Table TOAST « %s.%s »" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Type composé « %s.%s »" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Table distante « %s.%s »" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Table non journalisée « %s.%s »" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Table partitionnée « %s.%s »" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "Collationnement" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "NULL-able" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "Par défaut" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "Clé ?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "Définition" -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "Options FDW" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "Stockage" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "Compression" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "Cible de statistiques" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "Partition de : %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "Aucune contrainte de partition" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "Contrainte de partition : %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "Clé de partition : %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Table propriétaire : « %s.%s »" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "clé primaire, " -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "unique" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " nulls non distincts" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr " , " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "pour la table « %s.%s »" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", prédicat (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", en cluster" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", invalide" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", déferrable" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", initialement déferré" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", identité réplica" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "Index :" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "Contraintes de vérification :" -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "Contraintes de clés étrangères :" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "Référencé par :" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "Politiques :" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "Politiques (mode sécurité de ligne activé en forcé) :" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "Politiques (mode sécurité de ligne activé) : (aucune)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "Politiques (mode sécurité de ligne activé en forcé) : (aucune)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "Politiques (mode sécurité de ligne désactivé) :" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "Objets statistiques :" @@ -1652,13 +1697,13 @@ msgstr "Règles désactivées :" #: describe.c:2949 msgid "Rules firing always:" -msgstr "Règles toujous activées :" +msgstr "Règles toujours activées :" #: describe.c:2952 msgid "Rules firing on replica only:" msgstr "Règles activées uniquement sur le réplica :" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "Publications :" @@ -1757,7 +1802,7 @@ msgstr ", tablespace « %s »" msgid "List of roles" msgstr "Liste des rôles" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "Nom du rôle" @@ -1835,368 +1880,368 @@ msgstr "Aucune configuration pour le rôle « %s » n'a été trouvée." msgid "Did not find any settings." msgstr "Aucune configuration n'a été trouvée." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "Liste des paramètres" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "Membre de" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "Donneur de droits" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "Liste des droits de rôles" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "index" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "Table TOAST" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "index partitionné" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "permanent" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "temporaire" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "non journalisé" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "Persistence" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "Méthode d'accès" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "Liste des relations" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "Le serveur (version %s) ne supporte pas le partitionnement déclaratif des tables." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "Liste des index partitionnés" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "Liste des tables partitionnées" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "Liste des relations partitionnées" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "Nom du parent" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "Taille de la partition de dernier niveau" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "Taille totale" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "De confiance" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "Langage interne" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "Gestionnaire d'appel" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "Validateur" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "Gestionnaire en ligne" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "Liste des langages" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "Vérification" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "Liste des domaines" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "Source" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "Destination" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "Par défaut ?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "Liste des conversions" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "Paramètre" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "Valeur" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "Contexte" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "Liste des paramètres de configuration" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "Liste des paramètres de configuration à valeur personnalisée" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "Le serveur (version %s) ne supporte pas les triggers d'événement." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "Événement" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "activé" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "réplicat" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "toujours" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "désactivé" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "Activé" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "Tags" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "Liste des triggers sur évènement" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "Le serveur (version %s) ne supporte pas les statistiques étendues." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Dépendances" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "Liste des statistiques étendues" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Type source" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Type cible" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "assigné" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Implicite ?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "Liste des conversions explicites" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "Fournisseur" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "Déterministe ?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "Liste des collationnements" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "Liste des schémas" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "Liste des analyseurs de la recherche de texte" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Aucun analyseur de la recherche de texte nommé « %s » n'a été trouvé." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "Aucun analyseur de recherche de texte n'a été trouvé." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "Début de l'analyse" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "Méthode" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "Obtenir le prochain jeton" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "Fin de l'analyse" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "Obtenir l'en-tête" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "Obtenir les types de jeton" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Analyseur « %s.%s » de la recherche de texte" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "Analyseur « %s » de la recherche de texte" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "Nom du jeton" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Types de jeton pour l'analyseur « %s.%s »" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "Types de jeton pour l'analyseur « %s »" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "Modèle" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "Options d'initialisation" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "Liste des dictionnaires de la recherche de texte" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "Initialisation" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Lexize" -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "Liste des modèles de la recherche de texte" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "Liste des configurations de la recherche de texte" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Aucune configuration de la recherche de texte nommée « %s » n'a été trouvée." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "Aucune configuration de recherche de texte n'a été trouvée." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "Jeton" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "Dictionnaires" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Configuration « %s.%s » de la recherche de texte" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "Configuration « %s » de la recherche de texte" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "" "\n" @@ -2205,7 +2250,7 @@ msgstr "" "\n" "Analyseur : « %s.%s »" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "" "\n" @@ -2214,265 +2259,273 @@ msgstr "" "\n" "Analyseur : « %s »" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "Liste des wrappers de données distantes" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "Wrapper des données distantes" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "Version" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "Liste des serveurs distants" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "Serveur" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "Nom de l'utilisateur" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "Liste des correspondances utilisateurs" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "Liste des tables distantes" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "Liste des extensions installées" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Aucune extension nommée « %s » n'a été trouvée." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "Aucune extension n'a été trouvée." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "Description d'objet" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objets dans l'extension « %s »" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "mauvaise qualification du nom (trop de points entre les noms) : %s" -#: describe.c:6219 +#: describe.c:6197 #, 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" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "Le serveur (version %s) ne supporte pas les publications." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "Toutes les tables" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Insertions" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Mises à jour" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Suppressions" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Tronque" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Via la racine" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "Liste des publications" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Aucune publication nommée « %s » n'a été trouvée." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "Aucune publication n'a été trouvée." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "Publication %s" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "Tables :" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "Tables des schémas :" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Le serveur (version %s) ne supporte pas les souscriptions." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "Publication" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "Binaire" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "Flux" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "Commit en deux phases" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "Désactiver en cas d'erreur" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "Origine" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "Mot de passe requis" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "Exécuté en tant que propriétaire ?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "Failover" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "Validation synchrone" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "Informations de connexion" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "Ignore LSN" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "Liste des souscriptions" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(aucun)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "AM" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "Type en entrée" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "Type de stockage" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "Classe d'opérateur" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "Famille d'opérateur" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "Liste des classes d'opérateurs" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Types applicables" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "Liste des familles d'opérateurs" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "Opérateur" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "Stratégie" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "ordre" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "recherche" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "But" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "Tri famille d'opérateur" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "Liste d'opérateurs des familles d'opérateurs" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "Type de l'arg. gauche enregistré" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "Type de l'arg. droit enregistré" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "Numéro" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "Liste des fonctions de support des familles d'opérateurs" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "« Large objects »" -#: help.c:75 +#: help.c:63 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2480,11 +2533,11 @@ msgstr "" "psql est l'interface interactive de PostgreSQL.\n" "\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:502 msgid "Usage:\n" msgstr "Usage :\n" -#: help.c:77 +#: help.c:65 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2492,32 +2545,29 @@ msgstr "" " psql [OPTIONS]... [BASE [UTILISATEUR]]\n" "\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "Options générales :\n" -#: help.c:84 +#: help.c:68 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr "" " -c, --command=COMMANDE exécute une commande unique (SQL ou interne), puis\n" " quitte\n" -#: help.c:85 -#, c-format -msgid " -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr "" -" -d, --dbname=BASE indique le nom de la base de données à laquelle se\n" -" connecter (par défaut : « %s »)\n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=BASE base de données de connexion\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=FICHIER exécute les commandes du fichier, puis quitte\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list affiche les bases de données disponibles, puis quitte\n" -#: help.c:89 +#: help.c:72 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2527,15 +2577,15 @@ msgstr "" " configure la variable psql NOM en VALEUR\n" " (par exemple : -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: help.c:93 +#: help.c:76 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" -#: help.c:94 +#: help.c:77 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" @@ -2544,19 +2594,19 @@ msgstr "" " exécute dans une transaction unique (si non\n" " interactif)\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=options] affiche cette aide et quitte\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commandes liste les méta-commandes, puis quitte\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables liste les variables spéciales, puis quitte\n" -#: help.c:100 +#: help.c:83 msgid "" "\n" "Input and output options:\n" @@ -2564,79 +2614,79 @@ msgstr "" "\n" "Options d'entrée/sortie :\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all affiche les lignes du script\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors affiche les commandes échouées\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries affiche les commandes envoyées au serveur\n" -#: help.c:104 +#: help.c:87 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr "" " -E, --echo-hidden affiche les requêtes engendrées par les commandes\n" " internes\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=FICHIER envoie les traces dans le fichier\n" -#: help.c:106 +#: help.c:89 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr "" " -n, --no-readline désactive l'édition avancée de la ligne de commande\n" " (readline)\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr "" " -o, --output=FICHIER écrit les résultats des requêtes dans un fichier (ou\n" " |tube)\n" -#: help.c:108 +#: help.c:91 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr "" " -q, --quiet s'exécute silencieusement (pas de messages, uniquement\n" " le résultat des requêtes)\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr "" " -s, --single-step active le mode étape par étape (confirmation pour\n" " chaque requête)\n" -#: help.c:110 +#: help.c:93 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr "" " -S, --single-line active le mode ligne par ligne (EOL termine la\n" " commande SQL)\n" -#: help.c:112 +#: help.c:95 msgid "" "\n" "Output format options:\n" msgstr "" "\n" -"Options de formattage de la sortie :\n" +"Options de formatage de la sortie :\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr "" " -A, --no-align active le mode d'affichage non aligné des tables\n" " (-P format=unaligned)\n" -#: help.c:114 +#: help.c:97 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr "" " --csv mode d'affichage CSV (valeurs séparées par des\n" " virgules)\n" -#: help.c:115 +#: help.c:98 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2646,19 +2696,19 @@ msgstr "" " séparateur de champs pour un affichage non aligné\n" " (par défaut : « %s »)\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr "" " -H, --html active le mode d'affichage HTML des tables\n" " (-P format=html)\n" -#: help.c:119 +#: help.c:102 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr "" " -P, --pset=VAR[=ARG] initialise l'option d'impression VAR à ARG (voir la\n" " commande \\pset)\n" -#: help.c:120 +#: help.c:103 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" @@ -2667,21 +2717,21 @@ msgstr "" " séparateur d'enregistrements pour un affichage non\n" " aligné (par défaut : saut de ligne)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only affiche seulement les lignes (-P tuples_only)\n" -#: help.c:123 +#: help.c:106 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr "" " -T, --table-attr=TEXTE initialise les attributs des balises HTML de tableau\n" " (largeur, bordure)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded active l'affichage étendu des tables (-P expanded)\n" -#: help.c:125 +#: help.c:108 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" @@ -2690,7 +2740,7 @@ msgstr "" " initialise le séparateur de champs pour un affichage\n" " non aligné à l'octet zéro\n" -#: help.c:127 +#: help.c:110 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" @@ -2699,7 +2749,7 @@ msgstr "" " initialise le séparateur d'enregistrements pour un\n" " affichage non aligné à l'octet zéro\n" -#: help.c:130 +#: help.c:113 msgid "" "\n" "Connection options:\n" @@ -2707,43 +2757,31 @@ msgstr "" "\n" "Options de connexion :\n" -#: help.c:133 -#, c-format -msgid " -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -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" +" -h, --host=HÔTE hôte du serveur de bases de données ou\n" +" répertoire des sockets\n" -#: help.c:134 -msgid "local socket" -msgstr "socket locale" - -#: help.c:137 -#, 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" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=PORT port du serveur de bases de données\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr "" -" -U, --username=UTILISATEUR\n" -" nom d'utilisateur de la base de données (par\n" -" défaut : « %s »)\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=NOM nom de l'utilisateur de la base de données\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ne demande jamais un mot de passe\n" -#: help.c:143 +#: help.c:118 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" -#: help.c:145 +#: help.c:120 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" @@ -2757,39 +2795,39 @@ msgstr "" "la documentation de PostgreSQL.\n" "\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapporter les bogues à <%s>.\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "Général\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [PARAM]... configure les paramètres de la requête\n" -#: help.c:193 +#: help.c:168 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr "" " \\copyright affiche les conditions d'utilisation et de\n" " distribution de PostgreSQL\n" -#: help.c:194 +#: help.c:169 msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr " \\crosstabview [COLONNES] exécute la requête et affiche le résultat dans un tableau croisé\n" -#: help.c:195 +#: help.c:170 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose affiche le message d'erreur le plus récent avec une verbosité maximale\n" -#: help.c:196 +#: help.c:171 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2797,252 +2835,258 @@ msgstr "" " \\g [(OPTIONS)] [FICHIER] exécute la requête (et envoie les résultats à un fichier ou à |pipe);\n" " \\g sans arguments est équivalent à un point-virgule\n" -#: help.c:198 +#: help.c:173 msgid " \\gdesc describe result of query, without executing it\n" msgstr " \\gdesc décrit le résultat de la requête sans l'exécuter\n" -#: help.c:199 +#: help.c:174 msgid " \\gexec execute query, then execute each value in its result\n" msgstr " \\gexec exécute la requête et exécute chaque valeur du résultat\n" -#: help.c:200 +#: help.c:175 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr " \\gset [PRÉFIXE] exécute la requête et enregistre le résultat dans des variables psql\n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr " \\gx [(OPTIONS)] [FICHIER] comme \\g, mais force le mode de sortie étendu\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q quitte psql\n" -#: help.c:203 -msgid " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" -msgstr " \\watch [[i=]SEC] [c=N] exécute la requête toutes les SEC secondes, jusqu'à N fois\n" +#: help.c:178 +msgid "" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" +msgstr "" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" exécute la requête chaque SEC secondes, jusqu'à N fois,\n" +" s'arrête si moins de MIN lignes sont renvoyés\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "Aide\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commandes] affiche l'aide sur les métacommandes\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options affiche l'aide sur les options en ligne de commande de psql\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables affiche l'aide sur les variables spéciales\n" -#: help.c:211 +#: help.c:188 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr "" " \\h [NOM] aide-mémoire pour les commandes SQL, * pour toutes\n" " les commandes\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "Tampon de requête\n" -#: help.c:215 +#: help.c:192 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr "" " \\e [FICHIER] [LIGNE] édite le tampon de requête ou le fichier avec un\n" " éditeur externe\n" -#: help.c:216 +#: help.c:193 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr "" " \\ef [FONCTION [LIGNE]] édite la définition de fonction avec un éditeur\n" " externe\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr "" " \\ev [VUE [LIGNE]] édite la définition de vue avec un éditeur\n" " externe\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p affiche le contenu du tampon de requête\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r efface le tampon de requêtes\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr "" " \\s [FICHIER] affiche l'historique ou le sauvegarde dans un\n" " fichier\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr "" " \\w [FICHIER] écrit le contenu du tampon de requêtes dans un\n" " fichier\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "Entrée/Sortie\n" -#: help.c:227 +#: help.c:204 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr "" " \\copy ... exécute SQL COPY avec le flux de données dirigé vers\n" " l'hôte client\n" -#: help.c:228 +#: help.c:205 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [TEXTE] écrit le texte sur la sortie standard (-n pour supprimer le retour à la ligne)\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i FICHIER exécute les commandes du fichier\n" -#: help.c:230 +#: help.c:207 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr "" " \\ir FICHIER identique à \\i, mais relatif à l'emplacement du script\n" " ou un |tube\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr "" " \\o [FICHIER] envoie les résultats de la requête vers un fichier\n" " ou un |tube\n" -#: help.c:232 +#: help.c:209 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr "" " \\qecho [-n] [TEXTE] écrit un texte sur la sortie des résultats des\n" " requêtes (\\o) (-n pour supprimer le retour à la ligne)\n" -#: help.c:233 +#: help.c:210 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [TEXTE] écrit le texte sur la sortie des erreurs (-n pour supprimer le retour à la ligne)\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "Conditionnel\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR début du bloc conditionnel\n" -#: help.c:238 +#: help.c:215 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif alternative à l'intérieur du bloc conditionnel courant\n" -#: help.c:239 +#: help.c:216 msgid " \\else final alternative within current conditional block\n" msgstr " \\else alternative finale à l'intérieur du bloc conditionnel courant\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif bloc conditionnel de fin\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "Informations\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (options : S = affiche les objets systèmes, + = informations supplémentaires)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] affiche la liste des tables, vues et séquences\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr "" " \\d[S+] NOM affiche la description de la table, de la vue,\n" " de la séquence ou de l'index\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" -msgstr " \\da[S] [MODÈLE] affiche les aggrégats\n" +msgstr " \\da[S] [MODÈLE] affiche les agrégats\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [MODÈLE] affiche la liste des méthodes d'accès\n" -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] affiche les classes d'opérateurs\n" -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] affiche les familles d'opérateur\n" -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] affiche les opérateurs des familles d'opérateur\n" -#: help.c:252 +#: help.c:229 msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] liste les fonctions de support des familles d'opérateur\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [MODÈLE] affiche la liste des tablespaces\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [MODÈLE] affiche la liste des conversions\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [MODÈLE] affiche les paramètres de configuration\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [MODÈLE] affiche la liste des transtypages\n" -#: help.c:257 +#: help.c:234 msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr "" " \\dd[S] [MODÈLE] affiche les commentaires des objets dont le commentaire\n" " n'est affiché nul part ailleurs\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [MODÈLE] affiche la liste des domaines\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [MODÈLE] affiche les droits par défaut\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [MODÈLE] affiche la liste des tables distantes\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [MODÈLE] affiche la liste des serveurs distants\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\det[+] [MODÈLE] affiche la liste des tables distantes\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [MODÈLE] affiche la liste des correspondances utilisateurs\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [MODÈLE] affiche la liste des wrappers de données distantes\n" -#: help.c:265 +#: help.c:242 msgid "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] functions\n" @@ -3050,55 +3094,55 @@ msgstr "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " affiche la liste des fonctions [seulement agrégat/normal/procédure/trigger/window]\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr "" " \\dF[+] [MODÈLE] affiche la liste des configurations de la recherche\n" " plein texte\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr "" " \\dFd[+] [MODÈLE] affiche la liste des dictionnaires de la recherche de\n" " texte\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr "" " \\dFp[+] [MODÈLE] affiche la liste des analyseurs de la recherche de\n" " texte\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr "" " \\dFt[+] [MODÈLE] affiche la liste des modèles de la recherche de\n" " texte\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [MODÈLE] affiche la liste des rôles (utilisateurs)\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [MODÈLE] affiche la liste des index\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] liste des « Large Objects », identique à \\lo_list\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [MODÈLE] affiche la liste des langages procéduraux\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [MODÈLE] affiche la liste des vues matérialisées\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [MODÈLE] affiche la liste des schémas\n" -#: help.c:277 +#: help.c:254 msgid "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" @@ -3106,97 +3150,97 @@ msgstr "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " affiche la liste des opérateurs\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [MODÈLE] affiche la liste des collationnements\n" -#: help.c:280 +#: help.c:257 msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr "" " \\dp[S] [MODÈLE] affiche la liste des droits d'accès aux tables,\n" " vues, séquences\n" -#: help.c:281 +#: help.c:258 msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr " \\dP[itn+] [PATTERN] affiche les relations partitionnées [seulement index/table] [n=imbriquées]\n" -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr "" " \\drds [ROLEPTRN [DBPTRN]] liste la configuration utilisateur par base de données\n" "\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\dg[S] [MODÈLE] affiche la liste des droits des rôles\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[S+] [MODÈLE] affiche la liste des publications de réplication\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [MODÈLE] affiche la liste des souscriptions de réplication\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [MODÈLE] affiche la liste des séquences\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [MODÈLE] affiche la liste des tables\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [MODÈLE] affiche la liste des types de données\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [MODÈLE] affiche la liste des rôles (utilisateurs)\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [MODÈLE] affiche la liste des vues\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [MODÈLE] affiche la liste des extensions\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [MODÈLE] affiche les statistiques étendues\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [MODÈLE] affiche les triggers sur évènement\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [MODÈLE] affiche la liste des bases de données\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] [FONCTION] édite la définition d'une fonction\n" -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv [FONCTION] édite la définition d'une vue\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [MODÈLE] identique à \\dp\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "« Large objects »\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr "" " \\lo_export LOBOID FICHIER\n" " écrit un « Large Object » dans le fichier\n" -#: help.c:302 +#: help.c:279 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3204,42 +3248,42 @@ msgstr "" " \\lo_import FICHIER [COMMENTAIRE]\n" " lit un « Large Object » à partir du fichier\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\dl[+] liste des « Large Objects »\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID supprime un « Large Object »\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "Formatage\n" -#: help.c:309 +#: help.c:286 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr "" " \\a bascule entre les modes de sortie alignée et non\n" " alignée\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr "" " \\C [CHAÎNE] initialise le titre d'une table, ou le désactive en\n" " l'absence d'argument\n" -#: help.c:311 +#: help.c:288 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr "" " \\f [CHAÎNE] affiche ou initialise le séparateur de champ pour\n" " une sortie non alignée des requêtes\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H bascule le mode de sortie HTML (actuellement %s)\n" -#: help.c:314 +#: help.c:291 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3247,7 +3291,7 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [NOM [VALEUR]] règle l'affichage de la table\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3255,33 +3299,33 @@ msgstr "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t affiche uniquement les lignes (actuellement %s)\n" -#: help.c:323 +#: help.c:300 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr "" " \\T [CHAÎNE] initialise les attributs HTML de la balise
,\n" " ou l'annule en l'absence d'argument\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] bascule l'affichage étendu (actuellement %s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "auto" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "Connexions\n" -#: help.c:330 +#: help.c:307 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3291,7 +3335,7 @@ msgstr "" " se connecte à une autre base de données\n" " (actuellement « %s »)\n" -#: help.c:334 +#: help.c:311 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3300,71 +3344,71 @@ msgstr "" " se connecte à une nouvelle base de données\n" " (aucune connexion actuellement)\n" -#: help.c:336 +#: help.c:313 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo affiche des informations sur la connexion en cours\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [ENCODAGE] affiche ou initialise l'encodage du client\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr "" " \\password [UTILISATEUR]\n" " modifie de façon sécurisé le mot de passe d'un\n" " utilisateur\n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "Système d'exploitation\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [RÉPERTOIRE] change de répertoire de travail\n" -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVVAR récupère une variable d'environnement\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NOM [VALEUR] (dés)initialise une variable d'environnement\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr "" " \\timing [on|off] bascule l'activation du chronométrage des commandes\n" " (actuellement %s)\n" -#: help.c:347 +#: help.c:324 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr "" " \\! [COMMANDE] exécute la commande dans un shell ou exécute un\n" " shell interactif\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "Variables\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr "" " \\prompt [TEXTE] NOM demande à l'utilisateur de configurer la variable\n" " interne\n" -#: help.c:352 +#: help.c:329 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr "" " \\set [NOM [VALEUR]] initialise une variable interne ou les affiche\n" " toutes en l'absence de paramètre\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NOM désactive (supprime) la variable interne\n" -#: help.c:392 +#: help.c:369 msgid "" "List of specially treated variables\n" "\n" @@ -3372,11 +3416,11 @@ msgstr "" "Liste des variables traitées spécialement\n" "\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "variables psql :\n" -#: help.c:396 +#: help.c:373 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3386,7 +3430,7 @@ msgstr "" " ou \\set NOM VALEUR dans psql\n" "\n" -#: help.c:398 +#: help.c:375 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3394,7 +3438,7 @@ msgstr "" " AUTOCOMMIT\n" " si activé, les commandes SQL réussies sont automatiquement validées\n" -#: help.c:400 +#: help.c:377 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3404,7 +3448,7 @@ msgstr "" " détermine la casse utilisée pour compléter les mots clés SQL\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:403 +#: help.c:380 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3412,7 +3456,7 @@ msgstr "" " DBNAME\n" " le nom de base de données actuel\n" -#: help.c:405 +#: help.c:382 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3422,7 +3466,7 @@ msgstr "" " contrôle ce qui est envoyé sur la sortie standard\n" " [all, errors, none, queries]\n" -#: help.c:408 +#: help.c:385 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3432,7 +3476,7 @@ msgstr "" " si activé, affiche les requêtes internes exécutées par les méta-commandes ;\n" " si configuré à « noexec », affiche les requêtes sans les exécuter\n" -#: help.c:411 +#: help.c:388 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3440,7 +3484,7 @@ msgstr "" " ENCODING\n" " encodage du jeu de caractères client\n" -#: help.c:413 +#: help.c:390 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3448,7 +3492,7 @@ msgstr "" " ERROR\n" " true si la dernière requête a échoué, sinon false\n" -#: help.c:415 +#: help.c:392 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" @@ -3457,7 +3501,7 @@ msgstr "" " le nombre de lignes résultats à récupérer et à afficher à la fois\n" " (0 pour illimité)\n" -#: help.c:417 +#: help.c:394 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3465,7 +3509,7 @@ msgstr "" " HIDE_TABLEAM\n" " si activé, les méthodes d'accès ne sont pas affichées\n" -#: help.c:419 +#: help.c:396 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3473,7 +3517,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " si activé, les méthodes de compression methods ne sont pas affichées\n" -#: help.c:421 +#: help.c:398 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3481,7 +3525,7 @@ msgstr "" " HISTCONTROL\n" " contrôle l'historique des commandes [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:423 +#: help.c:400 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3489,7 +3533,7 @@ msgstr "" " HISTFILE\n" " nom du fichier utilisé pour stocker l'historique des commandes\n" -#: help.c:425 +#: help.c:402 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3497,7 +3541,7 @@ msgstr "" " HISTSIZE\n" " nombre maximum de commandes à stocker dans l'historique de commandes\n" -#: help.c:427 +#: help.c:404 msgid "" " HOST\n" " the currently connected database server host\n" @@ -3505,7 +3549,7 @@ msgstr "" " HOST\n" " l'hôte de la base de données\n" -#: help.c:429 +#: help.c:406 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3513,7 +3557,7 @@ msgstr "" " IGNOREEOF\n" " nombre d'EOF nécessaire pour terminer une session interactive\n" -#: help.c:431 +#: help.c:408 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3521,7 +3565,7 @@ msgstr "" " LASTOID\n" " valeur du dernier OID affecté\n" -#: help.c:433 +#: help.c:410 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3531,7 +3575,7 @@ msgstr "" " LAST_ERROR_SQLSTATE\n" " message et SQLSTATE de la dernière erreur ou une chaîne vide et \"00000\" if si aucune erreur\n" -#: help.c:436 +#: help.c:413 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3539,7 +3583,7 @@ msgstr "" " ON_ERROR_ROLLBACK\n" " si activé, une erreur n'arrête pas une transaction (utilise des savepoints implicites)\n" -#: help.c:438 +#: help.c:415 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3547,7 +3591,7 @@ msgstr "" " ON_ERROR_STOP\n" " arrête l'exécution d'un batch après une erreur\n" -#: help.c:440 +#: help.c:417 msgid "" " PORT\n" " server port of the current connection\n" @@ -3555,7 +3599,7 @@ msgstr "" " PORT\n" " port du serveur pour la connexion actuelle\n" -#: help.c:442 +#: help.c:419 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3563,7 +3607,7 @@ msgstr "" " PROMPT1\n" " spécifie l'invite standard de psql\n" -#: help.c:444 +#: help.c:421 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" @@ -3571,7 +3615,7 @@ msgstr "" " PROMPT2\n" " spécifie l'invite utilisé quand une requête continue après la ligne courante\n" -#: help.c:446 +#: help.c:423 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3579,7 +3623,7 @@ msgstr "" " PROMPT3\n" " spécifie l'invite utilisée lors d'un COPY ... FROM STDIN\n" -#: help.c:448 +#: help.c:425 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3587,7 +3631,7 @@ msgstr "" " QUIET\n" " s'exécute en silence (identique à l'option -q)\n" -#: help.c:450 +#: help.c:427 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3595,7 +3639,7 @@ msgstr "" " ROW_COUNT\n" " nombre de lignes renvoyées ou affectées par la dernière requête, ou 0\n" -#: help.c:452 +#: help.c:429 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3605,7 +3649,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " version du serveur (chaîne courte ou format numérique)\n" -#: help.c:455 +#: help.c:432 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3613,7 +3657,7 @@ msgstr "" " SHELL_ERROR\n" " true si la dernière requête a échoué, sinon false\n" -#: help.c:457 +#: help.c:434 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3621,7 +3665,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " code de sortie de la dernière commande shell\n" -#: help.c:459 +#: help.c:436 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3629,7 +3673,7 @@ msgstr "" " SHOW_ALL_RESULTS\n" " affiche tous les résultats d'une requête combinée (\\;) au lieu du dernier uniquement\n" -#: help.c:461 +#: help.c:438 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3637,7 +3681,7 @@ msgstr "" " SHOW_CONTEXT\n" " contrôle l'affichage des champs de contexte du message [never, errors, always]\n" -#: help.c:463 +#: help.c:440 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3645,7 +3689,7 @@ msgstr "" " SINGLELINE\n" " une fin de ligne termine le mode de commande SQL (identique à l'option -S)\n" -#: help.c:465 +#: help.c:442 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3653,7 +3697,7 @@ msgstr "" " SINGLESTEP\n" " mode pas à pas (identique à l'option -s)\n" -#: help.c:467 +#: help.c:444 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3661,7 +3705,7 @@ msgstr "" " SQLSTATE\n" " SQLSTATE de la dernière requête, ou \"00000\" si aucune erreur\n" -#: help.c:469 +#: help.c:446 msgid "" " USER\n" " the currently connected database user\n" @@ -3669,7 +3713,7 @@ msgstr "" " USER\n" " l'utilisateur actuellement connecté\n" -#: help.c:471 +#: help.c:448 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3677,7 +3721,7 @@ msgstr "" " VERBOSITY\n" " contrôle la verbosité des rapports d'erreurs [default, verbose, terse, sqlstate]\n" -#: help.c:473 +#: help.c:450 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3689,7 +3733,7 @@ msgstr "" " VERSION_NUM\n" " version de psql (chaîne longue, chaîne courte, ou format numérique)\n" -#: help.c:478 +#: help.c:455 msgid "" "\n" "Display settings:\n" @@ -3697,7 +3741,7 @@ msgstr "" "\n" "Paramètres d'affichage :\n" -#: help.c:480 +#: help.c:457 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3707,7 +3751,7 @@ msgstr "" " ou \\pset NOM [VALEUR] dans psql\n" "\n" -#: help.c:482 +#: help.c:459 msgid "" " border\n" " border style (number)\n" @@ -3715,7 +3759,7 @@ msgstr "" " border\n" " style de bordure (nombre)\n" -#: help.c:484 +#: help.c:461 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3723,7 +3767,7 @@ msgstr "" " columns\n" " largeur cible pour le format encadré\n" -#: help.c:486 +#: help.c:463 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" @@ -3731,7 +3775,7 @@ msgstr "" " expanded (ou x)\n" " sortie étendue [on, off, auto]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid "" " fieldsep\n" @@ -3740,7 +3784,7 @@ msgstr "" " fieldsep\n" " champ séparateur pour l'affichage non aligné (par défaut « %s »)\n" -#: help.c:491 +#: help.c:468 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3748,7 +3792,7 @@ msgstr "" " fieldsep_zero\n" " configure le séparateur de champ pour l'affichage non alignée à l'octet zéro\n" -#: help.c:493 +#: help.c:470 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3756,7 +3800,7 @@ msgstr "" " footer\n" " active ou désactive l'affiche du bas de tableau [on, off]\n" -#: help.c:495 +#: help.c:472 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3764,7 +3808,7 @@ msgstr "" " format\n" " active le format de sortie [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3772,7 +3816,7 @@ msgstr "" " linestyle\n" " configure l'affichage des lignes de bordure [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3780,7 +3824,7 @@ msgstr "" " null\n" " configure la chaîne à afficher à la place d'une valeur NULL\n" -#: help.c:501 +#: help.c:478 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3789,7 +3833,7 @@ msgstr "" " active ou désactive l'affichage d'un caractère spécifique à la locale pour séparer\n" " des groupes de chiffres [on, off]\n" -#: help.c:503 +#: help.c:480 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3797,7 +3841,7 @@ msgstr "" " pager\n" " contrôle quand un paginateur externe est utilisé [yes, no, always]\n" -#: help.c:505 +#: help.c:482 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3805,7 +3849,7 @@ msgstr "" " recordsep\n" " enregistre le séparateur de ligne pour les affichages non alignés\n" -#: help.c:507 +#: help.c:484 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3814,7 +3858,7 @@ msgstr "" " initialise le séparateur d'enregistrements pour un affichage\n" " non aligné à l'octet zéro\n" -#: help.c:509 +#: help.c:486 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3825,7 +3869,7 @@ msgstr "" " proportionnelles de colonnes pour les types de données alignés à gauche dans le\n" " format latex-longtable\n" -#: help.c:512 +#: help.c:489 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3833,7 +3877,7 @@ msgstr "" " title\n" " configure le titre de la table pour toute table affichée\n" -#: help.c:514 +#: help.c:491 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3841,7 +3885,7 @@ msgstr "" " tuples_only\n" " si activé, seules les données de la table sont affichées\n" -#: help.c:516 +#: help.c:493 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3853,7 +3897,17 @@ msgstr "" " unicode_header_linestyle\n" " configure le style d'affichage de ligne Unicode [single, double]\n" -#: help.c:521 +#: help.c:497 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" configure la largeur maximale de l'entête dans le format étendu\n" +" [full, column, page, valeur entière]\n" + +#: help.c:501 msgid "" "\n" "Environment variables:\n" @@ -3861,7 +3915,7 @@ msgstr "" "\n" "Variables d'environnement :\n" -#: help.c:525 +#: help.c:505 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3871,7 +3925,7 @@ msgstr "" " ou \\setenv NOM [VALEUR] dans psql\n" "\n" -#: help.c:527 +#: help.c:507 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3883,7 +3937,7 @@ msgstr "" " ou \\setenv NOM [VALEUR] dans psql\n" "\n" -#: help.c:530 +#: help.c:510 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3891,7 +3945,7 @@ msgstr "" " COLUMNS\n" " nombre de colonnes pour le format encadré\n" -#: help.c:532 +#: help.c:512 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3899,7 +3953,7 @@ msgstr "" " PGAPPNAME\n" " identique au paramètre de connexion application_name\n" -#: help.c:534 +#: help.c:514 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3907,7 +3961,7 @@ msgstr "" " PGDATABASE\n" " identique au paramètre de connexion dbname\n" -#: help.c:536 +#: help.c:516 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3915,7 +3969,7 @@ msgstr "" " PGHOST\n" " identique au paramètre de connexion host\n" -#: help.c:538 +#: help.c:518 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3923,7 +3977,7 @@ msgstr "" " PGPASSFILE\n" " nom du fichier de mot de passe\n" -#: help.c:540 +#: help.c:520 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3931,7 +3985,7 @@ msgstr "" " PGPASSWORD\n" " mot de passe de connexion (non recommendé)\n" -#: help.c:542 +#: help.c:522 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3939,7 +3993,7 @@ msgstr "" " PGPORT\n" " identique au paramètre de connexion port\n" -#: help.c:544 +#: help.c:524 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3947,7 +4001,7 @@ msgstr "" " PGUSER\n" " identique au paramètre de connexion user\n" -#: help.c:546 +#: help.c:526 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3955,7 +4009,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " éditeur utilisé par les commandes \\e, \\ef et \\ev\n" -#: help.c:548 +#: help.c:528 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3963,7 +4017,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " comment spécifier un numéro de ligne lors de l'appel de l'éditeur\n" -#: help.c:550 +#: help.c:530 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -3971,7 +4025,7 @@ msgstr "" " PSQL_HISTORY\n" " autre emplacement pour le fichier d'historique des commandes\n" -#: help.c:552 +#: help.c:532 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -3979,7 +4033,7 @@ msgstr "" " PSQL_PAGER, PAGER\n" " nom du paginateur externe\n" -#: help.c:555 +#: help.c:535 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -3987,7 +4041,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " nom du paginateur externe utilisé pour \\watch\n" -#: help.c:558 +#: help.c:538 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -3995,7 +4049,7 @@ msgstr "" " PSQLRC\n" " autre emplacement pour le fichier .psqlrc de l'utilisateur\n" -#: help.c:560 +#: help.c:540 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -4003,7 +4057,7 @@ msgstr "" " SHELL\n" " shell utilisé par la commande \\!\n" -#: help.c:562 +#: help.c:542 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -4011,11 +4065,11 @@ msgstr "" " TMPDIR\n" " répertoire pour les fichiers temporaires\n" -#: help.c:622 +#: help.c:602 msgid "Available help:\n" msgstr "Aide-mémoire disponible :\n" -#: help.c:717 +#: help.c:697 #, c-format msgid "" "Command: %s\n" @@ -4034,7 +4088,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:740 +#: help.c:720 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4043,17 +4097,17 @@ msgstr "" "Aucun aide-mémoire disponible pour « %s ».\n" "Essayez \\h sans arguments pour afficher les aide-mémoires disponibles.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "n'a pas pu lire à partir du fichier en entrée : %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "n'a pas pu sauvegarder l'historique dans le fichier « %s » : %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "l'historique n'est pas supportée par cette installation" @@ -4141,12 +4195,12 @@ msgstr "requête ignorée ; utilisez \\endif ou Ctrl-C pour quitter le bloc \\if msgid "reached EOF without finding closing \\endif(s)" msgstr "a atteint EOF sans trouver le(s) \\endif fermant" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "chaîne entre guillemets non terminée" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s : mémoire épuisée" @@ -4154,2433 +4208,2453 @@ msgstr "%s : mémoire épuisée" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1308 sql_help.c:1310 -#: sql_help.c:1313 sql_help.c:1316 sql_help.c:1318 sql_help.c:1320 -#: sql_help.c:1323 sql_help.c:1326 sql_help.c:1443 sql_help.c:1445 -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:1471 sql_help.c:1474 -#: sql_help.c:1477 sql_help.c:1480 sql_help.c:1484 sql_help.c:1486 -#: sql_help.c:1488 sql_help.c:1490 sql_help.c:1504 sql_help.c:1507 -#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1521 sql_help.c:1523 -#: sql_help.c:1533 sql_help.c:1535 sql_help.c:1545 sql_help.c:1548 -#: sql_help.c:1571 sql_help.c:1573 sql_help.c:1575 sql_help.c:1577 -#: sql_help.c:1580 sql_help.c:1582 sql_help.c:1585 sql_help.c:1588 -#: sql_help.c:1639 sql_help.c:1682 sql_help.c:1685 sql_help.c:1687 -#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1694 sql_help.c:1696 -#: sql_help.c:1699 sql_help.c:1751 sql_help.c:1767 sql_help.c:2000 -#: sql_help.c:2069 sql_help.c:2088 sql_help.c:2101 sql_help.c:2159 -#: sql_help.c:2167 sql_help.c:2177 sql_help.c:2204 sql_help.c:2236 -#: sql_help.c:2254 sql_help.c:2282 sql_help.c:2393 sql_help.c:2439 -#: sql_help.c:2464 sql_help.c:2487 sql_help.c:2491 sql_help.c:2525 -#: sql_help.c:2545 sql_help.c:2567 sql_help.c:2581 sql_help.c:2602 -#: sql_help.c:2631 sql_help.c:2666 sql_help.c:2691 sql_help.c:2738 -#: sql_help.c:3033 sql_help.c:3046 sql_help.c:3063 sql_help.c:3079 -#: sql_help.c:3119 sql_help.c:3173 sql_help.c:3177 sql_help.c:3179 -#: sql_help.c:3186 sql_help.c:3205 sql_help.c:3232 sql_help.c:3267 -#: sql_help.c:3279 sql_help.c:3288 sql_help.c:3332 sql_help.c:3346 -#: sql_help.c:3374 sql_help.c:3382 sql_help.c:3394 sql_help.c:3404 -#: sql_help.c:3412 sql_help.c:3420 sql_help.c:3428 sql_help.c:3436 -#: sql_help.c:3445 sql_help.c:3456 sql_help.c:3464 sql_help.c:3472 -#: sql_help.c:3480 sql_help.c:3488 sql_help.c:3498 sql_help.c:3507 -#: sql_help.c:3516 sql_help.c:3524 sql_help.c:3534 sql_help.c:3545 -#: sql_help.c:3553 sql_help.c:3562 sql_help.c:3573 sql_help.c:3582 -#: sql_help.c:3590 sql_help.c:3598 sql_help.c:3606 sql_help.c:3614 -#: sql_help.c:3622 sql_help.c:3630 sql_help.c:3638 sql_help.c:3646 -#: sql_help.c:3654 sql_help.c:3662 sql_help.c:3679 sql_help.c:3688 -#: sql_help.c:3696 sql_help.c:3713 sql_help.c:3728 sql_help.c:4040 -#: sql_help.c:4150 sql_help.c:4179 sql_help.c:4195 sql_help.c:4197 -#: sql_help.c:4700 sql_help.c:4748 sql_help.c:4906 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:245 +#: sql_help.c:247 sql_help.c:248 sql_help.c:250 sql_help.c:252 sql_help.c:255 +#: sql_help.c:257 sql_help.c:259 sql_help.c:261 sql_help.c:276 sql_help.c:277 +#: sql_help.c:278 sql_help.c:280 sql_help.c:329 sql_help.c:331 sql_help.c:333 +#: sql_help.c:335 sql_help.c:404 sql_help.c:409 sql_help.c:411 sql_help.c:453 +#: sql_help.c:455 sql_help.c:458 sql_help.c:460 sql_help.c:529 sql_help.c:534 +#: sql_help.c:539 sql_help.c:544 sql_help.c:549 sql_help.c:603 sql_help.c:605 +#: sql_help.c:607 sql_help.c:609 sql_help.c:611 sql_help.c:614 sql_help.c:616 +#: sql_help.c:619 sql_help.c:630 sql_help.c:632 sql_help.c:676 sql_help.c:678 +#: sql_help.c:680 sql_help.c:683 sql_help.c:685 sql_help.c:687 sql_help.c:728 +#: sql_help.c:732 sql_help.c:736 sql_help.c:757 sql_help.c:760 sql_help.c:763 +#: sql_help.c:792 sql_help.c:804 sql_help.c:812 sql_help.c:815 sql_help.c:818 +#: sql_help.c:833 sql_help.c:836 sql_help.c:865 sql_help.c:870 sql_help.c:875 +#: sql_help.c:880 sql_help.c:885 sql_help.c:912 sql_help.c:914 sql_help.c:916 +#: sql_help.c:918 sql_help.c:921 sql_help.c:923 sql_help.c:970 sql_help.c:1015 +#: sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 sql_help.c:1035 +#: sql_help.c:1054 sql_help.c:1065 sql_help.c:1067 sql_help.c:1087 +#: sql_help.c:1097 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102 +#: sql_help.c:1114 sql_help.c:1118 sql_help.c:1120 sql_help.c:1132 +#: sql_help.c:1134 sql_help.c:1136 sql_help.c:1138 sql_help.c:1157 +#: sql_help.c:1159 sql_help.c:1163 sql_help.c:1167 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1175 sql_help.c:1176 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1184 sql_help.c:1324 sql_help.c:1326 +#: sql_help.c:1329 sql_help.c:1332 sql_help.c:1334 sql_help.c:1336 +#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1464 sql_help.c:1466 +#: sql_help.c:1468 sql_help.c:1471 sql_help.c:1492 sql_help.c:1495 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1505 sql_help.c:1507 +#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1525 sql_help.c:1528 +#: sql_help.c:1530 sql_help.c:1532 sql_help.c:1542 sql_help.c:1544 +#: sql_help.c:1554 sql_help.c:1556 sql_help.c:1566 sql_help.c:1569 +#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1596 sql_help.c:1598 +#: sql_help.c:1601 sql_help.c:1603 sql_help.c:1606 sql_help.c:1609 +#: sql_help.c:1660 sql_help.c:1703 sql_help.c:1706 sql_help.c:1708 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:1715 sql_help.c:1717 +#: sql_help.c:1720 sql_help.c:1770 sql_help.c:1786 sql_help.c:2019 +#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2120 sql_help.c:2178 +#: sql_help.c:2186 sql_help.c:2196 sql_help.c:2224 sql_help.c:2257 +#: sql_help.c:2275 sql_help.c:2303 sql_help.c:2414 sql_help.c:2460 +#: sql_help.c:2485 sql_help.c:2508 sql_help.c:2512 sql_help.c:2546 +#: sql_help.c:2566 sql_help.c:2588 sql_help.c:2602 sql_help.c:2623 +#: sql_help.c:2652 sql_help.c:2685 sql_help.c:2708 sql_help.c:2755 +#: sql_help.c:3053 sql_help.c:3066 sql_help.c:3083 sql_help.c:3099 +#: sql_help.c:3139 sql_help.c:3193 sql_help.c:3197 sql_help.c:3199 +#: sql_help.c:3206 sql_help.c:3225 sql_help.c:3252 sql_help.c:3287 +#: sql_help.c:3299 sql_help.c:3308 sql_help.c:3352 sql_help.c:3366 +#: sql_help.c:3394 sql_help.c:3402 sql_help.c:3414 sql_help.c:3424 +#: sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 sql_help.c:3456 +#: sql_help.c:3465 sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 +#: sql_help.c:3500 sql_help.c:3508 sql_help.c:3518 sql_help.c:3527 +#: sql_help.c:3536 sql_help.c:3544 sql_help.c:3554 sql_help.c:3565 +#: sql_help.c:3573 sql_help.c:3582 sql_help.c:3593 sql_help.c:3602 +#: sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 sql_help.c:3634 +#: sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 sql_help.c:3666 +#: sql_help.c:3674 sql_help.c:3682 sql_help.c:3699 sql_help.c:3708 +#: sql_help.c:3716 sql_help.c:3733 sql_help.c:3748 sql_help.c:4061 +#: sql_help.c:4182 sql_help.c:4211 sql_help.c:4227 sql_help.c:4229 +#: sql_help.c:4733 sql_help.c:4781 sql_help.c:4940 msgid "name" msgstr "nom" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1848 -#: sql_help.c:3347 sql_help.c:4468 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1863 +#: sql_help.c:3367 sql_help.c:4500 msgid "aggregate_signature" msgstr "signature_agrégat" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1317 sql_help.c:1444 -#: sql_help.c:1487 sql_help.c:1508 sql_help.c:1522 sql_help.c:1534 -#: sql_help.c:1547 sql_help.c:1574 sql_help.c:1640 sql_help.c:1693 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 +#: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 +#: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:759 sql_help.c:814 +#: sql_help.c:835 sql_help.c:874 sql_help.c:924 sql_help.c:971 sql_help.c:1024 +#: sql_help.c:1056 sql_help.c:1066 sql_help.c:1101 sql_help.c:1121 +#: sql_help.c:1135 sql_help.c:1185 sql_help.c:1333 sql_help.c:1465 +#: sql_help.c:1508 sql_help.c:1529 sql_help.c:1543 sql_help.c:1555 +#: sql_help.c:1568 sql_help.c:1595 sql_help.c:1661 sql_help.c:1714 msgid "new_name" msgstr "nouveau_nom" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1381 sql_help.c:1446 sql_help.c:1489 sql_help.c:1510 -#: sql_help.c:1572 sql_help.c:1688 sql_help.c:3019 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 +#: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 +#: sql_help.c:642 sql_help.c:707 sql_help.c:731 sql_help.c:762 sql_help.c:817 +#: sql_help.c:879 sql_help.c:922 sql_help.c:1029 sql_help.c:1068 +#: sql_help.c:1099 sql_help.c:1119 sql_help.c:1133 sql_help.c:1183 +#: sql_help.c:1399 sql_help.c:1467 sql_help.c:1510 sql_help.c:1531 +#: sql_help.c:1593 sql_help.c:1709 sql_help.c:3039 msgid "new_owner" msgstr "nouveau_propriétaire" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1319 sql_help.c:1491 sql_help.c:1512 -#: sql_help.c:1524 sql_help.c:1536 sql_help.c:1576 sql_help.c:1695 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 +#: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:735 sql_help.c:765 +#: sql_help.c:820 sql_help.c:884 sql_help.c:1034 sql_help.c:1103 +#: sql_help.c:1137 sql_help.c:1335 sql_help.c:1512 sql_help.c:1533 +#: sql_help.c:1545 sql_help.c:1557 sql_help.c:1597 sql_help.c:1716 msgid "new_schema" msgstr "nouveau_schéma" -#: sql_help.c:44 sql_help.c:1912 sql_help.c:3348 sql_help.c:4497 +#: sql_help.c:44 sql_help.c:1927 sql_help.c:3368 sql_help.c:4529 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:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:3915 sql_help.c:4367 sql_help.c:4474 -#: sql_help.c:4481 sql_help.c:4487 sql_help.c:4498 sql_help.c:4501 -#: sql_help.c:4504 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 +#: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 +#: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:866 +#: sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:886 sql_help.c:1016 +#: sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 sql_help.c:1036 +#: sql_help.c:1881 sql_help.c:1898 sql_help.c:1904 sql_help.c:1928 +#: sql_help.c:1931 sql_help.c:1934 sql_help.c:2089 sql_help.c:2108 +#: sql_help.c:2111 sql_help.c:2415 sql_help.c:2624 sql_help.c:3369 +#: sql_help.c:3372 sql_help.c:3375 sql_help.c:3466 sql_help.c:3555 +#: sql_help.c:3583 sql_help.c:3936 sql_help.c:4399 sql_help.c:4506 +#: sql_help.c:4513 sql_help.c:4519 sql_help.c:4530 sql_help.c:4533 +#: sql_help.c:4536 msgid "argmode" msgstr "mode_argument" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2071 sql_help.c:2090 -#: sql_help.c:2093 sql_help.c:2395 sql_help.c:2604 sql_help.c:3350 -#: sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 sql_help.c:3536 -#: sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 sql_help.c:4488 -#: sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 +#: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 +#: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:887 sql_help.c:1017 +#: sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 sql_help.c:1037 +#: sql_help.c:1882 sql_help.c:1899 sql_help.c:1905 sql_help.c:1929 +#: sql_help.c:1932 sql_help.c:1935 sql_help.c:2090 sql_help.c:2109 +#: sql_help.c:2112 sql_help.c:2416 sql_help.c:2625 sql_help.c:3370 +#: sql_help.c:3373 sql_help.c:3376 sql_help.c:3467 sql_help.c:3556 +#: sql_help.c:3584 sql_help.c:4507 sql_help.c:4514 sql_help.c:4520 +#: sql_help.c:4531 sql_help.c:4534 sql_help.c:4537 msgid "argname" msgstr "nom_agrégat" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1868 sql_help.c:1885 sql_help.c:1891 sql_help.c:1915 -#: sql_help.c:1918 sql_help.c:1921 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3357 sql_help.c:3448 -#: sql_help.c:3537 sql_help.c:3565 sql_help.c:4476 sql_help.c:4483 -#: sql_help.c:4489 sql_help.c:4500 sql_help.c:4503 sql_help.c:4506 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 +#: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 +#: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:868 +#: sql_help.c:873 sql_help.c:878 sql_help.c:883 sql_help.c:888 sql_help.c:1018 +#: sql_help.c:1023 sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 +#: sql_help.c:1883 sql_help.c:1900 sql_help.c:1906 sql_help.c:1930 +#: sql_help.c:1933 sql_help.c:1936 sql_help.c:2417 sql_help.c:2626 +#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3377 sql_help.c:3468 +#: sql_help.c:3557 sql_help.c:3585 sql_help.c:4508 sql_help.c:4515 +#: sql_help.c:4521 sql_help.c:4532 sql_help.c:4535 sql_help.c:4538 msgid "argtype" msgstr "type_argument" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1505 sql_help.c:1634 sql_help.c:1666 -#: sql_help.c:1719 sql_help.c:1783 sql_help.c:1970 sql_help.c:1977 -#: sql_help.c:2285 sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2440 sql_help.c:2667 sql_help.c:2760 sql_help.c:3048 -#: sql_help.c:3233 sql_help.c:3255 sql_help.c:3395 sql_help.c:3751 -#: sql_help.c:3959 sql_help.c:4194 sql_help.c:4196 sql_help.c:4973 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:965 +#: sql_help.c:1116 sql_help.c:1526 sql_help.c:1655 sql_help.c:1687 +#: sql_help.c:1739 sql_help.c:1798 sql_help.c:1987 sql_help.c:1994 +#: sql_help.c:2306 sql_help.c:2356 sql_help.c:2363 sql_help.c:2372 +#: sql_help.c:2461 sql_help.c:2686 sql_help.c:2777 sql_help.c:3068 +#: sql_help.c:3253 sql_help.c:3275 sql_help.c:3415 sql_help.c:3772 +#: sql_help.c:3980 sql_help.c:4226 sql_help.c:4228 sql_help.c:5006 msgid "option" msgstr "option" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1635 sql_help.c:2441 -#: sql_help.c:2668 sql_help.c:3234 sql_help.c:3396 +#: sql_help.c:115 sql_help.c:966 sql_help.c:1656 sql_help.c:2462 +#: sql_help.c:2687 sql_help.c:3254 sql_help.c:3416 msgid "where option can be:" msgstr "où option peut être :" -#: sql_help.c:116 sql_help.c:2217 +#: sql_help.c:116 sql_help.c:2238 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1636 sql_help.c:2218 -#: sql_help.c:2442 sql_help.c:2669 sql_help.c:3235 +#: sql_help.c:117 sql_help.c:967 sql_help.c:1657 sql_help.c:2239 +#: sql_help.c:2463 sql_help.c:2688 sql_help.c:3255 msgid "connlimit" msgstr "limite_de_connexion" -#: sql_help.c:118 sql_help.c:2219 +#: sql_help.c:118 sql_help.c:2240 msgid "istemplate" msgstr "istemplate" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1322 -#: sql_help.c:1374 sql_help.c:4200 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1338 +#: sql_help.c:1392 sql_help.c:4232 msgid "new_tablespace" msgstr "nouveau_tablespace" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1183 sql_help.c:1643 -#: sql_help.c:1647 sql_help.c:1650 sql_help.c:2406 sql_help.c:2609 -#: sql_help.c:3927 sql_help.c:4218 sql_help.c:4379 sql_help.c:4688 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 +#: sql_help.c:561 sql_help.c:891 sql_help.c:893 sql_help.c:894 sql_help.c:974 +#: sql_help.c:978 sql_help.c:981 sql_help.c:1043 sql_help.c:1045 +#: sql_help.c:1046 sql_help.c:1196 sql_help.c:1198 sql_help.c:1664 +#: sql_help.c:1668 sql_help.c:1671 sql_help.c:2427 sql_help.c:2630 +#: sql_help.c:3948 sql_help.c:4250 sql_help.c:4411 sql_help.c:4721 msgid "configuration_parameter" msgstr "paramètre_configuration" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1182 -#: sql_help.c:1353 sql_help.c:1376 sql_help.c:1424 sql_help.c:1449 -#: sql_help.c:1506 sql_help.c:1590 sql_help.c:1644 sql_help.c:1667 -#: sql_help.c:2286 sql_help.c:2336 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2407 sql_help.c:2408 sql_help.c:2472 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2610 sql_help.c:2611 sql_help.c:2634 -#: sql_help.c:2761 sql_help.c:2800 sql_help.c:2910 sql_help.c:2923 -#: sql_help.c:2937 sql_help.c:2978 sql_help.c:3005 sql_help.c:3022 -#: sql_help.c:3049 sql_help.c:3256 sql_help.c:3960 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 sql_help.c:4692 +#: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 +#: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:892 +#: sql_help.c:920 sql_help.c:975 sql_help.c:1044 sql_help.c:1117 +#: sql_help.c:1162 sql_help.c:1166 sql_help.c:1170 sql_help.c:1173 +#: sql_help.c:1178 sql_help.c:1181 sql_help.c:1197 sql_help.c:1371 +#: sql_help.c:1394 sql_help.c:1442 sql_help.c:1450 sql_help.c:1470 +#: sql_help.c:1527 sql_help.c:1611 sql_help.c:1665 sql_help.c:1688 +#: sql_help.c:2307 sql_help.c:2357 sql_help.c:2364 sql_help.c:2373 +#: sql_help.c:2428 sql_help.c:2429 sql_help.c:2493 sql_help.c:2496 +#: sql_help.c:2530 sql_help.c:2631 sql_help.c:2632 sql_help.c:2655 +#: sql_help.c:2778 sql_help.c:2817 sql_help.c:2927 sql_help.c:2940 +#: sql_help.c:2954 sql_help.c:2995 sql_help.c:3003 sql_help.c:3025 +#: sql_help.c:3042 sql_help.c:3069 sql_help.c:3276 sql_help.c:3981 +#: sql_help.c:4722 sql_help.c:4723 sql_help.c:4724 sql_help.c:4725 msgid "value" msgstr "valeur" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "rôle_cible" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2270 sql_help.c:2639 -#: sql_help.c:2716 sql_help.c:2721 sql_help.c:3890 sql_help.c:3899 -#: sql_help.c:3918 sql_help.c:3930 sql_help.c:4342 sql_help.c:4351 -#: sql_help.c:4370 sql_help.c:4382 +#: sql_help.c:203 sql_help.c:929 sql_help.c:2291 sql_help.c:2660 +#: sql_help.c:2733 sql_help.c:2738 sql_help.c:3911 sql_help.c:3920 +#: sql_help.c:3939 sql_help.c:3951 sql_help.c:4374 sql_help.c:4383 +#: sql_help.c:4402 sql_help.c:4414 msgid "schema_name" msgstr "nom_schéma" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "grant_ou_revoke_raccourci" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "où abbreviated_grant_or_revoke fait partie de :" -#: 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:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1321 sql_help.c:1654 sql_help.c:2445 sql_help.c:2446 -#: sql_help.c:2447 sql_help.c:2448 sql_help.c:2449 sql_help.c:2583 -#: sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 sql_help.c:2675 -#: sql_help.c:2676 sql_help.c:3238 sql_help.c:3239 sql_help.c:3240 -#: sql_help.c:3241 sql_help.c:3242 sql_help.c:3939 sql_help.c:3943 -#: sql_help.c:4391 sql_help.c:4395 sql_help.c:4710 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:838 sql_help.c:985 +#: sql_help.c:1337 sql_help.c:1675 sql_help.c:2466 sql_help.c:2467 +#: sql_help.c:2468 sql_help.c:2469 sql_help.c:2470 sql_help.c:2604 +#: sql_help.c:2691 sql_help.c:2692 sql_help.c:2693 sql_help.c:3258 +#: sql_help.c:3259 sql_help.c:3260 sql_help.c:3261 sql_help.c:3262 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:4423 sql_help.c:4427 +#: sql_help.c:4743 msgid "role_name" msgstr "nom_rôle" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1337 sql_help.c:1339 -#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1428 sql_help.c:1684 -#: sql_help.c:2239 sql_help.c:2243 sql_help.c:2355 sql_help.c:2360 -#: sql_help.c:2468 sql_help.c:2638 sql_help.c:2777 sql_help.c:2782 -#: sql_help.c:2784 sql_help.c:2905 sql_help.c:2918 sql_help.c:2932 -#: sql_help.c:2941 sql_help.c:2953 sql_help.c:2982 sql_help.c:3991 -#: sql_help.c:4006 sql_help.c:4008 sql_help.c:4095 sql_help.c:4098 -#: sql_help.c:4100 sql_help.c:4561 sql_help.c:4562 sql_help.c:4571 -#: sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 sql_help.c:4621 -#: sql_help.c:4622 sql_help.c:4623 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4669 sql_help.c:4674 sql_help.c:4818 sql_help.c:4819 -#: sql_help.c:4828 sql_help.c:4875 sql_help.c:4876 sql_help.c:4877 -#: sql_help.c:4878 sql_help.c:4879 sql_help.c:4880 sql_help.c:4934 -#: sql_help.c:4936 sql_help.c:5004 sql_help.c:5064 sql_help.c:5065 -#: sql_help.c:5074 sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 -#: sql_help.c:5124 sql_help.c:5125 sql_help.c:5126 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:928 sql_help.c:1353 +#: sql_help.c:1355 sql_help.c:1359 sql_help.c:1409 sql_help.c:1421 +#: sql_help.c:1446 sql_help.c:1705 sql_help.c:2260 sql_help.c:2264 +#: sql_help.c:2376 sql_help.c:2381 sql_help.c:2489 sql_help.c:2659 +#: sql_help.c:2794 sql_help.c:2799 sql_help.c:2801 sql_help.c:2922 +#: sql_help.c:2935 sql_help.c:2949 sql_help.c:2958 sql_help.c:2970 +#: sql_help.c:2999 sql_help.c:4012 sql_help.c:4027 sql_help.c:4029 +#: sql_help.c:4125 sql_help.c:4128 sql_help.c:4130 sql_help.c:4593 +#: sql_help.c:4594 sql_help.c:4603 sql_help.c:4650 sql_help.c:4651 +#: sql_help.c:4652 sql_help.c:4653 sql_help.c:4654 sql_help.c:4655 +#: sql_help.c:4696 sql_help.c:4697 sql_help.c:4702 sql_help.c:4707 +#: sql_help.c:4851 sql_help.c:4852 sql_help.c:4861 sql_help.c:4908 +#: sql_help.c:4909 sql_help.c:4910 sql_help.c:4911 sql_help.c:4912 +#: sql_help.c:4913 sql_help.c:4968 sql_help.c:4970 sql_help.c:5036 +#: sql_help.c:5096 sql_help.c:5097 sql_help.c:5106 sql_help.c:5153 +#: sql_help.c:5154 sql_help.c:5155 sql_help.c:5156 sql_help.c:5157 +#: sql_help.c:5158 msgid "expression" msgstr "expression" -#: sql_help.c:242 +#: sql_help.c:249 sql_help.c:2261 msgid "domain_constraint" msgstr "contrainte_domaine" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1314 sql_help.c:1361 sql_help.c:1362 sql_help.c:1363 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1419 sql_help.c:1854 -#: sql_help.c:1856 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:4003 +#: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 +#: sql_help.c:488 sql_help.c:1330 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1381 sql_help.c:1408 sql_help.c:1420 sql_help.c:1437 +#: sql_help.c:1869 sql_help.c:1871 sql_help.c:2263 sql_help.c:2375 +#: sql_help.c:2380 sql_help.c:2957 sql_help.c:2969 sql_help.c:4024 msgid "constraint_name" msgstr "nom_contrainte" -#: sql_help.c:247 sql_help.c:1315 +#: sql_help.c:254 sql_help.c:1331 msgid "new_constraint_name" msgstr "nouvelle_nom_contrainte" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:263 sql_help.c:2262 +msgid "where domain_constraint is:" +msgstr "où contrainte_domaine est :" + +#: sql_help.c:330 sql_help.c:1115 msgid "new_version" msgstr "nouvelle_version" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:334 sql_help.c:336 msgid "member_object" msgstr "objet_membre" -#: sql_help.c:327 +#: sql_help.c:337 msgid "where member_object is:" msgstr "où objet_membre fait partie de :" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1846 sql_help.c:1851 sql_help.c:1858 -#: sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 sql_help.c:1862 -#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1869 sql_help.c:1871 -#: sql_help.c:1875 sql_help.c:1877 sql_help.c:1881 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1894 sql_help.c:1895 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 -#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 -#: sql_help.c:1909 sql_help.c:1910 sql_help.c:4464 sql_help.c:4469 -#: sql_help.c:4470 sql_help.c:4471 sql_help.c:4472 sql_help.c:4478 -#: sql_help.c:4479 sql_help.c:4484 sql_help.c:4485 sql_help.c:4490 -#: sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 sql_help.c:4494 -#: sql_help.c:4495 +#: sql_help.c:338 sql_help.c:343 sql_help.c:344 sql_help.c:345 sql_help.c:346 +#: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 +#: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 +#: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 +#: sql_help.c:381 sql_help.c:1861 sql_help.c:1866 sql_help.c:1873 +#: sql_help.c:1874 sql_help.c:1875 sql_help.c:1876 sql_help.c:1877 +#: sql_help.c:1878 sql_help.c:1879 sql_help.c:1884 sql_help.c:1886 +#: sql_help.c:1890 sql_help.c:1892 sql_help.c:1896 sql_help.c:1901 +#: sql_help.c:1902 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 sql_help.c:1915 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:1918 sql_help.c:1919 +#: sql_help.c:1924 sql_help.c:1925 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4510 +#: sql_help.c:4511 sql_help.c:4516 sql_help.c:4517 sql_help.c:4522 +#: sql_help.c:4523 sql_help.c:4524 sql_help.c:4525 sql_help.c:4526 +#: sql_help.c:4527 msgid "object_name" msgstr "nom_objet" -#: sql_help.c:329 sql_help.c:1847 sql_help.c:4467 +#: sql_help.c:339 sql_help.c:1862 sql_help.c:4499 msgid "aggregate_name" msgstr "nom_agrégat" -#: sql_help.c:331 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:341 sql_help.c:1864 sql_help.c:2154 sql_help.c:2158 +#: sql_help.c:2160 sql_help.c:3385 msgid "source_type" msgstr "type_source" -#: sql_help.c:332 sql_help.c:1850 sql_help.c:2136 sql_help.c:2140 -#: sql_help.c:2142 sql_help.c:3366 +#: sql_help.c:342 sql_help.c:1865 sql_help.c:2155 sql_help.c:2159 +#: sql_help.c:2161 sql_help.c:3386 msgid "target_type" msgstr "type_cible" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1865 sql_help.c:2137 -#: sql_help.c:2180 sql_help.c:2258 sql_help.c:2526 sql_help.c:2557 -#: sql_help.c:3125 sql_help.c:4366 sql_help.c:4473 sql_help.c:4590 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4601 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5093 -#: sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:349 sql_help.c:802 sql_help.c:1880 sql_help.c:2156 +#: sql_help.c:2199 sql_help.c:2279 sql_help.c:2547 sql_help.c:2578 +#: sql_help.c:3145 sql_help.c:4398 sql_help.c:4505 sql_help.c:4622 +#: sql_help.c:4626 sql_help.c:4630 sql_help.c:4633 sql_help.c:4880 +#: sql_help.c:4884 sql_help.c:4888 sql_help.c:4891 sql_help.c:5125 +#: sql_help.c:5129 sql_help.c:5133 sql_help.c:5136 msgid "function_name" msgstr "nom_fonction" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1872 sql_help.c:2550 +#: sql_help.c:354 sql_help.c:795 sql_help.c:1887 sql_help.c:2571 msgid "operator_name" msgstr "nom_opérateur" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:355 sql_help.c:729 sql_help.c:733 sql_help.c:737 sql_help.c:1888 +#: sql_help.c:2548 sql_help.c:3509 msgid "left_type" msgstr "type_argument_gauche" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1874 -#: sql_help.c:2528 sql_help.c:3490 +#: sql_help.c:356 sql_help.c:730 sql_help.c:734 sql_help.c:738 sql_help.c:1889 +#: sql_help.c:2549 sql_help.c:3510 msgid "right_type" msgstr "type_argument_droit" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1408 sql_help.c:1876 sql_help.c:1878 sql_help.c:2547 -#: sql_help.c:2568 sql_help.c:2958 sql_help.c:3499 sql_help.c:3508 +#: sql_help.c:358 sql_help.c:360 sql_help.c:758 sql_help.c:761 sql_help.c:764 +#: sql_help.c:793 sql_help.c:805 sql_help.c:813 sql_help.c:816 sql_help.c:819 +#: sql_help.c:1426 sql_help.c:1891 sql_help.c:1893 sql_help.c:2568 +#: sql_help.c:2589 sql_help.c:2975 sql_help.c:3519 sql_help.c:3528 msgid "index_method" msgstr "méthode_indexage" -#: sql_help.c:352 sql_help.c:1882 sql_help.c:4480 +#: sql_help.c:362 sql_help.c:1897 sql_help.c:4512 msgid "procedure_name" msgstr "nom_procédure" -#: sql_help.c:356 sql_help.c:1888 sql_help.c:3914 sql_help.c:4486 +#: sql_help.c:366 sql_help.c:1903 sql_help.c:3935 sql_help.c:4518 msgid "routine_name" msgstr "nom_routine" -#: sql_help.c:368 sql_help.c:1380 sql_help.c:1905 sql_help.c:2402 -#: sql_help.c:2608 sql_help.c:2913 sql_help.c:3092 sql_help.c:3670 -#: sql_help.c:3936 sql_help.c:4388 +#: sql_help.c:378 sql_help.c:1398 sql_help.c:1920 sql_help.c:2423 +#: sql_help.c:2629 sql_help.c:2930 sql_help.c:3112 sql_help.c:3690 +#: sql_help.c:3957 sql_help.c:4420 msgid "type_name" msgstr "nom_type" -#: sql_help.c:369 sql_help.c:1906 sql_help.c:2401 sql_help.c:2607 -#: sql_help.c:3093 sql_help.c:3323 sql_help.c:3671 sql_help.c:3921 -#: sql_help.c:4373 +#: sql_help.c:379 sql_help.c:1921 sql_help.c:2422 sql_help.c:2628 +#: sql_help.c:3113 sql_help.c:3343 sql_help.c:3691 sql_help.c:3942 +#: sql_help.c:4405 msgid "lang_name" msgstr "nom_langage" -#: sql_help.c:372 +#: sql_help.c:382 msgid "and aggregate_signature is:" msgstr "et signature_agrégat est :" -#: sql_help.c:395 sql_help.c:2002 sql_help.c:2283 +#: sql_help.c:405 sql_help.c:2021 sql_help.c:2304 msgid "handler_function" msgstr "fonction_gestionnaire" -#: sql_help.c:396 sql_help.c:2284 +#: sql_help.c:406 sql_help.c:2305 msgid "validator_function" msgstr "fonction_validateur" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1309 sql_help.c:1581 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:869 sql_help.c:1019 +#: sql_help.c:1325 sql_help.c:1602 msgid "action" msgstr "action" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1311 sql_help.c:1329 sql_help.c:1333 sql_help.c:1334 -#: sql_help.c:1338 sql_help.c:1340 sql_help.c:1341 sql_help.c:1342 -#: sql_help.c:1343 sql_help.c:1345 sql_help.c:1348 sql_help.c:1349 -#: sql_help.c:1351 sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 -#: sql_help.c:1404 sql_help.c:1406 sql_help.c:1413 sql_help.c:1422 -#: sql_help.c:1427 sql_help.c:1431 sql_help.c:1432 sql_help.c:1683 -#: sql_help.c:1686 sql_help.c:1690 sql_help.c:1728 sql_help.c:1853 -#: sql_help.c:1967 sql_help.c:1973 sql_help.c:1987 sql_help.c:1988 -#: sql_help.c:1989 sql_help.c:2333 sql_help.c:2346 sql_help.c:2399 -#: sql_help.c:2467 sql_help.c:2473 sql_help.c:2506 sql_help.c:2637 -#: sql_help.c:2746 sql_help.c:2781 sql_help.c:2783 sql_help.c:2895 -#: sql_help.c:2904 sql_help.c:2914 sql_help.c:2917 sql_help.c:2927 -#: sql_help.c:2931 sql_help.c:2954 sql_help.c:2956 sql_help.c:2963 -#: sql_help.c:2976 sql_help.c:2981 sql_help.c:2985 sql_help.c:2986 -#: sql_help.c:3002 sql_help.c:3128 sql_help.c:3268 sql_help.c:3893 -#: sql_help.c:3894 sql_help.c:3990 sql_help.c:4005 sql_help.c:4007 -#: sql_help.c:4009 sql_help.c:4094 sql_help.c:4097 sql_help.c:4099 -#: sql_help.c:4345 sql_help.c:4346 sql_help.c:4466 sql_help.c:4627 -#: sql_help.c:4633 sql_help.c:4635 sql_help.c:4884 sql_help.c:4890 -#: sql_help.c:4892 sql_help.c:4933 sql_help.c:4935 sql_help.c:4937 -#: sql_help.c:4992 sql_help.c:5130 sql_help.c:5136 sql_help.c:5138 +#: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 +#: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 +#: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:927 sql_help.c:1096 +#: sql_help.c:1327 sql_help.c:1345 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1360 sql_help.c:1361 sql_help.c:1363 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1369 sql_help.c:1372 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1422 sql_help.c:1424 sql_help.c:1431 +#: sql_help.c:1440 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1704 sql_help.c:1707 sql_help.c:1711 sql_help.c:1747 +#: sql_help.c:1868 sql_help.c:1984 sql_help.c:1990 sql_help.c:2004 +#: sql_help.c:2005 sql_help.c:2006 sql_help.c:2354 sql_help.c:2367 +#: sql_help.c:2420 sql_help.c:2488 sql_help.c:2494 sql_help.c:2527 +#: sql_help.c:2658 sql_help.c:2763 sql_help.c:2798 sql_help.c:2800 +#: sql_help.c:2912 sql_help.c:2921 sql_help.c:2931 sql_help.c:2934 +#: sql_help.c:2944 sql_help.c:2948 sql_help.c:2971 sql_help.c:2973 +#: sql_help.c:2980 sql_help.c:2993 sql_help.c:2998 sql_help.c:3005 +#: sql_help.c:3006 sql_help.c:3022 sql_help.c:3148 sql_help.c:3288 +#: sql_help.c:3914 sql_help.c:3915 sql_help.c:4011 sql_help.c:4026 +#: sql_help.c:4028 sql_help.c:4030 sql_help.c:4124 sql_help.c:4127 +#: sql_help.c:4129 sql_help.c:4131 sql_help.c:4377 sql_help.c:4378 +#: sql_help.c:4498 sql_help.c:4659 sql_help.c:4666 sql_help.c:4668 +#: sql_help.c:4917 sql_help.c:4924 sql_help.c:4926 sql_help.c:4967 +#: sql_help.c:4969 sql_help.c:4971 sql_help.c:5024 sql_help.c:5162 +#: sql_help.c:5169 sql_help.c:5171 msgid "column_name" msgstr "nom_colonne" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1312 sql_help.c:1691 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1328 sql_help.c:1712 msgid "new_column_name" msgstr "nouvelle_nom_colonne" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1328 sql_help.c:1591 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:890 sql_help.c:1040 +#: sql_help.c:1344 sql_help.c:1612 msgid "where action is one of:" msgstr "où action fait partie de :" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1330 -#: sql_help.c:1335 sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 -#: sql_help.c:2334 sql_help.c:2546 sql_help.c:2739 sql_help.c:2896 -#: sql_help.c:3175 sql_help.c:4151 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1088 sql_help.c:1346 +#: sql_help.c:1351 sql_help.c:1614 sql_help.c:1618 sql_help.c:2258 +#: sql_help.c:2355 sql_help.c:2567 sql_help.c:2756 sql_help.c:2913 +#: sql_help.c:3195 sql_help.c:4183 msgid "data_type" msgstr "type_données" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1331 sql_help.c:1336 -#: sql_help.c:1594 sql_help.c:1598 sql_help.c:2238 sql_help.c:2337 -#: sql_help.c:2469 sql_help.c:2898 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:3176 sql_help.c:3182 sql_help.c:4000 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1347 sql_help.c:1352 +#: sql_help.c:1447 sql_help.c:1615 sql_help.c:1619 sql_help.c:2259 +#: sql_help.c:2358 sql_help.c:2490 sql_help.c:2915 sql_help.c:2923 +#: sql_help.c:2936 sql_help.c:2950 sql_help.c:3000 sql_help.c:3196 +#: sql_help.c:3202 sql_help.c:4021 msgid "collation" msgstr "collationnement" -#: sql_help.c:456 sql_help.c:1332 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:466 sql_help.c:1348 sql_help.c:2359 sql_help.c:2368 +#: sql_help.c:2916 sql_help.c:2932 sql_help.c:2945 msgid "column_constraint" msgstr "contrainte_colonne" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1350 sql_help.c:4986 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1368 sql_help.c:5018 msgid "integer" msgstr "entier" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1352 -#: sql_help.c:1355 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1370 +#: sql_help.c:1373 msgid "attribute_option" msgstr "option_attribut" -#: sql_help.c:476 sql_help.c:1359 sql_help.c:2339 sql_help.c:2348 -#: sql_help.c:2900 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:486 sql_help.c:1377 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2917 sql_help.c:2933 sql_help.c:2946 msgid "table_constraint" msgstr "contrainte_table" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1364 -#: sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 sql_help.c:1907 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1382 +#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:1922 msgid "trigger_name" msgstr "nom_trigger" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1378 sql_help.c:1379 -#: sql_help.c:2340 sql_help.c:2345 sql_help.c:2903 sql_help.c:2926 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:2361 sql_help.c:2366 sql_help.c:2920 sql_help.c:2943 msgid "parent_table" msgstr "table_parent" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1550 sql_help.c:2269 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:889 sql_help.c:1039 +#: sql_help.c:1571 sql_help.c:2290 msgid "extension_name" msgstr "nom_extension" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2403 +#: sql_help.c:555 sql_help.c:1041 sql_help.c:2424 msgid "execution_cost" msgstr "coût_exécution" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2404 +#: sql_help.c:556 sql_help.c:1042 sql_help.c:2425 msgid "result_rows" msgstr "lignes_de_résultat" -#: sql_help.c:547 sql_help.c:2405 +#: sql_help.c:557 sql_help.c:2426 msgid "support_function" msgstr "fonction_support" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1633 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:2717 -#: sql_help.c:2719 sql_help.c:2722 sql_help.c:2723 sql_help.c:3891 -#: sql_help.c:3892 sql_help.c:3896 sql_help.c:3897 sql_help.c:3900 -#: sql_help.c:3901 sql_help.c:3903 sql_help.c:3904 sql_help.c:3906 -#: sql_help.c:3907 sql_help.c:3909 sql_help.c:3910 sql_help.c:3912 -#: sql_help.c:3913 sql_help.c:3919 sql_help.c:3920 sql_help.c:3922 -#: sql_help.c:3923 sql_help.c:3925 sql_help.c:3926 sql_help.c:3928 -#: sql_help.c:3929 sql_help.c:3931 sql_help.c:3932 sql_help.c:3934 -#: sql_help.c:3935 sql_help.c:3937 sql_help.c:3938 sql_help.c:3940 -#: sql_help.c:3941 sql_help.c:4343 sql_help.c:4344 sql_help.c:4348 -#: sql_help.c:4349 sql_help.c:4352 sql_help.c:4353 sql_help.c:4355 -#: sql_help.c:4356 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4374 sql_help.c:4375 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 +#: sql_help.c:579 sql_help.c:581 sql_help.c:964 sql_help.c:972 sql_help.c:976 +#: sql_help.c:979 sql_help.c:982 sql_help.c:1654 sql_help.c:1662 +#: sql_help.c:1666 sql_help.c:1669 sql_help.c:1672 sql_help.c:2734 +#: sql_help.c:2736 sql_help.c:2739 sql_help.c:2740 sql_help.c:3912 +#: sql_help.c:3913 sql_help.c:3917 sql_help.c:3918 sql_help.c:3921 +#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 +#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 +#: sql_help.c:3934 sql_help.c:3940 sql_help.c:3941 sql_help.c:3943 +#: sql_help.c:3944 sql_help.c:3946 sql_help.c:3947 sql_help.c:3949 +#: sql_help.c:3950 sql_help.c:3952 sql_help.c:3953 sql_help.c:3955 +#: sql_help.c:3956 sql_help.c:3958 sql_help.c:3959 sql_help.c:3961 +#: sql_help.c:3962 sql_help.c:4375 sql_help.c:4376 sql_help.c:4380 +#: sql_help.c:4381 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4393 +#: sql_help.c:4394 sql_help.c:4396 sql_help.c:4397 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 sql_help.c:4421 +#: sql_help.c:4422 sql_help.c:4424 sql_help.c:4425 msgid "role_specification" msgstr "specification_role" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1664 sql_help.c:2205 -#: sql_help.c:2725 sql_help.c:3253 sql_help.c:3704 sql_help.c:4720 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1685 sql_help.c:2225 +#: sql_help.c:2742 sql_help.c:3273 sql_help.c:3724 sql_help.c:4753 msgid "user_name" msgstr "nom_utilisateur" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1653 sql_help.c:2724 -#: sql_help.c:3942 sql_help.c:4394 +#: sql_help.c:583 sql_help.c:984 sql_help.c:1674 sql_help.c:2741 +#: sql_help.c:3963 sql_help.c:4426 msgid "where role_specification can be:" msgstr "où specification_role peut être :" -#: sql_help.c:575 +#: sql_help.c:585 msgid "group_name" msgstr "nom_groupe" -#: sql_help.c:596 sql_help.c:1425 sql_help.c:2216 sql_help.c:2476 -#: sql_help.c:2510 sql_help.c:2911 sql_help.c:2924 sql_help.c:2938 -#: sql_help.c:2979 sql_help.c:3006 sql_help.c:3018 sql_help.c:3933 -#: sql_help.c:4385 +#: sql_help.c:606 sql_help.c:1443 sql_help.c:2237 sql_help.c:2497 +#: sql_help.c:2531 sql_help.c:2928 sql_help.c:2941 sql_help.c:2955 +#: sql_help.c:2996 sql_help.c:3026 sql_help.c:3038 sql_help.c:3954 +#: sql_help.c:4417 msgid "tablespace_name" msgstr "nom_tablespace" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1372 sql_help.c:1382 -#: sql_help.c:1420 sql_help.c:1782 sql_help.c:1785 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1390 sql_help.c:1400 +#: sql_help.c:1438 sql_help.c:1800 msgid "index_name" msgstr "nom_index" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1375 -#: sql_help.c:1377 sql_help.c:1423 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 sql_help.c:2977 -#: sql_help.c:3004 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1393 +#: sql_help.c:1395 sql_help.c:1441 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2926 sql_help.c:2939 sql_help.c:2953 sql_help.c:2994 +#: sql_help.c:3024 msgid "storage_parameter" msgstr "paramètre_stockage" -#: sql_help.c:607 +#: sql_help.c:617 msgid "column_number" msgstr "numéro_colonne" -#: sql_help.c:631 sql_help.c:1870 sql_help.c:4477 +#: sql_help.c:641 sql_help.c:1885 sql_help.c:4509 msgid "large_object_oid" msgstr "oid_large_object" -#: sql_help.c:690 sql_help.c:1358 sql_help.c:2897 +#: sql_help.c:700 sql_help.c:1376 sql_help.c:2914 msgid "compression_method" msgstr "méthode_compression" -#: sql_help.c:692 sql_help.c:1373 +#: sql_help.c:702 sql_help.c:1391 msgid "new_access_method" msgstr "new_access_method" -#: sql_help.c:725 sql_help.c:2531 +#: sql_help.c:739 sql_help.c:2552 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:726 sql_help.c:2532 +#: sql_help.c:740 sql_help.c:2553 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2549 +#: sql_help.c:741 sql_help.c:2550 +msgid "com_op" +msgstr "com_op" + +#: sql_help.c:742 sql_help.c:2551 +msgid "neg_op" +msgstr "neg_op" + +#: sql_help.c:794 sql_help.c:806 sql_help.c:2570 msgid "strategy_number" msgstr "numéro_de_stratégie" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2551 sql_help.c:2552 -#: sql_help.c:2555 sql_help.c:2556 +#: sql_help.c:796 sql_help.c:797 sql_help.c:800 sql_help.c:801 sql_help.c:807 +#: sql_help.c:808 sql_help.c:810 sql_help.c:811 sql_help.c:2572 sql_help.c:2573 +#: sql_help.c:2576 sql_help.c:2577 msgid "op_type" msgstr "type_op" -#: sql_help.c:782 sql_help.c:2553 +#: sql_help.c:798 sql_help.c:2574 msgid "sort_family_name" msgstr "nom_famille_tri" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2554 +#: sql_help.c:799 sql_help.c:809 sql_help.c:2575 msgid "support_number" msgstr "numéro_de_support" -#: sql_help.c:787 sql_help.c:2138 sql_help.c:2558 sql_help.c:3095 -#: sql_help.c:3097 +#: sql_help.c:803 sql_help.c:2157 sql_help.c:2579 sql_help.c:3115 +#: sql_help.c:3117 msgid "argument_type" msgstr "type_argument" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1546 sql_help.c:1549 sql_help.c:1727 sql_help.c:1781 -#: sql_help.c:1784 sql_help.c:1855 sql_help.c:1880 sql_help.c:1893 -#: sql_help.c:1908 sql_help.c:1966 sql_help.c:1972 sql_help.c:2332 -#: sql_help.c:2344 sql_help.c:2465 sql_help.c:2505 sql_help.c:2582 -#: sql_help.c:2636 sql_help.c:2693 sql_help.c:2745 sql_help.c:2778 -#: sql_help.c:2785 sql_help.c:2894 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:3001 sql_help.c:3121 sql_help.c:3302 sql_help.c:3525 -#: sql_help.c:3574 sql_help.c:3680 sql_help.c:3889 sql_help.c:3895 -#: sql_help.c:3956 sql_help.c:3988 sql_help.c:4341 sql_help.c:4347 -#: sql_help.c:4465 sql_help.c:4576 sql_help.c:4578 sql_help.c:4640 -#: sql_help.c:4679 sql_help.c:4833 sql_help.c:4835 sql_help.c:4897 -#: sql_help.c:4931 sql_help.c:4991 sql_help.c:5079 sql_help.c:5081 -#: sql_help.c:5143 +#: sql_help.c:834 sql_help.c:837 sql_help.c:926 sql_help.c:1055 sql_help.c:1095 +#: sql_help.c:1567 sql_help.c:1570 sql_help.c:1746 sql_help.c:1799 +#: sql_help.c:1870 sql_help.c:1895 sql_help.c:1908 sql_help.c:1923 +#: sql_help.c:1983 sql_help.c:1989 sql_help.c:2353 sql_help.c:2365 +#: sql_help.c:2486 sql_help.c:2526 sql_help.c:2603 sql_help.c:2657 +#: sql_help.c:2710 sql_help.c:2762 sql_help.c:2795 sql_help.c:2802 +#: sql_help.c:2911 sql_help.c:2929 sql_help.c:2942 sql_help.c:3021 +#: sql_help.c:3141 sql_help.c:3322 sql_help.c:3545 sql_help.c:3594 +#: sql_help.c:3700 sql_help.c:3910 sql_help.c:3916 sql_help.c:3977 +#: sql_help.c:4009 sql_help.c:4373 sql_help.c:4379 sql_help.c:4497 +#: sql_help.c:4610 sql_help.c:4673 sql_help.c:4712 sql_help.c:4868 +#: sql_help.c:4931 sql_help.c:4965 sql_help.c:5023 sql_help.c:5113 +#: sql_help.c:5176 msgid "table_name" msgstr "nom_table" -#: sql_help.c:823 sql_help.c:2584 +#: sql_help.c:839 sql_help.c:2605 msgid "using_expression" msgstr "expression_using" -#: sql_help.c:824 sql_help.c:2585 +#: sql_help.c:840 sql_help.c:2606 msgid "check_expression" msgstr "expression_check" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2632 +#: sql_help.c:913 sql_help.c:915 sql_help.c:917 sql_help.c:2653 msgid "publication_object" msgstr "objet_publication" -#: sql_help.c:903 sql_help.c:2633 +#: sql_help.c:919 sql_help.c:2654 msgid "publication_parameter" msgstr "paramètre_publication" -#: sql_help.c:909 sql_help.c:2635 +#: sql_help.c:925 sql_help.c:2656 msgid "where publication_object is one of:" msgstr "où publication_object fait partie de :" -#: sql_help.c:952 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:968 sql_help.c:1658 sql_help.c:2464 sql_help.c:2689 +#: sql_help.c:3256 msgid "password" msgstr "mot_de_passe" -#: sql_help.c:953 sql_help.c:1638 sql_help.c:2444 sql_help.c:2671 -#: sql_help.c:3237 +#: sql_help.c:969 sql_help.c:1659 sql_help.c:2465 sql_help.c:2690 +#: sql_help.c:3257 msgid "timestamp" msgstr "horodatage" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:1652 sql_help.c:3902 -#: sql_help.c:4354 +#: sql_help.c:973 sql_help.c:977 sql_help.c:980 sql_help.c:983 sql_help.c:1663 +#: sql_help.c:1667 sql_help.c:1670 sql_help.c:1673 sql_help.c:3923 +#: sql_help.c:4386 msgid "database_name" msgstr "nom_base_de_donnée" -#: sql_help.c:1073 sql_help.c:2740 +#: sql_help.c:1089 sql_help.c:2757 msgid "increment" msgstr "incrément" -#: sql_help.c:1074 sql_help.c:2741 +#: sql_help.c:1090 sql_help.c:2758 msgid "minvalue" msgstr "valeur_min" -#: sql_help.c:1075 sql_help.c:2742 +#: sql_help.c:1091 sql_help.c:2759 msgid "maxvalue" msgstr "valeur_max" -#: sql_help.c:1076 sql_help.c:2743 sql_help.c:4574 sql_help.c:4677 -#: sql_help.c:4831 sql_help.c:5008 sql_help.c:5077 +#: sql_help.c:1092 sql_help.c:2760 sql_help.c:4606 sql_help.c:4710 +#: sql_help.c:4864 sql_help.c:5040 sql_help.c:5109 msgid "start" msgstr "début" -#: sql_help.c:1077 sql_help.c:1347 +#: sql_help.c:1093 sql_help.c:1365 msgid "restart" msgstr "nouveau_début" -#: sql_help.c:1078 sql_help.c:2744 +#: sql_help.c:1094 sql_help.c:2761 msgid "cache" msgstr "cache" -#: sql_help.c:1123 +#: sql_help.c:1139 msgid "new_target" msgstr "nouvelle_cible" -#: sql_help.c:1142 sql_help.c:2797 +#: sql_help.c:1158 sql_help.c:2814 msgid "conninfo" msgstr "conninfo" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2798 +#: sql_help.c:1160 sql_help.c:1164 sql_help.c:1168 sql_help.c:2815 msgid "publication_name" msgstr "nom_publication" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1161 sql_help.c:1165 sql_help.c:1169 msgid "publication_option" msgstr "option_publication" -#: sql_help.c:1156 +#: sql_help.c:1172 msgid "refresh_option" msgstr "option_rafraichissement" -#: sql_help.c:1161 sql_help.c:2799 +#: sql_help.c:1177 sql_help.c:2816 msgid "subscription_parameter" msgstr "paramètre_souscription" -#: sql_help.c:1164 +#: sql_help.c:1180 msgid "skip_option" msgstr "option_skip" -#: sql_help.c:1324 sql_help.c:1327 +#: sql_help.c:1340 sql_help.c:1343 msgid "partition_name" msgstr "nom_partition" -#: sql_help.c:1325 sql_help.c:2349 sql_help.c:2930 +#: sql_help.c:1341 sql_help.c:2370 sql_help.c:2947 msgid "partition_bound_spec" msgstr "spec_limite_partition" -#: sql_help.c:1344 sql_help.c:1394 sql_help.c:2944 +#: sql_help.c:1362 sql_help.c:1412 sql_help.c:2961 msgid "sequence_options" msgstr "options_séquence" -#: sql_help.c:1346 +#: sql_help.c:1364 msgid "sequence_option" msgstr "option_séquence" -#: sql_help.c:1360 +#: sql_help.c:1378 msgid "table_constraint_using_index" msgstr "contrainte_table_utilisant_index" -#: sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 +#: sql_help.c:1386 sql_help.c:1387 sql_help.c:1388 sql_help.c:1389 msgid "rewrite_rule_name" msgstr "nom_règle_réécriture" -#: sql_help.c:1383 sql_help.c:2361 sql_help.c:2969 +#: sql_help.c:1401 sql_help.c:2382 sql_help.c:2986 msgid "and partition_bound_spec is:" msgstr "et partition_bound_spec est :" -#: sql_help.c:1384 sql_help.c:1385 sql_help.c:1386 sql_help.c:2362 -#: sql_help.c:2363 sql_help.c:2364 sql_help.c:2970 sql_help.c:2971 -#: sql_help.c:2972 +#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1404 sql_help.c:2383 +#: sql_help.c:2384 sql_help.c:2385 sql_help.c:2987 sql_help.c:2988 +#: sql_help.c:2989 msgid "partition_bound_expr" msgstr "expr_limite_partition" -#: sql_help.c:1387 sql_help.c:1388 sql_help.c:2365 sql_help.c:2366 -#: sql_help.c:2973 sql_help.c:2974 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:2386 sql_help.c:2387 +#: sql_help.c:2990 sql_help.c:2991 msgid "numeric_literal" msgstr "numeric_literal" -#: sql_help.c:1389 +#: sql_help.c:1407 msgid "and column_constraint is:" msgstr "et contrainte_colonne est :" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2397 sql_help.c:2606 -#: sql_help.c:2942 +#: sql_help.c:1410 sql_help.c:2377 sql_help.c:2418 sql_help.c:2627 +#: sql_help.c:2959 msgid "default_expr" msgstr "expression_par_défaut" -#: sql_help.c:1393 sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:1411 sql_help.c:2378 sql_help.c:2960 msgid "generation_expr" msgstr "expression_génération" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1405 sql_help.c:1407 -#: sql_help.c:1411 sql_help.c:2945 sql_help.c:2946 sql_help.c:2955 -#: sql_help.c:2957 sql_help.c:2961 +#: sql_help.c:1413 sql_help.c:1414 sql_help.c:1423 sql_help.c:1425 +#: sql_help.c:1429 sql_help.c:2962 sql_help.c:2963 sql_help.c:2972 +#: sql_help.c:2974 sql_help.c:2978 msgid "index_parameters" msgstr "paramètres_index" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1415 sql_help.c:1432 sql_help.c:2964 sql_help.c:2981 msgid "reftable" msgstr "table_référence" -#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2948 sql_help.c:2965 +#: sql_help.c:1416 sql_help.c:1433 sql_help.c:2965 sql_help.c:2982 msgid "refcolumn" msgstr "colonne_référence" -#: sql_help.c:1399 sql_help.c:1400 sql_help.c:1416 sql_help.c:1417 -#: sql_help.c:2949 sql_help.c:2950 sql_help.c:2966 sql_help.c:2967 +#: sql_help.c:1417 sql_help.c:1418 sql_help.c:1434 sql_help.c:1435 +#: sql_help.c:2966 sql_help.c:2967 sql_help.c:2983 sql_help.c:2984 msgid "referential_action" msgstr "action" -#: sql_help.c:1401 sql_help.c:2358 sql_help.c:2951 +#: sql_help.c:1419 sql_help.c:2379 sql_help.c:2968 msgid "and table_constraint is:" msgstr "et contrainte_table est :" -#: sql_help.c:1409 sql_help.c:2959 +#: sql_help.c:1427 sql_help.c:2976 msgid "exclude_element" msgstr "élément_exclusion" -#: sql_help.c:1410 sql_help.c:2960 sql_help.c:4572 sql_help.c:4675 -#: sql_help.c:4829 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1428 sql_help.c:2977 sql_help.c:4604 sql_help.c:4708 +#: sql_help.c:4862 sql_help.c:5038 sql_help.c:5107 msgid "operator" msgstr "opérateur" -#: sql_help.c:1412 sql_help.c:2477 sql_help.c:2962 +#: sql_help.c:1430 sql_help.c:2498 sql_help.c:2979 msgid "predicate" msgstr "prédicat" -#: sql_help.c:1418 +#: sql_help.c:1436 msgid "and table_constraint_using_index is:" msgstr "et contrainte_table_utilisant_index est :" -#: sql_help.c:1421 sql_help.c:2975 +#: sql_help.c:1439 sql_help.c:2992 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:1426 sql_help.c:2980 +#: sql_help.c:1444 sql_help.c:2997 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "élément_exclusion dans une contrainte EXCLUDE est :" -#: sql_help.c:1429 sql_help.c:2470 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:2983 sql_help.c:4001 +#: sql_help.c:1448 sql_help.c:2491 sql_help.c:2924 sql_help.c:2937 +#: sql_help.c:2951 sql_help.c:3001 sql_help.c:4022 msgid "opclass" msgstr "classe_d_opérateur" -#: sql_help.c:1430 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:2492 sql_help.c:3002 +msgid "opclass_parameter" +msgstr "paramètre_opclass" + +#: sql_help.c:1451 sql_help.c:3004 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "referential_action dans une contrainte FOREIGN KEY/REFERENCES est :" -#: sql_help.c:1448 sql_help.c:1451 sql_help.c:3021 +#: sql_help.c:1469 sql_help.c:1472 sql_help.c:3041 msgid "tablespace_option" msgstr "option_tablespace" -#: sql_help.c:1472 sql_help.c:1475 sql_help.c:1481 sql_help.c:1485 +#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1502 sql_help.c:1506 msgid "token_type" msgstr "type_jeton" -#: sql_help.c:1473 sql_help.c:1476 +#: sql_help.c:1494 sql_help.c:1497 msgid "dictionary_name" msgstr "nom_dictionnaire" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1499 sql_help.c:1503 msgid "old_dictionary" msgstr "ancien_dictionnaire" -#: sql_help.c:1479 sql_help.c:1483 +#: sql_help.c:1500 sql_help.c:1504 msgid "new_dictionary" msgstr "nouveau_dictionnaire" -#: sql_help.c:1578 sql_help.c:1592 sql_help.c:1595 sql_help.c:1596 -#: sql_help.c:3174 +#: sql_help.c:1599 sql_help.c:1613 sql_help.c:1616 sql_help.c:1617 +#: sql_help.c:3194 msgid "attribute_name" msgstr "nom_attribut" -#: sql_help.c:1579 +#: sql_help.c:1600 msgid "new_attribute_name" msgstr "nouveau_nom_attribut" -#: sql_help.c:1583 sql_help.c:1587 +#: sql_help.c:1604 sql_help.c:1608 msgid "new_enum_value" msgstr "nouvelle_valeur_enum" -#: sql_help.c:1584 +#: sql_help.c:1605 msgid "neighbor_enum_value" msgstr "valeur_enum_voisine" -#: sql_help.c:1586 +#: sql_help.c:1607 msgid "existing_enum_value" msgstr "valeur_enum_existante" -#: sql_help.c:1589 +#: sql_help.c:1610 msgid "property" msgstr "propriété" -#: sql_help.c:1665 sql_help.c:2341 sql_help.c:2350 sql_help.c:2756 -#: sql_help.c:3254 sql_help.c:3705 sql_help.c:3911 sql_help.c:3957 -#: sql_help.c:4363 +#: sql_help.c:1686 sql_help.c:2362 sql_help.c:2371 sql_help.c:2773 +#: sql_help.c:3274 sql_help.c:3725 sql_help.c:3932 sql_help.c:3978 +#: sql_help.c:4395 msgid "server_name" msgstr "nom_serveur" -#: sql_help.c:1697 sql_help.c:1700 sql_help.c:3269 +#: sql_help.c:1718 sql_help.c:1721 sql_help.c:3289 msgid "view_option_name" msgstr "nom_option_vue" -#: sql_help.c:1698 sql_help.c:3270 +#: sql_help.c:1719 sql_help.c:3290 msgid "view_option_value" msgstr "valeur_option_vue" -#: sql_help.c:1720 sql_help.c:1721 sql_help.c:4974 sql_help.c:4975 +#: sql_help.c:1740 sql_help.c:5007 msgid "table_and_columns" msgstr "table_et_colonnes" -#: sql_help.c:1722 sql_help.c:1786 sql_help.c:1978 sql_help.c:3754 -#: sql_help.c:4198 sql_help.c:4976 +#: sql_help.c:1741 sql_help.c:1801 sql_help.c:1995 sql_help.c:3774 +#: sql_help.c:4230 sql_help.c:5008 msgid "where option can be one of:" msgstr "où option fait partie de :" -#: sql_help.c:1723 sql_help.c:1724 sql_help.c:1787 sql_help.c:1980 -#: sql_help.c:1984 sql_help.c:2164 sql_help.c:3755 sql_help.c:3756 -#: sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 sql_help.c:3760 -#: sql_help.c:3761 sql_help.c:3762 sql_help.c:3763 sql_help.c:4199 -#: sql_help.c:4201 sql_help.c:4977 sql_help.c:4978 sql_help.c:4979 -#: sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 sql_help.c:4983 -#: sql_help.c:4984 sql_help.c:4985 sql_help.c:4987 sql_help.c:4988 +#: sql_help.c:1742 sql_help.c:1743 sql_help.c:1802 sql_help.c:1997 +#: sql_help.c:2001 sql_help.c:2183 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:3777 sql_help.c:3778 sql_help.c:3779 sql_help.c:3780 +#: sql_help.c:3781 sql_help.c:3782 sql_help.c:3783 sql_help.c:3784 +#: sql_help.c:4231 sql_help.c:4233 sql_help.c:5009 sql_help.c:5010 +#: sql_help.c:5011 sql_help.c:5012 sql_help.c:5013 sql_help.c:5014 +#: sql_help.c:5015 sql_help.c:5016 sql_help.c:5017 sql_help.c:5019 +#: sql_help.c:5020 msgid "boolean" msgstr "boolean" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1744 sql_help.c:5021 msgid "size" msgstr "taille" -#: sql_help.c:1726 sql_help.c:4990 +#: sql_help.c:1745 sql_help.c:5022 msgid "and table_and_columns is:" msgstr "et table_et_colonnes est :" -#: sql_help.c:1742 sql_help.c:4736 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1761 sql_help.c:4769 sql_help.c:4771 sql_help.c:4795 msgid "transaction_mode" msgstr "mode_transaction" -#: sql_help.c:1743 sql_help.c:4739 sql_help.c:4763 +#: sql_help.c:1762 sql_help.c:4772 sql_help.c:4796 msgid "where transaction_mode is one of:" msgstr "où mode_transaction fait partie de :" -#: sql_help.c:1752 sql_help.c:4582 sql_help.c:4591 sql_help.c:4595 -#: sql_help.c:4599 sql_help.c:4602 sql_help.c:4839 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4856 sql_help.c:4859 sql_help.c:5085 -#: sql_help.c:5094 sql_help.c:5098 sql_help.c:5102 sql_help.c:5105 +#: sql_help.c:1771 sql_help.c:4614 sql_help.c:4623 sql_help.c:4627 +#: sql_help.c:4631 sql_help.c:4634 sql_help.c:4872 sql_help.c:4881 +#: sql_help.c:4885 sql_help.c:4889 sql_help.c:4892 sql_help.c:5117 +#: sql_help.c:5126 sql_help.c:5130 sql_help.c:5134 sql_help.c:5137 msgid "argument" msgstr "argument" -#: sql_help.c:1852 +#: sql_help.c:1867 msgid "relation_name" msgstr "nom_relation" -#: sql_help.c:1857 sql_help.c:3905 sql_help.c:4357 +#: sql_help.c:1872 sql_help.c:3926 sql_help.c:4389 msgid "domain_name" msgstr "nom_domaine" -#: sql_help.c:1879 +#: sql_help.c:1894 msgid "policy_name" msgstr "nom_politique" -#: sql_help.c:1892 +#: sql_help.c:1907 msgid "rule_name" msgstr "nom_règle" -#: sql_help.c:1911 sql_help.c:4496 +#: sql_help.c:1926 sql_help.c:4528 msgid "string_literal" msgstr "littéral_chaîne" -#: sql_help.c:1936 sql_help.c:4160 sql_help.c:4410 +#: sql_help.c:1951 sql_help.c:4192 sql_help.c:4442 msgid "transaction_id" msgstr "id_transaction" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:4027 +#: sql_help.c:1985 sql_help.c:1992 sql_help.c:4048 msgid "filename" msgstr "nom_fichier" -#: sql_help.c:1969 sql_help.c:1976 sql_help.c:2695 sql_help.c:2696 -#: sql_help.c:2697 +#: sql_help.c:1986 sql_help.c:1993 sql_help.c:2712 sql_help.c:2713 +#: sql_help.c:2714 msgid "command" msgstr "commande" -#: sql_help.c:1971 sql_help.c:2694 sql_help.c:3124 sql_help.c:3305 -#: sql_help.c:4011 sql_help.c:4088 sql_help.c:4091 sql_help.c:4565 -#: sql_help.c:4567 sql_help.c:4668 sql_help.c:4670 sql_help.c:4822 -#: sql_help.c:4824 sql_help.c:4940 sql_help.c:5068 sql_help.c:5070 +#: sql_help.c:1988 sql_help.c:2711 sql_help.c:3144 sql_help.c:3325 +#: sql_help.c:4032 sql_help.c:4115 sql_help.c:4118 sql_help.c:4121 +#: sql_help.c:4597 sql_help.c:4599 sql_help.c:4701 sql_help.c:4703 +#: sql_help.c:4855 sql_help.c:4857 sql_help.c:4974 sql_help.c:5100 +#: sql_help.c:5102 msgid "condition" msgstr "condition" -#: sql_help.c:1974 sql_help.c:2511 sql_help.c:3007 sql_help.c:3271 -#: sql_help.c:3289 sql_help.c:3992 +#: sql_help.c:1991 sql_help.c:2532 sql_help.c:3027 sql_help.c:3291 +#: sql_help.c:3309 sql_help.c:4013 msgid "query" msgstr "requête" -#: sql_help.c:1979 +#: sql_help.c:1996 msgid "format_name" msgstr "nom_format" -#: sql_help.c:1981 +#: sql_help.c:1998 msgid "delimiter_character" msgstr "caractère_délimiteur" -#: sql_help.c:1982 +#: sql_help.c:1999 msgid "null_string" msgstr "chaîne_null" -#: sql_help.c:1983 +#: sql_help.c:2000 msgid "default_string" msgstr "chaîne_par_défaut" -#: sql_help.c:1985 +#: sql_help.c:2002 msgid "quote_character" msgstr "caractère_guillemet" -#: sql_help.c:1986 +#: sql_help.c:2003 msgid "escape_character" msgstr "chaîne_d_échappement" -#: sql_help.c:1990 +#: sql_help.c:2007 +msgid "error_action" +msgstr "action_erreur" + +#: sql_help.c:2008 msgid "encoding_name" msgstr "nom_encodage" -#: sql_help.c:2001 +#: sql_help.c:2009 +msgid "verbosity" +msgstr "verbosité" + +#: sql_help.c:2020 msgid "access_method_type" msgstr "access_method_type" -#: sql_help.c:2072 sql_help.c:2091 sql_help.c:2094 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2113 msgid "arg_data_type" msgstr "type_données_arg" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2092 sql_help.c:2114 sql_help.c:2122 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2093 sql_help.c:2115 sql_help.c:2123 msgid "state_data_type" msgstr "type_de_données_statut" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2094 sql_help.c:2116 sql_help.c:2124 msgid "state_data_size" msgstr "taille_de_données_statut" -#: sql_help.c:2076 sql_help.c:2098 sql_help.c:2106 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2096 sql_help.c:2126 msgid "combinefunc" msgstr "combinefunc" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2097 sql_help.c:2127 msgid "serialfunc" msgstr "serialfunc" -#: sql_help.c:2079 sql_help.c:2109 +#: sql_help.c:2098 sql_help.c:2128 msgid "deserialfunc" msgstr "deserialfunc" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2110 +#: sql_help.c:2099 sql_help.c:2118 sql_help.c:2129 msgid "initial_condition" msgstr "condition_initiale" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2100 sql_help.c:2130 msgid "msfunc" msgstr "msfunc" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2101 sql_help.c:2131 msgid "minvfunc" msgstr "minvfunc" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2102 sql_help.c:2132 msgid "mstate_data_type" msgstr "m_type_de_données_statut" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2103 sql_help.c:2133 msgid "mstate_data_size" msgstr "m_taille_de_données_statut" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2104 sql_help.c:2134 msgid "mffunc" msgstr "mffunc" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2105 sql_help.c:2135 msgid "minitial_condition" msgstr "m_condition_initiale" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2106 sql_help.c:2136 msgid "sort_operator" msgstr "opérateur_de_tri" -#: sql_help.c:2100 +#: sql_help.c:2119 msgid "or the old syntax" msgstr "ou l'ancienne syntaxe" -#: sql_help.c:2102 +#: sql_help.c:2121 msgid "base_type" msgstr "type_base" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2179 sql_help.c:2229 msgid "locale" msgstr "locale" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2180 sql_help.c:2230 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2162 sql_help.c:2211 +#: sql_help.c:2181 sql_help.c:2231 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2163 sql_help.c:4463 +#: sql_help.c:2182 sql_help.c:4495 msgid "provider" msgstr "fournisseur" -#: sql_help.c:2165 +#: sql_help.c:2184 msgid "rules" msgstr "règles" -#: sql_help.c:2166 sql_help.c:2271 +#: sql_help.c:2185 sql_help.c:2292 msgid "version" msgstr "version" -#: sql_help.c:2168 +#: sql_help.c:2187 msgid "existing_collation" msgstr "collationnement_existant" -#: sql_help.c:2178 +#: sql_help.c:2197 msgid "source_encoding" msgstr "encodage_source" -#: sql_help.c:2179 +#: sql_help.c:2198 msgid "dest_encoding" msgstr "encodage_destination" -#: sql_help.c:2206 sql_help.c:3047 +#: sql_help.c:2226 sql_help.c:3067 msgid "template" msgstr "modèle" -#: sql_help.c:2207 +#: sql_help.c:2227 msgid "encoding" msgstr "encodage" -#: sql_help.c:2208 +#: sql_help.c:2228 msgid "strategy" msgstr "stratégie" -#: sql_help.c:2212 +#: sql_help.c:2232 +msgid "builtin_locale" +msgstr "builtin_locale" + +#: sql_help.c:2233 msgid "icu_locale" msgstr "icu_locale" -#: sql_help.c:2213 +#: sql_help.c:2234 msgid "icu_rules" msgstr "règles_icu" -#: sql_help.c:2214 +#: sql_help.c:2235 msgid "locale_provider" msgstr "locale_provider" -#: sql_help.c:2215 +#: sql_help.c:2236 msgid "collation_version" msgstr "collation_version" -#: sql_help.c:2220 +#: sql_help.c:2241 msgid "oid" msgstr "oid" -#: sql_help.c:2240 -msgid "constraint" -msgstr "contrainte" - -#: sql_help.c:2241 -msgid "where constraint is:" -msgstr "où la contrainte est :" - -#: sql_help.c:2255 sql_help.c:2692 sql_help.c:3120 +#: sql_help.c:2276 sql_help.c:2709 sql_help.c:3140 msgid "event" msgstr "événement" -#: sql_help.c:2256 +#: sql_help.c:2277 msgid "filter_variable" msgstr "filter_variable" -#: sql_help.c:2257 +#: sql_help.c:2278 msgid "filter_value" msgstr "filtre_valeur" -#: sql_help.c:2353 sql_help.c:2939 +#: sql_help.c:2374 sql_help.c:2956 msgid "where column_constraint is:" msgstr "où contrainte_colonne est :" -#: sql_help.c:2398 +#: sql_help.c:2419 msgid "rettype" msgstr "type_en_retour" -#: sql_help.c:2400 +#: sql_help.c:2421 msgid "column_type" msgstr "type_colonne" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2430 sql_help.c:2633 msgid "definition" msgstr "définition" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2431 sql_help.c:2634 msgid "obj_file" msgstr "fichier_objet" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2432 sql_help.c:2635 msgid "link_symbol" msgstr "symbole_link" -#: sql_help.c:2412 sql_help.c:2615 +#: sql_help.c:2433 sql_help.c:2636 msgid "sql_body" msgstr "corps_sql" -#: sql_help.c:2450 sql_help.c:2677 sql_help.c:3243 +#: sql_help.c:2471 sql_help.c:2694 sql_help.c:3263 msgid "uid" msgstr "uid" -#: sql_help.c:2466 sql_help.c:2507 sql_help.c:2908 sql_help.c:2921 -#: sql_help.c:2935 sql_help.c:3003 +#: sql_help.c:2487 sql_help.c:2528 sql_help.c:2925 sql_help.c:2938 +#: sql_help.c:2952 sql_help.c:3023 msgid "method" msgstr "méthode" -#: sql_help.c:2471 -msgid "opclass_parameter" -msgstr "paramètre_opclass" - -#: sql_help.c:2488 +#: sql_help.c:2509 msgid "call_handler" msgstr "gestionnaire_d_appel" -#: sql_help.c:2489 +#: sql_help.c:2510 msgid "inline_handler" msgstr "gestionnaire_en_ligne" -#: sql_help.c:2490 +#: sql_help.c:2511 msgid "valfunction" msgstr "fonction_val" -#: sql_help.c:2529 -msgid "com_op" -msgstr "com_op" - -#: sql_help.c:2530 -msgid "neg_op" -msgstr "neg_op" - -#: sql_help.c:2548 +#: sql_help.c:2569 msgid "family_name" msgstr "nom_famille" -#: sql_help.c:2559 +#: sql_help.c:2580 msgid "storage_type" msgstr "type_stockage" -#: sql_help.c:2698 sql_help.c:3127 +#: sql_help.c:2715 sql_help.c:3147 msgid "where event can be one of:" msgstr "où événement fait partie de :" -#: sql_help.c:2718 sql_help.c:2720 +#: sql_help.c:2735 sql_help.c:2737 msgid "schema_element" msgstr "élément_schéma" -#: sql_help.c:2757 +#: sql_help.c:2774 msgid "server_type" msgstr "type_serveur" -#: sql_help.c:2758 +#: sql_help.c:2775 msgid "server_version" msgstr "version_serveur" -#: sql_help.c:2759 sql_help.c:3908 sql_help.c:4360 +#: sql_help.c:2776 sql_help.c:3929 sql_help.c:4392 msgid "fdw_name" msgstr "nom_fdw" -#: sql_help.c:2776 sql_help.c:2779 +#: sql_help.c:2793 sql_help.c:2796 msgid "statistics_name" msgstr "nom_statistique" -#: sql_help.c:2780 +#: sql_help.c:2797 msgid "statistics_kind" msgstr "statistics_kind" -#: sql_help.c:2796 +#: sql_help.c:2813 msgid "subscription_name" msgstr "nom_souscription" -#: sql_help.c:2901 +#: sql_help.c:2918 msgid "source_table" msgstr "table_source" -#: sql_help.c:2902 +#: sql_help.c:2919 msgid "like_option" msgstr "option_like" -#: sql_help.c:2968 +#: sql_help.c:2985 msgid "and like_option is:" msgstr "et option_like est :" -#: sql_help.c:3020 +#: sql_help.c:3040 msgid "directory" msgstr "répertoire" -#: sql_help.c:3034 +#: sql_help.c:3054 msgid "parser_name" msgstr "nom_analyseur" -#: sql_help.c:3035 +#: sql_help.c:3055 msgid "source_config" msgstr "configuration_source" -#: sql_help.c:3064 +#: sql_help.c:3084 msgid "start_function" msgstr "fonction_start" -#: sql_help.c:3065 +#: sql_help.c:3085 msgid "gettoken_function" msgstr "fonction_gettoken" -#: sql_help.c:3066 +#: sql_help.c:3086 msgid "end_function" msgstr "fonction_end" -#: sql_help.c:3067 +#: sql_help.c:3087 msgid "lextypes_function" msgstr "fonction_lextypes" -#: sql_help.c:3068 +#: sql_help.c:3088 msgid "headline_function" msgstr "fonction_headline" -#: sql_help.c:3080 +#: sql_help.c:3100 msgid "init_function" msgstr "fonction_init" -#: sql_help.c:3081 +#: sql_help.c:3101 msgid "lexize_function" msgstr "fonction_lexize" -#: sql_help.c:3094 +#: sql_help.c:3114 msgid "from_sql_function_name" msgstr "nom_fonction_from_sql" -#: sql_help.c:3096 +#: sql_help.c:3116 msgid "to_sql_function_name" msgstr "nom_fonction_to_sql" -#: sql_help.c:3122 +#: sql_help.c:3142 msgid "referenced_table_name" msgstr "nom_table_référencée" -#: sql_help.c:3123 +#: sql_help.c:3143 msgid "transition_relation_name" msgstr "nom_relation_transition" -#: sql_help.c:3126 +#: sql_help.c:3146 msgid "arguments" msgstr "arguments" -#: sql_help.c:3178 +#: sql_help.c:3198 msgid "label" msgstr "label" -#: sql_help.c:3180 +#: sql_help.c:3200 msgid "subtype" msgstr "sous_type" -#: sql_help.c:3181 +#: sql_help.c:3201 msgid "subtype_operator_class" msgstr "classe_opérateur_sous_type" -#: sql_help.c:3183 +#: sql_help.c:3203 msgid "canonical_function" msgstr "fonction_canonique" -#: sql_help.c:3184 +#: sql_help.c:3204 msgid "subtype_diff_function" msgstr "fonction_diff_sous_type" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "multirange_type_name" msgstr "nom_type_multirange" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "input_function" msgstr "fonction_en_sortie" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "output_function" msgstr "fonction_en_sortie" -#: sql_help.c:3189 +#: sql_help.c:3209 msgid "receive_function" msgstr "fonction_receive" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "send_function" msgstr "fonction_send" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "type_modifier_input_function" msgstr "fonction_en_entrée_modificateur_type" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "type_modifier_output_function" msgstr "fonction_en_sortie_modificateur_type" -#: sql_help.c:3193 +#: sql_help.c:3213 msgid "analyze_function" msgstr "fonction_analyze" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "subscript_function" msgstr "fonction_indice" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "internallength" msgstr "longueur_interne" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "alignment" msgstr "alignement" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "storage" msgstr "stockage" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "like_type" msgstr "type_like" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "category" msgstr "catégorie" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "preferred" msgstr "préféré" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "default" msgstr "par défaut" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "element" msgstr "élément" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "delimiter" msgstr "délimiteur" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "collatable" msgstr "collationnable" -#: sql_help.c:3301 sql_help.c:3987 sql_help.c:4077 sql_help.c:4560 -#: sql_help.c:4662 sql_help.c:4817 sql_help.c:4930 sql_help.c:5063 +#: sql_help.c:3321 sql_help.c:4008 sql_help.c:4102 sql_help.c:4592 +#: sql_help.c:4695 sql_help.c:4850 sql_help.c:4964 sql_help.c:5095 msgid "with_query" msgstr "requête_with" -#: sql_help.c:3303 sql_help.c:3989 sql_help.c:4579 sql_help.c:4585 -#: sql_help.c:4588 sql_help.c:4592 sql_help.c:4596 sql_help.c:4604 -#: sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 sql_help.c:4849 -#: sql_help.c:4853 sql_help.c:4861 sql_help.c:4932 sql_help.c:5082 -#: sql_help.c:5088 sql_help.c:5091 sql_help.c:5095 sql_help.c:5099 -#: sql_help.c:5107 +#: sql_help.c:3323 sql_help.c:4010 sql_help.c:4611 sql_help.c:4617 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4628 sql_help.c:4636 +#: sql_help.c:4869 sql_help.c:4875 sql_help.c:4878 sql_help.c:4882 +#: sql_help.c:4886 sql_help.c:4894 sql_help.c:4966 sql_help.c:5114 +#: sql_help.c:5120 sql_help.c:5123 sql_help.c:5127 sql_help.c:5131 +#: sql_help.c:5139 msgid "alias" msgstr "alias" -#: sql_help.c:3304 sql_help.c:4564 sql_help.c:4606 sql_help.c:4608 -#: sql_help.c:4612 sql_help.c:4614 sql_help.c:4615 sql_help.c:4616 -#: sql_help.c:4667 sql_help.c:4821 sql_help.c:4863 sql_help.c:4865 -#: sql_help.c:4869 sql_help.c:4871 sql_help.c:4872 sql_help.c:4873 -#: sql_help.c:4939 sql_help.c:5067 sql_help.c:5109 sql_help.c:5111 -#: sql_help.c:5115 sql_help.c:5117 sql_help.c:5118 sql_help.c:5119 +#: sql_help.c:3324 sql_help.c:4596 sql_help.c:4638 sql_help.c:4640 +#: sql_help.c:4644 sql_help.c:4646 sql_help.c:4647 sql_help.c:4648 +#: sql_help.c:4700 sql_help.c:4854 sql_help.c:4896 sql_help.c:4898 +#: sql_help.c:4902 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4973 sql_help.c:5099 sql_help.c:5141 sql_help.c:5143 +#: sql_help.c:5147 sql_help.c:5149 sql_help.c:5150 sql_help.c:5151 msgid "from_item" msgstr "élément_from" -#: sql_help.c:3306 sql_help.c:3789 sql_help.c:4127 sql_help.c:4941 +#: sql_help.c:3326 sql_help.c:3810 sql_help.c:4159 sql_help.c:4975 msgid "cursor_name" msgstr "nom_curseur" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4942 +#: sql_help.c:3327 sql_help.c:4016 sql_help.c:4108 sql_help.c:4976 msgid "output_expression" msgstr "expression_en_sortie" -#: sql_help.c:3308 sql_help.c:3996 sql_help.c:4563 sql_help.c:4665 -#: sql_help.c:4820 sql_help.c:4943 sql_help.c:5066 +#: sql_help.c:3328 sql_help.c:4017 sql_help.c:4109 sql_help.c:4595 +#: sql_help.c:4698 sql_help.c:4853 sql_help.c:4977 sql_help.c:5098 msgid "output_name" msgstr "nom_en_sortie" -#: sql_help.c:3324 +#: sql_help.c:3344 msgid "code" msgstr "code" -#: sql_help.c:3729 +#: sql_help.c:3749 msgid "parameter" msgstr "paramètre" -#: sql_help.c:3752 sql_help.c:3753 sql_help.c:4152 +#: sql_help.c:3773 sql_help.c:4184 msgid "statement" msgstr "instruction" -#: sql_help.c:3788 sql_help.c:4126 +#: sql_help.c:3809 sql_help.c:4158 msgid "direction" msgstr "direction" -#: sql_help.c:3790 sql_help.c:4128 +#: sql_help.c:3811 sql_help.c:4160 msgid "where direction can be one of:" msgstr "où direction fait partie de :" -#: sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 sql_help.c:3794 -#: sql_help.c:3795 sql_help.c:4129 sql_help.c:4130 sql_help.c:4131 -#: sql_help.c:4132 sql_help.c:4133 sql_help.c:4573 sql_help.c:4575 -#: sql_help.c:4676 sql_help.c:4678 sql_help.c:4830 sql_help.c:4832 -#: sql_help.c:5007 sql_help.c:5009 sql_help.c:5076 sql_help.c:5078 +#: sql_help.c:3812 sql_help.c:3813 sql_help.c:3814 sql_help.c:3815 +#: sql_help.c:3816 sql_help.c:4161 sql_help.c:4162 sql_help.c:4163 +#: sql_help.c:4164 sql_help.c:4165 sql_help.c:4605 sql_help.c:4607 +#: sql_help.c:4709 sql_help.c:4711 sql_help.c:4863 sql_help.c:4865 +#: sql_help.c:5039 sql_help.c:5041 sql_help.c:5108 sql_help.c:5110 msgid "count" msgstr "nombre" -#: sql_help.c:3898 sql_help.c:4350 +#: sql_help.c:3919 sql_help.c:4382 msgid "sequence_name" msgstr "nom_séquence" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3937 sql_help.c:4400 msgid "arg_name" msgstr "nom_argument" -#: sql_help.c:3917 sql_help.c:4369 +#: sql_help.c:3938 sql_help.c:4401 msgid "arg_type" msgstr "type_arg" -#: sql_help.c:3924 sql_help.c:4376 +#: sql_help.c:3945 sql_help.c:4408 msgid "loid" msgstr "loid" -#: sql_help.c:3955 +#: sql_help.c:3976 msgid "remote_schema" msgstr "schema_distant" -#: sql_help.c:3958 +#: sql_help.c:3979 msgid "local_schema" msgstr "schéma_local" -#: sql_help.c:3993 +#: sql_help.c:4014 msgid "conflict_target" msgstr "cible_conflit" -#: sql_help.c:3994 +#: sql_help.c:4015 msgid "conflict_action" msgstr "action_conflit" -#: sql_help.c:3997 +#: sql_help.c:4018 msgid "where conflict_target can be one of:" msgstr "où cible_conflit fait partie de :" -#: sql_help.c:3998 +#: sql_help.c:4019 msgid "index_column_name" msgstr "index_nom_colonne" -#: sql_help.c:3999 +#: sql_help.c:4020 msgid "index_expression" msgstr "index_expression" -#: sql_help.c:4002 +#: sql_help.c:4023 msgid "index_predicate" msgstr "index_prédicat" -#: sql_help.c:4004 +#: sql_help.c:4025 msgid "and conflict_action is one of:" msgstr "où action_conflit fait partie de :" -#: sql_help.c:4010 sql_help.c:4938 +#: sql_help.c:4031 sql_help.c:4132 sql_help.c:4972 msgid "sub-SELECT" msgstr "sous-SELECT" -#: sql_help.c:4019 sql_help.c:4141 sql_help.c:4914 +#: sql_help.c:4040 sql_help.c:4173 sql_help.c:4948 msgid "channel" msgstr "canal" -#: sql_help.c:4041 +#: sql_help.c:4062 msgid "lockmode" msgstr "mode_de_verrou" -#: sql_help.c:4042 +#: sql_help.c:4063 msgid "where lockmode is one of:" msgstr "où mode_de_verrou fait partie de :" -#: sql_help.c:4078 +#: sql_help.c:4103 msgid "target_table_name" msgstr "target_table_name" -#: sql_help.c:4079 +#: sql_help.c:4104 msgid "target_alias" msgstr "target_alias" -#: sql_help.c:4080 +#: sql_help.c:4105 msgid "data_source" msgstr "data_source" -#: sql_help.c:4081 sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4106 sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "join_condition" msgstr "condition_de_jointure" -#: sql_help.c:4082 +#: sql_help.c:4107 msgid "when_clause" msgstr "when_clause" -#: sql_help.c:4083 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "où data_source est :" -#: sql_help.c:4084 +#: sql_help.c:4111 msgid "source_table_name" msgstr "source_table_name" -#: sql_help.c:4085 +#: sql_help.c:4112 msgid "source_query" msgstr "source_query" -#: sql_help.c:4086 +#: sql_help.c:4113 msgid "source_alias" msgstr "source_alias" -#: sql_help.c:4087 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "et when_clause est :" -#: sql_help.c:4089 +#: sql_help.c:4116 sql_help.c:4119 msgid "merge_update" msgstr "merge_delete" -#: sql_help.c:4090 +#: sql_help.c:4117 sql_help.c:4120 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4092 +#: sql_help.c:4122 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4093 +#: sql_help.c:4123 msgid "and merge_insert is:" msgstr "et merge_insert est :" -#: sql_help.c:4096 +#: sql_help.c:4126 msgid "and merge_update is:" msgstr "et merge_update est :" -#: sql_help.c:4101 +#: sql_help.c:4133 msgid "and merge_delete is:" msgstr "et merge_delete est :" -#: sql_help.c:4142 +#: sql_help.c:4174 msgid "payload" msgstr "contenu" -#: sql_help.c:4169 +#: sql_help.c:4201 msgid "old_role" msgstr "ancien_rôle" -#: sql_help.c:4170 +#: sql_help.c:4202 msgid "new_role" msgstr "nouveau_rôle" -#: sql_help.c:4209 sql_help.c:4418 sql_help.c:4426 +#: sql_help.c:4241 sql_help.c:4450 sql_help.c:4458 msgid "savepoint_name" msgstr "nom_savepoint" -#: sql_help.c:4566 sql_help.c:4624 sql_help.c:4823 sql_help.c:4881 -#: sql_help.c:5069 sql_help.c:5127 +#: sql_help.c:4598 sql_help.c:4656 sql_help.c:4856 sql_help.c:4914 +#: sql_help.c:5101 sql_help.c:5159 msgid "grouping_element" msgstr "element_regroupement" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4600 sql_help.c:4704 sql_help.c:4858 sql_help.c:5103 msgid "window_name" msgstr "nom_window" -#: sql_help.c:4569 sql_help.c:4672 sql_help.c:4826 sql_help.c:5072 +#: sql_help.c:4601 sql_help.c:4705 sql_help.c:4859 sql_help.c:5104 msgid "window_definition" msgstr "définition_window" -#: sql_help.c:4570 sql_help.c:4584 sql_help.c:4628 sql_help.c:4673 -#: sql_help.c:4827 sql_help.c:4841 sql_help.c:4885 sql_help.c:5073 -#: sql_help.c:5087 sql_help.c:5131 +#: sql_help.c:4602 sql_help.c:4616 sql_help.c:4660 sql_help.c:4706 +#: sql_help.c:4860 sql_help.c:4874 sql_help.c:4918 sql_help.c:5105 +#: sql_help.c:5119 sql_help.c:5163 msgid "select" msgstr "sélection" -#: sql_help.c:4577 sql_help.c:4834 sql_help.c:5080 +#: sql_help.c:4608 sql_help.c:4866 sql_help.c:5111 +msgid "from_reference" +msgstr "reference_from" + +#: sql_help.c:4609 sql_help.c:4867 sql_help.c:5112 msgid "where from_item can be one of:" msgstr "où élément_from fait partie de :" -#: sql_help.c:4580 sql_help.c:4586 sql_help.c:4589 sql_help.c:4593 -#: sql_help.c:4605 sql_help.c:4837 sql_help.c:4843 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4862 sql_help.c:5083 sql_help.c:5089 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5108 +#: sql_help.c:4612 sql_help.c:4618 sql_help.c:4621 sql_help.c:4625 +#: sql_help.c:4637 sql_help.c:4870 sql_help.c:4876 sql_help.c:4879 +#: sql_help.c:4883 sql_help.c:4895 sql_help.c:5115 sql_help.c:5121 +#: sql_help.c:5124 sql_help.c:5128 sql_help.c:5140 msgid "column_alias" msgstr "alias_colonne" -#: sql_help.c:4581 sql_help.c:4838 sql_help.c:5084 +#: sql_help.c:4613 sql_help.c:4871 sql_help.c:5116 msgid "sampling_method" msgstr "méthode_echantillonnage" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5086 +#: sql_help.c:4615 sql_help.c:4873 sql_help.c:5118 msgid "seed" msgstr "graine" -#: sql_help.c:4587 sql_help.c:4626 sql_help.c:4844 sql_help.c:4883 -#: sql_help.c:5090 sql_help.c:5129 +#: sql_help.c:4619 sql_help.c:4658 sql_help.c:4877 sql_help.c:4916 +#: sql_help.c:5122 sql_help.c:5161 msgid "with_query_name" msgstr "nom_requête_with" -#: sql_help.c:4597 sql_help.c:4600 sql_help.c:4603 sql_help.c:4854 -#: sql_help.c:4857 sql_help.c:4860 sql_help.c:5100 sql_help.c:5103 -#: sql_help.c:5106 +#: sql_help.c:4629 sql_help.c:4632 sql_help.c:4635 sql_help.c:4887 +#: sql_help.c:4890 sql_help.c:4893 sql_help.c:5132 sql_help.c:5135 +#: sql_help.c:5138 msgid "column_definition" msgstr "définition_colonne" -#: sql_help.c:4607 sql_help.c:4613 sql_help.c:4864 sql_help.c:4870 -#: sql_help.c:5110 sql_help.c:5116 +#: sql_help.c:4639 sql_help.c:4645 sql_help.c:4897 sql_help.c:4903 +#: sql_help.c:5142 sql_help.c:5148 msgid "join_type" msgstr "type_de_jointure" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4642 sql_help.c:4900 sql_help.c:5145 msgid "join_column" msgstr "colonne_de_jointure" -#: sql_help.c:4611 sql_help.c:4868 sql_help.c:5114 +#: sql_help.c:4643 sql_help.c:4901 sql_help.c:5146 msgid "join_using_alias" msgstr "join_utilisant_alias" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5120 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and grouping_element can be one of:" msgstr "où element_regroupement fait partie de :" -#: sql_help.c:4625 sql_help.c:4882 sql_help.c:5128 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 msgid "and with_query is:" msgstr "et requête_with est :" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "values" msgstr "valeurs" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "insert" msgstr "insert" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "update" msgstr "update" -#: sql_help.c:4632 sql_help.c:4889 sql_help.c:5135 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "delete" msgstr "delete" -#: sql_help.c:4634 sql_help.c:4891 sql_help.c:5137 +#: sql_help.c:4665 sql_help.c:4923 sql_help.c:5168 +msgid "merge" +msgstr "merge" + +#: sql_help.c:4667 sql_help.c:4925 sql_help.c:5170 msgid "search_seq_col_name" msgstr "nom_colonne_seq_recherche" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4669 sql_help.c:4927 sql_help.c:5172 msgid "cycle_mark_col_name" msgstr "nom_colonne_marque_cycle" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 msgid "cycle_mark_value" msgstr "valeur_marque_cycle" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 msgid "cycle_mark_default" msgstr "défaut_marque_cyle" -#: sql_help.c:4639 sql_help.c:4896 sql_help.c:5142 +#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 msgid "cycle_path_col_name" msgstr "nom_colonne_chemin_cycle" -#: sql_help.c:4666 +#: sql_help.c:4699 msgid "new_table" msgstr "nouvelle_table" -#: sql_help.c:4737 +#: sql_help.c:4770 msgid "snapshot_id" msgstr "id_snapshot" -#: sql_help.c:5005 +#: sql_help.c:5037 msgid "sort_expression" msgstr "expression_de_tri" -#: sql_help.c:5149 sql_help.c:6133 +#: sql_help.c:5182 sql_help.c:6166 msgid "abort the current transaction" msgstr "abandonner la transaction en cours" -#: sql_help.c:5155 +#: sql_help.c:5188 msgid "change the definition of an aggregate function" msgstr "modifier la définition d'une fonction d'agrégation" -#: sql_help.c:5161 +#: sql_help.c:5194 msgid "change the definition of a collation" msgstr "modifier la définition d'un collationnement" -#: sql_help.c:5167 +#: sql_help.c:5200 msgid "change the definition of a conversion" msgstr "modifier la définition d'une conversion" -#: sql_help.c:5173 +#: sql_help.c:5206 msgid "change a database" msgstr "modifier une base de données" -#: sql_help.c:5179 +#: sql_help.c:5212 msgid "define default access privileges" msgstr "définir les droits d'accès par défaut" -#: sql_help.c:5185 +#: sql_help.c:5218 msgid "change the definition of a domain" msgstr "modifier la définition d'un domaine" -#: sql_help.c:5191 +#: sql_help.c:5224 msgid "change the definition of an event trigger" msgstr "modifier la définition d'un trigger sur évènement" -#: sql_help.c:5197 +#: sql_help.c:5230 msgid "change the definition of an extension" msgstr "modifier la définition d'une extension" -#: sql_help.c:5203 +#: sql_help.c:5236 msgid "change the definition of a foreign-data wrapper" msgstr "modifier la définition d'un wrapper de données distantes" -#: sql_help.c:5209 +#: sql_help.c:5242 msgid "change the definition of a foreign table" msgstr "modifier la définition d'une table distante" -#: sql_help.c:5215 +#: sql_help.c:5248 msgid "change the definition of a function" msgstr "modifier la définition d'une fonction" -#: sql_help.c:5221 +#: sql_help.c:5254 msgid "change role name or membership" msgstr "modifier le nom d'un groupe ou la liste des ses membres" -#: sql_help.c:5227 +#: sql_help.c:5260 msgid "change the definition of an index" msgstr "modifier la définition d'un index" -#: sql_help.c:5233 +#: sql_help.c:5266 msgid "change the definition of a procedural language" msgstr "modifier la définition d'un langage procédural" -#: sql_help.c:5239 +#: sql_help.c:5272 msgid "change the definition of a large object" msgstr "modifier la définition d'un « Large Object »" -#: sql_help.c:5245 +#: sql_help.c:5278 msgid "change the definition of a materialized view" msgstr "modifier la définition d'une vue matérialisée" -#: sql_help.c:5251 +#: sql_help.c:5284 msgid "change the definition of an operator" msgstr "modifier la définition d'un opérateur" -#: sql_help.c:5257 +#: sql_help.c:5290 msgid "change the definition of an operator class" msgstr "modifier la définition d'une classe d'opérateurs" -#: sql_help.c:5263 +#: sql_help.c:5296 msgid "change the definition of an operator family" msgstr "modifier la définition d'une famille d'opérateur" -#: sql_help.c:5269 +#: sql_help.c:5302 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:5275 +#: sql_help.c:5308 msgid "change the definition of a procedure" msgstr "modifier la définition d'une procédure" -#: sql_help.c:5281 +#: sql_help.c:5314 msgid "change the definition of a publication" msgstr "modifier la définition d'une publication" -#: sql_help.c:5287 sql_help.c:5389 +#: sql_help.c:5320 sql_help.c:5422 msgid "change a database role" msgstr "modifier un rôle" -#: sql_help.c:5293 +#: sql_help.c:5326 msgid "change the definition of a routine" msgstr "modifier la définition d'une routine" -#: sql_help.c:5299 +#: sql_help.c:5332 msgid "change the definition of a rule" msgstr "modifier la définition d'une règle" -#: sql_help.c:5305 +#: sql_help.c:5338 msgid "change the definition of a schema" msgstr "modifier la définition d'un schéma" -#: sql_help.c:5311 +#: sql_help.c:5344 msgid "change the definition of a sequence generator" msgstr "modifier la définition d'un générateur de séquence" -#: sql_help.c:5317 +#: sql_help.c:5350 msgid "change the definition of a foreign server" msgstr "modifier la définition d'un serveur distant" -#: sql_help.c:5323 +#: sql_help.c:5356 msgid "change the definition of an extended statistics object" msgstr "modifier la définition d'un objet de statistiques étendues" -#: sql_help.c:5329 +#: sql_help.c:5362 msgid "change the definition of a subscription" msgstr "modifier la définition d'une souscription" -#: sql_help.c:5335 +#: sql_help.c:5368 msgid "change a server configuration parameter" msgstr "modifie un paramètre de configuration du serveur" -#: sql_help.c:5341 +#: sql_help.c:5374 msgid "change the definition of a table" msgstr "modifier la définition d'une table" -#: sql_help.c:5347 +#: sql_help.c:5380 msgid "change the definition of a tablespace" msgstr "modifier la définition d'un tablespace" -#: sql_help.c:5353 +#: sql_help.c:5386 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:5359 +#: sql_help.c:5392 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:5365 +#: sql_help.c:5398 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:5371 +#: sql_help.c:5404 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:5377 +#: sql_help.c:5410 msgid "change the definition of a trigger" msgstr "modifier la définition d'un trigger" -#: sql_help.c:5383 +#: sql_help.c:5416 msgid "change the definition of a type" msgstr "modifier la définition d'un type" -#: sql_help.c:5395 +#: sql_help.c:5428 msgid "change the definition of a user mapping" msgstr "modifier la définition d'une correspondance d'utilisateur" -#: sql_help.c:5401 +#: sql_help.c:5434 msgid "change the definition of a view" msgstr "modifier la définition d'une vue" -#: sql_help.c:5407 +#: sql_help.c:5440 msgid "collect statistics about a database" msgstr "acquérir des statistiques concernant la base de données" -#: sql_help.c:5413 sql_help.c:6211 +#: sql_help.c:5446 sql_help.c:6244 msgid "start a transaction block" msgstr "débuter un bloc de transaction" -#: sql_help.c:5419 +#: sql_help.c:5452 msgid "invoke a procedure" msgstr "appeler une procédure" -#: sql_help.c:5425 +#: sql_help.c:5458 msgid "force a write-ahead log checkpoint" msgstr "forcer un point de vérification des journaux de transactions" -#: sql_help.c:5431 +#: sql_help.c:5464 msgid "close a cursor" msgstr "fermer un curseur" -#: sql_help.c:5437 +#: sql_help.c:5470 msgid "cluster a table according to an index" msgstr "réorganiser (cluster) une table en fonction d'un index" -#: sql_help.c:5443 +#: sql_help.c:5476 msgid "define or change the comment of an object" msgstr "définir ou modifier les commentaires d'un objet" -#: sql_help.c:5449 sql_help.c:6007 +#: sql_help.c:5482 sql_help.c:6040 msgid "commit the current transaction" msgstr "valider la transaction en cours" -#: sql_help.c:5455 +#: sql_help.c:5488 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:5461 +#: sql_help.c:5494 msgid "copy data between a file and a table" msgstr "copier des données entre un fichier et une table" -#: sql_help.c:5467 +#: sql_help.c:5500 msgid "define a new access method" msgstr "définir une nouvelle méthode d'accès" -#: sql_help.c:5473 +#: sql_help.c:5506 msgid "define a new aggregate function" msgstr "définir une nouvelle fonction d'agrégation" -#: sql_help.c:5479 +#: sql_help.c:5512 msgid "define a new cast" msgstr "définir un nouveau transtypage" -#: sql_help.c:5485 +#: sql_help.c:5518 msgid "define a new collation" msgstr "définir un nouveau collationnement" -#: sql_help.c:5491 +#: sql_help.c:5524 msgid "define a new encoding conversion" msgstr "définir une nouvelle conversion d'encodage" -#: sql_help.c:5497 +#: sql_help.c:5530 msgid "create a new database" msgstr "créer une nouvelle base de données" -#: sql_help.c:5503 +#: sql_help.c:5536 msgid "define a new domain" msgstr "définir un nouveau domaine" -#: sql_help.c:5509 +#: sql_help.c:5542 msgid "define a new event trigger" msgstr "définir un nouveau trigger sur évènement" -#: sql_help.c:5515 +#: sql_help.c:5548 msgid "install an extension" msgstr "installer une extension" -#: sql_help.c:5521 +#: sql_help.c:5554 msgid "define a new foreign-data wrapper" msgstr "définir un nouveau wrapper de données distantes" -#: sql_help.c:5527 +#: sql_help.c:5560 msgid "define a new foreign table" msgstr "définir une nouvelle table distante" -#: sql_help.c:5533 +#: sql_help.c:5566 msgid "define a new function" msgstr "définir une nouvelle fonction" -#: sql_help.c:5539 sql_help.c:5599 sql_help.c:5701 +#: sql_help.c:5572 sql_help.c:5632 sql_help.c:5734 msgid "define a new database role" msgstr "définir un nouveau rôle" -#: sql_help.c:5545 +#: sql_help.c:5578 msgid "define a new index" msgstr "définir un nouvel index" -#: sql_help.c:5551 +#: sql_help.c:5584 msgid "define a new procedural language" msgstr "définir un nouveau langage de procédures" -#: sql_help.c:5557 +#: sql_help.c:5590 msgid "define a new materialized view" msgstr "définir une nouvelle vue matérialisée" -#: sql_help.c:5563 +#: sql_help.c:5596 msgid "define a new operator" msgstr "définir un nouvel opérateur" -#: sql_help.c:5569 +#: sql_help.c:5602 msgid "define a new operator class" msgstr "définir une nouvelle classe d'opérateur" -#: sql_help.c:5575 +#: sql_help.c:5608 msgid "define a new operator family" msgstr "définir une nouvelle famille d'opérateur" -#: sql_help.c:5581 +#: sql_help.c:5614 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:5587 +#: sql_help.c:5620 msgid "define a new procedure" msgstr "définir une nouvelle procédure" -#: sql_help.c:5593 +#: sql_help.c:5626 msgid "define a new publication" msgstr "définir une nouvelle publication" -#: sql_help.c:5605 +#: sql_help.c:5638 msgid "define a new rewrite rule" msgstr "définir une nouvelle règle de réécriture" -#: sql_help.c:5611 +#: sql_help.c:5644 msgid "define a new schema" msgstr "définir un nouveau schéma" -#: sql_help.c:5617 +#: sql_help.c:5650 msgid "define a new sequence generator" msgstr "définir un nouveau générateur de séquence" -#: sql_help.c:5623 +#: sql_help.c:5656 msgid "define a new foreign server" msgstr "définir un nouveau serveur distant" -#: sql_help.c:5629 +#: sql_help.c:5662 msgid "define extended statistics" msgstr "définir des statistiques étendues" -#: sql_help.c:5635 +#: sql_help.c:5668 msgid "define a new subscription" msgstr "définir une nouvelle souscription" -#: sql_help.c:5641 +#: sql_help.c:5674 msgid "define a new table" msgstr "définir une nouvelle table" -#: sql_help.c:5647 sql_help.c:6169 +#: sql_help.c:5680 sql_help.c:6202 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:5653 +#: sql_help.c:5686 msgid "define a new tablespace" msgstr "définir un nouveau tablespace" -#: sql_help.c:5659 +#: sql_help.c:5692 msgid "define a new text search configuration" msgstr "définir une nouvelle configuration de la recherche de texte" -#: sql_help.c:5665 +#: sql_help.c:5698 msgid "define a new text search dictionary" msgstr "définir un nouveau dictionnaire de la recherche de texte" -#: sql_help.c:5671 +#: sql_help.c:5704 msgid "define a new text search parser" msgstr "définir un nouvel analyseur de la recherche de texte" -#: sql_help.c:5677 +#: sql_help.c:5710 msgid "define a new text search template" msgstr "définir un nouveau modèle de la recherche de texte" -#: sql_help.c:5683 +#: sql_help.c:5716 msgid "define a new transform" msgstr "définir une nouvelle transformation" -#: sql_help.c:5689 +#: sql_help.c:5722 msgid "define a new trigger" msgstr "définir un nouveau trigger" -#: sql_help.c:5695 +#: sql_help.c:5728 msgid "define a new data type" msgstr "définir un nouveau type de données" -#: sql_help.c:5707 +#: sql_help.c:5740 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:5713 +#: sql_help.c:5746 msgid "define a new view" msgstr "définir une nouvelle vue" -#: sql_help.c:5719 +#: sql_help.c:5752 msgid "deallocate a prepared statement" msgstr "désallouer une instruction préparée" -#: sql_help.c:5725 +#: sql_help.c:5758 msgid "define a cursor" msgstr "définir un curseur" -#: sql_help.c:5731 +#: sql_help.c:5764 msgid "delete rows of a table" msgstr "supprimer des lignes d'une table" -#: sql_help.c:5737 +#: sql_help.c:5770 msgid "discard session state" msgstr "annuler l'état de la session" -#: sql_help.c:5743 +#: sql_help.c:5776 msgid "execute an anonymous code block" msgstr "exécute un bloc de code anonyme" -#: sql_help.c:5749 +#: sql_help.c:5782 msgid "remove an access method" msgstr "supprimer une méthode d'accès" -#: sql_help.c:5755 +#: sql_help.c:5788 msgid "remove an aggregate function" msgstr "supprimer une fonction d'agrégation" -#: sql_help.c:5761 +#: sql_help.c:5794 msgid "remove a cast" msgstr "supprimer un transtypage" -#: sql_help.c:5767 +#: sql_help.c:5800 msgid "remove a collation" msgstr "supprimer un collationnement" -#: sql_help.c:5773 +#: sql_help.c:5806 msgid "remove a conversion" msgstr "supprimer une conversion" -#: sql_help.c:5779 +#: sql_help.c:5812 msgid "remove a database" msgstr "supprimer une base de données" -#: sql_help.c:5785 +#: sql_help.c:5818 msgid "remove a domain" msgstr "supprimer un domaine" -#: sql_help.c:5791 +#: sql_help.c:5824 msgid "remove an event trigger" msgstr "supprimer un trigger sur évènement" -#: sql_help.c:5797 +#: sql_help.c:5830 msgid "remove an extension" msgstr "supprimer une extension" -#: sql_help.c:5803 +#: sql_help.c:5836 msgid "remove a foreign-data wrapper" msgstr "supprimer un wrapper de données distantes" -#: sql_help.c:5809 +#: sql_help.c:5842 msgid "remove a foreign table" msgstr "supprimer une table distante" -#: sql_help.c:5815 +#: sql_help.c:5848 msgid "remove a function" msgstr "supprimer une fonction" -#: sql_help.c:5821 sql_help.c:5887 sql_help.c:5989 +#: sql_help.c:5854 sql_help.c:5920 sql_help.c:6022 msgid "remove a database role" msgstr "supprimer un rôle de la base de données" -#: sql_help.c:5827 +#: sql_help.c:5860 msgid "remove an index" msgstr "supprimer un index" -#: sql_help.c:5833 +#: sql_help.c:5866 msgid "remove a procedural language" msgstr "supprimer un langage procédural" -#: sql_help.c:5839 +#: sql_help.c:5872 msgid "remove a materialized view" msgstr "supprimer une vue matérialisée" -#: sql_help.c:5845 +#: sql_help.c:5878 msgid "remove an operator" msgstr "supprimer un opérateur" -#: sql_help.c:5851 +#: sql_help.c:5884 msgid "remove an operator class" msgstr "supprimer une classe d'opérateur" -#: sql_help.c:5857 +#: sql_help.c:5890 msgid "remove an operator family" msgstr "supprimer une famille d'opérateur" -#: sql_help.c:5863 +#: sql_help.c:5896 msgid "remove database objects owned by a database role" msgstr "supprimer les objets appartenant à un rôle" -#: sql_help.c:5869 +#: sql_help.c:5902 msgid "remove a row-level security policy from a table" msgstr "supprimer une politique de sécurité au niveau ligne pour une table" -#: sql_help.c:5875 +#: sql_help.c:5908 msgid "remove a procedure" msgstr "supprimer une procédure" -#: sql_help.c:5881 +#: sql_help.c:5914 msgid "remove a publication" msgstr "supprimer une publication" -#: sql_help.c:5893 +#: sql_help.c:5926 msgid "remove a routine" msgstr "supprimer une routine" -#: sql_help.c:5899 +#: sql_help.c:5932 msgid "remove a rewrite rule" msgstr "supprimer une règle de réécriture" -#: sql_help.c:5905 +#: sql_help.c:5938 msgid "remove a schema" msgstr "supprimer un schéma" -#: sql_help.c:5911 +#: sql_help.c:5944 msgid "remove a sequence" msgstr "supprimer une séquence" -#: sql_help.c:5917 +#: sql_help.c:5950 msgid "remove a foreign server descriptor" msgstr "supprimer un descripteur de serveur distant" -#: sql_help.c:5923 +#: sql_help.c:5956 msgid "remove extended statistics" msgstr "supprimer des statistiques étendues" -#: sql_help.c:5929 +#: sql_help.c:5962 msgid "remove a subscription" msgstr "supprimer une souscription" -#: sql_help.c:5935 +#: sql_help.c:5968 msgid "remove a table" msgstr "supprimer une table" -#: sql_help.c:5941 +#: sql_help.c:5974 msgid "remove a tablespace" msgstr "supprimer un tablespace" -#: sql_help.c:5947 +#: sql_help.c:5980 msgid "remove a text search configuration" msgstr "supprimer une configuration de la recherche de texte" -#: sql_help.c:5953 +#: sql_help.c:5986 msgid "remove a text search dictionary" msgstr "supprimer un dictionnaire de la recherche de texte" -#: sql_help.c:5959 +#: sql_help.c:5992 msgid "remove a text search parser" msgstr "supprimer un analyseur de la recherche de texte" -#: sql_help.c:5965 +#: sql_help.c:5998 msgid "remove a text search template" msgstr "supprimer un modèle de la recherche de texte" -#: sql_help.c:5971 +#: sql_help.c:6004 msgid "remove a transform" msgstr "supprimer une transformation" -#: sql_help.c:5977 +#: sql_help.c:6010 msgid "remove a trigger" msgstr "supprimer un trigger" -#: sql_help.c:5983 +#: sql_help.c:6016 msgid "remove a data type" msgstr "supprimer un type de données" -#: sql_help.c:5995 +#: sql_help.c:6028 msgid "remove a user mapping for a foreign server" msgstr "supprime une correspondance utilisateur pour un serveur distant" -#: sql_help.c:6001 +#: sql_help.c:6034 msgid "remove a view" msgstr "supprimer une vue" -#: sql_help.c:6013 +#: sql_help.c:6046 msgid "execute a prepared statement" msgstr "exécuter une instruction préparée" -#: sql_help.c:6019 +#: sql_help.c:6052 msgid "show the execution plan of a statement" msgstr "afficher le plan d'exécution d'une instruction" -#: sql_help.c:6025 +#: sql_help.c:6058 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:6031 +#: sql_help.c:6064 msgid "define access privileges" msgstr "définir des privilèges d'accès" -#: sql_help.c:6037 +#: sql_help.c:6070 msgid "import table definitions from a foreign server" msgstr "importer la définition d'une table à partir d'un serveur distant" -#: sql_help.c:6043 +#: sql_help.c:6076 msgid "create new rows in a table" msgstr "créer de nouvelles lignes dans une table" -#: sql_help.c:6049 +#: sql_help.c:6082 msgid "listen for a notification" msgstr "se mettre à l'écoute d'une notification" -#: sql_help.c:6055 +#: sql_help.c:6088 msgid "load a shared library file" msgstr "charger un fichier de bibliothèque partagée" -#: sql_help.c:6061 +#: sql_help.c:6094 msgid "lock a table" msgstr "verrouiller une table" -#: sql_help.c:6067 +#: sql_help.c:6100 msgid "conditionally insert, update, or delete rows of a table" msgstr "insère, modifie ou supprime des lignes d'une table de façon conditionnelle" -#: sql_help.c:6073 +#: sql_help.c:6106 msgid "position a cursor" msgstr "positionner un curseur" -#: sql_help.c:6079 +#: sql_help.c:6112 msgid "generate a notification" msgstr "engendrer une notification" -#: sql_help.c:6085 +#: sql_help.c:6118 msgid "prepare a statement for execution" msgstr "préparer une instruction pour exécution" -#: sql_help.c:6091 +#: sql_help.c:6124 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:6097 +#: sql_help.c:6130 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:6103 +#: sql_help.c:6136 msgid "replace the contents of a materialized view" msgstr "remplacer le contenu d'une vue matérialisée" -#: sql_help.c:6109 +#: sql_help.c:6142 msgid "rebuild indexes" msgstr "reconstruire des index" -#: sql_help.c:6115 +#: sql_help.c:6148 msgid "release a previously defined savepoint" msgstr "détruire un savepoint précédemment défini" -#: sql_help.c:6121 +#: sql_help.c:6154 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:6127 +#: sql_help.c:6160 msgid "remove access privileges" msgstr "supprimer des privilèges d'accès" -#: sql_help.c:6139 +#: sql_help.c:6172 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:6145 +#: sql_help.c:6178 msgid "roll back to a savepoint" msgstr "annuler jusqu'au point de retournement" -#: sql_help.c:6151 +#: sql_help.c:6184 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:6157 +#: sql_help.c:6190 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:6163 sql_help.c:6217 sql_help.c:6253 +#: sql_help.c:6196 sql_help.c:6250 sql_help.c:6286 msgid "retrieve rows from a table or view" msgstr "extraire des lignes d'une table ou d'une vue" -#: sql_help.c:6175 +#: sql_help.c:6208 msgid "change a run-time parameter" msgstr "modifier un paramètre d'exécution" -#: sql_help.c:6181 +#: sql_help.c:6214 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:6187 +#: sql_help.c:6220 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:6193 +#: sql_help.c:6226 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:6199 +#: sql_help.c:6232 msgid "set the characteristics of the current transaction" msgstr "définir les caractéristiques de la transaction en cours" -#: sql_help.c:6205 +#: sql_help.c:6238 msgid "show the value of a run-time parameter" msgstr "afficher la valeur d'un paramètre d'exécution" -#: sql_help.c:6223 +#: sql_help.c:6256 msgid "empty a table or set of tables" msgstr "vider une table ou un ensemble de tables" -#: sql_help.c:6229 +#: sql_help.c:6262 msgid "stop listening for a notification" msgstr "arrêter l'écoute d'une notification" -#: sql_help.c:6235 +#: sql_help.c:6268 msgid "update rows of a table" msgstr "actualiser les lignes d'une table" -#: sql_help.c:6241 +#: sql_help.c:6274 msgid "garbage-collect and optionally analyze a database" msgstr "compacter et optionnellement analyser une base de données" -#: sql_help.c:6247 +#: sql_help.c:6280 msgid "compute a set of rows" msgstr "calculer un ensemble de lignes" @@ -6623,7 +6697,7 @@ msgstr "option supplémentaire « %s » ignorée" msgid "could not find own program executable" msgstr "n'a pas pu trouver son propre exécutable" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6658,467 +6732,8 @@ msgstr "" "valeur « %s » non reconnue pour « %s »\n" "Les valeurs disponibles sont : %s." -#~ msgid " \"%s\"" -#~ msgstr " « %s »" - -#~ msgid " \"%s\" IN %s %s" -#~ msgstr " \"%s\" DANS %s %s" - -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide, puis quitte\n" - -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version, puis quitte\n" - -#~ 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" - -#~ msgid " VERSION psql's version (verbose string)\n" -#~ msgstr " VERSION version de psql (chaîne verbeuse)\n" - -#~ msgid " VERSION_NAME psql's version (short string)\n" -#~ msgstr " VERSION_NAME version de psql (chaîne courte)\n" - -#~ msgid " VERSION_NUM psql's version (numeric format)\n" -#~ msgstr " VERSION_NUM version de psql (format numérique)\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 " \\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 " \\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 " \\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 "" -#~ " \\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 " \\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 " \\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 " \\l[+] list all databases\n" -#~ msgstr " \\l[+] affiche la liste des bases de données\n" - -#, c-format -#~ msgid "" -#~ " \\lo_export LOBOID FILE\n" -#~ " \\lo_import FILE [COMMENT]\n" -#~ " \\lo_list[+]\n" -#~ " \\lo_unlink LOBOID large object operations\n" -#~ msgstr "" -#~ " \\lo_export OIDLOB FICHIER\n" -#~ " \\lo_import FICHIER [COMMENTAIRE]\n" -#~ " \\lo_list[+]\n" -#~ " \\lo_unlink OIDLOB opérations sur les « Large Objects »\n" - -#~ 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 " as user \"%s\"" -#~ msgstr " comme utilisateur « %s »" - -#~ msgid " at port \"%s\"" -#~ msgstr " sur le port « %s »" - -#~ msgid " on host \"%s\"" -#~ msgstr " sur l'hôte « %s »" - -#~ msgid "%s\n" -#~ msgstr "%s\n" - -#~ 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 "%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 "(1 row)" -#~ msgid_plural "(%lu rows)" -#~ msgstr[0] "(1 ligne)" -#~ msgstr[1] "(%lu lignes)" - -#~ msgid "(No rows)\n" -#~ msgstr "(Aucune ligne)\n" - -#~ msgid "+ opt(%d) = |%s|\n" -#~ msgstr "+ opt(%d) = |%s|\n" - -#~ msgid "?%c? \"%s.%s\"" -#~ msgstr "?%c? « %s.%s »" - -#~ msgid "Access privileges for database \"%s\"" -#~ msgstr "Droits d'accès pour la base de données « %s »" - -#~ 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" - -#~ msgid "Copy, Large Object\n" -#~ msgstr "Copie, « Large Object »\n" - -#~ msgid "Could not send cancel request: %s" -#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" - -#~ msgid "Disabled triggers:" -#~ msgstr "Triggers désactivés :" - -#~ msgid "Enter new password: " -#~ msgstr "Saisir le nouveau mot de passe : " - -#~ msgid "Exclusion constraints:" -#~ msgstr "Contraintes d'exclusion :" - -#~ msgid "Invalid command \\%s. Try \\? for help.\n" -#~ msgstr "Commande \\%s invalide. Essayez \\? pour l'aide-mémoire.\n" - -#~ msgid "Modifier" -#~ msgstr "Modificateur" - -#~ msgid "Modifiers" -#~ msgstr "Modificateurs" - -#~ msgid "No matching relations found.\n" -#~ msgstr "Aucune relation correspondante trouvée.\n" - -#~ msgid "No matching settings found.\n" -#~ msgstr "Aucun paramètre correspondant trouvé.\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 "No relations found.\n" -#~ msgstr "Aucune relation trouvée.\n" - -#~ msgid "No settings found.\n" -#~ msgstr "Aucun paramètre trouvé.\n" - -#~ msgid "Object Description" -#~ msgstr "Description d'un objet" - -#~ msgid "Password encryption failed.\n" -#~ msgstr "Échec du chiffrement du mot de passe.\n" - -#~ msgid "Procedure" -#~ msgstr "Procédure" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter les bogues à .\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapportez les bogues à .\n" - -#~ msgid "SSL connection (unknown cipher)\n" -#~ msgstr "Connexion SSL (chiffrement inconnu)\n" - -#~ msgid "Showing locale-adjusted numeric output." -#~ msgstr "Affichage de la sortie numérique adaptée à la locale." - -#~ msgid "Showing only tuples." -#~ msgstr "Affichage des tuples seuls." - -#~ msgid "Source code" -#~ msgstr "Code source" - -#, c-format -#~ msgid "Special relation \"%s.%s\"" -#~ msgstr "Relation spéciale « %s.%s »" - -#, c-format -#~ msgid "The server (version %s) does not support altering default privileges." -#~ msgstr "Le serveur (version %s) ne supporte pas la modification des droits par défaut." - -#, c-format -#~ msgid "The server (version %s) does not support collations." -#~ msgstr "Le serveur (version %s) ne supporte pas les collationnements." - -#, c-format -#~ msgid "The server (version %s) does not support editing function source." -#~ msgstr "Le serveur (version %s) ne supporte pas l'édition du code de la fonction." - -#, c-format -#~ msgid "The server (version %s) does not support editing view definitions." -#~ msgstr "Le serveur (version %s) ne supporte pas l'édition des définitions de vue." - -#, c-format -#~ msgid "The server (version %s) does not support foreign servers." -#~ msgstr "Le serveur (version %s) ne supporte pas les serveurs distants." - -#, c-format -#~ msgid "The server (version %s) does not support foreign tables." -#~ msgstr "Le serveur (version %s) ne supporte pas les tables distantes." - -#, c-format -#~ msgid "The server (version %s) does not support foreign-data wrappers." -#~ msgstr "Le serveur (version %s) ne supporte pas les wrappers de données distantes." - -#, c-format -#~ msgid "The server (version %s) does not support full text search." -#~ msgstr "Le serveur (version %s) ne supporte pas la recherche plein texte." - -#, c-format -#~ msgid "The server (version %s) does not support per-database role settings." -#~ msgstr "Le serveur (version %s) ne supporte pas les paramètres de rôles par bases de données." - -#, c-format -#~ msgid "The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK." -#~ msgstr "Le serveur (version %s) ne supporte pas les points de sauvegarde pour ON_ERROR_ROLLBACK." - -#, 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." - -#, 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." - -#, c-format -#~ msgid "The server (version %s) does not support tablespaces." -#~ msgstr "Le serveur (version %s) ne supporte pas les tablespaces." - -#, c-format -#~ msgid "The server (version %s) does not support user mappings." -#~ msgstr "Le serveur (version %s) ne supporte pas les correspondances d'utilisateurs." - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayez « %s --help » pour plus d'informations.\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 "Watch every %lds\t%s" -#~ msgstr "Vérifier chaque %lds\t%s" - -#~ msgid "" -#~ "Welcome to %s %s (server %s), the PostgreSQL interactive terminal.\n" -#~ "\n" -#~ msgstr "" -#~ "Bienvenue dans %s %s (serveur %s), l'interface interactive de PostgreSQL.\n" -#~ "\n" - -#~ msgid "" -#~ "Welcome to %s %s, the PostgreSQL interactive terminal.\n" -#~ "\n" -#~ msgstr "" -#~ "Bienvenue dans %s %s, l'interface interactive de PostgreSQL.\n" -#~ "\n" - -#~ msgid "\\%s: error\n" -#~ msgstr "\\%s : erreur\n" - -#~ msgid "\\%s: error while setting variable\n" -#~ msgstr "\\%s : erreur lors de l'initialisation de la variable\n" - -#~ msgid "\\copy: %s" -#~ msgstr "\\copy : %s" - -#~ msgid "\\copy: unexpected response (%d)\n" -#~ msgstr "\\copy : réponse inattendue (%d)\n" - -#, c-format -#~ msgid "\\watch cannot be used with COPY" -#~ msgstr "\\watch ne peut pas être utilisé avec COPY" - -#~ msgid "agg_name" -#~ msgstr "nom_d_agrégat" - -#~ msgid "agg_type" -#~ msgstr "type_aggrégat" - -#~ msgid "attribute" -#~ msgstr "attribut" - -#~ msgid "child process was terminated by signal %d" -#~ msgstr "le processus fils a été terminé par le signal %d" - -#~ msgid "child process was terminated by signal %s" -#~ msgstr "le processus fils a été terminé par le signal %s" - -#~ msgid "collate %s" -#~ msgstr "collationnement %s" - -#~ msgid "collation_name" -#~ msgstr "nom_collation" - -#~ msgid "column" -#~ msgstr "colonne" - -#~ msgid "contains support for command-line editing" -#~ msgstr "contient une gestion avancée de la ligne de commande" - -#~ msgid "could not change directory to \"%s\"" -#~ msgstr "n'a pas pu accéder au répertoire « %s »" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "n'a pas pu modifier le répertoire par « %s » : %m" - -#~ 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 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" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "n'a pas pu identifier le répertoire courant : %m" - -#~ 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" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "n'a pas pu lire le binaire « %s »" - -#~ msgid "could not read symbolic link \"%s\"" -#~ msgstr "n'a pas pu lire le lien symbolique « %s »" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "n'a pas pu lire le lien symbolique « %s » : %m" - -#~ msgid "could not set variable \"%s\"\n" -#~ msgstr "n'a pas pu initialiser la variable « %s »\n" - -#~ msgid "could not stat file \"%s\": %s\n" -#~ msgstr "n'a pas pu tester le fichier « %s » : %s\n" - -#~ 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" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#~ msgid "from_list" -#~ msgstr "liste_from" - -#~ msgid "input_data_type" -#~ msgstr "type_de_données_en_entrée" - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "binaire « %s » invalide" - -#~ msgid "lock a named relation (table, etc)" -#~ msgstr "verrouille une relation nommée (table, etc)" - -#~ msgid "match" -#~ msgstr "match" - -#~ msgid "new_column" -#~ msgstr "nouvelle_colonne" - -#~ msgid "normal" -#~ msgstr "normal" - -#~ msgid "not null" -#~ msgstr "non NULL" - -#~ msgid "pclose failed: %m" -#~ msgstr "échec de pclose : %m" - -#~ msgid "pclose failed: %s" -#~ msgstr "échec de pclose : %s" - -#~ msgid "rolename" -#~ msgstr "nom_rôle" - -#~ msgid "serialtype" -#~ msgstr "serialtype" - -#~ msgid "special" -#~ msgstr "spécial" - -#~ msgid "statistic_type" -#~ msgstr "type_statistique" - -#~ msgid "tablespace" -#~ msgstr "tablespace" - -#~ msgid "text" -#~ msgstr "texte" - -#~ msgid "timezone" -#~ msgstr "fuseau_horaire" - -#, c-format -#~ msgid "unexpected result status for \\watch" -#~ msgstr "statut résultat inattendu pour \\watch" - -#~ msgid "unterminated quoted string\n" -#~ msgstr "chaîne entre guillemets non terminée\n" +#~ msgid "partition_name1" +#~ msgstr "nom_partition1" -#~ msgid "where direction can be empty or one of:" -#~ msgstr "où direction peut être vide ou faire partie de :" +#~ msgid "partition_name2" +#~ msgstr "nom_partition2" diff --git a/src/bin/psql/po/it.po b/src/bin/psql/po/it.po index 7f071c3afe3c4..aee5e3b405e13 100644 --- a/src/bin/psql/po/it.po +++ b/src/bin/psql/po/it.po @@ -21,7 +21,7 @@ msgstr "" "Project-Id-Version: psql (PostgreSQL) 11\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2022-09-26 08:16+0000\n" -"PO-Revision-Date: 2023-09-05 09:53+0200\n" +"PO-Revision-Date: 2024-06-26 09:10+0200\n" "Last-Translator: Daniele Varrazzo \n" "Language-Team: https://github.com/dvarrazzo/postgresql-it\n" "Language: it\n" @@ -2829,7 +2829,7 @@ msgstr " \\copy ... esegui una SQL COPY con flusso di dati dal cli #: help.c:227 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" -msgstr " \\echo [-n] [STRING] scrive la stringa nello standard output (-n per nessuna nuova riga)\n" +msgstr " \\echo [-n] [STRING] scrive la stringa nello standard output (-n per nessuna nuova riga)\n" #: help.c:228 msgid " \\i FILE execute commands from file\n" diff --git a/src/bin/psql/po/ja.po b/src/bin/psql/po/ja.po index 56cbe4ea2e67d..25c0e2e0e74ff 100644 --- a/src/bin/psql/po/ja.po +++ b/src/bin/psql/po/ja.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: psql (PostgreSQL 17)\n" +"Project-Id-Version: psql (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:24+0900\n" -"PO-Revision-Date: 2024-06-14 11:30+0900\n" +"POT-Creation-Date: 2025-04-08 10:37+0900\n" +"PO-Revision-Date: 2025-04-08 11:22+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -22,22 +22,22 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " @@ -62,28 +62,28 @@ msgstr "実行対象の\"%s\"が見つかりませんでした" msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "パス\"%s\"を絶対パス形式に変換できませんでした: %m" -#: ../../common/exec.c:382 copy.c:326 +#: ../../common/exec.c:363 copy.c:326 #, c-format msgid "could not execute command \"%s\": %m" msgstr "コマンド\"%s\"を実行できませんでした: %m" -#: ../../common/exec.c:394 +#: ../../common/exec.c:375 #, c-format msgid "could not read from command \"%s\": %m" msgstr "コマンド\"%s\"から読み取れませんでした: %m" -#: ../../common/exec.c:397 +#: ../../common/exec.c:378 #, c-format msgid "no data was returned by command \"%s\"" msgstr "コマンド\"%s\"がデータを返却しませんでした" -#: ../../common/exec.c:424 +#: ../../common/exec.c:405 #, c-format msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 -#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 +#: ../../common/exec.c:543 ../../common/exec.c:588 ../../common/exec.c:680 +#: command.c:1636 command.c:3985 command.c:4034 command.c:4159 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -105,7 +105,7 @@ msgstr "null ポインターを複製することはできません(内部エラ msgid "could not look up effective user ID %ld: %s" msgstr "実効ユーザーID %ld が見つかりませんでした: %s" -#: ../../common/username.c:45 command.c:616 +#: ../../common/username.c:45 command.c:700 msgid "user does not exist" msgstr "ユーザーが存在しません" @@ -165,8 +165,8 @@ msgstr "割り込み\n" #: ../../fe_utils/print.c:3188 #, c-format -msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" -msgstr "テーブルの内容を表示できません: セル数%lldが上限値%lld以上です。\n" +msgid "Cannot print table contents: number of cells % is equal to or exceeds maximum %zu.\n" +msgstr "テーブルの内容を表示できません: セル数%が上限値%zu以上です。\n" #: ../../fe_utils/print.c:3229 #, c-format @@ -175,325 +175,432 @@ msgstr "テーブルの内容にヘッダーを追加できません: 列数の #: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" -msgstr "テーブルの内容にセルを追加できません: セルの総数%lldを超過しています。\n" +msgid "Cannot add cell to table content: total cell count of % exceeded.\n" +msgstr "テーブルの内容にセルを追加できません: セルの総数%を超過しています。\n" #: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "出力フォーマットが無効(内部エラー):%d" -#: ../../fe_utils/psqlscan.l:718 +#: ../../fe_utils/psqlscan.l:723 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "変数\"%s\"の再帰展開をスキップしています" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../port/user.c:43 ../../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "ローカルユーザーID %dの参照に失敗しました: %s" - -#: ../../port/user.c:48 ../../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "ID %d を持つローカルユーザーは存在しません" - -#: command.c:235 +#: command.c:245 #, c-format msgid "invalid command \\%s" msgstr "不正なコマンド \\%s " -#: command.c:237 +#: command.c:247 #, c-format msgid "Try \\? for help." msgstr " \\? でヘルプを表示します。" -#: command.c:255 +#: command.c:265 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: 余分な引数\"%s\"は無視されました" -#: command.c:307 +#: command.c:317 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "\\%s コマンドは無視されます; 現在の\\ifブロックを抜けるには\\endifまたはCtrl-Cを使用します" -#: command.c:614 +#: command.c:552 command.c:747 command.c:1882 command.c:2050 command.c:2363 +#: command.c:2377 command.c:2409 command.c:2498 command.c:2611 command.c:2889 +#: command.c:3151 command.c:3191 +#, c-format +msgid "\\%s: missing required argument" +msgstr "\\%s: 必要な引数がありません" + +#: command.c:698 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "ユーザーID %ldのホームディレクトリを取得できませんでした : %s" -#: command.c:633 +#: command.c:717 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: ディレクトリを\"%s\"に変更できませんでした: %m" -#: command.c:657 +#: command.c:789 #, c-format msgid "You are currently not connected to a database.\n" msgstr "現在データベースに接続していません。\n" -#: command.c:667 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" -msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"上のポート\"%s\"で接続しています。\n" +#: command.c:815 +msgid "Connection Information" +msgstr "接続情報" -#: command.c:670 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" -msgstr "データベース\"%s\"にユーザー\"%s\"として、\"%s\"のソケットを介してポート\"%s\"で接続しています。\n" +#: command.c:816 describe.c:4721 +msgid "Parameter" +msgstr "パラメータ" -#: command.c:676 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" -msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"(アドレス\"%s\")上のポート\"%s\"で接続しています。\n" +#: command.c:817 describe.c:4722 +msgid "Value" +msgstr "値" -#: command.c:679 -#, c-format -msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" -msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"上のポート\"%s\"で接続しています。\n" +#: command.c:820 describe.c:3873 +msgid "Database" +msgstr "データベース" + +#: command.c:824 +msgid "Client User" +msgstr "クライアントユーザー" + +#: command.c:833 command.c:848 +msgid "Host Address" +msgstr "ソケットディレクトリ" + +#: command.c:838 +msgid "Socket Directory" +msgstr "ソケットディレクトリ" + +#: command.c:844 +msgid "Host" +msgstr "ホスト" + +#: command.c:854 +msgid "Server Port" +msgstr "サーバーポート" + +#: command.c:858 describe.c:246 describe.c:3614 describe.c:3954 +msgid "Options" +msgstr "オプション" + +#: command.c:862 +msgid "Protocol Version" +msgstr "プロトコルバージョン" + +#: command.c:866 +msgid "Password Used" +msgstr "パスワード使用" + +#: command.c:867 command.c:871 command.c:879 command.c:912 +msgid "false" +msgstr "false" + +#: command.c:867 command.c:871 command.c:879 command.c:912 +msgid "true" +msgstr "true" + +#: command.c:870 +msgid "GSSAPI Authenticated" +msgstr "GSSAPI認証" + +#: command.c:874 +msgid "Backend PID" +msgstr "バックエンドPID" + +#: command.c:878 +msgid "TLS Connection" +msgstr "TLS接続" -#: command.c:1069 command.c:1170 command.c:2675 +#: command.c:898 +msgid "TLS Library" +msgstr "TLSライブラリ" + +#: command.c:899 command.c:902 command.c:905 command.c:908 command.c:920 +#: command.c:924 command.c:4423 command.c:4424 +msgid "unknown" +msgstr "不明" + +#: command.c:901 +msgid "TLS Protocol" +msgstr "TLSプロトコル" + +#: command.c:904 +msgid "TLS Key Bits" +msgstr "TKSキービット数" + +#: command.c:907 +msgid "TLS Cipher" +msgstr "TLS暗号化方式" + +#: command.c:910 +msgid "TLS Compression" +msgstr "TLS圧縮" + +#: command.c:914 +msgid "ALPN" +msgstr "ALPN" + +#: command.c:915 command.c:4426 +msgid "none" +msgstr "なし" + +#: command.c:1332 command.c:1433 command.c:3184 #, c-format msgid "no query buffer" msgstr "問い合わせバッファがありません" -#: command.c:1102 command.c:5771 +#: command.c:1365 command.c:6307 #, c-format msgid "invalid line number: %s" msgstr "不正な行番号です: %s" -#: command.c:1248 +#: command.c:1511 msgid "No changes" msgstr "変更されていません" -#: command.c:1333 +#: command.c:1596 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: エンコーディング名が不正であるか、または変換プロシージャが見つかりません。" -#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5877 -#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 -#: common.c:1228 common.c:1347 common.c:1385 common.c:1482 common.c:1548 -#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 -#: startup.c:304 +#: command.c:1632 command.c:2572 command.c:3981 command.c:4179 command.c:6413 +#: common.c:233 common.c:282 common.c:455 common.c:1178 common.c:1196 +#: common.c:1264 common.c:1376 common.c:1414 common.c:1688 common.c:1768 +#: copy.c:486 copy.c:731 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:309 #, c-format msgid "%s" msgstr "%s" -#: command.c:1375 +#: command.c:1639 msgid "There is no previous error." msgstr "直前のエラーはありません。" -#: command.c:1488 +#: command.c:1742 +#, c-format +msgid "\\%s not allowed in pipeline mode" +msgstr "\\%s はパイプラインモードでは使用できません" + +#: command.c:1798 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: 右括弧がありません" -#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 -#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 +#: command.c:1924 #, c-format -msgid "\\%s: missing required argument" -msgstr "\\%s: 必要な引数がありません" +msgid "\\getresults: invalid number of requested results" +msgstr "\\getresults: 要求された結果の数が不正" -#: command.c:1822 +#: command.c:1949 +#, c-format +msgid "\\gexec not allowed in pipeline mode" +msgstr "\\gexec はパイプラインモードでは使用できません" + +#: command.c:1975 +#, c-format +msgid "\\gset not allowed in pipeline mode" +msgstr "\\gset はパイプラインモードでは使用できません" + +#: command.c:2181 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: \\else の後には置けません" -#: command.c:1827 +#: command.c:2186 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: 対応する \\if がありません" -#: command.c:1891 +#: command.c:2250 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: \\else の後には置けません" -#: command.c:1896 +#: command.c:2255 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: 対応する \\if がありません" -#: command.c:1936 +#: command.c:2295 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: 対応する \\if がありません" -#: command.c:2092 +#: command.c:2473 msgid "Query buffer is empty." msgstr "問い合わせバッファは空です。" -#: command.c:2135 +#: command.c:2550 #, c-format msgid "Enter new password for user \"%s\": " msgstr "ユーザー\"%s\"の新しいパスワードを入力してください: " -#: command.c:2139 +#: command.c:2554 msgid "Enter it again: " msgstr "もう一度入力してください: " -#: command.c:2148 +#: command.c:2563 #, c-format msgid "Passwords didn't match." msgstr "パスワードが一致しませんでした。" -#: command.c:2231 +#: command.c:2646 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: 変数の値を読み取ることができませんでした" -#: command.c:2333 +#: command.c:2748 msgid "Query buffer reset (cleared)." msgstr "問い合わせバッファがリセット(クリア)されました。" -#: command.c:2355 +#: command.c:2770 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "ファイル\"%s\"にヒストリーを出力しました。\n" -#: command.c:2442 +#: command.c:2800 +#, c-format +msgid "\\sendpipeline must be used after \\bind or \\bind_named" +msgstr "\\sendpipeline は \\bind または \\bind_named の後で使用する必要があります" + +#: command.c:2807 +#, c-format +msgid "\\sendpipeline not allowed outside of pipeline mode" +msgstr "\\sendpipeline はパイプラインモード以外では使用できません" + +#: command.c:2894 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: 環境変数名に\"=\"を含めることはできません" -#: command.c:2490 +#: command.c:2942 #, c-format msgid "function name is required" msgstr "関数名が必要です" -#: command.c:2492 +#: command.c:2944 #, c-format msgid "view name is required" msgstr "ビュー名が必要です" -#: command.c:2614 +#: command.c:3123 msgid "Timing is on." msgstr "タイミングは on です。" -#: command.c:2616 +#: command.c:3125 msgid "Timing is off." msgstr "タイミングは off です。" -#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 -#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 -#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 -#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 +#: command.c:3211 command.c:3249 command.c:4694 command.c:4697 command.c:4700 +#: command.c:4706 command.c:4708 command.c:4734 command.c:4744 command.c:4756 +#: command.c:4770 command.c:4797 command.c:4855 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:797 psqlscanslash.l:809 psqlscanslash.l:827 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2729 copy.c:388 +#: command.c:3238 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2801 command.c:2867 +#: command.c:3287 +#, c-format +msgid "\\watch not allowed in pipeline mode" +msgstr "\\watch はパイプラインモードでは使用できません" + +#: command.c:3319 command.c:3385 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: インターバル値が2回以上指定されました" -#: command.c:2811 command.c:2877 +#: command.c:3329 command.c:3395 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: 不正なインターバル値 \"%s\"" -#: command.c:2821 +#: command.c:3339 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: 反復回数が2回以上指定されました" -#: command.c:2831 +#: command.c:3349 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: 不正な反復回数 '%s'" -#: command.c:2841 +#: command.c:3359 #, c-format msgid "\\watch: minimum row count specified more than once" msgstr "\\watch: 詐称行数が2回以上指定されました" -#: command.c:2851 +#: command.c:3369 #, c-format msgid "\\watch: incorrect minimum row count \"%s\"" msgstr "\\watch: 不正な最小行数 \"%s\"" -#: command.c:2858 +#: command.c:3376 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: 認識できないパラーメータ \"%s\"" -#: command.c:3255 startup.c:243 startup.c:293 +#: command.c:3782 startup.c:248 startup.c:298 msgid "Password: " msgstr "パスワード: " -#: command.c:3260 startup.c:290 +#: command.c:3787 startup.c:295 #, c-format msgid "Password for user %s: " msgstr "ユーザー %s のパスワード: " -#: command.c:3316 +#: command.c:3843 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "接続文字列使用時はユーザー、ホストおよびポートは個別に指定しないでください" -#: command.c:3351 +#: command.c:3878 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "パラメータ再利用に使用可能なデータベース接続がありません" -#: command.c:3658 +#: command.c:4185 #, c-format msgid "Previous connection kept" msgstr "以前の接続は保持されています" -#: command.c:3664 +#: command.c:4191 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3720 +#: command.c:4247 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"のポート\"%s\"で接続しました。\n" -#: command.c:3723 +#: command.c:4250 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "データベース\"%s\"にユーザー\"%s\"として、ソケット\"%s\"のポート\"%s\"を介して接続しました。\n" -#: command.c:3729 +#: command.c:4256 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"(アドレス\"%s\")のポート\"%s\"で接続しました。\n" -#: command.c:3732 +#: command.c:4259 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "データベース\"%s\"にユーザー\"%s\"として、ホスト\"%s\"のポート\"%s\"を介して接続しました。\n" -#: command.c:3737 +#: command.c:4264 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "データベース\"%s\"にユーザー\"%s\"として接続しました。\n" -#: command.c:3843 +#: command.c:4370 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s、サーバー %s)\n" -#: command.c:3856 +#: command.c:4383 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -502,33 +609,25 @@ msgstr "" "警告: %s のメジャーバージョンは %s ですが、サーバーのメジャーバージョンは %s です。\n" " psql の機能の中で、動作しないものがあるかもしれません。\n" -#: command.c:3895 +#: command.c:4422 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" msgstr "SSL接続(プロトコル: %s、暗号化方式: %s、圧縮: %s、ALPN: %s)\n" -#: command.c:3896 command.c:3897 -msgid "unknown" -msgstr "不明" - -#: command.c:3898 help.c:42 +#: command.c:4425 help.c:39 msgid "off" msgstr "オフ" -#: command.c:3898 help.c:42 +#: command.c:4425 help.c:39 msgid "on" msgstr "オン" -#: command.c:3899 -msgid "none" -msgstr "なし" - -#: command.c:3913 +#: command.c:4440 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "GSSAPI暗号化接続\n" -#: command.c:3933 +#: command.c:4460 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -539,283 +638,283 @@ msgstr "" " 8ビット文字が正しく表示されない可能性があります。詳細はpsqlリファレンスマニュアルの\n" " \"Windowsユーザー向けの注意\" (Notes for Windows users)を参照してください。\n" -#: command.c:4038 +#: command.c:4569 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "環境変数PSQL_EDITOR_LINENUMBER_ARGで行番号を指定する必要があります" -#: command.c:4068 +#: command.c:4599 #, c-format msgid "could not start editor \"%s\"" msgstr "エディタ\"%s\"を起動できませんでした" -#: command.c:4070 +#: command.c:4601 #, c-format msgid "could not start /bin/sh" msgstr "/bin/shを起動できませんでした" -#: command.c:4120 +#: command.c:4651 #, c-format msgid "could not locate temporary directory: %s" msgstr "一時ディレクトリが見つかりませんでした: %s" -#: command.c:4147 +#: command.c:4678 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "一時ファイル\"%s\"をオープンできませんでした: %m" -#: command.c:4483 +#: command.c:5014 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: 曖昧な短縮形\"%s\"が\"%s\"と\"%s\"のどちらにも合致します" -#: command.c:4503 +#: command.c:5034 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: 有効なフォーマットはaligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4522 +#: command.c:5053 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: 有効な線のスタイルは ascii, old-ascii, unicode" -#: command.c:4537 +#: command.c:5068 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: 有効な Unicode 罫線のスタイルは single, double" -#: command.c:4552 +#: command.c:5083 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: 有効な Unicode 列罫線のスタイルは single, double" -#: command.c:4567 +#: command.c:5098 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: 有効な Unicode ヘッダー罫線のスタイルは single, double" -#: command.c:4619 +#: command.c:5150 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: xheader_widthに指定可能な値は、\"%s\" (default)、\"%s\"、\"%s\"、または幅そのものを指定する数値です" -#: command.c:4636 +#: command.c:5167 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsepは単一の1バイト文字でなければなりません" -#: command.c:4641 +#: command.c:5172 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldsepはダブルクォート、改行(LF)または復帰(CR)にはできません" -#: command.c:4779 command.c:4980 +#: command.c:5310 command.c:5511 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: 未定義のオプション:%s" -#: command.c:4799 +#: command.c:5330 #, c-format msgid "Border style is %d.\n" msgstr "罫線スタイルは %d です。\n" -#: command.c:4805 +#: command.c:5336 #, c-format msgid "Target width is unset.\n" msgstr "ターゲットの幅が設定されていません。\n" -#: command.c:4807 +#: command.c:5338 #, c-format msgid "Target width is %d.\n" msgstr "ターゲットの幅は %d です。\n" -#: command.c:4814 +#: command.c:5345 #, c-format msgid "Expanded display is on.\n" msgstr "拡張表示は on です。\n" -#: command.c:4816 +#: command.c:5347 #, c-format msgid "Expanded display is used automatically.\n" msgstr "拡張表示が自動的に使われます。\n" -#: command.c:4818 +#: command.c:5349 #, c-format msgid "Expanded display is off.\n" msgstr "拡張表示は off です。\n" -#: command.c:4825 command.c:4827 command.c:4829 +#: command.c:5356 command.c:5358 command.c:5360 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "拡張表示ヘッダ幅は\"%s\"です。\n" -#: command.c:4831 +#: command.c:5362 #, c-format msgid "Expanded header width is %d.\n" msgstr "拡張表示ヘッダ幅は%dです。\n" -#: command.c:4837 +#: command.c:5368 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "CSVのフィールド区切り文字は\"%s\"です。\n" -#: command.c:4845 command.c:4853 +#: command.c:5376 command.c:5384 #, c-format msgid "Field separator is zero byte.\n" msgstr "フィールド区切り文字はゼロバイトです。\n" -#: command.c:4847 +#: command.c:5378 #, c-format msgid "Field separator is \"%s\".\n" msgstr "フィールド区切り文字は\"%s\"です。\n" -#: command.c:4860 +#: command.c:5391 #, c-format msgid "Default footer is on.\n" msgstr "デフォルトフッター(行数の表示)は on です。\n" -#: command.c:4862 +#: command.c:5393 #, c-format msgid "Default footer is off.\n" msgstr "デフォルトフッター(行数の表示)は off です。\n" -#: command.c:4868 +#: command.c:5399 #, c-format msgid "Output format is %s.\n" msgstr "出力形式は %s です。\n" -#: command.c:4874 +#: command.c:5405 #, c-format msgid "Line style is %s.\n" msgstr "線のスタイルは %s です。\n" -#: command.c:4881 +#: command.c:5412 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null表示は\"%s\"です。\n" -#: command.c:4889 +#: command.c:5420 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "『数値出力時のロケール調整』は on です。\n" -#: command.c:4891 +#: command.c:5422 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "『数値出力時のロケール調整』は off です。\n" -#: command.c:4898 +#: command.c:5429 #, c-format msgid "Pager is used for long output.\n" msgstr "表示が縦に長くなる場合はページャーを使います。\n" -#: command.c:4900 +#: command.c:5431 #, c-format msgid "Pager is always used.\n" msgstr "常にページャーを使います。\n" -#: command.c:4902 +#: command.c:5433 #, c-format msgid "Pager usage is off.\n" msgstr "「ページャーを使う」は off です。\n" -#: command.c:4908 +#: command.c:5439 #, 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] "%d 行未満の場合、ページャーは使われません。\n" -#: command.c:4918 command.c:4928 +#: command.c:5449 command.c:5459 #, c-format msgid "Record separator is zero byte.\n" msgstr "レコードの区切り文字はゼロバイトです\n" -#: command.c:4920 +#: command.c:5451 #, c-format msgid "Record separator is .\n" msgstr "レコード区切り文字はです。\n" -#: command.c:4922 +#: command.c:5453 #, c-format msgid "Record separator is \"%s\".\n" msgstr "レコード区切り記号は\"%s\"です。\n" -#: command.c:4935 +#: command.c:5466 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "テーブル属性は\"%s\"です。\n" -#: command.c:4938 +#: command.c:5469 #, c-format msgid "Table attributes unset.\n" msgstr "テーブル属性は設定されていません。\n" -#: command.c:4945 +#: command.c:5476 #, c-format msgid "Title is \"%s\".\n" msgstr "タイトルは\"%s\"です。\n" -#: command.c:4947 +#: command.c:5478 #, c-format msgid "Title is unset.\n" msgstr "タイトルは設定されていません。\n" -#: command.c:4954 +#: command.c:5485 #, c-format msgid "Tuples only is on.\n" msgstr "「タプルのみ表示」は on です。\n" -#: command.c:4956 +#: command.c:5487 #, c-format msgid "Tuples only is off.\n" msgstr "「タプルのみ表示」は off です。\n" -#: command.c:4962 +#: command.c:5493 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Unicode の罫線スタイルは\"%s\"です。\n" -#: command.c:4968 +#: command.c:5499 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Unicode 行罫線のスタイルは\"%s\"です。\n" -#: command.c:4974 +#: command.c:5505 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Unicodeヘッダー行のスタイルは\"%s\"です。\n" -#: command.c:5223 +#: command.c:5754 #, c-format msgid "\\!: failed" msgstr "\\!: 失敗" -#: command.c:5257 +#: command.c:5792 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watchは空の問い合わせでは使えません" -#: command.c:5289 +#: command.c:5824 #, c-format msgid "could not set timer: %m" msgstr "タイマーを設定できません: %m" -#: command.c:5358 +#: command.c:5893 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (%g 秒毎)\n" -#: command.c:5361 +#: command.c:5896 #, c-format msgid "%s (every %gs)\n" msgstr "%s (%g 秒毎)\n" -#: command.c:5424 +#: command.c:5960 #, c-format msgid "could not wait for signals: %m" msgstr "シグナルを待機できませんでした: %m" -#: command.c:5480 command.c:5487 common.c:632 common.c:639 common.c:1123 +#: command.c:6016 command.c:6023 common.c:667 common.c:674 common.c:1159 #, c-format msgid "" "/******** QUERY *********/\n" @@ -828,107 +927,107 @@ msgstr "" "/************************/\n" "\n" -#: command.c:5666 +#: command.c:6202 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\"はビューではありません" -#: command.c:5682 +#: command.c:6218 #, c-format msgid "could not parse reloptions array" msgstr "reloptions配列をパースできませんでした" -#: common.c:206 +#: common.c:218 #, c-format msgid "cannot escape without active connection" msgstr "有効な接続がないのでエスケープできません" -#: common.c:247 +#: common.c:259 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"" -#: common.c:351 +#: common.c:363 #, c-format msgid "connection to server was lost" msgstr "サーバーへの接続が失われました" -#: common.c:355 +#: common.c:367 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "サーバーへの接続が失われました。リセットしています: " -#: common.c:360 +#: common.c:373 #, c-format msgid "Failed.\n" msgstr "失敗。\n" -#: common.c:377 +#: common.c:390 #, c-format msgid "Succeeded.\n" msgstr "成功。\n" -#: common.c:430 common.c:1061 +#: common.c:445 common.c:1097 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "想定外のPQresultStatus: %d" -#: common.c:571 +#: common.c:606 #, c-format msgid "Time: %.3f ms\n" msgstr "時間: %.3f ミリ秒\n" -#: common.c:586 +#: common.c:621 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "時間: %.3f ミリ秒(%02d:%06.3f)\n" -#: common.c:595 +#: common.c:630 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "時間: %.3f ミリ秒 (%02d:%02d:%06.3f)\n" -#: common.c:602 +#: common.c:637 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "時間: %.3f ミリ秒 (%.0f 日 %02d:%02d:%06.3f)\n" -#: common.c:626 common.c:683 common.c:1094 describe.c:6192 +#: common.c:661 common.c:718 common.c:1130 describe.c:6370 #, c-format msgid "You are currently not connected to a database." msgstr "現在データベースに接続していません。" -#: common.c:714 +#: common.c:749 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "PID %3$dのサーバープロセスから、ペイロード\"%2$s\"を持つ非同期通知\"%1$s\"を受信しました。\n" -#: common.c:717 +#: common.c:752 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "PID %2$dのサーバープロセスから非同期通知\"%1$s\"を受信しました。\n" -#: common.c:748 +#: common.c:783 #, c-format msgid "could not print result table: %m" msgstr "結果テーブルを表示できませんでした: %m" -#: common.c:768 +#: common.c:803 #, c-format msgid "no rows returned for \\gset" msgstr "\\gset に対して返すべき行がありません" -#: common.c:773 +#: common.c:808 #, c-format msgid "more than one row returned for \\gset" msgstr "\\gset に対して複数の行が返されました" -#: common.c:791 +#: common.c:826 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "特殊変数\"%s\"への\\gsetは無視されました" -#: common.c:1103 +#: common.c:1139 #, c-format msgid "" "/**(Single step mode: verify command)******************************************/\n" @@ -939,37 +1038,47 @@ msgstr "" "%s\n" "/**([Enter] を押して進むか、x [Enter] でキャンセル)****************************/\n" -#: common.c:1180 +#: common.c:1216 #, c-format msgid "STATEMENT: %s" msgstr "文: %s" -#: common.c:1216 +#: common.c:1252 #, c-format msgid "unexpected transaction status (%d)" msgstr "想定外のトランザクション状態(%d)" -#: common.c:1369 describe.c:2025 +#: common.c:1398 describe.c:2063 msgid "Column" msgstr "列" -#: common.c:1370 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 -#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 -#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 -#: describe.c:5829 +#: common.c:1399 describe.c:176 describe.c:362 describe.c:380 describe.c:1081 +#: describe.c:1243 describe.c:1773 describe.c:1797 describe.c:2064 +#: describe.c:4057 describe.c:4321 describe.c:4568 describe.c:4728 +#: describe.c:6004 msgid "Type" msgstr "タイプ" -#: common.c:1419 +#: common.c:1448 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "このコマンドは結果を返却しないか、結果にカラムが含まれません。\n" -#: common.c:1511 +#: common.c:1653 +#, c-format +msgid "No pending results to get" +msgstr "取得すべき保留中の結果はありません" + +#: common.c:1731 #, c-format msgid "fetching results in chunked mode failed" msgstr "チャンクモードでの結果の取得に失敗しました" +#: common.c:1780 +#, c-format +msgid "Pipeline aborted, command did not run" +msgstr "パイプラインが中断され、コマンドは実行されませんでした" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -1022,11 +1131,11 @@ msgstr "" "コピーするデータに続いて改行を入力してください。\n" "バックスラッシュとピリオドだけの行、もしくは EOF シグナルで終了します。" -#: copy.c:684 +#: copy.c:693 msgid "aborted because of read failure" msgstr "読み取りエラーのため中止" -#: copy.c:718 +#: copy.c:727 msgid "trying to exit copy mode" msgstr "コピーモードを終了しようとしています。" @@ -1075,1161 +1184,1251 @@ msgstr "\\crosstabview: 列名があいまいです: \"%s\"" msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: 列名が見つかりませんでした: \"%s\"" -#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 -#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 -#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 -#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 -#: describe.c:5542 describe.c:5941 describe.c:6018 +#: describe.c:94 describe.c:342 describe.c:649 describe.c:826 describe.c:1073 +#: describe.c:1230 describe.c:1306 describe.c:4046 describe.c:4308 +#: describe.c:4566 describe.c:4647 describe.c:4879 describe.c:5091 +#: describe.c:5340 describe.c:5581 describe.c:5650 describe.c:5661 +#: describe.c:5717 describe.c:6116 describe.c:6196 msgid "Schema" msgstr "スキーマ" -#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 -#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 -#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 -#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 -#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 -#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 -#: describe.c:6016 describe.c:6243 describe.c:6551 +#: describe.c:95 describe.c:173 describe.c:234 describe.c:343 describe.c:650 +#: describe.c:827 describe.c:958 describe.c:1074 describe.c:1307 +#: describe.c:4047 describe.c:4309 describe.c:4483 describe.c:4567 +#: describe.c:4648 describe.c:4809 describe.c:4880 describe.c:5092 +#: describe.c:5213 describe.c:5341 describe.c:5582 describe.c:5651 +#: describe.c:5662 describe.c:5718 describe.c:5915 describe.c:5985 +#: describe.c:6193 describe.c:6421 describe.c:6767 msgid "Name" msgstr "名前" -#: describe.c:89 describe.c:348 describe.c:366 +#: describe.c:96 describe.c:355 describe.c:373 msgid "Result data type" msgstr "結果のデータ型" -#: describe.c:90 describe.c:349 describe.c:367 +#: describe.c:97 describe.c:356 describe.c:374 msgid "Argument data types" msgstr "引数のデータ型" -#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 -#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 -#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 -#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 -#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 -#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 -#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 -#: describe.c:6019 describe.c:7078 +#: describe.c:105 describe.c:112 describe.c:184 describe.c:248 describe.c:432 +#: describe.c:681 describe.c:846 describe.c:1010 describe.c:1309 +#: describe.c:2084 describe.c:3773 describe.c:4105 describe.c:4362 +#: describe.c:4507 describe.c:4580 describe.c:4657 describe.c:4822 +#: describe.c:5004 describe.c:5150 describe.c:5222 describe.c:5342 +#: describe.c:5492 describe.c:5533 describe.c:5598 describe.c:5654 +#: describe.c:5663 describe.c:5719 describe.c:5933 describe.c:6007 +#: describe.c:6130 describe.c:6197 describe.c:7303 msgid "Description" msgstr "説明" -#: describe.c:127 +#: describe.c:134 msgid "List of aggregate functions" msgstr "集約関数一覧" -#: describe.c:152 +#: describe.c:159 #, c-format msgid "The server (version %s) does not support access methods." msgstr "このサーバー(バージョン%s)はアクセスメソッドをサポートしていません。" -#: describe.c:167 +#: describe.c:174 msgid "Index" msgstr "インデックス" -#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 +#: describe.c:175 describe.c:4065 describe.c:4334 describe.c:6117 msgid "Table" msgstr "テーブル" -#: describe.c:176 describe.c:5742 +#: describe.c:183 describe.c:5917 msgid "Handler" msgstr "ハンドラ" -#: describe.c:199 +#: describe.c:206 msgid "List of access methods" msgstr "アクセスメソッド一覧" -#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 -#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 -#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 -#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 -#: describe.c:7066 +#: describe.c:235 describe.c:415 describe.c:674 describe.c:959 describe.c:1229 +#: describe.c:4058 describe.c:4310 describe.c:4484 describe.c:4811 +#: describe.c:5214 describe.c:5916 describe.c:5986 describe.c:6422 +#: describe.c:6643 describe.c:6768 describe.c:6938 describe.c:7023 +#: describe.c:7291 msgid "Owner" msgstr "所有者" -#: describe.c:229 +#: describe.c:236 msgid "Location" msgstr "場所" -#: describe.c:239 describe.c:3517 describe.c:3857 -msgid "Options" -msgstr "オプション" - -#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 +#: describe.c:247 describe.c:672 describe.c:1008 describe.c:4104 msgid "Size" msgstr "サイズ" -#: describe.c:263 +#: describe.c:270 msgid "List of tablespaces" msgstr "テーブル空間一覧" -#: describe.c:308 +#: describe.c:315 #, c-format -msgid "\\df only takes [anptwS+] as options" -msgstr "\\dfで指定できるオプションは [anptwS+] のみです" +msgid "\\df only takes [anptwSx+] as options" +msgstr "\\dfで指定できるオプションは [anptwSx+] のみです" -#: describe.c:316 +#: describe.c:323 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\dfはこのサーバーバージョン%2$sでは\"%1$c\"オプションは指定できません" #. translator: "agg" is short for "aggregate" -#: describe.c:351 describe.c:369 +#: describe.c:358 describe.c:376 msgid "agg" msgstr "集約" -#: describe.c:352 describe.c:370 +#: describe.c:359 describe.c:377 msgid "window" msgstr "ウィンドウ" -#: describe.c:353 +#: describe.c:360 msgid "proc" msgstr "プロシージャ" -#: describe.c:354 describe.c:372 +#: describe.c:361 describe.c:379 msgid "func" msgstr "関数" -#: describe.c:371 describe.c:1397 +#: describe.c:378 describe.c:1439 msgid "trigger" msgstr "トリガー" -#: describe.c:383 +#: describe.c:393 msgid "immutable" msgstr "IMMUTABLE" -#: describe.c:384 +#: describe.c:394 msgid "stable" msgstr "STABLE" -#: describe.c:385 +#: describe.c:395 msgid "volatile" msgstr "VOLATILE" -#: describe.c:386 +#: describe.c:396 msgid "Volatility" msgstr "関数の変動性分類" -#: describe.c:394 +#: describe.c:407 msgid "restricted" msgstr "制限付き" -#: describe.c:395 +#: describe.c:408 msgid "safe" msgstr "安全" -#: describe.c:396 +#: describe.c:409 msgid "unsafe" msgstr "危険" -#: describe.c:397 +#: describe.c:410 msgid "Parallel" msgstr "並列実行" -#: describe.c:402 +#: describe.c:416 msgid "definer" msgstr "定義ロール" -#: describe.c:403 +#: describe.c:417 msgid "invoker" msgstr "起動ロール" -#: describe.c:404 +#: describe.c:418 msgid "Security" msgstr "セキュリティ" -#: describe.c:409 +#: describe.c:419 describe.c:837 describe.c:1778 describe.c:1802 +#: describe.c:1931 describe.c:4651 describe.c:4992 describe.c:5001 +#: describe.c:5139 describe.c:5144 describe.c:6926 describe.c:7125 +msgid "yes" +msgstr "はい" + +#: describe.c:420 describe.c:838 describe.c:1779 describe.c:1803 +#: describe.c:1932 describe.c:4651 describe.c:4989 describe.c:5002 +#: describe.c:5139 describe.c:6927 describe.c:7126 +msgid "no" +msgstr "いいえ" + +#: describe.c:421 describe.c:839 describe.c:5003 describe.c:7127 +msgid "Leakproof?" +msgstr "無漏洩?" + +#: describe.c:426 msgid "Language" msgstr "手続き言語" -#: describe.c:412 describe.c:648 +#: describe.c:429 describe.c:671 msgid "Internal name" msgstr "内部名" -#: describe.c:585 +#: describe.c:608 msgid "List of functions" msgstr "関数一覧" -#: describe.c:650 +#: describe.c:673 msgid "Elements" msgstr "構成要素" -#: describe.c:701 +#: describe.c:724 msgid "List of data types" msgstr "データ型一覧" -#: describe.c:804 +#: describe.c:828 msgid "Left arg type" msgstr "左辺の型" -#: describe.c:805 +#: describe.c:829 msgid "Right arg type" msgstr "右辺の型" -#: describe.c:806 +#: describe.c:830 msgid "Result type" msgstr "結果の型" -#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 -#: describe.c:6996 describe.c:7000 +#: describe.c:836 describe.c:4817 describe.c:4981 describe.c:5491 +#: describe.c:7221 describe.c:7225 msgid "Function" msgstr "関数" -#: describe.c:891 +#: describe.c:923 msgid "List of operators" msgstr "演算子一覧" -#: describe.c:926 +#: describe.c:960 msgid "Encoding" msgstr "エンコーディング" -#: describe.c:930 describe.c:934 +#: describe.c:968 describe.c:972 msgid "Locale Provider" msgstr "ロケールプロバイダー" -#: describe.c:938 describe.c:4936 +#: describe.c:976 describe.c:5111 msgid "Collate" msgstr "照合順序" -#: describe.c:939 describe.c:4937 +#: describe.c:977 describe.c:5112 msgid "Ctype" msgstr "Ctype(変換演算子)" -#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 -#: describe.c:4950 +#: describe.c:981 describe.c:985 describe.c:989 describe.c:5117 describe.c:5121 +#: describe.c:5125 msgid "Locale" msgstr "ロケール" -#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 +#: describe.c:993 describe.c:997 describe.c:5130 describe.c:5134 msgid "ICU Rules" msgstr "ICUルール:" -#: describe.c:971 +#: describe.c:1009 msgid "Tablespace" msgstr "テーブル空間" -#: describe.c:996 +#: describe.c:1034 msgid "List of databases" msgstr "データベース一覧" -#: describe.c:1037 describe.c:1192 describe.c:3947 +#: describe.c:1075 describe.c:1232 describe.c:4048 msgid "table" msgstr "テーブル" -#: describe.c:1038 describe.c:3948 +#: describe.c:1076 describe.c:4049 msgid "view" msgstr "ビュー" -#: describe.c:1039 describe.c:3949 +#: describe.c:1077 describe.c:4050 msgid "materialized view" msgstr "実体化ビュー" -#: describe.c:1040 describe.c:1194 describe.c:3951 +#: describe.c:1078 describe.c:1234 describe.c:4052 msgid "sequence" msgstr "シーケンス" -#: describe.c:1041 describe.c:3953 +#: describe.c:1079 describe.c:4054 msgid "foreign table" msgstr "外部テーブル" -#: describe.c:1042 describe.c:3954 describe.c:4165 +#: describe.c:1080 describe.c:4055 describe.c:4319 msgid "partitioned table" msgstr "パーティションテーブル" -#: describe.c:1058 +#: describe.c:1096 msgid "Column privileges" msgstr "列の権限" -#: describe.c:1089 describe.c:1123 +#: describe.c:1127 describe.c:1161 msgid "Policies" msgstr "ポリシー" -#: describe.c:1151 describe.c:4570 describe.c:6667 +#: describe.c:1189 describe.c:4734 describe.c:6883 msgid "Access privileges" msgstr "アクセス権限" -#: describe.c:1196 +#: describe.c:1236 msgid "function" msgstr "関数" -#: describe.c:1198 +#: describe.c:1238 msgid "type" msgstr "型" -#: describe.c:1200 +#: describe.c:1240 msgid "schema" msgstr "スキーマ" -#: describe.c:1222 +#: describe.c:1242 +msgid "large object" +msgstr "ラージオブジェクト" + +#: describe.c:1264 msgid "Default access privileges" msgstr "デフォルトのアクセス権限" -#: describe.c:1266 +#: describe.c:1308 msgid "Object" msgstr "オブジェクト" -#: describe.c:1280 +#: describe.c:1322 msgid "table constraint" msgstr "テーブル制約" -#: describe.c:1304 +#: describe.c:1346 msgid "domain constraint" msgstr "ドメイン制約" -#: describe.c:1328 +#: describe.c:1370 msgid "operator class" msgstr "演算子クラス" -#: describe.c:1352 +#: describe.c:1394 msgid "operator family" msgstr "演算子族" -#: describe.c:1375 +#: describe.c:1417 msgid "rule" msgstr "ルール" -#: describe.c:1420 +#: describe.c:1462 msgid "Object descriptions" msgstr "オブジェクトの説明" -#: describe.c:1485 describe.c:4072 +#: describe.c:1527 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "\"%s\"という名前のリレーションは見つかりませんでした。" -#: describe.c:1488 describe.c:4075 +#: describe.c:1530 describe.c:4206 #, c-format msgid "Did not find any relations." msgstr "リレーションが見つかりませんでした。" -#: describe.c:1684 +#: describe.c:1726 #, c-format msgid "Did not find any relation with OID %s." msgstr "OID %sを持つリレーションが見つかりませんでした。" -#: describe.c:1732 describe.c:1756 +#: describe.c:1774 describe.c:1798 msgid "Start" msgstr "開始" -#: describe.c:1733 describe.c:1757 +#: describe.c:1775 describe.c:1799 msgid "Minimum" msgstr "最小" -#: describe.c:1734 describe.c:1758 +#: describe.c:1776 describe.c:1800 msgid "Maximum" msgstr "最大" -#: describe.c:1735 describe.c:1759 +#: describe.c:1777 describe.c:1801 msgid "Increment" msgstr "増分" -#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 -#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 -msgid "yes" -msgstr "はい" - -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 -#: describe.c:4825 describe.c:4964 describe.c:6711 -msgid "no" -msgstr "いいえ" - -#: describe.c:1738 describe.c:1762 +#: describe.c:1780 describe.c:1804 msgid "Cycles?" msgstr "循環?" -#: describe.c:1739 describe.c:1763 +#: describe.c:1781 describe.c:1805 msgid "Cache" msgstr "キャッシュ" -#: describe.c:1804 +#: describe.c:1846 #, c-format msgid "Owned by: %s" msgstr "所有者: %s" -#: describe.c:1808 +#: describe.c:1850 #, c-format msgid "Sequence for identity column: %s" msgstr "識別列のシーケンス: %s" -#: describe.c:1816 +#: describe.c:1858 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "ログ出力なしのシーケンス\"%s.%s\"" -#: describe.c:1819 +#: describe.c:1861 #, c-format msgid "Sequence \"%s.%s\"" msgstr "シーケンス \"%s.%s\"" -#: describe.c:1962 +#: describe.c:2004 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "ログ出力なしのテーブル\"%s.%s\"" -#: describe.c:1965 +#: describe.c:2007 #, c-format msgid "Table \"%s.%s\"" msgstr "テーブル\"%s.%s\"" -#: describe.c:1969 +#: describe.c:2011 #, c-format msgid "View \"%s.%s\"" msgstr "ビュー\"%s.%s\"" -#: describe.c:1974 -#, c-format -msgid "Unlogged materialized view \"%s.%s\"" -msgstr "ログ出力なしの実体化ビュー\"%s.%s\"" - -#: describe.c:1977 +#: describe.c:2015 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "実体化ビュー\"%s.%s\"" -#: describe.c:1982 +#: describe.c:2020 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "ログ出力なしのインデックス\"%s.%s\"" -#: describe.c:1985 +#: describe.c:2023 #, c-format msgid "Index \"%s.%s\"" msgstr "インデックス\"%s.%s\"" -#: describe.c:1990 +#: describe.c:2028 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "ログ出力なしのパーティション親インデックス\"%s.%s\"" -#: describe.c:1993 +#: describe.c:2031 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "パーティションインデックス\"%s.%s\"" -#: describe.c:1997 +#: describe.c:2035 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "TOAST テーブル\"%s.%s\"" -#: describe.c:2001 +#: describe.c:2039 #, c-format msgid "Composite type \"%s.%s\"" msgstr "複合型\"%s.%s\"" -#: describe.c:2005 +#: describe.c:2043 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "外部テーブル\"%s.%s\"" -#: describe.c:2010 +#: describe.c:2048 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "ログ出力なしのパーティション親テーブル\"%s.%s\"" -#: describe.c:2013 +#: describe.c:2051 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "パーティションテーブル\"%s.%s\"" -#: describe.c:2029 describe.c:4405 +#: describe.c:2067 describe.c:4569 msgid "Collation" msgstr "照合順序" -#: describe.c:2030 describe.c:4406 +#: describe.c:2068 describe.c:4570 msgid "Nullable" msgstr "Null 値を許容" -#: describe.c:2031 describe.c:4407 +#: describe.c:2069 describe.c:4571 msgid "Default" msgstr "デフォルト" -#: describe.c:2034 +#: describe.c:2072 msgid "Key?" msgstr "キー?" -#: describe.c:2036 describe.c:4723 describe.c:4734 +#: describe.c:2074 describe.c:4887 describe.c:4898 msgid "Definition" msgstr "定義" -#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 -#: describe.c:5954 +#: describe.c:2076 describe.c:5932 describe.c:6006 describe.c:6071 +#: describe.c:6129 msgid "FDW options" msgstr "FDW オプション" -#: describe.c:2040 +#: describe.c:2078 msgid "Storage" msgstr "ストレージ" -#: describe.c:2042 +#: describe.c:2080 msgid "Compression" msgstr "圧縮" -#: describe.c:2044 +#: describe.c:2082 msgid "Stats target" msgstr "統計目標" -#: describe.c:2180 +#: describe.c:2224 #, c-format msgid "Partition of: %s %s%s" msgstr "親パーティション: %s %s%s" -#: describe.c:2193 +#: describe.c:2237 msgid "No partition constraint" msgstr "パーティション制約なし" -#: describe.c:2195 +#: describe.c:2239 #, c-format msgid "Partition constraint: %s" msgstr "パーティションの制約: %s" -#: describe.c:2219 +#: describe.c:2263 #, c-format msgid "Partition key: %s" msgstr "パーティションキー: %s" -#: describe.c:2245 +#: describe.c:2289 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "所属先テーブル\"%s.%s\"" -#: describe.c:2314 +#: describe.c:2362 msgid "primary key, " msgstr "プライマリキー, " -#: describe.c:2317 +#: describe.c:2365 msgid "unique" msgstr "ユニーク" -#: describe.c:2319 +#: describe.c:2367 msgid " nulls not distinct" msgstr " nulls not distinct" -#: describe.c:2320 +#: describe.c:2368 msgid ", " msgstr ", " -#: describe.c:2327 +#: describe.c:2375 #, c-format msgid "for table \"%s.%s\"" msgstr "テーブル\"%s.%s\"用" -#: describe.c:2331 +#: describe.c:2379 #, c-format msgid ", predicate (%s)" msgstr "、述語 (%s)" -#: describe.c:2334 +#: describe.c:2382 msgid ", clustered" msgstr "、クラスター化" -#: describe.c:2337 +#: describe.c:2385 msgid ", invalid" msgstr "無効" -#: describe.c:2340 +#: describe.c:2388 msgid ", deferrable" msgstr "、遅延可能" -#: describe.c:2343 +#: describe.c:2391 msgid ", initially deferred" msgstr "、最初から遅延中" -#: describe.c:2346 +#: describe.c:2394 msgid ", replica identity" msgstr "、レプリカの id" -#: describe.c:2400 +#: describe.c:2455 msgid "Indexes:" msgstr "インデックス:" -#: describe.c:2483 +#: describe.c:2543 msgid "Check constraints:" msgstr "Check 制約:" -#: describe.c:2551 +#: describe.c:2604 msgid "Foreign-key constraints:" msgstr "外部キー制約:" -#: describe.c:2614 +#: describe.c:2663 msgid "Referenced by:" msgstr "参照元:" -#: describe.c:2664 +#: describe.c:2712 msgid "Policies:" msgstr "ポリシー:" -#: describe.c:2667 +#: describe.c:2715 msgid "Policies (forced row security enabled):" msgstr "ポリシー(行セキュリティを強制的に有効化):" -#: describe.c:2670 +#: describe.c:2718 msgid "Policies (row security enabled): (none)" msgstr "ポリシー(行セキュリティ有効化): (なし)" -#: describe.c:2673 +#: describe.c:2721 msgid "Policies (forced row security enabled): (none)" msgstr "ポリシー(行セキュリティを強制的に有効化): (なし)" -#: describe.c:2676 +#: describe.c:2724 msgid "Policies (row security disabled):" msgstr "ポリシー(行セキュリティを無効化):" -#: describe.c:2736 describe.c:2841 +#: describe.c:2784 describe.c:2889 msgid "Statistics objects:" msgstr "統計オブジェクト:" -#: describe.c:2943 describe.c:3096 +#: describe.c:2991 describe.c:3191 msgid "Rules:" msgstr "ルール:" -#: describe.c:2946 +#: describe.c:2994 msgid "Disabled rules:" msgstr "無効化されたルール:" -#: describe.c:2949 +#: describe.c:2997 msgid "Rules firing always:" msgstr "常に適用するルール:" -#: describe.c:2952 +#: describe.c:3000 msgid "Rules firing on replica only:" msgstr "レプリカ上でのみ適用するルール:" -#: describe.c:3031 describe.c:5100 +#: describe.c:3079 describe.c:5275 msgid "Publications:" msgstr "パブリケーション:" -#: describe.c:3079 +#: describe.c:3126 +msgid "Not-null constraints:" +msgstr "非NULL制約:" + +#: describe.c:3140 +msgid " (local, inherited)" +msgstr "(ローカル、継承)" + +#: describe.c:3141 +msgid " (inherited)" +msgstr "(継承)" + +#: describe.c:3174 msgid "View definition:" msgstr "ビューの定義:" -#: describe.c:3242 +#: describe.c:3337 msgid "Triggers:" msgstr "トリガー:" -#: describe.c:3245 +#: describe.c:3340 msgid "Disabled user triggers:" msgstr "無効化されたユーザートリガ:" -#: describe.c:3248 +#: describe.c:3343 msgid "Disabled internal triggers:" msgstr "無効化された内部トリガー:" -#: describe.c:3251 +#: describe.c:3346 msgid "Triggers firing always:" msgstr "常に適用するするトリガー:" -#: describe.c:3254 +#: describe.c:3349 msgid "Triggers firing on replica only:" msgstr "レプリカ上でのみ適用するトリガー:" -#: describe.c:3325 +#: describe.c:3420 #, c-format msgid "Server: %s" msgstr "サーバー: %s" -#: describe.c:3333 +#: describe.c:3428 #, c-format msgid "FDW options: (%s)" msgstr "FDW オプション: (%s)" -#: describe.c:3354 +#: describe.c:3449 msgid "Inherits" msgstr "継承元" -#: describe.c:3419 +#: describe.c:3514 #, c-format msgid "Number of partitions: %d" msgstr "パーティション数: %d" -#: describe.c:3428 +#: describe.c:3523 #, c-format msgid "Number of partitions: %d (Use \\d+ to list them.)" msgstr "パーティション数: %d (\\d+ で一覧を表示)。" -#: describe.c:3430 +#: describe.c:3525 #, c-format msgid "Number of child tables: %d (Use \\d+ to list them.)" msgstr "子テーブル数: %d (\\d+ で一覧を表示)" -#: describe.c:3437 +#: describe.c:3532 msgid "Child tables" msgstr "子テーブル" -#: describe.c:3437 +#: describe.c:3532 msgid "Partitions" msgstr "パーティション" -#: describe.c:3470 +#: describe.c:3565 #, c-format msgid "Typed table of type: %s" msgstr "%s 型の型付きテーブル" -#: describe.c:3486 +#: describe.c:3583 msgid "Replica Identity" msgstr "レプリカ識別" -#: describe.c:3499 +#: describe.c:3596 msgid "Has OIDs: yes" msgstr "OID あり: はい" -#: describe.c:3508 +#: describe.c:3605 #, c-format msgid "Access method: %s" msgstr "アクセスメソッド: %s" -#: describe.c:3585 +#: describe.c:3682 #, 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:3597 +#: describe.c:3694 #, c-format msgid ", tablespace \"%s\"" msgstr "、テーブル空間\"%s\"" -#: describe.c:3670 +#: describe.c:3767 msgid "List of roles" msgstr "ロール一覧" -#: describe.c:3672 describe.c:3840 +#: describe.c:3769 describe.c:3937 msgid "Role name" msgstr "ロール名" -#: describe.c:3673 +#: describe.c:3770 msgid "Attributes" msgstr "属性" -#: describe.c:3684 +#: describe.c:3781 msgid "Superuser" msgstr "スーパーユーザー" -#: describe.c:3687 +#: describe.c:3784 msgid "No inheritance" msgstr "継承なし" -#: describe.c:3690 +#: describe.c:3787 msgid "Create role" msgstr "ロール作成可" -#: describe.c:3693 +#: describe.c:3790 msgid "Create DB" msgstr "DB作成可" -#: describe.c:3696 +#: describe.c:3793 msgid "Cannot login" msgstr "ログインできません" -#: describe.c:3699 +#: describe.c:3796 msgid "Replication" msgstr "レプリケーション可" -#: describe.c:3703 +#: describe.c:3800 msgid "Bypass RLS" msgstr "RLS のバイパス" -#: describe.c:3712 +#: describe.c:3809 msgid "No connections" msgstr "接続なし" -#: describe.c:3714 +#: describe.c:3811 #, c-format msgid "%d connection" msgid_plural "%d connections" msgstr[0] "%d 個の接続" -#: describe.c:3724 +#: describe.c:3821 msgid "Password valid until " msgstr "パスワードの有効期限 " -#: describe.c:3775 +#: describe.c:3872 msgid "Role" msgstr "ロール" -#: describe.c:3776 -msgid "Database" -msgstr "データベース" - -#: describe.c:3777 +#: describe.c:3874 msgid "Settings" msgstr "設定" -#: describe.c:3801 +#: describe.c:3898 #, c-format msgid "Did not find any settings for role \"%s\" and database \"%s\"." msgstr "ロール\"%s\"とデータベース\"%s\"の設定が見つかりませんでした。" -#: describe.c:3804 +#: describe.c:3901 #, c-format msgid "Did not find any settings for role \"%s\"." msgstr "ロール\"%s\"の設定が見つかりませんでした。" -#: describe.c:3807 +#: describe.c:3904 #, c-format msgid "Did not find any settings." msgstr "設定が見つかりませんでした。" -#: describe.c:3811 +#: describe.c:3908 msgid "List of settings" msgstr "設定一覧" -#: describe.c:3841 +#: describe.c:3938 msgid "Member of" msgstr "所属グループ" -#: describe.c:3858 +#: describe.c:3955 msgid "Grantor" msgstr "付与者" -#: describe.c:3884 +#: describe.c:3981 msgid "List of role grants" msgstr "ロール権限付与一覧" -#: describe.c:3950 +#: describe.c:4051 msgid "index" msgstr "インデックス" -#: describe.c:3952 +#: describe.c:4053 msgid "TOAST table" msgstr "TOAST テーブル" -#: describe.c:3955 describe.c:4166 +#: describe.c:4056 describe.c:4320 msgid "partitioned index" msgstr "パーティションインデックス" -#: describe.c:3975 +#: describe.c:4080 msgid "permanent" msgstr "永続" -#: describe.c:3976 +#: describe.c:4081 msgid "temporary" msgstr "一時" -#: describe.c:3977 +#: describe.c:4082 msgid "unlogged" msgstr "ログなし" -#: describe.c:3978 +#: describe.c:4083 msgid "Persistence" msgstr "永続性" -#: describe.c:3994 +#: describe.c:4099 describe.c:4343 msgid "Access method" msgstr "アクセスメソッド" -#: describe.c:4079 +#: describe.c:4179 +#, c-format +msgid "Did not find any relations named \"%s\"." +msgstr "\"%s\"という名前のリレーションは見つかりませんでした。" + +#: describe.c:4182 +#, c-format +msgid "Did not find any tables named \"%s\"." +msgstr "\"%s\"という名前のテーブルは見つかりませんでした。" + +#: describe.c:4185 +#, c-format +msgid "Did not find any indexes named \"%s\"." +msgstr "\"%s\"という名前のインデックスは見つかりませんでした。" + +#: describe.c:4188 +#, c-format +msgid "Did not find any views named \"%s\"." +msgstr "\"%s\"という名前のビューは見つかりませんでした。" + +#: describe.c:4191 +#, c-format +msgid "Did not find any materialized views named \"%s\"." +msgstr "\"%s\"という名前の実体化ビューは見つかりませんでした。" + +#: describe.c:4194 +#, c-format +msgid "Did not find any sequences named \"%s\"." +msgstr "\"%s\"という名前のシーケンスは見つかりませんでした。" + +#: describe.c:4197 +#, c-format +msgid "Did not find any foreign tables named \"%s\"." +msgstr "\"%s\"という名前の外部テーブルは見つかりませんでした。" + +#: describe.c:4208 +#, c-format +msgid "Did not find any tables." +msgstr "テーブルが見つかりませんでした。" + +#: describe.c:4210 +#, c-format +msgid "Did not find any indexes." +msgstr "インデックスが見つかりませんでした。" + +#: describe.c:4212 +#, c-format +msgid "Did not find any views." +msgstr "ビューが見つかりませんでした。" + +#: describe.c:4214 +#, c-format +msgid "Did not find any materialized views." +msgstr "実体化ビューが見つかりませんでした。" + +#: describe.c:4216 +#, c-format +msgid "Did not find any sequences." +msgstr "シーケンスが見つかりませんでした。" + +#: describe.c:4218 +#, c-format +msgid "Did not find any foreign tables." +msgstr "外部テーブルが見つかりませんでした。" + +#: describe.c:4226 msgid "List of relations" msgstr "リレーション一覧" -#: describe.c:4127 +#: describe.c:4227 +msgid "List of tables" +msgstr "テーブル一覧" + +#: describe.c:4228 +msgid "List of indexes" +msgstr "インデックス一覧" + +#: describe.c:4229 +msgid "List of views" +msgstr "ビュー一覧" + +#: describe.c:4230 +msgid "List of materialized views" +msgstr "実体化ビュー一覧" + +#: describe.c:4231 +msgid "List of sequences" +msgstr "シーケンス一覧" + +#: describe.c:4232 describe.c:6162 +msgid "List of foreign tables" +msgstr "外部テーブル一覧" + +#: describe.c:4281 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "このサーバー(バージョン%s)は宣言的テーブルパーティショニングをサポートしていません。" -#: describe.c:4138 +#: describe.c:4292 msgid "List of partitioned indexes" msgstr "パーティションインデックスの一覧" -#: describe.c:4140 +#: describe.c:4294 msgid "List of partitioned tables" msgstr "パーティションテーブルの一覧" -#: describe.c:4144 +#: describe.c:4298 msgid "List of partitioned relations" msgstr "パーティションリレーションの一覧" -#: describe.c:4175 +#: describe.c:4329 msgid "Parent name" msgstr "親の名前" -#: describe.c:4188 +#: describe.c:4349 msgid "Leaf partition size" msgstr "末端パーティションのサイズ" -#: describe.c:4191 describe.c:4197 +#: describe.c:4352 describe.c:4358 msgid "Total size" msgstr "トータルサイズ" -#: describe.c:4321 +#: describe.c:4485 msgid "Trusted" msgstr "信頼済み" -#: describe.c:4330 +#: describe.c:4494 msgid "Internal language" msgstr "内部言語" -#: describe.c:4331 +#: describe.c:4495 msgid "Call handler" msgstr "呼び出しハンドラー" -#: describe.c:4332 describe.c:5743 +#: describe.c:4496 describe.c:5918 msgid "Validator" msgstr "バリデーター" -#: describe.c:4333 +#: describe.c:4497 msgid "Inline handler" msgstr "インラインハンドラー" -#: describe.c:4367 +#: describe.c:4531 msgid "List of languages" msgstr "手続き言語一覧" -#: describe.c:4408 +#: describe.c:4572 msgid "Check" msgstr "CHECK制約" -#: describe.c:4451 +#: describe.c:4615 msgid "List of domains" msgstr "ドメイン一覧" -#: describe.c:4485 +#: describe.c:4649 msgid "Source" msgstr "変換元" -#: describe.c:4486 +#: describe.c:4650 msgid "Destination" msgstr "変換先" -#: describe.c:4488 describe.c:6712 +#: describe.c:4652 describe.c:6928 msgid "Default?" msgstr "デフォルト?" -#: describe.c:4529 +#: describe.c:4693 msgid "List of conversions" msgstr "符号化方式一覧" -#: describe.c:4557 -msgid "Parameter" -msgstr "パラメータ" - -#: describe.c:4558 -msgid "Value" -msgstr "値" - -#: describe.c:4565 +#: describe.c:4729 msgid "Context" msgstr "コンテクスト" -#: describe.c:4597 +#: describe.c:4761 msgid "List of configuration parameters" msgstr "設定パラメータの一覧" -#: describe.c:4599 +#: describe.c:4763 msgid "List of non-default configuration parameters" msgstr "非デフォルトの設定パラメータの一覧" -#: describe.c:4626 +#: describe.c:4790 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "このサーバー(バージョン%s)はイベントトリガーをサポートしていません。" -#: describe.c:4646 +#: describe.c:4810 msgid "Event" msgstr "イベント" -#: describe.c:4648 +#: describe.c:4812 msgid "enabled" msgstr "有効" -#: describe.c:4649 +#: describe.c:4813 msgid "replica" msgstr "レプリカ" -#: describe.c:4650 +#: describe.c:4814 msgid "always" msgstr "常時" -#: describe.c:4651 +#: describe.c:4815 msgid "disabled" msgstr "無効" -#: describe.c:4652 describe.c:6553 +#: describe.c:4816 describe.c:6769 msgid "Enabled" msgstr "有効状態" -#: describe.c:4654 +#: describe.c:4818 msgid "Tags" msgstr "タグ" -#: describe.c:4677 +#: describe.c:4841 msgid "List of event triggers" msgstr "イベントトリガー一覧" -#: describe.c:4704 +#: describe.c:4868 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "このサーバー(バージョン%s)は拡張統計情報をサポートしていません。" -#: describe.c:4741 +#: describe.c:4905 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4742 +#: describe.c:4906 msgid "Dependencies" msgstr "Dependencies" -#: describe.c:4752 +#: describe.c:4916 msgid "MCV" msgstr "MCV" -#: describe.c:4775 +#: describe.c:4939 msgid "List of extended statistics" msgstr "拡張統計情報の一覧" -#: describe.c:4802 +#: describe.c:4966 msgid "Source type" msgstr "変換元の型" -#: describe.c:4803 +#: describe.c:4967 msgid "Target type" msgstr "変換先の型" -#: describe.c:4827 +#: describe.c:4991 msgid "in assignment" msgstr "代入時のみ" -#: describe.c:4829 +#: describe.c:4993 msgid "Implicit?" msgstr "暗黙的に適用 ?" -#: describe.c:4887 +#: describe.c:5057 msgid "List of casts" msgstr "キャスト一覧" -#: describe.c:4927 describe.c:4931 +#: describe.c:5102 describe.c:5106 msgid "Provider" msgstr "プロバイダー" -#: describe.c:4965 describe.c:4970 +#: describe.c:5140 describe.c:5145 msgid "Deterministic?" msgstr "確定的?" -#: describe.c:5009 +#: describe.c:5184 msgid "List of collations" msgstr "照合順序一覧" -#: describe.c:5070 +#: describe.c:5245 msgid "List of schemas" msgstr "スキーマ一覧" -#: describe.c:5186 +#: describe.c:5361 msgid "List of text search parsers" msgstr "テキスト検索用パーサ一覧" -#: describe.c:5236 +#: describe.c:5411 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "テキスト検索用パーサ\"%s\"が見つかりませんでした。" -#: describe.c:5239 +#: describe.c:5414 #, c-format msgid "Did not find any text search parsers." msgstr "テキスト検索パーサが見つかりませんでした。" -#: describe.c:5314 +#: describe.c:5489 msgid "Start parse" msgstr "パース開始" -#: describe.c:5315 +#: describe.c:5490 msgid "Method" msgstr "メソッド" -#: describe.c:5319 +#: describe.c:5494 msgid "Get next token" msgstr "次のトークンを取得" -#: describe.c:5321 +#: describe.c:5496 msgid "End parse" msgstr "パース終了" -#: describe.c:5323 +#: describe.c:5498 msgid "Get headline" msgstr "見出しを取得" -#: describe.c:5325 +#: describe.c:5500 msgid "Get token types" msgstr "トークンタイプを取得" -#: describe.c:5335 +#: describe.c:5510 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "テキスト検索パーサ\"%s.%s\"" -#: describe.c:5338 +#: describe.c:5513 #, c-format msgid "Text search parser \"%s\"" msgstr "テキスト検索パーサ\"%s\"" -#: describe.c:5357 +#: describe.c:5532 msgid "Token name" msgstr "トークン名" -#: describe.c:5370 +#: describe.c:5545 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "パーサ\"%s.%s\"のトークンタイプ" -#: describe.c:5373 +#: describe.c:5548 #, c-format msgid "Token types for parser \"%s\"" msgstr "パーサ\"%s\"のトークンタイプ" -#: describe.c:5417 +#: describe.c:5592 msgid "Template" msgstr "テンプレート" -#: describe.c:5418 +#: describe.c:5593 msgid "Init options" msgstr "初期化オプション" -#: describe.c:5444 +#: describe.c:5619 msgid "List of text search dictionaries" msgstr "テキスト検索用辞書一覧" -#: describe.c:5477 +#: describe.c:5652 msgid "Init" msgstr "初期化" -#: describe.c:5478 +#: describe.c:5653 msgid "Lexize" msgstr "Lex 処理" -#: describe.c:5509 +#: describe.c:5684 msgid "List of text search templates" msgstr "テキスト検索テンプレート一覧" -#: describe.c:5563 +#: describe.c:5738 msgid "List of text search configurations" msgstr "テキスト検索設定一覧" -#: describe.c:5614 +#: describe.c:5789 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "テキスト検索用設定\"%s\"が見つかりませんでした。" -#: describe.c:5617 +#: describe.c:5792 #, c-format msgid "Did not find any text search configurations." msgstr "テキスト検索設定が見つかりませんでした。" -#: describe.c:5683 +#: describe.c:5858 msgid "Token" msgstr "トークン" -#: describe.c:5684 +#: describe.c:5859 msgid "Dictionaries" msgstr "辞書" -#: describe.c:5695 +#: describe.c:5870 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "テキスト検索設定\"%s.%s\"" -#: describe.c:5698 +#: describe.c:5873 #, c-format msgid "Text search configuration \"%s\"" msgstr "テキスト検索設定\"%s\"" -#: describe.c:5702 +#: describe.c:5877 #, c-format msgid "" "\n" @@ -2238,7 +2437,7 @@ msgstr "" "\n" "パーサ: \"%s.%s\"" -#: describe.c:5705 +#: describe.c:5880 #, c-format msgid "" "\n" @@ -2247,273 +2446,277 @@ msgstr "" "\n" "パーサ: \"%s\"" -#: describe.c:5784 +#: describe.c:5959 msgid "List of foreign-data wrappers" msgstr "外部データラッパ一覧" -#: describe.c:5812 +#: describe.c:5987 msgid "Foreign-data wrapper" msgstr "外部データラッパ" -#: describe.c:5830 describe.c:6017 +#: describe.c:6005 describe.c:6194 msgid "Version" msgstr "バージョン" -#: describe.c:5860 +#: describe.c:6035 msgid "List of foreign servers" msgstr "外部サーバー一覧" -#: describe.c:5885 describe.c:5943 +#: describe.c:6060 describe.c:6118 msgid "Server" msgstr "サーバー" -#: describe.c:5886 +#: describe.c:6061 msgid "User name" msgstr "ユーザー名" -#: describe.c:5915 +#: describe.c:6090 msgid "List of user mappings" msgstr "ユーザーマッピング一覧" -#: describe.c:5987 -msgid "List of foreign tables" -msgstr "外部テーブル一覧" +#: describe.c:6195 +msgid "Default version" +msgstr "デフォルトバージョン" -#: describe.c:6038 +#: describe.c:6216 msgid "List of installed extensions" msgstr "インストール済みの拡張一覧" -#: describe.c:6086 +#: describe.c:6264 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "\"%s\"という名前の機能拡張が見つかりませんでした。" -#: describe.c:6089 +#: describe.c:6267 #, c-format msgid "Did not find any extensions." msgstr "機能拡張が見つかりませんでした。" -#: describe.c:6133 +#: describe.c:6311 msgid "Object description" msgstr "オブジェクトの説明" -#: describe.c:6142 +#: describe.c:6320 #, c-format msgid "Objects in extension \"%s\"" msgstr "機能拡張\"%s\"内のオブジェクト" -#: describe.c:6183 +#: describe.c:6361 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "修飾名が不適切です(ドット区切りの名前が多すぎます): %s" -#: describe.c:6197 +#: describe.c:6375 #, c-format msgid "cross-database references are not implemented: %s" msgstr "データベース間の参照は実装されていません: %s" -#: describe.c:6228 describe.c:6354 +#: describe.c:6406 describe.c:6542 #, c-format msgid "The server (version %s) does not support publications." msgstr "このサーバー(バージョン%s)はパブリケーションをサポートしていません。" -#: describe.c:6245 describe.c:6432 +#: describe.c:6423 describe.c:6644 msgid "All tables" msgstr "全テーブル" -#: describe.c:6246 describe.c:6433 +#: describe.c:6424 describe.c:6645 msgid "Inserts" msgstr "Insert文" -#: describe.c:6247 describe.c:6434 +#: describe.c:6425 describe.c:6646 msgid "Updates" msgstr "Update文" -#: describe.c:6248 describe.c:6435 +#: describe.c:6426 describe.c:6647 msgid "Deletes" msgstr "Delete文" -#: describe.c:6252 describe.c:6437 +#: describe.c:6430 describe.c:6649 msgid "Truncates" msgstr "Truncate文" -#: describe.c:6256 describe.c:6439 +#: describe.c:6439 describe.c:6573 describe.c:6651 +msgid "Generated columns" +msgstr "生成列" + +#: describe.c:6443 describe.c:6653 msgid "Via root" msgstr "最上位パーティションテーブル経由" -#: describe.c:6277 +#: describe.c:6464 msgid "List of publications" msgstr "パブリケーション一覧" -#: describe.c:6401 +#: describe.c:6611 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "\"%s\"という名前のパブリケーションが見つかりませんでした。" -#: describe.c:6404 +#: describe.c:6614 #, c-format msgid "Did not find any publications." msgstr "パブリケーションが見つかりませんでした。" -#: describe.c:6428 +#: describe.c:6640 #, c-format msgid "Publication %s" msgstr "パブリケーション %s" -#: describe.c:6481 +#: describe.c:6697 msgid "Tables:" msgstr "テーブル:" -#: describe.c:6493 +#: describe.c:6709 msgid "Tables from schemas:" msgstr "以下のスキーマ内のテーブル:" -#: describe.c:6538 +#: describe.c:6754 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "このサーバー(バージョン%s)はサブスクリプションをサポートしていません。" -#: describe.c:6554 +#: describe.c:6770 msgid "Publication" msgstr "パブリケーション" -#: describe.c:6563 +#: describe.c:6779 msgid "Binary" msgstr "バイナリ" -#: describe.c:6572 describe.c:6576 +#: describe.c:6788 describe.c:6792 msgid "Streaming" msgstr "ストリーミング" -#: describe.c:6584 +#: describe.c:6800 msgid "Two-phase commit" msgstr "2相コミット" -#: describe.c:6585 +#: describe.c:6801 msgid "Disable on error" msgstr "エラー時無効化" -#: describe.c:6592 +#: describe.c:6808 msgid "Origin" msgstr "起点" -#: describe.c:6593 +#: describe.c:6809 msgid "Password required" msgstr "パスワード必須" -#: describe.c:6594 +#: describe.c:6810 msgid "Run as owner?" msgstr "所有者として実行?" -#: describe.c:6599 +#: describe.c:6815 msgid "Failover" msgstr "フェイルオーバー" -#: describe.c:6604 +#: describe.c:6820 msgid "Synchronous commit" msgstr "同期コミット" -#: describe.c:6605 +#: describe.c:6821 msgid "Conninfo" msgstr "接続情報" -#: describe.c:6611 +#: describe.c:6827 msgid "Skip LSN" msgstr "スキップLSN" -#: describe.c:6637 +#: describe.c:6853 msgid "List of subscriptions" msgstr "サブスクリプション一覧" -#: describe.c:6666 +#: describe.c:6882 msgid "(none)" msgstr "(権限なし)" -#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 +#: describe.c:6922 describe.c:7017 describe.c:7109 describe.c:7212 msgid "AM" msgstr "AM" -#: describe.c:6707 +#: describe.c:6923 msgid "Input type" msgstr "入力の型" -#: describe.c:6708 +#: describe.c:6924 msgid "Storage type" msgstr "ストレージタイプ" -#: describe.c:6709 +#: describe.c:6925 msgid "Operator class" msgstr "演算子クラス" -#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 +#: describe.c:6937 describe.c:7018 describe.c:7110 describe.c:7213 msgid "Operator family" msgstr "演算子族" -#: describe.c:6756 +#: describe.c:6972 msgid "List of operator classes" msgstr "演算子クラス一覧" -#: describe.c:6803 +#: describe.c:7019 msgid "Applicable types" msgstr "適用可能型" -#: describe.c:6844 +#: describe.c:7060 msgid "List of operator families" msgstr "演算子族一覧" -#: describe.c:6895 +#: describe.c:7111 msgid "Operator" msgstr "演算子" -#: describe.c:6896 +#: describe.c:7112 msgid "Strategy" msgstr "ストラテジ" -#: describe.c:6897 +#: describe.c:7113 msgid "ordering" msgstr "順序付け" -#: describe.c:6898 +#: describe.c:7114 msgid "search" msgstr "検索" -#: describe.c:6899 +#: describe.c:7115 msgid "Purpose" msgstr "目的" -#: describe.c:6904 +#: describe.c:7124 msgid "Sort opfamily" msgstr "ソート演算子族" -#: describe.c:6942 +#: describe.c:7167 msgid "List of operators of operator families" msgstr "演算子族の演算子一覧" -#: describe.c:6989 +#: describe.c:7214 msgid "Registered left type" msgstr "登録左辺型" -#: describe.c:6990 +#: describe.c:7215 msgid "Registered right type" msgstr "登録右辺型" -#: describe.c:6991 +#: describe.c:7216 msgid "Number" msgstr "番号" -#: describe.c:7034 +#: describe.c:7259 msgid "List of support functions of operator families" msgstr "演算子族のサポート関数一覧" -#: describe.c:7065 +#: describe.c:7290 msgid "ID" msgstr "ID" -#: describe.c:7085 +#: describe.c:7310 msgid "Large objects" msgstr "ラージ オブジェクト" -#: help.c:63 +#: help.c:60 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2521,11 +2724,11 @@ msgstr "" "psql は PostgreSQL の対話型ターミナルです。\n" "\n" -#: help.c:64 help.c:372 help.c:456 help.c:499 +#: help.c:61 help.c:381 help.c:467 help.c:513 msgid "Usage:\n" msgstr "使い方:\n" -#: help.c:65 +#: help.c:62 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2533,27 +2736,27 @@ msgstr "" " psql [オプション]... [データベース名 [ユーザー名]]\n" "\n" -#: help.c:67 +#: help.c:64 msgid "General options:\n" msgstr "一般的なオプション:\n" -#: help.c:68 +#: help.c:65 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr " -c, --command=コマンド 単一の(SQLまたは内部)コマンドを一つだけ実行して終了\n" -#: help.c:69 +#: help.c:66 msgid " -d, --dbname=DBNAME database name to connect to\n" -msgstr " -d, --dbname=DBNAME 接続先データベース名\n" +msgstr " -d, --dbname=DBNAME 接続先データベース名\n" -#: help.c:70 +#: help.c:67 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=FILENAME ファイルからコマンドを読み込んで実行後、終了\n" -#: help.c:71 +#: help.c:68 msgid " -l, --list list available databases, then exit\n" msgstr " -l(エル), --list 使用可能なデータベース一覧を表示して終了\n" -#: help.c:72 +#: help.c:69 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2563,15 +2766,15 @@ msgstr "" " psql 変数 '名前' に '値' をセット\n" " (例: -v ON_ERROR_STOP=1)\n" -#: help.c:75 +#: help.c:72 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: help.c:76 +#: help.c:73 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc 初期化ファイル (~/.psqlrc) を読み込まない\n" -#: help.c:77 +#: help.c:74 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" @@ -2579,19 +2782,19 @@ msgstr "" " -1 (数字の1), --single-transaction\n" " (対話形式でない場合)単一のトランザクションとして実行\n" -#: help.c:79 +#: help.c:76 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=options] このヘルプを表示して終了\n" -#: help.c:80 +#: help.c:77 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands バックスラッシュコマンドの一覧を表示して終了\n" -#: help.c:81 +#: help.c:78 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables 特殊変数の一覧を表示して終了\n" -#: help.c:83 +#: help.c:80 msgid "" "\n" "Input and output options:\n" @@ -2599,47 +2802,47 @@ msgstr "" "\n" "入出力オプション:\n" -#: help.c:84 +#: help.c:81 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all スクリプトから読み込んだ入力をすべて表示\n" -#: help.c:85 +#: help.c:82 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors 失敗したコマンドを表示\n" -#: help.c:86 +#: help.c:83 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries サーバーへ送信したコマンドを表示\n" -#: help.c:87 +#: help.c:84 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden 内部コマンドが生成した問い合わせを表示\n" -#: help.c:88 +#: help.c:85 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=FILENAME セッションログをファイルに書き込む\n" -#: help.c:89 +#: help.c:86 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr " -n, --no-readline 拡張コマンドライン編集機能(readline)を無効にする\n" -#: help.c:90 +#: help.c:87 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=FILENAME 問い合わせの結果をファイル (または |パイプ)に送る\n" -#: help.c:91 +#: help.c:88 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr " -q, --quiet 静かに実行 (メッセージなしで、問い合わせの出力のみ)\n" -#: help.c:92 +#: help.c:89 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step シングルステップモード (各問い合わせごとに確認)\n" -#: help.c:93 +#: help.c:90 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr " -S, --single-line 単一行モード (行末でSQLコマンドを終端)\n" -#: help.c:95 +#: help.c:92 msgid "" "\n" "Output format options:\n" @@ -2647,15 +2850,15 @@ msgstr "" "\n" "出力フォーマットのオプション\n" -#: help.c:96 +#: help.c:93 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align 桁揃えなしのテーブル出力モード\n" -#: help.c:97 +#: help.c:94 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv CSV(カンマ区切り)テーブル出力モード\n" -#: help.c:98 +#: help.c:95 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2665,17 +2868,17 @@ msgstr "" " 桁揃えなし出力時のフィールド区切り文字\n" " (デフォルト: \"%s\")\n" -#: help.c:101 +#: help.c:98 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html HTML テーブル出力モード\n" -#: help.c:102 +#: help.c:99 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr "" " -P, --pset=変数[=値] 表示オプション '変数' を '値' にセット\n" " (\\pset コマンドを参照)\n" -#: help.c:103 +#: help.c:100 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" @@ -2684,19 +2887,19 @@ msgstr "" " 桁揃えなし出力におけるレコード区切り文字\n" " (デフォルト: 改行)\n" -#: help.c:105 +#: help.c:102 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only 行のみを表示\n" -#: help.c:106 +#: help.c:103 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr " -T, --table-attr=TEXT HTMLテーブルのタグ属性をセット (width, border等)\n" -#: help.c:107 +#: help.c:104 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded 拡張テーブル出力に切り替える\n" -#: help.c:108 +#: help.c:105 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" @@ -2704,7 +2907,7 @@ msgstr "" " -z, --field-separator-zero\n" " 桁揃えなし出力のフィールド区切りをバイト値の0に設定\n" -#: help.c:110 +#: help.c:107 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" @@ -2712,7 +2915,7 @@ msgstr "" " -0, --record-separator-zero\n" " 桁揃えなし出力のレコード区切りをバイト値の0に設定\n" -#: help.c:113 +#: help.c:110 msgid "" "\n" "Connection options:\n" @@ -2720,29 +2923,29 @@ msgstr "" "\n" "接続オプション:\n" -#: help.c:114 +#: help.c:111 msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME データベースサーバーのホストまたはソケット\n" " ディレクトリ\n" -#: help.c:115 +#: help.c:112 msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT データベースサーバーのポート番号\n" -#: help.c:116 +#: help.c:113 msgid " -U, --username=USERNAME database user name\n" msgstr " -U, --username=USERNAME データベースのユーザー名\n" -#: help.c:117 +#: help.c:114 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password パスワード入力を要求しない\n" -#: help.c:118 +#: help.c:115 msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password パスワードプロンプトの強制表示(本来は自動的に表示)\n" -#: help.c:120 +#: help.c:117 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" @@ -2755,24 +2958,36 @@ msgstr "" "をタイプするか、PostgreSQLドキュメント中のpsqlのセクションを参照してください。\n" "\n" -#: help.c:123 +#: help.c:120 #, c-format msgid "Report bugs to <%s>.\n" msgstr "バグは<%s>に報告してください。\n" -#: help.c:124 +#: help.c:121 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: help.c:166 +#: help.c:163 msgid "General\n" msgstr "一般\n" -#: help.c:167 +#: help.c:164 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [PARAM]... 問い合わせパラメータを設定\n" +#: help.c:165 +msgid "" +" \\bind_named STMT_NAME [PARAM]...\n" +" set query parameters for an existing prepared statement\n" +msgstr "" +" \\bind_named STMT_NAME [PARAM]...\n" +" 既存の準備済みの文にパラメータを設定する\n" + +#: help.c:167 +msgid " \\close STMT_NAME close an existing prepared statement\n" +msgstr " \\close STMT_NAME 準備済みの文をクローズする\n" + #: help.c:168 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright PostgreSQL の使い方と配布条件を表示\n" @@ -2782,10 +2997,22 @@ msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n msgstr " \\crosstabview [列リスト] 問い合わせを実行し、結果をクロス表形式で出力\n" #: help.c:170 +msgid " \\endpipeline exit pipeline mode\n" +msgstr " \\endpipeline パイプラインモードを終了\n" + +#: help.c:171 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose 最後のエラーメッセージを最大の冗長性で表示\n" -#: help.c:171 +#: help.c:172 +msgid " \\flush push unsent data to the server\n" +msgstr " \\flush 未送信のデータをサーバーへ送信\n" + +#: help.c:173 +msgid " \\flushrequest send a flushrequest command\n" +msgstr " \\flushrequest flushrequestコマンドを送信\n" + +#: help.c:174 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2793,393 +3020,416 @@ msgstr "" " \\g [(OPTIONS)] [FILE] 問い合わせ実行 (結果はファイルまたは |パイプへ出力);\n" " 引数なしの\\gはセミコロンと同義\n" -#: help.c:173 +#: help.c:176 msgid " \\gdesc describe result of query, without executing it\n" -msgstr " \\gdesc 問い合わせを実行せずに結果の説明を行う\n" +msgstr " \\gdesc 問い合わせを実行せずに結果の形式を出力する\n" -#: help.c:174 +#: help.c:177 +msgid "" +" \\getresults [NUM_RES] read NUM_RES pending results. All pending results are\n" +" read if no argument is provided\n" +msgstr "" +" \\getresults [結果数] 指定した \"結果数\" 分の未取得の結果を読み取る。\n" +" 引数なしの場合、すべての未取得の結果を読み取る\n" + +#: help.c:179 msgid " \\gexec execute query, then execute each value in its result\n" msgstr " \\gexec 問い合わせを実行し、結果の中の個々の値を実行\n" -#: help.c:175 +#: help.c:180 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr " \\gset [PREFIX] 問い合わせを実行して結果を psql 変数に格納\n" -#: help.c:176 +#: help.c:181 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr " \\gx [ファイル名] \\g と同じ、ただし拡張出力モードを強制\n" -#: help.c:177 +#: help.c:182 +msgid " \\parse STMT_NAME create a prepared statement\n" +msgstr " \\parse STMT_NAME 準備済みの文を作成\n" + +#: help.c:183 msgid " \\q quit psql\n" msgstr " \\q psql を終了する\n" -#: help.c:178 +#: help.c:184 +msgid " \\sendpipeline send an extended query to an ongoing pipeline\n" +msgstr " \\sendpipeline 実行中のパイプラインに拡張問い合わせを送出\n" + +#: help.c:185 +msgid " \\startpipeline enter pipeline mode\n" +msgstr " \\startpipeline パイプラインモードを開始\n" + +#: help.c:186 +msgid " \\syncpipeline add a synchronisation point to an ongoing pipeline\n" +msgstr " \\syncpipeline 実行中のパイプラインに同期ポイントを追加\n" + +#: help.c:187 msgid "" " \\watch [[i=]SEC] [c=N] [m=MIN]\n" " execute query every SEC seconds, up to N times,\n" " stop if less than MIN rows are returned\n" msgstr "" " \\watch [[i=]SEC] [c=N] [m=MIN]\n" -" SEC秒ごとに最大N回まで分を実行する\n" -" 返却行数がMIN行より少ない場合には停止する\n" +" SEC秒ごとに最大N回まで分を実行。返却行数がMIN行より\n" +" 少ない場合には停止する\n" -#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 -#: help.c:303 help.c:316 help.c:325 +#: help.c:190 help.c:198 help.c:210 help.c:220 help.c:227 help.c:284 help.c:292 +#: help.c:312 help.c:325 help.c:334 msgid "\n" msgstr "\n" -#: help.c:183 +#: help.c:192 msgid "Help\n" msgstr "ヘルプ\n" -#: help.c:185 +#: help.c:194 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [コマンド] バックスラッシュコマンドのヘルプを表示\n" -#: help.c:186 +#: help.c:195 msgid " \\? options show help on psql command-line options\n" msgstr " \\? オプション psql のコマンドライン・オプションのヘルプを表示\n" -#: help.c:187 +#: help.c:196 msgid " \\? variables show help on special variables\n" msgstr " \\? 変数名 特殊変数のヘルプを表示\n" -#: help.c:188 +#: help.c:197 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr " \\h [名前] SQLコマンドの文法ヘルプの表示。* で全コマンドを表示\n" -#: help.c:191 +#: help.c:200 msgid "Query Buffer\n" msgstr "問い合わせバッファ\n" -#: help.c:192 +#: help.c:201 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr "" " \\e [ファイル] [行番号] 現在の問い合わせバッファ(やファイル)を外部エディタで\n" " 編集\n" -#: help.c:193 +#: help.c:202 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [関数名 [行番号]] 関数定義を外部エディタで編集\n" -#: help.c:194 +#: help.c:203 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [ビュー名 [行番号]] ビュー定義を外部エディタで編集\n" -#: help.c:195 +#: help.c:204 msgid " \\p show the contents of the query buffer\n" msgstr " \\p 問い合わせバッファの内容を表示\n" -#: help.c:196 +#: help.c:205 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r 問い合わせバッファをリセット(クリア)\n" -#: help.c:198 +#: help.c:207 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [ファイル] ヒストリを表示またはファイルに保存\n" -#: help.c:200 +#: help.c:209 msgid " \\w FILE write query buffer to file\n" msgstr " \\w ファイル 問い合わせバッファの内容をファイルに保存\n" -#: help.c:203 +#: help.c:212 msgid "Input/Output\n" msgstr "入出力\n" -#: help.c:204 +#: help.c:213 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr "" " \\copy ... クライアントホストに対し、データストリームを使って\n" " SQL COPYを実行\n" -#: help.c:205 +#: help.c:214 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [文字列] 文字列を標準出力に書き込む (-n で改行しない)\n" -#: help.c:206 +#: help.c:215 msgid " \\i FILE execute commands from file\n" msgstr " \\i ファイル ファイルからコマンドを読み込んで実行\n" -#: help.c:207 +#: help.c:216 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr "" " \\ir ファイル \\i と同じ。ただし現在のスクリプトの場所からの相対パス\n" " で指定\n" -#: help.c:208 +#: help.c:217 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [ファイル] 問い合わせ結果をすべてファイルまたは |パイプ へ送出\n" -#: help.c:209 +#: help.c:218 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr "" " \\qecho [-n] [文字列] 文字列を\\oで指定した出力ストリームに書き込む(-n で改行\n" " しない)\n" -#: help.c:210 +#: help.c:219 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [文字列] 文字列を標準エラー出力に書き込む (-n で改行しない)\n" -#: help.c:213 +#: help.c:222 msgid "Conditional\n" msgstr "条件分岐\n" -#: help.c:214 +#: help.c:223 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR 条件分岐ブロックの開始\n" -#: help.c:215 +#: help.c:224 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR 現在の条件分岐ブロック内の選択肢\n" -#: help.c:216 +#: help.c:225 msgid " \\else final alternative within current conditional block\n" msgstr " \\else 現在の条件分岐ブロックにおける最後の選択肢\n" -#: help.c:217 +#: help.c:226 msgid " \\endif end conditional block\n" msgstr " \\endif 条件分岐ブロックの終了\n" -#: help.c:220 +#: help.c:229 msgid "Informational\n" msgstr "情報表示\n" -#: help.c:221 -msgid " (options: S = show system objects, + = additional detail)\n" -msgstr " (オプション:S = システムオブジェクトを表示, + = 詳細表示)\n" - -#: help.c:222 -msgid " \\d[S+] list tables, views, and sequences\n" -msgstr " \\d[S+] テーブル、ビュー、およびシーケンスの一覧を表示\n" - -#: help.c:223 -msgid " \\d[S+] NAME describe table, view, sequence, or index\n" -msgstr "" -" \\d[S+] 名前 テーブル、ビュー、シーケンス、またはインデックスの\n" -" 説明を表示\n" - -#: help.c:224 -msgid " \\da[S] [PATTERN] list aggregates\n" -msgstr " \\da[S] [パターン] 集約関数の一覧を表示\n" - -#: help.c:225 -msgid " \\dA[+] [PATTERN] list access methods\n" -msgstr " \\dA[+] [パターン] アクセスメソッドの一覧を表示\n" - -#: help.c:226 -msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" -msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] 演算子クラスの一覧を表示\n" - -#: help.c:227 -msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" -msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] 演算子族の一覧を表示\n" - -#: help.c:228 -msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" -msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] 演算子族の演算子の一覧を表示\n" - -#: help.c:229 -msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" -msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] 演算子族のサポート関数の一覧を表示\n" - #: help.c:230 -msgid " \\db[+] [PATTERN] list tablespaces\n" -msgstr " \\db[+] [パターン] テーブル空間の一覧を表示\n" +msgid " (options: S = show system objects, x = expanded mode, + = additional detail)\n" +msgstr " (オプション:S = システムオブジェクトを表示、x = 拡張モード、+ = 詳細表示)\n" #: help.c:231 -msgid " \\dc[S+] [PATTERN] list conversions\n" -msgstr " \\dc[S+] [パターン] 符号化方式間の変換の一覧を表示\n" +msgid " \\d[Sx+] list tables, views, and sequences\n" +msgstr " \\d[Sx+] テーブル、ビュー、およびシーケンスの一覧を表示\n" #: help.c:232 -msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" -msgstr " \\dconfig[+] [PATTERN] 設定パラメータの一覧を表示\n" +msgid " \\d[S+] NAME describe table, view, sequence, or index\n" +msgstr "" +" \\d[S+] 名前 テーブル、ビュー、シーケンス、またはインデックスの\n" +" 説明を表示\n" #: help.c:233 -msgid " \\dC[+] [PATTERN] list casts\n" -msgstr " \\dC[+] [パターン] キャストの一覧を表示します。\n" +msgid " \\da[Sx] [PATTERN] list aggregates\n" +msgstr " \\da[Sx] [パターン] 集約関数の一覧を表示\n" #: help.c:234 -msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" -msgstr " \\dd[S] [パターン] 他では表示されないオブジェクトの説明を表示\n" +msgid " \\dA[x+] [PATTERN] list access methods\n" +msgstr " \\dA[x+] [パターン] アクセスメソッドの一覧を表示\n" #: help.c:235 -msgid " \\dD[S+] [PATTERN] list domains\n" -msgstr " \\dD[S+] [パターン] ドメインの一覧を表示\n" +msgid " \\dAc[x+] [AMPTRN [TYPEPTRN]] list operator classes\n" +msgstr " \\dAc[x+] [AMパターン [型パターン]] 演算子クラスの一覧を表示\n" #: help.c:236 -msgid " \\ddp [PATTERN] list default privileges\n" -msgstr " \\ddp [パターン] デフォルト権限の一覧を表示\n" +msgid " \\dAf[x+] [AMPTRN [TYPEPTRN]] list operator families\n" +msgstr " \\dAf[x+] [AMパターン [型パターン]] 演算子族の一覧を表示\n" #: help.c:237 -msgid " \\dE[S+] [PATTERN] list foreign tables\n" -msgstr " \\dE[S+] [パターン] 外部テーブルの一覧を表示\n" +msgid " \\dAo[x+] [AMPTRN [OPFPTRN]] list operators of operator families\n" +msgstr " \\dAo[x+] [AMパターン [型パターン]] 演算子族の演算子の一覧を表示\n" #: help.c:238 -msgid " \\des[+] [PATTERN] list foreign servers\n" -msgstr " \\des[+] [パターン] 外部サーバーの一覧を表示\n" +msgid " \\dAp[x+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" +msgstr " \\dAp[x+] [AMパターン [型パターン]] 演算子族のサポート関数の一覧を表示\n" #: help.c:239 -msgid " \\det[+] [PATTERN] list foreign tables\n" -msgstr " \\det[+] [パターン] 外部テーブルの一覧を表示\n" +msgid " \\db[x+] [PATTERN] list tablespaces\n" +msgstr " \\db[x+] [パターン] テーブル空間の一覧を表示\n" #: help.c:240 -msgid " \\deu[+] [PATTERN] list user mappings\n" -msgstr " \\deu[+] [パターン] ユーザーマッピングの一覧を表示\n" +msgid " \\dc[Sx+] [PATTERN] list conversions\n" +msgstr " \\dc[Sx+] [パターン] 符号化方式間の変換の一覧を表示\n" #: help.c:241 -msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" -msgstr " \\dew[+] [パターン] 外部データラッパの一覧を表示\n" +msgid " \\dconfig[x+] [PATTERN] list configuration parameters\n" +msgstr " \\dconfig[x+] [パターン] 設定パラメータの一覧を表示\n" #: help.c:242 -msgid "" -" \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" -" list [only agg/normal/procedure/trigger/window] functions\n" -msgstr "" -" \\df[anptw][S+] [関数パターン [型パターン ...]]\n" -" [集約/通常/プロシージャ/トリガー/ウィンドウ]\n" -" 関数のみの一覧を表示\n" +msgid " \\dC[x+] [PATTERN] list casts\n" +msgstr " \\dC[x+] [パターン] キャストの一覧を表示します。\n" + +#: help.c:243 +msgid " \\dd[Sx] [PATTERN] show object descriptions not displayed elsewhere\n" +msgstr " \\dd[Sx] [パターン] 他では表示されないオブジェクトの説明を表示\n" #: help.c:244 -msgid " \\dF[+] [PATTERN] list text search configurations\n" -msgstr " \\dF[+] [パターン] テキスト検索設定の一覧を表示\n" +msgid " \\dD[Sx+] [PATTERN] list domains\n" +msgstr " \\dD[Sx+] [パターン] ドメインの一覧を表示\n" #: help.c:245 -msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" -msgstr " \\dFd[+] [パターン] テキスト検索辞書の一覧を表示\n" +msgid " \\ddp[x] [PATTERN] list default privileges\n" +msgstr " \\ddp[x] [パターン] デフォルト権限の一覧を表示\n" #: help.c:246 -msgid " \\dFp[+] [PATTERN] list text search parsers\n" -msgstr " \\dFp[+] [パターン] テキスト検索パーサの一覧を表示\n" +msgid " \\dE[Sx+] [PATTERN] list foreign tables\n" +msgstr " \\dE[Sx+] [パターン] 外部テーブルの一覧を表示\n" #: help.c:247 -msgid " \\dFt[+] [PATTERN] list text search templates\n" -msgstr " \\dFt[+] [パターン] テキスト検索テンプレートの一覧を表示\n" +msgid " \\des[x+] [PATTERN] list foreign servers\n" +msgstr " \\des[x+] [パターン] 外部サーバーの一覧を表示\n" #: help.c:248 -msgid " \\dg[S+] [PATTERN] list roles\n" -msgstr " \\dg[S+] [パターン] ロールの一覧を表示\n" +msgid " \\det[x+] [PATTERN] list foreign tables\n" +msgstr " \\det[x+] [パターン] 外部テーブルの一覧を表示\n" #: help.c:249 -msgid " \\di[S+] [PATTERN] list indexes\n" -msgstr " \\di[S+] [パターン] インデックスの一覧を表示\n" +msgid " \\deu[x+] [PATTERN] list user mappings\n" +msgstr " \\deu[x+] [パターン] ユーザーマッピングの一覧を表示\n" #: help.c:250 -msgid " \\dl[+] list large objects, same as \\lo_list\n" -msgstr " \\dl[+] ラージオブジェクトの一覧を表示、\\lo_list と同じ\n" +msgid " \\dew[x+] [PATTERN] list foreign-data wrappers\n" +msgstr " \\dew[x+] [パターン] 外部データラッパの一覧を表示\n" #: help.c:251 -msgid " \\dL[S+] [PATTERN] list procedural languages\n" -msgstr " \\dL[S+] [パターン] 手続き言語の一覧を表示\n" - -#: help.c:252 -msgid " \\dm[S+] [PATTERN] list materialized views\n" -msgstr " \\dm[S+] [パターン] 実体化ビューの一覧を表示\n" +msgid "" +" \\df[anptw][Sx+] [FUNCPTRN [TYPEPTRN ...]]\n" +" list [only agg/normal/procedure/trigger/window] functions\n" +msgstr "" +" \\df[anptw][Sx+] [関数パターン [型パターン ...]]\n" +" [集約/通常/プロシージャ/トリガー/ウィンドウ]\n" +" 関数のみの一覧を表示\n" #: help.c:253 -msgid " \\dn[S+] [PATTERN] list schemas\n" -msgstr " \\dn[S+] [パターン] スキーマの一覧を表示\n" +msgid " \\dF[x+] [PATTERN] list text search configurations\n" +msgstr " \\dF[x+] [パターン] テキスト検索設定の一覧を表示\n" #: help.c:254 -msgid "" -" \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" -" list operators\n" -msgstr "" -" \\do[S+] [演算子パターン [型パターン [型パターン]]]\n" -" 演算子の一覧を表示\n" +msgid " \\dFd[x+] [PATTERN] list text search dictionaries\n" +msgstr " \\dFd[x+] [パターン] テキスト検索辞書の一覧を表示\n" + +#: help.c:255 +msgid " \\dFp[x+] [PATTERN] list text search parsers\n" +msgstr " \\dFp[x+] [パターン] テキスト検索パーサの一覧を表示\n" #: help.c:256 -msgid " \\dO[S+] [PATTERN] list collations\n" -msgstr " \\dO[S+] [パターン] 照合順序の一覧を表示\n" +msgid " \\dFt[x+] [PATTERN] list text search templates\n" +msgstr " \\dFt[x+] [パターン] テキスト検索テンプレートの一覧を表示\n" #: help.c:257 -msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" -msgstr " \\dp[S] [パターン] テーブル、ビュー、シーケンスのアクセス権の一覧を表示\n" +msgid " \\dg[Sx+] [PATTERN] list roles\n" +msgstr " \\dg[Sx+] [パターン] ロールの一覧を表示\n" #: help.c:258 -msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" -msgstr "" -" \\dP[itn+] [パターン] パーティションリレーション[テーブル/インデックスのみ]\n" -" の一覧を表示 [n=入れ子]\n" +msgid " \\di[Sx+] [PATTERN] list indexes\n" +msgstr " \\di[Sx+] [パターン] インデックスの一覧を表示\n" #: help.c:259 -msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" -msgstr "" -" \\drds [ロールパターン [DBパターン]]\n" -" データベース毎のロール設定の一覧を表示\n" +msgid " \\dl[x+] list large objects, same as \\lo_list\n" +msgstr " \\dl[x+] ラージオブジェクトの一覧を表示、\\lo_list と同じ\n" #: help.c:260 -msgid " \\drg[S] [PATTERN] list role grants\n" -msgstr "" -" \\drg[S] [PATTERN] ロール権限付与の一覧を表示\n" -"\n" +msgid " \\dL[Sx+] [PATTERN] list procedural languages\n" +msgstr " \\dL[Sx+] [パターン] 手続き言語の一覧を表示\n" #: help.c:261 -msgid " \\dRp[+] [PATTERN] list replication publications\n" -msgstr " \\dRp[+] [パターン] レプリケーションのパブリケーションの一覧を表示\n" +msgid " \\dm[Sx+] [PATTERN] list materialized views\n" +msgstr " \\dm[Sx+] [パターン] 実体化ビューの一覧を表示\n" #: help.c:262 -msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" -msgstr " \\dRs[+] [パターン] レプリケーションのサブスクリプションの一覧を表示\n" +msgid " \\dn[Sx+] [PATTERN] list schemas\n" +msgstr " \\dn[Sx+] [パターン] スキーマの一覧を表示\n" #: help.c:263 -msgid " \\ds[S+] [PATTERN] list sequences\n" -msgstr " \\ds[S+] [パターン] シーケンスの一覧を表示\n" - -#: help.c:264 -msgid " \\dt[S+] [PATTERN] list tables\n" -msgstr " \\dt[S+] [パターン] テーブルの一覧を表示\n" +msgid "" +" \\do[Sx+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" +" list operators\n" +msgstr "" +" \\do[Sx+] [演算子パターン [型パターン [型パターン]]]\n" +" 演算子の一覧を表示\n" #: help.c:265 -msgid " \\dT[S+] [PATTERN] list data types\n" -msgstr " \\dT[S+] [パターン] データ型の一覧を表示\n" +msgid " \\dO[Sx+] [PATTERN] list collations\n" +msgstr " \\dO[Sx+] [パターン] 照合順序の一覧を表示\n" #: help.c:266 -msgid " \\du[S+] [PATTERN] list roles\n" -msgstr " \\du[S+] [パターン] ロールの一覧を表示\n" +msgid " \\dp[Sx] [PATTERN] list table, view, and sequence access privileges\n" +msgstr " \\dp[Sx] [パターン] テーブル、ビュー、シーケンスのアクセス権の一覧を表示\n" #: help.c:267 -msgid " \\dv[S+] [PATTERN] list views\n" -msgstr " \\dv[S+] [パターン] ビューの一覧を表示\n" +msgid " \\dP[itnx+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" +msgstr "" +" \\dP[itnx+] [パターン] パーティションリレーション[テーブル/インデックスのみ]\n" +" の一覧を表示 [n=入れ子]\n" +" \n" #: help.c:268 -msgid " \\dx[+] [PATTERN] list extensions\n" -msgstr " \\dx[+] [パターン] 機能拡張の一覧を表示\n" +msgid " \\drds[x] [ROLEPTRN [DBPTRN]] list per-database role settings\n" +msgstr "" +" \\drds[x] [ロールパターン [DBパターン]]\n" +" データベース毎のロール設定の一覧を表示\n" #: help.c:269 -msgid " \\dX [PATTERN] list extended statistics\n" -msgstr " \\dX [パターン] 拡張統計情報の一覧を表示\n" +msgid " \\drg[Sx] [PATTERN] list role grants\n" +msgstr " \\drg[Sx] [パターン] ロール権限付与の一覧を表示\n" #: help.c:270 -msgid " \\dy[+] [PATTERN] list event triggers\n" -msgstr " \\dy[+] [パターン] イベントトリガーの一覧を表示\n" +msgid " \\dRp[x+] [PATTERN] list replication publications\n" +msgstr " \\dRp[x+] [パターン] レプリケーションのパブリケーションの一覧を表示\n" #: help.c:271 -msgid " \\l[+] [PATTERN] list databases\n" -msgstr " \\l[+] [パターン] データベースの一覧を表示\n" +msgid " \\dRs[x+] [PATTERN] list replication subscriptions\n" +msgstr " \\dRs[x+] [パターン] レプリケーションのサブスクリプションの一覧を表示\n" #: help.c:272 -msgid " \\sf[+] FUNCNAME show a function's definition\n" -msgstr " \\sf[+] 関数名 関数の定義を表示\n" +msgid " \\ds[Sx+] [PATTERN] list sequences\n" +msgstr " \\ds[Sx+] [パターン] シーケンスの一覧を表示\n" #: help.c:273 -msgid " \\sv[+] VIEWNAME show a view's definition\n" -msgstr " \\sv[+] ビュー名 ビューの定義を表示\n" +msgid " \\dt[Sx+] [PATTERN] list tables\n" +msgstr " \\dt[Sx+] [パターン] テーブルの一覧を表示\n" #: help.c:274 -msgid " \\z[S] [PATTERN] same as \\dp\n" -msgstr " \\z[S] [パターン] \\dp と同じ\n" +msgid " \\dT[Sx+] [PATTERN] list data types\n" +msgstr " \\dT[Sx+] [パターン] データ型の一覧を表示\n" + +#: help.c:275 +msgid " \\du[Sx+] [PATTERN] list roles\n" +msgstr " \\du[Sx+] [パターン] ロールの一覧を表示\n" + +#: help.c:276 +msgid " \\dv[Sx+] [PATTERN] list views\n" +msgstr " \\dv[Sx+] [パターン] ビューの一覧を表示\n" #: help.c:277 +msgid " \\dx[x+] [PATTERN] list extensions\n" +msgstr " \\dx[x+] [パターン] 機能拡張の一覧を表示\n" + +#: help.c:278 +msgid " \\dX[x] [PATTERN] list extended statistics\n" +msgstr " \\dX[x] [パターン] 拡張統計情報の一覧を表示\n" + +#: help.c:279 +msgid " \\dy[x+] [PATTERN] list event triggers\n" +msgstr " \\dy[x+] [パターン] イベントトリガーの一覧を表示\n" + +#: help.c:280 +msgid " \\l[x+] [PATTERN] list databases\n" +msgstr " \\l[x+] [パターン] データベースの一覧を表示\n" + +#: help.c:281 +msgid " \\sf[+] FUNCNAME show a function's definition\n" +msgstr " \\sf[+] 関数名 関数の定義を表示\n" + +#: help.c:282 +msgid " \\sv[+] VIEWNAME show a view's definition\n" +msgstr " \\sv[+] ビュー名 ビューの定義を表示\n" + +#: help.c:283 +msgid " \\z[Sx] [PATTERN] same as \\dp\n" +msgstr " \\z[Sx] [パターン] \\dp と同じ\n" + +#: help.c:286 msgid "Large Objects\n" msgstr "ラージ・オブジェクト\n" -#: help.c:278 +#: help.c:287 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr "" " \\lo_export LOBOID ファイル名\n" " ラージ・オブエジェクトをファイルに書き込む\n" -#: help.c:279 +#: help.c:288 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3187,38 +3437,38 @@ msgstr "" " \\lo_import ファイル名 [コメント]\n" " ラージ・オブジェクトをファイルから読み込む\n" -#: help.c:281 -msgid " \\lo_list[+] list large objects\n" -msgstr " \\lo_list[+] ラージ・オブジェクトの一覧を表示\n" +#: help.c:290 +msgid " \\lo_list[x+] list large objects\n" +msgstr " \\lo_list[x+] ラージ・オブジェクトの一覧を表示\n" -#: help.c:282 +#: help.c:291 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID ラージ・オブジェクトを削除\n" -#: help.c:285 +#: help.c:294 msgid "Formatting\n" msgstr "書式設定\n" -#: help.c:286 +#: help.c:295 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr " \\a 非整列と整列間の出力モードの切り替え\n" -#: help.c:287 +#: help.c:296 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [文字列] テーブルのタイトルを設定、値がなければ削除\n" -#: help.c:288 +#: help.c:297 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr "" " \\f [文字列] 問い合わせ結果の非整列出力時のフィールド区切り文字を\n" " 表示または設定\n" -#: help.c:289 +#: help.c:298 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H HTML出力モードの切り替え (現在値: %s)\n" -#: help.c:291 +#: help.c:300 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3226,39 +3476,39 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" -" \\pset [名前 [値]] テーブル出力のオプション設定\n" -" (border|columns|csv_fieldsep|expanded|fieldsep|\n" +" \\pset [名前 [値]] テーブル出力のオプションを指定します\n" +" (border|columns|csv_fieldsep|expanded|fieldsep|\n" " fieldsep_zero|footer|format|linestyle|null|\n" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:298 +#: help.c:307 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] 結果行のみ表示 (現在値: %s)\n" -#: help.c:300 +#: help.c:309 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr " \\T [文字列] HTMLの
タグ属性の設定、値がなければ解除\n" -#: help.c:301 +#: help.c:310 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] 拡張出力の切り替え (現在値: %s)\n" -#: help.c:302 +#: help.c:311 msgid "auto" msgstr "自動(auto)" -#: help.c:305 +#: help.c:314 msgid "Connection\n" msgstr "接続\n" -#: help.c:307 +#: help.c:316 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3267,7 +3517,7 @@ msgstr "" " \\c[onnect] {[DB名|- ユーザー名|- ホスト名|- ポート番号|-] | 接続文字列}\n" " 新しいデータベースに接続 (現在: \"%s\")\n" -#: help.c:311 +#: help.c:320 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3275,64 +3525,64 @@ msgstr "" " \\c[onnect] {[DB名|- ユーザー名|- ホスト名|- ポート番号|-] | 接続文字列}\n" " 新しいデータベースに接続 (現在: 未接続)\n" -#: help.c:313 +#: help.c:322 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo 現在の接続に関する情報を表示\n" -#: help.c:314 +#: help.c:323 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [エンコーディング] クライアントのエンコーディングを表示または設定\n" -#: help.c:315 +#: help.c:324 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [ユーザー名] ユーザーのパスワードを安全に変更\n" -#: help.c:318 +#: help.c:327 msgid "Operating System\n" msgstr "オペレーティングシステム\n" -#: help.c:319 +#: help.c:328 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [DIR] カレントディレクトリを変更\n" -#: help.c:320 +#: help.c:329 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr "" " \\getenv psql変数 環境変数\n" " 環境変数を取得\n" -#: help.c:321 +#: help.c:330 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv 名前 [値] 環境変数を設定または解除\n" -#: help.c:322 +#: help.c:331 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] コマンドの実行時間表示の切り替え (現在値: %s)\n" -#: help.c:324 +#: help.c:333 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr "" " \\! [コマンド] シェルでコマンドを実行するか、もしくは対話型シェルを\n" " 起動します。\n" -#: help.c:327 +#: help.c:336 msgid "Variables\n" msgstr "変数\n" -#: help.c:328 +#: help.c:337 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [テキスト] 変数名 ユーザーに対して内部変数の設定を要求します\n" -#: help.c:329 +#: help.c:338 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr " \\set [変数名 [値]] 内部変数の値を設定、パラメータがなければ一覧を表示\n" -#: help.c:330 +#: help.c:339 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset 変数名 内部変数を削除\n" -#: help.c:369 +#: help.c:378 msgid "" "List of specially treated variables\n" "\n" @@ -3340,11 +3590,11 @@ msgstr "" "特別に扱われる変数の一覧\n" "\n" -#: help.c:371 +#: help.c:380 msgid "psql variables:\n" msgstr "psql変数:\n" -#: help.c:373 +#: help.c:382 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3354,7 +3604,7 @@ msgstr "" " またはpsql内で \\set 名前 値\n" "\n" -#: help.c:375 +#: help.c:384 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3362,7 +3612,7 @@ msgstr "" " AUTOCOMMIT\n" " セットされている場合、SQLコマンドが成功した際に自動的にコミット\n" -#: help.c:377 +#: help.c:386 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3372,7 +3622,7 @@ msgstr "" " SQLキーワードの補完に使う文字ケースを指定\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:380 +#: help.c:389 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3380,7 +3630,7 @@ msgstr "" " DBNAME\n" " 現在接続中のデータベース名\n" -#: help.c:382 +#: help.c:391 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3390,7 +3640,7 @@ msgstr "" " どの入力を標準出力への出力対象とするかを設定\n" " [all, errors, none, queries]\n" -#: help.c:385 +#: help.c:394 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3400,7 +3650,7 @@ msgstr "" " セットされていれば、バックスラッシュコマンドで実行される内部問い合わせを\n" " 表示; \"noexec\"を設定した場合は実行せずに表示のみ\n" -#: help.c:388 +#: help.c:397 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3408,7 +3658,7 @@ msgstr "" " ENCODING\n" " 現在のクライアント側の文字セットのエンコーディング\n" -#: help.c:390 +#: help.c:399 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3416,7 +3666,7 @@ msgstr "" " ERROR\n" " 最後の問い合わせが失敗であれば\"true\"、そうでなければ\"false\"\n" -#: help.c:392 +#: help.c:401 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" @@ -3424,7 +3674,7 @@ msgstr "" " FETCH_COUNT\n" " 一度に取得および表示する結果の行数 (0 = 無制限)\n" -#: help.c:394 +#: help.c:403 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3432,7 +3682,7 @@ msgstr "" " HIDE_TABLEAM\n" " 設定すると、テーブルアクセスメソッドは表示されない\n" -#: help.c:396 +#: help.c:405 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3440,7 +3690,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " 設定すると、圧縮方式は表示されない\n" -#: help.c:398 +#: help.c:407 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3448,7 +3698,7 @@ msgstr "" " HISTCONTROL\n" " コマンド履歴の制御 [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:400 +#: help.c:409 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3456,7 +3706,7 @@ msgstr "" " HISTFILE\n" " コマンド履歴を保存するファイルの名前\n" -#: help.c:402 +#: help.c:411 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3464,7 +3714,7 @@ msgstr "" " HISTSIZE\n" " コマンド履歴で保存するコマンド数の上限\n" -#: help.c:404 +#: help.c:413 msgid "" " HOST\n" " the currently connected database server host\n" @@ -3472,7 +3722,7 @@ msgstr "" " HOST\n" " 現在接続中のデータベースサーバーホスト\n" -#: help.c:406 +#: help.c:415 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3480,7 +3730,7 @@ msgstr "" " IGNOREEOF\n" " 対話形セッションを終わらせるのに必要なEOFの数\n" -#: help.c:408 +#: help.c:417 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3488,7 +3738,7 @@ msgstr "" " LASTOID\n" " 最後の変更の影響を受けたOID\n" -#: help.c:410 +#: help.c:419 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3499,7 +3749,7 @@ msgstr "" " 最後のエラーのメッセージおよび SQLSTATE、\n" " なにもなければ空の文字列および\"00000\"\n" -#: help.c:413 +#: help.c:422 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3508,7 +3758,7 @@ msgstr "" " セットされている場合、エラーでトランザクションを停止しない (暗黙のセーブ\n" " ポイントを使用)\n" -#: help.c:415 +#: help.c:424 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3516,7 +3766,7 @@ msgstr "" " ON_ERROR_STOP\n" " エラー発生後にバッチ実行を停止\n" -#: help.c:417 +#: help.c:426 msgid "" " PORT\n" " server port of the current connection\n" @@ -3524,7 +3774,7 @@ msgstr "" " PORT\n" " 現在の接続のサーバーポート\n" -#: help.c:419 +#: help.c:428 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3532,7 +3782,7 @@ msgstr "" " PROMPT1\n" " psql の標準のプロンプトを指定\n" -#: help.c:421 +#: help.c:430 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" @@ -3540,7 +3790,7 @@ msgstr "" " PROMPT2\n" " 文が前行から継続する場合のプロンプトを指定\n" -#: help.c:423 +#: help.c:432 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3548,7 +3798,7 @@ msgstr "" " PROMPT3\n" " COPY ... FROM STDIN の最中に使われるプロンプトを指定\n" -#: help.c:425 +#: help.c:434 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3556,7 +3806,7 @@ msgstr "" " QUIET\n" " メッセージを表示しない (-q オプションと同じ)\n" -#: help.c:427 +#: help.c:436 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3564,7 +3814,7 @@ msgstr "" " ROW_COUNT\n" " 最後の問い合わせで返却した、または影響を与えた行の数、または0\n" -#: help.c:429 +#: help.c:438 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3574,7 +3824,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " サーバーのバージョン(短い文字列または数値)\n" -#: help.c:432 +#: help.c:441 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3582,7 +3832,7 @@ msgstr "" " SHELL_ERROR\n" " 最後のシェルコマンドが失敗であれば\"true\"、成功であれば\"false\"\n" -#: help.c:434 +#: help.c:443 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3590,7 +3840,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " 最後に実行したシェルコマンドの終了ステータス\n" -#: help.c:436 +#: help.c:445 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3598,7 +3848,7 @@ msgstr "" " SHOW_ALL_RESULTS\n" " 複合問い合わせ(\\;)の最後の結果のみではなくすべてを表示する\n" -#: help.c:438 +#: help.c:447 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3606,7 +3856,7 @@ msgstr "" " SHOW_CONTEXT\n" " メッセージコンテキストフィールドの表示を制御 [never, errors, always]\n" -#: help.c:440 +#: help.c:449 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3614,7 +3864,7 @@ msgstr "" " SINGLELINE\n" " セットした場合、改行はSQLコマンドを終端する (-S オプションと同じ)\n" -#: help.c:442 +#: help.c:451 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3622,7 +3872,7 @@ msgstr "" " SINGLESTEP\n" " シングルステップモード (-s オプションと同じ)\n" -#: help.c:444 +#: help.c:453 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3630,7 +3880,7 @@ msgstr "" " SQLSTATE\n" " 最後の問い合わせの SQLSTATE、またはエラーでなければ\"00000\"\n" -#: help.c:446 +#: help.c:455 msgid "" " USER\n" " the currently connected database user\n" @@ -3638,7 +3888,7 @@ msgstr "" " USER\n" " 現在接続中のデータベースユーザー\n" -#: help.c:448 +#: help.c:457 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3646,7 +3896,7 @@ msgstr "" " VERBOSITY\n" " エラー報告の詳細度を制御 [default, verbose, terse, sqlstate]\n" -#: help.c:450 +#: help.c:459 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3658,7 +3908,15 @@ msgstr "" " VERSION_NUM\n" " psql のバージョン(長い文字列、短い文字列または数値)\n" -#: help.c:455 +#: help.c:463 +msgid "" +" WATCH_INTERVAL\n" +" if set to a number, overrides the default two second \\watch interval\n" +msgstr "" +" WATCH_INTERVAL\n" +" 数値の場合、\\watch間隔のデフォルトである2秒を変更します\n" + +#: help.c:466 msgid "" "\n" "Display settings:\n" @@ -3666,7 +3924,7 @@ msgstr "" "\n" "表示設定:\n" -#: help.c:457 +#: help.c:468 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3676,7 +3934,7 @@ msgstr "" " またはpsql内で \\pset 名前 [値]\n" "\n" -#: help.c:459 +#: help.c:470 msgid "" " border\n" " border style (number)\n" @@ -3684,7 +3942,7 @@ msgstr "" " border\n" " 境界線のスタイル (番号)\n" -#: help.c:461 +#: help.c:472 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3692,7 +3950,7 @@ msgstr "" " columns\n" " 折り返し形式で目標とする横幅\n" -#: help.c:463 +#: help.c:474 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" @@ -3700,7 +3958,7 @@ msgstr "" " expanded (or x)\n" " 拡張出力 [on, off, auto]\n" -#: help.c:465 +#: help.c:476 #, c-format msgid "" " fieldsep\n" @@ -3709,7 +3967,7 @@ msgstr "" " fieldsep\n" " 非整列出力でのフィールド区切り文字(デフォルトは \"%s\")\n" -#: help.c:468 +#: help.c:479 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3717,7 +3975,7 @@ msgstr "" " fieldsep_zero\n" " 非整列出力でのフィールド区切り文字をバイト値の0に設定\n" -#: help.c:470 +#: help.c:481 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3725,7 +3983,7 @@ msgstr "" " footer\n" " テーブルフッター出力の要否を設定 [on, off]\n" -#: help.c:472 +#: help.c:483 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3733,7 +3991,7 @@ msgstr "" " format\n" " 出力フォーマットを設定 [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:474 +#: help.c:485 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3741,7 +3999,7 @@ msgstr "" " linestyle\n" " 境界線の描画スタイルを設定 [ascii, old-ascii, unicode]\n" -#: help.c:476 +#: help.c:487 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3749,7 +4007,7 @@ msgstr "" " null\n" " null 値の代わりに表示する文字列を設定\n" -#: help.c:478 +#: help.c:489 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3757,7 +4015,7 @@ msgstr "" " numericlocale\n" " ロケール固有文字での桁区切りを表示するかどうかを指定\n" -#: help.c:480 +#: help.c:491 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3765,7 +4023,7 @@ msgstr "" " pager\n" " いつ外部ページャーを使うかを制御 [yes, no, always]\n" -#: help.c:482 +#: help.c:493 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3773,7 +4031,7 @@ msgstr "" " recordsep\n" " 非整列出力でのレコード(行)区切り\n" -#: help.c:484 +#: help.c:495 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3781,7 +4039,7 @@ msgstr "" " recordsep_zero\n" " 非整列出力でレコード区切りにバイト値の0に設定\n" -#: help.c:486 +#: help.c:497 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3791,7 +4049,7 @@ msgstr "" " HTMLフォーマット時のtableタグの属性、もしくは latex-longtable\n" " フォーマット時に左寄せするデータ型の相対カラム幅を指定\n" -#: help.c:489 +#: help.c:500 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3799,7 +4057,7 @@ msgstr "" " title\n" " 以降に表示される表のタイトルを設定\n" -#: help.c:491 +#: help.c:502 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3807,7 +4065,7 @@ msgstr "" " tuples_only\n" " セットされた場合、実際のテーブルデータのみを表示\n" -#: help.c:493 +#: help.c:504 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3819,7 +4077,17 @@ msgstr "" " unicode_header_linestyle\n" " Unicode による線描画時のスタイルを設定 [single, double]\n" -#: help.c:498 +#: help.c:508 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" 拡張出力のヘッダの最大幅を指定します\n" +" [full, column, page, 整数値]\n" + +#: help.c:512 msgid "" "\n" "Environment variables:\n" @@ -3827,7 +4095,7 @@ msgstr "" "\n" "環境変数:\n" -#: help.c:502 +#: help.c:516 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3837,7 +4105,7 @@ msgstr "" " またはpsql内で \\setenv 名前 [値]\n" "\n" -#: help.c:504 +#: help.c:518 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3849,7 +4117,7 @@ msgstr "" " またはpsq内で \\setenv 名前 [値]\n" "\n" -#: help.c:507 +#: help.c:521 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3857,7 +4125,7 @@ msgstr "" " COLUMNS\n" " 折り返し書式におけるカラム数\n" -#: help.c:509 +#: help.c:523 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3865,7 +4133,7 @@ msgstr "" " PGAPPNAME\n" " application_name 接続パラメータと同じ\n" -#: help.c:511 +#: help.c:525 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3873,7 +4141,7 @@ msgstr "" " PGDATABASE\n" " dbname 接続パラメータと同じ\n" -#: help.c:513 +#: help.c:527 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3881,7 +4149,7 @@ msgstr "" " PGHOST\n" " host 接続パラメータと同じ\n" -#: help.c:515 +#: help.c:529 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3889,7 +4157,7 @@ msgstr "" " PGPASSFILE\n" " パスワードファイル名\n" -#: help.c:517 +#: help.c:531 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3897,7 +4165,7 @@ msgstr "" " PGPASSWORD\n" " 接続用パスワード (推奨されません)\n" -#: help.c:519 +#: help.c:533 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3905,7 +4173,7 @@ msgstr "" " PGPORT\n" " port 接続パラメータと同じ\n" -#: help.c:521 +#: help.c:535 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3913,7 +4181,7 @@ msgstr "" " PGUSER\n" " user 接続パラメータと同じ\n" -#: help.c:523 +#: help.c:537 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3921,7 +4189,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " \\e, \\ef, \\ev コマンドで使われるエディタ\n" -#: help.c:525 +#: help.c:539 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3929,7 +4197,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " エディタの起動時に行番号を指定する方法\n" -#: help.c:527 +#: help.c:541 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -3937,7 +4205,7 @@ msgstr "" " PSQL_HISTORY\n" " コマンドライン履歴ファイルの代替の場所\n" -#: help.c:529 +#: help.c:543 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -3945,7 +4213,7 @@ msgstr "" " PSQL_PAGER, PAGER\n" " 外部ページャープログラムの名前\n" -#: help.c:532 +#: help.c:546 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -3953,7 +4221,7 @@ msgstr "" " PSQL_PAGER, PAGER\n" " \\watchで使用する外部ページャープログラムの名前\n" -#: help.c:535 +#: help.c:549 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -3961,7 +4229,7 @@ msgstr "" " PSQLRC\n" " ユーザーの .psqlrc ファイルの代替の場所\n" -#: help.c:537 +#: help.c:551 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -3969,7 +4237,7 @@ msgstr "" " SHELL\n" " \\! コマンドで使われるシェル\n" -#: help.c:539 +#: help.c:553 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -3977,11 +4245,11 @@ msgstr "" " TMPDIR\n" " テンポラリファイル用ディレクトリ\n" -#: help.c:599 +#: help.c:613 msgid "Available help:\n" msgstr "利用可能なヘルプ:\n" -#: help.c:694 +#: help.c:708 #, c-format msgid "" "Command: %s\n" @@ -4000,7 +4268,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:717 +#: help.c:731 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4106,12 +4374,12 @@ msgstr "問い合わせは無視されました; \\endifかCtrl-Cで現在の\\i msgid "reached EOF without finding closing \\endif(s)" msgstr "ブロックを閉じる\\endifを検出中に、ファイルの終端(EOF)に達しました" -#: psqlscanslash.l:642 +#: psqlscanslash.l:633 #, c-format msgid "unterminated quoted string" msgstr "文字列の引用符が閉じていません" -#: psqlscanslash.l:842 +#: psqlscanslash.l:834 #, c-format msgid "%s: out of memory" msgstr "%s: メモリ不足です" @@ -4119,2470 +4387,2473 @@ msgstr "%s: メモリ不足です" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:240 -#: sql_help.c:242 sql_help.c:243 sql_help.c:245 sql_help.c:247 sql_help.c:250 -#: sql_help.c:252 sql_help.c:254 sql_help.c:256 sql_help.c:268 sql_help.c:269 -#: sql_help.c:270 sql_help.c:272 sql_help.c:321 sql_help.c:323 sql_help.c:325 -#: sql_help.c:327 sql_help.c:396 sql_help.c:401 sql_help.c:403 sql_help.c:445 -#: sql_help.c:447 sql_help.c:450 sql_help.c:452 sql_help.c:521 sql_help.c:526 -#: sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:595 sql_help.c:597 -#: sql_help.c:599 sql_help.c:601 sql_help.c:603 sql_help.c:606 sql_help.c:608 -#: sql_help.c:611 sql_help.c:622 sql_help.c:624 sql_help.c:668 sql_help.c:670 -#: sql_help.c:672 sql_help.c:675 sql_help.c:677 sql_help.c:679 sql_help.c:720 -#: sql_help.c:724 sql_help.c:728 sql_help.c:749 sql_help.c:752 sql_help.c:755 -#: sql_help.c:784 sql_help.c:796 sql_help.c:804 sql_help.c:807 sql_help.c:810 -#: sql_help.c:825 sql_help.c:828 sql_help.c:857 sql_help.c:862 sql_help.c:867 -#: sql_help.c:872 sql_help.c:877 sql_help.c:904 sql_help.c:906 sql_help.c:908 -#: sql_help.c:910 sql_help.c:913 sql_help.c:915 sql_help.c:962 sql_help.c:1007 -#: sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 -#: sql_help.c:1046 sql_help.c:1057 sql_help.c:1059 sql_help.c:1079 -#: sql_help.c:1089 sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 -#: sql_help.c:1106 sql_help.c:1110 sql_help.c:1112 sql_help.c:1124 -#: sql_help.c:1126 sql_help.c:1128 sql_help.c:1130 sql_help.c:1149 -#: sql_help.c:1151 sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1167 sql_help.c:1168 sql_help.c:1171 -#: sql_help.c:1174 sql_help.c:1176 sql_help.c:1323 sql_help.c:1325 -#: sql_help.c:1328 sql_help.c:1331 sql_help.c:1333 sql_help.c:1335 -#: sql_help.c:1338 sql_help.c:1341 sql_help.c:1343 sql_help.c:1349 -#: sql_help.c:1473 sql_help.c:1475 sql_help.c:1477 sql_help.c:1480 -#: sql_help.c:1501 sql_help.c:1504 sql_help.c:1507 sql_help.c:1510 -#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1518 sql_help.c:1520 -#: sql_help.c:1534 sql_help.c:1537 sql_help.c:1539 sql_help.c:1541 -#: sql_help.c:1551 sql_help.c:1553 sql_help.c:1563 sql_help.c:1565 -#: sql_help.c:1575 sql_help.c:1578 sql_help.c:1601 sql_help.c:1603 -#: sql_help.c:1605 sql_help.c:1607 sql_help.c:1610 sql_help.c:1612 -#: sql_help.c:1615 sql_help.c:1618 sql_help.c:1669 sql_help.c:1712 -#: sql_help.c:1715 sql_help.c:1717 sql_help.c:1719 sql_help.c:1722 -#: sql_help.c:1724 sql_help.c:1726 sql_help.c:1729 sql_help.c:1779 -#: sql_help.c:1795 sql_help.c:2028 sql_help.c:2097 sql_help.c:2116 -#: sql_help.c:2129 sql_help.c:2187 sql_help.c:2195 sql_help.c:2205 -#: sql_help.c:2233 sql_help.c:2266 sql_help.c:2284 sql_help.c:2312 -#: sql_help.c:2423 sql_help.c:2469 sql_help.c:2494 sql_help.c:2517 -#: sql_help.c:2521 sql_help.c:2555 sql_help.c:2575 sql_help.c:2597 -#: sql_help.c:2611 sql_help.c:2632 sql_help.c:2661 sql_help.c:2694 -#: sql_help.c:2717 sql_help.c:2764 sql_help.c:3062 sql_help.c:3075 -#: sql_help.c:3092 sql_help.c:3108 sql_help.c:3148 sql_help.c:3202 -#: sql_help.c:3206 sql_help.c:3208 sql_help.c:3215 sql_help.c:3234 -#: sql_help.c:3261 sql_help.c:3296 sql_help.c:3308 sql_help.c:3317 -#: sql_help.c:3361 sql_help.c:3375 sql_help.c:3403 sql_help.c:3411 -#: sql_help.c:3423 sql_help.c:3433 sql_help.c:3441 sql_help.c:3449 -#: sql_help.c:3457 sql_help.c:3465 sql_help.c:3474 sql_help.c:3485 -#: sql_help.c:3493 sql_help.c:3501 sql_help.c:3509 sql_help.c:3517 -#: sql_help.c:3527 sql_help.c:3536 sql_help.c:3545 sql_help.c:3553 -#: sql_help.c:3563 sql_help.c:3574 sql_help.c:3582 sql_help.c:3591 -#: sql_help.c:3602 sql_help.c:3611 sql_help.c:3619 sql_help.c:3627 -#: sql_help.c:3635 sql_help.c:3643 sql_help.c:3651 sql_help.c:3659 -#: sql_help.c:3667 sql_help.c:3675 sql_help.c:3683 sql_help.c:3691 -#: sql_help.c:3708 sql_help.c:3717 sql_help.c:3725 sql_help.c:3742 -#: sql_help.c:3757 sql_help.c:4070 sql_help.c:4191 sql_help.c:4220 -#: sql_help.c:4236 sql_help.c:4238 sql_help.c:4742 sql_help.c:4790 -#: sql_help.c:4949 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:259 +#: sql_help.c:261 sql_help.c:262 sql_help.c:264 sql_help.c:266 sql_help.c:269 +#: sql_help.c:271 sql_help.c:273 sql_help.c:275 sql_help.c:290 sql_help.c:291 +#: sql_help.c:292 sql_help.c:294 sql_help.c:343 sql_help.c:345 sql_help.c:347 +#: sql_help.c:349 sql_help.c:418 sql_help.c:423 sql_help.c:425 sql_help.c:467 +#: sql_help.c:469 sql_help.c:472 sql_help.c:474 sql_help.c:543 sql_help.c:548 +#: sql_help.c:553 sql_help.c:558 sql_help.c:563 sql_help.c:617 sql_help.c:619 +#: sql_help.c:621 sql_help.c:623 sql_help.c:625 sql_help.c:628 sql_help.c:630 +#: sql_help.c:633 sql_help.c:644 sql_help.c:646 sql_help.c:690 sql_help.c:692 +#: sql_help.c:694 sql_help.c:697 sql_help.c:699 sql_help.c:701 sql_help.c:742 +#: sql_help.c:746 sql_help.c:750 sql_help.c:771 sql_help.c:774 sql_help.c:777 +#: sql_help.c:806 sql_help.c:818 sql_help.c:826 sql_help.c:829 sql_help.c:832 +#: sql_help.c:847 sql_help.c:850 sql_help.c:879 sql_help.c:884 sql_help.c:889 +#: sql_help.c:894 sql_help.c:899 sql_help.c:926 sql_help.c:928 sql_help.c:930 +#: sql_help.c:932 sql_help.c:935 sql_help.c:937 sql_help.c:984 sql_help.c:1029 +#: sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 sql_help.c:1049 +#: sql_help.c:1068 sql_help.c:1079 sql_help.c:1081 sql_help.c:1102 +#: sql_help.c:1112 sql_help.c:1113 sql_help.c:1115 sql_help.c:1117 +#: sql_help.c:1129 sql_help.c:1133 sql_help.c:1135 sql_help.c:1147 +#: sql_help.c:1149 sql_help.c:1151 sql_help.c:1153 sql_help.c:1172 +#: sql_help.c:1174 sql_help.c:1178 sql_help.c:1182 sql_help.c:1186 +#: sql_help.c:1189 sql_help.c:1190 sql_help.c:1191 sql_help.c:1194 +#: sql_help.c:1197 sql_help.c:1199 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1351 sql_help.c:1353 +#: sql_help.c:1356 sql_help.c:1359 sql_help.c:1487 sql_help.c:1489 +#: sql_help.c:1491 sql_help.c:1494 sql_help.c:1515 sql_help.c:1518 +#: sql_help.c:1521 sql_help.c:1524 sql_help.c:1528 sql_help.c:1530 +#: sql_help.c:1532 sql_help.c:1534 sql_help.c:1548 sql_help.c:1551 +#: sql_help.c:1553 sql_help.c:1555 sql_help.c:1565 sql_help.c:1567 +#: sql_help.c:1577 sql_help.c:1579 sql_help.c:1589 sql_help.c:1592 +#: sql_help.c:1615 sql_help.c:1617 sql_help.c:1619 sql_help.c:1621 +#: sql_help.c:1624 sql_help.c:1626 sql_help.c:1629 sql_help.c:1632 +#: sql_help.c:1683 sql_help.c:1726 sql_help.c:1729 sql_help.c:1731 +#: sql_help.c:1733 sql_help.c:1736 sql_help.c:1738 sql_help.c:1740 +#: sql_help.c:1743 sql_help.c:1793 sql_help.c:1809 sql_help.c:2044 +#: sql_help.c:2113 sql_help.c:2132 sql_help.c:2145 sql_help.c:2203 +#: sql_help.c:2211 sql_help.c:2221 sql_help.c:2249 sql_help.c:2282 +#: sql_help.c:2300 sql_help.c:2328 sql_help.c:2451 sql_help.c:2497 +#: sql_help.c:2522 sql_help.c:2545 sql_help.c:2549 sql_help.c:2583 +#: sql_help.c:2603 sql_help.c:2625 sql_help.c:2639 sql_help.c:2660 +#: sql_help.c:2689 sql_help.c:2722 sql_help.c:2745 sql_help.c:2794 +#: sql_help.c:3098 sql_help.c:3111 sql_help.c:3128 sql_help.c:3144 +#: sql_help.c:3184 sql_help.c:3238 sql_help.c:3242 sql_help.c:3244 +#: sql_help.c:3251 sql_help.c:3270 sql_help.c:3297 sql_help.c:3332 +#: sql_help.c:3344 sql_help.c:3353 sql_help.c:3399 sql_help.c:3413 +#: sql_help.c:3441 sql_help.c:3449 sql_help.c:3461 sql_help.c:3471 +#: sql_help.c:3479 sql_help.c:3487 sql_help.c:3495 sql_help.c:3503 +#: sql_help.c:3512 sql_help.c:3523 sql_help.c:3531 sql_help.c:3539 +#: sql_help.c:3547 sql_help.c:3555 sql_help.c:3565 sql_help.c:3574 +#: sql_help.c:3583 sql_help.c:3591 sql_help.c:3601 sql_help.c:3612 +#: sql_help.c:3620 sql_help.c:3629 sql_help.c:3640 sql_help.c:3649 +#: sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 sql_help.c:3681 +#: sql_help.c:3689 sql_help.c:3697 sql_help.c:3705 sql_help.c:3713 +#: sql_help.c:3721 sql_help.c:3729 sql_help.c:3746 sql_help.c:3755 +#: sql_help.c:3763 sql_help.c:3780 sql_help.c:3795 sql_help.c:4110 +#: sql_help.c:4233 sql_help.c:4262 sql_help.c:4278 sql_help.c:4280 +#: sql_help.c:4784 sql_help.c:4832 sql_help.c:4991 msgid "name" msgstr "名前" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:332 sql_help.c:1872 -#: sql_help.c:3376 sql_help.c:4509 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:354 sql_help.c:1886 +#: sql_help.c:3414 sql_help.c:4551 msgid "aggregate_signature" msgstr "集約関数のシグニチャー" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:255 -#: sql_help.c:273 sql_help.c:404 sql_help.c:451 sql_help.c:530 sql_help.c:578 -#: sql_help.c:596 sql_help.c:623 sql_help.c:676 sql_help.c:751 sql_help.c:806 -#: sql_help.c:827 sql_help.c:866 sql_help.c:916 sql_help.c:963 sql_help.c:1016 -#: sql_help.c:1048 sql_help.c:1058 sql_help.c:1093 sql_help.c:1113 -#: sql_help.c:1127 sql_help.c:1177 sql_help.c:1332 sql_help.c:1474 -#: sql_help.c:1517 sql_help.c:1538 sql_help.c:1552 sql_help.c:1564 -#: sql_help.c:1577 sql_help.c:1604 sql_help.c:1670 sql_help.c:1723 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:274 +#: sql_help.c:295 sql_help.c:426 sql_help.c:473 sql_help.c:552 sql_help.c:600 +#: sql_help.c:618 sql_help.c:645 sql_help.c:698 sql_help.c:773 sql_help.c:828 +#: sql_help.c:849 sql_help.c:888 sql_help.c:938 sql_help.c:985 sql_help.c:1038 +#: sql_help.c:1070 sql_help.c:1080 sql_help.c:1116 sql_help.c:1136 +#: sql_help.c:1150 sql_help.c:1200 sql_help.c:1350 sql_help.c:1488 +#: sql_help.c:1531 sql_help.c:1552 sql_help.c:1566 sql_help.c:1578 +#: sql_help.c:1591 sql_help.c:1618 sql_help.c:1684 sql_help.c:1737 msgid "new_name" msgstr "新しい名前" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:487 sql_help.c:535 sql_help.c:625 -#: sql_help.c:634 sql_help.c:699 sql_help.c:723 sql_help.c:754 sql_help.c:809 -#: sql_help.c:871 sql_help.c:914 sql_help.c:1021 sql_help.c:1060 -#: sql_help.c:1091 sql_help.c:1111 sql_help.c:1125 sql_help.c:1175 -#: sql_help.c:1408 sql_help.c:1476 sql_help.c:1519 sql_help.c:1540 -#: sql_help.c:1602 sql_help.c:1718 sql_help.c:3048 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:272 +#: sql_help.c:293 sql_help.c:424 sql_help.c:509 sql_help.c:557 sql_help.c:647 +#: sql_help.c:656 sql_help.c:721 sql_help.c:745 sql_help.c:776 sql_help.c:831 +#: sql_help.c:893 sql_help.c:936 sql_help.c:1043 sql_help.c:1082 +#: sql_help.c:1114 sql_help.c:1134 sql_help.c:1148 sql_help.c:1198 +#: sql_help.c:1417 sql_help.c:1490 sql_help.c:1533 sql_help.c:1554 +#: sql_help.c:1616 sql_help.c:1732 sql_help.c:3084 msgid "new_owner" msgstr "新しい所有者" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:257 sql_help.c:324 -#: sql_help.c:453 sql_help.c:540 sql_help.c:678 sql_help.c:727 sql_help.c:757 -#: sql_help.c:812 sql_help.c:876 sql_help.c:1026 sql_help.c:1095 -#: sql_help.c:1129 sql_help.c:1334 sql_help.c:1521 sql_help.c:1542 -#: sql_help.c:1554 sql_help.c:1566 sql_help.c:1606 sql_help.c:1725 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:276 sql_help.c:346 +#: sql_help.c:475 sql_help.c:562 sql_help.c:700 sql_help.c:749 sql_help.c:779 +#: sql_help.c:834 sql_help.c:898 sql_help.c:1048 sql_help.c:1118 +#: sql_help.c:1152 sql_help.c:1352 sql_help.c:1535 sql_help.c:1556 +#: sql_help.c:1568 sql_help.c:1580 sql_help.c:1620 sql_help.c:1739 msgid "new_schema" msgstr "新しいスキーマ" -#: sql_help.c:44 sql_help.c:1936 sql_help.c:3377 sql_help.c:4538 +#: sql_help.c:44 sql_help.c:1950 sql_help.c:3415 sql_help.c:4580 msgid "where aggregate_signature is:" msgstr "集約関数のシグニチャーには以下のものがあります:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:858 -#: sql_help.c:863 sql_help.c:868 sql_help.c:873 sql_help.c:878 sql_help.c:1008 -#: sql_help.c:1013 sql_help.c:1018 sql_help.c:1023 sql_help.c:1028 -#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 -#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2098 sql_help.c:2117 -#: sql_help.c:2120 sql_help.c:2424 sql_help.c:2633 sql_help.c:3378 -#: sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 sql_help.c:3564 -#: sql_help.c:3592 sql_help.c:3945 sql_help.c:4408 sql_help.c:4515 -#: sql_help.c:4522 sql_help.c:4528 sql_help.c:4539 sql_help.c:4542 -#: sql_help.c:4545 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:364 sql_help.c:377 +#: sql_help.c:381 sql_help.c:397 sql_help.c:400 sql_help.c:403 sql_help.c:544 +#: sql_help.c:549 sql_help.c:554 sql_help.c:559 sql_help.c:564 sql_help.c:880 +#: sql_help.c:885 sql_help.c:890 sql_help.c:895 sql_help.c:900 sql_help.c:1030 +#: sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 sql_help.c:1050 +#: sql_help.c:1904 sql_help.c:1921 sql_help.c:1927 sql_help.c:1951 +#: sql_help.c:1954 sql_help.c:1957 sql_help.c:2114 sql_help.c:2133 +#: sql_help.c:2136 sql_help.c:2452 sql_help.c:2661 sql_help.c:3416 +#: sql_help.c:3419 sql_help.c:3422 sql_help.c:3513 sql_help.c:3602 +#: sql_help.c:3630 sql_help.c:3983 sql_help.c:4450 sql_help.c:4557 +#: sql_help.c:4564 sql_help.c:4570 sql_help.c:4581 sql_help.c:4584 +#: sql_help.c:4587 msgid "argmode" msgstr "引数のモード" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:343 sql_help.c:356 -#: sql_help.c:360 sql_help.c:376 sql_help.c:379 sql_help.c:382 sql_help.c:523 -#: sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:543 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:874 sql_help.c:879 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 -#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2099 sql_help.c:2118 -#: sql_help.c:2121 sql_help.c:2425 sql_help.c:2634 sql_help.c:3379 -#: sql_help.c:3382 sql_help.c:3385 sql_help.c:3476 sql_help.c:3565 -#: sql_help.c:3593 sql_help.c:4516 sql_help.c:4523 sql_help.c:4529 -#: sql_help.c:4540 sql_help.c:4543 sql_help.c:4546 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:365 sql_help.c:378 +#: sql_help.c:382 sql_help.c:398 sql_help.c:401 sql_help.c:404 sql_help.c:545 +#: sql_help.c:550 sql_help.c:555 sql_help.c:560 sql_help.c:565 sql_help.c:881 +#: sql_help.c:886 sql_help.c:891 sql_help.c:896 sql_help.c:901 sql_help.c:1031 +#: sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 sql_help.c:1051 +#: sql_help.c:1905 sql_help.c:1922 sql_help.c:1928 sql_help.c:1952 +#: sql_help.c:1955 sql_help.c:1958 sql_help.c:2115 sql_help.c:2134 +#: sql_help.c:2137 sql_help.c:2453 sql_help.c:2662 sql_help.c:3417 +#: sql_help.c:3420 sql_help.c:3423 sql_help.c:3514 sql_help.c:3603 +#: sql_help.c:3631 sql_help.c:4558 sql_help.c:4565 sql_help.c:4571 +#: sql_help.c:4582 sql_help.c:4585 sql_help.c:4588 msgid "argname" msgstr "引数の名前" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:344 sql_help.c:357 -#: sql_help.c:361 sql_help.c:377 sql_help.c:380 sql_help.c:383 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:544 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 -#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2426 sql_help.c:2635 -#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3386 sql_help.c:3477 -#: sql_help.c:3566 sql_help.c:3594 sql_help.c:4517 sql_help.c:4524 -#: sql_help.c:4530 sql_help.c:4541 sql_help.c:4544 sql_help.c:4547 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:366 sql_help.c:379 +#: sql_help.c:383 sql_help.c:399 sql_help.c:402 sql_help.c:405 sql_help.c:546 +#: sql_help.c:551 sql_help.c:556 sql_help.c:561 sql_help.c:566 sql_help.c:882 +#: sql_help.c:887 sql_help.c:892 sql_help.c:897 sql_help.c:902 sql_help.c:1032 +#: sql_help.c:1037 sql_help.c:1042 sql_help.c:1047 sql_help.c:1052 +#: sql_help.c:1906 sql_help.c:1923 sql_help.c:1929 sql_help.c:1953 +#: sql_help.c:1956 sql_help.c:1959 sql_help.c:2454 sql_help.c:2663 +#: sql_help.c:3418 sql_help.c:3421 sql_help.c:3424 sql_help.c:3515 +#: sql_help.c:3604 sql_help.c:3632 sql_help.c:4559 sql_help.c:4566 +#: sql_help.c:4572 sql_help.c:4583 sql_help.c:4586 sql_help.c:4589 msgid "argtype" msgstr "引数の型" -#: sql_help.c:114 sql_help.c:399 sql_help.c:476 sql_help.c:488 sql_help.c:957 -#: sql_help.c:1108 sql_help.c:1535 sql_help.c:1664 sql_help.c:1696 -#: sql_help.c:1748 sql_help.c:1807 sql_help.c:1996 sql_help.c:2003 -#: sql_help.c:2315 sql_help.c:2365 sql_help.c:2372 sql_help.c:2381 -#: sql_help.c:2470 sql_help.c:2695 sql_help.c:2786 sql_help.c:3077 -#: sql_help.c:3262 sql_help.c:3284 sql_help.c:3424 sql_help.c:3781 -#: sql_help.c:3989 sql_help.c:4235 sql_help.c:4237 sql_help.c:5015 +#: sql_help.c:114 sql_help.c:421 sql_help.c:498 sql_help.c:510 sql_help.c:979 +#: sql_help.c:1131 sql_help.c:1549 sql_help.c:1678 sql_help.c:1710 +#: sql_help.c:1762 sql_help.c:1821 sql_help.c:2011 sql_help.c:2018 +#: sql_help.c:2331 sql_help.c:2389 sql_help.c:2398 sql_help.c:2407 +#: sql_help.c:2498 sql_help.c:2723 sql_help.c:2816 sql_help.c:3113 +#: sql_help.c:3298 sql_help.c:3320 sql_help.c:3462 sql_help.c:3819 +#: sql_help.c:4027 sql_help.c:4277 sql_help.c:4279 sql_help.c:5059 msgid "option" msgstr "オプション" -#: sql_help.c:115 sql_help.c:958 sql_help.c:1665 sql_help.c:2471 -#: sql_help.c:2696 sql_help.c:3263 sql_help.c:3425 +#: sql_help.c:115 sql_help.c:980 sql_help.c:1679 sql_help.c:2499 +#: sql_help.c:2724 sql_help.c:3299 sql_help.c:3463 msgid "where option can be:" msgstr "オプションには以下のものがあります:" -#: sql_help.c:116 sql_help.c:2247 +#: sql_help.c:116 sql_help.c:2263 msgid "allowconn" msgstr "接続の可否(真偽値)" -#: sql_help.c:117 sql_help.c:959 sql_help.c:1666 sql_help.c:2248 -#: sql_help.c:2472 sql_help.c:2697 sql_help.c:3264 +#: sql_help.c:117 sql_help.c:981 sql_help.c:1680 sql_help.c:2264 +#: sql_help.c:2500 sql_help.c:2725 sql_help.c:3300 msgid "connlimit" msgstr "最大同時接続数" -#: sql_help.c:118 sql_help.c:2249 +#: sql_help.c:118 sql_help.c:2265 msgid "istemplate" msgstr "テンプレートかどうか(真偽値)" -#: sql_help.c:124 sql_help.c:613 sql_help.c:681 sql_help.c:695 sql_help.c:1337 -#: sql_help.c:1401 sql_help.c:4241 +#: sql_help.c:124 sql_help.c:635 sql_help.c:703 sql_help.c:717 sql_help.c:1355 +#: sql_help.c:1410 sql_help.c:4283 msgid "new_tablespace" msgstr "新しいテーブル空間名" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:550 sql_help.c:552 -#: sql_help.c:553 sql_help.c:883 sql_help.c:885 sql_help.c:886 sql_help.c:966 -#: sql_help.c:970 sql_help.c:973 sql_help.c:1035 sql_help.c:1037 -#: sql_help.c:1038 sql_help.c:1188 sql_help.c:1190 sql_help.c:1673 -#: sql_help.c:1677 sql_help.c:1680 sql_help.c:2436 sql_help.c:2639 -#: sql_help.c:3957 sql_help.c:4259 sql_help.c:4420 sql_help.c:4730 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:572 sql_help.c:574 +#: sql_help.c:575 sql_help.c:905 sql_help.c:907 sql_help.c:908 sql_help.c:988 +#: sql_help.c:992 sql_help.c:995 sql_help.c:1057 sql_help.c:1059 +#: sql_help.c:1060 sql_help.c:1211 sql_help.c:1213 sql_help.c:1687 +#: sql_help.c:1691 sql_help.c:1694 sql_help.c:2464 sql_help.c:2667 +#: sql_help.c:3995 sql_help.c:4301 sql_help.c:4462 sql_help.c:4772 msgid "configuration_parameter" msgstr "設定パラメータ" -#: sql_help.c:128 sql_help.c:400 sql_help.c:471 sql_help.c:477 sql_help.c:489 -#: sql_help.c:551 sql_help.c:605 sql_help.c:687 sql_help.c:697 sql_help.c:884 -#: sql_help.c:912 sql_help.c:967 sql_help.c:1036 sql_help.c:1109 -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:1165 -#: sql_help.c:1170 sql_help.c:1173 sql_help.c:1189 sql_help.c:1380 -#: sql_help.c:1403 sql_help.c:1451 sql_help.c:1459 sql_help.c:1479 -#: sql_help.c:1536 sql_help.c:1620 sql_help.c:1674 sql_help.c:1697 -#: sql_help.c:2316 sql_help.c:2366 sql_help.c:2373 sql_help.c:2382 -#: sql_help.c:2437 sql_help.c:2438 sql_help.c:2502 sql_help.c:2505 -#: sql_help.c:2539 sql_help.c:2640 sql_help.c:2641 sql_help.c:2664 -#: sql_help.c:2787 sql_help.c:2826 sql_help.c:2936 sql_help.c:2949 -#: sql_help.c:2963 sql_help.c:3004 sql_help.c:3012 sql_help.c:3034 -#: sql_help.c:3051 sql_help.c:3078 sql_help.c:3285 sql_help.c:3990 -#: sql_help.c:4731 sql_help.c:4732 sql_help.c:4733 sql_help.c:4734 +#: sql_help.c:128 sql_help.c:422 sql_help.c:493 sql_help.c:499 sql_help.c:511 +#: sql_help.c:573 sql_help.c:627 sql_help.c:709 sql_help.c:719 sql_help.c:906 +#: sql_help.c:934 sql_help.c:989 sql_help.c:1058 sql_help.c:1132 +#: sql_help.c:1177 sql_help.c:1181 sql_help.c:1185 sql_help.c:1188 +#: sql_help.c:1193 sql_help.c:1196 sql_help.c:1212 sql_help.c:1388 +#: sql_help.c:1412 sql_help.c:1465 sql_help.c:1473 sql_help.c:1493 +#: sql_help.c:1550 sql_help.c:1634 sql_help.c:1688 sql_help.c:1711 +#: sql_help.c:2332 sql_help.c:2390 sql_help.c:2399 sql_help.c:2408 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2530 sql_help.c:2533 +#: sql_help.c:2567 sql_help.c:2668 sql_help.c:2669 sql_help.c:2692 +#: sql_help.c:2817 sql_help.c:2856 sql_help.c:2967 sql_help.c:2980 +#: sql_help.c:2994 sql_help.c:3040 sql_help.c:3048 sql_help.c:3070 +#: sql_help.c:3087 sql_help.c:3114 sql_help.c:3321 sql_help.c:4028 +#: sql_help.c:4773 sql_help.c:4774 sql_help.c:4775 sql_help.c:4776 msgid "value" msgstr "値" -#: sql_help.c:202 +#: sql_help.c:214 msgid "target_role" msgstr "対象のロール" -#: sql_help.c:203 sql_help.c:921 sql_help.c:2300 sql_help.c:2669 -#: sql_help.c:2742 sql_help.c:2747 sql_help.c:3920 sql_help.c:3929 -#: sql_help.c:3948 sql_help.c:3960 sql_help.c:4383 sql_help.c:4392 -#: sql_help.c:4411 sql_help.c:4423 +#: sql_help.c:215 sql_help.c:943 sql_help.c:2316 sql_help.c:2697 +#: sql_help.c:2770 sql_help.c:2775 sql_help.c:3958 sql_help.c:3967 +#: sql_help.c:3986 sql_help.c:3998 sql_help.c:4425 sql_help.c:4434 +#: sql_help.c:4453 sql_help.c:4465 msgid "schema_name" msgstr "スキーマ名" -#: sql_help.c:204 +#: sql_help.c:216 msgid "abbreviated_grant_or_revoke" msgstr "GRANT/REVOKEの省略形" -#: sql_help.c:205 +#: sql_help.c:217 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "GRANT/REVOKEの省略形は以下のいずれかです:" -#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 -#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:576 sql_help.c:612 sql_help.c:680 sql_help.c:830 sql_help.c:977 -#: sql_help.c:1336 sql_help.c:1684 sql_help.c:2475 sql_help.c:2476 -#: sql_help.c:2477 sql_help.c:2478 sql_help.c:2479 sql_help.c:2613 -#: sql_help.c:2700 sql_help.c:2701 sql_help.c:2702 sql_help.c:3267 -#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3270 sql_help.c:3271 -#: sql_help.c:3969 sql_help.c:3973 sql_help.c:4432 sql_help.c:4436 -#: sql_help.c:4752 +#: sql_help.c:218 sql_help.c:219 sql_help.c:220 sql_help.c:221 sql_help.c:222 +#: sql_help.c:223 sql_help.c:224 sql_help.c:225 sql_help.c:226 sql_help.c:227 +#: sql_help.c:228 sql_help.c:229 sql_help.c:598 sql_help.c:634 sql_help.c:702 +#: sql_help.c:852 sql_help.c:999 sql_help.c:1354 sql_help.c:1698 +#: sql_help.c:2503 sql_help.c:2504 sql_help.c:2505 sql_help.c:2506 +#: sql_help.c:2507 sql_help.c:2641 sql_help.c:2728 sql_help.c:2729 +#: sql_help.c:2730 sql_help.c:3303 sql_help.c:3304 sql_help.c:3305 +#: sql_help.c:3306 sql_help.c:3307 sql_help.c:4007 sql_help.c:4011 +#: sql_help.c:4474 sql_help.c:4478 sql_help.c:4794 msgid "role_name" msgstr "ロール名" -#: sql_help.c:241 sql_help.c:464 sql_help.c:920 sql_help.c:1362 sql_help.c:1364 -#: sql_help.c:1368 sql_help.c:1418 sql_help.c:1430 sql_help.c:1455 -#: sql_help.c:1714 sql_help.c:2269 sql_help.c:2273 sql_help.c:2385 -#: sql_help.c:2390 sql_help.c:2498 sql_help.c:2668 sql_help.c:2803 -#: sql_help.c:2808 sql_help.c:2810 sql_help.c:2931 sql_help.c:2944 -#: sql_help.c:2958 sql_help.c:2967 sql_help.c:2979 sql_help.c:3008 -#: sql_help.c:4021 sql_help.c:4036 sql_help.c:4038 sql_help.c:4134 -#: sql_help.c:4137 sql_help.c:4139 sql_help.c:4602 sql_help.c:4603 -#: sql_help.c:4612 sql_help.c:4659 sql_help.c:4660 sql_help.c:4661 -#: sql_help.c:4662 sql_help.c:4663 sql_help.c:4664 sql_help.c:4705 -#: sql_help.c:4706 sql_help.c:4711 sql_help.c:4716 sql_help.c:4860 -#: sql_help.c:4861 sql_help.c:4870 sql_help.c:4917 sql_help.c:4918 -#: sql_help.c:4919 sql_help.c:4920 sql_help.c:4921 sql_help.c:4922 -#: sql_help.c:4977 sql_help.c:4979 sql_help.c:5045 sql_help.c:5105 -#: sql_help.c:5106 sql_help.c:5115 sql_help.c:5162 sql_help.c:5163 -#: sql_help.c:5164 sql_help.c:5165 sql_help.c:5166 sql_help.c:5167 +#: sql_help.c:260 sql_help.c:279 sql_help.c:486 sql_help.c:942 sql_help.c:1370 +#: sql_help.c:1372 sql_help.c:1376 sql_help.c:1427 sql_help.c:1439 +#: sql_help.c:1469 sql_help.c:1728 sql_help.c:2285 sql_help.c:2289 +#: sql_help.c:2411 sql_help.c:2417 sql_help.c:2526 sql_help.c:2696 +#: sql_help.c:2833 sql_help.c:2838 sql_help.c:2840 sql_help.c:2962 +#: sql_help.c:2975 sql_help.c:2989 sql_help.c:2998 sql_help.c:3010 +#: sql_help.c:3044 sql_help.c:4060 sql_help.c:4076 sql_help.c:4078 +#: sql_help.c:4176 sql_help.c:4179 sql_help.c:4181 sql_help.c:4644 +#: sql_help.c:4645 sql_help.c:4654 sql_help.c:4701 sql_help.c:4702 +#: sql_help.c:4703 sql_help.c:4704 sql_help.c:4705 sql_help.c:4706 +#: sql_help.c:4747 sql_help.c:4748 sql_help.c:4753 sql_help.c:4758 +#: sql_help.c:4902 sql_help.c:4903 sql_help.c:4912 sql_help.c:4959 +#: sql_help.c:4960 sql_help.c:4961 sql_help.c:4962 sql_help.c:4963 +#: sql_help.c:4964 sql_help.c:5020 sql_help.c:5022 sql_help.c:5089 +#: sql_help.c:5149 sql_help.c:5150 sql_help.c:5159 sql_help.c:5206 +#: sql_help.c:5207 sql_help.c:5208 sql_help.c:5209 sql_help.c:5210 +#: sql_help.c:5211 msgid "expression" msgstr "評価式" -#: sql_help.c:244 sql_help.c:2270 +#: sql_help.c:263 sql_help.c:2286 msgid "domain_constraint" msgstr "ドメイン制約" -#: sql_help.c:246 sql_help.c:248 sql_help.c:251 sql_help.c:479 sql_help.c:480 -#: sql_help.c:1329 sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 -#: sql_help.c:1417 sql_help.c:1429 sql_help.c:1446 sql_help.c:1878 -#: sql_help.c:1880 sql_help.c:2272 sql_help.c:2384 sql_help.c:2389 -#: sql_help.c:2966 sql_help.c:2978 sql_help.c:4033 +#: sql_help.c:265 sql_help.c:267 sql_help.c:270 sql_help.c:278 sql_help.c:501 +#: sql_help.c:502 sql_help.c:1347 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:1398 sql_help.c:1399 sql_help.c:1426 sql_help.c:1438 +#: sql_help.c:1460 sql_help.c:1892 sql_help.c:1894 sql_help.c:2288 +#: sql_help.c:2410 sql_help.c:2415 sql_help.c:2997 sql_help.c:3009 +#: sql_help.c:4073 msgid "constraint_name" msgstr "制約名" -#: sql_help.c:249 sql_help.c:1330 +#: sql_help.c:268 sql_help.c:1348 msgid "new_constraint_name" msgstr "新しい制約名" -#: sql_help.c:322 sql_help.c:1107 +#: sql_help.c:277 sql_help.c:2287 +msgid "where domain_constraint is:" +msgstr "ドメイン制約は以下の通りです:" + +#: sql_help.c:344 sql_help.c:1130 msgid "new_version" msgstr "新しいバージョン" -#: sql_help.c:326 sql_help.c:328 +#: sql_help.c:348 sql_help.c:350 msgid "member_object" msgstr "メンバーオブジェクト" -#: sql_help.c:329 +#: sql_help.c:351 msgid "where member_object is:" msgstr "メンバーオブジェクトは以下の通りです:" -#: sql_help.c:330 sql_help.c:335 sql_help.c:336 sql_help.c:337 sql_help.c:338 -#: sql_help.c:339 sql_help.c:340 sql_help.c:345 sql_help.c:349 sql_help.c:351 -#: sql_help.c:353 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:365 -#: sql_help.c:366 sql_help.c:367 sql_help.c:368 sql_help.c:369 sql_help.c:372 -#: sql_help.c:373 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 -#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 -#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 -#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 -#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 -#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4505 sql_help.c:4510 -#: sql_help.c:4511 sql_help.c:4512 sql_help.c:4513 sql_help.c:4519 -#: sql_help.c:4520 sql_help.c:4525 sql_help.c:4526 sql_help.c:4531 -#: sql_help.c:4532 sql_help.c:4533 sql_help.c:4534 sql_help.c:4535 -#: sql_help.c:4536 +#: sql_help.c:352 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:367 sql_help.c:371 sql_help.c:373 +#: sql_help.c:375 sql_help.c:384 sql_help.c:385 sql_help.c:386 sql_help.c:387 +#: sql_help.c:388 sql_help.c:389 sql_help.c:390 sql_help.c:391 sql_help.c:394 +#: sql_help.c:395 sql_help.c:1884 sql_help.c:1889 sql_help.c:1896 +#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 +#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1907 sql_help.c:1909 +#: sql_help.c:1913 sql_help.c:1915 sql_help.c:1919 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1932 sql_help.c:1933 sql_help.c:1934 +#: sql_help.c:1935 sql_help.c:1936 sql_help.c:1937 sql_help.c:1938 +#: sql_help.c:1939 sql_help.c:1940 sql_help.c:1941 sql_help.c:1942 +#: sql_help.c:1947 sql_help.c:1948 sql_help.c:4547 sql_help.c:4552 +#: sql_help.c:4553 sql_help.c:4554 sql_help.c:4555 sql_help.c:4561 +#: sql_help.c:4562 sql_help.c:4567 sql_help.c:4568 sql_help.c:4573 +#: sql_help.c:4574 sql_help.c:4575 sql_help.c:4576 sql_help.c:4577 +#: sql_help.c:4578 msgid "object_name" msgstr "オブジェクト名" -#: sql_help.c:331 sql_help.c:1871 sql_help.c:4508 +#: sql_help.c:353 sql_help.c:1885 sql_help.c:4550 msgid "aggregate_name" msgstr "集約関数名" -#: sql_help.c:333 sql_help.c:1873 sql_help.c:2163 sql_help.c:2167 -#: sql_help.c:2169 sql_help.c:3394 +#: sql_help.c:355 sql_help.c:1887 sql_help.c:2179 sql_help.c:2183 +#: sql_help.c:2185 sql_help.c:3432 msgid "source_type" msgstr "変換前の型" -#: sql_help.c:334 sql_help.c:1874 sql_help.c:2164 sql_help.c:2168 -#: sql_help.c:2170 sql_help.c:3395 +#: sql_help.c:356 sql_help.c:1888 sql_help.c:2180 sql_help.c:2184 +#: sql_help.c:2186 sql_help.c:3433 msgid "target_type" msgstr "変換後の型" -#: sql_help.c:341 sql_help.c:794 sql_help.c:1889 sql_help.c:2165 -#: sql_help.c:2208 sql_help.c:2288 sql_help.c:2556 sql_help.c:2587 -#: sql_help.c:3154 sql_help.c:4407 sql_help.c:4514 sql_help.c:4631 -#: sql_help.c:4635 sql_help.c:4639 sql_help.c:4642 sql_help.c:4889 -#: sql_help.c:4893 sql_help.c:4897 sql_help.c:4900 sql_help.c:5134 -#: sql_help.c:5138 sql_help.c:5142 sql_help.c:5145 +#: sql_help.c:363 sql_help.c:816 sql_help.c:1903 sql_help.c:2181 +#: sql_help.c:2224 sql_help.c:2304 sql_help.c:2584 sql_help.c:2615 +#: sql_help.c:3190 sql_help.c:4449 sql_help.c:4556 sql_help.c:4673 +#: sql_help.c:4677 sql_help.c:4681 sql_help.c:4684 sql_help.c:4931 +#: sql_help.c:4935 sql_help.c:4939 sql_help.c:4942 sql_help.c:5178 +#: sql_help.c:5182 sql_help.c:5186 sql_help.c:5189 msgid "function_name" msgstr "関数名" -#: sql_help.c:346 sql_help.c:787 sql_help.c:1896 sql_help.c:2580 +#: sql_help.c:368 sql_help.c:809 sql_help.c:1910 sql_help.c:2608 msgid "operator_name" msgstr "演算子名" -#: sql_help.c:347 sql_help.c:721 sql_help.c:725 sql_help.c:729 sql_help.c:1897 -#: sql_help.c:2557 sql_help.c:3518 +#: sql_help.c:369 sql_help.c:743 sql_help.c:747 sql_help.c:751 sql_help.c:1911 +#: sql_help.c:2585 sql_help.c:3556 msgid "left_type" msgstr "左辺の型" -#: sql_help.c:348 sql_help.c:722 sql_help.c:726 sql_help.c:730 sql_help.c:1898 -#: sql_help.c:2558 sql_help.c:3519 +#: sql_help.c:370 sql_help.c:744 sql_help.c:748 sql_help.c:752 sql_help.c:1912 +#: sql_help.c:2586 sql_help.c:3557 msgid "right_type" msgstr "右辺の型" -#: sql_help.c:350 sql_help.c:352 sql_help.c:750 sql_help.c:753 sql_help.c:756 -#: sql_help.c:785 sql_help.c:797 sql_help.c:805 sql_help.c:808 sql_help.c:811 -#: sql_help.c:1435 sql_help.c:1900 sql_help.c:1902 sql_help.c:2577 -#: sql_help.c:2598 sql_help.c:2984 sql_help.c:3528 sql_help.c:3537 +#: sql_help.c:372 sql_help.c:374 sql_help.c:772 sql_help.c:775 sql_help.c:778 +#: sql_help.c:807 sql_help.c:819 sql_help.c:827 sql_help.c:830 sql_help.c:833 +#: sql_help.c:1447 sql_help.c:1914 sql_help.c:1916 sql_help.c:2605 +#: sql_help.c:2626 sql_help.c:3018 sql_help.c:3566 sql_help.c:3575 msgid "index_method" msgstr "インデックスメソッド" -#: sql_help.c:354 sql_help.c:1906 sql_help.c:4521 +#: sql_help.c:376 sql_help.c:1920 sql_help.c:4563 msgid "procedure_name" msgstr "プロシージャ名" -#: sql_help.c:358 sql_help.c:1912 sql_help.c:3944 sql_help.c:4527 +#: sql_help.c:380 sql_help.c:1926 sql_help.c:3982 sql_help.c:4569 msgid "routine_name" msgstr "ルーチン名" -#: sql_help.c:370 sql_help.c:1407 sql_help.c:1929 sql_help.c:2432 -#: sql_help.c:2638 sql_help.c:2939 sql_help.c:3121 sql_help.c:3699 -#: sql_help.c:3966 sql_help.c:4429 +#: sql_help.c:392 sql_help.c:1416 sql_help.c:1943 sql_help.c:2460 +#: sql_help.c:2666 sql_help.c:2970 sql_help.c:3157 sql_help.c:3737 +#: sql_help.c:4004 sql_help.c:4471 msgid "type_name" msgstr "型名" -#: sql_help.c:371 sql_help.c:1930 sql_help.c:2431 sql_help.c:2637 -#: sql_help.c:3122 sql_help.c:3352 sql_help.c:3700 sql_help.c:3951 -#: sql_help.c:4414 +#: sql_help.c:393 sql_help.c:1944 sql_help.c:2459 sql_help.c:2665 +#: sql_help.c:3158 sql_help.c:3390 sql_help.c:3738 sql_help.c:3989 +#: sql_help.c:4456 msgid "lang_name" msgstr "言語名" -#: sql_help.c:374 +#: sql_help.c:396 msgid "and aggregate_signature is:" msgstr "集約関数のシグニチャーは以下の通りです:" -#: sql_help.c:397 sql_help.c:2030 sql_help.c:2313 +#: sql_help.c:419 sql_help.c:2046 sql_help.c:2329 msgid "handler_function" msgstr "ハンドラー関数" -#: sql_help.c:398 sql_help.c:2314 +#: sql_help.c:420 sql_help.c:2330 msgid "validator_function" msgstr "バリデーター関数" -#: sql_help.c:446 sql_help.c:525 sql_help.c:669 sql_help.c:861 sql_help.c:1011 -#: sql_help.c:1324 sql_help.c:1611 +#: sql_help.c:468 sql_help.c:547 sql_help.c:691 sql_help.c:883 sql_help.c:1033 +#: sql_help.c:1342 sql_help.c:1625 msgid "action" msgstr "アクション" -#: sql_help.c:448 sql_help.c:455 sql_help.c:459 sql_help.c:460 sql_help.c:463 -#: sql_help.c:465 sql_help.c:466 sql_help.c:467 sql_help.c:469 sql_help.c:472 -#: sql_help.c:474 sql_help.c:475 sql_help.c:673 sql_help.c:683 sql_help.c:685 -#: sql_help.c:688 sql_help.c:690 sql_help.c:691 sql_help.c:919 sql_help.c:1088 -#: sql_help.c:1326 sql_help.c:1354 sql_help.c:1358 sql_help.c:1359 -#: sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 -#: sql_help.c:1369 sql_help.c:1370 sql_help.c:1372 sql_help.c:1375 -#: sql_help.c:1376 sql_help.c:1378 sql_help.c:1381 sql_help.c:1383 -#: sql_help.c:1384 sql_help.c:1431 sql_help.c:1433 sql_help.c:1440 -#: sql_help.c:1449 sql_help.c:1454 sql_help.c:1461 sql_help.c:1462 -#: sql_help.c:1713 sql_help.c:1716 sql_help.c:1720 sql_help.c:1756 -#: sql_help.c:1877 sql_help.c:1993 sql_help.c:1999 sql_help.c:2013 -#: sql_help.c:2014 sql_help.c:2015 sql_help.c:2363 sql_help.c:2376 -#: sql_help.c:2429 sql_help.c:2497 sql_help.c:2503 sql_help.c:2536 -#: sql_help.c:2667 sql_help.c:2772 sql_help.c:2807 sql_help.c:2809 -#: sql_help.c:2921 sql_help.c:2930 sql_help.c:2940 sql_help.c:2943 -#: sql_help.c:2953 sql_help.c:2957 sql_help.c:2980 sql_help.c:2982 -#: sql_help.c:2989 sql_help.c:3002 sql_help.c:3007 sql_help.c:3014 -#: sql_help.c:3015 sql_help.c:3031 sql_help.c:3157 sql_help.c:3297 -#: sql_help.c:3923 sql_help.c:3924 sql_help.c:4020 sql_help.c:4035 -#: sql_help.c:4037 sql_help.c:4039 sql_help.c:4133 sql_help.c:4136 -#: sql_help.c:4138 sql_help.c:4140 sql_help.c:4386 sql_help.c:4387 -#: sql_help.c:4507 sql_help.c:4668 sql_help.c:4675 sql_help.c:4677 -#: sql_help.c:4926 sql_help.c:4933 sql_help.c:4935 sql_help.c:4976 -#: sql_help.c:4978 sql_help.c:4980 sql_help.c:5033 sql_help.c:5171 -#: sql_help.c:5178 sql_help.c:5180 +#: sql_help.c:470 sql_help.c:477 sql_help.c:481 sql_help.c:482 sql_help.c:485 +#: sql_help.c:487 sql_help.c:488 sql_help.c:489 sql_help.c:491 sql_help.c:494 +#: sql_help.c:496 sql_help.c:497 sql_help.c:695 sql_help.c:705 sql_help.c:707 +#: sql_help.c:710 sql_help.c:712 sql_help.c:713 sql_help.c:941 sql_help.c:1111 +#: sql_help.c:1344 sql_help.c:1362 sql_help.c:1366 sql_help.c:1367 +#: sql_help.c:1371 sql_help.c:1373 sql_help.c:1374 sql_help.c:1375 +#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1380 sql_help.c:1383 +#: sql_help.c:1384 sql_help.c:1386 sql_help.c:1389 sql_help.c:1391 +#: sql_help.c:1392 sql_help.c:1440 sql_help.c:1441 sql_help.c:1442 +#: sql_help.c:1444 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1463 sql_help.c:1468 sql_help.c:1475 sql_help.c:1476 +#: sql_help.c:1727 sql_help.c:1730 sql_help.c:1734 sql_help.c:1770 +#: sql_help.c:1891 sql_help.c:2008 sql_help.c:2014 sql_help.c:2028 +#: sql_help.c:2029 sql_help.c:2030 sql_help.c:2387 sql_help.c:2402 +#: sql_help.c:2416 sql_help.c:2457 sql_help.c:2525 sql_help.c:2531 +#: sql_help.c:2564 sql_help.c:2695 sql_help.c:2802 sql_help.c:2837 +#: sql_help.c:2839 sql_help.c:2952 sql_help.c:2961 sql_help.c:2971 +#: sql_help.c:2974 sql_help.c:2984 sql_help.c:2988 sql_help.c:3011 +#: sql_help.c:3012 sql_help.c:3013 sql_help.c:3015 sql_help.c:3016 +#: sql_help.c:3023 sql_help.c:3024 sql_help.c:3038 sql_help.c:3043 +#: sql_help.c:3050 sql_help.c:3051 sql_help.c:3067 sql_help.c:3193 +#: sql_help.c:3333 sql_help.c:3961 sql_help.c:3962 sql_help.c:4059 +#: sql_help.c:4075 sql_help.c:4077 sql_help.c:4079 sql_help.c:4175 +#: sql_help.c:4178 sql_help.c:4180 sql_help.c:4182 sql_help.c:4428 +#: sql_help.c:4429 sql_help.c:4549 sql_help.c:4710 sql_help.c:4717 +#: sql_help.c:4719 sql_help.c:4968 sql_help.c:4975 sql_help.c:4977 +#: sql_help.c:5019 sql_help.c:5021 sql_help.c:5023 sql_help.c:5077 +#: sql_help.c:5215 sql_help.c:5222 sql_help.c:5224 msgid "column_name" msgstr "列名" -#: sql_help.c:449 sql_help.c:674 sql_help.c:1327 sql_help.c:1721 +#: sql_help.c:471 sql_help.c:696 sql_help.c:1345 sql_help.c:1735 msgid "new_column_name" msgstr "新しい列名" -#: sql_help.c:454 sql_help.c:546 sql_help.c:682 sql_help.c:882 sql_help.c:1032 -#: sql_help.c:1353 sql_help.c:1621 +#: sql_help.c:476 sql_help.c:568 sql_help.c:704 sql_help.c:904 sql_help.c:1054 +#: sql_help.c:1361 sql_help.c:1635 msgid "where action is one of:" msgstr "アクションは以下のいずれかです:" -#: sql_help.c:456 sql_help.c:461 sql_help.c:1080 sql_help.c:1355 -#: sql_help.c:1360 sql_help.c:1623 sql_help.c:1627 sql_help.c:2267 -#: sql_help.c:2364 sql_help.c:2576 sql_help.c:2765 sql_help.c:2922 -#: sql_help.c:3204 sql_help.c:4192 +#: sql_help.c:478 sql_help.c:483 sql_help.c:1103 sql_help.c:1363 +#: sql_help.c:1368 sql_help.c:1637 sql_help.c:1641 sql_help.c:2283 +#: sql_help.c:2388 sql_help.c:2604 sql_help.c:2795 sql_help.c:2953 +#: sql_help.c:3240 sql_help.c:4234 msgid "data_type" msgstr "データ型" -#: sql_help.c:457 sql_help.c:462 sql_help.c:1356 sql_help.c:1361 -#: sql_help.c:1456 sql_help.c:1624 sql_help.c:1628 sql_help.c:2268 -#: sql_help.c:2367 sql_help.c:2499 sql_help.c:2924 sql_help.c:2932 -#: sql_help.c:2945 sql_help.c:2959 sql_help.c:3009 sql_help.c:3205 -#: sql_help.c:3211 sql_help.c:4030 +#: sql_help.c:479 sql_help.c:484 sql_help.c:1364 sql_help.c:1369 +#: sql_help.c:1470 sql_help.c:1638 sql_help.c:1642 sql_help.c:2284 +#: sql_help.c:2391 sql_help.c:2527 sql_help.c:2955 sql_help.c:2963 +#: sql_help.c:2976 sql_help.c:2990 sql_help.c:3045 sql_help.c:3241 +#: sql_help.c:3247 sql_help.c:4070 msgid "collation" msgstr "照合順序" -#: sql_help.c:458 sql_help.c:1357 sql_help.c:2368 sql_help.c:2377 -#: sql_help.c:2925 sql_help.c:2941 sql_help.c:2954 +#: sql_help.c:480 sql_help.c:1365 sql_help.c:2392 sql_help.c:2403 +#: sql_help.c:2956 sql_help.c:2972 sql_help.c:2985 msgid "column_constraint" msgstr "カラム制約" -#: sql_help.c:468 sql_help.c:610 sql_help.c:684 sql_help.c:1377 sql_help.c:5027 +#: sql_help.c:490 sql_help.c:632 sql_help.c:706 sql_help.c:1385 sql_help.c:5071 msgid "integer" msgstr "整数" -#: sql_help.c:470 sql_help.c:473 sql_help.c:686 sql_help.c:689 sql_help.c:1379 -#: sql_help.c:1382 +#: sql_help.c:492 sql_help.c:495 sql_help.c:708 sql_help.c:711 sql_help.c:1387 +#: sql_help.c:1390 msgid "attribute_option" msgstr "属性オプション" -#: sql_help.c:478 sql_help.c:1386 sql_help.c:2369 sql_help.c:2378 -#: sql_help.c:2926 sql_help.c:2942 sql_help.c:2955 +#: sql_help.c:500 sql_help.c:1394 sql_help.c:2393 sql_help.c:2404 +#: sql_help.c:2957 sql_help.c:2973 sql_help.c:2986 msgid "table_constraint" msgstr "テーブル制約" -#: sql_help.c:481 sql_help.c:482 sql_help.c:483 sql_help.c:484 sql_help.c:1391 -#: sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 sql_help.c:1931 +#: sql_help.c:503 sql_help.c:504 sql_help.c:505 sql_help.c:506 sql_help.c:1400 +#: sql_help.c:1401 sql_help.c:1402 sql_help.c:1403 sql_help.c:1945 msgid "trigger_name" msgstr "トリガー名" -#: sql_help.c:485 sql_help.c:486 sql_help.c:1405 sql_help.c:1406 -#: sql_help.c:2370 sql_help.c:2375 sql_help.c:2929 sql_help.c:2952 +#: sql_help.c:507 sql_help.c:508 sql_help.c:1414 sql_help.c:1415 +#: sql_help.c:2396 sql_help.c:2401 sql_help.c:2960 sql_help.c:2983 msgid "parent_table" msgstr "親テーブル" -#: sql_help.c:545 sql_help.c:602 sql_help.c:671 sql_help.c:881 sql_help.c:1031 -#: sql_help.c:1580 sql_help.c:2299 +#: sql_help.c:567 sql_help.c:624 sql_help.c:693 sql_help.c:903 sql_help.c:1053 +#: sql_help.c:1594 sql_help.c:2315 msgid "extension_name" msgstr "拡張名" -#: sql_help.c:547 sql_help.c:1033 sql_help.c:2433 +#: sql_help.c:569 sql_help.c:1055 sql_help.c:2461 msgid "execution_cost" msgstr "実行コスト" -#: sql_help.c:548 sql_help.c:1034 sql_help.c:2434 +#: sql_help.c:570 sql_help.c:1056 sql_help.c:2462 msgid "result_rows" msgstr "結果の行数" -#: sql_help.c:549 sql_help.c:2435 +#: sql_help.c:571 sql_help.c:2463 msgid "support_function" msgstr "サポート関数" -#: sql_help.c:571 sql_help.c:573 sql_help.c:956 sql_help.c:964 sql_help.c:968 -#: sql_help.c:971 sql_help.c:974 sql_help.c:1663 sql_help.c:1671 -#: sql_help.c:1675 sql_help.c:1678 sql_help.c:1681 sql_help.c:2743 -#: sql_help.c:2745 sql_help.c:2748 sql_help.c:2749 sql_help.c:3921 -#: sql_help.c:3922 sql_help.c:3926 sql_help.c:3927 sql_help.c:3930 -#: sql_help.c:3931 sql_help.c:3933 sql_help.c:3934 sql_help.c:3936 -#: sql_help.c:3937 sql_help.c:3939 sql_help.c:3940 sql_help.c:3942 -#: sql_help.c:3943 sql_help.c:3949 sql_help.c:3950 sql_help.c:3952 -#: sql_help.c:3953 sql_help.c:3955 sql_help.c:3956 sql_help.c:3958 -#: sql_help.c:3959 sql_help.c:3961 sql_help.c:3962 sql_help.c:3964 -#: sql_help.c:3965 sql_help.c:3967 sql_help.c:3968 sql_help.c:3970 -#: sql_help.c:3971 sql_help.c:4384 sql_help.c:4385 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4393 sql_help.c:4394 sql_help.c:4396 -#: sql_help.c:4397 sql_help.c:4399 sql_help.c:4400 sql_help.c:4402 -#: sql_help.c:4403 sql_help.c:4405 sql_help.c:4406 sql_help.c:4412 -#: sql_help.c:4413 sql_help.c:4415 sql_help.c:4416 sql_help.c:4418 -#: sql_help.c:4419 sql_help.c:4421 sql_help.c:4422 sql_help.c:4424 -#: sql_help.c:4425 sql_help.c:4427 sql_help.c:4428 sql_help.c:4430 -#: sql_help.c:4431 sql_help.c:4433 sql_help.c:4434 +#: sql_help.c:593 sql_help.c:595 sql_help.c:978 sql_help.c:986 sql_help.c:990 +#: sql_help.c:993 sql_help.c:996 sql_help.c:1677 sql_help.c:1685 +#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1695 sql_help.c:2771 +#: sql_help.c:2773 sql_help.c:2776 sql_help.c:2777 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:3965 sql_help.c:3968 +#: sql_help.c:3969 sql_help.c:3971 sql_help.c:3972 sql_help.c:3974 +#: sql_help.c:3975 sql_help.c:3977 sql_help.c:3978 sql_help.c:3980 +#: sql_help.c:3981 sql_help.c:3987 sql_help.c:3988 sql_help.c:3990 +#: sql_help.c:3991 sql_help.c:3993 sql_help.c:3994 sql_help.c:3996 +#: sql_help.c:3997 sql_help.c:3999 sql_help.c:4000 sql_help.c:4002 +#: sql_help.c:4003 sql_help.c:4005 sql_help.c:4006 sql_help.c:4008 +#: sql_help.c:4009 sql_help.c:4426 sql_help.c:4427 sql_help.c:4431 +#: sql_help.c:4432 sql_help.c:4435 sql_help.c:4436 sql_help.c:4438 +#: sql_help.c:4439 sql_help.c:4441 sql_help.c:4442 sql_help.c:4444 +#: sql_help.c:4445 sql_help.c:4447 sql_help.c:4448 sql_help.c:4454 +#: sql_help.c:4455 sql_help.c:4457 sql_help.c:4458 sql_help.c:4460 +#: sql_help.c:4461 sql_help.c:4463 sql_help.c:4464 sql_help.c:4466 +#: sql_help.c:4467 sql_help.c:4469 sql_help.c:4470 sql_help.c:4472 +#: sql_help.c:4473 sql_help.c:4475 sql_help.c:4476 msgid "role_specification" msgstr "ロールの指定" -#: sql_help.c:572 sql_help.c:574 sql_help.c:1694 sql_help.c:2234 -#: sql_help.c:2751 sql_help.c:3282 sql_help.c:3733 sql_help.c:4762 +#: sql_help.c:594 sql_help.c:596 sql_help.c:1708 sql_help.c:2250 +#: sql_help.c:2779 sql_help.c:3318 sql_help.c:3771 sql_help.c:4804 msgid "user_name" msgstr "ユーザー名" -#: sql_help.c:575 sql_help.c:976 sql_help.c:1683 sql_help.c:2750 -#: sql_help.c:3972 sql_help.c:4435 +#: sql_help.c:597 sql_help.c:998 sql_help.c:1697 sql_help.c:2778 +#: sql_help.c:4010 sql_help.c:4477 msgid "where role_specification can be:" msgstr "ロール指定は以下の通りです:" -#: sql_help.c:577 +#: sql_help.c:599 msgid "group_name" msgstr "グループ名" -#: sql_help.c:598 sql_help.c:1452 sql_help.c:2246 sql_help.c:2506 -#: sql_help.c:2540 sql_help.c:2937 sql_help.c:2950 sql_help.c:2964 -#: sql_help.c:3005 sql_help.c:3035 sql_help.c:3047 sql_help.c:3963 -#: sql_help.c:4426 +#: sql_help.c:620 sql_help.c:1466 sql_help.c:2262 sql_help.c:2534 +#: sql_help.c:2568 sql_help.c:2968 sql_help.c:2981 sql_help.c:2995 +#: sql_help.c:3041 sql_help.c:3071 sql_help.c:3083 sql_help.c:4001 +#: sql_help.c:4468 msgid "tablespace_name" msgstr "テーブル空間名" -#: sql_help.c:600 sql_help.c:693 sql_help.c:1399 sql_help.c:1409 -#: sql_help.c:1447 sql_help.c:1809 +#: sql_help.c:622 sql_help.c:715 sql_help.c:1408 sql_help.c:1418 +#: sql_help.c:1461 sql_help.c:1823 msgid "index_name" msgstr "インデックス名" -#: sql_help.c:604 sql_help.c:607 sql_help.c:696 sql_help.c:698 sql_help.c:1402 -#: sql_help.c:1404 sql_help.c:1450 sql_help.c:2504 sql_help.c:2538 -#: sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 sql_help.c:3003 -#: sql_help.c:3033 +#: sql_help.c:626 sql_help.c:629 sql_help.c:718 sql_help.c:720 sql_help.c:1411 +#: sql_help.c:1413 sql_help.c:1464 sql_help.c:2532 sql_help.c:2566 +#: sql_help.c:2966 sql_help.c:2979 sql_help.c:2993 sql_help.c:3039 +#: sql_help.c:3069 msgid "storage_parameter" msgstr "ストレージパラメータ" -#: sql_help.c:609 +#: sql_help.c:631 msgid "column_number" msgstr "列番号" -#: sql_help.c:633 sql_help.c:1894 sql_help.c:4518 +#: sql_help.c:655 sql_help.c:1908 sql_help.c:4560 msgid "large_object_oid" msgstr "ラージオブジェクトのOID" -#: sql_help.c:692 sql_help.c:1385 sql_help.c:2923 +#: sql_help.c:714 sql_help.c:1393 sql_help.c:2954 msgid "compression_method" msgstr "圧縮方式" -#: sql_help.c:694 sql_help.c:1400 +#: sql_help.c:716 sql_help.c:1409 msgid "new_access_method" msgstr "新しいアクセスメソッド" -#: sql_help.c:731 sql_help.c:2561 +#: sql_help.c:753 sql_help.c:2589 msgid "res_proc" msgstr "制約選択評価関数" -#: sql_help.c:732 sql_help.c:2562 +#: sql_help.c:754 sql_help.c:2590 msgid "join_proc" msgstr "結合選択評価関数" -#: sql_help.c:733 sql_help.c:2559 +#: sql_help.c:755 sql_help.c:2587 msgid "com_op" msgstr "交代演算子" -#: sql_help.c:734 sql_help.c:2560 +#: sql_help.c:756 sql_help.c:2588 msgid "neg_op" msgstr "否定演算子" -#: sql_help.c:786 sql_help.c:798 sql_help.c:2579 +#: sql_help.c:808 sql_help.c:820 sql_help.c:2607 msgid "strategy_number" msgstr "戦略番号" -#: sql_help.c:788 sql_help.c:789 sql_help.c:792 sql_help.c:793 sql_help.c:799 -#: sql_help.c:800 sql_help.c:802 sql_help.c:803 sql_help.c:2581 sql_help.c:2582 -#: sql_help.c:2585 sql_help.c:2586 +#: sql_help.c:810 sql_help.c:811 sql_help.c:814 sql_help.c:815 sql_help.c:821 +#: sql_help.c:822 sql_help.c:824 sql_help.c:825 sql_help.c:2609 sql_help.c:2610 +#: sql_help.c:2613 sql_help.c:2614 msgid "op_type" msgstr "演算子の型" -#: sql_help.c:790 sql_help.c:2583 +#: sql_help.c:812 sql_help.c:2611 msgid "sort_family_name" msgstr "ソートファミリー名" -#: sql_help.c:791 sql_help.c:801 sql_help.c:2584 +#: sql_help.c:813 sql_help.c:823 sql_help.c:2612 msgid "support_number" msgstr "サポート番号" -#: sql_help.c:795 sql_help.c:2166 sql_help.c:2588 sql_help.c:3124 -#: sql_help.c:3126 +#: sql_help.c:817 sql_help.c:2182 sql_help.c:2616 sql_help.c:3160 +#: sql_help.c:3162 msgid "argument_type" msgstr "引数の型" -#: sql_help.c:826 sql_help.c:829 sql_help.c:918 sql_help.c:1047 sql_help.c:1087 -#: sql_help.c:1576 sql_help.c:1579 sql_help.c:1755 sql_help.c:1808 -#: sql_help.c:1879 sql_help.c:1904 sql_help.c:1917 sql_help.c:1932 -#: sql_help.c:1992 sql_help.c:1998 sql_help.c:2362 sql_help.c:2374 -#: sql_help.c:2495 sql_help.c:2535 sql_help.c:2612 sql_help.c:2666 -#: sql_help.c:2719 sql_help.c:2771 sql_help.c:2804 sql_help.c:2811 -#: sql_help.c:2920 sql_help.c:2938 sql_help.c:2951 sql_help.c:3030 -#: sql_help.c:3150 sql_help.c:3331 sql_help.c:3554 sql_help.c:3603 -#: sql_help.c:3709 sql_help.c:3919 sql_help.c:3925 sql_help.c:3986 -#: sql_help.c:4018 sql_help.c:4382 sql_help.c:4388 sql_help.c:4506 -#: sql_help.c:4619 sql_help.c:4682 sql_help.c:4721 sql_help.c:4877 -#: sql_help.c:4940 sql_help.c:4974 sql_help.c:5032 sql_help.c:5122 -#: sql_help.c:5185 +#: sql_help.c:848 sql_help.c:851 sql_help.c:940 sql_help.c:1069 sql_help.c:1110 +#: sql_help.c:1590 sql_help.c:1593 sql_help.c:1769 sql_help.c:1822 +#: sql_help.c:1893 sql_help.c:1918 sql_help.c:1931 sql_help.c:1946 +#: sql_help.c:2007 sql_help.c:2013 sql_help.c:2386 sql_help.c:2400 +#: sql_help.c:2523 sql_help.c:2563 sql_help.c:2640 sql_help.c:2694 +#: sql_help.c:2747 sql_help.c:2801 sql_help.c:2834 sql_help.c:2841 +#: sql_help.c:2951 sql_help.c:2969 sql_help.c:2982 sql_help.c:3066 +#: sql_help.c:3186 sql_help.c:3368 sql_help.c:3592 sql_help.c:3641 +#: sql_help.c:3747 sql_help.c:3957 sql_help.c:3963 sql_help.c:4024 +#: sql_help.c:4057 sql_help.c:4424 sql_help.c:4430 sql_help.c:4548 +#: sql_help.c:4661 sql_help.c:4724 sql_help.c:4763 sql_help.c:4919 +#: sql_help.c:4982 sql_help.c:5017 sql_help.c:5076 sql_help.c:5166 +#: sql_help.c:5229 msgid "table_name" msgstr "テーブル名" -#: sql_help.c:831 sql_help.c:2614 +#: sql_help.c:853 sql_help.c:2642 msgid "using_expression" msgstr "USING式" -#: sql_help.c:832 sql_help.c:2615 +#: sql_help.c:854 sql_help.c:2643 msgid "check_expression" msgstr "CHECK式" -#: sql_help.c:905 sql_help.c:907 sql_help.c:909 sql_help.c:2662 +#: sql_help.c:927 sql_help.c:929 sql_help.c:931 sql_help.c:2690 msgid "publication_object" msgstr "発行オブジェクト" -#: sql_help.c:911 sql_help.c:2663 +#: sql_help.c:933 sql_help.c:2691 msgid "publication_parameter" msgstr "パブリケーションパラメータ" -#: sql_help.c:917 sql_help.c:2665 +#: sql_help.c:939 sql_help.c:2693 msgid "where publication_object is one of:" msgstr "発行オブジェクトは以下のいずれかです:" -#: sql_help.c:960 sql_help.c:1667 sql_help.c:2473 sql_help.c:2698 -#: sql_help.c:3265 +#: sql_help.c:982 sql_help.c:1681 sql_help.c:2501 sql_help.c:2726 +#: sql_help.c:3301 msgid "password" msgstr "パスワード" -#: sql_help.c:961 sql_help.c:1668 sql_help.c:2474 sql_help.c:2699 -#: sql_help.c:3266 +#: sql_help.c:983 sql_help.c:1682 sql_help.c:2502 sql_help.c:2727 +#: sql_help.c:3302 msgid "timestamp" msgstr "タイムスタンプ" -#: sql_help.c:965 sql_help.c:969 sql_help.c:972 sql_help.c:975 sql_help.c:1672 -#: sql_help.c:1676 sql_help.c:1679 sql_help.c:1682 sql_help.c:3932 -#: sql_help.c:4395 +#: sql_help.c:987 sql_help.c:991 sql_help.c:994 sql_help.c:997 sql_help.c:1686 +#: sql_help.c:1690 sql_help.c:1693 sql_help.c:1696 sql_help.c:3970 +#: sql_help.c:4437 msgid "database_name" msgstr "データベース名" -#: sql_help.c:1081 sql_help.c:2766 +#: sql_help.c:1104 sql_help.c:2796 msgid "increment" msgstr "増分値" -#: sql_help.c:1082 sql_help.c:2767 +#: sql_help.c:1105 sql_help.c:2797 msgid "minvalue" msgstr "最小値" -#: sql_help.c:1083 sql_help.c:2768 +#: sql_help.c:1106 sql_help.c:2798 msgid "maxvalue" msgstr "最大値" -#: sql_help.c:1084 sql_help.c:2769 sql_help.c:4615 sql_help.c:4719 -#: sql_help.c:4873 sql_help.c:5049 sql_help.c:5118 +#: sql_help.c:1107 sql_help.c:2799 sql_help.c:4657 sql_help.c:4761 +#: sql_help.c:4915 sql_help.c:5093 sql_help.c:5162 msgid "start" msgstr "開始番号" -#: sql_help.c:1085 sql_help.c:1374 +#: sql_help.c:1108 sql_help.c:1382 msgid "restart" msgstr "再開始番号" -#: sql_help.c:1086 sql_help.c:2770 +#: sql_help.c:1109 sql_help.c:2800 msgid "cache" msgstr "キャッシュ割り当て数" -#: sql_help.c:1131 +#: sql_help.c:1154 msgid "new_target" msgstr "新しいターゲット" -#: sql_help.c:1150 sql_help.c:2823 +#: sql_help.c:1173 sql_help.c:2853 msgid "conninfo" msgstr "接続文字列" -#: sql_help.c:1152 sql_help.c:1156 sql_help.c:1160 sql_help.c:2824 +#: sql_help.c:1175 sql_help.c:1179 sql_help.c:1183 sql_help.c:2854 msgid "publication_name" msgstr "パブリケーション名" -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 +#: sql_help.c:1176 sql_help.c:1180 sql_help.c:1184 msgid "publication_option" msgstr "パブリケーション・オプション" -#: sql_help.c:1164 +#: sql_help.c:1187 msgid "refresh_option" msgstr "{REFRESH PUBLICATION の追加オプション}" -#: sql_help.c:1169 sql_help.c:2825 +#: sql_help.c:1192 sql_help.c:2855 msgid "subscription_parameter" msgstr "{SUBSCRIPTION パラメータ名}" -#: sql_help.c:1172 +#: sql_help.c:1195 msgid "skip_option" msgstr "スキップオプション" -#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1344 sql_help.c:1352 +#: sql_help.c:1357 sql_help.c:1360 msgid "partition_name" msgstr "パーティション名" -#: sql_help.c:1340 sql_help.c:1346 sql_help.c:1348 sql_help.c:2379 -#: sql_help.c:2956 +#: sql_help.c:1358 sql_help.c:2405 sql_help.c:2987 msgid "partition_bound_spec" msgstr "パーティション境界の仕様" -#: sql_help.c:1345 sql_help.c:1350 -msgid "partition_name1" -msgstr "パーティション名1" - -#: sql_help.c:1347 sql_help.c:1351 -msgid "partition_name2" -msgstr "パーティション名2" - -#: sql_help.c:1371 sql_help.c:1421 sql_help.c:2970 +#: sql_help.c:1379 sql_help.c:1430 sql_help.c:3001 msgid "sequence_options" msgstr "シーケンスオプション" -#: sql_help.c:1373 +#: sql_help.c:1381 msgid "sequence_option" msgstr "シーケンスオプション" -#: sql_help.c:1387 +#: sql_help.c:1395 msgid "table_constraint_using_index" msgstr "インデックスを使うテーブルの制約" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1397 sql_help.c:1398 +#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1406 sql_help.c:1407 msgid "rewrite_rule_name" msgstr "書き換えルール名" -#: sql_help.c:1410 sql_help.c:2391 sql_help.c:2995 +#: sql_help.c:1419 sql_help.c:2419 sql_help.c:3031 msgid "and partition_bound_spec is:" msgstr "パーティション境界の仕様は以下の通りです:" -#: sql_help.c:1411 sql_help.c:1412 sql_help.c:1413 sql_help.c:2392 -#: sql_help.c:2393 sql_help.c:2394 sql_help.c:2996 sql_help.c:2997 -#: sql_help.c:2998 +#: sql_help.c:1420 sql_help.c:1421 sql_help.c:1422 sql_help.c:2420 +#: sql_help.c:2421 sql_help.c:2422 sql_help.c:3032 sql_help.c:3033 +#: sql_help.c:3034 msgid "partition_bound_expr" msgstr "パーティション境界式" -#: sql_help.c:1414 sql_help.c:1415 sql_help.c:2395 sql_help.c:2396 -#: sql_help.c:2999 sql_help.c:3000 +#: sql_help.c:1423 sql_help.c:1424 sql_help.c:2423 sql_help.c:2424 +#: sql_help.c:3035 sql_help.c:3036 msgid "numeric_literal" msgstr "numericリテラル" -#: sql_help.c:1416 +#: sql_help.c:1425 msgid "and column_constraint is:" msgstr "そしてカラム制約は以下の通りです:" -#: sql_help.c:1419 sql_help.c:2386 sql_help.c:2427 sql_help.c:2636 -#: sql_help.c:2968 +#: sql_help.c:1428 sql_help.c:2412 sql_help.c:2455 sql_help.c:2664 +#: sql_help.c:2999 msgid "default_expr" msgstr "デフォルト表現" -#: sql_help.c:1420 sql_help.c:2387 sql_help.c:2969 +#: sql_help.c:1429 sql_help.c:2413 sql_help.c:3000 msgid "generation_expr" msgstr "生成式" -#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1432 sql_help.c:1434 -#: sql_help.c:1438 sql_help.c:2971 sql_help.c:2972 sql_help.c:2981 -#: sql_help.c:2983 sql_help.c:2987 +#: sql_help.c:1431 sql_help.c:1432 sql_help.c:1443 sql_help.c:1446 +#: sql_help.c:1450 sql_help.c:3002 sql_help.c:3003 sql_help.c:3014 +#: sql_help.c:3017 sql_help.c:3021 msgid "index_parameters" msgstr "インデックスパラメータ" -#: sql_help.c:1424 sql_help.c:1441 sql_help.c:2973 sql_help.c:2990 +#: sql_help.c:1433 sql_help.c:1454 sql_help.c:3004 sql_help.c:3025 msgid "reftable" msgstr "参照テーブル" -#: sql_help.c:1425 sql_help.c:1442 sql_help.c:2974 sql_help.c:2991 +#: sql_help.c:1434 sql_help.c:1455 sql_help.c:1456 sql_help.c:3005 +#: sql_help.c:3026 sql_help.c:3027 msgid "refcolumn" msgstr "参照列" -#: sql_help.c:1426 sql_help.c:1427 sql_help.c:1443 sql_help.c:1444 -#: sql_help.c:2975 sql_help.c:2976 sql_help.c:2992 sql_help.c:2993 +#: sql_help.c:1435 sql_help.c:1436 sql_help.c:1457 sql_help.c:1458 +#: sql_help.c:3006 sql_help.c:3007 sql_help.c:3028 sql_help.c:3029 msgid "referential_action" msgstr "参照動作" -#: sql_help.c:1428 sql_help.c:2388 sql_help.c:2977 +#: sql_help.c:1437 sql_help.c:2414 sql_help.c:3008 msgid "and table_constraint is:" msgstr "テーブル制約は以下の通りです:" -#: sql_help.c:1436 sql_help.c:2985 +#: sql_help.c:1448 sql_help.c:3019 msgid "exclude_element" msgstr "除外対象要素" -#: sql_help.c:1437 sql_help.c:2986 sql_help.c:4613 sql_help.c:4717 -#: sql_help.c:4871 sql_help.c:5047 sql_help.c:5116 +#: sql_help.c:1449 sql_help.c:3020 sql_help.c:4655 sql_help.c:4759 +#: sql_help.c:4913 sql_help.c:5091 sql_help.c:5160 msgid "operator" msgstr "演算子" -#: sql_help.c:1439 sql_help.c:2507 sql_help.c:2988 +#: sql_help.c:1451 sql_help.c:2535 sql_help.c:3022 msgid "predicate" msgstr "インデックスの述語" -#: sql_help.c:1445 +#: sql_help.c:1459 msgid "and table_constraint_using_index is:" msgstr "テーブル制約は以下の通りです:" -#: sql_help.c:1448 sql_help.c:3001 +#: sql_help.c:1462 sql_help.c:3037 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "UNIQUE, PRIMARY KEY, EXCLUDE 制約のインデックスパラメータは以下の通りです:" -#: sql_help.c:1453 sql_help.c:3006 +#: sql_help.c:1467 sql_help.c:3042 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "EXCLUDE 制約の除外対象要素は以下の通りです:" -#: sql_help.c:1457 sql_help.c:2500 sql_help.c:2933 sql_help.c:2946 -#: sql_help.c:2960 sql_help.c:3010 sql_help.c:4031 +#: sql_help.c:1471 sql_help.c:2528 sql_help.c:2964 sql_help.c:2977 +#: sql_help.c:2991 sql_help.c:3046 sql_help.c:4071 msgid "opclass" msgstr "演算子クラス" -#: sql_help.c:1458 sql_help.c:2501 sql_help.c:3011 +#: sql_help.c:1472 sql_help.c:2529 sql_help.c:3047 msgid "opclass_parameter" msgstr "演算子クラスパラメータ" -#: sql_help.c:1460 sql_help.c:3013 +#: sql_help.c:1474 sql_help.c:3049 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "FOREIGN KEY/REFERENCES制約の参照動作は以下の通り:" -#: sql_help.c:1478 sql_help.c:1481 sql_help.c:3050 +#: sql_help.c:1492 sql_help.c:1495 sql_help.c:3086 msgid "tablespace_option" msgstr "テーブル空間のオプション" -#: sql_help.c:1502 sql_help.c:1505 sql_help.c:1511 sql_help.c:1515 +#: sql_help.c:1516 sql_help.c:1519 sql_help.c:1525 sql_help.c:1529 msgid "token_type" msgstr "トークンの型" -#: sql_help.c:1503 sql_help.c:1506 +#: sql_help.c:1517 sql_help.c:1520 msgid "dictionary_name" msgstr "辞書名" -#: sql_help.c:1508 sql_help.c:1512 +#: sql_help.c:1522 sql_help.c:1526 msgid "old_dictionary" msgstr "元の辞書" -#: sql_help.c:1509 sql_help.c:1513 +#: sql_help.c:1523 sql_help.c:1527 msgid "new_dictionary" msgstr "新しい辞書" -#: sql_help.c:1608 sql_help.c:1622 sql_help.c:1625 sql_help.c:1626 -#: sql_help.c:3203 +#: sql_help.c:1622 sql_help.c:1636 sql_help.c:1639 sql_help.c:1640 +#: sql_help.c:3239 msgid "attribute_name" msgstr "属性名" -#: sql_help.c:1609 +#: sql_help.c:1623 msgid "new_attribute_name" msgstr "新しい属性名" -#: sql_help.c:1613 sql_help.c:1617 +#: sql_help.c:1627 sql_help.c:1631 msgid "new_enum_value" msgstr "新しい列挙値" -#: sql_help.c:1614 +#: sql_help.c:1628 msgid "neighbor_enum_value" msgstr "隣接した列挙値" -#: sql_help.c:1616 +#: sql_help.c:1630 msgid "existing_enum_value" msgstr "既存の列挙値" -#: sql_help.c:1619 +#: sql_help.c:1633 msgid "property" msgstr "プロパティ" -#: sql_help.c:1695 sql_help.c:2371 sql_help.c:2380 sql_help.c:2782 -#: sql_help.c:3283 sql_help.c:3734 sql_help.c:3941 sql_help.c:3987 -#: sql_help.c:4404 +#: sql_help.c:1709 sql_help.c:2397 sql_help.c:2406 sql_help.c:2812 +#: sql_help.c:3319 sql_help.c:3772 sql_help.c:3979 sql_help.c:4025 +#: sql_help.c:4446 msgid "server_name" msgstr "サーバー名" -#: sql_help.c:1727 sql_help.c:1730 sql_help.c:3298 +#: sql_help.c:1741 sql_help.c:1744 sql_help.c:3334 msgid "view_option_name" msgstr "ビューのオプション名" -#: sql_help.c:1728 sql_help.c:3299 +#: sql_help.c:1742 sql_help.c:3335 msgid "view_option_value" msgstr "ビューオプションの値" -#: sql_help.c:1749 sql_help.c:5016 +#: sql_help.c:1763 sql_help.c:5060 msgid "table_and_columns" msgstr "テーブルおよび列" -#: sql_help.c:1750 sql_help.c:1810 sql_help.c:2004 sql_help.c:3783 -#: sql_help.c:4239 sql_help.c:5017 +#: sql_help.c:1764 sql_help.c:1824 sql_help.c:2019 sql_help.c:3821 +#: sql_help.c:4281 sql_help.c:5061 msgid "where option can be one of:" msgstr "オプションには以下のうちのいずれかを指定します:" -#: sql_help.c:1751 sql_help.c:1752 sql_help.c:1811 sql_help.c:2006 -#: sql_help.c:2010 sql_help.c:2192 sql_help.c:3784 sql_help.c:3785 -#: sql_help.c:3786 sql_help.c:3787 sql_help.c:3788 sql_help.c:3789 -#: sql_help.c:3790 sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 -#: sql_help.c:4240 sql_help.c:4242 sql_help.c:5018 sql_help.c:5019 -#: sql_help.c:5020 sql_help.c:5021 sql_help.c:5022 sql_help.c:5023 -#: sql_help.c:5024 sql_help.c:5025 sql_help.c:5026 sql_help.c:5028 -#: sql_help.c:5029 +#: sql_help.c:1765 sql_help.c:1766 sql_help.c:1825 sql_help.c:2021 +#: sql_help.c:2025 sql_help.c:2208 sql_help.c:3822 sql_help.c:3823 +#: sql_help.c:3824 sql_help.c:3825 sql_help.c:3826 sql_help.c:3827 +#: sql_help.c:3828 sql_help.c:3829 sql_help.c:3830 sql_help.c:3831 +#: sql_help.c:4282 sql_help.c:4284 sql_help.c:5062 sql_help.c:5063 +#: sql_help.c:5064 sql_help.c:5065 sql_help.c:5066 sql_help.c:5067 +#: sql_help.c:5068 sql_help.c:5069 sql_help.c:5070 sql_help.c:5072 +#: sql_help.c:5073 msgid "boolean" msgstr "真偽値" -#: sql_help.c:1753 sql_help.c:5030 +#: sql_help.c:1767 sql_help.c:5074 msgid "size" msgstr "サイズ" -#: sql_help.c:1754 sql_help.c:5031 +#: sql_help.c:1768 sql_help.c:5075 msgid "and table_and_columns is:" msgstr "そしてテーブルと列の指定は以下の通りです:" -#: sql_help.c:1770 sql_help.c:4778 sql_help.c:4780 sql_help.c:4804 +#: sql_help.c:1784 sql_help.c:4820 sql_help.c:4822 sql_help.c:4846 msgid "transaction_mode" msgstr "トランザクションのモード" -#: sql_help.c:1771 sql_help.c:4781 sql_help.c:4805 +#: sql_help.c:1785 sql_help.c:4823 sql_help.c:4847 msgid "where transaction_mode is one of:" msgstr "トランザクションのモードは以下の通りです:" -#: sql_help.c:1780 sql_help.c:4623 sql_help.c:4632 sql_help.c:4636 -#: sql_help.c:4640 sql_help.c:4643 sql_help.c:4881 sql_help.c:4890 -#: sql_help.c:4894 sql_help.c:4898 sql_help.c:4901 sql_help.c:5126 -#: sql_help.c:5135 sql_help.c:5139 sql_help.c:5143 sql_help.c:5146 +#: sql_help.c:1794 sql_help.c:4665 sql_help.c:4674 sql_help.c:4678 +#: sql_help.c:4682 sql_help.c:4685 sql_help.c:4923 sql_help.c:4932 +#: sql_help.c:4936 sql_help.c:4940 sql_help.c:4943 sql_help.c:5170 +#: sql_help.c:5179 sql_help.c:5183 sql_help.c:5187 sql_help.c:5190 msgid "argument" msgstr "引数" -#: sql_help.c:1876 +#: sql_help.c:1890 msgid "relation_name" msgstr "リレーション名" -#: sql_help.c:1881 sql_help.c:3935 sql_help.c:4398 +#: sql_help.c:1895 sql_help.c:3973 sql_help.c:4440 msgid "domain_name" msgstr "ドメイン名" -#: sql_help.c:1903 +#: sql_help.c:1917 msgid "policy_name" msgstr "ポリシー名" -#: sql_help.c:1916 +#: sql_help.c:1930 msgid "rule_name" msgstr "ルール名" -#: sql_help.c:1935 sql_help.c:4537 +#: sql_help.c:1949 sql_help.c:4579 msgid "string_literal" msgstr "文字列リテラル" -#: sql_help.c:1960 sql_help.c:4201 sql_help.c:4451 +#: sql_help.c:1974 sql_help.c:4243 sql_help.c:4493 msgid "transaction_id" msgstr "トランザクションID" -#: sql_help.c:1994 sql_help.c:2001 sql_help.c:4057 +#: sql_help.c:2009 sql_help.c:2016 sql_help.c:4097 msgid "filename" msgstr "ファイル名" -#: sql_help.c:1995 sql_help.c:2002 sql_help.c:2721 sql_help.c:2722 -#: sql_help.c:2723 +#: sql_help.c:2010 sql_help.c:2017 sql_help.c:2749 sql_help.c:2750 +#: sql_help.c:2751 msgid "command" msgstr "コマンド" -#: sql_help.c:1997 sql_help.c:2720 sql_help.c:3153 sql_help.c:3334 -#: sql_help.c:4041 sql_help.c:4124 sql_help.c:4127 sql_help.c:4130 -#: sql_help.c:4606 sql_help.c:4608 sql_help.c:4710 sql_help.c:4712 -#: sql_help.c:4864 sql_help.c:4866 sql_help.c:4983 sql_help.c:5109 -#: sql_help.c:5111 +#: sql_help.c:2012 sql_help.c:2748 sql_help.c:3189 sql_help.c:3371 +#: sql_help.c:4081 sql_help.c:4166 sql_help.c:4169 sql_help.c:4172 +#: sql_help.c:4648 sql_help.c:4650 sql_help.c:4752 sql_help.c:4754 +#: sql_help.c:4906 sql_help.c:4908 sql_help.c:5026 sql_help.c:5153 +#: sql_help.c:5155 msgid "condition" msgstr "条件" -#: sql_help.c:2000 sql_help.c:2541 sql_help.c:3036 sql_help.c:3300 -#: sql_help.c:3318 sql_help.c:4022 +#: sql_help.c:2015 sql_help.c:2569 sql_help.c:3072 sql_help.c:3336 +#: sql_help.c:3354 sql_help.c:4061 msgid "query" msgstr "問い合わせ" -#: sql_help.c:2005 +#: sql_help.c:2020 msgid "format_name" msgstr "フォーマット名" -#: sql_help.c:2007 +#: sql_help.c:2022 msgid "delimiter_character" msgstr "区切り文字" -#: sql_help.c:2008 +#: sql_help.c:2023 msgid "null_string" msgstr "NULL文字列" -#: sql_help.c:2009 +#: sql_help.c:2024 msgid "default_string" msgstr "デフォルト文字列" -#: sql_help.c:2011 +#: sql_help.c:2026 msgid "quote_character" msgstr "引用符文字" -#: sql_help.c:2012 +#: sql_help.c:2027 msgid "escape_character" msgstr "エスケープ文字" -#: sql_help.c:2016 +#: sql_help.c:2031 msgid "error_action" msgstr "エラー処理" -#: sql_help.c:2017 +#: sql_help.c:2032 +msgid "maxerror" +msgstr "許容エラー数" + +#: sql_help.c:2033 msgid "encoding_name" msgstr "エンコーディング名" -#: sql_help.c:2018 +#: sql_help.c:2034 msgid "verbosity" msgstr "詳細度" -#: sql_help.c:2029 +#: sql_help.c:2045 msgid "access_method_type" msgstr "アクセスメソッドの型" -#: sql_help.c:2100 sql_help.c:2119 sql_help.c:2122 +#: sql_help.c:2116 sql_help.c:2135 sql_help.c:2138 msgid "arg_data_type" msgstr "入力データ型" -#: sql_help.c:2101 sql_help.c:2123 sql_help.c:2131 +#: sql_help.c:2117 sql_help.c:2139 sql_help.c:2147 msgid "sfunc" msgstr "状態遷移関数" -#: sql_help.c:2102 sql_help.c:2124 sql_help.c:2132 +#: sql_help.c:2118 sql_help.c:2140 sql_help.c:2148 msgid "state_data_type" msgstr "状態データの型" -#: sql_help.c:2103 sql_help.c:2125 sql_help.c:2133 +#: sql_help.c:2119 sql_help.c:2141 sql_help.c:2149 msgid "state_data_size" msgstr "状態データのサイズ" -#: sql_help.c:2104 sql_help.c:2126 sql_help.c:2134 +#: sql_help.c:2120 sql_help.c:2142 sql_help.c:2150 msgid "ffunc" msgstr "終了関数" -#: sql_help.c:2105 sql_help.c:2135 +#: sql_help.c:2121 sql_help.c:2151 msgid "combinefunc" msgstr "結合関数" -#: sql_help.c:2106 sql_help.c:2136 +#: sql_help.c:2122 sql_help.c:2152 msgid "serialfunc" msgstr "シリアライズ関数" -#: sql_help.c:2107 sql_help.c:2137 +#: sql_help.c:2123 sql_help.c:2153 msgid "deserialfunc" msgstr "デシリアライズ関数" -#: sql_help.c:2108 sql_help.c:2127 sql_help.c:2138 +#: sql_help.c:2124 sql_help.c:2143 sql_help.c:2154 msgid "initial_condition" msgstr "初期条件" -#: sql_help.c:2109 sql_help.c:2139 +#: sql_help.c:2125 sql_help.c:2155 msgid "msfunc" msgstr "前方状態遷移関数" -#: sql_help.c:2110 sql_help.c:2140 +#: sql_help.c:2126 sql_help.c:2156 msgid "minvfunc" msgstr "逆状態遷移関数" -#: sql_help.c:2111 sql_help.c:2141 +#: sql_help.c:2127 sql_help.c:2157 msgid "mstate_data_type" msgstr "移動集約モード時の状態値のデータ型" -#: sql_help.c:2112 sql_help.c:2142 +#: sql_help.c:2128 sql_help.c:2158 msgid "mstate_data_size" msgstr "移動集約モード時の状態値のデータサイズ" -#: sql_help.c:2113 sql_help.c:2143 +#: sql_help.c:2129 sql_help.c:2159 msgid "mffunc" msgstr "移動集約モード時の終了関数" -#: sql_help.c:2114 sql_help.c:2144 +#: sql_help.c:2130 sql_help.c:2160 msgid "minitial_condition" msgstr "移動集約モード時の初期条件" -#: sql_help.c:2115 sql_help.c:2145 +#: sql_help.c:2131 sql_help.c:2161 msgid "sort_operator" msgstr "ソート演算子" -#: sql_help.c:2128 +#: sql_help.c:2144 msgid "or the old syntax" msgstr "または古い構文" -#: sql_help.c:2130 +#: sql_help.c:2146 msgid "base_type" msgstr "基本の型" -#: sql_help.c:2188 sql_help.c:2238 +#: sql_help.c:2204 sql_help.c:2254 msgid "locale" msgstr "ロケール" -#: sql_help.c:2189 sql_help.c:2239 +#: sql_help.c:2205 sql_help.c:2255 msgid "lc_collate" msgstr "照合順序" -#: sql_help.c:2190 sql_help.c:2240 +#: sql_help.c:2206 sql_help.c:2256 msgid "lc_ctype" msgstr "Ctype(変換演算子)" -#: sql_help.c:2191 sql_help.c:4504 +#: sql_help.c:2207 sql_help.c:4546 msgid "provider" msgstr "プロバイダ" -#: sql_help.c:2193 +#: sql_help.c:2209 msgid "rules" msgstr "ルール" -#: sql_help.c:2194 sql_help.c:2301 +#: sql_help.c:2210 sql_help.c:2317 msgid "version" msgstr "バージョン" -#: sql_help.c:2196 +#: sql_help.c:2212 msgid "existing_collation" msgstr "既存の照合順序" -#: sql_help.c:2206 +#: sql_help.c:2222 msgid "source_encoding" msgstr "変換元のエンコーディング" -#: sql_help.c:2207 +#: sql_help.c:2223 msgid "dest_encoding" msgstr "変換先のエンコーディング" -#: sql_help.c:2235 sql_help.c:3076 +#: sql_help.c:2251 sql_help.c:3112 msgid "template" msgstr "テンプレート" -#: sql_help.c:2236 +#: sql_help.c:2252 msgid "encoding" msgstr "エンコード" -#: sql_help.c:2237 +#: sql_help.c:2253 msgid "strategy" msgstr "ストラテジ" -#: sql_help.c:2241 +#: sql_help.c:2257 msgid "builtin_locale" msgstr "組み込みロケール" -#: sql_help.c:2242 +#: sql_help.c:2258 msgid "icu_locale" msgstr "ICUロケール" -#: sql_help.c:2243 +#: sql_help.c:2259 msgid "icu_rules" msgstr "ICUルール(群)" -#: sql_help.c:2244 +#: sql_help.c:2260 msgid "locale_provider" msgstr "ロケールプロバイダ" -#: sql_help.c:2245 +#: sql_help.c:2261 msgid "collation_version" msgstr "照合順序バージョン" -#: sql_help.c:2250 +#: sql_help.c:2266 msgid "oid" msgstr "オブジェクトID" -#: sql_help.c:2271 -msgid "where domain_constraint is:" -msgstr "ドメイン制約は以下の通りです:" - -#: sql_help.c:2285 sql_help.c:2718 sql_help.c:3149 +#: sql_help.c:2301 sql_help.c:2746 sql_help.c:3185 msgid "event" msgstr "イベント" -#: sql_help.c:2286 +#: sql_help.c:2302 msgid "filter_variable" msgstr "フィルター変数" -#: sql_help.c:2287 +#: sql_help.c:2303 msgid "filter_value" msgstr "フィルター値" -#: sql_help.c:2383 sql_help.c:2965 +#: sql_help.c:2394 sql_help.c:2958 +msgid "source_table" +msgstr "コピー元のテーブル" + +#: sql_help.c:2395 sql_help.c:2959 +msgid "like_option" +msgstr "LIKEオプション" + +#: sql_help.c:2409 sql_help.c:2996 msgid "where column_constraint is:" msgstr "カラム制約は以下の通りです:" -#: sql_help.c:2428 +#: sql_help.c:2418 sql_help.c:3030 +msgid "and like_option is:" +msgstr "LIKE オプションは以下の通りです:" + +#: sql_help.c:2456 msgid "rettype" msgstr "戻り値の型" -#: sql_help.c:2430 +#: sql_help.c:2458 msgid "column_type" msgstr "列の型" -#: sql_help.c:2439 sql_help.c:2642 +#: sql_help.c:2467 sql_help.c:2670 msgid "definition" msgstr "定義" -#: sql_help.c:2440 sql_help.c:2643 +#: sql_help.c:2468 sql_help.c:2671 msgid "obj_file" msgstr "オブジェクトファイル名" -#: sql_help.c:2441 sql_help.c:2644 +#: sql_help.c:2469 sql_help.c:2672 msgid "link_symbol" msgstr "リンクシンボル" -#: sql_help.c:2442 sql_help.c:2645 +#: sql_help.c:2470 sql_help.c:2673 msgid "sql_body" msgstr "SQL本体" -#: sql_help.c:2480 sql_help.c:2703 sql_help.c:3272 +#: sql_help.c:2508 sql_help.c:2731 sql_help.c:3308 msgid "uid" msgstr "UID" -#: sql_help.c:2496 sql_help.c:2537 sql_help.c:2934 sql_help.c:2947 -#: sql_help.c:2961 sql_help.c:3032 +#: sql_help.c:2524 sql_help.c:2565 sql_help.c:2965 sql_help.c:2978 +#: sql_help.c:2992 sql_help.c:3068 msgid "method" msgstr "インデックスメソッド" -#: sql_help.c:2518 +#: sql_help.c:2546 msgid "call_handler" msgstr "呼び出しハンドラー" -#: sql_help.c:2519 +#: sql_help.c:2547 msgid "inline_handler" msgstr "インラインハンドラー" -#: sql_help.c:2520 +#: sql_help.c:2548 msgid "valfunction" msgstr "バリデーション関数" -#: sql_help.c:2578 +#: sql_help.c:2606 msgid "family_name" msgstr "演算子族の名前" -#: sql_help.c:2589 +#: sql_help.c:2617 msgid "storage_type" msgstr "ストレージタイプ" -#: sql_help.c:2724 sql_help.c:3156 +#: sql_help.c:2752 sql_help.c:3192 msgid "where event can be one of:" msgstr "イベントは以下のいずれかです:" -#: sql_help.c:2744 sql_help.c:2746 +#: sql_help.c:2772 sql_help.c:2774 msgid "schema_element" msgstr "スキーマ要素" -#: sql_help.c:2783 +#: sql_help.c:2813 msgid "server_type" msgstr "サーバーのタイプ" -#: sql_help.c:2784 +#: sql_help.c:2814 msgid "server_version" msgstr "サーバーのバージョン" -#: sql_help.c:2785 sql_help.c:3938 sql_help.c:4401 +#: sql_help.c:2815 sql_help.c:3976 sql_help.c:4443 msgid "fdw_name" msgstr "外部データラッパ名" -#: sql_help.c:2802 sql_help.c:2805 +#: sql_help.c:2832 sql_help.c:2835 msgid "statistics_name" msgstr "統計オブジェクト名" -#: sql_help.c:2806 +#: sql_help.c:2836 msgid "statistics_kind" msgstr "統計種別" -#: sql_help.c:2822 +#: sql_help.c:2852 msgid "subscription_name" msgstr "サブスクリプション名" -#: sql_help.c:2927 -msgid "source_table" -msgstr "コピー元のテーブル" - -#: sql_help.c:2928 -msgid "like_option" -msgstr "LIKEオプション" - -#: sql_help.c:2994 -msgid "and like_option is:" -msgstr "LIKE オプションは以下の通りです:" - -#: sql_help.c:3049 +#: sql_help.c:3085 msgid "directory" msgstr "ディレクトリ" -#: sql_help.c:3063 +#: sql_help.c:3099 msgid "parser_name" msgstr "パーサ名" -#: sql_help.c:3064 +#: sql_help.c:3100 msgid "source_config" msgstr "複製元の設定" -#: sql_help.c:3093 +#: sql_help.c:3129 msgid "start_function" msgstr "開始関数" -#: sql_help.c:3094 +#: sql_help.c:3130 msgid "gettoken_function" msgstr "トークン取得関数" -#: sql_help.c:3095 +#: sql_help.c:3131 msgid "end_function" msgstr "終了関数" -#: sql_help.c:3096 +#: sql_help.c:3132 msgid "lextypes_function" msgstr "LEXTYPE関数" -#: sql_help.c:3097 +#: sql_help.c:3133 msgid "headline_function" msgstr "見出し関数" -#: sql_help.c:3109 +#: sql_help.c:3145 msgid "init_function" msgstr "初期処理関数" -#: sql_help.c:3110 +#: sql_help.c:3146 msgid "lexize_function" msgstr "LEXIZE関数" -#: sql_help.c:3123 +#: sql_help.c:3159 msgid "from_sql_function_name" msgstr "{FROM SQL 関数名}" -#: sql_help.c:3125 +#: sql_help.c:3161 msgid "to_sql_function_name" msgstr "{TO SQL 関数名}" -#: sql_help.c:3151 +#: sql_help.c:3187 msgid "referenced_table_name" msgstr "被参照テーブル名" -#: sql_help.c:3152 +#: sql_help.c:3188 msgid "transition_relation_name" msgstr "移行用リレーション名" -#: sql_help.c:3155 +#: sql_help.c:3191 msgid "arguments" msgstr "引数" -#: sql_help.c:3207 +#: sql_help.c:3243 msgid "label" msgstr "ラベル" -#: sql_help.c:3209 +#: sql_help.c:3245 msgid "subtype" msgstr "当該範囲のデータ型" -#: sql_help.c:3210 +#: sql_help.c:3246 msgid "subtype_operator_class" msgstr "当該範囲のデータ型の演算子クラス" -#: sql_help.c:3212 +#: sql_help.c:3248 msgid "canonical_function" msgstr "正規化関数" -#: sql_help.c:3213 +#: sql_help.c:3249 msgid "subtype_diff_function" msgstr "当該範囲のデータ型の差分抽出関数" -#: sql_help.c:3214 +#: sql_help.c:3250 msgid "multirange_type_name" msgstr "複範囲型名" -#: sql_help.c:3216 +#: sql_help.c:3252 msgid "input_function" msgstr "入力関数" -#: sql_help.c:3217 +#: sql_help.c:3253 msgid "output_function" msgstr "出力関数" -#: sql_help.c:3218 +#: sql_help.c:3254 msgid "receive_function" msgstr "受信関数" -#: sql_help.c:3219 +#: sql_help.c:3255 msgid "send_function" msgstr "送信関数" -#: sql_help.c:3220 +#: sql_help.c:3256 msgid "type_modifier_input_function" msgstr "型修飾子の入力関数" -#: sql_help.c:3221 +#: sql_help.c:3257 msgid "type_modifier_output_function" msgstr "型修飾子の出力関数" -#: sql_help.c:3222 +#: sql_help.c:3258 msgid "analyze_function" msgstr "分析関数" -#: sql_help.c:3223 +#: sql_help.c:3259 msgid "subscript_function" msgstr "添字関数" -#: sql_help.c:3224 +#: sql_help.c:3260 msgid "internallength" msgstr "内部長" -#: sql_help.c:3225 +#: sql_help.c:3261 msgid "alignment" msgstr "バイト境界" -#: sql_help.c:3226 +#: sql_help.c:3262 msgid "storage" msgstr "ストレージ" -#: sql_help.c:3227 +#: sql_help.c:3263 msgid "like_type" msgstr "LIKEの型" -#: sql_help.c:3228 +#: sql_help.c:3264 msgid "category" msgstr "カテゴリー" -#: sql_help.c:3229 +#: sql_help.c:3265 msgid "preferred" msgstr "優先データ型かどうか(真偽値)" -#: sql_help.c:3230 +#: sql_help.c:3266 msgid "default" msgstr "デフォルト" -#: sql_help.c:3231 +#: sql_help.c:3267 msgid "element" msgstr "要素のデータ型" -#: sql_help.c:3232 +#: sql_help.c:3268 msgid "delimiter" msgstr "区切り記号" -#: sql_help.c:3233 +#: sql_help.c:3269 msgid "collatable" msgstr "照合可能" -#: sql_help.c:3330 sql_help.c:4017 sql_help.c:4111 sql_help.c:4601 -#: sql_help.c:4704 sql_help.c:4859 sql_help.c:4973 sql_help.c:5104 +#: sql_help.c:3367 sql_help.c:4056 sql_help.c:4152 sql_help.c:4643 +#: sql_help.c:4746 sql_help.c:4901 sql_help.c:5016 sql_help.c:5148 msgid "with_query" msgstr "WITH問い合わせ" -#: sql_help.c:3332 sql_help.c:4019 sql_help.c:4620 sql_help.c:4626 -#: sql_help.c:4629 sql_help.c:4633 sql_help.c:4637 sql_help.c:4645 -#: sql_help.c:4878 sql_help.c:4884 sql_help.c:4887 sql_help.c:4891 -#: sql_help.c:4895 sql_help.c:4903 sql_help.c:4975 sql_help.c:5123 -#: sql_help.c:5129 sql_help.c:5132 sql_help.c:5136 sql_help.c:5140 -#: sql_help.c:5148 +#: sql_help.c:3369 sql_help.c:4058 sql_help.c:4662 sql_help.c:4668 +#: sql_help.c:4671 sql_help.c:4675 sql_help.c:4679 sql_help.c:4687 +#: sql_help.c:4920 sql_help.c:4926 sql_help.c:4929 sql_help.c:4933 +#: sql_help.c:4937 sql_help.c:4945 sql_help.c:5018 sql_help.c:5167 +#: sql_help.c:5173 sql_help.c:5176 sql_help.c:5180 sql_help.c:5184 +#: sql_help.c:5192 msgid "alias" msgstr "別名" -#: sql_help.c:3333 sql_help.c:4605 sql_help.c:4647 sql_help.c:4649 -#: sql_help.c:4653 sql_help.c:4655 sql_help.c:4656 sql_help.c:4657 -#: sql_help.c:4709 sql_help.c:4863 sql_help.c:4905 sql_help.c:4907 -#: sql_help.c:4911 sql_help.c:4913 sql_help.c:4914 sql_help.c:4915 -#: sql_help.c:4982 sql_help.c:5108 sql_help.c:5150 sql_help.c:5152 -#: sql_help.c:5156 sql_help.c:5158 sql_help.c:5159 sql_help.c:5160 +#: sql_help.c:3370 sql_help.c:4647 sql_help.c:4689 sql_help.c:4691 +#: sql_help.c:4695 sql_help.c:4697 sql_help.c:4698 sql_help.c:4699 +#: sql_help.c:4751 sql_help.c:4905 sql_help.c:4947 sql_help.c:4949 +#: sql_help.c:4953 sql_help.c:4955 sql_help.c:4956 sql_help.c:4957 +#: sql_help.c:5025 sql_help.c:5152 sql_help.c:5194 sql_help.c:5196 +#: sql_help.c:5200 sql_help.c:5202 sql_help.c:5203 sql_help.c:5204 msgid "from_item" msgstr "FROM項目" -#: sql_help.c:3335 sql_help.c:3819 sql_help.c:4168 sql_help.c:4984 +#: sql_help.c:3372 sql_help.c:3857 sql_help.c:4210 sql_help.c:5027 msgid "cursor_name" msgstr "カーソル名" -#: sql_help.c:3336 sql_help.c:4025 sql_help.c:4117 sql_help.c:4985 +#: sql_help.c:3373 sql_help.c:4064 sql_help.c:4158 sql_help.c:5028 +msgid "output_alias" +msgstr "出力別名" + +#: sql_help.c:3374 sql_help.c:4065 sql_help.c:4159 sql_help.c:5029 msgid "output_expression" msgstr "出力表現" -#: sql_help.c:3337 sql_help.c:4026 sql_help.c:4118 sql_help.c:4604 -#: sql_help.c:4707 sql_help.c:4862 sql_help.c:4986 sql_help.c:5107 +#: sql_help.c:3375 sql_help.c:4066 sql_help.c:4160 sql_help.c:4646 +#: sql_help.c:4749 sql_help.c:4904 sql_help.c:5030 sql_help.c:5151 msgid "output_name" msgstr "出力名" -#: sql_help.c:3353 +#: sql_help.c:3391 msgid "code" msgstr "コードブロック" -#: sql_help.c:3758 +#: sql_help.c:3796 msgid "parameter" msgstr "パラメータ" -#: sql_help.c:3782 sql_help.c:4193 +#: sql_help.c:3820 sql_help.c:4235 msgid "statement" msgstr "文" -#: sql_help.c:3818 sql_help.c:4167 +#: sql_help.c:3856 sql_help.c:4209 msgid "direction" msgstr "方向" -#: sql_help.c:3820 sql_help.c:4169 +#: sql_help.c:3858 sql_help.c:4211 msgid "where direction can be one of:" msgstr "方向 は以下のうちのいずれか:" -#: sql_help.c:3821 sql_help.c:3822 sql_help.c:3823 sql_help.c:3824 -#: sql_help.c:3825 sql_help.c:4170 sql_help.c:4171 sql_help.c:4172 -#: sql_help.c:4173 sql_help.c:4174 sql_help.c:4614 sql_help.c:4616 -#: sql_help.c:4718 sql_help.c:4720 sql_help.c:4872 sql_help.c:4874 -#: sql_help.c:5048 sql_help.c:5050 sql_help.c:5117 sql_help.c:5119 +#: sql_help.c:3859 sql_help.c:3860 sql_help.c:3861 sql_help.c:3862 +#: sql_help.c:3863 sql_help.c:4212 sql_help.c:4213 sql_help.c:4214 +#: sql_help.c:4215 sql_help.c:4216 sql_help.c:4656 sql_help.c:4658 +#: sql_help.c:4760 sql_help.c:4762 sql_help.c:4914 sql_help.c:4916 +#: sql_help.c:5092 sql_help.c:5094 sql_help.c:5161 sql_help.c:5163 msgid "count" msgstr "取り出す位置や行数" -#: sql_help.c:3928 sql_help.c:4391 +#: sql_help.c:3966 sql_help.c:4433 msgid "sequence_name" msgstr "シーケンス名" -#: sql_help.c:3946 sql_help.c:4409 +#: sql_help.c:3984 sql_help.c:4451 msgid "arg_name" msgstr "引数名" -#: sql_help.c:3947 sql_help.c:4410 +#: sql_help.c:3985 sql_help.c:4452 msgid "arg_type" msgstr "引数の型" -#: sql_help.c:3954 sql_help.c:4417 +#: sql_help.c:3992 sql_help.c:4459 msgid "loid" msgstr "ラージオブジェクトid" -#: sql_help.c:3985 +#: sql_help.c:4023 msgid "remote_schema" msgstr "リモートスキーマ" -#: sql_help.c:3988 +#: sql_help.c:4026 msgid "local_schema" msgstr "ローカルスキーマ" -#: sql_help.c:4023 +#: sql_help.c:4062 msgid "conflict_target" msgstr "競合ターゲット" -#: sql_help.c:4024 +#: sql_help.c:4063 msgid "conflict_action" msgstr "競合時アクション" -#: sql_help.c:4027 +#: sql_help.c:4067 msgid "where conflict_target can be one of:" msgstr "競合ターゲットは以下のいずれかです:" -#: sql_help.c:4028 +#: sql_help.c:4068 msgid "index_column_name" msgstr "インデックスのカラム名" -#: sql_help.c:4029 +#: sql_help.c:4069 msgid "index_expression" msgstr "インデックス表現" -#: sql_help.c:4032 +#: sql_help.c:4072 msgid "index_predicate" msgstr "インデックスの述語" -#: sql_help.c:4034 +#: sql_help.c:4074 msgid "and conflict_action is one of:" msgstr "競合時アクションは以下のいずれかです:" -#: sql_help.c:4040 sql_help.c:4141 sql_help.c:4981 +#: sql_help.c:4080 sql_help.c:4183 sql_help.c:5024 msgid "sub-SELECT" msgstr "副問い合わせ句" -#: sql_help.c:4049 sql_help.c:4182 sql_help.c:4957 +#: sql_help.c:4089 sql_help.c:4224 sql_help.c:4999 msgid "channel" msgstr "チャネル" -#: sql_help.c:4071 +#: sql_help.c:4111 msgid "lockmode" msgstr "ロックモード" -#: sql_help.c:4072 +#: sql_help.c:4112 msgid "where lockmode is one of:" msgstr "ロックモードは以下のいずれかです:" -#: sql_help.c:4112 +#: sql_help.c:4153 msgid "target_table_name" msgstr "ターゲットテーブル名" -#: sql_help.c:4113 +#: sql_help.c:4154 msgid "target_alias" msgstr "ターゲット別名" -#: sql_help.c:4114 +#: sql_help.c:4155 msgid "data_source" msgstr "データ源" -#: sql_help.c:4115 sql_help.c:4650 sql_help.c:4908 sql_help.c:5153 +#: sql_help.c:4156 sql_help.c:4692 sql_help.c:4950 sql_help.c:5197 msgid "join_condition" msgstr "JOIN条件" -#: sql_help.c:4116 +#: sql_help.c:4157 msgid "when_clause" msgstr "WHEN句" -#: sql_help.c:4119 +#: sql_help.c:4161 msgid "where data_source is:" msgstr "ここで\"データ源\"は以下の通り:" -#: sql_help.c:4120 +#: sql_help.c:4162 msgid "source_table_name" msgstr "データ源テーブル名" -#: sql_help.c:4121 +#: sql_help.c:4163 msgid "source_query" msgstr "データ源問い合わせ" -#: sql_help.c:4122 +#: sql_help.c:4164 msgid "source_alias" msgstr "データ源別名" -#: sql_help.c:4123 +#: sql_help.c:4165 msgid "and when_clause is:" msgstr "WHEN句は以下の通り:" -#: sql_help.c:4125 sql_help.c:4128 +#: sql_help.c:4167 sql_help.c:4170 msgid "merge_update" msgstr "マージ更新" -#: sql_help.c:4126 sql_help.c:4129 +#: sql_help.c:4168 sql_help.c:4171 msgid "merge_delete" msgstr "マージ削除" -#: sql_help.c:4131 +#: sql_help.c:4173 msgid "merge_insert" msgstr "マージ挿入" -#: sql_help.c:4132 +#: sql_help.c:4174 msgid "and merge_insert is:" msgstr "そして\"マージ挿入\"は以下の通り:" -#: sql_help.c:4135 +#: sql_help.c:4177 msgid "and merge_update is:" msgstr "そして\"マージ更新\"は以下の通り:" -#: sql_help.c:4142 +#: sql_help.c:4184 msgid "and merge_delete is:" msgstr "そして\"マージ削除\"は以下の通り:" -#: sql_help.c:4183 +#: sql_help.c:4225 msgid "payload" msgstr "ペイロード" -#: sql_help.c:4210 +#: sql_help.c:4252 msgid "old_role" msgstr "元のロール" -#: sql_help.c:4211 +#: sql_help.c:4253 msgid "new_role" msgstr "新しいロール" -#: sql_help.c:4250 sql_help.c:4459 sql_help.c:4467 +#: sql_help.c:4292 sql_help.c:4501 sql_help.c:4509 msgid "savepoint_name" msgstr "セーブポイント名" -#: sql_help.c:4607 sql_help.c:4665 sql_help.c:4865 sql_help.c:4923 -#: sql_help.c:5110 sql_help.c:5168 +#: sql_help.c:4649 sql_help.c:4707 sql_help.c:4907 sql_help.c:4965 +#: sql_help.c:5154 sql_help.c:5212 msgid "grouping_element" msgstr "グルーピング要素" -#: sql_help.c:4609 sql_help.c:4713 sql_help.c:4867 sql_help.c:5112 +#: sql_help.c:4651 sql_help.c:4755 sql_help.c:4909 sql_help.c:5156 msgid "window_name" msgstr "ウィンドウ名" -#: sql_help.c:4610 sql_help.c:4714 sql_help.c:4868 sql_help.c:5113 +#: sql_help.c:4652 sql_help.c:4756 sql_help.c:4910 sql_help.c:5157 msgid "window_definition" msgstr "ウィンドウ定義" -#: sql_help.c:4611 sql_help.c:4625 sql_help.c:4669 sql_help.c:4715 -#: sql_help.c:4869 sql_help.c:4883 sql_help.c:4927 sql_help.c:5114 -#: sql_help.c:5128 sql_help.c:5172 +#: sql_help.c:4653 sql_help.c:4667 sql_help.c:4711 sql_help.c:4757 +#: sql_help.c:4911 sql_help.c:4925 sql_help.c:4969 sql_help.c:5158 +#: sql_help.c:5172 sql_help.c:5216 msgid "select" msgstr "SELECT句" -#: sql_help.c:4617 sql_help.c:4875 sql_help.c:5120 +#: sql_help.c:4659 sql_help.c:4917 sql_help.c:5164 msgid "from_reference" msgstr "FROM参照" -#: sql_help.c:4618 sql_help.c:4876 sql_help.c:5121 +#: sql_help.c:4660 sql_help.c:4918 sql_help.c:5165 msgid "where from_item can be one of:" msgstr "FROM項目は以下のいずれかです:" -#: sql_help.c:4621 sql_help.c:4627 sql_help.c:4630 sql_help.c:4634 -#: sql_help.c:4646 sql_help.c:4879 sql_help.c:4885 sql_help.c:4888 -#: sql_help.c:4892 sql_help.c:4904 sql_help.c:5124 sql_help.c:5130 -#: sql_help.c:5133 sql_help.c:5137 sql_help.c:5149 +#: sql_help.c:4663 sql_help.c:4669 sql_help.c:4672 sql_help.c:4676 +#: sql_help.c:4688 sql_help.c:4921 sql_help.c:4927 sql_help.c:4930 +#: sql_help.c:4934 sql_help.c:4946 sql_help.c:5168 sql_help.c:5174 +#: sql_help.c:5177 sql_help.c:5181 sql_help.c:5193 msgid "column_alias" msgstr "列別名" -#: sql_help.c:4622 sql_help.c:4880 sql_help.c:5125 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5169 msgid "sampling_method" msgstr "サンプリングメソッド" -#: sql_help.c:4624 sql_help.c:4882 sql_help.c:5127 +#: sql_help.c:4666 sql_help.c:4924 sql_help.c:5171 msgid "seed" msgstr "乱数シード" -#: sql_help.c:4628 sql_help.c:4667 sql_help.c:4886 sql_help.c:4925 -#: sql_help.c:5131 sql_help.c:5170 +#: sql_help.c:4670 sql_help.c:4709 sql_help.c:4928 sql_help.c:4967 +#: sql_help.c:5175 sql_help.c:5214 msgid "with_query_name" msgstr "WITH問い合わせ名" -#: sql_help.c:4638 sql_help.c:4641 sql_help.c:4644 sql_help.c:4896 -#: sql_help.c:4899 sql_help.c:4902 sql_help.c:5141 sql_help.c:5144 -#: sql_help.c:5147 +#: sql_help.c:4680 sql_help.c:4683 sql_help.c:4686 sql_help.c:4938 +#: sql_help.c:4941 sql_help.c:4944 sql_help.c:5185 sql_help.c:5188 +#: sql_help.c:5191 msgid "column_definition" msgstr "カラム定義" -#: sql_help.c:4648 sql_help.c:4654 sql_help.c:4906 sql_help.c:4912 -#: sql_help.c:5151 sql_help.c:5157 +#: sql_help.c:4690 sql_help.c:4696 sql_help.c:4948 sql_help.c:4954 +#: sql_help.c:5195 sql_help.c:5201 msgid "join_type" msgstr "JOINタイプ" -#: sql_help.c:4651 sql_help.c:4909 sql_help.c:5154 +#: sql_help.c:4693 sql_help.c:4951 sql_help.c:5198 msgid "join_column" msgstr "JOINカラム" -#: sql_help.c:4652 sql_help.c:4910 sql_help.c:5155 +#: sql_help.c:4694 sql_help.c:4952 sql_help.c:5199 msgid "join_using_alias" msgstr "JOIN用別名" -#: sql_help.c:4658 sql_help.c:4916 sql_help.c:5161 +#: sql_help.c:4700 sql_help.c:4958 sql_help.c:5205 msgid "and grouping_element can be one of:" msgstr "グルーピング要素は以下のいずれかです:" -#: sql_help.c:4666 sql_help.c:4924 sql_help.c:5169 +#: sql_help.c:4708 sql_help.c:4966 sql_help.c:5213 msgid "and with_query is:" msgstr "WITH問い合わせは以下のいずれかです:" -#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 +#: sql_help.c:4712 sql_help.c:4970 sql_help.c:5217 msgid "values" msgstr "VALUES句" -#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 +#: sql_help.c:4713 sql_help.c:4971 sql_help.c:5218 msgid "insert" msgstr "INSERT句" -#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 +#: sql_help.c:4714 sql_help.c:4972 sql_help.c:5219 msgid "update" msgstr "UPDATE句" -#: sql_help.c:4673 sql_help.c:4931 sql_help.c:5176 +#: sql_help.c:4715 sql_help.c:4973 sql_help.c:5220 msgid "delete" msgstr "DELETE句" -#: sql_help.c:4674 sql_help.c:4932 sql_help.c:5177 +#: sql_help.c:4716 sql_help.c:4974 sql_help.c:5221 msgid "merge" msgstr "MERGE句" -#: sql_help.c:4676 sql_help.c:4934 sql_help.c:5179 +#: sql_help.c:4718 sql_help.c:4976 sql_help.c:5223 msgid "search_seq_col_name" msgstr "SEARCH順序列名" -#: sql_help.c:4678 sql_help.c:4936 sql_help.c:5181 +#: sql_help.c:4720 sql_help.c:4978 sql_help.c:5225 msgid "cycle_mark_col_name" msgstr "循環識別列名" -#: sql_help.c:4679 sql_help.c:4937 sql_help.c:5182 +#: sql_help.c:4721 sql_help.c:4979 sql_help.c:5226 msgid "cycle_mark_value" msgstr "循環識別値" -#: sql_help.c:4680 sql_help.c:4938 sql_help.c:5183 +#: sql_help.c:4722 sql_help.c:4980 sql_help.c:5227 msgid "cycle_mark_default" msgstr "循環識別デフォルト" -#: sql_help.c:4681 sql_help.c:4939 sql_help.c:5184 +#: sql_help.c:4723 sql_help.c:4981 sql_help.c:5228 msgid "cycle_path_col_name" msgstr "循環パス列名" -#: sql_help.c:4708 +#: sql_help.c:4750 msgid "new_table" msgstr "新しいテーブル" -#: sql_help.c:4779 +#: sql_help.c:4821 msgid "snapshot_id" msgstr "スナップショットID" -#: sql_help.c:5046 +#: sql_help.c:5090 msgid "sort_expression" msgstr "ソート表現" -#: sql_help.c:5191 sql_help.c:6175 +#: sql_help.c:5235 sql_help.c:6219 msgid "abort the current transaction" msgstr "現在のトランザクションを中止します" -#: sql_help.c:5197 +#: sql_help.c:5241 msgid "change the definition of an aggregate function" msgstr "集約関数の定義を変更します" -#: sql_help.c:5203 +#: sql_help.c:5247 msgid "change the definition of a collation" msgstr "照合順序の定義を変更します" -#: sql_help.c:5209 +#: sql_help.c:5253 msgid "change the definition of a conversion" msgstr "エンコーディング変換ルールの定義を変更します" -#: sql_help.c:5215 +#: sql_help.c:5259 msgid "change a database" msgstr "データベースを変更します" -#: sql_help.c:5221 +#: sql_help.c:5265 msgid "define default access privileges" msgstr "デフォルトのアクセス権限を定義します" -#: sql_help.c:5227 +#: sql_help.c:5271 msgid "change the definition of a domain" msgstr "ドメインの定義を変更します" -#: sql_help.c:5233 +#: sql_help.c:5277 msgid "change the definition of an event trigger" msgstr "イベントトリガーの定義を変更します" -#: sql_help.c:5239 +#: sql_help.c:5283 msgid "change the definition of an extension" msgstr "機能拡張の定義を変更します" -#: sql_help.c:5245 +#: sql_help.c:5289 msgid "change the definition of a foreign-data wrapper" msgstr "外部データラッパの定義を変更します" -#: sql_help.c:5251 +#: sql_help.c:5295 msgid "change the definition of a foreign table" msgstr "外部テーブルの定義を変更します" -#: sql_help.c:5257 +#: sql_help.c:5301 msgid "change the definition of a function" msgstr "関数の定義を変更します" -#: sql_help.c:5263 +#: sql_help.c:5307 msgid "change role name or membership" msgstr "ロール名またはメンバーシップを変更します" -#: sql_help.c:5269 +#: sql_help.c:5313 msgid "change the definition of an index" msgstr "インデックスの定義を変更します" -#: sql_help.c:5275 +#: sql_help.c:5319 msgid "change the definition of a procedural language" msgstr "手続き言語の定義を変更します" -#: sql_help.c:5281 +#: sql_help.c:5325 msgid "change the definition of a large object" msgstr "ラージオブジェクトの定義を変更します" -#: sql_help.c:5287 +#: sql_help.c:5331 msgid "change the definition of a materialized view" msgstr "実体化ビューの定義を変更します" -#: sql_help.c:5293 +#: sql_help.c:5337 msgid "change the definition of an operator" msgstr "演算子の定義を変更します" -#: sql_help.c:5299 +#: sql_help.c:5343 msgid "change the definition of an operator class" msgstr "演算子クラスの定義を変更します" -#: sql_help.c:5305 +#: sql_help.c:5349 msgid "change the definition of an operator family" msgstr "演算子族の定義を変更します" -#: sql_help.c:5311 +#: sql_help.c:5355 msgid "change the definition of a row-level security policy" msgstr "行レベルのセキュリティ ポリシーの定義を変更します" -#: sql_help.c:5317 +#: sql_help.c:5361 msgid "change the definition of a procedure" msgstr "プロシージャの定義を変更します" -#: sql_help.c:5323 +#: sql_help.c:5367 msgid "change the definition of a publication" msgstr "パブリケーションの定義を変更します" -#: sql_help.c:5329 sql_help.c:5431 +#: sql_help.c:5373 sql_help.c:5475 msgid "change a database role" msgstr "データベースロールを変更します" -#: sql_help.c:5335 +#: sql_help.c:5379 msgid "change the definition of a routine" msgstr "ルーチンの定義を変更します" -#: sql_help.c:5341 +#: sql_help.c:5385 msgid "change the definition of a rule" msgstr "ルールの定義を変更します" -#: sql_help.c:5347 +#: sql_help.c:5391 msgid "change the definition of a schema" msgstr "スキーマの定義を変更します" -#: sql_help.c:5353 +#: sql_help.c:5397 msgid "change the definition of a sequence generator" msgstr "シーケンス生成器の定義を変更します" -#: sql_help.c:5359 +#: sql_help.c:5403 msgid "change the definition of a foreign server" msgstr "外部サーバーの定義を変更します" -#: sql_help.c:5365 +#: sql_help.c:5409 msgid "change the definition of an extended statistics object" msgstr "拡張統計情報オブジェクトの定義を変更します" -#: sql_help.c:5371 +#: sql_help.c:5415 msgid "change the definition of a subscription" msgstr "サブスクリプションの定義を変更します" -#: sql_help.c:5377 +#: sql_help.c:5421 msgid "change a server configuration parameter" msgstr "サーバーの設定パラメータを変更します" -#: sql_help.c:5383 +#: sql_help.c:5427 msgid "change the definition of a table" msgstr "テーブルの定義を変更します。" -#: sql_help.c:5389 +#: sql_help.c:5433 msgid "change the definition of a tablespace" msgstr "テーブル空間の定義を変更します" -#: sql_help.c:5395 +#: sql_help.c:5439 msgid "change the definition of a text search configuration" msgstr "テキスト検索設定の定義を変更します" -#: sql_help.c:5401 +#: sql_help.c:5445 msgid "change the definition of a text search dictionary" msgstr "テキスト検索辞書の定義を変更します" -#: sql_help.c:5407 +#: sql_help.c:5451 msgid "change the definition of a text search parser" msgstr "テキスト検索パーサーの定義を変更します" -#: sql_help.c:5413 +#: sql_help.c:5457 msgid "change the definition of a text search template" msgstr "テキスト検索テンプレートの定義を変更します" -#: sql_help.c:5419 +#: sql_help.c:5463 msgid "change the definition of a trigger" msgstr "トリガーの定義を変更します" -#: sql_help.c:5425 +#: sql_help.c:5469 msgid "change the definition of a type" msgstr "型の定義を変更します" -#: sql_help.c:5437 +#: sql_help.c:5481 msgid "change the definition of a user mapping" msgstr "ユーザーマッピングの定義を変更します" -#: sql_help.c:5443 +#: sql_help.c:5487 msgid "change the definition of a view" msgstr "ビューの定義を変更します" -#: sql_help.c:5449 +#: sql_help.c:5493 msgid "collect statistics about a database" msgstr "データベースの統計情報を収集します" -#: sql_help.c:5455 sql_help.c:6253 +#: sql_help.c:5499 sql_help.c:6297 msgid "start a transaction block" msgstr "トランザクション区間を開始します" -#: sql_help.c:5461 +#: sql_help.c:5505 msgid "invoke a procedure" msgstr "プロシージャを実行します" -#: sql_help.c:5467 +#: sql_help.c:5511 msgid "force a write-ahead log checkpoint" msgstr "先行書き込みログのチェックポイントを強制的に実行します" -#: sql_help.c:5473 +#: sql_help.c:5517 msgid "close a cursor" msgstr "カーソルを閉じます" -#: sql_help.c:5479 +#: sql_help.c:5523 msgid "cluster a table according to an index" msgstr "インデックスに従ってテーブルをクラスタ化します" -#: sql_help.c:5485 +#: sql_help.c:5529 msgid "define or change the comment of an object" msgstr "オブジェクトのコメントを定義または変更します" -#: sql_help.c:5491 sql_help.c:6049 +#: sql_help.c:5535 sql_help.c:6093 msgid "commit the current transaction" msgstr "現在のトランザクションをコミットします" -#: sql_help.c:5497 +#: sql_help.c:5541 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "二相コミットのために事前に準備されたトランザクションをコミットします" -#: sql_help.c:5503 +#: sql_help.c:5547 msgid "copy data between a file and a table" msgstr "ファイルとテーブルとの間でデータをコピーします" -#: sql_help.c:5509 +#: sql_help.c:5553 msgid "define a new access method" msgstr "新しいアクセスメソッドを定義します" -#: sql_help.c:5515 +#: sql_help.c:5559 msgid "define a new aggregate function" msgstr "新しい集約関数を定義します" -#: sql_help.c:5521 +#: sql_help.c:5565 msgid "define a new cast" msgstr "新しい型変換を定義します" -#: sql_help.c:5527 +#: sql_help.c:5571 msgid "define a new collation" msgstr "新しい照合順序を定義します" -#: sql_help.c:5533 +#: sql_help.c:5577 msgid "define a new encoding conversion" msgstr "新しいエンコーディング変換を定義します" -#: sql_help.c:5539 +#: sql_help.c:5583 msgid "create a new database" msgstr "新しいデータベースを作成します" -#: sql_help.c:5545 +#: sql_help.c:5589 msgid "define a new domain" msgstr "新しいドメインを定義します" -#: sql_help.c:5551 +#: sql_help.c:5595 msgid "define a new event trigger" msgstr "新しいイベントトリガーを定義します" -#: sql_help.c:5557 +#: sql_help.c:5601 msgid "install an extension" msgstr "機能拡張をインストールします" -#: sql_help.c:5563 +#: sql_help.c:5607 msgid "define a new foreign-data wrapper" msgstr "新しい外部データラッパを定義します" -#: sql_help.c:5569 +#: sql_help.c:5613 msgid "define a new foreign table" msgstr "新しい外部テーブルを定義します" -#: sql_help.c:5575 +#: sql_help.c:5619 msgid "define a new function" msgstr "新しい関数を定義します" -#: sql_help.c:5581 sql_help.c:5641 sql_help.c:5743 +#: sql_help.c:5625 sql_help.c:5685 sql_help.c:5787 msgid "define a new database role" msgstr "新しいデータベースロールを定義します" -#: sql_help.c:5587 +#: sql_help.c:5631 msgid "define a new index" msgstr "新しいインデックスを定義します" -#: sql_help.c:5593 +#: sql_help.c:5637 msgid "define a new procedural language" msgstr "新しい手続き言語を定義します" -#: sql_help.c:5599 +#: sql_help.c:5643 msgid "define a new materialized view" msgstr "新しい実体化ビューを定義します" -#: sql_help.c:5605 +#: sql_help.c:5649 msgid "define a new operator" msgstr "新しい演算子を定義します" -#: sql_help.c:5611 +#: sql_help.c:5655 msgid "define a new operator class" msgstr "新しい演算子クラスを定義します" -#: sql_help.c:5617 +#: sql_help.c:5661 msgid "define a new operator family" msgstr "新しい演算子族を定義します" -#: sql_help.c:5623 +#: sql_help.c:5667 msgid "define a new row-level security policy for a table" msgstr "テーブルに対して新しい行レベルセキュリティポリシーを定義します" -#: sql_help.c:5629 +#: sql_help.c:5673 msgid "define a new procedure" msgstr "新しいプロシージャを定義します" -#: sql_help.c:5635 +#: sql_help.c:5679 msgid "define a new publication" msgstr "新しいパブリケーションを定義します" -#: sql_help.c:5647 +#: sql_help.c:5691 msgid "define a new rewrite rule" msgstr "新しい書き換えルールを定義します" -#: sql_help.c:5653 +#: sql_help.c:5697 msgid "define a new schema" msgstr "新しいスキーマを定義します" -#: sql_help.c:5659 +#: sql_help.c:5703 msgid "define a new sequence generator" msgstr "新しいシーケンス生成器を定義します。" -#: sql_help.c:5665 +#: sql_help.c:5709 msgid "define a new foreign server" msgstr "新しい外部サーバーを定義します" -#: sql_help.c:5671 +#: sql_help.c:5715 msgid "define extended statistics" msgstr "拡張統計情報を定義します" -#: sql_help.c:5677 +#: sql_help.c:5721 msgid "define a new subscription" msgstr "新しいサブスクリプションを定義します" -#: sql_help.c:5683 +#: sql_help.c:5727 msgid "define a new table" msgstr "新しいテーブルを定義します" -#: sql_help.c:5689 sql_help.c:6211 +#: sql_help.c:5733 sql_help.c:6255 msgid "define a new table from the results of a query" msgstr "問い合わせの結果から新しいテーブルを定義します" -#: sql_help.c:5695 +#: sql_help.c:5739 msgid "define a new tablespace" msgstr "新しいテーブル空間を定義します" -#: sql_help.c:5701 +#: sql_help.c:5745 msgid "define a new text search configuration" msgstr "新しいテキスト検索設定を定義します" -#: sql_help.c:5707 +#: sql_help.c:5751 msgid "define a new text search dictionary" msgstr "新しいテキスト検索辞書を定義します" -#: sql_help.c:5713 +#: sql_help.c:5757 msgid "define a new text search parser" msgstr "新しいテキスト検索パーサーを定義します" -#: sql_help.c:5719 +#: sql_help.c:5763 msgid "define a new text search template" msgstr "新しいテキスト検索テンプレートを定義します" -#: sql_help.c:5725 +#: sql_help.c:5769 msgid "define a new transform" msgstr "新しいデータ変換を定義します" -#: sql_help.c:5731 +#: sql_help.c:5775 msgid "define a new trigger" msgstr "新しいトリガーを定義します" -#: sql_help.c:5737 +#: sql_help.c:5781 msgid "define a new data type" msgstr "新しいデータ型を定義します" -#: sql_help.c:5749 +#: sql_help.c:5793 msgid "define a new mapping of a user to a foreign server" msgstr "外部サーバーに対するユーザーの新しいマッピングを定義します。" -#: sql_help.c:5755 +#: sql_help.c:5799 msgid "define a new view" msgstr "新しいビューを定義します" -#: sql_help.c:5761 +#: sql_help.c:5805 msgid "deallocate a prepared statement" msgstr "準備した文を解放します" -#: sql_help.c:5767 +#: sql_help.c:5811 msgid "define a cursor" msgstr "カーソルを定義します" -#: sql_help.c:5773 +#: sql_help.c:5817 msgid "delete rows of a table" msgstr "テーブルの行を削除します" -#: sql_help.c:5779 +#: sql_help.c:5823 msgid "discard session state" msgstr "セッション状態を破棄します" -#: sql_help.c:5785 +#: sql_help.c:5829 msgid "execute an anonymous code block" msgstr "無名コードブロックを実行します" -#: sql_help.c:5791 +#: sql_help.c:5835 msgid "remove an access method" msgstr "アクセスメソッドを削除します" -#: sql_help.c:5797 +#: sql_help.c:5841 msgid "remove an aggregate function" msgstr "集約関数を削除します" -#: sql_help.c:5803 +#: sql_help.c:5847 msgid "remove a cast" msgstr "型変換を削除します" -#: sql_help.c:5809 +#: sql_help.c:5853 msgid "remove a collation" msgstr "照合順序を削除します" -#: sql_help.c:5815 +#: sql_help.c:5859 msgid "remove a conversion" msgstr "符号化方式変換を削除します" -#: sql_help.c:5821 +#: sql_help.c:5865 msgid "remove a database" msgstr "データベースを削除します" -#: sql_help.c:5827 +#: sql_help.c:5871 msgid "remove a domain" msgstr "ドメインを削除します" -#: sql_help.c:5833 +#: sql_help.c:5877 msgid "remove an event trigger" msgstr "イベントトリガーを削除します" -#: sql_help.c:5839 +#: sql_help.c:5883 msgid "remove an extension" msgstr "機能拡張を削除します" -#: sql_help.c:5845 +#: sql_help.c:5889 msgid "remove a foreign-data wrapper" msgstr "外部データラッパを削除します" -#: sql_help.c:5851 +#: sql_help.c:5895 msgid "remove a foreign table" msgstr "外部テーブルを削除します" -#: sql_help.c:5857 +#: sql_help.c:5901 msgid "remove a function" msgstr "関数を削除します" -#: sql_help.c:5863 sql_help.c:5929 sql_help.c:6031 +#: sql_help.c:5907 sql_help.c:5973 sql_help.c:6075 msgid "remove a database role" msgstr "データベースロールを削除します" -#: sql_help.c:5869 +#: sql_help.c:5913 msgid "remove an index" msgstr "インデックスを削除します" -#: sql_help.c:5875 +#: sql_help.c:5919 msgid "remove a procedural language" msgstr "手続き言語を削除します" -#: sql_help.c:5881 +#: sql_help.c:5925 msgid "remove a materialized view" msgstr "実体化ビューを削除します" -#: sql_help.c:5887 +#: sql_help.c:5931 msgid "remove an operator" msgstr "演算子を削除します" -#: sql_help.c:5893 +#: sql_help.c:5937 msgid "remove an operator class" msgstr "演算子クラスを削除します" -#: sql_help.c:5899 +#: sql_help.c:5943 msgid "remove an operator family" msgstr "演算子族を削除します" -#: sql_help.c:5905 +#: sql_help.c:5949 msgid "remove database objects owned by a database role" msgstr "データベースロールが所有するデータベースオブジェクトを削除します" -#: sql_help.c:5911 +#: sql_help.c:5955 msgid "remove a row-level security policy from a table" msgstr "テーブルから行レベルのセキュリティポリシーを削除します" -#: sql_help.c:5917 +#: sql_help.c:5961 msgid "remove a procedure" msgstr "プロシージャを削除します" -#: sql_help.c:5923 +#: sql_help.c:5967 msgid "remove a publication" msgstr "パブリケーションを削除します" -#: sql_help.c:5935 +#: sql_help.c:5979 msgid "remove a routine" msgstr "ルーチンを削除します" -#: sql_help.c:5941 +#: sql_help.c:5985 msgid "remove a rewrite rule" msgstr "書き換えルールを削除します" -#: sql_help.c:5947 +#: sql_help.c:5991 msgid "remove a schema" msgstr "スキーマを削除します" -#: sql_help.c:5953 +#: sql_help.c:5997 msgid "remove a sequence" msgstr "シーケンスを削除します" -#: sql_help.c:5959 +#: sql_help.c:6003 msgid "remove a foreign server descriptor" msgstr "外部サーバー記述子を削除します" -#: sql_help.c:5965 +#: sql_help.c:6009 msgid "remove extended statistics" msgstr "拡張統計情報を削除します" -#: sql_help.c:5971 +#: sql_help.c:6015 msgid "remove a subscription" msgstr "サブスクリプションを削除します" -#: sql_help.c:5977 +#: sql_help.c:6021 msgid "remove a table" msgstr "テーブルを削除します" -#: sql_help.c:5983 +#: sql_help.c:6027 msgid "remove a tablespace" msgstr "テーブル空間を削除します" -#: sql_help.c:5989 +#: sql_help.c:6033 msgid "remove a text search configuration" msgstr "テキスト検索設定を削除します" -#: sql_help.c:5995 +#: sql_help.c:6039 msgid "remove a text search dictionary" msgstr "テキスト検索辞書を削除します" -#: sql_help.c:6001 +#: sql_help.c:6045 msgid "remove a text search parser" msgstr "テキスト検索パーサーを削除します" -#: sql_help.c:6007 +#: sql_help.c:6051 msgid "remove a text search template" msgstr "テキスト検索テンプレートを削除します" -#: sql_help.c:6013 +#: sql_help.c:6057 msgid "remove a transform" msgstr "データ変換を削除します" -#: sql_help.c:6019 +#: sql_help.c:6063 msgid "remove a trigger" msgstr "トリガーを削除します" -#: sql_help.c:6025 +#: sql_help.c:6069 msgid "remove a data type" msgstr "データ型を削除します" -#: sql_help.c:6037 +#: sql_help.c:6081 msgid "remove a user mapping for a foreign server" msgstr "外部サーバーのユーザーマッピングを削除します" -#: sql_help.c:6043 +#: sql_help.c:6087 msgid "remove a view" msgstr "ビューを削除します" -#: sql_help.c:6055 +#: sql_help.c:6099 msgid "execute a prepared statement" msgstr "準備した文を実行します" -#: sql_help.c:6061 +#: sql_help.c:6105 msgid "show the execution plan of a statement" msgstr "文の実行計画を表示します" -#: sql_help.c:6067 +#: sql_help.c:6111 msgid "retrieve rows from a query using a cursor" msgstr "カーソルを使って問い合わせから行を取り出します" -#: sql_help.c:6073 +#: sql_help.c:6117 msgid "define access privileges" msgstr "アクセス権限を定義します" -#: sql_help.c:6079 +#: sql_help.c:6123 msgid "import table definitions from a foreign server" msgstr "外部サーバーからテーブル定義をインポートします" -#: sql_help.c:6085 +#: sql_help.c:6129 msgid "create new rows in a table" msgstr "テーブルに新しい行を作成します" -#: sql_help.c:6091 +#: sql_help.c:6135 msgid "listen for a notification" msgstr "通知メッセージを監視します" -#: sql_help.c:6097 +#: sql_help.c:6141 msgid "load a shared library file" msgstr "共有ライブラリファイルをロードします" -#: sql_help.c:6103 +#: sql_help.c:6147 msgid "lock a table" msgstr "テーブルをロックします" -#: sql_help.c:6109 +#: sql_help.c:6153 msgid "conditionally insert, update, or delete rows of a table" msgstr "条件によってテーブルの行を挿入、更新または削除する" -#: sql_help.c:6115 +#: sql_help.c:6159 msgid "position a cursor" msgstr "カーソルを位置づけます" -#: sql_help.c:6121 +#: sql_help.c:6165 msgid "generate a notification" msgstr "通知を生成します" -#: sql_help.c:6127 +#: sql_help.c:6171 msgid "prepare a statement for execution" msgstr "実行に備えて文を準備します" -#: sql_help.c:6133 +#: sql_help.c:6177 msgid "prepare the current transaction for two-phase commit" msgstr "二相コミットに備えて現在のトランザクションを準備します" -#: sql_help.c:6139 +#: sql_help.c:6183 msgid "change the ownership of database objects owned by a database role" msgstr "データベースロールが所有するデータベースオブジェクトの所有権を変更します" -#: sql_help.c:6145 +#: sql_help.c:6189 msgid "replace the contents of a materialized view" msgstr "実体化ビューの内容を置き換えます" -#: sql_help.c:6151 +#: sql_help.c:6195 msgid "rebuild indexes" msgstr "インデックスを再構築します" -#: sql_help.c:6157 +#: sql_help.c:6201 msgid "release a previously defined savepoint" msgstr "以前に定義されたセーブポイントを解放します" -#: sql_help.c:6163 +#: sql_help.c:6207 msgid "restore the value of a run-time parameter to the default value" msgstr "実行時パラメータの値をデフォルト値に戻します" -#: sql_help.c:6169 +#: sql_help.c:6213 msgid "remove access privileges" msgstr "アクセス権限を削除します" -#: sql_help.c:6181 +#: sql_help.c:6225 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "二相コミットのために事前に準備されたトランザクションをキャンセルします" -#: sql_help.c:6187 +#: sql_help.c:6231 msgid "roll back to a savepoint" msgstr "セーブポイントまでロールバックします" -#: sql_help.c:6193 +#: sql_help.c:6237 msgid "define a new savepoint within the current transaction" msgstr "現在のトランザクション内で新しいセーブポイントを定義します" -#: sql_help.c:6199 +#: sql_help.c:6243 msgid "define or change a security label applied to an object" msgstr "オブジェクトに適用されるセキュリティラベルを定義または変更します" -#: sql_help.c:6205 sql_help.c:6259 sql_help.c:6295 +#: sql_help.c:6249 sql_help.c:6303 sql_help.c:6339 msgid "retrieve rows from a table or view" msgstr "テーブルまたはビューから行を取得します" -#: sql_help.c:6217 +#: sql_help.c:6261 msgid "change a run-time parameter" msgstr "実行時パラメータを変更します" -#: sql_help.c:6223 +#: sql_help.c:6267 msgid "set constraint check timing for the current transaction" msgstr "現在のトランザクションについて、制約チェックのタイミングを設定します" -#: sql_help.c:6229 +#: sql_help.c:6273 msgid "set the current user identifier of the current session" msgstr "現在のセッションの現在のユーザー識別子を設定します" -#: sql_help.c:6235 +#: sql_help.c:6279 msgid "set the session user identifier and the current user identifier of the current session" msgstr "セッションのユーザー識別子および現在のセッションの現在のユーザー識別子を設定します" -#: sql_help.c:6241 +#: sql_help.c:6285 msgid "set the characteristics of the current transaction" msgstr "現在のトランザクションの特性を設定します" -#: sql_help.c:6247 +#: sql_help.c:6291 msgid "show the value of a run-time parameter" msgstr "実行時パラメータの値を表示します" -#: sql_help.c:6265 +#: sql_help.c:6309 msgid "empty a table or set of tables" msgstr "一つの、または複数のテーブルを空にします" -#: sql_help.c:6271 +#: sql_help.c:6315 msgid "stop listening for a notification" msgstr "通知メッセージの監視を中止します" -#: sql_help.c:6277 +#: sql_help.c:6321 msgid "update rows of a table" msgstr "テーブルの行を更新します" -#: sql_help.c:6283 +#: sql_help.c:6327 msgid "garbage-collect and optionally analyze a database" msgstr "ガーベッジコレクションを行い、また必要に応じてデータベースを分析します" -#: sql_help.c:6289 +#: sql_help.c:6333 msgid "compute a set of rows" msgstr "行セットを計算します" -#: startup.c:220 +#: startup.c:225 #, c-format msgid "-1 can only be used in non-interactive mode" msgstr "-1 は非対話モード時でのみ使用可能です" -#: startup.c:343 +#: startup.c:348 #, c-format msgid "could not open log file \"%s\": %m" msgstr "ロックファイル\"%s\"をオープンできませんでした: %m" -#: startup.c:460 +#: startup.c:465 #, c-format msgid "" "Type \"help\" for help.\n" @@ -6591,27 +6862,27 @@ msgstr "" "\"help\"でヘルプを表示します。\n" "\n" -#: startup.c:612 +#: startup.c:617 #, c-format msgid "could not set printing parameter \"%s\"" msgstr "表示パラメータ\"%s\"を設定できませんでした" -#: startup.c:719 +#: startup.c:724 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: startup.c:735 +#: startup.c:740 #, c-format msgid "extra command-line argument \"%s\" ignored" msgstr "余分なコマンドライン引数\"%s\"は無視されました" -#: startup.c:783 +#: startup.c:788 #, c-format msgid "could not find own program executable" msgstr "実行可能ファイルが見つかりませんでした" -#: tab-complete.c:6230 +#: tab-complete.in.c:6606 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6622,22 +6893,47 @@ msgstr "" "問い合わせ:\n" "%s" -#: variables.c:139 +#: variables.c:141 #, c-format msgid "unrecognized value \"%s\" for \"%s\": Boolean expected" msgstr "\"%2$s\"の値\"%1$s\"が認識できません: 真偽値を指定してください" -#: variables.c:176 +#: variables.c:178 #, c-format msgid "invalid value \"%s\" for \"%s\": integer expected" msgstr "\"%2$s\"の値\"%1$s\"が不正です: 整数を指定してください" -#: variables.c:224 +#: variables.c:207 +#, c-format +msgid "invalid input syntax for \"%s\"" +msgstr "\"%s\"に対する不正な入力構文" + +#: variables.c:218 +#, c-format +msgid "invalid value \"%s\" for \"%s\": must be greater than %.2f" +msgstr "\"%2$s\"の値\"%1$s\"が不正です: %3$.2f より大きい必要があります" + +#: variables.c:225 +#, c-format +msgid "invalid value \"%s\" for \"%s\": must be less than %.2f" +msgstr "\"%2$s\"の値\"%1$s\"が不正です: %3$.2f より小さい必要があります" + +#: variables.c:241 +#, c-format +msgid "\"%s\" is out of range for \"%s\"" +msgstr "\"%s\"は\"%s\"の範囲外です" + +#: variables.c:247 +#, c-format +msgid "invalid value \"%s\" for \"%s\"" +msgstr "\"%2$s\"に対する不正な値\"%1$s\"" + +#: variables.c:294 #, c-format msgid "invalid variable name: \"%s\"" msgstr "変数名が不正です: \"%s\"" -#: variables.c:418 +#: variables.c:488 #, c-format msgid "" "unrecognized value \"%s\" for \"%s\"\n" diff --git a/src/bin/psql/po/ko.po b/src/bin/psql/po/ko.po index 4f3c2db3bb6c8..6afbc04dd1dd5 100644 --- a/src/bin/psql/po/ko.po +++ b/src/bin/psql/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: psql (PostgreSQL) 16\n" +"Project-Id-Version: psql (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:48+0000\n" -"PO-Revision-Date: 2023-07-20 15:50+0900\n" +"POT-Creation-Date: 2025-01-17 04:48+0000\n" +"PO-Revision-Date: 2025-01-16 17:32+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -35,33 +35,48 @@ msgstr "상세정보: " msgid "hint: " msgstr "힌트: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "\"%s\" 파일은 잘못된 바이너리 파일: %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "\"%s\" 바이너리 파일을 읽을 수 없음: %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "실행할 \"%s\" 파일 찾을 수 없음" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "\"%s\" 경로를 절대경로로 바꿀 수 없음: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "\"%s\" 명령을 실행할 수 없음: %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "\"%s\" 명령으로부터 읽을 수 없음: %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "\"%s\" 명령에서 아무 데이터도 반환하지 않음" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() 실패: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -83,7 +98,7 @@ msgstr "null 포인터를 복제할 수 없음(내부 오류)\n" msgid "could not look up effective user ID %ld: %s" msgstr "UID %ld 해당하는 사용자를 찾을 수 없음: %s" -#: ../../common/username.c:45 command.c:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "사용자 없음" @@ -122,11 +137,11 @@ msgstr "하위 프로세스가 %d 신호를 받고 종료되었음: %s" msgid "child process exited with unrecognized status %d" msgstr "하위 프로세스가 알 수 없는 상태(%d)로 종료되었음" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "취소 요청 보냄\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "취소 요청 보내기 실패: " @@ -141,74 +156,91 @@ msgstr[0] "(%lu개 행)" msgid "Interrupted\n" msgstr "인트럽트발생\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "" +"Cannot print table contents: number of cells %lld is equal to or exceeds " +"maximum %lld.\n" +msgstr "테이블 내용을 출력할 수 없음: %lld개 셀 수가 최대값인 %lld개 이상임\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "테이블 내용에 헤더를 추가할 수 없음: 열 수가 %d개를 초과했습니다.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "테이블 내용에 셀을 추가할 수 없음: 총 셀 수가 %d개를 초과했습니다.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "테이블 내용에 셀을 추가할 수 없음: 총 셀 수가 %lld개를 초과했습니다.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "잘못된 출력 형식 (내부 오류): %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "\"%s\" 변수의 재귀적 확장을 건너뛰는 중" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령의 인자에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 있음: \"%s\"\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "UID %d 해당하는 로컬 사용자를 찾을 수 없음: %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "ID %d 로컬 사용자 없음" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "잘못된 명령: \\%s" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "도움말을 보려면 \\?를 입력하십시오." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: \"%s\" 추가 인자가 무시되었음" -#: command.c:306 +#: command.c:307 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "" "\\%s 명령은 무시함; 현재 \\if 블록을 중지하려면, \\endif 명령이나 Ctrl-C 키" "를 사용하세요." -#: command.c:611 +#: command.c:614 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "UID %ld 사용자의 홈 디렉터리를 찾을 수 없음: %s" -#: command.c:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: \"%s\" 디렉터리로 이동할 수 없음: %m" -#: command.c:654 +#: command.c:657 #, c-format msgid "You are currently not connected to a database.\n" msgstr "현재 데이터베이스에 연결되어있지 않습니다.\n" -#: command.c:664 +#: command.c:667 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -216,7 +248,7 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 주소=\"%s\", 포트=\"%s\".\n" -#: command.c:667 +#: command.c:670 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at " @@ -224,7 +256,7 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 소켓=\"%s\", 포트=\"%s\".\n" -#: command.c:673 +#: command.c:676 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address " @@ -233,7 +265,7 @@ msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 호스트=\"%s\" (주소=\"%s\"), 포" "트=\"%s\".\n" -#: command.c:676 +#: command.c:679 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port " @@ -241,199 +273,209 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 호스트=\"%s\", 포트=\"%s\".\n" -#: command.c:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2675 #, c-format msgid "no query buffer" msgstr "쿼리 버퍼가 없음" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5776 #, c-format msgid "invalid line number: %s" msgstr "잘못된 줄 번호: %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "변경 내용 없음" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: 잘못된 인코딩 이름 또는 문자셋 변환 프로시저 없음" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:720 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5882 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1375 msgid "There is no previous error." msgstr "이전 오류가 없습니다." -#: command.c:1470 +#: command.c:1488 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: 오른쪽 괄호 빠졌음" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 +#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: 필요한 인자가 빠졌음" -#: command.c:1815 +#: command.c:1822 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: \\else 구문 뒤에 올 수 없음" -#: command.c:1820 +#: command.c:1827 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: \\if 명령과 짝이 안맞음" -#: command.c:1884 +#: command.c:1891 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: \\else 명령 뒤에 올 수 없음" -#: command.c:1889 +#: command.c:1896 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: \\if 명령과 짝이 안맞음" -#: command.c:1929 +#: command.c:1936 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: \\if 명령과 짝이 안맞음" -#: command.c:2085 +#: command.c:2092 msgid "Query buffer is empty." msgstr "쿼리 버퍼가 비었음." -#: command.c:2128 +#: command.c:2135 #, c-format msgid "Enter new password for user \"%s\": " msgstr "\"%s\" 사용자의 새 암호: " -#: command.c:2132 +#: command.c:2139 msgid "Enter it again: " msgstr "다시 입력해 주세요:" -#: command.c:2141 +#: command.c:2148 #, c-format msgid "Passwords didn't match." msgstr "암호가 서로 틀립니다." -#: command.c:2238 +#: command.c:2231 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: 변수 값을 읽을 수 없음" -#: command.c:2340 +#: command.c:2333 msgid "Query buffer reset (cleared)." msgstr "쿼리 버퍼 초기화 (비웠음)." -#: command.c:2362 +#: command.c:2355 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "명령내역(history)을 \"%s\" 파일에 기록했습니다.\n" -#: command.c:2449 +#: command.c:2442 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: OS 환경 변수 이름에는 \"=\" 문자가 없어야 함" -#: command.c:2497 +#: command.c:2490 #, c-format msgid "function name is required" msgstr "함수 이름이 필요함" -#: command.c:2499 +#: command.c:2492 #, c-format msgid "view name is required" msgstr "뷰 이름이 필요함" -#: command.c:2621 +#: command.c:2614 msgid "Timing is on." msgstr "작업수행시간 보임" -#: command.c:2623 +#: command.c:2616 msgid "Timing is off." msgstr "작업수행시간 숨김" -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 +#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 +#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2736 copy.c:388 +#: command.c:2729 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2806 command.c:2852 +#: command.c:2801 command.c:2867 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: 반복 간격 값은 하나만 지정해야 합니다" -#: command.c:2816 command.c:2862 +#: command.c:2811 command.c:2877 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: 잘못된 반복 간격 값 \"%s\"" -#: command.c:2826 +#: command.c:2821 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: 최대 반복 회수는 하나만 지정해야 합니다" -#: command.c:2836 +#: command.c:2831 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: 잘못된 최대 반복 회수 \"%s\"" -#: command.c:2843 +#: command.c:2841 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: 최소 row 수 지정을 중복 지정했음" + +#: command.c:2851 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch: 최소 row 수 값 잘못됨 \"%s\"" + +#: command.c:2858 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: 알수 없는 매개 변수 \"%s\"" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3255 startup.c:243 startup.c:293 msgid "Password: " msgstr "암호: " -#: command.c:3241 startup.c:290 +#: command.c:3260 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "%s 사용자의 암호: " -#: command.c:3297 +#: command.c:3316 #, c-format msgid "" "Do not give user, host, or port separately when using a connection string" msgstr "" "연결 문자열을 사용할 때는 user, host, port 를 따로 따로 지정하지 마세요." -#: command.c:3332 +#: command.c:3351 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "재접속할 데이터베이스 연결 정보가 없음" -#: command.c:3638 +#: command.c:3658 #, c-format msgid "Previous connection kept" msgstr "이전 연결이 유지되었음" -#: command.c:3644 +#: command.c:3664 #, c-format msgid "\\connect: %s" msgstr "\\연결: %s" -#: command.c:3700 +#: command.c:3720 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -441,7 +483,7 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 주소=\"%s\", 포트=\"%s\".\n" -#: command.c:3703 +#: command.c:3723 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" " @@ -449,16 +491,16 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 소켓=\"%s\", 포트=\"%s\".\n" -#: command.c:3709 +#: command.c:3729 #, c-format msgid "" -"You are now connected to database \"%s\" as user \"%s\" on host \"%s" -"\" (address \"%s\") at port \"%s\".\n" +"You are now connected to database \"%s\" as user \"%s\" on host \"%s\" " +"(address \"%s\") at port \"%s\".\n" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 호스트=\"%s\" (주소 \"%s\"), 포" "트=\"%s\".\n" -#: command.c:3712 +#: command.c:3732 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at " @@ -466,17 +508,17 @@ msgid "" msgstr "" "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\", 호스트=\"%s\", 포트=\"%s\".\n" -#: command.c:3717 +#: command.c:3737 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "접속정보: 데이터베이스=\"%s\", 사용자=\"%s\".\n" -#: command.c:3757 +#: command.c:3843 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s(%s, %s 서버)\n" -#: command.c:3770 +#: command.c:3856 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -485,29 +527,33 @@ msgstr "" "경고: %s 메이저 버전 %s, 서버 메이저 버전 %s.\n" " 일부 psql 기능이 작동하지 않을 수도 있습니다.\n" -#: command.c:3807 +#: command.c:3895 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "SSL 연결정보 (프로토콜: %s, 암호화기법: %s, 압축: %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "SSL 연결정보 (프로토콜: %s, 암호화기법: %s, 압축: %s, ALPN: %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3896 command.c:3897 msgid "unknown" msgstr "알수없음" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "off" msgstr "off" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "on" msgstr "on" -#: command.c:3824 +#: command.c:3899 +msgid "none" +msgstr "none" + +#: command.c:3913 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "암호화된 GSSAPI 연결\n" -#: command.c:3844 +#: command.c:3933 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -519,7 +565,7 @@ msgstr "" "참조\n" " 페이지 \"Notes for Windows users\"를 참조하십시오.\n" -#: command.c:3949 +#: command.c:4038 #, c-format msgid "" "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a " @@ -528,32 +574,32 @@ msgstr "" "지정한 줄번호를 사용하기 위해서는 PSQL_EDITOR_LINENUMBER_ARG 이름의 OS 환경변" "수가 설정되어 있어야 합니다." -#: command.c:3979 +#: command.c:4068 #, c-format msgid "could not start editor \"%s\"" msgstr "\"%s\" 문서 편집기를 실행시킬 수 없음" -#: command.c:3981 +#: command.c:4070 #, c-format msgid "could not start /bin/sh" msgstr "/bin/sh 명령을 실행할 수 없음" -#: command.c:4031 +#: command.c:4120 #, c-format msgid "could not locate temporary directory: %s" msgstr "임시 디렉터리 경로를 알 수 없음: %s" -#: command.c:4058 +#: command.c:4147 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "\"%s\" 임시 파일을 열 수 없음: %m" -#: command.c:4394 +#: command.c:4483 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: \"%s\" 생략형이 \"%s\" 또는 \"%s\" 값 모두 선택가능해서 모호함" -#: command.c:4414 +#: command.c:4503 #, c-format msgid "" "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-" @@ -562,27 +608,27 @@ msgstr "" "\\pset: 허용되는 출력 형식: aligned, asciidoc, csv, html, latex, latex-" "longtable, troff-ms, unaligned, wrapped" -#: command.c:4433 +#: command.c:4522 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: 사용할 수 있는 선 모양은 ascii, old-ascii, unicode" -#: command.c:4448 +#: command.c:4537 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: 사용할 수 있는 유니코드 테두리 모양은 single, double" -#: command.c:4463 +#: command.c:4552 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: 사용할 수 있는 유니코드 칼럼 선 모양은 single, double" -#: command.c:4478 +#: command.c:4567 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: 사용할 수 있는 유니코드 헤더 선 모양은 single, double" -#: command.c:4530 +#: command.c:4619 #, c-format msgid "" "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", " @@ -591,12 +637,12 @@ msgstr "" "\\pset: xheader_width 값은 \"%s\" (기본값), \"%s\", \"%s\", 또는 정확한 너비 " "숫자 입니다." -#: command.c:4547 +#: command.c:4636 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep 문자는 1바이트의 단일 문자여야 함" -#: command.c:4552 +#: command.c:4641 #, c-format msgid "" "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage " @@ -604,218 +650,218 @@ msgid "" msgstr "" "\\pset: csv_fieldsep 문자로 따옴표, 줄바꿈(\\n, \\r) 문자는 사용할 수 없음" -#: command.c:4690 command.c:4891 +#: command.c:4779 command.c:4980 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: 알 수 없는 옵션: %s" -#: command.c:4710 +#: command.c:4799 #, c-format msgid "Border style is %d.\n" msgstr "html 테이블의 테두리를 %d로 지정했습니다.\n" -#: command.c:4716 +#: command.c:4805 #, c-format msgid "Target width is unset.\n" msgstr "대상 너비 미지정.\n" -#: command.c:4718 +#: command.c:4807 #, c-format msgid "Target width is %d.\n" msgstr "대상 너비는 %d입니다.\n" -#: command.c:4725 +#: command.c:4814 #, c-format msgid "Expanded display is on.\n" msgstr "칼럼 단위 보기 기능 켬.\n" -#: command.c:4727 +#: command.c:4816 #, c-format msgid "Expanded display is used automatically.\n" msgstr "칼럼 단위 보기 기능을 자동으로 지정 함.\n" -#: command.c:4729 +#: command.c:4818 #, c-format msgid "Expanded display is off.\n" msgstr "칼럼 단위 보기 기능 끔.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4825 command.c:4827 command.c:4829 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "확장된 헤더 너비 = \"%s\".\n" -#: command.c:4742 +#: command.c:4831 #, c-format msgid "Expanded header width is %d.\n" msgstr "확장된 헤더 너비는 %d입니다.\n" -#: command.c:4748 +#: command.c:4837 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "CSV용 필드 구분자: \"%s\".\n" -#: command.c:4756 command.c:4764 +#: command.c:4845 command.c:4853 #, c-format msgid "Field separator is zero byte.\n" msgstr "필드 구분자가 0 바이트입니다.\n" -#: command.c:4758 +#: command.c:4847 #, c-format msgid "Field separator is \"%s\".\n" msgstr "필드 구분자 \"%s\".\n" -#: command.c:4771 +#: command.c:4860 #, c-format msgid "Default footer is on.\n" msgstr "기본 꼬릿말 보기 기능 켬.\n" -#: command.c:4773 +#: command.c:4862 #, c-format msgid "Default footer is off.\n" msgstr "기본 꼬릿말 보기 기능 끔.\n" -#: command.c:4779 +#: command.c:4868 #, c-format msgid "Output format is %s.\n" msgstr "현재 출력 형식: %s.\n" -#: command.c:4785 +#: command.c:4874 #, c-format msgid "Line style is %s.\n" msgstr "선 모양: %s.\n" -#: command.c:4792 +#: command.c:4881 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null 값은 \"%s\" 문자로 보여짐.\n" -#: command.c:4800 +#: command.c:4889 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "로케일 맞춤 숫자 표기 기능 켬.\n" -#: command.c:4802 +#: command.c:4891 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "로케일 맞춤 숫자 표기 기능 끔.\n" -#: command.c:4809 +#: command.c:4898 #, c-format msgid "Pager is used for long output.\n" msgstr "긴 출력을 위해 페이저가 사용됨.\n" -#: command.c:4811 +#: command.c:4900 #, c-format msgid "Pager is always used.\n" msgstr "항상 페이저가 사용됨.\n" -#: command.c:4813 +#: command.c:4902 #, c-format msgid "Pager usage is off.\n" msgstr "화면단위 보기 기능 끔(전체 자료 모두 보여줌).\n" -#: command.c:4819 +#: command.c:4908 #, 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] "%d 줄보다 적은 경우는 페이지 단위 보기가 사용되지 않음\n" -#: command.c:4829 command.c:4839 +#: command.c:4918 command.c:4928 #, c-format msgid "Record separator is zero byte.\n" msgstr "레코드 구분자가 0 바이트임.\n" -#: command.c:4831 +#: command.c:4920 #, c-format msgid "Record separator is .\n" msgstr "레코드 구분자는 줄바꿈 문자입니다.\n" -#: command.c:4833 +#: command.c:4922 #, c-format msgid "Record separator is \"%s\".\n" msgstr "레코드 구분자 \"%s\".\n" -#: command.c:4846 +#: command.c:4935 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "테이블 속성: \"%s\".\n" -#: command.c:4849 +#: command.c:4938 #, c-format msgid "Table attributes unset.\n" msgstr "테이블 속성 모두 지움.\n" -#: command.c:4856 +#: command.c:4945 #, c-format msgid "Title is \"%s\".\n" msgstr "출력 테이블의 제목: \"%s\"\n" -#: command.c:4858 +#: command.c:4947 #, c-format msgid "Title is unset.\n" msgstr "출력 테이블의 제목을 지정하지 않았습니다.\n" -#: command.c:4865 +#: command.c:4954 #, c-format msgid "Tuples only is on.\n" msgstr "자료만 보기 기능 켬.\n" -#: command.c:4867 +#: command.c:4956 #, c-format msgid "Tuples only is off.\n" msgstr "자료만 보기 기능 끔.\n" -#: command.c:4873 +#: command.c:4962 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "유니코드 테두리 선문자: \"%s\".\n" -#: command.c:4879 +#: command.c:4968 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "유니코드 칼럼 선문자: \"%s\".\n" -#: command.c:4885 +#: command.c:4974 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "유니코드 헤더 선문자: \"%s\".\n" -#: command.c:5134 +#: command.c:5223 #, c-format msgid "\\!: failed" msgstr "\\!: 실패" -#: command.c:5168 +#: command.c:5261 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch 명령으로 수행할 쿼리가 없습니다." -#: command.c:5200 +#: command.c:5293 #, c-format msgid "could not set timer: %m" msgstr "타이머 설정 실패: %m" -#: command.c:5269 +#: command.c:5362 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (%g초 간격)\n" -#: command.c:5272 +#: command.c:5365 #, c-format msgid "%s (every %gs)\n" msgstr "%s (%g초 간격)\n" -#: command.c:5340 +#: command.c:5429 #, c-format msgid "could not wait for signals: %m" msgstr "신호를 기다릴 수 없었음: %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5485 command.c:5492 common.c:632 common.c:639 common.c:1123 #, c-format msgid "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" msgstr "" "********** 쿼리 **********\n" @@ -823,149 +869,154 @@ msgstr "" "**************************\n" "\n" -#: command.c:5584 +#: command.c:5671 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" 뷰(view)가 아님" -#: command.c:5600 +#: command.c:5687 #, c-format msgid "could not parse reloptions array" msgstr "reloptions 배열을 분석할 수 없음" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "현재 접속한 연결 없이는 특수문자처리를 할 수 없음" -#: common.c:208 +#: common.c:247 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "쉘 명령의 인자에 줄바꿈 문자가 있음: \"%s\"" -#: common.c:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "서버 접속 끊김" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "서버로부터 연결이 끊어졌습니다. 다시 연결을 시도합니다: " -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "실패.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "성공.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "PQresultStatus 반환값이 잘못됨: %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "작업시간: %.3f ms\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "작업시간: %.3f ms (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "작업시간: %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "작업시간: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, c-format msgid "You are currently not connected to a database." msgstr "현재 데이터베이스에 연결되어있지 않습니다." -#: common.c:674 +#: common.c:714 #, c-format msgid "" "Asynchronous notification \"%s\" with payload \"%s\" received from server " "process with PID %d.\n" msgstr "\"%s\" 비동기 통지를 받음, 부가정보: \"%s\", 보낸 프로세스: %d.\n" -#: common.c:677 +#: common.c:717 #, c-format msgid "" "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "동기화 신호 \"%s\" 받음, 해당 서버 프로세스 PID %d.\n" -#: common.c:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "결과 테이블을 출력할 수 없음: %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "\\gset 해당 자료 없음" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "\\gset 실행 결과가 단일 자료가 아님" -#: common.c:751 +#: common.c:791 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "" "\\gset 작업으로 특수하게 처리되는 변수인 \"%s\" 변수값을 바꿀 수 있어 무시함" -#: common.c:1063 +#: common.c:1103 #, c-format msgid "" -"***(Single step mode: verify " -"command)*******************************************\n" +"/**(Single step mode: verify " +"command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to " -"cancel)********************\n" +"/**(press return to proceed or enter x and return to " +"cancel)*******************/\n" msgstr "" "***(단독 순차 모드: 쿼리 확인)*********************************************\n" "%s\n" "***(Enter: 계속 진행, x Enter: 중지)********************\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "명령구문: %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "알 수 없는 트랜잭션 상태 (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "필드명" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "형태" -#: common.c:1385 +#: common.c:1412 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "해당 명령 결과가 없거나, 그 결과에는 칼럼이 없습니다.\n" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "청크된 모드에서 결과값 추출 실패" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -981,11 +1032,6 @@ msgstr "\\copy: 구문 오류: \"%s\"" msgid "\\copy: parse error at end of line" msgstr "\\copy: 줄 끝에 구문 오류" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "\"%s\" 명령을 실행할 수 없음: %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -1024,31 +1070,31 @@ msgstr "" "자료입력이 끝나면 backslash 점 (\\.) 마지막 줄 처음에 입력하는 EOF 시그널을 " "보내세요." -#: copy.c:682 +#: copy.c:684 msgid "aborted because of read failure" msgstr "읽기 실패로 중지됨" -#: copy.c:716 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "복사 모드를 종료하는 중" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview: 구문 결과가 집합을 반환하지 않았음" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview: 쿼리 결과는 적어도 세 개의 칼럼은 반환 해야 함" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "" "\\crosstabview: vertical and horizontal headers must be different columns" msgstr "\\crosstabview: 행과 열의 칼럼이 각각 다른 칼럼이어야 함" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "" "\\crosstabview: data column must be specified when query returns more than " @@ -1057,12 +1103,12 @@ msgstr "" "\\crosstabview: 처리할 칼럼이 세개보다 많을 때는 자료로 사용할 칼럼을 지정해" "야 함" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview: 최대 칼럼 수 (%d) 초과" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "" "\\crosstabview: query result contains multiple data values for row \"%s\", " @@ -1070,300 +1116,301 @@ msgid "" msgstr "" "\\crosstabview: \"%s\" 로우, \"%s\" 칼럼에 대해 쿼리 결과는 다중값이어야 함" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview: %d 번째 열은 1..%d 범위를 벗어났음" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview: 칼럼 이름이 모호함: \"%s\"" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: 칼럼 이름 없음: \"%s\"" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "스키마" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "이름" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "반환 자료형" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "인자 자료형" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "설명" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "통계 함수 목록" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "서버(%s 버전)에서 접근 방법을 지원하지 않습니다." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "인덱스" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "테이블" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "핸들러" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "접근 방법 목록" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "소유주" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "위치" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "옵션" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "크기" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "테이블스페이스 목록" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df 명령은 [anptwS+]만 추가로 사용함" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df 명령은 \"%c\" 옵션을 %s 버전 서버에서는 사용할 수 없음" #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "집계" -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "창" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "proc" -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "함수" -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "트리거" -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "immutable" -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "stable" -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "volatile" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "휘발성" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "엄격함" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "safe" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "unsafe" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "병렬처리" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "definer" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "invoker" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "보안" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "언어" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "내부 이름" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "함수 목록" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "요소" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "자료형 목록" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "왼쪽 인수 자료형" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "오른쪽 인수 자료형" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "반환 자료형" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "함수" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "연산자 목록" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "인코딩" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "로케일 제공자" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "Collate" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "Ctype" -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "ICU 로케일" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "로케일" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "ICU 룰" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "테이블스페이스" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "데이터베이스 목록" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "테이블" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "뷰(view)" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "구체화된 뷰" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "시퀀스" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "외부 테이블" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "파티션 테이블" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "칼럼 접근권한" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "정책" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "액세스 권한" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "함수" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "type" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "스키마" @@ -1395,293 +1442,293 @@ msgstr "연산자 부류" msgid "rule" msgstr "룰(rule)" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "개체 설명" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "\"%s\" 이름을 릴레이션(relation) 없음." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "관련 릴레이션 찾을 수 없음." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "%s oid의 어떤 릴레이션(relation)도 찾을 수 없음." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "시작" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "최소값" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "최대값" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "증가값" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "예" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "아니오" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "순환?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "캐쉬" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "소유주: %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "식별 칼럼용 시퀀스: %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "\"%s.%s\" 로그 미사용 시퀀스" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "\"%s.%s\" 시퀀스" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "로그 미사용 테이블 \"%s.%s\"" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "\"%s.%s\" 테이블" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "\"%s.%s\" 뷰(view)" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "트랜잭션 로그를 남기지 않은 구체화된 뷰 \"%s.%s\"" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Materialized 뷰 \"%s.%s\"" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "\"%s.%s\" 로그 미사용 인덱스" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "\"%s.%s\" 인덱스" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "\"%s.%s\" 로그 미사용 파티션 인덱스" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "\"%s.%s\" 파티션 인덱스" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "\"%s.%s\" TOAST 테이블" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "\"%s.%s\" 복합자료형" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "\"%s.%s\" 외부 테이블" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "로그 미사용 파티션 테이블 \"%s.%s\"" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "\"%s.%s\" 파티션 테이블" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "정렬규칙" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "NULL허용" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "초기값" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "Key?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "정의" -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "FDW 옵션" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "스토리지" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "압축" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "통계수집량" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "소속 파티션: %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "파티션 제약 조건 없음" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "파티션 제약조건: %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "파티션 키: %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "소속 테이블: \"%s.%s\"" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "기본키, " -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "고유" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " nulls not distinct" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr ", " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "적용테이블: \"%s.%s\"" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", predicate (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", 클러스됨" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", 잘못됨" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", 지연가능" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", 트랜잭션단위지연" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", 복제 식별자" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "인덱스들:" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "체크 제약 조건:" -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "참조키 제약 조건:" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "다음에서 참조됨:" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "정책:" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "정책 (로우단위 보안정책 강제 활성화):" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "정책 (로우단위 보안정책 활성화): (없음)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "정책 (로우단위 보안정책 강제 활성화): (없음)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "정책 (로우단위 보안정책 비활성화):" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "통계정보 객체:" @@ -1701,7 +1748,7 @@ msgstr "항상 발생하는 규칙:" msgid "Rules firing on replica only:" msgstr "복제본에서만 발생하는 규칙:" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "발행자:" @@ -1800,7 +1847,7 @@ msgstr ", \"%s\" 테이블스페이스" msgid "List of roles" msgstr "롤 목록" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "롤 이름" @@ -1877,369 +1924,369 @@ msgstr "\"%s\" 롤용 특정 설정이 없음." msgid "Did not find any settings." msgstr "추가 설정 없음." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "설정 목록" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "소속 그룹" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "부여자" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "롤 부여 목록" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "인덱스" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "TOAST 테이블" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "파티션_인덱스" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "영구" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "임시" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "로깅안함" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "지속성" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "접근 방법" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "릴레이션 목록" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "" "The server (version %s) does not support declarative table partitioning." msgstr "이 서버(%s 버전)는 파티션 테이블 기능을 지원하지 않습니다." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "파티션 인덱스 목록" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "파티션 테이블 목록" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "파티션 릴레이션(relation) 목록" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "상위 이름" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "하위 파티션 크기" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "전체 크기" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "신뢰됨" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "내부 언어" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "호출 핸들러" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "유효성 검사기" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "인라인 핸들러" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "언어 목록" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "체크" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "도메인(domain) 목록" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "소스" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "설명" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "초기값?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "문자코드변환규칙(conversion) 목록" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "매개변수" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "값" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "컨텍스트" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "환경설정 매개변수 목록" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "기본값이 아닌 값으로 지정된 환경설정 매개변수 목록" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "이 서버(%s 버전)는 이벤트 트리거를 지원하지 않습니다." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "이벤트" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "활성화" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "replica" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "항상" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "비활성화" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "활성화" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "태그" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "이벤트 트리거 목록" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "이 서버(%s 버전)에서 확장 통계정보를 지원하지 않습니다." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Dependencies" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "확장 통계정보 목록" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Source 자료형" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Target 자료형" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "in assignment" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Implicit?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "형변환자 목록" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "제공자" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "Deterministic?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "문자 정렬 목록" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "스키마 목록" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "텍스트 검색 파서 목록" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "\"%s\"(이)라는 전문 검색 분석기를 찾지 못했습니다." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "특정 전문 검색 분석기를 찾지 못했습니다." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "구문 분석 시작" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "방법" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "다음 토큰 가져오기" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "구문 분석 종료" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "헤드라인 가져오기" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "토큰 형식 가져오기" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "\"%s.%s\" 텍스트 검색 파서" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "\"%s\" 텍스트 검색 파서" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "토큰 이름" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "\"%s.%s\" 파서의 토큰 형식" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "\"%s\" 파서의 토큰 형식" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "템플릿" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "초기화 옵션" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "텍스트 검색 사전 목록" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "초기화" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Lexize" -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "텍스트 검색 템플릿 목록" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "텍스트 검색 구성 목록" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "\"%s\"(이)라는 텍스트 검색 구성을 찾지 못했습니다." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "특정 텍스트 검색 구성을 찾지 못했습니다." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "토큰" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "사전" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "텍스트 검색 구성 \"%s.%s\"" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "텍스트 검색 구성 \"%s\"" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "" "\n" @@ -2248,7 +2295,7 @@ msgstr "" "\n" "파서: \"%s.%s\"" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "" "\n" @@ -2257,265 +2304,273 @@ msgstr "" "\n" "파서: \"%s\"" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "외부 데이터 래퍼 목록" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "외부 데이터 래퍼" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "버전" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "외부 서버 목록" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "서버" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "사용자 이름" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "사용자 매핑 목록" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "외부 테이블 목록" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "설치된 확장기능 목록" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "\"%s\" 이름의 확장 기능 모듈을 찾을 수 없습니다." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "추가할 확장 기능 모듈이 없음." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "개체 설명" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "\"%s\" 확장 기능 안에 포함된 객체들" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "적당하지 않은 qualified 이름 입니다 (너무 많은 점이 있네요): %s" -#: describe.c:6219 +#: describe.c:6197 #, c-format msgid "cross-database references are not implemented: %s" msgstr "서로 다른 데이터베이스간의 참조는 구현되어있지 않습니다: %s" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "이 서버(%s 버전)는 논리 복제 발행 기능을 지원하지 않습니다." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "모든 테이블" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Inserts" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Updates" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Deletes" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Truncates" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Via root" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "발행 목록" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "\"%s\" 이름의 발행 없음." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "발행 없음." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "%s 발행" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "테이블들:" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "다음 스키마의 모든 테이블:" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "이 서버(%s 버전)는 구독 기능을 지원하지 않습니다." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "발행" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "바이너리" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "스트리밍" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "2단계 커밋" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "오류가 생기면 비활성" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "오리진" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "비밀번호 필요함" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "소유주 권한으로 실행?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "Failover" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "동기식 커밋" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "연결정보" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "LSN 건너뜀" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "구독 목록" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(none)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "AM" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "입력 자료형" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "스토리지 유형" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "연산자 클래스" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "연산자 부류" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "연산자 클래스 목록" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Applicable types" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "연산자 부류 목록" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "연산자" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "전략번호" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "ordering" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "search" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "Purpose" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "정렬 연산자 부류" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "연산자 부류 소속 연산자 목록" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "등록된 왼쪽 자료형" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "등록된 오른쪽 자료형" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "번호" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "연산자 부류 소속 지원 함수 목록" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "대형 객체들" -#: help.c:75 +#: help.c:63 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2523,11 +2578,11 @@ msgstr "" "psql은 PostgreSQL 대화식 터미널입니다.\n" "\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:502 msgid "Usage:\n" msgstr "사용법:\n" -#: help.c:77 +#: help.c:65 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2535,33 +2590,31 @@ msgstr "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "일반 옵션:\n" -#: help.c:84 +#: help.c:68 msgid "" " -c, --command=COMMAND run only single command (SQL or internal) and " "exit\n" msgstr "" " -c, --command=COMMAND 하나의 명령(SQL 또는 내부 명령)만 실행하고 끝냄\n" -#: help.c:85 -#, c-format -msgid "" -" -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr " -d, --dbname=DBNAME 연결할 데이터베이스 이름(기본 값: \"%s\")\n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=DBNAME 연결할 데이터베이스 이름\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=FILENAME 파일 안에 지정한 명령을 실행하고 끝냄\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr "" " -l, --list 사용 가능한 데이터베이스 목록을 표시하고 끝냄\n" -#: help.c:89 +#: help.c:72 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2571,15 +2624,15 @@ msgstr "" " psql 변수 NAME을 VALUE로 설정\n" " (예, -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: help.c:93 +#: help.c:76 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc 시작 파일(~/.psqlrc)을 읽지 않음\n" -#: help.c:94 +#: help.c:77 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-" @@ -2588,21 +2641,21 @@ msgstr "" " -1 (\"one\"), --single-transaction\n" " 명령 파일을 하나의 트랜잭션으로 실행\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=options] 이 도움말을 표시하고 종료\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr "" " --help=commands psql 내장명령어(\\문자로 시작하는)를 표시하고 종" "료\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables 특별 변수들 보여주고, 종료\n" -#: help.c:100 +#: help.c:83 msgid "" "\n" "Input and output options:\n" @@ -2610,53 +2663,53 @@ msgstr "" "\n" "입출력 옵션:\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all 스크립트의 모든 입력 표시\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors 실패한 명령들 출력\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries 서버로 보낸 명령 표시\n" -#: help.c:104 +#: help.c:87 msgid "" " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden 내부 명령이 생성하는 쿼리 표시\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=FILENAME 세션 로그를 파일로 보냄\n" -#: help.c:106 +#: help.c:89 msgid "" " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr "" " -n, --no-readline 확장된 명령행 편집 기능을 사용중지함(readline)\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=FILENAME 쿼리 결과를 파일(또는 |파이프)로 보냄\n" -#: help.c:108 +#: help.c:91 msgid "" " -q, --quiet run quietly (no messages, only query output)\n" msgstr " -q, --quiet 자동 실행(메시지 없이 쿼리 결과만 표시)\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step 단독 순차 모드(각 쿼리 확인)\n" -#: help.c:110 +#: help.c:93 msgid "" " -S, --single-line single-line mode (end of line terminates SQL " "command)\n" msgstr " -S, --single-line 한 줄 모드(줄 끝에서 SQL 명령이 종료됨)\n" -#: help.c:112 +#: help.c:95 msgid "" "\n" "Output format options:\n" @@ -2664,16 +2717,16 @@ msgstr "" "\n" "출력 형식 옵션:\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align 정렬되지 않은 표 형태의 출력 모드\n" -#: help.c:114 +#: help.c:97 msgid "" " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv CSV (쉼표-분리 자료) 테이블 출력 모드\n" -#: help.c:115 +#: help.c:98 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2681,21 +2734,21 @@ msgid "" "\"%s\")\n" msgstr "" " -F, --field-separator=STRING\n" -" unaligned 출력용 필드 구분자 설정(기본 값: \"%s" -"\")\n" +" unaligned 출력용 필드 구분자 설정(기본 값: " +"\"%s\")\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html HTML 표 형태 출력 모드\n" -#: help.c:119 +#: help.c:102 msgid "" " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset " "command)\n" msgstr "" " -P, --pset=VAR[=ARG] 인쇄 옵션 VAR을 ARG로 설정(\\pset 명령 참조)\n" -#: help.c:120 +#: help.c:103 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: " @@ -2705,22 +2758,22 @@ msgstr "" " unaligned 출력용 레코드 구분자 설정\n" " (기본 값: 줄바꿈 문자)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only 행만 인쇄\n" -#: help.c:123 +#: help.c:106 msgid "" " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, " "border)\n" msgstr "" " -T, --table-attr=TEXT HTML table 태그 속성 설정(예: width, border)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded 확장된 표 형태로 출력\n" -#: help.c:125 +#: help.c:108 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero " @@ -2729,7 +2782,7 @@ msgstr "" " -z, --field-separator-zero\n" " unaligned 출력용 필드 구분자를 0 바이트로 지정\n" -#: help.c:127 +#: help.c:110 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero " @@ -2738,7 +2791,7 @@ msgstr "" " -0, --record-separator-zero\n" " unaligned 출력용 레코드 구분자를 0 바이트로 지정\n" -#: help.c:130 +#: help.c:113 msgid "" "\n" "Connection options:\n" @@ -2746,44 +2799,34 @@ msgstr "" "\n" "연결 옵션들:\n" -#: help.c:133 -#, c-format -msgid "" -" -h, --host=HOSTNAME database server host or socket directory " -"(default: \"%s\")\n" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME 데이터베이스 서버 호스트 또는 소켓 디렉터리\n" -" (기본값: \"%s\")\n" -#: help.c:134 -msgid "local socket" -msgstr "로컬 소켓" - -#: help.c:137 -#, c-format -msgid " -p, --port=PORT database server port (default: \"%s\")\n" -msgstr " -p, --port=PORT 데이터베이스 서버 포트(기본 값: \"%s\")\n" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=PORT 데이터베이스 서버 포트\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr " -U, --username=USERNAME 데이터베이스 사용자 이름(기본 값: \"%s\")\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=USERNAME 데이터베이스 사용자 이름\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password 암호 프롬프트 표시 안 함\n" -#: help.c:143 +#: help.c:118 msgid "" " -W, --password force password prompt (should happen " "automatically)\n" msgstr " -W, --password 암호 입력 프롬프트 보임(자동으로 처리함)\n" -#: help.c:145 +#: help.c:120 msgid "" "\n" -"For more information, type \"\\?\" (for internal commands) or \"\\help" -"\" (for SQL\n" +"For more information, type \"\\?\" (for internal commands) or \"\\help\" " +"(for SQL\n" "commands) from within psql, or consult the psql section in the PostgreSQL\n" "documentation.\n" "\n" @@ -2794,43 +2837,43 @@ msgstr "" "설명서에서 psql 섹션을 참조하십시오.\n" "\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "문제점 보고 주소: <%s>\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "일반\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [PARAM]... 쿼리 매개 변수 지정\n" -#: help.c:193 +#: help.c:168 msgid "" " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright PostgreSQL 사용법 및 저작권 정보 표시\n" -#: help.c:194 +#: help.c:169 msgid "" " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr "" " \\crosstabview [칼럼들] 쿼리를 실행하고, 피봇 테이블 형태로 자료를 보여줌\n" -#: help.c:195 +#: help.c:170 msgid "" " \\errverbose show most recent error message at maximum " "verbosity\n" msgstr "" " \\errverbose 최대 자세히 보기 상태에서 최근 오류를 다 보여줌\n" -#: help.c:196 +#: help.c:171 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2838,59 +2881,64 @@ msgstr "" " \\g [(OPTIONS)] [FILE] 쿼리 실행 (결과는 지정한 파일로, 또는 |파이프로);\n" " \\g 명령에서 인자가 없으면 세미콜론과 같음\n" -#: help.c:198 +#: help.c:173 msgid "" " \\gdesc describe result of query, without executing it\n" msgstr "" " \\gdesc 쿼리를 실행하지 않고 그 결과 칼럼과 자료형을 출력\n" -#: help.c:199 +#: help.c:174 msgid "" " \\gexec execute query, then execute each value in its " "result\n" msgstr " \\gexec 쿼리를 실행하고, 그 결과를 각각 실행 함\n" -#: help.c:200 +#: help.c:175 msgid "" " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr " \\gset [PREFIX] 쿼리 실행 뒤 그 결과를 psql 변수로 저장\n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr "" " \\gx [(OPTIONS)] [FILE] \\g 명령과 같으나, 출력을 확장 모드로 강제함\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q psql 종료\n" -#: help.c:203 +#: help.c:178 msgid "" -" \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" -msgstr " \\watch [[i=]SEC] [c=N] SEC초 간격, N번 반복\n" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" +msgstr "" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" SEC 초 마다 쿼리 반복, N 회만 실행,\n" +" MIN 로우 보다 적게 출력하면 중지\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "도움말\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] psql 역슬래시 명령어 설명\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options psql 명령행 옵션 도움말 보기\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables psql 환경 설정 변수들에 설명 보기\n" -#: help.c:211 +#: help.c:188 msgid "" " \\h [NAME] help on syntax of SQL commands, * for all " "commands\n" @@ -2898,46 +2946,46 @@ msgstr "" " \\h [NAME] SQL 명령 구문 도움말, 모든 명령을 표시하려면 * 입" "력\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "쿼리 버퍼\n" -#: help.c:215 +#: help.c:192 msgid "" " \\e [FILE] [LINE] edit the query buffer (or file) with external " "editor\n" msgstr " \\e [FILE] [LINE] 외부 편집기로 쿼리 버퍼(또는 파일) 편집\n" -#: help.c:216 +#: help.c:193 msgid "" " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [FUNCNAME [LINE]] 외부 편집기로 해당 함수 내용 편집\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [VIEWNAME [LINE]] 외부 편집기로 해당 뷰 정의 편집\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p 쿼리 버퍼의 내용 표시\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r 쿼리 버퍼 초기화(모두 지움)\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [FILE] 기록 표시 또는 파일에 저장\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr " \\w FILE 쿼리 버퍼를 파일에 기록\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "입력/출력\n" -#: help.c:227 +#: help.c:204 msgid "" " \\copy ... perform SQL COPY with data stream to the client " "host\n" @@ -2945,155 +2993,155 @@ msgstr "" " \\copy ... 클라이언트 호스트에 있는 자료를 SQL COPY 명령 실" "행\n" -#: help.c:228 +#: help.c:205 msgid "" " \\echo [-n] [STRING] write string to standard output (-n for no " "newline)\n" msgstr " \\echo [-n] [STRING] 문자열을 표준 출력에 기록 (-n 줄바꿈 없음)\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i FILE 파일에서 명령 실행\n" -#: help.c:230 +#: help.c:207 msgid "" " \\ir FILE as \\i, but relative to location of current " "script\n" msgstr "" " \\ir FILE \\i 명령과 같으나, 경로가 현재 위치 기준 상대적\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [FILE] 모든 쿼리 결과를 파일 또는 |파이프로 보냄\n" -#: help.c:232 +#: help.c:209 msgid "" " \\qecho [-n] [STRING] write string to \\o output stream (-n for no " "newline)\n" msgstr "" " \\qecho [-n] [STRING] 문자열을 \\o 출력 스트림에 기록 (-n 줄바꿈 없음)\n" -#: help.c:233 +#: help.c:210 msgid "" " \\warn [-n] [STRING] write string to standard error (-n for no " "newline)\n" msgstr " \\warn [-n] [STRING] 문자열을 stderr에 기록 (-n 줄바꿈 없음)\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "조건문\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR 조건문 시작\n" -#: help.c:238 +#: help.c:215 msgid "" " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR else if 구문 시작\n" -#: help.c:239 +#: help.c:216 msgid "" " \\else final alternative within current conditional " "block\n" msgstr " \\else 조건문의 그 외 조건\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif 조건문 끝\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "정보보기\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (옵션: S = 시스템 개체 표시, + = 추가 상세 정보)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] 테이블, 뷰 및 시퀀스 목록\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr " \\d[S+] NAME 테이블, 뷰, 시퀀스 또는 인덱스 설명\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [PATTERN] 집계 함수 목록\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [PATTERN] 접근 방법 목록\n" -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] 연산자 클래스 목록\n" -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] 연산자 부류 목록\n" -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] 연산자 부류 소속 연산자 목록\n" -#: help.c:252 +#: help.c:229 msgid "" " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] 연산자 가족에 포함된 지원 함수 목록\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [PATTERN] 테이블스페이스 목록\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [PATTERN] 문자셋 변환자 목록\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [PATTERN] 환경설정 매개변수 목록\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [PATTERN] 자료형 변환자 목록\n" -#: help.c:257 +#: help.c:234 msgid "" " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr "" " \\dd[S] [PATTERN] 다른 곳에서는 볼 수 없는 객체 설명을 보여줌\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [PATTERN] 도메인 목록\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [PATTERN] 기본 접근권한 목록\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATTERN] 외부 테이블 목록\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [PATTERN] 외부 서버 목록\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\det[+] [PATTERN] 외부 테이블 목록\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [PATTERN] 사용자 매핑 목록\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [PATTERN] 외부 데이터 래퍼 목록\n" -#: help.c:265 +#: help.c:242 msgid "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] " @@ -3103,47 +3151,47 @@ msgstr "" " [agg/normal/procedure/trigger/window 단일] 함수 목" "록\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [PATTERN] 텍스트 검색 구성 목록\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [PATTERN] 텍스트 검색 사전 목록\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [PATTERN] 텍스트 검색 파서 목록\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [PATTERN] 텍스트 검색 템플릿 목록\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [PATTERN] 롤 목록\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [PATTERN] 인덱스 목록\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] 큰 개체 목록, \\lo_list 명령과 같음\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [PATTERN] 프로시져 언어 목록\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [PATTERN] materialized 뷰 목록\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [PATTERN] 스키마 목록\n" -#: help.c:277 +#: help.c:254 msgid "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" @@ -3151,95 +3199,95 @@ msgstr "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " 연산자 목록\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [PATTERN] collation 목록\n" -#: help.c:280 +#: help.c:257 msgid "" " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr " \\dp[S] [PATTERN] 테이블, 뷰 및 시퀀스 액세스 권한 목록\n" -#: help.c:281 +#: help.c:258 msgid "" " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations " "[n=nested]\n" msgstr "" " \\dP[itn+] [PATTERN] 파티션 릴레이션 목록 [인덱스/테이블만] [n=nested]\n" -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr " \\drds [ROLEPTRN [DBPTRN]] per-database 롤 설정 목록\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\drg[S] [PATTERN] 롤 부여 목록\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [PATTERN] 복제 발행 목록\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [PATTERN] 복제 구독 목록\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [PATTERN] 시퀀스 목록\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [PATTERN] 테이블 목록\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [PATTERN] 데이터 형식 목록\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [PATTERN] 롤 목록\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [PATTERN] 뷰 목록\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [PATTERN] 확장 모듈 목록\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [PATTERN] 확장 통계 정보 목록\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [PATTERN] 이벤트 트리거 목록\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [PATTERN] 데이터베이스 목록\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] 함수이름 함수 정의 보기\n" -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] 뷰이름 뷰 정의 보기\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [PATTERN] \\dp 와 같음\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "큰 개체\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export LOBOID FILE 큰 개체를 파일로 저장\n" -#: help.c:302 +#: help.c:279 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3247,42 +3295,42 @@ msgstr "" " \\lo_import FILE [COMMENT]\n" " 파일에서 큰 개체 가져오기\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] 큰 개체 목록\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID 큰 개체 삭제\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "출력 형식\n" -#: help.c:309 +#: help.c:286 msgid "" " \\a toggle between unaligned and aligned output mode\n" msgstr "" " \\a 정렬되지 않은 출력 모드와 정렬된 출력 모드 전환\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr "" " \\C [STRING] 테이블 제목 설정 또는 값이 없는 경우 설정 안 함\n" -#: help.c:311 +#: help.c:288 msgid "" " \\f [STRING] show or set field separator for unaligned query " "output\n" msgstr "" " \\f [STRING] unaligned 출력에 대해 필드 구분자 표시 또는 설정\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H HTML 출력 모드 전환(현재 %s)\n" -#: help.c:314 +#: help.c:291 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3290,7 +3338,7 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [이름 [값]] 테이블 출력 옵션 설정\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3298,34 +3346,34 @@ msgstr "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] 행만 표시(현재 %s)\n" -#: help.c:323 +#: help.c:300 msgid "" " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr "" " \\T [STRING] HTML
태그 속성 설정 또는 비었는 경우 설정 " "안 함\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] 확장된 출력 전환 (현재 %s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "자동" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "연결\n" -#: help.c:330 +#: help.c:307 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3334,7 +3382,7 @@ msgstr "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " 새 데이터베이스에 접속 (현재 \"%s\")\n" -#: help.c:334 +#: help.c:311 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3342,56 +3390,56 @@ msgstr "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " 새 데이터베이스에 접속 (현재 접속해 있지 않음)\n" -#: help.c:336 +#: help.c:313 msgid "" " \\conninfo display information about current connection\n" msgstr " \\conninfo 현재 데이터베이스 접속 정보 보기\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [ENCODING] 클라이언트 인코딩 표시 또는 설정\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [USERNAME] 사용자 암호를 안전하게 변경\n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "운영 체제\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [DIR] 현재 작업 디렉터리 변경\n" -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVVAR 환경 변수값을 psql 변수값으로\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NAME [VALUE] 환경 변수 지정 및 해제\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] 명령 실행 시간 전환(현재 %s)\n" -#: help.c:347 +#: help.c:324 msgid "" " \\! [COMMAND] execute command in shell or start interactive " "shell\n" msgstr " \\! [COMMAND] 셸 명령 실행 또는 대화식 셸 시작\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "변수\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr "" " \\prompt [TEXT] NAME 사용자에게 내부 변수를 설정하라는 메시지 표시\n" -#: help.c:352 +#: help.c:329 msgid "" " \\set [NAME [VALUE]] set internal variable, or list all if no " "parameters\n" @@ -3399,21 +3447,21 @@ msgstr "" " \\set [NAME [VALUE]] 내부 변수 설정 또는 미지정 경우 모든 변수 목록 표" "시\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NAME 내부 변수 설정 해제(삭제)\n" -#: help.c:392 +#: help.c:369 msgid "" "List of specially treated variables\n" "\n" msgstr "특별한 기능 설정 변수 목록\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "psql 변수들:\n" -#: help.c:396 +#: help.c:373 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3423,7 +3471,7 @@ msgstr "" " 또는 psql 명령 모드에서는 \\set NAME VALUE\n" "\n" -#: help.c:398 +#: help.c:375 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3431,7 +3479,7 @@ msgstr "" " AUTOCOMMIT\n" " 설정 되면, SQL 명령이 정상 실행 되면 자동 커밋 함\n" -#: help.c:400 +#: help.c:377 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3441,7 +3489,7 @@ msgstr "" " SQL 키워드 자동완성에서 대소문자 처리\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:403 +#: help.c:380 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3449,7 +3497,7 @@ msgstr "" " DBNAME\n" " 현재 접속한 데이터베이스 이름\n" -#: help.c:405 +#: help.c:382 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3459,7 +3507,7 @@ msgstr "" " 입력을 표준 출력으로 보낼 종류\n" " [all, errors, none, queries]\n" -#: help.c:408 +#: help.c:385 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3469,7 +3517,7 @@ msgstr "" " 지정 되면 psql 내장 명령어의 내부 쿼리를 출력함;\n" " \"noexec\" 값으로 설정하면, 실행되지 않고 쿼리만 보여줌\n" -#: help.c:411 +#: help.c:388 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3477,7 +3525,7 @@ msgstr "" " ENCODING\n" " 현재 클라이언트 인코딩 지정\n" -#: help.c:413 +#: help.c:390 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3485,7 +3533,7 @@ msgstr "" " ERROR\n" " 마지막 쿼리가 실패했으면 \"true\", 아니면 \"false\"\n" -#: help.c:415 +#: help.c:392 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = " @@ -3494,7 +3542,7 @@ msgstr "" " FETCH_COUNT\n" " 쿼리 결과에 대해서 출력할 최대 로우 개수 (0=제한없음)\n" -#: help.c:417 +#: help.c:394 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3502,7 +3550,7 @@ msgstr "" " HIDE_TABLEAM\n" " 지정하면 테이블 접근 방법을 보여주지 않음\n" -#: help.c:419 +#: help.c:396 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3510,7 +3558,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " 지정하면 TOAST 압축 종류 보여주지 않음\n" -#: help.c:421 +#: help.c:398 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3518,7 +3566,7 @@ msgstr "" " HISTCONTROL\n" " 명령 내역 처리 방법 [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:423 +#: help.c:400 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3526,7 +3574,7 @@ msgstr "" " HISTFILE\n" " 명령 내역을 저장할 파일 이름\n" -#: help.c:425 +#: help.c:402 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3534,7 +3582,7 @@ msgstr "" " HISTSIZE\n" " 명령 내역 최대 보관 개수\n" -#: help.c:427 +#: help.c:404 msgid "" " HOST\n" " the currently connected database server host\n" @@ -3542,7 +3590,7 @@ msgstr "" " HOST\n" " 현재 접속한 데이터베이스 서버 호스트\n" -#: help.c:429 +#: help.c:406 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3550,7 +3598,7 @@ msgstr "" " IGNOREEOF\n" " 대화형 세션 종료를 위한 EOF 개수\n" -#: help.c:431 +#: help.c:408 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3558,7 +3606,7 @@ msgstr "" " LASTOID\n" " 마지막 영향 받은 OID 값\n" -#: help.c:433 +#: help.c:410 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3569,7 +3617,7 @@ msgstr "" " LAST_ERROR_SQLSTATE\n" " 마지막 오류 메시지와 SQLSTATE, 정상이면, 빈 문자열과 \"00000\"\n" -#: help.c:436 +#: help.c:413 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3577,7 +3625,7 @@ msgstr "" " ON_ERROR_ROLLBACK\n" " 설정하면 오류 발생시에도 트랜잭션 중지 안함 (savepoint 암묵적 사용)\n" -#: help.c:438 +#: help.c:415 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3585,7 +3633,7 @@ msgstr "" " ON_ERROR_STOP\n" " 배치 작업 시 오류가 발생하면 중지함\n" -#: help.c:440 +#: help.c:417 msgid "" " PORT\n" " server port of the current connection\n" @@ -3593,7 +3641,7 @@ msgstr "" " PORT\n" " 현재 접속한 서버 포트\n" -#: help.c:442 +#: help.c:419 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3601,7 +3649,7 @@ msgstr "" " PROMPT1\n" " 기본 psql 프롬프트 정의\n" -#: help.c:444 +#: help.c:421 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous " @@ -3610,7 +3658,7 @@ msgstr "" " PROMPT2\n" " 아직 구문이 덜 끝난 명령행의 프롬프트\n" -#: help.c:446 +#: help.c:423 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3618,7 +3666,7 @@ msgstr "" " PROMPT3\n" " COPY ... FROM STDIN 작업시 보일 프롬프트\n" -#: help.c:448 +#: help.c:425 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3626,7 +3674,7 @@ msgstr "" " QUIET\n" " 조용히 실행 (-q 옵션과 같음)\n" -#: help.c:450 +#: help.c:427 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3634,7 +3682,7 @@ msgstr "" " ROW_COUNT\n" " 마지막 쿼리 작업 대상 로우 수, 또는 0\n" -#: help.c:452 +#: help.c:429 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3644,7 +3692,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " 문자열 버전 정보나, 숫자 형식 버전 정보\n" -#: help.c:455 +#: help.c:432 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3652,7 +3700,7 @@ msgstr "" " SHELL_ERROR\n" " 마지막 쉘 명령이 실패했으면 \"true\", 아니면 \"false\"\n" -#: help.c:457 +#: help.c:434 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3660,7 +3708,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " 마지막 쉘 명령의 종료 코드\n" -#: help.c:459 +#: help.c:436 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3669,7 +3717,7 @@ msgstr "" " 여러 쿼리가 연속하는 경우(\\;) 모든 쿼리 결과를 출력, off면 마지막 결과" "만\n" -#: help.c:461 +#: help.c:438 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3677,7 +3725,7 @@ msgstr "" " SHOW_CONTEXT\n" " 상황별 자세한 메시지 내용 출력 제어 [never, errors, always]\n" -#: help.c:463 +#: help.c:440 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3685,7 +3733,7 @@ msgstr "" " SINGLELINE\n" " 한 줄에 하나의 SQL 명령 실행 (-S 옵션과 같음)\n" -#: help.c:465 +#: help.c:442 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3693,7 +3741,7 @@ msgstr "" " SINGLESTEP\n" " 각 명령을 확인하며 실행 (-s 옵션과 같음)\n" -#: help.c:467 +#: help.c:444 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3701,7 +3749,7 @@ msgstr "" " SQLSTATE\n" " 마지막 쿼리의 SQLSTATE 값, 오류가 없으면 \"00000\"\n" -#: help.c:469 +#: help.c:446 msgid "" " USER\n" " the currently connected database user\n" @@ -3709,7 +3757,7 @@ msgstr "" " USER\n" " 현재 접속한 데이터베이스 사용자\n" -#: help.c:471 +#: help.c:448 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3717,7 +3765,7 @@ msgstr "" " VERBOSITY\n" " 오류 출력시 자세히 볼 내용 범위 [default, verbose, terse, sqlstate]\n" -#: help.c:473 +#: help.c:450 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3729,7 +3777,7 @@ msgstr "" " VERSION_NUM\n" " psql 버전 (자세한 버전, 단순한 버전, 숫자형 버전)\n" -#: help.c:478 +#: help.c:455 msgid "" "\n" "Display settings:\n" @@ -3737,7 +3785,7 @@ msgstr "" "\n" "출력 설정들:\n" -#: help.c:480 +#: help.c:457 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3747,7 +3795,7 @@ msgstr "" " 또는 psql 명령 모드에서는 \\pset NAME [VALUE]\n" "\n" -#: help.c:482 +#: help.c:459 msgid "" " border\n" " border style (number)\n" @@ -3755,7 +3803,7 @@ msgstr "" " border\n" " 테두리 모양 (숫자)\n" -#: help.c:484 +#: help.c:461 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3763,7 +3811,7 @@ msgstr "" " columns\n" " 줄바꿈을 위한 너비 지정\n" -#: help.c:486 +#: help.c:463 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" @@ -3771,7 +3819,7 @@ msgstr "" " expanded (또는 x)\n" " 확장된 출력 전환 [on, off, auto]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid "" " fieldsep\n" @@ -3780,7 +3828,7 @@ msgstr "" " fieldsep\n" " unaligned 출력용 필드 구분자 (초기값 \"%s\"')\n" -#: help.c:491 +#: help.c:468 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3788,7 +3836,7 @@ msgstr "" " fieldsep_zero\n" " unaligned 출력용 필드 구분자를 0 바이트로 지정\n" -#: help.c:493 +#: help.c:470 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3796,7 +3844,7 @@ msgstr "" " footer\n" " 테이블 꼬리말 보이기 전환 [on, off]\n" -#: help.c:495 +#: help.c:472 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3804,7 +3852,7 @@ msgstr "" " format\n" " 출력 양식 지정 [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3812,7 +3860,7 @@ msgstr "" " linestyle\n" " 테두리 선 모양 지정 [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3820,7 +3868,7 @@ msgstr "" " null\n" " null 값 출력 방법\n" -#: help.c:501 +#: help.c:478 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of " @@ -3829,7 +3877,7 @@ msgstr "" " numericlocale\n" " 숫자 출력에서 로케일 기반 천자리 분리 문자 활성화 [on, off]\n" -#: help.c:503 +#: help.c:480 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3837,7 +3885,7 @@ msgstr "" " pager\n" " 외부 페이지 단위 보기 도구 사용 여부 [yes, no, always]\n" -#: help.c:505 +#: help.c:482 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3845,7 +3893,7 @@ msgstr "" " recordsep\n" " unaligned 출력용 레코드(줄) 구분자\n" -#: help.c:507 +#: help.c:484 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3853,7 +3901,7 @@ msgstr "" " recordsep_zero\n" " unaligned 출력용 레코드 구분자를 0 바이트로 지정\n" -#: help.c:509 +#: help.c:486 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3863,7 +3911,7 @@ msgstr "" " html 테이블 태그에 대한 속성이나,\n" " latex-longtable 양식에서 왼쪽 정렬 자료용 칼럼 너비 지정\n" -#: help.c:512 +#: help.c:489 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3871,7 +3919,7 @@ msgstr "" " title\n" " 테이블 제목 지정\n" -#: help.c:514 +#: help.c:491 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3879,7 +3927,7 @@ msgstr "" " tuples_only\n" " 지정되면, 자료만 보임\n" -#: help.c:516 +#: help.c:493 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3891,7 +3939,17 @@ msgstr "" " unicode_header_linestyle\n" " 유니코드 선 종류 [single, double]\n" -#: help.c:521 +#: help.c:497 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" 확장된 출력 화면에서 헤더의 최대 너비 지정\n" +" [full, column, page, integer value]\n" + +#: help.c:501 msgid "" "\n" "Environment variables:\n" @@ -3899,7 +3957,7 @@ msgstr "" "\n" "OS 환경 변수들:\n" -#: help.c:525 +#: help.c:505 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3909,7 +3967,7 @@ msgstr "" " 또는 psql 명령 모드에서는 \\setenv NAME [VALUE]\n" "\n" -#: help.c:527 +#: help.c:507 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3921,7 +3979,7 @@ msgstr "" " 또는 psql 명령 모드에서는 \\setenv NAME [VALUE]\n" "\n" -#: help.c:530 +#: help.c:510 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3929,7 +3987,7 @@ msgstr "" " COLUMNS\n" " 다음 줄로 넘어갈 칼럼 수\n" -#: help.c:532 +#: help.c:512 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3937,7 +3995,7 @@ msgstr "" " PGAPPNAME\n" " application_name 변수값으로 사용됨\n" -#: help.c:534 +#: help.c:514 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3945,7 +4003,7 @@ msgstr "" " PGDATABASE\n" " 접속할 데이터베이스 이름\n" -#: help.c:536 +#: help.c:516 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3953,7 +4011,7 @@ msgstr "" " PGHOST\n" " 서버 접속용 호스트 이름\n" -#: help.c:538 +#: help.c:518 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3961,7 +4019,7 @@ msgstr "" " PGPASSFILE\n" " 서버 접속용 비밀번호가 저장된 파일 이름\n" -#: help.c:540 +#: help.c:520 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3969,7 +4027,7 @@ msgstr "" " PGPASSWORD\n" " 서버 접속 비밀번호 (보안에 취약함)\n" -#: help.c:542 +#: help.c:522 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3977,7 +4035,7 @@ msgstr "" " PGPORT\n" " 서버 접속용 포트\n" -#: help.c:544 +#: help.c:524 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3985,7 +4043,7 @@ msgstr "" " PGUSER\n" " 서버 접속용 데이터베이스 사용자 이름\n" -#: help.c:546 +#: help.c:526 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3993,7 +4051,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " \\e, \\ef, \\ev 명령에서 사용할 외부 편집기 경로\n" -#: help.c:548 +#: help.c:528 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -4001,7 +4059,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " 외부 편집기 호출 시 사용할 줄번호 선택 옵션\n" -#: help.c:550 +#: help.c:530 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -4009,7 +4067,7 @@ msgstr "" " PSQL_HISTORY\n" " 사용자 .psql_history 파일 임의 지정\n" -#: help.c:552 +#: help.c:532 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -4017,7 +4075,7 @@ msgstr "" " PAGER\n" " 페이지 단위 보기에서 사용할 프로그램\n" -#: help.c:555 +#: help.c:535 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -4025,7 +4083,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " \\watch 명령에서 사용할 외장 페이저 프로그램 이름\n" -#: help.c:558 +#: help.c:538 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -4033,7 +4091,7 @@ msgstr "" " PSQLRC\n" " 사용자 .psqlrc 파일의 임의 지정\n" -#: help.c:560 +#: help.c:540 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -4041,7 +4099,7 @@ msgstr "" " SHELL\n" " \\! 명령에서 사용할 쉘\n" -#: help.c:562 +#: help.c:542 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -4049,11 +4107,11 @@ msgstr "" " TMPDIR\n" " 임시 파일을 사용할 디렉터리\n" -#: help.c:622 +#: help.c:602 msgid "Available help:\n" msgstr "사용 가능한 도움말:\n" -#: help.c:717 +#: help.c:697 #, c-format msgid "" "Command: %s\n" @@ -4071,7 +4129,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:740 +#: help.c:720 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4080,17 +4138,17 @@ msgstr "" "\"%s\" 명령에 대한 도움말 없음.\n" "\\h 명령을 인자 없이 호출 하면 사용 가능한 모든 명령 보여줌.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "입력 파일을 읽을 수 없음: %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "history를 \"%s\" 파일로 저장할 수 없음: %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "히스토리 기능은 이 설치본에서는 지원하지 않음" @@ -4179,12 +4237,12 @@ msgstr "" msgid "reached EOF without finding closing \\endif(s)" msgstr "\\endif 없이 EOF 도달" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "마무리 안된 따옴표 안의 문자열" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s: 메모리 부족" @@ -4192,2429 +4250,2449 @@ msgstr "%s: 메모리 부족" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1308 sql_help.c:1310 -#: sql_help.c:1313 sql_help.c:1316 sql_help.c:1318 sql_help.c:1320 -#: sql_help.c:1323 sql_help.c:1326 sql_help.c:1443 sql_help.c:1445 -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:1471 sql_help.c:1474 -#: sql_help.c:1477 sql_help.c:1480 sql_help.c:1484 sql_help.c:1486 -#: sql_help.c:1488 sql_help.c:1490 sql_help.c:1504 sql_help.c:1507 -#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1521 sql_help.c:1523 -#: sql_help.c:1533 sql_help.c:1535 sql_help.c:1545 sql_help.c:1548 -#: sql_help.c:1571 sql_help.c:1573 sql_help.c:1575 sql_help.c:1577 -#: sql_help.c:1580 sql_help.c:1582 sql_help.c:1585 sql_help.c:1588 -#: sql_help.c:1639 sql_help.c:1682 sql_help.c:1685 sql_help.c:1687 -#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1694 sql_help.c:1696 -#: sql_help.c:1699 sql_help.c:1751 sql_help.c:1767 sql_help.c:2000 -#: sql_help.c:2069 sql_help.c:2088 sql_help.c:2101 sql_help.c:2159 -#: sql_help.c:2167 sql_help.c:2177 sql_help.c:2204 sql_help.c:2236 -#: sql_help.c:2254 sql_help.c:2282 sql_help.c:2393 sql_help.c:2439 -#: sql_help.c:2464 sql_help.c:2487 sql_help.c:2491 sql_help.c:2525 -#: sql_help.c:2545 sql_help.c:2567 sql_help.c:2581 sql_help.c:2602 -#: sql_help.c:2631 sql_help.c:2666 sql_help.c:2691 sql_help.c:2738 -#: sql_help.c:3033 sql_help.c:3046 sql_help.c:3063 sql_help.c:3079 -#: sql_help.c:3119 sql_help.c:3173 sql_help.c:3177 sql_help.c:3179 -#: sql_help.c:3186 sql_help.c:3205 sql_help.c:3232 sql_help.c:3267 -#: sql_help.c:3279 sql_help.c:3288 sql_help.c:3332 sql_help.c:3346 -#: sql_help.c:3374 sql_help.c:3382 sql_help.c:3394 sql_help.c:3404 -#: sql_help.c:3412 sql_help.c:3420 sql_help.c:3428 sql_help.c:3436 -#: sql_help.c:3445 sql_help.c:3456 sql_help.c:3464 sql_help.c:3472 -#: sql_help.c:3480 sql_help.c:3488 sql_help.c:3498 sql_help.c:3507 -#: sql_help.c:3516 sql_help.c:3524 sql_help.c:3534 sql_help.c:3545 -#: sql_help.c:3553 sql_help.c:3562 sql_help.c:3573 sql_help.c:3582 -#: sql_help.c:3590 sql_help.c:3598 sql_help.c:3606 sql_help.c:3614 -#: sql_help.c:3622 sql_help.c:3630 sql_help.c:3638 sql_help.c:3646 -#: sql_help.c:3654 sql_help.c:3662 sql_help.c:3679 sql_help.c:3688 -#: sql_help.c:3696 sql_help.c:3713 sql_help.c:3728 sql_help.c:4040 -#: sql_help.c:4150 sql_help.c:4179 sql_help.c:4195 sql_help.c:4197 -#: sql_help.c:4700 sql_help.c:4748 sql_help.c:4906 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:245 +#: sql_help.c:247 sql_help.c:248 sql_help.c:250 sql_help.c:252 sql_help.c:255 +#: sql_help.c:257 sql_help.c:259 sql_help.c:261 sql_help.c:276 sql_help.c:277 +#: sql_help.c:278 sql_help.c:280 sql_help.c:329 sql_help.c:331 sql_help.c:333 +#: sql_help.c:335 sql_help.c:404 sql_help.c:409 sql_help.c:411 sql_help.c:453 +#: sql_help.c:455 sql_help.c:458 sql_help.c:460 sql_help.c:529 sql_help.c:534 +#: sql_help.c:539 sql_help.c:544 sql_help.c:549 sql_help.c:603 sql_help.c:605 +#: sql_help.c:607 sql_help.c:609 sql_help.c:611 sql_help.c:614 sql_help.c:616 +#: sql_help.c:619 sql_help.c:630 sql_help.c:632 sql_help.c:676 sql_help.c:678 +#: sql_help.c:680 sql_help.c:683 sql_help.c:685 sql_help.c:687 sql_help.c:728 +#: sql_help.c:732 sql_help.c:736 sql_help.c:757 sql_help.c:760 sql_help.c:763 +#: sql_help.c:792 sql_help.c:804 sql_help.c:812 sql_help.c:815 sql_help.c:818 +#: sql_help.c:833 sql_help.c:836 sql_help.c:865 sql_help.c:870 sql_help.c:875 +#: sql_help.c:880 sql_help.c:885 sql_help.c:912 sql_help.c:914 sql_help.c:916 +#: sql_help.c:918 sql_help.c:921 sql_help.c:923 sql_help.c:970 sql_help.c:1015 +#: sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 sql_help.c:1035 +#: sql_help.c:1054 sql_help.c:1065 sql_help.c:1067 sql_help.c:1087 +#: sql_help.c:1097 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102 +#: sql_help.c:1114 sql_help.c:1118 sql_help.c:1120 sql_help.c:1132 +#: sql_help.c:1134 sql_help.c:1136 sql_help.c:1138 sql_help.c:1157 +#: sql_help.c:1159 sql_help.c:1163 sql_help.c:1167 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1175 sql_help.c:1176 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1184 sql_help.c:1324 sql_help.c:1326 +#: sql_help.c:1329 sql_help.c:1332 sql_help.c:1334 sql_help.c:1336 +#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1464 sql_help.c:1466 +#: sql_help.c:1468 sql_help.c:1471 sql_help.c:1492 sql_help.c:1495 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1505 sql_help.c:1507 +#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1525 sql_help.c:1528 +#: sql_help.c:1530 sql_help.c:1532 sql_help.c:1542 sql_help.c:1544 +#: sql_help.c:1554 sql_help.c:1556 sql_help.c:1566 sql_help.c:1569 +#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1596 sql_help.c:1598 +#: sql_help.c:1601 sql_help.c:1603 sql_help.c:1606 sql_help.c:1609 +#: sql_help.c:1660 sql_help.c:1703 sql_help.c:1706 sql_help.c:1708 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:1715 sql_help.c:1717 +#: sql_help.c:1720 sql_help.c:1770 sql_help.c:1786 sql_help.c:2019 +#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2120 sql_help.c:2178 +#: sql_help.c:2186 sql_help.c:2196 sql_help.c:2224 sql_help.c:2257 +#: sql_help.c:2275 sql_help.c:2303 sql_help.c:2414 sql_help.c:2460 +#: sql_help.c:2485 sql_help.c:2508 sql_help.c:2512 sql_help.c:2546 +#: sql_help.c:2566 sql_help.c:2588 sql_help.c:2602 sql_help.c:2623 +#: sql_help.c:2652 sql_help.c:2685 sql_help.c:2708 sql_help.c:2755 +#: sql_help.c:3053 sql_help.c:3066 sql_help.c:3083 sql_help.c:3099 +#: sql_help.c:3139 sql_help.c:3193 sql_help.c:3197 sql_help.c:3199 +#: sql_help.c:3206 sql_help.c:3225 sql_help.c:3252 sql_help.c:3287 +#: sql_help.c:3299 sql_help.c:3308 sql_help.c:3352 sql_help.c:3366 +#: sql_help.c:3394 sql_help.c:3402 sql_help.c:3414 sql_help.c:3424 +#: sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 sql_help.c:3456 +#: sql_help.c:3465 sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 +#: sql_help.c:3500 sql_help.c:3508 sql_help.c:3518 sql_help.c:3527 +#: sql_help.c:3536 sql_help.c:3544 sql_help.c:3554 sql_help.c:3565 +#: sql_help.c:3573 sql_help.c:3582 sql_help.c:3593 sql_help.c:3602 +#: sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 sql_help.c:3634 +#: sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 sql_help.c:3666 +#: sql_help.c:3674 sql_help.c:3682 sql_help.c:3699 sql_help.c:3708 +#: sql_help.c:3716 sql_help.c:3733 sql_help.c:3748 sql_help.c:4061 +#: sql_help.c:4182 sql_help.c:4211 sql_help.c:4227 sql_help.c:4229 +#: sql_help.c:4733 sql_help.c:4781 sql_help.c:4940 msgid "name" msgstr "이름" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1848 -#: sql_help.c:3347 sql_help.c:4468 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1863 +#: sql_help.c:3367 sql_help.c:4500 msgid "aggregate_signature" msgstr "집계함수_식별구문" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1317 sql_help.c:1444 -#: sql_help.c:1487 sql_help.c:1508 sql_help.c:1522 sql_help.c:1534 -#: sql_help.c:1547 sql_help.c:1574 sql_help.c:1640 sql_help.c:1693 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 +#: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 +#: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:759 sql_help.c:814 +#: sql_help.c:835 sql_help.c:874 sql_help.c:924 sql_help.c:971 sql_help.c:1024 +#: sql_help.c:1056 sql_help.c:1066 sql_help.c:1101 sql_help.c:1121 +#: sql_help.c:1135 sql_help.c:1185 sql_help.c:1333 sql_help.c:1465 +#: sql_help.c:1508 sql_help.c:1529 sql_help.c:1543 sql_help.c:1555 +#: sql_help.c:1568 sql_help.c:1595 sql_help.c:1661 sql_help.c:1714 msgid "new_name" msgstr "새이름" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1381 sql_help.c:1446 sql_help.c:1489 sql_help.c:1510 -#: sql_help.c:1572 sql_help.c:1688 sql_help.c:3019 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 +#: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 +#: sql_help.c:642 sql_help.c:707 sql_help.c:731 sql_help.c:762 sql_help.c:817 +#: sql_help.c:879 sql_help.c:922 sql_help.c:1029 sql_help.c:1068 +#: sql_help.c:1099 sql_help.c:1119 sql_help.c:1133 sql_help.c:1183 +#: sql_help.c:1399 sql_help.c:1467 sql_help.c:1510 sql_help.c:1531 +#: sql_help.c:1593 sql_help.c:1709 sql_help.c:3039 msgid "new_owner" msgstr "새사용자" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1319 sql_help.c:1491 sql_help.c:1512 -#: sql_help.c:1524 sql_help.c:1536 sql_help.c:1576 sql_help.c:1695 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 +#: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:735 sql_help.c:765 +#: sql_help.c:820 sql_help.c:884 sql_help.c:1034 sql_help.c:1103 +#: sql_help.c:1137 sql_help.c:1335 sql_help.c:1512 sql_help.c:1533 +#: sql_help.c:1545 sql_help.c:1557 sql_help.c:1597 sql_help.c:1716 msgid "new_schema" msgstr "새스키마" -#: sql_help.c:44 sql_help.c:1912 sql_help.c:3348 sql_help.c:4497 +#: sql_help.c:44 sql_help.c:1927 sql_help.c:3368 sql_help.c:4529 msgid "where aggregate_signature is:" msgstr "집계함수_식별구문 사용법:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:3915 sql_help.c:4367 sql_help.c:4474 -#: sql_help.c:4481 sql_help.c:4487 sql_help.c:4498 sql_help.c:4501 -#: sql_help.c:4504 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 +#: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 +#: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:866 +#: sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:886 sql_help.c:1016 +#: sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 sql_help.c:1036 +#: sql_help.c:1881 sql_help.c:1898 sql_help.c:1904 sql_help.c:1928 +#: sql_help.c:1931 sql_help.c:1934 sql_help.c:2089 sql_help.c:2108 +#: sql_help.c:2111 sql_help.c:2415 sql_help.c:2624 sql_help.c:3369 +#: sql_help.c:3372 sql_help.c:3375 sql_help.c:3466 sql_help.c:3555 +#: sql_help.c:3583 sql_help.c:3936 sql_help.c:4399 sql_help.c:4506 +#: sql_help.c:4513 sql_help.c:4519 sql_help.c:4530 sql_help.c:4533 +#: sql_help.c:4536 msgid "argmode" msgstr "인자모드" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2071 sql_help.c:2090 -#: sql_help.c:2093 sql_help.c:2395 sql_help.c:2604 sql_help.c:3350 -#: sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 sql_help.c:3536 -#: sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 sql_help.c:4488 -#: sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 +#: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 +#: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:887 sql_help.c:1017 +#: sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 sql_help.c:1037 +#: sql_help.c:1882 sql_help.c:1899 sql_help.c:1905 sql_help.c:1929 +#: sql_help.c:1932 sql_help.c:1935 sql_help.c:2090 sql_help.c:2109 +#: sql_help.c:2112 sql_help.c:2416 sql_help.c:2625 sql_help.c:3370 +#: sql_help.c:3373 sql_help.c:3376 sql_help.c:3467 sql_help.c:3556 +#: sql_help.c:3584 sql_help.c:4507 sql_help.c:4514 sql_help.c:4520 +#: sql_help.c:4531 sql_help.c:4534 sql_help.c:4537 msgid "argname" msgstr "인자이름" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1868 sql_help.c:1885 sql_help.c:1891 sql_help.c:1915 -#: sql_help.c:1918 sql_help.c:1921 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3357 sql_help.c:3448 -#: sql_help.c:3537 sql_help.c:3565 sql_help.c:4476 sql_help.c:4483 -#: sql_help.c:4489 sql_help.c:4500 sql_help.c:4503 sql_help.c:4506 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 +#: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 +#: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:868 +#: sql_help.c:873 sql_help.c:878 sql_help.c:883 sql_help.c:888 sql_help.c:1018 +#: sql_help.c:1023 sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 +#: sql_help.c:1883 sql_help.c:1900 sql_help.c:1906 sql_help.c:1930 +#: sql_help.c:1933 sql_help.c:1936 sql_help.c:2417 sql_help.c:2626 +#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3377 sql_help.c:3468 +#: sql_help.c:3557 sql_help.c:3585 sql_help.c:4508 sql_help.c:4515 +#: sql_help.c:4521 sql_help.c:4532 sql_help.c:4535 sql_help.c:4538 msgid "argtype" msgstr "인자자료형" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1505 sql_help.c:1634 sql_help.c:1666 -#: sql_help.c:1719 sql_help.c:1783 sql_help.c:1970 sql_help.c:1977 -#: sql_help.c:2285 sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2440 sql_help.c:2667 sql_help.c:2760 sql_help.c:3048 -#: sql_help.c:3233 sql_help.c:3255 sql_help.c:3395 sql_help.c:3751 -#: sql_help.c:3959 sql_help.c:4194 sql_help.c:4196 sql_help.c:4973 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:965 +#: sql_help.c:1116 sql_help.c:1526 sql_help.c:1655 sql_help.c:1687 +#: sql_help.c:1739 sql_help.c:1798 sql_help.c:1987 sql_help.c:1994 +#: sql_help.c:2306 sql_help.c:2356 sql_help.c:2363 sql_help.c:2372 +#: sql_help.c:2461 sql_help.c:2686 sql_help.c:2777 sql_help.c:3068 +#: sql_help.c:3253 sql_help.c:3275 sql_help.c:3415 sql_help.c:3772 +#: sql_help.c:3980 sql_help.c:4226 sql_help.c:4228 sql_help.c:5006 msgid "option" msgstr "옵션" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1635 sql_help.c:2441 -#: sql_help.c:2668 sql_help.c:3234 sql_help.c:3396 +#: sql_help.c:115 sql_help.c:966 sql_help.c:1656 sql_help.c:2462 +#: sql_help.c:2687 sql_help.c:3254 sql_help.c:3416 msgid "where option can be:" msgstr "옵션 사용법:" -#: sql_help.c:116 sql_help.c:2217 +#: sql_help.c:116 sql_help.c:2238 msgid "allowconn" msgstr "접속허용" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1636 sql_help.c:2218 -#: sql_help.c:2442 sql_help.c:2669 sql_help.c:3235 +#: sql_help.c:117 sql_help.c:967 sql_help.c:1657 sql_help.c:2239 +#: sql_help.c:2463 sql_help.c:2688 sql_help.c:3255 msgid "connlimit" msgstr "접속제한" -#: sql_help.c:118 sql_help.c:2219 +#: sql_help.c:118 sql_help.c:2240 msgid "istemplate" msgstr "템플릿?" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1322 -#: sql_help.c:1374 sql_help.c:4200 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1338 +#: sql_help.c:1392 sql_help.c:4232 msgid "new_tablespace" msgstr "새테이블스페이스" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1183 sql_help.c:1643 -#: sql_help.c:1647 sql_help.c:1650 sql_help.c:2406 sql_help.c:2609 -#: sql_help.c:3927 sql_help.c:4218 sql_help.c:4379 sql_help.c:4688 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 +#: sql_help.c:561 sql_help.c:891 sql_help.c:893 sql_help.c:894 sql_help.c:974 +#: sql_help.c:978 sql_help.c:981 sql_help.c:1043 sql_help.c:1045 +#: sql_help.c:1046 sql_help.c:1196 sql_help.c:1198 sql_help.c:1664 +#: sql_help.c:1668 sql_help.c:1671 sql_help.c:2427 sql_help.c:2630 +#: sql_help.c:3948 sql_help.c:4250 sql_help.c:4411 sql_help.c:4721 msgid "configuration_parameter" msgstr "환경설정_매개변수" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1182 -#: sql_help.c:1353 sql_help.c:1376 sql_help.c:1424 sql_help.c:1449 -#: sql_help.c:1506 sql_help.c:1590 sql_help.c:1644 sql_help.c:1667 -#: sql_help.c:2286 sql_help.c:2336 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2407 sql_help.c:2408 sql_help.c:2472 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2610 sql_help.c:2611 sql_help.c:2634 -#: sql_help.c:2761 sql_help.c:2800 sql_help.c:2910 sql_help.c:2923 -#: sql_help.c:2937 sql_help.c:2978 sql_help.c:3005 sql_help.c:3022 -#: sql_help.c:3049 sql_help.c:3256 sql_help.c:3960 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 sql_help.c:4692 +#: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 +#: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:892 +#: sql_help.c:920 sql_help.c:975 sql_help.c:1044 sql_help.c:1117 +#: sql_help.c:1162 sql_help.c:1166 sql_help.c:1170 sql_help.c:1173 +#: sql_help.c:1178 sql_help.c:1181 sql_help.c:1197 sql_help.c:1371 +#: sql_help.c:1394 sql_help.c:1442 sql_help.c:1450 sql_help.c:1470 +#: sql_help.c:1527 sql_help.c:1611 sql_help.c:1665 sql_help.c:1688 +#: sql_help.c:2307 sql_help.c:2357 sql_help.c:2364 sql_help.c:2373 +#: sql_help.c:2428 sql_help.c:2429 sql_help.c:2493 sql_help.c:2496 +#: sql_help.c:2530 sql_help.c:2631 sql_help.c:2632 sql_help.c:2655 +#: sql_help.c:2778 sql_help.c:2817 sql_help.c:2927 sql_help.c:2940 +#: sql_help.c:2954 sql_help.c:2995 sql_help.c:3003 sql_help.c:3025 +#: sql_help.c:3042 sql_help.c:3069 sql_help.c:3276 sql_help.c:3981 +#: sql_help.c:4722 sql_help.c:4723 sql_help.c:4724 sql_help.c:4725 msgid "value" msgstr "값" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "대상롤" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2270 sql_help.c:2639 -#: sql_help.c:2716 sql_help.c:2721 sql_help.c:3890 sql_help.c:3899 -#: sql_help.c:3918 sql_help.c:3930 sql_help.c:4342 sql_help.c:4351 -#: sql_help.c:4370 sql_help.c:4382 +#: sql_help.c:203 sql_help.c:929 sql_help.c:2291 sql_help.c:2660 +#: sql_help.c:2733 sql_help.c:2738 sql_help.c:3911 sql_help.c:3920 +#: sql_help.c:3939 sql_help.c:3951 sql_help.c:4374 sql_help.c:4383 +#: sql_help.c:4402 sql_help.c:4414 msgid "schema_name" msgstr "스키마이름" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "grant_또는_revoke_내용" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "grant_또는_revoke_내용에 사용되는 구문:" -#: 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:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1321 sql_help.c:1654 sql_help.c:2445 sql_help.c:2446 -#: sql_help.c:2447 sql_help.c:2448 sql_help.c:2449 sql_help.c:2583 -#: sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 sql_help.c:2675 -#: sql_help.c:2676 sql_help.c:3238 sql_help.c:3239 sql_help.c:3240 -#: sql_help.c:3241 sql_help.c:3242 sql_help.c:3939 sql_help.c:3943 -#: sql_help.c:4391 sql_help.c:4395 sql_help.c:4710 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:838 sql_help.c:985 +#: sql_help.c:1337 sql_help.c:1675 sql_help.c:2466 sql_help.c:2467 +#: sql_help.c:2468 sql_help.c:2469 sql_help.c:2470 sql_help.c:2604 +#: sql_help.c:2691 sql_help.c:2692 sql_help.c:2693 sql_help.c:3258 +#: sql_help.c:3259 sql_help.c:3260 sql_help.c:3261 sql_help.c:3262 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:4423 sql_help.c:4427 +#: sql_help.c:4743 msgid "role_name" msgstr "롤이름" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1337 sql_help.c:1339 -#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1428 sql_help.c:1684 -#: sql_help.c:2239 sql_help.c:2243 sql_help.c:2355 sql_help.c:2360 -#: sql_help.c:2468 sql_help.c:2638 sql_help.c:2777 sql_help.c:2782 -#: sql_help.c:2784 sql_help.c:2905 sql_help.c:2918 sql_help.c:2932 -#: sql_help.c:2941 sql_help.c:2953 sql_help.c:2982 sql_help.c:3991 -#: sql_help.c:4006 sql_help.c:4008 sql_help.c:4095 sql_help.c:4098 -#: sql_help.c:4100 sql_help.c:4561 sql_help.c:4562 sql_help.c:4571 -#: sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 sql_help.c:4621 -#: sql_help.c:4622 sql_help.c:4623 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4669 sql_help.c:4674 sql_help.c:4818 sql_help.c:4819 -#: sql_help.c:4828 sql_help.c:4875 sql_help.c:4876 sql_help.c:4877 -#: sql_help.c:4878 sql_help.c:4879 sql_help.c:4880 sql_help.c:4934 -#: sql_help.c:4936 sql_help.c:5004 sql_help.c:5064 sql_help.c:5065 -#: sql_help.c:5074 sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 -#: sql_help.c:5124 sql_help.c:5125 sql_help.c:5126 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:928 sql_help.c:1353 +#: sql_help.c:1355 sql_help.c:1359 sql_help.c:1409 sql_help.c:1421 +#: sql_help.c:1446 sql_help.c:1705 sql_help.c:2260 sql_help.c:2264 +#: sql_help.c:2376 sql_help.c:2381 sql_help.c:2489 sql_help.c:2659 +#: sql_help.c:2794 sql_help.c:2799 sql_help.c:2801 sql_help.c:2922 +#: sql_help.c:2935 sql_help.c:2949 sql_help.c:2958 sql_help.c:2970 +#: sql_help.c:2999 sql_help.c:4012 sql_help.c:4027 sql_help.c:4029 +#: sql_help.c:4125 sql_help.c:4128 sql_help.c:4130 sql_help.c:4593 +#: sql_help.c:4594 sql_help.c:4603 sql_help.c:4650 sql_help.c:4651 +#: sql_help.c:4652 sql_help.c:4653 sql_help.c:4654 sql_help.c:4655 +#: sql_help.c:4696 sql_help.c:4697 sql_help.c:4702 sql_help.c:4707 +#: sql_help.c:4851 sql_help.c:4852 sql_help.c:4861 sql_help.c:4908 +#: sql_help.c:4909 sql_help.c:4910 sql_help.c:4911 sql_help.c:4912 +#: sql_help.c:4913 sql_help.c:4968 sql_help.c:4970 sql_help.c:5036 +#: sql_help.c:5096 sql_help.c:5097 sql_help.c:5106 sql_help.c:5153 +#: sql_help.c:5154 sql_help.c:5155 sql_help.c:5156 sql_help.c:5157 +#: sql_help.c:5158 msgid "expression" msgstr "표현식" -#: sql_help.c:242 +#: sql_help.c:249 sql_help.c:2261 msgid "domain_constraint" msgstr "도메인_제약조건" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1314 sql_help.c:1361 sql_help.c:1362 sql_help.c:1363 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1419 sql_help.c:1854 -#: sql_help.c:1856 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:4003 +#: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 +#: sql_help.c:488 sql_help.c:1330 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1381 sql_help.c:1408 sql_help.c:1420 sql_help.c:1437 +#: sql_help.c:1869 sql_help.c:1871 sql_help.c:2263 sql_help.c:2375 +#: sql_help.c:2380 sql_help.c:2957 sql_help.c:2969 sql_help.c:4024 msgid "constraint_name" msgstr "제약조건_이름" -#: sql_help.c:247 sql_help.c:1315 +#: sql_help.c:254 sql_help.c:1331 msgid "new_constraint_name" msgstr "새제약조건_이름" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:263 sql_help.c:2262 +msgid "where domain_constraint is:" +msgstr "도메인_제약조건 사용법:" + +#: sql_help.c:330 sql_help.c:1115 msgid "new_version" msgstr "새버전" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:334 sql_help.c:336 msgid "member_object" msgstr "맴버_객체" -#: sql_help.c:327 +#: sql_help.c:337 msgid "where member_object is:" msgstr "맴버_객체 사용법:" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1846 sql_help.c:1851 sql_help.c:1858 -#: sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 sql_help.c:1862 -#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1869 sql_help.c:1871 -#: sql_help.c:1875 sql_help.c:1877 sql_help.c:1881 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1894 sql_help.c:1895 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 -#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 -#: sql_help.c:1909 sql_help.c:1910 sql_help.c:4464 sql_help.c:4469 -#: sql_help.c:4470 sql_help.c:4471 sql_help.c:4472 sql_help.c:4478 -#: sql_help.c:4479 sql_help.c:4484 sql_help.c:4485 sql_help.c:4490 -#: sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 sql_help.c:4494 -#: sql_help.c:4495 +#: sql_help.c:338 sql_help.c:343 sql_help.c:344 sql_help.c:345 sql_help.c:346 +#: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 +#: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 +#: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 +#: sql_help.c:381 sql_help.c:1861 sql_help.c:1866 sql_help.c:1873 +#: sql_help.c:1874 sql_help.c:1875 sql_help.c:1876 sql_help.c:1877 +#: sql_help.c:1878 sql_help.c:1879 sql_help.c:1884 sql_help.c:1886 +#: sql_help.c:1890 sql_help.c:1892 sql_help.c:1896 sql_help.c:1901 +#: sql_help.c:1902 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 sql_help.c:1915 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:1918 sql_help.c:1919 +#: sql_help.c:1924 sql_help.c:1925 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4510 +#: sql_help.c:4511 sql_help.c:4516 sql_help.c:4517 sql_help.c:4522 +#: sql_help.c:4523 sql_help.c:4524 sql_help.c:4525 sql_help.c:4526 +#: sql_help.c:4527 msgid "object_name" msgstr "객체이름" -#: sql_help.c:329 sql_help.c:1847 sql_help.c:4467 +#: sql_help.c:339 sql_help.c:1862 sql_help.c:4499 msgid "aggregate_name" msgstr "집계함수이름" -#: sql_help.c:331 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:341 sql_help.c:1864 sql_help.c:2154 sql_help.c:2158 +#: sql_help.c:2160 sql_help.c:3385 msgid "source_type" msgstr "기존자료형" -#: sql_help.c:332 sql_help.c:1850 sql_help.c:2136 sql_help.c:2140 -#: sql_help.c:2142 sql_help.c:3366 +#: sql_help.c:342 sql_help.c:1865 sql_help.c:2155 sql_help.c:2159 +#: sql_help.c:2161 sql_help.c:3386 msgid "target_type" msgstr "대상자료형" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1865 sql_help.c:2137 -#: sql_help.c:2180 sql_help.c:2258 sql_help.c:2526 sql_help.c:2557 -#: sql_help.c:3125 sql_help.c:4366 sql_help.c:4473 sql_help.c:4590 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4601 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5093 -#: sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:349 sql_help.c:802 sql_help.c:1880 sql_help.c:2156 +#: sql_help.c:2199 sql_help.c:2279 sql_help.c:2547 sql_help.c:2578 +#: sql_help.c:3145 sql_help.c:4398 sql_help.c:4505 sql_help.c:4622 +#: sql_help.c:4626 sql_help.c:4630 sql_help.c:4633 sql_help.c:4880 +#: sql_help.c:4884 sql_help.c:4888 sql_help.c:4891 sql_help.c:5125 +#: sql_help.c:5129 sql_help.c:5133 sql_help.c:5136 msgid "function_name" msgstr "함수이름" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1872 sql_help.c:2550 +#: sql_help.c:354 sql_help.c:795 sql_help.c:1887 sql_help.c:2571 msgid "operator_name" msgstr "연산자이름" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:355 sql_help.c:729 sql_help.c:733 sql_help.c:737 sql_help.c:1888 +#: sql_help.c:2548 sql_help.c:3509 msgid "left_type" msgstr "왼쪽인자_자료형" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1874 -#: sql_help.c:2528 sql_help.c:3490 +#: sql_help.c:356 sql_help.c:730 sql_help.c:734 sql_help.c:738 sql_help.c:1889 +#: sql_help.c:2549 sql_help.c:3510 msgid "right_type" msgstr "오른쪽인자_자료형" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1408 sql_help.c:1876 sql_help.c:1878 sql_help.c:2547 -#: sql_help.c:2568 sql_help.c:2958 sql_help.c:3499 sql_help.c:3508 +#: sql_help.c:358 sql_help.c:360 sql_help.c:758 sql_help.c:761 sql_help.c:764 +#: sql_help.c:793 sql_help.c:805 sql_help.c:813 sql_help.c:816 sql_help.c:819 +#: sql_help.c:1426 sql_help.c:1891 sql_help.c:1893 sql_help.c:2568 +#: sql_help.c:2589 sql_help.c:2975 sql_help.c:3519 sql_help.c:3528 msgid "index_method" msgstr "색인방법" -#: sql_help.c:352 sql_help.c:1882 sql_help.c:4480 +#: sql_help.c:362 sql_help.c:1897 sql_help.c:4512 msgid "procedure_name" msgstr "프로시져_이름" -#: sql_help.c:356 sql_help.c:1888 sql_help.c:3914 sql_help.c:4486 +#: sql_help.c:366 sql_help.c:1903 sql_help.c:3935 sql_help.c:4518 msgid "routine_name" msgstr "루틴_이름" -#: sql_help.c:368 sql_help.c:1380 sql_help.c:1905 sql_help.c:2402 -#: sql_help.c:2608 sql_help.c:2913 sql_help.c:3092 sql_help.c:3670 -#: sql_help.c:3936 sql_help.c:4388 +#: sql_help.c:378 sql_help.c:1398 sql_help.c:1920 sql_help.c:2423 +#: sql_help.c:2629 sql_help.c:2930 sql_help.c:3112 sql_help.c:3690 +#: sql_help.c:3957 sql_help.c:4420 msgid "type_name" msgstr "자료형이름" -#: sql_help.c:369 sql_help.c:1906 sql_help.c:2401 sql_help.c:2607 -#: sql_help.c:3093 sql_help.c:3323 sql_help.c:3671 sql_help.c:3921 -#: sql_help.c:4373 +#: sql_help.c:379 sql_help.c:1921 sql_help.c:2422 sql_help.c:2628 +#: sql_help.c:3113 sql_help.c:3343 sql_help.c:3691 sql_help.c:3942 +#: sql_help.c:4405 msgid "lang_name" msgstr "언어_이름" -#: sql_help.c:372 +#: sql_help.c:382 msgid "and aggregate_signature is:" msgstr "집계함수_식별구문 사용법:" -#: sql_help.c:395 sql_help.c:2002 sql_help.c:2283 +#: sql_help.c:405 sql_help.c:2021 sql_help.c:2304 msgid "handler_function" msgstr "핸들러_함수" -#: sql_help.c:396 sql_help.c:2284 +#: sql_help.c:406 sql_help.c:2305 msgid "validator_function" msgstr "유효성검사_함수" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1309 sql_help.c:1581 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:869 sql_help.c:1019 +#: sql_help.c:1325 sql_help.c:1602 msgid "action" msgstr "동작" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1311 sql_help.c:1329 sql_help.c:1333 sql_help.c:1334 -#: sql_help.c:1338 sql_help.c:1340 sql_help.c:1341 sql_help.c:1342 -#: sql_help.c:1343 sql_help.c:1345 sql_help.c:1348 sql_help.c:1349 -#: sql_help.c:1351 sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 -#: sql_help.c:1404 sql_help.c:1406 sql_help.c:1413 sql_help.c:1422 -#: sql_help.c:1427 sql_help.c:1431 sql_help.c:1432 sql_help.c:1683 -#: sql_help.c:1686 sql_help.c:1690 sql_help.c:1728 sql_help.c:1853 -#: sql_help.c:1967 sql_help.c:1973 sql_help.c:1987 sql_help.c:1988 -#: sql_help.c:1989 sql_help.c:2333 sql_help.c:2346 sql_help.c:2399 -#: sql_help.c:2467 sql_help.c:2473 sql_help.c:2506 sql_help.c:2637 -#: sql_help.c:2746 sql_help.c:2781 sql_help.c:2783 sql_help.c:2895 -#: sql_help.c:2904 sql_help.c:2914 sql_help.c:2917 sql_help.c:2927 -#: sql_help.c:2931 sql_help.c:2954 sql_help.c:2956 sql_help.c:2963 -#: sql_help.c:2976 sql_help.c:2981 sql_help.c:2985 sql_help.c:2986 -#: sql_help.c:3002 sql_help.c:3128 sql_help.c:3268 sql_help.c:3893 -#: sql_help.c:3894 sql_help.c:3990 sql_help.c:4005 sql_help.c:4007 -#: sql_help.c:4009 sql_help.c:4094 sql_help.c:4097 sql_help.c:4099 -#: sql_help.c:4345 sql_help.c:4346 sql_help.c:4466 sql_help.c:4627 -#: sql_help.c:4633 sql_help.c:4635 sql_help.c:4884 sql_help.c:4890 -#: sql_help.c:4892 sql_help.c:4933 sql_help.c:4935 sql_help.c:4937 -#: sql_help.c:4992 sql_help.c:5130 sql_help.c:5136 sql_help.c:5138 +#: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 +#: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 +#: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:927 sql_help.c:1096 +#: sql_help.c:1327 sql_help.c:1345 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1360 sql_help.c:1361 sql_help.c:1363 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1369 sql_help.c:1372 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1422 sql_help.c:1424 sql_help.c:1431 +#: sql_help.c:1440 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1704 sql_help.c:1707 sql_help.c:1711 sql_help.c:1747 +#: sql_help.c:1868 sql_help.c:1984 sql_help.c:1990 sql_help.c:2004 +#: sql_help.c:2005 sql_help.c:2006 sql_help.c:2354 sql_help.c:2367 +#: sql_help.c:2420 sql_help.c:2488 sql_help.c:2494 sql_help.c:2527 +#: sql_help.c:2658 sql_help.c:2763 sql_help.c:2798 sql_help.c:2800 +#: sql_help.c:2912 sql_help.c:2921 sql_help.c:2931 sql_help.c:2934 +#: sql_help.c:2944 sql_help.c:2948 sql_help.c:2971 sql_help.c:2973 +#: sql_help.c:2980 sql_help.c:2993 sql_help.c:2998 sql_help.c:3005 +#: sql_help.c:3006 sql_help.c:3022 sql_help.c:3148 sql_help.c:3288 +#: sql_help.c:3914 sql_help.c:3915 sql_help.c:4011 sql_help.c:4026 +#: sql_help.c:4028 sql_help.c:4030 sql_help.c:4124 sql_help.c:4127 +#: sql_help.c:4129 sql_help.c:4131 sql_help.c:4377 sql_help.c:4378 +#: sql_help.c:4498 sql_help.c:4659 sql_help.c:4666 sql_help.c:4668 +#: sql_help.c:4917 sql_help.c:4924 sql_help.c:4926 sql_help.c:4967 +#: sql_help.c:4969 sql_help.c:4971 sql_help.c:5024 sql_help.c:5162 +#: sql_help.c:5169 sql_help.c:5171 msgid "column_name" msgstr "칼럼이름" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1312 sql_help.c:1691 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1328 sql_help.c:1712 msgid "new_column_name" msgstr "새칼럼이름" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1328 sql_help.c:1591 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:890 sql_help.c:1040 +#: sql_help.c:1344 sql_help.c:1612 msgid "where action is one of:" msgstr "동작 사용법:" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1330 -#: sql_help.c:1335 sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 -#: sql_help.c:2334 sql_help.c:2546 sql_help.c:2739 sql_help.c:2896 -#: sql_help.c:3175 sql_help.c:4151 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1088 sql_help.c:1346 +#: sql_help.c:1351 sql_help.c:1614 sql_help.c:1618 sql_help.c:2258 +#: sql_help.c:2355 sql_help.c:2567 sql_help.c:2756 sql_help.c:2913 +#: sql_help.c:3195 sql_help.c:4183 msgid "data_type" msgstr "자료형" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1331 sql_help.c:1336 -#: sql_help.c:1594 sql_help.c:1598 sql_help.c:2238 sql_help.c:2337 -#: sql_help.c:2469 sql_help.c:2898 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:3176 sql_help.c:3182 sql_help.c:4000 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1347 sql_help.c:1352 +#: sql_help.c:1447 sql_help.c:1615 sql_help.c:1619 sql_help.c:2259 +#: sql_help.c:2358 sql_help.c:2490 sql_help.c:2915 sql_help.c:2923 +#: sql_help.c:2936 sql_help.c:2950 sql_help.c:3000 sql_help.c:3196 +#: sql_help.c:3202 sql_help.c:4021 msgid "collation" msgstr "collation" -#: sql_help.c:456 sql_help.c:1332 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:466 sql_help.c:1348 sql_help.c:2359 sql_help.c:2368 +#: sql_help.c:2916 sql_help.c:2932 sql_help.c:2945 msgid "column_constraint" msgstr "칼럼_제약조건" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1350 sql_help.c:4986 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1368 sql_help.c:5018 msgid "integer" msgstr "정수" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1352 -#: sql_help.c:1355 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1370 +#: sql_help.c:1373 msgid "attribute_option" msgstr "속성_옵션" -#: sql_help.c:476 sql_help.c:1359 sql_help.c:2339 sql_help.c:2348 -#: sql_help.c:2900 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:486 sql_help.c:1377 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2917 sql_help.c:2933 sql_help.c:2946 msgid "table_constraint" msgstr "테이블_제약조건" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1364 -#: sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 sql_help.c:1907 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1382 +#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:1922 msgid "trigger_name" msgstr "트리거이름" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1378 sql_help.c:1379 -#: sql_help.c:2340 sql_help.c:2345 sql_help.c:2903 sql_help.c:2926 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:2361 sql_help.c:2366 sql_help.c:2920 sql_help.c:2943 msgid "parent_table" msgstr "상위_테이블" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1550 sql_help.c:2269 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:889 sql_help.c:1039 +#: sql_help.c:1571 sql_help.c:2290 msgid "extension_name" msgstr "확장모듈이름" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2403 +#: sql_help.c:555 sql_help.c:1041 sql_help.c:2424 msgid "execution_cost" msgstr "실행비용" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2404 +#: sql_help.c:556 sql_help.c:1042 sql_help.c:2425 msgid "result_rows" msgstr "반환자료수" -#: sql_help.c:547 sql_help.c:2405 +#: sql_help.c:557 sql_help.c:2426 msgid "support_function" msgstr "지원_함수" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1633 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:2717 -#: sql_help.c:2719 sql_help.c:2722 sql_help.c:2723 sql_help.c:3891 -#: sql_help.c:3892 sql_help.c:3896 sql_help.c:3897 sql_help.c:3900 -#: sql_help.c:3901 sql_help.c:3903 sql_help.c:3904 sql_help.c:3906 -#: sql_help.c:3907 sql_help.c:3909 sql_help.c:3910 sql_help.c:3912 -#: sql_help.c:3913 sql_help.c:3919 sql_help.c:3920 sql_help.c:3922 -#: sql_help.c:3923 sql_help.c:3925 sql_help.c:3926 sql_help.c:3928 -#: sql_help.c:3929 sql_help.c:3931 sql_help.c:3932 sql_help.c:3934 -#: sql_help.c:3935 sql_help.c:3937 sql_help.c:3938 sql_help.c:3940 -#: sql_help.c:3941 sql_help.c:4343 sql_help.c:4344 sql_help.c:4348 -#: sql_help.c:4349 sql_help.c:4352 sql_help.c:4353 sql_help.c:4355 -#: sql_help.c:4356 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4374 sql_help.c:4375 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 +#: sql_help.c:579 sql_help.c:581 sql_help.c:964 sql_help.c:972 sql_help.c:976 +#: sql_help.c:979 sql_help.c:982 sql_help.c:1654 sql_help.c:1662 +#: sql_help.c:1666 sql_help.c:1669 sql_help.c:1672 sql_help.c:2734 +#: sql_help.c:2736 sql_help.c:2739 sql_help.c:2740 sql_help.c:3912 +#: sql_help.c:3913 sql_help.c:3917 sql_help.c:3918 sql_help.c:3921 +#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 +#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 +#: sql_help.c:3934 sql_help.c:3940 sql_help.c:3941 sql_help.c:3943 +#: sql_help.c:3944 sql_help.c:3946 sql_help.c:3947 sql_help.c:3949 +#: sql_help.c:3950 sql_help.c:3952 sql_help.c:3953 sql_help.c:3955 +#: sql_help.c:3956 sql_help.c:3958 sql_help.c:3959 sql_help.c:3961 +#: sql_help.c:3962 sql_help.c:4375 sql_help.c:4376 sql_help.c:4380 +#: sql_help.c:4381 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4393 +#: sql_help.c:4394 sql_help.c:4396 sql_help.c:4397 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 sql_help.c:4421 +#: sql_help.c:4422 sql_help.c:4424 sql_help.c:4425 msgid "role_specification" msgstr "롤_명세" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1664 sql_help.c:2205 -#: sql_help.c:2725 sql_help.c:3253 sql_help.c:3704 sql_help.c:4720 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1685 sql_help.c:2225 +#: sql_help.c:2742 sql_help.c:3273 sql_help.c:3724 sql_help.c:4753 msgid "user_name" msgstr "사용자이름" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1653 sql_help.c:2724 -#: sql_help.c:3942 sql_help.c:4394 +#: sql_help.c:583 sql_help.c:984 sql_help.c:1674 sql_help.c:2741 +#: sql_help.c:3963 sql_help.c:4426 msgid "where role_specification can be:" msgstr "롤_명세 사용법:" -#: sql_help.c:575 +#: sql_help.c:585 msgid "group_name" msgstr "그룹이름" -#: sql_help.c:596 sql_help.c:1425 sql_help.c:2216 sql_help.c:2476 -#: sql_help.c:2510 sql_help.c:2911 sql_help.c:2924 sql_help.c:2938 -#: sql_help.c:2979 sql_help.c:3006 sql_help.c:3018 sql_help.c:3933 -#: sql_help.c:4385 +#: sql_help.c:606 sql_help.c:1443 sql_help.c:2237 sql_help.c:2497 +#: sql_help.c:2531 sql_help.c:2928 sql_help.c:2941 sql_help.c:2955 +#: sql_help.c:2996 sql_help.c:3026 sql_help.c:3038 sql_help.c:3954 +#: sql_help.c:4417 msgid "tablespace_name" msgstr "테이블스페이스이름" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1372 sql_help.c:1382 -#: sql_help.c:1420 sql_help.c:1782 sql_help.c:1785 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1390 sql_help.c:1400 +#: sql_help.c:1438 sql_help.c:1800 msgid "index_name" msgstr "인덱스이름" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1375 -#: sql_help.c:1377 sql_help.c:1423 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 sql_help.c:2977 -#: sql_help.c:3004 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1393 +#: sql_help.c:1395 sql_help.c:1441 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2926 sql_help.c:2939 sql_help.c:2953 sql_help.c:2994 +#: sql_help.c:3024 msgid "storage_parameter" msgstr "스토리지_매개변수" -#: sql_help.c:607 +#: sql_help.c:617 msgid "column_number" msgstr "칼럼번호" -#: sql_help.c:631 sql_help.c:1870 sql_help.c:4477 +#: sql_help.c:641 sql_help.c:1885 sql_help.c:4509 msgid "large_object_oid" msgstr "대형_객체_oid" -#: sql_help.c:690 sql_help.c:1358 sql_help.c:2897 +#: sql_help.c:700 sql_help.c:1376 sql_help.c:2914 msgid "compression_method" msgstr "압축_방법" -#: sql_help.c:692 sql_help.c:1373 +#: sql_help.c:702 sql_help.c:1391 msgid "new_access_method" msgstr "새_접근_방법" -#: sql_help.c:725 sql_help.c:2531 +#: sql_help.c:739 sql_help.c:2552 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:726 sql_help.c:2532 +#: sql_help.c:740 sql_help.c:2553 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2549 +#: sql_help.c:741 sql_help.c:2550 +msgid "com_op" +msgstr "com_op" + +#: sql_help.c:742 sql_help.c:2551 +msgid "neg_op" +msgstr "neg_op" + +#: sql_help.c:794 sql_help.c:806 sql_help.c:2570 msgid "strategy_number" msgstr "전략_번호" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2551 sql_help.c:2552 -#: sql_help.c:2555 sql_help.c:2556 +#: sql_help.c:796 sql_help.c:797 sql_help.c:800 sql_help.c:801 sql_help.c:807 +#: sql_help.c:808 sql_help.c:810 sql_help.c:811 sql_help.c:2572 sql_help.c:2573 +#: sql_help.c:2576 sql_help.c:2577 msgid "op_type" msgstr "연산자자료형" -#: sql_help.c:782 sql_help.c:2553 +#: sql_help.c:798 sql_help.c:2574 msgid "sort_family_name" msgstr "정렬_가족_이름" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2554 +#: sql_help.c:799 sql_help.c:809 sql_help.c:2575 msgid "support_number" msgstr "지원_번호" -#: sql_help.c:787 sql_help.c:2138 sql_help.c:2558 sql_help.c:3095 -#: sql_help.c:3097 +#: sql_help.c:803 sql_help.c:2157 sql_help.c:2579 sql_help.c:3115 +#: sql_help.c:3117 msgid "argument_type" msgstr "인자자료형" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1546 sql_help.c:1549 sql_help.c:1727 sql_help.c:1781 -#: sql_help.c:1784 sql_help.c:1855 sql_help.c:1880 sql_help.c:1893 -#: sql_help.c:1908 sql_help.c:1966 sql_help.c:1972 sql_help.c:2332 -#: sql_help.c:2344 sql_help.c:2465 sql_help.c:2505 sql_help.c:2582 -#: sql_help.c:2636 sql_help.c:2693 sql_help.c:2745 sql_help.c:2778 -#: sql_help.c:2785 sql_help.c:2894 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:3001 sql_help.c:3121 sql_help.c:3302 sql_help.c:3525 -#: sql_help.c:3574 sql_help.c:3680 sql_help.c:3889 sql_help.c:3895 -#: sql_help.c:3956 sql_help.c:3988 sql_help.c:4341 sql_help.c:4347 -#: sql_help.c:4465 sql_help.c:4576 sql_help.c:4578 sql_help.c:4640 -#: sql_help.c:4679 sql_help.c:4833 sql_help.c:4835 sql_help.c:4897 -#: sql_help.c:4931 sql_help.c:4991 sql_help.c:5079 sql_help.c:5081 -#: sql_help.c:5143 +#: sql_help.c:834 sql_help.c:837 sql_help.c:926 sql_help.c:1055 sql_help.c:1095 +#: sql_help.c:1567 sql_help.c:1570 sql_help.c:1746 sql_help.c:1799 +#: sql_help.c:1870 sql_help.c:1895 sql_help.c:1908 sql_help.c:1923 +#: sql_help.c:1983 sql_help.c:1989 sql_help.c:2353 sql_help.c:2365 +#: sql_help.c:2486 sql_help.c:2526 sql_help.c:2603 sql_help.c:2657 +#: sql_help.c:2710 sql_help.c:2762 sql_help.c:2795 sql_help.c:2802 +#: sql_help.c:2911 sql_help.c:2929 sql_help.c:2942 sql_help.c:3021 +#: sql_help.c:3141 sql_help.c:3322 sql_help.c:3545 sql_help.c:3594 +#: sql_help.c:3700 sql_help.c:3910 sql_help.c:3916 sql_help.c:3977 +#: sql_help.c:4009 sql_help.c:4373 sql_help.c:4379 sql_help.c:4497 +#: sql_help.c:4610 sql_help.c:4673 sql_help.c:4712 sql_help.c:4868 +#: sql_help.c:4931 sql_help.c:4965 sql_help.c:5023 sql_help.c:5113 +#: sql_help.c:5176 msgid "table_name" msgstr "테이블_이름" -#: sql_help.c:823 sql_help.c:2584 +#: sql_help.c:839 sql_help.c:2605 msgid "using_expression" msgstr "using_expression" -#: sql_help.c:824 sql_help.c:2585 +#: sql_help.c:840 sql_help.c:2606 msgid "check_expression" msgstr "체크_표현식" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2632 +#: sql_help.c:913 sql_help.c:915 sql_help.c:917 sql_help.c:2653 msgid "publication_object" msgstr "발행_객체" -#: sql_help.c:903 sql_help.c:2633 +#: sql_help.c:919 sql_help.c:2654 msgid "publication_parameter" msgstr "발행_매개변수" -#: sql_help.c:909 sql_help.c:2635 +#: sql_help.c:925 sql_help.c:2656 msgid "where publication_object is one of:" msgstr "발행_객체 사용법:" -#: sql_help.c:952 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:968 sql_help.c:1658 sql_help.c:2464 sql_help.c:2689 +#: sql_help.c:3256 msgid "password" msgstr "암호" -#: sql_help.c:953 sql_help.c:1638 sql_help.c:2444 sql_help.c:2671 -#: sql_help.c:3237 +#: sql_help.c:969 sql_help.c:1659 sql_help.c:2465 sql_help.c:2690 +#: sql_help.c:3257 msgid "timestamp" msgstr "타임스탬프" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:1652 sql_help.c:3902 -#: sql_help.c:4354 +#: sql_help.c:973 sql_help.c:977 sql_help.c:980 sql_help.c:983 sql_help.c:1663 +#: sql_help.c:1667 sql_help.c:1670 sql_help.c:1673 sql_help.c:3923 +#: sql_help.c:4386 msgid "database_name" msgstr "데이터베이스_이름" -#: sql_help.c:1073 sql_help.c:2740 +#: sql_help.c:1089 sql_help.c:2757 msgid "increment" msgstr "증가값" -#: sql_help.c:1074 sql_help.c:2741 +#: sql_help.c:1090 sql_help.c:2758 msgid "minvalue" msgstr "최소값" -#: sql_help.c:1075 sql_help.c:2742 +#: sql_help.c:1091 sql_help.c:2759 msgid "maxvalue" msgstr "최대값" -#: sql_help.c:1076 sql_help.c:2743 sql_help.c:4574 sql_help.c:4677 -#: sql_help.c:4831 sql_help.c:5008 sql_help.c:5077 +#: sql_help.c:1092 sql_help.c:2760 sql_help.c:4606 sql_help.c:4710 +#: sql_help.c:4864 sql_help.c:5040 sql_help.c:5109 msgid "start" msgstr "시작" -#: sql_help.c:1077 sql_help.c:1347 +#: sql_help.c:1093 sql_help.c:1365 msgid "restart" msgstr "재시작" -#: sql_help.c:1078 sql_help.c:2744 +#: sql_help.c:1094 sql_help.c:2761 msgid "cache" msgstr "캐쉬" -#: sql_help.c:1123 +#: sql_help.c:1139 msgid "new_target" msgstr "새대상" -#: sql_help.c:1142 sql_help.c:2797 +#: sql_help.c:1158 sql_help.c:2814 msgid "conninfo" msgstr "접속정보" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2798 +#: sql_help.c:1160 sql_help.c:1164 sql_help.c:1168 sql_help.c:2815 msgid "publication_name" msgstr "발행_이름" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1161 sql_help.c:1165 sql_help.c:1169 msgid "publication_option" msgstr "발행_옵션" -#: sql_help.c:1156 +#: sql_help.c:1172 msgid "refresh_option" msgstr "새로고침_옵션" -#: sql_help.c:1161 sql_help.c:2799 +#: sql_help.c:1177 sql_help.c:2816 msgid "subscription_parameter" msgstr "구독_매개변수" -#: sql_help.c:1164 +#: sql_help.c:1180 msgid "skip_option" msgstr "skip_option" -#: sql_help.c:1324 sql_help.c:1327 +#: sql_help.c:1340 sql_help.c:1343 msgid "partition_name" msgstr "파티션_이름" -#: sql_help.c:1325 sql_help.c:2349 sql_help.c:2930 +#: sql_help.c:1341 sql_help.c:2370 sql_help.c:2947 msgid "partition_bound_spec" msgstr "파티션_범위_정의" -#: sql_help.c:1344 sql_help.c:1394 sql_help.c:2944 +#: sql_help.c:1362 sql_help.c:1412 sql_help.c:2961 msgid "sequence_options" msgstr "시퀀스_옵션" -#: sql_help.c:1346 +#: sql_help.c:1364 msgid "sequence_option" msgstr "시퀀스_옵션" -#: sql_help.c:1360 +#: sql_help.c:1378 msgid "table_constraint_using_index" msgstr "색인을_사용하는_테이블_제약조건" -#: sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 +#: sql_help.c:1386 sql_help.c:1387 sql_help.c:1388 sql_help.c:1389 msgid "rewrite_rule_name" msgstr "rewrite_룰_이름" -#: sql_help.c:1383 sql_help.c:2361 sql_help.c:2969 +#: sql_help.c:1401 sql_help.c:2382 sql_help.c:2986 msgid "and partition_bound_spec is:" msgstr "파티션_범위_정의 사용법:" -#: sql_help.c:1384 sql_help.c:1385 sql_help.c:1386 sql_help.c:2362 -#: sql_help.c:2363 sql_help.c:2364 sql_help.c:2970 sql_help.c:2971 -#: sql_help.c:2972 +#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1404 sql_help.c:2383 +#: sql_help.c:2384 sql_help.c:2385 sql_help.c:2987 sql_help.c:2988 +#: sql_help.c:2989 msgid "partition_bound_expr" msgstr "파티션_범위_표현식" -#: sql_help.c:1387 sql_help.c:1388 sql_help.c:2365 sql_help.c:2366 -#: sql_help.c:2973 sql_help.c:2974 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:2386 sql_help.c:2387 +#: sql_help.c:2990 sql_help.c:2991 msgid "numeric_literal" msgstr "숫자" -#: sql_help.c:1389 +#: sql_help.c:1407 msgid "and column_constraint is:" msgstr "칼럼_제약조건 사용법:" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2397 sql_help.c:2606 -#: sql_help.c:2942 +#: sql_help.c:1410 sql_help.c:2377 sql_help.c:2418 sql_help.c:2627 +#: sql_help.c:2959 msgid "default_expr" msgstr "초기값_표현식" -#: sql_help.c:1393 sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:1411 sql_help.c:2378 sql_help.c:2960 msgid "generation_expr" msgstr "생성_표현식" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1405 sql_help.c:1407 -#: sql_help.c:1411 sql_help.c:2945 sql_help.c:2946 sql_help.c:2955 -#: sql_help.c:2957 sql_help.c:2961 +#: sql_help.c:1413 sql_help.c:1414 sql_help.c:1423 sql_help.c:1425 +#: sql_help.c:1429 sql_help.c:2962 sql_help.c:2963 sql_help.c:2972 +#: sql_help.c:2974 sql_help.c:2978 msgid "index_parameters" msgstr "색인_매개변수" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1415 sql_help.c:1432 sql_help.c:2964 sql_help.c:2981 msgid "reftable" msgstr "참조테이블" -#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2948 sql_help.c:2965 +#: sql_help.c:1416 sql_help.c:1433 sql_help.c:2965 sql_help.c:2982 msgid "refcolumn" msgstr "참조칼럼" -#: sql_help.c:1399 sql_help.c:1400 sql_help.c:1416 sql_help.c:1417 -#: sql_help.c:2949 sql_help.c:2950 sql_help.c:2966 sql_help.c:2967 +#: sql_help.c:1417 sql_help.c:1418 sql_help.c:1434 sql_help.c:1435 +#: sql_help.c:2966 sql_help.c:2967 sql_help.c:2983 sql_help.c:2984 msgid "referential_action" msgstr "참조_방식" -#: sql_help.c:1401 sql_help.c:2358 sql_help.c:2951 +#: sql_help.c:1419 sql_help.c:2379 sql_help.c:2968 msgid "and table_constraint is:" msgstr "테이블_제약조건 사용법:" -#: sql_help.c:1409 sql_help.c:2959 +#: sql_help.c:1427 sql_help.c:2976 msgid "exclude_element" msgstr "exclude_요소" -#: sql_help.c:1410 sql_help.c:2960 sql_help.c:4572 sql_help.c:4675 -#: sql_help.c:4829 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1428 sql_help.c:2977 sql_help.c:4604 sql_help.c:4708 +#: sql_help.c:4862 sql_help.c:5038 sql_help.c:5107 msgid "operator" msgstr "연산자" -#: sql_help.c:1412 sql_help.c:2477 sql_help.c:2962 +#: sql_help.c:1430 sql_help.c:2498 sql_help.c:2979 msgid "predicate" msgstr "범위한정구문" -#: sql_help.c:1418 +#: sql_help.c:1436 msgid "and table_constraint_using_index is:" msgstr "색인을_사용하는_테이블_제약조건 사용법:" -#: sql_help.c:1421 sql_help.c:2975 +#: sql_help.c:1439 sql_help.c:2992 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "UNIQUE, PRIMARY KEY, EXCLUDE 제약조건에서 쓰는 색인_매개변수 사용법:" -#: sql_help.c:1426 sql_help.c:2980 +#: sql_help.c:1444 sql_help.c:2997 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "EXCLUDE 제약조건에서 쓰는 exclude_요소 사용법:" -#: sql_help.c:1429 sql_help.c:2470 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:2983 sql_help.c:4001 +#: sql_help.c:1448 sql_help.c:2491 sql_help.c:2924 sql_help.c:2937 +#: sql_help.c:2951 sql_help.c:3001 sql_help.c:4022 msgid "opclass" msgstr "연산자클래스" -#: sql_help.c:1430 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:2492 sql_help.c:3002 +msgid "opclass_parameter" +msgstr "opclass_매개변수" + +#: sql_help.c:1451 sql_help.c:3004 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "FOREIGN KEY/REFERENCES 제약조건에서 쓰는 참조_방식 사용법:" -#: sql_help.c:1448 sql_help.c:1451 sql_help.c:3021 +#: sql_help.c:1469 sql_help.c:1472 sql_help.c:3041 msgid "tablespace_option" msgstr "테이블스페이스_옵션" -#: sql_help.c:1472 sql_help.c:1475 sql_help.c:1481 sql_help.c:1485 +#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1502 sql_help.c:1506 msgid "token_type" msgstr "토큰_종류" -#: sql_help.c:1473 sql_help.c:1476 +#: sql_help.c:1494 sql_help.c:1497 msgid "dictionary_name" msgstr "사전이름" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1499 sql_help.c:1503 msgid "old_dictionary" msgstr "옛사전" -#: sql_help.c:1479 sql_help.c:1483 +#: sql_help.c:1500 sql_help.c:1504 msgid "new_dictionary" msgstr "새사전" -#: sql_help.c:1578 sql_help.c:1592 sql_help.c:1595 sql_help.c:1596 -#: sql_help.c:3174 +#: sql_help.c:1599 sql_help.c:1613 sql_help.c:1616 sql_help.c:1617 +#: sql_help.c:3194 msgid "attribute_name" msgstr "속성이름" -#: sql_help.c:1579 +#: sql_help.c:1600 msgid "new_attribute_name" msgstr "새속성이름" -#: sql_help.c:1583 sql_help.c:1587 +#: sql_help.c:1604 sql_help.c:1608 msgid "new_enum_value" msgstr "새_enum_값" -#: sql_help.c:1584 +#: sql_help.c:1605 msgid "neighbor_enum_value" msgstr "옆_enum_값" -#: sql_help.c:1586 +#: sql_help.c:1607 msgid "existing_enum_value" msgstr "기존_enum_값" -#: sql_help.c:1589 +#: sql_help.c:1610 msgid "property" msgstr "속성" -#: sql_help.c:1665 sql_help.c:2341 sql_help.c:2350 sql_help.c:2756 -#: sql_help.c:3254 sql_help.c:3705 sql_help.c:3911 sql_help.c:3957 -#: sql_help.c:4363 +#: sql_help.c:1686 sql_help.c:2362 sql_help.c:2371 sql_help.c:2773 +#: sql_help.c:3274 sql_help.c:3725 sql_help.c:3932 sql_help.c:3978 +#: sql_help.c:4395 msgid "server_name" msgstr "서버이름" -#: sql_help.c:1697 sql_help.c:1700 sql_help.c:3269 +#: sql_help.c:1718 sql_help.c:1721 sql_help.c:3289 msgid "view_option_name" msgstr "뷰_옵션이름" -#: sql_help.c:1698 sql_help.c:3270 +#: sql_help.c:1719 sql_help.c:3290 msgid "view_option_value" msgstr "뷰_옵션_값" -#: sql_help.c:1720 sql_help.c:1721 sql_help.c:4974 sql_help.c:4975 +#: sql_help.c:1740 sql_help.c:5007 msgid "table_and_columns" msgstr "테이블과_칼럼" -#: sql_help.c:1722 sql_help.c:1786 sql_help.c:1978 sql_help.c:3754 -#: sql_help.c:4198 sql_help.c:4976 +#: sql_help.c:1741 sql_help.c:1801 sql_help.c:1995 sql_help.c:3774 +#: sql_help.c:4230 sql_help.c:5008 msgid "where option can be one of:" msgstr "옵션 사용법:" -#: sql_help.c:1723 sql_help.c:1724 sql_help.c:1787 sql_help.c:1980 -#: sql_help.c:1984 sql_help.c:2164 sql_help.c:3755 sql_help.c:3756 -#: sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 sql_help.c:3760 -#: sql_help.c:3761 sql_help.c:3762 sql_help.c:3763 sql_help.c:4199 -#: sql_help.c:4201 sql_help.c:4977 sql_help.c:4978 sql_help.c:4979 -#: sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 sql_help.c:4983 -#: sql_help.c:4984 sql_help.c:4985 sql_help.c:4987 sql_help.c:4988 +#: sql_help.c:1742 sql_help.c:1743 sql_help.c:1802 sql_help.c:1997 +#: sql_help.c:2001 sql_help.c:2183 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:3777 sql_help.c:3778 sql_help.c:3779 sql_help.c:3780 +#: sql_help.c:3781 sql_help.c:3782 sql_help.c:3783 sql_help.c:3784 +#: sql_help.c:4231 sql_help.c:4233 sql_help.c:5009 sql_help.c:5010 +#: sql_help.c:5011 sql_help.c:5012 sql_help.c:5013 sql_help.c:5014 +#: sql_help.c:5015 sql_help.c:5016 sql_help.c:5017 sql_help.c:5019 +#: sql_help.c:5020 msgid "boolean" msgstr "불린" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1744 sql_help.c:5021 msgid "size" msgstr "크기" -#: sql_help.c:1726 sql_help.c:4990 +#: sql_help.c:1745 sql_help.c:5022 msgid "and table_and_columns is:" msgstr "테이블과_칼럼 사용법:" -#: sql_help.c:1742 sql_help.c:4736 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1761 sql_help.c:4769 sql_help.c:4771 sql_help.c:4795 msgid "transaction_mode" msgstr "트랜잭션모드" -#: sql_help.c:1743 sql_help.c:4739 sql_help.c:4763 +#: sql_help.c:1762 sql_help.c:4772 sql_help.c:4796 msgid "where transaction_mode is one of:" msgstr "트랜잭션모드 사용법:" -#: sql_help.c:1752 sql_help.c:4582 sql_help.c:4591 sql_help.c:4595 -#: sql_help.c:4599 sql_help.c:4602 sql_help.c:4839 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4856 sql_help.c:4859 sql_help.c:5085 -#: sql_help.c:5094 sql_help.c:5098 sql_help.c:5102 sql_help.c:5105 +#: sql_help.c:1771 sql_help.c:4614 sql_help.c:4623 sql_help.c:4627 +#: sql_help.c:4631 sql_help.c:4634 sql_help.c:4872 sql_help.c:4881 +#: sql_help.c:4885 sql_help.c:4889 sql_help.c:4892 sql_help.c:5117 +#: sql_help.c:5126 sql_help.c:5130 sql_help.c:5134 sql_help.c:5137 msgid "argument" msgstr "인자" -#: sql_help.c:1852 +#: sql_help.c:1867 msgid "relation_name" msgstr "릴레이션이름" -#: sql_help.c:1857 sql_help.c:3905 sql_help.c:4357 +#: sql_help.c:1872 sql_help.c:3926 sql_help.c:4389 msgid "domain_name" msgstr "도메인이름" -#: sql_help.c:1879 +#: sql_help.c:1894 msgid "policy_name" msgstr "정책이름" -#: sql_help.c:1892 +#: sql_help.c:1907 msgid "rule_name" msgstr "룰이름" -#: sql_help.c:1911 sql_help.c:4496 +#: sql_help.c:1926 sql_help.c:4528 msgid "string_literal" msgstr "문자열_리터럴" -#: sql_help.c:1936 sql_help.c:4160 sql_help.c:4410 +#: sql_help.c:1951 sql_help.c:4192 sql_help.c:4442 msgid "transaction_id" msgstr "트랜잭션_id" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:4027 +#: sql_help.c:1985 sql_help.c:1992 sql_help.c:4048 msgid "filename" msgstr "파일이름" -#: sql_help.c:1969 sql_help.c:1976 sql_help.c:2695 sql_help.c:2696 -#: sql_help.c:2697 +#: sql_help.c:1986 sql_help.c:1993 sql_help.c:2712 sql_help.c:2713 +#: sql_help.c:2714 msgid "command" msgstr "명령어" -#: sql_help.c:1971 sql_help.c:2694 sql_help.c:3124 sql_help.c:3305 -#: sql_help.c:4011 sql_help.c:4088 sql_help.c:4091 sql_help.c:4565 -#: sql_help.c:4567 sql_help.c:4668 sql_help.c:4670 sql_help.c:4822 -#: sql_help.c:4824 sql_help.c:4940 sql_help.c:5068 sql_help.c:5070 +#: sql_help.c:1988 sql_help.c:2711 sql_help.c:3144 sql_help.c:3325 +#: sql_help.c:4032 sql_help.c:4115 sql_help.c:4118 sql_help.c:4121 +#: sql_help.c:4597 sql_help.c:4599 sql_help.c:4701 sql_help.c:4703 +#: sql_help.c:4855 sql_help.c:4857 sql_help.c:4974 sql_help.c:5100 +#: sql_help.c:5102 msgid "condition" msgstr "조건" -#: sql_help.c:1974 sql_help.c:2511 sql_help.c:3007 sql_help.c:3271 -#: sql_help.c:3289 sql_help.c:3992 +#: sql_help.c:1991 sql_help.c:2532 sql_help.c:3027 sql_help.c:3291 +#: sql_help.c:3309 sql_help.c:4013 msgid "query" msgstr "쿼리문" -#: sql_help.c:1979 +#: sql_help.c:1996 msgid "format_name" msgstr "입출력양식이름" -#: sql_help.c:1981 +#: sql_help.c:1998 msgid "delimiter_character" msgstr "구분문자" -#: sql_help.c:1982 +#: sql_help.c:1999 msgid "null_string" msgstr "널문자열" -#: sql_help.c:1983 +#: sql_help.c:2000 msgid "default_string" msgstr "기본_문자열" -#: sql_help.c:1985 +#: sql_help.c:2002 msgid "quote_character" msgstr "인용부호" -#: sql_help.c:1986 +#: sql_help.c:2003 msgid "escape_character" msgstr "이스케이프 문자" -#: sql_help.c:1990 +#: sql_help.c:2007 +msgid "error_action" +msgstr "오류_동작" + +#: sql_help.c:2008 msgid "encoding_name" msgstr "인코딩이름" -#: sql_help.c:2001 +#: sql_help.c:2009 +msgid "verbosity" +msgstr "로그출력수준" + +#: sql_help.c:2020 msgid "access_method_type" msgstr "접근_방법_종류" -#: sql_help.c:2072 sql_help.c:2091 sql_help.c:2094 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2113 msgid "arg_data_type" msgstr "인자자료형" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2092 sql_help.c:2114 sql_help.c:2122 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2093 sql_help.c:2115 sql_help.c:2123 msgid "state_data_type" msgstr "state_data_type" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2094 sql_help.c:2116 sql_help.c:2124 msgid "state_data_size" msgstr "state_data_size" -#: sql_help.c:2076 sql_help.c:2098 sql_help.c:2106 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2096 sql_help.c:2126 msgid "combinefunc" msgstr "combinefunc" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2097 sql_help.c:2127 msgid "serialfunc" msgstr "serialfunc" -#: sql_help.c:2079 sql_help.c:2109 +#: sql_help.c:2098 sql_help.c:2128 msgid "deserialfunc" msgstr "deserialfunc" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2110 +#: sql_help.c:2099 sql_help.c:2118 sql_help.c:2129 msgid "initial_condition" msgstr "initial_condition" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2100 sql_help.c:2130 msgid "msfunc" msgstr "msfunc" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2101 sql_help.c:2131 msgid "minvfunc" msgstr "minvfunc" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2102 sql_help.c:2132 msgid "mstate_data_type" msgstr "mstate_data_type" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2103 sql_help.c:2133 msgid "mstate_data_size" msgstr "mstate_data_size" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2104 sql_help.c:2134 msgid "mffunc" msgstr "mffunc" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2105 sql_help.c:2135 msgid "minitial_condition" msgstr "minitial_condition" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2106 sql_help.c:2136 msgid "sort_operator" msgstr "정렬연산자" -#: sql_help.c:2100 +#: sql_help.c:2119 msgid "or the old syntax" msgstr "또는 옛날 구문" -#: sql_help.c:2102 +#: sql_help.c:2121 msgid "base_type" msgstr "기본자료형" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2179 sql_help.c:2229 msgid "locale" msgstr "로케일" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2180 sql_help.c:2230 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2162 sql_help.c:2211 +#: sql_help.c:2181 sql_help.c:2231 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2163 sql_help.c:4463 +#: sql_help.c:2182 sql_help.c:4495 msgid "provider" msgstr "제공자" -#: sql_help.c:2165 +#: sql_help.c:2184 msgid "rules" msgstr "룰" -#: sql_help.c:2166 sql_help.c:2271 +#: sql_help.c:2185 sql_help.c:2292 msgid "version" msgstr "버전" -#: sql_help.c:2168 +#: sql_help.c:2187 msgid "existing_collation" msgstr "기존_collation" -#: sql_help.c:2178 +#: sql_help.c:2197 msgid "source_encoding" msgstr "원래인코딩" -#: sql_help.c:2179 +#: sql_help.c:2198 msgid "dest_encoding" msgstr "대상인코딩" -#: sql_help.c:2206 sql_help.c:3047 +#: sql_help.c:2226 sql_help.c:3067 msgid "template" msgstr "템플릿" -#: sql_help.c:2207 +#: sql_help.c:2227 msgid "encoding" msgstr "인코딩" -#: sql_help.c:2208 +#: sql_help.c:2228 msgid "strategy" msgstr "전략번호" -#: sql_help.c:2212 +#: sql_help.c:2232 +msgid "builtin_locale" +msgstr "내장_로케일" + +#: sql_help.c:2233 msgid "icu_locale" msgstr "icu_로케일" -#: sql_help.c:2213 +#: sql_help.c:2234 msgid "icu_rules" msgstr "icu_룰" -#: sql_help.c:2214 +#: sql_help.c:2235 msgid "locale_provider" msgstr "로케일_제공자" -#: sql_help.c:2215 +#: sql_help.c:2236 msgid "collation_version" msgstr "collation_version" -#: sql_help.c:2220 +#: sql_help.c:2241 msgid "oid" msgstr "oid" -#: sql_help.c:2240 -msgid "constraint" -msgstr "제약조건" - -#: sql_help.c:2241 -msgid "where constraint is:" -msgstr "제약조건 사용법:" - -#: sql_help.c:2255 sql_help.c:2692 sql_help.c:3120 +#: sql_help.c:2276 sql_help.c:2709 sql_help.c:3140 msgid "event" msgstr "이벤트" -#: sql_help.c:2256 +#: sql_help.c:2277 msgid "filter_variable" msgstr "필터_변수" -#: sql_help.c:2257 +#: sql_help.c:2278 msgid "filter_value" msgstr "필터_값" -#: sql_help.c:2353 sql_help.c:2939 +#: sql_help.c:2374 sql_help.c:2956 msgid "where column_constraint is:" msgstr "칼럼_제약조건 사용법:" -#: sql_help.c:2398 +#: sql_help.c:2419 msgid "rettype" msgstr "rettype" -#: sql_help.c:2400 +#: sql_help.c:2421 msgid "column_type" msgstr "칼럼_자료형" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2430 sql_help.c:2633 msgid "definition" msgstr "함수정의" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2431 sql_help.c:2634 msgid "obj_file" msgstr "오브젝트파일" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2432 sql_help.c:2635 msgid "link_symbol" msgstr "연결할_함수명" -#: sql_help.c:2412 sql_help.c:2615 +#: sql_help.c:2433 sql_help.c:2636 msgid "sql_body" msgstr "sql_본문" -#: sql_help.c:2450 sql_help.c:2677 sql_help.c:3243 +#: sql_help.c:2471 sql_help.c:2694 sql_help.c:3263 msgid "uid" msgstr "uid" -#: sql_help.c:2466 sql_help.c:2507 sql_help.c:2908 sql_help.c:2921 -#: sql_help.c:2935 sql_help.c:3003 +#: sql_help.c:2487 sql_help.c:2528 sql_help.c:2925 sql_help.c:2938 +#: sql_help.c:2952 sql_help.c:3023 msgid "method" msgstr "색인방법" -#: sql_help.c:2471 -msgid "opclass_parameter" -msgstr "opclass_매개변수" - -#: sql_help.c:2488 +#: sql_help.c:2509 msgid "call_handler" msgstr "호출_핸들러" -#: sql_help.c:2489 +#: sql_help.c:2510 msgid "inline_handler" msgstr "인라인_핸들러" -#: sql_help.c:2490 +#: sql_help.c:2511 msgid "valfunction" msgstr "구문검사함수" -#: sql_help.c:2529 -msgid "com_op" -msgstr "com_op" - -#: sql_help.c:2530 -msgid "neg_op" -msgstr "neg_op" - -#: sql_help.c:2548 +#: sql_help.c:2569 msgid "family_name" msgstr "family_name" -#: sql_help.c:2559 +#: sql_help.c:2580 msgid "storage_type" msgstr "스토리지_유형" -#: sql_help.c:2698 sql_help.c:3127 +#: sql_help.c:2715 sql_help.c:3147 msgid "where event can be one of:" msgstr "이벤트 사용법:" -#: sql_help.c:2718 sql_help.c:2720 +#: sql_help.c:2735 sql_help.c:2737 msgid "schema_element" msgstr "스키마_요소" -#: sql_help.c:2757 +#: sql_help.c:2774 msgid "server_type" msgstr "서버_종류" -#: sql_help.c:2758 +#: sql_help.c:2775 msgid "server_version" msgstr "서버_버전" -#: sql_help.c:2759 sql_help.c:3908 sql_help.c:4360 +#: sql_help.c:2776 sql_help.c:3929 sql_help.c:4392 msgid "fdw_name" msgstr "fdw_이름" -#: sql_help.c:2776 sql_help.c:2779 +#: sql_help.c:2793 sql_help.c:2796 msgid "statistics_name" msgstr "통계정보_이름" -#: sql_help.c:2780 +#: sql_help.c:2797 msgid "statistics_kind" msgstr "통계정보_종류" -#: sql_help.c:2796 +#: sql_help.c:2813 msgid "subscription_name" msgstr "구독_이름" -#: sql_help.c:2901 +#: sql_help.c:2918 msgid "source_table" msgstr "원본테이블" -#: sql_help.c:2902 +#: sql_help.c:2919 msgid "like_option" msgstr "LIKE구문옵션" -#: sql_help.c:2968 +#: sql_help.c:2985 msgid "and like_option is:" msgstr "LIKE구문옵션 사용법:" -#: sql_help.c:3020 +#: sql_help.c:3040 msgid "directory" msgstr "디렉터리" -#: sql_help.c:3034 +#: sql_help.c:3054 msgid "parser_name" msgstr "구문분석기_이름" -#: sql_help.c:3035 +#: sql_help.c:3055 msgid "source_config" msgstr "원본_설정" -#: sql_help.c:3064 +#: sql_help.c:3084 msgid "start_function" msgstr "시작_함수" -#: sql_help.c:3065 +#: sql_help.c:3085 msgid "gettoken_function" msgstr "gettoken함수" -#: sql_help.c:3066 +#: sql_help.c:3086 msgid "end_function" msgstr "종료_함수" -#: sql_help.c:3067 +#: sql_help.c:3087 msgid "lextypes_function" msgstr "lextypes함수" -#: sql_help.c:3068 +#: sql_help.c:3088 msgid "headline_function" msgstr "headline함수" -#: sql_help.c:3080 +#: sql_help.c:3100 msgid "init_function" msgstr "init함수" -#: sql_help.c:3081 +#: sql_help.c:3101 msgid "lexize_function" msgstr "lexize함수" -#: sql_help.c:3094 +#: sql_help.c:3114 msgid "from_sql_function_name" msgstr "sql에서_언어로_바꿀때쓸_함수이름" -#: sql_help.c:3096 +#: sql_help.c:3116 msgid "to_sql_function_name" msgstr "언어에서_sql로_바꿀때쓸_함수이름" -#: sql_help.c:3122 +#: sql_help.c:3142 msgid "referenced_table_name" msgstr "참조된_테이블_이름" -#: sql_help.c:3123 +#: sql_help.c:3143 msgid "transition_relation_name" msgstr "전달_릴레이션_이름" -#: sql_help.c:3126 +#: sql_help.c:3146 msgid "arguments" msgstr "인자들" -#: sql_help.c:3178 +#: sql_help.c:3198 msgid "label" msgstr "enum요소" -#: sql_help.c:3180 +#: sql_help.c:3200 msgid "subtype" msgstr "subtype" -#: sql_help.c:3181 +#: sql_help.c:3201 msgid "subtype_operator_class" msgstr "subtype_operator_class" -#: sql_help.c:3183 +#: sql_help.c:3203 msgid "canonical_function" msgstr "canonical_function" -#: sql_help.c:3184 +#: sql_help.c:3204 msgid "subtype_diff_function" msgstr "subtype_diff_function" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "multirange_type_name" msgstr "다중범위_자료형_이름" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "input_function" msgstr "입력함수" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "output_function" msgstr "출력함수" -#: sql_help.c:3189 +#: sql_help.c:3209 msgid "receive_function" msgstr "받는함수" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "send_function" msgstr "주는함수" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "type_modifier_input_function" msgstr "type_modifier_input_function" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "type_modifier_output_function" msgstr "type_modifier_output_function" -#: sql_help.c:3193 +#: sql_help.c:3213 msgid "analyze_function" msgstr "분석함수" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "subscript_function" msgstr "구독_함수" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "internallength" msgstr "내부길이" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "alignment" msgstr "정렬" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "storage" msgstr "스토리지" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "like_type" msgstr "like_type" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "category" msgstr "category" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "preferred" msgstr "preferred" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "default" msgstr "기본값" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "element" msgstr "요소" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "delimiter" msgstr "구분자" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "collatable" msgstr "collatable" -#: sql_help.c:3301 sql_help.c:3987 sql_help.c:4077 sql_help.c:4560 -#: sql_help.c:4662 sql_help.c:4817 sql_help.c:4930 sql_help.c:5063 +#: sql_help.c:3321 sql_help.c:4008 sql_help.c:4102 sql_help.c:4592 +#: sql_help.c:4695 sql_help.c:4850 sql_help.c:4964 sql_help.c:5095 msgid "with_query" msgstr "with절_쿼리" -#: sql_help.c:3303 sql_help.c:3989 sql_help.c:4579 sql_help.c:4585 -#: sql_help.c:4588 sql_help.c:4592 sql_help.c:4596 sql_help.c:4604 -#: sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 sql_help.c:4849 -#: sql_help.c:4853 sql_help.c:4861 sql_help.c:4932 sql_help.c:5082 -#: sql_help.c:5088 sql_help.c:5091 sql_help.c:5095 sql_help.c:5099 -#: sql_help.c:5107 +#: sql_help.c:3323 sql_help.c:4010 sql_help.c:4611 sql_help.c:4617 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4628 sql_help.c:4636 +#: sql_help.c:4869 sql_help.c:4875 sql_help.c:4878 sql_help.c:4882 +#: sql_help.c:4886 sql_help.c:4894 sql_help.c:4966 sql_help.c:5114 +#: sql_help.c:5120 sql_help.c:5123 sql_help.c:5127 sql_help.c:5131 +#: sql_help.c:5139 msgid "alias" msgstr "별칭" -#: sql_help.c:3304 sql_help.c:4564 sql_help.c:4606 sql_help.c:4608 -#: sql_help.c:4612 sql_help.c:4614 sql_help.c:4615 sql_help.c:4616 -#: sql_help.c:4667 sql_help.c:4821 sql_help.c:4863 sql_help.c:4865 -#: sql_help.c:4869 sql_help.c:4871 sql_help.c:4872 sql_help.c:4873 -#: sql_help.c:4939 sql_help.c:5067 sql_help.c:5109 sql_help.c:5111 -#: sql_help.c:5115 sql_help.c:5117 sql_help.c:5118 sql_help.c:5119 +#: sql_help.c:3324 sql_help.c:4596 sql_help.c:4638 sql_help.c:4640 +#: sql_help.c:4644 sql_help.c:4646 sql_help.c:4647 sql_help.c:4648 +#: sql_help.c:4700 sql_help.c:4854 sql_help.c:4896 sql_help.c:4898 +#: sql_help.c:4902 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4973 sql_help.c:5099 sql_help.c:5141 sql_help.c:5143 +#: sql_help.c:5147 sql_help.c:5149 sql_help.c:5150 sql_help.c:5151 msgid "from_item" msgstr "from절_항목" -#: sql_help.c:3306 sql_help.c:3789 sql_help.c:4127 sql_help.c:4941 +#: sql_help.c:3326 sql_help.c:3810 sql_help.c:4159 sql_help.c:4975 msgid "cursor_name" msgstr "커서이름" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4942 +#: sql_help.c:3327 sql_help.c:4016 sql_help.c:4108 sql_help.c:4976 msgid "output_expression" msgstr "출력표현식" -#: sql_help.c:3308 sql_help.c:3996 sql_help.c:4563 sql_help.c:4665 -#: sql_help.c:4820 sql_help.c:4943 sql_help.c:5066 +#: sql_help.c:3328 sql_help.c:4017 sql_help.c:4109 sql_help.c:4595 +#: sql_help.c:4698 sql_help.c:4853 sql_help.c:4977 sql_help.c:5098 msgid "output_name" msgstr "출력_이름" -#: sql_help.c:3324 +#: sql_help.c:3344 msgid "code" msgstr "코드" -#: sql_help.c:3729 +#: sql_help.c:3749 msgid "parameter" msgstr "매개변수" -#: sql_help.c:3752 sql_help.c:3753 sql_help.c:4152 +#: sql_help.c:3773 sql_help.c:4184 msgid "statement" msgstr "명령구문" -#: sql_help.c:3788 sql_help.c:4126 +#: sql_help.c:3809 sql_help.c:4158 msgid "direction" msgstr "방향" -#: sql_help.c:3790 sql_help.c:4128 +#: sql_help.c:3811 sql_help.c:4160 msgid "where direction can be one of:" msgstr "방향 사용법:" -#: sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 sql_help.c:3794 -#: sql_help.c:3795 sql_help.c:4129 sql_help.c:4130 sql_help.c:4131 -#: sql_help.c:4132 sql_help.c:4133 sql_help.c:4573 sql_help.c:4575 -#: sql_help.c:4676 sql_help.c:4678 sql_help.c:4830 sql_help.c:4832 -#: sql_help.c:5007 sql_help.c:5009 sql_help.c:5076 sql_help.c:5078 +#: sql_help.c:3812 sql_help.c:3813 sql_help.c:3814 sql_help.c:3815 +#: sql_help.c:3816 sql_help.c:4161 sql_help.c:4162 sql_help.c:4163 +#: sql_help.c:4164 sql_help.c:4165 sql_help.c:4605 sql_help.c:4607 +#: sql_help.c:4709 sql_help.c:4711 sql_help.c:4863 sql_help.c:4865 +#: sql_help.c:5039 sql_help.c:5041 sql_help.c:5108 sql_help.c:5110 msgid "count" msgstr "출력개수" -#: sql_help.c:3898 sql_help.c:4350 +#: sql_help.c:3919 sql_help.c:4382 msgid "sequence_name" msgstr "시퀀스이름" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3937 sql_help.c:4400 msgid "arg_name" msgstr "인자이름" -#: sql_help.c:3917 sql_help.c:4369 +#: sql_help.c:3938 sql_help.c:4401 msgid "arg_type" msgstr "인자자료형" -#: sql_help.c:3924 sql_help.c:4376 +#: sql_help.c:3945 sql_help.c:4408 msgid "loid" msgstr "큰개체_oid" -#: sql_help.c:3955 +#: sql_help.c:3976 msgid "remote_schema" msgstr "원격_스키마" -#: sql_help.c:3958 +#: sql_help.c:3979 msgid "local_schema" msgstr "로컬_스키마" -#: sql_help.c:3993 +#: sql_help.c:4014 msgid "conflict_target" msgstr "충돌_대상" -#: sql_help.c:3994 +#: sql_help.c:4015 msgid "conflict_action" msgstr "충돌_작업" -#: sql_help.c:3997 +#: sql_help.c:4018 msgid "where conflict_target can be one of:" msgstr "충돌_대상 사용법:" -#: sql_help.c:3998 +#: sql_help.c:4019 msgid "index_column_name" msgstr "인덱스칼럼이름" -#: sql_help.c:3999 +#: sql_help.c:4020 msgid "index_expression" msgstr "인덱스표현식" -#: sql_help.c:4002 +#: sql_help.c:4023 msgid "index_predicate" msgstr "부분인덱스식" -#: sql_help.c:4004 +#: sql_help.c:4025 msgid "and conflict_action is one of:" msgstr "충돌_작업 사용법:" -#: sql_help.c:4010 sql_help.c:4938 +#: sql_help.c:4031 sql_help.c:4132 sql_help.c:4972 msgid "sub-SELECT" msgstr "서브셀렉트" -#: sql_help.c:4019 sql_help.c:4141 sql_help.c:4914 +#: sql_help.c:4040 sql_help.c:4173 sql_help.c:4948 msgid "channel" msgstr "채널" -#: sql_help.c:4041 +#: sql_help.c:4062 msgid "lockmode" msgstr "잠금모드" -#: sql_help.c:4042 +#: sql_help.c:4063 msgid "where lockmode is one of:" msgstr "잠금모드 사용법:" -#: sql_help.c:4078 +#: sql_help.c:4103 msgid "target_table_name" msgstr "대상_테이블_이름" -#: sql_help.c:4079 +#: sql_help.c:4104 msgid "target_alias" msgstr "대상_별칭" -#: sql_help.c:4080 +#: sql_help.c:4105 msgid "data_source" msgstr "데이터_소스" -#: sql_help.c:4081 sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4106 sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "join_condition" msgstr "조인_조건" -#: sql_help.c:4082 +#: sql_help.c:4107 msgid "when_clause" msgstr "when절" -#: sql_help.c:4083 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "데이터_소스 사용법:" -#: sql_help.c:4084 +#: sql_help.c:4111 msgid "source_table_name" msgstr "원본_테이블_이름" -#: sql_help.c:4085 +#: sql_help.c:4112 msgid "source_query" msgstr "소스_쿼리" -#: sql_help.c:4086 +#: sql_help.c:4113 msgid "source_alias" msgstr "소스_별칭" -#: sql_help.c:4087 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "when절 사용법:" -#: sql_help.c:4089 +#: sql_help.c:4116 sql_help.c:4119 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4090 +#: sql_help.c:4117 sql_help.c:4120 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4092 +#: sql_help.c:4122 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4093 +#: sql_help.c:4123 msgid "and merge_insert is:" msgstr "merge_insert 사용법:" -#: sql_help.c:4096 +#: sql_help.c:4126 msgid "and merge_update is:" msgstr "merge_update 사용법:" -#: sql_help.c:4101 +#: sql_help.c:4133 msgid "and merge_delete is:" msgstr "merge_delete 사용법:" -#: sql_help.c:4142 +#: sql_help.c:4174 msgid "payload" msgstr "payload" -#: sql_help.c:4169 +#: sql_help.c:4201 msgid "old_role" msgstr "기존롤" -#: sql_help.c:4170 +#: sql_help.c:4202 msgid "new_role" msgstr "새롤" -#: sql_help.c:4209 sql_help.c:4418 sql_help.c:4426 +#: sql_help.c:4241 sql_help.c:4450 sql_help.c:4458 msgid "savepoint_name" msgstr "savepoint_name" -#: sql_help.c:4566 sql_help.c:4624 sql_help.c:4823 sql_help.c:4881 -#: sql_help.c:5069 sql_help.c:5127 +#: sql_help.c:4598 sql_help.c:4656 sql_help.c:4856 sql_help.c:4914 +#: sql_help.c:5101 sql_help.c:5159 msgid "grouping_element" msgstr "grouping_element" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4600 sql_help.c:4704 sql_help.c:4858 sql_help.c:5103 msgid "window_name" msgstr "윈도우이름" -#: sql_help.c:4569 sql_help.c:4672 sql_help.c:4826 sql_help.c:5072 +#: sql_help.c:4601 sql_help.c:4705 sql_help.c:4859 sql_help.c:5104 msgid "window_definition" msgstr "원도우정의" -#: sql_help.c:4570 sql_help.c:4584 sql_help.c:4628 sql_help.c:4673 -#: sql_help.c:4827 sql_help.c:4841 sql_help.c:4885 sql_help.c:5073 -#: sql_help.c:5087 sql_help.c:5131 +#: sql_help.c:4602 sql_help.c:4616 sql_help.c:4660 sql_help.c:4706 +#: sql_help.c:4860 sql_help.c:4874 sql_help.c:4918 sql_help.c:5105 +#: sql_help.c:5119 sql_help.c:5163 msgid "select" msgstr "select" -#: sql_help.c:4577 sql_help.c:4834 sql_help.c:5080 +#: sql_help.c:4608 sql_help.c:4866 sql_help.c:5111 +msgid "from_reference" +msgstr "from_reference" + +#: sql_help.c:4609 sql_help.c:4867 sql_help.c:5112 msgid "where from_item can be one of:" msgstr "from절_항목 사용법:" -#: sql_help.c:4580 sql_help.c:4586 sql_help.c:4589 sql_help.c:4593 -#: sql_help.c:4605 sql_help.c:4837 sql_help.c:4843 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4862 sql_help.c:5083 sql_help.c:5089 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5108 +#: sql_help.c:4612 sql_help.c:4618 sql_help.c:4621 sql_help.c:4625 +#: sql_help.c:4637 sql_help.c:4870 sql_help.c:4876 sql_help.c:4879 +#: sql_help.c:4883 sql_help.c:4895 sql_help.c:5115 sql_help.c:5121 +#: sql_help.c:5124 sql_help.c:5128 sql_help.c:5140 msgid "column_alias" msgstr "칼럼별칭" -#: sql_help.c:4581 sql_help.c:4838 sql_help.c:5084 +#: sql_help.c:4613 sql_help.c:4871 sql_help.c:5116 msgid "sampling_method" msgstr "표본추출방법" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5086 +#: sql_help.c:4615 sql_help.c:4873 sql_help.c:5118 msgid "seed" msgstr "seed" -#: sql_help.c:4587 sql_help.c:4626 sql_help.c:4844 sql_help.c:4883 -#: sql_help.c:5090 sql_help.c:5129 +#: sql_help.c:4619 sql_help.c:4658 sql_help.c:4877 sql_help.c:4916 +#: sql_help.c:5122 sql_help.c:5161 msgid "with_query_name" msgstr "with절_쿼리_이름" -#: sql_help.c:4597 sql_help.c:4600 sql_help.c:4603 sql_help.c:4854 -#: sql_help.c:4857 sql_help.c:4860 sql_help.c:5100 sql_help.c:5103 -#: sql_help.c:5106 +#: sql_help.c:4629 sql_help.c:4632 sql_help.c:4635 sql_help.c:4887 +#: sql_help.c:4890 sql_help.c:4893 sql_help.c:5132 sql_help.c:5135 +#: sql_help.c:5138 msgid "column_definition" msgstr "칼럼정의" -#: sql_help.c:4607 sql_help.c:4613 sql_help.c:4864 sql_help.c:4870 -#: sql_help.c:5110 sql_help.c:5116 +#: sql_help.c:4639 sql_help.c:4645 sql_help.c:4897 sql_help.c:4903 +#: sql_help.c:5142 sql_help.c:5148 msgid "join_type" msgstr "조인_종류" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4642 sql_help.c:4900 sql_help.c:5145 msgid "join_column" msgstr "조인_칼럼" -#: sql_help.c:4611 sql_help.c:4868 sql_help.c:5114 +#: sql_help.c:4643 sql_help.c:4901 sql_help.c:5146 msgid "join_using_alias" msgstr "조인_별칭" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5120 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and grouping_element can be one of:" msgstr "grouping_element 사용법:" -#: sql_help.c:4625 sql_help.c:4882 sql_help.c:5128 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 msgid "and with_query is:" msgstr "with절_쿼리 사용법:" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "values" msgstr "값" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "insert" msgstr "insert" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "update" msgstr "update" -#: sql_help.c:4632 sql_help.c:4889 sql_help.c:5135 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "delete" msgstr "delete" -#: sql_help.c:4634 sql_help.c:4891 sql_help.c:5137 +#: sql_help.c:4665 sql_help.c:4923 sql_help.c:5168 +msgid "merge" +msgstr "merge" + +#: sql_help.c:4667 sql_help.c:4925 sql_help.c:5170 msgid "search_seq_col_name" msgstr "search_seq_col_name" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4669 sql_help.c:4927 sql_help.c:5172 msgid "cycle_mark_col_name" msgstr "cycle_mark_col_name" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 msgid "cycle_mark_value" msgstr "cycle_mark_value" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 msgid "cycle_mark_default" msgstr "cycle_mark_default" -#: sql_help.c:4639 sql_help.c:4896 sql_help.c:5142 +#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 msgid "cycle_path_col_name" msgstr "cycle_path_col_name" -#: sql_help.c:4666 +#: sql_help.c:4699 msgid "new_table" msgstr "새테이블" -#: sql_help.c:4737 +#: sql_help.c:4770 msgid "snapshot_id" msgstr "스냅샷_id" -#: sql_help.c:5005 +#: sql_help.c:5037 msgid "sort_expression" msgstr "정렬_표현식" -#: sql_help.c:5149 sql_help.c:6133 +#: sql_help.c:5182 sql_help.c:6166 msgid "abort the current transaction" msgstr "현재 트랜잭션 중지함" -#: sql_help.c:5155 +#: sql_help.c:5188 msgid "change the definition of an aggregate function" msgstr "집계함수 정보 바꾸기" -#: sql_help.c:5161 +#: sql_help.c:5194 msgid "change the definition of a collation" msgstr "collation 정의 바꾸기" -#: sql_help.c:5167 +#: sql_help.c:5200 msgid "change the definition of a conversion" msgstr "문자코드 변환규칙(conversion) 정보 바꾸기" -#: sql_help.c:5173 +#: sql_help.c:5206 msgid "change a database" msgstr "데이터베이스 변경" -#: sql_help.c:5179 +#: sql_help.c:5212 msgid "define default access privileges" msgstr "기본 접근 권한 정의" -#: sql_help.c:5185 +#: sql_help.c:5218 msgid "change the definition of a domain" msgstr "도메인 정보 바꾸기" -#: sql_help.c:5191 +#: sql_help.c:5224 msgid "change the definition of an event trigger" msgstr "트리거 정보 바꾸기" -#: sql_help.c:5197 +#: sql_help.c:5230 msgid "change the definition of an extension" msgstr "확장모듈 정의 바꾸기" -#: sql_help.c:5203 +#: sql_help.c:5236 msgid "change the definition of a foreign-data wrapper" msgstr "외부 데이터 래퍼 정의 바꾸기" -#: sql_help.c:5209 +#: sql_help.c:5242 msgid "change the definition of a foreign table" msgstr "외부 테이블 정의 바꾸기" -#: sql_help.c:5215 +#: sql_help.c:5248 msgid "change the definition of a function" msgstr "함수 정보 바꾸기" -#: sql_help.c:5221 +#: sql_help.c:5254 msgid "change role name or membership" msgstr "롤 이름이나 맴버쉽 바꾸기" -#: sql_help.c:5227 +#: sql_help.c:5260 msgid "change the definition of an index" msgstr "인덱스 정의 바꾸기" -#: sql_help.c:5233 +#: sql_help.c:5266 msgid "change the definition of a procedural language" msgstr "procedural language 정보 바꾸기" -#: sql_help.c:5239 +#: sql_help.c:5272 msgid "change the definition of a large object" msgstr "대형 객체 정의 바꾸기" -#: sql_help.c:5245 +#: sql_help.c:5278 msgid "change the definition of a materialized view" msgstr "materialized 뷰 정의 바꾸기" -#: sql_help.c:5251 +#: sql_help.c:5284 msgid "change the definition of an operator" msgstr "연산자 정의 바꾸기" -#: sql_help.c:5257 +#: sql_help.c:5290 msgid "change the definition of an operator class" msgstr "연산자 클래스 정보 바꾸기" -#: sql_help.c:5263 +#: sql_help.c:5296 msgid "change the definition of an operator family" msgstr "연산자 부류의 정의 바꾸기" -#: sql_help.c:5269 +#: sql_help.c:5302 msgid "change the definition of a row-level security policy" msgstr "로우 단위 보안 정책의 정의 바꾸기" -#: sql_help.c:5275 +#: sql_help.c:5308 msgid "change the definition of a procedure" msgstr "프로시져 정의 바꾸기" -#: sql_help.c:5281 +#: sql_help.c:5314 msgid "change the definition of a publication" msgstr "발행 정보 바꾸기" -#: sql_help.c:5287 sql_help.c:5389 +#: sql_help.c:5320 sql_help.c:5422 msgid "change a database role" msgstr "데이터베이스 롤 변경" -#: sql_help.c:5293 +#: sql_help.c:5326 msgid "change the definition of a routine" msgstr "루틴 정의 바꾸기" -#: sql_help.c:5299 +#: sql_help.c:5332 msgid "change the definition of a rule" msgstr "룰 정의 바꾸기" -#: sql_help.c:5305 +#: sql_help.c:5338 msgid "change the definition of a schema" msgstr "스키마 이름 바꾸기" -#: sql_help.c:5311 +#: sql_help.c:5344 msgid "change the definition of a sequence generator" msgstr "시퀀스 정보 바꾸기" -#: sql_help.c:5317 +#: sql_help.c:5350 msgid "change the definition of a foreign server" msgstr "외부 서버 정의 바꾸기" -#: sql_help.c:5323 +#: sql_help.c:5356 msgid "change the definition of an extended statistics object" msgstr "확장 통계정보 객체 정의 바꾸기" -#: sql_help.c:5329 +#: sql_help.c:5362 msgid "change the definition of a subscription" msgstr "구독 정보 바꾸기" -#: sql_help.c:5335 +#: sql_help.c:5368 msgid "change a server configuration parameter" msgstr "서버 환경 설정 매개 변수 바꾸기" -#: sql_help.c:5341 +#: sql_help.c:5374 msgid "change the definition of a table" msgstr "테이블 정보 바꾸기" -#: sql_help.c:5347 +#: sql_help.c:5380 msgid "change the definition of a tablespace" msgstr "테이블스페이스 정의 바꾸기" -#: sql_help.c:5353 +#: sql_help.c:5386 msgid "change the definition of a text search configuration" msgstr "텍스트 검색 구성 정의 바꾸기" -#: sql_help.c:5359 +#: sql_help.c:5392 msgid "change the definition of a text search dictionary" msgstr "텍스트 검색 사전 정의 바꾸기" -#: sql_help.c:5365 +#: sql_help.c:5398 msgid "change the definition of a text search parser" msgstr "텍스트 검색 파서 정의 바꾸기" -#: sql_help.c:5371 +#: sql_help.c:5404 msgid "change the definition of a text search template" msgstr "텍스트 검색 템플릿 정의 바꾸기" -#: sql_help.c:5377 +#: sql_help.c:5410 msgid "change the definition of a trigger" msgstr "트리거 정보 바꾸기" -#: sql_help.c:5383 +#: sql_help.c:5416 msgid "change the definition of a type" msgstr "자료형 정의 바꾸기" -#: sql_help.c:5395 +#: sql_help.c:5428 msgid "change the definition of a user mapping" msgstr "사용자 매핑 정의 바꾸기" -#: sql_help.c:5401 +#: sql_help.c:5434 msgid "change the definition of a view" msgstr "뷰 정의 바꾸기" -#: sql_help.c:5407 +#: sql_help.c:5440 msgid "collect statistics about a database" msgstr "데이터베이스 사용 통계 정보를 갱신함" -#: sql_help.c:5413 sql_help.c:6211 +#: sql_help.c:5446 sql_help.c:6244 msgid "start a transaction block" msgstr "트랜잭션 블럭을 시작함" -#: sql_help.c:5419 +#: sql_help.c:5452 msgid "invoke a procedure" msgstr "프로시져 호출" -#: sql_help.c:5425 +#: sql_help.c:5458 msgid "force a write-ahead log checkpoint" msgstr "트랜잭션 로그를 강제로 체크포인트 함" -#: sql_help.c:5431 +#: sql_help.c:5464 msgid "close a cursor" msgstr "커서 닫기" -#: sql_help.c:5437 +#: sql_help.c:5470 msgid "cluster a table according to an index" msgstr "지정한 인덱스 기준으로 테이블 자료를 다시 저장함" -#: sql_help.c:5443 +#: sql_help.c:5476 msgid "define or change the comment of an object" msgstr "해당 개체의 코멘트를 지정하거나 수정함" -#: sql_help.c:5449 sql_help.c:6007 +#: sql_help.c:5482 sql_help.c:6040 msgid "commit the current transaction" msgstr "현재 트랜잭션 commit" -#: sql_help.c:5455 +#: sql_help.c:5488 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "two-phase 커밋을 위해 먼저 준비된 트랜잭션을 커밋하세요." -#: sql_help.c:5461 +#: sql_help.c:5494 msgid "copy data between a file and a table" msgstr "테이블과 파일 사이 자료를 복사함" -#: sql_help.c:5467 +#: sql_help.c:5500 msgid "define a new access method" msgstr "새 접속 방법 정의" -#: sql_help.c:5473 +#: sql_help.c:5506 msgid "define a new aggregate function" msgstr "새 집계합수 만들기" -#: sql_help.c:5479 +#: sql_help.c:5512 msgid "define a new cast" msgstr "새 형변환자 만들기" -#: sql_help.c:5485 +#: sql_help.c:5518 msgid "define a new collation" msgstr "새 collation 만들기" -#: sql_help.c:5491 +#: sql_help.c:5524 msgid "define a new encoding conversion" msgstr "새 문자코드변환규칙(conversion) 만들기" -#: sql_help.c:5497 +#: sql_help.c:5530 msgid "create a new database" msgstr "데이터베이스 생성" -#: sql_help.c:5503 +#: sql_help.c:5536 msgid "define a new domain" msgstr "새 도메인 만들기" -#: sql_help.c:5509 +#: sql_help.c:5542 msgid "define a new event trigger" msgstr "새 이벤트 트리거 만들기" -#: sql_help.c:5515 +#: sql_help.c:5548 msgid "install an extension" msgstr "확장 모듈 설치" -#: sql_help.c:5521 +#: sql_help.c:5554 msgid "define a new foreign-data wrapper" msgstr "새 외부 데이터 래퍼 정의" -#: sql_help.c:5527 +#: sql_help.c:5560 msgid "define a new foreign table" msgstr "새 외부 테이블 정의" -#: sql_help.c:5533 +#: sql_help.c:5566 msgid "define a new function" msgstr "새 함수 만들기" -#: sql_help.c:5539 sql_help.c:5599 sql_help.c:5701 +#: sql_help.c:5572 sql_help.c:5632 sql_help.c:5734 msgid "define a new database role" msgstr "새 데이터베이스 롤 만들기" -#: sql_help.c:5545 +#: sql_help.c:5578 msgid "define a new index" msgstr "새 인덱스 만들기" -#: sql_help.c:5551 +#: sql_help.c:5584 msgid "define a new procedural language" msgstr "새 프로시주얼 언어 만들기" -#: sql_help.c:5557 +#: sql_help.c:5590 msgid "define a new materialized view" msgstr "새 materialized 뷰 만들기" -#: sql_help.c:5563 +#: sql_help.c:5596 msgid "define a new operator" msgstr "새 연산자 만들기" -#: sql_help.c:5569 +#: sql_help.c:5602 msgid "define a new operator class" msgstr "새 연잔자 클래스 만들기" -#: sql_help.c:5575 +#: sql_help.c:5608 msgid "define a new operator family" msgstr "새 연산자 부류 만들기" -#: sql_help.c:5581 +#: sql_help.c:5614 msgid "define a new row-level security policy for a table" msgstr "특정 테이블에 로우 단위 보안 정책 정의" -#: sql_help.c:5587 +#: sql_help.c:5620 msgid "define a new procedure" msgstr "새 프로시져 만들기" -#: sql_help.c:5593 +#: sql_help.c:5626 msgid "define a new publication" msgstr "새 발행 만들기" -#: sql_help.c:5605 +#: sql_help.c:5638 msgid "define a new rewrite rule" msgstr "새 룰(rule) 만들기" -#: sql_help.c:5611 +#: sql_help.c:5644 msgid "define a new schema" msgstr "새 스키마(schema) 만들기" -#: sql_help.c:5617 +#: sql_help.c:5650 msgid "define a new sequence generator" msgstr "새 시퀀스 만들기" -#: sql_help.c:5623 +#: sql_help.c:5656 msgid "define a new foreign server" msgstr "새 외부 서버 정의" -#: sql_help.c:5629 +#: sql_help.c:5662 msgid "define extended statistics" msgstr "새 확장 통계정보 만들기" -#: sql_help.c:5635 +#: sql_help.c:5668 msgid "define a new subscription" msgstr "새 구독 만들기" -#: sql_help.c:5641 +#: sql_help.c:5674 msgid "define a new table" msgstr "새 테이블 만들기" -#: sql_help.c:5647 sql_help.c:6169 +#: sql_help.c:5680 sql_help.c:6202 msgid "define a new table from the results of a query" msgstr "쿼리 결과를 새 테이블로 만들기" -#: sql_help.c:5653 +#: sql_help.c:5686 msgid "define a new tablespace" msgstr "새 테이블스페이스 만들기" -#: sql_help.c:5659 +#: sql_help.c:5692 msgid "define a new text search configuration" msgstr "새 텍스트 검색 구성 정의" -#: sql_help.c:5665 +#: sql_help.c:5698 msgid "define a new text search dictionary" msgstr "새 텍스트 검색 사전 정의" -#: sql_help.c:5671 +#: sql_help.c:5704 msgid "define a new text search parser" msgstr "새 텍스트 검색 파서 정의" -#: sql_help.c:5677 +#: sql_help.c:5710 msgid "define a new text search template" msgstr "새 텍스트 검색 템플릿 정의" -#: sql_help.c:5683 +#: sql_help.c:5716 msgid "define a new transform" msgstr "새 transform 만들기" -#: sql_help.c:5689 +#: sql_help.c:5722 msgid "define a new trigger" msgstr "새 트리거 만들기" -#: sql_help.c:5695 +#: sql_help.c:5728 msgid "define a new data type" msgstr "새 자료형 만들기" -#: sql_help.c:5707 +#: sql_help.c:5740 msgid "define a new mapping of a user to a foreign server" msgstr "사용자와 외부 서버 간의 새 매핑 정의" -#: sql_help.c:5713 +#: sql_help.c:5746 msgid "define a new view" msgstr "새 view 만들기" -#: sql_help.c:5719 +#: sql_help.c:5752 msgid "deallocate a prepared statement" msgstr "준비된 구문(prepared statement) 지우기" -#: sql_help.c:5725 +#: sql_help.c:5758 msgid "define a cursor" msgstr "커서 지정" -#: sql_help.c:5731 +#: sql_help.c:5764 msgid "delete rows of a table" msgstr "테이블의 자료 삭제" -#: sql_help.c:5737 +#: sql_help.c:5770 msgid "discard session state" msgstr "세션 상태 삭제" -#: sql_help.c:5743 +#: sql_help.c:5776 msgid "execute an anonymous code block" msgstr "임의 코드 블록 실행" -#: sql_help.c:5749 +#: sql_help.c:5782 msgid "remove an access method" msgstr "접근 방법 삭제" -#: sql_help.c:5755 +#: sql_help.c:5788 msgid "remove an aggregate function" msgstr "집계 함수 삭제" -#: sql_help.c:5761 +#: sql_help.c:5794 msgid "remove a cast" msgstr "형변환자 삭제" -#: sql_help.c:5767 +#: sql_help.c:5800 msgid "remove a collation" msgstr "collation 삭제" -#: sql_help.c:5773 +#: sql_help.c:5806 msgid "remove a conversion" msgstr "문자코드 변환규칙(conversion) 삭제" -#: sql_help.c:5779 +#: sql_help.c:5812 msgid "remove a database" msgstr "데이터베이스 삭제" -#: sql_help.c:5785 +#: sql_help.c:5818 msgid "remove a domain" msgstr "도메인 삭제" -#: sql_help.c:5791 +#: sql_help.c:5824 msgid "remove an event trigger" msgstr "이벤트 트리거 삭제" -#: sql_help.c:5797 +#: sql_help.c:5830 msgid "remove an extension" msgstr "확장 모듈 삭제" -#: sql_help.c:5803 +#: sql_help.c:5836 msgid "remove a foreign-data wrapper" msgstr "외부 데이터 래퍼 제거" -#: sql_help.c:5809 +#: sql_help.c:5842 msgid "remove a foreign table" msgstr "외부 테이블 삭제" -#: sql_help.c:5815 +#: sql_help.c:5848 msgid "remove a function" msgstr "함수 삭제" -#: sql_help.c:5821 sql_help.c:5887 sql_help.c:5989 +#: sql_help.c:5854 sql_help.c:5920 sql_help.c:6022 msgid "remove a database role" msgstr "데이터베이스 롤 삭제" -#: sql_help.c:5827 +#: sql_help.c:5860 msgid "remove an index" msgstr "인덱스 삭제" -#: sql_help.c:5833 +#: sql_help.c:5866 msgid "remove a procedural language" msgstr "프로시주얼 언어 삭제" -#: sql_help.c:5839 +#: sql_help.c:5872 msgid "remove a materialized view" msgstr "materialized 뷰 삭제" -#: sql_help.c:5845 +#: sql_help.c:5878 msgid "remove an operator" msgstr "연산자 삭제" -#: sql_help.c:5851 +#: sql_help.c:5884 msgid "remove an operator class" msgstr "연산자 클래스 삭제" -#: sql_help.c:5857 +#: sql_help.c:5890 msgid "remove an operator family" msgstr "연산자 부류 삭제" -#: sql_help.c:5863 +#: sql_help.c:5896 msgid "remove database objects owned by a database role" msgstr "데이터베이스 롤로 권한이 부여된 데이터베이스 개체들을 삭제하세요" -#: sql_help.c:5869 +#: sql_help.c:5902 msgid "remove a row-level security policy from a table" msgstr "해당 테이블에 정의된 로우 단위 보안 정책 삭제" -#: sql_help.c:5875 +#: sql_help.c:5908 msgid "remove a procedure" msgstr "프로시져 삭제" -#: sql_help.c:5881 +#: sql_help.c:5914 msgid "remove a publication" msgstr "발행 삭제" -#: sql_help.c:5893 +#: sql_help.c:5926 msgid "remove a routine" msgstr "루틴 삭제" -#: sql_help.c:5899 +#: sql_help.c:5932 msgid "remove a rewrite rule" msgstr "룰(rule) 삭제" -#: sql_help.c:5905 +#: sql_help.c:5938 msgid "remove a schema" msgstr "스키마(schema) 삭제" -#: sql_help.c:5911 +#: sql_help.c:5944 msgid "remove a sequence" msgstr "시퀀스 삭제" -#: sql_help.c:5917 +#: sql_help.c:5950 msgid "remove a foreign server descriptor" msgstr "외부 서버 설명자 제거" -#: sql_help.c:5923 +#: sql_help.c:5956 msgid "remove extended statistics" msgstr "확장 통계정보 삭제" -#: sql_help.c:5929 +#: sql_help.c:5962 msgid "remove a subscription" msgstr "구독 삭제" -#: sql_help.c:5935 +#: sql_help.c:5968 msgid "remove a table" msgstr "테이블 삭제" -#: sql_help.c:5941 +#: sql_help.c:5974 msgid "remove a tablespace" msgstr "테이블스페이스 삭제" -#: sql_help.c:5947 +#: sql_help.c:5980 msgid "remove a text search configuration" msgstr "텍스트 검색 구성 제거" -#: sql_help.c:5953 +#: sql_help.c:5986 msgid "remove a text search dictionary" msgstr "텍스트 검색 사전 제거" -#: sql_help.c:5959 +#: sql_help.c:5992 msgid "remove a text search parser" msgstr "텍스트 검색 파서 제거" -#: sql_help.c:5965 +#: sql_help.c:5998 msgid "remove a text search template" msgstr "텍스트 검색 템플릿 제거" -#: sql_help.c:5971 +#: sql_help.c:6004 msgid "remove a transform" msgstr "transform 삭제" -#: sql_help.c:5977 +#: sql_help.c:6010 msgid "remove a trigger" msgstr "트리거 삭제" -#: sql_help.c:5983 +#: sql_help.c:6016 msgid "remove a data type" msgstr "자료형 삭제" -#: sql_help.c:5995 +#: sql_help.c:6028 msgid "remove a user mapping for a foreign server" msgstr "외부 서버에 대한 사용자 매핑 제거" -#: sql_help.c:6001 +#: sql_help.c:6034 msgid "remove a view" msgstr "뷰(view) 삭제" -#: sql_help.c:6013 +#: sql_help.c:6046 msgid "execute a prepared statement" msgstr "준비된 구문(prepared statement) 실행" -#: sql_help.c:6019 +#: sql_help.c:6052 msgid "show the execution plan of a statement" msgstr "쿼리 실행계획 보기" -#: sql_help.c:6025 +#: sql_help.c:6058 msgid "retrieve rows from a query using a cursor" msgstr "해당 커서에서 자료 뽑기" -#: sql_help.c:6031 +#: sql_help.c:6064 msgid "define access privileges" msgstr "액세스 권한 지정하기" -#: sql_help.c:6037 +#: sql_help.c:6070 msgid "import table definitions from a foreign server" msgstr "외부 서버로부터 테이블 정의 가져오기" -#: sql_help.c:6043 +#: sql_help.c:6076 msgid "create new rows in a table" msgstr "테이블 자료 삽입" -#: sql_help.c:6049 +#: sql_help.c:6082 msgid "listen for a notification" msgstr "특정 서버 메시지 수신함" -#: sql_help.c:6055 +#: sql_help.c:6088 msgid "load a shared library file" msgstr "공유 라이브러리 파일 로드" -#: sql_help.c:6061 +#: sql_help.c:6094 msgid "lock a table" msgstr "테이블 잠금" -#: sql_help.c:6067 +#: sql_help.c:6100 msgid "conditionally insert, update, or delete rows of a table" msgstr "조건부 테이블 insert, update, delete" -#: sql_help.c:6073 +#: sql_help.c:6106 msgid "position a cursor" msgstr "커서 위치 옮기기" -#: sql_help.c:6079 +#: sql_help.c:6112 msgid "generate a notification" msgstr "특정 서버 메시지 발생" -#: sql_help.c:6085 +#: sql_help.c:6118 msgid "prepare a statement for execution" msgstr "준비된 구문(prepared statement) 만들기" -#: sql_help.c:6091 +#: sql_help.c:6124 msgid "prepare the current transaction for two-phase commit" msgstr "two-phase 커밋을 위해 현재 트랜잭션을 준비함" -#: sql_help.c:6097 +#: sql_help.c:6130 msgid "change the ownership of database objects owned by a database role" msgstr "데이터베이스 롤로 권한이 부여된 데이터베이스 개체들의 소유주 바꾸기" -#: sql_help.c:6103 +#: sql_help.c:6136 msgid "replace the contents of a materialized view" msgstr "구체화된 뷰의 내용 수정" -#: sql_help.c:6109 +#: sql_help.c:6142 msgid "rebuild indexes" msgstr "인덱스 다시 만들기" -#: sql_help.c:6115 +#: sql_help.c:6148 msgid "release a previously defined savepoint" msgstr "이전 정의된 savepoint를 지움" -#: sql_help.c:6121 +#: sql_help.c:6154 msgid "restore the value of a run-time parameter to the default value" msgstr "실시간 환경 변수값을 초기값으로 다시 지정" -#: sql_help.c:6127 +#: sql_help.c:6160 msgid "remove access privileges" msgstr "액세스 권한 해제하기" -#: sql_help.c:6139 +#: sql_help.c:6172 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "two-phase 커밋을 위해 먼저 준비되었던 트랜잭션 실행취소하기" -#: sql_help.c:6145 +#: sql_help.c:6178 msgid "roll back to a savepoint" msgstr "savepoint 파기하기" -#: sql_help.c:6151 +#: sql_help.c:6184 msgid "define a new savepoint within the current transaction" msgstr "현재 트랜잭션에서 새로운 savepoint 만들기" -#: sql_help.c:6157 +#: sql_help.c:6190 msgid "define or change a security label applied to an object" msgstr "해당 개체에 보안 라벨을 정의하거나 변경" -#: sql_help.c:6163 sql_help.c:6217 sql_help.c:6253 +#: sql_help.c:6196 sql_help.c:6250 sql_help.c:6286 msgid "retrieve rows from a table or view" msgstr "테이블이나 뷰의 자료를 출력" -#: sql_help.c:6175 +#: sql_help.c:6208 msgid "change a run-time parameter" msgstr "실시간 환경 변수값 바꾸기" -#: sql_help.c:6181 +#: sql_help.c:6214 msgid "set constraint check timing for the current transaction" msgstr "현재 트랜잭션에서 제약조건 설정" -#: sql_help.c:6187 +#: sql_help.c:6220 msgid "set the current user identifier of the current session" msgstr "현재 세션의 현재 사용자 식별자를 지정" -#: sql_help.c:6193 +#: sql_help.c:6226 msgid "" "set the session user identifier and the current user identifier of the " "current session" msgstr "현재 세션의 사용자 인증을 지정함 - 사용자 지정" -#: sql_help.c:6199 +#: sql_help.c:6232 msgid "set the characteristics of the current transaction" msgstr "현재 트랜잭션의 성질을 지정함" -#: sql_help.c:6205 +#: sql_help.c:6238 msgid "show the value of a run-time parameter" msgstr "실시간 환경 변수값들을 보여줌" -#: sql_help.c:6223 +#: sql_help.c:6256 msgid "empty a table or set of tables" msgstr "하나 또는 지정한 여러개의 테이블에서 모든 자료 지움" -#: sql_help.c:6229 +#: sql_help.c:6262 msgid "stop listening for a notification" msgstr "특정 서버 메시지 수신 기능 끔" -#: sql_help.c:6235 +#: sql_help.c:6268 msgid "update rows of a table" msgstr "테이블 자료 갱신" -#: sql_help.c:6241 +#: sql_help.c:6274 msgid "garbage-collect and optionally analyze a database" msgstr "물리적인 자료 정리 작업 - 쓰레기값 청소" -#: sql_help.c:6247 +#: sql_help.c:6280 msgid "compute a set of rows" msgstr "compute a set of rows" @@ -6657,7 +6735,7 @@ msgstr "추가 명령행 인자 \"%s\" 무시됨" msgid "could not find own program executable" msgstr "실행 가능한 프로그램을 찾을 수 없음" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6691,3 +6769,19 @@ msgid "" msgstr "" "\"%s\" 값은 \"%s\" 변수값으로 사용할 수 없음\n" "사용할 수 있는 변수값: %s" + +#~ msgid "ICU Locale" +#~ msgstr "ICU 로케일" + +#~ msgid "local socket" +#~ msgstr "로컬 소켓" + +#~ msgid "" +#~ " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" +#~ msgstr " \\watch [[i=]SEC] [c=N] SEC초 간격, N번 반복\n" + +#~ msgid "constraint" +#~ msgstr "제약조건" + +#~ msgid "where constraint is:" +#~ msgstr "제약조건 사용법:" diff --git a/src/bin/psql/po/ru.po b/src/bin/psql/po/ru.po index aa94fef05ef7a..9ffcab1d2b8e9 100644 --- a/src/bin/psql/po/ru.po +++ b/src/bin/psql/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Sergey Burladyan , 2012. -# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2025. # 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: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2023-08-29 13:37+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2025-02-08 08:33+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -41,33 +41,48 @@ msgstr "подробности: " msgid "hint: " msgstr "подсказка: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "неверный исполняемый файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не удалось прочитать исполняемый файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "не удалось найти запускаемый файл \"%s\"" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не удалось преобразовать относительный путь \"%s\" в абсолютный: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не удалось выполнить команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не удалось прочитать вывод команды \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не выдала данные" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "ошибка в %s(): %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -89,7 +104,7 @@ msgstr "попытка дублирования нулевого указате msgid "could not look up effective user ID %ld: %s" msgstr "выяснить эффективный идентификатор пользователя (%ld) не удалось: %s" -#: ../../common/username.c:45 command.c:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "пользователь не существует" @@ -126,13 +141,13 @@ msgstr "дочерний процесс завершён по сигналу %d: #: ../../common/wait_error.c:82 #, c-format msgid "child process exited with unrecognized status %d" -msgstr "дочерний процесс завершился с нераспознанным состоянием %d" +msgstr "дочерний процесс завершился с нераспознанным кодом состояния %d" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Сигнал отмены отправлен\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Отправить сигнал отмены не удалось: " @@ -149,76 +164,98 @@ msgstr[2] "(%lu строк)" msgid "Interrupted\n" msgstr "Прервано\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "" +"Cannot print table contents: number of cells %lld is equal to or exceeds " +"maximum %lld.\n" +msgstr "" +"Вывести содержимое таблицы нельзя: число ячеек %lld достигло максимума " +"%lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" "Ошибка добавления заголовка таблицы: превышен предел числа столбцов (%d).\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" msgstr "" -"Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%d).\n" +"Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%lld).\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "неверный формат вывода (внутренняя ошибка): %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "рекурсивное расширение переменной \"%s\" пропускается" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "найти локального пользователя по идентификатору (%d) не удалось: %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "локальный пользователь с ID %d не существует" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "неверная команда \\%s" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "Введите \\? для получения справки." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: лишний аргумент \"%s\" пропущен" -#: command.c:306 +#: command.c:307 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "" "команда \\%s игнорируется; добавьте \\endif или нажмите Ctrl-C для " "завершения текущего блока \\if" -#: command.c:611 +#: command.c:614 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "не удалось получить домашний каталог пользователя c ид. %ld: %s" -#: command.c:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: не удалось перейти в каталог \"%s\": %m" -#: command.c:654 +#: command.c:657 #, c-format msgid "You are currently not connected to a database.\n" msgstr "В данный момент вы не подключены к базе данных.\n" -#: command.c:664 +#: command.c:667 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -227,7 +264,7 @@ msgstr "" "Вы подключены к базе данных \"%s\" как пользователь \"%s\" (адрес сервера " "\"%s\", порт \"%s\").\n" -#: command.c:667 +#: command.c:670 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at " @@ -236,221 +273,231 @@ msgstr "" "Вы подключены к базе данных \"%s\" как пользователь \"%s\" через сокет в " "\"%s\", порт \"%s\".\n" -#: command.c:673 +#: command.c:676 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address " "\"%s\") at port \"%s\".\n" msgstr "" -"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\": " -"адрес \"%s\", порт \"%s\").\n" +"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (компьютер " +"\"%s\": адрес \"%s\", порт \"%s\").\n" -#: command.c:676 +#: command.c:679 #, c-format msgid "" "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port " "\"%s\".\n" msgstr "" -"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\", " -"порт \"%s\").\n" +"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (компьютер " +"\"%s\", порт \"%s\").\n" -#: command.c:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2675 #, c-format msgid "no query buffer" msgstr "нет буфера запросов" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5776 #, c-format msgid "invalid line number: %s" msgstr "неверный номер строки: %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "Изменений нет" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "" "%s: неверное название кодировки символов или не найдена процедура " "перекодировки" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:721 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5882 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1375 msgid "There is no previous error." msgstr "Ошибки не было." -#: command.c:1470 +#: command.c:1488 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: отсутствует правая скобка" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 +#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 #, c-format msgid "\\%s: missing required argument" msgstr "отсутствует необходимый аргумент \\%s" -#: command.c:1815 +#: command.c:1822 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif не может находиться после \\else" -#: command.c:1820 +#: command.c:1827 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif без соответствующего \\if" -#: command.c:1884 +#: command.c:1891 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else не может находиться после \\else" -#: command.c:1889 +#: command.c:1896 #, c-format msgid "\\else: no matching \\if" msgstr "\\else без соответствующего \\if" -#: command.c:1929 +#: command.c:1936 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif без соответствующего \\if" -#: command.c:2085 +#: command.c:2092 msgid "Query buffer is empty." msgstr "Буфер запроса пуст." -#: command.c:2128 +#: command.c:2135 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Введите новый пароль для пользователя \"%s\": " -#: command.c:2132 +#: command.c:2139 msgid "Enter it again: " msgstr "Повторите его: " -#: command.c:2141 +#: command.c:2148 #, c-format msgid "Passwords didn't match." msgstr "Пароли не совпадают." -#: command.c:2238 +#: command.c:2231 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: не удалось прочитать значение переменной" -#: command.c:2340 +#: command.c:2333 msgid "Query buffer reset (cleared)." msgstr "Буфер запроса сброшен (очищен)." -#: command.c:2362 +#: command.c:2355 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "История записана в файл \"%s\".\n" -#: command.c:2449 +#: command.c:2442 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: имя переменной окружения не может содержать знак \"=\"" -#: command.c:2497 +#: command.c:2490 #, c-format msgid "function name is required" msgstr "требуется имя функции" -#: command.c:2499 +#: command.c:2492 #, c-format msgid "view name is required" msgstr "требуется имя представления" -#: command.c:2621 +#: command.c:2614 msgid "Timing is on." msgstr "Секундомер включён." -#: command.c:2623 +#: command.c:2616 msgid "Timing is off." msgstr "Секундомер выключен." -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 +#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 +#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2736 copy.c:388 +#: command.c:2729 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2806 command.c:2852 +#: command.c:2801 command.c:2867 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: длительность интервала указана неоднократно" -#: command.c:2816 command.c:2862 +#: command.c:2811 command.c:2877 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: некорректная длительность интервала \"%s\"" -#: command.c:2826 +#: command.c:2821 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: число итераций указано неоднократно" -#: command.c:2836 +#: command.c:2831 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: некорректное число итераций \"%s\"" -#: command.c:2843 +#: command.c:2841 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: минимальное число строк указано неоднократно" + +#: command.c:2851 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch: некорректное минимальное число строк \"%s\"" + +#: command.c:2858 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: нераспознанный параметр \"%s\"" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3255 startup.c:243 startup.c:293 msgid "Password: " msgstr "Пароль: " -#: command.c:3241 startup.c:290 +#: command.c:3260 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Пароль пользователя %s: " -#: command.c:3297 +#: command.c:3316 #, c-format msgid "" "Do not give user, host, or port separately when using a connection string" msgstr "" -"Не указывайте пользователя, сервер или порт отдельно, когда используете " +"Не указывайте пользователя, компьютер или порт отдельно, когда используете " "строку подключения" -#: command.c:3332 +#: command.c:3351 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "" "Нет подключения к базе, из которого можно было бы использовать параметры" -#: command.c:3638 +#: command.c:3658 #, c-format msgid "Previous connection kept" msgstr "Сохранено предыдущее подключение" -#: command.c:3644 +#: command.c:3664 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3700 +#: command.c:3720 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at " @@ -459,7 +506,7 @@ msgstr "" "Сейчас вы подключены к базе данных \"%s\" как пользователь \"%s\" (адрес " "сервера \"%s\", порт \"%s\").\n" -#: command.c:3703 +#: command.c:3723 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" " @@ -468,35 +515,35 @@ msgstr "" "Вы подключены к базе данных \"%s\" как пользователь \"%s\" через сокет в " "\"%s\", порт \"%s\".\n" -#: command.c:3709 +#: command.c:3729 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on host " "\"%s\" (address \"%s\") at port \"%s\".\n" msgstr "" -"Сейчас вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер " +"Сейчас вы подключены к базе данных \"%s\" как пользователь \"%s\" (компьютер " "\"%s\": адрес \"%s\", порт \"%s\").\n" -#: command.c:3712 +#: command.c:3732 #, c-format msgid "" "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at " "port \"%s\".\n" msgstr "" -"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (сервер \"%s\", " -"порт \"%s\").\n" +"Вы подключены к базе данных \"%s\" как пользователь \"%s\" (компьютер " +"\"%s\", порт \"%s\").\n" -#: command.c:3717 +#: command.c:3737 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Вы подключены к базе данных \"%s\" как пользователь \"%s\".\n" -#: command.c:3757 +#: command.c:3843 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, сервер %s)\n" -#: command.c:3770 +#: command.c:3856 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -505,29 +552,33 @@ msgstr "" "ПРЕДУПРЕЖДЕНИЕ: %s имеет базовую версию %s, а сервер - %s.\n" " Часть функций psql может не работать.\n" -#: command.c:3807 +#: command.c:3895 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "SSL-соединение (протокол: %s, шифр: %s, сжатие: %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "SSL-соединение (протокол: %s, шифр: %s, сжатие: %s, ALPN: %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3896 command.c:3897 msgid "unknown" msgstr "неизвестно" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "off" msgstr "выкл." -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "on" msgstr "вкл." -#: command.c:3824 +#: command.c:3899 +msgid "none" +msgstr "нет" + +#: command.c:3913 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "Соединение зашифровано GSSAPI\n" -#: command.c:3844 +#: command.c:3933 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -540,7 +591,7 @@ msgstr "" " Подробнее об этом смотрите документацию psql, раздел\n" " \"Notes for Windows users\".\n" -#: command.c:3949 +#: command.c:4038 #, c-format msgid "" "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a " @@ -549,33 +600,33 @@ msgstr "" "в переменной окружения PSQL_EDITOR_LINENUMBER_ARG должен быть указан номер " "строки" -#: command.c:3979 +#: command.c:4068 #, c-format msgid "could not start editor \"%s\"" msgstr "не удалось запустить редактор \"%s\"" -#: command.c:3981 +#: command.c:4070 #, c-format msgid "could not start /bin/sh" msgstr "не удалось запустить /bin/sh" -#: command.c:4031 +#: command.c:4120 #, c-format msgid "could not locate temporary directory: %s" msgstr "не удалось найти временный каталог: %s" -#: command.c:4058 +#: command.c:4147 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "не удалось открыть временный файл \"%s\": %m" -#: command.c:4394 +#: command.c:4483 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "" "\\pset: неоднозначному сокращению \"%s\" соответствует и \"%s\", и \"%s\"" -#: command.c:4414 +#: command.c:4503 #, c-format msgid "" "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-" @@ -584,27 +635,27 @@ msgstr "" "\\pset: допустимые форматы: aligned, asciidoc, csv, html, latex, latex-" "longtable, troff-ms, unaligned, wrapped" -#: command.c:4433 +#: command.c:4522 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: допустимые стили линий: ascii, old-ascii, unicode" -#: command.c:4448 +#: command.c:4537 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий границ: single, double" -#: command.c:4463 +#: command.c:4552 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий столбцов: single, double" -#: command.c:4478 +#: command.c:4567 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: допустимые стили Unicode-линий заголовков: single, double" -#: command.c:4530 +#: command.c:4619 #, c-format msgid "" "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", " @@ -613,12 +664,12 @@ msgstr "" "\\pset: допустимые значения xheader_width: \"%s\" (по умолчанию), \"%s\", " "\"%s\", а также число, задающее точную ширину" -#: command.c:4547 +#: command.c:4636 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: символ csv_fieldsep должен быть однобайтовым" -#: command.c:4552 +#: command.c:4641 #, c-format msgid "" "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage " @@ -627,117 +678,117 @@ msgstr "" "\\pset: в качестве csv_fieldsep нельзя выбрать символ кавычек, новой строки " "или возврата каретки" -#: command.c:4690 command.c:4891 +#: command.c:4779 command.c:4980 #, c-format msgid "\\pset: unknown option: %s" msgstr "неизвестный параметр \\pset: %s" -#: command.c:4710 +#: command.c:4799 #, c-format msgid "Border style is %d.\n" msgstr "Стиль границ: %d.\n" -#: command.c:4716 +#: command.c:4805 #, c-format msgid "Target width is unset.\n" msgstr "Ширина вывода сброшена.\n" -#: command.c:4718 +#: command.c:4807 #, c-format msgid "Target width is %d.\n" msgstr "Ширина вывода: %d.\n" -#: command.c:4725 +#: command.c:4814 #, c-format msgid "Expanded display is on.\n" msgstr "Расширенный вывод включён.\n" -#: command.c:4727 +#: command.c:4816 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Расширенный вывод применяется автоматически.\n" -#: command.c:4729 +#: command.c:4818 #, c-format msgid "Expanded display is off.\n" msgstr "Расширенный вывод выключен.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4825 command.c:4827 command.c:4829 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "Ширина расширенного заголовка: \"%s\".\n" -#: command.c:4742 +#: command.c:4831 #, c-format msgid "Expanded header width is %d.\n" msgstr "Ширина расширенного заголовка: %d.\n" -#: command.c:4748 +#: command.c:4837 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Разделитель полей для CSV: \"%s\".\n" -#: command.c:4756 command.c:4764 +#: command.c:4845 command.c:4853 #, c-format msgid "Field separator is zero byte.\n" msgstr "Разделитель полей - нулевой байт.\n" -#: command.c:4758 +#: command.c:4847 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Разделитель полей: \"%s\".\n" -#: command.c:4771 +#: command.c:4860 #, c-format msgid "Default footer is on.\n" msgstr "Строка итогов включена.\n" -#: command.c:4773 +#: command.c:4862 #, c-format msgid "Default footer is off.\n" msgstr "Строка итогов выключена.\n" -#: command.c:4779 +#: command.c:4868 #, c-format msgid "Output format is %s.\n" msgstr "Формат вывода: %s.\n" -#: command.c:4785 +#: command.c:4874 #, c-format msgid "Line style is %s.\n" msgstr "Установлен стиль линий: %s.\n" -#: command.c:4792 +#: command.c:4881 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null выводится как: \"%s\".\n" -#: command.c:4800 +#: command.c:4889 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Локализованный вывод чисел включён.\n" -#: command.c:4802 +#: command.c:4891 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Локализованный вывод чисел выключен.\n" -#: command.c:4809 +#: command.c:4898 #, c-format msgid "Pager is used for long output.\n" msgstr "Постраничник используется для вывода длинного текста.\n" -#: command.c:4811 +#: command.c:4900 #, c-format msgid "Pager is always used.\n" msgstr "Постраничник используется всегда.\n" -#: command.c:4813 +#: command.c:4902 #, c-format msgid "Pager usage is off.\n" msgstr "Постраничник выключен.\n" -#: command.c:4819 +#: command.c:4908 #, 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" @@ -745,182 +796,182 @@ msgstr[0] "Постраничник не будет использоваться msgstr[1] "Постраничник не будет использоваться, если строк меньше %d\n" msgstr[2] "Постраничник не будет использоваться, если строк меньше %d\n" -#: command.c:4829 command.c:4839 +#: command.c:4918 command.c:4928 #, c-format msgid "Record separator is zero byte.\n" msgstr "Разделитель записей - нулевой байт.\n" -#: command.c:4831 +#: command.c:4920 #, c-format msgid "Record separator is .\n" msgstr "Разделитель записей: <новая строка>.\n" -#: command.c:4833 +#: command.c:4922 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Разделитель записей: \"%s\".\n" -#: command.c:4846 +#: command.c:4935 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Атрибуты HTML-таблицы: \"%s\".\n" -#: command.c:4849 +#: command.c:4938 #, c-format msgid "Table attributes unset.\n" msgstr "Атрибуты HTML-таблицы не заданы.\n" -#: command.c:4856 +#: command.c:4945 #, c-format msgid "Title is \"%s\".\n" msgstr "Заголовок: \"%s\".\n" -#: command.c:4858 +#: command.c:4947 #, c-format msgid "Title is unset.\n" msgstr "Заголовок не задан.\n" -#: command.c:4865 +#: command.c:4954 #, c-format msgid "Tuples only is on.\n" msgstr "Режим вывода только кортежей включён.\n" -#: command.c:4867 +#: command.c:4956 #, c-format msgid "Tuples only is off.\n" msgstr "Режим вывода только кортежей выключен.\n" -#: command.c:4873 +#: command.c:4962 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Стиль Unicode-линий границ: \"%s\".\n" -#: command.c:4879 +#: command.c:4968 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Стиль Unicode-линий столбцов: \"%s\".\n" -#: command.c:4885 +#: command.c:4974 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Стиль Unicode-линий границ: \"%s\".\n" -#: command.c:5134 +#: command.c:5223 #, c-format msgid "\\!: failed" msgstr "\\!: ошибка" -#: command.c:5168 +#: command.c:5261 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch нельзя использовать с пустым запросом" -#: command.c:5200 +#: command.c:5293 #, c-format msgid "could not set timer: %m" msgstr "не удалось установить таймер: %m" -#: command.c:5269 +#: command.c:5362 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (обновление: %g с)\n" -#: command.c:5272 +#: command.c:5365 #, c-format msgid "%s (every %gs)\n" msgstr "%s (обновление: %g с)\n" -#: command.c:5340 +#: command.c:5429 #, c-format msgid "could not wait for signals: %m" msgstr "сбой при ожидании сигналов: %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5485 command.c:5492 common.c:632 common.c:639 common.c:1123 #, c-format msgid "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" msgstr "" -"********* ЗАПРОС *********\n" +"/******** ЗАПРОС ********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" -#: command.c:5584 +#: command.c:5671 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" — не представление" -#: command.c:5600 +#: command.c:5687 #, c-format msgid "could not parse reloptions array" msgstr "не удалось разобрать массив reloptions" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "экранирование строк не работает без подключения к БД" -#: common.c:208 +#: common.c:247 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "" "аргумент команды оболочки содержит символ новой строки или перевода каретки: " "\"%s\"" -#: common.c:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "подключение к серверу было потеряно" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "Подключение к серверу потеряно. Попытка восстановления " -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "неудачна.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "удачна.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "неожиданное значение PQresultStatus: %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "Время: %.3f мс\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Время: %.3f мс (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Время: %.3f мс (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Время: %.3f мс (%.0f д. %02d:%02d:%06.3f)\n" -#: common.c:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, c-format msgid "You are currently not connected to a database." msgstr "В данный момент вы не подключены к базе данных." -#: common.c:674 +#: common.c:714 #, c-format msgid "" "Asynchronous notification \"%s\" with payload \"%s\" received from server " @@ -929,73 +980,79 @@ msgstr "" "Получено асинхронное уведомление \"%s\" с сообщением-нагрузкой \"%s\" от " "серверного процесса с PID %d.\n" -#: common.c:677 +#: common.c:717 #, c-format msgid "" "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "" "Получено асинхронное уведомление \"%s\" от серверного процесса с PID %d.\n" -#: common.c:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "не удалось вывести таблицу результатов: %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "сервер не возвратил строк для \\gset" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "сервер возвратил больше одной строки для \\gset" -#: common.c:751 +#: common.c:791 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "попытка выполнить \\gset со специальной переменной \"%s\" игнорируется" -#: common.c:1063 +#: common.c:1103 #, c-format msgid "" -"***(Single step mode: verify " -"command)*******************************************\n" +"/**(Single step mode: verify " +"command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to " -"cancel)********************\n" +"/**(press return to proceed or enter x and return to " +"cancel)*******************/\n" msgstr "" -"***(Пошаговый режим: проверка " -"команды)******************************************\n" +"/**(Пошаговый режим: проверка " +"команды)*****************************************/\n" "%s\n" -"***(Enter - выполнение; x и Enter - отмена)**************\n" +"/**(Enter - выполнение; x и Enter - " +"отмена)************************************/\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "ОПЕРАТОР: %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "неожиданное состояние транзакции (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "Столбец" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "Тип" -#: common.c:1385 +#: common.c:1412 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "Команда не выдала результат, либо в результате нет столбцов.\n" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "получить результаты в блочном режиме не удалось" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -1011,11 +1068,6 @@ msgstr "\\copy: ошибка разбора аргумента \"%s\"" msgid "\\copy: parse error at end of line" msgstr "\\copy: ошибка разбора в конце строки" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не удалось выполнить команду \"%s\": %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -1053,25 +1105,25 @@ msgstr "" "Вводите данные для копирования, разделяя строки переводом строки.\n" "Закончите ввод строкой '\\.' или сигналом EOF." -#: copy.c:683 +#: copy.c:684 msgid "aborted because of read failure" msgstr "прерывание из-за ошибки чтения" -#: copy.c:717 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "попытка выйти из режима копирования" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview: оператор не возвратил результирующий набор" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview: запрос должен возвращать минимум три столбца" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "" "\\crosstabview: vertical and horizontal headers must be different columns" @@ -1079,7 +1131,7 @@ msgstr "" "\\crosstabview: для вертикальных и горизонтальных заголовков должны " "задаваться разные столбцы" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "" "\\crosstabview: data column must be specified when query returns more than " @@ -1088,12 +1140,12 @@ msgstr "" "\\crosstabview: когда запрос возвращает больше трёх столбцов, необходимо " "указать столбец данных" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview: превышен максимум числа столбцов (%d)" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "" "\\crosstabview: query result contains multiple data values for row \"%s\", " @@ -1102,302 +1154,303 @@ msgstr "" "\\crosstabview: в результатах запроса содержится несколько значений данных " "для строки \"%s\", столбца \"%s\"" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview: номер столбца %d выходит за рамки диапазона 1..%d" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview: неоднозначное имя столбца: \"%s\"" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: имя столбца не найдено: \"%s\"" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "Схема" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "Имя" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "Тип данных результата" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "Типы данных аргументов" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "Описание" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "Список агрегатных функций" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "Сервер (версия %s) не поддерживает методы доступа." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "Индекс" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "Таблица" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "Обработчик" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "Список методов доступа" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "Владелец" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "Расположение" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "Параметры" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "Размер" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "Список табличных пространств" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df принимает в качестве параметров только [anptwS+]" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df не поддерживает параметр \"%c\" с сервером версии %s" # well-spelled: агр #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "агр." -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "оконная" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "проц." # well-spelled: функ -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "функ." -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "триггерная" -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "постоянная" -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "стабильная" -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "изменчивая" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "Изменчивость" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "ограниченная" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "безопасная" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "небезопасная" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "Параллельность" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "определившего" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "вызывающего" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "Безопасность" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "Язык" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "Внутреннее имя" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "Список функций" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "Элементы" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "Список типов данных" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "Тип левого аргумента" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "Тип правого аргумента" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "Результирующий тип" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "Функция" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "Список операторов" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "Кодировка" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "Провайдер локали" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "LC_COLLATE" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "LC_CTYPE" -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "локаль ICU" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "Локаль" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "Правила ICU" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "Табл. пространство" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "Список баз данных" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "таблица" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "представление" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "материализованное представление" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "последовательность" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "сторонняя таблица" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "секционированная таблица" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "Права для столбцов" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "Политики" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "Права доступа" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "функция" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "тип" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "схема" @@ -1429,295 +1482,295 @@ msgstr "семейство операторов" msgid "rule" msgstr "правило" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "Описание объекта" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Отношение \"%s\" не найдено." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "Отношения не найдены." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "Отношение с OID %s не найдено." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "Начальное_значение" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "Минимум" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "Максимум" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "Шаг" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "да" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "нет" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "Зацикливается?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "Кешируется" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "Владелец: %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "Последовательность для столбца идентификации: %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Нежурналируемая последовательность \"%s.%s\"" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Последовательность \"%s.%s\"" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Нежурналируемая таблица \"%s.%s\"" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "Таблица \"%s.%s\"" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "Представление \"%s.%s\"" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "Нежурналируемое материализованное представление \"%s.%s\"" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Материализованное представление \"%s.%s\"" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Нежурналируемый индекс \"%s.%s\"" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "Индекс \"%s.%s\"" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Нежурналируемый секционированный индекс \"%s.%s\"" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Секционированный индекс \"%s.%s\"" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "TOAST-таблица \"%s.%s\"" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Составной тип \"%s.%s\"" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Сторонняя таблица \"%s.%s\"" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Нежурналируемая секционированная таблица \"%s.%s\"" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Секционированная таблица \"%s.%s\"" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "Правило сортировки" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "Допустимость NULL" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "По умолчанию" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "Ключевой?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "Определение" # well-spelled: ОСД -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "Параметры ОСД" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "Хранилище" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "Сжатие" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "Цель для статистики" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "Секция: %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "Нет ограничения секции" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "Ограничение секции: %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "Ключ разбиения: %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Принадлежит таблице: \"%s.%s\"" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "первичный ключ, " -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "уникальный" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " null не различаются" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr ", " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "для таблицы \"%s.%s\"" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", предикат (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", кластеризованный" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", нерабочий" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", откладываемый" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", изначально отложенный" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", репликационный" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "Индексы:" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "Ограничения-проверки:" # TO REWVIEW -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "Ограничения внешнего ключа:" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "Ссылки извне:" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "Политики:" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "Политики (усиленная защита строк включена):" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "Политики (защита строк включена): (Нет)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "Политики (усиленная защита строк включена): (Нет)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "Политики (защита строк выключена):" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "Объекты статистики:" @@ -1737,7 +1790,7 @@ msgstr "Правила, срабатывающие всегда:" msgid "Rules firing on replica only:" msgstr "Правила, срабатывающие только в реплике:" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "Публикации:" @@ -1837,7 +1890,7 @@ msgstr ", табл. пространство \"%s\"" msgid "List of roles" msgstr "Список ролей" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "Имя роли" @@ -1916,370 +1969,370 @@ msgstr "Параметры для роли \"%s\" не найдены." msgid "Did not find any settings." msgstr "Никакие параметры не найдены." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "Список параметров" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "Член ролей" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "Праводатель" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "Список назначений ролей" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "индекс" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "TOAST-таблица" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "секционированный индекс" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "постоянное" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "временное" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "нежурналируемое" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "Хранение" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "Метод доступа" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "Список отношений" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "" "The server (version %s) does not support declarative table partitioning." msgstr "" "Сервер (версия %s) не поддерживает декларативное секционирование таблиц." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "Список секционированных индексов" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "Список секционированных таблиц" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "Список секционированных отношений" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "Имя родителя" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "Размер конечной секции" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "Общий размер" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "Доверенный" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "Внутренний язык" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "Обработчик вызова" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "Функция проверки" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "Обработчик внедрённого кода" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "Список языков" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "Проверка" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "Список доменов" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "Источник" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "Назначение" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "По умолчанию?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "Список преобразований" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "Параметр" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "Значение" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "Контекст" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "Список параметров конфигурации" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "Список изменённых параметров конфигурации" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "Сервер (версия %s) не поддерживает событийные триггеры." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "Событие" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "включён" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "реплика" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "всегда" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "отключён" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "Включён" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "Теги" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "Список событийных триггеров" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "Сервер (версия %s) не поддерживает расширенные статистики." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Зависимости" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "Список расширенных статистик" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Исходный тип" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Целевой тип" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "в присваивании" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Неявное?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "Список приведений типов" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "Провайдер" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "Детерминированное?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "Список правил сортировки" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "Список схем" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "Список анализаторов текстового поиска" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Анализатор текстового поиска \"%s\" не найден." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "Никакие анализаторы текстового поиска не найдены." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "Начало разбора" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "Метод" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "Получение следующего фрагмента" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "Окончание разбора" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "Получение выдержки" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "Получение типов фрагментов" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Анализатор текстового поиска \"%s.%s\"" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "Анализатор текстового поиска \"%s\"" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "Имя фрагмента" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Типы фрагментов для анализатора \"%s.%s\"" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "Типы фрагментов для анализатора \"%s\"" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "Шаблон" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "Параметры инициализации" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "Список словарей текстового поиска" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "Инициализация" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Выделение лексем" -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "Список шаблонов текстового поиска" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "Список конфигураций текстового поиска" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Конфигурация текстового поиска \"%s\" не найдена." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "Никакие конфигурации текстового поиска не найдены." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "Фрагмент" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "Словари" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Конфигурация текстового поиска \"%s.%s\"" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "Конфигурация текстового поиска \"%s\"" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "" "\n" @@ -2288,7 +2341,7 @@ msgstr "" "\n" "Анализатор: \"%s.%s\"" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "" "\n" @@ -2297,265 +2350,273 @@ msgstr "" "\n" "Анализатор: \"%s\"" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "Список обёрток сторонних данных" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "Обёртка сторонних данных" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "Версия" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "Список сторонних серверов" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "Сервер" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "Имя пользователя" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "Список сопоставлений пользователей" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "Список сторонних таблиц" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "Список установленных расширений" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Расширение \"%s\" не найдено." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "Никакие расширения не найдены." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "Описание объекта" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "Объекты в расширении \"%s\"" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неверное полное имя (слишком много компонентов): %s" -#: describe.c:6219 +#: describe.c:6197 #, c-format msgid "cross-database references are not implemented: %s" msgstr "ссылки между базами не реализованы: %s" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "Сервер (версия %s) не поддерживает публикации." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "Все таблицы" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Добавления" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Изменения" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Удаления" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Опустошения" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Через корень" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "Список публикаций" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Публикация \"%s\" не найдена." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "Никакие публикации не найдены." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "Публикация %s" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "Таблицы:" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "Таблицы из схем:" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Сервер (версия %s) не поддерживает подписки." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "Публикация" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "Бинарная" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "Потоковая" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "Двухфазная фиксация" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "Отключается при ошибке" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "Источник" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "Требуется пароль" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "Использовать владельца?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "Переносимая" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "Синхронная фиксация" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "Строка подключения" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "Пропустить LSN" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "Список подписок" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(нет)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "МД" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "Входной тип" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "Тип хранения" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "Класс операторов" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "Семейство операторов" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "Список классов операторов" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Применимые типы" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "Список семейств операторов" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "Оператор" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "Стратегия" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "сортировка" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "поиск" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "Назначение" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "Семейство для сортировки" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "Список операторов из семейств операторов" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "Зарегистрированный левый тип" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "Зарегистрированный правый тип" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "Номер" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "Список опорных функций из семейств операторов" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "Большие объекты" -#: help.c:75 +#: help.c:63 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2563,11 +2624,11 @@ msgstr "" "psql - это интерактивный терминал PostgreSQL.\n" "\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:502 msgid "Usage:\n" msgstr "Использование:\n" -#: help.c:77 +#: help.c:65 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2575,11 +2636,11 @@ msgstr "" " psql [ПАРАМЕТР]... [БД [ПОЛЬЗОВАТЕЛЬ]]\n" "\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "Общие параметры:\n" -#: help.c:84 +#: help.c:68 msgid "" " -c, --command=COMMAND run only single command (SQL or internal) and " "exit\n" @@ -2587,23 +2648,19 @@ msgstr "" " -c, --command=КОМАНДА выполнить одну команду (SQL или внутреннюю) и " "выйти\n" -#: help.c:85 -#, c-format -msgid "" -" -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr "" -" -d, --dbname=БД имя подключаемой базы данных (по умолчанию " -"\"%s\")\n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=БД имя целевой базы данных\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=ИМЯ_ФАЙЛА выполнить команды из файла и выйти\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list вывести список баз данных и выйти\n" -#: help.c:89 +#: help.c:72 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2613,16 +2670,16 @@ msgstr "" " присвоить переменной psql ИМЯ заданное ЗНАЧЕНИЕ\n" " (например: -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: help.c:93 +#: help.c:76 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr "" " -X, --no-psqlrc игнорировать файл параметров запуска (~/.psqlrc)\n" -#: help.c:94 +#: help.c:77 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-" @@ -2632,20 +2689,20 @@ msgstr "" " выполнить как одну транзакцию\n" " (в неинтерактивном режиме)\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=options] показать эту справку и выйти\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands перечислить команды с \\ и выйти\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr "" " --help=variables перечислить специальные переменные и выйти\n" -#: help.c:100 +#: help.c:83 msgid "" "\n" "Input and output options:\n" @@ -2653,54 +2710,54 @@ msgstr "" "\n" "Параметры ввода/вывода:\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all отображать все команды из скрипта\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors отображать команды с ошибками\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries отображать команды, отправляемые серверу\n" -#: help.c:104 +#: help.c:87 msgid "" " -E, --echo-hidden display queries that internal commands generate\n" msgstr "" " -E, --echo-hidden выводить запросы, порождённые внутренними " "командами\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=ИМЯ_ФАЙЛА сохранять протокол работы в файл\n" -#: help.c:106 +#: help.c:89 msgid "" " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr "" " -n, --no-readline отключить редактор командной строки readline\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr "" " -o, --output=ИМЯ_ФАЙЛА направить результаты запроса в файл (или канал " "|)\n" -#: help.c:108 +#: help.c:91 msgid "" " -q, --quiet run quietly (no messages, only query output)\n" msgstr "" " -q, --quiet показывать только результаты запросов, без " "сообщений\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr "" " -s, --single-step пошаговый режим (подтверждение каждого запроса)\n" -#: help.c:110 +#: help.c:93 msgid "" " -S, --single-line single-line mode (end of line terminates SQL " "command)\n" @@ -2708,7 +2765,7 @@ msgstr "" " -S, --single-line однострочный режим (конец строки завершает " "команду)\n" -#: help.c:112 +#: help.c:95 msgid "" "\n" "Output format options:\n" @@ -2716,11 +2773,11 @@ msgstr "" "\n" "Параметры вывода:\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align режим вывода невыровненной таблицы\n" -#: help.c:114 +#: help.c:97 msgid "" " --csv CSV (Comma-Separated Values) table output mode\n" msgstr "" @@ -2728,7 +2785,7 @@ msgstr "" "разделённые\n" " запятыми)\n" -#: help.c:115 +#: help.c:98 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2739,11 +2796,11 @@ msgstr "" " разделителей полей при невыровненном выводе\n" " (по умолчанию: \"%s\")\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html вывод таблицы в формате HTML\n" -#: help.c:119 +#: help.c:102 msgid "" " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset " "command)\n" @@ -2752,7 +2809,7 @@ msgstr "" "ЗНАЧЕНИЕМ)\n" " (см. описание \\pset)\n" -#: help.c:120 +#: help.c:103 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: " @@ -2762,22 +2819,22 @@ msgstr "" " разделитель записей при невыровненном выводе\n" " (по умолчанию: новая строка)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only выводить только кортежи\n" -#: help.c:123 +#: help.c:106 msgid "" " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, " "border)\n" msgstr "" " -T, --table-attr=ТЕКСТ установить атрибуты HTML-таблицы (width, border)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded включить развёрнутый вывод таблицы\n" -#: help.c:125 +#: help.c:108 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero " @@ -2787,7 +2844,7 @@ msgstr "" " сделать разделителем полей при невыровненном\n" " выводе нулевой байт\n" -#: help.c:127 +#: help.c:110 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero " @@ -2797,7 +2854,7 @@ msgstr "" " сделать разделителем записей при невыровненном\n" " нулевой байт\n" -#: help.c:130 +#: help.c:113 msgid "" "\n" "Connection options:\n" @@ -2805,42 +2862,32 @@ msgstr "" "\n" "Параметры подключения:\n" -#: help.c:133 -#, c-format -msgid "" -" -h, --host=HOSTNAME database server host or socket directory " -"(default: \"%s\")\n" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" -" (по умолчанию: \"%s\")\n" - -#: help.c:134 -msgid "local socket" -msgstr "локальный сокет" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" -#: help.c:137 -#, c-format -msgid " -p, --port=PORT database server port (default: \"%s\")\n" -msgstr "" -" -p, --port=ПОРТ порт сервера баз данных (по умолчанию: \"%s\")\n" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=ПОРТ порт сервера баз данных\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr " -U, --username=ИМЯ имя пользователя (по умолчанию: \"%s\")\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=ИМЯ имя пользователя БД\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: help.c:143 +#: help.c:118 msgid "" " -W, --password force password prompt (should happen " "automatically)\n" msgstr "" " -W, --password запрашивать пароль всегда (обычно не требуется)\n" -#: help.c:145 +#: help.c:120 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or " @@ -2856,40 +2903,40 @@ msgstr "" "документации PostgreSQL.\n" "\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Об ошибках сообщайте по адресу <%s>.\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "Общие\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [ПАРАМЕТР]... задать параметры запроса\n" # skip-rule: copyright -#: help.c:193 +#: help.c:168 msgid "" " \\copyright show PostgreSQL usage and distribution terms\n" msgstr "" " \\copyright условия использования и распространения " "PostgreSQL\n" -#: help.c:194 +#: help.c:169 msgid "" " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr "" " \\crosstabview [СТОЛБЦЫ] выполнить запрос и вывести результат в " "перекрёстном виде\n" -#: help.c:195 +#: help.c:170 msgid "" " \\errverbose show most recent error message at maximum " "verbosity\n" @@ -2897,7 +2944,7 @@ msgstr "" " \\errverbose вывести максимально подробное сообщение о " "последней ошибке\n" -#: help.c:196 +#: help.c:171 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2906,13 +2953,13 @@ msgstr "" " или канал |); \\g без аргументов равнозначно \";" "\"\n" -#: help.c:198 +#: help.c:173 msgid "" " \\gdesc describe result of query, without executing it\n" msgstr "" " \\gdesc описать результат запроса, но не выполнять его\n" -#: help.c:199 +#: help.c:174 msgid "" " \\gexec execute query, then execute each value in its " "result\n" @@ -2920,7 +2967,7 @@ msgstr "" " \\gexec выполнить запрос, а затем выполнить каждую строку " "в результате\n" -#: help.c:200 +#: help.c:175 msgid "" " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr "" @@ -2928,56 +2975,60 @@ msgstr "" "переменных\n" " psql\n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr "" " \\gx [(ПАРАМЕТРЫ)] [ФАЙЛ] то же, что \\g, но в режиме развёрнутого вывода\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q выйти из psql\n" -#: help.c:203 +#: help.c:178 msgid "" -" \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" msgstr "" -" \\watch [[i=]СЕК] [c=N] повторять запрос через заданное число секунд, не\n" -" более N раз\n" +" \\watch [[i=]СЕК] [c=N] [m=MIN]\n" +" повторять запрос через заданное число секунд, не " +"более\n" +" N раз, остановиться, если получено менее MIN строк\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "Справка\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] справка по командам psql c \\\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr "" " \\? options справка по параметрам командной строки psql\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables справка по специальным переменным\n" -#: help.c:211 +#: help.c:188 msgid "" " \\h [NAME] help on syntax of SQL commands, * for all " "commands\n" msgstr "" " \\h [ИМЯ] справка по заданному SQL-оператору; * - по всем\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "Буфер запроса\n" -#: help.c:215 +#: help.c:192 msgid "" " \\e [FILE] [LINE] edit the query buffer (or file) with external " "editor\n" @@ -2985,45 +3036,45 @@ msgstr "" " \\e [ФАЙЛ] [СТРОКА] править буфер запроса (или файл) во внешнем " "редакторе\n" -#: help.c:216 +#: help.c:193 msgid "" " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr "" " \\ef [ФУНКЦИЯ [СТРОКА]] править определение функции во внешнем редакторе\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr "" " \\ev [VIEWNAME [LINE]] править определение представления во внешнем " "редакторе\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p вывести содержимое буфера запросов\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r очистить буфер запроса\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [ФАЙЛ] вывести историю или сохранить её в файл\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr " \\w ФАЙЛ записать буфер запроса в файл\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "Ввод/Вывод\n" -#: help.c:227 +#: help.c:204 msgid "" " \\copy ... perform SQL COPY with data stream to the client " "host\n" msgstr " \\copy ... выполнить SQL COPY на стороне клиента\n" -#: help.c:228 +#: help.c:205 msgid "" " \\echo [-n] [STRING] write string to standard output (-n for no " "newline)\n" @@ -3031,11 +3082,11 @@ msgstr "" " \\echo [-n] [СТРОКА] записать строку в поток стандартного вывода\n" " (-n отключает перевод строки)\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i ФАЙЛ выполнить команды из файла\n" -#: help.c:230 +#: help.c:207 msgid "" " \\ir FILE as \\i, but relative to location of current " "script\n" @@ -3043,13 +3094,13 @@ msgstr "" " \\ir ФАЙЛ подобно \\i, но путь задаётся относительно\n" " текущего скрипта\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr "" " \\o [ФАЙЛ] выводить все результаты запросов в файл или канал " "|\n" -#: help.c:232 +#: help.c:209 msgid "" " \\qecho [-n] [STRING] write string to \\o output stream (-n for no " "newline)\n" @@ -3057,7 +3108,7 @@ msgstr "" " \\qecho [-n] [СТРОКА] записать строку в выходной поток \\o\n" " (-n отключает перевод строки)\n" -#: help.c:233 +#: help.c:210 msgid "" " \\warn [-n] [STRING] write string to standard error (-n for no " "newline)\n" @@ -3065,136 +3116,136 @@ msgstr "" " \\warn [-n] [СТРОКА] записать строку в поток вывода ошибок\n" " (-n отключает перевод строки)\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "Условия\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if ВЫРАЖЕНИЕ начало блока условия\n" -#: help.c:238 +#: help.c:215 msgid "" " \\elif EXPR alternative within current conditional block\n" msgstr "" " \\elif ВЫРАЖЕНИЕ альтернативная ветвь в текущем блоке условия\n" -#: help.c:239 +#: help.c:216 msgid "" " \\else final alternative within current conditional " "block\n" msgstr "" " \\else окончательная ветвь в текущем блоке условия\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif конец блока условия\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "Информационные\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr "" " (дополнения: S = показывать системные объекты, + = дополнительные " "подробности)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr "" " \\d[S+] список таблиц, представлений и " "последовательностей\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr "" " \\d[S+] ИМЯ описание таблицы, представления, " "последовательности\n" " или индекса\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [МАСКА] список агрегатных функций\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [МАСКА] список методов доступа\n" # well-spelled: МСК -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [МСК_МД [МСК_ТИПА]] список классов операторов\n" # well-spelled: МСК -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [МСК_МД [МСК_ТИПА]] список семейств операторов\n" # well-spelled: МСК -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr "" " \\dAo[+] [МСК_МД [МСК_СОП]] список операторов из семейств операторов\n" # well-spelled: МСК -#: help.c:252 +#: help.c:229 msgid "" " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [МСК_МД [МСК_СОП]] список опорных функций из семейств\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [МАСКА] список табличных пространств\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [МАСКА] список преобразований\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [МАСКА] список параметров конфигурации\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [МАСКА] список приведений типов\n" -#: help.c:257 +#: help.c:234 msgid "" " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr "" " \\dd[S] [МАСКА] описания объектов, не выводимые в других режимах\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [МАСКА] список доменов\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [МАСКА] список прав по умолчанию\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [МАСКА] список сторонних таблиц\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [МАСКА] список сторонних серверов\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\det[+] [МАСКА] список сторонних таблиц\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [МАСКА] список сопоставлений пользователей\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [МАСКА] список обёрток сторонних данных\n" # well-spelled: МСК, ФУНК -#: help.c:265 +#: help.c:242 msgid "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] " @@ -3204,49 +3255,49 @@ msgstr "" " список функций [только агрегатных/обычных/процедур/" "триггеров/оконных]\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [МАСКА] список конфигураций текстового поиска\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [МАСКА] список словарей текстового поиска\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [МАСКА] список анализаторов текстового поиска\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [МАСКА] список шаблонов текстового поиска\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [МАСКА] список ролей\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [МАСКА] список индексов\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr "" " \\dl[+] список больших объектов (то же, что и \\lo_list)\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [МАСКА] список языков процедур\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [МАСКА] список материализованных представлений\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [МАСКА] список схем\n" # well-spelled: МСК -#: help.c:277 +#: help.c:254 msgid "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" @@ -3254,18 +3305,18 @@ msgstr "" " \\do[S+] [МСК_ОП [МСК_ТИПА [МСК_ТИПА]]]\n" " список операторов\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [МАСКА] список правил сортировки\n" -#: help.c:280 +#: help.c:257 msgid "" " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr "" " \\dp[S] [МАСКА] список прав доступа к таблицам, представлениям и\n" " последовательностям\n" -#: help.c:281 +#: help.c:258 msgid "" " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations " "[n=nested]\n" @@ -3275,80 +3326,80 @@ msgstr "" "(n)\n" # well-spelled: МСК -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr " \\drds [МСК_РОЛИ [МСК_БД]] список параметров роли на уровне БД\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\drg[S] [МАСКА] список назначений ролей\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [МАСКА] список публикаций для репликации\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [МАСКА] список подписок на репликацию\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [МАСКА] список последовательностей\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [МАСКА] список таблиц\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [МАСКА] список типов данных\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [МАСКА] список ролей\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [МАСКА] список представлений\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [МАСКА] список расширений\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [МАСКА] список расширенных статистик\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [МАСКА] список событийных триггеров\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [МАСКА] список баз данных\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] ИМЯ_ФУНКЦИИ показать определение функции\n" # well-spelled: ПРЕДСТ -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] ИМЯ_ПРЕДСТ показать определение представления\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [МАСКА] то же, что и \\dp\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "Большие объекты\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export OID_БО ФАЙЛ записать большой объект в файл\n" -#: help.c:302 +#: help.c:279 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3356,32 +3407,32 @@ msgstr "" " \\lo_import ФАЙЛ [КОММЕНТАРИЙ]\n" " прочитать большой объект из файла\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] список больших объектов\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink OID_БО удалить большой объект\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "Форматирование\n" -#: help.c:309 +#: help.c:286 msgid "" " \\a toggle between unaligned and aligned output mode\n" msgstr "" " \\a переключение режимов вывода:\n" " неформатированный/выровненный\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr "" " \\C [СТРОКА] задать заголовок таблицы или убрать, если не " "задан\n" -#: help.c:311 +#: help.c:288 msgid "" " \\f [STRING] show or set field separator for unaligned query " "output\n" @@ -3389,13 +3440,13 @@ msgstr "" " \\f [СТРОКА] показать или установить разделитель полей для\n" " неформатированного вывода\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr "" " \\H переключить режим вывода в HTML (текущий: %s)\n" -#: help.c:314 +#: help.c:291 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3403,7 +3454,7 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [ИМЯ [ЗНАЧЕНИЕ]] установить параметр вывода таблицы\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3411,91 +3462,91 @@ msgstr "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] режим вывода только строк (сейчас: %s)\n" -#: help.c:323 +#: help.c:300 msgid "" " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr "" " \\T [СТРОКА] задать атрибуты для
или убрать, если не " "заданы\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr "" -" \\x [on|off|auto] переключить режим расширенного вывода (сейчас: " +" \\x [on|off|auto] переключить режим развёрнутого вывода (сейчас: " "%s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "auto" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "Соединение\n" -#: help.c:330 +#: help.c:307 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently \"%s\")\n" msgstr "" -" \\c[onnect] {[БД|- ПОЛЬЗОВАТЕЛЬ|- СЕРВЕР|- ПОРТ|-] | conninfo}\n" +" \\c[onnect] {[БД|- ПОЛЬЗОВАТЕЛЬ|- КОМПЬЮТЕР|- ПОРТ|-] | conninfo}\n" " подключиться к другой базе данных\n" " (текущая: \"%s\")\n" -#: help.c:334 +#: help.c:311 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" msgstr "" -" \\c[onnect] {[БД|- ПОЛЬЗОВАТЕЛЬ|- СЕРВЕР|- ПОРТ|-] | conninfo}\n" +" \\c[onnect] {[БД|- ПОЛЬЗОВАТЕЛЬ|- КОМПЬЮТЕР|- ПОРТ|-] | conninfo}\n" " подключиться к другой базе данных\n" " (сейчас подключения нет)\n" -#: help.c:336 +#: help.c:313 msgid "" " \\conninfo display information about current connection\n" msgstr " \\conninfo информация о текущем соединении\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [КОДИРОВКА] показать/установить клиентскую кодировку\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [ИМЯ] безопасно сменить пароль пользователя\n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "Операционная система\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [ПУТЬ] сменить текущий каталог\n" # well-spelled: ОКР -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv ПЕР_PSQL ПЕР_ОКР прочитать переменную окружения\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr "" " \\setenv ИМЯ [ЗНАЧЕНИЕ] установить или сбросить переменную окружения\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] включить/выключить секундомер (сейчас: %s)\n" -#: help.c:347 +#: help.c:324 msgid "" " \\! [COMMAND] execute command in shell or start interactive " "shell\n" @@ -3503,17 +3554,17 @@ msgstr "" " \\! [КОМАНДА] выполнить команду в командной оболочке\n" " или запустить интерактивную оболочку\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "Переменные\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr "" " \\prompt [ТЕКСТ] ИМЯ предложить пользователю задать внутреннюю " "переменную\n" -#: help.c:352 +#: help.c:329 msgid "" " \\set [NAME [VALUE]] set internal variable, or list all if no " "parameters\n" @@ -3521,11 +3572,11 @@ msgstr "" " \\set [ИМЯ [ЗНАЧЕНИЕ]] установить внутреннюю переменную или вывести все,\n" " если имя не задано\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset ИМЯ сбросить (удалить) внутреннюю переменную\n" -#: help.c:392 +#: help.c:369 msgid "" "List of specially treated variables\n" "\n" @@ -3533,11 +3584,11 @@ msgstr "" "Список специальных переменных\n" "\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "Переменные psql:\n" -#: help.c:396 +#: help.c:373 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3547,7 +3598,7 @@ msgstr "" " или \\set ИМЯ ЗНАЧЕНИЕ в приглашении psql\n" "\n" -#: help.c:398 +#: help.c:375 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3555,7 +3606,7 @@ msgstr "" " AUTOCOMMIT\n" " если установлен, успешные SQL-команды фиксируются автоматически\n" -#: help.c:400 +#: help.c:377 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3567,7 +3618,7 @@ msgstr "" " preserve-lower (сохранять нижний),\n" " preserve-upper (сохранять верхний)]\n" -#: help.c:403 +#: help.c:380 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3575,7 +3626,7 @@ msgstr "" " DBNAME\n" " имя текущей подключённой базы данных\n" -#: help.c:405 +#: help.c:382 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3586,7 +3637,7 @@ msgstr "" " [all (всё), errors (ошибки), none (ничего),\n" " queries (запросы)]\n" -#: help.c:408 +#: help.c:385 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3596,7 +3647,7 @@ msgstr "" " если включено, выводит внутренние запросы, порождаемые командами с \\;\n" " если установлено значение \"noexec\", они выводятся, но не выполняются\n" -#: help.c:411 +#: help.c:388 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3604,7 +3655,7 @@ msgstr "" " ENCODING\n" " текущая кодировка клиентского набора символов\n" -#: help.c:413 +#: help.c:390 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3612,7 +3663,7 @@ msgstr "" " ERROR\n" " \"true\" в случае ошибки в последнем запросе, иначе — \"false\"\n" -#: help.c:415 +#: help.c:392 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = " @@ -3622,7 +3673,7 @@ msgstr "" " число результирующих строк, извлекаемых и отображаемых за раз\n" " (0 = без ограничений)\n" -#: help.c:417 +#: help.c:394 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3630,7 +3681,7 @@ msgstr "" " HIDE_TABLEAM\n" " если установлено, табличные методы доступа не выводятся\n" -#: help.c:419 +#: help.c:396 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3638,7 +3689,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " если установлено, методы сжатия не выводятся\n" -#: help.c:421 +#: help.c:398 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3647,7 +3698,7 @@ msgstr "" " управляет историей команд [ignorespace (игнорировать пробелы),\n" " ignoredups (игнорировать дубли), ignoreboth (и то, и другое)]\n" -#: help.c:423 +#: help.c:400 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3655,7 +3706,7 @@ msgstr "" " HISTFILE\n" " имя файла, в котором будет сохраняться история команд\n" -#: help.c:425 +#: help.c:402 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3663,15 +3714,15 @@ msgstr "" " HISTSIZE\n" " максимальное число команд, сохраняемых в истории\n" -#: help.c:427 +#: help.c:404 msgid "" " HOST\n" " the currently connected database server host\n" msgstr "" " HOST\n" -" сервер баз данных, к которому установлено подключение\n" +" компьютер с сервером баз данных, к которому установлено подключение\n" -#: help.c:429 +#: help.c:406 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3679,7 +3730,7 @@ msgstr "" " IGNOREEOF\n" " количество EOF для завершения интерактивного сеанса\n" -#: help.c:431 +#: help.c:408 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3687,7 +3738,7 @@ msgstr "" " LASTOID\n" " значение последнего задействованного OID\n" -#: help.c:433 +#: help.c:410 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3700,7 +3751,7 @@ msgstr "" "\"00000\",\n" " если ошибки не было\n" -#: help.c:436 +#: help.c:413 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3709,7 +3760,7 @@ msgstr "" " если установлено, транзакция не прекращается при ошибке\n" " (используются неявные точки сохранения)\n" -#: help.c:438 +#: help.c:415 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3717,7 +3768,7 @@ msgstr "" " ON_ERROR_STOP\n" " останавливать выполнение пакета команд после ошибки\n" -#: help.c:440 +#: help.c:417 msgid "" " PORT\n" " server port of the current connection\n" @@ -3725,7 +3776,7 @@ msgstr "" " PORT\n" " порт сервера для текущего соединения\n" -#: help.c:442 +#: help.c:419 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3733,7 +3784,7 @@ msgstr "" " PROMPT1\n" " устанавливает стандартное приглашение psql\n" -#: help.c:444 +#: help.c:421 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous " @@ -3743,7 +3794,7 @@ msgstr "" " устанавливает приглашение, которое выводится при переносе оператора\n" " на новую строку\n" -#: help.c:446 +#: help.c:423 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3751,7 +3802,7 @@ msgstr "" " PROMPT3\n" " устанавливает приглашение для выполнения COPY ... FROM STDIN\n" -#: help.c:448 +#: help.c:425 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3759,7 +3810,7 @@ msgstr "" " QUIET\n" " выводить минимум сообщений (как и с параметром -q)\n" -#: help.c:450 +#: help.c:427 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3768,7 +3819,7 @@ msgstr "" " число строк, возвращённых или обработанных последним SQL-запросом, либо " "0\n" -#: help.c:452 +#: help.c:429 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3778,7 +3829,7 @@ msgstr "" " SERVER_VERSION_NUM\n" " версия сервера (в коротком текстовом и числовом формате)\n" -#: help.c:455 +#: help.c:432 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3787,7 +3838,7 @@ msgstr "" " \"true\" в случае ошибки последней команды оболочки, \"false\" в ином " "случае\n" -#: help.c:457 +#: help.c:434 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3795,7 +3846,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " код завершения последней команды оболочки\n" -#: help.c:459 +#: help.c:436 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3804,7 +3855,7 @@ msgstr "" " выводить все результаты объединённых запросов (\\;), а не только " "последнего\n" -#: help.c:461 +#: help.c:438 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3813,7 +3864,7 @@ msgstr "" " управляет отображением полей контекста сообщений\n" " [never (не отображать никогда), errors (ошибки), always (всегда]\n" -#: help.c:463 +#: help.c:440 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3822,7 +3873,7 @@ msgstr "" " если установлено, конец строки завершает режим ввода SQL-команды\n" " (как и с параметром -S)\n" -#: help.c:465 +#: help.c:442 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3830,7 +3881,7 @@ msgstr "" " SINGLESTEP\n" " пошаговый режим (как и с параметром -s)\n" -#: help.c:467 +#: help.c:444 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3839,7 +3890,7 @@ msgstr "" " SQLSTATE последнего запроса или \"00000\", если он выполнился без " "ошибок\n" -#: help.c:469 +#: help.c:446 msgid "" " USER\n" " the currently connected database user\n" @@ -3847,7 +3898,7 @@ msgstr "" " USER\n" " текущий пользователь, подключённый к БД\n" -#: help.c:471 +#: help.c:448 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3856,7 +3907,7 @@ msgstr "" " управляет детализацией отчётов об ошибках [default (по умолчанию),\n" " verbose (подробно), terse (кратко), sqlstate (код состояния)]\n" -#: help.c:473 +#: help.c:450 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3868,7 +3919,7 @@ msgstr "" " VERSION_NUM\n" " версия psql (в развёрнутом, в коротком текстовом и в числовом формате)\n" -#: help.c:478 +#: help.c:455 msgid "" "\n" "Display settings:\n" @@ -3876,7 +3927,7 @@ msgstr "" "\n" "Параметры отображения:\n" -#: help.c:480 +#: help.c:457 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3886,7 +3937,7 @@ msgstr "" " или \\pset ИМЯ [ЗНАЧЕНИЕ] в приглашении psql\n" "\n" -#: help.c:482 +#: help.c:459 msgid "" " border\n" " border style (number)\n" @@ -3894,7 +3945,7 @@ msgstr "" " border\n" " стиль границы (число)\n" -#: help.c:484 +#: help.c:461 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3902,15 +3953,15 @@ msgstr "" " columns\n" " целевая ширина для формата с переносом\n" -#: help.c:486 +#: help.c:463 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" msgstr "" " expanded (или x)\n" -" расширенный вывод [on (вкл.), off (выкл.), auto (авто)]\n" +" развёрнутый вывод [on (вкл.), off (выкл.), auto (авто)]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid "" " fieldsep\n" @@ -3919,7 +3970,7 @@ msgstr "" " fieldsep\n" " разделитель полей для неформатированного вывода (по умолчанию \"%s\")\n" -#: help.c:491 +#: help.c:468 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3927,7 +3978,7 @@ msgstr "" " fieldsep_zero\n" " устанавливает ноль разделителем полей при неформатированном выводе\n" -#: help.c:493 +#: help.c:470 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3935,7 +3986,7 @@ msgstr "" " footer\n" " включает или выключает вывод подписей таблицы [on (вкл.), off (выкл.)]\n" -#: help.c:495 +#: help.c:472 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3945,7 +3996,7 @@ msgstr "" "\n" " aligned (выровненный), wrapped (с переносом), html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3953,7 +4004,7 @@ msgstr "" " linestyle\n" " задаёт стиль рисования линий границы [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3961,7 +4012,7 @@ msgstr "" " null\n" " устанавливает строку, выводимую вместо значения NULL\n" -#: help.c:501 +#: help.c:478 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of " @@ -3970,7 +4021,7 @@ msgstr "" " numericlocale\n" " отключает вывод заданного локалью разделителя группы цифр\n" -#: help.c:503 +#: help.c:480 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3979,7 +4030,7 @@ msgstr "" " определяет, используется ли внешний постраничник\n" " [yes (да), no (нет), always (всегда)]\n" -#: help.c:505 +#: help.c:482 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3987,7 +4038,7 @@ msgstr "" " recordsep\n" " разделитель записей (строк) при неформатированном выводе\n" -#: help.c:507 +#: help.c:484 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3995,7 +4046,7 @@ msgstr "" " recordsep_zero\n" " устанавливает ноль разделителем записей при неформатированном выводе\n" -#: help.c:509 +#: help.c:486 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -4005,7 +4056,7 @@ msgstr "" " задаёт атрибуты для тега table в формате html или пропорциональные\n" " ширины столбцов для выровненных влево данных, в формате latex-longtable\n" -#: help.c:512 +#: help.c:489 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -4013,7 +4064,7 @@ msgstr "" " title\n" " задаёт заголовок таблицы для последовательно печатаемых таблиц\n" -#: help.c:514 +#: help.c:491 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -4021,7 +4072,7 @@ msgstr "" " tuples_only\n" " если установлено, выводятся только непосредственно табличные данные\n" -#: help.c:516 +#: help.c:493 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -4034,7 +4085,17 @@ msgstr "" " задаёт стиль рисуемых линий Unicode [single (одинарные), double " "(двойные)]\n" -#: help.c:521 +#: help.c:497 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" задаёт максимальную ширину заголовка для развёрнутого вывода\n" +" [full (полностью), column (столбец), page (страница), целое значение]\n" + +#: help.c:501 msgid "" "\n" "Environment variables:\n" @@ -4042,7 +4103,7 @@ msgstr "" "\n" "Переменные окружения:\n" -#: help.c:525 +#: help.c:505 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -4052,7 +4113,7 @@ msgstr "" " или \\setenv ИМЯ [ЗНАЧЕНИЕ] в приглашении psql\n" "\n" -#: help.c:527 +#: help.c:507 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -4064,7 +4125,7 @@ msgstr "" " или \\setenv ИМЯ ЗНАЧЕНИЕ в приглашении psql\n" "\n" -#: help.c:530 +#: help.c:510 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -4072,7 +4133,7 @@ msgstr "" " COLUMNS\n" " число столбцов для форматирования с переносом\n" -#: help.c:532 +#: help.c:512 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -4080,7 +4141,7 @@ msgstr "" " PGAPPNAME\n" " синоним параметра подключения application_name\n" -#: help.c:534 +#: help.c:514 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -4088,7 +4149,7 @@ msgstr "" " PGDATABASE\n" " синоним параметра подключения dbname\n" -#: help.c:536 +#: help.c:516 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -4096,7 +4157,7 @@ msgstr "" " PGHOST\n" " синоним параметра подключения host\n" -#: help.c:538 +#: help.c:518 msgid "" " PGPASSFILE\n" " password file name\n" @@ -4104,7 +4165,7 @@ msgstr "" " PGPASSFILE\n" " имя файла с паролем\n" -#: help.c:540 +#: help.c:520 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -4112,7 +4173,7 @@ msgstr "" " PGPASSWORD\n" " пароль для подключения (использовать не рекомендуется)\n" -#: help.c:542 +#: help.c:522 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -4120,7 +4181,7 @@ msgstr "" " PGPORT\n" " синоним параметра подключения port\n" -#: help.c:544 +#: help.c:524 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -4128,7 +4189,7 @@ msgstr "" " PGUSER\n" " синоним параметра подключения user\n" -#: help.c:546 +#: help.c:526 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -4136,7 +4197,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " редактор, вызываемый командами \\e, \\ef и \\ev\n" -#: help.c:548 +#: help.c:528 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -4144,7 +4205,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " определяет способ передачи номера строки при вызове редактора\n" -#: help.c:550 +#: help.c:530 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -4152,7 +4213,7 @@ msgstr "" " PSQL_HISTORY\n" " альтернативное размещение файла с историей команд\n" -#: help.c:552 +#: help.c:532 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -4160,7 +4221,7 @@ msgstr "" " PSQL_PAGER, PAGER\n" " имя программы внешнего постраничника\n" -#: help.c:555 +#: help.c:535 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -4168,7 +4229,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " имя программы внешнего постраничника для \\watch\n" -#: help.c:558 +#: help.c:538 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -4176,7 +4237,7 @@ msgstr "" " PSQLRC\n" " альтернативное размещение пользовательского файла .psqlrc\n" -#: help.c:560 +#: help.c:540 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -4184,7 +4245,7 @@ msgstr "" " SHELL\n" " оболочка, вызываемая командой \\!\n" -#: help.c:562 +#: help.c:542 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -4192,11 +4253,11 @@ msgstr "" " TMPDIR\n" " каталог для временных файлов\n" -#: help.c:622 +#: help.c:602 msgid "Available help:\n" msgstr "Имеющаяся справка:\n" -#: help.c:717 +#: help.c:697 #, c-format msgid "" "Command: %s\n" @@ -4215,7 +4276,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:740 +#: help.c:720 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4224,17 +4285,17 @@ msgstr "" "Нет справки по команде \"%s\".\n" "Попробуйте \\h без аргументов и посмотрите, что есть.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "не удалось прочитать входной файл: %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "не удалось сохранить историю в файле \"%s\": %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "в данной среде история не поддерживается" @@ -4327,12 +4388,12 @@ msgstr "" msgid "reached EOF without finding closing \\endif(s)" msgstr "в закончившемся потоке команд не хватает \\endif" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s: нехватка памяти" @@ -4340,202 +4401,202 @@ msgstr "%s: нехватка памяти" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:240 -#: sql_help.c:242 sql_help.c:243 sql_help.c:245 sql_help.c:247 sql_help.c:250 -#: sql_help.c:252 sql_help.c:254 sql_help.c:256 sql_help.c:268 sql_help.c:269 -#: sql_help.c:270 sql_help.c:272 sql_help.c:321 sql_help.c:323 sql_help.c:325 -#: sql_help.c:327 sql_help.c:396 sql_help.c:401 sql_help.c:403 sql_help.c:445 -#: sql_help.c:447 sql_help.c:450 sql_help.c:452 sql_help.c:521 sql_help.c:526 -#: sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:595 sql_help.c:597 -#: sql_help.c:599 sql_help.c:601 sql_help.c:603 sql_help.c:606 sql_help.c:608 -#: sql_help.c:611 sql_help.c:622 sql_help.c:624 sql_help.c:668 sql_help.c:670 -#: sql_help.c:672 sql_help.c:675 sql_help.c:677 sql_help.c:679 sql_help.c:716 -#: sql_help.c:720 sql_help.c:724 sql_help.c:743 sql_help.c:746 sql_help.c:749 -#: sql_help.c:778 sql_help.c:790 sql_help.c:798 sql_help.c:801 sql_help.c:804 -#: sql_help.c:819 sql_help.c:822 sql_help.c:851 sql_help.c:856 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:898 sql_help.c:900 sql_help.c:902 -#: sql_help.c:904 sql_help.c:907 sql_help.c:909 sql_help.c:956 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1040 sql_help.c:1051 sql_help.c:1053 sql_help.c:1073 -#: sql_help.c:1083 sql_help.c:1084 sql_help.c:1086 sql_help.c:1088 -#: sql_help.c:1100 sql_help.c:1104 sql_help.c:1106 sql_help.c:1118 -#: sql_help.c:1120 sql_help.c:1122 sql_help.c:1124 sql_help.c:1143 -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 sql_help.c:1157 -#: sql_help.c:1160 sql_help.c:1161 sql_help.c:1162 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1170 sql_help.c:1309 sql_help.c:1311 -#: sql_help.c:1314 sql_help.c:1317 sql_help.c:1319 sql_help.c:1321 -#: sql_help.c:1324 sql_help.c:1327 sql_help.c:1447 sql_help.c:1449 -#: sql_help.c:1451 sql_help.c:1454 sql_help.c:1475 sql_help.c:1478 -#: sql_help.c:1481 sql_help.c:1484 sql_help.c:1488 sql_help.c:1490 -#: sql_help.c:1492 sql_help.c:1494 sql_help.c:1508 sql_help.c:1511 -#: sql_help.c:1513 sql_help.c:1515 sql_help.c:1525 sql_help.c:1527 -#: sql_help.c:1537 sql_help.c:1539 sql_help.c:1549 sql_help.c:1552 -#: sql_help.c:1575 sql_help.c:1577 sql_help.c:1579 sql_help.c:1581 -#: sql_help.c:1584 sql_help.c:1586 sql_help.c:1589 sql_help.c:1592 -#: sql_help.c:1643 sql_help.c:1686 sql_help.c:1689 sql_help.c:1691 -#: sql_help.c:1693 sql_help.c:1696 sql_help.c:1698 sql_help.c:1700 -#: sql_help.c:1703 sql_help.c:1755 sql_help.c:1771 sql_help.c:2004 -#: sql_help.c:2073 sql_help.c:2092 sql_help.c:2105 sql_help.c:2163 -#: sql_help.c:2171 sql_help.c:2181 sql_help.c:2208 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4047 -#: sql_help.c:4161 sql_help.c:4190 sql_help.c:4206 sql_help.c:4208 -#: sql_help.c:4711 sql_help.c:4759 sql_help.c:4917 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:245 +#: sql_help.c:247 sql_help.c:248 sql_help.c:250 sql_help.c:252 sql_help.c:255 +#: sql_help.c:257 sql_help.c:259 sql_help.c:261 sql_help.c:276 sql_help.c:277 +#: sql_help.c:278 sql_help.c:280 sql_help.c:329 sql_help.c:331 sql_help.c:333 +#: sql_help.c:335 sql_help.c:404 sql_help.c:409 sql_help.c:411 sql_help.c:453 +#: sql_help.c:455 sql_help.c:458 sql_help.c:460 sql_help.c:529 sql_help.c:534 +#: sql_help.c:539 sql_help.c:544 sql_help.c:549 sql_help.c:603 sql_help.c:605 +#: sql_help.c:607 sql_help.c:609 sql_help.c:611 sql_help.c:614 sql_help.c:616 +#: sql_help.c:619 sql_help.c:630 sql_help.c:632 sql_help.c:676 sql_help.c:678 +#: sql_help.c:680 sql_help.c:683 sql_help.c:685 sql_help.c:687 sql_help.c:728 +#: sql_help.c:732 sql_help.c:736 sql_help.c:757 sql_help.c:760 sql_help.c:763 +#: sql_help.c:792 sql_help.c:804 sql_help.c:812 sql_help.c:815 sql_help.c:818 +#: sql_help.c:833 sql_help.c:836 sql_help.c:865 sql_help.c:870 sql_help.c:875 +#: sql_help.c:880 sql_help.c:885 sql_help.c:912 sql_help.c:914 sql_help.c:916 +#: sql_help.c:918 sql_help.c:921 sql_help.c:923 sql_help.c:970 sql_help.c:1015 +#: sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 sql_help.c:1035 +#: sql_help.c:1054 sql_help.c:1065 sql_help.c:1067 sql_help.c:1087 +#: sql_help.c:1097 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102 +#: sql_help.c:1114 sql_help.c:1118 sql_help.c:1120 sql_help.c:1132 +#: sql_help.c:1134 sql_help.c:1136 sql_help.c:1138 sql_help.c:1157 +#: sql_help.c:1159 sql_help.c:1163 sql_help.c:1167 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1175 sql_help.c:1176 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1184 sql_help.c:1324 sql_help.c:1326 +#: sql_help.c:1329 sql_help.c:1332 sql_help.c:1334 sql_help.c:1336 +#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1464 sql_help.c:1466 +#: sql_help.c:1468 sql_help.c:1471 sql_help.c:1492 sql_help.c:1495 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1505 sql_help.c:1507 +#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1525 sql_help.c:1528 +#: sql_help.c:1530 sql_help.c:1532 sql_help.c:1542 sql_help.c:1544 +#: sql_help.c:1554 sql_help.c:1556 sql_help.c:1566 sql_help.c:1569 +#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1596 sql_help.c:1598 +#: sql_help.c:1601 sql_help.c:1603 sql_help.c:1606 sql_help.c:1609 +#: sql_help.c:1660 sql_help.c:1703 sql_help.c:1706 sql_help.c:1708 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:1715 sql_help.c:1717 +#: sql_help.c:1720 sql_help.c:1770 sql_help.c:1786 sql_help.c:2019 +#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2120 sql_help.c:2178 +#: sql_help.c:2186 sql_help.c:2196 sql_help.c:2224 sql_help.c:2257 +#: sql_help.c:2275 sql_help.c:2303 sql_help.c:2414 sql_help.c:2460 +#: sql_help.c:2485 sql_help.c:2508 sql_help.c:2512 sql_help.c:2546 +#: sql_help.c:2566 sql_help.c:2588 sql_help.c:2602 sql_help.c:2623 +#: sql_help.c:2652 sql_help.c:2685 sql_help.c:2708 sql_help.c:2755 +#: sql_help.c:3053 sql_help.c:3066 sql_help.c:3083 sql_help.c:3099 +#: sql_help.c:3139 sql_help.c:3193 sql_help.c:3197 sql_help.c:3199 +#: sql_help.c:3206 sql_help.c:3225 sql_help.c:3252 sql_help.c:3287 +#: sql_help.c:3299 sql_help.c:3308 sql_help.c:3352 sql_help.c:3366 +#: sql_help.c:3394 sql_help.c:3402 sql_help.c:3414 sql_help.c:3424 +#: sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 sql_help.c:3456 +#: sql_help.c:3465 sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 +#: sql_help.c:3500 sql_help.c:3508 sql_help.c:3518 sql_help.c:3527 +#: sql_help.c:3536 sql_help.c:3544 sql_help.c:3554 sql_help.c:3565 +#: sql_help.c:3573 sql_help.c:3582 sql_help.c:3593 sql_help.c:3602 +#: sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 sql_help.c:3634 +#: sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 sql_help.c:3666 +#: sql_help.c:3674 sql_help.c:3682 sql_help.c:3699 sql_help.c:3708 +#: sql_help.c:3716 sql_help.c:3733 sql_help.c:3748 sql_help.c:4061 +#: sql_help.c:4182 sql_help.c:4211 sql_help.c:4227 sql_help.c:4229 +#: sql_help.c:4733 sql_help.c:4781 sql_help.c:4940 msgid "name" msgstr "имя" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:332 sql_help.c:1852 -#: sql_help.c:3354 sql_help.c:4479 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1863 +#: sql_help.c:3367 sql_help.c:4500 msgid "aggregate_signature" msgstr "сигнатура_агр_функции" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:255 -#: sql_help.c:273 sql_help.c:404 sql_help.c:451 sql_help.c:530 sql_help.c:578 -#: sql_help.c:596 sql_help.c:623 sql_help.c:676 sql_help.c:745 sql_help.c:800 -#: sql_help.c:821 sql_help.c:860 sql_help.c:910 sql_help.c:957 sql_help.c:1010 -#: sql_help.c:1042 sql_help.c:1052 sql_help.c:1087 sql_help.c:1107 -#: sql_help.c:1121 sql_help.c:1171 sql_help.c:1318 sql_help.c:1448 -#: sql_help.c:1491 sql_help.c:1512 sql_help.c:1526 sql_help.c:1538 -#: sql_help.c:1551 sql_help.c:1578 sql_help.c:1644 sql_help.c:1697 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 +#: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 +#: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:759 sql_help.c:814 +#: sql_help.c:835 sql_help.c:874 sql_help.c:924 sql_help.c:971 sql_help.c:1024 +#: sql_help.c:1056 sql_help.c:1066 sql_help.c:1101 sql_help.c:1121 +#: sql_help.c:1135 sql_help.c:1185 sql_help.c:1333 sql_help.c:1465 +#: sql_help.c:1508 sql_help.c:1529 sql_help.c:1543 sql_help.c:1555 +#: sql_help.c:1568 sql_help.c:1595 sql_help.c:1661 sql_help.c:1714 msgid "new_name" msgstr "новое_имя" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:487 sql_help.c:535 sql_help.c:625 -#: sql_help.c:634 sql_help.c:699 sql_help.c:719 sql_help.c:748 sql_help.c:803 -#: sql_help.c:865 sql_help.c:908 sql_help.c:1015 sql_help.c:1054 -#: sql_help.c:1085 sql_help.c:1105 sql_help.c:1119 sql_help.c:1169 -#: sql_help.c:1382 sql_help.c:1450 sql_help.c:1493 sql_help.c:1514 -#: sql_help.c:1576 sql_help.c:1692 sql_help.c:3026 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 +#: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 +#: sql_help.c:642 sql_help.c:707 sql_help.c:731 sql_help.c:762 sql_help.c:817 +#: sql_help.c:879 sql_help.c:922 sql_help.c:1029 sql_help.c:1068 +#: sql_help.c:1099 sql_help.c:1119 sql_help.c:1133 sql_help.c:1183 +#: sql_help.c:1399 sql_help.c:1467 sql_help.c:1510 sql_help.c:1531 +#: sql_help.c:1593 sql_help.c:1709 sql_help.c:3039 msgid "new_owner" msgstr "новый_владелец" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:257 sql_help.c:324 -#: sql_help.c:453 sql_help.c:540 sql_help.c:678 sql_help.c:723 sql_help.c:751 -#: sql_help.c:806 sql_help.c:870 sql_help.c:1020 sql_help.c:1089 -#: sql_help.c:1123 sql_help.c:1320 sql_help.c:1495 sql_help.c:1516 -#: sql_help.c:1528 sql_help.c:1540 sql_help.c:1580 sql_help.c:1699 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 +#: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:735 sql_help.c:765 +#: sql_help.c:820 sql_help.c:884 sql_help.c:1034 sql_help.c:1103 +#: sql_help.c:1137 sql_help.c:1335 sql_help.c:1512 sql_help.c:1533 +#: sql_help.c:1545 sql_help.c:1557 sql_help.c:1597 sql_help.c:1716 msgid "new_schema" msgstr "новая_схема" -#: sql_help.c:44 sql_help.c:1916 sql_help.c:3355 sql_help.c:4508 +#: sql_help.c:44 sql_help.c:1927 sql_help.c:3368 sql_help.c:4529 msgid "where aggregate_signature is:" msgstr "где сигнатура_агр_функции:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1870 sql_help.c:1887 sql_help.c:1893 sql_help.c:1917 -#: sql_help.c:1920 sql_help.c:1923 sql_help.c:2074 sql_help.c:2093 -#: sql_help.c:2096 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3922 sql_help.c:4378 sql_help.c:4485 -#: sql_help.c:4492 sql_help.c:4498 sql_help.c:4509 sql_help.c:4512 -#: sql_help.c:4515 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 +#: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 +#: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:866 +#: sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:886 sql_help.c:1016 +#: sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 sql_help.c:1036 +#: sql_help.c:1881 sql_help.c:1898 sql_help.c:1904 sql_help.c:1928 +#: sql_help.c:1931 sql_help.c:1934 sql_help.c:2089 sql_help.c:2108 +#: sql_help.c:2111 sql_help.c:2415 sql_help.c:2624 sql_help.c:3369 +#: sql_help.c:3372 sql_help.c:3375 sql_help.c:3466 sql_help.c:3555 +#: sql_help.c:3583 sql_help.c:3936 sql_help.c:4399 sql_help.c:4506 +#: sql_help.c:4513 sql_help.c:4519 sql_help.c:4530 sql_help.c:4533 +#: sql_help.c:4536 msgid "argmode" msgstr "режим_аргумента" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:343 sql_help.c:356 -#: sql_help.c:360 sql_help.c:376 sql_help.c:379 sql_help.c:382 sql_help.c:523 -#: sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:543 sql_help.c:853 -#: sql_help.c:858 sql_help.c:863 sql_help.c:868 sql_help.c:873 sql_help.c:1003 -#: sql_help.c:1008 sql_help.c:1013 sql_help.c:1018 sql_help.c:1023 -#: sql_help.c:1871 sql_help.c:1888 sql_help.c:1894 sql_help.c:1918 -#: sql_help.c:1921 sql_help.c:1924 sql_help.c:2075 sql_help.c:2094 -#: sql_help.c:2097 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4486 sql_help.c:4493 sql_help.c:4499 -#: sql_help.c:4510 sql_help.c:4513 sql_help.c:4516 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 +#: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 +#: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:887 sql_help.c:1017 +#: sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 sql_help.c:1037 +#: sql_help.c:1882 sql_help.c:1899 sql_help.c:1905 sql_help.c:1929 +#: sql_help.c:1932 sql_help.c:1935 sql_help.c:2090 sql_help.c:2109 +#: sql_help.c:2112 sql_help.c:2416 sql_help.c:2625 sql_help.c:3370 +#: sql_help.c:3373 sql_help.c:3376 sql_help.c:3467 sql_help.c:3556 +#: sql_help.c:3584 sql_help.c:4507 sql_help.c:4514 sql_help.c:4520 +#: sql_help.c:4531 sql_help.c:4534 sql_help.c:4537 msgid "argname" msgstr "имя_аргумента" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:344 sql_help.c:357 -#: sql_help.c:361 sql_help.c:377 sql_help.c:380 sql_help.c:383 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:544 sql_help.c:854 -#: sql_help.c:859 sql_help.c:864 sql_help.c:869 sql_help.c:874 sql_help.c:1004 -#: sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 -#: sql_help.c:1872 sql_help.c:1889 sql_help.c:1895 sql_help.c:1919 -#: sql_help.c:1922 sql_help.c:1925 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4487 sql_help.c:4494 -#: sql_help.c:4500 sql_help.c:4511 sql_help.c:4514 sql_help.c:4517 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 +#: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 +#: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:868 +#: sql_help.c:873 sql_help.c:878 sql_help.c:883 sql_help.c:888 sql_help.c:1018 +#: sql_help.c:1023 sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 +#: sql_help.c:1883 sql_help.c:1900 sql_help.c:1906 sql_help.c:1930 +#: sql_help.c:1933 sql_help.c:1936 sql_help.c:2417 sql_help.c:2626 +#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3377 sql_help.c:3468 +#: sql_help.c:3557 sql_help.c:3585 sql_help.c:4508 sql_help.c:4515 +#: sql_help.c:4521 sql_help.c:4532 sql_help.c:4535 sql_help.c:4538 msgid "argtype" msgstr "тип_аргумента" -#: sql_help.c:114 sql_help.c:399 sql_help.c:476 sql_help.c:488 sql_help.c:951 -#: sql_help.c:1102 sql_help.c:1509 sql_help.c:1638 sql_help.c:1670 -#: sql_help.c:1723 sql_help.c:1787 sql_help.c:1974 sql_help.c:1981 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3758 -#: sql_help.c:3966 sql_help.c:4205 sql_help.c:4207 sql_help.c:4984 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:965 +#: sql_help.c:1116 sql_help.c:1526 sql_help.c:1655 sql_help.c:1687 +#: sql_help.c:1739 sql_help.c:1798 sql_help.c:1987 sql_help.c:1994 +#: sql_help.c:2306 sql_help.c:2356 sql_help.c:2363 sql_help.c:2372 +#: sql_help.c:2461 sql_help.c:2686 sql_help.c:2777 sql_help.c:3068 +#: sql_help.c:3253 sql_help.c:3275 sql_help.c:3415 sql_help.c:3772 +#: sql_help.c:3980 sql_help.c:4226 sql_help.c:4228 sql_help.c:5006 msgid "option" msgstr "параметр" -#: sql_help.c:115 sql_help.c:952 sql_help.c:1639 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:966 sql_help.c:1656 sql_help.c:2462 +#: sql_help.c:2687 sql_help.c:3254 sql_help.c:3416 msgid "where option can be:" msgstr "где допустимые параметры:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2238 msgid "allowconn" msgstr "разр_подключения" -#: sql_help.c:117 sql_help.c:953 sql_help.c:1640 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:967 sql_help.c:1657 sql_help.c:2239 +#: sql_help.c:2463 sql_help.c:2688 sql_help.c:3255 msgid "connlimit" msgstr "предел_подключений" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2240 msgid "istemplate" msgstr "это_шаблон" -#: sql_help.c:124 sql_help.c:613 sql_help.c:681 sql_help.c:695 sql_help.c:1323 -#: sql_help.c:1375 sql_help.c:4211 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1338 +#: sql_help.c:1392 sql_help.c:4232 msgid "new_tablespace" msgstr "новое_табл_пространство" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:550 sql_help.c:552 -#: sql_help.c:553 sql_help.c:877 sql_help.c:879 sql_help.c:880 sql_help.c:960 -#: sql_help.c:964 sql_help.c:967 sql_help.c:1029 sql_help.c:1031 -#: sql_help.c:1032 sql_help.c:1182 sql_help.c:1184 sql_help.c:1647 -#: sql_help.c:1651 sql_help.c:1654 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3934 sql_help.c:4229 sql_help.c:4390 sql_help.c:4699 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 +#: sql_help.c:561 sql_help.c:891 sql_help.c:893 sql_help.c:894 sql_help.c:974 +#: sql_help.c:978 sql_help.c:981 sql_help.c:1043 sql_help.c:1045 +#: sql_help.c:1046 sql_help.c:1196 sql_help.c:1198 sql_help.c:1664 +#: sql_help.c:1668 sql_help.c:1671 sql_help.c:2427 sql_help.c:2630 +#: sql_help.c:3948 sql_help.c:4250 sql_help.c:4411 sql_help.c:4721 msgid "configuration_parameter" msgstr "параметр_конфигурации" -#: sql_help.c:128 sql_help.c:400 sql_help.c:471 sql_help.c:477 sql_help.c:489 -#: sql_help.c:551 sql_help.c:605 sql_help.c:687 sql_help.c:697 sql_help.c:878 -#: sql_help.c:906 sql_help.c:961 sql_help.c:1030 sql_help.c:1103 -#: sql_help.c:1148 sql_help.c:1152 sql_help.c:1156 sql_help.c:1159 -#: sql_help.c:1164 sql_help.c:1167 sql_help.c:1183 sql_help.c:1354 -#: sql_help.c:1377 sql_help.c:1425 sql_help.c:1433 sql_help.c:1453 -#: sql_help.c:1510 sql_help.c:1594 sql_help.c:1648 sql_help.c:1671 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3967 -#: sql_help.c:4700 sql_help.c:4701 sql_help.c:4702 sql_help.c:4703 +#: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 +#: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:892 +#: sql_help.c:920 sql_help.c:975 sql_help.c:1044 sql_help.c:1117 +#: sql_help.c:1162 sql_help.c:1166 sql_help.c:1170 sql_help.c:1173 +#: sql_help.c:1178 sql_help.c:1181 sql_help.c:1197 sql_help.c:1371 +#: sql_help.c:1394 sql_help.c:1442 sql_help.c:1450 sql_help.c:1470 +#: sql_help.c:1527 sql_help.c:1611 sql_help.c:1665 sql_help.c:1688 +#: sql_help.c:2307 sql_help.c:2357 sql_help.c:2364 sql_help.c:2373 +#: sql_help.c:2428 sql_help.c:2429 sql_help.c:2493 sql_help.c:2496 +#: sql_help.c:2530 sql_help.c:2631 sql_help.c:2632 sql_help.c:2655 +#: sql_help.c:2778 sql_help.c:2817 sql_help.c:2927 sql_help.c:2940 +#: sql_help.c:2954 sql_help.c:2995 sql_help.c:3003 sql_help.c:3025 +#: sql_help.c:3042 sql_help.c:3069 sql_help.c:3276 sql_help.c:3981 +#: sql_help.c:4722 sql_help.c:4723 sql_help.c:4724 sql_help.c:4725 msgid "value" msgstr "значение" @@ -4543,10 +4604,10 @@ msgstr "значение" msgid "target_role" msgstr "целевая_роль" -#: sql_help.c:203 sql_help.c:915 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3897 sql_help.c:3906 -#: sql_help.c:3925 sql_help.c:3937 sql_help.c:4353 sql_help.c:4362 -#: sql_help.c:4381 sql_help.c:4393 +#: sql_help.c:203 sql_help.c:929 sql_help.c:2291 sql_help.c:2660 +#: sql_help.c:2733 sql_help.c:2738 sql_help.c:3911 sql_help.c:3920 +#: sql_help.c:3939 sql_help.c:3951 sql_help.c:4374 sql_help.c:4383 +#: sql_help.c:4402 sql_help.c:4414 msgid "schema_name" msgstr "имя_схемы" @@ -4560,2182 +4621,2200 @@ msgstr "где допустимое предложение_GRANT_или_REVOKE:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:576 sql_help.c:612 sql_help.c:680 sql_help.c:824 sql_help.c:971 -#: sql_help.c:1322 sql_help.c:1658 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3946 sql_help.c:3950 -#: sql_help.c:4402 sql_help.c:4406 sql_help.c:4721 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:838 sql_help.c:985 +#: sql_help.c:1337 sql_help.c:1675 sql_help.c:2466 sql_help.c:2467 +#: sql_help.c:2468 sql_help.c:2469 sql_help.c:2470 sql_help.c:2604 +#: sql_help.c:2691 sql_help.c:2692 sql_help.c:2693 sql_help.c:3258 +#: sql_help.c:3259 sql_help.c:3260 sql_help.c:3261 sql_help.c:3262 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:4423 sql_help.c:4427 +#: sql_help.c:4743 msgid "role_name" msgstr "имя_роли" -#: sql_help.c:241 sql_help.c:464 sql_help.c:914 sql_help.c:1338 sql_help.c:1340 -#: sql_help.c:1392 sql_help.c:1404 sql_help.c:1429 sql_help.c:1688 -#: sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 sql_help.c:2364 -#: sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 sql_help.c:2786 -#: sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 -#: sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 sql_help.c:3998 -#: sql_help.c:4013 sql_help.c:4015 sql_help.c:4104 sql_help.c:4107 -#: sql_help.c:4109 sql_help.c:4572 sql_help.c:4573 sql_help.c:4582 -#: sql_help.c:4629 sql_help.c:4630 sql_help.c:4631 sql_help.c:4632 -#: sql_help.c:4633 sql_help.c:4634 sql_help.c:4674 sql_help.c:4675 -#: sql_help.c:4680 sql_help.c:4685 sql_help.c:4829 sql_help.c:4830 -#: sql_help.c:4839 sql_help.c:4886 sql_help.c:4887 sql_help.c:4888 -#: sql_help.c:4889 sql_help.c:4890 sql_help.c:4891 sql_help.c:4945 -#: sql_help.c:4947 sql_help.c:5015 sql_help.c:5075 sql_help.c:5076 -#: sql_help.c:5085 sql_help.c:5132 sql_help.c:5133 sql_help.c:5134 -#: sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:928 sql_help.c:1353 +#: sql_help.c:1355 sql_help.c:1359 sql_help.c:1409 sql_help.c:1421 +#: sql_help.c:1446 sql_help.c:1705 sql_help.c:2260 sql_help.c:2264 +#: sql_help.c:2376 sql_help.c:2381 sql_help.c:2489 sql_help.c:2659 +#: sql_help.c:2794 sql_help.c:2799 sql_help.c:2801 sql_help.c:2922 +#: sql_help.c:2935 sql_help.c:2949 sql_help.c:2958 sql_help.c:2970 +#: sql_help.c:2999 sql_help.c:4012 sql_help.c:4027 sql_help.c:4029 +#: sql_help.c:4125 sql_help.c:4128 sql_help.c:4130 sql_help.c:4593 +#: sql_help.c:4594 sql_help.c:4603 sql_help.c:4650 sql_help.c:4651 +#: sql_help.c:4652 sql_help.c:4653 sql_help.c:4654 sql_help.c:4655 +#: sql_help.c:4696 sql_help.c:4697 sql_help.c:4702 sql_help.c:4707 +#: sql_help.c:4851 sql_help.c:4852 sql_help.c:4861 sql_help.c:4908 +#: sql_help.c:4909 sql_help.c:4910 sql_help.c:4911 sql_help.c:4912 +#: sql_help.c:4913 sql_help.c:4968 sql_help.c:4970 sql_help.c:5036 +#: sql_help.c:5096 sql_help.c:5097 sql_help.c:5106 sql_help.c:5153 +#: sql_help.c:5154 sql_help.c:5155 sql_help.c:5156 sql_help.c:5157 +#: sql_help.c:5158 msgid "expression" msgstr "выражение" -#: sql_help.c:244 +#: sql_help.c:249 sql_help.c:2261 msgid "domain_constraint" msgstr "ограничение_домена" -#: sql_help.c:246 sql_help.c:248 sql_help.c:251 sql_help.c:479 sql_help.c:480 -#: sql_help.c:1315 sql_help.c:1362 sql_help.c:1363 sql_help.c:1364 -#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1420 sql_help.c:1858 -#: sql_help.c:1860 sql_help.c:2246 sql_help.c:2358 sql_help.c:2363 -#: sql_help.c:2944 sql_help.c:2956 sql_help.c:4010 +#: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 +#: sql_help.c:488 sql_help.c:1330 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1381 sql_help.c:1408 sql_help.c:1420 sql_help.c:1437 +#: sql_help.c:1869 sql_help.c:1871 sql_help.c:2263 sql_help.c:2375 +#: sql_help.c:2380 sql_help.c:2957 sql_help.c:2969 sql_help.c:4024 msgid "constraint_name" msgstr "имя_ограничения" -#: sql_help.c:249 sql_help.c:1316 +#: sql_help.c:254 sql_help.c:1331 msgid "new_constraint_name" msgstr "имя_нового_ограничения" -#: sql_help.c:322 sql_help.c:1101 +#: sql_help.c:263 sql_help.c:2262 +msgid "where domain_constraint is:" +msgstr "где ограничение_домена может быть следующим:" + +#: sql_help.c:330 sql_help.c:1115 msgid "new_version" msgstr "новая_версия" -#: sql_help.c:326 sql_help.c:328 +#: sql_help.c:334 sql_help.c:336 msgid "member_object" msgstr "элемент_объект" -#: sql_help.c:329 +#: sql_help.c:337 msgid "where member_object is:" msgstr "где элемент_объект:" -#: sql_help.c:330 sql_help.c:335 sql_help.c:336 sql_help.c:337 sql_help.c:338 -#: sql_help.c:339 sql_help.c:340 sql_help.c:345 sql_help.c:349 sql_help.c:351 -#: sql_help.c:353 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:365 -#: sql_help.c:366 sql_help.c:367 sql_help.c:368 sql_help.c:369 sql_help.c:372 -#: sql_help.c:373 sql_help.c:1850 sql_help.c:1855 sql_help.c:1862 -#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1865 sql_help.c:1866 -#: sql_help.c:1867 sql_help.c:1868 sql_help.c:1873 sql_help.c:1875 -#: sql_help.c:1879 sql_help.c:1881 sql_help.c:1885 sql_help.c:1890 -#: sql_help.c:1891 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 -#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 -#: sql_help.c:1905 sql_help.c:1906 sql_help.c:1907 sql_help.c:1908 -#: sql_help.c:1913 sql_help.c:1914 sql_help.c:4475 sql_help.c:4480 -#: sql_help.c:4481 sql_help.c:4482 sql_help.c:4483 sql_help.c:4489 -#: sql_help.c:4490 sql_help.c:4495 sql_help.c:4496 sql_help.c:4501 -#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4505 -#: sql_help.c:4506 +#: sql_help.c:338 sql_help.c:343 sql_help.c:344 sql_help.c:345 sql_help.c:346 +#: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 +#: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 +#: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 +#: sql_help.c:381 sql_help.c:1861 sql_help.c:1866 sql_help.c:1873 +#: sql_help.c:1874 sql_help.c:1875 sql_help.c:1876 sql_help.c:1877 +#: sql_help.c:1878 sql_help.c:1879 sql_help.c:1884 sql_help.c:1886 +#: sql_help.c:1890 sql_help.c:1892 sql_help.c:1896 sql_help.c:1901 +#: sql_help.c:1902 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 sql_help.c:1915 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:1918 sql_help.c:1919 +#: sql_help.c:1924 sql_help.c:1925 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4510 +#: sql_help.c:4511 sql_help.c:4516 sql_help.c:4517 sql_help.c:4522 +#: sql_help.c:4523 sql_help.c:4524 sql_help.c:4525 sql_help.c:4526 +#: sql_help.c:4527 msgid "object_name" msgstr "имя_объекта" # well-spelled: агр -#: sql_help.c:331 sql_help.c:1851 sql_help.c:4478 +#: sql_help.c:339 sql_help.c:1862 sql_help.c:4499 msgid "aggregate_name" msgstr "имя_агр_функции" -#: sql_help.c:333 sql_help.c:1853 sql_help.c:2139 sql_help.c:2143 -#: sql_help.c:2145 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1864 sql_help.c:2154 sql_help.c:2158 +#: sql_help.c:2160 sql_help.c:3385 msgid "source_type" msgstr "исходный_тип" -#: sql_help.c:334 sql_help.c:1854 sql_help.c:2140 sql_help.c:2144 -#: sql_help.c:2146 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1865 sql_help.c:2155 sql_help.c:2159 +#: sql_help.c:2161 sql_help.c:3386 msgid "target_type" msgstr "целевой_тип" -#: sql_help.c:341 sql_help.c:788 sql_help.c:1869 sql_help.c:2141 -#: sql_help.c:2184 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4377 sql_help.c:4484 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4609 sql_help.c:4612 sql_help.c:4858 -#: sql_help.c:4862 sql_help.c:4866 sql_help.c:4869 sql_help.c:5104 -#: sql_help.c:5108 sql_help.c:5112 sql_help.c:5115 +#: sql_help.c:349 sql_help.c:802 sql_help.c:1880 sql_help.c:2156 +#: sql_help.c:2199 sql_help.c:2279 sql_help.c:2547 sql_help.c:2578 +#: sql_help.c:3145 sql_help.c:4398 sql_help.c:4505 sql_help.c:4622 +#: sql_help.c:4626 sql_help.c:4630 sql_help.c:4633 sql_help.c:4880 +#: sql_help.c:4884 sql_help.c:4888 sql_help.c:4891 sql_help.c:5125 +#: sql_help.c:5129 sql_help.c:5133 sql_help.c:5136 msgid "function_name" msgstr "имя_функции" -#: sql_help.c:346 sql_help.c:781 sql_help.c:1876 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:795 sql_help.c:1887 sql_help.c:2571 msgid "operator_name" msgstr "имя_оператора" -#: sql_help.c:347 sql_help.c:717 sql_help.c:721 sql_help.c:725 sql_help.c:1877 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:729 sql_help.c:733 sql_help.c:737 sql_help.c:1888 +#: sql_help.c:2548 sql_help.c:3509 msgid "left_type" msgstr "тип_слева" -#: sql_help.c:348 sql_help.c:718 sql_help.c:722 sql_help.c:726 sql_help.c:1878 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:730 sql_help.c:734 sql_help.c:738 sql_help.c:1889 +#: sql_help.c:2549 sql_help.c:3510 msgid "right_type" msgstr "тип_справа" -#: sql_help.c:350 sql_help.c:352 sql_help.c:744 sql_help.c:747 sql_help.c:750 -#: sql_help.c:779 sql_help.c:791 sql_help.c:799 sql_help.c:802 sql_help.c:805 -#: sql_help.c:1409 sql_help.c:1880 sql_help.c:1882 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:358 sql_help.c:360 sql_help.c:758 sql_help.c:761 sql_help.c:764 +#: sql_help.c:793 sql_help.c:805 sql_help.c:813 sql_help.c:816 sql_help.c:819 +#: sql_help.c:1426 sql_help.c:1891 sql_help.c:1893 sql_help.c:2568 +#: sql_help.c:2589 sql_help.c:2975 sql_help.c:3519 sql_help.c:3528 msgid "index_method" msgstr "метод_индекса" -#: sql_help.c:354 sql_help.c:1886 sql_help.c:4491 +#: sql_help.c:362 sql_help.c:1897 sql_help.c:4512 msgid "procedure_name" msgstr "имя_процедуры" -#: sql_help.c:358 sql_help.c:1892 sql_help.c:3921 sql_help.c:4497 +#: sql_help.c:366 sql_help.c:1903 sql_help.c:3935 sql_help.c:4518 msgid "routine_name" msgstr "имя_подпрограммы" -#: sql_help.c:370 sql_help.c:1381 sql_help.c:1909 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3943 sql_help.c:4399 +#: sql_help.c:378 sql_help.c:1398 sql_help.c:1920 sql_help.c:2423 +#: sql_help.c:2629 sql_help.c:2930 sql_help.c:3112 sql_help.c:3690 +#: sql_help.c:3957 sql_help.c:4420 msgid "type_name" msgstr "имя_типа" -#: sql_help.c:371 sql_help.c:1910 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3928 -#: sql_help.c:4384 +#: sql_help.c:379 sql_help.c:1921 sql_help.c:2422 sql_help.c:2628 +#: sql_help.c:3113 sql_help.c:3343 sql_help.c:3691 sql_help.c:3942 +#: sql_help.c:4405 msgid "lang_name" msgstr "имя_языка" -#: sql_help.c:374 +#: sql_help.c:382 msgid "and aggregate_signature is:" msgstr "и сигнатура_агр_функции:" -#: sql_help.c:397 sql_help.c:2006 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2021 sql_help.c:2304 msgid "handler_function" msgstr "функция_обработчик" -#: sql_help.c:398 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2305 msgid "validator_function" msgstr "функция_проверки" -#: sql_help.c:446 sql_help.c:525 sql_help.c:669 sql_help.c:855 sql_help.c:1005 -#: sql_help.c:1310 sql_help.c:1585 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:869 sql_help.c:1019 +#: sql_help.c:1325 sql_help.c:1602 msgid "action" msgstr "действие" -#: sql_help.c:448 sql_help.c:455 sql_help.c:459 sql_help.c:460 sql_help.c:463 -#: sql_help.c:465 sql_help.c:466 sql_help.c:467 sql_help.c:469 sql_help.c:472 -#: sql_help.c:474 sql_help.c:475 sql_help.c:673 sql_help.c:683 sql_help.c:685 -#: sql_help.c:688 sql_help.c:690 sql_help.c:691 sql_help.c:913 sql_help.c:1082 -#: sql_help.c:1312 sql_help.c:1330 sql_help.c:1334 sql_help.c:1335 -#: sql_help.c:1339 sql_help.c:1341 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1344 sql_help.c:1346 sql_help.c:1349 sql_help.c:1350 -#: sql_help.c:1352 sql_help.c:1355 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1405 sql_help.c:1407 sql_help.c:1414 sql_help.c:1423 -#: sql_help.c:1428 sql_help.c:1435 sql_help.c:1436 sql_help.c:1687 -#: sql_help.c:1690 sql_help.c:1694 sql_help.c:1732 sql_help.c:1857 -#: sql_help.c:1971 sql_help.c:1977 sql_help.c:1991 sql_help.c:1992 -#: sql_help.c:1993 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3900 -#: sql_help.c:3901 sql_help.c:3997 sql_help.c:4012 sql_help.c:4014 -#: sql_help.c:4016 sql_help.c:4103 sql_help.c:4106 sql_help.c:4108 -#: sql_help.c:4110 sql_help.c:4356 sql_help.c:4357 sql_help.c:4477 -#: sql_help.c:4638 sql_help.c:4644 sql_help.c:4646 sql_help.c:4895 -#: sql_help.c:4901 sql_help.c:4903 sql_help.c:4944 sql_help.c:4946 -#: sql_help.c:4948 sql_help.c:5003 sql_help.c:5141 sql_help.c:5147 -#: sql_help.c:5149 +#: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 +#: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 +#: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:927 sql_help.c:1096 +#: sql_help.c:1327 sql_help.c:1345 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1360 sql_help.c:1361 sql_help.c:1363 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1369 sql_help.c:1372 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1422 sql_help.c:1424 sql_help.c:1431 +#: sql_help.c:1440 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1704 sql_help.c:1707 sql_help.c:1711 sql_help.c:1747 +#: sql_help.c:1868 sql_help.c:1984 sql_help.c:1990 sql_help.c:2004 +#: sql_help.c:2005 sql_help.c:2006 sql_help.c:2354 sql_help.c:2367 +#: sql_help.c:2420 sql_help.c:2488 sql_help.c:2494 sql_help.c:2527 +#: sql_help.c:2658 sql_help.c:2763 sql_help.c:2798 sql_help.c:2800 +#: sql_help.c:2912 sql_help.c:2921 sql_help.c:2931 sql_help.c:2934 +#: sql_help.c:2944 sql_help.c:2948 sql_help.c:2971 sql_help.c:2973 +#: sql_help.c:2980 sql_help.c:2993 sql_help.c:2998 sql_help.c:3005 +#: sql_help.c:3006 sql_help.c:3022 sql_help.c:3148 sql_help.c:3288 +#: sql_help.c:3914 sql_help.c:3915 sql_help.c:4011 sql_help.c:4026 +#: sql_help.c:4028 sql_help.c:4030 sql_help.c:4124 sql_help.c:4127 +#: sql_help.c:4129 sql_help.c:4131 sql_help.c:4377 sql_help.c:4378 +#: sql_help.c:4498 sql_help.c:4659 sql_help.c:4666 sql_help.c:4668 +#: sql_help.c:4917 sql_help.c:4924 sql_help.c:4926 sql_help.c:4967 +#: sql_help.c:4969 sql_help.c:4971 sql_help.c:5024 sql_help.c:5162 +#: sql_help.c:5169 sql_help.c:5171 msgid "column_name" msgstr "имя_столбца" -#: sql_help.c:449 sql_help.c:674 sql_help.c:1313 sql_help.c:1695 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1328 sql_help.c:1712 msgid "new_column_name" msgstr "новое_имя_столбца" -#: sql_help.c:454 sql_help.c:546 sql_help.c:682 sql_help.c:876 sql_help.c:1026 -#: sql_help.c:1329 sql_help.c:1595 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:890 sql_help.c:1040 +#: sql_help.c:1344 sql_help.c:1612 msgid "where action is one of:" msgstr "где допустимое действие:" -#: sql_help.c:456 sql_help.c:461 sql_help.c:1074 sql_help.c:1331 -#: sql_help.c:1336 sql_help.c:1597 sql_help.c:1601 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4162 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1088 sql_help.c:1346 +#: sql_help.c:1351 sql_help.c:1614 sql_help.c:1618 sql_help.c:2258 +#: sql_help.c:2355 sql_help.c:2567 sql_help.c:2756 sql_help.c:2913 +#: sql_help.c:3195 sql_help.c:4183 msgid "data_type" msgstr "тип_данных" -#: sql_help.c:457 sql_help.c:462 sql_help.c:1332 sql_help.c:1337 -#: sql_help.c:1430 sql_help.c:1598 sql_help.c:1602 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4007 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1347 sql_help.c:1352 +#: sql_help.c:1447 sql_help.c:1615 sql_help.c:1619 sql_help.c:2259 +#: sql_help.c:2358 sql_help.c:2490 sql_help.c:2915 sql_help.c:2923 +#: sql_help.c:2936 sql_help.c:2950 sql_help.c:3000 sql_help.c:3196 +#: sql_help.c:3202 sql_help.c:4021 msgid "collation" msgstr "правило_сортировки" -#: sql_help.c:458 sql_help.c:1333 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1348 sql_help.c:2359 sql_help.c:2368 +#: sql_help.c:2916 sql_help.c:2932 sql_help.c:2945 msgid "column_constraint" msgstr "ограничение_столбца" -#: sql_help.c:468 sql_help.c:610 sql_help.c:684 sql_help.c:1351 sql_help.c:4997 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1368 sql_help.c:5018 msgid "integer" msgstr "целое" -#: sql_help.c:470 sql_help.c:473 sql_help.c:686 sql_help.c:689 sql_help.c:1353 -#: sql_help.c:1356 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1370 +#: sql_help.c:1373 msgid "attribute_option" msgstr "атрибут" -#: sql_help.c:478 sql_help.c:1360 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1377 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2917 sql_help.c:2933 sql_help.c:2946 msgid "table_constraint" msgstr "ограничение_таблицы" -#: sql_help.c:481 sql_help.c:482 sql_help.c:483 sql_help.c:484 sql_help.c:1365 -#: sql_help.c:1366 sql_help.c:1367 sql_help.c:1368 sql_help.c:1911 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1382 +#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:1922 msgid "trigger_name" msgstr "имя_триггера" -#: sql_help.c:485 sql_help.c:486 sql_help.c:1379 sql_help.c:1380 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:2361 sql_help.c:2366 sql_help.c:2920 sql_help.c:2943 msgid "parent_table" msgstr "таблица_родитель" -#: sql_help.c:545 sql_help.c:602 sql_help.c:671 sql_help.c:875 sql_help.c:1025 -#: sql_help.c:1554 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:889 sql_help.c:1039 +#: sql_help.c:1571 sql_help.c:2290 msgid "extension_name" msgstr "имя_расширения" -#: sql_help.c:547 sql_help.c:1027 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1041 sql_help.c:2424 msgid "execution_cost" msgstr "стоимость_выполнения" -#: sql_help.c:548 sql_help.c:1028 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1042 sql_help.c:2425 msgid "result_rows" msgstr "строк_в_результате" -#: sql_help.c:549 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2426 msgid "support_function" msgstr "вспомогательная_функция" -#: sql_help.c:571 sql_help.c:573 sql_help.c:950 sql_help.c:958 sql_help.c:962 -#: sql_help.c:965 sql_help.c:968 sql_help.c:1637 sql_help.c:1645 -#: sql_help.c:1649 sql_help.c:1652 sql_help.c:1655 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3903 sql_help.c:3904 sql_help.c:3907 -#: sql_help.c:3908 sql_help.c:3910 sql_help.c:3911 sql_help.c:3913 -#: sql_help.c:3914 sql_help.c:3916 sql_help.c:3917 sql_help.c:3919 -#: sql_help.c:3920 sql_help.c:3926 sql_help.c:3927 sql_help.c:3929 -#: sql_help.c:3930 sql_help.c:3932 sql_help.c:3933 sql_help.c:3935 -#: sql_help.c:3936 sql_help.c:3938 sql_help.c:3939 sql_help.c:3941 -#: sql_help.c:3942 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 -#: sql_help.c:3948 sql_help.c:4354 sql_help.c:4355 sql_help.c:4359 -#: sql_help.c:4360 sql_help.c:4363 sql_help.c:4364 sql_help.c:4366 -#: sql_help.c:4367 sql_help.c:4369 sql_help.c:4370 sql_help.c:4372 -#: sql_help.c:4373 sql_help.c:4375 sql_help.c:4376 sql_help.c:4382 -#: sql_help.c:4383 sql_help.c:4385 sql_help.c:4386 sql_help.c:4388 -#: sql_help.c:4389 sql_help.c:4391 sql_help.c:4392 sql_help.c:4394 -#: sql_help.c:4395 sql_help.c:4397 sql_help.c:4398 sql_help.c:4400 -#: sql_help.c:4401 sql_help.c:4403 sql_help.c:4404 +#: sql_help.c:579 sql_help.c:581 sql_help.c:964 sql_help.c:972 sql_help.c:976 +#: sql_help.c:979 sql_help.c:982 sql_help.c:1654 sql_help.c:1662 +#: sql_help.c:1666 sql_help.c:1669 sql_help.c:1672 sql_help.c:2734 +#: sql_help.c:2736 sql_help.c:2739 sql_help.c:2740 sql_help.c:3912 +#: sql_help.c:3913 sql_help.c:3917 sql_help.c:3918 sql_help.c:3921 +#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 +#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 +#: sql_help.c:3934 sql_help.c:3940 sql_help.c:3941 sql_help.c:3943 +#: sql_help.c:3944 sql_help.c:3946 sql_help.c:3947 sql_help.c:3949 +#: sql_help.c:3950 sql_help.c:3952 sql_help.c:3953 sql_help.c:3955 +#: sql_help.c:3956 sql_help.c:3958 sql_help.c:3959 sql_help.c:3961 +#: sql_help.c:3962 sql_help.c:4375 sql_help.c:4376 sql_help.c:4380 +#: sql_help.c:4381 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4393 +#: sql_help.c:4394 sql_help.c:4396 sql_help.c:4397 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 sql_help.c:4421 +#: sql_help.c:4422 sql_help.c:4424 sql_help.c:4425 msgid "role_specification" msgstr "указание_роли" -#: sql_help.c:572 sql_help.c:574 sql_help.c:1668 sql_help.c:2209 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4731 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1685 sql_help.c:2225 +#: sql_help.c:2742 sql_help.c:3273 sql_help.c:3724 sql_help.c:4753 msgid "user_name" msgstr "имя_пользователя" -#: sql_help.c:575 sql_help.c:970 sql_help.c:1657 sql_help.c:2728 -#: sql_help.c:3949 sql_help.c:4405 +#: sql_help.c:583 sql_help.c:984 sql_help.c:1674 sql_help.c:2741 +#: sql_help.c:3963 sql_help.c:4426 msgid "where role_specification can be:" msgstr "где допустимое указание_роли:" -#: sql_help.c:577 +#: sql_help.c:585 msgid "group_name" msgstr "имя_группы" -#: sql_help.c:598 sql_help.c:1426 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3940 -#: sql_help.c:4396 +#: sql_help.c:606 sql_help.c:1443 sql_help.c:2237 sql_help.c:2497 +#: sql_help.c:2531 sql_help.c:2928 sql_help.c:2941 sql_help.c:2955 +#: sql_help.c:2996 sql_help.c:3026 sql_help.c:3038 sql_help.c:3954 +#: sql_help.c:4417 msgid "tablespace_name" msgstr "табл_пространство" -#: sql_help.c:600 sql_help.c:693 sql_help.c:1373 sql_help.c:1383 -#: sql_help.c:1421 sql_help.c:1786 sql_help.c:1789 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1390 sql_help.c:1400 +#: sql_help.c:1438 sql_help.c:1800 msgid "index_name" msgstr "имя_индекса" -#: sql_help.c:604 sql_help.c:607 sql_help.c:696 sql_help.c:698 sql_help.c:1376 -#: sql_help.c:1378 sql_help.c:1424 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1393 +#: sql_help.c:1395 sql_help.c:1441 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2926 sql_help.c:2939 sql_help.c:2953 sql_help.c:2994 +#: sql_help.c:3024 msgid "storage_parameter" msgstr "параметр_хранения" -#: sql_help.c:609 +#: sql_help.c:617 msgid "column_number" msgstr "номер_столбца" -#: sql_help.c:633 sql_help.c:1874 sql_help.c:4488 +#: sql_help.c:641 sql_help.c:1885 sql_help.c:4509 msgid "large_object_oid" msgstr "oid_большого_объекта" -#: sql_help.c:692 sql_help.c:1359 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1376 sql_help.c:2914 msgid "compression_method" msgstr "метод_сжатия" -#: sql_help.c:694 sql_help.c:1374 +#: sql_help.c:702 sql_help.c:1391 msgid "new_access_method" msgstr "новый_метод_доступа" -#: sql_help.c:727 sql_help.c:2535 +#: sql_help.c:739 sql_help.c:2552 msgid "res_proc" msgstr "процедура_ограничения" -#: sql_help.c:728 sql_help.c:2536 +#: sql_help.c:740 sql_help.c:2553 msgid "join_proc" msgstr "процедура_соединения" -#: sql_help.c:780 sql_help.c:792 sql_help.c:2553 +#: sql_help.c:741 sql_help.c:2550 +msgid "com_op" +msgstr "коммут_оператор" + +#: sql_help.c:742 sql_help.c:2551 +msgid "neg_op" +msgstr "обратный_оператор" + +#: sql_help.c:794 sql_help.c:806 sql_help.c:2570 msgid "strategy_number" msgstr "номер_стратегии" -#: sql_help.c:782 sql_help.c:783 sql_help.c:786 sql_help.c:787 sql_help.c:793 -#: sql_help.c:794 sql_help.c:796 sql_help.c:797 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:796 sql_help.c:797 sql_help.c:800 sql_help.c:801 sql_help.c:807 +#: sql_help.c:808 sql_help.c:810 sql_help.c:811 sql_help.c:2572 sql_help.c:2573 +#: sql_help.c:2576 sql_help.c:2577 msgid "op_type" msgstr "тип_операции" -#: sql_help.c:784 sql_help.c:2557 +#: sql_help.c:798 sql_help.c:2574 msgid "sort_family_name" msgstr "семейство_сортировки" -#: sql_help.c:785 sql_help.c:795 sql_help.c:2558 +#: sql_help.c:799 sql_help.c:809 sql_help.c:2575 msgid "support_number" msgstr "номер_опорной_процедуры" -#: sql_help.c:789 sql_help.c:2142 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:803 sql_help.c:2157 sql_help.c:2579 sql_help.c:3115 +#: sql_help.c:3117 msgid "argument_type" msgstr "тип_аргумента" -#: sql_help.c:820 sql_help.c:823 sql_help.c:912 sql_help.c:1041 sql_help.c:1081 -#: sql_help.c:1550 sql_help.c:1553 sql_help.c:1731 sql_help.c:1785 -#: sql_help.c:1788 sql_help.c:1859 sql_help.c:1884 sql_help.c:1897 -#: sql_help.c:1912 sql_help.c:1970 sql_help.c:1976 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3896 sql_help.c:3902 -#: sql_help.c:3963 sql_help.c:3995 sql_help.c:4352 sql_help.c:4358 -#: sql_help.c:4476 sql_help.c:4587 sql_help.c:4589 sql_help.c:4651 -#: sql_help.c:4690 sql_help.c:4844 sql_help.c:4846 sql_help.c:4908 -#: sql_help.c:4942 sql_help.c:5002 sql_help.c:5090 sql_help.c:5092 -#: sql_help.c:5154 +#: sql_help.c:834 sql_help.c:837 sql_help.c:926 sql_help.c:1055 sql_help.c:1095 +#: sql_help.c:1567 sql_help.c:1570 sql_help.c:1746 sql_help.c:1799 +#: sql_help.c:1870 sql_help.c:1895 sql_help.c:1908 sql_help.c:1923 +#: sql_help.c:1983 sql_help.c:1989 sql_help.c:2353 sql_help.c:2365 +#: sql_help.c:2486 sql_help.c:2526 sql_help.c:2603 sql_help.c:2657 +#: sql_help.c:2710 sql_help.c:2762 sql_help.c:2795 sql_help.c:2802 +#: sql_help.c:2911 sql_help.c:2929 sql_help.c:2942 sql_help.c:3021 +#: sql_help.c:3141 sql_help.c:3322 sql_help.c:3545 sql_help.c:3594 +#: sql_help.c:3700 sql_help.c:3910 sql_help.c:3916 sql_help.c:3977 +#: sql_help.c:4009 sql_help.c:4373 sql_help.c:4379 sql_help.c:4497 +#: sql_help.c:4610 sql_help.c:4673 sql_help.c:4712 sql_help.c:4868 +#: sql_help.c:4931 sql_help.c:4965 sql_help.c:5023 sql_help.c:5113 +#: sql_help.c:5176 msgid "table_name" msgstr "имя_таблицы" -#: sql_help.c:825 sql_help.c:2588 +#: sql_help.c:839 sql_help.c:2605 msgid "using_expression" msgstr "выражение_использования" -#: sql_help.c:826 sql_help.c:2589 +#: sql_help.c:840 sql_help.c:2606 msgid "check_expression" msgstr "выражение_проверки" -#: sql_help.c:899 sql_help.c:901 sql_help.c:903 sql_help.c:2636 +#: sql_help.c:913 sql_help.c:915 sql_help.c:917 sql_help.c:2653 msgid "publication_object" msgstr "объект_публикации" -#: sql_help.c:905 sql_help.c:2637 +#: sql_help.c:919 sql_help.c:2654 msgid "publication_parameter" msgstr "параметр_публикации" -#: sql_help.c:911 sql_help.c:2639 +#: sql_help.c:925 sql_help.c:2656 msgid "where publication_object is one of:" msgstr "где объект_публикации:" -#: sql_help.c:954 sql_help.c:1641 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:968 sql_help.c:1658 sql_help.c:2464 sql_help.c:2689 +#: sql_help.c:3256 msgid "password" msgstr "пароль" -#: sql_help.c:955 sql_help.c:1642 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:969 sql_help.c:1659 sql_help.c:2465 sql_help.c:2690 +#: sql_help.c:3257 msgid "timestamp" msgstr "timestamp" -#: sql_help.c:959 sql_help.c:963 sql_help.c:966 sql_help.c:969 sql_help.c:1646 -#: sql_help.c:1650 sql_help.c:1653 sql_help.c:1656 sql_help.c:3909 -#: sql_help.c:4365 +#: sql_help.c:973 sql_help.c:977 sql_help.c:980 sql_help.c:983 sql_help.c:1663 +#: sql_help.c:1667 sql_help.c:1670 sql_help.c:1673 sql_help.c:3923 +#: sql_help.c:4386 msgid "database_name" msgstr "имя_БД" -#: sql_help.c:1075 sql_help.c:2744 +#: sql_help.c:1089 sql_help.c:2757 msgid "increment" msgstr "шаг" -#: sql_help.c:1076 sql_help.c:2745 +#: sql_help.c:1090 sql_help.c:2758 msgid "minvalue" msgstr "мин_значение" -#: sql_help.c:1077 sql_help.c:2746 +#: sql_help.c:1091 sql_help.c:2759 msgid "maxvalue" msgstr "макс_значение" -#: sql_help.c:1078 sql_help.c:2747 sql_help.c:4585 sql_help.c:4688 -#: sql_help.c:4842 sql_help.c:5019 sql_help.c:5088 +#: sql_help.c:1092 sql_help.c:2760 sql_help.c:4606 sql_help.c:4710 +#: sql_help.c:4864 sql_help.c:5040 sql_help.c:5109 msgid "start" msgstr "начальное_значение" -#: sql_help.c:1079 sql_help.c:1348 +#: sql_help.c:1093 sql_help.c:1365 msgid "restart" msgstr "значение_перезапуска" -#: sql_help.c:1080 sql_help.c:2748 +#: sql_help.c:1094 sql_help.c:2761 msgid "cache" msgstr "кеш" -#: sql_help.c:1125 +#: sql_help.c:1139 msgid "new_target" msgstr "новое_имя" -#: sql_help.c:1144 sql_help.c:2801 +#: sql_help.c:1158 sql_help.c:2814 msgid "conninfo" msgstr "строка_подключения" -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:2802 +#: sql_help.c:1160 sql_help.c:1164 sql_help.c:1168 sql_help.c:2815 msgid "publication_name" msgstr "имя_публикации" -#: sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 +#: sql_help.c:1161 sql_help.c:1165 sql_help.c:1169 msgid "publication_option" msgstr "параметр_публикации" -#: sql_help.c:1158 +#: sql_help.c:1172 msgid "refresh_option" msgstr "параметр_обновления" -#: sql_help.c:1163 sql_help.c:2803 +#: sql_help.c:1177 sql_help.c:2816 msgid "subscription_parameter" msgstr "параметр_подписки" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "skip_option" msgstr "параметр_пропуска" -#: sql_help.c:1325 sql_help.c:1328 +#: sql_help.c:1340 sql_help.c:1343 msgid "partition_name" msgstr "имя_секции" -#: sql_help.c:1326 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1341 sql_help.c:2370 sql_help.c:2947 msgid "partition_bound_spec" msgstr "указание_границ_секции" -#: sql_help.c:1345 sql_help.c:1395 sql_help.c:2948 +#: sql_help.c:1362 sql_help.c:1412 sql_help.c:2961 msgid "sequence_options" msgstr "параметры_последовательности" -#: sql_help.c:1347 +#: sql_help.c:1364 msgid "sequence_option" msgstr "параметр_последовательности" -#: sql_help.c:1361 +#: sql_help.c:1378 msgid "table_constraint_using_index" msgstr "ограничение_таблицы_с_индексом" -#: sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1386 sql_help.c:1387 sql_help.c:1388 sql_help.c:1389 msgid "rewrite_rule_name" msgstr "имя_правила_перезаписи" -#: sql_help.c:1384 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1401 sql_help.c:2382 sql_help.c:2986 msgid "and partition_bound_spec is:" msgstr "и указание_границ_секции:" -#: sql_help.c:1385 sql_help.c:1386 sql_help.c:1387 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1404 sql_help.c:2383 +#: sql_help.c:2384 sql_help.c:2385 sql_help.c:2987 sql_help.c:2988 +#: sql_help.c:2989 msgid "partition_bound_expr" msgstr "выражение_границ_секции" -#: sql_help.c:1388 sql_help.c:1389 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:2386 sql_help.c:2387 +#: sql_help.c:2990 sql_help.c:2991 msgid "numeric_literal" msgstr "числовая_константа" -#: sql_help.c:1390 +#: sql_help.c:1407 msgid "and column_constraint is:" msgstr "и ограничение_столбца:" -#: sql_help.c:1393 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1410 sql_help.c:2377 sql_help.c:2418 sql_help.c:2627 +#: sql_help.c:2959 msgid "default_expr" msgstr "выражение_по_умолчанию" -#: sql_help.c:1394 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1411 sql_help.c:2378 sql_help.c:2960 msgid "generation_expr" msgstr "генерирующее_выражение" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:1406 sql_help.c:1408 -#: sql_help.c:1412 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1413 sql_help.c:1414 sql_help.c:1423 sql_help.c:1425 +#: sql_help.c:1429 sql_help.c:2962 sql_help.c:2963 sql_help.c:2972 +#: sql_help.c:2974 sql_help.c:2978 msgid "index_parameters" msgstr "параметры_индекса" -#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1415 sql_help.c:1432 sql_help.c:2964 sql_help.c:2981 msgid "reftable" msgstr "целевая_таблица" -#: sql_help.c:1399 sql_help.c:1416 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1416 sql_help.c:1433 sql_help.c:2965 sql_help.c:2982 msgid "refcolumn" msgstr "целевой_столбец" -#: sql_help.c:1400 sql_help.c:1401 sql_help.c:1417 sql_help.c:1418 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1417 sql_help.c:1418 sql_help.c:1434 sql_help.c:1435 +#: sql_help.c:2966 sql_help.c:2967 sql_help.c:2983 sql_help.c:2984 msgid "referential_action" msgstr "ссылочное_действие" -#: sql_help.c:1402 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1419 sql_help.c:2379 sql_help.c:2968 msgid "and table_constraint is:" msgstr "и ограничение_таблицы:" -#: sql_help.c:1410 sql_help.c:2963 +#: sql_help.c:1427 sql_help.c:2976 msgid "exclude_element" msgstr "объект_исключения" -#: sql_help.c:1411 sql_help.c:2964 sql_help.c:4583 sql_help.c:4686 -#: sql_help.c:4840 sql_help.c:5017 sql_help.c:5086 +#: sql_help.c:1428 sql_help.c:2977 sql_help.c:4604 sql_help.c:4708 +#: sql_help.c:4862 sql_help.c:5038 sql_help.c:5107 msgid "operator" msgstr "оператор" -#: sql_help.c:1413 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1430 sql_help.c:2498 sql_help.c:2979 msgid "predicate" msgstr "предикат" -#: sql_help.c:1419 +#: sql_help.c:1436 msgid "and table_constraint_using_index is:" msgstr "и ограничение_таблицы_с_индексом:" -#: sql_help.c:1422 sql_help.c:2979 +#: sql_help.c:1439 sql_help.c:2992 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметры_индекса в ограничениях UNIQUE, PRIMARY KEY и EXCLUDE:" -#: sql_help.c:1427 sql_help.c:2984 +#: sql_help.c:1444 sql_help.c:2997 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "объект_исключения в ограничении EXCLUDE:" -#: sql_help.c:1431 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4008 +#: sql_help.c:1448 sql_help.c:2491 sql_help.c:2924 sql_help.c:2937 +#: sql_help.c:2951 sql_help.c:3001 sql_help.c:4022 msgid "opclass" msgstr "класс_оператора" -#: sql_help.c:1432 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1449 sql_help.c:2492 sql_help.c:3002 msgid "opclass_parameter" msgstr "параметр_класса_оп" -#: sql_help.c:1434 sql_help.c:2991 +#: sql_help.c:1451 sql_help.c:3004 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "ссылочное действие в ограничении FOREIGN KEY/REFERENCES:" -#: sql_help.c:1452 sql_help.c:1455 sql_help.c:3028 +#: sql_help.c:1469 sql_help.c:1472 sql_help.c:3041 msgid "tablespace_option" msgstr "параметр_табл_пространства" -#: sql_help.c:1476 sql_help.c:1479 sql_help.c:1485 sql_help.c:1489 +#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1502 sql_help.c:1506 msgid "token_type" msgstr "тип_фрагмента" -#: sql_help.c:1477 sql_help.c:1480 +#: sql_help.c:1494 sql_help.c:1497 msgid "dictionary_name" msgstr "имя_словаря" -#: sql_help.c:1482 sql_help.c:1486 +#: sql_help.c:1499 sql_help.c:1503 msgid "old_dictionary" msgstr "старый_словарь" -#: sql_help.c:1483 sql_help.c:1487 +#: sql_help.c:1500 sql_help.c:1504 msgid "new_dictionary" msgstr "новый_словарь" -#: sql_help.c:1582 sql_help.c:1596 sql_help.c:1599 sql_help.c:1600 -#: sql_help.c:3181 +#: sql_help.c:1599 sql_help.c:1613 sql_help.c:1616 sql_help.c:1617 +#: sql_help.c:3194 msgid "attribute_name" msgstr "имя_атрибута" -#: sql_help.c:1583 +#: sql_help.c:1600 msgid "new_attribute_name" msgstr "новое_имя_атрибута" -#: sql_help.c:1587 sql_help.c:1591 +#: sql_help.c:1604 sql_help.c:1608 msgid "new_enum_value" msgstr "новое_значение_перечисления" -#: sql_help.c:1588 +#: sql_help.c:1605 msgid "neighbor_enum_value" msgstr "соседнее_значение_перечисления" -#: sql_help.c:1590 +#: sql_help.c:1607 msgid "existing_enum_value" msgstr "существующее_значение_перечисления" -#: sql_help.c:1593 +#: sql_help.c:1610 msgid "property" msgstr "свойство" -#: sql_help.c:1669 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3918 sql_help.c:3964 -#: sql_help.c:4374 +#: sql_help.c:1686 sql_help.c:2362 sql_help.c:2371 sql_help.c:2773 +#: sql_help.c:3274 sql_help.c:3725 sql_help.c:3932 sql_help.c:3978 +#: sql_help.c:4395 msgid "server_name" msgstr "имя_сервера" -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:3276 +#: sql_help.c:1718 sql_help.c:1721 sql_help.c:3289 msgid "view_option_name" msgstr "имя_параметра_представления" -#: sql_help.c:1702 sql_help.c:3277 +#: sql_help.c:1719 sql_help.c:3290 msgid "view_option_value" msgstr "значение_параметра_представления" -#: sql_help.c:1724 sql_help.c:1725 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1740 sql_help.c:5007 msgid "table_and_columns" msgstr "таблица_и_столбцы" -#: sql_help.c:1726 sql_help.c:1790 sql_help.c:1982 sql_help.c:3761 -#: sql_help.c:4209 sql_help.c:4987 +#: sql_help.c:1741 sql_help.c:1801 sql_help.c:1995 sql_help.c:3774 +#: sql_help.c:4230 sql_help.c:5008 msgid "where option can be one of:" msgstr "где допустимый параметр:" -#: sql_help.c:1727 sql_help.c:1728 sql_help.c:1791 sql_help.c:1984 -#: sql_help.c:1988 sql_help.c:2168 sql_help.c:3762 sql_help.c:3763 -#: sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 sql_help.c:3767 -#: sql_help.c:3768 sql_help.c:3769 sql_help.c:3770 sql_help.c:4210 -#: sql_help.c:4212 sql_help.c:4988 sql_help.c:4989 sql_help.c:4990 -#: sql_help.c:4991 sql_help.c:4992 sql_help.c:4993 sql_help.c:4994 -#: sql_help.c:4995 sql_help.c:4996 sql_help.c:4998 sql_help.c:4999 +#: sql_help.c:1742 sql_help.c:1743 sql_help.c:1802 sql_help.c:1997 +#: sql_help.c:2001 sql_help.c:2183 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:3777 sql_help.c:3778 sql_help.c:3779 sql_help.c:3780 +#: sql_help.c:3781 sql_help.c:3782 sql_help.c:3783 sql_help.c:3784 +#: sql_help.c:4231 sql_help.c:4233 sql_help.c:5009 sql_help.c:5010 +#: sql_help.c:5011 sql_help.c:5012 sql_help.c:5013 sql_help.c:5014 +#: sql_help.c:5015 sql_help.c:5016 sql_help.c:5017 sql_help.c:5019 +#: sql_help.c:5020 msgid "boolean" msgstr "логическое_значение" -#: sql_help.c:1729 sql_help.c:5000 +#: sql_help.c:1744 sql_help.c:5021 msgid "size" msgstr "размер" -#: sql_help.c:1730 sql_help.c:5001 +#: sql_help.c:1745 sql_help.c:5022 msgid "and table_and_columns is:" msgstr "и таблица_и_столбцы:" -#: sql_help.c:1746 sql_help.c:4747 sql_help.c:4749 sql_help.c:4773 +#: sql_help.c:1761 sql_help.c:4769 sql_help.c:4771 sql_help.c:4795 msgid "transaction_mode" msgstr "режим_транзакции" -#: sql_help.c:1747 sql_help.c:4750 sql_help.c:4774 +#: sql_help.c:1762 sql_help.c:4772 sql_help.c:4796 msgid "where transaction_mode is one of:" msgstr "где допустимый режим_транзакции:" -#: sql_help.c:1756 sql_help.c:4593 sql_help.c:4602 sql_help.c:4606 -#: sql_help.c:4610 sql_help.c:4613 sql_help.c:4850 sql_help.c:4859 -#: sql_help.c:4863 sql_help.c:4867 sql_help.c:4870 sql_help.c:5096 -#: sql_help.c:5105 sql_help.c:5109 sql_help.c:5113 sql_help.c:5116 +#: sql_help.c:1771 sql_help.c:4614 sql_help.c:4623 sql_help.c:4627 +#: sql_help.c:4631 sql_help.c:4634 sql_help.c:4872 sql_help.c:4881 +#: sql_help.c:4885 sql_help.c:4889 sql_help.c:4892 sql_help.c:5117 +#: sql_help.c:5126 sql_help.c:5130 sql_help.c:5134 sql_help.c:5137 msgid "argument" msgstr "аргумент" -#: sql_help.c:1856 +#: sql_help.c:1867 msgid "relation_name" msgstr "имя_отношения" -#: sql_help.c:1861 sql_help.c:3912 sql_help.c:4368 +#: sql_help.c:1872 sql_help.c:3926 sql_help.c:4389 msgid "domain_name" msgstr "имя_домена" -#: sql_help.c:1883 +#: sql_help.c:1894 msgid "policy_name" msgstr "имя_политики" -#: sql_help.c:1896 +#: sql_help.c:1907 msgid "rule_name" msgstr "имя_правила" -#: sql_help.c:1915 sql_help.c:4507 +#: sql_help.c:1926 sql_help.c:4528 msgid "string_literal" msgstr "строковая_константа" -#: sql_help.c:1940 sql_help.c:4171 sql_help.c:4421 +#: sql_help.c:1951 sql_help.c:4192 sql_help.c:4442 msgid "transaction_id" msgstr "код_транзакции" -#: sql_help.c:1972 sql_help.c:1979 sql_help.c:4034 +#: sql_help.c:1985 sql_help.c:1992 sql_help.c:4048 msgid "filename" msgstr "имя_файла" -#: sql_help.c:1973 sql_help.c:1980 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1986 sql_help.c:1993 sql_help.c:2712 sql_help.c:2713 +#: sql_help.c:2714 msgid "command" msgstr "команда" -#: sql_help.c:1975 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4018 sql_help.c:4097 sql_help.c:4100 sql_help.c:4576 -#: sql_help.c:4578 sql_help.c:4679 sql_help.c:4681 sql_help.c:4833 -#: sql_help.c:4835 sql_help.c:4951 sql_help.c:5079 sql_help.c:5081 +#: sql_help.c:1988 sql_help.c:2711 sql_help.c:3144 sql_help.c:3325 +#: sql_help.c:4032 sql_help.c:4115 sql_help.c:4118 sql_help.c:4121 +#: sql_help.c:4597 sql_help.c:4599 sql_help.c:4701 sql_help.c:4703 +#: sql_help.c:4855 sql_help.c:4857 sql_help.c:4974 sql_help.c:5100 +#: sql_help.c:5102 msgid "condition" msgstr "условие" -#: sql_help.c:1978 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3999 +#: sql_help.c:1991 sql_help.c:2532 sql_help.c:3027 sql_help.c:3291 +#: sql_help.c:3309 sql_help.c:4013 msgid "query" msgstr "запрос" -#: sql_help.c:1983 +#: sql_help.c:1996 msgid "format_name" msgstr "имя_формата" -#: sql_help.c:1985 +#: sql_help.c:1998 msgid "delimiter_character" msgstr "символ_разделитель" -#: sql_help.c:1986 +#: sql_help.c:1999 msgid "null_string" msgstr "представление_NULL" -#: sql_help.c:1987 +#: sql_help.c:2000 msgid "default_string" msgstr "представление_DEFAULT" -#: sql_help.c:1989 +#: sql_help.c:2002 msgid "quote_character" msgstr "символ_кавычек" -#: sql_help.c:1990 +#: sql_help.c:2003 msgid "escape_character" msgstr "спецсимвол" -#: sql_help.c:1994 +#: sql_help.c:2007 +msgid "error_action" +msgstr "действие_при_ошибке" + +#: sql_help.c:2008 msgid "encoding_name" msgstr "имя_кодировки" -#: sql_help.c:2005 +#: sql_help.c:2009 +msgid "verbosity" +msgstr "детализация" + +#: sql_help.c:2020 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2076 sql_help.c:2095 sql_help.c:2098 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2113 msgid "arg_data_type" msgstr "тип_данных_аргумента" -#: sql_help.c:2077 sql_help.c:2099 sql_help.c:2107 +#: sql_help.c:2092 sql_help.c:2114 sql_help.c:2122 msgid "sfunc" msgstr "функция_состояния" -#: sql_help.c:2078 sql_help.c:2100 sql_help.c:2108 +#: sql_help.c:2093 sql_help.c:2115 sql_help.c:2123 msgid "state_data_type" msgstr "тип_данных_состояния" -#: sql_help.c:2079 sql_help.c:2101 sql_help.c:2109 +#: sql_help.c:2094 sql_help.c:2116 sql_help.c:2124 msgid "state_data_size" msgstr "размер_данных_состояния" -#: sql_help.c:2080 sql_help.c:2102 sql_help.c:2110 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "ffunc" msgstr "функция_завершения" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2096 sql_help.c:2126 msgid "combinefunc" msgstr "комбинирующая_функция" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2097 sql_help.c:2127 msgid "serialfunc" msgstr "функция_сериализации" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2098 sql_help.c:2128 msgid "deserialfunc" msgstr "функция_десериализации" -#: sql_help.c:2084 sql_help.c:2103 sql_help.c:2114 +#: sql_help.c:2099 sql_help.c:2118 sql_help.c:2129 msgid "initial_condition" msgstr "начальное_условие" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2100 sql_help.c:2130 msgid "msfunc" msgstr "функция_состояния_движ" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2101 sql_help.c:2131 msgid "minvfunc" msgstr "обратная_функция_движ" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2102 sql_help.c:2132 msgid "mstate_data_type" msgstr "тип_данных_состояния_движ" -#: sql_help.c:2088 sql_help.c:2118 +#: sql_help.c:2103 sql_help.c:2133 msgid "mstate_data_size" msgstr "размер_данных_состояния_движ" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2104 sql_help.c:2134 msgid "mffunc" msgstr "функция_завершения_движ" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2105 sql_help.c:2135 msgid "minitial_condition" msgstr "начальное_условие_движ" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2106 sql_help.c:2136 msgid "sort_operator" msgstr "оператор_сортировки" -#: sql_help.c:2104 +#: sql_help.c:2119 msgid "or the old syntax" msgstr "или старый синтаксис" -#: sql_help.c:2106 +#: sql_help.c:2121 msgid "base_type" msgstr "базовый_тип" -#: sql_help.c:2164 sql_help.c:2213 +#: sql_help.c:2179 sql_help.c:2229 msgid "locale" msgstr "код_локали" -#: sql_help.c:2165 sql_help.c:2214 +#: sql_help.c:2180 sql_help.c:2230 msgid "lc_collate" msgstr "код_правила_сортировки" -#: sql_help.c:2166 sql_help.c:2215 +#: sql_help.c:2181 sql_help.c:2231 msgid "lc_ctype" msgstr "код_классификации_символов" -#: sql_help.c:2167 sql_help.c:4474 +#: sql_help.c:2182 sql_help.c:4495 msgid "provider" msgstr "провайдер" -#: sql_help.c:2169 +#: sql_help.c:2184 msgid "rules" msgstr "правила" -#: sql_help.c:2170 sql_help.c:2275 +#: sql_help.c:2185 sql_help.c:2292 msgid "version" msgstr "версия" -#: sql_help.c:2172 +#: sql_help.c:2187 msgid "existing_collation" msgstr "существующее_правило_сортировки" -#: sql_help.c:2182 +#: sql_help.c:2197 msgid "source_encoding" msgstr "исходная_кодировка" -#: sql_help.c:2183 +#: sql_help.c:2198 msgid "dest_encoding" msgstr "целевая_кодировка" -#: sql_help.c:2210 sql_help.c:3054 +#: sql_help.c:2226 sql_help.c:3067 msgid "template" msgstr "шаблон" -#: sql_help.c:2211 +#: sql_help.c:2227 msgid "encoding" msgstr "кодировка" -#: sql_help.c:2212 +#: sql_help.c:2228 msgid "strategy" msgstr "стратегия" -#: sql_help.c:2216 +#: sql_help.c:2232 +msgid "builtin_locale" +msgstr "встроенная_локаль" + +#: sql_help.c:2233 msgid "icu_locale" msgstr "локаль_icu" -#: sql_help.c:2217 +#: sql_help.c:2234 msgid "icu_rules" msgstr "правила_icu" -#: sql_help.c:2218 +#: sql_help.c:2235 msgid "locale_provider" msgstr "провайдер_локали" -#: sql_help.c:2219 +#: sql_help.c:2236 msgid "collation_version" msgstr "версия_правила_сортировки" -#: sql_help.c:2224 +#: sql_help.c:2241 msgid "oid" msgstr "oid" -#: sql_help.c:2244 -msgid "constraint" -msgstr "ограничение" - -#: sql_help.c:2245 -msgid "where constraint is:" -msgstr "где ограничение:" - -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2276 sql_help.c:2709 sql_help.c:3140 msgid "event" msgstr "событие" -#: sql_help.c:2260 +#: sql_help.c:2277 msgid "filter_variable" msgstr "переменная_фильтра" -#: sql_help.c:2261 +#: sql_help.c:2278 msgid "filter_value" msgstr "значение_фильтра" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2374 sql_help.c:2956 msgid "where column_constraint is:" msgstr "где ограничение_столбца:" -#: sql_help.c:2402 +#: sql_help.c:2419 msgid "rettype" msgstr "тип_возврата" -#: sql_help.c:2404 +#: sql_help.c:2421 msgid "column_type" msgstr "тип_столбца" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2430 sql_help.c:2633 msgid "definition" msgstr "определение" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2431 sql_help.c:2634 msgid "obj_file" msgstr "объектный_файл" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2432 sql_help.c:2635 msgid "link_symbol" msgstr "символ_в_экспорте" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2433 sql_help.c:2636 msgid "sql_body" msgstr "тело_sql" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2471 sql_help.c:2694 sql_help.c:3263 msgid "uid" msgstr "uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2487 sql_help.c:2528 sql_help.c:2925 sql_help.c:2938 +#: sql_help.c:2952 sql_help.c:3023 msgid "method" msgstr "метод" -#: sql_help.c:2492 +#: sql_help.c:2509 msgid "call_handler" msgstr "обработчик_вызова" -#: sql_help.c:2493 +#: sql_help.c:2510 msgid "inline_handler" msgstr "обработчик_внедрённого_кода" -#: sql_help.c:2494 +#: sql_help.c:2511 msgid "valfunction" msgstr "функция_проверки" -#: sql_help.c:2533 -msgid "com_op" -msgstr "коммут_оператор" - -#: sql_help.c:2534 -msgid "neg_op" -msgstr "обратный_оператор" - -#: sql_help.c:2552 +#: sql_help.c:2569 msgid "family_name" msgstr "имя_семейства" -#: sql_help.c:2563 +#: sql_help.c:2580 msgid "storage_type" msgstr "тип_хранения" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2715 sql_help.c:3147 msgid "where event can be one of:" msgstr "где допустимое событие:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2735 sql_help.c:2737 msgid "schema_element" msgstr "элемент_схемы" -#: sql_help.c:2761 +#: sql_help.c:2774 msgid "server_type" msgstr "тип_сервера" -#: sql_help.c:2762 +#: sql_help.c:2775 msgid "server_version" msgstr "версия_сервера" -#: sql_help.c:2763 sql_help.c:3915 sql_help.c:4371 +#: sql_help.c:2776 sql_help.c:3929 sql_help.c:4392 msgid "fdw_name" msgstr "имя_обёртки_сторонних_данных" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2793 sql_help.c:2796 msgid "statistics_name" msgstr "имя_статистики" -#: sql_help.c:2784 +#: sql_help.c:2797 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2800 +#: sql_help.c:2813 msgid "subscription_name" msgstr "имя_подписки" -#: sql_help.c:2905 +#: sql_help.c:2918 msgid "source_table" msgstr "исходная_таблица" -#: sql_help.c:2906 +#: sql_help.c:2919 msgid "like_option" msgstr "параметр_порождения" -#: sql_help.c:2972 +#: sql_help.c:2985 msgid "and like_option is:" msgstr "и параметр_порождения:" -#: sql_help.c:3027 +#: sql_help.c:3040 msgid "directory" msgstr "каталог" -#: sql_help.c:3041 +#: sql_help.c:3054 msgid "parser_name" msgstr "имя_анализатора" -#: sql_help.c:3042 +#: sql_help.c:3055 msgid "source_config" msgstr "исходная_конфигурация" -#: sql_help.c:3071 +#: sql_help.c:3084 msgid "start_function" msgstr "функция_начала" -#: sql_help.c:3072 +#: sql_help.c:3085 msgid "gettoken_function" msgstr "функция_выдачи_фрагмента" -#: sql_help.c:3073 +#: sql_help.c:3086 msgid "end_function" msgstr "функция_окончания" -#: sql_help.c:3074 +#: sql_help.c:3087 msgid "lextypes_function" msgstr "функция_лекс_типов" -#: sql_help.c:3075 +#: sql_help.c:3088 msgid "headline_function" msgstr "функция_создания_выдержек" -#: sql_help.c:3087 +#: sql_help.c:3100 msgid "init_function" msgstr "функция_инициализации" -#: sql_help.c:3088 +#: sql_help.c:3101 msgid "lexize_function" msgstr "функция_выделения_лексем" -#: sql_help.c:3101 +#: sql_help.c:3114 msgid "from_sql_function_name" msgstr "имя_функции_из_sql" -#: sql_help.c:3103 +#: sql_help.c:3116 msgid "to_sql_function_name" msgstr "имя_функции_в_sql" -#: sql_help.c:3129 +#: sql_help.c:3142 msgid "referenced_table_name" msgstr "ссылающаяся_таблица" -#: sql_help.c:3130 +#: sql_help.c:3143 msgid "transition_relation_name" msgstr "имя_переходного_отношения" -#: sql_help.c:3133 +#: sql_help.c:3146 msgid "arguments" msgstr "аргументы" -#: sql_help.c:3185 +#: sql_help.c:3198 msgid "label" msgstr "метка" -#: sql_help.c:3187 +#: sql_help.c:3200 msgid "subtype" msgstr "подтип" -#: sql_help.c:3188 +#: sql_help.c:3201 msgid "subtype_operator_class" msgstr "класс_оператора_подтипа" -#: sql_help.c:3190 +#: sql_help.c:3203 msgid "canonical_function" msgstr "каноническая_функция" -#: sql_help.c:3191 +#: sql_help.c:3204 msgid "subtype_diff_function" msgstr "функция_различий_подтипа" -#: sql_help.c:3192 +#: sql_help.c:3205 msgid "multirange_type_name" msgstr "имя_мультидиапазонного_типа" -#: sql_help.c:3194 +#: sql_help.c:3207 msgid "input_function" msgstr "функция_ввода" -#: sql_help.c:3195 +#: sql_help.c:3208 msgid "output_function" msgstr "функция_вывода" -#: sql_help.c:3196 +#: sql_help.c:3209 msgid "receive_function" msgstr "функция_получения" -#: sql_help.c:3197 +#: sql_help.c:3210 msgid "send_function" msgstr "функция_отправки" -#: sql_help.c:3198 +#: sql_help.c:3211 msgid "type_modifier_input_function" msgstr "функция_ввода_модификатора_типа" -#: sql_help.c:3199 +#: sql_help.c:3212 msgid "type_modifier_output_function" msgstr "функция_вывода_модификатора_типа" -#: sql_help.c:3200 +#: sql_help.c:3213 msgid "analyze_function" msgstr "функция_анализа" -#: sql_help.c:3201 +#: sql_help.c:3214 msgid "subscript_function" msgstr "функция_обращения_по_индексу" -#: sql_help.c:3202 +#: sql_help.c:3215 msgid "internallength" msgstr "внутр_длина" -#: sql_help.c:3203 +#: sql_help.c:3216 msgid "alignment" msgstr "выравнивание" -#: sql_help.c:3204 +#: sql_help.c:3217 msgid "storage" msgstr "хранение" -#: sql_help.c:3205 +#: sql_help.c:3218 msgid "like_type" msgstr "тип_образец" -#: sql_help.c:3206 +#: sql_help.c:3219 msgid "category" msgstr "категория" -#: sql_help.c:3207 +#: sql_help.c:3220 msgid "preferred" msgstr "предпочитаемый" -#: sql_help.c:3208 +#: sql_help.c:3221 msgid "default" msgstr "по_умолчанию" -#: sql_help.c:3209 +#: sql_help.c:3222 msgid "element" msgstr "элемент" -#: sql_help.c:3210 +#: sql_help.c:3223 msgid "delimiter" msgstr "разделитель" -#: sql_help.c:3211 +#: sql_help.c:3224 msgid "collatable" msgstr "сортируемый" -#: sql_help.c:3308 sql_help.c:3994 sql_help.c:4086 sql_help.c:4571 -#: sql_help.c:4673 sql_help.c:4828 sql_help.c:4941 sql_help.c:5074 +#: sql_help.c:3321 sql_help.c:4008 sql_help.c:4102 sql_help.c:4592 +#: sql_help.c:4695 sql_help.c:4850 sql_help.c:4964 sql_help.c:5095 msgid "with_query" msgstr "запрос_WITH" -#: sql_help.c:3310 sql_help.c:3996 sql_help.c:4590 sql_help.c:4596 -#: sql_help.c:4599 sql_help.c:4603 sql_help.c:4607 sql_help.c:4615 -#: sql_help.c:4847 sql_help.c:4853 sql_help.c:4856 sql_help.c:4860 -#: sql_help.c:4864 sql_help.c:4872 sql_help.c:4943 sql_help.c:5093 -#: sql_help.c:5099 sql_help.c:5102 sql_help.c:5106 sql_help.c:5110 -#: sql_help.c:5118 +#: sql_help.c:3323 sql_help.c:4010 sql_help.c:4611 sql_help.c:4617 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4628 sql_help.c:4636 +#: sql_help.c:4869 sql_help.c:4875 sql_help.c:4878 sql_help.c:4882 +#: sql_help.c:4886 sql_help.c:4894 sql_help.c:4966 sql_help.c:5114 +#: sql_help.c:5120 sql_help.c:5123 sql_help.c:5127 sql_help.c:5131 +#: sql_help.c:5139 msgid "alias" msgstr "псевдоним" -#: sql_help.c:3311 sql_help.c:4575 sql_help.c:4617 sql_help.c:4619 -#: sql_help.c:4623 sql_help.c:4625 sql_help.c:4626 sql_help.c:4627 -#: sql_help.c:4678 sql_help.c:4832 sql_help.c:4874 sql_help.c:4876 -#: sql_help.c:4880 sql_help.c:4882 sql_help.c:4883 sql_help.c:4884 -#: sql_help.c:4950 sql_help.c:5078 sql_help.c:5120 sql_help.c:5122 -#: sql_help.c:5126 sql_help.c:5128 sql_help.c:5129 sql_help.c:5130 +#: sql_help.c:3324 sql_help.c:4596 sql_help.c:4638 sql_help.c:4640 +#: sql_help.c:4644 sql_help.c:4646 sql_help.c:4647 sql_help.c:4648 +#: sql_help.c:4700 sql_help.c:4854 sql_help.c:4896 sql_help.c:4898 +#: sql_help.c:4902 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4973 sql_help.c:5099 sql_help.c:5141 sql_help.c:5143 +#: sql_help.c:5147 sql_help.c:5149 sql_help.c:5150 sql_help.c:5151 msgid "from_item" msgstr "источник_данных" -#: sql_help.c:3313 sql_help.c:3796 sql_help.c:4138 sql_help.c:4952 +#: sql_help.c:3326 sql_help.c:3810 sql_help.c:4159 sql_help.c:4975 msgid "cursor_name" msgstr "имя_курсора" -#: sql_help.c:3314 sql_help.c:4002 sql_help.c:4953 +#: sql_help.c:3327 sql_help.c:4016 sql_help.c:4108 sql_help.c:4976 msgid "output_expression" msgstr "выражение_результата" -#: sql_help.c:3315 sql_help.c:4003 sql_help.c:4574 sql_help.c:4676 -#: sql_help.c:4831 sql_help.c:4954 sql_help.c:5077 +#: sql_help.c:3328 sql_help.c:4017 sql_help.c:4109 sql_help.c:4595 +#: sql_help.c:4698 sql_help.c:4853 sql_help.c:4977 sql_help.c:5098 msgid "output_name" msgstr "имя_результата" -#: sql_help.c:3331 +#: sql_help.c:3344 msgid "code" msgstr "внедрённый_код" -#: sql_help.c:3736 +#: sql_help.c:3749 msgid "parameter" msgstr "параметр" -#: sql_help.c:3759 sql_help.c:3760 sql_help.c:4163 +#: sql_help.c:3773 sql_help.c:4184 msgid "statement" msgstr "оператор" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3809 sql_help.c:4158 msgid "direction" msgstr "направление" -#: sql_help.c:3797 sql_help.c:4139 +#: sql_help.c:3811 sql_help.c:4160 msgid "where direction can be one of:" msgstr "где допустимое направление:" -#: sql_help.c:3798 sql_help.c:3799 sql_help.c:3800 sql_help.c:3801 -#: sql_help.c:3802 sql_help.c:4140 sql_help.c:4141 sql_help.c:4142 -#: sql_help.c:4143 sql_help.c:4144 sql_help.c:4584 sql_help.c:4586 -#: sql_help.c:4687 sql_help.c:4689 sql_help.c:4841 sql_help.c:4843 -#: sql_help.c:5018 sql_help.c:5020 sql_help.c:5087 sql_help.c:5089 +#: sql_help.c:3812 sql_help.c:3813 sql_help.c:3814 sql_help.c:3815 +#: sql_help.c:3816 sql_help.c:4161 sql_help.c:4162 sql_help.c:4163 +#: sql_help.c:4164 sql_help.c:4165 sql_help.c:4605 sql_help.c:4607 +#: sql_help.c:4709 sql_help.c:4711 sql_help.c:4863 sql_help.c:4865 +#: sql_help.c:5039 sql_help.c:5041 sql_help.c:5108 sql_help.c:5110 msgid "count" msgstr "число" -#: sql_help.c:3905 sql_help.c:4361 +#: sql_help.c:3919 sql_help.c:4382 msgid "sequence_name" msgstr "имя_последовательности" -#: sql_help.c:3923 sql_help.c:4379 +#: sql_help.c:3937 sql_help.c:4400 msgid "arg_name" msgstr "имя_аргумента" -#: sql_help.c:3924 sql_help.c:4380 +#: sql_help.c:3938 sql_help.c:4401 msgid "arg_type" msgstr "тип_аргумента" -#: sql_help.c:3931 sql_help.c:4387 +#: sql_help.c:3945 sql_help.c:4408 msgid "loid" msgstr "код_БО" -#: sql_help.c:3962 +#: sql_help.c:3976 msgid "remote_schema" msgstr "удалённая_схема" -#: sql_help.c:3965 +#: sql_help.c:3979 msgid "local_schema" msgstr "локальная_схема" -#: sql_help.c:4000 +#: sql_help.c:4014 msgid "conflict_target" msgstr "объект_конфликта" -#: sql_help.c:4001 +#: sql_help.c:4015 msgid "conflict_action" msgstr "действие_при_конфликте" -#: sql_help.c:4004 +#: sql_help.c:4018 msgid "where conflict_target can be one of:" msgstr "где допустимый объект_конфликта:" -#: sql_help.c:4005 +#: sql_help.c:4019 msgid "index_column_name" msgstr "имя_столбца_индекса" -#: sql_help.c:4006 +#: sql_help.c:4020 msgid "index_expression" msgstr "выражение_индекса" -#: sql_help.c:4009 +#: sql_help.c:4023 msgid "index_predicate" msgstr "предикат_индекса" -#: sql_help.c:4011 +#: sql_help.c:4025 msgid "and conflict_action is one of:" msgstr "а допустимое действие_при_конфликте:" -#: sql_help.c:4017 sql_help.c:4111 sql_help.c:4949 +#: sql_help.c:4031 sql_help.c:4132 sql_help.c:4972 msgid "sub-SELECT" msgstr "вложенный_SELECT" -#: sql_help.c:4026 sql_help.c:4152 sql_help.c:4925 +#: sql_help.c:4040 sql_help.c:4173 sql_help.c:4948 msgid "channel" msgstr "канал" -#: sql_help.c:4048 +#: sql_help.c:4062 msgid "lockmode" msgstr "режим_блокировки" -#: sql_help.c:4049 +#: sql_help.c:4063 msgid "where lockmode is one of:" msgstr "где допустимый режим_блокировки:" -#: sql_help.c:4087 +#: sql_help.c:4103 msgid "target_table_name" msgstr "имя_целевой_таблицы" -#: sql_help.c:4088 +#: sql_help.c:4104 msgid "target_alias" msgstr "псевдоним_назначения" -#: sql_help.c:4089 +#: sql_help.c:4105 msgid "data_source" msgstr "источник_данных" -#: sql_help.c:4090 sql_help.c:4620 sql_help.c:4877 sql_help.c:5123 +#: sql_help.c:4106 sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "join_condition" msgstr "условие_соединения" -#: sql_help.c:4091 +#: sql_help.c:4107 msgid "when_clause" msgstr "предложение_when" -#: sql_help.c:4092 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "где источник_данных:" -#: sql_help.c:4093 +#: sql_help.c:4111 msgid "source_table_name" msgstr "имя_исходной_таблицы" -#: sql_help.c:4094 +#: sql_help.c:4112 msgid "source_query" msgstr "исходный_запрос" -#: sql_help.c:4095 +#: sql_help.c:4113 msgid "source_alias" msgstr "псевдоним_источника" -#: sql_help.c:4096 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "и предложение_when:" -#: sql_help.c:4098 +#: sql_help.c:4116 sql_help.c:4119 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4099 +#: sql_help.c:4117 sql_help.c:4120 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4101 +#: sql_help.c:4122 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4102 +#: sql_help.c:4123 msgid "and merge_insert is:" msgstr "и merge_insert:" -#: sql_help.c:4105 +#: sql_help.c:4126 msgid "and merge_update is:" msgstr "и merge_update:" -#: sql_help.c:4112 +#: sql_help.c:4133 msgid "and merge_delete is:" msgstr "и merge_delete:" -#: sql_help.c:4153 +#: sql_help.c:4174 msgid "payload" msgstr "сообщение_нагрузка" -#: sql_help.c:4180 +#: sql_help.c:4201 msgid "old_role" msgstr "старая_роль" -#: sql_help.c:4181 +#: sql_help.c:4202 msgid "new_role" msgstr "новая_роль" -#: sql_help.c:4220 sql_help.c:4429 sql_help.c:4437 +#: sql_help.c:4241 sql_help.c:4450 sql_help.c:4458 msgid "savepoint_name" msgstr "имя_точки_сохранения" -#: sql_help.c:4577 sql_help.c:4635 sql_help.c:4834 sql_help.c:4892 -#: sql_help.c:5080 sql_help.c:5138 +#: sql_help.c:4598 sql_help.c:4656 sql_help.c:4856 sql_help.c:4914 +#: sql_help.c:5101 sql_help.c:5159 msgid "grouping_element" msgstr "элемент_группирования" -#: sql_help.c:4579 sql_help.c:4682 sql_help.c:4836 sql_help.c:5082 +#: sql_help.c:4600 sql_help.c:4704 sql_help.c:4858 sql_help.c:5103 msgid "window_name" msgstr "имя_окна" -#: sql_help.c:4580 sql_help.c:4683 sql_help.c:4837 sql_help.c:5083 +#: sql_help.c:4601 sql_help.c:4705 sql_help.c:4859 sql_help.c:5104 msgid "window_definition" msgstr "определение_окна" -#: sql_help.c:4581 sql_help.c:4595 sql_help.c:4639 sql_help.c:4684 -#: sql_help.c:4838 sql_help.c:4852 sql_help.c:4896 sql_help.c:5084 -#: sql_help.c:5098 sql_help.c:5142 +#: sql_help.c:4602 sql_help.c:4616 sql_help.c:4660 sql_help.c:4706 +#: sql_help.c:4860 sql_help.c:4874 sql_help.c:4918 sql_help.c:5105 +#: sql_help.c:5119 sql_help.c:5163 msgid "select" msgstr "select" -#: sql_help.c:4588 sql_help.c:4845 sql_help.c:5091 +#: sql_help.c:4608 sql_help.c:4866 sql_help.c:5111 +msgid "from_reference" +msgstr "ссылка_FROM" + +#: sql_help.c:4609 sql_help.c:4867 sql_help.c:5112 msgid "where from_item can be one of:" msgstr "где допустимый источник_данных:" -#: sql_help.c:4591 sql_help.c:4597 sql_help.c:4600 sql_help.c:4604 -#: sql_help.c:4616 sql_help.c:4848 sql_help.c:4854 sql_help.c:4857 -#: sql_help.c:4861 sql_help.c:4873 sql_help.c:5094 sql_help.c:5100 -#: sql_help.c:5103 sql_help.c:5107 sql_help.c:5119 +#: sql_help.c:4612 sql_help.c:4618 sql_help.c:4621 sql_help.c:4625 +#: sql_help.c:4637 sql_help.c:4870 sql_help.c:4876 sql_help.c:4879 +#: sql_help.c:4883 sql_help.c:4895 sql_help.c:5115 sql_help.c:5121 +#: sql_help.c:5124 sql_help.c:5128 sql_help.c:5140 msgid "column_alias" msgstr "псевдоним_столбца" -#: sql_help.c:4592 sql_help.c:4849 sql_help.c:5095 +#: sql_help.c:4613 sql_help.c:4871 sql_help.c:5116 msgid "sampling_method" msgstr "метод_выборки" -#: sql_help.c:4594 sql_help.c:4851 sql_help.c:5097 +#: sql_help.c:4615 sql_help.c:4873 sql_help.c:5118 msgid "seed" msgstr "начальное_число" -#: sql_help.c:4598 sql_help.c:4637 sql_help.c:4855 sql_help.c:4894 -#: sql_help.c:5101 sql_help.c:5140 +#: sql_help.c:4619 sql_help.c:4658 sql_help.c:4877 sql_help.c:4916 +#: sql_help.c:5122 sql_help.c:5161 msgid "with_query_name" msgstr "имя_запроса_WITH" -#: sql_help.c:4608 sql_help.c:4611 sql_help.c:4614 sql_help.c:4865 -#: sql_help.c:4868 sql_help.c:4871 sql_help.c:5111 sql_help.c:5114 -#: sql_help.c:5117 +#: sql_help.c:4629 sql_help.c:4632 sql_help.c:4635 sql_help.c:4887 +#: sql_help.c:4890 sql_help.c:4893 sql_help.c:5132 sql_help.c:5135 +#: sql_help.c:5138 msgid "column_definition" msgstr "определение_столбца" -#: sql_help.c:4618 sql_help.c:4624 sql_help.c:4875 sql_help.c:4881 -#: sql_help.c:5121 sql_help.c:5127 +#: sql_help.c:4639 sql_help.c:4645 sql_help.c:4897 sql_help.c:4903 +#: sql_help.c:5142 sql_help.c:5148 msgid "join_type" msgstr "тип_соединения" -#: sql_help.c:4621 sql_help.c:4878 sql_help.c:5124 +#: sql_help.c:4642 sql_help.c:4900 sql_help.c:5145 msgid "join_column" msgstr "столбец_соединения" -#: sql_help.c:4622 sql_help.c:4879 sql_help.c:5125 +#: sql_help.c:4643 sql_help.c:4901 sql_help.c:5146 msgid "join_using_alias" msgstr "псевдоним_использования_соединения" -#: sql_help.c:4628 sql_help.c:4885 sql_help.c:5131 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and grouping_element can be one of:" msgstr "где допустимый элемент_группирования:" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 msgid "and with_query is:" msgstr "и запрос_WITH:" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5143 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "values" msgstr "значения" -#: sql_help.c:4641 sql_help.c:4898 sql_help.c:5144 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "insert" msgstr "insert" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5145 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "update" msgstr "update" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5146 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "delete" msgstr "delete" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5148 +#: sql_help.c:4665 sql_help.c:4923 sql_help.c:5168 +msgid "merge" +msgstr "merge" + +#: sql_help.c:4667 sql_help.c:4925 sql_help.c:5170 msgid "search_seq_col_name" msgstr "имя_столбца_послед_поиска" -#: sql_help.c:4647 sql_help.c:4904 sql_help.c:5150 +#: sql_help.c:4669 sql_help.c:4927 sql_help.c:5172 msgid "cycle_mark_col_name" msgstr "имя_столбца_пометки_цикла" -#: sql_help.c:4648 sql_help.c:4905 sql_help.c:5151 +#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 msgid "cycle_mark_value" msgstr "значение_пометки_цикла" -#: sql_help.c:4649 sql_help.c:4906 sql_help.c:5152 +#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 msgid "cycle_mark_default" msgstr "пометка_цикла_по_умолчанию" -#: sql_help.c:4650 sql_help.c:4907 sql_help.c:5153 +#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 msgid "cycle_path_col_name" msgstr "имя_столбца_пути_цикла" -#: sql_help.c:4677 +#: sql_help.c:4699 msgid "new_table" msgstr "новая_таблица" -#: sql_help.c:4748 +#: sql_help.c:4770 msgid "snapshot_id" msgstr "код_снимка" -#: sql_help.c:5016 +#: sql_help.c:5037 msgid "sort_expression" msgstr "выражение_сортировки" -#: sql_help.c:5160 sql_help.c:6144 +#: sql_help.c:5182 sql_help.c:6166 msgid "abort the current transaction" msgstr "прервать текущую транзакцию" -#: sql_help.c:5166 +#: sql_help.c:5188 msgid "change the definition of an aggregate function" msgstr "изменить определение агрегатной функции" -#: sql_help.c:5172 +#: sql_help.c:5194 msgid "change the definition of a collation" msgstr "изменить определение правила сортировки" -#: sql_help.c:5178 +#: sql_help.c:5200 msgid "change the definition of a conversion" msgstr "изменить определение преобразования" -#: sql_help.c:5184 +#: sql_help.c:5206 msgid "change a database" msgstr "изменить атрибуты базы данных" -#: sql_help.c:5190 +#: sql_help.c:5212 msgid "define default access privileges" msgstr "определить права доступа по умолчанию" -#: sql_help.c:5196 +#: sql_help.c:5218 msgid "change the definition of a domain" msgstr "изменить определение домена" -#: sql_help.c:5202 +#: sql_help.c:5224 msgid "change the definition of an event trigger" msgstr "изменить определение событийного триггера" -#: sql_help.c:5208 +#: sql_help.c:5230 msgid "change the definition of an extension" msgstr "изменить определение расширения" -#: sql_help.c:5214 +#: sql_help.c:5236 msgid "change the definition of a foreign-data wrapper" msgstr "изменить определение обёртки сторонних данных" -#: sql_help.c:5220 +#: sql_help.c:5242 msgid "change the definition of a foreign table" msgstr "изменить определение сторонней таблицы" -#: sql_help.c:5226 +#: sql_help.c:5248 msgid "change the definition of a function" msgstr "изменить определение функции" -#: sql_help.c:5232 +#: sql_help.c:5254 msgid "change role name or membership" msgstr "изменить имя роли или членство" -#: sql_help.c:5238 +#: sql_help.c:5260 msgid "change the definition of an index" msgstr "изменить определение индекса" -#: sql_help.c:5244 +#: sql_help.c:5266 msgid "change the definition of a procedural language" msgstr "изменить определение процедурного языка" -#: sql_help.c:5250 +#: sql_help.c:5272 msgid "change the definition of a large object" msgstr "изменить определение большого объекта" -#: sql_help.c:5256 +#: sql_help.c:5278 msgid "change the definition of a materialized view" msgstr "изменить определение материализованного представления" -#: sql_help.c:5262 +#: sql_help.c:5284 msgid "change the definition of an operator" msgstr "изменить определение оператора" -#: sql_help.c:5268 +#: sql_help.c:5290 msgid "change the definition of an operator class" msgstr "изменить определение класса операторов" -#: sql_help.c:5274 +#: sql_help.c:5296 msgid "change the definition of an operator family" msgstr "изменить определение семейства операторов" -#: sql_help.c:5280 +#: sql_help.c:5302 msgid "change the definition of a row-level security policy" msgstr "изменить определение политики защиты на уровне строк" -#: sql_help.c:5286 +#: sql_help.c:5308 msgid "change the definition of a procedure" msgstr "изменить определение процедуры" -#: sql_help.c:5292 +#: sql_help.c:5314 msgid "change the definition of a publication" msgstr "изменить определение публикации" -#: sql_help.c:5298 sql_help.c:5400 +#: sql_help.c:5320 sql_help.c:5422 msgid "change a database role" msgstr "изменить роль пользователя БД" -#: sql_help.c:5304 +#: sql_help.c:5326 msgid "change the definition of a routine" msgstr "изменить определение подпрограммы" -#: sql_help.c:5310 +#: sql_help.c:5332 msgid "change the definition of a rule" msgstr "изменить определение правила" -#: sql_help.c:5316 +#: sql_help.c:5338 msgid "change the definition of a schema" msgstr "изменить определение схемы" -#: sql_help.c:5322 +#: sql_help.c:5344 msgid "change the definition of a sequence generator" msgstr "изменить определение генератора последовательности" -#: sql_help.c:5328 +#: sql_help.c:5350 msgid "change the definition of a foreign server" msgstr "изменить определение стороннего сервера" -#: sql_help.c:5334 +#: sql_help.c:5356 msgid "change the definition of an extended statistics object" msgstr "изменить определение объекта расширенной статистики" -#: sql_help.c:5340 +#: sql_help.c:5362 msgid "change the definition of a subscription" msgstr "изменить определение подписки" -#: sql_help.c:5346 +#: sql_help.c:5368 msgid "change a server configuration parameter" msgstr "изменить параметр конфигурации сервера" -#: sql_help.c:5352 +#: sql_help.c:5374 msgid "change the definition of a table" msgstr "изменить определение таблицы" -#: sql_help.c:5358 +#: sql_help.c:5380 msgid "change the definition of a tablespace" msgstr "изменить определение табличного пространства" -#: sql_help.c:5364 +#: sql_help.c:5386 msgid "change the definition of a text search configuration" msgstr "изменить определение конфигурации текстового поиска" -#: sql_help.c:5370 +#: sql_help.c:5392 msgid "change the definition of a text search dictionary" msgstr "изменить определение словаря текстового поиска" -#: sql_help.c:5376 +#: sql_help.c:5398 msgid "change the definition of a text search parser" msgstr "изменить определение анализатора текстового поиска" -#: sql_help.c:5382 +#: sql_help.c:5404 msgid "change the definition of a text search template" msgstr "изменить определение шаблона текстового поиска" -#: sql_help.c:5388 +#: sql_help.c:5410 msgid "change the definition of a trigger" msgstr "изменить определение триггера" -#: sql_help.c:5394 +#: sql_help.c:5416 msgid "change the definition of a type" msgstr "изменить определение типа" -#: sql_help.c:5406 +#: sql_help.c:5428 msgid "change the definition of a user mapping" msgstr "изменить сопоставление пользователей" -#: sql_help.c:5412 +#: sql_help.c:5434 msgid "change the definition of a view" msgstr "изменить определение представления" -#: sql_help.c:5418 +#: sql_help.c:5440 msgid "collect statistics about a database" msgstr "собрать статистику о базе данных" -#: sql_help.c:5424 sql_help.c:6222 +#: sql_help.c:5446 sql_help.c:6244 msgid "start a transaction block" msgstr "начать транзакцию" -#: sql_help.c:5430 +#: sql_help.c:5452 msgid "invoke a procedure" msgstr "вызвать процедуру" -#: sql_help.c:5436 +#: sql_help.c:5458 msgid "force a write-ahead log checkpoint" msgstr "произвести контрольную точку в журнале предзаписи" -#: sql_help.c:5442 +#: sql_help.c:5464 msgid "close a cursor" msgstr "закрыть курсор" -#: sql_help.c:5448 +#: sql_help.c:5470 msgid "cluster a table according to an index" msgstr "перегруппировать таблицу по индексу" -#: sql_help.c:5454 +#: sql_help.c:5476 msgid "define or change the comment of an object" msgstr "задать или изменить комментарий объекта" -#: sql_help.c:5460 sql_help.c:6018 +#: sql_help.c:5482 sql_help.c:6040 msgid "commit the current transaction" msgstr "зафиксировать текущую транзакцию" -#: sql_help.c:5466 +#: sql_help.c:5488 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "зафиксировать транзакцию, ранее подготовленную для двухфазной фиксации" -#: sql_help.c:5472 +#: sql_help.c:5494 msgid "copy data between a file and a table" msgstr "импорт/экспорт данных в файл" -#: sql_help.c:5478 +#: sql_help.c:5500 msgid "define a new access method" msgstr "создать новый метод доступа" -#: sql_help.c:5484 +#: sql_help.c:5506 msgid "define a new aggregate function" msgstr "создать агрегатную функцию" -#: sql_help.c:5490 +#: sql_help.c:5512 msgid "define a new cast" msgstr "создать приведение типов" -#: sql_help.c:5496 +#: sql_help.c:5518 msgid "define a new collation" msgstr "создать правило сортировки" -#: sql_help.c:5502 +#: sql_help.c:5524 msgid "define a new encoding conversion" msgstr "создать преобразование кодировки" -#: sql_help.c:5508 +#: sql_help.c:5530 msgid "create a new database" msgstr "создать базу данных" -#: sql_help.c:5514 +#: sql_help.c:5536 msgid "define a new domain" msgstr "создать домен" -#: sql_help.c:5520 +#: sql_help.c:5542 msgid "define a new event trigger" msgstr "создать событийный триггер" -#: sql_help.c:5526 +#: sql_help.c:5548 msgid "install an extension" msgstr "установить расширение" -#: sql_help.c:5532 +#: sql_help.c:5554 msgid "define a new foreign-data wrapper" msgstr "создать обёртку сторонних данных" -#: sql_help.c:5538 +#: sql_help.c:5560 msgid "define a new foreign table" msgstr "создать стороннюю таблицу" -#: sql_help.c:5544 +#: sql_help.c:5566 msgid "define a new function" msgstr "создать функцию" -#: sql_help.c:5550 sql_help.c:5610 sql_help.c:5712 +#: sql_help.c:5572 sql_help.c:5632 sql_help.c:5734 msgid "define a new database role" msgstr "создать роль пользователя БД" -#: sql_help.c:5556 +#: sql_help.c:5578 msgid "define a new index" msgstr "создать индекс" -#: sql_help.c:5562 +#: sql_help.c:5584 msgid "define a new procedural language" msgstr "создать процедурный язык" -#: sql_help.c:5568 +#: sql_help.c:5590 msgid "define a new materialized view" msgstr "создать материализованное представление" -#: sql_help.c:5574 +#: sql_help.c:5596 msgid "define a new operator" msgstr "создать оператор" -#: sql_help.c:5580 +#: sql_help.c:5602 msgid "define a new operator class" msgstr "создать класс операторов" -#: sql_help.c:5586 +#: sql_help.c:5608 msgid "define a new operator family" msgstr "создать семейство операторов" -#: sql_help.c:5592 +#: sql_help.c:5614 msgid "define a new row-level security policy for a table" msgstr "создать новую политику защиты на уровне строк для таблицы" -#: sql_help.c:5598 +#: sql_help.c:5620 msgid "define a new procedure" msgstr "создать процедуру" -#: sql_help.c:5604 +#: sql_help.c:5626 msgid "define a new publication" msgstr "создать публикацию" -#: sql_help.c:5616 +#: sql_help.c:5638 msgid "define a new rewrite rule" msgstr "создать правило перезаписи" -#: sql_help.c:5622 +#: sql_help.c:5644 msgid "define a new schema" msgstr "создать схему" -#: sql_help.c:5628 +#: sql_help.c:5650 msgid "define a new sequence generator" msgstr "создать генератор последовательностей" -#: sql_help.c:5634 +#: sql_help.c:5656 msgid "define a new foreign server" msgstr "создать сторонний сервер" -#: sql_help.c:5640 +#: sql_help.c:5662 msgid "define extended statistics" msgstr "создать расширенную статистику" -#: sql_help.c:5646 +#: sql_help.c:5668 msgid "define a new subscription" msgstr "создать подписку" -#: sql_help.c:5652 +#: sql_help.c:5674 msgid "define a new table" msgstr "создать таблицу" -#: sql_help.c:5658 sql_help.c:6180 +#: sql_help.c:5680 sql_help.c:6202 msgid "define a new table from the results of a query" msgstr "создать таблицу из результатов запроса" -#: sql_help.c:5664 +#: sql_help.c:5686 msgid "define a new tablespace" msgstr "создать табличное пространство" -#: sql_help.c:5670 +#: sql_help.c:5692 msgid "define a new text search configuration" msgstr "создать конфигурацию текстового поиска" -#: sql_help.c:5676 +#: sql_help.c:5698 msgid "define a new text search dictionary" msgstr "создать словарь текстового поиска" -#: sql_help.c:5682 +#: sql_help.c:5704 msgid "define a new text search parser" msgstr "создать анализатор текстового поиска" -#: sql_help.c:5688 +#: sql_help.c:5710 msgid "define a new text search template" msgstr "создать шаблон текстового поиска" -#: sql_help.c:5694 +#: sql_help.c:5716 msgid "define a new transform" msgstr "создать преобразование" -#: sql_help.c:5700 +#: sql_help.c:5722 msgid "define a new trigger" msgstr "создать триггер" -#: sql_help.c:5706 +#: sql_help.c:5728 msgid "define a new data type" msgstr "создать тип данных" -#: sql_help.c:5718 +#: sql_help.c:5740 msgid "define a new mapping of a user to a foreign server" msgstr "создать сопоставление пользователя для стороннего сервера" -#: sql_help.c:5724 +#: sql_help.c:5746 msgid "define a new view" msgstr "создать представление" -#: sql_help.c:5730 +#: sql_help.c:5752 msgid "deallocate a prepared statement" msgstr "освободить подготовленный оператор" -#: sql_help.c:5736 +#: sql_help.c:5758 msgid "define a cursor" msgstr "создать курсор" -#: sql_help.c:5742 +#: sql_help.c:5764 msgid "delete rows of a table" msgstr "удалить записи таблицы" -#: sql_help.c:5748 +#: sql_help.c:5770 msgid "discard session state" msgstr "очистить состояние сеанса" -#: sql_help.c:5754 +#: sql_help.c:5776 msgid "execute an anonymous code block" msgstr "выполнить анонимный блок кода" -#: sql_help.c:5760 +#: sql_help.c:5782 msgid "remove an access method" msgstr "удалить метод доступа" -#: sql_help.c:5766 +#: sql_help.c:5788 msgid "remove an aggregate function" msgstr "удалить агрегатную функцию" -#: sql_help.c:5772 +#: sql_help.c:5794 msgid "remove a cast" msgstr "удалить приведение типа" -#: sql_help.c:5778 +#: sql_help.c:5800 msgid "remove a collation" msgstr "удалить правило сортировки" -#: sql_help.c:5784 +#: sql_help.c:5806 msgid "remove a conversion" msgstr "удалить преобразование" -#: sql_help.c:5790 +#: sql_help.c:5812 msgid "remove a database" msgstr "удалить базу данных" -#: sql_help.c:5796 +#: sql_help.c:5818 msgid "remove a domain" msgstr "удалить домен" -#: sql_help.c:5802 +#: sql_help.c:5824 msgid "remove an event trigger" msgstr "удалить событийный триггер" -#: sql_help.c:5808 +#: sql_help.c:5830 msgid "remove an extension" msgstr "удалить расширение" -#: sql_help.c:5814 +#: sql_help.c:5836 msgid "remove a foreign-data wrapper" msgstr "удалить обёртку сторонних данных" -#: sql_help.c:5820 +#: sql_help.c:5842 msgid "remove a foreign table" msgstr "удалить стороннюю таблицу" -#: sql_help.c:5826 +#: sql_help.c:5848 msgid "remove a function" msgstr "удалить функцию" -#: sql_help.c:5832 sql_help.c:5898 sql_help.c:6000 +#: sql_help.c:5854 sql_help.c:5920 sql_help.c:6022 msgid "remove a database role" msgstr "удалить роль пользователя БД" -#: sql_help.c:5838 +#: sql_help.c:5860 msgid "remove an index" msgstr "удалить индекс" -#: sql_help.c:5844 +#: sql_help.c:5866 msgid "remove a procedural language" msgstr "удалить процедурный язык" -#: sql_help.c:5850 +#: sql_help.c:5872 msgid "remove a materialized view" msgstr "удалить материализованное представление" -#: sql_help.c:5856 +#: sql_help.c:5878 msgid "remove an operator" msgstr "удалить оператор" -#: sql_help.c:5862 +#: sql_help.c:5884 msgid "remove an operator class" msgstr "удалить класс операторов" -#: sql_help.c:5868 +#: sql_help.c:5890 msgid "remove an operator family" msgstr "удалить семейство операторов" -#: sql_help.c:5874 +#: sql_help.c:5896 msgid "remove database objects owned by a database role" msgstr "удалить объекты базы данных, принадлежащие роли" -#: sql_help.c:5880 +#: sql_help.c:5902 msgid "remove a row-level security policy from a table" msgstr "удалить из таблицы политику защиты на уровне строк" -#: sql_help.c:5886 +#: sql_help.c:5908 msgid "remove a procedure" msgstr "удалить процедуру" -#: sql_help.c:5892 +#: sql_help.c:5914 msgid "remove a publication" msgstr "удалить публикацию" -#: sql_help.c:5904 +#: sql_help.c:5926 msgid "remove a routine" msgstr "удалить подпрограмму" -#: sql_help.c:5910 +#: sql_help.c:5932 msgid "remove a rewrite rule" msgstr "удалить правило перезаписи" -#: sql_help.c:5916 +#: sql_help.c:5938 msgid "remove a schema" msgstr "удалить схему" -#: sql_help.c:5922 +#: sql_help.c:5944 msgid "remove a sequence" msgstr "удалить последовательность" -#: sql_help.c:5928 +#: sql_help.c:5950 msgid "remove a foreign server descriptor" msgstr "удалить описание стороннего сервера" -#: sql_help.c:5934 +#: sql_help.c:5956 msgid "remove extended statistics" msgstr "удалить расширенную статистику" -#: sql_help.c:5940 +#: sql_help.c:5962 msgid "remove a subscription" msgstr "удалить подписку" -#: sql_help.c:5946 +#: sql_help.c:5968 msgid "remove a table" msgstr "удалить таблицу" -#: sql_help.c:5952 +#: sql_help.c:5974 msgid "remove a tablespace" msgstr "удалить табличное пространство" -#: sql_help.c:5958 +#: sql_help.c:5980 msgid "remove a text search configuration" msgstr "удалить конфигурацию текстового поиска" -#: sql_help.c:5964 +#: sql_help.c:5986 msgid "remove a text search dictionary" msgstr "удалить словарь текстового поиска" -#: sql_help.c:5970 +#: sql_help.c:5992 msgid "remove a text search parser" msgstr "удалить анализатор текстового поиска" -#: sql_help.c:5976 +#: sql_help.c:5998 msgid "remove a text search template" msgstr "удалить шаблон текстового поиска" -#: sql_help.c:5982 +#: sql_help.c:6004 msgid "remove a transform" msgstr "удалить преобразование" -#: sql_help.c:5988 +#: sql_help.c:6010 msgid "remove a trigger" msgstr "удалить триггер" -#: sql_help.c:5994 +#: sql_help.c:6016 msgid "remove a data type" msgstr "удалить тип данных" -#: sql_help.c:6006 +#: sql_help.c:6028 msgid "remove a user mapping for a foreign server" msgstr "удалить сопоставление пользователя для стороннего сервера" -#: sql_help.c:6012 +#: sql_help.c:6034 msgid "remove a view" msgstr "удалить представление" -#: sql_help.c:6024 +#: sql_help.c:6046 msgid "execute a prepared statement" msgstr "выполнить подготовленный оператор" -#: sql_help.c:6030 +#: sql_help.c:6052 msgid "show the execution plan of a statement" msgstr "показать план выполнения оператора" -#: sql_help.c:6036 +#: sql_help.c:6058 msgid "retrieve rows from a query using a cursor" msgstr "получить результат запроса через курсор" -#: sql_help.c:6042 +#: sql_help.c:6064 msgid "define access privileges" msgstr "определить права доступа" -#: sql_help.c:6048 +#: sql_help.c:6070 msgid "import table definitions from a foreign server" msgstr "импортировать определения таблиц со стороннего сервера" -#: sql_help.c:6054 +#: sql_help.c:6076 msgid "create new rows in a table" msgstr "добавить строки в таблицу" -#: sql_help.c:6060 +#: sql_help.c:6082 msgid "listen for a notification" msgstr "ожидать уведомления" -#: sql_help.c:6066 +#: sql_help.c:6088 msgid "load a shared library file" msgstr "загрузить файл разделяемой библиотеки" -#: sql_help.c:6072 +#: sql_help.c:6094 msgid "lock a table" msgstr "заблокировать таблицу" -#: sql_help.c:6078 +#: sql_help.c:6100 msgid "conditionally insert, update, or delete rows of a table" msgstr "добавление, изменение или удаление строк таблицы по условию" -#: sql_help.c:6084 +#: sql_help.c:6106 msgid "position a cursor" msgstr "установить курсор" -#: sql_help.c:6090 +#: sql_help.c:6112 msgid "generate a notification" msgstr "сгенерировать уведомление" -#: sql_help.c:6096 +#: sql_help.c:6118 msgid "prepare a statement for execution" msgstr "подготовить оператор для выполнения" -#: sql_help.c:6102 +#: sql_help.c:6124 msgid "prepare the current transaction for two-phase commit" msgstr "подготовить текущую транзакцию для двухфазной фиксации" -#: sql_help.c:6108 +#: sql_help.c:6130 msgid "change the ownership of database objects owned by a database role" msgstr "изменить владельца объектов БД, принадлежащих заданной роли" -#: sql_help.c:6114 +#: sql_help.c:6136 msgid "replace the contents of a materialized view" msgstr "заменить содержимое материализованного представления" -#: sql_help.c:6120 +#: sql_help.c:6142 msgid "rebuild indexes" msgstr "перестроить индексы" -#: sql_help.c:6126 +#: sql_help.c:6148 msgid "release a previously defined savepoint" msgstr "освободить ранее определённую точку сохранения" -#: sql_help.c:6132 +#: sql_help.c:6154 msgid "restore the value of a run-time parameter to the default value" msgstr "восстановить исходное значение параметра выполнения" -#: sql_help.c:6138 +#: sql_help.c:6160 msgid "remove access privileges" msgstr "удалить права доступа" -#: sql_help.c:6150 +#: sql_help.c:6172 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "отменить транзакцию, подготовленную ранее для двухфазной фиксации" -#: sql_help.c:6156 +#: sql_help.c:6178 msgid "roll back to a savepoint" msgstr "откатиться к точке сохранения" -#: sql_help.c:6162 +#: sql_help.c:6184 msgid "define a new savepoint within the current transaction" msgstr "определить новую точку сохранения в текущей транзакции" -#: sql_help.c:6168 +#: sql_help.c:6190 msgid "define or change a security label applied to an object" msgstr "задать или изменить метку безопасности, применённую к объекту" -#: sql_help.c:6174 sql_help.c:6228 sql_help.c:6264 +#: sql_help.c:6196 sql_help.c:6250 sql_help.c:6286 msgid "retrieve rows from a table or view" msgstr "выбрать строки из таблицы или представления" -#: sql_help.c:6186 +#: sql_help.c:6208 msgid "change a run-time parameter" msgstr "изменить параметр выполнения" -#: sql_help.c:6192 +#: sql_help.c:6214 msgid "set constraint check timing for the current transaction" msgstr "установить время проверки ограничений для текущей транзакции" -#: sql_help.c:6198 +#: sql_help.c:6220 msgid "set the current user identifier of the current session" msgstr "задать идентификатор текущего пользователя в текущем сеансе" -#: sql_help.c:6204 +#: sql_help.c:6226 msgid "" "set the session user identifier and the current user identifier of the " "current session" @@ -6743,31 +6822,31 @@ msgstr "" "задать идентификатор пользователя сеанса и идентификатор текущего " "пользователя в текущем сеансе" -#: sql_help.c:6210 +#: sql_help.c:6232 msgid "set the characteristics of the current transaction" msgstr "задать свойства текущей транзакции" -#: sql_help.c:6216 +#: sql_help.c:6238 msgid "show the value of a run-time parameter" msgstr "показать значение параметра выполнения" -#: sql_help.c:6234 +#: sql_help.c:6256 msgid "empty a table or set of tables" msgstr "опустошить таблицу или набор таблиц" -#: sql_help.c:6240 +#: sql_help.c:6262 msgid "stop listening for a notification" msgstr "прекратить ожидание уведомлений" -#: sql_help.c:6246 +#: sql_help.c:6268 msgid "update rows of a table" msgstr "изменить строки таблицы" -#: sql_help.c:6252 +#: sql_help.c:6274 msgid "garbage-collect and optionally analyze a database" msgstr "произвести сборку мусора и проанализировать базу данных" -#: sql_help.c:6258 +#: sql_help.c:6280 msgid "compute a set of rows" msgstr "получить набор строк" @@ -6810,7 +6889,7 @@ msgstr "лишний аргумент \"%s\" проигнорирован" msgid "could not find own program executable" msgstr "не удалось найти свой исполняемый файл" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6846,6 +6925,25 @@ msgstr "" "нераспознанное значение \"%s\" для \"%s\"\n" "Допустимые значения: %s." +#~ msgid "ICU Locale" +#~ msgstr "локаль ICU" + +#~ msgid "local socket" +#~ msgstr "локальный сокет" + +#~ msgid "" +#~ " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" +#~ msgstr "" +#~ " \\watch [[i=]СЕК] [c=N] повторять запрос через заданное число секунд, " +#~ "не\n" +#~ " более N раз\n" + +#~ msgid "constraint" +#~ msgstr "ограничение" + +#~ msgid "where constraint is:" +#~ msgstr "где ограничение:" + #, c-format #~ msgid "could not identify current directory: %m" #~ msgstr "не удалось определить текущий каталог: %m" diff --git a/src/bin/psql/po/sv.po b/src/bin/psql/po/sv.po index 2293529e4fe75..38ef29bff556a 100644 --- a/src/bin/psql/po/sv.po +++ b/src/bin/psql/po/sv.po @@ -1,15 +1,15 @@ # Swedish message translation file for psql # Peter Eisentraut , 2001, 2009, 2010. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # # Use these quotes: "%s" # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-02 08:16+0000\n" -"PO-Revision-Date: 2023-08-02 12:20+0200\n" +"POT-Creation-Date: 2025-02-12 13:48+0000\n" +"PO-Revision-Date: 2025-02-12 20:57+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -38,33 +38,48 @@ msgstr "detalj: " msgid "hint: " msgstr "tips: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "ogiltig binär \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "kunde inte läsa binär \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "kunde inte hitta en \"%s\" att köra" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "kunde inte konvertera sökvägen \"%s\" till en absolut sökväg: %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "kunde inte köra kommandot \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "kunde inte läsa från kommando \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "ingen data returnerades från kommandot \"%s\"" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() misslyckades: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1373 command.c:3459 command.c:3508 command.c:3633 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -86,7 +101,7 @@ msgstr "kan inte duplicera null-pekare (internt fel)\n" 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:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "användaren finns inte" @@ -125,11 +140,11 @@ msgstr "barnprocess terminerades av signal %d: %s" msgid "child process exited with unrecognized status %d" msgstr "barnprocess avslutade med okänd statuskod %d" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Förfrågan om avbrytning skickad\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Kunde inte skicka förfrågan om avbrytning: " @@ -145,312 +160,337 @@ msgstr[1] "(%lu rader)" msgid "Interrupted\n" msgstr "Avbruten\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Kan inte skriva ut tabellinnehåll: antal celler %lld är lika med eller fler än maximala %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "Kan inte lägga till rubrik till tabellinnehåll: antal kolumner (%d) överskridet.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -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" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "Kan inte lägga till cell till tabellinnehåll: totala cellantalet %lld är överskridet.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "ogiltigt utdataformat (internt fel): %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "hoppar över rekursiv expandering av variabeln \"%s\"" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:608 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:781 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "kunde inte slå upp lokalt användar-id %d: %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "lokal användare med ID %d existerar inte" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "ogiltigt kommando \\%s" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "Försök med \\? för hjälp." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: extra argument \"%s\" ignorerat" -#: command.c:306 +#: command.c:307 #, 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:611 +#: command.c:614 #, 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:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: kunde inte byta katalog till \"%s\": %m" -#: command.c:654 +#: command.c:657 #, 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:664 +#: command.c:667 #, 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:667 +#: command.c:670 #, 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:673 +#: command.c:676 #, 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:676 +#: command.c:679 #, 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:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2676 #, c-format msgid "no query buffer" msgstr "ingen frågebuffert" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5779 #, c-format msgid "invalid line number: %s" msgstr "ogiltigt radnummer: %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "Inga ändringar" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: ogiltigt kodningsnamn eller konverteringsprocedur hittades inte" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:720 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1369 command.c:2158 command.c:3455 command.c:3653 command.c:5885 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1376 msgid "There is no previous error." msgstr "Det finns inget tidigare fel." -#: command.c:1470 +#: command.c:1489 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: saknar höger parentes" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1573 command.c:1692 command.c:1996 command.c:2010 command.c:2029 +#: command.c:2197 command.c:2438 command.c:2643 command.c:2683 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: obligatoriskt argument saknas" -#: command.c:1815 +#: command.c:1823 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: kan inte komma efter \\else" -#: command.c:1820 +#: command.c:1828 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: ingen matchande \\if" -#: command.c:1884 +#: command.c:1892 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: kan inte komma efter \\else" -#: command.c:1889 +#: command.c:1897 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: ingen matchande \\if" -#: command.c:1929 +#: command.c:1937 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: ingen matchande \\if" -#: command.c:2085 +#: command.c:2093 msgid "Query buffer is empty." msgstr "Frågebufferten är tom." -#: command.c:2128 +#: command.c:2136 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Mata in nytt lösenord för användare \"%s\": " -#: command.c:2132 +#: command.c:2140 msgid "Enter it again: " msgstr "Mata in det igen: " -#: command.c:2141 +#: command.c:2149 #, c-format msgid "Passwords didn't match." msgstr "Lösenorden stämde inte överens." -#: command.c:2238 +#: command.c:2232 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: kunde inte läsa värde på varibeln" -#: command.c:2340 +#: command.c:2334 msgid "Query buffer reset (cleared)." msgstr "Frågebufferten har blivit borttagen." -#: command.c:2362 +#: command.c:2356 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Skrev historiken till fil \"%s\".\n" -#: command.c:2449 +#: command.c:2443 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: omgivningsvariabelnamn får ej innehålla \"=\"" -#: command.c:2497 +#: command.c:2491 #, c-format msgid "function name is required" msgstr "funktionsnamn krävs" -#: command.c:2499 +#: command.c:2493 #, c-format msgid "view name is required" msgstr "vynamn krävs" -#: command.c:2621 +#: command.c:2615 msgid "Timing is on." msgstr "Tidtagning är på." -#: command.c:2623 +#: command.c:2617 msgid "Timing is off." msgstr "Tidtagning är av." -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2703 command.c:2741 command.c:4166 command.c:4169 command.c:4172 +#: command.c:4178 command.c:4180 command.c:4206 command.c:4216 command.c:4228 +#: command.c:4242 command.c:4269 command.c:4327 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2736 copy.c:388 +#: command.c:2730 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2806 command.c:2852 +#: command.c:2802 command.c:2868 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: värde på intervall angivet mer än en gång" -#: command.c:2816 command.c:2862 +#: command.c:2812 command.c:2878 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: inkorrekt intervallvärde \"%s\"" -#: command.c:2826 +#: command.c:2822 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: iterationsantal angivet mer än en gång" -#: command.c:2836 +#: command.c:2832 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: inkorrekt iterationsantal \"%s\"" -#: command.c:2843 +#: command.c:2842 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: minsta radantal angivet mer än en gång" + +#: command.c:2852 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch: inkorrekt minsta radantal \"%s\"" + +#: command.c:2859 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: okänd parameter \"%s\"" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3256 startup.c:243 startup.c:293 msgid "Password: " msgstr "Lösenord: " -#: command.c:3241 startup.c:290 +#: command.c:3261 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Lösenord för användare %s: " -#: command.c:3297 +#: command.c:3317 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "Ange inte användare, värd eller port separat tillsammans med en anslutningssträng" -#: command.c:3332 +#: command.c:3352 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "Det finns ingen anslutning att återanvända parametrar från" -#: command.c:3638 +#: command.c:3659 #, c-format msgid "Previous connection kept" msgstr "Föregående anslutning bevarad" -#: command.c:3644 +#: command.c:3665 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3700 +#: command.c:3721 #, 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:3703 +#: command.c:3724 #, 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:3709 +#: command.c:3730 #, 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:3712 +#: command.c:3733 #, 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:3717 +#: command.c:3738 #, 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:3757 +#: command.c:3844 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, server %s)\n" -#: command.c:3770 +#: command.c:3857 #, c-format msgid "" "WARNING: %s major version %s, server major version %s.\n" @@ -459,29 +499,33 @@ msgstr "" "VARNING: %s huvudversion %s, server huvudversion %s.\n" " En del psql-finesser kommer kanske inte fungera.\n" -#: command.c:3807 +#: command.c:3896 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "SSL-anslutning (protokoll: %s, krypto: %s, komprimering: %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "SSL-anslutning (protokoll: %s, krypto: %s, komprimering: %s, ALPN: %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3897 command.c:3898 msgid "unknown" msgstr "okänd" -#: command.c:3810 help.c:42 +#: command.c:3899 help.c:42 msgid "off" msgstr "av" -#: command.c:3810 help.c:42 +#: command.c:3899 help.c:42 msgid "on" msgstr "på" -#: command.c:3824 +#: command.c:3900 +msgid "none" +msgstr "ingen" + +#: command.c:3914 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "GSSAPI-krypterad anslutning\n" -#: command.c:3844 +#: command.c:3934 #, c-format msgid "" "WARNING: Console code page (%u) differs from Windows code page (%u)\n" @@ -492,433 +536,438 @@ msgstr "" " 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:3949 +#: command.c:4041 #, 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:3979 +#: command.c:4071 #, c-format msgid "could not start editor \"%s\"" msgstr "kunde inte starta editorn \"%s\"" -#: command.c:3981 +#: command.c:4073 #, c-format msgid "could not start /bin/sh" msgstr "kunde inte starta /bin/sh" -#: command.c:4031 +#: command.c:4123 #, c-format msgid "could not locate temporary directory: %s" msgstr "kunde inte hitta temp-katalog: %s" -#: command.c:4058 +#: command.c:4150 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "kunde inte öppna temporär fil \"%s\": %m" -#: command.c:4394 +#: command.c:4486 #, 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:4414 +#: command.c:4506 #, 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:4433 +#: command.c:4525 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: tillåtna linjestilar är ascii, old-ascii, unicode" -#: command.c:4448 +#: command.c:4540 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: tillåtna Unicode-ramstilar är single, double" -#: command.c:4463 +#: command.c:4555 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: tillåtna Unicode-kolumnlinjestilar ärsingle, double" -#: command.c:4478 +#: command.c:4570 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: tillåtna Unicode-rubriklinjestilar är single, double" -#: command.c:4530 +#: command.c:4622 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: tillåtna värden på xheader_width är \"%s\" (standard), \"%s\", \"%s\" eller ett tal som anger exakt vidd" -#: command.c:4547 +#: command.c:4639 #, 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:4552 +#: command.c:4644 #, 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:4690 command.c:4891 +#: command.c:4782 command.c:4983 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: okänd parameter: %s" -#: command.c:4710 +#: command.c:4802 #, c-format msgid "Border style is %d.\n" msgstr "Ramstil är %d.\n" -#: command.c:4716 +#: command.c:4808 #, c-format msgid "Target width is unset.\n" msgstr "Målvidd är inte satt.\n" -#: command.c:4718 +#: command.c:4810 #, c-format msgid "Target width is %d.\n" msgstr "Målvidd är %d.\n" -#: command.c:4725 +#: command.c:4817 #, c-format msgid "Expanded display is on.\n" msgstr "Utökad visning är på.\n" -#: command.c:4727 +#: command.c:4819 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Utökad visning används automatiskt.\n" -#: command.c:4729 +#: command.c:4821 #, c-format msgid "Expanded display is off.\n" msgstr "Utökad visning är av.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4828 command.c:4830 command.c:4832 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "Expanderad rubrikvidd är \"%s\".\n" -#: command.c:4742 +#: command.c:4834 #, c-format msgid "Expanded header width is %d.\n" msgstr "Expanderad rubrikvidd är %d.\n" -#: command.c:4748 +#: command.c:4840 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Fältseparatorn för CSV är \"%s\".\n" -#: command.c:4756 command.c:4764 +#: command.c:4848 command.c:4856 #, c-format msgid "Field separator is zero byte.\n" msgstr "Fältseparatorn är noll-byte.\n" -#: command.c:4758 +#: command.c:4850 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Fältseparatorn är \"%s\".\n" -#: command.c:4771 +#: command.c:4863 #, c-format msgid "Default footer is on.\n" msgstr "Standard sidfot är på.\n" -#: command.c:4773 +#: command.c:4865 #, c-format msgid "Default footer is off.\n" msgstr "Standard sidfot är av.\n" -#: command.c:4779 +#: command.c:4871 #, c-format msgid "Output format is %s.\n" msgstr "Utdataformatet är \"%s\".\n" -#: command.c:4785 +#: command.c:4877 #, c-format msgid "Line style is %s.\n" msgstr "Linjestil är %s.\n" -#: command.c:4792 +#: command.c:4884 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null-visare är \"%s\".\n" -#: command.c:4800 +#: command.c:4892 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Lokal-anpassad numerisk utdata är på.\n" -#: command.c:4802 +#: command.c:4894 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Lokal-anpassad numerisk utdata är av.\n" -#: command.c:4809 +#: command.c:4901 #, c-format msgid "Pager is used for long output.\n" msgstr "Siduppdelare är på för lång utdata.\n" -#: command.c:4811 +#: command.c:4903 #, c-format msgid "Pager is always used.\n" msgstr "Siduppdelare används alltid.\n" -#: command.c:4813 +#: command.c:4905 #, c-format msgid "Pager usage is off.\n" msgstr "Siduppdelare är av.\n" -#: command.c:4819 +#: command.c:4911 #, 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:4829 command.c:4839 +#: command.c:4921 command.c:4931 #, c-format msgid "Record separator is zero byte.\n" msgstr "Postseparatorn är noll-byte.\n" -#: command.c:4831 +#: command.c:4923 #, c-format msgid "Record separator is .\n" msgstr "Postseparatorn är .\n" -#: command.c:4833 +#: command.c:4925 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Postseparatorn är \"%s\".\n" -#: command.c:4846 +#: command.c:4938 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Tabellattributen är \"%s\".\n" -#: command.c:4849 +#: command.c:4941 #, c-format msgid "Table attributes unset.\n" msgstr "Tabellattributen är ej satta.\n" -#: command.c:4856 +#: command.c:4948 #, c-format msgid "Title is \"%s\".\n" msgstr "Titeln är \"%s\".\n" -#: command.c:4858 +#: command.c:4950 #, c-format msgid "Title is unset.\n" msgstr "Titeln är inte satt.\n" -#: command.c:4865 +#: command.c:4957 #, c-format msgid "Tuples only is on.\n" msgstr "Visa bara tupler är på.\n" -#: command.c:4867 +#: command.c:4959 #, c-format msgid "Tuples only is off.\n" msgstr "Visa bara tupler är av.\n" -#: command.c:4873 +#: command.c:4965 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Unicode-ramstil är \"%s\".\n" -#: command.c:4879 +#: command.c:4971 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Unicode-kolumnLinjestil är \"%s\".\n" -#: command.c:4885 +#: command.c:4977 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Unicode-rubriklinjestil är \"%s\".\n" -#: command.c:5134 +#: command.c:5226 #, c-format msgid "\\!: failed" msgstr "\\!: misslyckades" -#: command.c:5168 +#: command.c:5264 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch kan inte användas på en tom fråga" -#: command.c:5200 +#: command.c:5296 #, c-format msgid "could not set timer: %m" msgstr "kunde inte sätta timer: %m" -#: command.c:5269 +#: command.c:5365 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (varje %gs)\n" -#: command.c:5272 +#: command.c:5368 #, c-format msgid "%s (every %gs)\n" msgstr "%s (varje %gs)\n" -#: command.c:5340 +#: command.c:5432 #, c-format msgid "could not wait for signals: %m" msgstr "kunde inte vänta på signaler: %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5488 command.c:5495 common.c:632 common.c:639 common.c:1123 #, c-format msgid "" -"********* QUERY **********\n" +"/******** QUERY *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" msgstr "" -"********* FRÅGA **********\n" +"/******** FRÅGA *********/\n" "%s\n" -"**************************\n" +"/************************/\n" "\n" -#: command.c:5584 +#: command.c:5674 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" är inte en vy" -#: command.c:5600 +#: command.c:5690 #, c-format msgid "could not parse reloptions array" msgstr "kunde inte parsa arrayen reloptions" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "kan inte escape:a utan en aktiv uppkoppling" -#: common.c:208 +#: common.c:247 #, 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:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "uppkopplingen till servern har brutits" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "Anslutningen till servern har brutits. Försöker starta om: " -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "Misslyckades.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "Lyckades.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "oväntad PQresultStatus: %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "Tid: %.3f ms\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Tid: %.3f ms (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Tid: %.3f ms (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, 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:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, 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:674 +#: common.c:714 #, 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:677 +#: common.c:717 #, 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:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "kunde inte visa resultatabell: %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "inga rader returnerades för \\gset" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "mer än en rad returnerades för \\gset" -#: common.c:751 +#: common.c:791 #, 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:1063 +#: common.c:1103 #, c-format msgid "" -"***(Single step mode: verify command)*******************************************\n" +"/**(Single step mode: verify command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to cancel)********************\n" +"/**(press return to proceed or enter x and return to cancel)*******************/\n" msgstr "" -"***(Stegningsläge: Verifiera kommando)*******************************************\n" +"/**(Stegningsläge: verifiera kommando)*****************************************/\n" "%s\n" -"***(tryck return för att fortsätta eller skriv x och return för att avbryta)*****\n" +"/**(tryck return för att fortsätta eller skriv x och return för att avbryta)***/\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "SATS: %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "oväntad transaktionsstatus (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "Kolumn" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "Typ" -#: common.c:1385 +#: common.c:1412 #, 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" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "hämta resultat i chunk-läge misslyckades" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -934,11 +983,6 @@ msgstr "\\copy: parsfel vid \"%s\"" msgid "\\copy: parse error at end of line" msgstr "\\copy: parsfel vid radslutet" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "kunde inte köra kommandot \"%s\": %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -976,343 +1020,344 @@ msgstr "" "Mata in data som skall kopieras följt av en nyrad.\n" "Avsluta med bakstreck och en punkt ensamma på en rad eller av en EOF." -#: copy.c:682 +#: copy.c:684 msgid "aborted because of read failure" msgstr "avbruten på grund av läsfel" -#: copy.c:716 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "försöker avsluta kopieringsläge" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview: satsen returnerade ingen resultatmängd" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview: frågan måste returnera minst tre kolumner" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "\\crosstabview: vertical and horizontal headers must be different columns" msgstr "\\crosstabview: vertikala och horisontala rubriker måste vara olika kolumner" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "\\crosstabview: data column must be specified when query returns more than three columns" msgstr "\\crosstabview: datakolumn måste anges när frågan returnerar mer än tre kolumner" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview: maximalt antal kolumner (%d) överskridet" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"" msgstr "\\crosstabview: frågeresultatet innehåller multipla värden för rad \"%s\", kolumn \"%s\"" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview: kolumnnummer %d är utanför giltigt intervall 1..%d" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview: tvetydigt kolumnnamn: \"%s\"" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: hittar ej kolumnnamn: \"%s\"" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "Schema" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "Namn" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "Resultatdatatyp" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "Argumentdatatyp" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "Beskrivning" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "Lista med aggregatfunktioner" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "Servern (version %s) stöder inte accessmetoder." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "Index" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "Tabell" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "Hanterare" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "Lista med accessmetoder" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "Ägare" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "Plats" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "Alternativ" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "Storlek" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "Lista med tabellutrymmen" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df tar bara [anptwS+] som flaggor" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df tar inte en \"%c\"-flagga med serverversion %s" #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "agg" -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "fönster" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "proc" -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "funk" # Vi väljer att bevara den engelska termen då det dels refererar till kommandot CREATE TRIGGER # och dels för att detta begreppet normalt benäms som triggers i dagligt tal i Sverige. -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "trigger" # Vi väljer att bevara den engelska termen då det refererar till en del av CREATE FUNCTION-syntaxen -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "immutable" # Vi väljer att bevara den engelska termen då det refererar till en del av CREATE FUNCTION-syntaxen -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "stable" # Vi väljer att bevara den engelska termen då det refererar till en del av CREATE FUNCTION-syntaxen -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "volatile" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "Flyktighet" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "begränsad" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "säker" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "osäker" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "Parallell" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "definierare" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "anropare" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "Säkerhet" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "Språk" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "Internt namn" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "Lista med funktioner" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "Element" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "Lista med datatyper" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "Vänster argumenttyp" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "Höger argumenttyp" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "Resultattyp" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "Funktion" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "Lista med operatorer" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "Kodning" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "Lokalleverantör" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "Jämförelse" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "Ctype" -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "ICU-lokal" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "Lokal" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "ICU-regler" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "Tabellutrymme" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "Lista med databaser" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "tabell" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "vy" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "materialiserad vy" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "sekvens" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "främmande tabell" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "partitionerad tabell" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "Kolumnrättigheter" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "Policys" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "Åtkomsträttigheter" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "funktion" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "typ" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "schema" @@ -1344,293 +1389,293 @@ msgstr "operatorfamilj" msgid "rule" msgstr "rule" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "Objektbeskrivningar" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Kunde inte hitta en relation med namn \"%s\"." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "Kunde inte hitta några relationer." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "Kunde inte hitta en relation med OID %s." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "Start" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "Minimum" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "Maximum" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "Ökning" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "ja" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "nej" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "Cyklisk?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "Cache" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "Ägd av: %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "Sekvens för identitetskolumn: %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Ologgat sekvens \"%s.%s\"" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Sekvens \"%s.%s\"" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Ologgad tabell \"%s.%s\"" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "Tabell \"%s.%s\"" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "Vy \"%s.%s\"" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "Ologgad materialiserad vy \"%s.%s\"" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Materialiserad vy \"%s.%s\"" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Ologgat index \"%s.%s\"" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "Index \"%s.%s\"" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Ologgat partitionerat index \"%s.%s\"" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Partitionerat index \"%s.%s\"" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "TOAST-tabell \"%s.%s\"" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Sammansatt typ \"%s.%s\"" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Främmande tabell \"%s.%s\"" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Ologgad partitionerad tabell \"%s.%s\"" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Partitionerad tabell \"%s.%s\"" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "Jämförelse" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "Nullbar" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "Standard" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "Nyckel?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "Definition" -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "FDW-alternativ" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "Lagring" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "Komprimering" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "Statistikmål" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "Partition av: %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "Inget partitioneringsvillkor" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "Partitioneringsvillkor: %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "Partitioneringsnyckel: %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Ägande tabell \"%s.%s\"" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "primärnyckel, " -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "unik" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " null-värden ej distinkta" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr ", " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "för tabell \"%s.%s\"" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", predikat (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", klustrad" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", ogiltig" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", uppskjutbar" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", initialt uppskjuten" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", replikaidentitet" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "Index:" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "Kontrollvillkor:" -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "Främmande nyckel-villkor:" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "Refererad av:" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "Policys:" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "Policys (tvingad radsäkerhet påslagen):" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "Policys (radsäkerhet påslagna): (ingen)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "Policys (tvingad radsäkerhet påslagen): (ingen)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "Policys (radsäkerhet avstängd):" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "Statistikobjekt:" @@ -1650,7 +1695,7 @@ msgstr "Regler som alltid utförs:" msgid "Rules firing on replica only:" msgstr "Regler som utförs enbart på replika:" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "Publiceringar:" @@ -1749,7 +1794,7 @@ msgstr ", tabellutrymme: \"%s\"" msgid "List of roles" msgstr "Lista med roller" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "Rollnamn" @@ -1827,368 +1872,368 @@ msgstr "Kunde inte hitta några inställningar för roll \"%s\"." msgid "Did not find any settings." msgstr "Kunde inte hitta några inställningar." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "Lista med inställningar" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "Medlem av" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "Rättighetsutdelare" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "Lista med roll-rättigheter" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "index" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "TOAST-tabell" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "partitionerat index" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "permanent" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "temporär" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "ologgad" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "Persistens" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "Accessmetod" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "Lista med relationer" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "Servern (version %s) stöder inte deklarativ tabellpartitionering." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "Lista med partitionerade index" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "Lista med partitionerade tabeller" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "Lista med partitionerade relationer" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "Föräldranamn" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "Partitionsstorlek av löv" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "Total storlek" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "Tillförlitlig" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "Internt språk" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "Anropshanterare" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "Validerare" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "Inline-hanterare" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "Lista med språk" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "Check" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "Lista med domäner" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "Källa" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "Mål" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "Standard?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "Lista med konverteringar" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "Parameter" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "Värde" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "Kontext" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "Lista med konfigurationsparametrar" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "Lista med icke-defaulta konfigurationsparametrar" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "Servern (version %s) stöder inte händelsetriggrar." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "Händelse" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "påslagen" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "replika" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "alltid" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "avstängd" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "Påslagen" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "Etiketter" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "Lista med händelsetriggrar" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "Servern (version %s) stöder inte utökad statistik." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Nunika" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Beroenden" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "Lista med utökad statistik" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Källtyp" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Måltyp" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "i tilldelning" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Implicit?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "Lista med typomvandlingar" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "Leverantör" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "Deterministisk?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "Lista med jämförelser (collations)" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "Lista med scheman" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "Lista med textsökparsrar" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Kunde inte hitta en textsökparser med namn \"%s\"." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "Kunde inte hitta några textsökparsrar." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "Starta parsning" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "Metod" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "Hämta nästa symbol" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "Avsluta parsning" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "Hämta rubrik" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "Hämta symboltyper" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Textsökparser \"%s.%s\"" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "Textsökparser \"%s\"" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "Symbolnamn" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Symboltyper för parser \"%s.%s\"" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "Symboltyper för parser \"%s\"" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "Mall" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "Initieringsalternativ" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "Lista med textsökordlistor" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "Init" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Symboluppdelning" -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "Lista med textsökmallar" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "Lista med textsökkonfigurationer" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Kunde inte hitta en textsökkonfiguration med namn \"%s\"." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "Kunde inte hitta några textsökkonfigurationer." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "Symbol" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "Ordlistor" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Textsökkonfiguration \"%s.%s\"" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "Textsökkonfiguration \"%s\"" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "" "\n" @@ -2197,7 +2242,7 @@ msgstr "" "\n" "Parser: \"%s.%s\"" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "" "\n" @@ -2206,265 +2251,273 @@ msgstr "" "\n" "Parser: \"%s\"" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "Lista med främmande data-omvandlare" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "Främmande data-omvandlare" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "Version" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "Lista med främmande servrar" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "Server" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "Användarnamn" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "Lista av användarmappningar" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "Lista med främmande tabeller" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "Lista med installerade utökningar" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Kunde inte hitta en utökning med namn \"%s\"." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "Kunde inte hitta några utökningar." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "Objektbeskrivning" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "Objekt i utökning \"%s\"" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "ej korrekt kvalificerat namn (för många namn med punkt): %s" -#: describe.c:6219 +#: describe.c:6197 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referenser till andra databaser är inte implementerat: %s" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "Servern (version %s) stöder inte publiceringar." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "Alla tabeller" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Insättningar" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Uppdateringar" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Borttagningar" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Trunkeringar" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Via root" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "Lista med publiceringar" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Kunde inte hitta någon publicering med namn \"%s\"." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "Kunde inte hitta några publiceringar." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "Publicering %s" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "Tabeller:" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "Tabeller från scheman:" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Denna server (version %s) stöder inte prenumerationer." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "Publicering" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "Binär" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "Strömmande" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "Tvåfas-commit" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "Stäng av vid fel" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "Ursprung" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "Lösenord krävs" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "Kör som ägare?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "Failover" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "Synkron commit" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "Anslutningsinfo" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "Skippa LSN" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "Lista med prenumerationer" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(ingen)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "AM" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "Indatatyp" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "Lagringstyp" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "Operatorklass" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "Operatorfamilj" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "Lista med operatorklasser" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Applicerbara typer" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "Lista med operatorfamiljer" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "Operator" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "Strategi" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "ordning" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "sök" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "Ändamål" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "Sortering-opfamilj" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "Lista med operatorer i operatorfamiljer" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "Registrerad vänstertyp" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "Registrerad högertyp" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "Nummer" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "Lista med supportfunktioner i operatorfamiljer" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "Stora objekt" -#: help.c:75 +#: help.c:63 msgid "" "psql is the PostgreSQL interactive terminal.\n" "\n" @@ -2472,11 +2525,11 @@ msgstr "" "psql är den interaktiva PostgreSQL-terminalen.\n" "\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:502 msgid "Usage:\n" msgstr "Användning:\n" -#: help.c:77 +#: help.c:65 msgid "" " psql [OPTION]... [DBNAME [USERNAME]]\n" "\n" @@ -2484,28 +2537,27 @@ msgstr "" " psql [FLAGGA]... [DBNAMN [ANVÄNDARNAMN]]\n" "\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "Allmänna flaggor:\n" -#: help.c:84 +#: help.c:68 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr " -c, --command=KOMMANDO kör ett kommando (SQL eller internt) och avsluta sedan\n" -#: help.c:85 -#, c-format -msgid " -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr " -d, --dbname=DBNAMN databasnamn att koppla upp mot (standard: \"%s\")\n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=DBNAMN namn på databas att ansluta till\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=FILNAMN kör kommandon från fil och avsluta sedan\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list lista befintliga databaser och avsluta sedan\n" -#: help.c:89 +#: help.c:72 msgid "" " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" @@ -2515,15 +2567,15 @@ msgstr "" " sätt psql-variabel NAMN till VÄRDE\n" " (t.ex. -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: help.c:93 +#: help.c:76 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc läs inte startfilen (~/.psqlrc)\n" -#: help.c:94 +#: help.c:77 msgid "" " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" @@ -2531,19 +2583,19 @@ msgstr "" " -1 (\"ett\"), --single-transaction\n" " kör kommandofilen som en transaktion (om icke-interaktiv)\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help[=alternativ] visa denna hjälp, avsluta sedan\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands lista bakstreck-kommandon, avsluta sedan\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variabler lista speciella variabler, avsluta sedan\n" -#: help.c:100 +#: help.c:83 msgid "" "\n" "Input and output options:\n" @@ -2551,47 +2603,47 @@ msgstr "" "\n" "Flaggor för in-/utmatning:\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all visa all indata från skript\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors visa misslyckade kommandon\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries visa kommandon som skickas till servern\n" -#: help.c:104 +#: help.c:87 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden visa frågor som interna kommandon skapar\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=FILENAME skicka sessions-logg till fil\n" -#: help.c:106 +#: help.c:89 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr " -n, --no-readline slå av förbättrad kommandoradsredigering (readline)\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=FILNAMN skriv frågeresultat till fil (eller |rör)\n" -#: help.c:108 +#: help.c:91 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr " -q, --quiet kör tyst (inga meddelanden, endast frågeutdata)\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step stegningsläge (bekräfta varje fråga)\n" -#: help.c:110 +#: help.c:93 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr " -S, --single-line enradsläge (slutet på raden avslutar SQL-kommando)\n" -#: help.c:112 +#: help.c:95 msgid "" "\n" "Output format options:\n" @@ -2599,15 +2651,15 @@ msgstr "" "\n" "Flaggor för utdataformat:\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align ojusterad utskrift av tabeller\n" -#: help.c:114 +#: help.c:97 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv CSV-utmarningsläge (kommaseparerade värden)\n" -#: help.c:115 +#: help.c:98 #, c-format msgid "" " -F, --field-separator=STRING\n" @@ -2616,15 +2668,15 @@ msgstr "" " -F, --field-separator=STRÄNG\n" " fältseparator för icke justerad utdata (standard: \"%s\")\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html HTML-utskrift av tabeller\n" -#: help.c:119 +#: help.c:102 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr " -P, --pset=VAR[=ARG] sätt utskriftsvariabel VAR till ARG (se kommando \\pset)\n" -#: help.c:120 +#: help.c:103 msgid "" " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" @@ -2632,19 +2684,19 @@ msgstr "" " -R, --record-separator=STRÄNG\n" " sätt postseparator för icke justerad utdata (standard: newline)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only visa endast rader\n" -#: help.c:123 +#: help.c:106 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr " -T, --table-attr=TEXT sätt HTML-tabellers flaggor (t.ex. width, border)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded slå på utökad utsrift av tabeller\n" -#: help.c:125 +#: help.c:108 msgid "" " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" @@ -2652,7 +2704,7 @@ msgstr "" " -z, --field-separator-zero\n" " sätt fältseparator för icke justerad utdata till noll-byte\n" -#: help.c:127 +#: help.c:110 msgid "" " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" @@ -2660,7 +2712,7 @@ msgstr "" " -0, --record-separator=zero\n" " sätt postseparator för icke justerad utdata till noll-byte\n" -#: help.c:130 +#: help.c:113 msgid "" "\n" "Connection options:\n" @@ -2668,36 +2720,27 @@ msgstr "" "\n" "Flaggor för anslutning:\n" -#: help.c:133 -#, c-format -msgid " -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" -msgstr "" -" -h, --host=VÄRDNAMN databasens värdnamn eller uttagkatalog (socket)\n" -" (standard: \"%s\")\n" - -#: help.c:134 -msgid "local socket" -msgstr "lokalt uttag (socket)" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" +msgstr " -h, --host=VÄRDNAMN databasens värdnamn eller socketkatalog\n" -#: help.c:137 -#, c-format -msgid " -p, --port=PORT database server port (default: \"%s\")\n" -msgstr " -p, --port=PORT databasens serverport (standard: \"%s\")\n" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=PORT databasserverns port\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr " -U, --username=ANVNAMN användarnamn för databasen (standard: \"%s\")\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=ANVNAMN namn på databasens användare\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga aldrig efter lösenord\n" -#: help.c:143 +#: help.c:118 msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password fråga om lösenord (borde ske automatiskt)\n" -#: help.c:145 +#: help.c:120 msgid "" "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" @@ -2711,37 +2754,37 @@ msgstr "" "i PostgreSQL-dokumentationen.\n" "\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Rapportera fel till <%s>.\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "Allmänna\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [PARAM]... sätt frågeparameter\n" -#: help.c:193 +#: help.c:168 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright visa PostgreSQL-upphovsrättsinformation\n" -#: help.c:194 +#: help.c:169 msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr " \\crosstabview [KOLUMNER] kör fråga och visa resultatet i en korstabell\n" -#: help.c:195 +#: help.c:170 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose visa senste felmeddelande vid maximal verbositet\n" -#: help.c:196 +#: help.c:171 msgid "" " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" @@ -2749,228 +2792,234 @@ msgstr "" " \\g [(FLAGGOR)] [FIL] kör frågan (och skicka resultatet till fil eller |rör);\n" " \\g utan argument är samma som ett semikolon\n" -#: help.c:198 +#: help.c:173 msgid " \\gdesc describe result of query, without executing it\n" msgstr " \\gdesc beskriv resultatet av fråga utan att köra den\n" -#: help.c:199 +#: help.c:174 msgid " \\gexec execute query, then execute each value in its result\n" msgstr " \\gexec kör fråga, kör sen varje värde i resultatet\n" -#: help.c:200 +#: help.c:175 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr " \\gset [PREFIX] kör frågan och spara resultatet i psql-variabler\n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr " \\gx [(FLAGGOR)] [FIL] som \\g, men tvinga expanderat utmatningsläge\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q avsluta psql\n" -#: help.c:203 -msgid " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" -msgstr " \\watch [[i=]SEK] [c=N] kör fråga var SEK sekund, upp till N gånger\n" +#: help.c:178 +msgid "" +" \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" +msgstr "" +" \\watch [[i=]SEK] [c=N] [m=MIN]\n" +" kör fråga var SEK sekund, upp till N gånger,\n" +" stoppa om färre än MIN rader returneras\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "Hjälp\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [kommandon] visa hjälp om backstreckkommandon\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options visa hjälp för psqls kommandoradflaggor\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables visa hjälp om speciella variabler\n" -#: help.c:211 +#: help.c:188 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr " \\h [NAMN] hjälp med syntaxen för SQL-kommandon, * för alla kommandon\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "Frågebuffert\n" -#: help.c:215 +#: help.c:192 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr " \\e [FIL] [RAD] redigera frågebufferten (eller filen) med extern redigerare\n" -#: help.c:216 +#: help.c:193 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [FUNKNAMN [RAD]] redigera funktionsdefinition med extern redigerare\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [FUNKNAMN [RAD]] redigera vydefinition med extern redigerare\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p visa innehållet i frågebufferten\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r nollställ (radera) frågebufferten\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [FILNAMN] visa kommandohistorien eller spara den i fil\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr " \\w FILNAMN skriv frågebuffert till fil\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "In-/Utmatning\n" -#: help.c:227 +#: help.c:204 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr " \\copy ... utför SQL COPY med dataström till klientvärden\n" -#: help.c:228 +#: help.c:205 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [TEXT] skriv text till standard ut (-n för ingen nyrad)\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i FILNAMN kör kommandon från fil\n" -#: help.c:230 +#: help.c:207 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr " \\ir FIL som \\i, men relativt platsen för aktuellt script\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [FIL] skicka frågeresultat till fil eller |rör\n" -#: help.c:232 +#: help.c:209 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr " \\qecho [-n] [TEXT] skriv text till \\o-utdataströmmen (-n för ingen nyrad)\n" -#: help.c:233 +#: help.c:210 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [TEXT] skriv text till standard error (-n för ingen nyrad)\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "Villkor\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR starta villkorsblock\n" -#: help.c:238 +#: help.c:215 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR alternativ inom aktuellt villkorsblock\n" -#: help.c:239 +#: help.c:216 msgid " \\else final alternative within current conditional block\n" msgstr " \\else avslutningsalternativ inom aktuellt villkorsblock\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif avsluta villkorsblock\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "Information\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (flaggor: S = lista systemobjekt, + = mer detaljer)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] lista tabeller, vyer och sekvenser\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr " \\d[S+] NAMN beskriv tabell, vy, sekvens eller index\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [MALL] lista aggregatfunktioner\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [MALL] lista accessmetoder\n" -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] lista operatorklasser\n" -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] lista operatorfamiljer\n" -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] lista operatorer i operatorfamiljer\n" -#: help.c:252 +#: help.c:229 msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] lista supportfunktioner i operatorfamiljer\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [MALL] lista tabellutrymmen\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [MALL] lista konverteringar\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [MALL] lista konfigurationsparametrar\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [MALL] lista typomvandlingar\n" -#: help.c:257 +#: help.c:234 msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr " \\dd[S] [MALL] visa objektbeskrivning som inte visas på andra ställen\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [MALL] lista domäner\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [MALL] lista standardrättigheter\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [MALL] lista främmande tabeller\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [MALL] lista främmande servrar\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\det[+] [MALL] lista främmande tabeller\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [MALL] lista användarmappning\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [MALL] lista främmande data-omvandlare\n" -#: help.c:265 +#: help.c:242 msgid "" " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] functions\n" @@ -2978,47 +3027,47 @@ msgstr "" " \\df[anptw][S+] [FUNKMALL [TYPMALL ...]]\n" " lista [endast agg/normala/procedur/trigger/window] funktioner\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [MALL] lista textsökkonfigurationer\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [MALL] lista textsökordlistor\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [MALL] lista textsökparsrar\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [MALL] lista textsökmallar\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [MALL] lista roller\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [MALL] lista index\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] lista stora objekt, samma som \\lo_list\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [MALL] lista procedurspråk\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [MALL] lista materialiserade vyer\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [MALL] lista scheman\n" -#: help.c:277 +#: help.c:254 msgid "" " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" @@ -3026,93 +3075,93 @@ msgstr "" " \\do[S+] [OPMALL [TYPMALL [TYPMALL]]]\n" " lista operatorer\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [MALL] lista jämförelser (collation)\n" -#: help.c:280 +#: help.c:257 msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr " \\dp[S] [MALL] lista åtkomsträttigheter för tabeller, vyer och sekvenser\n" -#: help.c:281 +#: help.c:258 msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr " \\dP[tin+] [MALL] lista [bara tabell/index] partitionerade relationer [n=nästlad]\n" -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr "" " \\drds [ROLLMALL1 [DBMALL2]]\n" " lista rollinställningar per databas\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\drg[S] [MALL] lista roll-rättigheter\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [MALL] lista replikeringspubliceringar\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [MALL] lista replikeringsprenumerationer\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [MALL] lista sekvenser\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [MALL] lista tabeller\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [MALL] lista datatyper\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [MALL] lista roller\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [MALL] lista vyer\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [MALL] lista utökningar\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [MALL] lista utökad statistik\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [MALL] lista händelsetriggrar\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [MALL] lista databaser\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] FUNKNAMN visa en funktions definition\n" -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] VYNAMN visa en vys definition\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [MALL] samma som \\dp\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "Stora objekt\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export LOBOID FIL skriv stort objekt till fil\n" -#: help.c:302 +#: help.c:279 msgid "" " \\lo_import FILE [COMMENT]\n" " read large object from file\n" @@ -3120,36 +3169,36 @@ msgstr "" " \\lo_import FIL [KOMMENTAR]\n" " läs stort objekt från fil\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] lista stora objekt\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID ta bort stort objekt\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "Formatering\n" -#: help.c:309 +#: help.c:286 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr " \\a byt mellan ojusterat och justerat utdataformat\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [TEXT] sätt tabelltitel, eller nollställ\n" -#: help.c:311 +#: help.c:288 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr " \\f [TEXT] visa eller sätt fältseparatorn för ojusterad utmatning\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H slå på/av HTML-utskriftsläge (för närvarande: %s)\n" -#: help.c:314 +#: help.c:291 msgid "" " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3157,7 +3206,7 @@ msgid "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" msgstr "" " \\pset [NAMN [VÄRDE]] sätt utmatningsalternativ för tabeller\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" @@ -3165,31 +3214,31 @@ msgstr "" " numericlocale|pager|pager_min_lines|recordsep|\n" " recordsep_zero|tableattr|title|tuples_only|\n" " unicode_border_linestyle|unicode_column_linestyle|\n" -" unicode_header_linestyle)\n" +" unicode_header_linestyle|xheader_width)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] visa endast rader (för närvarande: %s)\n" -#: help.c:323 +#: help.c:300 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr " \\T [TEXT] sätt HTML-tabellens
-attribut, eller nollställ\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" -msgstr " \\x [on|off|auto] slå på/av utökad utskrift (för närvarande: %s)\n" +msgstr " \\x [on|off|auto] slå på/av expanderat utmatningsläge (för närvarande: %s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "auto" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "Anslutning\n" -#: help.c:330 +#: help.c:307 #, c-format msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" @@ -3198,7 +3247,7 @@ msgstr "" " \\c[onnect] {[DBNAMN|- ANVÄNDARE|- VÄRD|- PORT|-] | conninfo}\n" " koppla upp mot ny databas (för närvarande \"%s\")\n" -#: help.c:334 +#: help.c:311 msgid "" " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" @@ -3206,70 +3255,70 @@ msgstr "" " \\c[onnect] {[DBNAMN|- ANVÄNDARE|- VÄRD|- PORT|-] | conninfo}\n" " koppla upp mot ny databas (för närvarande ingen uppkoppling)\n" -#: help.c:336 +#: help.c:313 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo visa information om aktuell uppkoppling\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [KODNING] visa eller sätt klientens teckenkodning\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [ANVÄNDARNAMN] byt användares lösenord på ett säkert sätt\n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "Operativsystem\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [KATALOG] byt den aktuella katalogen\n" -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVVAR hämta omgivningsvariabel\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NAMN [VÄRDE] sätt eller nollställ omgivningsvariabel\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] slå på/av tidstagning av kommandon (för närvarande: %s)\n" -#: help.c:347 +#: help.c:324 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr " \\! [KOMMANDO] kör kommando i skal eller starta interaktivt skal\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "Variabler\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [TEXT] NAMN be användaren att sätta en intern variabel\n" -#: help.c:352 +#: help.c:329 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr " \\set [NAMN [VÄRDE]] sätt intern variabel, eller lista alla om ingen param\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NAME ta bort intern variabel\n" -#: help.c:392 +#: help.c:369 msgid "" "List of specially treated variables\n" "\n" msgstr "Lista av variabler som hanteras speciellt\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "psql-variabler:\n" -#: help.c:396 +#: help.c:373 msgid "" " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n" @@ -3279,7 +3328,7 @@ msgstr "" " eller \\set NAMN VÄRDE inne i psql\n" "\n" -#: help.c:398 +#: help.c:375 msgid "" " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" @@ -3287,7 +3336,7 @@ msgstr "" " AUTOCOMMIT\n" " om satt så kommer efterföljande SQL-kommandon commit:as automatiskt\n" -#: help.c:400 +#: help.c:377 msgid "" " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" @@ -3297,7 +3346,7 @@ msgstr "" " bestämmer skiftläge för att komplettera SQL-nyckelord\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:403 +#: help.c:380 msgid "" " DBNAME\n" " the currently connected database name\n" @@ -3305,7 +3354,7 @@ msgstr "" " DBNAME\n" " den uppkopplade databasens namn\n" -#: help.c:405 +#: help.c:382 msgid "" " ECHO\n" " controls what input is written to standard output\n" @@ -3315,7 +3364,7 @@ msgstr "" " bestämmer vilken indata som skrivs till standard ut\n" " [all, errors, none, queries]\n" -#: help.c:408 +#: help.c:385 msgid "" " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" @@ -3325,7 +3374,7 @@ msgstr "" " om satt, visa interna frågor som körs av backåtstreckkommandon:\n" " om satt till \"noexec\", bara visa dem utan att köra\n" -#: help.c:411 +#: help.c:388 msgid "" " ENCODING\n" " current client character set encoding\n" @@ -3333,7 +3382,7 @@ msgstr "" " ENCODING\n" " aktuell teckenkodning för klient\n" -#: help.c:413 +#: help.c:390 msgid "" " ERROR\n" " \"true\" if last query failed, else \"false\"\n" @@ -3341,7 +3390,7 @@ msgstr "" " ERROR\n" " \"true\" om sista frågan misslyckades, \"false\" annars\n" -#: help.c:415 +#: help.c:392 msgid "" " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" @@ -3349,7 +3398,7 @@ msgstr "" " FETCH_COUNT\n" " antal resultatrader som hämtas och visas åt gången (0=obegränsat)\n" -#: help.c:417 +#: help.c:394 msgid "" " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" @@ -3357,7 +3406,7 @@ msgstr "" " HIDE_TABLEAM\n" " om satt så visas inte accessmetoder\n" -#: help.c:419 +#: help.c:396 msgid "" " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" @@ -3365,7 +3414,7 @@ msgstr "" " HIDE_TOAST_COMPRESSION\n" " om satt så visas inte komprimeringsmetoder\n" -#: help.c:421 +#: help.c:398 msgid "" " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" @@ -3373,7 +3422,7 @@ msgstr "" " HISTCONTROL\n" " styr kommandohistoriken [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:423 +#: help.c:400 msgid "" " HISTFILE\n" " file name used to store the command history\n" @@ -3381,7 +3430,7 @@ msgstr "" " HISTFILE\n" " filnamn för att spara kommandohistoriken i\n" -#: help.c:425 +#: help.c:402 msgid "" " HISTSIZE\n" " maximum number of commands to store in the command history\n" @@ -3389,7 +3438,7 @@ msgstr "" " HISTSIZE\n" " maximalt antal kommandon som sparas i kommandohistoriken\n" -#: help.c:427 +#: help.c:404 msgid "" " HOST\n" " the currently connected database server host\n" @@ -3397,7 +3446,7 @@ msgstr "" " HOST\n" " den uppkopplade databasens värd\n" -#: help.c:429 +#: help.c:406 msgid "" " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" @@ -3405,7 +3454,7 @@ msgstr "" " IGNOREEOF\n" " antal EOF som behövs för att avsluta en interaktiv session\n" -#: help.c:431 +#: help.c:408 msgid "" " LASTOID\n" " value of the last affected OID\n" @@ -3413,7 +3462,7 @@ msgstr "" " LASTOID\n" " värdet av den senast påverkade OID:en\n" -#: help.c:433 +#: help.c:410 msgid "" " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" @@ -3423,7 +3472,7 @@ msgstr "" " LAST_ERROR_SQLSTATE\n" " meddelande och SQLSTATE för sista felet eller en tom sträng och \"00000\" om det inte varit fel\n" -#: help.c:436 +#: help.c:413 msgid "" " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" @@ -3431,7 +3480,7 @@ msgstr "" " ON_ERROR_ROLLBACK\n" " om satt, ett fel stoppar inte en transaktion (använder implicita sparpunkter)\n" -#: help.c:438 +#: help.c:415 msgid "" " ON_ERROR_STOP\n" " stop batch execution after error\n" @@ -3439,7 +3488,7 @@ msgstr "" " ON_ERROR_STOP\n" " avsluta batchkörning vid fel\n" -#: help.c:440 +#: help.c:417 msgid "" " PORT\n" " server port of the current connection\n" @@ -3447,7 +3496,7 @@ msgstr "" " PORT\n" " värdport för den aktuella uppkopplingen\n" -#: help.c:442 +#: help.c:419 msgid "" " PROMPT1\n" " specifies the standard psql prompt\n" @@ -3455,7 +3504,7 @@ msgstr "" " PROMPT1\n" " anger standardprompten för psql\n" -#: help.c:444 +#: help.c:421 msgid "" " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" @@ -3463,7 +3512,7 @@ msgstr "" " PROMPT2\n" " anger den prompt som används om en sats forsätter på efterföljande rad\n" -#: help.c:446 +#: help.c:423 msgid "" " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" @@ -3471,7 +3520,7 @@ msgstr "" " PROMPT3\n" " anger den prompt som används för COPY ... FROM STDIN\n" -#: help.c:448 +#: help.c:425 msgid "" " QUIET\n" " run quietly (same as -q option)\n" @@ -3479,7 +3528,7 @@ msgstr "" " QUIET\n" " kör tyst (samma som flaggan -q)\n" -#: help.c:450 +#: help.c:427 msgid "" " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" @@ -3487,7 +3536,7 @@ msgstr "" " ROW_COUNT\n" " antal rader som returnerades eller påverkades av senaste frågan alternativt 0\n" -#: help.c:452 +#: help.c:429 msgid "" " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" @@ -3497,7 +3546,7 @@ msgstr "" " SERVER_VERSION_NAME\n" " serverns version (i kort sträng eller numeriskt format)\n" -#: help.c:455 +#: help.c:432 msgid "" " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" @@ -3505,7 +3554,7 @@ msgstr "" " ERROR\n" " \"true\" om sista frågan misslyckades, \"false\" annars\n" -#: help.c:457 +#: help.c:434 msgid "" " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" @@ -3513,7 +3562,7 @@ msgstr "" " SHELL_EXIT_CODE\n" " exit-kod för senaste skalkommandot\n" -#: help.c:459 +#: help.c:436 msgid "" " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" @@ -3522,7 +3571,7 @@ msgstr "" " visa alla resultat från en kombinerad fråga (\\;) istället för bara\n" " det sista\n" -#: help.c:461 +#: help.c:438 msgid "" " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" @@ -3530,7 +3579,7 @@ msgstr "" " SHOW_CONTEXT\n" " styr visning av meddelandekontextfält [never, errors, always]\n" -#: help.c:463 +#: help.c:440 msgid "" " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" @@ -3538,7 +3587,7 @@ msgstr "" " SINGLELINE\n" " om satt, slut på raden avslutar SQL-kommandon (samma som flaggan -S )\n" -#: help.c:465 +#: help.c:442 msgid "" " SINGLESTEP\n" " single-step mode (same as -s option)\n" @@ -3546,7 +3595,7 @@ msgstr "" " SINGLESTEP\n" " stegningsläge (samma som flaggan -s)\n" -#: help.c:467 +#: help.c:444 msgid "" " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" @@ -3554,7 +3603,7 @@ msgstr "" " SQLSTATE\n" " SQLSTATE för sista frågan eller \"00000\" om det inte varit fel\n" -#: help.c:469 +#: help.c:446 msgid "" " USER\n" " the currently connected database user\n" @@ -3562,7 +3611,7 @@ msgstr "" " USER\n" " den uppkopplade databasanvändaren\n" -#: help.c:471 +#: help.c:448 msgid "" " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" @@ -3570,7 +3619,7 @@ msgstr "" " VERBOSITY\n" " styr verbositet för felrapporter [default, verbose, terse, sqlstate]\n" -#: help.c:473 +#: help.c:450 msgid "" " VERSION\n" " VERSION_NAME\n" @@ -3582,7 +3631,7 @@ msgstr "" " VERSION_NUM\n" " psql:s version (i lång sträng, kort sträng eller numeriskt format)\n" -#: help.c:478 +#: help.c:455 msgid "" "\n" "Display settings:\n" @@ -3590,7 +3639,7 @@ msgstr "" "\n" "Visningsinställningar:\n" -#: help.c:480 +#: help.c:457 msgid "" " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n" @@ -3600,7 +3649,7 @@ msgstr "" " eller \\pset NAMN [VÄRDE] inne i psql\n" "\n" -#: help.c:482 +#: help.c:459 msgid "" " border\n" " border style (number)\n" @@ -3608,7 +3657,7 @@ msgstr "" " border\n" " ramstil (nummer)\n" -#: help.c:484 +#: help.c:461 msgid "" " columns\n" " target width for the wrapped format\n" @@ -3616,15 +3665,15 @@ msgstr "" " columns\n" " målvidd för wrappade format\n" -#: help.c:486 +#: help.c:463 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" msgstr "" " expanded (eller x)\n" -" expanderad utdata [on, off, auto]\n" +" expanderat utmatningsläge [on, off, auto]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid "" " fieldsep\n" @@ -3633,7 +3682,7 @@ msgstr "" " fieldsep\n" " fältseparator för ej justerad utdata (standard \"%s\")\n" -#: help.c:491 +#: help.c:468 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3641,7 +3690,7 @@ msgstr "" " fieldsep_zero\n" " sätt fältseparator för ej justerad utdata till noll-byte\n" -#: help.c:493 +#: help.c:470 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3649,7 +3698,7 @@ msgstr "" " footer\n" " slå på/av visning av tabellfot [on, off]\n" -#: help.c:495 +#: help.c:472 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3657,7 +3706,7 @@ msgstr "" " format\n" " sätt utdataformat [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3665,7 +3714,7 @@ msgstr "" " linestyle\n" " sätt ramlinjestil [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3673,7 +3722,7 @@ msgstr "" " null\n" " sätt sträng som visas istället för null-värden\n" -#: help.c:501 +#: help.c:478 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3681,7 +3730,7 @@ msgstr "" " numericlocale\n" " slå på visning av lokalspecifika tecken för gruppering av siffror\n" -#: help.c:503 +#: help.c:480 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3689,7 +3738,7 @@ msgstr "" " pager\n" " styr när en extern pagenerare används [yes, no, always]\n" -#: help.c:505 +#: help.c:482 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3697,7 +3746,7 @@ msgstr "" " recordsep\n" " post (rad) separator för ej justerad utdata\n" -#: help.c:507 +#: help.c:484 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3705,7 +3754,7 @@ msgstr "" " recordsep_zero\n" " sätt postseparator för ej justerad utdata till noll-byte\n" -#: help.c:509 +#: help.c:486 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3715,7 +3764,7 @@ msgstr "" " ange attribut för tabelltaggen i html-format eller proportionella\n" " kolumnvidder för vänsterjusterade datatypet i latex-longtable-format\n" -#: help.c:512 +#: help.c:489 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3723,7 +3772,7 @@ msgstr "" " title\n" " sätt tabelltitel för efterkommande tabellutskrifter\n" -#: help.c:514 +#: help.c:491 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3731,7 +3780,7 @@ msgstr "" " tuples_only\n" " om satt, bara tabelldatan visas\n" -#: help.c:516 +#: help.c:493 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3743,7 +3792,17 @@ msgstr "" " unicode_header_linestyle\n" " sätter stilen på Unicode-linjer [single, double]\n" -#: help.c:521 +#: help.c:497 +msgid "" +" xheader_width\n" +" set the maximum width of the header for expanded output\n" +" [full, column, page, integer value]\n" +msgstr "" +" xheader_width\n" +" sätt maximal bredd på rubriken för expanderat utmatningsläge\n" +" [full, column, page, integer value]\n" + +#: help.c:501 msgid "" "\n" "Environment variables:\n" @@ -3751,7 +3810,7 @@ msgstr "" "\n" "Omgivningsvariabler:\n" -#: help.c:525 +#: help.c:505 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3761,7 +3820,7 @@ msgstr "" " eller \\setenv NAMN [VÄRDE] inne psql\n" "\n" -#: help.c:527 +#: help.c:507 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3773,7 +3832,7 @@ msgstr "" " eller \\setenv NAMN [VÄRDE] inne i psql\n" "\n" -#: help.c:530 +#: help.c:510 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3781,7 +3840,7 @@ msgstr "" " COLUMNS\n" " antal kolumner i wrappade format\n" -#: help.c:532 +#: help.c:512 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3789,7 +3848,7 @@ msgstr "" " PGAPPNAME\n" " samma som anslutningsparametern \"application_name\"\n" -#: help.c:534 +#: help.c:514 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3797,7 +3856,7 @@ msgstr "" " PGDATABASE\n" " samma som anslutningsparametern \"dbname\"\n" -#: help.c:536 +#: help.c:516 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3805,7 +3864,7 @@ msgstr "" " PGHOST\n" " samma som anslutningsparametern \"host\"\n" -#: help.c:538 +#: help.c:518 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3813,7 +3872,7 @@ msgstr "" " PGPASSFILE\n" " lösenordsfilnamn\n" -#: help.c:540 +#: help.c:520 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3821,7 +3880,7 @@ msgstr "" " PGPASSWORD\n" " uppkoppingens lösenord (rekommenderas inte)\n" -#: help.c:542 +#: help.c:522 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3829,7 +3888,7 @@ msgstr "" " PGPORT\n" " samma som anslutingsparametern \"port\"\n" -#: help.c:544 +#: help.c:524 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3837,7 +3896,7 @@ msgstr "" " PGUSER\n" " samma som anslutningsparametern \"user\"\n" -#: help.c:546 +#: help.c:526 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3845,7 +3904,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " redigerare som används av kommanona \\e, \\ef och \\ev\n" -#: help.c:548 +#: help.c:528 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3853,7 +3912,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " hur radnummer anges när redigerare startas\n" -#: help.c:550 +#: help.c:530 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -3861,7 +3920,7 @@ msgstr "" " PSQL_HISTORY\n" " alternativ plats för kommandohistorikfilen\n" -#: help.c:552 +#: help.c:532 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -3869,7 +3928,7 @@ msgstr "" " PAGER\n" " namnet på den externa pageneraren\n" -#: help.c:555 +#: help.c:535 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -3877,7 +3936,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " namn på externt paginerarprogram för \\watch\n" -#: help.c:558 +#: help.c:538 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -3885,7 +3944,7 @@ msgstr "" " PSQLRC\n" " alternativ plats för användarens \".psqlrc\"-fil\n" -#: help.c:560 +#: help.c:540 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -3893,7 +3952,7 @@ msgstr "" " SHELL\n" " skalet som används av kommandot \\!\n" -#: help.c:562 +#: help.c:542 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -3901,11 +3960,11 @@ msgstr "" " TMPDIR\n" " katalog för temporärfiler\n" -#: help.c:622 +#: help.c:602 msgid "Available help:\n" msgstr "Tillgänglig hjälp:\n" -#: help.c:717 +#: help.c:697 #, c-format msgid "" "Command: %s\n" @@ -3924,7 +3983,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:740 +#: help.c:720 #, c-format msgid "" "No help available for \"%s\".\n" @@ -3933,17 +3992,17 @@ msgstr "" "Ingen hjälp tillgänglig för \"%s\".\n" "Försök med \\h utan argument för att se den tillgängliga hjälpen.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "kunde inte läsa från infilen: %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "kunde inte skriva kommandohistorien till \"%s\": %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "historia stöds inte av denna installationen" @@ -4030,12 +4089,12 @@ msgstr "fråga ignorerat; använd \\endif eller Ctrl-C för att avsluta aktuellt msgid "reached EOF without finding closing \\endif(s)" msgstr "kom till EOF utan att hitta avslutande \\endif" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s: slut på minne" @@ -4043,2427 +4102,2447 @@ msgstr "%s: slut på minne" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1308 sql_help.c:1310 -#: sql_help.c:1313 sql_help.c:1316 sql_help.c:1318 sql_help.c:1320 -#: sql_help.c:1323 sql_help.c:1326 sql_help.c:1443 sql_help.c:1445 -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:1471 sql_help.c:1474 -#: sql_help.c:1477 sql_help.c:1480 sql_help.c:1484 sql_help.c:1486 -#: sql_help.c:1488 sql_help.c:1490 sql_help.c:1504 sql_help.c:1507 -#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1521 sql_help.c:1523 -#: sql_help.c:1533 sql_help.c:1535 sql_help.c:1545 sql_help.c:1548 -#: sql_help.c:1571 sql_help.c:1573 sql_help.c:1575 sql_help.c:1577 -#: sql_help.c:1580 sql_help.c:1582 sql_help.c:1585 sql_help.c:1588 -#: sql_help.c:1639 sql_help.c:1682 sql_help.c:1685 sql_help.c:1687 -#: sql_help.c:1689 sql_help.c:1692 sql_help.c:1694 sql_help.c:1696 -#: sql_help.c:1699 sql_help.c:1751 sql_help.c:1767 sql_help.c:2000 -#: sql_help.c:2069 sql_help.c:2088 sql_help.c:2101 sql_help.c:2159 -#: sql_help.c:2167 sql_help.c:2177 sql_help.c:2204 sql_help.c:2236 -#: sql_help.c:2254 sql_help.c:2282 sql_help.c:2393 sql_help.c:2439 -#: sql_help.c:2464 sql_help.c:2487 sql_help.c:2491 sql_help.c:2525 -#: sql_help.c:2545 sql_help.c:2567 sql_help.c:2581 sql_help.c:2602 -#: sql_help.c:2631 sql_help.c:2666 sql_help.c:2691 sql_help.c:2738 -#: sql_help.c:3033 sql_help.c:3046 sql_help.c:3063 sql_help.c:3079 -#: sql_help.c:3119 sql_help.c:3173 sql_help.c:3177 sql_help.c:3179 -#: sql_help.c:3186 sql_help.c:3205 sql_help.c:3232 sql_help.c:3267 -#: sql_help.c:3279 sql_help.c:3288 sql_help.c:3332 sql_help.c:3346 -#: sql_help.c:3374 sql_help.c:3382 sql_help.c:3394 sql_help.c:3404 -#: sql_help.c:3412 sql_help.c:3420 sql_help.c:3428 sql_help.c:3436 -#: sql_help.c:3445 sql_help.c:3456 sql_help.c:3464 sql_help.c:3472 -#: sql_help.c:3480 sql_help.c:3488 sql_help.c:3498 sql_help.c:3507 -#: sql_help.c:3516 sql_help.c:3524 sql_help.c:3534 sql_help.c:3545 -#: sql_help.c:3553 sql_help.c:3562 sql_help.c:3573 sql_help.c:3582 -#: sql_help.c:3590 sql_help.c:3598 sql_help.c:3606 sql_help.c:3614 -#: sql_help.c:3622 sql_help.c:3630 sql_help.c:3638 sql_help.c:3646 -#: sql_help.c:3654 sql_help.c:3662 sql_help.c:3679 sql_help.c:3688 -#: sql_help.c:3696 sql_help.c:3713 sql_help.c:3728 sql_help.c:4040 -#: sql_help.c:4150 sql_help.c:4179 sql_help.c:4195 sql_help.c:4197 -#: sql_help.c:4700 sql_help.c:4748 sql_help.c:4906 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:245 +#: sql_help.c:247 sql_help.c:248 sql_help.c:250 sql_help.c:252 sql_help.c:255 +#: sql_help.c:257 sql_help.c:259 sql_help.c:261 sql_help.c:276 sql_help.c:277 +#: sql_help.c:278 sql_help.c:280 sql_help.c:329 sql_help.c:331 sql_help.c:333 +#: sql_help.c:335 sql_help.c:404 sql_help.c:409 sql_help.c:411 sql_help.c:453 +#: sql_help.c:455 sql_help.c:458 sql_help.c:460 sql_help.c:529 sql_help.c:534 +#: sql_help.c:539 sql_help.c:544 sql_help.c:549 sql_help.c:603 sql_help.c:605 +#: sql_help.c:607 sql_help.c:609 sql_help.c:611 sql_help.c:614 sql_help.c:616 +#: sql_help.c:619 sql_help.c:630 sql_help.c:632 sql_help.c:676 sql_help.c:678 +#: sql_help.c:680 sql_help.c:683 sql_help.c:685 sql_help.c:687 sql_help.c:728 +#: sql_help.c:732 sql_help.c:736 sql_help.c:757 sql_help.c:760 sql_help.c:763 +#: sql_help.c:792 sql_help.c:804 sql_help.c:812 sql_help.c:815 sql_help.c:818 +#: sql_help.c:833 sql_help.c:836 sql_help.c:865 sql_help.c:870 sql_help.c:875 +#: sql_help.c:880 sql_help.c:885 sql_help.c:912 sql_help.c:914 sql_help.c:916 +#: sql_help.c:918 sql_help.c:921 sql_help.c:923 sql_help.c:970 sql_help.c:1015 +#: sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 sql_help.c:1035 +#: sql_help.c:1054 sql_help.c:1065 sql_help.c:1067 sql_help.c:1087 +#: sql_help.c:1097 sql_help.c:1098 sql_help.c:1100 sql_help.c:1102 +#: sql_help.c:1114 sql_help.c:1118 sql_help.c:1120 sql_help.c:1132 +#: sql_help.c:1134 sql_help.c:1136 sql_help.c:1138 sql_help.c:1157 +#: sql_help.c:1159 sql_help.c:1163 sql_help.c:1167 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1175 sql_help.c:1176 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1184 sql_help.c:1324 sql_help.c:1326 +#: sql_help.c:1329 sql_help.c:1332 sql_help.c:1334 sql_help.c:1336 +#: sql_help.c:1339 sql_help.c:1342 sql_help.c:1464 sql_help.c:1466 +#: sql_help.c:1468 sql_help.c:1471 sql_help.c:1492 sql_help.c:1495 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1505 sql_help.c:1507 +#: sql_help.c:1509 sql_help.c:1511 sql_help.c:1525 sql_help.c:1528 +#: sql_help.c:1530 sql_help.c:1532 sql_help.c:1542 sql_help.c:1544 +#: sql_help.c:1554 sql_help.c:1556 sql_help.c:1566 sql_help.c:1569 +#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1596 sql_help.c:1598 +#: sql_help.c:1601 sql_help.c:1603 sql_help.c:1606 sql_help.c:1609 +#: sql_help.c:1660 sql_help.c:1703 sql_help.c:1706 sql_help.c:1708 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:1715 sql_help.c:1717 +#: sql_help.c:1720 sql_help.c:1770 sql_help.c:1786 sql_help.c:2019 +#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2120 sql_help.c:2178 +#: sql_help.c:2186 sql_help.c:2196 sql_help.c:2224 sql_help.c:2257 +#: sql_help.c:2275 sql_help.c:2303 sql_help.c:2414 sql_help.c:2460 +#: sql_help.c:2485 sql_help.c:2508 sql_help.c:2512 sql_help.c:2546 +#: sql_help.c:2566 sql_help.c:2588 sql_help.c:2602 sql_help.c:2623 +#: sql_help.c:2652 sql_help.c:2685 sql_help.c:2708 sql_help.c:2755 +#: sql_help.c:3053 sql_help.c:3066 sql_help.c:3083 sql_help.c:3099 +#: sql_help.c:3139 sql_help.c:3193 sql_help.c:3197 sql_help.c:3199 +#: sql_help.c:3206 sql_help.c:3225 sql_help.c:3252 sql_help.c:3287 +#: sql_help.c:3299 sql_help.c:3308 sql_help.c:3352 sql_help.c:3366 +#: sql_help.c:3394 sql_help.c:3402 sql_help.c:3414 sql_help.c:3424 +#: sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 sql_help.c:3456 +#: sql_help.c:3465 sql_help.c:3476 sql_help.c:3484 sql_help.c:3492 +#: sql_help.c:3500 sql_help.c:3508 sql_help.c:3518 sql_help.c:3527 +#: sql_help.c:3536 sql_help.c:3544 sql_help.c:3554 sql_help.c:3565 +#: sql_help.c:3573 sql_help.c:3582 sql_help.c:3593 sql_help.c:3602 +#: sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 sql_help.c:3634 +#: sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 sql_help.c:3666 +#: sql_help.c:3674 sql_help.c:3682 sql_help.c:3699 sql_help.c:3708 +#: sql_help.c:3716 sql_help.c:3733 sql_help.c:3748 sql_help.c:4061 +#: sql_help.c:4182 sql_help.c:4211 sql_help.c:4227 sql_help.c:4229 +#: sql_help.c:4733 sql_help.c:4781 sql_help.c:4940 msgid "name" msgstr "namn" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1848 -#: sql_help.c:3347 sql_help.c:4468 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1863 +#: sql_help.c:3367 sql_help.c:4500 msgid "aggregate_signature" msgstr "aggregatsignatur" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1317 sql_help.c:1444 -#: sql_help.c:1487 sql_help.c:1508 sql_help.c:1522 sql_help.c:1534 -#: sql_help.c:1547 sql_help.c:1574 sql_help.c:1640 sql_help.c:1693 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 +#: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 +#: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:759 sql_help.c:814 +#: sql_help.c:835 sql_help.c:874 sql_help.c:924 sql_help.c:971 sql_help.c:1024 +#: sql_help.c:1056 sql_help.c:1066 sql_help.c:1101 sql_help.c:1121 +#: sql_help.c:1135 sql_help.c:1185 sql_help.c:1333 sql_help.c:1465 +#: sql_help.c:1508 sql_help.c:1529 sql_help.c:1543 sql_help.c:1555 +#: sql_help.c:1568 sql_help.c:1595 sql_help.c:1661 sql_help.c:1714 msgid "new_name" msgstr "nytt_namn" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1381 sql_help.c:1446 sql_help.c:1489 sql_help.c:1510 -#: sql_help.c:1572 sql_help.c:1688 sql_help.c:3019 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 +#: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 +#: sql_help.c:642 sql_help.c:707 sql_help.c:731 sql_help.c:762 sql_help.c:817 +#: sql_help.c:879 sql_help.c:922 sql_help.c:1029 sql_help.c:1068 +#: sql_help.c:1099 sql_help.c:1119 sql_help.c:1133 sql_help.c:1183 +#: sql_help.c:1399 sql_help.c:1467 sql_help.c:1510 sql_help.c:1531 +#: sql_help.c:1593 sql_help.c:1709 sql_help.c:3039 msgid "new_owner" msgstr "ny_ägare" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1319 sql_help.c:1491 sql_help.c:1512 -#: sql_help.c:1524 sql_help.c:1536 sql_help.c:1576 sql_help.c:1695 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 +#: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:735 sql_help.c:765 +#: sql_help.c:820 sql_help.c:884 sql_help.c:1034 sql_help.c:1103 +#: sql_help.c:1137 sql_help.c:1335 sql_help.c:1512 sql_help.c:1533 +#: sql_help.c:1545 sql_help.c:1557 sql_help.c:1597 sql_help.c:1716 msgid "new_schema" msgstr "nytt_schema" -#: sql_help.c:44 sql_help.c:1912 sql_help.c:3348 sql_help.c:4497 +#: sql_help.c:44 sql_help.c:1927 sql_help.c:3368 sql_help.c:4529 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:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:3915 sql_help.c:4367 sql_help.c:4474 -#: sql_help.c:4481 sql_help.c:4487 sql_help.c:4498 sql_help.c:4501 -#: sql_help.c:4504 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 +#: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 +#: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:866 +#: sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:886 sql_help.c:1016 +#: sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 sql_help.c:1036 +#: sql_help.c:1881 sql_help.c:1898 sql_help.c:1904 sql_help.c:1928 +#: sql_help.c:1931 sql_help.c:1934 sql_help.c:2089 sql_help.c:2108 +#: sql_help.c:2111 sql_help.c:2415 sql_help.c:2624 sql_help.c:3369 +#: sql_help.c:3372 sql_help.c:3375 sql_help.c:3466 sql_help.c:3555 +#: sql_help.c:3583 sql_help.c:3936 sql_help.c:4399 sql_help.c:4506 +#: sql_help.c:4513 sql_help.c:4519 sql_help.c:4530 sql_help.c:4533 +#: sql_help.c:4536 msgid "argmode" msgstr "arg_läge" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2071 sql_help.c:2090 -#: sql_help.c:2093 sql_help.c:2395 sql_help.c:2604 sql_help.c:3350 -#: sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 sql_help.c:3536 -#: sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 sql_help.c:4488 -#: sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 +#: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 +#: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:887 sql_help.c:1017 +#: sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 sql_help.c:1037 +#: sql_help.c:1882 sql_help.c:1899 sql_help.c:1905 sql_help.c:1929 +#: sql_help.c:1932 sql_help.c:1935 sql_help.c:2090 sql_help.c:2109 +#: sql_help.c:2112 sql_help.c:2416 sql_help.c:2625 sql_help.c:3370 +#: sql_help.c:3373 sql_help.c:3376 sql_help.c:3467 sql_help.c:3556 +#: sql_help.c:3584 sql_help.c:4507 sql_help.c:4514 sql_help.c:4520 +#: sql_help.c:4531 sql_help.c:4534 sql_help.c:4537 msgid "argname" msgstr "arg_namn" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1868 sql_help.c:1885 sql_help.c:1891 sql_help.c:1915 -#: sql_help.c:1918 sql_help.c:1921 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3357 sql_help.c:3448 -#: sql_help.c:3537 sql_help.c:3565 sql_help.c:4476 sql_help.c:4483 -#: sql_help.c:4489 sql_help.c:4500 sql_help.c:4503 sql_help.c:4506 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 +#: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 +#: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:868 +#: sql_help.c:873 sql_help.c:878 sql_help.c:883 sql_help.c:888 sql_help.c:1018 +#: sql_help.c:1023 sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 +#: sql_help.c:1883 sql_help.c:1900 sql_help.c:1906 sql_help.c:1930 +#: sql_help.c:1933 sql_help.c:1936 sql_help.c:2417 sql_help.c:2626 +#: sql_help.c:3371 sql_help.c:3374 sql_help.c:3377 sql_help.c:3468 +#: sql_help.c:3557 sql_help.c:3585 sql_help.c:4508 sql_help.c:4515 +#: sql_help.c:4521 sql_help.c:4532 sql_help.c:4535 sql_help.c:4538 msgid "argtype" msgstr "arg_typ" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1505 sql_help.c:1634 sql_help.c:1666 -#: sql_help.c:1719 sql_help.c:1783 sql_help.c:1970 sql_help.c:1977 -#: sql_help.c:2285 sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2440 sql_help.c:2667 sql_help.c:2760 sql_help.c:3048 -#: sql_help.c:3233 sql_help.c:3255 sql_help.c:3395 sql_help.c:3751 -#: sql_help.c:3959 sql_help.c:4194 sql_help.c:4196 sql_help.c:4973 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:965 +#: sql_help.c:1116 sql_help.c:1526 sql_help.c:1655 sql_help.c:1687 +#: sql_help.c:1739 sql_help.c:1798 sql_help.c:1987 sql_help.c:1994 +#: sql_help.c:2306 sql_help.c:2356 sql_help.c:2363 sql_help.c:2372 +#: sql_help.c:2461 sql_help.c:2686 sql_help.c:2777 sql_help.c:3068 +#: sql_help.c:3253 sql_help.c:3275 sql_help.c:3415 sql_help.c:3772 +#: sql_help.c:3980 sql_help.c:4226 sql_help.c:4228 sql_help.c:5006 msgid "option" msgstr "flaggor" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1635 sql_help.c:2441 -#: sql_help.c:2668 sql_help.c:3234 sql_help.c:3396 +#: sql_help.c:115 sql_help.c:966 sql_help.c:1656 sql_help.c:2462 +#: sql_help.c:2687 sql_help.c:3254 sql_help.c:3416 msgid "where option can be:" msgstr "där flaggor kan vara:" -#: sql_help.c:116 sql_help.c:2217 +#: sql_help.c:116 sql_help.c:2238 msgid "allowconn" msgstr "tillåtansl" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1636 sql_help.c:2218 -#: sql_help.c:2442 sql_help.c:2669 sql_help.c:3235 +#: sql_help.c:117 sql_help.c:967 sql_help.c:1657 sql_help.c:2239 +#: sql_help.c:2463 sql_help.c:2688 sql_help.c:3255 msgid "connlimit" msgstr "anslutningstak" -#: sql_help.c:118 sql_help.c:2219 +#: sql_help.c:118 sql_help.c:2240 msgid "istemplate" msgstr "ärmall" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1322 -#: sql_help.c:1374 sql_help.c:4200 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1338 +#: sql_help.c:1392 sql_help.c:4232 msgid "new_tablespace" msgstr "nytt_tabellutrymme" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1183 sql_help.c:1643 -#: sql_help.c:1647 sql_help.c:1650 sql_help.c:2406 sql_help.c:2609 -#: sql_help.c:3927 sql_help.c:4218 sql_help.c:4379 sql_help.c:4688 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 +#: sql_help.c:561 sql_help.c:891 sql_help.c:893 sql_help.c:894 sql_help.c:974 +#: sql_help.c:978 sql_help.c:981 sql_help.c:1043 sql_help.c:1045 +#: sql_help.c:1046 sql_help.c:1196 sql_help.c:1198 sql_help.c:1664 +#: sql_help.c:1668 sql_help.c:1671 sql_help.c:2427 sql_help.c:2630 +#: sql_help.c:3948 sql_help.c:4250 sql_help.c:4411 sql_help.c:4721 msgid "configuration_parameter" msgstr "konfigurationsparameter" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1182 -#: sql_help.c:1353 sql_help.c:1376 sql_help.c:1424 sql_help.c:1449 -#: sql_help.c:1506 sql_help.c:1590 sql_help.c:1644 sql_help.c:1667 -#: sql_help.c:2286 sql_help.c:2336 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2407 sql_help.c:2408 sql_help.c:2472 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2610 sql_help.c:2611 sql_help.c:2634 -#: sql_help.c:2761 sql_help.c:2800 sql_help.c:2910 sql_help.c:2923 -#: sql_help.c:2937 sql_help.c:2978 sql_help.c:3005 sql_help.c:3022 -#: sql_help.c:3049 sql_help.c:3256 sql_help.c:3960 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 sql_help.c:4692 +#: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 +#: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:892 +#: sql_help.c:920 sql_help.c:975 sql_help.c:1044 sql_help.c:1117 +#: sql_help.c:1162 sql_help.c:1166 sql_help.c:1170 sql_help.c:1173 +#: sql_help.c:1178 sql_help.c:1181 sql_help.c:1197 sql_help.c:1371 +#: sql_help.c:1394 sql_help.c:1442 sql_help.c:1450 sql_help.c:1470 +#: sql_help.c:1527 sql_help.c:1611 sql_help.c:1665 sql_help.c:1688 +#: sql_help.c:2307 sql_help.c:2357 sql_help.c:2364 sql_help.c:2373 +#: sql_help.c:2428 sql_help.c:2429 sql_help.c:2493 sql_help.c:2496 +#: sql_help.c:2530 sql_help.c:2631 sql_help.c:2632 sql_help.c:2655 +#: sql_help.c:2778 sql_help.c:2817 sql_help.c:2927 sql_help.c:2940 +#: sql_help.c:2954 sql_help.c:2995 sql_help.c:3003 sql_help.c:3025 +#: sql_help.c:3042 sql_help.c:3069 sql_help.c:3276 sql_help.c:3981 +#: sql_help.c:4722 sql_help.c:4723 sql_help.c:4724 sql_help.c:4725 msgid "value" msgstr "värde" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "målroll" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2270 sql_help.c:2639 -#: sql_help.c:2716 sql_help.c:2721 sql_help.c:3890 sql_help.c:3899 -#: sql_help.c:3918 sql_help.c:3930 sql_help.c:4342 sql_help.c:4351 -#: sql_help.c:4370 sql_help.c:4382 +#: sql_help.c:203 sql_help.c:929 sql_help.c:2291 sql_help.c:2660 +#: sql_help.c:2733 sql_help.c:2738 sql_help.c:3911 sql_help.c:3920 +#: sql_help.c:3939 sql_help.c:3951 sql_help.c:4374 sql_help.c:4383 +#: sql_help.c:4402 sql_help.c:4414 msgid "schema_name" msgstr "schemanamn" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "förkortad_grant_eller_revoke" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "där förkortad_grant_eller_revok är en av:" -#: 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:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1321 sql_help.c:1654 sql_help.c:2445 sql_help.c:2446 -#: sql_help.c:2447 sql_help.c:2448 sql_help.c:2449 sql_help.c:2583 -#: sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 sql_help.c:2675 -#: sql_help.c:2676 sql_help.c:3238 sql_help.c:3239 sql_help.c:3240 -#: sql_help.c:3241 sql_help.c:3242 sql_help.c:3939 sql_help.c:3943 -#: sql_help.c:4391 sql_help.c:4395 sql_help.c:4710 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:838 sql_help.c:985 +#: sql_help.c:1337 sql_help.c:1675 sql_help.c:2466 sql_help.c:2467 +#: sql_help.c:2468 sql_help.c:2469 sql_help.c:2470 sql_help.c:2604 +#: sql_help.c:2691 sql_help.c:2692 sql_help.c:2693 sql_help.c:3258 +#: sql_help.c:3259 sql_help.c:3260 sql_help.c:3261 sql_help.c:3262 +#: sql_help.c:3960 sql_help.c:3964 sql_help.c:4423 sql_help.c:4427 +#: sql_help.c:4743 msgid "role_name" msgstr "rollnamn" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1337 sql_help.c:1339 -#: sql_help.c:1391 sql_help.c:1403 sql_help.c:1428 sql_help.c:1684 -#: sql_help.c:2239 sql_help.c:2243 sql_help.c:2355 sql_help.c:2360 -#: sql_help.c:2468 sql_help.c:2638 sql_help.c:2777 sql_help.c:2782 -#: sql_help.c:2784 sql_help.c:2905 sql_help.c:2918 sql_help.c:2932 -#: sql_help.c:2941 sql_help.c:2953 sql_help.c:2982 sql_help.c:3991 -#: sql_help.c:4006 sql_help.c:4008 sql_help.c:4095 sql_help.c:4098 -#: sql_help.c:4100 sql_help.c:4561 sql_help.c:4562 sql_help.c:4571 -#: sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 sql_help.c:4621 -#: sql_help.c:4622 sql_help.c:4623 sql_help.c:4663 sql_help.c:4664 -#: sql_help.c:4669 sql_help.c:4674 sql_help.c:4818 sql_help.c:4819 -#: sql_help.c:4828 sql_help.c:4875 sql_help.c:4876 sql_help.c:4877 -#: sql_help.c:4878 sql_help.c:4879 sql_help.c:4880 sql_help.c:4934 -#: sql_help.c:4936 sql_help.c:5004 sql_help.c:5064 sql_help.c:5065 -#: sql_help.c:5074 sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 -#: sql_help.c:5124 sql_help.c:5125 sql_help.c:5126 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:928 sql_help.c:1353 +#: sql_help.c:1355 sql_help.c:1359 sql_help.c:1409 sql_help.c:1421 +#: sql_help.c:1446 sql_help.c:1705 sql_help.c:2260 sql_help.c:2264 +#: sql_help.c:2376 sql_help.c:2381 sql_help.c:2489 sql_help.c:2659 +#: sql_help.c:2794 sql_help.c:2799 sql_help.c:2801 sql_help.c:2922 +#: sql_help.c:2935 sql_help.c:2949 sql_help.c:2958 sql_help.c:2970 +#: sql_help.c:2999 sql_help.c:4012 sql_help.c:4027 sql_help.c:4029 +#: sql_help.c:4125 sql_help.c:4128 sql_help.c:4130 sql_help.c:4593 +#: sql_help.c:4594 sql_help.c:4603 sql_help.c:4650 sql_help.c:4651 +#: sql_help.c:4652 sql_help.c:4653 sql_help.c:4654 sql_help.c:4655 +#: sql_help.c:4696 sql_help.c:4697 sql_help.c:4702 sql_help.c:4707 +#: sql_help.c:4851 sql_help.c:4852 sql_help.c:4861 sql_help.c:4908 +#: sql_help.c:4909 sql_help.c:4910 sql_help.c:4911 sql_help.c:4912 +#: sql_help.c:4913 sql_help.c:4968 sql_help.c:4970 sql_help.c:5036 +#: sql_help.c:5096 sql_help.c:5097 sql_help.c:5106 sql_help.c:5153 +#: sql_help.c:5154 sql_help.c:5155 sql_help.c:5156 sql_help.c:5157 +#: sql_help.c:5158 msgid "expression" msgstr "uttryck" -#: sql_help.c:242 +#: sql_help.c:249 sql_help.c:2261 msgid "domain_constraint" msgstr "domain_villkor" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1314 sql_help.c:1361 sql_help.c:1362 sql_help.c:1363 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1419 sql_help.c:1854 -#: sql_help.c:1856 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:4003 +#: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 +#: sql_help.c:488 sql_help.c:1330 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1381 sql_help.c:1408 sql_help.c:1420 sql_help.c:1437 +#: sql_help.c:1869 sql_help.c:1871 sql_help.c:2263 sql_help.c:2375 +#: sql_help.c:2380 sql_help.c:2957 sql_help.c:2969 sql_help.c:4024 msgid "constraint_name" msgstr "villkorsnamn" -#: sql_help.c:247 sql_help.c:1315 +#: sql_help.c:254 sql_help.c:1331 msgid "new_constraint_name" msgstr "nyy_villkorsnamn" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:263 sql_help.c:2262 +msgid "where domain_constraint is:" +msgstr "där domän_villkor är:" + +#: sql_help.c:330 sql_help.c:1115 msgid "new_version" msgstr "ny_version" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:334 sql_help.c:336 msgid "member_object" msgstr "medlemsobjekt" -#: sql_help.c:327 +#: sql_help.c:337 msgid "where member_object is:" msgstr "där medlemsobjekt är:" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1846 sql_help.c:1851 sql_help.c:1858 -#: sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 sql_help.c:1862 -#: sql_help.c:1863 sql_help.c:1864 sql_help.c:1869 sql_help.c:1871 -#: sql_help.c:1875 sql_help.c:1877 sql_help.c:1881 sql_help.c:1886 -#: sql_help.c:1887 sql_help.c:1894 sql_help.c:1895 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 sql_help.c:1900 -#: sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 sql_help.c:1904 -#: sql_help.c:1909 sql_help.c:1910 sql_help.c:4464 sql_help.c:4469 -#: sql_help.c:4470 sql_help.c:4471 sql_help.c:4472 sql_help.c:4478 -#: sql_help.c:4479 sql_help.c:4484 sql_help.c:4485 sql_help.c:4490 -#: sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 sql_help.c:4494 -#: sql_help.c:4495 +#: sql_help.c:338 sql_help.c:343 sql_help.c:344 sql_help.c:345 sql_help.c:346 +#: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 +#: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 +#: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 +#: sql_help.c:381 sql_help.c:1861 sql_help.c:1866 sql_help.c:1873 +#: sql_help.c:1874 sql_help.c:1875 sql_help.c:1876 sql_help.c:1877 +#: sql_help.c:1878 sql_help.c:1879 sql_help.c:1884 sql_help.c:1886 +#: sql_help.c:1890 sql_help.c:1892 sql_help.c:1896 sql_help.c:1901 +#: sql_help.c:1902 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 sql_help.c:1915 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:1918 sql_help.c:1919 +#: sql_help.c:1924 sql_help.c:1925 sql_help.c:4496 sql_help.c:4501 +#: sql_help.c:4502 sql_help.c:4503 sql_help.c:4504 sql_help.c:4510 +#: sql_help.c:4511 sql_help.c:4516 sql_help.c:4517 sql_help.c:4522 +#: sql_help.c:4523 sql_help.c:4524 sql_help.c:4525 sql_help.c:4526 +#: sql_help.c:4527 msgid "object_name" msgstr "objektnamn" -#: sql_help.c:329 sql_help.c:1847 sql_help.c:4467 +#: sql_help.c:339 sql_help.c:1862 sql_help.c:4499 msgid "aggregate_name" msgstr "aggregatnamn" -#: sql_help.c:331 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:341 sql_help.c:1864 sql_help.c:2154 sql_help.c:2158 +#: sql_help.c:2160 sql_help.c:3385 msgid "source_type" msgstr "källtyp" -#: sql_help.c:332 sql_help.c:1850 sql_help.c:2136 sql_help.c:2140 -#: sql_help.c:2142 sql_help.c:3366 +#: sql_help.c:342 sql_help.c:1865 sql_help.c:2155 sql_help.c:2159 +#: sql_help.c:2161 sql_help.c:3386 msgid "target_type" msgstr "måltyp" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1865 sql_help.c:2137 -#: sql_help.c:2180 sql_help.c:2258 sql_help.c:2526 sql_help.c:2557 -#: sql_help.c:3125 sql_help.c:4366 sql_help.c:4473 sql_help.c:4590 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4601 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5093 -#: sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:349 sql_help.c:802 sql_help.c:1880 sql_help.c:2156 +#: sql_help.c:2199 sql_help.c:2279 sql_help.c:2547 sql_help.c:2578 +#: sql_help.c:3145 sql_help.c:4398 sql_help.c:4505 sql_help.c:4622 +#: sql_help.c:4626 sql_help.c:4630 sql_help.c:4633 sql_help.c:4880 +#: sql_help.c:4884 sql_help.c:4888 sql_help.c:4891 sql_help.c:5125 +#: sql_help.c:5129 sql_help.c:5133 sql_help.c:5136 msgid "function_name" msgstr "funktionsnamn" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1872 sql_help.c:2550 +#: sql_help.c:354 sql_help.c:795 sql_help.c:1887 sql_help.c:2571 msgid "operator_name" msgstr "operatornamn" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:355 sql_help.c:729 sql_help.c:733 sql_help.c:737 sql_help.c:1888 +#: sql_help.c:2548 sql_help.c:3509 msgid "left_type" msgstr "vänster_typ" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1874 -#: sql_help.c:2528 sql_help.c:3490 +#: sql_help.c:356 sql_help.c:730 sql_help.c:734 sql_help.c:738 sql_help.c:1889 +#: sql_help.c:2549 sql_help.c:3510 msgid "right_type" msgstr "höger_typ" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1408 sql_help.c:1876 sql_help.c:1878 sql_help.c:2547 -#: sql_help.c:2568 sql_help.c:2958 sql_help.c:3499 sql_help.c:3508 +#: sql_help.c:358 sql_help.c:360 sql_help.c:758 sql_help.c:761 sql_help.c:764 +#: sql_help.c:793 sql_help.c:805 sql_help.c:813 sql_help.c:816 sql_help.c:819 +#: sql_help.c:1426 sql_help.c:1891 sql_help.c:1893 sql_help.c:2568 +#: sql_help.c:2589 sql_help.c:2975 sql_help.c:3519 sql_help.c:3528 msgid "index_method" msgstr "indexmetod" -#: sql_help.c:352 sql_help.c:1882 sql_help.c:4480 +#: sql_help.c:362 sql_help.c:1897 sql_help.c:4512 msgid "procedure_name" msgstr "procedurnamn" -#: sql_help.c:356 sql_help.c:1888 sql_help.c:3914 sql_help.c:4486 +#: sql_help.c:366 sql_help.c:1903 sql_help.c:3935 sql_help.c:4518 msgid "routine_name" msgstr "rutinnamn" -#: sql_help.c:368 sql_help.c:1380 sql_help.c:1905 sql_help.c:2402 -#: sql_help.c:2608 sql_help.c:2913 sql_help.c:3092 sql_help.c:3670 -#: sql_help.c:3936 sql_help.c:4388 +#: sql_help.c:378 sql_help.c:1398 sql_help.c:1920 sql_help.c:2423 +#: sql_help.c:2629 sql_help.c:2930 sql_help.c:3112 sql_help.c:3690 +#: sql_help.c:3957 sql_help.c:4420 msgid "type_name" msgstr "typnamn" -#: sql_help.c:369 sql_help.c:1906 sql_help.c:2401 sql_help.c:2607 -#: sql_help.c:3093 sql_help.c:3323 sql_help.c:3671 sql_help.c:3921 -#: sql_help.c:4373 +#: sql_help.c:379 sql_help.c:1921 sql_help.c:2422 sql_help.c:2628 +#: sql_help.c:3113 sql_help.c:3343 sql_help.c:3691 sql_help.c:3942 +#: sql_help.c:4405 msgid "lang_name" msgstr "språknamn" -#: sql_help.c:372 +#: sql_help.c:382 msgid "and aggregate_signature is:" msgstr "och aggregatsignatur är:" -#: sql_help.c:395 sql_help.c:2002 sql_help.c:2283 +#: sql_help.c:405 sql_help.c:2021 sql_help.c:2304 msgid "handler_function" msgstr "hanterarfunktion" -#: sql_help.c:396 sql_help.c:2284 +#: sql_help.c:406 sql_help.c:2305 msgid "validator_function" msgstr "valideringsfunktion" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1309 sql_help.c:1581 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:869 sql_help.c:1019 +#: sql_help.c:1325 sql_help.c:1602 msgid "action" msgstr "aktion" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1311 sql_help.c:1329 sql_help.c:1333 sql_help.c:1334 -#: sql_help.c:1338 sql_help.c:1340 sql_help.c:1341 sql_help.c:1342 -#: sql_help.c:1343 sql_help.c:1345 sql_help.c:1348 sql_help.c:1349 -#: sql_help.c:1351 sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 -#: sql_help.c:1404 sql_help.c:1406 sql_help.c:1413 sql_help.c:1422 -#: sql_help.c:1427 sql_help.c:1431 sql_help.c:1432 sql_help.c:1683 -#: sql_help.c:1686 sql_help.c:1690 sql_help.c:1728 sql_help.c:1853 -#: sql_help.c:1967 sql_help.c:1973 sql_help.c:1987 sql_help.c:1988 -#: sql_help.c:1989 sql_help.c:2333 sql_help.c:2346 sql_help.c:2399 -#: sql_help.c:2467 sql_help.c:2473 sql_help.c:2506 sql_help.c:2637 -#: sql_help.c:2746 sql_help.c:2781 sql_help.c:2783 sql_help.c:2895 -#: sql_help.c:2904 sql_help.c:2914 sql_help.c:2917 sql_help.c:2927 -#: sql_help.c:2931 sql_help.c:2954 sql_help.c:2956 sql_help.c:2963 -#: sql_help.c:2976 sql_help.c:2981 sql_help.c:2985 sql_help.c:2986 -#: sql_help.c:3002 sql_help.c:3128 sql_help.c:3268 sql_help.c:3893 -#: sql_help.c:3894 sql_help.c:3990 sql_help.c:4005 sql_help.c:4007 -#: sql_help.c:4009 sql_help.c:4094 sql_help.c:4097 sql_help.c:4099 -#: sql_help.c:4345 sql_help.c:4346 sql_help.c:4466 sql_help.c:4627 -#: sql_help.c:4633 sql_help.c:4635 sql_help.c:4884 sql_help.c:4890 -#: sql_help.c:4892 sql_help.c:4933 sql_help.c:4935 sql_help.c:4937 -#: sql_help.c:4992 sql_help.c:5130 sql_help.c:5136 sql_help.c:5138 +#: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 +#: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 +#: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:927 sql_help.c:1096 +#: sql_help.c:1327 sql_help.c:1345 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1354 sql_help.c:1356 sql_help.c:1357 sql_help.c:1358 +#: sql_help.c:1360 sql_help.c:1361 sql_help.c:1363 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1369 sql_help.c:1372 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1422 sql_help.c:1424 sql_help.c:1431 +#: sql_help.c:1440 sql_help.c:1445 sql_help.c:1452 sql_help.c:1453 +#: sql_help.c:1704 sql_help.c:1707 sql_help.c:1711 sql_help.c:1747 +#: sql_help.c:1868 sql_help.c:1984 sql_help.c:1990 sql_help.c:2004 +#: sql_help.c:2005 sql_help.c:2006 sql_help.c:2354 sql_help.c:2367 +#: sql_help.c:2420 sql_help.c:2488 sql_help.c:2494 sql_help.c:2527 +#: sql_help.c:2658 sql_help.c:2763 sql_help.c:2798 sql_help.c:2800 +#: sql_help.c:2912 sql_help.c:2921 sql_help.c:2931 sql_help.c:2934 +#: sql_help.c:2944 sql_help.c:2948 sql_help.c:2971 sql_help.c:2973 +#: sql_help.c:2980 sql_help.c:2993 sql_help.c:2998 sql_help.c:3005 +#: sql_help.c:3006 sql_help.c:3022 sql_help.c:3148 sql_help.c:3288 +#: sql_help.c:3914 sql_help.c:3915 sql_help.c:4011 sql_help.c:4026 +#: sql_help.c:4028 sql_help.c:4030 sql_help.c:4124 sql_help.c:4127 +#: sql_help.c:4129 sql_help.c:4131 sql_help.c:4377 sql_help.c:4378 +#: sql_help.c:4498 sql_help.c:4659 sql_help.c:4666 sql_help.c:4668 +#: sql_help.c:4917 sql_help.c:4924 sql_help.c:4926 sql_help.c:4967 +#: sql_help.c:4969 sql_help.c:4971 sql_help.c:5024 sql_help.c:5162 +#: sql_help.c:5169 sql_help.c:5171 msgid "column_name" msgstr "kolumnnamn" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1312 sql_help.c:1691 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1328 sql_help.c:1712 msgid "new_column_name" msgstr "nytt_kolumnnamn" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1328 sql_help.c:1591 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:890 sql_help.c:1040 +#: sql_help.c:1344 sql_help.c:1612 msgid "where action is one of:" msgstr "där aktion är en av:" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1330 -#: sql_help.c:1335 sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 -#: sql_help.c:2334 sql_help.c:2546 sql_help.c:2739 sql_help.c:2896 -#: sql_help.c:3175 sql_help.c:4151 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1088 sql_help.c:1346 +#: sql_help.c:1351 sql_help.c:1614 sql_help.c:1618 sql_help.c:2258 +#: sql_help.c:2355 sql_help.c:2567 sql_help.c:2756 sql_help.c:2913 +#: sql_help.c:3195 sql_help.c:4183 msgid "data_type" msgstr "datatyp" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1331 sql_help.c:1336 -#: sql_help.c:1594 sql_help.c:1598 sql_help.c:2238 sql_help.c:2337 -#: sql_help.c:2469 sql_help.c:2898 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:3176 sql_help.c:3182 sql_help.c:4000 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1347 sql_help.c:1352 +#: sql_help.c:1447 sql_help.c:1615 sql_help.c:1619 sql_help.c:2259 +#: sql_help.c:2358 sql_help.c:2490 sql_help.c:2915 sql_help.c:2923 +#: sql_help.c:2936 sql_help.c:2950 sql_help.c:3000 sql_help.c:3196 +#: sql_help.c:3202 sql_help.c:4021 msgid "collation" msgstr "jämförelse" -#: sql_help.c:456 sql_help.c:1332 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:466 sql_help.c:1348 sql_help.c:2359 sql_help.c:2368 +#: sql_help.c:2916 sql_help.c:2932 sql_help.c:2945 msgid "column_constraint" msgstr "kolumnvillkor" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1350 sql_help.c:4986 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1368 sql_help.c:5018 msgid "integer" msgstr "heltal" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1352 -#: sql_help.c:1355 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1370 +#: sql_help.c:1373 msgid "attribute_option" msgstr "attributalternativ" -#: sql_help.c:476 sql_help.c:1359 sql_help.c:2339 sql_help.c:2348 -#: sql_help.c:2900 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:486 sql_help.c:1377 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2917 sql_help.c:2933 sql_help.c:2946 msgid "table_constraint" msgstr "tabellvillkor" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1364 -#: sql_help.c:1365 sql_help.c:1366 sql_help.c:1367 sql_help.c:1907 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1382 +#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:1922 msgid "trigger_name" msgstr "triggernamn" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1378 sql_help.c:1379 -#: sql_help.c:2340 sql_help.c:2345 sql_help.c:2903 sql_help.c:2926 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1396 sql_help.c:1397 +#: sql_help.c:2361 sql_help.c:2366 sql_help.c:2920 sql_help.c:2943 msgid "parent_table" msgstr "föräldertabell" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1550 sql_help.c:2269 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:889 sql_help.c:1039 +#: sql_help.c:1571 sql_help.c:2290 msgid "extension_name" msgstr "utökningsnamn" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2403 +#: sql_help.c:555 sql_help.c:1041 sql_help.c:2424 msgid "execution_cost" msgstr "körkostnad" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2404 +#: sql_help.c:556 sql_help.c:1042 sql_help.c:2425 msgid "result_rows" msgstr "resultatrader" -#: sql_help.c:547 sql_help.c:2405 +#: sql_help.c:557 sql_help.c:2426 msgid "support_function" msgstr "supportfunktion" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1633 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:2717 -#: sql_help.c:2719 sql_help.c:2722 sql_help.c:2723 sql_help.c:3891 -#: sql_help.c:3892 sql_help.c:3896 sql_help.c:3897 sql_help.c:3900 -#: sql_help.c:3901 sql_help.c:3903 sql_help.c:3904 sql_help.c:3906 -#: sql_help.c:3907 sql_help.c:3909 sql_help.c:3910 sql_help.c:3912 -#: sql_help.c:3913 sql_help.c:3919 sql_help.c:3920 sql_help.c:3922 -#: sql_help.c:3923 sql_help.c:3925 sql_help.c:3926 sql_help.c:3928 -#: sql_help.c:3929 sql_help.c:3931 sql_help.c:3932 sql_help.c:3934 -#: sql_help.c:3935 sql_help.c:3937 sql_help.c:3938 sql_help.c:3940 -#: sql_help.c:3941 sql_help.c:4343 sql_help.c:4344 sql_help.c:4348 -#: sql_help.c:4349 sql_help.c:4352 sql_help.c:4353 sql_help.c:4355 -#: sql_help.c:4356 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4371 -#: sql_help.c:4372 sql_help.c:4374 sql_help.c:4375 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 +#: sql_help.c:579 sql_help.c:581 sql_help.c:964 sql_help.c:972 sql_help.c:976 +#: sql_help.c:979 sql_help.c:982 sql_help.c:1654 sql_help.c:1662 +#: sql_help.c:1666 sql_help.c:1669 sql_help.c:1672 sql_help.c:2734 +#: sql_help.c:2736 sql_help.c:2739 sql_help.c:2740 sql_help.c:3912 +#: sql_help.c:3913 sql_help.c:3917 sql_help.c:3918 sql_help.c:3921 +#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 +#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 +#: sql_help.c:3934 sql_help.c:3940 sql_help.c:3941 sql_help.c:3943 +#: sql_help.c:3944 sql_help.c:3946 sql_help.c:3947 sql_help.c:3949 +#: sql_help.c:3950 sql_help.c:3952 sql_help.c:3953 sql_help.c:3955 +#: sql_help.c:3956 sql_help.c:3958 sql_help.c:3959 sql_help.c:3961 +#: sql_help.c:3962 sql_help.c:4375 sql_help.c:4376 sql_help.c:4380 +#: sql_help.c:4381 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4393 +#: sql_help.c:4394 sql_help.c:4396 sql_help.c:4397 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 sql_help.c:4421 +#: sql_help.c:4422 sql_help.c:4424 sql_help.c:4425 msgid "role_specification" msgstr "rollspecifikation" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1664 sql_help.c:2205 -#: sql_help.c:2725 sql_help.c:3253 sql_help.c:3704 sql_help.c:4720 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1685 sql_help.c:2225 +#: sql_help.c:2742 sql_help.c:3273 sql_help.c:3724 sql_help.c:4753 msgid "user_name" msgstr "användarnamn" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1653 sql_help.c:2724 -#: sql_help.c:3942 sql_help.c:4394 +#: sql_help.c:583 sql_help.c:984 sql_help.c:1674 sql_help.c:2741 +#: sql_help.c:3963 sql_help.c:4426 msgid "where role_specification can be:" msgstr "där rollspecifikation kan vara:" -#: sql_help.c:575 +#: sql_help.c:585 msgid "group_name" msgstr "gruppnamn" -#: sql_help.c:596 sql_help.c:1425 sql_help.c:2216 sql_help.c:2476 -#: sql_help.c:2510 sql_help.c:2911 sql_help.c:2924 sql_help.c:2938 -#: sql_help.c:2979 sql_help.c:3006 sql_help.c:3018 sql_help.c:3933 -#: sql_help.c:4385 +#: sql_help.c:606 sql_help.c:1443 sql_help.c:2237 sql_help.c:2497 +#: sql_help.c:2531 sql_help.c:2928 sql_help.c:2941 sql_help.c:2955 +#: sql_help.c:2996 sql_help.c:3026 sql_help.c:3038 sql_help.c:3954 +#: sql_help.c:4417 msgid "tablespace_name" msgstr "tabellutrymmesnamn" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1372 sql_help.c:1382 -#: sql_help.c:1420 sql_help.c:1782 sql_help.c:1785 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1390 sql_help.c:1400 +#: sql_help.c:1438 sql_help.c:1800 msgid "index_name" msgstr "indexnamn" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1375 -#: sql_help.c:1377 sql_help.c:1423 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 sql_help.c:2977 -#: sql_help.c:3004 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1393 +#: sql_help.c:1395 sql_help.c:1441 sql_help.c:2495 sql_help.c:2529 +#: sql_help.c:2926 sql_help.c:2939 sql_help.c:2953 sql_help.c:2994 +#: sql_help.c:3024 msgid "storage_parameter" msgstr "lagringsparameter" -#: sql_help.c:607 +#: sql_help.c:617 msgid "column_number" msgstr "kolumnnummer" -#: sql_help.c:631 sql_help.c:1870 sql_help.c:4477 +#: sql_help.c:641 sql_help.c:1885 sql_help.c:4509 msgid "large_object_oid" msgstr "stort_objekt_oid" -#: sql_help.c:690 sql_help.c:1358 sql_help.c:2897 +#: sql_help.c:700 sql_help.c:1376 sql_help.c:2914 msgid "compression_method" msgstr "komprimeringsmetod" -#: sql_help.c:692 sql_help.c:1373 +#: sql_help.c:702 sql_help.c:1391 msgid "new_access_method" msgstr "ny_accessmetod" -#: sql_help.c:725 sql_help.c:2531 +#: sql_help.c:739 sql_help.c:2552 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:726 sql_help.c:2532 +#: sql_help.c:740 sql_help.c:2553 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2549 +#: sql_help.c:741 sql_help.c:2550 +msgid "com_op" +msgstr "com_op" + +#: sql_help.c:742 sql_help.c:2551 +msgid "neg_op" +msgstr "neg_op" + +#: sql_help.c:794 sql_help.c:806 sql_help.c:2570 msgid "strategy_number" msgstr "strateginummer" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2551 sql_help.c:2552 -#: sql_help.c:2555 sql_help.c:2556 +#: sql_help.c:796 sql_help.c:797 sql_help.c:800 sql_help.c:801 sql_help.c:807 +#: sql_help.c:808 sql_help.c:810 sql_help.c:811 sql_help.c:2572 sql_help.c:2573 +#: sql_help.c:2576 sql_help.c:2577 msgid "op_type" msgstr "op_typ" -#: sql_help.c:782 sql_help.c:2553 +#: sql_help.c:798 sql_help.c:2574 msgid "sort_family_name" msgstr "sorteringsfamiljnamn" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2554 +#: sql_help.c:799 sql_help.c:809 sql_help.c:2575 msgid "support_number" msgstr "supportnummer" -#: sql_help.c:787 sql_help.c:2138 sql_help.c:2558 sql_help.c:3095 -#: sql_help.c:3097 +#: sql_help.c:803 sql_help.c:2157 sql_help.c:2579 sql_help.c:3115 +#: sql_help.c:3117 msgid "argument_type" msgstr "argumenttyp" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1546 sql_help.c:1549 sql_help.c:1727 sql_help.c:1781 -#: sql_help.c:1784 sql_help.c:1855 sql_help.c:1880 sql_help.c:1893 -#: sql_help.c:1908 sql_help.c:1966 sql_help.c:1972 sql_help.c:2332 -#: sql_help.c:2344 sql_help.c:2465 sql_help.c:2505 sql_help.c:2582 -#: sql_help.c:2636 sql_help.c:2693 sql_help.c:2745 sql_help.c:2778 -#: sql_help.c:2785 sql_help.c:2894 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:3001 sql_help.c:3121 sql_help.c:3302 sql_help.c:3525 -#: sql_help.c:3574 sql_help.c:3680 sql_help.c:3889 sql_help.c:3895 -#: sql_help.c:3956 sql_help.c:3988 sql_help.c:4341 sql_help.c:4347 -#: sql_help.c:4465 sql_help.c:4576 sql_help.c:4578 sql_help.c:4640 -#: sql_help.c:4679 sql_help.c:4833 sql_help.c:4835 sql_help.c:4897 -#: sql_help.c:4931 sql_help.c:4991 sql_help.c:5079 sql_help.c:5081 -#: sql_help.c:5143 +#: sql_help.c:834 sql_help.c:837 sql_help.c:926 sql_help.c:1055 sql_help.c:1095 +#: sql_help.c:1567 sql_help.c:1570 sql_help.c:1746 sql_help.c:1799 +#: sql_help.c:1870 sql_help.c:1895 sql_help.c:1908 sql_help.c:1923 +#: sql_help.c:1983 sql_help.c:1989 sql_help.c:2353 sql_help.c:2365 +#: sql_help.c:2486 sql_help.c:2526 sql_help.c:2603 sql_help.c:2657 +#: sql_help.c:2710 sql_help.c:2762 sql_help.c:2795 sql_help.c:2802 +#: sql_help.c:2911 sql_help.c:2929 sql_help.c:2942 sql_help.c:3021 +#: sql_help.c:3141 sql_help.c:3322 sql_help.c:3545 sql_help.c:3594 +#: sql_help.c:3700 sql_help.c:3910 sql_help.c:3916 sql_help.c:3977 +#: sql_help.c:4009 sql_help.c:4373 sql_help.c:4379 sql_help.c:4497 +#: sql_help.c:4610 sql_help.c:4673 sql_help.c:4712 sql_help.c:4868 +#: sql_help.c:4931 sql_help.c:4965 sql_help.c:5023 sql_help.c:5113 +#: sql_help.c:5176 msgid "table_name" msgstr "tabellnamn" -#: sql_help.c:823 sql_help.c:2584 +#: sql_help.c:839 sql_help.c:2605 msgid "using_expression" msgstr "using-uttryck" -#: sql_help.c:824 sql_help.c:2585 +#: sql_help.c:840 sql_help.c:2606 msgid "check_expression" msgstr "check-uttryck" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2632 +#: sql_help.c:913 sql_help.c:915 sql_help.c:917 sql_help.c:2653 msgid "publication_object" msgstr "publiceringsobject" -#: sql_help.c:903 sql_help.c:2633 +#: sql_help.c:919 sql_help.c:2654 msgid "publication_parameter" msgstr "publiceringsparameter" -#: sql_help.c:909 sql_help.c:2635 +#: sql_help.c:925 sql_help.c:2656 msgid "where publication_object is one of:" msgstr "där publiceringsobjekt är en av:" -#: sql_help.c:952 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:968 sql_help.c:1658 sql_help.c:2464 sql_help.c:2689 +#: sql_help.c:3256 msgid "password" msgstr "lösenord" -#: sql_help.c:953 sql_help.c:1638 sql_help.c:2444 sql_help.c:2671 -#: sql_help.c:3237 +#: sql_help.c:969 sql_help.c:1659 sql_help.c:2465 sql_help.c:2690 +#: sql_help.c:3257 msgid "timestamp" msgstr "tidsstämpel" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:1652 sql_help.c:3902 -#: sql_help.c:4354 +#: sql_help.c:973 sql_help.c:977 sql_help.c:980 sql_help.c:983 sql_help.c:1663 +#: sql_help.c:1667 sql_help.c:1670 sql_help.c:1673 sql_help.c:3923 +#: sql_help.c:4386 msgid "database_name" msgstr "databasnamn" -#: sql_help.c:1073 sql_help.c:2740 +#: sql_help.c:1089 sql_help.c:2757 msgid "increment" msgstr "ökningsvärde" -#: sql_help.c:1074 sql_help.c:2741 +#: sql_help.c:1090 sql_help.c:2758 msgid "minvalue" msgstr "minvärde" -#: sql_help.c:1075 sql_help.c:2742 +#: sql_help.c:1091 sql_help.c:2759 msgid "maxvalue" msgstr "maxvärde" -#: sql_help.c:1076 sql_help.c:2743 sql_help.c:4574 sql_help.c:4677 -#: sql_help.c:4831 sql_help.c:5008 sql_help.c:5077 +#: sql_help.c:1092 sql_help.c:2760 sql_help.c:4606 sql_help.c:4710 +#: sql_help.c:4864 sql_help.c:5040 sql_help.c:5109 msgid "start" msgstr "start" -#: sql_help.c:1077 sql_help.c:1347 +#: sql_help.c:1093 sql_help.c:1365 msgid "restart" msgstr "starta om" -#: sql_help.c:1078 sql_help.c:2744 +#: sql_help.c:1094 sql_help.c:2761 msgid "cache" msgstr "cache" -#: sql_help.c:1123 +#: sql_help.c:1139 msgid "new_target" msgstr "nytt_mål" -#: sql_help.c:1142 sql_help.c:2797 +#: sql_help.c:1158 sql_help.c:2814 msgid "conninfo" msgstr "anslinfo" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2798 +#: sql_help.c:1160 sql_help.c:1164 sql_help.c:1168 sql_help.c:2815 msgid "publication_name" msgstr "publiceringsnamn" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1161 sql_help.c:1165 sql_help.c:1169 msgid "publication_option" msgstr "publicerings_alternativ" -#: sql_help.c:1156 +#: sql_help.c:1172 msgid "refresh_option" msgstr "refresh_alternativ" -#: sql_help.c:1161 sql_help.c:2799 +#: sql_help.c:1177 sql_help.c:2816 msgid "subscription_parameter" msgstr "prenumerationsparameter" -#: sql_help.c:1164 +#: sql_help.c:1180 msgid "skip_option" msgstr "skip_alternativ" -#: sql_help.c:1324 sql_help.c:1327 +#: sql_help.c:1340 sql_help.c:1343 msgid "partition_name" msgstr "partitionsnamn" -#: sql_help.c:1325 sql_help.c:2349 sql_help.c:2930 +#: sql_help.c:1341 sql_help.c:2370 sql_help.c:2947 msgid "partition_bound_spec" msgstr "partitionsgränsspec" -#: sql_help.c:1344 sql_help.c:1394 sql_help.c:2944 +#: sql_help.c:1362 sql_help.c:1412 sql_help.c:2961 msgid "sequence_options" msgstr "sekvensalternativ" -#: sql_help.c:1346 +#: sql_help.c:1364 msgid "sequence_option" msgstr "sekvensalternativ" -#: sql_help.c:1360 +#: sql_help.c:1378 msgid "table_constraint_using_index" msgstr "tabellvillkor_för_index" -#: sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 sql_help.c:1371 +#: sql_help.c:1386 sql_help.c:1387 sql_help.c:1388 sql_help.c:1389 msgid "rewrite_rule_name" msgstr "omskrivningsregelnamn" -#: sql_help.c:1383 sql_help.c:2361 sql_help.c:2969 +#: sql_help.c:1401 sql_help.c:2382 sql_help.c:2986 msgid "and partition_bound_spec is:" msgstr "och partitionsgränsspec är:" -#: sql_help.c:1384 sql_help.c:1385 sql_help.c:1386 sql_help.c:2362 -#: sql_help.c:2363 sql_help.c:2364 sql_help.c:2970 sql_help.c:2971 -#: sql_help.c:2972 +#: sql_help.c:1402 sql_help.c:1403 sql_help.c:1404 sql_help.c:2383 +#: sql_help.c:2384 sql_help.c:2385 sql_help.c:2987 sql_help.c:2988 +#: sql_help.c:2989 msgid "partition_bound_expr" msgstr "partitionsgränsuttryck" -#: sql_help.c:1387 sql_help.c:1388 sql_help.c:2365 sql_help.c:2366 -#: sql_help.c:2973 sql_help.c:2974 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:2386 sql_help.c:2387 +#: sql_help.c:2990 sql_help.c:2991 msgid "numeric_literal" msgstr "numerisk_literal" -#: sql_help.c:1389 +#: sql_help.c:1407 msgid "and column_constraint is:" msgstr "och kolumnvillkor är:" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2397 sql_help.c:2606 -#: sql_help.c:2942 +#: sql_help.c:1410 sql_help.c:2377 sql_help.c:2418 sql_help.c:2627 +#: sql_help.c:2959 msgid "default_expr" msgstr "default_uttryck" -#: sql_help.c:1393 sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:1411 sql_help.c:2378 sql_help.c:2960 msgid "generation_expr" msgstr "generatoruttryck" -#: sql_help.c:1395 sql_help.c:1396 sql_help.c:1405 sql_help.c:1407 -#: sql_help.c:1411 sql_help.c:2945 sql_help.c:2946 sql_help.c:2955 -#: sql_help.c:2957 sql_help.c:2961 +#: sql_help.c:1413 sql_help.c:1414 sql_help.c:1423 sql_help.c:1425 +#: sql_help.c:1429 sql_help.c:2962 sql_help.c:2963 sql_help.c:2972 +#: sql_help.c:2974 sql_help.c:2978 msgid "index_parameters" msgstr "indexparametrar" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1415 sql_help.c:1432 sql_help.c:2964 sql_help.c:2981 msgid "reftable" msgstr "reftabell" -#: sql_help.c:1398 sql_help.c:1415 sql_help.c:2948 sql_help.c:2965 +#: sql_help.c:1416 sql_help.c:1433 sql_help.c:2965 sql_help.c:2982 msgid "refcolumn" msgstr "refkolumn" -#: sql_help.c:1399 sql_help.c:1400 sql_help.c:1416 sql_help.c:1417 -#: sql_help.c:2949 sql_help.c:2950 sql_help.c:2966 sql_help.c:2967 +#: sql_help.c:1417 sql_help.c:1418 sql_help.c:1434 sql_help.c:1435 +#: sql_help.c:2966 sql_help.c:2967 sql_help.c:2983 sql_help.c:2984 msgid "referential_action" msgstr "referentiell_aktion" -#: sql_help.c:1401 sql_help.c:2358 sql_help.c:2951 +#: sql_help.c:1419 sql_help.c:2379 sql_help.c:2968 msgid "and table_constraint is:" msgstr "och tabellvillkor är:" -#: sql_help.c:1409 sql_help.c:2959 +#: sql_help.c:1427 sql_help.c:2976 msgid "exclude_element" msgstr "uteslutelement" -#: sql_help.c:1410 sql_help.c:2960 sql_help.c:4572 sql_help.c:4675 -#: sql_help.c:4829 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1428 sql_help.c:2977 sql_help.c:4604 sql_help.c:4708 +#: sql_help.c:4862 sql_help.c:5038 sql_help.c:5107 msgid "operator" msgstr "operator" -#: sql_help.c:1412 sql_help.c:2477 sql_help.c:2962 +#: sql_help.c:1430 sql_help.c:2498 sql_help.c:2979 msgid "predicate" msgstr "predikat" -#: sql_help.c:1418 +#: sql_help.c:1436 msgid "and table_constraint_using_index is:" msgstr "och tabellvillkor_för_index är:" -#: sql_help.c:1421 sql_help.c:2975 +#: sql_help.c:1439 sql_help.c:2992 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "indexparametrar i UNIQUE-, PRIMARY KEY- och EXCLUDE-villkor är:" -#: sql_help.c:1426 sql_help.c:2980 +#: sql_help.c:1444 sql_help.c:2997 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "uteslutelement i ett EXCLUDE-villkort är:" -#: sql_help.c:1429 sql_help.c:2470 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:2983 sql_help.c:4001 +#: sql_help.c:1448 sql_help.c:2491 sql_help.c:2924 sql_help.c:2937 +#: sql_help.c:2951 sql_help.c:3001 sql_help.c:4022 msgid "opclass" msgstr "op-klass" -#: sql_help.c:1430 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:2492 sql_help.c:3002 +msgid "opclass_parameter" +msgstr "opclass_parameter" + +#: sql_help.c:1451 sql_help.c:3004 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "referentiell_aktion i ett FOREIGN KEY/REFERENCES-villkor är:" -#: sql_help.c:1448 sql_help.c:1451 sql_help.c:3021 +#: sql_help.c:1469 sql_help.c:1472 sql_help.c:3041 msgid "tablespace_option" msgstr "tabellutrymmesalternativ" -#: sql_help.c:1472 sql_help.c:1475 sql_help.c:1481 sql_help.c:1485 +#: sql_help.c:1493 sql_help.c:1496 sql_help.c:1502 sql_help.c:1506 msgid "token_type" msgstr "symboltyp" -#: sql_help.c:1473 sql_help.c:1476 +#: sql_help.c:1494 sql_help.c:1497 msgid "dictionary_name" msgstr "ordlistnamn" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1499 sql_help.c:1503 msgid "old_dictionary" msgstr "gammal_ordlista" -#: sql_help.c:1479 sql_help.c:1483 +#: sql_help.c:1500 sql_help.c:1504 msgid "new_dictionary" msgstr "ny_ordlista" -#: sql_help.c:1578 sql_help.c:1592 sql_help.c:1595 sql_help.c:1596 -#: sql_help.c:3174 +#: sql_help.c:1599 sql_help.c:1613 sql_help.c:1616 sql_help.c:1617 +#: sql_help.c:3194 msgid "attribute_name" msgstr "attributnamn" -#: sql_help.c:1579 +#: sql_help.c:1600 msgid "new_attribute_name" msgstr "nytt_attributnamn" -#: sql_help.c:1583 sql_help.c:1587 +#: sql_help.c:1604 sql_help.c:1608 msgid "new_enum_value" msgstr "nytt_enumvärde" -#: sql_help.c:1584 +#: sql_help.c:1605 msgid "neighbor_enum_value" msgstr "närliggande_enumvärde" -#: sql_help.c:1586 +#: sql_help.c:1607 msgid "existing_enum_value" msgstr "existerande_enumvärde" -#: sql_help.c:1589 +#: sql_help.c:1610 msgid "property" msgstr "egenskap" -#: sql_help.c:1665 sql_help.c:2341 sql_help.c:2350 sql_help.c:2756 -#: sql_help.c:3254 sql_help.c:3705 sql_help.c:3911 sql_help.c:3957 -#: sql_help.c:4363 +#: sql_help.c:1686 sql_help.c:2362 sql_help.c:2371 sql_help.c:2773 +#: sql_help.c:3274 sql_help.c:3725 sql_help.c:3932 sql_help.c:3978 +#: sql_help.c:4395 msgid "server_name" msgstr "servernamn" -#: sql_help.c:1697 sql_help.c:1700 sql_help.c:3269 +#: sql_help.c:1718 sql_help.c:1721 sql_help.c:3289 msgid "view_option_name" msgstr "visningsalternativnamn" -#: sql_help.c:1698 sql_help.c:3270 +#: sql_help.c:1719 sql_help.c:3290 msgid "view_option_value" msgstr "visningsalternativvärde" -#: sql_help.c:1720 sql_help.c:1721 sql_help.c:4974 sql_help.c:4975 +#: sql_help.c:1740 sql_help.c:5007 msgid "table_and_columns" msgstr "tabell_och_kolumner" -#: sql_help.c:1722 sql_help.c:1786 sql_help.c:1978 sql_help.c:3754 -#: sql_help.c:4198 sql_help.c:4976 +#: sql_help.c:1741 sql_help.c:1801 sql_help.c:1995 sql_help.c:3774 +#: sql_help.c:4230 sql_help.c:5008 msgid "where option can be one of:" msgstr "där flaggor kan vara en av:" -#: sql_help.c:1723 sql_help.c:1724 sql_help.c:1787 sql_help.c:1980 -#: sql_help.c:1984 sql_help.c:2164 sql_help.c:3755 sql_help.c:3756 -#: sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 sql_help.c:3760 -#: sql_help.c:3761 sql_help.c:3762 sql_help.c:3763 sql_help.c:4199 -#: sql_help.c:4201 sql_help.c:4977 sql_help.c:4978 sql_help.c:4979 -#: sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 sql_help.c:4983 -#: sql_help.c:4984 sql_help.c:4985 sql_help.c:4987 sql_help.c:4988 +#: sql_help.c:1742 sql_help.c:1743 sql_help.c:1802 sql_help.c:1997 +#: sql_help.c:2001 sql_help.c:2183 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:3777 sql_help.c:3778 sql_help.c:3779 sql_help.c:3780 +#: sql_help.c:3781 sql_help.c:3782 sql_help.c:3783 sql_help.c:3784 +#: sql_help.c:4231 sql_help.c:4233 sql_help.c:5009 sql_help.c:5010 +#: sql_help.c:5011 sql_help.c:5012 sql_help.c:5013 sql_help.c:5014 +#: sql_help.c:5015 sql_help.c:5016 sql_help.c:5017 sql_help.c:5019 +#: sql_help.c:5020 msgid "boolean" msgstr "boolean" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1744 sql_help.c:5021 msgid "size" msgstr "storlek" -#: sql_help.c:1726 sql_help.c:4990 +#: sql_help.c:1745 sql_help.c:5022 msgid "and table_and_columns is:" msgstr "och tabell_och_kolumner är:" -#: sql_help.c:1742 sql_help.c:4736 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1761 sql_help.c:4769 sql_help.c:4771 sql_help.c:4795 msgid "transaction_mode" msgstr "transaktionsläge" -#: sql_help.c:1743 sql_help.c:4739 sql_help.c:4763 +#: sql_help.c:1762 sql_help.c:4772 sql_help.c:4796 msgid "where transaction_mode is one of:" msgstr "där transaktionsläge är en av:" -#: sql_help.c:1752 sql_help.c:4582 sql_help.c:4591 sql_help.c:4595 -#: sql_help.c:4599 sql_help.c:4602 sql_help.c:4839 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4856 sql_help.c:4859 sql_help.c:5085 -#: sql_help.c:5094 sql_help.c:5098 sql_help.c:5102 sql_help.c:5105 +#: sql_help.c:1771 sql_help.c:4614 sql_help.c:4623 sql_help.c:4627 +#: sql_help.c:4631 sql_help.c:4634 sql_help.c:4872 sql_help.c:4881 +#: sql_help.c:4885 sql_help.c:4889 sql_help.c:4892 sql_help.c:5117 +#: sql_help.c:5126 sql_help.c:5130 sql_help.c:5134 sql_help.c:5137 msgid "argument" msgstr "argument" -#: sql_help.c:1852 +#: sql_help.c:1867 msgid "relation_name" msgstr "relationsnamn" -#: sql_help.c:1857 sql_help.c:3905 sql_help.c:4357 +#: sql_help.c:1872 sql_help.c:3926 sql_help.c:4389 msgid "domain_name" msgstr "domännamn" -#: sql_help.c:1879 +#: sql_help.c:1894 msgid "policy_name" msgstr "policynamn" -#: sql_help.c:1892 +#: sql_help.c:1907 msgid "rule_name" msgstr "regelnamn" -#: sql_help.c:1911 sql_help.c:4496 +#: sql_help.c:1926 sql_help.c:4528 msgid "string_literal" msgstr "sträng_literal" -#: sql_help.c:1936 sql_help.c:4160 sql_help.c:4410 +#: sql_help.c:1951 sql_help.c:4192 sql_help.c:4442 msgid "transaction_id" msgstr "transaktions-id" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:4027 +#: sql_help.c:1985 sql_help.c:1992 sql_help.c:4048 msgid "filename" msgstr "filnamn" -#: sql_help.c:1969 sql_help.c:1976 sql_help.c:2695 sql_help.c:2696 -#: sql_help.c:2697 +#: sql_help.c:1986 sql_help.c:1993 sql_help.c:2712 sql_help.c:2713 +#: sql_help.c:2714 msgid "command" msgstr "kommando" -#: sql_help.c:1971 sql_help.c:2694 sql_help.c:3124 sql_help.c:3305 -#: sql_help.c:4011 sql_help.c:4088 sql_help.c:4091 sql_help.c:4565 -#: sql_help.c:4567 sql_help.c:4668 sql_help.c:4670 sql_help.c:4822 -#: sql_help.c:4824 sql_help.c:4940 sql_help.c:5068 sql_help.c:5070 +#: sql_help.c:1988 sql_help.c:2711 sql_help.c:3144 sql_help.c:3325 +#: sql_help.c:4032 sql_help.c:4115 sql_help.c:4118 sql_help.c:4121 +#: sql_help.c:4597 sql_help.c:4599 sql_help.c:4701 sql_help.c:4703 +#: sql_help.c:4855 sql_help.c:4857 sql_help.c:4974 sql_help.c:5100 +#: sql_help.c:5102 msgid "condition" msgstr "villkor" -#: sql_help.c:1974 sql_help.c:2511 sql_help.c:3007 sql_help.c:3271 -#: sql_help.c:3289 sql_help.c:3992 +#: sql_help.c:1991 sql_help.c:2532 sql_help.c:3027 sql_help.c:3291 +#: sql_help.c:3309 sql_help.c:4013 msgid "query" msgstr "fråga" -#: sql_help.c:1979 +#: sql_help.c:1996 msgid "format_name" msgstr "formatnamn" -#: sql_help.c:1981 +#: sql_help.c:1998 msgid "delimiter_character" msgstr "avdelartecken" -#: sql_help.c:1982 +#: sql_help.c:1999 msgid "null_string" msgstr "null-sträng" -#: sql_help.c:1983 +#: sql_help.c:2000 msgid "default_string" msgstr "standard-sträng" -#: sql_help.c:1985 +#: sql_help.c:2002 msgid "quote_character" msgstr "citattecken" -#: sql_help.c:1986 +#: sql_help.c:2003 msgid "escape_character" msgstr "escape-tecken" -#: sql_help.c:1990 +#: sql_help.c:2007 +msgid "error_action" +msgstr "fel_aktion" + +#: sql_help.c:2008 msgid "encoding_name" msgstr "kodningsnamn" -#: sql_help.c:2001 +#: sql_help.c:2009 +msgid "verbosity" +msgstr "verbosity" + +#: sql_help.c:2020 msgid "access_method_type" msgstr "accessmetodtyp" -#: sql_help.c:2072 sql_help.c:2091 sql_help.c:2094 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2113 msgid "arg_data_type" msgstr "arg_datatyp" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2092 sql_help.c:2114 sql_help.c:2122 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2093 sql_help.c:2115 sql_help.c:2123 msgid "state_data_type" msgstr "tillståndsdatatyp" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2094 sql_help.c:2116 sql_help.c:2124 msgid "state_data_size" msgstr "tillståndsdatastorlek" -#: sql_help.c:2076 sql_help.c:2098 sql_help.c:2106 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2096 sql_help.c:2126 msgid "combinefunc" msgstr "kombinerafunk" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2097 sql_help.c:2127 msgid "serialfunc" msgstr "serialiseringsfunk" -#: sql_help.c:2079 sql_help.c:2109 +#: sql_help.c:2098 sql_help.c:2128 msgid "deserialfunc" msgstr "deserialiseringsfunk" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2110 +#: sql_help.c:2099 sql_help.c:2118 sql_help.c:2129 msgid "initial_condition" msgstr "startvärde" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2100 sql_help.c:2130 msgid "msfunc" msgstr "msfunk" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2101 sql_help.c:2131 msgid "minvfunc" msgstr "minvfunk" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2102 sql_help.c:2132 msgid "mstate_data_type" msgstr "mtillståndsdatatyp" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2103 sql_help.c:2133 msgid "mstate_data_size" msgstr "ntillståndsstorlek" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2104 sql_help.c:2134 msgid "mffunc" msgstr "mffunk" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2105 sql_help.c:2135 msgid "minitial_condition" msgstr "mstartvärde" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2106 sql_help.c:2136 msgid "sort_operator" msgstr "sorteringsoperator" -#: sql_help.c:2100 +#: sql_help.c:2119 msgid "or the old syntax" msgstr "eller gamla syntaxen" -#: sql_help.c:2102 +#: sql_help.c:2121 msgid "base_type" msgstr "bastyp" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2179 sql_help.c:2229 msgid "locale" msgstr "lokal" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2180 sql_help.c:2230 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2162 sql_help.c:2211 +#: sql_help.c:2181 sql_help.c:2231 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2163 sql_help.c:4463 +#: sql_help.c:2182 sql_help.c:4495 msgid "provider" msgstr "leverantör" -#: sql_help.c:2165 +#: sql_help.c:2184 msgid "rules" msgstr "regler" -#: sql_help.c:2166 sql_help.c:2271 +#: sql_help.c:2185 sql_help.c:2292 msgid "version" msgstr "version" -#: sql_help.c:2168 +#: sql_help.c:2187 msgid "existing_collation" msgstr "existerande_jämförelse" -#: sql_help.c:2178 +#: sql_help.c:2197 msgid "source_encoding" msgstr "källkodning" -#: sql_help.c:2179 +#: sql_help.c:2198 msgid "dest_encoding" msgstr "målkodning" -#: sql_help.c:2206 sql_help.c:3047 +#: sql_help.c:2226 sql_help.c:3067 msgid "template" msgstr "mall" -#: sql_help.c:2207 +#: sql_help.c:2227 msgid "encoding" msgstr "kodning" -#: sql_help.c:2208 +#: sql_help.c:2228 msgid "strategy" msgstr "strategi" -#: sql_help.c:2212 +#: sql_help.c:2232 +msgid "builtin_locale" +msgstr "inbyggd_lokal" + +#: sql_help.c:2233 msgid "icu_locale" msgstr "icu_lokal" -#: sql_help.c:2213 +#: sql_help.c:2234 msgid "icu_rules" msgstr "icu_regler" -#: sql_help.c:2214 +#: sql_help.c:2235 msgid "locale_provider" msgstr "lokal_leverantör" -#: sql_help.c:2215 +#: sql_help.c:2236 msgid "collation_version" msgstr "jämförelse_version" -#: sql_help.c:2220 +#: sql_help.c:2241 msgid "oid" msgstr "oid" -#: sql_help.c:2240 -msgid "constraint" -msgstr "villkor" - -#: sql_help.c:2241 -msgid "where constraint is:" -msgstr "där villkor är:" - -#: sql_help.c:2255 sql_help.c:2692 sql_help.c:3120 +#: sql_help.c:2276 sql_help.c:2709 sql_help.c:3140 msgid "event" msgstr "händelse" -#: sql_help.c:2256 +#: sql_help.c:2277 msgid "filter_variable" msgstr "filtervariabel" -#: sql_help.c:2257 +#: sql_help.c:2278 msgid "filter_value" msgstr "filtervärde" -#: sql_help.c:2353 sql_help.c:2939 +#: sql_help.c:2374 sql_help.c:2956 msgid "where column_constraint is:" msgstr "där kolumnvillkor är:" -#: sql_help.c:2398 +#: sql_help.c:2419 msgid "rettype" msgstr "rettyp" -#: sql_help.c:2400 +#: sql_help.c:2421 msgid "column_type" msgstr "kolumntyp" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2430 sql_help.c:2633 msgid "definition" msgstr "definition" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2431 sql_help.c:2634 msgid "obj_file" msgstr "obj-fil" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2432 sql_help.c:2635 msgid "link_symbol" msgstr "linksymbol" -#: sql_help.c:2412 sql_help.c:2615 +#: sql_help.c:2433 sql_help.c:2636 msgid "sql_body" msgstr "sql-kropp" -#: sql_help.c:2450 sql_help.c:2677 sql_help.c:3243 +#: sql_help.c:2471 sql_help.c:2694 sql_help.c:3263 msgid "uid" msgstr "uid" -#: sql_help.c:2466 sql_help.c:2507 sql_help.c:2908 sql_help.c:2921 -#: sql_help.c:2935 sql_help.c:3003 +#: sql_help.c:2487 sql_help.c:2528 sql_help.c:2925 sql_help.c:2938 +#: sql_help.c:2952 sql_help.c:3023 msgid "method" msgstr "metod" -#: sql_help.c:2471 -msgid "opclass_parameter" -msgstr "opclass_parameter" - -#: sql_help.c:2488 +#: sql_help.c:2509 msgid "call_handler" msgstr "anropshanterare" -#: sql_help.c:2489 +#: sql_help.c:2510 msgid "inline_handler" msgstr "inline-hanterare" -#: sql_help.c:2490 +#: sql_help.c:2511 msgid "valfunction" msgstr "val-funktion" -#: sql_help.c:2529 -msgid "com_op" -msgstr "com_op" - -#: sql_help.c:2530 -msgid "neg_op" -msgstr "neg_op" - -#: sql_help.c:2548 +#: sql_help.c:2569 msgid "family_name" msgstr "familjenamn" -#: sql_help.c:2559 +#: sql_help.c:2580 msgid "storage_type" msgstr "lagringstyp" -#: sql_help.c:2698 sql_help.c:3127 +#: sql_help.c:2715 sql_help.c:3147 msgid "where event can be one of:" msgstr "där händelse kan vara en av:" -#: sql_help.c:2718 sql_help.c:2720 +#: sql_help.c:2735 sql_help.c:2737 msgid "schema_element" msgstr "schema-element" -#: sql_help.c:2757 +#: sql_help.c:2774 msgid "server_type" msgstr "servertyp" -#: sql_help.c:2758 +#: sql_help.c:2775 msgid "server_version" msgstr "serverversion" -#: sql_help.c:2759 sql_help.c:3908 sql_help.c:4360 +#: sql_help.c:2776 sql_help.c:3929 sql_help.c:4392 msgid "fdw_name" msgstr "fdw-namn" -#: sql_help.c:2776 sql_help.c:2779 +#: sql_help.c:2793 sql_help.c:2796 msgid "statistics_name" msgstr "statistiknamn" -#: sql_help.c:2780 +#: sql_help.c:2797 msgid "statistics_kind" msgstr "statistiksort" -#: sql_help.c:2796 +#: sql_help.c:2813 msgid "subscription_name" msgstr "prenumerationsnamn" -#: sql_help.c:2901 +#: sql_help.c:2918 msgid "source_table" msgstr "källtabell" -#: sql_help.c:2902 +#: sql_help.c:2919 msgid "like_option" msgstr "like_alternativ" -#: sql_help.c:2968 +#: sql_help.c:2985 msgid "and like_option is:" msgstr "och likealternativ är:" -#: sql_help.c:3020 +#: sql_help.c:3040 msgid "directory" msgstr "katalog" -#: sql_help.c:3034 +#: sql_help.c:3054 msgid "parser_name" msgstr "parsernamn" -#: sql_help.c:3035 +#: sql_help.c:3055 msgid "source_config" msgstr "källkonfig" -#: sql_help.c:3064 +#: sql_help.c:3084 msgid "start_function" msgstr "startfunktion" -#: sql_help.c:3065 +#: sql_help.c:3085 msgid "gettoken_function" msgstr "gettoken_funktion" -#: sql_help.c:3066 +#: sql_help.c:3086 msgid "end_function" msgstr "slutfunktion" -#: sql_help.c:3067 +#: sql_help.c:3087 msgid "lextypes_function" msgstr "symboltypfunktion" -#: sql_help.c:3068 +#: sql_help.c:3088 msgid "headline_function" msgstr "rubrikfunktion" -#: sql_help.c:3080 +#: sql_help.c:3100 msgid "init_function" msgstr "init_funktion" -#: sql_help.c:3081 +#: sql_help.c:3101 msgid "lexize_function" msgstr "symboluppdelningsfunktion" -#: sql_help.c:3094 +#: sql_help.c:3114 msgid "from_sql_function_name" msgstr "från_sql_funktionsnamn" -#: sql_help.c:3096 +#: sql_help.c:3116 msgid "to_sql_function_name" msgstr "till_sql_funktionsnamn" -#: sql_help.c:3122 +#: sql_help.c:3142 msgid "referenced_table_name" msgstr "refererat_tabellnamn" -#: sql_help.c:3123 +#: sql_help.c:3143 msgid "transition_relation_name" msgstr "övergångsrelationsnamn" -#: sql_help.c:3126 +#: sql_help.c:3146 msgid "arguments" msgstr "argument" -#: sql_help.c:3178 +#: sql_help.c:3198 msgid "label" msgstr "etikett" -#: sql_help.c:3180 +#: sql_help.c:3200 msgid "subtype" msgstr "subtyp" -#: sql_help.c:3181 +#: sql_help.c:3201 msgid "subtype_operator_class" msgstr "subtypoperatorklass" -#: sql_help.c:3183 +#: sql_help.c:3203 msgid "canonical_function" msgstr "kanonisk_funktion" -#: sql_help.c:3184 +#: sql_help.c:3204 msgid "subtype_diff_function" msgstr "subtyp_diff_funktion" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "multirange_type_name" msgstr "multirange_typnamn" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "input_function" msgstr "inmatningsfunktion" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "output_function" msgstr "utmatningsfunktion" -#: sql_help.c:3189 +#: sql_help.c:3209 msgid "receive_function" msgstr "mottagarfunktion" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "send_function" msgstr "sändfunktion" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "type_modifier_input_function" msgstr "typmodifiering_indatafunktion" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "type_modifier_output_function" msgstr "typmodifiering_utdatafunktion" -#: sql_help.c:3193 +#: sql_help.c:3213 msgid "analyze_function" msgstr "analysfunktion" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "subscript_function" msgstr "arrayindexfunktion" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "internallength" msgstr "internlängd" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "alignment" msgstr "justering" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "storage" msgstr "lagring" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "like_type" msgstr "liketyp" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "category" msgstr "kategori" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "preferred" msgstr "föredragen" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "default" msgstr "standard" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "element" msgstr "element" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "delimiter" msgstr "avskiljare" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "collatable" msgstr "sorterbar" -#: sql_help.c:3301 sql_help.c:3987 sql_help.c:4077 sql_help.c:4560 -#: sql_help.c:4662 sql_help.c:4817 sql_help.c:4930 sql_help.c:5063 +#: sql_help.c:3321 sql_help.c:4008 sql_help.c:4102 sql_help.c:4592 +#: sql_help.c:4695 sql_help.c:4850 sql_help.c:4964 sql_help.c:5095 msgid "with_query" msgstr "with_fråga" -#: sql_help.c:3303 sql_help.c:3989 sql_help.c:4579 sql_help.c:4585 -#: sql_help.c:4588 sql_help.c:4592 sql_help.c:4596 sql_help.c:4604 -#: sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 sql_help.c:4849 -#: sql_help.c:4853 sql_help.c:4861 sql_help.c:4932 sql_help.c:5082 -#: sql_help.c:5088 sql_help.c:5091 sql_help.c:5095 sql_help.c:5099 -#: sql_help.c:5107 +#: sql_help.c:3323 sql_help.c:4010 sql_help.c:4611 sql_help.c:4617 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4628 sql_help.c:4636 +#: sql_help.c:4869 sql_help.c:4875 sql_help.c:4878 sql_help.c:4882 +#: sql_help.c:4886 sql_help.c:4894 sql_help.c:4966 sql_help.c:5114 +#: sql_help.c:5120 sql_help.c:5123 sql_help.c:5127 sql_help.c:5131 +#: sql_help.c:5139 msgid "alias" msgstr "alias" -#: sql_help.c:3304 sql_help.c:4564 sql_help.c:4606 sql_help.c:4608 -#: sql_help.c:4612 sql_help.c:4614 sql_help.c:4615 sql_help.c:4616 -#: sql_help.c:4667 sql_help.c:4821 sql_help.c:4863 sql_help.c:4865 -#: sql_help.c:4869 sql_help.c:4871 sql_help.c:4872 sql_help.c:4873 -#: sql_help.c:4939 sql_help.c:5067 sql_help.c:5109 sql_help.c:5111 -#: sql_help.c:5115 sql_help.c:5117 sql_help.c:5118 sql_help.c:5119 +#: sql_help.c:3324 sql_help.c:4596 sql_help.c:4638 sql_help.c:4640 +#: sql_help.c:4644 sql_help.c:4646 sql_help.c:4647 sql_help.c:4648 +#: sql_help.c:4700 sql_help.c:4854 sql_help.c:4896 sql_help.c:4898 +#: sql_help.c:4902 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4973 sql_help.c:5099 sql_help.c:5141 sql_help.c:5143 +#: sql_help.c:5147 sql_help.c:5149 sql_help.c:5150 sql_help.c:5151 msgid "from_item" msgstr "frånval" -#: sql_help.c:3306 sql_help.c:3789 sql_help.c:4127 sql_help.c:4941 +#: sql_help.c:3326 sql_help.c:3810 sql_help.c:4159 sql_help.c:4975 msgid "cursor_name" msgstr "markörnamn" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4942 +#: sql_help.c:3327 sql_help.c:4016 sql_help.c:4108 sql_help.c:4976 msgid "output_expression" msgstr "utdatauttryck" -#: sql_help.c:3308 sql_help.c:3996 sql_help.c:4563 sql_help.c:4665 -#: sql_help.c:4820 sql_help.c:4943 sql_help.c:5066 +#: sql_help.c:3328 sql_help.c:4017 sql_help.c:4109 sql_help.c:4595 +#: sql_help.c:4698 sql_help.c:4853 sql_help.c:4977 sql_help.c:5098 msgid "output_name" msgstr "utdatanamn" -#: sql_help.c:3324 +#: sql_help.c:3344 msgid "code" msgstr "kod" -#: sql_help.c:3729 +#: sql_help.c:3749 msgid "parameter" msgstr "parameter" -#: sql_help.c:3752 sql_help.c:3753 sql_help.c:4152 +#: sql_help.c:3773 sql_help.c:4184 msgid "statement" msgstr "sats" -#: sql_help.c:3788 sql_help.c:4126 +#: sql_help.c:3809 sql_help.c:4158 msgid "direction" msgstr "riktning" -#: sql_help.c:3790 sql_help.c:4128 +#: sql_help.c:3811 sql_help.c:4160 msgid "where direction can be one of:" msgstr "där riktning kan vara en av:" -#: sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 sql_help.c:3794 -#: sql_help.c:3795 sql_help.c:4129 sql_help.c:4130 sql_help.c:4131 -#: sql_help.c:4132 sql_help.c:4133 sql_help.c:4573 sql_help.c:4575 -#: sql_help.c:4676 sql_help.c:4678 sql_help.c:4830 sql_help.c:4832 -#: sql_help.c:5007 sql_help.c:5009 sql_help.c:5076 sql_help.c:5078 +#: sql_help.c:3812 sql_help.c:3813 sql_help.c:3814 sql_help.c:3815 +#: sql_help.c:3816 sql_help.c:4161 sql_help.c:4162 sql_help.c:4163 +#: sql_help.c:4164 sql_help.c:4165 sql_help.c:4605 sql_help.c:4607 +#: sql_help.c:4709 sql_help.c:4711 sql_help.c:4863 sql_help.c:4865 +#: sql_help.c:5039 sql_help.c:5041 sql_help.c:5108 sql_help.c:5110 msgid "count" msgstr "antal" -#: sql_help.c:3898 sql_help.c:4350 +#: sql_help.c:3919 sql_help.c:4382 msgid "sequence_name" msgstr "sekvensnamn" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3937 sql_help.c:4400 msgid "arg_name" msgstr "arg_namn" -#: sql_help.c:3917 sql_help.c:4369 +#: sql_help.c:3938 sql_help.c:4401 msgid "arg_type" msgstr "arg_typ" -#: sql_help.c:3924 sql_help.c:4376 +#: sql_help.c:3945 sql_help.c:4408 msgid "loid" msgstr "loid" -#: sql_help.c:3955 +#: sql_help.c:3976 msgid "remote_schema" msgstr "externt_schema" -#: sql_help.c:3958 +#: sql_help.c:3979 msgid "local_schema" msgstr "lokalt_schema" -#: sql_help.c:3993 +#: sql_help.c:4014 msgid "conflict_target" msgstr "konfliktmål" -#: sql_help.c:3994 +#: sql_help.c:4015 msgid "conflict_action" msgstr "konfliktaktion" -#: sql_help.c:3997 +#: sql_help.c:4018 msgid "where conflict_target can be one of:" msgstr "där konfliktmål kan vara en av:" -#: sql_help.c:3998 +#: sql_help.c:4019 msgid "index_column_name" msgstr "indexkolumnnamn" -#: sql_help.c:3999 +#: sql_help.c:4020 msgid "index_expression" msgstr "indexuttryck" -#: sql_help.c:4002 +#: sql_help.c:4023 msgid "index_predicate" msgstr "indexpredikat" -#: sql_help.c:4004 +#: sql_help.c:4025 msgid "and conflict_action is one of:" msgstr "och konfliktaktion är en av:" -#: sql_help.c:4010 sql_help.c:4938 +#: sql_help.c:4031 sql_help.c:4132 sql_help.c:4972 msgid "sub-SELECT" msgstr "sub-SELECT" -#: sql_help.c:4019 sql_help.c:4141 sql_help.c:4914 +#: sql_help.c:4040 sql_help.c:4173 sql_help.c:4948 msgid "channel" msgstr "kanal" -#: sql_help.c:4041 +#: sql_help.c:4062 msgid "lockmode" msgstr "låsläge" -#: sql_help.c:4042 +#: sql_help.c:4063 msgid "where lockmode is one of:" msgstr "där låsläge är en av:" -#: sql_help.c:4078 +#: sql_help.c:4103 msgid "target_table_name" msgstr "måltabellnamn" -#: sql_help.c:4079 +#: sql_help.c:4104 msgid "target_alias" msgstr "målalias" -#: sql_help.c:4080 +#: sql_help.c:4105 msgid "data_source" msgstr "datakälla" -#: sql_help.c:4081 sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4106 sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "join_condition" msgstr "join-villkor" -#: sql_help.c:4082 +#: sql_help.c:4107 msgid "when_clause" msgstr "when_sats" -#: sql_help.c:4083 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "där datakälla är:" -#: sql_help.c:4084 +#: sql_help.c:4111 msgid "source_table_name" msgstr "källtabellnamn" -#: sql_help.c:4085 +#: sql_help.c:4112 msgid "source_query" msgstr "källfråga" -#: sql_help.c:4086 +#: sql_help.c:4113 msgid "source_alias" msgstr "källalias" -#: sql_help.c:4087 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "och when_sats är:" -#: sql_help.c:4089 +#: sql_help.c:4116 sql_help.c:4119 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4090 +#: sql_help.c:4117 sql_help.c:4120 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4092 +#: sql_help.c:4122 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4093 +#: sql_help.c:4123 msgid "and merge_insert is:" msgstr "och merge_insert är:" -#: sql_help.c:4096 +#: sql_help.c:4126 msgid "and merge_update is:" msgstr "och merge_update är:" -#: sql_help.c:4101 +#: sql_help.c:4133 msgid "and merge_delete is:" msgstr "och merge_delete är:" -#: sql_help.c:4142 +#: sql_help.c:4174 msgid "payload" msgstr "innehåll" -#: sql_help.c:4169 +#: sql_help.c:4201 msgid "old_role" msgstr "gammal_roll" -#: sql_help.c:4170 +#: sql_help.c:4202 msgid "new_role" msgstr "ny_roll" -#: sql_help.c:4209 sql_help.c:4418 sql_help.c:4426 +#: sql_help.c:4241 sql_help.c:4450 sql_help.c:4458 msgid "savepoint_name" msgstr "sparpunktnamn" -#: sql_help.c:4566 sql_help.c:4624 sql_help.c:4823 sql_help.c:4881 -#: sql_help.c:5069 sql_help.c:5127 +#: sql_help.c:4598 sql_help.c:4656 sql_help.c:4856 sql_help.c:4914 +#: sql_help.c:5101 sql_help.c:5159 msgid "grouping_element" msgstr "gruperingselement" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4600 sql_help.c:4704 sql_help.c:4858 sql_help.c:5103 msgid "window_name" msgstr "fönsternamn" -#: sql_help.c:4569 sql_help.c:4672 sql_help.c:4826 sql_help.c:5072 +#: sql_help.c:4601 sql_help.c:4705 sql_help.c:4859 sql_help.c:5104 msgid "window_definition" msgstr "fönsterdefinition" -#: sql_help.c:4570 sql_help.c:4584 sql_help.c:4628 sql_help.c:4673 -#: sql_help.c:4827 sql_help.c:4841 sql_help.c:4885 sql_help.c:5073 -#: sql_help.c:5087 sql_help.c:5131 +#: sql_help.c:4602 sql_help.c:4616 sql_help.c:4660 sql_help.c:4706 +#: sql_help.c:4860 sql_help.c:4874 sql_help.c:4918 sql_help.c:5105 +#: sql_help.c:5119 sql_help.c:5163 msgid "select" msgstr "select" -#: sql_help.c:4577 sql_help.c:4834 sql_help.c:5080 +#: sql_help.c:4608 sql_help.c:4866 sql_help.c:5111 +msgid "from_reference" +msgstr "från_referens" + +#: sql_help.c:4609 sql_help.c:4867 sql_help.c:5112 msgid "where from_item can be one of:" msgstr "där frånval kan vara en av:" -#: sql_help.c:4580 sql_help.c:4586 sql_help.c:4589 sql_help.c:4593 -#: sql_help.c:4605 sql_help.c:4837 sql_help.c:4843 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4862 sql_help.c:5083 sql_help.c:5089 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5108 +#: sql_help.c:4612 sql_help.c:4618 sql_help.c:4621 sql_help.c:4625 +#: sql_help.c:4637 sql_help.c:4870 sql_help.c:4876 sql_help.c:4879 +#: sql_help.c:4883 sql_help.c:4895 sql_help.c:5115 sql_help.c:5121 +#: sql_help.c:5124 sql_help.c:5128 sql_help.c:5140 msgid "column_alias" msgstr "kolumnalias" -#: sql_help.c:4581 sql_help.c:4838 sql_help.c:5084 +#: sql_help.c:4613 sql_help.c:4871 sql_help.c:5116 msgid "sampling_method" msgstr "samplingsmetod" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5086 +#: sql_help.c:4615 sql_help.c:4873 sql_help.c:5118 msgid "seed" msgstr "frö" -#: sql_help.c:4587 sql_help.c:4626 sql_help.c:4844 sql_help.c:4883 -#: sql_help.c:5090 sql_help.c:5129 +#: sql_help.c:4619 sql_help.c:4658 sql_help.c:4877 sql_help.c:4916 +#: sql_help.c:5122 sql_help.c:5161 msgid "with_query_name" msgstr "with_frågenamn" -#: sql_help.c:4597 sql_help.c:4600 sql_help.c:4603 sql_help.c:4854 -#: sql_help.c:4857 sql_help.c:4860 sql_help.c:5100 sql_help.c:5103 -#: sql_help.c:5106 +#: sql_help.c:4629 sql_help.c:4632 sql_help.c:4635 sql_help.c:4887 +#: sql_help.c:4890 sql_help.c:4893 sql_help.c:5132 sql_help.c:5135 +#: sql_help.c:5138 msgid "column_definition" msgstr "kolumndefinition" -#: sql_help.c:4607 sql_help.c:4613 sql_help.c:4864 sql_help.c:4870 -#: sql_help.c:5110 sql_help.c:5116 +#: sql_help.c:4639 sql_help.c:4645 sql_help.c:4897 sql_help.c:4903 +#: sql_help.c:5142 sql_help.c:5148 msgid "join_type" msgstr "join-typ" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4642 sql_help.c:4900 sql_help.c:5145 msgid "join_column" msgstr "join-kolumn" -#: sql_help.c:4611 sql_help.c:4868 sql_help.c:5114 +#: sql_help.c:4643 sql_help.c:4901 sql_help.c:5146 msgid "join_using_alias" msgstr "join_using_alias" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5120 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and grouping_element can be one of:" msgstr "och grupperingselement kan vara en av:" -#: sql_help.c:4625 sql_help.c:4882 sql_help.c:5128 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 msgid "and with_query is:" msgstr "och with_fråga är:" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "values" msgstr "värden" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "insert" msgstr "insert" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "update" msgstr "update" -#: sql_help.c:4632 sql_help.c:4889 sql_help.c:5135 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "delete" msgstr "delete" -#: sql_help.c:4634 sql_help.c:4891 sql_help.c:5137 +#: sql_help.c:4665 sql_help.c:4923 sql_help.c:5168 +msgid "merge" +msgstr "merge" + +#: sql_help.c:4667 sql_help.c:4925 sql_help.c:5170 msgid "search_seq_col_name" msgstr "söksekvens_kolumnnamn" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4669 sql_help.c:4927 sql_help.c:5172 msgid "cycle_mark_col_name" msgstr "cykelmarkering_kolumnnamn" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4670 sql_help.c:4928 sql_help.c:5173 msgid "cycle_mark_value" msgstr "cykelmarkering_värde" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4671 sql_help.c:4929 sql_help.c:5174 msgid "cycle_mark_default" msgstr "cykelmarkering_standard" -#: sql_help.c:4639 sql_help.c:4896 sql_help.c:5142 +#: sql_help.c:4672 sql_help.c:4930 sql_help.c:5175 msgid "cycle_path_col_name" msgstr "cykelväg_kolumnnamn" -#: sql_help.c:4666 +#: sql_help.c:4699 msgid "new_table" msgstr "ny_tabell" -#: sql_help.c:4737 +#: sql_help.c:4770 msgid "snapshot_id" msgstr "snapshot_id" -#: sql_help.c:5005 +#: sql_help.c:5037 msgid "sort_expression" msgstr "sorteringsuttryck" -#: sql_help.c:5149 sql_help.c:6133 +#: sql_help.c:5182 sql_help.c:6166 msgid "abort the current transaction" msgstr "avbryt aktuell transaktion" -#: sql_help.c:5155 +#: sql_help.c:5188 msgid "change the definition of an aggregate function" msgstr "ändra definitionen av en aggregatfunktion" -#: sql_help.c:5161 +#: sql_help.c:5194 msgid "change the definition of a collation" msgstr "ändra definitionen av en jämförelse" -#: sql_help.c:5167 +#: sql_help.c:5200 msgid "change the definition of a conversion" msgstr "ändra definitionen av en konvertering" -#: sql_help.c:5173 +#: sql_help.c:5206 msgid "change a database" msgstr "ändra en databas" -#: sql_help.c:5179 +#: sql_help.c:5212 msgid "define default access privileges" msgstr "definiera standardaccessrättigheter" -#: sql_help.c:5185 +#: sql_help.c:5218 msgid "change the definition of a domain" msgstr "ändra definitionen av en domän" -#: sql_help.c:5191 +#: sql_help.c:5224 msgid "change the definition of an event trigger" msgstr "ändra definitionen av en händelsetrigger" -#: sql_help.c:5197 +#: sql_help.c:5230 msgid "change the definition of an extension" msgstr "ändra definitionen av en utökning" -#: sql_help.c:5203 +#: sql_help.c:5236 msgid "change the definition of a foreign-data wrapper" msgstr "ändra definitionen av en främmande data-omvandlare" -#: sql_help.c:5209 +#: sql_help.c:5242 msgid "change the definition of a foreign table" msgstr "ändra definitionen av en främmande tabell" -#: sql_help.c:5215 +#: sql_help.c:5248 msgid "change the definition of a function" msgstr "ändra definitionen av en funktion" -#: sql_help.c:5221 +#: sql_help.c:5254 msgid "change role name or membership" msgstr "ändra rollnamn eller medlemskap" -#: sql_help.c:5227 +#: sql_help.c:5260 msgid "change the definition of an index" msgstr "ändra definitionen av ett index" -#: sql_help.c:5233 +#: sql_help.c:5266 msgid "change the definition of a procedural language" msgstr "ändra definitionen av ett procedur-språk" -#: sql_help.c:5239 +#: sql_help.c:5272 msgid "change the definition of a large object" msgstr "ändra definitionen av ett stort objekt" -#: sql_help.c:5245 +#: sql_help.c:5278 msgid "change the definition of a materialized view" msgstr "ändra definitionen av en materialiserad vy" -#: sql_help.c:5251 +#: sql_help.c:5284 msgid "change the definition of an operator" msgstr "ändra definitionen av en operator" -#: sql_help.c:5257 +#: sql_help.c:5290 msgid "change the definition of an operator class" msgstr "ändra definitionen av en operatorklass" -#: sql_help.c:5263 +#: sql_help.c:5296 msgid "change the definition of an operator family" msgstr "ändra definitionen av en operatorfamilj" -#: sql_help.c:5269 +#: sql_help.c:5302 msgid "change the definition of a row-level security policy" msgstr "ändra definitionen av en säkerhetspolicy på radnivå" -#: sql_help.c:5275 +#: sql_help.c:5308 msgid "change the definition of a procedure" msgstr "ändra definitionen av en procedur" -#: sql_help.c:5281 +#: sql_help.c:5314 msgid "change the definition of a publication" msgstr "ändra definitionen av en publicering" -#: sql_help.c:5287 sql_help.c:5389 +#: sql_help.c:5320 sql_help.c:5422 msgid "change a database role" msgstr "ändra databasroll" -#: sql_help.c:5293 +#: sql_help.c:5326 msgid "change the definition of a routine" msgstr "ändra definitionen av en rutin" -#: sql_help.c:5299 +#: sql_help.c:5332 msgid "change the definition of a rule" msgstr "ändra definitionen av en regel" -#: sql_help.c:5305 +#: sql_help.c:5338 msgid "change the definition of a schema" msgstr "ändra definitionen av ett schema" -#: sql_help.c:5311 +#: sql_help.c:5344 msgid "change the definition of a sequence generator" msgstr "ändra definitionen av en sekvensgenerator" -#: sql_help.c:5317 +#: sql_help.c:5350 msgid "change the definition of a foreign server" msgstr "ändra definitionen av en främmande server" -#: sql_help.c:5323 +#: sql_help.c:5356 msgid "change the definition of an extended statistics object" msgstr "ändra definitionen av ett utökat statistikobjekt" -#: sql_help.c:5329 +#: sql_help.c:5362 msgid "change the definition of a subscription" msgstr "ändra definitionen av en prenumerering" -#: sql_help.c:5335 +#: sql_help.c:5368 msgid "change a server configuration parameter" msgstr "ändra en servers konfigurationsparameter" -#: sql_help.c:5341 +#: sql_help.c:5374 msgid "change the definition of a table" msgstr "ändra definitionen av en tabell" -#: sql_help.c:5347 +#: sql_help.c:5380 msgid "change the definition of a tablespace" msgstr "ändra definitionen av ett tabellutrymme" -#: sql_help.c:5353 +#: sql_help.c:5386 msgid "change the definition of a text search configuration" msgstr "ändra definitionen av en textsökkonfiguration" -#: sql_help.c:5359 +#: sql_help.c:5392 msgid "change the definition of a text search dictionary" msgstr "ändra definitionen av en textsökordlista" -#: sql_help.c:5365 +#: sql_help.c:5398 msgid "change the definition of a text search parser" msgstr "ändra definitionen av en textsökparser" -#: sql_help.c:5371 +#: sql_help.c:5404 msgid "change the definition of a text search template" msgstr "ändra definitionen av en textsökmall" -#: sql_help.c:5377 +#: sql_help.c:5410 msgid "change the definition of a trigger" msgstr "ändra definitionen av en trigger" -#: sql_help.c:5383 +#: sql_help.c:5416 msgid "change the definition of a type" msgstr "ändra definitionen av en typ" -#: sql_help.c:5395 +#: sql_help.c:5428 msgid "change the definition of a user mapping" msgstr "ändra definitionen av en användarmappning" -#: sql_help.c:5401 +#: sql_help.c:5434 msgid "change the definition of a view" msgstr "ändra definitionen av en vy" -#: sql_help.c:5407 +#: sql_help.c:5440 msgid "collect statistics about a database" msgstr "samla in statistik om en databas" -#: sql_help.c:5413 sql_help.c:6211 +#: sql_help.c:5446 sql_help.c:6244 msgid "start a transaction block" msgstr "starta ett transaktionsblock" -#: sql_help.c:5419 +#: sql_help.c:5452 msgid "invoke a procedure" msgstr "anropa en procedur" -#: sql_help.c:5425 +#: sql_help.c:5458 msgid "force a write-ahead log checkpoint" msgstr "tvinga checkpoint i transaktionsloggen" -#: sql_help.c:5431 +#: sql_help.c:5464 msgid "close a cursor" msgstr "stäng en markör" -#: sql_help.c:5437 +#: sql_help.c:5470 msgid "cluster a table according to an index" msgstr "klustra en tabell efter ett index" -#: sql_help.c:5443 +#: sql_help.c:5476 msgid "define or change the comment of an object" msgstr "definiera eller ändra en kommentar på ett objekt" -#: sql_help.c:5449 sql_help.c:6007 +#: sql_help.c:5482 sql_help.c:6040 msgid "commit the current transaction" msgstr "utför den aktuella transaktionen" -#: sql_help.c:5455 +#: sql_help.c:5488 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:5461 +#: sql_help.c:5494 msgid "copy data between a file and a table" msgstr "kopiera data mellan en fil och en tabell" -#: sql_help.c:5467 +#: sql_help.c:5500 msgid "define a new access method" msgstr "definiera en ny accessmetod" -#: sql_help.c:5473 +#: sql_help.c:5506 msgid "define a new aggregate function" msgstr "definiera en ny aggregatfunktion" -#: sql_help.c:5479 +#: sql_help.c:5512 msgid "define a new cast" msgstr "definiera en ny typomvandling" -#: sql_help.c:5485 +#: sql_help.c:5518 msgid "define a new collation" msgstr "definiera en ny jämförelse" -#: sql_help.c:5491 +#: sql_help.c:5524 msgid "define a new encoding conversion" msgstr "definiera en ny teckenkodningskonvertering" -#: sql_help.c:5497 +#: sql_help.c:5530 msgid "create a new database" msgstr "skapa en ny databas" -#: sql_help.c:5503 +#: sql_help.c:5536 msgid "define a new domain" msgstr "definiera en ny domän" -#: sql_help.c:5509 +#: sql_help.c:5542 msgid "define a new event trigger" msgstr "definiera en ny händelsetrigger" -#: sql_help.c:5515 +#: sql_help.c:5548 msgid "install an extension" msgstr "installera en utökning" -#: sql_help.c:5521 +#: sql_help.c:5554 msgid "define a new foreign-data wrapper" msgstr "definiera en ny främmande data-omvandlare" -#: sql_help.c:5527 +#: sql_help.c:5560 msgid "define a new foreign table" msgstr "definiera en ny främmande tabell" -#: sql_help.c:5533 +#: sql_help.c:5566 msgid "define a new function" msgstr "definiera en ny funktion" -#: sql_help.c:5539 sql_help.c:5599 sql_help.c:5701 +#: sql_help.c:5572 sql_help.c:5632 sql_help.c:5734 msgid "define a new database role" msgstr "definiera en ny databasroll" -#: sql_help.c:5545 +#: sql_help.c:5578 msgid "define a new index" msgstr "skapa ett nytt index" -#: sql_help.c:5551 +#: sql_help.c:5584 msgid "define a new procedural language" msgstr "definiera ett nytt procedur-språk" -#: sql_help.c:5557 +#: sql_help.c:5590 msgid "define a new materialized view" msgstr "definiera en ny materialiserad vy" -#: sql_help.c:5563 +#: sql_help.c:5596 msgid "define a new operator" msgstr "definiera en ny operator" -#: sql_help.c:5569 +#: sql_help.c:5602 msgid "define a new operator class" msgstr "definiera en ny operatorklass" -#: sql_help.c:5575 +#: sql_help.c:5608 msgid "define a new operator family" msgstr "definiera en ny operatorfamilj" -#: sql_help.c:5581 +#: sql_help.c:5614 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:5587 +#: sql_help.c:5620 msgid "define a new procedure" msgstr "definiera ett ny procedur" -#: sql_help.c:5593 +#: sql_help.c:5626 msgid "define a new publication" msgstr "definiera en ny publicering" -#: sql_help.c:5605 +#: sql_help.c:5638 msgid "define a new rewrite rule" msgstr "definiera en ny omskrivningsregel" -#: sql_help.c:5611 +#: sql_help.c:5644 msgid "define a new schema" msgstr "definiera ett nytt schema" -#: sql_help.c:5617 +#: sql_help.c:5650 msgid "define a new sequence generator" msgstr "definiera en ny sekvensgenerator" -#: sql_help.c:5623 +#: sql_help.c:5656 msgid "define a new foreign server" msgstr "definiera en ny främmande server" -#: sql_help.c:5629 +#: sql_help.c:5662 msgid "define extended statistics" msgstr "definiera utökad statistik" -#: sql_help.c:5635 +#: sql_help.c:5668 msgid "define a new subscription" msgstr "definiera en ny prenumeration" -#: sql_help.c:5641 +#: sql_help.c:5674 msgid "define a new table" msgstr "definiera en ny tabell" -#: sql_help.c:5647 sql_help.c:6169 +#: sql_help.c:5680 sql_help.c:6202 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:5653 +#: sql_help.c:5686 msgid "define a new tablespace" msgstr "definiera ett nytt tabellutrymme" -#: sql_help.c:5659 +#: sql_help.c:5692 msgid "define a new text search configuration" msgstr "definiera en ny textsökkonfiguration" -#: sql_help.c:5665 +#: sql_help.c:5698 msgid "define a new text search dictionary" msgstr "definiera en ny textsökordlista" -#: sql_help.c:5671 +#: sql_help.c:5704 msgid "define a new text search parser" msgstr "definiera en ny textsökparser" -#: sql_help.c:5677 +#: sql_help.c:5710 msgid "define a new text search template" msgstr "definiera en ny textsökmall" -#: sql_help.c:5683 +#: sql_help.c:5716 msgid "define a new transform" msgstr "definiera en ny transform" -#: sql_help.c:5689 +#: sql_help.c:5722 msgid "define a new trigger" msgstr "definiera en ny trigger" -#: sql_help.c:5695 +#: sql_help.c:5728 msgid "define a new data type" msgstr "definiera en ny datatyp" -#: sql_help.c:5707 +#: sql_help.c:5740 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:5713 +#: sql_help.c:5746 msgid "define a new view" msgstr "definiera en ny vy" -#: sql_help.c:5719 +#: sql_help.c:5752 msgid "deallocate a prepared statement" msgstr "deallokera en förberedd sats" -#: sql_help.c:5725 +#: sql_help.c:5758 msgid "define a cursor" msgstr "definiera en markör" -#: sql_help.c:5731 +#: sql_help.c:5764 msgid "delete rows of a table" msgstr "radera rader i en tabell" -#: sql_help.c:5737 +#: sql_help.c:5770 msgid "discard session state" msgstr "släng sessionstillstånd" -#: sql_help.c:5743 +#: sql_help.c:5776 msgid "execute an anonymous code block" msgstr "kör ett annonymt kodblock" -#: sql_help.c:5749 +#: sql_help.c:5782 msgid "remove an access method" msgstr "ta bort en accessmetod" -#: sql_help.c:5755 +#: sql_help.c:5788 msgid "remove an aggregate function" msgstr "ta bort en aggregatfunktioner" -#: sql_help.c:5761 +#: sql_help.c:5794 msgid "remove a cast" msgstr "ta bort en typomvandling" -#: sql_help.c:5767 +#: sql_help.c:5800 msgid "remove a collation" msgstr "ta bort en jämförelse" -#: sql_help.c:5773 +#: sql_help.c:5806 msgid "remove a conversion" msgstr "ta bort en konvertering" -#: sql_help.c:5779 +#: sql_help.c:5812 msgid "remove a database" msgstr "ta bort en databas" -#: sql_help.c:5785 +#: sql_help.c:5818 msgid "remove a domain" msgstr "ta bort en domän" -#: sql_help.c:5791 +#: sql_help.c:5824 msgid "remove an event trigger" msgstr "ta bort en händelsetrigger" -#: sql_help.c:5797 +#: sql_help.c:5830 msgid "remove an extension" msgstr "ta bort en utökning" -#: sql_help.c:5803 +#: sql_help.c:5836 msgid "remove a foreign-data wrapper" msgstr "ta bort en frammande data-omvandlare" -#: sql_help.c:5809 +#: sql_help.c:5842 msgid "remove a foreign table" msgstr "ta bort en främmande tabell" -#: sql_help.c:5815 +#: sql_help.c:5848 msgid "remove a function" msgstr "ta bort en funktion" -#: sql_help.c:5821 sql_help.c:5887 sql_help.c:5989 +#: sql_help.c:5854 sql_help.c:5920 sql_help.c:6022 msgid "remove a database role" msgstr "ta bort en databasroll" -#: sql_help.c:5827 +#: sql_help.c:5860 msgid "remove an index" msgstr "ta bort ett index" -#: sql_help.c:5833 +#: sql_help.c:5866 msgid "remove a procedural language" msgstr "ta bort ett procedur-språk" -#: sql_help.c:5839 +#: sql_help.c:5872 msgid "remove a materialized view" msgstr "ta bort en materialiserad vy" -#: sql_help.c:5845 +#: sql_help.c:5878 msgid "remove an operator" msgstr "ta bort en operator" -#: sql_help.c:5851 +#: sql_help.c:5884 msgid "remove an operator class" msgstr "ta bort en operatorklass" -#: sql_help.c:5857 +#: sql_help.c:5890 msgid "remove an operator family" msgstr "ta bort en operatorfamilj" -#: sql_help.c:5863 +#: sql_help.c:5896 msgid "remove database objects owned by a database role" msgstr "ta bort databasobjekt som ägs av databasroll" -#: sql_help.c:5869 +#: sql_help.c:5902 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:5875 +#: sql_help.c:5908 msgid "remove a procedure" msgstr "ta bort en procedur" -#: sql_help.c:5881 +#: sql_help.c:5914 msgid "remove a publication" msgstr "ta bort en publicering" -#: sql_help.c:5893 +#: sql_help.c:5926 msgid "remove a routine" msgstr "ta bort en rutin" -#: sql_help.c:5899 +#: sql_help.c:5932 msgid "remove a rewrite rule" msgstr "ta bort en omskrivningsregel" -#: sql_help.c:5905 +#: sql_help.c:5938 msgid "remove a schema" msgstr "ta bort ett schema" -#: sql_help.c:5911 +#: sql_help.c:5944 msgid "remove a sequence" msgstr "ta bort en sekvens" -#: sql_help.c:5917 +#: sql_help.c:5950 msgid "remove a foreign server descriptor" msgstr "ta bort en främmande server-deskriptor" -#: sql_help.c:5923 +#: sql_help.c:5956 msgid "remove extended statistics" msgstr "ta bort utökad statistik" -#: sql_help.c:5929 +#: sql_help.c:5962 msgid "remove a subscription" msgstr "ta bort en prenumeration" -#: sql_help.c:5935 +#: sql_help.c:5968 msgid "remove a table" msgstr "ta bort en tabell" -#: sql_help.c:5941 +#: sql_help.c:5974 msgid "remove a tablespace" msgstr "ta bort ett tabellutrymme" -#: sql_help.c:5947 +#: sql_help.c:5980 msgid "remove a text search configuration" msgstr "ta bort en textsökkonfiguration" -#: sql_help.c:5953 +#: sql_help.c:5986 msgid "remove a text search dictionary" msgstr "ta bort en textsökordlista" -#: sql_help.c:5959 +#: sql_help.c:5992 msgid "remove a text search parser" msgstr "ta bort en textsökparser" -#: sql_help.c:5965 +#: sql_help.c:5998 msgid "remove a text search template" msgstr "ta bort en textsökmall" -#: sql_help.c:5971 +#: sql_help.c:6004 msgid "remove a transform" msgstr "ta bort en transform" -#: sql_help.c:5977 +#: sql_help.c:6010 msgid "remove a trigger" msgstr "ta bort en trigger" -#: sql_help.c:5983 +#: sql_help.c:6016 msgid "remove a data type" msgstr "ta bort en datatyp" -#: sql_help.c:5995 +#: sql_help.c:6028 msgid "remove a user mapping for a foreign server" msgstr "ta bort en användarmappning för en främmande server" -#: sql_help.c:6001 +#: sql_help.c:6034 msgid "remove a view" msgstr "ta bort en vy" -#: sql_help.c:6013 +#: sql_help.c:6046 msgid "execute a prepared statement" msgstr "utför en förberedd sats" -#: sql_help.c:6019 +#: sql_help.c:6052 msgid "show the execution plan of a statement" msgstr "visa körningsplanen för en sats" -#: sql_help.c:6025 +#: sql_help.c:6058 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:6031 +#: sql_help.c:6064 msgid "define access privileges" msgstr "definera åtkomsträttigheter" -#: sql_help.c:6037 +#: sql_help.c:6070 msgid "import table definitions from a foreign server" msgstr "importera tabelldefinitioner från en främmande server" -#: sql_help.c:6043 +#: sql_help.c:6076 msgid "create new rows in a table" msgstr "skapa nya rader i en tabell" -#: sql_help.c:6049 +#: sql_help.c:6082 msgid "listen for a notification" msgstr "lyssna efter notifiering" -#: sql_help.c:6055 +#: sql_help.c:6088 msgid "load a shared library file" msgstr "ladda en delad biblioteksfil (shared library)" -#: sql_help.c:6061 +#: sql_help.c:6094 msgid "lock a table" msgstr "lås en tabell" -#: sql_help.c:6067 +#: sql_help.c:6100 msgid "conditionally insert, update, or delete rows of a table" msgstr "villkorlig insert, updare eller delete av rader i en tabell" -#: sql_help.c:6073 +#: sql_help.c:6106 msgid "position a cursor" msgstr "flytta en markör" -#: sql_help.c:6079 +#: sql_help.c:6112 msgid "generate a notification" msgstr "generera en notifiering" -#: sql_help.c:6085 +#: sql_help.c:6118 msgid "prepare a statement for execution" msgstr "förbered en sats för körning" -#: sql_help.c:6091 +#: sql_help.c:6124 msgid "prepare the current transaction for two-phase commit" msgstr "avbryt aktuell transaktion för två-fas-commit" -#: sql_help.c:6097 +#: sql_help.c:6130 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:6103 +#: sql_help.c:6136 msgid "replace the contents of a materialized view" msgstr "ersätt innehållet av en materialiserad vy" -#: sql_help.c:6109 +#: sql_help.c:6142 msgid "rebuild indexes" msgstr "återskapa index" -#: sql_help.c:6115 +#: sql_help.c:6148 msgid "release a previously defined savepoint" msgstr "frigör en tidigare definierad sparpunkt" -#: sql_help.c:6121 +#: sql_help.c:6154 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:6127 +#: sql_help.c:6160 msgid "remove access privileges" msgstr "ta bort åtkomsträttigheter" -#: sql_help.c:6139 +#: sql_help.c:6172 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:6145 +#: sql_help.c:6178 msgid "roll back to a savepoint" msgstr "rulla tillbaka till sparpunkt" -#: sql_help.c:6151 +#: sql_help.c:6184 msgid "define a new savepoint within the current transaction" msgstr "definera en ny sparpunkt i den aktuella transaktionen" -#: sql_help.c:6157 +#: sql_help.c:6190 msgid "define or change a security label applied to an object" msgstr "definiera eller ändra en säkerhetsetikett på ett objekt" -#: sql_help.c:6163 sql_help.c:6217 sql_help.c:6253 +#: sql_help.c:6196 sql_help.c:6250 sql_help.c:6286 msgid "retrieve rows from a table or view" msgstr "hämta rader från en tabell eller vy" -#: sql_help.c:6175 +#: sql_help.c:6208 msgid "change a run-time parameter" msgstr "ändra en körningsparameter" -#: sql_help.c:6181 +#: sql_help.c:6214 msgid "set constraint check timing for the current transaction" msgstr "sätt integritetsvillkorstiming för nuvarande transaktion" -#: sql_help.c:6187 +#: sql_help.c:6220 msgid "set the current user identifier of the current session" msgstr "sätt användare för den aktiva sessionen" -#: sql_help.c:6193 +#: sql_help.c:6226 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:6199 +#: sql_help.c:6232 msgid "set the characteristics of the current transaction" msgstr "sätt inställningar för nuvarande transaktionen" -#: sql_help.c:6205 +#: sql_help.c:6238 msgid "show the value of a run-time parameter" msgstr "visa värde på en körningsparameter" -#: sql_help.c:6223 +#: sql_help.c:6256 msgid "empty a table or set of tables" msgstr "töm en eller flera tabeller" -#: sql_help.c:6229 +#: sql_help.c:6262 msgid "stop listening for a notification" msgstr "sluta att lyssna efter notifiering" -#: sql_help.c:6235 +#: sql_help.c:6268 msgid "update rows of a table" msgstr "uppdatera rader i en tabell" -#: sql_help.c:6241 +#: sql_help.c:6274 msgid "garbage-collect and optionally analyze a database" msgstr "skräpsamla och eventuellt analysera en databas" -#: sql_help.c:6247 +#: sql_help.c:6280 msgid "compute a set of rows" msgstr "beräkna en mängd rader" @@ -6506,7 +6585,7 @@ msgstr "extra kommandoradsargument \"%s\" ignorerad" msgid "could not find own program executable" msgstr "kunde inte hitta det egna programmets körbara fil" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "" "tab completion query failed: %s\n" @@ -6540,54 +6619,3 @@ msgid "" msgstr "" "okänt värde \"%s\" för \"%s\"\n" "Tillgängliga värden är: %s." - -#, c-format -#~ msgid "" -#~ " \\lo_export LOBOID FILE\n" -#~ " \\lo_import FILE [COMMENT]\n" -#~ " \\lo_list[+]\n" -#~ " \\lo_unlink LOBOID large object operations\n" -#~ msgstr "" -#~ " \\lo_export LOBOID FIL\n" -#~ " \\lo_import FIL [KOMMENTAR]\n" -#~ " \\lo_list[+]\n" -#~ " \\lo_unlink LOBOID operationer på stora objekt\n" - -#~ msgid "Source code" -#~ msgstr "Källkod" - -#, c-format -#~ msgid "\\watch cannot be used with COPY" -#~ msgstr "\\watch kan inte användas med COPY" - -#, c-format -#~ msgid "could not change directory to \"%s\": %m" -#~ msgstr "kunde inte byta katalog till \"%s\": %m" - -#, c-format -#~ msgid "could not identify current directory: %m" -#~ msgstr "kunde inte identifiera aktuell katalog: %m" - -#, c-format -#~ msgid "could not read binary \"%s\"" -#~ msgstr "kunde inte läsa binär \"%s\"" - -#, c-format -#~ msgid "could not read symbolic link \"%s\": %m" -#~ msgstr "kan inte läsa symbolisk länk \"%s\": %m" - -#, c-format -#~ msgid "invalid binary \"%s\"" -#~ msgstr "ogiltig binär \"%s\"" - -#~ msgid "match" -#~ msgstr "match" - -#~ msgid "text" -#~ msgstr "text" - -#~ msgid "timezone" -#~ msgstr "tidszon" - -#~ msgid "where direction can be empty or one of:" -#~ msgstr "där riktning kan vara tom eller en av:" diff --git a/src/bin/psql/po/uk.po b/src/bin/psql/po/uk.po index 3d8898f3ec32f..bd64a745d18e1 100644 --- a/src/bin/psql/po/uk.po +++ b/src/bin/psql/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:17+0000\n" -"PO-Revision-Date: 2023-12-19 15:38\n" +"POT-Creation-Date: 2024-09-23 10:48+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/psql.pot\n" -"X-Crowdin-File-ID: 981\n" +"X-Crowdin-File: /REL_17_STABLE/psql.pot\n" +"X-Crowdin-File-ID: 996\n" #: ../../../src/common/logging.c:276 #, c-format @@ -37,33 +37,48 @@ msgstr "деталі: " msgid "hint: " msgstr "підказка: " -#: ../../common/exec.c:172 +#: ../../common/exec.c:174 #, c-format msgid "invalid binary \"%s\": %m" msgstr "невірний бінарний файл \"%s\": %m" -#: ../../common/exec.c:215 +#: ../../common/exec.c:217 #, c-format msgid "could not read binary \"%s\": %m" msgstr "не вдалося прочитати бінарний файл \"%s\": %m" -#: ../../common/exec.c:223 +#: ../../common/exec.c:225 #, c-format msgid "could not find a \"%s\" to execute" msgstr "неможливо знайти \"%s\" для виконання" -#: ../../common/exec.c:250 +#: ../../common/exec.c:252 #, c-format msgid "could not resolve path \"%s\" to absolute form: %m" msgstr "не вдалося знайти абсолютний шлях \"%s\": %m" -#: ../../common/exec.c:412 +#: ../../common/exec.c:382 copy.c:326 +#, c-format +msgid "could not execute command \"%s\": %m" +msgstr "не вдалося виконати команду \"%s\": %m" + +#: ../../common/exec.c:394 +#, c-format +msgid "could not read from command \"%s\": %m" +msgstr "не вдалося прочитати висновок команди \"%s\": %m" + +#: ../../common/exec.c:397 +#, c-format +msgid "no data was returned by command \"%s\"" +msgstr "команда \"%s\" не повернула жодних даних" + +#: ../../common/exec.c:424 #, c-format msgid "%s() failed: %m" msgstr "%s() помилка: %m" -#: ../../common/exec.c:550 ../../common/exec.c:595 ../../common/exec.c:687 -#: command.c:1354 command.c:3439 command.c:3488 command.c:3612 input.c:226 +#: ../../common/exec.c:562 ../../common/exec.c:607 ../../common/exec.c:699 +#: command.c:1372 command.c:3458 command.c:3507 command.c:3632 input.c:225 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -85,7 +100,7 @@ msgstr "неможливо дублювати нульовий покажчик msgid "could not look up effective user ID %ld: %s" msgstr "не можу знайти користувача з ефективним ID %ld: %s" -#: ../../common/username.c:45 command.c:613 +#: ../../common/username.c:45 command.c:616 msgid "user does not exist" msgstr "користувача не існує" @@ -124,11 +139,11 @@ msgstr "дочірній процес перервано через сигнал msgid "child process exited with unrecognized status %d" msgstr "дочірній процес завершився з невизнаним статусом %d" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Запит на скасування відправлений\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Не вдалося надіслати запит на скасування: " @@ -146,341 +161,370 @@ msgstr[3] "(%lu рядка)" msgid "Interrupted\n" msgstr "Перервано\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Неможливо надрукувати вміст таблиці: кількість комірок %lld дорівнює або перевищує максимальне значення %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "Неможливо додати заголовок до вмісту таблиці: кількість колонок %d перевищено.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "Неможливо додати комірку до вмісту таблиці: перевищено загальну кількість комірок %d.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "Неможливо додати комірку до вмісту таблиці: перевищено загальну кількість комірок %lld.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "невірний формат виводу (внутрішня помилка): %d" -#: ../../fe_utils/psqlscan.l:717 +#: ../../fe_utils/psqlscan.l:732 #, c-format msgid "skipping recursive expansion of variable \"%s\"" msgstr "пропуск рекурсивного розгортання змінної \"%s\"" -#: ../../port/thread.c:50 ../../port/thread.c:86 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../port/user.c:43 ../../port/user.c:79 #, c-format msgid "could not look up local user ID %d: %s" msgstr "не вдалося знайти локального користувача з ідентифікатором %d: %s" -#: ../../port/thread.c:55 ../../port/thread.c:91 +#: ../../port/user.c:48 ../../port/user.c:84 #, c-format msgid "local user with ID %d does not exist" msgstr "локального користувача з ідентифікатором %d не існує" -#: command.c:234 +#: command.c:235 #, c-format msgid "invalid command \\%s" msgstr "Невірна команда \\%s" -#: command.c:236 +#: command.c:237 #, c-format msgid "Try \\? for help." msgstr "Спробуйте \\? для отримання довідки." -#: command.c:254 +#: command.c:255 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: зайвий аргумент \"%s\" проігноровано" -#: command.c:306 +#: command.c:307 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "\\%s команду проігноровано; скористайтесь \\endif або Ctrl-C, щоб вийти з поточного блоку \\if" -#: command.c:611 +#: command.c:614 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "неможливо отримати домашню директорію для користувача ID %ld: %s" -#: command.c:630 +#: command.c:633 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: неможливо змінити директорію на \"%s\": %m" -#: command.c:654 +#: command.c:657 #, c-format msgid "You are currently not connected to a database.\n" msgstr "На даний момент ви від'єднанні від бази даних.\n" -#: command.c:664 +#: command.c:667 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" за аресою \"%s\" на порту \"%s\".\n" -#: command.c:667 +#: command.c:670 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" через сокет в \"%s\" на порту \"%s\".\n" -#: command.c:673 +#: command.c:676 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" (за аресою \"%s\") на порту \"%s\".\n" -#: command.c:676 +#: command.c:679 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" на порту \"%s\".\n" -#: command.c:1066 command.c:1159 command.c:2682 +#: command.c:1069 command.c:1170 command.c:2675 #, c-format msgid "no query buffer" msgstr "немає буферу запитів" -#: command.c:1099 command.c:5689 +#: command.c:1102 command.c:5771 #, c-format msgid "invalid line number: %s" msgstr "невірний номер рядка: %s" -#: command.c:1237 +#: command.c:1248 msgid "No changes" msgstr "Без змін" -#: command.c:1315 +#: command.c:1333 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: невірне ім'я кодування або не знайдено процедуру конверсії" -#: command.c:1350 command.c:2152 command.c:3435 command.c:3632 command.c:5795 -#: common.c:182 common.c:231 common.c:400 common.c:1102 common.c:1120 -#: common.c:1194 common.c:1313 common.c:1351 common.c:1444 common.c:1480 -#: copy.c:486 copy.c:721 help.c:66 large_obj.c:157 large_obj.c:192 -#: large_obj.c:254 startup.c:304 +#: command.c:1368 command.c:2157 command.c:3454 command.c:3652 command.c:5877 +#: common.c:221 common.c:270 common.c:440 common.c:1142 common.c:1160 +#: common.c:1228 common.c:1340 common.c:1378 common.c:1475 common.c:1541 +#: copy.c:486 copy.c:722 large_obj.c:157 large_obj.c:192 large_obj.c:254 +#: startup.c:304 #, c-format msgid "%s" msgstr "%s" -#: command.c:1357 +#: command.c:1375 msgid "There is no previous error." msgstr "Попередня помилка відсутня." -#: command.c:1470 +#: command.c:1488 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: відсутня права дужка" -#: command.c:1554 command.c:1684 command.c:1988 command.c:2002 command.c:2021 -#: command.c:2203 command.c:2444 command.c:2649 command.c:2689 +#: command.c:1572 command.c:1691 command.c:1995 command.c:2009 command.c:2028 +#: command.c:2196 command.c:2437 command.c:2642 command.c:2682 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: не вистачає обов'язкового аргументу" -#: command.c:1815 +#: command.c:1822 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: не може йти після \\else" -#: command.c:1820 +#: command.c:1827 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: немає відповідного \\if" -#: command.c:1884 +#: command.c:1891 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: не може йти після \\else" -#: command.c:1889 +#: command.c:1896 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: немає відповідного \\if" -#: command.c:1929 +#: command.c:1936 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: немає відповідного \\if" -#: command.c:2085 +#: command.c:2092 msgid "Query buffer is empty." msgstr "Буфер запиту порожній." -#: command.c:2128 +#: command.c:2135 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Введіть новий пароль користувача \"%s\": " -#: command.c:2132 +#: command.c:2139 msgid "Enter it again: " msgstr "Введіть знову: " -#: command.c:2141 +#: command.c:2148 #, c-format msgid "Passwords didn't match." msgstr "Паролі не співпадають." -#: command.c:2238 +#: command.c:2231 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: не вдалося прочитати значення змінної" -#: command.c:2340 +#: command.c:2333 msgid "Query buffer reset (cleared)." msgstr "Буфер запитів скинуто (очищено)." -#: command.c:2362 +#: command.c:2355 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Історію записано до файлу \"%s\".\n" -#: command.c:2449 +#: command.c:2442 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: змінна середовища не повинна містити \"=\"" -#: command.c:2497 +#: command.c:2490 #, c-format msgid "function name is required" msgstr "необхідне ім'я функції" -#: command.c:2499 +#: command.c:2492 #, c-format msgid "view name is required" msgstr "необхідне ім'я подання" -#: command.c:2621 +#: command.c:2614 msgid "Timing is on." msgstr "Таймер увімкнено." -#: command.c:2623 +#: command.c:2616 msgid "Timing is off." msgstr "Таймер вимкнено." -#: command.c:2709 command.c:2747 command.c:4074 command.c:4077 command.c:4080 -#: command.c:4086 command.c:4088 command.c:4114 command.c:4124 command.c:4136 -#: command.c:4150 command.c:4177 command.c:4235 common.c:78 copy.c:329 -#: copy.c:401 psqlscanslash.l:788 psqlscanslash.l:800 psqlscanslash.l:818 +#: command.c:2702 command.c:2740 command.c:4163 command.c:4166 command.c:4169 +#: command.c:4175 command.c:4177 command.c:4203 command.c:4213 command.c:4225 +#: command.c:4239 command.c:4266 command.c:4324 common.c:77 copy.c:329 +#: copy.c:401 psqlscanslash.l:805 psqlscanslash.l:817 psqlscanslash.l:835 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:2736 copy.c:388 +#: command.c:2729 copy.c:388 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: command.c:2806 command.c:2852 +#: command.c:2801 command.c:2867 #, c-format msgid "\\watch: interval value is specified more than once" msgstr "\\watch: інтервал зазначається неодноразово" -#: command.c:2816 command.c:2862 +#: command.c:2811 command.c:2877 #, c-format msgid "\\watch: incorrect interval value \"%s\"" msgstr "\\watch: неправильне значення інтервалу \"%s\"" -#: command.c:2826 +#: command.c:2821 #, c-format msgid "\\watch: iteration count is specified more than once" msgstr "\\watch: інтервал зазначається неодноразово" -#: command.c:2836 +#: command.c:2831 #, c-format msgid "\\watch: incorrect iteration count \"%s\"" msgstr "\\watch: неправильна кількість ітерацій \"%s\"" -#: command.c:2843 +#: command.c:2841 +#, c-format +msgid "\\watch: minimum row count specified more than once" +msgstr "\\watch: мінімальна кількість рядків вказана більше одного разу" + +#: command.c:2851 +#, c-format +msgid "\\watch: incorrect minimum row count \"%s\"" +msgstr "\\watch: неправильна мінімальна кількість рядків \"%s\"" + +#: command.c:2858 #, c-format msgid "\\watch: unrecognized parameter \"%s\"" msgstr "\\watch: нерозпізнаний параметр \"%s\"" -#: command.c:3236 startup.c:243 startup.c:293 +#: command.c:3255 startup.c:243 startup.c:293 msgid "Password: " msgstr "Пароль: " -#: command.c:3241 startup.c:290 +#: command.c:3260 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Пароль користувача %s:" -#: command.c:3297 +#: command.c:3316 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "Не надайте користувачеві, хосту або порту окремо під час використання рядка підключення" -#: command.c:3332 +#: command.c:3351 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "Не існує підключення до бази даних для повторного використання параметрів" -#: command.c:3638 +#: command.c:3658 #, c-format msgid "Previous connection kept" msgstr "Попереднє підключення триває" -#: command.c:3644 +#: command.c:3664 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3700 +#: command.c:3720 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" за адресою \"%s\" на порту \"%s\".\n" -#: command.c:3703 +#: command.c:3723 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Ви тепер під'єднані до бази даних \"%s\" як користувач \"%s\" через сокет в \"%s\" на порту \"%s\".\n" -#: command.c:3709 +#: command.c:3729 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" (за адресою \"%s\") на порту \"%s\".\n" -#: command.c:3712 +#: command.c:3732 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Ви тепер під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" на порту \"%s\".\n" -#: command.c:3717 +#: command.c:3737 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Ви тепер під'єднані до бази даних \"%s\" як користувач \"%s\".\n" -#: command.c:3757 +#: command.c:3843 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, сервер %s)\n" -#: command.c:3770 +#: command.c:3856 #, c-format msgid "WARNING: %s major version %s, server major version %s.\n" " Some psql features might not work.\n" msgstr "УВАГА: мажорна версія %s %s, мажорна версія сервера %s.\n" " Деякі функції psql можуть не працювати.\n" -#: command.c:3807 +#: command.c:3895 #, c-format -msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" -msgstr "З'єднання SSL (протокол: %s, шифр: %s, компресія: %s)\n" +msgid "SSL connection (protocol: %s, cipher: %s, compression: %s, ALPN: %s)\n" +msgstr "З'єднання SSL (протокол: %s, шифр: %s, компресія: %s, ALPN: %s)\n" -#: command.c:3808 command.c:3809 +#: command.c:3896 command.c:3897 msgid "unknown" msgstr "невідомо" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "off" msgstr "вимк" -#: command.c:3810 help.c:42 +#: command.c:3898 help.c:42 msgid "on" msgstr "увімк" -#: command.c:3824 +#: command.c:3899 +msgid "none" +msgstr "нічого" + +#: command.c:3913 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "З'єднання зашифровано GSSAPI\n" -#: command.c:3844 +#: command.c:3933 #, c-format msgid "WARNING: Console code page (%u) differs from Windows code page (%u)\n" " 8-bit characters might not work correctly. See psql reference\n" @@ -489,187 +533,187 @@ msgstr "УВАГА: Кодова сторінка консолі (%u) відрі " 8-бітові символи можуть працювати неправильно. Детальніше у розділі \n" " \"Нотатки для користувачів Windows\" у документації psql.\n" -#: command.c:3949 +#: command.c:4038 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "змінна середовища PSQL_EDITOR_LINENUMBER_ARG має бути встановлена, щоб вказувати номер рядка" -#: command.c:3979 +#: command.c:4068 #, c-format msgid "could not start editor \"%s\"" msgstr "неможливо запустити редактор \"%s\"" -#: command.c:3981 +#: command.c:4070 #, c-format msgid "could not start /bin/sh" msgstr "неможливо запустити /bin/sh" -#: command.c:4031 +#: command.c:4120 #, c-format msgid "could not locate temporary directory: %s" msgstr "неможливо знайти тимчасову директорію: %s" -#: command.c:4058 +#: command.c:4147 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "неможливо відкрити тимчасовий файл \"%s\": %m" -#: command.c:4394 +#: command.c:4483 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: неоднозначна абревіатура \"%s\" відповідає обом \"%s\" і \"%s" -#: command.c:4414 +#: command.c:4503 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: дозволені формати: aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4433 +#: command.c:4522 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: дозволені стилі ліній: ascii, old-ascii, unicode" -#: command.c:4448 +#: command.c:4537 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: дозволені стилі ліній рамок Unicode: single, double" -#: command.c:4463 +#: command.c:4552 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: дозволені стилі ліній стовпців для Unicode: single, double" -#: command.c:4478 +#: command.c:4567 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: дозволені стилі ліній заголовків для Unicode: single, double" -#: command.c:4530 +#: command.c:4619 #, c-format msgid "\\pset: allowed xheader_width values are \"%s\" (default), \"%s\", \"%s\", or a number specifying the exact width" msgstr "\\pset: дозволені значення xheader_width є \"%s\" (за замовчуванням), \"%s\", \"%s\" або число, яке визначає точну ширину" -#: command.c:4547 +#: command.c:4636 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep повинен бути однобайтовим символом" -#: command.c:4552 +#: command.c:4641 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldsep не може бути подвійною лапкою, новим рядком або поверненням каретки" -#: command.c:4690 command.c:4891 +#: command.c:4779 command.c:4980 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: невідомий параметр: %s" -#: command.c:4710 +#: command.c:4799 #, c-format msgid "Border style is %d.\n" msgstr "Стиль рамки %d.\n" -#: command.c:4716 +#: command.c:4805 #, c-format msgid "Target width is unset.\n" msgstr "Цільова ширина не встановлена.\n" -#: command.c:4718 +#: command.c:4807 #, c-format msgid "Target width is %d.\n" msgstr "Цільова ширина %d.\n" -#: command.c:4725 +#: command.c:4814 #, c-format msgid "Expanded display is on.\n" msgstr "Розширене відображення увімкнуто.\n" -#: command.c:4727 +#: command.c:4816 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Розширене відображення використовується автоматично.\n" -#: command.c:4729 +#: command.c:4818 #, c-format msgid "Expanded display is off.\n" msgstr "Розширене відображення вимкнуто.\n" -#: command.c:4736 command.c:4738 command.c:4740 +#: command.c:4825 command.c:4827 command.c:4829 #, c-format msgid "Expanded header width is \"%s\".\n" msgstr "Розширена ширина заголовка \"%s\".\n" -#: command.c:4742 +#: command.c:4831 #, c-format msgid "Expanded header width is %d.\n" msgstr "Розширена ширина заголовка %d.\n" -#: command.c:4748 +#: command.c:4837 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Розділювач полів CSV: \"%s\".\n" -#: command.c:4756 command.c:4764 +#: command.c:4845 command.c:4853 #, c-format msgid "Field separator is zero byte.\n" msgstr "Розділювач полів - нульовий байт.\n" -#: command.c:4758 +#: command.c:4847 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Розділювач полів \"%s\".\n" -#: command.c:4771 +#: command.c:4860 #, c-format msgid "Default footer is on.\n" msgstr "Нинжній колонтитул увімкнуто за замовчуванням.\n" -#: command.c:4773 +#: command.c:4862 #, c-format msgid "Default footer is off.\n" msgstr "Нинжній колонтитул вимкнуто за замовчуванням.\n" -#: command.c:4779 +#: command.c:4868 #, c-format msgid "Output format is %s.\n" msgstr "Формат виводу %s.\n" -#: command.c:4785 +#: command.c:4874 #, c-format msgid "Line style is %s.\n" msgstr "Стиль лінії %s.\n" -#: command.c:4792 +#: command.c:4881 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null відображається як \"%s\".\n" -#: command.c:4800 +#: command.c:4889 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Локалізоване виведення чисел ввімкнено.\n" -#: command.c:4802 +#: command.c:4891 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Локалізоване виведення чисел вимкнено.\n" -#: command.c:4809 +#: command.c:4898 #, c-format msgid "Pager is used for long output.\n" msgstr "Пейджер використовується для виведення довгого тексту.\n" -#: command.c:4811 +#: command.c:4900 #, c-format msgid "Pager is always used.\n" msgstr "Завжди використовується пейджер.\n" -#: command.c:4813 +#: command.c:4902 #, c-format msgid "Pager usage is off.\n" msgstr "Пейджер не використовується.\n" -#: command.c:4819 +#: command.c:4908 #, 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" @@ -678,240 +722,245 @@ msgstr[1] "Пейджер не буде використовуватися дл msgstr[2] "Пейджер не буде використовуватися для менш ніж %d рядків.\n" msgstr[3] "Пейджер не буде використовуватися для менш ніж %d рядка.\n" -#: command.c:4829 command.c:4839 +#: command.c:4918 command.c:4928 #, c-format msgid "Record separator is zero byte.\n" msgstr "Розділювач записів - нульовий байт.\n" -#: command.c:4831 +#: command.c:4920 #, c-format msgid "Record separator is .\n" msgstr "Розділювач записів: .\n" -#: command.c:4833 +#: command.c:4922 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Розділювач записів: \"%s\".\n" -#: command.c:4846 +#: command.c:4935 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Табличні атрибути \"%s\".\n" -#: command.c:4849 +#: command.c:4938 #, c-format msgid "Table attributes unset.\n" msgstr "Атрибути таблиць не задані.\n" -#: command.c:4856 +#: command.c:4945 #, c-format msgid "Title is \"%s\".\n" msgstr "Заголовок: \"%s\".\n" -#: command.c:4858 +#: command.c:4947 #, c-format msgid "Title is unset.\n" msgstr "Заголовок не встановлено.\n" -#: command.c:4865 +#: command.c:4954 #, c-format msgid "Tuples only is on.\n" msgstr "Увімкнуто тільки кортежі.\n" -#: command.c:4867 +#: command.c:4956 #, c-format msgid "Tuples only is off.\n" msgstr "Вимкнуто тільки кортежі.\n" -#: command.c:4873 +#: command.c:4962 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Стиль ліній рамки для Unicode: \"%s\".\n" -#: command.c:4879 +#: command.c:4968 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Стиль ліній стовпців для Unicode: \"%s\".\n" -#: command.c:4885 +#: command.c:4974 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Стиль ліній заголовків для Unicode: \"%s\".\n" -#: command.c:5134 +#: command.c:5223 #, c-format msgid "\\!: failed" msgstr "\\!: помилка" -#: command.c:5168 +#: command.c:5257 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch не може бути використано із пустим запитом" -#: command.c:5200 +#: command.c:5289 #, c-format msgid "could not set timer: %m" msgstr "не вдалося встановити таймер: %m" -#: command.c:5269 +#: command.c:5358 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (кожні %g сек)\n" -#: command.c:5272 +#: command.c:5361 #, c-format msgid "%s (every %gs)\n" msgstr "%s (кожні %g сек)\n" -#: command.c:5340 +#: command.c:5424 #, c-format msgid "could not wait for signals: %m" msgstr "не вдалося дочекатися сигналів: %m" -#: command.c:5398 command.c:5405 common.c:592 common.c:599 common.c:1083 +#: command.c:5480 command.c:5487 common.c:632 common.c:639 common.c:1123 #, c-format -msgid "********* QUERY **********\n" +msgid "/******** QUERY *********/\n" "%s\n" -"**************************\n\n" -msgstr "********* ЗАПИТ **********\n" +"/************************/\n\n" +msgstr "/******** ЗАПИТ *********/\n" "%s\n" -"**************************\n\n" +"/************************/\n\n" -#: command.c:5584 +#: command.c:5666 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" не є поданням" -#: command.c:5600 +#: command.c:5682 #, c-format msgid "could not parse reloptions array" msgstr "неможливо розібрати масив reloptions" -#: common.c:167 +#: common.c:206 #, c-format msgid "cannot escape without active connection" msgstr "не можна вийти без активного з'єднання" -#: common.c:208 +#: common.c:247 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"" msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"" -#: common.c:312 +#: common.c:351 #, c-format msgid "connection to server was lost" msgstr "з'єднання із сервером втрачено" -#: common.c:316 +#: common.c:355 #, c-format msgid "The connection to the server was lost. Attempting reset: " msgstr "З'єднання із сервером втрачено. Спроба перевстановити:" -#: common.c:321 +#: common.c:360 #, c-format msgid "Failed.\n" msgstr "Помилка.\n" -#: common.c:338 +#: common.c:377 #, c-format msgid "Succeeded.\n" msgstr "Вдало.\n" -#: common.c:390 common.c:1021 +#: common.c:430 common.c:1061 #, c-format msgid "unexpected PQresultStatus: %d" msgstr "неочікуваний PQresultStatus: %d" -#: common.c:531 +#: common.c:571 #, c-format msgid "Time: %.3f ms\n" msgstr "Час: %.3f мс\n" -#: common.c:546 +#: common.c:586 #, c-format msgid "Time: %.3f ms (%02d:%06.3f)\n" msgstr "Час: %.3f мс (%02d:%06.3f)\n" -#: common.c:555 +#: common.c:595 #, c-format msgid "Time: %.3f ms (%02d:%02d:%06.3f)\n" msgstr "Час: %.3f мс (%02d:%02d:%06.3f)\n" -#: common.c:562 +#: common.c:602 #, c-format msgid "Time: %.3f ms (%.0f d %02d:%02d:%06.3f)\n" msgstr "Час: %.3f мс (%.0f d %02d:%02d:%06.3f)\n" -#: common.c:586 common.c:643 common.c:1054 describe.c:6214 +#: common.c:626 common.c:683 common.c:1094 describe.c:6192 #, c-format msgid "You are currently not connected to a database." msgstr "На даний момент ви від'єднанні від бази даних." -#: common.c:674 +#: common.c:714 #, c-format msgid "Asynchronous notification \"%s\" with payload \"%s\" received from server process with PID %d.\n" msgstr "Асинхронне сповіщення \"%s\" з навантаженням \"%s\" отримане від серверного процесу з PID %d.\n" -#: common.c:677 +#: common.c:717 #, c-format msgid "Asynchronous notification \"%s\" received from server process with PID %d.\n" msgstr "Асинхронне сповіщення \"%s\" отримане від серверного процесу з PID %d.\n" -#: common.c:708 +#: common.c:748 #, c-format msgid "could not print result table: %m" msgstr "не вдалося надрукувати таблицю результатів: %m" -#: common.c:728 +#: common.c:768 #, c-format msgid "no rows returned for \\gset" msgstr "немає рядків повернутих для \\gset" -#: common.c:733 +#: common.c:773 #, c-format msgid "more than one row returned for \\gset" msgstr "більш, ніж один рядок повернуто для \\gset" -#: common.c:751 +#: common.c:791 #, c-format msgid "attempt to \\gset into specially treated variable \"%s\" ignored" msgstr "спробу виконати \\gset в спеціальну змінну \"%s\" проігноровано" -#: common.c:1063 +#: common.c:1103 #, c-format -msgid "***(Single step mode: verify command)*******************************************\n" +msgid "/**(Single step mode: verify command)******************************************/\n" "%s\n" -"***(press return to proceed or enter x and return to cancel)********************\n" -msgstr "***(Покроковий режим: перевірка команди)*******************************************\n" +"/**(press return to proceed or enter x and return to cancel)*******************/\n" +msgstr "/**(Однокроковий режим: команда verify)******************************************/\n" "%s\n" -"***(Enter - виповнити; х і Enter - відмінити)********************\n" +"/**(натисніть клавішу Return, щоб продовжити, або введіть x і Return, щоб скасувати.)*******************/\n" -#: common.c:1146 +#: common.c:1180 #, c-format msgid "STATEMENT: %s" msgstr "ІНСТРУКЦІЯ: %s" -#: common.c:1182 +#: common.c:1216 #, c-format msgid "unexpected transaction status (%d)" msgstr "неочікуваний стан транзакції (%d)" -#: common.c:1335 describe.c:2026 +#: common.c:1362 describe.c:2025 msgid "Column" msgstr "Стовпець" -#: common.c:1336 describe.c:170 describe.c:358 describe.c:376 describe.c:1046 -#: describe.c:1200 describe.c:1732 describe.c:1756 describe.c:2027 -#: describe.c:3958 describe.c:4170 describe.c:4409 describe.c:4571 -#: describe.c:5846 +#: common.c:1363 describe.c:169 describe.c:355 describe.c:373 describe.c:1043 +#: describe.c:1201 describe.c:1731 describe.c:1755 describe.c:2026 +#: describe.c:3956 describe.c:4167 describe.c:4404 describe.c:4564 +#: describe.c:5829 msgid "Type" msgstr "Тип" -#: common.c:1385 +#: common.c:1412 #, c-format msgid "The command has no result, or the result has no columns.\n" msgstr "Команда не має результату або результат не має стовпців.\n" +#: common.c:1504 +#, c-format +msgid "fetching results in chunked mode failed" +msgstr "помилка отримання результатів у режимі частинами" + #: copy.c:98 #, c-format msgid "\\copy: arguments required" @@ -927,11 +976,6 @@ msgstr "\\copy: помилка розбору аргументу біля \"%s\" msgid "\\copy: parse error at end of line" msgstr "\\copy: помилка розбору в кінці рядка" -#: copy.c:326 -#, c-format -msgid "could not execute command \"%s\": %m" -msgstr "не вдалося виконати команду \"%s\": %m" - #: copy.c:342 #, c-format msgid "could not stat file \"%s\": %m" @@ -967,338 +1011,339 @@ msgid "Enter data to be copied followed by a newline.\n" msgstr "Введіть дані для копювання, розділяючи переносом рядка.\n" "Завершіть введення за допомогою \"\\.\" або за допомогою сигналу EOF." -#: copy.c:683 +#: copy.c:684 msgid "aborted because of read failure" msgstr "перервано через помилку читання" -#: copy.c:717 +#: copy.c:718 msgid "trying to exit copy mode" msgstr "спроба вийти з режиму копіювання" -#: crosstabview.c:123 +#: crosstabview.c:124 #, c-format msgid "\\crosstabview: statement did not return a result set" msgstr "\\crosstabview: команда не повернула набір з результатами" -#: crosstabview.c:129 +#: crosstabview.c:130 #, c-format msgid "\\crosstabview: query must return at least three columns" msgstr "\\crosstabview: запит має повернути принаймні три стовпці" -#: crosstabview.c:156 +#: crosstabview.c:157 #, c-format msgid "\\crosstabview: vertical and horizontal headers must be different columns" msgstr "\\crosstabview: вертикальні і горизонтальні заголовки повинні бути різними стовпцями" -#: crosstabview.c:172 +#: crosstabview.c:173 #, c-format msgid "\\crosstabview: data column must be specified when query returns more than three columns" msgstr "\\crosstabview: необхідно вказати стовпець даних, коли запит повертає більше трьох стовпців" -#: crosstabview.c:228 +#: crosstabview.c:229 #, c-format msgid "\\crosstabview: maximum number of columns (%d) exceeded" msgstr "\\crosstabview: Максимальна кількість стовпців (%d) перевищена" -#: crosstabview.c:397 +#: crosstabview.c:398 #, c-format msgid "\\crosstabview: query result contains multiple data values for row \"%s\", column \"%s\"" msgstr "\\crosstabview: результат запиту містить кілька значень даних для рядка «%s», стовпця «%s»" -#: crosstabview.c:645 +#: crosstabview.c:646 #, c-format msgid "\\crosstabview: column number %d is out of range 1..%d" msgstr "\\crosstabview: номер стовпця %d поза межами 1..%d" -#: crosstabview.c:670 +#: crosstabview.c:671 #, c-format msgid "\\crosstabview: ambiguous column name: \"%s\"" msgstr "\\crosstabview: неоднозначна назва стовпця: \"%s\"" -#: crosstabview.c:678 +#: crosstabview.c:679 #, c-format msgid "\\crosstabview: column name not found: \"%s\"" msgstr "\\crosstabview: ім'я стовпця не знайдено: \"%s\"" -#: describe.c:87 describe.c:338 describe.c:630 describe.c:807 describe.c:1038 -#: describe.c:1189 describe.c:1264 describe.c:3947 describe.c:4157 -#: describe.c:4407 describe.c:4489 describe.c:4724 describe.c:4932 -#: describe.c:5174 describe.c:5418 describe.c:5488 describe.c:5499 -#: describe.c:5556 describe.c:5960 describe.c:6038 +#: describe.c:87 describe.c:335 describe.c:626 describe.c:802 describe.c:1035 +#: describe.c:1190 describe.c:1264 describe.c:3945 describe.c:4154 +#: describe.c:4402 describe.c:4483 describe.c:4715 describe.c:4921 +#: describe.c:5165 describe.c:5406 describe.c:5475 describe.c:5486 +#: describe.c:5542 describe.c:5941 describe.c:6018 msgid "Schema" msgstr "Схема" -#: describe.c:88 describe.c:167 describe.c:229 describe.c:339 describe.c:631 -#: describe.c:808 describe.c:930 describe.c:1039 describe.c:1265 -#: describe.c:3948 describe.c:4158 describe.c:4323 describe.c:4408 -#: describe.c:4490 describe.c:4653 describe.c:4725 describe.c:4933 -#: describe.c:5046 describe.c:5175 describe.c:5419 describe.c:5489 -#: describe.c:5500 describe.c:5557 describe.c:5756 describe.c:5827 -#: describe.c:6036 describe.c:6265 describe.c:6573 +#: describe.c:88 describe.c:166 describe.c:227 describe.c:336 describe.c:627 +#: describe.c:803 describe.c:924 describe.c:1036 describe.c:1265 +#: describe.c:3946 describe.c:4155 describe.c:4319 describe.c:4403 +#: describe.c:4484 describe.c:4645 describe.c:4716 describe.c:4922 +#: describe.c:5038 describe.c:5166 describe.c:5407 describe.c:5476 +#: describe.c:5487 describe.c:5543 describe.c:5740 describe.c:5810 +#: describe.c:6016 describe.c:6243 describe.c:6551 msgid "Name" msgstr "Назва" -#: describe.c:89 describe.c:351 describe.c:369 +#: describe.c:89 describe.c:348 describe.c:366 msgid "Result data type" msgstr "Тип даних результату" -#: describe.c:90 describe.c:352 describe.c:370 +#: describe.c:90 describe.c:349 describe.c:367 msgid "Argument data types" msgstr "Типи даних аргументів" -#: describe.c:98 describe.c:105 describe.c:178 describe.c:243 describe.c:418 -#: describe.c:662 describe.c:823 describe.c:974 describe.c:1267 describe.c:2047 -#: describe.c:3676 describe.c:4002 describe.c:4204 describe.c:4347 -#: describe.c:4421 describe.c:4499 describe.c:4666 describe.c:4844 -#: describe.c:4982 describe.c:5055 describe.c:5176 describe.c:5327 -#: describe.c:5369 describe.c:5435 describe.c:5492 describe.c:5501 -#: describe.c:5558 describe.c:5774 describe.c:5849 describe.c:5974 -#: describe.c:6039 describe.c:7093 +#: describe.c:98 describe.c:105 describe.c:177 describe.c:241 describe.c:415 +#: describe.c:658 describe.c:818 describe.c:972 describe.c:1267 describe.c:2046 +#: describe.c:3676 describe.c:4000 describe.c:4201 describe.c:4343 +#: describe.c:4416 describe.c:4493 describe.c:4658 describe.c:4834 +#: describe.c:4975 describe.c:5047 describe.c:5167 describe.c:5317 +#: describe.c:5358 describe.c:5423 describe.c:5479 describe.c:5488 +#: describe.c:5544 describe.c:5758 describe.c:5832 describe.c:5955 +#: describe.c:6019 describe.c:7078 msgid "Description" msgstr "Опис" -#: describe.c:128 +#: describe.c:127 msgid "List of aggregate functions" msgstr "Перелік агрегатних функцій" -#: describe.c:153 +#: describe.c:152 #, c-format msgid "The server (version %s) does not support access methods." msgstr "Сервер (версія %s) не підтримує методи доступу." -#: describe.c:168 +#: describe.c:167 msgid "Index" msgstr "Індекс" -#: describe.c:169 describe.c:3966 describe.c:4183 describe.c:5961 +#: describe.c:168 describe.c:3964 describe.c:4180 describe.c:5942 msgid "Table" msgstr "Таблиця" -#: describe.c:177 describe.c:5758 +#: describe.c:176 describe.c:5742 msgid "Handler" msgstr "Обробник" -#: describe.c:201 +#: describe.c:199 msgid "List of access methods" msgstr "Список методів доступу" -#: describe.c:230 describe.c:404 describe.c:655 describe.c:931 describe.c:1188 -#: describe.c:3959 describe.c:4159 describe.c:4324 describe.c:4655 -#: describe.c:5047 describe.c:5757 describe.c:5828 describe.c:6266 -#: describe.c:6454 describe.c:6574 describe.c:6733 describe.c:6819 -#: describe.c:7081 +#: describe.c:228 describe.c:401 describe.c:651 describe.c:925 describe.c:1189 +#: describe.c:3957 describe.c:4156 describe.c:4320 describe.c:4647 +#: describe.c:5039 describe.c:5741 describe.c:5811 describe.c:6244 +#: describe.c:6431 describe.c:6552 describe.c:6722 describe.c:6807 +#: describe.c:7066 msgid "Owner" msgstr "Власник" -#: describe.c:231 +#: describe.c:229 msgid "Location" msgstr "Розташування" -#: describe.c:241 describe.c:3517 describe.c:3858 +#: describe.c:239 describe.c:3517 describe.c:3857 msgid "Options" msgstr "Параметри" -#: describe.c:242 describe.c:653 describe.c:972 describe.c:4001 +#: describe.c:240 describe.c:649 describe.c:970 describe.c:3999 msgid "Size" msgstr "Розмір" -#: describe.c:266 +#: describe.c:263 msgid "List of tablespaces" msgstr "Список табличних просторів" -#: describe.c:311 +#: describe.c:308 #, c-format msgid "\\df only takes [anptwS+] as options" msgstr "\\df приймає в якості параметрів тільки [anptwS+]" -#: describe.c:319 +#: describe.c:316 #, c-format msgid "\\df does not take a \"%c\" option with server version %s" msgstr "\\df не приймає параметр \"%c\" із сервером версії %s" #. translator: "agg" is short for "aggregate" -#: describe.c:354 describe.c:372 +#: describe.c:351 describe.c:369 msgid "agg" msgstr "агр." -#: describe.c:355 describe.c:373 +#: describe.c:352 describe.c:370 msgid "window" msgstr "вікно" -#: describe.c:356 +#: describe.c:353 msgid "proc" msgstr "проц" -#: describe.c:357 describe.c:375 +#: describe.c:354 describe.c:372 msgid "func" msgstr "функ" -#: describe.c:374 describe.c:1397 +#: describe.c:371 describe.c:1397 msgid "trigger" msgstr "тригер" -#: describe.c:386 +#: describe.c:383 msgid "immutable" msgstr "постійна" -#: describe.c:387 +#: describe.c:384 msgid "stable" msgstr "стабільна" -#: describe.c:388 +#: describe.c:385 msgid "volatile" msgstr "мінлива" -#: describe.c:389 +#: describe.c:386 msgid "Volatility" msgstr "Мінливість" -#: describe.c:397 +#: describe.c:394 msgid "restricted" msgstr "обмежений" -#: describe.c:398 +#: describe.c:395 msgid "safe" msgstr "безпечний" -#: describe.c:399 +#: describe.c:396 msgid "unsafe" msgstr "небезпечний" -#: describe.c:400 +#: describe.c:397 msgid "Parallel" msgstr "Паралельність" -#: describe.c:405 +#: describe.c:402 msgid "definer" msgstr "визначник" -#: describe.c:406 +#: describe.c:403 msgid "invoker" msgstr "викликач" -#: describe.c:407 +#: describe.c:404 msgid "Security" msgstr "Безпека" -#: describe.c:412 +#: describe.c:409 msgid "Language" msgstr "Мова" -#: describe.c:415 describe.c:652 +#: describe.c:412 describe.c:648 msgid "Internal name" msgstr "Внутрішнє назва" -#: describe.c:589 +#: describe.c:585 msgid "List of functions" msgstr "Список функцій" -#: describe.c:654 +#: describe.c:650 msgid "Elements" msgstr "Елементи" -#: describe.c:706 +#: describe.c:701 msgid "List of data types" msgstr "Список типів даних" -#: describe.c:809 +#: describe.c:804 msgid "Left arg type" msgstr "Тип лівого аргумента" -#: describe.c:810 +#: describe.c:805 msgid "Right arg type" msgstr "Тип правого аргумента" -#: describe.c:811 +#: describe.c:806 msgid "Result type" msgstr "Результуючий тип" -#: describe.c:816 describe.c:4661 describe.c:4827 describe.c:5326 -#: describe.c:7010 describe.c:7014 +#: describe.c:811 describe.c:4653 describe.c:4817 describe.c:5316 +#: describe.c:6996 describe.c:7000 msgid "Function" msgstr "Функція" -#: describe.c:897 +#: describe.c:891 msgid "List of operators" msgstr "Список операторів" -#: describe.c:932 +#: describe.c:926 msgid "Encoding" msgstr "Кодування" -#: describe.c:936 describe.c:940 +#: describe.c:930 describe.c:934 msgid "Locale Provider" msgstr "Постачальник локалі" -#: describe.c:944 describe.c:4947 +#: describe.c:938 describe.c:4936 msgid "Collate" msgstr "Порядок сортування" -#: describe.c:945 describe.c:4948 +#: describe.c:939 describe.c:4937 msgid "Ctype" msgstr "Ctype" -#: describe.c:949 describe.c:953 describe.c:4953 describe.c:4957 -msgid "ICU Locale" -msgstr "Локалізація ICU" +#: describe.c:943 describe.c:947 describe.c:951 describe.c:4942 describe.c:4946 +#: describe.c:4950 +msgid "Locale" +msgstr "Локаль" -#: describe.c:957 describe.c:961 describe.c:4962 describe.c:4966 +#: describe.c:955 describe.c:959 describe.c:4955 describe.c:4959 msgid "ICU Rules" msgstr "Правила ICU" -#: describe.c:973 +#: describe.c:971 msgid "Tablespace" msgstr "Табличний простір" -#: describe.c:999 +#: describe.c:996 msgid "List of databases" msgstr "Список баз даних" -#: describe.c:1040 describe.c:1191 describe.c:3949 +#: describe.c:1037 describe.c:1192 describe.c:3947 msgid "table" msgstr "таблиця" -#: describe.c:1041 describe.c:3950 +#: describe.c:1038 describe.c:3948 msgid "view" msgstr "подання" -#: describe.c:1042 describe.c:3951 +#: describe.c:1039 describe.c:3949 msgid "materialized view" msgstr "матеріалізоване подання" -#: describe.c:1043 describe.c:1193 describe.c:3953 +#: describe.c:1040 describe.c:1194 describe.c:3951 msgid "sequence" msgstr "послідовність" -#: describe.c:1044 describe.c:3955 +#: describe.c:1041 describe.c:3953 msgid "foreign table" msgstr "зовнішня таблиця" -#: describe.c:1045 describe.c:3956 describe.c:4168 +#: describe.c:1042 describe.c:3954 describe.c:4165 msgid "partitioned table" msgstr "секційна таблиця" -#: describe.c:1056 +#: describe.c:1058 msgid "Column privileges" msgstr "Права для стовпців" -#: describe.c:1087 describe.c:1121 +#: describe.c:1089 describe.c:1123 msgid "Policies" msgstr "Політики" -#: describe.c:1150 describe.c:4577 describe.c:6678 +#: describe.c:1151 describe.c:4570 describe.c:6667 msgid "Access privileges" msgstr "Права доступу" -#: describe.c:1195 +#: describe.c:1196 msgid "function" msgstr "функція" -#: describe.c:1197 +#: describe.c:1198 msgid "type" msgstr "тип" -#: describe.c:1199 +#: describe.c:1200 msgid "schema" msgstr "схема" @@ -1330,293 +1375,293 @@ msgstr "сімейство операторів" msgid "rule" msgstr "правило" -#: describe.c:1421 +#: describe.c:1420 msgid "Object descriptions" msgstr "Опис об'єкту" -#: describe.c:1486 describe.c:4074 +#: describe.c:1485 describe.c:4072 #, c-format msgid "Did not find any relation named \"%s\"." msgstr "Не знайдено жодного відношення під назвою \"%s\"." -#: describe.c:1489 describe.c:4077 +#: describe.c:1488 describe.c:4075 #, c-format msgid "Did not find any relations." msgstr "Не знайдено жодного відношення." -#: describe.c:1685 +#: describe.c:1684 #, c-format msgid "Did not find any relation with OID %s." msgstr "Не знайдено жодного відношення з OID %s." -#: describe.c:1733 describe.c:1757 +#: describe.c:1732 describe.c:1756 msgid "Start" msgstr "Початок" -#: describe.c:1734 describe.c:1758 +#: describe.c:1733 describe.c:1757 msgid "Minimum" msgstr "Мінімум" -#: describe.c:1735 describe.c:1759 +#: describe.c:1734 describe.c:1758 msgid "Maximum" msgstr "Максимум" -#: describe.c:1736 describe.c:1760 +#: describe.c:1735 describe.c:1759 msgid "Increment" msgstr "Приріст" -#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4493 -#: describe.c:4838 describe.c:4971 describe.c:4976 describe.c:6721 +#: describe.c:1736 describe.c:1760 describe.c:1889 describe.c:4487 +#: describe.c:4828 describe.c:4964 describe.c:4969 describe.c:6710 msgid "yes" msgstr "так" -#: describe.c:1738 describe.c:1762 describe.c:1891 describe.c:4493 -#: describe.c:4835 describe.c:4971 describe.c:6722 +#: describe.c:1737 describe.c:1761 describe.c:1890 describe.c:4487 +#: describe.c:4825 describe.c:4964 describe.c:6711 msgid "no" msgstr "ні" -#: describe.c:1739 describe.c:1763 +#: describe.c:1738 describe.c:1762 msgid "Cycles?" msgstr "Цикли?" -#: describe.c:1740 describe.c:1764 +#: describe.c:1739 describe.c:1763 msgid "Cache" msgstr "Кеш" -#: describe.c:1805 +#: describe.c:1804 #, c-format msgid "Owned by: %s" msgstr "Власник: %s" -#: describe.c:1809 +#: describe.c:1808 #, c-format msgid "Sequence for identity column: %s" msgstr "Послідовність для стовпця identity: %s" -#: describe.c:1817 +#: describe.c:1816 #, c-format msgid "Unlogged sequence \"%s.%s\"" msgstr "Послідовність без журналювання \"%s.%s\"" -#: describe.c:1820 +#: describe.c:1819 #, c-format msgid "Sequence \"%s.%s\"" msgstr "Послідовність \"%s.%s\"" -#: describe.c:1963 +#: describe.c:1962 #, c-format msgid "Unlogged table \"%s.%s\"" msgstr "Таблиця без журналювання \"%s.%s\"" -#: describe.c:1966 +#: describe.c:1965 #, c-format msgid "Table \"%s.%s\"" msgstr "Таблиця \"%s.%s\"" -#: describe.c:1970 +#: describe.c:1969 #, c-format msgid "View \"%s.%s\"" msgstr "Подання \"%s.%s\"" -#: describe.c:1975 +#: describe.c:1974 #, c-format msgid "Unlogged materialized view \"%s.%s\"" msgstr "Матеріалізоване подання без журналювання \"%s.%s\"" -#: describe.c:1978 +#: describe.c:1977 #, c-format msgid "Materialized view \"%s.%s\"" msgstr "Матеріалізоване подання \"%s.%s\"" -#: describe.c:1983 +#: describe.c:1982 #, c-format msgid "Unlogged index \"%s.%s\"" msgstr "Індекс без журналювання \"%s.%s\"" -#: describe.c:1986 +#: describe.c:1985 #, c-format msgid "Index \"%s.%s\"" msgstr "Індекс \"%s.%s\"" -#: describe.c:1991 +#: describe.c:1990 #, c-format msgid "Unlogged partitioned index \"%s.%s\"" msgstr "Секційний індекс без журналювання \"%s.%s\"" -#: describe.c:1994 +#: describe.c:1993 #, c-format msgid "Partitioned index \"%s.%s\"" msgstr "Секційний індекс \"%s.%s\"" -#: describe.c:1998 +#: describe.c:1997 #, c-format msgid "TOAST table \"%s.%s\"" msgstr "Таблиця TOAST \"%s.%s\"" -#: describe.c:2002 +#: describe.c:2001 #, c-format msgid "Composite type \"%s.%s\"" msgstr "Композитний тип \"%s.%s\"" -#: describe.c:2006 +#: describe.c:2005 #, c-format msgid "Foreign table \"%s.%s\"" msgstr "Зовнішня таблиця \"%s.%s\"" -#: describe.c:2011 +#: describe.c:2010 #, c-format msgid "Unlogged partitioned table \"%s.%s\"" msgstr "Секційна таблиця без журналювання \"%s.%s\"" -#: describe.c:2014 +#: describe.c:2013 #, c-format msgid "Partitioned table \"%s.%s\"" msgstr "Секційна таблиця \"%s.%s\"" -#: describe.c:2030 describe.c:4410 +#: describe.c:2029 describe.c:4405 msgid "Collation" msgstr "Сортування" -#: describe.c:2031 describe.c:4411 +#: describe.c:2030 describe.c:4406 msgid "Nullable" msgstr "Обнуляється" -#: describe.c:2032 describe.c:4412 +#: describe.c:2031 describe.c:4407 msgid "Default" msgstr "За замовчуванням" -#: describe.c:2035 +#: describe.c:2034 msgid "Key?" msgstr "Ключ?" -#: describe.c:2037 describe.c:4732 describe.c:4743 +#: describe.c:2036 describe.c:4723 describe.c:4734 msgid "Definition" msgstr "Визначення" -#: describe.c:2039 describe.c:5773 describe.c:5848 describe.c:5914 -#: describe.c:5973 +#: describe.c:2038 describe.c:5757 describe.c:5831 describe.c:5896 +#: describe.c:5954 msgid "FDW options" msgstr "Налаштування FDW" -#: describe.c:2041 +#: describe.c:2040 msgid "Storage" msgstr "Сховище" -#: describe.c:2043 +#: describe.c:2042 msgid "Compression" msgstr "Стискання" -#: describe.c:2045 +#: describe.c:2044 msgid "Stats target" msgstr "Статистична ціль" -#: describe.c:2181 +#: describe.c:2180 #, c-format msgid "Partition of: %s %s%s" msgstr "Розділ: %s %s%s" -#: describe.c:2194 +#: describe.c:2193 msgid "No partition constraint" msgstr "Відсутнє розділове обмеження" -#: describe.c:2196 +#: describe.c:2195 #, c-format msgid "Partition constraint: %s" msgstr "Обмеження секції: %s" -#: describe.c:2220 +#: describe.c:2219 #, c-format msgid "Partition key: %s" msgstr "Ключ розділу: %s" -#: describe.c:2246 +#: describe.c:2245 #, c-format msgid "Owning table: \"%s.%s\"" msgstr "Таблиця, що володіє: \"%s.%s\"" -#: describe.c:2315 +#: describe.c:2314 msgid "primary key, " msgstr "первинний ключ," -#: describe.c:2318 +#: describe.c:2317 msgid "unique" msgstr "унікальний" -#: describe.c:2320 +#: describe.c:2319 msgid " nulls not distinct" msgstr " nulls не відрізняються" -#: describe.c:2321 +#: describe.c:2320 msgid ", " msgstr ", " -#: describe.c:2328 +#: describe.c:2327 #, c-format msgid "for table \"%s.%s\"" msgstr "для таблиці \"%s.%s\"" -#: describe.c:2332 +#: describe.c:2331 #, c-format msgid ", predicate (%s)" msgstr ", предикат (%s)" -#: describe.c:2335 +#: describe.c:2334 msgid ", clustered" msgstr ", кластеризовано" -#: describe.c:2338 +#: describe.c:2337 msgid ", invalid" msgstr ", недійсний" -#: describe.c:2341 +#: describe.c:2340 msgid ", deferrable" msgstr ", відтермінований" -#: describe.c:2344 +#: describe.c:2343 msgid ", initially deferred" msgstr ", від початку відтермінований" -#: describe.c:2347 +#: describe.c:2346 msgid ", replica identity" msgstr ", ідентичність репліки" -#: describe.c:2401 +#: describe.c:2400 msgid "Indexes:" msgstr "Індекси:" -#: describe.c:2484 +#: describe.c:2483 msgid "Check constraints:" msgstr "Обмеження перевірки:" -#: describe.c:2552 +#: describe.c:2551 msgid "Foreign-key constraints:" msgstr "Обмеження зовнішнього ключа:" -#: describe.c:2615 +#: describe.c:2614 msgid "Referenced by:" msgstr "Посилання ззовні:" -#: describe.c:2665 +#: describe.c:2664 msgid "Policies:" msgstr "Політики:" -#: describe.c:2668 +#: describe.c:2667 msgid "Policies (forced row security enabled):" msgstr "Політики (посилений захист рядків активовано):" -#: describe.c:2671 +#: describe.c:2670 msgid "Policies (row security enabled): (none)" msgstr "Політики (захист рядків ввімкнуто): (ні)" -#: describe.c:2674 +#: describe.c:2673 msgid "Policies (forced row security enabled): (none)" msgstr "Політики (посилений захист рядків ввімкнуто): (ні)" -#: describe.c:2677 +#: describe.c:2676 msgid "Policies (row security disabled):" msgstr "Політики (захист рядків вимкнуто):" -#: describe.c:2737 describe.c:2841 +#: describe.c:2736 describe.c:2841 msgid "Statistics objects:" msgstr "Об'єкти статистики:" @@ -1636,7 +1681,7 @@ msgstr "Правила, що завжди працюють:" msgid "Rules firing on replica only:" msgstr "Правила, що працюють тільки на репліці:" -#: describe.c:3031 describe.c:5109 +#: describe.c:3031 describe.c:5100 msgid "Publications:" msgstr "Публікації:" @@ -1735,7 +1780,7 @@ msgstr ", табличний простір \"%s\"" msgid "List of roles" msgstr "Список ролей" -#: describe.c:3672 describe.c:3841 +#: describe.c:3672 describe.c:3840 msgid "Role name" msgstr "Ім'я ролі" @@ -1815,673 +1860,680 @@ msgstr "Не знайдено жодного параметру для ролі msgid "Did not find any settings." msgstr "Не знайдено жодного параметру." -#: describe.c:3812 +#: describe.c:3811 msgid "List of settings" msgstr "Список параметрів" -#: describe.c:3842 +#: describe.c:3841 msgid "Member of" msgstr "Член" -#: describe.c:3859 +#: describe.c:3858 msgid "Grantor" msgstr "Надавач" -#: describe.c:3886 +#: describe.c:3884 msgid "List of role grants" msgstr "Перелік наданих ролей" -#: describe.c:3952 +#: describe.c:3950 msgid "index" msgstr "індекс" -#: describe.c:3954 +#: describe.c:3952 msgid "TOAST table" msgstr "Таблиця TOAST" -#: describe.c:3957 describe.c:4169 +#: describe.c:3955 describe.c:4166 msgid "partitioned index" msgstr "секційний індекс" -#: describe.c:3977 +#: describe.c:3975 msgid "permanent" msgstr "постійна" -#: describe.c:3978 +#: describe.c:3976 msgid "temporary" msgstr "тимчасова" -#: describe.c:3979 +#: describe.c:3977 msgid "unlogged" msgstr "нежурнальована" -#: describe.c:3980 +#: describe.c:3978 msgid "Persistence" msgstr "Стійкість" -#: describe.c:3996 +#: describe.c:3994 msgid "Access method" msgstr "Метод доступу" -#: describe.c:4082 +#: describe.c:4079 msgid "List of relations" msgstr "Список відношень" -#: describe.c:4130 +#: describe.c:4127 #, c-format msgid "The server (version %s) does not support declarative table partitioning." msgstr "Сервер (версія %s) не підтримує декларативне секціонування таблиць." -#: describe.c:4141 +#: describe.c:4138 msgid "List of partitioned indexes" msgstr "Список секційних індексів" -#: describe.c:4143 +#: describe.c:4140 msgid "List of partitioned tables" msgstr "Список секційних таблиць" -#: describe.c:4147 +#: describe.c:4144 msgid "List of partitioned relations" msgstr "Список секційних відношень" -#: describe.c:4178 +#: describe.c:4175 msgid "Parent name" msgstr "Батьківська назва" -#: describe.c:4191 +#: describe.c:4188 msgid "Leaf partition size" msgstr "Розмір дочірньої секції" -#: describe.c:4194 describe.c:4200 +#: describe.c:4191 describe.c:4197 msgid "Total size" msgstr "Загальний розмір" -#: describe.c:4325 +#: describe.c:4321 msgid "Trusted" msgstr "Надійний" -#: describe.c:4334 +#: describe.c:4330 msgid "Internal language" msgstr "Внутрішня мова" -#: describe.c:4335 +#: describe.c:4331 msgid "Call handler" msgstr "Обробник виклику" -#: describe.c:4336 describe.c:5759 +#: describe.c:4332 describe.c:5743 msgid "Validator" msgstr "Функція перевірки" -#: describe.c:4337 +#: describe.c:4333 msgid "Inline handler" msgstr "Оброблювач впровадженого коду" -#: describe.c:4372 +#: describe.c:4367 msgid "List of languages" msgstr "Список мов" -#: describe.c:4413 +#: describe.c:4408 msgid "Check" msgstr "Перевірка" -#: describe.c:4457 +#: describe.c:4451 msgid "List of domains" msgstr "Список доменів" -#: describe.c:4491 +#: describe.c:4485 msgid "Source" msgstr "Джерело" -#: describe.c:4492 +#: describe.c:4486 msgid "Destination" msgstr "Призначення" -#: describe.c:4494 describe.c:6723 +#: describe.c:4488 describe.c:6712 msgid "Default?" msgstr "За замовчуванням?" -#: describe.c:4536 +#: describe.c:4529 msgid "List of conversions" msgstr "Список перетворень" -#: describe.c:4564 +#: describe.c:4557 msgid "Parameter" msgstr "Параметр" -#: describe.c:4565 +#: describe.c:4558 msgid "Value" msgstr "Значення" -#: describe.c:4572 +#: describe.c:4565 msgid "Context" msgstr "Контекст" -#: describe.c:4605 +#: describe.c:4597 msgid "List of configuration parameters" msgstr "Список параметрів конфігурації" -#: describe.c:4607 +#: describe.c:4599 msgid "List of non-default configuration parameters" msgstr "Список параметрів конфігурації не за замовчуванням" -#: describe.c:4634 +#: describe.c:4626 #, c-format msgid "The server (version %s) does not support event triggers." msgstr "Сервер (версія %s) не підтримує тригери подій." -#: describe.c:4654 +#: describe.c:4646 msgid "Event" msgstr "Подія" -#: describe.c:4656 +#: describe.c:4648 msgid "enabled" msgstr "увімкнено" -#: describe.c:4657 +#: describe.c:4649 msgid "replica" msgstr "репліка" -#: describe.c:4658 +#: describe.c:4650 msgid "always" msgstr "завжди" -#: describe.c:4659 +#: describe.c:4651 msgid "disabled" msgstr "вимкнено" -#: describe.c:4660 describe.c:6575 +#: describe.c:4652 describe.c:6553 msgid "Enabled" msgstr "Увімкнено" -#: describe.c:4662 +#: describe.c:4654 msgid "Tags" msgstr "Теги" -#: describe.c:4686 +#: describe.c:4677 msgid "List of event triggers" msgstr "Список тригерів подій" -#: describe.c:4713 +#: describe.c:4704 #, c-format msgid "The server (version %s) does not support extended statistics." msgstr "Сервер (версія %s) не підтримує розширену статистику." -#: describe.c:4750 +#: describe.c:4741 msgid "Ndistinct" msgstr "Ndistinct" -#: describe.c:4751 +#: describe.c:4742 msgid "Dependencies" msgstr "Залежності" -#: describe.c:4761 +#: describe.c:4752 msgid "MCV" msgstr "MCV" -#: describe.c:4785 +#: describe.c:4775 msgid "List of extended statistics" msgstr "Список розширеної статистики" -#: describe.c:4812 +#: describe.c:4802 msgid "Source type" msgstr "Початковий тип" -#: describe.c:4813 +#: describe.c:4803 msgid "Target type" msgstr "Тип цілі" -#: describe.c:4837 +#: describe.c:4827 msgid "in assignment" msgstr "у призначенні" -#: describe.c:4839 +#: describe.c:4829 msgid "Implicit?" msgstr "Приховане?" -#: describe.c:4898 +#: describe.c:4887 msgid "List of casts" msgstr "Список приведення типів" -#: describe.c:4938 describe.c:4942 +#: describe.c:4927 describe.c:4931 msgid "Provider" msgstr "Постачальник" -#: describe.c:4972 describe.c:4977 +#: describe.c:4965 describe.c:4970 msgid "Deterministic?" msgstr "Детермінований?" -#: describe.c:5017 +#: describe.c:5009 msgid "List of collations" msgstr "Список правил сортування" -#: describe.c:5079 +#: describe.c:5070 msgid "List of schemas" msgstr "Список схем" -#: describe.c:5196 +#: describe.c:5186 msgid "List of text search parsers" msgstr "Список парсерів текстового пошуку" -#: describe.c:5246 +#: describe.c:5236 #, c-format msgid "Did not find any text search parser named \"%s\"." msgstr "Не знайдено жодного парсера текстового пошуку \"%s\"." -#: describe.c:5249 +#: describe.c:5239 #, c-format msgid "Did not find any text search parsers." msgstr "Не знайдено жодного парсера текстового пошуку." -#: describe.c:5324 +#: describe.c:5314 msgid "Start parse" msgstr "Почати розбір" -#: describe.c:5325 +#: describe.c:5315 msgid "Method" msgstr "Метод" -#: describe.c:5329 +#: describe.c:5319 msgid "Get next token" msgstr "Отримати наступний токен" -#: describe.c:5331 +#: describe.c:5321 msgid "End parse" msgstr "Закінчити розбір" -#: describe.c:5333 +#: describe.c:5323 msgid "Get headline" msgstr "Отримати заголовок" -#: describe.c:5335 +#: describe.c:5325 msgid "Get token types" msgstr "Отримати типи токенів" -#: describe.c:5346 +#: describe.c:5335 #, c-format msgid "Text search parser \"%s.%s\"" msgstr "Парсер текстового пошуку \"%s.%s\"" -#: describe.c:5349 +#: describe.c:5338 #, c-format msgid "Text search parser \"%s\"" msgstr "Парсер текстового пошуку \"%s\"" -#: describe.c:5368 +#: describe.c:5357 msgid "Token name" msgstr "Ім'я токену" -#: describe.c:5382 +#: describe.c:5370 #, c-format msgid "Token types for parser \"%s.%s\"" msgstr "Типи токенів для парсера \"%s.%s\"" -#: describe.c:5385 +#: describe.c:5373 #, c-format msgid "Token types for parser \"%s\"" msgstr "Типи токенів для парсера \"%s\"" -#: describe.c:5429 +#: describe.c:5417 msgid "Template" msgstr "Шаблон" -#: describe.c:5430 +#: describe.c:5418 msgid "Init options" msgstr "Параметри ініціалізації" -#: describe.c:5457 +#: describe.c:5444 msgid "List of text search dictionaries" msgstr "Список словників текстового пошуку" -#: describe.c:5490 +#: describe.c:5477 msgid "Init" msgstr "Ініціалізація" -#: describe.c:5491 +#: describe.c:5478 msgid "Lexize" msgstr "Виділення лексем" -#: describe.c:5523 +#: describe.c:5509 msgid "List of text search templates" msgstr "Список шаблонів текстового пошуку" -#: describe.c:5578 +#: describe.c:5563 msgid "List of text search configurations" msgstr "Список конфігурацій текстового пошуку" -#: describe.c:5629 +#: describe.c:5614 #, c-format msgid "Did not find any text search configuration named \"%s\"." msgstr "Не знайдено жодної конфігурації текстового пошуку під назвою \"%s\"." -#: describe.c:5632 +#: describe.c:5617 #, c-format msgid "Did not find any text search configurations." msgstr "Не знайдено жодної конфігурації текствого пошуку." -#: describe.c:5698 +#: describe.c:5683 msgid "Token" msgstr "Токен" -#: describe.c:5699 +#: describe.c:5684 msgid "Dictionaries" msgstr "Словники" -#: describe.c:5710 +#: describe.c:5695 #, c-format msgid "Text search configuration \"%s.%s\"" msgstr "Конфігурація пошуку тексту \"%s.%s\"" -#: describe.c:5713 +#: describe.c:5698 #, c-format msgid "Text search configuration \"%s\"" msgstr "Конфігурація пошуку тексту \"%s\"" -#: describe.c:5717 +#: describe.c:5702 #, c-format msgid "\n" "Parser: \"%s.%s\"" msgstr "\n" "Парсер: \"%s.%s\"" -#: describe.c:5720 +#: describe.c:5705 #, c-format msgid "\n" "Parser: \"%s\"" msgstr "\n" "Парсер: \"%s\"" -#: describe.c:5801 +#: describe.c:5784 msgid "List of foreign-data wrappers" msgstr "Список джерел сторонніх даних" -#: describe.c:5829 +#: describe.c:5812 msgid "Foreign-data wrapper" msgstr "Джерело сторонніх даних" -#: describe.c:5847 describe.c:6037 +#: describe.c:5830 describe.c:6017 msgid "Version" msgstr "Версія" -#: describe.c:5878 +#: describe.c:5860 msgid "List of foreign servers" msgstr "Список сторонніх серверів" -#: describe.c:5903 describe.c:5962 +#: describe.c:5885 describe.c:5943 msgid "Server" msgstr "Сервер" -#: describe.c:5904 +#: describe.c:5886 msgid "User name" msgstr "Ім'я користувача" -#: describe.c:5934 +#: describe.c:5915 msgid "List of user mappings" msgstr "Список зіставлень користувачів" -#: describe.c:6007 +#: describe.c:5987 msgid "List of foreign tables" msgstr "Список сторонніх таблиць" -#: describe.c:6059 +#: describe.c:6038 msgid "List of installed extensions" msgstr "Список встановлених розширень" -#: describe.c:6107 +#: describe.c:6086 #, c-format msgid "Did not find any extension named \"%s\"." msgstr "Не знайдено жодного розширення під назвою \"%s\"." -#: describe.c:6110 +#: describe.c:6089 #, c-format msgid "Did not find any extensions." msgstr "Не знайдено жодного розширення." -#: describe.c:6154 +#: describe.c:6133 msgid "Object description" msgstr "Опис об'єкту" -#: describe.c:6164 +#: describe.c:6142 #, c-format msgid "Objects in extension \"%s\"" msgstr "Об'єкти в розширенні \"%s\"" -#: describe.c:6205 +#: describe.c:6183 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: describe.c:6219 +#: describe.c:6197 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: describe.c:6250 describe.c:6377 +#: describe.c:6228 describe.c:6354 #, c-format msgid "The server (version %s) does not support publications." msgstr "Сервер (версія %s) не підтримує публікації." -#: describe.c:6267 describe.c:6455 +#: describe.c:6245 describe.c:6432 msgid "All tables" msgstr "Усі таблиці" -#: describe.c:6268 describe.c:6456 +#: describe.c:6246 describe.c:6433 msgid "Inserts" msgstr "Вставки" -#: describe.c:6269 describe.c:6457 +#: describe.c:6247 describe.c:6434 msgid "Updates" msgstr "Оновлення" -#: describe.c:6270 describe.c:6458 +#: describe.c:6248 describe.c:6435 msgid "Deletes" msgstr "Видалення" -#: describe.c:6274 describe.c:6460 +#: describe.c:6252 describe.c:6437 msgid "Truncates" msgstr "Очищення" -#: describe.c:6278 describe.c:6462 +#: describe.c:6256 describe.c:6439 msgid "Via root" msgstr "Через root" -#: describe.c:6300 +#: describe.c:6277 msgid "List of publications" msgstr "Список публікацій" -#: describe.c:6424 +#: describe.c:6401 #, c-format msgid "Did not find any publication named \"%s\"." msgstr "Не знайдено жодної публікації під назвою \"%s\"." -#: describe.c:6427 +#: describe.c:6404 #, c-format msgid "Did not find any publications." msgstr "Не знайдено жодної публікації." -#: describe.c:6451 +#: describe.c:6428 #, c-format msgid "Publication %s" msgstr "Публікація %s" -#: describe.c:6504 +#: describe.c:6481 msgid "Tables:" msgstr "Таблиці:" -#: describe.c:6516 +#: describe.c:6493 msgid "Tables from schemas:" msgstr "Таблиці зі схеми:" -#: describe.c:6560 +#: describe.c:6538 #, c-format msgid "The server (version %s) does not support subscriptions." msgstr "Сервер (версія %s) не підтримує підписки." -#: describe.c:6576 +#: describe.c:6554 msgid "Publication" msgstr "Публікація" -#: describe.c:6585 +#: describe.c:6563 msgid "Binary" msgstr "Бінарний" -#: describe.c:6594 describe.c:6598 +#: describe.c:6572 describe.c:6576 msgid "Streaming" msgstr "Потокова передача" -#: describe.c:6606 +#: describe.c:6584 msgid "Two-phase commit" msgstr "Двофазовий коміт" -#: describe.c:6607 +#: describe.c:6585 msgid "Disable on error" msgstr "Вимкнути при помилці" -#: describe.c:6614 +#: describe.c:6592 msgid "Origin" msgstr "Джерело" -#: describe.c:6615 +#: describe.c:6593 msgid "Password required" msgstr "Потрібен пароль" -#: describe.c:6616 +#: describe.c:6594 msgid "Run as owner?" msgstr "Запустити як власник?" -#: describe.c:6621 +#: describe.c:6599 +msgid "Failover" +msgstr "Відновлення після збою" + +#: describe.c:6604 msgid "Synchronous commit" msgstr "Синхронні затвердження" -#: describe.c:6622 +#: describe.c:6605 msgid "Conninfo" msgstr "Conninfo" -#: describe.c:6628 +#: describe.c:6611 msgid "Skip LSN" msgstr "Пропустити LSN" -#: describe.c:6655 +#: describe.c:6637 msgid "List of subscriptions" msgstr "Список підписок" -#: describe.c:6717 describe.c:6813 describe.c:6906 describe.c:7001 +#: describe.c:6666 +msgid "(none)" +msgstr "(нічого)" + +#: describe.c:6706 describe.c:6801 describe.c:6893 describe.c:6987 msgid "AM" msgstr "АМ" -#: describe.c:6718 +#: describe.c:6707 msgid "Input type" msgstr "Тип вводу" -#: describe.c:6719 +#: describe.c:6708 msgid "Storage type" msgstr "Тип сховища" -#: describe.c:6720 +#: describe.c:6709 msgid "Operator class" msgstr "Клас операторів" -#: describe.c:6732 describe.c:6814 describe.c:6907 describe.c:7002 +#: describe.c:6721 describe.c:6802 describe.c:6894 describe.c:6988 msgid "Operator family" msgstr "Сімейство операторів" -#: describe.c:6768 +#: describe.c:6756 msgid "List of operator classes" msgstr "Список класів операторів" -#: describe.c:6815 +#: describe.c:6803 msgid "Applicable types" msgstr "Типи для застосування" -#: describe.c:6857 +#: describe.c:6844 msgid "List of operator families" msgstr "Список сімейств операторів" -#: describe.c:6908 +#: describe.c:6895 msgid "Operator" msgstr "Оператор" -#: describe.c:6909 +#: describe.c:6896 msgid "Strategy" msgstr "Стратегія" -#: describe.c:6910 +#: describe.c:6897 msgid "ordering" msgstr "упорядкування" -#: describe.c:6911 +#: describe.c:6898 msgid "search" msgstr "пошук" -#: describe.c:6912 +#: describe.c:6899 msgid "Purpose" msgstr "Ціль" -#: describe.c:6917 +#: describe.c:6904 msgid "Sort opfamily" msgstr "Сімейство операторів сортування" -#: describe.c:6956 +#: describe.c:6942 msgid "List of operators of operator families" msgstr "Список операторів сімейств операторів" -#: describe.c:7003 +#: describe.c:6989 msgid "Registered left type" msgstr "Зареєстрований лівий тип" -#: describe.c:7004 +#: describe.c:6990 msgid "Registered right type" msgstr "Зареєстрований правий тип" -#: describe.c:7005 +#: describe.c:6991 msgid "Number" msgstr "Число" -#: describe.c:7049 +#: describe.c:7034 msgid "List of support functions of operator families" msgstr "Список функцій підтримки сімейств операторів" -#: describe.c:7080 +#: describe.c:7065 msgid "ID" msgstr "ID" -#: describe.c:7101 +#: describe.c:7085 msgid "Large objects" msgstr "Великі об'єкти" -#: help.c:75 +#: help.c:63 msgid "psql is the PostgreSQL interactive terminal.\n\n" msgstr "psql - це інтерактивний термінал PostgreSQL.\n\n" -#: help.c:76 help.c:395 help.c:479 help.c:522 +#: help.c:64 help.c:372 help.c:456 help.c:499 msgid "Usage:\n" msgstr "Використання:\n" -#: help.c:77 +#: help.c:65 msgid " psql [OPTION]... [DBNAME [USERNAME]]\n\n" msgstr " psql [ОПЦІЯ]... [БД [КОРИСТУВАЧ]]\n\n" -#: help.c:79 +#: help.c:67 msgid "General options:\n" msgstr "Основні налаштування:\n" -#: help.c:84 +#: help.c:68 msgid " -c, --command=COMMAND run only single command (SQL or internal) and exit\n" msgstr " -c, --command=КОМАНДА виконати лише одну команду (SQL або внутрішню) і вийти\n" -#: help.c:85 -#, c-format -msgid " -d, --dbname=DBNAME database name to connect to (default: \"%s\")\n" -msgstr " -d, --dbname=DBNAME ім'я бази даних для підключення (за замовчання: \"%s\") \n" +#: help.c:69 +msgid " -d, --dbname=DBNAME database name to connect to\n" +msgstr " -d, --dbname=DBNAME назва бази даних для підключення\n" -#: help.c:87 +#: help.c:70 msgid " -f, --file=FILENAME execute commands from file, then exit\n" msgstr " -f, --file=FILENAME виконує команди з файлу, потім виходить\n" -#: help.c:88 +#: help.c:71 msgid " -l, --list list available databases, then exit\n" msgstr " -l, --list виводить список доступних баз даних, потім виходить\n" -#: help.c:89 +#: help.c:72 msgid " -v, --set=, --variable=NAME=VALUE\n" " set psql variable NAME to VALUE\n" " (e.g., -v ON_ERROR_STOP=1)\n" @@ -2489,93 +2541,93 @@ msgstr " -v, --set=, --variable=NAME=VALUE\n" " присвоїти змінній psql NAME значення VALUE\n" " (наприклад, -v ON_ERROR_STOP=1)\n" -#: help.c:92 +#: help.c:75 msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: help.c:93 +#: help.c:76 msgid " -X, --no-psqlrc do not read startup file (~/.psqlrc)\n" msgstr " -X, --no-psqlrc ігнорувати файл параметрів запуска (~/.psqlrc)\n" -#: help.c:94 +#: help.c:77 msgid " -1 (\"one\"), --single-transaction\n" " execute as a single transaction (if non-interactive)\n" msgstr " -1 (\"один\"), --single-transaction\n" " виконує як одну транзакцію (якщо не інтерактивна)\n" -#: help.c:96 +#: help.c:79 msgid " -?, --help[=options] show this help, then exit\n" msgstr " -?, --help [=options] показати цю довідку, потім вийти\n" -#: help.c:97 +#: help.c:80 msgid " --help=commands list backslash commands, then exit\n" msgstr " --help=commands перерахувати команди, потім вийти\n" -#: help.c:98 +#: help.c:81 msgid " --help=variables list special variables, then exit\n" msgstr " --help=variables перерахувати спеціальні змінні, потім вийти\n" -#: help.c:100 +#: help.c:83 msgid "\n" "Input and output options:\n" msgstr "\n" "Параметри вводу і виводу:\n" -#: help.c:101 +#: help.c:84 msgid " -a, --echo-all echo all input from script\n" msgstr " -a, --echo-all відобразити всі вхідні дані з скрипта\n" -#: help.c:102 +#: help.c:85 msgid " -b, --echo-errors echo failed commands\n" msgstr " -b, --echo-errors відобразити команди з помилками\n" -#: help.c:103 +#: help.c:86 msgid " -e, --echo-queries echo commands sent to server\n" msgstr " -e, --echo-queries відобразити команди, відправлені на сервер\n" -#: help.c:104 +#: help.c:87 msgid " -E, --echo-hidden display queries that internal commands generate\n" msgstr " -E, --echo-hidden відобразити запити, згенеровані внутрішніми командами\n" -#: help.c:105 +#: help.c:88 msgid " -L, --log-file=FILENAME send session log to file\n" msgstr " -L, --log-file=FILENAME зберегти протокол роботи у файл\n" -#: help.c:106 +#: help.c:89 msgid " -n, --no-readline disable enhanced command line editing (readline)\n" msgstr " -n, --no-readline вимкнути розширене редагування командного рядка (readline)\n" -#: help.c:107 +#: help.c:90 msgid " -o, --output=FILENAME send query results to file (or |pipe)\n" msgstr " -o, --output=FILENAME надсилати результати запиту до файлу (або до каналу |)\n" -#: help.c:108 +#: help.c:91 msgid " -q, --quiet run quietly (no messages, only query output)\n" msgstr " -q, --quiet тихий запуск (ніяких повідомлень, лише результат запитів)\n" -#: help.c:109 +#: help.c:92 msgid " -s, --single-step single-step mode (confirm each query)\n" msgstr " -s, --single-step покроковий режим (підтвердження кожного запиту)\n" -#: help.c:110 +#: help.c:93 msgid " -S, --single-line single-line mode (end of line terminates SQL command)\n" msgstr " -S, --single-line однорядковий режим (кінець рядка завершує команду)\n" -#: help.c:112 +#: help.c:95 msgid "\n" "Output format options:\n" msgstr "\n" "Параметри формату виводу:\n" -#: help.c:113 +#: help.c:96 msgid " -A, --no-align unaligned table output mode\n" msgstr " -A, --no-align режим виводу не вирівняної таблиці\n" -#: help.c:114 +#: help.c:97 msgid " --csv CSV (Comma-Separated Values) table output mode\n" msgstr " --csv режим виводу таблиць CSV (Comma-Separated Values)\n" -#: help.c:115 +#: help.c:98 #, c-format msgid " -F, --field-separator=STRING\n" " field separator for unaligned output (default: \"%s\")\n" @@ -2583,79 +2635,72 @@ msgstr " -F, --field-separator=СТРОКА\n" " розділювач полів при не вирівняному виводі\n" " (за замовчуванням: \"%s\")\n" -#: help.c:118 +#: help.c:101 msgid " -H, --html HTML table output mode\n" msgstr " -H, --html вивід таблиці у форматі HTML\n" -#: help.c:119 +#: help.c:102 msgid " -P, --pset=VAR[=ARG] set printing option VAR to ARG (see \\pset command)\n" msgstr " -P, --pset=VAR[=ARG] встановити параметр виводу змінної VAR значенню ARG (див. команду \"\\pset\")\n" -#: help.c:120 +#: help.c:103 msgid " -R, --record-separator=STRING\n" " record separator for unaligned output (default: newline)\n" msgstr " -R, --record-separator=СТРОКА\n" " розділювач записів при не вирівняному виводі\n" " (за замовчуванням: новий рядок)\n" -#: help.c:122 +#: help.c:105 msgid " -t, --tuples-only print rows only\n" msgstr " -t, --tuples-only виводити лише рядки\n" -#: help.c:123 +#: help.c:106 msgid " -T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)\n" msgstr " -T, --table-attr=ТЕКСТ встановити атрибути HTML-таблиці (width, border)\n" -#: help.c:124 +#: help.c:107 msgid " -x, --expanded turn on expanded table output\n" msgstr " -x, --expanded ввімкнути розширене виведення таблиці\n" -#: help.c:125 +#: help.c:108 msgid " -z, --field-separator-zero\n" " set field separator for unaligned output to zero byte\n" msgstr " -z, --field-separator-zero\n" " встановити розділювач полів для не вирівняного виводу в нульовий байт\n" -#: help.c:127 +#: help.c:110 msgid " -0, --record-separator-zero\n" " set record separator for unaligned output to zero byte\n" msgstr " -0, --record-separator-zero\n" " встановити розділювач записів для не вирівняного виводу в нульовий байт\n" -#: help.c:130 +#: help.c:113 msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: help.c:133 -#, c-format -msgid " -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" -msgstr " -h, --host=HOSTNAME хост сервера бази даних або каталог сокетів (за замовчуванням: \"%s)\n" - -#: help.c:134 -msgid "local socket" -msgstr "локальний сокет" +#: help.c:114 +msgid " -h, --host=HOSTNAME database server host or socket directory\n" +msgstr " -h, --host=HOSTNAME хост серверу баз даних або каталог сокетів\n" -#: help.c:137 -#, c-format -msgid " -p, --port=PORT database server port (default: \"%s\")\n" -msgstr " -p, --port=PORT порт сервера бази даних (за замовчуванням: \"%s\")\n" +#: help.c:115 +msgid " -p, --port=PORT database server port\n" +msgstr " -p, --port=ПОРТ порт сервера бази даних\n" -#: help.c:140 -#, c-format -msgid " -U, --username=USERNAME database user name (default: \"%s\")\n" -msgstr " -U, --username=USERNAME ім'я користувача бази даних (за змовчуванням: \"%s\")\n" +#: help.c:116 +msgid " -U, --username=USERNAME database user name\n" +msgstr " -U, --username=USERNAME ім'я користувача бази даних\n" -#: help.c:142 +#: help.c:117 msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: help.c:143 +#: help.c:118 msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password запитувати пароль завжди (повинно траплятись автоматично)\n" -#: help.c:145 +#: help.c:120 msgid "\n" "For more information, type \"\\?\" (for internal commands) or \"\\help\" (for SQL\n" "commands) from within psql, or consult the psql section in the PostgreSQL\n" @@ -2663,435 +2708,439 @@ msgid "\n" msgstr "\n" "Щоб дізнатися більше, введіть \"\\?\" (для внутрішніх команд) або \"\\help\"(для команд SQL) в psql, або звіртеся з розділом psql документації PostgreSQL. \n\n" -#: help.c:148 +#: help.c:123 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Повідомляти про помилки на <%s>.\n" -#: help.c:149 +#: help.c:124 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: help.c:191 +#: help.c:166 msgid "General\n" msgstr "Загальні\n" -#: help.c:192 +#: help.c:167 msgid " \\bind [PARAM]... set query parameters\n" msgstr " \\bind [PARAM]... встановити параметри запиту\n" -#: help.c:193 +#: help.c:168 msgid " \\copyright show PostgreSQL usage and distribution terms\n" msgstr " \\copyright умови використання і розповсюдження PostgreSQL\n" -#: help.c:194 +#: help.c:169 msgid " \\crosstabview [COLUMNS] execute query and display result in crosstab\n" msgstr " \\crosstabview [COLUMNS] виконати запит і відобразити результат у перехресній таблиці\n" -#: help.c:195 +#: help.c:170 msgid " \\errverbose show most recent error message at maximum verbosity\n" msgstr " \\errverbose вивести максимально докладне повідомлення про останню помилку\n" -#: help.c:196 +#: help.c:171 msgid " \\g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe);\n" " \\g with no arguments is equivalent to a semicolon\n" msgstr " \\g [(OPTIONS)] [FILE] виконати запит (і надіслати результат до файлу або |каналу);\n" " \\g без аргументів рівнозначно крапці з комою\n" -#: help.c:198 +#: help.c:173 msgid " \\gdesc describe result of query, without executing it\n" msgstr " \\gdesc описати результат запиту без виконання\n" -#: help.c:199 +#: help.c:174 msgid " \\gexec execute query, then execute each value in its result\n" msgstr " \\gexec виконати запит, потім виконати кожне значення в його результаті\n" -#: help.c:200 +#: help.c:175 msgid " \\gset [PREFIX] execute query and store result in psql variables\n" msgstr " \\gset [PREFIX] виконати запит та зберегти результат в змінних psql \n" -#: help.c:201 +#: help.c:176 msgid " \\gx [(OPTIONS)] [FILE] as \\g, but forces expanded output mode\n" msgstr " \\gx [(OPTIONS)] [FILE] як \\g, але вмикає розширений режим виводу\n" -#: help.c:202 +#: help.c:177 msgid " \\q quit psql\n" msgstr " \\q вийти з psql\n" -#: help.c:203 -msgid " \\watch [[i=]SEC] [c=N] execute query every SEC seconds, up to N times\n" -msgstr " \\watch [[i=]SEC] [c=N] виконувати кожні SEC секунд, не більше N разів\n" +#: help.c:178 +msgid " \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" execute query every SEC seconds, up to N times,\n" +" stop if less than MIN rows are returned\n" +msgstr " \\watch [[i=]SEC] [c=N] [m=MIN]\n" +" виконувати запит кожні SEC секунд, до N разів або\n" +" зупинитися, якщо повернуто менше ніж MIN рядків\n" -#: help.c:204 help.c:212 help.c:224 help.c:234 help.c:241 help.c:298 help.c:306 -#: help.c:326 help.c:339 help.c:348 +#: help.c:181 help.c:189 help.c:201 help.c:211 help.c:218 help.c:275 help.c:283 +#: help.c:303 help.c:316 help.c:325 msgid "\n" msgstr "\n" -#: help.c:206 +#: help.c:183 msgid "Help\n" msgstr "Довідка\n" -#: help.c:208 +#: help.c:185 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] показати довідку по командах з \\\n" -#: help.c:209 +#: help.c:186 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options показати довідку по параметрах командного рядку psql\n" -#: help.c:210 +#: help.c:187 msgid " \\? variables show help on special variables\n" msgstr " \\? variables показати довідку по спеціальних змінних\n" -#: help.c:211 +#: help.c:188 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr " \\h [NAME] довідка з синтаксису команд SQL, * для всіх команд\n" -#: help.c:214 +#: help.c:191 msgid "Query Buffer\n" msgstr "Буфер запитів\n" -#: help.c:215 +#: help.c:192 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr " \\e [FILE] [LINE] редагувати буфер запитів (або файл) зовнішнім редактором\n" -#: help.c:216 +#: help.c:193 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [FUNCNAME [LINE]] редагувати визначення функції зовнішнім редактором\n" -#: help.c:217 +#: help.c:194 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [VIEWNAME [LINE]] редагувати визначення подання зовнішнім редактором\n" -#: help.c:218 +#: help.c:195 msgid " \\p show the contents of the query buffer\n" msgstr " \\p показати вміст буфера запитів\n" -#: help.c:219 +#: help.c:196 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r скинути (очистити) буфер запитів\n" -#: help.c:221 +#: help.c:198 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [FILE] відобразити історію або зберегти її до файлу\n" -#: help.c:223 +#: help.c:200 msgid " \\w FILE write query buffer to file\n" msgstr " \\w FILE писати буфер запитів до файлу\n" -#: help.c:226 +#: help.c:203 msgid "Input/Output\n" msgstr "Ввід/Вивід\n" -#: help.c:227 +#: help.c:204 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr " \\copy ... виконати команду SQL COPY з потоком даних на клієнтський хост\n" -#: help.c:228 +#: help.c:205 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [STRING] записати рядок до стандартного виводу (-n для пропуску нового рядка)\n" -#: help.c:229 +#: help.c:206 msgid " \\i FILE execute commands from file\n" msgstr " \\i FILE виконати команди з файлу\n" -#: help.c:230 +#: help.c:207 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr " \\ir ФАЙЛ те саме, що \\i, але відносно розташування поточного сценарію\n" -#: help.c:231 +#: help.c:208 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [FILE] надсилати всі результати запитів до файлу або до каналу |\n" -#: help.c:232 +#: help.c:209 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr " \\qecho [-n] [STRING] записати рядок до вихідного потоку \\o (-n для пропуску нового рядка)\n" -#: help.c:233 +#: help.c:210 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [STRING] записати рядок до стандартної помилки (-n для пропуску нового рядка)\n" -#: help.c:236 +#: help.c:213 msgid "Conditional\n" msgstr "Умовний\n" -#: help.c:237 +#: help.c:214 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR початок умовного блоку\n" -#: help.c:238 +#: help.c:215 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR альтернатива в рамках поточного блоку\n" -#: help.c:239 +#: help.c:216 msgid " \\else final alternative within current conditional block\n" msgstr " \\else остаточна альтернатива в рамках поточного умовного блоку\n" -#: help.c:240 +#: help.c:217 msgid " \\endif end conditional block\n" msgstr " \\endif кінець умовного блоку\n" -#: help.c:243 +#: help.c:220 msgid "Informational\n" msgstr "Інформаційний\n" -#: help.c:244 +#: help.c:221 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (параметри: S = показати системні об'єкти, + = додаткові деталі)\n" -#: help.c:245 +#: help.c:222 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] вивести таблиці, подання і послідовності\n" -#: help.c:246 +#: help.c:223 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr " \\d[S+] NAME описати таблицю, подання, послідовність або індекс\n" -#: help.c:247 +#: help.c:224 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [PATTERN] вивести агрегати\n" -#: help.c:248 +#: help.c:225 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [PATTERN] вивести методи доступу\n" -#: help.c:249 +#: help.c:226 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] список класів операторів\n" -#: help.c:250 +#: help.c:227 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] список сімейств операторів\n" -#: help.c:251 +#: help.c:228 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] список операторів сімейств операторів\n" -#: help.c:252 +#: help.c:229 msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] список функцій підтримки сімейств операторів\n" -#: help.c:253 +#: help.c:230 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [PATTERN] вивести табличні простори\n" -#: help.c:254 +#: help.c:231 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [PATTERN] вивести перетворення\n" -#: help.c:255 +#: help.c:232 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [PATTERN] вивести параметри конфігурації\n" -#: help.c:256 +#: help.c:233 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [PATTERN] вивести приведення типів\n" -#: help.c:257 +#: help.c:234 msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr " \\dd[S] [PATTERN] показати опис об'єкта, що не відображається в іншому місці\n" -#: help.c:258 +#: help.c:235 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [PATTERN] вивести домени\n" -#: help.c:259 +#: help.c:236 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [PATTERN] вивести привілеї за замовчуванням\n" -#: help.c:260 +#: help.c:237 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATTERN] вивести зовнішні таблиці\n" -#: help.c:261 +#: help.c:238 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [PATTERN] вивести зовнішні сервери\n" -#: help.c:262 +#: help.c:239 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATTERN] вивести зовнішні таблиці\n" -#: help.c:263 +#: help.c:240 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [PATTERN] вивести користувацькі зіставлення\n" -#: help.c:264 +#: help.c:241 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [PATTERN] список джерел сторонніх даних\n" -#: help.c:265 +#: help.c:242 msgid " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] functions\n" msgstr " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " список [лише агрегатних/нормальних/процедурних/тригерних/віконних] функцій\n" -#: help.c:267 +#: help.c:244 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [PATTERN] вивести конфігурації текстового пошуку\n" -#: help.c:268 +#: help.c:245 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [PATTERN] вивести словники текстового пошуку\n" -#: help.c:269 +#: help.c:246 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [PATTERN] вивести парсери текстового пошуку\n" -#: help.c:270 +#: help.c:247 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [PATTERN] вивести шаблони текстового пошуку\n" -#: help.c:271 +#: help.c:248 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [PATTERN] вивести ролі\n" -#: help.c:272 +#: help.c:249 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [PATTERN] вивести індекси\n" -#: help.c:273 +#: help.c:250 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] вивести великі об'єкти, те саме, що \\lo_list\n" -#: help.c:274 +#: help.c:251 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [PATTERN] вивести процедурні мови\n" -#: help.c:275 +#: help.c:252 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [PATTERN] вивести матеріалізовані подання\n" -#: help.c:276 +#: help.c:253 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [PATTERN] вивести схеми\n" -#: help.c:277 +#: help.c:254 msgid " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" msgstr " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " список операторів\n" -#: help.c:279 +#: help.c:256 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [PATTERN] вивести правила сортування\n" -#: help.c:280 +#: help.c:257 msgid " \\dp[S] [PATTERN] list table, view, and sequence access privileges\n" msgstr " \\dp[S] [PATTERN] вивести привілеї доступу до таблиць, подань або послідовностей \n" -#: help.c:281 +#: help.c:258 msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr " \\dP[itn+] [PATTERN] вивести [тільки індекс/таблицю] секційні відношення [n=вкладені]\n" -#: help.c:282 +#: help.c:259 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr " \\drds [ROLEPTRN [DBPTRN]] вивести налаштування ролей побазово\n" -#: help.c:283 +#: help.c:260 msgid " \\drg[S] [PATTERN] list role grants\n" msgstr " \\drg[S] [PATTERN] вивести надані ролі\n" -#: help.c:284 +#: help.c:261 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [PATTERN] вивести реплікаційні публікації\n" -#: help.c:285 +#: help.c:262 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [PATTERN] вивести реплікаційні підписки\n" -#: help.c:286 +#: help.c:263 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [PATTERN] вивести послідовності\n" -#: help.c:287 +#: help.c:264 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [PATTERN] вивести таблиці\n" -#: help.c:288 +#: help.c:265 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [PATTERN] вивести типи даних\n" -#: help.c:289 +#: help.c:266 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [PATTERN] вивести ролі\n" -#: help.c:290 +#: help.c:267 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [PATTERN] вивести подання\n" -#: help.c:291 +#: help.c:268 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [PATTERN] вивести розширення\n" -#: help.c:292 +#: help.c:269 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [PATTERN] список розширеної статистики\n" -#: help.c:293 +#: help.c:270 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [PATTERN] вивести тригери подій\n" -#: help.c:294 +#: help.c:271 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [PATTERN] вивести бази даних\n" -#: help.c:295 +#: help.c:272 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] FUNCNAME відобразити визначення функції\n" -#: help.c:296 +#: help.c:273 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] VIEWNAME відобразити визначення подання\n" -#: help.c:297 +#: help.c:274 msgid " \\z[S] [PATTERN] same as \\dp\n" msgstr " \\z[S] [PATTERN] те саме, що \\dp\n" -#: help.c:300 +#: help.c:277 msgid "Large Objects\n" msgstr "Великі об'єкти\n" -#: help.c:301 +#: help.c:278 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export LOBOID FILE записати великий об'єкт в файл\n" -#: help.c:302 +#: help.c:279 msgid " \\lo_import FILE [COMMENT]\n" " read large object from file\n" msgstr " \\lo_import FILE [COMMENT]\n" " читати великий об'єкт з файлу\n" -#: help.c:304 +#: help.c:281 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] вивести великі об'єкти\n" -#: help.c:305 +#: help.c:282 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID видалити великий об’єкт\n" -#: help.c:308 +#: help.c:285 msgid "Formatting\n" msgstr "Форматування\n" -#: help.c:309 +#: help.c:286 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr " \\a перемикання між режимами виводу: unaligned, aligned\n" -#: help.c:310 +#: help.c:287 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [STRING] встановити заголовок таблиці або прибрати, якщо не задано\n" -#: help.c:311 +#: help.c:288 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr " \\f [STRING] показати або встановити розділювач полів для не вирівняного виводу запиту\n" -#: help.c:312 +#: help.c:289 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H переключити режим виводу HTML (поточний: %s)\n" -#: help.c:314 +#: help.c:291 msgid " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" " fieldsep_zero|footer|format|linestyle|null|\n" @@ -3107,113 +3156,113 @@ msgstr " \\pset [NAME [VALUE]] встановити параметр виво " unicode_border_linestyle|unicode_column_linestyle|\n" " unicode_header_linestyle)\n" -#: help.c:321 +#: help.c:298 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] показувати лише рядки (поточно %s)\n" -#: help.c:323 +#: help.c:300 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr " \\T [STRING] встановити атрибути для HTML
або прибрати, якщо не задані\n" -#: help.c:324 +#: help.c:301 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] переключити розширений вивід (поточний: %s)\n" -#: help.c:325 +#: help.c:302 msgid "auto" msgstr "авто" -#: help.c:328 +#: help.c:305 msgid "Connection\n" msgstr "Підключення\n" -#: help.c:330 +#: help.c:307 #, c-format msgid " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently \"%s\")\n" msgstr " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} під'єднатися до нової бази даних (поточно \"%s\")\n" -#: help.c:334 +#: help.c:311 msgid " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" msgstr " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} під'єднатися до нової бази даних (зараз з'єднання відсутнє)\n" -#: help.c:336 +#: help.c:313 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo показати інформацію про поточне з'єднання\n" -#: help.c:337 +#: help.c:314 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [ENCODING] показати або встановити кодування клієнта\n" -#: help.c:338 +#: help.c:315 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [USERNAME] безпечно змінити пароль користувача \n" -#: help.c:341 +#: help.c:318 msgid "Operating System\n" msgstr "Операційна система\n" -#: help.c:342 +#: help.c:319 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [DIR] змінити поточний робочий каталог\n" -#: help.c:343 +#: help.c:320 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVAR отримати змінну середовища\n" -#: help.c:344 +#: help.c:321 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NAME [VALUE] встановити або скинути змінну середовища\n" -#: help.c:345 +#: help.c:322 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] переключити таймер команд (поточний: %s)\n" -#: help.c:347 +#: help.c:324 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr " \\! [COMMAND] виконати команду в оболонці або запустити інтерактивну оболонку\n" -#: help.c:350 +#: help.c:327 msgid "Variables\n" msgstr "Змінні\n" -#: help.c:351 +#: help.c:328 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [TEXT] NAME запитати користувача значення внутрішньої змінної\n" -#: help.c:352 +#: help.c:329 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr " \\set [NAME [VALUE]] встановити внутрішню змінну або вивести всі, якщо не задані параметри\n" -#: help.c:353 +#: help.c:330 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NAME скинути (видалити) значення внутрішньої змінної\n" -#: help.c:392 +#: help.c:369 msgid "List of specially treated variables\n\n" msgstr "Список спеціальних змінних\n\n" -#: help.c:394 +#: help.c:371 msgid "psql variables:\n" msgstr "змінні psql:\n" -#: help.c:396 +#: help.c:373 msgid " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n\n" msgstr " psql --set=ІМ'Я=ЗНАЧЕННЯ\n" " або \\set ІМ'Я ЗНАЧЕННЯ усередині psql\n\n" -#: help.c:398 +#: help.c:375 msgid " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" msgstr " AUTOCOMMIT\n" " якщо встановлений, успішні SQL-команди підтверджуються автоматично\n" -#: help.c:400 +#: help.c:377 msgid " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" " [lower, upper, preserve-lower, preserve-upper]\n" @@ -3221,18 +3270,18 @@ msgstr " COMP_KEYWORD_CASE\n" " визначає регістр для автодоповнення ключових слів SQL\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:403 +#: help.c:380 msgid " DBNAME\n" " the currently connected database name\n" msgstr " DBNAME назва під'єднаної бази даних\n" -#: help.c:405 +#: help.c:382 msgid " ECHO\n" " controls what input is written to standard output\n" " [all, errors, none, queries]\n" msgstr " ECHO контролює ввід, що виводиться на стандартний вивід [all, errors, none, queries]\n" -#: help.c:408 +#: help.c:385 msgid " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" " if set to \"noexec\", just show them without execution\n" @@ -3240,67 +3289,67 @@ msgstr " ECHO_HIDDEN\n" " якщо ввімкнено, виводить внутрішні запити, виконані за допомогою \"\\\";\n" " якщо встановлено значення \"noexec\", тільки виводяться, але не виконуються\n" -#: help.c:411 +#: help.c:388 msgid " ENCODING\n" " current client character set encoding\n" msgstr " ENCODING\n" " поточне кодування набору символів клієнта\n" -#: help.c:413 +#: help.c:390 msgid " ERROR\n" " \"true\" if last query failed, else \"false\"\n" msgstr " ERROR\n" " \"true\", якщо в останньому запиті є помилка, в іншому разі - \"false\"\n" -#: help.c:415 +#: help.c:392 msgid " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" msgstr " FETCH_COUNT\n" " число рядків з результатами для передачі та відображення за один раз (0 = необмежено)\n" -#: help.c:417 +#: help.c:394 msgid " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" msgstr " HIDE_TABLEAM\n" " якщо вказано, методи доступу до таблиць не відображаються\n" -#: help.c:419 +#: help.c:396 msgid " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" msgstr " HIDE_TOAST_COMPRESSION\n" " якщо встановлено, методи стискання не відображаються\n" -#: help.c:421 +#: help.c:398 msgid " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" msgstr " HISTCONTROL контролює історію команд [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:423 +#: help.c:400 msgid " HISTFILE\n" " file name used to store the command history\n" msgstr " HISTFILE ім'я файлу для зберігання історії команд\n" -#: help.c:425 +#: help.c:402 msgid " HISTSIZE\n" " maximum number of commands to store in the command history\n" msgstr " HISTSIZE максимальна кількість команд для зберігання в історії команд\n" -#: help.c:427 +#: help.c:404 msgid " HOST\n" " the currently connected database server host\n" msgstr " HOST поточний підключений хост сервера бази даних\n" -#: help.c:429 +#: help.c:406 msgid " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" msgstr " IGNOREEOF кількість EOF для завершення інтерактивної сесії\n" -#: help.c:431 +#: help.c:408 msgid " LASTOID\n" " value of the last affected OID\n" msgstr " LASTOID значення останнього залученого OID\n" -#: help.c:433 +#: help.c:410 msgid " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" " message and SQLSTATE of last error, or empty string and \"00000\" if none\n" @@ -3308,55 +3357,55 @@ msgstr " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" " повідомлення та код SQLSTATE останньої помилки, або пустий рядок та \"00000\", якщо помилки не було\n" -#: help.c:436 +#: help.c:413 msgid " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" msgstr " ON_ERROR_ROLLBACK\n" " якщо встановлено, транзакція не припиняється у разі помилки (використовуються неявні точки збереження)\n" -#: help.c:438 +#: help.c:415 msgid " ON_ERROR_STOP\n" " stop batch execution after error\n" msgstr " ON_ERROR_STOP\n" " зупиняти виконання пакету команд після помилки\n" -#: help.c:440 +#: help.c:417 msgid " PORT\n" " server port of the current connection\n" msgstr " PORT\n" " порт сервера для поточного з'єднання\n" -#: help.c:442 +#: help.c:419 msgid " PROMPT1\n" " specifies the standard psql prompt\n" msgstr " PROMPT1\n" " визначає стандратне запрошення psql \n" -#: help.c:444 +#: help.c:421 msgid " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" msgstr " PROMPT2\n" " визначає запрошення, яке використовується при продовженні команди з попереднього рядка\n" -#: help.c:446 +#: help.c:423 msgid " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" msgstr " PROMPT3\n" " визначає запрошення, яке виконується під час COPY ... FROM STDIN\n" -#: help.c:448 +#: help.c:425 msgid " QUIET\n" " run quietly (same as -q option)\n" msgstr " QUIET\n" " тихий запуск ( як із параметром -q)\n" -#: help.c:450 +#: help.c:427 msgid " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" msgstr " ROW_COUNT\n" " число повернених або оброблених рядків останнім запитом, або 0\n" -#: help.c:452 +#: help.c:429 msgid " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" " server's version (in short string or numeric format)\n" @@ -3364,61 +3413,61 @@ msgstr " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" " версія серевера (у короткому текстовому або числовому форматі)\n" -#: help.c:455 +#: help.c:432 msgid " SHELL_ERROR\n" " \"true\" if the last shell command failed, \"false\" if it succeeded\n" msgstr " SHELL_ERROR\n" " \"true\", якщо остання команда оболонки завершилася помилкою, \"false\", якщо успішно\n" -#: help.c:457 +#: help.c:434 msgid " SHELL_EXIT_CODE\n" " exit status of the last shell command\n" msgstr " SHEL_EXIT_CODE\n" " статус виконання останньої команди оболонки\n" -#: help.c:459 +#: help.c:436 msgid " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" msgstr " SHOW_ALL_RESULTS\n" " показати всі результати комбінованого запиту (\\;) замість тільки останнього\n" -#: help.c:461 +#: help.c:438 msgid " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" msgstr " SHOW_CONTEXT\n" " керує відображенням полів контексту повідомлень [never, errors, always]\n" -#: help.c:463 +#: help.c:440 msgid " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" msgstr " SINGLELINE\n" " якщо встановлено, кінець рядка завершує режим вводу SQL-команди (як з параметром -S)\n" -#: help.c:465 +#: help.c:442 msgid " SINGLESTEP\n" " single-step mode (same as -s option)\n" msgstr " SINGLESTEP\n" " покроковий режим (як з параметром -s)\n" -#: help.c:467 +#: help.c:444 msgid " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" msgstr " SQLSTATE\n" " SQLSTATE останнього запиту, або \"00000\" якщо немає помилок\n" -#: help.c:469 +#: help.c:446 msgid " USER\n" " the currently connected database user\n" msgstr " USER\n" " поточний користувач, підключений до бази даних\n" -#: help.c:471 +#: help.c:448 msgid " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" msgstr " VERBOSITY\n" " контролює докладність звітів про помилку [default, verbose, terse, sqlstate]\n" -#: help.c:473 +#: help.c:450 msgid " VERSION\n" " VERSION_NAME\n" " VERSION_NUM\n" @@ -3428,98 +3477,98 @@ msgstr " VERSION\n" " VERSION_NUM\n" " psql версія (в розгорнутому, в короткому текстовому або числовому форматі)\n" -#: help.c:478 +#: help.c:455 msgid "\n" "Display settings:\n" msgstr "\n" "Налаштування відобреження:\n" -#: help.c:480 +#: help.c:457 msgid " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n\n" msgstr " psql --pset=NAME[=VALUE]\n" " або \\pset ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:482 +#: help.c:459 msgid " border\n" " border style (number)\n" msgstr " border\n" " стиль рамки (число)\n" -#: help.c:484 +#: help.c:461 msgid " columns\n" " target width for the wrapped format\n" msgstr " columns\n" " цільова ширина для формату з переносом\n" -#: help.c:486 +#: help.c:463 msgid " expanded (or x)\n" " expanded output [on, off, auto]\n" msgstr " expanded (or x)\n" " розширений вивід [on, off, auto]\n" -#: help.c:488 +#: help.c:465 #, c-format msgid " fieldsep\n" " field separator for unaligned output (default \"%s\")\n" msgstr " fieldsep\n" " розділювач полів для не вирівняного виводу (за замовчуванням \"%s\")\n" -#: help.c:491 +#: help.c:468 msgid " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" msgstr " fieldsep_zero\n" " встановити розділювач полів для невирівняного виводу на нульовий байт\n" -#: help.c:493 +#: help.c:470 msgid " footer\n" " enable or disable display of the table footer [on, off]\n" msgstr " footer\n" " вмикає або вимикає вивід підписів таблиці [on, off]\n" -#: help.c:495 +#: help.c:472 msgid " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" msgstr " format\n" " встановити формат виводу [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:497 +#: help.c:474 msgid " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" msgstr " linestyle\n" " встановлює стиль малювання ліній рамки [ascii, old-ascii, unicode]\n" -#: help.c:499 +#: help.c:476 msgid " null\n" " set the string to be printed in place of a null value\n" msgstr " null\n" " встановлює рядок, який буде виведено замість значення (null)\n" -#: help.c:501 +#: help.c:478 msgid " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" msgstr " numericlocale\n" " вмикає виведення заданого локалью роздільника групи цифр\n" -#: help.c:503 +#: help.c:480 msgid " pager\n" " control when an external pager is used [yes, no, always]\n" msgstr " pager\n" " контролює використання зовнішнього пейджера [yes, no, always]\n" -#: help.c:505 +#: help.c:482 msgid " recordsep\n" " record (line) separator for unaligned output\n" msgstr " recordsep\n" " розділювач записів (рядків) для не вирівняного виводу\n" -#: help.c:507 +#: help.c:484 msgid " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" msgstr " recordsep_zero\n" " встановлює розділювач записів для невирівняного виводу на нульовий байт\n" -#: help.c:509 +#: help.c:486 msgid " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" " column widths for left-aligned data types in latex-longtable format\n" @@ -3527,19 +3576,19 @@ msgstr " tableattr (або T)\n" " вказує атрибути для тегу table у html форматі або пропорційні \n" " ширини стовпців для вирівняних вліво даних, у latex-longtable форматі\n" -#: help.c:512 +#: help.c:489 msgid " title\n" " set the table title for subsequently printed tables\n" msgstr " title\n" " задає заголовок таблиці для послідовно друкованих таблиць\n" -#: help.c:514 +#: help.c:491 msgid " tuples_only\n" " if set, only actual table data is shown\n" msgstr " tuples_only\n" " якщо встановлено, виводяться лише фактичні табличні дані\n" -#: help.c:516 +#: help.c:493 msgid " unicode_border_linestyle\n" " unicode_column_linestyle\n" " unicode_header_linestyle\n" @@ -3549,19 +3598,19 @@ msgstr " unicode_border_linestyle\n" " unicode_header_linestyle\n" " задає стиль мальювання ліній (Unicode) [single, double]\n" -#: help.c:521 +#: help.c:498 msgid "\n" "Environment variables:\n" msgstr "\n" "Змінні оточення:\n" -#: help.c:525 +#: help.c:502 msgid " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n\n" msgstr " ІМ'Я=ЗНАЧЕННЯ [ІМ'Я=ЗНАЧЕННЯ] psql ...\n" " або \\setenv ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:527 +#: help.c:504 msgid " set NAME=VALUE\n" " psql ...\n" " or \\setenv NAME [VALUE] inside psql\n\n" @@ -3569,107 +3618,107 @@ msgstr " встановлює ІМ'Я=ЗНАЧЕННЯ\n" " psql ...\n" " або \\setenv ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:530 +#: help.c:507 msgid " COLUMNS\n" " number of columns for wrapped format\n" msgstr " COLUMNS\n" " число стовпців для форматування з переносом\n" -#: help.c:532 +#: help.c:509 msgid " PGAPPNAME\n" " same as the application_name connection parameter\n" msgstr " PGAPPNAME\n" " те саме, що параметр підключення application_name\n" -#: help.c:534 +#: help.c:511 msgid " PGDATABASE\n" " same as the dbname connection parameter\n" msgstr " PGDATABASE\n" " те саме, що параметр підключення dbname\n" -#: help.c:536 +#: help.c:513 msgid " PGHOST\n" " same as the host connection parameter\n" msgstr " PGHOST\n" " те саме, що параметр підключення host\n" -#: help.c:538 +#: help.c:515 msgid " PGPASSFILE\n" " password file name\n" msgstr " PGPASSFILE\n" " назва файлу з паролем\n" -#: help.c:540 +#: help.c:517 msgid " PGPASSWORD\n" " connection password (not recommended)\n" msgstr " PGPASSWORD\n" " пароль для підключення (не рекомендується)\n" -#: help.c:542 +#: help.c:519 msgid " PGPORT\n" " same as the port connection parameter\n" msgstr " PGPORT\n" " те саме, що параметр підключення port\n" -#: help.c:544 +#: help.c:521 msgid " PGUSER\n" " same as the user connection parameter\n" msgstr " PGUSER\n" " те саме, що параметр підключення user\n" -#: help.c:546 +#: help.c:523 msgid " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" msgstr " PSQL_EDITOR, EDITOR, VISUAL\n" " редактор для команд \\e, \\ef і \\ev\n" -#: help.c:548 +#: help.c:525 msgid " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" msgstr " PSQL_EDITOR_LINENUMBER_ARG\n" " як вказати номер рядка при виклику редактора\n" -#: help.c:550 +#: help.c:527 msgid " PSQL_HISTORY\n" " alternative location for the command history file\n" msgstr " PSQL_HISTORY\n" " альтернативне розміщення файлу з історією команд\n" -#: help.c:552 +#: help.c:529 msgid " PSQL_PAGER, PAGER\n" " name of external pager program\n" msgstr " PSQL_PAGER, PAGER\n" " ім'я програми зовнішнього пейджеру\n" -#: help.c:555 +#: help.c:532 msgid " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" msgstr " PSQL_WATCH_PAGER\n" " назва зовнішньої програми-пейджера для використання з \\watch\n" -#: help.c:558 +#: help.c:535 msgid " PSQLRC\n" " alternative location for the user's .psqlrc file\n" msgstr " PSQLRC\n" " альтернативне розміщення користувацького файла .psqlrc\n" -#: help.c:560 +#: help.c:537 msgid " SHELL\n" " shell used by the \\! command\n" msgstr " SHELL\n" " оболонка, що використовується командою \\!\n" -#: help.c:562 +#: help.c:539 msgid " TMPDIR\n" " directory for temporary files\n" msgstr " TMPDIR\n" " каталог для тимчасових файлів\n" -#: help.c:622 +#: help.c:599 msgid "Available help:\n" msgstr "Доступна довідка:\n" -#: help.c:717 +#: help.c:694 #, c-format msgid "Command: %s\n" "Description: %s\n" @@ -3682,24 +3731,24 @@ msgstr "Команда: %s\n" "%s\n\n" "URL: %s\n\n" -#: help.c:740 +#: help.c:717 #, c-format msgid "No help available for \"%s\".\n" "Try \\h with no arguments to see available help.\n" msgstr "Немає доступної довідки по команді \"%s\".\n" "Спробуйте \\h без аргументів, щоб подивитись доступну довідку.\n" -#: input.c:216 +#: input.c:215 #, c-format msgid "could not read from input file: %m" msgstr "не вдалося прочитати з вхідного файлу: %m" -#: input.c:477 input.c:515 +#: input.c:476 input.c:514 #, c-format msgid "could not save history to file \"%s\": %m" msgstr "не можливо зберегти історію в файлі \"%s\": %m" -#: input.c:534 +#: input.c:533 #, c-format msgid "history is not supported by this installation" msgstr "ця установка не підтримує історію" @@ -3782,12 +3831,12 @@ msgstr "запит ігнорується; введіть \\endif або нат msgid "reached EOF without finding closing \\endif(s)" msgstr "досягнуто кінця файлу без завершального \\endif" -#: psqlscanslash.l:640 +#: psqlscanslash.l:642 #, c-format msgid "unterminated quoted string" msgstr "незавершений рядок в лапках" -#: psqlscanslash.l:825 +#: psqlscanslash.l:842 #, c-format msgid "%s: out of memory" msgstr "%s: бракує пам'яті" @@ -3795,2427 +3844,2446 @@ msgstr "%s: бракує пам'яті" #: sql_help.c:35 sql_help.c:38 sql_help.c:41 sql_help.c:65 sql_help.c:66 #: sql_help.c:68 sql_help.c:70 sql_help.c:81 sql_help.c:83 sql_help.c:85 #: sql_help.c:113 sql_help.c:119 sql_help.c:121 sql_help.c:123 sql_help.c:125 -#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:238 -#: sql_help.c:240 sql_help.c:241 sql_help.c:243 sql_help.c:245 sql_help.c:248 -#: sql_help.c:250 sql_help.c:252 sql_help.c:254 sql_help.c:266 sql_help.c:267 -#: sql_help.c:268 sql_help.c:270 sql_help.c:319 sql_help.c:321 sql_help.c:323 -#: sql_help.c:325 sql_help.c:394 sql_help.c:399 sql_help.c:401 sql_help.c:443 -#: sql_help.c:445 sql_help.c:448 sql_help.c:450 sql_help.c:519 sql_help.c:524 -#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:593 sql_help.c:595 -#: sql_help.c:597 sql_help.c:599 sql_help.c:601 sql_help.c:604 sql_help.c:606 -#: sql_help.c:609 sql_help.c:620 sql_help.c:622 sql_help.c:666 sql_help.c:668 -#: sql_help.c:670 sql_help.c:673 sql_help.c:675 sql_help.c:677 sql_help.c:714 -#: sql_help.c:718 sql_help.c:722 sql_help.c:741 sql_help.c:744 sql_help.c:747 -#: sql_help.c:776 sql_help.c:788 sql_help.c:796 sql_help.c:799 sql_help.c:802 -#: sql_help.c:817 sql_help.c:820 sql_help.c:849 sql_help.c:854 sql_help.c:859 -#: sql_help.c:864 sql_help.c:869 sql_help.c:896 sql_help.c:898 sql_help.c:900 -#: sql_help.c:902 sql_help.c:905 sql_help.c:907 sql_help.c:954 sql_help.c:999 -#: sql_help.c:1004 sql_help.c:1009 sql_help.c:1014 sql_help.c:1019 -#: sql_help.c:1038 sql_help.c:1049 sql_help.c:1051 sql_help.c:1071 -#: sql_help.c:1081 sql_help.c:1082 sql_help.c:1084 sql_help.c:1086 -#: sql_help.c:1098 sql_help.c:1102 sql_help.c:1104 sql_help.c:1116 -#: sql_help.c:1118 sql_help.c:1120 sql_help.c:1122 sql_help.c:1141 -#: sql_help.c:1143 sql_help.c:1147 sql_help.c:1151 sql_help.c:1155 -#: sql_help.c:1158 sql_help.c:1159 sql_help.c:1160 sql_help.c:1163 -#: sql_help.c:1166 sql_help.c:1168 sql_help.c:1307 sql_help.c:1309 -#: sql_help.c:1312 sql_help.c:1315 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1442 sql_help.c:1444 -#: sql_help.c:1446 sql_help.c:1449 sql_help.c:1470 sql_help.c:1473 -#: sql_help.c:1476 sql_help.c:1479 sql_help.c:1483 sql_help.c:1485 -#: sql_help.c:1487 sql_help.c:1489 sql_help.c:1503 sql_help.c:1506 -#: sql_help.c:1508 sql_help.c:1510 sql_help.c:1520 sql_help.c:1522 -#: sql_help.c:1532 sql_help.c:1534 sql_help.c:1544 sql_help.c:1547 -#: sql_help.c:1570 sql_help.c:1572 sql_help.c:1574 sql_help.c:1576 -#: sql_help.c:1579 sql_help.c:1581 sql_help.c:1584 sql_help.c:1587 -#: sql_help.c:1638 sql_help.c:1681 sql_help.c:1684 sql_help.c:1686 -#: sql_help.c:1688 sql_help.c:1691 sql_help.c:1693 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1750 sql_help.c:1766 sql_help.c:1999 -#: sql_help.c:2068 sql_help.c:2087 sql_help.c:2100 sql_help.c:2158 -#: sql_help.c:2166 sql_help.c:2176 sql_help.c:2203 sql_help.c:2235 -#: sql_help.c:2253 sql_help.c:2281 sql_help.c:2392 sql_help.c:2438 -#: sql_help.c:2463 sql_help.c:2486 sql_help.c:2490 sql_help.c:2524 -#: sql_help.c:2544 sql_help.c:2566 sql_help.c:2580 sql_help.c:2601 -#: sql_help.c:2630 sql_help.c:2665 sql_help.c:2690 sql_help.c:2737 -#: sql_help.c:3032 sql_help.c:3045 sql_help.c:3062 sql_help.c:3078 -#: sql_help.c:3118 sql_help.c:3172 sql_help.c:3176 sql_help.c:3178 -#: sql_help.c:3185 sql_help.c:3204 sql_help.c:3231 sql_help.c:3266 -#: sql_help.c:3278 sql_help.c:3287 sql_help.c:3331 sql_help.c:3345 -#: sql_help.c:3373 sql_help.c:3381 sql_help.c:3393 sql_help.c:3403 -#: sql_help.c:3411 sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 -#: sql_help.c:3444 sql_help.c:3455 sql_help.c:3463 sql_help.c:3471 -#: sql_help.c:3479 sql_help.c:3487 sql_help.c:3497 sql_help.c:3506 -#: sql_help.c:3515 sql_help.c:3523 sql_help.c:3533 sql_help.c:3544 -#: sql_help.c:3552 sql_help.c:3561 sql_help.c:3572 sql_help.c:3581 -#: sql_help.c:3589 sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 -#: sql_help.c:3621 sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 -#: sql_help.c:3653 sql_help.c:3661 sql_help.c:3678 sql_help.c:3687 -#: sql_help.c:3695 sql_help.c:3712 sql_help.c:3727 sql_help.c:4039 -#: sql_help.c:4149 sql_help.c:4178 sql_help.c:4194 sql_help.c:4196 -#: sql_help.c:4699 sql_help.c:4747 sql_help.c:4905 +#: sql_help.c:126 sql_help.c:129 sql_help.c:131 sql_help.c:133 sql_help.c:240 +#: sql_help.c:242 sql_help.c:243 sql_help.c:245 sql_help.c:247 sql_help.c:250 +#: sql_help.c:252 sql_help.c:254 sql_help.c:256 sql_help.c:268 sql_help.c:269 +#: sql_help.c:270 sql_help.c:272 sql_help.c:321 sql_help.c:323 sql_help.c:325 +#: sql_help.c:327 sql_help.c:396 sql_help.c:401 sql_help.c:403 sql_help.c:445 +#: sql_help.c:447 sql_help.c:450 sql_help.c:452 sql_help.c:521 sql_help.c:526 +#: sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:595 sql_help.c:597 +#: sql_help.c:599 sql_help.c:601 sql_help.c:603 sql_help.c:606 sql_help.c:608 +#: sql_help.c:611 sql_help.c:622 sql_help.c:624 sql_help.c:668 sql_help.c:670 +#: sql_help.c:672 sql_help.c:675 sql_help.c:677 sql_help.c:679 sql_help.c:720 +#: sql_help.c:724 sql_help.c:728 sql_help.c:749 sql_help.c:752 sql_help.c:755 +#: sql_help.c:784 sql_help.c:796 sql_help.c:804 sql_help.c:807 sql_help.c:810 +#: sql_help.c:825 sql_help.c:828 sql_help.c:857 sql_help.c:862 sql_help.c:867 +#: sql_help.c:872 sql_help.c:877 sql_help.c:904 sql_help.c:906 sql_help.c:908 +#: sql_help.c:910 sql_help.c:913 sql_help.c:915 sql_help.c:962 sql_help.c:1007 +#: sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 +#: sql_help.c:1046 sql_help.c:1057 sql_help.c:1059 sql_help.c:1079 +#: sql_help.c:1089 sql_help.c:1090 sql_help.c:1092 sql_help.c:1094 +#: sql_help.c:1106 sql_help.c:1110 sql_help.c:1112 sql_help.c:1124 +#: sql_help.c:1126 sql_help.c:1128 sql_help.c:1130 sql_help.c:1149 +#: sql_help.c:1151 sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1166 sql_help.c:1167 sql_help.c:1168 sql_help.c:1171 +#: sql_help.c:1174 sql_help.c:1176 sql_help.c:1316 sql_help.c:1318 +#: sql_help.c:1321 sql_help.c:1324 sql_help.c:1326 sql_help.c:1328 +#: sql_help.c:1331 sql_help.c:1334 sql_help.c:1456 sql_help.c:1458 +#: sql_help.c:1460 sql_help.c:1463 sql_help.c:1484 sql_help.c:1487 +#: sql_help.c:1490 sql_help.c:1493 sql_help.c:1497 sql_help.c:1499 +#: sql_help.c:1501 sql_help.c:1503 sql_help.c:1517 sql_help.c:1520 +#: sql_help.c:1522 sql_help.c:1524 sql_help.c:1534 sql_help.c:1536 +#: sql_help.c:1546 sql_help.c:1548 sql_help.c:1558 sql_help.c:1561 +#: sql_help.c:1584 sql_help.c:1586 sql_help.c:1588 sql_help.c:1590 +#: sql_help.c:1593 sql_help.c:1595 sql_help.c:1598 sql_help.c:1601 +#: sql_help.c:1652 sql_help.c:1695 sql_help.c:1698 sql_help.c:1700 +#: sql_help.c:1702 sql_help.c:1705 sql_help.c:1707 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1762 sql_help.c:1778 sql_help.c:2011 +#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2112 sql_help.c:2170 +#: sql_help.c:2178 sql_help.c:2188 sql_help.c:2216 sql_help.c:2249 +#: sql_help.c:2267 sql_help.c:2295 sql_help.c:2406 sql_help.c:2452 +#: sql_help.c:2477 sql_help.c:2500 sql_help.c:2504 sql_help.c:2538 +#: sql_help.c:2558 sql_help.c:2580 sql_help.c:2594 sql_help.c:2615 +#: sql_help.c:2644 sql_help.c:2677 sql_help.c:2700 sql_help.c:2747 +#: sql_help.c:3045 sql_help.c:3058 sql_help.c:3075 sql_help.c:3091 +#: sql_help.c:3131 sql_help.c:3185 sql_help.c:3189 sql_help.c:3191 +#: sql_help.c:3198 sql_help.c:3217 sql_help.c:3244 sql_help.c:3279 +#: sql_help.c:3291 sql_help.c:3300 sql_help.c:3344 sql_help.c:3358 +#: sql_help.c:3386 sql_help.c:3394 sql_help.c:3406 sql_help.c:3416 +#: sql_help.c:3424 sql_help.c:3432 sql_help.c:3440 sql_help.c:3448 +#: sql_help.c:3457 sql_help.c:3468 sql_help.c:3476 sql_help.c:3484 +#: sql_help.c:3492 sql_help.c:3500 sql_help.c:3510 sql_help.c:3519 +#: sql_help.c:3528 sql_help.c:3536 sql_help.c:3546 sql_help.c:3557 +#: sql_help.c:3565 sql_help.c:3574 sql_help.c:3585 sql_help.c:3594 +#: sql_help.c:3602 sql_help.c:3610 sql_help.c:3618 sql_help.c:3626 +#: sql_help.c:3634 sql_help.c:3642 sql_help.c:3650 sql_help.c:3658 +#: sql_help.c:3666 sql_help.c:3674 sql_help.c:3691 sql_help.c:3700 +#: sql_help.c:3708 sql_help.c:3725 sql_help.c:3740 sql_help.c:4053 +#: sql_help.c:4174 sql_help.c:4203 sql_help.c:4219 sql_help.c:4221 +#: sql_help.c:4725 sql_help.c:4773 sql_help.c:4932 msgid "name" msgstr "назва" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:330 sql_help.c:1847 -#: sql_help.c:3346 sql_help.c:4467 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:332 sql_help.c:1855 +#: sql_help.c:3359 sql_help.c:4492 msgid "aggregate_signature" msgstr "сигнатура_агр_функції" -#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:253 -#: sql_help.c:271 sql_help.c:402 sql_help.c:449 sql_help.c:528 sql_help.c:576 -#: sql_help.c:594 sql_help.c:621 sql_help.c:674 sql_help.c:743 sql_help.c:798 -#: sql_help.c:819 sql_help.c:858 sql_help.c:908 sql_help.c:955 sql_help.c:1008 -#: sql_help.c:1040 sql_help.c:1050 sql_help.c:1085 sql_help.c:1105 -#: sql_help.c:1119 sql_help.c:1169 sql_help.c:1316 sql_help.c:1443 -#: sql_help.c:1486 sql_help.c:1507 sql_help.c:1521 sql_help.c:1533 -#: sql_help.c:1546 sql_help.c:1573 sql_help.c:1639 sql_help.c:1692 +#: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:255 +#: sql_help.c:273 sql_help.c:404 sql_help.c:451 sql_help.c:530 sql_help.c:578 +#: sql_help.c:596 sql_help.c:623 sql_help.c:676 sql_help.c:751 sql_help.c:806 +#: sql_help.c:827 sql_help.c:866 sql_help.c:916 sql_help.c:963 sql_help.c:1016 +#: sql_help.c:1048 sql_help.c:1058 sql_help.c:1093 sql_help.c:1113 +#: sql_help.c:1127 sql_help.c:1177 sql_help.c:1325 sql_help.c:1457 +#: sql_help.c:1500 sql_help.c:1521 sql_help.c:1535 sql_help.c:1547 +#: sql_help.c:1560 sql_help.c:1587 sql_help.c:1653 sql_help.c:1706 msgid "new_name" msgstr "нова_назва" -#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:251 -#: sql_help.c:269 sql_help.c:400 sql_help.c:485 sql_help.c:533 sql_help.c:623 -#: sql_help.c:632 sql_help.c:697 sql_help.c:717 sql_help.c:746 sql_help.c:801 -#: sql_help.c:863 sql_help.c:906 sql_help.c:1013 sql_help.c:1052 -#: sql_help.c:1083 sql_help.c:1103 sql_help.c:1117 sql_help.c:1167 -#: sql_help.c:1380 sql_help.c:1445 sql_help.c:1488 sql_help.c:1509 -#: sql_help.c:1571 sql_help.c:1687 sql_help.c:3018 +#: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:253 +#: sql_help.c:271 sql_help.c:402 sql_help.c:487 sql_help.c:535 sql_help.c:625 +#: sql_help.c:634 sql_help.c:699 sql_help.c:723 sql_help.c:754 sql_help.c:809 +#: sql_help.c:871 sql_help.c:914 sql_help.c:1021 sql_help.c:1060 +#: sql_help.c:1091 sql_help.c:1111 sql_help.c:1125 sql_help.c:1175 +#: sql_help.c:1391 sql_help.c:1459 sql_help.c:1502 sql_help.c:1523 +#: sql_help.c:1585 sql_help.c:1701 sql_help.c:3031 msgid "new_owner" msgstr "новий_власник" -#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:255 sql_help.c:322 -#: sql_help.c:451 sql_help.c:538 sql_help.c:676 sql_help.c:721 sql_help.c:749 -#: sql_help.c:804 sql_help.c:868 sql_help.c:1018 sql_help.c:1087 -#: sql_help.c:1121 sql_help.c:1318 sql_help.c:1490 sql_help.c:1511 -#: sql_help.c:1523 sql_help.c:1535 sql_help.c:1575 sql_help.c:1694 +#: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:257 sql_help.c:324 +#: sql_help.c:453 sql_help.c:540 sql_help.c:678 sql_help.c:727 sql_help.c:757 +#: sql_help.c:812 sql_help.c:876 sql_help.c:1026 sql_help.c:1095 +#: sql_help.c:1129 sql_help.c:1327 sql_help.c:1504 sql_help.c:1525 +#: sql_help.c:1537 sql_help.c:1549 sql_help.c:1589 sql_help.c:1708 msgid "new_schema" msgstr "нова_схема" -#: sql_help.c:44 sql_help.c:1911 sql_help.c:3347 sql_help.c:4496 +#: sql_help.c:44 sql_help.c:1919 sql_help.c:3360 sql_help.c:4521 msgid "where aggregate_signature is:" msgstr "де сигнатура_агр_функції:" -#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:340 sql_help.c:353 -#: sql_help.c:357 sql_help.c:373 sql_help.c:376 sql_help.c:379 sql_help.c:520 -#: sql_help.c:525 sql_help.c:530 sql_help.c:535 sql_help.c:540 sql_help.c:850 -#: sql_help.c:855 sql_help.c:860 sql_help.c:865 sql_help.c:870 sql_help.c:1000 -#: sql_help.c:1005 sql_help.c:1010 sql_help.c:1015 sql_help.c:1020 -#: sql_help.c:1865 sql_help.c:1882 sql_help.c:1888 sql_help.c:1912 -#: sql_help.c:1915 sql_help.c:1918 sql_help.c:2069 sql_help.c:2088 -#: sql_help.c:2091 sql_help.c:2393 sql_help.c:2602 sql_help.c:3348 -#: sql_help.c:3351 sql_help.c:3354 sql_help.c:3445 sql_help.c:3534 -#: sql_help.c:3562 sql_help.c:3914 sql_help.c:4366 sql_help.c:4473 -#: sql_help.c:4480 sql_help.c:4486 sql_help.c:4497 sql_help.c:4500 -#: sql_help.c:4503 +#: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:342 sql_help.c:355 +#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 +#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:858 +#: sql_help.c:863 sql_help.c:868 sql_help.c:873 sql_help.c:878 sql_help.c:1008 +#: sql_help.c:1013 sql_help.c:1018 sql_help.c:1023 sql_help.c:1028 +#: sql_help.c:1873 sql_help.c:1890 sql_help.c:1896 sql_help.c:1920 +#: sql_help.c:1923 sql_help.c:1926 sql_help.c:2081 sql_help.c:2100 +#: sql_help.c:2103 sql_help.c:2407 sql_help.c:2616 sql_help.c:3361 +#: sql_help.c:3364 sql_help.c:3367 sql_help.c:3458 sql_help.c:3547 +#: sql_help.c:3575 sql_help.c:3928 sql_help.c:4391 sql_help.c:4498 +#: sql_help.c:4505 sql_help.c:4511 sql_help.c:4522 sql_help.c:4525 +#: sql_help.c:4528 msgid "argmode" msgstr "режим_аргументу" -#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:341 sql_help.c:354 -#: sql_help.c:358 sql_help.c:374 sql_help.c:377 sql_help.c:380 sql_help.c:521 -#: sql_help.c:526 sql_help.c:531 sql_help.c:536 sql_help.c:541 sql_help.c:851 -#: sql_help.c:856 sql_help.c:861 sql_help.c:866 sql_help.c:871 sql_help.c:1001 -#: sql_help.c:1006 sql_help.c:1011 sql_help.c:1016 sql_help.c:1021 -#: sql_help.c:1866 sql_help.c:1883 sql_help.c:1889 sql_help.c:1913 -#: sql_help.c:1916 sql_help.c:1919 sql_help.c:2070 sql_help.c:2089 -#: sql_help.c:2092 sql_help.c:2394 sql_help.c:2603 sql_help.c:3349 -#: sql_help.c:3352 sql_help.c:3355 sql_help.c:3446 sql_help.c:3535 -#: sql_help.c:3563 sql_help.c:4474 sql_help.c:4481 sql_help.c:4487 -#: sql_help.c:4498 sql_help.c:4501 sql_help.c:4504 +#: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:343 sql_help.c:356 +#: sql_help.c:360 sql_help.c:376 sql_help.c:379 sql_help.c:382 sql_help.c:523 +#: sql_help.c:528 sql_help.c:533 sql_help.c:538 sql_help.c:543 sql_help.c:859 +#: sql_help.c:864 sql_help.c:869 sql_help.c:874 sql_help.c:879 sql_help.c:1009 +#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 +#: sql_help.c:1874 sql_help.c:1891 sql_help.c:1897 sql_help.c:1921 +#: sql_help.c:1924 sql_help.c:1927 sql_help.c:2082 sql_help.c:2101 +#: sql_help.c:2104 sql_help.c:2408 sql_help.c:2617 sql_help.c:3362 +#: sql_help.c:3365 sql_help.c:3368 sql_help.c:3459 sql_help.c:3548 +#: sql_help.c:3576 sql_help.c:4499 sql_help.c:4506 sql_help.c:4512 +#: sql_help.c:4523 sql_help.c:4526 sql_help.c:4529 msgid "argname" msgstr "ім'я_аргументу" -#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:342 sql_help.c:355 -#: sql_help.c:359 sql_help.c:375 sql_help.c:378 sql_help.c:381 sql_help.c:522 -#: sql_help.c:527 sql_help.c:532 sql_help.c:537 sql_help.c:542 sql_help.c:852 -#: sql_help.c:857 sql_help.c:862 sql_help.c:867 sql_help.c:872 sql_help.c:1002 -#: sql_help.c:1007 sql_help.c:1012 sql_help.c:1017 sql_help.c:1022 -#: sql_help.c:1867 sql_help.c:1884 sql_help.c:1890 sql_help.c:1914 -#: sql_help.c:1917 sql_help.c:1920 sql_help.c:2395 sql_help.c:2604 -#: sql_help.c:3350 sql_help.c:3353 sql_help.c:3356 sql_help.c:3447 -#: sql_help.c:3536 sql_help.c:3564 sql_help.c:4475 sql_help.c:4482 -#: sql_help.c:4488 sql_help.c:4499 sql_help.c:4502 sql_help.c:4505 +#: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:344 sql_help.c:357 +#: sql_help.c:361 sql_help.c:377 sql_help.c:380 sql_help.c:383 sql_help.c:524 +#: sql_help.c:529 sql_help.c:534 sql_help.c:539 sql_help.c:544 sql_help.c:860 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 +#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 +#: sql_help.c:1875 sql_help.c:1892 sql_help.c:1898 sql_help.c:1922 +#: sql_help.c:1925 sql_help.c:1928 sql_help.c:2409 sql_help.c:2618 +#: sql_help.c:3363 sql_help.c:3366 sql_help.c:3369 sql_help.c:3460 +#: sql_help.c:3549 sql_help.c:3577 sql_help.c:4500 sql_help.c:4507 +#: sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 sql_help.c:4530 msgid "argtype" msgstr "тип_аргументу" -#: sql_help.c:114 sql_help.c:397 sql_help.c:474 sql_help.c:486 sql_help.c:949 -#: sql_help.c:1100 sql_help.c:1504 sql_help.c:1633 sql_help.c:1665 -#: sql_help.c:1718 sql_help.c:1782 sql_help.c:1969 sql_help.c:1976 -#: sql_help.c:2284 sql_help.c:2334 sql_help.c:2341 sql_help.c:2350 -#: sql_help.c:2439 sql_help.c:2666 sql_help.c:2759 sql_help.c:3047 -#: sql_help.c:3232 sql_help.c:3254 sql_help.c:3394 sql_help.c:3750 -#: sql_help.c:3958 sql_help.c:4193 sql_help.c:4195 sql_help.c:4972 +#: sql_help.c:114 sql_help.c:399 sql_help.c:476 sql_help.c:488 sql_help.c:957 +#: sql_help.c:1108 sql_help.c:1518 sql_help.c:1647 sql_help.c:1679 +#: sql_help.c:1731 sql_help.c:1790 sql_help.c:1979 sql_help.c:1986 +#: sql_help.c:2298 sql_help.c:2348 sql_help.c:2355 sql_help.c:2364 +#: sql_help.c:2453 sql_help.c:2678 sql_help.c:2769 sql_help.c:3060 +#: sql_help.c:3245 sql_help.c:3267 sql_help.c:3407 sql_help.c:3764 +#: sql_help.c:3972 sql_help.c:4218 sql_help.c:4220 sql_help.c:4998 msgid "option" msgstr "параметр" -#: sql_help.c:115 sql_help.c:950 sql_help.c:1634 sql_help.c:2440 -#: sql_help.c:2667 sql_help.c:3233 sql_help.c:3395 +#: sql_help.c:115 sql_help.c:958 sql_help.c:1648 sql_help.c:2454 +#: sql_help.c:2679 sql_help.c:3246 sql_help.c:3408 msgid "where option can be:" msgstr "де параметр може бути:" -#: sql_help.c:116 sql_help.c:2216 +#: sql_help.c:116 sql_help.c:2230 msgid "allowconn" msgstr "дозвол_підкл" -#: sql_help.c:117 sql_help.c:951 sql_help.c:1635 sql_help.c:2217 -#: sql_help.c:2441 sql_help.c:2668 sql_help.c:3234 +#: sql_help.c:117 sql_help.c:959 sql_help.c:1649 sql_help.c:2231 +#: sql_help.c:2455 sql_help.c:2680 sql_help.c:3247 msgid "connlimit" msgstr "ліміт_підключень" -#: sql_help.c:118 sql_help.c:2218 +#: sql_help.c:118 sql_help.c:2232 msgid "istemplate" msgstr "чи_шаблон" -#: sql_help.c:124 sql_help.c:611 sql_help.c:679 sql_help.c:693 sql_help.c:1321 -#: sql_help.c:1373 sql_help.c:4199 +#: sql_help.c:124 sql_help.c:613 sql_help.c:681 sql_help.c:695 sql_help.c:1330 +#: sql_help.c:1384 sql_help.c:4224 msgid "new_tablespace" msgstr "новий_табл_простір" -#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:548 sql_help.c:550 -#: sql_help.c:551 sql_help.c:875 sql_help.c:877 sql_help.c:878 sql_help.c:958 -#: sql_help.c:962 sql_help.c:965 sql_help.c:1027 sql_help.c:1029 -#: sql_help.c:1030 sql_help.c:1180 sql_help.c:1182 sql_help.c:1642 -#: sql_help.c:1646 sql_help.c:1649 sql_help.c:2405 sql_help.c:2608 -#: sql_help.c:3926 sql_help.c:4217 sql_help.c:4378 sql_help.c:4687 +#: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:550 sql_help.c:552 +#: sql_help.c:553 sql_help.c:883 sql_help.c:885 sql_help.c:886 sql_help.c:966 +#: sql_help.c:970 sql_help.c:973 sql_help.c:1035 sql_help.c:1037 +#: sql_help.c:1038 sql_help.c:1188 sql_help.c:1190 sql_help.c:1656 +#: sql_help.c:1660 sql_help.c:1663 sql_help.c:2419 sql_help.c:2622 +#: sql_help.c:3940 sql_help.c:4242 sql_help.c:4403 sql_help.c:4713 msgid "configuration_parameter" msgstr "параметр_конфігурації" -#: sql_help.c:128 sql_help.c:398 sql_help.c:469 sql_help.c:475 sql_help.c:487 -#: sql_help.c:549 sql_help.c:603 sql_help.c:685 sql_help.c:695 sql_help.c:876 -#: sql_help.c:904 sql_help.c:959 sql_help.c:1028 sql_help.c:1101 -#: sql_help.c:1146 sql_help.c:1150 sql_help.c:1154 sql_help.c:1157 -#: sql_help.c:1162 sql_help.c:1165 sql_help.c:1181 sql_help.c:1352 -#: sql_help.c:1375 sql_help.c:1423 sql_help.c:1448 sql_help.c:1505 -#: sql_help.c:1589 sql_help.c:1643 sql_help.c:1666 sql_help.c:2285 -#: sql_help.c:2335 sql_help.c:2342 sql_help.c:2351 sql_help.c:2406 -#: sql_help.c:2407 sql_help.c:2471 sql_help.c:2474 sql_help.c:2508 -#: sql_help.c:2609 sql_help.c:2610 sql_help.c:2633 sql_help.c:2760 -#: sql_help.c:2799 sql_help.c:2909 sql_help.c:2922 sql_help.c:2936 -#: sql_help.c:2977 sql_help.c:3004 sql_help.c:3021 sql_help.c:3048 -#: sql_help.c:3255 sql_help.c:3959 sql_help.c:4688 sql_help.c:4689 -#: sql_help.c:4690 sql_help.c:4691 +#: sql_help.c:128 sql_help.c:400 sql_help.c:471 sql_help.c:477 sql_help.c:489 +#: sql_help.c:551 sql_help.c:605 sql_help.c:687 sql_help.c:697 sql_help.c:884 +#: sql_help.c:912 sql_help.c:967 sql_help.c:1036 sql_help.c:1109 +#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:1165 +#: sql_help.c:1170 sql_help.c:1173 sql_help.c:1189 sql_help.c:1363 +#: sql_help.c:1386 sql_help.c:1434 sql_help.c:1442 sql_help.c:1462 +#: sql_help.c:1519 sql_help.c:1603 sql_help.c:1657 sql_help.c:1680 +#: sql_help.c:2299 sql_help.c:2349 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2420 sql_help.c:2421 sql_help.c:2485 sql_help.c:2488 +#: sql_help.c:2522 sql_help.c:2623 sql_help.c:2624 sql_help.c:2647 +#: sql_help.c:2770 sql_help.c:2809 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:2946 sql_help.c:2987 sql_help.c:2995 sql_help.c:3017 +#: sql_help.c:3034 sql_help.c:3061 sql_help.c:3268 sql_help.c:3973 +#: sql_help.c:4714 sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 msgid "value" msgstr "значення" -#: sql_help.c:200 +#: sql_help.c:202 msgid "target_role" msgstr "цільова_роль" -#: sql_help.c:201 sql_help.c:913 sql_help.c:2269 sql_help.c:2638 -#: sql_help.c:2715 sql_help.c:2720 sql_help.c:3889 sql_help.c:3898 -#: sql_help.c:3917 sql_help.c:3929 sql_help.c:4341 sql_help.c:4350 -#: sql_help.c:4369 sql_help.c:4381 +#: sql_help.c:203 sql_help.c:921 sql_help.c:2283 sql_help.c:2652 +#: sql_help.c:2725 sql_help.c:2730 sql_help.c:3903 sql_help.c:3912 +#: sql_help.c:3931 sql_help.c:3943 sql_help.c:4366 sql_help.c:4375 +#: sql_help.c:4394 sql_help.c:4406 msgid "schema_name" msgstr "ім'я_схеми" -#: sql_help.c:202 +#: sql_help.c:204 msgid "abbreviated_grant_or_revoke" msgstr "скорочено_GRANT_або_REVOKE" -#: sql_help.c:203 +#: sql_help.c:205 msgid "where abbreviated_grant_or_revoke is one of:" msgstr "де скорочено_GRANT_або_REVOKE є одним з:" -#: 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:211 sql_help.c:212 sql_help.c:213 -#: sql_help.c:574 sql_help.c:610 sql_help.c:678 sql_help.c:822 sql_help.c:969 -#: sql_help.c:1320 sql_help.c:1653 sql_help.c:2444 sql_help.c:2445 -#: sql_help.c:2446 sql_help.c:2447 sql_help.c:2448 sql_help.c:2582 -#: sql_help.c:2671 sql_help.c:2672 sql_help.c:2673 sql_help.c:2674 -#: sql_help.c:2675 sql_help.c:3237 sql_help.c:3238 sql_help.c:3239 -#: sql_help.c:3240 sql_help.c:3241 sql_help.c:3938 sql_help.c:3942 -#: sql_help.c:4390 sql_help.c:4394 sql_help.c:4709 +#: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 +#: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 +#: sql_help.c:576 sql_help.c:612 sql_help.c:680 sql_help.c:830 sql_help.c:977 +#: sql_help.c:1329 sql_help.c:1667 sql_help.c:2458 sql_help.c:2459 +#: sql_help.c:2460 sql_help.c:2461 sql_help.c:2462 sql_help.c:2596 +#: sql_help.c:2683 sql_help.c:2684 sql_help.c:2685 sql_help.c:3250 +#: sql_help.c:3251 sql_help.c:3252 sql_help.c:3253 sql_help.c:3254 +#: sql_help.c:3952 sql_help.c:3956 sql_help.c:4415 sql_help.c:4419 +#: sql_help.c:4735 msgid "role_name" msgstr "ім'я_ролі" -#: sql_help.c:239 sql_help.c:462 sql_help.c:912 sql_help.c:1336 sql_help.c:1338 -#: sql_help.c:1390 sql_help.c:1402 sql_help.c:1427 sql_help.c:1683 -#: sql_help.c:2238 sql_help.c:2242 sql_help.c:2354 sql_help.c:2359 -#: sql_help.c:2467 sql_help.c:2637 sql_help.c:2776 sql_help.c:2781 -#: sql_help.c:2783 sql_help.c:2904 sql_help.c:2917 sql_help.c:2931 -#: sql_help.c:2940 sql_help.c:2952 sql_help.c:2981 sql_help.c:3990 -#: sql_help.c:4005 sql_help.c:4007 sql_help.c:4094 sql_help.c:4097 -#: sql_help.c:4099 sql_help.c:4560 sql_help.c:4561 sql_help.c:4570 -#: sql_help.c:4617 sql_help.c:4618 sql_help.c:4619 sql_help.c:4620 -#: sql_help.c:4621 sql_help.c:4622 sql_help.c:4662 sql_help.c:4663 -#: sql_help.c:4668 sql_help.c:4673 sql_help.c:4817 sql_help.c:4818 -#: sql_help.c:4827 sql_help.c:4874 sql_help.c:4875 sql_help.c:4876 -#: sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 sql_help.c:4933 -#: sql_help.c:4935 sql_help.c:5003 sql_help.c:5063 sql_help.c:5064 -#: sql_help.c:5073 sql_help.c:5120 sql_help.c:5121 sql_help.c:5122 -#: sql_help.c:5123 sql_help.c:5124 sql_help.c:5125 +#: sql_help.c:241 sql_help.c:464 sql_help.c:920 sql_help.c:1345 sql_help.c:1347 +#: sql_help.c:1351 sql_help.c:1401 sql_help.c:1413 sql_help.c:1438 +#: sql_help.c:1697 sql_help.c:2252 sql_help.c:2256 sql_help.c:2368 +#: sql_help.c:2373 sql_help.c:2481 sql_help.c:2651 sql_help.c:2786 +#: sql_help.c:2791 sql_help.c:2793 sql_help.c:2914 sql_help.c:2927 +#: sql_help.c:2941 sql_help.c:2950 sql_help.c:2962 sql_help.c:2991 +#: sql_help.c:4004 sql_help.c:4019 sql_help.c:4021 sql_help.c:4117 +#: sql_help.c:4120 sql_help.c:4122 sql_help.c:4585 sql_help.c:4586 +#: sql_help.c:4595 sql_help.c:4642 sql_help.c:4643 sql_help.c:4644 +#: sql_help.c:4645 sql_help.c:4646 sql_help.c:4647 sql_help.c:4688 +#: sql_help.c:4689 sql_help.c:4694 sql_help.c:4699 sql_help.c:4843 +#: sql_help.c:4844 sql_help.c:4853 sql_help.c:4900 sql_help.c:4901 +#: sql_help.c:4902 sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5028 sql_help.c:5088 +#: sql_help.c:5089 sql_help.c:5098 sql_help.c:5145 sql_help.c:5146 +#: sql_help.c:5147 sql_help.c:5148 sql_help.c:5149 sql_help.c:5150 msgid "expression" msgstr "вираз" -#: sql_help.c:242 +#: sql_help.c:244 sql_help.c:2253 msgid "domain_constraint" msgstr "обмеження_домену" -#: sql_help.c:244 sql_help.c:246 sql_help.c:249 sql_help.c:477 sql_help.c:478 -#: sql_help.c:1313 sql_help.c:1360 sql_help.c:1361 sql_help.c:1362 -#: sql_help.c:1389 sql_help.c:1401 sql_help.c:1418 sql_help.c:1853 -#: sql_help.c:1855 sql_help.c:2241 sql_help.c:2353 sql_help.c:2358 -#: sql_help.c:2939 sql_help.c:2951 sql_help.c:4002 +#: sql_help.c:246 sql_help.c:248 sql_help.c:251 sql_help.c:479 sql_help.c:480 +#: sql_help.c:1322 sql_help.c:1371 sql_help.c:1372 sql_help.c:1373 +#: sql_help.c:1400 sql_help.c:1412 sql_help.c:1429 sql_help.c:1861 +#: sql_help.c:1863 sql_help.c:2255 sql_help.c:2367 sql_help.c:2372 +#: sql_help.c:2949 sql_help.c:2961 sql_help.c:4016 msgid "constraint_name" msgstr "ім'я_обмеження" -#: sql_help.c:247 sql_help.c:1314 +#: sql_help.c:249 sql_help.c:1323 msgid "new_constraint_name" msgstr "ім'я_нового_обмеження" -#: sql_help.c:320 sql_help.c:1099 +#: sql_help.c:322 sql_help.c:1107 msgid "new_version" msgstr "нова_версія" -#: sql_help.c:324 sql_help.c:326 +#: sql_help.c:326 sql_help.c:328 msgid "member_object" msgstr "елемент_об'єкт" -#: sql_help.c:327 +#: sql_help.c:329 msgid "where member_object is:" msgstr "де елемент_об'єкт є:" -#: sql_help.c:328 sql_help.c:333 sql_help.c:334 sql_help.c:335 sql_help.c:336 -#: sql_help.c:337 sql_help.c:338 sql_help.c:343 sql_help.c:347 sql_help.c:349 -#: sql_help.c:351 sql_help.c:360 sql_help.c:361 sql_help.c:362 sql_help.c:363 -#: sql_help.c:364 sql_help.c:365 sql_help.c:366 sql_help.c:367 sql_help.c:370 -#: sql_help.c:371 sql_help.c:1845 sql_help.c:1850 sql_help.c:1857 -#: sql_help.c:1858 sql_help.c:1859 sql_help.c:1860 sql_help.c:1861 -#: sql_help.c:1862 sql_help.c:1863 sql_help.c:1868 sql_help.c:1870 -#: sql_help.c:1874 sql_help.c:1876 sql_help.c:1880 sql_help.c:1885 -#: sql_help.c:1886 sql_help.c:1893 sql_help.c:1894 sql_help.c:1895 -#: sql_help.c:1896 sql_help.c:1897 sql_help.c:1898 sql_help.c:1899 -#: sql_help.c:1900 sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 -#: sql_help.c:1908 sql_help.c:1909 sql_help.c:4463 sql_help.c:4468 -#: sql_help.c:4469 sql_help.c:4470 sql_help.c:4471 sql_help.c:4477 -#: sql_help.c:4478 sql_help.c:4483 sql_help.c:4484 sql_help.c:4489 -#: sql_help.c:4490 sql_help.c:4491 sql_help.c:4492 sql_help.c:4493 -#: sql_help.c:4494 +#: sql_help.c:330 sql_help.c:335 sql_help.c:336 sql_help.c:337 sql_help.c:338 +#: sql_help.c:339 sql_help.c:340 sql_help.c:345 sql_help.c:349 sql_help.c:351 +#: sql_help.c:353 sql_help.c:362 sql_help.c:363 sql_help.c:364 sql_help.c:365 +#: sql_help.c:366 sql_help.c:367 sql_help.c:368 sql_help.c:369 sql_help.c:372 +#: sql_help.c:373 sql_help.c:1853 sql_help.c:1858 sql_help.c:1865 +#: sql_help.c:1866 sql_help.c:1867 sql_help.c:1868 sql_help.c:1869 +#: sql_help.c:1870 sql_help.c:1871 sql_help.c:1876 sql_help.c:1878 +#: sql_help.c:1882 sql_help.c:1884 sql_help.c:1888 sql_help.c:1893 +#: sql_help.c:1894 sql_help.c:1901 sql_help.c:1902 sql_help.c:1903 +#: sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 sql_help.c:1907 +#: sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 sql_help.c:1911 +#: sql_help.c:1916 sql_help.c:1917 sql_help.c:4488 sql_help.c:4493 +#: sql_help.c:4494 sql_help.c:4495 sql_help.c:4496 sql_help.c:4502 +#: sql_help.c:4503 sql_help.c:4508 sql_help.c:4509 sql_help.c:4514 +#: sql_help.c:4515 sql_help.c:4516 sql_help.c:4517 sql_help.c:4518 +#: sql_help.c:4519 msgid "object_name" msgstr "ім'я_об'єкту" -#: sql_help.c:329 sql_help.c:1846 sql_help.c:4466 +#: sql_help.c:331 sql_help.c:1854 sql_help.c:4491 msgid "aggregate_name" msgstr "ім'я_агр_функції" -#: sql_help.c:331 sql_help.c:1848 sql_help.c:2134 sql_help.c:2138 -#: sql_help.c:2140 sql_help.c:3364 +#: sql_help.c:333 sql_help.c:1856 sql_help.c:2146 sql_help.c:2150 +#: sql_help.c:2152 sql_help.c:3377 msgid "source_type" msgstr "початковий_тип" -#: sql_help.c:332 sql_help.c:1849 sql_help.c:2135 sql_help.c:2139 -#: sql_help.c:2141 sql_help.c:3365 +#: sql_help.c:334 sql_help.c:1857 sql_help.c:2147 sql_help.c:2151 +#: sql_help.c:2153 sql_help.c:3378 msgid "target_type" msgstr "тип_цілі" -#: sql_help.c:339 sql_help.c:786 sql_help.c:1864 sql_help.c:2136 -#: sql_help.c:2179 sql_help.c:2257 sql_help.c:2525 sql_help.c:2556 -#: sql_help.c:3124 sql_help.c:4365 sql_help.c:4472 sql_help.c:4589 -#: sql_help.c:4593 sql_help.c:4597 sql_help.c:4600 sql_help.c:4846 -#: sql_help.c:4850 sql_help.c:4854 sql_help.c:4857 sql_help.c:5092 -#: sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:341 sql_help.c:794 sql_help.c:1872 sql_help.c:2148 +#: sql_help.c:2191 sql_help.c:2271 sql_help.c:2539 sql_help.c:2570 +#: sql_help.c:3137 sql_help.c:4390 sql_help.c:4497 sql_help.c:4614 +#: sql_help.c:4618 sql_help.c:4622 sql_help.c:4625 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4880 sql_help.c:4883 sql_help.c:5117 +#: sql_help.c:5121 sql_help.c:5125 sql_help.c:5128 msgid "function_name" msgstr "ім'я_функції" -#: sql_help.c:344 sql_help.c:779 sql_help.c:1871 sql_help.c:2549 +#: sql_help.c:346 sql_help.c:787 sql_help.c:1879 sql_help.c:2563 msgid "operator_name" msgstr "ім'я_оператора" -#: sql_help.c:345 sql_help.c:715 sql_help.c:719 sql_help.c:723 sql_help.c:1872 -#: sql_help.c:2526 sql_help.c:3488 +#: sql_help.c:347 sql_help.c:721 sql_help.c:725 sql_help.c:729 sql_help.c:1880 +#: sql_help.c:2540 sql_help.c:3501 msgid "left_type" msgstr "тип_ліворуч" -#: sql_help.c:346 sql_help.c:716 sql_help.c:720 sql_help.c:724 sql_help.c:1873 -#: sql_help.c:2527 sql_help.c:3489 +#: sql_help.c:348 sql_help.c:722 sql_help.c:726 sql_help.c:730 sql_help.c:1881 +#: sql_help.c:2541 sql_help.c:3502 msgid "right_type" msgstr "тип_праворуч" -#: sql_help.c:348 sql_help.c:350 sql_help.c:742 sql_help.c:745 sql_help.c:748 -#: sql_help.c:777 sql_help.c:789 sql_help.c:797 sql_help.c:800 sql_help.c:803 -#: sql_help.c:1407 sql_help.c:1875 sql_help.c:1877 sql_help.c:2546 -#: sql_help.c:2567 sql_help.c:2957 sql_help.c:3498 sql_help.c:3507 +#: sql_help.c:350 sql_help.c:352 sql_help.c:750 sql_help.c:753 sql_help.c:756 +#: sql_help.c:785 sql_help.c:797 sql_help.c:805 sql_help.c:808 sql_help.c:811 +#: sql_help.c:1418 sql_help.c:1883 sql_help.c:1885 sql_help.c:2560 +#: sql_help.c:2581 sql_help.c:2967 sql_help.c:3511 sql_help.c:3520 msgid "index_method" msgstr "метод_індексу" -#: sql_help.c:352 sql_help.c:1881 sql_help.c:4479 +#: sql_help.c:354 sql_help.c:1889 sql_help.c:4504 msgid "procedure_name" msgstr "назва_процедури" -#: sql_help.c:356 sql_help.c:1887 sql_help.c:3913 sql_help.c:4485 +#: sql_help.c:358 sql_help.c:1895 sql_help.c:3927 sql_help.c:4510 msgid "routine_name" msgstr "ім'я_підпрограми" -#: sql_help.c:368 sql_help.c:1379 sql_help.c:1904 sql_help.c:2401 -#: sql_help.c:2607 sql_help.c:2912 sql_help.c:3091 sql_help.c:3669 -#: sql_help.c:3935 sql_help.c:4387 +#: sql_help.c:370 sql_help.c:1390 sql_help.c:1912 sql_help.c:2415 +#: sql_help.c:2621 sql_help.c:2922 sql_help.c:3104 sql_help.c:3682 +#: sql_help.c:3949 sql_help.c:4412 msgid "type_name" msgstr "назва_типу" -#: sql_help.c:369 sql_help.c:1905 sql_help.c:2400 sql_help.c:2606 -#: sql_help.c:3092 sql_help.c:3322 sql_help.c:3670 sql_help.c:3920 -#: sql_help.c:4372 +#: sql_help.c:371 sql_help.c:1913 sql_help.c:2414 sql_help.c:2620 +#: sql_help.c:3105 sql_help.c:3335 sql_help.c:3683 sql_help.c:3934 +#: sql_help.c:4397 msgid "lang_name" msgstr "назва_мови" -#: sql_help.c:372 +#: sql_help.c:374 msgid "and aggregate_signature is:" msgstr "і сигнатура_агр_функції:" -#: sql_help.c:395 sql_help.c:2001 sql_help.c:2282 +#: sql_help.c:397 sql_help.c:2013 sql_help.c:2296 msgid "handler_function" msgstr "функція_обробник" -#: sql_help.c:396 sql_help.c:2283 +#: sql_help.c:398 sql_help.c:2297 msgid "validator_function" msgstr "функція_перевірки" -#: sql_help.c:444 sql_help.c:523 sql_help.c:667 sql_help.c:853 sql_help.c:1003 -#: sql_help.c:1308 sql_help.c:1580 +#: sql_help.c:446 sql_help.c:525 sql_help.c:669 sql_help.c:861 sql_help.c:1011 +#: sql_help.c:1317 sql_help.c:1594 msgid "action" msgstr "дія" -#: sql_help.c:446 sql_help.c:453 sql_help.c:457 sql_help.c:458 sql_help.c:461 -#: sql_help.c:463 sql_help.c:464 sql_help.c:465 sql_help.c:467 sql_help.c:470 -#: sql_help.c:472 sql_help.c:473 sql_help.c:671 sql_help.c:681 sql_help.c:683 -#: sql_help.c:686 sql_help.c:688 sql_help.c:689 sql_help.c:911 sql_help.c:1080 -#: sql_help.c:1310 sql_help.c:1328 sql_help.c:1332 sql_help.c:1333 -#: sql_help.c:1337 sql_help.c:1339 sql_help.c:1340 sql_help.c:1341 -#: sql_help.c:1342 sql_help.c:1344 sql_help.c:1347 sql_help.c:1348 -#: sql_help.c:1350 sql_help.c:1353 sql_help.c:1355 sql_help.c:1356 -#: sql_help.c:1403 sql_help.c:1405 sql_help.c:1412 sql_help.c:1421 -#: sql_help.c:1426 sql_help.c:1430 sql_help.c:1431 sql_help.c:1682 -#: sql_help.c:1685 sql_help.c:1689 sql_help.c:1727 sql_help.c:1852 -#: sql_help.c:1966 sql_help.c:1972 sql_help.c:1986 sql_help.c:1987 -#: sql_help.c:1988 sql_help.c:2332 sql_help.c:2345 sql_help.c:2398 -#: sql_help.c:2466 sql_help.c:2472 sql_help.c:2505 sql_help.c:2636 -#: sql_help.c:2745 sql_help.c:2780 sql_help.c:2782 sql_help.c:2894 -#: sql_help.c:2903 sql_help.c:2913 sql_help.c:2916 sql_help.c:2926 -#: sql_help.c:2930 sql_help.c:2953 sql_help.c:2955 sql_help.c:2962 -#: sql_help.c:2975 sql_help.c:2980 sql_help.c:2984 sql_help.c:2985 -#: sql_help.c:3001 sql_help.c:3127 sql_help.c:3267 sql_help.c:3892 -#: sql_help.c:3893 sql_help.c:3989 sql_help.c:4004 sql_help.c:4006 -#: sql_help.c:4008 sql_help.c:4093 sql_help.c:4096 sql_help.c:4098 -#: sql_help.c:4344 sql_help.c:4345 sql_help.c:4465 sql_help.c:4626 -#: sql_help.c:4632 sql_help.c:4634 sql_help.c:4883 sql_help.c:4889 -#: sql_help.c:4891 sql_help.c:4932 sql_help.c:4934 sql_help.c:4936 -#: sql_help.c:4991 sql_help.c:5129 sql_help.c:5135 sql_help.c:5137 +#: sql_help.c:448 sql_help.c:455 sql_help.c:459 sql_help.c:460 sql_help.c:463 +#: sql_help.c:465 sql_help.c:466 sql_help.c:467 sql_help.c:469 sql_help.c:472 +#: sql_help.c:474 sql_help.c:475 sql_help.c:673 sql_help.c:683 sql_help.c:685 +#: sql_help.c:688 sql_help.c:690 sql_help.c:691 sql_help.c:919 sql_help.c:1088 +#: sql_help.c:1319 sql_help.c:1337 sql_help.c:1341 sql_help.c:1342 +#: sql_help.c:1346 sql_help.c:1348 sql_help.c:1349 sql_help.c:1350 +#: sql_help.c:1352 sql_help.c:1353 sql_help.c:1355 sql_help.c:1358 +#: sql_help.c:1359 sql_help.c:1361 sql_help.c:1364 sql_help.c:1366 +#: sql_help.c:1367 sql_help.c:1414 sql_help.c:1416 sql_help.c:1423 +#: sql_help.c:1432 sql_help.c:1437 sql_help.c:1444 sql_help.c:1445 +#: sql_help.c:1696 sql_help.c:1699 sql_help.c:1703 sql_help.c:1739 +#: sql_help.c:1860 sql_help.c:1976 sql_help.c:1982 sql_help.c:1996 +#: sql_help.c:1997 sql_help.c:1998 sql_help.c:2346 sql_help.c:2359 +#: sql_help.c:2412 sql_help.c:2480 sql_help.c:2486 sql_help.c:2519 +#: sql_help.c:2650 sql_help.c:2755 sql_help.c:2790 sql_help.c:2792 +#: sql_help.c:2904 sql_help.c:2913 sql_help.c:2923 sql_help.c:2926 +#: sql_help.c:2936 sql_help.c:2940 sql_help.c:2963 sql_help.c:2965 +#: sql_help.c:2972 sql_help.c:2985 sql_help.c:2990 sql_help.c:2997 +#: sql_help.c:2998 sql_help.c:3014 sql_help.c:3140 sql_help.c:3280 +#: sql_help.c:3906 sql_help.c:3907 sql_help.c:4003 sql_help.c:4018 +#: sql_help.c:4020 sql_help.c:4022 sql_help.c:4116 sql_help.c:4119 +#: sql_help.c:4121 sql_help.c:4123 sql_help.c:4369 sql_help.c:4370 +#: sql_help.c:4490 sql_help.c:4651 sql_help.c:4658 sql_help.c:4660 +#: sql_help.c:4909 sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 +#: sql_help.c:4961 sql_help.c:4963 sql_help.c:5016 sql_help.c:5154 +#: sql_help.c:5161 sql_help.c:5163 msgid "column_name" msgstr "назва_стовпця" -#: sql_help.c:447 sql_help.c:672 sql_help.c:1311 sql_help.c:1690 +#: sql_help.c:449 sql_help.c:674 sql_help.c:1320 sql_help.c:1704 msgid "new_column_name" msgstr "нова_назва_стовпця" -#: sql_help.c:452 sql_help.c:544 sql_help.c:680 sql_help.c:874 sql_help.c:1024 -#: sql_help.c:1327 sql_help.c:1590 +#: sql_help.c:454 sql_help.c:546 sql_help.c:682 sql_help.c:882 sql_help.c:1032 +#: sql_help.c:1336 sql_help.c:1604 msgid "where action is one of:" msgstr "де допустима дія:" -#: sql_help.c:454 sql_help.c:459 sql_help.c:1072 sql_help.c:1329 -#: sql_help.c:1334 sql_help.c:1592 sql_help.c:1596 sql_help.c:2236 -#: sql_help.c:2333 sql_help.c:2545 sql_help.c:2738 sql_help.c:2895 -#: sql_help.c:3174 sql_help.c:4150 +#: sql_help.c:456 sql_help.c:461 sql_help.c:1080 sql_help.c:1338 +#: sql_help.c:1343 sql_help.c:1606 sql_help.c:1610 sql_help.c:2250 +#: sql_help.c:2347 sql_help.c:2559 sql_help.c:2748 sql_help.c:2905 +#: sql_help.c:3187 sql_help.c:4175 msgid "data_type" msgstr "тип_даних" -#: sql_help.c:455 sql_help.c:460 sql_help.c:1330 sql_help.c:1335 -#: sql_help.c:1593 sql_help.c:1597 sql_help.c:2237 sql_help.c:2336 -#: sql_help.c:2468 sql_help.c:2897 sql_help.c:2905 sql_help.c:2918 -#: sql_help.c:2932 sql_help.c:3175 sql_help.c:3181 sql_help.c:3999 +#: sql_help.c:457 sql_help.c:462 sql_help.c:1339 sql_help.c:1344 +#: sql_help.c:1439 sql_help.c:1607 sql_help.c:1611 sql_help.c:2251 +#: sql_help.c:2350 sql_help.c:2482 sql_help.c:2907 sql_help.c:2915 +#: sql_help.c:2928 sql_help.c:2942 sql_help.c:2992 sql_help.c:3188 +#: sql_help.c:3194 sql_help.c:4013 msgid "collation" msgstr "правила_сортування" -#: sql_help.c:456 sql_help.c:1331 sql_help.c:2337 sql_help.c:2346 -#: sql_help.c:2898 sql_help.c:2914 sql_help.c:2927 +#: sql_help.c:458 sql_help.c:1340 sql_help.c:2351 sql_help.c:2360 +#: sql_help.c:2908 sql_help.c:2924 sql_help.c:2937 msgid "column_constraint" msgstr "обмеження_стовпця" -#: sql_help.c:466 sql_help.c:608 sql_help.c:682 sql_help.c:1349 sql_help.c:4985 +#: sql_help.c:468 sql_help.c:610 sql_help.c:684 sql_help.c:1360 sql_help.c:5010 msgid "integer" msgstr "ціле" -#: sql_help.c:468 sql_help.c:471 sql_help.c:684 sql_help.c:687 sql_help.c:1351 -#: sql_help.c:1354 +#: sql_help.c:470 sql_help.c:473 sql_help.c:686 sql_help.c:689 sql_help.c:1362 +#: sql_help.c:1365 msgid "attribute_option" msgstr "параметр_атрибуту" -#: sql_help.c:476 sql_help.c:1358 sql_help.c:2338 sql_help.c:2347 -#: sql_help.c:2899 sql_help.c:2915 sql_help.c:2928 +#: sql_help.c:478 sql_help.c:1369 sql_help.c:2352 sql_help.c:2361 +#: sql_help.c:2909 sql_help.c:2925 sql_help.c:2938 msgid "table_constraint" msgstr "обмеження_таблиці" -#: sql_help.c:479 sql_help.c:480 sql_help.c:481 sql_help.c:482 sql_help.c:1363 -#: sql_help.c:1364 sql_help.c:1365 sql_help.c:1366 sql_help.c:1906 +#: sql_help.c:481 sql_help.c:482 sql_help.c:483 sql_help.c:484 sql_help.c:1374 +#: sql_help.c:1375 sql_help.c:1376 sql_help.c:1377 sql_help.c:1914 msgid "trigger_name" msgstr "ім'я_тригеру" -#: sql_help.c:483 sql_help.c:484 sql_help.c:1377 sql_help.c:1378 -#: sql_help.c:2339 sql_help.c:2344 sql_help.c:2902 sql_help.c:2925 +#: sql_help.c:485 sql_help.c:486 sql_help.c:1388 sql_help.c:1389 +#: sql_help.c:2353 sql_help.c:2358 sql_help.c:2912 sql_help.c:2935 msgid "parent_table" msgstr "батьківська_таблиця" -#: sql_help.c:543 sql_help.c:600 sql_help.c:669 sql_help.c:873 sql_help.c:1023 -#: sql_help.c:1549 sql_help.c:2268 +#: sql_help.c:545 sql_help.c:602 sql_help.c:671 sql_help.c:881 sql_help.c:1031 +#: sql_help.c:1563 sql_help.c:2282 msgid "extension_name" msgstr "ім'я_розширення" -#: sql_help.c:545 sql_help.c:1025 sql_help.c:2402 +#: sql_help.c:547 sql_help.c:1033 sql_help.c:2416 msgid "execution_cost" msgstr "вартість_виконання" -#: sql_help.c:546 sql_help.c:1026 sql_help.c:2403 +#: sql_help.c:548 sql_help.c:1034 sql_help.c:2417 msgid "result_rows" msgstr "рядки_результату" -#: sql_help.c:547 sql_help.c:2404 +#: sql_help.c:549 sql_help.c:2418 msgid "support_function" msgstr "функція_підтримки" -#: sql_help.c:569 sql_help.c:571 sql_help.c:948 sql_help.c:956 sql_help.c:960 -#: sql_help.c:963 sql_help.c:966 sql_help.c:1632 sql_help.c:1640 -#: sql_help.c:1644 sql_help.c:1647 sql_help.c:1650 sql_help.c:2716 -#: sql_help.c:2718 sql_help.c:2721 sql_help.c:2722 sql_help.c:3890 -#: sql_help.c:3891 sql_help.c:3895 sql_help.c:3896 sql_help.c:3899 -#: sql_help.c:3900 sql_help.c:3902 sql_help.c:3903 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3918 sql_help.c:3919 sql_help.c:3921 -#: sql_help.c:3922 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:4342 sql_help.c:4343 sql_help.c:4347 -#: sql_help.c:4348 sql_help.c:4351 sql_help.c:4352 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4357 sql_help.c:4358 sql_help.c:4360 -#: sql_help.c:4361 sql_help.c:4363 sql_help.c:4364 sql_help.c:4370 -#: sql_help.c:4371 sql_help.c:4373 sql_help.c:4374 sql_help.c:4376 -#: sql_help.c:4377 sql_help.c:4379 sql_help.c:4380 sql_help.c:4382 -#: sql_help.c:4383 sql_help.c:4385 sql_help.c:4386 sql_help.c:4388 -#: sql_help.c:4389 sql_help.c:4391 sql_help.c:4392 +#: sql_help.c:571 sql_help.c:573 sql_help.c:956 sql_help.c:964 sql_help.c:968 +#: sql_help.c:971 sql_help.c:974 sql_help.c:1646 sql_help.c:1654 +#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:2726 +#: sql_help.c:2728 sql_help.c:2731 sql_help.c:2732 sql_help.c:3904 +#: sql_help.c:3905 sql_help.c:3909 sql_help.c:3910 sql_help.c:3913 +#: sql_help.c:3914 sql_help.c:3916 sql_help.c:3917 sql_help.c:3919 +#: sql_help.c:3920 sql_help.c:3922 sql_help.c:3923 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3932 sql_help.c:3933 sql_help.c:3935 +#: sql_help.c:3936 sql_help.c:3938 sql_help.c:3939 sql_help.c:3941 +#: sql_help.c:3942 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:4367 sql_help.c:4368 sql_help.c:4372 +#: sql_help.c:4373 sql_help.c:4376 sql_help.c:4377 sql_help.c:4379 +#: sql_help.c:4380 sql_help.c:4382 sql_help.c:4383 sql_help.c:4385 +#: sql_help.c:4386 sql_help.c:4388 sql_help.c:4389 sql_help.c:4395 +#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 sql_help.c:4401 +#: sql_help.c:4402 sql_help.c:4404 sql_help.c:4405 sql_help.c:4407 +#: sql_help.c:4408 sql_help.c:4410 sql_help.c:4411 sql_help.c:4413 +#: sql_help.c:4414 sql_help.c:4416 sql_help.c:4417 msgid "role_specification" msgstr "вказання_ролі" -#: sql_help.c:570 sql_help.c:572 sql_help.c:1663 sql_help.c:2204 -#: sql_help.c:2724 sql_help.c:3252 sql_help.c:3703 sql_help.c:4719 +#: sql_help.c:572 sql_help.c:574 sql_help.c:1677 sql_help.c:2217 +#: sql_help.c:2734 sql_help.c:3265 sql_help.c:3716 sql_help.c:4745 msgid "user_name" msgstr "ім'я_користувача" -#: sql_help.c:573 sql_help.c:968 sql_help.c:1652 sql_help.c:2723 -#: sql_help.c:3941 sql_help.c:4393 +#: sql_help.c:575 sql_help.c:976 sql_help.c:1666 sql_help.c:2733 +#: sql_help.c:3955 sql_help.c:4418 msgid "where role_specification can be:" msgstr "де вказання_ролі може бути:" -#: sql_help.c:575 +#: sql_help.c:577 msgid "group_name" msgstr "ім'я_групи" -#: sql_help.c:596 sql_help.c:1424 sql_help.c:2215 sql_help.c:2475 -#: sql_help.c:2509 sql_help.c:2910 sql_help.c:2923 sql_help.c:2937 -#: sql_help.c:2978 sql_help.c:3005 sql_help.c:3017 sql_help.c:3932 -#: sql_help.c:4384 +#: sql_help.c:598 sql_help.c:1435 sql_help.c:2229 sql_help.c:2489 +#: sql_help.c:2523 sql_help.c:2920 sql_help.c:2933 sql_help.c:2947 +#: sql_help.c:2988 sql_help.c:3018 sql_help.c:3030 sql_help.c:3946 +#: sql_help.c:4409 msgid "tablespace_name" msgstr "ім'я_табличного_простору" -#: sql_help.c:598 sql_help.c:691 sql_help.c:1371 sql_help.c:1381 -#: sql_help.c:1419 sql_help.c:1781 sql_help.c:1784 +#: sql_help.c:600 sql_help.c:693 sql_help.c:1382 sql_help.c:1392 +#: sql_help.c:1430 sql_help.c:1792 msgid "index_name" msgstr "назва_індексу" -#: sql_help.c:602 sql_help.c:605 sql_help.c:694 sql_help.c:696 sql_help.c:1374 -#: sql_help.c:1376 sql_help.c:1422 sql_help.c:2473 sql_help.c:2507 -#: sql_help.c:2908 sql_help.c:2921 sql_help.c:2935 sql_help.c:2976 -#: sql_help.c:3003 +#: sql_help.c:604 sql_help.c:607 sql_help.c:696 sql_help.c:698 sql_help.c:1385 +#: sql_help.c:1387 sql_help.c:1433 sql_help.c:2487 sql_help.c:2521 +#: sql_help.c:2918 sql_help.c:2931 sql_help.c:2945 sql_help.c:2986 +#: sql_help.c:3016 msgid "storage_parameter" msgstr "параметр_зберігання" -#: sql_help.c:607 +#: sql_help.c:609 msgid "column_number" msgstr "номер_стовпця" -#: sql_help.c:631 sql_help.c:1869 sql_help.c:4476 +#: sql_help.c:633 sql_help.c:1877 sql_help.c:4501 msgid "large_object_oid" msgstr "oid_великого_об'єкта" -#: sql_help.c:690 sql_help.c:1357 sql_help.c:2896 +#: sql_help.c:692 sql_help.c:1368 sql_help.c:2906 msgid "compression_method" msgstr "compression_method" -#: sql_help.c:692 sql_help.c:1372 +#: sql_help.c:694 sql_help.c:1383 msgid "new_access_method" msgstr "новий_метод_доступа" -#: sql_help.c:725 sql_help.c:2530 +#: sql_help.c:731 sql_help.c:2544 msgid "res_proc" msgstr "res_процедура" -#: sql_help.c:726 sql_help.c:2531 +#: sql_help.c:732 sql_help.c:2545 msgid "join_proc" msgstr "процедура_приєднання" -#: sql_help.c:778 sql_help.c:790 sql_help.c:2548 +#: sql_help.c:733 sql_help.c:2542 +msgid "com_op" +msgstr "комут_оператор" + +#: sql_help.c:734 sql_help.c:2543 +msgid "neg_op" +msgstr "зворотній_оператор" + +#: sql_help.c:786 sql_help.c:798 sql_help.c:2562 msgid "strategy_number" msgstr "номер_стратегії" -#: sql_help.c:780 sql_help.c:781 sql_help.c:784 sql_help.c:785 sql_help.c:791 -#: sql_help.c:792 sql_help.c:794 sql_help.c:795 sql_help.c:2550 sql_help.c:2551 -#: sql_help.c:2554 sql_help.c:2555 +#: sql_help.c:788 sql_help.c:789 sql_help.c:792 sql_help.c:793 sql_help.c:799 +#: sql_help.c:800 sql_help.c:802 sql_help.c:803 sql_help.c:2564 sql_help.c:2565 +#: sql_help.c:2568 sql_help.c:2569 msgid "op_type" msgstr "тип_операції" -#: sql_help.c:782 sql_help.c:2552 +#: sql_help.c:790 sql_help.c:2566 msgid "sort_family_name" msgstr "ім'я_родини_сортування" -#: sql_help.c:783 sql_help.c:793 sql_help.c:2553 +#: sql_help.c:791 sql_help.c:801 sql_help.c:2567 msgid "support_number" msgstr "номер_підтримки" -#: sql_help.c:787 sql_help.c:2137 sql_help.c:2557 sql_help.c:3094 -#: sql_help.c:3096 +#: sql_help.c:795 sql_help.c:2149 sql_help.c:2571 sql_help.c:3107 +#: sql_help.c:3109 msgid "argument_type" msgstr "тип_аргументу" -#: sql_help.c:818 sql_help.c:821 sql_help.c:910 sql_help.c:1039 sql_help.c:1079 -#: sql_help.c:1545 sql_help.c:1548 sql_help.c:1726 sql_help.c:1780 -#: sql_help.c:1783 sql_help.c:1854 sql_help.c:1879 sql_help.c:1892 -#: sql_help.c:1907 sql_help.c:1965 sql_help.c:1971 sql_help.c:2331 -#: sql_help.c:2343 sql_help.c:2464 sql_help.c:2504 sql_help.c:2581 -#: sql_help.c:2635 sql_help.c:2692 sql_help.c:2744 sql_help.c:2777 -#: sql_help.c:2784 sql_help.c:2893 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:3000 sql_help.c:3120 sql_help.c:3301 sql_help.c:3524 -#: sql_help.c:3573 sql_help.c:3679 sql_help.c:3888 sql_help.c:3894 -#: sql_help.c:3955 sql_help.c:3987 sql_help.c:4340 sql_help.c:4346 -#: sql_help.c:4464 sql_help.c:4575 sql_help.c:4577 sql_help.c:4639 -#: sql_help.c:4678 sql_help.c:4832 sql_help.c:4834 sql_help.c:4896 -#: sql_help.c:4930 sql_help.c:4990 sql_help.c:5078 sql_help.c:5080 -#: sql_help.c:5142 +#: sql_help.c:826 sql_help.c:829 sql_help.c:918 sql_help.c:1047 sql_help.c:1087 +#: sql_help.c:1559 sql_help.c:1562 sql_help.c:1738 sql_help.c:1791 +#: sql_help.c:1862 sql_help.c:1887 sql_help.c:1900 sql_help.c:1915 +#: sql_help.c:1975 sql_help.c:1981 sql_help.c:2345 sql_help.c:2357 +#: sql_help.c:2478 sql_help.c:2518 sql_help.c:2595 sql_help.c:2649 +#: sql_help.c:2702 sql_help.c:2754 sql_help.c:2787 sql_help.c:2794 +#: sql_help.c:2903 sql_help.c:2921 sql_help.c:2934 sql_help.c:3013 +#: sql_help.c:3133 sql_help.c:3314 sql_help.c:3537 sql_help.c:3586 +#: sql_help.c:3692 sql_help.c:3902 sql_help.c:3908 sql_help.c:3969 +#: sql_help.c:4001 sql_help.c:4365 sql_help.c:4371 sql_help.c:4489 +#: sql_help.c:4602 sql_help.c:4665 sql_help.c:4704 sql_help.c:4860 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5015 sql_help.c:5105 +#: sql_help.c:5168 msgid "table_name" msgstr "ім'я_таблиці" -#: sql_help.c:823 sql_help.c:2583 +#: sql_help.c:831 sql_help.c:2597 msgid "using_expression" msgstr "вираз_використання" -#: sql_help.c:824 sql_help.c:2584 +#: sql_help.c:832 sql_help.c:2598 msgid "check_expression" msgstr "вираз_перевірки" -#: sql_help.c:897 sql_help.c:899 sql_help.c:901 sql_help.c:2631 +#: sql_help.c:905 sql_help.c:907 sql_help.c:909 sql_help.c:2645 msgid "publication_object" msgstr "об'єкт_публікація" -#: sql_help.c:903 sql_help.c:2632 +#: sql_help.c:911 sql_help.c:2646 msgid "publication_parameter" msgstr "параметр_публікації" -#: sql_help.c:909 sql_help.c:2634 +#: sql_help.c:917 sql_help.c:2648 msgid "where publication_object is one of:" msgstr "де об'єкт_публікація є одним з:" -#: sql_help.c:952 sql_help.c:1636 sql_help.c:2442 sql_help.c:2669 -#: sql_help.c:3235 +#: sql_help.c:960 sql_help.c:1650 sql_help.c:2456 sql_help.c:2681 +#: sql_help.c:3248 msgid "password" msgstr "пароль" -#: sql_help.c:953 sql_help.c:1637 sql_help.c:2443 sql_help.c:2670 -#: sql_help.c:3236 +#: sql_help.c:961 sql_help.c:1651 sql_help.c:2457 sql_help.c:2682 +#: sql_help.c:3249 msgid "timestamp" msgstr "мітка часу" -#: sql_help.c:957 sql_help.c:961 sql_help.c:964 sql_help.c:967 sql_help.c:1641 -#: sql_help.c:1645 sql_help.c:1648 sql_help.c:1651 sql_help.c:3901 -#: sql_help.c:4353 +#: sql_help.c:965 sql_help.c:969 sql_help.c:972 sql_help.c:975 sql_help.c:1655 +#: sql_help.c:1659 sql_help.c:1662 sql_help.c:1665 sql_help.c:3915 +#: sql_help.c:4378 msgid "database_name" msgstr "назва_бази_даних" -#: sql_help.c:1073 sql_help.c:2739 +#: sql_help.c:1081 sql_help.c:2749 msgid "increment" msgstr "інкремент" -#: sql_help.c:1074 sql_help.c:2740 +#: sql_help.c:1082 sql_help.c:2750 msgid "minvalue" msgstr "мін_значення" -#: sql_help.c:1075 sql_help.c:2741 +#: sql_help.c:1083 sql_help.c:2751 msgid "maxvalue" msgstr "макс_значення" -#: sql_help.c:1076 sql_help.c:2742 sql_help.c:4573 sql_help.c:4676 -#: sql_help.c:4830 sql_help.c:5007 sql_help.c:5076 +#: sql_help.c:1084 sql_help.c:2752 sql_help.c:4598 sql_help.c:4702 +#: sql_help.c:4856 sql_help.c:5032 sql_help.c:5101 msgid "start" msgstr "початок" -#: sql_help.c:1077 sql_help.c:1346 +#: sql_help.c:1085 sql_help.c:1357 msgid "restart" msgstr "перезапуск" -#: sql_help.c:1078 sql_help.c:2743 +#: sql_help.c:1086 sql_help.c:2753 msgid "cache" msgstr "кеш" -#: sql_help.c:1123 +#: sql_help.c:1131 msgid "new_target" msgstr "нова_ціль" -#: sql_help.c:1142 sql_help.c:2796 +#: sql_help.c:1150 sql_help.c:2806 msgid "conninfo" msgstr "інформація_підключення" -#: sql_help.c:1144 sql_help.c:1148 sql_help.c:1152 sql_help.c:2797 +#: sql_help.c:1152 sql_help.c:1156 sql_help.c:1160 sql_help.c:2807 msgid "publication_name" msgstr "назва_публікації" -#: sql_help.c:1145 sql_help.c:1149 sql_help.c:1153 +#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 msgid "publication_option" msgstr "publication_option" -#: sql_help.c:1156 +#: sql_help.c:1164 msgid "refresh_option" msgstr "опція_оновлення" -#: sql_help.c:1161 sql_help.c:2798 +#: sql_help.c:1169 sql_help.c:2808 msgid "subscription_parameter" msgstr "параметр_підписки" -#: sql_help.c:1164 +#: sql_help.c:1172 msgid "skip_option" msgstr "опція_пропуска" -#: sql_help.c:1323 sql_help.c:1326 +#: sql_help.c:1332 sql_help.c:1335 msgid "partition_name" msgstr "ім'я_розділу" -#: sql_help.c:1324 sql_help.c:2348 sql_help.c:2929 +#: sql_help.c:1333 sql_help.c:2362 sql_help.c:2939 msgid "partition_bound_spec" msgstr "специфікація_рамок_розділу" -#: sql_help.c:1343 sql_help.c:1393 sql_help.c:2943 +#: sql_help.c:1354 sql_help.c:1404 sql_help.c:2953 msgid "sequence_options" msgstr "опції_послідовності" -#: sql_help.c:1345 +#: sql_help.c:1356 msgid "sequence_option" msgstr "опція_послідовності" -#: sql_help.c:1359 +#: sql_help.c:1370 msgid "table_constraint_using_index" msgstr "індекс_обмеження_таблиці" -#: sql_help.c:1367 sql_help.c:1368 sql_help.c:1369 sql_help.c:1370 +#: sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 sql_help.c:1381 msgid "rewrite_rule_name" msgstr "ім'я_правила_перезапису" -#: sql_help.c:1382 sql_help.c:2360 sql_help.c:2968 +#: sql_help.c:1393 sql_help.c:2374 sql_help.c:2978 msgid "and partition_bound_spec is:" msgstr "і специфікація_рамок_розділу:" -#: sql_help.c:1383 sql_help.c:1384 sql_help.c:1385 sql_help.c:2361 -#: sql_help.c:2362 sql_help.c:2363 sql_help.c:2969 sql_help.c:2970 -#: sql_help.c:2971 +#: sql_help.c:1394 sql_help.c:1395 sql_help.c:1396 sql_help.c:2375 +#: sql_help.c:2376 sql_help.c:2377 sql_help.c:2979 sql_help.c:2980 +#: sql_help.c:2981 msgid "partition_bound_expr" msgstr "код_секції" -#: sql_help.c:1386 sql_help.c:1387 sql_help.c:2364 sql_help.c:2365 -#: sql_help.c:2972 sql_help.c:2973 +#: sql_help.c:1397 sql_help.c:1398 sql_help.c:2378 sql_help.c:2379 +#: sql_help.c:2982 sql_help.c:2983 msgid "numeric_literal" msgstr "числовий_літерал" -#: sql_help.c:1388 +#: sql_help.c:1399 msgid "and column_constraint is:" msgstr "і обмеження_стовпця:" -#: sql_help.c:1391 sql_help.c:2355 sql_help.c:2396 sql_help.c:2605 -#: sql_help.c:2941 +#: sql_help.c:1402 sql_help.c:2369 sql_help.c:2410 sql_help.c:2619 +#: sql_help.c:2951 msgid "default_expr" msgstr "вираз_за_замовчуванням" -#: sql_help.c:1392 sql_help.c:2356 sql_help.c:2942 +#: sql_help.c:1403 sql_help.c:2370 sql_help.c:2952 msgid "generation_expr" msgstr "код_генерації" -#: sql_help.c:1394 sql_help.c:1395 sql_help.c:1404 sql_help.c:1406 -#: sql_help.c:1410 sql_help.c:2944 sql_help.c:2945 sql_help.c:2954 -#: sql_help.c:2956 sql_help.c:2960 +#: sql_help.c:1405 sql_help.c:1406 sql_help.c:1415 sql_help.c:1417 +#: sql_help.c:1421 sql_help.c:2954 sql_help.c:2955 sql_help.c:2964 +#: sql_help.c:2966 sql_help.c:2970 msgid "index_parameters" msgstr "параметри_індексу" -#: sql_help.c:1396 sql_help.c:1413 sql_help.c:2946 sql_help.c:2963 +#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2956 sql_help.c:2973 msgid "reftable" msgstr "залежна_таблиця" -#: sql_help.c:1397 sql_help.c:1414 sql_help.c:2947 sql_help.c:2964 +#: sql_help.c:1408 sql_help.c:1425 sql_help.c:2957 sql_help.c:2974 msgid "refcolumn" msgstr "залежний_стовпець" -#: sql_help.c:1398 sql_help.c:1399 sql_help.c:1415 sql_help.c:1416 -#: sql_help.c:2948 sql_help.c:2949 sql_help.c:2965 sql_help.c:2966 +#: sql_help.c:1409 sql_help.c:1410 sql_help.c:1426 sql_help.c:1427 +#: sql_help.c:2958 sql_help.c:2959 sql_help.c:2975 sql_help.c:2976 msgid "referential_action" msgstr "дія_посилання" -#: sql_help.c:1400 sql_help.c:2357 sql_help.c:2950 +#: sql_help.c:1411 sql_help.c:2371 sql_help.c:2960 msgid "and table_constraint is:" msgstr "і обмеження_таблиці:" -#: sql_help.c:1408 sql_help.c:2958 +#: sql_help.c:1419 sql_help.c:2968 msgid "exclude_element" msgstr "об'єкт_виключення" -#: sql_help.c:1409 sql_help.c:2959 sql_help.c:4571 sql_help.c:4674 -#: sql_help.c:4828 sql_help.c:5005 sql_help.c:5074 +#: sql_help.c:1420 sql_help.c:2969 sql_help.c:4596 sql_help.c:4700 +#: sql_help.c:4854 sql_help.c:5030 sql_help.c:5099 msgid "operator" msgstr "оператор" -#: sql_help.c:1411 sql_help.c:2476 sql_help.c:2961 +#: sql_help.c:1422 sql_help.c:2490 sql_help.c:2971 msgid "predicate" msgstr "предикат" -#: sql_help.c:1417 +#: sql_help.c:1428 msgid "and table_constraint_using_index is:" msgstr "і індекс_обмеження_таблиці:" -#: sql_help.c:1420 sql_help.c:2974 +#: sql_help.c:1431 sql_help.c:2984 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметри_індексу в обмеженнях UNIQUE, PRIMARY KEY, EXCLUDE:" -#: sql_help.c:1425 sql_help.c:2979 +#: sql_help.c:1436 sql_help.c:2989 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "елемент_виключення в обмеженні EXCLUDE:" -#: sql_help.c:1428 sql_help.c:2469 sql_help.c:2906 sql_help.c:2919 -#: sql_help.c:2933 sql_help.c:2982 sql_help.c:4000 +#: sql_help.c:1440 sql_help.c:2483 sql_help.c:2916 sql_help.c:2929 +#: sql_help.c:2943 sql_help.c:2993 sql_help.c:4014 msgid "opclass" msgstr "клас_оператора" -#: sql_help.c:1429 sql_help.c:2983 +#: sql_help.c:1441 sql_help.c:2484 sql_help.c:2994 +msgid "opclass_parameter" +msgstr "opclass_parameter" + +#: sql_help.c:1443 sql_help.c:2996 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "посилання на дію в обмеженні FOREIGN KEY/REFERENCES:" -#: sql_help.c:1447 sql_help.c:1450 sql_help.c:3020 +#: sql_help.c:1461 sql_help.c:1464 sql_help.c:3033 msgid "tablespace_option" msgstr "опція_табличного_простору" -#: sql_help.c:1471 sql_help.c:1474 sql_help.c:1480 sql_help.c:1484 +#: sql_help.c:1485 sql_help.c:1488 sql_help.c:1494 sql_help.c:1498 msgid "token_type" msgstr "тип_токену" -#: sql_help.c:1472 sql_help.c:1475 +#: sql_help.c:1486 sql_help.c:1489 msgid "dictionary_name" msgstr "ім'я_словника" -#: sql_help.c:1477 sql_help.c:1481 +#: sql_help.c:1491 sql_help.c:1495 msgid "old_dictionary" msgstr "старий_словник" -#: sql_help.c:1478 sql_help.c:1482 +#: sql_help.c:1492 sql_help.c:1496 msgid "new_dictionary" msgstr "новий_словник" -#: sql_help.c:1577 sql_help.c:1591 sql_help.c:1594 sql_help.c:1595 -#: sql_help.c:3173 +#: sql_help.c:1591 sql_help.c:1605 sql_help.c:1608 sql_help.c:1609 +#: sql_help.c:3186 msgid "attribute_name" msgstr "ім'я_атрибута" -#: sql_help.c:1578 +#: sql_help.c:1592 msgid "new_attribute_name" msgstr "нове_ім'я_атрибута" -#: sql_help.c:1582 sql_help.c:1586 +#: sql_help.c:1596 sql_help.c:1600 msgid "new_enum_value" msgstr "нове_значення_перерахування" -#: sql_help.c:1583 +#: sql_help.c:1597 msgid "neighbor_enum_value" msgstr "сусіднє_значення_перерахування" -#: sql_help.c:1585 +#: sql_help.c:1599 msgid "existing_enum_value" msgstr "існуюче_значення_перерахування" -#: sql_help.c:1588 +#: sql_help.c:1602 msgid "property" msgstr "властивість" -#: sql_help.c:1664 sql_help.c:2340 sql_help.c:2349 sql_help.c:2755 -#: sql_help.c:3253 sql_help.c:3704 sql_help.c:3910 sql_help.c:3956 -#: sql_help.c:4362 +#: sql_help.c:1678 sql_help.c:2354 sql_help.c:2363 sql_help.c:2765 +#: sql_help.c:3266 sql_help.c:3717 sql_help.c:3924 sql_help.c:3970 +#: sql_help.c:4387 msgid "server_name" msgstr "назва_серверу" -#: sql_help.c:1696 sql_help.c:1699 sql_help.c:3268 +#: sql_help.c:1710 sql_help.c:1713 sql_help.c:3281 msgid "view_option_name" msgstr "ім'я_параметра_представлення" -#: sql_help.c:1697 sql_help.c:3269 +#: sql_help.c:1711 sql_help.c:3282 msgid "view_option_value" msgstr "значення_параметра_представлення" -#: sql_help.c:1719 sql_help.c:1720 sql_help.c:4973 sql_help.c:4974 +#: sql_help.c:1732 sql_help.c:4999 msgid "table_and_columns" msgstr "таблиця_і_стовпці" -#: sql_help.c:1721 sql_help.c:1785 sql_help.c:1977 sql_help.c:3753 -#: sql_help.c:4197 sql_help.c:4975 +#: sql_help.c:1733 sql_help.c:1793 sql_help.c:1987 sql_help.c:3766 +#: sql_help.c:4222 sql_help.c:5000 msgid "where option can be one of:" msgstr "де параметр може бути одним із:" -#: sql_help.c:1722 sql_help.c:1723 sql_help.c:1786 sql_help.c:1979 -#: sql_help.c:1983 sql_help.c:2163 sql_help.c:3754 sql_help.c:3755 -#: sql_help.c:3756 sql_help.c:3757 sql_help.c:3758 sql_help.c:3759 -#: sql_help.c:3760 sql_help.c:3761 sql_help.c:3762 sql_help.c:4198 -#: sql_help.c:4200 sql_help.c:4976 sql_help.c:4977 sql_help.c:4978 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4986 sql_help.c:4987 +#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1794 sql_help.c:1989 +#: sql_help.c:1993 sql_help.c:2175 sql_help.c:3767 sql_help.c:3768 +#: sql_help.c:3769 sql_help.c:3770 sql_help.c:3771 sql_help.c:3772 +#: sql_help.c:3773 sql_help.c:3774 sql_help.c:3775 sql_help.c:3776 +#: sql_help.c:4223 sql_help.c:4225 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 +#: sql_help.c:5007 sql_help.c:5008 sql_help.c:5009 sql_help.c:5011 +#: sql_help.c:5012 msgid "boolean" msgstr "логічний" -#: sql_help.c:1724 sql_help.c:4988 +#: sql_help.c:1736 sql_help.c:5013 msgid "size" msgstr "розмір" -#: sql_help.c:1725 sql_help.c:4989 +#: sql_help.c:1737 sql_help.c:5014 msgid "and table_and_columns is:" msgstr "і таблиця_і_стовпці:" -#: sql_help.c:1741 sql_help.c:4735 sql_help.c:4737 sql_help.c:4761 +#: sql_help.c:1753 sql_help.c:4761 sql_help.c:4763 sql_help.c:4787 msgid "transaction_mode" msgstr "режим_транзакції" -#: sql_help.c:1742 sql_help.c:4738 sql_help.c:4762 +#: sql_help.c:1754 sql_help.c:4764 sql_help.c:4788 msgid "where transaction_mode is one of:" msgstr "де режим_транзакції один з:" -#: sql_help.c:1751 sql_help.c:4581 sql_help.c:4590 sql_help.c:4594 -#: sql_help.c:4598 sql_help.c:4601 sql_help.c:4838 sql_help.c:4847 -#: sql_help.c:4851 sql_help.c:4855 sql_help.c:4858 sql_help.c:5084 -#: sql_help.c:5093 sql_help.c:5097 sql_help.c:5101 sql_help.c:5104 +#: sql_help.c:1763 sql_help.c:4606 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4864 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5109 +#: sql_help.c:5118 sql_help.c:5122 sql_help.c:5126 sql_help.c:5129 msgid "argument" msgstr "аргумент" -#: sql_help.c:1851 +#: sql_help.c:1859 msgid "relation_name" msgstr "назва_відношення" -#: sql_help.c:1856 sql_help.c:3904 sql_help.c:4356 +#: sql_help.c:1864 sql_help.c:3918 sql_help.c:4381 msgid "domain_name" msgstr "назва_домену" -#: sql_help.c:1878 +#: sql_help.c:1886 msgid "policy_name" msgstr "назва_політики" -#: sql_help.c:1891 +#: sql_help.c:1899 msgid "rule_name" msgstr "назва_правила" -#: sql_help.c:1910 sql_help.c:4495 +#: sql_help.c:1918 sql_help.c:4520 msgid "string_literal" msgstr "рядковий_літерал" -#: sql_help.c:1935 sql_help.c:4159 sql_help.c:4409 +#: sql_help.c:1943 sql_help.c:4184 sql_help.c:4434 msgid "transaction_id" msgstr "ідентифікатор_транзакції" -#: sql_help.c:1967 sql_help.c:1974 sql_help.c:4026 +#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4040 msgid "filename" msgstr "ім'я файлу" -#: sql_help.c:1968 sql_help.c:1975 sql_help.c:2694 sql_help.c:2695 -#: sql_help.c:2696 +#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2704 sql_help.c:2705 +#: sql_help.c:2706 msgid "command" msgstr "команда" -#: sql_help.c:1970 sql_help.c:2693 sql_help.c:3123 sql_help.c:3304 -#: sql_help.c:4010 sql_help.c:4087 sql_help.c:4090 sql_help.c:4564 -#: sql_help.c:4566 sql_help.c:4667 sql_help.c:4669 sql_help.c:4821 -#: sql_help.c:4823 sql_help.c:4939 sql_help.c:5067 sql_help.c:5069 +#: sql_help.c:1980 sql_help.c:2703 sql_help.c:3136 sql_help.c:3317 +#: sql_help.c:4024 sql_help.c:4107 sql_help.c:4110 sql_help.c:4113 +#: sql_help.c:4589 sql_help.c:4591 sql_help.c:4693 sql_help.c:4695 +#: sql_help.c:4847 sql_help.c:4849 sql_help.c:4966 sql_help.c:5092 +#: sql_help.c:5094 msgid "condition" msgstr "умова" -#: sql_help.c:1973 sql_help.c:2510 sql_help.c:3006 sql_help.c:3270 -#: sql_help.c:3288 sql_help.c:3991 +#: sql_help.c:1983 sql_help.c:2524 sql_help.c:3019 sql_help.c:3283 +#: sql_help.c:3301 sql_help.c:4005 msgid "query" msgstr "запит" -#: sql_help.c:1978 +#: sql_help.c:1988 msgid "format_name" msgstr "назва_формату" -#: sql_help.c:1980 +#: sql_help.c:1990 msgid "delimiter_character" msgstr "символ_роздільник" -#: sql_help.c:1981 +#: sql_help.c:1991 msgid "null_string" msgstr "представлення_NULL" -#: sql_help.c:1982 +#: sql_help.c:1992 msgid "default_string" msgstr "рядок_за_замовчуванням" -#: sql_help.c:1984 +#: sql_help.c:1994 msgid "quote_character" msgstr "символ_лапок" -#: sql_help.c:1985 +#: sql_help.c:1995 msgid "escape_character" msgstr "символ_екранування" -#: sql_help.c:1989 +#: sql_help.c:1999 +msgid "error_action" +msgstr "error_action" + +#: sql_help.c:2000 msgid "encoding_name" msgstr "ім'я_кодування" -#: sql_help.c:2000 +#: sql_help.c:2001 +msgid "verbosity" +msgstr "детальність" + +#: sql_help.c:2012 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2071 sql_help.c:2090 sql_help.c:2093 +#: sql_help.c:2083 sql_help.c:2102 sql_help.c:2105 msgid "arg_data_type" msgstr "тип_даних_аргумента" -#: sql_help.c:2072 sql_help.c:2094 sql_help.c:2102 +#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 msgid "sfunc" msgstr "функція_стану" -#: sql_help.c:2073 sql_help.c:2095 sql_help.c:2103 +#: sql_help.c:2085 sql_help.c:2107 sql_help.c:2115 msgid "state_data_type" msgstr "тип_даних_стану" -#: sql_help.c:2074 sql_help.c:2096 sql_help.c:2104 +#: sql_help.c:2086 sql_help.c:2108 sql_help.c:2116 msgid "state_data_size" msgstr "розмір_даних_стану" -#: sql_help.c:2075 sql_help.c:2097 sql_help.c:2105 +#: sql_help.c:2087 sql_help.c:2109 sql_help.c:2117 msgid "ffunc" msgstr "функція_завершення" -#: sql_help.c:2076 sql_help.c:2106 +#: sql_help.c:2088 sql_help.c:2118 msgid "combinefunc" msgstr "комбінуюча_функція" -#: sql_help.c:2077 sql_help.c:2107 +#: sql_help.c:2089 sql_help.c:2119 msgid "serialfunc" msgstr "функція_серіалізації" -#: sql_help.c:2078 sql_help.c:2108 +#: sql_help.c:2090 sql_help.c:2120 msgid "deserialfunc" msgstr "функція_десеріалізації" -#: sql_help.c:2079 sql_help.c:2098 sql_help.c:2109 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2121 msgid "initial_condition" msgstr "початкова_умова" -#: sql_help.c:2080 sql_help.c:2110 +#: sql_help.c:2092 sql_help.c:2122 msgid "msfunc" msgstr "функція_стану_рух" -#: sql_help.c:2081 sql_help.c:2111 +#: sql_help.c:2093 sql_help.c:2123 msgid "minvfunc" msgstr "зворотна_функція_рух" -#: sql_help.c:2082 sql_help.c:2112 +#: sql_help.c:2094 sql_help.c:2124 msgid "mstate_data_type" msgstr "тип_даних_стану_рух" -#: sql_help.c:2083 sql_help.c:2113 +#: sql_help.c:2095 sql_help.c:2125 msgid "mstate_data_size" msgstr "розмір_даних_стану_рух" -#: sql_help.c:2084 sql_help.c:2114 +#: sql_help.c:2096 sql_help.c:2126 msgid "mffunc" msgstr "функція_завершення_рух" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2097 sql_help.c:2127 msgid "minitial_condition" msgstr "початкова_умова_рух" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2098 sql_help.c:2128 msgid "sort_operator" msgstr "оператор_сортування" -#: sql_help.c:2099 +#: sql_help.c:2111 msgid "or the old syntax" msgstr "або старий синтаксис" -#: sql_help.c:2101 +#: sql_help.c:2113 msgid "base_type" msgstr "базовий_тип" -#: sql_help.c:2159 sql_help.c:2208 +#: sql_help.c:2171 sql_help.c:2221 msgid "locale" msgstr "локаль" -#: sql_help.c:2160 sql_help.c:2209 +#: sql_help.c:2172 sql_help.c:2222 msgid "lc_collate" msgstr "код_правила_сортування" -#: sql_help.c:2161 sql_help.c:2210 +#: sql_help.c:2173 sql_help.c:2223 msgid "lc_ctype" msgstr "код_класифікації_символів" -#: sql_help.c:2162 sql_help.c:4462 +#: sql_help.c:2174 sql_help.c:4487 msgid "provider" msgstr "постачальник" -#: sql_help.c:2164 +#: sql_help.c:2176 msgid "rules" msgstr "правила" -#: sql_help.c:2165 sql_help.c:2270 +#: sql_help.c:2177 sql_help.c:2284 msgid "version" msgstr "версія" -#: sql_help.c:2167 +#: sql_help.c:2179 msgid "existing_collation" msgstr "існуюче_правило_сортування" -#: sql_help.c:2177 +#: sql_help.c:2189 msgid "source_encoding" msgstr "початкове_кодування" -#: sql_help.c:2178 +#: sql_help.c:2190 msgid "dest_encoding" msgstr "цільве_кодування" -#: sql_help.c:2205 sql_help.c:3046 +#: sql_help.c:2218 sql_help.c:3059 msgid "template" msgstr "шаблон" -#: sql_help.c:2206 +#: sql_help.c:2219 msgid "encoding" msgstr "кодування" -#: sql_help.c:2207 +#: sql_help.c:2220 msgid "strategy" msgstr "стратегія" -#: sql_help.c:2211 +#: sql_help.c:2224 +msgid "builtin_locale" +msgstr "вбудована_локаль" + +#: sql_help.c:2225 msgid "icu_locale" msgstr "icu_locale" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "icu_rules" msgstr "правила_icu" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "locale_provider" msgstr "локаль_провайдер" -#: sql_help.c:2214 +#: sql_help.c:2228 msgid "collation_version" msgstr "версія_сортування" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "oid" msgstr "oid" -#: sql_help.c:2239 -msgid "constraint" -msgstr "обмеження" - -#: sql_help.c:2240 -msgid "where constraint is:" -msgstr "де обмеження:" +#: sql_help.c:2254 +msgid "where domain_constraint is:" +msgstr "де обмеження_домену:" -#: sql_help.c:2254 sql_help.c:2691 sql_help.c:3119 +#: sql_help.c:2268 sql_help.c:2701 sql_help.c:3132 msgid "event" msgstr "подія" -#: sql_help.c:2255 +#: sql_help.c:2269 msgid "filter_variable" msgstr "змінна_фільтру" -#: sql_help.c:2256 +#: sql_help.c:2270 msgid "filter_value" msgstr "значення_фільтру" -#: sql_help.c:2352 sql_help.c:2938 +#: sql_help.c:2366 sql_help.c:2948 msgid "where column_constraint is:" msgstr "де обмеження_стовпців:" -#: sql_help.c:2397 +#: sql_help.c:2411 msgid "rettype" msgstr "тип_результату" -#: sql_help.c:2399 +#: sql_help.c:2413 msgid "column_type" msgstr "тип_стовпця" -#: sql_help.c:2408 sql_help.c:2611 +#: sql_help.c:2422 sql_help.c:2625 msgid "definition" msgstr "визначення" -#: sql_help.c:2409 sql_help.c:2612 +#: sql_help.c:2423 sql_help.c:2626 msgid "obj_file" msgstr "об'єктний_файл" -#: sql_help.c:2410 sql_help.c:2613 +#: sql_help.c:2424 sql_help.c:2627 msgid "link_symbol" msgstr "символ_експорту" -#: sql_help.c:2411 sql_help.c:2614 +#: sql_help.c:2425 sql_help.c:2628 msgid "sql_body" msgstr "sql_body" -#: sql_help.c:2449 sql_help.c:2676 sql_help.c:3242 +#: sql_help.c:2463 sql_help.c:2686 sql_help.c:3255 msgid "uid" msgstr "uid" -#: sql_help.c:2465 sql_help.c:2506 sql_help.c:2907 sql_help.c:2920 -#: sql_help.c:2934 sql_help.c:3002 +#: sql_help.c:2479 sql_help.c:2520 sql_help.c:2917 sql_help.c:2930 +#: sql_help.c:2944 sql_help.c:3015 msgid "method" msgstr "метод" -#: sql_help.c:2470 -msgid "opclass_parameter" -msgstr "opclass_parameter" - -#: sql_help.c:2487 +#: sql_help.c:2501 msgid "call_handler" msgstr "обробник_виклику" -#: sql_help.c:2488 +#: sql_help.c:2502 msgid "inline_handler" msgstr "обробник_впровадженого_коду" -#: sql_help.c:2489 +#: sql_help.c:2503 msgid "valfunction" msgstr "функція_перевірки" -#: sql_help.c:2528 -msgid "com_op" -msgstr "комут_оператор" - -#: sql_help.c:2529 -msgid "neg_op" -msgstr "зворотній_оператор" - -#: sql_help.c:2547 +#: sql_help.c:2561 msgid "family_name" msgstr "назва_сімейства" -#: sql_help.c:2558 +#: sql_help.c:2572 msgid "storage_type" msgstr "тип_зберігання" -#: sql_help.c:2697 sql_help.c:3126 +#: sql_help.c:2707 sql_help.c:3139 msgid "where event can be one of:" msgstr "де подія може бути однією з:" -#: sql_help.c:2717 sql_help.c:2719 +#: sql_help.c:2727 sql_help.c:2729 msgid "schema_element" msgstr "елемент_схеми" -#: sql_help.c:2756 +#: sql_help.c:2766 msgid "server_type" msgstr "тип_серверу" -#: sql_help.c:2757 +#: sql_help.c:2767 msgid "server_version" msgstr "версія_серверу" -#: sql_help.c:2758 sql_help.c:3907 sql_help.c:4359 +#: sql_help.c:2768 sql_help.c:3921 sql_help.c:4384 msgid "fdw_name" msgstr "назва_fdw" -#: sql_help.c:2775 sql_help.c:2778 +#: sql_help.c:2785 sql_help.c:2788 msgid "statistics_name" msgstr "назва_статистики" -#: sql_help.c:2779 +#: sql_help.c:2789 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2795 +#: sql_help.c:2805 msgid "subscription_name" msgstr "назва_підписки" -#: sql_help.c:2900 +#: sql_help.c:2910 msgid "source_table" msgstr "вихідна_таблиця" -#: sql_help.c:2901 +#: sql_help.c:2911 msgid "like_option" msgstr "параметр_породження" -#: sql_help.c:2967 +#: sql_help.c:2977 msgid "and like_option is:" msgstr "і параметр_породження:" -#: sql_help.c:3019 +#: sql_help.c:3032 msgid "directory" msgstr "каталог" -#: sql_help.c:3033 +#: sql_help.c:3046 msgid "parser_name" msgstr "назва_парсера" -#: sql_help.c:3034 +#: sql_help.c:3047 msgid "source_config" msgstr "початкова_конфігурація" -#: sql_help.c:3063 +#: sql_help.c:3076 msgid "start_function" msgstr "функція_початку" -#: sql_help.c:3064 +#: sql_help.c:3077 msgid "gettoken_function" msgstr "функція_видачі_токену" -#: sql_help.c:3065 +#: sql_help.c:3078 msgid "end_function" msgstr "функція_завершення" -#: sql_help.c:3066 +#: sql_help.c:3079 msgid "lextypes_function" msgstr "функція_лекс_типів" -#: sql_help.c:3067 +#: sql_help.c:3080 msgid "headline_function" msgstr "функція_створення_заголовків" -#: sql_help.c:3079 +#: sql_help.c:3092 msgid "init_function" msgstr "функція_ініціалізації" -#: sql_help.c:3080 +#: sql_help.c:3093 msgid "lexize_function" msgstr "функція_виділення_лексем" -#: sql_help.c:3093 +#: sql_help.c:3106 msgid "from_sql_function_name" msgstr "ім'я_функції_з_sql" -#: sql_help.c:3095 +#: sql_help.c:3108 msgid "to_sql_function_name" msgstr "ім'я_функції_в_sql" -#: sql_help.c:3121 +#: sql_help.c:3134 msgid "referenced_table_name" msgstr "ім'я_залежної_таблиці" -#: sql_help.c:3122 +#: sql_help.c:3135 msgid "transition_relation_name" msgstr "ім'я_перехідного_відношення" -#: sql_help.c:3125 +#: sql_help.c:3138 msgid "arguments" msgstr "аргументи" -#: sql_help.c:3177 +#: sql_help.c:3190 msgid "label" msgstr "мітка" -#: sql_help.c:3179 +#: sql_help.c:3192 msgid "subtype" msgstr "підтип" -#: sql_help.c:3180 +#: sql_help.c:3193 msgid "subtype_operator_class" msgstr "клас_оператора_підтипу" -#: sql_help.c:3182 +#: sql_help.c:3195 msgid "canonical_function" msgstr "канонічна_функція" -#: sql_help.c:3183 +#: sql_help.c:3196 msgid "subtype_diff_function" msgstr "функція_розбіжностей_підтипу" -#: sql_help.c:3184 +#: sql_help.c:3197 msgid "multirange_type_name" msgstr "multirange_type_name" -#: sql_help.c:3186 +#: sql_help.c:3199 msgid "input_function" msgstr "функція_вводу" -#: sql_help.c:3187 +#: sql_help.c:3200 msgid "output_function" msgstr "функція_виводу" -#: sql_help.c:3188 +#: sql_help.c:3201 msgid "receive_function" msgstr "функція_отримання" -#: sql_help.c:3189 +#: sql_help.c:3202 msgid "send_function" msgstr "функція_відправки" -#: sql_help.c:3190 +#: sql_help.c:3203 msgid "type_modifier_input_function" msgstr "функція_введення_модифікатора_типу" -#: sql_help.c:3191 +#: sql_help.c:3204 msgid "type_modifier_output_function" msgstr "функція_виводу_модифікатора_типу" -#: sql_help.c:3192 +#: sql_help.c:3205 msgid "analyze_function" msgstr "функція_аналізу" -#: sql_help.c:3193 +#: sql_help.c:3206 msgid "subscript_function" msgstr "subscript_function" -#: sql_help.c:3194 +#: sql_help.c:3207 msgid "internallength" msgstr "внутр_довжина" -#: sql_help.c:3195 +#: sql_help.c:3208 msgid "alignment" msgstr "вирівнювання" -#: sql_help.c:3196 +#: sql_help.c:3209 msgid "storage" msgstr "зберігання" -#: sql_help.c:3197 +#: sql_help.c:3210 msgid "like_type" msgstr "тип_зразок" -#: sql_help.c:3198 +#: sql_help.c:3211 msgid "category" msgstr "категорія" -#: sql_help.c:3199 +#: sql_help.c:3212 msgid "preferred" msgstr "привілейований" -#: sql_help.c:3200 +#: sql_help.c:3213 msgid "default" msgstr "за_замовчуванням" -#: sql_help.c:3201 +#: sql_help.c:3214 msgid "element" msgstr "елемент" -#: sql_help.c:3202 +#: sql_help.c:3215 msgid "delimiter" msgstr "роздільник" -#: sql_help.c:3203 +#: sql_help.c:3216 msgid "collatable" msgstr "сортувальний" -#: sql_help.c:3300 sql_help.c:3986 sql_help.c:4076 sql_help.c:4559 -#: sql_help.c:4661 sql_help.c:4816 sql_help.c:4929 sql_help.c:5062 +#: sql_help.c:3313 sql_help.c:4000 sql_help.c:4094 sql_help.c:4584 +#: sql_help.c:4687 sql_help.c:4842 sql_help.c:4956 sql_help.c:5087 msgid "with_query" msgstr "with_запит" -#: sql_help.c:3302 sql_help.c:3988 sql_help.c:4578 sql_help.c:4584 -#: sql_help.c:4587 sql_help.c:4591 sql_help.c:4595 sql_help.c:4603 -#: sql_help.c:4835 sql_help.c:4841 sql_help.c:4844 sql_help.c:4848 -#: sql_help.c:4852 sql_help.c:4860 sql_help.c:4931 sql_help.c:5081 -#: sql_help.c:5087 sql_help.c:5090 sql_help.c:5094 sql_help.c:5098 -#: sql_help.c:5106 +#: sql_help.c:3315 sql_help.c:4002 sql_help.c:4603 sql_help.c:4609 +#: sql_help.c:4612 sql_help.c:4616 sql_help.c:4620 sql_help.c:4628 +#: sql_help.c:4861 sql_help.c:4867 sql_help.c:4870 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4886 sql_help.c:4958 sql_help.c:5106 +#: sql_help.c:5112 sql_help.c:5115 sql_help.c:5119 sql_help.c:5123 +#: sql_help.c:5131 msgid "alias" msgstr "псевдонім" -#: sql_help.c:3303 sql_help.c:4563 sql_help.c:4605 sql_help.c:4607 -#: sql_help.c:4611 sql_help.c:4613 sql_help.c:4614 sql_help.c:4615 -#: sql_help.c:4666 sql_help.c:4820 sql_help.c:4862 sql_help.c:4864 -#: sql_help.c:4868 sql_help.c:4870 sql_help.c:4871 sql_help.c:4872 -#: sql_help.c:4938 sql_help.c:5066 sql_help.c:5108 sql_help.c:5110 -#: sql_help.c:5114 sql_help.c:5116 sql_help.c:5117 sql_help.c:5118 +#: sql_help.c:3316 sql_help.c:4588 sql_help.c:4630 sql_help.c:4632 +#: sql_help.c:4636 sql_help.c:4638 sql_help.c:4639 sql_help.c:4640 +#: sql_help.c:4692 sql_help.c:4846 sql_help.c:4888 sql_help.c:4890 +#: sql_help.c:4894 sql_help.c:4896 sql_help.c:4897 sql_help.c:4898 +#: sql_help.c:4965 sql_help.c:5091 sql_help.c:5133 sql_help.c:5135 +#: sql_help.c:5139 sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 msgid "from_item" msgstr "джерело_даних" -#: sql_help.c:3305 sql_help.c:3788 sql_help.c:4126 sql_help.c:4940 +#: sql_help.c:3318 sql_help.c:3802 sql_help.c:4151 sql_help.c:4967 msgid "cursor_name" msgstr "ім'я_курсору" -#: sql_help.c:3306 sql_help.c:3994 sql_help.c:4941 +#: sql_help.c:3319 sql_help.c:4008 sql_help.c:4100 sql_help.c:4968 msgid "output_expression" msgstr "вираз_результату" -#: sql_help.c:3307 sql_help.c:3995 sql_help.c:4562 sql_help.c:4664 -#: sql_help.c:4819 sql_help.c:4942 sql_help.c:5065 +#: sql_help.c:3320 sql_help.c:4009 sql_help.c:4101 sql_help.c:4587 +#: sql_help.c:4690 sql_help.c:4845 sql_help.c:4969 sql_help.c:5090 msgid "output_name" msgstr "ім'я_результату" -#: sql_help.c:3323 +#: sql_help.c:3336 msgid "code" msgstr "код" -#: sql_help.c:3728 +#: sql_help.c:3741 msgid "parameter" msgstr "параметр" -#: sql_help.c:3751 sql_help.c:3752 sql_help.c:4151 +#: sql_help.c:3765 sql_help.c:4176 msgid "statement" msgstr "оператор" -#: sql_help.c:3787 sql_help.c:4125 +#: sql_help.c:3801 sql_help.c:4150 msgid "direction" msgstr "напрямок" -#: sql_help.c:3789 sql_help.c:4127 +#: sql_help.c:3803 sql_help.c:4152 msgid "where direction can be one of:" msgstr "де напрямок може бути одним із:" -#: sql_help.c:3790 sql_help.c:3791 sql_help.c:3792 sql_help.c:3793 -#: sql_help.c:3794 sql_help.c:4128 sql_help.c:4129 sql_help.c:4130 -#: sql_help.c:4131 sql_help.c:4132 sql_help.c:4572 sql_help.c:4574 -#: sql_help.c:4675 sql_help.c:4677 sql_help.c:4829 sql_help.c:4831 -#: sql_help.c:5006 sql_help.c:5008 sql_help.c:5075 sql_help.c:5077 +#: sql_help.c:3804 sql_help.c:3805 sql_help.c:3806 sql_help.c:3807 +#: sql_help.c:3808 sql_help.c:4153 sql_help.c:4154 sql_help.c:4155 +#: sql_help.c:4156 sql_help.c:4157 sql_help.c:4597 sql_help.c:4599 +#: sql_help.c:4701 sql_help.c:4703 sql_help.c:4855 sql_help.c:4857 +#: sql_help.c:5031 sql_help.c:5033 sql_help.c:5100 sql_help.c:5102 msgid "count" msgstr "кількість" -#: sql_help.c:3897 sql_help.c:4349 +#: sql_help.c:3911 sql_help.c:4374 msgid "sequence_name" msgstr "ім'я_послідовності" -#: sql_help.c:3915 sql_help.c:4367 +#: sql_help.c:3929 sql_help.c:4392 msgid "arg_name" msgstr "ім'я_аргументу" -#: sql_help.c:3916 sql_help.c:4368 +#: sql_help.c:3930 sql_help.c:4393 msgid "arg_type" msgstr "тип_аргументу" -#: sql_help.c:3923 sql_help.c:4375 +#: sql_help.c:3937 sql_help.c:4400 msgid "loid" msgstr "код_вел_об'єкту" -#: sql_help.c:3954 +#: sql_help.c:3968 msgid "remote_schema" msgstr "віддалена_схема" -#: sql_help.c:3957 +#: sql_help.c:3971 msgid "local_schema" msgstr "локальна_схема" -#: sql_help.c:3992 +#: sql_help.c:4006 msgid "conflict_target" msgstr "ціль_конфлікту" -#: sql_help.c:3993 +#: sql_help.c:4007 msgid "conflict_action" msgstr "дія_при_конфлікті" -#: sql_help.c:3996 +#: sql_help.c:4010 msgid "where conflict_target can be one of:" msgstr "де ціль_конфлікту може бути одним з:" -#: sql_help.c:3997 +#: sql_help.c:4011 msgid "index_column_name" msgstr "ім'я_стовпця_індексу" -#: sql_help.c:3998 +#: sql_help.c:4012 msgid "index_expression" msgstr "вираз_індексу" -#: sql_help.c:4001 +#: sql_help.c:4015 msgid "index_predicate" msgstr "предикат_індексу" -#: sql_help.c:4003 +#: sql_help.c:4017 msgid "and conflict_action is one of:" msgstr "і дія_при_конфлікті одна з:" -#: sql_help.c:4009 sql_help.c:4937 +#: sql_help.c:4023 sql_help.c:4124 sql_help.c:4964 msgid "sub-SELECT" msgstr "вкладений-SELECT" -#: sql_help.c:4018 sql_help.c:4140 sql_help.c:4913 +#: sql_help.c:4032 sql_help.c:4165 sql_help.c:4940 msgid "channel" msgstr "канал" -#: sql_help.c:4040 +#: sql_help.c:4054 msgid "lockmode" msgstr "режим_блокування" -#: sql_help.c:4041 +#: sql_help.c:4055 msgid "where lockmode is one of:" msgstr "де режим_блокування один з:" -#: sql_help.c:4077 +#: sql_help.c:4095 msgid "target_table_name" msgstr "ім'я_цілі_таблиці" -#: sql_help.c:4078 +#: sql_help.c:4096 msgid "target_alias" msgstr "псевдонім_цілі" -#: sql_help.c:4079 +#: sql_help.c:4097 msgid "data_source" msgstr "джерело_даних" -#: sql_help.c:4080 sql_help.c:4608 sql_help.c:4865 sql_help.c:5111 +#: sql_help.c:4098 sql_help.c:4633 sql_help.c:4891 sql_help.c:5136 msgid "join_condition" msgstr "умова_поєднання" -#: sql_help.c:4081 +#: sql_help.c:4099 msgid "when_clause" msgstr "when_твердження" -#: sql_help.c:4082 +#: sql_help.c:4102 msgid "where data_source is:" msgstr "де джерело_даних:" -#: sql_help.c:4083 +#: sql_help.c:4103 msgid "source_table_name" msgstr "ім'я_початкова_таблиці" -#: sql_help.c:4084 +#: sql_help.c:4104 msgid "source_query" msgstr "джерело_запит" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "source_alias" msgstr "джерело_псевдоніма" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "and when_clause is:" msgstr "і when_clause:" -#: sql_help.c:4088 +#: sql_help.c:4108 sql_help.c:4111 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4089 +#: sql_help.c:4109 sql_help.c:4112 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4091 +#: sql_help.c:4114 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4092 +#: sql_help.c:4115 msgid "and merge_insert is:" msgstr "і merge_insert:" -#: sql_help.c:4095 +#: sql_help.c:4118 msgid "and merge_update is:" msgstr "і merge_update:" -#: sql_help.c:4100 +#: sql_help.c:4125 msgid "and merge_delete is:" msgstr "і merge_delete:" -#: sql_help.c:4141 +#: sql_help.c:4166 msgid "payload" msgstr "зміст" -#: sql_help.c:4168 +#: sql_help.c:4193 msgid "old_role" msgstr "стара_роль" -#: sql_help.c:4169 +#: sql_help.c:4194 msgid "new_role" msgstr "нова_роль" -#: sql_help.c:4208 sql_help.c:4417 sql_help.c:4425 +#: sql_help.c:4233 sql_help.c:4442 sql_help.c:4450 msgid "savepoint_name" msgstr "ім'я_точки_збереження" -#: sql_help.c:4565 sql_help.c:4623 sql_help.c:4822 sql_help.c:4880 -#: sql_help.c:5068 sql_help.c:5126 +#: sql_help.c:4590 sql_help.c:4648 sql_help.c:4848 sql_help.c:4906 +#: sql_help.c:5093 sql_help.c:5151 msgid "grouping_element" msgstr "елемент_групування" -#: sql_help.c:4567 sql_help.c:4670 sql_help.c:4824 sql_help.c:5070 +#: sql_help.c:4592 sql_help.c:4696 sql_help.c:4850 sql_help.c:5095 msgid "window_name" msgstr "назва_вікна" -#: sql_help.c:4568 sql_help.c:4671 sql_help.c:4825 sql_help.c:5071 +#: sql_help.c:4593 sql_help.c:4697 sql_help.c:4851 sql_help.c:5096 msgid "window_definition" msgstr "визначення_вікна" -#: sql_help.c:4569 sql_help.c:4583 sql_help.c:4627 sql_help.c:4672 -#: sql_help.c:4826 sql_help.c:4840 sql_help.c:4884 sql_help.c:5072 -#: sql_help.c:5086 sql_help.c:5130 +#: sql_help.c:4594 sql_help.c:4608 sql_help.c:4652 sql_help.c:4698 +#: sql_help.c:4852 sql_help.c:4866 sql_help.c:4910 sql_help.c:5097 +#: sql_help.c:5111 sql_help.c:5155 msgid "select" msgstr "виберіть" -#: sql_help.c:4576 sql_help.c:4833 sql_help.c:5079 +#: sql_help.c:4600 sql_help.c:4858 sql_help.c:5103 +msgid "from_reference" +msgstr "from_reference" + +#: sql_help.c:4601 sql_help.c:4859 sql_help.c:5104 msgid "where from_item can be one of:" msgstr "де джерело_даних може бути одним з:" -#: sql_help.c:4579 sql_help.c:4585 sql_help.c:4588 sql_help.c:4592 -#: sql_help.c:4604 sql_help.c:4836 sql_help.c:4842 sql_help.c:4845 -#: sql_help.c:4849 sql_help.c:4861 sql_help.c:5082 sql_help.c:5088 -#: sql_help.c:5091 sql_help.c:5095 sql_help.c:5107 +#: sql_help.c:4604 sql_help.c:4610 sql_help.c:4613 sql_help.c:4617 +#: sql_help.c:4629 sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 +#: sql_help.c:4875 sql_help.c:4887 sql_help.c:5107 sql_help.c:5113 +#: sql_help.c:5116 sql_help.c:5120 sql_help.c:5132 msgid "column_alias" msgstr "псевдонім_стовпця" -#: sql_help.c:4580 sql_help.c:4837 sql_help.c:5083 +#: sql_help.c:4605 sql_help.c:4863 sql_help.c:5108 msgid "sampling_method" msgstr "метод_вибірки" -#: sql_help.c:4582 sql_help.c:4839 sql_help.c:5085 +#: sql_help.c:4607 sql_help.c:4865 sql_help.c:5110 msgid "seed" msgstr "початкове_число" -#: sql_help.c:4586 sql_help.c:4625 sql_help.c:4843 sql_help.c:4882 -#: sql_help.c:5089 sql_help.c:5128 +#: sql_help.c:4611 sql_help.c:4650 sql_help.c:4869 sql_help.c:4908 +#: sql_help.c:5114 sql_help.c:5153 msgid "with_query_name" msgstr "ім'я_запиту_WITH" -#: sql_help.c:4596 sql_help.c:4599 sql_help.c:4602 sql_help.c:4853 -#: sql_help.c:4856 sql_help.c:4859 sql_help.c:5099 sql_help.c:5102 -#: sql_help.c:5105 +#: sql_help.c:4621 sql_help.c:4624 sql_help.c:4627 sql_help.c:4879 +#: sql_help.c:4882 sql_help.c:4885 sql_help.c:5124 sql_help.c:5127 +#: sql_help.c:5130 msgid "column_definition" msgstr "визначення_стовпця" -#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4863 sql_help.c:4869 -#: sql_help.c:5109 sql_help.c:5115 +#: sql_help.c:4631 sql_help.c:4637 sql_help.c:4889 sql_help.c:4895 +#: sql_help.c:5134 sql_help.c:5140 msgid "join_type" msgstr "тип_поєднання" -#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5112 +#: sql_help.c:4634 sql_help.c:4892 sql_help.c:5137 msgid "join_column" msgstr "стовпець_поєднання" -#: sql_help.c:4610 sql_help.c:4867 sql_help.c:5113 +#: sql_help.c:4635 sql_help.c:4893 sql_help.c:5138 msgid "join_using_alias" msgstr "join_using_alias" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5119 +#: sql_help.c:4641 sql_help.c:4899 sql_help.c:5144 msgid "and grouping_element can be one of:" msgstr "і елемент_групування може бути одним з:" -#: sql_help.c:4624 sql_help.c:4881 sql_help.c:5127 +#: sql_help.c:4649 sql_help.c:4907 sql_help.c:5152 msgid "and with_query is:" msgstr "і запит_WITH:" -#: sql_help.c:4628 sql_help.c:4885 sql_help.c:5131 +#: sql_help.c:4653 sql_help.c:4911 sql_help.c:5156 msgid "values" msgstr "значення" -#: sql_help.c:4629 sql_help.c:4886 sql_help.c:5132 +#: sql_help.c:4654 sql_help.c:4912 sql_help.c:5157 msgid "insert" msgstr "вставка" -#: sql_help.c:4630 sql_help.c:4887 sql_help.c:5133 +#: sql_help.c:4655 sql_help.c:4913 sql_help.c:5158 msgid "update" msgstr "оновлення" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5134 +#: sql_help.c:4656 sql_help.c:4914 sql_help.c:5159 msgid "delete" msgstr "видалення" -#: sql_help.c:4633 sql_help.c:4890 sql_help.c:5136 +#: sql_help.c:4657 sql_help.c:4915 sql_help.c:5160 +msgid "merge" +msgstr "об’єднати" + +#: sql_help.c:4659 sql_help.c:4917 sql_help.c:5162 msgid "search_seq_col_name" msgstr "search_seq_col_name" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5138 +#: sql_help.c:4661 sql_help.c:4919 sql_help.c:5164 msgid "cycle_mark_col_name" msgstr "cycle_mark_col_name" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5139 +#: sql_help.c:4662 sql_help.c:4920 sql_help.c:5165 msgid "cycle_mark_value" msgstr "cycle_mark_value" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5140 +#: sql_help.c:4663 sql_help.c:4921 sql_help.c:5166 msgid "cycle_mark_default" msgstr "cycle_mark_default" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5141 +#: sql_help.c:4664 sql_help.c:4922 sql_help.c:5167 msgid "cycle_path_col_name" msgstr "cycle_path_col_name" -#: sql_help.c:4665 +#: sql_help.c:4691 msgid "new_table" msgstr "нова_таблиця" -#: sql_help.c:4736 +#: sql_help.c:4762 msgid "snapshot_id" msgstr "код_знімку" -#: sql_help.c:5004 +#: sql_help.c:5029 msgid "sort_expression" msgstr "вираз_сортування" -#: sql_help.c:5148 sql_help.c:6132 +#: sql_help.c:5174 sql_help.c:6158 msgid "abort the current transaction" msgstr "перервати поточну транзакцію" -#: sql_help.c:5154 +#: sql_help.c:5180 msgid "change the definition of an aggregate function" msgstr "змінити визначення агрегатної функції" -#: sql_help.c:5160 +#: sql_help.c:5186 msgid "change the definition of a collation" msgstr "змінити визначення правила сортування" -#: sql_help.c:5166 +#: sql_help.c:5192 msgid "change the definition of a conversion" msgstr "змінити визначення перетворення" -#: sql_help.c:5172 +#: sql_help.c:5198 msgid "change a database" msgstr "змінити базу даних" -#: sql_help.c:5178 +#: sql_help.c:5204 msgid "define default access privileges" msgstr "визначити права доступу за замовчуванням" -#: sql_help.c:5184 +#: sql_help.c:5210 msgid "change the definition of a domain" msgstr "змінити визначення домену" -#: sql_help.c:5190 +#: sql_help.c:5216 msgid "change the definition of an event trigger" msgstr "змінити визначення тригеру події" -#: sql_help.c:5196 +#: sql_help.c:5222 msgid "change the definition of an extension" msgstr "змінити визначення розширення" -#: sql_help.c:5202 +#: sql_help.c:5228 msgid "change the definition of a foreign-data wrapper" msgstr "змінити визначення джерела сторонніх даних" -#: sql_help.c:5208 +#: sql_help.c:5234 msgid "change the definition of a foreign table" msgstr "змінити визначення сторонньої таблиці" -#: sql_help.c:5214 +#: sql_help.c:5240 msgid "change the definition of a function" msgstr "змінити визначення функції" -#: sql_help.c:5220 +#: sql_help.c:5246 msgid "change role name or membership" msgstr "змінити назву ролі або членства" -#: sql_help.c:5226 +#: sql_help.c:5252 msgid "change the definition of an index" msgstr "змінити визначення індексу" -#: sql_help.c:5232 +#: sql_help.c:5258 msgid "change the definition of a procedural language" msgstr "змінити визначення процедурної мови" -#: sql_help.c:5238 +#: sql_help.c:5264 msgid "change the definition of a large object" msgstr "змінити визначення великого об'єкту" -#: sql_help.c:5244 +#: sql_help.c:5270 msgid "change the definition of a materialized view" msgstr "змінити визначення матеріалізованого подання" -#: sql_help.c:5250 +#: sql_help.c:5276 msgid "change the definition of an operator" msgstr "змінити визначення оператора" -#: sql_help.c:5256 +#: sql_help.c:5282 msgid "change the definition of an operator class" msgstr "змінити визначення класа операторів" -#: sql_help.c:5262 +#: sql_help.c:5288 msgid "change the definition of an operator family" msgstr "змінити визначення сімейства операторів" -#: sql_help.c:5268 +#: sql_help.c:5294 msgid "change the definition of a row-level security policy" msgstr "змінити визначення політики безпеки на рівні рядків" -#: sql_help.c:5274 +#: sql_help.c:5300 msgid "change the definition of a procedure" msgstr "змінити визначення процедури" -#: sql_help.c:5280 +#: sql_help.c:5306 msgid "change the definition of a publication" msgstr "змінити визначення публікації" -#: sql_help.c:5286 sql_help.c:5388 +#: sql_help.c:5312 sql_help.c:5414 msgid "change a database role" msgstr "змінити роль бази даних" -#: sql_help.c:5292 +#: sql_help.c:5318 msgid "change the definition of a routine" msgstr "змінити визначення підпрограми" -#: sql_help.c:5298 +#: sql_help.c:5324 msgid "change the definition of a rule" msgstr "змінити визначення правила" -#: sql_help.c:5304 +#: sql_help.c:5330 msgid "change the definition of a schema" msgstr "змінити визначення схеми" -#: sql_help.c:5310 +#: sql_help.c:5336 msgid "change the definition of a sequence generator" msgstr "змінити визначення генератору послідовності" -#: sql_help.c:5316 +#: sql_help.c:5342 msgid "change the definition of a foreign server" msgstr "змінити визначення стороннього серверу" -#: sql_help.c:5322 +#: sql_help.c:5348 msgid "change the definition of an extended statistics object" msgstr "змінити визначення об'єкту розширеної статистики" -#: sql_help.c:5328 +#: sql_help.c:5354 msgid "change the definition of a subscription" msgstr "змінити визначення підписки" -#: sql_help.c:5334 +#: sql_help.c:5360 msgid "change a server configuration parameter" msgstr "змінити параметр конфігурації сервера" -#: sql_help.c:5340 +#: sql_help.c:5366 msgid "change the definition of a table" msgstr "змінити визначення таблиці" -#: sql_help.c:5346 +#: sql_help.c:5372 msgid "change the definition of a tablespace" msgstr "змінити визначення табличного простору" -#: sql_help.c:5352 +#: sql_help.c:5378 msgid "change the definition of a text search configuration" msgstr "змінити визначення конфігурації текстового пошуку" -#: sql_help.c:5358 +#: sql_help.c:5384 msgid "change the definition of a text search dictionary" msgstr "змінити визначення словника текстового пошуку" -#: sql_help.c:5364 +#: sql_help.c:5390 msgid "change the definition of a text search parser" msgstr "змінити визначення парсера текстового пошуку" -#: sql_help.c:5370 +#: sql_help.c:5396 msgid "change the definition of a text search template" msgstr "змінити визначення шаблона текстового пошуку" -#: sql_help.c:5376 +#: sql_help.c:5402 msgid "change the definition of a trigger" msgstr "змінити визначення тригеру" -#: sql_help.c:5382 +#: sql_help.c:5408 msgid "change the definition of a type" msgstr "змінити визначення типу" -#: sql_help.c:5394 +#: sql_help.c:5420 msgid "change the definition of a user mapping" msgstr "змінити визначення зіставлень користувачів" -#: sql_help.c:5400 +#: sql_help.c:5426 msgid "change the definition of a view" msgstr "змінити визначення подання" -#: sql_help.c:5406 +#: sql_help.c:5432 msgid "collect statistics about a database" msgstr "зібрати статистику про базу даних" -#: sql_help.c:5412 sql_help.c:6210 +#: sql_help.c:5438 sql_help.c:6236 msgid "start a transaction block" msgstr "розпочати транзакцію" -#: sql_help.c:5418 +#: sql_help.c:5444 msgid "invoke a procedure" msgstr "викликати процедуру" -#: sql_help.c:5424 +#: sql_help.c:5450 msgid "force a write-ahead log checkpoint" msgstr "провести контрольну точку в журналі попереднього запису" -#: sql_help.c:5430 +#: sql_help.c:5456 msgid "close a cursor" msgstr "закрити курсор" -#: sql_help.c:5436 +#: sql_help.c:5462 msgid "cluster a table according to an index" msgstr "перегрупувати таблицю за індексом" -#: sql_help.c:5442 +#: sql_help.c:5468 msgid "define or change the comment of an object" msgstr "задати або змінити коментар об'єкта" -#: sql_help.c:5448 sql_help.c:6006 +#: sql_help.c:5474 sql_help.c:6032 msgid "commit the current transaction" msgstr "затвердити поточну транзакцію" -#: sql_help.c:5454 +#: sql_help.c:5480 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "затвердити транзакцію, раніше підготовлену до двохфазного затвердження" -#: sql_help.c:5460 +#: sql_help.c:5486 msgid "copy data between a file and a table" msgstr "копіювати дані між файлом та таблицею" -#: sql_help.c:5466 +#: sql_help.c:5492 msgid "define a new access method" msgstr "визначити новий метод доступу" -#: sql_help.c:5472 +#: sql_help.c:5498 msgid "define a new aggregate function" msgstr "визначити нову агрегатну функцію" -#: sql_help.c:5478 +#: sql_help.c:5504 msgid "define a new cast" msgstr "визначити приведення типів" -#: sql_help.c:5484 +#: sql_help.c:5510 msgid "define a new collation" msgstr "визначити нове правило сортування" -#: sql_help.c:5490 +#: sql_help.c:5516 msgid "define a new encoding conversion" msgstr "визначити нове перетворення кодування" -#: sql_help.c:5496 +#: sql_help.c:5522 msgid "create a new database" msgstr "створити нову базу даних" -#: sql_help.c:5502 +#: sql_help.c:5528 msgid "define a new domain" msgstr "визначити новий домен" -#: sql_help.c:5508 +#: sql_help.c:5534 msgid "define a new event trigger" msgstr "визначити новий тригер події" -#: sql_help.c:5514 +#: sql_help.c:5540 msgid "install an extension" msgstr "встановити розширення" -#: sql_help.c:5520 +#: sql_help.c:5546 msgid "define a new foreign-data wrapper" msgstr "визначити нове джерело сторонніх даних" -#: sql_help.c:5526 +#: sql_help.c:5552 msgid "define a new foreign table" msgstr "визначити нову сторонню таблицю" -#: sql_help.c:5532 +#: sql_help.c:5558 msgid "define a new function" msgstr "визначити нову функцію" -#: sql_help.c:5538 sql_help.c:5598 sql_help.c:5700 +#: sql_help.c:5564 sql_help.c:5624 sql_help.c:5726 msgid "define a new database role" msgstr "визначити нову роль бази даних" -#: sql_help.c:5544 +#: sql_help.c:5570 msgid "define a new index" msgstr "визначити новий індекс" -#: sql_help.c:5550 +#: sql_help.c:5576 msgid "define a new procedural language" msgstr "визначити нову процедурну мову" -#: sql_help.c:5556 +#: sql_help.c:5582 msgid "define a new materialized view" msgstr "визначити нове матеріалізоване подання" -#: sql_help.c:5562 +#: sql_help.c:5588 msgid "define a new operator" msgstr "визначити новий оператор" -#: sql_help.c:5568 +#: sql_help.c:5594 msgid "define a new operator class" msgstr "визначити новий клас оператора" -#: sql_help.c:5574 +#: sql_help.c:5600 msgid "define a new operator family" msgstr "визначити нове сімейство операторів" -#: sql_help.c:5580 +#: sql_help.c:5606 msgid "define a new row-level security policy for a table" msgstr "визначити нову політику безпеки на рівні рядків для таблиці" -#: sql_help.c:5586 +#: sql_help.c:5612 msgid "define a new procedure" msgstr "визначити нову процедуру" -#: sql_help.c:5592 +#: sql_help.c:5618 msgid "define a new publication" msgstr "визначити нову публікацію" -#: sql_help.c:5604 +#: sql_help.c:5630 msgid "define a new rewrite rule" msgstr "визначити нове правило перезапису" -#: sql_help.c:5610 +#: sql_help.c:5636 msgid "define a new schema" msgstr "визначити нову схему" -#: sql_help.c:5616 +#: sql_help.c:5642 msgid "define a new sequence generator" msgstr "визначити новий генератор послідовностей" -#: sql_help.c:5622 +#: sql_help.c:5648 msgid "define a new foreign server" msgstr "визначити новий сторонній сервер" -#: sql_help.c:5628 +#: sql_help.c:5654 msgid "define extended statistics" msgstr "визначити розширену статистику" -#: sql_help.c:5634 +#: sql_help.c:5660 msgid "define a new subscription" msgstr "визначити нову підписку" -#: sql_help.c:5640 +#: sql_help.c:5666 msgid "define a new table" msgstr "визначити нову таблицю" -#: sql_help.c:5646 sql_help.c:6168 +#: sql_help.c:5672 sql_help.c:6194 msgid "define a new table from the results of a query" msgstr "визначити нову таблицю з результатів запиту" -#: sql_help.c:5652 +#: sql_help.c:5678 msgid "define a new tablespace" msgstr "визначити новий табличний простір" -#: sql_help.c:5658 +#: sql_help.c:5684 msgid "define a new text search configuration" msgstr "визначити нову конфігурацію текстового пошуку" -#: sql_help.c:5664 +#: sql_help.c:5690 msgid "define a new text search dictionary" msgstr "визначити новий словник текстового пошуку" -#: sql_help.c:5670 +#: sql_help.c:5696 msgid "define a new text search parser" msgstr "визначити новий аналізатор текстового пошуку" -#: sql_help.c:5676 +#: sql_help.c:5702 msgid "define a new text search template" msgstr "визначити новий шаблон текстового пошуку" -#: sql_help.c:5682 +#: sql_help.c:5708 msgid "define a new transform" msgstr "визначити нове перетворення" -#: sql_help.c:5688 +#: sql_help.c:5714 msgid "define a new trigger" msgstr "визначити новий тригер" -#: sql_help.c:5694 +#: sql_help.c:5720 msgid "define a new data type" msgstr "визначити новий тип даних" -#: sql_help.c:5706 +#: sql_help.c:5732 msgid "define a new mapping of a user to a foreign server" msgstr "визначити нове зіставлення користувача для стороннього сервера" -#: sql_help.c:5712 +#: sql_help.c:5738 msgid "define a new view" msgstr "визначити нове подання" -#: sql_help.c:5718 +#: sql_help.c:5744 msgid "deallocate a prepared statement" msgstr "звільнити підготовлену команду" -#: sql_help.c:5724 +#: sql_help.c:5750 msgid "define a cursor" msgstr "визначити курсор" -#: sql_help.c:5730 +#: sql_help.c:5756 msgid "delete rows of a table" msgstr "видалити рядки таблиці" -#: sql_help.c:5736 +#: sql_help.c:5762 msgid "discard session state" msgstr "очистити стан сесії" -#: sql_help.c:5742 +#: sql_help.c:5768 msgid "execute an anonymous code block" msgstr "виконати анонімний блок коду" -#: sql_help.c:5748 +#: sql_help.c:5774 msgid "remove an access method" msgstr "видалити метод доступу" -#: sql_help.c:5754 +#: sql_help.c:5780 msgid "remove an aggregate function" msgstr "видалити агрегатну функцію" -#: sql_help.c:5760 +#: sql_help.c:5786 msgid "remove a cast" msgstr "видалити приведення типів" -#: sql_help.c:5766 +#: sql_help.c:5792 msgid "remove a collation" msgstr "видалити правило сортування" -#: sql_help.c:5772 +#: sql_help.c:5798 msgid "remove a conversion" msgstr "видалити перетворення" -#: sql_help.c:5778 +#: sql_help.c:5804 msgid "remove a database" msgstr "видалити базу даних" -#: sql_help.c:5784 +#: sql_help.c:5810 msgid "remove a domain" msgstr "видалити домен" -#: sql_help.c:5790 +#: sql_help.c:5816 msgid "remove an event trigger" msgstr "видалити тригер події" -#: sql_help.c:5796 +#: sql_help.c:5822 msgid "remove an extension" msgstr "видалити розширення" -#: sql_help.c:5802 +#: sql_help.c:5828 msgid "remove a foreign-data wrapper" msgstr "видалити джерело сторонніх даних" -#: sql_help.c:5808 +#: sql_help.c:5834 msgid "remove a foreign table" msgstr "видалити сторонню таблицю" -#: sql_help.c:5814 +#: sql_help.c:5840 msgid "remove a function" msgstr "видалити функцію" -#: sql_help.c:5820 sql_help.c:5886 sql_help.c:5988 +#: sql_help.c:5846 sql_help.c:5912 sql_help.c:6014 msgid "remove a database role" msgstr "видалити роль бази даних" -#: sql_help.c:5826 +#: sql_help.c:5852 msgid "remove an index" msgstr "видалити індекс" -#: sql_help.c:5832 +#: sql_help.c:5858 msgid "remove a procedural language" msgstr "видалити процедурну мову" -#: sql_help.c:5838 +#: sql_help.c:5864 msgid "remove a materialized view" msgstr "видалити матеріалізоване подання" -#: sql_help.c:5844 +#: sql_help.c:5870 msgid "remove an operator" msgstr "видалити оператор" -#: sql_help.c:5850 +#: sql_help.c:5876 msgid "remove an operator class" msgstr "видалити клас операторів" -#: sql_help.c:5856 +#: sql_help.c:5882 msgid "remove an operator family" msgstr "видалити сімейство операторів" -#: sql_help.c:5862 +#: sql_help.c:5888 msgid "remove database objects owned by a database role" msgstr "видалити об'єкти бази даних, що належать ролі" -#: sql_help.c:5868 +#: sql_help.c:5894 msgid "remove a row-level security policy from a table" msgstr "видалити політику безпеки на рівні рядків з таблиці" -#: sql_help.c:5874 +#: sql_help.c:5900 msgid "remove a procedure" msgstr "видалити процедуру" -#: sql_help.c:5880 +#: sql_help.c:5906 msgid "remove a publication" msgstr "видалити публікацію" -#: sql_help.c:5892 +#: sql_help.c:5918 msgid "remove a routine" msgstr "видалити підпрограму" -#: sql_help.c:5898 +#: sql_help.c:5924 msgid "remove a rewrite rule" msgstr "видалити правило перезапису" -#: sql_help.c:5904 +#: sql_help.c:5930 msgid "remove a schema" msgstr "видалити схему" -#: sql_help.c:5910 +#: sql_help.c:5936 msgid "remove a sequence" msgstr "видалити послідовність" -#: sql_help.c:5916 +#: sql_help.c:5942 msgid "remove a foreign server descriptor" msgstr "видалити опис стороннього серверу" -#: sql_help.c:5922 +#: sql_help.c:5948 msgid "remove extended statistics" msgstr "видалити розширену статистику" -#: sql_help.c:5928 +#: sql_help.c:5954 msgid "remove a subscription" msgstr "видалити підписку" -#: sql_help.c:5934 +#: sql_help.c:5960 msgid "remove a table" msgstr "видалити таблицю" -#: sql_help.c:5940 +#: sql_help.c:5966 msgid "remove a tablespace" msgstr "видалити табличний простір" -#: sql_help.c:5946 +#: sql_help.c:5972 msgid "remove a text search configuration" msgstr "видалити конфігурацію тектового пошуку" -#: sql_help.c:5952 +#: sql_help.c:5978 msgid "remove a text search dictionary" msgstr "видалити словник тектового пошуку" -#: sql_help.c:5958 +#: sql_help.c:5984 msgid "remove a text search parser" msgstr "видалити парсер тектового пошуку" -#: sql_help.c:5964 +#: sql_help.c:5990 msgid "remove a text search template" msgstr "видалити шаблон тектового пошуку" -#: sql_help.c:5970 +#: sql_help.c:5996 msgid "remove a transform" msgstr "видалити перетворення" -#: sql_help.c:5976 +#: sql_help.c:6002 msgid "remove a trigger" msgstr "видалити тригер" -#: sql_help.c:5982 +#: sql_help.c:6008 msgid "remove a data type" msgstr "видалити тип даних" -#: sql_help.c:5994 +#: sql_help.c:6020 msgid "remove a user mapping for a foreign server" msgstr "видалити зіставлення користувача для стороннього серверу" -#: sql_help.c:6000 +#: sql_help.c:6026 msgid "remove a view" msgstr "видалити подання" -#: sql_help.c:6012 +#: sql_help.c:6038 msgid "execute a prepared statement" msgstr "виконати підготовлену команду" -#: sql_help.c:6018 +#: sql_help.c:6044 msgid "show the execution plan of a statement" msgstr "показати план виконання команди" -#: sql_help.c:6024 +#: sql_help.c:6050 msgid "retrieve rows from a query using a cursor" msgstr "отримати рядки запиту з курсору" -#: sql_help.c:6030 +#: sql_help.c:6056 msgid "define access privileges" msgstr "визначити права доступу" -#: sql_help.c:6036 +#: sql_help.c:6062 msgid "import table definitions from a foreign server" msgstr "імпортувати визначення таблиць зі стороннього серверу" -#: sql_help.c:6042 +#: sql_help.c:6068 msgid "create new rows in a table" msgstr "створити нові рядки в таблиці" -#: sql_help.c:6048 +#: sql_help.c:6074 msgid "listen for a notification" msgstr "очікувати на повідомлення" -#: sql_help.c:6054 +#: sql_help.c:6080 msgid "load a shared library file" msgstr "завантажити файл спільної бібліотеки" -#: sql_help.c:6060 +#: sql_help.c:6086 msgid "lock a table" msgstr "заблокувати таблицю" -#: sql_help.c:6066 +#: sql_help.c:6092 msgid "conditionally insert, update, or delete rows of a table" msgstr "умовно вставити, оновити або видалити рядки таблиці" -#: sql_help.c:6072 +#: sql_help.c:6098 msgid "position a cursor" msgstr "розташувати курсор" -#: sql_help.c:6078 +#: sql_help.c:6104 msgid "generate a notification" msgstr "згенерувати повідомлення" -#: sql_help.c:6084 +#: sql_help.c:6110 msgid "prepare a statement for execution" msgstr "підготувати команду для виконання" -#: sql_help.c:6090 +#: sql_help.c:6116 msgid "prepare the current transaction for two-phase commit" msgstr "підготувати поточну транзакцію для двохфазного затвердження" -#: sql_help.c:6096 +#: sql_help.c:6122 msgid "change the ownership of database objects owned by a database role" msgstr "змінити власника об'єктів БД, що належать заданій ролі" -#: sql_help.c:6102 +#: sql_help.c:6128 msgid "replace the contents of a materialized view" msgstr "замінити вміст матеріалізованого подання" -#: sql_help.c:6108 +#: sql_help.c:6134 msgid "rebuild indexes" msgstr "перебудувати індекси" -#: sql_help.c:6114 +#: sql_help.c:6140 msgid "release a previously defined savepoint" msgstr "звільнити раніше визначену точку збереження" -#: sql_help.c:6120 +#: sql_help.c:6146 msgid "restore the value of a run-time parameter to the default value" msgstr "відновити початкове значення параметру виконання" -#: sql_help.c:6126 +#: sql_help.c:6152 msgid "remove access privileges" msgstr "видалити права доступу" -#: sql_help.c:6138 +#: sql_help.c:6164 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "скасувати транзакцію, раніше підготовлену до двохфазного затвердження" -#: sql_help.c:6144 +#: sql_help.c:6170 msgid "roll back to a savepoint" msgstr "відкотитися до точки збереження" -#: sql_help.c:6150 +#: sql_help.c:6176 msgid "define a new savepoint within the current transaction" msgstr "визначити нову точку збереження в рамках поточної транзакції" -#: sql_help.c:6156 +#: sql_help.c:6182 msgid "define or change a security label applied to an object" msgstr "визначити або змінити мітку безпеки, застосовану до об'єкта" -#: sql_help.c:6162 sql_help.c:6216 sql_help.c:6252 +#: sql_help.c:6188 sql_help.c:6242 sql_help.c:6278 msgid "retrieve rows from a table or view" msgstr "отримати рядки з таблиці або подання" -#: sql_help.c:6174 +#: sql_help.c:6200 msgid "change a run-time parameter" msgstr "змінити параметр виконання" -#: sql_help.c:6180 +#: sql_help.c:6206 msgid "set constraint check timing for the current transaction" msgstr "встановити час перевірки обмеження для поточної транзакції" -#: sql_help.c:6186 +#: sql_help.c:6212 msgid "set the current user identifier of the current session" msgstr "встановити ідентифікатор поточного користувача в поточній сесії" -#: sql_help.c:6192 +#: sql_help.c:6218 msgid "set the session user identifier and the current user identifier of the current session" msgstr "встановити ідентифікатор користувача сесії й ідентифікатор поточного користувача в поточній сесії" -#: sql_help.c:6198 +#: sql_help.c:6224 msgid "set the characteristics of the current transaction" msgstr "встановити характеристики поточної транзакції" -#: sql_help.c:6204 +#: sql_help.c:6230 msgid "show the value of a run-time parameter" msgstr "показати значення параметра виконання" -#: sql_help.c:6222 +#: sql_help.c:6248 msgid "empty a table or set of tables" msgstr "очистити таблицю або декілька таблиць" -#: sql_help.c:6228 +#: sql_help.c:6254 msgid "stop listening for a notification" msgstr "припинити очікування повідомлень" -#: sql_help.c:6234 +#: sql_help.c:6260 msgid "update rows of a table" msgstr "змінити рядки таблиці" -#: sql_help.c:6240 +#: sql_help.c:6266 msgid "garbage-collect and optionally analyze a database" msgstr "виконати збір сміття і проаналізувати базу даних" -#: sql_help.c:6246 +#: sql_help.c:6272 msgid "compute a set of rows" msgstr "отримати набір рядків" @@ -6254,7 +6322,7 @@ msgstr "зайвий аргумент \"%s\" проігнорований" msgid "could not find own program executable" msgstr "не вдалося знайти ехе файл власної програми" -#: tab-complete.c:6078 +#: tab-complete.c:6216 #, c-format msgid "tab completion query failed: %s\n" "Query was:\n" diff --git a/src/bin/psql/t/001_basic.pl b/src/bin/psql/t/001_basic.pl index 739cb43970875..4050f9a5e3e11 100644 --- a/src/bin/psql/t/001_basic.pl +++ b/src/bin/psql/t/001_basic.pl @@ -34,11 +34,13 @@ sub psql_fails_like { local $Test::Builder::Level = $Test::Builder::Level + 1; - my ($node, $sql, $expected_stderr, $test_name) = @_; + my ($node, $sql, $expected_stderr, $test_name, $replication) = @_; + + # Use the context of a WAL sender, if requested by the caller. + $replication = '' unless defined($replication); - # Use the context of a WAL sender, some of the tests rely on that. my ($ret, $stdout, $stderr) = - $node->psql('postgres', $sql, replication => 'database'); + $node->psql('postgres', $sql, replication => $replication); isnt($ret, 0, "$test_name: exit code not 0"); like($stderr, $expected_stderr, "$test_name: matches"); @@ -79,7 +81,7 @@ sub psql_fails_like $node, 'START_REPLICATION 0/0', qr/unexpected PQresultStatus: 8$/, - 'handling of unexpected PQresultStatus'); + 'handling of unexpected PQresultStatus', 'database'); # test \timing psql_like( @@ -481,4 +483,45 @@ sub psql_fails_like my $c4 = slurp_file($g_file); like($c4, qr/foo.*bar/s); +# Tests with pipelines. These trigger FATAL failures in the backend, +# so they cannot be tested via SQL. +$node->safe_psql('postgres', 'CREATE TABLE psql_pipeline()'); +my $log_location = -s $node->logfile; +psql_fails_like( + $node, + qq{\\startpipeline +COPY psql_pipeline FROM STDIN; +SELECT 'val1'; +\\syncpipeline +\\getresults +\\endpipeline}, + qr/server closed the connection unexpectedly/, + 'protocol sync loss in pipeline: direct COPY, SELECT, sync and getresult' +); +$node->wait_for_log( + qr/FATAL: .*terminating connection because protocol synchronization was lost/, + $log_location); + +psql_fails_like( + $node, + qq{\\startpipeline +COPY psql_pipeline FROM STDIN \\bind \\sendpipeline +SELECT 'val1' \\bind \\sendpipeline +\\syncpipeline +\\getresults +\\endpipeline}, + qr/server closed the connection unexpectedly/, + 'protocol sync loss in pipeline: bind COPY, SELECT, sync and getresult'); + +# This time, test without the \getresults. +psql_fails_like( + $node, + qq{\\startpipeline +COPY psql_pipeline FROM STDIN; +SELECT 'val1'; +\\syncpipeline +\\endpipeline}, + qr/server closed the connection unexpectedly/, + 'protocol sync loss in pipeline: COPY, SELECT and sync'); + done_testing(); diff --git a/src/bin/psql/tab-complete.in.c b/src/bin/psql/tab-complete.in.c index 98951aef82ca3..ec65ab79fecba 100644 --- a/src/bin/psql/tab-complete.in.c +++ b/src/bin/psql/tab-complete.in.c @@ -2539,6 +2539,12 @@ match_previous_words(int pattern_id, else if (Matches("ALTER", "DOMAIN", MatchAny)) COMPLETE_WITH("ADD", "DROP", "OWNER TO", "RENAME", "SET", "VALIDATE CONSTRAINT"); + /* ALTER DOMAIN ADD */ + else if (Matches("ALTER", "DOMAIN", MatchAny, "ADD")) + COMPLETE_WITH("CONSTRAINT", "NOT NULL", "CHECK ("); + /* ALTER DOMAIN ADD CONSTRAINT */ + else if (Matches("ALTER", "DOMAIN", MatchAny, "ADD", "CONSTRAINT", MatchAny)) + COMPLETE_WITH("NOT NULL", "CHECK ("); /* ALTER DOMAIN DROP */ else if (Matches("ALTER", "DOMAIN", MatchAny, "DROP")) COMPLETE_WITH("CONSTRAINT", "DEFAULT", "NOT NULL"); @@ -4457,7 +4463,7 @@ match_previous_words(int pattern_id, * objects supported. */ if (HeadMatches("ALTER", "DEFAULT", "PRIVILEGES")) - COMPLETE_WITH("TABLES", "SEQUENCES", "FUNCTIONS", "PROCEDURES", "ROUTINES", "TYPES", "SCHEMAS"); + COMPLETE_WITH("TABLES", "SEQUENCES", "FUNCTIONS", "PROCEDURES", "ROUTINES", "TYPES", "SCHEMAS", "LARGE OBJECTS"); else COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_grantables, "ALL FUNCTIONS IN SCHEMA", diff --git a/src/bin/scripts/po/de.po b/src/bin/scripts/po/de.po index 70225e6904436..ce0cbba47bdf8 100644 --- a/src/bin/scripts/po/de.po +++ b/src/bin/scripts/po/de.po @@ -1,14 +1,14 @@ # German message translation file for "scripts". -# Peter Eisentraut , 2003 - 2024. +# Peter Eisentraut , 2003 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-16 10:21+0000\n" -"PO-Revision-Date: 2024-06-16 19:03+0200\n" +"POT-Creation-Date: 2025-04-27 00:51+0000\n" +"PO-Revision-Date: 2025-04-27 15:40+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -17,22 +17,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "Tipp: " @@ -48,44 +48,44 @@ msgstr "Speicher aufgebraucht\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "konnte Dateisystem für Datei »%s« nicht synchronisieren: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "konnte »stat« für Datei »%s« nicht ausführen: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "diese Installation unterstützt Sync-Methode »%s« nicht" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "konnte Datei »%s« nicht in »%s« umbenennen: %m" @@ -175,8 +175,8 @@ msgstr "Unterbrochen\n" #: ../../fe_utils/print.c:3188 #, c-format -msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" -msgstr "Kann Tabelleninhalt nicht ausgeben: Anzahl der Zellen %lld ist gleich oder überschreitet Maximum %lld.\n" +msgid "Cannot print table contents: number of cells % is equal to or exceeds maximum %zu.\n" +msgstr "Kann Tabelleninhalt nicht ausgeben: Anzahl der Zellen % ist gleich oder überschreitet Maximum %zu.\n" #: ../../fe_utils/print.c:3229 #, c-format @@ -185,8 +185,8 @@ msgstr "Kann keinen weiteren Spaltenkopf zur Tabelle hinzufügen: Spaltenzahl %d #: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" -msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl %lld überschritten.\n" +msgid "Cannot add cell to table content: total cell count of % exceeded.\n" +msgstr "Kann keine weitere Zelle zur Tabelle hinzufügen: Zellengesamtzahl % überschritten.\n" #: ../../fe_utils/print.c:3530 #, c-format @@ -203,51 +203,51 @@ msgstr "Anfrage fehlgeschlagen: %s" msgid "Query was: %s" msgstr "Anfrage war: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "Argument des Shell-Befehls enthält Newline oder Carriage Return: »%s«\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "Datenbankname enthält Newline oder Carriage Return: »%s«\n" -#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 +#: clusterdb.c:113 clusterdb.c:132 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 +#: reindexdb.c:184 reindexdb.c:203 vacuumdb.c:291 vacuumdb.c:311 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 +#: clusterdb.c:130 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:201 vacuumdb.c:309 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: clusterdb.c:149 +#: clusterdb.c:148 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "kann nicht alle Datenbanken und eine bestimmte gleichzeitig clustern" -#: clusterdb.c:214 +#: clusterdb.c:213 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "Clustern der Tabelle »%s« in Datenbank »%s« fehlgeschlagen: %s" -#: clusterdb.c:217 +#: clusterdb.c:216 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "Clustern der Datenbank »%s« fehlgeschlagen: %s" -#: clusterdb.c:248 +#: clusterdb.c:247 #, c-format msgid "%s: clustering database \"%s\"\n" msgstr "%s: clustere Datenbank »%s«\n" -#: clusterdb.c:274 +#: clusterdb.c:273 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -256,19 +256,19 @@ msgstr "" "%s clustert alle vorher geclusterten Tabellen in einer Datenbank.\n" "\n" -#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 +#: clusterdb.c:274 createdb.c:300 createuser.c:417 dropdb.c:171 dropuser.c:171 +#: pg_isready.c:226 reindexdb.c:898 vacuumdb.c:1337 #, c-format msgid "Usage:\n" msgstr "Aufruf:\n" -#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 +#: clusterdb.c:275 reindexdb.c:899 vacuumdb.c:1338 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 +#: clusterdb.c:276 createdb.c:302 createuser.c:419 dropdb.c:173 dropuser.c:173 +#: pg_isready.c:229 reindexdb.c:900 vacuumdb.c:1339 #, c-format msgid "" "\n" @@ -277,50 +277,50 @@ msgstr "" "\n" "Optionen:\n" -#: clusterdb.c:278 +#: clusterdb.c:277 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all clustere alle Datenbanken\n" -#: clusterdb.c:279 +#: clusterdb.c:278 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=DBNAME zu clusternde Datenbank\n" -#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:279 createuser.c:425 dropdb.c:174 dropuser.c:174 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr "" " -e, --echo zeige die Befehle, die an den Server\n" " gesendet werden\n" -#: clusterdb.c:281 +#: clusterdb.c:280 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet unterdrücke alle Mitteilungen\n" -#: clusterdb.c:282 +#: clusterdb.c:281 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABELLE clustere nur bestimmte Tabelle(n)\n" -#: clusterdb.c:283 +#: clusterdb.c:282 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose erzeuge viele Meldungen\n" -#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:283 createuser.c:441 dropdb.c:177 dropuser.c:177 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:284 createuser.c:449 dropdb.c:179 dropuser.c:179 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 +#: clusterdb.c:285 createdb.c:319 createuser.c:450 dropdb.c:180 dropuser.c:180 +#: pg_isready.c:235 reindexdb.c:915 vacuumdb.c:1369 #, c-format msgid "" "\n" @@ -329,37 +329,37 @@ msgstr "" "\n" "Verbindungsoptionen:\n" -#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 +#: clusterdb.c:286 createuser.c:451 dropdb.c:181 dropuser.c:181 vacuumdb.c:1370 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME Name des Datenbankservers oder Socket-Verzeichnis\n" -#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 +#: clusterdb.c:287 createuser.c:452 dropdb.c:182 dropuser.c:182 vacuumdb.c:1371 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT Port des Datenbankservers\n" -#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 +#: clusterdb.c:288 dropdb.c:183 vacuumdb.c:1372 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 +#: clusterdb.c:289 createuser.c:454 dropdb.c:184 dropuser.c:184 vacuumdb.c:1373 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 +#: clusterdb.c:290 createuser.c:455 dropdb.c:185 dropuser.c:185 vacuumdb.c:1374 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password Passwortfrage erzwingen\n" -#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 +#: clusterdb.c:291 dropdb.c:186 vacuumdb.c:1375 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME alternative Wartungsdatenbank\n" -#: clusterdb.c:293 +#: clusterdb.c:292 #, c-format msgid "" "\n" @@ -369,8 +369,8 @@ msgstr "" "Für weitere Informationen lesen Sie bitte die Beschreibung des\n" "SQL-Befehls CLUSTER.\n" -#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 +#: clusterdb.c:293 createdb.c:327 createuser.c:456 dropdb.c:187 dropuser.c:186 +#: pg_isready.c:240 reindexdb.c:923 vacuumdb.c:1377 #, c-format msgid "" "\n" @@ -379,13 +379,13 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 +#: clusterdb.c:294 createdb.c:328 createuser.c:457 dropdb.c:188 dropuser.c:187 +#: pg_isready.c:241 reindexdb.c:924 vacuumdb.c:1378 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: common.c:107 +#: common.c:106 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -419,17 +419,17 @@ msgstr "Bitte antworten Sie »%s« oder »%s«.\n" msgid "\"%s\" is not a valid encoding name" msgstr "»%s« ist kein gültiger Kodierungsname" -#: createdb.c:260 +#: createdb.c:262 #, c-format msgid "database creation failed: %s" msgstr "Erzeugen der Datenbank ist fehlgeschlagen: %s" -#: createdb.c:279 +#: createdb.c:281 #, c-format msgid "comment creation failed (database was created): %s" msgstr "Erzeugen des Kommentars ist fehlgeschlagen (Datenbank wurde erzeugt): %s" -#: createdb.c:297 +#: createdb.c:299 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -438,61 +438,61 @@ msgstr "" "%s erzeugt eine PostgreSQL-Datenbank.\n" "\n" -#: createdb.c:299 +#: createdb.c:301 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [OPTION]... [DBNAME] [BESCHREIBUNG]\n" -#: createdb.c:301 +#: createdb.c:303 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=TABLESPACE Standard-Tablespace der Datenbank\n" -#: createdb.c:302 reindexdb.c:874 +#: createdb.c:304 reindexdb.c:904 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr "" " -e, --echo zeige die Befehle, die an den Server\n" " gesendet werden\n" -#: createdb.c:303 +#: createdb.c:305 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=KODIERUNG Kodierung für die Datenbank\n" -#: createdb.c:304 +#: createdb.c:306 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOCALE Locale-Einstellungen für die Datenbank\n" -#: createdb.c:305 +#: createdb.c:307 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOCALE LC_COLLATE-Einstellung für die Datenbank\n" -#: createdb.c:306 +#: createdb.c:308 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOCALE LC_CTYPE-Einstellung für die Datenbank\n" -#: createdb.c:307 +#: createdb.c:309 #, c-format msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" msgstr "" " --builtin-locale=LOCALE Locale-Einstellung für Provider »builtin« für\n" " die Datenbank\n" -#: createdb.c:308 +#: createdb.c:310 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE ICU-Locale-Einstellung für die Datenbank\n" -#: createdb.c:309 +#: createdb.c:311 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=REGELN ICU-Regel-Einstellung für die Datenbank\n" -#: createdb.c:310 +#: createdb.c:312 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -501,62 +501,62 @@ msgstr "" " --locale-provider={builtin|libc|icu}\n" " Locale-Provider für Standardsortierfolge der Datenbank\n" -#: createdb.c:312 +#: createdb.c:314 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --owner=EIGENTÜMER Eigentümer der neuen Datenbank\n" -#: createdb.c:313 +#: createdb.c:315 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr " -S, --strategy=STRATEGIE Datenbankerzeugungsstrategie wal_log oder file_copy\n" -#: createdb.c:314 +#: createdb.c:316 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=TEMPLATE zu kopierende Template-Datenbank\n" -#: createdb.c:315 reindexdb.c:883 +#: createdb.c:317 reindexdb.c:913 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: createdb.c:316 reindexdb.c:884 +#: createdb.c:318 reindexdb.c:914 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: createdb.c:318 reindexdb.c:886 +#: createdb.c:320 reindexdb.c:916 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME Name des Datenbankservers oder Socket-Verzeichnis\n" -#: createdb.c:319 reindexdb.c:887 +#: createdb.c:321 reindexdb.c:917 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT Port des Datenbankservers\n" -#: createdb.c:320 reindexdb.c:888 +#: createdb.c:322 reindexdb.c:918 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: createdb.c:321 reindexdb.c:889 +#: createdb.c:323 reindexdb.c:919 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password niemals nach Passwort fragen\n" -#: createdb.c:322 reindexdb.c:890 +#: createdb.c:324 reindexdb.c:920 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password Passwortfrage erzwingen\n" -#: createdb.c:323 reindexdb.c:891 +#: createdb.c:325 reindexdb.c:921 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME alternative Wartungsdatenbank\n" -#: createdb.c:324 +#: createdb.c:326 #, c-format msgid "" "\n" @@ -595,17 +595,17 @@ msgstr "Soll die neue Rolle Datenbanken erzeugen dürfen?" msgid "Shall the new role be allowed to create more new roles?" msgstr "Soll die neue Rolle weitere neue Rollen erzeugen dürfen?" -#: createuser.c:309 +#: createuser.c:311 #, c-format msgid "password encryption failed: %s" msgstr "Passwortverschlüsselung ist fehlgeschlagen: %s" -#: createuser.c:400 +#: createuser.c:402 #, c-format msgid "creation of new role failed: %s" msgstr "Erzeugen der neuen Rolle fehlgeschlagen: %s" -#: createuser.c:414 +#: createuser.c:416 #, c-format msgid "" "%s creates a new PostgreSQL role.\n" @@ -614,12 +614,12 @@ msgstr "" "%s erzeugt eine neue PostgreSQL-Rolle.\n" "\n" -#: createuser.c:416 dropuser.c:171 +#: createuser.c:418 dropuser.c:172 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" msgstr " %s [OPTION]... [ROLLENNAME]\n" -#: createuser.c:418 +#: createuser.c:420 #, c-format msgid "" " -a, --with-admin=ROLE ROLE will be a member of new role with admin\n" @@ -628,34 +628,34 @@ msgstr "" " -a, --with-admin=ROLLE ROLLE wird Mitglied der neuen Rolle mit\n" " Admin-Option\n" -#: createuser.c:420 +#: createuser.c:422 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr "" " -c, --connection-limit=N Hochzahl an Verbindungen für Rolle\n" " (Voreinstellung: keine Begrenzung)\n" -#: createuser.c:421 +#: createuser.c:423 #, c-format msgid " -d, --createdb role can create new databases\n" msgstr " -d, --createdb Rolle kann neue Datenbanken erzeugen\n" -#: createuser.c:422 +#: createuser.c:424 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr " -D, --no-createdb Rolle kann keine Datenbanken erzeugen (Voreinstellung)\n" -#: createuser.c:424 +#: createuser.c:426 #, c-format msgid " -g, --member-of=ROLE new role will be a member of ROLE\n" msgstr " -g, --member-of=ROLLE neue Rolle wird Mitglied von ROLLE\n" -#: createuser.c:425 +#: createuser.c:427 #, c-format msgid " --role=ROLE (same as --member-of, deprecated)\n" msgstr " --role=ROLLE (gleich --member-of, veraltet)\n" -#: createuser.c:426 +#: createuser.c:428 #, c-format msgid "" " -i, --inherit role inherits privileges of roles it is a\n" @@ -664,52 +664,52 @@ msgstr "" " -i, --inherit Rolle erbt alle Privilegien von Rollen, deren\n" " Mitglied sie ist (Voreinstellung)\n" -#: createuser.c:428 +#: createuser.c:430 #, c-format msgid " -I, --no-inherit role does not inherit privileges\n" msgstr " -I, --no-inherit Rolle erbt keine Privilegien\n" -#: createuser.c:429 +#: createuser.c:431 #, c-format msgid " -l, --login role can login (default)\n" msgstr " -l, --login Rolle kann sich anmelden (Voreinstellung)\n" -#: createuser.c:430 +#: createuser.c:432 #, c-format msgid " -L, --no-login role cannot login\n" msgstr " -L, --no-login Rolle kann sich nicht anmelden\n" -#: createuser.c:431 +#: createuser.c:433 #, c-format msgid " -m, --with-member=ROLE ROLE will be a member of new role\n" msgstr " -m, --with-member=ROLLE ROLLE wird Mitglied der neuen Rolle\n" -#: createuser.c:432 +#: createuser.c:434 #, c-format msgid " -P, --pwprompt assign a password to new role\n" msgstr " -P, --pwprompt weise der neuen Rolle ein Passwort zu\n" -#: createuser.c:433 +#: createuser.c:435 #, c-format msgid " -r, --createrole role can create new roles\n" msgstr " -r, --createrole Rolle kann neue Rollen erzeugen\n" -#: createuser.c:434 +#: createuser.c:436 #, c-format msgid " -R, --no-createrole role cannot create roles (default)\n" msgstr " -R, --no-createrole Rolle kann keine Rollen erzeugen (Voreinstellung)\n" -#: createuser.c:435 +#: createuser.c:437 #, c-format msgid " -s, --superuser role will be superuser\n" msgstr " -s, --superuser Rolle wird Superuser\n" -#: createuser.c:436 +#: createuser.c:438 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" msgstr " -S, --no-superuser Rolle wird kein Superuser (Voreinstellung)\n" -#: createuser.c:437 +#: createuser.c:439 #, c-format msgid "" " -v, --valid-until=TIMESTAMP\n" @@ -718,7 +718,7 @@ msgstr "" " -v, --valid-until=TIMESTAMP\n" " Ablaufdatum und -zeit des Passworts der Rolle\n" -#: createuser.c:440 +#: createuser.c:442 #, c-format msgid "" " --interactive prompt for missing role name and attributes rather\n" @@ -727,14 +727,14 @@ msgstr "" " --interactive nach fehlenden Rollennamen und -attributen fragen\n" " anstatt Vorgabewerte zu nehmen\n" -#: createuser.c:442 +#: createuser.c:444 #, c-format msgid " --bypassrls role can bypass row-level security (RLS) policy\n" msgstr "" " --bypassrls Rolle kann Policy für Sicherheit auf Zeilenebene (RLS)\n" " umgehen\n" -#: createuser.c:443 +#: createuser.c:445 #, c-format msgid "" " --no-bypassrls role cannot bypass row-level security (RLS) policy\n" @@ -743,17 +743,17 @@ msgstr "" " --no-bypassrls Rolle kann Policy für Sicherheit auf Zeilenebene (RLS)\n" " nicht umgehen (Voreinstellung)\n" -#: createuser.c:445 +#: createuser.c:447 #, c-format msgid " --replication role can initiate replication\n" msgstr " --replication Rolle kann Replikation einleiten\n" -#: createuser.c:446 +#: createuser.c:448 #, c-format msgid " --no-replication role cannot initiate replication (default)\n" msgstr " --no-replication Rolle kann Replikation nicht einleiten (Voreinstellung)\n" -#: createuser.c:451 +#: createuser.c:453 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr "" @@ -774,12 +774,12 @@ msgstr "Datenbank »%s« wird unwiderruflich gelöscht werden.\n" msgid "Are you sure?" msgstr "Sind Sie sich sicher?" -#: dropdb.c:157 +#: dropdb.c:156 #, c-format msgid "database removal failed: %s" msgstr "Löschen der Datenbank fehlgeschlagen: %s" -#: dropdb.c:171 +#: dropdb.c:170 #, c-format msgid "" "%s removes a PostgreSQL database.\n" @@ -788,22 +788,22 @@ msgstr "" "%s löscht eine PostgreSQL-Datenbank.\n" "\n" -#: dropdb.c:173 +#: dropdb.c:172 #, c-format msgid " %s [OPTION]... DBNAME\n" msgstr " %s [OPTION]... DBNAME\n" -#: dropdb.c:176 +#: dropdb.c:175 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" msgstr " -f, --force vor dem Löschen versuchen andere Verbindungen abzubrechen\n" -#: dropdb.c:177 +#: dropdb.c:176 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr " -i, --interactive frage nach, bevor irgendetwas gelöscht wird\n" -#: dropdb.c:179 +#: dropdb.c:178 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" msgstr " --if-exists keinen Fehler ausgeben, wenn Datenbank nicht existiert\n" @@ -822,12 +822,12 @@ msgstr "Rollenname als Argument fehlt" msgid "Role \"%s\" will be permanently removed.\n" msgstr "Rolle »%s« wird unwiderruflich gelöscht werden.\n" -#: dropuser.c:154 +#: dropuser.c:155 #, c-format msgid "removal of role \"%s\" failed: %s" msgstr "Löschen der Rolle »%s« fehlgeschlagen: %s" -#: dropuser.c:169 +#: dropuser.c:170 #, c-format msgid "" "%s removes a PostgreSQL role.\n" @@ -836,7 +836,7 @@ msgstr "" "%s löscht eine PostgreSQL-Rolle.\n" "\n" -#: dropuser.c:174 +#: dropuser.c:175 #, c-format msgid "" " -i, --interactive prompt before deleting anything, and prompt for\n" @@ -845,12 +845,12 @@ msgstr "" " -i, --interactive nachfragen, bevor irgendetwas gelöscht wird, und\n" " nach Rollennamen fragen, wenn nicht angegeben\n" -#: dropuser.c:177 +#: dropuser.c:178 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr " --if-exists keinen Fehler ausgeben, wenn Benutzer nicht existiert\n" -#: dropuser.c:182 +#: dropuser.c:183 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr "" @@ -941,54 +941,54 @@ msgstr " -t, --timeout=SEK Sekunden auf Verbindung warten, 0 schaltet au msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=NAME Datenbankbenutzername\n" -#: reindexdb.c:210 +#: reindexdb.c:217 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "kann nicht mehrere Jobs verwenden, um Systemkataloge zu reindizieren" -#: reindexdb.c:215 +#: reindexdb.c:222 #, c-format msgid "cannot reindex all databases and a specific one at the same time" msgstr "kann nicht alle Datenbanken und eine bestimmte gleichzeitig reindizieren" -#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 -#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 -#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 +#: reindexdb.c:302 reindexdb.c:309 vacuumdb.c:558 vacuumdb.c:565 vacuumdb.c:572 +#: vacuumdb.c:579 vacuumdb.c:586 vacuumdb.c:593 vacuumdb.c:600 vacuumdb.c:607 +#: vacuumdb.c:614 vacuumdb.c:621 vacuumdb.c:628 vacuumdb.c:635 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "Option »%s« kann nicht mit Serverversionen älter als PostgreSQL %s verwendet werden" -#: reindexdb.c:584 +#: reindexdb.c:597 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "Reindizieren der Datenbank »%s« fehlgeschlagen: %s" -#: reindexdb.c:588 +#: reindexdb.c:601 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "Reindizieren des Index »%s« in Datenbank »%s« fehlgeschlagen: %s" -#: reindexdb.c:592 +#: reindexdb.c:605 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "Reindizieren des Schemas »%s« in Datenbank »%s« fehlgeschlagen: %s" -#: reindexdb.c:596 +#: reindexdb.c:609 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "Reindizieren der Systemkataloge in Datenbank »%s« fehlgeschlagen: %s" -#: reindexdb.c:600 +#: reindexdb.c:613 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "Reindizieren der Tabelle »%s« in Datenbank »%s« fehlgeschlagen: %s" -#: reindexdb.c:824 +#: reindexdb.c:854 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: reindiziere Datenbank »%s«\n" -#: reindexdb.c:867 +#: reindexdb.c:897 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -997,64 +997,64 @@ msgstr "" "%s reindiziert eine PostgreSQL-Datenbank.\n" "\n" -#: reindexdb.c:871 +#: reindexdb.c:901 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all alle Datenbanken reindizieren\n" -#: reindexdb.c:872 +#: reindexdb.c:902 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently nebenläufig reindizieren\n" -#: reindexdb.c:873 +#: reindexdb.c:903 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME zu reindizierende Datenbank\n" -#: reindexdb.c:875 +#: reindexdb.c:905 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX nur bestimmte(n) Index(e) erneuern\n" -#: reindexdb.c:876 +#: reindexdb.c:906 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr "" " -j, --jobs=NUM so viele parallele Verbindungen zum Reindizieren\n" " verwenden\n" -#: reindexdb.c:877 +#: reindexdb.c:907 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet unterdrücke alle Mitteilungen\n" -#: reindexdb.c:878 +#: reindexdb.c:908 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system nur Systemkataloge reindizieren\n" -#: reindexdb.c:879 +#: reindexdb.c:909 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA nur bestimmte(s) Schema(s) reindizieren\n" -#: reindexdb.c:880 +#: reindexdb.c:910 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABELLE nur bestimmte Tabelle(n) reindizieren\n" -#: reindexdb.c:881 +#: reindexdb.c:911 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=TABLESPACE Tablespace wo Indexe neu gebaut werden\n" -#: reindexdb.c:882 +#: reindexdb.c:912 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose erzeuge viele Meldungen\n" -#: reindexdb.c:892 +#: reindexdb.c:922 #, c-format msgid "" "\n" @@ -1064,80 +1064,85 @@ msgstr "" "Für weitere Informationen lesen Sie bitte die Beschreibung des\n" "SQL-Befehls REINDEX.\n" -#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 -#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 +#: vacuumdb.c:324 vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:336 +#: vacuumdb.c:339 vacuumdb.c:342 vacuumdb.c:345 vacuumdb.c:354 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "kann Option »%s« nicht verwenden, wenn nur Analyze durchgeführt wird" -#: vacuumdb.c:346 +#: vacuumdb.c:357 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "kann Option »%s« nicht verwenden, wenn volles Vacuum durchgeführt wird" -#: vacuumdb.c:352 vacuumdb.c:360 +#: vacuumdb.c:363 vacuumdb.c:371 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "kann Option »%s« nicht mit der Option »%s« verwenden" -#: vacuumdb.c:432 +#: vacuumdb.c:379 +#, c-format +msgid "cannot use the \"%s\" option without \"%s\" or \"%s\"" +msgstr "kann Option »%s« nicht ohne »%s« oder »%s« verwenden" + +#: vacuumdb.c:453 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "kann nicht alle Datenbanken und eine bestimmte gleichzeitig vacuumen" -#: vacuumdb.c:436 +#: vacuumdb.c:457 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "kann nicht alle Tabellen in Schemas und bestimmte Tabellen gleichzeitig vacuumen" -#: vacuumdb.c:440 +#: vacuumdb.c:461 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "kann nicht bestimmte Tabelle(n) vacuumen und gleichzeitig Schemas ausschließen" -#: vacuumdb.c:444 +#: vacuumdb.c:465 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "kann nicht alle Tabellen in Schemas vacuumen und gleichzeitig Schemas ausschließen" -#: vacuumdb.c:457 +#: vacuumdb.c:478 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" -#: vacuumdb.c:502 +#: vacuumdb.c:545 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Erzeuge minimale Optimierer-Statistiken (1 Ziel)" -#: vacuumdb.c:503 +#: vacuumdb.c:546 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Erzeuge mittlere Optimierer-Statistiken (10 Ziele)" -#: vacuumdb.c:504 +#: vacuumdb.c:547 msgid "Generating default (full) optimizer statistics" msgstr "Erzeuge volle Optimierer-Statistiken" -#: vacuumdb.c:583 +#: vacuumdb.c:645 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: bearbeite Datenbank »%s«: %s\n" -#: vacuumdb.c:586 +#: vacuumdb.c:648 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: führe Vacuum in Datenbank »%s« aus\n" -#: vacuumdb.c:1135 +#: vacuumdb.c:1325 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "Vacuum der Tabelle »%s« in Datenbank »%s« fehlgeschlagen: %s" -#: vacuumdb.c:1138 +#: vacuumdb.c:1328 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "Vacuum der Datenbank »%s« fehlgeschlagen: %s" -#: vacuumdb.c:1146 +#: vacuumdb.c:1336 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1146,148 +1151,153 @@ msgstr "" "%s säubert und analysiert eine PostgreSQL-Datenbank.\n" "\n" -#: vacuumdb.c:1150 +#: vacuumdb.c:1340 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all führe Vacuum in allen Datenbanken aus\n" -#: vacuumdb.c:1151 +#: vacuumdb.c:1341 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=GRÖSSE Größe des für Vacuum verwendeten Ringpuffers\n" -#: vacuumdb.c:1152 +#: vacuumdb.c:1342 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=DBNAME führe Vacuum in dieser Datenbank aus\n" -#: vacuumdb.c:1153 +#: vacuumdb.c:1343 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping Page-Skipping-Verhalten abschalten\n" -#: vacuumdb.c:1154 +#: vacuumdb.c:1344 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr "" " -e, --echo zeige die Befehle, die an den Server\n" " gesendet werden\n" -#: vacuumdb.c:1155 +#: vacuumdb.c:1345 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full führe volles Vacuum durch\n" -#: vacuumdb.c:1156 +#: vacuumdb.c:1346 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze Zeilentransaktionsinformationen einfrieren\n" -#: vacuumdb.c:1157 +#: vacuumdb.c:1347 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr " --force-index-cleanup Indexeinträge, die auf tote Tupel zeigen, immer entfernen\n" -#: vacuumdb.c:1158 +#: vacuumdb.c:1348 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr "" " -j, --jobs=NUM so viele parallele Verbindungen zum Vacuum\n" " verwenden\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1349 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr "" " --min-mxid-age=MXID-ALTER minimales Multixact-ID-Alter zu bearbeitender\n" " Tabellen\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1350 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr "" " --min-xid-age=XID-ALTER minimales Transaktions-ID-Alter zu bearbeitender\n" " Tabellen\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1351 +#, c-format +msgid " --missing-stats-only only analyze relations with missing statistics\n" +msgstr " --missing-stats-only nur Relationen mit fehlenden Statistiken analysieren\n" + +#: vacuumdb.c:1352 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr " --no-index-cleanup Indexeinträge, die auf tote Tupel zeigen, nicht entfernen\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1353 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main die Hauptrelation überspringen\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1354 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr " --no-process-toast zur Tabelle gehörige TOAST-Tabelle überspringen\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1355 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate leere Seiten am Ende der Tabelle nicht abschneiden\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1356 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" msgstr " -n, --schema=SCHEMA nur Tabellen in den angegebenen Schemas vacuumen\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1357 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" msgstr " -N, --exclude-schema=SCHEMA Tabellen in den angegebenen Schemas nicht vacuumen\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1358 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr "" " -P, --parallel=PARALLEL-PROZ so viele Background-Worker für Vacuum verwenden,\n" " wenn verfügbar\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1359 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet unterdrücke alle Mitteilungen\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1360 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr "" " --skip-locked Relationen überspringen, die nicht sofort\n" " gesperrt werden können\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1361 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr "" " -t, --table='TABELLE[(SPALTEN)]'\n" " führe Vacuum für bestimmte Tabelle(n) aus\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1362 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose erzeuge viele Meldungen\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1363 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1364 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze aktualisiere Statistiken für den Optimierer\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1365 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr "" " -Z, --analyze-only aktualisiere nur Statistiken für den Optimierer;\n" " kein Vacuum\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1366 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1297,12 +1307,12 @@ msgstr "" " in mehreren Phasen für schnellere Ergebnisse;\n" " kein Vacuum\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1368 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: vacuumdb.c:1185 +#: vacuumdb.c:1376 #, c-format msgid "" "\n" diff --git a/src/bin/scripts/po/es.po b/src/bin/scripts/po/es.po index 82ffa20755691..97f4e2e30684e 100644 --- a/src/bin/scripts/po/es.po +++ b/src/bin/scripts/po/es.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pgscripts (PostgreSQL) 16\n" +"Project-Id-Version: pgscripts (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-03 07:20+0000\n" -"PO-Revision-Date: 2023-10-03 16:25+0200\n" +"POT-Creation-Date: 2025-02-16 19:51+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -54,6 +54,48 @@ msgstr "memoria agotada\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "no se puede duplicar un puntero nulo (error interno)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "no se pudo abrir el archivo «%s»: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "no se pudo sincronizar el sistema de archivos para el archivo «%s»: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "no se pudo hacer stat al archivo «%s»: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "esta instalación no soporta el método de sync «%s»" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "no se pudo abrir el directorio «%s»: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "no se pudo leer el directorio «%s»: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "no se pudo renombrar el archivo de «%s» a «%s»: %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -68,11 +110,11 @@ msgstr "el usuario no existe" msgid "user name lookup failure: error code %lu" msgstr "fallo en la búsqueda de nombre de usuario: código de error %lu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Petición de cancelación enviada\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "No se pudo enviar el paquete de cancelación: " @@ -100,12 +142,27 @@ msgstr "el valor «%s» no es válido para la opción %s" msgid "%s must be in range %d..%d" msgstr "%s debe estar en el rango %d..%d" -#: ../../fe_utils/parallel_slot.c:299 +#: ../../fe_utils/option_utils.c:106 #, c-format -msgid "too many jobs for this platform" -msgstr "demasiados procesos para esta plataforma" +msgid "unrecognized sync method: %s" +msgstr "método sync no reconocido: %s" -#: ../../fe_utils/parallel_slot.c:520 +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "demasiados procesos para esta plataforma: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "descriptor de archivo para socket fuera de rango para select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Intente con menos trabajos." + +#: ../../fe_utils/parallel_slot.c:553 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "falló el procesamiento de la base de datos «%s»: %s" @@ -122,17 +179,22 @@ msgstr[1] "(%lu filas)" msgid "Interrupted\n" msgstr "Interrumpido\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "No se puede imprimir el contenido de la tabla: el número de celdas %lld es igual o mayor al máximo %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "No se puede agregar un encabezado al contenido de la tabla: la cantidad de columnas de %d ha sido excedida.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "No se puede agregar una celda al contenido de la tabla: la cantidad de celdas de %d ha sido excedida.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "No se puede agregar una celda al contenido de la tabla: la cantidad de celdas de %lld ha sido excedida.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "formato de salida no válido (error interno): %d" @@ -147,36 +209,41 @@ msgstr "la consulta falló: %s" msgid "Query was: %s" msgstr "La consulta era: %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:587 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "el argumento de la orden de shell contiene un salto de línea o retorno de carro: «%s»\n" + +#: ../../fe_utils/string_utils.c:760 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "el nombre de base de datos contiene un salto de línea o retorno de carro: «%s»\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:279 vacuumdb.c:299 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:297 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: clusterdb.c:148 +#: clusterdb.c:149 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "no se puede reordenar todas las bases de datos y una de ellas en particular simultáneamente" -#: clusterdb.c:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "no es posible reordenar tablas específicas en todas las bases de datos" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "falló el reordenamiento de la tabla «%s» en la base de datos «%s»: %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "falló el reordenamiento de la base de datos «%s»: %s" @@ -186,7 +253,7 @@ msgstr "falló el reordenamiento de la base de datos «%s»: %s" msgid "%s: clustering database \"%s\"\n" msgstr "%s: reordenando la base de datos «%s»\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -196,19 +263,19 @@ msgstr "" "en una base de datos.\n" "\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1156 +#: clusterdb.c:275 createdb.c:300 createuser.c:417 dropdb.c:171 dropuser.c:171 +#: pg_isready.c:226 reindexdb.c:876 vacuumdb.c:1171 #, c-format msgid "Usage:\n" msgstr "Empleo:\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1157 +#: clusterdb.c:276 reindexdb.c:877 vacuumdb.c:1172 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPCIÓN]... [BASE-DE-DATOS]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1158 +#: clusterdb.c:277 createdb.c:302 createuser.c:419 dropdb.c:173 dropuser.c:173 +#: pg_isready.c:229 reindexdb.c:878 vacuumdb.c:1173 #, c-format msgid "" "\n" @@ -217,48 +284,48 @@ msgstr "" "\n" "Opciones:\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all reordenar todas las bases de datos\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=BASE base de datos a reordenar\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:425 dropdb.c:174 dropuser.c:174 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo mostrar las órdenes a medida que se ejecutan\n" -#: clusterdb.c:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet no escribir ningún mensaje\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABLA reordenar sólo esta(s) tabla(s)\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose desplegar varios mensajes informativos\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:441 dropdb.c:177 dropuser.c:177 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:449 dropdb.c:179 dropuser.c:179 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1187 +#: clusterdb.c:286 createdb.c:319 createuser.c:450 dropdb.c:180 dropuser.c:180 +#: pg_isready.c:235 reindexdb.c:893 vacuumdb.c:1202 #, c-format msgid "" "\n" @@ -267,37 +334,37 @@ msgstr "" "\n" "Opciones de conexión:\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1188 +#: clusterdb.c:287 createuser.c:451 dropdb.c:181 dropuser.c:181 vacuumdb.c:1203 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ANFITRIÓN nombre del servidor o directorio del socket\n" -#: clusterdb.c:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1189 +#: clusterdb.c:288 createuser.c:452 dropdb.c:182 dropuser.c:182 vacuumdb.c:1204 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PUERTO puerto del servidor\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1190 +#: clusterdb.c:289 dropdb.c:183 vacuumdb.c:1205 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USUARIO nombre de usuario para la conexión\n" -#: clusterdb.c:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1191 +#: clusterdb.c:290 createuser.c:454 dropdb.c:184 dropuser.c:184 vacuumdb.c:1206 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir contraseña\n" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1192 +#: clusterdb.c:291 createuser.c:455 dropdb.c:185 dropuser.c:185 vacuumdb.c:1207 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password forzar la petición de contraseña\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1193 +#: clusterdb.c:292 dropdb.c:186 vacuumdb.c:1208 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE base de datos de mantención alternativa\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "" "\n" @@ -306,8 +373,8 @@ msgstr "" "\n" "Lea la descripción de la orden CLUSTER de SQL para obtener mayores detalles.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1195 +#: clusterdb.c:294 createdb.c:327 createuser.c:456 dropdb.c:187 dropuser.c:186 +#: pg_isready.c:240 reindexdb.c:901 vacuumdb.c:1210 #, c-format msgid "" "\n" @@ -316,8 +383,8 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1196 +#: clusterdb.c:295 createdb.c:328 createuser.c:457 dropdb.c:188 dropuser.c:187 +#: pg_isready.c:241 reindexdb.c:902 vacuumdb.c:1211 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" @@ -330,43 +397,43 @@ msgstr[0] "la consulta retornó %d fila en lugar de una: %s" msgstr[1] "la consulta retornó %d filas en lugar de una: %s" #. translator: abbreviation for "yes" -#: common.c:131 +#: common.c:132 msgid "y" msgstr "s" #. translator: abbreviation for "no" -#: common.c:133 +#: common.c:134 msgid "n" msgstr "n" #. translator: This is a question followed by the translated options for #. "yes" and "no". -#: common.c:143 +#: common.c:144 #, c-format msgid "%s (%s/%s) " msgstr "%s (%s/%s) " -#: common.c:164 +#: common.c:165 #, c-format msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Por favor conteste «%s» o «%s».\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "«%s» no es un nombre válido de codificación" -#: createdb.c:250 +#: createdb.c:262 #, c-format msgid "database creation failed: %s" msgstr "falló la creación de la base de datos: %s" -#: createdb.c:269 +#: createdb.c:281 #, c-format msgid "comment creation failed (database was created): %s" msgstr "falló la creación del comentario (la base de datos fue creada): %s" -#: createdb.c:287 +#: createdb.c:299 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -375,119 +442,124 @@ msgstr "" "%s crea una base de datos PostgreSQL.\n" "\n" -#: createdb.c:289 +#: createdb.c:301 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [OPCIÓN]... [NOMBRE] [DESCRIPCIÓN]\n" -#: createdb.c:291 +#: createdb.c:303 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=TBLSPC tablespace por omisión de la base de datos\n" -#: createdb.c:292 reindexdb.c:756 +#: createdb.c:304 reindexdb.c:882 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo mostrar las órdenes enviadas al servidor\n" -#: createdb.c:293 +#: createdb.c:305 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=CODIF codificación para la base de datos\n" -#: createdb.c:294 +#: createdb.c:306 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOCALE configuración regional para la base de datos\n" -#: createdb.c:295 +#: createdb.c:307 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOCALE configuración LC_COLLATE para la base de datos\n" -#: createdb.c:296 +#: createdb.c:308 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOCALE configuración LC_CTYPE para la base de datos\n" -#: createdb.c:297 +#: createdb.c:309 +#, c-format +msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=LOCALE configuración regional builtin para la base de datos\n" + +#: createdb.c:310 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE configuración regional ICU para la base de datos\n" -#: createdb.c:298 +#: createdb.c:311 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=REGLAS configuración de reglas ICU para la base de datos\n" -#: createdb.c:299 +#: createdb.c:312 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default collation\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " proveedor de configuración regional para el ordenamiento\n" " por omisión de las bases de datos\n" -#: createdb.c:301 +#: createdb.c:314 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --owner=DUEÑO usuario que será dueño de la base de datos\n" -#: createdb.c:302 +#: createdb.c:315 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr "" " -S, --strategy=ESTRATEGIA estrategia de creación de bases de datos\n" " wal_log o file_copy\n" -#: createdb.c:303 +#: createdb.c:316 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=PATRÓN base de datos patrón a copiar\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:317 reindexdb.c:891 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:318 reindexdb.c:892 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:320 reindexdb.c:894 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ANFITRIÓN nombre del servidor o directorio del socket\n" -#: createdb.c:308 reindexdb.c:769 +#: createdb.c:321 reindexdb.c:895 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PUERTO puerto del servidor\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:322 reindexdb.c:896 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USUARIO nombre de usuario para la conexión\n" -#: createdb.c:310 reindexdb.c:771 +#: createdb.c:323 reindexdb.c:897 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password nunca pedir contraseña\n" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:324 reindexdb.c:898 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password forzar la petición de contraseña\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:325 reindexdb.c:899 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE base de datos de mantención alternativa\n" -#: createdb.c:313 +#: createdb.c:326 #, c-format msgid "" "\n" @@ -526,17 +598,17 @@ msgstr "¿Debe permitírsele al rol la creación de bases de datos?" msgid "Shall the new role be allowed to create more new roles?" msgstr "¿Debe permitírsele al rol la creación de otros roles?" -#: createuser.c:309 +#: createuser.c:311 #, c-format msgid "password encryption failed: %s" msgstr "el cifrado de la contraseña falló: %s" -#: createuser.c:400 +#: createuser.c:402 #, c-format msgid "creation of new role failed: %s" msgstr "falló la creación del nuevo rol: %s" -#: createuser.c:414 +#: createuser.c:416 #, c-format msgid "" "%s creates a new PostgreSQL role.\n" @@ -545,46 +617,46 @@ msgstr "" "%s crea un nuevo rol de PostgreSQL.\n" "\n" -#: createuser.c:416 dropuser.c:171 +#: createuser.c:418 dropuser.c:172 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" msgstr " %s [OPCIÓN]... [ROL]\n" -#: createuser.c:418 +#: createuser.c:420 #, c-format msgid "" " -a, --with-admin=ROLE ROLE will be a member of new role with admin\n" " option\n" msgstr " -a, --with-admin=ROL ROL será miembro del nuevo rol con “opción de admin”\n" -#: createuser.c:420 +#: createuser.c:422 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr "" " -c, --connection-limit=N límite de conexiones para el rol\n" " (predeterminado: sin límite)\n" -#: createuser.c:421 +#: createuser.c:423 #, c-format msgid " -d, --createdb role can create new databases\n" msgstr " -d, --createdb el rol podrá crear bases de datos\n" -#: createuser.c:422 +#: createuser.c:424 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr " -D, --no-createdb el rol no podrá crear bases de datos (predeterm.)\n" -#: createuser.c:424 +#: createuser.c:426 #, c-format msgid " -g, --member-of=ROLE new role will be a member of ROLE\n" msgstr " -g, --member-of=ROL el nuevo rol será un miembro de ROL\n" -#: createuser.c:425 +#: createuser.c:427 #, c-format msgid " --role=ROLE (same as --member-of, deprecated)\n" msgstr " --role=ROL (lo mismo que --member-of; obsoleto)\n" -#: createuser.c:426 +#: createuser.c:428 #, c-format msgid "" " -i, --inherit role inherits privileges of roles it is a\n" @@ -593,52 +665,52 @@ msgstr "" " -i, --inherit el rol heredará los privilegios de los roles de\n" " los cuales es miembro (predeterminado)\n" -#: createuser.c:428 +#: createuser.c:430 #, c-format msgid " -I, --no-inherit role does not inherit privileges\n" msgstr " -I, --no-inherit rol no heredará privilegios\n" -#: createuser.c:429 +#: createuser.c:431 #, c-format msgid " -l, --login role can login (default)\n" msgstr " -l, --login el rol podrá conectarse (predeterminado)\n" -#: createuser.c:430 +#: createuser.c:432 #, c-format msgid " -L, --no-login role cannot login\n" msgstr " -L, --no-login el rol no podrá conectarse\n" -#: createuser.c:431 +#: createuser.c:433 #, c-format msgid " -m, --with-member=ROLE ROLE will be a member of new role\n" msgstr " -m, --with-member=ROL ROL será miembro del nuevo rol\n" -#: createuser.c:432 +#: createuser.c:434 #, c-format msgid " -P, --pwprompt assign a password to new role\n" msgstr " -P, --pwprompt asignar una contraseña al nuevo rol\n" -#: createuser.c:433 +#: createuser.c:435 #, c-format msgid " -r, --createrole role can create new roles\n" msgstr " -r, --createrole el rol podrá crear otros roles\n" -#: createuser.c:434 +#: createuser.c:436 #, c-format msgid " -R, --no-createrole role cannot create roles (default)\n" msgstr " -R, --no-createrole el rol no podrá crear otros roles (predeterminado)\n" -#: createuser.c:435 +#: createuser.c:437 #, c-format msgid " -s, --superuser role will be superuser\n" msgstr " -s, --superuser el rol será un superusuario\n" -#: createuser.c:436 +#: createuser.c:438 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" msgstr " -S, --no-superuser el rol no será un superusuario (predeterminado)\n" -#: createuser.c:437 +#: createuser.c:439 #, c-format msgid "" " -v, --valid-until=TIMESTAMP\n" @@ -647,7 +719,7 @@ msgstr "" " -v, --valid-until=TIEMPO\n" " fecha/hora de expiración de contraseña para el rol\n" -#: createuser.c:440 +#: createuser.c:442 #, c-format msgid "" " --interactive prompt for missing role name and attributes rather\n" @@ -656,14 +728,14 @@ msgstr "" " --interactive preguntar los nombres y atributos de rol faltantes\n" " en lugar de asumir los valores por omisión\n" -#: createuser.c:442 +#: createuser.c:444 #, c-format msgid " --bypassrls role can bypass row-level security (RLS) policy\n" msgstr "" " --bypassrls el rol puede sobrepasar la política de\n" " seguridad de registros (RLS)\n" -#: createuser.c:443 +#: createuser.c:445 #, c-format msgid "" " --no-bypassrls role cannot bypass row-level security (RLS) policy\n" @@ -672,17 +744,17 @@ msgstr "" " --no-bypassrls el rol no puede sobrepasar la política de seguridad\n" " de registros (por omisión)\n" -#: createuser.c:445 +#: createuser.c:447 #, c-format msgid " --replication role can initiate replication\n" msgstr " --replication el rol podrá iniciar replicación\n" -#: createuser.c:446 +#: createuser.c:448 #, c-format msgid " --no-replication role cannot initiate replication (default)\n" msgstr " --no-replication el rol no puede iniciar replicación (por omisión)\n" -#: createuser.c:451 +#: createuser.c:453 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr "" @@ -703,12 +775,12 @@ msgstr "La base de datos «%s» será eliminada permanentemente.\n" msgid "Are you sure?" msgstr "¿Está seguro?" -#: dropdb.c:157 +#: dropdb.c:156 #, c-format msgid "database removal failed: %s" msgstr "falló la eliminación de la base de datos: %s" -#: dropdb.c:171 +#: dropdb.c:170 #, c-format msgid "" "%s removes a PostgreSQL database.\n" @@ -717,22 +789,22 @@ msgstr "" "%s elimina una base de datos de PostgreSQL.\n" "\n" -#: dropdb.c:173 +#: dropdb.c:172 #, c-format msgid " %s [OPTION]... DBNAME\n" msgstr " %s [OPCIÓN]... BASE-DE-DATOS\n" -#: dropdb.c:176 +#: dropdb.c:175 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" msgstr " -f, --force intentar cancelar otras conexiones antes de borrar\n" -#: dropdb.c:177 +#: dropdb.c:176 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr " -i, --interactive preguntar antes de eliminar\n" -#: dropdb.c:179 +#: dropdb.c:178 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" msgstr " --if-exists no reportar error si la base de datos no existe\n" @@ -751,12 +823,12 @@ msgstr "falta el nombre de rol requerido" msgid "Role \"%s\" will be permanently removed.\n" msgstr "El rol «%s» será eliminado permanentemente.\n" -#: dropuser.c:154 +#: dropuser.c:155 #, c-format msgid "removal of role \"%s\" failed: %s" msgstr "falló la eliminación del rol «%s»: %s" -#: dropuser.c:169 +#: dropuser.c:170 #, c-format msgid "" "%s removes a PostgreSQL role.\n" @@ -765,7 +837,7 @@ msgstr "" "%s elimina un rol de PostgreSQL.\n" "\n" -#: dropuser.c:174 +#: dropuser.c:175 #, c-format msgid "" " -i, --interactive prompt before deleting anything, and prompt for\n" @@ -774,12 +846,12 @@ msgstr "" " -i, --interactive preguntar antes de eliminar cualquier cosa, y\n" " preguntar el nombre de rol si no se especifica\n" -#: dropuser.c:177 +#: dropuser.c:178 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr " --if-exists no reportar error si el usuario no existe\n" -#: dropuser.c:182 +#: dropuser.c:183 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr "" @@ -872,94 +944,54 @@ msgstr "" msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USUARIO nombre de usuario para la conexión\n" -#: reindexdb.c:209 -#, c-format -msgid "cannot reindex all databases and a specific one at the same time" -msgstr "no se puede reindexar todas las bases de datos y una de ellas en particular simultáneamente" - -#: reindexdb.c:211 -#, c-format -msgid "cannot reindex all databases and system catalogs at the same time" -msgstr "no se puede reindexar todas las bases de datos y los catálogos del sistema simultáneamente" - -#: reindexdb.c:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "no es posible reindexar esquemas específicos en todas las bases de datos" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "no es posible reindexar tablas específicas en todas las bases de datos" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "no es posible reindexar índices específicos en todas las bases de datos" - -#: reindexdb.c:227 -#, c-format -msgid "cannot reindex specific schema(s) and system catalogs at the same time" -msgstr "no es posible reindexar esquemas específicos y los catálogos del sistema simultáneamente" - -#: reindexdb.c:229 -#, c-format -msgid "cannot reindex specific table(s) and system catalogs at the same time" -msgstr "no es posible reindexar tablas específicas y los catálogos del sistema simultáneamente" - -#: reindexdb.c:231 -#, c-format -msgid "cannot reindex specific index(es) and system catalogs at the same time" -msgstr "no es posible reindexar índices específicos y los catálogos del sistema simultáneamente" - -#: reindexdb.c:234 +#: reindexdb.c:210 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "no se puede usar múltiples procesos para reindexar índices de sistema" -#: reindexdb.c:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "no se puede usar múltiples procesos para reindexar índices" +msgid "cannot reindex all databases and a specific one at the same time" +msgstr "no se puede reindexar todas las bases de datos y una de ellas en particular simultáneamente" -#: reindexdb.c:323 reindexdb.c:330 vacuumdb.c:525 vacuumdb.c:532 vacuumdb.c:539 -#: vacuumdb.c:546 vacuumdb.c:553 vacuumdb.c:560 vacuumdb.c:567 vacuumdb.c:572 -#: vacuumdb.c:576 vacuumdb.c:580 vacuumdb.c:584 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:514 vacuumdb.c:521 vacuumdb.c:528 +#: vacuumdb.c:535 vacuumdb.c:542 vacuumdb.c:549 vacuumdb.c:556 vacuumdb.c:563 +#: vacuumdb.c:570 vacuumdb.c:577 vacuumdb.c:584 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "no se puede usar la opción «%s» cuando con versiones más antiguas que PostgreSQL %s" -#: reindexdb.c:561 +#: reindexdb.c:586 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "falló la reindexación de la base de datos «%s»: %s" -#: reindexdb.c:565 +#: reindexdb.c:590 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "falló la reindexación del índice «%s» en la base de datos «%s»: %s" -#: reindexdb.c:569 +#: reindexdb.c:594 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "falló la reindexación del esquema «%s» en la base de datos «%s»: %s" -#: reindexdb.c:573 +#: reindexdb.c:598 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "falló la reindexación de los catálogos de sistema en la base de datos «%s»: %s" -#: reindexdb.c:577 +#: reindexdb.c:602 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "falló la reindexación de la tabla «%s» en la base de datos «%s»: %s" -#: reindexdb.c:732 +#: reindexdb.c:832 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: reindexando la base de datos «%s»\n" -#: reindexdb.c:749 +#: reindexdb.c:875 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -968,62 +1000,62 @@ msgstr "" "%s reindexa una base de datos PostgreSQL.\n" "\n" -#: reindexdb.c:753 +#: reindexdb.c:879 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all reindexar todas las bases de datos\n" -#: reindexdb.c:754 +#: reindexdb.c:880 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently reindexar en modo concurrente\n" -#: reindexdb.c:755 +#: reindexdb.c:881 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=BASE-DATOS base de datos a reindexar\n" -#: reindexdb.c:757 +#: reindexdb.c:883 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=ÍNDICE recrear sólo este o estos índice(s)\n" -#: reindexdb.c:758 +#: reindexdb.c:884 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=NÚM usar esta cantidad de conexiones concurrentes\n" -#: reindexdb.c:759 +#: reindexdb.c:885 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet no desplegar mensajes\n" -#: reindexdb.c:760 +#: reindexdb.c:886 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system sólo reindexar los catálogos del sistema\n" -#: reindexdb.c:761 +#: reindexdb.c:887 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=ESQUEMA reindexar sólo este o estos esquemas\n" -#: reindexdb.c:762 +#: reindexdb.c:888 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLA reindexar sólo esta(s) tabla(s)\n" -#: reindexdb.c:763 +#: reindexdb.c:889 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=TABLESPACE tablespace donde se reconstruirán los índices\n" -#: reindexdb.c:764 +#: reindexdb.c:890 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose desplegar varios mensajes informativos\n" -#: reindexdb.c:774 +#: reindexdb.c:900 #, c-format msgid "" "\n" @@ -1032,95 +1064,80 @@ msgstr "" "\n" "Lea la descripción de la orden REINDEX de SQL para obtener mayores detalles.\n" -#: vacuumdb.c:312 vacuumdb.c:315 vacuumdb.c:318 vacuumdb.c:321 vacuumdb.c:324 -#: vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:342 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "no se puede usar la opción «%s» cuando se está sólo actualizando estadísticas" -#: vacuumdb.c:345 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "no se puede usar la opción «%s» cuando se está ejecutando vacuum full" -#: vacuumdb.c:351 vacuumdb.c:359 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "no se puede usar la opción «%s» junto con la opción «%s»" -#: vacuumdb.c:430 +#: vacuumdb.c:432 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "no se puede limpiar todas las bases de datos y una de ellas en particular simultáneamente" -#: vacuumdb.c:434 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "no es posible limpiar tablas específicas en todas las bases de datos" - -#: vacuumdb.c:438 -#, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "no es posible limpiar esquemas específicos en todas las bases de datos" - -#: vacuumdb.c:442 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "no es posible excluir esquemas específicos en todas las bases de datos" - -#: vacuumdb.c:446 +#: vacuumdb.c:436 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "no se puede limpiar todas las tablas en esquema(s) y tabla(s) específicas simultáneamente" -#: vacuumdb.c:450 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "no es posible limpiar tablas específicas y excluir esquema(s) simultáneamente" -#: vacuumdb.c:454 +#: vacuumdb.c:444 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "no se puede limpiar todas las tablas en esquema(s) y excluir esquema(s) simultáneamente" -#: vacuumdb.c:467 +#: vacuumdb.c:457 #, c-format msgid "out of memory" msgstr "memoria agotada" -#: vacuumdb.c:512 +#: vacuumdb.c:501 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Generando estadísticas mínimas para el optimizador (tamaño = 1)" -#: vacuumdb.c:513 +#: vacuumdb.c:502 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Generando estadísticas medias para el optimizador (tamaño = 10)" -#: vacuumdb.c:514 +#: vacuumdb.c:503 msgid "Generating default (full) optimizer statistics" msgstr "Generando estadísticas predeterminadas (completas) para el optimizador" -#: vacuumdb.c:593 +#: vacuumdb.c:594 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: procesando la base de datos «%s»: %s\n" -#: vacuumdb.c:596 +#: vacuumdb.c:597 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: limpiando la base de datos «%s»\n" -#: vacuumdb.c:1144 +#: vacuumdb.c:1159 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "falló la limpieza de la tabla «%s» en la base de datos «%s»: %s" -#: vacuumdb.c:1147 +#: vacuumdb.c:1162 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "falló la limpieza de la base de datos «%s»: %s" -#: vacuumdb.c:1155 +#: vacuumdb.c:1170 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1129,136 +1146,136 @@ msgstr "" "%s limpia (VACUUM) y analiza una base de datos PostgreSQL.\n" "\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1174 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all limpia todas las bases de datos\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1175 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=SZ tamaño de anillo de búfers a usar para vacuum\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1176 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=BASE base de datos a limpiar\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1177 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping desactiva todo comportamiento de saltar páginas\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1178 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo mostrar las órdenes enviadas al servidor\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1179 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full usar «vacuum full»\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1180 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze usar «vacuum freeze»\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1181 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr " --force-index-cleanup siempre eliminar entradas de índice que apunten a tuplas muertas\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1182 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr " -j, --jobs=NUM usar esta cantidad de conexiones concurrentes\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1183 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr " --min-mxid-age=EDAD_MXID edad de multixact ID mínima de tablas a limpiar\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1184 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr " --min-xid-age=EDAD_XID edad de ID de transacción mínima de tablas a limpiar\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1185 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr " --no-index-cleanup no eliminar entradas de índice que apunten a tuplas muertas\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1186 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main omitir la relación principal\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1187 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr " --no-process-toast omitir la tabla TOAST asociada con la tabla a la que se hará vacuum\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1188 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate no truncar las páginas vacías al final de la tabla\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1189 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" msgstr " -n, --schema=ESQUEMA limpia sólo tablas en el/los esquemas especificados\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1190 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" msgstr " -N, --exclude-schema=ESQUEMA no limpia tablas en el/los esquemas especificados\n" -#: vacuumdb.c:1176 +#: vacuumdb.c:1191 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr " -P, --parallel=NPROCS usar esta cantidad de procesos para vacuum, si están disponibles\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1192 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet no desplegar mensajes\n" -#: vacuumdb.c:1178 +#: vacuumdb.c:1193 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr " --skip-locked ignorar relaciones que no pueden bloquearse inmediatamente\n" -#: vacuumdb.c:1179 +#: vacuumdb.c:1194 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr "" " -t, --table='TABLA[(COLUMNAS)]'\n" " limpiar sólo esta(s) tabla(s)\n" -#: vacuumdb.c:1180 +#: vacuumdb.c:1195 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose desplegar varios mensajes informativos\n" -#: vacuumdb.c:1181 +#: vacuumdb.c:1196 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: vacuumdb.c:1182 +#: vacuumdb.c:1197 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze actualizar las estadísticas del optimizador\n" -#: vacuumdb.c:1183 +#: vacuumdb.c:1198 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr "" " -Z, --analyze-only sólo actualizar las estadísticas del optimizador;\n" " no hacer vacuum\n" -#: vacuumdb.c:1184 +#: vacuumdb.c:1199 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1268,12 +1285,12 @@ msgstr "" " en múltiples etapas para resultados más rápidos;\n" " no hacer vacuum\n" -#: vacuumdb.c:1186 +#: vacuumdb.c:1201 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: vacuumdb.c:1194 +#: vacuumdb.c:1209 #, c-format msgid "" "\n" diff --git a/src/bin/scripts/po/fr.po b/src/bin/scripts/po/fr.po index f17e17606ea11..1582cf94510a1 100644 --- a/src/bin/scripts/po/fr.po +++ b/src/bin/scripts/po/fr.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-10-29 17:19+0000\n" -"PO-Revision-Date: 2023-10-30 13:38+0100\n" +"POT-Creation-Date: 2024-08-23 14:21+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -21,7 +21,7 @@ msgstr "" "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.4\n" +"X-Generator: Poedit 3.5\n" #: ../../../src/common/logging.c:276 #, c-format @@ -54,6 +54,48 @@ msgstr "mémoire épuisée\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ne peut pas dupliquer un pointeur nul (erreur interne)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "n'a pas pu ouvrir le fichier « %s » : %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le système de fichiers pour le fichier « %s » : %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "n'a pas pu tester le fichier « %s » : %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "cette construction ne supporte pas la méthode de synchronisation « %s »" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "n'a pas pu ouvrir le répertoire « %s » : %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "n'a pas pu lire le répertoire « %s » : %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "n'a pas pu synchroniser sur disque (fsync) le fichier « %s » : %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "n'a pas pu renommer le fichier « %s » en « %s » : %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -68,11 +110,11 @@ msgstr "l'utilisateur n'existe pas" msgid "user name lookup failure: error code %lu" msgstr "échec de la recherche du nom d'utilisateur : code d'erreur %lu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Requête d'annulation envoyée\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "N'a pas pu envoyer la requête d'annulation : " @@ -100,6 +142,11 @@ msgstr "valeur « %s » invalide pour l'option %s" msgid "%s must be in range %d..%d" msgstr "%s doit être compris entre %d et %d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "méthode de synchronisation non reconnu : %s" + #: ../../fe_utils/parallel_slot.c:317 #, c-format msgid "too many jobs for this platform: %d" @@ -132,21 +179,26 @@ msgstr[1] "(%lu lignes)" msgid "Interrupted\n" msgstr "Interrompu\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Ne peut pas afficher le contenu de la table : le nombre de cellules %lld est égal à ou dépasse le maximum %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" "Ne peut pas ajouter l'en-tête au contenu de la table : le nombre de colonnes\n" "%d est dépassé.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" msgstr "" "Ne peut pas ajouter une cellule au contenu de la table : le nombre total des\n" -"cellules %d est dépassé.\n" +"cellules %lld est dépassé.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "format de sortie invalide (erreur interne) : %d" @@ -161,36 +213,41 @@ msgstr "échec de la requête : %s" msgid "Query was: %s" msgstr "La requête était : %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "l'argument de la commande shell contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "le nom de la base contient un retour à la ligne ou un retour chariot : « %s »\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:279 vacuumdb.c:299 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Essayez « %s --help » pour plus d'informations." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:297 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "trop d'arguments en ligne de commande (le premier étant « %s »)" -#: clusterdb.c:148 +#: clusterdb.c:149 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "ne peut pas réorganiser à la fois toutes les bases de données et une base spécifique via la commande CLUSTER" -#: clusterdb.c:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "ne peut pas réorganiser la(les) table(s) spécifique(s) dans toutes les bases de données" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "la réorganisation de la table « %s » de la base de données « %s » avec la commande CLUSTER a échoué : %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "la réorganisation de la base de données « %s » via la commande CLUSTER a échoué : %s" @@ -200,7 +257,7 @@ msgstr "la réorganisation de la base de données « %s » via la commande CLUST msgid "%s: clustering database \"%s\"\n" msgstr "%s : réorganisation de la base de données « %s » via la commande CLUSTER\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -210,19 +267,19 @@ msgstr "" "base de données via la commande CLUSTER.\n" "\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1156 +#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 #, c-format msgid "Usage:\n" msgstr "Usage :\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1157 +#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [BASE]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1158 +#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 #, c-format msgid "" "\n" @@ -231,48 +288,48 @@ msgstr "" "\n" "Options :\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all réorganise toutes les bases de données\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=BASE réorganise la base de données spécifiée\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo affiche les commandes envoyées au serveur\n" -#: clusterdb.c:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet n'écrit aucun message\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABLE réorganise uniquement la table spécifiée\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose mode verbeux\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1187 +#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 #, c-format msgid "" "\n" @@ -281,39 +338,39 @@ msgstr "" "\n" "Options de connexion :\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1188 +#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HÔTE hôte du serveur de bases de données ou\n" " répertoire des sockets\n" -#: clusterdb.c:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1189 +#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT port du serveur de bases de données\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1190 +#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" -#: clusterdb.c:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1191 +#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 #, 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" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1192 +#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password force la demande d'un mot de passe\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1193 +#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE indique une autre base par défaut\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "" "\n" @@ -322,8 +379,8 @@ msgstr "" "\n" "Lire la description de la commande SQL CLUSTER pour de plus amples détails.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1195 +#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 #, c-format msgid "" "\n" @@ -332,8 +389,8 @@ msgstr "" "\n" "Rapporter les bogues à <%s>.\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1196 +#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 #, c-format msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" @@ -367,22 +424,22 @@ msgstr "%s (%s/%s) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Merci de répondre « %s » ou « %s ».\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "« %s » n'est pas un nom d'encodage valide" -#: createdb.c:250 +#: createdb.c:260 #, c-format msgid "database creation failed: %s" msgstr "la création de la base de données a échoué : %s" -#: createdb.c:269 +#: createdb.c:279 #, c-format msgid "comment creation failed (database was created): %s" msgstr "l'ajout du commentaire a échoué (la base de données a été créée) : %s" -#: createdb.c:287 +#: createdb.c:297 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -391,120 +448,125 @@ msgstr "" "%s crée une base de données PostgreSQL.\n" "\n" -#: createdb.c:289 +#: createdb.c:299 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [OPTION]... [BASE] [DESCRIPTION]\n" -#: createdb.c:291 +#: createdb.c:301 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=TABLESPACE tablespace par défaut de la base de données\n" -#: createdb.c:292 reindexdb.c:756 +#: createdb.c:302 reindexdb.c:874 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo affiche les commandes envoyées au serveur\n" -#: createdb.c:293 +#: createdb.c:303 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=ENCODAGE encodage de la base de données\n" -#: createdb.c:294 +#: createdb.c:304 #, 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 données\n" -#: createdb.c:295 +#: createdb.c:305 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOCALE paramètre LC_COLLATE pour la base de données\n" -#: createdb.c:296 +#: createdb.c:306 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOCALE paramètre LC_CTYPE pour la base de données\n" -#: createdb.c:297 +#: createdb.c:307 +#, c-format +msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=LOCALE paramètre de la locale native pour la base de données\n" + +#: createdb.c:308 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE paramètre de la locale ICU pour la base de données\n" -#: createdb.c:298 +#: createdb.c:309 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" -msgstr " --icu-rules=RÈGLES configuration des règles ICU pour la base de données\n" +msgstr " --icu-rules=RÈGLES configuration des règles ICU pour la base de données\n" -#: createdb.c:299 +#: createdb.c:310 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default collation\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " fournisseur de locale pour la collation par défaut de la base de données\n" -#: createdb.c:301 +#: createdb.c:312 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr "" " -O, --owner=PROPRIÉTAIRE nom du propriétaire de la nouvelle base de\n" " données\n" -#: createdb.c:302 +#: createdb.c:313 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr " -S, --strategy=STRATEGIE stratégie de création de base (wal_log ou file_copy)\n" -#: createdb.c:303 +#: createdb.c:314 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=MODÈLE base de données modèle à copier\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:315 reindexdb.c:883 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:316 reindexdb.c:884 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:318 reindexdb.c:886 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HÔTE hôte du serveur de bases de données\n" " ou répertoire des sockets\n" -#: createdb.c:308 reindexdb.c:769 +#: createdb.c:319 reindexdb.c:887 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT port du serveur de bases de données\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:320 reindexdb.c:888 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" -#: createdb.c:310 reindexdb.c:771 +#: createdb.c:321 reindexdb.c:889 #, 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" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:322 reindexdb.c:890 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password force la demande d'un mot de passe\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:323 reindexdb.c:891 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=BASE indique une autre base par défaut\n" -#: createdb.c:313 +#: createdb.c:324 #, c-format msgid "" "\n" @@ -571,7 +633,7 @@ msgstr " %s [OPTION]... [RÔLE]\n" msgid "" " -a, --with-admin=ROLE ROLE will be a member of new role with admin\n" " option\n" -msgstr " -a, --with-admin=ROLE ROLE sera un membre du nouveau rôle avec l'option admin\n" +msgstr " -a, --with-admin=ROLE ROLE sera un membre du nouveau rôle avec l'option admin\n" #: createuser.c:420 #, c-format @@ -595,12 +657,12 @@ msgstr "" #: createuser.c:424 #, c-format msgid " -g, --member-of=ROLE new role will be a member of ROLE\n" -msgstr " -g, --member-of=ROLE le nouveau rôle sera un membre de ROLE\n" +msgstr " -g, --member-of=ROLE le nouveau rôle sera un membre de ROLE\n" #: createuser.c:425 #, c-format msgid " --role=ROLE (same as --member-of, deprecated)\n" -msgstr " --role=ROLE (identique à --member-of, obsolète)\n" +msgstr " --role=ROLE (identique à --member-of, obsolète)\n" #: createuser.c:426 #, c-format @@ -629,7 +691,7 @@ msgstr " -L, --no-login le rôle ne peut pas se connecter\n" #: createuser.c:431 #, c-format msgid " -m, --with-member=ROLE ROLE will be a member of new role\n" -msgstr " -m, --with-member=ROLE ROLE sera un membre du nouveau rôle\n" +msgstr " -m, --with-member=ROLE ROLE sera un membre du nouveau rôle\n" #: createuser.c:432 #, c-format @@ -663,9 +725,7 @@ msgstr "" msgid "" " -v, --valid-until=TIMESTAMP\n" " password expiration date and time for role\n" -msgstr "" -" -v, --valid-until=TIMESTAMP\n" -" date et heure d'expiration du mot de passe pour le rôle\n" +msgstr " -v, --valid-until=TIMESTAMP date et heure d'expiration du mot de passe pour le rôle\n" #: createuser.c:440 #, c-format @@ -679,7 +739,7 @@ msgstr "" #: createuser.c:442 #, c-format msgid " --bypassrls role can bypass row-level security (RLS) policy\n" -msgstr " --bypassrls le rôle peut contourner la politique de sécurité niveau ligne (RLS)\n" +msgstr " --bypassrls le rôle peut contourner la politique de sécurité niveau ligne (RLS)\n" #: createuser.c:443 #, c-format @@ -687,8 +747,8 @@ msgid "" " --no-bypassrls role cannot bypass row-level security (RLS) policy\n" " (default)\n" msgstr "" -" --no-bypassrls le rôle ne peut pas contourner la politique de sécurité niveau ligne (RLS)\n" -" (par défaut)\n" +" --no-bypassrls le rôle ne peut pas contourner la politique de sécurité niveau ligne (RLS)\n" +" (par défaut)\n" #: createuser.c:445 #, c-format @@ -905,94 +965,54 @@ msgstr "" msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=UTILISATEUR nom d'utilisateur pour la connexion\n" -#: reindexdb.c:209 -#, c-format -msgid "cannot reindex all databases and a specific one at the same time" -msgstr "ne peut pas réindexer toutes les bases de données et une base spécifique en même temps" - -#: reindexdb.c:211 -#, c-format -msgid "cannot reindex all databases and system catalogs at the same time" -msgstr "ne peut pas réindexer toutes les bases de données et les catalogues système en même temps" - -#: reindexdb.c:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "ne peut pas réindexer un (des) schéma(s) spécifique(s) dans toutes les bases de données" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "ne peut pas réindexer une (des) table(s) spécifique(s) dans toutes les bases de données" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "ne peut pas réindexer un (des) index spécifique(s) dans toutes les bases de données" - -#: reindexdb.c:227 -#, c-format -msgid "cannot reindex specific schema(s) and system catalogs at the same time" -msgstr "ne peut pas réindexer un (des) schéma(s) spécifique(s) et les catalogues système en même temps" - -#: reindexdb.c:229 -#, c-format -msgid "cannot reindex specific table(s) and system catalogs at the same time" -msgstr "ne peut pas réindexer une (des) table(s) spécifique(s) etles catalogues système en même temps" - -#: reindexdb.c:231 -#, c-format -msgid "cannot reindex specific index(es) and system catalogs at the same time" -msgstr "ne peut pas réindexer un (des) index spécifique(s) et les catalogues système en même temps" - -#: reindexdb.c:234 +#: reindexdb.c:210 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "ne peut pas utiliser plusieurs jobs pour réindexer les catalogues systèmes" -#: reindexdb.c:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "ne peut pas utiliser plusieurs jobs pour réindexer les index" +msgid "cannot reindex all databases and a specific one at the same time" +msgstr "ne peut pas réindexer toutes les bases de données et une base spécifique en même temps" -#: reindexdb.c:323 reindexdb.c:330 vacuumdb.c:525 vacuumdb.c:532 vacuumdb.c:539 -#: vacuumdb.c:546 vacuumdb.c:553 vacuumdb.c:560 vacuumdb.c:567 vacuumdb.c:572 -#: vacuumdb.c:576 vacuumdb.c:580 vacuumdb.c:584 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 +#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 +#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "ne peut utiliser l'option « %s » sur des versions serveurs plus anciennes que PostgreSQL %s" -#: reindexdb.c:561 +#: reindexdb.c:584 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "la réindexation de la base de données « %s » a échoué : %s" -#: reindexdb.c:565 +#: reindexdb.c:588 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "la réindexation de l'index « %s » dans la base de données « %s » a échoué : %s" -#: reindexdb.c:569 +#: reindexdb.c:592 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "la réindexation du schéma « %s » dans la base de données « %s » a échoué : %s" -#: reindexdb.c:573 +#: reindexdb.c:596 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "la réindexation des catalogues systèmes dans la base de données « %s » a échoué : %s" -#: reindexdb.c:577 +#: reindexdb.c:600 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "la réindexation de la table « %s » dans la base de données « %s » a échoué : %s" -#: reindexdb.c:732 +#: reindexdb.c:824 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s : réindexation de la base de données « %s »\n" -#: reindexdb.c:749 +#: reindexdb.c:867 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -1001,66 +1021,66 @@ msgstr "" "%s réindexe une base de données PostgreSQL.\n" "\n" -#: reindexdb.c:753 +#: reindexdb.c:871 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all réindexe toutes les bases de données\n" -#: reindexdb.c:754 +#: reindexdb.c:872 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently réindexation en concurrence\n" -#: reindexdb.c:755 +#: reindexdb.c:873 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=BASE réindexe la base de données spécifiée\n" -#: reindexdb.c:757 +#: reindexdb.c:875 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX réindexe uniquement l'index spécifié\n" -#: reindexdb.c:758 +#: reindexdb.c:876 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr "" " -j, --jobs=NOMBRE utilise ce nombre de connexions concurrentes\n" " pour l'opération de réindexation\n" -#: reindexdb.c:759 +#: reindexdb.c:877 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet n'écrit aucun message\n" -#: reindexdb.c:760 +#: reindexdb.c:878 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system réindexe seulement les catalogues système\n" -#: reindexdb.c:761 +#: reindexdb.c:879 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHÉMA réindexe uniquement le schéma spécifié\n" -#: reindexdb.c:762 +#: reindexdb.c:880 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLE réindexe uniquement la table spécifiée\n" -#: reindexdb.c:763 +#: reindexdb.c:881 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr "" " --tablespace=TABLESPACE précise le tablespace où les index seront\n" " reconstruits\n" -#: reindexdb.c:764 +#: reindexdb.c:882 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose mode verbeux\n" -#: reindexdb.c:774 +#: reindexdb.c:892 #, c-format msgid "" "\n" @@ -1069,95 +1089,80 @@ msgstr "" "\n" "Lire la description de la commande SQL REINDEX pour plus d'informations.\n" -#: vacuumdb.c:312 vacuumdb.c:315 vacuumdb.c:318 vacuumdb.c:321 vacuumdb.c:324 -#: vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:342 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "ne peut pas utiliser l'option « %s » lors de l'exécution d'un ANALYZE seul" -#: vacuumdb.c:345 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "ne peut pas utiliser l'option « %s » lors de l'exécution d'un VACUUM FULL" -#: vacuumdb.c:351 vacuumdb.c:359 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "ne peut pas utiliser l'option « %s » lors de l'option « %s »" -#: vacuumdb.c:430 +#: vacuumdb.c:432 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "ne peut pas exécuter VACUUM sur toutes les bases de données et sur une base spécifique en même temps" -#: vacuumdb.c:434 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "ne peut pas exécuter VACUUM sur une(des) table(s) spécifique(s) dans toutes les bases de données" - -#: vacuumdb.c:438 -#, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "ne peut pas exécuter VACUUM sur les schémas spécifiques dans toutes les bases de données" - -#: vacuumdb.c:442 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "ne peut pas exclure des schémas dans toutes les bases de données" - -#: vacuumdb.c:446 +#: vacuumdb.c:436 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "ne peut pas exécuter VACUUM sur toutes les tables des schémas et sur des tables spécifiques en même temps" -#: vacuumdb.c:450 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "ne peut pas exécuter VACUUM sur des tables spécifiques et exclure des schémas en même temps" -#: vacuumdb.c:454 +#: vacuumdb.c:444 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "ne peut pas exécuter VACUUM sur toutes les tables et exclure des schémas en même temps" -#: vacuumdb.c:467 +#: vacuumdb.c:457 #, c-format msgid "out of memory" msgstr "mémoire épuisée" -#: vacuumdb.c:512 +#: vacuumdb.c:502 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Génération de statistiques minimales pour l'optimiseur (une cible)" -#: vacuumdb.c:513 +#: vacuumdb.c:503 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Génération de statistiques moyennes pour l'optimiseur (dix cibles)" -#: vacuumdb.c:514 +#: vacuumdb.c:504 msgid "Generating default (full) optimizer statistics" msgstr "Génération de statistiques complètes pour l'optimiseur" -#: vacuumdb.c:593 +#: vacuumdb.c:583 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s : traitement de la base de données « %s » %s\n" -#: vacuumdb.c:596 +#: vacuumdb.c:586 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s : exécution de VACUUM sur la base de données « %s »\n" -#: vacuumdb.c:1144 +#: vacuumdb.c:1135 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "l'exécution de VACUUM sur la table « %s » dans la base de données « %s » a échoué : %s" -#: vacuumdb.c:1147 +#: vacuumdb.c:1138 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "l'exécution de VACUUM sur la base de données « %s » a échoué : %s" -#: vacuumdb.c:1155 +#: vacuumdb.c:1146 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1166,154 +1171,154 @@ msgstr "" "%s nettoie et analyse une base de données PostgreSQL.\n" "\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1150 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all exécute VACUUM sur toutes les bases de données\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1151 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=TAILLE taille du buffer spécialisé pour VACUUM\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1152 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=BASE exécute VACUUM sur cette base de données\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1153 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping désactive le comportement page-skipping\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1154 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo affiche les commandes envoyées au serveur\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1155 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full exécute VACUUM en mode FULL\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1156 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr "" " -F, --freeze gèle les informations de transactions des\n" " lignes\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1157 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr "" " --force-index-cleanup supprime toujours les enregistrements dans\n" " l'index pointant vers des lignes mortes\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1158 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr "" " -j, --jobs=NOMBRE utilise ce nombre de connexions concurrentes\n" " pour le VACUUM\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1159 #, 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\n" " multitransactions pour les tables à nettoyer\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1160 #, 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\n" " pour les tables à nettoyer\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1161 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr "" " --no-index-cleanup ne supprime pas les enregistrements dans\n" " l'index pointant vers des lignes mortes\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1162 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main ignore la relation principale\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1163 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr "" " --no-process-toast ignore la table TOAST associée à la table à\n" " traiter\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1164 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr "" " --no-truncate ne supprime pas les pages vides à la fin de\n" " la table\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1165 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" msgstr " -n, --schema=MOTIF exécute VACUUM uniquement sur les tables des schémas indiqués\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1166 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" msgstr " -N, --exclude-schema=MOTIF n'exécute pas VACUUM sur les tables des schémas indiqués\n" -#: vacuumdb.c:1176 +#: vacuumdb.c:1167 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr "" " -P, --parallel=NOMBRE utilise ce nombre de processus en tâche de\n" " fond pour le VACUUM, si possible\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1168 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet n'écrit aucun message\n" -#: vacuumdb.c:1178 +#: vacuumdb.c:1169 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr "" " --skip-locked ignore les relations qui ne peuvent pas être\n" " verrouillées immédiatement\n" -#: vacuumdb.c:1179 +#: vacuumdb.c:1170 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='TABLE[(COLONNES)]' exécute VACUUM sur cette table\n" -#: vacuumdb.c:1180 +#: vacuumdb.c:1171 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose mode verbeux\n" -#: vacuumdb.c:1181 +#: vacuumdb.c:1172 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version affiche la version puis quitte\n" -#: vacuumdb.c:1182 +#: vacuumdb.c:1173 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze met à jour les statistiques de l'optimiseur\n" -#: vacuumdb.c:1183 +#: vacuumdb.c:1174 #, 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" -#: vacuumdb.c:1184 +#: vacuumdb.c:1175 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1323,12 +1328,12 @@ msgstr "" " l'optimiseur, en plusieurs étapes pour de\n" " meilleurs résultats ; pas de VACUUM\n" -#: vacuumdb.c:1186 +#: vacuumdb.c:1177 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help affiche cette aide puis quitte\n" -#: vacuumdb.c:1194 +#: vacuumdb.c:1185 #, c-format msgid "" "\n" @@ -1336,203 +1341,3 @@ msgid "" msgstr "" "\n" "Lire la description de la commande SQL VACUUM pour plus d'informations.\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 "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid " %s [OPTION]... LANGNAME [DBNAME]\n" -#~ msgstr " %s [OPTION]... NOMLANGAGE [BASE]\n" - -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\n" - -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help affiche cette aide et quitte\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 " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" - -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" - -#~ msgid " -E, --encrypted encrypt stored password\n" -#~ msgstr " -E, --encrypted chiffre le mot de passe stocké\n" - -#~ msgid " -N, --unencrypted do not encrypt stored password\n" -#~ msgstr " -N, --unencrypted ne chiffre pas le mot de passe stocké\n" - -#~ 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 " -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 "" -#~ "%s installs a procedural language into a PostgreSQL database.\n" -#~ "\n" -#~ msgstr "" -#~ "%s installe un langage de procédures dans une base de données PostgreSQL.\n" -#~ "\n" - -#~ msgid "" -#~ "%s removes a procedural language from a database.\n" -#~ "\n" -#~ msgstr "" -#~ "%s supprime un langage procédural d'une base de données.\n" -#~ "\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: %s" -#~ msgstr "%s : %s" - -#~ 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: 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: 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: invalid socket: %s" -#~ msgstr "%s : socket invalide : %s" - -#~ 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: 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 installation failed: %s" -#~ msgstr "%s : l'installation du langage a échoué : %s" - -#~ msgid "%s: language removal failed: %s" -#~ msgstr "%s : la suppression du langage a échoué : %s" - -#~ 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 "%s: query failed: %s" -#~ msgstr "%s : échec de la requête : %s" - -#~ 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 "%s: query was: %s\n" -#~ msgstr "%s : la requête était : %s\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: 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: too many parallel jobs requested (maximum: %d)\n" -#~ msgstr "%s : trop de jobs en parallèle demandés (maximum %d)\n" - -#~ msgid "Could not send cancel request: %s" -#~ msgstr "N'a pas pu envoyer la requête d'annulation : %s" - -#~ msgid "Name" -#~ msgstr "Nom" - -#~ msgid "Procedural Languages" -#~ msgstr "Langages procéduraux" - -#~ msgid "Trusted?" -#~ msgstr "De confiance (trusted) ?" - -#, c-format -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "Essayer « %s --help » pour plus d'informations.\n" - -#, c-format -#~ msgid "cannot reindex system catalogs concurrently, skipping all" -#~ msgstr "ne peut pas réindexer les catalogues système de manière concurrente, ignore tout" - -#~ msgid "could not connect to database %s: %s" -#~ msgstr "n'a pas pu se connecter à la base de données %s : %s" - -#, c-format -#~ msgid "fatal: " -#~ msgstr "fatal : " - -#, c-format -#~ msgid "invalid value for --connection-limit: %s" -#~ msgstr "valeur invalide pour --connection-limit : %s" - -#, c-format -#~ msgid "minimum multixact ID age must be at least 1" -#~ msgstr "l'âge minimum de l'identifiant de multitransaction doit au moins être 1" - -#, c-format -#~ msgid "minimum transaction ID age must be at least 1" -#~ msgstr "l'identifiant de la transaction (-x) doit valoir au moins 1" - -#~ msgid "no" -#~ msgstr "non" - -#, c-format -#~ msgid "number of parallel jobs must be at least 1" -#~ msgstr "le nombre maximum de jobs en parallèle doit être au moins de 1" - -#, c-format -#~ msgid "only one of --locale and --lc-collate can be specified" -#~ msgstr "une seule des options --locale et --lc-collate peut être indiquée" - -#, c-format -#~ msgid "only one of --locale and --lc-ctype can be specified" -#~ msgstr "une seule des options --locale et --lc-ctype peut être indiquée" - -#~ 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" - -#, c-format -#~ msgid "parallel workers for vacuum must be greater than or equal to zero" -#~ msgstr "le nombre de processus parallélisés pour l VACUUM doit être supérieur à zéro" - -#~ msgid "pg_strdup: cannot duplicate null pointer (internal error)\n" -#~ msgstr "pg_strdup : ne peut pas dupliquer un pointeur nul (erreur interne)\n" - -#~ msgid "reindexing of system catalogs failed: %s" -#~ msgstr "la réindexation des catalogues système a échoué : %s" - -#~ msgid "yes" -#~ msgstr "oui" diff --git a/src/bin/scripts/po/ja.po b/src/bin/scripts/po/ja.po index f9b6d53773052..1b6a7b9f99935 100644 --- a/src/bin/scripts/po/ja.po +++ b/src/bin/scripts/po/ja.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: scripts (PostgreSQL 17)\n" +"Project-Id-Version: scripts (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:24+0900\n" -"PO-Revision-Date: 2024-06-14 11:31+0900\n" +"POT-Creation-Date: 2025-03-31 09:54+0900\n" +"PO-Revision-Date: 2025-03-31 16:30+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: jpug-doc \n" "Language: ja\n" @@ -20,22 +20,22 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "エラー: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "警告: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "詳細: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "ヒント: " @@ -51,44 +51,44 @@ msgstr "メモリ不足です\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "nullポインタを複製できません(内部エラー)。\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "ファイル\"%s\"に対してファイルシステムを同期できませんでした: %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "このビルドでは同期方式\"%s\"をサポートしていません" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -177,8 +177,8 @@ msgstr "中断されました\n" #: ../../fe_utils/print.c:3188 #, c-format -msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" -msgstr "テーブルの内容を表示できません: セル数%lldが上限値%lld以上です。\n" +msgid "Cannot print table contents: number of cells % is equal to or exceeds maximum %zu.\n" +msgstr "テーブルの内容を表示できません: セル数%が上限値%zu以上です。\n" #: ../../fe_utils/print.c:3229 #, c-format @@ -187,8 +187,8 @@ msgstr "テーブルの内容に見出しを追加できませんでした:列 #: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" -msgstr "テーブルの内容にセルを追加できません: セルの総数%lldを超過しています。\n" +msgid "Cannot add cell to table content: total cell count of % exceeded.\n" +msgstr "テーブルの内容にセルを追加できません: セルの総数%を超過しています。\n" #: ../../fe_utils/print.c:3530 #, c-format @@ -205,70 +205,70 @@ msgstr "問い合わせが失敗しました: %s" msgid "Query was: %s" msgstr "問い合わせ: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "シェルコマンドの引数に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "データベース名に改行(LF)または復帰(CR)が含まれています: \"%s\"\n" -#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 +#: clusterdb.c:113 clusterdb.c:132 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 +#: reindexdb.c:184 reindexdb.c:203 vacuumdb.c:291 vacuumdb.c:311 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 +#: clusterdb.c:130 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:201 vacuumdb.c:309 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: clusterdb.c:149 +#: clusterdb.c:148 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "全データベースと特定のデータベースを同時にクラスタ化することはできません" -#: clusterdb.c:214 +#: clusterdb.c:213 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "データベース\"%2$s\"のテーブル\"%1$s\"のクラスタ化に失敗しました: %3$s" -#: clusterdb.c:217 +#: clusterdb.c:216 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "データベース\"%s\"のクラスタ化に失敗しました: %s" -#: clusterdb.c:248 +#: clusterdb.c:247 #, c-format msgid "%s: clustering database \"%s\"\n" msgstr "%s: データベース\"%s\"をクラスタ化しています\n" -#: clusterdb.c:274 +#: clusterdb.c:273 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" "\n" msgstr "%sはデータベース内で事前にクラスタ化されているすべてのテーブルをクラスタ化します。\n" -#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 +#: clusterdb.c:274 createdb.c:300 createuser.c:417 dropdb.c:171 dropuser.c:171 +#: pg_isready.c:226 reindexdb.c:898 vacuumdb.c:1337 #, c-format msgid "Usage:\n" msgstr "使用方法:\n" -#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 +#: clusterdb.c:275 reindexdb.c:899 vacuumdb.c:1338 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [オプション]... [データベース名]\n" -#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 +#: clusterdb.c:276 createdb.c:302 createuser.c:419 dropdb.c:173 dropuser.c:173 +#: pg_isready.c:229 reindexdb.c:900 vacuumdb.c:1339 #, c-format msgid "" "\n" @@ -277,48 +277,48 @@ msgstr "" "\n" "オプション:\n" -#: clusterdb.c:278 +#: clusterdb.c:277 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all すべてのデータベースをクラスタ化\n" -#: clusterdb.c:279 +#: clusterdb.c:278 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=DBNAME クラスタ化するデータベース\n" -#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:279 createuser.c:425 dropdb.c:174 dropuser.c:174 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo サーバーへ送信されるコマンドを表示\n" -#: clusterdb.c:281 +#: clusterdb.c:280 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet メッセージを何も出力しない\n" -#: clusterdb.c:282 +#: clusterdb.c:281 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=テーブル名 指定したテーブル(群)のみをクラスタ化\n" -#: clusterdb.c:283 +#: clusterdb.c:282 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 多量のメッセージを出力\n" -#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:283 createuser.c:441 dropdb.c:177 dropuser.c:177 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:284 createuser.c:449 dropdb.c:179 dropuser.c:179 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 +#: clusterdb.c:285 createdb.c:319 createuser.c:450 dropdb.c:180 dropuser.c:180 +#: pg_isready.c:235 reindexdb.c:915 vacuumdb.c:1369 #, c-format msgid "" "\n" @@ -327,39 +327,39 @@ msgstr "" "\n" "接続オプション:\n" -#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 +#: clusterdb.c:286 createuser.c:451 dropdb.c:181 dropuser.c:181 vacuumdb.c:1370 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME データベースサーバーのホストまたはソケット\n" " ディレクトリ\n" -#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 +#: clusterdb.c:287 createuser.c:452 dropdb.c:182 dropuser.c:182 vacuumdb.c:1371 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT データベースサーバーのポート番号\n" -#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 +#: clusterdb.c:288 dropdb.c:183 vacuumdb.c:1372 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME このユーザー名で接続\n" -#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 +#: clusterdb.c:289 createuser.c:454 dropdb.c:184 dropuser.c:184 vacuumdb.c:1373 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password パスワード入力を要求しない\n" -#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 +#: clusterdb.c:290 createuser.c:455 dropdb.c:185 dropuser.c:185 vacuumdb.c:1374 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password パスワードプロンプトを強制表示\n" -#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 +#: clusterdb.c:291 dropdb.c:186 vacuumdb.c:1375 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME 別の保守用データベースを指定\n" -#: clusterdb.c:293 +#: clusterdb.c:292 #, c-format msgid "" "\n" @@ -368,8 +368,8 @@ msgstr "" "\n" "詳細は SQL コマンドの CLUSTER の説明を参照してください。\n" -#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 +#: clusterdb.c:293 createdb.c:327 createuser.c:456 dropdb.c:187 dropuser.c:186 +#: pg_isready.c:240 reindexdb.c:923 vacuumdb.c:1377 #, c-format msgid "" "\n" @@ -378,13 +378,13 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 +#: clusterdb.c:294 createdb.c:328 createuser.c:457 dropdb.c:188 dropuser.c:187 +#: pg_isready.c:241 reindexdb.c:924 vacuumdb.c:1378 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: common.c:107 +#: common.c:106 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -417,17 +417,17 @@ msgstr " \"%s\" または \"%s\" に答えてください\n" msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" は有効な符号化方式名ではありません" -#: createdb.c:260 +#: createdb.c:262 #, c-format msgid "database creation failed: %s" msgstr "データベースの生成に失敗しました:%s" -#: createdb.c:279 +#: createdb.c:281 #, c-format msgid "comment creation failed (database was created): %s" msgstr "コメントの生成に失敗(データベースは生成されました): %s" -#: createdb.c:297 +#: createdb.c:299 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -436,57 +436,57 @@ msgstr "" "%sはPostgreSQLデータベースを生成します。\n" "\n" -#: createdb.c:299 +#: createdb.c:301 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [オプション]... [データベース名] [説明]\n" -#: createdb.c:301 +#: createdb.c:303 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=TABLESPACE データベースのデフォルトテーブルスペース名\n" -#: createdb.c:302 reindexdb.c:874 +#: createdb.c:304 reindexdb.c:904 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo サーバーへ送信されるコマンドを表示\n" -#: createdb.c:303 +#: createdb.c:305 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=ENCODING データベースの符号化方式\n" -#: createdb.c:304 +#: createdb.c:306 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOCALE データベースのロケール設定\n" -#: createdb.c:305 +#: createdb.c:307 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOCALE データベースのLC_COLLATE設定\n" -#: createdb.c:306 +#: createdb.c:308 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOCALE データベースのLC_CTYPE設定\n" -#: createdb.c:307 +#: createdb.c:309 #, c-format msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" msgstr " --builtin-locale=LOCALE データベースの組み込みロケールを指定\n" -#: createdb.c:308 +#: createdb.c:310 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE データベースのICUロケールを指定\n" -#: createdb.c:309 +#: createdb.c:311 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=RULES データベースのICUルール(群)を設定\n" -#: createdb.c:310 +#: createdb.c:312 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -496,64 +496,64 @@ msgstr "" " データベースのデフォルト照合順序のロケール\n" " プロバイダ\n" -#: createdb.c:312 +#: createdb.c:314 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --owner=OWNER 新しいデータベースを所有するデータベースユーザー\n" -#: createdb.c:313 +#: createdb.c:315 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr " -S, --strategy=STRATEGY データベース生成方法 wal_log または file_copy\n" -#: createdb.c:314 +#: createdb.c:316 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=TEMPLATE コピーするテンプレートデータベース\n" -#: createdb.c:315 reindexdb.c:883 +#: createdb.c:317 reindexdb.c:913 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: createdb.c:316 reindexdb.c:884 +#: createdb.c:318 reindexdb.c:914 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: createdb.c:318 reindexdb.c:886 +#: createdb.c:320 reindexdb.c:916 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME データベースサーバーホストまたはソケット\n" " ディレクトリ\n" -#: createdb.c:319 reindexdb.c:887 +#: createdb.c:321 reindexdb.c:917 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT データベースサーバーのポート番号\n" -#: createdb.c:320 reindexdb.c:888 +#: createdb.c:322 reindexdb.c:918 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME 接続する際のユーザー名\n" -#: createdb.c:321 reindexdb.c:889 +#: createdb.c:323 reindexdb.c:919 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password パスワード入力を要求しない\n" -#: createdb.c:322 reindexdb.c:890 +#: createdb.c:324 reindexdb.c:920 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password パスワードプロンプトを強制\n" -#: createdb.c:323 reindexdb.c:891 +#: createdb.c:325 reindexdb.c:921 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME 別の保守用データベースを指定\n" -#: createdb.c:324 +#: createdb.c:326 #, c-format msgid "" "\n" @@ -591,17 +591,17 @@ msgstr "新しいロールに対してデータベースを作成する権限を msgid "Shall the new role be allowed to create more new roles?" msgstr "新しいロールに対して別のロールを作成する権限を与えますか?" -#: createuser.c:309 +#: createuser.c:311 #, c-format msgid "password encryption failed: %s" msgstr "パスワードの暗号化に失敗しました: %s" -#: createuser.c:400 +#: createuser.c:402 #, c-format msgid "creation of new role failed: %s" msgstr "新しいロールの作成に失敗しました: %s" -#: createuser.c:414 +#: createuser.c:416 #, c-format msgid "" "%s creates a new PostgreSQL role.\n" @@ -610,12 +610,12 @@ msgstr "" "%sは新しいPostgreSQLロールを作成します。\n" "\n" -#: createuser.c:416 dropuser.c:171 +#: createuser.c:418 dropuser.c:172 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" msgstr " %s [オプション]... [ロール名]\n" -#: createuser.c:418 +#: createuser.c:420 #, c-format msgid "" " -a, --with-admin=ROLE ROLE will be a member of new role with admin\n" @@ -624,32 +624,32 @@ msgstr "" " -a, --with-admin=ROLE ROLEは新しいロールのADMINオプション付きの\n" " メンバーとなる\n" -#: createuser.c:420 +#: createuser.c:422 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr " -c, --connection-limit=N ロールのコネクション数制限(デフォルト: 制限なし)\n" -#: createuser.c:421 +#: createuser.c:423 #, c-format msgid " -d, --createdb role can create new databases\n" msgstr " -d, --createdb ロールは新しいデータベースを作成可\n" -#: createuser.c:422 +#: createuser.c:424 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr " -D, --no-createdb ロールは新しいデータベースを作成不可(デフォルト)\n" -#: createuser.c:424 +#: createuser.c:426 #, c-format msgid " -g, --member-of=ROLE new role will be a member of ROLE\n" msgstr " -g, --member-of=ROLE 新しいロールをROLEのメンバーにする\n" -#: createuser.c:425 +#: createuser.c:427 #, c-format msgid " --role=ROLE (same as --member-of, deprecated)\n" msgstr " --role=ROLE (--member-ofに同じ、非推奨)\n" -#: createuser.c:426 +#: createuser.c:428 #, c-format msgid "" " -i, --inherit role inherits privileges of roles it is a\n" @@ -658,52 +658,52 @@ msgstr "" " -i, --inherit ロールがメンバーとなるロール群から権限を継承\n" " (デフォルト)\n" -#: createuser.c:428 +#: createuser.c:430 #, c-format msgid " -I, --no-inherit role does not inherit privileges\n" msgstr " -I, --no-inherit 権限を継承しない\n" -#: createuser.c:429 +#: createuser.c:431 #, c-format msgid " -l, --login role can login (default)\n" msgstr " -l, --login ロールはログイン可能(デフォルト)\n" -#: createuser.c:430 +#: createuser.c:432 #, c-format msgid " -L, --no-login role cannot login\n" msgstr " -L, --no-login ロールはログイン不可\n" -#: createuser.c:431 +#: createuser.c:433 #, c-format msgid " -m, --with-member=ROLE ROLE will be a member of new role\n" msgstr " -m, --with-member=ROLE ROLEは新しいロールのメンバとなる\n" -#: createuser.c:432 +#: createuser.c:434 #, c-format msgid " -P, --pwprompt assign a password to new role\n" msgstr " -P, --pwprompt 新しいロールにパスワードを割り当てる\n" -#: createuser.c:433 +#: createuser.c:435 #, c-format msgid " -r, --createrole role can create new roles\n" msgstr " -r, --createrole ロールは別のロールを作成可\n" -#: createuser.c:434 +#: createuser.c:436 #, c-format msgid " -R, --no-createrole role cannot create roles (default)\n" msgstr " -R, --no-createrole ロールは別のロールを作成不可(デフォルト)\n" -#: createuser.c:435 +#: createuser.c:437 #, c-format msgid " -s, --superuser role will be superuser\n" msgstr " -s, --superuser ロールをスーパーユーザーにする\n" -#: createuser.c:436 +#: createuser.c:438 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" msgstr " -S, --no-superuser ロールをスーパーユーザーにしない(デフォルト)\n" -#: createuser.c:437 +#: createuser.c:439 #, c-format msgid "" " -v, --valid-until=TIMESTAMP\n" @@ -712,19 +712,19 @@ msgstr "" " -v, --valid-until=TIMESTAMP\n" " このロールのパスワード有効期限日時\n" -#: createuser.c:440 +#: createuser.c:442 #, c-format msgid "" " --interactive prompt for missing role name and attributes rather\n" " than using defaults\n" msgstr " --interactive デフォルトを使わず未指定のロール名や属性は入力を促す\n" -#: createuser.c:442 +#: createuser.c:444 #, c-format msgid " --bypassrls role can bypass row-level security (RLS) policy\n" msgstr " --bypassrls ロールは行セキュリティポリシー(RLS)を迂回できる\n" -#: createuser.c:443 +#: createuser.c:445 #, c-format msgid "" " --no-bypassrls role cannot bypass row-level security (RLS) policy\n" @@ -733,17 +733,17 @@ msgstr "" " --no-bypassrls ロールは行セキュリティポリシー(RLS)を迂回できない\n" " (デフォルト)\n" -#: createuser.c:445 +#: createuser.c:447 #, c-format msgid " --replication role can initiate replication\n" msgstr " --replication ロールはレプリケーションを開始可能\n" -#: createuser.c:446 +#: createuser.c:448 #, c-format msgid " --no-replication role cannot initiate replication (default)\n" msgstr " --no-replication ロールはレプリケーションを開始不可 (デフォルト)\n" -#: createuser.c:451 +#: createuser.c:453 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr " -U, --username=USERNAME このユーザーとして接続(作成対象ユーザーではない)\n" @@ -762,12 +762,12 @@ msgstr "データベース\"%s\"は永久に削除されます。\n" msgid "Are you sure?" msgstr "実行しますか?" -#: dropdb.c:157 +#: dropdb.c:156 #, c-format msgid "database removal failed: %s" msgstr "データベースの削除に失敗しました: %s" -#: dropdb.c:171 +#: dropdb.c:170 #, c-format msgid "" "%s removes a PostgreSQL database.\n" @@ -776,22 +776,22 @@ msgstr "" "%sはPostgreSQLデータベースを削除します。\n" "\n" -#: dropdb.c:173 +#: dropdb.c:172 #, c-format msgid " %s [OPTION]... DBNAME\n" msgstr " %s [オプション]... [データベース名]\n" -#: dropdb.c:176 +#: dropdb.c:175 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" msgstr " -f, --force 削除前に他の接続の終了を試行\n" -#: dropdb.c:177 +#: dropdb.c:176 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr " -i, --interactive 何かを削除する前に警告する\n" -#: dropdb.c:179 +#: dropdb.c:178 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" msgstr " --if-exists データベースが存在しない場合にエラーを報告しない\n" @@ -810,12 +810,12 @@ msgstr "必須の引数であるロール名がありません" msgid "Role \"%s\" will be permanently removed.\n" msgstr "ロール\"%s\"は永久に削除されます\n" -#: dropuser.c:154 +#: dropuser.c:155 #, c-format msgid "removal of role \"%s\" failed: %s" msgstr "ロール\"%s\"の削除に失敗しました: %s" -#: dropuser.c:169 +#: dropuser.c:170 #, c-format msgid "" "%s removes a PostgreSQL role.\n" @@ -824,7 +824,7 @@ msgstr "" "%sはPostgreSQLのロールを削除します。\n" "\n" -#: dropuser.c:174 +#: dropuser.c:175 #, c-format msgid "" " -i, --interactive prompt before deleting anything, and prompt for\n" @@ -833,12 +833,12 @@ msgstr "" " -i, --interactive 何かを削除する前に入力を促し、またロール名が指定\n" " されていない場合はその入力を促す\n" -#: dropuser.c:177 +#: dropuser.c:178 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr " --if-exists ユーザーが存在しない場合にエラーを報告しない\n" -#: dropuser.c:182 +#: dropuser.c:183 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr " -U, --username=USERNAME このユーザーとして接続(削除対象ユーザーではない)\n" @@ -929,54 +929,54 @@ msgstr " -t, --timeout=SECS 接続試行時の待機秒数、ゼロで無 msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME このユーザー名で接続する\n" -#: reindexdb.c:210 +#: reindexdb.c:217 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "システムカタログのインデックス再構築では複数ジョブを使用できません" -#: reindexdb.c:215 +#: reindexdb.c:222 #, c-format msgid "cannot reindex all databases and a specific one at the same time" msgstr "全データベースと特定のデータベースは同時に再インデックス化はできません" -#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 -#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 -#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 +#: reindexdb.c:302 reindexdb.c:309 vacuumdb.c:558 vacuumdb.c:565 vacuumdb.c:572 +#: vacuumdb.c:579 vacuumdb.c:586 vacuumdb.c:593 vacuumdb.c:600 vacuumdb.c:607 +#: vacuumdb.c:614 vacuumdb.c:621 vacuumdb.c:628 vacuumdb.c:635 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "PostgreSQL %2$sよりも古いサーバーバージョンでは\"%1$s\"オプションは使えません" -#: reindexdb.c:584 +#: reindexdb.c:597 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "データベース\"%s\"のインデックス再構築に失敗しました: %s" -#: reindexdb.c:588 +#: reindexdb.c:601 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "データベース\"%2$s\"中にあるインデックス\"%1$s\"の再作成に失敗しました: %3$s" -#: reindexdb.c:592 +#: reindexdb.c:605 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "データベース\"%2$s\"中にあるスキーマ\"%1$s\"のインデックス再構築に失敗しました: %3$s" -#: reindexdb.c:596 +#: reindexdb.c:609 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "データベース\"%s\"中のシステムカタログのインデックス再構築に失敗しました: %s" -#: reindexdb.c:600 +#: reindexdb.c:613 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "データベース\"%2$s\"中にあるテーブル\"%1$s\"のインでックス再構築に失敗しました: %3$s" -#: reindexdb.c:824 +#: reindexdb.c:854 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: データベース\"%s\"を再インデックス化しています\n" -#: reindexdb.c:867 +#: reindexdb.c:897 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -985,62 +985,62 @@ msgstr "" "%sはPostgreSQLデータベースを再インデックス化します。\n" "\n" -#: reindexdb.c:871 +#: reindexdb.c:901 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all 全データベースでインデックス再構築を行う\n" -#: reindexdb.c:872 +#: reindexdb.c:902 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently 並行インデックス再構築\n" -#: reindexdb.c:873 +#: reindexdb.c:903 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME インデックス再構築対象のデータベース\n" -#: reindexdb.c:875 +#: reindexdb.c:905 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX 指定したインデックス(群)のみを再構築\n" -#: reindexdb.c:876 +#: reindexdb.c:906 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=NUM インデックス再構築にこの数の並列接続を使用\n" -#: reindexdb.c:877 +#: reindexdb.c:907 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet メッセージを一切出力しない\n" -#: reindexdb.c:878 +#: reindexdb.c:908 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system システムカタログのインデックスのみを再構築\n" -#: reindexdb.c:879 +#: reindexdb.c:909 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA 指定したスキーマ(群)のインデックスのみを再構築\n" -#: reindexdb.c:880 +#: reindexdb.c:910 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLE 指定したテーブル(群)のインデックスを再構築\n" -#: reindexdb.c:881 +#: reindexdb.c:911 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " -D, --tablespace=TABLESPACE インデックス再構築先のテーブル空間\n" -#: reindexdb.c:882 +#: reindexdb.c:912 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 多量のメッセージを出力\n" -#: reindexdb.c:892 +#: reindexdb.c:922 #, c-format msgid "" "\n" @@ -1049,224 +1049,234 @@ msgstr "" "\n" "詳細はSQLコマンドREINDEXに関する説明を参照してください。\n" -#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 -#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 +#: vacuumdb.c:324 vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:336 +#: vacuumdb.c:339 vacuumdb.c:342 vacuumdb.c:345 vacuumdb.c:354 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "analyzeのみを実行する場合\"%s\"は使えません" -#: vacuumdb.c:346 +#: vacuumdb.c:357 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "完全(full)VACUUMを実行する場合は\"%s\"オプションは使えません" -#: vacuumdb.c:352 vacuumdb.c:360 +#: vacuumdb.c:363 vacuumdb.c:371 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "\"%s\"オプションは\"%s\"と同時には使えません" -#: vacuumdb.c:432 +#: vacuumdb.c:379 +#, c-format +msgid "cannot use the \"%s\" option without \"%s\" or \"%s\"" +msgstr "\"%s\"オプションは、\"%s\"または\"%s\"がないと使用できません。" + +#: vacuumdb.c:453 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "全データベースと特定のデータベースを同時にVACUUMすることはできません" -#: vacuumdb.c:436 +#: vacuumdb.c:457 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" -msgstr "スキーマ(郡)に属するすべてのテーブルと、特定のテーブル(郡)とを同時にVACUUMすることはできません" +msgstr "スキーマ(群)に属するすべてのテーブルと、特定のテーブル(群)とを同時にVACUUMすることはできません" -#: vacuumdb.c:440 +#: vacuumdb.c:461 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" -msgstr "特定のテーブル(郡)のVACUUMと同時にスキーマ(郡)の除外を行うことはできません" +msgstr "特定のテーブル(群)のVACUUMと同時にスキーマ(群)の除外を行うことはできません" -#: vacuumdb.c:444 +#: vacuumdb.c:465 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" -msgstr "スキーマ(郡)のすべてのテーブルのVACUUMと同時にスキーマ(郡)の除外を行うことはできません" +msgstr "スキーマ(群)のすべてのテーブルのVACUUMと同時にスキーマ(群)の除外を行うことはできません" -#: vacuumdb.c:457 +#: vacuumdb.c:478 #, c-format msgid "out of memory" msgstr "メモリ不足です" -#: vacuumdb.c:502 +#: vacuumdb.c:545 msgid "Generating minimal optimizer statistics (1 target)" msgstr "最適化のための情報を最小限生成します(1対象)" -#: vacuumdb.c:503 +#: vacuumdb.c:546 msgid "Generating medium optimizer statistics (10 targets)" msgstr "最適化のための情報を複数生成します(10対象)" -#: vacuumdb.c:504 +#: vacuumdb.c:547 msgid "Generating default (full) optimizer statistics" msgstr "最適化のための情報をデフォルト数(全て)生成します" -#: vacuumdb.c:583 +#: vacuumdb.c:645 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: データベース\"%s\"の処理中です: %s\n" -#: vacuumdb.c:586 +#: vacuumdb.c:648 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: データベース\"%s\"をVACUUMしています\n" -#: vacuumdb.c:1135 +#: vacuumdb.c:1325 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "データベース \"%2$s\"のテーブル\"%1$sのVACUUMに失敗しました: %3$s" -#: vacuumdb.c:1138 +#: vacuumdb.c:1328 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "データベース\"%s\"のVACUUMに失敗しました: %s" -#: vacuumdb.c:1146 +#: vacuumdb.c:1336 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" "\n" msgstr "%sはPostgreSQLデータベースのゴミ回収および分析を行います。\n" -#: vacuumdb.c:1150 +#: vacuumdb.c:1340 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all 全データベースをVACUUM\n" -#: vacuumdb.c:1151 +#: vacuumdb.c:1341 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=SIZE VACUUMで使用するリングバッファのサイズ\n" -#: vacuumdb.c:1152 +#: vacuumdb.c:1342 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=DBNAME VACUUMするデータベース名\n" -#: vacuumdb.c:1153 +#: vacuumdb.c:1343 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping すべてのページスキップ動作を禁止\n" -#: vacuumdb.c:1154 +#: vacuumdb.c:1344 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo サーバーへ送信されるコマンドを表示\n" -#: vacuumdb.c:1155 +#: vacuumdb.c:1345 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full VACUUM FULLを実行\n" -#: vacuumdb.c:1156 +#: vacuumdb.c:1346 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze 行トランザクション情報を凍結\n" -#: vacuumdb.c:1157 +#: vacuumdb.c:1347 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr "" " --force-index-cleanup デッドタプルを指すインデックスエントリを常に\n" " 除去する\n" -#: vacuumdb.c:1158 +#: vacuumdb.c:1348 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr " -j, --jobs=NUM バキューム時に指定した同時接続数を使用\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1349 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr "" " --min-mxid-age=MXID_AGE VACUUM対象とするテーブルの最小のマルチ\n" " トランザクションID差分\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1350 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr "" " --min-xid-age=XID_AGE VACUUM対象とするテーブルの最小の\n" " トランザクションID差分\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1351 +#, c-format +msgid " --missing-stats-only only analyze relations with missing statistics\n" +msgstr " --missing-stats-only 統計情報がないリレーションのみをANALYZEする\n" + +#: vacuumdb.c:1352 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr "" " --no-index-cleanup デッドタプルを指すインデックスエントリを\n" " 削除しない\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1353 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main メインリレーションをスキップ\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1354 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr "" " --no-process-toast テーブルに関連づくTOASTテーブルのVACUUMを\n" " スキップ\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1355 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate テーブル終端の空ページの切り詰めを行わない\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1356 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" -msgstr " - -n, --schema=SCHEMA 指定したスキーマ(郡)のテーブルのみをVACUUMする\n" +msgstr " - -n, --schema=SCHEMA 指定したスキーマ(群)のテーブルのみをVACUUMする\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1357 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" -msgstr " -N, --exclude-schema=SCHEMA 指定したスキーマ(郡)のテーブルをVACUUMしない\n" +msgstr " -N, --exclude-schema=SCHEMA 指定したスキーマ(群)のテーブルをVACUUMしない\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1358 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr "" " -P, --parallel=PARALLEL_WORKERS 可能であればVACUUMで指定の数のバックグラウンド\n" " ワーカーを使用\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1359 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet メッセージを出力しない\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1360 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr " --skip-locked 直ちにロックできなかったリレーションをスキップ\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1361 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='TABLE[(COLUMNS)]' 指定したテーブル(複数可)のみをVACUUM\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1362 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 多量のメッセージを出力\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1363 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1364 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze 最適化用統計情報を更新\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1365 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr " -Z, --analyze-only 最適化用統計情報のみ更新; バキュームは行わない\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1366 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1275,12 +1285,12 @@ msgstr "" " --analyze-in-stages 高速化のため最適化用統計情報のみを複数段階で\n" " 更新; VACUUMは行わない\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1368 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: vacuumdb.c:1185 +#: vacuumdb.c:1376 #, c-format msgid "" "\n" diff --git a/src/bin/scripts/po/ka.po b/src/bin/scripts/po/ka.po index 5ac10ae07046e..0312e86948629 100644 --- a/src/bin/scripts/po/ka.po +++ b/src/bin/scripts/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pgscripts (PostgreSQL) 16\n" +"Project-Id-Version: pgscripts (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:21+0000\n" -"PO-Revision-Date: 2024-06-14 06:16+0200\n" +"POT-Creation-Date: 2025-04-25 17:51+0000\n" +"PO-Revision-Date: 2025-04-26 05:06+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,24 +16,24 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../../src/common/logging.c:276 +#: ../../../src/common/logging.c:279 #, c-format msgid "error: " msgstr "შეცდომა: " -#: ../../../src/common/logging.c:283 +#: ../../../src/common/logging.c:286 #, c-format msgid "warning: " msgstr "warning: " -#: ../../../src/common/logging.c:294 +#: ../../../src/common/logging.c:297 #, c-format msgid "detail: " msgstr "დეტალები: " -#: ../../../src/common/logging.c:301 +#: ../../../src/common/logging.c:304 #, c-format msgid "hint: " msgstr "მინიშნება: " @@ -49,44 +49,44 @@ msgstr "არასაკმარისი მეხსიერება\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "ნულოვანი მაჩვენებლის დუბლირება შეუძლებელია (შიდა შეცდომა)\n" -#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 -#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#: ../../common/file_utils.c:69 ../../common/file_utils.c:370 +#: ../../common/file_utils.c:428 ../../common/file_utils.c:502 #, c-format msgid "could not open file \"%s\": %m" msgstr "ფაილის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:76 +#: ../../common/file_utils.c:75 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "შეუძლებელია ფაილური სისტემის სინქრონიზაცია ფაილისთვის \"%s\": %m" -#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#: ../../common/file_utils.c:123 ../../common/file_utils.c:588 #, c-format msgid "could not stat file \"%s\": %m" msgstr "ფაილი \"%s\" არ არსებობს: %m" -#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../common/file_utils.c:133 ../../common/file_utils.c:243 #: ../../fe_utils/option_utils.c:99 #, c-format msgid "this build does not support sync method \"%s\"" msgstr "ამ აგებას სინქრონიზაციის მეთოდის \"%s\" მხარდაჭერა არ გააჩნია" -#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#: ../../common/file_utils.c:156 ../../common/file_utils.c:304 #, c-format msgid "could not open directory \"%s\": %m" msgstr "საქაღალდის (%s) გახსნის შეცდომა: %m" -#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#: ../../common/file_utils.c:174 ../../common/file_utils.c:338 #, c-format msgid "could not read directory \"%s\": %m" msgstr "საქაღალდის (%s) წაკითხვის შეცდომა: %m" -#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#: ../../common/file_utils.c:440 ../../common/file_utils.c:510 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ფაილის (%s) fsync-ის შეცდომა: %m" -#: ../../common/file_utils.c:498 +#: ../../common/file_utils.c:520 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "გადარქმევის შეცდომა %s - %s: %m" @@ -176,8 +176,8 @@ msgstr "შეწყვეტილია\n" #: ../../fe_utils/print.c:3188 #, c-format -msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" -msgstr "ვერ გამოვიტანე ცხრილის შემცველობა: უჯრედების რაოდენობა %lld მაქსიმუმის %lld ტოლი ან მასზე მეტია.\n" +msgid "Cannot print table contents: number of cells % is equal to or exceeds maximum %zu.\n" +msgstr "ვერ გამოვიტანე ცხრილის შემცველობა: უჯრედების რაოდენობა % მაქსიმუმის %zu ტოლი ან მასზე მეტია.\n" #: ../../fe_utils/print.c:3229 #, c-format @@ -186,8 +186,8 @@ msgstr "ცხრილის შემცველობაზე თავს #: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" -msgstr "ცხრილის შემცველობაზე უჯრედის დამატება შეუძლებელია: უჯრედების ჯამური რაოდენობა %lld-ზე მეტია.\n" +msgid "Cannot add cell to table content: total cell count of % exceeded.\n" +msgstr "ცხრილის შემცველობაზე უჯრედის დამატება შეუძლებელია: უჯრედების ჯამური რაოდენობა %-ზე მეტია.\n" #: ../../fe_utils/print.c:3530 #, c-format @@ -204,51 +204,51 @@ msgstr "მოთხოვნის შეცდომა: %s" msgid "Query was: %s" msgstr "მოთხოვნის შინაარსი: %s" -#: ../../fe_utils/string_utils.c:434 +#: ../../fe_utils/string_utils.c:587 #, c-format msgid "shell command argument contains a newline or carriage return: \"%s\"\n" msgstr "გარსის ბრძანების არგუმენტი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: ../../fe_utils/string_utils.c:607 +#: ../../fe_utils/string_utils.c:760 #, c-format msgid "database name contains a newline or carriage return: \"%s\"\n" msgstr "მონაცემთა ბაზის სახელი ხაზის გადატანას ან კარეტის დაბრუნებას შეიცავს: \"%s\"\n" -#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 +#: clusterdb.c:113 clusterdb.c:132 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 +#: reindexdb.c:184 reindexdb.c:203 vacuumdb.c:291 vacuumdb.c:311 #, c-format msgid "Try \"%s --help\" for more information." msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'." -#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 +#: clusterdb.c:130 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:201 vacuumdb.c:309 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "მეტისმეტად ბევრი ბრძანების-სტრიქონის არგუმენტი (პირველია \"%s\")" -#: clusterdb.c:149 +#: clusterdb.c:148 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "ყველა და მითითებული ბაზების ერთდროული დაკლასტერება შეუძლებელია" -#: clusterdb.c:214 +#: clusterdb.c:213 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "ცხრილის (\"%s\"), ბაზაში \"%s\" დაკლასტერების პრობლემა: %s" -#: clusterdb.c:217 +#: clusterdb.c:216 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "ბაზის (\"%s\") დაკლასტერების შეცდომა: %s" -#: clusterdb.c:248 +#: clusterdb.c:247 #, c-format msgid "%s: clustering database \"%s\"\n" msgstr "%s: ბაზის დაკლასტერება: \"%s\"\n" -#: clusterdb.c:274 +#: clusterdb.c:273 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -257,19 +257,19 @@ msgstr "" "%s ალაგებს ბაზაში ადრე დალაგებული ცხრილებს.\n" "\n" -#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 +#: clusterdb.c:274 createdb.c:300 createuser.c:417 dropdb.c:171 dropuser.c:171 +#: pg_isready.c:226 reindexdb.c:898 vacuumdb.c:1337 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" -#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 +#: clusterdb.c:275 reindexdb.c:899 vacuumdb.c:1338 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [პარამეტრი]... [ბაზისსახელი]\n" -#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 +#: clusterdb.c:276 createdb.c:302 createuser.c:419 dropdb.c:173 dropuser.c:173 +#: pg_isready.c:229 reindexdb.c:900 vacuumdb.c:1339 #, c-format msgid "" "\n" @@ -278,48 +278,48 @@ msgstr "" "\n" "პარამეტრები:\n" -#: clusterdb.c:278 +#: clusterdb.c:277 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all ყველა ბაზის დაკლასტერება\n" -#: clusterdb.c:279 +#: clusterdb.c:278 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=ბაზისსახელი დასაკლასერებელი ბაზის სახელი\n" -#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:279 createuser.c:425 dropdb.c:174 dropuser.c:174 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo-queries სერვერზე გაგზავნილი ბრძანებების გამოტანა\n" -#: clusterdb.c:281 +#: clusterdb.c:280 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet არ გამოიტანო შეტყობინებები\n" -#: clusterdb.c:282 +#: clusterdb.c:281 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=ცხრილი მხოლოდ მითითებული ცხრილების დაკლასტერება\n" -#: clusterdb.c:283 +#: clusterdb.c:282 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:283 createuser.c:441 dropdb.c:177 dropuser.c:177 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:284 createuser.c:449 dropdb.c:179 dropuser.c:179 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 +#: clusterdb.c:285 createdb.c:319 createuser.c:450 dropdb.c:180 dropuser.c:180 +#: pg_isready.c:235 reindexdb.c:915 vacuumdb.c:1369 #, c-format msgid "" "\n" @@ -328,37 +328,37 @@ msgstr "" "\n" "შეერთების პარამეტრები:\n" -#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 +#: clusterdb.c:286 createuser.c:451 dropdb.c:181 dropuser.c:181 vacuumdb.c:1370 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME მონაცემთა ბაზის სერვერის ჰოსტის ან სოკეტის საქაღალდე\n" -#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 +#: clusterdb.c:287 createuser.c:452 dropdb.c:182 dropuser.c:182 vacuumdb.c:1371 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT მონაცემთა ბაზის სერვერის პორტი\n" -#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 +#: clusterdb.c:288 dropdb.c:183 vacuumdb.c:1372 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" -msgstr " -U, --username=მომხმარებელი ბაზის მომხმარებლის სახელი\n" +msgstr " -U, --username=მომხმარებ. ბაზის მომხმარებლის სახელი\n" -#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 +#: clusterdb.c:289 createuser.c:454 dropdb.c:184 dropuser.c:184 vacuumdb.c:1373 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password არასოდეს მკითხო პაროლი\n" -#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 +#: clusterdb.c:290 createuser.c:455 dropdb.c:185 dropuser.c:185 vacuumdb.c:1374 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password პაროლის ყოველთვის კითხვა\n" -#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 +#: clusterdb.c:291 dropdb.c:186 vacuumdb.c:1375 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=ბაზისსახელი ალტერნატიული საავარიო ბაზა\n" -#: clusterdb.c:293 +#: clusterdb.c:292 #, c-format msgid "" "\n" @@ -367,8 +367,8 @@ msgstr "" "\n" "დაკლასტერების შესახებ მეტი ინფორმაციის მიღება SQL ბრძანების, CLUSTER, დეტალებში შეგიძლიათ.\n" -#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 +#: clusterdb.c:293 createdb.c:327 createuser.c:456 dropdb.c:187 dropuser.c:186 +#: pg_isready.c:240 reindexdb.c:923 vacuumdb.c:1377 #, c-format msgid "" "\n" @@ -377,13 +377,13 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 +#: clusterdb.c:294 createdb.c:328 createuser.c:457 dropdb.c:188 dropuser.c:187 +#: pg_isready.c:241 reindexdb.c:924 vacuumdb.c:1378 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: common.c:107 +#: common.c:106 #, c-format msgid "query returned %d row instead of one: %s" msgid_plural "query returned %d rows instead of one: %s" @@ -417,17 +417,17 @@ msgstr "უპასუხეთ \"%s\" ან \"%s\".\n" msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" კოდირების სწორ სახელს არ წარმოადგენს" -#: createdb.c:260 +#: createdb.c:262 #, c-format msgid "database creation failed: %s" msgstr "ბაზის შექმნის შეცდომა:%s" -#: createdb.c:279 +#: createdb.c:281 #, c-format msgid "comment creation failed (database was created): %s" msgstr "კომენტარის შექმნის შეცდომა (ბაზა შეიქმნა): %s" -#: createdb.c:297 +#: createdb.c:299 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -436,57 +436,57 @@ msgstr "" "%s PostgreSQL-ის ბაზას ქმნის.\n" "\n" -#: createdb.c:299 +#: createdb.c:301 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [პარამეტრი]... [ბაზისსახელი] [აღწერა]\n" -#: createdb.c:301 +#: createdb.c:303 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=ცხრილებისსივრცე მონაცემთა ბაზის ცხრილების ნაგულისხმები სივრცე\n" -#: createdb.c:302 reindexdb.c:874 +#: createdb.c:304 reindexdb.c:904 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo-queries სერვერზე გაგზავნილი ბრძანებების გამოტანა\n" -#: createdb.c:303 +#: createdb.c:305 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" -msgstr " \\encoding [კოდირება] კლიენტის კოდირების ჩვენება ან დაყენება\n" +msgstr " \\encoding [კოდირება] კლიენტის კოდირების ჩვენება ან დაყენება\n" -#: createdb.c:304 +#: createdb.c:306 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=ენა ბაზის ენის პარამეტრები\n" -#: createdb.c:305 +#: createdb.c:307 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=ენა ბაზის LC_COLLATE პარამეტრი\n" -#: createdb.c:306 +#: createdb.c:308 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=ენა ბაზის LC_CTYPE პარამეტრი\n" -#: createdb.c:307 +#: createdb.c:309 #, c-format msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" msgstr " --builtin-locale=ლოკალი ჩაშენებული ლოკალის პარამეტრი მონაცემთა ბაზისთვის\n" -#: createdb.c:308 +#: createdb.c:310 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=ენა ბაზის ICU ენის პარამეტრი\n" -#: createdb.c:309 +#: createdb.c:311 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=წესი ბაზის ICU წესის პარამეტრი\n" -#: createdb.c:310 +#: createdb.c:312 #, c-format msgid "" " --locale-provider={builtin|libc|icu}\n" @@ -495,62 +495,62 @@ msgstr "" " --locale-provider={builtin|libc|icu}\n" " ბაზის ნაგულისხმები კოლაციის ენის მომწოდებელი\n" -#: createdb.c:312 +#: createdb.c:314 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" -msgstr " -O, --owner=მფლობელი ახალი ბაზის მფლობელი მომხმარებლის სახელი\n" +msgstr " -O, --owner=მფლობელი ახალი ბაზის მფლობელი მომხმარებლის სახელი\n" -#: createdb.c:313 +#: createdb.c:315 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" -msgstr " -S, --strategy=სტრატეგია ბაზის შექმნის სტრატეგია: wal_log ან file_copy\n" +msgstr " -S, --strategy=სტრატეგია ბაზის შექმნის სტრატეგია: wal_log ან file_copy\n" -#: createdb.c:314 +#: createdb.c:316 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=შაბლონი ბაზის დასაკოპირებელი შაბლონი\n" -#: createdb.c:315 reindexdb.c:883 +#: createdb.c:317 reindexdb.c:913 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: createdb.c:316 reindexdb.c:884 +#: createdb.c:318 reindexdb.c:914 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: createdb.c:318 reindexdb.c:886 +#: createdb.c:320 reindexdb.c:916 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME მონაცემთა ბაზის სერვერის ჰოსტის ან სოკეტის საქაღალდე\n" -#: createdb.c:319 reindexdb.c:887 +#: createdb.c:321 reindexdb.c:917 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT მონაცემთა ბაზის სერვერის პორტი\n" -#: createdb.c:320 reindexdb.c:888 +#: createdb.c:322 reindexdb.c:918 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=მომხმარებელი ბაზის მომხმარებლის სახელი\n" -#: createdb.c:321 reindexdb.c:889 +#: createdb.c:323 reindexdb.c:919 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password არასოდეს მკითხო პაროლი\n" -#: createdb.c:322 reindexdb.c:890 +#: createdb.c:324 reindexdb.c:920 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password პაროლის ყოველთვის კითხვა\n" -#: createdb.c:323 reindexdb.c:891 +#: createdb.c:325 reindexdb.c:921 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=ბაზისსახელი ალტერნატიული საავარიო ბაზა\n" -#: createdb.c:324 +#: createdb.c:326 #, c-format msgid "" "\n" @@ -588,17 +588,17 @@ msgstr "ექნება ახალ როლს ბაზების შ msgid "Shall the new role be allowed to create more new roles?" msgstr "ექნება ახალ როლს სხვა როლების შექმნს უფლება?" -#: createuser.c:309 +#: createuser.c:311 #, c-format msgid "password encryption failed: %s" msgstr "პაროლის დაშიფვრის შეცდომა: %s" -#: createuser.c:400 +#: createuser.c:402 #, c-format msgid "creation of new role failed: %s" msgstr "ახალი როლის შექმნის შეცდომა: %s" -#: createuser.c:414 +#: createuser.c:416 #, c-format msgid "" "%s creates a new PostgreSQL role.\n" @@ -607,12 +607,12 @@ msgstr "" "%s PostgreSQL-ის როლს ქმნის.\n" "\n" -#: createuser.c:416 dropuser.c:171 +#: createuser.c:418 dropuser.c:172 #, c-format msgid " %s [OPTION]... [ROLENAME]\n" msgstr " %s [პარამეტრი]... [როლისსახელი]\n" -#: createuser.c:418 +#: createuser.c:420 #, c-format msgid "" " -a, --with-admin=ROLE ROLE will be a member of new role with admin\n" @@ -621,32 +621,32 @@ msgstr "" " -a, --admin=როლი როლი ახალი როლის წევრი იქნება, ადმინისტრირების\n" " პარამეტრით\n" -#: createuser.c:420 +#: createuser.c:422 #, c-format msgid " -c, --connection-limit=N connection limit for role (default: no limit)\n" msgstr " -c, --connection-limit=N როლის შეერთებების ლიმიტი (ნაგულისხმები: ლიმიტის გარეშე)\n" -#: createuser.c:421 +#: createuser.c:423 #, c-format msgid " -d, --createdb role can create new databases\n" msgstr " -d, --createdb როლს შეუძლია ახალი ბაზების შექმნა\n" -#: createuser.c:422 +#: createuser.c:424 #, c-format msgid " -D, --no-createdb role cannot create databases (default)\n" msgstr " -D, --no-createdb როლს ბაზების შექმნა არ შეუძლია (ნაგულისხმები)\n" -#: createuser.c:424 +#: createuser.c:426 #, c-format msgid " -g, --member-of=ROLE new role will be a member of ROLE\n" msgstr " -g, --member-of=როლი ახალი როლი ამ როლის წევრი იქნება\n" -#: createuser.c:425 +#: createuser.c:427 #, c-format msgid " --role=ROLE (same as --member-of, deprecated)\n" msgstr " --role=როლი (იგივე, რაც --member-of, რომელიც მოძველებულია)\n" -#: createuser.c:426 +#: createuser.c:428 #, c-format msgid "" " -i, --inherit role inherits privileges of roles it is a\n" @@ -655,52 +655,52 @@ msgstr "" " -i, --inherit რომლი მემკვიდრეობით იღებს იმ როლებსაც, რომლის\n" " წევრიც თვითონაა (ნაგულისხმები)\n" -#: createuser.c:428 +#: createuser.c:430 #, c-format msgid " -I, --no-inherit role does not inherit privileges\n" msgstr " -I, --no-inherit როლი პრივილეგიებს მემკვიდრეობით არ მიიღებს\n" -#: createuser.c:429 +#: createuser.c:431 #, c-format msgid " -l, --login role can login (default)\n" msgstr " -l, --login როლით შესვლა შეიძლება (ნაგულისხმები)\n" -#: createuser.c:430 +#: createuser.c:432 #, c-format msgid " -L, --no-login role cannot login\n" msgstr " -L, --no-login როლს შესვლა არ შეუძლია\n" -#: createuser.c:431 +#: createuser.c:433 #, c-format msgid " -m, --with-member=ROLE ROLE will be a member of new role\n" msgstr " -m, --with-member=როლი როლი ახალი როლის წევრი იქნება\n" -#: createuser.c:432 +#: createuser.c:434 #, c-format msgid " -P, --pwprompt assign a password to new role\n" msgstr " -P, --pwprompt როლისთვის პაროლის მინიჭება\n" -#: createuser.c:433 +#: createuser.c:435 #, c-format msgid " -r, --createrole role can create new roles\n" msgstr " -r, --createrole როლს ახალი როლების შექმნა შეუძლია\n" -#: createuser.c:434 +#: createuser.c:436 #, c-format msgid " -R, --no-createrole role cannot create roles (default)\n" msgstr " -R, --no-createrole როლს ახალი როლების შექმნა არ შეუძლია (ნაგულისხმები)\n" -#: createuser.c:435 +#: createuser.c:437 #, c-format msgid " -s, --superuser role will be superuser\n" msgstr " -s, --superuser როლი ახალი ზემომხმარებელი იქნება\n" -#: createuser.c:436 +#: createuser.c:438 #, c-format msgid " -S, --no-superuser role will not be superuser (default)\n" msgstr " -S, --no-superuser როლი ზემომხმარებელი არ იქნება (ნაგულისხმები)\n" -#: createuser.c:437 +#: createuser.c:439 #, c-format msgid "" " -v, --valid-until=TIMESTAMP\n" @@ -709,7 +709,7 @@ msgstr "" " -v, --valid-until=დროისშტამპი\n" " პაროლის ამოწურვის თარიღი და დრო როლისთვის\n" -#: createuser.c:440 +#: createuser.c:442 #, c-format msgid "" " --interactive prompt for missing role name and attributes rather\n" @@ -718,12 +718,12 @@ msgstr "" " --interactive ნაგულისხმები მნიშვნელობების გამოყენების მაგიერ როლის \n" " ნაკლული სახელისა და ატრიბუტების ინტერაქტიურად კითხვაs\n" -#: createuser.c:442 +#: createuser.c:444 #, c-format msgid " --bypassrls role can bypass row-level security (RLS) policy\n" msgstr " --bypassrls როლს შეუძლია აიცილოს მწკრივის დონის უსაფრთხოების (RLS) წესები\n" -#: createuser.c:443 +#: createuser.c:445 #, c-format msgid "" " --no-bypassrls role cannot bypass row-level security (RLS) policy\n" @@ -732,17 +732,17 @@ msgstr "" " --no-bypassrls როლს მწკრივის დონის უსაფრთხოების წესების (RLS) აცილება\n" " არ შეუძლია (ნაგულისხმები)\n" -#: createuser.c:445 +#: createuser.c:447 #, c-format msgid " --replication role can initiate replication\n" msgstr " --replication როლს შეუძლია რეპლიკაციის ინიცირება\n" -#: createuser.c:446 +#: createuser.c:448 #, c-format msgid " --no-replication role cannot initiate replication (default)\n" msgstr " --no-replication როლს რეპლიკაციის ინიცირება არ შეუძლია (ნაგულისხმები)\n" -#: createuser.c:451 +#: createuser.c:453 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to create)\n" msgstr " -U, --username=მომხმარებელი სერვერთან მიერთების მომხმარებლის სახელი (ის არა, რომელსაც ქმნით)\n" @@ -761,12 +761,12 @@ msgstr "მონაცემთა ბაზა \"%s\" სამუდამო msgid "Are you sure?" msgstr "დარწმუნებული ბრძანდებით?" -#: dropdb.c:157 +#: dropdb.c:156 #, c-format msgid "database removal failed: %s" msgstr "ბაზის წაშლის შეცდომა:%s" -#: dropdb.c:171 +#: dropdb.c:170 #, c-format msgid "" "%s removes a PostgreSQL database.\n" @@ -775,22 +775,22 @@ msgstr "" "%s წაშლის PostgreSQL ბაზას.\n" "\n" -#: dropdb.c:173 +#: dropdb.c:172 #, c-format msgid " %s [OPTION]... DBNAME\n" msgstr " %s [პარამეტრი]... [ბაზისსახელი]\n" -#: dropdb.c:176 +#: dropdb.c:175 #, c-format msgid " -f, --force try to terminate other connections before dropping\n" msgstr " -f, --force შეერთებების დახურვა მათ გათიშვამდე\n" -#: dropdb.c:177 +#: dropdb.c:176 #, c-format msgid " -i, --interactive prompt before deleting anything\n" msgstr " -i, --interactive გკითხავ, სანამ რამეს წავშლი\n" -#: dropdb.c:179 +#: dropdb.c:178 #, c-format msgid " --if-exists don't report error if database doesn't exist\n" msgstr " --if-exists თუ ბაზა არ არსებობს, შეცდომა არ ამოაგდო\n" @@ -809,12 +809,12 @@ msgstr "აკლია აუცილებელი არგუმენტ msgid "Role \"%s\" will be permanently removed.\n" msgstr "როლი \"%s\" სამუდამოდ წაიშლება.\n" -#: dropuser.c:154 +#: dropuser.c:155 #, c-format msgid "removal of role \"%s\" failed: %s" msgstr "როლის (\"%s\") წაშლის შეცდომა: %s" -#: dropuser.c:169 +#: dropuser.c:170 #, c-format msgid "" "%s removes a PostgreSQL role.\n" @@ -823,7 +823,7 @@ msgstr "" "%s წაშლის PostgreSQL-ის როლს.\n" "\n" -#: dropuser.c:174 +#: dropuser.c:175 #, c-format msgid "" " -i, --interactive prompt before deleting anything, and prompt for\n" @@ -832,12 +832,12 @@ msgstr "" " -i, --interactive გკითხავ, სანამ რამეს წავშლი\n" " და გკითხავ როლის სახელსაც, თუ მითითბული არაა\n" -#: dropuser.c:177 +#: dropuser.c:178 #, c-format msgid " --if-exists don't report error if user doesn't exist\n" msgstr " --if-exists თუ მომხმარებელი არ არსებობს, შეცდომა არ ამოაგდო\n" -#: dropuser.c:182 +#: dropuser.c:183 #, c-format msgid " -U, --username=USERNAME user name to connect as (not the one to drop)\n" msgstr " -U, --username=მომხმარებელი სერვერთან მიერთების მომხმარებლის სახელი (ის არა, რომელსაც შლით)\n" @@ -926,54 +926,54 @@ msgstr " -t, --timeout=წამი შეერთების ლოდ msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=მომხმარებელი ბაზის მომხმარებლის სახელი\n" -#: reindexdb.c:210 +#: reindexdb.c:217 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "სისტემური კატალოგების რეინდექსისთვის ბევრი დავალების გამოყენება შეუძლებელია" -#: reindexdb.c:215 +#: reindexdb.c:222 #, c-format msgid "cannot reindex all databases and a specific one at the same time" msgstr "ყველა და მითითებული ბაზების ერთდროული რეინდექსი შეუძლებელია" -#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 -#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 -#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 +#: reindexdb.c:302 reindexdb.c:309 vacuumdb.c:558 vacuumdb.c:565 vacuumdb.c:572 +#: vacuumdb.c:579 vacuumdb.c:586 vacuumdb.c:593 vacuumdb.c:600 vacuumdb.c:607 +#: vacuumdb.c:614 vacuumdb.c:621 vacuumdb.c:628 vacuumdb.c:635 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "პარამეტრი \"%s\" არ გამოიყენება PostgreSQL-ის ვერსიაში \"%s\" ან უფრო ძველში" -#: reindexdb.c:584 +#: reindexdb.c:597 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "ბაზის (\"%s\") რეინდექსის პრობლემა: %s" -#: reindexdb.c:588 +#: reindexdb.c:601 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "რეინდექსის შეცდომა ინდექსისთვის \"%s\" ბაზაში \"%s\": %s" -#: reindexdb.c:592 +#: reindexdb.c:605 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "რეინდექსის შეცდომა სქემისთვის \"%s\" ბაზაში \"%s\": %s" -#: reindexdb.c:596 +#: reindexdb.c:609 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "სისტემური კატალოგების რეინდექსის შეცდომა ბაზაში \"%s\": %s" -#: reindexdb.c:600 +#: reindexdb.c:613 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "რეინდექსის შეცდომა ცხრილისთვის \"%s\" ბაზაში \"%s\": %s" -#: reindexdb.c:824 +#: reindexdb.c:854 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: ბაზის თავიდან ინდექსირება \"%s\"\n" -#: reindexdb.c:867 +#: reindexdb.c:897 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -982,62 +982,62 @@ msgstr "" "%s PostgreSQL ბაზის თავიდან ინდექსირება.\n" "\n" -#: reindexdb.c:871 +#: reindexdb.c:901 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all ყველა ბაზის თავიდან ინდექსირება\n" -#: reindexdb.c:872 +#: reindexdb.c:902 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently ერთდროული ინდექსირება\n" -#: reindexdb.c:873 +#: reindexdb.c:903 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=ბაზისსახელი დასაინდექსებელი ბაზის სახელი\n" -#: reindexdb.c:875 +#: reindexdb.c:905 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=ინდექსი მითითებული ინდექს(ებ)-ი თავიდან შეიქმნება\n" -#: reindexdb.c:876 +#: reindexdb.c:906 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=რიცხვი თავიდან ინდექსირებისთვის მითითებული რაოდენობის შეერთებების გამოყენება\n" -#: reindexdb.c:877 +#: reindexdb.c:907 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet არ გამოიტანო შეტყობინებები\n" -#: reindexdb.c:878 +#: reindexdb.c:908 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system მოხდება მხოლოდ სისტემური კატალოგების თავიდან ინდექსირება\n" -#: reindexdb.c:879 +#: reindexdb.c:909 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=სქემა მოხდება მხოლოდ მითითებული სქემების თავიდან ინდექსირება\n" -#: reindexdb.c:880 +#: reindexdb.c:910 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=ცხრილი მოხდება მხოლოდ მითითებული ცხრილების თავიდან ინდექსირება\n" -#: reindexdb.c:881 +#: reindexdb.c:911 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=ცხრილებისსივრცე ცხრილების სივრცე, სადაც რეინდექსი მოხდება\n" -#: reindexdb.c:882 +#: reindexdb.c:912 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: reindexdb.c:892 +#: reindexdb.c:922 #, c-format msgid "" "\n" @@ -1046,80 +1046,85 @@ msgstr "" "\n" "მეტი დეტალებისთვის იხილეთ SQL-ის ბრძანების, REINDEX-ის დეტალები.\n" -#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 -#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 +#: vacuumdb.c:324 vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:336 +#: vacuumdb.c:339 vacuumdb.c:342 vacuumdb.c:345 vacuumdb.c:354 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "მხოლოდ ანალიზის დროს პარამეტრის \"%s\" გამოყენება შეუძლებელია" -#: vacuumdb.c:346 +#: vacuumdb.c:357 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "სრული დამტვერსასრუტების დროს პარამეტრის \"%s\" გამოყენება შეუძლებელია" -#: vacuumdb.c:352 vacuumdb.c:360 +#: vacuumdb.c:363 vacuumdb.c:371 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "\"%s\" პარამეტრთან ერთად \"%s\"-ის გამოყენება შეუძლებელია" -#: vacuumdb.c:432 +#: vacuumdb.c:379 +#, c-format +msgid "cannot use the \"%s\" option without \"%s\" or \"%s\"" +msgstr "\"%s\" პარამეტრთან ერთად \"%s\"-ის, ან \"%s\"-ის გამოყენება შეუძლებელია" + +#: vacuumdb.c:453 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "ყველა და მითითებული ბაზების ერთდროული დამტვერსასრუტება შეუძლებელია" -#: vacuumdb.c:436 +#: vacuumdb.c:457 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "სქემებში ყველა ცხრილის და მითითებული ცხრილების ერთდროული მომტვერსასრუტება შეუძლებელია" -#: vacuumdb.c:440 +#: vacuumdb.c:461 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "მითითებულ ცხრილების მომტვერსასრუტება და სქემების გამორიცხვა ერთდროულად შეუძლებელია" -#: vacuumdb.c:444 +#: vacuumdb.c:465 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "სქემებში ყველა ცხრილის მომტვერსასრუტება და ამავე დროს სქემების გამორიცხვა შეუძლებელია" -#: vacuumdb.c:457 +#: vacuumdb.c:478 #, c-format msgid "out of memory" msgstr "არასაკმარისი მეხსიერება" -#: vacuumdb.c:502 +#: vacuumdb.c:545 msgid "Generating minimal optimizer statistics (1 target)" msgstr "ოპტიმიზატორის მინიმალური სტატისტიკის გენერაცია (1 სამიზნე)" -#: vacuumdb.c:503 +#: vacuumdb.c:546 msgid "Generating medium optimizer statistics (10 targets)" msgstr "ოპტიმიზატორის საშუალო სტატისტიკის გენერაცია (10 სამიზნე)" -#: vacuumdb.c:504 +#: vacuumdb.c:547 msgid "Generating default (full) optimizer statistics" msgstr "ოპტიმიზატორის ნაგულისხმები (სრული) სტატისტიკის გენერაცია" -#: vacuumdb.c:583 +#: vacuumdb.c:645 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: ბაზის დამუშავება \"%s\": %s\n" -#: vacuumdb.c:586 +#: vacuumdb.c:648 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: ბაზის \"%s\" დამტვერასრუტება\n" -#: vacuumdb.c:1135 +#: vacuumdb.c:1325 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "ცხრილის (\"%s\") (ბაზაში \"%s\") დამტვერსასრუტების პრობლემა: %s" -#: vacuumdb.c:1138 +#: vacuumdb.c:1328 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "ბაზის (\"%s\") დამტვერსასრუტების პრობლემა: %s" -#: vacuumdb.c:1146 +#: vacuumdb.c:1336 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1128,132 +1133,137 @@ msgstr "" "%s PostgreSQL ბაზის გასუფთავება და ოპტიმიზაცია.\n" "\n" -#: vacuumdb.c:1150 +#: vacuumdb.c:1340 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all ყველა ბაზის დამტვერსასრუტება\n" -#: vacuumdb.c:1151 +#: vacuumdb.c:1341 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=ზომა მომტვერსასრუტებისთვის გამოყენებული რგოლის ბაფერის ზომა\n" -#: vacuumdb.c:1152 +#: vacuumdb.c:1342 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=ბაზისსახელი დასამტვერსასრუტებელი ბაზები\n" -#: vacuumdb.c:1153 +#: vacuumdb.c:1343 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping გვერდის გამოტოვების ყველა ვარიანტის გამორთვა\n" -#: vacuumdb.c:1154 +#: vacuumdb.c:1344 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo-queries სერვერზე გაგზავნილი ბრძანებების გამოტანა\n" -#: vacuumdb.c:1155 +#: vacuumdb.c:1345 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full სრული დამტვერსასრუტება\n" -#: vacuumdb.c:1156 +#: vacuumdb.c:1346 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze მწკრივის ტრანზაქციის ინფორმაციის გაყინვა\n" -#: vacuumdb.c:1157 +#: vacuumdb.c:1347 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr " --force-index-cleanup ინდექსის ჩანაწერები, რომლებიც მკვდარ მონაცემებზე მიუთითებენ, ყოველთვის წაიშლება\n" -#: vacuumdb.c:1158 +#: vacuumdb.c:1348 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr " -j, --jobs=რიცხვი დამტვერსასრუტებისას მითითებული რაოდენობის შეერთებების გამოყენება\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1349 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr " --min-mxid-age=MXID_AGE დასამტვერსასრუტებელი ცხრილების მულტიტრანზაქციის ID-ის მინიმალური ასაკი\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1350 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr " --min-xid-age=XID_AGE დასამტვერსასრუტებელი ცხრილების ტრანზაქციების ID-ის მინიმალური ასაკი\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1351 +#, c-format +msgid " --missing-stats-only only analyze relations with missing statistics\n" +msgstr " --missing-stats-only მხოლოდ, იმ ურთიერთობების ანალიზი, რომლებსაც სტატისტიკა აკლია\n" + +#: vacuumdb.c:1352 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr " --no-index-cleanup ინდექსის ჩანაწერები, რომლებიც მკვდარ მონაცემებზე მიუთითებენ, არ წაიშლება\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1353 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main მთავარი ურთიერთობის გამოტოვება\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1354 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr " --no-process-toast მომტვერსასრუტებისას ცხრილთან ასოცირებული TOAST cxrilis gamotoveba\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1355 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate ცხრილის ბოლოში ცარიელი გვერდები არ მოიკვეთება\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1356 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" msgstr " -n, --schema=სქემა ცხრილების, მხოლოდ, მითითებულ სქემებში მომტვერსასრუტება\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1357 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" msgstr " -N, --exclude-schema=სქემა მითითებული სქემებში ცხრილები მომტვერსასრუტებული არ იქნება\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1358 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr " -P, --parallel=პარალელური_დამხმარე_პროცესი დასამტვერსასრუტებლად მითითებული რაოდენობის დამხმარე პროცესის გამოყენება, თუ ეს შესაძლებელია\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1359 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet არ გამოიტანო შეტყობინებები\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1360 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr " --skip-locked გამოტოვებული იქნება ურთიერთობები, რომლის მაშინვე ჩაკეტვაც შეუძლებელია\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1361 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='ცხრილი[(სვეტები)]' მხოლოდ მითითებული ცხრილების დამტვერსასრუტება\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1362 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose დამატებითი ინფორმაციის გამოტანა\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1363 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ინფორმაციის გამოტანა და გასვლა\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1364 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze ოპტიმიზატორის სტატისტიკის განახლება\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1365 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr " -Z, --analyze-only მხოლოდ ოპტიმიზატორის სტატისტიკის განახლება; დამტვერსასრუტების გარეშე\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1366 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1262,12 +1272,12 @@ msgstr "" " --analyze-in-stages უკეთესი შედეგებისთვის ოპტიმიზატორის სტატისტიკის\n" " მრავალსაფეხურიანი რეჟიმი; დამტვერსასრუტების გარეშე\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1368 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: vacuumdb.c:1185 +#: vacuumdb.c:1376 #, c-format msgid "" "\n" diff --git a/src/bin/scripts/po/ko.po b/src/bin/scripts/po/ko.po index 9df2d7b7022e9..5e694f0725165 100644 --- a/src/bin/scripts/po/ko.po +++ b/src/bin/scripts/po/ko.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pgscripts (PostgreSQL) 16\n" +"Project-Id-Version: pgscripts (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:51+0000\n" -"PO-Revision-Date: 2023-05-26 13:22+0900\n" +"POT-Creation-Date: 2025-01-17 04:51+0000\n" +"PO-Revision-Date: 2025-01-16 14:23+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -46,6 +46,48 @@ msgstr "메모리 부족\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "null 포인터를 복제할 수 없음(내부 오류)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "\"%s\" 파일을 열 수 없음: %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "\"%s\" 파일을 위한 파일 시스템 동기화를 할 수 없음: %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "\"%s\" 파일 상태 정보를 구할 수 없음: %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "이 빌드는 \"%s\" 동기화 방법을 지원하지 않음" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 열 수 없음: %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "\"%s\" 디렉터리를 읽을 수 없음: %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "\"%s\" 파일을 fsync 할 수 없음: %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "\"%s\" 파일을 \"%s\" 파일로 이름을 바꿀 수 없음: %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -60,11 +102,11 @@ msgstr "사용자 없음" msgid "user name lookup failure: error code %lu" msgstr "사용자 이름 찾기 실패: 오류번호 %lu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "취소 요청을 전송함\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "취소 요청을 전송할 수 없음: " @@ -92,12 +134,27 @@ msgstr "\"%s\" 값은 \"%s\" 옵션 값으로 유효하지 않음" msgid "%s must be in range %d..%d" msgstr "%s 값은 %d부터 %d까지 지정할 수 있습니다." -#: ../../fe_utils/parallel_slot.c:299 +#: ../../fe_utils/option_utils.c:106 #, c-format -msgid "too many jobs for this platform" -msgstr "이 운영체제에서는 너무 많은 동시 작업임" +msgid "unrecognized sync method: %s" +msgstr "알 수 없는 동기화 방법: %s" -#: ../../fe_utils/parallel_slot.c:520 +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "이 운영체제에서는 너무 많은 동시 작업임: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "select() 작업을 위한 소켓 파일 기술자 범위를 벗어남: %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "job 수를 줄이세요." + +#: ../../fe_utils/parallel_slot.c:553 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "\"%s\" 데이터베이스 작업 실패: %s" @@ -113,17 +170,25 @@ msgstr[0] "(%lu개 행)" msgid "Interrupted\n" msgstr "인트럽트발생\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "" +"Cannot print table contents: number of cells %lld is equal to or exceeds " +"maximum %lld.\n" +msgstr "" +"테이블 내용을 출력할 수 없음: %lld 셀 수가 최대값 %lld 개와 같거나 초과함.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "테이블 내용에 헤더를 추가할 수 없음: 열 수가 %d개를 초과했습니다.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "테이블 내용에 셀을 추가할 수 없음: 총 셀 수가 %d개를 초과했습니다.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "테이블 내용에 셀을 추가할 수 없음: 총 셀 수가 %lld개를 초과했습니다.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "잘못된 출력 형식 (내부 오류): %d" @@ -138,36 +203,41 @@ msgstr "쿼리 실패: %s" msgid "Query was: %s" msgstr "사용한 쿼리: %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "쉘 명령 인자에 줄바꿈 문자가 포함되었음: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "데이터베이스 이름에 줄바꿈 문자가 포함되었음: \"%s\"\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:277 vacuumdb.c:297 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "자세한 사항은 \"%s --help\" 명령으로 살펴보세요." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:295 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "명령행 인자를 너무 많이 지정했습니다 (시작: \"%s\")" -#: clusterdb.c:148 +#: clusterdb.c:149 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "모든 DB 작업과 특정 DB 작업은 동시에 할 수 없습니다." -#: clusterdb.c:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "모든 DB를 대상으로 특정 테이블들을 클러스터할 수 없음" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "\"%s\" 테이블(해당DB: \"%s\") 클러스터 작업 실패: %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "\"%s\" 데이터베이스 클러스터 실패: %s" @@ -177,7 +247,7 @@ msgstr "\"%s\" 데이터베이스 클러스터 실패: %s" msgid "%s: clustering database \"%s\"\n" msgstr "%s: \"%s\" 데이터베이스 클러스터 작업 중\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -187,19 +257,19 @@ msgstr "" "다시 클러스터 작업을 합니다.\n" "\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1127 +#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:872 vacuumdb.c:1158 #, c-format msgid "Usage:\n" msgstr "사용법:\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1128 +#: clusterdb.c:276 reindexdb.c:873 vacuumdb.c:1159 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [옵션]... [DB이름]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1129 +#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:874 vacuumdb.c:1160 #, c-format msgid "" "\n" @@ -208,49 +278,49 @@ msgstr "" "\n" "옵션들:\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all 모든 데이터베이스를 대상으로\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=DBNAME 클러스터 작업할 DB\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 #, c-format msgid "" " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo 서버로 보내는 작업 명령을 보여줌\n" -#: clusterdb.c:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet 어떠한 메시지도 보여주지 않음\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABLE 지정한 테이블들만 클러스터\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 많은 출력 작성\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1158 +#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:889 vacuumdb.c:1189 #, c-format msgid "" "\n" @@ -259,38 +329,38 @@ msgstr "" "\n" "연결 옵션들:\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1159 +#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1190 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME 데이터베이스 서버 호스트 또는 소켓 디렉터리\n" -#: clusterdb.c:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1160 +#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1191 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT 데이터베이스 서버 포트\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1161 +#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1192 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME 접속할 사용자이름\n" -#: clusterdb.c:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1162 +#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1193 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password 암호 프롬프트 표시 안 함\n" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1163 +#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1194 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password 암호 프롬프트 표시함\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1164 +#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1195 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME 대체용 관리 대상 데이터베이스\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "" "\n" @@ -299,8 +369,8 @@ msgstr "" "\n" "보다 자세한 내용은 CLUSTER SQL 명령어 설명서를 참조하십시오.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1166 +#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:897 vacuumdb.c:1197 #, c-format msgid "" "\n" @@ -309,8 +379,8 @@ msgstr "" "\n" "문제점 보고 주소: <%s>\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1167 +#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:898 vacuumdb.c:1198 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" @@ -343,22 +413,22 @@ msgstr "%s (%s/%s) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "\"%s\" 또는 \"%s\" 만 허용합니다.\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" 이름은 잘못된 인코딩 이름임" -#: createdb.c:250 +#: createdb.c:260 #, c-format msgid "database creation failed: %s" msgstr "데이터베이스 만들기 실패: %s" -#: createdb.c:269 +#: createdb.c:279 #, c-format msgid "comment creation failed (database was created): %s" msgstr "코멘트 추가하기 실패 (데이터베이스는 만들어졌음): %s" -#: createdb.c:287 +#: createdb.c:297 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -367,70 +437,75 @@ msgstr "" "%s 프로그램은 PostgreSQL 데이터베이스를 만듭니다.\n" "\n" -#: createdb.c:289 +#: createdb.c:299 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [옵션]... [DB이름] [설명]\n" -#: createdb.c:291 +#: createdb.c:301 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr "" " -D, --tablespace=TABLESPACE 데이터베이스를 위한 기본 테이블스페이스\n" -#: createdb.c:292 reindexdb.c:756 +#: createdb.c:302 reindexdb.c:878 #, c-format msgid "" " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo 서버로 보내는 작업 명령들을 보여줌\n" -#: createdb.c:293 +#: createdb.c:303 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=ENCODING 데이터베이스 인코딩\n" -#: createdb.c:294 +#: createdb.c:304 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOCALE 데이터베이스의 로캘 설정\n" -#: createdb.c:295 +#: createdb.c:305 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=LOCALE 데이터베이스의 LC_COLLATE 설정\n" -#: createdb.c:296 +#: createdb.c:306 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=LOCALE 데이터베이스의 LC_CTYPE 설정\n" -#: createdb.c:297 +#: createdb.c:307 +#, c-format +msgid "" +" --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=LOCALE 데이터베이스 내장 로케일 설정\n" + +#: createdb.c:308 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE 데이터베이스 ICU 로캘 설정\n" -#: createdb.c:298 +#: createdb.c:309 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=RULES 데이터베이스 ICU 룰 설정\n" -#: createdb.c:299 +#: createdb.c:310 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default " "collation\n" msgstr "" -" --locale-provider={libc|icu}\n" -" 데이터베이스 기본 문자 정렬을 위한 로케일 제공" -"자\n" +" --locale-provider={builtin|libc|icu}\n" +" 데이터베이스 기본 문자 정렬 제공자 설정\n" -#: createdb.c:301 +#: createdb.c:312 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --owner=OWNER 데이터베이스 소유주\n" -#: createdb.c:302 +#: createdb.c:313 #, c-format msgid "" " -S, --strategy=STRATEGY database creation strategy wal_log or " @@ -439,54 +514,54 @@ msgstr "" " -S, --strategy=STRATEGY 데이터베이스 만드는 전략(wal_log 또는 " "file_copy)\n" -#: createdb.c:303 +#: createdb.c:314 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=TEMPLATE 복사할 템플릿 데이터베이스\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:315 reindexdb.c:887 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:316 reindexdb.c:888 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 보여주고 마침\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:318 reindexdb.c:890 #, c-format msgid "" " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" " -h, --host=HOSTNAME 데이터베이스 서버 호스트나 소켓 디렉터리\n" -#: createdb.c:308 reindexdb.c:769 +#: createdb.c:319 reindexdb.c:891 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT 데이터베이스 서버 포트\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:320 reindexdb.c:892 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME 접속할 사용자\n" -#: createdb.c:310 reindexdb.c:771 +#: createdb.c:321 reindexdb.c:893 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password 암호 프롬프트 표시 안 함\n" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:322 reindexdb.c:894 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password 암호 프롬프트 표시함\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:323 reindexdb.c:895 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME 대체용 관리 대상 데이터베이스\n" -#: createdb.c:313 +#: createdb.c:324 #, c-format msgid "" "\n" @@ -880,105 +955,57 @@ msgstr " -t, --timeout=초 연결 제한 시간, 0 무제한 (초기값 msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=USERNAME 접속할 사용자이름\n" -#: reindexdb.c:209 -#, c-format -msgid "cannot reindex all databases and a specific one at the same time" -msgstr "" -"모든 데이터베이스 재색인 작업과 특정 데이터베이스 재색인 작업은 동시에 진행" -"할 수 없습니다" - -#: reindexdb.c:211 -#, c-format -msgid "cannot reindex all databases and system catalogs at the same time" -msgstr "" -"모든 데이터베이스 재색인 작업과 시스템 카탈로그 재색인 작업은 동시에 진행할 " -"수 없습니다" - -#: reindexdb.c:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "" -"모든 데이터베이스 재색인 작업에서 특정 스키마들의 재색인 작업을 지정할 수 없" -"습니다" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "" -"모든 데이터베이스 재색인 작업에서 특정 테이블의 재색인 작업을 지정할 수 없습" -"니다" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "" -"모든 데이터베이스 재색인 작업에서 특정 인덱스 재색인 작업을 지정할 수 없습니" -"다" - -#: reindexdb.c:227 -#, c-format -msgid "cannot reindex specific schema(s) and system catalogs at the same time" -msgstr "특정 스키마와 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" - -#: reindexdb.c:229 -#, c-format -msgid "cannot reindex specific table(s) and system catalogs at the same time" -msgstr "특정 테이블과 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" - -#: reindexdb.c:231 -#, c-format -msgid "cannot reindex specific index(es) and system catalogs at the same time" -msgstr "특정 인덱스와 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" - -#: reindexdb.c:234 +#: reindexdb.c:210 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "시스템 카탈로그 재색인 작업은 병렬로 처리할 수 없음" -#: reindexdb.c:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "인덱스 다시 만들기에서는 다중 작업을 사용할 수 없음" +msgid "cannot reindex all databases and a specific one at the same time" +msgstr "" +"모든 데이터베이스 재색인 작업과 특정 데이터베이스 재색인 작업은 동시에 진행" +"할 수 없습니다" -#: reindexdb.c:323 reindexdb.c:330 vacuumdb.c:509 vacuumdb.c:516 vacuumdb.c:523 -#: vacuumdb.c:530 vacuumdb.c:537 vacuumdb.c:544 vacuumdb.c:551 vacuumdb.c:556 -#: vacuumdb.c:560 vacuumdb.c:564 vacuumdb.c:568 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:514 vacuumdb.c:521 vacuumdb.c:528 +#: vacuumdb.c:535 vacuumdb.c:542 vacuumdb.c:549 vacuumdb.c:556 vacuumdb.c:561 +#: vacuumdb.c:565 vacuumdb.c:569 vacuumdb.c:573 #, c-format msgid "" "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "\"%s\" 옵션은 PostgreSQL %s 버전보다 오래된 서버에서는 사용할 수 없음" -#: reindexdb.c:561 +#: reindexdb.c:584 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "\"%s\" 데이터베이스 재색인 작업 실패: %s" -#: reindexdb.c:565 +#: reindexdb.c:588 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "\"%s\" 인덱스(해당DB: \"%s\") 재색인 작업 실패: %s" -#: reindexdb.c:569 +#: reindexdb.c:592 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "\"%s\" 스키마(해당DB: \"%s\") 재색인 작업 실패: %s" -#: reindexdb.c:573 +#: reindexdb.c:596 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "\"%s\" 데이터베이스 시스템 카탈로그 재색인 작업 실패: %s" -#: reindexdb.c:577 +#: reindexdb.c:600 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "\"%s\" 테이블(해당DB: \"%s\") 재색인 작업 실패: %s" -#: reindexdb.c:732 +#: reindexdb.c:828 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: \"%s\" 데이터베이스 재색인 작업 중\n" -#: reindexdb.c:749 +#: reindexdb.c:871 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -987,27 +1014,27 @@ msgstr "" "%s 프로그램은 PostgreSQL 데이터베이스 재색인 작업을 합니다.\n" "\n" -#: reindexdb.c:753 +#: reindexdb.c:875 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all 모든 데이터베이스 재색인\n" -#: reindexdb.c:754 +#: reindexdb.c:876 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently 테이블 잠그지 않는 재색인\n" -#: reindexdb.c:755 +#: reindexdb.c:877 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME 지정한 데이터베이스의 재색인 작업\n" -#: reindexdb.c:757 +#: reindexdb.c:879 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX 지정한 인덱스들만 다시 만듬\n" -#: reindexdb.c:758 +#: reindexdb.c:880 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " @@ -1015,38 +1042,38 @@ msgid "" msgstr "" " -j, --jobs=NUM 재색인 작업을 여러개의 연결로 동시에 작업함\n" -#: reindexdb.c:759 +#: reindexdb.c:881 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet 어떠한 메시지도 보여주지 않음\n" -#: reindexdb.c:760 +#: reindexdb.c:882 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system 시스템 카탈로그 재색인\n" -#: reindexdb.c:761 +#: reindexdb.c:883 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA 지정한 스키마들 자료만 덤프\n" -#: reindexdb.c:762 +#: reindexdb.c:884 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLE 지정한 테이블들만 재색인 작업\n" -#: reindexdb.c:763 +#: reindexdb.c:885 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr "" " --tablespace=TABLESPACE 데이터베이스를 위한 기본 테이블스페이스\n" -#: reindexdb.c:764 +#: reindexdb.c:886 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 작업내역의 자세한 출력\n" -#: reindexdb.c:774 +#: reindexdb.c:896 #, c-format msgid "" "\n" @@ -1055,57 +1082,42 @@ msgstr "" "\n" "보다 자세한 내용은 REINDEX SQL 명령어 설명서를 참조하십시오.\n" -#: vacuumdb.c:310 vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 -#: vacuumdb.c:325 vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:340 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "통계 수집 전용 작업에서는 \"%s\" 옵션을 사용할 수 없음" -#: vacuumdb.c:343 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "full vacuum 작업에서는 \"%s\" 옵션을 사용할 수 없음" -#: vacuumdb.c:349 vacuumdb.c:357 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "\"%s\" 옵션과 \"%s\" 옵션을 함께 사용할 수 없음" -#: vacuumdb.c:428 +#: vacuumdb.c:432 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "" "-a 옵션이 있을 경우는 한 데이터베이스를 대상으로 작업을 진행할 수 없습니다." -#: vacuumdb.c:432 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "모든 데이터베이스를 대상으로는 특정 테이블들을 청소할 수는 없음" - #: vacuumdb.c:436 #, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "모든 데이터베이스를 대상으로는 특정 스키마들을 청소할 수는 없음" - -#: vacuumdb.c:440 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "모든 데이터베이스를 대상으로는 특정 스키마를 제외할 수 없음" - -#: vacuumdb.c:444 -#, c-format msgid "" "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "" "스키마 안에 있는 모든 테이블을 청소하는 것과 특정 테이블만 청소하는 것을 동시" "에 할 수 없음" -#: vacuumdb.c:448 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "특정 테이블만 청소하는 것과 스키마를 제외하는 것은 동시에 할 수 없음" -#: vacuumdb.c:452 +#: vacuumdb.c:444 #, c-format msgid "" "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" @@ -1113,39 +1125,44 @@ msgstr "" "스키마 안 모든 테이블만 청소하는 것과 스키마를 제외하는 것은 동시에 할 수 없" "음" -#: vacuumdb.c:496 +#: vacuumdb.c:457 +#, c-format +msgid "out of memory" +msgstr "메모리 부족" + +#: vacuumdb.c:501 msgid "Generating minimal optimizer statistics (1 target)" msgstr "최소 최적화 통계 수집 수행 중 (1% 대상)" -#: vacuumdb.c:497 +#: vacuumdb.c:502 msgid "Generating medium optimizer statistics (10 targets)" msgstr "일반 최적화 통계 수집 수행 중 (10% 대상)" -#: vacuumdb.c:498 +#: vacuumdb.c:503 msgid "Generating default (full) optimizer statistics" msgstr "최대 최적화 통계 수집 수행중 (모든 자료 대상)" -#: vacuumdb.c:577 +#: vacuumdb.c:582 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: \"%s\" 데이터베이스 작업 중: %s\n" -#: vacuumdb.c:580 +#: vacuumdb.c:585 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: \"%s\" 데이터베이스를 청소 중\n" -#: vacuumdb.c:1115 +#: vacuumdb.c:1146 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "\"%s\" 테이블 (해당 DB: \"%s\") 청소하기 실패: %s" -#: vacuumdb.c:1118 +#: vacuumdb.c:1149 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "\"%s\" 데이터베이스 청소하기 실패: %s" -#: vacuumdb.c:1126 +#: vacuumdb.c:1157 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1155,44 +1172,44 @@ msgstr "" "퀴리 최적화기의 참고 자료를 갱신합니다.\n" "\n" -#: vacuumdb.c:1130 +#: vacuumdb.c:1161 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all 모든 데이터베이스 청소\n" -#: vacuumdb.c:1131 +#: vacuumdb.c:1162 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=SIZE 청소를 위한 링 버커 크기\n" -#: vacuumdb.c:1132 +#: vacuumdb.c:1163 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=DBNAME DBNAME 데이터베이스 청소\n" -#: vacuumdb.c:1133 +#: vacuumdb.c:1164 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping 모든 page-skipping 기능 비활성화\n" -#: vacuumdb.c:1134 +#: vacuumdb.c:1165 #, c-format msgid "" " -e, --echo show the commands being sent to the " "server\n" msgstr " -e, --echo 서버로 보내는 명령들을 보여줌\n" -#: vacuumdb.c:1135 +#: vacuumdb.c:1166 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full 대청소\n" -#: vacuumdb.c:1136 +#: vacuumdb.c:1167 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze 행 트랜잭션 정보 동결\n" -#: vacuumdb.c:1137 +#: vacuumdb.c:1168 #, c-format msgid "" " --force-index-cleanup always remove index entries that point to " @@ -1200,7 +1217,7 @@ msgid "" msgstr "" " --force-index-cleanup 삭제된 튜플 대상 인덱스 항목 항상 삭제\n" -#: vacuumdb.c:1138 +#: vacuumdb.c:1169 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " @@ -1208,7 +1225,7 @@ msgid "" msgstr "" " -j, --jobs=NUM 청소 작업을 여러개의 연결로 동시에 작업함\n" -#: vacuumdb.c:1139 +#: vacuumdb.c:1170 #, c-format msgid "" " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to " @@ -1216,7 +1233,7 @@ msgid "" msgstr "" " --min-mxid-age=MXID_AGE 청소할 테이블의 최소 multixact ID 나이\n" -#: vacuumdb.c:1140 +#: vacuumdb.c:1171 #, c-format msgid "" " --min-xid-age=XID_AGE minimum transaction ID age of tables to " @@ -1224,7 +1241,7 @@ msgid "" msgstr "" " --min-xid-age=XID_AGE 청소할 테이블의 최소 트랜잭션 ID 나이\n" -#: vacuumdb.c:1141 +#: vacuumdb.c:1172 #, c-format msgid "" " --no-index-cleanup don't remove index entries that point to " @@ -1232,12 +1249,12 @@ msgid "" msgstr "" " --no-index-cleanup 삭제된 튜플 대상 인덱스 항목 지우지 않음\n" -#: vacuumdb.c:1142 +#: vacuumdb.c:1173 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main 메인 릴레이션 건너뜀\n" -#: vacuumdb.c:1143 +#: vacuumdb.c:1174 #, c-format msgid "" " --no-process-toast skip the TOAST table associated with the " @@ -1246,7 +1263,7 @@ msgstr "" " --no-process-toast vacuum 대상 테이블과 관련된 TOAST 테이블 건" "너뜀\n" -#: vacuumdb.c:1144 +#: vacuumdb.c:1175 #, c-format msgid "" " --no-truncate don't truncate empty pages at the end of " @@ -1254,23 +1271,23 @@ msgid "" msgstr "" " --no-truncate 테이블 끝에 있는 빈 페이지를 지우지 않음\n" -#: vacuumdb.c:1145 +#: vacuumdb.c:1176 #, c-format msgid "" -" -n, --schema=PATTERN vacuum tables in the specified schema(s) " +" -n, --schema=SCHEMA vacuum tables in the specified schema(s) " "only\n" msgstr "" -" -n, --schema=PATTERN 지정한 스키마 안에 있는 테이블만 청소함\n" +" -n, --schema=SCHEMA 지정한 스키마 안에 있는 테이블만 청소함\n" -#: vacuumdb.c:1146 +#: vacuumdb.c:1177 #, c-format msgid "" -" -N, --exclude-schema=PATTERN do not vacuum tables in the specified " +" -N, --exclude-schema=SCHEMA do not vacuum tables in the specified " "schema(s)\n" msgstr "" -" -N, --exclude-schema=PATTERN 지정한 스키마 안에 있는 테이블만 청소안함\n" +" -N, --exclude-schema=SCHEMA 지정한 스키마 안에 있는 테이블만 청소안함\n" -#: vacuumdb.c:1147 +#: vacuumdb.c:1178 #, c-format msgid "" " -P, --parallel=PARALLEL_WORKERS use this many background workers for " @@ -1279,12 +1296,12 @@ msgstr "" " -P, --parallel=병렬작업수 vacuum 작업을 병렬로 처리 할 수 있는 경우\n" " 백그라운드 작업 프로세스 수\n" -#: vacuumdb.c:1148 +#: vacuumdb.c:1179 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet 어떠한 메시지도 보여주지 않음\n" -#: vacuumdb.c:1149 +#: vacuumdb.c:1180 #, c-format msgid "" " --skip-locked skip relations that cannot be immediately " @@ -1292,28 +1309,28 @@ msgid "" msgstr "" " --skip-locked 즉시 잠글 수 없는 릴레이션은 건너 뜀\n" -#: vacuumdb.c:1150 +#: vacuumdb.c:1181 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='TABLE[(COLUMNS)]' 지정한 특정 테이블들만 청소\n" -#: vacuumdb.c:1151 +#: vacuumdb.c:1182 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose 작업내역의 자세한 출력\n" -#: vacuumdb.c:1152 +#: vacuumdb.c:1183 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version 버전 정보를 보여주고 마침\n" -#: vacuumdb.c:1153 +#: vacuumdb.c:1184 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze 쿼리최적화 통계 정보를 갱신함\n" -#: vacuumdb.c:1154 +#: vacuumdb.c:1185 #, c-format msgid "" " -Z, --analyze-only only update optimizer statistics; no " @@ -1322,7 +1339,7 @@ msgstr "" " -Z, --analyze-only 청소 작업 없이 쿼리최적화 통계 정보만 갱신" "함\n" -#: vacuumdb.c:1155 +#: vacuumdb.c:1186 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in " @@ -1332,12 +1349,12 @@ msgstr "" " --analyze-in-stages 보다 빠른 결과를 위해 다중 스테이지에서\n" " 최적화 통계치만 갱신함;청소 안함\n" -#: vacuumdb.c:1157 +#: vacuumdb.c:1188 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help 이 도움말을 표시하고 종료\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1196 #, c-format msgid "" "\n" @@ -1345,3 +1362,65 @@ msgid "" msgstr "" "\n" "보다 자세한 내용은 VACUUM SQL 명령어 설명서를 참조하십시오.\n" + +#, c-format +#~ msgid "cannot cluster specific table(s) in all databases" +#~ msgstr "모든 DB를 대상으로 특정 테이블들을 클러스터할 수 없음" + +#, c-format +#~ msgid "cannot reindex all databases and system catalogs at the same time" +#~ msgstr "" +#~ "모든 데이터베이스 재색인 작업과 시스템 카탈로그 재색인 작업은 동시에 진행" +#~ "할 수 없습니다" + +#, c-format +#~ msgid "cannot reindex specific schema(s) in all databases" +#~ msgstr "" +#~ "모든 데이터베이스 재색인 작업에서 특정 스키마들의 재색인 작업을 지정할 수 " +#~ "없습니다" + +#, c-format +#~ msgid "cannot reindex specific table(s) in all databases" +#~ msgstr "" +#~ "모든 데이터베이스 재색인 작업에서 특정 테이블의 재색인 작업을 지정할 수 없" +#~ "습니다" + +#, c-format +#~ msgid "cannot reindex specific index(es) in all databases" +#~ msgstr "" +#~ "모든 데이터베이스 재색인 작업에서 특정 인덱스 재색인 작업을 지정할 수 없습" +#~ "니다" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific schema(s) and system catalogs at the same time" +#~ msgstr "" +#~ "특정 스키마와 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific table(s) and system catalogs at the same time" +#~ msgstr "" +#~ "특정 테이블과 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific index(es) and system catalogs at the same time" +#~ msgstr "" +#~ "특정 인덱스와 시스템 카탈로그 재색인 작업은 동시에 진행할 수 없습니다" + +#, c-format +#~ msgid "cannot use multiple jobs to reindex indexes" +#~ msgstr "인덱스 다시 만들기에서는 다중 작업을 사용할 수 없음" + +#, c-format +#~ msgid "cannot vacuum specific table(s) in all databases" +#~ msgstr "모든 데이터베이스를 대상으로는 특정 테이블들을 청소할 수는 없음" + +#, c-format +#~ msgid "cannot vacuum specific schema(s) in all databases" +#~ msgstr "모든 데이터베이스를 대상으로는 특정 스키마들을 청소할 수는 없음" + +#, c-format +#~ msgid "cannot exclude specific schema(s) in all databases" +#~ msgstr "모든 데이터베이스를 대상으로는 특정 스키마를 제외할 수 없음" diff --git a/src/bin/scripts/po/pt_BR.po b/src/bin/scripts/po/pt_BR.po index 0eccd72b48068..011367c29ca93 100644 --- a/src/bin/scripts/po/pt_BR.po +++ b/src/bin/scripts/po/pt_BR.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2022-09-27 13:15-0300\n" -"PO-Revision-Date: 2023-08-17 16:32+0200\n" +"PO-Revision-Date: 2024-06-26 10:46+0200\n" "Last-Translator: Euler Taveira \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" @@ -245,12 +245,12 @@ msgstr " -v, --verbose mostra muitas mensagens\n" #: clusterdb.c:272 createuser.c:364 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" -msgstr " -V, --version mostra informação sobre a versão e termina\n" +msgstr " -V, --version mostra informação sobre a versão e termina\n" #: clusterdb.c:273 createuser.c:369 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" -msgstr " -?, --help mostra essa ajuda e termina\n" +msgstr " -?, --help mostra essa ajuda e termina\n" #: clusterdb.c:274 createdb.c:298 createuser.c:370 dropdb.c:181 dropuser.c:179 #: pg_isready.c:235 reindexdb.c:777 vacuumdb.c:991 diff --git a/src/bin/scripts/po/ru.po b/src/bin/scripts/po/ru.po index 5ae3272f51147..2afac56ec193f 100644 --- a/src/bin/scripts/po/ru.po +++ b/src/bin/scripts/po/ru.po @@ -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, 2021, 2022, 2023. +# Alexander Lakhin , 2012-2017, 2019, 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: pgscripts (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:08+0300\n" -"PO-Revision-Date: 2023-11-03 10:36+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-05 08:25+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -50,6 +50,48 @@ msgstr "нехватка памяти\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "попытка дублирования нулевого указателя (внутренняя ошибка)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не удалось открыть файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не удалось получить информацию о файле \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "эта сборка программы не поддерживает метод синхронизации \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не удалось открыть каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не удалось прочитать каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не удалось синхронизировать с ФС файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не удалось переименовать файл \"%s\" в \"%s\": %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -64,11 +106,11 @@ msgstr "пользователь не существует" msgid "user name lookup failure: error code %lu" msgstr "распознать имя пользователя не удалось (код ошибки: %lu)" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Сигнал отмены отправлен\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Отправить сигнал отмены не удалось: " @@ -96,6 +138,11 @@ msgstr "неверное значение \"%s\" для параметра %s" msgid "%s must be in range %d..%d" msgstr "значение %s должно быть в диапазоне %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нераспознанный метод синхронизации: %s" + #: ../../fe_utils/parallel_slot.c:317 #, c-format msgid "too many jobs for this platform: %d" @@ -129,19 +176,28 @@ msgstr[2] "(%lu строк)" msgid "Interrupted\n" msgstr "Прервано\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "" +"Cannot print table contents: number of cells %lld is equal to or exceeds " +"maximum %lld.\n" +msgstr "" +"Вывести содержимое таблицы нельзя: число ячеек %lld достигло максимума " +"%lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "" "Ошибка добавления заголовка таблицы: превышен предел числа столбцов (%d).\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" msgstr "" -"Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%d).\n" +"Ошибка добавления ячейки в таблицу: превышен предел числа ячеек (%lld).\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "неверный формат вывода (внутренняя ошибка): %d" @@ -156,36 +212,44 @@ msgstr "ошибка при выполнении запроса: %s" msgid "Query was: %s" msgstr "Выполнялся запрос: %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "" +"аргумент команды оболочки содержит символ новой строки или перевода каретки: " +"\"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "" +"имя базы данных содержит символ новой строки или перевода каретки: \"%s\"\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:279 vacuumdb.c:299 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:297 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: clusterdb.c:148 +#: clusterdb.c:149 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "нельзя кластеризовать все базы и одну конкретную одновременно" -#: clusterdb.c:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "нельзя кластеризовать указанную таблицу(ы) во всех базах" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "кластеризовать таблицу \"%s\" в базе \"%s\" не удалось: %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "кластеризовать базу \"%s\" не удалось: %s" @@ -195,7 +259,7 @@ msgstr "кластеризовать базу \"%s\" не удалось: %s" msgid "%s: clustering database \"%s\"\n" msgstr "%s: кластеризация базы \"%s\"\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -204,19 +268,19 @@ msgstr "" "%s упорядочивает данные всех кластеризованных таблиц в базе данных.\n" "\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1156 +#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:872 vacuumdb.c:1170 #, c-format msgid "Usage:\n" msgstr "Использование:\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1157 +#: clusterdb.c:276 reindexdb.c:873 vacuumdb.c:1171 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [ПАРАМЕТР]... [ИМЯ_БД]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1158 +#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:874 vacuumdb.c:1172 #, c-format msgid "" "\n" @@ -225,50 +289,50 @@ msgstr "" "\n" "Параметры:\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all кластеризовать все базы\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=ИМЯ_БД имя базы данных для кластеризации\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 #, c-format msgid "" " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo отображать команды, отправляемые серверу\n" -#: clusterdb.c:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не выводить никакие сообщения\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr "" " -t, --table=ТАБЛИЦА кластеризовать только указанную таблицу(ы)\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose выводить исчерпывающие сообщения\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1187 +#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:889 vacuumdb.c:1201 #, c-format msgid "" "\n" @@ -277,39 +341,40 @@ msgstr "" "\n" "Параметры подключения:\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1188 +#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1202 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" -#: clusterdb.c:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1189 +#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1203 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=ПОРТ порт сервера баз данных\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1190 +#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1204 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr "" " -U, --username=ИМЯ имя пользователя для подключения к серверу\n" -#: clusterdb.c:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1191 +#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1205 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1192 +#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1206 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запросить пароль\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1193 +#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1207 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=ИМЯ_БД сменить опорную базу данных\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "" "\n" @@ -318,8 +383,8 @@ msgstr "" "\n" "Подробнее о кластеризации вы можете узнать в описании SQL-команды CLUSTER.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1195 +#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:897 vacuumdb.c:1209 #, c-format msgid "" "\n" @@ -328,8 +393,8 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1196 +#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:898 vacuumdb.c:1210 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" @@ -364,22 +429,22 @@ msgstr "%s (%s - да/%s - нет) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Пожалуйста, введите \"%s\" или \"%s\".\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не является верным названием кодировки" -#: createdb.c:250 +#: createdb.c:260 #, c-format msgid "database creation failed: %s" msgstr "создать базу данных не удалось: %s" -#: createdb.c:269 +#: createdb.c:279 #, c-format msgid "comment creation failed (database was created): %s" msgstr "создать комментарий не удалось (база данных была создана): %s" -#: createdb.c:287 +#: createdb.c:297 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -388,76 +453,82 @@ msgstr "" "%s создаёт базу данных PostgreSQL.\n" "\n" -#: createdb.c:289 +#: createdb.c:299 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [ПАРАМЕТР]... [ИМЯ_БД] [ОПИСАНИЕ]\n" # well-spelled: ПРОСТР -#: createdb.c:291 +#: createdb.c:301 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr "" " -D, --tablespace=ТАБЛ_ПРОСТР табличное пространство по умолчанию для базы " "данных\n" -#: createdb.c:292 reindexdb.c:756 +#: createdb.c:302 reindexdb.c:878 #, c-format msgid "" " -e, --echo show the commands being sent to the server\n" msgstr "" " -e, --echo отображать команды, отправляемые серверу\n" -#: createdb.c:293 +#: createdb.c:303 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=КОДИРОВКА кодировка базы данных\n" -#: createdb.c:294 +#: createdb.c:304 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=ЛОКАЛЬ локаль для базы данных\n" -#: createdb.c:295 +#: createdb.c:305 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=ЛОКАЛЬ параметр LC_COLLATE для базы данных\n" -#: createdb.c:296 +#: createdb.c:306 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=ЛОКАЛЬ параметр LC_CTYPE для базы данных\n" -#: createdb.c:297 +#: createdb.c:307 +#, c-format +msgid "" +" --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=ЛОКАЛЬ имя встроенной локали для базы данных\n" + +#: createdb.c:308 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=ЛОКАЛЬ локаль ICU для базы данных\n" -#: createdb.c:298 +#: createdb.c:309 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr "" " --icu-rules=ПРАВИЛА настройка правил сортировки ICU для базы " "данных\n" -#: createdb.c:299 +#: createdb.c:310 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default " "collation\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " провайдер локали для основного правила " "сортировки БД\n" -#: createdb.c:301 +#: createdb.c:312 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr "" " -O, --owner=ВЛАДЕЛЕЦ пользователь-владелец новой базы данных\n" -#: createdb.c:302 +#: createdb.c:313 #, c-format msgid "" " -S, --strategy=STRATEGY database creation strategy wal_log or " @@ -466,55 +537,56 @@ msgstr "" " -S, --strategy=STRATEGY стратегия создания базы данных: wal_log или " "file_copy\n" -#: createdb.c:303 +#: createdb.c:314 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=ШАБЛОН исходная база данных для копирования\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:315 reindexdb.c:887 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:316 reindexdb.c:888 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:318 reindexdb.c:890 #, c-format msgid "" " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" -#: createdb.c:308 reindexdb.c:769 +#: createdb.c:319 reindexdb.c:891 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=ПОРТ порт сервера баз данных\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:320 reindexdb.c:892 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr "" " -U, --username=ИМЯ имя пользователя для подключения к серверу\n" -#: createdb.c:310 reindexdb.c:771 +#: createdb.c:321 reindexdb.c:893 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password не запрашивать пароль\n" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:322 reindexdb.c:894 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запросить пароль\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:323 reindexdb.c:895 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=ИМЯ_БД сменить опорную базу данных\n" -#: createdb.c:313 +#: createdb.c:324 #, c-format msgid "" "\n" @@ -907,7 +979,8 @@ msgstr " -?, --help показать эту справку и в #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr "" -" -h, --host=ИМЯ имя сервера баз данных или каталог сокетов\n" +" -h, --host=ИМЯ компьютер с сервером баз данных или каталог " +"сокетов\n" #: pg_isready.c:237 #, c-format @@ -929,105 +1002,59 @@ msgid " -U, --username=USERNAME user name to connect as\n" msgstr "" " -U, --username=ИМЯ имя пользователя для подключения к серверу\n" -#: reindexdb.c:209 -#, c-format -msgid "cannot reindex all databases and a specific one at the same time" -msgstr "" -"нельзя переиндексировать все базы данных и одну конкретную одновременно" - -#: reindexdb.c:211 -#, c-format -msgid "cannot reindex all databases and system catalogs at the same time" -msgstr "" -"нельзя переиндексировать все базы данных и системные каталоги одновременно" - -#: reindexdb.c:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "нельзя переиндексировать указанную схему(ы) во всех базах" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "нельзя переиндексировать указанную таблицу(ы) во всех базах" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "нельзя переиндексировать указанный индекс(ы) во всех базах" - -#: reindexdb.c:227 -#, c-format -msgid "cannot reindex specific schema(s) and system catalogs at the same time" -msgstr "" -"нельзя переиндексировать указанную схему(ы) и системные каталоги одновременно" - -#: reindexdb.c:229 -#, c-format -msgid "cannot reindex specific table(s) and system catalogs at the same time" -msgstr "" -"нельзя переиндексировать указанную таблицу(ы) и системные каталоги " -"одновременно" - -#: reindexdb.c:231 -#, c-format -msgid "cannot reindex specific index(es) and system catalogs at the same time" -msgstr "" -"нельзя переиндексировать указанный индекс(ы) и системные каталоги " -"одновременно" - -#: reindexdb.c:234 +#: reindexdb.c:210 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "" "нельзя задействовать несколько заданий для переиндексирования системных " "каталогов" -#: reindexdb.c:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "нельзя задействовать несколько заданий для перестроения индексов" +msgid "cannot reindex all databases and a specific one at the same time" +msgstr "" +"нельзя переиндексировать все базы данных и одну конкретную одновременно" -#: reindexdb.c:323 reindexdb.c:330 vacuumdb.c:525 vacuumdb.c:532 vacuumdb.c:539 -#: vacuumdb.c:546 vacuumdb.c:553 vacuumdb.c:560 vacuumdb.c:567 vacuumdb.c:572 -#: vacuumdb.c:576 vacuumdb.c:580 vacuumdb.c:584 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:514 vacuumdb.c:521 vacuumdb.c:528 +#: vacuumdb.c:535 vacuumdb.c:542 vacuumdb.c:549 vacuumdb.c:556 vacuumdb.c:563 +#: vacuumdb.c:570 vacuumdb.c:577 vacuumdb.c:584 #, c-format msgid "" "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "" "параметр \"%s\" нельзя использовать с серверами PostgreSQL версии старее %s" -#: reindexdb.c:561 +#: reindexdb.c:584 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "переиндексировать базу данных \"%s\" не удалось: %s" -#: reindexdb.c:565 +#: reindexdb.c:588 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "перестроить индекс \"%s\" в базе \"%s\" не удалось: %s" -#: reindexdb.c:569 +#: reindexdb.c:592 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "переиндексировать схему \"%s\" в базе \"%s\" не удалось: %s" -#: reindexdb.c:573 +#: reindexdb.c:596 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "переиндексировать системные каталоги в базе \"%s\" не удалось: %s" -#: reindexdb.c:577 +#: reindexdb.c:600 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "переиндексировать таблицу \"%s\" в базе \"%s\" не удалось: %s" -#: reindexdb.c:732 +#: reindexdb.c:828 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: переиндексация базы данных \"%s\"\n" -#: reindexdb.c:749 +#: reindexdb.c:871 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -1036,29 +1063,29 @@ msgstr "" "%s переиндексирует базу данных PostgreSQL.\n" "\n" -#: reindexdb.c:753 +#: reindexdb.c:875 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all переиндексировать все базы данных\n" -#: reindexdb.c:754 +#: reindexdb.c:876 #, c-format msgid " --concurrently reindex concurrently\n" msgstr "" " --concurrently переиндексировать в неблокирующем режиме\n" -#: reindexdb.c:755 +#: reindexdb.c:877 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=БД имя базы для переиндексации\n" -#: reindexdb.c:757 +#: reindexdb.c:879 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr "" " -i, --index=ИНДЕКС пересоздать только указанный индекс(ы)\n" -#: reindexdb.c:758 +#: reindexdb.c:880 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " @@ -1067,24 +1094,24 @@ msgstr "" " -j, --jobs=ЧИСЛО запускать для переиндексации заданное число\n" " заданий\n" -#: reindexdb.c:759 +#: reindexdb.c:881 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не выводить сообщения\n" -#: reindexdb.c:760 +#: reindexdb.c:882 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr "" " -s, --system переиндексировать только системные каталоги\n" -#: reindexdb.c:761 +#: reindexdb.c:883 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr "" " -S, --schema=СХЕМА переиндексировать только указанную схему(ы)\n" -#: reindexdb.c:762 +#: reindexdb.c:884 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr "" @@ -1092,19 +1119,19 @@ msgstr "" "таблицу(ы)\n" # well-spelled: ПРОСТР -#: reindexdb.c:763 +#: reindexdb.c:885 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr "" " --tablespace=ТАБЛ_ПРОСТР табличное пространство, в котором будут\n" " перестраиваться индексы\n" -#: reindexdb.c:764 +#: reindexdb.c:886 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose выводить исчерпывающие сообщения\n" -#: reindexdb.c:774 +#: reindexdb.c:896 #, c-format msgid "" "\n" @@ -1113,43 +1140,28 @@ msgstr "" "\n" "Подробнее о переиндексации вы можете узнать в описании SQL-команды REINDEX.\n" -#: vacuumdb.c:312 vacuumdb.c:315 vacuumdb.c:318 vacuumdb.c:321 vacuumdb.c:324 -#: vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:342 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "при выполнении только анализа нельзя использовать параметр \"%s\"" -#: vacuumdb.c:345 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "при выполнении полной очистки нельзя использовать параметр \"%s\"" -#: vacuumdb.c:351 vacuumdb.c:359 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "параметр \"%s\" нельзя использовать совместно с \"%s\"" -#: vacuumdb.c:430 +#: vacuumdb.c:432 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "нельзя очистить все базы данных и одну конкретную одновременно" -#: vacuumdb.c:434 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "нельзя очистить только указанную таблицу(ы) во всех базах" - -#: vacuumdb.c:438 -#, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "нельзя очистить только указанную схему(ы) во всех базах" - -#: vacuumdb.c:442 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "нельзя исключить указанную схему(ы) во всех базах" - -#: vacuumdb.c:446 +#: vacuumdb.c:436 #, c-format msgid "" "cannot vacuum all tables in schema(s) and specific table(s) at the same time" @@ -1157,57 +1169,57 @@ msgstr "" "нельзя очистить все таблицы в схеме(ах) и одну конкретную таблицу " "одновременно" -#: vacuumdb.c:450 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "" "нельзя очистить конкретную таблицу(ы) и исключить схему(ы) одновременно" -#: vacuumdb.c:454 +#: vacuumdb.c:444 #, c-format msgid "" "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "" "нельзя очистить все таблицы в схеме(ах) и исключить схему(ы) одновременно" -#: vacuumdb.c:467 +#: vacuumdb.c:457 #, c-format msgid "out of memory" msgstr "нехватка памяти" -#: vacuumdb.c:512 +#: vacuumdb.c:501 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Вычисление минимальной статистики для оптимизатора (1 запись)" -#: vacuumdb.c:513 +#: vacuumdb.c:502 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Вычисление средней статистики для оптимизатора (10 записей)" -#: vacuumdb.c:514 +#: vacuumdb.c:503 msgid "Generating default (full) optimizer statistics" msgstr "Вычисление стандартной (полной) статистики для оптимизатора" -#: vacuumdb.c:593 +#: vacuumdb.c:594 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: обработка базы данных \"%s\": %s\n" -#: vacuumdb.c:596 +#: vacuumdb.c:597 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: очистка базы данных \"%s\"\n" -#: vacuumdb.c:1144 +#: vacuumdb.c:1158 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "очистить таблицу \"%s\" в базе \"%s\" не удалось: %s" -#: vacuumdb.c:1147 +#: vacuumdb.c:1161 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "очистить базу данных \"%s\" не удалось: %s" -#: vacuumdb.c:1155 +#: vacuumdb.c:1169 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1216,12 +1228,12 @@ msgstr "" "%s очищает и анализирует базу данных PostgreSQL.\n" "\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1173 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all очистить все базы данных\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1174 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr "" @@ -1229,18 +1241,18 @@ msgstr "" "при\n" " очистке\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1175 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=ИМЯ_БД очистить указанную базу данных\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1176 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr "" " --disable-page-skipping исключить все варианты пропуска страниц\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1177 #, c-format msgid "" " -e, --echo show the commands being sent to the " @@ -1248,19 +1260,19 @@ msgid "" msgstr "" " -e, --echo отображать команды, отправляемые серверу\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1178 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full произвести полную очистку\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1179 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr "" " -F, --freeze заморозить информацию о транзакциях в " "строках\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1180 #, c-format msgid "" " --force-index-cleanup always remove index entries that point to " @@ -1270,7 +1282,7 @@ msgstr "" "указывающие\n" " на мёртвые кортежи\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1181 #, c-format msgid "" " -j, --jobs=NUM use this many concurrent connections to " @@ -1279,7 +1291,7 @@ msgstr "" " -j, --jobs=ЧИСЛО запускать для очистки заданное число " "заданий\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1182 #, c-format msgid "" " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to " @@ -1288,7 +1300,7 @@ msgstr "" " --min-mxid-age=ВОЗРАСТ минимальный возраст мультитранзакций для\n" " таблиц, подлежащих очистке\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1183 #, c-format msgid "" " --min-xid-age=XID_AGE minimum transaction ID age of tables to " @@ -1298,7 +1310,7 @@ msgstr "" "таблиц,\n" " подлежащих очистке\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1184 #, c-format msgid "" " --no-index-cleanup don't remove index entries that point to " @@ -1307,12 +1319,12 @@ msgstr "" " --no-index-cleanup не удалять элементы индекса, указывающие\n" " на мёртвые кортежи\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1185 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main пропускать основное отношение\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1186 #, c-format msgid "" " --no-process-toast skip the TOAST table associated with the " @@ -1321,7 +1333,7 @@ msgstr "" " --no-process-toast пропускать TOAST-таблицу, связанную\n" " с очищаемой таблицей\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1187 #, c-format msgid "" " --no-truncate don't truncate empty pages at the end of " @@ -1330,7 +1342,7 @@ msgstr "" " --no-truncate не отсекать пустые страницы в конце " "таблицы\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1188 #, c-format msgid "" " -n, --schema=SCHEMA vacuum tables in the specified schema(s) " @@ -1339,7 +1351,7 @@ msgstr "" " -n, --schema=СХЕМА очищать таблицы только в указанной " "схеме(ах)\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1189 #, c-format msgid "" " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified " @@ -1347,7 +1359,7 @@ msgid "" msgstr "" " -N, --exclude-schema=СХЕМА не очищать таблицы в указанной схеме(ах)\n" -#: vacuumdb.c:1176 +#: vacuumdb.c:1190 #, c-format msgid "" " -P, --parallel=PARALLEL_WORKERS use this many background workers for " @@ -1357,12 +1369,12 @@ msgstr "" " по возможности использовать для очистки\n" " заданное число фоновых процессов\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1191 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не выводить сообщения\n" -#: vacuumdb.c:1178 +#: vacuumdb.c:1192 #, c-format msgid "" " --skip-locked skip relations that cannot be immediately " @@ -1371,29 +1383,29 @@ msgstr "" " --skip-locked пропускать отношения, которые не удаётся\n" " заблокировать немедленно\n" -#: vacuumdb.c:1179 +#: vacuumdb.c:1193 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr "" " -t, --table='ТАБЛ[(СТОЛБЦЫ)]' очистить только указанную таблицу(ы)\n" -#: vacuumdb.c:1180 +#: vacuumdb.c:1194 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose выводить исчерпывающие сообщения\n" -#: vacuumdb.c:1181 +#: vacuumdb.c:1195 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: vacuumdb.c:1182 +#: vacuumdb.c:1196 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze обновить статистику оптимизатора\n" -#: vacuumdb.c:1183 +#: vacuumdb.c:1197 #, c-format msgid "" " -Z, --analyze-only only update optimizer statistics; no " @@ -1402,7 +1414,7 @@ msgstr "" " -Z, --analyze-only только обновить статистику оптимизатора,\n" " не очищать БД\n" -#: vacuumdb.c:1184 +#: vacuumdb.c:1198 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in " @@ -1414,12 +1426,12 @@ msgstr "" " (в несколько проходов для большей " "скорости), без очистки\n" -#: vacuumdb.c:1186 +#: vacuumdb.c:1200 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: vacuumdb.c:1194 +#: vacuumdb.c:1208 #, c-format msgid "" "\n" @@ -1428,6 +1440,64 @@ msgstr "" "\n" "Подробнее об очистке вы можете узнать в описании SQL-команды VACUUM.\n" +#, c-format +#~ msgid "cannot cluster specific table(s) in all databases" +#~ msgstr "нельзя кластеризовать указанную таблицу(ы) во всех базах" + +#, c-format +#~ msgid "cannot reindex all databases and system catalogs at the same time" +#~ msgstr "" +#~ "нельзя переиндексировать все базы данных и системные каталоги одновременно" + +#, c-format +#~ msgid "cannot reindex specific schema(s) in all databases" +#~ msgstr "нельзя переиндексировать указанную схему(ы) во всех базах" + +#, c-format +#~ msgid "cannot reindex specific table(s) in all databases" +#~ msgstr "нельзя переиндексировать указанную таблицу(ы) во всех базах" + +#, c-format +#~ msgid "cannot reindex specific index(es) in all databases" +#~ msgstr "нельзя переиндексировать указанный индекс(ы) во всех базах" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific schema(s) and system catalogs at the same time" +#~ msgstr "" +#~ "нельзя переиндексировать указанную схему(ы) и системные каталоги " +#~ "одновременно" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific table(s) and system catalogs at the same time" +#~ msgstr "" +#~ "нельзя переиндексировать указанную таблицу(ы) и системные каталоги " +#~ "одновременно" + +#, c-format +#~ msgid "" +#~ "cannot reindex specific index(es) and system catalogs at the same time" +#~ msgstr "" +#~ "нельзя переиндексировать указанный индекс(ы) и системные каталоги " +#~ "одновременно" + +#, c-format +#~ msgid "cannot use multiple jobs to reindex indexes" +#~ msgstr "нельзя задействовать несколько заданий для перестроения индексов" + +#, c-format +#~ msgid "cannot vacuum specific table(s) in all databases" +#~ msgstr "нельзя очистить только указанную таблицу(ы) во всех базах" + +#, c-format +#~ msgid "cannot vacuum specific schema(s) in all databases" +#~ msgstr "нельзя очистить только указанную схему(ы) во всех базах" + +#, c-format +#~ msgid "cannot exclude specific schema(s) in all databases" +#~ msgstr "нельзя исключить указанную схему(ы) во всех базах" + #, c-format #~ msgid "cannot reindex system catalogs concurrently, skipping all" #~ msgstr "" @@ -1457,9 +1527,6 @@ msgstr "" #~ msgid "minimum multixact ID age must be at least 1" #~ msgstr "минимальный возраст мультитранзакций должен быть не меньше 1" -#~ msgid "could not connect to database %s: %s" -#~ msgstr "не удалось подключиться к базе %s: %s" - #~ msgid "parallel vacuum degree must be a non-negative integer" #~ msgstr "" #~ "степень параллельности для очистки должна задаваться неотрицательным целым" diff --git a/src/bin/scripts/po/sv.po b/src/bin/scripts/po/sv.po index 5003a9397bd98..6dfeaecb092fb 100644 --- a/src/bin/scripts/po/sv.po +++ b/src/bin/scripts/po/sv.po @@ -1,14 +1,14 @@ # Swedish message translation file for postgresql -# Dennis Björklund , 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Dennis Björklund , 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Peter Eisentraut , 2013. # Mats Erik Andersson , 2014. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-23 02:50+0000\n" -"PO-Revision-Date: 2023-08-02 07:51+0200\n" +"POT-Creation-Date: 2024-07-12 17:52+0000\n" +"PO-Revision-Date: 2024-07-12 22:17+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -48,6 +48,48 @@ msgstr "slut på minne\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "kan inte duplicera null-pekare (internt fel)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "kunde inte öppna fil \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "kan inte synkronisera filsystemet för fil \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "kunde inte göra stat() på fil \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "detta bygge stöder inte synkmetod \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "kunde inte öppna katalog \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "kunde inte läsa katalog \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "kunde inte fsync:a fil \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "kunde inte döpa om fil \"%s\" till \"%s\": %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -62,11 +104,11 @@ msgstr "användaren finns inte" msgid "user name lookup failure: error code %lu" msgstr "misslyckad sökning efter användarnamn: felkod %lu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Förfrågan om avbrytning skickad\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Kunde inte skicka förfrågan om avbrytning: " @@ -94,12 +136,27 @@ msgstr "ogiltigt värde \"%s\" för flaggan \"%s\"" msgid "%s must be in range %d..%d" msgstr "%s måste vara i intervallet %d..%d" -#: ../../fe_utils/parallel_slot.c:299 +#: ../../fe_utils/option_utils.c:106 #, c-format -msgid "too many jobs for this platform" -msgstr "för många jobb för denna plattform" +msgid "unrecognized sync method: %s" +msgstr "okänd synkmetod: %s" -#: ../../fe_utils/parallel_slot.c:520 +#: ../../fe_utils/parallel_slot.c:317 +#, c-format +msgid "too many jobs for this platform: %d" +msgstr "för många jobb för denna plattform: %d" + +#: ../../fe_utils/parallel_slot.c:326 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "deskriptor-index utanför sitt intervall för select(): %d" + +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "Try fewer jobs." +msgstr "Försök med färre job." + +#: ../../fe_utils/parallel_slot.c:553 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "processande av databas \"%s\" misslyckades: %s" @@ -116,17 +173,22 @@ msgstr[1] "(%lu rader)" msgid "Interrupted\n" msgstr "Avbruten\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Kan inte skriva ut tabellinnehåll: antal celler %lld är lika med eller fler än maximala %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "Kan inte lägga till rubrik till tabellinnehåll: antal kolumner (%d) överskridet.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -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" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "Kan inte lägga till cell till tabellinnehåll: totala cellantalet %lld är överskridet.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "ogiltigt utdataformat (internt fel): %d" @@ -141,36 +203,41 @@ msgstr "fråga misslyckades: %s" msgid "Query was: %s" msgstr "Frågan var: %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "shell-kommandots argument innehåller nyrad eller vagnretur: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "databasnamnet innehåller nyrad eller vagnretur: \"%s\"\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:279 vacuumdb.c:299 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:297 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: clusterdb.c:148 +#: clusterdb.c:149 #, 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:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "kan inte klustra angivna tabeller i alla databaser" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "klustring av tabell \"%s\" i databas \"%s\" misslyckades: %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "klustring av databas \"%s\" misslyckades: %s" @@ -180,7 +247,7 @@ msgstr "klustring av databas \"%s\" misslyckades: %s" msgid "%s: clustering database \"%s\"\n" msgstr "%s: klustring av databas \"%s\"\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "" "%s clusters all previously clustered tables in a database.\n" @@ -189,19 +256,19 @@ msgstr "" "%s klustrar alla tidigare klustrade tabeller i en databas.\n" "\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1150 +#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 #, c-format msgid "Usage:\n" msgstr "Användning:\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1151 +#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [FLAGGA]... [DBNAMN]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1152 +#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 #, c-format msgid "" "\n" @@ -210,48 +277,48 @@ msgstr "" "\n" "Flaggor:\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all klustra alla databaser\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=DBNAME databas att klustra\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 #, 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:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet skriv inte ut några meddelanden\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=TABELL klustra enbart ingivna tabeller\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1181 +#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 #, c-format msgid "" "\n" @@ -260,37 +327,37 @@ msgstr "" "\n" "Flaggor för anslutning:\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1182 +#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 #, 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:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1183 +#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT databasserverns port\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1184 +#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 #, 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:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1185 +#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga ej efter lösenord\n" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1186 +#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password framtvinga fråga om lösenord\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1187 +#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAMN annat val av underhållsdatabas\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "" "\n" @@ -299,8 +366,8 @@ msgstr "" "\n" "Läs beskrivningen av SQL-kommandot CLUSTER för detaljer.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1189 +#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 #, c-format msgid "" "\n" @@ -309,8 +376,8 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1190 +#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" @@ -344,22 +411,22 @@ msgstr "%s (%s/%s) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Var vänlig att svara \"%s\" eller \"%s\".\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" är inte ett giltigt kodningsnamn" -#: createdb.c:250 +#: createdb.c:260 #, c-format msgid "database creation failed: %s" msgstr "misslyckades att skapa databas: %s" -#: createdb.c:269 +#: createdb.c:279 #, c-format msgid "comment creation failed (database was created): %s" msgstr "misslyckades att skapa kommentar (databasen skapades): %s" -#: createdb.c:287 +#: createdb.c:297 #, c-format msgid "" "%s creates a PostgreSQL database.\n" @@ -368,118 +435,123 @@ msgstr "" "%s skapar en PostgreSQL-databas.\n" "\n" -#: createdb.c:289 +#: createdb.c:299 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [FLAGGA]... [DBNAMN] [BESKRIVNING]\n" -#: createdb.c:291 +#: createdb.c:301 #, 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:292 reindexdb.c:756 +#: createdb.c:302 reindexdb.c:874 #, 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:293 +#: createdb.c:303 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=KODNING teckenkodning för databasen\n" -#: createdb.c:294 +#: createdb.c:304 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=LOKAL lokalnamn för databasen\n" -#: createdb.c:295 +#: createdb.c:305 #, 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:296 +#: createdb.c:306 #, 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:297 +#: createdb.c:307 +#, c-format +msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=LOKAL inbyggd lokal-inställning för databasen\n" + +#: createdb.c:308 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOKAL värde på ICU-lokal för databasen\n" -#: createdb.c:298 +#: createdb.c:309 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-rules=REGLER ICU-regler för databasen\n" -#: createdb.c:299 +#: createdb.c:310 #, c-format msgid "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default collation\n" msgstr "" -" --locale-provider={libc|icu}\n" +" --locale-provider={builtin|libc|icu}\n" " lokalleverantör av databasens standardjämförelser\n" -#: createdb.c:301 +#: createdb.c:312 #, 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:302 +#: createdb.c:313 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr "" " -S, --strategy=STRATEGI strategi för att skapa en databas, wal_log\n" " eller file_copy\n" -#: createdb.c:303 +#: createdb.c:314 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --template=MALL databasmall att kopiera\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:315 reindexdb.c:883 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:316 reindexdb.c:884 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:318 reindexdb.c:886 #, 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:308 reindexdb.c:769 +#: createdb.c:319 reindexdb.c:887 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT databasserverns port\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:320 reindexdb.c:888 #, 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:310 reindexdb.c:771 +#: createdb.c:321 reindexdb.c:889 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password fråga ej efter lösenord\n" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:322 reindexdb.c:890 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password framtvinga fråga om lösenord\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:323 reindexdb.c:891 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAMN annat val av underhållsdatabas\n" -#: createdb.c:313 +#: createdb.c:324 #, c-format msgid "" "\n" @@ -853,94 +925,54 @@ msgstr " -t, --timeout=SEK sekunder att vänta på anslutning; 0 stänge msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ANVÄNDARE användarnamn att ansluta som\n" -#: reindexdb.c:209 -#, 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:211 -#, 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:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "kan inte omindexera angivna scheman i alla databaser" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "Kan inte indexera specifik tabell i alla databaser" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "Kan inte omindexera angivet index i alla databaser" - -#: reindexdb.c:227 -#, 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:229 -#, 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:231 -#, 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:234 +#: reindexdb.c:210 #, 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:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "kan inte använda multipla jobb för att omindexera index" +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:323 reindexdb.c:330 vacuumdb.c:525 vacuumdb.c:532 vacuumdb.c:539 -#: vacuumdb.c:546 vacuumdb.c:553 vacuumdb.c:560 vacuumdb.c:567 vacuumdb.c:572 -#: vacuumdb.c:576 vacuumdb.c:580 vacuumdb.c:584 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 +#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 +#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 #, 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:561 +#: reindexdb.c:584 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "omindexering av databasen \"%s\" misslyckades: %s" -#: reindexdb.c:565 +#: reindexdb.c:588 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av index \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:569 +#: reindexdb.c:592 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av schemat \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:573 +#: reindexdb.c:596 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "omindexering av systemkataloger i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:577 +#: reindexdb.c:600 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "omindexering av tabell \"%s\" i databasen \"%s\" misslyckades: %s" -#: reindexdb.c:732 +#: reindexdb.c:824 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: omindexering av databasen \"%s\"\n" -#: reindexdb.c:749 +#: reindexdb.c:867 #, c-format msgid "" "%s reindexes a PostgreSQL database.\n" @@ -949,64 +981,64 @@ msgstr "" "%s indexerar om en PostgreSQL-databas.\n" "\n" -#: reindexdb.c:753 +#: reindexdb.c:871 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all indexera om alla databaser\n" -#: reindexdb.c:754 +#: reindexdb.c:872 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently indexera om utan att låsa\n" -#: reindexdb.c:755 +#: reindexdb.c:873 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME databas att indexera om\n" -#: reindexdb.c:757 +#: reindexdb.c:875 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX återskapa enbart angivna index\n" -#: reindexdb.c:758 +#: reindexdb.c:876 #, 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\n" " för omindexering\n" -#: reindexdb.c:759 +#: reindexdb.c:877 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet skriv inte ut några meddelanden\n" -#: reindexdb.c:760 +#: reindexdb.c:878 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system indexera enbart om systemkataloger\n" -#: reindexdb.c:761 +#: reindexdb.c:879 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA indexera enbart om angivna scheman\n" -#: reindexdb.c:762 +#: reindexdb.c:880 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABELL indexera enbart om angivna tabeller\n" -#: reindexdb.c:763 +#: reindexdb.c:881 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=TABELLRYMD tabellutrymme där index byggs om\n" -#: reindexdb.c:764 +#: reindexdb.c:882 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: reindexdb.c:774 +#: reindexdb.c:892 #, c-format msgid "" "\n" @@ -1015,95 +1047,80 @@ msgstr "" "\n" "Läs beskrivningen av SQL-kommandot REINDEX för detaljer.\n" -#: vacuumdb.c:312 vacuumdb.c:315 vacuumdb.c:318 vacuumdb.c:321 vacuumdb.c:324 -#: vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:342 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "flaggan \"%s\" kan inte användas vid enbart analys" -#: vacuumdb.c:345 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "flaggan \"%s\" kan inte användas vid \"full vacuum\"" -#: vacuumdb.c:351 vacuumdb.c:359 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "flaggan \"%s\" kan inte användas tillsammans med flaggan \"%s\"" -#: vacuumdb.c:430 +#: vacuumdb.c:432 #, 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:434 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "kan inte städa en specifik tabell i alla databaser." - -#: vacuumdb.c:438 -#, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "kan inte städa en angivna scheman i alla databaser." - -#: vacuumdb.c:442 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "kan inte exkludera angivna scheman i alla databaser" - -#: vacuumdb.c:446 +#: vacuumdb.c:436 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "kan inte städa alla tabeller i scheman samt angivna tabeller på samma gång" -#: vacuumdb.c:450 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "kan inte städa angivna scheman och exkludera scheman på samma gång" -#: vacuumdb.c:454 +#: vacuumdb.c:444 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "kan inte städa alla tabeller i scheman och exkludera scheman på samma gång" -#: vacuumdb.c:467 +#: vacuumdb.c:457 #, c-format msgid "out of memory" msgstr "slut på minne" -#: vacuumdb.c:512 +#: vacuumdb.c:502 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Skapar minimal optimeringsstatistik (1 mål)" -#: vacuumdb.c:513 +#: vacuumdb.c:503 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Skapar medium optimeringsstatistik (10 mål)" -#: vacuumdb.c:514 +#: vacuumdb.c:504 msgid "Generating default (full) optimizer statistics" msgstr "Skapar förvald (full) optimeringsstatistik" -#: vacuumdb.c:593 +#: vacuumdb.c:583 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: processar databasen \"%s\": %s\n" -#: vacuumdb.c:596 +#: vacuumdb.c:586 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: städar databasen \"%s\".\n" -#: vacuumdb.c:1138 +#: vacuumdb.c:1135 #, 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:1141 +#: vacuumdb.c:1138 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "städning av databasen \"%s\" misslyckades: %s" -#: vacuumdb.c:1149 +#: vacuumdb.c:1146 #, c-format msgid "" "%s cleans and analyzes a PostgreSQL database.\n" @@ -1112,134 +1129,134 @@ msgstr "" "%s städar och analyserar en PostgreSQL-databas.\n" "\n" -#: vacuumdb.c:1153 +#: vacuumdb.c:1150 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all städa i alla databaser\n" -#: vacuumdb.c:1154 +#: vacuumdb.c:1151 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=STORLEK storlek på ringbuffert som används vid städning\n" -#: vacuumdb.c:1155 +#: vacuumdb.c:1152 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=DBNAMN databas att städa i\n" -#: vacuumdb.c:1156 +#: vacuumdb.c:1153 #, 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:1157 +#: vacuumdb.c:1154 #, 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:1158 +#: vacuumdb.c:1155 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full utför full städning\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1156 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze frys information om radtransaktioner\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1157 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr " --force-index-cleanup ta alltid bort indexposter som pekar på döda tupler\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1158 #, 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:1162 +#: vacuumdb.c:1159 #, 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:1163 +#: vacuumdb.c:1160 #, 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:1164 +#: vacuumdb.c:1161 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr " --no-index-cleanup ta inte bort indexposter som pekar på döda tupler\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1162 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main skippa huvudrelationen\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1163 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr " --no-process-toast hoppa över TOAST-tabellen som hör ihop med tabellen som städas\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1164 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate trunkera inte tomma sidor i slutet av tabellen\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1165 #, c-format -msgid " -n, --schema=PATTERN vacuum tables in the specified schema(s) only\n" -msgstr " -n, --schema=MALL städa enbart tabeller i angiva scheman\n" +msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" +msgstr " -n, --schema=SCHEMA städa enbart tabeller i angiva scheman\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1166 #, c-format -msgid " -N, --exclude-schema=PATTERN do not vacuum tables in the specified schema(s)\n" -msgstr " -N, --exclude-schema=MALL städa inte tabeller i angivna scheman\n" +msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" +msgstr " -N, --exclude-schema=SCHEMA städa inte tabeller i angivna scheman\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1167 #, c-format 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:1171 +#: vacuumdb.c:1168 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet skriv inte ut några meddelanden\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1169 #, 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:1173 +#: vacuumdb.c:1170 #, 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:1174 +#: vacuumdb.c:1171 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose skriv massor med utdata\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1172 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: vacuumdb.c:1176 +#: vacuumdb.c:1173 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze uppdatera optimeringsstatistik\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1174 #, 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:1178 +#: vacuumdb.c:1175 #, c-format msgid "" " --analyze-in-stages only update optimizer statistics, in multiple\n" @@ -1248,12 +1265,12 @@ msgstr "" " --analyze-in-stages uppdatera bara optimeringsstatistik, men i\n" " flera steg för snabbare resultat; ingen städning\n" -#: vacuumdb.c:1180 +#: vacuumdb.c:1177 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: vacuumdb.c:1188 +#: vacuumdb.c:1185 #, c-format msgid "" "\n" @@ -1261,15 +1278,3 @@ msgid "" msgstr "" "\n" "Läs beskrivningen av SQL-kommandot VACUUM för detaljer.\n" - -#, c-format -#~ msgid "cannot reindex system catalogs concurrently, skipping all" -#~ msgstr "kan inte omindexera systemkataloger parallellt, hoppar över alla" - -#, c-format -#~ msgid "only one of --locale and --lc-collate can be specified" -#~ msgstr "endast en av --locale och --lc-collate kan anges" - -#, c-format -#~ msgid "only one of --locale and --lc-ctype can be specified" -#~ msgstr "endast en av --locale och --lc-ctype kan anges" diff --git a/src/bin/scripts/po/uk.po b/src/bin/scripts/po/uk.po index 9d8769a622f1a..5ba97aa5045d0 100644 --- a/src/bin/scripts/po/uk.po +++ b/src/bin/scripts/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:19+0000\n" -"PO-Revision-Date: 2023-12-20 11:53\n" +"POT-Creation-Date: 2024-08-31 06:22+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/pgscripts.pot\n" -"X-Crowdin-File-ID: 967\n" +"X-Crowdin-File: /REL_17_STABLE/pgscripts.pot\n" +"X-Crowdin-File-ID: 1038\n" #: ../../../src/common/logging.c:276 #, c-format @@ -48,6 +48,48 @@ msgstr "недостатньо пам'яті\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "неможливо дублювати нульовий покажчик (внутрішня помилка)\n" +#: ../../common/file_utils.c:70 ../../common/file_utils.c:347 +#: ../../common/file_utils.c:406 ../../common/file_utils.c:480 +#, c-format +msgid "could not open file \"%s\": %m" +msgstr "не можливо відкрити файл \"%s\": %m" + +#: ../../common/file_utils.c:76 +#, c-format +msgid "could not synchronize file system for file \"%s\": %m" +msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" + +#: ../../common/file_utils.c:120 ../../common/file_utils.c:566 +#, c-format +msgid "could not stat file \"%s\": %m" +msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" + +#: ../../common/file_utils.c:130 ../../common/file_utils.c:227 +#: ../../fe_utils/option_utils.c:99 +#, c-format +msgid "this build does not support sync method \"%s\"" +msgstr "ця збірка не підтримує метод синхронізації \"%s\"" + +#: ../../common/file_utils.c:151 ../../common/file_utils.c:281 +#, c-format +msgid "could not open directory \"%s\": %m" +msgstr "не вдалося відкрити каталог \"%s\": %m" + +#: ../../common/file_utils.c:169 ../../common/file_utils.c:315 +#, c-format +msgid "could not read directory \"%s\": %m" +msgstr "не вдалося прочитати каталог \"%s\": %m" + +#: ../../common/file_utils.c:418 ../../common/file_utils.c:488 +#, c-format +msgid "could not fsync file \"%s\": %m" +msgstr "не вдалося fsync файл \"%s\": %m" + +#: ../../common/file_utils.c:498 +#, c-format +msgid "could not rename file \"%s\" to \"%s\": %m" +msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" + #: ../../common/username.c:43 #, c-format msgid "could not look up effective user ID %ld: %s" @@ -62,11 +104,11 @@ msgstr "користувача не існує" msgid "user name lookup failure: error code %lu" msgstr "невдала підстановка імені користувача: код помилки %lu" -#: ../../fe_utils/cancel.c:189 ../../fe_utils/cancel.c:238 +#: ../../fe_utils/cancel.c:186 ../../fe_utils/cancel.c:235 msgid "Cancel request sent\n" msgstr "Запит на скасування відправлений\n" -#: ../../fe_utils/cancel.c:190 ../../fe_utils/cancel.c:239 +#: ../../fe_utils/cancel.c:187 ../../fe_utils/cancel.c:236 msgid "Could not send cancel request: " msgstr "Не вдалося надіслати запит на скасування: " @@ -94,6 +136,11 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" +#: ../../fe_utils/option_utils.c:106 +#, c-format +msgid "unrecognized sync method: %s" +msgstr "нерозпізнаний метод синхронізації: %s" + #: ../../fe_utils/parallel_slot.c:317 #, c-format msgid "too many jobs for this platform: %d" @@ -128,17 +175,22 @@ msgstr[3] "(%lu рядка)" msgid "Interrupted\n" msgstr "Перервано\n" -#: ../../fe_utils/print.c:3218 +#: ../../fe_utils/print.c:3188 +#, c-format +msgid "Cannot print table contents: number of cells %lld is equal to or exceeds maximum %lld.\n" +msgstr "Неможливо надрукувати вміст таблиці: кількість комірок %lld дорівнює або перевищує максимальне значення %lld.\n" + +#: ../../fe_utils/print.c:3229 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" msgstr "Неможливо додати заголовок до вмісту таблиці: кількість колонок %d перевищено.\n" -#: ../../fe_utils/print.c:3258 +#: ../../fe_utils/print.c:3272 #, c-format -msgid "Cannot add cell to table content: total cell count of %d exceeded.\n" -msgstr "Неможливо додати комірку до вмісту таблиці: перевищено загальну кількість комірок %d.\n" +msgid "Cannot add cell to table content: total cell count of %lld exceeded.\n" +msgstr "Неможливо додати комірку до вмісту таблиці: перевищено загальну кількість комірок %lld.\n" -#: ../../fe_utils/print.c:3516 +#: ../../fe_utils/print.c:3530 #, c-format msgid "invalid output format (internal error): %d" msgstr "невірний формат виводу (внутрішня помилка): %d" @@ -153,36 +205,41 @@ msgstr "запит не вдався: %s" msgid "Query was: %s" msgstr "Запит був: %s" -#: clusterdb.c:113 clusterdb.c:132 createdb.c:144 createdb.c:163 +#: ../../fe_utils/string_utils.c:434 +#, c-format +msgid "shell command argument contains a newline or carriage return: \"%s\"\n" +msgstr "аргумент командної оболонки містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: ../../fe_utils/string_utils.c:607 +#, c-format +msgid "database name contains a newline or carriage return: \"%s\"\n" +msgstr "назва бази даних містить символ нового рядка або повернення каретки: \"%s\"\n" + +#: clusterdb.c:114 clusterdb.c:133 createdb.c:149 createdb.c:168 #: createuser.c:195 createuser.c:210 dropdb.c:104 dropdb.c:113 dropdb.c:121 #: dropuser.c:95 dropuser.c:110 dropuser.c:123 pg_isready.c:97 pg_isready.c:111 -#: reindexdb.c:174 reindexdb.c:193 vacuumdb.c:279 vacuumdb.c:299 +#: reindexdb.c:177 reindexdb.c:196 vacuumdb.c:280 vacuumdb.c:300 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: clusterdb.c:130 createdb.c:161 createuser.c:208 dropdb.c:119 dropuser.c:108 -#: pg_isready.c:109 reindexdb.c:191 vacuumdb.c:297 +#: clusterdb.c:131 createdb.c:166 createuser.c:208 dropdb.c:119 dropuser.c:108 +#: pg_isready.c:109 reindexdb.c:194 vacuumdb.c:298 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: clusterdb.c:148 +#: clusterdb.c:149 #, c-format msgid "cannot cluster all databases and a specific one at the same time" msgstr "неможливо кластеризувати всі бази даних і одну вказану одночасно" -#: clusterdb.c:151 -#, c-format -msgid "cannot cluster specific table(s) in all databases" -msgstr "неможливо кластеризувати вказані таблиці у всіх базах даних" - -#: clusterdb.c:215 +#: clusterdb.c:214 #, c-format msgid "clustering of table \"%s\" in database \"%s\" failed: %s" msgstr "кластеризувати таблицю \"%s\" у базі даних \"%s\" не вдалося: %s" -#: clusterdb.c:218 +#: clusterdb.c:217 #, c-format msgid "clustering of database \"%s\" failed: %s" msgstr "кластеризувати базу даних \"%s\" не вдалося: %s" @@ -192,125 +249,125 @@ msgstr "кластеризувати базу даних \"%s\" не вдало msgid "%s: clustering database \"%s\"\n" msgstr "%s: кластеризація бази даних \"%s\"\n" -#: clusterdb.c:264 +#: clusterdb.c:274 #, c-format msgid "%s clusters all previously clustered tables in a database.\n\n" msgstr "%s кластеризація усіх попередньо кластеризованих таблиць в базі даних.\n\n" -#: clusterdb.c:265 createdb.c:288 createuser.c:415 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:750 vacuumdb.c:1156 +#: clusterdb.c:275 createdb.c:298 createuser.c:415 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:868 vacuumdb.c:1147 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: clusterdb.c:266 reindexdb.c:751 vacuumdb.c:1157 +#: clusterdb.c:276 reindexdb.c:869 vacuumdb.c:1148 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: clusterdb.c:267 createdb.c:290 createuser.c:417 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:752 vacuumdb.c:1158 +#: clusterdb.c:277 createdb.c:300 createuser.c:417 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:870 vacuumdb.c:1149 #, c-format msgid "\n" "Options:\n" msgstr "\n" "Параметри:\n" -#: clusterdb.c:268 +#: clusterdb.c:278 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all кластеризація усіх баз даних\n" -#: clusterdb.c:269 +#: clusterdb.c:279 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=ІМ'Я_БД база даних для кластеризації\n" -#: clusterdb.c:270 createuser.c:423 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:280 createuser.c:423 dropdb.c:175 dropuser.c:173 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіслані серверу\n" -#: clusterdb.c:271 +#: clusterdb.c:281 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не виводити жодних повідомлень\n" -#: clusterdb.c:272 +#: clusterdb.c:282 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=ТАБЛИЦЯ кластеризувати тільки вказані таблиці\n" -#: clusterdb.c:273 +#: clusterdb.c:283 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато інформації\n" -#: clusterdb.c:274 createuser.c:439 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:284 createuser.c:439 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: clusterdb.c:275 createuser.c:447 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:285 createuser.c:447 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: clusterdb.c:276 createdb.c:306 createuser.c:448 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:767 vacuumdb.c:1187 +#: clusterdb.c:286 createdb.c:317 createuser.c:448 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:885 vacuumdb.c:1178 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: clusterdb.c:277 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1188 +#: clusterdb.c:287 createuser.c:449 dropdb.c:182 dropuser.c:180 vacuumdb.c:1179 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хост сервера бази даних або каталог сокетів\n" -#: clusterdb.c:278 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1189 +#: clusterdb.c:288 createuser.c:450 dropdb.c:183 dropuser.c:181 vacuumdb.c:1180 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT порт сервера бази даних\n" -#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:1190 +#: clusterdb.c:289 dropdb.c:184 vacuumdb.c:1181 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ІМ'Я_КОРИСТУВАЧА ім'я користувача для з'єднання з сервером\n" -#: clusterdb.c:280 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1191 +#: clusterdb.c:290 createuser.c:452 dropdb.c:185 dropuser.c:183 vacuumdb.c:1182 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: clusterdb.c:281 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1192 +#: clusterdb.c:291 createuser.c:453 dropdb.c:186 dropuser.c:184 vacuumdb.c:1183 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запросити пароль\n" -#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:1193 +#: clusterdb.c:292 dropdb.c:187 vacuumdb.c:1184 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME альтернативна бази даних для обслуговування\n" -#: clusterdb.c:283 +#: clusterdb.c:293 #, c-format msgid "\n" "Read the description of the SQL command CLUSTER for details.\n" msgstr "\n" "Для деталей читайте опис команди SQL CLUSTER.\n" -#: clusterdb.c:284 createdb.c:314 createuser.c:454 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:775 vacuumdb.c:1195 +#: clusterdb.c:294 createdb.c:325 createuser.c:454 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:893 vacuumdb.c:1186 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: clusterdb.c:285 createdb.c:315 createuser.c:455 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:776 vacuumdb.c:1196 +#: clusterdb.c:295 createdb.c:326 createuser.c:455 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:894 vacuumdb.c:1187 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" @@ -346,134 +403,139 @@ msgstr "%s (%s/%s) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Відповідь має бути \"%s\" або \"%s\".\n" -#: createdb.c:170 +#: createdb.c:175 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не є невірним ім'ям кодування" -#: createdb.c:250 +#: createdb.c:260 #, c-format msgid "database creation failed: %s" msgstr "створити базу даних не вдалося: %s" -#: createdb.c:269 +#: createdb.c:279 #, c-format msgid "comment creation failed (database was created): %s" msgstr "не вдалося створити коментарі (база даних була створена): %s" -#: createdb.c:287 +#: createdb.c:297 #, c-format msgid "%s creates a PostgreSQL database.\n\n" msgstr "%s створює базу даних PostgreSQL.\n\n" -#: createdb.c:289 +#: createdb.c:299 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" -#: createdb.c:291 +#: createdb.c:301 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=ТАБЛИЧНИЙ_ПРОСТІР табличний простір для бази даних за замовчуванням\n" -#: createdb.c:292 reindexdb.c:756 +#: createdb.c:302 reindexdb.c:874 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіслані серверу\n" -#: createdb.c:293 +#: createdb.c:303 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=КОДУВАННЯ кодування бази даних\n" -#: createdb.c:294 +#: createdb.c:304 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=ЛОКАЛЬ параметри локалі бази даних\n" -#: createdb.c:295 +#: createdb.c:305 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=ЛОКАЛЬ параметр LC_COLLATE для бази даних\n" -#: createdb.c:296 +#: createdb.c:306 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=ЛОКАЛЬ параметр LC_CTYPE для бази даних\n" -#: createdb.c:297 +#: createdb.c:307 +#, c-format +msgid " --builtin-locale=LOCALE builtin locale setting for the database\n" +msgstr " --builtin-locale=LOCALE параметри вбудованої локалі бази даних\n" + +#: createdb.c:308 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE параметр локалі ICU бази даних\n" -#: createdb.c:298 +#: createdb.c:309 #, c-format msgid " --icu-rules=RULES ICU rules setting for the database\n" msgstr " --icu-locale=RULES правила ICU для бази даних\n" -#: createdb.c:299 +#: createdb.c:310 #, c-format -msgid " --locale-provider={libc|icu}\n" +msgid " --locale-provider={builtin|libc|icu}\n" " locale provider for the database's default collation\n" -msgstr " --locale-provider={libc|icu}\n" +msgstr " --locale-provider={builtin|libc|icu}\n" " провайдер локалі для сортування бази даних за замовчуванням\n" -#: createdb.c:301 +#: createdb.c:312 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --власник=ВЛАСНИК користувач-власник нової бази даних\n" -#: createdb.c:302 +#: createdb.c:313 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr " -S, --strategy=STRATEGY стратегія створення бази даних для wal_log або file_copy\n" -#: createdb.c:303 +#: createdb.c:314 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --шаблон=ШАБЛОН шаблонна база даних для копіювання\n" -#: createdb.c:304 reindexdb.c:765 +#: createdb.c:315 reindexdb.c:883 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: createdb.c:305 reindexdb.c:766 +#: createdb.c:316 reindexdb.c:884 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: createdb.c:307 reindexdb.c:768 +#: createdb.c:318 reindexdb.c:886 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ІМ'Я_ХОСТА хост сервера бази даних або каталог сокетів\n" -#: createdb.c:308 reindexdb.c:769 +#: createdb.c:319 reindexdb.c:887 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=ПОРТ порт сервера бази даних\n" -#: createdb.c:309 reindexdb.c:770 +#: createdb.c:320 reindexdb.c:888 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ІМ'Я_КОРИСТУВАЧА ім'я користувача для з'єднання з сервером\n" -#: createdb.c:310 reindexdb.c:771 +#: createdb.c:321 reindexdb.c:889 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: createdb.c:311 reindexdb.c:772 +#: createdb.c:322 reindexdb.c:890 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запросити пароль\n" -#: createdb.c:312 reindexdb.c:773 +#: createdb.c:323 reindexdb.c:891 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME альтернативна бази даних для обслуговування\n" -#: createdb.c:313 +#: createdb.c:324 #, c-format msgid "\n" "By default, a database with the same name as the current user is created.\n" @@ -818,390 +880,335 @@ msgstr " -t, --timeout=SECS секунд для очікування пр msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ІМ'Я_КОРИСТУВАЧА ім'я користувача для з'єднання з сервером\n" -#: reindexdb.c:209 -#, c-format -msgid "cannot reindex all databases and a specific one at the same time" -msgstr "неможливо переіндексувати всі бази даних і одну вказану одночасно" - -#: reindexdb.c:211 -#, c-format -msgid "cannot reindex all databases and system catalogs at the same time" -msgstr "не можливо переіндексувати всі бази даних і системні каталоги одночасно" - -#: reindexdb.c:213 -#, c-format -msgid "cannot reindex specific schema(s) in all databases" -msgstr "неможливо переіндексувати вказані схеми в усіх базах даних" - -#: reindexdb.c:215 -#, c-format -msgid "cannot reindex specific table(s) in all databases" -msgstr "неможливо переіндексувати вказані таблиці в усіх базах даних" - -#: reindexdb.c:217 -#, c-format -msgid "cannot reindex specific index(es) in all databases" -msgstr "неможливо переіндексувати вказані індекси в усіх базах даних" - -#: reindexdb.c:227 -#, c-format -msgid "cannot reindex specific schema(s) and system catalogs at the same time" -msgstr "не можливо переіндексувати вказані схеми і системні каталоги одночасно" - -#: reindexdb.c:229 -#, c-format -msgid "cannot reindex specific table(s) and system catalogs at the same time" -msgstr "не можливо переіндексувати вказані таблиці і системні каталоги одночасно" - -#: reindexdb.c:231 -#, c-format -msgid "cannot reindex specific index(es) and system catalogs at the same time" -msgstr "не можливо переіндексувати вказані індекси і системні каталоги одночасно" - -#: reindexdb.c:234 +#: reindexdb.c:210 #, c-format msgid "cannot use multiple jobs to reindex system catalogs" msgstr "не можна використовувати декілька завдань для переіндексування системних каталогів" -#: reindexdb.c:260 +#: reindexdb.c:215 #, c-format -msgid "cannot use multiple jobs to reindex indexes" -msgstr "не можна використовувати декілька завдань для переіндексування індексів" +msgid "cannot reindex all databases and a specific one at the same time" +msgstr "неможливо переіндексувати всі бази даних і одну вказану одночасно" -#: reindexdb.c:323 reindexdb.c:330 vacuumdb.c:525 vacuumdb.c:532 vacuumdb.c:539 -#: vacuumdb.c:546 vacuumdb.c:553 vacuumdb.c:560 vacuumdb.c:567 vacuumdb.c:572 -#: vacuumdb.c:576 vacuumdb.c:580 vacuumdb.c:584 +#: reindexdb.c:296 reindexdb.c:303 vacuumdb.c:515 vacuumdb.c:522 vacuumdb.c:529 +#: vacuumdb.c:536 vacuumdb.c:543 vacuumdb.c:550 vacuumdb.c:557 vacuumdb.c:562 +#: vacuumdb.c:566 vacuumdb.c:570 vacuumdb.c:574 #, c-format msgid "cannot use the \"%s\" option on server versions older than PostgreSQL %s" msgstr "не можна використовувати параметр \"%s\" на серверній версії старішій за PostgreSQL %s" -#: reindexdb.c:561 +#: reindexdb.c:584 #, c-format msgid "reindexing of database \"%s\" failed: %s" msgstr "переіндексувати базу даних \"%s\" не вдалося: %s" -#: reindexdb.c:565 +#: reindexdb.c:588 #, c-format msgid "reindexing of index \"%s\" in database \"%s\" failed: %s" msgstr "переіндексувати індекси \"%s\" в базі даних \"%s\" не вдалося: %s" -#: reindexdb.c:569 +#: reindexdb.c:592 #, c-format msgid "reindexing of schema \"%s\" in database \"%s\" failed: %s" msgstr "переіндексувати схему \"%s\" в базі даних \"%s\" не вдалося: %s" -#: reindexdb.c:573 +#: reindexdb.c:596 #, c-format msgid "reindexing of system catalogs in database \"%s\" failed: %s" msgstr "переіндексування системних каталогів в базі даних \"%s\" не вдалося: %s" -#: reindexdb.c:577 +#: reindexdb.c:600 #, c-format msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "переіндексувати таблиці \"%s\" в базі даних \"%s\" не вдалося: %s" -#: reindexdb.c:732 +#: reindexdb.c:824 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: переіндексування бази даних \"%s\"\n" -#: reindexdb.c:749 +#: reindexdb.c:867 #, c-format msgid "%s reindexes a PostgreSQL database.\n\n" msgstr "%s переіндексовує базу даних PostgreSQL.\n\n" -#: reindexdb.c:753 +#: reindexdb.c:871 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all переіндексувати всі бази даних\n" -#: reindexdb.c:754 +#: reindexdb.c:872 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently переіндексувати одночасно\n" -#: reindexdb.c:755 +#: reindexdb.c:873 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME база даних для переіндексування\n" -#: reindexdb.c:757 +#: reindexdb.c:875 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX повторно створити лише вказані індекси\n" -#: reindexdb.c:758 +#: reindexdb.c:876 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=NUM використати цю кількість паралельних підключень для переіндексування\n" -#: reindexdb.c:759 +#: reindexdb.c:877 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не писати жодних повідомлень\n" -#: reindexdb.c:760 +#: reindexdb.c:878 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system переіндексувати тільки системні каталоги\n" -#: reindexdb.c:761 +#: reindexdb.c:879 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA переіндексувати лише вказані схеми\n" -#: reindexdb.c:762 +#: reindexdb.c:880 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLE переіндексувати лише вказані таблиці\n" -#: reindexdb.c:763 +#: reindexdb.c:881 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=TABLESPACE табличний простір для перебудованих індексів\n" -#: reindexdb.c:764 +#: reindexdb.c:882 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато повідомлень\n" -#: reindexdb.c:774 +#: reindexdb.c:892 #, c-format msgid "\n" "Read the description of the SQL command REINDEX for details.\n" msgstr "\n" "Для деталей читайте опис команди SQL REINDEX.\n" -#: vacuumdb.c:312 vacuumdb.c:315 vacuumdb.c:318 vacuumdb.c:321 vacuumdb.c:324 -#: vacuumdb.c:327 vacuumdb.c:330 vacuumdb.c:333 vacuumdb.c:342 +#: vacuumdb.c:313 vacuumdb.c:316 vacuumdb.c:319 vacuumdb.c:322 vacuumdb.c:325 +#: vacuumdb.c:328 vacuumdb.c:331 vacuumdb.c:334 vacuumdb.c:343 #, c-format msgid "cannot use the \"%s\" option when performing only analyze" msgstr "не можна використовувати параметр \"%s\" під час виконання лише аналіза" -#: vacuumdb.c:345 +#: vacuumdb.c:346 #, c-format msgid "cannot use the \"%s\" option when performing full vacuum" msgstr "не можна використовувати параметр \"%s\" під час виконання VACUUM FULL" -#: vacuumdb.c:351 vacuumdb.c:359 +#: vacuumdb.c:352 vacuumdb.c:360 #, c-format msgid "cannot use the \"%s\" option with the \"%s\" option" msgstr "використовувати параметр \"%s\" з параметром \"%s\" не можна" -#: vacuumdb.c:430 +#: vacuumdb.c:432 #, c-format msgid "cannot vacuum all databases and a specific one at the same time" msgstr "неможливо очистити всі бази даних і одну вказану одночасно" -#: vacuumdb.c:434 -#, c-format -msgid "cannot vacuum specific table(s) in all databases" -msgstr "неможливо очистити вказані таблиці в усіх базах даних" - -#: vacuumdb.c:438 -#, c-format -msgid "cannot vacuum specific schema(s) in all databases" -msgstr "неможливо очистити вказані схеми в усіх базах даних" - -#: vacuumdb.c:442 -#, c-format -msgid "cannot exclude specific schema(s) in all databases" -msgstr "неможливо виключити вказані схеми в усіх базах даних" - -#: vacuumdb.c:446 +#: vacuumdb.c:436 #, c-format msgid "cannot vacuum all tables in schema(s) and specific table(s) at the same time" msgstr "неможливо очистити всі таблиці в схемах та вказані таблиці одночасно" -#: vacuumdb.c:450 +#: vacuumdb.c:440 #, c-format msgid "cannot vacuum specific table(s) and exclude schema(s) at the same time" msgstr "неможливо очистити вказані таблиці і виключити схеми одночасно" -#: vacuumdb.c:454 +#: vacuumdb.c:444 #, c-format msgid "cannot vacuum all tables in schema(s) and exclude schema(s) at the same time" msgstr "неможливо очистити всі таблиці в схемах та виключити схеми одночасно" -#: vacuumdb.c:467 +#: vacuumdb.c:457 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" -#: vacuumdb.c:512 +#: vacuumdb.c:502 msgid "Generating minimal optimizer statistics (1 target)" msgstr "Генерування мінімальної статистики для оптімизатора (1 мета)" -#: vacuumdb.c:513 +#: vacuumdb.c:503 msgid "Generating medium optimizer statistics (10 targets)" msgstr "Генерування середньої статистики для оптимізатора (10 цілей)" -#: vacuumdb.c:514 +#: vacuumdb.c:504 msgid "Generating default (full) optimizer statistics" msgstr "Генерування статистики для оптимізатора за замовчуванням (повністю)" -#: vacuumdb.c:593 +#: vacuumdb.c:583 #, c-format msgid "%s: processing database \"%s\": %s\n" msgstr "%s: обробка бази даних \"%s\": %s\n" -#: vacuumdb.c:596 +#: vacuumdb.c:586 #, c-format msgid "%s: vacuuming database \"%s\"\n" msgstr "%s: очищення бази даних \"%s\"\n" -#: vacuumdb.c:1144 +#: vacuumdb.c:1135 #, c-format msgid "vacuuming of table \"%s\" in database \"%s\" failed: %s" msgstr "очистити таблиці \"%s\" в базі даних \"%s\" не вдалося: %s" -#: vacuumdb.c:1147 +#: vacuumdb.c:1138 #, c-format msgid "vacuuming of database \"%s\" failed: %s" msgstr "очистити базу даних \"%s\" не вдалося: %s" -#: vacuumdb.c:1155 +#: vacuumdb.c:1146 #, c-format msgid "%s cleans and analyzes a PostgreSQL database.\n\n" msgstr "%s очищує й аналізує базу даних PostgreSQL.\n\n" -#: vacuumdb.c:1159 +#: vacuumdb.c:1150 #, c-format msgid " -a, --all vacuum all databases\n" msgstr " -a, --all очистити усі бази даних\n" -#: vacuumdb.c:1160 +#: vacuumdb.c:1151 #, c-format msgid " --buffer-usage-limit=SIZE size of ring buffer used for vacuum\n" msgstr " --buffer-usage-limit=SIZE розмір кільцевого буферу для очистки\n" -#: vacuumdb.c:1161 +#: vacuumdb.c:1152 #, c-format msgid " -d, --dbname=DBNAME database to vacuum\n" msgstr " -d, --dbname=ІМ'Я_БД база даних для очищення\n" -#: vacuumdb.c:1162 +#: vacuumdb.c:1153 #, c-format msgid " --disable-page-skipping disable all page-skipping behavior\n" msgstr " --disable-page-skipping відключити пропуск сторінок\n" -#: vacuumdb.c:1163 +#: vacuumdb.c:1154 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіслані серверу\n" -#: vacuumdb.c:1164 +#: vacuumdb.c:1155 #, c-format msgid " -f, --full do full vacuuming\n" msgstr " -f, --full зробити повне очищення\n" -#: vacuumdb.c:1165 +#: vacuumdb.c:1156 #, c-format msgid " -F, --freeze freeze row transaction information\n" msgstr " -F, --freeze заморозити інформацію щодо транзакцій в рядках\n" -#: vacuumdb.c:1166 +#: vacuumdb.c:1157 #, c-format msgid " --force-index-cleanup always remove index entries that point to dead tuples\n" msgstr " --force-index-cleanup завжди видаляти записи індексів, які вказують на мертві кортежі\n" -#: vacuumdb.c:1167 +#: vacuumdb.c:1158 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to vacuum\n" msgstr " -j, --jobs=ЧИСЛО використати ці паралельні підключення для очищення\n" -#: vacuumdb.c:1168 +#: vacuumdb.c:1159 #, c-format msgid " --min-mxid-age=MXID_AGE minimum multixact ID age of tables to vacuum\n" msgstr " --min-mxid-age=MXID_AGE мінімальний ID ери мультитранзакції таблиць для вакууму\n" -#: vacuumdb.c:1169 +#: vacuumdb.c:1160 #, c-format msgid " --min-xid-age=XID_AGE minimum transaction ID age of tables to vacuum\n" msgstr " --min-mxid-age=MXID_AGE мінімальний ID ери транзакції таблиць для вакууму\n" -#: vacuumdb.c:1170 +#: vacuumdb.c:1161 #, c-format msgid " --no-index-cleanup don't remove index entries that point to dead tuples\n" msgstr " --no-index-cleanup не видаляти записи індексів, які вказують на мертві кортежі\n" -#: vacuumdb.c:1171 +#: vacuumdb.c:1162 #, c-format msgid " --no-process-main skip the main relation\n" msgstr " --no-process-main пропустити головне відношення\n" -#: vacuumdb.c:1172 +#: vacuumdb.c:1163 #, c-format msgid " --no-process-toast skip the TOAST table associated with the table to vacuum\n" msgstr " --no-process-toast пропускати таблицю TOAST, пов'язану з таблицею для очищення\n" -#: vacuumdb.c:1173 +#: vacuumdb.c:1164 #, c-format msgid " --no-truncate don't truncate empty pages at the end of the table\n" msgstr " --no-truncate не скорочувати пусті сторінки наприкінці таблиці\n" -#: vacuumdb.c:1174 +#: vacuumdb.c:1165 #, c-format msgid " -n, --schema=SCHEMA vacuum tables in the specified schema(s) only\n" msgstr " -n, --schema=SCHEMA очистити тільки таблиці у вказаних схемах\n" -#: vacuumdb.c:1175 +#: vacuumdb.c:1166 #, c-format msgid " -N, --exclude-schema=SCHEMA do not vacuum tables in the specified schema(s)\n" msgstr " -N, --exclude-schema=SCHEMA не очищати таблиці у вказаних схемах\n" -#: vacuumdb.c:1176 +#: vacuumdb.c:1167 #, c-format msgid " -P, --parallel=PARALLEL_WORKERS use this many background workers for vacuum, if available\n" msgstr " -P, --parallel=PARALLEL_WORKERS використати таку кількість фонових робітників для очищення, якщо вони доступні\n" -#: vacuumdb.c:1177 +#: vacuumdb.c:1168 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не писати жодних повідомлень\n" -#: vacuumdb.c:1178 +#: vacuumdb.c:1169 #, c-format msgid " --skip-locked skip relations that cannot be immediately locked\n" msgstr " --skip-locked пропустити відношення, що не можуть бути заблоковані негайно\n" -#: vacuumdb.c:1179 +#: vacuumdb.c:1170 #, c-format msgid " -t, --table='TABLE[(COLUMNS)]' vacuum specific table(s) only\n" msgstr " -t, --table='ТАБЛИЦЯ[(СТОВПЦІ)]' очистити тільки вказані таблиці\n" -#: vacuumdb.c:1180 +#: vacuumdb.c:1171 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато інформації\n" -#: vacuumdb.c:1181 +#: vacuumdb.c:1172 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: vacuumdb.c:1182 +#: vacuumdb.c:1173 #, c-format msgid " -z, --analyze update optimizer statistics\n" msgstr " -z, --analyze оновити статистику для оптимізатора\n" -#: vacuumdb.c:1183 +#: vacuumdb.c:1174 #, c-format msgid " -Z, --analyze-only only update optimizer statistics; no vacuum\n" msgstr " -Z, --analyze-only оновити лише статистику для оптимізатора, не очищати\n" -#: vacuumdb.c:1184 +#: vacuumdb.c:1175 #, c-format msgid " --analyze-in-stages only update optimizer statistics, in multiple\n" " stages for faster results; no vacuum\n" msgstr " --analyze-in-stages оновити лише статистику для оптимізатора, у декілька стадій для швидших результатів, не очищати\n" -#: vacuumdb.c:1186 +#: vacuumdb.c:1177 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю справку, потім вийти\n" -#: vacuumdb.c:1194 +#: vacuumdb.c:1185 #, c-format msgid "\n" "Read the description of the SQL command VACUUM for details.\n" diff --git a/src/bin/scripts/po/zh_CN.po b/src/bin/scripts/po/zh_CN.po index 12c75603ec1a9..6a5262d069574 100644 --- a/src/bin/scripts/po/zh_CN.po +++ b/src/bin/scripts/po/zh_CN.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: pgscripts (PostgreSQL) 14\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2021-08-14 05:47+0000\n" -"PO-Revision-Date: 2021-08-15 18:30+0800\n" +"PO-Revision-Date: 2024-06-26 11:01+0200\n" "Last-Translator: Jie Zhang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" @@ -892,7 +892,7 @@ msgstr " -a, --all 对所有数据库进行重建索引操 #: reindexdb.c:796 msgid " --concurrently reindex concurrently\n" -msgstr " --concurrently 同时重新索引\n" +msgstr " --concurrently 同时重新索引\n" #: reindexdb.c:797 msgid " -d, --dbname=DBNAME database to reindex\n" diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c index 860a0fcb46bde..8ddcc5312f754 100644 --- a/src/bin/scripts/reindexdb.c +++ b/src/bin/scripts/reindexdb.c @@ -60,7 +60,7 @@ static void gen_reindex_command(PGconn *conn, ReindexType type, PQExpBufferData *sql); static void run_reindex_command(PGconn *conn, ReindexType type, const char *name, bool echo, - PQExpBufferData *sq); + PQExpBufferData *sql); static void help(const char *progname); diff --git a/src/bin/scripts/t/100_vacuumdb.pl b/src/bin/scripts/t/100_vacuumdb.pl index bb56b35349208..75ac24a7a5539 100644 --- a/src/bin/scripts/t/100_vacuumdb.pl +++ b/src/bin/scripts/t/100_vacuumdb.pl @@ -197,7 +197,7 @@ 'postgres', ], qr/cannot vacuum specific table\(s\) and exclude schema\(s\) at the same time/, - 'cannot use options --excludes-chema and ---table at the same time'); + 'cannot use options --exclude-schema and ---table at the same time'); $node->command_fails_like( [ 'vacuumdb', diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index 935e6da3c179a..79b1096eb08c4 100644 --- a/src/bin/scripts/vacuumdb.c +++ b/src/bin/scripts/vacuumdb.c @@ -896,11 +896,11 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, if (objects_listed) { if (objfilter & OBJFILTER_SCHEMA_EXCLUDE) - appendPQExpBuffer(&catalog_query, - " AND listed_objects.object_oid IS NULL\n"); + appendPQExpBufferStr(&catalog_query, + " AND listed_objects.object_oid IS NULL\n"); else - appendPQExpBuffer(&catalog_query, - " AND listed_objects.object_oid IS NOT NULL\n"); + appendPQExpBufferStr(&catalog_query, + " AND listed_objects.object_oid IS NOT NULL\n"); } /* @@ -911,10 +911,10 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, */ if ((objfilter & OBJFILTER_TABLE) == 0) { - appendPQExpBuffer(&catalog_query, - " AND c.relkind OPERATOR(pg_catalog.=) ANY (array[" - CppAsString2(RELKIND_RELATION) ", " - CppAsString2(RELKIND_MATVIEW) "])\n"); + appendPQExpBufferStr(&catalog_query, + " AND c.relkind OPERATOR(pg_catalog.=) ANY (array[" + CppAsString2(RELKIND_RELATION) ", " + CppAsString2(RELKIND_MATVIEW) "])\n"); } /* @@ -954,7 +954,6 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, appendPQExpBufferStr(&catalog_query, " EXISTS (SELECT NULL FROM pg_catalog.pg_attribute a\n" " WHERE a.attrelid OPERATOR(pg_catalog.=) c.oid\n" - " AND c.reltuples OPERATOR(pg_catalog.!=) 0::pg_catalog.float4\n" " AND a.attnum OPERATOR(pg_catalog.>) 0::pg_catalog.int2\n" " AND NOT a.attisdropped\n" " AND a.attstattarget IS DISTINCT FROM 0::pg_catalog.int2\n" @@ -967,7 +966,6 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, appendPQExpBufferStr(&catalog_query, " OR EXISTS (SELECT NULL FROM pg_catalog.pg_statistic_ext e\n" " WHERE e.stxrelid OPERATOR(pg_catalog.=) c.oid\n" - " AND c.reltuples OPERATOR(pg_catalog.!=) 0::pg_catalog.float4\n" " AND e.stxstattarget IS DISTINCT FROM 0::pg_catalog.int2\n" " AND NOT EXISTS (SELECT NULL FROM pg_catalog.pg_statistic_ext_data d\n" " WHERE d.stxoid OPERATOR(pg_catalog.=) e.oid\n" @@ -979,7 +977,6 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, " JOIN pg_catalog.pg_index i" " ON i.indexrelid OPERATOR(pg_catalog.=) a.attrelid\n" " WHERE i.indrelid OPERATOR(pg_catalog.=) c.oid\n" - " AND c.reltuples OPERATOR(pg_catalog.!=) 0::pg_catalog.float4\n" " AND i.indkey[a.attnum OPERATOR(pg_catalog.-) 1::pg_catalog.int2]" " OPERATOR(pg_catalog.=) 0::pg_catalog.int2\n" " AND a.attnum OPERATOR(pg_catalog.>) 0::pg_catalog.int2\n" @@ -994,7 +991,6 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, appendPQExpBufferStr(&catalog_query, " OR EXISTS (SELECT NULL FROM pg_catalog.pg_attribute a\n" " WHERE a.attrelid OPERATOR(pg_catalog.=) c.oid\n" - " AND c.reltuples OPERATOR(pg_catalog.!=) 0::pg_catalog.float4\n" " AND a.attnum OPERATOR(pg_catalog.>) 0::pg_catalog.int2\n" " AND NOT a.attisdropped\n" " AND a.attstattarget IS DISTINCT FROM 0::pg_catalog.int2\n" @@ -1011,7 +1007,6 @@ retrieve_objects(PGconn *conn, vacuumingOptions *vacopts, appendPQExpBufferStr(&catalog_query, " OR EXISTS (SELECT NULL FROM pg_catalog.pg_statistic_ext e\n" " WHERE e.stxrelid OPERATOR(pg_catalog.=) c.oid\n" - " AND c.reltuples OPERATOR(pg_catalog.!=) 0::pg_catalog.float4\n" " AND e.stxstattarget IS DISTINCT FROM 0::pg_catalog.int2\n" " AND c.relhassubclass\n" " AND NOT p.inherited\n" diff --git a/src/common/base64.c b/src/common/base64.c index 6028f41347290..240461fe1e6ab 100644 --- a/src/common/base64.c +++ b/src/common/base64.c @@ -41,15 +41,15 @@ static const int8 b64lookup[128] = { /* * pg_b64_encode * - * Encode into base64 the given string. Returns the length of the encoded - * string, and -1 in the event of an error with the result buffer zeroed - * for safety. + * Encode the 'src' byte array into base64. Returns the length of the encoded + * string, and -1 in the event of an error with the result buffer zeroed for + * safety. */ int -pg_b64_encode(const char *src, int len, char *dst, int dstlen) +pg_b64_encode(const uint8 *src, int len, char *dst, int dstlen) { char *p; - const char *s, + const uint8 *s, *end = src + len; int pos = 2; uint32 buf = 0; @@ -59,7 +59,7 @@ pg_b64_encode(const char *src, int len, char *dst, int dstlen) while (s < end) { - buf |= (unsigned char) *s << (pos << 3); + buf |= *s << (pos << 3); pos--; s++; @@ -113,11 +113,11 @@ pg_b64_encode(const char *src, int len, char *dst, int dstlen) * buffer zeroed for safety. */ int -pg_b64_decode(const char *src, int len, char *dst, int dstlen) +pg_b64_decode(const char *src, int len, uint8 *dst, int dstlen) { const char *srcend = src + len, *s = src; - char *p = dst; + uint8 *p = dst; char c; int b = 0; uint32 buf = 0; diff --git a/src/common/controldata_utils.c b/src/common/controldata_utils.c index 34d8a3a4e310b..fa375dc91293b 100644 --- a/src/common/controldata_utils.c +++ b/src/common/controldata_utils.c @@ -53,7 +53,7 @@ get_controlfile(const char *DataDir, bool *crc_ok_p) { char ControlFilePath[MAXPGPATH]; - snprintf(ControlFilePath, MAXPGPATH, "%s/global/pg_control", DataDir); + snprintf(ControlFilePath, MAXPGPATH, "%s/%s", DataDir, XLOG_CONTROL_FILE); return get_controlfile_by_exact_path(ControlFilePath, crc_ok_p); } diff --git a/src/common/jsonapi.c b/src/common/jsonapi.c index f1c80933c92cd..7dad4da65f636 100644 --- a/src/common/jsonapi.c +++ b/src/common/jsonapi.c @@ -1982,8 +1982,11 @@ json_lex_string(JsonLexContext *lex) } while (0) #define FAIL_AT_CHAR_END(code) \ do { \ - const char *term = s + pg_encoding_mblen(lex->input_encoding, s); \ - lex->token_terminator = (term <= end) ? term : end; \ + ptrdiff_t remaining = end - s; \ + int charlen; \ + charlen = pg_encoding_mblen_or_incomplete(lex->input_encoding, \ + s, remaining); \ + lex->token_terminator = (charlen <= remaining) ? s + charlen : end; \ return code; \ } while (0) diff --git a/src/common/md5_common.c b/src/common/md5_common.c index 61e396b0bbf4a..057ae7a449f1c 100644 --- a/src/common/md5_common.c +++ b/src/common/md5_common.c @@ -105,7 +105,7 @@ pg_md5_hash(const void *buff, size_t len, char *hexsum, const char **errstr) * (of size MD5_DIGEST_LENGTH) rather than being converted to ASCII hex. */ bool -pg_md5_binary(const void *buff, size_t len, void *outbuf, const char **errstr) +pg_md5_binary(const void *buff, size_t len, uint8 *outbuf, const char **errstr) { pg_cryptohash_ctx *ctx; @@ -142,7 +142,7 @@ pg_md5_binary(const void *buff, size_t len, void *outbuf, const char **errstr) * error context. */ bool -pg_md5_encrypt(const char *passwd, const char *salt, size_t salt_len, +pg_md5_encrypt(const char *passwd, const uint8 *salt, size_t salt_len, char *buf, const char **errstr) { size_t passwd_len = strlen(passwd); diff --git a/src/common/scram-common.c b/src/common/scram-common.c index bfd2a340016cf..e47a6ebbaab0f 100644 --- a/src/common/scram-common.c +++ b/src/common/scram-common.c @@ -37,7 +37,7 @@ int scram_SaltedPassword(const char *password, pg_cryptohash_type hash_type, int key_length, - const char *salt, int saltlen, int iterations, + const uint8 *salt, int saltlen, int iterations, uint8 *result, const char **errstr) { int password_len = strlen(password); @@ -62,7 +62,7 @@ scram_SaltedPassword(const char *password, /* First iteration */ if (pg_hmac_init(hmac_ctx, (uint8 *) password, password_len) < 0 || - pg_hmac_update(hmac_ctx, (uint8 *) salt, saltlen) < 0 || + pg_hmac_update(hmac_ctx, salt, saltlen) < 0 || pg_hmac_update(hmac_ctx, (uint8 *) &one, sizeof(uint32)) < 0 || pg_hmac_final(hmac_ctx, Ui_prev, key_length) < 0) { @@ -207,7 +207,7 @@ scram_ServerKey(const uint8 *salted_password, */ char * scram_build_secret(pg_cryptohash_type hash_type, int key_length, - const char *salt, int saltlen, int iterations, + const uint8 *salt, int saltlen, int iterations, const char *password, const char **errstr) { uint8 salted_password[SCRAM_MAX_KEY_LEN]; @@ -290,7 +290,7 @@ scram_build_secret(pg_cryptohash_type hash_type, int key_length, *(p++) = '$'; /* stored key */ - encoded_result = pg_b64_encode((char *) stored_key, key_length, p, + encoded_result = pg_b64_encode(stored_key, key_length, p, encoded_stored_len); if (encoded_result < 0) { @@ -307,7 +307,7 @@ scram_build_secret(pg_cryptohash_type hash_type, int key_length, *(p++) = ':'; /* server key */ - encoded_result = pg_b64_encode((char *) server_key, key_length, p, + encoded_result = pg_b64_encode(server_key, key_length, p, encoded_server_len); if (encoded_result < 0) { diff --git a/src/common/unicode/Makefile b/src/common/unicode/Makefile index f41c850c6457a..c150e403cda39 100644 --- a/src/common/unicode/Makefile +++ b/src/common/unicode/Makefile @@ -36,7 +36,7 @@ CompositionExclusions.txt CaseFolding.txt DerivedCoreProperties.txt DerivedNorma unicode_version.h: generate-unicode_version.pl $(PERL) $< --version $(UNICODE_VERSION) -unicode_case_table.h: generate-unicode_case_table.pl CaseFolding.txt UnicodeData.txt +unicode_case_table.h: generate-unicode_case_table.pl CaseFolding.txt SpecialCasing.txt UnicodeData.txt $(PERL) $< unicode_category_table.h: generate-unicode_category_table.pl DerivedCoreProperties.txt PropList.txt UnicodeData.txt diff --git a/src/common/unicode/case_test.c b/src/common/unicode/case_test.c index f0b38b3bdd75f..fdfb62e855286 100644 --- a/src/common/unicode/case_test.c +++ b/src/common/unicode/case_test.c @@ -41,6 +41,7 @@ struct WordBoundaryState const char *str; size_t len; size_t offset; + bool posix; bool init; bool prev_alnum; }; @@ -55,7 +56,7 @@ initcap_wbnext(void *state) { pg_wchar u = utf8_to_unicode((unsigned char *) wbstate->str + wbstate->offset); - bool curr_alnum = pg_u_isalnum(u, true); + bool curr_alnum = pg_u_isalnum(u, wbstate->posix); if (!wbstate->init || curr_alnum != wbstate->prev_alnum) { @@ -112,10 +113,13 @@ icu_test_full(char *str) char icu_upper[BUFSZ]; char icu_fold[BUFSZ]; UErrorCode status; + + /* full case mapping doesn't use posix semantics */ struct WordBoundaryState wbstate = { .str = str, .len = strlen(str), .offset = 0, + .posix = false, .init = false, .prev_alnum = false, }; @@ -344,6 +348,12 @@ test_convert_case() test_convert(tfunc_lower, "σς'Σ' ΣΣ'Σ'", "σς'ς' σσ'ς'"); test_convert(tfunc_title, "σςΣ ΣΣΣ", "Σςς Σσς"); test_convert(tfunc_fold, "σςΣ ΣΣΣ", "σσσ σσσ"); + /* test that alphanumerics are word characters */ + test_convert(tfunc_title, "λλ", "Λλ"); + test_convert(tfunc_title, "1a", "1a"); + /* U+FF11 FULLWIDTH ONE is alphanumeric for full case mapping */ + test_convert(tfunc_title, "\uFF11a", "\uFF11a"); + #ifdef USE_ICU icu_test_full(""); @@ -354,6 +364,7 @@ test_convert_case() icu_test_full("abc 123xyz"); icu_test_full("σςΣ ΣΣΣ"); icu_test_full("ıiIİ"); + icu_test_full("\uFF11a"); /* test */ icu_test_full("\u0391\u0345\u0301"); #endif diff --git a/src/common/unicode/generate-unicode_case_table.pl b/src/common/unicode/generate-unicode_case_table.pl index c2adf1662a04a..5d9ddd628038c 100644 --- a/src/common/unicode/generate-unicode_case_table.pl +++ b/src/common/unicode/generate-unicode_case_table.pl @@ -3,7 +3,7 @@ # Generate Unicode character case mappings. Does not include tailoring # or locale-specific mappings. # -# Input: SpecialCasing.txt UnicodeData.txt +# Input: CaseFolding.txt SpecialCasing.txt UnicodeData.txt # Output: unicode_case_table.h # # Copyright (c) 2000-2025, PostgreSQL Global Development Group diff --git a/src/common/unicode/meson.build b/src/common/unicode/meson.build index b98940de279a4..c6a4715ccc553 100644 --- a/src/common/unicode/meson.build +++ b/src/common/unicode/meson.build @@ -1,6 +1,6 @@ # Copyright (c) 2022-2025, PostgreSQL Global Development Group -UNICODE_VERSION = '15.1.0' +UNICODE_VERSION = '16.0.0' unicode_data = {} unicode_baseurl = 'https://www.unicode.org/Public/@0@/ucd/@1@' diff --git a/src/common/unicode_case.c b/src/common/unicode_case.c index 26722e9a2d956..073faf6a0d58b 100644 --- a/src/common/unicode_case.c +++ b/src/common/unicode_case.c @@ -44,7 +44,7 @@ static size_t convert_case(char *dst, size_t dstsize, const char *src, ssize_t s void *wbstate); static enum CaseMapResult casemap(pg_wchar u1, CaseKind casekind, bool full, const char *src, size_t srclen, size_t srcoff, - pg_wchar *u2, const pg_wchar **special); + pg_wchar *simple, const pg_wchar **special); pg_wchar unicode_lowercase_simple(pg_wchar code) diff --git a/src/common/wchar.c b/src/common/wchar.c index 1e5de502276ba..a4bc29921dedd 100644 --- a/src/common/wchar.c +++ b/src/common/wchar.c @@ -12,6 +12,8 @@ */ #include "c.h" +#include + #include "mb/pg_wchar.h" #include "utils/ascii.h" @@ -2107,10 +2109,27 @@ const pg_wchar_tbl pg_wchar_table[] = { /* * Returns the byte length of a multibyte character. * - * Caution: when dealing with text that is not certainly valid in the - * specified encoding, the result may exceed the actual remaining - * string length. Callers that are not prepared to deal with that - * should use pg_encoding_mblen_bounded() instead. + * Choose "mblen" functions based on the input string characteristics. + * pg_encoding_mblen() can be used when ANY of these conditions are met: + * + * - The input string is zero-terminated + * + * - The input string is known to be valid in the encoding (e.g., string + * converted from database encoding) + * + * - The encoding is not GB18030 (e.g., when only database encodings are + * passed to 'encoding' parameter) + * + * encoding==GB18030 requires examining up to two bytes to determine character + * length. Therefore, callers satisfying none of those conditions must use + * pg_encoding_mblen_or_incomplete() instead, as access to mbstr[1] cannot be + * guaranteed to be within allocation bounds. + * + * When dealing with text that is not certainly valid in the specified + * encoding, the result may exceed the actual remaining string length. + * Callers that are not prepared to deal with that should use Min(remaining, + * pg_encoding_mblen_or_incomplete()). For zero-terminated strings, that and + * pg_encoding_mblen_bounded() are interchangeable. */ int pg_encoding_mblen(int encoding, const char *mbstr) @@ -2121,8 +2140,28 @@ pg_encoding_mblen(int encoding, const char *mbstr) } /* - * Returns the byte length of a multibyte character; but not more than - * the distance to end of string. + * Returns the byte length of a multibyte character (possibly not + * zero-terminated), or INT_MAX if too few bytes remain to determine a length. + */ +int +pg_encoding_mblen_or_incomplete(int encoding, const char *mbstr, + size_t remaining) +{ + /* + * Define zero remaining as too few, even for single-byte encodings. + * pg_gb18030_mblen() reads one or two bytes; single-byte encodings read + * zero; others read one. + */ + if (remaining < 1 || + (encoding == PG_GB18030 && IS_HIGHBIT_SET(*mbstr) && remaining < 2)) + return INT_MAX; + return pg_encoding_mblen(encoding, mbstr); +} + +/* + * Returns the byte length of a multibyte character; but not more than the + * distance to the terminating zero byte. For input that might lack a + * terminating zero, use Min(remaining, pg_encoding_mblen_or_incomplete()). */ int pg_encoding_mblen_bounded(int encoding, const char *mbstr) diff --git a/src/fe_utils/print.c b/src/fe_utils/print.c index 28d5bb0bd5d71..4af0f32f2fc05 100644 --- a/src/fe_utils/print.c +++ b/src/fe_utils/print.c @@ -3185,7 +3185,7 @@ printTableInit(printTableContent *const content, const printTableOpt *opt, /* Catch possible overflow. Using >= here allows adding 1 below */ if (total_cells >= SIZE_MAX / sizeof(*content->cells)) { - fprintf(stderr, _("Cannot print table contents: number of cells %" PRId64 " is equal to or exceeds maximum %zu.\n"), + fprintf(stderr, _("Cannot print table contents: number of cells %" PRIu64 " is equal to or exceeds maximum %zu.\n"), total_cells, SIZE_MAX / sizeof(*content->cells)); exit(EXIT_FAILURE); @@ -3269,7 +3269,7 @@ printTableAddCell(printTableContent *const content, char *cell, total_cells = (uint64) content->ncolumns * content->nrows; if (content->cellsadded >= total_cells) { - fprintf(stderr, _("Cannot add cell to table content: total cell count of %" PRId64 " exceeded.\n"), + fprintf(stderr, _("Cannot add cell to table content: total cell count of %" PRIu64 " exceeded.\n"), total_cells); exit(EXIT_FAILURE); } diff --git a/src/include/access/amapi.h b/src/include/access/amapi.h index c4a0737731f2d..52916bab7a31f 100644 --- a/src/include/access/amapi.h +++ b/src/include/access/amapi.h @@ -214,7 +214,8 @@ typedef void (*amrestrpos_function) (IndexScanDesc scan); */ /* estimate size of parallel scan descriptor */ -typedef Size (*amestimateparallelscan_function) (int nkeys, int norderbys); +typedef Size (*amestimateparallelscan_function) (Relation indexRelation, + int nkeys, int norderbys); /* prepare for parallel index scan */ typedef void (*aminitparallelscan_function) (void *target); diff --git a/src/include/access/gin_tuple.h b/src/include/access/gin_tuple.h index ce55503133526..702f7d12889d8 100644 --- a/src/include/access/gin_tuple.h +++ b/src/include/access/gin_tuple.h @@ -2,13 +2,13 @@ * gin.h * Public header file for Generalized Inverted Index access method. * - * Copyright (c) 2006-2024, PostgreSQL Global Development Group + * Copyright (c) 2006-2025, PostgreSQL Global Development Group * * src/include/access/gin.h *-------------------------------------------------------------------------- */ -#ifndef GIN_TUPLE_ -#define GIN_TUPLE_ +#ifndef GIN_TUPLE_H +#define GIN_TUPLE_H #include "access/ginblock.h" #include "storage/itemptr.h" diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index 1640d9c32f7c3..e48fe434cd393 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -103,17 +103,7 @@ typedef struct BitmapHeapScanDescData { HeapScanDescData rs_heap_base; - /* - * These fields are only used for bitmap scans for the "skip fetch" - * optimization. Bitmap scans needing no fields from the heap may skip - * fetching an all visible block, instead using the number of tuples per - * block reported by the bitmap to determine how many NULL-filled tuples - * to return. They are common to parallel and serial BitmapHeapScans - */ - - /* page of VM containing info for current block */ - Buffer rs_vmbuffer; - int rs_empty_tuples_pending; + /* Holds no data */ } BitmapHeapScanDescData; typedef struct BitmapHeapScanDescData *BitmapHeapScanDesc; diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index faabcb78e7b70..ebca02588d3e2 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -24,6 +24,7 @@ #include "lib/stringinfo.h" #include "storage/bufmgr.h" #include "storage/shm_toc.h" +#include "utils/skipsupport.h" /* There's room for a 16-bit vacuum cycle ID in BTPageOpaqueData */ typedef uint16 BTCycleId; @@ -707,6 +708,10 @@ BTreeTupleGetMaxHeapTID(IndexTuple itup) * (BTOPTIONS_PROC). These procedures define a set of user-visible * parameters that can be used to control operator class behavior. None of * the built-in B-Tree operator classes currently register an "options" proc. + * + * To facilitate more efficient B-Tree skip scans, an operator class may + * choose to offer a sixth amproc procedure (BTSKIPSUPPORT_PROC). For full + * details, see src/include/utils/skipsupport.h. */ #define BTORDER_PROC 1 @@ -714,7 +719,8 @@ BTreeTupleGetMaxHeapTID(IndexTuple itup) #define BTINRANGE_PROC 3 #define BTEQUALIMAGE_PROC 4 #define BTOPTIONS_PROC 5 -#define BTNProcs 5 +#define BTSKIPSUPPORT_PROC 6 +#define BTNProcs 6 /* * We need to be able to tell the difference between read and write @@ -1027,10 +1033,21 @@ typedef BTScanPosData *BTScanPos; /* We need one of these for each equality-type SK_SEARCHARRAY scan key */ typedef struct BTArrayKeyInfo { + /* fields set for both kinds of array (SAOP arrays and skip arrays) */ int scan_key; /* index of associated key in keyData */ - int cur_elem; /* index of current element in elem_values */ - int num_elems; /* number of elems in current array value */ + int num_elems; /* number of elems (-1 means skip array) */ + + /* fields set for ScalarArrayOpExpr arrays only */ Datum *elem_values; /* array of num_elems Datums */ + int cur_elem; /* index of current element in elem_values */ + + /* fields set for skip arrays only */ + int16 attlen; /* attr's length, in bytes */ + bool attbyval; /* attr's FormData_pg_attribute.attbyval */ + bool null_elem; /* NULL is lowest/highest element? */ + SkipSupport sksup; /* skip support (NULL if opclass lacks it) */ + ScanKey low_compare; /* array's > or >= lower bound */ + ScanKey high_compare; /* array's < or <= upper bound */ } BTArrayKeyInfo; typedef struct BTScanOpaqueData @@ -1042,6 +1059,7 @@ typedef struct BTScanOpaqueData /* workspace for SK_SEARCHARRAY support */ int numArrayKeys; /* number of equality-type array keys */ + bool skipScan; /* At least one skip array in arrayKeys[]? */ bool needPrimScan; /* New prim scan to continue in current dir? */ bool scanBehind; /* Check scan not still behind on next page? */ bool oppositeDirCheck; /* scanBehind opposite-scan-dir check? */ @@ -1088,6 +1106,8 @@ typedef struct BTReadPageState IndexTuple finaltup; /* Needed by scans with array keys */ Page page; /* Page being read */ bool firstpage; /* page is first for primitive scan? */ + bool forcenonrequired; /* treat all keys as nonrequired? */ + int startikey; /* start comparisons from this scan key */ /* Per-tuple input parameters, set by _bt_readpage for _bt_checkkeys */ OffsetNumber offnum; /* current tuple's page offset number */ @@ -1096,19 +1116,13 @@ typedef struct BTReadPageState OffsetNumber skip; /* Array keys "look ahead" skip offnum */ bool continuescan; /* Terminate ongoing (primitive) index scan? */ - /* - * Input and output parameters, set and unset by both _bt_readpage and - * _bt_checkkeys to manage precheck optimizations - */ - bool prechecked; /* precheck set continuescan to 'true'? */ - bool firstmatch; /* at least one match so far? */ - /* * Private _bt_checkkeys state used to manage "look ahead" optimization - * (only used during scans with array keys) + * and primscan scheduling (only used during scans with array keys) */ int16 rechecks; int16 targetdistance; + int16 nskipadvances; } BTReadPageState; @@ -1119,6 +1133,15 @@ typedef struct BTReadPageState */ #define SK_BT_REQFWD 0x00010000 /* required to continue forward scan */ #define SK_BT_REQBKWD 0x00020000 /* required to continue backward scan */ +#define SK_BT_SKIP 0x00040000 /* skip array on column without input = */ + +/* SK_BT_SKIP-only flags (set and unset by array advancement) */ +#define SK_BT_MINVAL 0x00080000 /* invalid sk_argument, use low_compare */ +#define SK_BT_MAXVAL 0x00100000 /* invalid sk_argument, use high_compare */ +#define SK_BT_NEXT 0x00200000 /* positions the scan > sk_argument */ +#define SK_BT_PRIOR 0x00400000 /* positions the scan < sk_argument */ + +/* Remaps pg_index flag bits to uppermost SK_BT_* byte */ #define SK_BT_INDOPTION_SHIFT 24 /* must clear the above bits */ #define SK_BT_DESC (INDOPTION_DESC << SK_BT_INDOPTION_SHIFT) #define SK_BT_NULLS_FIRST (INDOPTION_NULLS_FIRST << SK_BT_INDOPTION_SHIFT) @@ -1165,7 +1188,7 @@ extern bool btinsert(Relation rel, Datum *values, bool *isnull, bool indexUnchanged, struct IndexInfo *indexInfo); extern IndexScanDesc btbeginscan(Relation rel, int nkeys, int norderbys); -extern Size btestimateparallelscan(int nkeys, int norderbys); +extern Size btestimateparallelscan(Relation rel, int nkeys, int norderbys); extern void btinitparallelscan(void *target); extern bool btgettuple(IndexScanDesc scan, ScanDirection dir); extern int64 btgetbitmap(IndexScanDesc scan, TIDBitmap *tbm); @@ -1301,6 +1324,7 @@ extern bool _bt_checkkeys(IndexScanDesc scan, BTReadPageState *pstate, bool arra IndexTuple tuple, int tupnatts); extern bool _bt_scanbehind_checkkeys(IndexScanDesc scan, ScanDirection dir, IndexTuple finaltup); +extern void _bt_set_startikey(IndexScanDesc scan, BTReadPageState *pstate); extern void _bt_killitems(IndexScanDesc scan); extern BTCycleId _bt_vacuum_cycleid(Relation rel); extern BTCycleId _bt_start_vacuum(Relation rel); diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h index b8cb1e744ad1d..8713e12cbfb99 100644 --- a/src/include/access/tableam.h +++ b/src/include/access/tableam.h @@ -62,13 +62,6 @@ typedef enum ScanOptions /* unregister snapshot at scan end? */ SO_TEMP_SNAPSHOT = 1 << 9, - - /* - * At the discretion of the table AM, bitmap table scans may be able to - * skip fetching a block from the table if none of the table data is - * needed. If table data may be needed, set SO_NEED_TUPLES. - */ - SO_NEED_TUPLES = 1 << 10, } ScanOptions; /* @@ -920,13 +913,10 @@ table_beginscan_strat(Relation rel, Snapshot snapshot, */ static inline TableScanDesc table_beginscan_bm(Relation rel, Snapshot snapshot, - int nkeys, struct ScanKeyData *key, bool need_tuple) + int nkeys, struct ScanKeyData *key) { uint32 flags = SO_TYPE_BITMAPSCAN | SO_ALLOW_PAGEMODE; - if (need_tuple) - flags |= SO_NEED_TUPLES; - return rel->rd_tableam->scan_begin(rel, snapshot, nkeys, key, NULL, flags); } diff --git a/src/include/access/tupdesc.h b/src/include/access/tupdesc.h index 396eeb7a0bb4f..a25b94ba42333 100644 --- a/src/include/access/tupdesc.h +++ b/src/include/access/tupdesc.h @@ -42,7 +42,7 @@ typedef struct TupleConstr struct AttrMissing *missing; /* missing attributes values, NULL if none */ uint16 num_defval; uint16 num_check; - bool has_not_null; + bool has_not_null; /* any not-null, including not valid ones */ bool has_generated_stored; bool has_generated_virtual; } TupleConstr; @@ -76,10 +76,16 @@ typedef struct CompactAttribute bool atthasmissing; /* as FormData_pg_attribute.atthasmissing */ bool attisdropped; /* as FormData_pg_attribute.attisdropped */ bool attgenerated; /* FormData_pg_attribute.attgenerated != '\0' */ - bool attnotnull; /* as FormData_pg_attribute.attnotnull */ + char attnullability; /* status of not-null constraint, see below */ uint8 attalignby; /* alignment requirement in bytes */ } CompactAttribute; +/* Valid values for CompactAttribute->attnullability */ +#define ATTNULLABLE_UNRESTRICTED 'f' /* No constraint exists */ +#define ATTNULLABLE_UNKNOWN 'u' /* constraint exists, validity unknown */ +#define ATTNULLABLE_VALID 'v' /* valid constraint exists */ +#define ATTNULLABLE_INVALID 'i' /* constraint exists, marked invalid */ + /* * This struct is passed around within the backend to describe the structure * of tuples. For tuples coming from on-disk relations, the information is diff --git a/src/include/c.h b/src/include/c.h index 94697aab428fc..8cdc16a0f4a9b 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -1326,19 +1326,19 @@ extern int fdatasync(int fildes); /* * When there is no sigsetjmp, its functionality is provided by plain * setjmp. We now support the case only on Windows. However, it seems - * that MinGW-64 has some longstanding issues in its setjmp support when - * building with MSVCRT, so on that toolchain we cheat and use gcc's builtins. + * that MinGW-64 has some longstanding issues in its setjmp support, + * so on that toolchain we cheat and use gcc's builtins. */ #ifdef WIN32 -#if defined(__MINGW64__) && !defined(_UCRT) +#ifdef __MINGW64__ typedef intptr_t sigjmp_buf[5]; #define sigsetjmp(x,y) __builtin_setjmp(x) #define siglongjmp __builtin_longjmp -#else /* !defined(__MINGW64__) || defined(_UCRT) */ +#else /* !__MINGW64__ */ #define sigjmp_buf jmp_buf #define sigsetjmp(x,y) setjmp(x) #define siglongjmp longjmp -#endif /* defined(__MINGW64__) && !defined(_UCRT) */ +#endif /* __MINGW64__ */ #endif /* WIN32 */ /* /port compatibility functions */ diff --git a/src/include/catalog/catalog.h b/src/include/catalog/catalog.h index b3a3acf2aec2b..9b5e750b7e408 100644 --- a/src/include/catalog/catalog.h +++ b/src/include/catalog/catalog.h @@ -27,6 +27,7 @@ extern bool IsSystemClass(Oid relid, Form_pg_class reltuple); extern bool IsToastClass(Form_pg_class reltuple); extern bool IsCatalogRelationOid(Oid relid); +extern bool IsCatalogTextUniqueIndexOid(Oid relid); extern bool IsInplaceUpdateOid(Oid relid); extern bool IsCatalogNamespace(Oid namespaceId); diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 8b4ee1fa13f08..82988d2443390 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -57,6 +57,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202504012 +#define CATALOG_VERSION_NO 202505071 #endif diff --git a/src/include/catalog/pg_amproc.dat b/src/include/catalog/pg_amproc.dat index 19100482ba495..9250514899844 100644 --- a/src/include/catalog/pg_amproc.dat +++ b/src/include/catalog/pg_amproc.dat @@ -21,6 +21,8 @@ amprocrighttype => 'bit', amprocnum => '4', amproc => 'btequalimage' }, { amprocfamily => 'btree/bool_ops', amproclefttype => 'bool', amprocrighttype => 'bool', amprocnum => '1', amproc => 'btboolcmp' }, +{ amprocfamily => 'btree/bool_ops', amproclefttype => 'bool', + amprocrighttype => 'bool', amprocnum => '6', amproc => 'btboolskipsupport' }, { amprocfamily => 'btree/bool_ops', amproclefttype => 'bool', amprocrighttype => 'bool', amprocnum => '4', amproc => 'btequalimage' }, { amprocfamily => 'btree/bpchar_ops', amproclefttype => 'bpchar', @@ -41,12 +43,16 @@ amprocrighttype => 'char', amprocnum => '1', amproc => 'btcharcmp' }, { amprocfamily => 'btree/char_ops', amproclefttype => 'char', amprocrighttype => 'char', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/char_ops', amproclefttype => 'char', + amprocrighttype => 'char', amprocnum => '6', amproc => 'btcharskipsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', amprocrighttype => 'date', amprocnum => '1', amproc => 'date_cmp' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', amprocrighttype => 'date', amprocnum => '2', amproc => 'date_sortsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', amprocrighttype => 'date', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', + amprocrighttype => 'date', amprocnum => '6', amproc => 'date_skipsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'date', amprocrighttype => 'timestamp', amprocnum => '1', amproc => 'date_cmp_timestamp' }, @@ -60,6 +66,9 @@ amproc => 'timestamp_sortsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', amprocrighttype => 'timestamp', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', + amprocrighttype => 'timestamp', amprocnum => '6', + amproc => 'timestamp_skipsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', amprocrighttype => 'date', amprocnum => '1', amproc => 'timestamp_cmp_date' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamp', @@ -74,6 +83,9 @@ { amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', amprocrighttype => 'timestamptz', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', + amprocrighttype => 'timestamptz', amprocnum => '6', + amproc => 'timestamp_skipsupport' }, { amprocfamily => 'btree/datetime_ops', amproclefttype => 'timestamptz', amprocrighttype => 'date', amprocnum => '1', amproc => 'timestamptz_cmp_date' }, @@ -122,6 +134,8 @@ amprocrighttype => 'int2', amprocnum => '2', amproc => 'btint2sortsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', amprocrighttype => 'int2', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', + amprocrighttype => 'int2', amprocnum => '6', amproc => 'btint2skipsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint24cmp' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int2', @@ -141,6 +155,8 @@ amprocrighttype => 'int4', amprocnum => '2', amproc => 'btint4sortsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', amprocrighttype => 'int4', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', + amprocrighttype => 'int4', amprocnum => '6', amproc => 'btint4skipsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', amprocrighttype => 'int8', amprocnum => '1', amproc => 'btint48cmp' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int4', @@ -160,6 +176,8 @@ amprocrighttype => 'int8', amprocnum => '2', amproc => 'btint8sortsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', amprocrighttype => 'int8', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', + amprocrighttype => 'int8', amprocnum => '6', amproc => 'btint8skipsupport' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', amprocrighttype => 'int4', amprocnum => '1', amproc => 'btint84cmp' }, { amprocfamily => 'btree/integer_ops', amproclefttype => 'int8', @@ -193,6 +211,8 @@ amprocrighttype => 'oid', amprocnum => '2', amproc => 'btoidsortsupport' }, { amprocfamily => 'btree/oid_ops', amproclefttype => 'oid', amprocrighttype => 'oid', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/oid_ops', amproclefttype => 'oid', + amprocrighttype => 'oid', amprocnum => '6', amproc => 'btoidskipsupport' }, { amprocfamily => 'btree/oidvector_ops', amproclefttype => 'oidvector', amprocrighttype => 'oidvector', amprocnum => '1', amproc => 'btoidvectorcmp' }, @@ -261,6 +281,8 @@ amprocrighttype => 'uuid', amprocnum => '2', amproc => 'uuid_sortsupport' }, { amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid', amprocrighttype => 'uuid', amprocnum => '4', amproc => 'btequalimage' }, +{ amprocfamily => 'btree/uuid_ops', amproclefttype => 'uuid', + amprocrighttype => 'uuid', amprocnum => '6', amproc => 'uuid_skipsupport' }, { amprocfamily => 'btree/record_ops', amproclefttype => 'record', amprocrighttype => 'record', amprocnum => '1', amproc => 'btrecordcmp' }, { amprocfamily => 'btree/record_image_ops', amproclefttype => 'record', @@ -283,6 +305,9 @@ amprocrighttype => 'tsquery', amprocnum => '1', amproc => 'tsquery_cmp' }, { amprocfamily => 'btree/range_ops', amproclefttype => 'anyrange', amprocrighttype => 'anyrange', amprocnum => '1', amproc => 'range_cmp' }, +{ amprocfamily => 'btree/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '2', + amproc => 'range_sortsupport' }, { amprocfamily => 'btree/multirange_ops', amproclefttype => 'anymultirange', amprocrighttype => 'anymultirange', amprocnum => '1', amproc => 'multirange_cmp' }, @@ -606,6 +631,9 @@ { amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', amprocrighttype => 'anyrange', amprocnum => '7', amproc => 'range_gist_same' }, +{ amprocfamily => 'gist/range_ops', amproclefttype => 'anyrange', + amprocrighttype => 'anyrange', amprocnum => '11', + amproc => 'range_sortsupport' }, { amprocfamily => 'gist/range_ops', amproclefttype => 'any', amprocrighttype => 'any', amprocnum => '12', amproc => 'gist_stratnum_common' }, diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h index deaa515fe531f..c612aed620f63 100644 --- a/src/include/catalog/pg_attribute.h +++ b/src/include/catalog/pg_attribute.h @@ -117,7 +117,9 @@ CATALOG(pg_attribute,1249,AttributeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(75, */ char attcompression BKI_DEFAULT('\0'); - /* This flag represents the "NOT NULL" constraint */ + /* + * Whether a (possibly invalid) not-null constraint exists for the column + */ bool attnotnull; /* Has DEFAULT value or not */ diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h index 6da164e7e4dcf..4afceb5c692d2 100644 --- a/src/include/catalog/pg_constraint.h +++ b/src/include/catalog/pg_constraint.h @@ -264,7 +264,7 @@ extern HeapTuple findNotNullConstraint(Oid relid, const char *colname); extern HeapTuple findDomainNotNullConstraint(Oid typid); extern AttrNumber extractNotNullColumn(HeapTuple constrTup); extern bool AdjustNotNullInheritance(Oid relid, AttrNumber attnum, - bool is_local, bool is_no_inherit); + bool is_local, bool is_no_inherit, bool is_notvalid); extern List *RelationGetNotNullConstraints(Oid relid, bool cooked, bool include_noinh); diff --git a/src/include/catalog/pg_default_acl.h b/src/include/catalog/pg_default_acl.h index 728024b1fa747..ce6e5098eaf02 100644 --- a/src/include/catalog/pg_default_acl.h +++ b/src/include/catalog/pg_default_acl.h @@ -68,6 +68,7 @@ MAKE_SYSCACHE(DEFACLROLENSPOBJ, pg_default_acl_role_nsp_obj_index, 8); #define DEFACLOBJ_FUNCTION 'f' /* function */ #define DEFACLOBJ_TYPE 'T' /* type */ #define DEFACLOBJ_NAMESPACE 'n' /* namespace */ +#define DEFACLOBJ_LARGEOBJECT 'L' /* large object */ #endif /* EXPOSE_TO_CLIENT_CODE */ diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 6b57b7e18d989..37a484147a8f2 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -1004,18 +1004,27 @@ { oid => '3129', descr => 'sort support', proname => 'btint2sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'btint2sortsupport' }, +{ oid => '9290', descr => 'skip support', + proname => 'btint2skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint2skipsupport' }, { oid => '351', descr => 'less-equal-greater', proname => 'btint4cmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'int4 int4', prosrc => 'btint4cmp' }, { oid => '3130', descr => 'sort support', proname => 'btint4sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'btint4sortsupport' }, +{ oid => '9291', descr => 'skip support', + proname => 'btint4skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint4skipsupport' }, { oid => '842', descr => 'less-equal-greater', proname => 'btint8cmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'int8 int8', prosrc => 'btint8cmp' }, { oid => '3131', descr => 'sort support', proname => 'btint8sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'btint8sortsupport' }, +{ oid => '9292', descr => 'skip support', + proname => 'btint8skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btint8skipsupport' }, { oid => '354', descr => 'less-equal-greater', proname => 'btfloat4cmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'float4 float4', prosrc => 'btfloat4cmp' }, @@ -1034,12 +1043,18 @@ { oid => '3134', descr => 'sort support', proname => 'btoidsortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'btoidsortsupport' }, +{ oid => '9293', descr => 'skip support', + proname => 'btoidskipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btoidskipsupport' }, { oid => '404', descr => 'less-equal-greater', proname => 'btoidvectorcmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'oidvector oidvector', prosrc => 'btoidvectorcmp' }, { oid => '358', descr => 'less-equal-greater', proname => 'btcharcmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'char char', prosrc => 'btcharcmp' }, +{ oid => '9294', descr => 'skip support', + proname => 'btcharskipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btcharskipsupport' }, { oid => '359', descr => 'less-equal-greater', proname => 'btnamecmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'name name', prosrc => 'btnamecmp' }, @@ -2300,6 +2315,9 @@ { oid => '3136', descr => 'sort support', proname => 'date_sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'date_sortsupport' }, +{ oid => '9295', descr => 'skip support', + proname => 'date_skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'date_skipsupport' }, { oid => '4133', descr => 'window RANGE support', proname => 'in_range', prorettype => 'bool', proargtypes => 'date date interval bool bool', @@ -4497,6 +4515,9 @@ { oid => '1693', descr => 'less-equal-greater', proname => 'btboolcmp', proleakproof => 't', prorettype => 'int4', proargtypes => 'bool bool', prosrc => 'btboolcmp' }, +{ oid => '9296', descr => 'skip support', + proname => 'btboolskipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'btboolskipsupport' }, { oid => '1688', descr => 'hash', proname => 'time_hash', prorettype => 'int4', proargtypes => 'time', @@ -6376,6 +6397,9 @@ { oid => '3137', descr => 'sort support', proname => 'timestamp_sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'timestamp_sortsupport' }, +{ oid => '9297', descr => 'skip support', + proname => 'timestamp_skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'timestamp_skipsupport' }, { oid => '4134', descr => 'window RANGE support', proname => 'in_range', prorettype => 'bool', @@ -8518,6 +8542,18 @@ proargnames => '{name,off,size,allocated_size}', prosrc => 'pg_get_shmem_allocations' }, +{ oid => '4099', descr => 'Is NUMA support available?', + proname => 'pg_numa_available', provolatile => 's', prorettype => 'bool', + proargtypes => '', prosrc => 'pg_numa_available' }, + +# shared memory usage with NUMA info +{ oid => '4100', descr => 'NUMA mappings for the main shared memory segment', + proname => 'pg_get_shmem_allocations_numa', prorows => '50', proretset => 't', + provolatile => 'v', prorettype => 'record', proargtypes => '', + proallargtypes => '{text,int4,int8}', proargmodes => '{o,o,o}', + proargnames => '{name,numa_node,size}', + prosrc => 'pg_get_shmem_allocations_numa' }, + # memory context of local backend { oid => '2282', descr => 'information about all memory contexts of local backend', @@ -9431,6 +9467,9 @@ { oid => '3300', descr => 'sort support', proname => 'uuid_sortsupport', prorettype => 'void', proargtypes => 'internal', prosrc => 'uuid_sortsupport' }, +{ oid => '9298', descr => 'skip support', + proname => 'uuid_skipsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'uuid_skipsupport' }, { oid => '2961', descr => 'I/O', proname => 'uuid_recv', prorettype => 'uuid', proargtypes => 'internal', prosrc => 'uuid_recv' }, @@ -10855,6 +10894,9 @@ { oid => '3870', descr => 'less-equal-greater', proname => 'range_cmp', prorettype => 'int4', proargtypes => 'anyrange anyrange', prosrc => 'range_cmp' }, +{ oid => '8849', descr => 'sort support', + proname => 'range_sortsupport', prorettype => 'void', + proargtypes => 'internal', prosrc => 'range_sortsupport' }, { oid => '3871', proname => 'range_lt', prorettype => 'bool', proargtypes => 'anyrange anyrange', prosrc => 'range_lt' }, @@ -11421,9 +11463,9 @@ proname => 'pg_get_replication_slots', prorows => '10', proisstrict => 'f', proretset => 't', provolatile => 's', prorettype => 'record', proargtypes => '', - proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn,text,int8,bool,timestamptz,bool,text,bool,bool}', - proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', - proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size,two_phase,inactive_since,conflicting,invalidation_reason,failover,synced}', + proallargtypes => '{name,name,text,oid,bool,bool,int4,xid,xid,pg_lsn,pg_lsn,text,int8,bool,pg_lsn,timestamptz,bool,text,bool,bool}', + proargmodes => '{o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o}', + proargnames => '{slot_name,plugin,slot_type,datoid,temporary,active,active_pid,xmin,catalog_xmin,restart_lsn,confirmed_flush_lsn,wal_status,safe_wal_size,two_phase,two_phase_at,inactive_since,conflicting,invalidation_reason,failover,synced}', prosrc => 'pg_get_replication_slots' }, { oid => '3786', descr => 'set up a logical replication slot', proname => 'pg_create_logical_replication_slot', provolatile => 'v', diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h index 45f593fc95832..d7353e7a088ff 100644 --- a/src/include/catalog/pg_proc.h +++ b/src/include/catalog/pg_proc.h @@ -211,6 +211,7 @@ extern ObjectAddress ProcedureCreate(const char *procedureName, Datum parameterNames, List *parameterDefaults, Datum trftypes, + List *trfoids, Datum proconfig, Oid prosupport, float4 procost, diff --git a/src/include/catalog/pg_replication_origin.h b/src/include/catalog/pg_replication_origin.h index deb43065fe992..7ade8bbda3964 100644 --- a/src/include/catalog/pg_replication_origin.h +++ b/src/include/catalog/pg_replication_origin.h @@ -54,8 +54,6 @@ CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELAT typedef FormData_pg_replication_origin *Form_pg_replication_origin; -DECLARE_TOAST_WITH_MACRO(pg_replication_origin, 4181, 4182, PgReplicationOriginToastTable, PgReplicationOriginToastIndex); - DECLARE_UNIQUE_INDEX_PKEY(pg_replication_origin_roiident_index, 6001, ReplicationOriginIdentIndex, pg_replication_origin, btree(roident oid_ops)); DECLARE_UNIQUE_INDEX(pg_replication_origin_roname_index, 6002, ReplicationOriginNameIndex, pg_replication_origin, btree(roname text_ops)); diff --git a/src/include/commands/explain.h b/src/include/commands/explain.h index 387839eb5d268..3b122f79ed848 100644 --- a/src/include/commands/explain.h +++ b/src/include/commands/explain.h @@ -63,10 +63,8 @@ extern void ExplainOneUtility(Node *utilityStmt, IntoClause *into, struct ExplainState *es, ParseState *pstate, ParamListInfo params); -extern void ExplainOnePlan(PlannedStmt *plannedstmt, CachedPlan *cplan, - CachedPlanSource *plansource, int plan_index, - IntoClause *into, struct ExplainState *es, - const char *queryString, +extern void ExplainOnePlan(PlannedStmt *plannedstmt, IntoClause *into, + struct ExplainState *es, const char *queryString, ParamListInfo params, QueryEnvironment *queryEnv, const instr_time *planduration, const BufferUsage *bufusage, diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h index 4180601dcd401..2ed2c4bb3784b 100644 --- a/src/include/commands/trigger.h +++ b/src/include/commands/trigger.h @@ -258,7 +258,6 @@ extern void ExecASTruncateTriggers(EState *estate, extern void AfterTriggerBeginXact(void); extern void AfterTriggerBeginQuery(void); extern void AfterTriggerEndQuery(EState *estate); -extern void AfterTriggerAbortQuery(void); extern void AfterTriggerFireDeferred(void); extern void AfterTriggerEndXact(bool isCommit); extern void AfterTriggerBeginSubXact(void); diff --git a/src/include/common/base64.h b/src/include/common/base64.h index 3f74aa301f09e..66cb57b017fb9 100644 --- a/src/include/common/base64.h +++ b/src/include/common/base64.h @@ -11,8 +11,8 @@ #define BASE64_H /* base 64 */ -pg_nodiscard extern int pg_b64_encode(const char *src, int len, char *dst, int dstlen); -pg_nodiscard extern int pg_b64_decode(const char *src, int len, char *dst, int dstlen); +pg_nodiscard extern int pg_b64_encode(const uint8 *src, int len, char *dst, int dstlen); +pg_nodiscard extern int pg_b64_decode(const char *src, int len, uint8 *dst, int dstlen); extern int pg_b64_enc_len(int srclen); extern int pg_b64_dec_len(int srclen); diff --git a/src/include/common/md5.h b/src/include/common/md5.h index 18ffd99845399..0c9ae4888f2d8 100644 --- a/src/include/common/md5.h +++ b/src/include/common/md5.h @@ -28,9 +28,9 @@ /* Utilities common to all the MD5 implementations, as of md5_common.c */ extern bool pg_md5_hash(const void *buff, size_t len, char *hexsum, const char **errstr); -extern bool pg_md5_binary(const void *buff, size_t len, void *outbuf, +extern bool pg_md5_binary(const void *buff, size_t len, uint8 *outbuf, const char **errstr); -extern bool pg_md5_encrypt(const char *passwd, const char *salt, +extern bool pg_md5_encrypt(const char *passwd, const uint8 *salt, size_t salt_len, char *buf, const char **errstr); diff --git a/src/include/common/scram-common.h b/src/include/common/scram-common.h index 46df94ef1d464..5ce055e0e274d 100644 --- a/src/include/common/scram-common.h +++ b/src/include/common/scram-common.h @@ -51,7 +51,7 @@ extern int scram_SaltedPassword(const char *password, pg_cryptohash_type hash_type, int key_length, - const char *salt, int saltlen, int iterations, + const uint8 *salt, int saltlen, int iterations, uint8 *result, const char **errstr); extern int scram_H(const uint8 *input, pg_cryptohash_type hash_type, int key_length, uint8 *result, @@ -64,7 +64,7 @@ extern int scram_ServerKey(const uint8 *salted_password, uint8 *result, const char **errstr); extern char *scram_build_secret(pg_cryptohash_type hash_type, int key_length, - const char *salt, int saltlen, int iterations, + const uint8 *salt, int saltlen, int iterations, const char *password, const char **errstr); #endif /* SCRAM_COMMON_H */ diff --git a/src/include/common/unicode_case_table.h b/src/include/common/unicode_case_table.h index aa66c3df73c01..d53117865820b 100644 --- a/src/include/common/unicode_case_table.h +++ b/src/include/common/unicode_case_table.h @@ -166,7 +166,7 @@ static const pg_special_case special_case[106] = * The entry case_map_lower[case_index(codepoint)] is the mapping for the * given codepoint. */ -static const pg_wchar case_map_lower[1677] = +static const pg_wchar case_map_lower[1704] = { 0x000000, /* reserved */ 0x000000, /* U+000000 */ @@ -415,6 +415,7 @@ static const pg_wchar case_map_lower[1677] = 0x000268, /* U+000197 */ 0x000199, /* U+000198 */ 0x00019a, /* U+00019a */ + 0x00019b, /* U+00019b */ 0x00026f, /* U+00019c */ 0x000272, /* U+00019d */ 0x00019e, /* U+00019e */ @@ -506,6 +507,7 @@ static const pg_wchar case_map_lower[1677] = 0x000252, /* U+000252 */ 0x00025c, /* U+00025c */ 0x000261, /* U+000261 */ + 0x000264, /* U+000264 */ 0x000265, /* U+000265 */ 0x000266, /* U+000266 */ 0x00026a, /* U+00026a */ @@ -954,6 +956,7 @@ static const pg_wchar case_map_lower[1677] = 0x001c86, /* U+001c86 */ 0x001c87, /* U+001c87 */ 0x001c88, /* U+001c88 */ + 0x001c8a, /* U+001c89 */ 0x0010d0, /* U+001c90 */ 0x0010d1, /* U+001c91 */ 0x0010d2, /* U+001c92 */ @@ -1543,9 +1546,11 @@ static const pg_wchar case_map_lower[1677] = 0x00a7c3, /* U+00a7c2 */ 0x00a7c8, /* U+00a7c7 */ 0x00a7ca, /* U+00a7c9 */ + 0x00a7cd, /* U+00a7cc */ 0x00a7d1, /* U+00a7d0 */ 0x00a7d7, /* U+00a7d6 */ 0x00a7d9, /* U+00a7d8 */ + 0x00a7db, /* U+00a7da */ 0x00a7f6, /* U+00a7f5 */ 0x00fb00, /* U+00fb00 */ 0x00fb01, /* U+00fb01 */ @@ -1747,6 +1752,28 @@ static const pg_wchar case_map_lower[1677] = 0x010cf0, /* U+010cb0 */ 0x010cf1, /* U+010cb1 */ 0x010cf2, /* U+010cb2 */ + 0x010d70, /* U+010d50 */ + 0x010d71, /* U+010d51 */ + 0x010d72, /* U+010d52 */ + 0x010d73, /* U+010d53 */ + 0x010d74, /* U+010d54 */ + 0x010d75, /* U+010d55 */ + 0x010d76, /* U+010d56 */ + 0x010d77, /* U+010d57 */ + 0x010d78, /* U+010d58 */ + 0x010d79, /* U+010d59 */ + 0x010d7a, /* U+010d5a */ + 0x010d7b, /* U+010d5b */ + 0x010d7c, /* U+010d5c */ + 0x010d7d, /* U+010d5d */ + 0x010d7e, /* U+010d5e */ + 0x010d7f, /* U+010d5f */ + 0x010d80, /* U+010d60 */ + 0x010d81, /* U+010d61 */ + 0x010d82, /* U+010d62 */ + 0x010d83, /* U+010d63 */ + 0x010d84, /* U+010d64 */ + 0x010d85, /* U+010d65 */ 0x0118c0, /* U+0118a0 */ 0x0118c1, /* U+0118a1 */ 0x0118c2, /* U+0118a2 */ @@ -1852,7 +1879,7 @@ static const pg_wchar case_map_lower[1677] = * The entry case_map_title[case_index(codepoint)] is the mapping for the * given codepoint. */ -static const pg_wchar case_map_title[1677] = +static const pg_wchar case_map_title[1704] = { 0x000000, /* reserved */ 0x000000, /* U+000000 */ @@ -2101,6 +2128,7 @@ static const pg_wchar case_map_title[1677] = 0x000197, /* U+000197 */ 0x000198, /* U+000198 */ 0x00023d, /* U+00019a */ + 0x00a7dc, /* U+00019b */ 0x00019c, /* U+00019c */ 0x00019d, /* U+00019d */ 0x000220, /* U+00019e */ @@ -2192,6 +2220,7 @@ static const pg_wchar case_map_title[1677] = 0x002c70, /* U+000252 */ 0x00a7ab, /* U+00025c */ 0x00a7ac, /* U+000261 */ + 0x00a7cb, /* U+000264 */ 0x00a78d, /* U+000265 */ 0x00a7aa, /* U+000266 */ 0x00a7ae, /* U+00026a */ @@ -2640,6 +2669,7 @@ static const pg_wchar case_map_title[1677] = 0x00042a, /* U+001c86 */ 0x000462, /* U+001c87 */ 0x00a64a, /* U+001c88 */ + 0x001c89, /* U+001c89 */ 0x001c90, /* U+001c90 */ 0x001c91, /* U+001c91 */ 0x001c92, /* U+001c92 */ @@ -3229,9 +3259,11 @@ static const pg_wchar case_map_title[1677] = 0x00a7c2, /* U+00a7c2 */ 0x00a7c7, /* U+00a7c7 */ 0x00a7c9, /* U+00a7c9 */ + 0x00a7cc, /* U+00a7cc */ 0x00a7d0, /* U+00a7d0 */ 0x00a7d6, /* U+00a7d6 */ 0x00a7d8, /* U+00a7d8 */ + 0x00a7da, /* U+00a7da */ 0x00a7f5, /* U+00a7f5 */ 0x00fb00, /* U+00fb00 */ 0x00fb01, /* U+00fb01 */ @@ -3433,6 +3465,28 @@ static const pg_wchar case_map_title[1677] = 0x010cb0, /* U+010cb0 */ 0x010cb1, /* U+010cb1 */ 0x010cb2, /* U+010cb2 */ + 0x010d50, /* U+010d50 */ + 0x010d51, /* U+010d51 */ + 0x010d52, /* U+010d52 */ + 0x010d53, /* U+010d53 */ + 0x010d54, /* U+010d54 */ + 0x010d55, /* U+010d55 */ + 0x010d56, /* U+010d56 */ + 0x010d57, /* U+010d57 */ + 0x010d58, /* U+010d58 */ + 0x010d59, /* U+010d59 */ + 0x010d5a, /* U+010d5a */ + 0x010d5b, /* U+010d5b */ + 0x010d5c, /* U+010d5c */ + 0x010d5d, /* U+010d5d */ + 0x010d5e, /* U+010d5e */ + 0x010d5f, /* U+010d5f */ + 0x010d60, /* U+010d60 */ + 0x010d61, /* U+010d61 */ + 0x010d62, /* U+010d62 */ + 0x010d63, /* U+010d63 */ + 0x010d64, /* U+010d64 */ + 0x010d65, /* U+010d65 */ 0x0118a0, /* U+0118a0 */ 0x0118a1, /* U+0118a1 */ 0x0118a2, /* U+0118a2 */ @@ -3538,7 +3592,7 @@ static const pg_wchar case_map_title[1677] = * The entry case_map_upper[case_index(codepoint)] is the mapping for the * given codepoint. */ -static const pg_wchar case_map_upper[1677] = +static const pg_wchar case_map_upper[1704] = { 0x000000, /* reserved */ 0x000000, /* U+000000 */ @@ -3787,6 +3841,7 @@ static const pg_wchar case_map_upper[1677] = 0x000197, /* U+000197 */ 0x000198, /* U+000198 */ 0x00023d, /* U+00019a */ + 0x00a7dc, /* U+00019b */ 0x00019c, /* U+00019c */ 0x00019d, /* U+00019d */ 0x000220, /* U+00019e */ @@ -3878,6 +3933,7 @@ static const pg_wchar case_map_upper[1677] = 0x002c70, /* U+000252 */ 0x00a7ab, /* U+00025c */ 0x00a7ac, /* U+000261 */ + 0x00a7cb, /* U+000264 */ 0x00a78d, /* U+000265 */ 0x00a7aa, /* U+000266 */ 0x00a7ae, /* U+00026a */ @@ -4326,6 +4382,7 @@ static const pg_wchar case_map_upper[1677] = 0x00042a, /* U+001c86 */ 0x000462, /* U+001c87 */ 0x00a64a, /* U+001c88 */ + 0x001c89, /* U+001c89 */ 0x001c90, /* U+001c90 */ 0x001c91, /* U+001c91 */ 0x001c92, /* U+001c92 */ @@ -4915,9 +4972,11 @@ static const pg_wchar case_map_upper[1677] = 0x00a7c2, /* U+00a7c2 */ 0x00a7c7, /* U+00a7c7 */ 0x00a7c9, /* U+00a7c9 */ + 0x00a7cc, /* U+00a7cc */ 0x00a7d0, /* U+00a7d0 */ 0x00a7d6, /* U+00a7d6 */ 0x00a7d8, /* U+00a7d8 */ + 0x00a7da, /* U+00a7da */ 0x00a7f5, /* U+00a7f5 */ 0x00fb00, /* U+00fb00 */ 0x00fb01, /* U+00fb01 */ @@ -5119,6 +5178,28 @@ static const pg_wchar case_map_upper[1677] = 0x010cb0, /* U+010cb0 */ 0x010cb1, /* U+010cb1 */ 0x010cb2, /* U+010cb2 */ + 0x010d50, /* U+010d50 */ + 0x010d51, /* U+010d51 */ + 0x010d52, /* U+010d52 */ + 0x010d53, /* U+010d53 */ + 0x010d54, /* U+010d54 */ + 0x010d55, /* U+010d55 */ + 0x010d56, /* U+010d56 */ + 0x010d57, /* U+010d57 */ + 0x010d58, /* U+010d58 */ + 0x010d59, /* U+010d59 */ + 0x010d5a, /* U+010d5a */ + 0x010d5b, /* U+010d5b */ + 0x010d5c, /* U+010d5c */ + 0x010d5d, /* U+010d5d */ + 0x010d5e, /* U+010d5e */ + 0x010d5f, /* U+010d5f */ + 0x010d60, /* U+010d60 */ + 0x010d61, /* U+010d61 */ + 0x010d62, /* U+010d62 */ + 0x010d63, /* U+010d63 */ + 0x010d64, /* U+010d64 */ + 0x010d65, /* U+010d65 */ 0x0118a0, /* U+0118a0 */ 0x0118a1, /* U+0118a1 */ 0x0118a2, /* U+0118a2 */ @@ -5224,7 +5305,7 @@ static const pg_wchar case_map_upper[1677] = * The entry case_map_fold[case_index(codepoint)] is the mapping for the * given codepoint. */ -static const pg_wchar case_map_fold[1677] = +static const pg_wchar case_map_fold[1704] = { 0x000000, /* reserved */ 0x000000, /* U+000000 */ @@ -5473,6 +5554,7 @@ static const pg_wchar case_map_fold[1677] = 0x000268, /* U+000197 */ 0x000199, /* U+000198 */ 0x00019a, /* U+00019a */ + 0x00019b, /* U+00019b */ 0x00026f, /* U+00019c */ 0x000272, /* U+00019d */ 0x00019e, /* U+00019e */ @@ -5564,6 +5646,7 @@ static const pg_wchar case_map_fold[1677] = 0x000252, /* U+000252 */ 0x00025c, /* U+00025c */ 0x000261, /* U+000261 */ + 0x000264, /* U+000264 */ 0x000265, /* U+000265 */ 0x000266, /* U+000266 */ 0x00026a, /* U+00026a */ @@ -6012,6 +6095,7 @@ static const pg_wchar case_map_fold[1677] = 0x00044a, /* U+001c86 */ 0x000463, /* U+001c87 */ 0x00a64b, /* U+001c88 */ + 0x001c8a, /* U+001c89 */ 0x0010d0, /* U+001c90 */ 0x0010d1, /* U+001c91 */ 0x0010d2, /* U+001c92 */ @@ -6601,9 +6685,11 @@ static const pg_wchar case_map_fold[1677] = 0x00a7c3, /* U+00a7c2 */ 0x00a7c8, /* U+00a7c7 */ 0x00a7ca, /* U+00a7c9 */ + 0x00a7cd, /* U+00a7cc */ 0x00a7d1, /* U+00a7d0 */ 0x00a7d7, /* U+00a7d6 */ 0x00a7d9, /* U+00a7d8 */ + 0x00a7db, /* U+00a7da */ 0x00a7f6, /* U+00a7f5 */ 0x00fb00, /* U+00fb00 */ 0x00fb01, /* U+00fb01 */ @@ -6805,6 +6891,28 @@ static const pg_wchar case_map_fold[1677] = 0x010cf0, /* U+010cb0 */ 0x010cf1, /* U+010cb1 */ 0x010cf2, /* U+010cb2 */ + 0x010d70, /* U+010d50 */ + 0x010d71, /* U+010d51 */ + 0x010d72, /* U+010d52 */ + 0x010d73, /* U+010d53 */ + 0x010d74, /* U+010d54 */ + 0x010d75, /* U+010d55 */ + 0x010d76, /* U+010d56 */ + 0x010d77, /* U+010d57 */ + 0x010d78, /* U+010d58 */ + 0x010d79, /* U+010d59 */ + 0x010d7a, /* U+010d5a */ + 0x010d7b, /* U+010d5b */ + 0x010d7c, /* U+010d5c */ + 0x010d7d, /* U+010d5d */ + 0x010d7e, /* U+010d5e */ + 0x010d7f, /* U+010d5f */ + 0x010d80, /* U+010d60 */ + 0x010d81, /* U+010d61 */ + 0x010d82, /* U+010d62 */ + 0x010d83, /* U+010d63 */ + 0x010d84, /* U+010d64 */ + 0x010d85, /* U+010d65 */ 0x0118c0, /* U+0118a0 */ 0x0118c1, /* U+0118a1 */ 0x0118c2, /* U+0118a2 */ @@ -6910,7 +7018,7 @@ static const pg_wchar case_map_fold[1677] = * The entry case_map_special[case_index(codepoint)] is the index in * special_case for that codepoint, or 0 if no special case mapping exists. */ -static const uint8 case_map_special[1677] = +static const uint8 case_map_special[1704] = { 0, /* reserved */ 0, /* U+000000 */ @@ -7159,6 +7267,7 @@ static const uint8 case_map_special[1677] = 0, /* U+000197 */ 0, /* U+000198 */ 0, /* U+00019a */ + 0, /* U+00019b */ 0, /* U+00019c */ 0, /* U+00019d */ 0, /* U+00019e */ @@ -7250,6 +7359,7 @@ static const uint8 case_map_special[1677] = 0, /* U+000252 */ 0, /* U+00025c */ 0, /* U+000261 */ + 0, /* U+000264 */ 0, /* U+000265 */ 0, /* U+000266 */ 0, /* U+00026a */ @@ -7698,6 +7808,7 @@ static const uint8 case_map_special[1677] = 0, /* U+001c86 */ 0, /* U+001c87 */ 0, /* U+001c88 */ + 0, /* U+001c89 */ 0, /* U+001c90 */ 0, /* U+001c91 */ 0, /* U+001c92 */ @@ -8287,9 +8398,11 @@ static const uint8 case_map_special[1677] = 0, /* U+00a7c2 */ 0, /* U+00a7c7 */ 0, /* U+00a7c9 */ + 0, /* U+00a7cc */ 0, /* U+00a7d0 */ 0, /* U+00a7d6 */ 0, /* U+00a7d8 */ + 0, /* U+00a7da */ 0, /* U+00a7f5 */ 94, /* U+00fb00 */ 95, /* U+00fb01 */ @@ -8491,6 +8604,28 @@ static const uint8 case_map_special[1677] = 0, /* U+010cb0 */ 0, /* U+010cb1 */ 0, /* U+010cb2 */ + 0, /* U+010d50 */ + 0, /* U+010d51 */ + 0, /* U+010d52 */ + 0, /* U+010d53 */ + 0, /* U+010d54 */ + 0, /* U+010d55 */ + 0, /* U+010d56 */ + 0, /* U+010d57 */ + 0, /* U+010d58 */ + 0, /* U+010d59 */ + 0, /* U+010d5a */ + 0, /* U+010d5b */ + 0, /* U+010d5c */ + 0, /* U+010d5d */ + 0, /* U+010d5e */ + 0, /* U+010d5f */ + 0, /* U+010d60 */ + 0, /* U+010d61 */ + 0, /* U+010d62 */ + 0, /* U+010d63 */ + 0, /* U+010d64 */ + 0, /* U+010d65 */ 0, /* U+0118a0 */ 0, /* U+0118a1 */ 0, /* U+0118a2 */ @@ -8597,7 +8732,7 @@ static const uint8 case_map_special[1677] = * of the following arrays: case_map_lower, case_map_title, case_map_upper, * case_map_fold. */ -static const uint16 case_map[4631] = +static const uint16 case_map[4778] = { 1, /* U+000000 */ 2, /* U+000001 */ @@ -9010,190 +9145,190 @@ static const uint16 case_map[4631] = 245, /* U+000198 */ 245, /* U+000199 */ 246, /* U+00019A */ - 0, /* U+00019B */ - 247, /* U+00019C */ - 248, /* U+00019D */ - 249, /* U+00019E */ - 250, /* U+00019F */ - 251, /* U+0001A0 */ - 251, /* U+0001A1 */ - 252, /* U+0001A2 */ - 252, /* U+0001A3 */ - 253, /* U+0001A4 */ - 253, /* U+0001A5 */ - 254, /* U+0001A6 */ - 255, /* U+0001A7 */ - 255, /* U+0001A8 */ - 256, /* U+0001A9 */ + 247, /* U+00019B */ + 248, /* U+00019C */ + 249, /* U+00019D */ + 250, /* U+00019E */ + 251, /* U+00019F */ + 252, /* U+0001A0 */ + 252, /* U+0001A1 */ + 253, /* U+0001A2 */ + 253, /* U+0001A3 */ + 254, /* U+0001A4 */ + 254, /* U+0001A5 */ + 255, /* U+0001A6 */ + 256, /* U+0001A7 */ + 256, /* U+0001A8 */ + 257, /* U+0001A9 */ 0, /* U+0001AA */ 0, /* U+0001AB */ - 257, /* U+0001AC */ - 257, /* U+0001AD */ - 258, /* U+0001AE */ - 259, /* U+0001AF */ - 259, /* U+0001B0 */ - 260, /* U+0001B1 */ - 261, /* U+0001B2 */ - 262, /* U+0001B3 */ - 262, /* U+0001B4 */ - 263, /* U+0001B5 */ - 263, /* U+0001B6 */ - 264, /* U+0001B7 */ - 265, /* U+0001B8 */ - 265, /* U+0001B9 */ + 258, /* U+0001AC */ + 258, /* U+0001AD */ + 259, /* U+0001AE */ + 260, /* U+0001AF */ + 260, /* U+0001B0 */ + 261, /* U+0001B1 */ + 262, /* U+0001B2 */ + 263, /* U+0001B3 */ + 263, /* U+0001B4 */ + 264, /* U+0001B5 */ + 264, /* U+0001B6 */ + 265, /* U+0001B7 */ + 266, /* U+0001B8 */ + 266, /* U+0001B9 */ 0, /* U+0001BA */ 0, /* U+0001BB */ - 266, /* U+0001BC */ - 266, /* U+0001BD */ + 267, /* U+0001BC */ + 267, /* U+0001BD */ 0, /* U+0001BE */ - 267, /* U+0001BF */ + 268, /* U+0001BF */ 0, /* U+0001C0 */ 0, /* U+0001C1 */ 0, /* U+0001C2 */ 0, /* U+0001C3 */ - 268, /* U+0001C4 */ - 268, /* U+0001C5 */ - 268, /* U+0001C6 */ - 269, /* U+0001C7 */ - 269, /* U+0001C8 */ - 269, /* U+0001C9 */ - 270, /* U+0001CA */ - 270, /* U+0001CB */ - 270, /* U+0001CC */ - 271, /* U+0001CD */ - 271, /* U+0001CE */ - 272, /* U+0001CF */ - 272, /* U+0001D0 */ - 273, /* U+0001D1 */ - 273, /* U+0001D2 */ - 274, /* U+0001D3 */ - 274, /* U+0001D4 */ - 275, /* U+0001D5 */ - 275, /* U+0001D6 */ - 276, /* U+0001D7 */ - 276, /* U+0001D8 */ - 277, /* U+0001D9 */ - 277, /* U+0001DA */ - 278, /* U+0001DB */ - 278, /* U+0001DC */ + 269, /* U+0001C4 */ + 269, /* U+0001C5 */ + 269, /* U+0001C6 */ + 270, /* U+0001C7 */ + 270, /* U+0001C8 */ + 270, /* U+0001C9 */ + 271, /* U+0001CA */ + 271, /* U+0001CB */ + 271, /* U+0001CC */ + 272, /* U+0001CD */ + 272, /* U+0001CE */ + 273, /* U+0001CF */ + 273, /* U+0001D0 */ + 274, /* U+0001D1 */ + 274, /* U+0001D2 */ + 275, /* U+0001D3 */ + 275, /* U+0001D4 */ + 276, /* U+0001D5 */ + 276, /* U+0001D6 */ + 277, /* U+0001D7 */ + 277, /* U+0001D8 */ + 278, /* U+0001D9 */ + 278, /* U+0001DA */ + 279, /* U+0001DB */ + 279, /* U+0001DC */ 236, /* U+0001DD */ - 279, /* U+0001DE */ - 279, /* U+0001DF */ - 280, /* U+0001E0 */ - 280, /* U+0001E1 */ - 281, /* U+0001E2 */ - 281, /* U+0001E3 */ - 282, /* U+0001E4 */ - 282, /* U+0001E5 */ - 283, /* U+0001E6 */ - 283, /* U+0001E7 */ - 284, /* U+0001E8 */ - 284, /* U+0001E9 */ - 285, /* U+0001EA */ - 285, /* U+0001EB */ - 286, /* U+0001EC */ - 286, /* U+0001ED */ - 287, /* U+0001EE */ - 287, /* U+0001EF */ - 288, /* U+0001F0 */ - 289, /* U+0001F1 */ - 289, /* U+0001F2 */ - 289, /* U+0001F3 */ - 290, /* U+0001F4 */ - 290, /* U+0001F5 */ + 280, /* U+0001DE */ + 280, /* U+0001DF */ + 281, /* U+0001E0 */ + 281, /* U+0001E1 */ + 282, /* U+0001E2 */ + 282, /* U+0001E3 */ + 283, /* U+0001E4 */ + 283, /* U+0001E5 */ + 284, /* U+0001E6 */ + 284, /* U+0001E7 */ + 285, /* U+0001E8 */ + 285, /* U+0001E9 */ + 286, /* U+0001EA */ + 286, /* U+0001EB */ + 287, /* U+0001EC */ + 287, /* U+0001ED */ + 288, /* U+0001EE */ + 288, /* U+0001EF */ + 289, /* U+0001F0 */ + 290, /* U+0001F1 */ + 290, /* U+0001F2 */ + 290, /* U+0001F3 */ + 291, /* U+0001F4 */ + 291, /* U+0001F5 */ 242, /* U+0001F6 */ - 267, /* U+0001F7 */ - 291, /* U+0001F8 */ - 291, /* U+0001F9 */ - 292, /* U+0001FA */ - 292, /* U+0001FB */ - 293, /* U+0001FC */ - 293, /* U+0001FD */ - 294, /* U+0001FE */ - 294, /* U+0001FF */ - 295, /* U+000200 */ - 295, /* U+000201 */ - 296, /* U+000202 */ - 296, /* U+000203 */ - 297, /* U+000204 */ - 297, /* U+000205 */ - 298, /* U+000206 */ - 298, /* U+000207 */ - 299, /* U+000208 */ - 299, /* U+000209 */ - 300, /* U+00020A */ - 300, /* U+00020B */ - 301, /* U+00020C */ - 301, /* U+00020D */ - 302, /* U+00020E */ - 302, /* U+00020F */ - 303, /* U+000210 */ - 303, /* U+000211 */ - 304, /* U+000212 */ - 304, /* U+000213 */ - 305, /* U+000214 */ - 305, /* U+000215 */ - 306, /* U+000216 */ - 306, /* U+000217 */ - 307, /* U+000218 */ - 307, /* U+000219 */ - 308, /* U+00021A */ - 308, /* U+00021B */ - 309, /* U+00021C */ - 309, /* U+00021D */ - 310, /* U+00021E */ - 310, /* U+00021F */ - 249, /* U+000220 */ + 268, /* U+0001F7 */ + 292, /* U+0001F8 */ + 292, /* U+0001F9 */ + 293, /* U+0001FA */ + 293, /* U+0001FB */ + 294, /* U+0001FC */ + 294, /* U+0001FD */ + 295, /* U+0001FE */ + 295, /* U+0001FF */ + 296, /* U+000200 */ + 296, /* U+000201 */ + 297, /* U+000202 */ + 297, /* U+000203 */ + 298, /* U+000204 */ + 298, /* U+000205 */ + 299, /* U+000206 */ + 299, /* U+000207 */ + 300, /* U+000208 */ + 300, /* U+000209 */ + 301, /* U+00020A */ + 301, /* U+00020B */ + 302, /* U+00020C */ + 302, /* U+00020D */ + 303, /* U+00020E */ + 303, /* U+00020F */ + 304, /* U+000210 */ + 304, /* U+000211 */ + 305, /* U+000212 */ + 305, /* U+000213 */ + 306, /* U+000214 */ + 306, /* U+000215 */ + 307, /* U+000216 */ + 307, /* U+000217 */ + 308, /* U+000218 */ + 308, /* U+000219 */ + 309, /* U+00021A */ + 309, /* U+00021B */ + 310, /* U+00021C */ + 310, /* U+00021D */ + 311, /* U+00021E */ + 311, /* U+00021F */ + 250, /* U+000220 */ 0, /* U+000221 */ - 311, /* U+000222 */ - 311, /* U+000223 */ - 312, /* U+000224 */ - 312, /* U+000225 */ - 313, /* U+000226 */ - 313, /* U+000227 */ - 314, /* U+000228 */ - 314, /* U+000229 */ - 315, /* U+00022A */ - 315, /* U+00022B */ - 316, /* U+00022C */ - 316, /* U+00022D */ - 317, /* U+00022E */ - 317, /* U+00022F */ - 318, /* U+000230 */ - 318, /* U+000231 */ - 319, /* U+000232 */ - 319, /* U+000233 */ + 312, /* U+000222 */ + 312, /* U+000223 */ + 313, /* U+000224 */ + 313, /* U+000225 */ + 314, /* U+000226 */ + 314, /* U+000227 */ + 315, /* U+000228 */ + 315, /* U+000229 */ + 316, /* U+00022A */ + 316, /* U+00022B */ + 317, /* U+00022C */ + 317, /* U+00022D */ + 318, /* U+00022E */ + 318, /* U+00022F */ + 319, /* U+000230 */ + 319, /* U+000231 */ + 320, /* U+000232 */ + 320, /* U+000233 */ 0, /* U+000234 */ 0, /* U+000235 */ 0, /* U+000236 */ 0, /* U+000237 */ 0, /* U+000238 */ 0, /* U+000239 */ - 320, /* U+00023A */ - 321, /* U+00023B */ - 321, /* U+00023C */ + 321, /* U+00023A */ + 322, /* U+00023B */ + 322, /* U+00023C */ 246, /* U+00023D */ - 322, /* U+00023E */ - 323, /* U+00023F */ - 324, /* U+000240 */ - 325, /* U+000241 */ - 325, /* U+000242 */ + 323, /* U+00023E */ + 324, /* U+00023F */ + 325, /* U+000240 */ + 326, /* U+000241 */ + 326, /* U+000242 */ 227, /* U+000243 */ - 326, /* U+000244 */ - 327, /* U+000245 */ - 328, /* U+000246 */ - 328, /* U+000247 */ - 329, /* U+000248 */ - 329, /* U+000249 */ - 330, /* U+00024A */ - 330, /* U+00024B */ - 331, /* U+00024C */ - 331, /* U+00024D */ - 332, /* U+00024E */ - 332, /* U+00024F */ - 333, /* U+000250 */ - 334, /* U+000251 */ - 335, /* U+000252 */ + 327, /* U+000244 */ + 328, /* U+000245 */ + 329, /* U+000246 */ + 329, /* U+000247 */ + 330, /* U+000248 */ + 330, /* U+000249 */ + 331, /* U+00024A */ + 331, /* U+00024B */ + 332, /* U+00024C */ + 332, /* U+00024D */ + 333, /* U+00024E */ + 333, /* U+00024F */ + 334, /* U+000250 */ + 335, /* U+000251 */ + 336, /* U+000252 */ 228, /* U+000253 */ 231, /* U+000254 */ 0, /* U+000255 */ @@ -9203,32 +9338,32 @@ static const uint16 case_map[4631] = 237, /* U+000259 */ 0, /* U+00025A */ 238, /* U+00025B */ - 336, /* U+00025C */ + 337, /* U+00025C */ 0, /* U+00025D */ 0, /* U+00025E */ 0, /* U+00025F */ 240, /* U+000260 */ - 337, /* U+000261 */ + 338, /* U+000261 */ 0, /* U+000262 */ 241, /* U+000263 */ - 0, /* U+000264 */ - 338, /* U+000265 */ - 339, /* U+000266 */ + 339, /* U+000264 */ + 340, /* U+000265 */ + 341, /* U+000266 */ 0, /* U+000267 */ 244, /* U+000268 */ 243, /* U+000269 */ - 340, /* U+00026A */ - 341, /* U+00026B */ - 342, /* U+00026C */ + 342, /* U+00026A */ + 343, /* U+00026B */ + 344, /* U+00026C */ 0, /* U+00026D */ 0, /* U+00026E */ - 247, /* U+00026F */ + 248, /* U+00026F */ 0, /* U+000270 */ - 343, /* U+000271 */ - 248, /* U+000272 */ + 345, /* U+000271 */ + 249, /* U+000272 */ 0, /* U+000273 */ 0, /* U+000274 */ - 250, /* U+000275 */ + 251, /* U+000275 */ 0, /* U+000276 */ 0, /* U+000277 */ 0, /* U+000278 */ @@ -9236,28 +9371,28 @@ static const uint16 case_map[4631] = 0, /* U+00027A */ 0, /* U+00027B */ 0, /* U+00027C */ - 344, /* U+00027D */ + 346, /* U+00027D */ 0, /* U+00027E */ 0, /* U+00027F */ - 254, /* U+000280 */ + 255, /* U+000280 */ 0, /* U+000281 */ - 345, /* U+000282 */ - 256, /* U+000283 */ + 347, /* U+000282 */ + 257, /* U+000283 */ 0, /* U+000284 */ 0, /* U+000285 */ 0, /* U+000286 */ - 346, /* U+000287 */ - 258, /* U+000288 */ - 326, /* U+000289 */ - 260, /* U+00028A */ - 261, /* U+00028B */ - 327, /* U+00028C */ + 348, /* U+000287 */ + 259, /* U+000288 */ + 327, /* U+000289 */ + 261, /* U+00028A */ + 262, /* U+00028B */ + 328, /* U+00028C */ 0, /* U+00028D */ 0, /* U+00028E */ 0, /* U+00028F */ 0, /* U+000290 */ 0, /* U+000291 */ - 264, /* U+000292 */ + 265, /* U+000292 */ 0, /* U+000293 */ 0, /* U+000294 */ 0, /* U+000295 */ @@ -9268,8 +9403,8 @@ static const uint16 case_map[4631] = 0, /* U+00029A */ 0, /* U+00029B */ 0, /* U+00029C */ - 347, /* U+00029D */ - 348, /* U+00029E */ + 349, /* U+00029D */ + 350, /* U+00029E */ 0, /* U+00029F */ 0, /* U+0002A0 */ 0, /* U+0002A1 */ @@ -9436,7 +9571,7 @@ static const uint16 case_map[4631] = 0, /* U+000342 */ 0, /* U+000343 */ 0, /* U+000344 */ - 349, /* U+000345 */ + 351, /* U+000345 */ 0, /* U+000346 */ 0, /* U+000347 */ 0, /* U+000348 */ @@ -9479,280 +9614,280 @@ static const uint16 case_map[4631] = 0, /* U+00036D */ 0, /* U+00036E */ 0, /* U+00036F */ - 350, /* U+000370 */ - 350, /* U+000371 */ - 351, /* U+000372 */ - 351, /* U+000373 */ + 352, /* U+000370 */ + 352, /* U+000371 */ + 353, /* U+000372 */ + 353, /* U+000373 */ 0, /* U+000374 */ 0, /* U+000375 */ - 352, /* U+000376 */ - 352, /* U+000377 */ + 354, /* U+000376 */ + 354, /* U+000377 */ 0, /* U+000378 */ 0, /* U+000379 */ 0, /* U+00037A */ - 353, /* U+00037B */ - 354, /* U+00037C */ - 355, /* U+00037D */ + 355, /* U+00037B */ + 356, /* U+00037C */ + 357, /* U+00037D */ 0, /* U+00037E */ - 356, /* U+00037F */ + 358, /* U+00037F */ 0, /* U+000380 */ 0, /* U+000381 */ 0, /* U+000382 */ 0, /* U+000383 */ 0, /* U+000384 */ 0, /* U+000385 */ - 357, /* U+000386 */ + 359, /* U+000386 */ 0, /* U+000387 */ - 358, /* U+000388 */ - 359, /* U+000389 */ - 360, /* U+00038A */ + 360, /* U+000388 */ + 361, /* U+000389 */ + 362, /* U+00038A */ 0, /* U+00038B */ - 361, /* U+00038C */ + 363, /* U+00038C */ 0, /* U+00038D */ - 362, /* U+00038E */ - 363, /* U+00038F */ - 364, /* U+000390 */ - 365, /* U+000391 */ - 366, /* U+000392 */ - 367, /* U+000393 */ - 368, /* U+000394 */ - 369, /* U+000395 */ - 370, /* U+000396 */ - 371, /* U+000397 */ - 372, /* U+000398 */ - 373, /* U+000399 */ - 374, /* U+00039A */ - 375, /* U+00039B */ - 376, /* U+00039C */ - 377, /* U+00039D */ - 378, /* U+00039E */ - 379, /* U+00039F */ - 380, /* U+0003A0 */ - 381, /* U+0003A1 */ + 364, /* U+00038E */ + 365, /* U+00038F */ + 366, /* U+000390 */ + 367, /* U+000391 */ + 368, /* U+000392 */ + 369, /* U+000393 */ + 370, /* U+000394 */ + 371, /* U+000395 */ + 372, /* U+000396 */ + 373, /* U+000397 */ + 374, /* U+000398 */ + 375, /* U+000399 */ + 376, /* U+00039A */ + 377, /* U+00039B */ + 378, /* U+00039C */ + 379, /* U+00039D */ + 380, /* U+00039E */ + 381, /* U+00039F */ + 382, /* U+0003A0 */ + 383, /* U+0003A1 */ 0, /* U+0003A2 */ - 382, /* U+0003A3 */ - 383, /* U+0003A4 */ - 384, /* U+0003A5 */ - 385, /* U+0003A6 */ - 386, /* U+0003A7 */ - 387, /* U+0003A8 */ - 388, /* U+0003A9 */ - 389, /* U+0003AA */ - 390, /* U+0003AB */ - 357, /* U+0003AC */ - 358, /* U+0003AD */ - 359, /* U+0003AE */ - 360, /* U+0003AF */ - 391, /* U+0003B0 */ - 365, /* U+0003B1 */ - 366, /* U+0003B2 */ - 367, /* U+0003B3 */ - 368, /* U+0003B4 */ - 369, /* U+0003B5 */ - 370, /* U+0003B6 */ - 371, /* U+0003B7 */ - 372, /* U+0003B8 */ - 373, /* U+0003B9 */ - 374, /* U+0003BA */ - 375, /* U+0003BB */ - 376, /* U+0003BC */ - 377, /* U+0003BD */ - 378, /* U+0003BE */ - 379, /* U+0003BF */ - 380, /* U+0003C0 */ - 381, /* U+0003C1 */ - 392, /* U+0003C2 */ - 393, /* U+0003C3 */ - 383, /* U+0003C4 */ - 384, /* U+0003C5 */ - 385, /* U+0003C6 */ - 386, /* U+0003C7 */ - 387, /* U+0003C8 */ - 388, /* U+0003C9 */ - 389, /* U+0003CA */ - 390, /* U+0003CB */ - 361, /* U+0003CC */ - 362, /* U+0003CD */ - 363, /* U+0003CE */ - 394, /* U+0003CF */ - 395, /* U+0003D0 */ - 396, /* U+0003D1 */ + 384, /* U+0003A3 */ + 385, /* U+0003A4 */ + 386, /* U+0003A5 */ + 387, /* U+0003A6 */ + 388, /* U+0003A7 */ + 389, /* U+0003A8 */ + 390, /* U+0003A9 */ + 391, /* U+0003AA */ + 392, /* U+0003AB */ + 359, /* U+0003AC */ + 360, /* U+0003AD */ + 361, /* U+0003AE */ + 362, /* U+0003AF */ + 393, /* U+0003B0 */ + 367, /* U+0003B1 */ + 368, /* U+0003B2 */ + 369, /* U+0003B3 */ + 370, /* U+0003B4 */ + 371, /* U+0003B5 */ + 372, /* U+0003B6 */ + 373, /* U+0003B7 */ + 374, /* U+0003B8 */ + 375, /* U+0003B9 */ + 376, /* U+0003BA */ + 377, /* U+0003BB */ + 378, /* U+0003BC */ + 379, /* U+0003BD */ + 380, /* U+0003BE */ + 381, /* U+0003BF */ + 382, /* U+0003C0 */ + 383, /* U+0003C1 */ + 394, /* U+0003C2 */ + 395, /* U+0003C3 */ + 385, /* U+0003C4 */ + 386, /* U+0003C5 */ + 387, /* U+0003C6 */ + 388, /* U+0003C7 */ + 389, /* U+0003C8 */ + 390, /* U+0003C9 */ + 391, /* U+0003CA */ + 392, /* U+0003CB */ + 363, /* U+0003CC */ + 364, /* U+0003CD */ + 365, /* U+0003CE */ + 396, /* U+0003CF */ + 397, /* U+0003D0 */ + 398, /* U+0003D1 */ 0, /* U+0003D2 */ 0, /* U+0003D3 */ 0, /* U+0003D4 */ - 397, /* U+0003D5 */ - 398, /* U+0003D6 */ - 394, /* U+0003D7 */ - 399, /* U+0003D8 */ - 399, /* U+0003D9 */ - 400, /* U+0003DA */ - 400, /* U+0003DB */ - 401, /* U+0003DC */ - 401, /* U+0003DD */ - 402, /* U+0003DE */ - 402, /* U+0003DF */ - 403, /* U+0003E0 */ - 403, /* U+0003E1 */ - 404, /* U+0003E2 */ - 404, /* U+0003E3 */ - 405, /* U+0003E4 */ - 405, /* U+0003E5 */ - 406, /* U+0003E6 */ - 406, /* U+0003E7 */ - 407, /* U+0003E8 */ - 407, /* U+0003E9 */ - 408, /* U+0003EA */ - 408, /* U+0003EB */ - 409, /* U+0003EC */ - 409, /* U+0003ED */ - 410, /* U+0003EE */ - 410, /* U+0003EF */ - 411, /* U+0003F0 */ - 412, /* U+0003F1 */ - 413, /* U+0003F2 */ - 356, /* U+0003F3 */ - 414, /* U+0003F4 */ - 415, /* U+0003F5 */ + 399, /* U+0003D5 */ + 400, /* U+0003D6 */ + 396, /* U+0003D7 */ + 401, /* U+0003D8 */ + 401, /* U+0003D9 */ + 402, /* U+0003DA */ + 402, /* U+0003DB */ + 403, /* U+0003DC */ + 403, /* U+0003DD */ + 404, /* U+0003DE */ + 404, /* U+0003DF */ + 405, /* U+0003E0 */ + 405, /* U+0003E1 */ + 406, /* U+0003E2 */ + 406, /* U+0003E3 */ + 407, /* U+0003E4 */ + 407, /* U+0003E5 */ + 408, /* U+0003E6 */ + 408, /* U+0003E7 */ + 409, /* U+0003E8 */ + 409, /* U+0003E9 */ + 410, /* U+0003EA */ + 410, /* U+0003EB */ + 411, /* U+0003EC */ + 411, /* U+0003ED */ + 412, /* U+0003EE */ + 412, /* U+0003EF */ + 413, /* U+0003F0 */ + 414, /* U+0003F1 */ + 415, /* U+0003F2 */ + 358, /* U+0003F3 */ + 416, /* U+0003F4 */ + 417, /* U+0003F5 */ 0, /* U+0003F6 */ - 416, /* U+0003F7 */ - 416, /* U+0003F8 */ - 413, /* U+0003F9 */ - 417, /* U+0003FA */ - 417, /* U+0003FB */ + 418, /* U+0003F7 */ + 418, /* U+0003F8 */ + 415, /* U+0003F9 */ + 419, /* U+0003FA */ + 419, /* U+0003FB */ 0, /* U+0003FC */ - 353, /* U+0003FD */ - 354, /* U+0003FE */ - 355, /* U+0003FF */ - 418, /* U+000400 */ - 419, /* U+000401 */ - 420, /* U+000402 */ - 421, /* U+000403 */ - 422, /* U+000404 */ - 423, /* U+000405 */ - 424, /* U+000406 */ - 425, /* U+000407 */ - 426, /* U+000408 */ - 427, /* U+000409 */ - 428, /* U+00040A */ - 429, /* U+00040B */ - 430, /* U+00040C */ - 431, /* U+00040D */ - 432, /* U+00040E */ - 433, /* U+00040F */ - 434, /* U+000410 */ - 435, /* U+000411 */ - 436, /* U+000412 */ - 437, /* U+000413 */ - 438, /* U+000414 */ - 439, /* U+000415 */ - 440, /* U+000416 */ - 441, /* U+000417 */ - 442, /* U+000418 */ - 443, /* U+000419 */ - 444, /* U+00041A */ - 445, /* U+00041B */ - 446, /* U+00041C */ - 447, /* U+00041D */ - 448, /* U+00041E */ - 449, /* U+00041F */ - 450, /* U+000420 */ - 451, /* U+000421 */ - 452, /* U+000422 */ - 453, /* U+000423 */ - 454, /* U+000424 */ - 455, /* U+000425 */ - 456, /* U+000426 */ - 457, /* U+000427 */ - 458, /* U+000428 */ - 459, /* U+000429 */ - 460, /* U+00042A */ - 461, /* U+00042B */ - 462, /* U+00042C */ - 463, /* U+00042D */ - 464, /* U+00042E */ - 465, /* U+00042F */ - 434, /* U+000430 */ - 435, /* U+000431 */ - 436, /* U+000432 */ - 437, /* U+000433 */ - 438, /* U+000434 */ - 439, /* U+000435 */ - 440, /* U+000436 */ - 441, /* U+000437 */ - 442, /* U+000438 */ - 443, /* U+000439 */ - 444, /* U+00043A */ - 445, /* U+00043B */ - 446, /* U+00043C */ - 447, /* U+00043D */ - 448, /* U+00043E */ - 449, /* U+00043F */ - 450, /* U+000440 */ - 451, /* U+000441 */ - 452, /* U+000442 */ - 453, /* U+000443 */ - 454, /* U+000444 */ - 455, /* U+000445 */ - 456, /* U+000446 */ - 457, /* U+000447 */ - 458, /* U+000448 */ - 459, /* U+000449 */ - 460, /* U+00044A */ - 461, /* U+00044B */ - 462, /* U+00044C */ - 463, /* U+00044D */ - 464, /* U+00044E */ - 465, /* U+00044F */ - 418, /* U+000450 */ - 419, /* U+000451 */ - 420, /* U+000452 */ - 421, /* U+000453 */ - 422, /* U+000454 */ - 423, /* U+000455 */ - 424, /* U+000456 */ - 425, /* U+000457 */ - 426, /* U+000458 */ - 427, /* U+000459 */ - 428, /* U+00045A */ - 429, /* U+00045B */ - 430, /* U+00045C */ - 431, /* U+00045D */ - 432, /* U+00045E */ - 433, /* U+00045F */ - 466, /* U+000460 */ - 466, /* U+000461 */ - 467, /* U+000462 */ - 467, /* U+000463 */ - 468, /* U+000464 */ - 468, /* U+000465 */ - 469, /* U+000466 */ - 469, /* U+000467 */ - 470, /* U+000468 */ - 470, /* U+000469 */ - 471, /* U+00046A */ - 471, /* U+00046B */ - 472, /* U+00046C */ - 472, /* U+00046D */ - 473, /* U+00046E */ - 473, /* U+00046F */ - 474, /* U+000470 */ - 474, /* U+000471 */ - 475, /* U+000472 */ - 475, /* U+000473 */ - 476, /* U+000474 */ - 476, /* U+000475 */ - 477, /* U+000476 */ - 477, /* U+000477 */ - 478, /* U+000478 */ - 478, /* U+000479 */ - 479, /* U+00047A */ - 479, /* U+00047B */ - 480, /* U+00047C */ - 480, /* U+00047D */ - 481, /* U+00047E */ - 481, /* U+00047F */ - 482, /* U+000480 */ - 482, /* U+000481 */ + 355, /* U+0003FD */ + 356, /* U+0003FE */ + 357, /* U+0003FF */ + 420, /* U+000400 */ + 421, /* U+000401 */ + 422, /* U+000402 */ + 423, /* U+000403 */ + 424, /* U+000404 */ + 425, /* U+000405 */ + 426, /* U+000406 */ + 427, /* U+000407 */ + 428, /* U+000408 */ + 429, /* U+000409 */ + 430, /* U+00040A */ + 431, /* U+00040B */ + 432, /* U+00040C */ + 433, /* U+00040D */ + 434, /* U+00040E */ + 435, /* U+00040F */ + 436, /* U+000410 */ + 437, /* U+000411 */ + 438, /* U+000412 */ + 439, /* U+000413 */ + 440, /* U+000414 */ + 441, /* U+000415 */ + 442, /* U+000416 */ + 443, /* U+000417 */ + 444, /* U+000418 */ + 445, /* U+000419 */ + 446, /* U+00041A */ + 447, /* U+00041B */ + 448, /* U+00041C */ + 449, /* U+00041D */ + 450, /* U+00041E */ + 451, /* U+00041F */ + 452, /* U+000420 */ + 453, /* U+000421 */ + 454, /* U+000422 */ + 455, /* U+000423 */ + 456, /* U+000424 */ + 457, /* U+000425 */ + 458, /* U+000426 */ + 459, /* U+000427 */ + 460, /* U+000428 */ + 461, /* U+000429 */ + 462, /* U+00042A */ + 463, /* U+00042B */ + 464, /* U+00042C */ + 465, /* U+00042D */ + 466, /* U+00042E */ + 467, /* U+00042F */ + 436, /* U+000430 */ + 437, /* U+000431 */ + 438, /* U+000432 */ + 439, /* U+000433 */ + 440, /* U+000434 */ + 441, /* U+000435 */ + 442, /* U+000436 */ + 443, /* U+000437 */ + 444, /* U+000438 */ + 445, /* U+000439 */ + 446, /* U+00043A */ + 447, /* U+00043B */ + 448, /* U+00043C */ + 449, /* U+00043D */ + 450, /* U+00043E */ + 451, /* U+00043F */ + 452, /* U+000440 */ + 453, /* U+000441 */ + 454, /* U+000442 */ + 455, /* U+000443 */ + 456, /* U+000444 */ + 457, /* U+000445 */ + 458, /* U+000446 */ + 459, /* U+000447 */ + 460, /* U+000448 */ + 461, /* U+000449 */ + 462, /* U+00044A */ + 463, /* U+00044B */ + 464, /* U+00044C */ + 465, /* U+00044D */ + 466, /* U+00044E */ + 467, /* U+00044F */ + 420, /* U+000450 */ + 421, /* U+000451 */ + 422, /* U+000452 */ + 423, /* U+000453 */ + 424, /* U+000454 */ + 425, /* U+000455 */ + 426, /* U+000456 */ + 427, /* U+000457 */ + 428, /* U+000458 */ + 429, /* U+000459 */ + 430, /* U+00045A */ + 431, /* U+00045B */ + 432, /* U+00045C */ + 433, /* U+00045D */ + 434, /* U+00045E */ + 435, /* U+00045F */ + 468, /* U+000460 */ + 468, /* U+000461 */ + 469, /* U+000462 */ + 469, /* U+000463 */ + 470, /* U+000464 */ + 470, /* U+000465 */ + 471, /* U+000466 */ + 471, /* U+000467 */ + 472, /* U+000468 */ + 472, /* U+000469 */ + 473, /* U+00046A */ + 473, /* U+00046B */ + 474, /* U+00046C */ + 474, /* U+00046D */ + 475, /* U+00046E */ + 475, /* U+00046F */ + 476, /* U+000470 */ + 476, /* U+000471 */ + 477, /* U+000472 */ + 477, /* U+000473 */ + 478, /* U+000474 */ + 478, /* U+000475 */ + 479, /* U+000476 */ + 479, /* U+000477 */ + 480, /* U+000478 */ + 480, /* U+000479 */ + 481, /* U+00047A */ + 481, /* U+00047B */ + 482, /* U+00047C */ + 482, /* U+00047D */ + 483, /* U+00047E */ + 483, /* U+00047F */ + 484, /* U+000480 */ + 484, /* U+000481 */ 0, /* U+000482 */ 0, /* U+000483 */ 0, /* U+000484 */ @@ -9761,211 +9896,211 @@ static const uint16 case_map[4631] = 0, /* U+000487 */ 0, /* U+000488 */ 0, /* U+000489 */ - 483, /* U+00048A */ - 483, /* U+00048B */ - 484, /* U+00048C */ - 484, /* U+00048D */ - 485, /* U+00048E */ - 485, /* U+00048F */ - 486, /* U+000490 */ - 486, /* U+000491 */ - 487, /* U+000492 */ - 487, /* U+000493 */ - 488, /* U+000494 */ - 488, /* U+000495 */ - 489, /* U+000496 */ - 489, /* U+000497 */ - 490, /* U+000498 */ - 490, /* U+000499 */ - 491, /* U+00049A */ - 491, /* U+00049B */ - 492, /* U+00049C */ - 492, /* U+00049D */ - 493, /* U+00049E */ - 493, /* U+00049F */ - 494, /* U+0004A0 */ - 494, /* U+0004A1 */ - 495, /* U+0004A2 */ - 495, /* U+0004A3 */ - 496, /* U+0004A4 */ - 496, /* U+0004A5 */ - 497, /* U+0004A6 */ - 497, /* U+0004A7 */ - 498, /* U+0004A8 */ - 498, /* U+0004A9 */ - 499, /* U+0004AA */ - 499, /* U+0004AB */ - 500, /* U+0004AC */ - 500, /* U+0004AD */ - 501, /* U+0004AE */ - 501, /* U+0004AF */ - 502, /* U+0004B0 */ - 502, /* U+0004B1 */ - 503, /* U+0004B2 */ - 503, /* U+0004B3 */ - 504, /* U+0004B4 */ - 504, /* U+0004B5 */ - 505, /* U+0004B6 */ - 505, /* U+0004B7 */ - 506, /* U+0004B8 */ - 506, /* U+0004B9 */ - 507, /* U+0004BA */ - 507, /* U+0004BB */ - 508, /* U+0004BC */ - 508, /* U+0004BD */ - 509, /* U+0004BE */ - 509, /* U+0004BF */ - 510, /* U+0004C0 */ - 511, /* U+0004C1 */ - 511, /* U+0004C2 */ - 512, /* U+0004C3 */ - 512, /* U+0004C4 */ - 513, /* U+0004C5 */ - 513, /* U+0004C6 */ - 514, /* U+0004C7 */ - 514, /* U+0004C8 */ - 515, /* U+0004C9 */ - 515, /* U+0004CA */ - 516, /* U+0004CB */ - 516, /* U+0004CC */ - 517, /* U+0004CD */ - 517, /* U+0004CE */ - 510, /* U+0004CF */ - 518, /* U+0004D0 */ - 518, /* U+0004D1 */ - 519, /* U+0004D2 */ - 519, /* U+0004D3 */ - 520, /* U+0004D4 */ - 520, /* U+0004D5 */ - 521, /* U+0004D6 */ - 521, /* U+0004D7 */ - 522, /* U+0004D8 */ - 522, /* U+0004D9 */ - 523, /* U+0004DA */ - 523, /* U+0004DB */ - 524, /* U+0004DC */ - 524, /* U+0004DD */ - 525, /* U+0004DE */ - 525, /* U+0004DF */ - 526, /* U+0004E0 */ - 526, /* U+0004E1 */ - 527, /* U+0004E2 */ - 527, /* U+0004E3 */ - 528, /* U+0004E4 */ - 528, /* U+0004E5 */ - 529, /* U+0004E6 */ - 529, /* U+0004E7 */ - 530, /* U+0004E8 */ - 530, /* U+0004E9 */ - 531, /* U+0004EA */ - 531, /* U+0004EB */ - 532, /* U+0004EC */ - 532, /* U+0004ED */ - 533, /* U+0004EE */ - 533, /* U+0004EF */ - 534, /* U+0004F0 */ - 534, /* U+0004F1 */ - 535, /* U+0004F2 */ - 535, /* U+0004F3 */ - 536, /* U+0004F4 */ - 536, /* U+0004F5 */ - 537, /* U+0004F6 */ - 537, /* U+0004F7 */ - 538, /* U+0004F8 */ - 538, /* U+0004F9 */ - 539, /* U+0004FA */ - 539, /* U+0004FB */ - 540, /* U+0004FC */ - 540, /* U+0004FD */ - 541, /* U+0004FE */ - 541, /* U+0004FF */ - 542, /* U+000500 */ - 542, /* U+000501 */ - 543, /* U+000502 */ - 543, /* U+000503 */ - 544, /* U+000504 */ - 544, /* U+000505 */ - 545, /* U+000506 */ - 545, /* U+000507 */ - 546, /* U+000508 */ - 546, /* U+000509 */ - 547, /* U+00050A */ - 547, /* U+00050B */ - 548, /* U+00050C */ - 548, /* U+00050D */ - 549, /* U+00050E */ - 549, /* U+00050F */ - 550, /* U+000510 */ - 550, /* U+000511 */ - 551, /* U+000512 */ - 551, /* U+000513 */ - 552, /* U+000514 */ - 552, /* U+000515 */ - 553, /* U+000516 */ - 553, /* U+000517 */ - 554, /* U+000518 */ - 554, /* U+000519 */ - 555, /* U+00051A */ - 555, /* U+00051B */ - 556, /* U+00051C */ - 556, /* U+00051D */ - 557, /* U+00051E */ - 557, /* U+00051F */ - 558, /* U+000520 */ - 558, /* U+000521 */ - 559, /* U+000522 */ - 559, /* U+000523 */ - 560, /* U+000524 */ - 560, /* U+000525 */ - 561, /* U+000526 */ - 561, /* U+000527 */ - 562, /* U+000528 */ - 562, /* U+000529 */ - 563, /* U+00052A */ - 563, /* U+00052B */ - 564, /* U+00052C */ - 564, /* U+00052D */ - 565, /* U+00052E */ - 565, /* U+00052F */ + 485, /* U+00048A */ + 485, /* U+00048B */ + 486, /* U+00048C */ + 486, /* U+00048D */ + 487, /* U+00048E */ + 487, /* U+00048F */ + 488, /* U+000490 */ + 488, /* U+000491 */ + 489, /* U+000492 */ + 489, /* U+000493 */ + 490, /* U+000494 */ + 490, /* U+000495 */ + 491, /* U+000496 */ + 491, /* U+000497 */ + 492, /* U+000498 */ + 492, /* U+000499 */ + 493, /* U+00049A */ + 493, /* U+00049B */ + 494, /* U+00049C */ + 494, /* U+00049D */ + 495, /* U+00049E */ + 495, /* U+00049F */ + 496, /* U+0004A0 */ + 496, /* U+0004A1 */ + 497, /* U+0004A2 */ + 497, /* U+0004A3 */ + 498, /* U+0004A4 */ + 498, /* U+0004A5 */ + 499, /* U+0004A6 */ + 499, /* U+0004A7 */ + 500, /* U+0004A8 */ + 500, /* U+0004A9 */ + 501, /* U+0004AA */ + 501, /* U+0004AB */ + 502, /* U+0004AC */ + 502, /* U+0004AD */ + 503, /* U+0004AE */ + 503, /* U+0004AF */ + 504, /* U+0004B0 */ + 504, /* U+0004B1 */ + 505, /* U+0004B2 */ + 505, /* U+0004B3 */ + 506, /* U+0004B4 */ + 506, /* U+0004B5 */ + 507, /* U+0004B6 */ + 507, /* U+0004B7 */ + 508, /* U+0004B8 */ + 508, /* U+0004B9 */ + 509, /* U+0004BA */ + 509, /* U+0004BB */ + 510, /* U+0004BC */ + 510, /* U+0004BD */ + 511, /* U+0004BE */ + 511, /* U+0004BF */ + 512, /* U+0004C0 */ + 513, /* U+0004C1 */ + 513, /* U+0004C2 */ + 514, /* U+0004C3 */ + 514, /* U+0004C4 */ + 515, /* U+0004C5 */ + 515, /* U+0004C6 */ + 516, /* U+0004C7 */ + 516, /* U+0004C8 */ + 517, /* U+0004C9 */ + 517, /* U+0004CA */ + 518, /* U+0004CB */ + 518, /* U+0004CC */ + 519, /* U+0004CD */ + 519, /* U+0004CE */ + 512, /* U+0004CF */ + 520, /* U+0004D0 */ + 520, /* U+0004D1 */ + 521, /* U+0004D2 */ + 521, /* U+0004D3 */ + 522, /* U+0004D4 */ + 522, /* U+0004D5 */ + 523, /* U+0004D6 */ + 523, /* U+0004D7 */ + 524, /* U+0004D8 */ + 524, /* U+0004D9 */ + 525, /* U+0004DA */ + 525, /* U+0004DB */ + 526, /* U+0004DC */ + 526, /* U+0004DD */ + 527, /* U+0004DE */ + 527, /* U+0004DF */ + 528, /* U+0004E0 */ + 528, /* U+0004E1 */ + 529, /* U+0004E2 */ + 529, /* U+0004E3 */ + 530, /* U+0004E4 */ + 530, /* U+0004E5 */ + 531, /* U+0004E6 */ + 531, /* U+0004E7 */ + 532, /* U+0004E8 */ + 532, /* U+0004E9 */ + 533, /* U+0004EA */ + 533, /* U+0004EB */ + 534, /* U+0004EC */ + 534, /* U+0004ED */ + 535, /* U+0004EE */ + 535, /* U+0004EF */ + 536, /* U+0004F0 */ + 536, /* U+0004F1 */ + 537, /* U+0004F2 */ + 537, /* U+0004F3 */ + 538, /* U+0004F4 */ + 538, /* U+0004F5 */ + 539, /* U+0004F6 */ + 539, /* U+0004F7 */ + 540, /* U+0004F8 */ + 540, /* U+0004F9 */ + 541, /* U+0004FA */ + 541, /* U+0004FB */ + 542, /* U+0004FC */ + 542, /* U+0004FD */ + 543, /* U+0004FE */ + 543, /* U+0004FF */ + 544, /* U+000500 */ + 544, /* U+000501 */ + 545, /* U+000502 */ + 545, /* U+000503 */ + 546, /* U+000504 */ + 546, /* U+000505 */ + 547, /* U+000506 */ + 547, /* U+000507 */ + 548, /* U+000508 */ + 548, /* U+000509 */ + 549, /* U+00050A */ + 549, /* U+00050B */ + 550, /* U+00050C */ + 550, /* U+00050D */ + 551, /* U+00050E */ + 551, /* U+00050F */ + 552, /* U+000510 */ + 552, /* U+000511 */ + 553, /* U+000512 */ + 553, /* U+000513 */ + 554, /* U+000514 */ + 554, /* U+000515 */ + 555, /* U+000516 */ + 555, /* U+000517 */ + 556, /* U+000518 */ + 556, /* U+000519 */ + 557, /* U+00051A */ + 557, /* U+00051B */ + 558, /* U+00051C */ + 558, /* U+00051D */ + 559, /* U+00051E */ + 559, /* U+00051F */ + 560, /* U+000520 */ + 560, /* U+000521 */ + 561, /* U+000522 */ + 561, /* U+000523 */ + 562, /* U+000524 */ + 562, /* U+000525 */ + 563, /* U+000526 */ + 563, /* U+000527 */ + 564, /* U+000528 */ + 564, /* U+000529 */ + 565, /* U+00052A */ + 565, /* U+00052B */ + 566, /* U+00052C */ + 566, /* U+00052D */ + 567, /* U+00052E */ + 567, /* U+00052F */ 0, /* U+000530 */ - 566, /* U+000531 */ - 567, /* U+000532 */ - 568, /* U+000533 */ - 569, /* U+000534 */ - 570, /* U+000535 */ - 571, /* U+000536 */ - 572, /* U+000537 */ - 573, /* U+000538 */ - 574, /* U+000539 */ - 575, /* U+00053A */ - 576, /* U+00053B */ - 577, /* U+00053C */ - 578, /* U+00053D */ - 579, /* U+00053E */ - 580, /* U+00053F */ - 581, /* U+000540 */ - 582, /* U+000541 */ - 583, /* U+000542 */ - 584, /* U+000543 */ - 585, /* U+000544 */ - 586, /* U+000545 */ - 587, /* U+000546 */ - 588, /* U+000547 */ - 589, /* U+000548 */ - 590, /* U+000549 */ - 591, /* U+00054A */ - 592, /* U+00054B */ - 593, /* U+00054C */ - 594, /* U+00054D */ - 595, /* U+00054E */ - 596, /* U+00054F */ - 597, /* U+000550 */ - 598, /* U+000551 */ - 599, /* U+000552 */ - 600, /* U+000553 */ - 601, /* U+000554 */ - 602, /* U+000555 */ - 603, /* U+000556 */ + 568, /* U+000531 */ + 569, /* U+000532 */ + 570, /* U+000533 */ + 571, /* U+000534 */ + 572, /* U+000535 */ + 573, /* U+000536 */ + 574, /* U+000537 */ + 575, /* U+000538 */ + 576, /* U+000539 */ + 577, /* U+00053A */ + 578, /* U+00053B */ + 579, /* U+00053C */ + 580, /* U+00053D */ + 581, /* U+00053E */ + 582, /* U+00053F */ + 583, /* U+000540 */ + 584, /* U+000541 */ + 585, /* U+000542 */ + 586, /* U+000543 */ + 587, /* U+000544 */ + 588, /* U+000545 */ + 589, /* U+000546 */ + 590, /* U+000547 */ + 591, /* U+000548 */ + 592, /* U+000549 */ + 593, /* U+00054A */ + 594, /* U+00054B */ + 595, /* U+00054C */ + 596, /* U+00054D */ + 597, /* U+00054E */ + 598, /* U+00054F */ + 599, /* U+000550 */ + 600, /* U+000551 */ + 601, /* U+000552 */ + 602, /* U+000553 */ + 603, /* U+000554 */ + 604, /* U+000555 */ + 605, /* U+000556 */ 0, /* U+000557 */ 0, /* U+000558 */ 0, /* U+000559 */ @@ -9976,299 +10111,299 @@ static const uint16 case_map[4631] = 0, /* U+00055E */ 0, /* U+00055F */ 0, /* U+000560 */ - 566, /* U+000561 */ - 567, /* U+000562 */ - 568, /* U+000563 */ - 569, /* U+000564 */ - 570, /* U+000565 */ - 571, /* U+000566 */ - 572, /* U+000567 */ - 573, /* U+000568 */ - 574, /* U+000569 */ - 575, /* U+00056A */ - 576, /* U+00056B */ - 577, /* U+00056C */ - 578, /* U+00056D */ - 579, /* U+00056E */ - 580, /* U+00056F */ - 581, /* U+000570 */ - 582, /* U+000571 */ - 583, /* U+000572 */ - 584, /* U+000573 */ - 585, /* U+000574 */ - 586, /* U+000575 */ - 587, /* U+000576 */ - 588, /* U+000577 */ - 589, /* U+000578 */ - 590, /* U+000579 */ - 591, /* U+00057A */ - 592, /* U+00057B */ - 593, /* U+00057C */ - 594, /* U+00057D */ - 595, /* U+00057E */ - 596, /* U+00057F */ - 597, /* U+000580 */ - 598, /* U+000581 */ - 599, /* U+000582 */ - 600, /* U+000583 */ - 601, /* U+000584 */ - 602, /* U+000585 */ - 603, /* U+000586 */ - 604, /* U+000587 */ - 605, /* U+0010A0 */ - 606, /* U+0010A1 */ - 607, /* U+0010A2 */ - 608, /* U+0010A3 */ - 609, /* U+0010A4 */ - 610, /* U+0010A5 */ - 611, /* U+0010A6 */ - 612, /* U+0010A7 */ - 613, /* U+0010A8 */ - 614, /* U+0010A9 */ - 615, /* U+0010AA */ - 616, /* U+0010AB */ - 617, /* U+0010AC */ - 618, /* U+0010AD */ - 619, /* U+0010AE */ - 620, /* U+0010AF */ - 621, /* U+0010B0 */ - 622, /* U+0010B1 */ - 623, /* U+0010B2 */ - 624, /* U+0010B3 */ - 625, /* U+0010B4 */ - 626, /* U+0010B5 */ - 627, /* U+0010B6 */ - 628, /* U+0010B7 */ - 629, /* U+0010B8 */ - 630, /* U+0010B9 */ - 631, /* U+0010BA */ - 632, /* U+0010BB */ - 633, /* U+0010BC */ - 634, /* U+0010BD */ - 635, /* U+0010BE */ - 636, /* U+0010BF */ - 637, /* U+0010C0 */ - 638, /* U+0010C1 */ - 639, /* U+0010C2 */ - 640, /* U+0010C3 */ - 641, /* U+0010C4 */ - 642, /* U+0010C5 */ + 568, /* U+000561 */ + 569, /* U+000562 */ + 570, /* U+000563 */ + 571, /* U+000564 */ + 572, /* U+000565 */ + 573, /* U+000566 */ + 574, /* U+000567 */ + 575, /* U+000568 */ + 576, /* U+000569 */ + 577, /* U+00056A */ + 578, /* U+00056B */ + 579, /* U+00056C */ + 580, /* U+00056D */ + 581, /* U+00056E */ + 582, /* U+00056F */ + 583, /* U+000570 */ + 584, /* U+000571 */ + 585, /* U+000572 */ + 586, /* U+000573 */ + 587, /* U+000574 */ + 588, /* U+000575 */ + 589, /* U+000576 */ + 590, /* U+000577 */ + 591, /* U+000578 */ + 592, /* U+000579 */ + 593, /* U+00057A */ + 594, /* U+00057B */ + 595, /* U+00057C */ + 596, /* U+00057D */ + 597, /* U+00057E */ + 598, /* U+00057F */ + 599, /* U+000580 */ + 600, /* U+000581 */ + 601, /* U+000582 */ + 602, /* U+000583 */ + 603, /* U+000584 */ + 604, /* U+000585 */ + 605, /* U+000586 */ + 606, /* U+000587 */ + 607, /* U+0010A0 */ + 608, /* U+0010A1 */ + 609, /* U+0010A2 */ + 610, /* U+0010A3 */ + 611, /* U+0010A4 */ + 612, /* U+0010A5 */ + 613, /* U+0010A6 */ + 614, /* U+0010A7 */ + 615, /* U+0010A8 */ + 616, /* U+0010A9 */ + 617, /* U+0010AA */ + 618, /* U+0010AB */ + 619, /* U+0010AC */ + 620, /* U+0010AD */ + 621, /* U+0010AE */ + 622, /* U+0010AF */ + 623, /* U+0010B0 */ + 624, /* U+0010B1 */ + 625, /* U+0010B2 */ + 626, /* U+0010B3 */ + 627, /* U+0010B4 */ + 628, /* U+0010B5 */ + 629, /* U+0010B6 */ + 630, /* U+0010B7 */ + 631, /* U+0010B8 */ + 632, /* U+0010B9 */ + 633, /* U+0010BA */ + 634, /* U+0010BB */ + 635, /* U+0010BC */ + 636, /* U+0010BD */ + 637, /* U+0010BE */ + 638, /* U+0010BF */ + 639, /* U+0010C0 */ + 640, /* U+0010C1 */ + 641, /* U+0010C2 */ + 642, /* U+0010C3 */ + 643, /* U+0010C4 */ + 644, /* U+0010C5 */ 0, /* U+0010C6 */ - 643, /* U+0010C7 */ + 645, /* U+0010C7 */ 0, /* U+0010C8 */ 0, /* U+0010C9 */ 0, /* U+0010CA */ 0, /* U+0010CB */ 0, /* U+0010CC */ - 644, /* U+0010CD */ + 646, /* U+0010CD */ 0, /* U+0010CE */ 0, /* U+0010CF */ - 645, /* U+0010D0 */ - 646, /* U+0010D1 */ - 647, /* U+0010D2 */ - 648, /* U+0010D3 */ - 649, /* U+0010D4 */ - 650, /* U+0010D5 */ - 651, /* U+0010D6 */ - 652, /* U+0010D7 */ - 653, /* U+0010D8 */ - 654, /* U+0010D9 */ - 655, /* U+0010DA */ - 656, /* U+0010DB */ - 657, /* U+0010DC */ - 658, /* U+0010DD */ - 659, /* U+0010DE */ - 660, /* U+0010DF */ - 661, /* U+0010E0 */ - 662, /* U+0010E1 */ - 663, /* U+0010E2 */ - 664, /* U+0010E3 */ - 665, /* U+0010E4 */ - 666, /* U+0010E5 */ - 667, /* U+0010E6 */ - 668, /* U+0010E7 */ - 669, /* U+0010E8 */ - 670, /* U+0010E9 */ - 671, /* U+0010EA */ - 672, /* U+0010EB */ - 673, /* U+0010EC */ - 674, /* U+0010ED */ - 675, /* U+0010EE */ - 676, /* U+0010EF */ - 677, /* U+0010F0 */ - 678, /* U+0010F1 */ - 679, /* U+0010F2 */ - 680, /* U+0010F3 */ - 681, /* U+0010F4 */ - 682, /* U+0010F5 */ - 683, /* U+0010F6 */ - 684, /* U+0010F7 */ - 685, /* U+0010F8 */ - 686, /* U+0010F9 */ - 687, /* U+0010FA */ + 647, /* U+0010D0 */ + 648, /* U+0010D1 */ + 649, /* U+0010D2 */ + 650, /* U+0010D3 */ + 651, /* U+0010D4 */ + 652, /* U+0010D5 */ + 653, /* U+0010D6 */ + 654, /* U+0010D7 */ + 655, /* U+0010D8 */ + 656, /* U+0010D9 */ + 657, /* U+0010DA */ + 658, /* U+0010DB */ + 659, /* U+0010DC */ + 660, /* U+0010DD */ + 661, /* U+0010DE */ + 662, /* U+0010DF */ + 663, /* U+0010E0 */ + 664, /* U+0010E1 */ + 665, /* U+0010E2 */ + 666, /* U+0010E3 */ + 667, /* U+0010E4 */ + 668, /* U+0010E5 */ + 669, /* U+0010E6 */ + 670, /* U+0010E7 */ + 671, /* U+0010E8 */ + 672, /* U+0010E9 */ + 673, /* U+0010EA */ + 674, /* U+0010EB */ + 675, /* U+0010EC */ + 676, /* U+0010ED */ + 677, /* U+0010EE */ + 678, /* U+0010EF */ + 679, /* U+0010F0 */ + 680, /* U+0010F1 */ + 681, /* U+0010F2 */ + 682, /* U+0010F3 */ + 683, /* U+0010F4 */ + 684, /* U+0010F5 */ + 685, /* U+0010F6 */ + 686, /* U+0010F7 */ + 687, /* U+0010F8 */ + 688, /* U+0010F9 */ + 689, /* U+0010FA */ 0, /* U+0010FB */ 0, /* U+0010FC */ - 688, /* U+0010FD */ - 689, /* U+0010FE */ - 690, /* U+0010FF */ - 691, /* U+0013A0 */ - 692, /* U+0013A1 */ - 693, /* U+0013A2 */ - 694, /* U+0013A3 */ - 695, /* U+0013A4 */ - 696, /* U+0013A5 */ - 697, /* U+0013A6 */ - 698, /* U+0013A7 */ - 699, /* U+0013A8 */ - 700, /* U+0013A9 */ - 701, /* U+0013AA */ - 702, /* U+0013AB */ - 703, /* U+0013AC */ - 704, /* U+0013AD */ - 705, /* U+0013AE */ - 706, /* U+0013AF */ - 707, /* U+0013B0 */ - 708, /* U+0013B1 */ - 709, /* U+0013B2 */ - 710, /* U+0013B3 */ - 711, /* U+0013B4 */ - 712, /* U+0013B5 */ - 713, /* U+0013B6 */ - 714, /* U+0013B7 */ - 715, /* U+0013B8 */ - 716, /* U+0013B9 */ - 717, /* U+0013BA */ - 718, /* U+0013BB */ - 719, /* U+0013BC */ - 720, /* U+0013BD */ - 721, /* U+0013BE */ - 722, /* U+0013BF */ - 723, /* U+0013C0 */ - 724, /* U+0013C1 */ - 725, /* U+0013C2 */ - 726, /* U+0013C3 */ - 727, /* U+0013C4 */ - 728, /* U+0013C5 */ - 729, /* U+0013C6 */ - 730, /* U+0013C7 */ - 731, /* U+0013C8 */ - 732, /* U+0013C9 */ - 733, /* U+0013CA */ - 734, /* U+0013CB */ - 735, /* U+0013CC */ - 736, /* U+0013CD */ - 737, /* U+0013CE */ - 738, /* U+0013CF */ - 739, /* U+0013D0 */ - 740, /* U+0013D1 */ - 741, /* U+0013D2 */ - 742, /* U+0013D3 */ - 743, /* U+0013D4 */ - 744, /* U+0013D5 */ - 745, /* U+0013D6 */ - 746, /* U+0013D7 */ - 747, /* U+0013D8 */ - 748, /* U+0013D9 */ - 749, /* U+0013DA */ - 750, /* U+0013DB */ - 751, /* U+0013DC */ - 752, /* U+0013DD */ - 753, /* U+0013DE */ - 754, /* U+0013DF */ - 755, /* U+0013E0 */ - 756, /* U+0013E1 */ - 757, /* U+0013E2 */ - 758, /* U+0013E3 */ - 759, /* U+0013E4 */ - 760, /* U+0013E5 */ - 761, /* U+0013E6 */ - 762, /* U+0013E7 */ - 763, /* U+0013E8 */ - 764, /* U+0013E9 */ - 765, /* U+0013EA */ - 766, /* U+0013EB */ - 767, /* U+0013EC */ - 768, /* U+0013ED */ - 769, /* U+0013EE */ - 770, /* U+0013EF */ - 771, /* U+0013F0 */ - 772, /* U+0013F1 */ - 773, /* U+0013F2 */ - 774, /* U+0013F3 */ - 775, /* U+0013F4 */ - 776, /* U+0013F5 */ + 690, /* U+0010FD */ + 691, /* U+0010FE */ + 692, /* U+0010FF */ + 693, /* U+0013A0 */ + 694, /* U+0013A1 */ + 695, /* U+0013A2 */ + 696, /* U+0013A3 */ + 697, /* U+0013A4 */ + 698, /* U+0013A5 */ + 699, /* U+0013A6 */ + 700, /* U+0013A7 */ + 701, /* U+0013A8 */ + 702, /* U+0013A9 */ + 703, /* U+0013AA */ + 704, /* U+0013AB */ + 705, /* U+0013AC */ + 706, /* U+0013AD */ + 707, /* U+0013AE */ + 708, /* U+0013AF */ + 709, /* U+0013B0 */ + 710, /* U+0013B1 */ + 711, /* U+0013B2 */ + 712, /* U+0013B3 */ + 713, /* U+0013B4 */ + 714, /* U+0013B5 */ + 715, /* U+0013B6 */ + 716, /* U+0013B7 */ + 717, /* U+0013B8 */ + 718, /* U+0013B9 */ + 719, /* U+0013BA */ + 720, /* U+0013BB */ + 721, /* U+0013BC */ + 722, /* U+0013BD */ + 723, /* U+0013BE */ + 724, /* U+0013BF */ + 725, /* U+0013C0 */ + 726, /* U+0013C1 */ + 727, /* U+0013C2 */ + 728, /* U+0013C3 */ + 729, /* U+0013C4 */ + 730, /* U+0013C5 */ + 731, /* U+0013C6 */ + 732, /* U+0013C7 */ + 733, /* U+0013C8 */ + 734, /* U+0013C9 */ + 735, /* U+0013CA */ + 736, /* U+0013CB */ + 737, /* U+0013CC */ + 738, /* U+0013CD */ + 739, /* U+0013CE */ + 740, /* U+0013CF */ + 741, /* U+0013D0 */ + 742, /* U+0013D1 */ + 743, /* U+0013D2 */ + 744, /* U+0013D3 */ + 745, /* U+0013D4 */ + 746, /* U+0013D5 */ + 747, /* U+0013D6 */ + 748, /* U+0013D7 */ + 749, /* U+0013D8 */ + 750, /* U+0013D9 */ + 751, /* U+0013DA */ + 752, /* U+0013DB */ + 753, /* U+0013DC */ + 754, /* U+0013DD */ + 755, /* U+0013DE */ + 756, /* U+0013DF */ + 757, /* U+0013E0 */ + 758, /* U+0013E1 */ + 759, /* U+0013E2 */ + 760, /* U+0013E3 */ + 761, /* U+0013E4 */ + 762, /* U+0013E5 */ + 763, /* U+0013E6 */ + 764, /* U+0013E7 */ + 765, /* U+0013E8 */ + 766, /* U+0013E9 */ + 767, /* U+0013EA */ + 768, /* U+0013EB */ + 769, /* U+0013EC */ + 770, /* U+0013ED */ + 771, /* U+0013EE */ + 772, /* U+0013EF */ + 773, /* U+0013F0 */ + 774, /* U+0013F1 */ + 775, /* U+0013F2 */ + 776, /* U+0013F3 */ + 777, /* U+0013F4 */ + 778, /* U+0013F5 */ 0, /* U+0013F6 */ 0, /* U+0013F7 */ - 771, /* U+0013F8 */ - 772, /* U+0013F9 */ - 773, /* U+0013FA */ - 774, /* U+0013FB */ - 775, /* U+0013FC */ - 776, /* U+0013FD */ - 777, /* U+001C80 */ - 778, /* U+001C81 */ - 779, /* U+001C82 */ - 780, /* U+001C83 */ - 781, /* U+001C84 */ - 782, /* U+001C85 */ - 783, /* U+001C86 */ - 784, /* U+001C87 */ - 785, /* U+001C88 */ - 0, /* U+001C89 */ - 0, /* U+001C8A */ + 773, /* U+0013F8 */ + 774, /* U+0013F9 */ + 775, /* U+0013FA */ + 776, /* U+0013FB */ + 777, /* U+0013FC */ + 778, /* U+0013FD */ + 779, /* U+001C80 */ + 780, /* U+001C81 */ + 781, /* U+001C82 */ + 782, /* U+001C83 */ + 783, /* U+001C84 */ + 784, /* U+001C85 */ + 785, /* U+001C86 */ + 786, /* U+001C87 */ + 787, /* U+001C88 */ + 788, /* U+001C89 */ + 788, /* U+001C8A */ 0, /* U+001C8B */ 0, /* U+001C8C */ 0, /* U+001C8D */ 0, /* U+001C8E */ 0, /* U+001C8F */ - 786, /* U+001C90 */ - 787, /* U+001C91 */ - 788, /* U+001C92 */ - 789, /* U+001C93 */ - 790, /* U+001C94 */ - 791, /* U+001C95 */ - 792, /* U+001C96 */ - 793, /* U+001C97 */ - 794, /* U+001C98 */ - 795, /* U+001C99 */ - 796, /* U+001C9A */ - 797, /* U+001C9B */ - 798, /* U+001C9C */ - 799, /* U+001C9D */ - 800, /* U+001C9E */ - 801, /* U+001C9F */ - 802, /* U+001CA0 */ - 803, /* U+001CA1 */ - 804, /* U+001CA2 */ - 805, /* U+001CA3 */ - 806, /* U+001CA4 */ - 807, /* U+001CA5 */ - 808, /* U+001CA6 */ - 809, /* U+001CA7 */ - 810, /* U+001CA8 */ - 811, /* U+001CA9 */ - 812, /* U+001CAA */ - 813, /* U+001CAB */ - 814, /* U+001CAC */ - 815, /* U+001CAD */ - 816, /* U+001CAE */ - 817, /* U+001CAF */ - 818, /* U+001CB0 */ - 819, /* U+001CB1 */ - 820, /* U+001CB2 */ - 821, /* U+001CB3 */ - 822, /* U+001CB4 */ - 823, /* U+001CB5 */ - 824, /* U+001CB6 */ - 825, /* U+001CB7 */ - 826, /* U+001CB8 */ - 827, /* U+001CB9 */ - 828, /* U+001CBA */ + 789, /* U+001C90 */ + 790, /* U+001C91 */ + 791, /* U+001C92 */ + 792, /* U+001C93 */ + 793, /* U+001C94 */ + 794, /* U+001C95 */ + 795, /* U+001C96 */ + 796, /* U+001C97 */ + 797, /* U+001C98 */ + 798, /* U+001C99 */ + 799, /* U+001C9A */ + 800, /* U+001C9B */ + 801, /* U+001C9C */ + 802, /* U+001C9D */ + 803, /* U+001C9E */ + 804, /* U+001C9F */ + 805, /* U+001CA0 */ + 806, /* U+001CA1 */ + 807, /* U+001CA2 */ + 808, /* U+001CA3 */ + 809, /* U+001CA4 */ + 810, /* U+001CA5 */ + 811, /* U+001CA6 */ + 812, /* U+001CA7 */ + 813, /* U+001CA8 */ + 814, /* U+001CA9 */ + 815, /* U+001CAA */ + 816, /* U+001CAB */ + 817, /* U+001CAC */ + 818, /* U+001CAD */ + 819, /* U+001CAE */ + 820, /* U+001CAF */ + 821, /* U+001CB0 */ + 822, /* U+001CB1 */ + 823, /* U+001CB2 */ + 824, /* U+001CB3 */ + 825, /* U+001CB4 */ + 826, /* U+001CB5 */ + 827, /* U+001CB6 */ + 828, /* U+001CB7 */ + 829, /* U+001CB8 */ + 830, /* U+001CB9 */ + 831, /* U+001CBA */ 0, /* U+001CBB */ 0, /* U+001CBC */ - 829, /* U+001CBD */ - 830, /* U+001CBE */ - 831, /* U+001CBF */ + 832, /* U+001CBD */ + 833, /* U+001CBE */ + 834, /* U+001CBF */ 0, /* U+001CC0 */ 0, /* U+001CC1 */ 0, /* U+001CC2 */ @@ -10454,11 +10589,11 @@ static const uint16 case_map[4631] = 0, /* U+001D76 */ 0, /* U+001D77 */ 0, /* U+001D78 */ - 832, /* U+001D79 */ + 835, /* U+001D79 */ 0, /* U+001D7A */ 0, /* U+001D7B */ 0, /* U+001D7C */ - 833, /* U+001D7D */ + 836, /* U+001D7D */ 0, /* U+001D7E */ 0, /* U+001D7F */ 0, /* U+001D80 */ @@ -10475,7 +10610,7 @@ static const uint16 case_map[4631] = 0, /* U+001D8B */ 0, /* U+001D8C */ 0, /* U+001D8D */ - 834, /* U+001D8E */ + 837, /* U+001D8E */ 0, /* U+001D8F */ 0, /* U+001D90 */ 0, /* U+001D91 */ @@ -10589,515 +10724,515 @@ static const uint16 case_map[4631] = 0, /* U+001DFD */ 0, /* U+001DFE */ 0, /* U+001DFF */ - 835, /* U+001E00 */ - 835, /* U+001E01 */ - 836, /* U+001E02 */ - 836, /* U+001E03 */ - 837, /* U+001E04 */ - 837, /* U+001E05 */ - 838, /* U+001E06 */ - 838, /* U+001E07 */ - 839, /* U+001E08 */ - 839, /* U+001E09 */ - 840, /* U+001E0A */ - 840, /* U+001E0B */ - 841, /* U+001E0C */ - 841, /* U+001E0D */ - 842, /* U+001E0E */ - 842, /* U+001E0F */ - 843, /* U+001E10 */ - 843, /* U+001E11 */ - 844, /* U+001E12 */ - 844, /* U+001E13 */ - 845, /* U+001E14 */ - 845, /* U+001E15 */ - 846, /* U+001E16 */ - 846, /* U+001E17 */ - 847, /* U+001E18 */ - 847, /* U+001E19 */ - 848, /* U+001E1A */ - 848, /* U+001E1B */ - 849, /* U+001E1C */ - 849, /* U+001E1D */ - 850, /* U+001E1E */ - 850, /* U+001E1F */ - 851, /* U+001E20 */ - 851, /* U+001E21 */ - 852, /* U+001E22 */ - 852, /* U+001E23 */ - 853, /* U+001E24 */ - 853, /* U+001E25 */ - 854, /* U+001E26 */ - 854, /* U+001E27 */ - 855, /* U+001E28 */ - 855, /* U+001E29 */ - 856, /* U+001E2A */ - 856, /* U+001E2B */ - 857, /* U+001E2C */ - 857, /* U+001E2D */ - 858, /* U+001E2E */ - 858, /* U+001E2F */ - 859, /* U+001E30 */ - 859, /* U+001E31 */ - 860, /* U+001E32 */ - 860, /* U+001E33 */ - 861, /* U+001E34 */ - 861, /* U+001E35 */ - 862, /* U+001E36 */ - 862, /* U+001E37 */ - 863, /* U+001E38 */ - 863, /* U+001E39 */ - 864, /* U+001E3A */ - 864, /* U+001E3B */ - 865, /* U+001E3C */ - 865, /* U+001E3D */ - 866, /* U+001E3E */ - 866, /* U+001E3F */ - 867, /* U+001E40 */ - 867, /* U+001E41 */ - 868, /* U+001E42 */ - 868, /* U+001E43 */ - 869, /* U+001E44 */ - 869, /* U+001E45 */ - 870, /* U+001E46 */ - 870, /* U+001E47 */ - 871, /* U+001E48 */ - 871, /* U+001E49 */ - 872, /* U+001E4A */ - 872, /* U+001E4B */ - 873, /* U+001E4C */ - 873, /* U+001E4D */ - 874, /* U+001E4E */ - 874, /* U+001E4F */ - 875, /* U+001E50 */ - 875, /* U+001E51 */ - 876, /* U+001E52 */ - 876, /* U+001E53 */ - 877, /* U+001E54 */ - 877, /* U+001E55 */ - 878, /* U+001E56 */ - 878, /* U+001E57 */ - 879, /* U+001E58 */ - 879, /* U+001E59 */ - 880, /* U+001E5A */ - 880, /* U+001E5B */ - 881, /* U+001E5C */ - 881, /* U+001E5D */ - 882, /* U+001E5E */ - 882, /* U+001E5F */ - 883, /* U+001E60 */ - 883, /* U+001E61 */ - 884, /* U+001E62 */ - 884, /* U+001E63 */ - 885, /* U+001E64 */ - 885, /* U+001E65 */ - 886, /* U+001E66 */ - 886, /* U+001E67 */ - 887, /* U+001E68 */ - 887, /* U+001E69 */ - 888, /* U+001E6A */ - 888, /* U+001E6B */ - 889, /* U+001E6C */ - 889, /* U+001E6D */ - 890, /* U+001E6E */ - 890, /* U+001E6F */ - 891, /* U+001E70 */ - 891, /* U+001E71 */ - 892, /* U+001E72 */ - 892, /* U+001E73 */ - 893, /* U+001E74 */ - 893, /* U+001E75 */ - 894, /* U+001E76 */ - 894, /* U+001E77 */ - 895, /* U+001E78 */ - 895, /* U+001E79 */ - 896, /* U+001E7A */ - 896, /* U+001E7B */ - 897, /* U+001E7C */ - 897, /* U+001E7D */ - 898, /* U+001E7E */ - 898, /* U+001E7F */ - 899, /* U+001E80 */ - 899, /* U+001E81 */ - 900, /* U+001E82 */ - 900, /* U+001E83 */ - 901, /* U+001E84 */ - 901, /* U+001E85 */ - 902, /* U+001E86 */ - 902, /* U+001E87 */ - 903, /* U+001E88 */ - 903, /* U+001E89 */ - 904, /* U+001E8A */ - 904, /* U+001E8B */ - 905, /* U+001E8C */ - 905, /* U+001E8D */ - 906, /* U+001E8E */ - 906, /* U+001E8F */ - 907, /* U+001E90 */ - 907, /* U+001E91 */ - 908, /* U+001E92 */ - 908, /* U+001E93 */ - 909, /* U+001E94 */ - 909, /* U+001E95 */ - 910, /* U+001E96 */ - 911, /* U+001E97 */ - 912, /* U+001E98 */ - 913, /* U+001E99 */ - 914, /* U+001E9A */ - 915, /* U+001E9B */ + 838, /* U+001E00 */ + 838, /* U+001E01 */ + 839, /* U+001E02 */ + 839, /* U+001E03 */ + 840, /* U+001E04 */ + 840, /* U+001E05 */ + 841, /* U+001E06 */ + 841, /* U+001E07 */ + 842, /* U+001E08 */ + 842, /* U+001E09 */ + 843, /* U+001E0A */ + 843, /* U+001E0B */ + 844, /* U+001E0C */ + 844, /* U+001E0D */ + 845, /* U+001E0E */ + 845, /* U+001E0F */ + 846, /* U+001E10 */ + 846, /* U+001E11 */ + 847, /* U+001E12 */ + 847, /* U+001E13 */ + 848, /* U+001E14 */ + 848, /* U+001E15 */ + 849, /* U+001E16 */ + 849, /* U+001E17 */ + 850, /* U+001E18 */ + 850, /* U+001E19 */ + 851, /* U+001E1A */ + 851, /* U+001E1B */ + 852, /* U+001E1C */ + 852, /* U+001E1D */ + 853, /* U+001E1E */ + 853, /* U+001E1F */ + 854, /* U+001E20 */ + 854, /* U+001E21 */ + 855, /* U+001E22 */ + 855, /* U+001E23 */ + 856, /* U+001E24 */ + 856, /* U+001E25 */ + 857, /* U+001E26 */ + 857, /* U+001E27 */ + 858, /* U+001E28 */ + 858, /* U+001E29 */ + 859, /* U+001E2A */ + 859, /* U+001E2B */ + 860, /* U+001E2C */ + 860, /* U+001E2D */ + 861, /* U+001E2E */ + 861, /* U+001E2F */ + 862, /* U+001E30 */ + 862, /* U+001E31 */ + 863, /* U+001E32 */ + 863, /* U+001E33 */ + 864, /* U+001E34 */ + 864, /* U+001E35 */ + 865, /* U+001E36 */ + 865, /* U+001E37 */ + 866, /* U+001E38 */ + 866, /* U+001E39 */ + 867, /* U+001E3A */ + 867, /* U+001E3B */ + 868, /* U+001E3C */ + 868, /* U+001E3D */ + 869, /* U+001E3E */ + 869, /* U+001E3F */ + 870, /* U+001E40 */ + 870, /* U+001E41 */ + 871, /* U+001E42 */ + 871, /* U+001E43 */ + 872, /* U+001E44 */ + 872, /* U+001E45 */ + 873, /* U+001E46 */ + 873, /* U+001E47 */ + 874, /* U+001E48 */ + 874, /* U+001E49 */ + 875, /* U+001E4A */ + 875, /* U+001E4B */ + 876, /* U+001E4C */ + 876, /* U+001E4D */ + 877, /* U+001E4E */ + 877, /* U+001E4F */ + 878, /* U+001E50 */ + 878, /* U+001E51 */ + 879, /* U+001E52 */ + 879, /* U+001E53 */ + 880, /* U+001E54 */ + 880, /* U+001E55 */ + 881, /* U+001E56 */ + 881, /* U+001E57 */ + 882, /* U+001E58 */ + 882, /* U+001E59 */ + 883, /* U+001E5A */ + 883, /* U+001E5B */ + 884, /* U+001E5C */ + 884, /* U+001E5D */ + 885, /* U+001E5E */ + 885, /* U+001E5F */ + 886, /* U+001E60 */ + 886, /* U+001E61 */ + 887, /* U+001E62 */ + 887, /* U+001E63 */ + 888, /* U+001E64 */ + 888, /* U+001E65 */ + 889, /* U+001E66 */ + 889, /* U+001E67 */ + 890, /* U+001E68 */ + 890, /* U+001E69 */ + 891, /* U+001E6A */ + 891, /* U+001E6B */ + 892, /* U+001E6C */ + 892, /* U+001E6D */ + 893, /* U+001E6E */ + 893, /* U+001E6F */ + 894, /* U+001E70 */ + 894, /* U+001E71 */ + 895, /* U+001E72 */ + 895, /* U+001E73 */ + 896, /* U+001E74 */ + 896, /* U+001E75 */ + 897, /* U+001E76 */ + 897, /* U+001E77 */ + 898, /* U+001E78 */ + 898, /* U+001E79 */ + 899, /* U+001E7A */ + 899, /* U+001E7B */ + 900, /* U+001E7C */ + 900, /* U+001E7D */ + 901, /* U+001E7E */ + 901, /* U+001E7F */ + 902, /* U+001E80 */ + 902, /* U+001E81 */ + 903, /* U+001E82 */ + 903, /* U+001E83 */ + 904, /* U+001E84 */ + 904, /* U+001E85 */ + 905, /* U+001E86 */ + 905, /* U+001E87 */ + 906, /* U+001E88 */ + 906, /* U+001E89 */ + 907, /* U+001E8A */ + 907, /* U+001E8B */ + 908, /* U+001E8C */ + 908, /* U+001E8D */ + 909, /* U+001E8E */ + 909, /* U+001E8F */ + 910, /* U+001E90 */ + 910, /* U+001E91 */ + 911, /* U+001E92 */ + 911, /* U+001E93 */ + 912, /* U+001E94 */ + 912, /* U+001E95 */ + 913, /* U+001E96 */ + 914, /* U+001E97 */ + 915, /* U+001E98 */ + 916, /* U+001E99 */ + 917, /* U+001E9A */ + 918, /* U+001E9B */ 0, /* U+001E9C */ 0, /* U+001E9D */ - 916, /* U+001E9E */ + 919, /* U+001E9E */ 0, /* U+001E9F */ - 917, /* U+001EA0 */ - 917, /* U+001EA1 */ - 918, /* U+001EA2 */ - 918, /* U+001EA3 */ - 919, /* U+001EA4 */ - 919, /* U+001EA5 */ - 920, /* U+001EA6 */ - 920, /* U+001EA7 */ - 921, /* U+001EA8 */ - 921, /* U+001EA9 */ - 922, /* U+001EAA */ - 922, /* U+001EAB */ - 923, /* U+001EAC */ - 923, /* U+001EAD */ - 924, /* U+001EAE */ - 924, /* U+001EAF */ - 925, /* U+001EB0 */ - 925, /* U+001EB1 */ - 926, /* U+001EB2 */ - 926, /* U+001EB3 */ - 927, /* U+001EB4 */ - 927, /* U+001EB5 */ - 928, /* U+001EB6 */ - 928, /* U+001EB7 */ - 929, /* U+001EB8 */ - 929, /* U+001EB9 */ - 930, /* U+001EBA */ - 930, /* U+001EBB */ - 931, /* U+001EBC */ - 931, /* U+001EBD */ - 932, /* U+001EBE */ - 932, /* U+001EBF */ - 933, /* U+001EC0 */ - 933, /* U+001EC1 */ - 934, /* U+001EC2 */ - 934, /* U+001EC3 */ - 935, /* U+001EC4 */ - 935, /* U+001EC5 */ - 936, /* U+001EC6 */ - 936, /* U+001EC7 */ - 937, /* U+001EC8 */ - 937, /* U+001EC9 */ - 938, /* U+001ECA */ - 938, /* U+001ECB */ - 939, /* U+001ECC */ - 939, /* U+001ECD */ - 940, /* U+001ECE */ - 940, /* U+001ECF */ - 941, /* U+001ED0 */ - 941, /* U+001ED1 */ - 942, /* U+001ED2 */ - 942, /* U+001ED3 */ - 943, /* U+001ED4 */ - 943, /* U+001ED5 */ - 944, /* U+001ED6 */ - 944, /* U+001ED7 */ - 945, /* U+001ED8 */ - 945, /* U+001ED9 */ - 946, /* U+001EDA */ - 946, /* U+001EDB */ - 947, /* U+001EDC */ - 947, /* U+001EDD */ - 948, /* U+001EDE */ - 948, /* U+001EDF */ - 949, /* U+001EE0 */ - 949, /* U+001EE1 */ - 950, /* U+001EE2 */ - 950, /* U+001EE3 */ - 951, /* U+001EE4 */ - 951, /* U+001EE5 */ - 952, /* U+001EE6 */ - 952, /* U+001EE7 */ - 953, /* U+001EE8 */ - 953, /* U+001EE9 */ - 954, /* U+001EEA */ - 954, /* U+001EEB */ - 955, /* U+001EEC */ - 955, /* U+001EED */ - 956, /* U+001EEE */ - 956, /* U+001EEF */ - 957, /* U+001EF0 */ - 957, /* U+001EF1 */ - 958, /* U+001EF2 */ - 958, /* U+001EF3 */ - 959, /* U+001EF4 */ - 959, /* U+001EF5 */ - 960, /* U+001EF6 */ - 960, /* U+001EF7 */ - 961, /* U+001EF8 */ - 961, /* U+001EF9 */ - 962, /* U+001EFA */ - 962, /* U+001EFB */ - 963, /* U+001EFC */ - 963, /* U+001EFD */ - 964, /* U+001EFE */ - 964, /* U+001EFF */ - 965, /* U+001F00 */ - 966, /* U+001F01 */ - 967, /* U+001F02 */ - 968, /* U+001F03 */ - 969, /* U+001F04 */ - 970, /* U+001F05 */ - 971, /* U+001F06 */ - 972, /* U+001F07 */ - 965, /* U+001F08 */ - 966, /* U+001F09 */ - 967, /* U+001F0A */ - 968, /* U+001F0B */ - 969, /* U+001F0C */ - 970, /* U+001F0D */ - 971, /* U+001F0E */ - 972, /* U+001F0F */ - 973, /* U+001F10 */ - 974, /* U+001F11 */ - 975, /* U+001F12 */ - 976, /* U+001F13 */ - 977, /* U+001F14 */ - 978, /* U+001F15 */ + 920, /* U+001EA0 */ + 920, /* U+001EA1 */ + 921, /* U+001EA2 */ + 921, /* U+001EA3 */ + 922, /* U+001EA4 */ + 922, /* U+001EA5 */ + 923, /* U+001EA6 */ + 923, /* U+001EA7 */ + 924, /* U+001EA8 */ + 924, /* U+001EA9 */ + 925, /* U+001EAA */ + 925, /* U+001EAB */ + 926, /* U+001EAC */ + 926, /* U+001EAD */ + 927, /* U+001EAE */ + 927, /* U+001EAF */ + 928, /* U+001EB0 */ + 928, /* U+001EB1 */ + 929, /* U+001EB2 */ + 929, /* U+001EB3 */ + 930, /* U+001EB4 */ + 930, /* U+001EB5 */ + 931, /* U+001EB6 */ + 931, /* U+001EB7 */ + 932, /* U+001EB8 */ + 932, /* U+001EB9 */ + 933, /* U+001EBA */ + 933, /* U+001EBB */ + 934, /* U+001EBC */ + 934, /* U+001EBD */ + 935, /* U+001EBE */ + 935, /* U+001EBF */ + 936, /* U+001EC0 */ + 936, /* U+001EC1 */ + 937, /* U+001EC2 */ + 937, /* U+001EC3 */ + 938, /* U+001EC4 */ + 938, /* U+001EC5 */ + 939, /* U+001EC6 */ + 939, /* U+001EC7 */ + 940, /* U+001EC8 */ + 940, /* U+001EC9 */ + 941, /* U+001ECA */ + 941, /* U+001ECB */ + 942, /* U+001ECC */ + 942, /* U+001ECD */ + 943, /* U+001ECE */ + 943, /* U+001ECF */ + 944, /* U+001ED0 */ + 944, /* U+001ED1 */ + 945, /* U+001ED2 */ + 945, /* U+001ED3 */ + 946, /* U+001ED4 */ + 946, /* U+001ED5 */ + 947, /* U+001ED6 */ + 947, /* U+001ED7 */ + 948, /* U+001ED8 */ + 948, /* U+001ED9 */ + 949, /* U+001EDA */ + 949, /* U+001EDB */ + 950, /* U+001EDC */ + 950, /* U+001EDD */ + 951, /* U+001EDE */ + 951, /* U+001EDF */ + 952, /* U+001EE0 */ + 952, /* U+001EE1 */ + 953, /* U+001EE2 */ + 953, /* U+001EE3 */ + 954, /* U+001EE4 */ + 954, /* U+001EE5 */ + 955, /* U+001EE6 */ + 955, /* U+001EE7 */ + 956, /* U+001EE8 */ + 956, /* U+001EE9 */ + 957, /* U+001EEA */ + 957, /* U+001EEB */ + 958, /* U+001EEC */ + 958, /* U+001EED */ + 959, /* U+001EEE */ + 959, /* U+001EEF */ + 960, /* U+001EF0 */ + 960, /* U+001EF1 */ + 961, /* U+001EF2 */ + 961, /* U+001EF3 */ + 962, /* U+001EF4 */ + 962, /* U+001EF5 */ + 963, /* U+001EF6 */ + 963, /* U+001EF7 */ + 964, /* U+001EF8 */ + 964, /* U+001EF9 */ + 965, /* U+001EFA */ + 965, /* U+001EFB */ + 966, /* U+001EFC */ + 966, /* U+001EFD */ + 967, /* U+001EFE */ + 967, /* U+001EFF */ + 968, /* U+001F00 */ + 969, /* U+001F01 */ + 970, /* U+001F02 */ + 971, /* U+001F03 */ + 972, /* U+001F04 */ + 973, /* U+001F05 */ + 974, /* U+001F06 */ + 975, /* U+001F07 */ + 968, /* U+001F08 */ + 969, /* U+001F09 */ + 970, /* U+001F0A */ + 971, /* U+001F0B */ + 972, /* U+001F0C */ + 973, /* U+001F0D */ + 974, /* U+001F0E */ + 975, /* U+001F0F */ + 976, /* U+001F10 */ + 977, /* U+001F11 */ + 978, /* U+001F12 */ + 979, /* U+001F13 */ + 980, /* U+001F14 */ + 981, /* U+001F15 */ 0, /* U+001F16 */ 0, /* U+001F17 */ - 973, /* U+001F18 */ - 974, /* U+001F19 */ - 975, /* U+001F1A */ - 976, /* U+001F1B */ - 977, /* U+001F1C */ - 978, /* U+001F1D */ + 976, /* U+001F18 */ + 977, /* U+001F19 */ + 978, /* U+001F1A */ + 979, /* U+001F1B */ + 980, /* U+001F1C */ + 981, /* U+001F1D */ 0, /* U+001F1E */ 0, /* U+001F1F */ - 979, /* U+001F20 */ - 980, /* U+001F21 */ - 981, /* U+001F22 */ - 982, /* U+001F23 */ - 983, /* U+001F24 */ - 984, /* U+001F25 */ - 985, /* U+001F26 */ - 986, /* U+001F27 */ - 979, /* U+001F28 */ - 980, /* U+001F29 */ - 981, /* U+001F2A */ - 982, /* U+001F2B */ - 983, /* U+001F2C */ - 984, /* U+001F2D */ - 985, /* U+001F2E */ - 986, /* U+001F2F */ - 987, /* U+001F30 */ - 988, /* U+001F31 */ - 989, /* U+001F32 */ - 990, /* U+001F33 */ - 991, /* U+001F34 */ - 992, /* U+001F35 */ - 993, /* U+001F36 */ - 994, /* U+001F37 */ - 987, /* U+001F38 */ - 988, /* U+001F39 */ - 989, /* U+001F3A */ - 990, /* U+001F3B */ - 991, /* U+001F3C */ - 992, /* U+001F3D */ - 993, /* U+001F3E */ - 994, /* U+001F3F */ - 995, /* U+001F40 */ - 996, /* U+001F41 */ - 997, /* U+001F42 */ - 998, /* U+001F43 */ - 999, /* U+001F44 */ - 1000, /* U+001F45 */ + 982, /* U+001F20 */ + 983, /* U+001F21 */ + 984, /* U+001F22 */ + 985, /* U+001F23 */ + 986, /* U+001F24 */ + 987, /* U+001F25 */ + 988, /* U+001F26 */ + 989, /* U+001F27 */ + 982, /* U+001F28 */ + 983, /* U+001F29 */ + 984, /* U+001F2A */ + 985, /* U+001F2B */ + 986, /* U+001F2C */ + 987, /* U+001F2D */ + 988, /* U+001F2E */ + 989, /* U+001F2F */ + 990, /* U+001F30 */ + 991, /* U+001F31 */ + 992, /* U+001F32 */ + 993, /* U+001F33 */ + 994, /* U+001F34 */ + 995, /* U+001F35 */ + 996, /* U+001F36 */ + 997, /* U+001F37 */ + 990, /* U+001F38 */ + 991, /* U+001F39 */ + 992, /* U+001F3A */ + 993, /* U+001F3B */ + 994, /* U+001F3C */ + 995, /* U+001F3D */ + 996, /* U+001F3E */ + 997, /* U+001F3F */ + 998, /* U+001F40 */ + 999, /* U+001F41 */ + 1000, /* U+001F42 */ + 1001, /* U+001F43 */ + 1002, /* U+001F44 */ + 1003, /* U+001F45 */ 0, /* U+001F46 */ 0, /* U+001F47 */ - 995, /* U+001F48 */ - 996, /* U+001F49 */ - 997, /* U+001F4A */ - 998, /* U+001F4B */ - 999, /* U+001F4C */ - 1000, /* U+001F4D */ + 998, /* U+001F48 */ + 999, /* U+001F49 */ + 1000, /* U+001F4A */ + 1001, /* U+001F4B */ + 1002, /* U+001F4C */ + 1003, /* U+001F4D */ 0, /* U+001F4E */ 0, /* U+001F4F */ - 1001, /* U+001F50 */ - 1002, /* U+001F51 */ - 1003, /* U+001F52 */ - 1004, /* U+001F53 */ - 1005, /* U+001F54 */ - 1006, /* U+001F55 */ - 1007, /* U+001F56 */ - 1008, /* U+001F57 */ + 1004, /* U+001F50 */ + 1005, /* U+001F51 */ + 1006, /* U+001F52 */ + 1007, /* U+001F53 */ + 1008, /* U+001F54 */ + 1009, /* U+001F55 */ + 1010, /* U+001F56 */ + 1011, /* U+001F57 */ 0, /* U+001F58 */ - 1002, /* U+001F59 */ + 1005, /* U+001F59 */ 0, /* U+001F5A */ - 1004, /* U+001F5B */ + 1007, /* U+001F5B */ 0, /* U+001F5C */ - 1006, /* U+001F5D */ + 1009, /* U+001F5D */ 0, /* U+001F5E */ - 1008, /* U+001F5F */ - 1009, /* U+001F60 */ - 1010, /* U+001F61 */ - 1011, /* U+001F62 */ - 1012, /* U+001F63 */ - 1013, /* U+001F64 */ - 1014, /* U+001F65 */ - 1015, /* U+001F66 */ - 1016, /* U+001F67 */ - 1009, /* U+001F68 */ - 1010, /* U+001F69 */ - 1011, /* U+001F6A */ - 1012, /* U+001F6B */ - 1013, /* U+001F6C */ - 1014, /* U+001F6D */ - 1015, /* U+001F6E */ - 1016, /* U+001F6F */ - 1017, /* U+001F70 */ - 1018, /* U+001F71 */ - 1019, /* U+001F72 */ - 1020, /* U+001F73 */ - 1021, /* U+001F74 */ - 1022, /* U+001F75 */ - 1023, /* U+001F76 */ - 1024, /* U+001F77 */ - 1025, /* U+001F78 */ - 1026, /* U+001F79 */ - 1027, /* U+001F7A */ - 1028, /* U+001F7B */ - 1029, /* U+001F7C */ - 1030, /* U+001F7D */ + 1011, /* U+001F5F */ + 1012, /* U+001F60 */ + 1013, /* U+001F61 */ + 1014, /* U+001F62 */ + 1015, /* U+001F63 */ + 1016, /* U+001F64 */ + 1017, /* U+001F65 */ + 1018, /* U+001F66 */ + 1019, /* U+001F67 */ + 1012, /* U+001F68 */ + 1013, /* U+001F69 */ + 1014, /* U+001F6A */ + 1015, /* U+001F6B */ + 1016, /* U+001F6C */ + 1017, /* U+001F6D */ + 1018, /* U+001F6E */ + 1019, /* U+001F6F */ + 1020, /* U+001F70 */ + 1021, /* U+001F71 */ + 1022, /* U+001F72 */ + 1023, /* U+001F73 */ + 1024, /* U+001F74 */ + 1025, /* U+001F75 */ + 1026, /* U+001F76 */ + 1027, /* U+001F77 */ + 1028, /* U+001F78 */ + 1029, /* U+001F79 */ + 1030, /* U+001F7A */ + 1031, /* U+001F7B */ + 1032, /* U+001F7C */ + 1033, /* U+001F7D */ 0, /* U+001F7E */ 0, /* U+001F7F */ - 1031, /* U+001F80 */ - 1032, /* U+001F81 */ - 1033, /* U+001F82 */ - 1034, /* U+001F83 */ - 1035, /* U+001F84 */ - 1036, /* U+001F85 */ - 1037, /* U+001F86 */ - 1038, /* U+001F87 */ - 1039, /* U+001F88 */ - 1040, /* U+001F89 */ - 1041, /* U+001F8A */ - 1042, /* U+001F8B */ - 1043, /* U+001F8C */ - 1044, /* U+001F8D */ - 1045, /* U+001F8E */ - 1046, /* U+001F8F */ - 1047, /* U+001F90 */ - 1048, /* U+001F91 */ - 1049, /* U+001F92 */ - 1050, /* U+001F93 */ - 1051, /* U+001F94 */ - 1052, /* U+001F95 */ - 1053, /* U+001F96 */ - 1054, /* U+001F97 */ - 1055, /* U+001F98 */ - 1056, /* U+001F99 */ - 1057, /* U+001F9A */ - 1058, /* U+001F9B */ - 1059, /* U+001F9C */ - 1060, /* U+001F9D */ - 1061, /* U+001F9E */ - 1062, /* U+001F9F */ - 1063, /* U+001FA0 */ - 1064, /* U+001FA1 */ - 1065, /* U+001FA2 */ - 1066, /* U+001FA3 */ - 1067, /* U+001FA4 */ - 1068, /* U+001FA5 */ - 1069, /* U+001FA6 */ - 1070, /* U+001FA7 */ - 1071, /* U+001FA8 */ - 1072, /* U+001FA9 */ - 1073, /* U+001FAA */ - 1074, /* U+001FAB */ - 1075, /* U+001FAC */ - 1076, /* U+001FAD */ - 1077, /* U+001FAE */ - 1078, /* U+001FAF */ - 1079, /* U+001FB0 */ - 1080, /* U+001FB1 */ - 1081, /* U+001FB2 */ - 1082, /* U+001FB3 */ - 1083, /* U+001FB4 */ + 1034, /* U+001F80 */ + 1035, /* U+001F81 */ + 1036, /* U+001F82 */ + 1037, /* U+001F83 */ + 1038, /* U+001F84 */ + 1039, /* U+001F85 */ + 1040, /* U+001F86 */ + 1041, /* U+001F87 */ + 1042, /* U+001F88 */ + 1043, /* U+001F89 */ + 1044, /* U+001F8A */ + 1045, /* U+001F8B */ + 1046, /* U+001F8C */ + 1047, /* U+001F8D */ + 1048, /* U+001F8E */ + 1049, /* U+001F8F */ + 1050, /* U+001F90 */ + 1051, /* U+001F91 */ + 1052, /* U+001F92 */ + 1053, /* U+001F93 */ + 1054, /* U+001F94 */ + 1055, /* U+001F95 */ + 1056, /* U+001F96 */ + 1057, /* U+001F97 */ + 1058, /* U+001F98 */ + 1059, /* U+001F99 */ + 1060, /* U+001F9A */ + 1061, /* U+001F9B */ + 1062, /* U+001F9C */ + 1063, /* U+001F9D */ + 1064, /* U+001F9E */ + 1065, /* U+001F9F */ + 1066, /* U+001FA0 */ + 1067, /* U+001FA1 */ + 1068, /* U+001FA2 */ + 1069, /* U+001FA3 */ + 1070, /* U+001FA4 */ + 1071, /* U+001FA5 */ + 1072, /* U+001FA6 */ + 1073, /* U+001FA7 */ + 1074, /* U+001FA8 */ + 1075, /* U+001FA9 */ + 1076, /* U+001FAA */ + 1077, /* U+001FAB */ + 1078, /* U+001FAC */ + 1079, /* U+001FAD */ + 1080, /* U+001FAE */ + 1081, /* U+001FAF */ + 1082, /* U+001FB0 */ + 1083, /* U+001FB1 */ + 1084, /* U+001FB2 */ + 1085, /* U+001FB3 */ + 1086, /* U+001FB4 */ 0, /* U+001FB5 */ - 1084, /* U+001FB6 */ - 1085, /* U+001FB7 */ - 1079, /* U+001FB8 */ - 1080, /* U+001FB9 */ - 1017, /* U+001FBA */ - 1018, /* U+001FBB */ - 1086, /* U+001FBC */ + 1087, /* U+001FB6 */ + 1088, /* U+001FB7 */ + 1082, /* U+001FB8 */ + 1083, /* U+001FB9 */ + 1020, /* U+001FBA */ + 1021, /* U+001FBB */ + 1089, /* U+001FBC */ 0, /* U+001FBD */ - 1087, /* U+001FBE */ + 1090, /* U+001FBE */ 0, /* U+001FBF */ 0, /* U+001FC0 */ 0, /* U+001FC1 */ - 1088, /* U+001FC2 */ - 1089, /* U+001FC3 */ - 1090, /* U+001FC4 */ + 1091, /* U+001FC2 */ + 1092, /* U+001FC3 */ + 1093, /* U+001FC4 */ 0, /* U+001FC5 */ - 1091, /* U+001FC6 */ - 1092, /* U+001FC7 */ - 1019, /* U+001FC8 */ - 1020, /* U+001FC9 */ - 1021, /* U+001FCA */ - 1022, /* U+001FCB */ - 1093, /* U+001FCC */ + 1094, /* U+001FC6 */ + 1095, /* U+001FC7 */ + 1022, /* U+001FC8 */ + 1023, /* U+001FC9 */ + 1024, /* U+001FCA */ + 1025, /* U+001FCB */ + 1096, /* U+001FCC */ 0, /* U+001FCD */ 0, /* U+001FCE */ 0, /* U+001FCF */ - 1094, /* U+001FD0 */ - 1095, /* U+001FD1 */ - 1096, /* U+001FD2 */ - 1097, /* U+001FD3 */ + 1097, /* U+001FD0 */ + 1098, /* U+001FD1 */ + 1099, /* U+001FD2 */ + 1100, /* U+001FD3 */ 0, /* U+001FD4 */ 0, /* U+001FD5 */ - 1098, /* U+001FD6 */ - 1099, /* U+001FD7 */ - 1094, /* U+001FD8 */ - 1095, /* U+001FD9 */ - 1023, /* U+001FDA */ - 1024, /* U+001FDB */ + 1101, /* U+001FD6 */ + 1102, /* U+001FD7 */ + 1097, /* U+001FD8 */ + 1098, /* U+001FD9 */ + 1026, /* U+001FDA */ + 1027, /* U+001FDB */ 0, /* U+001FDC */ 0, /* U+001FDD */ 0, /* U+001FDE */ 0, /* U+001FDF */ - 1100, /* U+001FE0 */ - 1101, /* U+001FE1 */ - 1102, /* U+001FE2 */ - 1103, /* U+001FE3 */ - 1104, /* U+001FE4 */ - 1105, /* U+001FE5 */ - 1106, /* U+001FE6 */ - 1107, /* U+001FE7 */ - 1100, /* U+001FE8 */ - 1101, /* U+001FE9 */ - 1027, /* U+001FEA */ - 1028, /* U+001FEB */ - 1105, /* U+001FEC */ + 1103, /* U+001FE0 */ + 1104, /* U+001FE1 */ + 1105, /* U+001FE2 */ + 1106, /* U+001FE3 */ + 1107, /* U+001FE4 */ + 1108, /* U+001FE5 */ + 1109, /* U+001FE6 */ + 1110, /* U+001FE7 */ + 1103, /* U+001FE8 */ + 1104, /* U+001FE9 */ + 1030, /* U+001FEA */ + 1031, /* U+001FEB */ + 1108, /* U+001FEC */ 0, /* U+001FED */ 0, /* U+001FEE */ 0, /* U+001FEF */ 0, /* U+001FF0 */ 0, /* U+001FF1 */ - 1108, /* U+001FF2 */ - 1109, /* U+001FF3 */ - 1110, /* U+001FF4 */ + 1111, /* U+001FF2 */ + 1112, /* U+001FF3 */ + 1113, /* U+001FF4 */ 0, /* U+001FF5 */ - 1111, /* U+001FF6 */ - 1112, /* U+001FF7 */ - 1025, /* U+001FF8 */ - 1026, /* U+001FF9 */ - 1029, /* U+001FFA */ - 1030, /* U+001FFB */ - 1113, /* U+001FFC */ + 1114, /* U+001FF6 */ + 1115, /* U+001FF7 */ + 1028, /* U+001FF8 */ + 1029, /* U+001FF9 */ + 1032, /* U+001FFA */ + 1033, /* U+001FFB */ + 1116, /* U+001FFC */ 0, /* U+001FFD */ 0, /* U+001FFE */ 0, /* U+001FFF */ @@ -11395,19 +11530,19 @@ static const uint16 case_map[4631] = 0, /* U+002123 */ 0, /* U+002124 */ 0, /* U+002125 */ - 1114, /* U+002126 */ + 1117, /* U+002126 */ 0, /* U+002127 */ 0, /* U+002128 */ 0, /* U+002129 */ - 1115, /* U+00212A */ - 1116, /* U+00212B */ + 1118, /* U+00212A */ + 1119, /* U+00212B */ 0, /* U+00212C */ 0, /* U+00212D */ 0, /* U+00212E */ 0, /* U+00212F */ 0, /* U+002130 */ 0, /* U+002131 */ - 1117, /* U+002132 */ + 1120, /* U+002132 */ 0, /* U+002133 */ 0, /* U+002134 */ 0, /* U+002135 */ @@ -11435,7 +11570,7 @@ static const uint16 case_map[4631] = 0, /* U+00214B */ 0, /* U+00214C */ 0, /* U+00214D */ - 1117, /* U+00214E */ + 1120, /* U+00214E */ 0, /* U+00214F */ 0, /* U+002150 */ 0, /* U+002151 */ @@ -11453,214 +11588,214 @@ static const uint16 case_map[4631] = 0, /* U+00215D */ 0, /* U+00215E */ 0, /* U+00215F */ - 1118, /* U+002160 */ - 1119, /* U+002161 */ - 1120, /* U+002162 */ - 1121, /* U+002163 */ - 1122, /* U+002164 */ - 1123, /* U+002165 */ - 1124, /* U+002166 */ - 1125, /* U+002167 */ - 1126, /* U+002168 */ - 1127, /* U+002169 */ - 1128, /* U+00216A */ - 1129, /* U+00216B */ - 1130, /* U+00216C */ - 1131, /* U+00216D */ - 1132, /* U+00216E */ - 1133, /* U+00216F */ - 1118, /* U+002170 */ - 1119, /* U+002171 */ - 1120, /* U+002172 */ - 1121, /* U+002173 */ - 1122, /* U+002174 */ - 1123, /* U+002175 */ - 1124, /* U+002176 */ - 1125, /* U+002177 */ - 1126, /* U+002178 */ - 1127, /* U+002179 */ - 1128, /* U+00217A */ - 1129, /* U+00217B */ - 1130, /* U+00217C */ - 1131, /* U+00217D */ - 1132, /* U+00217E */ - 1133, /* U+00217F */ + 1121, /* U+002160 */ + 1122, /* U+002161 */ + 1123, /* U+002162 */ + 1124, /* U+002163 */ + 1125, /* U+002164 */ + 1126, /* U+002165 */ + 1127, /* U+002166 */ + 1128, /* U+002167 */ + 1129, /* U+002168 */ + 1130, /* U+002169 */ + 1131, /* U+00216A */ + 1132, /* U+00216B */ + 1133, /* U+00216C */ + 1134, /* U+00216D */ + 1135, /* U+00216E */ + 1136, /* U+00216F */ + 1121, /* U+002170 */ + 1122, /* U+002171 */ + 1123, /* U+002172 */ + 1124, /* U+002173 */ + 1125, /* U+002174 */ + 1126, /* U+002175 */ + 1127, /* U+002176 */ + 1128, /* U+002177 */ + 1129, /* U+002178 */ + 1130, /* U+002179 */ + 1131, /* U+00217A */ + 1132, /* U+00217B */ + 1133, /* U+00217C */ + 1134, /* U+00217D */ + 1135, /* U+00217E */ + 1136, /* U+00217F */ 0, /* U+002180 */ 0, /* U+002181 */ 0, /* U+002182 */ - 1134, /* U+002183 */ - 1134, /* U+002184 */ - 1135, /* U+0024B6 */ - 1136, /* U+0024B7 */ - 1137, /* U+0024B8 */ - 1138, /* U+0024B9 */ - 1139, /* U+0024BA */ - 1140, /* U+0024BB */ - 1141, /* U+0024BC */ - 1142, /* U+0024BD */ - 1143, /* U+0024BE */ - 1144, /* U+0024BF */ - 1145, /* U+0024C0 */ - 1146, /* U+0024C1 */ - 1147, /* U+0024C2 */ - 1148, /* U+0024C3 */ - 1149, /* U+0024C4 */ - 1150, /* U+0024C5 */ - 1151, /* U+0024C6 */ - 1152, /* U+0024C7 */ - 1153, /* U+0024C8 */ - 1154, /* U+0024C9 */ - 1155, /* U+0024CA */ - 1156, /* U+0024CB */ - 1157, /* U+0024CC */ - 1158, /* U+0024CD */ - 1159, /* U+0024CE */ - 1160, /* U+0024CF */ - 1135, /* U+0024D0 */ - 1136, /* U+0024D1 */ - 1137, /* U+0024D2 */ - 1138, /* U+0024D3 */ - 1139, /* U+0024D4 */ - 1140, /* U+0024D5 */ - 1141, /* U+0024D6 */ - 1142, /* U+0024D7 */ - 1143, /* U+0024D8 */ - 1144, /* U+0024D9 */ - 1145, /* U+0024DA */ - 1146, /* U+0024DB */ - 1147, /* U+0024DC */ - 1148, /* U+0024DD */ - 1149, /* U+0024DE */ - 1150, /* U+0024DF */ - 1151, /* U+0024E0 */ - 1152, /* U+0024E1 */ - 1153, /* U+0024E2 */ - 1154, /* U+0024E3 */ - 1155, /* U+0024E4 */ - 1156, /* U+0024E5 */ - 1157, /* U+0024E6 */ - 1158, /* U+0024E7 */ - 1159, /* U+0024E8 */ - 1160, /* U+0024E9 */ - 1161, /* U+002C00 */ - 1162, /* U+002C01 */ - 1163, /* U+002C02 */ - 1164, /* U+002C03 */ - 1165, /* U+002C04 */ - 1166, /* U+002C05 */ - 1167, /* U+002C06 */ - 1168, /* U+002C07 */ - 1169, /* U+002C08 */ - 1170, /* U+002C09 */ - 1171, /* U+002C0A */ - 1172, /* U+002C0B */ - 1173, /* U+002C0C */ - 1174, /* U+002C0D */ - 1175, /* U+002C0E */ - 1176, /* U+002C0F */ - 1177, /* U+002C10 */ - 1178, /* U+002C11 */ - 1179, /* U+002C12 */ - 1180, /* U+002C13 */ - 1181, /* U+002C14 */ - 1182, /* U+002C15 */ - 1183, /* U+002C16 */ - 1184, /* U+002C17 */ - 1185, /* U+002C18 */ - 1186, /* U+002C19 */ - 1187, /* U+002C1A */ - 1188, /* U+002C1B */ - 1189, /* U+002C1C */ - 1190, /* U+002C1D */ - 1191, /* U+002C1E */ - 1192, /* U+002C1F */ - 1193, /* U+002C20 */ - 1194, /* U+002C21 */ - 1195, /* U+002C22 */ - 1196, /* U+002C23 */ - 1197, /* U+002C24 */ - 1198, /* U+002C25 */ - 1199, /* U+002C26 */ - 1200, /* U+002C27 */ - 1201, /* U+002C28 */ - 1202, /* U+002C29 */ - 1203, /* U+002C2A */ - 1204, /* U+002C2B */ - 1205, /* U+002C2C */ - 1206, /* U+002C2D */ - 1207, /* U+002C2E */ - 1208, /* U+002C2F */ - 1161, /* U+002C30 */ - 1162, /* U+002C31 */ - 1163, /* U+002C32 */ - 1164, /* U+002C33 */ - 1165, /* U+002C34 */ - 1166, /* U+002C35 */ - 1167, /* U+002C36 */ - 1168, /* U+002C37 */ - 1169, /* U+002C38 */ - 1170, /* U+002C39 */ - 1171, /* U+002C3A */ - 1172, /* U+002C3B */ - 1173, /* U+002C3C */ - 1174, /* U+002C3D */ - 1175, /* U+002C3E */ - 1176, /* U+002C3F */ - 1177, /* U+002C40 */ - 1178, /* U+002C41 */ - 1179, /* U+002C42 */ - 1180, /* U+002C43 */ - 1181, /* U+002C44 */ - 1182, /* U+002C45 */ - 1183, /* U+002C46 */ - 1184, /* U+002C47 */ - 1185, /* U+002C48 */ - 1186, /* U+002C49 */ - 1187, /* U+002C4A */ - 1188, /* U+002C4B */ - 1189, /* U+002C4C */ - 1190, /* U+002C4D */ - 1191, /* U+002C4E */ - 1192, /* U+002C4F */ - 1193, /* U+002C50 */ - 1194, /* U+002C51 */ - 1195, /* U+002C52 */ - 1196, /* U+002C53 */ - 1197, /* U+002C54 */ - 1198, /* U+002C55 */ - 1199, /* U+002C56 */ - 1200, /* U+002C57 */ - 1201, /* U+002C58 */ - 1202, /* U+002C59 */ - 1203, /* U+002C5A */ - 1204, /* U+002C5B */ - 1205, /* U+002C5C */ - 1206, /* U+002C5D */ - 1207, /* U+002C5E */ - 1208, /* U+002C5F */ - 1209, /* U+002C60 */ - 1209, /* U+002C61 */ - 341, /* U+002C62 */ - 833, /* U+002C63 */ - 344, /* U+002C64 */ - 320, /* U+002C65 */ - 322, /* U+002C66 */ - 1210, /* U+002C67 */ - 1210, /* U+002C68 */ - 1211, /* U+002C69 */ - 1211, /* U+002C6A */ - 1212, /* U+002C6B */ - 1212, /* U+002C6C */ - 334, /* U+002C6D */ - 343, /* U+002C6E */ - 333, /* U+002C6F */ - 335, /* U+002C70 */ + 1137, /* U+002183 */ + 1137, /* U+002184 */ + 1138, /* U+0024B6 */ + 1139, /* U+0024B7 */ + 1140, /* U+0024B8 */ + 1141, /* U+0024B9 */ + 1142, /* U+0024BA */ + 1143, /* U+0024BB */ + 1144, /* U+0024BC */ + 1145, /* U+0024BD */ + 1146, /* U+0024BE */ + 1147, /* U+0024BF */ + 1148, /* U+0024C0 */ + 1149, /* U+0024C1 */ + 1150, /* U+0024C2 */ + 1151, /* U+0024C3 */ + 1152, /* U+0024C4 */ + 1153, /* U+0024C5 */ + 1154, /* U+0024C6 */ + 1155, /* U+0024C7 */ + 1156, /* U+0024C8 */ + 1157, /* U+0024C9 */ + 1158, /* U+0024CA */ + 1159, /* U+0024CB */ + 1160, /* U+0024CC */ + 1161, /* U+0024CD */ + 1162, /* U+0024CE */ + 1163, /* U+0024CF */ + 1138, /* U+0024D0 */ + 1139, /* U+0024D1 */ + 1140, /* U+0024D2 */ + 1141, /* U+0024D3 */ + 1142, /* U+0024D4 */ + 1143, /* U+0024D5 */ + 1144, /* U+0024D6 */ + 1145, /* U+0024D7 */ + 1146, /* U+0024D8 */ + 1147, /* U+0024D9 */ + 1148, /* U+0024DA */ + 1149, /* U+0024DB */ + 1150, /* U+0024DC */ + 1151, /* U+0024DD */ + 1152, /* U+0024DE */ + 1153, /* U+0024DF */ + 1154, /* U+0024E0 */ + 1155, /* U+0024E1 */ + 1156, /* U+0024E2 */ + 1157, /* U+0024E3 */ + 1158, /* U+0024E4 */ + 1159, /* U+0024E5 */ + 1160, /* U+0024E6 */ + 1161, /* U+0024E7 */ + 1162, /* U+0024E8 */ + 1163, /* U+0024E9 */ + 1164, /* U+002C00 */ + 1165, /* U+002C01 */ + 1166, /* U+002C02 */ + 1167, /* U+002C03 */ + 1168, /* U+002C04 */ + 1169, /* U+002C05 */ + 1170, /* U+002C06 */ + 1171, /* U+002C07 */ + 1172, /* U+002C08 */ + 1173, /* U+002C09 */ + 1174, /* U+002C0A */ + 1175, /* U+002C0B */ + 1176, /* U+002C0C */ + 1177, /* U+002C0D */ + 1178, /* U+002C0E */ + 1179, /* U+002C0F */ + 1180, /* U+002C10 */ + 1181, /* U+002C11 */ + 1182, /* U+002C12 */ + 1183, /* U+002C13 */ + 1184, /* U+002C14 */ + 1185, /* U+002C15 */ + 1186, /* U+002C16 */ + 1187, /* U+002C17 */ + 1188, /* U+002C18 */ + 1189, /* U+002C19 */ + 1190, /* U+002C1A */ + 1191, /* U+002C1B */ + 1192, /* U+002C1C */ + 1193, /* U+002C1D */ + 1194, /* U+002C1E */ + 1195, /* U+002C1F */ + 1196, /* U+002C20 */ + 1197, /* U+002C21 */ + 1198, /* U+002C22 */ + 1199, /* U+002C23 */ + 1200, /* U+002C24 */ + 1201, /* U+002C25 */ + 1202, /* U+002C26 */ + 1203, /* U+002C27 */ + 1204, /* U+002C28 */ + 1205, /* U+002C29 */ + 1206, /* U+002C2A */ + 1207, /* U+002C2B */ + 1208, /* U+002C2C */ + 1209, /* U+002C2D */ + 1210, /* U+002C2E */ + 1211, /* U+002C2F */ + 1164, /* U+002C30 */ + 1165, /* U+002C31 */ + 1166, /* U+002C32 */ + 1167, /* U+002C33 */ + 1168, /* U+002C34 */ + 1169, /* U+002C35 */ + 1170, /* U+002C36 */ + 1171, /* U+002C37 */ + 1172, /* U+002C38 */ + 1173, /* U+002C39 */ + 1174, /* U+002C3A */ + 1175, /* U+002C3B */ + 1176, /* U+002C3C */ + 1177, /* U+002C3D */ + 1178, /* U+002C3E */ + 1179, /* U+002C3F */ + 1180, /* U+002C40 */ + 1181, /* U+002C41 */ + 1182, /* U+002C42 */ + 1183, /* U+002C43 */ + 1184, /* U+002C44 */ + 1185, /* U+002C45 */ + 1186, /* U+002C46 */ + 1187, /* U+002C47 */ + 1188, /* U+002C48 */ + 1189, /* U+002C49 */ + 1190, /* U+002C4A */ + 1191, /* U+002C4B */ + 1192, /* U+002C4C */ + 1193, /* U+002C4D */ + 1194, /* U+002C4E */ + 1195, /* U+002C4F */ + 1196, /* U+002C50 */ + 1197, /* U+002C51 */ + 1198, /* U+002C52 */ + 1199, /* U+002C53 */ + 1200, /* U+002C54 */ + 1201, /* U+002C55 */ + 1202, /* U+002C56 */ + 1203, /* U+002C57 */ + 1204, /* U+002C58 */ + 1205, /* U+002C59 */ + 1206, /* U+002C5A */ + 1207, /* U+002C5B */ + 1208, /* U+002C5C */ + 1209, /* U+002C5D */ + 1210, /* U+002C5E */ + 1211, /* U+002C5F */ + 1212, /* U+002C60 */ + 1212, /* U+002C61 */ + 343, /* U+002C62 */ + 836, /* U+002C63 */ + 346, /* U+002C64 */ + 321, /* U+002C65 */ + 323, /* U+002C66 */ + 1213, /* U+002C67 */ + 1213, /* U+002C68 */ + 1214, /* U+002C69 */ + 1214, /* U+002C6A */ + 1215, /* U+002C6B */ + 1215, /* U+002C6C */ + 335, /* U+002C6D */ + 345, /* U+002C6E */ + 334, /* U+002C6F */ + 336, /* U+002C70 */ 0, /* U+002C71 */ - 1213, /* U+002C72 */ - 1213, /* U+002C73 */ + 1216, /* U+002C72 */ + 1216, /* U+002C73 */ 0, /* U+002C74 */ - 1214, /* U+002C75 */ - 1214, /* U+002C76 */ + 1217, /* U+002C75 */ + 1217, /* U+002C76 */ 0, /* U+002C77 */ 0, /* U+002C78 */ 0, /* U+002C79 */ @@ -11668,108 +11803,108 @@ static const uint16 case_map[4631] = 0, /* U+002C7B */ 0, /* U+002C7C */ 0, /* U+002C7D */ - 323, /* U+002C7E */ - 324, /* U+002C7F */ - 1215, /* U+002C80 */ - 1215, /* U+002C81 */ - 1216, /* U+002C82 */ - 1216, /* U+002C83 */ - 1217, /* U+002C84 */ - 1217, /* U+002C85 */ - 1218, /* U+002C86 */ - 1218, /* U+002C87 */ - 1219, /* U+002C88 */ - 1219, /* U+002C89 */ - 1220, /* U+002C8A */ - 1220, /* U+002C8B */ - 1221, /* U+002C8C */ - 1221, /* U+002C8D */ - 1222, /* U+002C8E */ - 1222, /* U+002C8F */ - 1223, /* U+002C90 */ - 1223, /* U+002C91 */ - 1224, /* U+002C92 */ - 1224, /* U+002C93 */ - 1225, /* U+002C94 */ - 1225, /* U+002C95 */ - 1226, /* U+002C96 */ - 1226, /* U+002C97 */ - 1227, /* U+002C98 */ - 1227, /* U+002C99 */ - 1228, /* U+002C9A */ - 1228, /* U+002C9B */ - 1229, /* U+002C9C */ - 1229, /* U+002C9D */ - 1230, /* U+002C9E */ - 1230, /* U+002C9F */ - 1231, /* U+002CA0 */ - 1231, /* U+002CA1 */ - 1232, /* U+002CA2 */ - 1232, /* U+002CA3 */ - 1233, /* U+002CA4 */ - 1233, /* U+002CA5 */ - 1234, /* U+002CA6 */ - 1234, /* U+002CA7 */ - 1235, /* U+002CA8 */ - 1235, /* U+002CA9 */ - 1236, /* U+002CAA */ - 1236, /* U+002CAB */ - 1237, /* U+002CAC */ - 1237, /* U+002CAD */ - 1238, /* U+002CAE */ - 1238, /* U+002CAF */ - 1239, /* U+002CB0 */ - 1239, /* U+002CB1 */ - 1240, /* U+002CB2 */ - 1240, /* U+002CB3 */ - 1241, /* U+002CB4 */ - 1241, /* U+002CB5 */ - 1242, /* U+002CB6 */ - 1242, /* U+002CB7 */ - 1243, /* U+002CB8 */ - 1243, /* U+002CB9 */ - 1244, /* U+002CBA */ - 1244, /* U+002CBB */ - 1245, /* U+002CBC */ - 1245, /* U+002CBD */ - 1246, /* U+002CBE */ - 1246, /* U+002CBF */ - 1247, /* U+002CC0 */ - 1247, /* U+002CC1 */ - 1248, /* U+002CC2 */ - 1248, /* U+002CC3 */ - 1249, /* U+002CC4 */ - 1249, /* U+002CC5 */ - 1250, /* U+002CC6 */ - 1250, /* U+002CC7 */ - 1251, /* U+002CC8 */ - 1251, /* U+002CC9 */ - 1252, /* U+002CCA */ - 1252, /* U+002CCB */ - 1253, /* U+002CCC */ - 1253, /* U+002CCD */ - 1254, /* U+002CCE */ - 1254, /* U+002CCF */ - 1255, /* U+002CD0 */ - 1255, /* U+002CD1 */ - 1256, /* U+002CD2 */ - 1256, /* U+002CD3 */ - 1257, /* U+002CD4 */ - 1257, /* U+002CD5 */ - 1258, /* U+002CD6 */ - 1258, /* U+002CD7 */ - 1259, /* U+002CD8 */ - 1259, /* U+002CD9 */ - 1260, /* U+002CDA */ - 1260, /* U+002CDB */ - 1261, /* U+002CDC */ - 1261, /* U+002CDD */ - 1262, /* U+002CDE */ - 1262, /* U+002CDF */ - 1263, /* U+002CE0 */ - 1263, /* U+002CE1 */ - 1264, /* U+002CE2 */ - 1264, /* U+002CE3 */ + 324, /* U+002C7E */ + 325, /* U+002C7F */ + 1218, /* U+002C80 */ + 1218, /* U+002C81 */ + 1219, /* U+002C82 */ + 1219, /* U+002C83 */ + 1220, /* U+002C84 */ + 1220, /* U+002C85 */ + 1221, /* U+002C86 */ + 1221, /* U+002C87 */ + 1222, /* U+002C88 */ + 1222, /* U+002C89 */ + 1223, /* U+002C8A */ + 1223, /* U+002C8B */ + 1224, /* U+002C8C */ + 1224, /* U+002C8D */ + 1225, /* U+002C8E */ + 1225, /* U+002C8F */ + 1226, /* U+002C90 */ + 1226, /* U+002C91 */ + 1227, /* U+002C92 */ + 1227, /* U+002C93 */ + 1228, /* U+002C94 */ + 1228, /* U+002C95 */ + 1229, /* U+002C96 */ + 1229, /* U+002C97 */ + 1230, /* U+002C98 */ + 1230, /* U+002C99 */ + 1231, /* U+002C9A */ + 1231, /* U+002C9B */ + 1232, /* U+002C9C */ + 1232, /* U+002C9D */ + 1233, /* U+002C9E */ + 1233, /* U+002C9F */ + 1234, /* U+002CA0 */ + 1234, /* U+002CA1 */ + 1235, /* U+002CA2 */ + 1235, /* U+002CA3 */ + 1236, /* U+002CA4 */ + 1236, /* U+002CA5 */ + 1237, /* U+002CA6 */ + 1237, /* U+002CA7 */ + 1238, /* U+002CA8 */ + 1238, /* U+002CA9 */ + 1239, /* U+002CAA */ + 1239, /* U+002CAB */ + 1240, /* U+002CAC */ + 1240, /* U+002CAD */ + 1241, /* U+002CAE */ + 1241, /* U+002CAF */ + 1242, /* U+002CB0 */ + 1242, /* U+002CB1 */ + 1243, /* U+002CB2 */ + 1243, /* U+002CB3 */ + 1244, /* U+002CB4 */ + 1244, /* U+002CB5 */ + 1245, /* U+002CB6 */ + 1245, /* U+002CB7 */ + 1246, /* U+002CB8 */ + 1246, /* U+002CB9 */ + 1247, /* U+002CBA */ + 1247, /* U+002CBB */ + 1248, /* U+002CBC */ + 1248, /* U+002CBD */ + 1249, /* U+002CBE */ + 1249, /* U+002CBF */ + 1250, /* U+002CC0 */ + 1250, /* U+002CC1 */ + 1251, /* U+002CC2 */ + 1251, /* U+002CC3 */ + 1252, /* U+002CC4 */ + 1252, /* U+002CC5 */ + 1253, /* U+002CC6 */ + 1253, /* U+002CC7 */ + 1254, /* U+002CC8 */ + 1254, /* U+002CC9 */ + 1255, /* U+002CCA */ + 1255, /* U+002CCB */ + 1256, /* U+002CCC */ + 1256, /* U+002CCD */ + 1257, /* U+002CCE */ + 1257, /* U+002CCF */ + 1258, /* U+002CD0 */ + 1258, /* U+002CD1 */ + 1259, /* U+002CD2 */ + 1259, /* U+002CD3 */ + 1260, /* U+002CD4 */ + 1260, /* U+002CD5 */ + 1261, /* U+002CD6 */ + 1261, /* U+002CD7 */ + 1262, /* U+002CD8 */ + 1262, /* U+002CD9 */ + 1263, /* U+002CDA */ + 1263, /* U+002CDB */ + 1264, /* U+002CDC */ + 1264, /* U+002CDD */ + 1265, /* U+002CDE */ + 1265, /* U+002CDF */ + 1266, /* U+002CE0 */ + 1266, /* U+002CE1 */ + 1267, /* U+002CE2 */ + 1267, /* U+002CE3 */ 0, /* U+002CE4 */ 0, /* U+002CE5 */ 0, /* U+002CE6 */ @@ -11777,15 +11912,15 @@ static const uint16 case_map[4631] = 0, /* U+002CE8 */ 0, /* U+002CE9 */ 0, /* U+002CEA */ - 1265, /* U+002CEB */ - 1265, /* U+002CEC */ - 1266, /* U+002CED */ - 1266, /* U+002CEE */ + 1268, /* U+002CEB */ + 1268, /* U+002CEC */ + 1269, /* U+002CED */ + 1269, /* U+002CEE */ 0, /* U+002CEF */ 0, /* U+002CF0 */ 0, /* U+002CF1 */ - 1267, /* U+002CF2 */ - 1267, /* U+002CF3 */ + 1270, /* U+002CF2 */ + 1270, /* U+002CF3 */ 0, /* U+002CF4 */ 0, /* U+002CF5 */ 0, /* U+002CF6 */ @@ -11798,98 +11933,98 @@ static const uint16 case_map[4631] = 0, /* U+002CFD */ 0, /* U+002CFE */ 0, /* U+002CFF */ - 605, /* U+002D00 */ - 606, /* U+002D01 */ - 607, /* U+002D02 */ - 608, /* U+002D03 */ - 609, /* U+002D04 */ - 610, /* U+002D05 */ - 611, /* U+002D06 */ - 612, /* U+002D07 */ - 613, /* U+002D08 */ - 614, /* U+002D09 */ - 615, /* U+002D0A */ - 616, /* U+002D0B */ - 617, /* U+002D0C */ - 618, /* U+002D0D */ - 619, /* U+002D0E */ - 620, /* U+002D0F */ - 621, /* U+002D10 */ - 622, /* U+002D11 */ - 623, /* U+002D12 */ - 624, /* U+002D13 */ - 625, /* U+002D14 */ - 626, /* U+002D15 */ - 627, /* U+002D16 */ - 628, /* U+002D17 */ - 629, /* U+002D18 */ - 630, /* U+002D19 */ - 631, /* U+002D1A */ - 632, /* U+002D1B */ - 633, /* U+002D1C */ - 634, /* U+002D1D */ - 635, /* U+002D1E */ - 636, /* U+002D1F */ - 637, /* U+002D20 */ - 638, /* U+002D21 */ - 639, /* U+002D22 */ - 640, /* U+002D23 */ - 641, /* U+002D24 */ - 642, /* U+002D25 */ + 607, /* U+002D00 */ + 608, /* U+002D01 */ + 609, /* U+002D02 */ + 610, /* U+002D03 */ + 611, /* U+002D04 */ + 612, /* U+002D05 */ + 613, /* U+002D06 */ + 614, /* U+002D07 */ + 615, /* U+002D08 */ + 616, /* U+002D09 */ + 617, /* U+002D0A */ + 618, /* U+002D0B */ + 619, /* U+002D0C */ + 620, /* U+002D0D */ + 621, /* U+002D0E */ + 622, /* U+002D0F */ + 623, /* U+002D10 */ + 624, /* U+002D11 */ + 625, /* U+002D12 */ + 626, /* U+002D13 */ + 627, /* U+002D14 */ + 628, /* U+002D15 */ + 629, /* U+002D16 */ + 630, /* U+002D17 */ + 631, /* U+002D18 */ + 632, /* U+002D19 */ + 633, /* U+002D1A */ + 634, /* U+002D1B */ + 635, /* U+002D1C */ + 636, /* U+002D1D */ + 637, /* U+002D1E */ + 638, /* U+002D1F */ + 639, /* U+002D20 */ + 640, /* U+002D21 */ + 641, /* U+002D22 */ + 642, /* U+002D23 */ + 643, /* U+002D24 */ + 644, /* U+002D25 */ 0, /* U+002D26 */ - 643, /* U+002D27 */ + 645, /* U+002D27 */ 0, /* U+002D28 */ 0, /* U+002D29 */ 0, /* U+002D2A */ 0, /* U+002D2B */ 0, /* U+002D2C */ - 644, /* U+002D2D */ - 1268, /* U+00A640 */ - 1268, /* U+00A641 */ - 1269, /* U+00A642 */ - 1269, /* U+00A643 */ - 1270, /* U+00A644 */ - 1270, /* U+00A645 */ - 1271, /* U+00A646 */ - 1271, /* U+00A647 */ - 1272, /* U+00A648 */ - 1272, /* U+00A649 */ - 1273, /* U+00A64A */ - 1273, /* U+00A64B */ - 1274, /* U+00A64C */ - 1274, /* U+00A64D */ - 1275, /* U+00A64E */ - 1275, /* U+00A64F */ - 1276, /* U+00A650 */ - 1276, /* U+00A651 */ - 1277, /* U+00A652 */ - 1277, /* U+00A653 */ - 1278, /* U+00A654 */ - 1278, /* U+00A655 */ - 1279, /* U+00A656 */ - 1279, /* U+00A657 */ - 1280, /* U+00A658 */ - 1280, /* U+00A659 */ - 1281, /* U+00A65A */ - 1281, /* U+00A65B */ - 1282, /* U+00A65C */ - 1282, /* U+00A65D */ - 1283, /* U+00A65E */ - 1283, /* U+00A65F */ - 1284, /* U+00A660 */ - 1284, /* U+00A661 */ - 1285, /* U+00A662 */ - 1285, /* U+00A663 */ - 1286, /* U+00A664 */ - 1286, /* U+00A665 */ - 1287, /* U+00A666 */ - 1287, /* U+00A667 */ - 1288, /* U+00A668 */ - 1288, /* U+00A669 */ - 1289, /* U+00A66A */ - 1289, /* U+00A66B */ - 1290, /* U+00A66C */ - 1290, /* U+00A66D */ + 646, /* U+002D2D */ + 1271, /* U+00A640 */ + 1271, /* U+00A641 */ + 1272, /* U+00A642 */ + 1272, /* U+00A643 */ + 1273, /* U+00A644 */ + 1273, /* U+00A645 */ + 1274, /* U+00A646 */ + 1274, /* U+00A647 */ + 1275, /* U+00A648 */ + 1275, /* U+00A649 */ + 1276, /* U+00A64A */ + 1276, /* U+00A64B */ + 1277, /* U+00A64C */ + 1277, /* U+00A64D */ + 1278, /* U+00A64E */ + 1278, /* U+00A64F */ + 1279, /* U+00A650 */ + 1279, /* U+00A651 */ + 1280, /* U+00A652 */ + 1280, /* U+00A653 */ + 1281, /* U+00A654 */ + 1281, /* U+00A655 */ + 1282, /* U+00A656 */ + 1282, /* U+00A657 */ + 1283, /* U+00A658 */ + 1283, /* U+00A659 */ + 1284, /* U+00A65A */ + 1284, /* U+00A65B */ + 1285, /* U+00A65C */ + 1285, /* U+00A65D */ + 1286, /* U+00A65E */ + 1286, /* U+00A65F */ + 1287, /* U+00A660 */ + 1287, /* U+00A661 */ + 1288, /* U+00A662 */ + 1288, /* U+00A663 */ + 1289, /* U+00A664 */ + 1289, /* U+00A665 */ + 1290, /* U+00A666 */ + 1290, /* U+00A667 */ + 1291, /* U+00A668 */ + 1291, /* U+00A669 */ + 1292, /* U+00A66A */ + 1292, /* U+00A66B */ + 1293, /* U+00A66C */ + 1293, /* U+00A66D */ 0, /* U+00A66E */ 0, /* U+00A66F */ 0, /* U+00A670 */ @@ -11908,34 +12043,34 @@ static const uint16 case_map[4631] = 0, /* U+00A67D */ 0, /* U+00A67E */ 0, /* U+00A67F */ - 1291, /* U+00A680 */ - 1291, /* U+00A681 */ - 1292, /* U+00A682 */ - 1292, /* U+00A683 */ - 1293, /* U+00A684 */ - 1293, /* U+00A685 */ - 1294, /* U+00A686 */ - 1294, /* U+00A687 */ - 1295, /* U+00A688 */ - 1295, /* U+00A689 */ - 1296, /* U+00A68A */ - 1296, /* U+00A68B */ - 1297, /* U+00A68C */ - 1297, /* U+00A68D */ - 1298, /* U+00A68E */ - 1298, /* U+00A68F */ - 1299, /* U+00A690 */ - 1299, /* U+00A691 */ - 1300, /* U+00A692 */ - 1300, /* U+00A693 */ - 1301, /* U+00A694 */ - 1301, /* U+00A695 */ - 1302, /* U+00A696 */ - 1302, /* U+00A697 */ - 1303, /* U+00A698 */ - 1303, /* U+00A699 */ - 1304, /* U+00A69A */ - 1304, /* U+00A69B */ + 1294, /* U+00A680 */ + 1294, /* U+00A681 */ + 1295, /* U+00A682 */ + 1295, /* U+00A683 */ + 1296, /* U+00A684 */ + 1296, /* U+00A685 */ + 1297, /* U+00A686 */ + 1297, /* U+00A687 */ + 1298, /* U+00A688 */ + 1298, /* U+00A689 */ + 1299, /* U+00A68A */ + 1299, /* U+00A68B */ + 1300, /* U+00A68C */ + 1300, /* U+00A68D */ + 1301, /* U+00A68E */ + 1301, /* U+00A68F */ + 1302, /* U+00A690 */ + 1302, /* U+00A691 */ + 1303, /* U+00A692 */ + 1303, /* U+00A693 */ + 1304, /* U+00A694 */ + 1304, /* U+00A695 */ + 1305, /* U+00A696 */ + 1305, /* U+00A697 */ + 1306, /* U+00A698 */ + 1306, /* U+00A699 */ + 1307, /* U+00A69A */ + 1307, /* U+00A69B */ 0, /* U+00A69C */ 0, /* U+00A69D */ 0, /* U+00A69E */ @@ -12070,84 +12205,84 @@ static const uint16 case_map[4631] = 0, /* U+00A71F */ 0, /* U+00A720 */ 0, /* U+00A721 */ - 1305, /* U+00A722 */ - 1305, /* U+00A723 */ - 1306, /* U+00A724 */ - 1306, /* U+00A725 */ - 1307, /* U+00A726 */ - 1307, /* U+00A727 */ - 1308, /* U+00A728 */ - 1308, /* U+00A729 */ - 1309, /* U+00A72A */ - 1309, /* U+00A72B */ - 1310, /* U+00A72C */ - 1310, /* U+00A72D */ - 1311, /* U+00A72E */ - 1311, /* U+00A72F */ + 1308, /* U+00A722 */ + 1308, /* U+00A723 */ + 1309, /* U+00A724 */ + 1309, /* U+00A725 */ + 1310, /* U+00A726 */ + 1310, /* U+00A727 */ + 1311, /* U+00A728 */ + 1311, /* U+00A729 */ + 1312, /* U+00A72A */ + 1312, /* U+00A72B */ + 1313, /* U+00A72C */ + 1313, /* U+00A72D */ + 1314, /* U+00A72E */ + 1314, /* U+00A72F */ 0, /* U+00A730 */ 0, /* U+00A731 */ - 1312, /* U+00A732 */ - 1312, /* U+00A733 */ - 1313, /* U+00A734 */ - 1313, /* U+00A735 */ - 1314, /* U+00A736 */ - 1314, /* U+00A737 */ - 1315, /* U+00A738 */ - 1315, /* U+00A739 */ - 1316, /* U+00A73A */ - 1316, /* U+00A73B */ - 1317, /* U+00A73C */ - 1317, /* U+00A73D */ - 1318, /* U+00A73E */ - 1318, /* U+00A73F */ - 1319, /* U+00A740 */ - 1319, /* U+00A741 */ - 1320, /* U+00A742 */ - 1320, /* U+00A743 */ - 1321, /* U+00A744 */ - 1321, /* U+00A745 */ - 1322, /* U+00A746 */ - 1322, /* U+00A747 */ - 1323, /* U+00A748 */ - 1323, /* U+00A749 */ - 1324, /* U+00A74A */ - 1324, /* U+00A74B */ - 1325, /* U+00A74C */ - 1325, /* U+00A74D */ - 1326, /* U+00A74E */ - 1326, /* U+00A74F */ - 1327, /* U+00A750 */ - 1327, /* U+00A751 */ - 1328, /* U+00A752 */ - 1328, /* U+00A753 */ - 1329, /* U+00A754 */ - 1329, /* U+00A755 */ - 1330, /* U+00A756 */ - 1330, /* U+00A757 */ - 1331, /* U+00A758 */ - 1331, /* U+00A759 */ - 1332, /* U+00A75A */ - 1332, /* U+00A75B */ - 1333, /* U+00A75C */ - 1333, /* U+00A75D */ - 1334, /* U+00A75E */ - 1334, /* U+00A75F */ - 1335, /* U+00A760 */ - 1335, /* U+00A761 */ - 1336, /* U+00A762 */ - 1336, /* U+00A763 */ - 1337, /* U+00A764 */ - 1337, /* U+00A765 */ - 1338, /* U+00A766 */ - 1338, /* U+00A767 */ - 1339, /* U+00A768 */ - 1339, /* U+00A769 */ - 1340, /* U+00A76A */ - 1340, /* U+00A76B */ - 1341, /* U+00A76C */ - 1341, /* U+00A76D */ - 1342, /* U+00A76E */ - 1342, /* U+00A76F */ + 1315, /* U+00A732 */ + 1315, /* U+00A733 */ + 1316, /* U+00A734 */ + 1316, /* U+00A735 */ + 1317, /* U+00A736 */ + 1317, /* U+00A737 */ + 1318, /* U+00A738 */ + 1318, /* U+00A739 */ + 1319, /* U+00A73A */ + 1319, /* U+00A73B */ + 1320, /* U+00A73C */ + 1320, /* U+00A73D */ + 1321, /* U+00A73E */ + 1321, /* U+00A73F */ + 1322, /* U+00A740 */ + 1322, /* U+00A741 */ + 1323, /* U+00A742 */ + 1323, /* U+00A743 */ + 1324, /* U+00A744 */ + 1324, /* U+00A745 */ + 1325, /* U+00A746 */ + 1325, /* U+00A747 */ + 1326, /* U+00A748 */ + 1326, /* U+00A749 */ + 1327, /* U+00A74A */ + 1327, /* U+00A74B */ + 1328, /* U+00A74C */ + 1328, /* U+00A74D */ + 1329, /* U+00A74E */ + 1329, /* U+00A74F */ + 1330, /* U+00A750 */ + 1330, /* U+00A751 */ + 1331, /* U+00A752 */ + 1331, /* U+00A753 */ + 1332, /* U+00A754 */ + 1332, /* U+00A755 */ + 1333, /* U+00A756 */ + 1333, /* U+00A757 */ + 1334, /* U+00A758 */ + 1334, /* U+00A759 */ + 1335, /* U+00A75A */ + 1335, /* U+00A75B */ + 1336, /* U+00A75C */ + 1336, /* U+00A75D */ + 1337, /* U+00A75E */ + 1337, /* U+00A75F */ + 1338, /* U+00A760 */ + 1338, /* U+00A761 */ + 1339, /* U+00A762 */ + 1339, /* U+00A763 */ + 1340, /* U+00A764 */ + 1340, /* U+00A765 */ + 1341, /* U+00A766 */ + 1341, /* U+00A767 */ + 1342, /* U+00A768 */ + 1342, /* U+00A769 */ + 1343, /* U+00A76A */ + 1343, /* U+00A76B */ + 1344, /* U+00A76C */ + 1344, /* U+00A76D */ + 1345, /* U+00A76E */ + 1345, /* U+00A76F */ 0, /* U+00A770 */ 0, /* U+00A771 */ 0, /* U+00A772 */ @@ -12157,106 +12292,106 @@ static const uint16 case_map[4631] = 0, /* U+00A776 */ 0, /* U+00A777 */ 0, /* U+00A778 */ - 1343, /* U+00A779 */ - 1343, /* U+00A77A */ - 1344, /* U+00A77B */ - 1344, /* U+00A77C */ - 832, /* U+00A77D */ - 1345, /* U+00A77E */ - 1345, /* U+00A77F */ - 1346, /* U+00A780 */ - 1346, /* U+00A781 */ - 1347, /* U+00A782 */ - 1347, /* U+00A783 */ - 1348, /* U+00A784 */ - 1348, /* U+00A785 */ - 1349, /* U+00A786 */ - 1349, /* U+00A787 */ + 1346, /* U+00A779 */ + 1346, /* U+00A77A */ + 1347, /* U+00A77B */ + 1347, /* U+00A77C */ + 835, /* U+00A77D */ + 1348, /* U+00A77E */ + 1348, /* U+00A77F */ + 1349, /* U+00A780 */ + 1349, /* U+00A781 */ + 1350, /* U+00A782 */ + 1350, /* U+00A783 */ + 1351, /* U+00A784 */ + 1351, /* U+00A785 */ + 1352, /* U+00A786 */ + 1352, /* U+00A787 */ 0, /* U+00A788 */ 0, /* U+00A789 */ 0, /* U+00A78A */ - 1350, /* U+00A78B */ - 1350, /* U+00A78C */ - 338, /* U+00A78D */ + 1353, /* U+00A78B */ + 1353, /* U+00A78C */ + 340, /* U+00A78D */ 0, /* U+00A78E */ 0, /* U+00A78F */ - 1351, /* U+00A790 */ - 1351, /* U+00A791 */ - 1352, /* U+00A792 */ - 1352, /* U+00A793 */ - 1353, /* U+00A794 */ + 1354, /* U+00A790 */ + 1354, /* U+00A791 */ + 1355, /* U+00A792 */ + 1355, /* U+00A793 */ + 1356, /* U+00A794 */ 0, /* U+00A795 */ - 1354, /* U+00A796 */ - 1354, /* U+00A797 */ - 1355, /* U+00A798 */ - 1355, /* U+00A799 */ - 1356, /* U+00A79A */ - 1356, /* U+00A79B */ - 1357, /* U+00A79C */ - 1357, /* U+00A79D */ - 1358, /* U+00A79E */ - 1358, /* U+00A79F */ - 1359, /* U+00A7A0 */ - 1359, /* U+00A7A1 */ - 1360, /* U+00A7A2 */ - 1360, /* U+00A7A3 */ - 1361, /* U+00A7A4 */ - 1361, /* U+00A7A5 */ - 1362, /* U+00A7A6 */ - 1362, /* U+00A7A7 */ - 1363, /* U+00A7A8 */ - 1363, /* U+00A7A9 */ - 339, /* U+00A7AA */ - 336, /* U+00A7AB */ - 337, /* U+00A7AC */ - 342, /* U+00A7AD */ - 340, /* U+00A7AE */ + 1357, /* U+00A796 */ + 1357, /* U+00A797 */ + 1358, /* U+00A798 */ + 1358, /* U+00A799 */ + 1359, /* U+00A79A */ + 1359, /* U+00A79B */ + 1360, /* U+00A79C */ + 1360, /* U+00A79D */ + 1361, /* U+00A79E */ + 1361, /* U+00A79F */ + 1362, /* U+00A7A0 */ + 1362, /* U+00A7A1 */ + 1363, /* U+00A7A2 */ + 1363, /* U+00A7A3 */ + 1364, /* U+00A7A4 */ + 1364, /* U+00A7A5 */ + 1365, /* U+00A7A6 */ + 1365, /* U+00A7A7 */ + 1366, /* U+00A7A8 */ + 1366, /* U+00A7A9 */ + 341, /* U+00A7AA */ + 337, /* U+00A7AB */ + 338, /* U+00A7AC */ + 344, /* U+00A7AD */ + 342, /* U+00A7AE */ 0, /* U+00A7AF */ - 348, /* U+00A7B0 */ - 346, /* U+00A7B1 */ - 347, /* U+00A7B2 */ - 1364, /* U+00A7B3 */ - 1365, /* U+00A7B4 */ - 1365, /* U+00A7B5 */ - 1366, /* U+00A7B6 */ - 1366, /* U+00A7B7 */ - 1367, /* U+00A7B8 */ - 1367, /* U+00A7B9 */ - 1368, /* U+00A7BA */ - 1368, /* U+00A7BB */ - 1369, /* U+00A7BC */ - 1369, /* U+00A7BD */ - 1370, /* U+00A7BE */ - 1370, /* U+00A7BF */ - 1371, /* U+00A7C0 */ - 1371, /* U+00A7C1 */ - 1372, /* U+00A7C2 */ - 1372, /* U+00A7C3 */ - 1353, /* U+00A7C4 */ - 345, /* U+00A7C5 */ - 834, /* U+00A7C6 */ - 1373, /* U+00A7C7 */ - 1373, /* U+00A7C8 */ - 1374, /* U+00A7C9 */ - 1374, /* U+00A7CA */ - 0, /* U+00A7CB */ - 0, /* U+00A7CC */ - 0, /* U+00A7CD */ + 350, /* U+00A7B0 */ + 348, /* U+00A7B1 */ + 349, /* U+00A7B2 */ + 1367, /* U+00A7B3 */ + 1368, /* U+00A7B4 */ + 1368, /* U+00A7B5 */ + 1369, /* U+00A7B6 */ + 1369, /* U+00A7B7 */ + 1370, /* U+00A7B8 */ + 1370, /* U+00A7B9 */ + 1371, /* U+00A7BA */ + 1371, /* U+00A7BB */ + 1372, /* U+00A7BC */ + 1372, /* U+00A7BD */ + 1373, /* U+00A7BE */ + 1373, /* U+00A7BF */ + 1374, /* U+00A7C0 */ + 1374, /* U+00A7C1 */ + 1375, /* U+00A7C2 */ + 1375, /* U+00A7C3 */ + 1356, /* U+00A7C4 */ + 347, /* U+00A7C5 */ + 837, /* U+00A7C6 */ + 1376, /* U+00A7C7 */ + 1376, /* U+00A7C8 */ + 1377, /* U+00A7C9 */ + 1377, /* U+00A7CA */ + 339, /* U+00A7CB */ + 1378, /* U+00A7CC */ + 1378, /* U+00A7CD */ 0, /* U+00A7CE */ 0, /* U+00A7CF */ - 1375, /* U+00A7D0 */ - 1375, /* U+00A7D1 */ + 1379, /* U+00A7D0 */ + 1379, /* U+00A7D1 */ 0, /* U+00A7D2 */ 0, /* U+00A7D3 */ 0, /* U+00A7D4 */ 0, /* U+00A7D5 */ - 1376, /* U+00A7D6 */ - 1376, /* U+00A7D7 */ - 1377, /* U+00A7D8 */ - 1377, /* U+00A7D9 */ - 0, /* U+00A7DA */ - 0, /* U+00A7DB */ - 0, /* U+00A7DC */ + 1380, /* U+00A7D6 */ + 1380, /* U+00A7D7 */ + 1381, /* U+00A7D8 */ + 1381, /* U+00A7D9 */ + 1382, /* U+00A7DA */ + 1382, /* U+00A7DB */ + 247, /* U+00A7DC */ 0, /* U+00A7DD */ 0, /* U+00A7DE */ 0, /* U+00A7DF */ @@ -12281,9 +12416,9 @@ static const uint16 case_map[4631] = 0, /* U+00A7F2 */ 0, /* U+00A7F3 */ 0, /* U+00A7F4 */ - 1378, /* U+00A7F5 */ - 1378, /* U+00A7F6 */ - 1364, /* U+00AB53 */ + 1383, /* U+00A7F5 */ + 1383, /* U+00A7F6 */ + 1367, /* U+00AB53 */ 0, /* U+00AB54 */ 0, /* U+00AB55 */ 0, /* U+00AB56 */ @@ -12312,93 +12447,93 @@ static const uint16 case_map[4631] = 0, /* U+00AB6D */ 0, /* U+00AB6E */ 0, /* U+00AB6F */ - 691, /* U+00AB70 */ - 692, /* U+00AB71 */ - 693, /* U+00AB72 */ - 694, /* U+00AB73 */ - 695, /* U+00AB74 */ - 696, /* U+00AB75 */ - 697, /* U+00AB76 */ - 698, /* U+00AB77 */ - 699, /* U+00AB78 */ - 700, /* U+00AB79 */ - 701, /* U+00AB7A */ - 702, /* U+00AB7B */ - 703, /* U+00AB7C */ - 704, /* U+00AB7D */ - 705, /* U+00AB7E */ - 706, /* U+00AB7F */ - 707, /* U+00AB80 */ - 708, /* U+00AB81 */ - 709, /* U+00AB82 */ - 710, /* U+00AB83 */ - 711, /* U+00AB84 */ - 712, /* U+00AB85 */ - 713, /* U+00AB86 */ - 714, /* U+00AB87 */ - 715, /* U+00AB88 */ - 716, /* U+00AB89 */ - 717, /* U+00AB8A */ - 718, /* U+00AB8B */ - 719, /* U+00AB8C */ - 720, /* U+00AB8D */ - 721, /* U+00AB8E */ - 722, /* U+00AB8F */ - 723, /* U+00AB90 */ - 724, /* U+00AB91 */ - 725, /* U+00AB92 */ - 726, /* U+00AB93 */ - 727, /* U+00AB94 */ - 728, /* U+00AB95 */ - 729, /* U+00AB96 */ - 730, /* U+00AB97 */ - 731, /* U+00AB98 */ - 732, /* U+00AB99 */ - 733, /* U+00AB9A */ - 734, /* U+00AB9B */ - 735, /* U+00AB9C */ - 736, /* U+00AB9D */ - 737, /* U+00AB9E */ - 738, /* U+00AB9F */ - 739, /* U+00ABA0 */ - 740, /* U+00ABA1 */ - 741, /* U+00ABA2 */ - 742, /* U+00ABA3 */ - 743, /* U+00ABA4 */ - 744, /* U+00ABA5 */ - 745, /* U+00ABA6 */ - 746, /* U+00ABA7 */ - 747, /* U+00ABA8 */ - 748, /* U+00ABA9 */ - 749, /* U+00ABAA */ - 750, /* U+00ABAB */ - 751, /* U+00ABAC */ - 752, /* U+00ABAD */ - 753, /* U+00ABAE */ - 754, /* U+00ABAF */ - 755, /* U+00ABB0 */ - 756, /* U+00ABB1 */ - 757, /* U+00ABB2 */ - 758, /* U+00ABB3 */ - 759, /* U+00ABB4 */ - 760, /* U+00ABB5 */ - 761, /* U+00ABB6 */ - 762, /* U+00ABB7 */ - 763, /* U+00ABB8 */ - 764, /* U+00ABB9 */ - 765, /* U+00ABBA */ - 766, /* U+00ABBB */ - 767, /* U+00ABBC */ - 768, /* U+00ABBD */ - 769, /* U+00ABBE */ - 770, /* U+00ABBF */ - 1379, /* U+00FB00 */ - 1380, /* U+00FB01 */ - 1381, /* U+00FB02 */ - 1382, /* U+00FB03 */ - 1383, /* U+00FB04 */ - 1384, /* U+00FB05 */ - 1385, /* U+00FB06 */ + 693, /* U+00AB70 */ + 694, /* U+00AB71 */ + 695, /* U+00AB72 */ + 696, /* U+00AB73 */ + 697, /* U+00AB74 */ + 698, /* U+00AB75 */ + 699, /* U+00AB76 */ + 700, /* U+00AB77 */ + 701, /* U+00AB78 */ + 702, /* U+00AB79 */ + 703, /* U+00AB7A */ + 704, /* U+00AB7B */ + 705, /* U+00AB7C */ + 706, /* U+00AB7D */ + 707, /* U+00AB7E */ + 708, /* U+00AB7F */ + 709, /* U+00AB80 */ + 710, /* U+00AB81 */ + 711, /* U+00AB82 */ + 712, /* U+00AB83 */ + 713, /* U+00AB84 */ + 714, /* U+00AB85 */ + 715, /* U+00AB86 */ + 716, /* U+00AB87 */ + 717, /* U+00AB88 */ + 718, /* U+00AB89 */ + 719, /* U+00AB8A */ + 720, /* U+00AB8B */ + 721, /* U+00AB8C */ + 722, /* U+00AB8D */ + 723, /* U+00AB8E */ + 724, /* U+00AB8F */ + 725, /* U+00AB90 */ + 726, /* U+00AB91 */ + 727, /* U+00AB92 */ + 728, /* U+00AB93 */ + 729, /* U+00AB94 */ + 730, /* U+00AB95 */ + 731, /* U+00AB96 */ + 732, /* U+00AB97 */ + 733, /* U+00AB98 */ + 734, /* U+00AB99 */ + 735, /* U+00AB9A */ + 736, /* U+00AB9B */ + 737, /* U+00AB9C */ + 738, /* U+00AB9D */ + 739, /* U+00AB9E */ + 740, /* U+00AB9F */ + 741, /* U+00ABA0 */ + 742, /* U+00ABA1 */ + 743, /* U+00ABA2 */ + 744, /* U+00ABA3 */ + 745, /* U+00ABA4 */ + 746, /* U+00ABA5 */ + 747, /* U+00ABA6 */ + 748, /* U+00ABA7 */ + 749, /* U+00ABA8 */ + 750, /* U+00ABA9 */ + 751, /* U+00ABAA */ + 752, /* U+00ABAB */ + 753, /* U+00ABAC */ + 754, /* U+00ABAD */ + 755, /* U+00ABAE */ + 756, /* U+00ABAF */ + 757, /* U+00ABB0 */ + 758, /* U+00ABB1 */ + 759, /* U+00ABB2 */ + 760, /* U+00ABB3 */ + 761, /* U+00ABB4 */ + 762, /* U+00ABB5 */ + 763, /* U+00ABB6 */ + 764, /* U+00ABB7 */ + 765, /* U+00ABB8 */ + 766, /* U+00ABB9 */ + 767, /* U+00ABBA */ + 768, /* U+00ABBB */ + 769, /* U+00ABBC */ + 770, /* U+00ABBD */ + 771, /* U+00ABBE */ + 772, /* U+00ABBF */ + 1384, /* U+00FB00 */ + 1385, /* U+00FB01 */ + 1386, /* U+00FB02 */ + 1387, /* U+00FB03 */ + 1388, /* U+00FB04 */ + 1389, /* U+00FB05 */ + 1390, /* U+00FB06 */ 0, /* U+00FB07 */ 0, /* U+00FB08 */ 0, /* U+00FB09 */ @@ -12411,149 +12546,149 @@ static const uint16 case_map[4631] = 0, /* U+00FB10 */ 0, /* U+00FB11 */ 0, /* U+00FB12 */ - 1386, /* U+00FB13 */ - 1387, /* U+00FB14 */ - 1388, /* U+00FB15 */ - 1389, /* U+00FB16 */ - 1390, /* U+00FB17 */ - 1391, /* U+00FF21 */ - 1392, /* U+00FF22 */ - 1393, /* U+00FF23 */ - 1394, /* U+00FF24 */ - 1395, /* U+00FF25 */ - 1396, /* U+00FF26 */ - 1397, /* U+00FF27 */ - 1398, /* U+00FF28 */ - 1399, /* U+00FF29 */ - 1400, /* U+00FF2A */ - 1401, /* U+00FF2B */ - 1402, /* U+00FF2C */ - 1403, /* U+00FF2D */ - 1404, /* U+00FF2E */ - 1405, /* U+00FF2F */ - 1406, /* U+00FF30 */ - 1407, /* U+00FF31 */ - 1408, /* U+00FF32 */ - 1409, /* U+00FF33 */ - 1410, /* U+00FF34 */ - 1411, /* U+00FF35 */ - 1412, /* U+00FF36 */ - 1413, /* U+00FF37 */ - 1414, /* U+00FF38 */ - 1415, /* U+00FF39 */ - 1416, /* U+00FF3A */ + 1391, /* U+00FB13 */ + 1392, /* U+00FB14 */ + 1393, /* U+00FB15 */ + 1394, /* U+00FB16 */ + 1395, /* U+00FB17 */ + 1396, /* U+00FF21 */ + 1397, /* U+00FF22 */ + 1398, /* U+00FF23 */ + 1399, /* U+00FF24 */ + 1400, /* U+00FF25 */ + 1401, /* U+00FF26 */ + 1402, /* U+00FF27 */ + 1403, /* U+00FF28 */ + 1404, /* U+00FF29 */ + 1405, /* U+00FF2A */ + 1406, /* U+00FF2B */ + 1407, /* U+00FF2C */ + 1408, /* U+00FF2D */ + 1409, /* U+00FF2E */ + 1410, /* U+00FF2F */ + 1411, /* U+00FF30 */ + 1412, /* U+00FF31 */ + 1413, /* U+00FF32 */ + 1414, /* U+00FF33 */ + 1415, /* U+00FF34 */ + 1416, /* U+00FF35 */ + 1417, /* U+00FF36 */ + 1418, /* U+00FF37 */ + 1419, /* U+00FF38 */ + 1420, /* U+00FF39 */ + 1421, /* U+00FF3A */ 0, /* U+00FF3B */ 0, /* U+00FF3C */ 0, /* U+00FF3D */ 0, /* U+00FF3E */ 0, /* U+00FF3F */ 0, /* U+00FF40 */ - 1391, /* U+00FF41 */ - 1392, /* U+00FF42 */ - 1393, /* U+00FF43 */ - 1394, /* U+00FF44 */ - 1395, /* U+00FF45 */ - 1396, /* U+00FF46 */ - 1397, /* U+00FF47 */ - 1398, /* U+00FF48 */ - 1399, /* U+00FF49 */ - 1400, /* U+00FF4A */ - 1401, /* U+00FF4B */ - 1402, /* U+00FF4C */ - 1403, /* U+00FF4D */ - 1404, /* U+00FF4E */ - 1405, /* U+00FF4F */ - 1406, /* U+00FF50 */ - 1407, /* U+00FF51 */ - 1408, /* U+00FF52 */ - 1409, /* U+00FF53 */ - 1410, /* U+00FF54 */ - 1411, /* U+00FF55 */ - 1412, /* U+00FF56 */ - 1413, /* U+00FF57 */ - 1414, /* U+00FF58 */ - 1415, /* U+00FF59 */ - 1416, /* U+00FF5A */ - 1417, /* U+010400 */ - 1418, /* U+010401 */ - 1419, /* U+010402 */ - 1420, /* U+010403 */ - 1421, /* U+010404 */ - 1422, /* U+010405 */ - 1423, /* U+010406 */ - 1424, /* U+010407 */ - 1425, /* U+010408 */ - 1426, /* U+010409 */ - 1427, /* U+01040A */ - 1428, /* U+01040B */ - 1429, /* U+01040C */ - 1430, /* U+01040D */ - 1431, /* U+01040E */ - 1432, /* U+01040F */ - 1433, /* U+010410 */ - 1434, /* U+010411 */ - 1435, /* U+010412 */ - 1436, /* U+010413 */ - 1437, /* U+010414 */ - 1438, /* U+010415 */ - 1439, /* U+010416 */ - 1440, /* U+010417 */ - 1441, /* U+010418 */ - 1442, /* U+010419 */ - 1443, /* U+01041A */ - 1444, /* U+01041B */ - 1445, /* U+01041C */ - 1446, /* U+01041D */ - 1447, /* U+01041E */ - 1448, /* U+01041F */ - 1449, /* U+010420 */ - 1450, /* U+010421 */ - 1451, /* U+010422 */ - 1452, /* U+010423 */ - 1453, /* U+010424 */ - 1454, /* U+010425 */ - 1455, /* U+010426 */ - 1456, /* U+010427 */ - 1417, /* U+010428 */ - 1418, /* U+010429 */ - 1419, /* U+01042A */ - 1420, /* U+01042B */ - 1421, /* U+01042C */ - 1422, /* U+01042D */ - 1423, /* U+01042E */ - 1424, /* U+01042F */ - 1425, /* U+010430 */ - 1426, /* U+010431 */ - 1427, /* U+010432 */ - 1428, /* U+010433 */ - 1429, /* U+010434 */ - 1430, /* U+010435 */ - 1431, /* U+010436 */ - 1432, /* U+010437 */ - 1433, /* U+010438 */ - 1434, /* U+010439 */ - 1435, /* U+01043A */ - 1436, /* U+01043B */ - 1437, /* U+01043C */ - 1438, /* U+01043D */ - 1439, /* U+01043E */ - 1440, /* U+01043F */ - 1441, /* U+010440 */ - 1442, /* U+010441 */ - 1443, /* U+010442 */ - 1444, /* U+010443 */ - 1445, /* U+010444 */ - 1446, /* U+010445 */ - 1447, /* U+010446 */ - 1448, /* U+010447 */ - 1449, /* U+010448 */ - 1450, /* U+010449 */ - 1451, /* U+01044A */ - 1452, /* U+01044B */ - 1453, /* U+01044C */ - 1454, /* U+01044D */ - 1455, /* U+01044E */ - 1456, /* U+01044F */ + 1396, /* U+00FF41 */ + 1397, /* U+00FF42 */ + 1398, /* U+00FF43 */ + 1399, /* U+00FF44 */ + 1400, /* U+00FF45 */ + 1401, /* U+00FF46 */ + 1402, /* U+00FF47 */ + 1403, /* U+00FF48 */ + 1404, /* U+00FF49 */ + 1405, /* U+00FF4A */ + 1406, /* U+00FF4B */ + 1407, /* U+00FF4C */ + 1408, /* U+00FF4D */ + 1409, /* U+00FF4E */ + 1410, /* U+00FF4F */ + 1411, /* U+00FF50 */ + 1412, /* U+00FF51 */ + 1413, /* U+00FF52 */ + 1414, /* U+00FF53 */ + 1415, /* U+00FF54 */ + 1416, /* U+00FF55 */ + 1417, /* U+00FF56 */ + 1418, /* U+00FF57 */ + 1419, /* U+00FF58 */ + 1420, /* U+00FF59 */ + 1421, /* U+00FF5A */ + 1422, /* U+010400 */ + 1423, /* U+010401 */ + 1424, /* U+010402 */ + 1425, /* U+010403 */ + 1426, /* U+010404 */ + 1427, /* U+010405 */ + 1428, /* U+010406 */ + 1429, /* U+010407 */ + 1430, /* U+010408 */ + 1431, /* U+010409 */ + 1432, /* U+01040A */ + 1433, /* U+01040B */ + 1434, /* U+01040C */ + 1435, /* U+01040D */ + 1436, /* U+01040E */ + 1437, /* U+01040F */ + 1438, /* U+010410 */ + 1439, /* U+010411 */ + 1440, /* U+010412 */ + 1441, /* U+010413 */ + 1442, /* U+010414 */ + 1443, /* U+010415 */ + 1444, /* U+010416 */ + 1445, /* U+010417 */ + 1446, /* U+010418 */ + 1447, /* U+010419 */ + 1448, /* U+01041A */ + 1449, /* U+01041B */ + 1450, /* U+01041C */ + 1451, /* U+01041D */ + 1452, /* U+01041E */ + 1453, /* U+01041F */ + 1454, /* U+010420 */ + 1455, /* U+010421 */ + 1456, /* U+010422 */ + 1457, /* U+010423 */ + 1458, /* U+010424 */ + 1459, /* U+010425 */ + 1460, /* U+010426 */ + 1461, /* U+010427 */ + 1422, /* U+010428 */ + 1423, /* U+010429 */ + 1424, /* U+01042A */ + 1425, /* U+01042B */ + 1426, /* U+01042C */ + 1427, /* U+01042D */ + 1428, /* U+01042E */ + 1429, /* U+01042F */ + 1430, /* U+010430 */ + 1431, /* U+010431 */ + 1432, /* U+010432 */ + 1433, /* U+010433 */ + 1434, /* U+010434 */ + 1435, /* U+010435 */ + 1436, /* U+010436 */ + 1437, /* U+010437 */ + 1438, /* U+010438 */ + 1439, /* U+010439 */ + 1440, /* U+01043A */ + 1441, /* U+01043B */ + 1442, /* U+01043C */ + 1443, /* U+01043D */ + 1444, /* U+01043E */ + 1445, /* U+01043F */ + 1446, /* U+010440 */ + 1447, /* U+010441 */ + 1448, /* U+010442 */ + 1449, /* U+010443 */ + 1450, /* U+010444 */ + 1451, /* U+010445 */ + 1452, /* U+010446 */ + 1453, /* U+010447 */ + 1454, /* U+010448 */ + 1455, /* U+010449 */ + 1456, /* U+01044A */ + 1457, /* U+01044B */ + 1458, /* U+01044C */ + 1459, /* U+01044D */ + 1460, /* U+01044E */ + 1461, /* U+01044F */ 0, /* U+010450 */ 0, /* U+010451 */ 0, /* U+010452 */ @@ -12650,82 +12785,82 @@ static const uint16 case_map[4631] = 0, /* U+0104AD */ 0, /* U+0104AE */ 0, /* U+0104AF */ - 1457, /* U+0104B0 */ - 1458, /* U+0104B1 */ - 1459, /* U+0104B2 */ - 1460, /* U+0104B3 */ - 1461, /* U+0104B4 */ - 1462, /* U+0104B5 */ - 1463, /* U+0104B6 */ - 1464, /* U+0104B7 */ - 1465, /* U+0104B8 */ - 1466, /* U+0104B9 */ - 1467, /* U+0104BA */ - 1468, /* U+0104BB */ - 1469, /* U+0104BC */ - 1470, /* U+0104BD */ - 1471, /* U+0104BE */ - 1472, /* U+0104BF */ - 1473, /* U+0104C0 */ - 1474, /* U+0104C1 */ - 1475, /* U+0104C2 */ - 1476, /* U+0104C3 */ - 1477, /* U+0104C4 */ - 1478, /* U+0104C5 */ - 1479, /* U+0104C6 */ - 1480, /* U+0104C7 */ - 1481, /* U+0104C8 */ - 1482, /* U+0104C9 */ - 1483, /* U+0104CA */ - 1484, /* U+0104CB */ - 1485, /* U+0104CC */ - 1486, /* U+0104CD */ - 1487, /* U+0104CE */ - 1488, /* U+0104CF */ - 1489, /* U+0104D0 */ - 1490, /* U+0104D1 */ - 1491, /* U+0104D2 */ - 1492, /* U+0104D3 */ + 1462, /* U+0104B0 */ + 1463, /* U+0104B1 */ + 1464, /* U+0104B2 */ + 1465, /* U+0104B3 */ + 1466, /* U+0104B4 */ + 1467, /* U+0104B5 */ + 1468, /* U+0104B6 */ + 1469, /* U+0104B7 */ + 1470, /* U+0104B8 */ + 1471, /* U+0104B9 */ + 1472, /* U+0104BA */ + 1473, /* U+0104BB */ + 1474, /* U+0104BC */ + 1475, /* U+0104BD */ + 1476, /* U+0104BE */ + 1477, /* U+0104BF */ + 1478, /* U+0104C0 */ + 1479, /* U+0104C1 */ + 1480, /* U+0104C2 */ + 1481, /* U+0104C3 */ + 1482, /* U+0104C4 */ + 1483, /* U+0104C5 */ + 1484, /* U+0104C6 */ + 1485, /* U+0104C7 */ + 1486, /* U+0104C8 */ + 1487, /* U+0104C9 */ + 1488, /* U+0104CA */ + 1489, /* U+0104CB */ + 1490, /* U+0104CC */ + 1491, /* U+0104CD */ + 1492, /* U+0104CE */ + 1493, /* U+0104CF */ + 1494, /* U+0104D0 */ + 1495, /* U+0104D1 */ + 1496, /* U+0104D2 */ + 1497, /* U+0104D3 */ 0, /* U+0104D4 */ 0, /* U+0104D5 */ 0, /* U+0104D6 */ 0, /* U+0104D7 */ - 1457, /* U+0104D8 */ - 1458, /* U+0104D9 */ - 1459, /* U+0104DA */ - 1460, /* U+0104DB */ - 1461, /* U+0104DC */ - 1462, /* U+0104DD */ - 1463, /* U+0104DE */ - 1464, /* U+0104DF */ - 1465, /* U+0104E0 */ - 1466, /* U+0104E1 */ - 1467, /* U+0104E2 */ - 1468, /* U+0104E3 */ - 1469, /* U+0104E4 */ - 1470, /* U+0104E5 */ - 1471, /* U+0104E6 */ - 1472, /* U+0104E7 */ - 1473, /* U+0104E8 */ - 1474, /* U+0104E9 */ - 1475, /* U+0104EA */ - 1476, /* U+0104EB */ - 1477, /* U+0104EC */ - 1478, /* U+0104ED */ - 1479, /* U+0104EE */ - 1480, /* U+0104EF */ - 1481, /* U+0104F0 */ - 1482, /* U+0104F1 */ - 1483, /* U+0104F2 */ - 1484, /* U+0104F3 */ - 1485, /* U+0104F4 */ - 1486, /* U+0104F5 */ - 1487, /* U+0104F6 */ - 1488, /* U+0104F7 */ - 1489, /* U+0104F8 */ - 1490, /* U+0104F9 */ - 1491, /* U+0104FA */ - 1492, /* U+0104FB */ + 1462, /* U+0104D8 */ + 1463, /* U+0104D9 */ + 1464, /* U+0104DA */ + 1465, /* U+0104DB */ + 1466, /* U+0104DC */ + 1467, /* U+0104DD */ + 1468, /* U+0104DE */ + 1469, /* U+0104DF */ + 1470, /* U+0104E0 */ + 1471, /* U+0104E1 */ + 1472, /* U+0104E2 */ + 1473, /* U+0104E3 */ + 1474, /* U+0104E4 */ + 1475, /* U+0104E5 */ + 1476, /* U+0104E6 */ + 1477, /* U+0104E7 */ + 1478, /* U+0104E8 */ + 1479, /* U+0104E9 */ + 1480, /* U+0104EA */ + 1481, /* U+0104EB */ + 1482, /* U+0104EC */ + 1483, /* U+0104ED */ + 1484, /* U+0104EE */ + 1485, /* U+0104EF */ + 1486, /* U+0104F0 */ + 1487, /* U+0104F1 */ + 1488, /* U+0104F2 */ + 1489, /* U+0104F3 */ + 1490, /* U+0104F4 */ + 1491, /* U+0104F5 */ + 1492, /* U+0104F6 */ + 1493, /* U+0104F7 */ + 1494, /* U+0104F8 */ + 1495, /* U+0104F9 */ + 1496, /* U+0104FA */ + 1497, /* U+0104FB */ 0, /* U+0104FC */ 0, /* U+0104FD */ 0, /* U+0104FE */ @@ -12842,134 +12977,134 @@ static const uint16 case_map[4631] = 0, /* U+01056D */ 0, /* U+01056E */ 0, /* U+01056F */ - 1493, /* U+010570 */ - 1494, /* U+010571 */ - 1495, /* U+010572 */ - 1496, /* U+010573 */ - 1497, /* U+010574 */ - 1498, /* U+010575 */ - 1499, /* U+010576 */ - 1500, /* U+010577 */ - 1501, /* U+010578 */ - 1502, /* U+010579 */ - 1503, /* U+01057A */ + 1498, /* U+010570 */ + 1499, /* U+010571 */ + 1500, /* U+010572 */ + 1501, /* U+010573 */ + 1502, /* U+010574 */ + 1503, /* U+010575 */ + 1504, /* U+010576 */ + 1505, /* U+010577 */ + 1506, /* U+010578 */ + 1507, /* U+010579 */ + 1508, /* U+01057A */ 0, /* U+01057B */ - 1504, /* U+01057C */ - 1505, /* U+01057D */ - 1506, /* U+01057E */ - 1507, /* U+01057F */ - 1508, /* U+010580 */ - 1509, /* U+010581 */ - 1510, /* U+010582 */ - 1511, /* U+010583 */ - 1512, /* U+010584 */ - 1513, /* U+010585 */ - 1514, /* U+010586 */ - 1515, /* U+010587 */ - 1516, /* U+010588 */ - 1517, /* U+010589 */ - 1518, /* U+01058A */ + 1509, /* U+01057C */ + 1510, /* U+01057D */ + 1511, /* U+01057E */ + 1512, /* U+01057F */ + 1513, /* U+010580 */ + 1514, /* U+010581 */ + 1515, /* U+010582 */ + 1516, /* U+010583 */ + 1517, /* U+010584 */ + 1518, /* U+010585 */ + 1519, /* U+010586 */ + 1520, /* U+010587 */ + 1521, /* U+010588 */ + 1522, /* U+010589 */ + 1523, /* U+01058A */ 0, /* U+01058B */ - 1519, /* U+01058C */ - 1520, /* U+01058D */ - 1521, /* U+01058E */ - 1522, /* U+01058F */ - 1523, /* U+010590 */ - 1524, /* U+010591 */ - 1525, /* U+010592 */ + 1524, /* U+01058C */ + 1525, /* U+01058D */ + 1526, /* U+01058E */ + 1527, /* U+01058F */ + 1528, /* U+010590 */ + 1529, /* U+010591 */ + 1530, /* U+010592 */ 0, /* U+010593 */ - 1526, /* U+010594 */ - 1527, /* U+010595 */ + 1531, /* U+010594 */ + 1532, /* U+010595 */ 0, /* U+010596 */ - 1493, /* U+010597 */ - 1494, /* U+010598 */ - 1495, /* U+010599 */ - 1496, /* U+01059A */ - 1497, /* U+01059B */ - 1498, /* U+01059C */ - 1499, /* U+01059D */ - 1500, /* U+01059E */ - 1501, /* U+01059F */ - 1502, /* U+0105A0 */ - 1503, /* U+0105A1 */ + 1498, /* U+010597 */ + 1499, /* U+010598 */ + 1500, /* U+010599 */ + 1501, /* U+01059A */ + 1502, /* U+01059B */ + 1503, /* U+01059C */ + 1504, /* U+01059D */ + 1505, /* U+01059E */ + 1506, /* U+01059F */ + 1507, /* U+0105A0 */ + 1508, /* U+0105A1 */ 0, /* U+0105A2 */ - 1504, /* U+0105A3 */ - 1505, /* U+0105A4 */ - 1506, /* U+0105A5 */ - 1507, /* U+0105A6 */ - 1508, /* U+0105A7 */ - 1509, /* U+0105A8 */ - 1510, /* U+0105A9 */ - 1511, /* U+0105AA */ - 1512, /* U+0105AB */ - 1513, /* U+0105AC */ - 1514, /* U+0105AD */ - 1515, /* U+0105AE */ - 1516, /* U+0105AF */ - 1517, /* U+0105B0 */ - 1518, /* U+0105B1 */ + 1509, /* U+0105A3 */ + 1510, /* U+0105A4 */ + 1511, /* U+0105A5 */ + 1512, /* U+0105A6 */ + 1513, /* U+0105A7 */ + 1514, /* U+0105A8 */ + 1515, /* U+0105A9 */ + 1516, /* U+0105AA */ + 1517, /* U+0105AB */ + 1518, /* U+0105AC */ + 1519, /* U+0105AD */ + 1520, /* U+0105AE */ + 1521, /* U+0105AF */ + 1522, /* U+0105B0 */ + 1523, /* U+0105B1 */ 0, /* U+0105B2 */ - 1519, /* U+0105B3 */ - 1520, /* U+0105B4 */ - 1521, /* U+0105B5 */ - 1522, /* U+0105B6 */ - 1523, /* U+0105B7 */ - 1524, /* U+0105B8 */ - 1525, /* U+0105B9 */ + 1524, /* U+0105B3 */ + 1525, /* U+0105B4 */ + 1526, /* U+0105B5 */ + 1527, /* U+0105B6 */ + 1528, /* U+0105B7 */ + 1529, /* U+0105B8 */ + 1530, /* U+0105B9 */ 0, /* U+0105BA */ - 1526, /* U+0105BB */ - 1527, /* U+0105BC */ - 1528, /* U+010C80 */ - 1529, /* U+010C81 */ - 1530, /* U+010C82 */ - 1531, /* U+010C83 */ - 1532, /* U+010C84 */ - 1533, /* U+010C85 */ - 1534, /* U+010C86 */ - 1535, /* U+010C87 */ - 1536, /* U+010C88 */ - 1537, /* U+010C89 */ - 1538, /* U+010C8A */ - 1539, /* U+010C8B */ - 1540, /* U+010C8C */ - 1541, /* U+010C8D */ - 1542, /* U+010C8E */ - 1543, /* U+010C8F */ - 1544, /* U+010C90 */ - 1545, /* U+010C91 */ - 1546, /* U+010C92 */ - 1547, /* U+010C93 */ - 1548, /* U+010C94 */ - 1549, /* U+010C95 */ - 1550, /* U+010C96 */ - 1551, /* U+010C97 */ - 1552, /* U+010C98 */ - 1553, /* U+010C99 */ - 1554, /* U+010C9A */ - 1555, /* U+010C9B */ - 1556, /* U+010C9C */ - 1557, /* U+010C9D */ - 1558, /* U+010C9E */ - 1559, /* U+010C9F */ - 1560, /* U+010CA0 */ - 1561, /* U+010CA1 */ - 1562, /* U+010CA2 */ - 1563, /* U+010CA3 */ - 1564, /* U+010CA4 */ - 1565, /* U+010CA5 */ - 1566, /* U+010CA6 */ - 1567, /* U+010CA7 */ - 1568, /* U+010CA8 */ - 1569, /* U+010CA9 */ - 1570, /* U+010CAA */ - 1571, /* U+010CAB */ - 1572, /* U+010CAC */ - 1573, /* U+010CAD */ - 1574, /* U+010CAE */ - 1575, /* U+010CAF */ - 1576, /* U+010CB0 */ - 1577, /* U+010CB1 */ - 1578, /* U+010CB2 */ + 1531, /* U+0105BB */ + 1532, /* U+0105BC */ + 1533, /* U+010C80 */ + 1534, /* U+010C81 */ + 1535, /* U+010C82 */ + 1536, /* U+010C83 */ + 1537, /* U+010C84 */ + 1538, /* U+010C85 */ + 1539, /* U+010C86 */ + 1540, /* U+010C87 */ + 1541, /* U+010C88 */ + 1542, /* U+010C89 */ + 1543, /* U+010C8A */ + 1544, /* U+010C8B */ + 1545, /* U+010C8C */ + 1546, /* U+010C8D */ + 1547, /* U+010C8E */ + 1548, /* U+010C8F */ + 1549, /* U+010C90 */ + 1550, /* U+010C91 */ + 1551, /* U+010C92 */ + 1552, /* U+010C93 */ + 1553, /* U+010C94 */ + 1554, /* U+010C95 */ + 1555, /* U+010C96 */ + 1556, /* U+010C97 */ + 1557, /* U+010C98 */ + 1558, /* U+010C99 */ + 1559, /* U+010C9A */ + 1560, /* U+010C9B */ + 1561, /* U+010C9C */ + 1562, /* U+010C9D */ + 1563, /* U+010C9E */ + 1564, /* U+010C9F */ + 1565, /* U+010CA0 */ + 1566, /* U+010CA1 */ + 1567, /* U+010CA2 */ + 1568, /* U+010CA3 */ + 1569, /* U+010CA4 */ + 1570, /* U+010CA5 */ + 1571, /* U+010CA6 */ + 1572, /* U+010CA7 */ + 1573, /* U+010CA8 */ + 1574, /* U+010CA9 */ + 1575, /* U+010CAA */ + 1576, /* U+010CAB */ + 1577, /* U+010CAC */ + 1578, /* U+010CAD */ + 1579, /* U+010CAE */ + 1580, /* U+010CAF */ + 1581, /* U+010CB0 */ + 1582, /* U+010CB1 */ + 1583, /* U+010CB2 */ 0, /* U+010CB3 */ 0, /* U+010CB4 */ 0, /* U+010CB5 */ @@ -12983,253 +13118,400 @@ static const uint16 case_map[4631] = 0, /* U+010CBD */ 0, /* U+010CBE */ 0, /* U+010CBF */ - 1528, /* U+010CC0 */ - 1529, /* U+010CC1 */ - 1530, /* U+010CC2 */ - 1531, /* U+010CC3 */ - 1532, /* U+010CC4 */ - 1533, /* U+010CC5 */ - 1534, /* U+010CC6 */ - 1535, /* U+010CC7 */ - 1536, /* U+010CC8 */ - 1537, /* U+010CC9 */ - 1538, /* U+010CCA */ - 1539, /* U+010CCB */ - 1540, /* U+010CCC */ - 1541, /* U+010CCD */ - 1542, /* U+010CCE */ - 1543, /* U+010CCF */ - 1544, /* U+010CD0 */ - 1545, /* U+010CD1 */ - 1546, /* U+010CD2 */ - 1547, /* U+010CD3 */ - 1548, /* U+010CD4 */ - 1549, /* U+010CD5 */ - 1550, /* U+010CD6 */ - 1551, /* U+010CD7 */ - 1552, /* U+010CD8 */ - 1553, /* U+010CD9 */ - 1554, /* U+010CDA */ - 1555, /* U+010CDB */ - 1556, /* U+010CDC */ - 1557, /* U+010CDD */ - 1558, /* U+010CDE */ - 1559, /* U+010CDF */ - 1560, /* U+010CE0 */ - 1561, /* U+010CE1 */ - 1562, /* U+010CE2 */ - 1563, /* U+010CE3 */ - 1564, /* U+010CE4 */ - 1565, /* U+010CE5 */ - 1566, /* U+010CE6 */ - 1567, /* U+010CE7 */ - 1568, /* U+010CE8 */ - 1569, /* U+010CE9 */ - 1570, /* U+010CEA */ - 1571, /* U+010CEB */ - 1572, /* U+010CEC */ - 1573, /* U+010CED */ - 1574, /* U+010CEE */ - 1575, /* U+010CEF */ - 1576, /* U+010CF0 */ - 1577, /* U+010CF1 */ - 1578, /* U+010CF2 */ - 1579, /* U+0118A0 */ - 1580, /* U+0118A1 */ - 1581, /* U+0118A2 */ - 1582, /* U+0118A3 */ - 1583, /* U+0118A4 */ - 1584, /* U+0118A5 */ - 1585, /* U+0118A6 */ - 1586, /* U+0118A7 */ - 1587, /* U+0118A8 */ - 1588, /* U+0118A9 */ - 1589, /* U+0118AA */ - 1590, /* U+0118AB */ - 1591, /* U+0118AC */ - 1592, /* U+0118AD */ - 1593, /* U+0118AE */ - 1594, /* U+0118AF */ - 1595, /* U+0118B0 */ - 1596, /* U+0118B1 */ - 1597, /* U+0118B2 */ - 1598, /* U+0118B3 */ - 1599, /* U+0118B4 */ - 1600, /* U+0118B5 */ - 1601, /* U+0118B6 */ - 1602, /* U+0118B7 */ - 1603, /* U+0118B8 */ - 1604, /* U+0118B9 */ - 1605, /* U+0118BA */ - 1606, /* U+0118BB */ - 1607, /* U+0118BC */ - 1608, /* U+0118BD */ - 1609, /* U+0118BE */ - 1610, /* U+0118BF */ - 1579, /* U+0118C0 */ - 1580, /* U+0118C1 */ - 1581, /* U+0118C2 */ - 1582, /* U+0118C3 */ - 1583, /* U+0118C4 */ - 1584, /* U+0118C5 */ - 1585, /* U+0118C6 */ - 1586, /* U+0118C7 */ - 1587, /* U+0118C8 */ - 1588, /* U+0118C9 */ - 1589, /* U+0118CA */ - 1590, /* U+0118CB */ - 1591, /* U+0118CC */ - 1592, /* U+0118CD */ - 1593, /* U+0118CE */ - 1594, /* U+0118CF */ - 1595, /* U+0118D0 */ - 1596, /* U+0118D1 */ - 1597, /* U+0118D2 */ - 1598, /* U+0118D3 */ - 1599, /* U+0118D4 */ - 1600, /* U+0118D5 */ - 1601, /* U+0118D6 */ - 1602, /* U+0118D7 */ - 1603, /* U+0118D8 */ - 1604, /* U+0118D9 */ - 1605, /* U+0118DA */ - 1606, /* U+0118DB */ - 1607, /* U+0118DC */ - 1608, /* U+0118DD */ - 1609, /* U+0118DE */ - 1610, /* U+0118DF */ - 1611, /* U+016E40 */ - 1612, /* U+016E41 */ - 1613, /* U+016E42 */ - 1614, /* U+016E43 */ - 1615, /* U+016E44 */ - 1616, /* U+016E45 */ - 1617, /* U+016E46 */ - 1618, /* U+016E47 */ - 1619, /* U+016E48 */ - 1620, /* U+016E49 */ - 1621, /* U+016E4A */ - 1622, /* U+016E4B */ - 1623, /* U+016E4C */ - 1624, /* U+016E4D */ - 1625, /* U+016E4E */ - 1626, /* U+016E4F */ - 1627, /* U+016E50 */ - 1628, /* U+016E51 */ - 1629, /* U+016E52 */ - 1630, /* U+016E53 */ - 1631, /* U+016E54 */ - 1632, /* U+016E55 */ - 1633, /* U+016E56 */ - 1634, /* U+016E57 */ - 1635, /* U+016E58 */ - 1636, /* U+016E59 */ - 1637, /* U+016E5A */ - 1638, /* U+016E5B */ - 1639, /* U+016E5C */ - 1640, /* U+016E5D */ - 1641, /* U+016E5E */ - 1642, /* U+016E5F */ - 1611, /* U+016E60 */ - 1612, /* U+016E61 */ - 1613, /* U+016E62 */ - 1614, /* U+016E63 */ - 1615, /* U+016E64 */ - 1616, /* U+016E65 */ - 1617, /* U+016E66 */ - 1618, /* U+016E67 */ - 1619, /* U+016E68 */ - 1620, /* U+016E69 */ - 1621, /* U+016E6A */ - 1622, /* U+016E6B */ - 1623, /* U+016E6C */ - 1624, /* U+016E6D */ - 1625, /* U+016E6E */ - 1626, /* U+016E6F */ - 1627, /* U+016E70 */ - 1628, /* U+016E71 */ - 1629, /* U+016E72 */ - 1630, /* U+016E73 */ - 1631, /* U+016E74 */ - 1632, /* U+016E75 */ - 1633, /* U+016E76 */ - 1634, /* U+016E77 */ - 1635, /* U+016E78 */ - 1636, /* U+016E79 */ - 1637, /* U+016E7A */ - 1638, /* U+016E7B */ - 1639, /* U+016E7C */ - 1640, /* U+016E7D */ - 1641, /* U+016E7E */ - 1642, /* U+016E7F */ - 1643, /* U+01E900 */ - 1644, /* U+01E901 */ - 1645, /* U+01E902 */ - 1646, /* U+01E903 */ - 1647, /* U+01E904 */ - 1648, /* U+01E905 */ - 1649, /* U+01E906 */ - 1650, /* U+01E907 */ - 1651, /* U+01E908 */ - 1652, /* U+01E909 */ - 1653, /* U+01E90A */ - 1654, /* U+01E90B */ - 1655, /* U+01E90C */ - 1656, /* U+01E90D */ - 1657, /* U+01E90E */ - 1658, /* U+01E90F */ - 1659, /* U+01E910 */ - 1660, /* U+01E911 */ - 1661, /* U+01E912 */ - 1662, /* U+01E913 */ - 1663, /* U+01E914 */ - 1664, /* U+01E915 */ - 1665, /* U+01E916 */ - 1666, /* U+01E917 */ - 1667, /* U+01E918 */ - 1668, /* U+01E919 */ - 1669, /* U+01E91A */ - 1670, /* U+01E91B */ - 1671, /* U+01E91C */ - 1672, /* U+01E91D */ - 1673, /* U+01E91E */ - 1674, /* U+01E91F */ - 1675, /* U+01E920 */ - 1676, /* U+01E921 */ - 1643, /* U+01E922 */ - 1644, /* U+01E923 */ - 1645, /* U+01E924 */ - 1646, /* U+01E925 */ - 1647, /* U+01E926 */ - 1648, /* U+01E927 */ - 1649, /* U+01E928 */ - 1650, /* U+01E929 */ - 1651, /* U+01E92A */ - 1652, /* U+01E92B */ - 1653, /* U+01E92C */ - 1654, /* U+01E92D */ - 1655, /* U+01E92E */ - 1656, /* U+01E92F */ - 1657, /* U+01E930 */ - 1658, /* U+01E931 */ - 1659, /* U+01E932 */ - 1660, /* U+01E933 */ - 1661, /* U+01E934 */ - 1662, /* U+01E935 */ - 1663, /* U+01E936 */ - 1664, /* U+01E937 */ - 1665, /* U+01E938 */ - 1666, /* U+01E939 */ - 1667, /* U+01E93A */ - 1668, /* U+01E93B */ - 1669, /* U+01E93C */ - 1670, /* U+01E93D */ - 1671, /* U+01E93E */ - 1672, /* U+01E93F */ - 1673, /* U+01E940 */ - 1674, /* U+01E941 */ - 1675, /* U+01E942 */ - 1676, /* U+01E943 */ + 1533, /* U+010CC0 */ + 1534, /* U+010CC1 */ + 1535, /* U+010CC2 */ + 1536, /* U+010CC3 */ + 1537, /* U+010CC4 */ + 1538, /* U+010CC5 */ + 1539, /* U+010CC6 */ + 1540, /* U+010CC7 */ + 1541, /* U+010CC8 */ + 1542, /* U+010CC9 */ + 1543, /* U+010CCA */ + 1544, /* U+010CCB */ + 1545, /* U+010CCC */ + 1546, /* U+010CCD */ + 1547, /* U+010CCE */ + 1548, /* U+010CCF */ + 1549, /* U+010CD0 */ + 1550, /* U+010CD1 */ + 1551, /* U+010CD2 */ + 1552, /* U+010CD3 */ + 1553, /* U+010CD4 */ + 1554, /* U+010CD5 */ + 1555, /* U+010CD6 */ + 1556, /* U+010CD7 */ + 1557, /* U+010CD8 */ + 1558, /* U+010CD9 */ + 1559, /* U+010CDA */ + 1560, /* U+010CDB */ + 1561, /* U+010CDC */ + 1562, /* U+010CDD */ + 1563, /* U+010CDE */ + 1564, /* U+010CDF */ + 1565, /* U+010CE0 */ + 1566, /* U+010CE1 */ + 1567, /* U+010CE2 */ + 1568, /* U+010CE3 */ + 1569, /* U+010CE4 */ + 1570, /* U+010CE5 */ + 1571, /* U+010CE6 */ + 1572, /* U+010CE7 */ + 1573, /* U+010CE8 */ + 1574, /* U+010CE9 */ + 1575, /* U+010CEA */ + 1576, /* U+010CEB */ + 1577, /* U+010CEC */ + 1578, /* U+010CED */ + 1579, /* U+010CEE */ + 1580, /* U+010CEF */ + 1581, /* U+010CF0 */ + 1582, /* U+010CF1 */ + 1583, /* U+010CF2 */ + 0, /* U+010CF3 */ + 0, /* U+010CF4 */ + 0, /* U+010CF5 */ + 0, /* U+010CF6 */ + 0, /* U+010CF7 */ + 0, /* U+010CF8 */ + 0, /* U+010CF9 */ + 0, /* U+010CFA */ + 0, /* U+010CFB */ + 0, /* U+010CFC */ + 0, /* U+010CFD */ + 0, /* U+010CFE */ + 0, /* U+010CFF */ + 0, /* U+010D00 */ + 0, /* U+010D01 */ + 0, /* U+010D02 */ + 0, /* U+010D03 */ + 0, /* U+010D04 */ + 0, /* U+010D05 */ + 0, /* U+010D06 */ + 0, /* U+010D07 */ + 0, /* U+010D08 */ + 0, /* U+010D09 */ + 0, /* U+010D0A */ + 0, /* U+010D0B */ + 0, /* U+010D0C */ + 0, /* U+010D0D */ + 0, /* U+010D0E */ + 0, /* U+010D0F */ + 0, /* U+010D10 */ + 0, /* U+010D11 */ + 0, /* U+010D12 */ + 0, /* U+010D13 */ + 0, /* U+010D14 */ + 0, /* U+010D15 */ + 0, /* U+010D16 */ + 0, /* U+010D17 */ + 0, /* U+010D18 */ + 0, /* U+010D19 */ + 0, /* U+010D1A */ + 0, /* U+010D1B */ + 0, /* U+010D1C */ + 0, /* U+010D1D */ + 0, /* U+010D1E */ + 0, /* U+010D1F */ + 0, /* U+010D20 */ + 0, /* U+010D21 */ + 0, /* U+010D22 */ + 0, /* U+010D23 */ + 0, /* U+010D24 */ + 0, /* U+010D25 */ + 0, /* U+010D26 */ + 0, /* U+010D27 */ + 0, /* U+010D28 */ + 0, /* U+010D29 */ + 0, /* U+010D2A */ + 0, /* U+010D2B */ + 0, /* U+010D2C */ + 0, /* U+010D2D */ + 0, /* U+010D2E */ + 0, /* U+010D2F */ + 0, /* U+010D30 */ + 0, /* U+010D31 */ + 0, /* U+010D32 */ + 0, /* U+010D33 */ + 0, /* U+010D34 */ + 0, /* U+010D35 */ + 0, /* U+010D36 */ + 0, /* U+010D37 */ + 0, /* U+010D38 */ + 0, /* U+010D39 */ + 0, /* U+010D3A */ + 0, /* U+010D3B */ + 0, /* U+010D3C */ + 0, /* U+010D3D */ + 0, /* U+010D3E */ + 0, /* U+010D3F */ + 0, /* U+010D40 */ + 0, /* U+010D41 */ + 0, /* U+010D42 */ + 0, /* U+010D43 */ + 0, /* U+010D44 */ + 0, /* U+010D45 */ + 0, /* U+010D46 */ + 0, /* U+010D47 */ + 0, /* U+010D48 */ + 0, /* U+010D49 */ + 0, /* U+010D4A */ + 0, /* U+010D4B */ + 0, /* U+010D4C */ + 0, /* U+010D4D */ + 0, /* U+010D4E */ + 0, /* U+010D4F */ + 1584, /* U+010D50 */ + 1585, /* U+010D51 */ + 1586, /* U+010D52 */ + 1587, /* U+010D53 */ + 1588, /* U+010D54 */ + 1589, /* U+010D55 */ + 1590, /* U+010D56 */ + 1591, /* U+010D57 */ + 1592, /* U+010D58 */ + 1593, /* U+010D59 */ + 1594, /* U+010D5A */ + 1595, /* U+010D5B */ + 1596, /* U+010D5C */ + 1597, /* U+010D5D */ + 1598, /* U+010D5E */ + 1599, /* U+010D5F */ + 1600, /* U+010D60 */ + 1601, /* U+010D61 */ + 1602, /* U+010D62 */ + 1603, /* U+010D63 */ + 1604, /* U+010D64 */ + 1605, /* U+010D65 */ + 0, /* U+010D66 */ + 0, /* U+010D67 */ + 0, /* U+010D68 */ + 0, /* U+010D69 */ + 0, /* U+010D6A */ + 0, /* U+010D6B */ + 0, /* U+010D6C */ + 0, /* U+010D6D */ + 0, /* U+010D6E */ + 0, /* U+010D6F */ + 1584, /* U+010D70 */ + 1585, /* U+010D71 */ + 1586, /* U+010D72 */ + 1587, /* U+010D73 */ + 1588, /* U+010D74 */ + 1589, /* U+010D75 */ + 1590, /* U+010D76 */ + 1591, /* U+010D77 */ + 1592, /* U+010D78 */ + 1593, /* U+010D79 */ + 1594, /* U+010D7A */ + 1595, /* U+010D7B */ + 1596, /* U+010D7C */ + 1597, /* U+010D7D */ + 1598, /* U+010D7E */ + 1599, /* U+010D7F */ + 1600, /* U+010D80 */ + 1601, /* U+010D81 */ + 1602, /* U+010D82 */ + 1603, /* U+010D83 */ + 1604, /* U+010D84 */ + 1605, /* U+010D85 */ + 1606, /* U+0118A0 */ + 1607, /* U+0118A1 */ + 1608, /* U+0118A2 */ + 1609, /* U+0118A3 */ + 1610, /* U+0118A4 */ + 1611, /* U+0118A5 */ + 1612, /* U+0118A6 */ + 1613, /* U+0118A7 */ + 1614, /* U+0118A8 */ + 1615, /* U+0118A9 */ + 1616, /* U+0118AA */ + 1617, /* U+0118AB */ + 1618, /* U+0118AC */ + 1619, /* U+0118AD */ + 1620, /* U+0118AE */ + 1621, /* U+0118AF */ + 1622, /* U+0118B0 */ + 1623, /* U+0118B1 */ + 1624, /* U+0118B2 */ + 1625, /* U+0118B3 */ + 1626, /* U+0118B4 */ + 1627, /* U+0118B5 */ + 1628, /* U+0118B6 */ + 1629, /* U+0118B7 */ + 1630, /* U+0118B8 */ + 1631, /* U+0118B9 */ + 1632, /* U+0118BA */ + 1633, /* U+0118BB */ + 1634, /* U+0118BC */ + 1635, /* U+0118BD */ + 1636, /* U+0118BE */ + 1637, /* U+0118BF */ + 1606, /* U+0118C0 */ + 1607, /* U+0118C1 */ + 1608, /* U+0118C2 */ + 1609, /* U+0118C3 */ + 1610, /* U+0118C4 */ + 1611, /* U+0118C5 */ + 1612, /* U+0118C6 */ + 1613, /* U+0118C7 */ + 1614, /* U+0118C8 */ + 1615, /* U+0118C9 */ + 1616, /* U+0118CA */ + 1617, /* U+0118CB */ + 1618, /* U+0118CC */ + 1619, /* U+0118CD */ + 1620, /* U+0118CE */ + 1621, /* U+0118CF */ + 1622, /* U+0118D0 */ + 1623, /* U+0118D1 */ + 1624, /* U+0118D2 */ + 1625, /* U+0118D3 */ + 1626, /* U+0118D4 */ + 1627, /* U+0118D5 */ + 1628, /* U+0118D6 */ + 1629, /* U+0118D7 */ + 1630, /* U+0118D8 */ + 1631, /* U+0118D9 */ + 1632, /* U+0118DA */ + 1633, /* U+0118DB */ + 1634, /* U+0118DC */ + 1635, /* U+0118DD */ + 1636, /* U+0118DE */ + 1637, /* U+0118DF */ + 1638, /* U+016E40 */ + 1639, /* U+016E41 */ + 1640, /* U+016E42 */ + 1641, /* U+016E43 */ + 1642, /* U+016E44 */ + 1643, /* U+016E45 */ + 1644, /* U+016E46 */ + 1645, /* U+016E47 */ + 1646, /* U+016E48 */ + 1647, /* U+016E49 */ + 1648, /* U+016E4A */ + 1649, /* U+016E4B */ + 1650, /* U+016E4C */ + 1651, /* U+016E4D */ + 1652, /* U+016E4E */ + 1653, /* U+016E4F */ + 1654, /* U+016E50 */ + 1655, /* U+016E51 */ + 1656, /* U+016E52 */ + 1657, /* U+016E53 */ + 1658, /* U+016E54 */ + 1659, /* U+016E55 */ + 1660, /* U+016E56 */ + 1661, /* U+016E57 */ + 1662, /* U+016E58 */ + 1663, /* U+016E59 */ + 1664, /* U+016E5A */ + 1665, /* U+016E5B */ + 1666, /* U+016E5C */ + 1667, /* U+016E5D */ + 1668, /* U+016E5E */ + 1669, /* U+016E5F */ + 1638, /* U+016E60 */ + 1639, /* U+016E61 */ + 1640, /* U+016E62 */ + 1641, /* U+016E63 */ + 1642, /* U+016E64 */ + 1643, /* U+016E65 */ + 1644, /* U+016E66 */ + 1645, /* U+016E67 */ + 1646, /* U+016E68 */ + 1647, /* U+016E69 */ + 1648, /* U+016E6A */ + 1649, /* U+016E6B */ + 1650, /* U+016E6C */ + 1651, /* U+016E6D */ + 1652, /* U+016E6E */ + 1653, /* U+016E6F */ + 1654, /* U+016E70 */ + 1655, /* U+016E71 */ + 1656, /* U+016E72 */ + 1657, /* U+016E73 */ + 1658, /* U+016E74 */ + 1659, /* U+016E75 */ + 1660, /* U+016E76 */ + 1661, /* U+016E77 */ + 1662, /* U+016E78 */ + 1663, /* U+016E79 */ + 1664, /* U+016E7A */ + 1665, /* U+016E7B */ + 1666, /* U+016E7C */ + 1667, /* U+016E7D */ + 1668, /* U+016E7E */ + 1669, /* U+016E7F */ + 1670, /* U+01E900 */ + 1671, /* U+01E901 */ + 1672, /* U+01E902 */ + 1673, /* U+01E903 */ + 1674, /* U+01E904 */ + 1675, /* U+01E905 */ + 1676, /* U+01E906 */ + 1677, /* U+01E907 */ + 1678, /* U+01E908 */ + 1679, /* U+01E909 */ + 1680, /* U+01E90A */ + 1681, /* U+01E90B */ + 1682, /* U+01E90C */ + 1683, /* U+01E90D */ + 1684, /* U+01E90E */ + 1685, /* U+01E90F */ + 1686, /* U+01E910 */ + 1687, /* U+01E911 */ + 1688, /* U+01E912 */ + 1689, /* U+01E913 */ + 1690, /* U+01E914 */ + 1691, /* U+01E915 */ + 1692, /* U+01E916 */ + 1693, /* U+01E917 */ + 1694, /* U+01E918 */ + 1695, /* U+01E919 */ + 1696, /* U+01E91A */ + 1697, /* U+01E91B */ + 1698, /* U+01E91C */ + 1699, /* U+01E91D */ + 1700, /* U+01E91E */ + 1701, /* U+01E91F */ + 1702, /* U+01E920 */ + 1703, /* U+01E921 */ + 1670, /* U+01E922 */ + 1671, /* U+01E923 */ + 1672, /* U+01E924 */ + 1673, /* U+01E925 */ + 1674, /* U+01E926 */ + 1675, /* U+01E927 */ + 1676, /* U+01E928 */ + 1677, /* U+01E929 */ + 1678, /* U+01E92A */ + 1679, /* U+01E92B */ + 1680, /* U+01E92C */ + 1681, /* U+01E92D */ + 1682, /* U+01E92E */ + 1683, /* U+01E92F */ + 1684, /* U+01E930 */ + 1685, /* U+01E931 */ + 1686, /* U+01E932 */ + 1687, /* U+01E933 */ + 1688, /* U+01E934 */ + 1689, /* U+01E935 */ + 1690, /* U+01E936 */ + 1691, /* U+01E937 */ + 1692, /* U+01E938 */ + 1693, /* U+01E939 */ + 1694, /* U+01E93A */ + 1695, /* U+01E93B */ + 1696, /* U+01E93C */ + 1697, /* U+01E93D */ + 1698, /* U+01E93E */ + 1699, /* U+01E93F */ + 1700, /* U+01E940 */ + 1701, /* U+01E941 */ + 1702, /* U+01E942 */ + 1703, /* U+01E943 */ }; @@ -13296,7 +13578,7 @@ case_index(pg_wchar cp) } else if (cp >= 0xFB00) { - if (cp < 0x10CF3) + if (cp < 0x10D86) { if (cp < 0xFF5B) { @@ -13327,18 +13609,18 @@ case_index(pg_wchar cp) { if (cp < 0x118E0) { - return case_map[cp - 0x118A0 + 4435]; + return case_map[cp - 0x118A0 + 4582]; } else if (cp >= 0x16E40) { - return case_map[cp - 0x16E40 + 4499]; + return case_map[cp - 0x16E40 + 4646]; } } else if (cp >= 0x1E900) { if (cp < 0x1E944) { - return case_map[cp - 0x1E900 + 4563]; + return case_map[cp - 0x1E900 + 4710]; } } } diff --git a/src/include/common/unicode_category_table.h b/src/include/common/unicode_category_table.h index d3f468a1ebc5a..95a1c65da7e6f 100644 --- a/src/include/common/unicode_category_table.h +++ b/src/include/common/unicode_category_table.h @@ -696,7 +696,7 @@ static const pg_unicode_properties unicode_opt_ascii[128] = }; /* table of Unicode codepoint ranges and their categories */ -static const pg_category_range unicode_categories[3302] = +static const pg_category_range unicode_categories[3368] = { {0x000000, 0x00001f, PG_U_CONTROL}, {0x000020, 0x000020, PG_U_SPACE_SEPARATOR}, @@ -1408,7 +1408,7 @@ static const pg_category_range unicode_categories[3302] = {0x000888, 0x000888, PG_U_MODIFIER_SYMBOL}, {0x000889, 0x00088e, PG_U_OTHER_LETTER}, {0x000890, 0x000891, PG_U_FORMAT}, - {0x000898, 0x00089f, PG_U_NONSPACING_MARK}, + {0x000897, 0x00089f, PG_U_NONSPACING_MARK}, {0x0008a0, 0x0008c8, PG_U_OTHER_LETTER}, {0x0008c9, 0x0008c9, PG_U_MODIFIER_LETTER}, {0x0008ca, 0x0008e1, PG_U_NONSPACING_MARK}, @@ -1887,12 +1887,13 @@ static const pg_category_range unicode_categories[3302] = {0x001b42, 0x001b42, PG_U_NONSPACING_MARK}, {0x001b43, 0x001b44, PG_U_SPACING_MARK}, {0x001b45, 0x001b4c, PG_U_OTHER_LETTER}, + {0x001b4e, 0x001b4f, PG_U_OTHER_PUNCTUATION}, {0x001b50, 0x001b59, PG_U_DECIMAL_NUMBER}, {0x001b5a, 0x001b60, PG_U_OTHER_PUNCTUATION}, {0x001b61, 0x001b6a, PG_U_OTHER_SYMBOL}, {0x001b6b, 0x001b73, PG_U_NONSPACING_MARK}, {0x001b74, 0x001b7c, PG_U_OTHER_SYMBOL}, - {0x001b7d, 0x001b7e, PG_U_OTHER_PUNCTUATION}, + {0x001b7d, 0x001b7f, PG_U_OTHER_PUNCTUATION}, {0x001b80, 0x001b81, PG_U_NONSPACING_MARK}, {0x001b82, 0x001b82, PG_U_SPACING_MARK}, {0x001b83, 0x001ba0, PG_U_OTHER_LETTER}, @@ -1927,6 +1928,8 @@ static const pg_category_range unicode_categories[3302] = {0x001c78, 0x001c7d, PG_U_MODIFIER_LETTER}, {0x001c7e, 0x001c7f, PG_U_OTHER_PUNCTUATION}, {0x001c80, 0x001c88, PG_U_LOWERCASE_LETTER}, + {0x001c89, 0x001c89, PG_U_UPPERCASE_LETTER}, + {0x001c8a, 0x001c8a, PG_U_LOWERCASE_LETTER}, {0x001c90, 0x001cba, PG_U_UPPERCASE_LETTER}, {0x001cbd, 0x001cbf, PG_U_UPPERCASE_LETTER}, {0x001cc0, 0x001cc7, PG_U_OTHER_PUNCTUATION}, @@ -2378,7 +2381,7 @@ static const pg_category_range unicode_categories[3302] = {0x00239b, 0x0023b3, PG_U_MATH_SYMBOL}, {0x0023b4, 0x0023db, PG_U_OTHER_SYMBOL}, {0x0023dc, 0x0023e1, PG_U_MATH_SYMBOL}, - {0x0023e2, 0x002426, PG_U_OTHER_SYMBOL}, + {0x0023e2, 0x002429, PG_U_OTHER_SYMBOL}, {0x002440, 0x00244a, PG_U_OTHER_SYMBOL}, {0x002460, 0x00249b, PG_U_OTHER_NUMBER}, {0x00249c, 0x0024e9, PG_U_OTHER_SYMBOL}, @@ -2719,7 +2722,7 @@ static const pg_category_range unicode_categories[3302] = {0x003192, 0x003195, PG_U_OTHER_NUMBER}, {0x003196, 0x00319f, PG_U_OTHER_SYMBOL}, {0x0031a0, 0x0031bf, PG_U_OTHER_LETTER}, - {0x0031c0, 0x0031e3, PG_U_OTHER_SYMBOL}, + {0x0031c0, 0x0031e5, PG_U_OTHER_SYMBOL}, {0x0031ef, 0x0031ef, PG_U_OTHER_SYMBOL}, {0x0031f0, 0x0031ff, PG_U_OTHER_LETTER}, {0x003200, 0x00321e, PG_U_OTHER_SYMBOL}, @@ -2983,6 +2986,8 @@ static const pg_category_range unicode_categories[3302] = {0x00a7c8, 0x00a7c8, PG_U_LOWERCASE_LETTER}, {0x00a7c9, 0x00a7c9, PG_U_UPPERCASE_LETTER}, {0x00a7ca, 0x00a7ca, PG_U_LOWERCASE_LETTER}, + {0x00a7cb, 0x00a7cc, PG_U_UPPERCASE_LETTER}, + {0x00a7cd, 0x00a7cd, PG_U_LOWERCASE_LETTER}, {0x00a7d0, 0x00a7d0, PG_U_UPPERCASE_LETTER}, {0x00a7d1, 0x00a7d1, PG_U_LOWERCASE_LETTER}, {0x00a7d3, 0x00a7d3, PG_U_LOWERCASE_LETTER}, @@ -2991,6 +2996,9 @@ static const pg_category_range unicode_categories[3302] = {0x00a7d7, 0x00a7d7, PG_U_LOWERCASE_LETTER}, {0x00a7d8, 0x00a7d8, PG_U_UPPERCASE_LETTER}, {0x00a7d9, 0x00a7d9, PG_U_LOWERCASE_LETTER}, + {0x00a7da, 0x00a7da, PG_U_UPPERCASE_LETTER}, + {0x00a7db, 0x00a7db, PG_U_LOWERCASE_LETTER}, + {0x00a7dc, 0x00a7dc, PG_U_UPPERCASE_LETTER}, {0x00a7f2, 0x00a7f4, PG_U_MODIFIER_LETTER}, {0x00a7f5, 0x00a7f5, PG_U_UPPERCASE_LETTER}, {0x00a7f6, 0x00a7f6, PG_U_LOWERCASE_LETTER}, @@ -3306,6 +3314,7 @@ static const pg_category_range unicode_categories[3302] = {0x0105a3, 0x0105b1, PG_U_LOWERCASE_LETTER}, {0x0105b3, 0x0105b9, PG_U_LOWERCASE_LETTER}, {0x0105bb, 0x0105bc, PG_U_LOWERCASE_LETTER}, + {0x0105c0, 0x0105f3, PG_U_OTHER_LETTER}, {0x010600, 0x010736, PG_U_OTHER_LETTER}, {0x010740, 0x010755, PG_U_OTHER_LETTER}, {0x010760, 0x010767, PG_U_OTHER_LETTER}, @@ -3376,12 +3385,23 @@ static const pg_category_range unicode_categories[3302] = {0x010d00, 0x010d23, PG_U_OTHER_LETTER}, {0x010d24, 0x010d27, PG_U_NONSPACING_MARK}, {0x010d30, 0x010d39, PG_U_DECIMAL_NUMBER}, + {0x010d40, 0x010d49, PG_U_DECIMAL_NUMBER}, + {0x010d4a, 0x010d4d, PG_U_OTHER_LETTER}, + {0x010d4e, 0x010d4e, PG_U_MODIFIER_LETTER}, + {0x010d4f, 0x010d4f, PG_U_OTHER_LETTER}, + {0x010d50, 0x010d65, PG_U_UPPERCASE_LETTER}, + {0x010d69, 0x010d6d, PG_U_NONSPACING_MARK}, + {0x010d6e, 0x010d6e, PG_U_DASH_PUNCTUATION}, + {0x010d6f, 0x010d6f, PG_U_MODIFIER_LETTER}, + {0x010d70, 0x010d85, PG_U_LOWERCASE_LETTER}, + {0x010d8e, 0x010d8f, PG_U_MATH_SYMBOL}, {0x010e60, 0x010e7e, PG_U_OTHER_NUMBER}, {0x010e80, 0x010ea9, PG_U_OTHER_LETTER}, {0x010eab, 0x010eac, PG_U_NONSPACING_MARK}, {0x010ead, 0x010ead, PG_U_DASH_PUNCTUATION}, {0x010eb0, 0x010eb1, PG_U_OTHER_LETTER}, - {0x010efd, 0x010eff, PG_U_NONSPACING_MARK}, + {0x010ec2, 0x010ec4, PG_U_OTHER_LETTER}, + {0x010efc, 0x010eff, PG_U_NONSPACING_MARK}, {0x010f00, 0x010f1c, PG_U_OTHER_LETTER}, {0x010f1d, 0x010f26, PG_U_OTHER_NUMBER}, {0x010f27, 0x010f27, PG_U_OTHER_LETTER}, @@ -3497,6 +3517,26 @@ static const pg_category_range unicode_categories[3302] = {0x011362, 0x011363, PG_U_SPACING_MARK}, {0x011366, 0x01136c, PG_U_NONSPACING_MARK}, {0x011370, 0x011374, PG_U_NONSPACING_MARK}, + {0x011380, 0x011389, PG_U_OTHER_LETTER}, + {0x01138b, 0x01138b, PG_U_OTHER_LETTER}, + {0x01138e, 0x01138e, PG_U_OTHER_LETTER}, + {0x011390, 0x0113b5, PG_U_OTHER_LETTER}, + {0x0113b7, 0x0113b7, PG_U_OTHER_LETTER}, + {0x0113b8, 0x0113ba, PG_U_SPACING_MARK}, + {0x0113bb, 0x0113c0, PG_U_NONSPACING_MARK}, + {0x0113c2, 0x0113c2, PG_U_SPACING_MARK}, + {0x0113c5, 0x0113c5, PG_U_SPACING_MARK}, + {0x0113c7, 0x0113ca, PG_U_SPACING_MARK}, + {0x0113cc, 0x0113cd, PG_U_SPACING_MARK}, + {0x0113ce, 0x0113ce, PG_U_NONSPACING_MARK}, + {0x0113cf, 0x0113cf, PG_U_SPACING_MARK}, + {0x0113d0, 0x0113d0, PG_U_NONSPACING_MARK}, + {0x0113d1, 0x0113d1, PG_U_OTHER_LETTER}, + {0x0113d2, 0x0113d2, PG_U_NONSPACING_MARK}, + {0x0113d3, 0x0113d3, PG_U_OTHER_LETTER}, + {0x0113d4, 0x0113d5, PG_U_OTHER_PUNCTUATION}, + {0x0113d7, 0x0113d8, PG_U_OTHER_PUNCTUATION}, + {0x0113e1, 0x0113e2, PG_U_NONSPACING_MARK}, {0x011400, 0x011434, PG_U_OTHER_LETTER}, {0x011435, 0x011437, PG_U_SPACING_MARK}, {0x011438, 0x01143f, PG_U_NONSPACING_MARK}, @@ -3556,8 +3596,11 @@ static const pg_category_range unicode_categories[3302] = {0x0116b8, 0x0116b8, PG_U_OTHER_LETTER}, {0x0116b9, 0x0116b9, PG_U_OTHER_PUNCTUATION}, {0x0116c0, 0x0116c9, PG_U_DECIMAL_NUMBER}, + {0x0116d0, 0x0116e3, PG_U_DECIMAL_NUMBER}, {0x011700, 0x01171a, PG_U_OTHER_LETTER}, - {0x01171d, 0x01171f, PG_U_NONSPACING_MARK}, + {0x01171d, 0x01171d, PG_U_NONSPACING_MARK}, + {0x01171e, 0x01171e, PG_U_SPACING_MARK}, + {0x01171f, 0x01171f, PG_U_NONSPACING_MARK}, {0x011720, 0x011721, PG_U_SPACING_MARK}, {0x011722, 0x011725, PG_U_NONSPACING_MARK}, {0x011726, 0x011726, PG_U_SPACING_MARK}, @@ -3627,6 +3670,9 @@ static const pg_category_range unicode_categories[3302] = {0x011a9e, 0x011aa2, PG_U_OTHER_PUNCTUATION}, {0x011ab0, 0x011af8, PG_U_OTHER_LETTER}, {0x011b00, 0x011b09, PG_U_OTHER_PUNCTUATION}, + {0x011bc0, 0x011be0, PG_U_OTHER_LETTER}, + {0x011be1, 0x011be1, PG_U_OTHER_PUNCTUATION}, + {0x011bf0, 0x011bf9, PG_U_DECIMAL_NUMBER}, {0x011c00, 0x011c08, PG_U_OTHER_LETTER}, {0x011c0a, 0x011c2e, PG_U_OTHER_LETTER}, {0x011c2f, 0x011c2f, PG_U_SPACING_MARK}, @@ -3685,6 +3731,7 @@ static const pg_category_range unicode_categories[3302] = {0x011f42, 0x011f42, PG_U_NONSPACING_MARK}, {0x011f43, 0x011f4f, PG_U_OTHER_PUNCTUATION}, {0x011f50, 0x011f59, PG_U_DECIMAL_NUMBER}, + {0x011f5a, 0x011f5a, PG_U_NONSPACING_MARK}, {0x011fb0, 0x011fb0, PG_U_OTHER_LETTER}, {0x011fc0, 0x011fd4, PG_U_OTHER_NUMBER}, {0x011fd5, 0x011fdc, PG_U_OTHER_SYMBOL}, @@ -3702,7 +3749,13 @@ static const pg_category_range unicode_categories[3302] = {0x013440, 0x013440, PG_U_NONSPACING_MARK}, {0x013441, 0x013446, PG_U_OTHER_LETTER}, {0x013447, 0x013455, PG_U_NONSPACING_MARK}, + {0x013460, 0x0143fa, PG_U_OTHER_LETTER}, {0x014400, 0x014646, PG_U_OTHER_LETTER}, + {0x016100, 0x01611d, PG_U_OTHER_LETTER}, + {0x01611e, 0x016129, PG_U_NONSPACING_MARK}, + {0x01612a, 0x01612c, PG_U_SPACING_MARK}, + {0x01612d, 0x01612f, PG_U_NONSPACING_MARK}, + {0x016130, 0x016139, PG_U_DECIMAL_NUMBER}, {0x016800, 0x016a38, PG_U_OTHER_LETTER}, {0x016a40, 0x016a5e, PG_U_OTHER_LETTER}, {0x016a60, 0x016a69, PG_U_DECIMAL_NUMBER}, @@ -3723,6 +3776,11 @@ static const pg_category_range unicode_categories[3302] = {0x016b5b, 0x016b61, PG_U_OTHER_NUMBER}, {0x016b63, 0x016b77, PG_U_OTHER_LETTER}, {0x016b7d, 0x016b8f, PG_U_OTHER_LETTER}, + {0x016d40, 0x016d42, PG_U_MODIFIER_LETTER}, + {0x016d43, 0x016d6a, PG_U_OTHER_LETTER}, + {0x016d6b, 0x016d6c, PG_U_MODIFIER_LETTER}, + {0x016d6d, 0x016d6f, PG_U_OTHER_PUNCTUATION}, + {0x016d70, 0x016d79, PG_U_DECIMAL_NUMBER}, {0x016e40, 0x016e5f, PG_U_UPPERCASE_LETTER}, {0x016e60, 0x016e7f, PG_U_LOWERCASE_LETTER}, {0x016e80, 0x016e96, PG_U_OTHER_NUMBER}, @@ -3740,7 +3798,7 @@ static const pg_category_range unicode_categories[3302] = {0x016ff0, 0x016ff1, PG_U_SPACING_MARK}, {0x017000, 0x0187f7, PG_U_OTHER_LETTER}, {0x018800, 0x018cd5, PG_U_OTHER_LETTER}, - {0x018d00, 0x018d08, PG_U_OTHER_LETTER}, + {0x018cff, 0x018d08, PG_U_OTHER_LETTER}, {0x01aff0, 0x01aff3, PG_U_MODIFIER_LETTER}, {0x01aff5, 0x01affb, PG_U_MODIFIER_LETTER}, {0x01affd, 0x01affe, PG_U_MODIFIER_LETTER}, @@ -3758,6 +3816,9 @@ static const pg_category_range unicode_categories[3302] = {0x01bc9d, 0x01bc9e, PG_U_NONSPACING_MARK}, {0x01bc9f, 0x01bc9f, PG_U_OTHER_PUNCTUATION}, {0x01bca0, 0x01bca3, PG_U_FORMAT}, + {0x01cc00, 0x01ccef, PG_U_OTHER_SYMBOL}, + {0x01ccf0, 0x01ccf9, PG_U_DECIMAL_NUMBER}, + {0x01cd00, 0x01ceb3, PG_U_OTHER_SYMBOL}, {0x01cf00, 0x01cf2d, PG_U_NONSPACING_MARK}, {0x01cf30, 0x01cf46, PG_U_NONSPACING_MARK}, {0x01cf50, 0x01cfc3, PG_U_OTHER_SYMBOL}, @@ -3891,6 +3952,11 @@ static const pg_category_range unicode_categories[3302] = {0x01e4eb, 0x01e4eb, PG_U_MODIFIER_LETTER}, {0x01e4ec, 0x01e4ef, PG_U_NONSPACING_MARK}, {0x01e4f0, 0x01e4f9, PG_U_DECIMAL_NUMBER}, + {0x01e5d0, 0x01e5ed, PG_U_OTHER_LETTER}, + {0x01e5ee, 0x01e5ef, PG_U_NONSPACING_MARK}, + {0x01e5f0, 0x01e5f0, PG_U_OTHER_LETTER}, + {0x01e5f1, 0x01e5fa, PG_U_DECIMAL_NUMBER}, + {0x01e5ff, 0x01e5ff, PG_U_OTHER_PUNCTUATION}, {0x01e7e0, 0x01e7e6, PG_U_OTHER_LETTER}, {0x01e7e8, 0x01e7eb, PG_U_OTHER_LETTER}, {0x01e7ed, 0x01e7ee, PG_U_OTHER_LETTER}, @@ -3973,18 +4039,18 @@ static const pg_category_range unicode_categories[3302] = {0x01f850, 0x01f859, PG_U_OTHER_SYMBOL}, {0x01f860, 0x01f887, PG_U_OTHER_SYMBOL}, {0x01f890, 0x01f8ad, PG_U_OTHER_SYMBOL}, - {0x01f8b0, 0x01f8b1, PG_U_OTHER_SYMBOL}, + {0x01f8b0, 0x01f8bb, PG_U_OTHER_SYMBOL}, + {0x01f8c0, 0x01f8c1, PG_U_OTHER_SYMBOL}, {0x01f900, 0x01fa53, PG_U_OTHER_SYMBOL}, {0x01fa60, 0x01fa6d, PG_U_OTHER_SYMBOL}, {0x01fa70, 0x01fa7c, PG_U_OTHER_SYMBOL}, - {0x01fa80, 0x01fa88, PG_U_OTHER_SYMBOL}, - {0x01fa90, 0x01fabd, PG_U_OTHER_SYMBOL}, - {0x01fabf, 0x01fac5, PG_U_OTHER_SYMBOL}, - {0x01face, 0x01fadb, PG_U_OTHER_SYMBOL}, - {0x01fae0, 0x01fae8, PG_U_OTHER_SYMBOL}, + {0x01fa80, 0x01fa89, PG_U_OTHER_SYMBOL}, + {0x01fa8f, 0x01fac6, PG_U_OTHER_SYMBOL}, + {0x01face, 0x01fadc, PG_U_OTHER_SYMBOL}, + {0x01fadf, 0x01fae9, PG_U_OTHER_SYMBOL}, {0x01faf0, 0x01faf8, PG_U_OTHER_SYMBOL}, {0x01fb00, 0x01fb92, PG_U_OTHER_SYMBOL}, - {0x01fb94, 0x01fbca, PG_U_OTHER_SYMBOL}, + {0x01fb94, 0x01fbef, PG_U_OTHER_SYMBOL}, {0x01fbf0, 0x01fbf9, PG_U_DECIMAL_NUMBER}, {0x020000, 0x02a6df, PG_U_OTHER_LETTER}, {0x02a700, 0x02b739, PG_U_OTHER_LETTER}, @@ -4003,7 +4069,7 @@ static const pg_category_range unicode_categories[3302] = }; /* table of Unicode codepoint ranges of Alphabetic characters */ -static const pg_unicode_range unicode_alphabetic[1141] = +static const pg_unicode_range unicode_alphabetic[1179] = { {0x000041, 0x00005a}, {0x000061, 0x00007a}, @@ -4025,6 +4091,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x0002ec, 0x0002ec}, {0x0002ee, 0x0002ee}, {0x000345, 0x000345}, + {0x000363, 0x00036f}, {0x000370, 0x000373}, {0x000374, 0x000374}, {0x000376, 0x000377}, @@ -4088,6 +4155,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x000860, 0x00086a}, {0x000870, 0x000887}, {0x000889, 0x00088e}, + {0x000897, 0x000897}, {0x0008a0, 0x0008c8}, {0x0008c9, 0x0008c9}, {0x0008d4, 0x0008df}, @@ -4455,7 +4523,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x001c4d, 0x001c4f}, {0x001c5a, 0x001c77}, {0x001c78, 0x001c7d}, - {0x001c80, 0x001c88}, + {0x001c80, 0x001c8a}, {0x001c90, 0x001cba}, {0x001cbd, 0x001cbf}, {0x001ce9, 0x001cec}, @@ -4468,7 +4536,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x001d78, 0x001d78}, {0x001d79, 0x001d9a}, {0x001d9b, 0x001dbf}, - {0x001de7, 0x001df4}, + {0x001dd3, 0x001df4}, {0x001e00, 0x001f15}, {0x001f18, 0x001f1d}, {0x001f20, 0x001f45}, @@ -4575,10 +4643,10 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x00a788, 0x00a788}, {0x00a78b, 0x00a78e}, {0x00a78f, 0x00a78f}, - {0x00a790, 0x00a7ca}, + {0x00a790, 0x00a7cd}, {0x00a7d0, 0x00a7d1}, {0x00a7d3, 0x00a7d3}, - {0x00a7d5, 0x00a7d9}, + {0x00a7d5, 0x00a7dc}, {0x00a7f2, 0x00a7f4}, {0x00a7f5, 0x00a7f6}, {0x00a7f7, 0x00a7f7}, @@ -4743,6 +4811,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x0105a3, 0x0105b1}, {0x0105b3, 0x0105b9}, {0x0105bb, 0x0105bc}, + {0x0105c0, 0x0105f3}, {0x010600, 0x010736}, {0x010740, 0x010755}, {0x010760, 0x010767}, @@ -4783,9 +4852,18 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x010cc0, 0x010cf2}, {0x010d00, 0x010d23}, {0x010d24, 0x010d27}, + {0x010d4a, 0x010d4d}, + {0x010d4e, 0x010d4e}, + {0x010d4f, 0x010d4f}, + {0x010d50, 0x010d65}, + {0x010d69, 0x010d69}, + {0x010d6f, 0x010d6f}, + {0x010d70, 0x010d85}, {0x010e80, 0x010ea9}, {0x010eab, 0x010eac}, {0x010eb0, 0x010eb1}, + {0x010ec2, 0x010ec4}, + {0x010efc, 0x010efc}, {0x010f00, 0x010f1c}, {0x010f27, 0x010f27}, {0x010f30, 0x010f45}, @@ -4866,6 +4944,19 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x011357, 0x011357}, {0x01135d, 0x011361}, {0x011362, 0x011363}, + {0x011380, 0x011389}, + {0x01138b, 0x01138b}, + {0x01138e, 0x01138e}, + {0x011390, 0x0113b5}, + {0x0113b7, 0x0113b7}, + {0x0113b8, 0x0113ba}, + {0x0113bb, 0x0113c0}, + {0x0113c2, 0x0113c2}, + {0x0113c5, 0x0113c5}, + {0x0113c7, 0x0113ca}, + {0x0113cc, 0x0113cd}, + {0x0113d1, 0x0113d1}, + {0x0113d3, 0x0113d3}, {0x011400, 0x011434}, {0x011435, 0x011437}, {0x011438, 0x01143f}, @@ -4908,7 +4999,9 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x0116b0, 0x0116b5}, {0x0116b8, 0x0116b8}, {0x011700, 0x01171a}, - {0x01171d, 0x01171f}, + {0x01171d, 0x01171d}, + {0x01171e, 0x01171e}, + {0x01171f, 0x01171f}, {0x011720, 0x011721}, {0x011722, 0x011725}, {0x011726, 0x011726}, @@ -4956,6 +5049,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x011a97, 0x011a97}, {0x011a9d, 0x011a9d}, {0x011ab0, 0x011af8}, + {0x011bc0, 0x011be0}, {0x011c00, 0x011c08}, {0x011c0a, 0x011c2e}, {0x011c2f, 0x011c2f}, @@ -5009,7 +5103,12 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x012f90, 0x012ff0}, {0x013000, 0x01342f}, {0x013441, 0x013446}, + {0x013460, 0x0143fa}, {0x014400, 0x014646}, + {0x016100, 0x01611d}, + {0x01611e, 0x016129}, + {0x01612a, 0x01612c}, + {0x01612d, 0x01612e}, {0x016800, 0x016a38}, {0x016a40, 0x016a5e}, {0x016a70, 0x016abe}, @@ -5018,6 +5117,9 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x016b40, 0x016b43}, {0x016b63, 0x016b77}, {0x016b7d, 0x016b8f}, + {0x016d40, 0x016d42}, + {0x016d43, 0x016d6a}, + {0x016d6b, 0x016d6c}, {0x016e40, 0x016e7f}, {0x016f00, 0x016f4a}, {0x016f4f, 0x016f4f}, @@ -5030,7 +5132,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x016ff0, 0x016ff1}, {0x017000, 0x0187f7}, {0x018800, 0x018cd5}, - {0x018d00, 0x018d08}, + {0x018cff, 0x018d08}, {0x01aff0, 0x01aff3}, {0x01aff5, 0x01affb}, {0x01affd, 0x01affe}, @@ -5093,6 +5195,8 @@ static const pg_unicode_range unicode_alphabetic[1141] = {0x01e2c0, 0x01e2eb}, {0x01e4d0, 0x01e4ea}, {0x01e4eb, 0x01e4eb}, + {0x01e5d0, 0x01e5ed}, + {0x01e5f0, 0x01e5f0}, {0x01e7e0, 0x01e7e6}, {0x01e7e8, 0x01e7eb}, {0x01e7ed, 0x01e7ee}, @@ -5149,7 +5253,7 @@ static const pg_unicode_range unicode_alphabetic[1141] = }; /* table of Unicode codepoint ranges of Lowercase characters */ -static const pg_unicode_range unicode_lowercase[686] = +static const pg_unicode_range unicode_lowercase[690] = { {0x000061, 0x00007a}, {0x0000aa, 0x0000aa}, @@ -5433,6 +5537,7 @@ static const pg_unicode_range unicode_lowercase[686] = {0x0010fd, 0x0010ff}, {0x0013f8, 0x0013fd}, {0x001c80, 0x001c88}, + {0x001c8a, 0x001c8a}, {0x001d00, 0x001d2b}, {0x001d2c, 0x001d6a}, {0x001d6b, 0x001d77}, @@ -5774,11 +5879,13 @@ static const pg_unicode_range unicode_lowercase[686] = {0x00a7c3, 0x00a7c3}, {0x00a7c8, 0x00a7c8}, {0x00a7ca, 0x00a7ca}, + {0x00a7cd, 0x00a7cd}, {0x00a7d1, 0x00a7d1}, {0x00a7d3, 0x00a7d3}, {0x00a7d5, 0x00a7d5}, {0x00a7d7, 0x00a7d7}, {0x00a7d9, 0x00a7d9}, + {0x00a7db, 0x00a7db}, {0x00a7f2, 0x00a7f4}, {0x00a7f6, 0x00a7f6}, {0x00a7f8, 0x00a7f9}, @@ -5802,6 +5909,7 @@ static const pg_unicode_range unicode_lowercase[686] = {0x010787, 0x0107b0}, {0x0107b2, 0x0107ba}, {0x010cc0, 0x010cf2}, + {0x010d70, 0x010d85}, {0x0118c0, 0x0118df}, {0x016e60, 0x016e7f}, {0x01d41a, 0x01d433}, @@ -5840,7 +5948,7 @@ static const pg_unicode_range unicode_lowercase[686] = }; /* table of Unicode codepoint ranges of Uppercase characters */ -static const pg_unicode_range unicode_uppercase[651] = +static const pg_unicode_range unicode_uppercase[656] = { {0x000041, 0x00005a}, {0x0000c0, 0x0000d6}, @@ -6118,6 +6226,7 @@ static const pg_unicode_range unicode_uppercase[651] = {0x0010c7, 0x0010c7}, {0x0010cd, 0x0010cd}, {0x0013a0, 0x0013f5}, + {0x001c89, 0x001c89}, {0x001c90, 0x001cba}, {0x001cbd, 0x001cbf}, {0x001e00, 0x001e00}, @@ -6444,9 +6553,12 @@ static const pg_unicode_range unicode_uppercase[651] = {0x00a7c2, 0x00a7c2}, {0x00a7c4, 0x00a7c7}, {0x00a7c9, 0x00a7c9}, + {0x00a7cb, 0x00a7cc}, {0x00a7d0, 0x00a7d0}, {0x00a7d6, 0x00a7d6}, {0x00a7d8, 0x00a7d8}, + {0x00a7da, 0x00a7da}, + {0x00a7dc, 0x00a7dc}, {0x00a7f5, 0x00a7f5}, {0x00ff21, 0x00ff3a}, {0x010400, 0x010427}, @@ -6456,6 +6568,7 @@ static const pg_unicode_range unicode_uppercase[651] = {0x01058c, 0x010592}, {0x010594, 0x010595}, {0x010c80, 0x010cb2}, + {0x010d50, 0x010d65}, {0x0118a0, 0x0118bf}, {0x016e40, 0x016e5f}, {0x01d400, 0x01d419}, @@ -6496,7 +6609,7 @@ static const pg_unicode_range unicode_uppercase[651] = }; /* table of Unicode codepoint ranges of Case_Ignorable characters */ -static const pg_unicode_range unicode_case_ignorable[491] = +static const pg_unicode_range unicode_case_ignorable[506] = { {0x000027, 0x000027}, {0x00002e, 0x00002e}, @@ -6565,7 +6678,7 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x000859, 0x00085b}, {0x000888, 0x000888}, {0x000890, 0x000891}, - {0x000898, 0x00089f}, + {0x000897, 0x00089f}, {0x0008c9, 0x0008c9}, {0x0008ca, 0x0008e1}, {0x0008e2, 0x0008e2}, @@ -6846,8 +6959,11 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x010a3f, 0x010a3f}, {0x010ae5, 0x010ae6}, {0x010d24, 0x010d27}, + {0x010d4e, 0x010d4e}, + {0x010d69, 0x010d6d}, + {0x010d6f, 0x010d6f}, {0x010eab, 0x010eac}, - {0x010efd, 0x010eff}, + {0x010efc, 0x010eff}, {0x010f46, 0x010f50}, {0x010f82, 0x010f85}, {0x011001, 0x011001}, @@ -6880,6 +6996,11 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x011340, 0x011340}, {0x011366, 0x01136c}, {0x011370, 0x011374}, + {0x0113bb, 0x0113c0}, + {0x0113ce, 0x0113ce}, + {0x0113d0, 0x0113d0}, + {0x0113d2, 0x0113d2}, + {0x0113e1, 0x0113e2}, {0x011438, 0x01143f}, {0x011442, 0x011444}, {0x011446, 0x011446}, @@ -6899,7 +7020,8 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x0116ad, 0x0116ad}, {0x0116b0, 0x0116b5}, {0x0116b7, 0x0116b7}, - {0x01171d, 0x01171f}, + {0x01171d, 0x01171d}, + {0x01171f, 0x01171f}, {0x011722, 0x011725}, {0x011727, 0x01172b}, {0x01182f, 0x011837}, @@ -6938,12 +7060,17 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x011f36, 0x011f3a}, {0x011f40, 0x011f40}, {0x011f42, 0x011f42}, + {0x011f5a, 0x011f5a}, {0x013430, 0x01343f}, {0x013440, 0x013440}, {0x013447, 0x013455}, + {0x01611e, 0x016129}, + {0x01612d, 0x01612f}, {0x016af0, 0x016af4}, {0x016b30, 0x016b36}, {0x016b40, 0x016b43}, + {0x016d40, 0x016d42}, + {0x016d6b, 0x016d6c}, {0x016f4f, 0x016f4f}, {0x016f8f, 0x016f92}, {0x016f93, 0x016f9f}, @@ -6982,6 +7109,7 @@ static const pg_unicode_range unicode_case_ignorable[491] = {0x01e2ec, 0x01e2ef}, {0x01e4eb, 0x01e4eb}, {0x01e4ec, 0x01e4ef}, + {0x01e5ee, 0x01e5ef}, {0x01e8d0, 0x01e8d6}, {0x01e944, 0x01e94a}, {0x01e94b, 0x01e94b}, diff --git a/src/include/common/unicode_east_asian_fw_table.h b/src/include/common/unicode_east_asian_fw_table.h index dcd1f136eb777..db8bd0ad89779 100644 --- a/src/include/common/unicode_east_asian_fw_table.h +++ b/src/include/common/unicode_east_asian_fw_table.h @@ -9,8 +9,10 @@ static const struct mbinterval east_asian_fw[] = { {0x23F3, 0x23F3}, {0x25FD, 0x25FE}, {0x2614, 0x2615}, + {0x2630, 0x2637}, {0x2648, 0x2653}, {0x267F, 0x267F}, + {0x268A, 0x268F}, {0x2693, 0x2693}, {0x26A1, 0x26A1}, {0x26AA, 0x26AB}, @@ -44,11 +46,10 @@ static const struct mbinterval east_asian_fw[] = { {0x3099, 0x30FF}, {0x3105, 0x312F}, {0x3131, 0x318E}, - {0x3190, 0x31E3}, + {0x3190, 0x31E5}, {0x31EF, 0x321E}, {0x3220, 0x3247}, - {0x3250, 0x4DBF}, - {0x4E00, 0xA48C}, + {0x3250, 0xA48C}, {0xA490, 0xA4C6}, {0xA960, 0xA97C}, {0xAC00, 0xD7A3}, @@ -63,7 +64,7 @@ static const struct mbinterval east_asian_fw[] = { {0x16FF0, 0x16FF1}, {0x17000, 0x187F7}, {0x18800, 0x18CD5}, - {0x18D00, 0x18D08}, + {0x18CFF, 0x18D08}, {0x1AFF0, 0x1AFF3}, {0x1AFF5, 0x1AFFB}, {0x1AFFD, 0x1AFFE}, @@ -73,6 +74,8 @@ static const struct mbinterval east_asian_fw[] = { {0x1B155, 0x1B155}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, + {0x1D300, 0x1D356}, + {0x1D360, 0x1D376}, {0x1F004, 0x1F004}, {0x1F0CF, 0x1F0CF}, {0x1F18E, 0x1F18E}, @@ -113,11 +116,10 @@ static const struct mbinterval east_asian_fw[] = { {0x1F93C, 0x1F945}, {0x1F947, 0x1F9FF}, {0x1FA70, 0x1FA7C}, - {0x1FA80, 0x1FA88}, - {0x1FA90, 0x1FABD}, - {0x1FABF, 0x1FAC5}, - {0x1FACE, 0x1FADB}, - {0x1FAE0, 0x1FAE8}, + {0x1FA80, 0x1FA89}, + {0x1FA8F, 0x1FAC6}, + {0x1FACE, 0x1FADC}, + {0x1FADF, 0x1FAE9}, {0x1FAF0, 0x1FAF8}, {0x20000, 0x2FFFD}, {0x30000, 0x3FFFD}, diff --git a/src/include/common/unicode_nonspacing_table.h b/src/include/common/unicode_nonspacing_table.h index 8d00e127fcd9c..d67f5b3f281d3 100644 --- a/src/include/common/unicode_nonspacing_table.h +++ b/src/include/common/unicode_nonspacing_table.h @@ -210,8 +210,9 @@ static const struct mbinterval nonspacing[] = { {0x10A38, 0x10A3F}, {0x10AE5, 0x10AE6}, {0x10D24, 0x10D27}, + {0x10D69, 0x10D6D}, {0x10EAB, 0x10EAC}, - {0x10EFD, 0x10EFF}, + {0x10EFC, 0x10EFF}, {0x10F46, 0x10F50}, {0x10F82, 0x10F85}, {0x11001, 0x11001}, @@ -242,6 +243,11 @@ static const struct mbinterval nonspacing[] = { {0x1133B, 0x1133C}, {0x11340, 0x11340}, {0x11366, 0x11374}, + {0x113BB, 0x113C0}, + {0x113CE, 0x113CE}, + {0x113D0, 0x113D0}, + {0x113D2, 0x113D2}, + {0x113E1, 0x113E2}, {0x11438, 0x1143F}, {0x11442, 0x11444}, {0x11446, 0x11446}, @@ -261,7 +267,8 @@ static const struct mbinterval nonspacing[] = { {0x116AD, 0x116AD}, {0x116B0, 0x116B5}, {0x116B7, 0x116B7}, - {0x1171D, 0x1171F}, + {0x1171D, 0x1171D}, + {0x1171F, 0x1171F}, {0x11722, 0x11725}, {0x11727, 0x1172B}, {0x1182F, 0x11837}, @@ -295,15 +302,19 @@ static const struct mbinterval nonspacing[] = { {0x11F36, 0x11F3A}, {0x11F40, 0x11F40}, {0x11F42, 0x11F42}, + {0x11F5A, 0x11F5A}, {0x13430, 0x13440}, {0x13447, 0x13455}, + {0x1611E, 0x16129}, + {0x1612D, 0x1612F}, {0x16AF0, 0x16AF4}, {0x16B30, 0x16B36}, {0x16F4F, 0x16F4F}, {0x16F8F, 0x16F92}, {0x16FE4, 0x16FE4}, {0x1BC9D, 0x1BC9E}, - {0x1BCA0, 0x1CF46}, + {0x1BCA0, 0x1BCA3}, + {0x1CF00, 0x1CF46}, {0x1D167, 0x1D169}, {0x1D173, 0x1D182}, {0x1D185, 0x1D18B}, @@ -320,6 +331,7 @@ static const struct mbinterval nonspacing[] = { {0x1E2AE, 0x1E2AE}, {0x1E2EC, 0x1E2EF}, {0x1E4EC, 0x1E4EF}, + {0x1E5EE, 0x1E5EF}, {0x1E8D0, 0x1E8D6}, {0x1E944, 0x1E94A}, {0xE0001, 0xE01EF}, diff --git a/src/include/common/unicode_norm_hashfunc.h b/src/include/common/unicode_norm_hashfunc.h index decab8f8c7d1e..89e04c744d913 100644 --- a/src/include/common/unicode_norm_hashfunc.h +++ b/src/include/common/unicode_norm_hashfunc.h @@ -41,702 +41,662 @@ typedef struct static int Decomp_hash_func(const void *key) { - static const int16 h[13551] = { - 6102, 6103, 6104, 6105, 6106, 11163, 11164, 9247, - 3108, 32767, 32767, 5839, 5840, 11166, 3130, 3130, - 3130, 3130, -1926, -1926, 9274, 9275, 9276, 9277, - 9278, 473, 473, 6107, 0, 6110, 6111, -1569, - 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, - 9295, 11077, 11078, 11079, 11080, 9300, 9301, 9302, - 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, - 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, - 9319, 9320, 4265, 4266, -1834, 4268, 4269, 4270, - 4271, 4272, 9329, 9330, 7413, 1274, 1274, 1274, - 5264, 1274, 9337, 1301, 1301, 1301, 1301, 8982, - -3754, 11381, 11382, 11383, 11384, 10049, 11386, 5605, - 5606, 5607, 5608, 5609, 5610, 5611, 5612, 465, - 465, 5617, 5618, 5619, 5620, 5621, 5622, 5623, - 465, 465, 465, 465, 465, 465, 465, 465, - 465, 465, 465, 465, 465, 465, 465, 465, - 465, 465, 465, 465, 465, 465, 465, 465, - 465, 465, 465, 465, 465, 465, 5256, 5256, - -10103,5256, 465, 465, 5256, 5256, 465, 5939, - 465, 465, 465, 465, 465, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -71, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -884, -884, -884, -884, -884, -884, - 0, -885, -885, -885, -885, -885, -885, 0, - 0, -886, -886, -886, -886, -886, -4378, 0, - -888, -888, 422, -888, -888, -888, 0, -7896, - -7896, -7896, 0, 0, 0, 0, 0, 1463, - 1463, 1463, 1463, 2951, 1464, 1464, -18469,1464, - 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, - 1215, 1216, 1464, 1464, 1464, 1464, 1464, 1464, - 1464, 1464, 0, 1465, 1465, 1465, 80, 1464, - 1464, 1464, 7565, 1464, 1464, 1464, 1464, 1464, - 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 32767, - 32767, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 32767, 112, 113, 114, 115, 116, - 117, 32767, 118, 119, 120, 121, 122, 123, - 124, 0, 0, 0, 126, 0, 0, 0, - 0, 0, 0, 0, 4145, 4146, 4147, 4148, - 4149, 4150, 4151, 4152, 4153, 4154, 0, 0, - 0, 0, 0, 0, 4155, 4156, 4157, 4158, - 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, - 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, - 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, - 4183, 4184, 4185, 4186, 4187, 4188, 4189, 179, - 180, 32767, 32767, 4192, 4193, 4194, 4195, 4196, - 4197, 4198, 4199, 4200, 4201, 4202, 4203, 32767, - 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, - 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, - 4220, 4221, 4222, 32767, 4223, 4224, 4225, 4226, - 32767, 32767, 32767, 32767, 4227, 4228, 4229, 32767, - -4545, -5662, -5662, -5662, -5662, -5662, -5662, -5662, - -5662, 4238, 4239, -5664, -5664, -5664, -5664, -5664, - -5664, -5664, -5664, 4248, 4249, 4250, 4251, 4252, - 4253, -6935, -1879, -1879, 4222, -1879, -1879, -1879, - -1879, -1879, -6935, -6935, 4265, 4266, 4267, 4268, - 4269, -4536, -4536, 1098, 1099, 1100, 1101, -6579, - 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, - 4285, 6067, 6068, 6069, 6070, 4290, 4291, 4292, - 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, - 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, - 4309, 4310, -745, -744, -6844, -742, -741, -740, - -739, -738, 4319, 4320, 2403, -3736, -3736, -3736, - 254, -3736, 4327, -3709, -3709, 4330, 0, 0, - 0, 0, 0, 0, 0, -2997, -2997, 2705, - 2705, 2705, 2705, 2705, 2705, 2705, 2705, 2705, - 0, 0, 0, 0, 0, 0, -4452, 0, - 0, 0, 0, 0, 2716, 0, 0, 0, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1841, - 32767, 32767, 4710, 32767, 0, 32767, 32767, 0, + static const int16 h[13687] = { 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 32767, 1845, 32767, 32767, 32767, 32767, 32767, 0, - 0, 32767, 0, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 1850, 32767, 32767, 0, - 32767, 32767, 0, 32767, 1853, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 0, 32767, 0, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 0, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 0, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 0, 0, 32767, 32767, 0, - 0, 32767, 32767, 0, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 567, 567, 567, 567, -1649, -4447, - 32767, 32767, 566, 566, -1644, 566, 566, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, -1144, 0, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, - 0, 0, 0, 304, 305, 306, -2209, -2208, - 309, 2223, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, -550, 328, 329, 330, 331, 332, - 333, 334, 335, 0, 0, 0, 0, 340, - 341, 342, 343, -534, 345, 0, 0, 0, - 0, -6511, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 32767, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 4654, 410, 4655, - 412, 413, 414, 32767, 32767, 32767, 32767, 415, - 32767, 32767, 32767, 32767, 32767, 416, 32767, 32767, - 32767, -464, 32767, 32767, 32767, 32767, 32767, 418, - 419, 420, 421, 422, 423, 424, 32767, 425, - 32767, 426, 427, 428, 32767, 32767, 32767, 32767, - 4656, 4657, 4658, 32767, 32767, 32767, 32767, 4659, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 429, 430, 431, - 432, 433, 434, 435, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -2290, -2290, -2290, - -2290, -2290, 32767, -2291, -2291, -2291, -2291, -2291, - -2291, 2502, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 733, 733, 733, 32767, 732, - 732, 32767, 32767, 32767, 729, 32767, 0, 0, - 32767, 32767, 32767, 32767, -241, -241, 32767, -242, - 32767, 32767, 32767, -4550, 32767, 32767, 32767, 32767, - -249, -1737, -1737, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -1747, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -291, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 4660, 4661, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 3982, 3982, 3982, 32767, -1149, -1148, 32767, -1147, - 32767, 32767, 32767, -1146, 32767, 32767, 32767, 32767, - -1145, -1144, -1143, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, -4642, -1836, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, -1839, - -4651, -1838, -1838, 476, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 4708, 4709, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -4703, -1851, 32767, - 32767, 32767, 32767, 32767, 4710, 4711, 4712, 32767, - 32767, 32767, 32767, 32767, -1857, -4716, -1856, -4716, - 32767, 32767, -4718, -1855, 32767, 32767, -4720, -905, - -4720, -4720, -4720, -4720, 32767, 32767, -894, -893, - 4714, 4715, 4716, 1689, 8219, 4719, -4724, -1850, - -1850, 3912, 4721, 4722, 4723, 4724, -4724, -4724, - -4724, -4724, 32767, 32767, -4726, -4726, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - -1149, -1396, -1395, -1394, -1393, -1392, -1391, -1390, - -1389, 76, -1388, -1387, -1386, 0, -1383, -1382, - 32767, 32767, -1381, -1380, -1379, -1378, -1377, 0, + 0, 0, 0, 32767, 0, 32767, 0, 32767, + 0, 32767, 0, 32767, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32767, 0, 0, 0, 0, 0, 0, - 32767, 0, 0, 0, 0, 0, 0, 0, - 125, 32767, 32767, 0, 127, 128, 129, 130, - 131, 132, 32767, 32767, -4013, -4013, -4013, -4013, - -4013, -4013, 32767, 32767, -4015, 140, 141, 142, - 143, 144, 145, -4009, -4009, -4009, -4009, -4009, - -4009, -4009, -4009, -4009, -4009, -4009, 32767, 32767, - -4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011, - -4011, -4011, -4011, -4011, -4011, -4011, -4011, -4011, - -4011, -4011, -4011, -4011, -4011, -4011, 0, 0, - -2541, 32767, 32767, 32767, 32767, 32767, 512, 513, - 514, 515, 516, 517, -441, -441, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, - -4040, -4040, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 4728, - 5846, 555, 556, 32767, 557, 32767, 558, 559, - 32767, 560, 561, 32767, 562, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -4065, -4065, -4065, -4065, - 7124, 2069, 2070, -4030, 2072, 2073, 2074, 2075, - 2076, 7133, 7134, -4065, -4065, -4065, -4065, -4065, - 4741, 4742, -891, -891, -891, 32767, 6789, -4066, - -4066, -4066, -4066, -4066, 32767, 32767, -4068, -4068, - -5849, -5849, -5849, -5849, -4068, -4068, -4068, -4068, - -4068, -4068, -4068, -4068, -4068, -4068, 5832, 5833, - -4070, -4070, -4070, -4070, -4070, -4070, -4070, -4070, - 5842, 5843, 5844, 5845, 5846, 5847, -5341, -285, - -285, 5816, -285, -285, -285, -285, -285, -5341, - -5341, 5859, 5860, 5861, 5862, 5863, -2942, -2942, - 2692, 2693, 2694, 2695, -4985, 5871, 5872, 5873, - 5874, 5875, 5876, 5877, 5878, 5879, 7661, 7662, - 7663, 7664, 5884, 5885, 5886, 5887, 5888, 5889, - 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, - 5898, 5899, 5900, 5901, 5902, 5903, 5904, 849, - 850, -5250, 852, 853, 854, 855, 856, 5913, - 5914, 3997, -2142, -2142, 590, 591, 592, 5918, - -2118, -2118, -2118, -2118, 5563, -7173, 7962, 7963, - 7964, 7965, 6630, 7967, 2186, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 4034, 32767, - 32767, 32767, 5815, 5816, 5817, 5818, 5819, 5820, - 5821, 32767, 5822, 5823, 5824, 5825, 5826, 5827, - 5828, 5829, -272, -272, -272, -272, -272, -5328, - -5328, -3410, 2730, 2731, 0, 0, 0, -5325, - 2712, 2713, 2714, 2715, -4965, 7772, -3427, 32767, - -3428, -3428, -3428, 5378, 5379, 32767, 32767, 32767, - 32767, 32767, -3434, -3434, -3434, -3434, -3434, -3434, - -3434, -3434, -3434, -5215, -5215, -5215, -5215, -3434, - -3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434, - -3434, -3434, -3434, -3434, -3434, -3434, -3434, -3434, - -3434, -3434, -3434, -3434, 1622, 1622, 7723, 1622, - 1622, 1622, 1622, 1622, -3434, -3434, -1516, 4624, - 4625, 4626, 637, 4628, -3434, 4603, 4604, 4605, - 4606, -3074, 9663, -5471, -5471, -5471, -5471, -4135, - 618, -4134, -4134, 32767, 32767, 621, 622, 32767, - 623, 624, 625, 626, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 4039, 32767, - 4040, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 5450, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -4019, 32767, 32767, 4042, -3994, -3994, -3994, - -3994, 3687, -9049, 32767, 32767, 6086, 6087, 4752, - 0, 4753, 4754, 32767, 32767, 0, 0, 32767, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 6862, - 6863, 6864, 6865, 1810, 1811, -4289, 1813, 1814, - 1815, 1816, 1817, 6874, 6875, 4958, -1181, -1181, - -1181, 2809, -1181, 6882, -1154, -1154, -1154, -1154, - 6527, -6209, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 82, 32767, 32767, 11618, 11619, 11620, 5919, 5920, - 5921, 5922, 32767, 32767, 786, 32767, 32767, 787, - 788, 789, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 790, 791, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, -1151, -1151, -1151, -1151, -1151, -1151, - -1151, -1400, -1399, 32767, 32767, 32767, 32767, 32767, - 792, 32767, 32767, 32767, -1159, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4666, - 4667, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 665, 666, - 667, 668, 32767, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 32767, 678, 679, 680, - 32767, 681, 682, 683, 684, 685, -1578, -5751, - -5751, -5751, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - -1193, 32767, 32767, 32767, 32767, -5986, -5986, -5986, - -5986, -5986, -5986, -5986, -5986, -5986, -5986, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 686, 687, 688, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -174, 1314, -173, - -173, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 32767, 0, 32767, 32767, 0, 0, 0, + 0, 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 689, 690, 691, 692, 693, 694, 695, 696, - 32767, 32767, 32767, 4671, 4672, 4673, 4674, 4675, - 4676, 4677, 4678, 4679, 4680, 4681, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -1552, -1552, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 697, 533, 533, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 4682, - 6946, 2158, 4685, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 739, 740, 741, - 742, 743, 744, 745, 746, 747, 748, 749, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 32767, 32767, 5923, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 4215, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 4181, 32767, 32767, -1922, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 4218, 32767, 32767, - 32767, 32767, 2986, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 4219, 32767, - 32767, 32767, 6001, 4221, 4222, 4223, 32767, 32767, - 32767, 4224, 4225, 4226, 4227, 4228, 4229, 4230, - 4231, 5925, 5926, 5927, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 1170, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1, 32767, 2, 32767, 32767, 32767, 32767, 2792, + 32767, 32767, 4, 5, 6, 7, 32767, 32767, + 8, 9, 10, 32767, 11, 12, 13, 1734, + 14, -822, -822, 17, 18, 3020, 1739, 3021, + 3022, 3023, 1110, 24, 3024, 3025, 27, -3019, + 32767, 29, 30, 3026, 3027, 33, 34, 5016, + 1754, -4252, 36, 37, -4254, -4254, -4254, 32767, + 40, 41, 42, 43, 44, 45, 1912, 46, + 47, 48, 49, 50, 51, 52, 53, 54, + 1770, 55, 606, 57, 58, 59, 60, 1776, + 1777, 61, 62, 63, 64, 65, 32767, 66, + 32767, -1290, 6662, 3534, 3534, 3534, -172, 3322, + -170, -169, -168, -167, 3331, 1788, 0, 1790, + 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, + 1799, 3354, 1801, 1802, -964, -964, -964, -964, + 1807, 4976, 4976, 4976, 4976, 4976, 4976, 1814, + 1815, 4974, 2192, 11244, 2194, 11245, 0, 0, + 1605, 11251, 0, 11252, 0, 0, 3571, 3571, + -47, -47, 0, 0, -124, -123, -122, -4877, + -4877, -119, 32767, 32767, -118, 0, -116, -11032, + -114, -113, -112, 32767, 32767, -887, -110, -109, + -885, -107, 5320, 32767, 32767, -105, -882, 5328, + -102, -101, -100, -99, -4221, -4221, -4221, -95, + -94, -93, -92, -4221, -4221, -4221, -4221, 32767, + 32767, -4223, -4223, -4223, -4223, -4223, -4223, -4223, + -4223, -5481, -4223, -4223, -4223, -4223, -4223, -4223, + -4223, -4223, -4223, -4223, -4223, -4223, -4223, -4223, + -5495, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1839, 1840, 1841, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4663, 4664, 32767, + 32767, -4255, -4255, 32767, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -4268, -4268, 5881, 5882, 4722, 5884, 5885, 5886, + 5887, 32767, 5888, 5889, 5890, 5891, 5892, 5893, + 5894, 5895, 5896, 5897, 5898, 185, 186, -3976, + -3976, -3976, -3976, 6000, 6001, 6002, 6003, 6004, + 6005, 6006, 198, 5911, -3968, -3968, -826, -3968, + -3968, -3968, -3968, -3968, 208, 209, 32767, -3967, + -3967, -3032, -3967, -3967, -3030, 5922, 5923, -813, + 5925, 5926, 219, 220, 5929, 5930, 5931, 224, + -4290, -4290, -4290, -4290, -4290, -4290, -4290, 5940, + 5941, -4292, -4292, -4292, -4292, -4292, -4292, -4292, + -4292, 5950, 5951, 0, 0, 0, 0, 245, + 0, 0, 0, 0, 0, 0, 0, 253, + 254, 255, 256, -635, 258, 259, 260, 261, + 262, 263, 0, 265, 266, 267, 0, 0, + 268, 269, 32767, 32767, 32767, 32767, 32767, 32767, + 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 5981, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -901, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 767, 32767, 32767, - 32767, 32767, 32767, 32767, -5005, -4757, -4757, 32767, - 32767, 32767, -4760, -4760, 68, 68, 68, 32767, + 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 287, 32767, 32767, 32767, 58, 58, 32767, - 57, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 4689, 32767, 4690, 32767, 32767, 32767, 32767, -1717, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 4691, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 6903, - 4693, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 2763, + 975, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 289, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4382, 4382, 4382, 0, 7408, + 4383, 4383, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -4027, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1642, -1641, -1640, -1639, + -1638, 3694, -1636, 3697, 3698, 3699, 0, 0, + -1627, 0, 0, -1622, -1621, 0, 6198, -1616, + -1615, -1614, -1613, 0, -1610, -1609, -1608, 0, + 0, 0, 0, 0, 0, 9558, -10546,0, + 6270, 6271, 6272, 6273, 6274, 6275, -3369, 6277, + 6545, 6279, 9583, 6281, -1402, -1402, 6284, 6285, + 304, 1947, 1947, 1947, 1947, 1947, -3384, 1947, + -3385, -3385, -3385, 315, 316, 1944, 318, 319, + 1942, 1942, 322, -5875, 1940, 1940, 1940, 1940, + 328, 1939, 1939, 1939, 332, 333, 334, 335, + 336, 337, -9220, 10885, 340, -5929, -5929, -5929, + -5929, -5929, -5929, 3716, -5929, -6196, -5929, -9232, + -5929, 1755, 1756, -5929, -5929, 53, -1589, -1588, + -1587, -1586, -1585, 3747, -1583, 3750, 3751, 3752, + 53, 53, -1574, 53, 53, -1569, -1568, 53, + 6251, -1563, -1562, -1561, -1560, 53, -1557, 5101, + -1556, 52, 52, 52, 52, 52, 52, 9610, + -10494,52, 6322, 6323, 6324, 6325, 6326, 6327, + -3317, 6329, 6597, 6331, 9635, 6333, -1350, -1350, + 6336, 6337, 356, 1999, 1999, 1999, 1999, 1999, + 0, 0, -2173, -3888, -3337, -5616, 0, 0, + 432, -2164, 1985, 0, 0, 0, 1980, 0, + 0, 0, 0, -1319, -4683, 1975, 368, 369, + 370, 371, 372, 0, -9185, 0, 374, -5895, + -5895, 0, 0, 0, 0, 864, 437, -16, + -16, 440, 32767, 441, 442, 443, -13, 445, + 446, 447, 32767, 32767, 32767, 32767, 32767, 6042, + 6043, 6044, 6045, 430, 431, 0, 2597, -1551, + 435, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 448, 449, 450, 32767, 451, + 452, 32767, 32767, 32767, 453, 0, 0, 0, + 0, 0, -428, 0, 454, 455, 0, 456, + 0, 0, 0, 457, 0, 0, 0, 0, + 458, 459, 460, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 3733, 3734, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 462, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 463, 464, 0, 465, + 0, 0, 0, 466, 0, 0, 0, 0, + 467, 0, 469, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5493, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 5530, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -4339, -4339, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -7353, -7353, -7353, -5439, + 0, 0, -7353, -4354, 0, 0, 485, 486, + 487, 488, 489, 490, 0, 0, 491, 492, + 493, 494, -2541, -5542, 0, 0, -5544, -5544, + -3630, -2543, -5542, -5542, -2543, 504, -2543, -2543, + -2543, -5538, 0, 0, -2545, -2545, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 775, 32767, 32767, - 776, 32767, 32767, 32767, 32767, 32767, 777, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 778, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 779, 780, 781, 32767, 4694, - 4695, 4696, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 4697, 4698, 32767, - 32767, 32767, 4699, 4700, 32767, 32767, 32767, 2428, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 2995, 2996, 2997, 2998, 2999, - 2696, 2696, 2696, 5212, 5212, 2696, 783, 2696, - 2696, 2696, 2696, 2696, 2696, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 784, - 32767, 32767, 4701, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3448, + 3448, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3013, - 3014, 3015, 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 2139, 2140, -808, - 681, 682, 683, 684, 32767, 32767, 32767, 2633, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3016, - 685, 686, 936, 936, 689, 32767, 32767, 32767, - 32767, 32767, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, -5401, 701, 702, 703, - 704, 705, 706, 707, -779, 709, 80, -7189, - -7189, -7189, 0, 0, 32767, 0, 0, 0, - 0, 0, 32767, 0, 32767, 0, 0, 32767, - 0, 0, 32767, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, -3213, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 2540, 2540, + 2540, 2540, 2540, 0, 4830, 4831, -307, -307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1310, 0, - 0, 0, 0, -7007, -7007, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6538, - 6539, 6540, 6541, 6542, 6543, 2371, 6545, 6546, - 6547, 6548, 6549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -796, -795, + -794, -793, -792, -791, 1061, 1062, 1063, 1064, + 1065, 0, 0, 0, 0, 0, 0, 0, + -785, -784, -783, -782, -4016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1097, -1096, -1095, -5270, -5270, -1094, -1093, + -1092, -2026, -1090, -1089, -2025, -2024, -765, -4241, + -10978,-10978,-5270, -5270, -10978,-10978,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3849, 0, + 0, 0, 0, 3854, 2311, 523, 2313, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -6893, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -6902, 0, 0, 0, - 0, -2600, 0, 1974, 1974, 0, 0, 0, - 0, -6912, -5556, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3019, 0, 3020, - 3021, 3022, 0, 0, 3023, 3024, 0, 0, - 0, 0, 0, 2206, 3026, 0, 3027, 0, - 0, 0, 32767, 32767, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -3504, 0, 0, 0, -6893, 0, 0, 5606, - 0, 0, 0, 3028, -3501, 0, -3500, -3499, - 0, 808, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32767, 32767, 0, 0, 0, 0, 0, 0, - 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1619, 1620, 32767, 32767, 1621, 1622, - 1623, 32767, 1624, 1625, 1626, 1627, 1628, 1629, - 0, 0, 1632, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 5994, 4146, 4146, 5997, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2970, 32767, 32767, 32767, 32767, 1264, 1264, 1264, + 2215, 2216, 2217, 2218, 2219, 2220, 2221, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 5792, 32767, + 362, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 3029, 3030, 3031, 3032, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3033, - -1994, 810, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 811, - 1188, -1999, 814, 32767, 32767, 32767, 32767, 32767, + 32767, -3774, 32767, 32767, -3776, -3776, -3776, -3776, + -5034, -3776, -3776, 32767, 32767, -3778, -3778, -3778, + -3778, -3778, -3778, 32767, 32767, -3780, -3780, 32767, + -5053, -3781, -3781, -3781, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, -157, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 627, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4695, 32767, + 32767, 2985, 2986, 32767, 32767, 32767, 32767, 628, + 629, 630, 631, 632, 633, -5911, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 32767, 32767, 32767, 32767, 32767, 32767, + -2208, 32767, 8339, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 4699, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4700, + 4701, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 2778, 32767, 32767, 32767, - 2775, 32767, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -2863, -2863, -2863, -2863, - -2863, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 986, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 815, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 817, 818, 819, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -2752, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4452, 0, - 4451, 0, 0, 0, 4448, 4732, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2022, 0, 32767, 32767, 32767, - 32767, -7994, 32767, 32767, 32767, 32767, -4824, -4824, - 2857, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, -8011, -8011, - -8011, -8011, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 5998, 0, 32767, + 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, + 32767, 0, 2987, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -1459, + -1459, -1459, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -1496, -2931, 32767, + 32767, 32767, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 664, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -251, -251, -251, -251, -251, -251, 4127, - 3239, 3239, 4549, 4549, 32767, 32767, 32767, 32767, - 32767, -3773, 4123, 4123, 4123, 4123, 4123, 5586, - 5586, 5586, 5586, 7074, 5587, 5587, -14346,5587, - 5587, 5587, 5587, 5587, 5587, 5587, 5587, 5587, - 5338, 0, 0, 0, 0, 0, 0, 0, - 32767, 0, 4131, 0, 0, 0, 0, 0, - 0, 828, 0, 0, 0, 0, 829, 830, - -3958, 0, 0, 8614, 4312, 0, 0, 0, - 0, 0, 4619, 0, 0, 0, 832, 833, - 834, 835, 32767, 32767, 32767, 32767, -215, -215, - 4094, 4630, -213, -213, -213, 32767, 32767, 32767, - 32767, 32767, -3542, -2653, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, -21505,-1572, -1572, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, + 32767, 32767, 4743, 32767, 32767, 32767, -3717, -3716, + 667, -6740, 32767, -3714, 670, 671, 672, 673, + 674, 675, 676, 677, 32767, 678, 679, 680, + 32767, 681, 4709, 683, 684, 685, 2990, 32767, + 32767, 32767, 2991, 2992, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -977, 32767, -2211, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 4386, 4386, -2210, - -2209, 32767, 4735, 4736, 32767, 32767, 32767, 32767, + 32767, 538, 32767, 32767, 32767, 32767, -1583, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -5881, 32767, 4018, 32767, - -5885, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 4020, 1382, 1382, 1382, 1382, 1382, - 5938, 32767, 32767, 32767, -2118, 32767, 32767, 32767, - 32767, 4022, 32767, 32767, 32767, 32767, -4783, 32767, - 32767, 32767, 32767, 850, 32767, 32767, 32767, 32767, + 32767, 686, -5583, -5583, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -1622, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 5806, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, - 4034, 4035, 4036, 4037, 4038, 32767, 32767, -1017, - -1016, -7116, -1014, -1013, 32767, -1012, -1011, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4710, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, -3993, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 4737, 302, 32767, 32767, 32767, - 32767, 303, 32767, 32767, 32767, 32767, 306, 32767, - 32767, 32767, 32767, 307, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 5939, - -4862, 5941, -388, -388, -388, -388, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -4874, 32767, 32767, + 4679, 4711, 4681, 4682, 4683, 4684, 4685, 4686, + 4687, 4688, 4689, 0, 0, 32767, 0, 32767, + 32767, 32767, 0, 5257, 32767, 32767, 32767, 6885, + 6619, 9923, 6621, -1062, -1062, 6624, 6625, 644, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 1637, 32767, 1637, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 4690, 4691, 4692, 4693, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 4015, -5630, -5897, -5630, -8933, -5630, + 2054, 2055, -5630, -5630, 352, -1290, -1289, -1288, + -1287, -1286, 714, 715, 2889, 4605, 4055, 6335, + 720, 721, 32767, 2886, -1262, 724, 725, 726, + -1253, 728, 729, 730, 731, 2051, 5416, -1241, + 367, 367, 367, 367, 367, 740, 9926, 742, + 369, 6639, 6640, 746, 747, 748, 749, -114, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -8006, -8006, -2024, -3666, -3665, + -3664, -3663, -3662, 1670, -3660, 1673, 1674, 1675, + -2024, -2024, -3651, -2024, -2024, 32767, 32767, 32767, + 32767, 32767, -2866, 32767, 32767, -2865, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -2866, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -2866, 32767, + 32767, 32767, -4485, -4485, 758, 759, 32767, 32767, + 32767, 760, -2863, -2862, -2861, -2860, -2859, -2858, + -2857, 32767, 32767, 32767, 32767, 32767, 32767, 3014, + 3015, 3016, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 2516, 2516, 0, -1913, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 877, 0, - 0, 0, 0, 0, 0, 0, 0, 336, - 337, 338, 339, 0, 0, 0, 0, 878, - 0, 346, 347, 348, 349, 6861, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -4245, 0, -4244, 0, 0, 0, 32767, - 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, - 3833, 0, 32767, 32767, 32767, 881, 32767, 32767, - 32767, 0, 32767, 0, 0, 0, 0, 0, - 0, 0, 32767, 0, 32767, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 32767, 32767, 32767, 32767, 3017, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 2713, -2075, -2074, -2073, - -2072, -2071, -2070, 2720, -2068, -2067, -2066, 2724, - 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, - 2733, 2734, 2735, 2736, 2737, -2055, -2054, 2740, - -2052, 2742, 2743, 2744, 2745, 2746, 2747, -1630, - -741, -740, -2049, -2048, -738, -737, -1624, 6273, - 6274, -291, -290, -289, -288, -287, -286, -285, - -284, -283, -282, -281, -280, -279, -278, -277, - -276, 2772, 0, 0, 0, 0, 2779, -5015, - -269, -268, 0, 0, -2210, 0, 0, -262, - -261, -260, -259, -258, 0, 0, 0, 0, + 32767, 2180, 2180, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 768, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 769, 770, 771, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 32767, 32767, 32767, 32767, 32767, 772, 773, 32767, + 774, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3018, + 32767, 32767, 0, 32767, 4716, 4717, 32767, 32767, + 32767, 32767, 32767, 32767, 3019, 0, 3919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 32767, 3643, + 32767, 32767, 3641, 32767, 32767, 0, 0, -3355, + 0, 0, 0, 0, 1998, 0, 0, 0, + 0, 0, 0, -3366, -3366, -3366, 0, 0, + -3368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2040, 2040, - 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3365, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32767, - 32767, 32767, 32767, 32767, 32767, 0, 0, 0, - 0, 0, 0, 0, 0, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 677, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13799, 0, 0, 0, 9279, 2994, 32767, + 8461, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1755, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 165, 166, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 3196, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -4700, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -3816, + 360, 361, 362, -572, 364, 365, -571, -570, + 689, -2787, -9524, -9524, -3816, -3816, -9524, -9524, + -9524, -3816, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 8659, 5531, 5531, 5531, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 4746, 4747, 32767, + 4748, 32767, 32767, 32767, 4749, -507, -507, -507, + -507, -507, -507, -507, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -872, + 32767, 32767, 3030, 3031, 3032, 3033, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -3585, -3585, -3585, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -3964, -6227, -1438, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 2824, 2825, 5791, 3454, - 3455, 3456, 32767, 10734, -115, 3459, 1375, 32767, - 32767, 3461, 10743, 5953, 3464, 3465, 3466, 3467, - 10751, 32767, 10753, 3470, 3471, 3472, 3473, 3474, - 3475, 32767, 3476, 5980, 10770, 5982, 7789, 7790, - 3482, 0, 2797, 0, 2798, 0, 2799, 0, - 2800, 0, 2801, 0, 2802, 0, 2803, 0, - 2804, 0, 0, 2806, 0, 2807, 32767, 2807, - 0, 0, 0, 32767, 0, 0, -376, 2812, - 0, 32767, 2812, 32767, 32767, 32767, 0, 2811, - 2811, 0, 2812, 2812, 0, 32767, 0, 0, + 0, 0, 0, 0, 0, -10784,-5076, -561, + -560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2833, 0, 0, 0, 0, 3781, - 2837, 3782, 2837, 0, 3784, 3785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2850, 0, 2851, 0, 2852, 0, - 2853, 0, 2854, 0, 2855, 0, 2856, 0, - 2857, 0, 2858, 0, 2859, 0, 2860, 0, - 2861, 0, 0, 2863, 0, 2864, 0, 3815, - 0, 0, 0, 0, 0, 0, 3828, 3829, - 9436, 9437, 9438, 6411, 2873, 2873, 0, 2874, - 2874, 8636, 9445, 9446, 9447, 9448, 0, 0, + 2304, 2304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2897, 0, 0, 660, 7421, 7236, - 2899, 0, 0, 0, 2902, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 2013, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 5486, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 4750, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -3368, -3368, + 798, 32767, -372, -372, -372, -372, -372, -372, + 0, 1160, 0, 0, 0, 0, 0, 0, + 1161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5714, 5714, 9877, 9878, 9879, 9880, 0, + 0, -97, -97, -97, -97, -97, 5712, 0, + 0, 9880, 6739, 0, 9882, 9883, 9884, 9885, + 5710, 0, 3820, 679, 0, 0, 9886, 9887, + 8951, 0, 0, 6737, 0, 0, 5708, 5708, + 0, 0, 0, 5708, 10223, 10224, 10225, 10226, + 10227, 10228, 10229, 0, 0, 10234, 10235, 10236, + 10237, 10238, 10239, 10240, 10241, 0, 0, 5952, + 5953, 5954, 5955, 5711, 5957, 5958, 5959, 5960, + 5961, 5962, 5963, 5711, 5711, 5711, 5711, 6603, + 5711, 5711, 5711, 5711, 5711, 5711, 5975, 5711, + 5711, 5711, 5979, 5980, 32767, 32767, 32767, 32767, + 803, 32767, 32767, 32767, 804, 32767, 32767, 32767, + 32767, 32767, 32767, 805, 806, 32767, 807, 808, + 32767, 809, 0, 5999, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1389, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 840, 841, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 842, 32767, 843, 32767, 844, 32767, 32767, 32767, + 32767, 32767, 0, 0, 10606, 0, 845, 5378, + 0, 0, 0, 0, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, -6838, -3709, -3708, + -3707, 0, -3493, 0, 0, 0, 0, -3497, + -1953, -164, -1953, -1953, 5407, 5408, -1955, -1955, + -1955, -1955, -1955, -1955, -3509, -1955, -1955, 812, + 813, 814, 815, -1955, -5123, -5122, -5121, -5120, + -5119, -5118, -14675,5430, -5115, -2332, -11383,-2332, + -11382,-136, -135, -1739, -11384,-11651,-11384,-131, + -130, -3700, -3699, -80, 5447, -126, -125, 0, + 0, 0, 4756, 4757, 0, 5456, -1715, 0, + -117, 0, 10917, 0, 0, 0, 5465, 5466, + 776, 0, 0, 777, 0, -5426, 5473, 5474, + 0, 778, -5431, 0, 0, 0, 0, 4123, + 4124, 4125, 0, 0, 0, 0, 4130, 4131, + 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, + 4140, 4141, 4142, 4143, 5402, 4145, 4146, 4147, + 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, + 4156, 4157, 4158, 5431, 5432, 4161, 4162, 4163, + 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, + 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, + 32767, 32767, 4180, 4181, 4182, 4183, 4184, 4185, + 4186, 4187, 4188, 4189, 4190, 4191, 4192, 6044, + 6045, 6046, 6047, 6048, 4198, 4199, 4200, 4201, + 4202, 4203, 4204, 4205, 4206, 4207, 4208, 974, + 4210, 11136, 3906, 3907, 3908, 3909, 3910, 3911, + 3912, 3913, 3914, 3915, 3916, 3917, 5988, 5989, + 0, 0, 3919, 3920, 3921, 3922, -6053, -6053, + -6053, -6053, -6053, -6053, -6053, -244, -5956, 3924, + 3925, 784, 3927, 3928, 3929, 3930, 3931, -244, + -244, 3932, 3933, 3934, 3000, 3936, 3937, 3001, + 3002, 4261, 785, -5952, -5952, -244, -244, -5952, + -5952, -5952, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -5739, -408, + -408, -408, 32767, 32767, 32767, 32767, 3724, 823, + 824, 32767, 32767, 32767, 32767, 32767, 32767, -421, + -2028, -2027, -2026, -2025, -2024, 517, -4312, -4312, + 827, 828, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, -3617, 550, 551, + 552, 553, 554, 555, 556, 32767, 557, 32767, + 558, 559, 32767, 560, 561, 32767, 562, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1191, -1191, + -1191, -2792, 0, 0, 0, 0, -2791, -2790, + -4408, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2791, -2790, + -2789, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 837, 838, 0, 0, -3001, 3038, + -3001, -3001, -3001, -1087, 0, -2999, -2999, 0, + 3047, 0, 0, 0, -2995, -2995, 0, 0, + 0, 0, 4287, 0, 0, 4292, 4293, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -550, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3918, 0, 0, 0, 0, 9976, 0, + 0, 0, 0, -6065, -6065, 0, 0, 0, + 0, 3142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 935, 0, 0, 937, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 9645, 0, -267, 0, -3303, 0, + 7684, 7685, 0, 0, 5982, 4340, 4341, 4342, + 4343, 4344, 9676, 4346, 4347, 9679, 9680, 4350, + 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, + 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, + 5974, 5974, 5974, 5974, 5974, 5974, 15532, -4572, + 5974, 3192, 12244, 3194, 12245, 12246, 12247, 2603, + 12249, 12517, 12251, 999, 12252, 4569, 4569, 12255, + 12256, 6275, 7918, 7918, 7918, 7918, 7918, 2587, + 7918, 2586, 2586, 2586, 6286, 6287, 7915, 6289, + 6290, 7913, 7913, 6293, 96, 7911, 7911, 7911, + 7911, 6299, 7910, 1253, 7911, 6304, 6305, 6306, + 6307, 6308, 6309, -3248, 16857, 6312, 43, 43, + 43, 43, 43, 43, 9688, 43, -224, 43, + -3260, 43, 7727, 7728, 43, 43, 6025, 1253, + 6234, 1253, 6384, 6385, 10526, -3272, 1253, 6388, + 10531, 1253, 1253, 1253, 1253, 6392, 6393, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6053, 6054, 6055, + 6056, 6057, 6058, 32767, 6059, 6060, 6061, 6062, + 32767, 6063, 32767, 6064, 32767, 32767, 32767, 4761, + 32767, 32767, 6065, 32767, 4762, 4763, 32767, 9404, + 32767, 6067, 4764, 6068, 32767, 6069, 6070, 6071, + 32767, 6072, 6073, 32767, 6074, 32767, 32767, 6075, + 32767, 6076, 32767, 6077, 32767, 6078, 32767, 6079, + 32767, 4374, 4374, 32767, 4373, 32767, 32767, 5324, + 5325, 5326, 5327, 32767, 6087, 6088, 6089, 6090, + 6091, 3057, 6093, 32767, 6094, 4376, -4013, 4376, + 32767, 4375, 4375, 4375, 4375, 32767, 4374, 32767, + 4373, 6104, 6105, 6106, 6107, 6108, 6109, 6110, + 6111, -3652, 881, -645, -645, -1903, 6116, 6117, + 6118, 4399, 4400, 4401, 6122, 6123, 3567, 3567, + 4406, 6127, 7410, 6129, 32767, 32767, 32767, 32767, + 32767, 7409, 7410, 4412, 32767, 6133, 4414, 4415, + 6136, 6137, 32767, 4420, 9402, 6140, 134, 134, + 13933, 134, 134, 134, 9413, 4429, 6149, 4432, + 6151, 4435, 6153, 6304, 6305, 6306, 6307, 6308, + 6309, 6310, 6311, 6312, 6313, 6314, 1068, 6316, + 5378, 6318, 5379, 6320, 803, 6322, -2232, 6324, + 6325, 6326, 1074, 6328, 6329, 6330, 6331, 6332, + 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, + 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, + 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, + 6357, 6358, 6359, 6360, 5417, 6362, 6363, 6364, + 6365, 6366, 6367, 5423, 6369, 5424, 6371, 6372, + 5426, 5426, 6375, 5427, 5427, 6378, 6379, 6380, + 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, + 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, + 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, + 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, + 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, + 6421, 6422, 7182, 5465, 6425, 6426, 6427, 6428, + 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, + 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, + 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, + 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, + 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, + 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, + 6477, 6478, 5519, 5519, 6481, 6482, 6483, 6484, + 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, + 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, + 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, + 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, + 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, + 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, + 6533, 1330, 6535, 6536, 6537, 6538, 5577, 6540, + 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, + 6549, 6550, 5588, 5588, 6553, 6554, 6555, 6556, + 32767, 6557, 1728, 1728, 6867, 6868, 6562, 6563, + 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, + 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, + 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, + 6588, 2423, 6590, 6591, 6592, 6593, 6594, 6595, + 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, + 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, + 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, + 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, + 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, + 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, + 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, + 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, + 6660, 6661, 6693, 6663, 6664, 6665, 6666, 6667, + 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, + 6676, 6677, 6678, 6679, 7476, 7476, 7476, 7476, + 7476, 7476, 5625, 5625, 5625, 5625, 5625, 6691, + 6692, 6693, 6694, 6695, 6696, 6697, 7483, 7483, + 7483, 7483, 10718, 6703, 6704, 6705, 6706, 6707, + 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, + 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, + 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, + 6732, 6733, 6734, 6735, 6736, 6737, 6738, 7836, + 7836, 7836, 12012, 12013, 7838, 7838, 7838, 8773, + 7838, 7838, 8775, 8775, 7517, 10994, 17732, 17733, + 12026, 12027, 17736, 17737, 6760, 6761, 6762, 6763, + 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, + 6772, 6773, 6774, 6775, 2927, 6777, 6778, 6779, + 6780, 2927, 4471, 6260, 4471, 6785, 6786, 6787, + 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, + 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, + 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, + 6812, 32767, 3411, 5540, 5541, 3411, 12221, 3411, + 3411, 3411, 3411, 5548, 5549, 5550, 5551, 5552, + 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, + 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, + 32767, 32767, 32767, 32767, 32767, 32767, 3915, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 6155, 6156, 6157, 6158, 6159, + 6160, 6161, 6162, 6163, 6164, 6165, 32767, 32767, + 32767, 32767, 32767, 6166, 6167, 6168, 6169, 6170, + 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, + 6179, 6180, 4615, 4616, 4617, 4618, 4619, 6186, + 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, + 6195, 6196, 32767, 6197, 6198, 6199, 6200, 6201, + 7637, 4495, 4495, 6205, 4052, 4052, 6208, 6209, + 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, + 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, + 6226, 6227, 6228, 32767, 32767, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 6229, 6230, 6231, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 6232, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 1009, -417, -417, -417, 32767, 3553, -9183, 5952, - 5953, 5954, 5955, 4620, 5957, 176, 177, 178, - 179, 180, 181, 182, 183, -4964, -4964, 188, - 189, 190, 191, 192, 193, 194, -4964, -4964, - 32767, -4965, -4965, 32767, -4966, 32767, 32767, -4968, - 32767, -4969, -4969, -4969, -4969, -4969, -4969, -4969, - -4969, -4969, -4969, 32767, -4970, -4970, -4970, -4970, - 32767, -4971, 32767, -4972, 32767, 32767, 32767, 32767, - 32767, 32767, -187, 32767, 32767, 32767, 32767, -4980, - 32767, -4981, 32767, -4982, 32767, -194, -194, -194, - 32767, -195, -195, 32767, -196, 32767, 32767, -4987, - 32767, -4988, 32767, -4989, 32767, -4990, 32767, -4991, - 32767, -4992, -4992, 0, -4993, 32767, 32767, -4995, - -202, -4995, -4995, 32767, -4996, -4996, -4996, -618, - -1506, -1506, -196, 32767, -1506, -1506, -618, -8514, - 32767, -8515, -619, -619, -619, 32767, 6034, 32767, - -455, -455, -455, -455, -455, -455, -455, -455, - -455, -455, 32767, -456, -456, -456, -456, -456, - -456, -456, -456, -456, -456, -456, -456, -456, - -456, -456, -456, -456, 32767, 32767, 32767, 32767, - 32767, -461, -461, -461, 32767, -7469, -462, -462, - -462, -462, 32767, -463, -463, -463, -463, -463, - 6075, 6076, 6077, 6078, 6079, 6080, 1908, 6082, - 6083, 6084, 6085, 6086, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 884, 885, 886, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 5994, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 6233, 6234, 6235, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 6236, 6237, 6238, 6239, + 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, + 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, + 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, + 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, + 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, + 32767, 32767, 32767, 32767, 6280, 6281, 6282, 6283, + 6284, 6285, 6286, 6287, 6288, 4770, 32767, 4771, + 4772, 32767, 32767, 32767, 6289, 6290, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -5160, 2071, + 2071, 2071, 2071, 32767, 2070, 2070, 2070, 2070, + 2070, 2070, 2070, 0, 0, 6236, 6237, 2075, + 2075, 2075, 2075, 12051, 12052, 12053, 12054, 12055, + 12056, 12057, 6249, 11962, 2083, 2083, 5225, 2083, + 2083, 2083, 2083, 2083, 6259, 6260, 2085, 2085, + 2085, 3020, 2085, 2085, 3022, 3022, 32767, 5240, + 11978, 11979, 6272, 6273, 11982, 11983, 11984, 6277, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 4773, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -9650, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 4751, 32767, 32767, -6842, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -750,428 +710,137 @@ Decomp_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 415, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, -2468, -2468, + -2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468, + -2468, -2468, -2468, -2468, -2468, -2468, -2468, -2468, + 2089, 2090, 2091, -2465, -2465, -2465, -2465, -2465, + -2465, 2098, 2099, -2463, -2463, -2463, -2463, -2463, + -2463, 2106, 2107, -2461, -2461, -2461, -2461, -2461, + -2461, 0, 0, -2459, -2459, -2459, 2119, 2120, + 2121, -2456, 2123, 2124, 2125, 2126, 2127, 2128, + 0, 0, 2131, -6678, 2133, 2134, 2135, 2136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2158, 2159, 2160, + 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, + 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, + 2177, 2178, 2179, 2180, 2181, -2412, -2412, -2412, + -2412, -2412, 2187, 2188, 2025, 2190, 2191, 2192, + 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, + 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, + 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, + 2217, 2218, 2219, 2220, 2221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3990, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2002, 2002, 2002, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4118, 0, - 0, 0, 0, 0, 0, 0, 4126, 0, - 0, 2728, 0, 0, 32767, 32767, 32767, 32767, - 32767, 0, 5928, 5929, 5930, 5931, 0, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 4755, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 4132, 4133, 4134, 4135, - 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, - 4144, 32767, 32767, 886, 5880, 32767, 32767, 32767, - 32767, 32767, 32767, 1132, 1132, 1132, 1132, 32767, - 6280, 1129, 1129, 32767, 1128, 1128, 1128, 1128, - 6287, 6288, 6289, 6290, 6291, 6292, 6293, 32767, - 6294, 6295, 32767, 1343, 6296, 6297, 6298, 6299, - 6300, 32767, 32767, 6301, 6302, 6303, 32767, 6304, - 32767, 6305, 32767, 6306, 32767, 6307, 1517, 1518, - 16878, 32767, 6311, 6312, 1522, 32767, 6314, 1524, - 1525, 6315, 6316, 6317, 6318, 32767, 6319, 1531, - 1532, 1533, 1534, 1535, 32767, 32767, 32767, 32767, - 1536, 6326, 6327, 6328, 6329, 32767, 0, 32767, - 0, 10802, 0, 6330, 6331, 6332, 6333, 1541, - 1542, 6336, 1544, 6338, 6339, 6340, 6341, 6342, - 6343, 1966, 2855, 2856, 1547, 1548, 2858, 2859, - 1972, 9869, 9870, 9871, 1976, 1977, 1978, 1979, - 1980, 518, 519, 520, 521, -966, 522, 523, - 20457, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 783, 6122, 6123, 6124, 6125, 6126, - 6127, 6128, 32767, 6129, 1999, 6131, 6132, 6133, - 6134, 6135, 6136, 5309, 6138, 6139, 6140, 6141, - 5313, 5313, 10102, 6145, 6146, -2467, 1836, 6149, - 6150, 6151, 6152, 6153, 1535, 6155, 6156, 6157, - 5326, 5326, 5326, 32767, 32767, 32767, 32767, 32767, - 32767, 1837, 32767, 1741, 32767, 32767, 32767, 32767, - 10538, 10539, 9184, 9185, 6237, 7726, 7727, 7728, - 7729, 7730, 6243, 7731, 7732, 27666, 7734, 7735, - 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7992, - 7992, 7745, 7746, 7747, 7748, 7749, 7750, 7751, - 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, - 7760, 1660, 7762, 7763, 7764, 7765, 7766, 7767, - 7768, 6282, 7770, 7141, -128, -128, -128, 7768, - 7768, 7768, 4803, 7141, 7141, 7141, 5529, -136, - 10714, 7141, 9226, -10707,4652, 7141, -140, 4651, - 7141, 7141, 7141, 7141, -142, 5529, -143, 7141, - 7141, 7141, 6315, 7140, 7140, 6318, 6319, 4635, - 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, - 6329, 6330, 9168, 9169, 9170, 15325, 15078, 15079, - 9174, 9175, 9176, 6539, 9178, 9179, 9180, 6344, - 6345, 6346, 6347, 8761, 6349, 6350, 6351, 9193, - 9194, 9195, 4634, 4634, 9196, 9197, 9198, -1165, - -1165, -1165, 4937, 6364, 6365, 6366, 10077, 2397, - 15134, 0, 0, 0, 0, 1336, 0, 5782, - 5782, 5782, 5782, 5782, 5782, 5782, 5782, 10930, - 10931, 5780, 5780, 5780, 5780, 5780, 5780, 5780, - 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, - 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, - 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, - 10963, 10964, 10965, 10966, 10967, 10968, 6178, 6179, - 21539, 6181, 10973, 10974, 6184, 6185, 10977, 6187, - 6188, 10978, 10979, 10980, 10981, 10982, 10983, 6195, - 6196, 6197, 6198, 6199, 6200, 10990, 6202, 6203, - 6204, 10994, 10995, 10996, 10997, 10998, 10999, 11000, - 11001, 11002, 11003, 11004, 11005, 11006, 11007, 6215, - 6216, 11010, 6218, 11012, 11013, 11014, 11015, 11016, - 11017, 6640, 7529, 7530, 6221, 6222, 7532, 7533, - 6646, 14543, 14544, 14545, 6650, 6651, 6652, 6653, - 0, 6489, 6490, 6491, 6492, 6493, 6494, 6495, - 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, - 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, - 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, - 6520, 5211, 6522, 6523, 6524, 6525, 13533, 13534, - 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, - 6536, 6537, 0, 0, 0, 0, 0, 0, - 4173, 0, 0, 0, 0, 0, 6550, 6551, - 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, - 6560, 6561, 6562, 6563, 6564, 6565, 4873, 6567, - 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, - 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, - 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, - 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, - 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, - 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, - 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, - 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, - 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, - 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, - 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, - 6656, 6657, 6658, 13552, 6660, 6661, 6662, 6663, - 6664, 6665, 6666, 6667, 6668, 6669, 6670, 13573, - 6672, 6673, 6674, 6675, 9276, 6677, 4704, 4705, - 6680, 6681, 6682, 6683, 13596, 12241, 6686, 6687, - 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, - 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, - 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, - 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, - 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, - 3709, 6729, 3710, 3710, 3710, 6733, 6734, 3712, - 3712, 6737, 6738, 6739, 6740, 6741, 4536, 3717, - 6744, 32767, 6745, 6746, 6747, 6748, 6749, 6750, - 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, - 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, - 6767, 6768, 6769, -2005, 6771, -3121, -3121, -3121, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 895, 896, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 4706, 4707, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 897, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 898, - 899, 900, 901, 902, 903, 904, 905, 32767, - 32767, 906, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 1, 32767, 2, 32767, 32767, 32767, 32767, 3, - 32767, 32767, 4, 5, 6, 7, 32767, 32767, - 8, 9, 10, 32767, 11, 83, 13, 32767, - 14, 15, 16, 17, 18, 19, 32767, 20, - 21, 22, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, - 32767, 921, 922, 923, 924, 925, 926, 927, - 928, 929, -380, 931, 932, 933, 934, 7942, - 7943, 7944, 49, 50, 51, 52, 53, -1409, - 32767, -1408, -1407, -2894, -1406, -1405, 18529, 3171, - 32767, -1403, -1402, -1401, -1400, -1399, 32767, -1398, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 683, 32767, 7976, 32767, 4994, 32767, 686, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 937, 0, -3182, 0, -3183, 0, -3184, - 32767, 941, 32767, 32767, 32767, -3188, 0, 32767, - 0, 0, 32767, 0, 0, 32767, 0, 0, - 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 1566, 1566, + 1566, 1566, 1566, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32767, 0, + 0, 0, 0, 0, -1435, 1708, 1709, 0, + 2154, 2155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 943, - 32767, 0, 32767, 32767, 32767, 32767, 944, 0, - 945, 0, 32767, 946, 947, 32767, 948, 949, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 32767, 0, 32767, 0, 32767, 950, 951, - 952, 953, 954, 955, 956, 957, 958, 32767, - 6565, 6566, 32767, 0, 0, 32767, 0, 0, - 32767, 6570, 6571, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 32767, 32767, 4774, 4775, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 32767, 32767, -2239, 4522, 4337, 0, - 32767, 32767, 32767, 0, -2086, 32767, 32767, 0, - 0, 0, 0, 0, 0, 959, 960, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4578, 4579, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -4175, -5292, 0, 0, 32767, 0, 32767, 0, - 0, 32767, 0, 0, 32767, 0, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 961, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 962, 963, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 0, 0, 0, 0, -2552, 0, 0, 32767, + 0, 32767, 32767, 32767, 1551, 293, 3770, 32767, + 32767, 32767, 32767, 0, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 0, + 0, 32767, 0, 0, 32767, 32767, 32767, 32767, + 0, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, -4309, -4309, 0, 32767, + 0, -4310, -4577, -4310, -7613, -4310, 3374, 3375, + -4310, -4310, 1672, -3100, 1881, -3100, 2031, 2032, + 6173, -7625, -3100, 2035, 6178, -3100, -3100, -3100, + -3100, 2039, 2040, 32767, 0, -4353, -4353, 0, + -4352, 0, 0, -4350, 0, -4349, -4349, -4349, + -4349, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 0, 0, 32767, 0, 0, + 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 964, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 0, 951, 952, 953, 954, 955, 956, 957, + 1717, 0, 32767, 32767, 32767, -1317, 32767, 32767, + 32767, 0, -8389, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 887, 888, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 32767, -5009, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 0, 0, 0, - 32767, 32767, -3913, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 5520, 32767, 32767, 32767, 32767, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 965, 966, 967, 32767, - 968, 969, 970, 971, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 32767, 981, 982, - 983, 984, 985, 986, 987, 32767, 32767, 32767, - 32767, 988, 32767, 32767, 32767, 32767, 32767, 32767, - 989, 32767, 32767, 32767, -4941, 991, 32767, 32767, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 992, 993, 994, 32767, 995, 996, 997, - 998, 999, 1000, 1001, -3143, -3143, -3143, -3143, - 32767, -3144, -3144, -3144, -3144, -3144, 1011, 1012, - 1013, 1014, 1015, 1016, -3138, -3138, -3138, -3138, - -3138, -3138, -3138, 32767, -3139, -3139, -3139, -3139, - -3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139, - -3139, -3139, -3139, -3139, -3139, -3139, -3139, -3139, - -3139, -3139, -3139, -3139, -3139, -3139, -3139, 872, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 3049, 3049, -3150, 3049, 3049, - 3049, 3049, 3049, 3049, 3049, 3049, 3049, 3049, - 3049, 3049, 3049, 3049, 3049, 3049, 3049, 3049, - 3049, 3049, 3049, 3049, 3049, 0, 0, 0, - 0, 0, 0, 0, 0, 3057, 5596, 5597, - 5598, 6716, 6717, 6718, 6719, 6720, 6721, 6722, - 6723, -3176, -3176, 6728, 6729, 6730, 6731, 6732, - 6733, 6734, 6735, -3176, -3176, -3176, -3176, -3176, - -3176, 8013, 2958, 2959, -3141, 2961, 2962, 2963, - 2964, 2965, 8022, 8023, -3176, -3176, -3176, -3176, - -3176, 5630, 5631, -2, -2, -2, -2, 7679, - -3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176, - -3176, -4957, -4957, -4957, -4957, -3176, -3176, -3176, - -3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176, - -3176, -3176, -3176, -3176, -3176, -3176, -3176, -3176, - -3176, -3176, 1880, 1880, 7981, 1880, 1880, 1880, - 1880, 1880, -3176, -3176, -1258, 4882, 4883, 4884, - 895, 4886, -3176, 4861, 4862, 4863, 4864, -2816, - 9921, -5213, -5213, -5213, -5213, -3877, -5213, 569, - 569, 569, 569, 569, 569, 569, 569, 5717, - 5718, 567, 567, 567, 567, 567, 567, 567, - 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, - 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, - 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, - 5750, 5751, 5752, 5753, 5754, 5755, 965, 966, - 16326, 968, 5760, 5761, 971, 972, 5764, 974, - 975, 5765, 5766, 5767, 5768, 5769, 5770, 982, - 983, 984, 985, 986, 987, 5777, 989, 990, - 991, 5781, 5782, 5783, 5784, 5785, 5786, 5787, - 5788, 5789, 5790, 5791, 5792, 5793, 5794, 1002, - 1003, 5797, 1005, 5799, 5800, 5801, 5802, 5803, - 5804, 1427, 2316, 2317, 1008, 1009, 2319, 2320, - 1433, 9330, 9331, 9332, 1437, 1438, 1439, 1440, - 1441, -21, -20, -19, -18, -1505, -17, -16, - 19918, -14, -13, -12, -11, -10, -9, -8, - -7, -6, 244, 244, -3, -2, -1, 0, - 1, 2, 3, 4, 1469, 5, 6, 7, - 8, 9, 32767, 32767, 32767, 32767, 10, 11, - 12, 13, 5070, 5071, 3154, -2985, 1318, 1319, - 1320, -2988, 5075, -2961, -2961, -2961, -2961, 1327, - 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, - 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, - 7522, 7275, 7276, 1371, 1372, 1373, -1264, 1375, - 1376, 1377, 1378, 1379, 1380, 1381, 1382, 957, - -14402,957, 1386, 1387, 1388, 1389, 1390, 1391, - 1392, 1393, -8970, -8970, -8970, 1397, 1398, 948, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1400, - 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1421, 32767, 32767, 1422, - 1423, 1424, 1425, 1426, 1427, 32767, 32767, 1428, - 1429, 1430, 1431, 8325, 1433, 1434, 1435, 1436, - 1437, 1438, 1439, 1440, 1441, 1442, 1443, 8346, - 1445, 1446, 1447, 1448, 4049, 1450, -523, -522, - 1453, 1454, 1455, 1456, 8369, 7014, 1459, 1460, - 1461, 1462, 1463, 1464, 1465, 32767, 32767, 1466, - 1467, 1468, 1469, 1470, 1471, 32767, 32767, 1472, - 1473, 1474, 1475, 1476, 1477, 1478, 1479, 32767, - 1480, 32767, 1481, 32767, 1482, 32767, 1483, 1484, - 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - -1526, 1494, -1525, -1525, -1525, 1498, 1499, -1523, - -1523, 1502, 1503, 1504, 1505, 1506, -699, -1518, - 1509, -1517, 1511, 1512, 1513, 32767, 32767, 1514, - 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, - 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, - 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, - 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, - 1547, 1548, 1549, 5054, 1551, 1552, 1553, 8447, - 1555, 1556, -4049, 1558, 1559, 1560, -1467, 5063, - 1563, 5064, 5064, 1566, 32767, 1567, 1568, 1569, - 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, - 1578, 1579, 1580, 1581, 32767, 1582, 1583, 1584, - 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, - 1593, 1594, 1595, 32767, 32767, 1596, 1597, 1598, - 1599, 1600, 1601, 32767, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, - 1614, 1615, 1616, 1617, 1618, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1630, 1631, 0, 32767, -5702, - -5702, -5702, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 0, 32767, 0, - 32767, -7163, 0, 0, 32767, 32767, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -7269, -7269, -7269, 627, - 627, 627, -2338, 0, 0, 0, -1612, -7277, - 3573, 0, 2085, -17848,-2489, 0, -7281, -2490, - 0, 0, 0, 0, -7283, -1612, -7284, 0, - 0, 0, 0, 0, 0, 0, 0, -2503, - -7292, -2503, -4309, -4309, 0, 536, -4307, -4307, - -4307, -4307, 677, -4306, -4306, -4306, -4306, -7305, - 0, -4306, -4306, 32767, 32767, -4308, -4308, -7312, - -4307, 690, -4306, -6530, 0, -4306, 0, 0, - -4306, 0, -4305, -4305, -4305, -4305, -4305, -4305, - -2949, -2949, 0, -1488, -1488, -1488, -1488, -1488, - 0, -1487, -1487, -21420,-1487, -1487, -1487, -1487, - -1487, -1487, -1487, -1487, -1487, -1736, -1735, -1487, - -1487, -1487, -1487, -1487, -1487, -1487, -1487, -1487, - -1487, -1487, -1487, -1487, -1487, -1487, -1487, 4614, - -1487, -1487, -1487, -1487, -1487, -1487, -1487, 0, - -1487, -857, 6413, 6414, 6415, -1480, -1479, -1478, - 1488, -849, -848, -847, 766, 6432, -4417, -843, - -2927, 17007, 1649, -839, 6443, 1653, -836, -835, - -834, -833, 6451, 781, 6454, -829, -828, -827, - 0, -824, -823, 0, 0, 1685, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -2837, -2837, -2837, -8991, -8743, -8743, -2837, -2837, - -2837, -199, -2837, -2837, -2837, 0, 0, 0, - 0, -2413, 0, 0, 0, -2841, -2841, -2841, - 1721, 1722, -2839, -2839, -2839, 7525, 7526, 7527, - 1426, 0, 0, 0, -3710, 3971, -8765, 6370, - 6371, 6372, 6373, 5038, 6375, 594, 595, 596, - 597, 598, 599, 600, 601, -4546, -4546, 606, - 607, 608, 609, 610, 611, 612, -4546, -4546, - -4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546, - -4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546, - -4546, -4546, -4546, -4546, -4546, -4546, -4546, -4546, - -4546, -4546, -4546, -4546, 245, 245, -15114,245, - -4546, -4546, 245, 245, -4546, 245, 245, -4544, - -4544, -4544, -4544, -4544, -4544, 245, 245, 245, - 245, 245, 245, -4544, 245, 245, 245, -4544, - -4544, -4544, -4544, -4544, -4544, -4544, -4544, -4544, - -4544, -4544, -4544, -4544, -4544, 249, 249, -4544, - 249, -4544, -4544, -4544, -4544, -4544, -4544, -166, - -1054, -1054, 256, 256, -1053, -1053, -165, -8061, - -8061, -8061, -165, -165, -165, -165, -165, 1298, - 1298, 1298, 1298, 2786, 1299, 1299, -18634,1299, - 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, - 1050, 1051, 1299, 1299, 1299, 1299, 1299, 1299, - 1299, 1299, -165, 1300, 1300, 1300, 1300, 1300, - 1300, 1300, 7401, 1300, 1300, 1300, 1300, 1300, - -3756, -3756, -1838, 4302, 0, 0, 0, 4309, - -3753, 4284, 4285, 4286, 4287, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -6154, -5906, - -5906, 0, 0, 0, 2638, 0, 0, 0, - 0, 0, 0, 0, 0, 426, 15786, 428, - 0, 0, 0, 0, 0, 0, 0, 0, - 10364, 10365, 10366, 0, 0, 451, 452, 453, - 454, 455, 456, 32767, 32767, 0, 0, 0, - 32767, 32767, 32767, 0, 0, 0, 0, 0, - 0, 0, 32767, 0, 0, 0, 0, 0, - 0, 0, 32767, 1842, 32767, 32767, 1843, 32767, - 32767, 0, 32767, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 1844, 32767, - 0, 0, 0, 32767, 32767, 32767, 1846, 1847, - 32767, 1848, 1849, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 0, 32767, - 32767, 32767, 32767, 0, 32767, 32767, 1851, 32767, - 32767, 1852, 32767, 0, 0, 32767, 32767, 32767, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 5990, 5991, 5992, 5993, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 1854, 32767, 1855, 6223, 6224, 6225, - 6226, 6227, 6228, 6229, 6230, 6231, 6232, 1856, - 1857, 1574, 1574, 1574, 32767, 32767, 1572, 1572, - 32767, 32767, 1863, 1864, 32767, 32767, 32767, 32767, - 32767, 32767, 1865, 1866, 32767, 32767, 1867, 1868, - 32767, 32767, 1869, 1870, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 890, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 891, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 1871, 1872, - 3017, 1874, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 3018, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 799, 32767, 32767, 32767, + 32767, 800, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 801, 802, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 1875, 1876, 1877, 1878, 32767, 32767, - 32767, 0, 0, 32767, 1879, 1880, 1881, 1882, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, + 0, 0, 0, 0, 6545, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 32767, 0, 0, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + -5711, 241, 242, 243, 244, 0, 246, 247, + 248, 249, 250, 251, 252, 0, 0, 0, + 0, 892, 0, 0, 0, 0, 0, 0, + 264, 0, 0, 0, 32767, 32767, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 1883, 1884, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -1179,23 +848,99 @@ Decomp_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 893, -266, 895, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 0, 0, 0, 0, 0, 0, 0, + 284, 285, 286, 287, 288, 0, 290, 291, + 292, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 293, 294, 295, 296, 297, 298, 32767, 32767, + 299, -4082, -4081, -4080, 303, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 0, 0, 0, 0, + 0, 32767, 0, 32767, 0, 0, 32767, 0, + 0, 32767, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -4245, -4245, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, -689, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -706, + -706, -706, -706, -706, -706, -706, -706, 32767, + 32767, -7551, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, -2263, 2526, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -4377, -4377, -8024, -8023, -4377, -4377, + -3916, -4377, -4377, -4377, -4377, -4377, -4377, -4377, + 32767, -4378, -4378, -4378, -4378, -4378, -4378, -4378, + -4378, -4378, -4378, -4378, -4378, -4378, -4378, -4378, + -4378, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 150, 1867, 150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5247, 0, 939, 0, 940, 0, 5518, + 0, 8555, 0, 0, 0, 5253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 944, + 0, 0, 0, 0, 0, 0, 945, 0, + 946, 0, 0, 947, 948, 0, 949, 950, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -759, 959, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 960, 961, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5204, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 963, 964, 0, + 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -1203,6 +948,7 @@ Decomp_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 5186, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -1210,219 +956,176 @@ Decomp_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 1885, 1886, 1887, 1888, - 1889, 1890, 1891, 1892, 1893, 1894, 4758, 4759, - 4760, 4761, 4762, 1900, 1901, 1902, 1903, 1904, - 1905, 1906, 1907, 1908, 1909, 924, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, - 1921, 1107, 1923, 1924, 1925, 1926, 1927, 1928, - 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, - 1937, 1938, 1939, 1123, 1123, 1123, 1943, 1944, - 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, - 1969, 1970, 1971, 1972, 1973, 1974, 4727, 1976, - 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, - 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, - 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - -2451, 2002, -2448, 2004, 2005, 2006, -2441, -2724, - 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, - 2017, 2018, 2019, 2020, 2021, 0, 2023, 985, - 985, 7086, 985, 985, 985, 985, 985, -4071, - -4071, -2153, 3987, 3988, 3989, 0, 3991, -4071, - 3966, 3967, -4071, 260, 261, 262, 263, 264, - 265, 266, 3264, 32767, 32767, -2437, -2436, 32767, - 32767, 32767, 32767, 32767, 32767, 270, 271, 272, - 273, 274, 275, 4728, 277, 278, 279, 280, - 281, -2434, 283, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32767, 32767, 32767, 32767, 1329, 441, 441, 1751, - 1751, 442, 442, 1330, -6566, -6566, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -3047, -274, - -273, -272, -271, 1946, 4745, 0, 0, -267, - -266, 1945, -264, -263, 0, 0, 0, 0, - 0, 0, 0, 0, -6199, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 2539, 2540, 2541, - 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, - -6233, -6233, 3671, 3672, 3673, 3674, 3675, 3676, - 3677, 3678, -6233, -6233, -6233, -6233, -6233, -6233, - 4956, -99, -98, -6198, -96, -95, -94, -93, - -92, 4965, 4966, -6233, -6233, -6233, -6233, -6233, - 2573, 2574, -3059, 3049, -3060, -3060, 4621, -6234, - -6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234, - -8015, -8015, -8015, -8015, -6234, -6234, -6234, -6234, - -6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234, - -6234, -6234, -6234, -6234, -6234, -6234, -6234, -6234, - -6234, -1178, -1178, 4923, -1178, -1178, -1178, -1178, - -1178, -6234, -6234, -4316, 1824, 1825, 1826, -2163, - 1828, -6234, 1803, 1804, 1805, 1806, -5874, 6863, - -8271, -8271, -8271, -8271, -6935, -8271, -2489, -2489, - -2489, -2489, -2489, -2489, -2489, -2489, 2659, 2660, - -2491, -2491, -2491, -2491, -2491, -2491, -2491, 2668, - 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, - 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, - 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, - 2693, 2694, 2695, 2696, 2697, -2093, -2092, 13268, - -2090, 2702, 2703, -2087, -2086, 2706, -2767, 2708, - 2709, 2710, 2711, 2712, 3178, 3179, 3180, 3181, - 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, - 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, - 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, - 3206, 3207, 3208, 3209, 3281, 3211, 3212, 3213, - 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, - 3222, 4107, 4108, 4109, 4110, 4111, 4112, 3229, - 4115, 4116, 4117, 4118, 4119, 4120, 3236, 3237, - 4124, 4125, 4126, 4127, 4128, 7621, 3244, 4133, - 4134, 2825, 4136, 4137, 4138, 3251, 11148, 11149, - 11150, 3255, 3256, 3257, 3258, 3259, 1797, 1798, - 1799, 1800, 313, 1801, 1802, 21736, 1804, 1805, - 1806, 1807, 1808, 1809, 1810, 1811, 1812, 2062, - 2062, 1815, 1816, 1817, 1818, 1819, 1820, 1821, - 1822, 3287, 1823, 1824, 1825, 32767, 3291, 3292, - 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, - 3301, 3302, 3303, 3304, 32767, 32767, 3305, 32767, - 9008, 32767, 32767, 3307, 3308, 3309, 3310, 3311, - 3312, 3313, 3314, 3315, 3316, 32767, 3317, 32767, - 3318, 32767, 32767, 3319, 3320, 32767, 32767, 32767, - 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, - 3329, 3330, 3331, 3332, 3333, 10603, 10604, 10605, - 2710, 2711, 2712, 5678, 3341, 3342, 3343, 4956, - 10622, -227, 3347, 1263, 21197, 5839, 3351, 10633, - 5843, 3354, 3355, 3356, 3357, 10641, 4971, 10644, - 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, - 5872, 10662, 5874, 7681, 7682, 3374, 2839, 7683, - 7684, 7685, 7686, 2703, 7687, 7688, 7689, 7690, - 10690, 3386, 7693, 7694, 7695, 0, 7697, 7698, - 10703, 7699, 2703, 7700, 9925, 3396, 7703, 3398, - 3399, 7706, 3401, 7707, 7708, 7709, 7710, 7711, - 7712, 6357, 6358, 3410, 4899, 4900, 4901, 4902, - 4903, 3416, 4904, 4905, 24839, 4907, 4908, 4909, - 4910, 4911, 4912, 4913, 4914, 4915, 5165, 5165, - 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, - 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, - -1167, 4935, 4936, 4937, 4938, 4939, 4940, 4941, - 3455, 4943, 4314, -2955, -2955, -2955, 4941, 4941, - 4941, 1976, 4314, 4314, 4314, 2702, -2963, 7887, - 4314, 6399, -13534,1825, 4314, -2967, 1824, 4314, - 4314, 4314, 4314, -2969, 2702, -2970, 4314, 4314, - 4314, 3488, 4313, 4313, 3491, 3492, 1808, 3494, - 32767, 0, 0, 32767, 32767, 0, 0, 0, - 0, 32767, 0, 0, 0, 0, -2999, 4306, - 0, 0, 0, 7696, 0, 0, 32767, 0, - 32767, 0, -2224, 4306, 0, 4306, 4306, 0, - 0, 0, 0, 0, 0, 0, 0, 1356, - 1356, 4305, 2817, 2817, 2817, 2817, 2817, 2817, - 2817, 2817, -17116,2817, 2817, 2817, 2817, 2817, - 2817, 2817, 2817, 2817, 2568, 2569, 2817, 2817, - 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, - 2817, 2817, 2817, 2817, 2817, 2817, 8918, 2817, - 2817, 2817, 2817, 2817, 2817, 2817, 4304, 2817, - 3447, 10717, 10718, 10719, 3531, 3532, 32767, 3533, - 3534, 3535, 3536, 3537, 32767, 3538, 32767, 3539, - 3540, 32767, 3541, 3542, 32767, 3543, 3544, 3545, - 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, - 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, - 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, - 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, - 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, - 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, - 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, - 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, - 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, - 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, - 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, - 2324, 3635, 3636, 3637, 3638, 10646, 10647, 3641, - 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, - 3650, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 3651, 3652, 3653, 3654, 3655, 3656, - 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, - 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, - 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, - 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, - 3689, 3690, 3691, 3692, 3693, 3694, 3695, 32767, - 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, - 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, - 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, - 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, - 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, - 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, - 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, - 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, - 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, - 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, - 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, - 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, - 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, - 3800, -210, -209, 3803, 3804, 3805, 3806, 3807, - 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, - 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, - 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, - 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, - 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, - 3848, 3849, -4925, 3851, -6041, -6041, -6041, -6041, - -6041, -6041, -6041, 3859, 3860, -6043, -6043, -6043, - -6043, -6043, -6043, -6043, -6043, 3869, 3870, 3871, - 3872, 3873, 3874, -7314, -2258, -2258, 3843, -2258, - -2258, -2258, -2258, -2258, -7314, -7314, 3886, 3887, - 3888, 3889, 3890, -4915, -4915, 719, 720, 721, - 722, -6958, 3898, 3899, 3900, 3901, 3902, 3903, - 3904, 3905, 3906, 5688, 5689, 5690, 5691, 3911, - 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, - 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, - 3928, 3929, 3930, 3931, -1124, -1123, -7223, -1121, - -1120, -1119, -1118, -1117, 3940, 3941, 2024, -4115, - -4115, -4115, -125, -4115, 3948, -4088, -4088, 3951, - 32767, 3952, 3953, 3954, 3955, 3956, 3957, 3958, - 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, - 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, - 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, - 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, - 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, - 3999, 4000, 4001, 4002, 4003, 14, 4005, 4006, - 4007, 4008, 4009, 4010, 4011, 4012, 4013, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 4014, 4015, 4016, 4017, 4018, 4019, 4020, - 4021, 4022, 4023, 4024, 4025, 4026, 2025, 2026, - 2027, 4030, 4031, 4032, 4033, 4034, 4035, 4036, - 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, - 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, - 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, - 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, - 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, - 4077, 32767, 32767, 4078, 4079, 4080, 4081, 4082, - 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, - 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, - 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, - 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, - 4115, 4116, 4117, 0, 4119, 4120, 4121, 4122, - 4123, 4124, 4125, 0, 4127, 4128, 1401, 4130, - 4131, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 5256, -4973, -4973, 32767, + 5261, 5262, 5263, 5264, 5265, 5266, 5267, -4974, + -4974, 978, 979, 980, 981, 32767, 982, 983, + 984, 985, 986, 987, 988, 32767, 32767, 32767, + 32767, 1624, 32767, 32767, 32767, 32767, 32767, 32767, + 990, 32767, 32767, 0, 991, 992, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4759, + 4760, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -723, -722, -2974, 32767, 996, -719, -168, + -717, -716, -715, 1002, 1003, 1004, -712, -711, + 32767, -710, 1008, 1009, 1010, 1011, -2060, 5892, + 2764, 2764, 2764, 1017, 1018, 1019, 1020, 1021, + 1022, 2567, 1024, 32767, 1025, 1026, 1027, 1028, + 1029, 1030, 1031, 1032, 1033, 1034, 2589, 1036, + 1037, -1729, -1729, -1729, -1729, 1042, 4211, 4211, + 4211, 4211, 4211, 4211, 1049, 1050, 4209, 1427, + 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -825, 32767, 32767, + 32767, 32767, 32767, 4718, 4719, 4720, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4721, 4722, + 4723, 4724, 4725, 4726, 4727, 6291, 6292, 6293, + 4728, 4729, 4730, 4731, 4732, 6299, 6300, -4992, + 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 4733, 1082, 4734, 1084, 1085, + 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, + 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, + 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, + 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + 1142, 1143, 1144, 1145, 1146, 4737, 1148, 4738, + 4739, 1151, 1152, 1153, 1154, 32767, 4740, 4741, + 4742, 1158, 1159, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 1190, 1191, 1192, 1193, 1194, 11979, 6272, + 1758, 1758, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, + 1229, -1074, -1073, 1232, 1233, 1234, 1235, 1236, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, + 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, + 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, + 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, + 1301, 1302, 1303, 1304, 1305, 1306, 1307, 4676, + 4677, 512, 32767, 32767, 32767, 32767, 1683, 1684, + 1685, 1314, 155, 1316, 1317, 1318, 1319, 1320, + 1321, 161, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, + 1337, 1338, -4375, -4374, -8536, -8536, -8536, -8536, + 1345, 1346, 1444, 1445, 1446, 1447, 1448, -4360, + 1353, 1354, -8525, -5383, 1357, -8524, -8524, -8524, + -8524, -4348, 1363, -2456, 686, 1366, 1367, -8518, + -8518, -7581, 1371, 1372, -5364, 1374, 1375, -4332, + -4331, 1378, 1379, 1380, -4327, -8841, -8841, -8841, + -8841, -8841, -8841, -8841, 1389, 1390, -8843, -8843, + -8843, -8843, -8843, -8843, -8843, -8843, 1399, 1400, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 5957, + 2655, -5028, -5028, 2658, 2659, -3322, -1679, -1679, + -1679, -1679, -1679, -7010, -1679, -1679, -7010, -7010, + -1679, -1679, -1679, -1679, -1679, 32767, 32767, -1681, + -1681, -1681, -1681, -1681, -1681, 32767, 32767, -1683, + -1683, -3290, -3289, -3288, -3287, -3286, -3285, -12842, + 7263, -3282, -499, -9550, -499, -9549, -9549, -9549, + 96, -9549, -9816, -9549, 1704, -9548, -1864, -1863, + -9548, -9548, -3566, -5208, -5207, -5206, -5205, -5204, + 128, -5202, 131, 132, 133, 32767, 32767, -5195, + -3568, -3568, -5190, -5189, -3568, 32767, 32767, -5185, + -5184, -5183, -3570, -5180, 1478, -5179, -3571, 32767, + -3572, 32767, -3573, 32767, 5984, 32767, -3575, 2695, + 2696, 2697, 2698, 2699, 2700, -6944, 2702, 2970, + 2704, 6008, 2706, -4977, -4977, 2709, 2710, -3271, + 1502, -3478, 1504, -3626, -3626, -7766, 6033, 1509, + -3625, -7767, 1512, 1513, 1514, 32767, 32767, -3625, + -3625, -3625, -3625, -3625, -3625, -3625, 1522, -3624, + 1524, 1525, 1526, 1527, 1528, 1529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1581, -673, 0, 784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3025, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -6843, + -6843, 0, 0, 0, 1619, 1620, 1621, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -2788, 32767, 32767, + 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, + 4194, 1643, 1644, 32767, 32767, 32767, 32767, 32767, + 32767, 1352, 32767, 32767, 32767, 32767, 32767, 1646, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 1647, 1648, 1649, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 1650, + 32767, 32767, 32767, 1651, 1652, 32767, 1653, 1654, + 32767, 32767, 32767, 32767, 1655, 32767, 1656, 32767, + 32767, 32767, 32767, 399, 399, 32767, 32767, 1657, + 1658, 1659, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 32767, 32767, 32767, 1660, + 32767, 32767, 32767, 32767, 32767, 6619, 32767, 1661, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 5971, 5972, 5973, 5974, 1664, 5975, 6243, 5977, + 9281, 5979, -1704, -1704, 5982, 5983, 2, 4775, + -205, 4777, -353, -353, -4493, 9306, 4782, -352, + -4494, 4785, 4786, 4787, 4788, -350, -350, 6044, + 1691, 6045, 6046, 1694, 6047, 1696, 1697, 6048, + 1699, 6049, 6050, 6051, 6052, 0, 0, 0, + 0, 0, 0, 32767, 0, 0, 0, 0, + 1704, 0, 32767, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 32767, -3338, -3338, + -3338, 0, 32767, 0, 32767, 0, 0, 0, + 32767, 0, 0, 32767, 0, 32767, 32767, 0, + 0, 0, 0, 0, 32767, 0, 32767, 0, + 1705, 1706, 1707, 1708, 1709, 759, 759, 759, + 759, 759, 759, 759, 0, 0, 0, 0, + 0, 3035, 0, 32767, 0, 1719, 10109, 1721, + 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, + 1730, 0, 0, 0, 0, 0, 0, 0, + 0, 9764, 6757, 6758, 6759, 8018, 0, 0, + 0, 1720, 1720, 1720, 0, 0, 2557, 2558, + 1720, 0, -1282, 0, -1281, -1281, -1281, 633, + 1720, -1279, -1279, 1720, 4767, 0, 1720, 1720, + 0, 0, 1718, 1718, -3263, 0, 6007, 6008, + -7790, 6010, 6011, 6012, -3266, 1719, 0, 1718, + 0, 1717, 0, -150, 1717, 1717, 1717, 32767, + 1716, 1716, 1716, 3969, 1715, 0, 1716, 1166, + 1716, 1716, 1716, 0, 0, 0, 1717, 1717, + 1717, 1717, 0, 0, 0, 0, 3072, -4879, + -1750, -1749, -1748, 0, 0, 0, 0, 0, + 0, -1544, 0, 1789, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -1554, 0, + 0, 2767, 2768, 2769, 2770, 0, -3168, -3167, + -3166, -3165, -3164, -3163, 0, 0, -3158, -375, + -9426, -375, -9425, 1821, 1822, 218, -9427, 1825, + -9426, 1827, 1828, -1742, -1741, 1878, 1879, 1833, + 1834, 32767, 32767, 32767, 32767, 2642, -4765, -1739, + -1738, 32767, 1835, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 32767, 32767, 32767, 2718, -3491, 3174, 3174, 3174, + -3669, -3669, -3669, -3669, -3669, -5232, -5232, -5232, + -3666, -3666, -3666, -3666, -3666, -5232, -5232, 6061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -3652, 0, -3651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1430,83 +1133,586 @@ Decomp_hash_func(const void *key) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -3590, 0, -3589, + -3589, 0, 0, 0, 0, 32767, 1842, 32767, + 32767, 32767, 32767, 1843, 32767, 32767, 1844, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 1845, 32767, + 1846, 32767, 32767, 32767, 32767, 32767, 1847, 1848, + 0, 1849, 1850, 0, 32767, 32767, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 1851, 32767, 32767, 1852, 32767, + 32767, 1853, 32767, 1854, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -4903, 32767, -6162, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 137, + 1858, 3141, 1860, 3142, 32767, 32767, 1229, 143, + 32767, 32767, 144, -2902, 0, 0, 32767, 32767, + 32767, 32767, 148, 5130, 0, 0, -4140, 9659, + 32767, 0, -4142, 5137, 5138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32767, + 0, 5148, 5149, 5150, 5151, 5152, 5153, 4782, + 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, + 3623, 3623, 3623, 3623, 3623, 3623, 6751, 3623, + 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, + 3623, 3623, 3623, 3623, 32767, 3622, 3622, 3622, + 3622, 32767, 3621, 3621, 3621, 0, 3622, 32767, + 3621, 32767, 32767, 32767, 3618, 3618, 3618, 3618, + 3618, 3618, 3618, 32767, 2944, 0, 4402, 3618, + 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, + 3618, 3618, 3618, 3618, 0, 0, 3620, 3620, + 3620, 3620, 3620, 3620, -762, 6646, 3621, 3621, + 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, + -3222, -3222, 3621, 3621, 3621, 5240, 5241, 5242, + 0, 0, 3623, 3623, 3623, 0, 3624, 3624, + 3624, 3624, 3624, 3624, 3624, 3624, 836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -3647, -3646, 0, 0, + 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4011, 4011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8775, 0, - 9893, 9894, 9895, 9896, 9897, 9898, 9899, 0, - 0, 9904, 9905, 9906, 9907, 9908, 9909, 9910, - 9911, 0, 0, 0, 0, 0, 0, 11189, - 6134, 6135, 35, 6137, 6138, 6139, 6140, 6141, - 11198, 11199, 0, 0, 0, 0, 0, 8806, - 8807, 3174, 3174, 3174, 3174, 10855, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1781, - -1781, -1781, -1781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5056, 5056, 11157, 5056, 5056, 5056, 5056, 5056, - 0, 0, 1918, 8058, 8059, 8060, 4071, 8062, - 0, 8037, 8038, 0, 4331, 4332, 4333, 4334, - 4335, 4336, 4337, 7335, 7336, 1635, 1636, 1637, - 1638, 1639, 1640, 1641, 1642, 1643, 4349, 4350, - 4351, 4352, 4353, 4354, 8807, 4356, 4357, 4358, - 4359, 4360, 1645, 4362, 4363, 4364, 4365, 32767, - 32767, 32767, 32767, 32767, 8912, 8913, 8914, 8915, - 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, - 8924, 8925, 8926, 8927, 4137, 4138, 19498, 4140, - 8932, 8933, 4143, 4144, 8936, 4146, 4147, 8937, - 8938, 8939, 8940, 8941, 8942, 4154, 4155, 4156, - 4157, 4158, 4159, 8949, 4161, 4162, 4163, 8953, - 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, - 8962, 8963, 8964, 8965, 8966, 4174, 4175, 8969, - 4177, 8971, 8972, 8973, 8974, 8975, 8976, 4599, - 5488, 5489, 4180, 4181, 5491, 5492, 4605, 12502, - 12503, 12504, 4609, 4610, 4611, 4612, 4613, 3151, - 3152, 3153, 3154, 1667, 3155, 3156, 23090, 3158, - 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, - 3416, 3416, 3169, 3170, 3171, 3172, 3173, 3174, - 3175, 3176, 4641, 3177, 3178, 3179, 3180, 3181, - 3182, 3183, -2917, 3185, 3186, 3187, 3188, 3189, - 8246, 8247, 6330, 191, 4494, 4495, 4496, 188, - 8251, 215, 215, 215, 215, 4503, 4504, 4505, - 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, - 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, - 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, - 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, - 4538, 4539, 4540, 4541, 4542, 4543, 10698, 10451, - 10452, 4547, 4548, 4549, 1912, 4551, 4552, 4553, - 4554, 4555, 0, 32767, 4130, 4130, -11229,4130, - 4559, 4560, 4561, 0, 0, 4562, 4563, 4564, - -5799, -5799, -5799, 303, 32767, 4117, 4117, 4117, - 4117, 4117, 4117, 2031, 2032, 4574, 4575, 4576, - 32767, 32767, 32767, 4577, 4578, 4579, 4580, 4581, - 4582, 4583, 32767, 4584, 4585, 4586, 4587, 4588, - 4589, 4590, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, - 32767, 32767, 32767, 32767, 2034, 4816, 4817, 4818, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 2035, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 32767, 0, 470, 471, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 472, 473, 474, 475, 476, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 775, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4803, 4804, 7596, 7596, 7596, + 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, + 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, + 4824, 3988, 3988, 4827, 4828, 7830, 1792, 7832, + 7833, 7834, 5921, 4835, 7835, 7836, 4838, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3036, 6038, 0, + 6040, 6041, 6042, 4129, 3043, 6043, 6044, 3046, + 0, 3048, 3049, 3050, 6046, 6047, 3053, 3054, + 3055, 3056, -1230, 3058, 3059, -1232, -1232, 3062, + 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, + 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, + 3079, 3080, 3081, 3632, 3083, 3084, 3085, 3086, + 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, + 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, + 3103, -814, 3105, 3106, 3107, 3108, -6867, 3110, + 3111, 3112, 3113, 9179, 9180, 3116, 3117, 3118, + 3119, -22, 3121, 3122, 3123, 3124, 3125, 3126, + 3127, 3128, 3129, 3130, 2196, 3132, 3133, 2197, + 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, + 3143, 3144, -6500, 3146, 3414, 3148, 6452, 3150, + -4533, -4533, 3153, 3154, -2827, -1184, -1184, -1184, + -1184, -1184, -6515, -1184, -1184, -6515, -6515, -1184, + -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184, + -1184, -1184, -1184, -1184, -1184, -1184, -1184, -1184, + -2791, -2790, -2789, -2788, -2787, -2786, -12343,7762, + -2783, 0, -9051, 0, -9050, -9050, -9050, 595, + -9050, -9317, -9050, 2203, -9049, -1365, -1364, -9049, + -9049, -3067, -4709, -4708, -4707, -4706, -4705, 627, + -4703, 630, 631, 632, -3067, -3067, -4694, -3067, + -3067, -4689, -4688, -3067, 3131, -4683, -4682, -4681, + -4680, -3067, -4677, 1981, -4676, -3068, -3068, -3068, + -3068, -3068, -3068, 6490, -13614,-3068, 3202, 3203, + 3204, 3205, 3206, 3207, -6437, 3209, 3477, 3211, + 6515, 3213, -4470, -4470, 3216, 3217, -2764, 2009, + -2971, 2011, -3119, -3119, -7259, 6540, 2016, -3118, + -7260, 2019, 2020, 2021, 2022, -3116, -3116, 3278, + 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, + 3287, 3288, 3289, 3290, 3291, 32767, 3292, 3293, + -869, -869, -869, -869, 9107, 9108, 9109, 9110, + 9111, 9112, 9113, 3305, 32767, 32767, -863, 32767, + -864, 32767, 32767, -866, -866, 3310, 3311, -864, + -864, -864, 71, -864, -864, 32767, 72, 32767, + 2290, 32767, 32767, 3320, 3321, 32767, 32767, 32767, + 3322, -1192, -1192, -1192, -1192, -1192, -1192, -1192, + -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, + -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, + -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, + -1192, -1192, -1192, -1192, -1192, -1192, -1192, -1192, + -1192, -1192, -1192, 3365, 3366, 3367, -1189, -1189, + -1189, -1189, -1189, -1189, 3374, 3375, -1187, -1187, + -1187, -1187, -1187, -1187, 3382, 3383, -1185, -1185, + -1185, -1185, -1185, -1185, 32767, 32767, -1185, -1185, + -1185, 3393, 3394, 3395, -1182, 3397, 3398, 3399, + 3400, 3401, 3402, 1274, 1274, 3405, -5404, 3407, + 3408, 3409, 3410, 1274, 1274, 1274, 1274, 1274, + 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, + 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, + 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, + 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, + 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, + -1138, -1138, -1138, -1138, -1138, 3461, 3462, 3299, + 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, + 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, + 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, + 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 3496, + 3497, 3498, 3499, 3500, 3501, 3502, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 3503, 3211, 3211, 3211, 3211, 32767, + 32767, 32767, 32767, 32767, 7590, 7590, 7590, 3208, + 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, + 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, + 3528, 3529, 3530, 3531, 3532, 3533, 32767, 3534, + 3535, 3536, 3537, 3538, 32767, 3539, 32767, 3540, + 3541, 32767, 3542, 3543, 32767, 3544, 3545, 3546, + 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, + 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, + 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, + 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, + 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, + 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, + 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, + 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, + 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, + 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, + 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, + 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, + 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, + 3651, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 3652, 3653, 3654, 3655, 3656, 3657, + 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, + 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, + 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, + 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, + 3690, 3691, 3692, 3693, 3694, 3695, 3696, 32767, + 3244, 3698, 3699, 3700, 3701, 3702, 4131, 3704, + 3251, 3251, 3707, 3252, 3709, 3710, 3711, 3255, + 3713, 3714, 3715, 3716, 3259, 3259, 3259, 3720, + 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, + 3729, 3730, 3731, 3732, 0, 0, 3735, 3736, + 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, + 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, + 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, + 3761, 3300, 3763, 3764, 3765, 3766, 3767, 3768, + 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, + 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, + 3322, 3322, 3787, 3323, 3789, 3790, 3791, 3326, + 3793, 3794, 3795, 3796, 3330, 3798, 3330, 3800, + 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, + 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, + 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, + 3825, -1667, 3827, 3828, 3829, 3830, 3831, 3832, + 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, + 3841, 3842, 3843, 3844, -1685, 3846, 3847, 3848, + 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, + 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, + 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, + 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, + 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, + 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, + 3897, 8237, 8238, 3900, 3901, 3902, 3903, 3904, + 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, + 11266, 11267, 11268, 9355, 3917, 3918, 11272, 8274, + 3921, 3922, 3438, 3438, 3438, 3438, 3438, 3438, + 3929, 3930, 3440, 3440, 3440, 3440, 6476, 9478, + 3937, 3938, 9483, 9484, 7571, 6485, 9485, 9486, + 6488, 3442, 6490, 6491, 6492, 9488, 3951, 3952, + 32767, -866, -866, -866, -866, -866, -866, -29, + -28, -866, -866, -3867, 2172, -3867, -3867, -3867, + -1953, -866, -3865, -3865, -866, 3973, 3974, 3975, + 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, + 3984, 3985, 3986, 951, -2050, 3989, -2050, -2050, + -2050, -136, 951, -2048, -2048, 951, 3998, 951, + 951, 951, -2044, -2044, 951, 951, 951, 951, + 5238, 951, 951, 5243, 5244, 951, 951, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 383, 933, 933, 933, 933, 933, 933, + 933, 933, 933, 933, 933, 933, 933, 933, + 933, 933, 933, 933, 933, 933, 933, 4851, + 933, 933, 933, 933, 10909, 933, 933, 933, + 933, -5132, -5132, 933, 933, 933, 933, 4075, + 933, 933, 933, 933, 933, 933, 933, 933, + 933, 933, 1868, 933, 933, 1870, 933, 933, + 933, 933, 933, 933, 933, 933, 933, 933, + 10578, 0, 32767, 931, -2372, 931, 8615, 8616, + 931, 931, 6913, 5271, 5272, 5273, 5274, 5275, + 10607, 5277, 5278, 10610, 10611, 5281, 5282, 5283, + 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, + 5292, 5293, 5294, 5295, 5296, 5297, 6905, 6905, + 6905, 6905, 6905, 6905, 16463, -3641, 6905, 4123, + 13175, 4125, 13176, 13177, 13178, 3534, 13180, 13448, + 13182, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -2357, 17748, 7203, 934, 934, 934, 934, + 934, 934, 10579, 934, 667, 934, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 4146, 4147, 4148, 4149, 4150, 4151, + 4152, 4153, 4154, 4155, 32767, 32767, 32767, 32767, + 32767, 32767, 4156, 4157, 4158, 4159, 4160, 4161, + 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, + 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, + 4178, 4179, 4180, 4181, 4182, 5374, 5375, 5376, + 6978, 4187, 4188, 4189, 4190, 6982, 6982, 32767, + 32767, 4193, 4194, 4195, 4196, 4197, 4198, 4199, + 4200, 4201, 4202, 4203, 4204, 32767, 6995, 6995, + 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, + 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, + 4223, 32767, 3386, 4225, 4226, 7228, 32767, 32767, + 32767, 32767, 5315, 4229, 7229, 32767, 4231, 32767, + 4232, 4233, 4234, 7230, 7231, 4237, 4238, 4239, + 4240, -46, 4242, 4243, -48, -48, 4246, 4247, + 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, + 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, + 4264, 4265, 4816, 4267, 4268, 4269, 4270, 4271, + 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, + 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, + 370, 4289, 4290, 4291, 4292, -5683, 4294, 4295, + 4296, 4297, 10363, 10364, 4300, 4301, 4302, 4303, + 1162, 4305, 4306, 4307, 4308, 4309, 4310, 4311, + 4312, 4313, 4314, 3380, 4316, 4317, 3381, 4319, + 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, + 4328, -5316, 4330, 4598, 4332, 7636, 4334, -3349, + -3349, 4337, 4338, -1643, 0, 0, 0, 0, + 0, -5331, 0, 0, -5331, -5331, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4126, + 4127, 4128, 4129, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -1258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -1272, -1272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -1851, -1851, -1851, -1851, + -1851, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3235, 0, -6925, 306, + 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, -1764, -1764, 4472, 4473, 311, + 311, 311, 311, 10287, 10288, 10289, 10290, 10291, + 10292, 10293, 4485, 10198, 319, 319, 3461, 319, + 319, 319, 319, 319, 4495, 4496, 321, 321, + 321, 1256, 321, 321, 1258, 1258, 0, 3477, + 10215, 10216, 4509, 4510, 10219, 10220, 10221, 4514, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4579, 4580, 4581, 4582, + 4583, 4584, 32767, 2455, 4586, -4223, 4588, 4589, + 4590, 4591, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4885, 4886, 4887, + 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, + 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, + 4904, 4616, 4906, 4907, 4908, 4909, 4910, 4911, + 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, + 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, + 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, + 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, + 4944, 4945, 4946, 4947, 4948, 567, 568, 569, + 4952, -2455, 571, 572, 4956, 4957, 4958, 4959, + 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, + 4968, 4969, 32767, 4970, 4971, 4972, 4973, 4974, + 4975, 4976, 4977, 4978, 4979, 4980, 6623, 6623, + 6623, 6623, 6623, 1292, 6623, 1291, 1291, 1291, + 4991, 4992, 6620, 4994, 4995, 6618, 6618, 4998, + -1199, 6616, 6616, 6616, 6616, 5004, 6615, 6615, + 6615, 5008, 5009, 5010, 5011, 5012, 5013, -4544, + 15561, 5016, -1253, -1253, -1253, -1253, -1253, -1253, + 8392, -1253, -1520, -1253, -4556, -1253, 6431, 6432, + -1253, -1253, 4729, 3087, 3088, 3089, 3090, 3091, + 8423, 3093, 3094, 8426, 8427, 3097, 3098, 3099, + 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, + 3108, 3109, 3110, 3111, 3112, 3113, 4721, 4721, + 4721, 4721, 4721, 4721, 14279, -5825, 4721, 1939, + 10991, 1941, 10992, 10993, 10994, 1350, 10996, 11264, + 10998, -254, 10999, 3316, 3316, 11002, 11003, 5022, + 6665, 6665, 6665, 6665, 6665, 1334, 6665, 1333, + 1333, 1333, 5033, 5034, 6662, 5036, 5037, 6660, + 6660, 5040, -1157, 6658, 6658, 6658, 6658, 5046, + 6657, 0, 6658, 5051, 5052, 5053, 5054, 5055, + 5056, -4501, 15604, 5059, -1210, -1210, -1210, -1210, + -1210, -1210, 8435, -1210, -1477, -1210, -4513, -1210, + 6474, 6475, -1210, -1210, 4772, 0, 4981, 0, + 5131, 5132, 9273, -4525, 0, 5135, 9278, 0, + 0, 0, 0, 5139, 5140, 5141, 5142, 5143, + 5144, 5145, 5146, 0, 5147, 0, 0, 0, + 0, 0, 0, 1530, 1531, 1532, 1533, 1534, + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1543, 1544, -1583, 1546, 1547, 1548, 1549, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, + 1567, 5189, 1568, 1569, 1570, 1571, 1572, 1573, + 1574, 1575, 1576, 1577, 1578, 1579, 1580, 0, + 2255, 5200, 799, 1584, 1585, 1586, 1587, 1588, + 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, + 5215, 5216, 1597, 1598, 1599, 1600, 1601, 1602, + 5985, -1422, 1604, 1605, 1606, 1607, 1608, 1609, + 1610, 1611, 1612, 1613, 8457, 8458, 1616, 1617, + 1618, 0, 0, 0, 5243, 5244, 1622, 1623, + 1624, 5248, 1625, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 4421, 5258, 5259, 5260, 5261, 5262, + 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, + 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, + 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, + 8934, 8934, 5289, 5290, 4830, 5292, 5293, 5294, + 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, + 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, + 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, + 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, + 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, + 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, + 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, + 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, + 4891, 5360, 5361, 5362, 5363, 5364, 5365, 5366, + 5367, 5368, 5369, 5370, 5371, 5372, 32767, 5373, + 5374, -5231, 5376, 4532, 0, 5379, 5380, 5381, + 5382, 4270, 4271, 4272, 4273, 4274, 4275, 4276, + 4277, 4278, 12230, 9102, 9102, 9102, 5396, 8890, + 5398, 5399, 5400, 5401, 8899, 7356, 5568, 7358, + 7359, 0, 0, 7364, 7365, 7366, 7367, 7368, + 7369, 8924, 7371, 7372, 4606, 4606, 4606, 4606, + 7377, 10546, 10546, 10546, 10546, 10546, 10546, 20104, + 0, 10546, 7764, 16816, 7766, 16817, 5572, 5572, + 7177, 16823, 17091, 16825, 5573, 5573, 9144, 9144, + 5526, 0, 5574, 5574, 5450, 5451, 5452, 697, + 697, 5455, 0, 7172, 5458, 5576, 5460, -5456, + 5462, 5463, 5464, 0, 0, 4691, 5468, 5469, + 4693, 5471, 10898, 0, 0, 5475, 4698, 10908, + 5478, 5479, 5480, 5481, 1359, 1359, 1359, 5485, + 5486, 5487, 5488, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 101, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 87, 87, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, -492, -492, -492, -492, + -492, 1359, 1359, 1359, 1359, 1359, 1359, 1359, + 1359, 1359, 1359, 1359, 4594, 1359, -5566, 1665, + 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, + 1665, 1665, 1665, -405, -405, 5585, 5586, 1668, + 1668, 1668, 1668, 11644, 11645, 11646, 11647, 11648, + 11649, 11650, 5842, 11555, 1676, 1676, 4818, 1676, + 1676, 1676, 1676, 1676, 5852, 5853, 1678, 1678, + 1678, 2613, 1678, 1678, 2615, 2615, 1357, 4834, + 11572, 11573, 5866, 5867, 11576, 11577, 11578, 5871, + 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, + 1357, -6594, -3465, -3464, -3463, 244, -3249, 244, + 244, 244, 244, -3253, -1709, 80, -1709, -1709, + 5651, 5652, -1711, -1711, -1711, -1711, -1711, -1711, + -3265, -1711, -1711, 1056, 1057, 1058, 1059, -1711, + -4879, -4878, -4877, -4876, -4875, -4874, -14431,5674, + -4871, -2088, -11139,-2088, -11138,108, 109, -1495, + -11140,-11407,-11140,113, 114, -3456, -3455, 164, + 5691, 118, 119, 244, 244, 244, 5000, 5001, + 244, 5700, -1471, 244, 127, 244, 11161, 244, + 244, 244, 5709, 5710, 1020, 244, 244, 1021, + 244, -5182, 5717, 5718, 244, 1022, -5187, 244, + 244, 244, 244, 4367, 4368, 4369, 244, 244, + 244, 244, 4374, 4375, 4376, 4377, 4378, 4379, + 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, + 5646, 4389, 4390, 4391, 4392, 4393, 4394, 4395, + 4396, 4397, 4398, 4399, 4400, 4401, 4402, 5675, + 5676, 4405, 4406, 4407, 4408, 4409, 4410, 4411, + 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, + 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, + 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, + 4436, 4437, 4438, 6290, 6291, 6292, 6293, 6294, + 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, + 4452, 4453, 4454, 1220, 4456, 11382, 4152, 4153, + 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, + 4162, 4163, 6234, 6235, 0, 0, 4163, 4164, + 4165, 4166, -5809, -5809, -5809, -5809, -5809, -5809, + -5809, 0, -5712, 4168, 4169, 1028, 4171, 4172, + 4173, 4174, 4175, 0, 0, 4176, 4177, 4178, + 3244, 4180, 4181, 3245, 3246, 4505, 1029, -5708, + -5708, 0, 0, -5708, -5708, -5708, 0, 4515, + 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, + 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, + 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, + 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, + 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, + 4556, 0, 0, 0, 4557, 4558, 4559, 4560, + 4561, 4562, 0, 0, 4563, 4564, 4565, 4566, + 4567, 4568, 0, 0, 4569, 4570, 4571, 4572, + 4573, 4574, 2114, 2115, 4575, 4576, 4577, 0, + 0, 0, 4578, 0, 0, 0, 0, 0, + 0, 2129, 2130, 0, 8810, 0, 0, 0, + 0, 2137, 2138, 2139, 2140, 2141, 2142, 2143, + 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, + 2152, 2153, 2154, 2155, 2156, 2157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4594, 4595, + 4596, 4597, 4598, 0, 0, 164, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2222, 2223, + 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, + 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, + 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, + 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, + 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, + 2264, 2265, 2266, 2267, 2268, 2269, 2270, 705, + 706, 707, 708, 709, 2276, 2277, 2278, 2279, + 2280, 2281, 2282, 2283, 2284, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2285, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2286, 2287, 2288, 2289, 2290, 2291, + 32767, 32767, 32767, 32767, 32767, 32767, 2292, 32767, + 2293, 2294, 2295, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2296, 32767, 2297, 32767, + 2298, 32767, 2299, 32767, 2300, 32767, 2301, 32767, + 2302, 32767, 2303, 32767, 2304, 32767, 2305, 32767, + 2306, 32767, 2307, 32767, 32767, 2308, 32767, 2309, + 32767, 2310, 32767, 32767, 32767, 32767, 32767, 32767, + 2311, 2312, 32767, 2313, 2314, 32767, 2315, 2316, + 32767, 2317, 2318, 32767, 2319, 2320, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2321, 32767, 32767, 32767, + 32767, 2322, 2323, 2324, 2325, 32767, 2326, 2327, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2328, 32767, 2329, 32767, + 2330, 32767, 2331, 32767, 2332, 32767, 2333, 32767, + 2334, 32767, 2335, 32767, 2336, 32767, 2337, 32767, + 2338, 32767, 2339, 32767, 32767, 2340, 32767, 2341, + 32767, 2342, 32767, 32767, 32767, 32767, 32767, 32767, + 2343, 2344, 32767, 2345, 2346, 32767, 2347, 2348, + 32767, 2349, 2350, 32767, 2351, 2352, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 2353, 32767, 32767, 2354, + 2355, 2356, 2357, 32767, 32767, 32767, 2358, 2359, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2360, 2361, 2362, 2363, 2364, 2365, + 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, + 2374, -753, 2376, 2377, 2378, 2379, 2380, 2381, + 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, + 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, + 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, + 2406, 2407, 2408, 2409, 2410, 2411, 831, 3086, + 2414, 1631, 2416, 2417, 2418, 2419, 2420, 2421, + 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, + 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, + -587, 2439, 2440, 2441, 2442, 2443, 2444, 2445, + 2446, 2447, 2448, 9292, 9293, 2451, 2452, 2453, + 32767, 32767, 32767, 2454, 2455, 2456, 2457, 2458, + 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, + 2467, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 4599, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4600, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2468, -1450, 2470, 2471, 2472, 2473, + 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, + 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, + 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, + 2498, 32767, 2499, 2500, 2501, 2502, 2503, 2504, + 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, + 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, + 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, + 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, + 2537, 2538, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 2539, 2540, 5896, 2542, 2543, 2544, + 2545, 548, 2547, 2548, 2549, 2550, 2551, 2552, + 5919, 5920, 5921, 2556, 2557, 5926, 2559, 2560, + 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, + 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, + 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, + 2585, 32767, 2586, 2587, 2588, 2589, 2590, 2591, + 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, + 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, + 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, + 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, + 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, + 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, + 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, + 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, + 2656, 2657, 2658, 2659, 2660, 2661, -703, 2663, + 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, + 2672, 2673, 2674, 1999, 2676, 2677, 2678, 2679, + 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, + 2688, 2689, 2690, 2014, 2692, 2693, 2694, 2695, + 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, + 2704, 2705, 2706, 2707, 2708, 2709, -11089,2711, + 2712, 2713, 32767, 2714, 2715, 2716, 2717, 2718, + 8050, 2720, 2721, 8053, 8054, 2724, 2725, 2726, + 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, + 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, + 2743, 2744, 2745, 2746, 2747, 2748, -1377, -1377, + -1377, -1377, 2753, 2754, 2755, 2756, 2757, 2758, + 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, + 4025, 2768, 2769, 2770, 2771, 2772, 2773, 2774, + 2775, 2776, 2777, 2778, 2779, 2780, 2781, 4054, + 4055, 2784, 2785, 2786, 2787, 2788, 2789, 2790, + 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, + 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, + 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, + 2815, 2816, 2817, 4669, 4670, 4671, 4672, 4673, + 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, + 2831, 2832, 2833, -401, 2835, 9761, 2531, 2532, + 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, + 2541, 2542, 4613, 4614, -1621, -1621, 2542, 2543, + 2544, 2545, -7430, -7430, -7430, -7430, -7430, -7430, + -7430, -1621, -7333, 2547, 2548, -593, 2550, 2551, + 2552, 2553, 2554, -1621, -1621, 2555, 2556, 2557, + 1623, 2559, 2560, 1624, 1625, 2884, -592, -7329, + -7329, -1621, -1621, -7329, -7329, -7329, -1621, 2894, + 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, + 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, + 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, + 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, + 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, + 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, + 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, + 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, + 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, + 2967, 2968, 2969, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -1515,227 +1721,38 @@ Decomp_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 2036, 2037, 2038, - 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, - 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, - 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, - 2063, 2064, 2065, 2066, 2067, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 0, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - -4778, -4778, -4778, 0, 32767, 32767, 32767, 0, - 0, 32767, 32767, 32767, 0, 0, 32767, 32767, - -4791, -4791, -4791, -4791, -4791, -4791, -4791, -4791, - -4791, -4791, 0, 0, -15359,0, -4791, -4791, - 0, 0, -4791, 0, 0, -4789, -4789, -4789, - -4789, -4789, -4789, 0, 0, 0, 0, 0, - 0, -4789, 0, 0, 0, -4789, -4789, -4789, - -4789, -4789, -4789, -4789, 32767, 32767, 32767, 32767, - -4793, -4793, -4793, 0, 0, -4793, 0, -4793, - -4793, 32767, 32767, 32767, 0, 32767, 32767, 32767, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 2069, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 4017, 32767, 32767, 32767, 2070, - 2071, 2072, 2073, 2074, 2075, 2076, 2077, 22011, - 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, - 2087, 2337, 2337, 2090, 2091, 2092, 2093, 2094, - 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, - 2103, 2104, 2105, -3995, 2107, 2108, 2109, 2110, - 2111, 2112, 2113, 627, 2115, 1486, -5783, -5783, - -5783, 2113, 2113, 2113, -852, 1486, 1486, 1486, - -126, -5791, 5059, 1486, 3571, -16362,-1003, 1486, - -5795, -1004, 1486, 1486, 1486, 1486, -5797, -126, - -5798, 1486, 1486, 1486, 1486, 1486, 1486, 1486, - 1486, -1017, -5806, -1017, -2823, -2823, 1486, 2022, - -2821, -2821, -2821, -2821, 2163, -2820, -2820, -2820, - -2820, -5819, 1486, -2820, -2820, -2820, 4876, -2820, - -2820, -5824, -2819, 2178, -2818, -5042, 1488, -2818, - 1488, 1488, -2818, 1488, -2817, -2817, -2817, -2817, - -2817, -2817, -1461, -1461, 1488, 0, 0, 0, - 0, 0, 0, 0, 0, -19933,0, 0, - 0, 0, 0, 0, 0, 0, 0, -249, - -248, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6101, 0, 0, 0, 0, 0, 0, - 0, 1487, 0, 630, 7900, 7901, 7902, 7, - 8, 9, 2975, 638, 639, 640, 2253, 7919, - -2930, 644, -1440, 18494, 3136, 648, 7930, 3140, - 651, 652, 653, 654, 7938, 2268, 7941, 658, - 659, 660, 661, 662, 663, 664, 665, 3169, - 7959, 3171, 4978, 4979, 671, 136, 4980, 4981, - 4982, 4983, 0, 4984, 4985, 4986, 4987, 7987, - 683, 4990, 4991, 4992, -2703, 4994, 4995, 8000, - 4996, 0, 4997, 7222, 693, 5000, 695, 696, - 5003, 698, 5004, 5005, 5006, 5007, 5008, 5009, - 3654, 3655, 707, 2196, 2197, 2198, 2199, 2200, - 2201, 2202, 2203, 22137, 2205, 2206, 2207, 2208, - 2209, 2210, 2211, 2212, 2213, 2463, 2463, 2216, - 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, - 2225, 2226, 2227, 2228, 2229, 2230, 2231, -3869, - 2233, 2234, 2235, 2236, 2237, 2238, 2239, 753, - 2241, 1612, -5657, -5657, -5657, 2239, 2239, 2239, - -726, 1612, 1612, 1612, 0, -5665, 5185, 1612, - 3697, -16236,-877, 1612, -5669, -878, 1612, 1612, - 1612, 1612, -5671, 0, -5672, 1612, 1612, 1612, - 1612, 1612, 1612, 1612, 1612, -891, -5680, -891, - -2697, -2697, 1612, 5095, 2299, 5097, 2300, 5099, - 2301, 5101, 2302, 5103, 2303, 5105, 2304, 5107, - 2305, 5109, 2306, 5111, 5112, 2307, 5114, 2308, - 32767, 2309, 5117, 5118, 5119, 32767, 5120, 5121, - 5498, 2311, 5124, 2312, 2313, 0, 2314, 2315, - 5126, 2316, 2317, 5129, 2318, 2319, 5132, 32767, - 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, - 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, - 5149, 5150, 5151, 5152, 2320, 5154, 5155, 5156, - 5157, 1377, 2322, 1378, 2324, 5162, 1379, 1379, - 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, - 5173, 5174, 5175, 5176, 2327, 5178, 2328, 5180, - 2329, 5182, 2330, 5184, 2331, 5186, 2332, 5188, - 2333, 5190, 2334, 5192, 2335, 5194, 2336, 5196, - 2337, 5198, 2338, 5200, 5201, 2339, 5203, 2340, - 5205, 1391, 5207, 5208, 5209, 5210, 5211, 5212, - 1385, 1385, -4221, -4221, -4221, -1193, 2346, 2347, - 5221, 2348, 2349, -3412, -4220, -4220, -4220, -4220, - 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, - 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, - 5245, 5246, 5247, 5248, 2352, 5250, 5251, 4592, - -2168, -1982, 2356, 5256, 5257, 5258, 2357, 4444, - 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, - 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, - 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, - 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, - 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, - 5301, 5302, 5303, 5304, 5305, 5306, 32767, 5307, - 5308, 5309, 6427, 6428, 6429, 6430, 6431, 6432, - 6433, 6434, -3465, -3465, 6439, 6440, 6441, 6442, - 6443, 6444, 6445, 6446, -3465, -3465, -3465, -3465, - -3465, -3465, 7724, 2669, 2670, -3430, 2672, 2673, - 2674, 2675, 2676, 7733, 7734, -3465, -3465, -3465, - -3465, -3465, 5341, 5342, -291, -291, -291, -291, - 7390, -3465, -3465, -3465, -3465, -3465, -3465, -3465, - -3465, -3465, -5246, -5246, -5246, -5246, -3465, -3465, - -3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465, - -3465, -3465, -3465, -3465, -3465, -3465, -3465, -3465, - -3465, -3465, -3465, 1591, 1591, 7692, 1591, 1591, - 1591, 1591, 1591, -3465, -3465, -1547, 4593, 4594, - 4595, 606, 4597, -3465, 4572, 4573, 4574, 4575, - -3105, 9632, -5502, -5502, -5502, -5502, -4166, -5502, - 280, 280, 280, 280, 280, 280, 280, 280, - 5428, 5429, 278, 278, 278, 278, 278, 278, - 278, 5437, 5438, 5439, 5440, 5441, 5442, 5443, - 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, - 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, - 5460, 5461, 5462, 5463, 5464, 5465, 5466, 676, - 677, 16037, 679, 5471, 5472, 32767, 32767, 5473, - 0, 5475, 5476, 5477, 5478, 5479, 5480, 5481, - 693, 694, 695, 696, 697, 698, 5488, 700, - 701, 702, 5492, 5493, 5494, 5495, 5496, 5497, - 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, - 713, 714, 5508, 716, 5510, 5511, 5512, 5513, - 5514, 5515, 1138, 2027, 2028, 719, 720, 2030, - 2031, 1144, 9041, 9042, 2477, 2478, 2479, 2480, - 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, - 2489, 2490, 2491, 2492, 5540, 2768, 2768, 2768, - 2768, 5547, -2247, 2499, 2500, 2768, 2768, 558, - 2768, 2768, 2506, 2507, 2508, 2509, 2510, 2511, - 2512, 2513, 8713, 2515, 2516, 2517, 2518, 2519, - 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, - 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, - 2536, 2537, 5587, 5588, 5589, 5590, 5591, 5592, - 5593, 5594, 2538, 0, 0, 0, -1117, -1117, - -1117, -1117, -1117, -1117, -1117, -1117, 8783, 8784, - -1119, -1119, -1119, -1119, -1119, -1119, -1119, -1119, - 8793, 8794, 8795, 8796, 8797, 8798, -2390, 2666, - 2666, 8767, 2666, 2666, 2666, 2666, 2666, -2390, - -2390, 8810, 8811, 8812, 8813, 8814, 9, 9, - 5643, 5644, 5645, 5646, -2034, 8822, 8823, 8824, - 8825, 8826, 8827, 8828, 8829, 8830, 10612, 10613, - 10614, 10615, 8835, 8836, 8837, 8838, 8839, 8840, - 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, - 8849, 8850, 8851, 8852, 8853, 8854, 8855, 3800, - 3801, -2299, 3803, 3804, 3805, 3806, 3807, 8864, - 8865, 6948, 809, 809, 809, 4799, 809, 8872, - 836, 836, 836, 836, 8517, -4219, 10916, 10917, - 10918, 10919, 9584, 10921, 5140, 5141, 5142, 5143, - 5144, 5145, 5146, 5147, 0, 0, 5152, 5153, - 5154, 5155, 5156, 5157, 5158, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4791, 4791, -10568,4791, 0, - 0, 4791, 4791, 0, 5474, 0, 0, 0, - 0, 0, 0, 0, 4789, 4789, 4789, 4789, - 4789, 4789, 0, 4789, 4789, 4789, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4793, 4793, 0, 4793, - 0, 0, 0, 0, 0, 0, 4378, 3490, - 3490, 4800, 4800, 3491, 3491, 4379, -3517, -3517, - 3049, 3049, 3049, 3049, 3049, 3049, 3049, 3049, - 3049, 3049, 3049, 3049, 3049, 3049, 3049, 3049, - 2, 2775, 2776, 2777, 2778, 0, 7795, 3050, - 3050, 2783, 2784, 4995, 2786, 2787, 3050, 3050, - 3050, 3050, 3050, 2793, 2794, 2795, 2796, 2797, - 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, - 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, - 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, - 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, - 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, - 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, - 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, - 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, - 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, - 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, - 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, - 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, - 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, - 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, - 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, - 2918, 2919, 2920, 2921, 2922, 883, 884, 885, - 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, - 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, - 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, - 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, - 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, - 2966, 2967, 2968, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 4770, 4771, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 0, 0, 0, 0, 32767, 0, - 0, 0, 0, 0, 0, 0, 0 + 32767, 0, 32767, 0, 32767, 0, 32767, 0, + 32767, 0, 32767, 0, 32767, 0, 32767, 0, + 32767, 0, 32767, 0, 32767, 0, 32767, 0, + 32767, 32767, 0, 32767, 0, 32767, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 32767, + 0, 0, 32767, 0, 0, 32767, 0, 0, + 32767, 0, 0, 32767, 32767, 32767, 32767 }; const unsigned char *k = (const unsigned char *) key; @@ -1750,7 +1767,7 @@ Decomp_hash_func(const void *key) a = a * 257 + c; b = b * 8191 + c; } - return h[a % 13551] + h[b % 13551]; + return h[a % 13687] + h[b % 13687]; } /* Hash lookup information for decomposition */ @@ -1758,15 +1775,15 @@ static const pg_unicode_decompinfo UnicodeDecompInfo = { UnicodeDecompMain, Decomp_hash_func, - 6775 + 6843 }; /* Inverse lookup array -- contains indexes into UnicodeDecompMain[] */ -static const uint16 RecompInverseLookup[941] = +static const uint16 RecompInverseLookup[961] = { - /* U+003C+0338 -> U+226E */ 1857, - /* U+003D+0338 -> U+2260 */ 1854, - /* U+003E+0338 -> U+226F */ 1858, + /* U+003C+0338 -> U+226E */ 1858, + /* U+003D+0338 -> U+2260 */ 1855, + /* U+003E+0338 -> U+226F */ 1859, /* U+0041+0300 -> U+00C0 */ 14, /* U+0041+0301 -> U+00C1 */ 15, /* U+0041+0302 -> U+00C2 */ 16, @@ -1775,60 +1792,60 @@ static const uint16 RecompInverseLookup[941] = /* U+0041+0306 -> U+0102 */ 69, /* U+0041+0307 -> U+0226 */ 270, /* U+0041+0308 -> U+00C4 */ 18, - /* U+0041+0309 -> U+1EA2 */ 1312, + /* U+0041+0309 -> U+1EA2 */ 1313, /* U+0041+030A -> U+00C5 */ 19, /* U+0041+030C -> U+01CD */ 194, /* U+0041+030F -> U+0200 */ 240, /* U+0041+0311 -> U+0202 */ 242, - /* U+0041+0323 -> U+1EA0 */ 1310, - /* U+0041+0325 -> U+1E00 */ 1154, + /* U+0041+0323 -> U+1EA0 */ 1311, + /* U+0041+0325 -> U+1E00 */ 1155, /* U+0041+0328 -> U+0104 */ 71, - /* U+0042+0307 -> U+1E02 */ 1156, - /* U+0042+0323 -> U+1E04 */ 1158, - /* U+0042+0331 -> U+1E06 */ 1160, + /* U+0042+0307 -> U+1E02 */ 1157, + /* U+0042+0323 -> U+1E04 */ 1159, + /* U+0042+0331 -> U+1E06 */ 1161, /* U+0043+0301 -> U+0106 */ 73, /* U+0043+0302 -> U+0108 */ 75, /* U+0043+0307 -> U+010A */ 77, /* U+0043+030C -> U+010C */ 79, /* U+0043+0327 -> U+00C7 */ 20, - /* U+0044+0307 -> U+1E0A */ 1164, + /* U+0044+0307 -> U+1E0A */ 1165, /* U+0044+030C -> U+010E */ 81, - /* U+0044+0323 -> U+1E0C */ 1166, - /* U+0044+0327 -> U+1E10 */ 1170, - /* U+0044+032D -> U+1E12 */ 1172, - /* U+0044+0331 -> U+1E0E */ 1168, + /* U+0044+0323 -> U+1E0C */ 1167, + /* U+0044+0327 -> U+1E10 */ 1171, + /* U+0044+032D -> U+1E12 */ 1173, + /* U+0044+0331 -> U+1E0E */ 1169, /* U+0045+0300 -> U+00C8 */ 21, /* U+0045+0301 -> U+00C9 */ 22, /* U+0045+0302 -> U+00CA */ 23, - /* U+0045+0303 -> U+1EBC */ 1338, + /* U+0045+0303 -> U+1EBC */ 1339, /* U+0045+0304 -> U+0112 */ 83, /* U+0045+0306 -> U+0114 */ 85, /* U+0045+0307 -> U+0116 */ 87, /* U+0045+0308 -> U+00CB */ 24, - /* U+0045+0309 -> U+1EBA */ 1336, + /* U+0045+0309 -> U+1EBA */ 1337, /* U+0045+030C -> U+011A */ 91, /* U+0045+030F -> U+0204 */ 244, /* U+0045+0311 -> U+0206 */ 246, - /* U+0045+0323 -> U+1EB8 */ 1334, + /* U+0045+0323 -> U+1EB8 */ 1335, /* U+0045+0327 -> U+0228 */ 272, /* U+0045+0328 -> U+0118 */ 89, - /* U+0045+032D -> U+1E18 */ 1178, - /* U+0045+0330 -> U+1E1A */ 1180, - /* U+0046+0307 -> U+1E1E */ 1184, + /* U+0045+032D -> U+1E18 */ 1179, + /* U+0045+0330 -> U+1E1A */ 1181, + /* U+0046+0307 -> U+1E1E */ 1185, /* U+0047+0301 -> U+01F4 */ 230, /* U+0047+0302 -> U+011C */ 93, - /* U+0047+0304 -> U+1E20 */ 1186, + /* U+0047+0304 -> U+1E20 */ 1187, /* U+0047+0306 -> U+011E */ 95, /* U+0047+0307 -> U+0120 */ 97, /* U+0047+030C -> U+01E6 */ 216, /* U+0047+0327 -> U+0122 */ 99, /* U+0048+0302 -> U+0124 */ 101, - /* U+0048+0307 -> U+1E22 */ 1188, - /* U+0048+0308 -> U+1E26 */ 1192, + /* U+0048+0307 -> U+1E22 */ 1189, + /* U+0048+0308 -> U+1E26 */ 1193, /* U+0048+030C -> U+021E */ 268, - /* U+0048+0323 -> U+1E24 */ 1190, - /* U+0048+0327 -> U+1E28 */ 1194, - /* U+0048+032E -> U+1E2A */ 1196, + /* U+0048+0323 -> U+1E24 */ 1191, + /* U+0048+0327 -> U+1E28 */ 1195, + /* U+0048+032E -> U+1E2A */ 1197, /* U+0049+0300 -> U+00CC */ 25, /* U+0049+0301 -> U+00CD */ 26, /* U+0049+0302 -> U+00CE */ 27, @@ -1837,37 +1854,37 @@ static const uint16 RecompInverseLookup[941] = /* U+0049+0306 -> U+012C */ 107, /* U+0049+0307 -> U+0130 */ 111, /* U+0049+0308 -> U+00CF */ 28, - /* U+0049+0309 -> U+1EC8 */ 1350, + /* U+0049+0309 -> U+1EC8 */ 1351, /* U+0049+030C -> U+01CF */ 196, /* U+0049+030F -> U+0208 */ 248, /* U+0049+0311 -> U+020A */ 250, - /* U+0049+0323 -> U+1ECA */ 1352, + /* U+0049+0323 -> U+1ECA */ 1353, /* U+0049+0328 -> U+012E */ 109, - /* U+0049+0330 -> U+1E2C */ 1198, + /* U+0049+0330 -> U+1E2C */ 1199, /* U+004A+0302 -> U+0134 */ 114, - /* U+004B+0301 -> U+1E30 */ 1202, + /* U+004B+0301 -> U+1E30 */ 1203, /* U+004B+030C -> U+01E8 */ 218, - /* U+004B+0323 -> U+1E32 */ 1204, + /* U+004B+0323 -> U+1E32 */ 1205, /* U+004B+0327 -> U+0136 */ 116, - /* U+004B+0331 -> U+1E34 */ 1206, + /* U+004B+0331 -> U+1E34 */ 1207, /* U+004C+0301 -> U+0139 */ 118, /* U+004C+030C -> U+013D */ 122, - /* U+004C+0323 -> U+1E36 */ 1208, + /* U+004C+0323 -> U+1E36 */ 1209, /* U+004C+0327 -> U+013B */ 120, - /* U+004C+032D -> U+1E3C */ 1214, - /* U+004C+0331 -> U+1E3A */ 1212, - /* U+004D+0301 -> U+1E3E */ 1216, - /* U+004D+0307 -> U+1E40 */ 1218, - /* U+004D+0323 -> U+1E42 */ 1220, + /* U+004C+032D -> U+1E3C */ 1215, + /* U+004C+0331 -> U+1E3A */ 1213, + /* U+004D+0301 -> U+1E3E */ 1217, + /* U+004D+0307 -> U+1E40 */ 1219, + /* U+004D+0323 -> U+1E42 */ 1221, /* U+004E+0300 -> U+01F8 */ 232, /* U+004E+0301 -> U+0143 */ 126, /* U+004E+0303 -> U+00D1 */ 29, - /* U+004E+0307 -> U+1E44 */ 1222, + /* U+004E+0307 -> U+1E44 */ 1223, /* U+004E+030C -> U+0147 */ 130, - /* U+004E+0323 -> U+1E46 */ 1224, + /* U+004E+0323 -> U+1E46 */ 1225, /* U+004E+0327 -> U+0145 */ 128, - /* U+004E+032D -> U+1E4A */ 1228, - /* U+004E+0331 -> U+1E48 */ 1226, + /* U+004E+032D -> U+1E4A */ 1229, + /* U+004E+0331 -> U+1E48 */ 1227, /* U+004F+0300 -> U+00D2 */ 30, /* U+004F+0301 -> U+00D3 */ 31, /* U+004F+0302 -> U+00D4 */ 32, @@ -1876,38 +1893,38 @@ static const uint16 RecompInverseLookup[941] = /* U+004F+0306 -> U+014E */ 135, /* U+004F+0307 -> U+022E */ 278, /* U+004F+0308 -> U+00D6 */ 34, - /* U+004F+0309 -> U+1ECE */ 1356, + /* U+004F+0309 -> U+1ECE */ 1357, /* U+004F+030B -> U+0150 */ 137, /* U+004F+030C -> U+01D1 */ 198, /* U+004F+030F -> U+020C */ 252, /* U+004F+0311 -> U+020E */ 254, /* U+004F+031B -> U+01A0 */ 181, - /* U+004F+0323 -> U+1ECC */ 1354, + /* U+004F+0323 -> U+1ECC */ 1355, /* U+004F+0328 -> U+01EA */ 220, - /* U+0050+0301 -> U+1E54 */ 1238, - /* U+0050+0307 -> U+1E56 */ 1240, + /* U+0050+0301 -> U+1E54 */ 1239, + /* U+0050+0307 -> U+1E56 */ 1241, /* U+0052+0301 -> U+0154 */ 139, - /* U+0052+0307 -> U+1E58 */ 1242, + /* U+0052+0307 -> U+1E58 */ 1243, /* U+0052+030C -> U+0158 */ 143, /* U+0052+030F -> U+0210 */ 256, /* U+0052+0311 -> U+0212 */ 258, - /* U+0052+0323 -> U+1E5A */ 1244, + /* U+0052+0323 -> U+1E5A */ 1245, /* U+0052+0327 -> U+0156 */ 141, - /* U+0052+0331 -> U+1E5E */ 1248, + /* U+0052+0331 -> U+1E5E */ 1249, /* U+0053+0301 -> U+015A */ 145, /* U+0053+0302 -> U+015C */ 147, - /* U+0053+0307 -> U+1E60 */ 1250, + /* U+0053+0307 -> U+1E60 */ 1251, /* U+0053+030C -> U+0160 */ 151, - /* U+0053+0323 -> U+1E62 */ 1252, + /* U+0053+0323 -> U+1E62 */ 1253, /* U+0053+0326 -> U+0218 */ 264, /* U+0053+0327 -> U+015E */ 149, - /* U+0054+0307 -> U+1E6A */ 1260, + /* U+0054+0307 -> U+1E6A */ 1261, /* U+0054+030C -> U+0164 */ 155, - /* U+0054+0323 -> U+1E6C */ 1262, + /* U+0054+0323 -> U+1E6C */ 1263, /* U+0054+0326 -> U+021A */ 266, /* U+0054+0327 -> U+0162 */ 153, - /* U+0054+032D -> U+1E70 */ 1266, - /* U+0054+0331 -> U+1E6E */ 1264, + /* U+0054+032D -> U+1E70 */ 1267, + /* U+0054+0331 -> U+1E6E */ 1265, /* U+0055+0300 -> U+00D9 */ 35, /* U+0055+0301 -> U+00DA */ 36, /* U+0055+0302 -> U+00DB */ 37, @@ -1915,43 +1932,43 @@ static const uint16 RecompInverseLookup[941] = /* U+0055+0304 -> U+016A */ 159, /* U+0055+0306 -> U+016C */ 161, /* U+0055+0308 -> U+00DC */ 38, - /* U+0055+0309 -> U+1EE6 */ 1380, + /* U+0055+0309 -> U+1EE6 */ 1381, /* U+0055+030A -> U+016E */ 163, /* U+0055+030B -> U+0170 */ 165, /* U+0055+030C -> U+01D3 */ 200, /* U+0055+030F -> U+0214 */ 260, /* U+0055+0311 -> U+0216 */ 262, /* U+0055+031B -> U+01AF */ 183, - /* U+0055+0323 -> U+1EE4 */ 1378, - /* U+0055+0324 -> U+1E72 */ 1268, + /* U+0055+0323 -> U+1EE4 */ 1379, + /* U+0055+0324 -> U+1E72 */ 1269, /* U+0055+0328 -> U+0172 */ 167, - /* U+0055+032D -> U+1E76 */ 1272, - /* U+0055+0330 -> U+1E74 */ 1270, - /* U+0056+0303 -> U+1E7C */ 1278, - /* U+0056+0323 -> U+1E7E */ 1280, - /* U+0057+0300 -> U+1E80 */ 1282, - /* U+0057+0301 -> U+1E82 */ 1284, + /* U+0055+032D -> U+1E76 */ 1273, + /* U+0055+0330 -> U+1E74 */ 1271, + /* U+0056+0303 -> U+1E7C */ 1279, + /* U+0056+0323 -> U+1E7E */ 1281, + /* U+0057+0300 -> U+1E80 */ 1283, + /* U+0057+0301 -> U+1E82 */ 1285, /* U+0057+0302 -> U+0174 */ 169, - /* U+0057+0307 -> U+1E86 */ 1288, - /* U+0057+0308 -> U+1E84 */ 1286, - /* U+0057+0323 -> U+1E88 */ 1290, - /* U+0058+0307 -> U+1E8A */ 1292, - /* U+0058+0308 -> U+1E8C */ 1294, - /* U+0059+0300 -> U+1EF2 */ 1392, + /* U+0057+0307 -> U+1E86 */ 1289, + /* U+0057+0308 -> U+1E84 */ 1287, + /* U+0057+0323 -> U+1E88 */ 1291, + /* U+0058+0307 -> U+1E8A */ 1293, + /* U+0058+0308 -> U+1E8C */ 1295, + /* U+0059+0300 -> U+1EF2 */ 1393, /* U+0059+0301 -> U+00DD */ 39, /* U+0059+0302 -> U+0176 */ 171, - /* U+0059+0303 -> U+1EF8 */ 1398, + /* U+0059+0303 -> U+1EF8 */ 1399, /* U+0059+0304 -> U+0232 */ 282, - /* U+0059+0307 -> U+1E8E */ 1296, + /* U+0059+0307 -> U+1E8E */ 1297, /* U+0059+0308 -> U+0178 */ 173, - /* U+0059+0309 -> U+1EF6 */ 1396, - /* U+0059+0323 -> U+1EF4 */ 1394, + /* U+0059+0309 -> U+1EF6 */ 1397, + /* U+0059+0323 -> U+1EF4 */ 1395, /* U+005A+0301 -> U+0179 */ 174, - /* U+005A+0302 -> U+1E90 */ 1298, + /* U+005A+0302 -> U+1E90 */ 1299, /* U+005A+0307 -> U+017B */ 176, /* U+005A+030C -> U+017D */ 178, - /* U+005A+0323 -> U+1E92 */ 1300, - /* U+005A+0331 -> U+1E94 */ 1302, + /* U+005A+0323 -> U+1E92 */ 1301, + /* U+005A+0331 -> U+1E94 */ 1303, /* U+0061+0300 -> U+00E0 */ 40, /* U+0061+0301 -> U+00E1 */ 41, /* U+0061+0302 -> U+00E2 */ 42, @@ -1960,61 +1977,61 @@ static const uint16 RecompInverseLookup[941] = /* U+0061+0306 -> U+0103 */ 70, /* U+0061+0307 -> U+0227 */ 271, /* U+0061+0308 -> U+00E4 */ 44, - /* U+0061+0309 -> U+1EA3 */ 1313, + /* U+0061+0309 -> U+1EA3 */ 1314, /* U+0061+030A -> U+00E5 */ 45, /* U+0061+030C -> U+01CE */ 195, /* U+0061+030F -> U+0201 */ 241, /* U+0061+0311 -> U+0203 */ 243, - /* U+0061+0323 -> U+1EA1 */ 1311, - /* U+0061+0325 -> U+1E01 */ 1155, + /* U+0061+0323 -> U+1EA1 */ 1312, + /* U+0061+0325 -> U+1E01 */ 1156, /* U+0061+0328 -> U+0105 */ 72, - /* U+0062+0307 -> U+1E03 */ 1157, - /* U+0062+0323 -> U+1E05 */ 1159, - /* U+0062+0331 -> U+1E07 */ 1161, + /* U+0062+0307 -> U+1E03 */ 1158, + /* U+0062+0323 -> U+1E05 */ 1160, + /* U+0062+0331 -> U+1E07 */ 1162, /* U+0063+0301 -> U+0107 */ 74, /* U+0063+0302 -> U+0109 */ 76, /* U+0063+0307 -> U+010B */ 78, /* U+0063+030C -> U+010D */ 80, /* U+0063+0327 -> U+00E7 */ 46, - /* U+0064+0307 -> U+1E0B */ 1165, + /* U+0064+0307 -> U+1E0B */ 1166, /* U+0064+030C -> U+010F */ 82, - /* U+0064+0323 -> U+1E0D */ 1167, - /* U+0064+0327 -> U+1E11 */ 1171, - /* U+0064+032D -> U+1E13 */ 1173, - /* U+0064+0331 -> U+1E0F */ 1169, + /* U+0064+0323 -> U+1E0D */ 1168, + /* U+0064+0327 -> U+1E11 */ 1172, + /* U+0064+032D -> U+1E13 */ 1174, + /* U+0064+0331 -> U+1E0F */ 1170, /* U+0065+0300 -> U+00E8 */ 47, /* U+0065+0301 -> U+00E9 */ 48, /* U+0065+0302 -> U+00EA */ 49, - /* U+0065+0303 -> U+1EBD */ 1339, + /* U+0065+0303 -> U+1EBD */ 1340, /* U+0065+0304 -> U+0113 */ 84, /* U+0065+0306 -> U+0115 */ 86, /* U+0065+0307 -> U+0117 */ 88, /* U+0065+0308 -> U+00EB */ 50, - /* U+0065+0309 -> U+1EBB */ 1337, + /* U+0065+0309 -> U+1EBB */ 1338, /* U+0065+030C -> U+011B */ 92, /* U+0065+030F -> U+0205 */ 245, /* U+0065+0311 -> U+0207 */ 247, - /* U+0065+0323 -> U+1EB9 */ 1335, + /* U+0065+0323 -> U+1EB9 */ 1336, /* U+0065+0327 -> U+0229 */ 273, /* U+0065+0328 -> U+0119 */ 90, - /* U+0065+032D -> U+1E19 */ 1179, - /* U+0065+0330 -> U+1E1B */ 1181, - /* U+0066+0307 -> U+1E1F */ 1185, + /* U+0065+032D -> U+1E19 */ 1180, + /* U+0065+0330 -> U+1E1B */ 1182, + /* U+0066+0307 -> U+1E1F */ 1186, /* U+0067+0301 -> U+01F5 */ 231, /* U+0067+0302 -> U+011D */ 94, - /* U+0067+0304 -> U+1E21 */ 1187, + /* U+0067+0304 -> U+1E21 */ 1188, /* U+0067+0306 -> U+011F */ 96, /* U+0067+0307 -> U+0121 */ 98, /* U+0067+030C -> U+01E7 */ 217, /* U+0067+0327 -> U+0123 */ 100, /* U+0068+0302 -> U+0125 */ 102, - /* U+0068+0307 -> U+1E23 */ 1189, - /* U+0068+0308 -> U+1E27 */ 1193, + /* U+0068+0307 -> U+1E23 */ 1190, + /* U+0068+0308 -> U+1E27 */ 1194, /* U+0068+030C -> U+021F */ 269, - /* U+0068+0323 -> U+1E25 */ 1191, - /* U+0068+0327 -> U+1E29 */ 1195, - /* U+0068+032E -> U+1E2B */ 1197, - /* U+0068+0331 -> U+1E96 */ 1304, + /* U+0068+0323 -> U+1E25 */ 1192, + /* U+0068+0327 -> U+1E29 */ 1196, + /* U+0068+032E -> U+1E2B */ 1198, + /* U+0068+0331 -> U+1E96 */ 1305, /* U+0069+0300 -> U+00EC */ 51, /* U+0069+0301 -> U+00ED */ 52, /* U+0069+0302 -> U+00EE */ 53, @@ -2022,38 +2039,38 @@ static const uint16 RecompInverseLookup[941] = /* U+0069+0304 -> U+012B */ 106, /* U+0069+0306 -> U+012D */ 108, /* U+0069+0308 -> U+00EF */ 54, - /* U+0069+0309 -> U+1EC9 */ 1351, + /* U+0069+0309 -> U+1EC9 */ 1352, /* U+0069+030C -> U+01D0 */ 197, /* U+0069+030F -> U+0209 */ 249, /* U+0069+0311 -> U+020B */ 251, - /* U+0069+0323 -> U+1ECB */ 1353, + /* U+0069+0323 -> U+1ECB */ 1354, /* U+0069+0328 -> U+012F */ 110, - /* U+0069+0330 -> U+1E2D */ 1199, + /* U+0069+0330 -> U+1E2D */ 1200, /* U+006A+0302 -> U+0135 */ 115, /* U+006A+030C -> U+01F0 */ 226, - /* U+006B+0301 -> U+1E31 */ 1203, + /* U+006B+0301 -> U+1E31 */ 1204, /* U+006B+030C -> U+01E9 */ 219, - /* U+006B+0323 -> U+1E33 */ 1205, + /* U+006B+0323 -> U+1E33 */ 1206, /* U+006B+0327 -> U+0137 */ 117, - /* U+006B+0331 -> U+1E35 */ 1207, + /* U+006B+0331 -> U+1E35 */ 1208, /* U+006C+0301 -> U+013A */ 119, /* U+006C+030C -> U+013E */ 123, - /* U+006C+0323 -> U+1E37 */ 1209, + /* U+006C+0323 -> U+1E37 */ 1210, /* U+006C+0327 -> U+013C */ 121, - /* U+006C+032D -> U+1E3D */ 1215, - /* U+006C+0331 -> U+1E3B */ 1213, - /* U+006D+0301 -> U+1E3F */ 1217, - /* U+006D+0307 -> U+1E41 */ 1219, - /* U+006D+0323 -> U+1E43 */ 1221, + /* U+006C+032D -> U+1E3D */ 1216, + /* U+006C+0331 -> U+1E3B */ 1214, + /* U+006D+0301 -> U+1E3F */ 1218, + /* U+006D+0307 -> U+1E41 */ 1220, + /* U+006D+0323 -> U+1E43 */ 1222, /* U+006E+0300 -> U+01F9 */ 233, /* U+006E+0301 -> U+0144 */ 127, /* U+006E+0303 -> U+00F1 */ 55, - /* U+006E+0307 -> U+1E45 */ 1223, + /* U+006E+0307 -> U+1E45 */ 1224, /* U+006E+030C -> U+0148 */ 131, - /* U+006E+0323 -> U+1E47 */ 1225, + /* U+006E+0323 -> U+1E47 */ 1226, /* U+006E+0327 -> U+0146 */ 129, - /* U+006E+032D -> U+1E4B */ 1229, - /* U+006E+0331 -> U+1E49 */ 1227, + /* U+006E+032D -> U+1E4B */ 1230, + /* U+006E+0331 -> U+1E49 */ 1228, /* U+006F+0300 -> U+00F2 */ 56, /* U+006F+0301 -> U+00F3 */ 57, /* U+006F+0302 -> U+00F4 */ 58, @@ -2062,39 +2079,39 @@ static const uint16 RecompInverseLookup[941] = /* U+006F+0306 -> U+014F */ 136, /* U+006F+0307 -> U+022F */ 279, /* U+006F+0308 -> U+00F6 */ 60, - /* U+006F+0309 -> U+1ECF */ 1357, + /* U+006F+0309 -> U+1ECF */ 1358, /* U+006F+030B -> U+0151 */ 138, /* U+006F+030C -> U+01D2 */ 199, /* U+006F+030F -> U+020D */ 253, /* U+006F+0311 -> U+020F */ 255, /* U+006F+031B -> U+01A1 */ 182, - /* U+006F+0323 -> U+1ECD */ 1355, + /* U+006F+0323 -> U+1ECD */ 1356, /* U+006F+0328 -> U+01EB */ 221, - /* U+0070+0301 -> U+1E55 */ 1239, - /* U+0070+0307 -> U+1E57 */ 1241, + /* U+0070+0301 -> U+1E55 */ 1240, + /* U+0070+0307 -> U+1E57 */ 1242, /* U+0072+0301 -> U+0155 */ 140, - /* U+0072+0307 -> U+1E59 */ 1243, + /* U+0072+0307 -> U+1E59 */ 1244, /* U+0072+030C -> U+0159 */ 144, /* U+0072+030F -> U+0211 */ 257, /* U+0072+0311 -> U+0213 */ 259, - /* U+0072+0323 -> U+1E5B */ 1245, + /* U+0072+0323 -> U+1E5B */ 1246, /* U+0072+0327 -> U+0157 */ 142, - /* U+0072+0331 -> U+1E5F */ 1249, + /* U+0072+0331 -> U+1E5F */ 1250, /* U+0073+0301 -> U+015B */ 146, /* U+0073+0302 -> U+015D */ 148, - /* U+0073+0307 -> U+1E61 */ 1251, + /* U+0073+0307 -> U+1E61 */ 1252, /* U+0073+030C -> U+0161 */ 152, - /* U+0073+0323 -> U+1E63 */ 1253, + /* U+0073+0323 -> U+1E63 */ 1254, /* U+0073+0326 -> U+0219 */ 265, /* U+0073+0327 -> U+015F */ 150, - /* U+0074+0307 -> U+1E6B */ 1261, - /* U+0074+0308 -> U+1E97 */ 1305, + /* U+0074+0307 -> U+1E6B */ 1262, + /* U+0074+0308 -> U+1E97 */ 1306, /* U+0074+030C -> U+0165 */ 156, - /* U+0074+0323 -> U+1E6D */ 1263, + /* U+0074+0323 -> U+1E6D */ 1264, /* U+0074+0326 -> U+021B */ 267, /* U+0074+0327 -> U+0163 */ 154, - /* U+0074+032D -> U+1E71 */ 1267, - /* U+0074+0331 -> U+1E6F */ 1265, + /* U+0074+032D -> U+1E71 */ 1268, + /* U+0074+0331 -> U+1E6F */ 1266, /* U+0075+0300 -> U+00F9 */ 61, /* U+0075+0301 -> U+00FA */ 62, /* U+0075+0302 -> U+00FB */ 63, @@ -2102,251 +2119,251 @@ static const uint16 RecompInverseLookup[941] = /* U+0075+0304 -> U+016B */ 160, /* U+0075+0306 -> U+016D */ 162, /* U+0075+0308 -> U+00FC */ 64, - /* U+0075+0309 -> U+1EE7 */ 1381, + /* U+0075+0309 -> U+1EE7 */ 1382, /* U+0075+030A -> U+016F */ 164, /* U+0075+030B -> U+0171 */ 166, /* U+0075+030C -> U+01D4 */ 201, /* U+0075+030F -> U+0215 */ 261, /* U+0075+0311 -> U+0217 */ 263, /* U+0075+031B -> U+01B0 */ 184, - /* U+0075+0323 -> U+1EE5 */ 1379, - /* U+0075+0324 -> U+1E73 */ 1269, + /* U+0075+0323 -> U+1EE5 */ 1380, + /* U+0075+0324 -> U+1E73 */ 1270, /* U+0075+0328 -> U+0173 */ 168, - /* U+0075+032D -> U+1E77 */ 1273, - /* U+0075+0330 -> U+1E75 */ 1271, - /* U+0076+0303 -> U+1E7D */ 1279, - /* U+0076+0323 -> U+1E7F */ 1281, - /* U+0077+0300 -> U+1E81 */ 1283, - /* U+0077+0301 -> U+1E83 */ 1285, + /* U+0075+032D -> U+1E77 */ 1274, + /* U+0075+0330 -> U+1E75 */ 1272, + /* U+0076+0303 -> U+1E7D */ 1280, + /* U+0076+0323 -> U+1E7F */ 1282, + /* U+0077+0300 -> U+1E81 */ 1284, + /* U+0077+0301 -> U+1E83 */ 1286, /* U+0077+0302 -> U+0175 */ 170, - /* U+0077+0307 -> U+1E87 */ 1289, - /* U+0077+0308 -> U+1E85 */ 1287, - /* U+0077+030A -> U+1E98 */ 1306, - /* U+0077+0323 -> U+1E89 */ 1291, - /* U+0078+0307 -> U+1E8B */ 1293, - /* U+0078+0308 -> U+1E8D */ 1295, - /* U+0079+0300 -> U+1EF3 */ 1393, + /* U+0077+0307 -> U+1E87 */ 1290, + /* U+0077+0308 -> U+1E85 */ 1288, + /* U+0077+030A -> U+1E98 */ 1307, + /* U+0077+0323 -> U+1E89 */ 1292, + /* U+0078+0307 -> U+1E8B */ 1294, + /* U+0078+0308 -> U+1E8D */ 1296, + /* U+0079+0300 -> U+1EF3 */ 1394, /* U+0079+0301 -> U+00FD */ 65, /* U+0079+0302 -> U+0177 */ 172, - /* U+0079+0303 -> U+1EF9 */ 1399, + /* U+0079+0303 -> U+1EF9 */ 1400, /* U+0079+0304 -> U+0233 */ 283, - /* U+0079+0307 -> U+1E8F */ 1297, + /* U+0079+0307 -> U+1E8F */ 1298, /* U+0079+0308 -> U+00FF */ 66, - /* U+0079+0309 -> U+1EF7 */ 1397, - /* U+0079+030A -> U+1E99 */ 1307, - /* U+0079+0323 -> U+1EF5 */ 1395, + /* U+0079+0309 -> U+1EF7 */ 1398, + /* U+0079+030A -> U+1E99 */ 1308, + /* U+0079+0323 -> U+1EF5 */ 1396, /* U+007A+0301 -> U+017A */ 175, - /* U+007A+0302 -> U+1E91 */ 1299, + /* U+007A+0302 -> U+1E91 */ 1300, /* U+007A+0307 -> U+017C */ 177, /* U+007A+030C -> U+017E */ 179, - /* U+007A+0323 -> U+1E93 */ 1301, - /* U+007A+0331 -> U+1E95 */ 1303, - /* U+00A8+0300 -> U+1FED */ 1618, + /* U+007A+0323 -> U+1E93 */ 1302, + /* U+007A+0331 -> U+1E95 */ 1304, + /* U+00A8+0300 -> U+1FED */ 1619, /* U+00A8+0301 -> U+0385 */ 419, - /* U+00A8+0342 -> U+1FC1 */ 1578, - /* U+00C2+0300 -> U+1EA6 */ 1316, - /* U+00C2+0301 -> U+1EA4 */ 1314, - /* U+00C2+0303 -> U+1EAA */ 1320, - /* U+00C2+0309 -> U+1EA8 */ 1318, + /* U+00A8+0342 -> U+1FC1 */ 1579, + /* U+00C2+0300 -> U+1EA6 */ 1317, + /* U+00C2+0301 -> U+1EA4 */ 1315, + /* U+00C2+0303 -> U+1EAA */ 1321, + /* U+00C2+0309 -> U+1EA8 */ 1319, /* U+00C4+0304 -> U+01DE */ 210, /* U+00C5+0301 -> U+01FA */ 234, /* U+00C6+0301 -> U+01FC */ 236, /* U+00C6+0304 -> U+01E2 */ 214, - /* U+00C7+0301 -> U+1E08 */ 1162, - /* U+00CA+0300 -> U+1EC0 */ 1342, - /* U+00CA+0301 -> U+1EBE */ 1340, - /* U+00CA+0303 -> U+1EC4 */ 1346, - /* U+00CA+0309 -> U+1EC2 */ 1344, - /* U+00CF+0301 -> U+1E2E */ 1200, - /* U+00D4+0300 -> U+1ED2 */ 1360, - /* U+00D4+0301 -> U+1ED0 */ 1358, - /* U+00D4+0303 -> U+1ED6 */ 1364, - /* U+00D4+0309 -> U+1ED4 */ 1362, - /* U+00D5+0301 -> U+1E4C */ 1230, + /* U+00C7+0301 -> U+1E08 */ 1163, + /* U+00CA+0300 -> U+1EC0 */ 1343, + /* U+00CA+0301 -> U+1EBE */ 1341, + /* U+00CA+0303 -> U+1EC4 */ 1347, + /* U+00CA+0309 -> U+1EC2 */ 1345, + /* U+00CF+0301 -> U+1E2E */ 1201, + /* U+00D4+0300 -> U+1ED2 */ 1361, + /* U+00D4+0301 -> U+1ED0 */ 1359, + /* U+00D4+0303 -> U+1ED6 */ 1365, + /* U+00D4+0309 -> U+1ED4 */ 1363, + /* U+00D5+0301 -> U+1E4C */ 1231, /* U+00D5+0304 -> U+022C */ 276, - /* U+00D5+0308 -> U+1E4E */ 1232, + /* U+00D5+0308 -> U+1E4E */ 1233, /* U+00D6+0304 -> U+022A */ 274, /* U+00D8+0301 -> U+01FE */ 238, /* U+00DC+0300 -> U+01DB */ 208, /* U+00DC+0301 -> U+01D7 */ 204, /* U+00DC+0304 -> U+01D5 */ 202, /* U+00DC+030C -> U+01D9 */ 206, - /* U+00E2+0300 -> U+1EA7 */ 1317, - /* U+00E2+0301 -> U+1EA5 */ 1315, - /* U+00E2+0303 -> U+1EAB */ 1321, - /* U+00E2+0309 -> U+1EA9 */ 1319, + /* U+00E2+0300 -> U+1EA7 */ 1318, + /* U+00E2+0301 -> U+1EA5 */ 1316, + /* U+00E2+0303 -> U+1EAB */ 1322, + /* U+00E2+0309 -> U+1EA9 */ 1320, /* U+00E4+0304 -> U+01DF */ 211, /* U+00E5+0301 -> U+01FB */ 235, /* U+00E6+0301 -> U+01FD */ 237, /* U+00E6+0304 -> U+01E3 */ 215, - /* U+00E7+0301 -> U+1E09 */ 1163, - /* U+00EA+0300 -> U+1EC1 */ 1343, - /* U+00EA+0301 -> U+1EBF */ 1341, - /* U+00EA+0303 -> U+1EC5 */ 1347, - /* U+00EA+0309 -> U+1EC3 */ 1345, - /* U+00EF+0301 -> U+1E2F */ 1201, - /* U+00F4+0300 -> U+1ED3 */ 1361, - /* U+00F4+0301 -> U+1ED1 */ 1359, - /* U+00F4+0303 -> U+1ED7 */ 1365, - /* U+00F4+0309 -> U+1ED5 */ 1363, - /* U+00F5+0301 -> U+1E4D */ 1231, + /* U+00E7+0301 -> U+1E09 */ 1164, + /* U+00EA+0300 -> U+1EC1 */ 1344, + /* U+00EA+0301 -> U+1EBF */ 1342, + /* U+00EA+0303 -> U+1EC5 */ 1348, + /* U+00EA+0309 -> U+1EC3 */ 1346, + /* U+00EF+0301 -> U+1E2F */ 1202, + /* U+00F4+0300 -> U+1ED3 */ 1362, + /* U+00F4+0301 -> U+1ED1 */ 1360, + /* U+00F4+0303 -> U+1ED7 */ 1366, + /* U+00F4+0309 -> U+1ED5 */ 1364, + /* U+00F5+0301 -> U+1E4D */ 1232, /* U+00F5+0304 -> U+022D */ 277, - /* U+00F5+0308 -> U+1E4F */ 1233, + /* U+00F5+0308 -> U+1E4F */ 1234, /* U+00F6+0304 -> U+022B */ 275, /* U+00F8+0301 -> U+01FF */ 239, /* U+00FC+0300 -> U+01DC */ 209, /* U+00FC+0301 -> U+01D8 */ 205, /* U+00FC+0304 -> U+01D6 */ 203, /* U+00FC+030C -> U+01DA */ 207, - /* U+0102+0300 -> U+1EB0 */ 1326, - /* U+0102+0301 -> U+1EAE */ 1324, - /* U+0102+0303 -> U+1EB4 */ 1330, - /* U+0102+0309 -> U+1EB2 */ 1328, - /* U+0103+0300 -> U+1EB1 */ 1327, - /* U+0103+0301 -> U+1EAF */ 1325, - /* U+0103+0303 -> U+1EB5 */ 1331, - /* U+0103+0309 -> U+1EB3 */ 1329, - /* U+0112+0300 -> U+1E14 */ 1174, - /* U+0112+0301 -> U+1E16 */ 1176, - /* U+0113+0300 -> U+1E15 */ 1175, - /* U+0113+0301 -> U+1E17 */ 1177, - /* U+014C+0300 -> U+1E50 */ 1234, - /* U+014C+0301 -> U+1E52 */ 1236, - /* U+014D+0300 -> U+1E51 */ 1235, - /* U+014D+0301 -> U+1E53 */ 1237, - /* U+015A+0307 -> U+1E64 */ 1254, - /* U+015B+0307 -> U+1E65 */ 1255, - /* U+0160+0307 -> U+1E66 */ 1256, - /* U+0161+0307 -> U+1E67 */ 1257, - /* U+0168+0301 -> U+1E78 */ 1274, - /* U+0169+0301 -> U+1E79 */ 1275, - /* U+016A+0308 -> U+1E7A */ 1276, - /* U+016B+0308 -> U+1E7B */ 1277, - /* U+017F+0307 -> U+1E9B */ 1309, - /* U+01A0+0300 -> U+1EDC */ 1370, - /* U+01A0+0301 -> U+1EDA */ 1368, - /* U+01A0+0303 -> U+1EE0 */ 1374, - /* U+01A0+0309 -> U+1EDE */ 1372, - /* U+01A0+0323 -> U+1EE2 */ 1376, - /* U+01A1+0300 -> U+1EDD */ 1371, - /* U+01A1+0301 -> U+1EDB */ 1369, - /* U+01A1+0303 -> U+1EE1 */ 1375, - /* U+01A1+0309 -> U+1EDF */ 1373, - /* U+01A1+0323 -> U+1EE3 */ 1377, - /* U+01AF+0300 -> U+1EEA */ 1384, - /* U+01AF+0301 -> U+1EE8 */ 1382, - /* U+01AF+0303 -> U+1EEE */ 1388, - /* U+01AF+0309 -> U+1EEC */ 1386, - /* U+01AF+0323 -> U+1EF0 */ 1390, - /* U+01B0+0300 -> U+1EEB */ 1385, - /* U+01B0+0301 -> U+1EE9 */ 1383, - /* U+01B0+0303 -> U+1EEF */ 1389, - /* U+01B0+0309 -> U+1EED */ 1387, - /* U+01B0+0323 -> U+1EF1 */ 1391, + /* U+0102+0300 -> U+1EB0 */ 1327, + /* U+0102+0301 -> U+1EAE */ 1325, + /* U+0102+0303 -> U+1EB4 */ 1331, + /* U+0102+0309 -> U+1EB2 */ 1329, + /* U+0103+0300 -> U+1EB1 */ 1328, + /* U+0103+0301 -> U+1EAF */ 1326, + /* U+0103+0303 -> U+1EB5 */ 1332, + /* U+0103+0309 -> U+1EB3 */ 1330, + /* U+0112+0300 -> U+1E14 */ 1175, + /* U+0112+0301 -> U+1E16 */ 1177, + /* U+0113+0300 -> U+1E15 */ 1176, + /* U+0113+0301 -> U+1E17 */ 1178, + /* U+014C+0300 -> U+1E50 */ 1235, + /* U+014C+0301 -> U+1E52 */ 1237, + /* U+014D+0300 -> U+1E51 */ 1236, + /* U+014D+0301 -> U+1E53 */ 1238, + /* U+015A+0307 -> U+1E64 */ 1255, + /* U+015B+0307 -> U+1E65 */ 1256, + /* U+0160+0307 -> U+1E66 */ 1257, + /* U+0161+0307 -> U+1E67 */ 1258, + /* U+0168+0301 -> U+1E78 */ 1275, + /* U+0169+0301 -> U+1E79 */ 1276, + /* U+016A+0308 -> U+1E7A */ 1277, + /* U+016B+0308 -> U+1E7B */ 1278, + /* U+017F+0307 -> U+1E9B */ 1310, + /* U+01A0+0300 -> U+1EDC */ 1371, + /* U+01A0+0301 -> U+1EDA */ 1369, + /* U+01A0+0303 -> U+1EE0 */ 1375, + /* U+01A0+0309 -> U+1EDE */ 1373, + /* U+01A0+0323 -> U+1EE2 */ 1377, + /* U+01A1+0300 -> U+1EDD */ 1372, + /* U+01A1+0301 -> U+1EDB */ 1370, + /* U+01A1+0303 -> U+1EE1 */ 1376, + /* U+01A1+0309 -> U+1EDF */ 1374, + /* U+01A1+0323 -> U+1EE3 */ 1378, + /* U+01AF+0300 -> U+1EEA */ 1385, + /* U+01AF+0301 -> U+1EE8 */ 1383, + /* U+01AF+0303 -> U+1EEE */ 1389, + /* U+01AF+0309 -> U+1EEC */ 1387, + /* U+01AF+0323 -> U+1EF0 */ 1391, + /* U+01B0+0300 -> U+1EEB */ 1386, + /* U+01B0+0301 -> U+1EE9 */ 1384, + /* U+01B0+0303 -> U+1EEF */ 1390, + /* U+01B0+0309 -> U+1EED */ 1388, + /* U+01B0+0323 -> U+1EF1 */ 1392, /* U+01B7+030C -> U+01EE */ 224, /* U+01EA+0304 -> U+01EC */ 222, /* U+01EB+0304 -> U+01ED */ 223, /* U+0226+0304 -> U+01E0 */ 212, /* U+0227+0304 -> U+01E1 */ 213, - /* U+0228+0306 -> U+1E1C */ 1182, - /* U+0229+0306 -> U+1E1D */ 1183, + /* U+0228+0306 -> U+1E1C */ 1183, + /* U+0229+0306 -> U+1E1D */ 1184, /* U+022E+0304 -> U+0230 */ 280, /* U+022F+0304 -> U+0231 */ 281, /* U+0292+030C -> U+01EF */ 225, - /* U+0391+0300 -> U+1FBA */ 1571, + /* U+0391+0300 -> U+1FBA */ 1572, /* U+0391+0301 -> U+0386 */ 420, - /* U+0391+0304 -> U+1FB9 */ 1570, - /* U+0391+0306 -> U+1FB8 */ 1569, - /* U+0391+0313 -> U+1F08 */ 1408, - /* U+0391+0314 -> U+1F09 */ 1409, - /* U+0391+0345 -> U+1FBC */ 1573, - /* U+0395+0300 -> U+1FC8 */ 1584, + /* U+0391+0304 -> U+1FB9 */ 1571, + /* U+0391+0306 -> U+1FB8 */ 1570, + /* U+0391+0313 -> U+1F08 */ 1409, + /* U+0391+0314 -> U+1F09 */ 1410, + /* U+0391+0345 -> U+1FBC */ 1574, + /* U+0395+0300 -> U+1FC8 */ 1585, /* U+0395+0301 -> U+0388 */ 422, - /* U+0395+0313 -> U+1F18 */ 1422, - /* U+0395+0314 -> U+1F19 */ 1423, - /* U+0397+0300 -> U+1FCA */ 1586, + /* U+0395+0313 -> U+1F18 */ 1423, + /* U+0395+0314 -> U+1F19 */ 1424, + /* U+0397+0300 -> U+1FCA */ 1587, /* U+0397+0301 -> U+0389 */ 423, - /* U+0397+0313 -> U+1F28 */ 1436, - /* U+0397+0314 -> U+1F29 */ 1437, - /* U+0397+0345 -> U+1FCC */ 1588, - /* U+0399+0300 -> U+1FDA */ 1600, + /* U+0397+0313 -> U+1F28 */ 1437, + /* U+0397+0314 -> U+1F29 */ 1438, + /* U+0397+0345 -> U+1FCC */ 1589, + /* U+0399+0300 -> U+1FDA */ 1601, /* U+0399+0301 -> U+038A */ 424, - /* U+0399+0304 -> U+1FD9 */ 1599, - /* U+0399+0306 -> U+1FD8 */ 1598, + /* U+0399+0304 -> U+1FD9 */ 1600, + /* U+0399+0306 -> U+1FD8 */ 1599, /* U+0399+0308 -> U+03AA */ 429, - /* U+0399+0313 -> U+1F38 */ 1452, - /* U+0399+0314 -> U+1F39 */ 1453, - /* U+039F+0300 -> U+1FF8 */ 1626, + /* U+0399+0313 -> U+1F38 */ 1453, + /* U+0399+0314 -> U+1F39 */ 1454, + /* U+039F+0300 -> U+1FF8 */ 1627, /* U+039F+0301 -> U+038C */ 425, - /* U+039F+0313 -> U+1F48 */ 1466, - /* U+039F+0314 -> U+1F49 */ 1467, - /* U+03A1+0314 -> U+1FEC */ 1617, - /* U+03A5+0300 -> U+1FEA */ 1615, + /* U+039F+0313 -> U+1F48 */ 1467, + /* U+039F+0314 -> U+1F49 */ 1468, + /* U+03A1+0314 -> U+1FEC */ 1618, + /* U+03A5+0300 -> U+1FEA */ 1616, /* U+03A5+0301 -> U+038E */ 426, - /* U+03A5+0304 -> U+1FE9 */ 1614, - /* U+03A5+0306 -> U+1FE8 */ 1613, + /* U+03A5+0304 -> U+1FE9 */ 1615, + /* U+03A5+0306 -> U+1FE8 */ 1614, /* U+03A5+0308 -> U+03AB */ 430, - /* U+03A5+0314 -> U+1F59 */ 1480, - /* U+03A9+0300 -> U+1FFA */ 1628, + /* U+03A5+0314 -> U+1F59 */ 1481, + /* U+03A9+0300 -> U+1FFA */ 1629, /* U+03A9+0301 -> U+038F */ 427, - /* U+03A9+0313 -> U+1F68 */ 1492, - /* U+03A9+0314 -> U+1F69 */ 1493, - /* U+03A9+0345 -> U+1FFC */ 1630, - /* U+03AC+0345 -> U+1FB4 */ 1566, - /* U+03AE+0345 -> U+1FC4 */ 1581, - /* U+03B1+0300 -> U+1F70 */ 1500, + /* U+03A9+0313 -> U+1F68 */ 1493, + /* U+03A9+0314 -> U+1F69 */ 1494, + /* U+03A9+0345 -> U+1FFC */ 1631, + /* U+03AC+0345 -> U+1FB4 */ 1567, + /* U+03AE+0345 -> U+1FC4 */ 1582, + /* U+03B1+0300 -> U+1F70 */ 1501, /* U+03B1+0301 -> U+03AC */ 431, - /* U+03B1+0304 -> U+1FB1 */ 1563, - /* U+03B1+0306 -> U+1FB0 */ 1562, - /* U+03B1+0313 -> U+1F00 */ 1400, - /* U+03B1+0314 -> U+1F01 */ 1401, - /* U+03B1+0342 -> U+1FB6 */ 1567, - /* U+03B1+0345 -> U+1FB3 */ 1565, - /* U+03B5+0300 -> U+1F72 */ 1502, + /* U+03B1+0304 -> U+1FB1 */ 1564, + /* U+03B1+0306 -> U+1FB0 */ 1563, + /* U+03B1+0313 -> U+1F00 */ 1401, + /* U+03B1+0314 -> U+1F01 */ 1402, + /* U+03B1+0342 -> U+1FB6 */ 1568, + /* U+03B1+0345 -> U+1FB3 */ 1566, + /* U+03B5+0300 -> U+1F72 */ 1503, /* U+03B5+0301 -> U+03AD */ 432, - /* U+03B5+0313 -> U+1F10 */ 1416, - /* U+03B5+0314 -> U+1F11 */ 1417, - /* U+03B7+0300 -> U+1F74 */ 1504, + /* U+03B5+0313 -> U+1F10 */ 1417, + /* U+03B5+0314 -> U+1F11 */ 1418, + /* U+03B7+0300 -> U+1F74 */ 1505, /* U+03B7+0301 -> U+03AE */ 433, - /* U+03B7+0313 -> U+1F20 */ 1428, - /* U+03B7+0314 -> U+1F21 */ 1429, - /* U+03B7+0342 -> U+1FC6 */ 1582, - /* U+03B7+0345 -> U+1FC3 */ 1580, - /* U+03B9+0300 -> U+1F76 */ 1506, + /* U+03B7+0313 -> U+1F20 */ 1429, + /* U+03B7+0314 -> U+1F21 */ 1430, + /* U+03B7+0342 -> U+1FC6 */ 1583, + /* U+03B7+0345 -> U+1FC3 */ 1581, + /* U+03B9+0300 -> U+1F76 */ 1507, /* U+03B9+0301 -> U+03AF */ 434, - /* U+03B9+0304 -> U+1FD1 */ 1593, - /* U+03B9+0306 -> U+1FD0 */ 1592, + /* U+03B9+0304 -> U+1FD1 */ 1594, + /* U+03B9+0306 -> U+1FD0 */ 1593, /* U+03B9+0308 -> U+03CA */ 436, - /* U+03B9+0313 -> U+1F30 */ 1444, - /* U+03B9+0314 -> U+1F31 */ 1445, - /* U+03B9+0342 -> U+1FD6 */ 1596, - /* U+03BF+0300 -> U+1F78 */ 1508, + /* U+03B9+0313 -> U+1F30 */ 1445, + /* U+03B9+0314 -> U+1F31 */ 1446, + /* U+03B9+0342 -> U+1FD6 */ 1597, + /* U+03BF+0300 -> U+1F78 */ 1509, /* U+03BF+0301 -> U+03CC */ 438, - /* U+03BF+0313 -> U+1F40 */ 1460, - /* U+03BF+0314 -> U+1F41 */ 1461, - /* U+03C1+0313 -> U+1FE4 */ 1609, - /* U+03C1+0314 -> U+1FE5 */ 1610, - /* U+03C5+0300 -> U+1F7A */ 1510, + /* U+03BF+0313 -> U+1F40 */ 1461, + /* U+03BF+0314 -> U+1F41 */ 1462, + /* U+03C1+0313 -> U+1FE4 */ 1610, + /* U+03C1+0314 -> U+1FE5 */ 1611, + /* U+03C5+0300 -> U+1F7A */ 1511, /* U+03C5+0301 -> U+03CD */ 439, - /* U+03C5+0304 -> U+1FE1 */ 1606, - /* U+03C5+0306 -> U+1FE0 */ 1605, + /* U+03C5+0304 -> U+1FE1 */ 1607, + /* U+03C5+0306 -> U+1FE0 */ 1606, /* U+03C5+0308 -> U+03CB */ 437, - /* U+03C5+0313 -> U+1F50 */ 1472, - /* U+03C5+0314 -> U+1F51 */ 1473, - /* U+03C5+0342 -> U+1FE6 */ 1611, - /* U+03C9+0300 -> U+1F7C */ 1512, + /* U+03C5+0313 -> U+1F50 */ 1473, + /* U+03C5+0314 -> U+1F51 */ 1474, + /* U+03C5+0342 -> U+1FE6 */ 1612, + /* U+03C9+0300 -> U+1F7C */ 1513, /* U+03C9+0301 -> U+03CE */ 440, - /* U+03C9+0313 -> U+1F60 */ 1484, - /* U+03C9+0314 -> U+1F61 */ 1485, - /* U+03C9+0342 -> U+1FF6 */ 1624, - /* U+03C9+0345 -> U+1FF3 */ 1622, - /* U+03CA+0300 -> U+1FD2 */ 1594, + /* U+03C9+0313 -> U+1F60 */ 1485, + /* U+03C9+0314 -> U+1F61 */ 1486, + /* U+03C9+0342 -> U+1FF6 */ 1625, + /* U+03C9+0345 -> U+1FF3 */ 1623, + /* U+03CA+0300 -> U+1FD2 */ 1595, /* U+03CA+0301 -> U+0390 */ 428, - /* U+03CA+0342 -> U+1FD7 */ 1597, - /* U+03CB+0300 -> U+1FE2 */ 1607, + /* U+03CA+0342 -> U+1FD7 */ 1598, + /* U+03CB+0300 -> U+1FE2 */ 1608, /* U+03CB+0301 -> U+03B0 */ 435, - /* U+03CB+0342 -> U+1FE7 */ 1612, - /* U+03CE+0345 -> U+1FF4 */ 1623, + /* U+03CB+0342 -> U+1FE7 */ 1613, + /* U+03CE+0345 -> U+1FF4 */ 1624, /* U+03D2+0301 -> U+03D3 */ 444, /* U+03D2+0308 -> U+03D4 */ 445, /* U+0406+0308 -> U+0407 */ 457, @@ -2409,545 +2426,570 @@ static const uint16 RecompInverseLookup[941] = /* U+06C1+0654 -> U+06C2 */ 606, /* U+06D2+0654 -> U+06D3 */ 607, /* U+06D5+0654 -> U+06C0 */ 605, - /* U+0928+093C -> U+0929 */ 750, - /* U+0930+093C -> U+0931 */ 751, - /* U+0933+093C -> U+0934 */ 752, - /* U+09C7+09BE -> U+09CB */ 768, - /* U+09C7+09D7 -> U+09CC */ 769, - /* U+0B47+0B3E -> U+0B4B */ 787, - /* U+0B47+0B56 -> U+0B48 */ 786, - /* U+0B47+0B57 -> U+0B4C */ 788, - /* U+0B92+0BD7 -> U+0B94 */ 792, - /* U+0BC6+0BBE -> U+0BCA */ 793, - /* U+0BC6+0BD7 -> U+0BCC */ 795, - /* U+0BC7+0BBE -> U+0BCB */ 794, - /* U+0C46+0C56 -> U+0C48 */ 798, - /* U+0CBF+0CD5 -> U+0CC0 */ 803, - /* U+0CC6+0CC2 -> U+0CCA */ 806, - /* U+0CC6+0CD5 -> U+0CC7 */ 804, - /* U+0CC6+0CD6 -> U+0CC8 */ 805, - /* U+0CCA+0CD5 -> U+0CCB */ 807, - /* U+0D46+0D3E -> U+0D4A */ 811, - /* U+0D46+0D57 -> U+0D4C */ 813, - /* U+0D47+0D3E -> U+0D4B */ 812, - /* U+0DD9+0DCA -> U+0DDA */ 816, - /* U+0DD9+0DCF -> U+0DDC */ 817, - /* U+0DD9+0DDF -> U+0DDE */ 819, - /* U+0DDC+0DCA -> U+0DDD */ 818, - /* U+1025+102E -> U+1026 */ 877, - /* U+1B05+1B35 -> U+1B06 */ 937, - /* U+1B07+1B35 -> U+1B08 */ 938, - /* U+1B09+1B35 -> U+1B0A */ 939, - /* U+1B0B+1B35 -> U+1B0C */ 940, - /* U+1B0D+1B35 -> U+1B0E */ 941, - /* U+1B11+1B35 -> U+1B12 */ 942, - /* U+1B3A+1B35 -> U+1B3B */ 944, - /* U+1B3C+1B35 -> U+1B3D */ 945, - /* U+1B3E+1B35 -> U+1B40 */ 946, - /* U+1B3F+1B35 -> U+1B41 */ 947, - /* U+1B42+1B35 -> U+1B43 */ 948, - /* U+1E36+0304 -> U+1E38 */ 1210, - /* U+1E37+0304 -> U+1E39 */ 1211, - /* U+1E5A+0304 -> U+1E5C */ 1246, - /* U+1E5B+0304 -> U+1E5D */ 1247, - /* U+1E62+0307 -> U+1E68 */ 1258, - /* U+1E63+0307 -> U+1E69 */ 1259, - /* U+1EA0+0302 -> U+1EAC */ 1322, - /* U+1EA0+0306 -> U+1EB6 */ 1332, - /* U+1EA1+0302 -> U+1EAD */ 1323, - /* U+1EA1+0306 -> U+1EB7 */ 1333, - /* U+1EB8+0302 -> U+1EC6 */ 1348, - /* U+1EB9+0302 -> U+1EC7 */ 1349, - /* U+1ECC+0302 -> U+1ED8 */ 1366, - /* U+1ECD+0302 -> U+1ED9 */ 1367, - /* U+1F00+0300 -> U+1F02 */ 1402, - /* U+1F00+0301 -> U+1F04 */ 1404, - /* U+1F00+0342 -> U+1F06 */ 1406, - /* U+1F00+0345 -> U+1F80 */ 1514, - /* U+1F01+0300 -> U+1F03 */ 1403, - /* U+1F01+0301 -> U+1F05 */ 1405, - /* U+1F01+0342 -> U+1F07 */ 1407, - /* U+1F01+0345 -> U+1F81 */ 1515, - /* U+1F02+0345 -> U+1F82 */ 1516, - /* U+1F03+0345 -> U+1F83 */ 1517, - /* U+1F04+0345 -> U+1F84 */ 1518, - /* U+1F05+0345 -> U+1F85 */ 1519, - /* U+1F06+0345 -> U+1F86 */ 1520, - /* U+1F07+0345 -> U+1F87 */ 1521, - /* U+1F08+0300 -> U+1F0A */ 1410, - /* U+1F08+0301 -> U+1F0C */ 1412, - /* U+1F08+0342 -> U+1F0E */ 1414, - /* U+1F08+0345 -> U+1F88 */ 1522, - /* U+1F09+0300 -> U+1F0B */ 1411, - /* U+1F09+0301 -> U+1F0D */ 1413, - /* U+1F09+0342 -> U+1F0F */ 1415, - /* U+1F09+0345 -> U+1F89 */ 1523, - /* U+1F0A+0345 -> U+1F8A */ 1524, - /* U+1F0B+0345 -> U+1F8B */ 1525, - /* U+1F0C+0345 -> U+1F8C */ 1526, - /* U+1F0D+0345 -> U+1F8D */ 1527, - /* U+1F0E+0345 -> U+1F8E */ 1528, - /* U+1F0F+0345 -> U+1F8F */ 1529, - /* U+1F10+0300 -> U+1F12 */ 1418, - /* U+1F10+0301 -> U+1F14 */ 1420, - /* U+1F11+0300 -> U+1F13 */ 1419, - /* U+1F11+0301 -> U+1F15 */ 1421, - /* U+1F18+0300 -> U+1F1A */ 1424, - /* U+1F18+0301 -> U+1F1C */ 1426, - /* U+1F19+0300 -> U+1F1B */ 1425, - /* U+1F19+0301 -> U+1F1D */ 1427, - /* U+1F20+0300 -> U+1F22 */ 1430, - /* U+1F20+0301 -> U+1F24 */ 1432, - /* U+1F20+0342 -> U+1F26 */ 1434, - /* U+1F20+0345 -> U+1F90 */ 1530, - /* U+1F21+0300 -> U+1F23 */ 1431, - /* U+1F21+0301 -> U+1F25 */ 1433, - /* U+1F21+0342 -> U+1F27 */ 1435, - /* U+1F21+0345 -> U+1F91 */ 1531, - /* U+1F22+0345 -> U+1F92 */ 1532, - /* U+1F23+0345 -> U+1F93 */ 1533, - /* U+1F24+0345 -> U+1F94 */ 1534, - /* U+1F25+0345 -> U+1F95 */ 1535, - /* U+1F26+0345 -> U+1F96 */ 1536, - /* U+1F27+0345 -> U+1F97 */ 1537, - /* U+1F28+0300 -> U+1F2A */ 1438, - /* U+1F28+0301 -> U+1F2C */ 1440, - /* U+1F28+0342 -> U+1F2E */ 1442, - /* U+1F28+0345 -> U+1F98 */ 1538, - /* U+1F29+0300 -> U+1F2B */ 1439, - /* U+1F29+0301 -> U+1F2D */ 1441, - /* U+1F29+0342 -> U+1F2F */ 1443, - /* U+1F29+0345 -> U+1F99 */ 1539, - /* U+1F2A+0345 -> U+1F9A */ 1540, - /* U+1F2B+0345 -> U+1F9B */ 1541, - /* U+1F2C+0345 -> U+1F9C */ 1542, - /* U+1F2D+0345 -> U+1F9D */ 1543, - /* U+1F2E+0345 -> U+1F9E */ 1544, - /* U+1F2F+0345 -> U+1F9F */ 1545, - /* U+1F30+0300 -> U+1F32 */ 1446, - /* U+1F30+0301 -> U+1F34 */ 1448, - /* U+1F30+0342 -> U+1F36 */ 1450, - /* U+1F31+0300 -> U+1F33 */ 1447, - /* U+1F31+0301 -> U+1F35 */ 1449, - /* U+1F31+0342 -> U+1F37 */ 1451, - /* U+1F38+0300 -> U+1F3A */ 1454, - /* U+1F38+0301 -> U+1F3C */ 1456, - /* U+1F38+0342 -> U+1F3E */ 1458, - /* U+1F39+0300 -> U+1F3B */ 1455, - /* U+1F39+0301 -> U+1F3D */ 1457, - /* U+1F39+0342 -> U+1F3F */ 1459, - /* U+1F40+0300 -> U+1F42 */ 1462, - /* U+1F40+0301 -> U+1F44 */ 1464, - /* U+1F41+0300 -> U+1F43 */ 1463, - /* U+1F41+0301 -> U+1F45 */ 1465, - /* U+1F48+0300 -> U+1F4A */ 1468, - /* U+1F48+0301 -> U+1F4C */ 1470, - /* U+1F49+0300 -> U+1F4B */ 1469, - /* U+1F49+0301 -> U+1F4D */ 1471, - /* U+1F50+0300 -> U+1F52 */ 1474, - /* U+1F50+0301 -> U+1F54 */ 1476, - /* U+1F50+0342 -> U+1F56 */ 1478, - /* U+1F51+0300 -> U+1F53 */ 1475, - /* U+1F51+0301 -> U+1F55 */ 1477, - /* U+1F51+0342 -> U+1F57 */ 1479, - /* U+1F59+0300 -> U+1F5B */ 1481, - /* U+1F59+0301 -> U+1F5D */ 1482, - /* U+1F59+0342 -> U+1F5F */ 1483, - /* U+1F60+0300 -> U+1F62 */ 1486, - /* U+1F60+0301 -> U+1F64 */ 1488, - /* U+1F60+0342 -> U+1F66 */ 1490, - /* U+1F60+0345 -> U+1FA0 */ 1546, - /* U+1F61+0300 -> U+1F63 */ 1487, - /* U+1F61+0301 -> U+1F65 */ 1489, - /* U+1F61+0342 -> U+1F67 */ 1491, - /* U+1F61+0345 -> U+1FA1 */ 1547, - /* U+1F62+0345 -> U+1FA2 */ 1548, - /* U+1F63+0345 -> U+1FA3 */ 1549, - /* U+1F64+0345 -> U+1FA4 */ 1550, - /* U+1F65+0345 -> U+1FA5 */ 1551, - /* U+1F66+0345 -> U+1FA6 */ 1552, - /* U+1F67+0345 -> U+1FA7 */ 1553, - /* U+1F68+0300 -> U+1F6A */ 1494, - /* U+1F68+0301 -> U+1F6C */ 1496, - /* U+1F68+0342 -> U+1F6E */ 1498, - /* U+1F68+0345 -> U+1FA8 */ 1554, - /* U+1F69+0300 -> U+1F6B */ 1495, - /* U+1F69+0301 -> U+1F6D */ 1497, - /* U+1F69+0342 -> U+1F6F */ 1499, - /* U+1F69+0345 -> U+1FA9 */ 1555, - /* U+1F6A+0345 -> U+1FAA */ 1556, - /* U+1F6B+0345 -> U+1FAB */ 1557, - /* U+1F6C+0345 -> U+1FAC */ 1558, - /* U+1F6D+0345 -> U+1FAD */ 1559, - /* U+1F6E+0345 -> U+1FAE */ 1560, - /* U+1F6F+0345 -> U+1FAF */ 1561, - /* U+1F70+0345 -> U+1FB2 */ 1564, - /* U+1F74+0345 -> U+1FC2 */ 1579, - /* U+1F7C+0345 -> U+1FF2 */ 1621, - /* U+1FB6+0345 -> U+1FB7 */ 1568, - /* U+1FBF+0300 -> U+1FCD */ 1589, - /* U+1FBF+0301 -> U+1FCE */ 1590, - /* U+1FBF+0342 -> U+1FCF */ 1591, - /* U+1FC6+0345 -> U+1FC7 */ 1583, - /* U+1FF6+0345 -> U+1FF7 */ 1625, - /* U+1FFE+0300 -> U+1FDD */ 1602, - /* U+1FFE+0301 -> U+1FDE */ 1603, - /* U+1FFE+0342 -> U+1FDF */ 1604, - /* U+2190+0338 -> U+219A */ 1835, - /* U+2192+0338 -> U+219B */ 1836, - /* U+2194+0338 -> U+21AE */ 1837, - /* U+21D0+0338 -> U+21CD */ 1838, - /* U+21D2+0338 -> U+21CF */ 1840, - /* U+21D4+0338 -> U+21CE */ 1839, - /* U+2203+0338 -> U+2204 */ 1841, - /* U+2208+0338 -> U+2209 */ 1842, - /* U+220B+0338 -> U+220C */ 1843, - /* U+2223+0338 -> U+2224 */ 1844, - /* U+2225+0338 -> U+2226 */ 1845, - /* U+223C+0338 -> U+2241 */ 1850, - /* U+2243+0338 -> U+2244 */ 1851, - /* U+2245+0338 -> U+2247 */ 1852, - /* U+2248+0338 -> U+2249 */ 1853, - /* U+224D+0338 -> U+226D */ 1856, - /* U+2261+0338 -> U+2262 */ 1855, - /* U+2264+0338 -> U+2270 */ 1859, - /* U+2265+0338 -> U+2271 */ 1860, - /* U+2272+0338 -> U+2274 */ 1861, - /* U+2273+0338 -> U+2275 */ 1862, - /* U+2276+0338 -> U+2278 */ 1863, - /* U+2277+0338 -> U+2279 */ 1864, - /* U+227A+0338 -> U+2280 */ 1865, - /* U+227B+0338 -> U+2281 */ 1866, - /* U+227C+0338 -> U+22E0 */ 1875, - /* U+227D+0338 -> U+22E1 */ 1876, - /* U+2282+0338 -> U+2284 */ 1867, - /* U+2283+0338 -> U+2285 */ 1868, - /* U+2286+0338 -> U+2288 */ 1869, - /* U+2287+0338 -> U+2289 */ 1870, - /* U+2291+0338 -> U+22E2 */ 1877, - /* U+2292+0338 -> U+22E3 */ 1878, - /* U+22A2+0338 -> U+22AC */ 1871, - /* U+22A8+0338 -> U+22AD */ 1872, - /* U+22A9+0338 -> U+22AE */ 1873, - /* U+22AB+0338 -> U+22AF */ 1874, - /* U+22B2+0338 -> U+22EA */ 1879, - /* U+22B3+0338 -> U+22EB */ 1880, - /* U+22B4+0338 -> U+22EC */ 1881, - /* U+22B5+0338 -> U+22ED */ 1882, - /* U+3046+3099 -> U+3094 */ 2320, - /* U+304B+3099 -> U+304C */ 2295, - /* U+304D+3099 -> U+304E */ 2296, - /* U+304F+3099 -> U+3050 */ 2297, - /* U+3051+3099 -> U+3052 */ 2298, - /* U+3053+3099 -> U+3054 */ 2299, - /* U+3055+3099 -> U+3056 */ 2300, - /* U+3057+3099 -> U+3058 */ 2301, - /* U+3059+3099 -> U+305A */ 2302, - /* U+305B+3099 -> U+305C */ 2303, - /* U+305D+3099 -> U+305E */ 2304, - /* U+305F+3099 -> U+3060 */ 2305, - /* U+3061+3099 -> U+3062 */ 2306, - /* U+3064+3099 -> U+3065 */ 2307, - /* U+3066+3099 -> U+3067 */ 2308, - /* U+3068+3099 -> U+3069 */ 2309, - /* U+306F+3099 -> U+3070 */ 2310, - /* U+306F+309A -> U+3071 */ 2311, - /* U+3072+3099 -> U+3073 */ 2312, - /* U+3072+309A -> U+3074 */ 2313, - /* U+3075+3099 -> U+3076 */ 2314, - /* U+3075+309A -> U+3077 */ 2315, - /* U+3078+3099 -> U+3079 */ 2316, - /* U+3078+309A -> U+307A */ 2317, - /* U+307B+3099 -> U+307C */ 2318, - /* U+307B+309A -> U+307D */ 2319, - /* U+309D+3099 -> U+309E */ 2325, - /* U+30A6+3099 -> U+30F4 */ 2352, - /* U+30AB+3099 -> U+30AC */ 2327, - /* U+30AD+3099 -> U+30AE */ 2328, - /* U+30AF+3099 -> U+30B0 */ 2329, - /* U+30B1+3099 -> U+30B2 */ 2330, - /* U+30B3+3099 -> U+30B4 */ 2331, - /* U+30B5+3099 -> U+30B6 */ 2332, - /* U+30B7+3099 -> U+30B8 */ 2333, - /* U+30B9+3099 -> U+30BA */ 2334, - /* U+30BB+3099 -> U+30BC */ 2335, - /* U+30BD+3099 -> U+30BE */ 2336, - /* U+30BF+3099 -> U+30C0 */ 2337, - /* U+30C1+3099 -> U+30C2 */ 2338, - /* U+30C4+3099 -> U+30C5 */ 2339, - /* U+30C6+3099 -> U+30C7 */ 2340, - /* U+30C8+3099 -> U+30C9 */ 2341, - /* U+30CF+3099 -> U+30D0 */ 2342, - /* U+30CF+309A -> U+30D1 */ 2343, - /* U+30D2+3099 -> U+30D3 */ 2344, - /* U+30D2+309A -> U+30D4 */ 2345, - /* U+30D5+3099 -> U+30D6 */ 2346, - /* U+30D5+309A -> U+30D7 */ 2347, - /* U+30D8+3099 -> U+30D9 */ 2348, - /* U+30D8+309A -> U+30DA */ 2349, - /* U+30DB+3099 -> U+30DC */ 2350, - /* U+30DB+309A -> U+30DD */ 2351, - /* U+30EF+3099 -> U+30F7 */ 2353, - /* U+30F0+3099 -> U+30F8 */ 2354, - /* U+30F1+3099 -> U+30F9 */ 2355, - /* U+30F2+3099 -> U+30FA */ 2356, - /* U+30FD+3099 -> U+30FE */ 2357, - /* U+11099+110BA -> U+1109A */ 4689, - /* U+1109B+110BA -> U+1109C */ 4690, - /* U+110A5+110BA -> U+110AB */ 4691, - /* U+11131+11127 -> U+1112E */ 4697, - /* U+11132+11127 -> U+1112F */ 4698, - /* U+11347+1133E -> U+1134B */ 4710, - /* U+11347+11357 -> U+1134C */ 4711, - /* U+114B9+114B0 -> U+114BC */ 4729, - /* U+114B9+114BA -> U+114BB */ 4728, - /* U+114B9+114BD -> U+114BE */ 4730, - /* U+115B8+115AF -> U+115BA */ 4733, - /* U+115B9+115AF -> U+115BB */ 4734, - /* U+11935+11930 -> U+11938 */ 4743 + /* U+0928+093C -> U+0929 */ 751, + /* U+0930+093C -> U+0931 */ 752, + /* U+0933+093C -> U+0934 */ 753, + /* U+09C7+09BE -> U+09CB */ 769, + /* U+09C7+09D7 -> U+09CC */ 770, + /* U+0B47+0B3E -> U+0B4B */ 788, + /* U+0B47+0B56 -> U+0B48 */ 787, + /* U+0B47+0B57 -> U+0B4C */ 789, + /* U+0B92+0BD7 -> U+0B94 */ 793, + /* U+0BC6+0BBE -> U+0BCA */ 794, + /* U+0BC6+0BD7 -> U+0BCC */ 796, + /* U+0BC7+0BBE -> U+0BCB */ 795, + /* U+0C46+0C56 -> U+0C48 */ 799, + /* U+0CBF+0CD5 -> U+0CC0 */ 804, + /* U+0CC6+0CC2 -> U+0CCA */ 807, + /* U+0CC6+0CD5 -> U+0CC7 */ 805, + /* U+0CC6+0CD6 -> U+0CC8 */ 806, + /* U+0CCA+0CD5 -> U+0CCB */ 808, + /* U+0D46+0D3E -> U+0D4A */ 812, + /* U+0D46+0D57 -> U+0D4C */ 814, + /* U+0D47+0D3E -> U+0D4B */ 813, + /* U+0DD9+0DCA -> U+0DDA */ 817, + /* U+0DD9+0DCF -> U+0DDC */ 818, + /* U+0DD9+0DDF -> U+0DDE */ 820, + /* U+0DDC+0DCA -> U+0DDD */ 819, + /* U+1025+102E -> U+1026 */ 878, + /* U+1B05+1B35 -> U+1B06 */ 938, + /* U+1B07+1B35 -> U+1B08 */ 939, + /* U+1B09+1B35 -> U+1B0A */ 940, + /* U+1B0B+1B35 -> U+1B0C */ 941, + /* U+1B0D+1B35 -> U+1B0E */ 942, + /* U+1B11+1B35 -> U+1B12 */ 943, + /* U+1B3A+1B35 -> U+1B3B */ 945, + /* U+1B3C+1B35 -> U+1B3D */ 946, + /* U+1B3E+1B35 -> U+1B40 */ 947, + /* U+1B3F+1B35 -> U+1B41 */ 948, + /* U+1B42+1B35 -> U+1B43 */ 949, + /* U+1E36+0304 -> U+1E38 */ 1211, + /* U+1E37+0304 -> U+1E39 */ 1212, + /* U+1E5A+0304 -> U+1E5C */ 1247, + /* U+1E5B+0304 -> U+1E5D */ 1248, + /* U+1E62+0307 -> U+1E68 */ 1259, + /* U+1E63+0307 -> U+1E69 */ 1260, + /* U+1EA0+0302 -> U+1EAC */ 1323, + /* U+1EA0+0306 -> U+1EB6 */ 1333, + /* U+1EA1+0302 -> U+1EAD */ 1324, + /* U+1EA1+0306 -> U+1EB7 */ 1334, + /* U+1EB8+0302 -> U+1EC6 */ 1349, + /* U+1EB9+0302 -> U+1EC7 */ 1350, + /* U+1ECC+0302 -> U+1ED8 */ 1367, + /* U+1ECD+0302 -> U+1ED9 */ 1368, + /* U+1F00+0300 -> U+1F02 */ 1403, + /* U+1F00+0301 -> U+1F04 */ 1405, + /* U+1F00+0342 -> U+1F06 */ 1407, + /* U+1F00+0345 -> U+1F80 */ 1515, + /* U+1F01+0300 -> U+1F03 */ 1404, + /* U+1F01+0301 -> U+1F05 */ 1406, + /* U+1F01+0342 -> U+1F07 */ 1408, + /* U+1F01+0345 -> U+1F81 */ 1516, + /* U+1F02+0345 -> U+1F82 */ 1517, + /* U+1F03+0345 -> U+1F83 */ 1518, + /* U+1F04+0345 -> U+1F84 */ 1519, + /* U+1F05+0345 -> U+1F85 */ 1520, + /* U+1F06+0345 -> U+1F86 */ 1521, + /* U+1F07+0345 -> U+1F87 */ 1522, + /* U+1F08+0300 -> U+1F0A */ 1411, + /* U+1F08+0301 -> U+1F0C */ 1413, + /* U+1F08+0342 -> U+1F0E */ 1415, + /* U+1F08+0345 -> U+1F88 */ 1523, + /* U+1F09+0300 -> U+1F0B */ 1412, + /* U+1F09+0301 -> U+1F0D */ 1414, + /* U+1F09+0342 -> U+1F0F */ 1416, + /* U+1F09+0345 -> U+1F89 */ 1524, + /* U+1F0A+0345 -> U+1F8A */ 1525, + /* U+1F0B+0345 -> U+1F8B */ 1526, + /* U+1F0C+0345 -> U+1F8C */ 1527, + /* U+1F0D+0345 -> U+1F8D */ 1528, + /* U+1F0E+0345 -> U+1F8E */ 1529, + /* U+1F0F+0345 -> U+1F8F */ 1530, + /* U+1F10+0300 -> U+1F12 */ 1419, + /* U+1F10+0301 -> U+1F14 */ 1421, + /* U+1F11+0300 -> U+1F13 */ 1420, + /* U+1F11+0301 -> U+1F15 */ 1422, + /* U+1F18+0300 -> U+1F1A */ 1425, + /* U+1F18+0301 -> U+1F1C */ 1427, + /* U+1F19+0300 -> U+1F1B */ 1426, + /* U+1F19+0301 -> U+1F1D */ 1428, + /* U+1F20+0300 -> U+1F22 */ 1431, + /* U+1F20+0301 -> U+1F24 */ 1433, + /* U+1F20+0342 -> U+1F26 */ 1435, + /* U+1F20+0345 -> U+1F90 */ 1531, + /* U+1F21+0300 -> U+1F23 */ 1432, + /* U+1F21+0301 -> U+1F25 */ 1434, + /* U+1F21+0342 -> U+1F27 */ 1436, + /* U+1F21+0345 -> U+1F91 */ 1532, + /* U+1F22+0345 -> U+1F92 */ 1533, + /* U+1F23+0345 -> U+1F93 */ 1534, + /* U+1F24+0345 -> U+1F94 */ 1535, + /* U+1F25+0345 -> U+1F95 */ 1536, + /* U+1F26+0345 -> U+1F96 */ 1537, + /* U+1F27+0345 -> U+1F97 */ 1538, + /* U+1F28+0300 -> U+1F2A */ 1439, + /* U+1F28+0301 -> U+1F2C */ 1441, + /* U+1F28+0342 -> U+1F2E */ 1443, + /* U+1F28+0345 -> U+1F98 */ 1539, + /* U+1F29+0300 -> U+1F2B */ 1440, + /* U+1F29+0301 -> U+1F2D */ 1442, + /* U+1F29+0342 -> U+1F2F */ 1444, + /* U+1F29+0345 -> U+1F99 */ 1540, + /* U+1F2A+0345 -> U+1F9A */ 1541, + /* U+1F2B+0345 -> U+1F9B */ 1542, + /* U+1F2C+0345 -> U+1F9C */ 1543, + /* U+1F2D+0345 -> U+1F9D */ 1544, + /* U+1F2E+0345 -> U+1F9E */ 1545, + /* U+1F2F+0345 -> U+1F9F */ 1546, + /* U+1F30+0300 -> U+1F32 */ 1447, + /* U+1F30+0301 -> U+1F34 */ 1449, + /* U+1F30+0342 -> U+1F36 */ 1451, + /* U+1F31+0300 -> U+1F33 */ 1448, + /* U+1F31+0301 -> U+1F35 */ 1450, + /* U+1F31+0342 -> U+1F37 */ 1452, + /* U+1F38+0300 -> U+1F3A */ 1455, + /* U+1F38+0301 -> U+1F3C */ 1457, + /* U+1F38+0342 -> U+1F3E */ 1459, + /* U+1F39+0300 -> U+1F3B */ 1456, + /* U+1F39+0301 -> U+1F3D */ 1458, + /* U+1F39+0342 -> U+1F3F */ 1460, + /* U+1F40+0300 -> U+1F42 */ 1463, + /* U+1F40+0301 -> U+1F44 */ 1465, + /* U+1F41+0300 -> U+1F43 */ 1464, + /* U+1F41+0301 -> U+1F45 */ 1466, + /* U+1F48+0300 -> U+1F4A */ 1469, + /* U+1F48+0301 -> U+1F4C */ 1471, + /* U+1F49+0300 -> U+1F4B */ 1470, + /* U+1F49+0301 -> U+1F4D */ 1472, + /* U+1F50+0300 -> U+1F52 */ 1475, + /* U+1F50+0301 -> U+1F54 */ 1477, + /* U+1F50+0342 -> U+1F56 */ 1479, + /* U+1F51+0300 -> U+1F53 */ 1476, + /* U+1F51+0301 -> U+1F55 */ 1478, + /* U+1F51+0342 -> U+1F57 */ 1480, + /* U+1F59+0300 -> U+1F5B */ 1482, + /* U+1F59+0301 -> U+1F5D */ 1483, + /* U+1F59+0342 -> U+1F5F */ 1484, + /* U+1F60+0300 -> U+1F62 */ 1487, + /* U+1F60+0301 -> U+1F64 */ 1489, + /* U+1F60+0342 -> U+1F66 */ 1491, + /* U+1F60+0345 -> U+1FA0 */ 1547, + /* U+1F61+0300 -> U+1F63 */ 1488, + /* U+1F61+0301 -> U+1F65 */ 1490, + /* U+1F61+0342 -> U+1F67 */ 1492, + /* U+1F61+0345 -> U+1FA1 */ 1548, + /* U+1F62+0345 -> U+1FA2 */ 1549, + /* U+1F63+0345 -> U+1FA3 */ 1550, + /* U+1F64+0345 -> U+1FA4 */ 1551, + /* U+1F65+0345 -> U+1FA5 */ 1552, + /* U+1F66+0345 -> U+1FA6 */ 1553, + /* U+1F67+0345 -> U+1FA7 */ 1554, + /* U+1F68+0300 -> U+1F6A */ 1495, + /* U+1F68+0301 -> U+1F6C */ 1497, + /* U+1F68+0342 -> U+1F6E */ 1499, + /* U+1F68+0345 -> U+1FA8 */ 1555, + /* U+1F69+0300 -> U+1F6B */ 1496, + /* U+1F69+0301 -> U+1F6D */ 1498, + /* U+1F69+0342 -> U+1F6F */ 1500, + /* U+1F69+0345 -> U+1FA9 */ 1556, + /* U+1F6A+0345 -> U+1FAA */ 1557, + /* U+1F6B+0345 -> U+1FAB */ 1558, + /* U+1F6C+0345 -> U+1FAC */ 1559, + /* U+1F6D+0345 -> U+1FAD */ 1560, + /* U+1F6E+0345 -> U+1FAE */ 1561, + /* U+1F6F+0345 -> U+1FAF */ 1562, + /* U+1F70+0345 -> U+1FB2 */ 1565, + /* U+1F74+0345 -> U+1FC2 */ 1580, + /* U+1F7C+0345 -> U+1FF2 */ 1622, + /* U+1FB6+0345 -> U+1FB7 */ 1569, + /* U+1FBF+0300 -> U+1FCD */ 1590, + /* U+1FBF+0301 -> U+1FCE */ 1591, + /* U+1FBF+0342 -> U+1FCF */ 1592, + /* U+1FC6+0345 -> U+1FC7 */ 1584, + /* U+1FF6+0345 -> U+1FF7 */ 1626, + /* U+1FFE+0300 -> U+1FDD */ 1603, + /* U+1FFE+0301 -> U+1FDE */ 1604, + /* U+1FFE+0342 -> U+1FDF */ 1605, + /* U+2190+0338 -> U+219A */ 1836, + /* U+2192+0338 -> U+219B */ 1837, + /* U+2194+0338 -> U+21AE */ 1838, + /* U+21D0+0338 -> U+21CD */ 1839, + /* U+21D2+0338 -> U+21CF */ 1841, + /* U+21D4+0338 -> U+21CE */ 1840, + /* U+2203+0338 -> U+2204 */ 1842, + /* U+2208+0338 -> U+2209 */ 1843, + /* U+220B+0338 -> U+220C */ 1844, + /* U+2223+0338 -> U+2224 */ 1845, + /* U+2225+0338 -> U+2226 */ 1846, + /* U+223C+0338 -> U+2241 */ 1851, + /* U+2243+0338 -> U+2244 */ 1852, + /* U+2245+0338 -> U+2247 */ 1853, + /* U+2248+0338 -> U+2249 */ 1854, + /* U+224D+0338 -> U+226D */ 1857, + /* U+2261+0338 -> U+2262 */ 1856, + /* U+2264+0338 -> U+2270 */ 1860, + /* U+2265+0338 -> U+2271 */ 1861, + /* U+2272+0338 -> U+2274 */ 1862, + /* U+2273+0338 -> U+2275 */ 1863, + /* U+2276+0338 -> U+2278 */ 1864, + /* U+2277+0338 -> U+2279 */ 1865, + /* U+227A+0338 -> U+2280 */ 1866, + /* U+227B+0338 -> U+2281 */ 1867, + /* U+227C+0338 -> U+22E0 */ 1876, + /* U+227D+0338 -> U+22E1 */ 1877, + /* U+2282+0338 -> U+2284 */ 1868, + /* U+2283+0338 -> U+2285 */ 1869, + /* U+2286+0338 -> U+2288 */ 1870, + /* U+2287+0338 -> U+2289 */ 1871, + /* U+2291+0338 -> U+22E2 */ 1878, + /* U+2292+0338 -> U+22E3 */ 1879, + /* U+22A2+0338 -> U+22AC */ 1872, + /* U+22A8+0338 -> U+22AD */ 1873, + /* U+22A9+0338 -> U+22AE */ 1874, + /* U+22AB+0338 -> U+22AF */ 1875, + /* U+22B2+0338 -> U+22EA */ 1880, + /* U+22B3+0338 -> U+22EB */ 1881, + /* U+22B4+0338 -> U+22EC */ 1882, + /* U+22B5+0338 -> U+22ED */ 1883, + /* U+3046+3099 -> U+3094 */ 2321, + /* U+304B+3099 -> U+304C */ 2296, + /* U+304D+3099 -> U+304E */ 2297, + /* U+304F+3099 -> U+3050 */ 2298, + /* U+3051+3099 -> U+3052 */ 2299, + /* U+3053+3099 -> U+3054 */ 2300, + /* U+3055+3099 -> U+3056 */ 2301, + /* U+3057+3099 -> U+3058 */ 2302, + /* U+3059+3099 -> U+305A */ 2303, + /* U+305B+3099 -> U+305C */ 2304, + /* U+305D+3099 -> U+305E */ 2305, + /* U+305F+3099 -> U+3060 */ 2306, + /* U+3061+3099 -> U+3062 */ 2307, + /* U+3064+3099 -> U+3065 */ 2308, + /* U+3066+3099 -> U+3067 */ 2309, + /* U+3068+3099 -> U+3069 */ 2310, + /* U+306F+3099 -> U+3070 */ 2311, + /* U+306F+309A -> U+3071 */ 2312, + /* U+3072+3099 -> U+3073 */ 2313, + /* U+3072+309A -> U+3074 */ 2314, + /* U+3075+3099 -> U+3076 */ 2315, + /* U+3075+309A -> U+3077 */ 2316, + /* U+3078+3099 -> U+3079 */ 2317, + /* U+3078+309A -> U+307A */ 2318, + /* U+307B+3099 -> U+307C */ 2319, + /* U+307B+309A -> U+307D */ 2320, + /* U+309D+3099 -> U+309E */ 2326, + /* U+30A6+3099 -> U+30F4 */ 2353, + /* U+30AB+3099 -> U+30AC */ 2328, + /* U+30AD+3099 -> U+30AE */ 2329, + /* U+30AF+3099 -> U+30B0 */ 2330, + /* U+30B1+3099 -> U+30B2 */ 2331, + /* U+30B3+3099 -> U+30B4 */ 2332, + /* U+30B5+3099 -> U+30B6 */ 2333, + /* U+30B7+3099 -> U+30B8 */ 2334, + /* U+30B9+3099 -> U+30BA */ 2335, + /* U+30BB+3099 -> U+30BC */ 2336, + /* U+30BD+3099 -> U+30BE */ 2337, + /* U+30BF+3099 -> U+30C0 */ 2338, + /* U+30C1+3099 -> U+30C2 */ 2339, + /* U+30C4+3099 -> U+30C5 */ 2340, + /* U+30C6+3099 -> U+30C7 */ 2341, + /* U+30C8+3099 -> U+30C9 */ 2342, + /* U+30CF+3099 -> U+30D0 */ 2343, + /* U+30CF+309A -> U+30D1 */ 2344, + /* U+30D2+3099 -> U+30D3 */ 2345, + /* U+30D2+309A -> U+30D4 */ 2346, + /* U+30D5+3099 -> U+30D6 */ 2347, + /* U+30D5+309A -> U+30D7 */ 2348, + /* U+30D8+3099 -> U+30D9 */ 2349, + /* U+30D8+309A -> U+30DA */ 2350, + /* U+30DB+3099 -> U+30DC */ 2351, + /* U+30DB+309A -> U+30DD */ 2352, + /* U+30EF+3099 -> U+30F7 */ 2354, + /* U+30F0+3099 -> U+30F8 */ 2355, + /* U+30F1+3099 -> U+30F9 */ 2356, + /* U+30F2+3099 -> U+30FA */ 2357, + /* U+30FD+3099 -> U+30FE */ 2358, + /* U+105D2+0307 -> U+105C9 */ 4599, + /* U+105DA+0307 -> U+105E4 */ 4600, + /* U+11099+110BA -> U+1109A */ 4697, + /* U+1109B+110BA -> U+1109C */ 4698, + /* U+110A5+110BA -> U+110AB */ 4699, + /* U+11131+11127 -> U+1112E */ 4705, + /* U+11132+11127 -> U+1112F */ 4706, + /* U+11347+1133E -> U+1134B */ 4718, + /* U+11347+11357 -> U+1134C */ 4719, + /* U+11382+113C9 -> U+11383 */ 4733, + /* U+11384+113BB -> U+11385 */ 4734, + /* U+1138B+113C2 -> U+1138E */ 4735, + /* U+11390+113C9 -> U+11391 */ 4736, + /* U+113C2+113B8 -> U+113C7 */ 4738, + /* U+113C2+113C2 -> U+113C5 */ 4737, + /* U+113C2+113C9 -> U+113C8 */ 4739, + /* U+114B9+114B0 -> U+114BC */ 4747, + /* U+114B9+114BA -> U+114BB */ 4746, + /* U+114B9+114BD -> U+114BE */ 4748, + /* U+115B8+115AF -> U+115BA */ 4751, + /* U+115B9+115AF -> U+115BB */ 4752, + /* U+11935+11930 -> U+11938 */ 4761, + /* U+1611E+1611E -> U+16121 */ 4776, + /* U+1611E+1611F -> U+16123 */ 4778, + /* U+1611E+16120 -> U+16125 */ 4780, + /* U+1611E+16129 -> U+16122 */ 4777, + /* U+16121+1611F -> U+16126 */ 4781, + /* U+16121+16120 -> U+16128 */ 4783, + /* U+16122+1611F -> U+16127 */ 4782, + /* U+16129+1611F -> U+16124 */ 4779, + /* U+16D63+16D67 -> U+16D69 */ 4798, + /* U+16D67+16D67 -> U+16D68 */ 4797, + /* U+16D69+16D67 -> U+16D6A */ 4799 }; /* Perfect hash function for recomposition */ static int Recomp_hash_func(const void *key) { - static const int16 h[1883] = { - 772, 773, 621, 32767, 32767, 387, 653, 196, - 32767, 32767, 855, 463, -19, 651, 32767, 32767, - 32767, 364, 32767, 32767, -108, 32767, 32767, 32767, - 32767, 0, -568, 32767, 32767, 32767, 0, 0, - 0, -103, 364, 0, 210, 732, 0, 0, - -506, 0, 0, 0, 32767, 32767, 0, 32767, - 407, -140, 32767, 409, 32767, 772, 0, 86, - 842, 934, 32767, 32767, -499, -355, 32767, 32767, - 532, 138, 174, -243, 860, 1870, 742, 32767, - 32767, 339, 32767, 1290, 0, 32767, 32767, 0, - -449, -1386, 1633, 560, 561, 32767, 1219, 1004, - 139, -804, 32767, -179, 141, 579, 1586, 32767, - 32767, 32767, 142, 199, 32767, 32767, 143, 0, - 32767, 32767, 314, 896, 32767, 32767, 428, 129, - 286, -58, 0, 68, 32767, 0, 244, -566, - 32767, 32767, 32767, 246, 32767, 32767, 0, 32767, - 32767, 271, -108, 928, 32767, 715, 32767, 32767, - -211, -497, 32767, 0, 1055, 1339, 32767, 0, - 32767, 32767, -968, -144, 32767, 32767, 248, 32767, - -161, 32767, 32767, 282, 32767, -372, 0, 2, - -137, 1116, 32767, 687, 32767, 459, 913, 0, - 461, 879, -816, 443, 32767, 32767, 462, 1089, - 32767, 1054, 0, 314, 447, -26, 480, 32767, - 64, 0, 0, 112, 32767, 66, 0, 646, - 603, 22, -292, 0, 710, 475, 32767, 24, - -781, 32767, 32767, 32767, 281, 307, 32767, 1289, - 32767, 0, 1064, -149, 454, 118, 32767, 32767, - 0, 32767, -126, 0, 32767, 32767, 858, 32767, - 32767, 32767, 1029, 886, 665, 209, 0, 26, - 359, 0, 0, -108, -508, -603, 894, 906, - 32767, 32767, 14, 0, 0, 534, 984, 876, - 32767, -93, 110, -367, 167, 843, 32767, 32767, - -947, -290, 169, 0, 0, 32767, -42, 564, - 0, -927, 32767, 817, 32767, 32767, 32767, 110, - 0, 32767, 32767, -38, 32767, 32767, -101, 694, - -142, 190, 191, 1288, 32767, -687, 194, -579, - 534, -452, 0, -72, 536, 765, 823, 266, - -259, 684, 767, 32767, 654, 32767, 32767, 64, - 920, 32767, 32767, 32767, 0, 1653, 0, 0, - 32767, 32767, -452, -222, 855, 0, 32767, -1153, - 127, 490, 449, 863, 32767, -144, 32767, -379, - 545, 32767, 32767, 32767, 530, 32767, 32767, 1331, - 611, -612, 332, 545, -73, 0, 604, 201, - 32767, -279, 338, 836, 340, 408, 32767, -60, - -358, 32767, 343, 69, 707, 0, -129, 582, - 32767, 0, 32767, 96, 392, 490, 639, 157, - -4, 406, 32767, 32767, -571, 1077, 546, 32767, - 551, 0, 0, 0, 32767, 32767, 348, 32767, - 498, -181, 0, -433, 1057, 260, 0, 32767, - 32767, 397, 32767, 816, -130, 32767, 624, 0, - 0, 32767, 32767, 32767, 485, 0, 32767, 32767, - 32767, 32767, 32767, 0, 32767, 32767, 32767, 1222, - -230, 32767, 797, -538, 32767, 974, 32767, 32767, - 831, 70, -658, 145, 0, 147, 0, 32767, - 1295, 32767, 0, 0, 895, 0, 0, -385, - 491, -287, 32767, -587, 32767, 32767, 32767, 813, - -471, -13, 32767, 32767, 32767, 0, 203, 411, - 470, 0, -546, -179, 146, 0, 0, 32767, - -468, 32767, 0, 0, 32767, 32767, 32767, 211, - 32767, 32767, 0, 32767, 0, 52, 32767, 0, - 32767, 0, 692, 990, 32767, 32767, 32767, 56, - -507, 784, 951, 0, 32767, 0, 697, 32767, - 187, 0, 32767, 32767, 430, 1209, 682, 32767, - 130, 0, -25, 0, -1006, 0, 32767, 214, - 433, 22, 0, -1119, 32767, 285, 32767, 32767, - 32767, 216, 32767, 32767, 32767, 217, 527, 32767, - 32767, 32767, 829, 485, 419, 717, 620, 731, - 32767, 470, 0, -145, -620, 1162, -644, 848, - 287, -632, 32767, 32767, 32767, 32767, 381, 32767, - 510, 511, -554, -2, 32767, 0, 0, 698, - 32767, 32767, 436, 1154, 32767, 463, 32767, 32767, - 627, 517, 32767, 32767, 854, 579, 723, 396, - 110, -42, 354, 32767, 664, 32767, 32767, 0, - 0, 32767, 65, -163, 67, 140, 69, 341, - 70, 71, 402, 73, 623, 544, 624, 417, - -1375, 648, 32767, -26, 904, 0, 548, 0, - 0, 32767, 32767, 855, 32767, 488, -524, 599, - 130, 131, 32767, 32767, 542, -1110, -324, -462, - 32767, -405, -440, 0, 0, 629, 850, 0, - 741, 257, 258, 32767, 32767, 0, 32767, 923, - 0, 32767, 0, 32767, 1559, 32767, 32767, 32767, - 671, 32767, 134, 32767, 32767, -336, -104, 576, - 577, 829, 32767, 32767, 762, 902, 32767, 0, - 32767, 0, 1506, 887, 32767, 636, 601, 2465, - 426, 0, 236, 317, 427, 968, 32767, -975, - -559, -343, 341, 32767, 937, 241, 0, 32767, - 32767, 547, 32767, 32767, 32767, 32767, 32767, 789, - 0, 32767, 32767, 32767, 0, 0, 0, 32767, - -192, 859, 1185, 1153, 69, 32767, 32767, 32767, - -539, 32767, 32767, 0, 32767, 32767, 32767, 32767, - 640, 578, 32767, 32767, -766, 32767, 32767, 32767, - 32767, 1050, -572, 32767, 32767, 32767, 32767, 1268, - 32767, 32767, 32767, 754, 32767, 32767, 1640, 179, - 804, 32767, 32767, 32767, 32767, 0, 684, 943, - 1006, 32767, 32767, 652, 0, 32767, 1041, 32767, - 718, 791, 32767, 274, 697, 32767, 32767, 0, - 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 735, - 0, 32767, 32767, 32767, 275, 358, 688, 32767, - 32767, 32767, 548, -87, 770, 32767, -42, 0, - 551, 32767, 691, 222, 32767, 32767, 32767, 32767, - 0, 1273, 403, -121, 806, 553, 554, 163, - 32767, 32767, 892, 825, 32767, 32767, -490, 32767, - 32767, 32767, 32767, 32767, -109, 744, 910, 32767, - 91, 32767, 32767, 0, 0, 32767, 32767, 32767, - 1521, 50, 701, 32767, 32767, 32767, 32767, 164, - 658, 32767, 288, 0, 32767, 0, 51, 0, - 32767, 32767, 32767, 32767, 555, 1547, 32767, 32767, - 595, 585, 429, 32767, -80, 32767, 1258, 0, - 540, 486, -434, 865, 0, 192, 0, 884, - 0, 0, 0, 175, 555, 0, 32767, 32767, - 0, 32767, -566, 866, 591, 32767, 32767, 32767, - 32767, 32767, 496, 495, -215, 32767, 849, -772, - 32767, 32767, 502, 178, 483, 32767, 912, 793, - 794, 0, 32767, 32767, 32767, -556, 499, 838, - 32767, 32767, -506, 331, 0, 0, -1096, 512, - 880, 0, 774, -338, 649, 32767, 270, 32767, - 32767, -624, 328, 459, 32767, 32767, 32767, 32767, - 329, -201, -835, 813, -879, 560, 0, -212, - -114, 35, -494, 37, 523, 653, 751, -653, - -743, 32767, 1356, 818, 32767, 32767, 856, 0, - 44, 902, 0, 0, 0, 0, 32767, -26, - 526, 795, 456, 32767, 104, -209, -341, 133, - -372, 0, 45, 110, 111, 0, 511, 47, - 114, 32767, 32767, 93, 48, 116, -1031, -279, - 32767, 192, 0, 32767, 453, 415, 0, -190, - 32767, 471, 240, 175, 29, 665, 684, 0, - -11, -95, -344, 32767, 245, 148, 0, 530, - 0, 1185, -615, -712, 693, 784, 32767, 0, - -776, 32767, 32767, -813, 0, 0, 0, 207, - 208, 32767, 674, 32767, 742, -289, 249, 32767, - 520, 929, -50, 781, 0, -778, 32767, 0, - 302, 32767, 720, -465, 0, 32767, 32767, 32767, - 0, 0, 32767, 833, 328, 806, 32767, -403, - 0, 32767, -77, 32767, 0, 441, 930, 32767, - 643, 0, 32767, 1938, 0, 1334, 381, 32767, - 216, 32767, 32767, 0, 32767, 484, 383, 0, - 242, 395, 0, 32767, 32767, 32767, -781, 355, - 356, 32767, 292, 706, 32767, 32767, 32767, 32767, - 32767, -410, 32767, 32767, 782, 32767, 189, 32767, - 32767, 943, 0, -212, 407, 335, 0, 135, - 32767, 616, 0, -497, 0, -67, 853, 32767, - 700, 32767, 0, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, 459, -48, 32767, 58, 0, - -856, 1017, 32767, 59, 916, -731, 32767, 940, - -855, 347, 650, 0, 678, 32767, 0, 32767, - 32767, 530, 32767, 0, -80, 32767, -730, 32767, - 1214, 799, 58, 651, 841, 0, 0, -589, - -1530, -478, 651, 652, 93, 576, -1215, 32767, - 125, 32767, 1279, 32767, 32767, 0, 32767, 0, - -367, 416, -1236, 32767, 418, 32767, 815, 558, - 559, 781, 419, 32767, 739, 32767, 0, 32767, - 128, 570, 1349, -298, -66, 0, 147, -488, - 32767, 590, 189, 274, 524, 32767, 1082, -209, - 32767, 423, 32767, 32767, 975, 573, 32767, 424, - 32767, 32767, 1241, 32767, 32767, 32767, 32767, 32767, - 612, 391, 32767, 0, -803, 1004, -561, 32767, - 32767, 735, 870, 32767, 0, 32767, 32767, -123, - 99, 210, 600, 1294, 109, 1053, 32767, 307, - 834, 32767, 0, 1651, 32767, 644, 32767, 32767, - 0, 32767, -801, 385, 379, 32767, -368, 32767, - 32767, 830, 0, 32767, 32767, 739, 371, 372, - -275, 32767, 32767, 331, -780, 32767, 0, 1229, - -1462, 913, 266, 827, 125, 32767, 32767, 32767, - 393, 32767, 631, -33, -883, -661, -204, 6, - -19, 257, 8, 9, 118, 519, 615, -541, - -893, 0, 32767, 0, 1156, 15, 900, 32767, - 32767, 32767, 32767, 32767, 32767, 1022, 376, 0, - 32767, 32767, -972, 676, 840, -661, 631, 58, - 0, 17, 32767, 0, -799, 82, 0, 32767, - 32767, 680, 32767, 905, 0, 0, 32767, 32767, - 0, 0, 32767, 0, 828, 386, 802, 0, - 146, 0, 148, 32767, -1146, 0, 150, 151, - -743, 153, 154, 32767, 32767, 442, 32767, 743, - 0, 0, 746, 0, 32767, 32767, 32767, 98, - 32767, 157, 0, 696, 0, 32767, 32767, -294, - 32767, 158, 159, 32767, 0, 32767, 160, 32767, - 933, 32767, 32767, -50, 759, 824, 162, 672, - 32767, 356, 0, 356, 32767, 32767, 0, 0, - 656, 692, 253, 254, -374, 102, 256, 32767, - 0, 0, 32767, 32767, 259, 32767, 63, 260, - 510, 261, 32767, 0, 32767, 1061, 32767, 521, - 32767, 32767, 32767, 32767, 32767, 32767, 316, 317, - 846, 0, 32767, -500, 318, 0, 32767, 32767, - 263, 0, 790, 872, 32767, 32767, 32767, 2171, - 264, 32767, 32767, 32767, 32767, 486, 334, 465, - 32767, 466, 32767, 444, 606, 32767, 0, 445, - 320, -317, 0, 520, 322, 718, 32767, 32767, - 32767, 0, 1013, 32767, 32767, 32767, 32767, 32767, - 32767, 611, 32767, 0, 0, 32767, 32767, -120, - 156, 613, 0, 0, 32767, -68, 32767, 622, - 32767, 32767, 32767, 32767, 32767, 455, 32767, 32767, - 32767, 403, 533, 0, -161, 405, 95, 96, - 32767, 97, 32767, 0, 29, 0, 32767, 32767, - 30, 32767, 99, 32767, 32767, 0, 161, 32767, - 97, 0, 32, 32767, 32767, 0, 0, 315, - 32767, 32767, 414, 966, 0, 585, 32767, 32767, - -616, -256, 171, 172, 666, 101, 562, 563, - 32767, 95, 0, 0, 1492, 390, -251, 103, - 32767, 0, 32767, 188, 1487, 32767, 0, 0, - 586, 668, -126, 0, 0, 32767, 32767, 204, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 656, 32767, 32767, - 599, 0, 222, 32767, 0, 1368, -412, 435, - 32767, 936, 32767, -17, 32767, 832, 32767, 437, - 0, -518, 787, 32767, 864, -449, 0, 636, - 713, 206, 592, 572, 0, 483, -139, 32767, - 32767, 180, 818, 32767, 32767, 1304, 0, 32767, - 274, 0, 0, 0, 0, 705, 32767, 32767, - 32767, 0, -272, 0, 502, 503, 319, 0, - 32767, 0, 13, 32767, 32767, 0, 32767, 270, - 737, 0, 32767, 32767, 32767, 901, 32767, 616, - 180, 32767, 721, 353, 32767, 0, 32767, 32767, - -199, 0, 280, 788, 32767, 940, 32767, 51, - 0, 400, 53, 0, 54, -637, 0, -453, - 0, 0, 0, 380, 0, 32767, 504, 0, - 2049, 0, -964, 32767, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 798, 32767, 32767, 32767, 0, - 538, 488, 0, 32767, -528, 57, 819, 32767, - 32767, 1244, 0, 488, 739, 908, 32767, 32767, - 0, 32767, 32767, 0, 55, 533, 0, 32767, - 814, 0, 32767, 458, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 776, 777, 920, 0, - 0, 755, 32767, 0, 32767, 32767, 0, 32767, - 55, -954, 0, 372, 166, 218, 165, 857, - 221, 675, 0, 223, 224, -155, 226, 32767, - 1851, 227, 32767, 32767, 1192, 0, 229, 0, - -72, 0, 865, 0, 0, -330, 0, 683, - 32767, -550, -196, 725, -573, 293, 102, 32767, - -589, 296, 297, 298, 231, -256, 300, 32767, - 32767, 301, 233, 868, 32767, 234, 0, 811, - 1187, 32767, 32767, 0, 32767, 518, 0, 361, - 362, 466, 0, 365, 32767, -179, 366, 367, - 874, 369, 305, 0, 32767, 0, 32767, 0, - 32767, 2000, 1215, 451, 652, 0, 0, 799, - 32767, 32767, 32767 + static const int16 h[1923] = { + -109, -96, 32767, 0, -844, -182, -292, 32767, + 830, 793, 794, 665, 0, -9, 32767, 32767, + 32767, 32767, 32767, 428, 32767, 32767, 32767, 502, + 0, 32767, -230, 144, 356, -76, 0, 243, + 665, 32767, 32767, -1003, 244, 0, 32767, 32767, + 573, 246, 125, 32767, 32767, 32767, 0, 32767, + 32767, 32767, 32767, 0, 245, 32767, 723, 32767, + 0, 889, 32767, 32767, 32767, 0, 32767, 32767, + 0, 173, 157, 1215, 254, 255, -126, 0, + 0, 504, 459, -11, 238, -188, 722, 247, + 260, 32767, -184, -6, 2102, -578, 32767, 32767, + -598, -670, 260, 19, 32767, -472, 32767, 664, + 511, 0, 32767, 345, 291, 0, -370, 176, + 32767, 1017, -139, -519, -30, 0, -24, -23, + 481, -253, -1813, 32767, 0, 935, 32767, 32767, + -443, 32767, 773, 32767, 32767, 32767, -507, 427, + 0, 32767, 899, 32767, 32767, 277, 0, 32767, + 32767, 0, 842, 854, 0, 32767, 936, 621, + -195, 32767, 0, 32767, 707, 268, 32767, 32767, + 435, 32767, 32767, 32767, 0, 267, 88, 72, + 32767, 487, 32767, 32767, 32767, 0, 32767, 32767, + 32767, 32767, 32767, 875, -312, 32767, 483, 875, + 270, 89, 32767, 483, 32767, 32767, 32767, 32767, + 708, 273, 2053, -63, -242, -479, 32767, 352, + 32767, 32767, 0, 560, 544, 32767, 32767, 32767, + 0, 0, 32767, 0, 32767, 32767, 32767, 525, + 274, 32767, 404, 386, 518, 32767, -357, 32767, + -45, 1154, 276, 32767, 149, 0, 277, 714, + 313, 32767, 32767, 32767, 32767, 32767, 841, 460, + 431, 32767, 32767, -49, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 876, 280, 281, 131, 388, + 283, 32767, 1125, 32767, 695, 712, 32767, 0, + 713, 1732, 0, 32767, 0, 231, 32767, 0, + 32767, -755, 32767, 32767, 32767, 435, 32767, 0, + 951, 952, 32767, 32767, 464, 867, 1298, 0, + 660, -55, 0, 292, 663, 118, 661, -722, + 435, 816, 328, 0, 323, 323, -258, -684, + 2114, 0, 302, 0, 32767, 32767, 1607, 32767, + 0, 32767, 32767, 0, 810, 32767, -543, -5, + 515, 32767, 0, 877, 304, 32767, 472, 32767, + 683, -549, 258, 285, -904, 32767, 148, 1202, + 1044, 0, 32767, 32767, 659, 1395, 905, 32767, + 32767, 32767, -626, 32767, 32767, 32767, 32767, 672, + 0, 32767, -139, 32767, 32767, 0, 0, 660, + 1, 32767, -955, -293, 616, 391, 632, -126, + 32767, 32767, 1610, -166, 754, 324, 32767, 32767, + 931, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 0, 32767, 32767, 302, 391, 32767, 32767, + 516, 32767, 32767, 1131, 670, 544, 308, 286, + 0, 0, 32767, 32767, 531, -629, -35, 0, + 6, -63, 485, 0, 0, -486, -58, 0, + 0, 38, 470, -20, 0, 32767, 0, 0, + 956, 32767, 0, 294, -759, 0, 32767, 32767, + -362, 73, 316, 588, 314, 32767, 609, 0, + 318, 32767, 32767, 32767, -759, 1466, -212, 32767, + 1910, 226, 653, 32767, 219, 32767, 32767, 0, + 0, 32767, 1045, -6, -6, 32767, 0, 163, + 0, 0, -9, 879, -369, 32767, -18, 321, + 322, 32767, 32767, -449, 1082, 324, 57, 32767, + -403, 252, 697, 0, 491, 552, 0, 32767, + 32767, 32767, 864, 32767, 0, 32767, 929, -582, + 32767, 32767, 32767, 1521, 32767, 32767, 32767, 212, + 326, -542, 332, 333, 334, -490, 692, 336, + 32767, 337, 338, 31, 0, 714, 348, 34, + 342, 32767, 1602, 32767, 687, 143, 32767, 0, + 32767, 32767, 0, 32767, 196, -21, 32767, 32767, + -4, 32767, 32767, 880, -211, 203, 32767, 1078, + 83, 1661, 32767, 32767, 283, 787, 348, 32767, + 0, -464, 0, 32767, 725, -431, -811, -322, + 7, 32767, -315, 267, 694, -2103, 12, 247, + 13, 692, 32767, -1593, 32767, 15, 32767, 32767, + 830, 0, 623, 354, 32767, 32767, -154, 0, + 264, -712, 32767, 357, 32767, 32767, 220, -242, + 32767, 921, 905, 32767, -1184, 549, 32767, 19, + 319, 32767, 551, 32767, 1307, 0, 32767, 32767, + 32767, 0, 566, 881, 822, 936, 326, 89, + -313, 32767, 250, 0, 359, 360, 32767, 32767, + 32767, 32767, -575, 20, 32767, 98, 23, 32767, + 287, 744, 124, 1027, 32767, 0, 564, 0, + -548, -497, 982, 32767, 32767, 32767, 32767, 32767, + 35, 316, -1859, 343, 364, 786, 0, 32767, + 366, 4, 0, 753, 581, 524, 270, 686, + 0, -382, 32767, -1189, 0, 747, 32767, 363, + 32767, 32767, -1782, 32767, 28, 32767, 677, 452, + 210, 0, 884, 882, -258, 32767, -1099, -222, + 32767, 32767, 32767, 32767, 373, 671, 32767, 311, + 32767, 370, 32767, -831, 101, 32, 35, 36, + -1159, 930, 38, 39, -148, -148, 32767, 32767, + -150, -803, 1185, 675, 32767, -152, 32767, 0, + 633, 467, -279, 827, 32767, 1273, -410, 136, + 32767, 527, 842, 397, 32767, 1149, 376, 45, + 2221, 20, 0, -421, 47, 925, 0, 363, + 368, -384, 0, 32767, -230, 32767, -532, 32767, + 32767, 32767, 0, 32767, 634, 219, -6, 397, + 32767, 32767, 692, 385, 361, 483, 526, 32767, + 0, 32767, 628, 728, 2167, 51, 892, 32767, + -326, -595, 54, 55, 32767, 825, 0, 0, + 933, 32767, 32767, 32767, 828, 32767, 32767, 883, + -144, 32767, 32767, 32767, 933, 0, 0, 209, + 1580, 790, 0, 0, 32767, 32767, 32767, 730, + 731, 32767, 58, 57, 457, 557, 32767, 59, + 60, 0, -1438, 32767, 1016, 32767, 1344, 683, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 558, + 45, 32767, 0, 32767, 0, 0, 843, 0, + 32767, 0, 503, 62, 488, 600, -395, -328, + 69, 566, -355, 1027, -737, -72, -606, 32767, + 74, 32767, 32767, 1144, 32767, -75, 32767, 884, + -144, 32767, 22, 598, 32767, 792, 32767, 32767, + 32767, 32767, 32767, -336, 32767, 32767, 0, 45, + 0, 32767, 658, 637, 78, 95, -962, 0, + 0, 32767, 256, 0, -247, -201, 32767, 32767, + 447, 0, 0, 0, 32767, 445, 806, 860, + -39, 74, 32767, -6, 32767, 529, 32767, 700, + 307, 179, 0, 893, 32767, 835, 0, -29, + 32767, 32767, 32767, 32767, -754, 32767, 32767, 32767, + -702, -227, -55, 0, 517, -196, 32767, 784, + 177, 0, -1082, 597, -166, 797, 32767, 32767, + 613, 32767, 1211, 32767, -283, 126, 32767, 83, + 526, -1584, 533, 172, 950, 0, 0, 32767, + 32767, -1767, -88, 32767, 87, -1289, 773, 953, + 1131, 0, 0, 32767, 1374, 0, 32767, 32767, + 32767, 798, 32767, 0, 1547, 158, 613, 32767, + 32767, -822, 32767, 88, 473, 474, 378, 89, + 940, 659, 352, -270, 0, -1015, 477, 32767, + 901, 91, 1068, 32767, 0, 0, 32767, 32767, + 0, 32767, 461, 404, 32767, 46, -65, 32767, + 32767, 815, 822, 32767, 32767, 32767, 406, 925, + 338, -487, 0, 97, 438, -464, 32767, 98, + 0, 0, 1113, 0, -416, 0, 32767, 0, + -35, 0, 180, 413, 32767, 32767, 0, -219, + 568, 175, 0, 0, 32767, 503, 0, 32767, + 528, 32767, 32767, -464, 733, 140, 106, 101, + 171, 32767, 109, 110, 597, 170, 32767, 113, + 76, 103, 32767, 115, 559, 116, 32767, -213, + 32767, 0, 597, 823, 32767, 801, 32767, 479, + 803, 631, 723, 32767, 538, -394, 468, -200, + 411, 29, 32767, 32767, -1347, 361, 32767, -458, + 655, 32767, 32767, 32767, -791, 0, 32767, 540, + 541, 32767, 32767, -14, 959, 32767, 0, 462, + 32767, 802, 32767, 32767, 846, 734, 32767, 32767, + 735, 32767, 32767, 32767, 32767, 32767, 0, 32767, + 32767, -685, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 44, 32767, 0, 807, 131, 349, 0, + 0, 7, -94, 423, 0, 529, 32767, 32767, + 32767, 286, 0, 32767, -145, 400, 281, 445, + 32767, 122, 32767, -300, 600, 571, 769, 945, + 518, 0, 461, 32767, -254, 32767, -423, -534, + 462, 396, 0, 886, 425, -956, 809, 145, + 573, 810, 0, 401, 0, -1069, 0, 151, + 1011, 0, 0, 81, 32767, -411, 0, -687, + 859, 451, -1447, 132, 32767, 32767, 32767, 32767, + -154, 32, 32767, 32767, 32767, 32767, 0, 32767, + 32767, 32767, 37, 408, 0, 811, 326, 32767, + 0, -374, 32767, -184, 741, -376, 91, 134, + 32767, 486, 135, -40, 579, 373, 32767, 547, + 32767, 32767, 32767, 32767, -259, 873, 0, 0, + 0, 825, -373, 0, 32767, 0, 0, 308, + 340, -373, 32767, 0, 0, 32767, -1259, 32767, + 742, 32767, 643, 139, 144, 349, -79, 147, + 148, 32767, 149, 732, 425, -219, 152, -446, + 556, 143, 32767, 155, 165, -1314, 0, 888, + 439, 32767, 0, 0, 0, 813, 405, 29, + 32767, 6, 0, 0, 743, 32767, 1902, 158, + 159, 32767, 381, 0, -102, 196, 0, 769, + -419, -596, 0, 782, 162, 32767, 32767, -580, + 32767, 32767, 32767, 32767, 1126, 32767, 32767, 412, + 32767, 814, 824, 32767, 32767, 0, 32767, 32767, + 744, 32767, 32767, 746, 0, 1480, 167, 0, + 1189, 32767, 32767, 168, 169, 32767, 0, 32767, + 906, 32767, 32767, 32767, 32767, 32767, 32767, 601, + 32767, 32767, -278, 0, 32767, 1261, 414, 32767, + 32767, 32767, 32767, 375, 378, 589, 644, 750, + 751, 937, 32767, 590, 32767, 591, 32767, 171, + 172, 32767, 32767, 32767, 32767, 1195, 32767, 32767, + 721, 0, 0, -505, -14, 6, 0, 0, + 0, 1058, -718, 99, 0, 372, 327, 32767, + 729, -166, 32767, 0, 173, -939, 175, 592, + 177, 576, 32767, 213, 179, 0, 0, 514, + 620, 32767, 32767, 32767, 32767, 0, 32767, 32767, + 958, -240, 0, -840, 32767, 379, 32767, 0, + 0, 752, 673, -432, 159, -877, 32767, -416, + 32767, 182, -211, 0, 0, 594, 32767, 184, + -1070, 32767, 32767, 32767, 185, 0, 0, 32767, + 710, 32767, 32767, 32767, 32767, 928, 32767, 32767, + 0, 126, 942, 32767, 0, 0, 32767, 867, + 697, -355, 32767, 625, 0, 596, 32767, 597, + -243, 583, 32767, 0, 0, 0, 0, 0, + 584, 650, 0, 32767, 515, 32767, 0, 892, + 0, 0, -271, 274, 32767, 418, 32767, 0, + 32767, 32767, 32767, 440, -1147, 32767, 0, 32767, + 32767, 651, 652, 564, 32767, 32767, 32767, 0, + 32767, 32767, 32767, 32767, 947, -68, 32767, 688, + 32767, 0, 0, 689, 915, 916, 0, 0, + -204, 225, 0, 0, 0, 0, 32767, -275, + 370, 0, 599, -402, 32767, 571, 0, 32767, + 1470, 594, 32767, 772, 773, 1458, 0, 907, + 1048, 32767, 128, 4, 32767, 0, 32767, 1880, + 32767, 32767, 0, 0, 684, 32767, 0, 262, + 32767, 32767, 32767, 32767, 757, 32767, 32767, 0, + 196, 32767, -258, -552, -998, 0, 950, 774, + -35, 32767, 0, 32767, 0, 32767, 15, 32767, + 0, 32767, 0, 27, 198, 760, 32767, 32767, + 1204, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 620, 32767, 32767, 760, 761, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 32767, 32767, 0, 32767, 0, + 1195, 918, 32767, 32767, 32767, 32767, 0, 0, + 32767, 32767, 32767, 32767, 903, 32767, 32767, 763, + 764, 0, 32767, 0, 32767, 32767, 0, 32767, + 833, 32767, 32767, 32767, 1132, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 450, 32767, 32767, 420, + 32767, 32767, 32767, 32767, -68, 2, 0, 0, + 1196, 0, 0, 0, 188, 189, 190, 191, + 192, 600, 0, -632, -43, 196, 89, 489, + 294, 1248, 32767, 1043, 32767, 492, 32767, 32767, + 519, 0, 32767, 863, 32767, 32767, 32767, 0, + 32767, 765, 493, 467, 0, 32767, 32767, 201, + 32767, 432, 849, 32767, 279, 0, 0, 204, + 834, 32767, 0, 32767, 1670, 32767, 0, 32767, + 0, 32767, 32767, 32767, 919, 929, 32767, 0, + 32767, -363, 0, 32767, 32767, 0, 434, -56, + 32767, 436, 0, 349, 0, 207, 208, 437, + 32767, 0, 32767, -694, -408, 32767, 0, 32767, + 210, 206, 0, 653, 32767, 32767, 0, 402, + 1105, 0, 32767, 693, 0, 0, 938, 32767, + 32767, 32767, 438, 541, 131, 440, 871, 32767, + 32767, 0, 32767, 279, 32767, 32767, 287, 212, + 0, 0, 32767, 32767, 367, 32767, 696, 697, + 32767, 0, 0, 0, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 0, -1321, 32767, + 0, 176, 32767, 214, 218, 724, 234, 215, + 222, 32767, 223, -834, 943, 127, 32767, 496, + -100, 217, 0, 394, 32767, 229, 32767, 0, + 0, 17, 421, 415, 447, 0, 32767, 686, + 32767, 32767, 1845, 138, 32767, 32767, 872, 230, + 32767, 601, 851, 471, 232, 603, 32767, 778, + 698, 233, 32767, 699, -439, 32767, 0, 32767, + 32767, 32767, 663, 32767, 32767, 32767, 32767, -298, + 449, 32767, -463, 687, 32767, 32767, 427, 32767, + 0, 0, 0, 0, 0, 236, 193, 826, + 238, 0, 108 }; const unsigned char *k = (const unsigned char *) key; @@ -2962,7 +3004,7 @@ Recomp_hash_func(const void *key) a = a * 257 + c; b = b * 17 + c; } - return h[a % 1883] + h[b % 1883]; + return h[a % 1923] + h[b % 1923]; } /* Hash lookup information for recomposition */ @@ -2970,5 +3012,5 @@ static const pg_unicode_recompinfo UnicodeRecompInfo = { RecompInverseLookup, Recomp_hash_func, - 941 + 961 }; diff --git a/src/include/common/unicode_norm_table.h b/src/include/common/unicode_norm_table.h index 7aff822b7cde2..6c98313599641 100644 --- a/src/include/common/unicode_norm_table.h +++ b/src/include/common/unicode_norm_table.h @@ -36,7 +36,7 @@ typedef struct #define DECOMPOSITION_IS_COMPAT(x) (((x)->dec_size_flags & DECOMP_COMPAT) != 0) /* Table of Unicode codepoints and their decompositions */ -static const pg_unicode_decomposition UnicodeDecompMain[6775] = +static const pg_unicode_decomposition UnicodeDecompMain[6843] = { {0x00A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0020}, {0x00A8, 0, 2 | DECOMP_COMPAT, 0}, @@ -727,6 +727,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x0859, 220, 0, 0}, {0x085A, 220, 0, 0}, {0x085B, 220, 0, 0}, + {0x0897, 230, 0, 0}, {0x0898, 230, 0, 0}, {0x0899, 220, 0, 0}, {0x089A, 220, 0, 0}, @@ -4636,6 +4637,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x10378, 230, 0, 0}, {0x10379, 230, 0, 0}, {0x1037A, 230, 0, 0}, + {0x105C9, 0, 2, 4776}, + {0x105E4, 0, 2, 4778}, {0x10781, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D0}, {0x10782, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02D1}, {0x10783, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00E6}, @@ -4662,18 +4665,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x10799, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AA}, {0x1079A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x02AB}, {0x1079B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026C}, - {0x1079C, 0, 1 | DECOMP_COMPAT, 4776}, + {0x1079C, 0, 1 | DECOMP_COMPAT, 4780}, {0x1079D, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0xA78E}, {0x1079E, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x026E}, - {0x1079F, 0, 1 | DECOMP_COMPAT, 4777}, + {0x1079F, 0, 1 | DECOMP_COMPAT, 4781}, {0x107A0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x028E}, - {0x107A1, 0, 1 | DECOMP_COMPAT, 4778}, + {0x107A1, 0, 1 | DECOMP_COMPAT, 4782}, {0x107A2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x00F8}, {0x107A3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0276}, {0x107A4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0277}, {0x107A5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0071}, {0x107A6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027A}, - {0x107A7, 0, 1 | DECOMP_COMPAT, 4779}, + {0x107A7, 0, 1 | DECOMP_COMPAT, 4783}, {0x107A8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027D}, {0x107A9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x027E}, {0x107AA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0280}, @@ -4690,8 +4693,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x107B6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C0}, {0x107B7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C1}, {0x107B8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x01C2}, - {0x107B9, 0, 1 | DECOMP_COMPAT, 4780}, - {0x107BA, 0, 1 | DECOMP_COMPAT, 4781}, + {0x107B9, 0, 1 | DECOMP_COMPAT, 4784}, + {0x107BA, 0, 1 | DECOMP_COMPAT, 4785}, {0x10A0D, 220, 0, 0}, {0x10A0F, 230, 0, 0}, {0x10A38, 230, 0, 0}, @@ -4704,6 +4707,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x10D25, 230, 0, 0}, {0x10D26, 230, 0, 0}, {0x10D27, 230, 0, 0}, + {0x10D69, 230, 0, 0}, + {0x10D6A, 230, 0, 0}, + {0x10D6B, 230, 0, 0}, + {0x10D6C, 230, 0, 0}, + {0x10D6D, 230, 0, 0}, {0x10EAB, 230, 0, 0}, {0x10EAC, 230, 0, 0}, {0x10EFD, 220, 0, 0}, @@ -4727,16 +4735,16 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x11046, 9, 0, 0}, {0x11070, 9, 0, 0}, {0x1107F, 9, 0, 0}, - {0x1109A, 0, 2, 4782}, - {0x1109C, 0, 2, 4784}, - {0x110AB, 0, 2, 4786}, + {0x1109A, 0, 2, 4786}, + {0x1109C, 0, 2, 4788}, + {0x110AB, 0, 2, 4790}, {0x110B9, 9, 0, 0}, {0x110BA, 7, 0, 0}, {0x11100, 230, 0, 0}, {0x11101, 230, 0, 0}, {0x11102, 230, 0, 0}, - {0x1112E, 0, 2, 4788}, - {0x1112F, 0, 2, 4790}, + {0x1112E, 0, 2, 4792}, + {0x1112F, 0, 2, 4794}, {0x11133, 9, 0, 0}, {0x11134, 9, 0, 0}, {0x11173, 7, 0, 0}, @@ -4748,8 +4756,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x112EA, 9, 0, 0}, {0x1133B, 7, 0, 0}, {0x1133C, 7, 0, 0}, - {0x1134B, 0, 2, 4792}, - {0x1134C, 0, 2, 4794}, + {0x1134B, 0, 2, 4796}, + {0x1134C, 0, 2, 4798}, {0x1134D, 9, 0, 0}, {0x11366, 230, 0, 0}, {0x11367, 230, 0, 0}, @@ -4763,16 +4771,26 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x11372, 230, 0, 0}, {0x11373, 230, 0, 0}, {0x11374, 230, 0, 0}, + {0x11383, 0, 2, 4800}, + {0x11385, 0, 2, 4802}, + {0x1138E, 0, 2, 4804}, + {0x11391, 0, 2, 4806}, + {0x113C5, 0, 2, 4808}, + {0x113C7, 0, 2, 4810}, + {0x113C8, 0, 2, 4812}, + {0x113CE, 9, 0, 0}, + {0x113CF, 9, 0, 0}, + {0x113D0, 9, 0, 0}, {0x11442, 9, 0, 0}, {0x11446, 7, 0, 0}, {0x1145E, 230, 0, 0}, - {0x114BB, 0, 2, 4796}, - {0x114BC, 0, 2, 4798}, - {0x114BE, 0, 2, 4800}, + {0x114BB, 0, 2, 4814}, + {0x114BC, 0, 2, 4816}, + {0x114BE, 0, 2, 4818}, {0x114C2, 9, 0, 0}, {0x114C3, 7, 0, 0}, - {0x115BA, 0, 2, 4802}, - {0x115BB, 0, 2, 4804}, + {0x115BA, 0, 2, 4820}, + {0x115BB, 0, 2, 4822}, {0x115BF, 9, 0, 0}, {0x115C0, 7, 0, 0}, {0x1163F, 9, 0, 0}, @@ -4781,7 +4799,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1172B, 9, 0, 0}, {0x11839, 9, 0, 0}, {0x1183A, 7, 0, 0}, - {0x11938, 0, 2, 4806}, + {0x11938, 0, 2, 4824}, {0x1193D, 9, 0, 0}, {0x1193E, 9, 0, 0}, {0x11943, 7, 0, 0}, @@ -4796,6 +4814,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x11D97, 9, 0, 0}, {0x11F41, 9, 0, 0}, {0x11F42, 9, 0, 0}, + {0x16121, 0, 2, 4826}, + {0x16122, 0, 2, 4828}, + {0x16123, 0, 2, 4830}, + {0x16124, 0, 2, 4832}, + {0x16125, 0, 2, 4834}, + {0x16126, 0, 2, 4836}, + {0x16127, 0, 2, 4838}, + {0x16128, 0, 2, 4840}, + {0x1612F, 9, 0, 0}, {0x16AF0, 1, 0, 0}, {0x16AF1, 1, 0, 0}, {0x16AF2, 1, 0, 0}, @@ -4808,16 +4835,55 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x16B34, 230, 0, 0}, {0x16B35, 230, 0, 0}, {0x16B36, 230, 0, 0}, + {0x16D68, 0, 2, 4842}, + {0x16D69, 0, 2, 4844}, + {0x16D6A, 0, 2, 4846}, {0x16FF0, 6, 0, 0}, {0x16FF1, 6, 0, 0}, {0x1BC9E, 1, 0, 0}, - {0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4808}, /* in exclusion list */ - {0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4810}, /* in exclusion list */ - {0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4812}, /* in exclusion list */ - {0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4814}, /* in exclusion list */ - {0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4816}, /* in exclusion list */ - {0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4818}, /* in exclusion list */ - {0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4820}, /* in exclusion list */ + {0x1CCD6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041}, + {0x1CCD7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042}, + {0x1CCD8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043}, + {0x1CCD9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0044}, + {0x1CCDA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0045}, + {0x1CCDB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0046}, + {0x1CCDC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0047}, + {0x1CCDD, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0048}, + {0x1CCDE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0049}, + {0x1CCDF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004A}, + {0x1CCE0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004B}, + {0x1CCE1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004C}, + {0x1CCE2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004D}, + {0x1CCE3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004E}, + {0x1CCE4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x004F}, + {0x1CCE5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0050}, + {0x1CCE6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0051}, + {0x1CCE7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052}, + {0x1CCE8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0053}, + {0x1CCE9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0054}, + {0x1CCEA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0055}, + {0x1CCEB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0056}, + {0x1CCEC, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0057}, + {0x1CCED, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058}, + {0x1CCEE, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059}, + {0x1CCEF, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A}, + {0x1CCF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030}, + {0x1CCF1, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0031}, + {0x1CCF2, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0032}, + {0x1CCF3, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0033}, + {0x1CCF4, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0034}, + {0x1CCF5, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0035}, + {0x1CCF6, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0036}, + {0x1CCF7, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0037}, + {0x1CCF8, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0038}, + {0x1CCF9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0039}, + {0x1D15E, 0, 2 | DECOMP_NO_COMPOSE, 4848}, /* in exclusion list */ + {0x1D15F, 0, 2 | DECOMP_NO_COMPOSE, 4850}, /* in exclusion list */ + {0x1D160, 0, 2 | DECOMP_NO_COMPOSE, 4852}, /* in exclusion list */ + {0x1D161, 0, 2 | DECOMP_NO_COMPOSE, 4854}, /* in exclusion list */ + {0x1D162, 0, 2 | DECOMP_NO_COMPOSE, 4856}, /* in exclusion list */ + {0x1D163, 0, 2 | DECOMP_NO_COMPOSE, 4858}, /* in exclusion list */ + {0x1D164, 0, 2 | DECOMP_NO_COMPOSE, 4860}, /* in exclusion list */ {0x1D165, 216, 0, 0}, {0x1D166, 216, 0, 0}, {0x1D167, 1, 0, 0}, @@ -4848,12 +4914,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1D1AB, 230, 0, 0}, {0x1D1AC, 230, 0, 0}, {0x1D1AD, 230, 0, 0}, - {0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4822}, /* in exclusion list */ - {0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4824}, /* in exclusion list */ - {0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4826}, /* in exclusion list */ - {0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4828}, /* in exclusion list */ - {0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4830}, /* in exclusion list */ - {0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4832}, /* in exclusion list */ + {0x1D1BB, 0, 2 | DECOMP_NO_COMPOSE, 4862}, /* in exclusion list */ + {0x1D1BC, 0, 2 | DECOMP_NO_COMPOSE, 4864}, /* in exclusion list */ + {0x1D1BD, 0, 2 | DECOMP_NO_COMPOSE, 4866}, /* in exclusion list */ + {0x1D1BE, 0, 2 | DECOMP_NO_COMPOSE, 4868}, /* in exclusion list */ + {0x1D1BF, 0, 2 | DECOMP_NO_COMPOSE, 4870}, /* in exclusion list */ + {0x1D1C0, 0, 2 | DECOMP_NO_COMPOSE, 4872}, /* in exclusion list */ {0x1D242, 230, 0, 0}, {0x1D243, 230, 0, 0}, {0x1D244, 230, 0, 0}, @@ -5970,6 +6036,8 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1E4ED, 232, 0, 0}, {0x1E4EE, 220, 0, 0}, {0x1E4EF, 230, 0, 0}, + {0x1E5EE, 230, 0, 0}, + {0x1E5EF, 220, 0, 0}, {0x1E8D0, 220, 0, 0}, {0x1E8D1, 220, 0, 0}, {0x1E8D2, 220, 0, 0}, @@ -6125,48 +6193,48 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1EEB9, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0636}, {0x1EEBA, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0638}, {0x1EEBB, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x063A}, - {0x1F100, 0, 2 | DECOMP_COMPAT, 4834}, - {0x1F101, 0, 2 | DECOMP_COMPAT, 4836}, - {0x1F102, 0, 2 | DECOMP_COMPAT, 4838}, - {0x1F103, 0, 2 | DECOMP_COMPAT, 4840}, - {0x1F104, 0, 2 | DECOMP_COMPAT, 4842}, - {0x1F105, 0, 2 | DECOMP_COMPAT, 4844}, - {0x1F106, 0, 2 | DECOMP_COMPAT, 4846}, - {0x1F107, 0, 2 | DECOMP_COMPAT, 4848}, - {0x1F108, 0, 2 | DECOMP_COMPAT, 4850}, - {0x1F109, 0, 2 | DECOMP_COMPAT, 4852}, - {0x1F10A, 0, 2 | DECOMP_COMPAT, 4854}, - {0x1F110, 0, 3 | DECOMP_COMPAT, 4856}, - {0x1F111, 0, 3 | DECOMP_COMPAT, 4859}, - {0x1F112, 0, 3 | DECOMP_COMPAT, 4862}, - {0x1F113, 0, 3 | DECOMP_COMPAT, 4865}, - {0x1F114, 0, 3 | DECOMP_COMPAT, 4868}, - {0x1F115, 0, 3 | DECOMP_COMPAT, 4871}, - {0x1F116, 0, 3 | DECOMP_COMPAT, 4874}, - {0x1F117, 0, 3 | DECOMP_COMPAT, 4877}, - {0x1F118, 0, 3 | DECOMP_COMPAT, 4880}, - {0x1F119, 0, 3 | DECOMP_COMPAT, 4883}, - {0x1F11A, 0, 3 | DECOMP_COMPAT, 4886}, - {0x1F11B, 0, 3 | DECOMP_COMPAT, 4889}, - {0x1F11C, 0, 3 | DECOMP_COMPAT, 4892}, - {0x1F11D, 0, 3 | DECOMP_COMPAT, 4895}, - {0x1F11E, 0, 3 | DECOMP_COMPAT, 4898}, - {0x1F11F, 0, 3 | DECOMP_COMPAT, 4901}, - {0x1F120, 0, 3 | DECOMP_COMPAT, 4904}, - {0x1F121, 0, 3 | DECOMP_COMPAT, 4907}, - {0x1F122, 0, 3 | DECOMP_COMPAT, 4910}, - {0x1F123, 0, 3 | DECOMP_COMPAT, 4913}, - {0x1F124, 0, 3 | DECOMP_COMPAT, 4916}, - {0x1F125, 0, 3 | DECOMP_COMPAT, 4919}, - {0x1F126, 0, 3 | DECOMP_COMPAT, 4922}, - {0x1F127, 0, 3 | DECOMP_COMPAT, 4925}, - {0x1F128, 0, 3 | DECOMP_COMPAT, 4928}, - {0x1F129, 0, 3 | DECOMP_COMPAT, 4931}, - {0x1F12A, 0, 3 | DECOMP_COMPAT, 4934}, + {0x1F100, 0, 2 | DECOMP_COMPAT, 4874}, + {0x1F101, 0, 2 | DECOMP_COMPAT, 4876}, + {0x1F102, 0, 2 | DECOMP_COMPAT, 4878}, + {0x1F103, 0, 2 | DECOMP_COMPAT, 4880}, + {0x1F104, 0, 2 | DECOMP_COMPAT, 4882}, + {0x1F105, 0, 2 | DECOMP_COMPAT, 4884}, + {0x1F106, 0, 2 | DECOMP_COMPAT, 4886}, + {0x1F107, 0, 2 | DECOMP_COMPAT, 4888}, + {0x1F108, 0, 2 | DECOMP_COMPAT, 4890}, + {0x1F109, 0, 2 | DECOMP_COMPAT, 4892}, + {0x1F10A, 0, 2 | DECOMP_COMPAT, 4894}, + {0x1F110, 0, 3 | DECOMP_COMPAT, 4896}, + {0x1F111, 0, 3 | DECOMP_COMPAT, 4899}, + {0x1F112, 0, 3 | DECOMP_COMPAT, 4902}, + {0x1F113, 0, 3 | DECOMP_COMPAT, 4905}, + {0x1F114, 0, 3 | DECOMP_COMPAT, 4908}, + {0x1F115, 0, 3 | DECOMP_COMPAT, 4911}, + {0x1F116, 0, 3 | DECOMP_COMPAT, 4914}, + {0x1F117, 0, 3 | DECOMP_COMPAT, 4917}, + {0x1F118, 0, 3 | DECOMP_COMPAT, 4920}, + {0x1F119, 0, 3 | DECOMP_COMPAT, 4923}, + {0x1F11A, 0, 3 | DECOMP_COMPAT, 4926}, + {0x1F11B, 0, 3 | DECOMP_COMPAT, 4929}, + {0x1F11C, 0, 3 | DECOMP_COMPAT, 4932}, + {0x1F11D, 0, 3 | DECOMP_COMPAT, 4935}, + {0x1F11E, 0, 3 | DECOMP_COMPAT, 4938}, + {0x1F11F, 0, 3 | DECOMP_COMPAT, 4941}, + {0x1F120, 0, 3 | DECOMP_COMPAT, 4944}, + {0x1F121, 0, 3 | DECOMP_COMPAT, 4947}, + {0x1F122, 0, 3 | DECOMP_COMPAT, 4950}, + {0x1F123, 0, 3 | DECOMP_COMPAT, 4953}, + {0x1F124, 0, 3 | DECOMP_COMPAT, 4956}, + {0x1F125, 0, 3 | DECOMP_COMPAT, 4959}, + {0x1F126, 0, 3 | DECOMP_COMPAT, 4962}, + {0x1F127, 0, 3 | DECOMP_COMPAT, 4965}, + {0x1F128, 0, 3 | DECOMP_COMPAT, 4968}, + {0x1F129, 0, 3 | DECOMP_COMPAT, 4971}, + {0x1F12A, 0, 3 | DECOMP_COMPAT, 4974}, {0x1F12B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043}, {0x1F12C, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0052}, - {0x1F12D, 0, 2 | DECOMP_COMPAT, 4937}, - {0x1F12E, 0, 2 | DECOMP_COMPAT, 4939}, + {0x1F12D, 0, 2 | DECOMP_COMPAT, 4977}, + {0x1F12E, 0, 2 | DECOMP_COMPAT, 4979}, {0x1F130, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0041}, {0x1F131, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0042}, {0x1F132, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0043}, @@ -6193,18 +6261,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1F147, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0058}, {0x1F148, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0059}, {0x1F149, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x005A}, - {0x1F14A, 0, 2 | DECOMP_COMPAT, 4941}, - {0x1F14B, 0, 2 | DECOMP_COMPAT, 4943}, - {0x1F14C, 0, 2 | DECOMP_COMPAT, 4945}, - {0x1F14D, 0, 2 | DECOMP_COMPAT, 4947}, - {0x1F14E, 0, 3 | DECOMP_COMPAT, 4949}, - {0x1F14F, 0, 2 | DECOMP_COMPAT, 4952}, - {0x1F16A, 0, 2 | DECOMP_COMPAT, 4954}, - {0x1F16B, 0, 2 | DECOMP_COMPAT, 4956}, - {0x1F16C, 0, 2 | DECOMP_COMPAT, 4958}, - {0x1F190, 0, 2 | DECOMP_COMPAT, 4960}, - {0x1F200, 0, 2 | DECOMP_COMPAT, 4962}, - {0x1F201, 0, 2 | DECOMP_COMPAT, 4964}, + {0x1F14A, 0, 2 | DECOMP_COMPAT, 4981}, + {0x1F14B, 0, 2 | DECOMP_COMPAT, 4983}, + {0x1F14C, 0, 2 | DECOMP_COMPAT, 4985}, + {0x1F14D, 0, 2 | DECOMP_COMPAT, 4987}, + {0x1F14E, 0, 3 | DECOMP_COMPAT, 4989}, + {0x1F14F, 0, 2 | DECOMP_COMPAT, 4992}, + {0x1F16A, 0, 2 | DECOMP_COMPAT, 4994}, + {0x1F16B, 0, 2 | DECOMP_COMPAT, 4996}, + {0x1F16C, 0, 2 | DECOMP_COMPAT, 4998}, + {0x1F190, 0, 2 | DECOMP_COMPAT, 5000}, + {0x1F200, 0, 2 | DECOMP_COMPAT, 5002}, + {0x1F201, 0, 2 | DECOMP_COMPAT, 5004}, {0x1F202, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x30B5}, {0x1F210, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x624B}, {0x1F211, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5B57}, @@ -6250,15 +6318,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x1F239, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5272}, {0x1F23A, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x55B6}, {0x1F23B, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x914D}, - {0x1F240, 0, 3 | DECOMP_COMPAT, 4966}, - {0x1F241, 0, 3 | DECOMP_COMPAT, 4969}, - {0x1F242, 0, 3 | DECOMP_COMPAT, 4972}, - {0x1F243, 0, 3 | DECOMP_COMPAT, 4975}, - {0x1F244, 0, 3 | DECOMP_COMPAT, 4978}, - {0x1F245, 0, 3 | DECOMP_COMPAT, 4981}, - {0x1F246, 0, 3 | DECOMP_COMPAT, 4984}, - {0x1F247, 0, 3 | DECOMP_COMPAT, 4987}, - {0x1F248, 0, 3 | DECOMP_COMPAT, 4990}, + {0x1F240, 0, 3 | DECOMP_COMPAT, 5006}, + {0x1F241, 0, 3 | DECOMP_COMPAT, 5009}, + {0x1F242, 0, 3 | DECOMP_COMPAT, 5012}, + {0x1F243, 0, 3 | DECOMP_COMPAT, 5015}, + {0x1F244, 0, 3 | DECOMP_COMPAT, 5018}, + {0x1F245, 0, 3 | DECOMP_COMPAT, 5021}, + {0x1F246, 0, 3 | DECOMP_COMPAT, 5024}, + {0x1F247, 0, 3 | DECOMP_COMPAT, 5027}, + {0x1F248, 0, 3 | DECOMP_COMPAT, 5030}, {0x1F250, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x5F97}, {0x1F251, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x53EF}, {0x1FBF0, 0, 1 | DECOMP_COMPAT | DECOMP_INLINE, 0x0030}, @@ -6274,7 +6342,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F800, 0, 1 | DECOMP_INLINE, 0x4E3D}, {0x2F801, 0, 1 | DECOMP_INLINE, 0x4E38}, {0x2F802, 0, 1 | DECOMP_INLINE, 0x4E41}, - {0x2F803, 0, 1, 4993}, + {0x2F803, 0, 1, 5033}, {0x2F804, 0, 1 | DECOMP_INLINE, 0x4F60}, {0x2F805, 0, 1 | DECOMP_INLINE, 0x4FAE}, {0x2F806, 0, 1 | DECOMP_INLINE, 0x4FBB}, @@ -6284,22 +6352,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F80A, 0, 1 | DECOMP_INLINE, 0x50E7}, {0x2F80B, 0, 1 | DECOMP_INLINE, 0x50CF}, {0x2F80C, 0, 1 | DECOMP_INLINE, 0x349E}, - {0x2F80D, 0, 1, 4994}, + {0x2F80D, 0, 1, 5034}, {0x2F80E, 0, 1 | DECOMP_INLINE, 0x514D}, {0x2F80F, 0, 1 | DECOMP_INLINE, 0x5154}, {0x2F810, 0, 1 | DECOMP_INLINE, 0x5164}, {0x2F811, 0, 1 | DECOMP_INLINE, 0x5177}, - {0x2F812, 0, 1, 4995}, + {0x2F812, 0, 1, 5035}, {0x2F813, 0, 1 | DECOMP_INLINE, 0x34B9}, {0x2F814, 0, 1 | DECOMP_INLINE, 0x5167}, {0x2F815, 0, 1 | DECOMP_INLINE, 0x518D}, - {0x2F816, 0, 1, 4996}, + {0x2F816, 0, 1, 5036}, {0x2F817, 0, 1 | DECOMP_INLINE, 0x5197}, {0x2F818, 0, 1 | DECOMP_INLINE, 0x51A4}, {0x2F819, 0, 1 | DECOMP_INLINE, 0x4ECC}, {0x2F81A, 0, 1 | DECOMP_INLINE, 0x51AC}, {0x2F81B, 0, 1 | DECOMP_INLINE, 0x51B5}, - {0x2F81C, 0, 1, 4997}, + {0x2F81C, 0, 1, 5037}, {0x2F81D, 0, 1 | DECOMP_INLINE, 0x51F5}, {0x2F81E, 0, 1 | DECOMP_INLINE, 0x5203}, {0x2F81F, 0, 1 | DECOMP_INLINE, 0x34DF}, @@ -6323,11 +6391,11 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F831, 0, 1 | DECOMP_INLINE, 0x537F}, {0x2F832, 0, 1 | DECOMP_INLINE, 0x537F}, {0x2F833, 0, 1 | DECOMP_INLINE, 0x537F}, - {0x2F834, 0, 1, 4998}, + {0x2F834, 0, 1, 5038}, {0x2F835, 0, 1 | DECOMP_INLINE, 0x7070}, {0x2F836, 0, 1 | DECOMP_INLINE, 0x53CA}, {0x2F837, 0, 1 | DECOMP_INLINE, 0x53DF}, - {0x2F838, 0, 1, 4999}, + {0x2F838, 0, 1, 5039}, {0x2F839, 0, 1 | DECOMP_INLINE, 0x53EB}, {0x2F83A, 0, 1 | DECOMP_INLINE, 0x53F1}, {0x2F83B, 0, 1 | DECOMP_INLINE, 0x5406}, @@ -6360,15 +6428,15 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F856, 0, 1 | DECOMP_INLINE, 0x5832}, {0x2F857, 0, 1 | DECOMP_INLINE, 0x5831}, {0x2F858, 0, 1 | DECOMP_INLINE, 0x58AC}, - {0x2F859, 0, 1, 5000}, + {0x2F859, 0, 1, 5040}, {0x2F85A, 0, 1 | DECOMP_INLINE, 0x58F2}, {0x2F85B, 0, 1 | DECOMP_INLINE, 0x58F7}, {0x2F85C, 0, 1 | DECOMP_INLINE, 0x5906}, {0x2F85D, 0, 1 | DECOMP_INLINE, 0x591A}, {0x2F85E, 0, 1 | DECOMP_INLINE, 0x5922}, {0x2F85F, 0, 1 | DECOMP_INLINE, 0x5962}, - {0x2F860, 0, 1, 5001}, - {0x2F861, 0, 1, 5002}, + {0x2F860, 0, 1, 5041}, + {0x2F861, 0, 1, 5042}, {0x2F862, 0, 1 | DECOMP_INLINE, 0x59EC}, {0x2F863, 0, 1 | DECOMP_INLINE, 0x5A1B}, {0x2F864, 0, 1 | DECOMP_INLINE, 0x5A27}, @@ -6379,12 +6447,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F869, 0, 1 | DECOMP_INLINE, 0x5B08}, {0x2F86A, 0, 1 | DECOMP_INLINE, 0x5B3E}, {0x2F86B, 0, 1 | DECOMP_INLINE, 0x5B3E}, - {0x2F86C, 0, 1, 5003}, + {0x2F86C, 0, 1, 5043}, {0x2F86D, 0, 1 | DECOMP_INLINE, 0x5BC3}, {0x2F86E, 0, 1 | DECOMP_INLINE, 0x5BD8}, {0x2F86F, 0, 1 | DECOMP_INLINE, 0x5BE7}, {0x2F870, 0, 1 | DECOMP_INLINE, 0x5BF3}, - {0x2F871, 0, 1, 5004}, + {0x2F871, 0, 1, 5044}, {0x2F872, 0, 1 | DECOMP_INLINE, 0x5BFF}, {0x2F873, 0, 1 | DECOMP_INLINE, 0x5C06}, {0x2F874, 0, 1 | DECOMP_INLINE, 0x5F53}, @@ -6394,9 +6462,9 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F878, 0, 1 | DECOMP_INLINE, 0x5C6E}, {0x2F879, 0, 1 | DECOMP_INLINE, 0x5CC0}, {0x2F87A, 0, 1 | DECOMP_INLINE, 0x5C8D}, - {0x2F87B, 0, 1, 5005}, + {0x2F87B, 0, 1, 5045}, {0x2F87C, 0, 1 | DECOMP_INLINE, 0x5D43}, - {0x2F87D, 0, 1, 5006}, + {0x2F87D, 0, 1, 5046}, {0x2F87E, 0, 1 | DECOMP_INLINE, 0x5D6E}, {0x2F87F, 0, 1 | DECOMP_INLINE, 0x5D6B}, {0x2F880, 0, 1 | DECOMP_INLINE, 0x5D7C}, @@ -6408,22 +6476,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F886, 0, 1 | DECOMP_INLINE, 0x5E3D}, {0x2F887, 0, 1 | DECOMP_INLINE, 0x5E69}, {0x2F888, 0, 1 | DECOMP_INLINE, 0x3862}, - {0x2F889, 0, 1, 5007}, + {0x2F889, 0, 1, 5047}, {0x2F88A, 0, 1 | DECOMP_INLINE, 0x387C}, {0x2F88B, 0, 1 | DECOMP_INLINE, 0x5EB0}, {0x2F88C, 0, 1 | DECOMP_INLINE, 0x5EB3}, {0x2F88D, 0, 1 | DECOMP_INLINE, 0x5EB6}, {0x2F88E, 0, 1 | DECOMP_INLINE, 0x5ECA}, - {0x2F88F, 0, 1, 5008}, + {0x2F88F, 0, 1, 5048}, {0x2F890, 0, 1 | DECOMP_INLINE, 0x5EFE}, - {0x2F891, 0, 1, 5009}, - {0x2F892, 0, 1, 5010}, + {0x2F891, 0, 1, 5049}, + {0x2F892, 0, 1, 5050}, {0x2F893, 0, 1 | DECOMP_INLINE, 0x8201}, {0x2F894, 0, 1 | DECOMP_INLINE, 0x5F22}, {0x2F895, 0, 1 | DECOMP_INLINE, 0x5F22}, {0x2F896, 0, 1 | DECOMP_INLINE, 0x38C7}, - {0x2F897, 0, 1, 5011}, - {0x2F898, 0, 1, 5012}, + {0x2F897, 0, 1, 5051}, + {0x2F898, 0, 1, 5052}, {0x2F899, 0, 1 | DECOMP_INLINE, 0x5F62}, {0x2F89A, 0, 1 | DECOMP_INLINE, 0x5F6B}, {0x2F89B, 0, 1 | DECOMP_INLINE, 0x38E3}, @@ -6435,7 +6503,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F8A1, 0, 1 | DECOMP_INLINE, 0x393A}, {0x2F8A2, 0, 1 | DECOMP_INLINE, 0x391C}, {0x2F8A3, 0, 1 | DECOMP_INLINE, 0x6094}, - {0x2F8A4, 0, 1, 5013}, + {0x2F8A4, 0, 1, 5053}, {0x2F8A5, 0, 1 | DECOMP_INLINE, 0x60C7}, {0x2F8A6, 0, 1 | DECOMP_INLINE, 0x6148}, {0x2F8A7, 0, 1 | DECOMP_INLINE, 0x614C}, @@ -6455,13 +6523,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F8B5, 0, 1 | DECOMP_INLINE, 0x62B1}, {0x2F8B6, 0, 1 | DECOMP_INLINE, 0x62D4}, {0x2F8B7, 0, 1 | DECOMP_INLINE, 0x6350}, - {0x2F8B8, 0, 1, 5014}, + {0x2F8B8, 0, 1, 5054}, {0x2F8B9, 0, 1 | DECOMP_INLINE, 0x633D}, {0x2F8BA, 0, 1 | DECOMP_INLINE, 0x62FC}, {0x2F8BB, 0, 1 | DECOMP_INLINE, 0x6368}, {0x2F8BC, 0, 1 | DECOMP_INLINE, 0x6383}, {0x2F8BD, 0, 1 | DECOMP_INLINE, 0x63E4}, - {0x2F8BE, 0, 1, 5015}, + {0x2F8BE, 0, 1, 5055}, {0x2F8BF, 0, 1 | DECOMP_INLINE, 0x6422}, {0x2F8C0, 0, 1 | DECOMP_INLINE, 0x63C5}, {0x2F8C1, 0, 1 | DECOMP_INLINE, 0x63A9}, @@ -6473,7 +6541,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F8C7, 0, 1 | DECOMP_INLINE, 0x3A6C}, {0x2F8C8, 0, 1 | DECOMP_INLINE, 0x654F}, {0x2F8C9, 0, 1 | DECOMP_INLINE, 0x656C}, - {0x2F8CA, 0, 1, 5016}, + {0x2F8CA, 0, 1, 5056}, {0x2F8CB, 0, 1 | DECOMP_INLINE, 0x65E3}, {0x2F8CC, 0, 1 | DECOMP_INLINE, 0x66F8}, {0x2F8CD, 0, 1 | DECOMP_INLINE, 0x6649}, @@ -6492,13 +6560,13 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F8DA, 0, 1 | DECOMP_INLINE, 0x6721}, {0x2F8DB, 0, 1 | DECOMP_INLINE, 0x675E}, {0x2F8DC, 0, 1 | DECOMP_INLINE, 0x6753}, - {0x2F8DD, 0, 1, 5017}, + {0x2F8DD, 0, 1, 5057}, {0x2F8DE, 0, 1 | DECOMP_INLINE, 0x3B49}, {0x2F8DF, 0, 1 | DECOMP_INLINE, 0x67FA}, {0x2F8E0, 0, 1 | DECOMP_INLINE, 0x6785}, {0x2F8E1, 0, 1 | DECOMP_INLINE, 0x6852}, {0x2F8E2, 0, 1 | DECOMP_INLINE, 0x6885}, - {0x2F8E3, 0, 1, 5018}, + {0x2F8E3, 0, 1, 5058}, {0x2F8E4, 0, 1 | DECOMP_INLINE, 0x688E}, {0x2F8E5, 0, 1 | DECOMP_INLINE, 0x681F}, {0x2F8E6, 0, 1 | DECOMP_INLINE, 0x6914}, @@ -6507,22 +6575,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F8E9, 0, 1 | DECOMP_INLINE, 0x69A3}, {0x2F8EA, 0, 1 | DECOMP_INLINE, 0x69EA}, {0x2F8EB, 0, 1 | DECOMP_INLINE, 0x6AA8}, - {0x2F8EC, 0, 1, 5019}, + {0x2F8EC, 0, 1, 5059}, {0x2F8ED, 0, 1 | DECOMP_INLINE, 0x6ADB}, {0x2F8EE, 0, 1 | DECOMP_INLINE, 0x3C18}, {0x2F8EF, 0, 1 | DECOMP_INLINE, 0x6B21}, - {0x2F8F0, 0, 1, 5020}, + {0x2F8F0, 0, 1, 5060}, {0x2F8F1, 0, 1 | DECOMP_INLINE, 0x6B54}, {0x2F8F2, 0, 1 | DECOMP_INLINE, 0x3C4E}, {0x2F8F3, 0, 1 | DECOMP_INLINE, 0x6B72}, {0x2F8F4, 0, 1 | DECOMP_INLINE, 0x6B9F}, {0x2F8F5, 0, 1 | DECOMP_INLINE, 0x6BBA}, {0x2F8F6, 0, 1 | DECOMP_INLINE, 0x6BBB}, - {0x2F8F7, 0, 1, 5021}, - {0x2F8F8, 0, 1, 5022}, - {0x2F8F9, 0, 1, 5023}, + {0x2F8F7, 0, 1, 5061}, + {0x2F8F8, 0, 1, 5062}, + {0x2F8F9, 0, 1, 5063}, {0x2F8FA, 0, 1 | DECOMP_INLINE, 0x6C4E}, - {0x2F8FB, 0, 1, 5024}, + {0x2F8FB, 0, 1, 5064}, {0x2F8FC, 0, 1 | DECOMP_INLINE, 0x6CBF}, {0x2F8FD, 0, 1 | DECOMP_INLINE, 0x6CCD}, {0x2F8FE, 0, 1 | DECOMP_INLINE, 0x6C67}, @@ -6533,18 +6601,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F903, 0, 1 | DECOMP_INLINE, 0x6D69}, {0x2F904, 0, 1 | DECOMP_INLINE, 0x6D78}, {0x2F905, 0, 1 | DECOMP_INLINE, 0x6D85}, - {0x2F906, 0, 1, 5025}, + {0x2F906, 0, 1, 5065}, {0x2F907, 0, 1 | DECOMP_INLINE, 0x6D34}, {0x2F908, 0, 1 | DECOMP_INLINE, 0x6E2F}, {0x2F909, 0, 1 | DECOMP_INLINE, 0x6E6E}, {0x2F90A, 0, 1 | DECOMP_INLINE, 0x3D33}, {0x2F90B, 0, 1 | DECOMP_INLINE, 0x6ECB}, {0x2F90C, 0, 1 | DECOMP_INLINE, 0x6EC7}, - {0x2F90D, 0, 1, 5026}, + {0x2F90D, 0, 1, 5066}, {0x2F90E, 0, 1 | DECOMP_INLINE, 0x6DF9}, {0x2F90F, 0, 1 | DECOMP_INLINE, 0x6F6E}, - {0x2F910, 0, 1, 5027}, - {0x2F911, 0, 1, 5028}, + {0x2F910, 0, 1, 5067}, + {0x2F911, 0, 1, 5068}, {0x2F912, 0, 1 | DECOMP_INLINE, 0x6FC6}, {0x2F913, 0, 1 | DECOMP_INLINE, 0x7039}, {0x2F914, 0, 1 | DECOMP_INLINE, 0x701E}, @@ -6554,19 +6622,19 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F918, 0, 1 | DECOMP_INLINE, 0x707D}, {0x2F919, 0, 1 | DECOMP_INLINE, 0x7077}, {0x2F91A, 0, 1 | DECOMP_INLINE, 0x70AD}, - {0x2F91B, 0, 1, 5029}, + {0x2F91B, 0, 1, 5069}, {0x2F91C, 0, 1 | DECOMP_INLINE, 0x7145}, - {0x2F91D, 0, 1, 5030}, + {0x2F91D, 0, 1, 5070}, {0x2F91E, 0, 1 | DECOMP_INLINE, 0x719C}, - {0x2F91F, 0, 1, 5031}, + {0x2F91F, 0, 1, 5071}, {0x2F920, 0, 1 | DECOMP_INLINE, 0x7228}, {0x2F921, 0, 1 | DECOMP_INLINE, 0x7235}, {0x2F922, 0, 1 | DECOMP_INLINE, 0x7250}, - {0x2F923, 0, 1, 5032}, + {0x2F923, 0, 1, 5072}, {0x2F924, 0, 1 | DECOMP_INLINE, 0x7280}, {0x2F925, 0, 1 | DECOMP_INLINE, 0x7295}, - {0x2F926, 0, 1, 5033}, - {0x2F927, 0, 1, 5034}, + {0x2F926, 0, 1, 5073}, + {0x2F927, 0, 1, 5074}, {0x2F928, 0, 1 | DECOMP_INLINE, 0x737A}, {0x2F929, 0, 1 | DECOMP_INLINE, 0x738B}, {0x2F92A, 0, 1 | DECOMP_INLINE, 0x3EAC}, @@ -6580,22 +6648,22 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F932, 0, 1 | DECOMP_INLINE, 0x74CA}, {0x2F933, 0, 1 | DECOMP_INLINE, 0x3F1B}, {0x2F934, 0, 1 | DECOMP_INLINE, 0x7524}, - {0x2F935, 0, 1, 5035}, + {0x2F935, 0, 1, 5075}, {0x2F936, 0, 1 | DECOMP_INLINE, 0x753E}, - {0x2F937, 0, 1, 5036}, + {0x2F937, 0, 1, 5076}, {0x2F938, 0, 1 | DECOMP_INLINE, 0x7570}, - {0x2F939, 0, 1, 5037}, + {0x2F939, 0, 1, 5077}, {0x2F93A, 0, 1 | DECOMP_INLINE, 0x7610}, - {0x2F93B, 0, 1, 5038}, - {0x2F93C, 0, 1, 5039}, - {0x2F93D, 0, 1, 5040}, + {0x2F93B, 0, 1, 5078}, + {0x2F93C, 0, 1, 5079}, + {0x2F93D, 0, 1, 5080}, {0x2F93E, 0, 1 | DECOMP_INLINE, 0x3FFC}, {0x2F93F, 0, 1 | DECOMP_INLINE, 0x4008}, {0x2F940, 0, 1 | DECOMP_INLINE, 0x76F4}, - {0x2F941, 0, 1, 5041}, - {0x2F942, 0, 1, 5042}, - {0x2F943, 0, 1, 5043}, - {0x2F944, 0, 1, 5044}, + {0x2F941, 0, 1, 5081}, + {0x2F942, 0, 1, 5082}, + {0x2F943, 0, 1, 5083}, + {0x2F944, 0, 1, 5084}, {0x2F945, 0, 1 | DECOMP_INLINE, 0x771E}, {0x2F946, 0, 1 | DECOMP_INLINE, 0x771F}, {0x2F947, 0, 1 | DECOMP_INLINE, 0x771F}, @@ -6604,68 +6672,68 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F94A, 0, 1 | DECOMP_INLINE, 0x778B}, {0x2F94B, 0, 1 | DECOMP_INLINE, 0x4046}, {0x2F94C, 0, 1 | DECOMP_INLINE, 0x4096}, - {0x2F94D, 0, 1, 5045}, + {0x2F94D, 0, 1, 5085}, {0x2F94E, 0, 1 | DECOMP_INLINE, 0x784E}, {0x2F94F, 0, 1 | DECOMP_INLINE, 0x788C}, {0x2F950, 0, 1 | DECOMP_INLINE, 0x78CC}, {0x2F951, 0, 1 | DECOMP_INLINE, 0x40E3}, - {0x2F952, 0, 1, 5046}, + {0x2F952, 0, 1, 5086}, {0x2F953, 0, 1 | DECOMP_INLINE, 0x7956}, - {0x2F954, 0, 1, 5047}, - {0x2F955, 0, 1, 5048}, + {0x2F954, 0, 1, 5087}, + {0x2F955, 0, 1, 5088}, {0x2F956, 0, 1 | DECOMP_INLINE, 0x798F}, {0x2F957, 0, 1 | DECOMP_INLINE, 0x79EB}, {0x2F958, 0, 1 | DECOMP_INLINE, 0x412F}, {0x2F959, 0, 1 | DECOMP_INLINE, 0x7A40}, {0x2F95A, 0, 1 | DECOMP_INLINE, 0x7A4A}, {0x2F95B, 0, 1 | DECOMP_INLINE, 0x7A4F}, - {0x2F95C, 0, 1, 5049}, - {0x2F95D, 0, 1, 5050}, - {0x2F95E, 0, 1, 5051}, + {0x2F95C, 0, 1, 5089}, + {0x2F95D, 0, 1, 5090}, + {0x2F95E, 0, 1, 5091}, {0x2F95F, 0, 1 | DECOMP_INLINE, 0x7AEE}, {0x2F960, 0, 1 | DECOMP_INLINE, 0x4202}, - {0x2F961, 0, 1, 5052}, + {0x2F961, 0, 1, 5092}, {0x2F962, 0, 1 | DECOMP_INLINE, 0x7BC6}, {0x2F963, 0, 1 | DECOMP_INLINE, 0x7BC9}, {0x2F964, 0, 1 | DECOMP_INLINE, 0x4227}, - {0x2F965, 0, 1, 5053}, + {0x2F965, 0, 1, 5093}, {0x2F966, 0, 1 | DECOMP_INLINE, 0x7CD2}, {0x2F967, 0, 1 | DECOMP_INLINE, 0x42A0}, {0x2F968, 0, 1 | DECOMP_INLINE, 0x7CE8}, {0x2F969, 0, 1 | DECOMP_INLINE, 0x7CE3}, {0x2F96A, 0, 1 | DECOMP_INLINE, 0x7D00}, - {0x2F96B, 0, 1, 5054}, + {0x2F96B, 0, 1, 5094}, {0x2F96C, 0, 1 | DECOMP_INLINE, 0x7D63}, {0x2F96D, 0, 1 | DECOMP_INLINE, 0x4301}, {0x2F96E, 0, 1 | DECOMP_INLINE, 0x7DC7}, {0x2F96F, 0, 1 | DECOMP_INLINE, 0x7E02}, {0x2F970, 0, 1 | DECOMP_INLINE, 0x7E45}, {0x2F971, 0, 1 | DECOMP_INLINE, 0x4334}, - {0x2F972, 0, 1, 5055}, - {0x2F973, 0, 1, 5056}, + {0x2F972, 0, 1, 5095}, + {0x2F973, 0, 1, 5096}, {0x2F974, 0, 1 | DECOMP_INLINE, 0x4359}, - {0x2F975, 0, 1, 5057}, + {0x2F975, 0, 1, 5097}, {0x2F976, 0, 1 | DECOMP_INLINE, 0x7F7A}, - {0x2F977, 0, 1, 5058}, + {0x2F977, 0, 1, 5098}, {0x2F978, 0, 1 | DECOMP_INLINE, 0x7F95}, {0x2F979, 0, 1 | DECOMP_INLINE, 0x7FFA}, {0x2F97A, 0, 1 | DECOMP_INLINE, 0x8005}, - {0x2F97B, 0, 1, 5059}, - {0x2F97C, 0, 1, 5060}, + {0x2F97B, 0, 1, 5099}, + {0x2F97C, 0, 1, 5100}, {0x2F97D, 0, 1 | DECOMP_INLINE, 0x8060}, - {0x2F97E, 0, 1, 5061}, + {0x2F97E, 0, 1, 5101}, {0x2F97F, 0, 1 | DECOMP_INLINE, 0x8070}, - {0x2F980, 0, 1, 5062}, + {0x2F980, 0, 1, 5102}, {0x2F981, 0, 1 | DECOMP_INLINE, 0x43D5}, {0x2F982, 0, 1 | DECOMP_INLINE, 0x80B2}, {0x2F983, 0, 1 | DECOMP_INLINE, 0x8103}, {0x2F984, 0, 1 | DECOMP_INLINE, 0x440B}, {0x2F985, 0, 1 | DECOMP_INLINE, 0x813E}, {0x2F986, 0, 1 | DECOMP_INLINE, 0x5AB5}, - {0x2F987, 0, 1, 5063}, - {0x2F988, 0, 1, 5064}, - {0x2F989, 0, 1, 5065}, - {0x2F98A, 0, 1, 5066}, + {0x2F987, 0, 1, 5103}, + {0x2F988, 0, 1, 5104}, + {0x2F989, 0, 1, 5105}, + {0x2F98A, 0, 1, 5106}, {0x2F98B, 0, 1 | DECOMP_INLINE, 0x8201}, {0x2F98C, 0, 1 | DECOMP_INLINE, 0x8204}, {0x2F98D, 0, 1 | DECOMP_INLINE, 0x8F9E}, @@ -6678,7 +6746,7 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F994, 0, 1 | DECOMP_INLINE, 0x82B3}, {0x2F995, 0, 1 | DECOMP_INLINE, 0x82BD}, {0x2F996, 0, 1 | DECOMP_INLINE, 0x82E6}, - {0x2F997, 0, 1, 5067}, + {0x2F997, 0, 1, 5107}, {0x2F998, 0, 1 | DECOMP_INLINE, 0x82E5}, {0x2F999, 0, 1 | DECOMP_INLINE, 0x831D}, {0x2F99A, 0, 1 | DECOMP_INLINE, 0x8363}, @@ -6691,20 +6759,20 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F9A1, 0, 1 | DECOMP_INLINE, 0x83CA}, {0x2F9A2, 0, 1 | DECOMP_INLINE, 0x83CC}, {0x2F9A3, 0, 1 | DECOMP_INLINE, 0x83DC}, - {0x2F9A4, 0, 1, 5068}, - {0x2F9A5, 0, 1, 5069}, - {0x2F9A6, 0, 1, 5070}, + {0x2F9A4, 0, 1, 5108}, + {0x2F9A5, 0, 1, 5109}, + {0x2F9A6, 0, 1, 5110}, {0x2F9A7, 0, 1 | DECOMP_INLINE, 0x452B}, {0x2F9A8, 0, 1 | DECOMP_INLINE, 0x84F1}, {0x2F9A9, 0, 1 | DECOMP_INLINE, 0x84F3}, {0x2F9AA, 0, 1 | DECOMP_INLINE, 0x8516}, - {0x2F9AB, 0, 1, 5071}, + {0x2F9AB, 0, 1, 5111}, {0x2F9AC, 0, 1 | DECOMP_INLINE, 0x8564}, - {0x2F9AD, 0, 1, 5072}, + {0x2F9AD, 0, 1, 5112}, {0x2F9AE, 0, 1 | DECOMP_INLINE, 0x455D}, {0x2F9AF, 0, 1 | DECOMP_INLINE, 0x4561}, - {0x2F9B0, 0, 1, 5073}, - {0x2F9B1, 0, 1, 5074}, + {0x2F9B0, 0, 1, 5113}, + {0x2F9B1, 0, 1, 5114}, {0x2F9B2, 0, 1 | DECOMP_INLINE, 0x456B}, {0x2F9B3, 0, 1 | DECOMP_INLINE, 0x8650}, {0x2F9B4, 0, 1 | DECOMP_INLINE, 0x865C}, @@ -6724,39 +6792,39 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F9C2, 0, 1 | DECOMP_INLINE, 0x45F9}, {0x2F9C3, 0, 1 | DECOMP_INLINE, 0x8860}, {0x2F9C4, 0, 1 | DECOMP_INLINE, 0x8863}, - {0x2F9C5, 0, 1, 5075}, + {0x2F9C5, 0, 1, 5115}, {0x2F9C6, 0, 1 | DECOMP_INLINE, 0x88D7}, {0x2F9C7, 0, 1 | DECOMP_INLINE, 0x88DE}, {0x2F9C8, 0, 1 | DECOMP_INLINE, 0x4635}, {0x2F9C9, 0, 1 | DECOMP_INLINE, 0x88FA}, {0x2F9CA, 0, 1 | DECOMP_INLINE, 0x34BB}, - {0x2F9CB, 0, 1, 5076}, - {0x2F9CC, 0, 1, 5077}, + {0x2F9CB, 0, 1, 5116}, + {0x2F9CC, 0, 1, 5117}, {0x2F9CD, 0, 1 | DECOMP_INLINE, 0x46BE}, {0x2F9CE, 0, 1 | DECOMP_INLINE, 0x46C7}, {0x2F9CF, 0, 1 | DECOMP_INLINE, 0x8AA0}, {0x2F9D0, 0, 1 | DECOMP_INLINE, 0x8AED}, {0x2F9D1, 0, 1 | DECOMP_INLINE, 0x8B8A}, {0x2F9D2, 0, 1 | DECOMP_INLINE, 0x8C55}, - {0x2F9D3, 0, 1, 5078}, + {0x2F9D3, 0, 1, 5118}, {0x2F9D4, 0, 1 | DECOMP_INLINE, 0x8CAB}, {0x2F9D5, 0, 1 | DECOMP_INLINE, 0x8CC1}, {0x2F9D6, 0, 1 | DECOMP_INLINE, 0x8D1B}, {0x2F9D7, 0, 1 | DECOMP_INLINE, 0x8D77}, - {0x2F9D8, 0, 1, 5079}, - {0x2F9D9, 0, 1, 5080}, + {0x2F9D8, 0, 1, 5119}, + {0x2F9D9, 0, 1, 5120}, {0x2F9DA, 0, 1 | DECOMP_INLINE, 0x8DCB}, {0x2F9DB, 0, 1 | DECOMP_INLINE, 0x8DBC}, {0x2F9DC, 0, 1 | DECOMP_INLINE, 0x8DF0}, - {0x2F9DD, 0, 1, 5081}, + {0x2F9DD, 0, 1, 5121}, {0x2F9DE, 0, 1 | DECOMP_INLINE, 0x8ED4}, {0x2F9DF, 0, 1 | DECOMP_INLINE, 0x8F38}, - {0x2F9E0, 0, 1, 5082}, - {0x2F9E1, 0, 1, 5083}, + {0x2F9E0, 0, 1, 5122}, + {0x2F9E1, 0, 1, 5123}, {0x2F9E2, 0, 1 | DECOMP_INLINE, 0x9094}, {0x2F9E3, 0, 1 | DECOMP_INLINE, 0x90F1}, {0x2F9E4, 0, 1 | DECOMP_INLINE, 0x9111}, - {0x2F9E5, 0, 1, 5084}, + {0x2F9E5, 0, 1, 5124}, {0x2F9E6, 0, 1 | DECOMP_INLINE, 0x911B}, {0x2F9E7, 0, 1 | DECOMP_INLINE, 0x9238}, {0x2F9E8, 0, 1 | DECOMP_INLINE, 0x92D7}, @@ -6764,27 +6832,27 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2F9EA, 0, 1 | DECOMP_INLINE, 0x927C}, {0x2F9EB, 0, 1 | DECOMP_INLINE, 0x93F9}, {0x2F9EC, 0, 1 | DECOMP_INLINE, 0x9415}, - {0x2F9ED, 0, 1, 5085}, + {0x2F9ED, 0, 1, 5125}, {0x2F9EE, 0, 1 | DECOMP_INLINE, 0x958B}, {0x2F9EF, 0, 1 | DECOMP_INLINE, 0x4995}, {0x2F9F0, 0, 1 | DECOMP_INLINE, 0x95B7}, - {0x2F9F1, 0, 1, 5086}, + {0x2F9F1, 0, 1, 5126}, {0x2F9F2, 0, 1 | DECOMP_INLINE, 0x49E6}, {0x2F9F3, 0, 1 | DECOMP_INLINE, 0x96C3}, {0x2F9F4, 0, 1 | DECOMP_INLINE, 0x5DB2}, {0x2F9F5, 0, 1 | DECOMP_INLINE, 0x9723}, - {0x2F9F6, 0, 1, 5087}, - {0x2F9F7, 0, 1, 5088}, + {0x2F9F6, 0, 1, 5127}, + {0x2F9F7, 0, 1, 5128}, {0x2F9F8, 0, 1 | DECOMP_INLINE, 0x4A6E}, {0x2F9F9, 0, 1 | DECOMP_INLINE, 0x4A76}, {0x2F9FA, 0, 1 | DECOMP_INLINE, 0x97E0}, - {0x2F9FB, 0, 1, 5089}, + {0x2F9FB, 0, 1, 5129}, {0x2F9FC, 0, 1 | DECOMP_INLINE, 0x4AB2}, - {0x2F9FD, 0, 1, 5090}, + {0x2F9FD, 0, 1, 5130}, {0x2F9FE, 0, 1 | DECOMP_INLINE, 0x980B}, {0x2F9FF, 0, 1 | DECOMP_INLINE, 0x980B}, {0x2FA00, 0, 1 | DECOMP_INLINE, 0x9829}, - {0x2FA01, 0, 1, 5091}, + {0x2FA01, 0, 1, 5131}, {0x2FA02, 0, 1 | DECOMP_INLINE, 0x98E2}, {0x2FA03, 0, 1 | DECOMP_INLINE, 0x4B33}, {0x2FA04, 0, 1 | DECOMP_INLINE, 0x9929}, @@ -6792,18 +6860,18 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2FA06, 0, 1 | DECOMP_INLINE, 0x99C2}, {0x2FA07, 0, 1 | DECOMP_INLINE, 0x99FE}, {0x2FA08, 0, 1 | DECOMP_INLINE, 0x4BCE}, - {0x2FA09, 0, 1, 5092}, + {0x2FA09, 0, 1, 5132}, {0x2FA0A, 0, 1 | DECOMP_INLINE, 0x9B12}, {0x2FA0B, 0, 1 | DECOMP_INLINE, 0x9C40}, {0x2FA0C, 0, 1 | DECOMP_INLINE, 0x9CFD}, {0x2FA0D, 0, 1 | DECOMP_INLINE, 0x4CCE}, {0x2FA0E, 0, 1 | DECOMP_INLINE, 0x4CED}, {0x2FA0F, 0, 1 | DECOMP_INLINE, 0x9D67}, - {0x2FA10, 0, 1, 5093}, + {0x2FA10, 0, 1, 5133}, {0x2FA11, 0, 1 | DECOMP_INLINE, 0x4CF8}, - {0x2FA12, 0, 1, 5094}, - {0x2FA13, 0, 1, 5095}, - {0x2FA14, 0, 1, 5096}, + {0x2FA12, 0, 1, 5134}, + {0x2FA13, 0, 1, 5135}, + {0x2FA14, 0, 1, 5136}, {0x2FA15, 0, 1 | DECOMP_INLINE, 0x9EBB}, {0x2FA16, 0, 1 | DECOMP_INLINE, 0x4D56}, {0x2FA17, 0, 1 | DECOMP_INLINE, 0x9EF9}, @@ -6812,12 +6880,12 @@ static const pg_unicode_decomposition UnicodeDecompMain[6775] = {0x2FA1A, 0, 1 | DECOMP_INLINE, 0x9F0F}, {0x2FA1B, 0, 1 | DECOMP_INLINE, 0x9F16}, {0x2FA1C, 0, 1 | DECOMP_INLINE, 0x9F3B}, - {0x2FA1D, 0, 1, 5097} + {0x2FA1D, 0, 1, 5137} }; /* codepoints array */ -static const uint32 UnicodeDecomp_codepoints[5098] = +static const uint32 UnicodeDecomp_codepoints[5138] = { /* 0 */ 0x0020, 0x0308, /* 2 */ 0x0020, 0x0304, @@ -8913,202 +8981,222 @@ static const uint32 UnicodeDecomp_codepoints[5098] = /* 4770 */ 0x0644, 0x0625, /* 4772 */ 0x0644, 0x0627, /* 4774 */ 0x0644, 0x0627, - /* 4776 */ 0x1DF04, - /* 4777 */ 0x1DF05, - /* 4778 */ 0x1DF06, - /* 4779 */ 0x1DF08, - /* 4780 */ 0x1DF0A, - /* 4781 */ 0x1DF1E, - /* 4782 */ 0x11099, 0x110BA, - /* 4784 */ 0x1109B, 0x110BA, - /* 4786 */ 0x110A5, 0x110BA, - /* 4788 */ 0x11131, 0x11127, - /* 4790 */ 0x11132, 0x11127, - /* 4792 */ 0x11347, 0x1133E, - /* 4794 */ 0x11347, 0x11357, - /* 4796 */ 0x114B9, 0x114BA, - /* 4798 */ 0x114B9, 0x114B0, - /* 4800 */ 0x114B9, 0x114BD, - /* 4802 */ 0x115B8, 0x115AF, - /* 4804 */ 0x115B9, 0x115AF, - /* 4806 */ 0x11935, 0x11930, - /* 4808 */ 0x1D157, 0x1D165, - /* 4810 */ 0x1D158, 0x1D165, - /* 4812 */ 0x1D15F, 0x1D16E, - /* 4814 */ 0x1D15F, 0x1D16F, - /* 4816 */ 0x1D15F, 0x1D170, - /* 4818 */ 0x1D15F, 0x1D171, - /* 4820 */ 0x1D15F, 0x1D172, - /* 4822 */ 0x1D1B9, 0x1D165, - /* 4824 */ 0x1D1BA, 0x1D165, - /* 4826 */ 0x1D1BB, 0x1D16E, - /* 4828 */ 0x1D1BC, 0x1D16E, - /* 4830 */ 0x1D1BB, 0x1D16F, - /* 4832 */ 0x1D1BC, 0x1D16F, - /* 4834 */ 0x0030, 0x002E, - /* 4836 */ 0x0030, 0x002C, - /* 4838 */ 0x0031, 0x002C, - /* 4840 */ 0x0032, 0x002C, - /* 4842 */ 0x0033, 0x002C, - /* 4844 */ 0x0034, 0x002C, - /* 4846 */ 0x0035, 0x002C, - /* 4848 */ 0x0036, 0x002C, - /* 4850 */ 0x0037, 0x002C, - /* 4852 */ 0x0038, 0x002C, - /* 4854 */ 0x0039, 0x002C, - /* 4856 */ 0x0028, 0x0041, 0x0029, - /* 4859 */ 0x0028, 0x0042, 0x0029, - /* 4862 */ 0x0028, 0x0043, 0x0029, - /* 4865 */ 0x0028, 0x0044, 0x0029, - /* 4868 */ 0x0028, 0x0045, 0x0029, - /* 4871 */ 0x0028, 0x0046, 0x0029, - /* 4874 */ 0x0028, 0x0047, 0x0029, - /* 4877 */ 0x0028, 0x0048, 0x0029, - /* 4880 */ 0x0028, 0x0049, 0x0029, - /* 4883 */ 0x0028, 0x004A, 0x0029, - /* 4886 */ 0x0028, 0x004B, 0x0029, - /* 4889 */ 0x0028, 0x004C, 0x0029, - /* 4892 */ 0x0028, 0x004D, 0x0029, - /* 4895 */ 0x0028, 0x004E, 0x0029, - /* 4898 */ 0x0028, 0x004F, 0x0029, - /* 4901 */ 0x0028, 0x0050, 0x0029, - /* 4904 */ 0x0028, 0x0051, 0x0029, - /* 4907 */ 0x0028, 0x0052, 0x0029, - /* 4910 */ 0x0028, 0x0053, 0x0029, - /* 4913 */ 0x0028, 0x0054, 0x0029, - /* 4916 */ 0x0028, 0x0055, 0x0029, - /* 4919 */ 0x0028, 0x0056, 0x0029, - /* 4922 */ 0x0028, 0x0057, 0x0029, - /* 4925 */ 0x0028, 0x0058, 0x0029, - /* 4928 */ 0x0028, 0x0059, 0x0029, - /* 4931 */ 0x0028, 0x005A, 0x0029, - /* 4934 */ 0x3014, 0x0053, 0x3015, - /* 4937 */ 0x0043, 0x0044, - /* 4939 */ 0x0057, 0x005A, - /* 4941 */ 0x0048, 0x0056, - /* 4943 */ 0x004D, 0x0056, - /* 4945 */ 0x0053, 0x0044, - /* 4947 */ 0x0053, 0x0053, - /* 4949 */ 0x0050, 0x0050, 0x0056, - /* 4952 */ 0x0057, 0x0043, - /* 4954 */ 0x004D, 0x0043, - /* 4956 */ 0x004D, 0x0044, - /* 4958 */ 0x004D, 0x0052, - /* 4960 */ 0x0044, 0x004A, - /* 4962 */ 0x307B, 0x304B, - /* 4964 */ 0x30B3, 0x30B3, - /* 4966 */ 0x3014, 0x672C, 0x3015, - /* 4969 */ 0x3014, 0x4E09, 0x3015, - /* 4972 */ 0x3014, 0x4E8C, 0x3015, - /* 4975 */ 0x3014, 0x5B89, 0x3015, - /* 4978 */ 0x3014, 0x70B9, 0x3015, - /* 4981 */ 0x3014, 0x6253, 0x3015, - /* 4984 */ 0x3014, 0x76D7, 0x3015, - /* 4987 */ 0x3014, 0x52DD, 0x3015, - /* 4990 */ 0x3014, 0x6557, 0x3015, - /* 4993 */ 0x20122, - /* 4994 */ 0x2063A, - /* 4995 */ 0x2051C, - /* 4996 */ 0x2054B, - /* 4997 */ 0x291DF, - /* 4998 */ 0x20A2C, - /* 4999 */ 0x20B63, - /* 5000 */ 0x214E4, - /* 5001 */ 0x216A8, - /* 5002 */ 0x216EA, - /* 5003 */ 0x219C8, - /* 5004 */ 0x21B18, - /* 5005 */ 0x21DE4, - /* 5006 */ 0x21DE6, - /* 5007 */ 0x22183, - /* 5008 */ 0x2A392, - /* 5009 */ 0x22331, - /* 5010 */ 0x22331, - /* 5011 */ 0x232B8, - /* 5012 */ 0x261DA, - /* 5013 */ 0x226D4, - /* 5014 */ 0x22B0C, - /* 5015 */ 0x22BF1, - /* 5016 */ 0x2300A, - /* 5017 */ 0x233C3, - /* 5018 */ 0x2346D, - /* 5019 */ 0x236A3, - /* 5020 */ 0x238A7, - /* 5021 */ 0x23A8D, - /* 5022 */ 0x21D0B, - /* 5023 */ 0x23AFA, - /* 5024 */ 0x23CBC, - /* 5025 */ 0x23D1E, - /* 5026 */ 0x23ED1, - /* 5027 */ 0x23F5E, - /* 5028 */ 0x23F8E, - /* 5029 */ 0x20525, - /* 5030 */ 0x24263, - /* 5031 */ 0x243AB, - /* 5032 */ 0x24608, - /* 5033 */ 0x24735, - /* 5034 */ 0x24814, - /* 5035 */ 0x24C36, - /* 5036 */ 0x24C92, - /* 5037 */ 0x2219F, - /* 5038 */ 0x24FA1, - /* 5039 */ 0x24FB8, - /* 5040 */ 0x25044, - /* 5041 */ 0x250F3, - /* 5042 */ 0x250F2, - /* 5043 */ 0x25119, - /* 5044 */ 0x25133, - /* 5045 */ 0x2541D, - /* 5046 */ 0x25626, - /* 5047 */ 0x2569A, - /* 5048 */ 0x256C5, - /* 5049 */ 0x2597C, - /* 5050 */ 0x25AA7, - /* 5051 */ 0x25AA7, - /* 5052 */ 0x25BAB, - /* 5053 */ 0x25C80, - /* 5054 */ 0x25F86, - /* 5055 */ 0x26228, - /* 5056 */ 0x26247, - /* 5057 */ 0x262D9, - /* 5058 */ 0x2633E, - /* 5059 */ 0x264DA, - /* 5060 */ 0x26523, - /* 5061 */ 0x265A8, - /* 5062 */ 0x2335F, - /* 5063 */ 0x267A7, - /* 5064 */ 0x267B5, - /* 5065 */ 0x23393, - /* 5066 */ 0x2339C, - /* 5067 */ 0x26B3C, - /* 5068 */ 0x26C36, - /* 5069 */ 0x26D6B, - /* 5070 */ 0x26CD5, - /* 5071 */ 0x273CA, - /* 5072 */ 0x26F2C, - /* 5073 */ 0x26FB1, - /* 5074 */ 0x270D2, - /* 5075 */ 0x27667, - /* 5076 */ 0x278AE, - /* 5077 */ 0x27966, - /* 5078 */ 0x27CA8, - /* 5079 */ 0x27F2F, - /* 5080 */ 0x20804, - /* 5081 */ 0x208DE, - /* 5082 */ 0x285D2, - /* 5083 */ 0x285ED, - /* 5084 */ 0x2872E, - /* 5085 */ 0x28BFA, - /* 5086 */ 0x28D77, - /* 5087 */ 0x29145, - /* 5088 */ 0x2921A, - /* 5089 */ 0x2940A, - /* 5090 */ 0x29496, - /* 5091 */ 0x295B6, - /* 5092 */ 0x29B30, - /* 5093 */ 0x2A0CE, - /* 5094 */ 0x2A105, - /* 5095 */ 0x2A20E, - /* 5096 */ 0x2A291, - /* 5097 */ 0x2A600 + /* 4776 */ 0x105D2, 0x0307, + /* 4778 */ 0x105DA, 0x0307, + /* 4780 */ 0x1DF04, + /* 4781 */ 0x1DF05, + /* 4782 */ 0x1DF06, + /* 4783 */ 0x1DF08, + /* 4784 */ 0x1DF0A, + /* 4785 */ 0x1DF1E, + /* 4786 */ 0x11099, 0x110BA, + /* 4788 */ 0x1109B, 0x110BA, + /* 4790 */ 0x110A5, 0x110BA, + /* 4792 */ 0x11131, 0x11127, + /* 4794 */ 0x11132, 0x11127, + /* 4796 */ 0x11347, 0x1133E, + /* 4798 */ 0x11347, 0x11357, + /* 4800 */ 0x11382, 0x113C9, + /* 4802 */ 0x11384, 0x113BB, + /* 4804 */ 0x1138B, 0x113C2, + /* 4806 */ 0x11390, 0x113C9, + /* 4808 */ 0x113C2, 0x113C2, + /* 4810 */ 0x113C2, 0x113B8, + /* 4812 */ 0x113C2, 0x113C9, + /* 4814 */ 0x114B9, 0x114BA, + /* 4816 */ 0x114B9, 0x114B0, + /* 4818 */ 0x114B9, 0x114BD, + /* 4820 */ 0x115B8, 0x115AF, + /* 4822 */ 0x115B9, 0x115AF, + /* 4824 */ 0x11935, 0x11930, + /* 4826 */ 0x1611E, 0x1611E, + /* 4828 */ 0x1611E, 0x16129, + /* 4830 */ 0x1611E, 0x1611F, + /* 4832 */ 0x16129, 0x1611F, + /* 4834 */ 0x1611E, 0x16120, + /* 4836 */ 0x16121, 0x1611F, + /* 4838 */ 0x16122, 0x1611F, + /* 4840 */ 0x16121, 0x16120, + /* 4842 */ 0x16D67, 0x16D67, + /* 4844 */ 0x16D63, 0x16D67, + /* 4846 */ 0x16D69, 0x16D67, + /* 4848 */ 0x1D157, 0x1D165, + /* 4850 */ 0x1D158, 0x1D165, + /* 4852 */ 0x1D15F, 0x1D16E, + /* 4854 */ 0x1D15F, 0x1D16F, + /* 4856 */ 0x1D15F, 0x1D170, + /* 4858 */ 0x1D15F, 0x1D171, + /* 4860 */ 0x1D15F, 0x1D172, + /* 4862 */ 0x1D1B9, 0x1D165, + /* 4864 */ 0x1D1BA, 0x1D165, + /* 4866 */ 0x1D1BB, 0x1D16E, + /* 4868 */ 0x1D1BC, 0x1D16E, + /* 4870 */ 0x1D1BB, 0x1D16F, + /* 4872 */ 0x1D1BC, 0x1D16F, + /* 4874 */ 0x0030, 0x002E, + /* 4876 */ 0x0030, 0x002C, + /* 4878 */ 0x0031, 0x002C, + /* 4880 */ 0x0032, 0x002C, + /* 4882 */ 0x0033, 0x002C, + /* 4884 */ 0x0034, 0x002C, + /* 4886 */ 0x0035, 0x002C, + /* 4888 */ 0x0036, 0x002C, + /* 4890 */ 0x0037, 0x002C, + /* 4892 */ 0x0038, 0x002C, + /* 4894 */ 0x0039, 0x002C, + /* 4896 */ 0x0028, 0x0041, 0x0029, + /* 4899 */ 0x0028, 0x0042, 0x0029, + /* 4902 */ 0x0028, 0x0043, 0x0029, + /* 4905 */ 0x0028, 0x0044, 0x0029, + /* 4908 */ 0x0028, 0x0045, 0x0029, + /* 4911 */ 0x0028, 0x0046, 0x0029, + /* 4914 */ 0x0028, 0x0047, 0x0029, + /* 4917 */ 0x0028, 0x0048, 0x0029, + /* 4920 */ 0x0028, 0x0049, 0x0029, + /* 4923 */ 0x0028, 0x004A, 0x0029, + /* 4926 */ 0x0028, 0x004B, 0x0029, + /* 4929 */ 0x0028, 0x004C, 0x0029, + /* 4932 */ 0x0028, 0x004D, 0x0029, + /* 4935 */ 0x0028, 0x004E, 0x0029, + /* 4938 */ 0x0028, 0x004F, 0x0029, + /* 4941 */ 0x0028, 0x0050, 0x0029, + /* 4944 */ 0x0028, 0x0051, 0x0029, + /* 4947 */ 0x0028, 0x0052, 0x0029, + /* 4950 */ 0x0028, 0x0053, 0x0029, + /* 4953 */ 0x0028, 0x0054, 0x0029, + /* 4956 */ 0x0028, 0x0055, 0x0029, + /* 4959 */ 0x0028, 0x0056, 0x0029, + /* 4962 */ 0x0028, 0x0057, 0x0029, + /* 4965 */ 0x0028, 0x0058, 0x0029, + /* 4968 */ 0x0028, 0x0059, 0x0029, + /* 4971 */ 0x0028, 0x005A, 0x0029, + /* 4974 */ 0x3014, 0x0053, 0x3015, + /* 4977 */ 0x0043, 0x0044, + /* 4979 */ 0x0057, 0x005A, + /* 4981 */ 0x0048, 0x0056, + /* 4983 */ 0x004D, 0x0056, + /* 4985 */ 0x0053, 0x0044, + /* 4987 */ 0x0053, 0x0053, + /* 4989 */ 0x0050, 0x0050, 0x0056, + /* 4992 */ 0x0057, 0x0043, + /* 4994 */ 0x004D, 0x0043, + /* 4996 */ 0x004D, 0x0044, + /* 4998 */ 0x004D, 0x0052, + /* 5000 */ 0x0044, 0x004A, + /* 5002 */ 0x307B, 0x304B, + /* 5004 */ 0x30B3, 0x30B3, + /* 5006 */ 0x3014, 0x672C, 0x3015, + /* 5009 */ 0x3014, 0x4E09, 0x3015, + /* 5012 */ 0x3014, 0x4E8C, 0x3015, + /* 5015 */ 0x3014, 0x5B89, 0x3015, + /* 5018 */ 0x3014, 0x70B9, 0x3015, + /* 5021 */ 0x3014, 0x6253, 0x3015, + /* 5024 */ 0x3014, 0x76D7, 0x3015, + /* 5027 */ 0x3014, 0x52DD, 0x3015, + /* 5030 */ 0x3014, 0x6557, 0x3015, + /* 5033 */ 0x20122, + /* 5034 */ 0x2063A, + /* 5035 */ 0x2051C, + /* 5036 */ 0x2054B, + /* 5037 */ 0x291DF, + /* 5038 */ 0x20A2C, + /* 5039 */ 0x20B63, + /* 5040 */ 0x214E4, + /* 5041 */ 0x216A8, + /* 5042 */ 0x216EA, + /* 5043 */ 0x219C8, + /* 5044 */ 0x21B18, + /* 5045 */ 0x21DE4, + /* 5046 */ 0x21DE6, + /* 5047 */ 0x22183, + /* 5048 */ 0x2A392, + /* 5049 */ 0x22331, + /* 5050 */ 0x22331, + /* 5051 */ 0x232B8, + /* 5052 */ 0x261DA, + /* 5053 */ 0x226D4, + /* 5054 */ 0x22B0C, + /* 5055 */ 0x22BF1, + /* 5056 */ 0x2300A, + /* 5057 */ 0x233C3, + /* 5058 */ 0x2346D, + /* 5059 */ 0x236A3, + /* 5060 */ 0x238A7, + /* 5061 */ 0x23A8D, + /* 5062 */ 0x21D0B, + /* 5063 */ 0x23AFA, + /* 5064 */ 0x23CBC, + /* 5065 */ 0x23D1E, + /* 5066 */ 0x23ED1, + /* 5067 */ 0x23F5E, + /* 5068 */ 0x23F8E, + /* 5069 */ 0x20525, + /* 5070 */ 0x24263, + /* 5071 */ 0x243AB, + /* 5072 */ 0x24608, + /* 5073 */ 0x24735, + /* 5074 */ 0x24814, + /* 5075 */ 0x24C36, + /* 5076 */ 0x24C92, + /* 5077 */ 0x2219F, + /* 5078 */ 0x24FA1, + /* 5079 */ 0x24FB8, + /* 5080 */ 0x25044, + /* 5081 */ 0x250F3, + /* 5082 */ 0x250F2, + /* 5083 */ 0x25119, + /* 5084 */ 0x25133, + /* 5085 */ 0x2541D, + /* 5086 */ 0x25626, + /* 5087 */ 0x2569A, + /* 5088 */ 0x256C5, + /* 5089 */ 0x2597C, + /* 5090 */ 0x25AA7, + /* 5091 */ 0x25AA7, + /* 5092 */ 0x25BAB, + /* 5093 */ 0x25C80, + /* 5094 */ 0x25F86, + /* 5095 */ 0x26228, + /* 5096 */ 0x26247, + /* 5097 */ 0x262D9, + /* 5098 */ 0x2633E, + /* 5099 */ 0x264DA, + /* 5100 */ 0x26523, + /* 5101 */ 0x265A8, + /* 5102 */ 0x2335F, + /* 5103 */ 0x267A7, + /* 5104 */ 0x267B5, + /* 5105 */ 0x23393, + /* 5106 */ 0x2339C, + /* 5107 */ 0x26B3C, + /* 5108 */ 0x26C36, + /* 5109 */ 0x26D6B, + /* 5110 */ 0x26CD5, + /* 5111 */ 0x273CA, + /* 5112 */ 0x26F2C, + /* 5113 */ 0x26FB1, + /* 5114 */ 0x270D2, + /* 5115 */ 0x27667, + /* 5116 */ 0x278AE, + /* 5117 */ 0x27966, + /* 5118 */ 0x27CA8, + /* 5119 */ 0x27F2F, + /* 5120 */ 0x20804, + /* 5121 */ 0x208DE, + /* 5122 */ 0x285D2, + /* 5123 */ 0x285ED, + /* 5124 */ 0x2872E, + /* 5125 */ 0x28BFA, + /* 5126 */ 0x28D77, + /* 5127 */ 0x29145, + /* 5128 */ 0x2921A, + /* 5129 */ 0x2940A, + /* 5130 */ 0x29496, + /* 5131 */ 0x295B6, + /* 5132 */ 0x29B30, + /* 5133 */ 0x2A0CE, + /* 5134 */ 0x2A105, + /* 5135 */ 0x2A20E, + /* 5136 */ 0x2A291, + /* 5137 */ 0x2A600 }; diff --git a/src/include/common/unicode_normprops_table.h b/src/include/common/unicode_normprops_table.h index 7a13405525295..f1072c9f09966 100644 --- a/src/include/common/unicode_normprops_table.h +++ b/src/include/common/unicode_normprops_table.h @@ -695,11 +695,32 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = { {0x11127, UNICODE_NORM_QC_MAYBE}, {0x1133E, UNICODE_NORM_QC_MAYBE}, {0x11357, UNICODE_NORM_QC_MAYBE}, + {0x113B8, UNICODE_NORM_QC_MAYBE}, + {0x113BB, UNICODE_NORM_QC_MAYBE}, + {0x113C2, UNICODE_NORM_QC_MAYBE}, + {0x113C5, UNICODE_NORM_QC_MAYBE}, + {0x113C7, UNICODE_NORM_QC_MAYBE}, + {0x113C8, UNICODE_NORM_QC_MAYBE}, + {0x113C9, UNICODE_NORM_QC_MAYBE}, {0x114B0, UNICODE_NORM_QC_MAYBE}, {0x114BA, UNICODE_NORM_QC_MAYBE}, {0x114BD, UNICODE_NORM_QC_MAYBE}, {0x115AF, UNICODE_NORM_QC_MAYBE}, {0x11930, UNICODE_NORM_QC_MAYBE}, + {0x1611E, UNICODE_NORM_QC_MAYBE}, + {0x1611F, UNICODE_NORM_QC_MAYBE}, + {0x16120, UNICODE_NORM_QC_MAYBE}, + {0x16121, UNICODE_NORM_QC_MAYBE}, + {0x16122, UNICODE_NORM_QC_MAYBE}, + {0x16123, UNICODE_NORM_QC_MAYBE}, + {0x16124, UNICODE_NORM_QC_MAYBE}, + {0x16125, UNICODE_NORM_QC_MAYBE}, + {0x16126, UNICODE_NORM_QC_MAYBE}, + {0x16127, UNICODE_NORM_QC_MAYBE}, + {0x16128, UNICODE_NORM_QC_MAYBE}, + {0x16129, UNICODE_NORM_QC_MAYBE}, + {0x16D67, UNICODE_NORM_QC_MAYBE}, + {0x16D68, UNICODE_NORM_QC_MAYBE}, {0x1D15E, UNICODE_NORM_QC_NO}, {0x1D15F, UNICODE_NORM_QC_NO}, {0x1D160, UNICODE_NORM_QC_NO}, @@ -1261,315 +1282,321 @@ static const pg_unicode_normprops UnicodeNormProps_NFC_QC[] = { static int NFC_QC_hash_func(const void *key) { - static const int16 h[2463] = { - 0, -2717, 0, 221, 1293, 223, 1295, 225, - 226, 241, 0, 229, 230, 231, 0, 0, + static const int16 h[2505] = { + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 32767, 32767, 32767, 32767, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 50, + 32767, 32767, 32767, 32767, 51, 52, 32767, 53, + 32767, 32767, 32767, 32767, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 668, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -713, + 32767, 32767, 32767, 32767, 806, 687, 807, -539, + 808, 581, 581, 693, -51, 695, 976, 977, + -281, 465, 980, 981, 982, 983, 984, 985, + 986, 987, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, -1155, -1155, -1155, 1007, 1008, 59, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -386, 0, 0, 0, 0, 0, 0, 0, - -163, 0, 0, 0, 0, 0, 0, 0, + 0, 893, 1829, 1830, 1293, 1832, 1151, 0, + 1154, 1837, 1156, 1157, 2760, -135, 1842, 0, + 0, 1847, 980, 1850, 0, 1853, 733, 975, + 177, 1059, 1060, 1061, 644, 1867, 1064, 1065, + 1066, 1067, 1068, 1069, 1070, 1882, 1072, 1884, + 1885, 1088, 1887, 1077, 1089, 1079, 1080, 1896, + 1897, 1083, 1900, 634, 1086, 665, 666, 0, + 2100, 0, 1914, -172, -172, -172, -1307, -361, + -361, 1641, -361, -361, -361, -361, -172, 1654, + 0, 332, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 669, 0, -132, 0, 0, + 0, 0, 0, 0, 0, 670, 0, 0, + 0, 0, 671, 0, 0, 0, 0, 672, + 0, 0, 0, 0, -78, 0, -1541, 0, + 0, 0, 0, 0, 0, 0, 1869, 0, + 0, 674, 0, 0, 0, 0, 0, 0, + 2046, 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -246, -175, 1260, 0, 0, 0, -174, -173, - 0, -172, 0, 0, 0, 0, 0, 0, - 1049, 0, 300, 301, 1071, 0, 1071, 0, - 1071, 1071, 1057, 0, 0, 0, 0, 1061, - 0, -1053, 1664, 0, 2956, 0, 0, -13, - 0, 0, 0, 0, 2156, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 1082, 0, - 1083, 1083, 0, 1084, 0, 0, 0, 0, + 0, 0, 1116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 359, 360, 361, - -1091, 363, -762, -130, -129, -128, -127, -126, - 137, -124, -708, -707, -706, -120, -185, -705, - -117, -184, -1307, -114, -113, -112, -111, 0, - 386, 387, 388, 389, -90, 391, 171, 172, - 394, -94, -183, 397, 398, 399, -98, -225, - 402, -1019, -636, -1019, -225, 407, 408, 409, - 410, 411, 674, 413, -171, -170, -169, 417, - 352, -168, 420, 353, -770, 423, 424, 425, - 426, 427, 428, 32767, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 32767, 32767, 237, 32767, 236, 32767, - 32767, 234, 234, 234, 234, 617, 234, 234, - 234, -2483, 234, -1430, 1526, -1430, 1527, 47, - 48, 471, 230, 32767, 32767, 32767, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - -159, 227, 227, 227, 227, 227, 227, 227, - 64, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - -19, 52, 1487, 227, 227, 227, 53, 54, - 227, 55, 227, 227, 227, 227, 227, 227, - 1276, 227, -989, 32767, 1296, 225, 1296, 225, - 1296, 1296, 1282, 225, 225, 225, 225, 1286, - 225, -828, 1889, 225, 3181, 225, 225, 212, - 225, 225, 225, 225, 2381, 225, 225, 225, - 225, 225, 225, 225, 296, 225, 1307, 225, - 1308, 1308, 225, 1309, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 225, 225, 584, 585, 586, - -866, 588, -537, 95, 96, 97, 98, 99, - 362, 101, -483, -482, -481, 105, 40, -480, - 108, 41, -1082, 111, 112, 113, 114, 225, - 611, 612, 613, 614, 135, 616, 396, 397, - 619, 131, 42, 622, 623, 624, 127, 0, - 627, -794, -411, -794, 0, 632, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - -272, 32767, 32767, 32767, 0, 32767, 32767, 32767, - 32767, 32767, -166, -165, 32767, 32767, 32767, 32767, - -164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 397, 32767, 396, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 386, - 0, 386, 386, 386, 386, 386, 386, 386, - 223, 386, 386, 386, 32767, 385, 385, 385, - 385, 385, 32767, 384, 32767, 383, 383, 32767, - 382, 382, 32767, 381, 381, 381, 381, 381, - 135, 206, 1641, 381, 32767, 32767, 32767, 32767, - 32767, 32767, -160, 32767, 32767, 32767, 32767, 32767, + 60, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -15, + 61, 62, 32767, 32767, 32767, 32767, 63, 64, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 710, 57, 57, 713, + 58, 58, 716, 692, 59, 693, 59, 59, + 59, 59, 59, 59, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 506, 857, + 738, 858, -488, 859, 632, 632, 744, 0, + 746, 747, 748, 749, 750, 751, 752, 753, + 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 0, + 0, 538, 0, 682, 0, 682, 0, 682, + 682, -920, 1976, 0, 0, 0, 0, 0, + 0, 0, 0, 1121, 20, 682, 0, 682, + 682, 1139, 0, 682, 682, 682, 1138, 825, + 826, 827, 0, 811, 0, 0, 798, 0, + 834, 835, 836, 837, 0, 0, 840, 0, + 1267, 843, 844, 845, 846, 847, 848, 0, + 850, 851, 822, 853, 854, 855, 856, 2290, + 2291, 2292, 2293, 2105, 280, 863, 864, 865, + 1839, -410, -410, 869, 870, 871, 872, 873, + 874, 875, 876, 877, 878, 879, 880, 881, + 882, 883, 884, 885, 0, 0, 2002, 0, + 0, 0, 0, 893, 894, 895, 896, 897, + 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 158, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 0, 920, 921, + 922, 923, 924, 925, 926, 927, 2063, 1118, + 1119, -882, 1121, 1122, 1123, 1124, 936, 937, + 938, 939, 940, 941, 942, 943, 944, 945, + 946, 947, 948, 949, 950, 951, 952, 953, + 954, 955, 956, 957, 958, 959, 960, 961, + 962, 963, 964, 965, 510, 160, 280, 161, + 1508, 162, 390, 391, 280, 1025, 280, 0, + 0, 1259, 514, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2159, 2160, 2161, 0, 0, + 950, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, + 1033, 1034, 142, -793, -793, -255, -793, -111, + 1041, -112, -794, -112, -112, -1714, 1182, -794, + 1049, 1050, -796, 72, -797, 1054, -798, 323, + 82, 881, 0, 0, 0, 418, -804, 0, + 0, 0, 0, 0, 0, 0, -811, 0, + -811, -811, -13, -811, 0, -11, 0, 0, + -815, -815, 0, -816, 451, 0, 422, 422, + 1089, -1010, 1091, -822, 1265, 1266, 1267, 2403, + 1458, 1459, -542, 1461, 1462, 1463, 1464, 1276, + -549, 1106, 775, 1108, 1109, 1110, 1111, 1112, + 1113, 1114, 1115, 1116, 448, 1118, 1251, 1120, + 1121, 1122, 1123, 1124, 1125, 1126, 457, 1128, + 1129, 1130, 1131, 461, 1133, 1134, 1135, 1136, + 465, 1138, 1139, 1140, 1141, 1220, 1143, 2685, + 1145, 1146, 1147, 1148, 1149, 1150, 1151, -717, + 1153, 1154, 481, 1156, 1157, 1158, 1159, 1160, + 1161, -884, 71, 1164, 1165, 1166, 1167, 1168, + 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, + 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, + 1185, 1186, 1187, 72, 1189, 1190, 1191, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, + 1217, 1218, 1219, 1220, 1221, 32767, 1140, 342, + 1224, 1225, 1226, 809, 2032, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 2047, 1237, 2049, 2050, + 1253, 2052, 1242, 1254, 1244, 1245, 2061, 2062, + 1248, 2065, 799, 1251, 32767, 448, 32767, 448, + 676, 677, 170, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 165, 32767, 32767, 32767, + 166, 167, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 143, 32767, 144, + 32767, -690, 32767, -691, 32767, 147, 73, 148, + 32767, -694, 32767, -621, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 657, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -755, + 32767, 32767, -757, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 152, 32767, -768, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -964, + 32767, 32767, 32767, 32767, 32767, 32767, 0, -782, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -789, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -796, + 32767, 32767, -798, -798, 750, 0, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 830, 831, + 832, 0, 0, 32767, 32767, 1125, 32767, 1126, + 32767, 32767, 2047, -848, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1136, 32767, 1117, 32767, 1138, + 32767, 32767, 0, 1140, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 678, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 679, 0, 0, 680, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 32767, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1343, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, 211, 212, + -325, 214, -467, 216, -465, 218, -463, -462, + 1141, -1754, 223, 224, 225, 226, 227, 228, + 229, 230, -890, 212, -449, 234, -447, -446, + -902, 238, -443, -442, -441, -896, -582, -582, + -582, 246, -564, 248, 249, -548, 251, -582, + -582, -582, -582, 256, 257, -582, 259, -1007, + -582, -582, -582, -582, -582, -582, 267, -582, + -582, -552, -582, -582, -582, -582, -2015, -2015, + -2015, -2015, -1826, 0, -582, -582, -582, -1555, + 695, 696, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, 304, 305, -1696, 307, 308, + 309, 310, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, 169, -582, -582, -582, -582, -582, + -582, -582, -582, -582, 337, -582, -582, -582, + -582, -582, -582, -582, -582, -1717, -771, -771, + 1231, -771, -771, -771, -771, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -582, -582, -582, -582, -582, + -582, -582, -582, -126, 225, 106, 226, -1120, + 227, 0, 0, 112, -632, 114, 395, 396, + -862, -116, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, -1736, -1736, -1736, 426, 427, -522, + 32767, 429, 430, 431, 432, 433, 434, 435, + 436, 437, -392, -392, -392, 441, 442, 32767, + 0, -682, 0, -682, 0, 0, -1602, 1294, + -682, -682, -682, -682, -682, -682, -682, -682, + 439, -662, 0, -682, 0, 0, 457, -682, + 0, 0, 0, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, -201, 478, 479, + 480, 481, 482, 483, 484, 485, 486, -192, + 488, 489, -190, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 32767, + 32767, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, + 590, -752, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 1200, 1201, 1202, 1203, + 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, + 1212, 1213, 1214, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 1148, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 32767, 0, + 32767, 0, 0, 32767, 0, 0, 32767, 633, + 0, 634, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, + 647, 32767, 648, 649, 650, 651, 652, 32767, + 653, 0, 654, 655, 0, 656, 657, 0, + 25, 659, 26, 661, 662, 663, 664, 665, + 666, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 230, -120, 0, -119, 1228, + -118, 110, 111, 0, 745, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 793, 794, 257, 796, + 115, 798, 117, 800, 119, 120, 1723, -1172, + 805, 806, 807, 808, 809, 810, 811, 812, + -308, 794, 133, 816, 135, 136, -320, 820, + 139, 140, 141, -314, 0, 0, 0, 828, + 18, 830, 831, 34, 833, 0, 0, 0, + 0, 838, 839, 0, 841, -425, 0, 0, + 0, 0, 0, 0, 849, 0, 0, 30, + 0, 0, 0, 0, -1433, -1433, -1433, -1433, + -1244, 582, 0, 0, 0, -973, 1277, 1278, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 886, 887, -1114, 889, 890, 891, 892, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 751, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 919, 0, 0, 0, 0, 0, + 0, 0, 0, -1135, -189, -189, 1813, -189, + -189, -189, -189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 32767, 32767, 32767, 32767, 704, 705, + 706, 707, 708, 709, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -257, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -910, -910, 32767, 32767, - 0, 32767, 0, 32767, 0, 32767, 0, 32767, - 147, 32767, 0, 32767, 0, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 143, 32767, 144, 32767, 145, - 32767, 146, 32767, 0, 32767, 148, 32767, 149, - 32767, 32767, 32767, -160, 32767, 32767, 32767, 32767, - 32767, 32767, 15, 32767, 32767, 0, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 145, 32767, 144, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, -148, 32767, 32767, 32767, 32767, - 32767, 32767, 2009, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, 32767, 32767, 135, -918, 32767, - 151, 32767, 32767, 0, 1, 2, 3, 4, - 133, 5, 6, 7, 8, 9, 10, 11, - 32767, 32767, -1248, 32767, 13, 154, 188, 188, - 32767, 32767, 32767, 32767, 32767, 155, 16, 32767, - 32767, 32767, 32767, 32767, 32767, -1853, -1054, 18, - -1052, -1051, -1036, 22, 32767, 157, 32767, 28, - 23, 1077, 673, 25, -2930, 0, 32767, 32767, - 32767, 32767, 32767, 27, 32767, 155, 32767, 154, - 32767, 32767, -62, 28, -42, 30, -1051, 32, - -1050, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 34, + 32767, 32767, 0, 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 129, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 672, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, - 32767, 32767, 32767, 32767, -156, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -155, 32767, 32767, - 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 40, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 682, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 41, 42, 43, 44, 45, 46, 47, + 48, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 171, 172, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 73, 32767, 32767, 32767, 32767, 74, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 675, - 32767, 32767, 32767, 32767, 32767, 75, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 165, 32767, 32767, 32767, 166, 167, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 170, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, -304, -303, -302, -301, -300, - -299, -298, -297, 930, -295, -294, -293, -292, - -291, -290, -289, -288, -287, -286, -285, -284, - -283, -282, -281, -280, -279, -278, -277, -276, - -275, 753, 754, 755, 646, 757, -712, -1765, - 952, -712, 2244, -712, 2245, 765, 766, 767, - 768, 125, 770, 771, 772, 773, 774, 775, - 603, 777, 778, 779, 780, 781, 782, 783, - 784, 2011, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804, 805, 806, 603, - 603, 809, 603, 811, 603, 603, 814, 815, - 816, 817, 435, 819, 820, 821, 3539, 823, - 603, -468, 603, -468, 603, 603, 589, 831, - 603, 603, 603, 835, 836, 837, 838, 839, - 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 851, 852, 1239, 854, 855, - 856, 857, 858, 859, 860, 1024, 862, 863, - 864, 865, 866, 867, 868, 869, 870, 871, - 872, 873, 874, 875, 876, 877, 878, 879, - 880, 881, 882, 883, 884, 1131, 1061, -373, - 888, 889, 890, 1065, 1065, 893, 1066, 895, - 896, 897, 898, 899, 900, -148, 902, 603, - 603, -166, 906, -164, 908, -162, -161, -146, - 912, 913, 914, 915, -145, 917, 1971, -745, - 920, -2035, 922, 923, 937, 925, 926, 927, - 928, -1227, 930, 931, 932, 933, 934, 935, - 936, 866, 938, -143, 940, -142, -141, 943, - -140, 32767, 945, 946, 947, 948, 949, 950, - 951, 952, 953, 954, 955, 956, 957, 958, - 959, 960, 961, -65, -64, -63, -62, -61, - -60, -59, -58, 1169, -56, -55, -54, -53, - -52, -51, -50, -49, -48, -47, -46, -45, - -44, -43, -42, -41, -40, -39, -38, -37, - -36, 992, 993, 994, 885, 996, -473, -1526, - 1191, -473, 2483, -473, 2484, 1004, 1005, 1006, - 1007, 364, 1009, 1010, 1011, 1012, 1013, 1014, - 842, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - 1023, 2250, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 842, - 842, 1048, 842, 1050, 842, 842, 1053, 1054, - 1055, 1056, 674, 1058, 1059, 1060, 3778, 1062, - 842, -229, 842, -229, 842, 842, 828, 1070, - 842, 842, 842, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, - 1087, 1088, 1089, 1090, 1091, 1478, 1093, 1094, - 1095, 1096, 1097, 1098, 1099, 1263, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1120, 1121, 1122, 1123, 1370, 1300, -134, - 1127, 1128, 1129, 1304, 1304, 1132, 1305, 1134, - 1135, 1136, 1137, 1138, 1139, 91, 1141, 842, - 842, 73, 1145, 75, 1147, 77, 78, 93, - 1151, 1152, 1153, 1154, 94, 1156, 2210, -506, - 1159, -1796, 1161, 1162, 1176, 1164, 1165, 1166, - 1167, -988, 1169, 1170, 1171, 1172, 1173, 1174, - 1175, 1105, 1177, 96, 1179, 97, 98, 1182, - 99, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, - 1199, 1200, 0, 174, 175, 176, 177, 178, - 179, 180, 181, 1408, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, - 203, 0, 0, 206, 0, 208, 0, 0, - 211, 212, 213, 214, -168, 216, 217, 218, - 2936, 220, 0, -1071, 0, -1071, 0, 0, - -14, 228, 0, 0, 0, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 636, - 251, 252, 253, 254, 255, 256, 257, 421, - 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 528, - 458, -976, 285, 286, 287, 462, 462, 290, - 463, 292, 293, 294, 295, 296, 297, -751, - 299, 0, 0, -769, 303, -767, 305, -765, - -764, -749, 309, 310, 311, 312, -748, 314, - 1368, -1348, 317, -2638, 319, 320, 334, 322, - 323, 324, 325, -1830, 327, 328, 329, 330, - 331, 332, 333, 263, 335, -746, 337, -745, - -744, 340, -743, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 0, 0, 0, 1453, - 0, 1126, 495, 495, 495, 495, 495, 233, - 495, 1080, 1080, 1080, 495, 561, 1082, 495, - 563, 1687, 495, 495, 495, 495, 385, 0, - 0, 0, 0, 480, 0, 221, 221, 0, - 489, 579, 0, 0, 0, 498, 626, 0, - 1422, 1040, 1424, 631, 0, 0, 0, 0, - 0, -262, 0, 585, 585, 585, 0, 66, - 587, 0, 68, 1192, 0, 0, 0, 0, - 0, 0, 32767, 32767, 32767, 32767, 669, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 670, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 142, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1027, 1027, 1027, - 1027, 1027, 1027, 1027, 1027, -199, 1027, 1027, - 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, - 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, - 1027, 1027, 1027, 0, 0, 0, 110, 0, - 1470, 2524, -192, 1473, -1482, 1475, -1481, 0, - 0, 0, 0, 644, 0, 0, 0, 0, - 0, 0, 173, 0, 0, 0, 0, 0, - 0, 0, 0, -1226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 204, 205, 0, 207, 0, 209, 210, - 0, 0, 0, 0, 383, 0, 0 + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 49, + 32767 }; const unsigned char *k = (const unsigned char *) key; @@ -1582,16 +1609,16 @@ NFC_QC_hash_func(const void *key) unsigned char c = *k++; a = a * 257 + c; - b = b * 17 + c; + b = b * 8191 + c; } - return h[a % 2463] + h[b % 2463]; + return h[a % 2505] + h[b % 2505]; } /* Hash lookup information for NFC_QC */ static const pg_unicode_norminfo UnicodeNormInfo_NFC_QC = { UnicodeNormProps_NFC_QC, NFC_QC_hash_func, - 1231 + 1252 }; static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = { @@ -4729,11 +4756,68 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = { {0x11127, UNICODE_NORM_QC_MAYBE}, {0x1133E, UNICODE_NORM_QC_MAYBE}, {0x11357, UNICODE_NORM_QC_MAYBE}, + {0x113B8, UNICODE_NORM_QC_MAYBE}, + {0x113BB, UNICODE_NORM_QC_MAYBE}, + {0x113C2, UNICODE_NORM_QC_MAYBE}, + {0x113C5, UNICODE_NORM_QC_MAYBE}, + {0x113C7, UNICODE_NORM_QC_MAYBE}, + {0x113C8, UNICODE_NORM_QC_MAYBE}, + {0x113C9, UNICODE_NORM_QC_MAYBE}, {0x114B0, UNICODE_NORM_QC_MAYBE}, {0x114BA, UNICODE_NORM_QC_MAYBE}, {0x114BD, UNICODE_NORM_QC_MAYBE}, {0x115AF, UNICODE_NORM_QC_MAYBE}, {0x11930, UNICODE_NORM_QC_MAYBE}, + {0x1611E, UNICODE_NORM_QC_MAYBE}, + {0x1611F, UNICODE_NORM_QC_MAYBE}, + {0x16120, UNICODE_NORM_QC_MAYBE}, + {0x16121, UNICODE_NORM_QC_MAYBE}, + {0x16122, UNICODE_NORM_QC_MAYBE}, + {0x16123, UNICODE_NORM_QC_MAYBE}, + {0x16124, UNICODE_NORM_QC_MAYBE}, + {0x16125, UNICODE_NORM_QC_MAYBE}, + {0x16126, UNICODE_NORM_QC_MAYBE}, + {0x16127, UNICODE_NORM_QC_MAYBE}, + {0x16128, UNICODE_NORM_QC_MAYBE}, + {0x16129, UNICODE_NORM_QC_MAYBE}, + {0x16D67, UNICODE_NORM_QC_MAYBE}, + {0x16D68, UNICODE_NORM_QC_MAYBE}, + {0x1CCD6, UNICODE_NORM_QC_NO}, + {0x1CCD7, UNICODE_NORM_QC_NO}, + {0x1CCD8, UNICODE_NORM_QC_NO}, + {0x1CCD9, UNICODE_NORM_QC_NO}, + {0x1CCDA, UNICODE_NORM_QC_NO}, + {0x1CCDB, UNICODE_NORM_QC_NO}, + {0x1CCDC, UNICODE_NORM_QC_NO}, + {0x1CCDD, UNICODE_NORM_QC_NO}, + {0x1CCDE, UNICODE_NORM_QC_NO}, + {0x1CCDF, UNICODE_NORM_QC_NO}, + {0x1CCE0, UNICODE_NORM_QC_NO}, + {0x1CCE1, UNICODE_NORM_QC_NO}, + {0x1CCE2, UNICODE_NORM_QC_NO}, + {0x1CCE3, UNICODE_NORM_QC_NO}, + {0x1CCE4, UNICODE_NORM_QC_NO}, + {0x1CCE5, UNICODE_NORM_QC_NO}, + {0x1CCE6, UNICODE_NORM_QC_NO}, + {0x1CCE7, UNICODE_NORM_QC_NO}, + {0x1CCE8, UNICODE_NORM_QC_NO}, + {0x1CCE9, UNICODE_NORM_QC_NO}, + {0x1CCEA, UNICODE_NORM_QC_NO}, + {0x1CCEB, UNICODE_NORM_QC_NO}, + {0x1CCEC, UNICODE_NORM_QC_NO}, + {0x1CCED, UNICODE_NORM_QC_NO}, + {0x1CCEE, UNICODE_NORM_QC_NO}, + {0x1CCEF, UNICODE_NORM_QC_NO}, + {0x1CCF0, UNICODE_NORM_QC_NO}, + {0x1CCF1, UNICODE_NORM_QC_NO}, + {0x1CCF2, UNICODE_NORM_QC_NO}, + {0x1CCF3, UNICODE_NORM_QC_NO}, + {0x1CCF4, UNICODE_NORM_QC_NO}, + {0x1CCF5, UNICODE_NORM_QC_NO}, + {0x1CCF6, UNICODE_NORM_QC_NO}, + {0x1CCF7, UNICODE_NORM_QC_NO}, + {0x1CCF8, UNICODE_NORM_QC_NO}, + {0x1CCF9, UNICODE_NORM_QC_NO}, {0x1D15E, UNICODE_NORM_QC_NO}, {0x1D15F, UNICODE_NORM_QC_NO}, {0x1D160, UNICODE_NORM_QC_NO}, @@ -6640,164 +6724,71 @@ static const pg_unicode_normprops UnicodeNormProps_NFKC_QC[] = { static int NFKC_QC_hash_func(const void *key) { - static const int16 h[10079] = { - 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, - 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, - 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, - 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, - 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, - 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, - 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, - 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, - 3606, 3607, 3608, 3970, 3488, 3611, 3612, 3613, - 3614, 3615, 3616, 3617, 3618, 7967, 3620, 3621, - 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, - 3630, 3631, 3632, 3633, 3634, 3512, 3636, 3637, - 3638, 3639, 32767, 11118, 11119, 11120, 11121, 11122, - 1470, 11124, 11125, 11126, 11127, 11128, 11129, 11130, - 11131, 11132, -287, 8773, 8774, 8775, 8776, 8777, - 8778, -287, 8781, 8782, -287, 8783, 8784, 8785, - 8786, 8787, 8788, 8789, 8790, 8791, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, 2372, -287, -287, -287, -287, -287, -287, - -287, -287, -287, 2458, 2458, 2458, 2458, 2458, - 2458, 2458, 2458, 2458, -287, -287, -287, -5017, - 5765, -287, -5019, -5019, -5019, -5019, -287, -287, - 4632, -5021, -5021, -287, -5022, -5022, -5022, 3732, - -287, -287, 3735, 3736, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - 4994, 2491, 2491, -287, -287, -287, 6887, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, 32767, 32767, -289, 1778, 629, 3809, 3810, - -3050, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, 3861, 3862, 3863, 3864, 3865, 3866, - 3867, 3868, -1002, 3870, 3871, 3872, 3873, 3874, - 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, - 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, - 3891, 3892, 3893, 32767, 3392, 3392, 3392, -5411, - 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, - 3392, 3392, 224, 225, 226, 3392, 227, 228, - -5998, -5998, 3392, -5998, -5, 0, -5997, -5997, - -7477, 3923, -7478, -7478, -7478, -7478, -7478, -7478, - -7478, -7478, 2175, -7478, -7478, -7478, -7478, -7478, - -7478, -7478, -7478, -7478, 3942, -5117, -5117, -5117, - -5117, -5117, -5117, 3949, -5118, -5118, 3952, -5117, - -5117, -5117, -5117, -5117, -5117, -5117, -5117, -5117, - 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, - 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, - 3978, 3979, 3980, 1322, 3982, 3983, 3984, 3985, - 3986, 3987, 3988, 3989, 3990, 1246, 1247, 1248, - 1249, 1250, 1251, 1252, 1253, 1254, 4000, 4001, - 4002, 8733, -2048, 4005, 8738, 8739, 8740, 8741, - 4010, 4011, -907, 8747, 8748, 4015, 8751, 8752, - 8753, 0, 4020, 4021, 0, 0, 4024, 4025, - 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, - 4034, 4035, -1245, 1259, 1260, 4039, 4040, 4041, - -3132, 4043, 4044, 4045, 4046, 4047, 4048, 4049, - 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, - 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, - 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, - 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, - 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, - 4090, 4091, 4092, 4093, 4094, 4095, 2029, 3179, - 0, 0, 6861, 4099, 4100, 4101, 4102, 4103, - 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, - 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, - 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, - 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, - 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, - 4144, 4145, 4146, 4147, 0, 0, 0, 0, - 0, 0, 0, 0, 4871, 0, 0, 0, + static const int16 h[10193] = { + 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, + 1886, 1887, 1888, 32767, 32767, 1889, 3141, -7211, + 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, + -1320, 1901, 1902, -1322, 1904, 1905, 1921, 1921, + 1921, 1909, 1910, 1911, 1924, 1924, 1914, 1915, + 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, + 1924, 1925, -1976, 4681, 1323, 1929, 1930, 4682, + 1932, 1933, 1934, 1935, 1936, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 422, 510, 422, 422, + 0, 0, 0, 0, 0, 0, 0, 1822, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32767, 32767, 32767, + 0, 0, 1840, 1840, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2762, 2762, 2762, + 2762, 2762, 2762, 2762, 2762, 2762, 2762, 2762, + 2762, 2762, 2762, 2762, 2762, 2762, 2762, 2762, + 2762, 2762, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2812, 2812, 2812, 2812, + 2812, 2812, 2812, 2812, 2812, 2812, 2812, 2812, + 2812, 2812, -1449, 5319, 2812, 2812, 2812, 2812, + 2812, 2812, 2812, 2812, 2812, 2812, -534, 0, + 0, 0, 0, 348, 32767, 349, 0, 0, + 0, 0, 0, 0, 32767, 32767, 0, 0, + 0, -1517, 0, -1517, 32767, -1516, 4370, 4371, + 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, + 0, 32767, 32767, -23190,4110, 0, 0, 0, + 0, 0, 0, 32767, 0, 0, 0, 0, + -622, -622, 0, -3928, -1253, -1252, -5473, -3927, + -3927, -3927, -3927, -3927, -3927, -3927, -3927, -3927, + -3927, -3927, -3927, -3927, -3927, -3580, -3580, -3925, + -3580, -3924, -3580, -3580, -3922, -3922, -3922, -3922, + -3922, -3922, -3922, -3922, 0, 0, -3484, -3919, + -3482, -3918, -3480, -3578, -3916, -3916, -3578, -3578, + -3578, -3913, -3913, -3913, -3913, -3913, -3913, -3913, + -3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913, + -3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913, + -3913, -3913, -3913, -3913, -3913, -3913, -3913, -3913, + -3913, -3913, -3913, -3913, -3913, -3578, 625, -5288, + 627, 628, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2496, 2497, 2498, 2499, 2500, + 2501, 2502, 2503, 2504, 2505, 2506, 2507, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -1769, -1768, -1767, -3528, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -4117, -4459, -4459, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, -1786, -1785, -1784, -1783, -1782, 5982, - -630, -48, -48, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 677, - 32767, 32767, -636, -635, 1019, -3373, 1019, 1019, - 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, - 1019, 1019, 1019, 1019, 1019, -685, -684, -683, - -682, -681, -6170, -679, -678, 2476, 2477, -6912, - 2479, -3513, 3959, 2482, 2483, 3964, 3965, 3966, - 3967, 3968, 3969, 3970, 3971, 3972, 55, 56, - 2495, 57, 58, 59, 60, 61, 62, 63, - 2503, 2504, 64, 2506, 65, 2508, 66, 67, - 2511, 2512, 32767, 32767, 32767, 32767, 68, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 69, 70, - 71, 72, 73, 74, 1140, 2514, 2515, 422, - 75, 2518, -1594, 556, 557, 2522, 2523, 2524, - 2525, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, -2277, - -2277, -2277, -2277, -2277, 32767, 32767, -2279, -2279, - -2279, -2279, -2279, -2279, -2279, -2279, -2279, 86, - -2279, -2279, -2279, -2279, -2279, 87, -2279, -2279, - -2279, 88, -2279, -2279, -2279, -2279, -2279, 89, - 453, 453, 453, 453, 453, 453, 2609, 453, - 453, 453, 453, 453, 453, 453, 453, 453, - 453, 453, 453, 1817, 453, 453, 453, 453, - 453, 453, 453, 453, 32767, 32767, 32767, 681, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -2319, 2632, -2319, -2319, - -2319, 2636, 2637, 92, 2639, 2640, 95, 96, - 97, 98, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 3279, 3280, 3281, 3282, 3283, 3284, - 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, - -384, -1535, -385, -385, 0, 3298, 3299, 3300, - 3301, 3302, 3303, 3304, -8646, -1149, -1148, -1147, - -1146, 32767, 3310, 3311, 3312, 3313, 3314, -1140, - -1139, -1138, -1137, -1136, -1135, -1134, -1133, -1132, - 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, - 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, - 3340, 3341, 3342, 3343, 3344, -1327, -1327, -1327, - -1327, -1327, 32767, 32767, 2346, 32767, 32767, 32767, - 32767, 32767, 3350, 335, 3245, 8185, 1818, 666, - 1818, 795, 795, 1818, 1818, 1818, 1818, 1818, - -5945, 668, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 0, 0, 671, 671, 671, - 671, 671, 0, 0, 673, 673, 673, 0, - 674, 0, 675, 0, 676, 0, 677, 677, - 677, 32767, 0, 677, 677, -976, 3417, -974, - -973, 678, 678, -972, -971, -970, -969, -968, - 1152, 1153, 1154, 1155, 1156, 0, 1022, 1022, - 5615, -6335, 1162, 1163, 1164, 1165, 5621, 5622, - 5623, 5624, 5625, 5626, 1172, 1173, 1174, 1175, - 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, - 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 9997, 1195, 1196, 1197, 1198, 1199, - 1200, 1201, 1202, 1203, 1204, 4373, 4373, 4373, - 1208, 4374, 4374, 10601, 10602, 1213, 10604, 4612, - 4608, 10606, 10607, 12088, 1220, 1221, 1222, 1223, - 1224, 1225, 1226, 2453, 2454, 2455, 2456, 2457, - 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, - 2466, 2467, 6860, 2469, 2470, 2471, 2472, 2473, - 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, - 2482, 2483, 2484, 258, 2486, 2487, 258, 258, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -6806,68 +6797,63 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 5673, 5674, - 0, 5677, 0, 5680, 5681, 5682, 5683, 5684, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 682, 683, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -2719, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 105, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 2315, 4754, 2316, 2317, 2318, 2319, 2320, 2321, - 2322, 4762, 4763, 2323, 4765, 2324, 4767, 2325, - 2326, 4770, 4771, 4772, 2377, 4774, 4775, 4776, - 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, - 4785, 4786, 4787, 4788, 4789, 3417, 4791, 4792, - 2699, 2352, 4795, 683, 2833, 2834, 4799, 4800, - 4801, 4802, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2365, 0, 0, 0, 0, 0, 2366, 0, - 0, 0, 2367, 0, 0, 0, 0, 0, - 2368, 2732, 2732, 2732, 2732, 2732, 2732, 4888, - 2732, 2732, 2732, 2732, 2732, 2732, 2732, 2732, - 2732, 2732, 2732, 2732, 4096, 2732, 2732, 2732, - 2732, 2732, 2732, 2732, 2732, 2732, 2732, 2732, - 2732, 2732, 2732, 2732, 2732, 2732, 2732, 2732, - 2732, 2732, 2732, 2732, 2732, 2732, 4927, 0, - 0, 0, 0, 0, 4933, 0, 0, 0, - 0, -2910, 0, 4940, 4941, 4942, 0, 0, - 0, 0, 0, 0, 0, 0, 4951, 0, - 0, 0, 4955, 4956, 2411, 4958, 4959, 2414, - 2415, 2416, 0, 10954, 0, 3436, 0, 0, - 0, 0, 0, -3170, -3169, -3168, -3167, 3446, - 2865, 0, 0, 0, 0, 0, 2339, 2339, - 2339, 2339, 2339, 2339, 2339, 2339, 2892, 2339, - 0, 0, 0, 0, 0, 0, 2907, 0, - 0, 0, 0, 0, 0, 4719, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 1856, 868, 868, 868, 868, - 868, 868, 868, 868, 868, 868, 868, 1856, - 1856, 1856, 1856, 1856, 873, 873, 873, 873, - 873, 873, 873, 873, 873, 873, 873, 873, - 873, 873, 873, 873, 873, 6441, 6442, 6443, - 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, - 6452, -1169, 6454, 6455, 6456, 6457, 6458, 6459, - 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, - 6468, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -6479, -6478, -6477, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 41, 42, 43, 44, 45, 46, + 32767, 32767, 47, 48, 49, 50, 51, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 52, 1131, 8054, 3425, -19247, + 8047, -19248,8049, -19249,8051, -14620,8053, -19240, + 8056, 3330, 8058, 8059, 3430, -19242,3330, 3330, + 3330, 3330, 3330, -11231,8049, 3330, 3330, 3330, + 3330, -3326, 33, -3326, 3330, -3325, -3325, -3325, + 3330, -3326, -3326, 1075, 4681, 4682, 8076, -3327, + 8079, 19509, -7787, 4688, 4689, 1331, 4691, -1964, + 4692, 4693, 4694, 4695, 4696, 4697, 297, -3308, + -3308, -6701, 4703, -6702, -18131,9166, -3308, 4711, + -2199, 4724, 95, -22577,4717, -22578,4719, -22579, + 4721, -17950,4723, -22570,4726, 0, 4728, 4729, + 100, -22572,0, 0, 0, 0, 0, -14561, + 4719, 0, 0, 0, 0, -6656, -3297, -6656, + 0, -6655, -6655, -6655, 0, -6656, -6656, -2255, + 1351, 1352, 4746, -6657, 4749, 16179, -11117,1358, + 1359, -1999, 0, 0, 0, 938, 0, 0, + 0, 0, 0, 0, 1255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4081, 4081, 4081, + 4081, 4081, 2312, 2313, 2314, 553, 0, 0, + 0, 0, 0, 0, 0, 0, 3580, 2958, + 2958, 3580, -348, 2327, 2328, -1893, -347, -347, + -347, -347, -347, -347, -347, -347, -347, -347, + -347, -347, -347, -347, 0, 0, -345, 0, + -344, 0, 0, -342, -342, -342, -342, -342, + -342, -342, -342, -342, -342, 94, -341, 96, + -340, 98, 0, -338, -338, 0, 0, 0, + -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, -335, -335, -335, -335, + -335, -335, -335, -335, 0, 4203, -1710, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -6877,433 +6863,29 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 1, 32767, 2, 32767, 32767, 32767, 32767, -2759, + 32767, 32767, -2758, -2757, -2756, -2755, 32767, 32767, + -2754, -2753, -2752, 32767, -2751, -2750, -2749, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, -3334, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -1362, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -766, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, -1530, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 686, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 687, 688, 689, 690, 691, 692, 693, 694, - 695, 2465, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 2484, 707, 708, 709, 710, - 2493, 712, 713, 714, 715, 2502, 717, 718, - 719, 720, 2511, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 2536, - 735, 736, 737, 738, 739, 740, 741, 742, - 743, 2555, 745, 2558, 2559, 2560, 2561, 2562, - 751, 752, 753, 754, 755, 756, 757, 2577, - 759, 760, 761, 762, 763, 764, 1224, 1224, - 767, 768, 769, 770, 3787, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 798, - 799, 800, 801, 802, 803, 804, 805, 806, - 807, 808, 809, 810, 811, 812, 813, 814, - 815, 816, 817, 818, 819, 820, 821, 822, - 823, 824, 825, 826, 827, 828, 829, 830, - 831, 832, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 842, 843, 844, 845, 846, - 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 862, - 863, 864, 865, 866, 867, 868, 869, 870, - 871, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, - 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 682, + 683, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 901, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, -1268, - 32767, 32767, 32767, 32767, 32767, -984, -984, -2101, - -2101, -2101, -2101, 32767, 3402, 3403, -985, -985, - 32767, 32767, 0, -986, -986, -986, -986, -986, - -986, -986, 32767, -987, -987, -987, -987, -987, - -987, -987, 32767, -988, -988, -988, -988, -1746, - -988, -1747, -1747, -1194, -988, -988, -988, -988, - -988, -988, -988, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32767, - 0, 0, 0, 321, 32767, 0, 0, 0, - 0, 0, 32767, 0, 32767, 32767, 32767, -968, - 0, 0, 0, 0, 0, 0, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 333, 113, 333, 2915, - 333, 333, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -934, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -361, 122, - 0, 0, 0, 0, 0, 0, 0, 0, - -4348, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 123, 0, 0, 0, 0, -3819, -3818, 32767, - 126, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 5367, 5368, 914, 915, 916, - 917, 918, 919, 920, 921, 922, 923, 924, - 925, 926, 927, 928, 929, 930, 931, 932, - 933, 934, 935, 9739, 937, 938, 939, 940, - 941, 942, 943, 944, 945, 946, 4115, 4115, - 4115, 950, 4116, 4116, 10343, 10344, 955, 10346, - 4354, 4350, 10348, 10349, 11830, 962, 963, 964, - 965, 966, 967, 968, 2195, 2196, 2197, 2198, - 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, - 2207, 2208, 2209, 6602, 2211, 2212, 2213, 2214, - 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, - 2223, 2224, 2225, 2226, 0, 2228, 2229, 0, - 0, 2232, 0, 129, 2235, 2236, -260, -260, - 2239, 2240, 2241, 2242, -260, 2244, 2245, 2246, - 2247, 2248, 2249, 2250, 2251, 2252, 2253, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, 2264, 2265, -2259, 2267, 2268, 2269, 2270, - 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, - -2729, 2280, 2281, 2282, 2283, 2284, 2285, 2286, - 2287, 2288, 2289, 2290, 2291, 2292, 3281, 3282, - 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, - 3291, 2304, 2305, 2306, 2307, 2308, 3292, 3293, - 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, - 3302, 3303, 3304, 3305, 3306, 3307, 3308, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, -2259, -2259, 5363, -2259, -2259, -2259, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, 1418, 2570, 1421, 1422, 1038, -2259, -2259, - -2259, -2259, -2259, -2259, -2259, 9692, 2196, 2196, - 2196, 2196, -2259, -2259, -2259, -2259, -2259, -2259, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, -2259, -2259, - -2259, -2259, -2259, -2259, -2259, -2259, 2413, 2414, - 2415, 2416, 2417, 2418, 2419, 301, 302, 760, - -2259, -2259, -2259, -2259, 757, -2152, -7091, -723, - 430, -721, 303, 304, -718, -717, -716, -715, - -714, 7050, 438, 1020, 1020, 1020, 1020, 1020, - 1020, 1020, 1020, 1020, 1116, 1117, 447, 448, - 449, 450, 451, 1123, 1124, 452, 453, 454, - 1128, 455, 1130, 456, 1132, 457, 1134, 458, - 459, 460, 461, 1138, 462, 463, 2117, -2275, - 2117, 2117, 467, 468, 2119, 2119, 2119, 2119, - 2119, 0, 0, 0, 0, 0, 1157, 136, - 137, -4455, 7496, 0, 0, 0, 0, -4455, - -4455, -4455, -4455, -4455, -4455, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -8803, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -3168, -3167, - -3166, 0, -3165, -3164, -9390, -9390, 0, -9390, - -3397, -3392, -9389, -9389, -10869,0, 0, 0, - 0, 0, 0, 0, -1226, -1226, -1226, -1226, - -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, - -1226, -1226, -1226, -5618, -1226, -1226, -1226, -1226, - -1226, -1226, -1226, -1226, -1226, -1226, -1226, -1226, - -1226, -1226, -1226, -1226, 1001, -1226, -1226, 1004, - 1005, 1264, 1265, 32767, -1229, -1229, 1268, 1269, - -1229, -1229, -1229, -1229, 1274, -1229, -1229, -1229, - -1229, -1229, 139, 1281, 1282, 1283, 1284, 1285, - 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, - 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, - 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, 1675, 1313, 1676, 1315, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, - 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, - 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, - 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, - 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, - 1382, 1383, 1384, 1385, 1386, 1387, 3934, 3935, - 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, - 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 1417, 1418, 935, 1320, 4618, - 1422, 4621, 4622, 1425, 1426, 1427, -7322, 5372, - 1430, 1431, 5375, 891, 891, 891, 891, 891, - 891, 891, 5376, 2037, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 891, 891, 891, 141, 891, - 891, 891, 891, 891, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 142, 143, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 1999, 4498, 4499, 4500, 4501, 1999, 4503, 4504, - 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4523, 4524, 0, 4526, 4527, 4528, - 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, - 4537, -470, 4539, 4540, 4541, 4542, 4543, 4544, - 4545, 4546, 4547, 4548, 4549, 4550, 4551, 5540, - 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, - 5549, 5550, 4563, 4564, 4565, 4566, 4567, 5551, - 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, - 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7622, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3677, 4829, 3680, 3681, 3297, 0, - 0, 0, 0, 0, 0, 0, 11951, 4455, - 4455, 4455, 4455, 0, 0, 0, 0, 0, - 0, 4455, 4455, 4455, 4455, 4455, 4455, 4455, - 4455, 4455, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4672, - 4673, 4674, 4675, 4676, 4677, 4678, 2560, 2561, - 3019, 0, 0, 0, 0, 3016, 107, -4832, - 1536, 2689, 1538, 2562, 2563, 1541, 1542, 1543, - 1544, 1545, 9309, 2697, 3279, 3279, 3279, 3279, - 3279, 3279, 3279, 3279, 3279, 3279, 3279, -1113, - 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, - 3279, 3279, 3279, 3279, 3279, 3279, 3279, 1575, - 1576, 1577, 1578, 1579, -3910, 1581, 1582, 4736, - 4737, -4652, 4739, -1253, 6219, 4742, 4743, 6224, - 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, - 6233, -3419, 6235, 6236, 6237, 6238, 6239, 6240, - 6241, 6242, 6243, 3882, 3883, 3884, 3885, 3886, - 3887, 3888, -5177, 3891, 3892, -5177, 3893, 3894, - 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, - -5176, -5176, -5176, -5176, -5176, -5176, -5176, -5176, - 1640, 1641, 1642, 3924, 1644, 1645, 1646, 1647, - 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, - 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, - 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, - 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, - 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, - 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, - 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, - 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, - 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, - 1728, 1729, 1730, 1731, -847, -5786, 582, 1735, - 1736, 1609, 1610, 588, 1740, 591, 592, 593, - 8357, 1745, 2327, 2327, 2327, 2327, 2327, 2327, - 1357, 2328, 2328, 1755, 1756, 1757, 1758, 1759, - 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, - 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, - 1776, 1777, 1778, 1779, 1780, 3434, 1782, 3435, - 3435, 1785, 1786, 3437, 3437, 3437, 3306, 32767, - -2509, -2509, -2509, -2509, -2509, -2509, -2509, -2509, - -2509, 1800, -2508, -2508, -2508, -2508, 32767, 32767, - -2510, 32767, -2511, 32767, 32767, -2513, -2513, -2513, - -2513, -2513, -2513, 1813, 1814, 1815, 1816, 32767, - -2509, 32767, -2510, 32767, 32767, -2511, -2511, 32767, - 32767, 32767, -3871, -3871, -2513, -2513, -2513, -2513, - -2513, -2513, -2513, -2513, -2513, -2513, -2513, -2513, - -2513, -2513, -2513, 1838, 1839, 1840, 1841, 1842, - 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, - 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, - 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, - 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, - 1883, 1401, 1885, 1886, 1887, 1888, 32767, 32767, - 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, - 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, - 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, - 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, - 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, - 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, - 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, - 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, - 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, - 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, - 3710, 1994, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 167, 612, 32767, 32767, 2714, 32767, - 32767, 32767, 32767, 32767, 168, 32767, 32767, 32767, - 32767, 169, 32767, 32767, 32767, 32767, 170, 32767, - 32767, 32767, 32767, 171, 32767, 32767, 32767, 32767, - 32767, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 172, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -1151, -127, -126, -1148, - -1147, 32767, 32767, 32767, 32767, 32767, 585, 32767, - 584, 584, 584, 584, 584, 584, 584, 584, - 584, -3808, 584, 584, 584, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 584, 584, - 32767, -1121, -1120, -1119, -1118, -1117, 32767, -1116, - 32767, 2038, 2039, 32767, 2040, -3952, 32767, 2042, - 2043, 3524, 3525, 3526, 3527, 3528, 3529, 3530, - 3531, 3532, -385, -384, 2055, -383, -382, -381, - -380, -379, -378, -377, 2063, 2064, -376, 2066, - -375, 2068, -374, -373, 2071, 2072, 2073, -322, - 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, - 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, - 718, 2092, 2093, 0, -347, 2096, -2016, 134, - 135, 2100, 2101, 2102, 2103, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1364, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -4392, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2227, 0, 0, 2230, 2231, 0, - 2233, 2105, 0, 0, 2497, 2498, 0, 0, - 0, 0, 2503, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4513, 4514, 4515, - 4516, 4517, 4518, 4519, 4520, 4521, 4522, 0, - 0, 4525, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5008, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -988, -988, -988, -988, - -988, -988, -988, -988, -988, -988, -988, 0, - 0, 0, 0, 0, -983, -983, -983, -983, - -983, -983, -983, -983, -983, -983, -983, -983, - -983, -983, -983, -983, -983, 4585, 4586, 4587, - 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, - 4596, -3025, 4598, 4599, 4600, 4601, 4602, 4603, - 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, - 4612, 4613, 4614, 4615, 4616, 4617, 4618, 942, - -209, 941, 941, 1326, 4624, 4625, 4626, 4627, - 4628, 4629, 4630, -7320, 177, 178, 179, 180, - 4636, 4637, 4638, 4639, 4640, 4641, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 4651, - 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, - 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, - 4668, 4669, 4670, 4671, 0, 0, 0, 0, - 0, 0, 0, 2119, 2119, 1662, 4682, 4683, - 4684, 4685, 1670, 4580, 9520, 3153, 2001, 3153, - 2130, 2130, 3153, 3153, 3153, 3153, 3153, -4610, - 2003, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - 1429, 1430, 1431, 1432, 5825, 1434, 1435, 1436, - 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1448, 3153, 3153, 3153, 3153, - 3153, 8643, 3153, 3153, 0, 0, 9390, 0, - 5993, -1478, 0, 0, -1480, -1480, -1480, -1480, - -1480, -1480, -1480, -1480, -1480, 2438, 2438, 0, - 2439, 2439, 2439, 2439, 2439, 2439, 2439, 0, - 0, 2441, 0, 2442, 0, 2443, 2443, 0, - 0, 0, 2396, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1373, 0, 0, 2094, 2442, - 0, 4113, 1964, 1964, 0, 0, 0, 0, - 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, - 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, - 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, - 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, - 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, - 2144, 2145, 2146, 2147, 2148, 2149, 4849, 4850, - 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, - 4859, 4860, 4861, 4862, 4863, 4864, 2500, 4866, - 4867, 4868, 4869, 4870, 2505, 4872, 4873, 4874, - 2508, 4876, 4877, 4878, 4879, 4880, 2513, 2150, - 2151, 2152, 2153, 2154, 2155, 0, 2157, 2158, - 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, - 2167, 2168, 805, 2170, 2171, 2172, 2173, 2174, - 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, - 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, - 2191, 2192, 2193, 2194, 0, 4928, 4929, 4930, - 4931, 4932, 0, 4934, 4935, 4936, 4937, 7848, - 4939, 0, 0, 0, 4943, 4944, 4945, 4946, - 4947, 4948, 4949, 4950, 0, 4952, 4953, 4954, - 0, 0, 2546, 0, 0, 2546, 2546, 2546, - 4963, -5990, 4965, 1530, 4967, 4968, 4969, 4970, - 4971, 8142, 8142, 8142, 8142, 1530, 2112, 4978, - 4979, 4980, 4981, 4982, 2644, 2645, 2646, 2647, - 2648, 2649, 2650, 2651, 2099, 2653, 4993, 4994, - 4995, 4996, 4997, 4998, 2092, 5000, 5001, 5002, - 5003, 5004, 5005, 287, 5007, 5008, 32767, 5009, - 5010, 5011, 5012, -2457, 5014, -2456, 5016, 5017, - 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, - 5026, 5027, 5028, -4624, 5030, 5031, 5032, 5033, - 5034, 5035, 5036, 5037, 5038, 2677, 2678, 2679, - 2680, 2681, 2682, 2683, 2684, 2685, 2686, -6383, - 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, - 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, - 2703, 2704, 2705, 32767, 2706, 2707, 2708, 2709, - 32767, 32767, 32767, 32767, 2710, 4682, 4683, 32767, - 2713, 32767, 2714, 906, 907, 908, 909, 2719, - 2720, 910, 2722, 2723, 2724, 2725, 2726, 2727, - 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, - 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, - 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, - 2752, 2753, 2974, 2755, 174, 2757, 2758, 2759, - 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, - 2768, 2769, 2770, 6689, 6690, 6691, 2774, 2775, - 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, - 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, - 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, - 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, - 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, - 2816, 5259, 2818, 3298, 3299, 2821, 2822, 2823, - 2824, 2825, 2826, 3170, 2828, 2829, 2830, 2831, - 2832, 2833, 2834, 3177, 3177, 3177, 3177, 3177, - 3177, 2841, 2842, 2843, 2844, 2845, 2846, 2847, - 2848, 32767, 32767, 32767, 32767, 32767, 2849, 2850, - 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, - 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, - 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, - 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, - 2883, -1495, 2885, 2886, 4004, 4005, 4006, 4007, - 4008, -1495, -1495, 2894, 2895, -1495, -1495, 2898, - 2899, 2900, 2901, 2902, 2903, 2904, 2905, -1494, - 2907, 2908, 2909, 2910, 2911, 2912, 2913, -1494, - 2915, 2916, 2917, 2918, 3677, 2920, 3680, 3681, - 3129, 2924, 2925, 2926, 2927, 2928, 2929, 2930, - 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, - 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, - 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, - 2955, 2956, -1468, -1468, 2959, 2960, 2961, 2962, - 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, - 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, - 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, - 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, - 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, - 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, - 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, - 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, - 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, - 3035, 3036, 3037, 3038, 32767, 32767, 32767, 3039, - 3040, 3041, 3042, 3043, 3044, 32767, 32767, 3045, - 3046, 3047, 3048, 3049, 3050, 32767, 32767, 3051, - 3052, 3053, 3054, 3055, 3056, 32767, 32767, 3057, - 3058, 3059, 32767, 32767, 32767, 3060, 3061, 3062, - 3063, 3064, 3065, 3066, 32767, 3067, 3068, 3069, - 3070, 3071, 3072, 3073, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7311,6 +6893,16 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 4205, 4206, 4207, + 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, + 4216, -4880, 4218, 5470, -4882, 4221, 4222, 4223, + 4224, 4225, 4226, 4227, 4228, 1009, 4230, 4231, + 1007, 4233, 4234, 4250, 4250, 4250, 4238, 4239, + 4240, 4253, 4253, 4243, 4244, 4245, 4246, 4247, + 4248, 4249, 4250, 4251, 4252, 4253, 4254, 353, + 7010, 3652, 4258, 4259, 7011, 4261, 4262, 4263, + 4264, 4265, 4266, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 105, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7318,38 +6910,411 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 2834, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -2302, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 0, 0, 0, 32767, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32767, 0, 0, 32767, 0, 32767, 32767, 0, - 32767, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32767, 0, 0, 0, 0, - 32767, 0, 32767, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -2356, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 0, - 32767, 0, 32767, 0, 32767, 0, 0, 0, - 32767, 0, 0, 32767, 0, 32767, 32767, 0, - 32767, 0, 32767, 0, 32767, 0, 32767, 0, - 32767, 0, 0, 32767, 0, 32767, 32767, 0, - 0, 0, 0, 32767, 0, 0, 0, 0, - 0, 0, 0, 32767, 0, 0, 0, 0, - 32767, 0, 0, 0, 0, 32767, 0, 32767, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32767, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, - 32767, 0, 0, 0, 32767, 0, 0, 0, - 0, 0, 32767, -1358, -1358, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, -4130, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -48, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 299, 32767, 300, 301, -2381, -2381, -2381, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -2388, 32767, + 32767, -4398, -4398, -4398, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -17740,32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 4825, 32767, 32767, 32767, 32767, -4293, + 32767, 32767, 32767, 109, -5804, 111, 112, 32767, + 32767, -4301, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -2438, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 685, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -20069,32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 3994, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, -6790, -6790, + 157, -3219, -17570,-1719, -1719, -3027, -3027, -19414, + -3027, -9665, -3028, -3028, -3028, -3028, -3028, 4977, + 577, -3028, -3028, -6421, 4983, -6422, -17851,9446, + -3028, -3028, 331, -3028, 3628, -3027, -3027, -3027, + -3027, -3027, -3027, 1374, 4980, 4981, 8375, -3028, + 8378, 19808, -7488, 4987, -3031, 3880, -3042, 1588, + 24261, -3032, 24264, -3032, 24267, -3032, 19640, -3032, + 24262, -3033, 1694, -3033, -3033, 1597, 24270, 1699, + 1700, 1701, 1702, 1703, 16265, -3014, 1706, 1707, + 1708, 1709, 8366, 5008, 8368, 1713, 8369, 8370, + 8371, 1717, 8374, 8375, 3975, 370, 370, -3023, + 8381, -3024, -14453,12844, 370, 8389, 1479, 8402, + 3773, -18899,8395, -18900,8397, -18901,8399, -14272, + 8401, -18892,8404, 3678, 8406, 8407, 3778, -18894, + 3678, 3678, 3678, 3678, 3678, -10883,8397, 3678, + 3678, 3678, 3678, -2978, 381, -2978, 3678, -2977, + -2977, -2977, 3678, -2978, -2978, 1423, 5029, 5030, + 8424, -2979, 8427, 19857, -7439, 5036, 5037, 1679, + 5039, -1616, 5040, 5041, 5042, 5043, 5044, 5045, + 645, -2960, -2960, -6353, 5051, -6354, -17783,9514, + -2960, 5059, -1851, 5072, 443, -22229,5065, -22230, + 5067, -22231,5069, -17602,5071, -22222,5074, 348, + 5076, 5077, 448, -22224,348, 348, 348, 348, + 348, -14213,5067, 348, 348, 348, 348, -6308, + -2949, -6308, 348, -6307, -6307, -6307, 348, -6308, + -6308, -1907, 1699, 1700, 5094, -6309, 5097, 16527, + -10769,1706, 1707, -1651, 348, 348, 348, 1286, + 348, 348, 348, 348, 348, 348, 1603, 348, + 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 4429, + 4429, 4429, 4429, 4429, 2660, 2661, 2662, 901, + 348, 348, 348, 348, 348, 348, 348, 348, + 3928, 3306, 3306, 3928, 0, 2675, 2676, 2677, + 2678, 0, 2680, 0, 0, 2683, 2684, 2685, + 2686, 4556, 2687, 2688, 2689, 8575, 2691, 2692, + -9266, -9266, -4636, 18037, -9256, 18040, -9256, 18043, + 18044, 13415, -9257, 18037, -9258, 18039, -9259, -9259, + -4629, 18044, 4581, 4582, 4583, -2184, -4527, 10035, + -9244, -2185, -4524, 4590, -4523, 2134, -1224, 2717, + 4595, 2719, 2720, 4598, 6107, 6107, 6107, 2725, + 2726, 2727, 4605, 2729, 2730, 2731, 4609, 2736, + 4611, 4612, 4613, 6118, 6118, 4616, 6119, 2743, + 4619, 4620, 2744, 2745, 6123, 2747, 6124, 4626, + 4627, 4628, 4629, 2753, 4631, 2755, 4633, 8896, + 8897, 8898, 4637, 4638, 4639, 4640, 0, 0, + 0, 0, 0, -1812, 0, 0, 0, 8925, + 0, 0, 1330, -3389, 0, 0, 0, 8940, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 10649, 8068, 0, 0, 16017, 8807, 8808, -1676, + 906, 8811, -7039, -7038, 173, 173, 10658, 8077, + 173, 16024, 16024, 8814, 8815, -1669, 913, 8818, + -7032, -7031, 180, 180, 10665, 8084, 180, 16031, + 16031, 8821, 8822, -1662, 920, 8825, 9014, -7023, + 188, 188, 10673, 8092, 188, 0, 16038, 8828, + 8829, -1655, 927, 8832, 4727, 4728, 4729, 4730, + 4305, 4732, 4733, 4734, 4735, 4736, 4737, 4738, + 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, + 4747, 4748, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, -1893, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, + 1540, 1540, 1540, 1540, 1540, 1540, 911, 1540, + 4614, 4615, 4616, 4617, 4618, 1540, 4619, 4620, + 4621, 4622, 4623, 4624, 4625, 4626, 4627, -7592, + 11688, 4630, 4631, 4632, 4633, 4634, 4635, 32767, + 4810, 4811, 4812, 4813, 3850, 3851, 4816, 4817, + 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, + 4573, 4573, 4573, 4573, 4830, 4574, 4574, 4574, + 4834, 4575, 4575, 4575, 4575, 4575, 917, 918, + 4575, 4575, 4575, 4575, 923, 4576, 4576, 926, + 927, 928, 7709, 930, 931, 932, 933, 934, + 7717, 936, 7719, 938, 7722, 940, 941, 942, + 943, 944, 945, 946, 7733, 948, 949, 950, + 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 4765, + 967, 968, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 4902, 4903, -2043, 1334, + 15686, -164, -163, 1146, 1147, 17535, 1149, 7788, + 1152, 1153, 1154, 1155, 1156, -6848, -2447, 1159, + 1160, 4554, -6849, 4557, 15987, -11309,1166, 7797, + 7798, 7799, -5489, 1167, 1168, 1169, 1170, 1171, + 1172, -3228, -6833, -6833, -10226,1178, -10227,-21656, + 7812, 7813, 7814, 7815, 7816, 4951, 7817, 7818, + 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, + 4962, 7837, 4964, 4965, 4966, 4967, 4968, 4969, + 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, + 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, + 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, + 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, + 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, + 5010, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -224, -224, -224, -6880, -3521, -6880, -224, + -6879, -6879, -6879, -6879, -6879, -6879, -2478, 1128, + 1129, 4523, -6880, 4526, 15956, -11340,1135, -6883, + 28, -6894, -2264, 20409, -6884, 20412, -6884, 20415, + 20416, 15787, -6885, 20409, -6886, -2159, -6886, -6886, + -2256, 20417, -2154, -2153, -2152, -2151, -2150, 12412, + -6867, -2147, -2146, -2145, -2144, 4513, 1155, 4515, + -2140, 4516, 4517, 4518, -2136, 4521, 4522, 122, + -3483, -3483, -6876, 4528, -6877, -18306,8991, -3483, + -3483, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -3490, 911, 4517, 4518, 7912, -3491, 7915, + 19345, -7951, 4524, -3494, 3417, -3505, 1125, 23798, + -3495, 23801, -3495, 23804, -3495, 19177, -3495, 23799, + -3496, 1231, -3496, -3496, 1134, 23807, 1236, 1237, + 1238, 1239, 1240, 15802, -3477, 1243, 1244, 1245, + 1246, 7903, 4545, 7905, 1250, 7906, 7907, 7908, + 7909, 7910, 7911, 3511, -94, -94, -3487, 7917, + -3488, -14917,12380, -94, 7925, 1015, 7938, 3309, + -19363,7931, -19364,7933, -19365,7935, -14736,7937, + -19356,7940, 3214, 7942, 7943, 3314, -19358,3214, + 3214, 3214, 3214, 3214, -11347,7933, 3214, 3214, + 3214, 3214, -3442, -83, -3442, 3214, -3441, -3441, + -3441, 3214, -3442, -3442, 959, 4565, 4566, 7960, + -3443, 7963, 19393, -7903, 4572, 4573, 1215, 4575, + -2080, 4576, 4577, 4578, 4579, 4580, 4581, 181, + -3424, -3424, -6817, 4587, -6818, -18247,9050, -3424, + 4595, -2315, 4608, -21, -22693,4601, -22694,4603, + -22695,4605, -18066,4607, -22686,4610, -116, 4612, + 4613, -16, -22688,-116, -116, -116, -116, -116, + -14677,4603, -116, -116, -116, -116, -6772, -3413, + -6772, -116, -6771, -6771, -6771, -116, -6772, -6772, + -2371, 1235, 1236, 4630, -6773, 4633, 16063, -11233, + 1242, -6776, 135, -6787, -2157, 20516, -6777, 20519, + -6777, 20522, -6777, 15895, -6777, 20517, -6778, -2051, + -6778, -6778, -2148, 20525, -2046, -2045, -2044, -2043, + -2042, 12520, -6759, -2039, -2038, -2037, -2036, 4621, + 1263, 4623, -2032, 4624, 4625, 4626, -2028, 4629, + 4630, 230, -3375, -3375, -6768, 4636, -6769, -18198, + 9099, -3375, -3375, -16, -3375, 3281, -3374, -3374, + -3374, -3374, -3374, -3374, 1027, 4633, 4634, 8028, + -3375, 8031, 19461, -7835, 4640, -3378, 3533, -3389, + 1241, 23914, -3379, 23917, -3379, 23920, -3379, 19293, + -3379, 23915, -3380, 1347, -3380, -3380, 1250, 23923, + 1352, 1353, 1354, 1355, 1356, 15918, -3361, 1359, + 1360, 1361, 1362, 8019, 4661, 8021, 1366, 8022, + 8023, 8024, 1370, 8027, 8028, 3628, 23, 23, + -3370, 8034, -3371, -14800,12497, 23, 23, 3382, + 1384, 1385, 1386, 449, 1388, 1389, 1390, 1391, + 1392, 1393, 139, 1395, 1396, 1397, 1398, 1399, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, + 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1418, -2662, -2661, -2660, -2659, -2658, + -888, -888, -888, 874, 1428, 1429, 1430, 1431, + 1432, 1433, 1434, 1435, -2144, -1521, -1520, -2141, + 1788, -886, -886, 3336, 1791, 1792, 1793, 1794, + 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, + 1803, 1804, 1458, 1459, 1805, 1461, 1806, 1463, + 1464, 1807, 1808, 1809, 1810, 1811, 1812, 1813, + 1814, 1815, 1816, 1381, 1817, 1381, 1818, 1381, + 1480, 1819, 1820, 1483, 1484, 1485, 1821, 1822, + 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, + 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, + 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, + 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, + 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 1871, 1872, 1873, 1874, 1875, 1876, 1877, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9097, 0, -1251, 9102, 0, + 0, 0, 0, 0, 0, 0, 0, 3220, + 0, 0, 3225, 0, 0, -15, -14, -13, + 0, 0, 0, -12, -11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3902, -2754, 605, 0, 0, -2751, 0, + 0, 0, 0, 0, 0, 1938, 1939, 1940, + 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, + 1949, 1950, 1951, 1530, 1443, 1532, 1533, 1956, + 1957, 1958, 1959, 1960, 1961, 1962, 141, 1964, + 1534, 1966, 1967, 1968, 1969, 1970, 1971, 1972, + 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, + 1981, 142, 143, 1984, 1985, 1986, 1987, 1988, + 1989, 1990, 1991, 1992, 1993, 1994, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 1665, 1996, 1997, + 1998, 1999, 2000, 2001, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 2002, 2003, 2004, 2005, 2006, 32767, 32767, 32767, + 32767, 32767, 2007, 32767, 2008, 2009, 2010, 2011, + 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, + 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, + -4501, -4501, -4501, -4501, -1422, -4500, -4500, -4500, + 2035, 2036, 32767, 1706, 32767, 1706, 1706, 32767, + 1705, 1705, 32767, 2042, 2043, 2044, 2045, 2046, + 2047, 1711, 2049, 1712, 2051, 4525, 4525, 4525, + 2055, 2056, 2057, 4528, 2059, 2060, 2061, 2062, + 2063, 2064, 2065, 7042, 2067, 4536, 4536, 4536, + 2071, 2072, 2073, 4539, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 1735, 1735, + 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, + 226, 227, 2097, 228, 229, 230, 6116, 232, + 233, -11725,-11725,-7095, 15578, -11715,15581, -11715, + 15584, 15585, 10956, -11716,15578, -11717,15580, -11718, + -11718,-7088, 15585, 2122, 2123, 2124, -4643, -6986, + 7576, -11703,-4644, -6983, 2131, -6982, -325, -3683, + 258, 2136, 260, 261, 2139, 3648, 3648, 3648, + 266, 267, 268, 2146, 270, 271, 272, -1029, + 32767, 32767, 32767, 32767, 6972, 2572, 32767, -1034, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -4286, + 32767, 32767, -2089, 32767, 3715, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -2492, -2492, -2492, -2492, -4304, -2492, -2492, -2492, + 6433, -2492, -2492, -1162, -5881, -2492, -2492, -2492, + 6448, -2492, -2492, -2492, -2492, -2492, -2492, -2492, + -2492, -2492, -2492, -2492, -2492, -2492, -2492, -2492, + -2492, 8157, 5576, -2492, -2492, 13525, 6315, 6316, + -4168, -1586, 6319, -9531, -9530, 32767, 2195, 2196, + 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, + 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, + 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, + 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, + 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, + 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, + 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, + 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, + 2261, 2262, -5075, 2264, 2265, 2266, 2267, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, + 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, + 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, + 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, + 2301, 2302, 2303, 1667, 1667, 2306, 2307, 2308, + 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, + 2317, 2318, 2319, 2320, 2321, 1358, 1359, 2324, + 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, + 2333, 2081, 2081, 2081, 2081, 2338, 2082, 2082, + 2082, 2342, 2083, 2083, 2083, 2083, 2083, -1575, + -1574, 2083, 2083, 2083, 2083, -1569, 2084, 2084, + -1566, -1565, -1564, 5217, -1562, -1561, -1560, -1559, + -1558, 5225, -1556, 5227, -1554, 5230, -1552, -1551, + -1550, -1549, -1548, -1547, -1546, 5241, -1544, -1543, + -1542, -1541, -1540, -1539, -1538, -1537, -1536, -1535, + -1534, -1533, -1532, -1531, -1530, -1529, -1528, -1527, + 2273, -1525, -1524, -1523, -1522, -1521, -1520, -1519, + -1518, -1517, -1516, -1515, -1514, 2410, 2411, -4535, + -1158, 13194, -2656, -2655, -1346, -1345, 15043, -1343, + 5296, -1340, -1339, -1338, -1337, -1336, -9340, -4939, + -1333, -1332, 2062, -9341, 2065, 13495, -13801,-1326, + 5305, 5306, 5307, -7981, -1325, -1324, -1323, -1322, + -1321, -1320, -5720, -9325, -9325, -12718,32767, 2451, + 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, + 2460, 2461, 2462, 2463, 2464, 2465, -6169, 4316, + 1735, -6169, 9682, 9682, 2472, 2473, -8011, -5429, + 2476, -13374,-13373,2479, 2480, 2481, 2482, 2483, + 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, + 2492, 2493, 2494, 2495, 2496, 2497, 2498, 203, + 1141, 203, 203, 203, 203, 203, 203, 1458, + 203, 2509, 2510, 2511, 2512, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 155, 32767, 32767, 32767, + 32767, 156, 32767, 32767, 32767, 32767, 157, 207, + 4288, 4288, 4288, 4288, 4288, 2519, 2520, 2521, + 760, 207, 207, 207, 207, 207, 207, 207, + 207, 3787, 3165, 3165, 2534, 2535, 2536, 2537, + 2538, 2539, -139, 2541, -139, -139, 2544, 2545, + 2546, 2547, 2548, 2549, 2550, 2551, 8437, 2553, + 2554, -9404, -9404, -4774, 17899, -9394, 17902, -9394, + 17905, 17906, 13277, -9395, 17899, -9396, -4669, -9396, + -9396, -4766, 17907, -4664, -4663, -4662, -4661, 0, + 32767, -9379, -4659, -4658, -4657, -4656, 2001, -1357, + 2584, 4462, 2586, 2587, 4465, 5974, 5974, 5974, + 2592, 2593, 2594, 4472, 2596, 2597, 2598, 4476, + 2603, 4478, 4479, 4480, 5985, 5985, 4483, 5986, + 2610, 4486, 4487, 2611, 2612, 5990, 2614, 5991, + 4493, 4494, 4495, 4496, 2620, 4498, 2622, 4500, + 8763, 8764, 8765, 4504, 4505, 4506, 4507, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8635, + -1849, 733, 8638, -7212, -7211, 0, 0, 10485, + 7904, 0, 15851, 15851, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 2296, 1359, 2298, 2299, 2300, 2301, 2302, 2303, + 1049, 2305, 0, 0, 0, 0, 0, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 173, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 2306, -1774, -1773, -1772, -1771, -1770, 0, 0, + 0, 1762, 2316, 2317, 2318, 2319, 2320, 2321, + 2322, 2323, -1256, -633, -632, 0, 0, 0, + 0, 0, 0, 2679, 0, 2681, 2682, 0, + 0, 0, 0, 0, 0, 0, 0, -5885, + 0, 0, 11959, 11960, 7331, -15341,11953, -15342, + 11955, -15343,-15343,-10713,11960, -15333,11963, 7237, + 11965, 11966, 7337, -15335,7237, 7237, 7237, 7237, + 7237, -7324, 11956, 7237, 7237, 7237, 7237, 581, + 3940, 0, -1877, 0, 0, -1877, -3385, -3384, + -3383, 0, 0, 0, -1877, 0, 0, 0, + -1877, -3, -1877, -1877, -1877, -3381, -3380, -1877, + -3379, -2, -1877, -1877, 0, 0, -3377, 0, + -3376, -1877, -1877, -1877, -1877, 0, -1877, 0, + -1877, -6139, -6139, -6139, -1877, -1877, -1877, -1877, + 2764, 2765, 2766, 2767, 2768, 4581, 2770, 2771, + 2772, -6152, 2774, 2775, 1446, 6166, 2778, 2779, + 2780, -6159, 2782, 2783, 2784, 2785, 2786, 2787, + 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, + 2796, 2797, -7851, -5269, 2800, 2801, -13215,-6004, + -6004, 4481, 1900, -6004, 9847, 9847, 2637, 2638, + -7846, -5264, 2641, -13209,-13208,-5997, -5997, 4488, + 1907, -5997, 9854, 9854, 2644, 2645, -7839, -5257, + 2648, -13202,-13201,-5990, -5990, 4495, 1914, -5990, + -6178, 9860, 2650, 2651, -7833, -5251, 2654, 2843, + -13194,-5983, -5983, 4502, 1921, 32767, 32767, 32767, + 32767, 32767, 2849, 2850, 1029, 2852, 2422, 2854, + 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, + 2863, 2864, 2865, 2866, 2867, 2868, 2869, 1030, + 1031, 2872, 2873, 2874, 2875, 2876, 2877, 2878, + 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, + 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, + 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, + 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, + 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, + 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, + 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, + 2935, 2936, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 2958, + 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, + 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, + 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, + 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, + 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, + 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, + 3007, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 4471, + -2296, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 3568, 3035, 3036, 3037, 3038, + 32767, 32767, 32767, 3039, 3040, 3041, 3042, 3043, + 3044, 32767, 32767, 3045, 3046, 3047, 4565, 3049, + 4567, 32767, 32767, -1319, -1319, -1319, -1319, -1319, + -1319, 32767, 32767, -1321, -1321, 3059, 32767, 32767, + 32767, -1050, 3061, 3062, 3063, 3064, 3065, 3066, + 32767, 3067, 3068, 3069, 3070, 3693, 3694, 3073, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7357,17 +7322,68 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, + 0, 32767, 0, 0, 0, 0, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -3663, -3662, -3661, -3660, -3659, 0, 0, + -3656, -3655, -3654, -3653, 0, -3652, -3651, 0, + 0, 0, -6780, 0, 0, 0, 0, 0, + -6782, 0, -6782, 0, -6783, 0, 0, 0, + 0, 0, 0, 0, -6786, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -3799, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -3923, -3923, 3024, -352, + -14703,1148, 1148, -160, -160, -16547,-160, -6798, + -161, -161, -161, -161, -161, 7844, 3444, -161, + -161, -3554, 7850, -3555, -14984,12313, -161, -161, + 3198, -161, 6495, -160, -160, -160, -160, -160, + -160, 4241, 7847, 7848, 11242, -161, 11245, 22675, + -4621, 7854, -164, 6747, -175, 4455, 27128, -165, + 27131, -165, 27134, -165, 22507, -165, 27129, -166, + 4561, -166, -166, 4464, 27137, 4566, 4567, 4568, + 4569, 4570, 19132, -147, 4573, 4574, 4575, 4576, + 11233, 7875, 11235, 4580, 11236, 11237, 11238, 4584, + 11241, 11242, 6842, 3237, 3237, -156, 11248, -157, + -11586,15711, 3237, 11256, 4346, 11269, 6640, -16032, + 11262, -16033,11264, -16034,11266, -11405,11268, -16025, + 11271, 6545, 11273, 11274, 6645, -16027,6545, 6545, + 6545, 6545, 6545, -8016, 11264, 6545, 6545, 6545, + 6545, -111, 3248, -111, 6545, -110, -110, -110, + 6545, -111, -111, 4290, 7896, 7897, 11291, -112, + 11294, 22724, -4572, 4364, 4365, 32767, 4366, 4367, + 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, + 4376, 4377, 4378, 4379, 4380, 4381, 4382, 32767, + 32767, 32767, 32767, 32767, 4383, 4384, 4385, 32767, + 4386, 4387, 4388, 4389, 4390, 32767, 4391, 4392, + 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, + 4401, 4402, 4403, 4404, 4405, 4406, 4407, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, -847, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, -1078, -8000, -3370, 19303, + 32767, 19305, -7991, 19308, -7991, 14681, -7991, 19303, + 32767, 32767, -7994, 32767, -3365, 32767, -3264, -3263, + 32767, 32767, 32767, 32767, 32767, 32767, -3262, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 3394, 3395, + -3259, 3398, 3399, -1001, 32767, 32767, 32767, 32767, + -8004, -19433,32767, -4611, -4611, 32767, 32767, 32767, + 32767, 32767, 32767, -4616, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 6782, 18212, -9084, 3391, -4627, + 2284, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 5181, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, -1272, + 32767, 32767, 32767, 32767, 32767, -851, 32767, 32767, + 0, 88, 0, 0, 32767, 32767, 32767, 89, + 90, 32767, 91, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7376,8 +7392,12 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 434, 435, 0, 436, 0, + 437, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 434, 435, 436, 32767, 437, + 438, 32767, 32767, 32767, 439, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7392,23 +7412,20 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, -2069, 32767, 32767, -2071, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, -2105, -2105, 32767, 32767, -2107, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4645, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + -1906, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 256, - 257, 258, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7416,92 +7433,112 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 4408, 4409, + 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, + 4418, 32767, 32767, 32767, 32767, 32767, 4419, 4420, + 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, + 20816, 4430, 4431, 4432, 4433, 4434, 4435, 4436, + -3568, 833, 4439, 4440, 7834, -3569, 7837, 19267, + -8029, 4446, 4447, 1089, 4449, -2206, 4450, 4451, + 4452, 4453, 4454, 4455, 55, -3550, 4458, -6944, + 4460, 4461, -18375,4463, 4464, 4465, 4466, 4477, + -152, -22824,4470, -22825,4472, -22826,4474, -18197, + 4476, 4477, 4478, -248, 4480, 4481, 32767, -22821, + 32767, -250, 32767, 32767, 32767, 32767, 32767, 32767, + -256, 32767, 32767, 32767, 32767, -6916, 32767, -6916, + 32767, -6917, 32767, -6919, -6919, -2518, 32767, 1088, + 4482, 4483, 4484, 32767, 32767, 1091, 32767, -17, + 32767, -2310, 32767, -6931, 32767, -6932, 32767, -6933, + 15739, 32767, 20360, 32767, 32767, -6937, -6937, -2307, + 20366, 32767, -2205, -2204, -2203, -2202, 12360, -6919, + -2199, 32767, -2198, -2197, 4460, 1102, 4485, -2194, + 4462, 4463, 4464, 32767, 4466, 32767, 66, -3539, + -3539, -6932, 4472, -6933, -18362,8935, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 32767, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 4486, + 4487, 4488, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4489, + 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, + 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, + 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, + 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, + 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, + 4530, 4531, 4532, 32767, 32767, 32767, 32767, 4533, + 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4542, + 4543, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -1593, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 32767, 32767, 0, 32767, + 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 4210, 4211, 4212, 4213, 32767, - 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, - 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, - 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, - 4238, 4239, 4240, 32767, 4241, 4242, 32767, 4243, - 32767, 32767, 4244, 32767, 4245, 4246, 4247, 4248, - 4249, 4250, 4251, 4252, 4253, 4254, 32767, 4255, - 4256, 4257, 4258, 32767, 4259, 32767, 4260, 32767, - 32767, 32767, 32767, 32767, 32767, 4261, 32767, 32767, - 32767, 32767, 4262, 32767, 4263, 32767, 4264, 32767, - 4265, 4266, 4267, 32767, 4268, 4269, 32767, 4270, - 32767, 32767, 4271, 32767, 4272, 32767, 4273, 32767, - 4274, 32767, 4275, 32767, 4276, 4277, 32767, 4278, - 32767, 32767, 4279, 4280, 4281, 4282, 32767, 4283, - 4284, 4285, 4286, 4287, 4288, 4289, 32767, 4290, - 4291, 4292, 4293, 32767, 4294, 4295, 4296, 4297, - 32767, 4298, 32767, 4299, 4300, 4301, 4302, 4303, - 4304, 4305, 4306, 4307, 4308, 0, 4309, 4310, - 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, - 4319, 4320, 4321, 4322, 4323, 4324, 4325, 0, - 0, 0, 0, 32767, 4326, 4327, 4328, 32767, - 4329, 4330, 4331, 4332, 4333, 32767, 5692, 5693, - 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, - 4344, 4345, 4346, 4347, 4348, 4349, 4350, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 483, 0, 0, - 0, 0, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 637, + 638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 964, 964, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 254, 255, + 256, 0, 257, 258, 259, 0, 260, 261, + 262, 263, 264, 3923, 3923, 267, 268, 269, + 270, 3923, 271, 272, 3923, 3923, 3923, -2857, + 3923, 3923, 3923, 3923, 3923, -2859, 3923, -2859, + 3923, -2860, 3923, 3923, 3923, 3923, 3923, 3923, + 3923, -2863, 3923, 3923, 3923, 3923, 3923, 3923, + 3923, 3923, 3923, 3923, 3923, 3923, 3923, 3923, + 3923, 3923, 3923, 3923, 124, 3923, 3923, 3923, + 3923, 3923, 3923, 3923, 3923, 3923, 3923, 3923, + 3923, 0, 0, 6947, 3571, -10780,5071, 5071, + 3763, 3763, -12624,3763, -2875, 3762, 3762, 3762, + 3762, 3762, 11767, 7367, 3762, 3762, 369, 11773, + 368, -11061,16236, 3762, -2868, -2868, -2868, 10421, + 3766, 3766, 3766, 3766, 3766, 3766, 8167, 11773, + 11774, 15168, 3765, 15171, 26601, -2866, -2866, -2866, + -2866, -2866, 0, -2865, -2865, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1717, 0, 32767, 32767, + 0, 0, 0, 0, 0, 0, 5011, 5012, + 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, + 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, + 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, + 5037, 5038, 5039, 5040, 5041, 5042, 5267, 5268, + 5269, 11926, 8568, 11928, 5273, 11929, 11930, 11931, + 11932, 11933, 11934, 7534, 3929, 3929, 536, 11940, + 535, -10894,16403, 3929, 11948, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1769, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1778, 0, 0, - 0, 0, -1782, 0, 0, 0, 0, -1786, - 0, 0, 0, 0, -1790, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1802, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1811, 0, -1812, -1812, -1812, - -1812, -1812, 0, 0, 0, 0, 0, 0, - 0, -1819, 0, 0, 0, 0, 0, 0, - -459, -458, 0, 0, 0, 0, -3016, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32767, 32767, 32767, 32767, 32767, 32767, 0, 32767, - 0, 32767, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7509,94 +7546,69 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, + 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, + 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, + 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, + 3416, 3417, 3418, 10075, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 223, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4379, - 0, 0, -1117, -1117, -1117, -1117, -1117, 4387, - 4388, 0, 0, 4391, 4392, 0, 0, 0, - 0, 0, 0, 0, 0, 4400, 0, 0, - 0, 0, 0, 0, 0, 4408, 0, 0, - 0, 0, -758, 0, -759, -759, -206, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4425, 4426, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32767, 32767, 32767, 0, 0, 0, - 0, 0, 0, 32767, 32767, 0, 0, 0, - 0, 0, 0, 32767, 32767, 0, 0, 0, - 0, 0, 0, 32767, 32767, 0, 0, 0, - 32767, 32767, 32767, 0, 0, 0, 0, 0, - 0, 0, 32767, 0, 0, 0, 0, 0, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4429, - 4430, 4431, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 4432, - 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, - 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, - 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, - 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, - 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, - 4473, 4474, 4475, 32767, 32767, 32767, 32767, 4476, - 4477, 4478, 4479, 4480, 4481, 539, 540, 4484, - 0, 0, 0, 0, 0, 0, 0, 4485, - 1146, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -3433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -629, 0, 3074, 3075, 3076, 3077, 3078, + 0, 3079, 3080, 3081, 3082, 3083, 3084, 3085, + 3086, 3087, -9132, 10148, 3090, 3091, 3092, 3093, + 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, + 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, + 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, + 3118, 3119, 3120, 6777, 3121, 3122, 3123, 3124, + 3125, 3126, 3127, 3128, 3129, 6780, 0, 6780, + 6780, 6780, 0, 0, 0, 6782, 0, 0, + 0, 0, 6784, 0, 6785, 0, 6786, 6786, + 0, 6786, 0, 6787, 6787, 6787, 0, 6788, + 6788, 6788, 6788, 6788, 6788, 6788, 0, 6789, + 6789, 6789, 6789, 2990, 6789, 0, 0, 0, + 0, 6793, 6793, 6793, 6793, 6793, 0, 0, + 0, 0, 0, 0, -7904, 7947, 7947, 6639, + 6639, -9748, 32767, 0, 6637, 32767, 32767, 6635, + 32767, 32767, 10238, 6633, 32767, 32767, 14642, 3237, + -8192, 19105, 32767, 0, 0, 0, 13289, 6634, + 6634, 6634, 6634, 6634, 6634, 11035, 14641, 32767, + 18035, 32767, 18037, 29467, 0, 0, 0, 0, + 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6227, - 6228, -3161, 6230, 238, 234, 6232, 6233, 7714, - 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, - 7723, -1929, 7725, 7726, 7727, 7728, 7729, 7730, - 7731, 7732, 7733, 5372, 5373, 5374, 5375, 5376, - 5377, 5378, -3687, 5381, 5382, -3687, 5383, 5384, - 5385, 5386, 5387, 5388, 5389, 5390, 5391, -3687, - -3687, -3687, -3687, -3687, -3687, -3687, -3687, -3687, - 3129, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, -3700, 32767, 32767, + 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 285, -3734, -3734, 288, 289, -3734, -3734, -3734, - -3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734, - -3734, 1547, -956, -956, -3734, -3734, -3734, 3440, - -3734, -3734, -3734, -3734, -3734, -3734, -3734, -3734, - -3734, -3734, -3734, -3734, -3734, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7624,128 +7636,23 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 322, 323, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 0, 0, + 0, 0, 0, 32767, 32767, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 114, 115, 116, 117, 118, 119, 120, - 121, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 32767, 32767, 32767, 32767, 0, - 0, 0, 0, 0, 0, 3943, 3943, 0, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 3340, 32767, 325, 32767, 326, 32767, 327, 32767, - 328, 32767, 329, 32767, 330, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 331, 32767, 332, 333, 334, 335, - 336, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 337, 32767, 338, 32767, 339, 340, 341, 32767, - 32767, 32767, 342, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 343, 32767, 344, 345, 346, 32767, - 32767, 32767, 347, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 348, 32767, 349, 350, 351, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 352, 32767, 353, 32767, 354, 355, 32767, 32767, - -1816, -1816, -1816, -1816, -1816, -1816, -1816, -1816, - -1816, -1816, -1816, 32767, 32767, 32767, 32767, 32767, - 32767, -1822, 32767, 32767, 32767, 32767, 32767, 368, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 369, 370, 371, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 372, - 32767, 32767, 32767, 373, 374, 32767, 375, 376, - 32767, 32767, 32767, 32767, 6367, 0, -1152, 0, - -1023, -1023, 0, 0, 0, 0, 0, -7763, - -1150, -1731, -1730, -1729, -1728, -1727, -1726, -1725, - -1724, -1723, -1722, -1721, 2672, -1719, -1718, -1717, - -1716, -1715, -1714, -1713, -1712, -1711, -1710, -1709, - -1708, -1707, -1706, -1705, 0, 0, 0, 0, - 0, 5490, 0, 0, -3153, -3153, 6237, -3153, - 2840, -4631, -3153, -3153, -4633, -4633, -4633, -4633, - -4633, -4633, -4633, -4633, -4633, -4633, 5020, -4633, - -4633, -4633, -4633, -4633, -4633, -4633, -4633, -4633, - -2271, -2271, -2271, -2271, -2271, -2271, -2271, 6795, - -2272, -2272, 6798, -2271, -2271, -2271, -2271, -2271, - -2271, -2271, -2271, -2271, -2271, 6808, 6809, 6810, - 6811, 6812, 6813, 6814, 6815, 0, 0, 0, - -2281, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2579, 7519, 1152, 0, 0, 128, 128, - 1151, 0, 1150, 1150, 1150, -6613, 0, -581, - -580, -579, -578, -577, -576, 395, -575, -574, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1653, 0, -1652, -1651, 0, 0, - -1650, -1649, -1648, -1516, -1647, 473, 474, 475, - 476, 477, 32767, 32767, 32767, 32767, -7018, 479, - 480, 481, 482, 32767, 32767, 32767, 32767, 32767, - 32767, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 9308, - 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 3684, 3684, 3684, 519, 3685, 3685, - 9912, 9913, 524, 9915, 3923, 3919, 9917, 9918, - 11399, 0, 11402, 11403, 11404, 11405, 11406, 11407, - 11408, 11409, 1757, 11411, 11412, 11413, 11414, 11415, - 11416, 11417, 11418, 11419, 0, 9060, 9061, 9062, - 9063, 9064, 9065, 0, 9068, 9069, 0, 9070, - 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2659, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2745, 2745, 2745, - 2745, 2745, 2745, 2745, 2745, 2745, 0, 0, - 0, -4730, 6052, 0, -4732, -4732, -4732, -4732, - 0, 0, 4919, -4734, -4734, 0, -4735, -4735, - -4735, 4019, 0, 0, 4022, 4023, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5281, 2778, 2778, 0, 0, 0, - 7174, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2067, 918, - 32767, 534, -2763, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, @@ -7755,158 +7662,350 @@ NFKC_QC_hash_func(const void *key) 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 224, 225, 226, 32767, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, + 32767, 2087, -494, -8398, 7453, 7453, 243, 244, + -10240,-7658, 247, -15603,-15602,250, 251, 252, + 253, 254, 255, 32767, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, + 268, -2027, -1089, -2027, -2027, -2027, -2027, -2027, + -2027, -772, -2027, 279, 280, 281, 282, 283, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 284, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, -1717, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 0, 0, 0, 0, 0, - 0, 0, 0, 553, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 285, 286, 287, 288, 289, 290, 291, 292, + 6178, 294, 295, -11663,-11663,-7033, 15640, -11653, + 15643, -11653,15646, 15647, 11018, -11654,15640, -11655, + -6928, -11655,-11655,-7025, 15648, -6923, -6922, -6921, + -6920, -6919, 7643, -11636,-6916, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, -2360, 5111, -2360, -2360, -2360, - -2360, -2360, -2360, -2360, -2360, -2360, -2360, -2360, - -2360, -2360, 7293, -2360, -2360, -2360, -2360, -2360, - 3144, 3145, -2362, -2362, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 32767, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32767, 0, 0, 0, 0, 32767, - 32767, 32767, 32767, 0, -1971, -1971, 32767, 0, - 32767, 0, 1809, 1809, 1809, 1809, 0, 0, - 1811, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -220, 0, 2582, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -3918, -3918, -3918, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -2442, 0, -479, -479, 0, 0, 0, 0, - 0, 0, -343, 0, 0, 0, 0, 0, - 0, 0, -342, -341, -340, -339, -338, -337, - 0, 0, 0, 0, 0, 0, 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 2495, 2496, 0, 0, 2499, 2500, 2501, - 2502, 0, 2504, 2505, 2506, 2507, 2508, 1141, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -363, - 0, -362, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, -17220,-12590,10083, + -17210,10086, 5360, 10088, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, -4703, -4703, -4703, -4703, -4703, -4703, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -4261, 2507, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -3346, 32767, 32767, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -2546, -2546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767, 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 100, -3197, 0, -3198, -3198, - 0, 0, 0, 8750, -3943, 0, 0, -3943, - 542, 543, 544, 545, 546, 547, 548, -3936, - -596, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 1375, 626, 627, 628, 629, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 324, 32767, 325, 32767, 326, 32767, 327, 32767, + 328, 32767, 329, 32767, 330, 0, 0, 0, + 0, 0, 0, 32767, 32767, 223, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6529, + 6530, 6531, 6532, 32767, 6532, 6533, 6534, 0, + 0, 32767, 331, 32767, 332, 333, 334, 335, + 336, 32767, 0, 0, 0, 0, 0, 0, + 337, 0, 338, 0, -2473, -2472, -2471, 0, + 0, 0, -2470, 0, 0, 0, 0, 0, + 0, 0, -4976, 0, -2468, -2467, -2466, 0, + 0, 0, -2465, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 350, 351, 0, + 0, 0, 0, 0, 0, 0, 0, 1869, + 1869, 0, 1870, 1870, 1870, -4015, 1870, 1870, + 13829, 13830, 9201, -13471,13823, -13472,13825, -13473, + -13473,-8843, 13830, -13463,13833, -13463,13836, 13837, + 9208, -13464,0, 0, 0, 6768, 9112, -5449, + 13831, 6773, 9113, 0, 9114, 2458, 5817, 1877, + 0, 1877, 1877, 0, -1508, -1507, -1506, 1877, + 1877, 1877, 0, 1877, 1877, 1877, 0, 1874, + 0, 0, 0, -1504, -1503, 0, -1502, 1875, + 0, 0, 1877, 1877, -1500, 1877, -1499, 0, + 0, 0, 0, 1877, 0, 1877, 0, -4262, + -4262, -4262, 0, 0, 0, 0, 4641, 4642, + 4643, 4644, 4645, 6458, 4647, 4648, 4649, -4275, + 4651, 4652, 3323, 8043, 4655, 4656, 4657, -4282, + 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, + 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, + -5974, -3392, 4677, 4678, -11338,-4127, -4127, 6358, + 3777, -4127, 11724, 11724, 4514, 4515, -5969, -3387, + 4518, -11332,-11331,-4120, -4120, 6365, 3784, -4120, + 11731, 11731, 4521, 4522, -5962, -3380, 4525, -11325, + -11324,-4113, -4113, 6372, 3791, -4113, -4301, 11737, + 4527, 4528, -5956, -3374, 4531, 4720, -11317,-4106, + -4106, 6379, 3798, -4106, 0, 0, 0, 0, + 426, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3209, 3210, 3211, 3212, 3213, 3214, + 3215, 3216, 3217, 3218, 3219, 6653, 3221, 3222, + 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, + 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, + 3239, 3240, 3241, 3242, 3243, 3244, 3874, 3246, + 173, 173, 173, 173, 173, 3252, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 12394, + -6885, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, -3484, + -3483, 174, 174, 174, 174, 174, 174, 174, + 174, 174, -3476, 3305, -3474, -3473, -3472, 3309, + 3310, 3311, -3470, 3313, 3314, 3315, 3316, -3467, + 3318, -3466, 3320, -3465, -3464, 3323, -3462, 3325, + -3461, -3460, -3459, 3329, -3458, -3457, -3456, -3455, + -3454, -3453, -3452, 3337, -3451, -3450, -3449, -3448, + 352, -3446, 3344, 3345, 3346, 3347, -3445, -3444, + -3443, -3442, -3441, 3353, 3354, 3355, 3356, 3357, + 3358, 11263, -4587, -4586, -3277, -3276, 13112, -3274, + 3365, -3271, -3270, -3269, -3268, -3267, -11271,-6870, + -3264, -3263, 131, -11272,134, 11564, -15732,-3257, + 3374, 3375, 3376, -9912, -3256, -3255, -3254, -3253, + -3252, -3251, -7651, -11256,-11256,-14649,-3245, -14650, + -26079,3389, 3390, 3391, 3392, 3393, 528, 3394, + 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, + 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, + 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, + 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, + 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, + 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, + 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, + 3451, 3452, 32767, 3453, 3454, 3455, 3456, 3457, + 3458, 32767, 3459, 3460, 3461, 3462, 32767, 32767, + 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, + 32767, 3471, 3472, 3473, 3474, 3475, 3476, 3477, + 32767, 3478, 3479, 3480, 3481, 3482, 3483, 3484, + 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, + 3493, 7157, 7157, 7157, 7157, 7157, 3499, 3500, + 7157, 7157, 7157, 7157, 3505, 32767, 7157, 3507, + 3508, 3509, 32767, 3510, 3511, 3512, 3513, 3514, + 32767, 3515, 32767, 32767, 32767, 3516, 3517, 3518, + 3519, 3520, 3521, 3522, 32767, 3523, 3524, 3525, + 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, + 3534, 3535, 3536, 3537, 3538, 3539, 3540, 7340, + 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, + 3550, 3551, 3552, 3553, 7477, 7478, 532, 3909, + 18261, 2411, 2412, 3721, 3722, 20110, 3724, 10363, + 3727, 3728, 3729, 3730, 3731, -4273, 128, 3734, + 3735, 7129, -4274, 7132, 18562, -8734, 3741, 3742, + 384, 3744, -2911, 3745, 3746, 3747, 3748, 3749, + 3750, -650, -4255, -4255, -7648, 3756, -7649, -19078, + 8219, -4255, 3764, -3146, 3777, -852, -23524,3770, + -23525,3772, -23526,3774, -18897,3776, -23517,3779, + -947, 3781, 3782, -847, -23519,-947, -947, -947, + -947, -947, -15508,3772, -947, -947, -947, -947, + -7603, -4244, -7603, -947, -7602, -7602, -7602, -947, + -7603, -7603, -3202, 404, 405, 3799, -7604, 3802, + 15232, -12064,411, -7607, -696, -7618, -2988, 19685, + -7608, 19688, -7608, 19691, -7608, 15064, -7608, 19686, + -7609, -2882, -7609, -7609, -2979, 19694, -2877, -2876, + -2875, -2874, -2873, 11689, -7590, -2870, -2869, -2868, + -2867, 3790, 432, 3792, -2863, 3793, 3794, 3795, + -2859, 3798, 3799, -601, -4206, -4206, -7599, 3805, + -7600, -19029,8268, -4206, -4206, -847, -4206, 2450, + -4205, -4205, -4205, -4205, -4205, -4205, 196, 3802, + 3803, 7197, -4206, 7200, 18630, -8666, 3809, -4209, + 2702, -4220, 410, 23083, -4210, 23086, -4210, 23089, + -4210, 18462, -4210, 23084, -4211, 516, -4211, -4211, + 419, 23092, 521, 522, 523, 524, 525, 15087, + -4192, 528, 529, 530, 531, 7188, 3830, 7190, + 535, 7191, 7192, 7193, 539, 7196, 7197, 2797, + -808, -808, -4201, 7203, -4202, -15631,11666, -808, + -808, 2551, -808, 5848, -807, -807, -807, -807, + -807, -807, 3594, 7200, 7201, 10595, -808, 10598, + 22028, -5268, 7207, -811, 6100, -822, 3808, 26481, + -812, 26484, -812, 26487, -812, 21860, -812, 26482, + -813, 3914, -813, -813, 3817, 26490, 3919, 3920, + 3921, 3922, 3923, 18485, -794, 3926, 3927, 3928, + 3929, 10586, 7228, 10588, 3933, 10589, 10590, 10591, + 3937, 10594, 10595, 6195, 2590, 2590, -803, 10601, + -804, -12233,15064, 2590, 10609, 3699, 10622, 5993, + -16679,10615, -16680,10617, -16681,10619, -12052,10621, + -16672,10624, 5898, 10626, 10627, 5998, -16674,5898, + 5898, 5898, 5898, 5898, -8663, 10617, 5898, 5898, + 5898, 5898, 32767, 32767, -760, 5896, -759, -759, + -759, 5896, -760, -760, 3641, 7247, 7248, 10642, + -761, 10645, 22075, -5221, 7254, 7255, 3897, 7257, + 602, 7258, 7259, 7260, 7261, 7262, 7263, 2863, + -742, -742, -4135, 7269, -4136, -15565,11732, -742, + 7277, 367, 7290, 2661, -20011,7283, -20012,7285, + -20013,7287, -15384,7289, -20004,7292, 2566, 7294, + 7295, 2666, -20006,2566, 2566, 2566, 2566, 2566, + -11995,7285, 2566, 2566, 2566, 2566, -4090, -731, + -4090, 2566, -4089, -4089, -4089, 2566, -4090, -4090, + 311, 3917, 3918, 7312, -4091, 7315, 18745, -8551, + 3924, 3925, 567, 2566, 32767, 23198, -4095, 23201, + -4095, 23204, -4095, 18577, -4095, 23199, -4096, 631, + -4096, -4096, 534, 23207, 636, 637, 638, 639, + 640, 15202, -4077, 643, 644, 645, 646, 7303, + 3945, 7305, 650, 7306, 7307, 7308, 654, 7311, + 7312, 2912, -693, -693, -4086, 7318, -4087, -15516, + 11781, -693, -693, 2666, -693, 5963, -692, -692, + -692, -692, -692, -692, 3709, 7315, 7316, 10710, + -693, 10713, 22143, -5153, 7322, -696, 6215, -707, + 3923, 26596, -697, 26599, -697, 26602, -697, 21975, + -697, 26597, -698, 4029, -698, -698, 3932, 26605, + 4034, 4035, 4036, 4037, 4038, 18600, -679, 4041, + 4042, 4043, 4044, 10701, 7343, 10703, 4048, 10704, + 10705, 10706, 4052, 10709, 10710, 6310, 2705, 2705, + -688, 10716, -689, -12118,15179, 2705, 2705, 6064, + 4066, 4067, 4068, 3131, 4070, 4071, 4072, 4073, + 4074, 4075, 2821, 4077, 4078, 4079, 4080, 4081, + 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, + 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, + 4098, 4099, 4100, 20, 21, 22, 23, 24, + 1794, 1794, 1794, 3556, 4110, 4111, 4112, 4113, + 4114, 4115, 4116, 4117, 538, 1161, 1162, 541, + 4470, 1796, 1796, 6018, 4473, 4474, 4475, 4476, + 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, + 4485, 4486, 4140, 4141, 4487, 4143, 4488, 4145, + 4146, 4489, 4490, 4491, 4492, 4493, 4494, 4495, + 4496, 575, 576, 4061, 4497, 4061, 4498, 4061, + 4160, 4499, 4500, 4163, 4164, 4165, 4501, 4502, + 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, + 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, + 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, + 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, + 4535, 4536, 4202, 0, 5914, 0, 0, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 666, 667, 668, 669, + -1842, -1842, -1842, -1842, -1842, -1842, -1842, -1842, + -1842, -1842, -1842, -1842, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -4470, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 6910, 0, 32767, 32767, 32767, + 32767, -20383,6914, 32767, 32767, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 32767, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 12220, + -7059, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, -7886, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, - 32767, 32767, 32767, 32767, 32767, 32767, 32767, 0, - 0, 0, 0, 7470, 0, 7471, 0, 0, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 3132, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 3133, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 0, 32767, 32767, 32767, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 32767, 32767, 32767, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -16387,0, 0, 0, 0, + 0, 0, 0, 8005, 3605, 0, 0, -3393, + 8011, -3394, -14823,12474, 0, 0, 3359, 0, + 32767, 0, 0, 0, 0, 0, 0, 4401, + 8007, 0, 11403, 0, 0, 22837, 0, 0, + 0, 0, -10, 4620, 27293, 0, 27296, 0, + 27299, 0, 22672, 0, 0, 0, 4727, 0, + 0, 3135, 32767, 32767, 32767, 32767, 32767, 32767, + 3136, 32767, 32767, 3137, 32767, 3138, 3139, 3140, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 0, 0, 0, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 0, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, + 32767, 32767, 32767, 32767, 32767, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9653, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32767, 32767, 32767, - 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, - 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, - 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, - 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, - 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, - 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, - 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, - 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, - 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, - 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, - 3232, 3233, 3234, 3235, 3236, 32767, 3237, 3238, - 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, - 3247, 3248, 1885, 3250, 3251, 3252, 3253, 3254, - 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, - 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, - 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, - 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, - 3287, 3288, 3289, 3290, 7683, 3292, 3293, 3294, - 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, - 3303, 3304, 3305, 3306, 3307, 32767, 3308, 3309, - 32767, 32767, 3310, 32767, 32767, 3311, 3312, 32767, - 32767, 3313, 3314, 3315, 3316, 32767, 3317, 3318, - 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, - -1186, -1186, 4489, -1187, 4491, -1188, -1188, -1188, - -1188, -1188, 3335, 3336, 32767, 3337, 3338, 3339, - 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, - 3348, -1659, 3350, 3351, 3352, 3353, 3354, 3355, - 3356, 3357, 3358, 3359, 3360, 3361, 3362, 4351, - 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, - 4360, 4361, 3374, 3375, 3376, 3377, 3378, 4362, - 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, - 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, - 0, 4380, 4381, 5499, 5500, 5501, 5502, 5503, - 0, 0, 4389, 4390, 0, 0, 3406, 4393, - 4394, 4395, 4396, 4397, 4398, 4399, 0, 4401, - 4402, 4403, 4404, 4405, 4406, 4407, 0, 4409, - 4410, 4411, 4412, 5171, 4414, 5174, 5175, 4623, - 4418, 4419, 4420, 4421, 4422, 4423, 4424, 3437, - 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, - 3446, 3447, 3448, 32767, 3449, 3450, 3451, 3131, - 32767, 3453, 3454, 3455, 3456, 3457, 32767, 3458, - 32767, 0, 0, 4427, 3460, 3461, 3462, 3463, - 3464, 3465, 32767, 3466, 3467, 3468, 3469, 3470, - 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, - 3146, 3367, 3148, 567, 3150, 3151, 3485, 3486, - 3487, 3488, 3489, 3490, 3491, 3492, 3493, 4428, - 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, - 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, - 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, - 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, - 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, - 3535, 3536, 3537, 3538, 3539, 3540, 3541 + 0, 0, 0, 0, 32767, 32767, 0, 32767, + 0, 32767, 32767, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 32767, 0, 32767, + 0, 32767, 32767, 0, 0, 32767, 32767, 32767, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0 }; const unsigned char *k = (const unsigned char *) key; size_t keylen = 4; uint32 a = 0; - uint32 b = 1; + uint32 b = 3; while (keylen--) { @@ -7915,12 +8014,12 @@ NFKC_QC_hash_func(const void *key) a = a * 257 + c; b = b * 8191 + c; } - return h[a % 10079] + h[b % 10079]; + return h[a % 10193] + h[b % 10193]; } /* Hash lookup information for NFKC_QC */ static const pg_unicode_norminfo UnicodeNormInfo_NFKC_QC = { UnicodeNormProps_NFKC_QC, NFKC_QC_hash_func, - 5039 + 5096 }; diff --git a/src/include/common/unicode_version.h b/src/include/common/unicode_version.h index bf1f64b95b109..5f6a00ba1eaea 100644 --- a/src/include/common/unicode_version.h +++ b/src/include/common/unicode_version.h @@ -11,4 +11,4 @@ *------------------------------------------------------------------------- */ -#define PG_UNICODE_VERSION "15.1" +#define PG_UNICODE_VERSION "16.0" diff --git a/src/include/executor/execdesc.h b/src/include/executor/execdesc.h index ba53305ad42d2..86db3dc8d0de2 100644 --- a/src/include/executor/execdesc.h +++ b/src/include/executor/execdesc.h @@ -35,7 +35,6 @@ typedef struct QueryDesc /* These fields are provided by CreateQueryDesc */ CmdType operation; /* CMD_SELECT, CMD_UPDATE, etc. */ PlannedStmt *plannedstmt; /* planner's output (could be utility, too) */ - CachedPlan *cplan; /* CachedPlan that supplies the plannedstmt */ const char *sourceText; /* source text of the query */ Snapshot snapshot; /* snapshot to use for query */ Snapshot crosscheck_snapshot; /* crosscheck for RI update/delete */ @@ -58,7 +57,6 @@ typedef struct QueryDesc /* in pquery.c */ extern QueryDesc *CreateQueryDesc(PlannedStmt *plannedstmt, - CachedPlan *cplan, const char *sourceText, Snapshot snapshot, Snapshot crosscheck_snapshot, diff --git a/src/include/executor/executor.h b/src/include/executor/executor.h index ae99407db89df..104b059544dd3 100644 --- a/src/include/executor/executor.h +++ b/src/include/executor/executor.h @@ -19,7 +19,6 @@ #include "nodes/lockoptions.h" #include "nodes/parsenodes.h" #include "utils/memutils.h" -#include "utils/plancache.h" /* @@ -73,7 +72,7 @@ /* Hook for plugins to get control in ExecutorStart() */ -typedef bool (*ExecutorStart_hook_type) (QueryDesc *queryDesc, int eflags); +typedef void (*ExecutorStart_hook_type) (QueryDesc *queryDesc, int eflags); extern PGDLLIMPORT ExecutorStart_hook_type ExecutorStart_hook; /* Hook for plugins to get control in ExecutorRun() */ @@ -229,11 +228,8 @@ ExecGetJunkAttribute(TupleTableSlot *slot, AttrNumber attno, bool *isNull) /* * prototypes from functions in execMain.c */ -extern bool ExecutorStart(QueryDesc *queryDesc, int eflags); -extern void ExecutorStartCachedPlan(QueryDesc *queryDesc, int eflags, - CachedPlanSource *plansource, - int query_index); -extern bool standard_ExecutorStart(QueryDesc *queryDesc, int eflags); +extern void ExecutorStart(QueryDesc *queryDesc, int eflags); +extern void standard_ExecutorStart(QueryDesc *queryDesc, int eflags); extern void ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, uint64 count); extern void standard_ExecutorRun(QueryDesc *queryDesc, @@ -300,30 +296,6 @@ extern void ExecEndNode(PlanState *node); extern void ExecShutdownNode(PlanState *node); extern void ExecSetTupleBound(int64 tuples_needed, PlanState *child_node); -/* - * Is the CachedPlan in es_cachedplan still valid? - * - * Called from InitPlan() because invalidation messages that affect the plan - * might be received after locks have been taken on runtime-prunable relations. - * The caller should take appropriate action if the plan has become invalid. - */ -static inline bool -ExecPlanStillValid(EState *estate) -{ - return estate->es_cachedplan == NULL ? true : - CachedPlanValid(estate->es_cachedplan); -} - -/* - * Locks are needed only if running a cached plan that might contain unlocked - * relations, such as a reused generic plan. - */ -static inline bool -ExecShouldLockRelations(EState *estate) -{ - return estate->es_cachedplan == NULL ? false : - CachedPlanRequiresLocking(estate->es_cachedplan); -} /* ---------------------------------------------------------------- * ExecProcNode diff --git a/src/include/executor/functions.h b/src/include/executor/functions.h index a6ae2e72d79e6..58bdff9b0392d 100644 --- a/src/include/executor/functions.h +++ b/src/include/executor/functions.h @@ -48,8 +48,7 @@ extern void check_sql_fn_statements(List *queryTreeLists); extern bool check_sql_fn_retval(List *queryTreeLists, Oid rettype, TupleDesc rettupdesc, char prokind, - bool insertDroppedCols, - List **resultTargetList); + bool insertDroppedCols); extern DestReceiver *CreateSQLFunctionDestReceiver(void); diff --git a/src/include/fe_utils/option_utils.h b/src/include/fe_utils/option_utils.h index 82c093df996a7..4504bbb36a83c 100644 --- a/src/include/fe_utils/option_utils.h +++ b/src/include/fe_utils/option_utils.h @@ -12,8 +12,6 @@ #ifndef OPTION_UTILS_H #define OPTION_UTILS_H -#include "postgres_fe.h" - #include "common/file_utils.h" typedef void (*help_handler) (const char *progname); diff --git a/src/include/fe_utils/query_utils.h b/src/include/fe_utils/query_utils.h index 42e911d720a92..4d7f7d6057330 100644 --- a/src/include/fe_utils/query_utils.h +++ b/src/include/fe_utils/query_utils.h @@ -12,8 +12,6 @@ #ifndef QUERY_UTILS_H #define QUERY_UTILS_H -#include "postgres_fe.h" - #include "libpq-fe.h" extern PGresult *executeQuery(PGconn *conn, const char *query, bool echo); diff --git a/src/include/jit/SectionMemoryManager.h b/src/include/jit/SectionMemoryManager.h index 6bed991bd2be9..924a99b0d333a 100644 --- a/src/include/jit/SectionMemoryManager.h +++ b/src/include/jit/SectionMemoryManager.h @@ -19,10 +19,10 @@ #ifndef LLVM_EXECUTIONENGINE_BACKPORT_SECTIONMEMORYMANAGER_H #define LLVM_EXECUTIONENGINE_BACKPORT_SECTIONMEMORYMANAGER_H -#include "llvm/ADT/SmallVector.h" -#include "llvm/ExecutionEngine/RTDyldMemoryManager.h" -#include "llvm/Support/Alignment.h" -#include "llvm/Support/Memory.h" +#include +#include +#include +#include #include #include #include diff --git a/src/include/libpq/auth.h b/src/include/libpq/auth.h index 25b5742068f1c..cc9643cce2fd8 100644 --- a/src/include/libpq/auth.h +++ b/src/include/libpq/auth.h @@ -37,7 +37,7 @@ extern PGDLLIMPORT bool pg_krb_caseins_users; extern PGDLLIMPORT bool pg_gss_accept_delegation; extern void ClientAuthentication(Port *port); -extern void sendAuthRequest(Port *port, AuthRequest areq, const char *extradata, +extern void sendAuthRequest(Port *port, AuthRequest areq, const void *extradata, int extralen); extern void set_authn_id(Port *port, const char *id); diff --git a/src/include/libpq/crypt.h b/src/include/libpq/crypt.h index dee477428e408..a1b4b36314336 100644 --- a/src/include/libpq/crypt.h +++ b/src/include/libpq/crypt.h @@ -51,7 +51,7 @@ extern char *encrypt_password(PasswordType target_type, const char *role, extern char *get_role_password(const char *role, const char **logdetail); extern int md5_crypt_verify(const char *role, const char *shadow_pass, - const char *client_pass, const char *md5_salt, + const char *client_pass, const uint8 *md5_salt, int md5_salt_len, const char **logdetail); extern int plain_crypt_verify(const char *role, const char *shadow_pass, const char *client_pass, diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h index 0d1f1838f73d3..d6e671a638257 100644 --- a/src/include/libpq/libpq-be.h +++ b/src/include/libpq/libpq-be.h @@ -139,6 +139,9 @@ typedef struct Port int remote_hostname_errcode; /* see above */ char *remote_port; /* text rep of remote port */ + /* local_host is filled only if needed (see log_status_format) */ + char local_host[64]; /* ip addr of local socket for client conn */ + /* * Information that needs to be saved from the startup packet and passed * into backend execution. "char *" fields are NULL if not set. diff --git a/src/include/libpq/oauth.h b/src/include/libpq/oauth.h index 2c6892ffba4b7..f75d2e31a68a8 100644 --- a/src/include/libpq/oauth.h +++ b/src/include/libpq/oauth.h @@ -91,11 +91,11 @@ typedef const OAuthValidatorCallbacks *(*OAuthValidatorModuleInit) (void); extern PGDLLEXPORT const OAuthValidatorCallbacks *_PG_oauth_validator_module_init(void); /* Implementation */ -extern const pg_be_sasl_mech pg_be_oauth_mech; +extern PGDLLIMPORT const pg_be_sasl_mech pg_be_oauth_mech; /* * Ensure a validator named in the HBA is permitted by the configuration. */ -extern bool check_oauth_validator(HbaLine *hba, int elevel, char **err_msg); +extern bool check_oauth_validator(HbaLine *hbaline, int elevel, char **err_msg); #endif /* PG_OAUTH_H */ diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index 46b37e0e4ebb7..f04ca13565398 100644 --- a/src/include/libpq/pqcomm.h +++ b/src/include/libpq/pqcomm.h @@ -91,11 +91,10 @@ is_unixsock_path(const char *path) /* * The earliest and latest frontend/backend protocol version supported. - * (Only protocol version 3 is currently supported) */ #define PG_PROTOCOL_EARLIEST PG_PROTOCOL(3,0) -#define PG_PROTOCOL_LATEST PG_PROTOCOL(3,0) +#define PG_PROTOCOL_LATEST PG_PROTOCOL(3,2) typedef uint32 ProtocolVersion; /* FE/BE protocol version number */ @@ -129,7 +128,12 @@ typedef uint32 AuthRequest; * * The cancel request code must not match any protocol version number * we're ever likely to use. This random choice should do. + * + * Before PostgreSQL v18 and the protocol version bump from 3.0 to 3.2, the + * cancel key was always 4 bytes. With protocol version 3.2, it's variable + * length. */ + #define CANCEL_REQUEST_CODE PG_PROTOCOL(1234,5678) typedef struct CancelRequestPacket @@ -137,7 +141,8 @@ typedef struct CancelRequestPacket /* Note that each field is stored in network byte order! */ MsgType cancelRequestCode; /* code to identify a cancel request */ uint32 backendPID; /* PID of client's backend */ - uint32 cancelAuthCode; /* secret key to authorize cancel */ + uint8 cancelAuthCode[FLEXIBLE_ARRAY_MEMBER]; /* secret key to + * authorize cancel */ } CancelRequestPacket; /* Application-Layer Protocol Negotiation is required for direct connections diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index bfef95baea2c8..4b4a9974b75b3 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -664,6 +664,8 @@ extern int pg_valid_server_encoding_id(int encoding); */ extern void pg_encoding_set_invalid(int encoding, char *dst); extern int pg_encoding_mblen(int encoding, const char *mbstr); +extern int pg_encoding_mblen_or_incomplete(int encoding, const char *mbstr, + size_t remaining); extern int pg_encoding_mblen_bounded(int encoding, const char *mbstr); extern int pg_encoding_dsplen(int encoding, const char *mbstr); extern int pg_encoding_verifymbchar(int encoding, const char *mbstr, int len); diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index 603d0424354d3..1bef98471c363 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -191,8 +191,8 @@ extern PGDLLIMPORT pg_time_t MyStartTime; extern PGDLLIMPORT TimestampTz MyStartTimestamp; extern PGDLLIMPORT struct Port *MyProcPort; extern PGDLLIMPORT struct Latch *MyLatch; -extern PGDLLIMPORT bool MyCancelKeyValid; -extern PGDLLIMPORT int32 MyCancelKey; +extern PGDLLIMPORT uint8 MyCancelKey[]; +extern PGDLLIMPORT int MyCancelKeyLength; extern PGDLLIMPORT int MyPMChildSlot; extern PGDLLIMPORT char OutputFileName[]; @@ -352,7 +352,7 @@ typedef enum BackendType * Auxiliary processes. These have PGPROC entries, but they are not * attached to any particular database, and cannot run transactions or * even take heavyweight locks. There can be only one of each of these - * running at a time. + * running at a time, except for IO workers. * * If you modify these, make sure to update NUM_AUXILIARY_PROCS and the * glossary in the docs. diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 5b6cadb5a6c16..2492282213ff3 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -42,7 +42,6 @@ #include "storage/condition_variable.h" #include "utils/hsearch.h" #include "utils/queryenvironment.h" -#include "utils/plancache.h" #include "utils/reltrigger.h" #include "utils/sharedtuplestore.h" #include "utils/snapshot.h" @@ -664,7 +663,6 @@ typedef struct EState * ExecRowMarks, or NULL if none */ List *es_rteperminfos; /* List of RTEPermissionInfo */ PlannedStmt *es_plannedstmt; /* link to top of plan tree */ - CachedPlan *es_cachedplan; /* CachedPlan providing the plan tree */ List *es_part_prune_infos; /* List of PartitionPruneInfo */ List *es_part_prune_states; /* List of PartitionPruneState */ List *es_part_prune_results; /* List of Bitmapset */ @@ -717,7 +715,6 @@ typedef struct EState int es_top_eflags; /* eflags passed to ExecutorStart */ int es_instrument; /* OR of InstrumentOption flags */ bool es_finished; /* true when ExecutorFinish is done */ - bool es_aborted; /* true when execution was aborted */ List *es_exprcontexts; /* List of ExprContexts within EState */ diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index df331b1c0d998..4610fc61293b0 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -2495,6 +2495,8 @@ typedef struct ATAlterConstraint { NodeTag type; char *conname; /* Constraint name */ + bool alterEnforceability; /* changing enforceability properties? */ + bool is_enforced; /* ENFORCED? */ bool alterDeferrability; /* changing deferrability properties? */ bool deferrable; /* DEFERRABLE? */ bool initdeferred; /* INITIALLY DEFERRED? */ diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h index c24a1fc8514c2..6567759595daa 100644 --- a/src/include/nodes/pathnodes.h +++ b/src/include/nodes/pathnodes.h @@ -138,9 +138,6 @@ typedef struct PlannerGlobal /* "flat" list of integer RT indexes */ List *resultRelations; - /* "flat" list of integer RT indexes (one per ModifyTable node) */ - List *firstResultRels; - /* "flat" list of AppendRelInfos */ List *appendRelations; @@ -1134,8 +1131,7 @@ typedef struct IndexOptInfo IndexOptInfo; #define HAVE_INDEXOPTINFO_TYPEDEF 1 #endif -struct IndexPath; /* avoid including pathnodes.h here */ -struct PlannerInfo; /* avoid including pathnodes.h here */ +struct IndexPath; /* forward declaration */ struct IndexOptInfo { @@ -1403,6 +1399,36 @@ typedef struct JoinDomain * entry: consider SELECT random() AS a, random() AS b ... ORDER BY b,a. * So we record the SortGroupRef of the originating sort clause. * + * Derived equality clauses are stored in ec_derives_list. For small queries, + * this list is scanned directly during lookup. For larger queries -- e.g., + * with many partitions or joins -- a hash table (ec_derives_hash) is built + * when the list grows beyond a threshold, for faster lookup. When present, + * the hash table contains the same RestrictInfos and is maintained alongside + * the list. We retain the list even when the hash is used to simplify + * serialization (e.g., in _outEquivalenceClass()) and support + * EquivalenceClass merging. + * + * In contrast, ec_sources holds equality clauses that appear directly in the + * query. These are typically few and do not require a hash table for lookup. + * + * 'ec_members' is a List of all !em_is_child EquivalenceMembers in the class. + * EquivalenceMembers for any RELOPT_OTHER_MEMBER_REL and RELOPT_OTHER_JOINREL + * relations are stored in the 'ec_childmembers' array in the index + * corresponding to the relid, or first component relid in the case of + * RELOPT_OTHER_JOINRELs. 'ec_childmembers' is NULL if the class has no child + * EquivalenceMembers. + * + * For code wishing to look at EquivalenceMembers, if only parent-level + * members are needed, then a simple foreach loop over ec_members is + * sufficient. When child members are also required, it is best to use the + * functionality provided by EquivalenceMemberIterator. This visits all + * parent members and only the relevant child members. The reason for this + * is that large numbers of child EquivalenceMembers can exist in queries to + * partitioned tables with many partitions. The functionality provided by + * EquivalenceMemberIterator allows efficient access to EquivalenceMembers + * which belong to specific child relids. See the header comments for + * EquivalenceMemberIterator below for further details. + * * NB: if ec_merged isn't NULL, this class has been merged into another, and * should be ignored in favor of using the pointed-to class. * @@ -1420,9 +1446,14 @@ typedef struct EquivalenceClass List *ec_opfamilies; /* btree operator family OIDs */ Oid ec_collation; /* collation, if datatypes are collatable */ + int ec_childmembers_size; /* # elements in ec_childmembers */ List *ec_members; /* list of EquivalenceMembers */ + List **ec_childmembers; /* array of Lists of child members */ List *ec_sources; /* list of generating RestrictInfos */ - List *ec_derives; /* list of derived RestrictInfos */ + List *ec_derives_list; /* list of derived RestrictInfos */ + struct derives_hash *ec_derives_hash; /* optional hash table for fast + * lookup; contains same + * RestrictInfos as list */ Relids ec_relids; /* all relids appearing in ec_members, except * for child members (see below) */ bool ec_has_const; /* any pseudoconstants in ec_members? */ @@ -1451,12 +1482,17 @@ typedef struct EquivalenceClass * child when necessary to build a MergeAppend path for the whole appendrel * tree. An em_is_child member has no impact on the properties of the EC as a * whole; in particular the EC's ec_relids field does NOT include the child - * relation. An em_is_child member should never be marked em_is_const nor - * cause ec_has_const or ec_has_volatile to be set, either. Thus, em_is_child - * members are not really full-fledged members of the EC, but just reflections - * or doppelgangers of real members. Most operations on EquivalenceClasses - * should ignore em_is_child members, and those that don't should test - * em_relids to make sure they only consider relevant members. + * relation. em_is_child members aren't stored in the ec_members List of the + * EC and instead they're stored and indexed by the relids of the child + * relation they represent in ec_childmembers. An em_is_child member + * should never be marked em_is_const nor cause ec_has_const or + * ec_has_volatile to be set, either. Thus, em_is_child members are not + * really full-fledged members of the EC, but just reflections or + * doppelgangers of real members. Most operations on EquivalenceClasses + * should ignore em_is_child members by only inspecting members in the + * ec_members list. Callers that require inspecting child members should do + * so using an EquivalenceMemberIterator and should test em_relids to make + * sure they only consider relevant members. * * em_datatype is usually the same as exprType(em_expr), but can be * different when dealing with a binary-compatible opfamily; in particular @@ -1479,6 +1515,67 @@ typedef struct EquivalenceMember struct EquivalenceMember *em_parent pg_node_attr(read_write_ignore); } EquivalenceMember; +/* + * EquivalenceMemberIterator + * + * EquivalenceMemberIterator allows efficient access to sets of + * EquivalenceMembers for callers which require access to child members. + * Because partitioning workloads can result in large numbers of child + * members, the child members are not stored in the EquivalenceClass's + * ec_members List. Instead, these are stored in the EquivalenceClass's + * ec_childmembers array of Lists. The functionality provided by + * EquivalenceMemberIterator aims to provide efficient access to parent + * members and child members belonging to specific child relids. + * + * Currently, there is only one way to initialize and iterate over an + * EquivalenceMemberIterator and that is via the setup_eclass_member_iterator + * and eclass_member_iterator_next functions. The iterator object is + * generally a local variable which is passed by address to + * setup_eclass_member_iterator. The calling function defines which + * EquivalenceClass the iterator should be looking at and which child + * relids to also return members for. child_relids can be passed as NULL, but + * the caller may as well just perform a foreach loop over ec_members as only + * parent-level members will be returned in that case. + * + * When calling the next function on an EquivalenceMemberIterator, all + * parent-level EquivalenceMembers are returned first, followed by all child + * members for the specified 'child_relids' for all child members which were + * indexed by any of the specified 'child_relids' in add_child_eq_member(). + * + * Code using the iterator method of finding EquivalenceMembers will generally + * always want to ensure the returned member matches their search criteria + * rather than relying on the filtering to be done for them as all parent + * members are returned and for members belonging to RELOPT_OTHER_JOINREL + * rels, the member's em_relids may be a superset of the specified + * 'child_relids', which might not be what the caller wants. + * + * The most common way to use this iterator is as follows: + * ----- + * EquivalenceMemberIterator it; + * EquivalenceMember *em; + * + * setup_eclass_member_iterator(&it, ec, child_relids); + * while ((em = eclass_member_iterator_next(&it)) != NULL) + * { + * ... + * } + * ----- + * It is not valid to call eclass_member_iterator_next() after it has returned + * NULL for any given EquivalenceMemberIterator. Individual fields within + * the EquivalenceMemberIterator struct must not be accessed by callers. + */ +typedef struct +{ + EquivalenceClass *ec; /* The EquivalenceClass to iterate over */ + int current_relid; /* Current relid position within 'relids'. -1 + * when still looping over ec_members and -2 + * at the end of iteration */ + Relids child_relids; /* Relids of child relations of interest. + * Non-child rels are ignored */ + ListCell *current_cell; /* Next cell to return within current_list */ + List *current_list; /* Current list of members being returned */ +} EquivalenceMemberIterator; + /* * PathKeys * @@ -1492,9 +1589,7 @@ typedef struct EquivalenceMember * equivalent and closely-related orderings. (See optimizer/README for more * information.) * - * Note: pk_strategy is either BTLessStrategyNumber (for ASC) or - * BTGreaterStrategyNumber (for DESC). We assume that all ordering-capable - * index types will use btree-compatible strategy numbers. + * Note: pk_cmptype is either COMPARE_LT (for ASC) or COMPARE_GT (for DESC). */ typedef struct PathKey { @@ -1504,8 +1599,8 @@ typedef struct PathKey /* the value that is ordered */ EquivalenceClass *pk_eclass pg_node_attr(copy_as_scalar, equal_as_scalar); - Oid pk_opfamily; /* btree opfamily defining the ordering */ - int pk_strategy; /* sort direction (ASC or DESC) */ + Oid pk_opfamily; /* index opfamily defining the ordering */ + CompareType pk_cmptype; /* sort direction (ASC or DESC) */ bool pk_nulls_first; /* do NULLs come before normal values? */ } PathKey; @@ -2155,6 +2250,12 @@ typedef struct NestPath * mergejoin. If it is not NIL then it is a PathKeys list describing * the ordering that must be created by an explicit Sort node. * + * outer_presorted_keys is the number of presorted keys of the outer + * path that match outersortkeys. It is used to determine whether + * explicit incremental sort can be applied when outersortkeys is not + * NIL. We do not track the number of presorted keys of the inner + * path, as incremental sort currently does not support mark/restore. + * * skip_mark_restore is true if the executor need not do mark/restore calls. * Mark/restore overhead is usually required, but can be skipped if we know * that the executor need find only one match per outer tuple, and that the @@ -2172,6 +2273,8 @@ typedef struct MergePath List *path_mergeclauses; /* join clauses to be used for merge */ List *outersortkeys; /* keys for explicit sort, if any */ List *innersortkeys; /* keys for explicit sort, if any */ + int outer_presorted_keys; /* number of presorted keys of the + * outer path */ bool skip_mark_restore; /* can executor skip mark/restore? */ bool materialize_inner; /* add Materialize to inner? */ } MergePath; @@ -2770,9 +2873,9 @@ typedef struct RestrictInfo typedef struct MergeScanSelCache { /* Ordering details (cache lookup key) */ - Oid opfamily; /* btree opfamily defining the ordering */ + Oid opfamily; /* index opfamily defining the ordering */ Oid collation; /* collation for the ordering */ - int strategy; /* sort direction (ASC or DESC) */ + CompareType cmptype; /* sort direction (ASC or DESC) */ bool nulls_first; /* do NULLs come before normal values? */ /* Results */ Selectivity leftstartsel; /* first-join fraction for clause left side */ diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h index 658d76225e472..f0d514e6e1526 100644 --- a/src/include/nodes/plannodes.h +++ b/src/include/nodes/plannodes.h @@ -105,13 +105,6 @@ typedef struct PlannedStmt /* integer list of RT indexes, or NIL */ List *resultRelations; - /* - * rtable indexes of first target relation in each ModifyTable node in the - * plan for INSERT/UPDATE/DELETE/MERGE - */ - /* integer list of RT indexes, or NIL */ - List *firstResultRels; - /* list of AppendRelInfo nodes */ List *appendRelations; diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h index 3aa3c16e44223..d397fe27dc1e1 100644 --- a/src/include/optimizer/cost.h +++ b/src/include/optimizer/cost.h @@ -108,7 +108,7 @@ extern void cost_resultscan(Path *path, PlannerInfo *root, RelOptInfo *baserel, ParamPathInfo *param_info); extern void cost_recursive_union(Path *runion, Path *nrterm, Path *rterm); extern void cost_sort(Path *path, PlannerInfo *root, - List *pathkeys, int disabled_nodes, + List *pathkeys, int input_disabled_nodes, Cost input_cost, double tuples, int width, Cost comparison_cost, int sort_mem, double limit_tuples); @@ -132,7 +132,7 @@ extern void cost_agg(Path *path, PlannerInfo *root, AggStrategy aggstrategy, const AggClauseCosts *aggcosts, int numGroupCols, double numGroups, List *quals, - int input_disabled_nodes, + int disabled_nodes, Cost input_startup_cost, Cost input_total_cost, double input_tuples, double input_width); extern void cost_windowagg(Path *path, PlannerInfo *root, @@ -160,6 +160,7 @@ extern void initial_cost_mergejoin(PlannerInfo *root, List *mergeclauses, Path *outer_path, Path *inner_path, List *outersortkeys, List *innersortkeys, + int outer_presorted_keys, JoinPathExtraData *extra); extern void final_cost_mergejoin(PlannerInfo *root, MergePath *path, JoinCostWorkspace *workspace, diff --git a/src/include/optimizer/optimizer.h b/src/include/optimizer/optimizer.h index 78e05d88c8ec8..546828b54bd27 100644 --- a/src/include/optimizer/optimizer.h +++ b/src/include/optimizer/optimizer.h @@ -158,6 +158,11 @@ extern List *expand_function_arguments(List *args, bool include_out_arguments, Oid result_type, struct HeapTupleData *func_tuple); +extern ScalarArrayOpExpr *make_SAOP_expr(Oid oper, Node *leftexpr, + Oid coltype, Oid arraycollid, + Oid inputcollid, List *exprs, + bool haveNonConst); + /* in util/predtest.c: */ extern bool predicate_implied_by(List *predicate_list, List *clause_list, diff --git a/src/include/optimizer/pathnode.h b/src/include/optimizer/pathnode.h index 719be3897f637..60dcdb77e41be 100644 --- a/src/include/optimizer/pathnode.h +++ b/src/include/optimizer/pathnode.h @@ -179,7 +179,8 @@ extern MergePath *create_mergejoin_path(PlannerInfo *root, Relids required_outer, List *mergeclauses, List *outersortkeys, - List *innersortkeys); + List *innersortkeys, + int outer_presorted_keys); extern HashPath *create_hashjoin_path(PlannerInfo *root, RelOptInfo *joinrel, diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h index bc5dfd7db4174..a48c972179712 100644 --- a/src/include/optimizer/paths.h +++ b/src/include/optimizer/paths.h @@ -167,7 +167,8 @@ extern bool exprs_known_equal(PlannerInfo *root, Node *item1, Node *item2, extern EquivalenceClass *match_eclasses_to_foreign_key_col(PlannerInfo *root, ForeignKeyOptInfo *fkinfo, int colno); -extern RestrictInfo *find_derived_clause_for_ec_member(EquivalenceClass *ec, +extern RestrictInfo *find_derived_clause_for_ec_member(PlannerInfo *root, + EquivalenceClass *ec, EquivalenceMember *em); extern void add_child_rel_equivalences(PlannerInfo *root, AppendRelInfo *appinfo, @@ -182,6 +183,10 @@ extern void add_setop_child_rel_equivalences(PlannerInfo *root, RelOptInfo *child_rel, List *child_tlist, List *setop_pathkeys); +extern void setup_eclass_member_iterator(EquivalenceMemberIterator *it, + EquivalenceClass *ec, + Relids child_relids); +extern EquivalenceMember *eclass_member_iterator_next(EquivalenceMemberIterator *it); extern List *generate_implied_equalities_for_column(PlannerInfo *root, RelOptInfo *rel, ec_matches_callback_type callback, @@ -197,6 +202,7 @@ extern bool eclass_useful_for_merging(PlannerInfo *root, extern bool is_redundant_derived_clause(RestrictInfo *rinfo, List *clauselist); extern bool is_redundant_with_indexclauses(RestrictInfo *rinfo, List *indexclauses); +extern void ec_clear_derived_clauses(EquivalenceClass *ec); /* * pathkeys.c @@ -270,7 +276,7 @@ extern bool has_useful_pathkeys(PlannerInfo *root, RelOptInfo *rel); extern List *append_pathkeys(List *target, List *source); extern PathKey *make_canonical_pathkey(PlannerInfo *root, EquivalenceClass *eclass, Oid opfamily, - int strategy, bool nulls_first); + CompareType cmptype, bool nulls_first); extern void add_paths_to_append_rel(PlannerInfo *root, RelOptInfo *rel, List *live_childrels); diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index 5a93019961141..9d3debcab2801 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -117,8 +117,8 @@ extern bool innerrel_is_unique(PlannerInfo *root, extern bool innerrel_is_unique_ext(PlannerInfo *root, Relids joinrelids, Relids outerrelids, RelOptInfo *innerrel, JoinType jointype, List *restrictlist, - bool force_cache, List **uclauses); -extern List *remove_useless_self_joins(PlannerInfo *root, List *jointree); + bool force_cache, List **extra_clauses); +extern List *remove_useless_self_joins(PlannerInfo *root, List *joinlist); /* * prototypes for plan/setrefs.c diff --git a/src/include/optimizer/subselect.h b/src/include/optimizer/subselect.h index 8b9ab6e579288..48507eb4bcad3 100644 --- a/src/include/optimizer/subselect.h +++ b/src/include/optimizer/subselect.h @@ -17,6 +17,9 @@ #include "nodes/plannodes.h" extern void SS_process_ctes(PlannerInfo *root); +extern ScalarArrayOpExpr *convert_VALUES_to_ANY(PlannerInfo *root, + Node *testexpr, + Query *values); extern JoinExpr *convert_ANY_sublink_to_join(PlannerInfo *root, SubLink *sublink, Relids available_rels); diff --git a/src/include/parser/analyze.h b/src/include/parser/analyze.h index f1bd18c49f2ac..f29ed03b476ec 100644 --- a/src/include/parser/analyze.h +++ b/src/include/parser/analyze.h @@ -52,6 +52,7 @@ extern Query *transformStmt(ParseState *pstate, Node *parseTree); extern bool stmt_requires_parse_analysis(RawStmt *parseTree); extern bool analyze_requires_snapshot(RawStmt *parseTree); +extern bool query_requires_rewrite_plan(Query *query); extern const char *LCS_asString(LockClauseStrength strength); extern void CheckSelectLocking(Query *qry, LockClauseStrength strength); diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h index 40cf090ce61f8..a4af3f717a111 100644 --- a/src/include/parser/kwlist.h +++ b/src/include/parser/kwlist.h @@ -308,6 +308,7 @@ PG_KEYWORD("nullif", NULLIF, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("nulls", NULLS_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("numeric", NUMERIC, COL_NAME_KEYWORD, BARE_LABEL) PG_KEYWORD("object", OBJECT_P, UNRESERVED_KEYWORD, BARE_LABEL) +PG_KEYWORD("objects", OBJECTS_P, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("of", OF, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("off", OFF, UNRESERVED_KEYWORD, BARE_LABEL) PG_KEYWORD("offset", OFFSET, RESERVED_KEYWORD, AS_LABEL) diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 2ac6157588369..726a7c1be1f4d 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -91,6 +91,10 @@ `LLVMCreatePerfJITEventListener', and to 0 if you don't. */ #undef HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER +/* Define to 1 if you have the declaration of `memset_s', and to 0 if you + don't. */ +#undef HAVE_DECL_MEMSET_S + /* Define to 1 if you have the declaration of `posix_fadvise', and to 0 if you don't. */ #undef HAVE_DECL_POSIX_FADVISE @@ -123,6 +127,10 @@ */ #undef HAVE_DECL_STRSEP +/* Define to 1 if you have the declaration of `timingsafe_bcmp', and to 0 if + you don't. */ +#undef HAVE_DECL_TIMINGSAFE_BCMP + /* Define to 1 if you have the header file. */ #undef HAVE_EDITLINE_HISTORY_H @@ -245,6 +253,9 @@ /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM +/* Define to 1 if you have the `numa' library (-lnuma). */ +#undef HAVE_LIBNUMA + /* Define to 1 if you have the `pam' library (-lpam). */ #undef HAVE_LIBPAM @@ -284,9 +295,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `memset_s' function. */ -#undef HAVE_MEMSET_S - /* Define to 1 if you have the `mkdtemp' function. */ #undef HAVE_MKDTEMP @@ -368,6 +376,9 @@ /* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function. */ #undef HAVE_SSL_CTX_SET_CIPHERSUITES +/* Define to 1 if you have the `SSL_CTX_set_keylog_callback' function. */ +#undef HAVE_SSL_CTX_SET_KEYLOG_CALLBACK + /* Define to 1 if you have the `SSL_CTX_set_num_tickets' function. */ #undef HAVE_SSL_CTX_SET_NUM_TICKETS @@ -452,6 +463,9 @@ /* Define to 1 if curl_global_init() is guaranteed to be thread-safe. */ #undef HAVE_THREADSAFE_CURL_GLOBAL_INIT +/* Define to 1 if you have the `timingsafe_bcmp' function. */ +#undef HAVE_TIMINGSAFE_BCMP + /* Define to 1 if your compiler understands `typeof' or something similar. */ #undef HAVE_TYPEOF @@ -655,6 +669,9 @@ /* Define to 1 to build with assertion checks. (--enable-cassert) */ #undef USE_ASSERT_CHECKING +/* Define to 1 to use AVX-512 CRC algorithms with a runtime check. */ +#undef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK + /* Define to 1 to use AVX-512 popcount instructions with a runtime check. */ #undef USE_AVX512_POPCNT_WITH_RUNTIME_CHECK @@ -676,6 +693,9 @@ /* Define to 1 to build with libcurl support. (--with-libcurl) */ #undef USE_LIBCURL +/* Define to build with NUMA support. (--with-libnuma) */ +#undef USE_LIBNUMA + /* Define to build with io_uring support. (--with-liburing) */ #undef USE_LIBURING diff --git a/src/include/port.h b/src/include/port.h index 3faae03d246b8..3964d3b12936e 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -464,6 +464,10 @@ extern size_t strnlen(const char *str, size_t maxlen); extern char *strsep(char **stringp, const char *delim); #endif +#if !HAVE_DECL_TIMINGSAFE_BCMP +extern int timingsafe_bcmp(const void *b1, const void *b2, size_t len); +#endif + /* * Callers should use the qsort() macro defined below instead of calling * pg_qsort() directly. diff --git a/src/include/port/pg_crc32c.h b/src/include/port/pg_crc32c.h index 9376d223feffe..82313bb7fcfee 100644 --- a/src/include/port/pg_crc32c.h +++ b/src/include/port/pg_crc32c.h @@ -42,7 +42,10 @@ typedef uint32 pg_crc32c; #define EQ_CRC32C(c1, c2) ((c1) == (c2)) #if defined(USE_SSE42_CRC32C) -/* Use Intel SSE4.2 instructions. */ +/* + * Use either Intel SSE 4.2 or AVX-512 instructions. We don't need a runtime check + * for SSE 4.2, so we can inline those in some cases. + */ #include @@ -50,7 +53,11 @@ typedef uint32 pg_crc32c; ((crc) = pg_comp_crc32c_dispatch((crc), (data), (len))) #define FIN_CRC32C(crc) ((crc) ^= 0xFFFFFFFF) +extern pg_crc32c (*pg_comp_crc32c) (pg_crc32c crc, const void *data, size_t len); extern pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len); +#ifdef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK +extern pg_crc32c pg_comp_crc32c_avx512(pg_crc32c crc, const void *data, size_t len); +#endif /* * We can only get here if the host compiler targets SSE 4.2, but on some @@ -82,9 +89,27 @@ pg_comp_crc32c_dispatch(pg_crc32c crc, const void *data, size_t len) return crc; } else - return pg_comp_crc32c_sse42(crc, data, len); + /* Otherwise, use a runtime check for AVX-512 instructions. */ + return pg_comp_crc32c(crc, data, len); } +#elif defined(USE_SSE42_CRC32C_WITH_RUNTIME_CHECK) + +/* + * Use Intel SSE 4.2 or AVX-512 instructions, but perform a runtime check first + * to check that they are available. + */ +#define COMP_CRC32C(crc, data, len) \ + ((crc) = pg_comp_crc32c((crc), (data), (len))) +#define FIN_CRC32C(crc) ((crc) ^= 0xFFFFFFFF) + +extern pg_crc32c pg_comp_crc32c_sb8(pg_crc32c crc, const void *data, size_t len); +extern PGDLLIMPORT pg_crc32c (*pg_comp_crc32c) (pg_crc32c crc, const void *data, size_t len); +extern pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len); +#ifdef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK +extern pg_crc32c pg_comp_crc32c_avx512(pg_crc32c crc, const void *data, size_t len); +#endif + #elif defined(USE_ARMV8_CRC32C) /* Use ARMv8 CRC Extension instructions. */ @@ -103,10 +128,10 @@ extern pg_crc32c pg_comp_crc32c_armv8(pg_crc32c crc, const void *data, size_t le extern pg_crc32c pg_comp_crc32c_loongarch(pg_crc32c crc, const void *data, size_t len); -#elif defined(USE_SSE42_CRC32C_WITH_RUNTIME_CHECK) || defined(USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK) +#elif defined(USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK) /* - * Use Intel SSE 4.2 or ARMv8 instructions, but perform a runtime check first + * Use ARMv8 instructions, but perform a runtime check first * to check that they are available. */ #define COMP_CRC32C(crc, data, len) \ @@ -115,13 +140,7 @@ extern pg_crc32c pg_comp_crc32c_loongarch(pg_crc32c crc, const void *data, size_ extern pg_crc32c pg_comp_crc32c_sb8(pg_crc32c crc, const void *data, size_t len); extern pg_crc32c (*pg_comp_crc32c) (pg_crc32c crc, const void *data, size_t len); - -#ifdef USE_SSE42_CRC32C_WITH_RUNTIME_CHECK -extern pg_crc32c pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len); -#endif -#ifdef USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK extern pg_crc32c pg_comp_crc32c_armv8(pg_crc32c crc, const void *data, size_t len); -#endif #else /* diff --git a/src/include/port/pg_numa.h b/src/include/port/pg_numa.h new file mode 100644 index 0000000000000..40f1d324dcfe2 --- /dev/null +++ b/src/include/port/pg_numa.h @@ -0,0 +1,37 @@ +/*------------------------------------------------------------------------- + * + * pg_numa.h + * Basic NUMA portability routines + * + * + * Copyright (c) 2025, PostgreSQL Global Development Group + * + * IDENTIFICATION + * src/include/port/pg_numa.h + * + *------------------------------------------------------------------------- + */ +#ifndef PG_NUMA_H +#define PG_NUMA_H + +extern PGDLLIMPORT int pg_numa_init(void); +extern PGDLLIMPORT int pg_numa_query_pages(int pid, unsigned long count, void **pages, int *status); +extern PGDLLIMPORT int pg_numa_get_max_node(void); + +#ifdef USE_LIBNUMA + +/* + * This is required on Linux, before pg_numa_query_pages() as we + * need to page-fault before move_pages(2) syscall returns valid results. + */ +#define pg_numa_touch_mem_if_required(ro_volatile_var, ptr) \ + ro_volatile_var = *(volatile uint64 *) ptr + +#else + +#define pg_numa_touch_mem_if_required(ro_volatile_var, ptr) \ + do {} while(0) + +#endif + +#endif /* PG_NUMA_H */ diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index 39566ee2bd51c..92497cd6a0fb5 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -48,7 +48,7 @@ typedef struct } PMChild; #ifdef EXEC_BACKEND -extern int num_pmchild_slots; +extern PGDLLIMPORT int num_pmchild_slots; #endif /* GUC options */ @@ -117,7 +117,7 @@ pg_noreturn extern void SubPostmasterMain(int argc, char *argv[]); #endif /* defined in pmchild.c */ -extern dlist_head ActiveChildList; +extern PGDLLIMPORT dlist_head ActiveChildList; extern void InitPostmasterChildSlots(void); extern PMChild *AssignPostmasterChildSlot(BackendType btype); diff --git a/src/include/replication/origin.h b/src/include/replication/origin.h index 9cb2248fa9f30..2a73f6aa49296 100644 --- a/src/include/replication/origin.h +++ b/src/include/replication/origin.h @@ -33,6 +33,13 @@ typedef struct xl_replorigin_drop #define InvalidRepOriginId 0 #define DoNotReplicateId PG_UINT16_MAX +/* + * To avoid needing a TOAST table for pg_replication_origin, we limit + * replication origin names to 512 bytes. This should be more than enough for + * all practical use. + */ +#define MAX_RONAME_LEN 512 + extern PGDLLIMPORT RepOriginId replorigin_session_origin; extern PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn; extern PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp; diff --git a/src/include/replication/reorderbuffer.h b/src/include/replication/reorderbuffer.h index 3be0cbd7ebe2f..24e88c409ba7e 100644 --- a/src/include/replication/reorderbuffer.h +++ b/src/include/replication/reorderbuffer.h @@ -758,6 +758,10 @@ extern TransactionId *ReorderBufferGetCatalogChangesXacts(ReorderBuffer *rb); extern void ReorderBufferSetRestartPoint(ReorderBuffer *rb, XLogRecPtr ptr); +extern uint32 ReorderBufferGetInvalidations(ReorderBuffer *rb, + TransactionId xid, + SharedInvalidationMessage **msgs); + extern void StartupReorderBuffer(void); #endif diff --git a/src/include/replication/slot.h b/src/include/replication/slot.h index f5a24ccfbf2b4..eb0b93b11141d 100644 --- a/src/include/replication/slot.h +++ b/src/include/replication/slot.h @@ -307,7 +307,7 @@ extern void CheckPointReplicationSlots(bool is_shutdown); extern void CheckSlotRequirements(void); extern void CheckSlotPermissions(void); extern ReplicationSlotInvalidationCause - GetSlotInvalidationCause(const char *invalidation_reason); + GetSlotInvalidationCause(const char *cause_name); extern const char *GetSlotInvalidationCauseName(ReplicationSlotInvalidationCause cause); extern bool SlotExistsInSyncStandbySlots(const char *slot_name); diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h index ecca21fecb4c7..89f63f908f8a8 100644 --- a/src/include/replication/walreceiver.h +++ b/src/include/replication/walreceiver.h @@ -487,7 +487,6 @@ walrcv_clear_result(WalRcvExecResult *walres) /* prototypes for functions in walreceiver.c */ pg_noreturn extern void WalReceiverMain(const void *startup_data, size_t startup_data_len); -extern void ProcessWalRcvInterrupts(void); extern void WalRcvForceReply(void); /* prototypes for functions in walreceiverfuncs.c */ diff --git a/src/include/replication/walsender_private.h b/src/include/replication/walsender_private.h index 0fc77f1b4af7e..e98701038f506 100644 --- a/src/include/replication/walsender_private.h +++ b/src/include/replication/walsender_private.h @@ -96,11 +96,11 @@ typedef struct XLogRecPtr lsn[NUM_SYNC_REP_WAIT_MODE]; /* - * Are any sync standbys defined? Waiting backends can't reload the - * config file safely, so checkpointer updates this value as needed. - * Protected by SyncRepLock. + * Status of data related to the synchronous standbys. Waiting backends + * can't reload the config file safely, so checkpointer updates this value + * as needed. Protected by SyncRepLock. */ - bool sync_standbys_defined; + bits8 sync_standbys_status; /* used as a registry of physical / logical walsenders to wake */ ConditionVariable wal_flush_cv; @@ -116,6 +116,21 @@ typedef struct WalSnd walsnds[FLEXIBLE_ARRAY_MEMBER]; } WalSndCtlData; +/* Flags for WalSndCtlData->sync_standbys_status */ + +/* + * Is the synchronous standby data initialized from the GUC? This is set the + * first time synchronous_standby_names is processed by the checkpointer. + */ +#define SYNC_STANDBY_INIT (1 << 0) + +/* + * Is the synchronous standby data defined? This is set when + * synchronous_standby_names has some data, after being processed by the + * checkpointer. + */ +#define SYNC_STANDBY_DEFINED (1 << 1) + extern PGDLLIMPORT WalSndCtlData *WalSndCtl; diff --git a/src/include/rewrite/rewriteManip.h b/src/include/rewrite/rewriteManip.h index ea3908739c649..7c018f2a4e358 100644 --- a/src/include/rewrite/rewriteManip.h +++ b/src/include/rewrite/rewriteManip.h @@ -41,6 +41,18 @@ typedef enum ReplaceVarsNoMatchOption REPLACEVARS_SUBSTITUTE_NULL, /* replace with a NULL Const */ } ReplaceVarsNoMatchOption; +typedef struct ChangeVarNodes_context ChangeVarNodes_context; + +typedef bool (*ChangeVarNodes_callback) (Node *node, + ChangeVarNodes_context *arg); + +struct ChangeVarNodes_context +{ + int rt_index; + int new_index; + int sublevels_up; + ChangeVarNodes_callback callback; +}; extern Relids adjust_relid_set(Relids relids, int oldrelid, int newrelid); extern void CombineRangeTables(List **dst_rtable, List **dst_perminfos, @@ -49,7 +61,10 @@ extern void OffsetVarNodes(Node *node, int offset, int sublevels_up); extern void ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up); extern void ChangeVarNodesExtended(Node *node, int rt_index, int new_index, - int sublevels_up, bool change_RangeTblRef); + int sublevels_up, + ChangeVarNodes_callback callback); +extern bool ChangeVarNodesWalkExpression(Node *node, + ChangeVarNodes_context *context); extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, int min_sublevels_up); extern void IncrementVarSublevelsUp_rtable(List *rtable, diff --git a/src/include/storage/aio.h b/src/include/storage/aio.h index 9fe9d9ad9fa49..f3726bc3dc511 100644 --- a/src/include/storage/aio.h +++ b/src/include/storage/aio.h @@ -159,7 +159,7 @@ struct PgAioTargetInfo { /* * To support executing using worker processes, the file descriptor for an - * IO may need to be be reopened in a different process. + * IO may need to be reopened in a different process. */ void (*reopen) (PgAioHandle *ioh); diff --git a/src/include/storage/aio_internal.h b/src/include/storage/aio_internal.h index 7f18da2c85651..2d37a243abe52 100644 --- a/src/include/storage/aio_internal.h +++ b/src/include/storage/aio_internal.h @@ -344,6 +344,7 @@ extern PgAioResult pgaio_io_call_complete_local(PgAioHandle *ioh); extern void pgaio_io_perform_synchronously(PgAioHandle *ioh); extern const char *pgaio_io_get_op_name(PgAioHandle *ioh); extern bool pgaio_io_uses_fd(PgAioHandle *ioh, int fd); +extern int pgaio_io_get_iovec_length(PgAioHandle *ioh, struct iovec **iov); /* aio_target.c */ extern bool pgaio_io_can_reopen(PgAioHandle *ioh); @@ -393,26 +394,6 @@ extern const char *pgaio_io_get_target_name(PgAioHandle *ioh); pgaio_io_get_state_name(ioh), \ __VA_ARGS__) - -#ifdef USE_INJECTION_POINTS - -extern void pgaio_io_call_inj(PgAioHandle *ioh, const char *injection_point); - -/* just for use in tests, from within injection points */ -extern PgAioHandle *pgaio_inj_io_get(void); - -#else - -#define pgaio_io_call_inj(ioh, injection_point) (void) 0 - -/* - * no fallback for pgaio_inj_io_get, all code using injection points better be - * guarded by USE_INJECTION_POINTS. - */ - -#endif - - /* Declarations for the tables of function pointers exposed by each IO method. */ extern PGDLLIMPORT const IoMethodOps pgaio_sync_ops; extern PGDLLIMPORT const IoMethodOps pgaio_worker_ops; diff --git a/src/include/storage/aio_subsys.h b/src/include/storage/aio_subsys.h index 8a8ce87f62a5c..0cf36bb35da70 100644 --- a/src/include/storage/aio_subsys.h +++ b/src/include/storage/aio_subsys.h @@ -31,7 +31,7 @@ extern void pgaio_error_cleanup(void); extern void AtEOXact_Aio(bool is_commit); -/* aio_worker.c */ +/* method_worker.c */ extern bool pgaio_workers_enabled(void); #endif /* AIO_SUBSYS_H */ diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index f2192ceb2719b..41fdc1e76938e 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -173,8 +173,8 @@ extern PGDLLIMPORT int checkpoint_flush_after; extern PGDLLIMPORT int backend_flush_after; extern PGDLLIMPORT int bgwriter_flush_after; -extern const PgAioHandleCallbacks aio_shared_buffer_readv_cb; -extern const PgAioHandleCallbacks aio_local_buffer_readv_cb; +extern PGDLLIMPORT const PgAioHandleCallbacks aio_shared_buffer_readv_cb; +extern PGDLLIMPORT const PgAioHandleCallbacks aio_local_buffer_readv_cb; /* in buf_init.c */ extern PGDLLIMPORT char *BufferBlocks; @@ -258,6 +258,9 @@ extern Buffer ExtendBufferedRelTo(BufferManagerRelation bmr, extern void InitBufferManagerAccess(void); extern void AtEOXact_Buffers(bool isCommit); +#ifdef USE_ASSERT_CHECKING +extern void AssertBufferLocksPermitCatalogRead(void); +#endif extern char *DebugPrintBufferRefcount(Buffer buffer); extern void CheckPointBuffers(int flags); extern BlockNumber BufferGetBlockNumber(Buffer buffer); @@ -304,7 +307,14 @@ extern uint32 GetAdditionalLocalPinLimit(void); extern void LimitAdditionalPins(uint32 *additional_pins); extern void LimitAdditionalLocalPins(uint32 *additional_pins); -extern bool EvictUnpinnedBuffer(Buffer buf); +extern bool EvictUnpinnedBuffer(Buffer buf, bool *buffer_flushed); +extern void EvictAllUnpinnedBuffers(int32 *buffers_evicted, + int32 *buffers_flushed, + int32 *buffers_skipped); +extern void EvictRelUnpinnedBuffers(Relation rel, + int32 *buffers_evicted, + int32 *buffers_flushed, + int32 *buffers_skipped); /* in buf_init.c */ extern void BufferManagerShmemInit(void); diff --git a/src/include/storage/copydir.h b/src/include/storage/copydir.h index cf60e63f4e2d7..940d74462d129 100644 --- a/src/include/storage/copydir.h +++ b/src/include/storage/copydir.h @@ -13,6 +13,15 @@ #ifndef COPYDIR_H #define COPYDIR_H +typedef enum FileCopyMethod +{ + FILE_COPY_METHOD_COPY, + FILE_COPY_METHOD_CLONE, +} FileCopyMethod; + +/* GUC parameters */ +extern PGDLLIMPORT int file_copy_method; + extern void copydir(const char *fromdir, const char *todir, bool recurse); extern void copy_file(const char *fromfile, const char *tofile); diff --git a/src/include/storage/lwlock.h b/src/include/storage/lwlock.h index 4df1d25c045e6..08a72569ae5fd 100644 --- a/src/include/storage/lwlock.h +++ b/src/include/storage/lwlock.h @@ -129,8 +129,10 @@ extern bool LWLockAcquireOrWait(LWLock *lock, LWLockMode mode); extern void LWLockRelease(LWLock *lock); extern void LWLockReleaseClearVar(LWLock *lock, pg_atomic_uint64 *valptr, uint64 val); extern void LWLockReleaseAll(void); -extern void LWLockDisown(LWLock *l); -extern void LWLockReleaseDisowned(LWLock *l, LWLockMode mode); +extern void LWLockDisown(LWLock *lock); +extern void LWLockReleaseDisowned(LWLock *lock, LWLockMode mode); +extern void ForEachLWLockHeldByMe(void (*callback) (LWLock *, LWLockMode, void *), + void *context); extern bool LWLockHeldByMe(LWLock *lock); extern bool LWLockAnyHeldByMe(LWLock *lock, int nlocks, size_t stride); extern bool LWLockHeldByMeInMode(LWLock *lock, LWLockMode mode); diff --git a/src/include/storage/lwlocklist.h b/src/include/storage/lwlocklist.h index 932024b1b0ba5..a9681738146e1 100644 --- a/src/include/storage/lwlocklist.h +++ b/src/include/storage/lwlocklist.h @@ -37,7 +37,7 @@ PG_LWLOCK(3, XidGen) PG_LWLOCK(4, ProcArray) PG_LWLOCK(5, SInvalRead) PG_LWLOCK(6, SInvalWrite) -PG_LWLOCK(7, WALBufMapping) +/* 7 was WALBufMapping */ PG_LWLOCK(8, WALWrite) PG_LWLOCK(9, ControlFile) /* 10 was CheckpointLock */ diff --git a/src/include/storage/md.h b/src/include/storage/md.h index 9d7131eff4384..b563c27abf092 100644 --- a/src/include/storage/md.h +++ b/src/include/storage/md.h @@ -20,7 +20,7 @@ #include "storage/smgr.h" #include "storage/sync.h" -extern const PgAioHandleCallbacks aio_md_readv_cb; +extern PGDLLIMPORT const PgAioHandleCallbacks aio_md_readv_cb; /* md storage manager functionality */ extern void mdinit(void); @@ -49,7 +49,7 @@ extern void mdwriteback(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, BlockNumber nblocks); extern BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum); extern void mdtruncate(SMgrRelation reln, ForkNumber forknum, - BlockNumber old_blocks, BlockNumber nblocks); + BlockNumber curnblk, BlockNumber nblocks); extern void mdimmedsync(SMgrRelation reln, ForkNumber forknum); extern void mdregistersync(SMgrRelation reln, ForkNumber forknum); extern int mdfd(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, uint32 *off); diff --git a/src/include/storage/pg_shmem.h b/src/include/storage/pg_shmem.h index b99ebc9e86f5c..5f7d4b83a60eb 100644 --- a/src/include/storage/pg_shmem.h +++ b/src/include/storage/pg_shmem.h @@ -45,6 +45,7 @@ typedef struct PGShmemHeader /* standard header for all Postgres shmem */ extern PGDLLIMPORT int shared_memory_type; extern PGDLLIMPORT int huge_pages; extern PGDLLIMPORT int huge_page_size; +extern PGDLLIMPORT int huge_pages_status; /* Possible values for huge_pages and huge_pages_status */ typedef enum diff --git a/src/include/storage/pmsignal.h b/src/include/storage/pmsignal.h index d84a383047e02..428aa3fd68a0a 100644 --- a/src/include/storage/pmsignal.h +++ b/src/include/storage/pmsignal.h @@ -17,11 +17,11 @@ #include #ifdef HAVE_SYS_PRCTL_H -#include "sys/prctl.h" +#include #endif #ifdef HAVE_SYS_PROCCTL_H -#include "sys/procctl.h" +#include #endif /* @@ -33,6 +33,7 @@ typedef enum { PMSIGNAL_RECOVERY_STARTED, /* recovery has started */ + PMSIGNAL_RECOVERY_CONSISTENT, /* recovery has reached consistent state */ PMSIGNAL_BEGIN_HOT_STANDBY, /* begin Hot Standby */ PMSIGNAL_ROTATE_LOGFILE, /* send SIGUSR1 to syslogger to rotate logfile */ PMSIGNAL_START_AUTOVAC_LAUNCHER, /* start an autovacuum launcher */ diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index f51b03d3822ee..9f9b3fcfbf1d7 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -86,6 +86,14 @@ struct XidCache */ extern PGDLLIMPORT int FastPathLockGroupsPerBackend; +/* + * Define the maximum number of fast-path locking groups per backend. + * This must be a power-of-two value. The actual number of fast-path + * lock groups is calculated in InitializeFastPathLocks() based on + * max_locks_per_transaction. 1024 is an arbitrary upper limit (matching + * max_locks_per_transaction = 16k). Values over 1024 are unlikely to be + * beneficial as there are bottlenecks we'll hit way before that. + */ #define FP_LOCK_GROUPS_PER_BACKEND_MAX 1024 #define FP_LOCK_SLOTS_PER_GROUP 16 /* don't change */ #define FastPathLockSlotsPerBackend() \ @@ -110,10 +118,10 @@ extern PGDLLIMPORT int FastPathLockGroupsPerBackend; * is inserted prior to the new redo point, the corresponding data changes will * also be flushed to disk before the checkpoint can complete. (In the * extremely common case where the data being modified is in shared buffers - * and we acquire an exclusive content lock on the relevant buffers before - * writing WAL, this mechanism is not needed, because phase 2 will block - * until we release the content lock and then flush the modified data to - * disk.) + * and we acquire an exclusive content lock and MarkBufferDirty() on the + * relevant buffers before writing WAL, this mechanism is not needed, because + * phase 2 will block until we release the content lock and then flush the + * modified data to disk. See transam/README and SyncOneBuffer().) * * Setting DELAY_CHKPT_COMPLETE prevents the system from moving from phase 2 * to phase 3. This is useful if we are performing a WAL-logged operation that diff --git a/src/include/storage/procsignal.h b/src/include/storage/procsignal.h index 022fd8ed93380..afeeb1ca019f8 100644 --- a/src/include/storage/procsignal.h +++ b/src/include/storage/procsignal.h @@ -56,16 +56,26 @@ typedef enum PROCSIGNAL_BARRIER_SMGRRELEASE, /* ask smgr to close files */ } ProcSignalBarrierType; +/* + * Length of query cancel keys generated. + * + * Note that the protocol allows for longer keys, or shorter, but this is the + * length we actually generate. Client code, and the server code that handles + * incoming cancellation packets from clients, mustn't use this hardcoded + * length. + */ +#define MAX_CANCEL_KEY_LENGTH 32 + /* * prototypes for functions in procsignal.c */ extern Size ProcSignalShmemSize(void); extern void ProcSignalShmemInit(void); -extern void ProcSignalInit(bool cancel_key_valid, int32 cancel_key); +extern void ProcSignalInit(const uint8 *cancel_key, int cancel_key_len); extern int SendProcSignal(pid_t pid, ProcSignalReason reason, ProcNumber procNumber); -extern void SendCancelRequest(int backendPID, int32 cancelAuthCode); +extern void SendCancelRequest(int backendPID, const uint8 *cancel_key, int cancel_key_len); extern uint64 EmitProcSignalBarrier(ProcSignalBarrierType type); extern void WaitForProcSignalBarrier(uint64 generation); diff --git a/src/include/storage/shmem.h b/src/include/storage/shmem.h index 904a336b8515c..c1f668ded9523 100644 --- a/src/include/storage/shmem.h +++ b/src/include/storage/shmem.h @@ -41,6 +41,8 @@ extern void *ShmemInitStruct(const char *name, Size size, bool *foundPtr); extern Size add_size(Size s1, Size s2); extern Size mul_size(Size s1, Size s2); +extern PGDLLIMPORT Size pg_get_shmem_pagesize(void); + /* ipci.c */ extern void RequestAddinShmemSpace(Size size); diff --git a/src/include/storage/smgr.h b/src/include/storage/smgr.h index 856ebcda350e9..3964d9334b3a7 100644 --- a/src/include/storage/smgr.h +++ b/src/include/storage/smgr.h @@ -74,7 +74,7 @@ typedef SMgrRelationData *SMgrRelation; #define SmgrIsTemp(smgr) \ RelFileLocatorBackendIsTemp((smgr)->smgr_rlocator) -extern const PgAioTargetInfo aio_smgr_target_info; +extern PGDLLIMPORT const PgAioTargetInfo aio_smgr_target_info; extern void smgrinit(void); extern SMgrRelation smgropen(RelFileLocator rlocator, ProcNumber backend); diff --git a/src/include/storage/waiteventset.h b/src/include/storage/waiteventset.h index aa65b7a35e77f..dd514d5299104 100644 --- a/src/include/storage/waiteventset.h +++ b/src/include/storage/waiteventset.h @@ -15,7 +15,7 @@ * functions. * * - * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/storage/waiteventset.h diff --git a/src/include/tcop/backend_startup.h b/src/include/tcop/backend_startup.h index 578828c1cafc9..dcb9d056643f2 100644 --- a/src/include/tcop/backend_startup.h +++ b/src/include/tcop/backend_startup.h @@ -36,7 +36,7 @@ typedef enum CAC_state CAC_STARTUP, CAC_SHUTDOWN, CAC_RECOVERY, - CAC_NOTCONSISTENT, + CAC_NOTHOTSTANDBY, CAC_TOOMANY, } CAC_state; diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h index a5313c5d2d5ae..5eac0e16970c3 100644 --- a/src/include/utils/elog.h +++ b/src/include/utils/elog.h @@ -227,7 +227,6 @@ extern int internalerrquery(const char *query); extern int err_generic_string(int field, const char *str); extern int geterrcode(void); -extern int geterrlevel(void); extern int geterrposition(void); extern int getinternalerrposition(void); diff --git a/src/include/utils/funccache.h b/src/include/utils/funccache.h new file mode 100644 index 0000000000000..e0112ebfa11de --- /dev/null +++ b/src/include/utils/funccache.h @@ -0,0 +1,134 @@ +/*------------------------------------------------------------------------- + * + * funccache.h + * Function cache definitions. + * + * See funccache.c for comments. + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/utils/funccache.h + * + *------------------------------------------------------------------------- + */ +#ifndef FUNCCACHE_H +#define FUNCCACHE_H + +#include "access/htup_details.h" +#include "fmgr.h" +#include "storage/itemptr.h" + +struct CachedFunctionHashKey; /* forward references */ +struct CachedFunction; + +/* + * Callback that cached_function_compile() invokes when it's necessary to + * compile a cached function. The callback must fill in *function (except + * for the fields of struct CachedFunction), or throw an error if trouble. + * fcinfo: current call information + * procTup: function's pg_proc row from catcache + * hashkey: hash key that will be used for the function + * function: pre-zeroed workspace, of size passed to cached_function_compile() + * forValidator: passed through from cached_function_compile() + */ +typedef void (*CachedFunctionCompileCallback) (FunctionCallInfo fcinfo, + HeapTuple procTup, + const struct CachedFunctionHashKey *hashkey, + struct CachedFunction *function, + bool forValidator); + +/* + * Callback called when discarding a cache entry. Free any free-able + * subsidiary data of cfunc, but not the struct CachedFunction itself. + */ +typedef void (*CachedFunctionDeleteCallback) (struct CachedFunction *cfunc); + +/* + * Hash lookup key for functions. This must account for all aspects + * of a specific call that might lead to different data types or + * collations being used within the function. + */ +typedef struct CachedFunctionHashKey +{ + Oid funcOid; + + bool isTrigger; /* true if called as a DML trigger */ + bool isEventTrigger; /* true if called as an event trigger */ + + /* be careful that pad bytes in this struct get zeroed! */ + + /* + * We include the language-specific size of the function's cache entry in + * the cache key. This covers the case where CREATE OR REPLACE FUNCTION + * is used to change the implementation language, and the new language + * also uses funccache.c but needs a different-sized cache entry. + */ + Size cacheEntrySize; + + /* + * For a trigger function, the OID of the trigger is part of the hash key + * --- we want to compile the trigger function separately for each trigger + * it is used with, in case the rowtype or transition table names are + * different. Zero if not called as a DML trigger. + */ + Oid trigOid; + + /* + * We must include the input collation as part of the hash key too, + * because we have to generate different plans (with different Param + * collations) for different collation settings. + */ + Oid inputCollation; + + /* Number of arguments (counting input arguments only, ie pronargs) */ + int nargs; + + /* If you change anything below here, fix hashing code in funccache.c! */ + + /* + * If relevant, the result descriptor for a function returning composite. + */ + TupleDesc callResultType; + + /* + * Input argument types, with any polymorphic types resolved to actual + * types. Only the first nargs entries are valid. + */ + Oid argtypes[FUNC_MAX_ARGS]; +} CachedFunctionHashKey; + +/* + * Representation of a compiled function. This struct contains just the + * fields that funccache.c needs to deal with. It will typically be + * embedded in a larger struct containing function-language-specific data. + */ +typedef struct CachedFunction +{ + /* back-link to hashtable entry, or NULL if not in hash table */ + CachedFunctionHashKey *fn_hashkey; + /* xmin and ctid of function's pg_proc row; used to detect invalidation */ + TransactionId fn_xmin; + ItemPointerData fn_tid; + /* deletion callback */ + CachedFunctionDeleteCallback dcallback; + + /* this field changes when the function is used: */ + uint64 use_count; +} CachedFunction; + +extern CachedFunction *cached_function_compile(FunctionCallInfo fcinfo, + CachedFunction *function, + CachedFunctionCompileCallback ccallback, + CachedFunctionDeleteCallback dcallback, + Size cacheEntrySize, + bool includeResultType, + bool forValidator); +extern void cfunc_resolve_polymorphic_argtypes(int numargs, + Oid *argtypes, + char *argmodes, + Node *call_expr, + bool forValidator, + const char *proname); + +#endif /* FUNCCACHE_H */ diff --git a/src/include/utils/injection_point.h b/src/include/utils/injection_point.h index 6ba64cd1ebc62..a37958e1835fd 100644 --- a/src/include/utils/injection_point.h +++ b/src/include/utils/injection_point.h @@ -16,13 +16,13 @@ */ #ifdef USE_INJECTION_POINTS #define INJECTION_POINT_LOAD(name) InjectionPointLoad(name) -#define INJECTION_POINT(name) InjectionPointRun(name) -#define INJECTION_POINT_CACHED(name) InjectionPointCached(name) +#define INJECTION_POINT(name, arg) InjectionPointRun(name, arg) +#define INJECTION_POINT_CACHED(name, arg) InjectionPointCached(name, arg) #define IS_INJECTION_POINT_ATTACHED(name) IsInjectionPointAttached(name) #else #define INJECTION_POINT_LOAD(name) ((void) name) -#define INJECTION_POINT(name) ((void) name) -#define INJECTION_POINT_CACHED(name) ((void) name) +#define INJECTION_POINT(name, arg) ((void) name) +#define INJECTION_POINT_CACHED(name, arg) ((void) name) #define IS_INJECTION_POINT_ATTACHED(name) (false) #endif @@ -30,7 +30,8 @@ * Typedef for callback function launched by an injection point. */ typedef void (*InjectionPointCallback) (const char *name, - const void *private_data); + const void *private_data, + void *arg); extern Size InjectionPointShmemSize(void); extern void InjectionPointShmemInit(void); @@ -41,8 +42,8 @@ extern void InjectionPointAttach(const char *name, const void *private_data, int private_data_size); extern void InjectionPointLoad(const char *name); -extern void InjectionPointRun(const char *name); -extern void InjectionPointCached(const char *name); +extern void InjectionPointRun(const char *name, void *arg); +extern void InjectionPointCached(const char *name, void *arg); extern bool IsInjectionPointAttached(const char *name); extern bool InjectionPointDetach(const char *name); diff --git a/src/include/utils/lsyscache.h b/src/include/utils/lsyscache.h index d42380a0d46bf..fa7c7e0323b10 100644 --- a/src/include/utils/lsyscache.h +++ b/src/include/utils/lsyscache.h @@ -21,14 +21,14 @@ /* avoid including subscripting.h here */ struct SubscriptRoutines; -/* Result list element for get_op_btree_interpretation */ -typedef struct OpBtreeInterpretation +/* Result list element for get_op_index_interpretation */ +typedef struct OpIndexInterpretation { - Oid opfamily_id; /* btree opfamily containing operator */ - int strategy; /* its strategy number */ + Oid opfamily_id; /* opfamily containing operator */ + CompareType cmptype; /* its generic comparison type */ Oid oplefttype; /* declared left input datatype */ Oid oprighttype; /* declared right input datatype */ -} OpBtreeInterpretation; +} OpIndexInterpretation; /* I/O function selector for get_type_io_data */ typedef enum IOFuncSelector @@ -78,7 +78,7 @@ extern Oid get_opfamily_member(Oid opfamily, Oid lefttype, Oid righttype, extern Oid get_opfamily_member_for_cmptype(Oid opfamily, Oid lefttype, Oid righttype, CompareType cmptype); extern bool get_ordering_op_properties(Oid opno, - Oid *opfamily, Oid *opcintype, int16 *strategy); + Oid *opfamily, Oid *opcintype, CompareType *cmptype); extern Oid get_equality_op_for_ordering_op(Oid opno, bool *reverse); extern Oid get_ordering_op_for_equality_op(Oid opno, bool use_lhs_type); extern List *get_mergejoin_opfamilies(Oid opno); @@ -86,7 +86,7 @@ extern bool get_compatible_hash_operators(Oid opno, Oid *lhs_opno, Oid *rhs_opno); extern bool get_op_hash_functions(Oid opno, RegProcedure *lhs_procno, RegProcedure *rhs_procno); -extern List *get_op_btree_interpretation(Oid opno); +extern List *get_op_index_interpretation(Oid opno); extern bool equality_ops_are_compatible(Oid opno1, Oid opno2); extern bool comparison_ops_are_compatible(Oid opno1, Oid opno2); extern Oid get_opfamily_proc(Oid opfamily, Oid lefttype, Oid righttype, diff --git a/src/include/utils/pg_locale.h b/src/include/utils/pg_locale.h index 7df90f43f60e8..7b8cbf58d2c43 100644 --- a/src/include/utils/pg_locale.h +++ b/src/include/utils/pg_locale.h @@ -125,16 +125,16 @@ extern void init_database_collation(void); extern pg_locale_t pg_newlocale_from_collation(Oid collid); extern char *get_collation_actual_version(char collprovider, const char *collcollate); -extern size_t pg_strlower(char *dest, size_t destsize, +extern size_t pg_strlower(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strtitle(char *dest, size_t destsize, +extern size_t pg_strtitle(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strupper(char *dest, size_t destsize, +extern size_t pg_strupper(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); -extern size_t pg_strfold(char *dest, size_t destsize, +extern size_t pg_strfold(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale); extern int pg_strcoll(const char *arg1, const char *arg2, pg_locale_t locale); diff --git a/src/include/utils/plancache.h b/src/include/utils/plancache.h index 199cc323a2863..1baa6d50bfd7a 100644 --- a/src/include/utils/plancache.h +++ b/src/include/utils/plancache.h @@ -18,14 +18,13 @@ #include "access/tupdesc.h" #include "lib/ilist.h" #include "nodes/params.h" -#include "nodes/parsenodes.h" -#include "nodes/plannodes.h" #include "tcop/cmdtag.h" #include "utils/queryenvironment.h" #include "utils/resowner.h" -/* Forward declaration, to avoid including parsenodes.h here */ +/* Forward declarations, to avoid including parsenodes.h here */ +struct Query; struct RawStmt; /* possible values for plan_cache_mode */ @@ -39,18 +38,31 @@ typedef enum /* GUC parameter */ extern PGDLLIMPORT int plan_cache_mode; +/* Optional callback to editorialize on rewritten parse trees */ +typedef void (*PostRewriteHook) (List *querytree_list, void *arg); + #define CACHEDPLANSOURCE_MAGIC 195726186 #define CACHEDPLAN_MAGIC 953717834 #define CACHEDEXPR_MAGIC 838275847 /* * CachedPlanSource (which might better have been called CachedQuery) - * represents a SQL query that we expect to use multiple times. It stores - * the query source text, the raw parse tree, and the analyzed-and-rewritten + * represents a SQL query that we expect to use multiple times. It stores the + * query source text, the source parse tree, and the analyzed-and-rewritten * query tree, as well as adjunct data. Cache invalidation can happen as a * result of DDL affecting objects used by the query. In that case we discard * the analyzed-and-rewritten query tree, and rebuild it when next needed. * + * There are two ways in which the source query can be represented: either + * as a raw parse tree, or as an analyzed-but-not-rewritten parse tree. + * In the latter case we expect that cache invalidation need not affect + * the parse-analysis results, only the rewriting and planning steps. + * Only one of raw_parse_tree and analyzed_parse_tree can be non-NULL. + * (If both are NULL, the CachedPlanSource represents an empty query.) + * Note that query_string is typically just an empty string when the + * source query is an analyzed parse tree; also, param_types, num_params, + * parserSetup, and parserSetupArg will not be used. + * * An actual execution plan, represented by CachedPlan, is derived from the * CachedPlanSource when we need to execute the query. The plan could be * either generic (usable with any set of plan parameters) or custom (for a @@ -78,7 +90,7 @@ extern PGDLLIMPORT int plan_cache_mode; * though it may be useful if the CachedPlan can be discarded early.) * * A CachedPlanSource has two associated memory contexts: one that holds the - * struct itself, the query source text and the raw parse tree, and another + * struct itself, the query source text and the source parse tree, and another * context that holds the rewritten query tree and associated data. This * allows the query tree to be discarded easily when it is invalidated. * @@ -94,12 +106,15 @@ typedef struct CachedPlanSource { int magic; /* should equal CACHEDPLANSOURCE_MAGIC */ struct RawStmt *raw_parse_tree; /* output of raw_parser(), or NULL */ + struct Query *analyzed_parse_tree; /* analyzed parse tree, or NULL */ const char *query_string; /* source text of query */ CommandTag commandTag; /* command tag for query */ Oid *param_types; /* array of parameter type OIDs, or NULL */ int num_params; /* length of param_types array */ ParserSetupHook parserSetup; /* alternative parameter spec method */ void *parserSetupArg; + PostRewriteHook postRewrite; /* see SetPostRewriteHook */ + void *postRewriteArg; int cursor_options; /* cursor options used for planning */ bool fixed_result; /* disallow change in result tupdesc? */ TupleDesc resultDesc; /* result type; NULL = doesn't return tuples */ @@ -136,11 +151,10 @@ typedef struct CachedPlanSource * The reference count includes both the link from the parent CachedPlanSource * (if any), and any active plan executions, so the plan can be discarded * exactly when refcount goes to zero. Both the struct itself and the - * subsidiary data, except the PlannedStmts in stmt_list live in the context - * denoted by the context field; the PlannedStmts live in the context denoted - * by stmt_context. Separate contexts makes it easy to free a no-longer-needed - * cached plan. (However, if is_oneshot is true, the context does not belong - * solely to the CachedPlan so no freeing is possible.) + * subsidiary data live in the context denoted by the context field. + * This makes it easy to free a no-longer-needed cached plan. (However, + * if is_oneshot is true, the context does not belong solely to the CachedPlan + * so no freeing is possible.) */ typedef struct CachedPlan { @@ -148,7 +162,6 @@ typedef struct CachedPlan List *stmt_list; /* list of PlannedStmts */ bool is_oneshot; /* is it a "oneshot" plan? */ bool is_saved; /* is CachedPlan in a long-lived context? */ - bool is_reused; /* is it a reused generic plan? */ bool is_valid; /* is the stmt_list currently valid? */ Oid planRoleId; /* Role ID the plan was created for */ bool dependsOnRole; /* is plan specific to that role? */ @@ -157,10 +170,6 @@ typedef struct CachedPlan int generation; /* parent's generation number for this plan */ int refcount; /* count of live references to this struct */ MemoryContext context; /* context containing this CachedPlan */ - MemoryContext stmt_context; /* context containing the PlannedStmts in - * stmt_list, but not the List itself which is - * in the above context; NULL if is_oneshot is - * true. */ } CachedPlan; /* @@ -196,6 +205,9 @@ extern void ReleaseAllPlanCacheRefsInOwner(ResourceOwner owner); extern CachedPlanSource *CreateCachedPlan(struct RawStmt *raw_parse_tree, const char *query_string, CommandTag commandTag); +extern CachedPlanSource *CreateCachedPlanForQuery(struct Query *analyzed_parse_tree, + const char *query_string, + CommandTag commandTag); extern CachedPlanSource *CreateOneShotCachedPlan(struct RawStmt *raw_parse_tree, const char *query_string, CommandTag commandTag); @@ -208,6 +220,9 @@ extern void CompleteCachedPlan(CachedPlanSource *plansource, void *parserSetupArg, int cursor_options, bool fixed_result); +extern void SetPostRewriteHook(CachedPlanSource *plansource, + PostRewriteHook postRewrite, + void *postRewriteArg); extern void SaveCachedPlan(CachedPlanSource *plansource); extern void DropCachedPlan(CachedPlanSource *plansource); @@ -226,10 +241,6 @@ extern CachedPlan *GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams, ResourceOwner owner, QueryEnvironment *queryEnv); -extern PlannedStmt *UpdateCachedPlan(CachedPlanSource *plansource, - int query_index, - QueryEnvironment *queryEnv); - extern void ReleaseCachedPlan(CachedPlan *plan, ResourceOwner owner); extern bool CachedPlanAllowsSimpleValidityCheck(CachedPlanSource *plansource, @@ -242,30 +253,4 @@ extern bool CachedPlanIsSimplyValid(CachedPlanSource *plansource, extern CachedExpression *GetCachedExpression(Node *expr); extern void FreeCachedExpression(CachedExpression *cexpr); -/* - * CachedPlanRequiresLocking: should the executor acquire additional locks? - * - * If the plan is a saved generic plan, the executor must acquire locks for - * relations that are not covered by AcquireExecutorLocks(), such as partitions - * that are subject to initial runtime pruning. - */ -static inline bool -CachedPlanRequiresLocking(CachedPlan *cplan) -{ - return !cplan->is_oneshot && cplan->is_reused; -} - -/* - * CachedPlanValid - * Returns whether a cached generic plan is still valid. - * - * Invoked by the executor to check if the plan has not been invalidated after - * taking locks during the initialization of the plan. - */ -static inline bool -CachedPlanValid(CachedPlan *cplan) -{ - return cplan->is_valid; -} - #endif /* PLANCACHE_H */ diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h index ddee031f55140..0b62143af8bcf 100644 --- a/src/include/utils/portal.h +++ b/src/include/utils/portal.h @@ -138,7 +138,6 @@ typedef struct PortalData QueryCompletion qc; /* command completion data for executed query */ List *stmts; /* list of PlannedStmts */ CachedPlan *cplan; /* CachedPlan, if stmts are from one */ - CachedPlanSource *plansource; /* CachedPlanSource, for cplan */ ParamListInfo portalParams; /* params to pass to query */ QueryEnvironment *queryEnv; /* environment for query */ @@ -241,8 +240,7 @@ extern void PortalDefineQuery(Portal portal, const char *sourceText, CommandTag commandTag, List *stmts, - CachedPlan *cplan, - CachedPlanSource *plansource); + CachedPlan *cplan); extern PlannedStmt *PortalGetPrimaryStmt(Portal portal); extern void PortalCreateHoldStore(Portal portal); extern void PortalHashTableDeleteAll(void); diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h index d94fddd7cef70..b552359915f19 100644 --- a/src/include/utils/rel.h +++ b/src/include/utils/rel.h @@ -284,6 +284,9 @@ typedef struct ForeignKeyCacheInfo /* number of columns in the foreign key */ int nkeys; + /* Is enforced ? */ + bool conenforced; + /* * these arrays each have nkeys valid entries: */ diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h index a7c55db339e04..3561c6bef0bfc 100644 --- a/src/include/utils/relcache.h +++ b/src/include/utils/relcache.h @@ -37,6 +37,14 @@ typedef Relation *RelationPtr; /* * Routines to open (lookup) and close a relcache entry */ +#ifdef USE_ASSERT_CHECKING +extern void AssertCouldGetRelation(void); +#else +static inline void +AssertCouldGetRelation(void) +{ +} +#endif extern Relation RelationIdGetRelation(Oid relationId); extern void RelationClose(Relation relation); diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h index 82ac8c6d9dad0..013049b3098ac 100644 --- a/src/include/utils/selfuncs.h +++ b/src/include/utils/selfuncs.h @@ -210,7 +210,7 @@ extern Selectivity rowcomparesel(PlannerInfo *root, int varRelid, JoinType jointype, SpecialJoinInfo *sjinfo); extern void mergejoinscansel(PlannerInfo *root, Node *clause, - Oid opfamily, int strategy, bool nulls_first, + Oid opfamily, CompareType cmptype, bool nulls_first, Selectivity *leftstart, Selectivity *leftend, Selectivity *rightstart, Selectivity *rightend); diff --git a/src/include/utils/skipsupport.h b/src/include/utils/skipsupport.h new file mode 100644 index 0000000000000..bc51847cf617a --- /dev/null +++ b/src/include/utils/skipsupport.h @@ -0,0 +1,98 @@ +/*------------------------------------------------------------------------- + * + * skipsupport.h + * Support routines for B-Tree skip scan. + * + * B-Tree operator classes for discrete types can optionally provide a support + * function for skipping. This is used during skip scans. + * + * A B-tree operator class that implements skip support provides B-tree index + * scans with a way of enumerating and iterating through every possible value + * from the domain of indexable values. This gives scans a way to determine + * the next value in line for a given skip array/scan key/skipped attribute. + * Scans request the next (or previous) value whenever they run out of tuples + * matching the skip array's current element value. The next (or previous) + * value can be used to relocate the scan; it is applied in combination with + * at least one additional lower-order non-skip key, taken from the query. + * + * Skip support is used by discrete type (e.g., integer and date) opclasses. + * Indexes with an attribute whose input opclass is of one of these types tend + * to store adjacent values in adjoining groups of index tuples. Each time a + * skip scan with skip support successfully guesses that the next value in the + * index (for a given skipped column) is indeed the value that skip support + * just incremented its skip array to, it will have saved the scan some work. + * The scan will have avoided an index probe that directly finds the next + * value that appears in the index. (When skip support guesses wrong, then it + * won't have saved any work, but it also won't have added any useless work. + * The failed attempt to locate exactly-matching index tuples acts just like + * an explicit probe would; it'll still find the index's true next value.) + * + * It usually isn't feasible to implement skip support for an opclass whose + * input type is continuous. The B-Tree code falls back on next-key sentinel + * values for any opclass that doesn't provide its own skip support function. + * This isn't really an implementation restriction; there is no benefit to + * providing skip support for an opclass where guessing that the next indexed + * value is the next possible indexable value never (or hardly ever) works out. + * + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/utils/skipsupport.h + * + *------------------------------------------------------------------------- + */ +#ifndef SKIPSUPPORT_H +#define SKIPSUPPORT_H + +#include "utils/relcache.h" + +typedef struct SkipSupportData *SkipSupport; +typedef Datum (*SkipSupportIncDec) (Relation rel, + Datum existing, + bool *overflow); + +/* + * State/callbacks used by skip arrays to procedurally generate elements. + * + * A BTSKIPSUPPORT_PROC function must set each and every field when called + * (there are no optional fields). + */ +typedef struct SkipSupportData +{ + /* + * low_elem and high_elem must be set with the lowest and highest possible + * values from the domain of indexable values (assuming ascending order) + */ + Datum low_elem; /* lowest sorting/leftmost non-NULL value */ + Datum high_elem; /* highest sorting/rightmost non-NULL value */ + + /* + * Decrement/increment functions. + * + * Returns a decremented/incremented copy of caller's existing datum, + * allocated in caller's memory context (for pass-by-reference types). + * It's not okay for these functions to leak any memory. + * + * When the decrement function (or increment function) is called with a + * value that already matches low_elem (or high_elem), function must set + * the *overflow argument. The return value is treated as undefined by + * the B-Tree code; it shouldn't need to be (and won't be) pfree'd. + * + * The B-Tree code's "existing" datum argument is often just a straight + * copy of a value from an index tuple. Operator classes must accept + * every possible representational variation within the underlying type. + * On the other hand, opclasses are _not_ required to preserve information + * that doesn't affect how datums are sorted (e.g., skip support for a + * fixed precision numeric type needn't preserve datum display scale). + * Operator class decrement/increment functions will never be called with + * a NULL "existing" argument, either. + */ + SkipSupportIncDec decrement; + SkipSupportIncDec increment; +} SkipSupportData; + +extern SkipSupport PrepareSkipSupportFromOpclass(Oid opfamily, Oid opcintype, + bool reverse); + +#endif /* SKIPSUPPORT_H */ diff --git a/src/include/utils/tuplestore.h b/src/include/utils/tuplestore.h index ed7c454f44e27..865ba7b826551 100644 --- a/src/include/utils/tuplestore.h +++ b/src/include/utils/tuplestore.h @@ -65,7 +65,7 @@ extern void tuplestore_copy_read_pointer(Tuplestorestate *state, extern void tuplestore_trim(Tuplestorestate *state); -extern void tuplestore_get_stats(Tuplestorestate *state, char **storage_type, +extern void tuplestore_get_stats(Tuplestorestate *state, char **max_storage_type, int64 *max_space); extern bool tuplestore_in_memory(Tuplestorestate *state); diff --git a/src/include/utils/wait_classes.h b/src/include/utils/wait_classes.h new file mode 100644 index 0000000000000..51ee68397d595 --- /dev/null +++ b/src/include/utils/wait_classes.h @@ -0,0 +1,29 @@ +/*------------------------------------------------------------------------- + * wait_classes.h + * Definitions related to wait event classes + * + * Copyright (c) 2001-2025, PostgreSQL Global Development Group + * + * src/include/utils/wait_classes.h + * ---------- + */ +#ifndef WAIT_CLASSES_H +#define WAIT_CLASSES_H + + +/* ---------- + * Wait Classes + * ---------- + */ +#define PG_WAIT_LWLOCK 0x01000000U +#define PG_WAIT_LOCK 0x03000000U +#define PG_WAIT_BUFFERPIN 0x04000000U +#define PG_WAIT_ACTIVITY 0x05000000U +#define PG_WAIT_CLIENT 0x06000000U +#define PG_WAIT_EXTENSION 0x07000000U +#define PG_WAIT_IPC 0x08000000U +#define PG_WAIT_TIMEOUT 0x09000000U +#define PG_WAIT_IO 0x0A000000U +#define PG_WAIT_INJECTIONPOINT 0x0B000000U + +#endif /* WAIT_CLASSES_H */ diff --git a/src/include/utils/wait_event.h b/src/include/utils/wait_event.h index b8cb3e5a4309d..f5815b4994ab4 100644 --- a/src/include/utils/wait_event.h +++ b/src/include/utils/wait_event.h @@ -10,22 +10,6 @@ #ifndef WAIT_EVENT_H #define WAIT_EVENT_H - -/* ---------- - * Wait Classes - * ---------- - */ -#define PG_WAIT_LWLOCK 0x01000000U -#define PG_WAIT_LOCK 0x03000000U -#define PG_WAIT_BUFFERPIN 0x04000000U -#define PG_WAIT_ACTIVITY 0x05000000U -#define PG_WAIT_CLIENT 0x06000000U -#define PG_WAIT_EXTENSION 0x07000000U -#define PG_WAIT_IPC 0x08000000U -#define PG_WAIT_TIMEOUT 0x09000000U -#define PG_WAIT_IO 0x0A000000U -#define PG_WAIT_INJECTIONPOINT 0x0B000000U - /* enums for wait events */ #include "utils/wait_event_types.h" diff --git a/src/interfaces/Makefile b/src/interfaces/Makefile index 7d56b29d28f56..e6822caa206a0 100644 --- a/src/interfaces/Makefile +++ b/src/interfaces/Makefile @@ -14,7 +14,19 @@ include $(top_builddir)/src/Makefile.global SUBDIRS = libpq ecpg +ifeq ($(with_libcurl), yes) +SUBDIRS += libpq-oauth +else +ALWAYS_SUBDIRS += libpq-oauth +endif + $(recurse) +$(recurse_always) all-ecpg-recurse: all-libpq-recurse install-ecpg-recurse: install-libpq-recurse + +ifeq ($(with_libcurl), yes) +all-libpq-oauth-recurse: all-libpq-recurse +install-libpq-oauth-recurse: install-libpq-recurse +endif diff --git a/src/interfaces/ecpg/ecpglib/po/es.po b/src/interfaces/ecpg/ecpglib/po/es.po index 8dec975e62ef0..0a957e220c5ab 100644 --- a/src/interfaces/ecpg/ecpglib/po/es.po +++ b/src/interfaces/ecpg/ecpglib/po/es.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: ecpglib (PostgreSQL) 16\n" +"Project-Id-Version: ecpglib (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:09+0000\n" -"PO-Revision-Date: 2023-05-22 12:04+0200\n" +"POT-Creation-Date: 2025-02-16 19:40+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Emanuel Calvo Franco \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -18,15 +18,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: connect.c:243 +#: connect.c:221 msgid "empty message text" msgstr "mensaje de texto vacío" -#: connect.c:410 connect.c:675 +#: connect.c:386 connect.c:645 msgid "" msgstr "" -#: descriptor.c:876 misc.c:119 +#: descriptor.c:866 misc.c:88 msgid "NULL" msgstr "NULL" @@ -195,6 +195,6 @@ msgstr "se ha perdido la conexión al servidor" msgid "SQL error: %s\n" msgstr "error SQL: %s\n" -#: execute.c:2188 execute.c:2195 +#: execute.c:2186 execute.c:2193 msgid "" msgstr "" diff --git a/src/interfaces/ecpg/ecpglib/po/fr.po b/src/interfaces/ecpg/ecpglib/po/fr.po index e976d5cb0ef7f..8bdd59b1f2ebd 100644 --- a/src/interfaces/ecpg/ecpglib/po/fr.po +++ b/src/interfaces/ecpg/ecpglib/po/fr.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -20,7 +20,7 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" #: connect.c:237 msgid "empty message text" @@ -74,7 +74,7 @@ msgstr "syntaxe invalide en entrée pour le type int : « %s » sur la ligne %d" #: error.c:75 #, c-format msgid "invalid input syntax for type unsigned int: \"%s\", on line %d" -msgstr "syntaxe invalide en entrée pour le type unisgned int : « %s » sur la ligne %d" +msgstr "syntaxe invalide en entrée pour le type unsigned int : « %s » sur la ligne %d" #. translator: this string will be truncated at 149 characters expanded. #: error.c:82 diff --git a/src/interfaces/ecpg/ecpglib/po/ru.po b/src/interfaces/ecpg/ecpglib/po/ru.po index 16560ed8d3b6c..91b23dbc9fc07 100644 --- a/src/interfaces/ecpg/ecpglib/po/ru.po +++ b/src/interfaces/ecpg/ecpglib/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: ecpglib (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" "PO-Revision-Date: 2019-09-09 13:30+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -17,15 +17,15 @@ msgstr "" "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" -#: connect.c:243 +#: connect.c:221 msgid "empty message text" msgstr "пустое сообщение" -#: connect.c:410 connect.c:675 +#: connect.c:386 connect.c:645 msgid "" msgstr "<ПО_УМОЛЧАНИЮ>" -#: descriptor.c:876 misc.c:119 +#: descriptor.c:866 misc.c:88 msgid "NULL" msgstr "NULL" @@ -196,7 +196,7 @@ msgstr "подключение к серверу потеряно" msgid "SQL error: %s\n" msgstr "ошибка SQL: %s\n" -#: execute.c:2188 execute.c:2195 +#: execute.c:2186 execute.c:2193 msgid "" msgstr "<>" diff --git a/src/interfaces/ecpg/ecpglib/po/sv.po b/src/interfaces/ecpg/ecpglib/po/sv.po index 7ccde101caf21..9e499cc68d36d 100644 --- a/src/interfaces/ecpg/ecpglib/po/sv.po +++ b/src/interfaces/ecpg/ecpglib/po/sv.po @@ -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, 2021. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 14\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2020-04-10 02:39+0000\n" -"PO-Revision-Date: 2021-11-07 10:36+0100\n" +"POT-Creation-Date: 2024-07-12 11:10+0000\n" +"PO-Revision-Date: 2024-07-12 15:08+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,15 +17,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: connect.c:237 +#: connect.c:221 msgid "empty message text" msgstr "tom meddelandetext" -#: connect.c:401 connect.c:430 connect.c:653 +#: connect.c:386 connect.c:645 msgid "" msgstr "" -#: descriptor.c:871 misc.c:119 +#: descriptor.c:866 misc.c:88 msgid "NULL" msgstr "NULL" @@ -185,15 +185,15 @@ msgstr "kunde inte ansluta till databas \"%s\" på rad %d" msgid "SQL error %d on line %d" msgstr "SQL-fel %d på rad %d" -#: error.c:254 +#: error.c:253 msgid "the connection to the server was lost" msgstr "anslutningen till servern tappades" -#: error.c:347 +#: error.c:345 #, c-format msgid "SQL error: %s\n" msgstr "SQL-fel: %s\n" -#: execute.c:2196 execute.c:2203 +#: execute.c:2186 execute.c:2193 msgid "" msgstr "" diff --git a/src/interfaces/ecpg/ecpglib/po/uk.po b/src/interfaces/ecpg/ecpglib/po/uk.po index dcb1738702c9b..e1ca3efd440b7 100644 --- a/src/interfaces/ecpg/ecpglib/po/uk.po +++ b/src/interfaces/ecpg/ecpglib/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:39+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-02-24 00:09+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,18 +14,18 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/ecpglib.pot\n" -"X-Crowdin-File-ID: 890\n" +"X-Crowdin-File: /REL_17_STABLE/ecpglib.pot\n" +"X-Crowdin-File-ID: 1022\n" -#: connect.c:243 +#: connect.c:221 msgid "empty message text" msgstr "пусте повідомлення" -#: connect.c:410 connect.c:675 +#: connect.c:386 connect.c:645 msgid "" msgstr "<ЗА_ЗАМОВЧУВАННЯМ>" -#: descriptor.c:876 misc.c:119 +#: descriptor.c:866 misc.c:88 msgid "NULL" msgstr "NULL" @@ -194,7 +194,7 @@ msgstr "з'єднання із сервером втрачено" msgid "SQL error: %s\n" msgstr "помилка SQL: %s\n" -#: execute.c:2189 execute.c:2196 +#: execute.c:2186 execute.c:2193 msgid "" msgstr "<пусто>" diff --git a/src/interfaces/ecpg/preproc/meson.build b/src/interfaces/ecpg/preproc/meson.build index c9f4035053d6f..aa948efc0dce8 100644 --- a/src/interfaces/ecpg/preproc/meson.build +++ b/src/interfaces/ecpg/preproc/meson.build @@ -98,4 +98,4 @@ tests += { ], 'deps': [ecpg_exe], }, -} \ No newline at end of file +} diff --git a/src/interfaces/ecpg/preproc/po/de.po b/src/interfaces/ecpg/preproc/po/de.po index cf9fa6aaee452..43101dd665a47 100644 --- a/src/interfaces/ecpg/preproc/po/de.po +++ b/src/interfaces/ecpg/preproc/po/de.po @@ -1,15 +1,15 @@ # German message translation file for ecpg -# Copyright (C) 2009-2024 PostgreSQL Global Development Group +# Copyright (C) 2009-2025 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-12 17:10+0000\n" -"PO-Revision-Date: 2024-03-12 21:11+0100\n" +"POT-Creation-Date: 2025-04-26 03:40+0000\n" +"PO-Revision-Date: 2025-04-26 12:54+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -18,47 +18,47 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: descriptor.c:64 +#: descriptor.c:63 #, c-format msgid "variable \"%s\" must have a numeric type" msgstr "Variable »%s« muss einen numerischen Typ haben" -#: descriptor.c:124 descriptor.c:155 +#: descriptor.c:119 descriptor.c:149 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "Deskriptor %s gebunden an Verbindung %s existiert nicht" -#: descriptor.c:126 descriptor.c:157 +#: descriptor.c:121 descriptor.c:151 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "Deskriptor %s gebunden an die Standardverbindung existiert nicht" -#: descriptor.c:172 descriptor.c:224 +#: descriptor.c:166 descriptor.c:218 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "Deskriptorkopfelement »%d« existiert nicht" -#: descriptor.c:194 +#: descriptor.c:188 #, c-format msgid "nullable is always 1" msgstr "nullable ist immer 1" -#: descriptor.c:197 +#: descriptor.c:191 #, c-format msgid "key_member is always 0" msgstr "key_member ist immer 0" -#: descriptor.c:291 +#: descriptor.c:285 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "Deskriptorelement »%s« ist nicht implementiert" -#: descriptor.c:301 +#: descriptor.c:295 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "Deskriptorelement »%s« kann nicht gesetzt werden" -#: ecpg.c:36 +#: ecpg.c:37 #, c-format msgid "" "%s is the PostgreSQL embedded SQL preprocessor for C programs.\n" @@ -67,7 +67,7 @@ msgstr "" "%s ist der Embedded-SQL-Präprozessor von PostgreSQL für C-Programme.\n" "\n" -#: ecpg.c:38 +#: ecpg.c:39 #, c-format msgid "" "Usage:\n" @@ -78,12 +78,12 @@ msgstr "" " %s [OPTION]... DATEI...\n" "\n" -#: ecpg.c:41 +#: ecpg.c:42 #, c-format msgid "Options:\n" msgstr "Optionen:\n" -#: ecpg.c:42 +#: ecpg.c:43 #, c-format msgid "" " -c automatically generate C code from embedded SQL code;\n" @@ -92,7 +92,7 @@ msgstr "" " -c automatisch C-Code aus eingebettetem SQL-Code erzeugen;\n" " betrifft EXEC SQL TYPE\n" -#: ecpg.c:44 +#: ecpg.c:45 #, c-format msgid "" " -C MODE set compatibility mode; MODE can be one of\n" @@ -101,37 +101,37 @@ msgstr "" " -C MODUS Kompatibilitätsmodus setzen; MODUS kann sein:\n" " »INFORMIX«, »INFORMIX_SE«, »ORACLE«\n" -#: ecpg.c:47 +#: ecpg.c:48 #, c-format msgid " -d generate parser debug output\n" msgstr " -d Parser-Debug-Ausgabe erzeugen\n" -#: ecpg.c:49 +#: ecpg.c:50 #, c-format msgid " -D SYMBOL define SYMBOL\n" msgstr " -D SYMBOL SYMBOL definieren\n" -#: ecpg.c:50 +#: ecpg.c:51 #, c-format msgid " -h parse a header file, this option includes option \"-c\"\n" msgstr " -h eine Headerdatei parsen, schließt Option »-c« ein\n" -#: ecpg.c:51 +#: ecpg.c:52 #, c-format msgid " -i parse system include files as well\n" msgstr " -i Systemheaderdateien ebenfalls parsen\n" -#: ecpg.c:52 +#: ecpg.c:53 #, c-format msgid " -I DIRECTORY search DIRECTORY for include files\n" msgstr " -I VERZ VERZ nach Include-Dateien durchsuchen\n" -#: ecpg.c:53 +#: ecpg.c:54 #, c-format msgid " -o OUTFILE write result to OUTFILE\n" msgstr " -o DATEI Ausgabe in DATEI schreiben\n" -#: ecpg.c:54 +#: ecpg.c:55 #, c-format msgid "" " -r OPTION specify run-time behavior; OPTION can be:\n" @@ -140,27 +140,27 @@ msgstr "" " -r OPTION Laufzeitverhalten bestimmen; OPTION kann sein:\n" " »no_indicator«, »prepare«, »questionmarks«\n" -#: ecpg.c:56 +#: ecpg.c:57 #, c-format msgid " --regression run in regression testing mode\n" msgstr " --regression Regressiontestmodus verwenden\n" -#: ecpg.c:57 +#: ecpg.c:58 #, c-format msgid " -t turn on autocommit of transactions\n" msgstr " -t Autocommit von Transaktionen anschalten\n" -#: ecpg.c:58 +#: ecpg.c:59 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: ecpg.c:59 +#: ecpg.c:60 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: ecpg.c:60 +#: ecpg.c:61 #, c-format msgid "" "\n" @@ -171,7 +171,7 @@ msgstr "" "Wenn keine Ausgabedatei angegeben ist, dann wird .c an den Namen der\n" "Eingabedatei angehängt und vorher .pgc, falls vorhanden, entfernt.\n" -#: ecpg.c:62 +#: ecpg.c:63 #, c-format msgid "" "\n" @@ -180,474 +180,478 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: ecpg.c:63 +#: ecpg.c:64 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: konnte Pfad des eigenen Programs nicht finden\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Versuchen Sie »%s --help« für weitere Informationen.\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: Unterstützung für Parserdebugging (-d) nicht verfügbar\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format msgid "%s: could not open file \"%s\": %m\n" msgstr "%s: konnte Datei »%s« nicht öffnen: %m\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, der PostgreSQL-Embedded-C-Präprozessor, Version %s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... Suche beginnt hier:\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "Ende der Suchliste\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: keine Eingabedateien angegeben\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "Cursor »%s« wurde deklariert aber nicht geöffnet" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 util.c:75 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "konnte Ausgabedatei »%s« nicht entfernen\n" -#: pgc.l:520 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "/*-Kommentar nicht abgeschlossen" -#: pgc.l:537 +#: pgc.l:560 #, c-format msgid "unterminated bit string literal" msgstr "Bitkettenkonstante nicht abgeschlossen" -#: pgc.l:545 +#: pgc.l:570 #, c-format msgid "unterminated hexadecimal string literal" msgstr "hexadezimale Zeichenkette nicht abgeschlossen" -#: pgc.l:620 +#: pgc.l:644 #, c-format msgid "invalid bit string literal" msgstr "ungültige Bitkettenkonstante" -#: pgc.l:625 +#: pgc.l:649 #, c-format msgid "invalid hexadecimal string literal" msgstr "ungültige hexadezimale Zeichenkettenkonstante" -#: pgc.l:643 +#: pgc.l:667 #, c-format msgid "unhandled previous state in xqs\n" msgstr "unbehandelter vorheriger Zustand in xqs\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:700 pgc.l:820 #, c-format msgid "unterminated quoted string" msgstr "Zeichenkette in Anführungszeichen nicht abgeschlossen" -#: pgc.l:720 +#: pgc.l:753 #, c-format msgid "unterminated dollar-quoted string" msgstr "Dollar-Quotes nicht abgeschlossen" -#: pgc.l:738 pgc.l:758 +#: pgc.l:772 pgc.l:793 #, c-format msgid "zero-length delimited identifier" msgstr "Bezeichner in Anführungszeichen hat Länge null" -#: pgc.l:769 +#: pgc.l:809 #, c-format msgid "unterminated quoted identifier" msgstr "Bezeichner in Anführungszeichen nicht abgeschlossen" -#: pgc.l:938 +#: pgc.l:985 +#, c-format +msgid "parameter number too large" +msgstr "Parameternummer zu groß" + +#: pgc.l:990 #, c-format msgid "trailing junk after parameter" msgstr "Müll folgt auf Parameter" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:1042 pgc.l:1045 pgc.l:1048 #, c-format msgid "trailing junk after numeric literal" msgstr "Müll folgt auf numerische Konstante" -#: pgc.l:1127 +#: pgc.l:1177 #, c-format msgid "nested /* ... */ comments" msgstr "geschachtelte /* ... */-Kommentare" -#: pgc.l:1220 +#: pgc.l:1279 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "fehlender Bezeichner im Befehl EXEC SQL UNDEF" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1299 pgc.l:1312 pgc.l:1328 pgc.l:1341 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "zu viele verschachtelte EXEC SQL IFDEF-Bedingungen" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1357 pgc.l:1368 pgc.l:1384 pgc.l:1406 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "passendes »EXEC SQL IFDEF« / »EXEC SQL IFNDEF« fehlt" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1359 pgc.l:1370 pgc.l:1565 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "»EXEC SQL ENDIF;« fehlt" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1386 pgc.l:1408 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "mehr als ein EXEC SQL ENDIF" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1431 pgc.l:1445 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "unzusammenhängendes EXEC SQL ENDIF" -#: pgc.l:1438 +#: pgc.l:1507 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "fehlender Bezeichner im Befehl EXEC SQL IFDEF" -#: pgc.l:1447 +#: pgc.l:1516 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "fehlender Bezeichner im Befehl EXEC SQL DEFINE" -#: pgc.l:1480 +#: pgc.l:1554 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "Syntaxfehler im Befehl EXEC SQL INCLUDE" -#: pgc.l:1530 +#: pgc.l:1609 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "interner Fehler: unerreichbarer Zustand; bitte an <%s> berichten" -#: pgc.l:1682 +#: pgc.l:1766 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "Fehler: Include-Pfad »%s/%s« ist zu lang auf Zeile %d, wird übersprungen\n" -#: pgc.l:1705 +#: pgc.l:1793 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "konnte Include-Datei »%s« nicht öffnen auf Zeile %d" -#: preproc.y:31 +#: preproc.y:28 msgid "syntax error" msgstr "Syntaxfehler" -#: preproc.y:84 -#, c-format -msgid "WARNING: " -msgstr "WARNUNG: " - -#: preproc.y:87 -#, c-format -msgid "ERROR: " -msgstr "FEHLER: " - -#: preproc.y:514 +#: preproc.y:467 #, c-format msgid "cursor \"%s\" does not exist" msgstr "Cursor »%s« existiert nicht" -#: preproc.y:543 +#: preproc.y:503 #, c-format msgid "initializer not allowed in type definition" msgstr "Initialisierungswert nicht erlaubt in Typdefinition" -#: preproc.y:545 +#: preproc.y:505 #, c-format msgid "type name \"string\" is reserved in Informix mode" msgstr "Typname »string« ist im Informix-Modus reserviert" -#: preproc.y:552 preproc.y:18523 +#: preproc.y:512 preproc.y:8822 #, c-format msgid "type \"%s\" is already defined" msgstr "Typ »%s« ist bereits definiert" -#: preproc.y:577 preproc.y:19158 preproc.y:19480 variable.c:625 +#: preproc.y:539 preproc.y:9536 preproc.y:9881 variable.c:652 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "mehrdimensionale Arrays für einfache Datentypen werden nicht unterstützt" -#: preproc.y:599 +#: preproc.y:562 #, c-format msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "Verbindung %s wird mit %s überschrieben, durch DECLARE-Anweisung %s" -#: preproc.y:1810 +#: preproc.y:932 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "AT-Option ist nicht erlaubt im Befehl CLOSE DATABASE" -#: preproc.y:2060 +#: preproc.y:1184 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "AT-Option ist nicht erlaubt im Befehl CONNECT" -#: preproc.y:2100 +#: preproc.y:1221 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "AT-Option ist nicht erlaubt im Befehl DISCONNECT" -#: preproc.y:2155 +#: preproc.y:1274 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "AT-Option ist nicht erlaubt im Befehl SET CONNECTION" -#: preproc.y:2177 +#: preproc.y:1292 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "AT-Option ist nicht erlaubt im TYPE-Befehl" -#: preproc.y:2186 +#: preproc.y:1300 #, c-format msgid "AT option not allowed in VAR statement" msgstr "AT-Option ist nicht erlaubt im VAR-Befehl" -#: preproc.y:2193 +#: preproc.y:1307 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "AT-Option ist nicht erlaubt im WHENEVER-Befehl" -#: preproc.y:2318 preproc.y:2490 preproc.y:2495 preproc.y:2607 preproc.y:4317 -#: preproc.y:4391 preproc.y:4982 preproc.y:5515 preproc.y:5853 preproc.y:6057 -#: preproc.y:6158 preproc.y:7722 preproc.y:9330 preproc.y:9335 preproc.y:12308 +#: preproc.y:1375 preproc.y:1498 preproc.y:2259 preproc.y:2585 preproc.y:3016 +#: preproc.y:3103 preproc.y:6086 #, c-format msgid "unsupported feature will be passed to server" msgstr "nicht mehr unterstütztes Feature wird an Server weitergereicht werden" -#: preproc.y:2865 +#: preproc.y:1610 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL ist nicht implementiert" -#: preproc.y:3577 +#: preproc.y:1895 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN ist nicht implementiert" -#: preproc.y:10385 preproc.y:18020 +#: preproc.y:5146 preproc.y:8273 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "»database« kann im INFORMIX-Modus nicht als Cursorname verwendet werden" -#: preproc.y:10392 preproc.y:18030 +#: preproc.y:5153 preproc.y:8283 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "Verwendung der Variable »%s« in verschiedenen DECLARE-Anweisungen wird nicht unterstützt" -#: preproc.y:10394 preproc.y:18032 +#: preproc.y:5155 preproc.y:8285 #, c-format msgid "cursor \"%s\" is already defined" msgstr "Cursor »%s« ist bereits definiert" -#: preproc.y:10868 +#: preproc.y:5402 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "nicht mehr unterstützte Syntax LIMIT x,y wird an Server weitergereicht" -#: preproc.y:17712 preproc.y:17719 +#: preproc.y:7921 preproc.y:7929 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS kann INTO nicht verwenden" -#: preproc.y:17755 +#: preproc.y:7974 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "»@« erwartet, »%s« gefunden" -#: preproc.y:17767 +#: preproc.y:7986 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "er werden nur die Protokolle »tcp« und »unix« und der Datenbanktyp »postgresql« unterstützt" -#: preproc.y:17770 +#: preproc.y:7989 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "»://« erwartet, »%s« gefunden" -#: preproc.y:17775 +#: preproc.y:7994 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-Domain-Sockets funktionieren nur mit »localhost«, aber nicht mit »%s«" -#: preproc.y:17801 +#: preproc.y:8021 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "»postgresql« erwartet, »%s« gefunden" -#: preproc.y:17804 +#: preproc.y:8024 #, c-format msgid "invalid connection type: %s" msgstr "ungültiger Verbindungstyp: %s" -#: preproc.y:17813 +#: preproc.y:8033 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "»@« oder »://« erwartet, »%s« gefunden" -#: preproc.y:17888 preproc.y:17906 +#: preproc.y:8131 preproc.y:8149 #, c-format msgid "invalid data type" msgstr "ungültiger Datentyp" -#: preproc.y:17917 preproc.y:17934 +#: preproc.y:8160 preproc.y:8177 #, c-format msgid "incomplete statement" msgstr "unvollständige Anweisung" -#: preproc.y:17920 preproc.y:17937 +#: preproc.y:8163 preproc.y:8180 #, c-format msgid "unrecognized token \"%s\"" msgstr "nicht erkanntes Token »%s«" -#: preproc.y:17982 +#: preproc.y:8235 #, c-format msgid "name \"%s\" is already declared" msgstr "Name »%s« ist bereits deklariert" -#: preproc.y:18271 +#: preproc.y:8538 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "nur die Datentypen NUMERIC und DECIMAL haben Argumente für Präzision und Skala" -#: preproc.y:18342 +#: preproc.y:8637 #, c-format msgid "interval specification not allowed here" msgstr "Intervallangabe hier nicht erlaubt" -#: preproc.y:18498 preproc.y:18550 +#: preproc.y:8793 preproc.y:8851 #, c-format msgid "too many levels in nested structure/union definition" msgstr "zu viele Ebenen in verschachtelter Definition von Struktur/Union" -#: preproc.y:18673 +#: preproc.y:8986 #, c-format msgid "pointers to varchar are not implemented" msgstr "Zeiger auf varchar sind nicht implementiert" -#: preproc.y:19124 +#: preproc.y:9501 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "Initialisierungswert nicht erlaubt in Befehl EXEC SQL VAR" -#: preproc.y:19438 +#: preproc.y:9824 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "Array aus Indikatoren bei der Eingabe nicht erlaubt" -#: preproc.y:19625 +#: preproc.y:10058 #, c-format msgid "operator not allowed in variable definition" msgstr "Operator nicht erlaubt in Variablendefinition" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19666 +#: preproc.y:10103 #, c-format msgid "%s at or near \"%s\"" msgstr "%s bei »%s«" -#: type.c:18 type.c:30 -#, c-format -msgid "out of memory" -msgstr "Speicher aufgebraucht" - -#: type.c:214 type.c:685 +#: type.c:191 type.c:661 #, c-format msgid "unrecognized variable type code %d" msgstr "unbekannter Variablentypcode %d" -#: type.c:263 +#: type.c:240 #, c-format msgid "variable \"%s\" is hidden by a local variable of a different type" msgstr "Variable »%s« wird durch eine lokale Variable eines anderen Typs versteckt" -#: type.c:265 +#: type.c:242 #, c-format msgid "variable \"%s\" is hidden by a local variable" msgstr "Variable »%s« wird durch eine lokale Variable versteckt" -#: type.c:277 +#: type.c:254 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable of a different type" msgstr "Indikatorvariable »%s« wird durch eine lokale Variable eines anderen Typs versteckt" -#: type.c:279 +#: type.c:256 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable" msgstr "Indikatorvariable »%s« wird durch eine lokale Variable versteckt" -#: type.c:287 +#: type.c:264 #, c-format msgid "indicator for array/pointer has to be array/pointer" msgstr "Indikator für Array/Zeiger muss Array/Zeiger sein" -#: type.c:291 +#: type.c:268 #, c-format msgid "nested arrays are not supported (except strings)" msgstr "verschachtelte Arrays werden nicht unterstützt (außer Zeichenketten)" -#: type.c:333 +#: type.c:310 #, c-format msgid "indicator for struct has to be a struct" msgstr "Indikator für struct muss ein struct sein" -#: type.c:353 type.c:374 type.c:394 +#: type.c:330 type.c:351 type.c:371 #, c-format msgid "indicator for simple data type has to be simple" msgstr "Indikator für einfachen Typ muss einfachen Typ haben" -#: type.c:625 +#: type.c:602 #, c-format msgid "indicator struct \"%s\" has too few members" msgstr "Indikator-Struct »%s« hat zu wenige Mitglieder" -#: type.c:633 +#: type.c:610 #, c-format msgid "indicator struct \"%s\" has too many members" msgstr "Indikator-Struct »%s« hat zu viele Mitglieder" -#: type.c:744 +#: type.c:723 #, c-format msgid "unrecognized descriptor item code %d" msgstr "unbekannter Deskriptorelementcode %d" +#: util.c:26 +#, c-format +msgid "WARNING: " +msgstr "WARNUNG: " + +#: util.c:29 +#, c-format +msgid "ERROR: " +msgstr "FEHLER: " + +#: util.c:90 util.c:102 +#, c-format +msgid "out of memory" +msgstr "Speicher aufgebraucht" + #: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "falsch geformte Variable »%s«" -#: variable.c:138 +#: variable.c:138 variable.c:237 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "Variable »%s« ist kein Zeiger" @@ -667,39 +671,44 @@ msgstr "Variable »%s« ist keine Struktur oder Union" msgid "variable \"%s\" is not an array" msgstr "Variable »%s« ist kein Array" -#: variable.c:232 variable.c:254 +#: variable.c:220 +#, c-format +msgid "unmatched bracket in variable \"%s\"" +msgstr "eckige Klammer ohne Gegenstück in Variable »%s«" + +#: variable.c:235 variable.c:258 #, c-format msgid "variable \"%s\" is not declared" msgstr "Variable »%s« ist nicht deklariert" -#: variable.c:493 +#: variable.c:517 #, c-format msgid "indicator variable must have an integer type" msgstr "Indikatorvariable muss einen ganzzahligen Typ haben" -#: variable.c:510 +#: variable.c:534 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "unbekannter Datentypname »%s«" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:548 variable.c:556 variable.c:573 variable.c:576 #, c-format msgid "multidimensional arrays are not supported" msgstr "mehrdimensionale Arrays werden nicht unterstützt" -#: variable.c:538 +#: variable.c:565 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "Zeiger mit mehr als 2 Ebenen werden nicht unterstützt; %d Ebene gefunden" msgstr[1] "Zeiger mit mehr als 2 Ebenen werden nicht unterstützt; %d Ebenen gefunden" -#: variable.c:543 +#: variable.c:570 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "Zeiger auf Zeiger wird für diesen Datentyp nicht unterstützt" -#: variable.c:563 +#: variable.c:590 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "mehrdimensionale Arrays für Strukturen werden nicht unterstützt" diff --git a/src/interfaces/ecpg/preproc/po/es.po b/src/interfaces/ecpg/preproc/po/es.po index 5a550b56e1882..f8e3c4a34ecc1 100644 --- a/src/interfaces/ecpg/preproc/po/es.po +++ b/src/interfaces/ecpg/preproc/po/es.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: ecpg (PostgreSQL) 16\n" +"Project-Id-Version: ecpg (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:10+0000\n" -"PO-Revision-Date: 2023-05-22 12:05+0200\n" +"POT-Creation-Date: 2025-02-16 19:40+0000\n" +"PO-Revision-Date: 2024-11-16 14:23+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -191,177 +191,177 @@ msgstr "" msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: no se pudo localizar la ruta de mi propio ejecutable\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Utilice «%s --help» para obtener mayor información.\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: la depuración del analizador (parser, -d) no está disponible)\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s: no se pudo abrir el archivo «%s»: %s\n" +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s: no se pudo abrir el archivo «%s»: %m\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, el preprocesador de C incrustado de PostgreSQL, versión %s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... la búsqueda comienza aquí:\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "fin de la lista de búsqueda\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: no se especificaron archivos de entrada\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "el cursor «%s» fue declarado pero no abierto" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "no se pudo eliminar el archivo de salida «%s»\n" -#: pgc.l:520 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "comentario /* no cerrado" -#: pgc.l:537 +#: pgc.l:559 #, c-format msgid "unterminated bit string literal" msgstr "una cadena de bits está inconclusa" -#: pgc.l:545 +#: pgc.l:567 #, c-format msgid "unterminated hexadecimal string literal" msgstr "una cadena hexadecimal está inconclusa" -#: pgc.l:620 +#: pgc.l:642 #, c-format msgid "invalid bit string literal" msgstr "cadena de bits no válida" -#: pgc.l:625 +#: pgc.l:647 #, c-format msgid "invalid hexadecimal string literal" msgstr "cadena hexadecimal no válida" -#: pgc.l:643 +#: pgc.l:665 #, c-format msgid "unhandled previous state in xqs\n" msgstr "estado previo no manejado en xqs\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:691 pgc.l:800 #, c-format msgid "unterminated quoted string" msgstr "una cadena en comillas está inconclusa" -#: pgc.l:720 +#: pgc.l:742 #, c-format msgid "unterminated dollar-quoted string" msgstr "una cadena separada por $ está inconclusa" -#: pgc.l:738 pgc.l:758 +#: pgc.l:760 pgc.l:780 #, c-format msgid "zero-length delimited identifier" msgstr "identificador delimitado de longitud cero" -#: pgc.l:769 +#: pgc.l:791 #, c-format msgid "unterminated quoted identifier" msgstr "un identificador en comillas está inconcluso" -#: pgc.l:938 +#: pgc.l:960 #, c-format msgid "trailing junk after parameter" msgstr "basura sigue después de un parámetro" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:1012 pgc.l:1015 pgc.l:1018 #, c-format msgid "trailing junk after numeric literal" msgstr "basura sigue después de un literal numérico" -#: pgc.l:1127 +#: pgc.l:1141 #, c-format msgid "nested /* ... */ comments" msgstr "comentarios /* ... */ anidados" -#: pgc.l:1220 +#: pgc.l:1240 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "falta un identificador en la orden EXEC SQL UNDEF" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1258 pgc.l:1271 pgc.l:1287 pgc.l:1300 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "demasiadas condiciones EXEC SQL IFDEF anidadas" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1316 pgc.l:1327 pgc.l:1342 pgc.l:1364 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "falta el «EXEC SQL IFDEF» / «EXEC SQL IFNDEF»" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1318 pgc.l:1329 pgc.l:1522 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "falta el «EXEC SQL ENDIF;»" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1344 pgc.l:1366 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "hay más de un EXEC SQL ELSE" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1389 pgc.l:1403 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "EXEC SQL ENDIF sin coincidencia" -#: pgc.l:1438 +#: pgc.l:1464 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "identificador faltante en la orden EXEC SQL IFDEF" -#: pgc.l:1447 +#: pgc.l:1473 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "identificador faltante en la orden EXEC SQL DEFINE" -#: pgc.l:1480 +#: pgc.l:1511 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "error de sintaxis en orden EXEC SQL INCLUDE" -#: pgc.l:1530 +#: pgc.l:1566 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "error interno: estado no esperado; por favor reporte a <%s>" -#: pgc.l:1682 +#: pgc.l:1718 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "Error: ruta de inclusión «%s/%s» es demasiada larga en la línea %d, omitiendo\n" -#: pgc.l:1705 +#: pgc.l:1741 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "no se pudo abrir el archivo a incluir «%s» en la línea %d" @@ -395,12 +395,12 @@ msgstr "inicializador no permitido en definición de tipo" msgid "type name \"string\" is reserved in Informix mode" msgstr "el nombre de tipo «string» está reservado en modo Informix" -#: preproc.y:552 preproc.y:18392 +#: preproc.y:552 preproc.y:19034 #, c-format msgid "type \"%s\" is already defined" msgstr "el tipo «%s» ya está definido" -#: preproc.y:577 preproc.y:19027 preproc.y:19349 variable.c:625 +#: preproc.y:577 preproc.y:19669 preproc.y:19991 variable.c:624 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "los arrays multidimensionales para tipos de datos simples no están soportados" @@ -410,175 +410,174 @@ msgstr "los arrays multidimensionales para tipos de datos simples no están sopo msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "la conexión %s es sobrescrita con %s por la sentencia DECLARE %s" -#: preproc.y:1792 +#: preproc.y:1831 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "la opción AT no está permitida en la sentencia CLOSE DATABASE" -#: preproc.y:2042 +#: preproc.y:2081 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "la opción AT no está permitida en la sentencia CONNECT" -#: preproc.y:2082 +#: preproc.y:2121 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "la opción AT no está permitida en la sentencia DISCONNECT" -#: preproc.y:2137 +#: preproc.y:2176 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "la opción AT no está permitida en la sentencia SET CONNECTION" -#: preproc.y:2159 +#: preproc.y:2198 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "la opción AT no está permitida en la sentencia TYPE" -#: preproc.y:2168 +#: preproc.y:2207 #, c-format msgid "AT option not allowed in VAR statement" msgstr "la opción AT no está permitida en la sentencia VAR" -#: preproc.y:2175 +#: preproc.y:2214 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "la opción AT no está permitida en la sentencia WHENEVER" -#: preproc.y:2300 preproc.y:2472 preproc.y:2477 preproc.y:2589 preproc.y:4248 -#: preproc.y:4322 preproc.y:4913 preproc.y:5446 preproc.y:5784 preproc.y:6084 -#: preproc.y:7648 preproc.y:9252 preproc.y:9257 preproc.y:12206 +#: preproc.y:2339 preproc.y:2626 preproc.y:4349 preproc.y:5021 preproc.y:5891 +#: preproc.y:6095 preproc.y:6196 preproc.y:12460 #, c-format msgid "unsupported feature will be passed to server" msgstr "característica no soportada será pasada al servidor" -#: preproc.y:2847 +#: preproc.y:2884 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL no está implementado" -#: preproc.y:3531 +#: preproc.y:3596 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN no está implementado" -#: preproc.y:10303 preproc.y:17889 +#: preproc.y:10444 preproc.y:18503 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "no se puede usar «database» como nombre de cursor en modo INFORMIX" -#: preproc.y:10310 preproc.y:17899 +#: preproc.y:10451 preproc.y:18513 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "el uso de la variable «%s» en diferentes sentencias declare no está soportado" -#: preproc.y:10312 preproc.y:17901 +#: preproc.y:10453 preproc.y:18515 #, c-format msgid "cursor \"%s\" is already defined" msgstr "el cursor «%s» ya está definido" -#: preproc.y:10786 +#: preproc.y:10927 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "la sintaxis LIMIT #,# que ya no está soportada ha sido pasada al servidor" -#: preproc.y:17581 preproc.y:17588 +#: preproc.y:18195 preproc.y:18202 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS no puede especificar INTO" -#: preproc.y:17624 +#: preproc.y:18238 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "se esperaba «@», se encontró «%s»" -#: preproc.y:17636 +#: preproc.y:18250 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "sólo los protocolos «tcp» y «unix» y tipo de bases de datos «postgresql» están soportados" -#: preproc.y:17639 +#: preproc.y:18253 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "se esperaba «://», se encontró «%s»" -#: preproc.y:17644 +#: preproc.y:18258 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "los sockets de dominio unix sólo trabajan en «localhost» pero no en «%s»" -#: preproc.y:17670 +#: preproc.y:18284 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "se esperaba «postgresql», se encontró «%s»" -#: preproc.y:17673 +#: preproc.y:18287 #, c-format msgid "invalid connection type: %s" msgstr "tipo de conexión no válido: %s" -#: preproc.y:17682 +#: preproc.y:18296 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "se esperaba «@» o «://», se encontró «%s»" -#: preproc.y:17757 preproc.y:17775 +#: preproc.y:18371 preproc.y:18389 #, c-format msgid "invalid data type" msgstr "tipo de dato no válido" -#: preproc.y:17786 preproc.y:17803 +#: preproc.y:18400 preproc.y:18417 #, c-format msgid "incomplete statement" msgstr "sentencia incompleta" -#: preproc.y:17789 preproc.y:17806 +#: preproc.y:18403 preproc.y:18420 #, c-format msgid "unrecognized token \"%s\"" msgstr "elemento «%s» no reconocido" -#: preproc.y:17851 +#: preproc.y:18465 #, c-format msgid "name \"%s\" is already declared" msgstr "el nombre «%s» ya está declarado" -#: preproc.y:18140 +#: preproc.y:18754 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "sólo los tipos de dato numeric y decimal tienen argumento de precisión/escala" -#: preproc.y:18211 +#: preproc.y:18853 #, c-format msgid "interval specification not allowed here" msgstr "la especificación de intervalo no está permitida aquí" -#: preproc.y:18367 preproc.y:18419 +#: preproc.y:19009 preproc.y:19061 #, c-format msgid "too many levels in nested structure/union definition" msgstr "demasiados niveles en la definición anidada de estructura/unión" -#: preproc.y:18542 +#: preproc.y:19184 #, c-format msgid "pointers to varchar are not implemented" msgstr "los punteros a varchar no están implementados" -#: preproc.y:18993 +#: preproc.y:19635 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "inicializador no permitido en la orden EXEC SQL VAR" -#: preproc.y:19307 +#: preproc.y:19949 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "no se permiten los arrays de indicadores en la entrada" -#: preproc.y:19494 +#: preproc.y:20136 #, c-format msgid "operator not allowed in variable definition" msgstr "operador no permitido en definición de variable" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19535 +#: preproc.y:20177 #, c-format msgid "%s at or near \"%s\"" msgstr "%s en o cerca de «%s»" @@ -678,34 +677,34 @@ msgstr "la variable «%s» no es un array" msgid "variable \"%s\" is not declared" msgstr "la variable «%s» no está declarada" -#: variable.c:493 +#: variable.c:492 #, c-format msgid "indicator variable must have an integer type" msgstr "la variable de un indicador debe ser de algún tipo numérico entero" -#: variable.c:510 +#: variable.c:509 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "nombre de tipo de datos «%s» no reconocido" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:520 variable.c:528 variable.c:545 variable.c:548 #, c-format msgid "multidimensional arrays are not supported" msgstr "los arrays multidimensionales no están soportados" -#: variable.c:538 +#: variable.c:537 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "no se soportan los punteros multinivel (más de 2); se encontró 1 nivel" msgstr[1] "no se soportan los punteros multinivel (más de 2); se encontraron %d niveles" -#: variable.c:543 +#: variable.c:542 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "los punteros a puntero no están soportados para este tipo de dato" -#: variable.c:563 +#: variable.c:562 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "los arrays multidimensionales para estructuras no están soportados" diff --git a/src/interfaces/ecpg/preproc/po/fr.po b/src/interfaces/ecpg/preproc/po/fr.po index ca4aa527eea65..6d841e85359fd 100644 --- a/src/interfaces/ecpg/preproc/po/fr.po +++ b/src/interfaces/ecpg/preproc/po/fr.po @@ -9,10 +9,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-07-20 21:10+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -20,44 +20,44 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" #: descriptor.c:64 #, c-format msgid "variable \"%s\" must have a numeric type" msgstr "la variable « %s » doit avoir un type numeric" -#: descriptor.c:125 descriptor.c:156 +#: descriptor.c:124 descriptor.c:155 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "le descripteur %s lié à la connexion %s n'existe pas" -#: descriptor.c:127 descriptor.c:158 +#: descriptor.c:126 descriptor.c:157 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "le descripteur %s lié à la connexion par défaut n'existe pas" -#: descriptor.c:173 descriptor.c:225 +#: descriptor.c:172 descriptor.c:224 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "l'élément d'en-tête du descripteur « %d » n'existe pas" -#: descriptor.c:195 +#: descriptor.c:194 #, c-format msgid "nullable is always 1" msgstr "nullable vaut toujours 1" -#: descriptor.c:198 +#: descriptor.c:197 #, c-format msgid "key_member is always 0" msgstr "key_member vaut toujours 0" -#: descriptor.c:292 +#: descriptor.c:291 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "l'élément du descripteur « %s » n'est pas implanté" -#: descriptor.c:302 +#: descriptor.c:301 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "l'élément du descripteur « %s » ne peut pas être initialisé" @@ -192,179 +192,179 @@ msgstr "" msgid "%s home page: <%s>\n" msgstr "Page d'accueil de %s : <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s : n'a pas pu localiser le chemin de mon propre exécutable\n" -#: ecpg.c:176 ecpg.c:333 ecpg.c:344 -#, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %s\n" - -#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Essayer « %s --help » pour plus d'informations.\n" -#: ecpg.c:243 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s : support de débogage de l'analyseur (-d) non disponible\n" -#: ecpg.c:262 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 +#, c-format +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s : n'a pas pu ouvrir le fichier « %s » : %m\n" + +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, le préprocesseur C embarqué de PostgreSQL, version %s\n" -#: ecpg.c:264 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "la recherche EXEC SQL INCLUDE ... commence ici :\n" -#: ecpg.c:267 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "fin de la liste de recherche\n" -#: ecpg.c:273 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s : aucun fichier précisé en entrée\n" -#: ecpg.c:477 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "le curseur « %s » est déclaré mais non ouvert" -#: ecpg.c:490 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "n'a pas pu supprimer le fichier « %s » en sortie\n" -#: pgc.l:508 +#: pgc.l:528 #, c-format msgid "unterminated /* comment" msgstr "commentaire /* non terminé" -#: pgc.l:525 +#: pgc.l:545 #, c-format msgid "unterminated bit string literal" -msgstr "chaîne bit litéral non terminée" +msgstr "chaîne bit littéral non terminée" -#: pgc.l:533 +#: pgc.l:553 #, c-format msgid "unterminated hexadecimal string literal" -msgstr "chaîne hexadécimale litérale non terminée" +msgstr "chaîne hexadécimale littérale non terminée" -#: pgc.l:608 +#: pgc.l:628 #, c-format msgid "invalid bit string literal" -msgstr "chaîne bit litéral invalide" +msgstr "chaîne bit littéral invalide" -#: pgc.l:613 +#: pgc.l:633 #, c-format msgid "invalid hexadecimal string literal" msgstr "chaîne hexadécimale invalide" -#: pgc.l:631 +#: pgc.l:651 #, c-format msgid "unhandled previous state in xqs\n" msgstr "état précédent non géré dans xqs\n" -#: pgc.l:657 pgc.l:766 +#: pgc.l:677 pgc.l:786 #, c-format msgid "unterminated quoted string" msgstr "chaîne entre guillemets non terminée" -#: pgc.l:708 +#: pgc.l:728 #, c-format msgid "unterminated dollar-quoted string" msgstr "chaîne entre guillemets dollars non terminée" -#: pgc.l:726 pgc.l:746 +#: pgc.l:746 pgc.l:766 #, c-format msgid "zero-length delimited identifier" msgstr "identifiant délimité de longueur nulle" -#: pgc.l:757 +#: pgc.l:777 #, c-format msgid "unterminated quoted identifier" msgstr "identifiant entre guillemets non terminé" -#: pgc.l:926 +#: pgc.l:946 #, c-format msgid "trailing junk after parameter" msgstr "élément indésirable après le paramètre" -#: pgc.l:968 pgc.l:971 pgc.l:974 +#: pgc.l:998 pgc.l:1001 pgc.l:1004 pgc.l:1007 pgc.l:1010 pgc.l:1013 #, c-format msgid "trailing junk after numeric literal" msgstr "élément indésirable après la valeur numérique" -#: pgc.l:1100 +#: pgc.l:1136 #, c-format msgid "nested /* ... */ comments" msgstr "commentaires /* ... */ imbriqués" -#: pgc.l:1193 +#: pgc.l:1235 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "identifiant manquant dans la commande EXEC SQL UNDEF" -#: pgc.l:1211 pgc.l:1224 pgc.l:1240 pgc.l:1253 +#: pgc.l:1253 pgc.l:1266 pgc.l:1282 pgc.l:1295 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "trop de conditions EXEC SQL IFDEF imbriquées" -#: pgc.l:1269 pgc.l:1280 pgc.l:1295 pgc.l:1317 +#: pgc.l:1311 pgc.l:1322 pgc.l:1337 pgc.l:1359 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "correspondance manquante « EXEC SQL IFDEF » / « EXEC SQL IFNDEF »" -#: pgc.l:1271 pgc.l:1282 pgc.l:1463 +#: pgc.l:1313 pgc.l:1324 pgc.l:1517 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "« EXEC SQL ENDIF; » manquant" -#: pgc.l:1297 pgc.l:1319 +#: pgc.l:1339 pgc.l:1361 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "plusieurs EXEC SQL ELSE" -#: pgc.l:1342 pgc.l:1356 +#: pgc.l:1384 pgc.l:1398 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "EXEC SQL ENDIF différent" -#: pgc.l:1411 +#: pgc.l:1459 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "identifiant manquant dans la commande EXEC SQL IFDEF" -#: pgc.l:1420 +#: pgc.l:1468 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "identifiant manquant dans la commande EXEC SQL DEFINE" -#: pgc.l:1453 +#: pgc.l:1506 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "erreur de syntaxe dans la commande EXEC SQL INCLUDE" -#: pgc.l:1503 +#: pgc.l:1561 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "erreur interne : l'état ne peut être atteint ; merci de rapporter ceci à <%s>" -#: pgc.l:1655 +#: pgc.l:1713 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "" "Erreur : le chemin d'en-tête « %s/%s » est trop long sur la ligne %d,\n" "ignoré\n" -#: pgc.l:1678 +#: pgc.l:1736 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "n'a pas pu ouvrir le fichier d'en-tête « %s » sur la ligne %d" @@ -398,12 +398,12 @@ msgstr "initialiseur non autorisé dans la définition du type" msgid "type name \"string\" is reserved in Informix mode" msgstr "le nom du type « string » est réservé dans le mode Informix" -#: preproc.y:552 preproc.y:19317 +#: preproc.y:552 preproc.y:19072 #, c-format msgid "type \"%s\" is already defined" msgstr "le type « %s » est déjà défini" -#: preproc.y:577 preproc.y:19952 preproc.y:20277 variable.c:621 +#: preproc.y:577 preproc.y:19707 preproc.y:20029 variable.c:625 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "" @@ -415,186 +415,180 @@ msgstr "" msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "la connexion %s est surchargée avec %s par l'instruction DECLARE %s" -#: preproc.y:1872 +#: preproc.y:1833 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "option AT non autorisée dans une instruction CLOSE DATABASE" -#: preproc.y:2122 +#: preproc.y:2083 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "option AT non autorisée dans une instruction CONNECT" -#: preproc.y:2162 +#: preproc.y:2123 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "option AT non autorisée dans une instruction DISCONNECT" -#: preproc.y:2217 +#: preproc.y:2178 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "option AT non autorisée dans une instruction SET CONNECTION" -#: preproc.y:2239 +#: preproc.y:2200 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "option AT non autorisée dans une instruction TYPE" -#: preproc.y:2248 +#: preproc.y:2209 #, c-format msgid "AT option not allowed in VAR statement" msgstr "option AT non autorisée dans une instruction VAR" -#: preproc.y:2255 +#: preproc.y:2216 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "option AT non autorisée dans une instruction WHENEVER" -#: preproc.y:2332 preproc.y:2504 preproc.y:2509 preproc.y:2632 preproc.y:4283 preproc.y:4357 -#: preproc.y:4948 preproc.y:5481 preproc.y:5819 preproc.y:6119 preproc.y:7687 preproc.y:9288 -#: preproc.y:9293 preproc.y:12272 +#: preproc.y:2341 preproc.y:2628 preproc.y:4379 preproc.y:5043 preproc.y:5913 preproc.y:6117 +#: preproc.y:6218 preproc.y:12482 #, c-format msgid "unsupported feature will be passed to server" msgstr "la fonctionnalité non supportée sera passée au serveur" -#: preproc.y:2890 +#: preproc.y:2886 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL n'est pas implanté" -#: preproc.y:3589 +#: preproc.y:3626 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN n'est pas implanté" -#: preproc.y:10335 preproc.y:18892 +#: preproc.y:10466 preproc.y:18541 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "« database » ne peut pas être utilisé comme nom de curseur dans le mode INFORMIX" -#: preproc.y:10342 preproc.y:18902 +#: preproc.y:10473 preproc.y:18551 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "" "l'utilisation de la variable « %s » dans différentes instructions de déclaration\n" "n'est pas supportée" -#: preproc.y:10344 preproc.y:18904 +#: preproc.y:10475 preproc.y:18553 #, c-format msgid "cursor \"%s\" is already defined" msgstr "le curseur « %s » est déjà défini" -#: preproc.y:10818 +#: preproc.y:10949 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "la syntaxe obsolète LIMIT #,# a été passée au serveur" -#: preproc.y:11151 preproc.y:11158 -#, c-format -msgid "subquery in FROM must have an alias" -msgstr "la sous-requête du FROM doit avoir un alias" - -#: preproc.y:18584 preproc.y:18591 +#: preproc.y:18233 preproc.y:18240 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS ne peut pas indiquer INTO" -#: preproc.y:18627 +#: preproc.y:18276 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "« @ » attendu, « %s » trouvé" -#: preproc.y:18639 +#: preproc.y:18288 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "" "seuls les protocoles « tcp » et « unix » et les types de base de données\n" "« postgresql » sont supportés" -#: preproc.y:18642 +#: preproc.y:18291 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "« :// » attendu, « %s » trouvé" -#: preproc.y:18647 +#: preproc.y:18296 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "les sockets de domaine Unix fonctionnent seulement sur « localhost », mais pas sur « %s »" -#: preproc.y:18673 +#: preproc.y:18322 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "« postgresql » attendu, « %s » trouvé" -#: preproc.y:18676 +#: preproc.y:18325 #, c-format msgid "invalid connection type: %s" msgstr "type de connexion invalide : %s" -#: preproc.y:18685 +#: preproc.y:18334 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "« @ » ou « :// » attendu, « %s » trouvé" -#: preproc.y:18760 preproc.y:18778 +#: preproc.y:18409 preproc.y:18427 #, c-format msgid "invalid data type" msgstr "type de données invalide" -#: preproc.y:18789 preproc.y:18806 +#: preproc.y:18438 preproc.y:18455 #, c-format msgid "incomplete statement" msgstr "instruction incomplète" -#: preproc.y:18792 preproc.y:18809 +#: preproc.y:18441 preproc.y:18458 #, c-format msgid "unrecognized token \"%s\"" msgstr "jeton « %s » non reconnu" -#: preproc.y:18854 +#: preproc.y:18503 #, c-format msgid "name \"%s\" is already declared" msgstr "le nom « %s » est déjà défini" -#: preproc.y:19120 +#: preproc.y:18792 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "" "seuls les types de données numeric et decimal ont des arguments de\n" "précision et d'échelle" -#: preproc.y:19132 +#: preproc.y:18891 #, c-format msgid "interval specification not allowed here" msgstr "interval de spécification non autorisé ici" -#: preproc.y:19292 preproc.y:19344 +#: preproc.y:19047 preproc.y:19099 #, c-format msgid "too many levels in nested structure/union definition" msgstr "trop de niveaux dans la définition de structure/union imbriquée" -#: preproc.y:19467 +#: preproc.y:19222 #, c-format msgid "pointers to varchar are not implemented" msgstr "les pointeurs sur des chaînes de caractères (varchar) ne sont pas implantés" -#: preproc.y:19918 +#: preproc.y:19673 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "initialiseur non autorisé dans la commande EXEC SQL VAR" -#: preproc.y:20235 +#: preproc.y:19987 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "les tableaux d'indicateurs ne sont pas autorisés en entrée" -#: preproc.y:20422 +#: preproc.y:20174 #, c-format msgid "operator not allowed in variable definition" msgstr "opérateur non autorisé dans la définition de la variable" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:20463 +#: preproc.y:20215 #, c-format msgid "%s at or near \"%s\"" msgstr "%s sur ou près de « %s »" @@ -668,52 +662,52 @@ msgstr "le struct indicateur « %s » a trop de membres" msgid "unrecognized descriptor item code %d" msgstr "code %d de l'élément du descripteur non reconnu" -#: variable.c:89 variable.c:116 +#: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "variable « %s » mal formée" -#: variable.c:139 +#: variable.c:138 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "la variable « %s » n'est pas un pointeur" -#: variable.c:142 variable.c:167 +#: variable.c:141 variable.c:166 #, c-format msgid "variable \"%s\" is not a pointer to a structure or a union" msgstr "la variable « %s » n'est pas un pointeur vers une structure ou une union" -#: variable.c:154 +#: variable.c:153 #, c-format msgid "variable \"%s\" is neither a structure nor a union" msgstr "la variable « %s » n'est ni une structure ni une union" -#: variable.c:164 +#: variable.c:163 #, c-format msgid "variable \"%s\" is not an array" msgstr "la variable « %s » n'est pas un tableau" -#: variable.c:233 variable.c:255 +#: variable.c:232 variable.c:254 #, c-format msgid "variable \"%s\" is not declared" msgstr "la variable « %s » n'est pas déclarée" -#: variable.c:494 +#: variable.c:493 #, c-format msgid "indicator variable must have an integer type" msgstr "la variable d'indicateur doit avoir un type integer" -#: variable.c:506 +#: variable.c:510 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "nom « %s » non reconnu pour un type de données" -#: variable.c:517 variable.c:525 variable.c:542 variable.c:545 +#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 #, c-format msgid "multidimensional arrays are not supported" msgstr "les tableaux multidimensionnels ne sont pas supportés" -#: variable.c:534 +#: variable.c:538 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" @@ -724,46 +718,12 @@ msgstr[1] "" "les pointeurs multi-niveaux (plus de deux) ne sont pas supportés :\n" "%d niveaux trouvés" -#: variable.c:539 +#: variable.c:543 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "ce type de données ne supporte pas les pointeurs de pointeur" -#: variable.c:559 +#: variable.c:563 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "les tableaux multidimensionnels ne sont pas supportés pour les structures" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "Rapporter les bogues à .\n" - -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version affiche la version et quitte\n" - -#~ msgid "AT option not allowed in DEALLOCATE statement" -#~ msgstr "option AT non autorisée dans une instruction DEALLOCATE" - -#~ msgid "COPY FROM STDOUT is not possible" -#~ msgstr "COPY FROM STDOUT n'est pas possible" - -#~ msgid "COPY TO STDIN is not possible" -#~ msgstr "COPY TO STDIN n'est pas possible" - -#~ msgid "NEW used in query that is not in a rule" -#~ msgstr "NEW utilisé dans une requête qui n'est pas dans une règle" - -#~ msgid "OLD used in query that is not in a rule" -#~ msgstr "OLD utilisé dans une requête qui n'est pas dans une règle" - -#~ msgid "constraint declared INITIALLY DEFERRED must be DEFERRABLE" -#~ msgstr "une contrainte déclarée INITIALLY DEFERRED doit être DEFERRABLE" - -#~ msgid "declared name %s is already defined" -#~ msgstr "le nom déclaré %s est déjà défini" - -#~ msgid "using unsupported DESCRIBE statement" -#~ msgstr "utilisation de l'instruction DESCRIBE non supporté" diff --git a/src/interfaces/ecpg/preproc/po/ja.po b/src/interfaces/ecpg/preproc/po/ja.po index ac539c39f0ddb..2509435666af6 100644 --- a/src/interfaces/ecpg/preproc/po/ja.po +++ b/src/interfaces/ecpg/preproc/po/ja.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: ecpg (PostgreSQL 17)\n" +"Project-Id-Version: ecpg (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-13 10:06+0900\n" -"PO-Revision-Date: 2024-03-13 10:42+0900\n" +"POT-Creation-Date: 2025-03-12 11:10+0900\n" +"PO-Revision-Date: 2025-03-31 16:23+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: jpug-doc \n" "Language: ja\n" @@ -17,47 +17,47 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: descriptor.c:64 +#: descriptor.c:63 #, c-format msgid "variable \"%s\" must have a numeric type" msgstr "変数\"%s\"は数値型でなければなりません" -#: descriptor.c:124 descriptor.c:155 +#: descriptor.c:119 descriptor.c:149 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "接続%2$sに関連付けられている記述子%1$sは存在しません" -#: descriptor.c:126 descriptor.c:157 +#: descriptor.c:121 descriptor.c:151 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "デフォルト接続に関連付けられている記述子%sは存在しません" -#: descriptor.c:172 descriptor.c:224 +#: descriptor.c:166 descriptor.c:218 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "記述子ヘッダ項目%dは存在しません" -#: descriptor.c:194 +#: descriptor.c:188 #, c-format msgid "nullable is always 1" msgstr "nullableは常に1です" -#: descriptor.c:197 +#: descriptor.c:191 #, c-format msgid "key_member is always 0" msgstr "key_memberは常に0です" -#: descriptor.c:291 +#: descriptor.c:285 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "記述子項目%sは実装されていません" -#: descriptor.c:301 +#: descriptor.c:295 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "記述子項目%sは設定できません" -#: ecpg.c:36 +#: ecpg.c:37 #, c-format msgid "" "%s is the PostgreSQL embedded SQL preprocessor for C programs.\n" @@ -66,7 +66,7 @@ msgstr "" "%sはCプログラム用のPostgreSQL埋込みSQLプリプロセッサです。\n" "\n" -#: ecpg.c:38 +#: ecpg.c:39 #, c-format msgid "" "Usage:\n" @@ -77,12 +77,12 @@ msgstr "" " %s [オプション]... ファイル...\n" "\n" -#: ecpg.c:41 +#: ecpg.c:42 #, c-format msgid "Options:\n" msgstr "オプション:\n" -#: ecpg.c:42 +#: ecpg.c:43 #, c-format msgid "" " -c automatically generate C code from embedded SQL code;\n" @@ -91,7 +91,7 @@ msgstr "" " -c 埋め込まれたSQLコードを元にC言語コードを自動的に生成。\n" " これはEXEC SQL TYPEに影響を与える\n" -#: ecpg.c:44 +#: ecpg.c:45 #, c-format msgid "" " -C MODE set compatibility mode; MODE can be one of\n" @@ -100,39 +100,39 @@ msgstr "" " -C MODE 互換モードを設定; MODEは\"INFORMIX\"、 \"INFORMIX_SE\"、\n" " \"ORACLE\"のいずれか\n" -#: ecpg.c:47 +#: ecpg.c:48 #, c-format msgid " -d generate parser debug output\n" msgstr " -d パーサのデバッグ出力を有効にする\n" -#: ecpg.c:49 +#: ecpg.c:50 #, c-format msgid " -D SYMBOL define SYMBOL\n" msgstr " -D SYMBOL シンボル SYMBOL を定義する\n" -#: ecpg.c:50 +#: ecpg.c:51 #, c-format msgid " -h parse a header file, this option includes option \"-c\"\n" msgstr "" " -h ヘッダファイルをパースする。このオプションには\"-c\"オプション\n" " が含まれる\n" -#: ecpg.c:51 +#: ecpg.c:52 #, c-format msgid " -i parse system include files as well\n" msgstr " -i システムインクルードファイルもパースする\n" -#: ecpg.c:52 +#: ecpg.c:53 #, c-format msgid " -I DIRECTORY search DIRECTORY for include files\n" msgstr " -I DIRECTORY DIRECTORYからインクルードファイルを検索\n" -#: ecpg.c:53 +#: ecpg.c:54 #, c-format msgid " -o OUTFILE write result to OUTFILE\n" msgstr " -o OUTFILE 結果をOUTFILEに出力\n" -#: ecpg.c:54 +#: ecpg.c:55 #, c-format msgid "" " -r OPTION specify run-time behavior; OPTION can be:\n" @@ -141,27 +141,27 @@ msgstr "" " -r OPTION 実行時の動作を指定。オプションは次のいずれか\n" " \"no_indicator\"、\"prepare\"、\"questionmarks\"\n" -#: ecpg.c:56 +#: ecpg.c:57 #, c-format msgid " --regression run in regression testing mode\n" msgstr " --regression リグレッション試験モードで実行\n" -#: ecpg.c:57 +#: ecpg.c:58 #, c-format msgid " -t turn on autocommit of transactions\n" msgstr " -t トランザクションの自動コミットを有効にする\n" -#: ecpg.c:58 +#: ecpg.c:59 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を出力して終了\n" -#: ecpg.c:59 +#: ecpg.c:60 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: ecpg.c:60 +#: ecpg.c:61 #, c-format msgid "" "\n" @@ -172,7 +172,7 @@ msgstr "" "出力ファイルの指定がない場合は、入力ファイルの名前に.cを付けた名前になります。\n" "ただし、もし.pgcがある場合はこれを取り除いてから.cが付けられます。\n" -#: ecpg.c:62 +#: ecpg.c:63 #, c-format msgid "" "\n" @@ -181,474 +181,478 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: ecpg.c:63 +#: ecpg.c:64 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: 自身の実行ファイルの場所がわかりません\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "詳細は\"%s --help\"を実行してください。\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: パーサデバッグのサポート(-d)を利用できません\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format msgid "%s: could not open file \"%s\": %m\n" msgstr "%s: ファイル\"%s\"をオープンできませんでした: %m\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, PostgreSQL埋込みC言語プリプロセッサ, バージョン%s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... 検索が始まります\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "検索リストの終端です\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: 入力ファイルが指定されていません\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "カーソル%sは宣言されましたが、オープンされていません" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 util.c:75 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "出力ファイル\"%s\"を削除できませんでした\n" -#: pgc.l:520 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "/*コメントが閉じていません" -#: pgc.l:537 +#: pgc.l:560 #, c-format msgid "unterminated bit string literal" msgstr "ビット文字列リテラルの終端がありません" -#: pgc.l:545 +#: pgc.l:570 #, c-format msgid "unterminated hexadecimal string literal" msgstr "16進数文字列リテラルの終端がありません" -#: pgc.l:620 +#: pgc.l:644 #, c-format msgid "invalid bit string literal" msgstr "無効なビット列リテラルです" -#: pgc.l:625 +#: pgc.l:649 #, c-format msgid "invalid hexadecimal string literal" msgstr "不正な16進数文字列リテラル" -#: pgc.l:643 +#: pgc.l:667 #, c-format msgid "unhandled previous state in xqs\n" msgstr "xqsの中で処理されない前ステート\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:700 pgc.l:820 #, c-format msgid "unterminated quoted string" msgstr "文字列の引用符が閉じていません" -#: pgc.l:720 +#: pgc.l:753 #, c-format msgid "unterminated dollar-quoted string" msgstr "文字列のドル引用符が閉じていません" -#: pgc.l:738 pgc.l:758 +#: pgc.l:772 pgc.l:793 #, c-format msgid "zero-length delimited identifier" msgstr "区切りつき識別子の長さがゼロです" -#: pgc.l:769 +#: pgc.l:809 #, c-format msgid "unterminated quoted identifier" msgstr "識別子の引用符が閉じていません" -#: pgc.l:938 +#: pgc.l:985 +#, c-format +msgid "parameter number too large" +msgstr "パラメータ数が多すぎます" + +#: pgc.l:990 #, c-format msgid "trailing junk after parameter" msgstr "パラメータの後に余分な文字" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:1042 pgc.l:1045 pgc.l:1048 #, c-format msgid "trailing junk after numeric literal" msgstr "数値リテラルの後ろにゴミがあります" -#: pgc.l:1127 +#: pgc.l:1177 #, c-format msgid "nested /* ... */ comments" msgstr "入れ子状の /* ... */ コメント" -#: pgc.l:1220 +#: pgc.l:1279 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "EXEC SQL UNDEFコマンドにおいて識別子がありません" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1299 pgc.l:1312 pgc.l:1328 pgc.l:1341 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "入れ子状のEXEC SQL IFDEF条件が多すぎます" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1357 pgc.l:1368 pgc.l:1384 pgc.l:1406 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "対応する\"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"がありません" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1359 pgc.l:1370 pgc.l:1565 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "\"EXEC SQL ENDIF;\"がありません" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1386 pgc.l:1408 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "1つ以上のEXEC SQL ELSE\"が存在します" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1431 pgc.l:1445 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "EXEC SQL ENDIFに対応するものがありません" -#: pgc.l:1438 +#: pgc.l:1507 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "EXEC SQL IFDEFコマンドにおいて識別子がありません" -#: pgc.l:1447 +#: pgc.l:1516 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "EXEC SQL DEFINEコマンドにおいて識別子がありません" -#: pgc.l:1480 +#: pgc.l:1554 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "EXEC SQL INCLUDEコマンドにおいて構文エラーがあります" -#: pgc.l:1530 +#: pgc.l:1609 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "内部エラー: 到達しないはずの状態です。<%s>まで報告してください" -#: pgc.l:1682 +#: pgc.l:1766 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "エラー:行番号%3$dのインクルードパス\"%1$s/%2$s\"が長すぎます。無視しました。\n" -#: pgc.l:1705 +#: pgc.l:1793 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "行番号%2$dのインクルードファイル\"%1$s\"をオープンすることができませんでした" -#: preproc.y:31 +#: preproc.y:28 msgid "syntax error" msgstr "構文エラー" -#: preproc.y:84 -#, c-format -msgid "WARNING: " -msgstr "警告: " - -#: preproc.y:87 -#, c-format -msgid "ERROR: " -msgstr "エラー: " - -#: preproc.y:514 +#: preproc.y:467 #, c-format msgid "cursor \"%s\" does not exist" msgstr "カーソル\"%s\"は存在しません" -#: preproc.y:543 +#: preproc.y:503 #, c-format msgid "initializer not allowed in type definition" msgstr "型定義では初期化子は許されません" -#: preproc.y:545 +#: preproc.y:505 #, c-format msgid "type name \"string\" is reserved in Informix mode" msgstr "型名\"string\"はInformixモードですでに予約されています" -#: preproc.y:552 preproc.y:18523 +#: preproc.y:512 preproc.y:8820 #, c-format msgid "type \"%s\" is already defined" msgstr "\"%s\"型はすでに定義されています" -#: preproc.y:577 preproc.y:19158 preproc.y:19480 variable.c:625 +#: preproc.y:539 preproc.y:9534 preproc.y:9879 variable.c:652 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "単純なデータ型の多次元配列はサポートされていません" -#: preproc.y:599 +#: preproc.y:562 #, c-format msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "DECLARE文%3$sにより接続%1$sは%2$sで上書きされます" -#: preproc.y:1810 +#: preproc.y:932 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "CLOSE DATABASE文ではATオプションは許されません" -#: preproc.y:2060 +#: preproc.y:1184 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "CONNECT文ではATオプションは許されません" -#: preproc.y:2100 +#: preproc.y:1221 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "DISCONNECT文ではATオプションは許されません" -#: preproc.y:2155 +#: preproc.y:1274 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "SET CONNECTION文ではATオプションは許されません" -#: preproc.y:2177 +#: preproc.y:1292 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "TYPE文ではATオプションは許されません" -#: preproc.y:2186 +#: preproc.y:1300 #, c-format msgid "AT option not allowed in VAR statement" msgstr "VAR文ではATオプションは許されません" -#: preproc.y:2193 +#: preproc.y:1307 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "WHENEVER文ではATオプションは許されません" -#: preproc.y:2318 preproc.y:2490 preproc.y:2495 preproc.y:2607 preproc.y:4317 -#: preproc.y:4391 preproc.y:4982 preproc.y:5515 preproc.y:5853 preproc.y:6057 -#: preproc.y:6158 preproc.y:7722 preproc.y:9330 preproc.y:9335 preproc.y:12308 +#: preproc.y:1375 preproc.y:1498 preproc.y:2260 preproc.y:2586 preproc.y:3017 +#: preproc.y:3104 preproc.y:6086 #, c-format msgid "unsupported feature will be passed to server" msgstr "非サポートの機能がサーバーに渡されます" -#: preproc.y:2865 +#: preproc.y:1610 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALLは実装されていません" -#: preproc.y:3577 +#: preproc.y:1896 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDINは実装されていません" -#: preproc.y:10385 preproc.y:18020 +#: preproc.y:5146 preproc.y:8271 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "INFORMIXモードでは\"database\"をカーソル名として使用できません" -#: preproc.y:10392 preproc.y:18030 +#: preproc.y:5153 preproc.y:8281 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "異なったdeclareステートメントにおける変数\"%s\"の使用はサポートされていません" -#: preproc.y:10394 preproc.y:18032 +#: preproc.y:5155 preproc.y:8283 #, c-format msgid "cursor \"%s\" is already defined" msgstr "カーソル\"%s\"はすでに定義されています" -#: preproc.y:10868 +#: preproc.y:5402 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "サーバーに渡されるLIMIT #,#構文はもはやサポートされていません" -#: preproc.y:17712 preproc.y:17719 +#: preproc.y:7919 preproc.y:7927 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE ASはINTOを指定できません" -#: preproc.y:17755 +#: preproc.y:7972 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "想定では\"@\"、結果では\"%s\"" -#: preproc.y:17767 +#: preproc.y:7984 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "プロトコルでは\"tcp\"および\"unix\"のみ、データベースの種類では\"postgresql\"のみがサポートされています" -#: preproc.y:17770 +#: preproc.y:7987 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "想定では\"://\"、結果では\"%s\"" -#: preproc.y:17775 +#: preproc.y:7992 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unixドメインソケットは\"localhost\"でのみで動作し、\"%s\"では動作しません" -#: preproc.y:17801 +#: preproc.y:8019 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "想定では\"postgresql\"、結果では\"%s\"" -#: preproc.y:17804 +#: preproc.y:8022 #, c-format msgid "invalid connection type: %s" msgstr "無効な接続種類: %s" -#: preproc.y:17813 +#: preproc.y:8031 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "想定では\"@または\"\"://\"、結果では\"%s\"" -#: preproc.y:17888 preproc.y:17906 +#: preproc.y:8129 preproc.y:8147 #, c-format msgid "invalid data type" msgstr "無効なデータ型" -#: preproc.y:17917 preproc.y:17934 +#: preproc.y:8158 preproc.y:8175 #, c-format msgid "incomplete statement" msgstr "不完全な文" -#: preproc.y:17920 preproc.y:17937 +#: preproc.y:8161 preproc.y:8178 #, c-format msgid "unrecognized token \"%s\"" msgstr "認識できないトークン\"%s\"" -#: preproc.y:17982 +#: preproc.y:8233 #, c-format msgid "name \"%s\" is already declared" msgstr "名前\"%s\"はすでに定義されています" -#: preproc.y:18271 +#: preproc.y:8536 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "数値データ型または10進数データ型のみが精度/位取り引数と取ることができます" -#: preproc.y:18342 +#: preproc.y:8635 #, c-format msgid "interval specification not allowed here" msgstr "時間間隔の指定はここでは許されません" -#: preproc.y:18498 preproc.y:18550 +#: preproc.y:8791 preproc.y:8849 #, c-format msgid "too many levels in nested structure/union definition" msgstr "構造体/ユニオンの定義の入れ子レベルが深すぎます" -#: preproc.y:18673 +#: preproc.y:8984 #, c-format msgid "pointers to varchar are not implemented" msgstr "varcharを指し示すポインタは実装されていません" -#: preproc.y:19124 +#: preproc.y:9499 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "EXEC SQL VARコマンドでは初期化子は許されません" -#: preproc.y:19438 +#: preproc.y:9822 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "指示子配列は入力として許されません" -#: preproc.y:19625 +#: preproc.y:10056 #, c-format msgid "operator not allowed in variable definition" msgstr "変数定義では演算子は許されません" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19666 +#: preproc.y:10101 #, c-format msgid "%s at or near \"%s\"" msgstr "\"%2$s\"またはその近辺で%1$s" -#: type.c:18 type.c:30 -#, c-format -msgid "out of memory" -msgstr "メモリ不足です" - -#: type.c:214 type.c:685 +#: type.c:191 type.c:661 #, c-format msgid "unrecognized variable type code %d" msgstr "認識できない変数型コード%d" -#: type.c:263 +#: type.c:240 #, c-format msgid "variable \"%s\" is hidden by a local variable of a different type" msgstr "変数\"%s\"は、異なった型を持つローカル変数により隠蔽されています" -#: type.c:265 +#: type.c:242 #, c-format msgid "variable \"%s\" is hidden by a local variable" msgstr "変数\"%s\"はローカル変数により隠蔽されています" -#: type.c:277 +#: type.c:254 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable of a different type" msgstr "指示子変数\"%s\"は、異なった型を持つローカル変数により隠蔽されています" -#: type.c:279 +#: type.c:256 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable" msgstr "指示子変数\"%s\"はローカル変数により隠蔽されています" -#: type.c:287 +#: type.c:264 #, c-format msgid "indicator for array/pointer has to be array/pointer" msgstr "配列/ポインタ用の指示子は配列/ポインタでなければなりません" -#: type.c:291 +#: type.c:268 #, c-format msgid "nested arrays are not supported (except strings)" msgstr "入れ子状の配列はサポートされません (文字列は除きます)" -#: type.c:333 +#: type.c:310 #, c-format msgid "indicator for struct has to be a struct" msgstr "構造体用の指示子は構造体でなければなりません" -#: type.c:353 type.c:374 type.c:394 +#: type.c:330 type.c:351 type.c:371 #, c-format msgid "indicator for simple data type has to be simple" msgstr "単純なデータ型用の指示子は単純型でなければなりません" -#: type.c:625 +#: type.c:602 #, c-format msgid "indicator struct \"%s\" has too few members" msgstr "指示子構造体\"%s\"のメンバが足りません" -#: type.c:633 +#: type.c:610 #, c-format msgid "indicator struct \"%s\" has too many members" msgstr "指示子構造体\"%s\"のメンバが多すぎます" -#: type.c:744 +#: type.c:723 #, c-format msgid "unrecognized descriptor item code %d" msgstr "認識できない記述子項目コード%dです" +#: util.c:26 +#, c-format +msgid "WARNING: " +msgstr "警告: " + +#: util.c:29 +#, c-format +msgid "ERROR: " +msgstr "エラー: " + +#: util.c:90 util.c:102 +#, c-format +msgid "out of memory" +msgstr "メモリ不足です" + #: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "正しく成形されていない変数\"%s\"です" -#: variable.c:138 +#: variable.c:138 variable.c:237 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "変数\"%s\"はポインタではありません" @@ -668,58 +672,43 @@ msgstr "変数\"%s\"は構造体でもユニオンでもありません" msgid "variable \"%s\" is not an array" msgstr "変数\"%s\"は配列ではありません" -#: variable.c:232 variable.c:254 +#: variable.c:220 +#, c-format +msgid "unmatched brace in variable \"%s\"" +msgstr "変数\"%s\"に閉じられていないブレースがあります" + +#: variable.c:235 variable.c:258 #, c-format msgid "variable \"%s\" is not declared" msgstr "変数\"%s\"は宣言されていません" -#: variable.c:493 +#: variable.c:517 #, c-format msgid "indicator variable must have an integer type" msgstr "指示子変数は整数型でなければなりません" -#: variable.c:510 +#: variable.c:534 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "データ型名\"%s\"は認識できません" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:548 variable.c:556 variable.c:573 variable.c:576 #, c-format msgid "multidimensional arrays are not supported" msgstr "多次元配列はサポートされません" -#: variable.c:538 +#: variable.c:565 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "複数レベルのポインタ(2レベル以上)はサポートされません。%dレベルあります" -#: variable.c:543 +#: variable.c:570 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "このデータ型では、ポインタを指し示すポインタはサポートされていません" -#: variable.c:563 +#: variable.c:590 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "構造体の多次元配列はサポートされていません" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "不具合はまで報告してください。\n" - -#~ msgid "" -#~ "\n" -#~ "Report bugs to .\n" -#~ msgstr "" -#~ "\n" -#~ "不具合はに報告してください。\n" - -#~ msgid "subquery in FROM must have an alias" -#~ msgstr "FROM句の副問い合わせは別名を持たなければなりません" - -#~ msgid "using unsupported DESCRIBE statement" -#~ msgstr "未サポートのDESCRIBE文の使用" diff --git a/src/interfaces/ecpg/preproc/po/ka.po b/src/interfaces/ecpg/preproc/po/ka.po index 604fb6758bd4d..04151f7a3c352 100644 --- a/src/interfaces/ecpg/preproc/po/ka.po +++ b/src/interfaces/ecpg/preproc/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: ecpg (PostgreSQL) 17\n" +"Project-Id-Version: ecpg (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-03-13 00:40+0000\n" -"PO-Revision-Date: 2024-03-13 02:00+0100\n" +"POT-Creation-Date: 2025-04-25 17:40+0000\n" +"PO-Revision-Date: 2025-04-26 05:04+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,49 +16,49 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: descriptor.c:64 +#: descriptor.c:63 #, c-format msgid "variable \"%s\" must have a numeric type" msgstr "ცვლად \"%s\"-ს რიცხვობრივი ტიპი უნდა გააჩნდეს" -#: descriptor.c:124 descriptor.c:155 +#: descriptor.c:119 descriptor.c:149 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "დესკრიპტორი %s მიბმულია შეერთებაზე %s, არ არსებობს" -#: descriptor.c:126 descriptor.c:157 +#: descriptor.c:121 descriptor.c:151 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "ნაგულისხმებ შეერთებაზე მიბმული დესკრიპტორი (\"%s\") არ არსებობს" -#: descriptor.c:172 descriptor.c:224 +#: descriptor.c:166 descriptor.c:218 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "დესკრიპტორის თავსართის ჩანაწერი \"%d\" არ არსებობს" -#: descriptor.c:194 +#: descriptor.c:188 #, c-format msgid "nullable is always 1" msgstr "განულებადი ყოველთვის 1-ს უდრის" -#: descriptor.c:197 +#: descriptor.c:191 #, c-format msgid "key_member is always 0" msgstr "key_member ყოველთვის 0-ს უდრის" -#: descriptor.c:291 +#: descriptor.c:285 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "დესკრიპტორის ჩანაწერი \"%s\" განხორციელებული არაა" -#: descriptor.c:301 +#: descriptor.c:295 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "დესკრიპტორის ჩანაწერის (\"%s\") დაყენების შეცდომა" -#: ecpg.c:36 +#: ecpg.c:37 #, c-format msgid "" "%s is the PostgreSQL embedded SQL preprocessor for C programs.\n" @@ -67,7 +67,7 @@ msgstr "" "%s PostgreSQL-ში ჩაშენებული SQL პრეპროცესორია C-ზე დაწერილი პროგრამებისთვის.\n" "\n" -#: ecpg.c:38 +#: ecpg.c:39 #, c-format msgid "" "Usage:\n" @@ -78,12 +78,12 @@ msgstr "" " %s [პარამეტრი]... ფაილი...\n" "\n" -#: ecpg.c:41 +#: ecpg.c:42 #, c-format msgid "Options:\n" msgstr "პარამეტრები:\n" -#: ecpg.c:42 +#: ecpg.c:43 #, c-format msgid "" " -c automatically generate C code from embedded SQL code;\n" @@ -92,7 +92,7 @@ msgstr "" " -c ჩადგმული SQL კოდიდან C-ის კოდის ავტომატური გენერაცია;\n" " ეს გავლენას ახდენს EXEC SQL TYPE-ზე\n" -#: ecpg.c:44 +#: ecpg.c:45 #, c-format msgid "" " -C MODE set compatibility mode; MODE can be one of\n" @@ -101,37 +101,37 @@ msgstr "" " -C რეჟიმი თავსებადობის დაყენება. რეჟიმი შეიძლება იყოს:\n" " \"INFORMIX\", \"INFORMIX_SE\", \"ORACLE\"\n" -#: ecpg.c:47 +#: ecpg.c:48 #, c-format msgid " -d generate parser debug output\n" msgstr " -d დამმუშავებლის გასამართი ინფორმაციის გენერაცია\n" -#: ecpg.c:49 +#: ecpg.c:50 #, c-format msgid " -D SYMBOL define SYMBOL\n" msgstr " -D ფუნქცია ფუნქციის აღწერა\n" -#: ecpg.c:50 +#: ecpg.c:51 #, c-format msgid " -h parse a header file, this option includes option \"-c\"\n" msgstr " -h თავსართის ფაილის დამუშავება. ეს პარამეტრი ასევე შეიცავს პარამეტრს \"-c\"\n" -#: ecpg.c:51 +#: ecpg.c:52 #, c-format msgid " -i parse system include files as well\n" msgstr " -i დამუშავებისას სისტემური ფაილების ჩართვა\n" -#: ecpg.c:52 +#: ecpg.c:53 #, c-format msgid " -I DIRECTORY search DIRECTORY for include files\n" msgstr " -I საქაღალდე თავსართის ფაილების ძებნისას მათი ალტერნატიული მდებარეობა\n" -#: ecpg.c:53 +#: ecpg.c:54 #, c-format msgid " -o OUTFILE write result to OUTFILE\n" msgstr " -o გამოსატანიფაილი გამოტანილი ინფორმაციის მითითებულ ფაილში ჩაწერა\n" -#: ecpg.c:54 +#: ecpg.c:55 #, c-format msgid "" " -r OPTION specify run-time behavior; OPTION can be:\n" @@ -140,27 +140,27 @@ msgstr "" " -r პარამეტრი გაშვების ქცევა; პარამეტრი შეიძლება იყოს:\n" " \"no_indicator\", \"prepare\", \"questionmarks\"\n" -#: ecpg.c:56 +#: ecpg.c:57 #, c-format msgid " --regression run in regression testing mode\n" msgstr " --regression რეგრესიის ტესტირების რეჟიმში გაშვება\n" -#: ecpg.c:57 +#: ecpg.c:58 #, c-format msgid " -t turn on autocommit of transactions\n" msgstr " -t ტრანზაქციების ავტომატური გადაცემის ჩართვა\n" -#: ecpg.c:58 +#: ecpg.c:59 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version ვერსიის ჩვენება და გასვლა\n" -#: ecpg.c:59 +#: ecpg.c:60 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help ამ დახმარების ჩვენება და გასვლა\n" -#: ecpg.c:60 +#: ecpg.c:61 #, c-format msgid "" "\n" @@ -171,7 +171,7 @@ msgstr "" "თუ გამოსატანი ფაილი მითითებული არაა, სახელი იქმნება \n" "შეყვანის ფაილის სახელისთვის .c- ს დამატებით, წარდგენის შემთხვევაში .pgc- ის მოშლის შემდეგ.\n" -#: ecpg.c:62 +#: ecpg.c:63 #, c-format msgid "" "\n" @@ -180,474 +180,478 @@ msgstr "" "\n" "შეცდომების შესახებ მიწერეთ: %s\n" -#: ecpg.c:63 +#: ecpg.c:64 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-ის საწყისი გვერდია: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: ჩემი საკუთარი გამშვები ფაილის ბილიკის მოძებნა შეუძლებელია\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "მეტი ინფორმაციისთვის სცადეთ '%s --help'.\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: დამმუშავებლის გამართვის მხარდაჭერა (-d) არ არსებობს\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format msgid "%s: could not open file \"%s\": %m\n" msgstr "%s: ფაილის გახსნის შეცდომა \"%s\": %m\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, PostgreSQL-ის ჩაშენებული C პრეპროცესორი, ვერსია %s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... ძებნა იწყება აქ:\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "ძებნის სიის დასასრული\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: შეყვანის ფაილები მითითებული არაა\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "კურსორი \"%s\" აღწერილია, მაგრამ არა გახსნილი" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 util.c:75 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "გამოტანის ფაილის წაშლის შეცდომა: \"%s\"\n" -#: pgc.l:520 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "დაუსრულებელი /* კომენტარი" -#: pgc.l:537 +#: pgc.l:560 #, c-format msgid "unterminated bit string literal" msgstr "გაწყვეტილი ბიტური სტრიქონი" -#: pgc.l:545 +#: pgc.l:570 #, c-format msgid "unterminated hexadecimal string literal" msgstr "გაწყვეტილი თექვსმეტობითი სტრიქონი" -#: pgc.l:620 +#: pgc.l:644 #, c-format msgid "invalid bit string literal" msgstr "არასწორი ბიტური სტრიქონი" -#: pgc.l:625 +#: pgc.l:649 #, c-format msgid "invalid hexadecimal string literal" msgstr "არასწორი თექვსმეტობითი სტრიქონი" -#: pgc.l:643 +#: pgc.l:667 #, c-format msgid "unhandled previous state in xqs\n" msgstr "დაუმუშავებელი წინა მდგომარეობა დაუხურავი ბრჭყალის აღმოჩენისას\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:700 pgc.l:820 #, c-format msgid "unterminated quoted string" msgstr "ბრჭყალებში ჩასმული ციტატის დაუსრულებელი სტრიქონი" -#: pgc.l:720 +#: pgc.l:753 #, c-format msgid "unterminated dollar-quoted string" msgstr "$-ით დაწყებული სტრიქონ დაუმთავრებელია" -#: pgc.l:738 pgc.l:758 +#: pgc.l:772 pgc.l:793 #, c-format msgid "zero-length delimited identifier" msgstr "გამყოფის ნულოვანი სიგრძის იდენტიფიკატორი" -#: pgc.l:769 +#: pgc.l:809 #, c-format msgid "unterminated quoted identifier" msgstr "დაუსრულებელი იდენტიფიკატორი ბრჭყალებში" -#: pgc.l:938 +#: pgc.l:985 +#, c-format +msgid "parameter number too large" +msgstr "პარამეტრების რაოდენობა მეტისმეტად დიდია" + +#: pgc.l:990 #, c-format msgid "trailing junk after parameter" msgstr "პარამეტრის შემდეგ მოყოლილი მონაცემები ნაგავია" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:1042 pgc.l:1045 pgc.l:1048 #, c-format msgid "trailing junk after numeric literal" msgstr "რიცხვითი მნიშვნელობის შემდეგ მონაცემები ნაგავია" -#: pgc.l:1127 +#: pgc.l:1177 #, c-format msgid "nested /* ... */ comments" msgstr "ჩადგმული /* ... */ კომენტარები" -#: pgc.l:1220 +#: pgc.l:1279 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "ბრძანებაში EXEC SQL UNDEF იდენტიფიკატორი აკლია" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1299 pgc.l:1312 pgc.l:1328 pgc.l:1341 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "\"EXEC SQL IFDEF\"-ის მეტისმეტად ბევრი ჩადგმული პირობა" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1357 pgc.l:1368 pgc.l:1384 pgc.l:1406 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "შესატყვისი \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\" არ არსებობს" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1359 pgc.l:1370 pgc.l:1565 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "აკლია \"EXEC SQL ENDIF;\"" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1386 pgc.l:1408 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "ერთზე მეტი EXEC SQL ELSE" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1431 pgc.l:1445 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "უწყვილო EXEC SQL ENDIF" -#: pgc.l:1438 +#: pgc.l:1507 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "ბრძანებას: EXEC SQL IFDEFიდენტიფიკატორი აკლია" -#: pgc.l:1447 +#: pgc.l:1516 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "ბრძანებას: EXEC SQL DEFINE იდენტიფიკატორი აკლია" -#: pgc.l:1480 +#: pgc.l:1554 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "სინტაქსური შეცდომა ბრძანებაში: EXEC SQL INCLUDE" -#: pgc.l:1530 +#: pgc.l:1609 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "შიდა შეცდომა: მდგომარეობა მიუწვდომელია; მისწერეთ ეს <%s>-ს" -#: pgc.l:1682 +#: pgc.l:1766 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "შეცდომა: ჩასართავი ბილიკი \"%s/%s\" ძალიან გრძელია, ხაზზე %d. გამოტოვება\n" -#: pgc.l:1705 +#: pgc.l:1793 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "ჩასასმელი ფაილის (\"%s\") გახსნის შეცდომა. ხაზზე %d" -#: preproc.y:31 +#: preproc.y:28 msgid "syntax error" msgstr "სინტაქსური შეცდომა" -#: preproc.y:84 -#, c-format -msgid "WARNING: " -msgstr "გაფრთხილება: " - -#: preproc.y:87 -#, c-format -msgid "ERROR: " -msgstr "შეცდომა: " - -#: preproc.y:514 +#: preproc.y:467 #, c-format msgid "cursor \"%s\" does not exist" msgstr "კურსორი \"%s\" არ არსებობს" -#: preproc.y:543 +#: preproc.y:503 #, c-format msgid "initializer not allowed in type definition" msgstr "ტიპის აღწერისას ინიციალიზატორი დაუშვებელია" -#: preproc.y:545 +#: preproc.y:505 #, c-format msgid "type name \"string\" is reserved in Informix mode" msgstr "informix-ის რეჟიმში ტიპის სახელი \"string\" დაცულია" -#: preproc.y:552 preproc.y:18523 +#: preproc.y:512 preproc.y:8822 #, c-format msgid "type \"%s\" is already defined" msgstr "ტიპი უკვე აღწერილია: %s" -#: preproc.y:577 preproc.y:19158 preproc.y:19480 variable.c:625 +#: preproc.y:539 preproc.y:9536 preproc.y:9881 variable.c:652 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "მრავალგანზომილებიანი მასივები მონაცემების მარტივი ტიპებისთვის მხარდაჭერილი არაა" -#: preproc.y:599 +#: preproc.y:562 #, c-format msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "კავშირი %s გადაწერილია %s-სთან ერთად DECLARE ბრძანების მიერ %s" -#: preproc.y:1810 +#: preproc.y:932 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "ოპერატორში \"CLOSE DATABASE\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2060 +#: preproc.y:1184 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "ოპერატორში \"CONNECT\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2100 +#: preproc.y:1221 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "ოპერატორში \"DISCONNECT\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2155 +#: preproc.y:1274 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "ოპერატორში \"SET CONNECTION\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2177 +#: preproc.y:1292 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "ოპერატორში \"TYPE\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2186 +#: preproc.y:1300 #, c-format msgid "AT option not allowed in VAR statement" msgstr "ოპერატორში \"VAR\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2193 +#: preproc.y:1307 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "ოპერატორში \"WHENEVER\" პარამეტრი \"AT\" დაუშვებელია" -#: preproc.y:2318 preproc.y:2490 preproc.y:2495 preproc.y:2607 preproc.y:4317 -#: preproc.y:4391 preproc.y:4982 preproc.y:5515 preproc.y:5853 preproc.y:6057 -#: preproc.y:6158 preproc.y:7722 preproc.y:9330 preproc.y:9335 preproc.y:12308 +#: preproc.y:1375 preproc.y:1498 preproc.y:2259 preproc.y:2585 preproc.y:3016 +#: preproc.y:3103 preproc.y:6086 #, c-format msgid "unsupported feature will be passed to server" msgstr "მხარდაუჭერელი ფუნქცია სერვერს გადაეცემა" -#: preproc.y:2865 +#: preproc.y:1610 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL განხორციელებული არაა" -#: preproc.y:3577 +#: preproc.y:1895 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN განხორციელებული არაა" -#: preproc.y:10385 preproc.y:18020 +#: preproc.y:5146 preproc.y:8273 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "\"database\" არ შეიძლება გამოყენებულ იქნას როგორც კურსორის სახელი INFORMIX რეჟიმში" -#: preproc.y:10392 preproc.y:18030 +#: preproc.y:5153 preproc.y:8283 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "\"%s\"ცვლადის სხვადასხვა პირობებში აღწერა მხარდაუჭერელია" -#: preproc.y:10394 preproc.y:18032 +#: preproc.y:5155 preproc.y:8285 #, c-format msgid "cursor \"%s\" is already defined" msgstr "კურსორი უკვე აღწერილია: \"%s\"" -#: preproc.y:10868 +#: preproc.y:5402 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "სერვერზე გადაცემული LIMIT #.# სინტაქსი მხარდაჭერილი აღარაა" -#: preproc.y:17712 preproc.y:17719 +#: preproc.y:7921 preproc.y:7929 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS არ შეიძლება INTO მიეთითოს" -#: preproc.y:17755 +#: preproc.y:7974 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "მოველოდი \"@\", მივიღე \"%s\"" -#: preproc.y:17767 +#: preproc.y:7986 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "მხარდაჭერილია მხოლოდ პროტოკოლები \"tcp\" და \"unix\" და მონაცემთა ბაზის ტიპი \"postgresql\"" -#: preproc.y:17770 +#: preproc.y:7989 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "მოველოდი \"://\", მივიღე \"%s\"" -#: preproc.y:17775 +#: preproc.y:7994 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-დომენის სოკეტები მხოლოდ \"localhost\"-ზე მუშაობს. მაგრამ არა \"%s\"-ზე" -#: preproc.y:17801 +#: preproc.y:8021 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "მოველოდი \"postgresql\", მივიღე \"%s\"" -#: preproc.y:17804 +#: preproc.y:8024 #, c-format msgid "invalid connection type: %s" msgstr "შეერთების არასწორი ტიპი: %s" -#: preproc.y:17813 +#: preproc.y:8033 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "მოველოდი \"@\"-ს ან \"://\"-ს, მივიღე \"%s\"" -#: preproc.y:17888 preproc.y:17906 +#: preproc.y:8131 preproc.y:8149 #, c-format msgid "invalid data type" msgstr "მონაცემების არასწორი ტიპი" -#: preproc.y:17917 preproc.y:17934 +#: preproc.y:8160 preproc.y:8177 #, c-format msgid "incomplete statement" msgstr "არასწორი პირობა" -#: preproc.y:17920 preproc.y:17937 +#: preproc.y:8163 preproc.y:8180 #, c-format msgid "unrecognized token \"%s\"" msgstr "უცნობი კოდი \"%s\"" -#: preproc.y:17982 +#: preproc.y:8235 #, c-format msgid "name \"%s\" is already declared" msgstr "სახელი \"%s\" უკვე აღწერილია" -#: preproc.y:18271 +#: preproc.y:8538 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "სიზუსტის / მასშტაბის არგუმენტი მხოლოდ მონაცემთა ტიპებს numeric და decimal აქვთ" -#: preproc.y:18342 +#: preproc.y:8637 #, c-format msgid "interval specification not allowed here" msgstr "აქ ინტერვალის სპეციფიკაცია დაუშვებელია" -#: preproc.y:18498 preproc.y:18550 +#: preproc.y:8793 preproc.y:8851 #, c-format msgid "too many levels in nested structure/union definition" msgstr "ჩადგმული სტრუქტურის/გაერთიანების მეტისმეტად ბევრი დონე" -#: preproc.y:18673 +#: preproc.y:8986 #, c-format msgid "pointers to varchar are not implemented" msgstr "varchar-ზე მაჩვენებლები მხარდაუჭერელია" -#: preproc.y:19124 +#: preproc.y:9501 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "ინიციალიზატორი დაუშვებელია EXEC SQL VAR ბრძანებაში" -#: preproc.y:19438 +#: preproc.y:9824 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "შესაყვანად ინდიკატორების მასივები დაუშვებელია" -#: preproc.y:19625 +#: preproc.y:10058 #, c-format msgid "operator not allowed in variable definition" msgstr "ცვლადის აღწერისას ოპერატორს ვერ გამოიყენებთ" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19666 +#: preproc.y:10103 #, c-format msgid "%s at or near \"%s\"" msgstr "%s \"%s\"-სთან ან ახლოს" -#: type.c:18 type.c:30 -#, c-format -msgid "out of memory" -msgstr "არასაკმარისი მეხსიერება" - -#: type.c:214 type.c:685 +#: type.c:191 type.c:661 #, c-format msgid "unrecognized variable type code %d" msgstr "ცვლადის ტიპის უცნობი კოდი: %d" -#: type.c:263 +#: type.c:240 #, c-format msgid "variable \"%s\" is hidden by a local variable of a different type" msgstr "ცვლადი \"%s\" დამალულია სხვა ტიპის ლოკალური ცხვლადის მიერ" -#: type.c:265 +#: type.c:242 #, c-format msgid "variable \"%s\" is hidden by a local variable" msgstr "ცვლადი \"%s\" დამალულია ლოკალური ცვლადის მიერ" -#: type.c:277 +#: type.c:254 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable of a different type" msgstr "ინდიკატორის ცვლადი \"%s\" იმალება სხვა ტიპის ლოკალური ცვლადის მიერ" -#: type.c:279 +#: type.c:256 #, c-format msgid "indicator variable \"%s\" is hidden by a local variable" msgstr "ინდიკატორის ცვლადი \"%s\" სხვა ტიპის ლოკალური ცვლადის მიერ იმალება" -#: type.c:287 +#: type.c:264 #, c-format msgid "indicator for array/pointer has to be array/pointer" msgstr "მასივის/მაჩვენებლის ინდიკატორი მასივი/მაჩვენებელი უნდა იყოს" -#: type.c:291 +#: type.c:268 #, c-format msgid "nested arrays are not supported (except strings)" msgstr "ჩადგმული მასივები მხარდაუჭერელია (სტრიქონების გარდა)" -#: type.c:333 +#: type.c:310 #, c-format msgid "indicator for struct has to be a struct" msgstr "სტრუქტურის ინდიკატორი სტრუქტურა უნდა იყოს" -#: type.c:353 type.c:374 type.c:394 +#: type.c:330 type.c:351 type.c:371 #, c-format msgid "indicator for simple data type has to be simple" msgstr "მარტივი მონაცემების ინდიკატორი მარტივი უნდა იყოს" -#: type.c:625 +#: type.c:602 #, c-format msgid "indicator struct \"%s\" has too few members" msgstr "ინდიკატორის სტრუქტურას ძალიან ცოტა წევრი ჰყავს: %s" -#: type.c:633 +#: type.c:610 #, c-format msgid "indicator struct \"%s\" has too many members" msgstr "ინდიკატორის სტრუქტურას ძალიან ბევრი წევრი ჰყავს: %s" -#: type.c:744 +#: type.c:723 #, c-format msgid "unrecognized descriptor item code %d" msgstr "დესკრიპტორის ჩანაწერის უცნობი კოდი: %d" +#: util.c:26 +#, c-format +msgid "WARNING: " +msgstr "გაფრთხილება: " + +#: util.c:29 +#, c-format +msgid "ERROR: " +msgstr "შეცდომა: " + +#: util.c:90 util.c:102 +#, c-format +msgid "out of memory" +msgstr "არასაკმარისი მეხსიერება" + #: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "არასწორად ჩამოყალიბებული ცვლადი \"%s\"" -#: variable.c:138 +#: variable.c:138 variable.c:237 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "ცვლადი %s მაჩვენებელი არაა" @@ -667,39 +671,44 @@ msgstr "ცვლადი \"%s\" არც სტრუქტურაა, ა msgid "variable \"%s\" is not an array" msgstr "ცვლადი %s მასივი არაა" -#: variable.c:232 variable.c:254 +#: variable.c:220 +#, c-format +msgid "unmatched bracket in variable \"%s\"" +msgstr "ფრჩხილი წყვილის გარეშე ცვლადში \"%s\"" + +#: variable.c:235 variable.c:258 #, c-format msgid "variable \"%s\" is not declared" msgstr "ცვლადი %s აღწერილი არაა" -#: variable.c:493 +#: variable.c:517 #, c-format msgid "indicator variable must have an integer type" msgstr "ინდიკატორ ცვლადს მთელი რიცხვის ტიპი უნდა ჰქონდეს" -#: variable.c:510 +#: variable.c:534 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "მონაცემების ტიპის უცნობი სახელი \"%s\"" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:548 variable.c:556 variable.c:573 variable.c:576 #, c-format msgid "multidimensional arrays are not supported" msgstr "მრავალგანზომილებიანი მასივები მხარდაჭერილი არაა" -#: variable.c:538 +#: variable.c:565 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "მრავალდონიანი მაჩვენებლები (2-ზე მეტი დონე) მხარდაუჭერელია; ნაპოვნია %d დონე" msgstr[1] "მრავალდონიანი მაჩვენებლები (2-ზე მეტი დონე) მხარდაუჭერელია; ნაპოვნია %d დონე" -#: variable.c:543 +#: variable.c:570 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "მონაცემების ამ ტიპისთვის მაჩვენებელი მაჩვენებელზე მხარდაჭერილი არაა" -#: variable.c:563 +#: variable.c:590 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "სტრუქტურების მრავალგანზომილებიანი მასივები მხარდაუჭერელია" diff --git a/src/interfaces/ecpg/preproc/po/ko.po b/src/interfaces/ecpg/preproc/po/ko.po index 6b55d4eb4e24d..77d4029a5866b 100644 --- a/src/interfaces/ecpg/preproc/po/ko.po +++ b/src/interfaces/ecpg/preproc/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: ecpg (PostgreSQL) 16\n" +"Project-Id-Version: ecpg (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:40+0000\n" -"PO-Revision-Date: 2023-05-30 12:36+0900\n" +"POT-Creation-Date: 2025-01-17 04:40+0000\n" +"PO-Revision-Date: 2025-01-16 10:32+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -187,178 +187,178 @@ msgstr "" msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: 실행 가능한 경로를 지정할 수 없습니다\n" -#: ecpg.c:184 ecpg.c:235 ecpg.c:249 ecpg.c:275 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "자제한 사항은 \"%s --help\" 명령으로 살펴보십시오.\n" -#: ecpg.c:192 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: 파서 디버그 지원(-d)을 사용할 수 없음\n" -#: ecpg.c:219 ecpg.c:334 ecpg.c:345 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s: \"%s\" 파일 열 수 없음: %s\n" +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s: \"%s\" 파일 열 수 없음: %m\n" -#: ecpg.c:263 +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, PostgreSQL 포함 C 전처리기, 버전 %s\n" -#: ecpg.c:265 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... 여기서 검색 시작:\n" -#: ecpg.c:268 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "검색 목록의 끝\n" -#: ecpg.c:274 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: 지정된 입력 파일 없음\n" -#: ecpg.c:478 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "\"%s\" 커서가 선언되었지만 열리지 않음" -#: ecpg.c:491 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "출력 파일 \"%s\"을(를) 제거할 수 없음\n" -#: pgc.l:520 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "마무리 안된 /* 주석" -#: pgc.l:537 +#: pgc.l:559 #, c-format msgid "unterminated bit string literal" msgstr "마무리 안된 비트 문자열 문자" -#: pgc.l:545 +#: pgc.l:567 #, c-format msgid "unterminated hexadecimal string literal" msgstr "마무리 안된 16진수 문자열 문자" -#: pgc.l:620 +#: pgc.l:642 #, c-format msgid "invalid bit string literal" msgstr "잘못된 비트 문자열 리터럴" -#: pgc.l:625 +#: pgc.l:647 #, c-format msgid "invalid hexadecimal string literal" msgstr "잘못된 16진수 문자열 문자" -#: pgc.l:643 +#: pgc.l:665 #, c-format msgid "unhandled previous state in xqs\n" msgstr "xqs 안에 다룰 수 없는 이전 상태값 있음\n" -#: pgc.l:669 pgc.l:778 +#: pgc.l:691 pgc.l:800 #, c-format msgid "unterminated quoted string" msgstr "마무리 안된 따옴표 안의 문자열" -#: pgc.l:720 +#: pgc.l:742 #, c-format msgid "unterminated dollar-quoted string" msgstr "마무리 안된 따옴표 안의 문자열" -#: pgc.l:738 pgc.l:758 +#: pgc.l:760 pgc.l:780 #, c-format msgid "zero-length delimited identifier" msgstr "길이가 0인 구분 식별자" -#: pgc.l:769 +#: pgc.l:791 #, c-format msgid "unterminated quoted identifier" msgstr "마무리 안된 따옴표 안의 식별자" -#: pgc.l:938 +#: pgc.l:960 #, c-format msgid "trailing junk after parameter" msgstr "매개 변수 뒤에 뭔가 붙었음" -#: pgc.l:990 pgc.l:993 pgc.l:996 pgc.l:999 pgc.l:1002 pgc.l:1005 +#: pgc.l:1012 pgc.l:1015 pgc.l:1018 #, c-format msgid "trailing junk after numeric literal" msgstr "숫자 뒤에 문자가 붙었습니다" -#: pgc.l:1127 +#: pgc.l:1141 #, c-format msgid "nested /* ... */ comments" msgstr "중첩된 /* ... */ 주석" -#: pgc.l:1220 +#: pgc.l:1240 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "EXEC SQL UNDEF 명령에 식별자 누락" -#: pgc.l:1238 pgc.l:1251 pgc.l:1267 pgc.l:1280 +#: pgc.l:1258 pgc.l:1271 pgc.l:1287 pgc.l:1300 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "중첩된 EXEC SQL IFDEF 조건이 너무 많음" -#: pgc.l:1296 pgc.l:1307 pgc.l:1322 pgc.l:1344 +#: pgc.l:1316 pgc.l:1327 pgc.l:1342 pgc.l:1364 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "일치하는 \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\" 누락" -#: pgc.l:1298 pgc.l:1309 pgc.l:1490 +#: pgc.l:1318 pgc.l:1329 pgc.l:1522 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "\"EXEC SQL ENDIF;\" 누락" -#: pgc.l:1324 pgc.l:1346 +#: pgc.l:1344 pgc.l:1366 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "두 개 이상의 EXEC SQL ELSE" -#: pgc.l:1369 pgc.l:1383 +#: pgc.l:1389 pgc.l:1403 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "일치하지 않는 EXEC SQL ENDIF" -#: pgc.l:1438 +#: pgc.l:1464 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "EXEC SQL IFDEF 명령에 식별자 누락" -#: pgc.l:1447 +#: pgc.l:1473 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "EXEC SQL DEFINE 명령에 식별자 누락" -#: pgc.l:1480 +#: pgc.l:1511 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "EXEC SQL INCLUDE 명령에 구문 오류 발생" -#: pgc.l:1530 +#: pgc.l:1566 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "" "내부 오류: 상태값을 알 수 없습니다. 이 문제를 <%s> 주소로 알려주십시오." -#: pgc.l:1682 +#: pgc.l:1718 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "오류: 포함 경로 \"%s/%s\"이(가) %d줄에서 너무 길어서 건너뜀\n" -#: pgc.l:1705 +#: pgc.l:1741 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "포함 파일 \"%s\"을(를) %d줄에서 열 수 없음" @@ -392,12 +392,12 @@ msgstr "형식 정의에 이니셜라이저가 허용되지 않음" msgid "type name \"string\" is reserved in Informix mode" msgstr "\"string\" 자료형 이름은 인포믹스 모드에서 예약어로 쓰입니다" -#: preproc.y:552 preproc.y:18392 +#: preproc.y:552 preproc.y:19034 #, c-format msgid "type \"%s\" is already defined" msgstr "\"%s\" 형식이 이미 정의됨" -#: preproc.y:577 preproc.y:19027 preproc.y:19349 variable.c:625 +#: preproc.y:577 preproc.y:19669 preproc.y:19991 variable.c:624 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "단순 데이터 형식에 다차원 배열이 지원되지 않음" @@ -407,89 +407,88 @@ msgstr "단순 데이터 형식에 다차원 배열이 지원되지 않음" msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "%s 연결은 %s 연결로 바뀌었음, 해당 DECLARE 구문: %s" -#: preproc.y:1792 +#: preproc.y:1831 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "CLOSE DATABASE 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2042 +#: preproc.y:2081 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "CONNECT 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2082 +#: preproc.y:2121 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "DISCONNECT 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2137 +#: preproc.y:2176 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "SET CONNECTION 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2159 +#: preproc.y:2198 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "TYPE 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2168 +#: preproc.y:2207 #, c-format msgid "AT option not allowed in VAR statement" msgstr "VAR 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2175 +#: preproc.y:2214 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "WHENEVER 문에 AT 옵션이 허용되지 않음" -#: preproc.y:2300 preproc.y:2472 preproc.y:2477 preproc.y:2589 preproc.y:4248 -#: preproc.y:4322 preproc.y:4913 preproc.y:5446 preproc.y:5784 preproc.y:6084 -#: preproc.y:7648 preproc.y:9252 preproc.y:9257 preproc.y:12206 +#: preproc.y:2339 preproc.y:2626 preproc.y:4349 preproc.y:5021 preproc.y:5891 +#: preproc.y:6095 preproc.y:6196 preproc.y:12460 #, c-format msgid "unsupported feature will be passed to server" msgstr "지원되지 않는 기능이 서버에 전달됨" -#: preproc.y:2847 +#: preproc.y:2884 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL이 구현되지 않음" -#: preproc.y:3531 +#: preproc.y:3596 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN이 구현되지 않음" -#: preproc.y:10303 preproc.y:17889 +#: preproc.y:10444 preproc.y:18503 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "INFORMIX 모드에서는 \"database\"를 커서 이름으로 사용할 수 없음" -#: preproc.y:10310 preproc.y:17899 +#: preproc.y:10451 preproc.y:18513 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "서로 다른 선언 구문에서 \"%s\" 변수 사용은 지원하지 않습니다" -#: preproc.y:10312 preproc.y:17901 +#: preproc.y:10453 preproc.y:18515 #, c-format msgid "cursor \"%s\" is already defined" msgstr "\"%s\" 커서가 이미 정의됨" -#: preproc.y:10786 +#: preproc.y:10927 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "더 이상 지원되지 않는 LIMIT #,# 구문이 서버에 전달됨" -#: preproc.y:17581 preproc.y:17588 +#: preproc.y:18195 preproc.y:18202 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS에서 INTO를 지정할 수 없음" -#: preproc.y:17624 +#: preproc.y:18238 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "\"@\"이 필요한데 \"%s\"이(가) 있음" -#: preproc.y:17636 +#: preproc.y:18250 #, c-format msgid "" "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are " @@ -497,89 +496,89 @@ msgid "" msgstr "" "\"tcp\" 및 \"unix\" 프로토콜과 데이터베이스 형식 \"postgresql\"만 지원됨" -#: preproc.y:17639 +#: preproc.y:18253 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "\"://\"가 필요한데 \"%s\"이(가) 있음" -#: preproc.y:17644 +#: preproc.y:18258 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "" "Unix-domain 소켓은 \"localhost\"에서만 작동하며 \"%s\"에서는 작동하지 않음" -#: preproc.y:17670 +#: preproc.y:18284 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "\"postgresql\"이 필요한데 \"%s\"이(가) 있음" -#: preproc.y:17673 +#: preproc.y:18287 #, c-format msgid "invalid connection type: %s" msgstr "잘못된 연결 형식: %s" -#: preproc.y:17682 +#: preproc.y:18296 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "\"@\" 또는 \"://\"가 필요한데 \"%s\"이(가) 있음" -#: preproc.y:17757 preproc.y:17775 +#: preproc.y:18371 preproc.y:18389 #, c-format msgid "invalid data type" msgstr "잘못된 데이터 형식" -#: preproc.y:17786 preproc.y:17803 +#: preproc.y:18400 preproc.y:18417 #, c-format msgid "incomplete statement" msgstr "불완전한 문" -#: preproc.y:17789 preproc.y:17806 +#: preproc.y:18403 preproc.y:18420 #, c-format msgid "unrecognized token \"%s\"" msgstr "인식할 수 없는 토큰 \"%s\"" -#: preproc.y:17851 +#: preproc.y:18465 #, c-format msgid "name \"%s\" is already declared" msgstr "\"%s\" 이름이 이미 정의됨" -#: preproc.y:18140 +#: preproc.y:18754 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "숫자 및 10진수 데이터 형식에만 전체 자릿수/소수 자릿수 인수 포함" -#: preproc.y:18211 +#: preproc.y:18853 #, c-format msgid "interval specification not allowed here" msgstr "여기에는 간격 지정이 허용되지 않음" -#: preproc.y:18367 preproc.y:18419 +#: preproc.y:19009 preproc.y:19061 #, c-format msgid "too many levels in nested structure/union definition" msgstr "중첩된 구조/union 정의에 수준이 너무 많음" -#: preproc.y:18542 +#: preproc.y:19184 #, c-format msgid "pointers to varchar are not implemented" msgstr "varchar에 대한 포인터가 구현되지 않음" -#: preproc.y:18993 +#: preproc.y:19635 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "EXEC SQL VAR 명령에 이니셜라이저가 허용되지 않음" -#: preproc.y:19307 +#: preproc.y:19949 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "입력에서 표시기의 배열이 허용되지 않음" -#: preproc.y:19494 +#: preproc.y:20136 #, c-format msgid "operator not allowed in variable definition" msgstr "연산자는 동적 정의 영역에서는 사용할 수 없음" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19535 +#: preproc.y:20177 #, c-format msgid "%s at or near \"%s\"" msgstr "%s, \"%s\" 부근" @@ -680,22 +679,22 @@ msgstr "\"%s\" 변수가 배열이 아님" msgid "variable \"%s\" is not declared" msgstr "\"%s\" 변수가 선언되지 않음" -#: variable.c:493 +#: variable.c:492 #, c-format msgid "indicator variable must have an integer type" msgstr "표시기 변수에 정수 형식이 있어야 함" -#: variable.c:510 +#: variable.c:509 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "인식할 수 없는 데이터 형식 이름 \"%s\"" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:520 variable.c:528 variable.c:545 variable.c:548 #, c-format msgid "multidimensional arrays are not supported" msgstr "다차원 배열이 지원되지 않음" -#: variable.c:538 +#: variable.c:537 #, c-format msgid "" "multilevel pointers (more than 2 levels) are not supported; found %d level" @@ -703,12 +702,12 @@ msgid_plural "" "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "다중단계 포인터(2단계 이상)는 지원하지 않음; 발견된 레벨: %d" -#: variable.c:543 +#: variable.c:542 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "이 데이터 형식에는 포인터에 대한 포인터가 지원되지 않음" -#: variable.c:563 +#: variable.c:562 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "구조에는 다차원 배열이 지원되지 않음" diff --git a/src/interfaces/ecpg/preproc/po/ru.po b/src/interfaces/ecpg/preproc/po/ru.po index b72b5cd79eadc..874da38e6428d 100644 --- a/src/interfaces/ecpg/preproc/po/ru.po +++ b/src/interfaces/ecpg/preproc/po/ru.po @@ -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, 2021, 2022. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: ecpg (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2022-09-05 13:32+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-09-04 07:22+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -203,8 +203,8 @@ msgstr "%s: отладочные сообщения при разборе (-d) #: ecpg.c:230 ecpg.c:345 ecpg.c:356 #, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s: не удалось открыть файл \"%s\": %s\n" +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s: не удалось открыть файл \"%s\": %m\n" #: ecpg.c:274 #, c-format @@ -236,131 +236,131 @@ msgstr "курсор \"%s\" был объявлен, но не открыт" msgid "could not remove output file \"%s\"\n" msgstr "ошибка при удалении выходного файла \"%s\"\n" -#: pgc.l:527 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "незавершённый комментарий /*" -#: pgc.l:544 +#: pgc.l:559 #, c-format msgid "unterminated bit string literal" msgstr "оборванная битовая строка" -#: pgc.l:552 +#: pgc.l:567 #, c-format msgid "unterminated hexadecimal string literal" msgstr "оборванная шестнадцатеричная строка" -#: pgc.l:627 +#: pgc.l:642 #, c-format msgid "invalid bit string literal" msgstr "неверная битовая строка" -#: pgc.l:632 +#: pgc.l:647 #, c-format msgid "invalid hexadecimal string literal" msgstr "неверная шестнадцатеричная строка" -#: pgc.l:650 +#: pgc.l:665 #, c-format msgid "unhandled previous state in xqs\n" msgstr "" "необрабатываемое предыдущее состояние при обнаружении закрывающего " "апострофа\n" -#: pgc.l:676 pgc.l:785 +#: pgc.l:691 pgc.l:800 #, c-format msgid "unterminated quoted string" msgstr "незавершённая строка в кавычках" -#: pgc.l:727 +#: pgc.l:742 #, c-format msgid "unterminated dollar-quoted string" msgstr "незавершённая строка с $" -#: pgc.l:745 pgc.l:765 +#: pgc.l:760 pgc.l:780 #, c-format msgid "zero-length delimited identifier" msgstr "пустой идентификатор в кавычках" -#: pgc.l:776 +#: pgc.l:791 #, c-format msgid "unterminated quoted identifier" msgstr "незавершённый идентификатор в кавычках" -#: pgc.l:945 +#: pgc.l:960 #, c-format msgid "trailing junk after parameter" msgstr "мусорное содержимое после параметра" -#: pgc.l:997 pgc.l:1000 pgc.l:1003 pgc.l:1006 pgc.l:1009 pgc.l:1012 +#: pgc.l:1012 pgc.l:1015 pgc.l:1018 #, c-format msgid "trailing junk after numeric literal" msgstr "мусорное содержимое после числовой константы" -#: pgc.l:1135 +#: pgc.l:1141 #, c-format msgid "nested /* ... */ comments" msgstr "вложенные комментарии /* ... */" -#: pgc.l:1234 +#: pgc.l:1240 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "в команде EXEC SQL UNDEF отсутствует идентификатор" -#: pgc.l:1252 pgc.l:1265 pgc.l:1281 pgc.l:1294 +#: pgc.l:1258 pgc.l:1271 pgc.l:1287 pgc.l:1300 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "слишком много вложенных условий EXEC SQL IFDEF" -#: pgc.l:1310 pgc.l:1321 pgc.l:1336 pgc.l:1358 +#: pgc.l:1316 pgc.l:1327 pgc.l:1342 pgc.l:1364 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "нет соответствующего \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" -#: pgc.l:1312 pgc.l:1323 pgc.l:1516 +#: pgc.l:1318 pgc.l:1329 pgc.l:1522 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "отсутствует \"EXEC SQL ENDIF;\"" -#: pgc.l:1338 pgc.l:1360 +#: pgc.l:1344 pgc.l:1366 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "неоднократная команда EXEC SQL ELSE" -#: pgc.l:1383 pgc.l:1397 +#: pgc.l:1389 pgc.l:1403 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "непарная команда EXEC SQL ENDIF" -#: pgc.l:1458 +#: pgc.l:1464 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "в команде EXEC SQL IFDEF отсутствует идентификатор" -#: pgc.l:1467 +#: pgc.l:1473 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "в команде EXEC SQL DEFINE отсутствует идентификатор" -#: pgc.l:1505 +#: pgc.l:1511 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "ошибка синтаксиса в команде EXEC SQL INCLUDE" -#: pgc.l:1560 +#: pgc.l:1566 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "внутренняя ошибка: недостижимое состояние; пожалуйста, сообщите в <%s>" -#: pgc.l:1712 +#: pgc.l:1718 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "" "Ошибка: путь включаемых файлов \"%s/%s\" в строке %d слишком длинный, " "пропускается\n" -#: pgc.l:1735 +#: pgc.l:1741 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "не удалось открыть включаемый файл \"%s\" (строка %d)" @@ -394,12 +394,12 @@ msgstr "определение типа не может включать ини msgid "type name \"string\" is reserved in Informix mode" msgstr "имя типа \"string\" в режиме Informix зарезервировано" -#: preproc.y:552 preproc.y:18385 +#: preproc.y:552 preproc.y:19034 #, c-format msgid "type \"%s\" is already defined" msgstr "тип \"%s\" уже определён" -#: preproc.y:577 preproc.y:19020 preproc.y:19342 variable.c:625 +#: preproc.y:577 preproc.y:19669 preproc.y:19991 variable.c:624 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "многомерные массивы с простыми типами данных не поддерживаются" @@ -409,90 +409,90 @@ msgstr "многомерные массивы с простыми типами msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "подключение %s заменяется на %s оператором DECLARE %s" -#: preproc.y:1792 +#: preproc.y:1831 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "оператор CLOSE DATABASE с параметром AT не поддерживается" -#: preproc.y:2042 +#: preproc.y:2081 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "оператор CONNECT с параметром AT не поддерживается" -#: preproc.y:2082 +#: preproc.y:2121 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "оператор DISCONNECT с параметром AT не поддерживается" -#: preproc.y:2137 +#: preproc.y:2176 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "оператор SET CONNECTION с параметром AT не поддерживается" -#: preproc.y:2159 +#: preproc.y:2198 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "оператор TYPE с параметром AT не поддерживается" -#: preproc.y:2168 +#: preproc.y:2207 #, c-format msgid "AT option not allowed in VAR statement" msgstr "оператор VAR с параметром AT не поддерживается" -#: preproc.y:2175 +#: preproc.y:2214 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "оператор WHENEVER с параметром AT не поддерживается" -#: preproc.y:2300 preproc.y:2587 preproc.y:4246 preproc.y:4910 preproc.y:5780 -#: preproc.y:6080 preproc.y:12199 +#: preproc.y:2339 preproc.y:2626 preproc.y:4349 preproc.y:5021 preproc.y:5891 +#: preproc.y:6095 preproc.y:6196 preproc.y:12460 #, c-format msgid "unsupported feature will be passed to server" msgstr "неподдерживаемая функция будет передана серверу" -#: preproc.y:2845 +#: preproc.y:2884 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL не реализовано" -#: preproc.y:3529 +#: preproc.y:3596 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "операция COPY FROM STDIN не реализована" -#: preproc.y:10296 preproc.y:17882 +#: preproc.y:10444 preproc.y:18503 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "" "в режиме INFORMIX нельзя использовать \"database\" в качестве имени курсора" -#: preproc.y:10303 preproc.y:17892 +#: preproc.y:10451 preproc.y:18513 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "" "использование переменной \"%s\" в разных операторах DECLARE не поддерживается" -#: preproc.y:10305 preproc.y:17894 +#: preproc.y:10453 preproc.y:18515 #, c-format msgid "cursor \"%s\" is already defined" msgstr "курсор \"%s\" уже определён" -#: preproc.y:10779 +#: preproc.y:10927 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "не поддерживаемое более предложение LIMIT #,# передано на сервер" -#: preproc.y:17574 preproc.y:17581 +#: preproc.y:18195 preproc.y:18202 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "в CREATE TABLE AS нельзя указать INTO" -#: preproc.y:17617 +#: preproc.y:18238 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "ожидался знак \"@\", но на этом месте \"%s\"" -#: preproc.y:17629 +#: preproc.y:18250 #, c-format msgid "" "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are " @@ -501,89 +501,89 @@ msgstr "" "поддерживаются только протоколы \"tcp\" и \"unix\", а тип базы данных - " "\"postgresql\"" -#: preproc.y:17632 +#: preproc.y:18253 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "ожидалось \"://\", но на этом месте \"%s\"" -#: preproc.y:17637 +#: preproc.y:18258 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-сокеты работают только с \"localhost\", но не с адресом \"%s\"" -#: preproc.y:17663 +#: preproc.y:18284 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "ожидался тип \"postgresql\", но на этом месте \"%s\"" -#: preproc.y:17666 +#: preproc.y:18287 #, c-format msgid "invalid connection type: %s" msgstr "неверный тип подключения: %s" -#: preproc.y:17675 +#: preproc.y:18296 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "ожидалось \"@\" или \"://\", но на этом месте \"%s\"" -#: preproc.y:17750 preproc.y:17768 +#: preproc.y:18371 preproc.y:18389 #, c-format msgid "invalid data type" msgstr "неверный тип данных" -#: preproc.y:17779 preproc.y:17796 +#: preproc.y:18400 preproc.y:18417 #, c-format msgid "incomplete statement" msgstr "неполный оператор" -#: preproc.y:17782 preproc.y:17799 +#: preproc.y:18403 preproc.y:18420 #, c-format msgid "unrecognized token \"%s\"" msgstr "нераспознанное ключевое слово \"%s\"" -#: preproc.y:17844 +#: preproc.y:18465 #, c-format msgid "name \"%s\" is already declared" msgstr "имя \"%s\" уже объявлено" -#: preproc.y:18133 +#: preproc.y:18754 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "" "точность/масштаб можно указать только для типов данных numeric и decimal" -#: preproc.y:18204 +#: preproc.y:18853 #, c-format msgid "interval specification not allowed here" msgstr "определение интервала здесь не допускается" -#: preproc.y:18360 preproc.y:18412 +#: preproc.y:19009 preproc.y:19061 #, c-format msgid "too many levels in nested structure/union definition" msgstr "слишком много уровней в определении вложенной структуры/объединения" -#: preproc.y:18535 +#: preproc.y:19184 #, c-format msgid "pointers to varchar are not implemented" msgstr "указатели на varchar не реализованы" -#: preproc.y:18986 +#: preproc.y:19635 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "команда EXEC SQL VAR не может включать инициализатор" -#: preproc.y:19300 +#: preproc.y:19949 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "массивы индикаторов на входе недопустимы" -#: preproc.y:19487 +#: preproc.y:20136 #, c-format msgid "operator not allowed in variable definition" msgstr "недопустимый оператор в определении переменной" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:19528 +#: preproc.y:20177 #, c-format msgid "%s at or near \"%s\"" msgstr "%s (примерное положение: \"%s\")" @@ -684,22 +684,22 @@ msgstr "переменная \"%s\" - не массив" msgid "variable \"%s\" is not declared" msgstr "переменная \"%s\" не объявлена" -#: variable.c:493 +#: variable.c:492 #, c-format msgid "indicator variable must have an integer type" msgstr "переменная-индикатор должна быть целочисленной" -#: variable.c:510 +#: variable.c:509 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "нераспознанное имя типа данных \"%s\"" -#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 +#: variable.c:520 variable.c:528 variable.c:545 variable.c:548 #, c-format msgid "multidimensional arrays are not supported" msgstr "многомерные массивы не поддерживаются" -#: variable.c:538 +#: variable.c:537 #, c-format msgid "" "multilevel pointers (more than 2 levels) are not supported; found %d level" @@ -715,12 +715,12 @@ msgstr[2] "" "многоуровневые указатели (больше 2 уровней) не поддерживаются, обнаружено %d " "уровней" -#: variable.c:543 +#: variable.c:542 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "для этого типа данных указатели на указатели не поддерживаются" -#: variable.c:563 +#: variable.c:562 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "многомерные массивы структур не поддерживаются" diff --git a/src/interfaces/ecpg/preproc/po/sv.po b/src/interfaces/ecpg/preproc/po/sv.po index 3b8d67c61ddd6..2fb7e68894a3b 100644 --- a/src/interfaces/ecpg/preproc/po/sv.po +++ b/src/interfaces/ecpg/preproc/po/sv.po @@ -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, 2021, 2022. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 09:09+0000\n" -"PO-Revision-Date: 2022-04-11 14:39+0200\n" +"POT-Creation-Date: 2024-07-12 11:10+0000\n" +"PO-Revision-Date: 2024-07-12 15:07+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -22,37 +22,37 @@ msgstr "" msgid "variable \"%s\" must have a numeric type" msgstr "variabel \"%s\" måste ha en numerisk typ" -#: descriptor.c:125 descriptor.c:156 +#: descriptor.c:124 descriptor.c:155 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "deskriptor %s kopplad till anslutning %s finns inte" -#: descriptor.c:127 descriptor.c:158 +#: descriptor.c:126 descriptor.c:157 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "deskriptor %s kopplad till standardanslutning finns inte" -#: descriptor.c:173 descriptor.c:225 +#: descriptor.c:172 descriptor.c:224 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "deskriptor-header-post \"%d\" finns inte" -#: descriptor.c:195 +#: descriptor.c:194 #, c-format msgid "nullable is always 1" msgstr "nullable är alltid 1" -#: descriptor.c:198 +#: descriptor.c:197 #, c-format msgid "key_member is always 0" msgstr "key_member är alltid 0" -#: descriptor.c:292 +#: descriptor.c:291 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "deskriptor-post \"%s\" är inte implementerad" -#: descriptor.c:302 +#: descriptor.c:301 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "deskriptor-post \"%s\" kan inte sättas" @@ -184,177 +184,177 @@ msgstr "" msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: kunde inte hitta min egna körbara fils sökväg\n" -#: ecpg.c:176 ecpg.c:333 ecpg.c:344 -#, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s: kunde inte öppna fil \"%s\": %s\n" - -#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" -#: ecpg.c:243 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: parser-debug-stöd (-d) är inte tillgängligt\n" -#: ecpg.c:262 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 +#, c-format +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s: kunde inte öppna fil \"%s\": %m\n" + +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, PostgreSQLs inbäddade C-preprocessor, version %s\n" -#: ecpg.c:264 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... sökning startar här:\n" -#: ecpg.c:267 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "slut på söklista\n" -#: ecpg.c:273 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: inga indatafiler angivna\n" -#: ecpg.c:477 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "markören \"%s\" har deklarerats men inte öppnats" -#: ecpg.c:490 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "kunde inte ta bort utdatafil \"%s\"\n" -#: pgc.l:508 +#: pgc.l:528 #, c-format msgid "unterminated /* comment" msgstr "ej avslutad /*-kommentar" -#: pgc.l:525 +#: pgc.l:545 #, c-format msgid "unterminated bit string literal" msgstr "ej avslutad bitsträngslitteral" -#: pgc.l:533 +#: pgc.l:553 #, c-format msgid "unterminated hexadecimal string literal" msgstr "ej avslutad hexadecimal stränglitteral" -#: pgc.l:608 +#: pgc.l:628 #, c-format msgid "invalid bit string literal" msgstr "ogiltig bit-sträng-literal" -#: pgc.l:613 +#: pgc.l:633 #, c-format msgid "invalid hexadecimal string literal" msgstr "ogiltig hexdecimal sträng-literal" -#: pgc.l:631 +#: pgc.l:651 #, c-format msgid "unhandled previous state in xqs\n" msgstr "tidigare state i xqs som ej kan hanteras\n" -#: pgc.l:657 pgc.l:766 +#: pgc.l:677 pgc.l:786 #, c-format msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: pgc.l:708 +#: pgc.l:728 #, c-format msgid "unterminated dollar-quoted string" msgstr "icke terminerad dollarciterad sträng" -#: pgc.l:726 pgc.l:746 +#: pgc.l:746 pgc.l:766 #, c-format msgid "zero-length delimited identifier" msgstr "noll-längds avdelad identifierare" -#: pgc.l:757 +#: pgc.l:777 #, c-format msgid "unterminated quoted identifier" msgstr "ej avslutad citerad identifierare" -#: pgc.l:926 +#: pgc.l:946 #, c-format msgid "trailing junk after parameter" msgstr "efterföljande skräp efter parameter" -#: pgc.l:968 pgc.l:971 pgc.l:974 +#: pgc.l:998 pgc.l:1001 pgc.l:1004 pgc.l:1007 pgc.l:1010 pgc.l:1013 #, c-format msgid "trailing junk after numeric literal" msgstr "efterföljande skräp efter numerisk literal" -#: pgc.l:1100 +#: pgc.l:1136 #, c-format msgid "nested /* ... */ comments" msgstr "nästlade /* ... */-kommentarer" -#: pgc.l:1193 +#: pgc.l:1235 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "saknar identifierare i EXEC SQL UNDEF-kommando" -#: pgc.l:1211 pgc.l:1224 pgc.l:1240 pgc.l:1253 +#: pgc.l:1253 pgc.l:1266 pgc.l:1282 pgc.l:1295 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "för många nästlade EXEC SQL IFDEF-villkor" -#: pgc.l:1269 pgc.l:1280 pgc.l:1295 pgc.l:1317 +#: pgc.l:1311 pgc.l:1322 pgc.l:1337 pgc.l:1359 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "saknar matchande \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" -#: pgc.l:1271 pgc.l:1282 pgc.l:1463 +#: pgc.l:1313 pgc.l:1324 pgc.l:1517 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "saknar \"EXEC SQL ENDIF;\"" -#: pgc.l:1297 pgc.l:1319 +#: pgc.l:1339 pgc.l:1361 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "mer än en EXEC SQL ELSE" -#: pgc.l:1342 pgc.l:1356 +#: pgc.l:1384 pgc.l:1398 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "ej matchad EXEC SQL ENDIF" -#: pgc.l:1411 +#: pgc.l:1459 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "saknar identifierare i EXEC SQL IFDEF-kommando" -#: pgc.l:1420 +#: pgc.l:1468 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "saknar identifierare i EXEC SQL DEFINE-kommando" -#: pgc.l:1453 +#: pgc.l:1506 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "syntaxfel i EXEC SQL INCLUDE-kommando" -#: pgc.l:1503 +#: pgc.l:1561 #, 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:1655 +#: pgc.l:1713 #, 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:1678 +#: pgc.l:1736 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "kunde inte öppna inkludefil \"%s\" på rad %d" @@ -388,12 +388,12 @@ msgstr "initialiserare tillåts inte i typdefinition" msgid "type name \"string\" is reserved in Informix mode" msgstr "typnamn \"string\" är reserverat i Informix-läge" -#: preproc.y:552 preproc.y:19317 +#: preproc.y:552 preproc.y:19072 #, c-format msgid "type \"%s\" is already defined" msgstr "typen \"%s\" är redan definierad" -#: preproc.y:577 preproc.y:19952 preproc.y:20277 variable.c:621 +#: preproc.y:577 preproc.y:19707 preproc.y:20029 variable.c:625 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "multidimensionella array:er för enkla datatyper stöds inte" @@ -403,180 +403,174 @@ msgstr "multidimensionella array:er för enkla datatyper stöds inte" msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "anslutning %s överskriven med %s av DECLARE-sats %s" -#: preproc.y:1872 +#: preproc.y:1833 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "AT-flaggan tillåts inte i CLOSE DATABASE-sats" -#: preproc.y:2122 +#: preproc.y:2083 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "AT-flaggan tillåts inte i CONNECT-sats" -#: preproc.y:2162 +#: preproc.y:2123 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "AT-flaggan tillåts inte i DISCONNECT-sats" -#: preproc.y:2217 +#: preproc.y:2178 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "AT-flaggan tillåts inte i SET CONNECTION-sats" -#: preproc.y:2239 +#: preproc.y:2200 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "AT-flaggan tillåts inte i TYPE-sats" -#: preproc.y:2248 +#: preproc.y:2209 #, c-format msgid "AT option not allowed in VAR statement" msgstr "AT-flaggan tillåts inte i VAR-sats" -#: preproc.y:2255 +#: preproc.y:2216 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "AT-flaggan tillåts inte i WHENEVER-sats" -#: preproc.y:2332 preproc.y:2504 preproc.y:2509 preproc.y:2632 preproc.y:4283 -#: preproc.y:4357 preproc.y:4948 preproc.y:5481 preproc.y:5819 preproc.y:6119 -#: preproc.y:7687 preproc.y:9288 preproc.y:9293 preproc.y:12272 +#: preproc.y:2341 preproc.y:2628 preproc.y:4379 preproc.y:5043 preproc.y:5913 +#: preproc.y:6117 preproc.y:6218 preproc.y:12482 #, c-format msgid "unsupported feature will be passed to server" msgstr "ej stödd funktion skickass till servern" -#: preproc.y:2890 +#: preproc.y:2886 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL är inte implementerad" -#: preproc.y:3589 +#: preproc.y:3626 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN är inte implementerad" -#: preproc.y:10335 preproc.y:18892 +#: preproc.y:10466 preproc.y:18541 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "\"database\" kan inte användas som markörsnamn i INFORMIX-läge" -#: preproc.y:10342 preproc.y:18902 +#: preproc.y:10473 preproc.y:18551 #, 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:10344 preproc.y:18904 +#: preproc.y:10475 preproc.y:18553 #, c-format msgid "cursor \"%s\" is already defined" msgstr "markören \"%s\" är redan definierad" -#: preproc.y:10818 +#: preproc.y:10949 #, 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:11151 preproc.y:11158 -#, c-format -msgid "subquery in FROM must have an alias" -msgstr "subfråga i FROM måste ha ett alias" - -#: preproc.y:18584 preproc.y:18591 +#: preproc.y:18233 preproc.y:18240 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS kan inte ange INTO" -#: preproc.y:18627 +#: preproc.y:18276 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "förväntade \"@\", hittade \"%s\"" -#: preproc.y:18639 +#: preproc.y:18288 #, 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:18642 +#: preproc.y:18291 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "förväntade \"://\", hittade \"%s\"" -#: preproc.y:18647 +#: preproc.y:18296 #, 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:18673 +#: preproc.y:18322 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "förväntade \"postgresql\", hittade \"%s\"" -#: preproc.y:18676 +#: preproc.y:18325 #, c-format msgid "invalid connection type: %s" msgstr "ogiltig anslutningstyp: %s" -#: preproc.y:18685 +#: preproc.y:18334 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "förväntade \"@\" eller \"://\", hittade \"%s\"" -#: preproc.y:18760 preproc.y:18778 +#: preproc.y:18409 preproc.y:18427 #, c-format msgid "invalid data type" msgstr "ogiltig datatyp" -#: preproc.y:18789 preproc.y:18806 +#: preproc.y:18438 preproc.y:18455 #, c-format msgid "incomplete statement" msgstr "ofullständig sats" -#: preproc.y:18792 preproc.y:18809 +#: preproc.y:18441 preproc.y:18458 #, c-format msgid "unrecognized token \"%s\"" msgstr "okänd symbol \"%s\"" -#: preproc.y:18854 +#: preproc.y:18503 #, c-format msgid "name \"%s\" is already declared" msgstr "namnet \"%s\" är redan deklarerat" -#: preproc.y:19120 +#: preproc.y:18792 #, 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:19132 +#: preproc.y:18891 #, c-format msgid "interval specification not allowed here" msgstr "intervallspecifikation tillåts inte här" -#: preproc.y:19292 preproc.y:19344 +#: preproc.y:19047 preproc.y:19099 #, 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:19467 +#: preproc.y:19222 #, c-format msgid "pointers to varchar are not implemented" msgstr "pekare till varchar är inte implementerat" -#: preproc.y:19918 +#: preproc.y:19673 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "initialiserare tillåts inte i EXEC SQL VAR-kommando" -#: preproc.y:20235 +#: preproc.y:19987 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "array:er av indikatorer tillåts inte vid indata" -#: preproc.y:20422 +#: preproc.y:20174 #, 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:20463 +#: preproc.y:20215 #, c-format msgid "%s at or near \"%s\"" msgstr "%s vid eller nära \"%s\"" @@ -646,64 +640,64 @@ msgstr "indikatorstruktur \"%s\" har för många medlemmar" msgid "unrecognized descriptor item code %d" msgstr "okänd deskriptor-post-kod %d" -#: variable.c:89 variable.c:116 +#: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "inkorrekt formatterad variabel \"%s\"" -#: variable.c:139 +#: variable.c:138 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "variabel \"%s\" är inte en pekare" -#: variable.c:142 variable.c:167 +#: variable.c:141 variable.c:166 #, c-format msgid "variable \"%s\" is not a pointer to a structure or a union" msgstr "variabel \"%s\" är inte en pekare till en struktur eller union" -#: variable.c:154 +#: variable.c:153 #, c-format msgid "variable \"%s\" is neither a structure nor a union" msgstr "variabel \"%s\" är varken en struktur eller en union" -#: variable.c:164 +#: variable.c:163 #, c-format msgid "variable \"%s\" is not an array" msgstr "variabel \"%s\" är inte en array" -#: variable.c:233 variable.c:255 +#: variable.c:232 variable.c:254 #, c-format msgid "variable \"%s\" is not declared" msgstr "variabel \"%s\" är inte deklarerad" -#: variable.c:494 +#: variable.c:493 #, c-format msgid "indicator variable must have an integer type" msgstr "indikatorvariabel måste ha en heltalstyp" -#: variable.c:506 +#: variable.c:510 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "okänt datatypsnamn \"%s\"" -#: variable.c:517 variable.c:525 variable.c:542 variable.c:545 +#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 #, c-format msgid "multidimensional arrays are not supported" msgstr "multidimensionella array:er stöds inte" -#: variable.c:534 +#: variable.c:538 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" msgstr[0] "multinivåpekare (mer än 2 nivåer) stöds inte; hittade %d nivå" msgstr[1] "multinivåpekare (mer än 2 nivåer) stöds inte; hittade %d nivåer" -#: variable.c:539 +#: variable.c:543 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "pekare till pekare stöds inte för denna datatyp" -#: variable.c:559 +#: variable.c:563 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "multidimensionella array:er av strukturer stöds inte" diff --git a/src/interfaces/ecpg/preproc/po/uk.po b/src/interfaces/ecpg/preproc/po/uk.po index f5c64240c6bf3..27ca851c33dd9 100644 --- a/src/interfaces/ecpg/preproc/po/uk.po +++ b/src/interfaces/ecpg/preproc/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:40+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-09-23 10:40+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,45 +14,45 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/ecpg.pot\n" -"X-Crowdin-File-ID: 906\n" +"X-Crowdin-File: /REL_17_STABLE/ecpg.pot\n" +"X-Crowdin-File-ID: 990\n" #: descriptor.c:64 #, c-format msgid "variable \"%s\" must have a numeric type" msgstr "змінна \"%s\" повинна мати числовий тип" -#: descriptor.c:125 descriptor.c:156 +#: descriptor.c:124 descriptor.c:155 #, c-format msgid "descriptor %s bound to connection %s does not exist" msgstr "дескриптор %s, прив'язаний до підключення %s, не існує" -#: descriptor.c:127 descriptor.c:158 +#: descriptor.c:126 descriptor.c:157 #, c-format msgid "descriptor %s bound to the default connection does not exist" msgstr "дескриптор %s, прив'язаний до підключення за замовчуванням, не існує" -#: descriptor.c:173 descriptor.c:225 +#: descriptor.c:172 descriptor.c:224 #, c-format msgid "descriptor header item \"%d\" does not exist" msgstr "елемент заголовка дескриптору \"%d\" не існує" -#: descriptor.c:195 +#: descriptor.c:194 #, c-format msgid "nullable is always 1" msgstr "nullable завжди 1" -#: descriptor.c:198 +#: descriptor.c:197 #, c-format msgid "key_member is always 0" msgstr "key_member завжди 0" -#: descriptor.c:292 +#: descriptor.c:291 #, c-format msgid "descriptor item \"%s\" is not implemented" msgstr "елемент дескриптору \"%s\" не реалізовано" -#: descriptor.c:302 +#: descriptor.c:301 #, c-format msgid "descriptor item \"%s\" cannot be set" msgstr "елемент дескриптору \"%s\" не можна встановити" @@ -165,177 +165,177 @@ msgstr "\n" msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: ecpg.c:141 +#: ecpg.c:152 #, c-format msgid "%s: could not locate my own executable path\n" msgstr "%s: не вдалося знайти свій власний шлях для виконання\n" -#: ecpg.c:176 ecpg.c:333 ecpg.c:344 -#, c-format -msgid "%s: could not open file \"%s\": %s\n" -msgstr "%s: не вдалося відкрити файл \"%s\": %s\n" - -#: ecpg.c:219 ecpg.c:232 ecpg.c:248 ecpg.c:274 +#: ecpg.c:195 ecpg.c:246 ecpg.c:260 ecpg.c:286 #, c-format msgid "Try \"%s --help\" for more information.\n" msgstr "Спробуйте \"%s --help\" для додаткової інформації.\n" -#: ecpg.c:243 +#: ecpg.c:203 #, c-format msgid "%s: parser debug support (-d) not available\n" msgstr "%s: налагоджувальні повідомлення під час аналізу (-d) не підтримуються\n" -#: ecpg.c:262 +#: ecpg.c:230 ecpg.c:345 ecpg.c:356 +#, c-format +msgid "%s: could not open file \"%s\": %m\n" +msgstr "%s: не вдалося відкрити файл \"%s\": %m\n" + +#: ecpg.c:274 #, c-format msgid "%s, the PostgreSQL embedded C preprocessor, version %s\n" msgstr "%s, вбудований препроцесор PostgreSQL, версія %s\n" -#: ecpg.c:264 +#: ecpg.c:276 #, c-format msgid "EXEC SQL INCLUDE ... search starts here:\n" msgstr "EXEC SQL INCLUDE ... пошук починається тут:\n" -#: ecpg.c:267 +#: ecpg.c:279 #, c-format msgid "end of search list\n" msgstr "кінець списку пошуку\n" -#: ecpg.c:273 +#: ecpg.c:285 #, c-format msgid "%s: no input files specified\n" msgstr "%s: не вказано вхідні файли\n" -#: ecpg.c:477 +#: ecpg.c:491 #, c-format msgid "cursor \"%s\" has been declared but not opened" msgstr "курсор \"%s\" був оголошений, але не відкритий" -#: ecpg.c:490 preproc.y:130 +#: ecpg.c:504 preproc.y:130 #, c-format msgid "could not remove output file \"%s\"\n" msgstr "не вдалося видалити файл виводу \"%s\"\n" -#: pgc.l:508 +#: pgc.l:542 #, c-format msgid "unterminated /* comment" msgstr "незавершений коментар /*" -#: pgc.l:525 +#: pgc.l:559 #, c-format msgid "unterminated bit string literal" msgstr "незавершений бітовий рядок" -#: pgc.l:533 +#: pgc.l:567 #, c-format msgid "unterminated hexadecimal string literal" msgstr "незавершений шістнадцятковий рядок" -#: pgc.l:608 +#: pgc.l:642 #, c-format msgid "invalid bit string literal" msgstr "неприпустимий літерал бітового рядка" -#: pgc.l:613 +#: pgc.l:647 #, c-format msgid "invalid hexadecimal string literal" msgstr "неприпустимий шістнадцятковий рядок" -#: pgc.l:631 +#: pgc.l:665 #, c-format msgid "unhandled previous state in xqs\n" msgstr "необроблений попередній стан у xqs\n" -#: pgc.l:657 pgc.l:766 +#: pgc.l:691 pgc.l:800 #, c-format msgid "unterminated quoted string" msgstr "незавершений рядок в лапках" -#: pgc.l:708 +#: pgc.l:742 #, c-format msgid "unterminated dollar-quoted string" msgstr "незавершений рядок з $" -#: pgc.l:726 pgc.l:746 +#: pgc.l:760 pgc.l:780 #, c-format msgid "zero-length delimited identifier" msgstr "пустий ідентифікатор із роздільниками" -#: pgc.l:757 +#: pgc.l:791 #, c-format msgid "unterminated quoted identifier" msgstr "незавершений ідентифікатор в лапках" -#: pgc.l:926 +#: pgc.l:960 #, c-format msgid "trailing junk after parameter" msgstr "сміття після параметру" -#: pgc.l:968 pgc.l:971 pgc.l:974 +#: pgc.l:1012 pgc.l:1015 pgc.l:1018 #, c-format msgid "trailing junk after numeric literal" msgstr "сміття після числового літерала" -#: pgc.l:1100 +#: pgc.l:1141 #, c-format msgid "nested /* ... */ comments" msgstr "вкладені /* ... */ коменарі" -#: pgc.l:1193 +#: pgc.l:1240 #, c-format msgid "missing identifier in EXEC SQL UNDEF command" msgstr "відсутній ідентифікатор у команді EXEC SQL UNDEF" -#: pgc.l:1211 pgc.l:1224 pgc.l:1240 pgc.l:1253 +#: pgc.l:1258 pgc.l:1271 pgc.l:1287 pgc.l:1300 #, c-format msgid "too many nested EXEC SQL IFDEF conditions" msgstr "забагато вкладених умов EXEC SQL IFDEF" -#: pgc.l:1269 pgc.l:1280 pgc.l:1295 pgc.l:1317 +#: pgc.l:1316 pgc.l:1327 pgc.l:1342 pgc.l:1364 #, c-format msgid "missing matching \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" msgstr "немає відповідного \"EXEC SQL IFDEF\" / \"EXEC SQL IFNDEF\"" -#: pgc.l:1271 pgc.l:1282 pgc.l:1463 +#: pgc.l:1318 pgc.l:1329 pgc.l:1522 #, c-format msgid "missing \"EXEC SQL ENDIF;\"" msgstr "відсутній \"EXEC SQL ENDIF;\"" -#: pgc.l:1297 pgc.l:1319 +#: pgc.l:1344 pgc.l:1366 #, c-format msgid "more than one EXEC SQL ELSE" msgstr "більше ніж один EXEC SQL ELSE" -#: pgc.l:1342 pgc.l:1356 +#: pgc.l:1389 pgc.l:1403 #, c-format msgid "unmatched EXEC SQL ENDIF" msgstr "невідповідний EXEC SQL ENDIF" -#: pgc.l:1411 +#: pgc.l:1464 #, c-format msgid "missing identifier in EXEC SQL IFDEF command" msgstr "відсутній ідентифікатор у команді EXEC SQL IFDEF" -#: pgc.l:1420 +#: pgc.l:1473 #, c-format msgid "missing identifier in EXEC SQL DEFINE command" msgstr "відсутній ідентифікатор у команді EXEC SQL DEFINE" -#: pgc.l:1453 +#: pgc.l:1511 #, c-format msgid "syntax error in EXEC SQL INCLUDE command" msgstr "синтаксична помилка у команді EXEC SQL INCLUDE" -#: pgc.l:1503 +#: pgc.l:1566 #, c-format msgid "internal error: unreachable state; please report this to <%s>" msgstr "внутрішня помилка: недосяжний стан; будь ласка, повідомте про це на <%s>" -#: pgc.l:1655 +#: pgc.l:1718 #, c-format msgid "Error: include path \"%s/%s\" is too long on line %d, skipping\n" msgstr "Помилка: шлях включення \"%s/%s\" занадто довгий у рядку %d, пропускається\n" -#: pgc.l:1678 +#: pgc.l:1741 #, c-format msgid "could not open include file \"%s\" on line %d" msgstr "не вдалося відкрити файл включення \"%s\" у рядку %d" @@ -369,12 +369,12 @@ msgstr "ініціалізація заборонена у визначенні msgid "type name \"string\" is reserved in Informix mode" msgstr "ім’я типу \"string\" зарезервовано у режимі Informix" -#: preproc.y:552 preproc.y:19354 +#: preproc.y:552 preproc.y:19034 #, c-format msgid "type \"%s\" is already defined" msgstr "тип \"%s\" вже визначений" -#: preproc.y:577 preproc.y:19989 preproc.y:20314 variable.c:621 +#: preproc.y:577 preproc.y:19669 preproc.y:19991 variable.c:625 #, c-format msgid "multidimensional arrays for simple data types are not supported" msgstr "багатовимірні масиви для простих типів даних не підтримуються" @@ -384,180 +384,174 @@ msgstr "багатовимірні масиви для простих типів msgid "connection %s is overwritten with %s by DECLARE statement %s" msgstr "підключення %s було перезаписано з %s командою DECLARE %s" -#: preproc.y:1872 +#: preproc.y:1831 #, c-format msgid "AT option not allowed in CLOSE DATABASE statement" msgstr "Параметр AT не дозволений в інструкції CLOSE DATABASE" -#: preproc.y:2122 +#: preproc.y:2081 #, c-format msgid "AT option not allowed in CONNECT statement" msgstr "Параметр AT не дозволений в інструкції CONNECT" -#: preproc.y:2162 +#: preproc.y:2121 #, c-format msgid "AT option not allowed in DISCONNECT statement" msgstr "Параметр AT не дозволений в інструкції DISCONNECT" -#: preproc.y:2217 +#: preproc.y:2176 #, c-format msgid "AT option not allowed in SET CONNECTION statement" msgstr "Параметр AT не дозволений в інструкції SET CONNECTION" -#: preproc.y:2239 +#: preproc.y:2198 #, c-format msgid "AT option not allowed in TYPE statement" msgstr "Параметр AT не дозволений в інструкції TYPE" -#: preproc.y:2248 +#: preproc.y:2207 #, c-format msgid "AT option not allowed in VAR statement" msgstr "Параметр AT не дозволений в інструкції VAR" -#: preproc.y:2255 +#: preproc.y:2214 #, c-format msgid "AT option not allowed in WHENEVER statement" msgstr "Параметр AT не дозволений в інструкції WHENEVER" -#: preproc.y:2332 preproc.y:2504 preproc.y:2509 preproc.y:2632 preproc.y:4283 -#: preproc.y:4357 preproc.y:4948 preproc.y:5481 preproc.y:5819 preproc.y:6119 -#: preproc.y:7687 preproc.y:9288 preproc.y:9293 preproc.y:12272 +#: preproc.y:2339 preproc.y:2626 preproc.y:4349 preproc.y:5021 preproc.y:5891 +#: preproc.y:6095 preproc.y:6196 preproc.y:12460 #, c-format msgid "unsupported feature will be passed to server" msgstr "непідтримувана функція буде передана до сервера" -#: preproc.y:2890 +#: preproc.y:2884 #, c-format msgid "SHOW ALL is not implemented" msgstr "SHOW ALL не реалізовано" -#: preproc.y:3589 +#: preproc.y:3596 #, c-format msgid "COPY FROM STDIN is not implemented" msgstr "COPY FROM STDIN не реалізовано" -#: preproc.y:10335 preproc.y:18892 +#: preproc.y:10444 preproc.y:18503 #, c-format msgid "\"database\" cannot be used as cursor name in INFORMIX mode" msgstr "\"database\" не може використовуватись як назва курсора в режимі INFORMIX" -#: preproc.y:10342 preproc.y:18902 +#: preproc.y:10451 preproc.y:18513 #, c-format msgid "using variable \"%s\" in different declare statements is not supported" msgstr "використання змінної \"%s\" у різних інструкціях declare не підтримується" -#: preproc.y:10344 preproc.y:18904 +#: preproc.y:10453 preproc.y:18515 #, c-format msgid "cursor \"%s\" is already defined" msgstr "курсор \"%s\" вже визначено" -#: preproc.y:10818 +#: preproc.y:10927 #, c-format msgid "no longer supported LIMIT #,# syntax passed to server" msgstr "непідтримуваний синтаксис LIMIT #,# передано до сервера" -#: preproc.y:11151 preproc.y:11158 -#, c-format -msgid "subquery in FROM must have an alias" -msgstr "підзапит в FROM повинен мати псевдонім" - -#: preproc.y:18584 preproc.y:18591 +#: preproc.y:18195 preproc.y:18202 #, c-format msgid "CREATE TABLE AS cannot specify INTO" msgstr "CREATE TABLE AS не може містити INTO" -#: preproc.y:18627 +#: preproc.y:18238 #, c-format msgid "expected \"@\", found \"%s\"" msgstr "очікувалося \"@\", знайдено \"%s\"" -#: preproc.y:18639 +#: preproc.y:18250 #, c-format msgid "only protocols \"tcp\" and \"unix\" and database type \"postgresql\" are supported" msgstr "підтримуються лише протоколи \"tcp\" та \"unix\" і тип бази даних \"postgresql\"" -#: preproc.y:18642 +#: preproc.y:18253 #, c-format msgid "expected \"://\", found \"%s\"" msgstr "очікувалося \"://\", знайдено \"%s\"" -#: preproc.y:18647 +#: preproc.y:18258 #, c-format msgid "Unix-domain sockets only work on \"localhost\" but not on \"%s\"" msgstr "Unix-сокети працюють лише з \"localhost\", але не з \"%s\"" -#: preproc.y:18673 +#: preproc.y:18284 #, c-format msgid "expected \"postgresql\", found \"%s\"" msgstr "очікувалось \"postgresql\", знайдено \"%s\"" -#: preproc.y:18676 +#: preproc.y:18287 #, c-format msgid "invalid connection type: %s" msgstr "неприпустимий тип підключення: %s" -#: preproc.y:18685 +#: preproc.y:18296 #, c-format msgid "expected \"@\" or \"://\", found \"%s\"" msgstr "очікувалось \"@\" або \"://\", знайдено \"%s\"" -#: preproc.y:18760 preproc.y:18778 +#: preproc.y:18371 preproc.y:18389 #, c-format msgid "invalid data type" msgstr "неприпустимий тип даних" -#: preproc.y:18789 preproc.y:18806 +#: preproc.y:18400 preproc.y:18417 #, c-format msgid "incomplete statement" msgstr "неповний оператор" -#: preproc.y:18792 preproc.y:18809 +#: preproc.y:18403 preproc.y:18420 #, c-format msgid "unrecognized token \"%s\"" msgstr "нерозпізнаний токен \"%s\"" -#: preproc.y:18854 +#: preproc.y:18465 #, c-format msgid "name \"%s\" is already declared" msgstr "ім'я \"%s\" вже оголошена" -#: preproc.y:19120 +#: preproc.y:18754 #, c-format msgid "only data types numeric and decimal have precision/scale argument" msgstr "точність/масштаб можна вказати лише для типів даних numeric і decimal" -#: preproc.y:19132 +#: preproc.y:18853 #, c-format msgid "interval specification not allowed here" msgstr "специфікація інтервалу тут не допускається" -#: preproc.y:19329 preproc.y:19381 +#: preproc.y:19009 preproc.y:19061 #, c-format msgid "too many levels in nested structure/union definition" msgstr "занадто багато рівнів у визначенні вкладеної структури/об'єднання" -#: preproc.y:19504 +#: preproc.y:19184 #, c-format msgid "pointers to varchar are not implemented" msgstr "вказівників на varchar не реалізовано" -#: preproc.y:19955 +#: preproc.y:19635 #, c-format msgid "initializer not allowed in EXEC SQL VAR command" msgstr "команда EXEC SQL VAR не допускає ініціалізатор" -#: preproc.y:20272 +#: preproc.y:19949 #, c-format msgid "arrays of indicators are not allowed on input" msgstr "вхідні масиви індикаторів не допускаються" -#: preproc.y:20459 +#: preproc.y:20136 #, c-format msgid "operator not allowed in variable definition" msgstr "у визначенні змінної оператор не допускається" #. translator: %s is typically the translation of "syntax error" -#: preproc.y:20500 +#: preproc.y:20177 #, c-format msgid "%s at or near \"%s\"" msgstr "%s в або поблизу \"%s\"" @@ -627,52 +621,52 @@ msgstr "індикатор структури \"%s\" має занадто ба msgid "unrecognized descriptor item code %d" msgstr "нерозпізнаний код елементу дескриптора %d" -#: variable.c:89 variable.c:116 +#: variable.c:89 variable.c:115 #, c-format msgid "incorrectly formed variable \"%s\"" msgstr "неправильно створена змінна \"%s\"" -#: variable.c:139 +#: variable.c:138 #, c-format msgid "variable \"%s\" is not a pointer" msgstr "змінна \"%s\" не є вказівником" -#: variable.c:142 variable.c:167 +#: variable.c:141 variable.c:166 #, c-format msgid "variable \"%s\" is not a pointer to a structure or a union" msgstr "змінна \"%s\" не є вказівником на структуру або об'єднання" -#: variable.c:154 +#: variable.c:153 #, c-format msgid "variable \"%s\" is neither a structure nor a union" msgstr "змінна \"%s\" не є структурою або об'єднанням" -#: variable.c:164 +#: variable.c:163 #, c-format msgid "variable \"%s\" is not an array" msgstr "змінна \"%s\" не є масивом" -#: variable.c:233 variable.c:255 +#: variable.c:232 variable.c:254 #, c-format msgid "variable \"%s\" is not declared" msgstr "змінна \"%s\" не проголошена" -#: variable.c:494 +#: variable.c:493 #, c-format msgid "indicator variable must have an integer type" msgstr "змінна-індикатор повинна бути цілим числом" -#: variable.c:506 +#: variable.c:510 #, c-format msgid "unrecognized data type name \"%s\"" msgstr "нерозпізнане ім'я типу даних \"%s\"" -#: variable.c:517 variable.c:525 variable.c:542 variable.c:545 +#: variable.c:521 variable.c:529 variable.c:546 variable.c:549 #, c-format msgid "multidimensional arrays are not supported" msgstr "багатовимірні масиви не підтримуються" -#: variable.c:534 +#: variable.c:538 #, c-format msgid "multilevel pointers (more than 2 levels) are not supported; found %d level" msgid_plural "multilevel pointers (more than 2 levels) are not supported; found %d levels" @@ -681,12 +675,12 @@ msgstr[1] "багаторівневі вказівники (більше 2 рі msgstr[2] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівнів" msgstr[3] "багаторівневі вказівники (більше 2 рівнів) не підтримуються; знайдено %d рівень" -#: variable.c:539 +#: variable.c:543 #, c-format msgid "pointer to pointer is not supported for this data type" msgstr "для цього типу даних вказівники на вказівники не підтримуються" -#: variable.c:559 +#: variable.c:563 #, c-format msgid "multidimensional arrays for structures are not supported" msgstr "багатовимірні масиви структур не підтримуються" diff --git a/src/interfaces/ecpg/preproc/variable.c b/src/interfaces/ecpg/preproc/variable.c index f2e6218d7619a..2c67e33e92e6a 100644 --- a/src/interfaces/ecpg/preproc/variable.c +++ b/src/interfaces/ecpg/preproc/variable.c @@ -60,7 +60,7 @@ find_struct_member(const char *name, char *str, struct ECPGstruct_member *member int count; /* - * We don't care about what's inside the array braces so + * We don't care about what's inside the array brackets so * just eat up the character */ for (count = 1, end = next + 1; count; end++) @@ -203,8 +203,8 @@ find_variable(const char *name) if (*next == '[') { /* - * We don't care about what's inside the array braces so just eat - * up the characters + * We don't care about what's inside the array brackets so just + * eat up the characters */ for (count = 1, end = next + 1; count; end++) { @@ -217,7 +217,7 @@ find_variable(const char *name) count--; break; case '\0': - mmfatal(PARSE_ERROR, "unmatched brace in variable \"%s\"", name); + mmfatal(PARSE_ERROR, "unmatched bracket in variable \"%s\"", name); break; default: break; diff --git a/src/interfaces/libpq-oauth/Makefile b/src/interfaces/libpq-oauth/Makefile new file mode 100644 index 0000000000000..270fc0cf2d9d9 --- /dev/null +++ b/src/interfaces/libpq-oauth/Makefile @@ -0,0 +1,83 @@ +#------------------------------------------------------------------------- +# +# Makefile for libpq-oauth +# +# Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group +# Portions Copyright (c) 1994, Regents of the University of California +# +# src/interfaces/libpq-oauth/Makefile +# +#------------------------------------------------------------------------- + +subdir = src/interfaces/libpq-oauth +top_builddir = ../../.. +include $(top_builddir)/src/Makefile.global + +PGFILEDESC = "libpq-oauth - device authorization OAuth support" + +# This is an internal module; we don't want an SONAME and therefore do not set +# SO_MAJOR_VERSION. +NAME = pq-oauth-$(MAJORVERSION) + +# Force the name "libpq-oauth" for both the static and shared libraries. The +# staticlib doesn't need version information in its name. +override shlib := lib$(NAME)$(DLSUFFIX) +override stlib := libpq-oauth.a + +override CPPFLAGS := -I$(libpq_srcdir) -I$(top_builddir)/src/port $(LIBCURL_CPPFLAGS) $(CPPFLAGS) + +OBJS = \ + $(WIN32RES) + +OBJS_STATIC = oauth-curl.o + +# The shared library needs additional glue symbols. +OBJS_SHLIB = \ + oauth-curl_shlib.o \ + oauth-utils.o \ + +oauth-utils.o: override CPPFLAGS += -DUSE_DYNAMIC_OAUTH +oauth-curl_shlib.o: override CPPFLAGS_SHLIB += -DUSE_DYNAMIC_OAUTH + +# Add shlib-/stlib-specific objects. +$(shlib): override OBJS += $(OBJS_SHLIB) +$(shlib): $(OBJS_SHLIB) + +$(stlib): override OBJS += $(OBJS_STATIC) +$(stlib): $(OBJS_STATIC) + +SHLIB_LINK_INTERNAL = $(libpq_pgport_shlib) +SHLIB_LINK = $(LIBCURL_LDFLAGS) $(LIBCURL_LDLIBS) $(filter -lintl, $(LIBS)) +SHLIB_PREREQS = submake-libpq +SHLIB_EXPORTS = exports.txt + +# Disable -bundle_loader on macOS. +BE_DLLLIBS = + +# By default, a library without an SONAME doesn't get a static library, so we +# add it to the build explicitly. +all: all-lib all-static-lib + +# Shared library stuff +include $(top_srcdir)/src/Makefile.shlib + +# Use src/common/Makefile's trick for tracking dependencies of shlib-specific +# objects. +%_shlib.o: %.c %.o + $(CC) $(CFLAGS) $(CFLAGS_SL) $(CPPFLAGS) $(CPPFLAGS_SHLIB) -c $< -o $@ + +# Ignore the standard rules for SONAME-less installation; we want both the +# static and shared libraries to go into libdir. +install: all installdirs $(stlib) $(shlib) + $(INSTALL_SHLIB) $(shlib) '$(DESTDIR)$(libdir)/$(shlib)' + $(INSTALL_STLIB) $(stlib) '$(DESTDIR)$(libdir)/$(stlib)' + +installdirs: + $(MKDIR_P) '$(DESTDIR)$(libdir)' + +uninstall: + rm -f '$(DESTDIR)$(libdir)/$(stlib)' + rm -f '$(DESTDIR)$(libdir)/$(shlib)' + +clean distclean: clean-lib + rm -f $(OBJS) $(OBJS_STATIC) $(OBJS_SHLIB) diff --git a/src/interfaces/libpq-oauth/README b/src/interfaces/libpq-oauth/README new file mode 100644 index 0000000000000..553962d644e94 --- /dev/null +++ b/src/interfaces/libpq-oauth/README @@ -0,0 +1,57 @@ +libpq-oauth is an optional module implementing the Device Authorization flow for +OAuth clients (RFC 8628). It is maintained as its own shared library in order to +isolate its dependency on libcurl. (End users who don't want the Curl dependency +can simply choose not to install this module.) + +If a connection string allows the use of OAuth, and the server asks for it, and +a libpq client has not installed its own custom OAuth flow, libpq will attempt +to delay-load this module using dlopen() and the following ABI. Failure to load +results in a failed connection. + += Load-Time ABI = + +This module ABI is an internal implementation detail, so it's subject to change +across major releases; the name of the module (libpq-oauth-MAJOR) reflects this. +The module exports the following symbols: + +- PostgresPollingStatusType pg_fe_run_oauth_flow(PGconn *conn); +- void pg_fe_cleanup_oauth_flow(PGconn *conn); + +pg_fe_run_oauth_flow and pg_fe_cleanup_oauth_flow are implementations of +conn->async_auth and conn->cleanup_async_auth, respectively. + +At the moment, pg_fe_run_oauth_flow() relies on libpq's pg_g_threadlock and +libpq_gettext(), which must be injected by libpq using this initialization +function before the flow is run: + +- void libpq_oauth_init(pgthreadlock_t threadlock, + libpq_gettext_func gettext_impl, + conn_errorMessage_func errmsg_impl, + conn_oauth_client_id_func clientid_impl, + conn_oauth_client_secret_func clientsecret_impl, + conn_oauth_discovery_uri_func discoveryuri_impl, + conn_oauth_issuer_id_func issuerid_impl, + conn_oauth_scope_func scope_impl, + conn_sasl_state_func saslstate_impl, + set_conn_altsock_func setaltsock_impl, + set_conn_oauth_token_func settoken_impl); + +It also relies on access to several members of the PGconn struct. Not only can +these change positions across minor versions, but the offsets aren't necessarily +stable within a single minor release (conn->errorMessage, for instance, can +change offsets depending on configure-time options). Therefore the necessary +accessors (named conn_*) and mutators (set_conn_*) are injected here. With this +approach, we can safely search the standard dlopen() paths (e.g. RPATH, +LD_LIBRARY_PATH, the SO cache) for an implementation module to use, even if that +module wasn't compiled at the same time as libpq -- which becomes especially +important during "live upgrade" situations where a running libpq application has +the libpq-oauth module updated out from under it before it's first loaded from +disk. + += Static Build = + +The static library libpq.a does not perform any dynamic loading. If the builtin +flow is enabled, the application is expected to link against libpq-oauth.a +directly to provide the necessary symbols. (libpq.a and libpq-oauth.a must be +part of the same build. Unlike the dynamic module, there are no translation +shims provided.) diff --git a/src/interfaces/libpq-oauth/exports.txt b/src/interfaces/libpq-oauth/exports.txt new file mode 100644 index 0000000000000..6891a83dbf998 --- /dev/null +++ b/src/interfaces/libpq-oauth/exports.txt @@ -0,0 +1,4 @@ +# src/interfaces/libpq-oauth/exports.txt +libpq_oauth_init 1 +pg_fe_run_oauth_flow 2 +pg_fe_cleanup_oauth_flow 3 diff --git a/src/interfaces/libpq-oauth/meson.build b/src/interfaces/libpq-oauth/meson.build new file mode 100644 index 0000000000000..df064c59a4070 --- /dev/null +++ b/src/interfaces/libpq-oauth/meson.build @@ -0,0 +1,49 @@ +# Copyright (c) 2022-2025, PostgreSQL Global Development Group + +if not oauth_flow_supported + subdir_done() +endif + +libpq_oauth_sources = files( + 'oauth-curl.c', +) + +# The shared library needs additional glue symbols. +libpq_oauth_so_sources = files( + 'oauth-utils.c', +) +libpq_oauth_so_c_args = ['-DUSE_DYNAMIC_OAUTH'] + +export_file = custom_target('libpq-oauth.exports', + kwargs: gen_export_kwargs, +) + +# port needs to be in include path due to pthread-win32.h +libpq_oauth_inc = include_directories('.', '../libpq', '../../port') + +libpq_oauth_st = static_library('libpq-oauth', + libpq_oauth_sources, + include_directories: [libpq_oauth_inc, postgres_inc], + c_pch: pch_postgres_fe_h, + dependencies: [ + frontend_stlib_code, + libpq_oauth_deps, + ssl, # libpq-int.h includes OpenSSL headers + ], + kwargs: default_lib_args, +) + +# This is an internal module; we don't want an SONAME and therefore do not set +# SO_MAJOR_VERSION. +libpq_oauth_name = 'libpq-oauth-@0@'.format(pg_version_major) + +libpq_oauth_so = shared_module(libpq_oauth_name, + libpq_oauth_sources + libpq_oauth_so_sources, + include_directories: [libpq_oauth_inc, postgres_inc], + c_args: libpq_so_c_args, + c_pch: pch_postgres_fe_h, + dependencies: [frontend_shlib_code, libpq, libpq_oauth_deps], + link_depends: export_file, + link_args: export_fmt.format(export_file.full_path()), + kwargs: default_lib_args, +) diff --git a/src/interfaces/libpq/fe-auth-oauth-curl.c b/src/interfaces/libpq-oauth/oauth-curl.c similarity index 94% rename from src/interfaces/libpq/fe-auth-oauth-curl.c rename to src/interfaces/libpq-oauth/oauth-curl.c index 9e0e8a9f2bece..d13b9cbabb4fe 100644 --- a/src/interfaces/libpq/fe-auth-oauth-curl.c +++ b/src/interfaces/libpq-oauth/oauth-curl.c @@ -1,6 +1,6 @@ /*------------------------------------------------------------------------- * - * fe-auth-oauth-curl.c + * oauth-curl.c * The libcurl implementation of OAuth/OIDC authentication, using the * OAuth Device Authorization Grant (RFC 8628). * @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * src/interfaces/libpq/fe-auth-oauth-curl.c + * src/interfaces/libpq-oauth/oauth-curl.c * *------------------------------------------------------------------------- */ @@ -17,20 +17,56 @@ #include #include -#ifdef HAVE_SYS_EPOLL_H +#include + +#if defined(HAVE_SYS_EPOLL_H) #include #include -#endif -#ifdef HAVE_SYS_EVENT_H +#elif defined(HAVE_SYS_EVENT_H) #include +#else +#error libpq-oauth is not supported on this platform #endif -#include #include "common/jsonapi.h" -#include "fe-auth.h" #include "fe-auth-oauth.h" -#include "libpq-int.h" #include "mb/pg_wchar.h" +#include "oauth-curl.h" + +#ifdef USE_DYNAMIC_OAUTH + +/* + * The module build is decoupled from libpq-int.h, to try to avoid inadvertent + * ABI breaks during minor version bumps. Replacements for the missing internals + * are provided by oauth-utils. + */ +#include "oauth-utils.h" + +#else /* !USE_DYNAMIC_OAUTH */ + +/* + * Static builds may rely on PGconn offsets directly. Keep these aligned with + * the bank of callbacks in oauth-utils.h. + */ +#include "libpq-int.h" + +#define conn_errorMessage(CONN) (&CONN->errorMessage) +#define conn_oauth_client_id(CONN) (CONN->oauth_client_id) +#define conn_oauth_client_secret(CONN) (CONN->oauth_client_secret) +#define conn_oauth_discovery_uri(CONN) (CONN->oauth_discovery_uri) +#define conn_oauth_issuer_id(CONN) (CONN->oauth_issuer_id) +#define conn_oauth_scope(CONN) (CONN->oauth_scope) +#define conn_sasl_state(CONN) (CONN->sasl_state) + +#define set_conn_altsock(CONN, VAL) do { CONN->altsock = VAL; } while (0) +#define set_conn_oauth_token(CONN, VAL) do { CONN->oauth_token = VAL; } while (0) + +#endif /* USE_DYNAMIC_OAUTH */ + +/* One final guardrail against accidental inclusion... */ +#if defined(USE_DYNAMIC_OAUTH) && defined(LIBPQ_INT_H) +#error do not rely on libpq-int.h in dynamic builds of libpq-oauth +#endif /* * It's generally prudent to set a maximum response size to buffer in memory, @@ -303,7 +339,7 @@ free_async_ctx(PGconn *conn, struct async_ctx *actx) void pg_fe_cleanup_oauth_flow(PGconn *conn) { - fe_oauth_state *state = conn->sasl_state; + fe_oauth_state *state = conn_sasl_state(conn); if (state->async_ctx) { @@ -311,7 +347,7 @@ pg_fe_cleanup_oauth_flow(PGconn *conn) state->async_ctx = NULL; } - conn->altsock = PGINVALID_SOCKET; + set_conn_altsock(conn, PGINVALID_SOCKET); } /* @@ -1110,7 +1146,7 @@ parse_access_token(struct async_ctx *actx, struct token *tok) static bool setup_multiplexer(struct async_ctx *actx) { -#ifdef HAVE_SYS_EPOLL_H +#if defined(HAVE_SYS_EPOLL_H) struct epoll_event ev = {.events = EPOLLIN}; actx->mux = epoll_create1(EPOLL_CLOEXEC); @@ -1134,8 +1170,7 @@ setup_multiplexer(struct async_ctx *actx) } return true; -#endif -#ifdef HAVE_SYS_EVENT_H +#elif defined(HAVE_SYS_EVENT_H) actx->mux = kqueue(); if (actx->mux < 0) { @@ -1158,10 +1193,9 @@ setup_multiplexer(struct async_ctx *actx) } return true; +#else +#error setup_multiplexer is not implemented on this platform #endif - - actx_error(actx, "libpq does not support the Device Authorization flow on this platform"); - return false; } /* @@ -1172,8 +1206,9 @@ static int register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx, void *socketp) { -#ifdef HAVE_SYS_EPOLL_H struct async_ctx *actx = ctx; + +#if defined(HAVE_SYS_EPOLL_H) struct epoll_event ev = {0}; int res; int op = EPOLL_CTL_ADD; @@ -1204,7 +1239,7 @@ register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx, res = epoll_ctl(actx->mux, op, socket, &ev); if (res < 0 && errno == EEXIST) { - /* We already had this socket in the pollset. */ + /* We already had this socket in the poll set. */ op = EPOLL_CTL_MOD; res = epoll_ctl(actx->mux, op, socket, &ev); } @@ -1229,9 +1264,7 @@ register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx, } return 0; -#endif -#ifdef HAVE_SYS_EVENT_H - struct async_ctx *actx = ctx; +#elif defined(HAVE_SYS_EVENT_H) struct kevent ev[2] = {0}; struct kevent ev_out[2]; struct timespec timeout = {0}; @@ -1312,10 +1345,9 @@ register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx, } return 0; +#else +#error register_socket is not implemented on this platform #endif - - actx_error(actx, "libpq does not support multiplexer sockets on this platform"); - return -1; } /* @@ -1334,7 +1366,7 @@ register_socket(CURL *curl, curl_socket_t socket, int what, void *ctx, static bool set_timer(struct async_ctx *actx, long timeout) { -#if HAVE_SYS_EPOLL_H +#if defined(HAVE_SYS_EPOLL_H) struct itimerspec spec = {0}; if (timeout < 0) @@ -1363,8 +1395,7 @@ set_timer(struct async_ctx *actx, long timeout) } return true; -#endif -#ifdef HAVE_SYS_EVENT_H +#elif defined(HAVE_SYS_EVENT_H) struct kevent ev; #ifdef __NetBSD__ @@ -1419,10 +1450,9 @@ set_timer(struct async_ctx *actx, long timeout) } return true; +#else +#error set_timer is not implemented on this platform #endif - - actx_error(actx, "libpq does not support timers on this platform"); - return false; } /* @@ -1433,7 +1463,7 @@ set_timer(struct async_ctx *actx, long timeout) static int timer_expired(struct async_ctx *actx) { -#if HAVE_SYS_EPOLL_H +#if defined(HAVE_SYS_EPOLL_H) struct itimerspec spec = {0}; if (timerfd_gettime(actx->timerfd, &spec) < 0) @@ -1453,8 +1483,7 @@ timer_expired(struct async_ctx *actx) /* If the remaining time to expiration is zero, we're done. */ return (spec.it_value.tv_sec == 0 && spec.it_value.tv_nsec == 0); -#endif -#ifdef HAVE_SYS_EVENT_H +#elif defined(HAVE_SYS_EVENT_H) int res; /* Is the timer queue ready? */ @@ -1466,10 +1495,9 @@ timer_expired(struct async_ctx *actx) } return (res > 0); +#else +#error timer_expired is not implemented on this platform #endif - - actx_error(actx, "libpq does not support timers on this platform"); - return -1; } /* @@ -2070,8 +2098,9 @@ static bool check_issuer(struct async_ctx *actx, PGconn *conn) { const struct provider *provider = &actx->provider; + const char *oauth_issuer_id = conn_oauth_issuer_id(conn); - Assert(conn->oauth_issuer_id); /* ensured by setup_oauth_parameters() */ + Assert(oauth_issuer_id); /* ensured by setup_oauth_parameters() */ Assert(provider->issuer); /* ensured by parse_provider() */ /*--- @@ -2091,11 +2120,11 @@ check_issuer(struct async_ctx *actx, PGconn *conn) * sent to. This comparison MUST use simple string comparison as defined * in Section 6.2.1 of [RFC3986]. */ - if (strcmp(conn->oauth_issuer_id, provider->issuer) != 0) + if (strcmp(oauth_issuer_id, provider->issuer) != 0) { actx_error(actx, "the issuer identifier (%s) does not match oauth_issuer (%s)", - provider->issuer, conn->oauth_issuer_id); + provider->issuer, oauth_issuer_id); return false; } @@ -2172,11 +2201,14 @@ check_for_device_flow(struct async_ctx *actx) static bool add_client_identification(struct async_ctx *actx, PQExpBuffer reqbody, PGconn *conn) { + const char *oauth_client_id = conn_oauth_client_id(conn); + const char *oauth_client_secret = conn_oauth_client_secret(conn); + bool success = false; char *username = NULL; char *password = NULL; - if (conn->oauth_client_secret) /* Zero-length secrets are permitted! */ + if (oauth_client_secret) /* Zero-length secrets are permitted! */ { /*---- * Use HTTP Basic auth to send the client_id and secret. Per RFC 6749, @@ -2204,8 +2236,8 @@ add_client_identification(struct async_ctx *actx, PQExpBuffer reqbody, PGconn *c * would it be redundant, but some providers in the wild (e.g. Okta) * refuse to accept it. */ - username = urlencode(conn->oauth_client_id); - password = urlencode(conn->oauth_client_secret); + username = urlencode(oauth_client_id); + password = urlencode(oauth_client_secret); if (!username || !password) { @@ -2225,7 +2257,7 @@ add_client_identification(struct async_ctx *actx, PQExpBuffer reqbody, PGconn *c * If we're not otherwise authenticating, client_id is REQUIRED in the * request body. */ - build_urlencoded(reqbody, "client_id", conn->oauth_client_id); + build_urlencoded(reqbody, "client_id", oauth_client_id); CHECK_SETOPT(actx, CURLOPT_HTTPAUTH, CURLAUTH_NONE, goto cleanup); actx->used_basic_auth = false; @@ -2253,16 +2285,17 @@ add_client_identification(struct async_ctx *actx, PQExpBuffer reqbody, PGconn *c static bool start_device_authz(struct async_ctx *actx, PGconn *conn) { + const char *oauth_scope = conn_oauth_scope(conn); const char *device_authz_uri = actx->provider.device_authorization_endpoint; PQExpBuffer work_buffer = &actx->work_data; - Assert(conn->oauth_client_id); /* ensured by setup_oauth_parameters() */ + Assert(conn_oauth_client_id(conn)); /* ensured by setup_oauth_parameters() */ Assert(device_authz_uri); /* ensured by check_for_device_flow() */ /* Construct our request body. */ resetPQExpBuffer(work_buffer); - if (conn->oauth_scope && conn->oauth_scope[0]) - build_urlencoded(work_buffer, "scope", conn->oauth_scope); + if (oauth_scope && oauth_scope[0]) + build_urlencoded(work_buffer, "scope", oauth_scope); if (!add_client_identification(actx, work_buffer, conn)) return false; @@ -2344,7 +2377,7 @@ start_token_request(struct async_ctx *actx, PGconn *conn) const char *device_code = actx->authz.device_code; PQExpBuffer work_buffer = &actx->work_data; - Assert(conn->oauth_client_id); /* ensured by setup_oauth_parameters() */ + Assert(conn_oauth_client_id(conn)); /* ensured by setup_oauth_parameters() */ Assert(token_uri); /* ensured by parse_provider() */ Assert(device_code); /* ensured by parse_device_authz() */ @@ -2487,8 +2520,9 @@ prompt_user(struct async_ctx *actx, PGconn *conn) .verification_uri_complete = actx->authz.verification_uri_complete, .expires_in = actx->authz.expires_in, }; + PQauthDataHook_type hook = PQgetAuthDataHook(); - res = PQauthDataHook(PQAUTHDATA_PROMPT_OAUTH_DEVICE, conn, &prompt); + res = hook(PQAUTHDATA_PROMPT_OAUTH_DEVICE, conn, &prompt); if (!res) { @@ -2633,8 +2667,10 @@ initialize_curl(PGconn *conn) static PostgresPollingStatusType pg_fe_run_oauth_flow_impl(PGconn *conn) { - fe_oauth_state *state = conn->sasl_state; + fe_oauth_state *state = conn_sasl_state(conn); struct async_ctx *actx; + char *oauth_token = NULL; + PQExpBuffer errbuf; if (!initialize_curl(conn)) return PGRES_POLLING_FAILED; @@ -2676,7 +2712,7 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) do { /* By default, the multiplexer is the altsock. Reassign as desired. */ - conn->altsock = actx->mux; + set_conn_altsock(conn, actx->mux); switch (actx->step) { @@ -2712,7 +2748,7 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) */ if (!timer_expired(actx)) { - conn->altsock = actx->timerfd; + set_conn_altsock(conn, actx->timerfd); return PGRES_POLLING_READING; } @@ -2732,7 +2768,7 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) { case OAUTH_STEP_INIT: actx->errctx = "failed to fetch OpenID discovery document"; - if (!start_discovery(actx, conn->oauth_discovery_uri)) + if (!start_discovery(actx, conn_oauth_discovery_uri(conn))) goto error_return; actx->step = OAUTH_STEP_DISCOVERY; @@ -2768,9 +2804,15 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) break; case OAUTH_STEP_TOKEN_REQUEST: - if (!handle_token_response(actx, &conn->oauth_token)) + if (!handle_token_response(actx, &oauth_token)) goto error_return; + /* + * Hook any oauth_token into the PGconn immediately so that + * the allocation isn't lost in case of an error. + */ + set_conn_oauth_token(conn, oauth_token); + if (!actx->user_prompted) { /* @@ -2783,7 +2825,7 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) actx->user_prompted = true; } - if (conn->oauth_token) + if (oauth_token) break; /* done! */ /* @@ -2798,7 +2840,7 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) * the client wait directly on the timerfd rather than the * multiplexer. */ - conn->altsock = actx->timerfd; + set_conn_altsock(conn, actx->timerfd); actx->step = OAUTH_STEP_WAIT_INTERVAL; actx->running = 1; @@ -2818,48 +2860,40 @@ pg_fe_run_oauth_flow_impl(PGconn *conn) * point, actx->running will be set. But there are some corner cases * where we can immediately loop back around; see start_request(). */ - } while (!conn->oauth_token && !actx->running); + } while (!oauth_token && !actx->running); /* If we've stored a token, we're done. Otherwise come back later. */ - return conn->oauth_token ? PGRES_POLLING_OK : PGRES_POLLING_READING; + return oauth_token ? PGRES_POLLING_OK : PGRES_POLLING_READING; error_return: + errbuf = conn_errorMessage(conn); /* * Assemble the three parts of our error: context, body, and detail. See * also the documentation for struct async_ctx. */ if (actx->errctx) - { - appendPQExpBufferStr(&conn->errorMessage, - libpq_gettext(actx->errctx)); - appendPQExpBufferStr(&conn->errorMessage, ": "); - } + appendPQExpBuffer(errbuf, "%s: ", libpq_gettext(actx->errctx)); if (PQExpBufferDataBroken(actx->errbuf)) - appendPQExpBufferStr(&conn->errorMessage, - libpq_gettext("out of memory")); + appendPQExpBufferStr(errbuf, libpq_gettext("out of memory")); else - appendPQExpBufferStr(&conn->errorMessage, actx->errbuf.data); + appendPQExpBufferStr(errbuf, actx->errbuf.data); if (actx->curl_err[0]) { - size_t len; - - appendPQExpBuffer(&conn->errorMessage, - " (libcurl: %s)", actx->curl_err); + appendPQExpBuffer(errbuf, " (libcurl: %s)", actx->curl_err); /* Sometimes libcurl adds a newline to the error buffer. :( */ - len = conn->errorMessage.len; - if (len >= 2 && conn->errorMessage.data[len - 2] == '\n') + if (errbuf->len >= 2 && errbuf->data[errbuf->len - 2] == '\n') { - conn->errorMessage.data[len - 2] = ')'; - conn->errorMessage.data[len - 1] = '\0'; - conn->errorMessage.len--; + errbuf->data[errbuf->len - 2] = ')'; + errbuf->data[errbuf->len - 1] = '\0'; + errbuf->len--; } } - appendPQExpBufferStr(&conn->errorMessage, "\n"); + appendPQExpBufferChar(errbuf, '\n'); return PGRES_POLLING_FAILED; } diff --git a/src/interfaces/libpq-oauth/oauth-curl.h b/src/interfaces/libpq-oauth/oauth-curl.h new file mode 100644 index 0000000000000..248d0424ad0d6 --- /dev/null +++ b/src/interfaces/libpq-oauth/oauth-curl.h @@ -0,0 +1,24 @@ +/*------------------------------------------------------------------------- + * + * oauth-curl.h + * + * Definitions for OAuth Device Authorization module + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/interfaces/libpq-oauth/oauth-curl.h + * + *------------------------------------------------------------------------- + */ + +#ifndef OAUTH_CURL_H +#define OAUTH_CURL_H + +#include "libpq-fe.h" + +/* Exported async-auth callbacks. */ +extern PGDLLEXPORT PostgresPollingStatusType pg_fe_run_oauth_flow(PGconn *conn); +extern PGDLLEXPORT void pg_fe_cleanup_oauth_flow(PGconn *conn); + +#endif /* OAUTH_CURL_H */ diff --git a/src/interfaces/libpq-oauth/oauth-utils.c b/src/interfaces/libpq-oauth/oauth-utils.c new file mode 100644 index 0000000000000..45fdc7579f285 --- /dev/null +++ b/src/interfaces/libpq-oauth/oauth-utils.c @@ -0,0 +1,233 @@ +/*------------------------------------------------------------------------- + * + * oauth-utils.c + * + * "Glue" helpers providing a copy of some internal APIs from libpq. At + * some point in the future, we might be able to deduplicate. + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * src/interfaces/libpq-oauth/oauth-utils.c + * + *------------------------------------------------------------------------- + */ + +#include "postgres_fe.h" + +#include + +#include "oauth-utils.h" + +#ifndef USE_DYNAMIC_OAUTH +#error oauth-utils.c is not supported in static builds +#endif + +#ifdef LIBPQ_INT_H +#error do not rely on libpq-int.h in dynamic builds of libpq-oauth +#endif + +/* + * Function pointers set by libpq_oauth_init(). + */ + +pgthreadlock_t pg_g_threadlock; +static libpq_gettext_func libpq_gettext_impl; + +conn_errorMessage_func conn_errorMessage; +conn_oauth_client_id_func conn_oauth_client_id; +conn_oauth_client_secret_func conn_oauth_client_secret; +conn_oauth_discovery_uri_func conn_oauth_discovery_uri; +conn_oauth_issuer_id_func conn_oauth_issuer_id; +conn_oauth_scope_func conn_oauth_scope; +conn_sasl_state_func conn_sasl_state; + +set_conn_altsock_func set_conn_altsock; +set_conn_oauth_token_func set_conn_oauth_token; + +/*- + * Initializes libpq-oauth by setting necessary callbacks. + * + * The current implementation relies on the following private implementation + * details of libpq: + * + * - pg_g_threadlock: protects libcurl initialization if the underlying Curl + * installation is not threadsafe + * + * - libpq_gettext: translates error messages using libpq's message domain + * + * The implementation also needs access to several members of the PGconn struct, + * which are not guaranteed to stay in place across minor versions. Accessors + * (named conn_*) and mutators (named set_conn_*) are injected here. + */ +void +libpq_oauth_init(pgthreadlock_t threadlock_impl, + libpq_gettext_func gettext_impl, + conn_errorMessage_func errmsg_impl, + conn_oauth_client_id_func clientid_impl, + conn_oauth_client_secret_func clientsecret_impl, + conn_oauth_discovery_uri_func discoveryuri_impl, + conn_oauth_issuer_id_func issuerid_impl, + conn_oauth_scope_func scope_impl, + conn_sasl_state_func saslstate_impl, + set_conn_altsock_func setaltsock_impl, + set_conn_oauth_token_func settoken_impl) +{ + pg_g_threadlock = threadlock_impl; + libpq_gettext_impl = gettext_impl; + conn_errorMessage = errmsg_impl; + conn_oauth_client_id = clientid_impl; + conn_oauth_client_secret = clientsecret_impl; + conn_oauth_discovery_uri = discoveryuri_impl; + conn_oauth_issuer_id = issuerid_impl; + conn_oauth_scope = scope_impl; + conn_sasl_state = saslstate_impl; + set_conn_altsock = setaltsock_impl; + set_conn_oauth_token = settoken_impl; +} + +/* + * Append a formatted string to the error message buffer of the given + * connection, after translating it. This is a copy of libpq's internal API. + */ +void +libpq_append_conn_error(PGconn *conn, const char *fmt,...) +{ + int save_errno = errno; + bool done; + va_list args; + PQExpBuffer errorMessage = conn_errorMessage(conn); + + Assert(fmt[strlen(fmt) - 1] != '\n'); + + if (PQExpBufferBroken(errorMessage)) + return; /* already failed */ + + /* Loop in case we have to retry after enlarging the buffer. */ + do + { + errno = save_errno; + va_start(args, fmt); + done = appendPQExpBufferVA(errorMessage, libpq_gettext(fmt), args); + va_end(args); + } while (!done); + + appendPQExpBufferChar(errorMessage, '\n'); +} + +#ifdef ENABLE_NLS + +/* + * A shim that defers to the actual libpq_gettext(). + */ +char * +libpq_gettext(const char *msgid) +{ + if (!libpq_gettext_impl) + { + /* + * Possible if the libpq build didn't enable NLS but the libpq-oauth + * build did. That's an odd mismatch, but we can handle it. + * + * Note that callers of libpq_gettext() have to treat the return value + * as if it were const, because builds without NLS simply pass through + * their argument. + */ + return unconstify(char *, msgid); + } + + return libpq_gettext_impl(msgid); +} + +#endif /* ENABLE_NLS */ + +/* + * Returns true if the PGOAUTHDEBUG=UNSAFE flag is set in the environment. + */ +bool +oauth_unsafe_debugging_enabled(void) +{ + const char *env = getenv("PGOAUTHDEBUG"); + + return (env && strcmp(env, "UNSAFE") == 0); +} + +/* + * Duplicate SOCK_ERRNO* definitions from libpq-int.h, for use by + * pq_block/reset_sigpipe(). + */ +#ifdef WIN32 +#define SOCK_ERRNO (WSAGetLastError()) +#define SOCK_ERRNO_SET(e) WSASetLastError(e) +#else +#define SOCK_ERRNO errno +#define SOCK_ERRNO_SET(e) (errno = (e)) +#endif + +/* + * Block SIGPIPE for this thread. This is a copy of libpq's internal API. + */ +int +pq_block_sigpipe(sigset_t *osigset, bool *sigpipe_pending) +{ + sigset_t sigpipe_sigset; + sigset_t sigset; + + sigemptyset(&sigpipe_sigset); + sigaddset(&sigpipe_sigset, SIGPIPE); + + /* Block SIGPIPE and save previous mask for later reset */ + SOCK_ERRNO_SET(pthread_sigmask(SIG_BLOCK, &sigpipe_sigset, osigset)); + if (SOCK_ERRNO) + return -1; + + /* We can have a pending SIGPIPE only if it was blocked before */ + if (sigismember(osigset, SIGPIPE)) + { + /* Is there a pending SIGPIPE? */ + if (sigpending(&sigset) != 0) + return -1; + + if (sigismember(&sigset, SIGPIPE)) + *sigpipe_pending = true; + else + *sigpipe_pending = false; + } + else + *sigpipe_pending = false; + + return 0; +} + +/* + * Discard any pending SIGPIPE and reset the signal mask. This is a copy of + * libpq's internal API. + */ +void +pq_reset_sigpipe(sigset_t *osigset, bool sigpipe_pending, bool got_epipe) +{ + int save_errno = SOCK_ERRNO; + int signo; + sigset_t sigset; + + /* Clear SIGPIPE only if none was pending */ + if (got_epipe && !sigpipe_pending) + { + if (sigpending(&sigset) == 0 && + sigismember(&sigset, SIGPIPE)) + { + sigset_t sigpipe_sigset; + + sigemptyset(&sigpipe_sigset); + sigaddset(&sigpipe_sigset, SIGPIPE); + + sigwait(&sigpipe_sigset, &signo); + } + } + + /* Restore saved block mask */ + pthread_sigmask(SIG_SETMASK, osigset, NULL); + + SOCK_ERRNO_SET(save_errno); +} diff --git a/src/interfaces/libpq-oauth/oauth-utils.h b/src/interfaces/libpq-oauth/oauth-utils.h new file mode 100644 index 0000000000000..f4ffefef208f5 --- /dev/null +++ b/src/interfaces/libpq-oauth/oauth-utils.h @@ -0,0 +1,94 @@ +/*------------------------------------------------------------------------- + * + * oauth-utils.h + * + * Definitions providing missing libpq internal APIs + * + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/interfaces/libpq-oauth/oauth-utils.h + * + *------------------------------------------------------------------------- + */ + +#ifndef OAUTH_UTILS_H +#define OAUTH_UTILS_H + +#include "fe-auth-oauth.h" +#include "libpq-fe.h" +#include "pqexpbuffer.h" + +/* + * A bank of callbacks to safely access members of PGconn, which are all passed + * to libpq_oauth_init() by libpq. + * + * Keep these aligned with the definitions in fe-auth-oauth.c as well as the + * static declarations in oauth-curl.c. + */ +#define DECLARE_GETTER(TYPE, MEMBER) \ + typedef TYPE (*conn_ ## MEMBER ## _func) (PGconn *conn); \ + extern conn_ ## MEMBER ## _func conn_ ## MEMBER; + +#define DECLARE_SETTER(TYPE, MEMBER) \ + typedef void (*set_conn_ ## MEMBER ## _func) (PGconn *conn, TYPE val); \ + extern set_conn_ ## MEMBER ## _func set_conn_ ## MEMBER; + +DECLARE_GETTER(PQExpBuffer, errorMessage); +DECLARE_GETTER(char *, oauth_client_id); +DECLARE_GETTER(char *, oauth_client_secret); +DECLARE_GETTER(char *, oauth_discovery_uri); +DECLARE_GETTER(char *, oauth_issuer_id); +DECLARE_GETTER(char *, oauth_scope); +DECLARE_GETTER(fe_oauth_state *, sasl_state); + +DECLARE_SETTER(pgsocket, altsock); +DECLARE_SETTER(char *, oauth_token); + +#undef DECLARE_GETTER +#undef DECLARE_SETTER + +typedef char *(*libpq_gettext_func) (const char *msgid); + +/* Initializes libpq-oauth. */ +extern PGDLLEXPORT void libpq_oauth_init(pgthreadlock_t threadlock, + libpq_gettext_func gettext_impl, + conn_errorMessage_func errmsg_impl, + conn_oauth_client_id_func clientid_impl, + conn_oauth_client_secret_func clientsecret_impl, + conn_oauth_discovery_uri_func discoveryuri_impl, + conn_oauth_issuer_id_func issuerid_impl, + conn_oauth_scope_func scope_impl, + conn_sasl_state_func saslstate_impl, + set_conn_altsock_func setaltsock_impl, + set_conn_oauth_token_func settoken_impl); + +/* + * Duplicated APIs, copied from libpq (primarily libpq-int.h, which we cannot + * depend on here). + */ + +typedef enum +{ + PG_BOOL_UNKNOWN = 0, /* Currently unknown */ + PG_BOOL_YES, /* Yes (true) */ + PG_BOOL_NO /* No (false) */ +} PGTernaryBool; + +extern void libpq_append_conn_error(PGconn *conn, const char *fmt,...) pg_attribute_printf(2, 3); +extern bool oauth_unsafe_debugging_enabled(void); +extern int pq_block_sigpipe(sigset_t *osigset, bool *sigpipe_pending); +extern void pq_reset_sigpipe(sigset_t *osigset, bool sigpipe_pending, bool got_epipe); + +#ifdef ENABLE_NLS +extern char *libpq_gettext(const char *msgid) pg_attribute_format_arg(1); +#else +#define libpq_gettext(x) (x) +#endif + +extern pgthreadlock_t pg_g_threadlock; + +#define pglock_thread() pg_g_threadlock(true) +#define pgunlock_thread() pg_g_threadlock(false) + +#endif /* OAUTH_UTILS_H */ diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index 90b0b65db6f0a..c6fe5fec7f64d 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -31,7 +31,6 @@ endif OBJS = \ $(WIN32RES) \ - fe-auth-oauth.o \ fe-auth-scram.o \ fe-cancel.o \ fe-connect.o \ @@ -64,9 +63,11 @@ OBJS += \ fe-secure-gssapi.o endif -ifeq ($(with_libcurl),yes) -OBJS += fe-auth-oauth-curl.o -endif +# The OAuth implementation differs depending on the type of library being built. +OBJS_STATIC = fe-auth-oauth.o + +fe-auth-oauth_shlib.o: override CPPFLAGS_SHLIB += -DUSE_DYNAMIC_OAUTH +OBJS_SHLIB = fe-auth-oauth_shlib.o ifeq ($(PORTNAME), cygwin) override shlib = cyg$(NAME)$(DLSUFFIX) @@ -86,7 +87,7 @@ endif # that are built correctly for use in a shlib. SHLIB_LINK_INTERNAL = -lpgcommon_shlib -lpgport_shlib ifneq ($(PORTNAME), win32) -SHLIB_LINK += $(filter -lcrypt -ldes -lcom_err -lcrypto -lk5crypto -lkrb5 -lgssapi_krb5 -lgss -lgssapi -lssl -lcurl -lsocket -lnsl -lresolv -lintl -lm, $(LIBS)) $(LDAP_LIBS_FE) $(PTHREAD_LIBS) +SHLIB_LINK += $(filter -lcrypt -ldes -lcom_err -lcrypto -lk5crypto -lkrb5 -lgssapi_krb5 -lgss -lgssapi -lssl -lsocket -lnsl -lresolv -lintl -lm, $(LIBS)) $(LDAP_LIBS_FE) $(PTHREAD_LIBS) else SHLIB_LINK += $(filter -lcrypt -ldes -lcom_err -lcrypto -lk5crypto -lkrb5 -lgssapi32 -lssl -lsocket -lnsl -lresolv -lintl -lm $(PTHREAD_LIBS), $(LIBS)) $(LDAP_LIBS_FE) endif @@ -101,12 +102,26 @@ ifeq ($(with_ssl),openssl) PKG_CONFIG_REQUIRES_PRIVATE = libssl, libcrypto endif +ifeq ($(with_libcurl),yes) +# libpq.so doesn't link against libcurl, but libpq.a needs libpq-oauth, and +# libpq-oauth needs libcurl. Put both into *.private. +PKG_CONFIG_REQUIRES_PRIVATE += libcurl +%.pc: override SHLIB_LINK_INTERNAL += -lpq-oauth +endif + all: all-lib libpq-refs-stamp # Shared library stuff include $(top_srcdir)/src/Makefile.shlib backend_src = $(top_srcdir)/src/backend +# Add shlib-/stlib-specific objects. +$(shlib): override OBJS += $(OBJS_SHLIB) +$(shlib): $(OBJS_SHLIB) + +$(stlib): override OBJS += $(OBJS_STATIC) +$(stlib): $(OBJS_STATIC) + # Check for functions that libpq must not call, currently just exit(). # (Ideally we'd reject abort() too, but there are various scenarios where # build toolchains insert abort() calls, e.g. to implement assert().) @@ -115,8 +130,6 @@ backend_src = $(top_srcdir)/src/backend # which seems to insert references to that even in pure C code. Excluding # __tsan_func_exit is necessary when using ThreadSanitizer data race detector # which use this function for instrumentation of function exit. -# libcurl registers an exit handler in the memory debugging code when running -# with LeakSanitizer. # Skip the test when profiling, as gcc may insert exit() calls for that. # Also skip the test on platforms where libpq infrastructure may be provided # by statically-linked libraries, as we can't expect them to honor this @@ -124,7 +137,7 @@ backend_src = $(top_srcdir)/src/backend libpq-refs-stamp: $(shlib) ifneq ($(enable_coverage), yes) ifeq (,$(filter solaris,$(PORTNAME))) - @if nm -A -u $< 2>/dev/null | grep -v -e __cxa_atexit -e __tsan_func_exit -e _atexit | grep exit; then \ + @if nm -A -u $< 2>/dev/null | grep -v -e __cxa_atexit -e __tsan_func_exit | grep exit; then \ echo 'libpq must not be calling any function which invokes exit'; exit 1; \ fi endif @@ -138,6 +151,11 @@ fe-misc.o: fe-misc.c $(top_builddir)/src/port/pg_config_paths.h $(top_builddir)/src/port/pg_config_paths.h: $(MAKE) -C $(top_builddir)/src/port pg_config_paths.h +# Use src/common/Makefile's trick for tracking dependencies of shlib-specific +# objects. +%_shlib.o: %.c %.o + $(CC) $(CFLAGS) $(CFLAGS_SL) $(CPPFLAGS) $(CPPFLAGS_SHLIB) -c $< -o $@ + install: all installdirs install-lib $(INSTALL_DATA) $(srcdir)/libpq-fe.h '$(DESTDIR)$(includedir)' $(INSTALL_DATA) $(srcdir)/libpq-events.h '$(DESTDIR)$(includedir)' @@ -171,6 +189,6 @@ uninstall: uninstall-lib clean distclean: clean-lib $(MAKE) -C test $@ rm -rf tmp_check - rm -f $(OBJS) pthread.h libpq-refs-stamp + rm -f $(OBJS) $(OBJS_SHLIB) $(OBJS_STATIC) pthread.h libpq-refs-stamp # Might be left over from a Win32 client-only build rm -f pg_config_paths.h diff --git a/src/interfaces/libpq/exports.txt b/src/interfaces/libpq/exports.txt index d514376685887..0625cf39e9af3 100644 --- a/src/interfaces/libpq/exports.txt +++ b/src/interfaces/libpq/exports.txt @@ -210,3 +210,4 @@ PQsetAuthDataHook 207 PQgetAuthDataHook 208 PQdefaultAuthDataHook 209 PQfullProtocolVersion 210 +appendPQExpBufferVA 211 diff --git a/src/interfaces/libpq/fe-auth-oauth.c b/src/interfaces/libpq/fe-auth-oauth.c index cf1a25e2ccc7d..9fbff89a21d91 100644 --- a/src/interfaces/libpq/fe-auth-oauth.c +++ b/src/interfaces/libpq/fe-auth-oauth.c @@ -15,6 +15,10 @@ #include "postgres_fe.h" +#ifdef USE_DYNAMIC_OAUTH +#include +#endif + #include "common/base64.h" #include "common/hmac.h" #include "common/jsonapi.h" @@ -22,6 +26,7 @@ #include "fe-auth.h" #include "fe-auth-oauth.h" #include "mb/pg_wchar.h" +#include "pg_config_paths.h" /* The exported OAuth callback mechanism. */ static void *oauth_init(PGconn *conn, const char *password, @@ -476,7 +481,7 @@ issuer_from_well_known_uri(PGconn *conn, const char *wkuri) static bool handle_oauth_sasl_error(PGconn *conn, const char *msg, int msglen) { - JsonLexContext lex = {0}; + JsonLexContext *lex; JsonSemAction sem = {0}; JsonParseErrorType err; struct json_ctx ctx = {0}; @@ -504,8 +509,8 @@ handle_oauth_sasl_error(PGconn *conn, const char *msg, int msglen) return false; } - makeJsonLexContextCstringLen(&lex, msg, msglen, PG_UTF8, true); - setJsonLexContextOwnsTokens(&lex, true); /* must not leak on error */ + lex = makeJsonLexContextCstringLen(NULL, msg, msglen, PG_UTF8, true); + setJsonLexContextOwnsTokens(lex, true); /* must not leak on error */ initPQExpBuffer(&ctx.errbuf); sem.semstate = &ctx; @@ -516,7 +521,7 @@ handle_oauth_sasl_error(PGconn *conn, const char *msg, int msglen) sem.array_start = oauth_json_array_start; sem.scalar = oauth_json_scalar; - err = pg_parse_json(&lex, &sem); + err = pg_parse_json(lex, &sem); if (err == JSON_SEM_ACTION_FAILED) { @@ -535,7 +540,7 @@ handle_oauth_sasl_error(PGconn *conn, const char *msg, int msglen) } } else if (err != JSON_SUCCESS) - errmsg = json_errdetail(err, &lex); + errmsg = json_errdetail(err, lex); if (errmsg) libpq_append_conn_error(conn, @@ -544,7 +549,7 @@ handle_oauth_sasl_error(PGconn *conn, const char *msg, int msglen) /* Don't need the error buffer or the JSON lexer anymore. */ termPQExpBuffer(&ctx.errbuf); - freeJsonLexContext(&lex); + freeJsonLexContext(lex); if (errmsg) goto cleanup; @@ -721,6 +726,218 @@ cleanup_user_oauth_flow(PGconn *conn) state->async_ctx = NULL; } +/*------------- + * Builtin Flow + * + * There are three potential implementations of use_builtin_flow: + * + * 1) If the OAuth client is disabled at configuration time, return false. + * Dependent clients must provide their own flow. + * 2) If the OAuth client is enabled and USE_DYNAMIC_OAUTH is defined, dlopen() + * the libpq-oauth plugin and use its implementation. + * 3) Otherwise, use flow callbacks that are statically linked into the + * executable. + */ + +#if !defined(USE_LIBCURL) + +/* + * This configuration doesn't support the builtin flow. + */ + +bool +use_builtin_flow(PGconn *conn, fe_oauth_state *state) +{ + return false; +} + +#elif defined(USE_DYNAMIC_OAUTH) + +/* + * Use the builtin flow in the libpq-oauth plugin, which is loaded at runtime. + */ + +typedef char *(*libpq_gettext_func) (const char *msgid); + +/* + * Define accessor/mutator shims to inject into libpq-oauth, so that it doesn't + * depend on the offsets within PGconn. (These have changed during minor version + * updates in the past.) + */ + +#define DEFINE_GETTER(TYPE, MEMBER) \ + typedef TYPE (*conn_ ## MEMBER ## _func) (PGconn *conn); \ + static TYPE conn_ ## MEMBER(PGconn *conn) { return conn->MEMBER; } + +/* Like DEFINE_GETTER, but returns a pointer to the member. */ +#define DEFINE_GETTER_P(TYPE, MEMBER) \ + typedef TYPE (*conn_ ## MEMBER ## _func) (PGconn *conn); \ + static TYPE conn_ ## MEMBER(PGconn *conn) { return &conn->MEMBER; } + +#define DEFINE_SETTER(TYPE, MEMBER) \ + typedef void (*set_conn_ ## MEMBER ## _func) (PGconn *conn, TYPE val); \ + static void set_conn_ ## MEMBER(PGconn *conn, TYPE val) { conn->MEMBER = val; } + +DEFINE_GETTER_P(PQExpBuffer, errorMessage); +DEFINE_GETTER(char *, oauth_client_id); +DEFINE_GETTER(char *, oauth_client_secret); +DEFINE_GETTER(char *, oauth_discovery_uri); +DEFINE_GETTER(char *, oauth_issuer_id); +DEFINE_GETTER(char *, oauth_scope); +DEFINE_GETTER(fe_oauth_state *, sasl_state); + +DEFINE_SETTER(pgsocket, altsock); +DEFINE_SETTER(char *, oauth_token); + +/* + * Loads the libpq-oauth plugin via dlopen(), initializes it, and plugs its + * callbacks into the connection's async auth handlers. + * + * Failure to load here results in a relatively quiet connection error, to + * handle the use case where the build supports loading a flow but a user does + * not want to install it. Troubleshooting of linker/loader failures can be done + * via PGOAUTHDEBUG. + */ +bool +use_builtin_flow(PGconn *conn, fe_oauth_state *state) +{ + static bool initialized = false; + static pthread_mutex_t init_mutex = PTHREAD_MUTEX_INITIALIZER; + int lockerr; + + void (*init) (pgthreadlock_t threadlock, + libpq_gettext_func gettext_impl, + conn_errorMessage_func errmsg_impl, + conn_oauth_client_id_func clientid_impl, + conn_oauth_client_secret_func clientsecret_impl, + conn_oauth_discovery_uri_func discoveryuri_impl, + conn_oauth_issuer_id_func issuerid_impl, + conn_oauth_scope_func scope_impl, + conn_sasl_state_func saslstate_impl, + set_conn_altsock_func setaltsock_impl, + set_conn_oauth_token_func settoken_impl); + PostgresPollingStatusType (*flow) (PGconn *conn); + void (*cleanup) (PGconn *conn); + + /* + * On macOS only, load the module using its absolute install path; the + * standard search behavior is not very helpful for this use case. Unlike + * on other platforms, DYLD_LIBRARY_PATH is used as a fallback even with + * absolute paths (modulo SIP effects), so tests can continue to work. + * + * On the other platforms, load the module using only the basename, to + * rely on the runtime linker's standard search behavior. + */ + const char *const module_name = +#if defined(__darwin__) + LIBDIR "/libpq-oauth-" PG_MAJORVERSION DLSUFFIX; +#else + "libpq-oauth-" PG_MAJORVERSION DLSUFFIX; +#endif + + state->builtin_flow = dlopen(module_name, RTLD_NOW | RTLD_LOCAL); + if (!state->builtin_flow) + { + /* + * For end users, this probably isn't an error condition, it just + * means the flow isn't installed. Developers and package maintainers + * may want to debug this via the PGOAUTHDEBUG envvar, though. + * + * Note that POSIX dlerror() isn't guaranteed to be threadsafe. + */ + if (oauth_unsafe_debugging_enabled()) + fprintf(stderr, "failed dlopen for libpq-oauth: %s\n", dlerror()); + + return false; + } + + if ((init = dlsym(state->builtin_flow, "libpq_oauth_init")) == NULL + || (flow = dlsym(state->builtin_flow, "pg_fe_run_oauth_flow")) == NULL + || (cleanup = dlsym(state->builtin_flow, "pg_fe_cleanup_oauth_flow")) == NULL) + { + /* + * This is more of an error condition than the one above, but due to + * the dlerror() threadsafety issue, lock it behind PGOAUTHDEBUG too. + */ + if (oauth_unsafe_debugging_enabled()) + fprintf(stderr, "failed dlsym for libpq-oauth: %s\n", dlerror()); + + dlclose(state->builtin_flow); + return false; + } + + /* + * Past this point, we do not unload the module. It stays in the process + * permanently. + */ + + /* + * We need to inject necessary function pointers into the module. This + * only needs to be done once -- even if the pointers are constant, + * assigning them while another thread is executing the flows feels like + * tempting fate. + */ + if ((lockerr = pthread_mutex_lock(&init_mutex)) != 0) + { + /* Should not happen... but don't continue if it does. */ + Assert(false); + + libpq_append_conn_error(conn, "failed to lock mutex (%d)", lockerr); + return false; + } + + if (!initialized) + { + init(pg_g_threadlock, +#ifdef ENABLE_NLS + libpq_gettext, +#else + NULL, +#endif + conn_errorMessage, + conn_oauth_client_id, + conn_oauth_client_secret, + conn_oauth_discovery_uri, + conn_oauth_issuer_id, + conn_oauth_scope, + conn_sasl_state, + set_conn_altsock, + set_conn_oauth_token); + + initialized = true; + } + + pthread_mutex_unlock(&init_mutex); + + /* Set our asynchronous callbacks. */ + conn->async_auth = flow; + conn->cleanup_async_auth = cleanup; + + return true; +} + +#else + +/* + * Use the builtin flow in libpq-oauth.a (see libpq-oauth/oauth-curl.h). + */ + +extern PostgresPollingStatusType pg_fe_run_oauth_flow(PGconn *conn); +extern void pg_fe_cleanup_oauth_flow(PGconn *conn); + +bool +use_builtin_flow(PGconn *conn, fe_oauth_state *state) +{ + /* Set our asynchronous callbacks. */ + conn->async_auth = pg_fe_run_oauth_flow; + conn->cleanup_async_auth = pg_fe_cleanup_oauth_flow; + + return true; +} + +#endif /* USE_LIBCURL */ + + /* * Chooses an OAuth client flow for the connection, which will retrieve a Bearer * token for presentation to the server. @@ -792,18 +1009,10 @@ setup_token_request(PGconn *conn, fe_oauth_state *state) libpq_append_conn_error(conn, "user-defined OAuth flow failed"); goto fail; } - else + else if (!use_builtin_flow(conn, state)) { -#if USE_LIBCURL - /* Hand off to our built-in OAuth flow. */ - conn->async_auth = pg_fe_run_oauth_flow; - conn->cleanup_async_auth = pg_fe_cleanup_oauth_flow; - -#else - libpq_append_conn_error(conn, "no custom OAuth flows are available, and libpq was not built with libcurl support"); + libpq_append_conn_error(conn, "no OAuth flows are available (try installing the libpq-oauth package)"); goto fail; - -#endif } return true; diff --git a/src/interfaces/libpq/fe-auth-oauth.h b/src/interfaces/libpq/fe-auth-oauth.h index 3f1a7503a0133..0d59e91605bbe 100644 --- a/src/interfaces/libpq/fe-auth-oauth.h +++ b/src/interfaces/libpq/fe-auth-oauth.h @@ -15,8 +15,8 @@ #ifndef FE_AUTH_OAUTH_H #define FE_AUTH_OAUTH_H +#include "fe-auth-sasl.h" #include "libpq-fe.h" -#include "libpq-int.h" enum fe_oauth_step @@ -27,18 +27,24 @@ enum fe_oauth_step FE_OAUTH_SERVER_ERROR, }; +/* + * This struct is exported to the libpq-oauth module. If changes are needed + * during backports to stable branches, please keep ABI compatibility (no + * changes to existing members, add new members at the end, etc.). + */ typedef struct { enum fe_oauth_step step; PGconn *conn; void *async_ctx; + + void *builtin_flow; } fe_oauth_state; -extern PostgresPollingStatusType pg_fe_run_oauth_flow(PGconn *conn); -extern void pg_fe_cleanup_oauth_flow(PGconn *conn); extern void pqClearOAuthToken(PGconn *conn); extern bool oauth_unsafe_debugging_enabled(void); +extern bool use_builtin_flow(PGconn *conn, fe_oauth_state *state); /* Mechanisms in fe-auth-oauth.c */ extern const pg_fe_sasl_mech pg_oauth_mech; diff --git a/src/interfaces/libpq/fe-auth-scram.c b/src/interfaces/libpq/fe-auth-scram.c index fe18615197f69..f6d6a5aa977b8 100644 --- a/src/interfaces/libpq/fe-auth-scram.c +++ b/src/interfaces/libpq/fe-auth-scram.c @@ -70,14 +70,14 @@ typedef struct /* These come from the server-first message */ char *server_first_message; - char *salt; + uint8 *salt; int saltlen; int iterations; char *nonce; /* These come from the server-final message */ char *server_final_message; - char ServerSignature[SCRAM_MAX_KEY_LEN]; + uint8 ServerSignature[SCRAM_MAX_KEY_LEN]; } fe_scram_state; static bool read_server_first_message(fe_scram_state *state, char *input); @@ -350,7 +350,7 @@ static char * build_client_first_message(fe_scram_state *state) { PGconn *conn = state->conn; - char raw_nonce[SCRAM_RAW_NONCE_LEN + 1]; + uint8 raw_nonce[SCRAM_RAW_NONCE_LEN + 1]; char *result; int channel_info_len; int encoded_len; @@ -513,7 +513,7 @@ build_client_final_message(fe_scram_state *state) free(cbind_input); goto oom_error; } - encoded_cbind_len = pg_b64_encode(cbind_input, cbind_input_len, + encoded_cbind_len = pg_b64_encode((uint8 *) cbind_input, cbind_input_len, buf.data + buf.len, encoded_cbind_len); if (encoded_cbind_len < 0) @@ -574,7 +574,7 @@ build_client_final_message(fe_scram_state *state) encoded_len = pg_b64_enc_len(state->key_length); if (!enlargePQExpBuffer(&buf, encoded_len)) goto oom_error; - encoded_len = pg_b64_encode((char *) client_proof, + encoded_len = pg_b64_encode(client_proof, state->key_length, buf.data + buf.len, encoded_len); @@ -694,7 +694,7 @@ read_server_final_message(fe_scram_state *state, char *input) { PGconn *conn = state->conn; char *encoded_server_signature; - char *decoded_server_signature; + uint8 *decoded_server_signature; int server_signature_len; state->server_final_message = strdup(input); @@ -916,7 +916,7 @@ pg_fe_scram_build_secret(const char *password, int iterations, const char **errs { char *prep_password; pg_saslprep_rc rc; - char saltbuf[SCRAM_DEFAULT_SALT_LEN]; + uint8 saltbuf[SCRAM_DEFAULT_SALT_LEN]; char *result; /* diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c index ec7a9236044ec..84a042269dec9 100644 --- a/src/interfaces/libpq/fe-auth.c +++ b/src/interfaces/libpq/fe-auth.c @@ -798,7 +798,7 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq) int ret; char *crypt_pwd = NULL; const char *pwd_to_send; - char md5Salt[4]; + uint8 md5Salt[4]; /* Read the salt from the AuthenticationMD5Password message. */ if (areq == AUTH_REQ_MD5) @@ -829,7 +829,7 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq) } crypt_pwd2 = crypt_pwd + MD5_PASSWD_LEN + 1; - if (!pg_md5_encrypt(password, conn->pguser, + if (!pg_md5_encrypt(password, (uint8 *) conn->pguser, strlen(conn->pguser), crypt_pwd2, &errstr)) { @@ -1369,7 +1369,7 @@ PQencryptPassword(const char *passwd, const char *user) if (!crypt_pwd) return NULL; - if (!pg_md5_encrypt(passwd, user, strlen(user), crypt_pwd, &errstr)) + if (!pg_md5_encrypt(passwd, (uint8 *) user, strlen(user), crypt_pwd, &errstr)) { free(crypt_pwd); return NULL; @@ -1482,7 +1482,7 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user, { const char *errstr = NULL; - if (!pg_md5_encrypt(passwd, user, strlen(user), crypt_pwd, &errstr)) + if (!pg_md5_encrypt(passwd, (uint8 *) user, strlen(user), crypt_pwd, &errstr)) { libpq_append_conn_error(conn, "could not encrypt password: %s", errstr); free(crypt_pwd); diff --git a/src/interfaces/libpq/fe-cancel.c b/src/interfaces/libpq/fe-cancel.c index 7ebaa335bbae2..8c7c198a53071 100644 --- a/src/interfaces/libpq/fe-cancel.c +++ b/src/interfaces/libpq/fe-cancel.c @@ -1,7 +1,7 @@ /*------------------------------------------------------------------------- * * fe-cancel.c - * functions related to setting up a connection to the backend + * functions related to query cancellation * * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -41,7 +41,6 @@ struct pg_cancel { SockAddr raddr; /* Remote address */ int be_pid; /* PID of to-be-canceled backend */ - int be_key; /* cancel key of to-be-canceled backend */ int pgtcp_user_timeout; /* tcp user timeout */ int keepalives; /* use TCP keepalives? */ int keepalives_idle; /* time between TCP keepalives */ @@ -49,6 +48,10 @@ struct pg_cancel * retransmits */ int keepalives_count; /* maximum number of TCP keepalive * retransmits */ + + /* Pre-constructed cancel request packet starts here */ + int32 cancel_pkt_len; /* in network byte order */ + char cancel_req[FLEXIBLE_ARRAY_MEMBER]; /* CancelRequestPacket */ }; @@ -83,6 +86,13 @@ PQcancelCreate(PGconn *conn) return (PGcancelConn *) cancelConn; } + /* Check that we have received a cancellation key */ + if (conn->be_cancel_key_len == 0) + { + libpq_append_conn_error(cancelConn, "no cancellation key received"); + return (PGcancelConn *) cancelConn; + } + /* * Indicate that this connection is used to send a cancellation */ @@ -101,7 +111,15 @@ PQcancelCreate(PGconn *conn) * Copy cancellation token data from the original connection */ cancelConn->be_pid = conn->be_pid; - cancelConn->be_key = conn->be_key; + if (conn->be_cancel_key != NULL) + { + cancelConn->be_cancel_key = malloc(conn->be_cancel_key_len); + if (!conn->be_cancel_key) + goto oom_error; + memcpy(cancelConn->be_cancel_key, conn->be_cancel_key, conn->be_cancel_key_len); + } + cancelConn->be_cancel_key_len = conn->be_cancel_key_len; + cancelConn->pversion = conn->pversion; /* * Cancel requests should not iterate over all possible hosts. The request @@ -349,6 +367,8 @@ PGcancel * PQgetCancel(PGconn *conn) { PGcancel *cancel; + int cancel_req_len; + CancelRequestPacket *req; if (!conn) return NULL; @@ -356,13 +376,17 @@ PQgetCancel(PGconn *conn) if (conn->sock == PGINVALID_SOCKET) return NULL; - cancel = malloc(sizeof(PGcancel)); + /* Check that we have received a cancellation key */ + if (conn->be_cancel_key_len == 0) + return NULL; + + cancel_req_len = offsetof(CancelRequestPacket, cancelAuthCode) + conn->be_cancel_key_len; + cancel = malloc(offsetof(PGcancel, cancel_req) + cancel_req_len); if (cancel == NULL) return NULL; memcpy(&cancel->raddr, &conn->raddr, sizeof(SockAddr)); - cancel->be_pid = conn->be_pid; - cancel->be_key = conn->be_key; + /* We use -1 to indicate an unset connection option */ cancel->pgtcp_user_timeout = -1; cancel->keepalives = -1; @@ -405,6 +429,13 @@ PQgetCancel(PGconn *conn) goto fail; } + req = (CancelRequestPacket *) &cancel->cancel_req; + req->cancelRequestCode = (MsgType) pg_hton32(CANCEL_REQUEST_CODE); + req->backendPID = pg_hton32(conn->be_pid); + memcpy(req->cancelAuthCode, conn->be_cancel_key, conn->be_cancel_key_len); + /* include the length field itself in the length */ + cancel->cancel_pkt_len = pg_hton32(cancel_req_len + 4); + return cancel; fail: @@ -412,6 +443,42 @@ PQgetCancel(PGconn *conn) return NULL; } +/* + * PQsendCancelRequest + * Submit a CancelRequest message, but don't wait for it to finish + * + * Returns: 1 if successfully submitted + * 0 if error (conn->errorMessage is set) + */ +int +PQsendCancelRequest(PGconn *cancelConn) +{ + CancelRequestPacket req; + + /* Start the message. */ + if (pqPutMsgStart(0, cancelConn)) + return STATUS_ERROR; + + /* Send the message body. */ + memset(&req, 0, offsetof(CancelRequestPacket, cancelAuthCode)); + req.cancelRequestCode = (MsgType) pg_hton32(CANCEL_REQUEST_CODE); + req.backendPID = pg_hton32(cancelConn->be_pid); + if (pqPutnchar(&req, offsetof(CancelRequestPacket, cancelAuthCode), cancelConn)) + return STATUS_ERROR; + if (pqPutnchar(cancelConn->be_cancel_key, cancelConn->be_cancel_key_len, cancelConn)) + return STATUS_ERROR; + + /* Finish the message. */ + if (pqPutMsgEnd(cancelConn)) + return STATUS_ERROR; + + /* Flush to ensure backend gets it. */ + if (pqFlush(cancelConn)) + return STATUS_ERROR; + + return STATUS_OK; +} + /* PQfreeCancel: free a cancel structure */ void PQfreeCancel(PGcancel *cancel) @@ -465,11 +532,8 @@ PQcancel(PGcancel *cancel, char *errbuf, int errbufsize) int save_errno = SOCK_ERRNO; pgsocket tmpsock = PGINVALID_SOCKET; int maxlen; - struct - { - uint32 packetlen; - CancelRequestPacket cp; - } crp; + char recvbuf; + int cancel_pkt_len; if (!cancel) { @@ -571,15 +635,15 @@ PQcancel(PGcancel *cancel, char *errbuf, int errbufsize) goto cancel_errReturn; } - /* Create and send the cancel request packet. */ - - crp.packetlen = pg_hton32((uint32) sizeof(crp)); - crp.cp.cancelRequestCode = (MsgType) pg_hton32(CANCEL_REQUEST_CODE); - crp.cp.backendPID = pg_hton32(cancel->be_pid); - crp.cp.cancelAuthCode = pg_hton32(cancel->be_key); + cancel_pkt_len = pg_ntoh32(cancel->cancel_pkt_len); retry4: - if (send(tmpsock, (char *) &crp, sizeof(crp), 0) != (int) sizeof(crp)) + + /* + * Send the cancel request packet. It starts with the message length at + * cancel_pkt_len, followed by the actual packet. + */ + if (send(tmpsock, (char *) &cancel->cancel_pkt_len, cancel_pkt_len, 0) != cancel_pkt_len) { if (SOCK_ERRNO == EINTR) /* Interrupted system call - we'll just try again */ @@ -596,7 +660,7 @@ PQcancel(PGcancel *cancel, char *errbuf, int errbufsize) * read to obtain any data, we are just waiting for EOF to be signaled. */ retry5: - if (recv(tmpsock, (char *) &crp, 1, 0) < 0) + if (recv(tmpsock, &recvbuf, 1, 0) < 0) { if (SOCK_ERRNO == EINTR) /* Interrupted system call - we'll just try again */ diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index d5051f5e820f8..ccb01aad36109 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -158,6 +158,12 @@ static int ldapServiceLookup(const char *purl, PQconninfoOption *options, * "*" Password field - hide value * "D" Debug option - don't show by default * + * NB: Server-side clients -- dblink, postgres_fdw, libpqrcv -- use dispchar to + * determine which options to expose to end users, and how. Changing dispchar + * has compatibility and security implications for those clients. For example, + * postgres_fdw will attach a "*" option to USER MAPPING instead of the default + * SERVER, and it disallows setting "D" options entirely. + * * PQconninfoOptions[] is a constant static array that we use to initialize * a dynamically allocated working copy. All the "val" fields in * PQconninfoOptions[] *must* be NULL. In a working copy, non-null "val" @@ -325,6 +331,16 @@ static const internalPQconninfoOption PQconninfoOptions[] = { "Require-Auth", "", 14, /* sizeof("scram-sha-256") == 14 */ offsetof(struct pg_conn, require_auth)}, + {"min_protocol_version", "PGMINPROTOCOLVERSION", + NULL, NULL, + "Min-Protocol-Version", "", 6, /* sizeof("latest") = 6 */ + offsetof(struct pg_conn, min_protocol_version)}, + + {"max_protocol_version", "PGMAXPROTOCOLVERSION", + NULL, NULL, + "Max-Protocol-Version", "", 6, /* sizeof("latest") = 6 */ + offsetof(struct pg_conn, max_protocol_version)}, + {"ssl_min_protocol_version", "PGSSLMINPROTOCOLVERSION", "TLSv1.2", NULL, "SSL-Minimum-Protocol-Version", "", 8, /* sizeof("TLSv1.x") == 8 */ offsetof(struct pg_conn, ssl_min_protocol_version)}, @@ -384,13 +400,17 @@ static const internalPQconninfoOption PQconninfoOptions[] = { offsetof(struct pg_conn, oauth_client_id)}, {"oauth_client_secret", NULL, NULL, NULL, - "OAuth-Client-Secret", "", 40, + "OAuth-Client-Secret", "*", 40, offsetof(struct pg_conn, oauth_client_secret)}, {"oauth_scope", NULL, NULL, NULL, "OAuth-Scope", "", 15, offsetof(struct pg_conn, oauth_scope)}, + {"sslkeylogfile", NULL, NULL, NULL, + "SSL-Key-Log-File", "D", 64, + offsetof(struct pg_conn, sslkeylogfile)}, + /* Terminating entry --- MUST BE LAST */ {NULL, NULL, NULL, NULL, NULL, NULL, 0} @@ -483,6 +503,7 @@ static void pgpassfileWarning(PGconn *conn); static void default_threadlock(int acquire); static bool sslVerifyProtocolVersion(const char *version); static bool sslVerifyProtocolRange(const char *min, const char *max); +static bool pqParseProtocolVersion(const char *value, ProtocolVersion *result, PGconn *conn, const char *context); /* global variable because fe-auth.c needs to access it */ @@ -667,6 +688,7 @@ pqDropServerData(PGconn *conn) /* Reset assorted other per-connection state */ conn->last_sqlstate[0] = '\0'; + conn->pversion_negotiated = false; conn->auth_req_received = false; conn->client_finished_auth = false; conn->password_needed = false; @@ -677,14 +699,19 @@ pqDropServerData(PGconn *conn) conn->oauth_want_retry = false; /* - * Cancel connections need to retain their be_pid and be_key across + * Cancel connections need to retain their be_pid and be_cancel_key across * PQcancelReset invocations, otherwise they would not have access to the * secret token of the connection they are supposed to cancel. */ if (!conn->cancelRequest) { conn->be_pid = 0; - conn->be_key = 0; + if (conn->be_cancel_key != NULL) + { + free(conn->be_cancel_key); + conn->be_cancel_key = NULL; + } + conn->be_cancel_key_len = 0; } } @@ -1812,7 +1839,7 @@ pqConnectOptions2(PGconn *conn) * sslmode='allow' or sslmode='disable' either. If a user goes through * the trouble of setting sslnegotiation='direct', they probably * intend to use SSL, and sslmode=disable or allow is probably a user - * user mistake anyway. + * mistake anyway. */ if (conn->sslnegotiation[0] == 'd' && conn->sslmode[0] != 'r' && conn->sslmode[0] != 'v') @@ -2000,13 +2027,11 @@ pqConnectOptions2(PGconn *conn) if (len < 0) { libpq_append_conn_error(conn, "invalid SCRAM client key"); - free(conn->scram_client_key_binary); return false; } if (len != SCRAM_MAX_KEY_LEN) { libpq_append_conn_error(conn, "invalid SCRAM client key length: %d", len); - free(conn->scram_client_key_binary); return false; } conn->scram_client_key_len = len; @@ -2025,13 +2050,11 @@ pqConnectOptions2(PGconn *conn) if (len < 0) { libpq_append_conn_error(conn, "invalid SCRAM server key"); - free(conn->scram_server_key_binary); return false; } if (len != SCRAM_MAX_KEY_LEN) { libpq_append_conn_error(conn, "invalid SCRAM server key length: %d", len); - free(conn->scram_server_key_binary); return false; } conn->scram_server_key_len = len; @@ -2080,6 +2103,48 @@ pqConnectOptions2(PGconn *conn) } } + if (conn->min_protocol_version) + { + if (!pqParseProtocolVersion(conn->min_protocol_version, &conn->min_pversion, conn, "min_protocol_version")) + { + conn->status = CONNECTION_BAD; + return false; + } + } + else + { + conn->min_pversion = PG_PROTOCOL_EARLIEST; + } + + if (conn->max_protocol_version) + { + if (!pqParseProtocolVersion(conn->max_protocol_version, &conn->max_pversion, conn, "max_protocol_version")) + { + conn->status = CONNECTION_BAD; + return false; + } + } + else + { + /* + * To not break connecting to older servers/poolers that do not yet + * support NegotiateProtocolVersion, default to the 3.0 protocol at + * least for a while longer. Except when min_protocol_version is set + * to something larger, then we might as well default to the latest. + */ + if (conn->min_pversion > PG_PROTOCOL(3, 0)) + conn->max_pversion = PG_PROTOCOL_LATEST; + else + conn->max_pversion = PG_PROTOCOL(3, 0); + } + + if (conn->min_pversion > conn->max_pversion) + { + conn->status = CONNECTION_BAD; + libpq_append_conn_error(conn, "min_protocol_version is greater than max_protocol_version"); + return false; + } + /* * Resolve special "auto" client_encoding from the locale */ @@ -3083,7 +3148,7 @@ PQconnectPoll(PGconn *conn) * must persist across individual connection attempts, but we must * reset them when we start to consider a new server. */ - conn->pversion = PG_PROTOCOL(3, 0); + conn->pversion = conn->max_pversion; conn->send_appname = true; conn->failed_enc_methods = 0; conn->current_enc_method = 0; @@ -3638,13 +3703,7 @@ PQconnectPoll(PGconn *conn) */ if (conn->cancelRequest) { - CancelRequestPacket cancelpacket; - - packetlen = sizeof(cancelpacket); - cancelpacket.cancelRequestCode = (MsgType) pg_hton32(CANCEL_REQUEST_CODE); - cancelpacket.backendPID = pg_hton32(conn->be_pid); - cancelpacket.cancelAuthCode = pg_hton32(conn->be_key); - if (pqPacketSend(conn, 0, &cancelpacket, packetlen) != STATUS_OK) + if (PQsendCancelRequest(conn) != STATUS_OK) { libpq_append_conn_error(conn, "could not send cancel packet: %s", SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf))); @@ -4084,16 +4143,25 @@ PQconnectPoll(PGconn *conn) CONNECTION_FAILED(); } + /* Handle NegotiateProtocolVersion */ else if (beresp == PqMsg_NegotiateProtocolVersion) { + if (conn->pversion_negotiated) + { + libpq_append_conn_error(conn, "received duplicate protocol negotiation message"); + goto error_return; + } if (pqGetNegotiateProtocolVersion3(conn)) { - libpq_append_conn_error(conn, "received invalid protocol negotiation message"); + /* pqGetNegotiateProtocolVersion3 set error already */ goto error_return; } + conn->pversion_negotiated = true; + /* OK, we read the message; mark data consumed */ pqParseDone(conn, conn->inCursor); - goto error_return; + + goto keep_going; } /* It is an authentication request. */ @@ -4981,21 +5049,19 @@ freePGconn(PGconn *conn) free(conn->events[i].name); } - release_conn_addrinfo(conn); - pqReleaseConnHosts(conn); - - free(conn->client_encoding_initial); - free(conn->events); + /* free everything not freed in pqClosePGconn */ free(conn->pghost); free(conn->pghostaddr); free(conn->pgport); free(conn->connect_timeout); free(conn->pgtcp_user_timeout); + free(conn->client_encoding_initial); free(conn->pgoptions); free(conn->appname); free(conn->fbappname); free(conn->dbName); free(conn->replication); + free(conn->pgservice); free(conn->pguser); if (conn->pgpass) { @@ -5010,8 +5076,9 @@ freePGconn(PGconn *conn) free(conn->keepalives_count); free(conn->sslmode); free(conn->sslnegotiation); - free(conn->sslcert); + free(conn->sslcompression); free(conn->sslkey); + free(conn->sslcert); if (conn->sslpassword) { explicit_bzero(conn->sslpassword, strlen(conn->sslpassword)); @@ -5021,32 +5088,40 @@ freePGconn(PGconn *conn) free(conn->sslrootcert); free(conn->sslcrl); free(conn->sslcrldir); - free(conn->sslcompression); free(conn->sslsni); free(conn->requirepeer); - free(conn->require_auth); - free(conn->ssl_min_protocol_version); - free(conn->ssl_max_protocol_version); free(conn->gssencmode); free(conn->krbsrvname); free(conn->gsslib); free(conn->gssdelegation); - free(conn->connip); - /* Note that conn->Pfdebug is not ours to close or free */ - free(conn->write_err_msg); - free(conn->inBuffer); - free(conn->outBuffer); - free(conn->rowBuf); + free(conn->min_protocol_version); + free(conn->max_protocol_version); + free(conn->ssl_min_protocol_version); + free(conn->ssl_max_protocol_version); free(conn->target_session_attrs); + free(conn->require_auth); free(conn->load_balance_hosts); free(conn->scram_client_key); free(conn->scram_server_key); + free(conn->sslkeylogfile); free(conn->oauth_issuer); free(conn->oauth_issuer_id); free(conn->oauth_discovery_uri); free(conn->oauth_client_id); free(conn->oauth_client_secret); free(conn->oauth_scope); + /* Note that conn->Pfdebug is not ours to close or free */ + free(conn->events); + pqReleaseConnHosts(conn); + free(conn->connip); + release_conn_addrinfo(conn); + free(conn->scram_client_key_binary); + free(conn->scram_server_key_binary); + /* if this is a cancel connection, be_cancel_key may still be allocated */ + free(conn->be_cancel_key); + free(conn->inBuffer); + free(conn->outBuffer); + free(conn->rowBuf); termPQExpBuffer(&conn->errorMessage); termPQExpBuffer(&conn->workBuffer); @@ -5075,6 +5150,7 @@ pqReleaseConnHosts(PGconn *conn) } } free(conn->connhost); + conn->connhost = NULL; } } @@ -8148,6 +8224,38 @@ pqParseIntParam(const char *value, int *result, PGconn *conn, return false; } +/* + * Parse and try to interpret "value" as a ProtocolVersion value, and if + * successful, store it in *result. + */ +static bool +pqParseProtocolVersion(const char *value, ProtocolVersion *result, PGconn *conn, + const char *context) +{ + if (strcmp(value, "latest") == 0) + { + *result = PG_PROTOCOL_LATEST; + return true; + } + if (strcmp(value, "3.0") == 0) + { + *result = PG_PROTOCOL(3, 0); + return true; + } + + /* 3.1 never existed, we went straight from 3.0 to 3.2 */ + + if (strcmp(value, "3.2") == 0) + { + *result = PG_PROTOCOL(3, 2); + return true; + } + + libpq_append_conn_error(conn, "invalid %s value: \"%s\"", + context, value); + return false; +} + /* * To keep the API consistent, the locking stubs are always provided, even * if they are not required. diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 294843ed8b0e4..4256ae5c0cc5f 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -4101,7 +4101,8 @@ PQescapeStringInternal(PGconn *conn, } /* Slow path for possible multibyte characters */ - charlen = pg_encoding_mblen(encoding, source); + charlen = pg_encoding_mblen_or_incomplete(encoding, + source, remaining); if (remaining < charlen || pg_encoding_verifymbchar(encoding, source, charlen) == -1) @@ -4245,7 +4246,8 @@ PQescapeInternal(PGconn *conn, const char *str, size_t len, bool as_ident) int charlen; /* Slow path for possible multibyte characters */ - charlen = pg_encoding_mblen(conn->client_encoding, s); + charlen = pg_encoding_mblen_or_incomplete(conn->client_encoding, + s, remaining); if (charlen > remaining) { diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index d78445c70af5a..c14e3c952502d 100644 --- a/src/interfaces/libpq/fe-misc.c +++ b/src/interfaces/libpq/fe-misc.c @@ -67,7 +67,7 @@ PQlibVersion(void) /* - * pqGetc: get 1 character from the connection + * pqGetc: read 1 character from the connection * * All these routines return 0 on success, EOF on error. * Note that for the Get routines, EOF only means there is not enough @@ -100,7 +100,7 @@ pqPutc(char c, PGconn *conn) /* * pqGets[_append]: - * get a null-terminated string from the connection, + * read a null-terminated string from the connection, * and store it in an expansible PQExpBuffer. * If we run out of memory, all of the string is still read, * but the excess characters are silently discarded. @@ -159,10 +159,10 @@ pqPuts(const char *s, PGconn *conn) /* * pqGetnchar: - * get a string of exactly len bytes in buffer s, no null termination + * read exactly len bytes in buffer s, no null termination */ int -pqGetnchar(char *s, size_t len, PGconn *conn) +pqGetnchar(void *s, size_t len, PGconn *conn) { if (len > (size_t) (conn->inEnd - conn->inCursor)) return EOF; @@ -199,7 +199,7 @@ pqSkipnchar(size_t len, PGconn *conn) * write exactly len bytes to the current message */ int -pqPutnchar(const char *s, size_t len, PGconn *conn) +pqPutnchar(const void *s, size_t len, PGconn *conn) { if (pqPutMsgBytes(s, len, conn)) return EOF; @@ -1221,13 +1221,9 @@ PQgetCurrentTimeUSec(void) */ /* - * Returns the byte length of the character beginning at s, using the - * specified encoding. - * - * Caution: when dealing with text that is not certainly valid in the - * specified encoding, the result may exceed the actual remaining - * string length. Callers that are not prepared to deal with that - * should use PQmblenBounded() instead. + * Like pg_encoding_mblen(). Use this in callers that want the + * dynamically-linked libpq's stance on encodings, even if that means + * different behavior in different startups of the executable. */ int PQmblen(const char *s, int encoding) @@ -1236,8 +1232,9 @@ PQmblen(const char *s, int encoding) } /* - * Returns the byte length of the character beginning at s, using the - * specified encoding; but not more than the distance to end of string. + * Like pg_encoding_mblen_bounded(). Use this in callers that want the + * dynamically-linked libpq's stance on encodings, even if that means + * different behavior in different startups of the executable. */ int PQmblenBounded(const char *s, int encoding) diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c index 95dd456f07647..beb1c889aad73 100644 --- a/src/interfaces/libpq/fe-protocol3.c +++ b/src/interfaces/libpq/fe-protocol3.c @@ -48,6 +48,7 @@ static int getRowDescriptions(PGconn *conn, int msgLength); static int getParamDescriptions(PGconn *conn, int msgLength); static int getAnotherTuple(PGconn *conn, int msgLength); static int getParameterStatus(PGconn *conn); +static int getBackendKeyData(PGconn *conn, int msgLength); static int getNotify(PGconn *conn); static int getCopyStart(PGconn *conn, ExecStatusType copytype); static int getReadyForQuery(PGconn *conn); @@ -308,9 +309,7 @@ pqParseInput3(PGconn *conn) * just as easy to handle it as part of the main loop. * Save the data and continue processing. */ - if (pqGetInt(&(conn->be_pid), 4, conn)) - return; - if (pqGetInt(&(conn->be_key), 4, conn)) + if (getBackendKeyData(conn, msgLength)) return; break; case PqMsg_RowDescription: @@ -870,6 +869,7 @@ getAnotherTuple(PGconn *conn, int msgLength) /* * Attempt to read an Error or Notice response message. * This is possible in several places, so we break it out as a subroutine. + * * Entry: 'E' or 'N' message type and length have already been consumed. * Exit: returns 0 if successfully consumed message. * returns EOF if not enough data. @@ -1399,64 +1399,105 @@ reportErrorPosition(PQExpBuffer msg, const char *query, int loc, int encoding) /* - * Attempt to read a NegotiateProtocolVersion message. + * Attempt to read a NegotiateProtocolVersion message. Sets conn->pversion + * to the version that's negotiated by the server. + * * Entry: 'v' message type and length have already been consumed. * Exit: returns 0 if successfully consumed message. - * returns EOF if not enough data. + * returns 1 on failure. The error message is filled in. */ int pqGetNegotiateProtocolVersion3(PGconn *conn) { - int tmp; - ProtocolVersion their_version; + int their_version; int num; - PQExpBufferData buf; - if (pqGetInt(&tmp, 4, conn) != 0) - return EOF; - their_version = tmp; + if (pqGetInt(&their_version, 4, conn) != 0) + goto eof; if (pqGetInt(&num, 4, conn) != 0) - return EOF; + goto eof; - initPQExpBuffer(&buf); - for (int i = 0; i < num; i++) + /* Check the protocol version */ + if (their_version > conn->pversion) { - if (pqGets(&conn->workBuffer, conn)) - { - termPQExpBuffer(&buf); - return EOF; - } - if (buf.len > 0) - appendPQExpBufferChar(&buf, ' '); - appendPQExpBufferStr(&buf, conn->workBuffer.data); + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server requested downgrade to a higher-numbered version"); + goto failure; + } + + if (their_version < PG_PROTOCOL(3, 0)) + { + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server requested downgrade to pre-3.0 protocol version"); + goto failure; + } + + /* 3.1 never existed, we went straight from 3.0 to 3.2 */ + if (their_version == PG_PROTOCOL(3, 1)) + { + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server requests downgrade to non-existent 3.1 protocol version"); + goto failure; + } + + if (num < 0) + { + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server reported negative number of unsupported parameters"); + goto failure; + } + + if (their_version == conn->pversion && num == 0) + { + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server negotiated but asks for no changes"); + goto failure; } - if (their_version < conn->pversion) - libpq_append_conn_error(conn, "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u", - PG_PROTOCOL_MAJOR(conn->pversion), PG_PROTOCOL_MINOR(conn->pversion), - PG_PROTOCOL_MAJOR(their_version), PG_PROTOCOL_MINOR(their_version)); - if (num > 0) + if (their_version < conn->min_pversion) { - appendPQExpBuffer(&conn->errorMessage, - libpq_ngettext("protocol extension not supported by server: %s", - "protocol extensions not supported by server: %s", num), - buf.data); - appendPQExpBufferChar(&conn->errorMessage, '\n'); + libpq_append_conn_error(conn, "server only supports protocol version %d.%d, but min_protocol_version was set to %d.%d", + PG_PROTOCOL_MAJOR(their_version), + PG_PROTOCOL_MINOR(their_version), + PG_PROTOCOL_MAJOR(conn->min_pversion), + PG_PROTOCOL_MINOR(conn->min_pversion)); + + goto failure; } - /* neither -- server shouldn't have sent it */ - if (!(their_version < conn->pversion) && !(num > 0)) - libpq_append_conn_error(conn, "invalid %s message", "NegotiateProtocolVersion"); + /* the version is acceptable */ + conn->pversion = their_version; + + /* + * We don't currently request any protocol extensions, so we don't expect + * the server to reply with any either. + */ + for (int i = 0; i < num; i++) + { + if (pqGets(&conn->workBuffer, conn)) + { + goto eof; + } + if (strncmp(conn->workBuffer.data, "_pq_.", 5) != 0) + { + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server reported unsupported parameter name without a _pq_. prefix (\"%s\")", conn->workBuffer.data); + goto failure; + } + libpq_append_conn_error(conn, "received invalid protocol negotiation message: server reported an unsupported parameter that was not requested (\"%s\")", conn->workBuffer.data); + goto failure; + } - termPQExpBuffer(&buf); return 0; + +eof: + libpq_append_conn_error(conn, "received invalid protocol negotiation message: message too short"); +failure: + conn->asyncStatus = PGASYNC_READY; + pqSaveErrorResult(conn); + return 1; } /* * Attempt to read a ParameterStatus message. * This is possible in several places, so we break it out as a subroutine. + * * Entry: 'S' message type and length have already been consumed. * Exit: returns 0 if successfully consumed message. * returns EOF if not enough data. @@ -1482,10 +1523,51 @@ getParameterStatus(PGconn *conn) return 0; } +/* + * parseInput subroutine to read a BackendKeyData message. + * Entry: 'v' message type and length have already been consumed. + * Exit: returns 0 if successfully consumed message. + * returns EOF if not enough data. + */ +static int +getBackendKeyData(PGconn *conn, int msgLength) +{ + int cancel_key_len; + + if (conn->be_cancel_key) + { + free(conn->be_cancel_key); + conn->be_cancel_key = NULL; + conn->be_cancel_key_len = 0; + } + + if (pqGetInt(&(conn->be_pid), 4, conn)) + return EOF; + + cancel_key_len = 5 + msgLength - (conn->inCursor - conn->inStart); + + conn->be_cancel_key = malloc(cancel_key_len); + if (conn->be_cancel_key == NULL) + { + libpq_append_conn_error(conn, "out of memory"); + /* discard the message */ + return EOF; + } + if (pqGetnchar(conn->be_cancel_key, cancel_key_len, conn)) + { + free(conn->be_cancel_key); + conn->be_cancel_key = NULL; + return EOF; + } + conn->be_cancel_key_len = cancel_key_len; + return 0; +} + /* * Attempt to read a Notify response message. * This is possible in several places, so we break it out as a subroutine. + * * Entry: 'A' message type and length have already been consumed. * Exit: returns 0 if successfully consumed Notify message. * returns EOF if not enough data. @@ -2039,7 +2121,7 @@ pqFunctionCall3(PGconn *conn, Oid fnid, } else { - if (pqPutnchar((char *) args[i].u.ptr, args[i].len, conn)) + if (pqPutnchar(args[i].u.ptr, args[i].len, conn)) return NULL; } } @@ -2133,7 +2215,7 @@ pqFunctionCall3(PGconn *conn, Oid fnid, } else { - if (pqGetnchar((char *) result_buf, + if (pqGetnchar(result_buf, *actual_result_len, conn)) continue; diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index 5bb9d9779d828..78f9e84eb353b 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -57,6 +57,7 @@ * include , but some other Windows headers do.) */ #include "common/openssl.h" +#include #include #ifdef USE_SSL_ENGINE #include @@ -684,6 +685,49 @@ pgtls_verify_peer_name_matches_certificate_guts(PGconn *conn, /* See pqcomm.h comments on OpenSSL implementation of ALPN (RFC 7301) */ static unsigned char alpn_protos[] = PG_ALPN_PROTOCOL_VECTOR; +#ifdef HAVE_SSL_CTX_SET_KEYLOG_CALLBACK +/* + * SSL Key Logging callback + * + * This callback lets the user store all key material to a file for debugging + * purposes. The file will be written using the NSS keylog format. LibreSSL + * 3.5 introduced stub function to set the callback for OpenSSL compatibility + * but the callback is never invoked. + */ +static void +SSL_CTX_keylog_cb(const SSL *ssl, const char *line) +{ + int fd; + mode_t old_umask; + ssize_t rc; + PGconn *conn = SSL_get_app_data(ssl); + + if (conn == NULL) + return; + + old_umask = umask(077); + fd = open(conn->sslkeylogfile, O_WRONLY | O_APPEND | O_CREAT, 0600); + umask(old_umask); + + if (fd == -1) + { + libpq_append_conn_error(conn, "could not open ssl keylog file \"%s\": %s", + conn->sslkeylogfile, pg_strerror(errno)); + return; + } + + /* line is guaranteed by OpenSSL to be NUL terminated */ + rc = write(fd, line, strlen(line)); + if (rc < 0) + libpq_append_conn_error(conn, "could not write to ssl keylog file \"%s\": %s", + conn->sslkeylogfile, pg_strerror(errno)); + else + rc = write(fd, "\n", 1); + (void) rc; /* silence compiler warnings */ + close(fd); +} +#endif + /* * Create per-connection SSL object, and load the client certificate, * private key, and trusted CA certs. @@ -1000,6 +1044,20 @@ initialize_SSL(PGconn *conn) } conn->ssl_in_use = true; + if (conn->sslkeylogfile && strlen(conn->sslkeylogfile) > 0) + { +#ifdef HAVE_SSL_CTX_SET_KEYLOG_CALLBACK + SSL_CTX_set_keylog_callback(SSL_context, SSL_CTX_keylog_cb); +#else +#ifdef LIBRESSL_VERSION_NUMBER + fprintf(stderr, libpq_gettext("WARNING: sslkeylogfile support requires OpenSSL\n")); +#else + fprintf(stderr, libpq_gettext("WARNING: libpq was not built with sslkeylogfile support\n")); +#endif +#endif + } + + /* * SSL contexts are reference counted by OpenSSL. We can free it as soon * as we have created the SSL object, and it will stick around for as long diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index ade5ad82f07cf..a6cfd7f5c9d83 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -417,6 +417,8 @@ struct pg_conn char *gsslib; /* What GSS library to use ("gssapi" or * "sspi") */ char *gssdelegation; /* Try to delegate GSS credentials? (0 or 1) */ + char *min_protocol_version; /* minimum used protocol version */ + char *max_protocol_version; /* maximum used protocol version */ char *ssl_min_protocol_version; /* minimum TLS protocol version */ char *ssl_max_protocol_version; /* maximum TLS protocol version */ char *target_session_attrs; /* desired session properties */ @@ -424,6 +426,7 @@ struct pg_conn char *load_balance_hosts; /* load balance over hosts */ char *scram_client_key; /* base64-encoded SCRAM client key */ char *scram_server_key; /* base64-encoded SCRAM server key */ + char *sslkeylogfile; /* where should the client write ssl keylogs */ bool cancelRequest; /* true if this connection is used to send a * cancel request, instead of being a normal @@ -496,6 +499,8 @@ struct pg_conn SockAddr raddr; /* Remote address */ ProtocolVersion pversion; /* FE/BE protocol version in use */ int sversion; /* server version, e.g. 70401 for 7.4.1 */ + bool pversion_negotiated; /* true if NegotiateProtocolVersion + * was received */ bool auth_req_received; /* true if any type of auth req received */ bool password_needed; /* true if server demanded a password */ bool gssapi_used; /* true if authenticated via gssapi */ @@ -534,13 +539,16 @@ struct pg_conn * tried host */ bool send_appname; /* okay to send application_name? */ size_t scram_client_key_len; - void *scram_client_key_binary; /* binary SCRAM client key */ + uint8 *scram_client_key_binary; /* binary SCRAM client key */ size_t scram_server_key_len; - void *scram_server_key_binary; /* binary SCRAM server key */ + uint8 *scram_server_key_binary; /* binary SCRAM server key */ + ProtocolVersion min_pversion; /* protocol version to request */ + ProtocolVersion max_pversion; /* protocol version to request */ /* Miscellaneous stuff */ int be_pid; /* PID of backend --- needed for cancels */ - int be_key; /* key of backend --- needed for cancels */ + int be_cancel_key_len; + uint8 *be_cancel_key; /* query cancellation key */ pgParameterStatus *pstatus; /* ParameterStatus data */ int client_encoding; /* encoding id */ bool std_strings; /* standard_conforming_strings */ @@ -760,6 +768,10 @@ extern PGresult *pqFunctionCall3(PGconn *conn, Oid fnid, int result_is_int, const PQArgBlock *args, int nargs); +/* === in fe-cancel.c === */ + +extern int PQsendCancelRequest(PGconn *cancelConn); + /* === in fe-misc.c === */ /* @@ -775,9 +787,9 @@ extern int pqPutc(char c, PGconn *conn); extern int pqGets(PQExpBuffer buf, PGconn *conn); extern int pqGets_append(PQExpBuffer buf, PGconn *conn); extern int pqPuts(const char *s, PGconn *conn); -extern int pqGetnchar(char *s, size_t len, PGconn *conn); +extern int pqGetnchar(void *s, size_t len, PGconn *conn); extern int pqSkipnchar(size_t len, PGconn *conn); -extern int pqPutnchar(const char *s, size_t len, PGconn *conn); +extern int pqPutnchar(const void *s, size_t len, PGconn *conn); extern int pqGetInt(int *result, size_t bytes, PGconn *conn); extern int pqPutInt(int value, size_t bytes, PGconn *conn); extern int pqPutMsgStart(char msg_type, PGconn *conn); diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build index 292fecf3320f1..a74e885b169d7 100644 --- a/src/interfaces/libpq/meson.build +++ b/src/interfaces/libpq/meson.build @@ -38,10 +38,6 @@ if gssapi.found() ) endif -if libcurl.found() - libpq_sources += files('fe-auth-oauth-curl.c') -endif - export_file = custom_target('libpq.exports', kwargs: gen_export_kwargs, ) @@ -50,6 +46,9 @@ export_file = custom_target('libpq.exports', libpq_inc = include_directories('.', '../../port') libpq_c_args = ['-DSO_MAJOR_VERSION=5'] +# The OAuth implementation differs depending on the type of library being built. +libpq_so_c_args = ['-DUSE_DYNAMIC_OAUTH'] + # Not using both_libraries() here as # 1) resource files should only be in the shared library # 2) we want the .pc file to include a dependency to {pgport,common}_static for @@ -70,7 +69,7 @@ libpq_st = static_library('libpq', libpq_so = shared_library('libpq', libpq_sources + libpq_so_sources, include_directories: [libpq_inc, postgres_inc], - c_args: libpq_c_args, + c_args: libpq_c_args + libpq_so_c_args, c_pch: pch_postgres_fe_h, version: '5.' + pg_version_major.to_string(), soversion: host_system != 'windows' ? '5' : '', @@ -86,12 +85,26 @@ libpq = declare_dependency( include_directories: [include_directories('.')] ) +private_deps = [ + frontend_stlib_code, + libpq_deps, +] + +if oauth_flow_supported + # libpq.so doesn't link against libcurl, but libpq.a needs libpq-oauth, and + # libpq-oauth needs libcurl. Put both into *.private. + private_deps += [ + libpq_oauth_deps, + '-lpq-oauth', + ] +endif + pkgconfig.generate( name: 'libpq', description: 'PostgreSQL libpq library', url: pg_url, libraries: libpq, - libraries_private: [frontend_stlib_code, libpq_deps], + libraries_private: private_deps, ) install_headers( diff --git a/src/interfaces/libpq/nls.mk b/src/interfaces/libpq/nls.mk index ae761265852d1..b87df277d930d 100644 --- a/src/interfaces/libpq/nls.mk +++ b/src/interfaces/libpq/nls.mk @@ -13,15 +13,21 @@ GETTEXT_FILES = fe-auth.c \ fe-secure-common.c \ fe-secure-gssapi.c \ fe-secure-openssl.c \ - win32.c -GETTEXT_TRIGGERS = libpq_append_conn_error:2 \ + win32.c \ + ../libpq-oauth/oauth-curl.c \ + ../libpq-oauth/oauth-utils.c +GETTEXT_TRIGGERS = actx_error:2 \ + libpq_append_conn_error:2 \ libpq_append_error:2 \ libpq_gettext \ libpq_ngettext:1,2 \ + oauth_parse_set_error:2 \ pqInternalNotice:2 -GETTEXT_FLAGS = libpq_append_conn_error:2:c-format \ +GETTEXT_FLAGS = actx_error:2:c-format \ + libpq_append_conn_error:2:c-format \ libpq_append_error:2:c-format \ libpq_gettext:1:pass-c-format \ libpq_ngettext:1:pass-c-format \ libpq_ngettext:2:pass-c-format \ + oauth_parse_set_error:2:c-format \ pqInternalNotice:2:c-format diff --git a/src/interfaces/libpq/po/de.po b/src/interfaces/libpq/po/de.po index e04de1db57cda..ca479767fe135 100644 --- a/src/interfaces/libpq/po/de.po +++ b/src/interfaces/libpq/po/de.po @@ -1,14 +1,14 @@ # German message translation file for libpq -# Peter Eisentraut , 2001 - 2024. +# Peter Eisentraut , 2001 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-13 05:40+0000\n" -"PO-Revision-Date: 2024-06-13 10:33+0200\n" +"POT-Creation-Date: 2025-03-07 09:40+0000\n" +"PO-Revision-Date: 2025-03-07 11:51+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -17,317 +17,322 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../port/user.c:43 ../../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "konnte lokale Benutzer-ID %d nicht nachschlagen: %s" - -#: ../../port/user.c:48 ../../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "lokaler Benutzer mit ID %d existiert nicht" - -#: fe-auth-scram.c:223 +#: fe-auth-scram.c:228 #, c-format msgid "malformed SCRAM message (empty message)" msgstr "fehlerhafte SCRAM-Nachricht (leere Nachricht)" -#: fe-auth-scram.c:228 +#: fe-auth-scram.c:233 #, c-format msgid "malformed SCRAM message (length mismatch)" msgstr "fehlerhafte SCRAM-Nachricht (Länge stimmt nicht überein)" -#: fe-auth-scram.c:272 +#: fe-auth-scram.c:277 #, c-format msgid "could not verify server signature: %s" msgstr "konnte Serversignatur nicht überprüfen: %s" -#: fe-auth-scram.c:278 +#: fe-auth-scram.c:283 #, c-format msgid "incorrect server signature" msgstr "falsche Serversignatur" -#: fe-auth-scram.c:287 +#: fe-auth-scram.c:292 #, c-format msgid "invalid SCRAM exchange state" msgstr "ungültiger Zustand des SCRAM-Austauschs" -#: fe-auth-scram.c:311 +#: fe-auth-scram.c:316 #, c-format msgid "malformed SCRAM message (attribute \"%c\" expected)" msgstr "fehlerhafte SCRAM-Nachricht (Attribut »%c« erwartet)" -#: fe-auth-scram.c:320 +#: fe-auth-scram.c:325 #, c-format msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")" msgstr "fehlerhafte SCRAM-Nachricht (Zeichen »=« für Attribut »%c« erwartet)" -#: fe-auth-scram.c:360 +#: fe-auth-scram.c:365 #, c-format msgid "could not generate nonce" msgstr "konnte Nonce nicht erzeugen" -#: fe-auth-scram.c:369 fe-auth-scram.c:442 fe-auth-scram.c:594 -#: fe-auth-scram.c:614 fe-auth-scram.c:638 fe-auth-scram.c:652 -#: fe-auth-scram.c:698 fe-auth-scram.c:734 fe-auth-scram.c:908 fe-auth.c:296 -#: fe-auth.c:369 fe-auth.c:403 fe-auth.c:618 fe-auth.c:727 fe-auth.c:1199 -#: fe-auth.c:1362 fe-cancel.c:159 fe-connect.c:936 fe-connect.c:976 -#: fe-connect.c:1860 fe-connect.c:2022 fe-connect.c:3443 fe-connect.c:4771 -#: fe-connect.c:5083 fe-connect.c:5338 fe-connect.c:5456 fe-connect.c:5703 -#: fe-connect.c:5783 fe-connect.c:5881 fe-connect.c:6132 fe-connect.c:6159 -#: fe-connect.c:6235 fe-connect.c:6258 fe-connect.c:6282 fe-connect.c:6317 -#: fe-connect.c:6403 fe-connect.c:6411 fe-connect.c:6768 fe-connect.c:6918 -#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4234 fe-exec.c:4398 +#: fe-auth-scram.c:374 fe-auth-scram.c:447 fe-auth-scram.c:599 +#: fe-auth-scram.c:619 fe-auth-scram.c:643 fe-auth-scram.c:657 +#: fe-auth-scram.c:703 fe-auth-scram.c:739 fe-auth-scram.c:931 fe-auth.c:308 +#: fe-auth.c:382 fe-auth.c:416 fe-auth.c:694 fe-auth.c:827 fe-auth.c:1330 +#: fe-auth.c:1493 fe-cancel.c:159 fe-connect.c:984 fe-connect.c:1024 +#: fe-connect.c:2106 fe-connect.c:2268 fe-connect.c:3667 fe-connect.c:5106 +#: fe-connect.c:5419 fe-connect.c:5674 fe-connect.c:5792 fe-connect.c:6039 +#: fe-connect.c:6119 fe-connect.c:6217 fe-connect.c:6468 fe-connect.c:6495 +#: fe-connect.c:6571 fe-connect.c:6594 fe-connect.c:6618 fe-connect.c:6653 +#: fe-connect.c:6739 fe-connect.c:6747 fe-connect.c:7104 fe-connect.c:7286 +#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4291 fe-exec.c:4457 #: fe-gssapi-common.c:109 fe-lobj.c:870 fe-protocol3.c:209 fe-protocol3.c:232 #: fe-protocol3.c:255 fe-protocol3.c:272 fe-protocol3.c:293 fe-protocol3.c:369 -#: fe-protocol3.c:737 fe-protocol3.c:976 fe-protocol3.c:1787 -#: fe-protocol3.c:2187 fe-secure-common.c:110 fe-secure-gssapi.c:496 -#: fe-secure-openssl.c:427 fe-secure-openssl.c:1277 +#: fe-protocol3.c:733 fe-protocol3.c:972 fe-protocol3.c:1779 +#: fe-protocol3.c:2180 fe-secure-common.c:110 fe-secure-gssapi.c:496 +#: fe-secure-openssl.c:404 fe-secure-openssl.c:1073 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" -#: fe-auth-scram.c:376 +#: fe-auth-scram.c:381 #, c-format msgid "could not encode nonce" msgstr "konnte Nonce nicht kodieren" -#: fe-auth-scram.c:564 +#: fe-auth-scram.c:569 #, c-format msgid "could not calculate client proof: %s" msgstr "konnte Client-Proof nicht berechnen: %s" -#: fe-auth-scram.c:579 +#: fe-auth-scram.c:584 #, c-format msgid "could not encode client proof" msgstr "konnte Client-Proof nicht kodieren" -#: fe-auth-scram.c:631 +#: fe-auth-scram.c:636 #, c-format msgid "invalid SCRAM response (nonce mismatch)" msgstr "ungültige SCRAM-Antwort (Nonce stimmt nicht überein)" -#: fe-auth-scram.c:661 +#: fe-auth-scram.c:666 #, c-format msgid "malformed SCRAM message (invalid salt)" msgstr "fehlerhafte SCRAM-Nachricht (ungültiges Salt)" -#: fe-auth-scram.c:674 +#: fe-auth-scram.c:679 #, c-format msgid "malformed SCRAM message (invalid iteration count)" msgstr "fehlerhafte SCRAM-Nachricht (ungültige Iterationszahl)" -#: fe-auth-scram.c:679 +#: fe-auth-scram.c:684 #, c-format msgid "malformed SCRAM message (garbage at end of server-first-message)" msgstr "fehlerhafte SCRAM-Nachricht (Müll am Ende der »server-first-message«)" -#: fe-auth-scram.c:713 +#: fe-auth-scram.c:718 #, c-format msgid "error received from server in SCRAM exchange: %s" msgstr "Fehler vom Server empfangen im SCRAM-Austausch: %s" -#: fe-auth-scram.c:728 +#: fe-auth-scram.c:733 #, c-format msgid "malformed SCRAM message (garbage at end of server-final-message)" msgstr "fehlerhafte SCRAM-Nachricht (Müll am Ende der »server-final-message«)" -#: fe-auth-scram.c:745 +#: fe-auth-scram.c:750 #, c-format msgid "malformed SCRAM message (invalid server signature)" msgstr "fehlerhafte SCRAM-Nachricht (ungültige Serversignatur)" -#: fe-auth-scram.c:917 +#: fe-auth-scram.c:940 msgid "could not generate random salt" msgstr "konnte zufälliges Salt nicht erzeugen" -#: fe-auth.c:77 +#: fe-auth.c:80 #, c-format msgid "out of memory allocating GSSAPI buffer (%d)" msgstr "Speicher aufgebraucht beim Anlegen des GSSAPI-Puffers (%d)" -#: fe-auth.c:138 +#: fe-auth.c:146 msgid "GSSAPI continuation error" msgstr "GSSAPI-Fortsetzungsfehler" -#: fe-auth.c:168 fe-auth.c:397 fe-gssapi-common.c:97 fe-secure-common.c:99 +#: fe-auth.c:176 fe-auth.c:410 fe-gssapi-common.c:97 fe-secure-common.c:99 #: fe-secure-common.c:173 #, c-format msgid "host name must be specified" msgstr "Hostname muss angegeben werden" -#: fe-auth.c:174 +#: fe-auth.c:182 #, c-format msgid "duplicate GSS authentication request" msgstr "doppelte GSSAPI-Authentifizierungsanfrage" -#: fe-auth.c:238 +#: fe-auth.c:246 #, c-format msgid "out of memory allocating SSPI buffer (%d)" msgstr "Speicher aufgebraucht beim Anlegen des SSPI-Puffers (%d)" -#: fe-auth.c:285 +#: fe-auth.c:297 msgid "SSPI continuation error" msgstr "SSPI-Fortsetzungsfehler" -#: fe-auth.c:359 +#: fe-auth.c:372 #, c-format msgid "duplicate SSPI authentication request" msgstr "doppelte SSPI-Authentifizierungsanfrage" -#: fe-auth.c:384 +#: fe-auth.c:397 msgid "could not acquire SSPI credentials" msgstr "konnte SSPI-Credentials nicht erhalten" -#: fe-auth.c:436 +#: fe-auth.c:449 #, c-format msgid "channel binding required, but SSL not in use" msgstr "Channel-Binding wurde verlangt, aber SSL wird nicht verwendet" -#: fe-auth.c:442 +#: fe-auth.c:455 #, c-format msgid "duplicate SASL authentication request" msgstr "doppelte SASL-Authentifizierungsanfrage" -#: fe-auth.c:500 +#: fe-auth.c:513 #, c-format msgid "channel binding is required, but client does not support it" msgstr "Channel-Binding wurde verlangt, aber der Client unterstützt es nicht" -#: fe-auth.c:516 +#: fe-auth.c:529 #, c-format msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection" msgstr "Server hat Authentifizierung mit SCRAM-SHA-256-PLUS über eine Verbindung ohne SSL angeboten" -#: fe-auth.c:531 +#: fe-auth.c:551 #, c-format msgid "none of the server's SASL authentication mechanisms are supported" msgstr "keine der SASL-Authentifizierungsmechanismen des Servers werden unterstützt" -#: fe-auth.c:538 +#: fe-auth.c:571 +#, c-format +msgid "authentication method requirement \"%s\" failed: server requested %s authentication" +msgstr "Authentifizierungsmethodenanforderung »%s« fehlgeschlagen: Server hat »%s«-Authentifizierung verlangt" + +#: fe-auth.c:580 #, c-format msgid "channel binding is required, but server did not offer an authentication method that supports channel binding" msgstr "Channel-Binding wurde verlangt, aber der Server hat keine Authentifizierungsmethode mit Channel-Binding angeboten" -#: fe-auth.c:640 +#: fe-auth.c:716 #, c-format msgid "out of memory allocating SASL buffer (%d)" msgstr "Speicher aufgebraucht beim Anlegen des SASL-Puffers (%d)" -#: fe-auth.c:663 +#: fe-auth.c:758 #, c-format msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed" msgstr "AuthenticationSASLFinal vom Server empfangen, aber SASL-Authentifizierung war noch nicht abgeschlossen" -#: fe-auth.c:673 +#: fe-auth.c:768 #, c-format msgid "no client response found after SASL exchange success" msgstr "keine Client-Antwort gefunden nach Erfolg des SASL-Austauschs" -#: fe-auth.c:736 fe-auth.c:743 fe-auth.c:1345 fe-auth.c:1356 +#: fe-auth.c:836 fe-auth.c:843 fe-auth.c:1476 fe-auth.c:1487 #, c-format msgid "could not encrypt password: %s" msgstr "konnte Passwort nicht verschlüsseln: %s" -#: fe-auth.c:771 +#: fe-auth.c:873 msgid "server requested a cleartext password" msgstr "Server hat ein Passwort im Klartext verlangt" -#: fe-auth.c:773 +#: fe-auth.c:875 msgid "server requested a hashed password" msgstr "Server hat ein gehashtes Passwort verlangt" -#: fe-auth.c:776 +#: fe-auth.c:878 msgid "server requested GSSAPI authentication" msgstr "Server hat GSSAPI-Authentifizierung verlangt" -#: fe-auth.c:778 +#: fe-auth.c:880 msgid "server requested SSPI authentication" msgstr "Server hat SSPI-Authentifizierung verlangt" -#: fe-auth.c:782 +#: fe-auth.c:884 msgid "server requested SASL authentication" msgstr "Server hat SASL-Authentifizierung verlangt" -#: fe-auth.c:785 +#: fe-auth.c:887 msgid "server requested an unknown authentication type" msgstr "Server hat einen unbekannten Authentifizierungstyp verlangt" -#: fe-auth.c:818 +#: fe-auth.c:920 #, c-format msgid "server did not request an SSL certificate" msgstr "Server hat kein SSL-Zertifikat verlangt" -#: fe-auth.c:823 +#: fe-auth.c:925 #, c-format msgid "server accepted connection without a valid SSL certificate" msgstr "Server hat Verbindung ohne gültiges SSL-Zertifikat angenommen" -#: fe-auth.c:877 +#: fe-auth.c:979 msgid "server did not complete authentication" msgstr "Server hat Authentifizierung nicht abgeschlossen" -#: fe-auth.c:911 +#: fe-auth.c:1013 #, c-format msgid "authentication method requirement \"%s\" failed: %s" msgstr "Authentifizierungsmethodenanforderung »%s« fehlgeschlagen: %s" -#: fe-auth.c:934 +#: fe-auth.c:1036 #, c-format msgid "channel binding required, but server authenticated client without channel binding" msgstr "Channel-Binding wurde verlangt, aber der Server hat den Client ohne Channel-Binding authentifiziert" -#: fe-auth.c:939 +#: fe-auth.c:1041 #, c-format msgid "channel binding required but not supported by server's authentication request" msgstr "Channel-Binding wurde verlangt aber von der Authentifizierungsanfrage des Servers nicht unterstützt" -#: fe-auth.c:973 +#: fe-auth.c:1081 #, c-format msgid "Kerberos 4 authentication not supported" msgstr "Authentifizierung mit Kerberos 4 nicht unterstützt" -#: fe-auth.c:977 +#: fe-auth.c:1085 #, c-format msgid "Kerberos 5 authentication not supported" msgstr "Authentifizierung mit Kerberos 5 nicht unterstützt" -#: fe-auth.c:1047 +#: fe-auth.c:1155 #, c-format msgid "GSSAPI authentication not supported" msgstr "Authentifizierung mit GSSAPI nicht unterstützt" -#: fe-auth.c:1078 +#: fe-auth.c:1186 #, c-format msgid "SSPI authentication not supported" msgstr "Authentifizierung mit SSPI nicht unterstützt" -#: fe-auth.c:1085 +#: fe-auth.c:1193 #, c-format msgid "Crypt authentication not supported" msgstr "Authentifizierung mit Crypt nicht unterstützt" -#: fe-auth.c:1149 +#: fe-auth.c:1267 #, c-format msgid "authentication method %u not supported" msgstr "Authentifizierungsmethode %u nicht unterstützt" -#: fe-auth.c:1186 +#: fe-auth.c:1307 #, c-format msgid "user name lookup failure: error code %lu" msgstr "Fehler beim Nachschlagen des Benutzernamens: Fehlercode %lu" -#: fe-auth.c:1308 +#: fe-auth.c:1315 +#, c-format +msgid "could not look up local user ID %ld: %m" +msgstr "konnte lokale Benutzer-ID %ld nicht nachschlagen: %m" + +#: fe-auth.c:1320 +#, c-format +msgid "local user with ID %ld does not exist" +msgstr "lokaler Benutzer mit ID %ld existiert nicht" + +#: fe-auth.c:1439 #, c-format msgid "unexpected shape of result set returned for SHOW" msgstr "unerwartete Form der Ergebnismenge von SHOW" -#: fe-auth.c:1316 +#: fe-auth.c:1447 #, c-format msgid "\"password_encryption\" value too long" msgstr "Wert von »password_encryption« ist zu lang" -#: fe-auth.c:1366 +#: fe-auth.c:1497 #, c-format msgid "unrecognized password encryption algorithm \"%s\"" msgstr "unbekannter Passwortverschlüsselungsalgorithmus »%s«" @@ -337,7 +342,7 @@ msgstr "unbekannter Passwortverschlüsselungsalgorithmus »%s«" msgid "connection pointer is NULL" msgstr "Verbindung ist ein NULL-Zeiger" -#: fe-cancel.c:82 fe-misc.c:572 +#: fe-cancel.c:82 fe-misc.c:587 #, c-format msgid "connection not open" msgstr "Verbindung nicht offen" @@ -352,466 +357,516 @@ msgstr "Stornierungsanfrage wird auf dieser Verbindung bereits gesendet" msgid "unexpected response from server" msgstr "unerwartete Antwort vom Server" -#: fe-connect.c:1182 +#: fe-connect.c:1281 #, c-format msgid "could not match %d host names to %d hostaddr values" msgstr "fehlerhafte Angabe: %d Hostnamen und %d hostaddr-Angaben" -#: fe-connect.c:1262 +#: fe-connect.c:1361 #, c-format msgid "could not match %d port numbers to %d hosts" msgstr "fehlerhafte Angabe: %d Portnummern und %d Hosts" -#: fe-connect.c:1387 +#: fe-connect.c:1489 #, c-format msgid "negative require_auth method \"%s\" cannot be mixed with non-negative methods" msgstr "negative require_auth-Methode »%s« kann nicht mit nicht-negativen Methoden vermischt werden" -#: fe-connect.c:1400 +#: fe-connect.c:1502 #, c-format msgid "require_auth method \"%s\" cannot be mixed with negative methods" msgstr "require_auth-Methode »%s« kann nicht mit negativen Methoden vermischt werden" -#: fe-connect.c:1460 fe-connect.c:1511 fe-connect.c:1553 fe-connect.c:1596 -#: fe-connect.c:1699 fe-connect.c:1745 fe-connect.c:1785 fe-connect.c:1806 +#: fe-connect.c:1578 fe-connect.c:1707 fe-connect.c:1749 fe-connect.c:1792 +#: fe-connect.c:1895 fe-connect.c:1941 fe-connect.c:1981 fe-connect.c:2052 #, c-format msgid "invalid %s value: \"%s\"" msgstr "ungültiger %s-Wert: »%s«" -#: fe-connect.c:1493 +#: fe-connect.c:1620 +#, c-format +msgid "internal error: no space in allowed_sasl_mechs" +msgstr "" + +#: fe-connect.c:1659 #, c-format msgid "require_auth method \"%s\" is specified more than once" msgstr "require_auth-Methode »%s« ist mehrmals angegeben" -#: fe-connect.c:1534 fe-connect.c:1573 fe-connect.c:1605 fe-connect.c:1707 +#: fe-connect.c:1730 fe-connect.c:1769 fe-connect.c:1801 fe-connect.c:1903 #, c-format msgid "%s value \"%s\" invalid when SSL support is not compiled in" msgstr "%s-Wert »%s« ist ungültig, wenn SSL-Unterstützung nicht einkompiliert worden ist" -#: fe-connect.c:1625 +#: fe-connect.c:1821 #, c-format msgid "weak sslmode \"%s\" may not be used with sslnegotiation=direct (use \"require\", \"verify-ca\", or \"verify-full\")" msgstr "schwacher sslmode »%s« darf nicht mit sslnegotiation=direct verwendet werden (»require«, »verify-ca« oder »verify-full« verwenden)" -#: fe-connect.c:1647 +#: fe-connect.c:1843 #, c-format msgid "weak sslmode \"%s\" may not be used with sslrootcert=system (use \"verify-full\")" msgstr "schwacher sslmode »%s« darf nicht mit sslrootcert=system verwendet werden (»verify-full« verwenden)" -#: fe-connect.c:1660 fe-connect.c:1668 +#: fe-connect.c:1856 fe-connect.c:1864 #, c-format msgid "invalid \"%s\" value: \"%s\"" msgstr "ungültiger »%s«-Wert: »%s«" -#: fe-connect.c:1685 +#: fe-connect.c:1881 #, c-format msgid "invalid SSL protocol version range" msgstr "ungültiges SSL-Protokollsintervall" -#: fe-connect.c:1722 +#: fe-connect.c:1918 #, c-format msgid "%s value \"%s\" is not supported (check OpenSSL version)" msgstr "%s-Wert »%s« wird nicht unterstützt (OpenSSL-Version prüfen)" -#: fe-connect.c:1752 +#: fe-connect.c:1948 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in" msgstr "gssencmode-Wert »%s« ist ungültig, wenn GSSAPI-Unterstützung nicht einkompiliert worden ist" -#: fe-connect.c:2045 +#: fe-connect.c:2002 +#, c-format +msgid "invalid SCRAM client key" +msgstr "ungültiger SCRAM-Client-Schlüssel" + +#: fe-connect.c:2008 +#, c-format +msgid "invalid SCRAM client key length: %d" +msgstr "ungültige SCRAM-Client-Schlüssel-Länge: %d" + +#: fe-connect.c:2027 +#, c-format +msgid "invalid SCRAM server key" +msgstr "ungültiger SCRAM-Server-Schlüssel" + +#: fe-connect.c:2033 +#, c-format +msgid "invalid SCRAM server key length: %d" +msgstr "ungültige SCRAM-Server-Schlüssel-Länge: %d" + +#: fe-connect.c:2291 #, c-format msgid "could not set socket to TCP no delay mode: %s" msgstr "konnte Socket nicht auf TCP »No Delay«-Modus umstellen: %s" -#: fe-connect.c:2104 +#: fe-connect.c:2350 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "Verbindung zum Server auf Socket »%s« fehlgeschlagen: " -#: fe-connect.c:2130 +#: fe-connect.c:2376 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "Verbindung zum Server auf »%s« (%s), Port %s fehlgeschlagen: " -#: fe-connect.c:2135 +#: fe-connect.c:2381 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "Verbindung zum Server auf »%s«, Port %s fehlgeschlagen: " -#: fe-connect.c:2158 +#: fe-connect.c:2404 #, c-format msgid "\tIs the server running locally and accepting connections on that socket?" msgstr "\tLäuft der Server lokal und akzeptiert er Verbindungen auf diesem Socket?" -#: fe-connect.c:2160 +#: fe-connect.c:2406 #, c-format msgid "\tIs the server running on that host and accepting TCP/IP connections?" msgstr "\tLäuft der Server auf diesem Host und akzeptiert er TCP/IP-Verbindungen?" -#: fe-connect.c:2206 fe-connect.c:2240 fe-connect.c:2275 fe-connect.c:2373 -#: fe-connect.c:3111 +#: fe-connect.c:2452 fe-connect.c:2486 fe-connect.c:2521 fe-connect.c:2619 +#: fe-connect.c:3345 #, c-format msgid "%s(%s) failed: %s" msgstr "%s(%s) fehlgeschlagen: %s" -#: fe-connect.c:2339 +#: fe-connect.c:2585 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) fehlgeschlagen: Fehlercode %d" -#: fe-connect.c:2663 +#: fe-connect.c:2897 #, c-format msgid "invalid connection state, probably indicative of memory corruption" msgstr "ungültiger Verbindungszustand, möglicherweise ein Speicherproblem" -#: fe-connect.c:2746 +#: fe-connect.c:2980 #, c-format msgid "invalid port number: \"%s\"" msgstr "ungültige Portnummer: »%s«" -#: fe-connect.c:2760 +#: fe-connect.c:2994 #, c-format msgid "could not translate host name \"%s\" to address: %s" msgstr "konnte Hostnamen »%s« nicht in Adresse übersetzen: %s" -#: fe-connect.c:2772 +#: fe-connect.c:3006 #, c-format msgid "could not parse network address \"%s\": %s" msgstr "konnte Netzwerkadresse »%s« nicht interpretieren: %s" -#: fe-connect.c:2783 +#: fe-connect.c:3017 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unix-Domain-Socket-Pfad »%s« ist zu lang (maximal %d Bytes)" -#: fe-connect.c:2797 +#: fe-connect.c:3031 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s" msgstr "konnte Unix-Domain-Socket-Pfad »%s« nicht in Adresse übersetzen: %s" -#: fe-connect.c:2963 fe-connect.c:4315 +#: fe-connect.c:3197 fe-connect.c:4641 #, c-format msgid "GSSAPI encryption required but it is not supported over a local socket" msgstr "GSSAPI-Verschlüsselung war gefordert aber wird über lokales Socket nicht unterstützt" -#: fe-connect.c:2971 fe-connect.c:4444 +#: fe-connect.c:3205 fe-connect.c:4770 #, c-format msgid "GSSAPI encryption required but no credential cache" msgstr "GSSAPI-Verschlüsselung war gefordert aber kein Credential-Cache" -#: fe-connect.c:3039 +#: fe-connect.c:3273 #, c-format msgid "could not create socket: %s" msgstr "konnte Socket nicht erzeugen: %s" -#: fe-connect.c:3070 +#: fe-connect.c:3304 #, c-format msgid "could not set socket to nonblocking mode: %s" msgstr "konnte Socket nicht auf nicht-blockierenden Modus umstellen: %s" -#: fe-connect.c:3081 +#: fe-connect.c:3315 #, c-format msgid "could not set socket to close-on-exec mode: %s" msgstr "konnte Socket nicht auf »Close on exec«-Modus umstellen: %s" -#: fe-connect.c:3099 -#, c-format -msgid "keepalives parameter must be an integer" -msgstr "Parameter »keepalives« muss eine ganze Zahl sein" - -#: fe-connect.c:3238 +#: fe-connect.c:3472 #, c-format msgid "could not get socket error status: %s" msgstr "konnte Socket-Fehlerstatus nicht ermitteln: %s" -#: fe-connect.c:3265 +#: fe-connect.c:3499 #, c-format msgid "could not get client address from socket: %s" msgstr "konnte Client-Adresse vom Socket nicht ermitteln: %s" -#: fe-connect.c:3291 +#: fe-connect.c:3525 #, c-format msgid "requirepeer parameter is not supported on this platform" msgstr "Parameter »requirepeer« wird auf dieser Plattform nicht unterstützt" -#: fe-connect.c:3293 +#: fe-connect.c:3527 #, c-format msgid "could not get peer credentials: %s" msgstr "konnte Credentials von Gegenstelle nicht ermitteln: %s" -#: fe-connect.c:3306 +#: fe-connect.c:3540 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"" msgstr "requirepeer gibt »%s« an, aber tatsächlicher Benutzername der Gegenstelle ist »%s«" -#: fe-connect.c:3344 +#: fe-connect.c:3578 #, c-format msgid "could not send GSSAPI negotiation packet: %s" msgstr "konnte Paket zur GSSAPI-Verhandlung nicht senden: %s" -#: fe-connect.c:3393 +#: fe-connect.c:3617 #, c-format msgid "could not send SSL negotiation packet: %s" msgstr "konnte Paket zur SSL-Verhandlung nicht senden: %s" -#: fe-connect.c:3425 +#: fe-connect.c:3649 #, c-format msgid "could not send cancel packet: %s" msgstr "konnte Cancel-Paket nicht senden: %s" -#: fe-connect.c:3455 +#: fe-connect.c:3679 #, c-format msgid "could not send startup packet: %s" msgstr "konnte Startpaket nicht senden: %s" -#: fe-connect.c:3522 +#: fe-connect.c:3752 msgid "server does not support SSL, but SSL was required" msgstr "Server unterstützt kein SSL, aber SSL wurde verlangt" -#: fe-connect.c:3541 +#: fe-connect.c:3762 +#, c-format +msgid "server sent an error response during SSL exchange" +msgstr "Server hat während des SSL-Austauschs eine Fehlermeldung gesendet" + +#: fe-connect.c:3767 #, c-format msgid "received invalid response to SSL negotiation: %c" msgstr "ungültige Antwort auf SSL-Verhandlungspaket empfangen: %c" -#: fe-connect.c:3569 +#: fe-connect.c:3787 #, c-format msgid "received unencrypted data after SSL response" msgstr "unverschlüsselte Daten nach SSL-Antwort empfangen" -#: fe-connect.c:3643 +#: fe-connect.c:3850 +#, c-format +msgid "server sent an error response during GSS encryption exchange" +msgstr "Server hat während des GSS-Verschlüsselungsaustauschs eine Fehlermeldung gesendet" + +#: fe-connect.c:3868 msgid "server doesn't support GSSAPI encryption, but it was required" msgstr "Server unterstützt keine GSSAPI-Verschlüsselung, sie wurde aber verlangt" -#: fe-connect.c:3647 +#: fe-connect.c:3872 #, c-format msgid "received invalid response to GSSAPI negotiation: %c" msgstr "ungültige Antwort auf GSSAPI-Verhandlungspaket empfangen: %c" -#: fe-connect.c:3665 +#: fe-connect.c:3894 #, c-format msgid "received unencrypted data after GSSAPI encryption response" msgstr "unverschlüsselte Daten nach GSSAPI-Verschlüsselungsantwort empfangen" -#: fe-connect.c:3721 +#: fe-connect.c:3955 #, c-format msgid "expected authentication request from server, but received %c" msgstr "Authentifizierungsanfrage wurde vom Server erwartet, aber %c wurde empfangen" -#: fe-connect.c:3749 fe-connect.c:3872 +#: fe-connect.c:3983 fe-connect.c:4106 #, c-format msgid "received invalid authentication request" msgstr "ungültige Authentifizierungsanforderung empfangen" -#: fe-connect.c:3755 fe-connect.c:3857 +#: fe-connect.c:3989 fe-connect.c:4091 #, c-format msgid "received invalid protocol negotiation message" msgstr "ungültige Protokollverhandlungsnachricht empfangen" -#: fe-connect.c:3774 fe-connect.c:3828 +#: fe-connect.c:4008 fe-connect.c:4062 #, c-format msgid "received invalid error message" msgstr "ungültige Fehlermeldung empfangen" -#: fe-connect.c:3943 +#: fe-connect.c:4185 +#, c-format +msgid "internal error: async authentication has no handler" +msgstr "" + +#: fe-connect.c:4210 +#, c-format +msgid "internal error: async cleanup did not release polling socket" +msgstr "" + +#: fe-connect.c:4233 +#, c-format +msgid "internal error: async authentication did not set a socket for polling" +msgstr "" + +#: fe-connect.c:4266 #, c-format msgid "unexpected message from server during startup" msgstr "unerwartete Nachricht vom Server beim Start" -#: fe-connect.c:4034 +#: fe-connect.c:4357 #, c-format msgid "session is read-only" msgstr "Sitzung ist read-only" -#: fe-connect.c:4036 +#: fe-connect.c:4359 #, c-format msgid "session is not read-only" msgstr "Sitzung ist nicht read-only" -#: fe-connect.c:4089 +#: fe-connect.c:4412 #, c-format msgid "server is in hot standby mode" msgstr "Server ist im Hot-Standby-Modus" -#: fe-connect.c:4091 +#: fe-connect.c:4414 #, c-format msgid "server is not in hot standby mode" msgstr "Server ist nicht im Hot-Standby-Modus" -#: fe-connect.c:4213 fe-connect.c:4263 +#: fe-connect.c:4539 fe-connect.c:4589 #, c-format msgid "\"%s\" failed" msgstr "»%s« fehlgeschlagen" -#: fe-connect.c:4277 +#: fe-connect.c:4603 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption" msgstr "ungültiger Verbindungszustand %d, möglicherweise ein Speicherproblem" -#: fe-connect.c:5096 +#: fe-connect.c:5432 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://" msgstr "ungültige LDAP-URL »%s«: Schema muss ldap:// sein" -#: fe-connect.c:5111 +#: fe-connect.c:5447 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name" msgstr "ungültige LDAP-URL »%s«: Distinguished Name fehlt" -#: fe-connect.c:5123 fe-connect.c:5181 +#: fe-connect.c:5459 fe-connect.c:5517 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute" msgstr "ungültige LDAP-URL »%s«: muss genau ein Attribut haben" -#: fe-connect.c:5135 fe-connect.c:5197 +#: fe-connect.c:5471 fe-connect.c:5533 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)" msgstr "ungültige LDAP-URL »%s«: Suchbereich fehlt (base/one/sub)" -#: fe-connect.c:5147 +#: fe-connect.c:5483 #, c-format msgid "invalid LDAP URL \"%s\": no filter" msgstr "ungültige LDAP-URL »%s«: kein Filter" -#: fe-connect.c:5169 +#: fe-connect.c:5505 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number" msgstr "ungültige LDAP-URL »%s«: ungültige Portnummer" -#: fe-connect.c:5206 +#: fe-connect.c:5542 #, c-format msgid "could not create LDAP structure" msgstr "konnte LDAP-Struktur nicht erzeugen" -#: fe-connect.c:5281 +#: fe-connect.c:5617 #, c-format msgid "lookup on LDAP server failed: %s" msgstr "Suche auf LDAP-Server fehlgeschlagen: %s" -#: fe-connect.c:5291 +#: fe-connect.c:5627 #, c-format msgid "more than one entry found on LDAP lookup" msgstr "LDAP-Suche ergab mehr als einen Eintrag" -#: fe-connect.c:5293 fe-connect.c:5304 +#: fe-connect.c:5629 fe-connect.c:5640 #, c-format msgid "no entry found on LDAP lookup" msgstr "kein Eintrag gefunden bei LDAP-Suche" -#: fe-connect.c:5314 fe-connect.c:5326 +#: fe-connect.c:5650 fe-connect.c:5662 #, c-format msgid "attribute has no values on LDAP lookup" msgstr "Attribut hat keine Werte bei LDAP-Suche" -#: fe-connect.c:5377 fe-connect.c:5396 fe-connect.c:5920 +#: fe-connect.c:5713 fe-connect.c:5732 fe-connect.c:6256 #, c-format msgid "missing \"=\" after \"%s\" in connection info string" msgstr "fehlendes »=« nach »%s« in der Zeichenkette der Verbindungsdaten" -#: fe-connect.c:5467 fe-connect.c:6103 fe-connect.c:6901 +#: fe-connect.c:5803 fe-connect.c:6439 fe-connect.c:7269 #, c-format msgid "invalid connection option \"%s\"" msgstr "ungültige Verbindungsoption »%s«" -#: fe-connect.c:5482 fe-connect.c:5968 +#: fe-connect.c:5818 fe-connect.c:6304 #, c-format msgid "unterminated quoted string in connection info string" msgstr "fehlendes schließendes Anführungszeichen (\") in der Zeichenkette der Verbindungsdaten" -#: fe-connect.c:5562 +#: fe-connect.c:5898 #, c-format msgid "definition of service \"%s\" not found" msgstr "Definition von Service »%s« nicht gefunden" -#: fe-connect.c:5588 +#: fe-connect.c:5924 #, c-format msgid "service file \"%s\" not found" msgstr "Servicedatei »%s« nicht gefunden" -#: fe-connect.c:5601 +#: fe-connect.c:5937 #, c-format msgid "line %d too long in service file \"%s\"" msgstr "Zeile %d zu lang in Servicedatei »%s«" -#: fe-connect.c:5672 fe-connect.c:5715 +#: fe-connect.c:6008 fe-connect.c:6051 #, c-format msgid "syntax error in service file \"%s\", line %d" msgstr "Syntaxfehler in Servicedatei »%s«, Zeile %d" -#: fe-connect.c:5683 +#: fe-connect.c:6019 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d" msgstr "geschachtelte »service«-Definitionen werden nicht unterstützt in Servicedatei »%s«, Zeile %d" -#: fe-connect.c:6422 +#: fe-connect.c:6758 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"" msgstr "ungültige URI an interne Parserroutine weitergeleitet: »%s«" -#: fe-connect.c:6499 +#: fe-connect.c:6835 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"" msgstr "Ende der Eingabezeichenkette gefunden beim Suchen nach passendem »]« in IPv6-Hostadresse in URI: »%s«" -#: fe-connect.c:6506 +#: fe-connect.c:6842 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"" msgstr "IPv6-Hostadresse darf nicht leer sein in URI: »%s«" -#: fe-connect.c:6521 +#: fe-connect.c:6857 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"" msgstr "unerwartetes Zeichen »%c« an Position %d in URI (»:« oder »/« erwartet): »%s«" -#: fe-connect.c:6650 +#: fe-connect.c:6986 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "zusätzliches Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«" -#: fe-connect.c:6670 +#: fe-connect.c:7006 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "fehlendes Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«" -#: fe-connect.c:6722 +#: fe-connect.c:7058 #, c-format msgid "invalid URI query parameter: \"%s\"" msgstr "ungültiger URI-Query-Parameter: »%s«" -#: fe-connect.c:6796 +#: fe-connect.c:7142 #, c-format msgid "invalid percent-encoded token: \"%s\"" msgstr "ungültiges Prozent-kodiertes Token: »%s«" -#: fe-connect.c:6806 +#: fe-connect.c:7152 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"" msgstr "verbotener Wert %%00 in Prozent-kodiertem Wert: »%s«" -#: fe-connect.c:7170 +#: fe-connect.c:7174 +#, c-format +msgid "unexpected spaces found in \"%s\", use percent-encoded spaces (%%20) instead" +msgstr "unerwartete Leerzeichen in »%s« gefunden, verwenden Sie stattdessen Prozent-kodierte Leerzeichen (%%20)" + +#: fe-connect.c:7556 msgid "connection pointer is NULL\n" msgstr "Verbindung ist ein NULL-Zeiger\n" -#: fe-connect.c:7178 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 -#: fe-protocol3.c:991 fe-protocol3.c:1024 +#: fe-connect.c:7564 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 +#: fe-protocol3.c:987 fe-protocol3.c:1020 msgid "out of memory\n" msgstr "Speicher aufgebraucht\n" -#: fe-connect.c:7469 +#: fe-connect.c:7866 #, 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:7478 +#: fe-connect.c:7876 #, 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:7585 +#: fe-connect.c:7980 #, c-format msgid "password retrieved from file \"%s\"" msgstr "Passwort wurde aus Datei »%s« gelesen" -#: fe-connect.c:7737 +#: fe-connect.c:8146 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"" msgstr "ungültiger Zahlenwert »%s« für Verbindungsoption »%s«" @@ -821,7 +876,7 @@ msgstr "ungültiger Zahlenwert »%s« für Verbindungsoption »%s«" 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:531 fe-protocol3.c:1993 +#: fe-exec.c:531 fe-protocol3.c:1985 #, c-format msgid "%s" msgstr "%s" @@ -912,7 +967,7 @@ msgstr "PQexec ist während COPY BOTH nicht erlaubt" msgid "unrecognized message type \"%c\"" msgstr "unbekannter Message-Typ »%c«" -#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1924 +#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1916 #, c-format msgid "no COPY in progress" msgstr "keine COPY in Ausführung" @@ -970,11 +1025,16 @@ msgstr "Parameternummer %d ist außerhalb des zulässigen Bereichs 0..%d" msgid "could not interpret result from server: %s" msgstr "konnte Ergebnis vom Server nicht interpretieren: %s" -#: fe-exec.c:4127 fe-exec.c:4217 +#: fe-exec.c:4140 fe-exec.c:4253 #, c-format msgid "incomplete multibyte character" msgstr "unvollständiges Mehrbyte-Zeichen" +#: fe-exec.c:4142 fe-exec.c:4272 +#, c-format +msgid "invalid multibyte character" +msgstr "ungültiges Mehrbytezeichen" + #: fe-gssapi-common.c:122 msgid "GSSAPI name import error" msgstr "GSSAPI-Namensimportfehler" @@ -1031,8 +1091,8 @@ msgstr "Integer der Größe %lu wird von pqGetInt nicht unterstützt" msgid "integer of size %lu not supported by pqPutInt" msgstr "Integer der Größe %lu wird von pqPutInt nicht unterstützt" -#: fe-misc.c:750 fe-secure-openssl.c:203 fe-secure-openssl.c:309 -#: fe-secure.c:237 fe-secure.c:404 +#: fe-misc.c:765 fe-secure-openssl.c:180 fe-secure-openssl.c:286 +#: fe-secure.c:222 fe-secure.c:389 #, c-format msgid "" "server closed the connection unexpectedly\n" @@ -1043,21 +1103,21 @@ msgstr "" "\tDas heißt wahrscheinlich, dass der Server abnormal beendete\n" "\tbevor oder während die Anweisung bearbeitet wurde." -#: fe-misc.c:817 +#: fe-misc.c:832 msgid "connection not open\n" msgstr "Verbindung nicht offen\n" -#: fe-misc.c:1002 +#: fe-misc.c:1020 #, c-format msgid "timeout expired" msgstr "Timeout abgelaufen" -#: fe-misc.c:1046 +#: fe-misc.c:1072 #, c-format msgid "invalid socket" msgstr "ungültiges Socket" -#: fe-misc.c:1068 +#: fe-misc.c:1095 #, c-format msgid "%s() failed: %s" msgstr "%s() fehlgeschlagen: %s" @@ -1077,138 +1137,138 @@ msgstr "Server sendete Daten (»D«-Nachricht) ohne vorherige Zeilenbeschreibung msgid "unexpected response from server; first received character was \"%c\"" msgstr "unerwartete Antwort vom Server; erstes empfangenes Zeichen war »%c«" -#: fe-protocol3.c:467 +#: fe-protocol3.c:463 #, c-format msgid "message contents do not agree with length in message type \"%c\"" msgstr "Nachrichteninhalt stimmt nicht mit Länge in Nachrichtentyp »%c« überein" -#: fe-protocol3.c:485 +#: fe-protocol3.c:481 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d" msgstr "Synchronisation mit Server verloren: Nachrichtentyp »%c« empfangen, Länge %d" -#: fe-protocol3.c:537 fe-protocol3.c:577 +#: fe-protocol3.c:533 fe-protocol3.c:573 msgid "insufficient data in \"T\" message" msgstr "nicht genug Daten in »T«-Nachricht" -#: fe-protocol3.c:648 fe-protocol3.c:854 +#: fe-protocol3.c:644 fe-protocol3.c:850 msgid "out of memory for query result" msgstr "Speicher für Anfrageergebnis aufgebraucht" -#: fe-protocol3.c:717 +#: fe-protocol3.c:713 msgid "insufficient data in \"t\" message" msgstr "nicht genug Daten in »t«-Nachricht" -#: fe-protocol3.c:776 fe-protocol3.c:808 fe-protocol3.c:826 +#: fe-protocol3.c:772 fe-protocol3.c:804 fe-protocol3.c:822 msgid "insufficient data in \"D\" message" msgstr "nicht genug Daten in »D«-Nachricht" -#: fe-protocol3.c:782 +#: fe-protocol3.c:778 msgid "unexpected field count in \"D\" message" msgstr "unerwartete Feldzahl in »D«-Nachricht" -#: fe-protocol3.c:1037 +#: fe-protocol3.c:1033 msgid "no error message available\n" msgstr "keine Fehlermeldung verfügbar\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1085 fe-protocol3.c:1104 +#: fe-protocol3.c:1081 fe-protocol3.c:1100 #, c-format msgid " at character %s" msgstr " bei Zeichen %s" -#: fe-protocol3.c:1117 +#: fe-protocol3.c:1113 #, c-format msgid "DETAIL: %s\n" msgstr "DETAIL: %s\n" -#: fe-protocol3.c:1120 +#: fe-protocol3.c:1116 #, c-format msgid "HINT: %s\n" msgstr "TIP: %s\n" -#: fe-protocol3.c:1123 +#: fe-protocol3.c:1119 #, c-format msgid "QUERY: %s\n" msgstr "ANFRAGE: %s\n" -#: fe-protocol3.c:1130 +#: fe-protocol3.c:1126 #, c-format msgid "CONTEXT: %s\n" msgstr "KONTEXT: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1135 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMANAME: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1139 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABELLENNAME: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1143 #, c-format msgid "COLUMN NAME: %s\n" msgstr "SPALTENNAME: %s\n" -#: fe-protocol3.c:1151 +#: fe-protocol3.c:1147 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATENTYPNAME: %s\n" -#: fe-protocol3.c:1155 +#: fe-protocol3.c:1151 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "CONSTRAINT-NAME: %s\n" -#: fe-protocol3.c:1167 +#: fe-protocol3.c:1163 msgid "LOCATION: " msgstr "ORT: " -#: fe-protocol3.c:1169 +#: fe-protocol3.c:1165 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1171 +#: fe-protocol3.c:1167 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1366 +#: fe-protocol3.c:1362 #, c-format msgid "LINE %d: " msgstr "ZEILE %d: " -#: fe-protocol3.c:1440 +#: fe-protocol3.c:1436 #, c-format msgid "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u" msgstr "Protokollversion nicht vom Server unterstützt: Client verwendet %u.%u, Server unterstützt bis %u.%u" -#: fe-protocol3.c:1446 +#: fe-protocol3.c:1442 #, c-format msgid "protocol extension not supported by server: %s" msgid_plural "protocol extensions not supported by server: %s" msgstr[0] "Protokollerweiterung nicht vom Server unterstützt: %s" msgstr[1] "Protokollerweiterungen nicht vom Server unterstützt: %s" -#: fe-protocol3.c:1454 +#: fe-protocol3.c:1450 #, c-format msgid "invalid %s message" msgstr "ungültige %s-Nachricht" -#: fe-protocol3.c:1819 +#: fe-protocol3.c:1811 #, c-format msgid "PQgetline: not doing text COPY OUT" msgstr "PQgetline: Text COPY OUT nicht ausgeführt" -#: fe-protocol3.c:2193 +#: fe-protocol3.c:2186 #, c-format msgid "protocol error: no function result" msgstr "Protokollfehler: kein Funktionsergebnis" -#: fe-protocol3.c:2204 +#: fe-protocol3.c:2198 #, c-format msgid "protocol error: id=0x%x" msgstr "Protokollfehler: id=0x%x" @@ -1290,92 +1350,92 @@ msgstr "GSSAPI-Fehler bei der Größenprüfung" msgid "GSSAPI context establishment error" msgstr "GSSAPI-Fehler beim Einrichten des Kontexts" -#: fe-secure-openssl.c:207 fe-secure-openssl.c:313 fe-secure-openssl.c:1524 +#: fe-secure-openssl.c:184 fe-secure-openssl.c:290 fe-secure-openssl.c:1320 #, c-format msgid "SSL SYSCALL error: %s" msgstr "SSL-SYSCALL-Fehler: %s" -#: fe-secure-openssl.c:213 fe-secure-openssl.c:319 fe-secure-openssl.c:1527 +#: fe-secure-openssl.c:190 fe-secure-openssl.c:296 fe-secure-openssl.c:1323 #, c-format msgid "SSL SYSCALL error: EOF detected" msgstr "SSL-SYSCALL-Fehler: Dateiende entdeckt" -#: fe-secure-openssl.c:223 fe-secure-openssl.c:329 fe-secure-openssl.c:1535 +#: fe-secure-openssl.c:200 fe-secure-openssl.c:306 fe-secure-openssl.c:1331 #, c-format msgid "SSL error: %s" msgstr "SSL-Fehler: %s" -#: fe-secure-openssl.c:237 fe-secure-openssl.c:343 +#: fe-secure-openssl.c:214 fe-secure-openssl.c:320 #, c-format msgid "SSL connection has been closed unexpectedly" msgstr "SSL-Verbindung wurde unerwartet geschlossen" -#: fe-secure-openssl.c:242 fe-secure-openssl.c:348 fe-secure-openssl.c:1582 +#: fe-secure-openssl.c:219 fe-secure-openssl.c:325 fe-secure-openssl.c:1378 #, c-format msgid "unrecognized SSL error code: %d" msgstr "unbekannter SSL-Fehlercode: %d" -#: fe-secure-openssl.c:390 +#: fe-secure-openssl.c:367 #, c-format msgid "could not determine server certificate signature algorithm" msgstr "konnte Signaturalgorithmus des Serverzertifikats nicht ermitteln" -#: fe-secure-openssl.c:410 +#: fe-secure-openssl.c:387 #, c-format msgid "could not find digest for NID %s" msgstr "konnte Digest für NID %s nicht finden" -#: fe-secure-openssl.c:419 +#: fe-secure-openssl.c:396 #, c-format msgid "could not generate peer certificate hash" msgstr "konnte Hash des Zertifikats der Gegenstelle nicht erzeugen" -#: fe-secure-openssl.c:501 +#: fe-secure-openssl.c:478 #, c-format msgid "SSL certificate's name entry is missing" msgstr "Namenseintrag fehlt im SSL-Zertifikat" -#: fe-secure-openssl.c:535 +#: fe-secure-openssl.c:508 #, c-format msgid "SSL certificate's address entry is missing" msgstr "Adresseintrag fehlt im SSL-Zertifikat" -#: fe-secure-openssl.c:935 +#: fe-secure-openssl.c:731 #, c-format msgid "could not create SSL context: %s" msgstr "konnte SSL-Kontext nicht erzeugen: %s" -#: fe-secure-openssl.c:977 +#: fe-secure-openssl.c:773 #, c-format msgid "invalid value \"%s\" for minimum SSL protocol version" msgstr "ungültiger Wert »%s« für minimale SSL-Protokollversion" -#: fe-secure-openssl.c:987 +#: fe-secure-openssl.c:783 #, c-format msgid "could not set minimum SSL protocol version: %s" msgstr "konnte minimale SSL-Protokollversion nicht setzen: %s" -#: fe-secure-openssl.c:1003 +#: fe-secure-openssl.c:799 #, c-format msgid "invalid value \"%s\" for maximum SSL protocol version" msgstr "ungültiger Wert »%s« für maximale SSL-Protokollversion" -#: fe-secure-openssl.c:1013 +#: fe-secure-openssl.c:809 #, c-format msgid "could not set maximum SSL protocol version: %s" msgstr "konnte maximale SSL-Protokollversion nicht setzen: %s" -#: fe-secure-openssl.c:1051 +#: fe-secure-openssl.c:847 #, c-format msgid "could not load system root certificate paths: %s" msgstr "konnte System-Root-Zertifikat-Pfade nicht laden: %s" -#: fe-secure-openssl.c:1068 +#: fe-secure-openssl.c:864 #, c-format msgid "could not read root certificate file \"%s\": %s" msgstr "konnte Root-Zertifikat-Datei »%s« nicht lesen: %s" -#: fe-secure-openssl.c:1120 +#: fe-secure-openssl.c:916 #, c-format msgid "" "could not get home directory to locate root certificate file\n" @@ -1384,7 +1444,7 @@ msgstr "" "konnte Home-Verzeichnis nicht ermitteln, um Root-Zertifikat-Datei zu finden\n" "Legen Sie entweder die Datei an, verwenden Sie die vertrauenswürdigen Roots des Systems mit sslrootcert=system, oder ändern Sie sslmode, um die Überprüfung der Serverzertifikate abzuschalten." -#: fe-secure-openssl.c:1123 +#: fe-secure-openssl.c:919 #, c-format msgid "" "root certificate file \"%s\" does not exist\n" @@ -1393,127 +1453,127 @@ msgstr "" "Root-Zertifikat-Datei »%s« existiert nicht\n" "Legen Sie entweder die Datei an, verwenden Sie die vertrauenswürdigen Roots des Systems mit sslrootcert=system, oder ändern Sie sslmode, um die Überprüfung der Serverzertifikate abzuschalten." -#: fe-secure-openssl.c:1158 +#: fe-secure-openssl.c:954 #, c-format msgid "could not open certificate file \"%s\": %s" msgstr "konnte Zertifikatdatei »%s« nicht öffnen: %s" -#: fe-secure-openssl.c:1176 +#: fe-secure-openssl.c:972 #, c-format msgid "could not read certificate file \"%s\": %s" msgstr "konnte Zertifikatdatei »%s« nicht lesen: %s" -#: fe-secure-openssl.c:1200 +#: fe-secure-openssl.c:996 #, c-format msgid "could not establish SSL connection: %s" msgstr "konnte SSL-Verbindung nicht aufbauen: %s" -#: fe-secure-openssl.c:1232 +#: fe-secure-openssl.c:1028 #, c-format msgid "could not set SSL Server Name Indication (SNI): %s" msgstr "konnte SSL-Server-Name-Indication (SNI) nicht setzen: %s" -#: fe-secure-openssl.c:1249 +#: fe-secure-openssl.c:1045 #, c-format msgid "could not set SSL ALPN extension: %s" msgstr "konnte SSL-ALPN-Erweiterung nicht setzen: %s" -#: fe-secure-openssl.c:1292 +#: fe-secure-openssl.c:1088 #, c-format msgid "could not load SSL engine \"%s\": %s" msgstr "konnte SSL-Engine »%s« nicht laden: %s" -#: fe-secure-openssl.c:1303 +#: fe-secure-openssl.c:1099 #, c-format msgid "could not initialize SSL engine \"%s\": %s" msgstr "konnte SSL-Engine »%s« nicht initialisieren: %s" -#: fe-secure-openssl.c:1318 +#: fe-secure-openssl.c:1114 #, c-format msgid "could not read private SSL key \"%s\" from engine \"%s\": %s" msgstr "konnte privaten SSL-Schlüssel »%s« nicht von Engine »%s« lesen: %s" -#: fe-secure-openssl.c:1331 +#: fe-secure-openssl.c:1127 #, c-format msgid "could not load private SSL key \"%s\" from engine \"%s\": %s" msgstr "konnte privaten SSL-Schlüssel »%s« nicht von Engine »%s« laden: %s" -#: fe-secure-openssl.c:1368 +#: fe-secure-openssl.c:1164 #, c-format msgid "certificate present, but not private key file \"%s\"" msgstr "Zertifikat vorhanden, aber keine private Schlüsseldatei »%s«" -#: fe-secure-openssl.c:1371 +#: fe-secure-openssl.c:1167 #, c-format msgid "could not stat private key file \"%s\": %m" msgstr "konnte »stat« für private Schlüsseldatei »%s« nicht ausführen: %m" -#: fe-secure-openssl.c:1379 +#: fe-secure-openssl.c:1175 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "private Schlüsseldatei »%s« ist keine normale Datei" -#: fe-secure-openssl.c:1412 +#: fe-secure-openssl.c:1208 #, 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" 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" -#: fe-secure-openssl.c:1436 +#: fe-secure-openssl.c:1232 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "konnte private Schlüsseldatei »%s« nicht laden: %s" -#: fe-secure-openssl.c:1452 +#: fe-secure-openssl.c:1248 #, c-format msgid "certificate does not match private key file \"%s\": %s" msgstr "Zertifikat passt nicht zur privaten Schlüsseldatei »%s«: %s" -#: fe-secure-openssl.c:1521 +#: fe-secure-openssl.c:1317 #, c-format msgid "SSL error: certificate verify failed: %s" msgstr "SSL-Fehler: Zertifikatsüberprüfung fehlgeschlagen: %s" -#: fe-secure-openssl.c:1566 +#: fe-secure-openssl.c:1362 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s." msgstr "Das zeigt möglicherweise an, dass der Server keine SSL-Protokollversion zwischen %s und %s unterstützt." -#: fe-secure-openssl.c:1598 +#: fe-secure-openssl.c:1394 #, c-format msgid "direct SSL connection was established without ALPN protocol negotiation extension" msgstr "direkte SSL-Verbindung wurde ohne ALPN-Erweiterung zur Protokollverhandlung aufgebaut" -#: fe-secure-openssl.c:1610 +#: fe-secure-openssl.c:1406 #, c-format msgid "SSL connection was established with unexpected ALPN protocol" msgstr "SSL-Verbindung wurde mit unerwartetem ALPN-Protokoll aufgebaut" -#: fe-secure-openssl.c:1627 +#: fe-secure-openssl.c:1423 #, c-format msgid "certificate could not be obtained: %s" msgstr "Zertifikat konnte nicht ermittelt werden: %s" -#: fe-secure-openssl.c:1734 +#: fe-secure-openssl.c:1502 #, c-format msgid "no SSL error reported" msgstr "kein SSL-Fehler berichtet" -#: fe-secure-openssl.c:1776 +#: fe-secure-openssl.c:1545 #, c-format msgid "SSL error code %lu" msgstr "SSL-Fehlercode %lu" -#: fe-secure-openssl.c:2075 +#: fe-secure-openssl.c:1847 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "WARNUNG: sslpassword abgeschnitten\n" -#: fe-secure.c:248 +#: fe-secure.c:233 #, c-format msgid "could not receive data from server: %s" msgstr "konnte keine Daten vom Server empfangen: %s" -#: fe-secure.c:419 +#: fe-secure.c:404 #, c-format msgid "could not send data to server: %s" msgstr "konnte keine Daten an den Server senden: %s" diff --git a/src/interfaces/libpq/po/ja.po b/src/interfaces/libpq/po/ja.po index ad13b824638c1..4972a66682671 100644 --- a/src/interfaces/libpq/po/ja.po +++ b/src/interfaces/libpq/po/ja.po @@ -7,10 +7,10 @@ # msgid "" msgstr "" -"Project-Id-Version: libpq (PostgreSQL 17)\n" +"Project-Id-Version: libpq (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 11:23+0900\n" -"PO-Revision-Date: 2024-06-14 11:34+0900\n" +"POT-Creation-Date: 2025-04-07 09:45+0900\n" +"PO-Revision-Date: 2025-04-07 15:59+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -20,801 +20,872 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: ../../port/user.c:43 ../../port/user.c:79 -#, c-format -msgid "could not look up local user ID %d: %s" -msgstr "ローカルユーザーID %dの参照に失敗しました: %s" - -#: ../../port/user.c:48 ../../port/user.c:84 -#, c-format -msgid "local user with ID %d does not exist" -msgstr "ID %d を持つローカルユーザーは存在しません" - -#: fe-auth-scram.c:223 +#: fe-auth-scram.c:228 #, c-format msgid "malformed SCRAM message (empty message)" msgstr "SCRAMメッセージのフォーマット異常 (空のメッセージ)" -#: fe-auth-scram.c:228 +#: fe-auth-scram.c:233 #, c-format msgid "malformed SCRAM message (length mismatch)" msgstr "SCRAMメッセージのフォーマット異常 (長さの不整合)" -#: fe-auth-scram.c:272 +#: fe-auth-scram.c:277 #, c-format msgid "could not verify server signature: %s" msgstr "サーバー署名を検証できませんでした: %s" -#: fe-auth-scram.c:278 +#: fe-auth-scram.c:283 #, c-format msgid "incorrect server signature" msgstr "正しくないサーバー署名" -#: fe-auth-scram.c:287 +#: fe-auth-scram.c:292 #, c-format msgid "invalid SCRAM exchange state" msgstr "不正なSCRAM交換状態" -#: fe-auth-scram.c:311 +#: fe-auth-scram.c:316 #, c-format msgid "malformed SCRAM message (attribute \"%c\" expected)" msgstr "SCRAMメッセージのフォーマット異常 (属性 \"%c\" が必要)" -#: fe-auth-scram.c:320 +#: fe-auth-scram.c:325 #, c-format msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")" msgstr "SCRAMメッセージのフォーマット異常 (属性 \"%c\" に文字 \"=\" が必要)" -#: fe-auth-scram.c:360 +#: fe-auth-scram.c:365 #, c-format msgid "could not generate nonce" msgstr "nonce を生成できませんでした" -#: fe-auth-scram.c:369 fe-auth-scram.c:442 fe-auth-scram.c:594 -#: fe-auth-scram.c:614 fe-auth-scram.c:638 fe-auth-scram.c:652 -#: fe-auth-scram.c:698 fe-auth-scram.c:734 fe-auth-scram.c:908 fe-auth.c:296 -#: fe-auth.c:369 fe-auth.c:403 fe-auth.c:618 fe-auth.c:727 fe-auth.c:1199 -#: fe-auth.c:1362 fe-cancel.c:159 fe-connect.c:936 fe-connect.c:976 -#: fe-connect.c:1860 fe-connect.c:2022 fe-connect.c:3430 fe-connect.c:4758 -#: fe-connect.c:5070 fe-connect.c:5325 fe-connect.c:5443 fe-connect.c:5690 -#: fe-connect.c:5770 fe-connect.c:5868 fe-connect.c:6119 fe-connect.c:6146 -#: fe-connect.c:6222 fe-connect.c:6245 fe-connect.c:6269 fe-connect.c:6304 -#: fe-connect.c:6390 fe-connect.c:6398 fe-connect.c:6755 fe-connect.c:6905 -#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4234 fe-exec.c:4398 -#: fe-gssapi-common.c:109 fe-lobj.c:870 fe-protocol3.c:209 fe-protocol3.c:232 -#: fe-protocol3.c:255 fe-protocol3.c:272 fe-protocol3.c:293 fe-protocol3.c:369 -#: fe-protocol3.c:737 fe-protocol3.c:976 fe-protocol3.c:1787 -#: fe-protocol3.c:2187 fe-secure-common.c:110 fe-secure-gssapi.c:496 -#: fe-secure-openssl.c:427 fe-secure-openssl.c:1277 +#: fe-auth-scram.c:374 fe-auth-scram.c:447 fe-auth-scram.c:599 +#: fe-auth-scram.c:619 fe-auth-scram.c:643 fe-auth-scram.c:657 +#: fe-auth-scram.c:703 fe-auth-scram.c:739 fe-auth-scram.c:931 fe-auth.c:308 +#: fe-auth.c:382 fe-auth.c:416 fe-auth.c:694 fe-auth.c:827 fe-auth.c:1330 +#: fe-auth.c:1493 fe-cancel.c:177 fe-connect.c:1005 fe-connect.c:1045 +#: fe-connect.c:2169 fe-connect.c:2331 fe-connect.c:3724 fe-connect.c:5172 +#: fe-connect.c:5485 fe-connect.c:5740 fe-connect.c:5858 fe-connect.c:6105 +#: fe-connect.c:6185 fe-connect.c:6283 fe-connect.c:6534 fe-connect.c:6561 +#: fe-connect.c:6637 fe-connect.c:6660 fe-connect.c:6684 fe-connect.c:6719 +#: fe-connect.c:6805 fe-connect.c:6813 fe-connect.c:7170 fe-connect.c:7352 +#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4291 fe-exec.c:4457 +#: fe-gssapi-common.c:109 fe-lobj.c:870 fe-protocol3.c:210 fe-protocol3.c:233 +#: fe-protocol3.c:256 fe-protocol3.c:273 fe-protocol3.c:294 fe-protocol3.c:368 +#: fe-protocol3.c:732 fe-protocol3.c:972 fe-protocol3.c:1552 +#: fe-protocol3.c:1861 fe-protocol3.c:2262 fe-secure-common.c:110 +#: fe-secure-gssapi.c:496 fe-secure-openssl.c:405 fe-secure-openssl.c:1131 #, c-format msgid "out of memory" msgstr "メモリ不足です" -#: fe-auth-scram.c:376 +#: fe-auth-scram.c:381 #, c-format msgid "could not encode nonce" msgstr "nonceをエンコードできませんでした" -#: fe-auth-scram.c:564 +#: fe-auth-scram.c:569 #, c-format msgid "could not calculate client proof: %s" msgstr "クライアント証明の算出に失敗しました: %s" -#: fe-auth-scram.c:579 +#: fe-auth-scram.c:584 #, c-format msgid "could not encode client proof" msgstr "クライアントの証明のエンコードに失敗しました" -#: fe-auth-scram.c:631 +#: fe-auth-scram.c:636 #, c-format msgid "invalid SCRAM response (nonce mismatch)" msgstr "不正なSCRAM応答 (nonce の不一致)" -#: fe-auth-scram.c:661 +#: fe-auth-scram.c:666 #, c-format msgid "malformed SCRAM message (invalid salt)" msgstr "SCRAMメッセージのフォーマット異常 (不正なソルト)" -#: fe-auth-scram.c:674 +#: fe-auth-scram.c:679 #, c-format msgid "malformed SCRAM message (invalid iteration count)" msgstr "SCRAMメッセージのフォーマット異常 (不正な繰り返し回数)" -#: fe-auth-scram.c:679 +#: fe-auth-scram.c:684 #, c-format msgid "malformed SCRAM message (garbage at end of server-first-message)" msgstr "SCRAMメッセージのフォーマット異常 (server-first-message 終端の余分なデータ)" -#: fe-auth-scram.c:713 +#: fe-auth-scram.c:718 #, c-format msgid "error received from server in SCRAM exchange: %s" msgstr "SCRAM交換中にサーバーからのエラーを受信しました: %s" -#: fe-auth-scram.c:728 +#: fe-auth-scram.c:733 #, c-format msgid "malformed SCRAM message (garbage at end of server-final-message)" msgstr "SCRAMメッセージのフォーマット異常 (server-final-message 終端の余分なデータ)" -#: fe-auth-scram.c:745 +#: fe-auth-scram.c:750 #, c-format msgid "malformed SCRAM message (invalid server signature)" msgstr "SCRAMメッセージのフォーマット異常 (不正なサーバー署名)" -#: fe-auth-scram.c:917 +#: fe-auth-scram.c:940 msgid "could not generate random salt" msgstr "乱数ソルトを生成できませんでした" -#: fe-auth.c:77 +#: fe-auth.c:80 #, c-format msgid "out of memory allocating GSSAPI buffer (%d)" msgstr "GSSAPIバッファの割り当ての際のメモリ不足(%d)" -#: fe-auth.c:138 +#: fe-auth.c:146 msgid "GSSAPI continuation error" msgstr "GSSAI続行エラー" -#: fe-auth.c:168 fe-auth.c:397 fe-gssapi-common.c:97 fe-secure-common.c:99 +#: fe-auth.c:176 fe-auth.c:410 fe-gssapi-common.c:97 fe-secure-common.c:99 #: fe-secure-common.c:173 #, c-format msgid "host name must be specified" msgstr "ホスト名を指定しなければなりません" -#: fe-auth.c:174 +#: fe-auth.c:182 #, c-format msgid "duplicate GSS authentication request" msgstr "重複するGSS認証要求" -#: fe-auth.c:238 +#: fe-auth.c:246 #, c-format msgid "out of memory allocating SSPI buffer (%d)" msgstr "SSPIバッファの割り当ての際のメモリ不足(%d)" -#: fe-auth.c:285 +#: fe-auth.c:297 msgid "SSPI continuation error" msgstr "SSPI続行エラー" -#: fe-auth.c:359 +#: fe-auth.c:372 #, c-format msgid "duplicate SSPI authentication request" msgstr "重複したSSPI認証要求" -#: fe-auth.c:384 +#: fe-auth.c:397 msgid "could not acquire SSPI credentials" msgstr "SSPI資格を入手できませんでした" -#: fe-auth.c:436 +#: fe-auth.c:449 #, c-format msgid "channel binding required, but SSL not in use" msgstr "チャネルバインディングが要求されていますが、SSLが使用されていません" -#: fe-auth.c:442 +#: fe-auth.c:455 #, c-format msgid "duplicate SASL authentication request" msgstr "重複するSASL認証要求" -#: fe-auth.c:500 +#: fe-auth.c:513 #, c-format msgid "channel binding is required, but client does not support it" msgstr "チャネルバインディングが要求されていますが、クライアントがサポートしていません" -#: fe-auth.c:516 +#: fe-auth.c:529 #, c-format msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection" msgstr "サーバーが非SSL接続上で SCRAM-SHA-256-PLUS 認証を提示してきました" -#: fe-auth.c:531 +#: fe-auth.c:551 #, c-format msgid "none of the server's SASL authentication mechanisms are supported" msgstr "サーバー側のいずれのSASL認証機構もサポートされていません" -#: fe-auth.c:538 +#: fe-auth.c:571 +#, c-format +msgid "authentication method requirement \"%s\" failed: server requested %s authentication" +msgstr "必須の認証方式\"%s\"を満たせませんでした: サーバーは %s 認証を要求しました" + +#: fe-auth.c:580 #, c-format msgid "channel binding is required, but server did not offer an authentication method that supports channel binding" msgstr "チャネルバインディングが要求されていますが、サーバーがチャネルバインディングをサポートする認証方式を提供しませんでした" -#: fe-auth.c:640 +#: fe-auth.c:716 #, c-format msgid "out of memory allocating SASL buffer (%d)" msgstr "SASLバッファの割り当ての際のメモリ不足(%d)" -#: fe-auth.c:663 +#: fe-auth.c:758 #, c-format msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed" msgstr "サーバーからAuthenticationSASLFinalを受信しました、しかしSASL認証は完了していません" -#: fe-auth.c:673 +#: fe-auth.c:768 #, c-format msgid "no client response found after SASL exchange success" msgstr "SASL交換の成功後にクライアントからの応答がありません" -#: fe-auth.c:736 fe-auth.c:743 fe-auth.c:1345 fe-auth.c:1356 +#: fe-auth.c:836 fe-auth.c:843 fe-auth.c:1476 fe-auth.c:1487 #, c-format msgid "could not encrypt password: %s" msgstr "パスワードを暗号化できませんでした: %s" -#: fe-auth.c:771 +#: fe-auth.c:873 msgid "server requested a cleartext password" msgstr "サーバーが平文パスワードを要求してきました" -#: fe-auth.c:773 +#: fe-auth.c:875 msgid "server requested a hashed password" msgstr "サーバーがハッシュ化パスワードを要求してきました" -#: fe-auth.c:776 +#: fe-auth.c:878 msgid "server requested GSSAPI authentication" msgstr "サーバーがGSSAPI認証を要求してきました" -#: fe-auth.c:778 +#: fe-auth.c:880 msgid "server requested SSPI authentication" msgstr "サーバーがSSPI認証を要求してきました" -#: fe-auth.c:782 +#: fe-auth.c:884 msgid "server requested SASL authentication" msgstr "サーバーがSASL認証を要求してきました" -#: fe-auth.c:785 +#: fe-auth.c:887 msgid "server requested an unknown authentication type" msgstr "サーバーが不明な認証タイプを要求してきました" -#: fe-auth.c:818 +#: fe-auth.c:920 #, c-format msgid "server did not request an SSL certificate" msgstr "サーバーがSSL証明書を要求してきませんでした" -#: fe-auth.c:823 +#: fe-auth.c:925 #, c-format msgid "server accepted connection without a valid SSL certificate" msgstr "サーバーは有効なSSL証明書なしで接続を受け付けました" -#: fe-auth.c:877 +#: fe-auth.c:979 msgid "server did not complete authentication" msgstr "サーバーが認証を完了しませんでした" -#: fe-auth.c:911 +#: fe-auth.c:1013 #, c-format msgid "authentication method requirement \"%s\" failed: %s" msgstr "必須の認証方式\"%s\"が失敗しました: %s" -#: fe-auth.c:934 +#: fe-auth.c:1036 #, c-format msgid "channel binding required, but server authenticated client without channel binding" msgstr "チャネルバインディングが要求されていますが、サーバーはチャネルバインディングを使用せずに認証を行いました" -#: fe-auth.c:939 +#: fe-auth.c:1041 #, c-format msgid "channel binding required but not supported by server's authentication request" msgstr "チャネルバインディングが要求されていますが、サーバーの認証要求ではサポートされていません" -#: fe-auth.c:973 +#: fe-auth.c:1081 #, c-format msgid "Kerberos 4 authentication not supported" msgstr "Kerberos 4認証はサポートされていません" -#: fe-auth.c:977 +#: fe-auth.c:1085 #, c-format msgid "Kerberos 5 authentication not supported" msgstr "Kerberos 5認証はサポートされていません" -#: fe-auth.c:1047 +#: fe-auth.c:1155 #, c-format msgid "GSSAPI authentication not supported" msgstr "GSSAPI認証はサポートされていません" -#: fe-auth.c:1078 +#: fe-auth.c:1186 #, c-format msgid "SSPI authentication not supported" msgstr "SSPI認証はサポートされていません" -#: fe-auth.c:1085 +#: fe-auth.c:1193 #, c-format msgid "Crypt authentication not supported" msgstr "Crypt認証はサポートされていません" -#: fe-auth.c:1149 +#: fe-auth.c:1267 #, c-format msgid "authentication method %u not supported" msgstr "認証方式%uはサポートされていません" -#: fe-auth.c:1186 +#: fe-auth.c:1307 #, c-format msgid "user name lookup failure: error code %lu" msgstr "ユーザー名の参照に失敗: エラーコード %lu" -#: fe-auth.c:1308 +#: fe-auth.c:1315 +#, c-format +msgid "could not look up local user ID %ld: %m" +msgstr "ローカルユーザーID %ldの参照に失敗しました: %m" + +#: fe-auth.c:1320 +#, c-format +msgid "local user with ID %ld does not exist" +msgstr "ID %ld を持つローカルユーザーは存在しません" + +#: fe-auth.c:1439 #, c-format msgid "unexpected shape of result set returned for SHOW" msgstr "SHOW に対する予期しない形のリザルトセット" -#: fe-auth.c:1316 +#: fe-auth.c:1447 #, c-format msgid "\"password_encryption\" value too long" msgstr "\"password_encryption\"の値が長すぎます" -#: fe-auth.c:1366 +#: fe-auth.c:1497 #, c-format msgid "unrecognized password encryption algorithm \"%s\"" msgstr "認識できないパスワード暗号化アルゴリズム \"%s\"" -#: fe-cancel.c:76 +#: fe-cancel.c:79 #, c-format msgid "connection pointer is NULL" msgstr "接続ポインタはNULLです" -#: fe-cancel.c:82 fe-misc.c:572 +#: fe-cancel.c:85 fe-misc.c:587 #, c-format msgid "connection not open" msgstr "接続はオープンされていません" -#: fe-cancel.c:193 +#: fe-cancel.c:92 +#, c-format +msgid "no cancellation key received" +msgstr "キャンセルキーを受信していません" + +#: fe-cancel.c:211 #, c-format msgid "cancel request is already being sent on this connection" msgstr "このセッションではすでにキャンセル要求を送出済みです" -#: fe-cancel.c:263 +#: fe-cancel.c:281 #, c-format msgid "unexpected response from server" msgstr "サーバーからの想定外の応答" -#: fe-connect.c:1182 +#: fe-connect.c:1302 #, c-format msgid "could not match %d host names to %d hostaddr values" msgstr "%d個のホスト名と%d個のhostaddrの値との突き合せはできません" -#: fe-connect.c:1262 +#: fe-connect.c:1382 #, c-format msgid "could not match %d port numbers to %d hosts" msgstr "%d個のポート番号と%d個のホストとの突き合せはできません" -#: fe-connect.c:1387 +#: fe-connect.c:1510 #, c-format msgid "negative require_auth method \"%s\" cannot be mixed with non-negative methods" msgstr "require_authの方式否定\"%s\"は方式要求と同時に指定することはできません" -#: fe-connect.c:1400 +#: fe-connect.c:1523 #, c-format msgid "require_auth method \"%s\" cannot be mixed with negative methods" msgstr "require_authの方式要求\"%s\"は方式否定と同時に指定することはできません" -#: fe-connect.c:1460 fe-connect.c:1511 fe-connect.c:1553 fe-connect.c:1596 -#: fe-connect.c:1699 fe-connect.c:1745 fe-connect.c:1785 fe-connect.c:1806 +#: fe-connect.c:1599 fe-connect.c:1728 fe-connect.c:1770 fe-connect.c:1813 +#: fe-connect.c:1916 fe-connect.c:1962 fe-connect.c:2002 fe-connect.c:2073 +#: fe-connect.c:8244 #, c-format msgid "invalid %s value: \"%s\"" msgstr "%s の値が不正: \"%s\"" -#: fe-connect.c:1493 +#: fe-connect.c:1641 +#, c-format +msgid "internal error: no space in allowed_sasl_mechs" +msgstr "内部エラー: allowed_sasl_mechs に空きがありません" + +#: fe-connect.c:1680 #, c-format msgid "require_auth method \"%s\" is specified more than once" msgstr "require_authで方式\"%s\"が複数回指定されました" -#: fe-connect.c:1534 fe-connect.c:1573 fe-connect.c:1605 fe-connect.c:1707 +#: fe-connect.c:1751 fe-connect.c:1790 fe-connect.c:1822 fe-connect.c:1924 #, c-format msgid "%s value \"%s\" invalid when SSL support is not compiled in" msgstr "%s 値\"%s\"はSSLサポートがコンパイルされていない場合は無効です" -#: fe-connect.c:1625 +#: fe-connect.c:1842 #, c-format msgid "weak sslmode \"%s\" may not be used with sslnegotiation=direct (use \"require\", \"verify-ca\", or \"verify-full\")" msgstr "弱いsslmode\"%s\"はsslnegotiation=direct とともには使用できません( \"require\", \"verify-ca\"または\"verify-full\"を使用してください)" -#: fe-connect.c:1647 +#: fe-connect.c:1864 #, c-format msgid "weak sslmode \"%s\" may not be used with sslrootcert=system (use \"verify-full\")" msgstr "弱いsslmode\"%s\"はsslrootcert=systemとともには使用できません(\"verify-full\"を使用してください)" -#: fe-connect.c:1660 fe-connect.c:1668 +#: fe-connect.c:1877 fe-connect.c:1885 #, c-format msgid "invalid \"%s\" value: \"%s\"" msgstr "\"%s\"の値が不正: \"%s\"" -#: fe-connect.c:1685 +#: fe-connect.c:1902 #, c-format msgid "invalid SSL protocol version range" msgstr "不正なSSLプロトコルバージョン範囲" -#: fe-connect.c:1722 +#: fe-connect.c:1939 #, c-format msgid "%s value \"%s\" is not supported (check OpenSSL version)" msgstr "%s 値\"%s\"はサポートされていません(OpenSSLのバージョンを確認してください)" -#: fe-connect.c:1752 +#: fe-connect.c:1969 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in" msgstr "gssencmodeの値\"%s\"はGSSAPIサポートがコンパイルされていない場合は不正" -#: fe-connect.c:2045 +#: fe-connect.c:2023 +#, c-format +msgid "invalid SCRAM client key" +msgstr "不正なSCRAMクライアントキー" + +#: fe-connect.c:2029 +#, c-format +msgid "invalid SCRAM client key length: %d" +msgstr "不正なSCRAMクライアントキー長: %d" + +#: fe-connect.c:2048 +#, c-format +msgid "invalid SCRAM server key" +msgstr "不正なSCRAMサーバーキー" + +#: fe-connect.c:2054 +#, c-format +msgid "invalid SCRAM server key length: %d" +msgstr "不正なSCRAMサーバーキー長: %d" + +#: fe-connect.c:2142 +#, c-format +msgid "min_protocol_version is greater than max_protocol_version" +msgstr "min_protocol_version が max_protocol_version よりも大きいです" + +#: fe-connect.c:2354 #, c-format msgid "could not set socket to TCP no delay mode: %s" msgstr "TCPソケットを非遅延モードに設定できませんでした: %s" -#: fe-connect.c:2104 +#: fe-connect.c:2413 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "ソケット\"%s\"のサーバーへの接続に失敗しました: " -#: fe-connect.c:2130 +#: fe-connect.c:2439 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "\"%s\"(%s)、ポート%sのサーバーへの接続に失敗しました: " -#: fe-connect.c:2135 +#: fe-connect.c:2444 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "\"%s\"、ポート%sのサーバーへの接続に失敗しました: " -#: fe-connect.c:2158 +#: fe-connect.c:2467 #, c-format msgid "\tIs the server running locally and accepting connections on that socket?" msgstr "\tサーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?" -#: fe-connect.c:2160 +#: fe-connect.c:2469 #, c-format msgid "\tIs the server running on that host and accepting TCP/IP connections?" msgstr "\tサーバーはそのホスト上で稼働していてTCP/IP接続を受け付けていますか?" -#: fe-connect.c:2206 fe-connect.c:2240 fe-connect.c:2275 fe-connect.c:2373 -#: fe-connect.c:3098 +#: fe-connect.c:2515 fe-connect.c:2549 fe-connect.c:2584 fe-connect.c:2682 +#: fe-connect.c:3408 #, c-format msgid "%s(%s) failed: %s" msgstr "%s(%s)が失敗しました: %s" -#: fe-connect.c:2339 +#: fe-connect.c:2648 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s)が失敗しました: エラーコード %d" -#: fe-connect.c:2650 +#: fe-connect.c:2960 #, c-format msgid "invalid connection state, probably indicative of memory corruption" msgstr "接続状態が不正です。メモリ障害の可能性があります" -#: fe-connect.c:2733 +#: fe-connect.c:3043 #, c-format msgid "invalid port number: \"%s\"" msgstr "不正なポート番号です: \"%s\"" -#: fe-connect.c:2747 +#: fe-connect.c:3057 #, c-format msgid "could not translate host name \"%s\" to address: %s" msgstr "ホスト名\"%s\"をアドレスに変換できませんでした: %s" -#: fe-connect.c:2759 +#: fe-connect.c:3069 #, c-format msgid "could not parse network address \"%s\": %s" msgstr "ネットワークアドレス\"%s\"をパースできませんでした: %s" -#: fe-connect.c:2770 +#: fe-connect.c:3080 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unixドメインソケットのパス\"%s\"が長すぎます(最大 %d バイト)" -#: fe-connect.c:2784 +#: fe-connect.c:3094 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s" msgstr "Unixドメインソケットのパス\"%s\"をアドレスに変換できませんでした: %s" -#: fe-connect.c:2950 fe-connect.c:4302 +#: fe-connect.c:3260 fe-connect.c:4707 #, c-format msgid "GSSAPI encryption required but it is not supported over a local socket" msgstr "GSSAPI暗号化が要求されていますが、ローカルソケットではサポートされません" -#: fe-connect.c:2958 fe-connect.c:4431 +#: fe-connect.c:3268 fe-connect.c:4836 #, c-format msgid "GSSAPI encryption required but no credential cache" msgstr "GSSAPI暗号化が要求されましたが、資格証明キャッシュがありません" -#: fe-connect.c:3026 +#: fe-connect.c:3336 #, c-format msgid "could not create socket: %s" msgstr "ソケットを作成できませんでした: %s" -#: fe-connect.c:3057 +#: fe-connect.c:3367 #, c-format msgid "could not set socket to nonblocking mode: %s" msgstr "ソケットを非ブロッキングモードに設定できませんでした: %s\\" -#: fe-connect.c:3068 +#: fe-connect.c:3378 #, c-format msgid "could not set socket to close-on-exec mode: %s" msgstr "ソケットをclose-on-execモードに設定できませんでした: %s" -#: fe-connect.c:3086 -#, c-format -msgid "keepalives parameter must be an integer" -msgstr "keepaliveのパラメータは整数でなければなりません" - -#: fe-connect.c:3225 +#: fe-connect.c:3535 #, c-format msgid "could not get socket error status: %s" msgstr "ソケットのエラー状態を取得できませんでした: %s" -#: fe-connect.c:3252 +#: fe-connect.c:3562 #, c-format msgid "could not get client address from socket: %s" msgstr "ソケットからクライアントアドレスを取得できませんでした: %s" -#: fe-connect.c:3278 +#: fe-connect.c:3588 #, c-format msgid "requirepeer parameter is not supported on this platform" msgstr "このプラットフォームでは requirepeer パラメータはサポートされていません" -#: fe-connect.c:3280 +#: fe-connect.c:3590 #, c-format msgid "could not get peer credentials: %s" msgstr "接続先の資格証明を取得できませんでした: %s" -#: fe-connect.c:3293 +#: fe-connect.c:3603 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"" msgstr "requirepeerは\"%s\"を指定していますが、実際の接続先名は\"%s\"です" -#: fe-connect.c:3331 +#: fe-connect.c:3641 #, c-format msgid "could not send GSSAPI negotiation packet: %s" msgstr "GSSAPIネゴシエーションパケットを送信できませんでした: %s" -#: fe-connect.c:3380 +#: fe-connect.c:3680 #, c-format msgid "could not send SSL negotiation packet: %s" msgstr "SSLネゴシエーションパケットを送信できませんでした: %s" -#: fe-connect.c:3412 +#: fe-connect.c:3706 #, c-format msgid "could not send cancel packet: %s" msgstr "キャンセルパケットを送信できませんでした: %s" -#: fe-connect.c:3442 +#: fe-connect.c:3736 #, c-format msgid "could not send startup packet: %s" msgstr "開始パケットを送信できませんでした: %s" -#: fe-connect.c:3509 +#: fe-connect.c:3809 msgid "server does not support SSL, but SSL was required" msgstr "サーバーはSSLをサポートしていませんが、要求されています" -#: fe-connect.c:3528 +#: fe-connect.c:3819 +#, c-format +msgid "server sent an error response during SSL exchange" +msgstr "SSLハンドシェイク中にサーバーからエラー応答が返されました" + +#: fe-connect.c:3824 #, c-format msgid "received invalid response to SSL negotiation: %c" msgstr "SSLネゴシエーションに対して不正な応答を受信しました: %c" -#: fe-connect.c:3556 +#: fe-connect.c:3844 #, c-format msgid "received unencrypted data after SSL response" msgstr "SSL応答の後に非暗号化データを受信しました" -#: fe-connect.c:3630 +#: fe-connect.c:3907 +#, c-format +msgid "server sent an error response during GSS encryption exchange" +msgstr "GSS暗号化ハンドシェイク中にサーバーからエラー応答が返されました" + +#: fe-connect.c:3925 msgid "server doesn't support GSSAPI encryption, but it was required" msgstr "サーバーがGSSAPI暗号化サポートしていませんが、要求されてます" -#: fe-connect.c:3634 +#: fe-connect.c:3929 #, c-format msgid "received invalid response to GSSAPI negotiation: %c" msgstr "GSSAPIネゴシエーションに対して不正な応答を受信しました: %c" -#: fe-connect.c:3652 +#: fe-connect.c:3951 #, c-format msgid "received unencrypted data after GSSAPI encryption response" msgstr "GSSAPI暗号化応答の後に非暗号化データを受信しました" -#: fe-connect.c:3708 +#: fe-connect.c:4012 #, c-format msgid "expected authentication request from server, but received %c" msgstr "サーバーからの認証要求を想定していましたが、%cを受信しました" -#: fe-connect.c:3736 fe-connect.c:3859 +#: fe-connect.c:4040 fe-connect.c:4172 #, c-format msgid "received invalid authentication request" msgstr "不正な認証要求を受信しました" -#: fe-connect.c:3742 fe-connect.c:3844 +#: fe-connect.c:4046 #, c-format msgid "received invalid protocol negotiation message" msgstr "不正なプロトコルネゴシエーションメッセージを受信しました" -#: fe-connect.c:3761 fe-connect.c:3815 +#: fe-connect.c:4065 fe-connect.c:4119 #, c-format msgid "received invalid error message" msgstr "不正なエラーメッセージを受信しました" -#: fe-connect.c:3930 +#: fe-connect.c:4149 +#, c-format +msgid "received duplicate protocol negotiation message" +msgstr "重複したプロトコルネゴシエーションメッセージを受信しました" + +#: fe-connect.c:4251 +#, c-format +msgid "internal error: async authentication has no handler" +msgstr "内部エラー: 非同期認証のハンドラーがありません" + +#: fe-connect.c:4276 +#, c-format +msgid "internal error: async cleanup did not release polling socket" +msgstr "内部エラー: 非同期クリーンアップがポーリング中のソケットを解放しませんでした" + +#: fe-connect.c:4299 +#, c-format +msgid "internal error: async authentication did not set a socket for polling" +msgstr "内部エラー: 非同期認証がポーリング対象のソケットを設定しませんでした" + +#: fe-connect.c:4332 #, c-format msgid "unexpected message from server during startup" msgstr "起動中にサーバーから想定外のメッセージがありました" -#: fe-connect.c:4021 +#: fe-connect.c:4423 #, c-format msgid "session is read-only" msgstr "セッションは読み取り専用です" -#: fe-connect.c:4023 +#: fe-connect.c:4425 #, c-format msgid "session is not read-only" msgstr "セッションは読み取り専用ではありません" -#: fe-connect.c:4076 +#: fe-connect.c:4478 #, c-format msgid "server is in hot standby mode" msgstr "サーバーはホットスタンバイモードです" -#: fe-connect.c:4078 +#: fe-connect.c:4480 #, c-format msgid "server is not in hot standby mode" msgstr "サーバーはスタンバイモードではありません" -#: fe-connect.c:4200 fe-connect.c:4250 +#: fe-connect.c:4605 fe-connect.c:4655 #, c-format msgid "\"%s\" failed" msgstr "\"%s\"が失敗しました" -#: fe-connect.c:4264 +#: fe-connect.c:4669 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption" msgstr "接続状態%dは不正です。メモリ障害の可能性があります" -#: fe-connect.c:5083 +#: fe-connect.c:5498 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://" msgstr "不正なLDAP URL\"%s\":スキームはldap://でなければなりません" -#: fe-connect.c:5098 +#: fe-connect.c:5513 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name" msgstr "不正なLDAP URL \"%s\": 識別名がありません" -#: fe-connect.c:5110 fe-connect.c:5168 +#: fe-connect.c:5525 fe-connect.c:5583 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute" msgstr "不正なLDAP URL \"%s\": ちょうど1つの属性を持たなければなりません" -#: fe-connect.c:5122 fe-connect.c:5184 +#: fe-connect.c:5537 fe-connect.c:5599 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)" msgstr "不正なLDAP URL \"%s\": 検索スコープ(base/one/sub)を持たなければなりません" -#: fe-connect.c:5134 +#: fe-connect.c:5549 #, c-format msgid "invalid LDAP URL \"%s\": no filter" msgstr "不正なLDAP URL \"%s\": フィルタがありません" -#: fe-connect.c:5156 +#: fe-connect.c:5571 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number" msgstr "不正なLDAP URL \"%s\": ポート番号が不正です" -#: fe-connect.c:5193 +#: fe-connect.c:5608 #, c-format msgid "could not create LDAP structure" msgstr "LDAP構造体を作成できませんでした" -#: fe-connect.c:5268 +#: fe-connect.c:5683 #, c-format msgid "lookup on LDAP server failed: %s" msgstr "LDAPサーバーで検索に失敗しました: %s" -#: fe-connect.c:5278 +#: fe-connect.c:5693 #, c-format msgid "more than one entry found on LDAP lookup" msgstr "LDAP参照で複数のエントリが見つかりました" -#: fe-connect.c:5280 fe-connect.c:5291 +#: fe-connect.c:5695 fe-connect.c:5706 #, c-format msgid "no entry found on LDAP lookup" msgstr "LDAP参照でエントリが見つかりません" -#: fe-connect.c:5301 fe-connect.c:5313 +#: fe-connect.c:5716 fe-connect.c:5728 #, c-format msgid "attribute has no values on LDAP lookup" msgstr "LDAP参照で属性に値がありません" -#: fe-connect.c:5364 fe-connect.c:5383 fe-connect.c:5907 +#: fe-connect.c:5779 fe-connect.c:5798 fe-connect.c:6322 #, c-format msgid "missing \"=\" after \"%s\" in connection info string" msgstr "接続情報文字列において\"%s\"の後に\"=\"がありませんでした" -#: fe-connect.c:5454 fe-connect.c:6090 fe-connect.c:6888 +#: fe-connect.c:5869 fe-connect.c:6505 fe-connect.c:7335 #, c-format msgid "invalid connection option \"%s\"" msgstr "不正な接続オプション\"%s\"" -#: fe-connect.c:5469 fe-connect.c:5955 +#: fe-connect.c:5884 fe-connect.c:6370 #, c-format msgid "unterminated quoted string in connection info string" msgstr "接続情報文字列内の閉じていない引用符" -#: fe-connect.c:5549 +#: fe-connect.c:5964 #, c-format msgid "definition of service \"%s\" not found" msgstr "サービス定義\"%s\"がみつかりません" -#: fe-connect.c:5575 +#: fe-connect.c:5990 #, c-format msgid "service file \"%s\" not found" msgstr "サービスファイル\"%s\"がみつかりません" -#: fe-connect.c:5588 +#: fe-connect.c:6003 #, c-format msgid "line %d too long in service file \"%s\"" msgstr "サービスファイル\"%2$s\"の行%1$dが長すぎます" -#: fe-connect.c:5659 fe-connect.c:5702 +#: fe-connect.c:6074 fe-connect.c:6117 #, c-format msgid "syntax error in service file \"%s\", line %d" msgstr "サービスファイル\"%s\"の行%dで構文エラー" -#: fe-connect.c:5670 +#: fe-connect.c:6085 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d" msgstr "サービスファイル\"%s\"、行%dでのネストしたサービス指定はサポートされていません" -#: fe-connect.c:6409 +#: fe-connect.c:6824 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"" msgstr "内部パーサ処理へ伝播した不正なURI: \"%s\"" -#: fe-connect.c:6486 +#: fe-connect.c:6901 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"" msgstr "URI \"%s\"内のIPv6ホストアドレスにおいて対応する\"]\"を探している間に文字列が終わりました" -#: fe-connect.c:6493 +#: fe-connect.c:6908 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"" msgstr "URI内ではIPv6ホストアドレスは空であってはなりません: \"%s\"" -#: fe-connect.c:6508 +#: fe-connect.c:6923 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"" msgstr "URI内の位置%2$dに想定外の文字\"%1$c\"があります(\":\"または\"/\"を期待していました): \"%3$s\"" -#: fe-connect.c:6637 +#: fe-connect.c:7052 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "URI問い合わせパラメータ内にキーと値を分ける\"=\"が余分にあります: \"%s\"" -#: fe-connect.c:6657 +#: fe-connect.c:7072 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "URI問い合わせパラメータ内にキーと値を分ける\\\"=\\\"がありません: \"%s\"" -#: fe-connect.c:6709 +#: fe-connect.c:7124 #, c-format msgid "invalid URI query parameter: \"%s\"" msgstr "不正なURI問い合わせパラメータ:\"%s\"" -#: fe-connect.c:6783 +#: fe-connect.c:7208 #, c-format msgid "invalid percent-encoded token: \"%s\"" msgstr "不正なパーセント符号化トークン: \"%s\"" -#: fe-connect.c:6793 +#: fe-connect.c:7218 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"" msgstr "パーセント符号化された値では値%%00は許されません: \"%s\"" -#: fe-connect.c:7157 +#: fe-connect.c:7240 +#, c-format +msgid "unexpected spaces found in \"%s\", use percent-encoded spaces (%%20) instead" +msgstr "\"%s\"に予期しない空白文字があります、代わりにパーセントエンコードされた空白文字(%%20)を使用してください" + +#: fe-connect.c:7622 msgid "connection pointer is NULL\n" msgstr "接続ポインタはNULLです\n" -#: fe-connect.c:7165 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 -#: fe-protocol3.c:991 fe-protocol3.c:1024 +#: fe-connect.c:7630 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 +#: fe-protocol3.c:987 fe-protocol3.c:1020 msgid "out of memory\n" msgstr "メモリ不足\n" -#: fe-connect.c:7456 +#: fe-connect.c:7932 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "WARNING: パスワードファイル\"%s\"がテキストファイルではありません\n" -#: fe-connect.c:7465 +#: fe-connect.c:7942 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "警告: パスワードファイル \"%s\" がグループメンバもしくは他のユーザーから読める状態になっています。この権限はu=rw (0600)以下にすべきです\n" -#: fe-connect.c:7572 +#: fe-connect.c:8046 #, c-format msgid "password retrieved from file \"%s\"" msgstr "パスワードはファイル\"%s\"から取り出しました" -#: fe-connect.c:7724 +#: fe-connect.c:8212 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"" msgstr "接続オプション\"%2$s\"に対する不正な整数値\"%1$s\"" @@ -824,7 +895,7 @@ msgstr "接続オプション\"%2$s\"に対する不正な整数値\"%1$s\"" msgid "row number %d is out of range 0..%d" msgstr "行番号%dは0..%dの範囲を超えています" -#: fe-exec.c:531 fe-protocol3.c:1993 +#: fe-exec.c:531 fe-protocol3.c:2067 #, c-format msgid "%s" msgstr "%s" @@ -915,7 +986,7 @@ msgstr "COPY BOTH 実行中の PQexec は許可されていません" msgid "unrecognized message type \"%c\"" msgstr "認識できないメッセージタイプ\"%c\"" -#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1924 +#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1998 #, c-format msgid "no COPY in progress" msgstr "実行中のCOPYはありません" @@ -973,11 +1044,16 @@ msgstr "パラメータ%dは0..%dの範囲を超えています" msgid "could not interpret result from server: %s" msgstr "サーバーからの結果を解釈できませんでした: %s" -#: fe-exec.c:4127 fe-exec.c:4217 +#: fe-exec.c:4140 fe-exec.c:4253 #, c-format msgid "incomplete multibyte character" msgstr "不完全なマルチバイト文字" +#: fe-exec.c:4142 fe-exec.c:4272 +#, c-format +msgid "invalid multibyte character" +msgstr "不正なマルチバイト文字" + #: fe-gssapi-common.c:122 msgid "GSSAPI name import error" msgstr "GSSAPI名のインポートエラー" @@ -1034,8 +1110,8 @@ msgstr "サイズ%luの整数はpqGetIntでサポートされていません" msgid "integer of size %lu not supported by pqPutInt" msgstr "サイズ%luの整数はpqPutIntでサポートされていません" -#: fe-misc.c:750 fe-secure-openssl.c:203 fe-secure-openssl.c:309 -#: fe-secure.c:237 fe-secure.c:404 +#: fe-misc.c:765 fe-secure-openssl.c:181 fe-secure-openssl.c:287 +#: fe-secure.c:222 fe-secure.c:389 #, c-format msgid "" "server closed the connection unexpectedly\n" @@ -1046,171 +1122,200 @@ msgstr "" " おそらく要求の処理前または処理中にサーバーが異常終了\n" " したことを意味しています。" -#: fe-misc.c:817 +#: fe-misc.c:832 msgid "connection not open\n" msgstr "接続はオープンされていません\n" -#: fe-misc.c:1005 +#: fe-misc.c:1020 #, c-format msgid "timeout expired" msgstr "タイムアウト期間が過ぎました" -#: fe-misc.c:1049 +#: fe-misc.c:1072 #, c-format msgid "invalid socket" msgstr "不正なソケットです" -#: fe-misc.c:1071 +#: fe-misc.c:1095 #, c-format msgid "%s() failed: %s" msgstr "%s() が失敗しました: %s" -#: fe-protocol3.c:187 +#: fe-protocol3.c:188 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "待機中にサーバーからメッセージ種類0x%02xが届きました" -#: fe-protocol3.c:402 +#: fe-protocol3.c:401 #, c-format msgid "server sent data (\"D\" message) without prior row description (\"T\" message)" msgstr "サーバーが先行の行記述(\"T\"メッセージ)なしでデータ(\"D\"メッセージ)を送信しました" -#: fe-protocol3.c:444 +#: fe-protocol3.c:443 #, c-format msgid "unexpected response from server; first received character was \"%c\"" msgstr "サーバーから想定外の応答がありました。受け付けた先頭文字は\"%c\"です" -#: fe-protocol3.c:467 +#: fe-protocol3.c:462 #, c-format msgid "message contents do not agree with length in message type \"%c\"" msgstr "メッセージの内容がメッセージタイプ\"%c\"での長さと合っていません" -#: fe-protocol3.c:485 +#: fe-protocol3.c:480 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d" msgstr "サーバーとの同期が失われました。受信したメッセージタイプは\"%c\"、長さは%d" -#: fe-protocol3.c:537 fe-protocol3.c:577 +#: fe-protocol3.c:532 fe-protocol3.c:572 msgid "insufficient data in \"T\" message" msgstr "\"T\"メッセージ内のデータが不十分です" -#: fe-protocol3.c:648 fe-protocol3.c:854 +#: fe-protocol3.c:643 fe-protocol3.c:849 msgid "out of memory for query result" msgstr "問い合わせ結果用のメモリが不足しています" -#: fe-protocol3.c:717 +#: fe-protocol3.c:712 msgid "insufficient data in \"t\" message" msgstr "\"t\"メッセージ内のデータが足りません" -#: fe-protocol3.c:776 fe-protocol3.c:808 fe-protocol3.c:826 +#: fe-protocol3.c:771 fe-protocol3.c:803 fe-protocol3.c:821 msgid "insufficient data in \"D\" message" msgstr "\"D\"\"メッセージ内のデータが不十分です" -#: fe-protocol3.c:782 +#: fe-protocol3.c:777 msgid "unexpected field count in \"D\" message" msgstr "\"D\"メッセージ内のフィールド数が想定外です。" -#: fe-protocol3.c:1037 +#: fe-protocol3.c:1033 msgid "no error message available\n" msgstr "エラーメッセージがありません\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1085 fe-protocol3.c:1104 +#: fe-protocol3.c:1081 fe-protocol3.c:1100 #, c-format msgid " at character %s" msgstr "(文字位置: %s)" -#: fe-protocol3.c:1117 +#: fe-protocol3.c:1113 #, c-format msgid "DETAIL: %s\n" msgstr "DETAIL: %s\n" -#: fe-protocol3.c:1120 +#: fe-protocol3.c:1116 #, c-format msgid "HINT: %s\n" msgstr "HINT: %s\n" -#: fe-protocol3.c:1123 +#: fe-protocol3.c:1119 #, c-format msgid "QUERY: %s\n" msgstr "QUERY: %s\n" -#: fe-protocol3.c:1130 +#: fe-protocol3.c:1126 #, c-format msgid "CONTEXT: %s\n" msgstr "CONTEXT: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1135 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMA NAME: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1139 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABLE NAME: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1143 #, c-format msgid "COLUMN NAME: %s\n" msgstr "COLUMN NAME: %s\n" -#: fe-protocol3.c:1151 +#: fe-protocol3.c:1147 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATATYPE NAME: %s\n" -#: fe-protocol3.c:1155 +#: fe-protocol3.c:1151 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "CONSTRAINT NAME: %s\n" -#: fe-protocol3.c:1167 +#: fe-protocol3.c:1163 msgid "LOCATION: " msgstr "LOCATION: " -#: fe-protocol3.c:1169 +#: fe-protocol3.c:1165 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1171 +#: fe-protocol3.c:1167 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1366 +#: fe-protocol3.c:1362 #, c-format msgid "LINE %d: " msgstr "行 %d: " -#: fe-protocol3.c:1440 +#: fe-protocol3.c:1424 #, c-format -msgid "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u" -msgstr "サーバーはこのプロトコルバージョンをサポートしていません。クライアントは%u.%uを使用、 サーバーは%u.%uまでをサポートします" +msgid "received invalid protocol negotiation message: server requested downgrade to a higher-numbered version" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーがより大きなバージョン番号へのダウングレードを要求しました" -#: fe-protocol3.c:1446 +#: fe-protocol3.c:1430 #, c-format -msgid "protocol extension not supported by server: %s" -msgid_plural "protocol extensions not supported by server: %s" -msgstr[0] "サーバーでサポートされていないプロトコル拡張: %s" +msgid "received invalid protocol negotiation message: server requested downgrade to pre-3.0 protocol version" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーが3.0より前のプロトコルバージョンへのダウングレードを要求しました" -#: fe-protocol3.c:1454 +#: fe-protocol3.c:1437 #, c-format -msgid "invalid %s message" -msgstr "不正な%sメッセージ" +msgid "received invalid protocol negotiation message: server requests downgrade to non-existent 3.1 protocol version" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーが存在しない 3.1 プロトコルバージョンを要求しました" -#: fe-protocol3.c:1819 +#: fe-protocol3.c:1443 +#, c-format +msgid "received invalid protocol negotiation message: server reported negative number of unsupported parameters" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーがサポート外パラメータの数として負数を通知しました" + +#: fe-protocol3.c:1449 +#, c-format +msgid "received invalid protocol negotiation message: server negotiated but asks for no changes" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーがネゴシエーションを行いましたが、変更要求がありませんでした" + +#: fe-protocol3.c:1455 +#, c-format +msgid "server only supports protocol version %d.%d, but min_protocol_version was set to %d.%d" +msgstr "サーバーはプロトコルバージョン %d.%d のみサポートしていますが、min_protocol_version は %d.%d に設定されています" + +#: fe-protocol3.c:1479 +#, c-format +msgid "received invalid protocol negotiation message: server reported unsupported parameter name without a _pq_. prefix (\"%s\")" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーが _pq_. プレフィクスのないサポートされていないパラメータ名(\"%s\")を報告しました" + +#: fe-protocol3.c:1482 +#, c-format +msgid "received invalid protocol negotiation message: server reported an unsupported parameter that was not requested (\"%s\")" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: サーバーが要求されていないサポート外のパラメータ(\"%s\")を通知しました" + +#: fe-protocol3.c:1489 +#, c-format +msgid "received invalid protocol negotation message: message too short" +msgstr "不正なプロトコルネゴシエーションメッセージを受信: メッセージが短すぎます" + +#: fe-protocol3.c:1893 #, c-format msgid "PQgetline: not doing text COPY OUT" msgstr "PQgetline: テキストのCOPY OUTを行っていません" -#: fe-protocol3.c:2193 +#: fe-protocol3.c:2268 #, c-format msgid "protocol error: no function result" msgstr "プロトコルエラー: 関数の結果がありません" -#: fe-protocol3.c:2204 +#: fe-protocol3.c:2280 #, c-format msgid "protocol error: id=0x%x" msgstr "プロトコルエラー: id=0x%x" @@ -1291,92 +1396,102 @@ msgstr "GSSAPIサイズチェックエラー" msgid "GSSAPI context establishment error" msgstr "GSSAPIコンテクスト確立エラー" -#: fe-secure-openssl.c:207 fe-secure-openssl.c:313 fe-secure-openssl.c:1524 +#: fe-secure-openssl.c:185 fe-secure-openssl.c:291 fe-secure-openssl.c:1378 #, c-format msgid "SSL SYSCALL error: %s" msgstr "SSL SYSCALLエラー: %s" -#: fe-secure-openssl.c:213 fe-secure-openssl.c:319 fe-secure-openssl.c:1527 +#: fe-secure-openssl.c:191 fe-secure-openssl.c:297 fe-secure-openssl.c:1381 #, c-format msgid "SSL SYSCALL error: EOF detected" msgstr "SSL SYSCALLエラー: EOFを検出" -#: fe-secure-openssl.c:223 fe-secure-openssl.c:329 fe-secure-openssl.c:1535 +#: fe-secure-openssl.c:201 fe-secure-openssl.c:307 fe-secure-openssl.c:1389 #, c-format msgid "SSL error: %s" msgstr "SSLエラー: %s" -#: fe-secure-openssl.c:237 fe-secure-openssl.c:343 +#: fe-secure-openssl.c:215 fe-secure-openssl.c:321 #, c-format msgid "SSL connection has been closed unexpectedly" msgstr "SSL接続が意図せずにクローズされました" -#: fe-secure-openssl.c:242 fe-secure-openssl.c:348 fe-secure-openssl.c:1582 +#: fe-secure-openssl.c:220 fe-secure-openssl.c:326 fe-secure-openssl.c:1436 #, c-format msgid "unrecognized SSL error code: %d" msgstr "認識できないSSLエラーコード: %d" -#: fe-secure-openssl.c:390 +#: fe-secure-openssl.c:368 #, c-format msgid "could not determine server certificate signature algorithm" msgstr "サーバー証明書の署名アルゴリズムを特定できませんでした" -#: fe-secure-openssl.c:410 +#: fe-secure-openssl.c:388 #, c-format msgid "could not find digest for NID %s" msgstr "NID %sのダイジェストが見つかりませんでした" -#: fe-secure-openssl.c:419 +#: fe-secure-openssl.c:397 #, c-format msgid "could not generate peer certificate hash" msgstr "接続先の証明書ハッシュの生成に失敗しました" -#: fe-secure-openssl.c:501 +#: fe-secure-openssl.c:479 #, c-format msgid "SSL certificate's name entry is missing" msgstr "SSL証明書に名前のエントリがありません" -#: fe-secure-openssl.c:535 +#: fe-secure-openssl.c:509 #, c-format msgid "SSL certificate's address entry is missing" msgstr "SSL証明書のアドレスのエントリがありません" -#: fe-secure-openssl.c:935 +#: fe-secure-openssl.c:714 +#, c-format +msgid "could not open ssl keylog file \"%s\": %s" +msgstr "SSLキーログファイル \"%s\" をオープンできませんでした: %s" + +#: fe-secure-openssl.c:722 +#, c-format +msgid "could not write to ssl keylog file \"%s\": %s" +msgstr "SSLキーログファイル \"%s\" に書き込めませんでした: %s" + +#: fe-secure-openssl.c:775 #, c-format msgid "could not create SSL context: %s" msgstr "SSLコンテキストを作成できませんでした: %s" -#: fe-secure-openssl.c:977 +#: fe-secure-openssl.c:817 #, c-format msgid "invalid value \"%s\" for minimum SSL protocol version" msgstr "SSLプロトコル最小バージョンに対する不正な値\"%s\"" -#: fe-secure-openssl.c:987 +#: fe-secure-openssl.c:827 #, c-format msgid "could not set minimum SSL protocol version: %s" msgstr "SSLプロトコル最小バージョンを設定できませんでした: %s" -#: fe-secure-openssl.c:1003 +#: fe-secure-openssl.c:843 #, c-format msgid "invalid value \"%s\" for maximum SSL protocol version" msgstr "SSLプロトコル最大バージョンに対する不正な値\"%s\"" -#: fe-secure-openssl.c:1013 +#: fe-secure-openssl.c:853 #, c-format msgid "could not set maximum SSL protocol version: %s" msgstr "SSLプロトコル最大バージョンを設定できませんでした: %s" -#: fe-secure-openssl.c:1051 +#: fe-secure-openssl.c:891 #, c-format msgid "could not load system root certificate paths: %s" msgstr "システムルート証明書パスをロードできませんでした: %s" -#: fe-secure-openssl.c:1068 +#: fe-secure-openssl.c:908 #, c-format msgid "could not read root certificate file \"%s\": %s" msgstr "ルート証明書ファイル\"%s\"を読み取れませんでした: %s" -#: fe-secure-openssl.c:1120 +#: fe-secure-openssl.c:960 #, c-format msgid "" "could not get home directory to locate root certificate file\n" @@ -1385,7 +1500,7 @@ msgstr "" "ルート証明書ファイルを特定するためのホームディレクトリが取得できませんでした\n" "ファイルを用意する、 sslrootcert=systemでシステムの信頼済みルート証明書を使用する、または sslmode を変更してサーバー証明書の検証を無効にしてください。" -#: fe-secure-openssl.c:1123 +#: fe-secure-openssl.c:963 #, c-format msgid "" "root certificate file \"%s\" does not exist\n" @@ -1394,127 +1509,137 @@ msgstr "" "ルート証明書ファイル\"%s\"が存在しません\n" "ファイルを用意する、sslrootcert=systemでシステムの信頼済みルート証明書を使用する、またはsslmodeを変更してサーバー証明書の検証を無効にしてください。" -#: fe-secure-openssl.c:1158 +#: fe-secure-openssl.c:998 #, c-format msgid "could not open certificate file \"%s\": %s" msgstr "証明書ファイル\"%s\"をオープンできませんでした: %s" -#: fe-secure-openssl.c:1176 +#: fe-secure-openssl.c:1016 #, c-format msgid "could not read certificate file \"%s\": %s" msgstr "証明書ファイル\"%s\"を読み込めませんでした: %s" -#: fe-secure-openssl.c:1200 +#: fe-secure-openssl.c:1040 #, c-format msgid "could not establish SSL connection: %s" msgstr "SSL接続を確立できませんでした: %s" -#: fe-secure-openssl.c:1232 +#: fe-secure-openssl.c:1053 +#, c-format +msgid "WARNING: sslkeylogfile support requires OpenSSL\n" +msgstr "警告: sslkeylogfile をサポートするにはOpenSSLが必要です\n" + +#: fe-secure-openssl.c:1055 +#, c-format +msgid "WARNING: libpq was not built with sslkeylogfile support\n" +msgstr "警告: libpq は sslkeylogfile のサポート無しでビルドされています\n" + +#: fe-secure-openssl.c:1086 #, c-format msgid "could not set SSL Server Name Indication (SNI): %s" msgstr "SSLサーバー名表示(SNI)を設定できませんでした: %s" -#: fe-secure-openssl.c:1249 +#: fe-secure-openssl.c:1103 #, c-format msgid "could not set SSL ALPN extension: %s" msgstr "SSL ALPN拡張を設定できませんでした: %s" -#: fe-secure-openssl.c:1292 +#: fe-secure-openssl.c:1146 #, c-format msgid "could not load SSL engine \"%s\": %s" msgstr "SSLエンジン\"%s\"を読み込みできませんでした: %s" -#: fe-secure-openssl.c:1303 +#: fe-secure-openssl.c:1157 #, c-format msgid "could not initialize SSL engine \"%s\": %s" msgstr "SSLエンジン\"%s\"を初期化できませんでした: %s" -#: fe-secure-openssl.c:1318 +#: fe-secure-openssl.c:1172 #, c-format msgid "could not read private SSL key \"%s\" from engine \"%s\": %s" msgstr "SSL秘密鍵\"%s\"をエンジン\"%s\"から読み取れませんでした: %s" -#: fe-secure-openssl.c:1331 +#: fe-secure-openssl.c:1185 #, c-format msgid "could not load private SSL key \"%s\" from engine \"%s\": %s" msgstr "SSL秘密鍵\"%s\"をエンジン\"%s\"から読み取れませんでした: %s" -#: fe-secure-openssl.c:1368 +#: fe-secure-openssl.c:1222 #, c-format msgid "certificate present, but not private key file \"%s\"" msgstr "証明書はありますが、秘密鍵ファイル\"%s\"はありません" -#: fe-secure-openssl.c:1371 +#: fe-secure-openssl.c:1225 #, c-format msgid "could not stat private key file \"%s\": %m" msgstr "秘密鍵ファイル\"%s\"をstatできませんでした: %m" -#: fe-secure-openssl.c:1379 +#: fe-secure-openssl.c:1233 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "秘密鍵ファイル\"%s\"は通常のファイルではありません" -#: fe-secure-openssl.c:1412 +#: fe-secure-openssl.c:1266 #, 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" msgstr "秘密鍵ファイル\"%s\"はグループに対して、もしくは無制限にアクセスを許可しています; ファイルのパーミッションは u=rw (0600) かそれよりも狭い必要があります、rootが所有している場合は u=rw,g=r (0640) かそれよりも狭い必要があります" -#: fe-secure-openssl.c:1436 +#: fe-secure-openssl.c:1290 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "秘密鍵ファイル\"%s\"をロードできませんでした: %s" -#: fe-secure-openssl.c:1452 +#: fe-secure-openssl.c:1306 #, c-format msgid "certificate does not match private key file \"%s\": %s" msgstr "証明書と秘密鍵ファイル\"%s\"が一致しません: %s" -#: fe-secure-openssl.c:1521 +#: fe-secure-openssl.c:1375 #, c-format msgid "SSL error: certificate verify failed: %s" msgstr "SSLエラー: 証明書の検証に失敗しました: %s" -#: fe-secure-openssl.c:1566 +#: fe-secure-openssl.c:1420 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s." msgstr "このことは、クライアントがSSLプロトコルのバージョン%sから%sの間のいずれもサポートしていないことを示唆しているかもしれません。" -#: fe-secure-openssl.c:1598 +#: fe-secure-openssl.c:1452 #, c-format msgid "direct SSL connection was established without ALPN protocol negotiation extension" msgstr "直接SSL接続がALPNプロトコルネゴシエーション拡張なしで確立されました" -#: fe-secure-openssl.c:1610 +#: fe-secure-openssl.c:1464 #, c-format msgid "SSL connection was established with unexpected ALPN protocol" msgstr "SSL接続が想定外のALPNプロトコルで確立されました" -#: fe-secure-openssl.c:1627 +#: fe-secure-openssl.c:1481 #, c-format msgid "certificate could not be obtained: %s" msgstr "証明書を取得できませんでした: %s" -#: fe-secure-openssl.c:1734 +#: fe-secure-openssl.c:1560 #, c-format msgid "no SSL error reported" msgstr "SSLエラーはありませんでした" -#: fe-secure-openssl.c:1776 +#: fe-secure-openssl.c:1603 #, c-format msgid "SSL error code %lu" msgstr "SSLエラーコード: %lu" -#: fe-secure-openssl.c:2075 +#: fe-secure-openssl.c:1905 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "警告: sslpasswordが切り詰められました\n" -#: fe-secure.c:248 +#: fe-secure.c:233 #, c-format msgid "could not receive data from server: %s" msgstr "サーバーからデータを受信できませんでした: %s" -#: fe-secure.c:419 +#: fe-secure.c:404 #, c-format msgid "could not send data to server: %s" msgstr "サーバーにデータを送信できませんでした: %s" diff --git a/src/interfaces/libpq/po/ka.po b/src/interfaces/libpq/po/ka.po index eabec3f420cb9..16268bc7b94f3 100644 --- a/src/interfaces/libpq/po/ka.po +++ b/src/interfaces/libpq/po/ka.po @@ -1,14 +1,14 @@ # Georgian message translation file for libpq # Copyright (C) 2022 PostgreSQL Global Development Group # This file is distributed under the same license as the libpq (PostgreSQL) package. -# Temuri Doghonadze , 2022. +# Temuri Doghonadze , 2022-2025. # msgid "" msgstr "" -"Project-Id-Version: libpq (PostgreSQL) 17\n" +"Project-Id-Version: libpq (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-14 02:10+0000\n" -"PO-Revision-Date: 2024-06-14 06:12+0200\n" +"POT-Creation-Date: 2025-05-02 22:10+0000\n" +"PO-Revision-Date: 2025-05-03 01:49+0200\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,803 +16,1165 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: ../../port/user.c:43 ../../port/user.c:79 +#: ../libpq-oauth/oauth-curl.c:292 ../libpq-oauth/oauth-curl.c:1910 #, c-format -msgid "could not look up local user ID %d: %s" -msgstr "ლოკალური მომხმარებლის ID-ის (%d) ამოხსნა შეუძლებელია: %s" +#| msgid "database removal failed: %s" +msgid "libcurl easy handle removal failed: %s" +msgstr "libcurl-ის ადვილი დამმუშავებლის წაშლა ჩავარდა: %s" -#: ../../port/user.c:48 ../../port/user.c:84 +#: ../libpq-oauth/oauth-curl.c:312 #, c-format -msgid "local user with ID %d does not exist" -msgstr "ლოკალური მომხმარებელი ID-ით %d არ არსებობს" +#| msgid "creation of new role failed: %s" +msgid "libcurl multi handle cleanup failed: %s" +msgstr "libcurl-ის დამმუშავებლების მოსუფთავება ჩავარდა: %s" -#: fe-auth-scram.c:223 +#: ../libpq-oauth/oauth-curl.c:375 ../libpq-oauth/oauth-curl.c:386 +#, c-format +msgid "failed to set %s on OAuth connection: %s" +msgstr "%s-ის დაყენება OAuth კავშირზე ჩავარდა: %s" + +#: ../libpq-oauth/oauth-curl.c:397 +#, c-format +msgid "failed to get %s from OAuth response: %s" +msgstr "OAuth-ის პასუხიდან %s-ის მიღება ჩავარდა: %s" + +#: ../libpq-oauth/oauth-curl.c:519 +#, c-format +msgid "internal error: started field '%s' before field '%s' was finished" +msgstr "შიდა შეცდომა: დაიწყო ველი '%s' მანამდე, სანამ დასრულდა ველი '%s'" + +#: ../libpq-oauth/oauth-curl.c:546 +#, c-format +msgid "field \"%s\" is duplicated" +msgstr "ველი \"%s\" დუბლირებულია" + +#: ../libpq-oauth/oauth-curl.c:571 +#, c-format +msgid "internal error: field '%s' still active at end of object" +msgstr "შიდა შეცდომა: ველი '%s' ჯერ კიდევ აქტიურია ობიექტის ბოლოში" + +#: ../libpq-oauth/oauth-curl.c:586 ../libpq-oauth/oauth-curl.c:640 +#, c-format +msgid "top-level element must be an object" +msgstr "უმაღლესი დონის ელემენტი ობიექტი უნდა იყოს" + +#: ../libpq-oauth/oauth-curl.c:621 +#, c-format +msgid "internal error: found unexpected array end while parsing field '%s'" +msgstr "შიდა შეცდომა: აღმოჩენილია მოულოდნელი მასივის დასასრული '%s' ველის დამუშავებისას" + +#: ../libpq-oauth/oauth-curl.c:676 +#, c-format +msgid "internal error: scalar target found at nesting level %d" +msgstr "შიდა შეცდომა: აღმოჩენილია სკალარული სამიზნე ერთმანეთში ჩალაგების დონეზე %d" + +#: ../libpq-oauth/oauth-curl.c:686 +#, c-format +msgid "internal error: scalar field '%s' would be assigned twice" +msgstr "შიდა შეცდომა: შეიძლება, სკალარული ველი '%s' ორჯერაა მინიჭებული" + +#: ../libpq-oauth/oauth-curl.c:708 +#, c-format +msgid "internal error: array member found at nesting level %d" +msgstr "შიდა შეცდომა: ერთმანეთში ჩალაგების დონეზე %d აღმოჩენილია მასივის წევრი" + +#: ../libpq-oauth/oauth-curl.c:743 +#, c-format +msgid "no content type was provided" +msgstr "შემცველობის ტიპი მოწოდებული არაა" + +#: ../libpq-oauth/oauth-curl.c:782 +#, c-format +msgid "unexpected content type: \"%s\"" +msgstr "მოულოდნელი შემცველობის ტიპი: \"%s\"" + +#: ../libpq-oauth/oauth-curl.c:807 +#, c-format +msgid "response contains embedded NULLs" +msgstr "პასუხი ჩაშენებულ NULL-ებს შეიცავს" + +#: ../libpq-oauth/oauth-curl.c:817 +#, c-format +msgid "response is not valid UTF-8" +msgstr "პასუხი არასწორი UTF-8-ა" + +#: ../libpq-oauth/oauth-curl.c:857 +#, c-format +msgid "field \"%s\" is missing" +msgstr "ველი \"%s\" აკლია" + +#: ../libpq-oauth/oauth-curl.c:1091 +#, c-format +msgid "provider rejected the oauth_client_secret" +msgstr "პროვაიდერმა უარჰყო oauth_client_secret" + +#: ../libpq-oauth/oauth-curl.c:1155 +#, c-format +msgid "failed to create epoll set: %m" +msgstr "epoll-ის ნაკრების შექმნა ჩავარდა: %m" + +#: ../libpq-oauth/oauth-curl.c:1162 +#, c-format +msgid "failed to create timerfd: %m" +msgstr "timerfd-ის შექმნა ჩავარდა: %m" + +#: ../libpq-oauth/oauth-curl.c:1168 +#, c-format +msgid "failed to add timerfd to epoll set: %m" +msgstr "epoll-ის ნაკრებში timerfd-ის ჩამატება ჩავარდა; %m" + +#. translator: the term "kqueue" (kernel queue) should not be translated +#: ../libpq-oauth/oauth-curl.c:1178 +#, c-format +msgid "failed to create kqueue: %m" +msgstr "kqueue-ის შექმნა ჩავარდა: %m" + +#: ../libpq-oauth/oauth-curl.c:1191 +#, c-format +msgid "failed to create timer kqueue: %m" +msgstr "ტაიმერის kqueue-ის შექმნა ჩავარდა: %m" + +#: ../libpq-oauth/oauth-curl.c:1235 ../libpq-oauth/oauth-curl.c:1307 +#, c-format +msgid "unknown libcurl socket operation: %d" +msgstr "libcurl-ის სოკეტის უცნობი ოპერაცია: %d" + +#: ../libpq-oauth/oauth-curl.c:1252 +#, c-format +msgid "could not add to epoll set: %m" +msgstr "epoll-ის ნაკრებში ჩამატება შეუძლებელია: %m" + +#: ../libpq-oauth/oauth-curl.c:1256 +#, c-format +msgid "could not delete from epoll set: %m" +msgstr "epoll-ის ნაკრებიდან წაშლა შეუძლებელია: %m" + +#: ../libpq-oauth/oauth-curl.c:1260 +#, c-format +msgid "could not update epoll set: %m" +msgstr "epoll-ების ნაკრების განახლება ჩავარდა: %m" + +#: ../libpq-oauth/oauth-curl.c:1314 +#, c-format +msgid "could not modify kqueue: %m" +msgstr "kqueue-ის შეცვლა შეუძლებელია: %m" + +#: ../libpq-oauth/oauth-curl.c:1338 +#, c-format +msgid "could not delete from kqueue: %m" +msgstr "kqueue-დან წაშლა შეუძლებელია: %m" + +#: ../libpq-oauth/oauth-curl.c:1341 +#, c-format +msgid "could not add to kqueue: %m" +msgstr "kqueue-ში ჩამატება შეუძლებელია: %m" + +#: ../libpq-oauth/oauth-curl.c:1393 +#, c-format +msgid "setting timerfd to %ld: %m" +msgstr "%ld-ზე timerfd-ის დაყენება: %m" + +#: ../libpq-oauth/oauth-curl.c:1423 +#, c-format +msgid "deleting kqueue timer: %m" +msgstr "kqueue-ის ტაიმერის წაშლა: %m" + +#: ../libpq-oauth/oauth-curl.c:1430 +#, c-format +msgid "removing kqueue timer from multiplexer: %m" +msgstr "kqueue-ის ტაიმერის წაშლა მულტიპლექსერიდან: %m" + +#: ../libpq-oauth/oauth-curl.c:1441 +#, c-format +msgid "setting kqueue timer to %ld: %m" +msgstr "kqueue-ის ტაიმერის დაყენება %ld-ზე: %m" + +#: ../libpq-oauth/oauth-curl.c:1448 +#, c-format +msgid "adding kqueue timer to multiplexer: %m" +msgstr "kqueue-ის ტაიმერის დამატება მულტიპლექსერზე: %m" + +#: ../libpq-oauth/oauth-curl.c:1471 +#, c-format +msgid "getting timerfd value: %m" +msgstr "timerfd-ის მნიშვნელობის მიღება: %m" + +#: ../libpq-oauth/oauth-curl.c:1493 +#, c-format +msgid "checking kqueue for timeout: %m" +msgstr "kqueue-ის შემოწმება მოლოდინის დროის ამოწურვაზე: %m" + +#: ../libpq-oauth/oauth-curl.c:1625 +#, c-format +msgid "failed to create libcurl multi handle" +msgstr "libcurl-ის ერთზე მეტი დამმუშავებლის შექმნა ჩავარდა" + +#: ../libpq-oauth/oauth-curl.c:1645 +#, c-format +msgid "failed to create libcurl handle" +msgstr "libcurl-ის დამმუშავებლის შექმნა ჩავარდა" + +#: ../libpq-oauth/oauth-curl.c:1729 ../libpq-oauth/oauth-curl.c:1770 +#: ../libpq-oauth/oauth-curl.c:2083 ../libpq-oauth/oauth-curl.c:2244 +#: ../libpq-oauth/oauth-curl.c:2305 ../libpq-oauth/oauth-curl.c:2394 +#: ../libpq-oauth/oauth-curl.c:2688 ../libpq-oauth/oauth-curl.c:2879 +#: fe-auth-scram.c:374 fe-auth-scram.c:447 fe-auth-scram.c:599 +#: fe-auth-scram.c:619 fe-auth-scram.c:643 fe-auth-scram.c:657 +#: fe-auth-scram.c:703 fe-auth-scram.c:739 fe-auth-scram.c:931 fe-auth.c:308 +#: fe-auth.c:382 fe-auth.c:416 fe-auth.c:694 fe-auth.c:827 fe-auth.c:1330 +#: fe-auth.c:1493 fe-cancel.c:177 fe-connect.c:1011 fe-connect.c:1051 +#: fe-connect.c:2175 fe-connect.c:2337 fe-connect.c:3730 fe-connect.c:5178 +#: fe-connect.c:5491 fe-connect.c:5746 fe-connect.c:5864 fe-connect.c:6111 +#: fe-connect.c:6191 fe-connect.c:6289 fe-connect.c:6540 fe-connect.c:6567 +#: fe-connect.c:6643 fe-connect.c:6666 fe-connect.c:6690 fe-connect.c:6725 +#: fe-connect.c:6811 fe-connect.c:6819 fe-connect.c:7176 fe-connect.c:7358 +#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4291 fe-exec.c:4457 +#: fe-gssapi-common.c:109 fe-lobj.c:870 fe-protocol3.c:210 fe-protocol3.c:233 +#: fe-protocol3.c:256 fe-protocol3.c:273 fe-protocol3.c:294 fe-protocol3.c:368 +#: fe-protocol3.c:732 fe-protocol3.c:972 fe-protocol3.c:1552 +#: fe-protocol3.c:1861 fe-protocol3.c:2262 fe-secure-common.c:110 +#: fe-secure-gssapi.c:496 fe-secure-openssl.c:405 fe-secure-openssl.c:1131 +#, c-format +msgid "out of memory" +msgstr "არასაკმარისი მეხსიერება" + +#: ../libpq-oauth/oauth-curl.c:1757 +#, c-format +msgid "response is too large" +msgstr "პასუხი მეტისმეტად დიდია" + +#: ../libpq-oauth/oauth-curl.c:1799 +#, c-format +msgid "failed to queue HTTP request: %s" +msgstr "HTTP მოთხოვნის რიგში ჩამატება ჩავარდა: %s" + +#: ../libpq-oauth/oauth-curl.c:1816 ../libpq-oauth/oauth-curl.c:1869 +#, c-format +msgid "asynchronous HTTP request failed: %s" +msgstr "ასინქრონული HTTP მოთხოვნა ჩავარდა: %s" + +#: ../libpq-oauth/oauth-curl.c:1921 +#, c-format +msgid "no result was retrieved for the finished handle" +msgstr "დასრულებული დამმუშავებლიდან შედეგი მიღებული არაა" + +#: ../libpq-oauth/oauth-curl.c:2054 ../libpq-oauth/oauth-curl.c:2360 +#: ../libpq-oauth/oauth-curl.c:2439 +#, c-format +msgid "unexpected response code %ld" +msgstr "მოულოდნელი პასუხის კოდი %ld" + +#: ../libpq-oauth/oauth-curl.c:2126 +#, c-format +msgid "the issuer identifier (%s) does not match oauth_issuer (%s)" +msgstr "გამომცემლის იდენტიფიკატორი (%s) oauth_issuer-ს (%s) არ ემთხვევა" + +#: ../libpq-oauth/oauth-curl.c:2153 +#, c-format +msgid "issuer \"%s\" does not provide a device authorization endpoint" +msgstr "გამომცემელმა \"%s\" არ მოგვაწოდა მოწყობილობის ავტორიზაციის ბოლოწერტილი" + +#: ../libpq-oauth/oauth-curl.c:2179 +#, c-format +msgid "device authorization endpoint \"%s\" must use HTTPS" +msgstr "მოწყობილობის ავტორიზაციის ბოლოწერტილი \"%s\" HTTPS-ს უნდა იყენებდეს" + +#: ../libpq-oauth/oauth-curl.c:2188 +#, c-format +msgid "token endpoint \"%s\" must use HTTPS" +msgstr "კოდის ბოლოწერტილი \"%s\" HTTPS-ს უნდა იყენებდეს" + +#: ../libpq-oauth/oauth-curl.c:2497 +#, c-format +msgid "slow_down interval overflow" +msgstr "slow_down-ის ინტერვალის გადავსება" + +#. translator: The first %s is a URL for the user to visit in a +#. browser, and the second %s is a code to be copy-pasted there. +#. +#: ../libpq-oauth/oauth-curl.c:2533 +#, c-format +msgid "Visit %s and enter the code: %s\n" +msgstr "გადადით %s-ზე და შეიყვანეთ კოდი: %s\n" + +#: ../libpq-oauth/oauth-curl.c:2538 +#, c-format +msgid "device prompt failed" +msgstr "მოწყობილობის მოთხოვნა ჩავარდა" + +#: ../libpq-oauth/oauth-curl.c:2594 +#, c-format +msgid "curl_global_init previously failed during OAuth setup" +msgstr "curl_global_init უკვე ჩავარდა OAuth-ის მორგებისას" + +#: ../libpq-oauth/oauth-curl.c:2613 +#, c-format +msgid "curl_global_init failed during OAuth setup" +msgstr "curl_global_init ჩავარდა OAuth-ის მორგებისას" + +#: ../libpq-oauth/oauth-curl.c:2634 +#, c-format +msgid "" +"libcurl is no longer thread-safe\n" +"\tCurl initialization was reported thread-safe when libpq\n" +"\twas compiled, but the currently installed version of\n" +"\tlibcurl reports that it is not. Recompile libpq against\n" +"\tthe installed version of libcurl." +msgstr "" +"libcurl ნაკადებისთვის უსაფრთხო აღარაა\n" +"\tCurl-ის ინიციალიზაცია libpq-ის აგების დროს მითითებული იყო,\n" +"\tროგორც ნაკადებისთვის უსაფრთხო, მაგრამ libcurl-ის ვერსია, რომელიც\n" +"\tამჟამადაა დაყენებული, როგორც ჩანს, არაა. ააგეთ libpq-ი libcurl-ით, რომელიც\n" +"\tახლა გაქვთ დაყენებული." + +#: fe-auth-scram.c:228 #, c-format msgid "malformed SCRAM message (empty message)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (ცარიელი შეტყობინება)" -#: fe-auth-scram.c:228 +#: fe-auth-scram.c:233 #, c-format msgid "malformed SCRAM message (length mismatch)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (სიგრძე არ ემთხვევა)" -#: fe-auth-scram.c:272 +#: fe-auth-scram.c:277 #, c-format msgid "could not verify server signature: %s" msgstr "სერვერის ხელმოწერის შემოწმება შეუძლებელია: %s" -#: fe-auth-scram.c:278 +#: fe-auth-scram.c:283 #, c-format msgid "incorrect server signature" msgstr "სერვერის არასწორი ხელმოწერა" -#: fe-auth-scram.c:287 +#: fe-auth-scram.c:292 #, c-format msgid "invalid SCRAM exchange state" msgstr "არასწორი SCRAM-ის გაცვლის მდგომარეობა" -#: fe-auth-scram.c:311 +#: fe-auth-scram.c:316 #, c-format msgid "malformed SCRAM message (attribute \"%c\" expected)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (აკლია ატრიბუტი \"%c\")" -#: fe-auth-scram.c:320 +#: fe-auth-scram.c:325 #, c-format msgid "malformed SCRAM message (expected character \"=\" for attribute \"%c\")" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (აკლია \"=\" ატრიბუტი \"%c\"-სთვის)" -#: fe-auth-scram.c:360 +#: fe-auth-scram.c:365 #, c-format msgid "could not generate nonce" msgstr "ერთჯერადი კოდის გენერაციის შეცდომა" -#: fe-auth-scram.c:369 fe-auth-scram.c:442 fe-auth-scram.c:594 -#: fe-auth-scram.c:614 fe-auth-scram.c:638 fe-auth-scram.c:652 -#: fe-auth-scram.c:698 fe-auth-scram.c:734 fe-auth-scram.c:908 fe-auth.c:296 -#: fe-auth.c:369 fe-auth.c:403 fe-auth.c:618 fe-auth.c:727 fe-auth.c:1199 -#: fe-auth.c:1362 fe-cancel.c:159 fe-connect.c:936 fe-connect.c:976 -#: fe-connect.c:1860 fe-connect.c:2022 fe-connect.c:3430 fe-connect.c:4758 -#: fe-connect.c:5070 fe-connect.c:5325 fe-connect.c:5443 fe-connect.c:5690 -#: fe-connect.c:5770 fe-connect.c:5868 fe-connect.c:6119 fe-connect.c:6146 -#: fe-connect.c:6222 fe-connect.c:6245 fe-connect.c:6269 fe-connect.c:6304 -#: fe-connect.c:6390 fe-connect.c:6398 fe-connect.c:6755 fe-connect.c:6905 -#: fe-exec.c:530 fe-exec.c:1315 fe-exec.c:3254 fe-exec.c:4234 fe-exec.c:4398 -#: fe-gssapi-common.c:109 fe-lobj.c:870 fe-protocol3.c:209 fe-protocol3.c:232 -#: fe-protocol3.c:255 fe-protocol3.c:272 fe-protocol3.c:293 fe-protocol3.c:369 -#: fe-protocol3.c:737 fe-protocol3.c:976 fe-protocol3.c:1787 -#: fe-protocol3.c:2187 fe-secure-common.c:110 fe-secure-gssapi.c:496 -#: fe-secure-openssl.c:427 fe-secure-openssl.c:1277 -#, c-format -msgid "out of memory" -msgstr "მეხსიერებას გარეთ" - -#: fe-auth-scram.c:376 +#: fe-auth-scram.c:381 #, c-format msgid "could not encode nonce" msgstr "ერთჯერადი კოდის კოდირების შეცდომა" -#: fe-auth-scram.c:564 +#: fe-auth-scram.c:569 #, c-format msgid "could not calculate client proof: %s" msgstr "კლიენტის მტკიცებულების გამოთვლის შეცდომა: %s" -#: fe-auth-scram.c:579 +#: fe-auth-scram.c:584 #, c-format msgid "could not encode client proof" msgstr "კლიენტის მტკიცებულების კოდირების შეცდომა" -#: fe-auth-scram.c:631 +#: fe-auth-scram.c:636 #, c-format msgid "invalid SCRAM response (nonce mismatch)" msgstr "არასწორი SCRAM-ის პასუხი (ერთჯერადი კოდი არ ემთხვევა)" -#: fe-auth-scram.c:661 +#: fe-auth-scram.c:666 #, c-format msgid "malformed SCRAM message (invalid salt)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (არასწორი მარილი)" -#: fe-auth-scram.c:674 +#: fe-auth-scram.c:679 #, c-format msgid "malformed SCRAM message (invalid iteration count)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (იტერაციების არასწორი რიცხვი)" -#: fe-auth-scram.c:679 +#: fe-auth-scram.c:684 #, c-format msgid "malformed SCRAM message (garbage at end of server-first-message)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (ნაპოვნია ნაგავი სერვერისთვის გასაგზავნი პირველი შეტყობინების ბოლოში)" -#: fe-auth-scram.c:713 +#: fe-auth-scram.c:718 #, c-format msgid "error received from server in SCRAM exchange: %s" msgstr "მიღებულია სერვერის შეცდომა SCRAM გგაცვლაში: %s" -#: fe-auth-scram.c:728 +#: fe-auth-scram.c:733 #, c-format msgid "malformed SCRAM message (garbage at end of server-final-message)" msgstr "დამახინჯებული SCRAM შეტყობინება (ნაგავი სერვერის-საბოლოო-შეტყობინების ბოლოში)" -#: fe-auth-scram.c:745 +#: fe-auth-scram.c:750 #, c-format msgid "malformed SCRAM message (invalid server signature)" msgstr "დამახინჯებული SCRAM-ის შეტყობინება (სერვერის არასწორი ხელმოწერა)" -#: fe-auth-scram.c:917 +#: fe-auth-scram.c:940 msgid "could not generate random salt" msgstr "შემთხვევითი მარილის გენერაციის შეცდომა" -#: fe-auth.c:77 +#: fe-auth.c:80 #, c-format msgid "out of memory allocating GSSAPI buffer (%d)" msgstr "არასაკმარისი მეხსიერება GSSAPI-ის ბაფერის გამოყოფისას (%d)" -#: fe-auth.c:138 +#: fe-auth.c:146 msgid "GSSAPI continuation error" msgstr "GSSAPI-ის განგრძობადობის შეცდომა" -#: fe-auth.c:168 fe-auth.c:397 fe-gssapi-common.c:97 fe-secure-common.c:99 +#: fe-auth.c:176 fe-auth.c:410 fe-gssapi-common.c:97 fe-secure-common.c:99 #: fe-secure-common.c:173 #, c-format msgid "host name must be specified" msgstr "ჰოსტის სახელის მითითება აუცილებელია" -#: fe-auth.c:174 +#: fe-auth.c:182 #, c-format msgid "duplicate GSS authentication request" msgstr "დუბლირებული GSS ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:238 +#: fe-auth.c:246 #, c-format msgid "out of memory allocating SSPI buffer (%d)" msgstr "არასაკმარისი მეხსიერება SSPI-ის ბაფერის გამოყოფისას (%d)" -#: fe-auth.c:285 +#: fe-auth.c:297 msgid "SSPI continuation error" msgstr "SSPI-ის განგრძობადობის შეცდომა" -#: fe-auth.c:359 +#: fe-auth.c:372 #, c-format msgid "duplicate SSPI authentication request" msgstr "დუბლირებული SSPI ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:384 +#: fe-auth.c:397 msgid "could not acquire SSPI credentials" msgstr "შეცდომა SSPI-ის მომხმ./პაროლის მიღებისას" -#: fe-auth.c:436 +#: fe-auth.c:449 #, c-format msgid "channel binding required, but SSL not in use" msgstr "მითითებულია არხის მიბმა, მაგრამ SSL არ გამოიყენება" -#: fe-auth.c:442 +#: fe-auth.c:455 #, c-format msgid "duplicate SASL authentication request" msgstr "დუბლირებული SASL ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:500 +#: fe-auth.c:513 #, c-format msgid "channel binding is required, but client does not support it" msgstr "არხის მიბმა აუცილებელია, მაგრამ კლიენტს მხარდაჭერა არ გააჩნია" -#: fe-auth.c:516 +#: fe-auth.c:529 #, c-format msgid "server offered SCRAM-SHA-256-PLUS authentication over a non-SSL connection" msgstr "სერვერი გვთავაზობს SCRAM-SHA-256-PLUS ავთენტიკაციას მაშინ, როცა SSL გამორთულია" -#: fe-auth.c:531 +#: fe-auth.c:551 #, c-format msgid "none of the server's SASL authentication mechanisms are supported" msgstr "სერვერის SASL ავთენტიკაციის არც ერთი მექანიზმი მხარდაჭერილი არაა" -#: fe-auth.c:538 +#: fe-auth.c:571 +#, c-format +msgid "authentication method requirement \"%s\" failed: server requested %s authentication" +msgstr "ავთენტიკაციის მეთოდის მოთხოვნა \"%s\" ჩავარდა: სერვერმა %s ავთენტიკაცია მოითხოვა" + +#: fe-auth.c:580 #, c-format msgid "channel binding is required, but server did not offer an authentication method that supports channel binding" msgstr "მოთხოვნილია არხზე მიბმა, მაგრამ სერვერმა არ შემოგვთავაზა ავთენტიკაციის მექანიზმი, რომელსაც არხზე მიბმის მხარდაჭერა გააჩნია" -#: fe-auth.c:640 +#: fe-auth.c:716 #, c-format msgid "out of memory allocating SASL buffer (%d)" msgstr "არასაკმარისი მეხსიერება SASL ბაფერის გამოყოფისას (%d)" -#: fe-auth.c:663 +#: fe-auth.c:758 #, c-format msgid "AuthenticationSASLFinal received from server, but SASL authentication was not completed" msgstr "სერვერიდან AuthenticationSASLFinal მიღებულია, მაგრამ SASL ავთენტიკაცია არ დასრულებულა" -#: fe-auth.c:673 +#: fe-auth.c:768 #, c-format msgid "no client response found after SASL exchange success" msgstr "კლიენტის SASL გაცვლის წარმატების შემდეგ პასუხი არ გამოუგზავნია" -#: fe-auth.c:736 fe-auth.c:743 fe-auth.c:1345 fe-auth.c:1356 +#: fe-auth.c:836 fe-auth.c:843 fe-auth.c:1476 fe-auth.c:1487 #, c-format msgid "could not encrypt password: %s" msgstr "პაროლის დაშიფვრის შეცდომა: %s" -#: fe-auth.c:771 +#: fe-auth.c:873 msgid "server requested a cleartext password" msgstr "სერვერმა ღია პაროლი მოითხოვა" -#: fe-auth.c:773 +#: fe-auth.c:875 msgid "server requested a hashed password" msgstr "სერვერმა დაჰეშილი პაროლი მოითხოვა" -#: fe-auth.c:776 +#: fe-auth.c:878 msgid "server requested GSSAPI authentication" msgstr "დუბლირებული SSPI ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:778 +#: fe-auth.c:880 msgid "server requested SSPI authentication" msgstr "დუბლირებული SSPI ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:782 +#: fe-auth.c:884 msgid "server requested SASL authentication" msgstr "დუბლირებული SASL ავთენტიკაციის მოთხოვნა" -#: fe-auth.c:785 +#: fe-auth.c:887 msgid "server requested an unknown authentication type" msgstr "სერვერმა უცნობი ავთენტიკაციის ტიპი მოითხოვა" -#: fe-auth.c:818 +#: fe-auth.c:920 #, c-format msgid "server did not request an SSL certificate" msgstr "სერვერს SSL სერტიფიკატი არ მოუთხოვია" -#: fe-auth.c:823 +#: fe-auth.c:925 #, c-format msgid "server accepted connection without a valid SSL certificate" msgstr "სერვერი მიერთების მცდელობას სწორი SSL სერტიფიკატის გარეშე დაეთანხმა" -#: fe-auth.c:877 +#: fe-auth.c:979 msgid "server did not complete authentication" msgstr "სერვერმა ავთენტიკაცია არ დაასრულა" -#: fe-auth.c:911 +#: fe-auth.c:1013 #, c-format msgid "authentication method requirement \"%s\" failed: %s" msgstr "ავთენტიკაციის მეთოდის (\"%s\") მოთხოვნის შეცდომა: %s" -#: fe-auth.c:934 +#: fe-auth.c:1036 #, c-format msgid "channel binding required, but server authenticated client without channel binding" msgstr "არხზე მიბმა მოთხოვნილია, მაგრამ სერვერმა კლიენტის ავთენტიკაცია არხზე მიბმის გარეშე მოახდინა" -#: fe-auth.c:939 +#: fe-auth.c:1041 #, c-format msgid "channel binding required but not supported by server's authentication request" msgstr "არხზე მიბმა მოთხოვნილია, მაგრამ მხარდაუჭერელია სერვერის ავთენტიკაციის მოთხოვნის მიერ" -#: fe-auth.c:973 +#: fe-auth.c:1081 #, c-format msgid "Kerberos 4 authentication not supported" msgstr "Kerberos 4 ავთენტიკაცია მხარდაჭერილი არაა" -#: fe-auth.c:977 +#: fe-auth.c:1085 #, c-format msgid "Kerberos 5 authentication not supported" msgstr "Kerberos 5 ავთენტიკაცია მხარდაჭერილი არაა" -#: fe-auth.c:1047 +#: fe-auth.c:1155 #, c-format msgid "GSSAPI authentication not supported" msgstr "GSSAPI ავთენტიკაცია მხარდაჭერილი არაა" -#: fe-auth.c:1078 +#: fe-auth.c:1186 #, c-format msgid "SSPI authentication not supported" msgstr "SSPI ავთენტიკაცია მხარდაუჭერელია" -#: fe-auth.c:1085 +#: fe-auth.c:1193 #, c-format msgid "Crypt authentication not supported" msgstr "Crypt ავთენტიკაცია მხარდაჭერილი არაა" -#: fe-auth.c:1149 +#: fe-auth.c:1267 #, c-format msgid "authentication method %u not supported" msgstr "ავთენტიკაციის მეთოდი მხარდაუჭერელია: %u" -#: fe-auth.c:1186 +#: fe-auth.c:1307 #, c-format msgid "user name lookup failure: error code %lu" msgstr "მომხარებლის სახელის ამოხსნის პრობლემა: შეცდომის კოდი: %lu" -#: fe-auth.c:1308 +#: fe-auth.c:1315 +#, c-format +msgid "could not look up local user ID %ld: %m" +msgstr "ლოკალური მომხმარებლის ID-ით %ld მოძებნა შეუძლებელია: %m" + +#: fe-auth.c:1320 +#, c-format +msgid "local user with ID %ld does not exist" +msgstr "ლოკალური მომხმარებელი ID-ით %ld არ არსებობს" + +#: fe-auth.c:1439 #, c-format msgid "unexpected shape of result set returned for SHOW" msgstr "ბრძანებისთვის SHOW დაბრუნებული შედეგის მოხაზულობა მოულოდნელია" -#: fe-auth.c:1316 +#: fe-auth.c:1447 #, c-format msgid "\"password_encryption\" value too long" msgstr "\"password_encryption\"-ის მნიშვნელობა ძალიან გრძელია" -#: fe-auth.c:1366 +#: fe-auth.c:1497 #, c-format msgid "unrecognized password encryption algorithm \"%s\"" msgstr "პაროლის დაშიფვრის უცნობი ალგორითმი: \"%s\"" -#: fe-cancel.c:76 +#: fe-cancel.c:79 #, c-format msgid "connection pointer is NULL" msgstr "შეერთების მაჩვენებელი ნულოვანია" -#: fe-cancel.c:82 fe-misc.c:572 +#: fe-cancel.c:85 fe-misc.c:587 #, c-format msgid "connection not open" msgstr "შეერთება ღია არაა" -#: fe-cancel.c:193 +#: fe-cancel.c:92 +#, c-format +msgid "no cancellation key received" +msgstr "გაუქმების გასაღები არ მიმიღია" + +#: fe-cancel.c:211 #, c-format msgid "cancel request is already being sent on this connection" msgstr "ამ მიერთებით გაუქმების მოთხოვნის გაგზავნა უკვე მიმდინარეობს" -#: fe-cancel.c:263 +#: fe-cancel.c:281 #, c-format msgid "unexpected response from server" msgstr "მოულოდნელი პასუხი სერვერიდან" -#: fe-connect.c:1182 +#: fe-connect.c:1308 #, c-format msgid "could not match %d host names to %d hostaddr values" msgstr "%d ჰოსტის სახელები %d ჰოსტის მისამართების მნიშვნელობებს არ ემთხვევა" -#: fe-connect.c:1262 +#: fe-connect.c:1388 #, c-format msgid "could not match %d port numbers to %d hosts" msgstr "%d პორტის ნომრები %d ჰოსტს არ ემთხვევა" -#: fe-connect.c:1387 +#: fe-connect.c:1516 #, c-format msgid "negative require_auth method \"%s\" cannot be mixed with non-negative methods" msgstr "უარყოფითი require_auth მეთოდი \"%s\" არ შეიძლება სხვა არაუარყოფით მეთოდებს შეურიოთ" -#: fe-connect.c:1400 +#: fe-connect.c:1529 #, c-format msgid "require_auth method \"%s\" cannot be mixed with negative methods" msgstr "require_auth-ის მეთოდს \"%s\" უარყოფით მეთოდებს ვერ შეურევთ" -#: fe-connect.c:1460 fe-connect.c:1511 fe-connect.c:1553 fe-connect.c:1596 -#: fe-connect.c:1699 fe-connect.c:1745 fe-connect.c:1785 fe-connect.c:1806 +#: fe-connect.c:1605 fe-connect.c:1734 fe-connect.c:1776 fe-connect.c:1819 +#: fe-connect.c:1922 fe-connect.c:1968 fe-connect.c:2008 fe-connect.c:2079 +#: fe-connect.c:8250 #, c-format msgid "invalid %s value: \"%s\"" msgstr "%s-ის არასწორი მნიშვნელობა: \"%s\"" -#: fe-connect.c:1493 +#: fe-connect.c:1647 +#, c-format +msgid "internal error: no space in allowed_sasl_mechs" +msgstr "შიდა შეცდომა: 'allowed_sasl_merchs'-ში ჰარე არაა" + +#: fe-connect.c:1686 #, c-format msgid "require_auth method \"%s\" is specified more than once" msgstr "პარამეტრი \"%s\" ერთზე მეტჯერაა მითითებული" -#: fe-connect.c:1534 fe-connect.c:1573 fe-connect.c:1605 fe-connect.c:1707 +#: fe-connect.c:1757 fe-connect.c:1796 fe-connect.c:1828 fe-connect.c:1930 #, c-format msgid "%s value \"%s\" invalid when SSL support is not compiled in" msgstr "%s-ის მნიშვნელობა \"%s\" არასწორია, როცა SSL-ის მხარდაჭერა გამორთული იყო აგების დროს" -#: fe-connect.c:1625 +#: fe-connect.c:1848 #, c-format msgid "weak sslmode \"%s\" may not be used with sslnegotiation=direct (use \"require\", \"verify-ca\", or \"verify-full\")" msgstr "სუსტი sslmode \"%s\" არ შეიძლება გამოყენებული იქნას sslrootcert=system-თან ერთად (გამოიყენეთ \"require\", \"verify-ca\", ან \"verify-full\")" -#: fe-connect.c:1647 +#: fe-connect.c:1870 #, c-format msgid "weak sslmode \"%s\" may not be used with sslrootcert=system (use \"verify-full\")" msgstr "სუსტი sslmode \"%s\" არ შეიძლება გამოყენებული იქნას sslrootcert=system-თან ერთად (გამოიყენეთ \"verify-full\")" -#: fe-connect.c:1660 fe-connect.c:1668 +#: fe-connect.c:1883 fe-connect.c:1891 #, c-format msgid "invalid \"%s\" value: \"%s\"" msgstr "\"%s\"-ის არასწორი მნიშვნელობა: \"%s\"" -#: fe-connect.c:1685 +#: fe-connect.c:1908 #, c-format msgid "invalid SSL protocol version range" msgstr "არასწორი SSL პროტოკოლის ვერსიის დიაპაზონი" -#: fe-connect.c:1722 +#: fe-connect.c:1945 #, c-format msgid "%s value \"%s\" is not supported (check OpenSSL version)" msgstr "%s-ის მნიშვნელობა \"%s\" მხარდაჭერილი არაა (შეამოწმეთ OpenSSL-ის ვერსია)" -#: fe-connect.c:1752 +#: fe-connect.c:1975 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in" msgstr "gssencmode -ის მნიშვნელობა \"%s\" არასწორია. GSSAPI-ის მხარდაჭერა გამორთული იყო აგების დროს" -#: fe-connect.c:2045 +#: fe-connect.c:2029 +#, c-format +msgid "invalid SCRAM client key" +msgstr "არასწორი SCRAM კლიენტის გასაღები" + +#: fe-connect.c:2035 +#, c-format +msgid "invalid SCRAM client key length: %d" +msgstr "არასწორი SCRAM კლიენტის გასაღების სიგრძე: %d" + +#: fe-connect.c:2054 +#, c-format +msgid "invalid SCRAM server key" +msgstr "არასწორი SCRAM სერვერის გასაღები" + +#: fe-connect.c:2060 +#, c-format +msgid "invalid SCRAM server key length: %d" +msgstr "არასწორი SCRAM სერვერის გასაღების სიგრძე: %d" + +#: fe-connect.c:2148 +#, c-format +msgid "min_protocol_version is greater than max_protocol_version" +msgstr "min_protocol_version უფრო დიდია, ვიდრე max_protocol_version" + +#: fe-connect.c:2360 #, c-format msgid "could not set socket to TCP no delay mode: %s" msgstr "სოკეტის TCP no_delay რეჟიმის ჩართვის შეცდომა: %s" -#: fe-connect.c:2104 +#: fe-connect.c:2419 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "სოკეტით (\"%s\")სერვერთან მიერთების შეცდომა: " -#: fe-connect.c:2130 +#: fe-connect.c:2445 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "სერვერის (\"%s\" (%s)) %s-ე პორტზე მიერთების შეცდომა: " -#: fe-connect.c:2135 +#: fe-connect.c:2450 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "სერვერის (\"%s\" ) %s-ე პორტზე მიერთების შეცდომა: " -#: fe-connect.c:2158 +#: fe-connect.c:2473 #, c-format msgid "\tIs the server running locally and accepting connections on that socket?" msgstr "\tარს სერვერი ლოკალურად გაშვებული და მზადაა სოკეტითა დასაკავშირებლად?" -#: fe-connect.c:2160 +#: fe-connect.c:2475 #, c-format msgid "\tIs the server running on that host and accepting TCP/IP connections?" msgstr "\tარის სერვერი გაშვებული ამ ჰოსტზე და ეთანხმება TCP/IP შეერთებებს?" -#: fe-connect.c:2206 fe-connect.c:2240 fe-connect.c:2275 fe-connect.c:2373 -#: fe-connect.c:3098 +#: fe-connect.c:2521 fe-connect.c:2555 fe-connect.c:2590 fe-connect.c:2688 +#: fe-connect.c:3414 #, c-format msgid "%s(%s) failed: %s" msgstr "%s(%s) -ის შეცდომა: %s" -#: fe-connect.c:2339 +#: fe-connect.c:2654 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) -ის შეცდომა: შეცდომის კოდი %d" -#: fe-connect.c:2650 +#: fe-connect.c:2966 #, c-format msgid "invalid connection state, probably indicative of memory corruption" msgstr "შეერთების არასწორი მდგომარეობა. დიდი შანსით ნიშნავს მეხსიერების დაზიანებას" -#: fe-connect.c:2733 +#: fe-connect.c:3049 #, c-format msgid "invalid port number: \"%s\"" msgstr "პორტის არასწორი ნომერი: \"%s\"" -#: fe-connect.c:2747 +#: fe-connect.c:3063 #, c-format msgid "could not translate host name \"%s\" to address: %s" msgstr "ჰოსტის სახელის (%s) მისამართში თარგმნის შეცდომა: %s" -#: fe-connect.c:2759 +#: fe-connect.c:3075 #, c-format msgid "could not parse network address \"%s\": %s" msgstr "ქსელური მისამართის (\"%s\") დამუშავების პრობლემა: %s" -#: fe-connect.c:2770 +#: fe-connect.c:3086 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)" msgstr "Unix-დომენის სოკეტის მისამართი \"%s\" ძალიან გრძელია (დასაშვებია %d ბაიტი)" -#: fe-connect.c:2784 +#: fe-connect.c:3100 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s" msgstr "unix-დომენის სოკეტის ბილიკის (\"%s\") მისამართად თარგმნის შეცდომა: %s" -#: fe-connect.c:2950 fe-connect.c:4302 +#: fe-connect.c:3266 fe-connect.c:4713 #, c-format msgid "GSSAPI encryption required but it is not supported over a local socket" msgstr "GSSAPI დაშიფვრა მოთხოვნილია, მაგრამ შეუძლებელია ლოკალური სოკეტის გამოყენებით" -#: fe-connect.c:2958 fe-connect.c:4431 +#: fe-connect.c:3274 fe-connect.c:4842 #, c-format msgid "GSSAPI encryption required but no credential cache" msgstr "GSSAPI დაშიფვრა მოთხოვნილია, მაგრამ ავტორიზაციის დეტალების კეში არ არსებობს" -#: fe-connect.c:3026 +#: fe-connect.c:3342 #, c-format msgid "could not create socket: %s" msgstr "სოკეტის შექმნის შეცდომა: %s" -#: fe-connect.c:3057 +#: fe-connect.c:3373 #, c-format msgid "could not set socket to nonblocking mode: %s" msgstr "სოკეტის არაბლოკირებული რეჟიმის დაყენების შეცდომა: %s" -#: fe-connect.c:3068 +#: fe-connect.c:3384 #, c-format msgid "could not set socket to close-on-exec mode: %s" msgstr "სოკეტის დახურვა-შესრულებისას რეჟიმის დაყენების შეცდომა: %s" -#: fe-connect.c:3086 -#, c-format -msgid "keepalives parameter must be an integer" -msgstr "პარამეტრი keepalives მთელი რიცხვი უნდა იყოს" - -#: fe-connect.c:3225 +#: fe-connect.c:3541 #, c-format msgid "could not get socket error status: %s" msgstr "სოკეტის შეცდომის სტატუსის მიღების შეცდომა: %s" -#: fe-connect.c:3252 +#: fe-connect.c:3568 #, c-format msgid "could not get client address from socket: %s" msgstr "კლიენტის მისამართის სოკეტიდან მიღების შეცდომა: %s" -#: fe-connect.c:3278 +#: fe-connect.c:3594 #, c-format msgid "requirepeer parameter is not supported on this platform" msgstr "პარამეტრი requirepeer ამ პლატფორმაზე მხარდაჭერილი არაა" -#: fe-connect.c:3280 +#: fe-connect.c:3596 #, c-format msgid "could not get peer credentials: %s" msgstr "პარტნიორის ავტორიზაციის დეტალების მიღების შეცდომა: %s" -#: fe-connect.c:3293 +#: fe-connect.c:3609 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"" msgstr "requrepeer-ის მნიშვნელობაა \"%s\", მაგრამ პარტნიორის მომხმარებლის ნამდვილი ასხელია: \"%s\"" -#: fe-connect.c:3331 +#: fe-connect.c:3647 #, c-format msgid "could not send GSSAPI negotiation packet: %s" msgstr "შეცდომა GSSAPI-ის მიმოცვლის პაკეტის გაგზავნისას: %s" -#: fe-connect.c:3380 +#: fe-connect.c:3686 #, c-format msgid "could not send SSL negotiation packet: %s" msgstr "შეცდომა SSL მიმოცვლის პაკეტის გაგზავნისას: %s" -#: fe-connect.c:3412 +#: fe-connect.c:3712 #, c-format msgid "could not send cancel packet: %s" msgstr "გაუქმების პაკეტის გაგზავნა შეუძლებელია: %s" -#: fe-connect.c:3442 +#: fe-connect.c:3742 #, c-format msgid "could not send startup packet: %s" msgstr "გაშვების პაკეტის გაგზავნის შეცდომა: %s" -#: fe-connect.c:3509 +#: fe-connect.c:3815 msgid "server does not support SSL, but SSL was required" msgstr "სერვერს SSL-ის მხარდაჭერა არ გააჩნია, მაგრამ SSL-ი აუცილებელია" -#: fe-connect.c:3528 +#: fe-connect.c:3825 +#, c-format +msgid "server sent an error response during SSL exchange" +msgstr "სერვერმა გამოაგზავნა შეცდომის შემცველი პასუხი SSL მიმოცვლის დროს" + +#: fe-connect.c:3830 #, c-format msgid "received invalid response to SSL negotiation: %c" msgstr "არასწორი პასუხი SSL მიმოცვლისას: %c" -#: fe-connect.c:3556 +#: fe-connect.c:3850 #, c-format msgid "received unencrypted data after SSL response" msgstr "'SSL' პასუხის შემდეგ მიღებული მონაცემები დაუშიფრავია" -#: fe-connect.c:3630 +#: fe-connect.c:3913 +#, c-format +msgid "server sent an error response during GSS encryption exchange" +msgstr "სერვერმა გამოაგზავნა შეცდომის შემცველი პასუხი GSS დაშიფვრის მიმოცვლის დროს" + +#: fe-connect.c:3931 msgid "server doesn't support GSSAPI encryption, but it was required" msgstr "სერვერს GSSAPI დაშიფვრის მხარდაჭერა არ გააჩნა, მაგრამ ის მოთხოვილია" -#: fe-connect.c:3634 +#: fe-connect.c:3935 #, c-format msgid "received invalid response to GSSAPI negotiation: %c" msgstr "'GSSAPI' მიმოცვლის არასწორი პასუხი: %c" -#: fe-connect.c:3652 +#: fe-connect.c:3957 #, c-format msgid "received unencrypted data after GSSAPI encryption response" msgstr "'GSSAPI' პასუხის შემდეგ მიღებული მონაცემები დაუშიფრავია" -#: fe-connect.c:3708 +#: fe-connect.c:4018 #, c-format msgid "expected authentication request from server, but received %c" msgstr "სერვერიდან მოსალოდნელი იყო ავთენტიკაციის მოთხოვნა, მაგრამ მიღებულია %c" -#: fe-connect.c:3736 fe-connect.c:3859 +#: fe-connect.c:4046 fe-connect.c:4178 #, c-format msgid "received invalid authentication request" msgstr "დუბლირებული GSS ავთენტიკაციის მოთხოვნა" -#: fe-connect.c:3742 fe-connect.c:3844 +#: fe-connect.c:4052 #, c-format msgid "received invalid protocol negotiation message" msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება" -#: fe-connect.c:3761 fe-connect.c:3815 +#: fe-connect.c:4071 fe-connect.c:4125 #, c-format msgid "received invalid error message" msgstr "მიღებულია არასწორი შეცდომის შეტყობინება" -#: fe-connect.c:3930 +#: fe-connect.c:4155 +#, c-format +msgid "received duplicate protocol negotiation message" +msgstr "მიღებულია გამეორებული პროტოკოლის მიმოცვლის შეტყობინება" + +#: fe-connect.c:4257 +#, c-format +msgid "internal error: async authentication has no handler" +msgstr "შიდა შეცდომა: ასინქრონულ ავთენტიკატორს დამმუშავებელი არ აქვს" + +#: fe-connect.c:4282 +#, c-format +msgid "internal error: async cleanup did not release polling socket" +msgstr "შიდა შეცდომა: ასინქრონულმა მოსუფთავებამ სოკეტი არ გაათავისუფლა" + +#: fe-connect.c:4305 +#, c-format +msgid "internal error: async authentication did not set a socket for polling" +msgstr "შიდა შეცდომა: ასინქრონულმა ავთენტიკაციამ პოლინგისთვის სოკეტი არ დააყენა" + +#: fe-connect.c:4338 #, c-format msgid "unexpected message from server during startup" msgstr "სერვერის გაშვებისას მიღებულია მოულოდნელი შეტყობინება" -#: fe-connect.c:4021 +#: fe-connect.c:4429 #, c-format msgid "session is read-only" msgstr "სესია მხოლოდ კითხვადია" -#: fe-connect.c:4023 +#: fe-connect.c:4431 #, c-format msgid "session is not read-only" msgstr "სესია მხოლოდ კითხვადი არა" -#: fe-connect.c:4076 +#: fe-connect.c:4484 #, c-format msgid "server is in hot standby mode" msgstr "სერვერი მზა-უქმე რეჟიმშია" -#: fe-connect.c:4078 +#: fe-connect.c:4486 #, c-format msgid "server is not in hot standby mode" msgstr "სერვერი მზა-უქმე რეჟიმში არაა" -#: fe-connect.c:4200 fe-connect.c:4250 +#: fe-connect.c:4611 fe-connect.c:4661 #, c-format msgid "\"%s\" failed" msgstr "\"%s\"-ის შეცდომა" -#: fe-connect.c:4264 +#: fe-connect.c:4675 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption" msgstr "შეერთების არასწორი მდგომარეობა (%d). დიდი შანსით ნიშნავს მეხსიერების დაზიანებას" -#: fe-connect.c:5083 +#: fe-connect.c:5504 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://" msgstr "'LDAP'-ის არასწორი URL: \"%s\": სქემა ldap:// უნდა იყოს" -#: fe-connect.c:5098 +#: fe-connect.c:5519 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name" msgstr "'LDAP'-ის არასწორი URL: \"%s\": აკლია გამოყოფილი სახელი" -#: fe-connect.c:5110 fe-connect.c:5168 +#: fe-connect.c:5531 fe-connect.c:5589 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute" msgstr "'LDAP'-ის არასწორი URL \"%s\": ზუსტად ერთი ატრიბუტი უნდა ჰქონდეს" -#: fe-connect.c:5122 fe-connect.c:5184 +#: fe-connect.c:5543 fe-connect.c:5605 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)" msgstr "'LDAP'-ის არასწორი URL: \"%s\": საჭიროა ძებნის ფარგლების ქონა (საბაზისო/ერთი/ქვე)" -#: fe-connect.c:5134 +#: fe-connect.c:5555 #, c-format msgid "invalid LDAP URL \"%s\": no filter" msgstr "'LDAP'-ის არასწორი URL: \"%s\":ფილტრი არ არსებობს" -#: fe-connect.c:5156 +#: fe-connect.c:5577 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number" msgstr "'LDAP'-ის არასწორი URL: \"%s\": პორტის არასწორი ნომერი" -#: fe-connect.c:5193 +#: fe-connect.c:5614 #, c-format msgid "could not create LDAP structure" msgstr "შეცდომა LDAP-ის სტრუქტურის შექმნისას" -#: fe-connect.c:5268 +#: fe-connect.c:5689 #, c-format msgid "lookup on LDAP server failed: %s" msgstr "'LDAP' სერვერის მოძებნის შეცდომა: %s" -#: fe-connect.c:5278 +#: fe-connect.c:5699 #, c-format msgid "more than one entry found on LDAP lookup" msgstr "ძებნისას (LDAP) ნაპოვნია ერთზე მეტი ჩანაწერი" -#: fe-connect.c:5280 fe-connect.c:5291 +#: fe-connect.c:5701 fe-connect.c:5712 #, c-format msgid "no entry found on LDAP lookup" msgstr "ძებნისას (LDAP) ჩანაწერები ნაპოვნი არაა" -#: fe-connect.c:5301 fe-connect.c:5313 +#: fe-connect.c:5722 fe-connect.c:5734 #, c-format msgid "attribute has no values on LDAP lookup" msgstr "'LDAP' ძებნის ატრიბუტს მნიშვნელობა არ გააჩნია" -#: fe-connect.c:5364 fe-connect.c:5383 fe-connect.c:5907 +#: fe-connect.c:5785 fe-connect.c:5804 fe-connect.c:6328 #, c-format msgid "missing \"=\" after \"%s\" in connection info string" msgstr "შეერთების სტრიქონში \"%s\"-ის შემდეგ \"=\" აკლია" -#: fe-connect.c:5454 fe-connect.c:6090 fe-connect.c:6888 +#: fe-connect.c:5875 fe-connect.c:6511 fe-connect.c:7341 #, c-format msgid "invalid connection option \"%s\"" msgstr "შეერთების არასწორი პარამეტრი: \"%s\"" -#: fe-connect.c:5469 fe-connect.c:5955 +#: fe-connect.c:5890 fe-connect.c:6376 #, c-format msgid "unterminated quoted string in connection info string" msgstr "შეერთების ინფორმაციის სტრიქონში ბრჭყალებში ჩასმული სტრიქონი დაუსრულებელია" -#: fe-connect.c:5549 +#: fe-connect.c:5970 #, c-format msgid "definition of service \"%s\" not found" msgstr "სერვისის აღწერა არ არსებობს: \"%s\"" -#: fe-connect.c:5575 +#: fe-connect.c:5996 #, c-format msgid "service file \"%s\" not found" msgstr "სერვისის ფაილი არ არსებობს: \"%s\"" -#: fe-connect.c:5588 +#: fe-connect.c:6009 #, c-format msgid "line %d too long in service file \"%s\"" msgstr "ძალიან გრძელი ხაზი (%d) სერვისის ფაილში \"%s\"" -#: fe-connect.c:5659 fe-connect.c:5702 +#: fe-connect.c:6080 fe-connect.c:6123 #, c-format msgid "syntax error in service file \"%s\", line %d" msgstr "სინტაქსის შეცდომა სერვისის ფაილში \"%s\" ხაზზე %d" -#: fe-connect.c:5670 +#: fe-connect.c:6091 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d" msgstr "სერვისის ფაილში \"%s\" ჩადგმული სერვისის მითითება მხარდაუჭერელია. ხაზი %d" -#: fe-connect.c:6409 +#: fe-connect.c:6830 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"" msgstr "დამუშავებს შიდა ფუნქციაში გადაცემული URI არასწორია: %s" -#: fe-connect.c:6486 +#: fe-connect.c:6907 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"" msgstr "სტრიქონის დასასრული \"]\"-ს IPv6 ჰოსტის მისამართში URI-ში ძებნისას: \"%s\"" -#: fe-connect.c:6493 +#: fe-connect.c:6914 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"" msgstr "ჰოსტის IPv6 მისამართი URI-ში ცარიელი ვერ იქნება: \"%s\"" -#: fe-connect.c:6508 +#: fe-connect.c:6929 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"" msgstr "უცნობი სიმბოლო (\"%c\") URI-ში პოზიციაზე %d (მოველოდი \":\"-ს ან \"/\"-ს): \"%s\"" -#: fe-connect.c:6637 +#: fe-connect.c:7058 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "მოთხოვნის URI არამეტრში მითითებულია გასაღები/მნიშვნელობის ზედმეტი \"=\": \"%s\"" -#: fe-connect.c:6657 +#: fe-connect.c:7078 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"" msgstr "მოთხოვნის URI პარამეტრში მითითებულია გასაღები/მნიშვნელობის წყვილს \"=\" აკლია: \"%s\"" -#: fe-connect.c:6709 +#: fe-connect.c:7130 #, c-format msgid "invalid URI query parameter: \"%s\"" msgstr "მოთხოვნის არასწორი პარამეტრი: \"%s\"" -#: fe-connect.c:6783 +#: fe-connect.c:7214 #, c-format msgid "invalid percent-encoded token: \"%s\"" msgstr "არასწორი პროცენტულად-კოდირებული კოდი: \"%s\"" -#: fe-connect.c:6793 +#: fe-connect.c:7224 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"" msgstr "პროცენტში კოდირებული მნიშვნელობის აკრძალული მნიშვნელობა %%00: \"%s\"" -#: fe-connect.c:7157 +#: fe-connect.c:7246 +#, c-format +msgid "unexpected spaces found in \"%s\", use percent-encoded spaces (%%20) instead" +msgstr "\"%s\"-ში აღმოჩენილია მოულოდნელი ჰარეები. მათ მაგიერ გამოიყენეთ პროცენტით კოდირებული (%%20)" + +#: fe-connect.c:7628 msgid "connection pointer is NULL\n" msgstr "შეერთების მაჩვენებელი ნულოვანია\n" -#: fe-connect.c:7165 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 -#: fe-protocol3.c:991 fe-protocol3.c:1024 +#: fe-connect.c:7636 fe-exec.c:713 fe-exec.c:975 fe-exec.c:3459 +#: fe-protocol3.c:987 fe-protocol3.c:1020 msgid "out of memory\n" msgstr "არასაკმარისი მეხსიერება\n" -#: fe-connect.c:7456 +#: fe-connect.c:7938 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "გაფრთხილება. პაროლის ფაილი \"%s\" უბრალოდ ფაილს არ წარმოადგენს\n" -#: fe-connect.c:7465 +#: fe-connect.c:7948 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "გაფრთხილება: პაროლების ფაილს \"%s\" ჯგუფზე ან დანარჩენ ყველაზე წვდომა გააჩნია. წვდომა 0600 ან ნაკლები უნდა იყოს\n" -#: fe-connect.c:7572 +#: fe-connect.c:8052 #, c-format msgid "password retrieved from file \"%s\"" msgstr "პაროლი მიღებულია ფაილიდან \"%s\"" -#: fe-connect.c:7724 +#: fe-connect.c:8218 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"" msgstr "არასწორი მნიშვნელობა: \"%s\" (უნდა იყოს მთელი რიცხვი) შეერთების პარამეტრისთვის \"%s\"" @@ -822,7 +1184,7 @@ msgstr "არასწორი მნიშვნელობა: \"%s\" (უ msgid "row number %d is out of range 0..%d" msgstr "მწკრივების რაოდენობა %d ზღვარს (0..%d) გარეთაა" -#: fe-exec.c:531 fe-protocol3.c:1993 +#: fe-exec.c:531 fe-protocol3.c:2067 #, c-format msgid "%s" msgstr "%s" @@ -913,7 +1275,7 @@ msgstr "COPY BOTH-ის დროს PQexec დაუშვებელია" msgid "unrecognized message type \"%c\"" msgstr "შეტყობინების უცნობი ტიპი: \"%c\"" -#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1924 +#: fe-exec.c:2702 fe-exec.c:2756 fe-exec.c:2824 fe-protocol3.c:1998 #, c-format msgid "no COPY in progress" msgstr "ბრძანება COPY გაშვებული არაა" @@ -971,11 +1333,16 @@ msgstr "პარამეტრების რაოდენობა %d ზ msgid "could not interpret result from server: %s" msgstr "სერვერის პასუხის გაურკვეველია: %s" -#: fe-exec.c:4127 fe-exec.c:4217 +#: fe-exec.c:4140 fe-exec.c:4253 #, c-format msgid "incomplete multibyte character" msgstr "დაუსრულებელი მრავალბაიტიანი სიმბოლო" +#: fe-exec.c:4142 fe-exec.c:4272 +#, c-format +msgid "invalid multibyte character" +msgstr "არასწორი მრავალბაიტიანი სიმბოლო" + #: fe-gssapi-common.c:122 msgid "GSSAPI name import error" msgstr "GSSAPI-ის სახელის შემოტანის შეცდომა" @@ -1032,8 +1399,8 @@ msgstr "%lu-ის მთელი რიცხვის ზომა მხა msgid "integer of size %lu not supported by pqPutInt" msgstr "%lu-ის მთელი რიცხვის ზომა მხარდაუჭერელია pqPutInt-is მიერ" -#: fe-misc.c:750 fe-secure-openssl.c:203 fe-secure-openssl.c:309 -#: fe-secure.c:237 fe-secure.c:404 +#: fe-misc.c:765 fe-secure-openssl.c:181 fe-secure-openssl.c:287 +#: fe-secure.c:222 fe-secure.c:389 #, c-format msgid "" "server closed the connection unexpectedly\n" @@ -1044,172 +1411,200 @@ msgstr "" "\tეს დიდი ალბათობით ნიშნავს, რომ სერვერის პროცესი \n" "\tმოულოდნელად, მოთხოვნამდე ან მოთხოვნის შესრულებსას დასრულდა." -#: fe-misc.c:817 +#: fe-misc.c:832 msgid "connection not open\n" msgstr "შეერთება ღია არაა\n" -#: fe-misc.c:1005 +#: fe-misc.c:1020 #, c-format msgid "timeout expired" msgstr "მოლოდინის დრო გავიდა" -#: fe-misc.c:1049 +#: fe-misc.c:1072 #, c-format msgid "invalid socket" msgstr "არასწორი სოკეტი" -#: fe-misc.c:1071 +#: fe-misc.c:1095 #, c-format msgid "%s() failed: %s" msgstr "%s()-ის შეცდომა: %s" -#: fe-protocol3.c:187 +#: fe-protocol3.c:188 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "შეტყობინების ტიპი 0x%02x მოვიდა სერვერიდან, როცა უქმე ვიყავი" -#: fe-protocol3.c:402 +#: fe-protocol3.c:401 #, c-format msgid "server sent data (\"D\" message) without prior row description (\"T\" message)" msgstr "სერვერმა მონაცემები (\"D\" შეტყობინება) მწკრივების წინასწარი აღწერის (\"T\" შეტყობინება) გარეშე გამოაგზავნა" -#: fe-protocol3.c:444 +#: fe-protocol3.c:443 #, c-format msgid "unexpected response from server; first received character was \"%c\"" msgstr "სერვერის მოულოდნელი პასუხი; პირველი მიღებული სიმბოლოა \"%c\"" -#: fe-protocol3.c:467 +#: fe-protocol3.c:462 #, c-format msgid "message contents do not agree with length in message type \"%c\"" msgstr "შეტყობინების შიგთავსი შეტყობინების ამ ტიპის (%c) სიგრძეს არ ემთხვევა" -#: fe-protocol3.c:485 +#: fe-protocol3.c:480 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d" msgstr "სერვერთან სინქრონიზაციის შეცდომა: შეტყობინების ტიპი: \"%c\", სიგრძე %d" -#: fe-protocol3.c:537 fe-protocol3.c:577 +#: fe-protocol3.c:532 fe-protocol3.c:572 msgid "insufficient data in \"T\" message" msgstr "არასაკმარისი მონაცემები \"T\" შეტყობინებაში" -#: fe-protocol3.c:648 fe-protocol3.c:854 +#: fe-protocol3.c:643 fe-protocol3.c:849 msgid "out of memory for query result" msgstr "არასაკმარისი მეხსიერება მოთხოვნის შედეგისთვის" -#: fe-protocol3.c:717 +#: fe-protocol3.c:712 msgid "insufficient data in \"t\" message" msgstr "არასაკმარისი მონაცემები \"t\" შეტყობინებაში" -#: fe-protocol3.c:776 fe-protocol3.c:808 fe-protocol3.c:826 +#: fe-protocol3.c:771 fe-protocol3.c:803 fe-protocol3.c:821 msgid "insufficient data in \"D\" message" msgstr "არასაკმარისი მონაცემები \"D\" შეტყობინებაში" -#: fe-protocol3.c:782 +#: fe-protocol3.c:777 msgid "unexpected field count in \"D\" message" msgstr "ველების მოულოდნელი რაოდენობა \"D\" შეტყობინებაში" -#: fe-protocol3.c:1037 +#: fe-protocol3.c:1033 msgid "no error message available\n" msgstr "შეცდომის შეტყობინების გარეშე\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1085 fe-protocol3.c:1104 +#: fe-protocol3.c:1081 fe-protocol3.c:1100 #, c-format msgid " at character %s" msgstr " სიმბოლოსთან %s" -#: fe-protocol3.c:1117 +#: fe-protocol3.c:1113 #, c-format msgid "DETAIL: %s\n" msgstr "დეტალი: %s\n" -#: fe-protocol3.c:1120 +#: fe-protocol3.c:1116 #, c-format msgid "HINT: %s\n" msgstr "მინიშნება: %s\n" -#: fe-protocol3.c:1123 +#: fe-protocol3.c:1119 #, c-format msgid "QUERY: %s\n" msgstr "მოთხოვნა: %s\n" -#: fe-protocol3.c:1130 +#: fe-protocol3.c:1126 #, c-format msgid "CONTEXT: %s\n" msgstr "კონტექსტი: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1135 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "სქემის სახელი: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1139 #, c-format msgid "TABLE NAME: %s\n" msgstr "ცხრილის სახელი: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1143 #, c-format msgid "COLUMN NAME: %s\n" msgstr "სვეტის სახელი: %s\n" -#: fe-protocol3.c:1151 +#: fe-protocol3.c:1147 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "მონ. ტიპის სახელი: %s\n" -#: fe-protocol3.c:1155 +#: fe-protocol3.c:1151 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "შეზღუდვის სახელი: %s\n" -#: fe-protocol3.c:1167 +#: fe-protocol3.c:1163 msgid "LOCATION: " msgstr "მდებარეობა: " -#: fe-protocol3.c:1169 +#: fe-protocol3.c:1165 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1171 +#: fe-protocol3.c:1167 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1366 +#: fe-protocol3.c:1362 #, c-format msgid "LINE %d: " msgstr "ხაზი %d: " -#: fe-protocol3.c:1440 +#: fe-protocol3.c:1424 #, c-format -msgid "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u" -msgstr "პროტოკოლის ვერსია სერვერის მიერ მხარდაჭერილი არაა: კლიენტი იყენებს %u.%u, სერვერის მხარდაჭერილი ვერსიის მაქსიმუმია %u.%u" +msgid "received invalid protocol negotiation message: server requested downgrade to a higher-numbered version" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება: სერვერმა მოითხოვა ვერსიის ჩამოწევა უფრო მაღალ ვერსიაზე" -#: fe-protocol3.c:1446 +#: fe-protocol3.c:1430 #, c-format -msgid "protocol extension not supported by server: %s" -msgid_plural "protocol extensions not supported by server: %s" -msgstr[0] "პროტოკოლის გაფართოება სერვერის მიერ მხარდაჭერილი არაა: %s" -msgstr[1] "პროტოკოლის გაფართოებები სერვერის მიერ მხარდაჭერილი არაა: %s" +msgid "received invalid protocol negotiation message: server requested downgrade to pre-3.0 protocol version" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება: სერვერმა მოითხოვა ვერსიის ჩამოწევა 3.0-მდელ ვერსიაზე" -#: fe-protocol3.c:1454 +#: fe-protocol3.c:1437 #, c-format -msgid "invalid %s message" -msgstr "არასწორი %s შეტყობინება" +msgid "received invalid protocol negotiation message: server requests downgrade to non-existent 3.1 protocol version" +msgstr "მიღებულია არასწორი პროტოკოლის ხელის ჩამორთმევის შეტყობინება: სერვერი ითხოვს ვერსიის ჩამოწევას არარსებულ პროტოკოლის ვერსიაზე 3.1" -#: fe-protocol3.c:1819 +#: fe-protocol3.c:1443 +#, c-format +msgid "received invalid protocol negotiation message: server reported negative number of unsupported parameters" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება: სერვერმა მხარდაუჭერელი პარამეტრების უარყოფითი რაოდენობა გადმოგვცა" + +#: fe-protocol3.c:1449 +#, c-format +msgid "received invalid protocol negotiation message: server negotiated but asks for no changes" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება: სერვერთან კავშირი დამყარდა, მაგრამ ის ცვლილებებს არ ითხოვს" + +#: fe-protocol3.c:1455 +#, c-format +msgid "server only supports protocol version %d.%d, but min_protocol_version was set to %d.%d" +msgstr "სერვერს, მხოლოდ, %d.%d ვერსიის პროტოკოლის მხარდაჭერა აქვს, მაგრამ min_protocol-ის მნიშვნელობაა %d.%d" + +#: fe-protocol3.c:1479 +#, c-format +msgid "received invalid protocol negotiation message: server reported unsupported parameter name without a _pq_. prefix (\"%s\")" +msgstr "მიღებულია არასწორი პროტოკოლის მოლაპარაკების შეტყობინება: სერვერმა მოიწერა მხარდაუჭერელი პარამეტრის სახელი _pq_. პრეფიქსის გარეშე (\"%s\")" + +#: fe-protocol3.c:1482 +#, c-format +msgid "received invalid protocol negotiation message: server reported an unsupported parameter that was not requested (\"%s\")" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება: სერვერმა მოიწერა მხარდაუჭერელი პარამეტრი, რომელიც მას არ მოუთხოვია (\"%s\")" + +#: fe-protocol3.c:1489 +#, c-format +msgid "received invalid protocol negotiation message: message too short" +msgstr "მიღებულია არასწორი პროტოკოლის მიმოცვლის შეტყობინება; შეტყობინება მეტისმეტად მოკლეა" + +#: fe-protocol3.c:1893 #, c-format msgid "PQgetline: not doing text COPY OUT" msgstr "PQgetline: ტექსტის COPY OUT-ს არ გავაკეთებ" -#: fe-protocol3.c:2193 +#: fe-protocol3.c:2268 #, c-format msgid "protocol error: no function result" msgstr "პროტოკოლის შეცდომა: ფუნქციის შედეგის გარეშე" -#: fe-protocol3.c:2204 +#: fe-protocol3.c:2280 #, c-format msgid "protocol error: id=0x%x" msgstr "პროტოკოლის შეცდომა: id=0x%x" @@ -1291,92 +1686,102 @@ msgstr "GSSAPI-ის ზომის შემოწმების შეც msgid "GSSAPI context establishment error" msgstr "GSSAPI-ის კონტექსტის დამყარებულობის შეცდომა" -#: fe-secure-openssl.c:207 fe-secure-openssl.c:313 fe-secure-openssl.c:1524 +#: fe-secure-openssl.c:185 fe-secure-openssl.c:291 fe-secure-openssl.c:1378 #, c-format msgid "SSL SYSCALL error: %s" msgstr "SSL SYSCALL-ის შეცდომა: %s" -#: fe-secure-openssl.c:213 fe-secure-openssl.c:319 fe-secure-openssl.c:1527 +#: fe-secure-openssl.c:191 fe-secure-openssl.c:297 fe-secure-openssl.c:1381 #, c-format msgid "SSL SYSCALL error: EOF detected" msgstr "SSL SYSCALL -ის შეცდომა: ნაპოვნია EOF" -#: fe-secure-openssl.c:223 fe-secure-openssl.c:329 fe-secure-openssl.c:1535 +#: fe-secure-openssl.c:201 fe-secure-openssl.c:307 fe-secure-openssl.c:1389 #, c-format msgid "SSL error: %s" msgstr "SSL-ის შეცდომა: %s" -#: fe-secure-openssl.c:237 fe-secure-openssl.c:343 +#: fe-secure-openssl.c:215 fe-secure-openssl.c:321 #, c-format msgid "SSL connection has been closed unexpectedly" msgstr "SSL შეერთება მოულოდნელად დაიხურა" -#: fe-secure-openssl.c:242 fe-secure-openssl.c:348 fe-secure-openssl.c:1582 +#: fe-secure-openssl.c:220 fe-secure-openssl.c:326 fe-secure-openssl.c:1436 #, c-format msgid "unrecognized SSL error code: %d" msgstr "უცნობი SSL-ის შეცდომის კოდი: %d" -#: fe-secure-openssl.c:390 +#: fe-secure-openssl.c:368 #, c-format msgid "could not determine server certificate signature algorithm" msgstr "სერვერის სერტიფიკატის ხელმოწერის ალგორითმის დადგენა შეუძლებელია" -#: fe-secure-openssl.c:410 +#: fe-secure-openssl.c:388 #, c-format msgid "could not find digest for NID %s" msgstr "'NID'-ისთვის (%s) დაიჯესტის პოვნა შეუძლებელია" -#: fe-secure-openssl.c:419 +#: fe-secure-openssl.c:397 #, c-format msgid "could not generate peer certificate hash" msgstr "პარტნიორის სერტიფიკატის ჰეშის გენერირების შეცდომა" -#: fe-secure-openssl.c:501 +#: fe-secure-openssl.c:479 #, c-format msgid "SSL certificate's name entry is missing" msgstr "SSL სერტიფიკატის სახელის ჩანაწერი არ არსებობს" -#: fe-secure-openssl.c:535 +#: fe-secure-openssl.c:509 #, c-format msgid "SSL certificate's address entry is missing" msgstr "SSL სერტიფიკატის მისამართის ჩანაწერი არ არსებობს" -#: fe-secure-openssl.c:935 +#: fe-secure-openssl.c:714 +#, c-format +msgid "could not open ssl keylog file \"%s\": %s" +msgstr "ვერ გავხსენი sslkeylogfile \"%s\": %s" + +#: fe-secure-openssl.c:722 +#, c-format +msgid "could not write to ssl keylog file \"%s\": %s" +msgstr "sslkeylogfile \"%s\"-ში ჩაწერის შეცდომა: %s" + +#: fe-secure-openssl.c:775 #, c-format msgid "could not create SSL context: %s" msgstr "შეცდომა SSL კონტექსტის შექმნისას: %s" -#: fe-secure-openssl.c:977 +#: fe-secure-openssl.c:817 #, c-format msgid "invalid value \"%s\" for minimum SSL protocol version" msgstr "'SSL' პროტოკოლის ვერსიის არასწორი მინიმალური მნიშვნელობა: %s" -#: fe-secure-openssl.c:987 +#: fe-secure-openssl.c:827 #, c-format msgid "could not set minimum SSL protocol version: %s" msgstr "'SSL' პროტოკოლის ვერსიის მინიმალური მნიშვნელობის დაყენების შეცდომა: %s" -#: fe-secure-openssl.c:1003 +#: fe-secure-openssl.c:843 #, c-format msgid "invalid value \"%s\" for maximum SSL protocol version" msgstr "'SSL' პროტოკოლის ვერსიის არასწორი მაქსიმალური მნიშვნელობა: %s" -#: fe-secure-openssl.c:1013 +#: fe-secure-openssl.c:853 #, c-format msgid "could not set maximum SSL protocol version: %s" msgstr "'SSL' პროტოკოლის ვერსიის მაქსიმალური მნიშვნელობის დაყენების შეცდომა: %s" -#: fe-secure-openssl.c:1051 +#: fe-secure-openssl.c:891 #, c-format msgid "could not load system root certificate paths: %s" msgstr "სისტემური root სერტიფიკატების ბილიკების ჩატვირთვის შეცდომა: %s" -#: fe-secure-openssl.c:1068 +#: fe-secure-openssl.c:908 #, c-format msgid "could not read root certificate file \"%s\": %s" msgstr "root სერტიფიკატის ფაილის (\"%s\") წაკითხვის შეცდომა: %s" -#: fe-secure-openssl.c:1120 +#: fe-secure-openssl.c:960 #, c-format msgid "" "could not get home directory to locate root certificate file\n" @@ -1385,7 +1790,7 @@ msgstr "" "root სერტიფიკატის ფაილის მოსაძებნად საწყისი საქაღალდის მიღება შეუძლებელია\n" "ამ წარმოადგინეთ ფაილი, ან გამოიყენეთ სისტემის სანდო root-ები პარამეტრით sslrootcert=system, ან sslmode სერვერის სერტიფიკატის შემოწმება გამორთეთ." -#: fe-secure-openssl.c:1123 +#: fe-secure-openssl.c:963 #, c-format msgid "" "root certificate file \"%s\" does not exist\n" @@ -1394,127 +1799,137 @@ msgstr "" "root სერტიფიკატის ფაილი \"%s\" არ არსებობს\n" "წარმოადგინეთ ფაილი ან გამორთეთ sslmode სერვერის სერტიფიკატის შემოწმება." -#: fe-secure-openssl.c:1158 +#: fe-secure-openssl.c:998 #, c-format msgid "could not open certificate file \"%s\": %s" msgstr "სერტიფიკატის ფაილის გახსნის შეცდომა \"%s\": %s" -#: fe-secure-openssl.c:1176 +#: fe-secure-openssl.c:1016 #, c-format msgid "could not read certificate file \"%s\": %s" msgstr "სერტიფიკატის ფაილის წაკითხვის შეცდომა \"%s\": %s" -#: fe-secure-openssl.c:1200 +#: fe-secure-openssl.c:1040 #, c-format msgid "could not establish SSL connection: %s" msgstr "'SSL' შეერთების დამყარების შეცდომა: %s" -#: fe-secure-openssl.c:1232 +#: fe-secure-openssl.c:1053 +#, c-format +msgid "WARNING: sslkeylogfile support requires OpenSSL\n" +msgstr "გაფრთხილება: sslkeylogfile-ის მხარდაჭერას OpenSSL სჭირდება\n" + +#: fe-secure-openssl.c:1055 +#, c-format +msgid "WARNING: libpq was not built with sslkeylogfile support\n" +msgstr "გაფრთხილება: libpq არ იყო აგებული sslkeylogfile-ის მხარდაჭერით\n" + +#: fe-secure-openssl.c:1086 #, c-format msgid "could not set SSL Server Name Indication (SNI): %s" msgstr "'SSL' სერვერის სახელის ინდიკაციის (SNI) დაყენების შეცდომა: %s" -#: fe-secure-openssl.c:1249 +#: fe-secure-openssl.c:1103 #, c-format msgid "could not set SSL ALPN extension: %s" msgstr "\"SSL ALPN\" გაფართოების დაყენების შეცდომა: %s" -#: fe-secure-openssl.c:1292 +#: fe-secure-openssl.c:1146 #, c-format msgid "could not load SSL engine \"%s\": %s" msgstr "'SSL' ძრავის (\"%s\") ჩატვირთვის შეცდომა: %s" -#: fe-secure-openssl.c:1303 +#: fe-secure-openssl.c:1157 #, c-format msgid "could not initialize SSL engine \"%s\": %s" msgstr "'SSL' ძრავის (\"%s\") ინიციალიზაციის შეცდომა: %s" -#: fe-secure-openssl.c:1318 +#: fe-secure-openssl.c:1172 #, c-format msgid "could not read private SSL key \"%s\" from engine \"%s\": %s" msgstr "'SSL'-ის პირადი გასაღების (\"%s\") ძრავიდან (\"%s\") წაკითხვის შეცდომა: %s" -#: fe-secure-openssl.c:1331 +#: fe-secure-openssl.c:1185 #, c-format msgid "could not load private SSL key \"%s\" from engine \"%s\": %s" msgstr "'SSL'-ის პირადი გასაღების (\"%s\") ძრავიდან (\"%s\") წაკითხვის შეცდომა: %s" -#: fe-secure-openssl.c:1368 +#: fe-secure-openssl.c:1222 #, c-format msgid "certificate present, but not private key file \"%s\"" msgstr "სერტიფიკატისგან განსხვავებით, პირადი გასაღების ფაილი \"%s\" არ არსებობს" -#: fe-secure-openssl.c:1371 +#: fe-secure-openssl.c:1225 #, c-format msgid "could not stat private key file \"%s\": %m" msgstr "პირადი გასაღების ფაილი \"%s\" არ არსებობს: %m" -#: fe-secure-openssl.c:1379 +#: fe-secure-openssl.c:1233 #, c-format msgid "private key file \"%s\" is not a regular file" msgstr "პირადი გასაღების ფაილი \"%s\" ჩვეულებრივი ფაილი არაა" -#: fe-secure-openssl.c:1412 +#: fe-secure-openssl.c:1266 #, 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" msgstr "პირადი გასაღების ფაილს \"%s\" აქვს ჯგუფური ან ყველა სხვაზე წვდომა; ფაილს უნდა ჰქონდეს ნებართვები u=rw (0600) ან ნაკლები, თუ ეკუთვნის ამჟამინდელ მომხმარებელს, ან ნებართვები u=rw,g=r (0640) ან ნაკლები, თუ ეკუთვნის root-ს" -#: fe-secure-openssl.c:1436 +#: fe-secure-openssl.c:1290 #, c-format msgid "could not load private key file \"%s\": %s" msgstr "პირადი გასაღების ფაილის \"%s\" ჩატვირთვის შეცდომა: %s" -#: fe-secure-openssl.c:1452 +#: fe-secure-openssl.c:1306 #, c-format msgid "certificate does not match private key file \"%s\": %s" msgstr "სერტიფიკატი პირადი გასაღების ფაილს (\"%s\") არ ემთხვევა: %s" -#: fe-secure-openssl.c:1521 +#: fe-secure-openssl.c:1375 #, c-format msgid "SSL error: certificate verify failed: %s" msgstr "SSL-ის შეცდომა: სერტიფიკატის გადამოწმების შეცდომა: %s" -#: fe-secure-openssl.c:1566 +#: fe-secure-openssl.c:1420 #, c-format msgid "This may indicate that the server does not support any SSL protocol version between %s and %s." msgstr "ეს შეიძლება ნიშნავდეს, რომ სერვერს SSL პროტოკოლის %s-სა და %s-ს შორის ვერსიების მხარდაჭერა არ გააჩნია." -#: fe-secure-openssl.c:1598 +#: fe-secure-openssl.c:1452 #, c-format msgid "direct SSL connection was established without ALPN protocol negotiation extension" -msgstr "პირდაპირი SSL მიერთება დამყარდა ALPN პროტოკოლის შეთანხმების გაფართოების გარეშე" +msgstr "პირდაპირი SSL მიერთება დამყარდა ALPN პროტოკოლის მიმოცვლის გაფართოების გარეშე" -#: fe-secure-openssl.c:1610 +#: fe-secure-openssl.c:1464 #, c-format msgid "SSL connection was established with unexpected ALPN protocol" msgstr "SSL შეერთება დამყარდა მოულოდნელი ALPN პროტოკოლით" -#: fe-secure-openssl.c:1627 +#: fe-secure-openssl.c:1481 #, c-format msgid "certificate could not be obtained: %s" msgstr "სერტიფიკატის მიღების შეცდომა: %s" -#: fe-secure-openssl.c:1734 +#: fe-secure-openssl.c:1560 #, c-format msgid "no SSL error reported" msgstr "'SSL'-ის შეცდომების გარეშე" -#: fe-secure-openssl.c:1776 +#: fe-secure-openssl.c:1603 #, c-format msgid "SSL error code %lu" msgstr "SSL-ის შეცდომის კოდი %lu" -#: fe-secure-openssl.c:2075 +#: fe-secure-openssl.c:1905 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "გაფრთხილება: sslpasswrord შეკვეცილია\n" -#: fe-secure.c:248 +#: fe-secure.c:233 #, c-format msgid "could not receive data from server: %s" msgstr "სერვერიდან მონაცემების მიღების შეცდომა: %s" -#: fe-secure.c:419 +#: fe-secure.c:404 #, c-format msgid "could not send data to server: %s" msgstr "სერვერისთვის მონაცემების გაგზავნის შეცდომა: %s" @@ -1551,6 +1966,10 @@ msgstr "სოკეტის უცნობი შეცდომა: 0x%08X/% #~ msgid "could not load private key file \"%s\": %s\n" #~ msgstr "პირადი გასაღების ფაილის \"%s\" ჩატვირთვის შეცდომა: %s\n" +#, c-format +#~ msgid "could not look up local user ID %d: %s" +#~ msgstr "ლოკალური მომხმარებლის ID-ის (%d) ამოხსნა შეუძლებელია: %s" + #, c-format #~ msgid "could not open file \"%s\": %s\n" #~ msgstr "ფაილის გახსნის შეცდომა \"%s\": %s\n" @@ -1558,10 +1977,18 @@ msgstr "სოკეტის უცნობი შეცდომა: 0x%08X/% #~ msgid "incoming GSSAPI message did not use confidentiality\n" #~ msgstr "შემომავალი GSSAPI შეტყობინება კონფიდენციალობას არ იყენებს\n" +#, c-format +#~ msgid "invalid %s message" +#~ msgstr "არასწორი %s შეტყობინება" + #, c-format #~ msgid "invalid require_auth method: \"%s\"" #~ msgstr "require_auth-ის არასწორი მეთოდი: \"%s\"" +#, c-format +#~ msgid "keepalives parameter must be an integer" +#~ msgstr "პარამეტრი keepalives მთელი რიცხვი უნდა იყოს" + #, c-format #~ msgid "no application protocol" #~ msgstr "აპლიკაციის პროტოკოლის გარეშე" @@ -1581,6 +2008,16 @@ msgstr "სოკეტის უცნობი შეცდომა: 0x%08X/% #~ msgid "private key file \"%s\" is not a regular file\n" #~ msgstr "პირადი გასაღების ფაილი \"%s\" ჩვეულებრივი ფაილი არაა\n" +#, c-format +#~ msgid "protocol extension not supported by server: %s" +#~ msgid_plural "protocol extensions not supported by server: %s" +#~ msgstr[0] "პროტოკოლის გაფართოება სერვერის მიერ მხარდაჭერილი არაა: %s" +#~ msgstr[1] "პროტოკოლის გაფართოებები სერვერის მიერ მხარდაჭერილი არაა: %s" + +#, c-format +#~ msgid "protocol version not supported by server: client uses %u.%u, server supports up to %u.%u" +#~ msgstr "პროტოკოლის ვერსია სერვერის მიერ მხარდაჭერილი არაა: კლიენტი იყენებს %u.%u, სერვერის მხარდაჭერილი ვერსიის მაქსიმუმია %u.%u" + #, c-format #~ msgid "sslnegotiation value \"%s\" invalid when SSL support is not compiled in" #~ msgstr "sslnegotiation-ის მნიშვნელობა \"%s\" არასწორია, როცა SSL-ის მხარდაჭერა გამორთული იყო აგების დროს" diff --git a/src/interfaces/libpq/t/005_negotiate_encryption.pl b/src/interfaces/libpq/t/005_negotiate_encryption.pl index f6a453c1b4102..ac6d8bcb4a648 100644 --- a/src/interfaces/libpq/t/005_negotiate_encryption.pl +++ b/src/interfaces/libpq/t/005_negotiate_encryption.pl @@ -107,7 +107,7 @@ listen_addresses = '$hostaddr' # Capturing the EVENTS that occur during tests requires these settings -log_connections = on +log_connections = 'receipt,authentication,authorization' log_disconnections = on trace_connection_negotiation = on lc_messages = 'C' diff --git a/src/interfaces/libpq/t/006_service.pl b/src/interfaces/libpq/t/006_service.pl index d3ecfa6b6fc80..4fe5adc5c2acd 100644 --- a/src/interfaces/libpq/t/006_service.pl +++ b/src/interfaces/libpq/t/006_service.pl @@ -13,6 +13,13 @@ $node->init; $node->start; +# Set up a dummy node used for the connection tests, but do not start it. +# This ensures that the environment variables used for the connection do +# not interfere with the connection attempts, and that the service file's +# contents are used. +my $dummy_node = PostgreSQL::Test::Cluster->new('dummy_node'); +$dummy_node->init; + my $td = PostgreSQL::Test::Utils::tempdir; # Windows vs non-Windows: CRLF vs LF for the file's newline, relying on @@ -20,11 +27,14 @@ my $newline = $windows_os ? "\r\n" : "\n"; # Create the set of service files used in the tests. -# File that includes a valid service name, that uses a decomposed connection +# File that includes a valid service name, and uses a decomposed connection # string for its contents, split on spaces. my $srvfile_valid = "$td/pg_service_valid.conf"; -append_to_file($srvfile_valid, "[my_srv]", $newline); -append_to_file($srvfile_valid, split(/\s+/, $node->connstr) . $newline); +append_to_file($srvfile_valid, "[my_srv]" . $newline); +foreach my $param (split(/\s+/, $node->connstr)) +{ + append_to_file($srvfile_valid, $param . $newline); +} # File defined with no contents, used as default value for PGSERVICEFILE, # so as no lookup is attempted in the user's home directory. @@ -51,33 +61,33 @@ # Checks combinations of service name and a valid service file. { local $ENV{PGSERVICEFILE} = $srvfile_valid; - $node->connect_ok( + $dummy_node->connect_ok( 'service=my_srv', 'connection with correct "service" string and PGSERVICEFILE', sql => "SELECT 'connect1_1'", expected_stdout => qr/connect1_1/); - $node->connect_ok( + $dummy_node->connect_ok( 'postgres://?service=my_srv', 'connection with correct "service" URI and PGSERVICEFILE', sql => "SELECT 'connect1_2'", expected_stdout => qr/connect1_2/); - $node->connect_fails( + $dummy_node->connect_fails( 'service=undefined-service', 'connection with incorrect "service" string and PGSERVICEFILE', expected_stderr => qr/definition of service "undefined-service" not found/); local $ENV{PGSERVICE} = 'my_srv'; - $node->connect_ok( + $dummy_node->connect_ok( '', 'connection with correct PGSERVICE and PGSERVICEFILE', sql => "SELECT 'connect1_3'", expected_stdout => qr/connect1_3/); local $ENV{PGSERVICE} = 'undefined-service'; - $node->connect_fails( + $dummy_node->connect_fails( '', 'connection with incorrect PGSERVICE and PGSERVICEFILE', expected_stdout => @@ -87,7 +97,7 @@ # Checks case of incorrect service file. { local $ENV{PGSERVICEFILE} = $srvfile_missing; - $node->connect_fails( + $dummy_node->connect_fails( 'service=my_srv', 'connection with correct "service" string and incorrect PGSERVICEFILE', expected_stderr => @@ -100,33 +110,33 @@ my $srvfile_default = "$td/pg_service.conf"; copy($srvfile_valid, $srvfile_default); - $node->connect_ok( + $dummy_node->connect_ok( 'service=my_srv', 'connection with correct "service" string and pg_service.conf', sql => "SELECT 'connect2_1'", expected_stdout => qr/connect2_1/); - $node->connect_ok( + $dummy_node->connect_ok( 'postgres://?service=my_srv', 'connection with correct "service" URI and default pg_service.conf', sql => "SELECT 'connect2_2'", expected_stdout => qr/connect2_2/); - $node->connect_fails( + $dummy_node->connect_fails( 'service=undefined-service', 'connection with incorrect "service" string and default pg_service.conf', expected_stderr => qr/definition of service "undefined-service" not found/); local $ENV{PGSERVICE} = 'my_srv'; - $node->connect_ok( + $dummy_node->connect_ok( '', 'connection with correct PGSERVICE and default pg_service.conf', sql => "SELECT 'connect2_3'", expected_stdout => qr/connect2_3/); local $ENV{PGSERVICE} = 'undefined-service'; - $node->connect_fails( + $dummy_node->connect_fails( '', 'connection with incorrect PGSERVICE and default pg_service.conf', expected_stdout => diff --git a/src/makefiles/meson.build b/src/makefiles/meson.build index 46d8da070e825..91a8de1ee9b9d 100644 --- a/src/makefiles/meson.build +++ b/src/makefiles/meson.build @@ -200,7 +200,11 @@ pgxs_empty = [ 'ICU_LIBS', + 'LIBNUMA_CFLAGS', 'LIBNUMA_LIBS', + 'LIBURING_CFLAGS', 'LIBURING_LIBS', + + 'LIBCURL_CPPFLAGS', 'LIBCURL_LDFLAGS', 'LIBCURL_LDLIBS', ] if host_system == 'windows' and cc.get_argument_syntax() != 'msvc' @@ -232,6 +236,7 @@ pgxs_deps = { 'icu': icu, 'ldap': ldap, 'libcurl': libcurl, + 'libnuma': libnuma, 'liburing': liburing, 'libxml': libxml, 'libxslt': libxslt, diff --git a/src/pl/plperl/plperl_system.h b/src/pl/plperl/plperl_system.h index 57355ac1ed45d..4c09a5cc1592b 100644 --- a/src/pl/plperl/plperl_system.h +++ b/src/pl/plperl/plperl_system.h @@ -82,8 +82,8 @@ * can compile against MULTIPLICITY Perl builds without including XSUB.h. */ #define PERL_NO_GET_CONTEXT -#include "EXTERN.h" -#include "perl.h" +#include +#include /* * We want to include XSUB.h only within .xs files, because on some platforms @@ -117,7 +117,7 @@ #undef unlink #endif -#include "XSUB.h" +#include #endif /* put back our *printf macros ... this must match src/include/port.h */ diff --git a/src/pl/plperl/po/es.po b/src/pl/plperl/po/es.po index f0ca724b25a58..4846603c139c7 100644 --- a/src/pl/plperl/po/es.po +++ b/src/pl/plperl/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: plperl (PostgreSQL) 15\n" +"Project-Id-Version: plperl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:09+0000\n" -"PO-Revision-Date: 2022-10-20 09:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:39+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -100,8 +100,8 @@ msgstr "los arrays multidimensionales deben tener expresiones de arrays con dime #: plperl.c:1204 #, c-format -msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "el número de dimensiones del array (%d) excede el máximo permitido (%d)" +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "el número de dimensiones del array excede el máximo permitido (%d)" #: plperl.c:1274 #, c-format diff --git a/src/pl/plperl/po/fr.po b/src/pl/plperl/po/fr.po index fcb6d67fa051a..ab1859f557e30 100644 --- a/src/pl/plperl/po/fr.po +++ b/src/pl/plperl/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-08-22 10:09+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,246 +19,226 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: plperl.c:408 +#: plperl.c:405 msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." msgstr "" "Si true, le code Perl de confiance et sans confiance sera compilé en mode\n" "strict." -#: plperl.c:422 +#: plperl.c:419 msgid "Perl initialization code to execute when a Perl interpreter is initialized." msgstr "" "Code d'initialisation Perl à exécuter lorsque un interpréteur Perl est\n" "initialisé." -#: plperl.c:444 +#: plperl.c:441 msgid "Perl initialization code to execute once when plperl is first used." msgstr "Code d'initialisation Perl à exécuter lorsque plperl est utilisé pour la première fois." -#: plperl.c:452 +#: plperl.c:449 msgid "Perl initialization code to execute once when plperlu is first used." msgstr "Code d'initialisation Perl à exécuter lorsque plperlu est utilisé pour la première fois." -#: plperl.c:646 +#: plperl.c:643 #, c-format msgid "cannot allocate multiple Perl interpreters on this platform" msgstr "ne peut pas allouer plusieurs interpréteurs Perl sur cette plateforme" -#: plperl.c:669 plperl.c:853 plperl.c:859 plperl.c:976 plperl.c:988 -#: plperl.c:1031 plperl.c:1054 plperl.c:2138 plperl.c:2246 plperl.c:2314 -#: plperl.c:2377 +#: plperl.c:666 plperl.c:850 plperl.c:856 plperl.c:973 plperl.c:985 +#: plperl.c:1028 plperl.c:1051 plperl.c:2151 plperl.c:2259 plperl.c:2327 +#: plperl.c:2390 #, c-format msgid "%s" msgstr "%s" -#: plperl.c:670 +#: plperl.c:667 #, c-format msgid "while executing PostgreSQL::InServer::SPI::bootstrap" msgstr "lors de l'exécution de PostgreSQL::InServer::SPI::bootstrap" -#: plperl.c:854 +#: plperl.c:851 #, c-format msgid "while parsing Perl initialization" msgstr "lors de l'analyse de l'initialisation de perl" -#: plperl.c:860 +#: plperl.c:857 #, c-format msgid "while running Perl initialization" msgstr "lors de l'exécution de l'initialisation de perl" -#: plperl.c:977 +#: plperl.c:974 #, c-format msgid "while executing PLC_TRUSTED" msgstr "lors de l'exécution de PLC_TRUSTED" -#: plperl.c:989 +#: plperl.c:986 #, c-format msgid "while executing utf8fix" msgstr "lors de l'exécution de utf8fix" -#: plperl.c:1032 +#: plperl.c:1029 #, c-format msgid "while executing plperl.on_plperl_init" msgstr "lors de l'exécution de plperl.on_plperl_init" -#: plperl.c:1055 +#: plperl.c:1052 #, c-format msgid "while executing plperl.on_plperlu_init" msgstr "lors de l'exécution de plperl.on_plperlu_init" -#: plperl.c:1101 plperl.c:1791 +#: plperl.c:1098 plperl.c:1804 #, c-format msgid "Perl hash contains nonexistent column \"%s\"" msgstr "Le hachage Perl contient la colonne « %s » inexistante" -#: plperl.c:1106 plperl.c:1796 +#: plperl.c:1103 plperl.c:1809 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "ne peut pas initialiser l'attribut système « %s »" -#: plperl.c:1194 -#, c-format -msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "le nombre de dimensions du tableau (%d) dépasse le maximum autorisé (%d)" - -#: plperl.c:1206 plperl.c:1223 +#: plperl.c:1199 plperl.c:1214 plperl.c:1231 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "" "les tableaux multidimensionnels doivent avoir des expressions de tableaux\n" "avec les dimensions correspondantes" -#: plperl.c:1259 +#: plperl.c:1204 +#, c-format +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "le nombre de dimensions du tableau dépasse le maximum autorisé (%d)" + +#: plperl.c:1274 #, c-format msgid "cannot convert Perl array to non-array type %s" msgstr "ne peut pas convertir le tableau Perl en un type %s qui n'est pas un tableau" -#: plperl.c:1362 +#: plperl.c:1375 #, c-format msgid "cannot convert Perl hash to non-composite type %s" msgstr "ne peut pas convertir le hachage Perl en un type %s non composite" -#: plperl.c:1384 plperl.c:3304 +#: plperl.c:1397 plperl.c:3315 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "" "fonction renvoyant le type record appelée dans un contexte qui ne peut pas\n" "accepter le type record" -#: plperl.c:1445 +#: plperl.c:1458 #, c-format msgid "lookup failed for type %s" msgstr "recherche échouée pour le type %s" -#: plperl.c:1766 +#: plperl.c:1779 #, c-format msgid "$_TD->{new} does not exist" msgstr "$_TD->{new} n'existe pas" -#: plperl.c:1770 +#: plperl.c:1783 #, c-format msgid "$_TD->{new} is not a hash reference" msgstr "$_TD->{new} n'est pas une référence de hachage" -#: plperl.c:1801 +#: plperl.c:1814 #, c-format msgid "cannot set generated column \"%s\"" msgstr "ne peut pas initialiser la colonne générée « %s »" -#: plperl.c:2013 plperl.c:2854 +#: plperl.c:2026 plperl.c:2867 #, c-format msgid "PL/Perl functions cannot return type %s" msgstr "Les fonctions PL/perl ne peuvent pas renvoyer le type %s" -#: plperl.c:2026 plperl.c:2893 +#: plperl.c:2039 plperl.c:2906 #, c-format msgid "PL/Perl functions cannot accept type %s" msgstr "Les fonctions PL/perl ne peuvent pas accepter le type %s" -#: plperl.c:2143 +#: plperl.c:2156 #, c-format msgid "didn't get a CODE reference from compiling function \"%s\"" msgstr "n'a pas obtenu une référence CODE lors de la compilation de la fonction « %s »" -#: plperl.c:2234 +#: plperl.c:2247 #, c-format msgid "didn't get a return item from function" msgstr "n'a pas obtenu un élément en retour de la fonction" -#: plperl.c:2278 plperl.c:2345 +#: plperl.c:2291 plperl.c:2358 #, c-format msgid "couldn't fetch $_TD" msgstr "n'a pas pu récupérer $_TD" -#: plperl.c:2302 plperl.c:2365 +#: plperl.c:2315 plperl.c:2378 #, c-format msgid "didn't get a return item from trigger function" msgstr "n'a pas obtenu un élément en retour de la fonction trigger" -#: plperl.c:2423 +#: plperl.c:2436 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" -#: plperl.c:2428 +#: plperl.c:2441 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "mode matérialisé requis mais interdit dans ce contexte" -#: plperl.c:2472 +#: plperl.c:2485 #, c-format msgid "set-returning PL/Perl function must return reference to array or use return_next" msgstr "" "la fonction PL/perl renvoyant des ensembles doit renvoyer la référence à\n" "un tableau ou utiliser return_next" -#: plperl.c:2593 +#: plperl.c:2606 #, c-format msgid "ignoring modified row in DELETE trigger" msgstr "ignore la ligne modifiée dans le trigger DELETE" -#: plperl.c:2601 +#: plperl.c:2614 #, c-format msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" msgstr "" "le résultat de la fonction trigger PL/perl doit être undef, « SKIP » ou\n" "« MODIFY »" -#: plperl.c:2849 +#: plperl.c:2862 #, c-format msgid "trigger functions can only be called as triggers" msgstr "les fonctions trigger peuvent seulement être appelées par des triggers" -#: plperl.c:3209 +#: plperl.c:3220 #, c-format msgid "query result has too many rows to fit in a Perl array" msgstr "le résultat de la requête contient trop de lignes pour être intégré dans un tableau Perl" -#: plperl.c:3281 +#: plperl.c:3292 #, c-format msgid "cannot use return_next in a non-SETOF function" msgstr "ne peut pas utiliser return_next dans une fonction non SETOF" -#: plperl.c:3355 +#: plperl.c:3366 #, c-format msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" msgstr "" "une fonction PL/perl renvoyant des lignes composites doit appeler\n" "return_next avec la référence à un hachage" -#: plperl.c:4137 +#: plperl.c:4148 #, c-format msgid "PL/Perl function \"%s\"" msgstr "fonction PL/Perl « %s »" -#: plperl.c:4149 +#: plperl.c:4160 #, c-format msgid "compilation of PL/Perl function \"%s\"" msgstr "compilation de la fonction PL/Perl « %s »" -#: plperl.c:4158 +#: plperl.c:4169 #, c-format msgid "PL/Perl anonymous code block" msgstr "bloc de code PL/Perl anonyme" - -#~ msgid "PL/Perl function must return reference to hash or array" -#~ msgstr "la fonction PL/perl doit renvoyer la référence à un hachage ou à un tableau" - -#~ msgid "composite-returning PL/Perl function must return reference to hash" -#~ msgstr "" -#~ "la fonction PL/perl renvoyant des valeurs composites doit renvoyer la\n" -#~ "référence à un hachage" - -#~ msgid "creation of Perl function \"%s\" failed: %s" -#~ msgstr "échec de la création de la fonction Perl « %s » : %s" - -#~ msgid "error from Perl function \"%s\": %s" -#~ msgstr "échec dans la fonction Perl « %s » : %s" - -#~ msgid "out of memory" -#~ msgstr "mémoire épuisée" - -#~ msgid "while executing PLC_SAFE_OK" -#~ msgstr "lors de l'exécution de PLC_SAFE_OK" diff --git a/src/pl/plperl/po/ko.po b/src/pl/plperl/po/ko.po index 31c5f907b78d6..4d4cba5912f91 100644 --- a/src/pl/plperl/po/ko.po +++ b/src/pl/plperl/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: plperl (PostgreSQL) 16\n" +"Project-Id-Version: plperl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:39+0000\n" -"PO-Revision-Date: 2023-05-30 12:40+0900\n" +"POT-Creation-Date: 2025-01-17 04:39+0000\n" +"PO-Revision-Date: 2025-01-16 10:37+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -99,8 +99,8 @@ msgstr "다차원 배열에는 일치하는 차원이 포함된 배열 식이 #: plperl.c:1204 #, c-format -msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "지정한 배열 크기(%d)가 최대치(%d)를 초과했습니다" +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "배열은 %d 차원 배열까지만 허용함" #: plperl.c:1274 #, c-format diff --git a/src/pl/plperl/po/ru.po b/src/pl/plperl/po/ru.po index 75bf0ae67c5c9..8b47276a62056 100644 --- a/src/pl/plperl/po/ru.po +++ b/src/pl/plperl/po/ru.po @@ -1,13 +1,13 @@ # Russian message translation file for plperl # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2012-2017, 2019, 2022. +# Alexander Lakhin , 2012-2017, 2019, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: plperl (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2022-09-05 13:38+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 20:00+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -110,8 +110,8 @@ msgstr "" #: plperl.c:1204 #, c-format -msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "число размерностей массива (%d) превышает предел (%d)" +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "число размерностей массива превышает предел (%d)" #: plperl.c:1274 #, c-format diff --git a/src/pl/plperl/po/sv.po b/src/pl/plperl/po/sv.po index 9494466513352..f16de78b9dfc0 100644 --- a/src/pl/plperl/po/sv.po +++ b/src/pl/plperl/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 13:38+0000\n" -"PO-Revision-Date: 2023-03-09 22:40+0100\n" +"POT-Creation-Date: 2024-07-12 17:39+0000\n" +"PO-Revision-Date: 2024-07-12 22:07+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -18,210 +18,210 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: plperl.c:408 +#: plperl.c:405 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:422 +#: plperl.c:419 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:444 +#: plperl.c:441 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:452 +#: plperl.c:449 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:643 #, 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:2138 plperl.c:2246 plperl.c:2314 -#: plperl.c:2377 +#: plperl.c:666 plperl.c:850 plperl.c:856 plperl.c:973 plperl.c:985 +#: plperl.c:1028 plperl.c:1051 plperl.c:2151 plperl.c:2259 plperl.c:2327 +#: plperl.c:2390 #, c-format msgid "%s" msgstr "%s" -#: plperl.c:670 +#: plperl.c:667 #, c-format msgid "while executing PostgreSQL::InServer::SPI::bootstrap" msgstr "vid utförande av PostgreSQL::InServer::SPI::bootstrap" -#: plperl.c:854 +#: plperl.c:851 #, c-format msgid "while parsing Perl initialization" msgstr "vid tolkning av perls initieringssteg" -#: plperl.c:860 +#: plperl.c:857 #, c-format msgid "while running Perl initialization" msgstr "vid utförande av perls initieringssteg" -#: plperl.c:977 +#: plperl.c:974 #, c-format msgid "while executing PLC_TRUSTED" msgstr "vid utförande av PLC_TRUSTED" -#: plperl.c:989 +#: plperl.c:986 #, c-format msgid "while executing utf8fix" msgstr "vid utförande av utf8fix" -#: plperl.c:1032 +#: plperl.c:1029 #, c-format msgid "while executing plperl.on_plperl_init" msgstr "vid utförande av plperl.on_plperl_init" -#: plperl.c:1055 +#: plperl.c:1052 #, c-format msgid "while executing plperl.on_plperlu_init" msgstr "vid utförande av plperl.on_plperlu_init" -#: plperl.c:1101 plperl.c:1791 +#: plperl.c:1098 plperl.c:1804 #, c-format msgid "Perl hash contains nonexistent column \"%s\"" msgstr "Perlhash innehåller en okänd kolumn \"%s\"." -#: plperl.c:1106 plperl.c:1796 +#: plperl.c:1103 plperl.c:1809 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "kan inte sätta systemattribut \"%s\"" -#: plperl.c:1194 -#, 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:1199 plperl.c:1214 plperl.c:1231 #, 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:1204 +#, c-format +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "antal array-dimensioner överskriver maximalt tillåtna (%d)" + +#: plperl.c:1274 #, 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:1375 #, 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:3304 +#: plperl.c:1397 plperl.c:3315 #, 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:1445 +#: plperl.c:1458 #, c-format msgid "lookup failed for type %s" msgstr "uppslag misslyckades för typen \"%s\"" -#: plperl.c:1766 +#: plperl.c:1779 #, c-format msgid "$_TD->{new} does not exist" msgstr "$_TD->{new} finns inte." -#: plperl.c:1770 +#: plperl.c:1783 #, c-format msgid "$_TD->{new} is not a hash reference" msgstr "$_TD->{new} är inte en hash-referens." -#: plperl.c:1801 +#: plperl.c:1814 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kan inte sätta genererad kolumn \"%s\"" -#: plperl.c:2013 plperl.c:2854 +#: plperl.c:2026 plperl.c:2867 #, c-format msgid "PL/Perl functions cannot return type %s" msgstr "Funktioner i PL/Perl kan inte svara med typ \"%s\"." -#: plperl.c:2026 plperl.c:2893 +#: plperl.c:2039 plperl.c:2906 #, c-format msgid "PL/Perl functions cannot accept type %s" msgstr "Funktioner i PL/Perl kan inte hantera typ \"%s\"." -#: plperl.c:2143 +#: plperl.c:2156 #, 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:2234 +#: plperl.c:2247 #, c-format msgid "didn't get a return item from function" msgstr "fick inget returnvärde från funktion" -#: plperl.c:2278 plperl.c:2345 +#: plperl.c:2291 plperl.c:2358 #, c-format msgid "couldn't fetch $_TD" msgstr "kunde inte hämta $_TD" -#: plperl.c:2302 plperl.c:2365 +#: plperl.c:2315 plperl.c:2378 #, c-format msgid "didn't get a return item from trigger function" msgstr "fick inget returvärde från triggerfunktion" -#: plperl.c:2423 +#: plperl.c:2436 #, 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:2428 +#: plperl.c:2441 #, 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" -#: plperl.c:2472 +#: plperl.c:2485 #, 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:2593 +#: plperl.c:2606 #, c-format msgid "ignoring modified row in DELETE trigger" msgstr "Lämnar ändrad rad orörd i en DELETE-triggning" -#: plperl.c:2601 +#: plperl.c:2614 #, 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:2849 +#: plperl.c:2862 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggningsfunktioner kan bara anropas vid triggning." -#: plperl.c:3209 +#: plperl.c:3220 #, 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:3281 +#: plperl.c:3292 #, 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:3355 +#: plperl.c:3366 #, 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:4137 +#: plperl.c:4148 #, c-format msgid "PL/Perl function \"%s\"" msgstr "PL/Perl-funktion \"%s\"." -#: plperl.c:4149 +#: plperl.c:4160 #, c-format msgid "compilation of PL/Perl function \"%s\"" msgstr "kompilering av PL/Perl-funktion \"%s\"" -#: plperl.c:4158 +#: plperl.c:4169 #, c-format msgid "PL/Perl anonymous code block" msgstr "Anonymt kodblock i PL/Perl." diff --git a/src/pl/plperl/po/uk.po b/src/pl/plperl/po/uk.po index 7951649694e8b..fcb64b7d80a99 100644 --- a/src/pl/plperl/po/uk.po +++ b/src/pl/plperl/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:39+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-02-24 00:09+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,213 +14,213 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/plperl.pot\n" -"X-Crowdin-File-ID: 920\n" +"X-Crowdin-File: /REL_17_STABLE/plperl.pot\n" +"X-Crowdin-File-ID: 1012\n" -#: plperl.c:408 +#: plperl.c:405 msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." msgstr "Якщо увімкнено, надійний і ненадійний код Perl буде скомпільований в суворому режимі." -#: plperl.c:422 +#: plperl.c:419 msgid "Perl initialization code to execute when a Perl interpreter is initialized." msgstr "Виконати ініціалізаційний код під час ініціалізації інтерпретатора Perl." -#: plperl.c:444 +#: plperl.c:441 msgid "Perl initialization code to execute once when plperl is first used." msgstr "Виконати код ініціалізації один раз під час першого використання plperl." -#: plperl.c:452 +#: plperl.c:449 msgid "Perl initialization code to execute once when plperlu is first used." msgstr "Виконати код ініціалізації один раз під час першого використання plperlu." -#: plperl.c:646 +#: plperl.c:643 #, 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:2138 plperl.c:2246 plperl.c:2314 -#: plperl.c:2377 +#: plperl.c:666 plperl.c:850 plperl.c:856 plperl.c:973 plperl.c:985 +#: plperl.c:1028 plperl.c:1051 plperl.c:2151 plperl.c:2259 plperl.c:2327 +#: plperl.c:2390 #, c-format msgid "%s" msgstr "%s" -#: plperl.c:670 +#: plperl.c:667 #, c-format msgid "while executing PostgreSQL::InServer::SPI::bootstrap" msgstr "під час виконання PostgreSQL::InServer::SPI::bootstrap" -#: plperl.c:854 +#: plperl.c:851 #, c-format msgid "while parsing Perl initialization" msgstr "під час обробки ініціалізації Perl" -#: plperl.c:860 +#: plperl.c:857 #, c-format msgid "while running Perl initialization" msgstr "під час запуску Perl ініціалізації" -#: plperl.c:977 +#: plperl.c:974 #, c-format msgid "while executing PLC_TRUSTED" msgstr "під час виконання PLC_TRUSTED" -#: plperl.c:989 +#: plperl.c:986 #, c-format msgid "while executing utf8fix" msgstr "під час виконання utf8fix" -#: plperl.c:1032 +#: plperl.c:1029 #, c-format msgid "while executing plperl.on_plperl_init" msgstr "під час виконання plperl.on_plperl_init" -#: plperl.c:1055 +#: plperl.c:1052 #, c-format msgid "while executing plperl.on_plperlu_init" msgstr "під час виконання plperl.on_plperlu_init" -#: plperl.c:1101 plperl.c:1791 +#: plperl.c:1098 plperl.c:1804 #, c-format msgid "Perl hash contains nonexistent column \"%s\"" msgstr "хеш Perl містить неіснуючу колонку \"%s\"" -#: plperl.c:1106 plperl.c:1796 +#: plperl.c:1103 plperl.c:1809 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "не вдалося встановити системний атрибут \"%s\"" -#: plperl.c:1194 -#, c-format -msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" -msgstr "число вимірів масива (%d) перевищує ліміт (%d)" - -#: plperl.c:1206 plperl.c:1223 +#: plperl.c:1199 plperl.c:1214 plperl.c:1231 #, c-format msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "для багатовимірних масивів повинні задаватись вирази з відповідними вимірами" -#: plperl.c:1259 +#: plperl.c:1204 +#, c-format +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "кількість вимірів масиву перевищує максимально дозволену (%d)" + +#: plperl.c:1274 #, c-format msgid "cannot convert Perl array to non-array type %s" msgstr "неможливо конвертувати масив Perl у тип не масиву %s" -#: plperl.c:1362 +#: plperl.c:1375 #, c-format msgid "cannot convert Perl hash to non-composite type %s" msgstr "неможливо конвертувати хеш Perl у нескладений тип %s" -#: plperl.c:1384 plperl.c:3304 +#: plperl.c:1397 plperl.c:3315 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" -#: plperl.c:1445 +#: plperl.c:1458 #, c-format msgid "lookup failed for type %s" msgstr "неможливо фільтрувати для типу %s" -#: plperl.c:1766 +#: plperl.c:1779 #, c-format msgid "$_TD->{new} does not exist" msgstr "$_TD->{new} не існує" -#: plperl.c:1770 +#: plperl.c:1783 #, c-format msgid "$_TD->{new} is not a hash reference" msgstr "$_TD->{new} не є посиланням на хеш" -#: plperl.c:1801 +#: plperl.c:1814 #, c-format msgid "cannot set generated column \"%s\"" msgstr "неможливо оновити згенерований стовпець \"%s\"" -#: plperl.c:2013 plperl.c:2854 +#: plperl.c:2026 plperl.c:2867 #, c-format msgid "PL/Perl functions cannot return type %s" msgstr "функції PL/Perl не можуть повертати тип %s" -#: plperl.c:2026 plperl.c:2893 +#: plperl.c:2039 plperl.c:2906 #, c-format msgid "PL/Perl functions cannot accept type %s" msgstr "функції PL/Perl не можуть приймати тип %s" -#: plperl.c:2143 +#: plperl.c:2156 #, c-format msgid "didn't get a CODE reference from compiling function \"%s\"" msgstr "не отримано посилання CODE з функції компіляції \"%s\"" -#: plperl.c:2234 +#: plperl.c:2247 #, c-format msgid "didn't get a return item from function" msgstr "не отримано елемент результату з функції" -#: plperl.c:2278 plperl.c:2345 +#: plperl.c:2291 plperl.c:2358 #, c-format msgid "couldn't fetch $_TD" msgstr "не вдалось отримати $_TD" -#: plperl.c:2302 plperl.c:2365 +#: plperl.c:2315 plperl.c:2378 #, c-format msgid "didn't get a return item from trigger function" msgstr "не отримано елемент результату з функції-тригеру" -#: plperl.c:2423 +#: plperl.c:2436 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "функція \"set-valued\" викликана в контексті, де йому немає місця" -#: plperl.c:2428 +#: plperl.c:2441 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "необхідний режим матеріалізації (materialize mode), але він неприпустимий у цьому контексті" -#: plperl.c:2472 +#: plperl.c:2485 #, c-format msgid "set-returning PL/Perl function must return reference to array or use return_next" msgstr "функція PL/Perl, що вертає набір значень, повинна посилатися на масив або використовувати return_next" -#: plperl.c:2593 +#: plperl.c:2606 #, c-format msgid "ignoring modified row in DELETE trigger" msgstr "ігнорується змінений рядок у тригері DELETE" -#: plperl.c:2601 +#: plperl.c:2614 #, c-format msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" msgstr "результат тригерної функції PL/Perl повинен бути undef, \"SKIP\" або \"MODIFY\"" -#: plperl.c:2849 +#: plperl.c:2862 #, c-format msgid "trigger functions can only be called as triggers" msgstr "тригер-функція може викликатися лише як тригер" -#: plperl.c:3209 +#: plperl.c:3220 #, c-format msgid "query result has too many rows to fit in a Perl array" msgstr "результат запиту має забагато рядків для відповідності в масиві Perl" -#: plperl.c:3281 +#: plperl.c:3292 #, c-format msgid "cannot use return_next in a non-SETOF function" msgstr "не можна використовувати return_next в функціях, що не повертають набори даних" -#: plperl.c:3355 +#: plperl.c:3366 #, c-format msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" msgstr "Функція PL/Perl, що повертає набір композитних даних, повинна викликати return_next з посиланням на хеш" -#: plperl.c:4137 +#: plperl.c:4148 #, c-format msgid "PL/Perl function \"%s\"" msgstr "PL/Perl функція \"%s\"" -#: plperl.c:4149 +#: plperl.c:4160 #, c-format msgid "compilation of PL/Perl function \"%s\"" msgstr "компіляція функції PL/Perl \"%s\"" -#: plperl.c:4158 +#: plperl.c:4169 #, c-format msgid "PL/Perl anonymous code block" msgstr "анонімний блок коду PL/Perl" diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 6fdba95962d5e..519f7695d7c14 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -52,20 +52,6 @@ PLpgSQL_function *plpgsql_curr_compile; /* A context appropriate for short-term allocs during compilation */ MemoryContext plpgsql_compile_tmp_cxt; -/* ---------- - * Hash table for compiled functions - * ---------- - */ -static HTAB *plpgsql_HashTable = NULL; - -typedef struct plpgsql_hashent -{ - PLpgSQL_func_hashkey key; - PLpgSQL_function *function; -} plpgsql_HashEnt; - -#define FUNCS_PER_USER 128 /* initial table size */ - /* ---------- * Lookup table for EXCEPTION condition names * ---------- @@ -86,11 +72,11 @@ static const ExceptionLabelMap exception_label_map[] = { * static prototypes * ---------- */ -static PLpgSQL_function *do_compile(FunctionCallInfo fcinfo, - HeapTuple procTup, - PLpgSQL_function *function, - PLpgSQL_func_hashkey *hashkey, - bool forValidator); +static void plpgsql_compile_callback(FunctionCallInfo fcinfo, + HeapTuple procTup, + const CachedFunctionHashKey *hashkey, + CachedFunction *cfunc, + bool forValidator); static void plpgsql_compile_error_callback(void *arg); static void add_parameter_name(PLpgSQL_nsitem_type itemtype, int itemno, const char *name); static void add_dummy_return(PLpgSQL_function *function); @@ -105,19 +91,6 @@ static PLpgSQL_type *build_datatype(HeapTuple typeTup, int32 typmod, Oid collation, TypeName *origtypname); static void plpgsql_start_datums(void); static void plpgsql_finish_datums(PLpgSQL_function *function); -static void compute_function_hashkey(FunctionCallInfo fcinfo, - Form_pg_proc procStruct, - PLpgSQL_func_hashkey *hashkey, - bool forValidator); -static void plpgsql_resolve_polymorphic_argtypes(int numargs, - Oid *argtypes, char *argmodes, - Node *call_expr, bool forValidator, - const char *proname); -static PLpgSQL_function *plpgsql_HashTableLookup(PLpgSQL_func_hashkey *func_key); -static void plpgsql_HashTableInsert(PLpgSQL_function *function, - PLpgSQL_func_hashkey *func_key); -static void plpgsql_HashTableDelete(PLpgSQL_function *function); -static void delete_function(PLpgSQL_function *func); /* ---------- * plpgsql_compile Make an execution tree for a PL/pgSQL function. @@ -132,97 +105,24 @@ static void delete_function(PLpgSQL_function *func); PLpgSQL_function * plpgsql_compile(FunctionCallInfo fcinfo, bool forValidator) { - Oid funcOid = fcinfo->flinfo->fn_oid; - HeapTuple procTup; - Form_pg_proc procStruct; PLpgSQL_function *function; - PLpgSQL_func_hashkey hashkey; - bool function_valid = false; - bool hashkey_valid = false; /* - * Lookup the pg_proc tuple by Oid; we'll need it in any case - */ - procTup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcOid)); - if (!HeapTupleIsValid(procTup)) - elog(ERROR, "cache lookup failed for function %u", funcOid); - procStruct = (Form_pg_proc) GETSTRUCT(procTup); - - /* - * See if there's already a cache entry for the current FmgrInfo. If not, - * try to find one in the hash table. + * funccache.c manages re-use of existing PLpgSQL_function caches. + * + * In PL/pgSQL we use fn_extra directly as the pointer to the long-lived + * function cache entry; we have no need for any query-lifespan cache. + * Also, we don't need to make the cache key depend on composite result + * type (at least for now). */ - function = (PLpgSQL_function *) fcinfo->flinfo->fn_extra; - -recheck: - if (!function) - { - /* Compute hashkey using function signature and actual arg types */ - compute_function_hashkey(fcinfo, procStruct, &hashkey, forValidator); - hashkey_valid = true; - - /* And do the lookup */ - function = plpgsql_HashTableLookup(&hashkey); - } - - if (function) - { - /* We have a compiled function, but is it still valid? */ - if (function->fn_xmin == HeapTupleHeaderGetRawXmin(procTup->t_data) && - ItemPointerEquals(&function->fn_tid, &procTup->t_self)) - function_valid = true; - else - { - /* - * Nope, so remove it from hashtable and try to drop associated - * storage (if not done already). - */ - delete_function(function); - - /* - * If the function isn't in active use then we can overwrite the - * func struct with new data, allowing any other existing fn_extra - * pointers to make use of the new definition on their next use. - * If it is in use then just leave it alone and make a new one. - * (The active invocations will run to completion using the - * previous definition, and then the cache entry will just be - * leaked; doesn't seem worth adding code to clean it up, given - * what a corner case this is.) - * - * If we found the function struct via fn_extra then it's possible - * a replacement has already been made, so go back and recheck the - * hashtable. - */ - if (function->use_count != 0) - { - function = NULL; - if (!hashkey_valid) - goto recheck; - } - } - } - - /* - * If the function wasn't found or was out-of-date, we have to compile it - */ - if (!function_valid) - { - /* - * Calculate hashkey if we didn't already; we'll need it to store the - * completed function. - */ - if (!hashkey_valid) - compute_function_hashkey(fcinfo, procStruct, &hashkey, - forValidator); - - /* - * Do the hard part. - */ - function = do_compile(fcinfo, procTup, function, - &hashkey, forValidator); - } - - ReleaseSysCache(procTup); + function = (PLpgSQL_function *) + cached_function_compile(fcinfo, + fcinfo->flinfo->fn_extra, + plpgsql_compile_callback, + plpgsql_delete_callback, + sizeof(PLpgSQL_function), + false, + forValidator); /* * Save pointer in FmgrInfo to avoid search on subsequent calls @@ -244,8 +144,8 @@ struct compile_error_callback_arg /* * This is the slow part of plpgsql_compile(). * - * The passed-in "function" pointer is either NULL or an already-allocated - * function struct to overwrite. + * The passed-in "cfunc" struct is expected to be zeroes, except + * for the CachedFunction fields, which we don't touch here. * * While compiling a function, the CurrentMemoryContext is the * per-function memory context of the function we are compiling. That @@ -263,13 +163,14 @@ struct compile_error_callback_arg * NB: this code is not re-entrant. We assume that nothing we do here could * result in the invocation of another plpgsql function. */ -static PLpgSQL_function * -do_compile(FunctionCallInfo fcinfo, - HeapTuple procTup, - PLpgSQL_function *function, - PLpgSQL_func_hashkey *hashkey, - bool forValidator) +static void +plpgsql_compile_callback(FunctionCallInfo fcinfo, + HeapTuple procTup, + const CachedFunctionHashKey *hashkey, + CachedFunction *cfunc, + bool forValidator) { + PLpgSQL_function *function = (PLpgSQL_function *) cfunc; Form_pg_proc procStruct = (Form_pg_proc) GETSTRUCT(procTup); bool is_dml_trigger = CALLED_AS_TRIGGER(fcinfo); bool is_event_trigger = CALLED_AS_EVENT_TRIGGER(fcinfo); @@ -320,21 +221,6 @@ do_compile(FunctionCallInfo fcinfo, * reasons. */ plpgsql_check_syntax = forValidator; - - /* - * Create the new function struct, if not done already. The function - * structs are never thrown away, so keep them in TopMemoryContext. - */ - if (function == NULL) - { - function = (PLpgSQL_function *) - MemoryContextAllocZero(TopMemoryContext, sizeof(PLpgSQL_function)); - } - else - { - /* re-using a previously existing struct, so clear it out */ - memset(function, 0, sizeof(PLpgSQL_function)); - } plpgsql_curr_compile = function; /* @@ -349,8 +235,6 @@ do_compile(FunctionCallInfo fcinfo, function->fn_signature = format_procedure(fcinfo->flinfo->fn_oid); MemoryContextSetIdentifier(func_cxt, function->fn_signature); function->fn_oid = fcinfo->flinfo->fn_oid; - function->fn_xmin = HeapTupleHeaderGetRawXmin(procTup->t_data); - function->fn_tid = procTup->t_self; function->fn_input_collation = fcinfo->fncollation; function->fn_cxt = func_cxt; function->out_param_varno = -1; /* set up for no OUT param */ @@ -400,10 +284,10 @@ do_compile(FunctionCallInfo fcinfo, numargs = get_func_arg_info(procTup, &argtypes, &argnames, &argmodes); - plpgsql_resolve_polymorphic_argtypes(numargs, argtypes, argmodes, - fcinfo->flinfo->fn_expr, - forValidator, - plpgsql_error_funcname); + cfunc_resolve_polymorphic_argtypes(numargs, argtypes, argmodes, + fcinfo->flinfo->fn_expr, + forValidator, + plpgsql_error_funcname); in_arg_varnos = (int *) palloc(numargs * sizeof(int)); out_arg_variables = (PLpgSQL_variable **) palloc(numargs * sizeof(PLpgSQL_variable *)); @@ -819,11 +703,6 @@ do_compile(FunctionCallInfo fcinfo, if (plpgsql_DumpExecTree) plpgsql_dumptree(function); - /* - * add it to the hash table - */ - plpgsql_HashTableInsert(function, hashkey); - /* * Pop the error context stack */ @@ -834,14 +713,13 @@ do_compile(FunctionCallInfo fcinfo, MemoryContextSwitchTo(plpgsql_compile_tmp_cxt); plpgsql_compile_tmp_cxt = NULL; - return function; } /* ---------- * plpgsql_compile_inline Make an execution tree for an anonymous code block. * - * Note: this is generally parallel to do_compile(); is it worth trying to - * merge the two? + * Note: this is generally parallel to plpgsql_compile_callback(); is it worth + * trying to merge the two? * * Note: we assume the block will be thrown away so there is no need to build * persistent data structures. @@ -2437,242 +2315,3 @@ plpgsql_add_initdatums(int **varnos) datums_last = plpgsql_nDatums; return n; } - - -/* - * Compute the hashkey for a given function invocation - * - * The hashkey is returned into the caller-provided storage at *hashkey. - */ -static void -compute_function_hashkey(FunctionCallInfo fcinfo, - Form_pg_proc procStruct, - PLpgSQL_func_hashkey *hashkey, - bool forValidator) -{ - /* Make sure any unused bytes of the struct are zero */ - MemSet(hashkey, 0, sizeof(PLpgSQL_func_hashkey)); - - /* get function OID */ - hashkey->funcOid = fcinfo->flinfo->fn_oid; - - /* get call context */ - hashkey->isTrigger = CALLED_AS_TRIGGER(fcinfo); - hashkey->isEventTrigger = CALLED_AS_EVENT_TRIGGER(fcinfo); - - /* - * If DML trigger, include trigger's OID in the hash, so that each trigger - * usage gets a different hash entry, allowing for e.g. different relation - * rowtypes or transition table names. In validation mode we do not know - * what relation or transition table names are intended to be used, so we - * leave trigOid zero; the hash entry built in this case will never be - * used for any actual calls. - * - * We don't currently need to distinguish different event trigger usages - * in the same way, since the special parameter variables don't vary in - * type in that case. - */ - if (hashkey->isTrigger && !forValidator) - { - TriggerData *trigdata = (TriggerData *) fcinfo->context; - - hashkey->trigOid = trigdata->tg_trigger->tgoid; - } - - /* get input collation, if known */ - hashkey->inputCollation = fcinfo->fncollation; - - if (procStruct->pronargs > 0) - { - /* get the argument types */ - memcpy(hashkey->argtypes, procStruct->proargtypes.values, - procStruct->pronargs * sizeof(Oid)); - - /* resolve any polymorphic argument types */ - plpgsql_resolve_polymorphic_argtypes(procStruct->pronargs, - hashkey->argtypes, - NULL, - fcinfo->flinfo->fn_expr, - forValidator, - NameStr(procStruct->proname)); - } -} - -/* - * This is the same as the standard resolve_polymorphic_argtypes() function, - * except that: - * 1. We go ahead and report the error if we can't resolve the types. - * 2. We treat RECORD-type input arguments (not output arguments) as if - * they were polymorphic, replacing their types with the actual input - * types if we can determine those. This allows us to create a separate - * function cache entry for each named composite type passed to such an - * argument. - * 3. In validation mode, we have no inputs to look at, so assume that - * polymorphic arguments are integer, integer-array or integer-range. - */ -static void -plpgsql_resolve_polymorphic_argtypes(int numargs, - Oid *argtypes, char *argmodes, - Node *call_expr, bool forValidator, - const char *proname) -{ - int i; - - if (!forValidator) - { - int inargno; - - /* normal case, pass to standard routine */ - if (!resolve_polymorphic_argtypes(numargs, argtypes, argmodes, - call_expr)) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("could not determine actual argument " - "type for polymorphic function \"%s\"", - proname))); - /* also, treat RECORD inputs (but not outputs) as polymorphic */ - inargno = 0; - for (i = 0; i < numargs; i++) - { - char argmode = argmodes ? argmodes[i] : PROARGMODE_IN; - - if (argmode == PROARGMODE_OUT || argmode == PROARGMODE_TABLE) - continue; - if (argtypes[i] == RECORDOID || argtypes[i] == RECORDARRAYOID) - { - Oid resolvedtype = get_call_expr_argtype(call_expr, - inargno); - - if (OidIsValid(resolvedtype)) - argtypes[i] = resolvedtype; - } - inargno++; - } - } - else - { - /* special validation case (no need to do anything for RECORD) */ - for (i = 0; i < numargs; i++) - { - switch (argtypes[i]) - { - case ANYELEMENTOID: - case ANYNONARRAYOID: - case ANYENUMOID: /* XXX dubious */ - case ANYCOMPATIBLEOID: - case ANYCOMPATIBLENONARRAYOID: - argtypes[i] = INT4OID; - break; - case ANYARRAYOID: - case ANYCOMPATIBLEARRAYOID: - argtypes[i] = INT4ARRAYOID; - break; - case ANYRANGEOID: - case ANYCOMPATIBLERANGEOID: - argtypes[i] = INT4RANGEOID; - break; - case ANYMULTIRANGEOID: - argtypes[i] = INT4MULTIRANGEOID; - break; - default: - break; - } - } - } -} - -/* - * delete_function - clean up as much as possible of a stale function cache - * - * We can't release the PLpgSQL_function struct itself, because of the - * possibility that there are fn_extra pointers to it. We can release - * the subsidiary storage, but only if there are no active evaluations - * in progress. Otherwise we'll just leak that storage. Since the - * case would only occur if a pg_proc update is detected during a nested - * recursive call on the function, a leak seems acceptable. - * - * Note that this can be called more than once if there are multiple fn_extra - * pointers to the same function cache. Hence be careful not to do things - * twice. - */ -static void -delete_function(PLpgSQL_function *func) -{ - /* remove function from hash table (might be done already) */ - plpgsql_HashTableDelete(func); - - /* release the function's storage if safe and not done already */ - if (func->use_count == 0) - plpgsql_free_function_memory(func); -} - -/* exported so we can call it from _PG_init() */ -void -plpgsql_HashTableInit(void) -{ - HASHCTL ctl; - - /* don't allow double-initialization */ - Assert(plpgsql_HashTable == NULL); - - ctl.keysize = sizeof(PLpgSQL_func_hashkey); - ctl.entrysize = sizeof(plpgsql_HashEnt); - plpgsql_HashTable = hash_create("PLpgSQL function hash", - FUNCS_PER_USER, - &ctl, - HASH_ELEM | HASH_BLOBS); -} - -static PLpgSQL_function * -plpgsql_HashTableLookup(PLpgSQL_func_hashkey *func_key) -{ - plpgsql_HashEnt *hentry; - - hentry = (plpgsql_HashEnt *) hash_search(plpgsql_HashTable, - func_key, - HASH_FIND, - NULL); - if (hentry) - return hentry->function; - else - return NULL; -} - -static void -plpgsql_HashTableInsert(PLpgSQL_function *function, - PLpgSQL_func_hashkey *func_key) -{ - plpgsql_HashEnt *hentry; - bool found; - - hentry = (plpgsql_HashEnt *) hash_search(plpgsql_HashTable, - func_key, - HASH_ENTER, - &found); - if (found) - elog(WARNING, "trying to insert a function that already exists"); - - hentry->function = function; - /* prepare back link from function to hashtable key */ - function->fn_hashkey = &hentry->key; -} - -static void -plpgsql_HashTableDelete(PLpgSQL_function *function) -{ - plpgsql_HashEnt *hentry; - - /* do nothing if not in table */ - if (function->fn_hashkey == NULL) - return; - - hentry = (plpgsql_HashEnt *) hash_search(plpgsql_HashTable, - function->fn_hashkey, - HASH_REMOVE, - NULL); - if (hentry == NULL) - elog(WARNING, "trying to delete function that does not exist"); - - /* remove back link, which no longer points to allocated storage */ - function->fn_hashkey = NULL; -} diff --git a/src/pl/plpgsql/src/pl_funcs.c b/src/pl/plpgsql/src/pl_funcs.c index 6b5394fc5fa71..bc7a61feb4d23 100644 --- a/src/pl/plpgsql/src/pl_funcs.c +++ b/src/pl/plpgsql/src/pl_funcs.c @@ -718,7 +718,7 @@ plpgsql_free_function_memory(PLpgSQL_function *func) int i; /* Better not call this on an in-use function */ - Assert(func->use_count == 0); + Assert(func->cfunc.use_count == 0); /* Release plans associated with variable declarations */ for (i = 0; i < func->ndatums; i++) @@ -767,6 +767,13 @@ plpgsql_free_function_memory(PLpgSQL_function *func) func->fn_cxt = NULL; } +/* Deletion callback used by funccache.c */ +void +plpgsql_delete_callback(CachedFunction *cfunc) +{ + plpgsql_free_function_memory((PLpgSQL_function *) cfunc); +} + /********************************************************************** * Debug functions for analyzing the compiled code diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c index 1bf12232862a7..e9a729299470e 100644 --- a/src/pl/plpgsql/src/pl_handler.c +++ b/src/pl/plpgsql/src/pl_handler.c @@ -202,7 +202,6 @@ _PG_init(void) MarkGUCPrefixReserved("plpgsql"); - plpgsql_HashTableInit(); RegisterXactCallback(plpgsql_xact_cb, NULL); RegisterSubXactCallback(plpgsql_subxact_cb, NULL); @@ -247,7 +246,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS) save_cur_estate = func->cur_estate; /* Mark the function as busy, so it can't be deleted from under us */ - func->use_count++; + func->cfunc.use_count++; /* * If we'll need a procedure-lifespan resowner to execute any CALL or DO @@ -284,7 +283,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS) PG_FINALLY(); { /* Decrement use-count, restore cur_estate */ - func->use_count--; + func->cfunc.use_count--; func->cur_estate = save_cur_estate; /* Be sure to release the procedure resowner if any */ @@ -334,7 +333,7 @@ plpgsql_inline_handler(PG_FUNCTION_ARGS) func = plpgsql_compile_inline(codeblock->source_text); /* Mark the function as busy, just pro forma */ - func->use_count++; + func->cfunc.use_count++; /* * Set up a fake fcinfo with just enough info to satisfy @@ -398,8 +397,8 @@ plpgsql_inline_handler(PG_FUNCTION_ARGS) ResourceOwnerDelete(simple_eval_resowner); /* Function should now have no remaining use-counts ... */ - func->use_count--; - Assert(func->use_count == 0); + func->cfunc.use_count--; + Assert(func->cfunc.use_count == 0); /* ... so we can free subsidiary storage */ plpgsql_free_function_memory(func); @@ -415,8 +414,8 @@ plpgsql_inline_handler(PG_FUNCTION_ARGS) ResourceOwnerDelete(simple_eval_resowner); /* Function should now have no remaining use-counts ... */ - func->use_count--; - Assert(func->use_count == 0); + func->cfunc.use_count--; + Assert(func->cfunc.use_count == 0); /* ... so we can free subsidiary storage */ plpgsql_free_function_memory(func); diff --git a/src/pl/plpgsql/src/plpgsql.h b/src/pl/plpgsql/src/plpgsql.h index b67847b5111c5..41e52b8ce7183 100644 --- a/src/pl/plpgsql/src/plpgsql.h +++ b/src/pl/plpgsql/src/plpgsql.h @@ -21,6 +21,7 @@ #include "commands/trigger.h" #include "executor/spi.h" #include "utils/expandedrecord.h" +#include "utils/funccache.h" #include "utils/typcache.h" @@ -941,40 +942,6 @@ typedef struct PLpgSQL_stmt_dynexecute List *params; /* USING expressions */ } PLpgSQL_stmt_dynexecute; -/* - * Hash lookup key for functions - */ -typedef struct PLpgSQL_func_hashkey -{ - Oid funcOid; - - bool isTrigger; /* true if called as a DML trigger */ - bool isEventTrigger; /* true if called as an event trigger */ - - /* be careful that pad bytes in this struct get zeroed! */ - - /* - * For a trigger function, the OID of the trigger is part of the hash key - * --- we want to compile the trigger function separately for each trigger - * it is used with, in case the rowtype or transition table names are - * different. Zero if not called as a DML trigger. - */ - Oid trigOid; - - /* - * We must include the input collation as part of the hash key too, - * because we have to generate different plans (with different Param - * collations) for different collation settings. - */ - Oid inputCollation; - - /* - * We include actual argument types in the hash key to support polymorphic - * PLpgSQL functions. Be careful that extra positions are zeroed! - */ - Oid argtypes[FUNC_MAX_ARGS]; -} PLpgSQL_func_hashkey; - /* * Trigger type */ @@ -990,13 +957,12 @@ typedef enum PLpgSQL_trigtype */ typedef struct PLpgSQL_function { + CachedFunction cfunc; /* fields managed by funccache.c */ + char *fn_signature; Oid fn_oid; - TransactionId fn_xmin; - ItemPointerData fn_tid; PLpgSQL_trigtype fn_is_trigger; Oid fn_input_collation; - PLpgSQL_func_hashkey *fn_hashkey; /* back-link to hashtable key */ MemoryContext fn_cxt; Oid fn_rettype; @@ -1036,9 +1002,8 @@ typedef struct PLpgSQL_function bool requires_procedure_resowner; /* contains CALL or DO? */ bool has_exception_block; /* contains BEGIN...EXCEPTION? */ - /* these fields change when the function is used */ + /* this field changes when the function is used */ struct PLpgSQL_execstate *cur_estate; - unsigned long use_count; } PLpgSQL_function; /* @@ -1287,7 +1252,6 @@ extern PGDLLEXPORT int plpgsql_recognize_err_condition(const char *condname, extern PLpgSQL_condition *plpgsql_parse_err_condition(char *condname); extern void plpgsql_adddatum(PLpgSQL_datum *newdatum); extern int plpgsql_add_initdatums(int **varnos); -extern void plpgsql_HashTableInit(void); /* * Functions in pl_exec.c @@ -1335,6 +1299,7 @@ extern PGDLLEXPORT const char *plpgsql_stmt_typename(PLpgSQL_stmt *stmt); extern const char *plpgsql_getdiag_kindname(PLpgSQL_getdiag_kind kind); extern void plpgsql_mark_local_assignment_targets(PLpgSQL_function *func); extern void plpgsql_free_function_memory(PLpgSQL_function *func); +extern void plpgsql_delete_callback(CachedFunction *cfunc); extern void plpgsql_dumptree(PLpgSQL_function *func); /* diff --git a/src/pl/plpgsql/src/po/es.po b/src/pl/plpgsql/src/po/es.po index 1c12451409bfd..c045415aa326c 100644 --- a/src/pl/plpgsql/src/po/es.po +++ b/src/pl/plpgsql/src/po/es.po @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: plpgsql (PostgreSQL) 16\n" +"Project-Id-Version: plpgsql (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:09+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:39+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -78,104 +78,119 @@ msgstr "la referencia a la columna «%s» es ambigua" msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Podría referirse tanto a una variable PL/pgSQL como a una columna de una tabla." -#: pl_comp.c:1314 pl_exec.c:5255 pl_exec.c:5428 pl_exec.c:5515 pl_exec.c:5606 -#: pl_exec.c:6624 +#: pl_comp.c:1314 pl_exec.c:5260 pl_exec.c:5433 pl_exec.c:5520 pl_exec.c:5611 +#: pl_exec.c:6636 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "el registro «%s» no tiene un campo «%s»" -#: pl_comp.c:1808 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "no existe la variable «%s»" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "no existe la columna «%s» en la relación «%s»" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "no existe la relación «%s»" -#: pl_comp.c:1815 pl_comp.c:1857 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "la relación «%s» no contiene un tipo compuesto" -#: pl_comp.c:1923 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "la variable «%s» tiene pseudotipo %s" -#: pl_comp.c:2112 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "el tipo «%s» está inconcluso" -#: pl_comp.c:2194 pl_exec.c:6925 +#: pl_comp.c:2157 pl_exec.c:6937 #, c-format msgid "type %s is not composite" msgstr "el tipo %s no es compuesto" -#: pl_comp.c:2242 pl_comp.c:2295 +#: pl_comp.c:2193 +#, c-format +msgid "could not find array type for data type %s" +msgstr "no se pudo encontrar un tipo de array para el tipo de dato %s" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "no se reconoce la condición de excepción «%s»" -#: pl_comp.c:2524 +#: pl_comp.c:2514 #, c-format msgid "could not determine actual argument type for polymorphic function \"%s\"" msgstr "no se pudo determinar el verdadero tipo de argumento para la función polimórfica «%s»" -#: pl_exec.c:511 pl_exec.c:950 pl_exec.c:1185 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "durante la inicialización del estado de ejecución" -#: pl_exec.c:517 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "mientras se almacenaban los argumentos de invocación en variables locales" -#: pl_exec.c:605 pl_exec.c:1023 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "durante el ingreso a la función" -#: pl_exec.c:628 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "la ejecución alcanzó el fin de la función sin encontrar RETURN" -#: pl_exec.c:634 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "mientras se hacía la conversión del valor de retorno al tipo de retorno de la función" -#: pl_exec.c:646 pl_exec.c:3681 +#: pl_exec.c:647 pl_exec.c:3683 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "se llamó una función que retorna un conjunto en un contexto que no puede aceptarlo" -#: pl_exec.c:651 pl_exec.c:3687 +#: pl_exec.c:652 pl_exec.c:3689 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "se requiere un nodo «materialize», pero no está permitido en este contexto" -#: pl_exec.c:778 pl_exec.c:1049 pl_exec.c:1207 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "durante la salida de la función" -#: pl_exec.c:833 pl_exec.c:897 pl_exec.c:3480 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3482 msgid "returned record type does not match expected record type" msgstr "el tipo de registro retornado no coincide con el tipo de registro esperado" -#: pl_exec.c:1046 pl_exec.c:1204 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "la ejecución alcanzó el fin del procedimiento disparador sin encontrar RETURN" -#: pl_exec.c:1054 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "los procedimientos disparadores no pueden retornar conjuntos" -#: pl_exec.c:1093 pl_exec.c:1121 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "returned row structure does not match the structure of the triggering table" msgstr "la estructura de fila retornada no coincide con la estructura de la tabla que generó el evento de disparador" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1262 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "función PL/pgSQL %s en la línea %d %s" @@ -183,35 +198,35 @@ msgstr "función PL/pgSQL %s en la línea %d %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1273 +#: pl_exec.c:1274 #, c-format msgid "PL/pgSQL function %s %s" msgstr "función PL/pgSQL %s %s" #. translator: last %s is a plpgsql statement type name -#: pl_exec.c:1281 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "función PL/pgSQL %s en la línea %d en %s" -#: pl_exec.c:1287 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "función PL/pgSQL %s" -#: pl_exec.c:1658 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "durante inicialización de variables locales en el bloque de sentencias" -#: pl_exec.c:1763 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "durante la entrada al bloque de sentencias" -#: pl_exec.c:1795 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "durante la salida del bloque de sentencias" -#: pl_exec.c:1833 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "durante la finalización por excepción" @@ -225,294 +240,294 @@ msgstr "el parámetro de procedimiento «%s» es un parámetro de salida pero el msgid "procedure parameter %d is an output parameter but corresponding argument is not writable" msgstr "el parámetro de procedimiento %d es un parámetro de salida pero el argumento correspondiente no es escribible" -#: pl_exec.c:2409 +#: pl_exec.c:2411 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "GET STACKED DIAGNOSTICS no puede ser usado fuera de un manejador de excepción" -#: pl_exec.c:2615 +#: pl_exec.c:2617 #, c-format msgid "case not found" msgstr "caso no encontrado" -#: pl_exec.c:2616 +#: pl_exec.c:2618 #, c-format msgid "CASE statement is missing ELSE part." msgstr "A la sentencia CASE le falta la parte ELSE." -#: pl_exec.c:2709 +#: pl_exec.c:2711 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "el límite inferior de un ciclo FOR no puede ser null" -#: pl_exec.c:2725 +#: pl_exec.c:2727 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "el límite superior de un ciclo FOR no puede ser null" -#: pl_exec.c:2743 +#: pl_exec.c:2745 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "el valor BY de un ciclo FOR no puede ser null" -#: pl_exec.c:2749 +#: pl_exec.c:2751 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "el valor BY de un ciclo FOR debe ser mayor que cero" -#: pl_exec.c:2883 pl_exec.c:4688 +#: pl_exec.c:2885 pl_exec.c:4693 #, c-format msgid "cursor \"%s\" already in use" msgstr "el cursor «%s» ya está en uso" -#: pl_exec.c:2906 pl_exec.c:4758 +#: pl_exec.c:2908 pl_exec.c:4763 #, c-format msgid "arguments given for cursor without arguments" msgstr "se dieron argumentos a un cursor sin argumentos" -#: pl_exec.c:2925 pl_exec.c:4777 +#: pl_exec.c:2927 pl_exec.c:4782 #, c-format msgid "arguments required for cursor" msgstr "se requieren argumentos para el cursor" -#: pl_exec.c:3016 +#: pl_exec.c:3018 #, c-format msgid "FOREACH expression must not be null" msgstr "la expresión FOREACH no debe ser nula" -#: pl_exec.c:3031 +#: pl_exec.c:3033 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "una expresión FOREACH debe retornar un array, no tipo %s" -#: pl_exec.c:3048 +#: pl_exec.c:3050 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "la dimensión del slice (%d) está fuera de rango 0..%d" -#: pl_exec.c:3075 +#: pl_exec.c:3077 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "las variables de bucles FOREACH ... SLICE deben ser de un tipo array" -#: pl_exec.c:3079 +#: pl_exec.c:3081 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "la variable de bucle FOREACH no debe ser de tipo array" -#: pl_exec.c:3241 pl_exec.c:3298 pl_exec.c:3473 +#: pl_exec.c:3243 pl_exec.c:3300 pl_exec.c:3475 #, c-format msgid "cannot return non-composite value from function returning composite type" msgstr "no se puede retornar un valor no-compuesto desde una función que retorne tipos compuestos" -#: pl_exec.c:3337 pl_gram.y:3295 +#: pl_exec.c:3339 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "no se puede usar RETURN NEXT en una función que no es SETOF" -#: pl_exec.c:3378 pl_exec.c:3510 +#: pl_exec.c:3380 pl_exec.c:3512 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "se pasó un tipo incorrecto de resultado a RETURN NEXT" -#: pl_exec.c:3416 pl_exec.c:3437 +#: pl_exec.c:3418 pl_exec.c:3439 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "se pasó un tipo de registro incorrecto a RETURN NEXT" -#: pl_exec.c:3529 +#: pl_exec.c:3531 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT debe tener un parámetro" -#: pl_exec.c:3557 pl_gram.y:3359 +#: pl_exec.c:3559 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "no se puede usar RETURN QUERY en una función que no ha sido declarada SETOF" -#: pl_exec.c:3575 +#: pl_exec.c:3577 msgid "structure of query does not match function result type" msgstr "la estructura de la consulta no coincide con el tipo del resultado de la función" -#: pl_exec.c:3630 pl_exec.c:4465 pl_exec.c:8724 +#: pl_exec.c:3632 pl_exec.c:4469 pl_exec.c:8759 #, c-format msgid "query string argument of EXECUTE is null" msgstr "el argumento de consulta a ejecutar en EXECUTE es null" -#: pl_exec.c:3715 pl_exec.c:3853 +#: pl_exec.c:3717 pl_exec.c:3855 #, c-format msgid "RAISE option already specified: %s" msgstr "la opción de RAISE ya se especificó: %s" -#: pl_exec.c:3749 +#: pl_exec.c:3751 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "RAISE sin parámetros no puede ser usado fuera de un manejador de excepción" -#: pl_exec.c:3843 +#: pl_exec.c:3845 #, c-format msgid "RAISE statement option cannot be null" msgstr "la opción de sentencia en RAISE no puede ser null" -#: pl_exec.c:3913 +#: pl_exec.c:3915 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3968 +#: pl_exec.c:3970 #, c-format msgid "assertion failed" msgstr "aseveración falló" -#: pl_exec.c:4338 pl_exec.c:4527 +#: pl_exec.c:4342 pl_exec.c:4532 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "no se puede ejecutar COPY desde/a un cliente en PL/pgSQL" -#: pl_exec.c:4344 +#: pl_exec.c:4348 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "orden de transacción no soportada en PL/pgSQL" -#: pl_exec.c:4367 pl_exec.c:4556 +#: pl_exec.c:4371 pl_exec.c:4561 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO es utilizado con una orden que no puede retornar datos" -#: pl_exec.c:4390 pl_exec.c:4579 +#: pl_exec.c:4394 pl_exec.c:4584 #, c-format msgid "query returned no rows" msgstr "la consulta no regresó filas" -#: pl_exec.c:4412 pl_exec.c:4598 pl_exec.c:5750 +#: pl_exec.c:4416 pl_exec.c:4603 pl_exec.c:5755 #, c-format msgid "query returned more than one row" msgstr "la consulta regresó más de una fila" -#: pl_exec.c:4414 +#: pl_exec.c:4418 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "Asegúrese que la consulta retorne una única fila, o use LIMIT 1." -#: pl_exec.c:4430 +#: pl_exec.c:4434 #, c-format msgid "query has no destination for result data" msgstr "la consulta no tiene un destino para los datos de resultado" -#: pl_exec.c:4431 +#: pl_exec.c:4435 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Si quiere descartar los resultados de un SELECT, utilice PERFORM." -#: pl_exec.c:4519 +#: pl_exec.c:4524 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "no está implementado EXECUTE de un SELECT ... INTO" -#: pl_exec.c:4520 +#: pl_exec.c:4525 #, c-format msgid "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead." msgstr "Puede desear usar EXECUTE ... INTO o EXECUTE CREATE TABLE ... AS en su lugar." -#: pl_exec.c:4533 +#: pl_exec.c:4538 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "no está implementado EXECUTE de órdenes de transacción" -#: pl_exec.c:4843 pl_exec.c:4931 +#: pl_exec.c:4848 pl_exec.c:4936 #, c-format msgid "cursor variable \"%s\" is null" msgstr "variable cursor «%s» es null" -#: pl_exec.c:4854 pl_exec.c:4942 +#: pl_exec.c:4859 pl_exec.c:4947 #, c-format msgid "cursor \"%s\" does not exist" msgstr "no existe el cursor «%s»" -#: pl_exec.c:4867 +#: pl_exec.c:4872 #, c-format msgid "relative or absolute cursor position is null" msgstr "la posición relativa o absoluta del cursor es null" -#: pl_exec.c:5105 pl_exec.c:5200 +#: pl_exec.c:5110 pl_exec.c:5205 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "no puede asignarse un valor null a la variable «%s» que fue declarada NOT NULL" -#: pl_exec.c:5181 +#: pl_exec.c:5186 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "no se puede asignar un valor no compuesto a una variable de tipo row" -#: pl_exec.c:5213 +#: pl_exec.c:5218 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "no se puede asignar un valor no compuesto a una variable de tipo record" -#: pl_exec.c:5264 +#: pl_exec.c:5269 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "no se puede asignar a la columna de sistema «%s»" -#: pl_exec.c:5713 +#: pl_exec.c:5718 #, c-format msgid "query did not return data" msgstr "la consulta no retornó datos" -#: pl_exec.c:5714 pl_exec.c:5726 pl_exec.c:5751 pl_exec.c:5827 pl_exec.c:5832 +#: pl_exec.c:5719 pl_exec.c:5731 pl_exec.c:5756 pl_exec.c:5832 pl_exec.c:5837 #, c-format msgid "query: %s" msgstr "consulta: %s" -#: pl_exec.c:5722 +#: pl_exec.c:5727 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" msgstr[0] "la consulta retornó %d columna" msgstr[1] "la consulta retornó %d columnas" -#: pl_exec.c:5826 +#: pl_exec.c:5831 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "la consulta es SELECT INTO, pero debería ser un SELECT simple" -#: pl_exec.c:5831 +#: pl_exec.c:5836 #, c-format msgid "query is not a SELECT" msgstr "la consulta no es un SELECT" -#: pl_exec.c:6638 pl_exec.c:6678 pl_exec.c:6718 +#: pl_exec.c:6650 pl_exec.c:6690 pl_exec.c:6730 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "el tipo del parámetro %d (%s) no coincide aquel con que fue preparado el plan (%s)" -#: pl_exec.c:7129 pl_exec.c:7163 pl_exec.c:7237 pl_exec.c:7263 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, c-format msgid "number of source and target fields in assignment does not match" msgstr "no coincide el número de campos de origen y destino en la asignación" #. translator: %s represents a name of an extra check -#: pl_exec.c:7131 pl_exec.c:7165 pl_exec.c:7239 pl_exec.c:7265 +#: pl_exec.c:7143 pl_exec.c:7177 pl_exec.c:7251 pl_exec.c:7277 #, c-format msgid "%s check of %s is active." msgstr "El chequeo %s de %s está activo." -#: pl_exec.c:7135 pl_exec.c:7169 pl_exec.c:7243 pl_exec.c:7269 +#: pl_exec.c:7147 pl_exec.c:7181 pl_exec.c:7255 pl_exec.c:7281 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "Asegúrese que la consulta retorna la lista exacta de columnas." -#: pl_exec.c:7656 +#: pl_exec.c:7668 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "el registro «%s» no ha sido asignado aún" -#: pl_exec.c:7657 +#: pl_exec.c:7669 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "La estructura de fila de un registro aún no asignado no está determinado." -#: pl_exec.c:8322 pl_gram.y:3418 +#: pl_exec.c:8357 pl_gram.y:3498 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "la variable «%s» esta declarada como CONSTANT" @@ -564,11 +579,6 @@ msgstr "los ordenamientos (collation) no están soportados por el tipo %s" msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "la variable «%s» debe tener valor por omisión, puesto que está declarado NOT NULL" -#: pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "no existe la variable «%s»" - #: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "declaración duplicada" @@ -578,36 +588,36 @@ msgstr "declaración duplicada" msgid "variable \"%s\" shadows a previously defined variable" msgstr "la variable «%s» oculta una variable definida anteriormente" -#: pl_gram.y:1016 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "elemento de diagnóstico %s no se permite en GET STACKED DIAGNOSTICS" -#: pl_gram.y:1034 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "elemento de diagnóstico %s no se permite en GET STACKED DIAGNOSTICS" -#: pl_gram.y:1132 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "elemento de GET DIAGNOSTICS no reconocido" -#: pl_gram.y:1148 pl_gram.y:3534 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "«%s» no es una variable escalar" -#: pl_gram.y:1378 pl_gram.y:1572 +#: pl_gram.y:1379 pl_gram.y:1572 #, c-format msgid "loop variable of loop over rows must be a record variable or list of scalar variables" msgstr "la variable de bucle de un bucle sobre filas debe ser una variable de tipo record o una lista de variables escalares" -#: pl_gram.y:1413 +#: pl_gram.y:1414 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "un bucle FOR de un cursor debe tener sólo una variable de destino" -#: pl_gram.y:1420 +#: pl_gram.y:1421 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "un bucle FOR en torno a un cursor debe usar un cursor enlazado (bound)" @@ -647,14 +657,14 @@ msgstr "EXIT no puede usarse fuera de un bucle, a menos que tenga una etiqueta" msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE no puede usarse fuera de un bucle" -#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:2981 pl_gram.y:3069 -#: pl_gram.y:3180 pl_gram.y:3933 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "fin inesperado de la definición de la función" #: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 #: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 -#: pl_gram.y:2632 pl_gram.y:3776 pl_gram.y:3837 pl_gram.y:3914 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "error de sintaxis" @@ -686,138 +696,142 @@ msgstr "la variable «%s» debe ser de tipo cursor o refcursor" msgid "\"%s\" is not a known variable" msgstr "«%s» no es una variable conocida" -#: pl_gram.y:2720 pl_gram.y:2730 pl_gram.y:2886 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "no coinciden los paréntesis" -#: pl_gram.y:2734 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "falta «%s» al final de la expresión SQL" -#: pl_gram.y:2740 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "falta «%s» al final de la sentencia SQL" -#: pl_gram.y:2757 +#: pl_gram.y:2758 msgid "missing expression" msgstr "expresión faltante" -#: pl_gram.y:2759 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "sentencia SQL faltante" -#: pl_gram.y:2888 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "error de sintaxis, se esperaba «]»" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "declaración de tipo de dato incompleta" -#: pl_gram.y:2911 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "declaración de tipo de dato faltante" -#: pl_gram.y:2991 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO fue especificado más de una vez" -#: pl_gram.y:3161 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "se espera FROM o IN" -#: pl_gram.y:3222 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "RETURN no puede tener un parámetro en una función que retorna un conjunto" -#: pl_gram.y:3223 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Use RETURN NEXT o RETURN QUERY." -#: pl_gram.y:3233 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "RETURN no puede tener un parámetro un procedimiento" -#: pl_gram.y:3238 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "RETURN no puede tener parámetro en una función que retorna void" -#: pl_gram.y:3247 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN no puede tener parámetros en una función con parámetros OUT" -#: pl_gram.y:3310 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT no puede tener parámetros en una función con parámetros OUT" -#: pl_gram.y:3476 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "una variable de tipo record no puede ser parte de una lista INTO de múltiples elementos" -#: pl_gram.y:3522 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "se especificaron demasiadas variables INTO" -#: pl_gram.y:3730 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "etiqueta de término «%s» especificada para un bloque sin etiqueta" -#: pl_gram.y:3737 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "etiqueta de término «%s» difiere de la etiqueta de bloque «%s»" -#: pl_gram.y:3771 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "el cursor «%s» no tiene argumentos" -#: pl_gram.y:3785 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "el cursor «%s» tiene argumentos" -#: pl_gram.y:3827 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "el cursor «%s» no tiene un argumento llamado «%s»" -#: pl_gram.y:3847 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "el valor para el parámetro «%s» del cursor «%s» fue especificado más de una vez" -#: pl_gram.y:3872 +#: pl_gram.y:3948 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "no hay suficientes argumentos para el cursor «%s»" -#: pl_gram.y:3879 +#: pl_gram.y:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "demasiados argumentos para el cursor «%s»" -#: pl_gram.y:3965 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "no se reconoce la opción de sentencia RAISE" -#: pl_gram.y:3969 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "error de sintaxis, se esperaba «=»" -#: pl_gram.y:4010 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "se especificaron demasiados parámetros a RAISE" -#: pl_gram.y:4014 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "se especificaron muy pocos parámetros a RAISE" @@ -843,13 +857,13 @@ msgid "List of programming constructs that should produce an error." msgstr "Listado de estructuras de programación que deben dar un error." #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s al final de la entrada" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s en o cerca de «%s»" diff --git a/src/pl/plpgsql/src/po/fr.po b/src/pl/plpgsql/src/po/fr.po index 19676ff681cb8..f2b93ddb884d0 100644 --- a/src/pl/plpgsql/src/po/fr.po +++ b/src/pl/plpgsql/src/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-08-22 10:09+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,161 +19,176 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: pl_comp.c:438 pl_handler.c:496 +#: pl_comp.c:434 pl_handler.c:496 #, c-format msgid "PL/pgSQL functions cannot accept type %s" msgstr "les fonctions PL/pgSQL ne peuvent pas accepter le type %s" -#: pl_comp.c:530 +#: pl_comp.c:526 #, c-format msgid "could not determine actual return type for polymorphic function \"%s\"" msgstr "n'a pas pu déterminer le type de retour pour la fonction polymorphique « %s »" -#: pl_comp.c:560 +#: pl_comp.c:556 #, c-format msgid "trigger functions can only be called as triggers" msgstr "les fonctions trigger peuvent seulement être appelées par des triggers" -#: pl_comp.c:564 pl_handler.c:480 +#: pl_comp.c:560 pl_handler.c:480 #, c-format msgid "PL/pgSQL functions cannot return type %s" msgstr "les fonctions PL/pgSQL ne peuvent pas renvoyer le type %s" -#: pl_comp.c:604 +#: pl_comp.c:600 #, c-format msgid "trigger functions cannot have declared arguments" msgstr "les fonctions triggers ne peuvent pas avoir d'arguments déclarés" -#: pl_comp.c:605 +#: pl_comp.c:601 #, c-format msgid "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV instead." msgstr "À la place, on peut accéder aux arguments du trigger par TG_NARGS et TG_ARGV." -#: pl_comp.c:738 +#: pl_comp.c:734 #, c-format msgid "event trigger functions cannot have declared arguments" msgstr "les fonctions triggers sur événement ne peuvent pas avoir des arguments déclarés" -#: pl_comp.c:1002 +#: pl_comp.c:998 #, c-format msgid "compilation of PL/pgSQL function \"%s\" near line %d" msgstr "compilation de la fonction PL/pgSQL « %s » près de la ligne %d" -#: pl_comp.c:1025 +#: pl_comp.c:1021 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "le nom du paramètre « %s » est utilisé plus d'une fois" -#: pl_comp.c:1139 +#: pl_comp.c:1135 #, c-format msgid "column reference \"%s\" is ambiguous" -msgstr "la référence à la colonne « %s » est ambigüe" +msgstr "la référence à la colonne « %s » est ambiguë" -#: pl_comp.c:1141 +#: pl_comp.c:1137 #, c-format msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Cela pourrait faire référence à une variable PL/pgSQL ou à la colonne d'une table." -#: pl_comp.c:1324 pl_exec.c:5216 pl_exec.c:5389 pl_exec.c:5476 pl_exec.c:5567 -#: pl_exec.c:6588 +#: pl_comp.c:1314 pl_exec.c:5260 pl_exec.c:5433 pl_exec.c:5520 pl_exec.c:5611 +#: pl_exec.c:6636 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "l'enregistrement « %s » n'a pas de champs « %s »" -#: pl_comp.c:1818 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "la variable « %s » n'existe pas" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "la colonne « %s » de la relation « %s » n'existe pas" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "la relation « %s » n'existe pas" -#: pl_comp.c:1825 pl_comp.c:1867 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "la relation « %s » n'a pas un type composite" -#: pl_comp.c:1933 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "la variable « %s » a le pseudo-type %s" -#: pl_comp.c:2122 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "le type « %s » n'est qu'une coquille" -#: pl_comp.c:2204 pl_exec.c:6889 +#: pl_comp.c:2157 pl_exec.c:6937 #, c-format msgid "type %s is not composite" msgstr "le type %s n'est pas un type composite" -#: pl_comp.c:2252 pl_comp.c:2305 +#: pl_comp.c:2193 +#, 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" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "condition d'exception non reconnue « %s »" -#: pl_comp.c:2526 +#: pl_comp.c:2514 #, c-format msgid "could not determine actual argument type for polymorphic function \"%s\"" msgstr "n'a pas pu déterminer le type d'argument pour la fonction polymorphique « %s »" -#: pl_exec.c:500 pl_exec.c:939 pl_exec.c:1174 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "durant l'initialisation de l'état de la fonction" -#: pl_exec.c:506 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "lors du stockage des arguments dans les variables locales" -#: pl_exec.c:594 pl_exec.c:1012 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "durant l'entrée d'une fonction" -#: pl_exec.c:617 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "le contrôle a atteint la fin de la fonction sans RETURN" -#: pl_exec.c:623 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "lors de la conversion de la valeur de retour au type de retour de la fonction" -#: pl_exec.c:635 pl_exec.c:3656 +#: pl_exec.c:647 pl_exec.c:3683 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" -#: pl_exec.c:640 pl_exec.c:3662 +#: pl_exec.c:652 pl_exec.c:3689 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "mode matérialisé requis mais interdit dans ce contexte" -#: pl_exec.c:767 pl_exec.c:1038 pl_exec.c:1196 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "lors de la sortie de la fonction" -#: pl_exec.c:822 pl_exec.c:886 pl_exec.c:3455 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3482 msgid "returned record type does not match expected record type" msgstr "le type d'enregistrement renvoyé ne correspond pas au type d'enregistrement attendu" -#: pl_exec.c:1035 pl_exec.c:1193 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "le contrôle a atteint la fin de la procédure trigger sans RETURN" -#: pl_exec.c:1043 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "une procédure trigger ne peut pas renvoyer un ensemble" -#: pl_exec.c:1082 pl_exec.c:1110 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "returned row structure does not match the structure of the triggering table" msgstr "la structure de ligne renvoyée ne correspond pas à la structure de la table du trigger" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1251 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "fonction PL/pgSQL %s, ligne %d, %s" @@ -181,49 +196,49 @@ msgstr "fonction PL/pgSQL %s, ligne %d, %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1262 +#: pl_exec.c:1274 #, c-format msgid "PL/pgSQL function %s %s" msgstr "fonction PL/pgSQL %s, %s" #. translator: last %s is a plpgsql statement type name -#: pl_exec.c:1270 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "fonction PL/pgSQL %s, ligne %d à %s" -#: pl_exec.c:1276 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "fonction PL/pgSQL %s" -#: pl_exec.c:1647 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "lors de l'initialisation des variables locales du bloc d'instructions" -#: pl_exec.c:1752 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "lors de l'entrée dans le bloc d'instructions" -#: pl_exec.c:1784 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "lors de la sortie du bloc d'instructions" -#: pl_exec.c:1822 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "lors du nettoyage de l'exception" -#: pl_exec.c:2355 +#: pl_exec.c:2370 #, c-format msgid "procedure parameter \"%s\" is an output parameter but corresponding argument is not writable" msgstr "le paramètre de la procédure « %s » est un argument en sortie mais l'argument correspondant n'est pas modifiable" -#: pl_exec.c:2360 +#: pl_exec.c:2375 #, c-format msgid "procedure parameter %d is an output parameter but corresponding argument is not writable" msgstr "le paramètre de la procédure %d est un paramètre en sortie mais l'argument correspondant n'est pas modifiable" -#: pl_exec.c:2394 +#: pl_exec.c:2411 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "GET STACKED DIAGNOSTICS ne peut pas être utilisé à l'extérieur d'un gestionnaire d'exception" @@ -234,288 +249,293 @@ msgstr "GET STACKED DIAGNOSTICS ne peut pas être utilisé à l'extérieur d'un # (errcode(ERRCODE_CASE_NOT_FOUND), # errmsg("case not found"), # errhint("CASE statement is missing ELSE part."))); -#: pl_exec.c:2594 +#: pl_exec.c:2617 #, c-format msgid "case not found" msgstr "cas introuvable" -#: pl_exec.c:2595 +#: pl_exec.c:2618 #, c-format msgid "CASE statement is missing ELSE part." msgstr "l'instruction CASE n'a pas de partie ELSE." -#: pl_exec.c:2688 +#: pl_exec.c:2711 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "la limite inférieure d'une boucle FOR ne peut pas être NULL" -#: pl_exec.c:2704 +#: pl_exec.c:2727 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "la limite supérieure de la boucle FOR ne peut pas être NULL" -#: pl_exec.c:2722 +#: pl_exec.c:2745 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "la valeur BY d'une boucle FOR ne peut pas être NULL" -#: pl_exec.c:2728 +#: pl_exec.c:2751 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "la valeur BY d'une boucle FOR doit être plus grande que zéro" -#: pl_exec.c:2862 pl_exec.c:4658 +#: pl_exec.c:2885 pl_exec.c:4693 #, c-format msgid "cursor \"%s\" already in use" msgstr "curseur « %s » déjà en cours d'utilisation" -#: pl_exec.c:2885 pl_exec.c:4723 +#: pl_exec.c:2908 pl_exec.c:4763 #, c-format msgid "arguments given for cursor without arguments" msgstr "arguments fournis pour un curseur sans argument" -#: pl_exec.c:2904 pl_exec.c:4742 +#: pl_exec.c:2927 pl_exec.c:4782 #, c-format msgid "arguments required for cursor" msgstr "arguments requis pour le curseur" -#: pl_exec.c:2991 +#: pl_exec.c:3018 #, c-format msgid "FOREACH expression must not be null" msgstr "l'expression FOREACH ne doit pas être NULL" -#: pl_exec.c:3006 +#: pl_exec.c:3033 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "l'expression FOREACH doit renvoyer un tableau, pas un type %s" -#: pl_exec.c:3023 +#: pl_exec.c:3050 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "la dimension de la partie (%d) est en dehors des valeurs valides (0..%d)" -#: pl_exec.c:3050 +#: pl_exec.c:3077 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "la variable d'une boucle FOREACH ... SLICE doit être d'un type tableau" -#: pl_exec.c:3054 +#: pl_exec.c:3081 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "la valeur d'une boucle FOREACH ne doit pas être de type tableau" -#: pl_exec.c:3216 pl_exec.c:3273 pl_exec.c:3448 +#: pl_exec.c:3243 pl_exec.c:3300 pl_exec.c:3475 #, c-format msgid "cannot return non-composite value from function returning composite type" msgstr "ne peut pas renvoyer de valeurs non composites à partir d'une fonction renvoyant un type composite" -#: pl_exec.c:3312 pl_gram.y:3318 +#: pl_exec.c:3339 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "ne peut pas utiliser RETURN NEXT dans une fonction non SETOF" -#: pl_exec.c:3353 pl_exec.c:3485 +#: pl_exec.c:3380 pl_exec.c:3512 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "mauvais type de résultat fourni dans RETURN NEXT" -#: pl_exec.c:3391 pl_exec.c:3412 +#: pl_exec.c:3418 pl_exec.c:3439 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "mauvais type d'enregistrement fourni à RETURN NEXT" -#: pl_exec.c:3504 +#: pl_exec.c:3531 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT doit avoir un paramètre" -#: pl_exec.c:3532 pl_gram.y:3382 +#: pl_exec.c:3559 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "ne peut pas utiliser RETURN QUERY dans une fonction non SETOF" -#: pl_exec.c:3550 +#: pl_exec.c:3577 msgid "structure of query does not match function result type" msgstr "la structure de la requête ne correspond pas au type de résultat de la fonction" -#: pl_exec.c:3605 pl_exec.c:4435 pl_exec.c:8630 +#: pl_exec.c:3632 pl_exec.c:4469 pl_exec.c:8759 #, c-format msgid "query string argument of EXECUTE is null" msgstr "l'argument de la requête d'EXECUTE est NULL" -#: pl_exec.c:3690 pl_exec.c:3828 +#: pl_exec.c:3717 pl_exec.c:3855 #, c-format msgid "RAISE option already specified: %s" msgstr "option RAISE déjà spécifiée : %s" -#: pl_exec.c:3724 +#: pl_exec.c:3751 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "RAISE sans paramètre ne peut pas être utilisé sans un gestionnaire d'exceptions" -#: pl_exec.c:3818 +#: pl_exec.c:3845 #, c-format msgid "RAISE statement option cannot be null" msgstr "l'option de l'instruction RAISE ne peut pas être NULL" -#: pl_exec.c:3888 +#: pl_exec.c:3915 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3943 +#: pl_exec.c:3970 #, c-format msgid "assertion failed" msgstr "échec de l'assertion" -#: pl_exec.c:4308 pl_exec.c:4497 +#: pl_exec.c:4342 pl_exec.c:4532 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "ne peut pas utiliser COPY vers/depuis un client en PL/pgSQL" -#: pl_exec.c:4314 +#: pl_exec.c:4348 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "commande de transaction non supportée dans PL/pgSQL" -#: pl_exec.c:4337 pl_exec.c:4526 +#: pl_exec.c:4371 pl_exec.c:4561 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO utilisé dans une commande qui ne peut pas envoyer de données" -#: pl_exec.c:4360 pl_exec.c:4549 +#: pl_exec.c:4394 pl_exec.c:4584 #, c-format msgid "query returned no rows" msgstr "la requête n'a renvoyé aucune ligne" -#: pl_exec.c:4382 pl_exec.c:4568 pl_exec.c:5711 +#: pl_exec.c:4416 pl_exec.c:4603 pl_exec.c:5755 #, c-format msgid "query returned more than one row" msgstr "la requête a renvoyé plus d'une ligne" -#: pl_exec.c:4384 +#: pl_exec.c:4418 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "Assurez-vous que la requête ne renvoie qu'une seule ligne ou utilisez LIMIT 1." -#: pl_exec.c:4400 +#: pl_exec.c:4434 #, c-format msgid "query has no destination for result data" msgstr "la requête n'a pas de destination pour les données résultantes" -#: pl_exec.c:4401 +#: pl_exec.c:4435 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Si vous voulez ignorer le résultat d'un SELECT, utilisez PERFORM à la place." -#: pl_exec.c:4489 +#: pl_exec.c:4524 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" -msgstr "EXECUTE n'est pas implementé pour SELECT ... INTO" +msgstr "EXECUTE n'est pas implémenté pour SELECT ... INTO" -#: pl_exec.c:4490 +#: pl_exec.c:4525 #, c-format msgid "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead." msgstr "Vous pouvez aussi utiliser EXECUTE ... INTO ou EXECUTE CREATE TABLE ... AS à la place." -#: pl_exec.c:4503 +#: pl_exec.c:4538 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE pour les commandes de transactions n'est pas implémenté" -#: pl_exec.c:4804 pl_exec.c:4892 +#: pl_exec.c:4848 pl_exec.c:4936 #, c-format msgid "cursor variable \"%s\" is null" msgstr "la variable du curseur « %s » est NULL" -#: pl_exec.c:4815 pl_exec.c:4903 +#: pl_exec.c:4859 pl_exec.c:4947 #, c-format msgid "cursor \"%s\" does not exist" msgstr "le curseur « %s » n'existe pas" -#: pl_exec.c:4828 +#: pl_exec.c:4872 #, c-format msgid "relative or absolute cursor position is null" msgstr "la position relative ou absolue du curseur est NULL" -#: pl_exec.c:5066 pl_exec.c:5161 +#: pl_exec.c:5110 pl_exec.c:5205 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "une valeur NULL ne peut pas être affectée à la variable « %s » déclarée non NULL" -#: pl_exec.c:5142 +#: pl_exec.c:5186 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "ne peut pas affecter une valeur non composite à une variable de type ROW" -#: pl_exec.c:5174 +#: pl_exec.c:5218 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "ne peut pas affecter une valeur non composite à une variable RECORD" -#: pl_exec.c:5225 +#: pl_exec.c:5269 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "ne peut pas affecter à une colonne système « %s »" -#: pl_exec.c:5674 +#: pl_exec.c:5718 #, c-format msgid "query did not return data" msgstr "la requête n'a pas renvoyé de données" -#: pl_exec.c:5675 pl_exec.c:5687 pl_exec.c:5712 pl_exec.c:5788 pl_exec.c:5793 +#: pl_exec.c:5719 pl_exec.c:5731 pl_exec.c:5756 pl_exec.c:5832 pl_exec.c:5837 #, c-format msgid "query: %s" msgstr "requête : %s" -#: pl_exec.c:5683 +#: pl_exec.c:5727 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" msgstr[0] "la requête a renvoyé %d colonne" msgstr[1] "la requête a renvoyé %d colonnes" -#: pl_exec.c:5787 +#: pl_exec.c:5831 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "la requête est SELECT INTO, alors qu'elle devrait être un simple SELECT" -#: pl_exec.c:5792 +#: pl_exec.c:5836 #, c-format msgid "query is not a SELECT" msgstr "la requête n'est pas un SELECT" -#: pl_exec.c:6602 pl_exec.c:6642 pl_exec.c:6682 +#: pl_exec.c:6650 pl_exec.c:6690 pl_exec.c:6730 #, 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 à celui préparé dans le plan (%s)" -#: pl_exec.c:7093 pl_exec.c:7127 pl_exec.c:7201 pl_exec.c:7227 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, c-format msgid "number of source and target fields in assignment does not match" msgstr "le nombre de champs source et celui de champs cible dans l'affectation ne correspondent pas" #. translator: %s represents a name of an extra check -#: pl_exec.c:7095 pl_exec.c:7129 pl_exec.c:7203 pl_exec.c:7229 +#: pl_exec.c:7143 pl_exec.c:7177 pl_exec.c:7251 pl_exec.c:7277 #, c-format msgid "%s check of %s is active." msgstr "%s vérification de %s est active." -#: pl_exec.c:7099 pl_exec.c:7133 pl_exec.c:7207 pl_exec.c:7233 +#: pl_exec.c:7147 pl_exec.c:7181 pl_exec.c:7255 pl_exec.c:7281 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "Assurez-vous que la requête renvoie la liste exacte des colonnes." -#: pl_exec.c:7620 +#: pl_exec.c:7668 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "l'enregistrement « %s » n'est pas encore affecté" -#: pl_exec.c:7621 +#: pl_exec.c:7669 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "La structure de ligne d'un enregistrement pas encore affecté est indéterminée." +#: pl_exec.c:8357 pl_gram.y:3498 +#, c-format +msgid "variable \"%s\" is declared CONSTANT" +msgstr "la variable « %s » est déclarée CONSTANT" + #: pl_funcs.c:237 msgid "statement block" msgstr "bloc d'instructions" @@ -548,280 +568,274 @@ msgstr "instruction SQL" msgid "FOR over EXECUTE statement" msgstr "FOR sur une instruction EXECUTE" -#: pl_gram.y:486 +#: pl_gram.y:485 #, c-format msgid "block label must be placed before DECLARE, not after" msgstr "le label du bloc doit être placé avant DECLARE, et non pas après" -#: pl_gram.y:506 +#: pl_gram.y:505 #, c-format msgid "collations are not supported by type %s" msgstr "les collationnements ne sont pas supportés par le type %s" -#: pl_gram.y:525 +#: pl_gram.y:524 #, c-format msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "la variable « %s » doit avoir une valeur par défaut car elle est déclarée NOT NULL" -#: pl_gram.y:673 pl_gram.y:688 pl_gram.y:714 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "la variable « %s » n'existe pas" - -#: pl_gram.y:732 pl_gram.y:760 +#: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "déclaration dupliquée" -#: pl_gram.y:743 pl_gram.y:771 +#: pl_gram.y:715 pl_gram.y:743 #, c-format msgid "variable \"%s\" shadows a previously defined variable" msgstr "la variable « %s » cache une variable définie précédemment" -#: pl_gram.y:1043 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "l'élément %s de diagnostique n'est pas autorisé dans GET STACKED DIAGNOSTICS" -#: pl_gram.y:1061 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "l'élément %s de diagnostique n'est pas autorisé dans GET CURRENT DIAGNOSTICS" -#: pl_gram.y:1156 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "élément GET DIAGNOSTICS non reconnu" -#: pl_gram.y:1172 pl_gram.y:3557 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "« %s » n'est pas une variable scalaire" -#: pl_gram.y:1402 pl_gram.y:1596 +#: pl_gram.y:1379 pl_gram.y:1572 #, c-format msgid "loop variable of loop over rows must be a record variable or list of scalar variables" msgstr "la variable d'une boucle sur des lignes doit être une variable de type record ou une liste de variables scalaires" -#: pl_gram.y:1437 +#: pl_gram.y:1414 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "le curseur de la boucle FOR ne doit avoir qu'une seule variable cible" -#: pl_gram.y:1444 +#: pl_gram.y:1421 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "le curseur de la boucle FOR doit utiliser une variable d'un curseur lié" -#: pl_gram.y:1535 +#: pl_gram.y:1511 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "une boucle FOR de type entier ne doit avoir qu'une seule variable cible" -#: pl_gram.y:1569 +#: pl_gram.y:1545 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "ne peut pas spécifier REVERSE dans la requête d'une boucle FOR" -#: pl_gram.y:1699 +#: pl_gram.y:1675 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "la variable d'une boucle FOREACH doit être une variable connue ou une liste de variables" -#: pl_gram.y:1741 +#: pl_gram.y:1717 #, c-format msgid "there is no label \"%s\" attached to any block or loop enclosing this statement" msgstr "il n'existe pas de label « %s » attaché à un bloc ou à une boucle englobant cette instruction" -#: pl_gram.y:1749 +#: pl_gram.y:1725 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "le label de bloc « %s » ne peut pas être utilisé avec CONTINUE" -#: pl_gram.y:1764 +#: pl_gram.y:1740 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT ne peut pas être utilisé à l'extérieur d'une boucle, sauf s'il a un label" -#: pl_gram.y:1765 +#: pl_gram.y:1741 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE ne peut pas être utilisé à l'extérieur d'une boucle" -#: pl_gram.y:1789 pl_gram.y:1827 pl_gram.y:1875 pl_gram.y:3004 pl_gram.y:3092 -#: pl_gram.y:3203 pl_gram.y:3956 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "fin inattendue de la définition de la fonction" -#: pl_gram.y:1895 pl_gram.y:1919 pl_gram.y:1935 pl_gram.y:1941 pl_gram.y:2066 -#: pl_gram.y:2074 pl_gram.y:2088 pl_gram.y:2183 pl_gram.y:2407 pl_gram.y:2497 -#: pl_gram.y:2655 pl_gram.y:3799 pl_gram.y:3860 pl_gram.y:3937 +#: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 +#: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "erreur de syntaxe" -#: pl_gram.y:1923 pl_gram.y:1925 pl_gram.y:2411 pl_gram.y:2413 +#: pl_gram.y:1899 pl_gram.y:1901 pl_gram.y:2387 pl_gram.y:2389 msgid "invalid SQLSTATE code" msgstr "code SQLSTATE invalide" -#: pl_gram.y:2131 +#: pl_gram.y:2107 msgid "syntax error, expected \"FOR\"" msgstr "erreur de syntaxe, « FOR » attendu" -#: pl_gram.y:2192 +#: pl_gram.y:2168 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "l'instruction FETCH ne peut pas renvoyer plusieurs lignes" -#: pl_gram.y:2289 +#: pl_gram.y:2265 #, c-format msgid "cursor variable must be a simple variable" msgstr "la variable de curseur doit être une variable simple" -#: pl_gram.y:2295 +#: pl_gram.y:2271 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "la variable « %s » doit être de type cursor ou refcursor" -#: pl_gram.y:2626 pl_gram.y:2637 +#: pl_gram.y:2603 pl_gram.y:2614 #, c-format msgid "\"%s\" is not a known variable" msgstr "« %s » n'est pas une variable connue" -#: pl_gram.y:2743 pl_gram.y:2753 pl_gram.y:2909 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "parenthèses non correspondantes" -#: pl_gram.y:2757 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "« %s » manquant à la fin de l'expression SQL" -#: pl_gram.y:2763 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "« %s » manquant à la fin de l'instruction SQL" -#: pl_gram.y:2780 +#: pl_gram.y:2758 msgid "missing expression" msgstr "expression manquante" -#: pl_gram.y:2782 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "instruction SQL manquante" -#: pl_gram.y:2911 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "erreur de syntaxe, « ] » attendu" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "déclaration incomplète d'un type de données" -#: pl_gram.y:2934 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "déclaration manquante d'un type de données" -#: pl_gram.y:3014 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO spécifié plus d'une fois" -#: pl_gram.y:3184 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "attendait FROM ou IN" -#: pl_gram.y:3245 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "RETURN ne peut pas avoir de paramètre dans une fonction renvoyant un ensemble" -#: pl_gram.y:3246 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Utilisez RETURN NEXT ou RETURN QUERY." -#: pl_gram.y:3256 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "RETURN ne peut pas avoir de paramètre dans une procédure" -#: pl_gram.y:3261 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "RETURN ne peut pas avoir de paramètre dans une fonction renvoyant void" -#: pl_gram.y:3270 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN ne peut pas avoir de paramètre dans une fonction avec des paramètres OUT" -#: pl_gram.y:3333 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT ne peut pas avoir de paramètre dans une fonction avec des paramètres OUT" -#: pl_gram.y:3441 -#, c-format -msgid "variable \"%s\" is declared CONSTANT" -msgstr "la variable « %s » est déclarée CONSTANT" - -#: pl_gram.y:3499 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "la variable de type record ne peut pas faire partie d'une liste INTO à plusieurs éléments" -#: pl_gram.y:3545 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "trop de variables INTO indiquées" -#: pl_gram.y:3753 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "label de fin « %s » spécifié pour un bloc sans label" -#: pl_gram.y:3760 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "le label de fin « %s » est différent du label « %s » du bloc" -#: pl_gram.y:3794 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "le curseur « %s » n'a pas d'argument" -#: pl_gram.y:3808 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "le curseur « %s » a des arguments" -#: pl_gram.y:3850 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "le curseur « %s » n'a pas d'argument nommé « %s »" -#: pl_gram.y:3870 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "la valeur du paramètre « %s » pour le curseur « %s » est spécifiée plus d'une fois" -#: pl_gram.y:3895 +#: pl_gram.y:3948 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "pas assez d'arguments pour le curseur « %s »" -#: pl_gram.y:3902 +#: pl_gram.y:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "trop d'arguments pour le curseur « %s »" -#: pl_gram.y:3988 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "option de l'instruction RAISE inconnue" -#: pl_gram.y:3992 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "erreur de syntaxe, « = » attendu" -#: pl_gram.y:4033 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "trop de paramètres spécifiés pour RAISE" -#: pl_gram.y:4037 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "trop peu de paramètres pour RAISE" @@ -847,158 +861,13 @@ msgid "List of programming constructs that should produce an error." msgstr "Liste des constructions de programmation qui devraient produire une erreur." #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s à la fin de l'entrée" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s sur ou près de « %s »" - -#~ msgid "EXECUTE statement" -#~ msgstr "instruction EXECUTE" - -#~ msgid "Expected \"FOR\", to open a cursor for an unbound cursor variable." -#~ msgstr "Attendait « FOR » pour ouvrir un curseur pour une variable sans limite." - -#~ msgid "Expected record variable, row variable, or list of scalar variables following INTO." -#~ msgstr "" -#~ "Attendait une variable RECORD, ROW ou une liste de variables scalaires\n" -#~ "suivant INTO." - -#~ msgid "N/A (dropped column)" -#~ msgstr "N/A (colonne supprimée)" - -#~ msgid "Number of returned columns (%d) does not match expected column count (%d)." -#~ msgstr "" -#~ "Le nombre de colonnes renvoyées (%d) ne correspond pas au nombre de colonnes\n" -#~ "attendues (%d)." - -#~ msgid "RETURN NEXT must specify a record or row variable in function returning row" -#~ msgstr "" -#~ "RETURN NEXT doit indiquer une variable RECORD ou ROW dans une fonction\n" -#~ "renvoyant une ligne" - -#~ msgid "RETURN cannot have a parameter in function returning set; use RETURN NEXT or RETURN QUERY" -#~ msgstr "" -#~ "RETURN ne peut pas avoir un paramètre dans une fonction renvoyant des\n" -#~ "lignes ; utilisez RETURN NEXT ou RETURN QUERY" - -#~ msgid "RETURN must specify a record or row variable in function returning row" -#~ msgstr "" -#~ "RETURN ne peut pas indiquer une variable RECORD ou ROW dans une fonction\n" -#~ "renvoyant une ligne" - -#~ msgid "Returned type %s does not match expected type %s in column \"%s\"." -#~ msgstr "Le type %s renvoyé ne correspond pas au type %s attendu dans la colonne « %s »." - -#~ msgid "SQL statement in PL/PgSQL function \"%s\" near line %d" -#~ msgstr "instruction SQL dans la fonction PL/pgsql « %s » près de la ligne %d" - -#~ msgid "Use a BEGIN block with an EXCEPTION clause instead." -#~ msgstr "Utiliser un bloc BEGIN dans une clause EXCEPTION à la place." - -#~ msgid "array subscript in assignment must not be null" -#~ msgstr "un indice de tableau dans une affectation ne peut pas être NULL" - -#~ msgid "cannot assign to tg_argv" -#~ msgstr "ne peut pas affecter à tg_argv" - -#~ msgid "cursor \"%s\" closed unexpectedly" -#~ msgstr "le curseur « %s » a été fermé de façon inattendu" - -#~ msgid "default value for row or record variable is not supported" -#~ msgstr "la valeur par défaut de variable ROW ou RECORD n'est pas supportée" - -#~ msgid "expected \")\"" -#~ msgstr "« ) » attendu" - -#~ msgid "expected \"[\"" -#~ msgstr "« [ » attendu" - -#~ msgid "expected a cursor or refcursor variable" -#~ msgstr "attendait une variable de type cursor ou refcursor" - -#~ msgid "expected an integer variable" -#~ msgstr "attend une variable entière" - -#~ msgid "function has no parameter \"%s\"" -#~ msgstr "la fonction n'a pas de paramètre « %s »" - -#~ msgid "label does not exist" -#~ msgstr "le label n'existe pas" - -#~ 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)" - -#~ msgid "only positional parameters can be aliased" -#~ msgstr "seuls les paramètres de position peuvent avoir un alias" - -#~ msgid "qualified identifier cannot be used here: %s" -#~ msgstr "l'identifiant qualifié ne peut pas être utilisé ici : %s" - -#~ msgid "query \"%s\" returned more than one row" -#~ msgstr "la requête « %s » a renvoyé plus d'une ligne" - -#~ msgid "relation \"%s\" is not a table" -#~ msgstr "la relation « %s » n'est pas une table" - -#~ msgid "relation \"%s.%s\" does not exist" -#~ msgstr "la relation « %s.%s » n'existe pas" - -#~ msgid "row \"%s\" has no field \"%s\"" -#~ msgstr "la ligne « %s » n'a aucun champ « %s »" - -#~ msgid "row \"%s.%s\" has no field \"%s\"" -#~ msgstr "la ligne « %s.%s » n'a aucun champ « %s »" - -#~ msgid "row or record variable cannot be CONSTANT" -#~ msgstr "la variable ROW ou RECORD ne peut pas être CONSTANT" - -#~ msgid "row or record variable cannot be NOT NULL" -#~ msgstr "la variable ROW ou RECORD ne peut pas être NOT NULL" - -#~ msgid "string literal in PL/PgSQL function \"%s\" near line %d" -#~ msgstr "chaîne littérale dans la fonction PL/pgsql « %s » près de la ligne %d" - -#~ msgid "subscripted object is not an array" -#~ msgstr "l'objet souscrit n'est pas un tableau" - -#~ msgid "syntax error at \"%s\"" -#~ msgstr "erreur de syntaxe à « %s »" - -#~ msgid "too many variables specified in SQL statement" -#~ msgstr "trop de variables spécifiées dans l'instruction SQL" - -#~ msgid "type of \"%s\" does not match that when preparing the plan" -#~ msgstr "le type de « %s » ne correspond pas à ce qui est préparé dans le plan" - -#~ msgid "type of \"%s.%s\" does not match that when preparing the plan" -#~ msgstr "le type de « %s.%s » ne correspond pas à ce qui est préparé dans le plan" - -#~ msgid "type of tg_argv[%d] does not match that when preparing the plan" -#~ msgstr "le type de tg_argv[%d] ne correspond pas à ce qui est préparé dans le plan" - -#~ msgid "unterminated \" in identifier: %s" -#~ msgstr "\" non terminé dans l'identifiant : %s" - -#~ msgid "unterminated /* comment" -#~ msgstr "commentaire /* non terminé" - -#~ msgid "unterminated dollar-quoted string" -#~ msgstr "chaîne entre dollars non terminée" - -#~ msgid "unterminated quoted identifier" -#~ msgstr "identifiant entre guillemets non terminé" - -#~ msgid "unterminated quoted string" -#~ msgstr "chaîne entre guillemets non terminée" - -#~ msgid "variable \"%s\" declared NOT NULL cannot default to NULL" -#~ msgstr "la variable « %s » déclarée NOT NULL ne peut pas valoir NULL par défaut" - -#~ msgid "variable \"%s\" does not exist in the current block" -#~ msgstr "la variable « %s » n'existe pas dans le bloc actuel" diff --git a/src/pl/plpgsql/src/po/ko.po b/src/pl/plpgsql/src/po/ko.po index 567aec9e1727f..596410785157c 100644 --- a/src/pl/plpgsql/src/po/ko.po +++ b/src/pl/plpgsql/src/po/ko.po @@ -4,10 +4,10 @@ # Ioseph Kim , 2010 msgid "" msgstr "" -"Project-Id-Version: plpgsql (PostgreSQL) 16\n" +"Project-Id-Version: plpgsql (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:39+0000\n" -"PO-Revision-Date: 2023-05-30 12:40+0900\n" +"POT-Creation-Date: 2025-01-17 04:39+0000\n" +"PO-Revision-Date: 2025-01-16 10:40+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean \n" "Language: ko\n" @@ -73,100 +73,115 @@ msgstr "열 참조 \"%s\" 가 명확하지 않습니다." msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "PL/pgSQL 변수명도, 테이블 칼럼 이름도 아니여야 함" -#: pl_comp.c:1314 pl_exec.c:5255 pl_exec.c:5428 pl_exec.c:5515 pl_exec.c:5606 -#: pl_exec.c:6624 +#: pl_comp.c:1314 pl_exec.c:5260 pl_exec.c:5433 pl_exec.c:5520 pl_exec.c:5611 +#: pl_exec.c:6636 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "\"%s\" 레코드에 \"%s\" 필드가 없음" -#: pl_comp.c:1808 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "\"%s\" 변수가 없음" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "\"%s\" 칼럼이 \"%s\" 릴레이션에 없음" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "\"%s\" 이름의 릴레이션(relation)이 없습니다" -#: pl_comp.c:1815 pl_comp.c:1857 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "\"%s\" 릴레이션에는 복합 자료형이 없습니다" -#: pl_comp.c:1923 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "\"%s\" 변수에 의사 형식 %s이(가) 있음" -#: pl_comp.c:2112 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "자료형 \"%s\" 는 오로지 shell 에만 있습니다. " -#: pl_comp.c:2194 pl_exec.c:6925 +#: pl_comp.c:2157 pl_exec.c:6937 #, c-format msgid "type %s is not composite" msgstr "%s 자료형은 복합 자료형이 아님" -#: pl_comp.c:2242 pl_comp.c:2295 +#: pl_comp.c:2193 +#, c-format +msgid "could not find array type for data type %s" +msgstr "%s 자료형을 사용하는 배열 자료형이 없음" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "인식할 수 없는 예외 조건 \"%s\"" -#: pl_comp.c:2524 +#: pl_comp.c:2514 #, c-format msgid "" "could not determine actual argument type for polymorphic function \"%s\"" msgstr "다형적 함수 \"%s\"의 실제 인수 형식을 확인할 수 없음" -#: pl_exec.c:511 pl_exec.c:950 pl_exec.c:1185 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "실행 상태를 초기화하는 동안" -#: pl_exec.c:517 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "호출 인수를 로컬 변수에 저장하는 동안" -#: pl_exec.c:605 pl_exec.c:1023 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "함수를 시작하는 동안" -#: pl_exec.c:628 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "컨트롤이 RETURN 없이 함수 끝에 도달함" -#: pl_exec.c:634 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "함수의 반환 형식으로 반환 값을 형변환하는 동안" -#: pl_exec.c:646 pl_exec.c:3681 +#: pl_exec.c:647 pl_exec.c:3683 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "set-values 함수(테이블 리턴 함수)가 set 정의 없이 사용되었습니다 (테이블과 해" "당 열 alias 지정하세요)" -#: pl_exec.c:651 pl_exec.c:3687 +#: pl_exec.c:652 pl_exec.c:3689 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "materialize 모드가 필요합니다만, 이 구문에서는 허용되지 않습니다" -#: pl_exec.c:778 pl_exec.c:1049 pl_exec.c:1207 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "함수를 종료하는 동안" -#: pl_exec.c:833 pl_exec.c:897 pl_exec.c:3480 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3482 msgid "returned record type does not match expected record type" msgstr "반환된 레코드 형식이 필요한 레코드 형식과 일치하지 않음" -#: pl_exec.c:1046 pl_exec.c:1204 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "컨트롤이 RETURN 없이 트리거 프로시저 끝에 도달함" -#: pl_exec.c:1054 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "트리거 프로시저는 집합을 반환할 수 없음" -#: pl_exec.c:1093 pl_exec.c:1121 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "" "returned row structure does not match the structure of the triggering table" msgstr "반환된 행 구조가 트리거하는 테이블의 구조와 일치하지 않음" @@ -174,7 +189,7 @@ msgstr "반환된 행 구조가 트리거하는 테이블의 구조와 일치하 #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1262 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "PL/pgSQL 함수 \"%s\" 의 %d번째 줄 %s" @@ -182,35 +197,35 @@ msgstr "PL/pgSQL 함수 \"%s\" 의 %d번째 줄 %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1273 +#: pl_exec.c:1274 #, 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:1281 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "PL/pgSQL 함수 \"%s\" 의 %d번째 %s" -#: pl_exec.c:1287 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "PL/pgSQL 함수 %s" -#: pl_exec.c:1658 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "문 블록 로컬 변수를 초기화하는 동안" -#: pl_exec.c:1763 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "문 블록을 시작하는 동안" -#: pl_exec.c:1795 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "문 블록을 종료하는 동안" -#: pl_exec.c:1833 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "예외를 정리하는 동안" @@ -228,299 +243,299 @@ msgid "" "not writable" msgstr "%d 프로시져 인자는 출력 인자인데, 값 변경이 불가능 함" -#: pl_exec.c:2409 +#: pl_exec.c:2411 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "GET STACKED DIAGNOSTICS 구문은 예외처리 헨들러 밖에서 사용할 수 없음" -#: pl_exec.c:2615 +#: pl_exec.c:2617 #, c-format msgid "case not found" msgstr "사례를 찾지 못함" -#: pl_exec.c:2616 +#: pl_exec.c:2618 #, c-format msgid "CASE statement is missing ELSE part." msgstr "CASE 문에 ELSE 부분이 누락되었습니다." -#: pl_exec.c:2709 +#: pl_exec.c:2711 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "FOR 루프의 하한은 null일 수 없음" -#: pl_exec.c:2725 +#: pl_exec.c:2727 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "FOR 루프의 상한은 null일 수 없음" -#: pl_exec.c:2743 +#: pl_exec.c:2745 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "FOR 루프의 BY 값은 null일 수 없음" -#: pl_exec.c:2749 +#: pl_exec.c:2751 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "FOR 루프의 BY 값은 0보다 커야 함" -#: pl_exec.c:2883 pl_exec.c:4688 +#: pl_exec.c:2885 pl_exec.c:4693 #, c-format msgid "cursor \"%s\" already in use" msgstr "\"%s\" 커서가 이미 사용 중임" -#: pl_exec.c:2906 pl_exec.c:4758 +#: pl_exec.c:2908 pl_exec.c:4763 #, c-format msgid "arguments given for cursor without arguments" msgstr "인수가 없는 커서에 인수가 제공됨" -#: pl_exec.c:2925 pl_exec.c:4777 +#: pl_exec.c:2927 pl_exec.c:4782 #, c-format msgid "arguments required for cursor" msgstr "커서에 인수 필요" -#: pl_exec.c:3016 +#: pl_exec.c:3018 #, c-format msgid "FOREACH expression must not be null" msgstr "FOREACH 구문은 null 이 아니여야 함" -#: pl_exec.c:3031 +#: pl_exec.c:3033 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "FOREACH 구문에서는 배열이 사용됩니다. 사용된 자료형 %s" -#: pl_exec.c:3048 +#: pl_exec.c:3050 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "slice dimension (%d) 값이 범위를 벗어남, 0..%d" -#: pl_exec.c:3075 +#: pl_exec.c:3077 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "FOREACH ... SLICE 루프 변수는 배열 자료형이어야 함" -#: pl_exec.c:3079 +#: pl_exec.c:3081 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "FOREACH 반복 변수는 배열형이 아니여야 함" -#: pl_exec.c:3241 pl_exec.c:3298 pl_exec.c:3473 +#: pl_exec.c:3243 pl_exec.c:3300 pl_exec.c:3475 #, c-format msgid "" "cannot return non-composite value from function returning composite type" msgstr "" "함수의 반환값이 복합 자료형인데, 복합 자료형아닌 자료형을 반환하려고 함" -#: pl_exec.c:3337 pl_gram.y:3295 +#: pl_exec.c:3339 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "SETOF 함수가 아닌 함수에서 RETURN NEXT를 사용할 수 없음" -#: pl_exec.c:3378 pl_exec.c:3510 +#: pl_exec.c:3380 pl_exec.c:3512 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "RETURN NEXT에 잘못된 결과 형식이 제공됨" -#: pl_exec.c:3416 pl_exec.c:3437 +#: pl_exec.c:3418 pl_exec.c:3439 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "RETURN NEXT에 잘못된 레코드 형식이 제공됨" -#: pl_exec.c:3529 +#: pl_exec.c:3531 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT에 매개 변수 필요" -#: pl_exec.c:3557 pl_gram.y:3359 +#: pl_exec.c:3559 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "SETOF 함수가 아닌 함수에서 RETURN QUERY를 사용할 수 없음" -#: pl_exec.c:3575 +#: pl_exec.c:3577 msgid "structure of query does not match function result type" msgstr "쿼리 구조가 함수 결과 형식과 일치하지 않음" -#: pl_exec.c:3630 pl_exec.c:4465 pl_exec.c:8724 +#: pl_exec.c:3632 pl_exec.c:4469 pl_exec.c:8759 #, c-format msgid "query string argument of EXECUTE is null" msgstr "EXECUTE의 쿼리 문자열 인수가 null임" -#: pl_exec.c:3715 pl_exec.c:3853 +#: pl_exec.c:3717 pl_exec.c:3855 #, c-format msgid "RAISE option already specified: %s" msgstr "RAISE 옵션이 이미 지정됨: %s" -#: pl_exec.c:3749 +#: pl_exec.c:3751 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "매개 변수 없는 RAISE를 예외 처리기 외부에 사용할 수 없음" -#: pl_exec.c:3843 +#: pl_exec.c:3845 #, c-format msgid "RAISE statement option cannot be null" msgstr "RAISE 문 옵션이 null일 수 없음" -#: pl_exec.c:3913 +#: pl_exec.c:3915 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3968 +#: pl_exec.c:3970 #, c-format msgid "assertion failed" msgstr "assertion 실패" -#: pl_exec.c:4338 pl_exec.c:4527 +#: pl_exec.c:4342 pl_exec.c:4532 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "PL/pgSQL의 클라이언트와 상호 복사할 수 없음" -#: pl_exec.c:4344 +#: pl_exec.c:4348 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "PL/pgSQL 안에서는 지원하지 않는 트랜잭션 명령" -#: pl_exec.c:4367 pl_exec.c:4556 +#: pl_exec.c:4371 pl_exec.c:4561 #, c-format msgid "INTO used with a command that cannot return data" msgstr "데이터를 반환할 수 없는 명령과 함께 INTO가 사용됨" -#: pl_exec.c:4390 pl_exec.c:4579 +#: pl_exec.c:4394 pl_exec.c:4584 #, c-format msgid "query returned no rows" msgstr "쿼리에서 행을 반환하지 않음" -#: pl_exec.c:4412 pl_exec.c:4598 pl_exec.c:5750 +#: pl_exec.c:4416 pl_exec.c:4603 pl_exec.c:5755 #, c-format msgid "query returned more than one row" msgstr "쿼리에서 두 개 이상의 행을 반환" -#: pl_exec.c:4414 +#: pl_exec.c:4418 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "하나의 로우만 반환하도록 쿼리를 바꾸거나 LIMIT 1 옵션을 추가하세요." -#: pl_exec.c:4430 +#: pl_exec.c:4434 #, c-format msgid "query has no destination for result data" msgstr "쿼리에 결과 데이터의 대상이 없음" -#: pl_exec.c:4431 +#: pl_exec.c:4435 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "SELECT의 결과를 취소하려면 대신 PERFORM을 사용하십시오." -#: pl_exec.c:4519 +#: pl_exec.c:4524 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "SELECT의 EXECUTE... INTO가 구현되지 않음" -#: pl_exec.c:4520 +#: pl_exec.c:4525 #, c-format msgid "" "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS " "instead." msgstr "EXECUTE ... INTO 또는 EXECUTE CREATE TABLE ... AS 구문을 사용하세요." -#: pl_exec.c:4533 +#: pl_exec.c:4538 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "트랜잭션 명령들의 EXECUTE 기능은 구현되지 않았음" -#: pl_exec.c:4843 pl_exec.c:4931 +#: pl_exec.c:4848 pl_exec.c:4936 #, c-format msgid "cursor variable \"%s\" is null" msgstr "커서 변수 \"%s\"이(가) null임" -#: pl_exec.c:4854 pl_exec.c:4942 +#: pl_exec.c:4859 pl_exec.c:4947 #, c-format msgid "cursor \"%s\" does not exist" msgstr "\"%s\" 이름의 커서가 없음" -#: pl_exec.c:4867 +#: pl_exec.c:4872 #, c-format msgid "relative or absolute cursor position is null" msgstr "상대 또는 절대 커서 위치가 null임" -#: pl_exec.c:5105 pl_exec.c:5200 +#: pl_exec.c:5110 pl_exec.c:5205 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "NOT NULL이 선언된 \"%s\" 변수에 null 값을 할당할 수 없음" -#: pl_exec.c:5181 +#: pl_exec.c:5186 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "행 변수에 비복합 값을 할당할 수 없음" -#: pl_exec.c:5213 +#: pl_exec.c:5218 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "레코드 변수에 비복합 값을 할당할 수 없음" -#: pl_exec.c:5264 +#: pl_exec.c:5269 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "시스템 열 \"%s\"에 할당할 수 없습니다." -#: pl_exec.c:5713 +#: pl_exec.c:5718 #, c-format msgid "query did not return data" msgstr "쿼리 실행 결과 자료가 없음" -#: pl_exec.c:5714 pl_exec.c:5726 pl_exec.c:5751 pl_exec.c:5827 pl_exec.c:5832 +#: pl_exec.c:5719 pl_exec.c:5731 pl_exec.c:5756 pl_exec.c:5832 pl_exec.c:5837 #, c-format msgid "query: %s" msgstr "쿼리: %s" -#: pl_exec.c:5722 +#: pl_exec.c:5727 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" msgstr[0] "쿼리가 %d 개의 칼럼을 반환함" -#: pl_exec.c:5826 +#: pl_exec.c:5831 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "쿼리는 SELECT INTO 이지만, 일반 SELECT 구문이어야 함" -#: pl_exec.c:5831 +#: pl_exec.c:5836 #, c-format msgid "query is not a SELECT" msgstr "SELECT 쿼리가 아님" -#: pl_exec.c:6638 pl_exec.c:6678 pl_exec.c:6718 +#: pl_exec.c:6650 pl_exec.c:6690 pl_exec.c:6730 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "" "%d번째 매개 변수의 자료형(%s)이 미리 준비된 실행계획의 자료형(%s)과 다릅니다" -#: pl_exec.c:7129 pl_exec.c:7163 pl_exec.c:7237 pl_exec.c:7263 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, 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:7131 pl_exec.c:7165 pl_exec.c:7239 pl_exec.c:7265 +#: pl_exec.c:7143 pl_exec.c:7177 pl_exec.c:7251 pl_exec.c:7277 #, c-format msgid "%s check of %s is active." msgstr "%s 검사(해당 변수이름: %s)가 활성화 되어있습니다." -#: pl_exec.c:7135 pl_exec.c:7169 pl_exec.c:7243 pl_exec.c:7269 +#: pl_exec.c:7147 pl_exec.c:7181 pl_exec.c:7255 pl_exec.c:7281 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "쿼리 결과가 정확한 칼럼 목록을 반환하도록 수정하세요." -#: pl_exec.c:7656 +#: pl_exec.c:7668 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "\"%s\" 레코드가 아직 할당되지 않음" -#: pl_exec.c:7657 +#: pl_exec.c:7669 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "아직 할당되지 않은 레코드의 튜플 구조는 미정입니다." -#: pl_exec.c:8322 pl_gram.y:3418 +#: pl_exec.c:8357 pl_gram.y:3498 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "\"%s\" 변수는 CONSTANT로 선언됨" @@ -572,11 +587,6 @@ msgstr "%s 자료형은 collation 지원 안함" msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "\"%s\" 변수는 NOT NULL 설정이 있어 기본값을 가져야 합니다" -#: pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "\"%s\" 변수가 없음" - #: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "중복 선언" @@ -586,26 +596,26 @@ msgstr "중복 선언" msgid "variable \"%s\" shadows a previously defined variable" msgstr "variable \"%s\" shadows a previously defined variable" -#: pl_gram.y:1016 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "GET STACKED DIAGNOSTICS 에서 %s 항목을 사용할 수 없음" -#: pl_gram.y:1034 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "GET CURRENT DIAGNOSTICS 에서 %s 항목을 사용할 수 없음" -#: pl_gram.y:1132 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "알 수 없는 GET DIAGNOSTICS 항목" -#: pl_gram.y:1148 pl_gram.y:3534 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\"은(는) 스칼라 변수가 아님" -#: pl_gram.y:1378 pl_gram.y:1572 +#: pl_gram.y:1379 pl_gram.y:1572 #, c-format msgid "" "loop variable of loop over rows must be a record variable or list of scalar " @@ -613,12 +623,12 @@ msgid "" msgstr "" "행에 있는 루프의 루프 변수는 레코드 변수이거나 스칼라 변수의 목록이어야 함" -#: pl_gram.y:1413 +#: pl_gram.y:1414 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "커서 FOR 루프에 대상 변수가 한 개만 있어야 함" -#: pl_gram.y:1420 +#: pl_gram.y:1421 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "커서 FOR 루프는 바인딩된 커서 변수를 한 개만 사용해야 함" @@ -660,14 +670,14 @@ msgstr "루프 외부에 라벨 지정 없이 EXIT 사용할 수 없음" msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE를 루프 외부에 사용할 수 없음" -#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:2981 pl_gram.y:3069 -#: pl_gram.y:3180 pl_gram.y:3933 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "예기치 않은 함수 정의의 끝" #: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 #: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 -#: pl_gram.y:2632 pl_gram.y:3776 pl_gram.y:3837 pl_gram.y:3914 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "구문 오류" @@ -699,138 +709,142 @@ msgstr "\"%s\" 변수는 커서 또는 ref 커서 형식이어야 함" msgid "\"%s\" is not a known variable" msgstr "\"%s\" (은)는 알려진 변수가 아님" -#: pl_gram.y:2720 pl_gram.y:2730 pl_gram.y:2886 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "괄호의 짝이 맞지 않음" -#: pl_gram.y:2734 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "SQL 식 끝에 \"%s\" 누락" -#: pl_gram.y:2740 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "SQL 문 끝에 \"%s\" 누락" -#: pl_gram.y:2757 +#: pl_gram.y:2758 msgid "missing expression" msgstr "표현식 빠졌음" -#: pl_gram.y:2759 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "SQL 문이 빠졌음" -#: pl_gram.y:2888 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "구문 오류, \"]\" 필요" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "불완전한 데이터 형식 선언" -#: pl_gram.y:2911 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "데이터 형식 선언 누락" -#: pl_gram.y:2991 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO가 여러 번 지정됨" -#: pl_gram.y:3161 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "FROM 또는 IN 필요" -#: pl_gram.y:3222 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "집합을 반환하는 함수에서 RETURN 구문에는 인자가 없음" -#: pl_gram.y:3223 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "RETURN NEXT 나 RETURN QUERY 구문을 사용하세요." -#: pl_gram.y:3233 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "프로시져에서는 RETURN 문의 매개 변수를 사용할 수 없음" -#: pl_gram.y:3238 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "RETURN은 void를 반환하는 함수에 매개 변수를 포함할 수 없음" -#: pl_gram.y:3247 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN은 OUT 매개 변수가 있는 함수에 매개 변수를 포함할 수 없음" -#: pl_gram.y:3310 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT는 OUT 매개 변수가 있는 함수에 매개 변수를 포함할 수 없음" -#: pl_gram.y:3476 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "다중 아이템 INTO 목록의 부분으로 record 변수가 사용될 수 없음" -#: pl_gram.y:3522 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "너무 많은 INTO 변수가 지정됨" -#: pl_gram.y:3730 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "레이블이 없는 블록에 끝 레이블 \"%s\"이(가) 지정됨" -#: pl_gram.y:3737 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "끝 레이블 \"%s\"이(가) 블록의 \"%s\" 레이블과 다름" -#: pl_gram.y:3771 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "\"%s\" 커서에 인수가 없음" -#: pl_gram.y:3785 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "\"%s\" 커서에 인수가 있음" -#: pl_gram.y:3827 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "\"%s\" 커서는 \"%s\" 이름의 인자가 없음" -#: pl_gram.y:3847 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "\"%s\" 이름의 인자가 \"%s\" 커서에서 중복됨" -#: pl_gram.y:3872 +#: pl_gram.y:3948 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "\"%s\" 커서를 위한 충분하지 않은 인자" -#: pl_gram.y:3879 +#: pl_gram.y:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "\"%s\" 커서를 위한 인자가 너무 많음" -#: pl_gram.y:3965 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "인식할 수 없는 RAISE 문 옵션" -#: pl_gram.y:3969 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "구문 오류, \"=\" 필요" -#: pl_gram.y:4010 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "RAISE에 지정된 매개 변수가 너무 많음" -#: pl_gram.y:4014 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "RAISE에 지정된 매개 변수가 너무 적음" @@ -863,13 +877,13 @@ msgid "List of programming constructs that should produce an error." msgstr "오류로 처리할 프로그래밍 컨스트럭트 목록" #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s, 입력 끝부분" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s, \"%s\" 부근" diff --git a/src/pl/plpgsql/src/po/ru.po b/src/pl/plpgsql/src/po/ru.po index befc3125ba003..99ba5ac7e11d4 100644 --- a/src/pl/plpgsql/src/po/ru.po +++ b/src/pl/plpgsql/src/po/ru.po @@ -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, 2021, 2022. +# Alexander Lakhin , 2012-2017, 2018, 2019, 2020, 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: plpgsql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" -"PO-Revision-Date: 2022-09-05 13:38+0300\n" +"POT-Creation-Date: 2024-09-02 09:29+0300\n" +"PO-Revision-Date: 2024-09-04 20:00+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -78,43 +78,58 @@ msgstr "неоднозначная ссылка на столбец \"%s\"" msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Подразумевается ссылка на переменную PL/pgSQL или столбец таблицы." -#: pl_comp.c:1314 pl_exec.c:5255 pl_exec.c:5428 pl_exec.c:5515 pl_exec.c:5606 -#: pl_exec.c:6624 +#: pl_comp.c:1314 pl_exec.c:5260 pl_exec.c:5433 pl_exec.c:5520 pl_exec.c:5611 +#: pl_exec.c:6636 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "в записи \"%s\" нет поля \"%s\"" -#: pl_comp.c:1808 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "переменная \"%s\" не существует" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "столбец \"%s\" в таблице \"%s\" не существует" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "отношение \"%s\" не существует" -#: pl_comp.c:1815 pl_comp.c:1857 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "отношение \"%s\" не имеет составного типа" -#: pl_comp.c:1923 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "переменная \"%s\" имеет псевдотип %s" -#: pl_comp.c:2112 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" является пустышкой" -#: pl_comp.c:2194 pl_exec.c:6925 +#: pl_comp.c:2157 pl_exec.c:6937 #, c-format msgid "type %s is not composite" msgstr "тип %s не является составным" -#: pl_comp.c:2242 pl_comp.c:2295 +#: pl_comp.c:2193 +#, c-format +msgid "could not find array type for data type %s" +msgstr "тип массива для типа данных %s не найден" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "нераспознанное условие исключения \"%s\"" -#: pl_comp.c:2524 +#: pl_comp.c:2514 #, c-format msgid "" "could not determine actual argument type for polymorphic function \"%s\"" @@ -122,57 +137,57 @@ msgstr "" "не удалось определить фактический тип аргумента для полиморфной функции " "\"%s\"" -#: pl_exec.c:511 pl_exec.c:950 pl_exec.c:1185 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "в процессе инициализации состояния выполнения" -#: pl_exec.c:517 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "при сохранении аргументов вызова в локальных переменных" -#: pl_exec.c:605 pl_exec.c:1023 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "при входе в функцию" -#: pl_exec.c:628 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "конец функции достигнут без RETURN" -#: pl_exec.c:634 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "при приведении возвращаемого значения к типу результата функции" -#: pl_exec.c:646 pl_exec.c:3681 +#: pl_exec.c:647 pl_exec.c:3683 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "функция, возвращающая множество, вызвана в контексте, где ему нет места" -#: pl_exec.c:651 pl_exec.c:3687 +#: pl_exec.c:652 pl_exec.c:3689 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "требуется режим материализации, но он недопустим в этом контексте" -#: pl_exec.c:778 pl_exec.c:1049 pl_exec.c:1207 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "при выходе из функции" -#: pl_exec.c:833 pl_exec.c:897 pl_exec.c:3480 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3482 msgid "returned record type does not match expected record type" msgstr "возвращаемый тип записи не соответствует ожидаемому" -#: pl_exec.c:1046 pl_exec.c:1204 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "конец триггерной процедуры достигнут без RETURN" -#: pl_exec.c:1054 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "триггерная процедура не может возвращать множество" -#: pl_exec.c:1093 pl_exec.c:1121 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "" "returned row structure does not match the structure of the triggering table" msgstr "" @@ -182,7 +197,7 @@ msgstr "" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1262 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "функция PL/pgSQL %s, строка %d, %s" @@ -190,35 +205,35 @@ msgstr "функция PL/pgSQL %s, строка %d, %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1273 +#: pl_exec.c:1274 #, 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:1281 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "функция PL/pgSQL %s, строка %d, оператор %s" -#: pl_exec.c:1287 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "функция PL/pgSQL %s" -#: pl_exec.c:1658 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "при инициализации локальной переменной в блоке операторов" -#: pl_exec.c:1763 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "при входе в блок операторов" -#: pl_exec.c:1795 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "при выходе из блока операторов" -#: pl_exec.c:1833 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "при очистке после исключения" @@ -240,199 +255,199 @@ msgstr "" "параметр процедуры %d является выходным, но соответствующий аргумент не " "допускает запись" -#: pl_exec.c:2409 +#: pl_exec.c:2411 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "" "GET STACKED DIAGNOSTICS нельзя использовать вне блока обработчика исключения" -#: pl_exec.c:2615 +#: pl_exec.c:2617 #, c-format msgid "case not found" msgstr "неправильный CASE" -#: pl_exec.c:2616 +#: pl_exec.c:2618 #, c-format msgid "CASE statement is missing ELSE part." msgstr "В операторе CASE не хватает части ELSE." -#: pl_exec.c:2709 +#: pl_exec.c:2711 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "нижняя граница цикла FOR не может быть равна NULL" -#: pl_exec.c:2725 +#: pl_exec.c:2727 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "верхняя граница цикла FOR не может быть равна NULL" -#: pl_exec.c:2743 +#: pl_exec.c:2745 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "значение BY в цикле FOR не может быть равно NULL" -#: pl_exec.c:2749 +#: pl_exec.c:2751 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "значение BY в цикле FOR должно быть больше нуля" -#: pl_exec.c:2883 pl_exec.c:4688 +#: pl_exec.c:2885 pl_exec.c:4693 #, c-format msgid "cursor \"%s\" already in use" msgstr "курсор \"%s\" уже используется" -#: pl_exec.c:2906 pl_exec.c:4758 +#: pl_exec.c:2908 pl_exec.c:4763 #, c-format msgid "arguments given for cursor without arguments" msgstr "курсору без аргументов были переданы аргументы" -#: pl_exec.c:2925 pl_exec.c:4777 +#: pl_exec.c:2927 pl_exec.c:4782 #, c-format msgid "arguments required for cursor" msgstr "курсору требуются аргументы" -#: pl_exec.c:3016 +#: pl_exec.c:3018 #, c-format msgid "FOREACH expression must not be null" msgstr "выражение FOREACH не может быть равно NULL" -#: pl_exec.c:3031 +#: pl_exec.c:3033 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "выражение в FOREACH должно быть массивом, но не типом %s" -#: pl_exec.c:3048 +#: pl_exec.c:3050 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "размерность среза (%d) вне допустимого диапазона 0..%d" -#: pl_exec.c:3075 +#: pl_exec.c:3077 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "переменная цикла FOREACH ... SLICE должна быть массивом" -#: pl_exec.c:3079 +#: pl_exec.c:3081 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "переменная цикла FOREACH не должна быть массивом" -#: pl_exec.c:3241 pl_exec.c:3298 pl_exec.c:3473 +#: pl_exec.c:3243 pl_exec.c:3300 pl_exec.c:3475 #, c-format msgid "" "cannot return non-composite value from function returning composite type" msgstr "" "функция, возвращающая составной тип, не может вернуть несоставное значение" -#: pl_exec.c:3337 pl_gram.y:3350 +#: pl_exec.c:3339 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "" "RETURN NEXT можно использовать только в функциях, возвращающих множества" -#: pl_exec.c:3378 pl_exec.c:3510 +#: pl_exec.c:3380 pl_exec.c:3512 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "в RETURN NEXT передан неправильный тип результата" -#: pl_exec.c:3416 pl_exec.c:3437 +#: pl_exec.c:3418 pl_exec.c:3439 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "в RETURN NEXT передан неправильный тип записи" -#: pl_exec.c:3529 +#: pl_exec.c:3531 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "у оператора RETURN NEXT должен быть параметр" -#: pl_exec.c:3557 pl_gram.y:3414 +#: pl_exec.c:3559 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "" "RETURN QUERY можно использовать только в функциях, возвращающих множества" -#: pl_exec.c:3575 +#: pl_exec.c:3577 msgid "structure of query does not match function result type" msgstr "структура запроса не соответствует типу результата функции" -#: pl_exec.c:3630 pl_exec.c:4465 pl_exec.c:8724 +#: pl_exec.c:3632 pl_exec.c:4469 pl_exec.c:8759 #, c-format msgid "query string argument of EXECUTE is null" msgstr "в качестве текста запроса в EXECUTE передан NULL" -#: pl_exec.c:3715 pl_exec.c:3853 +#: pl_exec.c:3717 pl_exec.c:3855 #, c-format msgid "RAISE option already specified: %s" msgstr "этот параметр RAISE уже указан: %s" -#: pl_exec.c:3749 +#: pl_exec.c:3751 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "" "RAISE без параметров нельзя использовать вне блока обработчика исключения" -#: pl_exec.c:3843 +#: pl_exec.c:3845 #, c-format msgid "RAISE statement option cannot be null" msgstr "параметром оператора RAISE не может быть NULL" -#: pl_exec.c:3913 +#: pl_exec.c:3915 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3968 +#: pl_exec.c:3970 #, c-format msgid "assertion failed" msgstr "нарушение истинности" -#: pl_exec.c:4338 pl_exec.c:4527 +#: pl_exec.c:4342 pl_exec.c:4532 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "в PL/pgSQL нельзя выполнить COPY с участием клиента" -#: pl_exec.c:4344 +#: pl_exec.c:4348 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "неподдерживаемая транзакционная команда в PL/pgSQL" -#: pl_exec.c:4367 pl_exec.c:4556 +#: pl_exec.c:4371 pl_exec.c:4561 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO с командой не может возвращать данные" -#: pl_exec.c:4390 pl_exec.c:4579 +#: pl_exec.c:4394 pl_exec.c:4584 #, c-format msgid "query returned no rows" msgstr "запрос не вернул строк" -#: pl_exec.c:4412 pl_exec.c:4598 pl_exec.c:5750 +#: pl_exec.c:4416 pl_exec.c:4603 pl_exec.c:5755 #, c-format msgid "query returned more than one row" msgstr "запрос вернул несколько строк" -#: pl_exec.c:4414 +#: pl_exec.c:4418 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "" "Измените запрос, чтобы он выбирал одну строку, или используйте LIMIT 1." -#: pl_exec.c:4430 +#: pl_exec.c:4434 #, c-format msgid "query has no destination for result data" msgstr "в запросе нет назначения для данных результата" -#: pl_exec.c:4431 +#: pl_exec.c:4435 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Если вам нужно отбросить результаты SELECT, используйте PERFORM." -#: pl_exec.c:4519 +#: pl_exec.c:4524 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "возможность выполнения SELECT ... INTO в EXECUTE не реализована" # skip-rule: space-before-ellipsis -#: pl_exec.c:4520 +#: pl_exec.c:4525 #, c-format msgid "" "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS " @@ -441,57 +456,57 @@ msgstr "" "Альтернативой может стать EXECUTE ... INTO или EXECUTE CREATE TABLE ... " "AS ..." -#: pl_exec.c:4533 +#: pl_exec.c:4538 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE с транзакционными командами не поддерживается" -#: pl_exec.c:4843 pl_exec.c:4931 +#: pl_exec.c:4848 pl_exec.c:4936 #, c-format msgid "cursor variable \"%s\" is null" msgstr "переменная курсора \"%s\" равна NULL" -#: pl_exec.c:4854 pl_exec.c:4942 +#: pl_exec.c:4859 pl_exec.c:4947 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не существует" -#: pl_exec.c:4867 +#: pl_exec.c:4872 #, c-format msgid "relative or absolute cursor position is null" msgstr "относительная или абсолютная позиция курсора равна NULL" -#: pl_exec.c:5105 pl_exec.c:5200 +#: pl_exec.c:5110 pl_exec.c:5205 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "значение NULL нельзя присвоить переменной \"%s\", объявленной NOT NULL" -#: pl_exec.c:5181 +#: pl_exec.c:5186 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "переменной типа кортеж можно присвоить только составное значение" -#: pl_exec.c:5213 +#: pl_exec.c:5218 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "переменной типа запись можно присвоить только составное значение" -#: pl_exec.c:5264 +#: pl_exec.c:5269 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "присвоить значение системному столбцу \"%s\" нельзя" -#: pl_exec.c:5713 +#: pl_exec.c:5718 #, c-format msgid "query did not return data" msgstr "запрос не вернул данные" -#: pl_exec.c:5714 pl_exec.c:5726 pl_exec.c:5751 pl_exec.c:5827 pl_exec.c:5832 +#: pl_exec.c:5719 pl_exec.c:5731 pl_exec.c:5756 pl_exec.c:5832 pl_exec.c:5837 #, c-format msgid "query: %s" msgstr "запрос: %s" -#: pl_exec.c:5722 +#: pl_exec.c:5727 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" @@ -499,17 +514,17 @@ msgstr[0] "запрос вернул %d столбец" msgstr[1] "запрос вернул %d столбца" msgstr[2] "запрос вернул %d столбцов" -#: pl_exec.c:5826 +#: pl_exec.c:5831 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "запрос - не просто SELECT, а SELECT INTO" -#: pl_exec.c:5831 +#: pl_exec.c:5836 #, c-format msgid "query is not a SELECT" msgstr "запрос - не SELECT" -#: pl_exec.c:6638 pl_exec.c:6678 pl_exec.c:6718 +#: pl_exec.c:6650 pl_exec.c:6690 pl_exec.c:6730 #, c-format msgid "" "type of parameter %d (%s) does not match that when preparing the plan (%s)" @@ -517,35 +532,35 @@ msgstr "" "тип параметра %d (%s) не соответствует тому, с которым подготавливался план " "(%s)" -#: pl_exec.c:7129 pl_exec.c:7163 pl_exec.c:7237 pl_exec.c:7263 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, 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:7131 pl_exec.c:7165 pl_exec.c:7239 pl_exec.c:7265 +#: pl_exec.c:7143 pl_exec.c:7177 pl_exec.c:7251 pl_exec.c:7277 #, c-format msgid "%s check of %s is active." msgstr "Включена проверка %s (с %s)." -#: pl_exec.c:7135 pl_exec.c:7169 pl_exec.c:7243 pl_exec.c:7269 +#: pl_exec.c:7147 pl_exec.c:7181 pl_exec.c:7255 pl_exec.c:7281 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "" "Измените запрос, чтобы он возвращал в точности требуемый список столбцов." -#: pl_exec.c:7656 +#: pl_exec.c:7668 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "записи \"%s\" не присвоено значение" -#: pl_exec.c:7657 +#: pl_exec.c:7669 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "" "Для записи, которой не присвоено значение, структура кортежа не определена." -#: pl_exec.c:8322 pl_gram.y:3473 +#: pl_exec.c:8357 pl_gram.y:3498 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "переменная \"%s\" объявлена как CONSTANT" @@ -599,11 +614,6 @@ msgstr "" "у переменной \"%s\" должно быть значение по умолчанию, так как она объявлена " "как NOT NULL" -#: pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "переменная \"%s\" не существует" - #: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "повторяющееся объявление" @@ -613,26 +623,26 @@ msgstr "повторяющееся объявление" msgid "variable \"%s\" shadows a previously defined variable" msgstr "переменная \"%s\" скрывает ранее определённую переменную" -#: pl_gram.y:1016 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "команда GET STACKED DIAGNOSTICS не принимает элемент %s" -#: pl_gram.y:1034 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "команда GET CURRENT DIAGNOSTICS не принимает элемент %s" -#: pl_gram.y:1132 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "нераспознанный элемент GET DIAGNOSTICS" -#: pl_gram.y:1148 pl_gram.y:3589 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" - не скалярная переменная" -#: pl_gram.y:1378 pl_gram.y:1571 +#: pl_gram.y:1379 pl_gram.y:1572 #, c-format msgid "" "loop variable of loop over rows must be a record variable or list of scalar " @@ -641,229 +651,233 @@ msgstr "" "переменная цикла по кортежам должна быть переменной типа запись или списком " "скалярных переменных" -#: pl_gram.y:1413 +#: pl_gram.y:1414 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "в цикле FOR с курсором должна быть только одна переменная" -#: pl_gram.y:1420 +#: pl_gram.y:1421 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "" "в цикле FOR с курсором должен использоваться курсор, привязанный к запросу" -#: pl_gram.y:1510 +#: pl_gram.y:1511 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "в целочисленном цикле FOR должна быть только одна переменная" -#: pl_gram.y:1544 +#: pl_gram.y:1545 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "в цикле FOR с запросом нельзя указать REVERSE" -#: pl_gram.y:1674 +#: pl_gram.y:1675 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "" "переменной цикла FOREACH должна быть известная переменная или список " "переменных" -#: pl_gram.y:1716 +#: pl_gram.y:1717 #, c-format msgid "" "there is no label \"%s\" attached to any block or loop enclosing this " "statement" msgstr "в блоке или цикле, окружающем этот оператор, нет метки \"%s\"" -#: pl_gram.y:1724 +#: pl_gram.y:1725 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "метку блока \"%s\" нельзя использовать в CONTINUE" -#: pl_gram.y:1739 +#: pl_gram.y:1740 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT можно использовать вне цикла только с указанием метки" -#: pl_gram.y:1740 +#: pl_gram.y:1741 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE нельзя использовать вне цикла" -#: pl_gram.y:1764 pl_gram.y:1802 pl_gram.y:1850 pl_gram.y:3036 pl_gram.y:3124 -#: pl_gram.y:3235 pl_gram.y:3984 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "неожиданный конец определения функции" -#: pl_gram.y:1870 pl_gram.y:1894 pl_gram.y:1910 pl_gram.y:1916 pl_gram.y:2041 -#: pl_gram.y:2049 pl_gram.y:2063 pl_gram.y:2158 pl_gram.y:2382 pl_gram.y:2472 -#: pl_gram.y:2631 pl_gram.y:3831 pl_gram.y:3892 pl_gram.y:3965 +#: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 +#: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "ошибка синтаксиса" -#: pl_gram.y:1898 pl_gram.y:1900 pl_gram.y:2386 pl_gram.y:2388 +#: pl_gram.y:1899 pl_gram.y:1901 pl_gram.y:2387 pl_gram.y:2389 msgid "invalid SQLSTATE code" msgstr "неверный код SQLSTATE" -#: pl_gram.y:2106 +#: pl_gram.y:2107 msgid "syntax error, expected \"FOR\"" msgstr "ошибка синтаксиса, ожидался \"FOR\"" -#: pl_gram.y:2167 +#: pl_gram.y:2168 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "оператор FETCH не может вернуть несколько строк" -#: pl_gram.y:2264 +#: pl_gram.y:2265 #, c-format msgid "cursor variable must be a simple variable" msgstr "переменная-курсор должна быть простой переменной" -#: pl_gram.y:2270 +#: pl_gram.y:2271 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "переменная \"%s\" должна быть типа cursor или refcursor" -#: pl_gram.y:2602 pl_gram.y:2613 +#: pl_gram.y:2603 pl_gram.y:2614 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" - не известная переменная" -#: pl_gram.y:2718 pl_gram.y:2728 pl_gram.y:2886 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "непарные скобки" -#: pl_gram.y:2732 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "отсутствует \"%s\" в конце выражения SQL" -#: pl_gram.y:2738 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "отсутствует \"%s\" в конце оператора SQL" -#: pl_gram.y:2757 +#: pl_gram.y:2758 msgid "missing expression" msgstr "отсутствует выражение" -#: pl_gram.y:2759 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "отсутствует оператор SQL" -#: pl_gram.y:2888 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "ошибка синтаксиса, ожидалась \"]\"" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "неполное определение типа данных" -#: pl_gram.y:2911 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "отсутствует определение типа данных" -#: pl_gram.y:3046 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO указано неоднократно" -#: pl_gram.y:3216 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "ожидалось FROM или IN" -#: pl_gram.y:3277 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "в функции, возвращающей множество, RETURN должен быть без параметров" -#: pl_gram.y:3278 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Используйте RETURN NEXT или RETURN QUERY." -#: pl_gram.y:3288 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "в процедуре RETURN должен быть без параметров" -#: pl_gram.y:3293 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "в функции, не возвращающей ничего, RETURN не должен иметь параметров" -#: pl_gram.y:3302 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN должен быть без параметров в функции с параметрами OUT" -#: pl_gram.y:3365 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT должен быть без параметров в функции с параметрами OUT" -#: pl_gram.y:3531 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "" "переменная типа запись не может быть частью списка INTO с несколькими " "элементами" -#: pl_gram.y:3577 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "указано слишком много переменных INTO" -#: pl_gram.y:3785 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "конечная метка \"%s\" указана для непомеченного блока" -#: pl_gram.y:3792 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "конечная метка \"%s\" отличается от метки блока \"%s\"" -#: pl_gram.y:3826 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "курсор \"%s\" не имеет аргументов" -#: pl_gram.y:3840 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "курсор \"%s\" имеет аргументы" -#: pl_gram.y:3882 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "курсор \"%s\" не имеет аргумента \"%s\"" -#: pl_gram.y:3902 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "значение параметра \"%s\" курсора \"%s\" указано неоднократно" -#: pl_gram.y:3923 +#: pl_gram.y:3948 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "недостаточно аргументов для курсора \"%s\"" -#: pl_gram.y:3930 +#: pl_gram.y:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "слишком много аргументов для курсора \"%s\"" -#: pl_gram.y:4016 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "нераспознанный параметр оператора RAISE" -#: pl_gram.y:4020 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "ошибка синтаксиса, ожидалось \"=\"" -#: pl_gram.y:4061 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "слишком много параметров для RAISE" -#: pl_gram.y:4065 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "недостаточно параметров для RAISE" diff --git a/src/pl/plpgsql/src/po/sv.po b/src/pl/plpgsql/src/po/sv.po index 4ba613826a826..9f78dd5633e80 100644 --- a/src/pl/plpgsql/src/po/sv.po +++ b/src/pl/plpgsql/src/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 13:39+0000\n" -"PO-Revision-Date: 2023-03-09 22:40+0100\n" +"POT-Creation-Date: 2024-07-12 17:39+0000\n" +"PO-Revision-Date: 2024-07-12 22:07+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,159 +17,174 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: pl_comp.c:438 pl_handler.c:496 +#: pl_comp.c:434 pl_handler.c:496 #, c-format msgid "PL/pgSQL functions cannot accept type %s" msgstr "PL/pgSQL-funktioner kan inte acceptera typ %s" -#: pl_comp.c:530 +#: pl_comp.c:526 #, c-format msgid "could not determine actual return type for polymorphic function \"%s\"" msgstr "kunde inte bestämma aktuell returtyp för polymorfisk funktion \"%s\"" -#: pl_comp.c:560 +#: pl_comp.c:556 #, c-format msgid "trigger functions can only be called as triggers" msgstr "triggerfunktioner kan bara anropas som triggrar" -#: pl_comp.c:564 pl_handler.c:480 +#: pl_comp.c:560 pl_handler.c:480 #, c-format msgid "PL/pgSQL functions cannot return type %s" msgstr "PL/pgSQL-funktioner kan inte returnera typ %s" -#: pl_comp.c:604 +#: pl_comp.c:600 #, c-format msgid "trigger functions cannot have declared arguments" msgstr "triggerfunktioner kan inte ha deklarerade argument" -#: pl_comp.c:605 +#: pl_comp.c:601 #, c-format msgid "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV instead." msgstr "Argumenten till triggern kan accessas via TG_NARGS och TG_ARGV istället." -#: pl_comp.c:738 +#: pl_comp.c:734 #, c-format msgid "event trigger functions cannot have declared arguments" msgstr "händelsetriggerfunktioner kan inte ha deklarerade argument" -#: pl_comp.c:1002 +#: pl_comp.c:998 #, c-format msgid "compilation of PL/pgSQL function \"%s\" near line %d" msgstr "kompilering av PL/pgSQL-funktion \"%s\" nära rad %d" -#: pl_comp.c:1025 +#: pl_comp.c:1021 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "parameternamn \"%s\" angivet mer än en gång" -#: pl_comp.c:1139 +#: pl_comp.c:1135 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "kolumnreferens \"%s\" är tvetydig" -#: pl_comp.c:1141 +#: pl_comp.c:1137 #, 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:1324 pl_exec.c:5216 pl_exec.c:5389 pl_exec.c:5476 pl_exec.c:5567 -#: pl_exec.c:6588 +#: pl_comp.c:1314 pl_exec.c:5258 pl_exec.c:5431 pl_exec.c:5518 pl_exec.c:5609 +#: pl_exec.c:6634 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "post \"%s\" saknar fält \"%s\"" -#: pl_comp.c:1818 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "variabel \"%s\" finns inte" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "kolumn \"%s\" i relation \"%s\" existerar inte" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "relationen \"%s\" existerar inte" -#: pl_comp.c:1825 pl_comp.c:1867 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "relationen \"%s\" har inte en composite-typ" -#: pl_comp.c:1933 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "variabel \"%s\" har pseudotyp %s" -#: pl_comp.c:2122 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "typ \"%s\" är bara ett skal" -#: pl_comp.c:2204 pl_exec.c:6889 +#: pl_comp.c:2157 pl_exec.c:6935 #, c-format msgid "type %s is not composite" msgstr "typen %s är inte composite" -#: pl_comp.c:2252 pl_comp.c:2305 +#: pl_comp.c:2193 +#, c-format +msgid "could not find array type for data type %s" +msgstr "kunde inte hitta array-typ för datatyp %s" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "okänt avbrottsvillkor \"%s\"" -#: pl_comp.c:2526 +#: pl_comp.c:2514 #, 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:500 pl_exec.c:939 pl_exec.c:1174 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "unde initiering av körtillstånd" -#: pl_exec.c:506 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "under sparande av anropsargument till lokala variabler" -#: pl_exec.c:594 pl_exec.c:1012 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "under funktionsingången" -#: pl_exec.c:617 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "kontrollen nådde slutet av funktionen utan RETURN" -#: pl_exec.c:623 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "under typomvandling av returvärde till funktionens returtyp" -#: pl_exec.c:635 pl_exec.c:3656 +#: pl_exec.c:647 pl_exec.c:3682 #, 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:640 pl_exec.c:3662 +#: pl_exec.c:652 pl_exec.c:3688 #, 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" -#: pl_exec.c:767 pl_exec.c:1038 pl_exec.c:1196 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "under funktionsavslutning" -#: pl_exec.c:822 pl_exec.c:886 pl_exec.c:3455 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3481 msgid "returned record type does not match expected record type" msgstr "returnerad posttyp matchar inte förväntad posttyp" -#: pl_exec.c:1035 pl_exec.c:1193 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "programflödet nådde slutet på triggerprocedur utan RETURN" -#: pl_exec.c:1043 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "triggerprocedur kan inte returnera en mängd" -#: pl_exec.c:1082 pl_exec.c:1110 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "returned row structure does not match the structure of the triggering table" msgstr "returnerad radstruktur matchar inte strukturen på triggad tabell" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1251 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "PL/pgSQL-funktion %s rad %d %s" @@ -177,335 +192,340 @@ msgstr "PL/pgSQL-funktion %s rad %d %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1262 +#: pl_exec.c:1274 #, 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:1270 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "PL/pgSQL-funktion %s rad %d vid %s" -#: pl_exec.c:1276 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "PL/pgSQL-funktion %s" -#: pl_exec.c:1647 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "under initiering av lokala variabler i satsblock" -#: pl_exec.c:1752 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "under ingång till satsblock" -#: pl_exec.c:1784 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "under satsblockavslutning" -#: pl_exec.c:1822 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "under avbrottsuppstädning" -#: pl_exec.c:2355 +#: pl_exec.c:2371 #, 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:2360 +#: pl_exec.c:2376 #, 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:2394 +#: pl_exec.c:2410 #, 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:2594 +#: pl_exec.c:2616 #, c-format msgid "case not found" msgstr "hittade inte alternativ" -#: pl_exec.c:2595 +#: pl_exec.c:2617 #, c-format msgid "CASE statement is missing ELSE part." msgstr "CASE-sats saknar ELSE-del." -#: pl_exec.c:2688 +#: 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:2704 +#: 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:2722 +#: 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:2728 +#: 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:2862 pl_exec.c:4658 +#: pl_exec.c:2884 pl_exec.c:4691 #, c-format msgid "cursor \"%s\" already in use" msgstr "markören \"%s\" används redan" -#: pl_exec.c:2885 pl_exec.c:4723 +#: pl_exec.c:2907 pl_exec.c:4761 #, c-format msgid "arguments given for cursor without arguments" msgstr "argument angivna till markör utan argumnet" -#: pl_exec.c:2904 pl_exec.c:4742 +#: pl_exec.c:2926 pl_exec.c:4780 #, c-format msgid "arguments required for cursor" msgstr "argument krävs för markör" -#: pl_exec.c:2991 +#: pl_exec.c:3017 #, c-format msgid "FOREACH expression must not be null" msgstr "FOREACH-uttryck får inte vara null" -#: pl_exec.c:3006 +#: pl_exec.c:3032 #, 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:3023 +#: pl_exec.c:3049 #, 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:3050 +#: pl_exec.c:3076 #, 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:3054 +#: pl_exec.c:3080 #, 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:3216 pl_exec.c:3273 pl_exec.c:3448 +#: pl_exec.c:3242 pl_exec.c:3299 pl_exec.c:3474 #, 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:3312 pl_gram.y:3318 +#: pl_exec.c:3338 pl_gram.y:3375 #, 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:3353 pl_exec.c:3485 +#: pl_exec.c:3379 pl_exec.c:3511 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "fel resultattyp given i RETURN NEXT" -#: pl_exec.c:3391 pl_exec.c:3412 +#: pl_exec.c:3417 pl_exec.c:3438 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "fel posttyp given i RETURN NEXT" -#: pl_exec.c:3504 +#: pl_exec.c:3530 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT måste ha en parameter" -#: pl_exec.c:3532 pl_gram.y:3382 +#: pl_exec.c:3558 pl_gram.y:3439 #, 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:3550 +#: 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:3605 pl_exec.c:4435 pl_exec.c:8630 +#: pl_exec.c:3631 pl_exec.c:4467 pl_exec.c:8757 #, c-format msgid "query string argument of EXECUTE is null" msgstr "frågesträngargumentet till EXECUTE är null" -#: pl_exec.c:3690 pl_exec.c:3828 +#: pl_exec.c:3716 pl_exec.c:3854 #, c-format msgid "RAISE option already specified: %s" msgstr "RAISE-flagga redan angiven: %s" -#: pl_exec.c:3724 +#: pl_exec.c:3750 #, 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:3818 +#: pl_exec.c:3844 #, c-format msgid "RAISE statement option cannot be null" msgstr "RAISE-satsens flagga får inte vare null" -#: pl_exec.c:3888 +#: pl_exec.c:3914 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3943 +#: pl_exec.c:3969 #, c-format msgid "assertion failed" msgstr "assert misslyckades" -#: pl_exec.c:4308 pl_exec.c:4497 +#: pl_exec.c:4340 pl_exec.c:4530 #, 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:4314 +#: pl_exec.c:4346 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "transaktionskommando saknar stöd i PL/pgSQL" -#: pl_exec.c:4337 pl_exec.c:4526 +#: pl_exec.c:4369 pl_exec.c:4559 #, 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:4360 pl_exec.c:4549 +#: pl_exec.c:4392 pl_exec.c:4582 #, c-format msgid "query returned no rows" msgstr "frågan returnerade inga rader" -#: pl_exec.c:4382 pl_exec.c:4568 pl_exec.c:5711 +#: pl_exec.c:4414 pl_exec.c:4601 pl_exec.c:5753 #, c-format msgid "query returned more than one row" msgstr "frågan returnerade mer än en rad" -#: pl_exec.c:4384 +#: pl_exec.c:4416 #, 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:4400 +#: pl_exec.c:4432 #, c-format msgid "query has no destination for result data" msgstr "frågan har ingen destination för resultatdatan" -#: pl_exec.c:4401 +#: pl_exec.c:4433 #, 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:4489 +#: pl_exec.c:4522 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "EXECUTE för SELECT ... INTO är inte implementerad" -#: pl_exec.c:4490 +#: pl_exec.c:4523 #, 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:4503 +#: pl_exec.c:4536 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE på transaktionskommanon är inte implementerat" -#: pl_exec.c:4804 pl_exec.c:4892 +#: pl_exec.c:4846 pl_exec.c:4934 #, c-format msgid "cursor variable \"%s\" is null" msgstr "markörvariabel \"%s\" är null" -#: pl_exec.c:4815 pl_exec.c:4903 +#: pl_exec.c:4857 pl_exec.c:4945 #, c-format msgid "cursor \"%s\" does not exist" msgstr "markör \"%s\" existerar inte" -#: pl_exec.c:4828 +#: pl_exec.c:4870 #, c-format msgid "relative or absolute cursor position is null" msgstr "relativ eller absolut markörposition är null" -#: pl_exec.c:5066 pl_exec.c:5161 +#: pl_exec.c:5108 pl_exec.c:5203 #, 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:5142 +#: pl_exec.c:5184 #, 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:5174 +#: pl_exec.c:5216 #, 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:5225 +#: pl_exec.c:5267 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "kan inte skriva till systemkolumn \"%s\"" -#: pl_exec.c:5674 +#: pl_exec.c:5716 #, c-format msgid "query did not return data" msgstr "frågan returnerade ingen data" -#: pl_exec.c:5675 pl_exec.c:5687 pl_exec.c:5712 pl_exec.c:5788 pl_exec.c:5793 +#: pl_exec.c:5717 pl_exec.c:5729 pl_exec.c:5754 pl_exec.c:5830 pl_exec.c:5835 #, c-format msgid "query: %s" msgstr "fråga: %s" -#: pl_exec.c:5683 +#: pl_exec.c:5725 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" msgstr[0] "frågan returnerade %d kolumn" msgstr[1] "frågan returnerade %d kolumner" -#: pl_exec.c:5787 +#: pl_exec.c:5829 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "frågan är SELECT INTO men skall vara en vanlig SELECT" -#: pl_exec.c:5792 +#: pl_exec.c:5834 #, c-format msgid "query is not a SELECT" msgstr "frågan är inte en SELECT" -#: pl_exec.c:6602 pl_exec.c:6642 pl_exec.c:6682 +#: pl_exec.c:6648 pl_exec.c:6688 pl_exec.c:6728 #, 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:7093 pl_exec.c:7127 pl_exec.c:7201 pl_exec.c:7227 +#: pl_exec.c:7139 pl_exec.c:7173 pl_exec.c:7247 pl_exec.c:7273 #, 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:7095 pl_exec.c:7129 pl_exec.c:7203 pl_exec.c:7229 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, c-format msgid "%s check of %s is active." msgstr "%s kontroll av %s är aktiv." -#: pl_exec.c:7099 pl_exec.c:7133 pl_exec.c:7207 pl_exec.c:7233 +#: pl_exec.c:7145 pl_exec.c:7179 pl_exec.c:7253 pl_exec.c:7279 #, 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:7620 +#: pl_exec.c:7666 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "posten \"%s\" är inte tilldelad än" -#: pl_exec.c:7621 +#: pl_exec.c:7667 #, 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." +#: pl_exec.c:8355 pl_gram.y:3498 +#, c-format +msgid "variable \"%s\" is declared CONSTANT" +msgstr "variabel \"%s\" är deklarerad CONSTANT" + #: pl_funcs.c:237 msgid "statement block" msgstr "satsblock" @@ -538,280 +558,274 @@ msgstr "SQL-sats" msgid "FOR over EXECUTE statement" msgstr "FOR över EXECUTE-sats" -#: pl_gram.y:486 +#: pl_gram.y:485 #, c-format msgid "block label must be placed before DECLARE, not after" msgstr "blocketikett måste anges före DECLARE, inte efter" -#: pl_gram.y:506 +#: pl_gram.y:505 #, c-format msgid "collations are not supported by type %s" msgstr "jämförelser stöds inte för typ %s" -#: pl_gram.y:525 +#: pl_gram.y:524 #, c-format msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "variabel \"%s\" måste ha ett default-värde då det inte deklarerats som NOT NULL" -#: pl_gram.y:673 pl_gram.y:688 pl_gram.y:714 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "variabel \"%s\" finns inte" - -#: pl_gram.y:732 pl_gram.y:760 +#: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "duplicerad deklaration" -#: pl_gram.y:743 pl_gram.y:771 +#: pl_gram.y:715 pl_gram.y:743 #, c-format msgid "variable \"%s\" shadows a previously defined variable" msgstr "variabeln \"%s\" döljer en tidigare definierad variabel" -#: pl_gram.y:1043 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "diagnostikdel %s tillåts inte i GET STACKED DIAGNOSTICS" -#: pl_gram.y:1061 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "diagnostikdel %s tillåts inte i GET CURRENT DIAGNOSTICS" -#: pl_gram.y:1156 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "okänd GET DIAGNOSTICS-del" -#: pl_gram.y:1172 pl_gram.y:3557 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" är inte ett skalärt värde" -#: pl_gram.y:1402 pl_gram.y:1596 +#: pl_gram.y:1379 pl_gram.y:1572 #, 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:1437 +#: pl_gram.y:1414 #, 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:1444 +#: pl_gram.y:1421 #, 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:1535 +#: pl_gram.y:1511 #, 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:1569 +#: pl_gram.y:1545 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "kan inte ange REVERSE i fråge-FOR-loop" -#: pl_gram.y:1699 +#: pl_gram.y:1675 #, 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:1741 +#: pl_gram.y:1717 #, 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:1749 +#: pl_gram.y:1725 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "blocketikett \"%s\" kan inte användas i CONTINUE" -#: pl_gram.y:1764 +#: pl_gram.y:1740 #, 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:1765 +#: pl_gram.y:1741 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE kan inte användas utanför en loop" -#: pl_gram.y:1789 pl_gram.y:1827 pl_gram.y:1875 pl_gram.y:3004 pl_gram.y:3092 -#: pl_gram.y:3203 pl_gram.y:3956 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "oväntat slut på funktionsdefinitionen" -#: pl_gram.y:1895 pl_gram.y:1919 pl_gram.y:1935 pl_gram.y:1941 pl_gram.y:2066 -#: pl_gram.y:2074 pl_gram.y:2088 pl_gram.y:2183 pl_gram.y:2407 pl_gram.y:2497 -#: pl_gram.y:2655 pl_gram.y:3799 pl_gram.y:3860 pl_gram.y:3937 +#: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 +#: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "syntaxfel" -#: pl_gram.y:1923 pl_gram.y:1925 pl_gram.y:2411 pl_gram.y:2413 +#: pl_gram.y:1899 pl_gram.y:1901 pl_gram.y:2387 pl_gram.y:2389 msgid "invalid SQLSTATE code" msgstr "ogiltig SQLSTATE-kod" -#: pl_gram.y:2131 +#: pl_gram.y:2107 msgid "syntax error, expected \"FOR\"" msgstr "syntaxfel, förväntade \"FOR\"" -#: pl_gram.y:2192 +#: pl_gram.y:2168 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "FETCH-sats kan inte returnera multipla rader" -#: pl_gram.y:2289 +#: pl_gram.y:2265 #, c-format msgid "cursor variable must be a simple variable" msgstr "markörvariabel måste vara en enkel variabel" -#: pl_gram.y:2295 +#: pl_gram.y:2271 #, 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:2626 pl_gram.y:2637 +#: pl_gram.y:2603 pl_gram.y:2614 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" är inte en känd variabel" -#: pl_gram.y:2743 pl_gram.y:2753 pl_gram.y:2909 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "missmatchade parenteser" -#: pl_gram.y:2757 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "saknar \"%s\" vid slutet av SQL-uttryck" -#: pl_gram.y:2763 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "saknar \"%s\" vid slutet av SQL-sats" -#: pl_gram.y:2780 +#: pl_gram.y:2758 msgid "missing expression" msgstr "saknar uttryck" -#: pl_gram.y:2782 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "saknars SQL-sats" -#: pl_gram.y:2911 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "syntaxfel, förväntade \"]\"" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "inkomplett datatypdeklaration" -#: pl_gram.y:2934 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "saknar datatypdeklaration" -#: pl_gram.y:3014 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO angiven mer än en gång" -#: pl_gram.y:3184 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "förväntade FROM eller IN" -#: pl_gram.y:3245 +#: pl_gram.y:3302 #, 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:3246 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Använd RETURN NEXT eller RETURN QUERY." -#: pl_gram.y:3256 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "RETURN kan inte ha en parameter i en procedur" -#: pl_gram.y:3261 +#: pl_gram.y:3318 #, 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:3270 +#: pl_gram.y:3327 #, 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:3333 +#: pl_gram.y:3390 #, 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:3441 -#, c-format -msgid "variable \"%s\" is declared CONSTANT" -msgstr "variabel \"%s\" är deklarerad CONSTANT" - -#: pl_gram.y:3499 +#: pl_gram.y:3556 #, 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:3545 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "för många INTO-variabler angivna" -#: pl_gram.y:3753 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "slutetikett \"%s\" angiven för block utan etikett" -#: pl_gram.y:3760 +#: pl_gram.y:3817 #, 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:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "markör \"%s\" har inga argument" -#: pl_gram.y:3808 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "markör \"%s\" har argument" -#: pl_gram.y:3850 +#: pl_gram.y:3907 #, 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:3927 #, 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:3948 #, 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:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "fär många argument för markör \"%s\"" -#: pl_gram.y:3988 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "okänd RAISE-sats-flagga" -#: pl_gram.y:3992 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "syntaxfel, förväntade \"=\"" -#: pl_gram.y:4033 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "för många parametrar angivna för RAISE" -#: pl_gram.y:4037 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "för få parametrar angivna för RAISE" @@ -837,13 +851,13 @@ msgid "List of programming constructs that should produce an error." msgstr "Lista av programmeringskonstruktioner som skall ge ett fel" #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s vid slutet av indatan" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s vid eller nära \"%s\"" diff --git a/src/pl/plpgsql/src/po/uk.po b/src/pl/plpgsql/src/po/uk.po index 77510da01b8ad..044dd5fa4c385 100644 --- a/src/pl/plpgsql/src/po/uk.po +++ b/src/pl/plpgsql/src/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:39+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:09+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,162 +14,177 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/plpgsql.pot\n" -"X-Crowdin-File-ID: 894\n" +"X-Crowdin-File: /REL_17_STABLE/plpgsql.pot\n" +"X-Crowdin-File-ID: 998\n" -#: pl_comp.c:438 pl_handler.c:496 +#: pl_comp.c:434 pl_handler.c:496 #, c-format msgid "PL/pgSQL functions cannot accept type %s" msgstr "Функції PL/pgSQL не можуть приймати тип %s" -#: pl_comp.c:530 +#: pl_comp.c:526 #, c-format msgid "could not determine actual return type for polymorphic function \"%s\"" msgstr "не вдалося визначити фактичний тип результату поліморфної функції \"%s\"" -#: pl_comp.c:560 +#: pl_comp.c:556 #, c-format msgid "trigger functions can only be called as triggers" msgstr "тригер-функція може викликатися лише як тригер" -#: pl_comp.c:564 pl_handler.c:480 +#: pl_comp.c:560 pl_handler.c:480 #, c-format msgid "PL/pgSQL functions cannot return type %s" msgstr "Функції PL/pgSQL не можуть повертати тип %s" -#: pl_comp.c:604 +#: pl_comp.c:600 #, c-format msgid "trigger functions cannot have declared arguments" msgstr "тригер-функції не можуть мати задекларованих аргументи" -#: pl_comp.c:605 +#: pl_comp.c:601 #, c-format msgid "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV instead." msgstr "Аргументи тригеру доступні через TG_NARGS та TG_ARGV замість цього." -#: pl_comp.c:738 +#: pl_comp.c:734 #, c-format msgid "event trigger functions cannot have declared arguments" msgstr "функції тригерів подій не можуть мати задекларовані аргументи" -#: pl_comp.c:1002 +#: pl_comp.c:998 #, c-format msgid "compilation of PL/pgSQL function \"%s\" near line %d" msgstr "компіляція функції PL/pgSQL \"%s\" біля рядка %d" -#: pl_comp.c:1025 +#: pl_comp.c:1021 #, c-format msgid "parameter name \"%s\" used more than once" msgstr "ім'я параметру «%s» використано декілька разів" -#: pl_comp.c:1139 +#: pl_comp.c:1135 #, c-format msgid "column reference \"%s\" is ambiguous" msgstr "посилання на стовпець \"%s\" є неоднозначним" -#: pl_comp.c:1141 +#: pl_comp.c:1137 #, c-format msgid "It could refer to either a PL/pgSQL variable or a table column." msgstr "Це може відноситися до змінної PL/pgSQL або стовпця таблиці." -#: pl_comp.c:1324 pl_exec.c:5234 pl_exec.c:5407 pl_exec.c:5494 pl_exec.c:5585 -#: pl_exec.c:6606 +#: pl_comp.c:1314 pl_exec.c:5260 pl_exec.c:5433 pl_exec.c:5520 pl_exec.c:5611 +#: pl_exec.c:6636 #, c-format msgid "record \"%s\" has no field \"%s\"" msgstr "запис \"%s\" не має поля \"%s\"" -#: pl_comp.c:1818 +#: pl_comp.c:1633 pl_gram.y:645 pl_gram.y:660 pl_gram.y:686 +#, c-format +msgid "variable \"%s\" does not exist" +msgstr "змінної \"%s\" не існує" + +#: pl_comp.c:1722 +#, c-format +msgid "column \"%s\" of relation \"%s\" does not exist" +msgstr "стовпець \"%s\" зв'язку \"%s\" не існує" + +#: pl_comp.c:1775 #, c-format msgid "relation \"%s\" does not exist" msgstr "відношення \"%s\" не існує" -#: pl_comp.c:1825 pl_comp.c:1867 +#: pl_comp.c:1782 pl_comp.c:1820 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "відношення \"%s\" не має складеного типу" -#: pl_comp.c:1933 +#: pl_comp.c:1886 #, c-format msgid "variable \"%s\" has pseudo-type %s" msgstr "змінна \"%s\" має псевдотип %s" -#: pl_comp.c:2122 +#: pl_comp.c:2075 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" є лише оболонкою" -#: pl_comp.c:2204 pl_exec.c:6907 +#: pl_comp.c:2157 pl_exec.c:6937 #, c-format msgid "type %s is not composite" msgstr "тип %s не є складеним" -#: pl_comp.c:2252 pl_comp.c:2305 +#: pl_comp.c:2193 +#, c-format +msgid "could not find array type for data type %s" +msgstr "не вдалося знайти тип масиву для типу даних %s" + +#: pl_comp.c:2232 pl_comp.c:2285 #, c-format msgid "unrecognized exception condition \"%s\"" msgstr "нерозпізнана умова виключення \"%s\"" -#: pl_comp.c:2526 +#: pl_comp.c:2514 #, c-format msgid "could not determine actual argument type for polymorphic function \"%s\"" msgstr "не вдалося визначити фактичний тип аргумента поліморфної функції \"%s\"" -#: pl_exec.c:501 pl_exec.c:940 pl_exec.c:1175 +#: pl_exec.c:512 pl_exec.c:951 pl_exec.c:1186 msgid "during initialization of execution state" msgstr "під час ініціалізації стану виконання" -#: pl_exec.c:507 +#: pl_exec.c:518 msgid "while storing call arguments into local variables" msgstr "під час зберігання аргументів виклику до локальних змінних" -#: pl_exec.c:595 pl_exec.c:1013 +#: pl_exec.c:606 pl_exec.c:1024 msgid "during function entry" msgstr "під час входу до функції" -#: pl_exec.c:618 +#: pl_exec.c:629 #, c-format msgid "control reached end of function without RETURN" msgstr "досягнуто кінця функції без RETURN" -#: pl_exec.c:624 +#: pl_exec.c:635 msgid "while casting return value to function's return type" msgstr "під час приведення значення, що повертається, до типу результата функції" -#: pl_exec.c:636 pl_exec.c:3665 +#: pl_exec.c:647 pl_exec.c:3683 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "функція \"set-valued\" викликана в контексті, де йому немає місця" -#: pl_exec.c:641 pl_exec.c:3671 +#: pl_exec.c:652 pl_exec.c:3689 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "необхідний режим матеріалізації (materialize mode), але він неприпустимий у цьому контексті" -#: pl_exec.c:768 pl_exec.c:1039 pl_exec.c:1197 +#: pl_exec.c:779 pl_exec.c:1050 pl_exec.c:1208 msgid "during function exit" msgstr "під час виходу з функції" -#: pl_exec.c:823 pl_exec.c:887 pl_exec.c:3464 +#: pl_exec.c:834 pl_exec.c:898 pl_exec.c:3482 msgid "returned record type does not match expected record type" msgstr "тип запису, що повертається, не відповідає очікуваному типу" -#: pl_exec.c:1036 pl_exec.c:1194 +#: pl_exec.c:1047 pl_exec.c:1205 #, c-format msgid "control reached end of trigger procedure without RETURN" msgstr "досягнуто кінця тригерної процедури без RETURN" -#: pl_exec.c:1044 +#: pl_exec.c:1055 #, c-format msgid "trigger procedure cannot return a set" msgstr "тригерна процедура не може повернути набір" -#: pl_exec.c:1083 pl_exec.c:1111 +#: pl_exec.c:1094 pl_exec.c:1122 msgid "returned row structure does not match the structure of the triggering table" msgstr "структура рядка, що повертається, не відповідає структурі таблиці, яка викликала тригер" #. translator: last %s is a phrase such as "during statement block #. local variable initialization" #. -#: pl_exec.c:1252 +#: pl_exec.c:1263 #, c-format msgid "PL/pgSQL function %s line %d %s" msgstr "Функція PL/pgSQL %s рядок %d %s" @@ -177,288 +192,288 @@ msgstr "Функція PL/pgSQL %s рядок %d %s" #. translator: last %s is a phrase such as "while storing call #. arguments into local variables" #. -#: pl_exec.c:1263 +#: pl_exec.c:1274 #, 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:1271 +#: pl_exec.c:1282 #, c-format msgid "PL/pgSQL function %s line %d at %s" msgstr "Функція PL/pgSQL %s рядок %d в %s" -#: pl_exec.c:1277 +#: pl_exec.c:1288 #, c-format msgid "PL/pgSQL function %s" msgstr "Функція PL/pgSQL %s" -#: pl_exec.c:1648 +#: pl_exec.c:1659 msgid "during statement block local variable initialization" msgstr "під час ініціалізації локальної змінної в блоці операторів" -#: pl_exec.c:1753 +#: pl_exec.c:1764 msgid "during statement block entry" msgstr "під час входу в блок операторів" -#: pl_exec.c:1785 +#: pl_exec.c:1796 msgid "during statement block exit" msgstr "під час виходу з блоку операторів" -#: pl_exec.c:1823 +#: pl_exec.c:1834 msgid "during exception cleanup" msgstr "під час очищення винятку" -#: pl_exec.c:2360 +#: pl_exec.c:2370 #, c-format msgid "procedure parameter \"%s\" is an output parameter but corresponding argument is not writable" msgstr "параметр процедури \"%s\" є вихідним, але відповідний аргумент не допускає запис" -#: pl_exec.c:2365 +#: pl_exec.c:2375 #, c-format msgid "procedure parameter %d is an output parameter but corresponding argument is not writable" msgstr "параметр процедури %d є вихідним, але відповідний аргумент не допускає запис" -#: pl_exec.c:2399 +#: pl_exec.c:2411 #, c-format msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler" msgstr "GET STACKED DIAGNOSTICS не може використовуватись поза блоком обробника винятків" -#: pl_exec.c:2599 +#: pl_exec.c:2617 #, c-format msgid "case not found" msgstr "гілку не знайдено" -#: pl_exec.c:2600 +#: pl_exec.c:2618 #, c-format msgid "CASE statement is missing ELSE part." msgstr "В операторі CASE пропущено частину ELSE." -#: pl_exec.c:2693 +#: pl_exec.c:2711 #, c-format msgid "lower bound of FOR loop cannot be null" msgstr "нижня границя циклу FOR не може бути null" -#: pl_exec.c:2709 +#: pl_exec.c:2727 #, c-format msgid "upper bound of FOR loop cannot be null" msgstr "верхня границя циклу FOR не може бути null" -#: pl_exec.c:2727 +#: pl_exec.c:2745 #, c-format msgid "BY value of FOR loop cannot be null" msgstr "Значення BY циклу FOR не може бути null" -#: pl_exec.c:2733 +#: pl_exec.c:2751 #, c-format msgid "BY value of FOR loop must be greater than zero" msgstr "Значення BY циклу FOR повинно бути більше нуля" -#: pl_exec.c:2867 pl_exec.c:4667 +#: pl_exec.c:2885 pl_exec.c:4693 #, c-format msgid "cursor \"%s\" already in use" msgstr "курсор \"%s\" вже використовується" -#: pl_exec.c:2890 pl_exec.c:4737 +#: pl_exec.c:2908 pl_exec.c:4763 #, c-format msgid "arguments given for cursor without arguments" msgstr "аргументи, надані курсору без аргументів" -#: pl_exec.c:2909 pl_exec.c:4756 +#: pl_exec.c:2927 pl_exec.c:4782 #, c-format msgid "arguments required for cursor" msgstr "аргументи, необхідні для курсора" -#: pl_exec.c:3000 +#: pl_exec.c:3018 #, c-format msgid "FOREACH expression must not be null" msgstr "Вираз FOREACH не може бути null" -#: pl_exec.c:3015 +#: pl_exec.c:3033 #, c-format msgid "FOREACH expression must yield an array, not type %s" msgstr "Вираз в FOREACH повинен бути масивом, не типом %s" -#: pl_exec.c:3032 +#: pl_exec.c:3050 #, c-format msgid "slice dimension (%d) is out of the valid range 0..%d" msgstr "розмір зрізу (%d) поза припустимим діапазоном 0..%d" -#: pl_exec.c:3059 +#: pl_exec.c:3077 #, c-format msgid "FOREACH ... SLICE loop variable must be of an array type" msgstr "Змінна циклу FOREACH ... SLICE повинна бути масивом" -#: pl_exec.c:3063 +#: pl_exec.c:3081 #, c-format msgid "FOREACH loop variable must not be of an array type" msgstr "Змінна циклу FOREACH не повинна бути масивом" -#: pl_exec.c:3225 pl_exec.c:3282 pl_exec.c:3457 +#: pl_exec.c:3243 pl_exec.c:3300 pl_exec.c:3475 #, c-format msgid "cannot return non-composite value from function returning composite type" msgstr "функція, що повертає складений тип, не може повернути не складене значення" -#: pl_exec.c:3321 pl_gram.y:3319 +#: pl_exec.c:3339 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "не можна використовувати RETURN NEXT в функціях, що не повертають набори даних" -#: pl_exec.c:3362 pl_exec.c:3494 +#: pl_exec.c:3380 pl_exec.c:3512 #, c-format msgid "wrong result type supplied in RETURN NEXT" msgstr "в RETURN NEXT вказано неправильний тип результату" -#: pl_exec.c:3400 pl_exec.c:3421 +#: pl_exec.c:3418 pl_exec.c:3439 #, c-format msgid "wrong record type supplied in RETURN NEXT" msgstr "в RETURN NEXT вказано неправильний тип запису" -#: pl_exec.c:3513 +#: pl_exec.c:3531 #, c-format msgid "RETURN NEXT must have a parameter" msgstr "RETURN NEXT повинен мати параметр" -#: pl_exec.c:3541 pl_gram.y:3383 +#: pl_exec.c:3559 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "не можна використовувати RETURN QUERY в функціях, що не повертають набір" -#: pl_exec.c:3559 +#: pl_exec.c:3577 msgid "structure of query does not match function result type" msgstr "структура запиту не відповідає типу результата функції" -#: pl_exec.c:3614 pl_exec.c:4444 pl_exec.c:8685 +#: pl_exec.c:3632 pl_exec.c:4469 pl_exec.c:8759 #, c-format msgid "query string argument of EXECUTE is null" msgstr "текстовий аргумент запиту EXECUTE є null" -#: pl_exec.c:3699 pl_exec.c:3837 +#: pl_exec.c:3717 pl_exec.c:3855 #, c-format msgid "RAISE option already specified: %s" msgstr "Параметр RAISE вже вказано: %s" -#: pl_exec.c:3733 +#: pl_exec.c:3751 #, c-format msgid "RAISE without parameters cannot be used outside an exception handler" msgstr "RAISE без параметрів не можна використовувати поза блоком обробника винятків" -#: pl_exec.c:3827 +#: pl_exec.c:3845 #, c-format msgid "RAISE statement option cannot be null" msgstr "Параметром оператора RAISE не може бути null" -#: pl_exec.c:3897 +#: pl_exec.c:3915 #, c-format msgid "%s" msgstr "%s" -#: pl_exec.c:3952 +#: pl_exec.c:3970 #, c-format msgid "assertion failed" msgstr "порушення істинності" -#: pl_exec.c:4317 pl_exec.c:4506 +#: pl_exec.c:4342 pl_exec.c:4532 #, c-format msgid "cannot COPY to/from client in PL/pgSQL" msgstr "в PL/pgSQL не можна виконати COPY за участю клієнта" -#: pl_exec.c:4323 +#: pl_exec.c:4348 #, c-format msgid "unsupported transaction command in PL/pgSQL" msgstr "непідтримувана транзакційна команда в PL/pgSQL" -#: pl_exec.c:4346 pl_exec.c:4535 +#: pl_exec.c:4371 pl_exec.c:4561 #, c-format msgid "INTO used with a command that cannot return data" msgstr "INTO використаний з командою, що не може повертати дані" -#: pl_exec.c:4369 pl_exec.c:4558 +#: pl_exec.c:4394 pl_exec.c:4584 #, c-format msgid "query returned no rows" msgstr "запит не повернув рядки" -#: pl_exec.c:4391 pl_exec.c:4577 pl_exec.c:5729 +#: pl_exec.c:4416 pl_exec.c:4603 pl_exec.c:5755 #, c-format msgid "query returned more than one row" msgstr "запит повернув декілька рядків" -#: pl_exec.c:4393 +#: pl_exec.c:4418 #, c-format msgid "Make sure the query returns a single row, or use LIMIT 1." msgstr "Переконайтеся, що запит повертає один рядок, або використовуйте LIMIT 1." -#: pl_exec.c:4409 +#: pl_exec.c:4434 #, c-format msgid "query has no destination for result data" msgstr "запит не має призначення для даних результату" -#: pl_exec.c:4410 +#: pl_exec.c:4435 #, c-format msgid "If you want to discard the results of a SELECT, use PERFORM instead." msgstr "Якщо ви хочете відкинути результати SELECT, використайте PERFORM." -#: pl_exec.c:4498 +#: pl_exec.c:4524 #, c-format msgid "EXECUTE of SELECT ... INTO is not implemented" msgstr "EXECUTE виразу SELECT ... INTO не реалізовано" -#: pl_exec.c:4499 +#: pl_exec.c:4525 #, c-format msgid "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead." msgstr "Альтернативою може стати EXECUTE ... INTO або EXECUTE CREATE TABLE ... AS." -#: pl_exec.c:4512 +#: pl_exec.c:4538 #, c-format msgid "EXECUTE of transaction commands is not implemented" msgstr "EXECUTE з транзакційними командами не реалізовано" -#: pl_exec.c:4822 pl_exec.c:4910 +#: pl_exec.c:4848 pl_exec.c:4936 #, c-format msgid "cursor variable \"%s\" is null" msgstr "змінна курсора \"%s\" дорівнює null" -#: pl_exec.c:4833 pl_exec.c:4921 +#: pl_exec.c:4859 pl_exec.c:4947 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не існує" -#: pl_exec.c:4846 +#: pl_exec.c:4872 #, c-format msgid "relative or absolute cursor position is null" msgstr "відносна або абсолютна позиція курсора дорівнює null" -#: pl_exec.c:5084 pl_exec.c:5179 +#: pl_exec.c:5110 pl_exec.c:5205 #, c-format msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL" msgstr "значення null не можна призначити змінній \"%s\", оголошеній NOT NULL" -#: pl_exec.c:5160 +#: pl_exec.c:5186 #, c-format msgid "cannot assign non-composite value to a row variable" msgstr "змінній типу кортеж можна призначити лише складене значення" -#: pl_exec.c:5192 +#: pl_exec.c:5218 #, c-format msgid "cannot assign non-composite value to a record variable" msgstr "змінній типу запис можна призначити лише складене значення" -#: pl_exec.c:5243 +#: pl_exec.c:5269 #, c-format msgid "cannot assign to system column \"%s\"" msgstr "призначити значення системному стовпцю \"%s\" не можна" -#: pl_exec.c:5692 +#: pl_exec.c:5718 #, c-format msgid "query did not return data" msgstr "запит не повернув даних" -#: pl_exec.c:5693 pl_exec.c:5705 pl_exec.c:5730 pl_exec.c:5806 pl_exec.c:5811 +#: pl_exec.c:5719 pl_exec.c:5731 pl_exec.c:5756 pl_exec.c:5832 pl_exec.c:5837 #, c-format msgid "query: %s" msgstr "запит: %s" -#: pl_exec.c:5701 +#: pl_exec.c:5727 #, c-format msgid "query returned %d column" msgid_plural "query returned %d columns" @@ -467,48 +482,48 @@ msgstr[1] "запит повернув %d колонки" msgstr[2] "запит повернув %d колонок" msgstr[3] "запит повернув %d колонок" -#: pl_exec.c:5805 +#: pl_exec.c:5831 #, c-format msgid "query is SELECT INTO, but it should be plain SELECT" msgstr "запит є SELECT INTO, але має бути звичайним SELECT" -#: pl_exec.c:5810 +#: pl_exec.c:5836 #, c-format msgid "query is not a SELECT" msgstr "запит не є SELECT" -#: pl_exec.c:6620 pl_exec.c:6660 pl_exec.c:6700 +#: pl_exec.c:6650 pl_exec.c:6690 pl_exec.c:6730 #, c-format msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)" msgstr "тип параметру %d (%s) не відповідає тому, з котрим тривала підготовка плану (%s)" -#: pl_exec.c:7111 pl_exec.c:7145 pl_exec.c:7219 pl_exec.c:7245 +#: pl_exec.c:7141 pl_exec.c:7175 pl_exec.c:7249 pl_exec.c:7275 #, 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:7113 pl_exec.c:7147 pl_exec.c:7221 pl_exec.c:7247 +#: pl_exec.c:7143 pl_exec.c:7177 pl_exec.c:7251 pl_exec.c:7277 #, c-format msgid "%s check of %s is active." msgstr "%s перевірка %s активна." -#: pl_exec.c:7117 pl_exec.c:7151 pl_exec.c:7225 pl_exec.c:7251 +#: pl_exec.c:7147 pl_exec.c:7181 pl_exec.c:7255 pl_exec.c:7281 #, c-format msgid "Make sure the query returns the exact list of columns." msgstr "Переконайтеся, що запит повертає точний список стовпців." -#: pl_exec.c:7638 +#: pl_exec.c:7668 #, c-format msgid "record \"%s\" is not assigned yet" msgstr "запис \"%s\" ще не призначено" -#: pl_exec.c:7639 +#: pl_exec.c:7669 #, c-format msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "Для запису, котрому не призначене значення, структура кортежа не визначена." -#: pl_exec.c:8283 pl_gram.y:3442 +#: pl_exec.c:8357 pl_gram.y:3498 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "змінна \"%s\" оголошена як CONSTANT" @@ -545,275 +560,274 @@ msgstr "SQL-оператор" msgid "FOR over EXECUTE statement" msgstr "FOR за результатами EXECUTE" -#: pl_gram.y:487 +#: pl_gram.y:485 #, c-format msgid "block label must be placed before DECLARE, not after" msgstr "мітка блоку повинна бути розміщена до DECLARE, а не після" -#: pl_gram.y:507 +#: pl_gram.y:505 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не підтримує правила сортування" -#: pl_gram.y:526 +#: pl_gram.y:524 #, c-format msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "змінна \"%s\" повинна мати значення за замовчуванням після того, як вона оголошена як NOT NULL" -#: pl_gram.y:674 pl_gram.y:689 pl_gram.y:715 -#, c-format -msgid "variable \"%s\" does not exist" -msgstr "змінної \"%s\" не існує" - -#: pl_gram.y:733 pl_gram.y:761 +#: pl_gram.y:704 pl_gram.y:732 msgid "duplicate declaration" msgstr "дублікат оголошення" -#: pl_gram.y:744 pl_gram.y:772 +#: pl_gram.y:715 pl_gram.y:743 #, c-format msgid "variable \"%s\" shadows a previously defined variable" msgstr "змінна \"%s\" приховує раніше оголошену змінну" -#: pl_gram.y:1044 +#: pl_gram.y:1017 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "команда GET STACKED DIAGNOSTICS не дозволяє елемент діагностування %s" -#: pl_gram.y:1062 +#: pl_gram.y:1035 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "команда GET CURRENT DIAGNOSTICS не дозволяє елемент діагностування %s" -#: pl_gram.y:1157 +#: pl_gram.y:1133 msgid "unrecognized GET DIAGNOSTICS item" msgstr "нерозпізнаний елемент GET DIAGNOSTICS" -#: pl_gram.y:1173 pl_gram.y:3558 +#: pl_gram.y:1149 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" не є скалярною змінною" -#: pl_gram.y:1403 pl_gram.y:1597 +#: pl_gram.y:1379 pl_gram.y:1572 #, c-format msgid "loop variable of loop over rows must be a record variable or list of scalar variables" msgstr "змінна циклу по кортежах повинна бути змінною типу запис або списком скалярних змінних" -#: pl_gram.y:1438 +#: pl_gram.y:1414 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "курсор в циклі FOR повинен мати лише одну цільову змінну" -#: pl_gram.y:1445 +#: pl_gram.y:1421 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "цикл курсора FOR повинен використовувати обмежуючу змінну курсора" -#: pl_gram.y:1536 +#: pl_gram.y:1511 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "цілочисельний цикл FOR повинен мати лише одну цільову змінну" -#: pl_gram.y:1570 +#: pl_gram.y:1545 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "в циклі FOR з запитом не можна вказати REVERSE" -#: pl_gram.y:1700 +#: pl_gram.y:1675 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "змінній циклу FOREACH повинна бути відома змінна або список змінних" -#: pl_gram.y:1742 +#: pl_gram.y:1717 #, c-format msgid "there is no label \"%s\" attached to any block or loop enclosing this statement" msgstr "в блоку або циклу, розділеному цим оператором, немає мітки \"%s\"" -#: pl_gram.y:1750 +#: pl_gram.y:1725 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "мітку блока \"%s\" не можна використовувати в CONTINUE" -#: pl_gram.y:1765 +#: pl_gram.y:1740 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT можна використовувати поза циклом, тільки з зазначенням мітки" -#: pl_gram.y:1766 +#: pl_gram.y:1741 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE не можна використовувати поза циклом" -#: pl_gram.y:1790 pl_gram.y:1828 pl_gram.y:1876 pl_gram.y:3005 pl_gram.y:3093 -#: pl_gram.y:3204 pl_gram.y:3957 +#: pl_gram.y:1765 pl_gram.y:1803 pl_gram.y:1851 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4009 msgid "unexpected end of function definition" msgstr "неочікуваний кінец визначення функції" -#: pl_gram.y:1896 pl_gram.y:1920 pl_gram.y:1936 pl_gram.y:1942 pl_gram.y:2067 -#: pl_gram.y:2075 pl_gram.y:2089 pl_gram.y:2184 pl_gram.y:2408 pl_gram.y:2498 -#: pl_gram.y:2656 pl_gram.y:3800 pl_gram.y:3861 pl_gram.y:3938 +#: pl_gram.y:1871 pl_gram.y:1895 pl_gram.y:1911 pl_gram.y:1917 pl_gram.y:2042 +#: pl_gram.y:2050 pl_gram.y:2064 pl_gram.y:2159 pl_gram.y:2383 pl_gram.y:2473 +#: pl_gram.y:2632 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3990 msgid "syntax error" msgstr "синтаксична помилка" -#: pl_gram.y:1924 pl_gram.y:1926 pl_gram.y:2412 pl_gram.y:2414 +#: pl_gram.y:1899 pl_gram.y:1901 pl_gram.y:2387 pl_gram.y:2389 msgid "invalid SQLSTATE code" msgstr "неприпустимий код SQLSTATE" -#: pl_gram.y:2132 +#: pl_gram.y:2107 msgid "syntax error, expected \"FOR\"" msgstr "помилка синтаксису, очікувався \"FOR\"" -#: pl_gram.y:2193 +#: pl_gram.y:2168 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "Оператор FETCH не може повернути декілька рядків" -#: pl_gram.y:2290 +#: pl_gram.y:2265 #, c-format msgid "cursor variable must be a simple variable" msgstr "змінна-курсор повинна бути простою змінною" -#: pl_gram.y:2296 +#: pl_gram.y:2271 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "змінна \"%s\" повинна бути типу cursor або refcursor" -#: pl_gram.y:2627 pl_gram.y:2638 +#: pl_gram.y:2603 pl_gram.y:2614 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" - невідома змінна" -#: pl_gram.y:2744 pl_gram.y:2754 pl_gram.y:2910 +#: pl_gram.y:2719 pl_gram.y:2729 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "неузгоджені дужки" -#: pl_gram.y:2758 +#: pl_gram.y:2733 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "пропущено \"%s\" в кінці виразу SQL" -#: pl_gram.y:2764 +#: pl_gram.y:2739 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "пропущено \"%s\" в кінці оператора SQL" -#: pl_gram.y:2781 +#: pl_gram.y:2758 msgid "missing expression" msgstr "пропущено вираз" -#: pl_gram.y:2783 +#: pl_gram.y:2760 msgid "missing SQL statement" msgstr "пропущений оператор SQL" -#: pl_gram.y:2912 +#: pl_gram.y:2889 +msgid "syntax error, expected \"]\"" +msgstr "помилка синтаксису, очікувалось \"]\"" + +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "неповне оголошення типу даних" -#: pl_gram.y:2935 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "пропущено оголошення типу даних" -#: pl_gram.y:3015 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO вказано неодноразово" -#: pl_gram.y:3185 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "очікувалось FROM або IN" -#: pl_gram.y:3246 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "В функції, яка повертає набір, RETURN не може мати параметр" -#: pl_gram.y:3247 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "Використайте RETURN NEXT або RETURN QUERY." -#: pl_gram.y:3257 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "В процедурі RETURN не може мати параметр" -#: pl_gram.y:3262 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "В функції, яка не повертає нічого, RETURN не може мати параметр" -#: pl_gram.y:3271 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "В функції з параметрами OUT, RETURN не може мати параметр" -#: pl_gram.y:3334 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "В функції з параметрами OUT, RETURN NEXT не може мати параметр" -#: pl_gram.y:3500 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "змінна типу запис не може бути частиною списка INTO з декількома елементами" -#: pl_gram.y:3546 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "вказано занадто багато змінних INTO" -#: pl_gram.y:3754 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "кінцева мітка \"%s\" вказана для невідміченого блоку" -#: pl_gram.y:3761 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "кінцева мітка \"%s\" відрізняється від мітки блоку \"%s\"" -#: pl_gram.y:3795 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "курсор \"%s\" не має аргументів" -#: pl_gram.y:3809 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "курсор \"%s\" має аргументи" -#: pl_gram.y:3851 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "курсор \"%s\" не має аргументу \"%s\"" -#: pl_gram.y:3871 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "значення параметра \"%s\" курсора \"%s\" вказано неодноразово" -#: pl_gram.y:3896 +#: pl_gram.y:3948 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "недостатньо аргументів для курсора \"%s\"" -#: pl_gram.y:3903 +#: pl_gram.y:3955 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "занадто багато аргументів для курсора \"%s\"" -#: pl_gram.y:3989 +#: pl_gram.y:4041 msgid "unrecognized RAISE statement option" msgstr "нерозпізнаний параметр оператора RAISE" -#: pl_gram.y:3993 +#: pl_gram.y:4045 msgid "syntax error, expected \"=\"" msgstr "помилка синтаксису, очікувалось \"=\"" -#: pl_gram.y:4034 +#: pl_gram.y:4086 #, c-format msgid "too many parameters specified for RAISE" msgstr "занадто багато параметрів вказано для RAISE" -#: pl_gram.y:4038 +#: pl_gram.y:4090 #, c-format msgid "too few parameters specified for RAISE" msgstr "занадто мало параметрів вказано для RAISE" @@ -839,13 +853,13 @@ msgid "List of programming constructs that should produce an error." msgstr "Список програмних конструкцій, які повинні видавати помилку." #. translator: %s is typically the translation of "syntax error" -#: pl_scanner.c:508 +#: pl_scanner.c:525 #, c-format msgid "%s at end of input" msgstr "%s в кінці введення" #. translator: first %s is typically the translation of "syntax error" -#: pl_scanner.c:524 +#: pl_scanner.c:541 #, c-format msgid "%s at or near \"%s\"" msgstr "%s в або поблизу \"%s\"" diff --git a/src/pl/plpython/expected/plpython_setof.out b/src/pl/plpython/expected/plpython_setof.out index 3940940029035..c4461ac276252 100644 --- a/src/pl/plpython/expected/plpython_setof.out +++ b/src/pl/plpython/expected/plpython_setof.out @@ -17,6 +17,12 @@ for i in range(count): t += ( content, ) return t $$ LANGUAGE plpython3u; +CREATE FUNCTION test_setof_as_set(count integer, content text) RETURNS SETOF text AS $$ +s = set() +for i in range(count): + s.add(content * (i + 1) if content is not None else None) +return s +$$ LANGUAGE plpython3u; CREATE FUNCTION test_setof_as_iterator(count integer, content text) RETURNS SETOF text AS $$ class producer: def __init__ (self, icount, icontent): @@ -90,6 +96,30 @@ SELECT test_setof_as_tuple(2, null); (2 rows) +SELECT * FROM test_setof_as_set(0, 'set') ORDER BY 1; + test_setof_as_set +------------------- +(0 rows) + +SELECT * FROM test_setof_as_set(1, 'set') ORDER BY 1; + test_setof_as_set +------------------- + set +(1 row) + +SELECT * FROM test_setof_as_set(2, 'set') ORDER BY 1; + test_setof_as_set +------------------- + set + setset +(2 rows) + +SELECT * FROM test_setof_as_set(2, null) ORDER BY 1; + test_setof_as_set +------------------- + +(1 row) + SELECT test_setof_as_iterator(0, 'list'); test_setof_as_iterator ------------------------ diff --git a/src/pl/plpython/plpy_cursorobject.c b/src/pl/plpython/plpy_cursorobject.c index 1c6be75612007..37d7efca77ce5 100644 --- a/src/pl/plpython/plpy_cursorobject.c +++ b/src/pl/plpython/plpy_cursorobject.c @@ -16,7 +16,7 @@ #include "plpy_planobject.h" #include "plpy_resultobject.h" #include "plpy_spi.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/memutils.h" static PyObject *PLy_cursor_query(const char *query); diff --git a/src/pl/plpython/plpy_elog.c b/src/pl/plpython/plpy_elog.c index 70de5ba13d74b..ddf3573f0e70b 100644 --- a/src/pl/plpython/plpy_elog.c +++ b/src/pl/plpython/plpy_elog.c @@ -10,7 +10,7 @@ #include "plpy_elog.h" #include "plpy_main.h" #include "plpy_procedure.h" -#include "plpython.h" +#include "plpy_util.h" PyObject *PLy_exc_error = NULL; PyObject *PLy_exc_fatal = NULL; diff --git a/src/pl/plpython/plpy_exec.c b/src/pl/plpython/plpy_exec.c index 00747bb811b55..28fbd443b98c9 100644 --- a/src/pl/plpython/plpy_exec.c +++ b/src/pl/plpython/plpy_exec.c @@ -17,7 +17,7 @@ #include "plpy_main.h" #include "plpy_procedure.h" #include "plpy_subxactobject.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/fmgrprotos.h" #include "utils/rel.h" diff --git a/src/pl/plpython/plpy_main.c b/src/pl/plpython/plpy_main.c index 8f56155f006c9..f36eadbadc66d 100644 --- a/src/pl/plpython/plpy_main.c +++ b/src/pl/plpython/plpy_main.c @@ -18,7 +18,7 @@ #include "plpy_plpymodule.h" #include "plpy_procedure.h" #include "plpy_subxactobject.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/guc.h" #include "utils/memutils.h" #include "utils/rel.h" diff --git a/src/pl/plpython/plpy_planobject.c b/src/pl/plpython/plpy_planobject.c index 3e385555e5e08..6044893afdd13 100644 --- a/src/pl/plpython/plpy_planobject.c +++ b/src/pl/plpython/plpy_planobject.c @@ -9,7 +9,7 @@ #include "plpy_cursorobject.h" #include "plpy_planobject.h" #include "plpy_spi.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/memutils.h" static void PLy_plan_dealloc(PLyPlanObject *self); diff --git a/src/pl/plpython/plpy_plpymodule.c b/src/pl/plpython/plpy_plpymodule.c index ea06d9a52b108..1f980b44b2a31 100644 --- a/src/pl/plpython/plpy_plpymodule.c +++ b/src/pl/plpython/plpy_plpymodule.c @@ -14,7 +14,7 @@ #include "plpy_resultobject.h" #include "plpy_spi.h" #include "plpy_subxactobject.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/builtins.h" HTAB *PLy_spi_exceptions = NULL; diff --git a/src/pl/plpython/plpy_procedure.c b/src/pl/plpython/plpy_procedure.c index b494eeb474f36..c176d24e80118 100644 --- a/src/pl/plpython/plpy_procedure.c +++ b/src/pl/plpython/plpy_procedure.c @@ -13,7 +13,7 @@ #include "plpy_elog.h" #include "plpy_main.h" #include "plpy_procedure.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/builtins.h" #include "utils/hsearch.h" #include "utils/memutils.h" diff --git a/src/pl/plpython/plpy_resultobject.c b/src/pl/plpython/plpy_resultobject.c index 80fa1d7accc74..0d9997cbaa32c 100644 --- a/src/pl/plpython/plpy_resultobject.c +++ b/src/pl/plpython/plpy_resultobject.c @@ -8,7 +8,7 @@ #include "plpy_elog.h" #include "plpy_resultobject.h" -#include "plpython.h" +#include "plpy_util.h" static void PLy_result_dealloc(PLyResultObject *self); static PyObject *PLy_result_colnames(PyObject *self, PyObject *unused); diff --git a/src/pl/plpython/plpy_spi.c b/src/pl/plpython/plpy_spi.c index 77fbfd6c86819..1e386aadcca2b 100644 --- a/src/pl/plpython/plpy_spi.c +++ b/src/pl/plpython/plpy_spi.c @@ -19,7 +19,7 @@ #include "plpy_plpymodule.h" #include "plpy_resultobject.h" #include "plpy_spi.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/memutils.h" static PyObject *PLy_spi_execute_query(char *query, long limit); diff --git a/src/pl/plpython/plpy_subxactobject.c b/src/pl/plpython/plpy_subxactobject.c index ad24a9fc4b8c6..c2484a99b4ae3 100644 --- a/src/pl/plpython/plpy_subxactobject.c +++ b/src/pl/plpython/plpy_subxactobject.c @@ -9,7 +9,7 @@ #include "access/xact.h" #include "plpy_elog.h" #include "plpy_subxactobject.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/memutils.h" List *explicit_subtransactions = NIL; diff --git a/src/pl/plpython/plpy_typeio.c b/src/pl/plpython/plpy_typeio.c index 1d127ae3ffe37..f6509a4190282 100644 --- a/src/pl/plpython/plpy_typeio.c +++ b/src/pl/plpython/plpy_typeio.c @@ -14,7 +14,7 @@ #include "plpy_elog.h" #include "plpy_main.h" #include "plpy_typeio.h" -#include "plpython.h" +#include "plpy_util.h" #include "utils/array.h" #include "utils/builtins.h" #include "utils/fmgroids.h" diff --git a/src/pl/plpython/plpy_util.c b/src/pl/plpython/plpy_util.c index 6d89b1cb60a65..ef710aa371eac 100644 --- a/src/pl/plpython/plpy_util.c +++ b/src/pl/plpython/plpy_util.c @@ -9,7 +9,6 @@ #include "mb/pg_wchar.h" #include "plpy_elog.h" #include "plpy_util.h" -#include "plpython.h" /* * Convert a Python unicode object to a Python string/bytes object in diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h index 06fc1a5440fef..118b3100840f6 100644 --- a/src/pl/plpython/plpython.h +++ b/src/pl/plpython/plpython.h @@ -2,6 +2,10 @@ * * plpython.h - Python as a procedural language for PostgreSQL * + * Note: this file is #include'd by each of the sub-module header files + * (plpy_elog.h, etc). It's therefore unnecessary for any plpython *.c + * files to include it directly. + * * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * @@ -38,9 +42,4 @@ #undef TEXTDOMAIN #define TEXTDOMAIN PG_TEXTDOMAIN("plpython") -/* - * Used throughout, so it's easier to just include it everywhere. - */ -#include "plpy_util.h" - #endif /* PLPYTHON_H */ diff --git a/src/pl/plpython/po/es.po b/src/pl/plpython/po/es.po index 8186ef8622b49..bae86f7219b13 100644 --- a/src/pl/plpython/po/es.po +++ b/src/pl/plpython/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: plpython (PostgreSQL) 16\n" +"Project-Id-Version: plpython (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:08+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:39+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -26,49 +26,49 @@ msgstr "" msgid "plpy.cursor expected a query or a plan" msgstr "plpy.cursor espera una consulta o un plan" -#: plpy_cursorobject.c:155 +#: plpy_cursorobject.c:154 #, c-format msgid "plpy.cursor takes a sequence as its second argument" msgstr "plpy.cursor lleva una secuencia como segundo argumento" -#: plpy_cursorobject.c:171 plpy_spi.c:205 +#: plpy_cursorobject.c:170 plpy_spi.c:204 #, c-format msgid "could not execute plan" msgstr "no se pudo ejecutar el plan" -#: plpy_cursorobject.c:174 plpy_spi.c:208 +#: plpy_cursorobject.c:173 plpy_spi.c:207 #, c-format msgid "Expected sequence of %d argument, got %d: %s" msgid_plural "Expected sequence of %d arguments, got %d: %s" msgstr[0] "Se esperaba una secuencia de %d argumento, se obtuvo %d: %s" msgstr[1] "Se esperaba una secuencia de %d argumentos, se obtuvo %d: %s" -#: plpy_cursorobject.c:321 +#: plpy_cursorobject.c:317 #, c-format msgid "iterating a closed cursor" msgstr "iterando un cursor cerrado" -#: plpy_cursorobject.c:329 plpy_cursorobject.c:395 +#: plpy_cursorobject.c:325 plpy_cursorobject.c:391 #, c-format msgid "iterating a cursor in an aborted subtransaction" msgstr "iterando un cursor en una subtransacción abortada" -#: plpy_cursorobject.c:387 +#: plpy_cursorobject.c:383 #, c-format msgid "fetch from a closed cursor" msgstr "haciendo «fetch» en un cursor cerrado" -#: plpy_cursorobject.c:430 plpy_spi.c:401 +#: plpy_cursorobject.c:426 plpy_spi.c:393 #, c-format msgid "query result has too many rows to fit in a Python list" msgstr "el resultado de la consulta tiene demasiados registros y no entran en una lista de Python" -#: plpy_cursorobject.c:482 +#: plpy_cursorobject.c:478 #, c-format msgid "closing a cursor in an aborted subtransaction" msgstr "cerrando un cursor en una subtransacción abortada" -#: plpy_elog.c:125 plpy_elog.c:126 plpy_plpymodule.c:530 +#: plpy_elog.c:122 plpy_elog.c:123 plpy_plpymodule.c:530 #, c-format msgid "%s" msgstr "%s" @@ -108,83 +108,83 @@ msgstr "procedimiento PL/Python no returnó None" msgid "PL/Python function with return type \"void\" did not return None" msgstr "función PL/Python con tipo de retorno «void» no retorna None" -#: plpy_exec.c:369 plpy_exec.c:393 +#: plpy_exec.c:246 +#, c-format +msgid "function returning record called in context that cannot accept type record" +msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo" + +#: plpy_exec.c:392 plpy_exec.c:416 #, c-format msgid "unexpected return value from trigger procedure" msgstr "valor de retorno no esperado desde el procedimiento disparador" -#: plpy_exec.c:370 +#: plpy_exec.c:393 #, c-format msgid "Expected None or a string." msgstr "Se esperaba None o una cadena." -#: plpy_exec.c:383 +#: plpy_exec.c:406 #, c-format msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored" msgstr "función de disparador de PL/Python retorno «MODIFY» en un disparador de tipo DELETE -- ignorado" -#: plpy_exec.c:394 +#: plpy_exec.c:417 #, c-format msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"." msgstr "Se esperaba None, «OK», «SKIP» o «MODIFY»." -#: plpy_exec.c:444 +#: plpy_exec.c:468 #, c-format msgid "PyList_SetItem() failed, while setting up arguments" msgstr "PyList_SetItem() falló, mientras se inicializaban los argumentos" -#: plpy_exec.c:448 +#: plpy_exec.c:472 #, c-format msgid "PyDict_SetItemString() failed, while setting up arguments" msgstr "PyDict_SetItemString() falló, mientras se inicializaban los argumentos" -#: plpy_exec.c:460 -#, c-format -msgid "function returning record called in context that cannot accept type record" -msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo" - -#: plpy_exec.c:677 +#: plpy_exec.c:701 #, c-format msgid "while creating return value" msgstr "mientras se creaba el valor de retorno" -#: plpy_exec.c:924 +#: plpy_exec.c:952 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "TD[\"new\"] borrado, no se puede modicar el registro" -#: plpy_exec.c:929 +#: plpy_exec.c:957 #, c-format msgid "TD[\"new\"] is not a dictionary" msgstr "TD[\"new\"] no es un diccionario" -#: plpy_exec.c:954 +#: plpy_exec.c:982 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" msgstr "el nombre del atributo de TD[\"new\"] en la posición %d no es una cadena" -#: plpy_exec.c:961 +#: plpy_exec.c:989 #, c-format msgid "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row" msgstr "la llave «%s» en TD[\"new\"] no existe como columna en la fila disparadora" -#: plpy_exec.c:966 +#: plpy_exec.c:994 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "no se puede definir el atributo de sistema «%s»" -#: plpy_exec.c:971 +#: plpy_exec.c:999 #, c-format msgid "cannot set generated column \"%s\"" msgstr "no se puede definir el atributo generado «%s»" -#: plpy_exec.c:1029 +#: plpy_exec.c:1057 #, c-format msgid "while modifying trigger row" msgstr "mientras se modificaba la fila de disparador" # FIXME not very happy with this -#: plpy_exec.c:1087 +#: plpy_exec.c:1115 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "abortando una subtransacción que no se ha cerrado" @@ -273,27 +273,27 @@ msgstr "«%s» no es un argumento válido para esta función" msgid "invalid SQLSTATE code" msgstr "código SQLSTATE no válido" -#: plpy_procedure.c:225 +#: plpy_procedure.c:226 #, c-format msgid "trigger functions can only be called as triggers" msgstr "las funciones disparadoras sólo pueden ser llamadas como disparadores" -#: plpy_procedure.c:229 +#: plpy_procedure.c:230 #, c-format msgid "PL/Python functions cannot return type %s" msgstr "las funciones PL/Python no pueden retornar el tipo %s" -#: plpy_procedure.c:307 +#: plpy_procedure.c:308 #, c-format msgid "PL/Python functions cannot accept type %s" msgstr "la funciones PL/Python no pueden aceptar el tipo %s" -#: plpy_procedure.c:395 +#: plpy_procedure.c:396 #, c-format msgid "could not compile PL/Python function \"%s\"" msgstr "no se pudo compilar la función PL/Python «%s»" -#: plpy_procedure.c:398 +#: plpy_procedure.c:399 #, c-format msgid "could not compile anonymous PL/Python code block" msgstr "no se pudo compilar el bloque anónimo PL/Python" @@ -318,17 +318,17 @@ msgstr "plpy.prepare: el nombre de tipo en la posición %d no es una cadena" msgid "plpy.execute expected a query or a plan" msgstr "plpy.execute espera una consulta o un plan" -#: plpy_spi.c:189 +#: plpy_spi.c:188 #, c-format msgid "plpy.execute takes a sequence as its second argument" msgstr "plpy.execute lleva una secuencia como segundo argumento" -#: plpy_spi.c:297 +#: plpy_spi.c:289 #, c-format msgid "SPI_execute_plan failed: %s" msgstr "falló SPI_execute_plan: %s" -#: plpy_spi.c:339 +#: plpy_spi.c:331 #, c-format msgid "SPI_execute failed: %s" msgstr "falló SPI_execute: %s" diff --git a/src/pl/plpython/po/fr.po b/src/pl/plpython/po/fr.po index 2922a28b09a24..ec9faf0a957b1 100644 --- a/src/pl/plpython/po/fr.po +++ b/src/pl/plpython/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2023-07-30 09:08+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" #: plpy_cursorobject.c:72 #, c-format @@ -390,7 +390,7 @@ msgstr "n'a pas pu créer une représentation chaîne de caractères de l'objet #: plpy_typeio.c:1060 #, c-format msgid "could not convert Python object into cstring: Python string representation appears to contain null bytes" -msgstr "n'a pas pu convertir l'objet Python en csting : la représentation de la chaîne Python contient des octets nuls" +msgstr "n'a pas pu convertir l'objet Python en cstring : la représentation de la chaîne Python contient des octets nuls" #: plpy_typeio.c:1157 #, c-format @@ -417,7 +417,7 @@ msgstr "le nombre de dimensions du tableau dépasse le maximum autorisé (%d)" #: plpy_typeio.c:1329 #, c-format msgid "malformed record literal: \"%s\"" -msgstr "enregistrement litéral invalide : « %s »" +msgstr "enregistrement littéral invalide : « %s »" #: plpy_typeio.c:1330 #, c-format @@ -469,122 +469,3 @@ msgstr "n'a pas pu convertir l'objet Unicode Python en octets" #, c-format msgid "could not extract bytes from encoded string" msgstr "n'a pas pu extraire les octets de la chaîne encodée" - -#~ msgid "PL/Python does not support conversion to arrays of row types." -#~ msgstr "PL/Python ne supporte pas les conversions vers des tableaux de types row." - -#~ msgid "PL/Python function \"%s\" could not execute plan" -#~ msgstr "la fonction PL/python « %s » n'a pas pu exécuter un plan" - -#~ msgid "PL/Python function \"%s\" failed" -#~ msgstr "échec de la fonction PL/python « %s »" - -#~ msgid "PL/Python only supports one-dimensional arrays." -#~ msgstr "PL/Python supporte seulement les tableaux uni-dimensionnels." - -#~ msgid "PL/Python: %s" -#~ msgstr "PL/python : %s" - -#~ msgid "PyCObject_AsVoidPtr() failed" -#~ msgstr "échec de PyCObject_AsVoidPtr()" - -#~ msgid "PyCObject_FromVoidPtr() failed" -#~ msgstr "échec de PyCObject_FromVoidPtr()" - -#~ msgid "Python major version mismatch in session" -#~ msgstr "Différence de version majeure de Python dans la session" - -#~ msgid "Start a new session to use a different Python major version." -#~ msgstr "" -#~ "Lancez une nouvelle session pour utiliser une version majeure différente de\n" -#~ "Python." - -#~ msgid "This session has previously used Python major version %d, and it is now attempting to use Python major version %d." -#~ msgstr "" -#~ "Cette session a auparavant utilisé la version majeure %d de Python et elle\n" -#~ "essaie maintenant d'utiliser la version majeure %d." - -#, c-format -#~ msgid "To construct a multidimensional array, the inner sequences must all have the same length." -#~ msgstr "Pour construire un tableau multidimensionnel, les séquences internes doivent toutes avoir la même longueur." - -#, c-format -#~ msgid "array size exceeds the maximum allowed" -#~ msgstr "la taille du tableau dépasse le maximum permis" - -#~ msgid "cannot convert multidimensional array to Python list" -#~ msgstr "ne peut pas convertir un tableau multidimensionnel en liste Python" - -#~ msgid "could not compute string representation of Python object in PL/Python function \"%s\" while modifying trigger row" -#~ msgstr "" -#~ "n'a pas pu traiter la représentation de la chaîne d'un objet Python dans\n" -#~ "la fonction PL/Python « %s » lors de la modification de la ligne du trigger" - -#~ msgid "could not create exception \"%s\"" -#~ msgstr "n'a pas pu créer l'exception « %s »" - -#~ msgid "could not create globals" -#~ msgstr "n'a pas pu créer les globales" - -#~ msgid "could not create new Python list" -#~ msgstr "n'a pas pu créer la nouvelle liste Python" - -#~ msgid "could not create new dictionary" -#~ msgstr "n'a pas pu créer le nouveau dictionnaire" - -#~ msgid "could not create new dictionary while building trigger arguments" -#~ msgstr "" -#~ "n'a pas pu créer un nouveau dictionnaire lors de la construction des\n" -#~ "arguments du trigger" - -#~ msgid "could not create procedure cache" -#~ msgstr "n'a pas pu créer le cache de procédure" - -#~ msgid "could not create string representation of Python object in PL/Python function \"%s\" while creating return value" -#~ msgstr "" -#~ "n'a pas pu créer la représentation en chaîne de caractère de l'objet\n" -#~ "Python dans la fonction PL/python « %s » lors de la création de la valeur\n" -#~ "de retour" - -#~ msgid "could not create the base SPI exceptions" -#~ msgstr "n'a pas pu créer les exceptions SPI de base" - -#~ msgid "invalid arguments for plpy.prepare" -#~ msgstr "arguments invalides pour plpy.prepare" - -#~ msgid "multidimensional arrays must have array expressions with matching dimensions. PL/Python function return value has sequence length %d while expected %d" -#~ msgstr "" -#~ "les tableaux multidimensionnels doivent avoir des expressions de tableaux\n" -#~ "avec des dimensions correspondantes. La valeur de retour de la fonction\n" -#~ "PL/Python a une longueur de séquence %d alors que %d est attendue" - -#~ msgid "out of memory" -#~ msgstr "mémoire épuisée" - -#~ msgid "plan.status takes no arguments" -#~ msgstr "plan.status ne prends pas d'arguments" - -#~ msgid "plpy.prepare does not support composite types" -#~ msgstr "plpy.prepare ne supporte pas les types composites" - -#~ msgid "the message is already specified" -#~ msgstr "le message est déjà spécifié" - -#~ msgid "transaction aborted" -#~ msgstr "transaction annulée" - -#~ msgid "unrecognized error in PLy_spi_execute_fetch_result" -#~ msgstr "erreur inconnue dans PLy_spi_execute_fetch_result" - -#~ msgid "unrecognized error in PLy_spi_execute_plan" -#~ msgstr "erreur inconnue dans PLy_spi_execute_plan" - -#~ msgid "unrecognized error in PLy_spi_execute_query" -#~ msgstr "erreur inconnue dans PLy_spi_execute_query" - -#~ msgid "unrecognized error in PLy_spi_prepare" -#~ msgstr "erreur inconnue dans PLy_spi_prepare" - -#, c-format -#~ msgid "wrong length of inner sequence: has length %d, but %d was expected" -#~ msgstr "mauvaise longueur de la séquence interne : a une longueur %d, mais %d était attendu" diff --git a/src/pl/plpython/po/ru.po b/src/pl/plpython/po/ru.po index c8ba4ad1a3413..0b57951c61093 100644 --- a/src/pl/plpython/po/ru.po +++ b/src/pl/plpython/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: plpython (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-05-04 10:36+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" "PO-Revision-Date: 2019-08-29 15:42+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" @@ -22,17 +22,17 @@ msgstr "" msgid "plpy.cursor expected a query or a plan" msgstr "plpy.cursor ожидает запрос или план" -#: plpy_cursorobject.c:155 +#: plpy_cursorobject.c:154 #, c-format msgid "plpy.cursor takes a sequence as its second argument" msgstr "plpy.cursor принимает в качестве второго аргумента последовательность" -#: plpy_cursorobject.c:171 plpy_spi.c:205 +#: plpy_cursorobject.c:170 plpy_spi.c:204 #, c-format msgid "could not execute plan" msgstr "нельзя выполнить план" -#: plpy_cursorobject.c:174 plpy_spi.c:208 +#: plpy_cursorobject.c:173 plpy_spi.c:207 #, c-format msgid "Expected sequence of %d argument, got %d: %s" msgid_plural "Expected sequence of %d arguments, got %d: %s" @@ -40,28 +40,28 @@ msgstr[0] "Ожидалась последовательность из %d ар msgstr[1] "Ожидалась последовательность из %d аргументов, получено %d: %s" msgstr[2] "Ожидалась последовательность из %d аргументов, получено %d: %s" -#: plpy_cursorobject.c:321 +#: plpy_cursorobject.c:317 #, c-format msgid "iterating a closed cursor" msgstr "перемещение закрытого курсора" -#: plpy_cursorobject.c:329 plpy_cursorobject.c:395 +#: plpy_cursorobject.c:325 plpy_cursorobject.c:391 #, c-format msgid "iterating a cursor in an aborted subtransaction" msgstr "перемещение курсора в прерванной подтранзакции" -#: plpy_cursorobject.c:387 +#: plpy_cursorobject.c:383 #, c-format msgid "fetch from a closed cursor" msgstr "выборка из закрытого курсора" -#: plpy_cursorobject.c:430 plpy_spi.c:401 +#: plpy_cursorobject.c:426 plpy_spi.c:393 #, c-format msgid "query result has too many rows to fit in a Python list" msgstr "" "результат запроса содержит слишком много строк для передачи в списке Python" -#: plpy_cursorobject.c:482 +#: plpy_cursorobject.c:478 #, c-format msgid "closing a cursor in an aborted subtransaction" msgstr "закрытие курсора в прерванной подтранзакции" @@ -111,17 +111,24 @@ msgstr "процедура PL/Python вернула не None" msgid "PL/Python function with return type \"void\" did not return None" msgstr "функция PL/Python с типом результата \"void\" вернула не None" -#: plpy_exec.c:369 plpy_exec.c:393 +#: plpy_exec.c:246 +#, c-format +msgid "" +"function returning record called in context that cannot accept type record" +msgstr "" +"функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" + +#: plpy_exec.c:392 plpy_exec.c:416 #, c-format msgid "unexpected return value from trigger procedure" msgstr "триггерная процедура вернула недопустимое значение" -#: plpy_exec.c:370 +#: plpy_exec.c:393 #, c-format msgid "Expected None or a string." msgstr "Ожидалось None или строка." -#: plpy_exec.c:383 +#: plpy_exec.c:406 #, c-format msgid "" "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored" @@ -129,49 +136,42 @@ msgstr "" "триггерная функция PL/Python вернула \"MODIFY\" в триггере DELETE -- " "игнорируется" -#: plpy_exec.c:394 +#: plpy_exec.c:417 #, c-format msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"." msgstr "Ожидалось None, \"OK\", \"SKIP\" или \"MODIFY\"." -#: plpy_exec.c:444 +#: plpy_exec.c:468 #, c-format msgid "PyList_SetItem() failed, while setting up arguments" msgstr "ошибка в PyList_SetItem() при настройке аргументов" -#: plpy_exec.c:448 +#: plpy_exec.c:472 #, c-format msgid "PyDict_SetItemString() failed, while setting up arguments" msgstr "ошибка в PyDict_SetItemString() при настройке аргументов" -#: plpy_exec.c:460 -#, c-format -msgid "" -"function returning record called in context that cannot accept type record" -msgstr "" -"функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" - -#: plpy_exec.c:677 +#: plpy_exec.c:701 #, c-format msgid "while creating return value" msgstr "при создании возвращаемого значения" -#: plpy_exec.c:928 +#: plpy_exec.c:952 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "элемент TD[\"new\"] удалён -- изменить строку нельзя" -#: plpy_exec.c:933 +#: plpy_exec.c:957 #, c-format msgid "TD[\"new\"] is not a dictionary" msgstr "TD[\"new\"] - не словарь" -#: plpy_exec.c:958 +#: plpy_exec.c:982 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" msgstr "ключ словаря TD[\"new\"] с порядковым номером %d не является строкой" -#: plpy_exec.c:965 +#: plpy_exec.c:989 #, c-format msgid "" "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering " @@ -180,22 +180,22 @@ msgstr "" "ключу \"%s\", найденному в TD[\"new\"], не соответствует столбец в строке, " "обрабатываемой триггером" -#: plpy_exec.c:970 +#: plpy_exec.c:994 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "присвоить значение системному атрибуту \"%s\" нельзя" -#: plpy_exec.c:975 +#: plpy_exec.c:999 #, c-format msgid "cannot set generated column \"%s\"" msgstr "присвоить значение генерируемому столбцу \"%s\" нельзя" -#: plpy_exec.c:1033 +#: plpy_exec.c:1057 #, c-format msgid "while modifying trigger row" msgstr "при изменении строки в триггере" -#: plpy_exec.c:1091 +#: plpy_exec.c:1115 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "принудительное прерывание незавершённой подтранзакции" @@ -284,27 +284,27 @@ msgstr "'%s' - недопустимое ключевое слово (аргум msgid "invalid SQLSTATE code" msgstr "неверный код SQLSTATE" -#: plpy_procedure.c:225 +#: plpy_procedure.c:226 #, c-format msgid "trigger functions can only be called as triggers" msgstr "триггерные функции могут вызываться только в триггерах" -#: plpy_procedure.c:229 +#: plpy_procedure.c:230 #, c-format msgid "PL/Python functions cannot return type %s" msgstr "функции PL/Python не могут возвращать тип %s" -#: plpy_procedure.c:307 +#: plpy_procedure.c:308 #, c-format msgid "PL/Python functions cannot accept type %s" msgstr "функции PL/Python не могут принимать тип %s" -#: plpy_procedure.c:395 +#: plpy_procedure.c:396 #, c-format msgid "could not compile PL/Python function \"%s\"" msgstr "не удалось скомпилировать функцию PL/Python \"%s\"" -#: plpy_procedure.c:398 +#: plpy_procedure.c:399 #, c-format msgid "could not compile anonymous PL/Python code block" msgstr "не удалось скомпилировать анонимный блок кода PL/Python" @@ -329,17 +329,17 @@ msgstr "plpy.prepare: имя типа с порядковым номером %d msgid "plpy.execute expected a query or a plan" msgstr "plpy.execute ожидает запрос или план" -#: plpy_spi.c:189 +#: plpy_spi.c:188 #, c-format msgid "plpy.execute takes a sequence as its second argument" msgstr "plpy.execute принимает в качестве второго аргумента последовательность" -#: plpy_spi.c:297 +#: plpy_spi.c:289 #, c-format msgid "SPI_execute_plan failed: %s" msgstr "ошибка в SPI_execute_plan: %s" -#: plpy_spi.c:339 +#: plpy_spi.c:331 #, c-format msgid "SPI_execute failed: %s" msgstr "ошибка в SPI_execute: %s" diff --git a/src/pl/plpython/po/sv.po b/src/pl/plpython/po/sv.po index 8642c20402beb..54f3db92ff479 100644 --- a/src/pl/plpython/po/sv.po +++ b/src/pl/plpython/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 16\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-02 08:08+0000\n" -"PO-Revision-Date: 2023-08-02 12:03+0200\n" +"POT-Creation-Date: 2024-07-13 15:38+0000\n" +"PO-Revision-Date: 2024-07-13 18:15+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -64,7 +64,7 @@ msgstr "frågeresultet har för många rader för att få plats i en Python-list msgid "closing a cursor in an aborted subtransaction" msgstr "stänger en markör i en avbruten subtransaktion" -#: plpy_elog.c:125 plpy_elog.c:126 plpy_plpymodule.c:530 +#: plpy_elog.c:122 plpy_elog.c:123 plpy_plpymodule.c:530 #, c-format msgid "%s" msgstr "%s" @@ -104,82 +104,82 @@ msgstr "PL/Python-procedur returnerade inte None" msgid "PL/Python function with return type \"void\" did not return None" msgstr "PL/Python-funktion med returtyp \"void\" returnerade inte None" -#: plpy_exec.c:369 plpy_exec.c:393 +#: plpy_exec.c:246 +#, 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." + +#: plpy_exec.c:392 plpy_exec.c:416 #, c-format msgid "unexpected return value from trigger procedure" msgstr "oväntat returvärde från triggerprocedur" -#: plpy_exec.c:370 +#: plpy_exec.c:393 #, c-format msgid "Expected None or a string." msgstr "Förväntade None eller en sträng." -#: plpy_exec.c:383 +#: plpy_exec.c:406 #, c-format msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored" msgstr "PL/Python-triggerfunktion returnerade \"MODIFY\" i en DELETE-trigger -- ignorerad" -#: plpy_exec.c:394 +#: plpy_exec.c:417 #, c-format msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"." msgstr "Förväntade None, \"OK\", \"SKIP\" eller \"MODIFY\"." -#: plpy_exec.c:444 +#: plpy_exec.c:468 #, c-format msgid "PyList_SetItem() failed, while setting up arguments" msgstr "PyList_SetItem() misslyckades vid uppsättning av argument" -#: plpy_exec.c:448 +#: plpy_exec.c:472 #, c-format msgid "PyDict_SetItemString() failed, while setting up arguments" msgstr "PyDict_SetItemString() misslyckades vid uppsättning av argument" -#: plpy_exec.c:460 -#, 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." - -#: plpy_exec.c:677 +#: plpy_exec.c:701 #, c-format msgid "while creating return value" msgstr "vid skapande av returvärde" -#: plpy_exec.c:924 +#: plpy_exec.c:952 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "TD[\"new\"] raderad, kan inte modifiera rad" -#: plpy_exec.c:929 +#: plpy_exec.c:957 #, c-format msgid "TD[\"new\"] is not a dictionary" msgstr "TD[\"new\"] är inte en dictionary" -#: plpy_exec.c:954 +#: plpy_exec.c:982 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" msgstr "TD[\"new\"] dictionary-nyckel vid numerisk position %d är inte en sträng" -#: plpy_exec.c:961 +#: plpy_exec.c:989 #, c-format msgid "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row" msgstr "nyckel \"%s\" hittad i TD[\"new\"] finns inte som en kolumn i den triggande raden" -#: plpy_exec.c:966 +#: plpy_exec.c:994 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "kan inte sätta systemattribut \"%s\"" -#: plpy_exec.c:971 +#: plpy_exec.c:999 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kan inte sätta genererad kolumn \"%s\"" -#: plpy_exec.c:1029 +#: plpy_exec.c:1057 #, c-format msgid "while modifying trigger row" msgstr "vid modifiering av triggerrad" -#: plpy_exec.c:1087 +#: plpy_exec.c:1115 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "tvingar avbrytande av subtransaktion som inte har avslutats" @@ -268,27 +268,27 @@ msgstr "'%s' är ett ogiltigt nyckelordsargument för denna funktion" msgid "invalid SQLSTATE code" msgstr "ogiltig SQLSTATE-kod" -#: plpy_procedure.c:225 +#: plpy_procedure.c:226 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggningsfunktioner kan bara anropas vid triggning." -#: plpy_procedure.c:229 +#: plpy_procedure.c:230 #, c-format msgid "PL/Python functions cannot return type %s" msgstr "PL/Python-funktioner kan inte returnera typ %s" -#: plpy_procedure.c:307 +#: plpy_procedure.c:308 #, c-format msgid "PL/Python functions cannot accept type %s" msgstr "PL/Python-funktioner kan inte ta emot typ %s" -#: plpy_procedure.c:395 +#: plpy_procedure.c:396 #, c-format msgid "could not compile PL/Python function \"%s\"" msgstr "kunde inte kompilera PL/Python-funktion \"%s\"" -#: plpy_procedure.c:398 +#: plpy_procedure.c:399 #, c-format msgid "could not compile anonymous PL/Python code block" msgstr "kunde inte kompilera anonymt PL/Python-kodblock" @@ -447,15 +447,3 @@ msgstr "kunde inte konvertera Python-unicode-objekt till bytes" #, c-format msgid "could not extract bytes from encoded string" msgstr "kunde inte extrahera bytes från kodad sträng" - -#, c-format -#~ msgid "To construct a multidimensional array, the inner sequences must all have the same length." -#~ msgstr "För att skapa en multidimensionell array så skall alla de inre sekvenserna ha samma längd." - -#, c-format -#~ msgid "array size exceeds the maximum allowed" -#~ msgstr "array-storlek överskrider maximalt tillåtna" - -#, c-format -#~ msgid "wrong length of inner sequence: has length %d, but %d was expected" -#~ msgstr "fel längd på inre sekvens: har längd %d, men %d förväntades" diff --git a/src/pl/plpython/po/uk.po b/src/pl/plpython/po/uk.po index 0388016c9ceee..22ef7bc349bf0 100644 --- a/src/pl/plpython/po/uk.po +++ b/src/pl/plpython/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-12-17 22:08+0000\n" -"PO-Revision-Date: 2023-12-20 11:53\n" +"POT-Creation-Date: 2024-08-31 06:09+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,8 +14,8 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_16_STABLE/plpython.pot\n" -"X-Crowdin-File-ID: 933\n" +"X-Crowdin-File: /REL_17_STABLE/plpython.pot\n" +"X-Crowdin-File-ID: 1014\n" #: plpy_cursorobject.c:72 #, c-format @@ -106,82 +106,82 @@ msgstr "процедура PL/Python не повернула None" msgid "PL/Python function with return type \"void\" did not return None" msgstr "PL/Python функція з типом результату \"void\" не повернули None" -#: plpy_exec.c:369 plpy_exec.c:393 +#: plpy_exec.c:246 +#, c-format +msgid "function returning record called in context that cannot accept type record" +msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" + +#: plpy_exec.c:392 plpy_exec.c:416 #, c-format msgid "unexpected return value from trigger procedure" msgstr "неочікуване значення процедури тригера" -#: plpy_exec.c:370 +#: plpy_exec.c:393 #, c-format msgid "Expected None or a string." msgstr "Очікувалось None або рядок." -#: plpy_exec.c:383 +#: plpy_exec.c:406 #, c-format msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored" msgstr "Тригерна функція PL/Python повернула \"MODIFY\" в тригері DELETE -- проігноровано" -#: plpy_exec.c:394 +#: plpy_exec.c:417 #, c-format msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"." msgstr "Очікувалось None, \"OK\", \"SKIP\" або \"MODIFY\"." -#: plpy_exec.c:444 +#: plpy_exec.c:468 #, c-format msgid "PyList_SetItem() failed, while setting up arguments" msgstr "помилка PyList_SetItem() під час встановлення параметрів" -#: plpy_exec.c:448 +#: plpy_exec.c:472 #, c-format msgid "PyDict_SetItemString() failed, while setting up arguments" msgstr "помилка PyDict_SetItemString() під час встановлення параметрів" -#: plpy_exec.c:460 -#, c-format -msgid "function returning record called in context that cannot accept type record" -msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" - -#: plpy_exec.c:677 +#: plpy_exec.c:701 #, c-format msgid "while creating return value" msgstr "під час створення значення результату" -#: plpy_exec.c:924 +#: plpy_exec.c:952 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "TD[\"new\"] видалено, неможливо змінити рядок" -#: plpy_exec.c:929 +#: plpy_exec.c:957 #, c-format msgid "TD[\"new\"] is not a dictionary" msgstr "TD[\"new\"] не є словником" -#: plpy_exec.c:954 +#: plpy_exec.c:982 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" msgstr "ключ словника TD[\"new\"] на порядковий позиції %d не є рядком" -#: plpy_exec.c:961 +#: plpy_exec.c:989 #, c-format msgid "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row" msgstr "ключ \"%s\" знайдений у TD[\"new\"] не існує як стовпець у рядку тригера" -#: plpy_exec.c:966 +#: plpy_exec.c:994 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "не вдалося встановити системний атрибут \"%s\"" -#: plpy_exec.c:971 +#: plpy_exec.c:999 #, c-format msgid "cannot set generated column \"%s\"" msgstr "неможливо оновити згенерований стовпець \"%s\"" -#: plpy_exec.c:1029 +#: plpy_exec.c:1057 #, c-format msgid "while modifying trigger row" msgstr "під час зміни рядка тригера" -#: plpy_exec.c:1087 +#: plpy_exec.c:1115 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "примусове переривання субтранзакції, яка не вийшла" @@ -270,27 +270,27 @@ msgstr "'%s' є неприпустимим ключовим словом-арг msgid "invalid SQLSTATE code" msgstr "неприпустимий код SQLSTATE" -#: plpy_procedure.c:225 +#: plpy_procedure.c:226 #, c-format msgid "trigger functions can only be called as triggers" msgstr "тригер-функція може викликатися лише як тригер" -#: plpy_procedure.c:229 +#: plpy_procedure.c:230 #, c-format msgid "PL/Python functions cannot return type %s" msgstr "PL/Python функції не можуть повернути тип %s" -#: plpy_procedure.c:307 +#: plpy_procedure.c:308 #, c-format msgid "PL/Python functions cannot accept type %s" msgstr "PL/Python функції не можуть прийняти тип %s" -#: plpy_procedure.c:395 +#: plpy_procedure.c:396 #, c-format msgid "could not compile PL/Python function \"%s\"" msgstr "не вдалося скомпілювати функцію PL/Python \"%s\"" -#: plpy_procedure.c:398 +#: plpy_procedure.c:399 #, c-format msgid "could not compile anonymous PL/Python code block" msgstr "не вдалося скомпілювати анонімні коди блоку PL/Python" diff --git a/src/pl/plpython/po/zh_CN.po b/src/pl/plpython/po/zh_CN.po index 264d4f52f6f4b..50b34ebe847dd 100644 --- a/src/pl/plpython/po/zh_CN.po +++ b/src/pl/plpython/po/zh_CN.po @@ -1,43 +1,43 @@ # LANGUAGE message translation file for plpython # Copyright (C) 2010 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# FIRST AUTHOR , 2010. +# Dianjin Wang , 2024 # msgid "" msgstr "" -"Project-Id-Version: plpython (PostgreSQL) 14\n" +"Project-Id-Version: plpython (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 05:38+0000\n" -"PO-Revision-Date: 2021-08-16 18:00+0800\n" -"Last-Translator: Jie Zhang \n" +"POT-Creation-Date: 2024-09-13 22:40+0000\n" +"PO-Revision-Date: 2024-09-14 14:12+0800\n" +"Last-Translator: Dianjin Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.5.7\n" +"X-Generator: Poedit 3.4.4\n" #: plpy_cursorobject.c:72 #, c-format msgid "plpy.cursor expected a query or a plan" -msgstr "plpy.cursor期望一个查询或一个计划" +msgstr "plpy.cursor 期望一个查询或一个计划" #: plpy_cursorobject.c:155 #, c-format msgid "plpy.cursor takes a sequence as its second argument" -msgstr "plpy.cursor将一个序列作为它的第二个参数" +msgstr "plpy.cursor 将一个序列作为它的第二个参数" -#: plpy_cursorobject.c:171 plpy_spi.c:207 +#: plpy_cursorobject.c:171 plpy_spi.c:205 #, c-format msgid "could not execute plan" msgstr "无法执行计划" -#: plpy_cursorobject.c:174 plpy_spi.c:210 +#: plpy_cursorobject.c:174 plpy_spi.c:208 #, c-format msgid "Expected sequence of %d argument, got %d: %s" msgid_plural "Expected sequence of %d arguments, got %d: %s" -msgstr[0] "期望%d序列参数,但是得到%d: %s" +msgstr[0] "期望 %d 参数序列, 但是得到 %d: %s" #: plpy_cursorobject.c:321 #, c-format @@ -54,17 +54,17 @@ msgstr "在终止的子事务里遍历一个游标" msgid "fetch from a closed cursor" msgstr "从关闭的游标里获取结果" -#: plpy_cursorobject.c:430 plpy_spi.c:403 +#: plpy_cursorobject.c:430 plpy_spi.c:401 #, c-format msgid "query result has too many rows to fit in a Python list" -msgstr "查询结果中的行太多,无法放在一个Python列表中" +msgstr "查询结果中的行太多,无法放在一个 Python 列表中" #: plpy_cursorobject.c:482 #, c-format msgid "closing a cursor in an aborted subtransaction" msgstr "在终止的子事务里关闭一个游标" -#: plpy_elog.c:125 plpy_elog.c:126 plpy_plpymodule.c:548 +#: plpy_elog.c:122 plpy_elog.c:123 plpy_plpymodule.c:530 #, c-format msgid "%s" msgstr "%s" @@ -77,221 +77,221 @@ msgstr "不支持集合函数返回模式" #: plpy_exec.c:140 #, c-format msgid "PL/Python set-returning functions only support returning one value per call." -msgstr "PL/Python集合返回函数只支持在每次调用时返回一个值。" +msgstr "PL/Python 集合返回函数只支持在每次调用时返回一个值." #: plpy_exec.c:153 #, c-format msgid "returned object cannot be iterated" -msgstr "所返回的对象无法迭代" +msgstr "所返回的对象无法进行遍历" #: plpy_exec.c:154 #, c-format msgid "PL/Python set-returning functions must return an iterable object." -msgstr "PL/Python集合返回函数必须返回一个可迭代的对象." +msgstr "PL/Python 集合返回函数必须返回一个可遍历的对象." #: plpy_exec.c:168 #, c-format msgid "error fetching next item from iterator" -msgstr "当从迭代器中取回下一个成员时出现错误" +msgstr "当从迭代器中获取下一个成员时出现错误" #: plpy_exec.c:211 #, c-format msgid "PL/Python procedure did not return None" -msgstr "PL/Python过程没有返回None" +msgstr "PL/Python 过程没有返回 None" #: plpy_exec.c:215 #, c-format msgid "PL/Python function with return type \"void\" did not return None" -msgstr "返回类型为\"void\"的PL/Python函数不返回None" +msgstr "返回类型为 \"void\" 的 PL/Python 函数不返回 None" -#: plpy_exec.c:371 plpy_exec.c:397 +#: plpy_exec.c:246 +#, c-format +msgid "function returning record called in context that cannot accept type record" +msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用" + +#: plpy_exec.c:392 plpy_exec.c:416 #, c-format msgid "unexpected return value from trigger procedure" msgstr "在触发器存储过程出现非期望的返回值" -#: plpy_exec.c:372 +#: plpy_exec.c:393 #, c-format msgid "Expected None or a string." -msgstr "期望空值或一个字符串" +msgstr "期望 None 或一个字符串." -#: plpy_exec.c:387 +#: plpy_exec.c:406 #, c-format msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored" -msgstr "在DELETE触发器中的PL/Python 触发器函数返回 \"MODIFY\" -- 忽略" +msgstr "在 DELETE 触发器中的 PL/Python 触发器函数返回 \"MODIFY\" -- 忽略" -#: plpy_exec.c:398 +#: plpy_exec.c:417 #, c-format msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"." -msgstr "期望None, \"OK\", \"SKIP\", 或\"MODIFY\"" +msgstr "期望 None, \"OK\", \"SKIP\", 或\"MODIFY”." -#: plpy_exec.c:443 +#: plpy_exec.c:468 #, c-format msgid "PyList_SetItem() failed, while setting up arguments" -msgstr "当设置参数的同时, 执行PyList_SetItem()失败" +msgstr "当设置参数的同时, 执行 PyList_SetItem() 失败" -#: plpy_exec.c:447 +#: plpy_exec.c:472 #, c-format msgid "PyDict_SetItemString() failed, while setting up arguments" -msgstr "当设置参数的同时, 执行PyDict_SetItemString()失败" - -#: plpy_exec.c:459 -#, c-format -msgid "function returning record called in context that cannot accept type record" -msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用" +msgstr "当设置参数的同时, 执行 PyDict_SetItemString() 失败" -#: plpy_exec.c:676 +#: plpy_exec.c:701 #, c-format msgid "while creating return value" msgstr "同时在创建返回值" -#: plpy_exec.c:910 +#: plpy_exec.c:952 #, c-format msgid "TD[\"new\"] deleted, cannot modify row" msgstr "TD[\"new\"] 已删除,无法修改记录" -#: plpy_exec.c:915 +#: plpy_exec.c:957 #, c-format msgid "TD[\"new\"] is not a dictionary" -msgstr "TD[\"new\"]不是一个字典" +msgstr "TD[\"new\"] 不是一个字典" -#: plpy_exec.c:942 +#: plpy_exec.c:982 #, c-format msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string" -msgstr "在顺序位置%d的TD[\"new\"]字典键值不是字符串" +msgstr "在顺序位置 %d 的 TD[\"new\"] 字典键值不是字符串" -#: plpy_exec.c:949 +#: plpy_exec.c:989 #, c-format msgid "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row" -msgstr "在 TD[\"new\"]中找到的键 \"%s\"在正在触发的记录中不是作为列而存在." +msgstr "在 TD[\"new\"] 中找到的键 \"%s\" 在正在触发的记录中不是作为列而存在" -#: plpy_exec.c:954 +#: plpy_exec.c:994 #, c-format msgid "cannot set system attribute \"%s\"" -msgstr "不能设置系统属性\"%s\"" +msgstr "无法设置系统属性 \"%s\"" -#: plpy_exec.c:959 +#: plpy_exec.c:999 #, c-format msgid "cannot set generated column \"%s\"" msgstr "无法设置生成的列 \"%s\"" -#: plpy_exec.c:1017 +#: plpy_exec.c:1057 #, c-format msgid "while modifying trigger row" msgstr "同时正在修改触发器记录" -#: plpy_exec.c:1075 +#: plpy_exec.c:1115 #, c-format msgid "forcibly aborting a subtransaction that has not been exited" msgstr "强行终止一个还未退出的子事务" -#: plpy_main.c:121 +#: plpy_main.c:109 #, c-format msgid "multiple Python libraries are present in session" -msgstr "会话中存在多个Python库" +msgstr "会话中存在多个 Python 库" -#: plpy_main.c:122 +#: plpy_main.c:110 #, c-format msgid "Only one Python major version can be used in one session." -msgstr "一个会话中只能使用一个Python主版本." +msgstr "一个会话中只能使用一个 Python 主版本." -#: plpy_main.c:138 +#: plpy_main.c:122 #, c-format msgid "untrapped error in initialization" msgstr "在初始化过程中出现无法捕获的错误" -#: plpy_main.c:161 +#: plpy_main.c:145 #, c-format msgid "could not import \"__main__\" module" -msgstr "无法导入模块\"__main__\" " +msgstr "无法导入 \"__main__\" 模块" -#: plpy_main.c:170 +#: plpy_main.c:154 #, c-format msgid "could not initialize globals" msgstr "无法初始化全局变量" -#: plpy_main.c:393 +#: plpy_main.c:352 #, c-format msgid "PL/Python procedure \"%s\"" -msgstr "PL/Python过程\"%s\"" +msgstr "PL/Python 过程 \"%s\"" -#: plpy_main.c:396 +#: plpy_main.c:355 #, c-format msgid "PL/Python function \"%s\"" -msgstr "PL/Python函数\"%s\"" +msgstr "PL/Python 函数\"%s\"" -#: plpy_main.c:404 +#: plpy_main.c:363 #, c-format msgid "PL/Python anonymous code block" -msgstr "PL/Python匿名代码块" +msgstr "PL/Python 匿名代码块" -#: plpy_plpymodule.c:182 plpy_plpymodule.c:185 +#: plpy_plpymodule.c:168 plpy_plpymodule.c:171 #, c-format msgid "could not import \"plpy\" module" -msgstr "无法导入模块\"plpy\" " +msgstr "无法导入 \"plpy\" 模块" -#: plpy_plpymodule.c:200 +#: plpy_plpymodule.c:182 #, c-format msgid "could not create the spiexceptions module" -msgstr "无法创建spiexceptions模块" +msgstr "无法创建 spiexceptions 模块" -#: plpy_plpymodule.c:208 +#: plpy_plpymodule.c:190 #, c-format msgid "could not add the spiexceptions module" -msgstr "无法添加spiexceptions模块 " +msgstr "无法添加 spiexceptions 模块" -#: plpy_plpymodule.c:275 +#: plpy_plpymodule.c:257 #, c-format msgid "could not generate SPI exceptions" -msgstr "无法产生SPI异常" +msgstr "无法产生 SPI 异常" -#: plpy_plpymodule.c:443 +#: plpy_plpymodule.c:425 #, c-format msgid "could not unpack arguments in plpy.elog" -msgstr "无法解析plpy.elog中的参数" +msgstr "无法解包 plpy.elog 中的参数" -#: plpy_plpymodule.c:452 +#: plpy_plpymodule.c:434 msgid "could not parse error message in plpy.elog" -msgstr "无法解析在plpy.elog中的错误消息" +msgstr "无法解析 plpy.elog 中的错误消息" -#: plpy_plpymodule.c:469 +#: plpy_plpymodule.c:451 #, c-format msgid "argument 'message' given by name and position" -msgstr "由名称和位置提供的参数'message'" +msgstr "由名称和位置提供的参数 'message'" -#: plpy_plpymodule.c:496 +#: plpy_plpymodule.c:478 #, c-format msgid "'%s' is an invalid keyword argument for this function" -msgstr "对于这个函数,'%s'是一个无效的关键词参数" +msgstr "对于这个函数,'%s' 是一个无效的关键词参数" -#: plpy_plpymodule.c:507 plpy_plpymodule.c:513 +#: plpy_plpymodule.c:489 plpy_plpymodule.c:495 #, c-format msgid "invalid SQLSTATE code" -msgstr "无效的SQLSTATE代码" +msgstr "无效的 SQLSTATE 代码" -#: plpy_procedure.c:225 +#: plpy_procedure.c:226 #, c-format msgid "trigger functions can only be called as triggers" -msgstr "触发器函数只能以触发器的形式调用" +msgstr "触发器函数只能以触发器的形式被调用" -#: plpy_procedure.c:229 +#: plpy_procedure.c:230 #, c-format msgid "PL/Python functions cannot return type %s" -msgstr "PL/Python函数不能返回类型%s" +msgstr "PL/Python 函数不能返回类型 %s" -#: plpy_procedure.c:307 +#: plpy_procedure.c:308 #, c-format msgid "PL/Python functions cannot accept type %s" -msgstr "PL/Python函数不能接受类型%s" +msgstr "PL/Python 函数不能接受类型 %s" -#: plpy_procedure.c:397 +#: plpy_procedure.c:396 #, c-format msgid "could not compile PL/Python function \"%s\"" -msgstr "无法编译PL/Python函数\"%s\"" +msgstr "无法编译 PL/Python 函数 \"%s\"" -#: plpy_procedure.c:400 +#: plpy_procedure.c:399 #, c-format msgid "could not compile anonymous PL/Python code block" -msgstr "无法编译PL/Python中的匿名代码块" +msgstr "无法编译 PL/Python 中的匿名代码块" #: plpy_resultobject.c:117 plpy_resultobject.c:143 plpy_resultobject.c:169 #, c-format @@ -301,32 +301,32 @@ msgstr "命令没有产生结果集" #: plpy_spi.c:56 #, c-format msgid "second argument of plpy.prepare must be a sequence" -msgstr "plpy.prepare的第二个参数必须是一个序列" +msgstr "plpy.prepare 的第二个参数必须是一个序列" -#: plpy_spi.c:100 +#: plpy_spi.c:98 #, c-format msgid "plpy.prepare: type name at ordinal position %d is not a string" -msgstr "plpy.prepare: 在顺序位置%d的类型名称不是string" +msgstr "plpy.prepare: 在顺序位置 %d 的类型名称不是一个字符串" -#: plpy_spi.c:172 +#: plpy_spi.c:170 #, c-format msgid "plpy.execute expected a query or a plan" -msgstr "plpy.execute期望一个查询或一个计划" +msgstr "plpy.execute 期望一个查询或一个计划" -#: plpy_spi.c:191 +#: plpy_spi.c:189 #, c-format msgid "plpy.execute takes a sequence as its second argument" -msgstr "plpy.execute将一个序列作为它的第二个参数" +msgstr "plpy.execute 将一个序列作为它的第二个参数" -#: plpy_spi.c:299 +#: plpy_spi.c:297 #, c-format msgid "SPI_execute_plan failed: %s" -msgstr "执行SPI_execute_plan失败: %s" +msgstr "SPI_execute_plan 执行失败: %s" -#: plpy_spi.c:341 +#: plpy_spi.c:339 #, c-format msgid "SPI_execute failed: %s" -msgstr "SPI_execute执行失败: %s" +msgstr "SPI_execute 执行失败: %s" #: plpy_subxactobject.c:92 #, c-format @@ -348,112 +348,114 @@ msgstr "该子事务仍没有进入" msgid "there is no subtransaction to exit from" msgstr "没有子事务可以退出" -#: plpy_typeio.c:587 +#: plpy_typeio.c:588 #, c-format msgid "could not import a module for Decimal constructor" msgstr "无法为十进制构造函数导入模块" -#: plpy_typeio.c:591 +#: plpy_typeio.c:592 #, c-format msgid "no Decimal attribute in module" msgstr "模块中没有小数位属性" -#: plpy_typeio.c:597 +#: plpy_typeio.c:598 #, c-format msgid "conversion from numeric to Decimal failed" -msgstr "由numeric数值到Decimal小数转换失败" +msgstr "由 numeric 数值到 Decimal 小数转换失败" -#: plpy_typeio.c:911 +#: plpy_typeio.c:912 #, c-format msgid "could not create bytes representation of Python object" -msgstr "无法创建Python对象的字节表达式" +msgstr "无法创建 Python 对象的字节表达式" -#: plpy_typeio.c:1056 +#: plpy_typeio.c:1049 #, c-format msgid "could not create string representation of Python object" -msgstr "无法创建Python对象的字符串表达式" +msgstr "无法创建 Python 对象的字符串表达式" -#: plpy_typeio.c:1067 +#: plpy_typeio.c:1060 #, c-format msgid "could not convert Python object into cstring: Python string representation appears to contain null bytes" -msgstr "无法将Python对象转换为cstring: Python字符串表达式可能包含空字节" +msgstr "无法将 Python 对象转换为 cstring: Python 字符串表达式可能包含空字节" -#: plpy_typeio.c:1178 +#: plpy_typeio.c:1157 #, c-format -msgid "number of array dimensions exceeds the maximum allowed (%d)" -msgstr "数组的维数超过最大允许值(%d)" +msgid "return value of function with array return type is not a Python sequence" +msgstr "带有数组返回类型的函数返回值不是一个 Python 序列" -#: plpy_typeio.c:1183 +#: plpy_typeio.c:1202 #, c-format msgid "could not determine sequence length for function return value" msgstr "无法确定函数返回值的序列长度" -#: plpy_typeio.c:1188 plpy_typeio.c:1194 +#: plpy_typeio.c:1222 plpy_typeio.c:1237 plpy_typeio.c:1253 #, c-format -msgid "array size exceeds the maximum allowed" -msgstr "数组的大小超过了最大允许值" +msgid "multidimensional arrays must have array expressions with matching dimensions" +msgstr "多维数组必须有符合维度的数组表达式" -#: plpy_typeio.c:1222 +#: plpy_typeio.c:1227 #, c-format -msgid "return value of function with array return type is not a Python sequence" -msgstr "带有数组返回类型的函数返回值不是一个Python序列" - -#: plpy_typeio.c:1269 -#, c-format -msgid "wrong length of inner sequence: has length %d, but %d was expected" -msgstr "内部序列的长度错误:长度为%d,但应为%d" - -#: plpy_typeio.c:1271 -#, c-format -msgid "To construct a multidimensional array, the inner sequences must all have the same length." -msgstr "要构造多维数组,内部序列的长度必须相同." +msgid "number of array dimensions exceeds the maximum allowed (%d)" +msgstr "数组的维数超过最大允许值 (%d)" -#: plpy_typeio.c:1350 +#: plpy_typeio.c:1329 #, c-format msgid "malformed record literal: \"%s\"" msgstr "有缺陷的记录常量: \"%s\"" -#: plpy_typeio.c:1351 +#: plpy_typeio.c:1330 #, c-format msgid "Missing left parenthesis." -msgstr "缺少一个左括弧" +msgstr "缺少一个左括弧." -#: plpy_typeio.c:1352 plpy_typeio.c:1553 +#: plpy_typeio.c:1331 plpy_typeio.c:1532 #, c-format msgid "To return a composite type in an array, return the composite type as a Python tuple, e.g., \"[('foo',)]\"." -msgstr "要返回数组中的复合类型,请将复合类型作为Python元组返回,例如 \"[('foo',)]\"." +msgstr "要返回数组中的复合类型,请将复合类型作为 Python 元组返回,例如 \"[('foo',)]\"." -#: plpy_typeio.c:1399 +#: plpy_typeio.c:1378 #, c-format msgid "key \"%s\" not found in mapping" -msgstr "在映射中没有找到键\"%s\"" +msgstr "在映射中没有找到键 \"%s\"" -#: plpy_typeio.c:1400 +#: plpy_typeio.c:1379 #, c-format msgid "To return null in a column, add the value None to the mapping with the key named after the column." -msgstr "为了在一列中返回空值, 需要在列的后面对带有已命名键的映射添加值None" +msgstr "为了在一列中返回空值, 需要在列的后面对带有已命名键的映射添加值 None." -#: plpy_typeio.c:1453 +#: plpy_typeio.c:1432 #, c-format msgid "length of returned sequence did not match number of columns in row" msgstr "所返回序列的长度与在记录中列的数量不匹配" -#: plpy_typeio.c:1551 +#: plpy_typeio.c:1530 #, c-format msgid "attribute \"%s\" does not exist in Python object" -msgstr "在Python对象中不存在属性\"%s\"" +msgstr "在 Python 对象中不存在属性 \"%s\"" -#: plpy_typeio.c:1554 +#: plpy_typeio.c:1533 #, c-format msgid "To return null in a column, let the returned object have an attribute named after column with value None." -msgstr "为了在一列中返回空值, 需要让返回的对象在带有值None的列后面的带有已命名属性" +msgstr "为了在一列中返回空值, 需要让返回的对象在带有值 None 的列后面的带有已命名属性." #: plpy_util.c:31 #, c-format msgid "could not convert Python Unicode object to bytes" -msgstr "无法将Python中以Unicode编码的对象转换为PostgreSQL服务器字节码" +msgstr "无法将 Python 中的 Unicode 编码对象转换为 PostgreSQL 服务器字节码" #: plpy_util.c:37 #, c-format msgid "could not extract bytes from encoded string" -msgstr "无法从已编码字符串里提取相应字节码值" +msgstr "无法从已编码字符串里提取相应字节" + +#, c-format +#~ msgid "To construct a multidimensional array, the inner sequences must all have the same length." +#~ msgstr "要构造多维数组,内部序列的长度必须相同." + +#, c-format +#~ msgid "array size exceeds the maximum allowed" +#~ msgstr "数组的大小超过了最大允许值" + +#, c-format +#~ msgid "wrong length of inner sequence: has length %d, but %d was expected" +#~ msgstr "内部序列的长度错误:长度为%d,但应为%d" diff --git a/src/pl/plpython/sql/plpython_setof.sql b/src/pl/plpython/sql/plpython_setof.sql index 4cfb10192c052..1a0472b7a3ba9 100644 --- a/src/pl/plpython/sql/plpython_setof.sql +++ b/src/pl/plpython/sql/plpython_setof.sql @@ -20,6 +20,13 @@ for i in range(count): return t $$ LANGUAGE plpython3u; +CREATE FUNCTION test_setof_as_set(count integer, content text) RETURNS SETOF text AS $$ +s = set() +for i in range(count): + s.add(content * (i + 1) if content is not None else None) +return s +$$ LANGUAGE plpython3u; + CREATE FUNCTION test_setof_as_iterator(count integer, content text) RETURNS SETOF text AS $$ class producer: def __init__ (self, icount, icontent): @@ -56,6 +63,11 @@ SELECT test_setof_as_tuple(1, 'tuple'); SELECT test_setof_as_tuple(2, 'tuple'); SELECT test_setof_as_tuple(2, null); +SELECT * FROM test_setof_as_set(0, 'set') ORDER BY 1; +SELECT * FROM test_setof_as_set(1, 'set') ORDER BY 1; +SELECT * FROM test_setof_as_set(2, 'set') ORDER BY 1; +SELECT * FROM test_setof_as_set(2, null) ORDER BY 1; + SELECT test_setof_as_iterator(0, 'list'); SELECT test_setof_as_iterator(1, 'list'); SELECT test_setof_as_iterator(2, 'list'); diff --git a/src/pl/tcl/po/de.po b/src/pl/tcl/po/de.po index aea4172bf763d..7594353d58e38 100644 --- a/src/pl/tcl/po/de.po +++ b/src/pl/tcl/po/de.po @@ -1,14 +1,14 @@ # German message translation file for PL/Tcl -# Peter Eisentraut , 2009 - 2024. +# Peter Eisentraut , 2009 - 2025. # # Use these quotes: »%s« # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 17\n" +"Project-Id-Version: PostgreSQL 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-18 04:38+0000\n" -"PO-Revision-Date: 2024-06-18 14:44+0200\n" +"POT-Creation-Date: 2025-03-07 09:38+0000\n" +"PO-Revision-Date: 2025-03-07 11:55+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -16,105 +16,105 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: pltcl.c:462 +#: pltcl.c:467 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "PL/Tcl-Funktion, die einmal aufgerufen wird, wenn pltcl zum ersten Mal benutzt wird." -#: pltcl.c:469 +#: pltcl.c:474 msgid "PL/TclU function to call once when pltclu is first used." msgstr "PL/Tcl-Funktion, die einmal aufgerufen wird, wenn pltclu zum ersten Mal benutzt wird." -#: pltcl.c:636 +#: pltcl.c:641 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "Funktion »%s« ist in der falschen Sprache" -#: pltcl.c:647 +#: pltcl.c:652 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "Funktion »%s« darf nicht SECURITY DEFINER sein" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:686 #, c-format msgid "processing %s parameter" msgstr "Verarbeiten von Parameter von %s" -#: pltcl.c:834 +#: pltcl.c:838 #, 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" -#: pltcl.c:839 +#: pltcl.c:843 #, 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" -#: pltcl.c:1012 +#: pltcl.c:1016 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "Funktion, die einen Record zurückgibt, in einem Zusammenhang aufgerufen, der Typ record nicht verarbeiten kann" -#: pltcl.c:1031 +#: pltcl.c:1035 #, c-format msgid "could not parse function return value: %s" msgstr "konnte Rückgabewert der Funktion nicht parsen: %s" -#: pltcl.c:1298 +#: pltcl.c:1301 #, c-format msgid "could not parse trigger return value: %s" msgstr "konnte Rückgabewert des Triggers nicht parsen: %s" -#: pltcl.c:1383 pltcl.c:1810 +#: pltcl.c:1401 pltcl.c:1895 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1384 +#: pltcl.c:1402 #, c-format msgid "" "%s\n" -"in PL/Tcl function \"%s\"" +"in PL/Tcl function %s" msgstr "" "%s\n" -"in PL/Tcl-Funktion »%s«" +"in PL/Tcl-Funktion %s" -#: pltcl.c:1547 +#: pltcl.c:1630 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggerfunktionen können nur als Trigger aufgerufen werden" -#: pltcl.c:1551 +#: pltcl.c:1634 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl-Funktionen können keinen Rückgabetyp %s haben" -#: pltcl.c:1590 +#: pltcl.c:1673 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl-Funktionen können Typ %s nicht annehmen" -#: pltcl.c:1702 +#: pltcl.c:1785 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "konnte interne Prozedur »%s« nicht erzeugen: %s" -#: pltcl.c:3207 +#: pltcl.c:3295 #, c-format msgid "column name/value list must have even number of elements" msgstr "Liste der Spaltennamen/-werte muss gerade Anzahl Elemente haben" -#: pltcl.c:3225 +#: pltcl.c:3313 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "Liste der Spaltennamen/-werte enthält nicht existierenden Spaltennamen »%s«" -#: pltcl.c:3232 +#: pltcl.c:3320 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "Systemattribut »%s« kann nicht gesetzt werden" -#: pltcl.c:3238 +#: pltcl.c:3326 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kann generierte Spalte »%s« nicht setzen" diff --git a/src/pl/tcl/po/es.po b/src/pl/tcl/po/es.po index ff271b4046100..5020e4ffb189a 100644 --- a/src/pl/tcl/po/es.po +++ b/src/pl/tcl/po/es.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pltcl (PostgreSQL) 16\n" +"Project-Id-Version: pltcl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-22 07:08+0000\n" -"PO-Revision-Date: 2023-05-22 12:06+0200\n" +"POT-Creation-Date: 2025-02-16 19:38+0000\n" +"PO-Revision-Date: 2024-11-16 14:24+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -20,56 +20,61 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: pltcl.c:462 +#: pltcl.c:466 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "función PL/Tcl a ejecutar cuando se use pltcl por primera vez." -#: pltcl.c:469 +#: pltcl.c:473 msgid "PL/TclU function to call once when pltclu is first used." msgstr "función PL/TclU a ejecutar cuando se use pltclu por primera vez." -#: pltcl.c:636 +#: pltcl.c:640 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "la función «%s» está en el lenguaje equivocado" -#: pltcl.c:647 +#: pltcl.c:651 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "la función «%s» no debe ser SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:685 #, c-format msgid "processing %s parameter" msgstr "procesando el parámetro %s" -#: pltcl.c:834 +#: pltcl.c:838 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "se llamó una función que retorna un conjunto en un contexto que no puede aceptarlo" -#: pltcl.c:839 +#: pltcl.c:843 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "se requiere un nodo «materialize», pero no está permitido en este contexto" -#: pltcl.c:1012 +#: pltcl.c:1016 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo" -#: pltcl.c:1295 +#: pltcl.c:1035 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "no se pudo separar el valor de retorno del disparador: %s" +msgid "could not parse function return value: %s" +msgstr "no se pudo interpretar el valor de retorno de la función: %s" -#: pltcl.c:1376 pltcl.c:1803 +#: pltcl.c:1302 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "no se pudo interpretar el valor de retorno del trigger: «%s»" + +#: pltcl.c:1387 pltcl.c:1814 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1377 +#: pltcl.c:1388 #, c-format msgid "" "%s\n" @@ -78,42 +83,42 @@ msgstr "" "%s\n" "en función PL/Tcl \"%s\"" -#: pltcl.c:1540 +#: pltcl.c:1551 #, c-format msgid "trigger functions can only be called as triggers" msgstr "las funciones disparadoras sólo pueden ser invocadas como disparadores" -#: pltcl.c:1544 +#: pltcl.c:1555 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "las funciones PL/Tcl no pueden retornar tipo %s" -#: pltcl.c:1583 +#: pltcl.c:1594 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "las funciones PL/Tcl no pueden aceptar el tipog%s" -#: pltcl.c:1695 +#: pltcl.c:1706 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "no se pudo crear procedimiento interno «%s»: %s" -#: pltcl.c:3199 +#: pltcl.c:3211 #, c-format msgid "column name/value list must have even number of elements" msgstr "la lista de nombres de columnas y valores debe tener un número par de elementos" -#: pltcl.c:3217 +#: pltcl.c:3229 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "la lista de nombres de columnas y valores contiene el nombre de columna no existente «%s»" -#: pltcl.c:3224 +#: pltcl.c:3236 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "no se puede definir el atributo de sistema «%s»" -#: pltcl.c:3230 +#: pltcl.c:3242 #, c-format msgid "cannot set generated column \"%s\"" msgstr "no se puede definir el atributo generado «%s»" diff --git a/src/pl/tcl/po/fr.po b/src/pl/tcl/po/fr.po index 2af48d874a974..e7ab5bc05e70e 100644 --- a/src/pl/tcl/po/fr.po +++ b/src/pl/tcl/po/fr.po @@ -8,10 +8,10 @@ # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-12 05:16+0000\n" -"PO-Revision-Date: 2022-04-12 17:29+0200\n" +"POT-Creation-Date: 2024-08-23 14:08+0000\n" +"PO-Revision-Date: 2024-09-16 16:28+0200\n" "Last-Translator: Guillaume Lelarge \n" "Language-Team: French \n" "Language: fr\n" @@ -19,60 +19,65 @@ msgstr "" "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.1\n" +"X-Generator: Poedit 3.5\n" -#: pltcl.c:463 +#: pltcl.c:462 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "Fonction PL/Tcl à appeler une fois quand pltcl est utilisé pour la première fois." -#: pltcl.c:470 +#: pltcl.c:469 msgid "PL/TclU function to call once when pltclu is first used." msgstr "Fonction PL/TclU à appeler une fois quand pltcl est utilisé pour la première fois." -#: pltcl.c:637 +#: pltcl.c:636 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "la fonction « %s » est dans le mauvais langage" -#: pltcl.c:648 +#: pltcl.c:647 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "la fonction « %s » doit être définie en SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:682 +#: pltcl.c:681 #, c-format msgid "processing %s parameter" msgstr "traitement du paramètre %s" -#: pltcl.c:835 +#: pltcl.c:834 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "la fonction renvoyant un ensemble a été appelée dans un contexte qui n'accepte pas un ensemble" -#: pltcl.c:840 +#: pltcl.c:839 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "mode matérialisé requis mais interdit dans ce contexte" -#: pltcl.c:1013 +#: pltcl.c:1012 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "" "fonction renvoyant le type record appelée dans un contexte qui ne peut pas\n" "accepter le type record" -#: pltcl.c:1297 +#: pltcl.c:1031 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "n'a pas pu séparer la valeur de retour du trigger : %s" +msgid "could not parse function return value: %s" +msgstr "n'a pas pu analyser la valeur de retour de la fonction : %s" -#: pltcl.c:1378 pltcl.c:1808 +#: pltcl.c:1298 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "n'a pas pu analyser la valeur de retour du trigger : %s" + +#: pltcl.c:1383 pltcl.c:1810 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1379 +#: pltcl.c:1384 #, c-format msgid "" "%s\n" @@ -81,60 +86,42 @@ msgstr "" "%s\n" "dans la fonction PL/Tcl « %s »" -#: pltcl.c:1543 +#: pltcl.c:1547 #, c-format msgid "trigger functions can only be called as triggers" msgstr "les fonctions trigger peuvent seulement être appelées par des triggers" -#: pltcl.c:1547 +#: pltcl.c:1551 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "les fonctions PL/Tcl ne peuvent pas renvoyer le type %s" -#: pltcl.c:1586 +#: pltcl.c:1590 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "les fonctions PL/Tcl ne peuvent pas accepter le type %s" -#: pltcl.c:1700 +#: pltcl.c:1702 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "n'a pas pu créer la procédure interne « %s » : %s" -#: pltcl.c:3202 +#: pltcl.c:3207 #, c-format msgid "column name/value list must have even number of elements" msgstr "la liste de nom de colonne/valeur doit avoir un nombre pair d'éléments" -#: pltcl.c:3220 +#: pltcl.c:3225 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "la liste de nom de colonne/valeur contient des noms de colonne inexistantes (« %s »)" -#: pltcl.c:3227 +#: pltcl.c:3232 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "ne peut pas initialiser l'attribut système « %s »" -#: pltcl.c:3233 +#: pltcl.c:3238 #, c-format msgid "cannot set generated column \"%s\"" msgstr "ne peut pas initialiser la colonne générée « %s »" - -#~ msgid "PL/Tcl functions cannot return composite types" -#~ msgstr "les fonctions PL/Tcl ne peuvent pas renvoyer des types composites" - -#~ msgid "could not load module \"unknown\": %s" -#~ msgstr "n'a pas pu charger le module « unknown » : %s" - -#~ msgid "module \"unknown\" not found in pltcl_modules" -#~ msgstr "module « unkown » introuvable dans pltcl_modules" - -#~ msgid "out of memory" -#~ msgstr "mémoire épuisée" - -#~ msgid "trigger's return list must have even number of elements" -#~ msgstr "la liste de retour du trigger doit avoir un nombre pair d'éléments" - -#~ msgid "unrecognized attribute \"%s\"" -#~ msgstr "attribut « %s » non reconnu" diff --git a/src/pl/tcl/po/ja.po b/src/pl/tcl/po/ja.po index 997c675ad76b9..981ecbea20e6b 100644 --- a/src/pl/tcl/po/ja.po +++ b/src/pl/tcl/po/ja.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pltcl (PostgreSQL 17)\n" +"Project-Id-Version: pltcl (PostgreSQL 18)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-06 10:49+0900\n" -"PO-Revision-Date: 2024-06-06 16:12+0900\n" +"POT-Creation-Date: 2024-07-08 10:16+0900\n" +"PO-Revision-Date: 2025-03-31 16:27+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -18,108 +18,105 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.8.13\n" -#: pltcl.c:462 +#: pltcl.c:464 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "pltcl が最初に使用される際に一度だけ呼び出される PL/Tcl 関数。" -#: pltcl.c:469 +#: pltcl.c:471 msgid "PL/TclU function to call once when pltclu is first used." msgstr "pltclu が最初に使用される際に一度だけ呼び出される PL/TclU 関数。" -#: pltcl.c:636 +#: pltcl.c:638 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "関数\"%s\"は言語が異なります" -#: pltcl.c:647 +#: pltcl.c:649 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "関数\"%s\"はSECURITY DEFINERであってはなりません" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:683 #, c-format msgid "processing %s parameter" msgstr "%sパラメーターを処理しています" -#: pltcl.c:834 +#: pltcl.c:836 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "このコンテキストでは、集合値の関数は集合を受け付けられません" -#: pltcl.c:839 +#: pltcl.c:841 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "マテリアライズモードが必要ですが、現在のコンテクストで禁止されています" -#: pltcl.c:1012 +#: pltcl.c:1014 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "レコード型を受け付けられないコンテキストでレコードを返す関数が呼び出されました" -#: pltcl.c:1031 +#: pltcl.c:1033 #, c-format msgid "could not parse function return value: %s" msgstr "関数の戻り値をパースできませんでした: %s" -#: pltcl.c:1298 +#: pltcl.c:1300 #, c-format msgid "could not parse trigger return value: %s" msgstr "トリガの戻り値をパースできませんでした: %s" -#: pltcl.c:1383 pltcl.c:1810 +#: pltcl.c:1401 pltcl.c:1895 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1384 +#: pltcl.c:1402 #, c-format msgid "" "%s\n" -"in PL/Tcl function \"%s\"" +"in PL/Tcl function %s" msgstr "" "%s\n" -"PL/Tcl 関数 \"%s\"" +"PL/Tcl 関数 %s 内" -#: pltcl.c:1547 +#: pltcl.c:1630 #, c-format msgid "trigger functions can only be called as triggers" msgstr "トリガー関数はトリガーとしてのみコールできます" -#: pltcl.c:1551 +#: pltcl.c:1634 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl 関数は%s型の戻り値を返せません" -#: pltcl.c:1590 +#: pltcl.c:1673 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl 関数は%s型を受け付けません" -#: pltcl.c:1702 +#: pltcl.c:1785 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "内部プロシージャ\"%s\"を作成できませんでした: %s" -#: pltcl.c:3207 +#: pltcl.c:3292 #, c-format msgid "column name/value list must have even number of elements" msgstr "列名/値のリストの要素は偶数個でなければなりません" -#: pltcl.c:3225 +#: pltcl.c:3310 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "列名/値のリストの中に、存在しない列名\"%s\"が含まれています" -#: pltcl.c:3232 +#: pltcl.c:3317 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "システム属性\"%s\"は設定できません" -#: pltcl.c:3238 +#: pltcl.c:3323 #, c-format msgid "cannot set generated column \"%s\"" msgstr "生成列\"%s\"を変更できません" - -#~ msgid "could not split return value from trigger: %s" -#~ msgstr "トリガーからの戻り値を分割できませんでした: %s" diff --git a/src/pl/tcl/po/ka.po b/src/pl/tcl/po/ka.po index 6047d595a7ac5..94b739a609d46 100644 --- a/src/pl/tcl/po/ka.po +++ b/src/pl/tcl/po/ka.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pltcl (PostgreSQL) 15\n" +"Project-Id-Version: pltcl (PostgreSQL) 18\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2024-06-04 22:08+0000\n" -"PO-Revision-Date: 2024-06-05 01:38+0200\n" +"POT-Creation-Date: 2025-02-27 09:39+0000\n" +"PO-Revision-Date: 2025-02-27 12:14+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" @@ -16,107 +16,107 @@ msgstr "" "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.3.2\n" +"X-Generator: Poedit 3.5\n" -#: pltcl.c:462 +#: pltcl.c:467 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "PL/Tcl ფუნქცია, როლის გამოძახებაც ერთხელ, pltcl-ის პირველი გამოყენებისას ხდება." -#: pltcl.c:469 +#: pltcl.c:474 msgid "PL/TclU function to call once when pltclu is first used." msgstr "PL/TclU ფუნქცია, როლის გამოძახებაც ერთხელ, pltclu -ის პირველი გამოყენებისას ხდება." -#: pltcl.c:636 +#: pltcl.c:641 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "ფუნქცია \"%s\" არასწორ ენაზეა" -#: pltcl.c:647 +#: pltcl.c:652 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "ფუნქცია \"%s\" არ უნდა იყოს SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:686 #, c-format msgid "processing %s parameter" msgstr "პარამეტრის დამუშავება: %s" -#: pltcl.c:834 +#: pltcl.c:838 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "სეტ-ღირებული ფუნქცია, რომელსაც ეწოდება კონტექსტში, რომელსაც არ შეუძლია მიიღოს ნაკრები" -#: pltcl.c:839 +#: pltcl.c:843 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "საჭიროა მატერიალიზებული რეჟიმი, მაგრამ ამ კონტექსტში ეს დაუშვებელია" -#: pltcl.c:1012 +#: pltcl.c:1016 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "ფუნქცია, რომელიც ჩანაწერს აბრუნებს, გამოძახებულია კონტექსტში, რომელსაც ჩანაწერის მიღება არ შეუძლია" -#: pltcl.c:1031 +#: pltcl.c:1035 #, c-format msgid "could not parse function return value: %s" msgstr "ფუნქციიდან დაბრუნებული მნიშვნელობის დამუშავება შეუძლებელია: %s" -#: pltcl.c:1298 +#: pltcl.c:1301 #, c-format msgid "could not parse trigger return value: %s" msgstr "ტრიგერიდან დაბრუნებული მნიშვნელობის დამუშავება შეუძლებელია: %s" -#: pltcl.c:1383 pltcl.c:1810 +#: pltcl.c:1401 pltcl.c:1895 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1384 +#: pltcl.c:1402 #, c-format msgid "" "%s\n" -"in PL/Tcl function \"%s\"" +"in PL/Tcl function %s" msgstr "" "%s\n" -"PL/Tcl-ის ფუნქციაში\"%s\"" +"PL/Tcl-ის ფუნქციაში %s" -#: pltcl.c:1547 +#: pltcl.c:1630 #, c-format msgid "trigger functions can only be called as triggers" msgstr "ტრიგერის ფუნქციების გამოძახება მხოლოდ ტრიგერებად შეიძლება" -#: pltcl.c:1551 +#: pltcl.c:1634 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl ფუნქციას %s ტიპის დაბრუნება არ შეუძლია" -#: pltcl.c:1590 +#: pltcl.c:1673 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl ფუნქციას %s ტიპის მიღება არ შეუძლია" -#: pltcl.c:1702 +#: pltcl.c:1785 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "შიდა პროცედურის (\"%s\") შექმნის შეცდომა: %s" -#: pltcl.c:3207 +#: pltcl.c:3295 #, c-format msgid "column name/value list must have even number of elements" msgstr "სვეტის სახელი/მნიშვნელობების სიას ელემენტების ლუწი რაოდენობა უნდა ჰქონდეს" -#: pltcl.c:3225 +#: pltcl.c:3313 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "სვეტის სახელი/მნიშვნელობების სია შეიცავს სვეტის არარსებულ სახელს „%s“" -#: pltcl.c:3232 +#: pltcl.c:3320 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "სისტემური ატრიბუტის დაყენების შეცდომა: \"%s\"" -#: pltcl.c:3238 +#: pltcl.c:3326 #, c-format msgid "cannot set generated column \"%s\"" msgstr "გენერირებული სვეტის დაყენება შეუძლებელია: %s" diff --git a/src/pl/tcl/po/ko.po b/src/pl/tcl/po/ko.po index 1b8c5c7a6442e..63d744f6c2113 100644 --- a/src/pl/tcl/po/ko.po +++ b/src/pl/tcl/po/ko.po @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: pltcl (PostgreSQL) 16\n" +"Project-Id-Version: pltcl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-09-07 05:38+0000\n" -"PO-Revision-Date: 2023-05-30 12:40+0900\n" +"POT-Creation-Date: 2025-01-17 04:38+0000\n" +"PO-Revision-Date: 2025-01-16 11:03+0900\n" "Last-Translator: Ioseph Kim \n" "Language-Team: Korean Team \n" "Language: ko\n" @@ -17,58 +17,63 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: pltcl.c:462 +#: pltcl.c:466 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "pltcl 언어가 처음 사용될 때 한번 호출 될 PL/Tcl 함수" -#: pltcl.c:469 +#: pltcl.c:473 msgid "PL/TclU function to call once when pltclu is first used." msgstr "pltclu 언어가 처음 사용될 때 한번 호출 될 PL/Tcl 함수" -#: pltcl.c:636 +#: pltcl.c:640 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "\"%s\" 함수에 잘못된 언어가 있음" -#: pltcl.c:647 +#: pltcl.c:651 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "\"%s\" 함수는 SECURITY DEFINER 속성이 없어야 합니다" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:685 #, c-format msgid "processing %s parameter" msgstr "%s 매개 변수 처리 중" -#: pltcl.c:834 +#: pltcl.c:838 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "집합이 값이 함수가 집합을 사용할 수 없는 구문에서 호출 되었음" -#: pltcl.c:839 +#: pltcl.c:843 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "materialize 모드가 필요합니다만, 이 구문에서는 허용되지 않습니다" -#: pltcl.c:1012 +#: pltcl.c:1016 #, c-format msgid "" "function returning record called in context that cannot accept type record" msgstr "" "레코드를 반환하는 함수가 레코드 형을 사용할 수 없는 구문에서 호출 되었음" -#: pltcl.c:1295 +#: pltcl.c:1035 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "트리거에서 반환값을 분리할 수 없음: %s" +msgid "could not parse function return value: %s" +msgstr "함수 반환값을 분석할 수 없음: %s" -#: pltcl.c:1376 pltcl.c:1803 +#: pltcl.c:1302 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "트리거 반환값을 분석할 수 없음: %s" + +#: pltcl.c:1387 pltcl.c:1814 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1377 +#: pltcl.c:1388 #, c-format msgid "" "%s\n" @@ -77,42 +82,46 @@ msgstr "" "%s\n" "해당 PL/Tcl 함수: \"%s\"" -#: pltcl.c:1540 +#: pltcl.c:1551 #, c-format msgid "trigger functions can only be called as triggers" msgstr "트리거 함수는 트리거로만 호출될 수 있음" -#: pltcl.c:1544 +#: pltcl.c:1555 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl 함수는 %s 자료형을 반환할 수 없음" -#: pltcl.c:1583 +#: pltcl.c:1594 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl 함수는 %s 자료형을 사용할 수 없음" -#: pltcl.c:1695 +#: pltcl.c:1706 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "\"%s\" 내부 프로시져를 만들 수 없음: %s" -#: pltcl.c:3199 +#: pltcl.c:3211 #, c-format msgid "column name/value list must have even number of elements" msgstr "칼럼 이름/값 목록은 그 요소의 개수가 짝수여야 함" -#: pltcl.c:3217 +#: pltcl.c:3229 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "칼럼 이름/값 목록에 \"%s\" 칼럼에 대한 값이 없음" -#: pltcl.c:3224 +#: pltcl.c:3236 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "\"%s\" 시스템 속성을 지정할 수 없음" -#: pltcl.c:3230 +#: pltcl.c:3242 #, c-format msgid "cannot set generated column \"%s\"" msgstr "\"%s\" 계산된 칼럼을 지정할 수 없음" + +#, c-format +#~ msgid "could not split return value from trigger: %s" +#~ msgstr "트리거에서 반환값을 분리할 수 없음: %s" diff --git a/src/pl/tcl/po/ru.po b/src/pl/tcl/po/ru.po index 8d136272242ca..1f15520c8cba6 100644 --- a/src/pl/tcl/po/ru.po +++ b/src/pl/tcl/po/ru.po @@ -1,13 +1,13 @@ # Russian message translation file for pltcl # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Alexander Lakhin , 2012-2017, 2019, 2022. +# Alexander Lakhin , 2012-2017, 2019, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: pltcl (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-08-28 07:59+0300\n" -"PO-Revision-Date: 2022-09-05 13:38+0300\n" +"POT-Creation-Date: 2025-02-08 07:44+0200\n" +"PO-Revision-Date: 2024-08-01 13:03+0300\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -17,59 +17,64 @@ msgstr "" "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" -#: pltcl.c:462 +#: pltcl.c:466 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "Функция на PL/Tcl, вызываемая при первом использовании pltcl." -#: pltcl.c:469 +#: pltcl.c:473 msgid "PL/TclU function to call once when pltclu is first used." msgstr "Функция на PL/TclU, вызываемая при первом использовании pltclu." -#: pltcl.c:636 +#: pltcl.c:640 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "Функция \"%s\" объявлена на другом языке" -#: pltcl.c:647 +#: pltcl.c:651 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "функция \"%s\" не должна иметь характеристику SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:681 +#: pltcl.c:685 #, c-format msgid "processing %s parameter" msgstr "обработка параметра %s" -#: pltcl.c:834 +#: pltcl.c:838 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "" "функция, возвращающая множество, вызвана в контексте, где ему нет места" -#: pltcl.c:839 +#: pltcl.c:843 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "требуется режим материализации, но он недопустим в этом контексте" -#: pltcl.c:1012 +#: pltcl.c:1016 #, c-format msgid "" "function returning record called in context that cannot accept type record" msgstr "" "функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" -#: pltcl.c:1295 +#: pltcl.c:1035 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "разложить возвращаемое из триггера значение не удалось: %s" +msgid "could not parse function return value: %s" +msgstr "разобрать возвращаемое функцией значение не удалось: %s" -#: pltcl.c:1376 pltcl.c:1803 +#: pltcl.c:1302 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "разобрать возвращаемое триггером значение не удалось: %s" + +#: pltcl.c:1387 pltcl.c:1814 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1377 +#: pltcl.c:1388 #, c-format msgid "" "%s\n" @@ -78,43 +83,43 @@ msgstr "" "%s\n" "в функции PL/Tcl \"%s\"" -#: pltcl.c:1540 +#: pltcl.c:1551 #, c-format msgid "trigger functions can only be called as triggers" msgstr "триггерные функции могут вызываться только в триггерах" -#: pltcl.c:1544 +#: pltcl.c:1555 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "функции PL/Tcl не могут возвращать тип %s" -#: pltcl.c:1583 +#: pltcl.c:1594 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "функции PL/Tcl не могут принимать тип %s" -#: pltcl.c:1695 +#: pltcl.c:1706 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "не удалось создать внутреннюю процедуру \"%s\": %s" -#: pltcl.c:3199 +#: pltcl.c:3211 #, c-format msgid "column name/value list must have even number of elements" msgstr "в списке имён/значений столбцов должно быть чётное число элементов" -#: pltcl.c:3217 +#: pltcl.c:3229 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "" "список имён/значений столбцов содержит имя несуществующего столбца \"%s\"" -#: pltcl.c:3224 +#: pltcl.c:3236 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "присвоить значение системному атрибуту \"%s\" нельзя" -#: pltcl.c:3230 +#: pltcl.c:3242 #, c-format msgid "cannot set generated column \"%s\"" msgstr "присвоить значение генерируемому столбцу \"%s\" нельзя" diff --git a/src/pl/tcl/po/sv.po b/src/pl/tcl/po/sv.po index 5d140445206d9..d6fce1b82cbcd 100644 --- a/src/pl/tcl/po/sv.po +++ b/src/pl/tcl/po/sv.po @@ -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, 2021, 2022, 2023. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" -"Project-Id-Version: PostgreSQL 15\n" +"Project-Id-Version: PostgreSQL 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 13:38+0000\n" -"PO-Revision-Date: 2023-03-09 22:42+0100\n" +"POT-Creation-Date: 2024-07-12 17:38+0000\n" +"PO-Revision-Date: 2024-07-12 22:05+0200\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,56 +17,61 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: pltcl.c:463 +#: pltcl.c:462 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "PL/Tcl-funktion att anropa en gång när pltcl först används." -#: pltcl.c:470 +#: pltcl.c:469 msgid "PL/TclU function to call once when pltclu is first used." msgstr "PL/TclU-funktion att anrop en gång när pltclu först används." -#: pltcl.c:637 +#: pltcl.c:636 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "funktionen \"%s\" är skriven i fel språk" -#: pltcl.c:648 +#: pltcl.c:647 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "funktionen \"%s\" får ej vara SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:682 +#: pltcl.c:681 #, c-format msgid "processing %s parameter" msgstr "processar parameter %s" -#: pltcl.c:835 +#: pltcl.c:834 #, 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:840 +#: pltcl.c:839 #, 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" -#: pltcl.c:1013 +#: pltcl.c:1012 #, 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:1297 +#: pltcl.c:1031 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "kunde inte dela på returvärde från trigger: %s" +msgid "could not parse function return value: %s" +msgstr "kunde inte parsa funktions returvärde: %s" -#: pltcl.c:1378 pltcl.c:1808 +#: pltcl.c:1298 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "kunde inte parsa triggers returvärde: %s" + +#: pltcl.c:1383 pltcl.c:1810 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1379 +#: pltcl.c:1384 #, c-format msgid "" "%s\n" @@ -75,42 +80,42 @@ msgstr "" "%s\n" "i PL/Tcl-funktion \"%s\"" -#: pltcl.c:1543 +#: pltcl.c:1547 #, c-format msgid "trigger functions can only be called as triggers" msgstr "Triggningsfunktioner kan bara anropas vid triggning." -#: pltcl.c:1547 +#: pltcl.c:1551 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "PL/Tcl-funktioner kan inte returnera typ %s" -#: pltcl.c:1586 +#: pltcl.c:1590 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "PL/Tcl-funktioner kan inte ta emot typ %s" -#: pltcl.c:1700 +#: pltcl.c:1702 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "kunde inte skapa en intern procedur \"%s\": %s" -#: pltcl.c:3202 +#: pltcl.c:3207 #, 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:3220 +#: pltcl.c:3225 #, 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:3227 +#: pltcl.c:3232 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "kan inte sätta systemattribut \"%s\"" -#: pltcl.c:3233 +#: pltcl.c:3238 #, c-format msgid "cannot set generated column \"%s\"" msgstr "kan inte sätta genererad kolumn \"%s\"" diff --git a/src/pl/tcl/po/uk.po b/src/pl/tcl/po/uk.po index ceb1e782e6539..6caba5446ef7e 100644 --- a/src/pl/tcl/po/uk.po +++ b/src/pl/tcl/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:38+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2024-08-31 06:08+0000\n" +"PO-Revision-Date: 2024-09-23 19:38\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -14,101 +14,106 @@ msgstr "" "X-Crowdin-Project: postgresql\n" "X-Crowdin-Project-ID: 324573\n" "X-Crowdin-Language: uk\n" -"X-Crowdin-File: /REL_15_STABLE/pltcl.pot\n" -"X-Crowdin-File-ID: 914\n" +"X-Crowdin-File: /REL_17_STABLE/pltcl.pot\n" +"X-Crowdin-File-ID: 1016\n" -#: pltcl.c:463 +#: pltcl.c:462 msgid "PL/Tcl function to call once when pltcl is first used." msgstr "Функція PL/Tcl використовується для виклику коли pltcl вперше використаний." -#: pltcl.c:470 +#: pltcl.c:469 msgid "PL/TclU function to call once when pltclu is first used." msgstr "Функція PL/TclU використовується для виклику коли pltclu вперше використаний." -#: pltcl.c:637 +#: pltcl.c:636 #, c-format msgid "function \"%s\" is in the wrong language" msgstr "функція «%s» написана неправильною мовою" -#: pltcl.c:648 +#: pltcl.c:647 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" msgstr "функція \"%s\" не має бути SECURITY DEFINER" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:682 +#: pltcl.c:681 #, c-format msgid "processing %s parameter" msgstr "обробляється параметр %s" -#: pltcl.c:835 +#: pltcl.c:834 #, c-format msgid "set-valued function called in context that cannot accept a set" msgstr "функція \"set-valued\" викликана в контексті, де йому немає місця" -#: pltcl.c:840 +#: pltcl.c:839 #, c-format msgid "materialize mode required, but it is not allowed in this context" msgstr "необхідний режим матеріалізації (materialize mode), але він неприпустимий у цьому контексті" -#: pltcl.c:1013 +#: pltcl.c:1012 #, c-format msgid "function returning record called in context that cannot accept type record" msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" -#: pltcl.c:1296 +#: pltcl.c:1031 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "не вдалося розділити повернене значення з тригера: %s" +msgid "could not parse function return value: %s" +msgstr "не вдалося проаналізувати значення функції: %s" -#: pltcl.c:1377 pltcl.c:1807 +#: pltcl.c:1298 +#, c-format +msgid "could not parse trigger return value: %s" +msgstr "не вдалося проаналізувати значення тригера: %s" + +#: pltcl.c:1383 pltcl.c:1810 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1378 +#: pltcl.c:1384 #, c-format msgid "%s\n" "in PL/Tcl function \"%s\"" msgstr "%s\n" "у функції PL/Tcl \"%s\"" -#: pltcl.c:1542 +#: pltcl.c:1547 #, c-format msgid "trigger functions can only be called as triggers" msgstr "тригер-функція може викликатися лише як тригер" -#: pltcl.c:1546 +#: pltcl.c:1551 #, c-format msgid "PL/Tcl functions cannot return type %s" msgstr "Функції PL/Tcl не можуть повертати тип %s" -#: pltcl.c:1585 +#: pltcl.c:1590 #, c-format msgid "PL/Tcl functions cannot accept type %s" msgstr "Функції PL/Tcl не можуть приймати тип %s" -#: pltcl.c:1699 +#: pltcl.c:1702 #, c-format msgid "could not create internal procedure \"%s\": %s" msgstr "не вдалося створити внутрішню процедуру \"%s\": %s" -#: pltcl.c:3201 +#: pltcl.c:3207 #, c-format msgid "column name/value list must have even number of elements" msgstr "список імен і значень стовпців повинен мати парну кількість елементів" -#: pltcl.c:3219 +#: pltcl.c:3225 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" msgstr "список імен і значень стовпців містить неіснуєче ім'я стовпця \"%s\"" -#: pltcl.c:3226 +#: pltcl.c:3232 #, c-format msgid "cannot set system attribute \"%s\"" msgstr "не вдалося встановити системний атрибут \"%s\"" -#: pltcl.c:3232 +#: pltcl.c:3238 #, c-format msgid "cannot set generated column \"%s\"" msgstr "неможливо оновити згенерований стовпець \"%s\"" diff --git a/src/pl/tcl/po/zh_CN.po b/src/pl/tcl/po/zh_CN.po index d9e49a74ce8d6..d7c8cc5cac877 100644 --- a/src/pl/tcl/po/zh_CN.po +++ b/src/pl/tcl/po/zh_CN.po @@ -1,111 +1,125 @@ # LANGUAGE message translation file for pltcl # Copyright (C) 2019 PostgreSQL Global Development Group # This file is distributed under the same license as the pltcl (PostgreSQL) package. -# FIRST AUTHOR , 2019. +# Dianjin Wang , 2024 # msgid "" msgstr "" -"Project-Id-Version: pltcl (PostgreSQL) 14\n" +"Project-Id-Version: pltcl (PostgreSQL) 17\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2021-08-14 05:38+0000\n" -"PO-Revision-Date: 2021-08-16 18:00+0800\n" -"Last-Translator: Jie Zhang \n" +"POT-Creation-Date: 2024-09-13 22:40+0000\n" +"PO-Revision-Date: 2024-09-14 13:50+0800\n" +"Last-Translator: Dianjin Wang \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.7\n" +"X-Generator: Poedit 3.4.4\n" -#: pltcl.c:463 +#: pltcl.c:462 msgid "PL/Tcl function to call once when pltcl is first used." -msgstr "PL/Tcl函数在首次使用pltcl时调用一次." +msgstr "PL/Tcl 函数在首次使用 pltcl 时调用一次." -#: pltcl.c:470 +#: pltcl.c:469 msgid "PL/TclU function to call once when pltclu is first used." -msgstr "PL/TclU函数在首次使用pltcl时调用一次." +msgstr "PL/TclU 函数在首次使用 pltclu 时调用一次." -#: pltcl.c:634 +#: pltcl.c:636 #, c-format msgid "function \"%s\" is in the wrong language" -msgstr "函数\"%s\"的语言错误" +msgstr "函数 \"%s\" 所用语言错误" -#: pltcl.c:645 +#: pltcl.c:647 #, c-format msgid "function \"%s\" must not be SECURITY DEFINER" -msgstr "函数\"%s\"不能是安全定义者" +msgstr "函数 \"%s\" 不能是安全定义者" #. translator: %s is "pltcl.start_proc" or "pltclu.start_proc" -#: pltcl.c:679 +#: pltcl.c:681 #, c-format msgid "processing %s parameter" -msgstr "正在处理%s参数" +msgstr "正在处理 %s 参数" -#: pltcl.c:833 +#: pltcl.c:834 #, c-format msgid "set-valued function called in context that cannot accept a set" -msgstr "在不能接受使用集合的环境中调用set-valued函数" +msgstr "在不能接受使用集合的环境中调用 set-valued 函数" -#: pltcl.c:1006 +#: pltcl.c:839 +#, c-format +msgid "materialize mode required, but it is not allowed in this context" +msgstr "要求物化模式,但是在这种环境下不允许使用" + +#: pltcl.c:1012 #, c-format msgid "function returning record called in context that cannot accept type record" -msgstr "返回值类型是记录的函数在不接受使用记录类型的环境中调用" +msgstr "在不接受记录类型的环境中调用返回记录的函数" + +#: pltcl.c:1031 +#, c-format +msgid "could not parse function return value: %s" +msgstr "无法解析函数返回值: %s" -#: pltcl.c:1290 +#: pltcl.c:1298 #, c-format -msgid "could not split return value from trigger: %s" -msgstr "无法分离来自触发器的返回值:%s" +msgid "could not parse trigger return value: %s" +msgstr "无法解析触发器返回值: %s" -#: pltcl.c:1371 pltcl.c:1801 +#: pltcl.c:1383 pltcl.c:1810 #, c-format msgid "%s" msgstr "%s" -#: pltcl.c:1372 +#: pltcl.c:1384 #, c-format msgid "" "%s\n" "in PL/Tcl function \"%s\"" msgstr "" "%s\n" -"在PL/Tcl函数\"%s\"中" +"在 PL/Tcl 函数 \"%s\" 中" -#: pltcl.c:1536 +#: pltcl.c:1547 #, c-format msgid "trigger functions can only be called as triggers" msgstr "触发器函数只能以触发器的形式调用" -#: pltcl.c:1540 +#: pltcl.c:1551 #, c-format msgid "PL/Tcl functions cannot return type %s" -msgstr "PL/Tcl函数不能返回类型%s" +msgstr "PL/Tcl 函数无法返回类型 %s" -#: pltcl.c:1579 +#: pltcl.c:1590 #, c-format msgid "PL/Tcl functions cannot accept type %s" -msgstr "PL/Tcl函数不能使用类型 %s" +msgstr "PL/Tcl 函数无法接受类型 %s" -#: pltcl.c:1693 +#: pltcl.c:1702 #, c-format msgid "could not create internal procedure \"%s\": %s" -msgstr "无法创建内部过程\"%s\":%s" +msgstr "无法创建内部过程 \"%s\":%s" -#: pltcl.c:3197 +#: pltcl.c:3207 #, c-format msgid "column name/value list must have even number of elements" msgstr "列名/值列表必须具有偶数个元素" -#: pltcl.c:3215 +#: pltcl.c:3225 #, c-format msgid "column name/value list contains nonexistent column name \"%s\"" -msgstr "列名/值列表包含不存在的列名\"%s\"" +msgstr "列名/值列表包含不存在的列名 \"%s\"" -#: pltcl.c:3222 +#: pltcl.c:3232 #, c-format msgid "cannot set system attribute \"%s\"" -msgstr "不能设置系统属性\"%s\"" +msgstr "不能设置系统属性 \"%s\"" -#: pltcl.c:3228 +#: pltcl.c:3238 #, c-format msgid "cannot set generated column \"%s\"" msgstr "无法设置生成的列 \"%s\"" + +#, c-format +#~ msgid "could not split return value from trigger: %s" +#~ msgstr "无法分离来自触发器的返回值:%s" diff --git a/src/port/Makefile b/src/port/Makefile index f11896440d564..4274949dfa4c1 100644 --- a/src/port/Makefile +++ b/src/port/Makefile @@ -45,6 +45,7 @@ OBJS = \ path.o \ pg_bitutils.o \ pg_localeconv_r.o \ + pg_numa.o \ pg_popcount_aarch64.o \ pg_popcount_avx512.o \ pg_strong_random.o \ diff --git a/src/port/explicit_bzero.c b/src/port/explicit_bzero.c index 1d37b119bab13..53766e86e940d 100644 --- a/src/port/explicit_bzero.c +++ b/src/port/explicit_bzero.c @@ -12,9 +12,11 @@ *------------------------------------------------------------------------- */ +#define __STDC_WANT_LIB_EXT1__ 1 /* needed to access memset_s() */ + #include "c.h" -#if defined(HAVE_MEMSET_S) +#if HAVE_DECL_MEMSET_S void explicit_bzero(void *buf, size_t len) diff --git a/src/port/meson.build b/src/port/meson.build index cf7f07644b908..fc7b059fee50f 100644 --- a/src/port/meson.build +++ b/src/port/meson.build @@ -8,6 +8,7 @@ pgport_sources = [ 'path.c', 'pg_bitutils.c', 'pg_localeconv_r.c', + 'pg_numa.c', 'pg_popcount_aarch64.c', 'pg_popcount_avx512.c', 'pg_strong_random.c', @@ -73,6 +74,7 @@ replace_funcs_neg = [ ['strlcpy'], ['strnlen'], ['strsep'], + ['timingsafe_bcmp'], ] if host_system != 'windows' @@ -85,6 +87,7 @@ replace_funcs_pos = [ # x86/x64 ['pg_crc32c_sse42', 'USE_SSE42_CRC32C'], ['pg_crc32c_sse42', 'USE_SSE42_CRC32C_WITH_RUNTIME_CHECK'], + ['pg_crc32c_sse42_choose', 'USE_SSE42_CRC32C'], ['pg_crc32c_sse42_choose', 'USE_SSE42_CRC32C_WITH_RUNTIME_CHECK'], ['pg_crc32c_sb8', 'USE_SSE42_CRC32C_WITH_RUNTIME_CHECK'], diff --git a/src/port/pg_crc32c_sse42.c b/src/port/pg_crc32c_sse42.c index 22c2137df31c1..9af3474a6ca95 100644 --- a/src/port/pg_crc32c_sse42.c +++ b/src/port/pg_crc32c_sse42.c @@ -1,7 +1,7 @@ /*------------------------------------------------------------------------- * * pg_crc32c_sse42.c - * Compute CRC-32C checksum using Intel SSE 4.2 instructions. + * Compute CRC-32C checksum using Intel SSE 4.2 or AVX-512 instructions. * * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -15,6 +15,9 @@ #include "c.h" #include +#ifdef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK +#include +#endif #include "port/pg_crc32c.h" @@ -68,3 +71,91 @@ pg_comp_crc32c_sse42(pg_crc32c crc, const void *data, size_t len) return crc; } + +#ifdef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK + +/* + * Note: There is no copyright notice in the following generated code. + * + * We have modified the output to + * - match our function declaration + * - match whitespace to our project style + * - add a threshold for the alignment stanza + */ + +/* Generated by https://github.com/corsix/fast-crc32/ using: */ +/* ./generate -i avx512_vpclmulqdq -p crc32c -a v1e */ +/* MIT licensed */ + +#define clmul_lo(a, b) (_mm512_clmulepi64_epi128((a), (b), 0)) +#define clmul_hi(a, b) (_mm512_clmulepi64_epi128((a), (b), 17)) + +pg_attribute_target("vpclmulqdq,avx512vl") +pg_crc32c +pg_comp_crc32c_avx512(pg_crc32c crc, const void *data, size_t len) +{ + /* adjust names to match generated code */ + pg_crc32c crc0 = crc; + const char *buf = data; + + /* Align on cacheline boundary. The threshold is somewhat arbitrary. */ + if (unlikely(len > 256)) + { + for (; len && ((uintptr_t) buf & 7); --len) + crc0 = _mm_crc32_u8(crc0, *buf++); + while (((uintptr_t) buf & 56) && len >= 8) + { + crc0 = _mm_crc32_u64(crc0, *(const uint64_t *) buf); + buf += 8; + len -= 8; + } + } + + if (len >= 64) + { + const char *end = buf + len; + const char *limit = buf + len - 64; + __m128i z0; + + /* First vector chunk. */ + __m512i x0 = _mm512_loadu_si512((const void *) buf), + y0; + __m512i k; + + k = _mm512_broadcast_i32x4(_mm_setr_epi32(0x740eef02, 0, 0x9e4addf8, 0)); + x0 = _mm512_xor_si512(_mm512_castsi128_si512(_mm_cvtsi32_si128(crc0)), x0); + buf += 64; + + /* Main loop. */ + while (buf <= limit) + { + y0 = clmul_lo(x0, k), x0 = clmul_hi(x0, k); + x0 = _mm512_ternarylogic_epi64(x0, y0, + _mm512_loadu_si512((const void *) buf), + 0x96); + buf += 64; + } + + /* Reduce 512 bits to 128 bits. */ + k = _mm512_setr_epi32(0x1c291d04, 0, 0xddc0152b, 0, + 0x3da6d0cb, 0, 0xba4fc28e, 0, + 0xf20c0dfe, 0, 0x493c7d27, 0, + 0, 0, 0, 0); + y0 = clmul_lo(x0, k), k = clmul_hi(x0, k); + y0 = _mm512_xor_si512(y0, k); + z0 = _mm_ternarylogic_epi64(_mm512_castsi512_si128(y0), + _mm512_extracti32x4_epi32(y0, 1), + _mm512_extracti32x4_epi32(y0, 2), + 0x96); + z0 = _mm_xor_si128(z0, _mm512_extracti32x4_epi32(x0, 3)); + + /* Reduce 128 bits to 32 bits, and multiply by x^32. */ + crc0 = _mm_crc32_u64(0, _mm_extract_epi64(z0, 0)); + crc0 = _mm_crc32_u64(crc0, _mm_extract_epi64(z0, 1)); + len = end - buf; + } + + return pg_comp_crc32c_sse42(crc0, buf, len); +} + +#endif diff --git a/src/port/pg_crc32c_sse42_choose.c b/src/port/pg_crc32c_sse42_choose.c index 65dbc4d42497b..74d2421ba2be9 100644 --- a/src/port/pg_crc32c_sse42_choose.c +++ b/src/port/pg_crc32c_sse42_choose.c @@ -20,30 +20,37 @@ #include "c.h" -#ifdef HAVE__GET_CPUID +#if defined(HAVE__GET_CPUID) || defined(HAVE__GET_CPUID_COUNT) #include #endif -#ifdef HAVE__CPUID +#if defined(HAVE__CPUID) || defined(HAVE__CPUIDEX) #include #endif +#ifdef HAVE_XSAVE_INTRINSICS +#include +#endif + #include "port/pg_crc32c.h" +/* + * Does XGETBV say the ZMM registers are enabled? + * + * NB: Caller is responsible for verifying that osxsave is available + * before calling this. + */ +#ifdef HAVE_XSAVE_INTRINSICS +pg_attribute_target("xsave") +#endif static bool -pg_crc32c_sse42_available(void) +zmm_regs_available(void) { - unsigned int exx[4] = {0, 0, 0, 0}; - -#if defined(HAVE__GET_CPUID) - __get_cpuid(1, &exx[0], &exx[1], &exx[2], &exx[3]); -#elif defined(HAVE__CPUID) - __cpuid(exx, 1); +#ifdef HAVE_XSAVE_INTRINSICS + return (_xgetbv(0) & 0xe6) == 0xe6; #else -#error cpuid instruction not available + return false; #endif - - return (exx[2] & (1 << 20)) != 0; /* SSE 4.2 */ } /* @@ -53,10 +60,48 @@ pg_crc32c_sse42_available(void) static pg_crc32c pg_comp_crc32c_choose(pg_crc32c crc, const void *data, size_t len) { - if (pg_crc32c_sse42_available()) + unsigned int exx[4] = {0, 0, 0, 0}; + + /* + * Set fallback. We must guard since slicing-by-8 is not visible + * everywhere. + */ +#ifdef USE_SSE42_CRC32C_WITH_RUNTIME_CHECK + pg_comp_crc32c = pg_comp_crc32c_sb8; +#endif + +#if defined(HAVE__GET_CPUID) + __get_cpuid(1, &exx[0], &exx[1], &exx[2], &exx[3]); +#elif defined(HAVE__CPUID) + __cpuid(exx, 1); +#else +#error cpuid instruction not available +#endif + + if ((exx[2] & (1 << 20)) != 0) /* SSE 4.2 */ + { pg_comp_crc32c = pg_comp_crc32c_sse42; - else - pg_comp_crc32c = pg_comp_crc32c_sb8; + + if (exx[2] & (1 << 27) && /* OSXSAVE */ + zmm_regs_available()) + { + /* second cpuid call on leaf 7 to check extended AVX-512 support */ + + memset(exx, 0, 4 * sizeof(exx[0])); + +#if defined(HAVE__GET_CPUID_COUNT) + __get_cpuid_count(7, 0, &exx[0], &exx[1], &exx[2], &exx[3]); +#elif defined(HAVE__CPUIDEX) + __cpuidex(exx, 7, 0); +#endif + +#ifdef USE_AVX512_CRC32C_WITH_RUNTIME_CHECK + if (exx[2] & (1 << 10) && /* VPCLMULQDQ */ + exx[1] & (1 << 31)) /* AVX512-VL */ + pg_comp_crc32c = pg_comp_crc32c_avx512; +#endif + } + } return pg_comp_crc32c(crc, data, len); } diff --git a/src/port/pg_localeconv_r.c b/src/port/pg_localeconv_r.c index 938b4f82e1217..61510b2e0ea37 100644 --- a/src/port/pg_localeconv_r.c +++ b/src/port/pg_localeconv_r.c @@ -3,7 +3,7 @@ * pg_localeconv_r.c * Thread-safe implementations of localeconv() * - * Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * @@ -216,7 +216,7 @@ pg_localeconv_copy_members(struct lconv *dst, * implied by the LC_MONETARY or LC_NUMERIC locale name. On Windows, LC_CTYPE * has to match to get sane results. * - * To get predicable results on all platforms, we'll call the underlying + * To get predictable results on all platforms, we'll call the underlying * routines with LC_ALL set to the appropriate locale for each set of members, * and merge the results. Three members of the resulting object are therefore * guaranteed to be encoded with LC_NUMERIC's codeset: "decimal_point", @@ -224,7 +224,7 @@ pg_localeconv_copy_members(struct lconv *dst, * LC_MONETARY's codeset. * * Returns 0 on success. Returns non-zero on failure, and sets errno. On - * success, the caller is responsible for calling pg_localeconf_free() on the + * success, the caller is responsible for calling pg_localeconv_free() on the * output struct to free the string members it contains. */ int diff --git a/src/port/pg_numa.c b/src/port/pg_numa.c new file mode 100644 index 0000000000000..4b487a2a4e814 --- /dev/null +++ b/src/port/pg_numa.c @@ -0,0 +1,80 @@ +/*------------------------------------------------------------------------- + * + * pg_numa.c + * Basic NUMA portability routines + * + * + * Copyright (c) 2025, PostgreSQL Global Development Group + * + * + * IDENTIFICATION + * src/port/pg_numa.c + * + *------------------------------------------------------------------------- + */ + +#include "c.h" +#include + +#include "port/pg_numa.h" + +/* + * At this point we provide support only for Linux thanks to libnuma, but in + * future support for other platforms e.g. Win32 or FreeBSD might be possible + * too. For Win32 NUMA APIs see + * https://learn.microsoft.com/en-us/windows/win32/procthread/numa-support + */ +#ifdef USE_LIBNUMA + +#include +#include + +/* libnuma requires initialization as per numa(3) on Linux */ +int +pg_numa_init(void) +{ + int r = numa_available(); + + return r; +} + +/* + * We use move_pages(2) syscall here - instead of get_mempolicy(2) - as the + * first one allows us to batch and query about many memory pages in one single + * giant system call that is way faster. + */ +int +pg_numa_query_pages(int pid, unsigned long count, void **pages, int *status) +{ + return numa_move_pages(pid, count, pages, NULL, status, 0); +} + +int +pg_numa_get_max_node(void) +{ + return numa_max_node(); +} + +#else + +/* Empty wrappers */ +int +pg_numa_init(void) +{ + /* We state that NUMA is not available */ + return -1; +} + +int +pg_numa_query_pages(int pid, unsigned long count, void **pages, int *status) +{ + return 0; +} + +int +pg_numa_get_max_node(void) +{ + return 0; +} + +#endif diff --git a/src/port/pg_popcount_aarch64.c b/src/port/pg_popcount_aarch64.c index bed0f7ab242d4..e515e4d45b8c4 100644 --- a/src/port/pg_popcount_aarch64.c +++ b/src/port/pg_popcount_aarch64.c @@ -457,7 +457,7 @@ pg_popcount_masked_neon(const char *buf, int bytes, bits8 mask) popcnt += vaddvq_u64(vaddq_u64(accum3, accum4)); /* - * Process remining 8-byte blocks. + * Process remaining 8-byte blocks. */ for (; bytes >= sizeof(uint64); bytes -= sizeof(uint64)) { diff --git a/src/port/timingsafe_bcmp.c b/src/port/timingsafe_bcmp.c new file mode 100644 index 0000000000000..288865f50d179 --- /dev/null +++ b/src/port/timingsafe_bcmp.c @@ -0,0 +1,43 @@ +/* + * src/port/timingsafe_bcmp.c + * + * $OpenBSD: timingsafe_bcmp.c,v 1.3 2015/08/31 02:53:57 guenther Exp $ + */ + +/* + * Copyright (c) 2010 Damien Miller. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "c.h" + +#ifdef USE_SSL +#include +#endif + +int +timingsafe_bcmp(const void *b1, const void *b2, size_t n) +{ +#ifdef USE_SSL + return CRYPTO_memcmp(b1, b2, n); +#else + const unsigned char *p1 = b1, + *p2 = b2; + int ret = 0; + + for (; n > 0; n--) + ret |= *p1++ ^ *p2++; + return (ret != 0); +#endif +} diff --git a/src/test/authentication/t/001_password.pl b/src/test/authentication/t/001_password.pl index 756b414605006..37d96d95a1aeb 100644 --- a/src/test/authentication/t/001_password.pl +++ b/src/test/authentication/t/001_password.pl @@ -66,6 +66,8 @@ sub test_conn my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init; $node->append_conf('postgresql.conf', "log_connections = on\n"); +# Needed to allow connect_fails to inspect postmaster log: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->start; # Test behavior of log_connections GUC diff --git a/src/test/authentication/t/003_peer.pl b/src/test/authentication/t/003_peer.pl index 69ba73bd2b9ae..f2320b62c8721 100644 --- a/src/test/authentication/t/003_peer.pl +++ b/src/test/authentication/t/003_peer.pl @@ -71,7 +71,9 @@ sub test_role my $node = PostgreSQL::Test::Cluster->new('node'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = authentication\n"); +# Needed to allow connect_fails to inspect postmaster log: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->start; # Set pg_hba.conf with the peer authentication. diff --git a/src/test/authentication/t/005_sspi.pl b/src/test/authentication/t/005_sspi.pl index b480b70259022..cb3e169002f36 100644 --- a/src/test/authentication/t/005_sspi.pl +++ b/src/test/authentication/t/005_sspi.pl @@ -18,7 +18,7 @@ # Initialize primary node my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = authentication\n"); $node->start; my $huge_pages_status = diff --git a/src/test/authentication/t/007_pre_auth.pl b/src/test/authentication/t/007_pre_auth.pl index 12e40dc722c93..7b3765e6d253b 100644 --- a/src/test/authentication/t/007_pre_auth.pl +++ b/src/test/authentication/t/007_pre_auth.pl @@ -20,7 +20,7 @@ $node->init; $node->append_conf( 'postgresql.conf', q[ -log_connections = on +log_connections = 'receipt,authentication' ]); $node->start; diff --git a/src/test/isolation/expected/detach-partition-concurrently-2.out b/src/test/isolation/expected/detach-partition-concurrently-2.out index 6f025d81f5e04..10cce9044f3ce 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-2.out +++ b/src/test/isolation/expected/detach-partition-concurrently-2.out @@ -41,7 +41,7 @@ a step s3i1: INSERT INTO d_lp_fk_r VALUES (1); step s2d: ALTER TABLE d_lp_fk DETACH PARTITION d_lp_fk_1 CONCURRENTLY; -ERROR: removing partition "d_lp_fk_1" violates foreign key constraint "d_lp_fk_r_a_fkey1" +ERROR: removing partition "d_lp_fk_1" violates foreign key constraint "d_lp_fk_r_a_fkey_1" step s1c: COMMIT; starting permutation: s1b s1s s3i2 s2d s1c diff --git a/src/test/isolation/expected/detach-partition-concurrently-4.out b/src/test/isolation/expected/detach-partition-concurrently-4.out index b652522e4248c..79b29ae4c1033 100644 --- a/src/test/isolation/expected/detach-partition-concurrently-4.out +++ b/src/test/isolation/expected/detach-partition-concurrently-4.out @@ -298,7 +298,7 @@ step s1updcur: update d4_fk set a = 1 where current of f; step s2detach: alter table d4_primary detach partition d4_primary1 concurrently; step s1c: commit; step s2detach: <... completed> -ERROR: removing partition "d4_primary1" violates foreign key constraint "d4_fk_a_fkey1" +ERROR: removing partition "d4_primary1" violates foreign key constraint "d4_fk_a_fkey_1" starting permutation: s2snitch s1b s1s s2detach s3insert s1c step s2snitch: insert into d4_pid select pg_backend_pid(); diff --git a/src/test/isolation/expected/fk-partitioned-1.out b/src/test/isolation/expected/fk-partitioned-1.out index 45f2f8cba710d..686f7184d0b71 100644 --- a/src/test/isolation/expected/fk-partitioned-1.out +++ b/src/test/isolation/expected/fk-partitioned-1.out @@ -54,7 +54,7 @@ step s2a: alter table pfk attach partition pfk1 for values in (1); step s1d: delete from ppk1 where a = 1; step s2c: commit; step s1d: <... completed> -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s1b s2b s2a s2c s1d s1c @@ -63,7 +63,7 @@ step s2b: begin; step s2a: alter table pfk attach partition pfk1 for values in (1); step s2c: commit; step s1d: delete from ppk1 where a = 1; -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s2b s1b s1d s1c s2a s2c @@ -92,7 +92,7 @@ step s2a: alter table pfk attach partition pfk1 for values in (1); step s1d: delete from ppk1 where a = 1; step s2c: commit; step s1d: <... completed> -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s2b s1b s2a s2c s1d s1c @@ -101,7 +101,7 @@ step s1b: begin; step s2a: alter table pfk attach partition pfk1 for values in (1); step s2c: commit; step s1d: delete from ppk1 where a = 1; -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s2b s2a s1b s1d s2c s1c @@ -111,7 +111,7 @@ step s1b: begin; step s1d: delete from ppk1 where a = 1; step s2c: commit; step s1d: <... completed> -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s2b s2a s1b s2c s1d s1c @@ -120,7 +120,7 @@ step s2a: alter table pfk attach partition pfk1 for values in (1); step s1b: begin; step s2c: commit; step s1d: delete from ppk1 where a = 1; -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s2b s2a s2c s1b s1d s1c @@ -129,5 +129,5 @@ step s2a: alter table pfk attach partition pfk1 for values in (1); step s2c: commit; step s1b: begin; step s1d: delete from ppk1 where a = 1; -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; diff --git a/src/test/isolation/expected/fk-partitioned-2.out b/src/test/isolation/expected/fk-partitioned-2.out index 8c6c714d0597f..db621bee2d67e 100644 --- a/src/test/isolation/expected/fk-partitioned-2.out +++ b/src/test/isolation/expected/fk-partitioned-2.out @@ -57,7 +57,7 @@ step s2i: insert into pfk values (1); step s1d: delete from ppk where a = 1; step s2c: commit; step s1d: <... completed> -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; starting permutation: s1b s2bs s2i s1d s2c s1c @@ -72,5 +72,5 @@ step s2i: insert into pfk values (1); step s1d: delete from ppk where a = 1; step s2c: commit; step s1d: <... completed> -ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey1" on table "pfk" +ERROR: update or delete on table "ppk1" violates foreign key constraint "pfk_a_fkey_1" on table "pfk" step s1c: commit; diff --git a/src/test/isolation/expected/index-only-bitmapscan.out b/src/test/isolation/expected/index-only-bitmapscan.out new file mode 100644 index 0000000000000..9f27df201537c --- /dev/null +++ b/src/test/isolation/expected/index-only-bitmapscan.out @@ -0,0 +1,48 @@ +Parsed test spec with 2 sessions + +starting permutation: s2_vacuum s2_mod s1_explain s1_begin s1_prepare s1_fetch_1 s2_vacuum s1_fetch_all s1_commit +step s2_vacuum: + VACUUM (TRUNCATE false) ios_bitmap; + +step s2_mod: + DELETE FROM ios_bitmap WHERE a > 1; + +step s1_explain: + EXPlAIN (COSTS OFF) DECLARE foo NO SCROLL CURSOR FOR SELECT row_number() OVER () FROM ios_bitmap WHERE a > 0 or b > 0; + +QUERY PLAN +--------------------------------------------------- +WindowAgg + Window: w1 AS (ROWS UNBOUNDED PRECEDING) + -> Bitmap Heap Scan on ios_bitmap + Recheck Cond: ((a > 0) OR (b > 0)) + -> BitmapOr + -> Bitmap Index Scan on ios_bitmap_a + Index Cond: (a > 0) + -> Bitmap Index Scan on ios_bitmap_b + Index Cond: (b > 0) +(9 rows) + +step s1_begin: BEGIN; +step s1_prepare: + DECLARE foo NO SCROLL CURSOR FOR SELECT row_number() OVER () FROM ios_bitmap WHERE a > 0 or b > 0; + +step s1_fetch_1: + FETCH FROM foo; + +row_number +---------- + 1 +(1 row) + +step s2_vacuum: + VACUUM (TRUNCATE false) ios_bitmap; + +step s1_fetch_all: + FETCH ALL FROM foo; + +row_number +---------- +(0 rows) + +step s1_commit: COMMIT; diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index 143109aa4da9e..e3c669a29c7aa 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -17,6 +17,7 @@ test: partial-index test: two-ids test: multiple-row-versions test: index-only-scan +test: index-only-bitmapscan test: predicate-lock-hot-tuple test: update-conflict-out test: deadlock-simple diff --git a/src/test/isolation/specs/deadlock-parallel.spec b/src/test/isolation/specs/deadlock-parallel.spec index 2016bcddae927..8b2c47afcaebc 100644 --- a/src/test/isolation/specs/deadlock-parallel.spec +++ b/src/test/isolation/specs/deadlock-parallel.spec @@ -2,8 +2,9 @@ # It's fairly hard to get parallel worker processes to block on locks, # since generally they don't want any locks their leader didn't already -# take. We cheat like mad here by making a function that takes a lock, -# and is incorrectly marked parallel-safe so that it can execute in a worker. +# take. We cheat like mad here by creating aliases for advisory-lock +# functions that are incorrectly marked parallel-safe so that they can +# execute in a worker. # Note that we explicitly override any global settings of isolation level # or debug_parallel_query, to ensure we're testing what we intend to. @@ -36,11 +37,21 @@ setup { +-- The alias functions themselves. Really these return "void", but +-- the implementation is such that we can declare them to return "int", +-- and we will get a zero result. + create function lock_share(bigint) returns int language internal as + 'pg_advisory_xact_lock_shared_int8' strict parallel safe; + + create function lock_excl(bigint) returns int language internal as + 'pg_advisory_xact_lock_int8' strict parallel safe; + +-- Inline-able wrappers that will produce an integer "1" result: create function lock_share(int,int) returns int language sql as - 'select pg_advisory_xact_lock_shared($1); select 1;' parallel safe; + 'select 1 - lock_share($1)' parallel safe; create function lock_excl(int,int) returns int language sql as - 'select pg_advisory_xact_lock($1); select 1;' parallel safe; + 'select 1 - lock_excl($1)' parallel safe; create table bigt as select x from generate_series(1, 10000) x; analyze bigt; diff --git a/src/test/isolation/specs/index-only-bitmapscan.spec b/src/test/isolation/specs/index-only-bitmapscan.spec new file mode 100644 index 0000000000000..4cd8b3ccdef01 --- /dev/null +++ b/src/test/isolation/specs/index-only-bitmapscan.spec @@ -0,0 +1,108 @@ +# In the past we supported index-only bitmap heapscans. However the +# implementation was unsound, see +# https://postgr.es/m/873c33c5-ef9e-41f6-80b2-2f5e11869f1c%40garret.ru +# +# This test reliably triggered the problem before we removed the +# optimization. We keep the test around to make it less likely for a similar +# problem to be re-introduced. + +setup +{ + -- by using a low fillfactor and a wide tuple we can get multiple blocks + -- with just few rows + CREATE TABLE ios_bitmap (a int NOT NULL, b int not null, pad char(1024) default '') + WITH (AUTOVACUUM_ENABLED = false, FILLFACTOR = 10); + + INSERT INTO ios_bitmap SELECT g.i, g.i FROM generate_series(1, 10) g(i); + + CREATE INDEX ios_bitmap_a ON ios_bitmap(a); + CREATE INDEX ios_bitmap_b ON ios_bitmap(b); +} + +teardown +{ + DROP TABLE ios_bitmap; +} + + +session s1 + +setup +{ + SET enable_seqscan = false; +} + +step s1_begin { BEGIN; } +step s1_commit { COMMIT; } + + +# The test query uses an or between two indexes to ensure make it more likely +# to use a bitmap index scan +# +# The row_number() hack is a way to have something returned (isolationtester +# doesn't display empty rows) while still allowing for the index-only scan +# optimization in bitmap heap scans, which requires an empty targetlist. +step s1_prepare +{ + DECLARE foo NO SCROLL CURSOR FOR SELECT row_number() OVER () FROM ios_bitmap WHERE a > 0 or b > 0; +} + +step s1_explain +{ + EXPlAIN (COSTS OFF) DECLARE foo NO SCROLL CURSOR FOR SELECT row_number() OVER () FROM ios_bitmap WHERE a > 0 or b > 0; +} + +step s1_fetch_1 +{ + FETCH FROM foo; +} + +step s1_fetch_all +{ + FETCH ALL FROM foo; +} + + +session s2 + +# Don't delete row 1 so we have a row for the cursor to "rest" on. +step s2_mod +{ + DELETE FROM ios_bitmap WHERE a > 1; +} + +# Disable truncation, as otherwise we'll just wait for a timeout while trying +# to acquire the lock +step s2_vacuum +{ + VACUUM (TRUNCATE false) ios_bitmap; +} + +permutation + # Vacuum first, to ensure VM exists, otherwise the bitmapscan will consider + # VM to be size 0, due to caching. Can't do that in setup because + s2_vacuum + + # Delete nearly all rows, to make issue visible + s2_mod + + # Verify that the appropriate plan is chosen + s1_explain + + # Create a cursor + s1_begin + s1_prepare + + # Fetch one row from the cursor, that ensures the index scan portion is done + # before the vacuum in the next step + s1_fetch_1 + + # With the bug this vacuum would have marked pages as all-visible that the + # scan in the next step then would have considered all-visible, despite all + # rows from those pages having been removed. + s2_vacuum + + # If this returns any rows, the bug is present + s1_fetch_all + + s1_commit diff --git a/src/test/kerberos/t/001_auth.pl b/src/test/kerberos/t/001_auth.pl index 6748b109decf7..b0be96f2beba6 100644 --- a/src/test/kerberos/t/001_auth.pl +++ b/src/test/kerberos/t/001_auth.pl @@ -65,7 +65,8 @@ 'postgresql.conf', qq{ listen_addresses = '$hostaddr' krb_server_keyfile = '$krb->{keytab}' -log_connections = on +log_connections = all +log_min_messages = debug2 lc_messages = 'C' }); $node->start; diff --git a/src/test/ldap/t/001_auth.pl b/src/test/ldap/t/001_auth.pl index 352b0fc1fa7b2..440c30b7ddd1d 100644 --- a/src/test/ldap/t/001_auth.pl +++ b/src/test/ldap/t/001_auth.pl @@ -47,7 +47,9 @@ my $node = PostgreSQL::Test::Cluster->new('node'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = all\n"); +# Needed to allow connect_fails to inspect postmaster log: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->start; $node->safe_psql('postgres', 'CREATE USER test0;'); diff --git a/src/test/ldap/t/002_bindpasswd.pl b/src/test/ldap/t/002_bindpasswd.pl index f8beba2b279a2..642bb2d9a7759 100644 --- a/src/test/ldap/t/002_bindpasswd.pl +++ b/src/test/ldap/t/002_bindpasswd.pl @@ -43,7 +43,7 @@ my $node = PostgreSQL::Test::Cluster->new('node'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = all\n"); $node->start; $node->safe_psql('postgres', 'CREATE USER test0;'); diff --git a/src/test/modules/injection_points/expected/injection_points.out b/src/test/modules/injection_points/expected/injection_points.out index f25bbe4966ee6..43bcdd01582f7 100644 --- a/src/test/modules/injection_points/expected/injection_points.out +++ b/src/test/modules/injection_points/expected/injection_points.out @@ -6,6 +6,19 @@ CREATE FUNCTION wait_pid(int) RETURNS void AS :'regresslib' LANGUAGE C STRICT; +-- Non-strict checks +SELECT injection_points_run(NULL); + injection_points_run +---------------------- + +(1 row) + +SELECT injection_points_cached(NULL); + injection_points_cached +------------------------- + +(1 row) + SELECT injection_points_attach('TestInjectionBooh', 'booh'); ERROR: incorrect action "booh" for injection point creation SELECT injection_points_attach('TestInjectionError', 'error'); @@ -39,6 +52,20 @@ NOTICE: notice triggered for injection point TestInjectionLog2 (1 row) +SELECT injection_points_run('TestInjectionLog2', NULL); -- notice +NOTICE: notice triggered for injection point TestInjectionLog2 + injection_points_run +---------------------- + +(1 row) + +SELECT injection_points_run('TestInjectionLog2', 'foobar'); -- notice + arg +NOTICE: notice triggered for injection point TestInjectionLog2 (foobar) + injection_points_run +---------------------- + +(1 row) + SELECT injection_points_run('TestInjectionLog'); -- notice NOTICE: notice triggered for injection point TestInjectionLog injection_points_run @@ -48,6 +75,10 @@ NOTICE: notice triggered for injection point TestInjectionLog SELECT injection_points_run('TestInjectionError'); -- error ERROR: error triggered for injection point TestInjectionError +SELECT injection_points_run('TestInjectionError', NULL); -- error +ERROR: error triggered for injection point TestInjectionError +SELECT injection_points_run('TestInjectionError', 'foobar2'); -- error + arg +ERROR: error triggered for injection point TestInjectionError (foobar2) -- Re-load cache and run again. \c SELECT injection_points_run('TestInjectionLog2'); -- notice @@ -160,6 +191,20 @@ NOTICE: notice triggered for injection point TestInjectionLogLoad (1 row) +SELECT injection_points_cached('TestInjectionLogLoad', NULL); -- runs from cache +NOTICE: notice triggered for injection point TestInjectionLogLoad + injection_points_cached +------------------------- + +(1 row) + +SELECT injection_points_cached('TestInjectionLogLoad', 'foobar'); -- runs from cache +NOTICE: notice triggered for injection point TestInjectionLogLoad (foobar) + injection_points_cached +------------------------- + +(1 row) + SELECT injection_points_run('TestInjectionLogLoad'); -- runs from cache NOTICE: notice triggered for injection point TestInjectionLogLoad injection_points_run diff --git a/src/test/modules/injection_points/expected/syscache-update-pruned.out b/src/test/modules/injection_points/expected/syscache-update-pruned.out index 5dc5a1ddc5e4b..a6a4e8db996b1 100644 --- a/src/test/modules/injection_points/expected/syscache-update-pruned.out +++ b/src/test/modules/injection_points/expected/syscache-update-pruned.out @@ -7,11 +7,11 @@ step at2: FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger(); step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> @@ -30,11 +30,11 @@ step at2: FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger(); step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> @@ -61,11 +61,11 @@ step mkrels4: step r3: ROLLBACK; step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> diff --git a/src/test/modules/injection_points/expected/syscache-update-pruned_1.out b/src/test/modules/injection_points/expected/syscache-update-pruned_1.out index b18857c902eb7..4dca2b86bc888 100644 --- a/src/test/modules/injection_points/expected/syscache-update-pruned_1.out +++ b/src/test/modules/injection_points/expected/syscache-update-pruned_1.out @@ -7,11 +7,11 @@ step at2: FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger(); step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> @@ -29,11 +29,11 @@ step at2: FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger(); step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> @@ -59,11 +59,11 @@ step mkrels4: step r3: ROLLBACK; step waitprunable4: CALL vactest.wait_prunable(); -step vac4: VACUUM pg_class; +step vac4: VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; step grant1: GRANT SELECT ON vactest.orig50 TO PUBLIC; step wakeinval4: - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); step at2: <... completed> step wakeinval4: <... completed> diff --git a/src/test/modules/injection_points/injection_points--1.0.sql b/src/test/modules/injection_points/injection_points--1.0.sql index 5d83f08811b0b..cc76b1bf99ae6 100644 --- a/src/test/modules/injection_points/injection_points--1.0.sql +++ b/src/test/modules/injection_points/injection_points--1.0.sql @@ -29,20 +29,22 @@ LANGUAGE C STRICT PARALLEL UNSAFE; -- -- Executes the action attached to the injection point. -- -CREATE FUNCTION injection_points_run(IN point_name TEXT) +CREATE FUNCTION injection_points_run(IN point_name TEXT, + IN arg TEXT DEFAULT NULL) RETURNS void AS 'MODULE_PATHNAME', 'injection_points_run' -LANGUAGE C STRICT PARALLEL UNSAFE; +LANGUAGE C PARALLEL UNSAFE; -- -- injection_points_cached() -- -- Executes the action attached to the injection point, from local cache. -- -CREATE FUNCTION injection_points_cached(IN point_name TEXT) +CREATE FUNCTION injection_points_cached(IN point_name TEXT, + IN arg TEXT DEFAULT NULL) RETURNS void AS 'MODULE_PATHNAME', 'injection_points_cached' -LANGUAGE C STRICT PARALLEL UNSAFE; +LANGUAGE C PARALLEL UNSAFE; -- -- injection_points_wakeup() diff --git a/src/test/modules/injection_points/injection_points.c b/src/test/modules/injection_points/injection_points.c index ad528d77752b5..3da0cbc10e08f 100644 --- a/src/test/modules/injection_points/injection_points.c +++ b/src/test/modules/injection_points/injection_points.c @@ -94,11 +94,14 @@ typedef struct InjectionPointSharedState static InjectionPointSharedState *inj_state = NULL; extern PGDLLEXPORT void injection_error(const char *name, - const void *private_data); + const void *private_data, + void *arg); extern PGDLLEXPORT void injection_notice(const char *name, - const void *private_data); + const void *private_data, + void *arg); extern PGDLLEXPORT void injection_wait(const char *name, - const void *private_data); + const void *private_data, + void *arg); /* track if injection points attached in this process are linked to it */ static bool injection_point_local = false; @@ -239,34 +242,44 @@ injection_points_cleanup(int code, Datum arg) /* Set of callbacks available to be attached to an injection point. */ void -injection_error(const char *name, const void *private_data) +injection_error(const char *name, const void *private_data, void *arg) { InjectionPointCondition *condition = (InjectionPointCondition *) private_data; + char *argstr = (char *) arg; if (!injection_point_allowed(condition)) return; pgstat_report_inj(name); - elog(ERROR, "error triggered for injection point %s", name); + if (argstr) + elog(ERROR, "error triggered for injection point %s (%s)", + name, argstr); + else + elog(ERROR, "error triggered for injection point %s", name); } void -injection_notice(const char *name, const void *private_data) +injection_notice(const char *name, const void *private_data, void *arg) { InjectionPointCondition *condition = (InjectionPointCondition *) private_data; + char *argstr = (char *) arg; if (!injection_point_allowed(condition)) return; pgstat_report_inj(name); - elog(NOTICE, "notice triggered for injection point %s", name); + if (argstr) + elog(NOTICE, "notice triggered for injection point %s (%s)", + name, argstr); + else + elog(NOTICE, "notice triggered for injection point %s", name); } /* Wait on a condition variable, awaken by injection_points_wakeup() */ void -injection_wait(const char *name, const void *private_data) +injection_wait(const char *name, const void *private_data, void *arg) { uint32 old_wait_counts = 0; int index = -1; @@ -402,10 +415,18 @@ PG_FUNCTION_INFO_V1(injection_points_run); Datum injection_points_run(PG_FUNCTION_ARGS) { - char *name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + char *name; + char *arg = NULL; + + if (PG_ARGISNULL(0)) + PG_RETURN_VOID(); + name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + + if (!PG_ARGISNULL(1)) + arg = text_to_cstring(PG_GETARG_TEXT_PP(1)); pgstat_report_inj_fixed(0, 0, 1, 0, 0); - INJECTION_POINT(name); + INJECTION_POINT(name, arg); PG_RETURN_VOID(); } @@ -417,10 +438,18 @@ PG_FUNCTION_INFO_V1(injection_points_cached); Datum injection_points_cached(PG_FUNCTION_ARGS) { - char *name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + char *name; + char *arg = NULL; + + if (PG_ARGISNULL(0)) + PG_RETURN_VOID(); + name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + + if (!PG_ARGISNULL(1)) + arg = text_to_cstring(PG_GETARG_TEXT_PP(1)); pgstat_report_inj_fixed(0, 0, 0, 1, 0); - INJECTION_POINT_CACHED(name); + INJECTION_POINT_CACHED(name, arg); PG_RETURN_VOID(); } diff --git a/src/test/modules/injection_points/regress_injection.c b/src/test/modules/injection_points/regress_injection.c index 422f4168935fb..7bba1c97d0f26 100644 --- a/src/test/modules/injection_points/regress_injection.c +++ b/src/test/modules/injection_points/regress_injection.c @@ -17,7 +17,9 @@ #include "access/table.h" #include "fmgr.h" #include "miscadmin.h" +#include "postmaster/autovacuum.h" #include "storage/procarray.h" +#include "utils/rel.h" #include "utils/xid8.h" /* @@ -28,11 +30,12 @@ * that. For the causes of backward movement, see * postgr.es/m/CAEze2Wj%2BV0kTx86xB_YbyaqTr5hnE_igdWAwuhSyjXBYscf5-Q%40mail.gmail.com * and the header comment for ComputeXidHorizons(). One can assume this - * doesn't move backward if one arranges for concurrent activity not to reach - * AbortTransaction() and not to allocate an XID while connected to another - * database. Non-runningcheck tests can control most concurrent activity, - * except autovacuum and the isolationtester control connection. Neither - * allocates XIDs, and AbortTransaction() in those would justify test failure. + * doesn't move backward if one (a) passes a shared catalog as the argument + * and (b) arranges for concurrent activity not to reach AbortTransaction(). + * Non-runningcheck tests can control most concurrent activity, except + * autovacuum and the isolationtester control connection. AbortTransaction() + * in those would justify test failure. Seeing autoanalyze can allocate an + * XID in any database, (a) ensures we'll consistently not ignore those XIDs. */ PG_FUNCTION_INFO_V1(removable_cutoff); Datum @@ -47,6 +50,10 @@ removable_cutoff(PG_FUNCTION_ARGS) if (!PG_ARGISNULL(0)) rel = table_open(PG_GETARG_OID(0), AccessShareLock); + if (!rel->rd_rel->relisshared && autovacuum_start_daemon) + elog(WARNING, + "removable_cutoff(non-shared-rel) can move backward under autovacuum=on"); + /* * No lock or snapshot necessarily prevents oldestXid from advancing past * "xid" while this function runs. That concerns us only in that we must diff --git a/src/test/modules/injection_points/specs/syscache-update-pruned.spec b/src/test/modules/injection_points/specs/syscache-update-pruned.spec index b48e897431e39..e3a4295bd12e8 100644 --- a/src/test/modules/injection_points/specs/syscache-update-pruned.spec +++ b/src/test/modules/injection_points/specs/syscache-update-pruned.spec @@ -53,10 +53,12 @@ setup barrier := pg_current_xact_id(); -- autovacuum worker RelationCacheInitializePhase3() or the -- isolationtester control connection might hold a snapshot that - -- limits pruning. Sleep until that clears. + -- limits pruning. Sleep until that clears. See comments at + -- removable_cutoff() for why we pass a shared catalog rather than + -- pg_class, the table we'll prune. LOOP ROLLBACK; -- release MyProc->xmin, which could be the oldest - cutoff := removable_cutoff('pg_class'); + cutoff := removable_cutoff('pg_database'); EXIT WHEN cutoff >= barrier; RAISE LOG 'removable cutoff %; waiting for %', cutoff, barrier; PERFORM pg_sleep(.1); @@ -64,9 +66,24 @@ setup END $$; } -setup { CALL vactest.wait_prunable(); -- maximize next two VACUUMs } +# Eliminate HEAPTUPLE_DEAD and HEAPTUPLE_RECENTLY_DEAD from pg_class. +# Minimize free space. +# +# If we kept HEAPTUPLE_RECENTLY_DEAD, step vac4 could prune what we missed, +# breaking some permutation assumptions. Specifically, the next pg_class +# tuple could end up in free space we failed to liberate here, instead of +# going in the specific free space vac4 intended to liberate for it. +setup { CALL vactest.wait_prunable(); -- maximize VACUUM FULL } setup { VACUUM FULL pg_class; -- reduce free space } -setup { VACUUM FREEZE pg_class; -- populate fsm etc. } +# Remove the one tuple that VACUUM FULL makes dead, a tuple pertaining to +# pg_class itself. Populate the FSM for pg_class. +# +# wait_prunable waits for snapshots that would thwart pruning, while FREEZE +# waits for buffer pins that would thwart pruning. DISABLE_PAGE_SKIPPING +# isn't actually needed, but other pruning-dependent tests use it. If those +# tests remove it, remove it here. +setup { CALL vactest.wait_prunable(); -- maximize lazy VACUUM } +setup { VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; -- fill fsm etc. } setup { SELECT FROM vactest.mkrels('orig', 1, 49); @@ -100,7 +117,7 @@ session s2 setup { SELECT FROM injection_points_set_local(); SELECT FROM - injection_points_attach('AtEOXact_Inval-with-transInvalInfo', 'wait'); + injection_points_attach('transaction-end-process-inval', 'wait'); } step at2 { CREATE TRIGGER to_set_relhastriggers BEFORE UPDATE ON vactest.orig50 @@ -115,7 +132,8 @@ step r3 { ROLLBACK; } # Non-blocking actions. session s4 step waitprunable4 { CALL vactest.wait_prunable(); } -step vac4 { VACUUM pg_class; } +# Eliminate HEAPTUPLE_DEAD. See above discussion of FREEZE. +step vac4 { VACUUM (FREEZE, DISABLE_PAGE_SKIPPING) pg_class; } # Reuse the lp that s1 is waiting to change. I've observed reuse at the 1st # or 18th CREATE, so create excess. step mkrels4 { @@ -127,8 +145,8 @@ step wakegrant4 { } step at4 { ALTER TABLE vactest.child50 INHERIT vactest.orig50; } step wakeinval4 { - SELECT FROM injection_points_detach('AtEOXact_Inval-with-transInvalInfo'); - SELECT FROM injection_points_wakeup('AtEOXact_Inval-with-transInvalInfo'); + SELECT FROM injection_points_detach('transaction-end-process-inval'); + SELECT FROM injection_points_wakeup('transaction-end-process-inval'); } # Witness effects of steps at2 and/or at4. step inspect4 { diff --git a/src/test/modules/injection_points/sql/injection_points.sql b/src/test/modules/injection_points/sql/injection_points.sql index e3a481d604492..d9748331c7715 100644 --- a/src/test/modules/injection_points/sql/injection_points.sql +++ b/src/test/modules/injection_points/sql/injection_points.sql @@ -9,6 +9,10 @@ CREATE FUNCTION wait_pid(int) AS :'regresslib' LANGUAGE C STRICT; +-- Non-strict checks +SELECT injection_points_run(NULL); +SELECT injection_points_cached(NULL); + SELECT injection_points_attach('TestInjectionBooh', 'booh'); SELECT injection_points_attach('TestInjectionError', 'error'); SELECT injection_points_attach('TestInjectionLog', 'notice'); @@ -16,8 +20,12 @@ SELECT injection_points_attach('TestInjectionLog2', 'notice'); SELECT injection_points_run('TestInjectionBooh'); -- nothing SELECT injection_points_run('TestInjectionLog2'); -- notice +SELECT injection_points_run('TestInjectionLog2', NULL); -- notice +SELECT injection_points_run('TestInjectionLog2', 'foobar'); -- notice + arg SELECT injection_points_run('TestInjectionLog'); -- notice SELECT injection_points_run('TestInjectionError'); -- error +SELECT injection_points_run('TestInjectionError', NULL); -- error +SELECT injection_points_run('TestInjectionError', 'foobar2'); -- error + arg -- Re-load cache and run again. \c @@ -47,6 +55,8 @@ SELECT injection_points_load('TestInjectionLogLoad'); -- nothing SELECT injection_points_attach('TestInjectionLogLoad', 'notice'); SELECT injection_points_load('TestInjectionLogLoad'); -- nothing happens SELECT injection_points_cached('TestInjectionLogLoad'); -- runs from cache +SELECT injection_points_cached('TestInjectionLogLoad', NULL); -- runs from cache +SELECT injection_points_cached('TestInjectionLogLoad', 'foobar'); -- runs from cache SELECT injection_points_run('TestInjectionLogLoad'); -- runs from cache SELECT injection_points_detach('TestInjectionLogLoad'); diff --git a/src/test/modules/ldap_password_func/t/001_mutated_bindpasswd.pl b/src/test/modules/ldap_password_func/t/001_mutated_bindpasswd.pl index 9b062e1c80023..5dc1e442d299f 100644 --- a/src/test/modules/ldap_password_func/t/001_mutated_bindpasswd.pl +++ b/src/test/modules/ldap_password_func/t/001_mutated_bindpasswd.pl @@ -42,7 +42,8 @@ my $node = PostgreSQL::Test::Cluster->new('node'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', + "log_connections = 'receipt,authentication,authorization'\n"); $node->append_conf('postgresql.conf', "shared_preload_libraries = 'ldap_password_func'"); $node->start; diff --git a/src/test/modules/libpq_pipeline/libpq_pipeline.c b/src/test/modules/libpq_pipeline/libpq_pipeline.c index ac9ac95135f38..9a3c0236325c6 100644 --- a/src/test/modules/libpq_pipeline/libpq_pipeline.c +++ b/src/test/modules/libpq_pipeline/libpq_pipeline.c @@ -206,15 +206,17 @@ copy_connection(PGconn *conn) PQconninfoOption *opts = PQconninfo(conn); const char **keywords; const char **vals; - int nopts = 1; - int i = 0; + int nopts = 0; + int i; for (PQconninfoOption *opt = opts; opt->keyword != NULL; ++opt) nopts++; + nopts++; /* for the NULL terminator */ keywords = pg_malloc(sizeof(char *) * nopts); vals = pg_malloc(sizeof(char *) * nopts); + i = 0; for (PQconninfoOption *opt = opts; opt->keyword != NULL; ++opt) { if (opt->val) @@ -1405,6 +1407,110 @@ test_prepared(PGconn *conn) fprintf(stderr, "ok\n"); } +/* + * Test max_protocol_version options. + */ +static void +test_protocol_version(PGconn *conn) +{ + const char **keywords; + const char **vals; + int nopts; + PQconninfoOption *opts = PQconninfo(conn); + int protocol_version; + int max_protocol_version_index; + int i; + + /* + * Prepare keywords/vals arrays, copied from the existing connection, with + * an extra slot for 'max_protocol_version'. + */ + nopts = 0; + for (PQconninfoOption *opt = opts; opt->keyword != NULL; ++opt) + nopts++; + nopts++; /* max_protocol_version */ + nopts++; /* NULL terminator */ + + keywords = pg_malloc0(sizeof(char *) * nopts); + vals = pg_malloc0(sizeof(char *) * nopts); + + i = 0; + for (PQconninfoOption *opt = opts; opt->keyword != NULL; ++opt) + { + if (opt->val) + { + keywords[i] = opt->keyword; + vals[i] = opt->val; + i++; + } + } + + max_protocol_version_index = i; + keywords[i] = "max_protocol_version"; /* value is filled in below */ + i++; + keywords[i] = vals[i] = NULL; + + /* + * Test max_protocol_version=3.0 + */ + vals[max_protocol_version_index] = "3.0"; + conn = PQconnectdbParams(keywords, vals, false); + + if (PQstatus(conn) != CONNECTION_OK) + pg_fatal("Connection to database failed: %s", + PQerrorMessage(conn)); + + protocol_version = PQfullProtocolVersion(conn); + if (protocol_version != 30000) + pg_fatal("expected 30000, got %d", protocol_version); + + PQfinish(conn); + + /* + * Test max_protocol_version=3.1. It's not valid, we went straight from + * 3.0 to 3.2. + */ + vals[max_protocol_version_index] = "3.1"; + conn = PQconnectdbParams(keywords, vals, false); + + if (PQstatus(conn) != CONNECTION_BAD) + pg_fatal("Connecting with max_protocol_version 3.1 should have failed."); + + PQfinish(conn); + + /* + * Test max_protocol_version=3.2 + */ + vals[max_protocol_version_index] = "3.2"; + conn = PQconnectdbParams(keywords, vals, false); + + if (PQstatus(conn) != CONNECTION_OK) + pg_fatal("Connection to database failed: %s", + PQerrorMessage(conn)); + + protocol_version = PQfullProtocolVersion(conn); + if (protocol_version != 30002) + pg_fatal("expected 30002, got %d", protocol_version); + + PQfinish(conn); + + /* + * Test max_protocol_version=latest. 'latest' currently means '3.2'. + */ + vals[max_protocol_version_index] = "latest"; + conn = PQconnectdbParams(keywords, vals, false); + + if (PQstatus(conn) != CONNECTION_OK) + pg_fatal("Connection to database failed: %s", + PQerrorMessage(conn)); + + protocol_version = PQfullProtocolVersion(conn); + if (protocol_version != 30002) + pg_fatal("expected 30002, got %d", protocol_version); + + PQfinish(conn); +} + /* Notice processor: print notices, and count how many we got */ static void notice_processor(void *arg, const char *message) @@ -2153,6 +2259,7 @@ print_test_list(void) printf("pipeline_idle\n"); printf("pipelined_insert\n"); printf("prepared\n"); + printf("protocol_version\n"); printf("simple_pipeline\n"); printf("singlerow\n"); printf("transaction\n"); @@ -2263,6 +2370,8 @@ main(int argc, char **argv) test_pipelined_insert(conn, numrows); else if (strcmp(testname, "prepared") == 0) test_prepared(conn); + else if (strcmp(testname, "protocol_version") == 0) + test_protocol_version(conn); else if (strcmp(testname, "simple_pipeline") == 0) test_simple_pipeline(conn); else if (strcmp(testname, "singlerow") == 0) diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl index 9691b8504189f..61524bdbd8f28 100644 --- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl +++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl @@ -49,11 +49,11 @@ BEGIN push @extraargs, "-t" => $traceout; } - # Execute the test + # Execute the test using the latest protocol version. $node->command_ok( [ 'libpq_pipeline', @extraargs, - $testname, $node->connstr('postgres') + $testname, $node->connstr('postgres') . " max_protocol_version=latest" ], "libpq_pipeline $testname"); @@ -72,6 +72,14 @@ BEGIN } } +# There were changes to query cancellation in protocol version 3.2, so +# test separately that it still works the old protocol version too. +$node->command_ok( + [ + 'libpq_pipeline', 'cancel', $node->connstr('postgres') . " max_protocol_version=3.0" + ], + "libpq_pipeline cancel with protocol 3.0"); + $node->stop('fast'); done_testing(); diff --git a/src/test/modules/oauth_validator/fail_validator.c b/src/test/modules/oauth_validator/fail_validator.c index a4c7a4451d38d..bf04182a48612 100644 --- a/src/test/modules/oauth_validator/fail_validator.c +++ b/src/test/modules/oauth_validator/fail_validator.c @@ -22,7 +22,7 @@ PG_MODULE_MAGIC; static bool fail_token(const ValidatorModuleState *state, const char *token, const char *role, - ValidatorModuleResult *result); + ValidatorModuleResult *res); /* Callback implementations (we only need the main one) */ static const OAuthValidatorCallbacks validator_callbacks = { diff --git a/src/test/modules/oauth_validator/magic_validator.c b/src/test/modules/oauth_validator/magic_validator.c index 9dc55b602e38b..e0547caf22f3c 100644 --- a/src/test/modules/oauth_validator/magic_validator.c +++ b/src/test/modules/oauth_validator/magic_validator.c @@ -23,7 +23,7 @@ PG_MODULE_MAGIC; static bool validate_token(const ValidatorModuleState *state, const char *token, const char *role, - ValidatorModuleResult *result); + ValidatorModuleResult *res); /* Callback implementations (we only need the main one) */ static const OAuthValidatorCallbacks validator_callbacks = { diff --git a/src/test/modules/oauth_validator/meson.build b/src/test/modules/oauth_validator/meson.build index 36d1b26369f20..e190f9cf15a4a 100644 --- a/src/test/modules/oauth_validator/meson.build +++ b/src/test/modules/oauth_validator/meson.build @@ -78,7 +78,7 @@ tests += { ], 'env': { 'PYTHON': python.path(), - 'with_libcurl': libcurl.found() ? 'yes' : 'no', + 'with_libcurl': oauth_flow_supported ? 'yes' : 'no', 'with_python': 'yes', }, }, diff --git a/src/test/modules/oauth_validator/oauth_hook_client.c b/src/test/modules/oauth_validator/oauth_hook_client.c index 9f553792c05ea..15d0cf938a824 100644 --- a/src/test/modules/oauth_validator/oauth_hook_client.c +++ b/src/test/modules/oauth_validator/oauth_hook_client.c @@ -35,15 +35,15 @@ usage(char *argv[]) printf("usage: %s [flags] CONNINFO\n\n", argv[0]); printf("recognized flags:\n"); - printf(" -h, --help show this message\n"); - printf(" --expected-scope SCOPE fail if received scopes do not match SCOPE\n"); - printf(" --expected-uri URI fail if received configuration link does not match URI\n"); - printf(" --misbehave=MODE have the hook fail required postconditions\n" - " (MODEs: no-hook, fail-async, no-token, no-socket)\n"); - printf(" --no-hook don't install OAuth hooks\n"); - printf(" --hang-forever don't ever return a token (combine with connect_timeout)\n"); - printf(" --token TOKEN use the provided TOKEN value\n"); - printf(" --stress-async busy-loop on PQconnectPoll rather than polling\n"); + printf(" -h, --help show this message\n"); + printf(" --expected-scope SCOPE fail if received scopes do not match SCOPE\n"); + printf(" --expected-uri URI fail if received configuration link does not match URI\n"); + printf(" --misbehave=MODE have the hook fail required postconditions\n" + " (MODEs: no-hook, fail-async, no-token, no-socket)\n"); + printf(" --no-hook don't install OAuth hooks\n"); + printf(" --hang-forever don't ever return a token (combine with connect_timeout)\n"); + printf(" --token TOKEN use the provided TOKEN value\n"); + printf(" --stress-async busy-loop on PQconnectPoll rather than polling\n"); } /* --options */ diff --git a/src/test/modules/oauth_validator/t/001_server.pl b/src/test/modules/oauth_validator/t/001_server.pl index 30295364ebd1c..bfc9dc3b54222 100644 --- a/src/test/modules/oauth_validator/t/001_server.pl +++ b/src/test/modules/oauth_validator/t/001_server.pl @@ -26,9 +26,11 @@ 'Potentially unsafe test oauth not enabled in PG_TEST_EXTRA'; } -if ($windows_os) +unless (check_pg_config("#define HAVE_SYS_EVENT_H 1") + or check_pg_config("#define HAVE_SYS_EPOLL_H 1")) { - plan skip_all => 'OAuth server-side tests are not supported on Windows'; + plan skip_all => + 'OAuth server-side tests are not supported on this platform'; } if ($ENV{with_libcurl} ne 'yes') @@ -43,9 +45,11 @@ my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = all\n"); $node->append_conf('postgresql.conf', "oauth_validator_libraries = 'validator'\n"); +# Needed to allow connect_fails to inspect postmaster log: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->start; $node->safe_psql('postgres', 'CREATE USER test;'); diff --git a/src/test/modules/oauth_validator/t/002_client.pl b/src/test/modules/oauth_validator/t/002_client.pl index ab83258d7366f..aac0220d2152d 100644 --- a/src/test/modules/oauth_validator/t/002_client.pl +++ b/src/test/modules/oauth_validator/t/002_client.pl @@ -26,7 +26,7 @@ my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init; -$node->append_conf('postgresql.conf', "log_connections = on\n"); +$node->append_conf('postgresql.conf', "log_connections = all\n"); $node->append_conf('postgresql.conf', "oauth_validator_libraries = 'validator'\n"); $node->start; @@ -47,8 +47,7 @@ }); $node->reload; -my ($log_start, $log_end); -$log_start = $node->wait_for_log(qr/reloading configuration files/); +my $log_start = $node->wait_for_log(qr/reloading configuration files/); $ENV{PGOAUTHDEBUG} = "UNSAFE"; @@ -111,7 +110,7 @@ sub test "fails without custom hook installed", flags => ["--no-hook"], expected_stderr => - qr/no custom OAuth flows are available, and libpq was not built with libcurl support/ + qr/no OAuth flows are available \(try installing the libpq-oauth package\)/ ); } @@ -122,6 +121,9 @@ sub test flags => ["--hang-forever"], expected_stderr => qr/failed: timeout expired/); +# Remove the timeout for later tests. +$common_connstr = "$base_connstr oauth_issuer=$issuer oauth_client_id=myID"; + # Test various misbehaviors of the client hook. my @cases = ( { diff --git a/src/test/modules/oauth_validator/t/oauth_server.py b/src/test/modules/oauth_validator/t/oauth_server.py index 5bc30be87fdea..20b3a9506cbf4 100755 --- a/src/test/modules/oauth_validator/t/oauth_server.py +++ b/src/test/modules/oauth_validator/t/oauth_server.py @@ -14,6 +14,7 @@ import time import urllib.parse from collections import defaultdict +from typing import Dict class OAuthHandler(http.server.BaseHTTPRequestHandler): @@ -23,7 +24,7 @@ class OAuthHandler(http.server.BaseHTTPRequestHandler): documentation for BaseHTTPRequestHandler. """ - JsonObject = dict[str, object] # TypeAlias is not available until 3.10 + JsonObject = Dict[str, object] # TypeAlias is not available until 3.10 def _check_issuer(self): """ @@ -35,14 +36,16 @@ def _check_issuer(self): ) self._parameterized = self.path.startswith("/param/") + # Strip off the magic path segment. (The more readable + # str.removeprefix()/removesuffix() aren't available until Py3.9.) if self._alt_issuer: # The /alternate issuer uses IETF-style .well-known URIs. if self.path.startswith("/.well-known/"): - self.path = self.path.removesuffix("/alternate") + self.path = self.path[: -len("/alternate")] else: - self.path = self.path.removeprefix("/alternate") + self.path = self.path[len("/alternate") :] elif self._parameterized: - self.path = self.path.removeprefix("/param") + self.path = self.path[len("/param") :] def _check_authn(self): """ @@ -58,8 +61,10 @@ def _check_authn(self): if method != "Basic": raise RuntimeError(f"client used {method} auth; expected Basic") - username = urllib.parse.quote_plus(self.client_id) - password = urllib.parse.quote_plus(secret) + # TODO: Remove "~" from the safe list after Py3.6 support is removed. + # 3.7 does this by default. + username = urllib.parse.quote_plus(self.client_id, safe="~") + password = urllib.parse.quote_plus(secret, safe="~") expected_creds = f"{username}:{password}" if creds.encode() != base64.b64encode(expected_creds.encode()): @@ -83,7 +88,7 @@ def do_GET(self): self._send_json(resp) - def _parse_params(self) -> dict[str, str]: + def _parse_params(self) -> Dict[str, str]: """ Parses apart the form-urlencoded request body and returns the resulting dict. For use by do_POST(). @@ -316,11 +321,14 @@ def authorization(self) -> JsonObject: return resp def token(self) -> JsonObject: - if err := self._get_param("error_code", None): + err = self._get_param("error_code", None) + if err: self._response_code = self._get_param("error_status", 400) resp = {"error": err} - if desc := self._get_param("error_desc", ""): + + desc = self._get_param("error_desc", "") + if desc: resp["error_description"] = desc return resp diff --git a/src/test/modules/oauth_validator/validator.c b/src/test/modules/oauth_validator/validator.c index b2e5d182e1bf4..42b69646fbb9c 100644 --- a/src/test/modules/oauth_validator/validator.c +++ b/src/test/modules/oauth_validator/validator.c @@ -26,7 +26,7 @@ static void validator_shutdown(ValidatorModuleState *state); static bool validate_token(const ValidatorModuleState *state, const char *token, const char *role, - ValidatorModuleResult *result); + ValidatorModuleResult *res); /* Callback implementations (exercise all three) */ static const OAuthValidatorCallbacks validator_callbacks = { diff --git a/src/test/modules/test_aio/t/001_aio.pl b/src/test/modules/test_aio/t/001_aio.pl index 93fe5b116df42..4527c70785d34 100644 --- a/src/test/modules/test_aio/t/001_aio.pl +++ b/src/test/modules/test_aio/t/001_aio.pl @@ -94,6 +94,17 @@ sub create_node log_error_verbosity=default restart_after_crash=false temp_buffers=100 +)); + + # Even though we used -c io_method=... above, if TEMP_CONFIG sets + # io_method, it'd override the setting persisted at initdb time. While + # using (and later verifying) the setting from initdb provides some + # verification of having used the io_method during initdb, it's probably + # not worth the complication of only appending if the variable is set in + # in TEMP_CONFIG. + $node->append_conf( + 'postgresql.conf', qq( +io_method=$io_method )); ok(1, "$io_method: initdb"); @@ -314,12 +325,18 @@ sub test_batchmode my $psql = $node->background_psql('postgres', on_error_stop => 0); + # In a build with RELCACHE_FORCE_RELEASE and CATCACHE_FORCE_RELEASE, just + # using SELECT batch_start() causes spurious test failures, because the + # lookup of the type information when printing the result tuple also + # starts a batch. The easiest way around is to not print a result tuple. + my $batch_start_sql = qq(SELECT WHERE batch_start() IS NULL); + # leak warning & recovery: implicit xact psql_like( $io_method, $psql, "batch_start() leak & cleanup in implicit xact", - qq(SELECT batch_start()), + $batch_start_sql, qr/^$/, qr/open AIO batch at end/, "$io_method: leaky batch_start() warns"); @@ -329,7 +346,7 @@ sub test_batchmode $io_method, $psql, "batch_start() leak & cleanup in explicit xact", - qq(BEGIN; SELECT batch_start(); COMMIT;), + qq(BEGIN; $batch_start_sql; COMMIT;), qr/^$/, qr/open AIO batch at end/, "$io_method: leaky batch_start() warns"); @@ -342,7 +359,7 @@ sub test_batchmode # it just means it's a bit harder to find buggy code. #psql_like($io_method, $psql, # "batch_start() leak & cleanup after abort", - # qq(BEGIN; SELECT batch_start(); ROLLBACK;), + # qq(BEGIN; $batch_start_sql; ROLLBACK;), # qr/^$/, # qr/open AIO batch at end/, "$io_method: leaky batch_start() warns"); @@ -351,7 +368,7 @@ sub test_batchmode $io_method, $psql, "batch_start(), batch_end() works", - qq(SELECT batch_start() UNION ALL SELECT batch_end()), + qq($batch_start_sql UNION ALL SELECT WHERE batch_end() IS NULL), qr/^$/, qr/^$/, "$io_method: batch_start(), batch_end()"); @@ -543,7 +560,7 @@ sub test_startwait_io qr/^t$/, qr/^$/); - # Because local buffers don't use IO_IN_PROGRESS, a second StartLocalBufer + # Because local buffers don't use IO_IN_PROGRESS, a second StartLocalBufferIO # succeeds as well. This test mostly serves as a documentation of that # fact. If we had actually started IO, it'd be different. psql_like( @@ -796,7 +813,7 @@ sub test_inject "first hard IO error is reported", qq(SELECT count(*) FROM tbl_ok), qr/^$/, - qr/ERROR:.*could not read blocks 2\.\.2 in file \"base\/.*\": Input\/output error/ + qr!ERROR:.*could not read blocks 2\.\.2 in file "base/.*": (?:I/O|Input/output) error! ); psql_like( @@ -805,7 +822,7 @@ sub test_inject "second hard IO error is reported", qq(SELECT count(*) FROM tbl_ok), qr/^$/, - qr/ERROR:.*could not read blocks 2\.\.2 in file \"base\/.*\": Input\/output error/ + qr!ERROR:.*could not read blocks 2\.\.2 in file "base/.*": (?:I/O|Input/output) error! ); $psql->query_safe(qq(SELECT inj_io_short_read_detach())); @@ -1268,6 +1285,11 @@ sub test_checksum_createdb # Verify that CREATE DATABASE of an invalid database fails and is # accounted for accurately. + # + # Note: On windows additional WARNING messages might be printed, due to + # "some useless files may be left behind" warnings. While we probably + # should prevent those from occurring, they're independent of AIO, so we + # shouldn't fail because of them here. my ($cs_count_before, $cs_ts_before) = checksum_failures($psql, 'regression_createdb_source'); psql_like( @@ -1276,7 +1298,7 @@ sub test_checksum_createdb "create database w/ wal strategy, invalid source", $createdb_sql, qr/^$/, - qr/^psql::\d+: ERROR: invalid page in block 1 of relation base\/\d+\/\d+$/ + qr/psql::\d+: ERROR: invalid page in block 1 of relation base\/\d+\/\d+$/ ); my ($cs_count_after, $cs_ts_after) = checksum_failures($psql, 'regression_createdb_source'); diff --git a/src/test/modules/test_aio/test_aio.c b/src/test/modules/test_aio/test_aio.c index bef0ecd90078f..5cdfb89210b28 100644 --- a/src/test/modules/test_aio/test_aio.c +++ b/src/test/modules/test_aio/test_aio.c @@ -86,19 +86,19 @@ test_aio_shmem_startup(void) inj_io_error_state->enabled_reopen = false; #ifdef USE_INJECTION_POINTS - InjectionPointAttach("AIO_PROCESS_COMPLETION_BEFORE_SHARED", + InjectionPointAttach("aio-process-completion-before-shared", "test_aio", "inj_io_short_read", NULL, 0); - InjectionPointLoad("AIO_PROCESS_COMPLETION_BEFORE_SHARED"); + InjectionPointLoad("aio-process-completion-before-shared"); - InjectionPointAttach("AIO_WORKER_AFTER_REOPEN", + InjectionPointAttach("aio-worker-after-reopen", "test_aio", "inj_io_reopen", NULL, 0); - InjectionPointLoad("AIO_WORKER_AFTER_REOPEN"); + InjectionPointLoad("aio-worker-after-reopen"); #endif } @@ -109,8 +109,8 @@ test_aio_shmem_startup(void) * critical section. */ #ifdef USE_INJECTION_POINTS - InjectionPointLoad("AIO_PROCESS_COMPLETION_BEFORE_SHARED"); - InjectionPointLoad("AIO_WORKER_AFTER_REOPEN"); + InjectionPointLoad("aio-process-completion-before-shared"); + InjectionPointLoad("aio-worker-after-reopen"); elog(LOG, "injection point loaded"); #endif } @@ -203,6 +203,7 @@ modify_rel_block(PG_FUNCTION_ARGS) bool corrupt_header = PG_GETARG_BOOL(3); bool corrupt_checksum = PG_GETARG_BOOL(4); Page page = palloc_aligned(BLCKSZ, PG_IO_ALIGN_SIZE, 0); + bool flushed; Relation rel; Buffer buf; PageHeader ph; @@ -237,7 +238,7 @@ modify_rel_block(PG_FUNCTION_ARGS) if (BufferIsLocal(buf)) InvalidateLocalBuffer(GetLocalBufferDescriptor(-buf - 1), true); else - EvictUnpinnedBuffer(buf); + EvictUnpinnedBuffer(buf, &flushed); /* * Now modify the page as asked for by the caller. @@ -478,6 +479,7 @@ invalidate_rel_block(PG_FUNCTION_ARGS) BufferDesc *buf_hdr = BufferIsLocal(buf) ? GetLocalBufferDescriptor(-buf - 1) : GetBufferDescriptor(buf - 1); + bool flushed; LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); @@ -493,7 +495,7 @@ invalidate_rel_block(PG_FUNCTION_ARGS) if (BufferIsLocal(buf)) InvalidateLocalBuffer(GetLocalBufferDescriptor(-buf - 1), true); - else if (!EvictUnpinnedBuffer(buf)) + else if (!EvictUnpinnedBuffer(buf, &flushed)) elog(ERROR, "couldn't evict"); } } @@ -672,13 +674,17 @@ batch_end(PG_FUNCTION_ARGS) } #ifdef USE_INJECTION_POINTS -extern PGDLLEXPORT void inj_io_short_read(const char *name, const void *private_data); -extern PGDLLEXPORT void inj_io_reopen(const char *name, const void *private_data); +extern PGDLLEXPORT void inj_io_short_read(const char *name, + const void *private_data, + void *arg); +extern PGDLLEXPORT void inj_io_reopen(const char *name, + const void *private_data, + void *arg); void -inj_io_short_read(const char *name, const void *private_data) +inj_io_short_read(const char *name, const void *private_data, void *arg) { - PgAioHandle *ioh; + PgAioHandle *ioh = (PgAioHandle *) arg; ereport(LOG, errmsg("short read injection point called, is enabled: %d", @@ -687,8 +693,6 @@ inj_io_short_read(const char *name, const void *private_data) if (inj_io_error_state->enabled_short_read) { - ioh = pgaio_inj_io_get(); - /* * Only shorten reads that are actually longer than the target size, * otherwise we can trigger over-reads. @@ -740,7 +744,7 @@ inj_io_short_read(const char *name, const void *private_data) } void -inj_io_reopen(const char *name, const void *private_data) +inj_io_reopen(const char *name, const void *private_data, void *arg) { ereport(LOG, errmsg("reopen injection point called, is enabled: %d", diff --git a/src/test/modules/test_escape/test_escape.c b/src/test/modules/test_escape/test_escape.c index f6b364489774f..59430ed46c484 100644 --- a/src/test/modules/test_escape/test_escape.c +++ b/src/test/modules/test_escape/test_escape.c @@ -12,6 +12,7 @@ #include #include +#include "common/jsonapi.h" #include "fe_utils/psqlscan.h" #include "fe_utils/string_utils.h" #include "getopt_long.h" @@ -31,6 +32,8 @@ typedef struct pe_test_config int failure_count; } pe_test_config; +#define NEVER_ACCESS_STR "\xff never-to-be-touched" + /* * An escape function to be tested by this test. @@ -86,6 +89,164 @@ static const PsqlScanCallbacks test_scan_callbacks = { }; +/* + * Print the string into buf, making characters outside of plain ascii + * somewhat easier to recognize. + * + * The output format could stand to be improved significantly, it's not at all + * unambiguous. + */ +static void +escapify(PQExpBuffer buf, const char *str, size_t len) +{ + for (size_t i = 0; i < len; i++) + { + char c = *str; + + if (c == '\n') + appendPQExpBufferStr(buf, "\\n"); + else if (c == '\0') + appendPQExpBufferStr(buf, "\\0"); + else if (c < ' ' || c > '~') + appendPQExpBuffer(buf, "\\x%2x", (uint8_t) c); + else + appendPQExpBufferChar(buf, c); + str++; + } +} + +static void +report_result(pe_test_config *tc, + bool success, + const char *testname, + const char *details, + const char *subname, + const char *resultdesc) +{ + int test_id = ++tc->test_count; + bool print_details = true; + bool print_result = true; + + if (success) + { + if (tc->verbosity <= 0) + print_details = false; + if (tc->verbosity < 0) + print_result = false; + } + else + tc->failure_count++; + + if (print_details) + printf("%s", details); + + if (print_result) + printf("%s %d - %s: %s: %s\n", + success ? "ok" : "not ok", + test_id, testname, + subname, + resultdesc); +} + +/* + * Return true for encodings in which bytes in a multi-byte character look + * like valid ascii characters. + */ +static bool +encoding_conflicts_ascii(int encoding) +{ + /* + * We don't store this property directly anywhere, but whether an encoding + * is a client-only encoding is a good proxy. + */ + if (encoding > PG_ENCODING_BE_LAST) + return true; + return false; +} + + +/* + * Confirm escaping doesn't read past the end of an allocation. Consider the + * result of malloc(4096), in the absence of freelist entries satisfying the + * allocation. On OpenBSD, reading one byte past the end of that object + * yields SIGSEGV. + * + * Run this test before the program's other tests, so freelists are minimal. + * len=4096 didn't SIGSEGV, likely due to free() calls in libpq. len=8192 + * did. Use 128 KiB, to somewhat insulate the outcome from distant new free() + * calls and libc changes. + */ +static void +test_gb18030_page_multiple(pe_test_config *tc) +{ + PQExpBuffer testname; + size_t input_len = 0x20000; + char *input; + + /* prepare input */ + input = pg_malloc(input_len); + memset(input, '-', input_len - 1); + input[input_len - 1] = 0xfe; + + /* name to describe the test */ + testname = createPQExpBuffer(); + appendPQExpBuffer(testname, ">repeat(%c, %zu)", input[0], input_len - 1); + escapify(testname, input + input_len - 1, 1); + appendPQExpBuffer(testname, "< - GB18030 - PQescapeLiteral"); + + /* test itself */ + PQsetClientEncoding(tc->conn, "GB18030"); + report_result(tc, PQescapeLiteral(tc->conn, input, input_len) == NULL, + testname->data, "", + "input validity vs escape success", "ok"); + + destroyPQExpBuffer(testname); + pg_free(input); +} + +/* + * Confirm json parsing doesn't read past the end of an allocation. This + * exercises wchar.c infrastructure like the true "escape" tests do, but this + * isn't an "escape" test. + */ +static void +test_gb18030_json(pe_test_config *tc) +{ + PQExpBuffer raw_buf; + PQExpBuffer testname; + const char input[] = "{\"\\u\xFE"; + size_t input_len = sizeof(input) - 1; + JsonLexContext *lex; + JsonSemAction sem = {0}; /* no callbacks */ + JsonParseErrorType json_error; + + /* prepare input like test_one_vector_escape() does */ + raw_buf = createPQExpBuffer(); + appendBinaryPQExpBuffer(raw_buf, input, input_len); + appendPQExpBufferStr(raw_buf, NEVER_ACCESS_STR); + VALGRIND_MAKE_MEM_NOACCESS(&raw_buf->data[input_len], + raw_buf->len - input_len); + + /* name to describe the test */ + testname = createPQExpBuffer(); + appendPQExpBuffer(testname, ">"); + escapify(testname, input, input_len); + appendPQExpBuffer(testname, "< - GB18030 - pg_parse_json"); + + /* test itself */ + lex = makeJsonLexContextCstringLen(NULL, raw_buf->data, input_len, + PG_GB18030, false); + json_error = pg_parse_json(lex, &sem); + report_result(tc, json_error == JSON_UNICODE_ESCAPE_FORMAT, + testname->data, "", + "diagnosed", json_errdetail(json_error, lex)); + + freeJsonLexContext(lex); + destroyPQExpBuffer(testname); + destroyPQExpBuffer(raw_buf); +} + + static bool escape_literal(PGconn *conn, PQExpBuffer target, const char *unescaped, size_t unescaped_len, @@ -96,8 +257,7 @@ escape_literal(PGconn *conn, PQExpBuffer target, escaped = PQescapeLiteral(conn, unescaped, unescaped_len); if (!escaped) { - appendPQExpBuffer(escape_err, "%s", - PQerrorMessage(conn)); + appendPQExpBufferStr(escape_err, PQerrorMessage(conn)); escape_err->data[escape_err->len - 1] = 0; escape_err->len--; return false; @@ -120,8 +280,7 @@ escape_identifier(PGconn *conn, PQExpBuffer target, escaped = PQescapeIdentifier(conn, unescaped, unescaped_len); if (!escaped) { - appendPQExpBuffer(escape_err, "%s", - PQerrorMessage(conn)); + appendPQExpBufferStr(escape_err, PQerrorMessage(conn)); escape_err->data[escape_err->len - 1] = 0; escape_err->len--; return false; @@ -153,8 +312,7 @@ escape_string_conn(PGconn *conn, PQExpBuffer target, if (error) { - appendPQExpBuffer(escape_err, "%s", - PQerrorMessage(conn)); + appendPQExpBufferStr(escape_err, PQerrorMessage(conn)); escape_err->data[escape_err->len - 1] = 0; escape_err->len--; return false; @@ -376,88 +534,23 @@ static pe_test_vector pe_test_vectors[] = * Testcases that are not null terminated for the specified input length. * That's interesting to verify that escape functions don't read beyond * the intended input length. + * + * One interesting special case is GB18030, which has the odd behaviour + * needing to read beyond the first byte to determine the length of a + * multi-byte character. */ TV_LEN("gbk", "\x80", 1), + TV_LEN("GB18030", "\x80", 1), + TV_LEN("GB18030", "\x80\0", 2), + TV_LEN("GB18030", "\x80\x30", 2), + TV_LEN("GB18030", "\x80\x30\0", 3), + TV_LEN("GB18030", "\x80\x30\x30", 3), + TV_LEN("GB18030", "\x80\x30\x30\0", 4), TV_LEN("UTF-8", "\xC3\xb6 ", 1), TV_LEN("UTF-8", "\xC3\xb6 ", 2), }; -/* - * Print the string into buf, making characters outside of plain ascii - * somewhat easier to recognize. - * - * The output format could stand to be improved significantly, it's not at all - * unambiguous. - */ -static void -escapify(PQExpBuffer buf, const char *str, size_t len) -{ - for (size_t i = 0; i < len; i++) - { - char c = *str; - - if (c == '\n') - appendPQExpBufferStr(buf, "\\n"); - else if (c == '\0') - appendPQExpBufferStr(buf, "\\0"); - else if (c < ' ' || c > '~') - appendPQExpBuffer(buf, "\\x%2x", (uint8_t) c); - else - appendPQExpBufferChar(buf, c); - str++; - } -} - -static void -report_result(pe_test_config *tc, - bool success, - PQExpBuffer testname, - PQExpBuffer details, - const char *subname, - const char *resultdesc) -{ - int test_id = ++tc->test_count; - bool print_details = true; - bool print_result = true; - - if (success) - { - if (tc->verbosity <= 0) - print_details = false; - if (tc->verbosity < 0) - print_result = false; - } - else - tc->failure_count++; - - if (print_details) - printf("%s", details->data); - - if (print_result) - printf("%s %d - %s: %s: %s\n", - success ? "ok" : "not ok", - test_id, testname->data, - subname, - resultdesc); -} - -/* - * Return true for encodings in which bytes in a multi-byte character look - * like valid ascii characters. - */ -static bool -encoding_conflicts_ascii(int encoding) -{ - /* - * We don't store this property directly anywhere, but whether an encoding - * is a client-only encoding is a good proxy. - */ - if (encoding > PG_ENCODING_BE_LAST) - return true; - return false; -} - static const char * scan_res_s(PsqlScanResult res) { @@ -514,7 +607,7 @@ test_psql_parse(pe_test_config *tc, PQExpBuffer testname, "#\t\t %d: scan_result: %s prompt: %u, query_buf: ", matches, scan_res_s(scan_result), prompt_status); escapify(details, query_buf->data, query_buf->len); - appendPQExpBuffer(details, "\n"); + appendPQExpBufferChar(details, '\n'); matches++; } @@ -532,7 +625,7 @@ test_psql_parse(pe_test_config *tc, PQExpBuffer testname, else resdesc = "ok"; - report_result(tc, !test_fails, testname, details, + report_result(tc, !test_fails, testname->data, details->data, "psql parse", resdesc); } @@ -566,7 +659,7 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te } /* name to describe the test */ - appendPQExpBuffer(testname, ">"); + appendPQExpBufferChar(testname, '>'); escapify(testname, tv->escape, tv->escape_len); appendPQExpBuffer(testname, "< - %s - %s", tv->client_encoding, ef->name); @@ -575,7 +668,7 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te appendPQExpBuffer(details, "#\t input: %zd bytes: ", tv->escape_len); escapify(details, tv->escape, tv->escape_len); - appendPQExpBufferStr(details, "\n"); + appendPQExpBufferChar(details, '\n'); appendPQExpBuffer(details, "#\t encoding: %s\n", tv->client_encoding); @@ -617,7 +710,6 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te */ appendBinaryPQExpBuffer(raw_buf, tv->escape, tv->escape_len); -#define NEVER_ACCESS_STR "\xff never-to-be-touched" if (ef->supports_input_length) { /* @@ -671,7 +763,7 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te * here, but that's not available everywhere. */ contains_never = strstr(escape_buf->data, NEVER_ACCESS_STR) == NULL; - report_result(tc, contains_never, testname, details, + report_result(tc, contains_never, testname->data, details->data, "escaped data beyond end of input", contains_never ? "no" : "all secrets revealed"); } @@ -714,7 +806,7 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te resdesc = "valid input failed to escape, due to zero byte"; } - report_result(tc, ok, testname, details, + report_result(tc, ok, testname->data, details->data, "input validity vs escape success", resdesc); } @@ -744,7 +836,7 @@ test_one_vector_escape(pe_test_config *tc, const pe_test_vector *tv, const pe_te resdesc = "invalid input produced valid output"; } - report_result(tc, ok, testname, details, + report_result(tc, ok, testname->data, details->data, "input and escaped encoding validity", resdesc); } @@ -862,6 +954,9 @@ main(int argc, char *argv[]) exit(1); } + test_gb18030_page_multiple(&tc); + test_gb18030_json(&tc); + for (int i = 0; i < lengthof(pe_test_vectors); i++) { test_one_vector(&tc, &pe_test_vectors[i]); diff --git a/src/test/modules/test_extensions/expected/test_extensions.out b/src/test/modules/test_extensions/expected/test_extensions.out index d5388a1fecf6a..72bae1bf254b5 100644 --- a/src/test/modules/test_extensions/expected/test_extensions.out +++ b/src/test/modules/test_extensions/expected/test_extensions.out @@ -651,7 +651,7 @@ LINE 1: SELECT public.dep_req2() || ' req3b' ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. QUERY: SELECT public.dep_req2() || ' req3b' -CONTEXT: SQL function "dep_req3b" during startup +CONTEXT: SQL function "dep_req3b" statement 1 DROP EXTENSION test_ext_req_schema3; ALTER EXTENSION test_ext_req_schema1 SET SCHEMA test_s_dep2; -- now ok SELECT test_s_dep2.dep_req1(); diff --git a/src/test/modules/test_extensions/t/001_extension_control_path.pl b/src/test/modules/test_extensions/t/001_extension_control_path.pl index c186c1470f71f..1a9c97bbf4dcc 100644 --- a/src/test/modules/test_extensions/t/001_extension_control_path.pl +++ b/src/test/modules/test_extensions/t/001_extension_control_path.pl @@ -2,6 +2,7 @@ use strict; use warnings FATAL => 'all'; +use File::Path qw(mkpath); use PostgreSQL::Test::Cluster; use PostgreSQL::Test::Utils; use Test::More; @@ -12,25 +13,14 @@ # Create a temporary directory for the extension control file my $ext_dir = PostgreSQL::Test::Utils::tempdir(); +mkpath("$ext_dir/extension"); + my $ext_name = "test_custom_ext_paths"; -my $control_file = "$ext_dir/$ext_name.control"; -my $sql_file = "$ext_dir/$ext_name--1.0.sql"; - -# Create .control .sql file -open my $cf, '>', $control_file or die "Could not create control file: $!"; -print $cf "comment = 'Test extension_control_path'\n"; -print $cf "default_version = '1.0'\n"; -print $cf "relocatable = true\n"; -close $cf; - -# Create --1.0.sql file -open my $sqlf, '>', $sql_file or die "Could not create sql file: $!"; -print $sqlf "/* $sql_file */\n"; -print $sqlf - "-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n"; -print $sqlf - qq'\\echo Use "CREATE EXTENSION $ext_name" to load this file. \\quit\n'; -close $sqlf; +create_extension($ext_name, $ext_dir); + +my $ext_name2 = "test_custom_ext_paths_using_directory"; +mkpath("$ext_dir/$ext_name2"); +create_extension($ext_name2, $ext_dir, $ext_name2); # Use the correct separator and escape \ when running on Windows. my $sep = $windows_os ? ";" : ":"; @@ -48,6 +38,7 @@ "custom extension control directory path configured"); $node->safe_psql('postgres', "CREATE EXTENSION $ext_name"); +$node->safe_psql('postgres', "CREATE EXTENSION $ext_name2"); my $ret = $node->safe_psql('postgres', "select * from pg_available_extensions where name = '$ext_name'"); @@ -55,26 +46,80 @@ "test_custom_ext_paths|1.0|1.0|Test extension_control_path", "extension is installed correctly on pg_available_extensions"); -my $ret2 = $node->safe_psql('postgres', +$ret = $node->safe_psql('postgres', "select * from pg_available_extension_versions where name = '$ext_name'"); -is( $ret2, +is( $ret, "test_custom_ext_paths|1.0|t|t|f|t|||Test extension_control_path", "extension is installed correctly on pg_available_extension_versions"); +$ret = $node->safe_psql('postgres', + "select * from pg_available_extensions where name = '$ext_name2'"); +is( $ret, + "test_custom_ext_paths_using_directory|1.0|1.0|Test extension_control_path", + "extension is installed correctly on pg_available_extensions"); + +$ret = $node->safe_psql('postgres', + "select * from pg_available_extension_versions where name = '$ext_name2'" +); +is( $ret, + "test_custom_ext_paths_using_directory|1.0|t|t|f|t|||Test extension_control_path", + "extension is installed correctly on pg_available_extension_versions"); + # Ensure that extensions installed on $system is still visible when using with # custom extension control path. -my $ret3 = $node->safe_psql('postgres', +$ret = $node->safe_psql('postgres', "select count(*) > 0 as ok from pg_available_extensions where name = 'plpgsql'" ); -is($ret3, "t", +is($ret, "t", "\$system extension is installed correctly on pg_available_extensions"); -my $ret4 = $node->safe_psql('postgres', +$ret = $node->safe_psql('postgres', "set extension_control_path = ''; select count(*) > 0 as ok from pg_available_extensions where name = 'plpgsql'" ); -is($ret4, "t", +is($ret, "t", "\$system extension is installed correctly on pg_available_extensions with empty extension_control_path" ); +# Test with an extension that does not exists +my ($code, $stdout, $stderr) = + $node->psql('postgres', "CREATE EXTENSION invalid"); +is($code, 3, 'error to create an extension that does not exists'); +like($stderr, qr/ERROR: extension "invalid" is not available/); + +sub create_extension +{ + my ($ext_name, $ext_dir, $directory) = @_; + + my $control_file = "$ext_dir/extension/$ext_name.control"; + my $sql_file; + + if (defined $directory) + { + $sql_file = "$ext_dir/$directory/$ext_name--1.0.sql"; + } + else + { + $sql_file = "$ext_dir/extension/$ext_name--1.0.sql"; + } + + # Create .control .sql file + open my $cf, '>', $control_file + or die "Could not create control file: $!"; + print $cf "comment = 'Test extension_control_path'\n"; + print $cf "default_version = '1.0'\n"; + print $cf "relocatable = true\n"; + print $cf "directory = $directory" if defined $directory; + close $cf; + + # Create --1.0.sql file + open my $sqlf, '>', $sql_file or die "Could not create sql file: $!"; + print $sqlf "/* $sql_file */\n"; + print $sqlf + "-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n"; + print $sqlf + qq'\\echo Use "CREATE EXTENSION $ext_name" to load this file. \\quit\n'; + close $sqlf; +} + done_testing(); diff --git a/src/test/modules/test_json_parser/test_json_parser_incremental.c b/src/test/modules/test_json_parser/test_json_parser_incremental.c index a529ee47e9bc5..d1e3e4ab4ea59 100644 --- a/src/test/modules/test_json_parser/test_json_parser_incremental.c +++ b/src/test/modules/test_json_parser/test_json_parser_incremental.c @@ -84,7 +84,7 @@ main(int argc, char **argv) char buff[BUFSIZE]; FILE *json_file; JsonParseErrorType result; - JsonLexContext lex; + JsonLexContext *lex; StringInfoData json; int n_read; size_t chunk_size = DEFAULT_CHUNK_SIZE; @@ -98,6 +98,10 @@ main(int argc, char **argv) pg_logging_init(argv[0]); + lex = calloc(1, sizeof(JsonLexContext)); + if (!lex) + pg_fatal("out of memory"); + while ((c = getopt(argc, argv, "c:os")) != -1) { switch (c) @@ -113,7 +117,7 @@ main(int argc, char **argv) case 's': /* do semantic processing */ testsem = &sem; sem.semstate = palloc(sizeof(struct DoState)); - ((struct DoState *) sem.semstate)->lex = &lex; + ((struct DoState *) sem.semstate)->lex = lex; ((struct DoState *) sem.semstate)->buf = makeStringInfo(); need_strings = true; break; @@ -131,8 +135,8 @@ main(int argc, char **argv) exit(1); } - makeJsonLexContextIncremental(&lex, PG_UTF8, need_strings); - setJsonLexContextOwnsTokens(&lex, lex_owns_tokens); + makeJsonLexContextIncremental(lex, PG_UTF8, need_strings); + setJsonLexContextOwnsTokens(lex, lex_owns_tokens); initStringInfo(&json); if ((json_file = fopen(testfile, PG_BINARY_R)) == NULL) @@ -165,12 +169,12 @@ main(int argc, char **argv) bytes_left -= n_read; if (bytes_left > 0) { - result = pg_parse_json_incremental(&lex, testsem, + result = pg_parse_json_incremental(lex, testsem, json.data, n_read, false); if (result != JSON_INCOMPLETE) { - fprintf(stderr, "%s\n", json_errdetail(result, &lex)); + fprintf(stderr, "%s\n", json_errdetail(result, lex)); ret = 1; goto cleanup; } @@ -178,12 +182,12 @@ main(int argc, char **argv) } else { - result = pg_parse_json_incremental(&lex, testsem, + result = pg_parse_json_incremental(lex, testsem, json.data, n_read, true); if (result != JSON_SUCCESS) { - fprintf(stderr, "%s\n", json_errdetail(result, &lex)); + fprintf(stderr, "%s\n", json_errdetail(result, lex)); ret = 1; goto cleanup; } @@ -195,8 +199,9 @@ main(int argc, char **argv) cleanup: fclose(json_file); - freeJsonLexContext(&lex); + freeJsonLexContext(lex); free(json.data); + free(lex); return ret; } diff --git a/src/test/modules/test_slru/test_multixact.c b/src/test/modules/test_slru/test_multixact.c index a9b9628c95874..6c9b0420717cc 100644 --- a/src/test/modules/test_slru/test_multixact.c +++ b/src/test/modules/test_slru/test_multixact.c @@ -46,7 +46,7 @@ test_read_multixact(PG_FUNCTION_ARGS) MultiXactId id = PG_GETARG_TRANSACTIONID(0); MultiXactMember *members; - INJECTION_POINT("test-multixact-read"); + INJECTION_POINT("test-multixact-read", NULL); /* discard caches */ AtEOXact_MultiXact(); diff --git a/src/test/modules/test_slru/test_slru.c b/src/test/modules/test_slru/test_slru.c index 2e4492900afbc..32750930e433d 100644 --- a/src/test/modules/test_slru/test_slru.c +++ b/src/test/modules/test_slru/test_slru.c @@ -151,7 +151,7 @@ test_slru_page_sync(PG_FUNCTION_ARGS) ftag.segno = pageno / SLRU_PAGES_PER_SEGMENT; SlruSyncFileTag(TestSlruCtl, &ftag, path); - elog(NOTICE, "Called SlruSyncFileTag() for segment %" PRId64 " on path %s", + elog(NOTICE, "Called SlruSyncFileTag() for segment %" PRIu64 " on path %s", ftag.segno, path); PG_RETURN_VOID(); @@ -166,7 +166,7 @@ test_slru_page_delete(PG_FUNCTION_ARGS) ftag.segno = pageno / SLRU_PAGES_PER_SEGMENT; SlruDeleteSegment(TestSlruCtl, ftag.segno); - elog(NOTICE, "Called SlruDeleteSegment() for segment %" PRId64, + elog(NOTICE, "Called SlruDeleteSegment() for segment %" PRIu64, ftag.segno); PG_RETURN_VOID(); diff --git a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm index c451aea3ac911..1725fe2f94871 100644 --- a/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm +++ b/src/test/perl/PostgreSQL/Test/AdjustUpgrade.pm @@ -112,6 +112,16 @@ sub adjust_database_contents 'drop extension if exists test_ext7'); } + # we removed these test-support functions in v18 + if ($old_version < 18) + { + _add_st($result, 'regression', 'drop function ttdummy()'); + _add_st($result, 'regression', 'drop function set_ttdummy(integer)'); + _add_st($result, 'regression', 'drop function autoinc()'); + _add_st($result, 'regression', 'drop function check_foreign_key()'); + _add_st($result, 'regression', 'drop function check_primary_key()'); + } + # we removed this test-support function in v17 if ($old_version >= 15 && $old_version < 17) { @@ -528,6 +538,7 @@ my @_unused_view_qualifiers = ( { obj => 'VIEW public.limit_thousand_v_2', qual => 'onek' }, { obj => 'VIEW public.limit_thousand_v_3', qual => 'onek' }, { obj => 'VIEW public.limit_thousand_v_4', qual => 'onek' }, + { obj => 'VIEW public.limit_thousand_v_5', qual => 'onek' }, # Since 14 { obj => 'MATERIALIZED VIEW public.compressmv', qual => 'cmdata1' }); diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 8759ed2cbba10..1c11750ac1d07 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -2618,13 +2618,19 @@ to fail. =item expected_stderr => B -If this regular expression is set, matches it with the output generated. +If this regular expression is set, matches it to the output generated +by B. =item log_like => [ qr/required message/ ] =item log_unlike => [ qr/prohibited message/ ] -See C. +See C. CAUTION: use of either option requires that +the server's log_min_messages be at least DEBUG2, and that no other +client backend is launched concurrently. These requirements allow +C to wait to see the postmaster-log report of backend +exit, without which there is a race condition as to whether we will +see the expected backend log output. =back @@ -2652,7 +2658,14 @@ sub connect_fails like($stderr, $params{expected_stderr}, "$test_name: matches"); } - $self->log_check($test_name, $log_location, %params); + if (defined($params{log_like}) or defined($params{log_unlike})) + { + $self->wait_for_log( + qr/DEBUG: (?:00000: )?forked new client backend, pid=(\d+) socket.*DEBUG: (?:00000: )?client backend \(PID \1\) exited with exit code \d/s, + $log_location); + + $self->log_check($test_name, $log_location, %params); + } } =pod @@ -2909,7 +2922,7 @@ sub log_content =pod -=item $node->log_check($offset, $test_name, %parameters) +=item $node->log_check($test_name, $offset, %params) Check contents of server logs. diff --git a/src/test/postmaster/t/002_connection_limits.pl b/src/test/postmaster/t/002_connection_limits.pl index 325a00efd47d0..6442500fc379a 100644 --- a/src/test/postmaster/t/002_connection_limits.pl +++ b/src/test/postmaster/t/002_connection_limits.pl @@ -20,7 +20,8 @@ $node->append_conf('postgresql.conf', "max_connections = 6"); $node->append_conf('postgresql.conf', "reserved_connections = 2"); $node->append_conf('postgresql.conf', "superuser_reserved_connections = 1"); -$node->append_conf('postgresql.conf', "log_connections = on"); +$node->append_conf('postgresql.conf', + "log_connections = 'receipt,authentication,authorization'"); $node->append_conf('postgresql.conf', "log_min_messages=debug2"); $node->start; diff --git a/src/test/postmaster/t/003_start_stop.pl b/src/test/postmaster/t/003_start_stop.pl index 4dc394139d959..58e7ba6cc425e 100644 --- a/src/test/postmaster/t/003_start_stop.pl +++ b/src/test/postmaster/t/003_start_stop.pl @@ -33,7 +33,8 @@ $node->append_conf('postgresql.conf', "max_wal_senders = 0"); $node->append_conf('postgresql.conf', "autovacuum_max_workers = 1"); $node->append_conf('postgresql.conf', "max_worker_processes = 1"); -$node->append_conf('postgresql.conf', "log_connections = on"); +$node->append_conf('postgresql.conf', + "log_connections = 'receipt,authentication,authorization'"); $node->append_conf('postgresql.conf', "log_min_messages = debug2"); $node->append_conf('postgresql.conf', "authentication_timeout = '$authentication_timeout s'"); diff --git a/src/test/recovery/meson.build b/src/test/recovery/meson.build index 057bcde1434d3..cb983766c6793 100644 --- a/src/test/recovery/meson.build +++ b/src/test/recovery/meson.build @@ -53,6 +53,7 @@ tests += { 't/042_low_level_backup.pl', 't/043_no_contrecord_switch.pl', 't/044_invalidate_inactive_slots.pl', + 't/045_archive_restartpoint.pl', ], }, } diff --git a/src/test/recovery/t/001_stream_rep.pl b/src/test/recovery/t/001_stream_rep.pl index ccd8417d449f9..2cbcc509d7665 100644 --- a/src/test/recovery/t/001_stream_rep.pl +++ b/src/test/recovery/t/001_stream_rep.pl @@ -42,6 +42,9 @@ has_streaming => 1); $node_standby_2->start; +# Reset IO statistics, for the WAL sender check with pg_stat_io. +$node_primary->safe_psql('postgres', "SELECT pg_stat_reset_shared('io')"); + # Create some content on primary and check its presence in standby nodes $node_primary->safe_psql('postgres', "CREATE TABLE tab_int AS SELECT generate_series(1,1002) AS a"); @@ -333,6 +336,19 @@ sub test_target_session_attrs note "switching to physical replication slot"; +# Wait for the physical WAL sender to update its IO statistics. This is +# done before the next restart, which would force a flush of its stats, and +# far enough from the reset done above to not impact the run time. +$node_primary->poll_query_until( + 'postgres', + qq[SELECT sum(reads) > 0 + FROM pg_catalog.pg_stat_io + WHERE backend_type = 'walsender' + AND object = 'wal'] + ) + or die + "Timed out while waiting for the walsender to update its IO statistics"; + # Switch to using a physical replication slot. We can do this without a new # backup since physical slots can go backwards if needed. Do so on both # standbys. Since we're going to be testing things that affect the slot state, diff --git a/src/test/recovery/t/006_logical_decoding.pl b/src/test/recovery/t/006_logical_decoding.pl index a5678bc4dc41d..2137c4e5e305f 100644 --- a/src/test/recovery/t/006_logical_decoding.pl +++ b/src/test/recovery/t/006_logical_decoding.pl @@ -161,8 +161,8 @@ is($node_primary->psql('postgres', 'DROP DATABASE otherdb'), 3, 'dropping a DB with active logical slots fails'); $pg_recvlogical->kill_kill; - is($node_primary->slot('otherdb_slot')->{'slot_name'}, - undef, 'logical slot still exists'); + is($node_primary->slot('otherdb_slot')->{'plugin'}, + 'test_decoding', 'logical slot still exists'); } $node_primary->poll_query_until('otherdb', @@ -171,8 +171,8 @@ is($node_primary->psql('postgres', 'DROP DATABASE otherdb'), 0, 'dropping a DB with inactive logical slots succeeds'); -is($node_primary->slot('otherdb_slot')->{'slot_name'}, - undef, 'logical slot was actually dropped with DB'); +is($node_primary->slot('otherdb_slot')->{'plugin'}, + '', 'logical slot was actually dropped with DB'); # Test logical slot advancing and its durability. # Passing failover=true (last arg) should not have any impact on advancing. diff --git a/src/test/recovery/t/010_logical_decoding_timelines.pl b/src/test/recovery/t/010_logical_decoding_timelines.pl index 08615f1fca87c..351a9ef7bddd4 100644 --- a/src/test/recovery/t/010_logical_decoding_timelines.pl +++ b/src/test/recovery/t/010_logical_decoding_timelines.pl @@ -94,8 +94,8 @@ 'postgres', q[SELECT 1 FROM pg_database WHERE datname = 'dropme']), '', 'dropped DB dropme on standby'); -is($node_primary->slot('dropme_slot')->{'slot_name'}, - undef, 'logical slot was actually dropped on standby'); +is($node_replica->slot('dropme_slot')->{'plugin'}, + '', 'logical slot was actually dropped on standby'); # Back to testing failover... $node_primary->safe_psql('postgres', diff --git a/src/test/recovery/t/013_crash_restart.pl b/src/test/recovery/t/013_crash_restart.pl index 4e60806563f2a..debfa635c36fe 100644 --- a/src/test/recovery/t/013_crash_restart.pl +++ b/src/test/recovery/t/013_crash_restart.pl @@ -27,7 +27,7 @@ $node->safe_psql( 'postgres', q[ALTER SYSTEM SET restart_after_crash = 1; - ALTER SYSTEM SET log_connections = 1; + ALTER SYSTEM SET log_connections = receipt; SELECT pg_reload_conf();]); # Run psql, keeping session alive, so we have an alive backend to kill. diff --git a/src/test/recovery/t/022_crash_temp_files.pl b/src/test/recovery/t/022_crash_temp_files.pl index 50def031c9677..0b68860bd3e94 100644 --- a/src/test/recovery/t/022_crash_temp_files.pl +++ b/src/test/recovery/t/022_crash_temp_files.pl @@ -26,7 +26,7 @@ $node->safe_psql( 'postgres', q[ALTER SYSTEM SET remove_temp_files_after_crash = on; - ALTER SYSTEM SET log_connections = 1; + ALTER SYSTEM SET log_connections = receipt; ALTER SYSTEM SET work_mem = '64kB'; ALTER SYSTEM SET restart_after_crash = on; SELECT pg_reload_conf();]); diff --git a/src/test/recovery/t/032_relfilenode_reuse.pl b/src/test/recovery/t/032_relfilenode_reuse.pl index 492ef115ba45c..0c44883cc34b1 100644 --- a/src/test/recovery/t/032_relfilenode_reuse.pl +++ b/src/test/recovery/t/032_relfilenode_reuse.pl @@ -14,7 +14,7 @@ $node_primary->append_conf( 'postgresql.conf', q[ allow_in_place_tablespaces = true -log_connections=on +log_connections=receipt # to avoid "repairing" corruption full_page_writes=off log_min_messages=debug2 diff --git a/src/test/recovery/t/035_standby_logical_decoding.pl b/src/test/recovery/t/035_standby_logical_decoding.pl index c31cab06f1cba..921813483e37c 100644 --- a/src/test/recovery/t/035_standby_logical_decoding.pl +++ b/src/test/recovery/t/035_standby_logical_decoding.pl @@ -10,6 +10,11 @@ use PostgreSQL::Test::Utils; use Test::More; +if ($ENV{enable_injection_points} ne 'yes') +{ + plan skip_all => 'Injection points not supported by this build'; +} + my ($stdout, $stderr, $cascading_stdout, $cascading_stderr, $handle); my $node_primary = PostgreSQL::Test::Cluster->new('primary'); @@ -241,16 +246,19 @@ sub check_for_invalidation # VACUUM command, $sql the sql to launch before triggering the vacuum and # $to_vac the relation to vacuum. # -# Note that pg_current_snapshot() is used to get the horizon. It does -# not generate a Transaction/COMMIT WAL record, decreasing the risk of -# seeing a xl_running_xacts that would advance an active replication slot's -# catalog_xmin. Advancing the active replication slot's catalog_xmin -# would break some tests that expect the active slot to conflict with -# the catalog xmin horizon. +# Note that the injection_point avoids seeing a xl_running_xacts that could +# advance an active replication slot's catalog_xmin. Advancing the active +# replication slot's catalog_xmin would break some tests that expect the +# active slot to conflict with the catalog xmin horizon. sub wait_until_vacuum_can_remove { my ($vac_option, $sql, $to_vac) = @_; + # Note that from this point the checkpointer and bgwriter will skip writing + # xl_running_xacts record. + $node_primary->safe_psql('testdb', + "SELECT injection_points_attach('skip-log-running-xacts', 'error');"); + # Get the current xid horizon, my $xid_horizon = $node_primary->safe_psql('testdb', qq[select pg_snapshot_xmin(pg_current_snapshot());]); @@ -268,6 +276,12 @@ sub wait_until_vacuum_can_remove $node_primary->safe_psql( 'testdb', qq[VACUUM $vac_option verbose $to_vac; INSERT INTO flush_wal DEFAULT VALUES;]); + + $node_primary->wait_for_replay_catchup($node_standby); + + # Resume generating the xl_running_xacts record + $node_primary->safe_psql('testdb', + "SELECT injection_points_detach('skip-log-running-xacts');"); } ######################## @@ -285,6 +299,14 @@ sub wait_until_vacuum_can_remove $node_primary->dump_info; $node_primary->start; +# Check if the extension injection_points is available, as it may be +# possible that this script is run with installcheck, where the module +# would not be installed by default. +if (!$node_primary->check_extension('injection_points')) +{ + plan skip_all => 'Extension injection_points not installed'; +} + $node_primary->psql('postgres', q[CREATE DATABASE testdb]); $node_primary->safe_psql('testdb', @@ -528,6 +550,9 @@ sub wait_until_vacuum_can_remove $node_subscriber->safe_psql('postgres', "DROP SUBSCRIPTION tap_sub"); $node_subscriber->stop; +# Create the injection_points extension +$node_primary->safe_psql('testdb', 'CREATE EXTENSION injection_points;'); + ################################################## # Recovery conflict: Invalidate conflicting slots, including in-use slots # Scenario 1: hot_standby_feedback off and vacuum FULL @@ -557,8 +582,6 @@ sub wait_until_vacuum_can_remove 'full', 'CREATE TABLE conflict_test(x integer, y text); DROP TABLE conflict_test;', 'pg_class'); -$node_primary->wait_for_replay_catchup($node_standby); - # Check invalidation in the logfile and in pg_stat_database_conflicts check_for_invalidation('vacuum_full_', 1, 'with vacuum FULL on pg_class'); @@ -591,6 +614,15 @@ sub wait_until_vacuum_can_remove check_pg_recvlogical_stderr($handle, "can no longer access replication slot \"vacuum_full_activeslot\""); +# Attempt to copy an invalidated logical replication slot +($result, $stdout, $stderr) = $node_standby->psql( + 'postgres', + qq[select pg_copy_logical_replication_slot('vacuum_full_inactiveslot', 'vacuum_full_inactiveslot_copy');], + replication => 'database'); +ok( $stderr =~ + /ERROR: cannot copy invalidated replication slot "vacuum_full_inactiveslot"/, + "invalidated slot cannot be copied"); + # Turn hot_standby_feedback back on change_hot_standby_feedback_and_wait_for_xmins(1, 1); @@ -656,8 +688,6 @@ sub wait_until_vacuum_can_remove '', 'CREATE TABLE conflict_test(x integer, y text); DROP TABLE conflict_test;', 'pg_class'); -$node_primary->wait_for_replay_catchup($node_standby); - # Check invalidation in the logfile and in pg_stat_database_conflicts check_for_invalidation('row_removal_', $logstart, 'with vacuum on pg_class'); @@ -690,8 +720,6 @@ sub wait_until_vacuum_can_remove '', 'CREATE ROLE create_trash; DROP ROLE create_trash;', 'pg_authid'); -$node_primary->wait_for_replay_catchup($node_standby); - # Check invalidation in the logfile and in pg_stat_database_conflicts check_for_invalidation('shared_row_removal_', $logstart, 'with vacuum on pg_authid'); @@ -724,8 +752,6 @@ sub wait_until_vacuum_can_remove INSERT INTO conflict_test(x,y) SELECT s, s::text FROM generate_series(1,4) s; UPDATE conflict_test set x=1, y=1;', 'conflict_test'); -$node_primary->wait_for_replay_catchup($node_standby); - # message should not be issued ok( !$node_standby->log_contains( "invalidating obsolete slot \"no_conflict_inactiveslot\"", $logstart), @@ -773,6 +799,13 @@ sub wait_until_vacuum_can_remove reactive_slots_change_hfs_and_wait_for_xmins('no_conflict_', 'pruning_', 0, 0); +# Injection point avoids seeing a xl_running_xacts. This is required because if +# it is generated between the last two updates, then the catalog_xmin of the +# active slot could be updated, and hence, the conflict won't occur. See +# comments atop wait_until_vacuum_can_remove. +$node_primary->safe_psql('testdb', + "SELECT injection_points_attach('skip-log-running-xacts', 'error');"); + # This should trigger the conflict $node_primary->safe_psql('testdb', qq[CREATE TABLE prun(id integer, s char(2000)) WITH (fillfactor = 75, user_catalog_table = true);] @@ -785,6 +818,10 @@ sub wait_until_vacuum_can_remove $node_primary->wait_for_replay_catchup($node_standby); +# Resume generating the xl_running_xacts record +$node_primary->safe_psql('testdb', + "SELECT injection_points_detach('skip-log-running-xacts');"); + # Check invalidation in the logfile and in pg_stat_database_conflicts check_for_invalidation('pruning_', $logstart, 'with on-access pruning'); diff --git a/src/test/recovery/t/037_invalid_database.pl b/src/test/recovery/t/037_invalid_database.pl index bdf3939739724..dc52c55c7af8d 100644 --- a/src/test/recovery/t/037_invalid_database.pl +++ b/src/test/recovery/t/037_invalid_database.pl @@ -15,7 +15,7 @@ autovacuum = off max_prepared_transactions=5 log_min_duration_statement=0 -log_connections=on +log_connections=receipt log_disconnections=on )); diff --git a/src/test/recovery/t/040_standby_failover_slots_sync.pl b/src/test/recovery/t/040_standby_failover_slots_sync.pl index 8f65142909a67..9c8b49e942d88 100644 --- a/src/test/recovery/t/040_standby_failover_slots_sync.pl +++ b/src/test/recovery/t/040_standby_failover_slots_sync.pl @@ -22,7 +22,11 @@ # Disable autovacuum to avoid generating xid during stats update as otherwise # the new XID could then be replicated to standby at some random point making # slots at primary lag behind standby during slot sync. -$publisher->append_conf('postgresql.conf', 'autovacuum = off'); +$publisher->append_conf( + 'postgresql.conf', qq{ +autovacuum = off +max_prepared_transactions = 1 +}); $publisher->start; $publisher->safe_psql('postgres', @@ -33,6 +37,7 @@ # Create a subscriber node, wait for sync to complete my $subscriber1 = PostgreSQL::Test::Cluster->new('subscriber1'); $subscriber1->init; +$subscriber1->append_conf('postgresql.conf', 'max_prepared_transactions = 1'); $subscriber1->start; # Capture the time before the logical failover slot is created on the @@ -830,13 +835,72 @@ "'sb1_slot'"); $primary->reload; +################################################## +# Test the synchronization of the two_phase setting for a subscription with the +# standby. Additionally, prepare a transaction before enabling the two_phase +# option; subsequent tests will verify if it can be correctly replicated to the +# subscriber after committing it on the promoted standby. +################################################## + +$standby1->start; + +# Prepare a transaction +$primary->safe_psql( + 'postgres', qq[ + BEGIN; + INSERT INTO tab_int values(0); + PREPARE TRANSACTION 'test_twophase_slotsync'; +]); + +$primary->wait_for_replay_catchup($standby1); +$primary->wait_for_catchup('regress_mysub1'); + +# Disable the subscription to allow changing the two_phase option. +$subscriber1->safe_psql('postgres', + "ALTER SUBSCRIPTION regress_mysub1 DISABLE"); + +# Wait for the replication slot to become inactive on the publisher +$primary->poll_query_until( + 'postgres', + "SELECT COUNT(*) FROM pg_catalog.pg_replication_slots WHERE slot_name = 'lsub1_slot' AND active='f'", + 1); + +# Set two_phase to true and enable the subscription +$subscriber1->safe_psql( + 'postgres', qq[ + ALTER SUBSCRIPTION regress_mysub1 SET (two_phase = true); + ALTER SUBSCRIPTION regress_mysub1 ENABLE; +]); + +$primary->wait_for_catchup('regress_mysub1'); + +my $two_phase_at = $primary->safe_psql('postgres', + "SELECT two_phase_at from pg_replication_slots WHERE slot_name = 'lsub1_slot';" +); + +# Confirm that two_phase setting of lsub1_slot slot is synced to the standby +ok( $standby1->poll_query_until( + 'postgres', + "SELECT two_phase AND '$two_phase_at' = two_phase_at from pg_replication_slots WHERE slot_name = 'lsub1_slot' AND synced AND NOT temporary;" + ), + 'two_phase setting of slot lsub1_slot synced to standby'); + +# Confirm that the prepared transaction is not yet replicated to the +# subscriber. +$result = $subscriber1->safe_psql('postgres', + "SELECT count(*) = 0 FROM pg_prepared_xacts;"); +is($result, 't', + "the prepared transaction is not replicated to the subscriber"); + ################################################## # Promote the standby1 to primary. Confirm that: # a) the slot 'lsub1_slot' and 'snap_test_slot' are retained on the new primary # b) logical replication for regress_mysub1 is resumed successfully after failover -# c) changes can be consumed from the synced slot 'snap_test_slot' +# c) changes from the transaction prepared 'test_twophase_slotsync' can be +# consumed from the synced slot 'snap_test_slot' once committed on the new +# primary. +# d) changes can be consumed from the synced slot 'snap_test_slot' ################################################## -$standby1->start; $primary->wait_for_replay_catchup($standby1); # Capture the time before the standby is promoted @@ -876,6 +940,15 @@ 't', 'synced slot retained on the new primary'); +# Commit the prepared transaction +$standby1->safe_psql('postgres', + "COMMIT PREPARED 'test_twophase_slotsync';"); +$standby1->wait_for_catchup('regress_mysub1'); + +# Confirm that the prepared transaction is replicated to the subscriber +is($subscriber1->safe_psql('postgres', q{SELECT count(*) FROM tab_int;}), + "11", 'prepared data replicated from the new primary'); + # Insert data on the new primary $standby1->safe_psql('postgres', "INSERT INTO tab_int SELECT generate_series(11, 20);"); @@ -883,7 +956,7 @@ # Confirm that data in tab_int replicated on the subscriber is($subscriber1->safe_psql('postgres', q{SELECT count(*) FROM tab_int;}), - "20", 'data replicated from the new primary'); + "21", 'data replicated from the new primary'); # Consume the data from the snap_test_slot. The synced slot should reach a # consistent point by restoring the snapshot at the restart_lsn serialized diff --git a/src/test/recovery/t/045_archive_restartpoint.pl b/src/test/recovery/t/045_archive_restartpoint.pl new file mode 100644 index 0000000000000..b143bc4e1d4e7 --- /dev/null +++ b/src/test/recovery/t/045_archive_restartpoint.pl @@ -0,0 +1,57 @@ + +# Copyright (c) 2024-2025, PostgreSQL Global Development Group + +# Test restartpoints during archive recovery. +use strict; +use warnings; + +use PostgreSQL::Test::Cluster; +use PostgreSQL::Test::Utils; +use Test::More; + +my $archive_max_mb = 320; +my $wal_segsize = 1; + +# Initialize primary node +my $node_primary = PostgreSQL::Test::Cluster->new('primary'); +$node_primary->init( + has_archiving => 1, + allows_streaming => 1, + extra => [ '--wal-segsize' => $wal_segsize ]); +$node_primary->start; +my $backup_name = 'my_backup'; +$node_primary->backup($backup_name); + +$node_primary->safe_psql('postgres', + ('DO $$BEGIN FOR i IN 1..' . $archive_max_mb / $wal_segsize) + . ' LOOP CHECKPOINT; PERFORM pg_switch_wal(); END LOOP; END$$;'); + +# Force archiving of WAL file containing recovery target +my $until_lsn = $node_primary->lsn('write'); +$node_primary->safe_psql('postgres', "SELECT pg_switch_wal()"); +$node_primary->stop; + +# Archive recovery +my $node_restore = PostgreSQL::Test::Cluster->new('restore'); +$node_restore->init_from_backup($node_primary, $backup_name, + has_restoring => 1); +$node_restore->append_conf('postgresql.conf', + "recovery_target_lsn = '$until_lsn'"); +$node_restore->append_conf('postgresql.conf', + 'recovery_target_action = pause'); +$node_restore->append_conf('postgresql.conf', + 'max_wal_size = ' . 2 * $wal_segsize); +$node_restore->append_conf('postgresql.conf', 'log_checkpoints = on'); + +$node_restore->start; + +# Wait until restore has replayed enough data +my $caughtup_query = + "SELECT '$until_lsn'::pg_lsn <= pg_last_wal_replay_lsn()"; +$node_restore->poll_query_until('postgres', $caughtup_query) + or die "Timed out while waiting for restore to catch up"; + +$node_restore->stop; +ok(1, 'restore caught up'); + +done_testing(); diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile index 523be64042403..ef2bddf42cabf 100644 --- a/src/test/regress/GNUmakefile +++ b/src/test/regress/GNUmakefile @@ -87,26 +87,6 @@ installdirs-tests: installdirs $(MKDIR_P) $(patsubst $(srcdir)/%/,'$(DESTDIR)$(pkglibdir)/regress/%',$(sort $(dir $(regress_data_files)))) -# Get some extra C modules from contrib/spi - -all: refint$(DLSUFFIX) autoinc$(DLSUFFIX) - -refint$(DLSUFFIX): $(top_builddir)/contrib/spi/refint$(DLSUFFIX) - cp $< $@ - -autoinc$(DLSUFFIX): $(top_builddir)/contrib/spi/autoinc$(DLSUFFIX) - cp $< $@ - -$(top_builddir)/contrib/spi/refint$(DLSUFFIX): | submake-contrib-spi ; - -$(top_builddir)/contrib/spi/autoinc$(DLSUFFIX): | submake-contrib-spi ; - -submake-contrib-spi: | submake-libpgport submake-generated-headers - $(MAKE) -C $(top_builddir)/contrib/spi - -.PHONY: submake-contrib-spi - - ## ## Run tests ## @@ -148,7 +128,7 @@ bigcheck: all | temp-install clean distclean: clean-lib # things built by `all' target - rm -f $(OBJS) refint$(DLSUFFIX) autoinc$(DLSUFFIX) + rm -f $(OBJS) rm -f pg_regress_main.o pg_regress.o pg_regress$(X) # things created by various check targets rm -rf $(pg_regress_clean_files) diff --git a/src/test/regress/expected/aggregates.out b/src/test/regress/expected/aggregates.out index 6b6371c3e74b3..1f1ce2380af68 100644 --- a/src/test/regress/expected/aggregates.out +++ b/src/test/regress/expected/aggregates.out @@ -1678,6 +1678,43 @@ select sum(two order by two) from tenk1; (2 rows) reset enable_presorted_aggregate; +-- +-- Test cases with FILTER clause +-- +-- Ensure we presort when the aggregate contains plain Vars +explain (costs off) +select sum(two order by two) filter (where two > 1) from tenk1; + QUERY PLAN +------------------------------- + Aggregate + -> Sort + Sort Key: two + -> Seq Scan on tenk1 +(4 rows) + +-- Ensure we presort for RelabelType'd Vars +explain (costs off) +select string_agg(distinct f1, ',') filter (where length(f1) > 1) +from varchar_tbl; + QUERY PLAN +------------------------------------- + Aggregate + -> Sort + Sort Key: f1 + -> Seq Scan on varchar_tbl +(4 rows) + +-- Ensure we don't presort when the aggregate's argument contains an +-- explicit cast. +explain (costs off) +select string_agg(distinct f1::varchar(2), ',') filter (where length(f1) > 1) +from varchar_tbl; + QUERY PLAN +------------------------------- + Aggregate + -> Seq Scan on varchar_tbl +(2 rows) + -- -- Test combinations of DISTINCT and/or ORDER BY -- diff --git a/src/test/regress/expected/alter_generic.out b/src/test/regress/expected/alter_generic.out index 0c274d56a04da..23bf33f10a919 100644 --- a/src/test/regress/expected/alter_generic.out +++ b/src/test/regress/expected/alter_generic.out @@ -362,9 +362,9 @@ ERROR: invalid operator number 0, must be between 1 and 5 ALTER OPERATOR FAMILY alt_opf4 USING btree ADD OPERATOR 1 < ; -- operator without argument types ERROR: operator argument types must be specified in ALTER OPERATOR FAMILY ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 0 btint42cmp(int4, int2); -- invalid options parsing function -ERROR: invalid function number 0, must be between 1 and 5 -ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 6 btint42cmp(int4, int2); -- function number should be between 1 and 5 -ERROR: invalid function number 6, must be between 1 and 5 +ERROR: invalid function number 0, must be between 1 and 6 +ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 7 btint42cmp(int4, int2); -- function number should be between 1 and 6 +ERROR: invalid function number 7, must be between 1 and 6 ALTER OPERATOR FAMILY alt_opf4 USING btree ADD STORAGE invalid_storage; -- Ensure STORAGE is not a part of ALTER OPERATOR FAMILY ERROR: STORAGE cannot be specified in ALTER OPERATOR FAMILY DROP OPERATOR FAMILY alt_opf4 USING btree; @@ -505,6 +505,10 @@ ALTER OPERATOR FAMILY alt_opf18 USING btree ADD ALTER OPERATOR FAMILY alt_opf18 USING btree ADD FUNCTION 4 (int4, int2) btequalimage(oid); ERROR: ordering equal image functions must not be cross-type +-- Should fail. Not allowed to have cross-type skip support function. +ALTER OPERATOR FAMILY alt_opf18 USING btree + ADD FUNCTION 6 (int4, int2) btint4skipsupport(internal); +ERROR: btree skip support functions must not be cross-type ALTER OPERATOR FAMILY alt_opf18 USING btree DROP FUNCTION 2 (int4, int4); ERROR: function 2(integer,integer) does not exist in operator family "alt_opf18" DROP OPERATOR FAMILY alt_opf18 USING btree; diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 362f38856d294..476266e3f4b03 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -1202,6 +1202,75 @@ alter table atacc1 alter test_a drop not null, alter test_b drop not null; alter table atacc1 add constraint atacc1_constr_b_valid check(test_b is not null); alter table atacc1 alter test_b set not null, alter test_a set not null; drop table atacc1; +-- not null not valid with partitions +CREATE TABLE atnnparted (id int, col1 int) PARTITION BY LIST (id); +ALTER TABLE atnnparted ADD CONSTRAINT dummy_constr NOT NULL id NOT VALID; +CREATE TABLE atnnpart1 (col1 int, id int); +ALTER TABLE atnnpart1 ADD CONSTRAINT another_constr NOT NULL id; +ALTER TABLE atnnpart1 ADD PRIMARY KEY (id); +ALTER TABLE atnnparted ATTACH PARTITION atnnpart1 FOR VALUES IN ('1'); +\d+ atnnpart* + Table "public.atnnpart1" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + col1 | integer | | | | plain | | + id | integer | | not null | | plain | | +Partition of: atnnparted FOR VALUES IN (1) +Partition constraint: ((id IS NOT NULL) AND (id = 1)) +Indexes: + "atnnpart1_pkey" PRIMARY KEY, btree (id) +Not-null constraints: + "another_constr" NOT NULL "id" (inherited) + + Index "public.atnnpart1_pkey" + Column | Type | Key? | Definition | Storage | Stats target +--------+---------+------+------------+---------+-------------- + id | integer | yes | id | plain | +primary key, btree, for table "public.atnnpart1" + + Partitioned table "public.atnnparted" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + id | integer | | not null | | plain | | + col1 | integer | | | | plain | | +Partition key: LIST (id) +Not-null constraints: + "dummy_constr" NOT NULL "id" NOT VALID +Partitions: atnnpart1 FOR VALUES IN (1) + +BEGIN; +ALTER TABLE atnnparted VALIDATE CONSTRAINT dummy_constr; +\d+ atnnpart* + Table "public.atnnpart1" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + col1 | integer | | | | plain | | + id | integer | | not null | | plain | | +Partition of: atnnparted FOR VALUES IN (1) +Partition constraint: ((id IS NOT NULL) AND (id = 1)) +Indexes: + "atnnpart1_pkey" PRIMARY KEY, btree (id) +Not-null constraints: + "another_constr" NOT NULL "id" (inherited) + + Index "public.atnnpart1_pkey" + Column | Type | Key? | Definition | Storage | Stats target +--------+---------+------+------------+---------+-------------- + id | integer | yes | id | plain | +primary key, btree, for table "public.atnnpart1" + + Partitioned table "public.atnnparted" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + id | integer | | not null | | plain | | + col1 | integer | | | | plain | | +Partition key: LIST (id) +Not-null constraints: + "dummy_constr" NOT NULL "id" +Partitions: atnnpart1 FOR VALUES IN (1) + +ROLLBACK; +-- leave a table in this state for the pg_upgrade test -- test inheritance create table parent (a int); create table child (b varchar(255)) inherits (parent); @@ -2829,6 +2898,8 @@ select * from my_locks order by 1; rollback; begin; +create function ttdummy () returns trigger language plpgsql as +$$ begin return new; end $$; create trigger ttdummy before delete or update on alterlock for each row diff --git a/src/test/regress/expected/btree_index.out b/src/test/regress/expected/btree_index.out index 8879554c3f7c2..bfb1a286ea4ad 100644 --- a/src/test/regress/expected/btree_index.out +++ b/src/test/regress/expected/btree_index.out @@ -581,6 +581,47 @@ alter table btree_tall_tbl alter COLUMN t set storage plain; create index btree_tall_idx on btree_tall_tbl (t, id) with (fillfactor = 10); insert into btree_tall_tbl select g, repeat('x', 250) from generate_series(1, 130) g; +insert into btree_tall_tbl select g, NULL +from generate_series(50, 60) g; +-- +-- Test for skip scan with type that lacks skip support (text) +-- +set enable_seqscan to false; +set enable_bitmapscan to false; +-- Forwards scan +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t, id; + id +---- + 55 + 55 +(2 rows) + +explain (costs off) +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t, id; + QUERY PLAN +-------------------------------------------------------- + Index Only Scan using btree_tall_idx on btree_tall_tbl + Index Cond: (id = 55) +(2 rows) + +-- Backwards scan +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t DESC, id DESC; + id +---- + 55 + 55 +(2 rows) + +explain (costs off) +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t DESC, id DESC; + QUERY PLAN +----------------------------------------------------------------- + Index Only Scan Backward using btree_tall_idx on btree_tall_tbl + Index Cond: (id = 55) +(2 rows) + +reset enable_seqscan; +reset enable_bitmapscan; -- -- Test for multilevel page deletion -- diff --git a/src/test/regress/expected/collate.utf8.out b/src/test/regress/expected/collate.utf8.out index 5508622b16d01..0c3ab5c89b284 100644 --- a/src/test/regress/expected/collate.utf8.out +++ b/src/test/regress/expected/collate.utf8.out @@ -52,6 +52,7 @@ INSERT INTO test_pg_c_utf8 VALUES ('abc DEF 123abc'), ('ábc sßs ßss DÉF'), ('DŽxxDŽ džxxDž Džxxdž'), + (U&'Λλ 1a \FF11a'), ('ȺȺȺ'), ('ⱥⱥⱥ'), ('ⱥȺ'); @@ -67,10 +68,11 @@ SELECT abc DEF 123abc | abc def 123abc | Abc Def 123abc | ABC DEF 123ABC | 14 | 14 | 14 | 14 ábc sßs ßss DÉF | ábc sßs ßss déf | Ábc Sßs ßss Déf | ÁBC SßS ßSS DÉF | 19 | 19 | 19 | 19 DŽxxDŽ džxxDž Džxxdž | džxxdž džxxdž džxxdž | DŽxxdž DŽxxdž DŽxxdž | DŽXXDŽ DŽXXDŽ DŽXXDŽ | 20 | 20 | 20 | 20 + Λλ 1a 1a | λλ 1a 1a | Λλ 1a 1A | ΛΛ 1A 1A | 12 | 12 | 12 | 12 ȺȺȺ | ⱥⱥⱥ | Ⱥⱥⱥ | ȺȺȺ | 6 | 9 | 8 | 6 ⱥⱥⱥ | ⱥⱥⱥ | Ⱥⱥⱥ | ȺȺȺ | 9 | 9 | 8 | 6 ⱥȺ | ⱥⱥ | Ⱥⱥ | ȺȺ | 5 | 6 | 5 | 4 -(6 rows) +(7 rows) DROP TABLE test_pg_c_utf8; -- negative test: Final_Sigma not used for builtin locale C.UTF-8 @@ -182,6 +184,7 @@ INSERT INTO test_pg_unicode_fast VALUES ('abc DEF 123abc'), ('ábc sßs ßss DÉF'), ('DŽxxDŽ džxxDž Džxxdž'), + (U&'Λλ 1a \FF11a'), ('ȺȺȺ'), ('ⱥⱥⱥ'), ('ⱥȺ'); @@ -197,10 +200,11 @@ SELECT abc DEF 123abc | abc def 123abc | Abc Def 123abc | ABC DEF 123ABC | 14 | 14 | 14 | 14 ábc sßs ßss DÉF | ábc sßs ßss déf | Ábc Sßs Ssss Déf | ÁBC SSSS SSSS DÉF | 19 | 19 | 19 | 19 DŽxxDŽ džxxDž Džxxdž | džxxdž džxxdž džxxdž | Džxxdž Džxxdž Džxxdž | DŽXXDŽ DŽXXDŽ DŽXXDŽ | 20 | 20 | 20 | 20 + Λλ 1a 1a | λλ 1a 1a | Λλ 1a 1a | ΛΛ 1A 1A | 12 | 12 | 12 | 12 ȺȺȺ | ⱥⱥⱥ | Ⱥⱥⱥ | ȺȺȺ | 6 | 9 | 8 | 6 ⱥⱥⱥ | ⱥⱥⱥ | Ⱥⱥⱥ | ȺȺȺ | 9 | 9 | 8 | 6 ⱥȺ | ⱥⱥ | Ⱥⱥ | ȺȺ | 5 | 6 | 5 | 4 -(6 rows) +(7 rows) DROP TABLE test_pg_unicode_fast; -- test Final_Sigma diff --git a/src/test/regress/expected/constraints.out b/src/test/regress/expected/constraints.out index 4f39100fcdf9e..ad6aaab738538 100644 --- a/src/test/regress/expected/constraints.out +++ b/src/test/regress/expected/constraints.out @@ -641,9 +641,9 @@ CREATE TABLE parted_fk_naming_1 ( ); ALTER TABLE parted_fk_naming ATTACH PARTITION parted_fk_naming_1 FOR VALUES IN ('1'); SELECT conname FROM pg_constraint WHERE conrelid = 'parted_fk_naming_1'::regclass AND contype = 'f'; - conname --------------------------------- - parted_fk_naming_1_id_abc_fkey + conname +---------------- + dummy_constr_1 (1 row) DROP TABLE parted_fk_naming; @@ -745,13 +745,9 @@ ERROR: misplaced NOT ENFORCED clause LINE 1: CREATE TABLE UNIQUE_NOTEN_TBL(i int UNIQUE NOT ENFORCED); ^ ALTER TABLE unique_tbl ALTER CONSTRAINT unique_tbl_i_key ENFORCED; -ERROR: FOREIGN KEY constraints cannot be marked ENFORCED -LINE 1: ...TABLE unique_tbl ALTER CONSTRAINT unique_tbl_i_key ENFORCED; - ^ +ERROR: cannot alter enforceability of constraint "unique_tbl_i_key" of relation "unique_tbl" ALTER TABLE unique_tbl ALTER CONSTRAINT unique_tbl_i_key NOT ENFORCED; -ERROR: FOREIGN KEY constraints cannot be marked NOT ENFORCED -LINE 1: ...ABLE unique_tbl ALTER CONSTRAINT unique_tbl_i_key NOT ENFORC... - ^ +ERROR: cannot alter enforceability of constraint "unique_tbl_i_key" of relation "unique_tbl" DROP TABLE unique_tbl; -- -- EXCLUDE constraints @@ -1046,6 +1042,7 @@ ALTER TABLE ATACC2 INHERIT ATACC1; -- can't override ALTER TABLE ATACC1 ADD CONSTRAINT ditto NOT NULL a; ERROR: cannot change NO INHERIT status of NOT NULL constraint "a_is_not_null" on relation "atacc2" +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. -- dropping the NO INHERIT constraint allows this to work ALTER TABLE ATACC2 DROP CONSTRAINT a_is_not_null; ALTER TABLE ATACC1 ADD CONSTRAINT ditto NOT NULL a; @@ -1233,6 +1230,13 @@ alter table cnn_uq add unique using index cnn_uq_idx; Indexes: "cnn_uq_idx" UNIQUE CONSTRAINT, btree (a) +-- can't create a primary key on a noinherit not-null +create table cnn_pk (a int not null no inherit); +alter table cnn_pk add primary key (a); +ERROR: cannot create primary key on column "a" +DETAIL: The constraint "cnn_pk_a_not_null" on column "a" of table "cnn_pk", marked NO INHERIT, is incompatible with a primary key. +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. +drop table cnn_pk; -- Ensure partitions are scanned for null values when adding a PK create table cnn2_parted(a int) partition by list (a); create table cnn_part1 partition of cnn2_parted for values in (1, null); @@ -1359,6 +1363,304 @@ Not-null constraints: "ann" NOT NULL "a" "bnn" NOT NULL "b" +-- NOT NULL NOT VALID +PREPARE get_nnconstraint_info(regclass[]) AS +SELECT conrelid::regclass as tabname, conname, convalidated, conislocal, coninhcount +FROM pg_constraint +WHERE conrelid = ANY($1) +ORDER BY conrelid::regclass::text COLLATE "C", conname; +CREATE TABLE notnull_tbl1 (a int, b int); +INSERT INTO notnull_tbl1 VALUES (NULL, 1), (300, 3); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a; -- error +ERROR: column "a" of relation "notnull_tbl1" contains null values +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a NOT VALID; -- ok +-- even an invalid not-null forbids new nulls +INSERT INTO notnull_tbl1 VALUES (NULL, 4); +ERROR: null value in column "a" of relation "notnull_tbl1" violates not-null constraint +DETAIL: Failing row contains (null, 4). +\d+ notnull_tbl1 + Table "public.notnull_tbl1" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + a | integer | | not null | | plain | | + b | integer | | | | plain | | +Not-null constraints: + "nn" NOT NULL "a" NOT VALID + +-- If we have an invalid constraint, we can't have another +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn1 NOT NULL a NOT VALID NO INHERIT; +ERROR: cannot change NO INHERIT status of NOT NULL constraint "nn" on relation "notnull_tbl1" +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a; +ERROR: incompatible NOT VALID constraint "nn" on relation "notnull_tbl1" +HINT: You might need to validate it using ALTER TABLE ... VALIDATE CONSTRAINT. +-- cannot add primary key on a column with an invalid not-null +ALTER TABLE notnull_tbl1 ADD PRIMARY KEY (a); +ERROR: cannot create primary key on column "a" +DETAIL: The constraint "nn" on column "a" of table "notnull_tbl1", marked NOT VALID, is incompatible with a primary key. +HINT: You might need to validate it using ALTER TABLE ... VALIDATE CONSTRAINT. +-- ALTER column SET NOT NULL validates an invalid constraint (but this fails +-- because of rows with null values) +ALTER TABLE notnull_tbl1 ALTER a SET NOT NULL; +ERROR: column "a" of relation "notnull_tbl1" contains null values +\d+ notnull_tbl1 + Table "public.notnull_tbl1" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + a | integer | | not null | | plain | | + b | integer | | | | plain | | +Not-null constraints: + "nn" NOT NULL "a" NOT VALID + +-- Creating a derived table using LIKE gets the constraint, but it's valid +CREATE TABLE notnull_tbl1_copy (LIKE notnull_tbl1); +EXECUTE get_nnconstraint_info('{notnull_tbl1_copy}'); + tabname | conname | convalidated | conislocal | coninhcount +-------------------+---------+--------------+------------+------------- + notnull_tbl1_copy | nn | t | t | 0 +(1 row) + +-- An inheritance child table gets the constraint, but it's valid +CREATE TABLE notnull_tbl1_child (a int, b int) INHERITS (notnull_tbl1); +NOTICE: merging column "a" with inherited definition +NOTICE: merging column "b" with inherited definition +EXECUTE get_nnconstraint_info('{notnull_tbl1_child, notnull_tbl1}'); + tabname | conname | convalidated | conislocal | coninhcount +--------------------+---------+--------------+------------+------------- + notnull_tbl1 | nn | f | t | 0 + notnull_tbl1_child | nn | t | f | 1 +(2 rows) + +-- Also try inheritance added after table creation +CREATE TABLE notnull_tbl1_child2 (c int, b int, a int); +ALTER TABLE notnull_tbl1_child2 INHERIT notnull_tbl1; -- nope +ERROR: column "a" in child table "notnull_tbl1_child2" must be marked NOT NULL +ALTER TABLE notnull_tbl1_child2 ADD NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1_child2 INHERIT notnull_tbl1; +EXECUTE get_nnconstraint_info('{notnull_tbl1_child2}'); + tabname | conname | convalidated | conislocal | coninhcount +---------------------+--------------------------------+--------------+------------+------------- + notnull_tbl1_child2 | notnull_tbl1_child2_a_not_null | f | t | 1 +(1 row) + +--table rewrite won't validate invalid constraint +ALTER TABLE notnull_tbl1 ADD column d float8 default random(); +-- VALIDATE CONSTRAINT scans the table +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn; -- error, nulls exist +ERROR: column "a" of relation "notnull_tbl1" contains null values +UPDATE notnull_tbl1 SET a = 100 WHERE b = 1; +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn; -- now ok +EXECUTE get_nnconstraint_info('{notnull_tbl1}'); + tabname | conname | convalidated | conislocal | coninhcount +--------------+---------+--------------+------------+------------- + notnull_tbl1 | nn | t | t | 0 +(1 row) + +--- now we can add primary key +ALTER TABLE notnull_tbl1 ADD PRIMARY KEY (a); +DROP TABLE notnull_tbl1, notnull_tbl1_child, notnull_tbl1_child2; +-- dropping an invalid constraint is possible +CREATE TABLE notnull_tbl1 (a int, b int); +ALTER TABLE notnull_tbl1 ADD NOT NULL a NOT VALID, + ADD NOT NULL b NOT VALID; +ALTER TABLE notnull_tbl1 ALTER a DROP NOT NULL; +ALTER TABLE notnull_tbl1 DROP CONSTRAINT notnull_tbl1_b_not_null; +DROP TABLE notnull_tbl1; +-- ALTER .. NO INHERIT works for invalid constraints +CREATE TABLE notnull_tbl1 (a int); +CREATE TABLE notnull_tbl1_chld () INHERITS (notnull_tbl1); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nntbl1_a NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1 ALTER CONSTRAINT nntbl1_a NO INHERIT; +-- DROP CONSTRAINT recurses correctly on invalid constraints +ALTER TABLE notnull_tbl1 ALTER CONSTRAINT nntbl1_a INHERIT; +ALTER TABLE notnull_tbl1 DROP CONSTRAINT nntbl1_a; +DROP TABLE notnull_tbl1, notnull_tbl1_chld; +-- if a parent has a valid not null constraint then a child table cannot +-- have an invalid one +CREATE TABLE notnull_tbl1 (a int); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn_parent NOT NULL a not valid; +CREATE TABLE notnull_chld0 (a int, CONSTRAINT nn_chld0 NOT NULL a); +ALTER TABLE notnull_tbl1 INHERIT notnull_chld0; --error +ERROR: constraint "nn_parent" conflicts with NOT VALID constraint on child table "notnull_tbl1" +ALTER TABLE notnull_chld0 DROP CONSTRAINT nn_chld0; +ALTER TABLE notnull_chld0 ADD CONSTRAINT nn_chld0 NOT NULL a not valid; +ALTER TABLE notnull_tbl1 INHERIT notnull_chld0; --now ok +-- parents and child not-null will all be validated. +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn_parent; +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_chld0}'); + tabname | conname | convalidated | conislocal | coninhcount +---------------+-----------+--------------+------------+------------- + notnull_chld0 | nn_chld0 | f | t | 0 + notnull_tbl1 | nn_parent | t | t | 1 +(2 rows) + +DROP TABLE notnull_tbl1, notnull_chld0; +-- Test invalid not null on inheritance table. +CREATE TABLE notnull_inhparent (i int); +CREATE TABLE notnull_inhchild (i int) INHERITS (notnull_inhparent); +NOTICE: merging column "i" with inherited definition +CREATE TABLE notnull_inhgrand () INHERITS (notnull_inhparent, notnull_inhchild); +NOTICE: merging multiple inherited definitions of column "i" +ALTER TABLE notnull_inhparent ADD CONSTRAINT nn NOT NULL i NOT VALID; +ALTER TABLE notnull_inhchild ADD CONSTRAINT nn1 NOT NULL i; -- error +ERROR: incompatible NOT VALID constraint "nn" on relation "notnull_inhchild" +HINT: You might need to validate it using ALTER TABLE ... VALIDATE CONSTRAINT. +EXECUTE get_nnconstraint_info('{notnull_inhparent, notnull_inhchild, notnull_inhgrand}'); + tabname | conname | convalidated | conislocal | coninhcount +-------------------+---------+--------------+------------+------------- + notnull_inhchild | nn | f | f | 1 + notnull_inhgrand | nn | f | f | 2 + notnull_inhparent | nn | f | t | 0 +(3 rows) + +ALTER TABLE notnull_inhparent ALTER i SET NOT NULL; -- ok +EXECUTE get_nnconstraint_info('{notnull_inhparent, notnull_inhchild, notnull_inhgrand}'); + tabname | conname | convalidated | conislocal | coninhcount +-------------------+---------+--------------+------------+------------- + notnull_inhchild | nn | t | f | 1 + notnull_inhgrand | nn | t | f | 2 + notnull_inhparent | nn | t | t | 0 +(3 rows) + +DROP TABLE notnull_inhparent, notnull_inhchild, notnull_inhgrand; +-- Verify NOT NULL VALID/NOT VALID with partition table. +DROP TABLE notnull_tbl1; +ERROR: table "notnull_tbl1" does not exist +CREATE TABLE notnull_tbl1 (a int, b int) PARTITION BY LIST (a); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT notnull_con NOT NULL a NOT VALID; --ok +CREATE TABLE notnull_tbl1_1 PARTITION OF notnull_tbl1 FOR VALUES IN (1,2); +CREATE TABLE notnull_tbl1_2(a int, CONSTRAINT nn2 NOT NULL a, b int); +ALTER TABLE notnull_tbl1 ATTACH PARTITION notnull_tbl1_2 FOR VALUES IN (3,4); +CREATE TABLE notnull_tbl1_3(a int, b int); +INSERT INTO notnull_tbl1_3 values(NULL,1); +ALTER TABLE notnull_tbl1_3 add CONSTRAINT nn3 NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1 ATTACH PARTITION notnull_tbl1_3 FOR VALUES IN (NULL,5); +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_tbl1_1, notnull_tbl1_2, notnull_tbl1_3}'); + tabname | conname | convalidated | conislocal | coninhcount +----------------+-------------+--------------+------------+------------- + notnull_tbl1 | notnull_con | f | t | 0 + notnull_tbl1_1 | notnull_con | t | f | 1 + notnull_tbl1_2 | nn2 | t | f | 1 + notnull_tbl1_3 | nn3 | f | f | 1 +(4 rows) + +ALTER TABLE notnull_tbl1 ALTER COLUMN a SET NOT NULL; --error, notnull_tbl1_3 have null values +ERROR: column "a" of relation "notnull_tbl1_3" contains null values +ALTER TABLE notnull_tbl1_3 VALIDATE CONSTRAINT nn3; --error +ERROR: column "a" of relation "notnull_tbl1_3" contains null values +TRUNCATE notnull_tbl1; +ALTER TABLE notnull_tbl1 ALTER COLUMN a SET NOT NULL; --OK +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_tbl1_1, notnull_tbl1_2, notnull_tbl1_3}'); + tabname | conname | convalidated | conislocal | coninhcount +----------------+-------------+--------------+------------+------------- + notnull_tbl1 | notnull_con | t | t | 0 + notnull_tbl1_1 | notnull_con | t | f | 1 + notnull_tbl1_2 | nn2 | t | f | 1 + notnull_tbl1_3 | nn3 | t | f | 1 +(4 rows) + +DROP TABLE notnull_tbl1; +-- partitioned table have not-null, then the partitions can not be NOT NULL NOT VALID. +CREATE TABLE pp_nn (a int, b int, NOT NULL a) PARTITION BY LIST (a); +CREATE TABLE pp_nn_1(a int, b int); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn1 NOT NULL a NOT VALID; +ALTER TABLE pp_nn ATTACH PARTITION pp_nn_1 FOR VALUES IN (NULL,5); --error +ERROR: constraint "nn1" conflicts with NOT VALID constraint on child table "pp_nn_1" +ALTER TABLE pp_nn_1 VALIDATE CONSTRAINT nn1; +ALTER TABLE pp_nn ATTACH PARTITION pp_nn_1 FOR VALUES IN (NULL,5); --ok +DROP TABLE pp_nn; +-- Try a partition with an invalid constraint and create a PK on the parent. +CREATE TABLE pp_nn (a int) PARTITION BY HASH (a); +CREATE TABLE pp_nn_1 PARTITION OF pp_nn FOR VALUES WITH (MODULUS 2, REMAINDER 0); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn NOT NULL a NOT VALID; +ALTER TABLE ONLY pp_nn ADD PRIMARY KEY (a); +ERROR: cannot create primary key on column "a" +DETAIL: The constraint "nn" on column "a" of table "pp_nn_1", marked NOT VALID, is incompatible with a primary key. +HINT: You might need to validate it using ALTER TABLE ... VALIDATE CONSTRAINT. +DROP TABLE pp_nn; +-- same as above, but the constraint is NO INHERIT +CREATE TABLE pp_nn (a int) PARTITION BY HASH (a); +CREATE TABLE pp_nn_1 PARTITION OF pp_nn FOR VALUES WITH (MODULUS 2, REMAINDER 0); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn NOT NULL a NO INHERIT; +ALTER TABLE ONLY pp_nn ADD PRIMARY KEY (a); +ERROR: cannot create primary key on column "a" +DETAIL: The constraint "nn" on column "a" of table "pp_nn_1", marked NO INHERIT, is incompatible with a primary key. +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. +DROP TABLE pp_nn; +-- Create table with NOT NULL INVALID constraint, for pg_upgrade. +CREATE TABLE notnull_tbl1_upg (a int, b int); +INSERT INTO notnull_tbl1_upg VALUES (NULL, 1), (NULL, 2), (300, 3); +ALTER TABLE notnull_tbl1_upg ADD CONSTRAINT nn NOT NULL a NOT VALID; +-- Inherit test for pg_upgrade +CREATE TABLE notnull_parent_upg (a int); +CREATE TABLE notnull_child_upg () INHERITS (notnull_parent_upg); +ALTER TABLE notnull_child_upg ADD CONSTRAINT nn NOT NULL a; +ALTER TABLE notnull_parent_upg ADD CONSTRAINT nn NOT NULL a NOT VALID; +SELECT conrelid::regclass, contype, convalidated, conislocal +FROM pg_catalog.pg_constraint +WHERE conrelid in ('notnull_parent_upg'::regclass, 'notnull_child_upg'::regclass) +ORDER BY 1; + conrelid | contype | convalidated | conislocal +--------------------+---------+--------------+------------ + notnull_parent_upg | n | f | t + notnull_child_upg | n | t | t +(2 rows) + +-- Partition table test, for pg_upgrade +CREATE TABLE notnull_part1_upg (a int, b int) PARTITION BY LIST (a); +ALTER TABLE notnull_part1_upg ADD CONSTRAINT notnull_con NOT NULL a NOT VALID; --ok +CREATE TABLE notnull_part1_1_upg PARTITION OF notnull_part1_upg FOR VALUES IN (1,2); +CREATE TABLE notnull_part1_2_upg (a int, CONSTRAINT nn2 NOT NULL a, b int); +ALTER TABLE notnull_part1_upg ATTACH PARTITION notnull_part1_2_upg FOR VALUES IN (3,4); +CREATE TABLE notnull_part1_3_upg (a int, b int); +INSERT INTO notnull_part1_3_upg values(NULL,1); +ALTER TABLE notnull_part1_3_upg add CONSTRAINT nn3 NOT NULL a NOT VALID; +ALTER TABLE notnull_part1_upg ATTACH PARTITION notnull_part1_3_upg FOR VALUES IN (NULL,5); +EXECUTE get_nnconstraint_info('{notnull_part1_upg, notnull_part1_1_upg, notnull_part1_2_upg, notnull_part1_3_upg}'); + tabname | conname | convalidated | conislocal | coninhcount +---------------------+-------------+--------------+------------+------------- + notnull_part1_1_upg | notnull_con | t | f | 1 + notnull_part1_2_upg | nn2 | t | f | 1 + notnull_part1_3_upg | nn3 | f | f | 1 + notnull_part1_upg | notnull_con | f | t | 0 +(4 rows) + +-- Inheritance test tables for pg_upgrade +create table constr_parent (a int); +create table constr_child (a int) inherits (constr_parent); +NOTICE: merging column "a" with inherited definition +alter table constr_parent add not null a not valid; +alter table constr_child validate constraint constr_parent_a_not_null; +EXECUTE get_nnconstraint_info('{constr_parent, constr_child}'); + tabname | conname | convalidated | conislocal | coninhcount +---------------+--------------------------+--------------+------------+------------- + constr_child | constr_parent_a_not_null | t | f | 1 + constr_parent | constr_parent_a_not_null | f | t | 0 +(2 rows) + +create table constr_parent2 (a int); +create table constr_child2 () inherits (constr_parent2); +alter table constr_parent2 add not null a not valid; +alter table constr_child2 validate constraint constr_parent2_a_not_null; +EXECUTE get_nnconstraint_info('{constr_parent2, constr_child2}'); + tabname | conname | convalidated | conislocal | coninhcount +----------------+---------------------------+--------------+------------+------------- + constr_child2 | constr_parent2_a_not_null | t | f | 1 + constr_parent2 | constr_parent2_a_not_null | f | t | 0 +(2 rows) + +create table constr_parent3 (a int not null); +create table constr_child3 () inherits (constr_parent2, constr_parent3); +NOTICE: merging multiple inherited definitions of column "a" +EXECUTE get_nnconstraint_info('{constr_parent3, constr_child3}'); + tabname | conname | convalidated | conislocal | coninhcount +----------------+---------------------------+--------------+------------+------------- + constr_child3 | constr_parent2_a_not_null | t | f | 2 + constr_parent3 | constr_parent3_a_not_null | t | t | 0 +(2 rows) + +DEALLOCATE get_nnconstraint_info; +-- end NOT NULL NOT VALID -- Comments -- Setup a low-level role to enforce non-superuser checks. CREATE ROLE regress_constraint_comments; diff --git a/src/test/regress/expected/conversion.out b/src/test/regress/expected/conversion.out index d785f92561e5b..7dd1ef6161f06 100644 --- a/src/test/regress/expected/conversion.out +++ b/src/test/regress/expected/conversion.out @@ -508,10 +508,13 @@ insert into gb18030_inputs values ('\x666f6f84309c38', 'valid, translates to UTF-8 by mapping function'), ('\x666f6f84309c', 'incomplete char '), ('\x666f6f84309c0a', 'incomplete char, followed by newline '), + ('\x666f6f84', 'incomplete char at end'), ('\x666f6f84309c3800', 'invalid, NUL byte'), ('\x666f6f84309c0038', 'invalid, NUL byte'); --- Test GB18030 verification -select description, inbytes, (test_conv(inbytes, 'gb18030', 'gb18030')).* from gb18030_inputs; +-- Test GB18030 verification. Round-trip through text so the backing of the +-- bytea values is palloc, not shared_buffers. This lets Valgrind detect +-- reads past the end. +select description, inbytes, (test_conv(inbytes::text::bytea, 'gb18030', 'gb18030')).* from gb18030_inputs; description | inbytes | result | errorat | error ------------------------------------------------+--------------------+------------------+--------------+------------------------------------------------------------------- valid, pure ASCII | \x666f6f | \x666f6f | | @@ -520,9 +523,10 @@ select description, inbytes, (test_conv(inbytes, 'gb18030', 'gb18030')).* from g valid, translates to UTF-8 by mapping function | \x666f6f84309c38 | \x666f6f84309c38 | | incomplete char | \x666f6f84309c | \x666f6f | \x84309c | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c incomplete char, followed by newline | \x666f6f84309c0a | \x666f6f | \x84309c0a | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c 0x0a + incomplete char at end | \x666f6f84 | \x666f6f | \x84 | invalid byte sequence for encoding "GB18030": 0x84 invalid, NUL byte | \x666f6f84309c3800 | \x666f6f84309c38 | \x00 | invalid byte sequence for encoding "GB18030": 0x00 invalid, NUL byte | \x666f6f84309c0038 | \x666f6f | \x84309c0038 | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c 0x00 -(8 rows) +(9 rows) -- Test conversions from GB18030 select description, inbytes, (test_conv(inbytes, 'gb18030', 'utf8')).* from gb18030_inputs; @@ -534,9 +538,10 @@ select description, inbytes, (test_conv(inbytes, 'gb18030', 'utf8')).* from gb18 valid, translates to UTF-8 by mapping function | \x666f6f84309c38 | \x666f6fefa8aa | | incomplete char | \x666f6f84309c | \x666f6f | \x84309c | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c incomplete char, followed by newline | \x666f6f84309c0a | \x666f6f | \x84309c0a | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c 0x0a + incomplete char at end | \x666f6f84 | \x666f6f | \x84 | invalid byte sequence for encoding "GB18030": 0x84 invalid, NUL byte | \x666f6f84309c3800 | \x666f6fefa8aa | \x00 | invalid byte sequence for encoding "GB18030": 0x00 invalid, NUL byte | \x666f6f84309c0038 | \x666f6f | \x84309c0038 | invalid byte sequence for encoding "GB18030": 0x84 0x30 0x9c 0x00 -(8 rows) +(9 rows) -- -- ISO-8859-5 diff --git a/src/test/regress/expected/copy.out b/src/test/regress/expected/copy.out index 06bae8c61aebe..8d5a06563c44a 100644 --- a/src/test/regress/expected/copy.out +++ b/src/test/regress/expected/copy.out @@ -338,3 +338,15 @@ create foreign table copytest_foreign_table (a int) server copytest_server; copy copytest_foreign_table from stdin (freeze); ERROR: cannot perform COPY FREEZE on a foreign table rollback; +-- Tests for COPY TO with materialized views. +-- COPY TO should fail for an unpopulated materialized view +-- but succeed for a populated one. +CREATE MATERIALIZED VIEW copytest_mv AS SELECT 1 AS id WITH NO DATA; +COPY copytest_mv(id) TO stdout WITH (header); +ERROR: cannot copy from unpopulated materialized view "copytest_mv" +HINT: Use the REFRESH MATERIALIZED VIEW command. +REFRESH MATERIALIZED VIEW copytest_mv; +COPY copytest_mv(id) TO stdout WITH (header); +id +1 +DROP MATERIALIZED VIEW copytest_mv; diff --git a/src/test/regress/expected/create_function_sql.out b/src/test/regress/expected/create_function_sql.out index 50aca5940ff7d..963b6f863ff95 100644 --- a/src/test/regress/expected/create_function_sql.out +++ b/src/test/regress/expected/create_function_sql.out @@ -563,6 +563,20 @@ CREATE OR REPLACE PROCEDURE functest1(a int) LANGUAGE SQL AS 'SELECT $1'; ERROR: cannot change routine kind DETAIL: "functest1" is a function. DROP FUNCTION functest1(a int); +-- early shutdown of set-returning functions +CREATE FUNCTION functest_srf0() RETURNS SETOF int +LANGUAGE SQL +AS $$ SELECT i FROM generate_series(1, 100) i $$; +SELECT functest_srf0() LIMIT 5; + functest_srf0 +--------------- + 1 + 2 + 3 + 4 + 5 +(5 rows) + -- inlining of set-returning functions CREATE TABLE functest3 (a int); INSERT INTO functest3 VALUES (1), (2), (3); @@ -666,6 +680,43 @@ SELECT * FROM voidtest5(3); ----------- (0 rows) +-- DDL within a SQL function can now affect later statements in the function; +-- though that doesn't work if check_function_bodies is on. +SET check_function_bodies TO off; +CREATE FUNCTION create_and_insert() RETURNS VOID LANGUAGE sql AS $$ + create table ddl_test (f1 int); + insert into ddl_test values (1.2); +$$; +SELECT create_and_insert(); + create_and_insert +------------------- + +(1 row) + +TABLE ddl_test; + f1 +---- + 1 +(1 row) + +CREATE FUNCTION alter_and_insert() RETURNS VOID LANGUAGE sql AS $$ + alter table ddl_test alter column f1 type numeric; + insert into ddl_test values (1.2); +$$; +SELECT alter_and_insert(); + alter_and_insert +------------------ + +(1 row) + +TABLE ddl_test; + f1 +----- + 1 + 1.2 +(2 rows) + +RESET check_function_bodies; -- Regression tests for bugs: -- Check that arguments that are R/W expanded datums aren't corrupted by -- multiple uses. This test knows that array_append() returns a R/W datum @@ -706,9 +757,23 @@ LINE 2: AS 'SELECT $2;'; CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'a', 'b'; ERROR: only one AS item needed for language "sql" +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL + AS ''; +ERROR: return type mismatch in function declared to return integer +DETAIL: Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING. +CONTEXT: SQL function "test1" +-- make sure empty-body case is handled at execution time, too +SET check_function_bodies = off; +CREATE FUNCTION test1 (anyelement) RETURNS anyarray LANGUAGE SQL + AS ''; +SELECT test1(0); +ERROR: return type mismatch in function declared to return integer[] +DETAIL: Function's final statement must be SELECT or INSERT/UPDATE/DELETE/MERGE RETURNING. +CONTEXT: SQL function "test1" during startup +RESET check_function_bodies; -- Cleanup DROP SCHEMA temp_func_test CASCADE; -NOTICE: drop cascades to 30 other objects +NOTICE: drop cascades to 35 other objects DETAIL: drop cascades to function functest_a_1(text,date) drop cascades to function functest_a_2(text[]) drop cascades to function functest_a_3() @@ -732,12 +797,17 @@ drop cascades to function functest_s_10(text,date) drop cascades to function functest_s_13() drop cascades to function functest_s_15(integer) drop cascades to function functest_b_2(bigint) +drop cascades to function functest_srf0() drop cascades to function functest_sri1() drop cascades to function voidtest1(integer) drop cascades to function voidtest2(integer,integer) drop cascades to function voidtest3(integer) drop cascades to function voidtest4(integer) drop cascades to function voidtest5(integer) +drop cascades to function create_and_insert() +drop cascades to table ddl_test +drop cascades to function alter_and_insert() drop cascades to function double_append(anyarray,anyelement) +drop cascades to function test1(anyelement) DROP USER regress_unpriv_user; RESET search_path; diff --git a/src/test/regress/expected/create_index.out b/src/test/regress/expected/create_index.out index 15be0043ad43e..9ade7b835e69f 100644 --- a/src/test/regress/expected/create_index.out +++ b/src/test/regress/expected/create_index.out @@ -1637,7 +1637,9 @@ DROP TABLE syscol_table; -- Tests for IS NULL/IS NOT NULL with b-tree indexes -- CREATE TABLE onek_with_null AS SELECT unique1, unique2 FROM onek; -INSERT INTO onek_with_null (unique1,unique2) VALUES (NULL, -1), (NULL, NULL); +INSERT INTO onek_with_null(unique1, unique2) +VALUES (NULL, -1), (NULL, 2_147_483_647), (NULL, NULL), + (100, NULL), (500, NULL); CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2,unique1); SET enable_seqscan = OFF; SET enable_indexscan = ON; @@ -1645,7 +1647,7 @@ SET enable_bitmapscan = ON; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL; count ------- - 2 + 3 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; @@ -1657,13 +1659,13 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; count ------- - 1000 + 1002 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; count ------- - 1 + 2 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; @@ -1678,12 +1680,18 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; 0 (1 row) +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; + unique1 | unique2 +---------+--------- + 500 | +(1 row) + DROP INDEX onek_nulltest; CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 desc,unique1); SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL; count ------- - 2 + 3 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; @@ -1695,13 +1703,13 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; count ------- - 1000 + 1002 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; count ------- - 1 + 2 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; @@ -1722,12 +1730,18 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IN (-1, 0, 1 (1 row) +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; + unique1 | unique2 +---------+--------- + 500 | +(1 row) + DROP INDEX onek_nulltest; CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 desc nulls last,unique1); SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL; count ------- - 2 + 3 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; @@ -1739,13 +1753,13 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; count ------- - 1000 + 1002 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; count ------- - 1 + 2 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; @@ -1760,12 +1774,18 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; 0 (1 row) +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; + unique1 | unique2 +---------+--------- + 500 | +(1 row) + DROP INDEX onek_nulltest; CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2 nulls first,unique1); SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL; count ------- - 2 + 3 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; @@ -1777,13 +1797,13 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; count ------- - 1000 + 1002 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; count ------- - 1 + 2 (1 row) SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; @@ -1798,6 +1818,12 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; 0 (1 row) +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; + unique1 | unique2 +---------+--------- + 500 | +(1 row) + DROP INDEX onek_nulltest; -- Check initial-positioning logic too CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2); @@ -1829,20 +1855,24 @@ SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= 0 (2 rows) SELECT unique1, unique2 FROM onek_with_null - ORDER BY unique2 DESC LIMIT 2; - unique1 | unique2 ----------+--------- - | - 278 | 999 -(2 rows) + ORDER BY unique2 DESC LIMIT 5; + unique1 | unique2 +---------+------------ + 500 | + 100 | + | + | 2147483647 + 278 | 999 +(5 rows) SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= -1 - ORDER BY unique2 DESC LIMIT 2; - unique1 | unique2 ----------+--------- - 278 | 999 - 0 | 998 -(2 rows) + ORDER BY unique2 DESC LIMIT 3; + unique1 | unique2 +---------+------------ + | 2147483647 + 278 | 999 + 0 | 998 +(3 rows) SELECT unique1, unique2 FROM onek_with_null WHERE unique2 < 999 ORDER BY unique2 DESC LIMIT 2; @@ -2247,7 +2277,8 @@ SELECT count(*) FROM dupindexcols (1 row) -- --- Check that index scans with =ANY indexquals return rows in index order +-- Check that index scans with SAOP array and/or skip array indexquals +-- return rows in index order -- explain (costs off) SELECT unique1 FROM tenk1 @@ -2269,7 +2300,7 @@ ORDER BY unique1; 42 (3 rows) --- Non-required array scan key on "tenthous": +-- Skip array on "thousand", SAOP array on "tenthous": explain (costs off) SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) @@ -2289,7 +2320,7 @@ ORDER BY thousand; 1 | 1001 (2 rows) --- Non-required array scan key on "tenthous", backward scan: +-- Skip array on "thousand", SAOP array on "tenthous", backward scan: explain (costs off) SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) @@ -2309,6 +2340,25 @@ ORDER BY thousand DESC, tenthous DESC; 0 | 3000 (2 rows) +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > 995 and tenthous in (998, 999) +ORDER BY thousand desc; + QUERY PLAN +-------------------------------------------------------------------------------- + Index Only Scan Backward using tenk1_thous_tenthous on tenk1 + Index Cond: ((thousand > 995) AND (tenthous = ANY ('{998,999}'::integer[]))) +(2 rows) + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > 995 and tenthous in (998, 999) +ORDER BY thousand desc; + thousand | tenthous +----------+---------- + 999 | 999 + 998 | 998 +(2 rows) + -- -- Check elimination of redundant and contradictory index quals -- @@ -2339,6 +2389,45 @@ SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{7, 14, 22}') and unique1 = ANY(' --------- (0 rows) +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 = ANY(NULL); + QUERY PLAN +------------------------------------------------- + Index Only Scan using tenk1_unique1 on tenk1 + Index Cond: (unique1 = ANY (NULL::integer[])) +(2 rows) + +SELECT unique1 FROM tenk1 WHERE unique1 = ANY(NULL); + unique1 +--------- +(0 rows) + +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{NULL,NULL,NULL}'); + QUERY PLAN +--------------------------------------------------------------- + Index Only Scan using tenk1_unique1 on tenk1 + Index Cond: (unique1 = ANY ('{NULL,NULL,NULL}'::integer[])) +(2 rows) + +SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{NULL,NULL,NULL}'); + unique1 +--------- +(0 rows) + +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 IS NULL AND unique1 IS NULL; + QUERY PLAN +--------------------------------------------------------- + Index Only Scan using tenk1_unique1 on tenk1 + Index Cond: ((unique1 IS NULL) AND (unique1 IS NULL)) +(2 rows) + +SELECT unique1 FROM tenk1 WHERE unique1 IS NULL AND unique1 IS NULL; + unique1 +--------- +(0 rows) + explain (costs off) SELECT unique1 FROM tenk1 WHERE unique1 IN (1, 42, 7) and unique1 = 1; QUERY PLAN @@ -2462,6 +2551,65 @@ SELECT unique1 FROM tenk1 WHERE (thousand, tenthous) > (NULL, 5); --------- (0 rows) +-- Skip array redundancy (pair of redundant low_compare inequalities) +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 and thousand >= 0 AND tenthous = 3000 +ORDER BY thousand; + QUERY PLAN +-------------------------------------------------------------------------------------- + Index Only Scan using tenk1_thous_tenthous on tenk1 + Index Cond: ((thousand > '-1'::integer) AND (thousand >= 0) AND (tenthous = 3000)) +(2 rows) + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 and thousand >= 0 AND tenthous = 3000 +ORDER BY thousand; + thousand | tenthous +----------+---------- + 0 | 3000 +(1 row) + +-- Skip array redundancy (pair of redundant high_compare inequalities) +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand < 3 and thousand <= 2 AND tenthous = 1001 +ORDER BY thousand; + QUERY PLAN +-------------------------------------------------------------------------- + Index Only Scan using tenk1_thous_tenthous on tenk1 + Index Cond: ((thousand < 3) AND (thousand <= 2) AND (tenthous = 1001)) +(2 rows) + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand < 3 and thousand <= 2 AND tenthous = 1001 +ORDER BY thousand; + thousand | tenthous +----------+---------- + 1 | 1001 +(1 row) + +-- Skip array preprocessing increments "thousand > -1" to "thousand >= 0" +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 AND tenthous IN (1001,3000) +ORDER BY thousand limit 2; + QUERY PLAN +-------------------------------------------------------------------------------------------------- + Limit + -> Index Only Scan using tenk1_thous_tenthous on tenk1 + Index Cond: ((thousand > '-1'::integer) AND (tenthous = ANY ('{1001,3000}'::integer[]))) +(3 rows) + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 AND tenthous IN (1001,3000) +ORDER BY thousand limit 2; + thousand | tenthous +----------+---------- + 0 | 3000 + 1 | 1001 +(2 rows) + -- -- Check elimination of constant-NULL subexpressions -- diff --git a/src/test/regress/expected/float4-misrounded-input.out b/src/test/regress/expected/float4-misrounded-input.out index 20fd7139136e6..61c68a6c9fff5 100644 --- a/src/test/regress/expected/float4-misrounded-input.out +++ b/src/test/regress/expected/float4-misrounded-input.out @@ -308,14 +308,14 @@ SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f; UPDATE FLOAT4_TBL SET f1 = FLOAT4_TBL.f1 * '-1' WHERE FLOAT4_TBL.f1 > '0.0'; -SELECT * FROM FLOAT4_TBL; +SELECT * FROM FLOAT4_TBL ORDER BY 1; f1 ---------------- - 0 - -34.84 - -1004.3 -1.2345679e+20 + -1004.3 + -34.84 -1.2345679e-20 + 0 (5 rows) -- test edge-case coercions to integer diff --git a/src/test/regress/expected/float4.out b/src/test/regress/expected/float4.out index 1d21c4390ad71..eaed1f2bfe71d 100644 --- a/src/test/regress/expected/float4.out +++ b/src/test/regress/expected/float4.out @@ -308,14 +308,14 @@ SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f; UPDATE FLOAT4_TBL SET f1 = FLOAT4_TBL.f1 * '-1' WHERE FLOAT4_TBL.f1 > '0.0'; -SELECT * FROM FLOAT4_TBL; +SELECT * FROM FLOAT4_TBL ORDER BY 1; f1 ---------------- - 0 - -34.84 - -1004.3 -1.2345679e+20 + -1004.3 + -34.84 -1.2345679e-20 + 0 (5 rows) -- test edge-case coercions to integer diff --git a/src/test/regress/expected/float8.out b/src/test/regress/expected/float8.out index 10a5a6e1b65eb..9c519f1a1a1a5 100644 --- a/src/test/regress/expected/float8.out +++ b/src/test/regress/expected/float8.out @@ -648,14 +648,14 @@ SELECT exp(f.f1) from FLOAT8_TBL f; ERROR: value out of range: underflow SELECT f.f1 / '0.0' from FLOAT8_TBL f; ERROR: division by zero -SELECT * FROM FLOAT8_TBL; +SELECT * FROM FLOAT8_TBL ORDER BY 1; f1 ----------------------- - 0 - -34.84 - -1004.3 -1.2345678901234e+200 + -1004.3 + -34.84 -1.2345678901234e-200 + 0 (5 rows) -- hyperbolic functions diff --git a/src/test/regress/expected/foreign_key.out b/src/test/regress/expected/foreign_key.out index 7f678349a8e95..4f3f280a439bc 100644 --- a/src/test/regress/expected/foreign_key.out +++ b/src/test/regress/expected/foreign_key.out @@ -1,21 +1,49 @@ -- -- FOREIGN KEY -- --- MATCH FULL +-- NOT ENFORCED -- -- First test, check and cascade -- CREATE TABLE PKTABLE ( ptest1 int PRIMARY KEY, ptest2 text ); -CREATE TABLE FKTABLE ( ftest1 int REFERENCES PKTABLE MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE, ftest2 int ); --- Insert test data into PKTABLE +CREATE TABLE FKTABLE ( ftest1 int CONSTRAINT fktable_ftest1_fkey REFERENCES PKTABLE MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE NOT ENFORCED, + ftest2 int ); +-- Inserting into the foreign key table will not result in an error, even if +-- there is no matching key in the referenced table. +INSERT INTO FKTABLE VALUES (1, 2); +INSERT INTO FKTABLE VALUES (2, 3); +-- Check FKTABLE +SELECT * FROM FKTABLE; + ftest1 | ftest2 +--------+-------- + 1 | 2 + 2 | 3 +(2 rows) + +-- Reverting it back to ENFORCED will result in failure because constraint validation will be triggered, +-- as it was previously in a valid state. +ALTER TABLE FKTABLE ALTER CONSTRAINT fktable_ftest1_fkey ENFORCED; +ERROR: insert or update on table "fktable" violates foreign key constraint "fktable_ftest1_fkey" +DETAIL: Key (ftest1)=(1) is not present in table "pktable". +-- Insert referenced data that satisfies the constraint, then attempt to +-- change it. INSERT INTO PKTABLE VALUES (1, 'Test1'); INSERT INTO PKTABLE VALUES (2, 'Test2'); +ALTER TABLE FKTABLE ALTER CONSTRAINT fktable_ftest1_fkey ENFORCED; +-- Any further inserts will fail due to the enforcement. +INSERT INTO FKTABLE VALUES (3, 4); +ERROR: insert or update on table "fktable" violates foreign key constraint "fktable_ftest1_fkey" +DETAIL: Key (ftest1)=(3) is not present in table "pktable". +-- +-- MATCH FULL +-- +-- First test, check and cascade +-- +-- Insert test data into PKTABLE INSERT INTO PKTABLE VALUES (3, 'Test3'); INSERT INTO PKTABLE VALUES (4, 'Test4'); INSERT INTO PKTABLE VALUES (5, 'Test5'); -- Insert successful rows into FK TABLE -INSERT INTO FKTABLE VALUES (1, 2); -INSERT INTO FKTABLE VALUES (2, 3); INSERT INTO FKTABLE VALUES (3, 4); INSERT INTO FKTABLE VALUES (NULL, 1); -- Insert a failed row into FK TABLE @@ -351,6 +379,43 @@ INSERT INTO FKTABLE VALUES (1, NULL); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE MATCH FULL; ERROR: insert or update on table "fktable" violates foreign key constraint "fktable_ftest1_ftest2_fkey" DETAIL: MATCH FULL does not allow mixing of null and nonnull key values. +-- Modifying other attributes of a constraint should not affect its enforceability, and vice versa +ALTER TABLE FKTABLE ADD CONSTRAINT fk_con FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE NOT VALID NOT ENFORCED; +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con DEFERRABLE INITIALLY DEFERRED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + condeferrable | condeferred | conenforced | convalidated +---------------+-------------+-------------+-------------- + t | t | f | f +(1 row) + +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con NOT ENFORCED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + condeferrable | condeferred | conenforced | convalidated +---------------+-------------+-------------+-------------- + t | t | f | f +(1 row) + +-- Enforceability also changes the validate state, as data validation will be +-- performed during this transformation. +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con ENFORCED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + condeferrable | condeferred | conenforced | convalidated +---------------+-------------+-------------+-------------- + t | t | t | t +(1 row) + +-- Can change enforceability and deferrability together +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con NOT ENFORCED NOT DEFERRABLE; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + condeferrable | condeferred | conenforced | convalidated +---------------+-------------+-------------+-------------- + f | f | f | f +(1 row) + DROP TABLE FKTABLE; DROP TABLE PKTABLE; -- MATCH SIMPLE @@ -772,7 +837,8 @@ CREATE TABLE FKTABLE ( fk_id_del_set_null int, fk_id_del_set_default int DEFAULT 0, FOREIGN KEY (tid, fk_id_del_set_null) REFERENCES PKTABLE ON DELETE SET NULL (fk_id_del_set_null), - FOREIGN KEY (tid, fk_id_del_set_default) REFERENCES PKTABLE ON DELETE SET DEFAULT (fk_id_del_set_default) + -- this tests handling of duplicate entries in SET DEFAULT column list + FOREIGN KEY (tid, fk_id_del_set_default) REFERENCES PKTABLE ON DELETE SET DEFAULT (fk_id_del_set_default, fk_id_del_set_default) ); SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conrelid = 'fktable'::regclass::oid ORDER BY oid; pg_get_constraintdef @@ -1276,6 +1342,13 @@ INSERT INTO fktable VALUES (0, 20); ERROR: insert or update on table "fktable" violates foreign key constraint "fktable_fk_fkey" DETAIL: Key (fk)=(20) is not present in table "pktable". COMMIT; +ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT ENFORCED; +BEGIN; +-- doesn't match FK, but no error. +UPDATE pktable SET id = 10 WHERE id = 5; +-- doesn't match PK, but no error. +INSERT INTO fktable VALUES (0, 20); +ROLLBACK; -- try additional syntax ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT DEFERRABLE; -- illegal options @@ -1289,6 +1362,14 @@ ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT VALID; ERROR: FOREIGN KEY constraints cannot be marked NOT VALID LINE 1: ...ER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT VALID; ^ +ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey ENFORCED NOT ENFORCED; +ERROR: conflicting constraint properties +LINE 1: ...fktable ALTER CONSTRAINT fktable_fk_fkey ENFORCED NOT ENFORC... + ^ +CREATE TEMP TABLE fktable2 (fk int references pktable ENFORCED NOT ENFORCED); +ERROR: multiple ENFORCED/NOT ENFORCED clauses not allowed +LINE 1: ...ABLE fktable2 (fk int references pktable ENFORCED NOT ENFORC... + ^ -- test order of firing of FK triggers when several RI-induced changes need to -- be made to the same row. This was broken by subtransaction-related -- changes in 8.0. @@ -1586,10 +1667,14 @@ ALTER TABLE fk_partitioned_fk DROP COLUMN fdrop1; CREATE TABLE fk_partitioned_fk_1 (fdrop1 int, fdrop2 int, a int, fdrop3 int, b int); ALTER TABLE fk_partitioned_fk_1 DROP COLUMN fdrop1, DROP COLUMN fdrop2, DROP COLUMN fdrop3; ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_1 FOR VALUES FROM (0,0) TO (1000,1000); -ALTER TABLE fk_partitioned_fk ADD FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk; +ALTER TABLE fk_partitioned_fk ADD CONSTRAINT fk_partitioned_fk_a_b_fkey FOREIGN KEY (a, b) + REFERENCES fk_notpartitioned_pk NOT ENFORCED; CREATE TABLE fk_partitioned_fk_2 (b int, fdrop1 int, fdrop2 int, a int); ALTER TABLE fk_partitioned_fk_2 DROP COLUMN fdrop1, DROP COLUMN fdrop2; +ALTER TABLE fk_partitioned_fk_2 ADD CONSTRAINT fk_partitioned_fk_a_b_fkey FOREIGN KEY (a, b) + REFERENCES fk_notpartitioned_pk NOT ENFORCED; ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES FROM (1000,1000) TO (2000,2000); +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey ENFORCED; CREATE TABLE fk_partitioned_fk_3 (fdrop1 int, fdrop2 int, fdrop3 int, fdrop4 int, b int, a int) PARTITION BY HASH (a); ALTER TABLE fk_partitioned_fk_3 DROP COLUMN fdrop1, DROP COLUMN fdrop2, @@ -1665,6 +1750,67 @@ Indexes: Referenced by: TABLE "fk_partitioned_fk" CONSTRAINT "fk_partitioned_fk_a_b_fkey" FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) +-- Check the exsting FK trigger +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + conname | tgrel | tgname | tgtype +----------------------------+-----------------------+--------------------------+-------- + fk_partitioned_fk_a_b_fkey | fk_notpartitioned_pk | RI_ConstraintTrigger_a_N | 9 + fk_partitioned_fk_a_b_fkey | fk_notpartitioned_pk | RI_ConstraintTrigger_a_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_1 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_1 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_2 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_2 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_0 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_0 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_1 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_1 | RI_ConstraintTrigger_c_N | 17 +(14 rows) + +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey NOT ENFORCED; +-- No triggers +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + conname | tgrel | tgname | tgtype +---------+-------+--------+-------- +(0 rows) + +-- Changing it back to ENFORCED will recreate the necessary triggers. +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey ENFORCED; +-- Should be exactly the same number of triggers found as before +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + conname | tgrel | tgname | tgtype +----------------------------+-----------------------+--------------------------+-------- + fk_partitioned_fk_a_b_fkey | fk_notpartitioned_pk | RI_ConstraintTrigger_a_N | 9 + fk_partitioned_fk_a_b_fkey | fk_notpartitioned_pk | RI_ConstraintTrigger_a_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_1 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_1 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_2 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_2 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_0 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_0 | RI_ConstraintTrigger_c_N | 17 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_1 | RI_ConstraintTrigger_c_N | 5 + fk_partitioned_fk_a_b_fkey | fk_partitioned_fk_3_1 | RI_ConstraintTrigger_c_N | 17 +(14 rows) + ALTER TABLE fk_partitioned_fk DROP CONSTRAINT fk_partitioned_fk_a_b_fkey; -- done. DROP TABLE fk_notpartitioned_pk, fk_partitioned_fk; @@ -1757,20 +1903,20 @@ ALTER TABLE fk_notpartitioned_fk ADD FOREIGN KEY (a, b) REFERENCES fk_partitione -- Constraint will be invalid. SELECT conname, convalidated FROM pg_constraint WHERE conrelid = 'fk_notpartitioned_fk'::regclass ORDER BY oid::regclass::text; - conname | convalidated ---------------------------------+-------------- - fk_notpartitioned_fk_a_b_fkey | f - fk_notpartitioned_fk_a_b_fkey1 | f + conname | convalidated +---------------------------------+-------------- + fk_notpartitioned_fk_a_b_fkey | f + fk_notpartitioned_fk_a_b_fkey_1 | f (2 rows) ALTER TABLE fk_notpartitioned_fk VALIDATE CONSTRAINT fk_notpartitioned_fk_a_b_fkey; -- All constraints are now valid. SELECT conname, convalidated FROM pg_constraint WHERE conrelid = 'fk_notpartitioned_fk'::regclass ORDER BY oid::regclass::text; - conname | convalidated ---------------------------------+-------------- - fk_notpartitioned_fk_a_b_fkey | t - fk_notpartitioned_fk_a_b_fkey1 | t + conname | convalidated +---------------------------------+-------------- + fk_notpartitioned_fk_a_b_fkey | t + fk_notpartitioned_fk_a_b_fkey_1 | t (2 rows) DROP TABLE fk_notpartitioned_fk, fk_partitioned_pk; @@ -1962,6 +2108,43 @@ Partition of: fk_partitioned_fk FOR VALUES IN (1500, 1502) Foreign-key constraints: TABLE "fk_partitioned_fk" CONSTRAINT "fk_partitioned_fk_a_b_fkey" FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE CASCADE ON DELETE CASCADE +DROP TABLE fk_partitioned_fk_2; +CREATE TABLE fk_partitioned_fk_2 (b int, a int, + CONSTRAINT fk_part_con FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk ON UPDATE CASCADE ON DELETE CASCADE NOT ENFORCED); +-- fail -- cannot merge constraints with different enforceability. +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +ERROR: constraint "fk_partitioned_fk_a_b_fkey" enforceability conflicts with constraint "fk_part_con" on relation "fk_partitioned_fk_2" +-- If the constraint is modified to match the enforceability of the parent, it will work. +BEGIN; +-- change child constraint +ALTER TABLE fk_partitioned_fk_2 ALTER CONSTRAINT fk_part_con ENFORCED; +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +\d fk_partitioned_fk_2 + Table "public.fk_partitioned_fk_2" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+--------- + b | integer | | | + a | integer | | | +Partition of: fk_partitioned_fk FOR VALUES IN (1500, 1502) +Foreign-key constraints: + TABLE "fk_partitioned_fk" CONSTRAINT "fk_partitioned_fk_a_b_fkey" FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE CASCADE ON DELETE CASCADE + +ROLLBACK; +BEGIN; +-- or change parent constraint +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey NOT ENFORCED; +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +\d fk_partitioned_fk_2 + Table "public.fk_partitioned_fk_2" + Column | Type | Collation | Nullable | Default +--------+---------+-----------+----------+--------- + b | integer | | | + a | integer | | | +Partition of: fk_partitioned_fk FOR VALUES IN (1500, 1502) +Foreign-key constraints: + TABLE "fk_partitioned_fk" CONSTRAINT "fk_partitioned_fk_a_b_fkey" FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE CASCADE ON DELETE CASCADE NOT ENFORCED + +ROLLBACK; DROP TABLE fk_partitioned_fk_2; CREATE TABLE fk_partitioned_fk_4 (a int, b int, FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE CASCADE ON DELETE CASCADE) PARTITION BY RANGE (b, a); CREATE TABLE fk_partitioned_fk_4_1 PARTITION OF fk_partitioned_fk_4 FOR VALUES FROM (1,1) TO (100,100); @@ -2141,70 +2324,90 @@ CREATE TABLE part33_self_fk ( id_abc bigint ); ALTER TABLE part3_self_fk ATTACH PARTITION part33_self_fk FOR VALUES FROM (30) TO (40); -SELECT cr.relname, co.conname, co.contype, co.convalidated, +-- verify that this constraint works +INSERT INTO parted_self_fk VALUES (1, NULL), (2, NULL), (3, NULL); +INSERT INTO parted_self_fk VALUES (10, 1), (11, 2), (12, 3) RETURNING tableoid::regclass; + tableoid +--------------- + part2_self_fk + part2_self_fk + part2_self_fk +(3 rows) + +INSERT INTO parted_self_fk VALUES (4, 5); -- error: referenced doesn't exist +ERROR: insert or update on table "part1_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey" +DETAIL: Key (id_abc)=(5) is not present in table "parted_self_fk". +DELETE FROM parted_self_fk WHERE id = 1 RETURNING *; -- error: reference remains +ERROR: update or delete on table "part1_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey_1" on table "parted_self_fk" +DETAIL: Key (id)=(1) is still referenced from table "parted_self_fk". +SELECT cr.relname, co.conname, co.convalidated, p.conname AS conparent, p.convalidated, cf.relname AS foreignrel FROM pg_constraint co JOIN pg_class cr ON cr.oid = co.conrelid LEFT JOIN pg_class cf ON cf.oid = co.confrelid LEFT JOIN pg_constraint p ON p.oid = co.conparentid -WHERE cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) -ORDER BY co.contype, cr.relname, co.conname, p.conname; - relname | conname | contype | convalidated | conparent | convalidated | foreignrel -----------------+----------------------------+---------+--------------+----------------------------+--------------+---------------- - part1_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part2_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part32_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part33_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part3_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - parted_self_fk | parted_self_fk_id_abc_fkey | f | t | | | parted_self_fk - part1_self_fk | part1_self_fk_id_not_null | n | t | | | - part2_self_fk | parted_self_fk_id_not_null | n | t | | | - part32_self_fk | part3_self_fk_id_not_null | n | t | | | - part33_self_fk | part33_self_fk_id_not_null | n | t | | | - part3_self_fk | part3_self_fk_id_not_null | n | t | | | - parted_self_fk | parted_self_fk_id_not_null | n | t | | | - part1_self_fk | part1_self_fk_pkey | p | t | parted_self_fk_pkey | t | - part2_self_fk | part2_self_fk_pkey | p | t | parted_self_fk_pkey | t | - part32_self_fk | part32_self_fk_pkey | p | t | part3_self_fk_pkey | t | - part33_self_fk | part33_self_fk_pkey | p | t | part3_self_fk_pkey | t | - part3_self_fk | part3_self_fk_pkey | p | t | parted_self_fk_pkey | t | - parted_self_fk | parted_self_fk_pkey | p | t | | | -(18 rows) +WHERE co.contype = 'f' AND + cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) +ORDER BY cr.relname, co.conname, p.conname; + relname | conname | convalidated | conparent | convalidated | foreignrel +----------------+--------------------------------+--------------+------------------------------+--------------+---------------- + part1_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part2_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part32_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part33_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part3_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey | t | | | parted_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_1 | t | parted_self_fk_id_abc_fkey | t | part1_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_2 | t | parted_self_fk_id_abc_fkey | t | part2_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_3 | t | parted_self_fk_id_abc_fkey | t | part3_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_3_1 | t | parted_self_fk_id_abc_fkey_3 | t | part33_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_4 | t | parted_self_fk_id_abc_fkey_3 | t | part32_self_fk +(11 rows) -- detach and re-attach multiple times just to ensure everything is kosher ALTER TABLE parted_self_fk DETACH PARTITION part2_self_fk; +INSERT INTO part2_self_fk VALUES (16, 9); -- error: referenced doesn't exist +ERROR: insert or update on table "part2_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey" +DETAIL: Key (id_abc)=(9) is not present in table "parted_self_fk". +DELETE FROM parted_self_fk WHERE id = 2 RETURNING *; -- error: reference remains +ERROR: update or delete on table "part1_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey_5" on table "part2_self_fk" +DETAIL: Key (id)=(2) is still referenced from table "part2_self_fk". ALTER TABLE parted_self_fk ATTACH PARTITION part2_self_fk FOR VALUES FROM (10) TO (20); +INSERT INTO parted_self_fk VALUES (16, 9); -- error: referenced doesn't exist +ERROR: insert or update on table "part2_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey" +DETAIL: Key (id_abc)=(9) is not present in table "parted_self_fk". +DELETE FROM parted_self_fk WHERE id = 3 RETURNING *; -- error: reference remains +ERROR: update or delete on table "part1_self_fk" violates foreign key constraint "parted_self_fk_id_abc_fkey_1" on table "parted_self_fk" +DETAIL: Key (id)=(3) is still referenced from table "parted_self_fk". ALTER TABLE parted_self_fk DETACH PARTITION part2_self_fk; ALTER TABLE parted_self_fk ATTACH PARTITION part2_self_fk FOR VALUES FROM (10) TO (20); -SELECT cr.relname, co.conname, co.contype, co.convalidated, +ALTER TABLE parted_self_fk DETACH PARTITION part3_self_fk; +ALTER TABLE parted_self_fk ATTACH PARTITION part3_self_fk FOR VALUES FROM (30) TO (40); +ALTER TABLE part3_self_fk DETACH PARTITION part33_self_fk; +ALTER TABLE part3_self_fk ATTACH PARTITION part33_self_fk FOR VALUES FROM (30) TO (40); +SELECT cr.relname, co.conname, co.convalidated, p.conname AS conparent, p.convalidated, cf.relname AS foreignrel FROM pg_constraint co JOIN pg_class cr ON cr.oid = co.conrelid LEFT JOIN pg_class cf ON cf.oid = co.confrelid LEFT JOIN pg_constraint p ON p.oid = co.conparentid -WHERE cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) -ORDER BY co.contype, cr.relname, co.conname, p.conname; - relname | conname | contype | convalidated | conparent | convalidated | foreignrel -----------------+----------------------------+---------+--------------+----------------------------+--------------+---------------- - part1_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part2_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part32_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part33_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - part3_self_fk | parted_self_fk_id_abc_fkey | f | t | parted_self_fk_id_abc_fkey | t | parted_self_fk - parted_self_fk | parted_self_fk_id_abc_fkey | f | t | | | parted_self_fk - part1_self_fk | part1_self_fk_id_not_null | n | t | | | - part2_self_fk | parted_self_fk_id_not_null | n | t | | | - part32_self_fk | part3_self_fk_id_not_null | n | t | | | - part33_self_fk | part33_self_fk_id_not_null | n | t | | | - part3_self_fk | part3_self_fk_id_not_null | n | t | | | - parted_self_fk | parted_self_fk_id_not_null | n | t | | | - part1_self_fk | part1_self_fk_pkey | p | t | parted_self_fk_pkey | t | - part2_self_fk | part2_self_fk_pkey | p | t | parted_self_fk_pkey | t | - part32_self_fk | part32_self_fk_pkey | p | t | part3_self_fk_pkey | t | - part33_self_fk | part33_self_fk_pkey | p | t | part3_self_fk_pkey | t | - part3_self_fk | part3_self_fk_pkey | p | t | parted_self_fk_pkey | t | - parted_self_fk | parted_self_fk_pkey | p | t | | | -(18 rows) +WHERE co.contype = 'f' AND + cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) +ORDER BY cr.relname, co.conname, p.conname; + relname | conname | convalidated | conparent | convalidated | foreignrel +----------------+--------------------------------+--------------+------------------------------+--------------+---------------- + part1_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part2_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part32_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part33_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + part3_self_fk | parted_self_fk_id_abc_fkey | t | parted_self_fk_id_abc_fkey | t | parted_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey | t | | | parted_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_1 | t | parted_self_fk_id_abc_fkey | t | part1_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_2 | t | parted_self_fk_id_abc_fkey | t | part2_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_3 | t | parted_self_fk_id_abc_fkey | t | part3_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_3_1 | t | parted_self_fk_id_abc_fkey_3 | t | part33_self_fk + parted_self_fk | parted_self_fk_id_abc_fkey_4 | t | parted_self_fk_id_abc_fkey_3 | t | part32_self_fk +(11 rows) -- Leave this table around, for pg_upgrade/pg_dump tests -- Test creating a constraint at the parent that already exists in partitions. @@ -2406,40 +2609,40 @@ INSERT into pk VALUES (1), (1000), (2000), (3000), (4000), (4500); INSERT into fk VALUES (1), (1000), (2000), (3000), (4000), (4500); -- should fail: referencing value present DELETE FROM pk WHERE a = 1; -ERROR: update or delete on table "pk1" violates foreign key constraint "fk_a_fkey1" on table "fk" +ERROR: update or delete on table "pk1" violates foreign key constraint "fk_a_fkey_1" on table "fk" DETAIL: Key (a)=(1) is still referenced from table "fk". DELETE FROM pk WHERE a = 1000; -ERROR: update or delete on table "pk2" violates foreign key constraint "fk_a_fkey2" on table "fk" +ERROR: update or delete on table "pk2" violates foreign key constraint "fk_a_fkey_2" on table "fk" DETAIL: Key (a)=(1000) is still referenced from table "fk". DELETE FROM pk WHERE a = 2000; -ERROR: update or delete on table "pk3" violates foreign key constraint "fk_a_fkey3" on table "fk" +ERROR: update or delete on table "pk3" violates foreign key constraint "fk_a_fkey_3" on table "fk" DETAIL: Key (a)=(2000) is still referenced from table "fk". DELETE FROM pk WHERE a = 3000; -ERROR: update or delete on table "pk4" violates foreign key constraint "fk_a_fkey4" on table "fk" +ERROR: update or delete on table "pk4" violates foreign key constraint "fk_a_fkey_4" on table "fk" DETAIL: Key (a)=(3000) is still referenced from table "fk". DELETE FROM pk WHERE a = 4000; -ERROR: update or delete on table "pk51" violates foreign key constraint "fk_a_fkey6" on table "fk" +ERROR: update or delete on table "pk51" violates foreign key constraint "fk_a_fkey_6" on table "fk" DETAIL: Key (a)=(4000) is still referenced from table "fk". DELETE FROM pk WHERE a = 4500; -ERROR: update or delete on table "pk52" violates foreign key constraint "fk_a_fkey7" on table "fk" +ERROR: update or delete on table "pk52" violates foreign key constraint "fk_a_fkey_7" on table "fk" DETAIL: Key (a)=(4500) is still referenced from table "fk". UPDATE pk SET a = 2 WHERE a = 1; -ERROR: update or delete on table "pk1" violates foreign key constraint "fk_a_fkey1" on table "fk" +ERROR: update or delete on table "pk1" violates foreign key constraint "fk_a_fkey_1" on table "fk" DETAIL: Key (a)=(1) is still referenced from table "fk". UPDATE pk SET a = 1002 WHERE a = 1000; -ERROR: update or delete on table "pk2" violates foreign key constraint "fk_a_fkey2" on table "fk" +ERROR: update or delete on table "pk2" violates foreign key constraint "fk_a_fkey_2" on table "fk" DETAIL: Key (a)=(1000) is still referenced from table "fk". UPDATE pk SET a = 2002 WHERE a = 2000; -ERROR: update or delete on table "pk3" violates foreign key constraint "fk_a_fkey3" on table "fk" +ERROR: update or delete on table "pk3" violates foreign key constraint "fk_a_fkey_3" on table "fk" DETAIL: Key (a)=(2000) is still referenced from table "fk". UPDATE pk SET a = 3002 WHERE a = 3000; -ERROR: update or delete on table "pk4" violates foreign key constraint "fk_a_fkey4" on table "fk" +ERROR: update or delete on table "pk4" violates foreign key constraint "fk_a_fkey_4" on table "fk" DETAIL: Key (a)=(3000) is still referenced from table "fk". UPDATE pk SET a = 4002 WHERE a = 4000; -ERROR: update or delete on table "pk51" violates foreign key constraint "fk_a_fkey6" on table "fk" +ERROR: update or delete on table "pk51" violates foreign key constraint "fk_a_fkey_6" on table "fk" DETAIL: Key (a)=(4000) is still referenced from table "fk". UPDATE pk SET a = 4502 WHERE a = 4500; -ERROR: update or delete on table "pk52" violates foreign key constraint "fk_a_fkey7" on table "fk" +ERROR: update or delete on table "pk52" violates foreign key constraint "fk_a_fkey_7" on table "fk" DETAIL: Key (a)=(4500) is still referenced from table "fk". -- now they should work DELETE FROM fk; @@ -2478,19 +2681,19 @@ CREATE TABLE dropfk (a int REFERENCES droppk); INSERT into dropfk VALUES (1), (1000), (1500), (2000); -- these should all fail ALTER TABLE droppk DETACH PARTITION droppk_d; -ERROR: removing partition "droppk_d" violates foreign key constraint "dropfk_a_fkey5" +ERROR: removing partition "droppk_d" violates foreign key constraint "dropfk_a_fkey_5" DETAIL: Key (a)=(2000) is still referenced from table "dropfk". ALTER TABLE droppk2 DETACH PARTITION droppk2_d; -ERROR: removing partition "droppk2_d" violates foreign key constraint "dropfk_a_fkey4" +ERROR: removing partition "droppk2_d" violates foreign key constraint "dropfk_a_fkey_4" DETAIL: Key (a)=(1500) is still referenced from table "dropfk". ALTER TABLE droppk DETACH PARTITION droppk1; -ERROR: removing partition "droppk1" violates foreign key constraint "dropfk_a_fkey1" +ERROR: removing partition "droppk1" violates foreign key constraint "dropfk_a_fkey_1" DETAIL: Key (a)=(1) is still referenced from table "dropfk". ALTER TABLE droppk DETACH PARTITION droppk2; -ERROR: removing partition "droppk2" violates foreign key constraint "dropfk_a_fkey2" +ERROR: removing partition "droppk2" violates foreign key constraint "dropfk_a_fkey_2" DETAIL: Key (a)=(1000) is still referenced from table "dropfk". ALTER TABLE droppk2 DETACH PARTITION droppk21; -ERROR: removing partition "droppk21" violates foreign key constraint "dropfk_a_fkey3" +ERROR: removing partition "droppk21" violates foreign key constraint "dropfk_a_fkey_3" DETAIL: Key (a)=(1000) is still referenced from table "dropfk". -- dropping partitions is disallowed DROP TABLE droppk_d; @@ -2559,15 +2762,15 @@ SELECT pg_describe_object('pg_constraint'::regclass, oid, 0), confrelid::regclas FROM pg_catalog.pg_constraint WHERE conrelid IN (SELECT relid FROM pg_partition_tree('fk')) ORDER BY conrelid::regclass::text, conname; - pg_describe_object | confrelid | case -------------------------------------+-----------+----------------------------------- + pg_describe_object | confrelid | case +------------------------------------+-----------+------------------------------------ constraint fk_a_fkey on table fk | pk | TOP - constraint fk_a_fkey1 on table fk | pk1 | constraint fk_a_fkey on table fk - constraint fk_a_fkey2 on table fk | pk11 | constraint fk_a_fkey1 on table fk - constraint fk_a_fkey3 on table fk | pk2 | constraint fk_a_fkey on table fk - constraint fk_a_fkey4 on table fk | pk3 | constraint fk_a_fkey on table fk - constraint fk_a_fkey5 on table fk | pk31 | constraint fk_a_fkey4 on table fk - constraint fk_a_fkey6 on table fk | pk32 | constraint fk_a_fkey4 on table fk + constraint fk_a_fkey_1 on table fk | pk1 | constraint fk_a_fkey on table fk + constraint fk_a_fkey_2 on table fk | pk11 | constraint fk_a_fkey_1 on table fk + constraint fk_a_fkey_3 on table fk | pk2 | constraint fk_a_fkey on table fk + constraint fk_a_fkey_4 on table fk | pk3 | constraint fk_a_fkey on table fk + constraint fk_a_fkey_5 on table fk | pk31 | constraint fk_a_fkey_4 on table fk + constraint fk_a_fkey_6 on table fk | pk32 | constraint fk_a_fkey_4 on table fk constraint fk_a_fkey on table fk1 | pk | constraint fk_a_fkey on table fk constraint fk_a_fkey on table fk11 | pk | constraint fk_a_fkey on table fk1 constraint fk_a_fkey on table fk2 | pk | constraint fk_a_fkey on table fk @@ -2670,10 +2873,10 @@ CREATE TABLE pt1 PARTITION OF pt1_2 FOR VALUES IN (1); CREATE TABLE pt2 PARTITION OF pt1_2 FOR VALUES IN (2); CREATE TABLE ref(f1 int, f2 int, f3 int); ALTER TABLE ref ADD FOREIGN KEY(f1,f2) REFERENCES pt; -ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey1 +ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey_1 DEFERRABLE INITIALLY DEFERRED; -- fails -ERROR: cannot alter constraint "ref_f1_f2_fkey1" on relation "ref" -DETAIL: Constraint "ref_f1_f2_fkey1" is derived from constraint "ref_f1_f2_fkey" of relation "ref". +ERROR: cannot alter constraint "ref_f1_f2_fkey_1" on relation "ref" +DETAIL: Constraint "ref_f1_f2_fkey_1" is derived from constraint "ref_f1_f2_fkey" of relation "ref". HINT: You may alter the constraint it derives from instead. ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey DEFERRABLE INITIALLY DEFERRED; @@ -2775,7 +2978,7 @@ ALTER TABLE fk ADD FOREIGN KEY (a) REFERENCES pk ON UPDATE RESTRICT ON DELETE RE CREATE TABLE fk_d PARTITION OF fk DEFAULT; INSERT INTO fk VALUES (20), (30); DELETE FROM pk WHERE a = 20; -ERROR: update or delete on table "pk11" violates RESTRICT setting of foreign key constraint "fk_a_fkey2" on table "fk" +ERROR: update or delete on table "pk11" violates RESTRICT setting of foreign key constraint "fk_a_fkey_2" on table "fk" DETAIL: Key (a)=(20) is referenced from table "fk". UPDATE pk SET a = 90 WHERE a = 30; ERROR: update or delete on table "pk" violates RESTRICT setting of foreign key constraint "fk_a_fkey" on table "fk" @@ -3123,7 +3326,7 @@ INSERT INTO fk_r_1 (id, p_id, p_jd) VALUES (2, 1, 2); -- should fail ERROR: insert or update on table "fk_r_1" violates foreign key constraint "fk_r_p_id_p_jd_fkey" DETAIL: Key (p_id, p_jd)=(1, 2) is not present in table "fk_p". DELETE FROM fk_p; -- should fail -ERROR: update or delete on table "fk_p_1_1" violates foreign key constraint "fk_r_1_p_id_p_jd_fkey1" on table "fk_r_1" +ERROR: update or delete on table "fk_p_1_1" violates foreign key constraint "fk_r_p_id_p_jd_fkey_7" on table "fk_r_1" DETAIL: Key (id, jd)=(1, 1) is still referenced from table "fk_r_1". ALTER TABLE fk_r ATTACH PARTITION fk_r_1 FOR VALUES IN (1); ALTER TABLE fk_r ATTACH PARTITION fk_r_2 FOR VALUES IN (2); @@ -3143,13 +3346,13 @@ Foreign-key constraints: Number of partitions: 1 (Use \d+ to list them.) DELETE FROM fk_p; -- should fail -ERROR: update or delete on table "fk_p_1_1" violates foreign key constraint "fk_r_p_id_p_jd_fkey2" on table "fk_r" +ERROR: update or delete on table "fk_p_1_1" violates foreign key constraint "fk_r_p_id_p_jd_fkey_2" on table "fk_r" DETAIL: Key (id, jd)=(1, 1) is still referenced from table "fk_r". -- these should all fail ALTER TABLE fk_r_1 DROP CONSTRAINT fk_r_p_id_p_jd_fkey; ERROR: cannot drop inherited constraint "fk_r_p_id_p_jd_fkey" of relation "fk_r_1" -ALTER TABLE fk_r DROP CONSTRAINT fk_r_p_id_p_jd_fkey1; -ERROR: cannot drop inherited constraint "fk_r_p_id_p_jd_fkey1" of relation "fk_r" +ALTER TABLE fk_r DROP CONSTRAINT fk_r_p_id_p_jd_fkey_1; +ERROR: cannot drop inherited constraint "fk_r_p_id_p_jd_fkey_1" of relation "fk_r" ALTER TABLE fk_r_2 DROP CONSTRAINT fk_r_p_id_p_jd_fkey; ERROR: cannot drop inherited constraint "fk_r_p_id_p_jd_fkey" of relation "fk_r_2" SET client_min_messages TO warning; diff --git a/src/test/regress/expected/generated_stored.out b/src/test/regress/expected/generated_stored.out index 8cccd1d7fe9e5..16de30ab1910b 100644 --- a/src/test/regress/expected/generated_stored.out +++ b/src/test/regress/expected/generated_stored.out @@ -847,6 +847,11 @@ CREATE TABLE gtest24r (a int PRIMARY KEY, b gtestdomain1range GENERATED ALWAYS A INSERT INTO gtest24r (a) VALUES (4); -- ok INSERT INTO gtest24r (a) VALUES (6); -- error ERROR: value for domain gtestdomain1 violates check constraint "gtestdomain1_check" +CREATE DOMAIN gtestdomainnn AS int CHECK (VALUE IS NOT NULL); +CREATE TABLE gtest24nn (a int, b gtestdomainnn GENERATED ALWAYS AS (a * 2) STORED); +INSERT INTO gtest24nn (a) VALUES (4); -- ok +INSERT INTO gtest24nn (a) VALUES (NULL); -- error +ERROR: value for domain gtestdomainnn violates check constraint "gtestdomainnn_check" -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) STORED); diff --git a/src/test/regress/expected/generated_virtual.out b/src/test/regress/expected/generated_virtual.out index 26bbe1e9c3173..6300e7c1d96e1 100644 --- a/src/test/regress/expected/generated_virtual.out +++ b/src/test/regress/expected/generated_virtual.out @@ -800,6 +800,11 @@ CREATE TABLE gtest24r (a int PRIMARY KEY, b gtestdomain1range GENERATED ALWAYS A ERROR: virtual generated column "b" cannot have a domain type --INSERT INTO gtest24r (a) VALUES (4); -- ok --INSERT INTO gtest24r (a) VALUES (6); -- error +CREATE DOMAIN gtestdomainnn AS int CHECK (VALUE IS NOT NULL); +CREATE TABLE gtest24nn (a int, b gtestdomainnn GENERATED ALWAYS AS (a * 2) VIRTUAL); +ERROR: virtual generated column "b" cannot have a domain type +--INSERT INTO gtest24nn (a) VALUES (4); -- ok +--INSERT INTO gtest24nn (a) VALUES (NULL); -- error -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) VIRTUAL); diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index 4d07d0bd79bb3..f9b0c415cfdcc 100644 --- a/src/test/regress/expected/inherit.out +++ b/src/test/regress/expected/inherit.out @@ -1096,17 +1096,30 @@ CREATE TABLE inhta (); CREATE TABLE inhtb () INHERITS (inhta); CREATE TABLE inhtc () INHERITS (inhtb); CREATE TABLE inhtd () INHERITS (inhta, inhtb, inhtc); -ALTER TABLE inhta ADD COLUMN i int; +ALTER TABLE inhta ADD COLUMN i int, ADD COLUMN j bigint DEFAULT 1; NOTICE: merging definition of column "i" for child "inhtd" NOTICE: merging definition of column "i" for child "inhtd" +NOTICE: merging definition of column "j" for child "inhtd" +NOTICE: merging definition of column "j" for child "inhtd" \d+ inhta Table "public.inhta" Column | Type | Collation | Nullable | Default | Storage | Stats target | Description --------+---------+-----------+----------+---------+---------+--------------+------------- i | integer | | | | plain | | + j | bigint | | | 1 | plain | | Child tables: inhtb, inhtd +\d+ inhtd + Table "public.inhtd" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + i | integer | | | | plain | | + j | bigint | | | 1 | plain | | +Inherits: inhta, + inhtb, + inhtc + DROP TABLE inhta, inhtb, inhtc, inhtd; -- Test for renaming in diamond inheritance CREATE TABLE inht2 (x int) INHERITS (inht1); @@ -1332,6 +1345,13 @@ NOTICE: merging constraint "inh_check_constraint5" with inherited definition alter table p1 add constraint inh_check_constraint6 check (f1 < 10) not enforced; alter table p1_c1 add constraint inh_check_constraint6 check (f1 < 10) enforced; NOTICE: merging constraint "inh_check_constraint6" with inherited definition +alter table p1_c1 add constraint inh_check_constraint9 check (f1 < 10) not valid enforced; +alter table p1 add constraint inh_check_constraint9 check (f1 < 10) not enforced; +NOTICE: merging constraint "inh_check_constraint9" with inherited definition +-- the not-valid state of the child constraint will be ignored here. +alter table p1 add constraint inh_check_constraint10 check (f1 < 10) not enforced; +alter table p1_c1 add constraint inh_check_constraint10 check (f1 < 10) not valid enforced; +NOTICE: merging constraint "inh_check_constraint10" with inherited definition create table p1_c2(f1 int constraint inh_check_constraint4 check (f1 < 10)) inherits(p1); NOTICE: merging column "f1" with inherited definition NOTICE: merging constraint "inh_check_constraint4" with inherited definition @@ -1356,39 +1376,47 @@ ERROR: constraint "inh_check_constraint6" conflicts with NOT ENFORCED constrain select conrelid::regclass::text as relname, conname, conislocal, coninhcount, conenforced, convalidated from pg_constraint where conname like 'inh\_check\_constraint%' order by 1, 2; - relname | conname | conislocal | coninhcount | conenforced | convalidated ----------+-----------------------+------------+-------------+-------------+-------------- - p1 | inh_check_constraint1 | t | 0 | t | t - p1 | inh_check_constraint2 | t | 0 | t | t - p1 | inh_check_constraint3 | t | 0 | f | f - p1 | inh_check_constraint4 | t | 0 | f | f - p1 | inh_check_constraint5 | t | 0 | f | f - p1 | inh_check_constraint6 | t | 0 | f | f - p1 | inh_check_constraint8 | t | 0 | t | t - p1_c1 | inh_check_constraint1 | t | 1 | t | t - p1_c1 | inh_check_constraint2 | t | 1 | t | t - p1_c1 | inh_check_constraint3 | t | 1 | f | f - p1_c1 | inh_check_constraint4 | t | 1 | f | f - p1_c1 | inh_check_constraint5 | t | 1 | t | t - p1_c1 | inh_check_constraint6 | t | 1 | t | t - p1_c1 | inh_check_constraint7 | t | 0 | f | f - p1_c1 | inh_check_constraint8 | f | 1 | t | t - p1_c2 | inh_check_constraint1 | f | 1 | t | t - p1_c2 | inh_check_constraint2 | f | 1 | t | t - p1_c2 | inh_check_constraint3 | f | 1 | f | f - p1_c2 | inh_check_constraint4 | t | 1 | t | t - p1_c2 | inh_check_constraint5 | f | 1 | f | f - p1_c2 | inh_check_constraint6 | f | 1 | f | f - p1_c2 | inh_check_constraint8 | f | 1 | t | t - p1_c3 | inh_check_constraint1 | f | 2 | t | t - p1_c3 | inh_check_constraint2 | f | 2 | t | t - p1_c3 | inh_check_constraint3 | f | 2 | f | f - p1_c3 | inh_check_constraint4 | f | 2 | f | f - p1_c3 | inh_check_constraint5 | f | 2 | t | t - p1_c3 | inh_check_constraint6 | f | 2 | t | t - p1_c3 | inh_check_constraint7 | f | 1 | f | f - p1_c3 | inh_check_constraint8 | f | 2 | t | t -(30 rows) + relname | conname | conislocal | coninhcount | conenforced | convalidated +---------+------------------------+------------+-------------+-------------+-------------- + p1 | inh_check_constraint1 | t | 0 | t | t + p1 | inh_check_constraint10 | t | 0 | f | f + p1 | inh_check_constraint2 | t | 0 | t | t + p1 | inh_check_constraint3 | t | 0 | f | f + p1 | inh_check_constraint4 | t | 0 | f | f + p1 | inh_check_constraint5 | t | 0 | f | f + p1 | inh_check_constraint6 | t | 0 | f | f + p1 | inh_check_constraint8 | t | 0 | t | t + p1 | inh_check_constraint9 | t | 0 | f | f + p1_c1 | inh_check_constraint1 | t | 1 | t | t + p1_c1 | inh_check_constraint10 | t | 1 | t | t + p1_c1 | inh_check_constraint2 | t | 1 | t | t + p1_c1 | inh_check_constraint3 | t | 1 | f | f + p1_c1 | inh_check_constraint4 | t | 1 | f | f + p1_c1 | inh_check_constraint5 | t | 1 | t | t + p1_c1 | inh_check_constraint6 | t | 1 | t | t + p1_c1 | inh_check_constraint7 | t | 0 | f | f + p1_c1 | inh_check_constraint8 | f | 1 | t | t + p1_c1 | inh_check_constraint9 | t | 1 | t | f + p1_c2 | inh_check_constraint1 | f | 1 | t | t + p1_c2 | inh_check_constraint10 | f | 1 | f | f + p1_c2 | inh_check_constraint2 | f | 1 | t | t + p1_c2 | inh_check_constraint3 | f | 1 | f | f + p1_c2 | inh_check_constraint4 | t | 1 | t | t + p1_c2 | inh_check_constraint5 | f | 1 | f | f + p1_c2 | inh_check_constraint6 | f | 1 | f | f + p1_c2 | inh_check_constraint8 | f | 1 | t | t + p1_c2 | inh_check_constraint9 | f | 1 | f | f + p1_c3 | inh_check_constraint1 | f | 2 | t | t + p1_c3 | inh_check_constraint10 | f | 2 | t | t + p1_c3 | inh_check_constraint2 | f | 2 | t | t + p1_c3 | inh_check_constraint3 | f | 2 | f | f + p1_c3 | inh_check_constraint4 | f | 2 | f | f + p1_c3 | inh_check_constraint5 | f | 2 | t | t + p1_c3 | inh_check_constraint6 | f | 2 | t | t + p1_c3 | inh_check_constraint7 | f | 1 | f | f + p1_c3 | inh_check_constraint8 | f | 2 | t | t + p1_c3 | inh_check_constraint9 | f | 2 | t | t +(38 rows) drop table p1 cascade; NOTICE: drop cascades to 3 other objects @@ -2258,6 +2286,7 @@ DETAIL: The column has an inherited not-null constraint. -- change NO INHERIT status of inherited constraint: no dice, it's inherited alter table cc2 add not null a2 no inherit; ERROR: cannot change NO INHERIT status of NOT NULL constraint "nn" on relation "cc2" +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. -- remove constraint from cc2: no dice, it's inherited alter table cc2 alter column a2 drop not null; ERROR: cannot drop inherited constraint "nn" of relation "cc2" @@ -2481,6 +2510,7 @@ CREATE TABLE inh_nn_parent (a int, NOT NULL a NO INHERIT); CREATE TABLE inh_nn_child() INHERITS (inh_nn_parent); ALTER TABLE inh_nn_parent ADD CONSTRAINT nna NOT NULL a; ERROR: cannot change NO INHERIT status of NOT NULL constraint "inh_nn_parent_a_not_null" on relation "inh_nn_parent" +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. ALTER TABLE inh_nn_parent ALTER a SET NOT NULL; ERROR: cannot change NO INHERIT status of NOT NULL constraint "inh_nn_parent_a_not_null" on relation "inh_nn_parent" DROP TABLE inh_nn_parent cascade; @@ -2492,6 +2522,7 @@ CREATE TABLE inh_nn_lvl2 () INHERITS (inh_nn_lvl1); CREATE TABLE inh_nn_lvl3 (CONSTRAINT foo NOT NULL a NO INHERIT) INHERITS (inh_nn_lvl2); ALTER TABLE inh_nn_lvl1 ADD PRIMARY KEY (a); ERROR: cannot change NO INHERIT status of NOT NULL constraint "foo" on relation "inh_nn_lvl3" +HINT: You might need to make the existing constraint inheritable using ALTER TABLE ... ALTER CONSTRAINT ... INHERIT. DROP TABLE inh_nn_lvl1, inh_nn_lvl2, inh_nn_lvl3; -- Disallow specifying conflicting NO INHERIT flags for the same constraint CREATE TABLE inh_nn1 (a int primary key, b int, not null a no inherit); diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index 14da57084515e..f35a0b18c37cb 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -7150,7 +7150,8 @@ on true; -> Seq Scan on emp1 t4 (7 rows) --- Check that SJE removes the whole PHVs correctly +-- Try PHV, which could potentially be removed completely by SJE, but that's +-- not implemented yet. explain (verbose, costs off) select 1 from emp1 t1 left join ((select 1 as x, * from emp1 t2) s1 inner join @@ -7200,6 +7201,37 @@ on true; Output: t3.id, t1.id (7 rows) +-- This is a degenerate case of PHV usage: it is evaluated and needed inside +-- a baserel scan operation that the SJE removes. The PHV in this test should +-- be in the filter of parameterized Index Scan: the replace_nestloop_params() +-- code will detect if the placeholder list doesn't have a reference to this +-- parameter. +-- +-- NOTE: enable_hashjoin and enable_mergejoin must be disabled. +CREATE TABLE tbl_phv(x int, y int PRIMARY KEY); +CREATE INDEX tbl_phv_idx ON tbl_phv(x); +INSERT INTO tbl_phv (x, y) + SELECT gs, gs FROM generate_series(1,100) AS gs; +VACUUM ANALYZE tbl_phv; +EXPLAIN (COSTS OFF, VERBOSE) +SELECT 1 FROM tbl_phv t1 LEFT JOIN + (SELECT 1 extra, x, y FROM tbl_phv tl) t3 JOIN + (SELECT y FROM tbl_phv tr) t4 + ON t4.y = t3.y +ON true WHERE t3.extra IS NOT NULL AND t3.x = t1.x % 2; + QUERY PLAN +--------------------------------------------------------- + Nested Loop + Output: 1 + -> Seq Scan on public.tbl_phv t1 + Output: t1.x, t1.y + -> Index Scan using tbl_phv_idx on public.tbl_phv tr + Output: tr.x, tr.y + Index Cond: (tr.x = (t1.x % 2)) + Filter: (1 IS NOT NULL) +(8 rows) + +DROP TABLE IF EXISTS tbl_phv; -- Check that SJE replaces join clauses involving the removed rel correctly explain (costs off) select * from emp1 t1 @@ -7228,7 +7260,21 @@ WHERE t1.id = emp1.id RETURNING emp1.id, emp1.code, t1.code; Index Cond: (id = emp1.id) (5 rows) -INSERT INTO emp1 VALUES (1, 1), (2, 1); +-- Check that SJE correctly replaces relations in OR-clauses +EXPLAIN (COSTS OFF) +SELECT * FROM emp1 t1 + INNER JOIN emp1 t2 ON t1.id = t2.id + LEFT JOIN emp1 t3 ON t1.code = 1 AND (t2.code = t3.code OR t2.code = 1); + QUERY PLAN +--------------------------------------------------------------------------- + Nested Loop Left Join + Join Filter: ((t2.code = 1) AND ((t2.code = t3.code) OR (t2.code = 1))) + -> Seq Scan on emp1 t2 + -> Materialize + -> Seq Scan on emp1 t3 +(5 rows) + + INSERT INTO emp1 VALUES (1, 1), (2, 1); WITH t1 AS (SELECT * FROM emp1) UPDATE emp1 SET code = t1.code + 1 FROM t1 WHERE t1.id = emp1.id RETURNING emp1.id, emp1.code, t1.code; diff --git a/src/test/regress/expected/limit.out b/src/test/regress/expected/limit.out index f4267c002d787..e3bcc680653b3 100644 --- a/src/test/regress/expected/limit.out +++ b/src/test/regress/expected/limit.out @@ -647,7 +647,7 @@ View definition: WHERE thousand < 995 ORDER BY thousand OFFSET 10 - FETCH FIRST 5 ROWS WITH TIES; + FETCH FIRST (5) ROWS WITH TIES; CREATE VIEW limit_thousand_v_2 AS SELECT thousand FROM onek WHERE thousand < 995 ORDER BY thousand OFFSET 10 FETCH FIRST 5 ROWS ONLY; @@ -679,15 +679,29 @@ View definition: FROM onek WHERE thousand < 995 ORDER BY thousand - FETCH FIRST (NULL::integer + 1) ROWS WITH TIES; + FETCH FIRST ((NULL::integer + 1)) ROWS WITH TIES; CREATE VIEW limit_thousand_v_4 AS SELECT thousand FROM onek WHERE thousand < 995 - ORDER BY thousand FETCH FIRST NULL ROWS ONLY; + ORDER BY thousand FETCH FIRST (5::bigint) ROWS WITH TIES; \d+ limit_thousand_v_4 View "public.limit_thousand_v_4" Column | Type | Collation | Nullable | Default | Storage | Description ----------+---------+-----------+----------+---------+---------+------------- thousand | integer | | | | plain | +View definition: + SELECT thousand + FROM onek + WHERE thousand < 995 + ORDER BY thousand + FETCH FIRST (5::bigint) ROWS WITH TIES; + +CREATE VIEW limit_thousand_v_5 AS SELECT thousand FROM onek WHERE thousand < 995 + ORDER BY thousand FETCH FIRST NULL ROWS ONLY; +\d+ limit_thousand_v_5 + View "public.limit_thousand_v_5" + Column | Type | Collation | Nullable | Default | Storage | Description +----------+---------+-----------+----------+---------+---------+------------- + thousand | integer | | | | plain | View definition: SELECT thousand FROM onek diff --git a/src/test/regress/expected/maintain_every.out b/src/test/regress/expected/maintain_every.out new file mode 100644 index 0000000000000..dea1089c2499b --- /dev/null +++ b/src/test/regress/expected/maintain_every.out @@ -0,0 +1,33 @@ +-- Test maintenance commands that visit every eligible relation. Run as a +-- non-superuser, to skip other users' tables. +CREATE ROLE regress_maintain; +SET ROLE regress_maintain; +-- Test database-wide ANALYZE ("use_own_xacts" mode) setting relhassubclass=f +-- for non-partitioning inheritance, w/ ON COMMIT DELETE ROWS building an +-- empty index. +CREATE TEMP TABLE past_inh_db_other (); -- need 2 tables for "use_own_xacts" +CREATE TEMP TABLE past_inh_db_parent () ON COMMIT DELETE ROWS; +CREATE TEMP TABLE past_inh_db_child () INHERITS (past_inh_db_parent); +CREATE INDEX ON past_inh_db_parent ((1)); +ANALYZE past_inh_db_parent; +SELECT reltuples, relhassubclass + FROM pg_class WHERE oid = 'past_inh_db_parent'::regclass; + reltuples | relhassubclass +-----------+---------------- + 0 | t +(1 row) + +DROP TABLE past_inh_db_child; +SET client_min_messages = error; -- hide WARNINGs for other users' tables +ANALYZE; +RESET client_min_messages; +SELECT reltuples, relhassubclass + FROM pg_class WHERE oid = 'past_inh_db_parent'::regclass; + reltuples | relhassubclass +-----------+---------------- + 0 | f +(1 row) + +DROP TABLE past_inh_db_parent, past_inh_db_other; +RESET ROLE; +DROP ROLE regress_maintain; diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out index d3f5d16a6725d..cc517ed5e9007 100644 --- a/src/test/regress/expected/misc_functions.out +++ b/src/test/regress/expected/misc_functions.out @@ -914,3 +914,7 @@ SELECT test_relpath(); (1 row) +-- pg_replication_origin.roname limit +SELECT pg_replication_origin_create('regress_' || repeat('a', 505)); +ERROR: replication origin name is too long +DETAIL: Replication origin names must be no longer than 512 bytes. diff --git a/src/test/regress/expected/misc_sanity.out b/src/test/regress/expected/misc_sanity.out index b032a3f4761dc..4ffc45a80187e 100644 --- a/src/test/regress/expected/misc_sanity.out +++ b/src/test/regress/expected/misc_sanity.out @@ -42,6 +42,11 @@ WHERE refclassid = 0 OR refobjid = 0 OR -- as user data by pg_upgrade, which would cause failures. -- 3. pg_authid, since its toast table cannot be accessed when it would be -- needed, i.e., during authentication before we've selected a database. +-- 4. pg_replication_origin, since we want to be able to access that catalog +-- without setting up a snapshot. To make that safe, it needs to not have a +-- toast table, since toasted data cannot be fetched without a snapshot. As of +-- this writing, its only varlena column is roname, which we limit to 512 bytes +-- to avoid needing out-of-line storage. SELECT relname, attname, atttypid::regtype FROM pg_class c JOIN pg_attribute a ON c.oid = attrelid WHERE c.oid < 16384 AND @@ -61,7 +66,8 @@ ORDER BY 1, 2; pg_class | relpartbound | pg_node_tree pg_largeobject | data | bytea pg_largeobject_metadata | lomacl | aclitem[] -(10 rows) + pg_replication_origin | roname | text +(11 rows) -- system catalogs without primary keys -- diff --git a/src/test/regress/expected/numa.out b/src/test/regress/expected/numa.out new file mode 100644 index 0000000000000..8af5dfeb9a5d3 --- /dev/null +++ b/src/test/regress/expected/numa.out @@ -0,0 +1,13 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +SELECT COUNT(*) = 0 AS ok FROM pg_shmem_allocations_numa; +\quit +\endif +-- switch to superuser +\c - +SELECT COUNT(*) >= 0 AS ok FROM pg_shmem_allocations_numa; + ok +---- + t +(1 row) + diff --git a/src/test/regress/expected/numa_1.out b/src/test/regress/expected/numa_1.out new file mode 100644 index 0000000000000..c90042fa7cce3 --- /dev/null +++ b/src/test/regress/expected/numa_1.out @@ -0,0 +1,5 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +SELECT COUNT(*) = 0 AS ok FROM pg_shmem_allocations_numa; +ERROR: libnuma initialization failed or NUMA is not supported on this platform +\quit diff --git a/src/test/regress/expected/partition_join.out b/src/test/regress/expected/partition_join.out index 6101c8c7cf108..d5368186caa9f 100644 --- a/src/test/regress/expected/partition_join.out +++ b/src/test/regress/expected/partition_join.out @@ -5260,6 +5260,24 @@ SELECT x.id, y.id FROM fract_t x LEFT JOIN fract_t y USING (id) ORDER BY x.id DE Index Cond: (id = x_2.id) (11 rows) +EXPLAIN (COSTS OFF) -- Should use NestLoop with parameterised inner scan +SELECT x.id, y.id FROM fract_t x LEFT JOIN fract_t y USING (id) +ORDER BY x.id DESC LIMIT 2; + QUERY PLAN +-------------------------------------------------------------------------------- + Limit + -> Merge Append + Sort Key: x.id DESC + -> Nested Loop Left Join + -> Index Only Scan Backward using fract_t0_pkey on fract_t0 x_1 + -> Index Only Scan using fract_t0_pkey on fract_t0 y_1 + Index Cond: (id = x_1.id) + -> Nested Loop Left Join + -> Index Only Scan Backward using fract_t1_pkey on fract_t1 x_2 + -> Index Only Scan using fract_t1_pkey on fract_t1 y_2 + Index Cond: (id = x_2.id) +(11 rows) + -- -- Test Append's fractional paths -- diff --git a/src/test/regress/expected/partition_prune.out b/src/test/regress/expected/partition_prune.out index 0bf35260b46e6..d1966cd7d829f 100644 --- a/src/test/regress/expected/partition_prune.out +++ b/src/test/regress/expected/partition_prune.out @@ -4553,16 +4553,18 @@ create view part_abc_view as select * from part_abc where b <> 'a' with check op prepare update_part_abc_view as update part_abc_view set b = $2 where a = $1 returning *; -- Only the unpruned partition should be shown in the list of relations to be -- updated -explain (costs off) execute update_part_abc_view (1, 'd'); - QUERY PLAN -------------------------------------------------------- - Update on part_abc - Update on part_abc_1 +explain (verbose, costs off) execute update_part_abc_view (1, 'd'); + QUERY PLAN +----------------------------------------------------------------------------- + Update on public.part_abc + Output: part_abc_1.a, part_abc_1.b, part_abc_1.c + Update on public.part_abc_1 -> Append Subplans Removed: 1 - -> Seq Scan on part_abc_1 - Filter: ((b <> 'a'::text) AND (a = $1)) -(6 rows) + -> Seq Scan on public.part_abc_1 + Output: $2, part_abc_1.tableoid, part_abc_1.ctid + Filter: ((part_abc_1.b <> 'a'::text) AND (part_abc_1.a = $1)) +(8 rows) execute update_part_abc_view (1, 'd'); a | b | c @@ -4570,28 +4572,31 @@ execute update_part_abc_view (1, 'd'); 1 | d | t (1 row) -explain (costs off) execute update_part_abc_view (2, 'a'); - QUERY PLAN -------------------------------------------------------- - Update on part_abc - Update on part_abc_2 part_abc_1 +explain (verbose, costs off) execute update_part_abc_view (2, 'a'); + QUERY PLAN +----------------------------------------------------------------------------- + Update on public.part_abc + Output: part_abc_1.a, part_abc_1.b, part_abc_1.c + Update on public.part_abc_2 -> Append Subplans Removed: 1 - -> Seq Scan on part_abc_2 part_abc_1 - Filter: ((b <> 'a'::text) AND (a = $1)) -(6 rows) + -> Seq Scan on public.part_abc_2 + Output: $2, part_abc_2.tableoid, part_abc_2.ctid + Filter: ((part_abc_2.b <> 'a'::text) AND (part_abc_2.a = $1)) +(8 rows) execute update_part_abc_view (2, 'a'); ERROR: new row violates check option for view "part_abc_view" DETAIL: Failing row contains (2, a, t). -- All pruned. -explain (costs off) execute update_part_abc_view (3, 'a'); - QUERY PLAN ------------------------------ - Update on part_abc +explain (verbose, costs off) execute update_part_abc_view (3, 'a'); + QUERY PLAN +---------------------------------------------------- + Update on public.part_abc + Output: part_abc_1.a, part_abc_1.b, part_abc_1.c -> Append Subplans Removed: 2 -(3 rows) +(4 rows) execute update_part_abc_view (3, 'a'); a | b | c diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out index 5588d83e1bfb5..c25062c288f32 100644 --- a/src/test/regress/expected/privileges.out +++ b/src/test/regress/expected/privileges.out @@ -2667,11 +2667,103 @@ SELECT has_schema_privilege('regress_priv_user2', 'testns4', 'CREATE'); -- yes ALTER DEFAULT PRIVILEGES REVOKE ALL ON SCHEMAS FROM regress_priv_user2; COMMIT; +-- +-- Test for default privileges on large objects. This is done in a +-- separate, rollbacked, transaction to avoid any trouble with other +-- regression sessions. +-- +BEGIN; +SELECT lo_create(1007); + lo_create +----------- + 1007 +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1007, 'SELECT'); -- no + has_largeobject_privilege +--------------------------- + f +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1007, 'UPDATE'); -- no + has_largeobject_privilege +--------------------------- + f +(1 row) + +ALTER DEFAULT PRIVILEGES GRANT SELECT ON LARGE OBJECTS TO regress_priv_user2; +SELECT lo_create(1008); + lo_create +----------- + 1008 +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1008, 'SELECT'); -- yes + has_largeobject_privilege +--------------------------- + t +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user6', 1008, 'SELECT'); -- no + has_largeobject_privilege +--------------------------- + f +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1008, 'UPDATE'); -- no + has_largeobject_privilege +--------------------------- + f +(1 row) + +ALTER DEFAULT PRIVILEGES GRANT ALL ON LARGE OBJECTS TO regress_priv_user2; +SELECT lo_create(1009); + lo_create +----------- + 1009 +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1009, 'SELECT'); -- true + has_largeobject_privilege +--------------------------- + t +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1009, 'UPDATE'); -- true + has_largeobject_privilege +--------------------------- + t +(1 row) + +ALTER DEFAULT PRIVILEGES REVOKE UPDATE ON LARGE OBJECTS FROM regress_priv_user2; +SELECT lo_create(1010); + lo_create +----------- + 1010 +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1010, 'SELECT'); -- true + has_largeobject_privilege +--------------------------- + t +(1 row) + +SELECT has_largeobject_privilege('regress_priv_user2', 1010, 'UPDATE'); -- false + has_largeobject_privilege +--------------------------- + f +(1 row) + +ROLLBACK; +ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON LARGE OBJECTS TO public; -- error +ERROR: cannot use IN SCHEMA clause when using GRANT/REVOKE ON LARGE OBJECTS +\c - -- Test for DROP OWNED BY with shared dependencies. This is done in a -- separate, rollbacked, transaction to avoid any trouble with other -- regression sessions. BEGIN; ALTER DEFAULT PRIVILEGES GRANT ALL ON FUNCTIONS TO regress_priv_user2; +ALTER DEFAULT PRIVILEGES GRANT ALL ON LARGE OBJECTS TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON SCHEMAS TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON SEQUENCES TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO regress_priv_user2; @@ -2682,7 +2774,7 @@ SELECT count(*) FROM pg_shdepend classid = 'pg_default_acl'::regclass; count ------- - 5 + 6 (1 row) DROP OWNED BY regress_priv_user2, regress_priv_user2; @@ -3127,8 +3219,8 @@ REVOKE MAINTAIN ON lock_table FROM regress_locktable_user; -- clean up DROP TABLE lock_table; DROP USER regress_locktable_user; --- test to check privileges of system views pg_shmem_allocations and --- pg_backend_memory_contexts. +-- test to check privileges of system views pg_shmem_allocations, +-- pg_shmem_allocations_numa and pg_backend_memory_contexts. -- switch to superuser \c - CREATE ROLE regress_readallstats; @@ -3150,6 +3242,12 @@ SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations','SELECT f (1 row) +SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations_numa','SELECT'); -- no + has_table_privilege +--------------------- + f +(1 row) + GRANT pg_read_all_stats TO regress_readallstats; SELECT has_table_privilege('regress_readallstats','pg_aios','SELECT'); -- yes has_table_privilege @@ -3169,6 +3267,12 @@ SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations','SELECT t (1 row) +SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations_numa','SELECT'); -- yes + has_table_privilege +--------------------- + t +(1 row) + -- run query to ensure that functions within views can be executed SET ROLE regress_readallstats; SELECT COUNT(*) >= 0 AS ok FROM pg_aios; diff --git a/src/test/regress/expected/psql.out b/src/test/regress/expected/psql.out index b1d12585eaed0..cf48ae6d0c2ee 100644 --- a/src/test/regress/expected/psql.out +++ b/src/test/regress/expected/psql.out @@ -5332,9 +5332,10 @@ Function | in_range(time without time zone,time without time zone,i btree | uuid_ops | uuid | uuid | 1 | uuid_cmp btree | uuid_ops | uuid | uuid | 2 | uuid_sortsupport btree | uuid_ops | uuid | uuid | 4 | btequalimage + btree | uuid_ops | uuid | uuid | 6 | uuid_skipsupport hash | uuid_ops | uuid | uuid | 1 | uuid_hash hash | uuid_ops | uuid | uuid | 2 | uuid_hash_extended -(5 rows) +(6 rows) -- check \dconfig set work_mem = 10240; diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index 397a8b35d6d5c..c21be83aa4aaf 100644 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -1885,7 +1885,7 @@ select * from array_to_set(array['one', 'two']) as t(f1 numeric(4,2),f2 text); select * from array_to_set(array['one', 'two']) as t(f1 point,f2 text); ERROR: return type mismatch in function declared to return record DETAIL: Final statement returns integer instead of point at column 1. -CONTEXT: SQL function "array_to_set" during startup +CONTEXT: SQL function "array_to_set" statement 1 -- with "strict", this function can't be inlined in FROM explain (verbose, costs off) select * from array_to_set(array['one', 'two']) as t(f1 numeric(4,2),f2 text); diff --git a/src/test/regress/expected/rowsecurity.out b/src/test/regress/expected/rowsecurity.out index 87929191d0601..1c4e37d22493d 100644 --- a/src/test/regress/expected/rowsecurity.out +++ b/src/test/regress/expected/rowsecurity.out @@ -4695,6 +4695,57 @@ RESET ROLE; DROP FUNCTION rls_f(); DROP VIEW rls_v; DROP TABLE rls_t; +-- Check that RLS changes invalidate SQL function plans +create table rls_t (c text); +create table test_t (c text); +insert into rls_t values ('a'), ('b'), ('c'), ('d'); +insert into test_t values ('a'), ('b'); +alter table rls_t enable row level security; +grant select on rls_t to regress_rls_alice; +grant select on test_t to regress_rls_alice; +create policy p1 on rls_t for select to regress_rls_alice + using (c = current_setting('rls_test.blah')); +-- Function changes row_security setting and so invalidates plan +create function rls_f(text) returns text +begin atomic + select set_config('rls_test.blah', $1, true) || set_config('row_security', 'false', true) || string_agg(c, ',' order by c) from rls_t; +end; +set plan_cache_mode to force_custom_plan; +-- Table owner bypasses RLS +select rls_f(c) from test_t order by rls_f; + rls_f +------------- + aoffa,b,c,d + boffa,b,c,d +(2 rows) + +-- For other users, changes in row_security setting +-- should lead to RLS error during query rewrite +set role regress_rls_alice; +select rls_f(c) from test_t order by rls_f; +ERROR: query would be affected by row-level security policy for table "rls_t" +CONTEXT: SQL function "rls_f" statement 1 +reset role; +set plan_cache_mode to force_generic_plan; +-- Table owner bypasses RLS, although cached plan will be invalidated +select rls_f(c) from test_t order by rls_f; + rls_f +------------- + aoffa,b,c,d + boffa,b,c,d +(2 rows) + +-- For other users, changes in row_security setting +-- should lead to plan invalidation and RLS error during query rewrite +set role regress_rls_alice; +select rls_f(c) from test_t order by rls_f; +ERROR: query would be affected by row-level security policy for table "rls_t" +CONTEXT: SQL function "rls_f" statement 1 +reset role; +reset plan_cache_mode; +reset rls_test.blah; +drop function rls_f(text); +drop table rls_t, test_t; -- -- Clean up objects -- diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index d9533deb04e89..6cf828ca8d0dc 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -1490,12 +1490,13 @@ pg_replication_slots| SELECT l.slot_name, l.wal_status, l.safe_wal_size, l.two_phase, + l.two_phase_at, l.inactive_since, l.conflicting, l.invalidation_reason, l.failover, l.synced - FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, temporary, active, active_pid, xmin, catalog_xmin, restart_lsn, confirmed_flush_lsn, wal_status, safe_wal_size, two_phase, inactive_since, conflicting, invalidation_reason, failover, synced) + FROM (pg_get_replication_slots() l(slot_name, plugin, slot_type, datoid, temporary, active, active_pid, xmin, catalog_xmin, restart_lsn, confirmed_flush_lsn, wal_status, safe_wal_size, two_phase, two_phase_at, inactive_since, conflicting, invalidation_reason, failover, synced) LEFT JOIN pg_database d ON ((l.datoid = d.oid))); pg_roles| SELECT pg_authid.rolname, pg_authid.rolsuper, @@ -1756,6 +1757,10 @@ pg_shmem_allocations| SELECT name, size, allocated_size FROM pg_get_shmem_allocations() pg_get_shmem_allocations(name, off, size, allocated_size); +pg_shmem_allocations_numa| SELECT name, + numa_node, + size + FROM pg_get_shmem_allocations_numa() pg_get_shmem_allocations_numa(name, numa_node, size); pg_stat_activity| SELECT s.datid, d.datname, s.pid, diff --git a/src/test/regress/expected/sqljson.out b/src/test/regress/expected/sqljson.out index eb320f003f576..625acf3019a38 100644 --- a/src/test/regress/expected/sqljson.out +++ b/src/test/regress/expected/sqljson.out @@ -751,6 +751,12 @@ SELECT JSON_ARRAY(SELECT i FROM (VALUES (3), (1), (NULL), (2)) foo(i) ORDER BY i [1, 2, 3] (1 row) +SELECT JSON_ARRAY(WITH x AS (SELECT 1) VALUES (TRUE)); + json_array +------------ + [true] +(1 row) + -- Should fail SELECT JSON_ARRAY(SELECT FROM (VALUES (1)) foo(i)); ERROR: subquery must return only one column @@ -833,22 +839,22 @@ SELECT FROM (VALUES (NULL), (3), (1), (NULL), (NULL), (5), (2), (4), (NULL)) foo(bar); -[ RECORD 1 ]--------------------+------------------------------------------------------------------------------------------------------------------------- -no_options | [1, 2, 3, 4, 5] -returning_jsonb | [1, 2, 3, 4, 5] -absent_on_null | [1, 2, 3, 4, 5] -absentonnull_returning_jsonb | [1, 2, 3, 4, 5] -null_on_null | [1, 2, 3, 4, 5, null, null, null, null] -nullonnull_returning_jsonb | [1, 2, 3, 4, 5, null, null, null, null] -row_no_options | [{"bar":1}, + - | {"bar":2}, + +no_options | [3, 1, 5, 2, 4] +returning_jsonb | [3, 1, 5, 2, 4] +absent_on_null | [3, 1, 5, 2, 4] +absentonnull_returning_jsonb | [3, 1, 5, 2, 4] +null_on_null | [null, 3, 1, null, null, 5, 2, 4, null] +nullonnull_returning_jsonb | [null, 3, 1, null, null, 5, 2, 4, null] +row_no_options | [{"bar":null}, + | {"bar":3}, + - | {"bar":4}, + - | {"bar":5}, + - | {"bar":null}, + + | {"bar":1}, + | {"bar":null}, + | {"bar":null}, + + | {"bar":5}, + + | {"bar":2}, + + | {"bar":4}, + | {"bar":null}] -row_returning_jsonb | [{"bar": 1}, {"bar": 2}, {"bar": 3}, {"bar": 4}, {"bar": 5}, {"bar": null}, {"bar": null}, {"bar": null}, {"bar": null}] +row_returning_jsonb | [{"bar": null}, {"bar": 3}, {"bar": 1}, {"bar": null}, {"bar": null}, {"bar": 5}, {"bar": 2}, {"bar": 4}, {"bar": null}] row_filtered_agg | [{"bar":3}, + | {"bar":4}, + | {"bar":5}] diff --git a/src/test/regress/expected/stats.out b/src/test/regress/expected/stats.out index cd08a2ca0af1e..776f1ad0e5347 100644 --- a/src/test/regress/expected/stats.out +++ b/src/test/regress/expected/stats.out @@ -1456,6 +1456,7 @@ SELECT :io_sum_wal_normal_after_writes > :io_sum_wal_normal_before_writes; (1 row) SELECT current_setting('fsync') = 'off' + OR current_setting('wal_sync_method') IN ('open_sync', 'open_datasync') OR :io_sum_wal_normal_after_fsyncs > :io_sum_wal_normal_before_fsyncs; ?column? ---------- diff --git a/src/test/regress/expected/stats_ext.out b/src/test/regress/expected/stats_ext.out index 686d8c93aa87f..6359e5fb689cb 100644 --- a/src/test/regress/expected/stats_ext.out +++ b/src/test/regress/expected/stats_ext.out @@ -3427,4 +3427,32 @@ SELECT * FROM sb_1 a, sb_2 b WHERE a.x = b.x AND a.y = b.y AND a.z = b.z; -> Seq Scan on sb_2 b (5 rows) +-- Check that the Hash Join bucket size estimator detects equal clauses correctly. +SET enable_nestloop = 'off'; +SET enable_mergejoin = 'off'; +EXPLAIN (COSTS OFF) +SELECT FROM sb_1 LEFT JOIN sb_2 ON (sb_2.x=sb_1.x) AND (sb_1.x=sb_2.x); + QUERY PLAN +-------------------------------------------------------- + Hash Left Join + Hash Cond: ((sb_1.x = sb_2.x) AND (sb_1.x = sb_2.x)) + -> Seq Scan on sb_1 + -> Hash + -> Seq Scan on sb_2 +(5 rows) + +EXPLAIN (COSTS OFF) +SELECT FROM sb_1 LEFT JOIN sb_2 + ON (sb_2.x=sb_1.x) AND (sb_1.x=sb_2.x) AND (sb_1.y=sb_2.y); + QUERY PLAN +------------------------------------------------------------------------------ + Hash Left Join + Hash Cond: ((sb_1.x = sb_2.x) AND (sb_1.y = sb_2.y) AND (sb_1.x = sb_2.x)) + -> Seq Scan on sb_1 + -> Hash + -> Seq Scan on sb_2 +(5 rows) + +RESET enable_nestloop; +RESET enable_mergejoin; DROP TABLE sb_1, sb_2 CASCADE; diff --git a/src/test/regress/expected/strings.out b/src/test/regress/expected/strings.out index dc485735aa450..174f0a68331bd 100644 --- a/src/test/regress/expected/strings.out +++ b/src/test/regress/expected/strings.out @@ -2330,6 +2330,30 @@ SELECT crc32c('The quick brown fox jumps over the lazy dog.'); 419469235 (1 row) +SELECT crc32c(repeat('A', 127)::bytea); + crc32c +----------- + 291820082 +(1 row) + +SELECT crc32c(repeat('A', 128)::bytea); + crc32c +----------- + 816091258 +(1 row) + +SELECT crc32c(repeat('A', 129)::bytea); + crc32c +------------ + 4213642571 +(1 row) + +SELECT crc32c(repeat('A', 800)::bytea); + crc32c +------------ + 3134039419 +(1 row) + -- -- encode/decode -- diff --git a/src/test/regress/expected/subselect.out b/src/test/regress/expected/subselect.out index d0db8a412ff0f..40d8056fcea40 100644 --- a/src/test/regress/expected/subselect.out +++ b/src/test/regress/expected/subselect.out @@ -2652,3 +2652,312 @@ ON B.hundred in (SELECT min(c.hundred) FROM tenk2 C WHERE c.odd = b.odd); Filter: (odd = b.odd) (16 rows) +-- +-- Test VALUES to ARRAY (VtA) transformation +-- +-- VtA transformation for joined VALUES is not supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek, (VALUES('RFAAAA'), ('VJAAAA')) AS v (i) + WHERE onek.stringu1 = v.i; + QUERY PLAN +------------------------------------------------------------- + Nested Loop + -> Values Scan on "*VALUES*" + -> Index Scan using onek_stringu1 on onek + Index Cond: (stringu1 = ("*VALUES*".column1)::text) +(4 rows) + +-- VtA transformation for a composite argument is not supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE (unique1,ten) IN (VALUES (1,1), (20,0), (99,9), (17,99)) + ORDER BY unique1; + QUERY PLAN +----------------------------------------------------------------- + Sort + Sort Key: onek.unique1 + -> Nested Loop + -> HashAggregate + Group Key: "*VALUES*".column1, "*VALUES*".column2 + -> Values Scan on "*VALUES*" + -> Index Scan using onek_unique1 on onek + Index Cond: (unique1 = "*VALUES*".column1) + Filter: ("*VALUES*".column2 = ten) +(9 rows) + +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (VALUES(10000), (2), (389), (1000), (2000), (10029)) + ORDER BY unique1; + QUERY PLAN +---------------------------------------------------------------------------------------- + Sort + Sort Key: unique1 + -> Bitmap Heap Scan on onek + Recheck Cond: (unique1 = ANY ('{10000,2,389,1000,2000,10029}'::integer[])) + -> Bitmap Index Scan on onek_unique1 + Index Cond: (unique1 = ANY ('{10000,2,389,1000,2000,10029}'::integer[])) +(6 rows) + +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (VALUES(1200), (1)); + QUERY PLAN +------------------------------------------------------------- + Bitmap Heap Scan on onek + Recheck Cond: (unique1 = ANY ('{1200,1}'::integer[])) + -> Bitmap Index Scan on onek_unique1 + Index Cond: (unique1 = ANY ('{1200,1}'::integer[])) +(4 rows) + +-- Recursive evaluation of constant queries is not yet supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (SELECT x * x FROM (VALUES(1200), (1)) AS x(x)); + QUERY PLAN +--------------------------------------------------------------------------- + Nested Loop + -> Unique + -> Sort + Sort Key: (("*VALUES*".column1 * "*VALUES*".column1)) + -> Values Scan on "*VALUES*" + -> Index Scan using onek_unique1 on onek + Index Cond: (unique1 = ("*VALUES*".column1 * "*VALUES*".column1)) +(7 rows) + +EXPLAIN (COSTS OFF) +SELECT unique1, stringu1 FROM onek WHERE stringu1::name IN (VALUES('RFAAAA'), ('VJAAAA')); + QUERY PLAN +------------------------------------------------------------------ + Bitmap Heap Scan on onek + Recheck Cond: (stringu1 = ANY ('{RFAAAA,VJAAAA}'::text[])) + -> Bitmap Index Scan on onek_stringu1 + Index Cond: (stringu1 = ANY ('{RFAAAA,VJAAAA}'::text[])) +(4 rows) + +EXPLAIN (COSTS OFF) +SELECT unique1, stringu1 FROM onek WHERE stringu1::text IN (VALUES('RFAAAA'), ('VJAAAA')); + QUERY PLAN +---------------------------------------------------------------- + Seq Scan on onek + Filter: ((stringu1)::text = ANY ('{RFAAAA,VJAAAA}'::text[])) +(2 rows) + +EXPLAIN (COSTS OFF) +SELECT * from onek WHERE unique1 in (VALUES(1200::bigint), (1)); + QUERY PLAN +------------------------------------------------------------ + Bitmap Heap Scan on onek + Recheck Cond: (unique1 = ANY ('{1200,1}'::bigint[])) + -> Bitmap Index Scan on onek_unique1 + Index Cond: (unique1 = ANY ('{1200,1}'::bigint[])) +(4 rows) + +-- VtA shouldn't depend on the side of the join probing with the VALUES expression. +EXPLAIN (COSTS OFF) +SELECT c.unique1,c.ten FROM tenk1 c JOIN onek a USING (ten) +WHERE a.ten IN (VALUES (1), (2)); + QUERY PLAN +-------------------------------------------------- + Hash Join + Hash Cond: (a.ten = c.ten) + -> Seq Scan on onek a + Filter: (ten = ANY ('{1,2}'::integer[])) + -> Hash + -> Seq Scan on tenk1 c +(6 rows) + +EXPLAIN (COSTS OFF) +SELECT c.unique1,c.ten FROM tenk1 c JOIN onek a USING (ten) +WHERE c.ten IN (VALUES (1), (2)); + QUERY PLAN +-------------------------------------------------- + Hash Join + Hash Cond: (c.ten = a.ten) + -> Seq Scan on tenk1 c + Filter: (ten = ANY ('{1,2}'::integer[])) + -> Hash + -> Seq Scan on onek a +(6 rows) + +-- Constant expressions are simplified +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE sin(two ) +four IN (VALUES (sin(0.5)), (2)); + QUERY PLAN +--------------------------------------------------------------------------------------------------------------------------- + Seq Scan on onek + Filter: ((sin((two)::double precision) + (four)::double precision) = ANY ('{0.479425538604203,2}'::double precision[])) +(2 rows) + +EXPLAIN (COSTS OFF) +-- VtA allows NULLs in the list +SELECT ten FROM onek WHERE sin(two)+four IN (VALUES (sin(0.5)), (NULL), (2)); + QUERY PLAN +-------------------------------------------------------------------------------------------------------------------------------- + Seq Scan on onek + Filter: ((sin((two)::double precision) + (four)::double precision) = ANY ('{0.479425538604203,NULL,2}'::double precision[])) +(2 rows) + +-- VtA is supported for custom plans where params are substituted with +-- constants. VtA is not supported with generic plans where params prevent +-- us from building a constant array. +PREPARE test (int, numeric, text) AS + SELECT ten FROM onek WHERE sin(two) * four / ($3::real) IN (VALUES (sin($2)), (2), ($1)); +EXPLAIN (COSTS OFF) EXECUTE test(42, 3.14, '-1.5'); + QUERY PLAN +--------------------------------------------------------------------------------------------------------------------------------------------------- + Seq Scan on onek + Filter: (((sin((two)::double precision) * (four)::double precision) / '-1.5'::real) = ANY ('{0.0015926529164868282,2,42}'::double precision[])) +(2 rows) + +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, NULL); + QUERY PLAN +-------------------------- + Result + One-Time Filter: false +(2 rows) + +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, '-1.5'); + QUERY PLAN +----------------------------------------------------------------------------------------------------------------------------------------------------- + Seq Scan on onek + Filter: (((sin((two)::double precision) * (four)::double precision) / '-1.5'::real) = ANY ('{0.0015926529164868282,2,NULL}'::double precision[])) +(2 rows) + +SET plan_cache_mode = 'force_generic_plan'; +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, '-1.5'); + QUERY PLAN +------------------------------------------------------------------------------------------------------------------------ + Hash Semi Join + Hash Cond: (((sin((onek.two)::double precision) * (onek.four)::double precision) / ($3)::real) = "*VALUES*".column1) + -> Seq Scan on onek + -> Hash + -> Values Scan on "*VALUES*" +(5 rows) + +RESET plan_cache_mode; +-- VtA doesn't support LIMIT, OFFSET, and ORDER BY clauses +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) OFFSET 1); + QUERY PLAN +---------------------------------------------------- + Nested Loop + -> HashAggregate + Group Key: "*VALUES*".column1 + -> Limit + -> Values Scan on "*VALUES*" + -> Index Scan using onek_unique1 on onek + Index Cond: (unique1 = "*VALUES*".column1) +(7 rows) + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) ORDER BY 1); + QUERY PLAN +---------------------------------------------------- + Nested Loop + -> Unique + -> Sort + Sort Key: "*VALUES*".column1 + -> Sort + Sort Key: "*VALUES*".column1 + -> Values Scan on "*VALUES*" + -> Index Scan using onek_unique1 on onek + Index Cond: (unique1 = "*VALUES*".column1) +(9 rows) + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) LIMIT 1); + QUERY PLAN +---------------------------------------------------- + Nested Loop + -> HashAggregate + Group Key: "*VALUES*".column1 + -> Limit + -> Values Scan on "*VALUES*" + -> Index Scan using onek_unique1 on onek + Index Cond: (unique1 = "*VALUES*".column1) +(7 rows) + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t +WHERE unique1 IN (VALUES (0), ((2 IN (SELECT unique2 FROM onek c + WHERE c.unique2 = t.unique1))::integer)); + QUERY PLAN +------------------------------------------------------------ + Nested Loop Semi Join + -> Seq Scan on onek t + -> Values Scan on "*VALUES*" + Filter: (t.unique1 = column1) + SubPlan 1 + -> Index Only Scan using onek_unique2 on onek c + Index Cond: (unique2 = t.unique1) +(7 rows) + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t +WHERE unique1 IN (VALUES (0), ((2 IN (SELECT unique2 FROM onek c + WHERE c.unique2 IN (VALUES (sin(0.5)), (2))))::integer)); + QUERY PLAN +----------------------------------------------------------------------------------------------------------------------- + Nested Loop + -> Unique + -> Sort + Sort Key: "*VALUES*".column1 + -> Values Scan on "*VALUES*" + SubPlan 1 + -> Index Only Scan using onek_unique2 on onek c + Filter: ((unique2)::double precision = ANY ('{0.479425538604203,2}'::double precision[])) + -> Index Scan using onek_unique1 on onek t + Index Cond: (unique1 = "*VALUES*".column1) +(10 rows) + +-- VtA is not allowed with subqueries +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE unique1 IN (VALUES (0), ((2 IN + (SELECT (3)))::integer) +); + QUERY PLAN +---------------------------------------------------- + Nested Loop + -> Unique + -> Sort + Sort Key: "*VALUES*".column1 + -> Values Scan on "*VALUES*" + SubPlan 1 + -> Result + -> Index Scan using onek_unique1 on onek t + Index Cond: (unique1 = "*VALUES*".column1) +(9 rows) + +-- VtA is not allowed with non-constant expressions +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE unique1 IN (VALUES (0), (unique2)); + QUERY PLAN +--------------------------------------- + Nested Loop Semi Join + -> Seq Scan on onek t + -> Values Scan on "*VALUES*" + Filter: (t.unique1 = column1) +(4 rows) + +EXPLAIN (COSTS OFF) +SELECT * FROM onek t1, lateral (SELECT * FROM onek t2 WHERE t2.ten IN (values (t1.ten), (1))); + QUERY PLAN +-------------------------------------------------- + Nested Loop + -> Seq Scan on onek t1 + -> Hash Semi Join + Hash Cond: (t2.ten = "*VALUES*".column1) + -> Seq Scan on onek t2 + -> Hash + -> Values Scan on "*VALUES*" +(7 rows) + +-- VtA causes the whole expression to be evaluated as a constant +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE 1.0::integer IN ((VALUES (1), (3))); + QUERY PLAN +-------------------- + Seq Scan on onek t +(1 row) + diff --git a/src/test/regress/expected/test_setup.out b/src/test/regress/expected/test_setup.out index 3d0eeec996038..93a4c2691c191 100644 --- a/src/test/regress/expected/test_setup.out +++ b/src/test/regress/expected/test_setup.out @@ -205,10 +205,6 @@ CREATE FUNCTION binary_coercible(oid, oid) RETURNS bool AS :'regresslib', 'binary_coercible' LANGUAGE C STRICT STABLE PARALLEL SAFE; -CREATE FUNCTION ttdummy () - RETURNS trigger - AS :'regresslib' - LANGUAGE C; -- Use hand-rolled hash functions and operator classes to get predictable -- result on different machines. The hash function for int4 simply returns -- the sum of the values passed to it and the one for text returns the length diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out index 247c67c32aed3..f245d7f154924 100644 --- a/src/test/regress/expected/triggers.out +++ b/src/test/regress/expected/triggers.out @@ -4,147 +4,11 @@ -- directory paths and dlsuffix are passed to us in environment variables \getenv libdir PG_LIBDIR \getenv dlsuffix PG_DLSUFFIX -\set autoinclib :libdir '/autoinc' :dlsuffix -\set refintlib :libdir '/refint' :dlsuffix \set regresslib :libdir '/regress' :dlsuffix -CREATE FUNCTION autoinc () - RETURNS trigger - AS :'autoinclib' - LANGUAGE C; -CREATE FUNCTION check_primary_key () - RETURNS trigger - AS :'refintlib' - LANGUAGE C; -CREATE FUNCTION check_foreign_key () - RETURNS trigger - AS :'refintlib' - LANGUAGE C; CREATE FUNCTION trigger_return_old () RETURNS trigger AS :'regresslib' LANGUAGE C; -CREATE FUNCTION set_ttdummy (int4) - RETURNS int4 - AS :'regresslib' - LANGUAGE C STRICT; -create table pkeys (pkey1 int4 not null, pkey2 text not null); -create table fkeys (fkey1 int4, fkey2 text, fkey3 int); -create table fkeys2 (fkey21 int4, fkey22 text, pkey23 int not null); -create index fkeys_i on fkeys (fkey1, fkey2); -create index fkeys2_i on fkeys2 (fkey21, fkey22); -create index fkeys2p_i on fkeys2 (pkey23); -insert into pkeys values (10, '1'); -insert into pkeys values (20, '2'); -insert into pkeys values (30, '3'); -insert into pkeys values (40, '4'); -insert into pkeys values (50, '5'); -insert into pkeys values (60, '6'); -create unique index pkeys_i on pkeys (pkey1, pkey2); --- --- For fkeys: --- (fkey1, fkey2) --> pkeys (pkey1, pkey2) --- (fkey3) --> fkeys2 (pkey23) --- -create trigger check_fkeys_pkey_exist - before insert or update on fkeys - for each row - execute function - check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2'); -create trigger check_fkeys_pkey2_exist - before insert or update on fkeys - for each row - execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23'); --- --- For fkeys2: --- (fkey21, fkey22) --> pkeys (pkey1, pkey2) --- -create trigger check_fkeys2_pkey_exist - before insert or update on fkeys2 - for each row - execute procedure - check_primary_key ('fkey21', 'fkey22', 'pkeys', 'pkey1', 'pkey2'); --- Test comments -COMMENT ON TRIGGER check_fkeys2_pkey_bad ON fkeys2 IS 'wrong'; -ERROR: trigger "check_fkeys2_pkey_bad" for table "fkeys2" does not exist -COMMENT ON TRIGGER check_fkeys2_pkey_exist ON fkeys2 IS 'right'; -COMMENT ON TRIGGER check_fkeys2_pkey_exist ON fkeys2 IS NULL; --- --- For pkeys: --- ON DELETE/UPDATE (pkey1, pkey2) CASCADE: --- fkeys (fkey1, fkey2) and fkeys2 (fkey21, fkey22) --- -create trigger check_pkeys_fkey_cascade - before delete or update on pkeys - for each row - execute procedure - check_foreign_key (2, 'cascade', 'pkey1', 'pkey2', - 'fkeys', 'fkey1', 'fkey2', 'fkeys2', 'fkey21', 'fkey22'); --- --- For fkeys2: --- ON DELETE/UPDATE (pkey23) RESTRICT: --- fkeys (fkey3) --- -create trigger check_fkeys2_fkey_restrict - before delete or update on fkeys2 - for each row - execute procedure check_foreign_key (1, 'restrict', 'pkey23', 'fkeys', 'fkey3'); -insert into fkeys2 values (10, '1', 1); -insert into fkeys2 values (30, '3', 2); -insert into fkeys2 values (40, '4', 5); -insert into fkeys2 values (50, '5', 3); --- no key in pkeys -insert into fkeys2 values (70, '5', 3); -ERROR: tuple references non-existent key -DETAIL: Trigger "check_fkeys2_pkey_exist" found tuple referencing non-existent key in "pkeys". -insert into fkeys values (10, '1', 2); -insert into fkeys values (30, '3', 3); -insert into fkeys values (40, '4', 2); -insert into fkeys values (50, '5', 2); --- no key in pkeys -insert into fkeys values (70, '5', 1); -ERROR: tuple references non-existent key -DETAIL: Trigger "check_fkeys_pkey_exist" found tuple referencing non-existent key in "pkeys". --- no key in fkeys2 -insert into fkeys values (60, '6', 4); -ERROR: tuple references non-existent key -DETAIL: Trigger "check_fkeys_pkey2_exist" found tuple referencing non-existent key in "fkeys2". -delete from pkeys where pkey1 = 30 and pkey2 = '3'; -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -ERROR: "check_fkeys2_fkey_restrict": tuple is referenced in "fkeys" -CONTEXT: SQL statement "delete from fkeys2 where fkey21 = $1 and fkey22 = $2 " -delete from pkeys where pkey1 = 40 and pkey2 = '4'; -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted -update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -ERROR: "check_fkeys2_fkey_restrict": tuple is referenced in "fkeys" -CONTEXT: SQL statement "delete from fkeys2 where fkey21 = $1 and fkey22 = $2 " -update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys are deleted -NOTICE: check_pkeys_fkey_cascade: 1 tuple(s) of fkeys2 are deleted -SELECT trigger_name, event_manipulation, event_object_schema, event_object_table, - action_order, action_condition, action_orientation, action_timing, - action_reference_old_table, action_reference_new_table - FROM information_schema.triggers - WHERE event_object_table in ('pkeys', 'fkeys', 'fkeys2') - ORDER BY trigger_name COLLATE "C", 2; - trigger_name | event_manipulation | event_object_schema | event_object_table | action_order | action_condition | action_orientation | action_timing | action_reference_old_table | action_reference_new_table -----------------------------+--------------------+---------------------+--------------------+--------------+------------------+--------------------+---------------+----------------------------+---------------------------- - check_fkeys2_fkey_restrict | DELETE | public | fkeys2 | 1 | | ROW | BEFORE | | - check_fkeys2_fkey_restrict | UPDATE | public | fkeys2 | 1 | | ROW | BEFORE | | - check_fkeys2_pkey_exist | INSERT | public | fkeys2 | 1 | | ROW | BEFORE | | - check_fkeys2_pkey_exist | UPDATE | public | fkeys2 | 2 | | ROW | BEFORE | | - check_fkeys_pkey2_exist | INSERT | public | fkeys | 1 | | ROW | BEFORE | | - check_fkeys_pkey2_exist | UPDATE | public | fkeys | 1 | | ROW | BEFORE | | - check_fkeys_pkey_exist | INSERT | public | fkeys | 2 | | ROW | BEFORE | | - check_fkeys_pkey_exist | UPDATE | public | fkeys | 2 | | ROW | BEFORE | | - check_pkeys_fkey_cascade | DELETE | public | pkeys | 1 | | ROW | BEFORE | | - check_pkeys_fkey_cascade | UPDATE | public | pkeys | 1 | | ROW | BEFORE | | -(10 rows) - -DROP TABLE pkeys; -DROP TABLE fkeys; -DROP TABLE fkeys2; -- Check behavior when trigger returns unmodified trigtuple create table trigtest (f1 int, f2 text); create trigger trigger_return_old @@ -295,143 +159,6 @@ select * from trigtest; (1 row) drop table trigtest; -create sequence ttdummy_seq increment 10 start 0 minvalue 0; -create table tttest ( - price_id int4, - price_val int4, - price_on int4, - price_off int4 default 999999 -); -create trigger ttdummy - before delete or update on tttest - for each row - execute procedure - ttdummy (price_on, price_off); -create trigger ttserial - before insert or update on tttest - for each row - execute procedure - autoinc (price_on, ttdummy_seq); -insert into tttest values (1, 1, null); -insert into tttest values (2, 2, null); -insert into tttest values (3, 3, 0); -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 999999 - 3 | 3 | 30 | 999999 -(3 rows) - -delete from tttest where price_id = 2; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 3 | 3 | 30 | 999999 - 2 | 2 | 20 | 40 -(3 rows) - --- what do we see ? --- get current prices -select * from tttest where price_off = 999999; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 3 | 3 | 30 | 999999 -(2 rows) - --- change price for price_id == 3 -update tttest set price_val = 30 where price_id = 3; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 30 | 50 | 999999 - 3 | 3 | 30 | 50 -(4 rows) - --- now we want to change pric_id in ALL tuples --- this gets us not what we need -update tttest set price_id = 5 where price_id = 3; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 3 | 30 | 50 - 5 | 30 | 60 | 999999 - 3 | 30 | 50 | 60 -(5 rows) - --- restore data as before last update: -select set_ttdummy(0); - set_ttdummy -------------- - 1 -(1 row) - -delete from tttest where price_id = 5; -update tttest set price_off = 999999 where price_val = 30; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 3 | 3 | 30 | 50 - 3 | 30 | 50 | 999999 -(4 rows) - --- and try change price_id now! -update tttest set price_id = 5 where price_id = 3; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 1 | 1 | 10 | 999999 - 2 | 2 | 20 | 40 - 5 | 3 | 30 | 50 - 5 | 30 | 50 | 999999 -(4 rows) - --- isn't it what we need ? -select set_ttdummy(1); - set_ttdummy -------------- - 0 -(1 row) - --- we want to correct some "date" -update tttest set price_on = -1 where price_id = 1; -ERROR: ttdummy (tttest): you cannot change price_on and/or price_off columns (use set_ttdummy) --- but this doesn't work --- try in this way -select set_ttdummy(0); - set_ttdummy -------------- - 1 -(1 row) - -update tttest set price_on = -1 where price_id = 1; -select * from tttest; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 2 | 2 | 20 | 40 - 5 | 3 | 30 | 50 - 5 | 30 | 50 | 999999 - 1 | 1 | -1 | 999999 -(4 rows) - --- isn't it what we need ? --- get price for price_id == 5 as it was @ "date" 35 -select * from tttest where price_on <= 35 and price_off > 35 and price_id = 5; - price_id | price_val | price_on | price_off -----------+-----------+----------+----------- - 5 | 3 | 30 | 50 -(1 row) - -drop table tttest; -drop sequence ttdummy_seq; -- -- tests for per-statement triggers -- @@ -494,6 +221,11 @@ SELECT * FROM main_table ORDER BY a, b; | (8 rows) +-- Test comments +COMMENT ON TRIGGER no_such_trigger ON main_table IS 'wrong'; +ERROR: trigger "no_such_trigger" for table "main_table" does not exist +COMMENT ON TRIGGER before_ins_stmt_trig ON main_table IS 'right'; +COMMENT ON TRIGGER before_ins_stmt_trig ON main_table IS NULL; -- -- test triggers with WHEN clause -- @@ -2796,11 +2528,13 @@ select tgrelid::regclass, rtrim(tgname, '0123456789') as tgname, ---------+-------------------------+------------------------+----------- child1 | RI_ConstraintTrigger_c_ | "RI_FKey_check_ins" | O child1 | RI_ConstraintTrigger_c_ | "RI_FKey_check_upd" | O + child1 | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_del" | O + child1 | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_upd" | O parent | RI_ConstraintTrigger_c_ | "RI_FKey_check_ins" | O parent | RI_ConstraintTrigger_c_ | "RI_FKey_check_upd" | O parent | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_del" | O parent | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_upd" | O -(6 rows) +(8 rows) alter table parent disable trigger all; select tgrelid::regclass, rtrim(tgname, '0123456789') as tgname, @@ -2811,11 +2545,13 @@ select tgrelid::regclass, rtrim(tgname, '0123456789') as tgname, ---------+-------------------------+------------------------+----------- child1 | RI_ConstraintTrigger_c_ | "RI_FKey_check_ins" | D child1 | RI_ConstraintTrigger_c_ | "RI_FKey_check_upd" | D + child1 | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_del" | D + child1 | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_upd" | D parent | RI_ConstraintTrigger_c_ | "RI_FKey_check_ins" | D parent | RI_ConstraintTrigger_c_ | "RI_FKey_check_upd" | D parent | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_del" | D parent | RI_ConstraintTrigger_a_ | "RI_FKey_noaction_upd" | D -(6 rows) +(8 rows) drop table parent, child1; -- Verify that firing state propagates correctly on creation, too diff --git a/src/test/regress/expected/type_sanity.out b/src/test/regress/expected/type_sanity.out index 8eff3d10d2798..dd0c52ab08b50 100644 --- a/src/test/regress/expected/type_sanity.out +++ b/src/test/regress/expected/type_sanity.out @@ -11,6 +11,10 @@ -- that is OID or REGPROC fields that are not zero and do not match some -- row in the linked-to table. However, if we want to enforce that a link -- field can't be 0, we have to check it here. +-- directory paths and dlsuffix are passed to us in environment variables +\getenv libdir PG_LIBDIR +\getenv dlsuffix PG_DLSUFFIX +\set regresslib :libdir '/regress' :dlsuffix -- **************** pg_type **************** -- Look for illegal values in pg_type fields. SELECT t1.oid, t1.typname @@ -587,6 +591,21 @@ WHERE a1.atttypid = t1.oid AND ----------+---------+-----+--------- (0 rows) +-- Look for IsCatalogTextUniqueIndexOid() omissions. +CREATE FUNCTION is_catalog_text_unique_index_oid(oid) RETURNS bool + AS :'regresslib', 'is_catalog_text_unique_index_oid' + LANGUAGE C STRICT; +SELECT indexrelid::regclass +FROM pg_index +WHERE (is_catalog_text_unique_index_oid(indexrelid) <> + (indisunique AND + indexrelid < 16384 AND + EXISTS (SELECT 1 FROM pg_attribute + WHERE attrelid = indexrelid AND atttypid = 'text'::regtype))); + indexrelid +------------ +(0 rows) + -- **************** pg_range **************** -- Look for illegal values in pg_range fields. SELECT r.rngtypid, r.rngsubtype diff --git a/src/test/regress/expected/with.out b/src/test/regress/expected/with.out index 7a51e2eb75799..26c8850514007 100644 --- a/src/test/regress/expected/with.out +++ b/src/test/regress/expected/with.out @@ -2104,6 +2104,14 @@ WITH RECURSIVE x(n) AS ( ERROR: ORDER BY in a recursive query is not implemented LINE 3: ORDER BY (SELECT n FROM x)) ^ +-- and this +WITH RECURSIVE x(n) AS ( + WITH sub_cte AS (SELECT * FROM x) + DELETE FROM graph RETURNING f) + SELECT * FROM x; +ERROR: recursive query "x" must not contain data-modifying statements +LINE 1: WITH RECURSIVE x(n) AS ( + ^ CREATE TEMPORARY TABLE y (a INTEGER); INSERT INTO y SELECT generate_series(1, 10); -- LEFT JOIN diff --git a/src/test/regress/expected/without_overlaps.out b/src/test/regress/expected/without_overlaps.out index e38472079ccee..ea607bed0a412 100644 --- a/src/test/regress/expected/without_overlaps.out +++ b/src/test/regress/expected/without_overlaps.out @@ -2319,7 +2319,7 @@ UPDATE temporal_partitioned_rng SET valid_at = daterange('2016-02-01', '2016-03- -- should fail: UPDATE temporal_partitioned_rng SET valid_at = daterange('2016-01-01', '2016-02-01') WHERE id = '[5,6)' AND valid_at = daterange('2018-01-01', '2018-02-01'); -ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_rng2rng_parent_id_valid_at_fkey" on table "temporal_partitioned_fk_rng2rng" +ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_rng2rng_fk_1" on table "temporal_partitioned_fk_rng2rng" DETAIL: Key (id, valid_at)=([5,6), [2018-01-01,2018-02-01)) is still referenced from table "temporal_partitioned_fk_rng2rng". -- -- partitioned FK referenced deletes NO ACTION @@ -2331,7 +2331,7 @@ INSERT INTO temporal_partitioned_fk_rng2rng (id, valid_at, parent_id) VALUES ('[ DELETE FROM temporal_partitioned_rng WHERE id = '[5,6)' AND valid_at = daterange('2018-02-01', '2018-03-01'); -- should fail: DELETE FROM temporal_partitioned_rng WHERE id = '[5,6)' AND valid_at = daterange('2018-01-01', '2018-02-01'); -ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_rng2rng_parent_id_valid_at_fkey" on table "temporal_partitioned_fk_rng2rng" +ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_rng2rng_fk_1" on table "temporal_partitioned_fk_rng2rng" DETAIL: Key (id, valid_at)=([5,6), [2018-01-01,2018-02-01)) is still referenced from table "temporal_partitioned_fk_rng2rng". -- -- partitioned FK referenced updates CASCADE @@ -2441,7 +2441,7 @@ UPDATE temporal_partitioned_mltrng SET valid_at = datemultirange(daterange('2016 -- should fail: UPDATE temporal_partitioned_mltrng SET valid_at = datemultirange(daterange('2016-01-01', '2016-02-01')) WHERE id = '[5,6)' AND valid_at = datemultirange(daterange('2018-01-01', '2018-02-01')); -ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_mltrng2mltrng_parent_id_valid_at_fkey1" on table "temporal_partitioned_fk_mltrng2mltrng" +ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_mltrng2mltrng_fk_2" on table "temporal_partitioned_fk_mltrng2mltrng" DETAIL: Key (id, valid_at)=([5,6), {[2018-01-01,2018-02-01)}) is still referenced from table "temporal_partitioned_fk_mltrng2mltrng". -- -- partitioned FK referenced deletes NO ACTION @@ -2453,7 +2453,7 @@ INSERT INTO temporal_partitioned_fk_mltrng2mltrng (id, valid_at, parent_id) VALU DELETE FROM temporal_partitioned_mltrng WHERE id = '[5,6)' AND valid_at = datemultirange(daterange('2018-02-01', '2018-03-01')); -- should fail: DELETE FROM temporal_partitioned_mltrng WHERE id = '[5,6)' AND valid_at = datemultirange(daterange('2018-01-01', '2018-02-01')); -ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_mltrng2mltrng_parent_id_valid_at_fkey1" on table "temporal_partitioned_fk_mltrng2mltrng" +ERROR: update or delete on table "tp1" violates foreign key constraint "temporal_partitioned_fk_mltrng2mltrng_fk_2" on table "temporal_partitioned_fk_mltrng2mltrng" DETAIL: Key (id, valid_at)=([5,6), {[2018-01-01,2018-02-01)}) is still referenced from table "temporal_partitioned_fk_mltrng2mltrng". -- -- partitioned FK referenced updates CASCADE diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out index bcc743f485180..103a22a3b1d3c 100644 --- a/src/test/regress/expected/xml.out +++ b/src/test/regress/expected/xml.out @@ -1373,6 +1373,10 @@ EXPLAIN (COSTS OFF, VERBOSE) SELECT * FROM xmltableview1; -- errors SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp) AS f (v1, v2); ERROR: XMLTABLE function has 1 columns available but 2 columns specified +SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_not_null 1) AS f (v1); +ERROR: option name "__pg__is_not_null" cannot be used in XMLTABLE +LINE 1: ...MLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_n... + ^ -- XMLNAMESPACES tests SELECT * FROM XMLTABLE(XMLNAMESPACES('http://x.y' AS zz), '/zz:rows/zz:row' diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out index a1c5d314171f6..73c411118a390 100644 --- a/src/test/regress/expected/xml_1.out +++ b/src/test/regress/expected/xml_1.out @@ -1047,6 +1047,10 @@ EXPLAIN (COSTS OFF, VERBOSE) SELECT * FROM xmltableview1; -- errors SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp) AS f (v1, v2); ERROR: XMLTABLE function has 1 columns available but 2 columns specified +SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_not_null 1) AS f (v1); +ERROR: option name "__pg__is_not_null" cannot be used in XMLTABLE +LINE 1: ...MLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_n... + ^ -- XMLNAMESPACES tests SELECT * FROM XMLTABLE(XMLNAMESPACES('http://x.y' AS zz), '/zz:rows/zz:row' diff --git a/src/test/regress/expected/xml_2.out b/src/test/regress/expected/xml_2.out index 045641dae6491..a85d95358d901 100644 --- a/src/test/regress/expected/xml_2.out +++ b/src/test/regress/expected/xml_2.out @@ -1359,6 +1359,10 @@ EXPLAIN (COSTS OFF, VERBOSE) SELECT * FROM xmltableview1; -- errors SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp) AS f (v1, v2); ERROR: XMLTABLE function has 1 columns available but 2 columns specified +SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_not_null 1) AS f (v1); +ERROR: option name "__pg__is_not_null" cannot be used in XMLTABLE +LINE 1: ...MLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_n... + ^ -- XMLNAMESPACES tests SELECT * FROM XMLTABLE(XMLNAMESPACES('http://x.y' AS zz), '/zz:rows/zz:row' diff --git a/src/test/regress/meson.build b/src/test/regress/meson.build index 87b26b4f7ff3e..1da9e9462a9af 100644 --- a/src/test/regress/meson.build +++ b/src/test/regress/meson.build @@ -43,23 +43,6 @@ regress_module = shared_module('regress', ) test_install_libs += regress_module -# Get some extra C modules from contrib/spi but mark them as not to be -# installed. -# FIXME: avoid the duplication. - -autoinc_regress = shared_module('autoinc', - ['../../../contrib/spi/autoinc.c'], - kwargs: pg_test_mod_args, -) -test_install_libs += autoinc_regress - -refint_regress = shared_module('refint', - ['../../../contrib/spi/refint.c'], - c_args: refint_cflags, - kwargs: pg_test_mod_args, -) -test_install_libs += refint_regress - tests += { 'name': 'regress', diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule index 0a35f2f8f6a93..a424be2a6bf0f 100644 --- a/src/test/regress/parallel_schedule +++ b/src/test/regress/parallel_schedule @@ -91,6 +91,10 @@ test: select_parallel test: write_parallel test: vacuum_parallel +# Run this alone, because concurrent DROP TABLE would make non-superuser +# "ANALYZE;" fail with "relation with OID $n does not exist". +test: maintain_every + # no relation related tests can be put in this group test: publication subscription @@ -119,7 +123,7 @@ test: plancache limit plpgsql copy2 temp domain rangefuncs prepare conversion tr # The stats test resets stats, so nothing else needing stats access can be in # this group. # ---------- -test: partition_join partition_prune reloptions hash_part indexing partition_aggregate partition_info tuplesort explain compression memoize stats predicate +test: partition_join partition_prune reloptions hash_part indexing partition_aggregate partition_info tuplesort explain compression memoize stats predicate numa # event_trigger depends on create_am and cannot run concurrently with # any test that runs DDL diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index 0bc0a9221de86..3dbba06902405 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -21,6 +21,7 @@ #include "access/detoast.h" #include "access/htup_details.h" +#include "catalog/catalog.h" #include "catalog/namespace.h" #include "catalog/pg_operator.h" #include "catalog/pg_type.h" @@ -266,226 +267,6 @@ trigger_return_old(PG_FUNCTION_ARGS) return PointerGetDatum(tuple); } -#define TTDUMMY_INFINITY 999999 - -static SPIPlanPtr splan = NULL; -static bool ttoff = false; - -PG_FUNCTION_INFO_V1(ttdummy); - -Datum -ttdummy(PG_FUNCTION_ARGS) -{ - TriggerData *trigdata = (TriggerData *) fcinfo->context; - Trigger *trigger; /* to get trigger name */ - char **args; /* arguments */ - int attnum[2]; /* fnumbers of start/stop columns */ - Datum oldon, - oldoff; - Datum newon, - newoff; - Datum *cvals; /* column values */ - char *cnulls; /* column nulls */ - char *relname; /* triggered relation name */ - Relation rel; /* triggered relation */ - HeapTuple trigtuple; - HeapTuple newtuple = NULL; - HeapTuple rettuple; - TupleDesc tupdesc; /* tuple description */ - int natts; /* # of attributes */ - bool isnull; /* to know is some column NULL or not */ - int ret; - int i; - - if (!CALLED_AS_TRIGGER(fcinfo)) - elog(ERROR, "ttdummy: not fired by trigger manager"); - if (!TRIGGER_FIRED_FOR_ROW(trigdata->tg_event)) - elog(ERROR, "ttdummy: must be fired for row"); - if (!TRIGGER_FIRED_BEFORE(trigdata->tg_event)) - elog(ERROR, "ttdummy: must be fired before event"); - if (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event)) - elog(ERROR, "ttdummy: cannot process INSERT event"); - if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event)) - newtuple = trigdata->tg_newtuple; - - trigtuple = trigdata->tg_trigtuple; - - rel = trigdata->tg_relation; - relname = SPI_getrelname(rel); - - /* check if TT is OFF for this relation */ - if (ttoff) /* OFF - nothing to do */ - { - pfree(relname); - return PointerGetDatum((newtuple != NULL) ? newtuple : trigtuple); - } - - trigger = trigdata->tg_trigger; - - if (trigger->tgnargs != 2) - elog(ERROR, "ttdummy (%s): invalid (!= 2) number of arguments %d", - relname, trigger->tgnargs); - - args = trigger->tgargs; - tupdesc = rel->rd_att; - natts = tupdesc->natts; - - for (i = 0; i < 2; i++) - { - attnum[i] = SPI_fnumber(tupdesc, args[i]); - if (attnum[i] <= 0) - elog(ERROR, "ttdummy (%s): there is no attribute %s", - relname, args[i]); - if (SPI_gettypeid(tupdesc, attnum[i]) != INT4OID) - elog(ERROR, "ttdummy (%s): attribute %s must be of integer type", - relname, args[i]); - } - - oldon = SPI_getbinval(trigtuple, tupdesc, attnum[0], &isnull); - if (isnull) - elog(ERROR, "ttdummy (%s): %s must be NOT NULL", relname, args[0]); - - oldoff = SPI_getbinval(trigtuple, tupdesc, attnum[1], &isnull); - if (isnull) - elog(ERROR, "ttdummy (%s): %s must be NOT NULL", relname, args[1]); - - if (newtuple != NULL) /* UPDATE */ - { - newon = SPI_getbinval(newtuple, tupdesc, attnum[0], &isnull); - if (isnull) - elog(ERROR, "ttdummy (%s): %s must be NOT NULL", relname, args[0]); - newoff = SPI_getbinval(newtuple, tupdesc, attnum[1], &isnull); - if (isnull) - elog(ERROR, "ttdummy (%s): %s must be NOT NULL", relname, args[1]); - - if (oldon != newon || oldoff != newoff) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("ttdummy (%s): you cannot change %s and/or %s columns (use set_ttdummy)", - relname, args[0], args[1]))); - - if (newoff != TTDUMMY_INFINITY) - { - pfree(relname); /* allocated in upper executor context */ - return PointerGetDatum(NULL); - } - } - else if (oldoff != TTDUMMY_INFINITY) /* DELETE */ - { - pfree(relname); - return PointerGetDatum(NULL); - } - - newoff = DirectFunctionCall1(nextval, CStringGetTextDatum("ttdummy_seq")); - /* nextval now returns int64; coerce down to int32 */ - newoff = Int32GetDatum((int32) DatumGetInt64(newoff)); - - /* Connect to SPI manager */ - SPI_connect(); - - /* Fetch tuple values and nulls */ - cvals = (Datum *) palloc(natts * sizeof(Datum)); - cnulls = (char *) palloc(natts * sizeof(char)); - for (i = 0; i < natts; i++) - { - cvals[i] = SPI_getbinval((newtuple != NULL) ? newtuple : trigtuple, - tupdesc, i + 1, &isnull); - cnulls[i] = (isnull) ? 'n' : ' '; - } - - /* change date column(s) */ - if (newtuple) /* UPDATE */ - { - cvals[attnum[0] - 1] = newoff; /* start_date eq current date */ - cnulls[attnum[0] - 1] = ' '; - cvals[attnum[1] - 1] = TTDUMMY_INFINITY; /* stop_date eq INFINITY */ - cnulls[attnum[1] - 1] = ' '; - } - else - /* DELETE */ - { - cvals[attnum[1] - 1] = newoff; /* stop_date eq current date */ - cnulls[attnum[1] - 1] = ' '; - } - - /* if there is no plan ... */ - if (splan == NULL) - { - SPIPlanPtr pplan; - Oid *ctypes; - char *query; - - /* allocate space in preparation */ - ctypes = (Oid *) palloc(natts * sizeof(Oid)); - query = (char *) palloc(100 + 16 * natts); - - /* - * Construct query: INSERT INTO _relation_ VALUES ($1, ...) - */ - sprintf(query, "INSERT INTO %s VALUES (", relname); - for (i = 1; i <= natts; i++) - { - sprintf(query + strlen(query), "$%d%s", - i, (i < natts) ? ", " : ")"); - ctypes[i - 1] = SPI_gettypeid(tupdesc, i); - } - - /* Prepare plan for query */ - pplan = SPI_prepare(query, natts, ctypes); - if (pplan == NULL) - elog(ERROR, "ttdummy (%s): SPI_prepare returned %s", relname, SPI_result_code_string(SPI_result)); - - if (SPI_keepplan(pplan)) - elog(ERROR, "ttdummy (%s): SPI_keepplan failed", relname); - - splan = pplan; - } - - ret = SPI_execp(splan, cvals, cnulls, 0); - - if (ret < 0) - elog(ERROR, "ttdummy (%s): SPI_execp returned %d", relname, ret); - - /* Tuple to return to upper Executor ... */ - if (newtuple) /* UPDATE */ - rettuple = SPI_modifytuple(rel, trigtuple, 1, &(attnum[1]), &newoff, NULL); - else /* DELETE */ - rettuple = trigtuple; - - SPI_finish(); /* don't forget say Bye to SPI mgr */ - - pfree(relname); - - return PointerGetDatum(rettuple); -} - -PG_FUNCTION_INFO_V1(set_ttdummy); - -Datum -set_ttdummy(PG_FUNCTION_ARGS) -{ - int32 on = PG_GETARG_INT32(0); - - if (ttoff) /* OFF currently */ - { - if (on == 0) - PG_RETURN_INT32(0); - - /* turn ON */ - ttoff = false; - PG_RETURN_INT32(0); - } - - /* ON currently */ - if (on != 0) - PG_RETURN_INT32(1); - - /* turn OFF */ - ttoff = true; - - PG_RETURN_INT32(1); -} - /* * Type int44 has no real-world use, but the regression tests use it @@ -942,6 +723,13 @@ test_fdw_handler(PG_FUNCTION_ARGS) PG_RETURN_NULL(); } +PG_FUNCTION_INFO_V1(is_catalog_text_unique_index_oid); +Datum +is_catalog_text_unique_index_oid(PG_FUNCTION_ARGS) +{ + return IsCatalogTextUniqueIndexOid(PG_GETARG_OID(0)); +} + PG_FUNCTION_INFO_V1(test_support_func); Datum test_support_func(PG_FUNCTION_ARGS) diff --git a/src/test/regress/sql/aggregates.sql b/src/test/regress/sql/aggregates.sql index 2c47a462b7e47..277b4b198ccc4 100644 --- a/src/test/regress/sql/aggregates.sql +++ b/src/test/regress/sql/aggregates.sql @@ -633,6 +633,25 @@ explain (costs off) select sum(two order by two) from tenk1; reset enable_presorted_aggregate; +-- +-- Test cases with FILTER clause +-- + +-- Ensure we presort when the aggregate contains plain Vars +explain (costs off) +select sum(two order by two) filter (where two > 1) from tenk1; + +-- Ensure we presort for RelabelType'd Vars +explain (costs off) +select string_agg(distinct f1, ',') filter (where length(f1) > 1) +from varchar_tbl; + +-- Ensure we don't presort when the aggregate's argument contains an +-- explicit cast. +explain (costs off) +select string_agg(distinct f1::varchar(2), ',') filter (where length(f1) > 1) +from varchar_tbl; + -- -- Test combinations of DISTINCT and/or ORDER BY -- diff --git a/src/test/regress/sql/alter_generic.sql b/src/test/regress/sql/alter_generic.sql index de58d268d310c..5e20dc63337c9 100644 --- a/src/test/regress/sql/alter_generic.sql +++ b/src/test/regress/sql/alter_generic.sql @@ -310,7 +310,7 @@ ALTER OPERATOR FAMILY alt_opf4 USING btree ADD OPERATOR 6 < (int4, int2); -- ope ALTER OPERATOR FAMILY alt_opf4 USING btree ADD OPERATOR 0 < (int4, int2); -- operator number should be between 1 and 5 ALTER OPERATOR FAMILY alt_opf4 USING btree ADD OPERATOR 1 < ; -- operator without argument types ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 0 btint42cmp(int4, int2); -- invalid options parsing function -ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 6 btint42cmp(int4, int2); -- function number should be between 1 and 5 +ALTER OPERATOR FAMILY alt_opf4 USING btree ADD FUNCTION 7 btint42cmp(int4, int2); -- function number should be between 1 and 6 ALTER OPERATOR FAMILY alt_opf4 USING btree ADD STORAGE invalid_storage; -- Ensure STORAGE is not a part of ALTER OPERATOR FAMILY DROP OPERATOR FAMILY alt_opf4 USING btree; @@ -444,6 +444,9 @@ ALTER OPERATOR FAMILY alt_opf18 USING btree ADD -- Should fail. Not allowed to have cross-type equalimage function. ALTER OPERATOR FAMILY alt_opf18 USING btree ADD FUNCTION 4 (int4, int2) btequalimage(oid); +-- Should fail. Not allowed to have cross-type skip support function. +ALTER OPERATOR FAMILY alt_opf18 USING btree + ADD FUNCTION 6 (int4, int2) btint4skipsupport(internal); ALTER OPERATOR FAMILY alt_opf18 USING btree DROP FUNCTION 2 (int4, int4); DROP OPERATOR FAMILY alt_opf18 USING btree; diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql index 84e93ef575ed5..5ce9d1e429f81 100644 --- a/src/test/regress/sql/alter_table.sql +++ b/src/test/regress/sql/alter_table.sql @@ -910,6 +910,20 @@ alter table atacc1 add constraint atacc1_constr_b_valid check(test_b is not null alter table atacc1 alter test_b set not null, alter test_a set not null; drop table atacc1; +-- not null not valid with partitions +CREATE TABLE atnnparted (id int, col1 int) PARTITION BY LIST (id); +ALTER TABLE atnnparted ADD CONSTRAINT dummy_constr NOT NULL id NOT VALID; +CREATE TABLE atnnpart1 (col1 int, id int); +ALTER TABLE atnnpart1 ADD CONSTRAINT another_constr NOT NULL id; +ALTER TABLE atnnpart1 ADD PRIMARY KEY (id); +ALTER TABLE atnnparted ATTACH PARTITION atnnpart1 FOR VALUES IN ('1'); +\d+ atnnpart* +BEGIN; +ALTER TABLE atnnparted VALIDATE CONSTRAINT dummy_constr; +\d+ atnnpart* +ROLLBACK; +-- leave a table in this state for the pg_upgrade test + -- test inheritance create table parent (a int); create table child (b varchar(255)) inherits (parent); @@ -1796,6 +1810,8 @@ select * from my_locks order by 1; rollback; begin; +create function ttdummy () returns trigger language plpgsql as +$$ begin return new; end $$; create trigger ttdummy before delete or update on alterlock for each row diff --git a/src/test/regress/sql/btree_index.sql b/src/test/regress/sql/btree_index.sql index 670ad5c6e6a58..68c61dbc7d19c 100644 --- a/src/test/regress/sql/btree_index.sql +++ b/src/test/regress/sql/btree_index.sql @@ -327,6 +327,27 @@ alter table btree_tall_tbl alter COLUMN t set storage plain; create index btree_tall_idx on btree_tall_tbl (t, id) with (fillfactor = 10); insert into btree_tall_tbl select g, repeat('x', 250) from generate_series(1, 130) g; +insert into btree_tall_tbl select g, NULL +from generate_series(50, 60) g; + +-- +-- Test for skip scan with type that lacks skip support (text) +-- +set enable_seqscan to false; +set enable_bitmapscan to false; + +-- Forwards scan +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t, id; +explain (costs off) +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t, id; + +-- Backwards scan +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t DESC, id DESC; +explain (costs off) +SELECT id FROM btree_tall_tbl WHERE id = 55 ORDER BY t DESC, id DESC; + +reset enable_seqscan; +reset enable_bitmapscan; -- -- Test for multilevel page deletion diff --git a/src/test/regress/sql/collate.utf8.sql b/src/test/regress/sql/collate.utf8.sql index 6c7c7aec9ec32..d6d14220ab342 100644 --- a/src/test/regress/sql/collate.utf8.sql +++ b/src/test/regress/sql/collate.utf8.sql @@ -45,6 +45,7 @@ INSERT INTO test_pg_c_utf8 VALUES ('abc DEF 123abc'), ('ábc sßs ßss DÉF'), ('DŽxxDŽ džxxDž Džxxdž'), + (U&'Λλ 1a \FF11a'), ('ȺȺȺ'), ('ⱥⱥⱥ'), ('ⱥȺ'); @@ -100,6 +101,7 @@ INSERT INTO test_pg_unicode_fast VALUES ('abc DEF 123abc'), ('ábc sßs ßss DÉF'), ('DŽxxDŽ džxxDž Džxxdž'), + (U&'Λλ 1a \FF11a'), ('ȺȺȺ'), ('ⱥⱥⱥ'), ('ⱥȺ'); diff --git a/src/test/regress/sql/constraints.sql b/src/test/regress/sql/constraints.sql index 21ce4177de43f..337baab7ced93 100644 --- a/src/test/regress/sql/constraints.sql +++ b/src/test/regress/sql/constraints.sql @@ -761,6 +761,11 @@ create unique index cnn_uq_idx on cnn_uq (a); alter table cnn_uq add unique using index cnn_uq_idx; \d+ cnn_uq +-- can't create a primary key on a noinherit not-null +create table cnn_pk (a int not null no inherit); +alter table cnn_pk add primary key (a); +drop table cnn_pk; + -- Ensure partitions are scanned for null values when adding a PK create table cnn2_parted(a int) partition by list (a); create table cnn_part1 partition of cnn2_parted for values in (1, null); @@ -801,6 +806,202 @@ ALTER TABLE ONLY notnull_tbl6 DROP CONSTRAINT ann; ALTER TABLE ONLY notnull_tbl6 ALTER b DROP NOT NULL; \d+ notnull_tbl6_1 + +-- NOT NULL NOT VALID +PREPARE get_nnconstraint_info(regclass[]) AS +SELECT conrelid::regclass as tabname, conname, convalidated, conislocal, coninhcount +FROM pg_constraint +WHERE conrelid = ANY($1) +ORDER BY conrelid::regclass::text COLLATE "C", conname; + +CREATE TABLE notnull_tbl1 (a int, b int); +INSERT INTO notnull_tbl1 VALUES (NULL, 1), (300, 3); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a; -- error +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a NOT VALID; -- ok +-- even an invalid not-null forbids new nulls +INSERT INTO notnull_tbl1 VALUES (NULL, 4); +\d+ notnull_tbl1 + +-- If we have an invalid constraint, we can't have another +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn1 NOT NULL a NOT VALID NO INHERIT; +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn NOT NULL a; + +-- cannot add primary key on a column with an invalid not-null +ALTER TABLE notnull_tbl1 ADD PRIMARY KEY (a); + +-- ALTER column SET NOT NULL validates an invalid constraint (but this fails +-- because of rows with null values) +ALTER TABLE notnull_tbl1 ALTER a SET NOT NULL; +\d+ notnull_tbl1 + +-- Creating a derived table using LIKE gets the constraint, but it's valid +CREATE TABLE notnull_tbl1_copy (LIKE notnull_tbl1); +EXECUTE get_nnconstraint_info('{notnull_tbl1_copy}'); + +-- An inheritance child table gets the constraint, but it's valid +CREATE TABLE notnull_tbl1_child (a int, b int) INHERITS (notnull_tbl1); +EXECUTE get_nnconstraint_info('{notnull_tbl1_child, notnull_tbl1}'); + +-- Also try inheritance added after table creation +CREATE TABLE notnull_tbl1_child2 (c int, b int, a int); +ALTER TABLE notnull_tbl1_child2 INHERIT notnull_tbl1; -- nope +ALTER TABLE notnull_tbl1_child2 ADD NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1_child2 INHERIT notnull_tbl1; +EXECUTE get_nnconstraint_info('{notnull_tbl1_child2}'); + +--table rewrite won't validate invalid constraint +ALTER TABLE notnull_tbl1 ADD column d float8 default random(); + +-- VALIDATE CONSTRAINT scans the table +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn; -- error, nulls exist +UPDATE notnull_tbl1 SET a = 100 WHERE b = 1; +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn; -- now ok +EXECUTE get_nnconstraint_info('{notnull_tbl1}'); + +--- now we can add primary key +ALTER TABLE notnull_tbl1 ADD PRIMARY KEY (a); +DROP TABLE notnull_tbl1, notnull_tbl1_child, notnull_tbl1_child2; + +-- dropping an invalid constraint is possible +CREATE TABLE notnull_tbl1 (a int, b int); +ALTER TABLE notnull_tbl1 ADD NOT NULL a NOT VALID, + ADD NOT NULL b NOT VALID; +ALTER TABLE notnull_tbl1 ALTER a DROP NOT NULL; +ALTER TABLE notnull_tbl1 DROP CONSTRAINT notnull_tbl1_b_not_null; +DROP TABLE notnull_tbl1; + +-- ALTER .. NO INHERIT works for invalid constraints +CREATE TABLE notnull_tbl1 (a int); +CREATE TABLE notnull_tbl1_chld () INHERITS (notnull_tbl1); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nntbl1_a NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1 ALTER CONSTRAINT nntbl1_a NO INHERIT; + +-- DROP CONSTRAINT recurses correctly on invalid constraints +ALTER TABLE notnull_tbl1 ALTER CONSTRAINT nntbl1_a INHERIT; +ALTER TABLE notnull_tbl1 DROP CONSTRAINT nntbl1_a; +DROP TABLE notnull_tbl1, notnull_tbl1_chld; + +-- if a parent has a valid not null constraint then a child table cannot +-- have an invalid one +CREATE TABLE notnull_tbl1 (a int); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT nn_parent NOT NULL a not valid; +CREATE TABLE notnull_chld0 (a int, CONSTRAINT nn_chld0 NOT NULL a); +ALTER TABLE notnull_tbl1 INHERIT notnull_chld0; --error + +ALTER TABLE notnull_chld0 DROP CONSTRAINT nn_chld0; +ALTER TABLE notnull_chld0 ADD CONSTRAINT nn_chld0 NOT NULL a not valid; +ALTER TABLE notnull_tbl1 INHERIT notnull_chld0; --now ok + +-- parents and child not-null will all be validated. +ALTER TABLE notnull_tbl1 VALIDATE CONSTRAINT nn_parent; +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_chld0}'); +DROP TABLE notnull_tbl1, notnull_chld0; + +-- Test invalid not null on inheritance table. +CREATE TABLE notnull_inhparent (i int); +CREATE TABLE notnull_inhchild (i int) INHERITS (notnull_inhparent); +CREATE TABLE notnull_inhgrand () INHERITS (notnull_inhparent, notnull_inhchild); +ALTER TABLE notnull_inhparent ADD CONSTRAINT nn NOT NULL i NOT VALID; +ALTER TABLE notnull_inhchild ADD CONSTRAINT nn1 NOT NULL i; -- error +EXECUTE get_nnconstraint_info('{notnull_inhparent, notnull_inhchild, notnull_inhgrand}'); +ALTER TABLE notnull_inhparent ALTER i SET NOT NULL; -- ok +EXECUTE get_nnconstraint_info('{notnull_inhparent, notnull_inhchild, notnull_inhgrand}'); +DROP TABLE notnull_inhparent, notnull_inhchild, notnull_inhgrand; + +-- Verify NOT NULL VALID/NOT VALID with partition table. +DROP TABLE notnull_tbl1; +CREATE TABLE notnull_tbl1 (a int, b int) PARTITION BY LIST (a); +ALTER TABLE notnull_tbl1 ADD CONSTRAINT notnull_con NOT NULL a NOT VALID; --ok +CREATE TABLE notnull_tbl1_1 PARTITION OF notnull_tbl1 FOR VALUES IN (1,2); +CREATE TABLE notnull_tbl1_2(a int, CONSTRAINT nn2 NOT NULL a, b int); +ALTER TABLE notnull_tbl1 ATTACH PARTITION notnull_tbl1_2 FOR VALUES IN (3,4); + +CREATE TABLE notnull_tbl1_3(a int, b int); +INSERT INTO notnull_tbl1_3 values(NULL,1); +ALTER TABLE notnull_tbl1_3 add CONSTRAINT nn3 NOT NULL a NOT VALID; +ALTER TABLE notnull_tbl1 ATTACH PARTITION notnull_tbl1_3 FOR VALUES IN (NULL,5); + +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_tbl1_1, notnull_tbl1_2, notnull_tbl1_3}'); +ALTER TABLE notnull_tbl1 ALTER COLUMN a SET NOT NULL; --error, notnull_tbl1_3 have null values +ALTER TABLE notnull_tbl1_3 VALIDATE CONSTRAINT nn3; --error + +TRUNCATE notnull_tbl1; +ALTER TABLE notnull_tbl1 ALTER COLUMN a SET NOT NULL; --OK + +EXECUTE get_nnconstraint_info('{notnull_tbl1, notnull_tbl1_1, notnull_tbl1_2, notnull_tbl1_3}'); +DROP TABLE notnull_tbl1; + +-- partitioned table have not-null, then the partitions can not be NOT NULL NOT VALID. +CREATE TABLE pp_nn (a int, b int, NOT NULL a) PARTITION BY LIST (a); +CREATE TABLE pp_nn_1(a int, b int); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn1 NOT NULL a NOT VALID; +ALTER TABLE pp_nn ATTACH PARTITION pp_nn_1 FOR VALUES IN (NULL,5); --error +ALTER TABLE pp_nn_1 VALIDATE CONSTRAINT nn1; +ALTER TABLE pp_nn ATTACH PARTITION pp_nn_1 FOR VALUES IN (NULL,5); --ok +DROP TABLE pp_nn; + +-- Try a partition with an invalid constraint and create a PK on the parent. +CREATE TABLE pp_nn (a int) PARTITION BY HASH (a); +CREATE TABLE pp_nn_1 PARTITION OF pp_nn FOR VALUES WITH (MODULUS 2, REMAINDER 0); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn NOT NULL a NOT VALID; +ALTER TABLE ONLY pp_nn ADD PRIMARY KEY (a); +DROP TABLE pp_nn; + +-- same as above, but the constraint is NO INHERIT +CREATE TABLE pp_nn (a int) PARTITION BY HASH (a); +CREATE TABLE pp_nn_1 PARTITION OF pp_nn FOR VALUES WITH (MODULUS 2, REMAINDER 0); +ALTER TABLE pp_nn_1 ADD CONSTRAINT nn NOT NULL a NO INHERIT; +ALTER TABLE ONLY pp_nn ADD PRIMARY KEY (a); +DROP TABLE pp_nn; + +-- Create table with NOT NULL INVALID constraint, for pg_upgrade. +CREATE TABLE notnull_tbl1_upg (a int, b int); +INSERT INTO notnull_tbl1_upg VALUES (NULL, 1), (NULL, 2), (300, 3); +ALTER TABLE notnull_tbl1_upg ADD CONSTRAINT nn NOT NULL a NOT VALID; +-- Inherit test for pg_upgrade +CREATE TABLE notnull_parent_upg (a int); +CREATE TABLE notnull_child_upg () INHERITS (notnull_parent_upg); +ALTER TABLE notnull_child_upg ADD CONSTRAINT nn NOT NULL a; +ALTER TABLE notnull_parent_upg ADD CONSTRAINT nn NOT NULL a NOT VALID; +SELECT conrelid::regclass, contype, convalidated, conislocal +FROM pg_catalog.pg_constraint +WHERE conrelid in ('notnull_parent_upg'::regclass, 'notnull_child_upg'::regclass) +ORDER BY 1; + +-- Partition table test, for pg_upgrade +CREATE TABLE notnull_part1_upg (a int, b int) PARTITION BY LIST (a); +ALTER TABLE notnull_part1_upg ADD CONSTRAINT notnull_con NOT NULL a NOT VALID; --ok +CREATE TABLE notnull_part1_1_upg PARTITION OF notnull_part1_upg FOR VALUES IN (1,2); +CREATE TABLE notnull_part1_2_upg (a int, CONSTRAINT nn2 NOT NULL a, b int); +ALTER TABLE notnull_part1_upg ATTACH PARTITION notnull_part1_2_upg FOR VALUES IN (3,4); +CREATE TABLE notnull_part1_3_upg (a int, b int); +INSERT INTO notnull_part1_3_upg values(NULL,1); +ALTER TABLE notnull_part1_3_upg add CONSTRAINT nn3 NOT NULL a NOT VALID; +ALTER TABLE notnull_part1_upg ATTACH PARTITION notnull_part1_3_upg FOR VALUES IN (NULL,5); +EXECUTE get_nnconstraint_info('{notnull_part1_upg, notnull_part1_1_upg, notnull_part1_2_upg, notnull_part1_3_upg}'); + +-- Inheritance test tables for pg_upgrade +create table constr_parent (a int); +create table constr_child (a int) inherits (constr_parent); +alter table constr_parent add not null a not valid; +alter table constr_child validate constraint constr_parent_a_not_null; +EXECUTE get_nnconstraint_info('{constr_parent, constr_child}'); + +create table constr_parent2 (a int); +create table constr_child2 () inherits (constr_parent2); +alter table constr_parent2 add not null a not valid; +alter table constr_child2 validate constraint constr_parent2_a_not_null; +EXECUTE get_nnconstraint_info('{constr_parent2, constr_child2}'); + +create table constr_parent3 (a int not null); +create table constr_child3 () inherits (constr_parent2, constr_parent3); +EXECUTE get_nnconstraint_info('{constr_parent3, constr_child3}'); + +DEALLOCATE get_nnconstraint_info; + +-- end NOT NULL NOT VALID + + -- Comments -- Setup a low-level role to enforce non-superuser checks. CREATE ROLE regress_constraint_comments; diff --git a/src/test/regress/sql/conversion.sql b/src/test/regress/sql/conversion.sql index b567a1a57219b..a80d62367a20a 100644 --- a/src/test/regress/sql/conversion.sql +++ b/src/test/regress/sql/conversion.sql @@ -300,11 +300,14 @@ insert into gb18030_inputs values ('\x666f6f84309c38', 'valid, translates to UTF-8 by mapping function'), ('\x666f6f84309c', 'incomplete char '), ('\x666f6f84309c0a', 'incomplete char, followed by newline '), + ('\x666f6f84', 'incomplete char at end'), ('\x666f6f84309c3800', 'invalid, NUL byte'), ('\x666f6f84309c0038', 'invalid, NUL byte'); --- Test GB18030 verification -select description, inbytes, (test_conv(inbytes, 'gb18030', 'gb18030')).* from gb18030_inputs; +-- Test GB18030 verification. Round-trip through text so the backing of the +-- bytea values is palloc, not shared_buffers. This lets Valgrind detect +-- reads past the end. +select description, inbytes, (test_conv(inbytes::text::bytea, 'gb18030', 'gb18030')).* from gb18030_inputs; -- Test conversions from GB18030 select description, inbytes, (test_conv(inbytes, 'gb18030', 'utf8')).* from gb18030_inputs; diff --git a/src/test/regress/sql/copy.sql b/src/test/regress/sql/copy.sql index 3009bdfdf898b..f0b88a23db853 100644 --- a/src/test/regress/sql/copy.sql +++ b/src/test/regress/sql/copy.sql @@ -366,3 +366,12 @@ copy copytest_foreign_table from stdin (freeze); 1 \. rollback; + +-- Tests for COPY TO with materialized views. +-- COPY TO should fail for an unpopulated materialized view +-- but succeed for a populated one. +CREATE MATERIALIZED VIEW copytest_mv AS SELECT 1 AS id WITH NO DATA; +COPY copytest_mv(id) TO stdout WITH (header); +REFRESH MATERIALIZED VIEW copytest_mv; +COPY copytest_mv(id) TO stdout WITH (header); +DROP MATERIALIZED VIEW copytest_mv; diff --git a/src/test/regress/sql/create_function_sql.sql b/src/test/regress/sql/create_function_sql.sql index 89e9af3a49933..6d1c102d78082 100644 --- a/src/test/regress/sql/create_function_sql.sql +++ b/src/test/regress/sql/create_function_sql.sql @@ -328,6 +328,15 @@ CREATE OR REPLACE PROCEDURE functest1(a int) LANGUAGE SQL AS 'SELECT $1'; DROP FUNCTION functest1(a int); +-- early shutdown of set-returning functions + +CREATE FUNCTION functest_srf0() RETURNS SETOF int +LANGUAGE SQL +AS $$ SELECT i FROM generate_series(1, 100) i $$; + +SELECT functest_srf0() LIMIT 5; + + -- inlining of set-returning functions CREATE TABLE functest3 (a int); @@ -385,6 +394,31 @@ CREATE FUNCTION voidtest5(a int) RETURNS SETOF VOID LANGUAGE SQL AS $$ SELECT generate_series(1, a) $$ STABLE; SELECT * FROM voidtest5(3); +-- DDL within a SQL function can now affect later statements in the function; +-- though that doesn't work if check_function_bodies is on. + +SET check_function_bodies TO off; + +CREATE FUNCTION create_and_insert() RETURNS VOID LANGUAGE sql AS $$ + create table ddl_test (f1 int); + insert into ddl_test values (1.2); +$$; + +SELECT create_and_insert(); + +TABLE ddl_test; + +CREATE FUNCTION alter_and_insert() RETURNS VOID LANGUAGE sql AS $$ + alter table ddl_test alter column f1 type numeric; + insert into ddl_test values (1.2); +$$; + +SELECT alter_and_insert(); + +TABLE ddl_test; + +RESET check_function_bodies; + -- Regression tests for bugs: -- Check that arguments that are R/W expanded datums aren't corrupted by @@ -415,6 +449,16 @@ CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'a', 'b'; +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL + AS ''; + +-- make sure empty-body case is handled at execution time, too +SET check_function_bodies = off; +CREATE FUNCTION test1 (anyelement) RETURNS anyarray LANGUAGE SQL + AS ''; +SELECT test1(0); +RESET check_function_bodies; + -- Cleanup DROP SCHEMA temp_func_test CASCADE; DROP USER regress_unpriv_user; diff --git a/src/test/regress/sql/create_index.sql b/src/test/regress/sql/create_index.sql index 6b3852dddd809..e21ff426519b0 100644 --- a/src/test/regress/sql/create_index.sql +++ b/src/test/regress/sql/create_index.sql @@ -650,7 +650,9 @@ DROP TABLE syscol_table; -- CREATE TABLE onek_with_null AS SELECT unique1, unique2 FROM onek; -INSERT INTO onek_with_null (unique1,unique2) VALUES (NULL, -1), (NULL, NULL); +INSERT INTO onek_with_null(unique1, unique2) +VALUES (NULL, -1), (NULL, 2_147_483_647), (NULL, NULL), + (100, NULL), (500, NULL); CREATE UNIQUE INDEX onek_nulltest ON onek_with_null (unique2,unique1); SET enable_seqscan = OFF; @@ -663,6 +665,7 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; DROP INDEX onek_nulltest; @@ -675,6 +678,7 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NUL SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IN (-1, 0, 1); +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; DROP INDEX onek_nulltest; @@ -686,6 +690,7 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; DROP INDEX onek_nulltest; @@ -697,6 +702,7 @@ SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique2 IS NOT NULL; SELECT count(*) FROM onek_with_null WHERE unique1 IS NOT NULL AND unique1 > 500; SELECT count(*) FROM onek_with_null WHERE unique1 IS NULL AND unique1 > 500; +SELECT unique1, unique2 FROM onek_with_null WHERE unique1 = 500 ORDER BY unique2 DESC, unique1 DESC LIMIT 1; DROP INDEX onek_nulltest; @@ -716,9 +722,9 @@ SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= 0 ORDER BY unique2 LIMIT 2; SELECT unique1, unique2 FROM onek_with_null - ORDER BY unique2 DESC LIMIT 2; + ORDER BY unique2 DESC LIMIT 5; SELECT unique1, unique2 FROM onek_with_null WHERE unique2 >= -1 - ORDER BY unique2 DESC LIMIT 2; + ORDER BY unique2 DESC LIMIT 3; SELECT unique1, unique2 FROM onek_with_null WHERE unique2 < 999 ORDER BY unique2 DESC LIMIT 2; @@ -852,7 +858,8 @@ SELECT count(*) FROM dupindexcols WHERE f1 BETWEEN 'WA' AND 'ZZZ' and id < 1000 and f1 ~<~ 'YX'; -- --- Check that index scans with =ANY indexquals return rows in index order +-- Check that index scans with SAOP array and/or skip array indexquals +-- return rows in index order -- explain (costs off) @@ -864,7 +871,7 @@ SELECT unique1 FROM tenk1 WHERE unique1 IN (1,42,7) ORDER BY unique1; --- Non-required array scan key on "tenthous": +-- Skip array on "thousand", SAOP array on "tenthous": explain (costs off) SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) @@ -874,7 +881,7 @@ SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) ORDER BY thousand; --- Non-required array scan key on "tenthous", backward scan: +-- Skip array on "thousand", SAOP array on "tenthous", backward scan: explain (costs off) SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) @@ -884,6 +891,15 @@ SELECT thousand, tenthous FROM tenk1 WHERE thousand < 2 AND tenthous IN (1001,3000) ORDER BY thousand DESC, tenthous DESC; +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > 995 and tenthous in (998, 999) +ORDER BY thousand desc; + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > 995 and tenthous in (998, 999) +ORDER BY thousand desc; + -- -- Check elimination of redundant and contradictory index quals -- @@ -897,6 +913,21 @@ SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{7, 14, 22}') and unique1 = ANY(' SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{7, 14, 22}') and unique1 = ANY('{33, 44}'::bigint[]); +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 = ANY(NULL); + +SELECT unique1 FROM tenk1 WHERE unique1 = ANY(NULL); + +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{NULL,NULL,NULL}'); + +SELECT unique1 FROM tenk1 WHERE unique1 = ANY('{NULL,NULL,NULL}'); + +explain (costs off) +SELECT unique1 FROM tenk1 WHERE unique1 IS NULL AND unique1 IS NULL; + +SELECT unique1 FROM tenk1 WHERE unique1 IS NULL AND unique1 IS NULL; + explain (costs off) SELECT unique1 FROM tenk1 WHERE unique1 IN (1, 42, 7) and unique1 = 1; @@ -942,6 +973,36 @@ SELECT unique1 FROM tenk1 WHERE (thousand, tenthous) > (NULL, 5); SELECT unique1 FROM tenk1 WHERE (thousand, tenthous) > (NULL, 5); +-- Skip array redundancy (pair of redundant low_compare inequalities) +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 and thousand >= 0 AND tenthous = 3000 +ORDER BY thousand; + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 and thousand >= 0 AND tenthous = 3000 +ORDER BY thousand; + +-- Skip array redundancy (pair of redundant high_compare inequalities) +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand < 3 and thousand <= 2 AND tenthous = 1001 +ORDER BY thousand; + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand < 3 and thousand <= 2 AND tenthous = 1001 +ORDER BY thousand; + +-- Skip array preprocessing increments "thousand > -1" to "thousand >= 0" +explain (costs off) +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 AND tenthous IN (1001,3000) +ORDER BY thousand limit 2; + +SELECT thousand, tenthous FROM tenk1 +WHERE thousand > -1 AND tenthous IN (1001,3000) +ORDER BY thousand limit 2; + -- -- Check elimination of constant-NULL subexpressions -- diff --git a/src/test/regress/sql/float4.sql b/src/test/regress/sql/float4.sql index 8fb12368c39b1..44418a64002ed 100644 --- a/src/test/regress/sql/float4.sql +++ b/src/test/regress/sql/float4.sql @@ -98,7 +98,7 @@ UPDATE FLOAT4_TBL SET f1 = FLOAT4_TBL.f1 * '-1' WHERE FLOAT4_TBL.f1 > '0.0'; -SELECT * FROM FLOAT4_TBL; +SELECT * FROM FLOAT4_TBL ORDER BY 1; -- test edge-case coercions to integer SELECT '32767.4'::float4::int2; diff --git a/src/test/regress/sql/float8.sql b/src/test/regress/sql/float8.sql index db8d5724c25ce..0ef271f27020e 100644 --- a/src/test/regress/sql/float8.sql +++ b/src/test/regress/sql/float8.sql @@ -197,7 +197,7 @@ SELECT exp(f.f1) from FLOAT8_TBL f; SELECT f.f1 / '0.0' from FLOAT8_TBL f; -SELECT * FROM FLOAT8_TBL; +SELECT * FROM FLOAT8_TBL ORDER BY 1; -- hyperbolic functions -- we run these with extra_float_digits = 0 too, since different platforms diff --git a/src/test/regress/sql/foreign_key.sql b/src/test/regress/sql/foreign_key.sql index 44945b0453afe..8159e36302242 100644 --- a/src/test/regress/sql/foreign_key.sql +++ b/src/test/regress/sql/foreign_key.sql @@ -2,23 +2,46 @@ -- FOREIGN KEY -- --- MATCH FULL +-- NOT ENFORCED -- -- First test, check and cascade -- CREATE TABLE PKTABLE ( ptest1 int PRIMARY KEY, ptest2 text ); -CREATE TABLE FKTABLE ( ftest1 int REFERENCES PKTABLE MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE, ftest2 int ); +CREATE TABLE FKTABLE ( ftest1 int CONSTRAINT fktable_ftest1_fkey REFERENCES PKTABLE MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE NOT ENFORCED, + ftest2 int ); --- Insert test data into PKTABLE +-- Inserting into the foreign key table will not result in an error, even if +-- there is no matching key in the referenced table. +INSERT INTO FKTABLE VALUES (1, 2); +INSERT INTO FKTABLE VALUES (2, 3); + +-- Check FKTABLE +SELECT * FROM FKTABLE; + +-- Reverting it back to ENFORCED will result in failure because constraint validation will be triggered, +-- as it was previously in a valid state. +ALTER TABLE FKTABLE ALTER CONSTRAINT fktable_ftest1_fkey ENFORCED; + +-- Insert referenced data that satisfies the constraint, then attempt to +-- change it. INSERT INTO PKTABLE VALUES (1, 'Test1'); INSERT INTO PKTABLE VALUES (2, 'Test2'); +ALTER TABLE FKTABLE ALTER CONSTRAINT fktable_ftest1_fkey ENFORCED; + +-- Any further inserts will fail due to the enforcement. +INSERT INTO FKTABLE VALUES (3, 4); + +-- +-- MATCH FULL +-- +-- First test, check and cascade +-- +-- Insert test data into PKTABLE INSERT INTO PKTABLE VALUES (3, 'Test3'); INSERT INTO PKTABLE VALUES (4, 'Test4'); INSERT INTO PKTABLE VALUES (5, 'Test5'); -- Insert successful rows into FK TABLE -INSERT INTO FKTABLE VALUES (1, 2); -INSERT INTO FKTABLE VALUES (2, 3); INSERT INTO FKTABLE VALUES (3, 4); INSERT INTO FKTABLE VALUES (NULL, 1); @@ -230,6 +253,27 @@ INSERT INTO FKTABLE VALUES (1, NULL); ALTER TABLE FKTABLE ADD FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE MATCH FULL; +-- Modifying other attributes of a constraint should not affect its enforceability, and vice versa +ALTER TABLE FKTABLE ADD CONSTRAINT fk_con FOREIGN KEY(ftest1, ftest2) REFERENCES PKTABLE NOT VALID NOT ENFORCED; +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con DEFERRABLE INITIALLY DEFERRED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con NOT ENFORCED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + +-- Enforceability also changes the validate state, as data validation will be +-- performed during this transformation. +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con ENFORCED; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + +-- Can change enforceability and deferrability together +ALTER TABLE FKTABLE ALTER CONSTRAINT fk_con NOT ENFORCED NOT DEFERRABLE; +SELECT condeferrable, condeferred, conenforced, convalidated +FROM pg_constraint WHERE conname = 'fk_con'; + DROP TABLE FKTABLE; DROP TABLE PKTABLE; @@ -473,7 +517,8 @@ CREATE TABLE FKTABLE ( fk_id_del_set_null int, fk_id_del_set_default int DEFAULT 0, FOREIGN KEY (tid, fk_id_del_set_null) REFERENCES PKTABLE ON DELETE SET NULL (fk_id_del_set_null), - FOREIGN KEY (tid, fk_id_del_set_default) REFERENCES PKTABLE ON DELETE SET DEFAULT (fk_id_del_set_default) + -- this tests handling of duplicate entries in SET DEFAULT column list + FOREIGN KEY (tid, fk_id_del_set_default) REFERENCES PKTABLE ON DELETE SET DEFAULT (fk_id_del_set_default, fk_id_del_set_default) ); SELECT pg_get_constraintdef(oid) FROM pg_constraint WHERE conrelid = 'fktable'::regclass::oid ORDER BY oid; @@ -968,12 +1013,25 @@ INSERT INTO fktable VALUES (0, 20); COMMIT; +ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT ENFORCED; + +BEGIN; + +-- doesn't match FK, but no error. +UPDATE pktable SET id = 10 WHERE id = 5; +-- doesn't match PK, but no error. +INSERT INTO fktable VALUES (0, 20); + +ROLLBACK; + -- try additional syntax ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT DEFERRABLE; -- illegal options ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT DEFERRABLE INITIALLY DEFERRED; ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NO INHERIT; ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey NOT VALID; +ALTER TABLE fktable ALTER CONSTRAINT fktable_fk_fkey ENFORCED NOT ENFORCED; +CREATE TEMP TABLE fktable2 (fk int references pktable ENFORCED NOT ENFORCED); -- test order of firing of FK triggers when several RI-induced changes need to -- be made to the same row. This was broken by subtransaction-related @@ -1184,11 +1242,14 @@ ALTER TABLE fk_partitioned_fk DROP COLUMN fdrop1; CREATE TABLE fk_partitioned_fk_1 (fdrop1 int, fdrop2 int, a int, fdrop3 int, b int); ALTER TABLE fk_partitioned_fk_1 DROP COLUMN fdrop1, DROP COLUMN fdrop2, DROP COLUMN fdrop3; ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_1 FOR VALUES FROM (0,0) TO (1000,1000); -ALTER TABLE fk_partitioned_fk ADD FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk; +ALTER TABLE fk_partitioned_fk ADD CONSTRAINT fk_partitioned_fk_a_b_fkey FOREIGN KEY (a, b) + REFERENCES fk_notpartitioned_pk NOT ENFORCED; CREATE TABLE fk_partitioned_fk_2 (b int, fdrop1 int, fdrop2 int, a int); ALTER TABLE fk_partitioned_fk_2 DROP COLUMN fdrop1, DROP COLUMN fdrop2; +ALTER TABLE fk_partitioned_fk_2 ADD CONSTRAINT fk_partitioned_fk_a_b_fkey FOREIGN KEY (a, b) + REFERENCES fk_notpartitioned_pk NOT ENFORCED; ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES FROM (1000,1000) TO (2000,2000); - +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey ENFORCED; CREATE TABLE fk_partitioned_fk_3 (fdrop1 int, fdrop2 int, fdrop3 int, fdrop4 int, b int, a int) PARTITION BY HASH (a); ALTER TABLE fk_partitioned_fk_3 DROP COLUMN fdrop1, DROP COLUMN fdrop2, @@ -1234,6 +1295,32 @@ UPDATE fk_notpartitioned_pk SET b = 1502 WHERE a = 1500; UPDATE fk_notpartitioned_pk SET b = 2504 WHERE a = 2500; -- check psql behavior \d fk_notpartitioned_pk + +-- Check the exsting FK trigger +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey NOT ENFORCED; +-- No triggers +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + +-- Changing it back to ENFORCED will recreate the necessary triggers. +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey ENFORCED; + +-- Should be exactly the same number of triggers found as before +SELECT conname, tgrelid::regclass as tgrel, regexp_replace(tgname, '[0-9]+', 'N') as tgname, tgtype +FROM pg_trigger t JOIN pg_constraint c ON (t.tgconstraint = c.oid) +WHERE tgrelid IN (SELECT relid FROM pg_partition_tree('fk_partitioned_fk'::regclass) + UNION ALL SELECT 'fk_notpartitioned_pk'::regclass) +ORDER BY tgrelid, tgtype; + ALTER TABLE fk_partitioned_fk DROP CONSTRAINT fk_partitioned_fk_a_b_fkey; -- done. DROP TABLE fk_notpartitioned_pk, fk_partitioned_fk; @@ -1441,6 +1528,25 @@ ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN \d fk_partitioned_fk_2 DROP TABLE fk_partitioned_fk_2; +CREATE TABLE fk_partitioned_fk_2 (b int, a int, + CONSTRAINT fk_part_con FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk ON UPDATE CASCADE ON DELETE CASCADE NOT ENFORCED); +-- fail -- cannot merge constraints with different enforceability. +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +-- If the constraint is modified to match the enforceability of the parent, it will work. +BEGIN; +-- change child constraint +ALTER TABLE fk_partitioned_fk_2 ALTER CONSTRAINT fk_part_con ENFORCED; +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +\d fk_partitioned_fk_2 +ROLLBACK; +BEGIN; +-- or change parent constraint +ALTER TABLE fk_partitioned_fk ALTER CONSTRAINT fk_partitioned_fk_a_b_fkey NOT ENFORCED; +ALTER TABLE fk_partitioned_fk ATTACH PARTITION fk_partitioned_fk_2 FOR VALUES IN (1500,1502); +\d fk_partitioned_fk_2 +ROLLBACK; +DROP TABLE fk_partitioned_fk_2; + CREATE TABLE fk_partitioned_fk_4 (a int, b int, FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE CASCADE ON DELETE CASCADE) PARTITION BY RANGE (b, a); CREATE TABLE fk_partitioned_fk_4_1 PARTITION OF fk_partitioned_fk_4 FOR VALUES FROM (1,1) TO (100,100); CREATE TABLE fk_partitioned_fk_4_2 (a int, b int, FOREIGN KEY (a, b) REFERENCES fk_notpartitioned_pk(a, b) ON UPDATE SET NULL); @@ -1567,29 +1673,52 @@ CREATE TABLE part33_self_fk ( ); ALTER TABLE part3_self_fk ATTACH PARTITION part33_self_fk FOR VALUES FROM (30) TO (40); -SELECT cr.relname, co.conname, co.contype, co.convalidated, +-- verify that this constraint works +INSERT INTO parted_self_fk VALUES (1, NULL), (2, NULL), (3, NULL); +INSERT INTO parted_self_fk VALUES (10, 1), (11, 2), (12, 3) RETURNING tableoid::regclass; + +INSERT INTO parted_self_fk VALUES (4, 5); -- error: referenced doesn't exist +DELETE FROM parted_self_fk WHERE id = 1 RETURNING *; -- error: reference remains + +SELECT cr.relname, co.conname, co.convalidated, p.conname AS conparent, p.convalidated, cf.relname AS foreignrel FROM pg_constraint co JOIN pg_class cr ON cr.oid = co.conrelid LEFT JOIN pg_class cf ON cf.oid = co.confrelid LEFT JOIN pg_constraint p ON p.oid = co.conparentid -WHERE cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) -ORDER BY co.contype, cr.relname, co.conname, p.conname; +WHERE co.contype = 'f' AND + cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) +ORDER BY cr.relname, co.conname, p.conname; -- detach and re-attach multiple times just to ensure everything is kosher ALTER TABLE parted_self_fk DETACH PARTITION part2_self_fk; + +INSERT INTO part2_self_fk VALUES (16, 9); -- error: referenced doesn't exist +DELETE FROM parted_self_fk WHERE id = 2 RETURNING *; -- error: reference remains + ALTER TABLE parted_self_fk ATTACH PARTITION part2_self_fk FOR VALUES FROM (10) TO (20); + +INSERT INTO parted_self_fk VALUES (16, 9); -- error: referenced doesn't exist +DELETE FROM parted_self_fk WHERE id = 3 RETURNING *; -- error: reference remains + ALTER TABLE parted_self_fk DETACH PARTITION part2_self_fk; ALTER TABLE parted_self_fk ATTACH PARTITION part2_self_fk FOR VALUES FROM (10) TO (20); -SELECT cr.relname, co.conname, co.contype, co.convalidated, +ALTER TABLE parted_self_fk DETACH PARTITION part3_self_fk; +ALTER TABLE parted_self_fk ATTACH PARTITION part3_self_fk FOR VALUES FROM (30) TO (40); + +ALTER TABLE part3_self_fk DETACH PARTITION part33_self_fk; +ALTER TABLE part3_self_fk ATTACH PARTITION part33_self_fk FOR VALUES FROM (30) TO (40); + +SELECT cr.relname, co.conname, co.convalidated, p.conname AS conparent, p.convalidated, cf.relname AS foreignrel FROM pg_constraint co JOIN pg_class cr ON cr.oid = co.conrelid LEFT JOIN pg_class cf ON cf.oid = co.confrelid LEFT JOIN pg_constraint p ON p.oid = co.conparentid -WHERE cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) -ORDER BY co.contype, cr.relname, co.conname, p.conname; +WHERE co.contype = 'f' AND + cr.oid IN (SELECT relid FROM pg_partition_tree('parted_self_fk')) +ORDER BY cr.relname, co.conname, p.conname; -- Leave this table around, for pg_upgrade/pg_dump tests @@ -1911,7 +2040,7 @@ CREATE TABLE pt1 PARTITION OF pt1_2 FOR VALUES IN (1); CREATE TABLE pt2 PARTITION OF pt1_2 FOR VALUES IN (2); CREATE TABLE ref(f1 int, f2 int, f3 int); ALTER TABLE ref ADD FOREIGN KEY(f1,f2) REFERENCES pt; -ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey1 +ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey_1 DEFERRABLE INITIALLY DEFERRED; -- fails ALTER TABLE ref ALTER CONSTRAINT ref_f1_f2_fkey DEFERRABLE INITIALLY DEFERRED; @@ -2228,7 +2357,7 @@ DELETE FROM fk_p; -- should fail -- these should all fail ALTER TABLE fk_r_1 DROP CONSTRAINT fk_r_p_id_p_jd_fkey; -ALTER TABLE fk_r DROP CONSTRAINT fk_r_p_id_p_jd_fkey1; +ALTER TABLE fk_r DROP CONSTRAINT fk_r_p_id_p_jd_fkey_1; ALTER TABLE fk_r_2 DROP CONSTRAINT fk_r_p_id_p_jd_fkey; SET client_min_messages TO warning; diff --git a/src/test/regress/sql/generated_stored.sql b/src/test/regress/sql/generated_stored.sql index 50e94e5c6739a..4ec155f2da989 100644 --- a/src/test/regress/sql/generated_stored.sql +++ b/src/test/regress/sql/generated_stored.sql @@ -419,6 +419,11 @@ CREATE TABLE gtest24r (a int PRIMARY KEY, b gtestdomain1range GENERATED ALWAYS A INSERT INTO gtest24r (a) VALUES (4); -- ok INSERT INTO gtest24r (a) VALUES (6); -- error +CREATE DOMAIN gtestdomainnn AS int CHECK (VALUE IS NOT NULL); +CREATE TABLE gtest24nn (a int, b gtestdomainnn GENERATED ALWAYS AS (a * 2) STORED); +INSERT INTO gtest24nn (a) VALUES (4); -- ok +INSERT INTO gtest24nn (a) VALUES (NULL); -- error + -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) STORED); diff --git a/src/test/regress/sql/generated_virtual.sql b/src/test/regress/sql/generated_virtual.sql index 13cfbd768594d..b4eedeee2fb27 100644 --- a/src/test/regress/sql/generated_virtual.sql +++ b/src/test/regress/sql/generated_virtual.sql @@ -453,6 +453,11 @@ CREATE TABLE gtest24r (a int PRIMARY KEY, b gtestdomain1range GENERATED ALWAYS A --INSERT INTO gtest24r (a) VALUES (4); -- ok --INSERT INTO gtest24r (a) VALUES (6); -- error +CREATE DOMAIN gtestdomainnn AS int CHECK (VALUE IS NOT NULL); +CREATE TABLE gtest24nn (a int, b gtestdomainnn GENERATED ALWAYS AS (a * 2) VIRTUAL); +--INSERT INTO gtest24nn (a) VALUES (4); -- ok +--INSERT INTO gtest24nn (a) VALUES (NULL); -- error + -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) VIRTUAL); diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql index 941189761fdb3..699e8ac09c88e 100644 --- a/src/test/regress/sql/inherit.sql +++ b/src/test/regress/sql/inherit.sql @@ -380,8 +380,9 @@ CREATE TABLE inhta (); CREATE TABLE inhtb () INHERITS (inhta); CREATE TABLE inhtc () INHERITS (inhtb); CREATE TABLE inhtd () INHERITS (inhta, inhtb, inhtc); -ALTER TABLE inhta ADD COLUMN i int; +ALTER TABLE inhta ADD COLUMN i int, ADD COLUMN j bigint DEFAULT 1; \d+ inhta +\d+ inhtd DROP TABLE inhta, inhtb, inhtc, inhtd; -- Test for renaming in diamond inheritance @@ -481,6 +482,13 @@ alter table p1 add constraint inh_check_constraint5 check (f1 < 10) not enforced alter table p1 add constraint inh_check_constraint6 check (f1 < 10) not enforced; alter table p1_c1 add constraint inh_check_constraint6 check (f1 < 10) enforced; +alter table p1_c1 add constraint inh_check_constraint9 check (f1 < 10) not valid enforced; +alter table p1 add constraint inh_check_constraint9 check (f1 < 10) not enforced; + +-- the not-valid state of the child constraint will be ignored here. +alter table p1 add constraint inh_check_constraint10 check (f1 < 10) not enforced; +alter table p1_c1 add constraint inh_check_constraint10 check (f1 < 10) not valid enforced; + create table p1_c2(f1 int constraint inh_check_constraint4 check (f1 < 10)) inherits(p1); -- but reverse is not allowed diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index c29d13b9fedae..cc5128add4df0 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -2756,7 +2756,8 @@ select * from emp1 t1 left join on true) on true; --- Check that SJE removes the whole PHVs correctly +-- Try PHV, which could potentially be removed completely by SJE, but that's +-- not implemented yet. explain (verbose, costs off) select 1 from emp1 t1 left join ((select 1 as x, * from emp1 t2) s1 inner join @@ -2774,6 +2775,26 @@ select * from generate_series(1,10) t1(id) left join lateral (select t1.id as t1id, t2.id from emp1 t2 join emp1 t3 on t2.id = t3.id) on true; +-- This is a degenerate case of PHV usage: it is evaluated and needed inside +-- a baserel scan operation that the SJE removes. The PHV in this test should +-- be in the filter of parameterized Index Scan: the replace_nestloop_params() +-- code will detect if the placeholder list doesn't have a reference to this +-- parameter. +-- +-- NOTE: enable_hashjoin and enable_mergejoin must be disabled. +CREATE TABLE tbl_phv(x int, y int PRIMARY KEY); +CREATE INDEX tbl_phv_idx ON tbl_phv(x); +INSERT INTO tbl_phv (x, y) + SELECT gs, gs FROM generate_series(1,100) AS gs; +VACUUM ANALYZE tbl_phv; +EXPLAIN (COSTS OFF, VERBOSE) +SELECT 1 FROM tbl_phv t1 LEFT JOIN + (SELECT 1 extra, x, y FROM tbl_phv tl) t3 JOIN + (SELECT y FROM tbl_phv tr) t4 + ON t4.y = t3.y +ON true WHERE t3.extra IS NOT NULL AND t3.x = t1.x % 2; +DROP TABLE IF EXISTS tbl_phv; + -- Check that SJE replaces join clauses involving the removed rel correctly explain (costs off) select * from emp1 t1 @@ -2786,7 +2807,13 @@ WITH t1 AS (SELECT * FROM emp1) UPDATE emp1 SET code = t1.code + 1 FROM t1 WHERE t1.id = emp1.id RETURNING emp1.id, emp1.code, t1.code; -INSERT INTO emp1 VALUES (1, 1), (2, 1); +-- Check that SJE correctly replaces relations in OR-clauses +EXPLAIN (COSTS OFF) +SELECT * FROM emp1 t1 + INNER JOIN emp1 t2 ON t1.id = t2.id + LEFT JOIN emp1 t3 ON t1.code = 1 AND (t2.code = t3.code OR t2.code = 1); + + INSERT INTO emp1 VALUES (1, 1), (2, 1); WITH t1 AS (SELECT * FROM emp1) UPDATE emp1 SET code = t1.code + 1 FROM t1 diff --git a/src/test/regress/sql/limit.sql b/src/test/regress/sql/limit.sql index 6f0cda9870155..603910fe6d11c 100644 --- a/src/test/regress/sql/limit.sql +++ b/src/test/regress/sql/limit.sql @@ -196,6 +196,9 @@ CREATE VIEW limit_thousand_v_3 AS SELECT thousand FROM onek WHERE thousand < 995 ORDER BY thousand FETCH FIRST (NULL+1) ROWS WITH TIES; \d+ limit_thousand_v_3 CREATE VIEW limit_thousand_v_4 AS SELECT thousand FROM onek WHERE thousand < 995 - ORDER BY thousand FETCH FIRST NULL ROWS ONLY; + ORDER BY thousand FETCH FIRST (5::bigint) ROWS WITH TIES; \d+ limit_thousand_v_4 +CREATE VIEW limit_thousand_v_5 AS SELECT thousand FROM onek WHERE thousand < 995 + ORDER BY thousand FETCH FIRST NULL ROWS ONLY; +\d+ limit_thousand_v_5 -- leave these views diff --git a/src/test/regress/sql/maintain_every.sql b/src/test/regress/sql/maintain_every.sql new file mode 100644 index 0000000000000..263e97272d596 --- /dev/null +++ b/src/test/regress/sql/maintain_every.sql @@ -0,0 +1,26 @@ +-- Test maintenance commands that visit every eligible relation. Run as a +-- non-superuser, to skip other users' tables. + +CREATE ROLE regress_maintain; +SET ROLE regress_maintain; + +-- Test database-wide ANALYZE ("use_own_xacts" mode) setting relhassubclass=f +-- for non-partitioning inheritance, w/ ON COMMIT DELETE ROWS building an +-- empty index. +CREATE TEMP TABLE past_inh_db_other (); -- need 2 tables for "use_own_xacts" +CREATE TEMP TABLE past_inh_db_parent () ON COMMIT DELETE ROWS; +CREATE TEMP TABLE past_inh_db_child () INHERITS (past_inh_db_parent); +CREATE INDEX ON past_inh_db_parent ((1)); +ANALYZE past_inh_db_parent; +SELECT reltuples, relhassubclass + FROM pg_class WHERE oid = 'past_inh_db_parent'::regclass; +DROP TABLE past_inh_db_child; +SET client_min_messages = error; -- hide WARNINGs for other users' tables +ANALYZE; +RESET client_min_messages; +SELECT reltuples, relhassubclass + FROM pg_class WHERE oid = 'past_inh_db_parent'::regclass; +DROP TABLE past_inh_db_parent, past_inh_db_other; + +RESET ROLE; +DROP ROLE regress_maintain; diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql index aaebb298330b8..5f9c77512d160 100644 --- a/src/test/regress/sql/misc_functions.sql +++ b/src/test/regress/sql/misc_functions.sql @@ -411,3 +411,6 @@ CREATE FUNCTION test_relpath() AS :'regresslib' LANGUAGE C; SELECT test_relpath(); + +-- pg_replication_origin.roname limit +SELECT pg_replication_origin_create('regress_' || repeat('a', 505)); diff --git a/src/test/regress/sql/misc_sanity.sql b/src/test/regress/sql/misc_sanity.sql index 135793871b4d4..e861614ea7184 100644 --- a/src/test/regress/sql/misc_sanity.sql +++ b/src/test/regress/sql/misc_sanity.sql @@ -45,6 +45,11 @@ WHERE refclassid = 0 OR refobjid = 0 OR -- as user data by pg_upgrade, which would cause failures. -- 3. pg_authid, since its toast table cannot be accessed when it would be -- needed, i.e., during authentication before we've selected a database. +-- 4. pg_replication_origin, since we want to be able to access that catalog +-- without setting up a snapshot. To make that safe, it needs to not have a +-- toast table, since toasted data cannot be fetched without a snapshot. As of +-- this writing, its only varlena column is roname, which we limit to 512 bytes +-- to avoid needing out-of-line storage. SELECT relname, attname, atttypid::regtype FROM pg_class c JOIN pg_attribute a ON c.oid = attrelid diff --git a/src/test/regress/sql/numa.sql b/src/test/regress/sql/numa.sql new file mode 100644 index 0000000000000..324481c33b75d --- /dev/null +++ b/src/test/regress/sql/numa.sql @@ -0,0 +1,10 @@ +SELECT NOT(pg_numa_available()) AS skip_test \gset +\if :skip_test +SELECT COUNT(*) = 0 AS ok FROM pg_shmem_allocations_numa; +\quit +\endif + +-- switch to superuser +\c - + +SELECT COUNT(*) >= 0 AS ok FROM pg_shmem_allocations_numa; diff --git a/src/test/regress/sql/partition_join.sql b/src/test/regress/sql/partition_join.sql index b76c545100126..30f15ee9acb5a 100644 --- a/src/test/regress/sql/partition_join.sql +++ b/src/test/regress/sql/partition_join.sql @@ -1224,6 +1224,9 @@ SELECT x.id, y.id FROM fract_t x LEFT JOIN fract_t y USING (id) ORDER BY x.id AS EXPLAIN (COSTS OFF) SELECT x.id, y.id FROM fract_t x LEFT JOIN fract_t y USING (id) ORDER BY x.id DESC LIMIT 10; +EXPLAIN (COSTS OFF) -- Should use NestLoop with parameterised inner scan +SELECT x.id, y.id FROM fract_t x LEFT JOIN fract_t y USING (id) +ORDER BY x.id DESC LIMIT 2; -- -- Test Append's fractional paths diff --git a/src/test/regress/sql/partition_prune.sql b/src/test/regress/sql/partition_prune.sql index f6db9479f54ad..d93c0c03babad 100644 --- a/src/test/regress/sql/partition_prune.sql +++ b/src/test/regress/sql/partition_prune.sql @@ -1371,12 +1371,12 @@ create view part_abc_view as select * from part_abc where b <> 'a' with check op prepare update_part_abc_view as update part_abc_view set b = $2 where a = $1 returning *; -- Only the unpruned partition should be shown in the list of relations to be -- updated -explain (costs off) execute update_part_abc_view (1, 'd'); +explain (verbose, costs off) execute update_part_abc_view (1, 'd'); execute update_part_abc_view (1, 'd'); -explain (costs off) execute update_part_abc_view (2, 'a'); +explain (verbose, costs off) execute update_part_abc_view (2, 'a'); execute update_part_abc_view (2, 'a'); -- All pruned. -explain (costs off) execute update_part_abc_view (3, 'a'); +explain (verbose, costs off) execute update_part_abc_view (3, 'a'); execute update_part_abc_view (3, 'a'); deallocate update_part_abc_view; diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql index 286b1d0375692..f337aa67c13f2 100644 --- a/src/test/regress/sql/privileges.sql +++ b/src/test/regress/sql/privileges.sql @@ -1586,11 +1586,47 @@ ALTER DEFAULT PRIVILEGES REVOKE ALL ON SCHEMAS FROM regress_priv_user2; COMMIT; +-- +-- Test for default privileges on large objects. This is done in a +-- separate, rollbacked, transaction to avoid any trouble with other +-- regression sessions. +-- + +BEGIN; + +SELECT lo_create(1007); +SELECT has_largeobject_privilege('regress_priv_user2', 1007, 'SELECT'); -- no +SELECT has_largeobject_privilege('regress_priv_user2', 1007, 'UPDATE'); -- no + +ALTER DEFAULT PRIVILEGES GRANT SELECT ON LARGE OBJECTS TO regress_priv_user2; + +SELECT lo_create(1008); +SELECT has_largeobject_privilege('regress_priv_user2', 1008, 'SELECT'); -- yes +SELECT has_largeobject_privilege('regress_priv_user6', 1008, 'SELECT'); -- no +SELECT has_largeobject_privilege('regress_priv_user2', 1008, 'UPDATE'); -- no + +ALTER DEFAULT PRIVILEGES GRANT ALL ON LARGE OBJECTS TO regress_priv_user2; +SELECT lo_create(1009); +SELECT has_largeobject_privilege('regress_priv_user2', 1009, 'SELECT'); -- true +SELECT has_largeobject_privilege('regress_priv_user2', 1009, 'UPDATE'); -- true + +ALTER DEFAULT PRIVILEGES REVOKE UPDATE ON LARGE OBJECTS FROM regress_priv_user2; +SELECT lo_create(1010); +SELECT has_largeobject_privilege('regress_priv_user2', 1010, 'SELECT'); -- true +SELECT has_largeobject_privilege('regress_priv_user2', 1010, 'UPDATE'); -- false + +ROLLBACK; + +ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON LARGE OBJECTS TO public; -- error + +\c - + -- Test for DROP OWNED BY with shared dependencies. This is done in a -- separate, rollbacked, transaction to avoid any trouble with other -- regression sessions. BEGIN; ALTER DEFAULT PRIVILEGES GRANT ALL ON FUNCTIONS TO regress_priv_user2; +ALTER DEFAULT PRIVILEGES GRANT ALL ON LARGE OBJECTS TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON SCHEMAS TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON SEQUENCES TO regress_priv_user2; ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO regress_priv_user2; @@ -1911,8 +1947,8 @@ REVOKE MAINTAIN ON lock_table FROM regress_locktable_user; DROP TABLE lock_table; DROP USER regress_locktable_user; --- test to check privileges of system views pg_shmem_allocations and --- pg_backend_memory_contexts. +-- test to check privileges of system views pg_shmem_allocations, +-- pg_shmem_allocations_numa and pg_backend_memory_contexts. -- switch to superuser \c - @@ -1922,12 +1958,14 @@ CREATE ROLE regress_readallstats; SELECT has_table_privilege('regress_readallstats','pg_aios','SELECT'); -- no SELECT has_table_privilege('regress_readallstats','pg_backend_memory_contexts','SELECT'); -- no SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations','SELECT'); -- no +SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations_numa','SELECT'); -- no GRANT pg_read_all_stats TO regress_readallstats; SELECT has_table_privilege('regress_readallstats','pg_aios','SELECT'); -- yes SELECT has_table_privilege('regress_readallstats','pg_backend_memory_contexts','SELECT'); -- yes SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations','SELECT'); -- yes +SELECT has_table_privilege('regress_readallstats','pg_shmem_allocations_numa','SELECT'); -- yes -- run query to ensure that functions within views can be executed SET ROLE regress_readallstats; diff --git a/src/test/regress/sql/rowsecurity.sql b/src/test/regress/sql/rowsecurity.sql index f61dbbf958111..9da967a9ef2f5 100644 --- a/src/test/regress/sql/rowsecurity.sql +++ b/src/test/regress/sql/rowsecurity.sql @@ -2307,6 +2307,50 @@ DROP FUNCTION rls_f(); DROP VIEW rls_v; DROP TABLE rls_t; +-- Check that RLS changes invalidate SQL function plans +create table rls_t (c text); +create table test_t (c text); +insert into rls_t values ('a'), ('b'), ('c'), ('d'); +insert into test_t values ('a'), ('b'); +alter table rls_t enable row level security; +grant select on rls_t to regress_rls_alice; +grant select on test_t to regress_rls_alice; +create policy p1 on rls_t for select to regress_rls_alice + using (c = current_setting('rls_test.blah')); + +-- Function changes row_security setting and so invalidates plan +create function rls_f(text) returns text +begin atomic + select set_config('rls_test.blah', $1, true) || set_config('row_security', 'false', true) || string_agg(c, ',' order by c) from rls_t; +end; + +set plan_cache_mode to force_custom_plan; + +-- Table owner bypasses RLS +select rls_f(c) from test_t order by rls_f; + +-- For other users, changes in row_security setting +-- should lead to RLS error during query rewrite +set role regress_rls_alice; +select rls_f(c) from test_t order by rls_f; +reset role; + +set plan_cache_mode to force_generic_plan; + +-- Table owner bypasses RLS, although cached plan will be invalidated +select rls_f(c) from test_t order by rls_f; + +-- For other users, changes in row_security setting +-- should lead to plan invalidation and RLS error during query rewrite +set role regress_rls_alice; +select rls_f(c) from test_t order by rls_f; +reset role; + +reset plan_cache_mode; +reset rls_test.blah; +drop function rls_f(text); +drop table rls_t, test_t; + -- -- Clean up objects -- diff --git a/src/test/regress/sql/sqljson.sql b/src/test/regress/sql/sqljson.sql index 3fd6ac260b8ed..343d344d2707f 100644 --- a/src/test/regress/sql/sqljson.sql +++ b/src/test/regress/sql/sqljson.sql @@ -199,6 +199,8 @@ SELECT JSON_ARRAY(SELECT i FROM (VALUES (NULL::int[]), ('{1,2}'), (NULL), (NULL) --SELECT JSON_ARRAY(SELECT i FROM (VALUES (NULL::int[]), ('{1,2}'), (NULL), (NULL), ('{3,4}'), (NULL)) foo(i) NULL ON NULL); --SELECT JSON_ARRAY(SELECT i FROM (VALUES (NULL::int[]), ('{1,2}'), (NULL), (NULL), ('{3,4}'), (NULL)) foo(i) NULL ON NULL RETURNING jsonb); SELECT JSON_ARRAY(SELECT i FROM (VALUES (3), (1), (NULL), (2)) foo(i) ORDER BY i); +SELECT JSON_ARRAY(WITH x AS (SELECT 1) VALUES (TRUE)); + -- Should fail SELECT JSON_ARRAY(SELECT FROM (VALUES (1)) foo(i)); SELECT JSON_ARRAY(SELECT i, i FROM (VALUES (1)) foo(i)); diff --git a/src/test/regress/sql/stats.sql b/src/test/regress/sql/stats.sql index c223800fd19c4..232ab8db8fa8b 100644 --- a/src/test/regress/sql/stats.sql +++ b/src/test/regress/sql/stats.sql @@ -672,6 +672,7 @@ SELECT sum(writes) AS writes, sum(fsyncs) AS fsyncs SELECT current_setting('synchronous_commit') = 'on'; SELECT :io_sum_wal_normal_after_writes > :io_sum_wal_normal_before_writes; SELECT current_setting('fsync') = 'off' + OR current_setting('wal_sync_method') IN ('open_sync', 'open_datasync') OR :io_sum_wal_normal_after_fsyncs > :io_sum_wal_normal_before_fsyncs; -- Change the tablespace so that the table is rewritten directly, then SELECT diff --git a/src/test/regress/sql/stats_ext.sql b/src/test/regress/sql/stats_ext.sql index b71a6cd089fc8..da4f2fe9c938f 100644 --- a/src/test/regress/sql/stats_ext.sql +++ b/src/test/regress/sql/stats_ext.sql @@ -1747,4 +1747,15 @@ ANALYZE sb_2; EXPLAIN (COSTS OFF) -- Choose hash join SELECT * FROM sb_1 a, sb_2 b WHERE a.x = b.x AND a.y = b.y AND a.z = b.z; +-- Check that the Hash Join bucket size estimator detects equal clauses correctly. +SET enable_nestloop = 'off'; +SET enable_mergejoin = 'off'; +EXPLAIN (COSTS OFF) +SELECT FROM sb_1 LEFT JOIN sb_2 ON (sb_2.x=sb_1.x) AND (sb_1.x=sb_2.x); +EXPLAIN (COSTS OFF) +SELECT FROM sb_1 LEFT JOIN sb_2 + ON (sb_2.x=sb_1.x) AND (sb_1.x=sb_2.x) AND (sb_1.y=sb_2.y); +RESET enable_nestloop; +RESET enable_mergejoin; + DROP TABLE sb_1, sb_2 CASCADE; diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index aeba798dac1fa..f7b325baadf4d 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -738,6 +738,11 @@ SELECT crc32('The quick brown fox jumps over the lazy dog.'); SELECT crc32c(''); SELECT crc32c('The quick brown fox jumps over the lazy dog.'); +SELECT crc32c(repeat('A', 127)::bytea); +SELECT crc32c(repeat('A', 128)::bytea); +SELECT crc32c(repeat('A', 129)::bytea); +SELECT crc32c(repeat('A', 800)::bytea); + -- -- encode/decode -- diff --git a/src/test/regress/sql/subselect.sql b/src/test/regress/sql/subselect.sql index 6ed3636a9e46d..fec38ef85a6a6 100644 --- a/src/test/regress/sql/subselect.sql +++ b/src/test/regress/sql/subselect.sql @@ -1202,3 +1202,103 @@ WHERE a.thousand < 750; explain (costs off) SELECT * FROM tenk1 A LEFT JOIN tenk2 B ON B.hundred in (SELECT min(c.hundred) FROM tenk2 C WHERE c.odd = b.odd); + +-- +-- Test VALUES to ARRAY (VtA) transformation +-- + +-- VtA transformation for joined VALUES is not supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek, (VALUES('RFAAAA'), ('VJAAAA')) AS v (i) + WHERE onek.stringu1 = v.i; + +-- VtA transformation for a composite argument is not supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE (unique1,ten) IN (VALUES (1,1), (20,0), (99,9), (17,99)) + ORDER BY unique1; + +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (VALUES(10000), (2), (389), (1000), (2000), (10029)) + ORDER BY unique1; + +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (VALUES(1200), (1)); + +-- Recursive evaluation of constant queries is not yet supported +EXPLAIN (COSTS OFF) +SELECT * FROM onek + WHERE unique1 IN (SELECT x * x FROM (VALUES(1200), (1)) AS x(x)); + +EXPLAIN (COSTS OFF) +SELECT unique1, stringu1 FROM onek WHERE stringu1::name IN (VALUES('RFAAAA'), ('VJAAAA')); + +EXPLAIN (COSTS OFF) +SELECT unique1, stringu1 FROM onek WHERE stringu1::text IN (VALUES('RFAAAA'), ('VJAAAA')); + +EXPLAIN (COSTS OFF) +SELECT * from onek WHERE unique1 in (VALUES(1200::bigint), (1)); + +-- VtA shouldn't depend on the side of the join probing with the VALUES expression. +EXPLAIN (COSTS OFF) +SELECT c.unique1,c.ten FROM tenk1 c JOIN onek a USING (ten) +WHERE a.ten IN (VALUES (1), (2)); +EXPLAIN (COSTS OFF) +SELECT c.unique1,c.ten FROM tenk1 c JOIN onek a USING (ten) +WHERE c.ten IN (VALUES (1), (2)); + +-- Constant expressions are simplified +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE sin(two ) +four IN (VALUES (sin(0.5)), (2)); +EXPLAIN (COSTS OFF) + +-- VtA allows NULLs in the list +SELECT ten FROM onek WHERE sin(two)+four IN (VALUES (sin(0.5)), (NULL), (2)); + +-- VtA is supported for custom plans where params are substituted with +-- constants. VtA is not supported with generic plans where params prevent +-- us from building a constant array. +PREPARE test (int, numeric, text) AS + SELECT ten FROM onek WHERE sin(two) * four / ($3::real) IN (VALUES (sin($2)), (2), ($1)); +EXPLAIN (COSTS OFF) EXECUTE test(42, 3.14, '-1.5'); +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, NULL); +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, '-1.5'); +SET plan_cache_mode = 'force_generic_plan'; +EXPLAIN (COSTS OFF) EXECUTE test(NULL, 3.14, '-1.5'); +RESET plan_cache_mode; + +-- VtA doesn't support LIMIT, OFFSET, and ORDER BY clauses +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) OFFSET 1); +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) ORDER BY 1); +EXPLAIN (COSTS OFF) +SELECT ten FROM onek WHERE unique1 IN (VALUES (1), (2) LIMIT 1); + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t +WHERE unique1 IN (VALUES (0), ((2 IN (SELECT unique2 FROM onek c + WHERE c.unique2 = t.unique1))::integer)); + +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t +WHERE unique1 IN (VALUES (0), ((2 IN (SELECT unique2 FROM onek c + WHERE c.unique2 IN (VALUES (sin(0.5)), (2))))::integer)); + +-- VtA is not allowed with subqueries +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE unique1 IN (VALUES (0), ((2 IN + (SELECT (3)))::integer) +); + +-- VtA is not allowed with non-constant expressions +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE unique1 IN (VALUES (0), (unique2)); +EXPLAIN (COSTS OFF) +SELECT * FROM onek t1, lateral (SELECT * FROM onek t2 WHERE t2.ten IN (values (t1.ten), (1))); + +-- VtA causes the whole expression to be evaluated as a constant +EXPLAIN (COSTS OFF) +SELECT ten FROM onek t WHERE 1.0::integer IN ((VALUES (1), (3))); diff --git a/src/test/regress/sql/test_setup.sql b/src/test/regress/sql/test_setup.sql index 06b0e2121f895..5854399a02803 100644 --- a/src/test/regress/sql/test_setup.sql +++ b/src/test/regress/sql/test_setup.sql @@ -252,11 +252,6 @@ CREATE FUNCTION binary_coercible(oid, oid) AS :'regresslib', 'binary_coercible' LANGUAGE C STRICT STABLE PARALLEL SAFE; -CREATE FUNCTION ttdummy () - RETURNS trigger - AS :'regresslib' - LANGUAGE C; - -- Use hand-rolled hash functions and operator classes to get predictable -- result on different machines. The hash function for int4 simply returns -- the sum of the values passed to it and the one for text returns the length diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql index 659972f113505..d3d242dd29b74 100644 --- a/src/test/regress/sql/triggers.sql +++ b/src/test/regress/sql/triggers.sql @@ -6,135 +6,13 @@ \getenv libdir PG_LIBDIR \getenv dlsuffix PG_DLSUFFIX -\set autoinclib :libdir '/autoinc' :dlsuffix -\set refintlib :libdir '/refint' :dlsuffix \set regresslib :libdir '/regress' :dlsuffix -CREATE FUNCTION autoinc () - RETURNS trigger - AS :'autoinclib' - LANGUAGE C; - -CREATE FUNCTION check_primary_key () - RETURNS trigger - AS :'refintlib' - LANGUAGE C; - -CREATE FUNCTION check_foreign_key () - RETURNS trigger - AS :'refintlib' - LANGUAGE C; - CREATE FUNCTION trigger_return_old () RETURNS trigger AS :'regresslib' LANGUAGE C; -CREATE FUNCTION set_ttdummy (int4) - RETURNS int4 - AS :'regresslib' - LANGUAGE C STRICT; - -create table pkeys (pkey1 int4 not null, pkey2 text not null); -create table fkeys (fkey1 int4, fkey2 text, fkey3 int); -create table fkeys2 (fkey21 int4, fkey22 text, pkey23 int not null); - -create index fkeys_i on fkeys (fkey1, fkey2); -create index fkeys2_i on fkeys2 (fkey21, fkey22); -create index fkeys2p_i on fkeys2 (pkey23); - -insert into pkeys values (10, '1'); -insert into pkeys values (20, '2'); -insert into pkeys values (30, '3'); -insert into pkeys values (40, '4'); -insert into pkeys values (50, '5'); -insert into pkeys values (60, '6'); -create unique index pkeys_i on pkeys (pkey1, pkey2); - --- --- For fkeys: --- (fkey1, fkey2) --> pkeys (pkey1, pkey2) --- (fkey3) --> fkeys2 (pkey23) --- -create trigger check_fkeys_pkey_exist - before insert or update on fkeys - for each row - execute function - check_primary_key ('fkey1', 'fkey2', 'pkeys', 'pkey1', 'pkey2'); - -create trigger check_fkeys_pkey2_exist - before insert or update on fkeys - for each row - execute function check_primary_key ('fkey3', 'fkeys2', 'pkey23'); - --- --- For fkeys2: --- (fkey21, fkey22) --> pkeys (pkey1, pkey2) --- -create trigger check_fkeys2_pkey_exist - before insert or update on fkeys2 - for each row - execute procedure - check_primary_key ('fkey21', 'fkey22', 'pkeys', 'pkey1', 'pkey2'); - --- Test comments -COMMENT ON TRIGGER check_fkeys2_pkey_bad ON fkeys2 IS 'wrong'; -COMMENT ON TRIGGER check_fkeys2_pkey_exist ON fkeys2 IS 'right'; -COMMENT ON TRIGGER check_fkeys2_pkey_exist ON fkeys2 IS NULL; - --- --- For pkeys: --- ON DELETE/UPDATE (pkey1, pkey2) CASCADE: --- fkeys (fkey1, fkey2) and fkeys2 (fkey21, fkey22) --- -create trigger check_pkeys_fkey_cascade - before delete or update on pkeys - for each row - execute procedure - check_foreign_key (2, 'cascade', 'pkey1', 'pkey2', - 'fkeys', 'fkey1', 'fkey2', 'fkeys2', 'fkey21', 'fkey22'); - --- --- For fkeys2: --- ON DELETE/UPDATE (pkey23) RESTRICT: --- fkeys (fkey3) --- -create trigger check_fkeys2_fkey_restrict - before delete or update on fkeys2 - for each row - execute procedure check_foreign_key (1, 'restrict', 'pkey23', 'fkeys', 'fkey3'); - -insert into fkeys2 values (10, '1', 1); -insert into fkeys2 values (30, '3', 2); -insert into fkeys2 values (40, '4', 5); -insert into fkeys2 values (50, '5', 3); --- no key in pkeys -insert into fkeys2 values (70, '5', 3); - -insert into fkeys values (10, '1', 2); -insert into fkeys values (30, '3', 3); -insert into fkeys values (40, '4', 2); -insert into fkeys values (50, '5', 2); --- no key in pkeys -insert into fkeys values (70, '5', 1); --- no key in fkeys2 -insert into fkeys values (60, '6', 4); - -delete from pkeys where pkey1 = 30 and pkey2 = '3'; -delete from pkeys where pkey1 = 40 and pkey2 = '4'; -update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 50 and pkey2 = '5'; -update pkeys set pkey1 = 7, pkey2 = '70' where pkey1 = 10 and pkey2 = '1'; - -SELECT trigger_name, event_manipulation, event_object_schema, event_object_table, - action_order, action_condition, action_orientation, action_timing, - action_reference_old_table, action_reference_new_table - FROM information_schema.triggers - WHERE event_object_table in ('pkeys', 'fkeys', 'fkeys2') - ORDER BY trigger_name COLLATE "C", 2; - -DROP TABLE pkeys; -DROP TABLE fkeys; -DROP TABLE fkeys2; -- Check behavior when trigger returns unmodified trigtuple create table trigtest (f1 int, f2 text); @@ -214,77 +92,6 @@ select * from trigtest; drop table trigtest; -create sequence ttdummy_seq increment 10 start 0 minvalue 0; - -create table tttest ( - price_id int4, - price_val int4, - price_on int4, - price_off int4 default 999999 -); - -create trigger ttdummy - before delete or update on tttest - for each row - execute procedure - ttdummy (price_on, price_off); - -create trigger ttserial - before insert or update on tttest - for each row - execute procedure - autoinc (price_on, ttdummy_seq); - -insert into tttest values (1, 1, null); -insert into tttest values (2, 2, null); -insert into tttest values (3, 3, 0); - -select * from tttest; -delete from tttest where price_id = 2; -select * from tttest; --- what do we see ? - --- get current prices -select * from tttest where price_off = 999999; - --- change price for price_id == 3 -update tttest set price_val = 30 where price_id = 3; -select * from tttest; - --- now we want to change pric_id in ALL tuples --- this gets us not what we need -update tttest set price_id = 5 where price_id = 3; -select * from tttest; - --- restore data as before last update: -select set_ttdummy(0); -delete from tttest where price_id = 5; -update tttest set price_off = 999999 where price_val = 30; -select * from tttest; - --- and try change price_id now! -update tttest set price_id = 5 where price_id = 3; -select * from tttest; --- isn't it what we need ? - -select set_ttdummy(1); - --- we want to correct some "date" -update tttest set price_on = -1 where price_id = 1; --- but this doesn't work - --- try in this way -select set_ttdummy(0); -update tttest set price_on = -1 where price_id = 1; -select * from tttest; --- isn't it what we need ? - --- get price for price_id == 5 as it was @ "date" 35 -select * from tttest where price_on <= 35 and price_off > 35 and price_id = 5; - -drop table tttest; -drop sequence ttdummy_seq; - -- -- tests for per-statement triggers -- @@ -346,6 +153,11 @@ COPY main_table (a, b) FROM stdin; SELECT * FROM main_table ORDER BY a, b; +-- Test comments +COMMENT ON TRIGGER no_such_trigger ON main_table IS 'wrong'; +COMMENT ON TRIGGER before_ins_stmt_trig ON main_table IS 'right'; +COMMENT ON TRIGGER before_ins_stmt_trig ON main_table IS NULL; + -- -- test triggers with WHEN clause -- diff --git a/src/test/regress/sql/type_sanity.sql b/src/test/regress/sql/type_sanity.sql index 303f90955d157..c94dd83d3061c 100644 --- a/src/test/regress/sql/type_sanity.sql +++ b/src/test/regress/sql/type_sanity.sql @@ -12,6 +12,12 @@ -- row in the linked-to table. However, if we want to enforce that a link -- field can't be 0, we have to check it here. +-- directory paths and dlsuffix are passed to us in environment variables +\getenv libdir PG_LIBDIR +\getenv dlsuffix PG_DLSUFFIX + +\set regresslib :libdir '/regress' :dlsuffix + -- **************** pg_type **************** -- Look for illegal values in pg_type fields. @@ -425,6 +431,20 @@ WHERE a1.atttypid = t1.oid AND a1.attbyval != t1.typbyval OR (a1.attstorage != t1.typstorage AND a1.attstorage != 'p')); +-- Look for IsCatalogTextUniqueIndexOid() omissions. + +CREATE FUNCTION is_catalog_text_unique_index_oid(oid) RETURNS bool + AS :'regresslib', 'is_catalog_text_unique_index_oid' + LANGUAGE C STRICT; + +SELECT indexrelid::regclass +FROM pg_index +WHERE (is_catalog_text_unique_index_oid(indexrelid) <> + (indisunique AND + indexrelid < 16384 AND + EXISTS (SELECT 1 FROM pg_attribute + WHERE attrelid = indexrelid AND atttypid = 'text'::regtype))); + -- **************** pg_range **************** -- Look for illegal values in pg_range fields. diff --git a/src/test/regress/sql/with.sql b/src/test/regress/sql/with.sql index dcdaab5eff02a..b1cae1612904b 100644 --- a/src/test/regress/sql/with.sql +++ b/src/test/regress/sql/with.sql @@ -963,6 +963,13 @@ WITH RECURSIVE x(n) AS ( ORDER BY (SELECT n FROM x)) SELECT * FROM x; +-- and this +WITH RECURSIVE x(n) AS ( + WITH sub_cte AS (SELECT * FROM x) + DELETE FROM graph RETURNING f) + SELECT * FROM x; + + CREATE TEMPORARY TABLE y (a INTEGER); INSERT INTO y SELECT generate_series(1, 10); diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql index 4c3520ce8980f..0ea4f508837cf 100644 --- a/src/test/regress/sql/xml.sql +++ b/src/test/regress/sql/xml.sql @@ -435,6 +435,8 @@ EXPLAIN (COSTS OFF, VERBOSE) SELECT * FROM xmltableview1; -- errors SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp) AS f (v1, v2); +SELECT * FROM XMLTABLE (ROW () PASSING null COLUMNS v1 timestamp __pg__is_not_null 1) AS f (v1); + -- XMLNAMESPACES tests SELECT * FROM XMLTABLE(XMLNAMESPACES('http://x.y' AS zz), '/zz:rows/zz:row' diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index 5422511d4ab73..2cb4d0ffd4199 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -35,9 +35,8 @@ sub switch_server_cert $ssl_server->switch_server_cert(@_); } -# Determine whether this build uses OpenSSL or LibreSSL. As a heuristic, the -# HAVE_SSL_CTX_SET_CERT_CB macro isn't defined for LibreSSL. -my $libressl = not check_pg_config("#define HAVE_SSL_CTX_SET_CERT_CB 1"); +# Determine whether this build uses OpenSSL or LibreSSL. +my $libressl = $ssl_server->is_libressl; #### Some configuration @@ -60,6 +59,8 @@ sub switch_server_cert note "setting up data directory"; my $node = PostgreSQL::Test::Cluster->new('primary'); $node->init; +# Needed to allow connect_fails to inspect postmaster log: +$node->append_conf('postgresql.conf', "log_min_messages = debug2"); # PGHOST is enforced here to set up the node, subsequent connections # will use a dedicated connection string. @@ -147,6 +148,33 @@ sub switch_server_cert $common_connstr = "$default_ssl_connstr user=ssltestuser dbname=trustdb hostaddr=$SERVERHOSTADDR host=common-name.pg-ssltest.test"; +SKIP: +{ + skip "Keylogging is not supported with LibreSSL", 5 if $libressl; + + my $tempdir = PostgreSQL::Test::Utils::tempdir; + my @status; + + # Properly escape backslashes in the path + $tempdir =~ s/\\/\\\\/g; + + # Connect should work with a given sslkeylogfile + $node->connect_ok( + "$common_connstr sslrootcert=ssl/root+server_ca.crt sslkeylogfile=$tempdir/key.txt sslmode=require", + "connect with server root cert and sslkeylogfile=$tempdir/key.txt"); + + # Verify the key file exists + ok(-f "$tempdir/key.txt", "keylog file exists at: $tempdir/key.txt"); + + # Skip permission checks on Windows/Cygwin + skip "Permissions check not enforced on Windows", 2 + if ($windows_os || $Config::Config{osname} eq 'cygwin'); + + ok( (@status = stat("$tempdir/key.txt")), + "keylog file exists and returned status"); + ok(@status && !($status[2] & 0006), "keylog file is not world readable"); +} + # The server should not accept non-SSL connections. $node->connect_fails( "$common_connstr sslmode=disable", @@ -780,10 +808,8 @@ sub switch_server_cert expected_stderr => qr/certificate authentication failed for user "anotheruser"/, # certificate authentication should be logged even on failure - # temporarily(?) skip this check due to timing issue - # log_like => - # [qr/connection authenticated: identity="CN=ssltestuser" method=cert/], -); + log_like => + [qr/connection authenticated: identity="CN=ssltestuser" method=cert/],); # revoked client cert $node->connect_fails( @@ -791,11 +817,10 @@ sub switch_server_cert . sslkey('client-revoked.key'), "certificate authorization fails with revoked client cert", expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 0: certificate revoked}, - # qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number 2315134995201656577, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, - # ], + log_like => [ + qr{Client certificate verification failed at depth 0: certificate revoked}, + qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ], # revoked certificates should not authenticate the user log_unlike => [qr/connection authenticated:/],); @@ -845,24 +870,20 @@ sub switch_server_cert $common_connstr . " " . "sslmode=require sslcert=ssl/client.crt", "intermediate client certificate is missing", expected_stderr => qr/SSL error: tlsv1 alert unknown ca/, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 0: unable to get local issuer certificate}, - # qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number 2315134995201656576, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, - # ] -); + log_like => [ + qr{Client certificate verification failed at depth 0: unable to get local issuer certificate}, + qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ]); $node->connect_fails( "$common_connstr sslmode=require sslcert=ssl/client-long.crt " . sslkey('client-long.key'), "logged client certificate Subjects are truncated if they're too long", expected_stderr => qr/SSL error: tlsv1 alert unknown ca/, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 0: unable to get local issuer certificate}, - # qr{Failed certificate data \(unverified\): subject "\.\.\./CN=ssl-123456789012345678901234567890123456789012345678901234567890", serial number 2315418733629425152, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, - # ] -); + log_like => [ + qr{Client certificate verification failed at depth 0: unable to get local issuer certificate}, + qr{Failed certificate data \(unverified\): subject "\.\.\./CN=ssl-123456789012345678901234567890123456789012345678901234567890", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ]); # Use an invalid cafile here so that the next test won't be able to verify the # client CA. @@ -877,12 +898,14 @@ sub switch_server_cert "$common_connstr sslmode=require sslcert=ssl/client+client_ca.crt", "intermediate client certificate is untrusted", expected_stderr => qr/SSL error: tlsv1 alert unknown ca/, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 1: unable to get local issuer certificate}, - # qr{Failed certificate data \(unverified\): subject "/CN=Test CA for PostgreSQL SSL regression test client certs", serial number 2315134995201656577, issuer "/CN=Test root CA for PostgreSQL SSL regression test suite"}, - # ] -); + log_like => [ + qr{Client certificate verification failed at depth 1: unable to get local issuer certificate}, + # As of 5/2025, LibreSSL reports a different cert as being at fault; + # it's wrong, but seems to be their bug not ours + !$libressl + ? qr{Failed certificate data \(unverified\): subject "/CN=Test CA for PostgreSQL SSL regression test client certs", serial number \d+, issuer "/CN=Test root CA for PostgreSQL SSL regression test suite"} + : qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ]); # test server-side CRL directory switch_server_cert( @@ -896,12 +919,10 @@ sub switch_server_cert . sslkey('client-revoked.key'), "certificate authorization fails with revoked client cert with server-side CRL directory", expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 0: certificate revoked}, - # qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number 2315134995201656577, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, - # ] -); + log_like => [ + qr{Client certificate verification failed at depth 0: certificate revoked}, + qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ]); # revoked client cert, non-ASCII subject $node->connect_fails( @@ -909,11 +930,9 @@ sub switch_server_cert . sslkey('client-revoked-utf8.key'), "certificate authorization fails with revoked UTF-8 client cert with server-side CRL directory", expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|, - # temporarily(?) skip this check due to timing issue - # log_like => [ - # qr{Client certificate verification failed at depth 0: certificate revoked}, - # qr{Failed certificate data \(unverified\): subject "/CN=\\xce\\x9f\\xce\\xb4\\xcf\\x85\\xcf\\x83\\xcf\\x83\\xce\\xad\\xce\\xb1\\xcf\\x82", serial number 2315420958437414144, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, - # ] -); + log_like => [ + qr{Client certificate verification failed at depth 0: certificate revoked}, + qr{Failed certificate data \(unverified\): subject "/CN=\\xce\\x9f\\xce\\xb4\\xcf\\x85\\xcf\\x83\\xcf\\x83\\xce\\xad\\xce\\xb1\\xcf\\x82", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"}, + ]); done_testing(); diff --git a/src/test/ssl/t/002_scram.pl b/src/test/ssl/t/002_scram.pl index 9e4947f4e3c98..60b60b286570b 100644 --- a/src/test/ssl/t/002_scram.pl +++ b/src/test/ssl/t/002_scram.pl @@ -44,11 +44,17 @@ sub switch_server_cert # This is the pattern to use in pg_hba.conf to match incoming connections. my $SERVERHOSTCIDR = '127.0.0.1/32'; +# Determine whether this build uses OpenSSL or LibreSSL. +my $libressl = $ssl_server->is_libressl; + # Determine whether build supports detection of hash algorithms for # RSA-PSS certificates. my $supports_rsapss_certs = check_pg_config("#define HAVE_X509_GET_SIGNATURE_INFO 1"); +# As of 5/2025, LibreSSL doesn't actually work for RSA-PSS certificates. +$supports_rsapss_certs = 0 if $libressl; + # Allocation of base connection string shared among multiple tests. my $common_connstr; diff --git a/src/test/ssl/t/SSL/Backend/OpenSSL.pm b/src/test/ssl/t/SSL/Backend/OpenSSL.pm index e044318531f2e..4159addb700c1 100644 --- a/src/test/ssl/t/SSL/Backend/OpenSSL.pm +++ b/src/test/ssl/t/SSL/Backend/OpenSSL.pm @@ -26,6 +26,7 @@ package SSL::Backend::OpenSSL; use strict; use warnings FATAL => 'all'; +use PostgreSQL::Test::Utils; use File::Basename; use File::Copy; @@ -205,6 +206,23 @@ sub get_library return $self->{_library}; } +=pod + +=item $backend->library_is_libressl() + +Detect whether the SSL library is LibreSSL. + +=cut + +sub library_is_libressl +{ + my ($self) = @_; + + # The HAVE_SSL_CTX_SET_CERT_CB macro isn't defined for LibreSSL. + # We may eventually need a less-bogus heuristic. + return not check_pg_config("#define HAVE_SSL_CTX_SET_CERT_CB 1"); +} + # Internal method for copying a set of files, taking into account wildcards sub _copy_files { diff --git a/src/test/ssl/t/SSL/Server.pm b/src/test/ssl/t/SSL/Server.pm index 1427741841932..96f0f201e9c0b 100644 --- a/src/test/ssl/t/SSL/Server.pm +++ b/src/test/ssl/t/SSL/Server.pm @@ -200,7 +200,7 @@ sub configure_test_server_for_ssl $node->append_conf( 'postgresql.conf', <is_libressl() + +Detect whether the currently used SSL backend is LibreSSL. +(Ideally we'd not need this hack, but presently we do.) + +=cut + +sub is_libressl +{ + my $self = shift; + my $backend = $self->{backend}; + + return $backend->library_is_libressl(); +} + +=pod + =item switch_server_cert(params) Change the configuration to use the given set of certificate, key, ca and diff --git a/src/test/subscription/t/001_rep_changes.pl b/src/test/subscription/t/001_rep_changes.pl index 8726fe04ad285..916fdb48b3b34 100644 --- a/src/test/subscription/t/001_rep_changes.pl +++ b/src/test/subscription/t/001_rep_changes.pl @@ -113,6 +113,9 @@ # Wait for initial table sync to finish $node_subscriber->wait_for_subscription_sync($node_publisher, 'tap_sub'); +# Reset IO statistics, for the WAL sender check with pg_stat_io. +$node_publisher->safe_psql('postgres', "SELECT pg_stat_reset_shared('io')"); + my $result = $node_subscriber->safe_psql('postgres', "SELECT count(*) FROM tab_notrep"); is($result, qq(0), 'check non-replicated table is empty on subscriber'); @@ -184,6 +187,19 @@ $node_subscriber->safe_psql('postgres', "SELECT count(*) FROM tab_no_col"); is($result, qq(2), 'check replicated changes for table having no columns'); +# Wait for the logical WAL sender to update its IO statistics. This is +# done before the next restart, which would force a flush of its stats, and +# far enough from the reset done above to not impact the run time. +$node_publisher->poll_query_until( + 'postgres', + qq[SELECT sum(reads) > 0 + FROM pg_catalog.pg_stat_io + WHERE backend_type = 'walsender' + AND object = 'wal'] + ) + or die + "Timed out while waiting for the walsender to update its IO statistics"; + # insert some duplicate rows $node_publisher->safe_psql('postgres', "INSERT INTO tab_full SELECT generate_series(1,10)"); diff --git a/src/test/subscription/t/007_ddl.pl b/src/test/subscription/t/007_ddl.pl index de846193bb5c0..7d12bcbddb687 100644 --- a/src/test/subscription/t/007_ddl.pl +++ b/src/test/subscription/t/007_ddl.pl @@ -80,7 +80,7 @@ # Test ALTER PUBLICATION RENAME command during the replication # -# Test function for swaping name of publications +# Test function for swapping name of publications sub test_swap { my ($table_name, $pubname, $appname) = @_; diff --git a/src/test/subscription/t/024_add_drop_pub.pl b/src/test/subscription/t/024_add_drop_pub.pl index b594941c7cb42..e995d8b383901 100644 --- a/src/test/subscription/t/024_add_drop_pub.pl +++ b/src/test/subscription/t/024_add_drop_pub.pl @@ -91,10 +91,21 @@ $node_publisher->safe_psql('postgres', "CREATE TABLE tab_3 (a int)"); $node_subscriber->safe_psql('postgres', "CREATE TABLE tab_3 (a int)"); +my $oldpid = $node_publisher->safe_psql('postgres', + "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" +); + # Set the subscription with a missing publication $node_subscriber->safe_psql('postgres', "ALTER SUBSCRIPTION tap_sub SET PUBLICATION tap_pub_3"); +# Wait for the walsender to restart after altering the subscription +$node_publisher->poll_query_until('postgres', + "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" + ) + or die + "Timed out while waiting for apply worker to restart after altering the subscription"; + my $offset = -s $node_publisher->logfile; $node_publisher->safe_psql('postgres',"INSERT INTO tab_3 values(1)"); diff --git a/src/test/subscription/t/035_conflicts.pl b/src/test/subscription/t/035_conflicts.pl index 3a4d44e1d0e15..2a7a8239a2966 100644 --- a/src/test/subscription/t/035_conflicts.pl +++ b/src/test/subscription/t/035_conflicts.pl @@ -25,14 +25,23 @@ $node_publisher->safe_psql('postgres', "CREATE TABLE conf_tab (a int PRIMARY KEY, b int UNIQUE, c int UNIQUE);"); +$node_publisher->safe_psql('postgres', + "CREATE TABLE conf_tab_2 (a int PRIMARY KEY, b int UNIQUE, c int UNIQUE);"); + # Create same table on subscriber $node_subscriber->safe_psql('postgres', "CREATE TABLE conf_tab (a int PRIMARY key, b int UNIQUE, c int UNIQUE);"); +$node_subscriber->safe_psql( + 'postgres', qq[ + CREATE TABLE conf_tab_2 (a int PRIMARY KEY, b int, c int, unique(a,b)) PARTITION BY RANGE (a); + CREATE TABLE conf_tab_2_p1 PARTITION OF conf_tab_2 FOR VALUES FROM (MINVALUE) TO (100); +]); + # Setup logical replication my $publisher_connstr = $node_publisher->connstr . ' dbname=postgres'; $node_publisher->safe_psql('postgres', - "CREATE PUBLICATION pub_tab FOR TABLE conf_tab"); + "CREATE PUBLICATION pub_tab FOR TABLE conf_tab, conf_tab_2"); # Create the subscription my $appname = 'sub_tab'; @@ -110,4 +119,30 @@ pass('multiple_unique_conflicts detected during update'); +# Truncate table to get rid of the error +$node_subscriber->safe_psql('postgres', "TRUNCATE conf_tab;"); + + +################################################## +# Test multiple_unique_conflicts due to INSERT on a leaf partition +################################################## + +# Insert data in the subscriber table +$node_subscriber->safe_psql('postgres', + "INSERT INTO conf_tab_2 VALUES (55,2,3);"); + +# Insert data in the publisher table +$node_publisher->safe_psql('postgres', + "INSERT INTO conf_tab_2 VALUES (55,2,3);"); + +$node_subscriber->wait_for_log( + qr/conflict detected on relation \"public.conf_tab_2_p1\": conflict=multiple_unique_conflicts.* +.*Key already exists in unique index \"conf_tab_2_p1_pkey\".* +.*Key \(a\)=\(55\); existing local tuple \(55, 2, 3\); remote tuple \(55, 2, 3\).* +.*Key already exists in unique index \"conf_tab_2_p1_a_b_key\".* +.*Key \(a, b\)=\(55, 2\); existing local tuple \(55, 2, 3\); remote tuple \(55, 2, 3\)./, + $log_offset); + +pass('multiple_unique_conflicts detected on a leaf partition during insert'); + done_testing(); diff --git a/src/test/subscription/t/100_bugs.pl b/src/test/subscription/t/100_bugs.pl index 83120f1cb6f20..5e3577011833b 100644 --- a/src/test/subscription/t/100_bugs.pl +++ b/src/test/subscription/t/100_bugs.pl @@ -477,6 +477,101 @@ is( $result, qq(2|f 3|t), 'check replicated update on subscriber'); +# Test create and immediate drop of replication slot via replication commands +# (this exposed a memory-management bug in v18) +my $publisher_host = $node_publisher->host; +my $publisher_port = $node_publisher->port; +my $connstr_db = + "host=$publisher_host port=$publisher_port replication=database dbname=postgres"; + +is( $node_publisher->psql( + 'postgres', + qq[ + CREATE_REPLICATION_SLOT test_slot LOGICAL pgoutput (SNAPSHOT export); + DROP_REPLICATION_SLOT test_slot; + ], + timeout => $PostgreSQL::Test::Utils::timeout_default, + extra_params => [ '-d', $connstr_db ]), + 0, + 'create and immediate drop of replication slot'); + +$node_publisher->stop('fast'); +$node_subscriber->stop('fast'); + +# The bug was that when an ERROR was caught and handled by a (PL/pgSQL) +# function, the apply worker reset the replication origin but continued +# processing subsequent changes. So, we fail to update the replication origin +# during further apply operations. This can lead to the apply worker requesting +# the changes that have been applied again after restarting. + +$node_publisher->rotate_logfile(); +$node_publisher->start(); + +$node_subscriber->rotate_logfile(); +$node_subscriber->start(); + +# Set up a publication with a table +$node_publisher->safe_psql( + 'postgres', qq( + CREATE TABLE t1 (a int); + CREATE PUBLICATION regress_pub FOR TABLE t1; +)); + +# Set up a subscription which subscribes the publication +$node_subscriber->safe_psql( + 'postgres', qq( + CREATE TABLE t1 (a int); + CREATE SUBSCRIPTION regress_sub CONNECTION '$publisher_connstr' PUBLICATION regress_pub; +)); + +$node_subscriber->wait_for_subscription_sync($node_publisher, 'regress_sub'); + +# Create an AFTER INSERT trigger on the table that raises and subsequently +# handles an exception. Subsequent insertions will trigger this exception, +# causing the apply worker to invoke its error callback with an ERROR. However, +# since the error is caught within the trigger, the apply worker will continue +# processing changes. +$node_subscriber->safe_psql( + 'postgres', q{ +CREATE FUNCTION handle_exception_trigger() +RETURNS TRIGGER AS $$ +BEGIN + BEGIN + -- Raise an exception + RAISE EXCEPTION 'This is a test exception'; + EXCEPTION + WHEN OTHERS THEN + RETURN NEW; + END; + + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER silent_exception_trigger +AFTER INSERT OR UPDATE ON t1 +FOR EACH ROW +EXECUTE FUNCTION handle_exception_trigger(); + +ALTER TABLE t1 ENABLE ALWAYS TRIGGER silent_exception_trigger; +}); + +# Obtain current remote_lsn value to check its advancement later +my $remote_lsn = $node_subscriber->safe_psql('postgres', + "SELECT remote_lsn FROM pg_replication_origin_status os, pg_subscription s WHERE os.external_id = 'pg_' || s.oid AND s.subname = 'regress_sub'" +); + +# Insert a tuple to replicate changes +$node_publisher->safe_psql('postgres', "INSERT INTO t1 VALUES (1);"); +$node_publisher->wait_for_catchup('regress_sub'); + +# Confirms the origin can be advanced +$result = $node_subscriber->safe_psql('postgres', + "SELECT remote_lsn > '$remote_lsn' FROM pg_replication_origin_status os, pg_subscription s WHERE os.external_id = 'pg_' || s.oid AND s.subname = 'regress_sub'" +); +is($result, 't', + 'remote_lsn has advanced for apply worker raising an exception'); + $node_publisher->stop('fast'); $node_subscriber->stop('fast'); diff --git a/src/timezone/data/tzdata.zi b/src/timezone/data/tzdata.zi index db6ba4af2b013..a7fb52f1968f3 100644 --- a/src/timezone/data/tzdata.zi +++ b/src/timezone/data/tzdata.zi @@ -1,4 +1,4 @@ -# version 2025a +# version 2025b # 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 - @@ -2432,6 +2432,20 @@ Z America/Ciudad_Juarez -7:5:56 - LMT 1922 Ja 1 7u Z America/Costa_Rica -5:36:13 - LMT 1890 -5:36:13 - SJMT 1921 Ja 15 -6 CR C%sT +Z America/Coyhaique -4:48:16 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - %z 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - %z 1919 Jul +-4:42:45 - SMT 1927 S +-5 x %z 1932 S +-4 - %z 1942 Jun +-5 - %z 1942 Au +-4 - %z 1946 Au 28 24 +-5 1 %z 1947 Mar 31 24 +-5 - %z 1947 May 21 23 +-4 x %z 2025 Mar 20 +-3 - %z Z America/Cuiaba -3:44:20 - LMT 1914 -4 B %z 2003 S 24 -4 - %z 2004 O @@ -3420,7 +3434,7 @@ Z Asia/Tbilisi 2:59:11 - LMT 1880 Z Asia/Tehran 3:25:44 - LMT 1916 3:25:44 - TMT 1935 Jun 13 3:30 i %z 1977 O 20 24 -4 i %z 1979 +4 i %z 1978 N 10 24 3:30 i %z Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 5:30 - %z 1987 O diff --git a/src/tools/RELEASE_CHANGES b/src/tools/RELEASE_CHANGES index 94c5a0f3bfbb3..c0d75c213beae 100644 --- a/src/tools/RELEASE_CHANGES +++ b/src/tools/RELEASE_CHANGES @@ -89,6 +89,9 @@ Starting a New Development Cycle * Typically, we do pgindent and perltidy runs just before branching, as well as before beta (complete steps from src/tools/pgindent/README) +* It's also advisable to check that copyright years are up-to-date + (run src/tools/copyright.pl, commit any changes it finds) + * Create a branch in git for maintenance of the previous release o on master branch, do: git pull # be sure you have the latest "master" diff --git a/src/tools/ci/pg_ci_base.conf b/src/tools/ci/pg_ci_base.conf index d8faa9c26c179..9cec5c2910d80 100644 --- a/src/tools/ci/pg_ci_base.conf +++ b/src/tools/ci/pg_ci_base.conf @@ -8,7 +8,7 @@ max_prepared_transactions = 10 # Settings that make logs more useful log_autovacuum_min_duration = 0 log_checkpoints = true -log_connections = true +log_connections = all log_disconnections = true log_line_prefix = '%m [%p][%b] %q[%a][%v:%x] ' log_lock_waits = true diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 449bafc123c5b..a8346cda633ac 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -175,6 +175,7 @@ AttributeOpts AuthRequest AuthToken AutoPrewarmSharedState +AutoPrewarmReadStreamData AutoVacOpts AutoVacuumShmemStruct AutoVacuumWorkItem @@ -340,6 +341,8 @@ BufFile Buffer BufferAccessStrategy BufferAccessStrategyType +BufferCacheNumaRec +BufferCacheNumaContext BufferCachePagesContext BufferCachePagesRec BufferDesc @@ -382,6 +385,11 @@ CURLM CURLoption CV CachedExpression +CachedFunction +CachedFunctionCompileCallback +CachedFunctionDeleteCallback +CachedFunctionHashEntry +CachedFunctionHashKey CachedPlan CachedPlanSource CallContext @@ -402,6 +410,7 @@ CatCacheHeader CatalogId CatalogIdMapEntry CatalogIndexState +ChangeVarNodes_callback ChangeVarNodes_context CheckPoint CheckPointStmt @@ -607,6 +616,7 @@ DatumTupleFields DbInfo DbInfoArr DbLocaleInfo +DbOidName DeClonePtrType DeadLockState DeallocateStmt @@ -668,6 +678,8 @@ DumpableObjectWithAcl DynamicFileList DynamicZoneAbbrev EC_KEY +ECDerivesKey +ECDerivesEntry EDGE ENGINE EOM_flatten_into_method @@ -704,6 +716,7 @@ EphemeralNamedRelationMetadata EphemeralNamedRelationMetadataData EquivalenceClass EquivalenceMember +EquivalenceMemberIterator ErrorContextCallback ErrorData ErrorSaveContext @@ -793,6 +806,7 @@ FieldSelect FieldStore File FileBackupMethod +FileCopyMethod FileFdwExecutionState FileFdwPlanState FileNameMap @@ -1786,11 +1800,11 @@ OnConflictAction OnConflictClause OnConflictExpr OnConflictSetState -OpBtreeInterpretation OpClassCacheEnt OpExpr OpFamilyMember OpFamilyOpFuncGroup +OpIndexInterpretation OpclassInfo Operator OperatorElement @@ -1817,6 +1831,7 @@ PGAlignedBlock PGAlignedXLogBlock PGAsyncStatusType PGCALL2 +PGCRYPTO_SHA_t PGChecksummablePage PGContextVisibility PGErrorVerbosity @@ -2267,6 +2282,7 @@ PortalHashEnt PortalStatus PortalStrategy PostParseColumnRefHook +PostRewriteHook PostgresPollingStatusType PostingItem PreParseColumnRefHook @@ -2608,6 +2624,8 @@ SPPageDesc SQLDropObject SQLFunctionCache SQLFunctionCachePtr +SQLFunctionHashEntry +SQLFunctionLink SQLFunctionParseInfo SQLFunctionParseInfoPtr SQLValueFunction @@ -2744,6 +2762,8 @@ SimpleStringListCell SingleBoundSortItem Size SkipPages +SkipSupport +SkipSupportData SlabBlock SlabContext SlabSlot diff --git a/src/tools/testwrap b/src/tools/testwrap index 21105146c9d69..02f1951ad7e94 100755 --- a/src/tools/testwrap +++ b/src/tools/testwrap @@ -43,7 +43,7 @@ env_dict = {**os.environ, 'TESTLOGDIR': os.path.join(testdir, 'log')} -# The configuration time value of PG_TEST_EXTRA is supplied via arguement +# The configuration time value of PG_TEST_EXTRA is supplied via argument # --pg-test-extra. But it can be overridden by environment variable # PG_TEST_EXTRA at the time of running a test. Hence use value from arguments # only if PG_TEST_EXTRA is not set in the test environment, which already